From: Kaveh R. Ghazi Date: Tue, 25 Jan 2000 18:29:02 +0000 (+0000) Subject: parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string concatenation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2884c41e1c9d2abd8dd3db430d26fb56b7de6ea1;p=gcc.git parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string concatenation. * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string concatenation. (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args. * parse.y (register_fields): Don't pass a format specifier to OBSOLETE_MODIFIER_WARNING. (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format specifier. (check_modifiers): Change function into a macro. (check_class_interface_creation): Pass a literal format string. From-SVN: r31614 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index e2479d0a225..251c4be057e 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,17 @@ +2000-01-25 Kaveh R. Ghazi + + * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string + concatenation. + (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args. + + * parse.y (register_fields): Don't pass a format specifier to + OBSOLETE_MODIFIER_WARNING. + (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2 + instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format + specifier. + (check_modifiers): Change function into a macro. + (check_class_interface_creation): Pass a literal format string. + 2000-01-21 Kaveh R. Ghazi * buffer.h: PROTO -> PARAMS. diff --git a/gcc/java/parse.c b/gcc/java/parse.c index 9a913497972..55b60e15566 100644 --- a/gcc/java/parse.c +++ b/gcc/java/parse.c @@ -146,7 +146,6 @@ static char *java_accstring_lookup PARAMS ((int)); static void classitf_redefinition_error PARAMS ((const char *,tree, tree, tree)); static void variable_redefinition_error PARAMS ((tree, tree, tree, int)); -static void check_modifiers PARAMS ((const char *, int, int)); static tree create_class PARAMS ((int, tree, tree, tree)); static tree create_interface PARAMS ((int, tree, tree)); static tree find_field PARAMS ((tree, tree)); @@ -401,9 +400,25 @@ static tree current_static_block = NULL_TREE; /* The list of all packages we've seen so far */ static tree package_list = NULL_TREE; + +/* Check modifiers. If one doesn't fit, retrieve it in its declaration + line and point it out. */ +/* Should point out the one that don't fit. ASCII/unicode, going + backward. FIXME */ + +#define check_modifiers(__message, __value, __mask) do { \ + if ((__value) & ~(__mask)) \ + { \ + int i, remainder = (__value) & ~(__mask); \ + for (i = 0; i <= 10; i++) \ + if ((1 << i) & remainder) \ + parse_error_context (ctxp->modifier_ctx [i], (__message), \ + java_accstring_lookup (1 << i)); \ + } \ +} while (0) -#line 331 "./parse.y" +#line 346 "./parse.y" typedef union { tree node; int sub_token; @@ -413,7 +428,7 @@ typedef union { } operator; int value; } YYSTYPE; -#line 341 "./parse.y" +#line 356 "./parse.y" #include "lex.c" #ifndef YYDEBUG @@ -430,11 +445,11 @@ typedef union { -#define YYFINAL 776 +#define YYFINAL 777 #define YYFLAG -32768 #define YYNTBASE 110 -#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 266) +#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 267) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -490,45 +505,45 @@ static const short yyprhs[] = { 0, 255, 259, 263, 265, 269, 273, 278, 280, 284, 287, 291, 295, 297, 299, 300, 304, 307, 311, 315, 320, 325, 328, 332, 335, 339, 342, 346, 351, 355, 359, - 363, 365, 369, 373, 376, 380, 383, 387, 388, 391, - 394, 396, 400, 404, 406, 409, 411, 414, 418, 420, - 421, 425, 428, 432, 436, 441, 444, 448, 452, 457, - 459, 462, 467, 473, 481, 488, 490, 492, 493, 498, - 499, 505, 506, 512, 513, 520, 524, 529, 532, 536, - 539, 543, 546, 550, 552, 555, 557, 559, 561, 563, - 565, 568, 571, 574, 578, 583, 585, 589, 593, 596, - 600, 602, 604, 606, 609, 611, 613, 615, 618, 621, - 625, 627, 629, 631, 633, 635, 637, 639, 641, 643, + 363, 365, 369, 373, 376, 380, 383, 387, 389, 390, + 393, 396, 398, 402, 406, 408, 411, 413, 416, 420, + 422, 423, 427, 430, 434, 438, 443, 446, 450, 454, + 459, 461, 464, 469, 475, 483, 490, 492, 494, 495, + 500, 501, 507, 508, 514, 515, 522, 526, 531, 534, + 538, 541, 545, 548, 552, 554, 557, 559, 561, 563, + 565, 567, 570, 573, 576, 580, 585, 587, 591, 595, + 598, 602, 604, 606, 608, 611, 613, 615, 617, 620, + 623, 627, 629, 631, 633, 635, 637, 639, 641, 643, 645, 647, 649, 651, 653, 655, 657, 659, 661, 663, - 665, 667, 669, 671, 674, 677, 680, 683, 686, 689, - 692, 695, 699, 704, 709, 715, 720, 726, 733, 741, - 748, 750, 752, 754, 756, 758, 760, 762, 768, 771, - 775, 780, 788, 796, 797, 801, 806, 809, 813, 819, - 822, 826, 830, 835, 837, 840, 843, 845, 848, 852, - 855, 858, 862, 865, 870, 873, 876, 880, 885, 888, - 890, 898, 906, 913, 917, 923, 928, 936, 943, 946, - 949, 953, 956, 957, 959, 961, 964, 965, 967, 969, - 973, 977, 980, 984, 987, 991, 994, 998, 1001, 1005, - 1008, 1012, 1015, 1019, 1023, 1026, 1030, 1036, 1042, 1045, - 1050, 1054, 1056, 1060, 1064, 1069, 1072, 1074, 1077, 1080, - 1085, 1088, 1092, 1097, 1100, 1103, 1105, 1107, 1109, 1111, - 1115, 1117, 1119, 1121, 1123, 1127, 1131, 1135, 1139, 1143, - 1147, 1151, 1155, 1161, 1166, 1173, 1179, 1184, 1190, 1196, - 1203, 1207, 1211, 1216, 1222, 1225, 1229, 1233, 1237, 1239, - 1243, 1247, 1251, 1255, 1260, 1265, 1270, 1275, 1279, 1283, - 1285, 1288, 1292, 1296, 1299, 1302, 1306, 1310, 1314, 1318, - 1321, 1325, 1330, 1336, 1343, 1349, 1356, 1361, 1366, 1371, - 1376, 1380, 1385, 1389, 1394, 1396, 1398, 1400, 1402, 1405, - 1408, 1410, 1412, 1415, 1418, 1420, 1423, 1426, 1429, 1432, - 1435, 1438, 1440, 1443, 1446, 1448, 1451, 1454, 1460, 1465, - 1470, 1476, 1481, 1484, 1490, 1495, 1501, 1503, 1507, 1511, - 1515, 1519, 1523, 1527, 1529, 1533, 1537, 1541, 1545, 1547, - 1551, 1555, 1559, 1563, 1567, 1571, 1573, 1577, 1581, 1585, - 1589, 1593, 1597, 1601, 1605, 1609, 1613, 1615, 1619, 1623, - 1627, 1631, 1633, 1637, 1641, 1643, 1647, 1651, 1653, 1657, - 1661, 1663, 1667, 1671, 1673, 1677, 1681, 1683, 1689, 1694, - 1698, 1704, 1706, 1708, 1712, 1716, 1718, 1720, 1722, 1724, - 1726, 1728 + 665, 667, 669, 671, 673, 676, 679, 682, 685, 688, + 691, 694, 697, 701, 706, 711, 717, 722, 728, 735, + 743, 750, 752, 754, 756, 758, 760, 762, 764, 770, + 773, 777, 782, 790, 798, 799, 803, 808, 811, 815, + 821, 824, 828, 832, 837, 839, 842, 845, 847, 850, + 854, 857, 860, 864, 867, 872, 875, 878, 882, 887, + 890, 892, 900, 908, 915, 919, 925, 930, 938, 945, + 948, 951, 955, 958, 959, 961, 963, 966, 967, 969, + 971, 975, 979, 982, 986, 989, 993, 996, 1000, 1003, + 1007, 1010, 1014, 1017, 1021, 1025, 1028, 1032, 1038, 1044, + 1047, 1052, 1056, 1058, 1062, 1066, 1071, 1074, 1076, 1079, + 1082, 1087, 1090, 1094, 1099, 1102, 1105, 1107, 1109, 1111, + 1113, 1117, 1119, 1121, 1123, 1125, 1129, 1133, 1137, 1141, + 1145, 1149, 1153, 1157, 1163, 1168, 1175, 1181, 1186, 1192, + 1198, 1205, 1209, 1213, 1218, 1224, 1227, 1231, 1235, 1239, + 1241, 1245, 1249, 1253, 1257, 1262, 1267, 1272, 1277, 1281, + 1285, 1287, 1290, 1294, 1298, 1301, 1304, 1308, 1312, 1316, + 1320, 1323, 1327, 1332, 1338, 1345, 1351, 1358, 1363, 1368, + 1373, 1378, 1382, 1387, 1391, 1396, 1398, 1400, 1402, 1404, + 1407, 1410, 1412, 1414, 1417, 1420, 1422, 1425, 1428, 1431, + 1434, 1437, 1440, 1442, 1445, 1448, 1450, 1453, 1456, 1462, + 1467, 1472, 1478, 1483, 1486, 1492, 1497, 1503, 1505, 1509, + 1513, 1517, 1521, 1525, 1529, 1531, 1535, 1539, 1543, 1547, + 1549, 1553, 1557, 1561, 1565, 1569, 1573, 1575, 1579, 1583, + 1587, 1591, 1595, 1599, 1603, 1607, 1611, 1615, 1617, 1621, + 1625, 1629, 1633, 1635, 1639, 1643, 1645, 1649, 1653, 1655, + 1659, 1663, 1665, 1669, 1673, 1675, 1679, 1683, 1685, 1691, + 1696, 1700, 1706, 1708, 1710, 1714, 1718, 1720, 1722, 1724, + 1726, 1728, 1730 }; static const short yyrhs[] = { 123, @@ -546,7 +561,7 @@ static const short yyrhs[] = { 123, 55, 119, 99, 0, 55, 1, 0, 55, 119, 1, 0, 55, 119, 101, 5, 99, 0, 55, 119, 101, 1, 0, 55, 119, 101, 5, 1, 0, 132, 0, - 166, 0, 99, 0, 1, 0, 44, 0, 131, 44, + 167, 0, 99, 0, 1, 0, 44, 0, 131, 44, 0, 0, 131, 67, 122, 135, 136, 133, 138, 0, 0, 67, 122, 135, 136, 134, 138, 0, 131, 67, 1, 0, 67, 1, 0, 67, 122, 1, 0, 131, @@ -554,214 +569,215 @@ static const short yyrhs[] = { 123, 1, 0, 63, 1, 0, 0, 52, 137, 0, 52, 1, 0, 117, 0, 137, 100, 117, 0, 137, 100, 1, 0, 95, 96, 0, 95, 139, 96, 0, 140, - 0, 139, 140, 0, 141, 0, 156, 0, 158, 0, - 179, 0, 142, 0, 142, 99, 0, 147, 0, 132, - 0, 166, 0, 112, 143, 99, 0, 131, 112, 143, + 0, 139, 140, 0, 141, 0, 157, 0, 159, 0, + 180, 0, 142, 0, 142, 99, 0, 147, 0, 132, + 0, 167, 0, 112, 143, 99, 0, 131, 112, 143, 99, 0, 144, 0, 143, 100, 144, 0, 143, 100, 1, 0, 145, 0, 145, 92, 146, 0, 145, 92, 1, 0, 145, 92, 146, 1, 0, 122, 0, 145, 97, 98, 0, 122, 1, 0, 145, 97, 1, 0, - 145, 98, 1, 0, 264, 0, 177, 0, 0, 149, - 148, 155, 0, 149, 1, 0, 112, 150, 153, 0, - 59, 150, 153, 0, 131, 112, 150, 153, 0, 131, - 59, 150, 153, 0, 112, 1, 0, 131, 112, 1, + 145, 98, 1, 0, 265, 0, 178, 0, 0, 149, + 148, 156, 0, 149, 1, 0, 112, 150, 154, 0, + 59, 150, 154, 0, 131, 112, 150, 154, 0, 131, + 59, 150, 154, 0, 112, 1, 0, 131, 112, 1, 0, 59, 1, 0, 131, 59, 1, 0, 131, 1, 0, 122, 93, 94, 0, 122, 93, 151, 94, 0, 150, 97, 98, 0, 122, 93, 1, 0, 150, 97, 1, 0, 152, 0, 151, 100, 152, 0, 151, 100, - 1, 0, 112, 145, 0, 131, 112, 145, 0, 112, - 1, 0, 131, 112, 1, 0, 0, 53, 154, 0, - 53, 1, 0, 116, 0, 154, 100, 116, 0, 154, - 100, 1, 0, 179, 0, 179, 99, 0, 99, 0, - 157, 179, 0, 157, 179, 99, 0, 44, 0, 0, - 160, 159, 162, 0, 161, 153, 0, 131, 161, 153, - 0, 120, 93, 94, 0, 120, 93, 151, 94, 0, - 180, 163, 0, 180, 164, 163, 0, 180, 182, 163, - 0, 180, 164, 182, 163, 0, 181, 0, 181, 99, - 0, 165, 93, 94, 99, 0, 165, 93, 233, 94, - 99, 0, 119, 101, 65, 93, 233, 94, 99, 0, - 119, 101, 65, 93, 94, 99, 0, 76, 0, 65, - 0, 0, 61, 122, 167, 172, 0, 0, 131, 61, - 122, 168, 172, 0, 0, 61, 122, 171, 169, 172, - 0, 0, 131, 61, 122, 171, 170, 172, 0, 61, - 122, 1, 0, 131, 61, 122, 1, 0, 63, 117, - 0, 171, 100, 117, 0, 63, 1, 0, 171, 100, - 1, 0, 95, 96, 0, 95, 173, 96, 0, 174, - 0, 173, 174, 0, 175, 0, 176, 0, 132, 0, - 166, 0, 142, 0, 149, 99, 0, 149, 1, 0, - 95, 96, 0, 95, 178, 96, 0, 95, 178, 100, - 96, 0, 146, 0, 178, 100, 146, 0, 178, 100, - 1, 0, 95, 96, 0, 180, 182, 181, 0, 95, - 0, 96, 0, 183, 0, 182, 183, 0, 184, 0, - 186, 0, 132, 0, 185, 99, 0, 112, 143, 0, - 131, 112, 143, 0, 188, 0, 191, 0, 195, 0, - 196, 0, 207, 0, 211, 0, 188, 0, 192, 0, - 197, 0, 208, 0, 212, 0, 179, 0, 189, 0, - 193, 0, 198, 0, 210, 0, 218, 0, 219, 0, - 220, 0, 222, 0, 221, 0, 224, 0, 99, 0, - 122, 88, 0, 190, 186, 0, 122, 1, 0, 190, - 187, 0, 194, 99, 0, 1, 99, 0, 1, 95, - 0, 1, 96, 0, 165, 93, 1, 0, 165, 93, - 94, 1, 0, 165, 93, 233, 1, 0, 165, 93, - 233, 94, 1, 0, 119, 101, 65, 1, 0, 119, - 101, 65, 93, 1, 0, 119, 101, 65, 93, 233, - 1, 0, 119, 101, 65, 93, 233, 94, 1, 0, - 119, 101, 65, 93, 94, 1, 0, 261, 0, 245, - 0, 246, 0, 242, 0, 243, 0, 239, 0, 231, - 0, 48, 93, 264, 94, 186, 0, 48, 1, 0, - 48, 93, 1, 0, 48, 93, 264, 1, 0, 48, - 93, 264, 94, 187, 56, 186, 0, 48, 93, 264, - 94, 187, 56, 187, 0, 0, 200, 199, 201, 0, - 68, 93, 264, 94, 0, 68, 1, 0, 68, 93, - 1, 0, 68, 93, 264, 94, 1, 0, 95, 96, - 0, 95, 204, 96, 0, 95, 202, 96, 0, 95, - 202, 204, 96, 0, 203, 0, 202, 203, 0, 204, - 182, 0, 205, 0, 204, 205, 0, 62, 265, 88, - 0, 47, 88, 0, 62, 1, 0, 62, 265, 1, - 0, 47, 1, 0, 66, 93, 264, 94, 0, 206, - 186, 0, 66, 1, 0, 66, 93, 1, 0, 66, - 93, 264, 1, 0, 206, 187, 0, 51, 0, 209, - 186, 66, 93, 264, 94, 99, 0, 214, 99, 264, - 99, 216, 94, 186, 0, 214, 99, 99, 216, 94, - 186, 0, 214, 99, 1, 0, 214, 99, 264, 99, - 1, 0, 214, 99, 99, 1, 0, 214, 99, 264, - 99, 216, 94, 187, 0, 214, 99, 99, 216, 94, - 187, 0, 71, 93, 0, 71, 1, 0, 71, 93, - 1, 0, 213, 215, 0, 0, 217, 0, 185, 0, - 217, 1, 0, 0, 217, 0, 194, 0, 217, 100, - 194, 0, 217, 100, 1, 0, 54, 99, 0, 54, - 122, 99, 0, 54, 1, 0, 54, 122, 1, 0, - 73, 99, 0, 73, 122, 99, 0, 73, 1, 0, - 73, 122, 1, 0, 58, 99, 0, 58, 264, 99, - 0, 58, 1, 0, 58, 264, 1, 0, 49, 264, - 99, 0, 49, 1, 0, 49, 264, 1, 0, 223, - 93, 264, 94, 179, 0, 223, 93, 264, 94, 1, - 0, 223, 1, 0, 223, 93, 1, 94, 0, 223, - 93, 1, 0, 131, 0, 70, 179, 225, 0, 70, - 179, 228, 0, 70, 179, 225, 228, 0, 70, 1, - 0, 226, 0, 225, 226, 0, 227, 179, 0, 60, - 93, 152, 94, 0, 60, 1, 0, 60, 93, 1, - 0, 60, 93, 1, 94, 0, 64, 179, 0, 64, - 1, 0, 230, 0, 234, 0, 111, 0, 76, 0, - 93, 264, 94, 0, 231, 0, 238, 0, 239, 0, - 240, 0, 119, 101, 67, 0, 113, 101, 67, 0, - 59, 101, 67, 0, 119, 101, 76, 0, 93, 264, - 1, 0, 119, 101, 1, 0, 113, 101, 1, 0, - 59, 101, 1, 0, 72, 116, 93, 233, 94, 0, - 72, 116, 93, 94, 0, 72, 116, 93, 233, 94, - 138, 0, 72, 116, 93, 94, 138, 0, 232, 122, - 93, 94, 0, 232, 122, 93, 94, 138, 0, 232, - 122, 93, 233, 94, 0, 232, 122, 93, 233, 94, - 138, 0, 72, 1, 99, 0, 72, 116, 1, 0, - 72, 116, 93, 1, 0, 72, 116, 93, 233, 1, - 0, 232, 1, 0, 232, 122, 1, 0, 119, 101, - 72, 0, 229, 101, 72, 0, 264, 0, 233, 100, - 264, 0, 233, 100, 1, 0, 72, 113, 235, 0, - 72, 115, 235, 0, 72, 113, 235, 237, 0, 72, - 115, 235, 237, 0, 72, 115, 237, 177, 0, 72, - 113, 237, 177, 0, 72, 1, 98, 0, 72, 1, - 97, 0, 236, 0, 235, 236, 0, 97, 264, 98, - 0, 97, 264, 1, 0, 97, 1, 0, 97, 98, - 0, 237, 97, 98, 0, 237, 97, 1, 0, 229, - 101, 122, 0, 65, 101, 122, 0, 65, 1, 0, - 119, 93, 94, 0, 119, 93, 233, 94, 0, 229, - 101, 122, 93, 94, 0, 229, 101, 122, 93, 233, - 94, 0, 65, 101, 122, 93, 94, 0, 65, 101, - 122, 93, 233, 94, 0, 65, 101, 1, 94, 0, - 65, 101, 1, 101, 0, 119, 97, 264, 98, 0, - 230, 97, 264, 98, 0, 119, 97, 1, 0, 119, - 97, 264, 1, 0, 230, 97, 1, 0, 230, 97, - 264, 1, 0, 229, 0, 119, 0, 242, 0, 243, - 0, 241, 46, 0, 241, 45, 0, 245, 0, 246, - 0, 3, 244, 0, 4, 244, 0, 247, 0, 3, - 1, 0, 4, 1, 0, 46, 244, 0, 46, 1, - 0, 45, 244, 0, 45, 1, 0, 241, 0, 89, - 244, 0, 90, 244, 0, 248, 0, 89, 1, 0, - 90, 1, 0, 93, 113, 237, 94, 244, 0, 93, - 113, 94, 244, 0, 93, 264, 94, 247, 0, 93, - 119, 237, 94, 247, 0, 93, 113, 97, 1, 0, - 93, 1, 0, 93, 113, 237, 94, 1, 0, 93, - 113, 94, 1, 0, 93, 119, 237, 94, 1, 0, - 244, 0, 249, 5, 244, 0, 249, 6, 244, 0, - 249, 7, 244, 0, 249, 5, 1, 0, 249, 6, - 1, 0, 249, 7, 1, 0, 249, 0, 250, 3, - 249, 0, 250, 4, 249, 0, 250, 3, 1, 0, - 250, 4, 1, 0, 250, 0, 251, 8, 250, 0, - 251, 9, 250, 0, 251, 10, 250, 0, 251, 8, - 1, 0, 251, 9, 1, 0, 251, 10, 1, 0, - 251, 0, 252, 20, 251, 0, 252, 18, 251, 0, - 252, 21, 251, 0, 252, 19, 251, 0, 252, 57, - 114, 0, 252, 20, 1, 0, 252, 18, 1, 0, - 252, 21, 1, 0, 252, 19, 1, 0, 252, 57, - 1, 0, 252, 0, 253, 16, 252, 0, 253, 17, - 252, 0, 253, 16, 1, 0, 253, 17, 1, 0, - 253, 0, 254, 11, 253, 0, 254, 11, 1, 0, - 254, 0, 255, 12, 254, 0, 255, 12, 1, 0, - 255, 0, 256, 13, 255, 0, 256, 13, 1, 0, - 256, 0, 257, 14, 256, 0, 257, 14, 1, 0, - 257, 0, 258, 15, 257, 0, 258, 15, 1, 0, - 258, 0, 258, 87, 264, 88, 259, 0, 258, 87, - 88, 1, 0, 258, 87, 1, 0, 258, 87, 264, - 88, 1, 0, 259, 0, 261, 0, 262, 263, 260, - 0, 262, 263, 1, 0, 119, 0, 238, 0, 240, - 0, 91, 0, 92, 0, 260, 0, 264, 0 + 1, 0, 112, 145, 0, 153, 112, 145, 0, 112, + 1, 0, 153, 112, 1, 0, 131, 0, 0, 53, + 155, 0, 53, 1, 0, 116, 0, 155, 100, 116, + 0, 155, 100, 1, 0, 180, 0, 180, 99, 0, + 99, 0, 158, 180, 0, 158, 180, 99, 0, 44, + 0, 0, 161, 160, 163, 0, 162, 154, 0, 131, + 162, 154, 0, 120, 93, 94, 0, 120, 93, 151, + 94, 0, 181, 164, 0, 181, 165, 164, 0, 181, + 183, 164, 0, 181, 165, 183, 164, 0, 182, 0, + 182, 99, 0, 166, 93, 94, 99, 0, 166, 93, + 234, 94, 99, 0, 119, 101, 65, 93, 234, 94, + 99, 0, 119, 101, 65, 93, 94, 99, 0, 76, + 0, 65, 0, 0, 61, 122, 168, 173, 0, 0, + 131, 61, 122, 169, 173, 0, 0, 61, 122, 172, + 170, 173, 0, 0, 131, 61, 122, 172, 171, 173, + 0, 61, 122, 1, 0, 131, 61, 122, 1, 0, + 63, 117, 0, 172, 100, 117, 0, 63, 1, 0, + 172, 100, 1, 0, 95, 96, 0, 95, 174, 96, + 0, 175, 0, 174, 175, 0, 176, 0, 177, 0, + 132, 0, 167, 0, 142, 0, 149, 99, 0, 149, + 1, 0, 95, 96, 0, 95, 179, 96, 0, 95, + 179, 100, 96, 0, 146, 0, 179, 100, 146, 0, + 179, 100, 1, 0, 95, 96, 0, 181, 183, 182, + 0, 95, 0, 96, 0, 184, 0, 183, 184, 0, + 185, 0, 187, 0, 132, 0, 186, 99, 0, 112, + 143, 0, 131, 112, 143, 0, 189, 0, 192, 0, + 196, 0, 197, 0, 208, 0, 212, 0, 189, 0, + 193, 0, 198, 0, 209, 0, 213, 0, 180, 0, + 190, 0, 194, 0, 199, 0, 211, 0, 219, 0, + 220, 0, 221, 0, 223, 0, 222, 0, 225, 0, + 99, 0, 122, 88, 0, 191, 187, 0, 122, 1, + 0, 191, 188, 0, 195, 99, 0, 1, 99, 0, + 1, 95, 0, 1, 96, 0, 166, 93, 1, 0, + 166, 93, 94, 1, 0, 166, 93, 234, 1, 0, + 166, 93, 234, 94, 1, 0, 119, 101, 65, 1, + 0, 119, 101, 65, 93, 1, 0, 119, 101, 65, + 93, 234, 1, 0, 119, 101, 65, 93, 234, 94, + 1, 0, 119, 101, 65, 93, 94, 1, 0, 262, + 0, 246, 0, 247, 0, 243, 0, 244, 0, 240, + 0, 232, 0, 48, 93, 265, 94, 187, 0, 48, + 1, 0, 48, 93, 1, 0, 48, 93, 265, 1, + 0, 48, 93, 265, 94, 188, 56, 187, 0, 48, + 93, 265, 94, 188, 56, 188, 0, 0, 201, 200, + 202, 0, 68, 93, 265, 94, 0, 68, 1, 0, + 68, 93, 1, 0, 68, 93, 265, 94, 1, 0, + 95, 96, 0, 95, 205, 96, 0, 95, 203, 96, + 0, 95, 203, 205, 96, 0, 204, 0, 203, 204, + 0, 205, 183, 0, 206, 0, 205, 206, 0, 62, + 266, 88, 0, 47, 88, 0, 62, 1, 0, 62, + 266, 1, 0, 47, 1, 0, 66, 93, 265, 94, + 0, 207, 187, 0, 66, 1, 0, 66, 93, 1, + 0, 66, 93, 265, 1, 0, 207, 188, 0, 51, + 0, 210, 187, 66, 93, 265, 94, 99, 0, 215, + 99, 265, 99, 217, 94, 187, 0, 215, 99, 99, + 217, 94, 187, 0, 215, 99, 1, 0, 215, 99, + 265, 99, 1, 0, 215, 99, 99, 1, 0, 215, + 99, 265, 99, 217, 94, 188, 0, 215, 99, 99, + 217, 94, 188, 0, 71, 93, 0, 71, 1, 0, + 71, 93, 1, 0, 214, 216, 0, 0, 218, 0, + 186, 0, 218, 1, 0, 0, 218, 0, 195, 0, + 218, 100, 195, 0, 218, 100, 1, 0, 54, 99, + 0, 54, 122, 99, 0, 54, 1, 0, 54, 122, + 1, 0, 73, 99, 0, 73, 122, 99, 0, 73, + 1, 0, 73, 122, 1, 0, 58, 99, 0, 58, + 265, 99, 0, 58, 1, 0, 58, 265, 1, 0, + 49, 265, 99, 0, 49, 1, 0, 49, 265, 1, + 0, 224, 93, 265, 94, 180, 0, 224, 93, 265, + 94, 1, 0, 224, 1, 0, 224, 93, 1, 94, + 0, 224, 93, 1, 0, 131, 0, 70, 180, 226, + 0, 70, 180, 229, 0, 70, 180, 226, 229, 0, + 70, 1, 0, 227, 0, 226, 227, 0, 228, 180, + 0, 60, 93, 152, 94, 0, 60, 1, 0, 60, + 93, 1, 0, 60, 93, 1, 94, 0, 64, 180, + 0, 64, 1, 0, 231, 0, 235, 0, 111, 0, + 76, 0, 93, 265, 94, 0, 232, 0, 239, 0, + 240, 0, 241, 0, 119, 101, 67, 0, 113, 101, + 67, 0, 59, 101, 67, 0, 119, 101, 76, 0, + 93, 265, 1, 0, 119, 101, 1, 0, 113, 101, + 1, 0, 59, 101, 1, 0, 72, 116, 93, 234, + 94, 0, 72, 116, 93, 94, 0, 72, 116, 93, + 234, 94, 138, 0, 72, 116, 93, 94, 138, 0, + 233, 122, 93, 94, 0, 233, 122, 93, 94, 138, + 0, 233, 122, 93, 234, 94, 0, 233, 122, 93, + 234, 94, 138, 0, 72, 1, 99, 0, 72, 116, + 1, 0, 72, 116, 93, 1, 0, 72, 116, 93, + 234, 1, 0, 233, 1, 0, 233, 122, 1, 0, + 119, 101, 72, 0, 230, 101, 72, 0, 265, 0, + 234, 100, 265, 0, 234, 100, 1, 0, 72, 113, + 236, 0, 72, 115, 236, 0, 72, 113, 236, 238, + 0, 72, 115, 236, 238, 0, 72, 115, 238, 178, + 0, 72, 113, 238, 178, 0, 72, 1, 98, 0, + 72, 1, 97, 0, 237, 0, 236, 237, 0, 97, + 265, 98, 0, 97, 265, 1, 0, 97, 1, 0, + 97, 98, 0, 238, 97, 98, 0, 238, 97, 1, + 0, 230, 101, 122, 0, 65, 101, 122, 0, 65, + 1, 0, 119, 93, 94, 0, 119, 93, 234, 94, + 0, 230, 101, 122, 93, 94, 0, 230, 101, 122, + 93, 234, 94, 0, 65, 101, 122, 93, 94, 0, + 65, 101, 122, 93, 234, 94, 0, 65, 101, 1, + 94, 0, 65, 101, 1, 101, 0, 119, 97, 265, + 98, 0, 231, 97, 265, 98, 0, 119, 97, 1, + 0, 119, 97, 265, 1, 0, 231, 97, 1, 0, + 231, 97, 265, 1, 0, 230, 0, 119, 0, 243, + 0, 244, 0, 242, 46, 0, 242, 45, 0, 246, + 0, 247, 0, 3, 245, 0, 4, 245, 0, 248, + 0, 3, 1, 0, 4, 1, 0, 46, 245, 0, + 46, 1, 0, 45, 245, 0, 45, 1, 0, 242, + 0, 89, 245, 0, 90, 245, 0, 249, 0, 89, + 1, 0, 90, 1, 0, 93, 113, 238, 94, 245, + 0, 93, 113, 94, 245, 0, 93, 265, 94, 248, + 0, 93, 119, 238, 94, 248, 0, 93, 113, 97, + 1, 0, 93, 1, 0, 93, 113, 238, 94, 1, + 0, 93, 113, 94, 1, 0, 93, 119, 238, 94, + 1, 0, 245, 0, 250, 5, 245, 0, 250, 6, + 245, 0, 250, 7, 245, 0, 250, 5, 1, 0, + 250, 6, 1, 0, 250, 7, 1, 0, 250, 0, + 251, 3, 250, 0, 251, 4, 250, 0, 251, 3, + 1, 0, 251, 4, 1, 0, 251, 0, 252, 8, + 251, 0, 252, 9, 251, 0, 252, 10, 251, 0, + 252, 8, 1, 0, 252, 9, 1, 0, 252, 10, + 1, 0, 252, 0, 253, 20, 252, 0, 253, 18, + 252, 0, 253, 21, 252, 0, 253, 19, 252, 0, + 253, 57, 114, 0, 253, 20, 1, 0, 253, 18, + 1, 0, 253, 21, 1, 0, 253, 19, 1, 0, + 253, 57, 1, 0, 253, 0, 254, 16, 253, 0, + 254, 17, 253, 0, 254, 16, 1, 0, 254, 17, + 1, 0, 254, 0, 255, 11, 254, 0, 255, 11, + 1, 0, 255, 0, 256, 12, 255, 0, 256, 12, + 1, 0, 256, 0, 257, 13, 256, 0, 257, 13, + 1, 0, 257, 0, 258, 14, 257, 0, 258, 14, + 1, 0, 258, 0, 259, 15, 258, 0, 259, 15, + 1, 0, 259, 0, 259, 87, 265, 88, 260, 0, + 259, 87, 88, 1, 0, 259, 87, 1, 0, 259, + 87, 265, 88, 1, 0, 260, 0, 262, 0, 263, + 264, 261, 0, 263, 264, 1, 0, 119, 0, 239, + 0, 241, 0, 91, 0, 92, 0, 261, 0, 265, + 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 485, 491, 493, 494, 495, 496, 497, 501, 503, 506, - 508, 509, 512, 514, 517, 521, 525, 529, 535, 537, - 539, 541, 546, 548, 551, 555, 560, 565, 567, 568, - 569, 570, 571, 572, 573, 576, 581, 587, 589, 592, - 598, 600, 604, 606, 609, 636, 638, 642, 655, 657, - 661, 668, 673, 675, 685, 690, 705, 709, 712, 715, - 718, 720, 722, 727, 731, 733, 735, 737, 741, 743, - 745, 752, 758, 763, 767, 776, 786, 788, 791, 793, - 794, 795, 799, 801, 803, 804, 806, 811, 814, 824, - 827, 829, 833, 836, 843, 849, 857, 859, 861, 863, - 865, 869, 871, 875, 882, 883, 887, 890, 892, 894, - 896, 901, 903, 905, 907, 914, 917, 919, 928, 930, - 934, 939, 944, 948, 953, 958, 960, 967, 969, 971, - 975, 978, 980, 984, 986, 987, 992, 998, 1005, 1013, - 1020, 1023, 1026, 1030, 1033, 1037, 1046, 1048, 1050, 1054, - 1056, 1059, 1066, 1074, 1076, 1080, 1087, 1097, 1101, 1104, - 1107, 1110, 1113, 1116, 1119, 1122, 1124, 1128, 1134, 1139, - 1141, 1145, 1148, 1152, 1154, 1157, 1159, 1160, 1162, 1166, - 1170, 1176, 1181, 1184, 1186, 1190, 1196, 1200, 1205, 1214, - 1218, 1223, 1235, 1237, 1240, 1242, 1244, 1248, 1252, 1255, - 1259, 1261, 1262, 1263, 1264, 1265, 1269, 1271, 1272, 1273, - 1274, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1289, 1292, 1297, 1308, 1311, 1315, 1322, 1332, 1338, - 1344, 1350, 1352, 1357, 1359, 1364, 1366, 1368, 1370, 1372, - 1376, 1378, 1379, 1380, 1381, 1382, 1383, 1386, 1392, 1394, - 1396, 1400, 1405, 1410, 1416, 1426, 1432, 1434, 1436, 1443, - 1446, 1448, 1450, 1454, 1456, 1459, 1463, 1465, 1468, 1475, - 1481, 1483, 1485, 1489, 1497, 1500, 1502, 1504, 1508, 1513, - 1522, 1527, 1530, 1537, 1539, 1541, 1545, 1548, 1557, 1564, - 1566, 1570, 1583, 1585, 1591, 1597, 1601, 1603, 1607, 1610, - 1612, 1616, 1619, 1621, 1623, 1627, 1630, 1632, 1634, 1638, - 1641, 1643, 1645, 1649, 1655, 1657, 1661, 1668, 1670, 1672, - 1674, 1678, 1690, 1693, 1695, 1700, 1704, 1706, 1713, 1721, - 1738, 1740, 1745, 1749, 1752, 1757, 1759, 1762, 1764, 1766, - 1768, 1769, 1770, 1771, 1775, 1777, 1779, 1784, 1786, 1788, - 1790, 1792, 1796, 1799, 1804, 1806, 1811, 1812, 1813, 1814, - 1815, 1817, 1819, 1821, 1823, 1825, 1829, 1831, 1834, 1840, - 1845, 1849, 1852, 1854, 1856, 1860, 1862, 1864, 1866, 1870, - 1873, 1877, 1883, 1885, 1893, 1920, 1922, 1926, 1931, 1938, - 1942, 1945, 1947, 1958, 1969, 1974, 1983, 1985, 1989, 1992, - 1994, 1999, 2004, 2009, 2016, 2018, 2019, 2020, 2023, 2028, - 2033, 2035, 2036, 2038, 2040, 2041, 2043, 2047, 2050, 2054, - 2057, 2061, 2063, 2065, 2067, 2068, 2070, 2074, 2083, 2085, - 2087, 2100, 2102, 2108, 2110, 2112, 2116, 2118, 2123, 2128, - 2133, 2135, 2137, 2141, 2143, 2148, 2153, 2155, 2159, 2161, - 2166, 2171, 2176, 2178, 2180, 2184, 2186, 2191, 2196, 2201, - 2206, 2208, 2210, 2212, 2214, 2216, 2220, 2222, 2227, 2232, - 2234, 2238, 2240, 2245, 2249, 2251, 2256, 2260, 2262, 2267, - 2271, 2273, 2278, 2282, 2284, 2289, 2293, 2295, 2300, 2306, - 2308, 2312, 2314, 2317, 2320, 2328, 2330, 2331, 2334, 2336, - 2339, 2343 + 500, 506, 508, 509, 510, 511, 512, 516, 518, 521, + 523, 524, 527, 529, 532, 536, 540, 544, 550, 552, + 554, 556, 561, 563, 566, 570, 575, 580, 582, 583, + 584, 585, 586, 587, 588, 591, 596, 602, 604, 607, + 613, 615, 619, 621, 624, 651, 653, 657, 670, 672, + 676, 683, 688, 690, 700, 705, 720, 724, 727, 730, + 733, 735, 737, 742, 746, 748, 750, 752, 756, 758, + 760, 767, 773, 778, 782, 791, 801, 803, 806, 808, + 809, 810, 814, 816, 818, 819, 821, 826, 829, 839, + 842, 844, 848, 851, 858, 864, 872, 874, 876, 878, + 880, 884, 886, 890, 897, 898, 902, 905, 907, 909, + 911, 916, 918, 920, 922, 929, 932, 934, 943, 945, + 949, 954, 959, 963, 968, 973, 975, 981, 991, 993, + 995, 999, 1002, 1004, 1008, 1010, 1011, 1016, 1022, 1029, + 1037, 1044, 1047, 1050, 1054, 1057, 1061, 1070, 1072, 1074, + 1078, 1080, 1083, 1090, 1098, 1100, 1104, 1111, 1121, 1125, + 1128, 1131, 1134, 1137, 1140, 1143, 1146, 1148, 1152, 1158, + 1163, 1165, 1169, 1172, 1176, 1178, 1181, 1183, 1184, 1186, + 1190, 1194, 1200, 1205, 1208, 1210, 1214, 1220, 1224, 1229, + 1238, 1242, 1247, 1259, 1261, 1264, 1266, 1268, 1272, 1276, + 1279, 1283, 1285, 1286, 1287, 1288, 1289, 1293, 1295, 1296, + 1297, 1298, 1302, 1304, 1305, 1306, 1307, 1308, 1309, 1310, + 1311, 1312, 1313, 1316, 1321, 1332, 1335, 1339, 1346, 1356, + 1362, 1368, 1374, 1376, 1381, 1383, 1388, 1390, 1392, 1394, + 1396, 1400, 1402, 1403, 1404, 1405, 1406, 1407, 1410, 1416, + 1418, 1420, 1424, 1429, 1434, 1440, 1450, 1456, 1458, 1460, + 1467, 1470, 1472, 1474, 1478, 1480, 1483, 1487, 1489, 1492, + 1499, 1505, 1507, 1509, 1513, 1521, 1524, 1526, 1528, 1532, + 1537, 1546, 1551, 1554, 1561, 1563, 1565, 1569, 1572, 1581, + 1588, 1590, 1594, 1607, 1609, 1615, 1621, 1625, 1627, 1631, + 1634, 1636, 1640, 1643, 1645, 1647, 1651, 1654, 1656, 1658, + 1662, 1665, 1667, 1669, 1673, 1679, 1681, 1685, 1692, 1694, + 1696, 1698, 1702, 1714, 1717, 1719, 1724, 1728, 1730, 1737, + 1745, 1762, 1764, 1769, 1773, 1776, 1781, 1783, 1786, 1788, + 1790, 1792, 1793, 1794, 1795, 1799, 1801, 1803, 1808, 1810, + 1812, 1814, 1816, 1820, 1823, 1828, 1830, 1835, 1836, 1837, + 1838, 1839, 1841, 1843, 1845, 1847, 1849, 1853, 1855, 1858, + 1864, 1869, 1873, 1876, 1878, 1880, 1884, 1886, 1888, 1890, + 1894, 1897, 1901, 1907, 1909, 1917, 1944, 1946, 1950, 1955, + 1962, 1966, 1969, 1971, 1982, 1993, 1998, 2007, 2009, 2013, + 2016, 2018, 2023, 2028, 2033, 2040, 2042, 2043, 2044, 2047, + 2052, 2057, 2059, 2060, 2062, 2064, 2065, 2067, 2071, 2074, + 2078, 2081, 2085, 2087, 2089, 2091, 2092, 2094, 2098, 2107, + 2109, 2111, 2124, 2126, 2132, 2134, 2136, 2140, 2142, 2147, + 2152, 2157, 2159, 2161, 2165, 2167, 2172, 2177, 2179, 2183, + 2185, 2190, 2195, 2200, 2202, 2204, 2208, 2210, 2215, 2220, + 2225, 2230, 2232, 2234, 2236, 2238, 2240, 2244, 2246, 2251, + 2256, 2258, 2262, 2264, 2269, 2273, 2275, 2280, 2284, 2286, + 2291, 2295, 2297, 2302, 2306, 2308, 2313, 2317, 2319, 2324, + 2330, 2332, 2336, 2338, 2341, 2344, 2352, 2354, 2355, 2358, + 2360, 2363, 2367 }; #endif @@ -792,13 +808,14 @@ static const char * const yytname[] = { "$","error","$undefined.","PLUS_TK", "interface_type_list","class_body","class_body_declarations","class_body_declaration", "class_member_declaration","field_declaration","variable_declarators","variable_declarator", "variable_declarator_id","variable_initializer","method_declaration","@3","method_header", -"method_declarator","formal_parameter_list","formal_parameter","throws","class_type_list", -"method_body","static_initializer","static","constructor_declaration","@4","constructor_header", -"constructor_declarator","constructor_body","constructor_block_end","explicit_constructor_invocation", -"this_or_super","interface_declaration","@5","@6","@7","@8","extends_interfaces", -"interface_body","interface_member_declarations","interface_member_declaration", -"constant_declaration","abstract_method_declaration","array_initializer","variable_initializers", -"block","block_begin","block_end","block_statements","block_statement","local_variable_declaration_statement", +"method_declarator","formal_parameter_list","formal_parameter","final","throws", +"class_type_list","method_body","static_initializer","static","constructor_declaration", +"@4","constructor_header","constructor_declarator","constructor_body","constructor_block_end", +"explicit_constructor_invocation","this_or_super","interface_declaration","@5", +"@6","@7","@8","extends_interfaces","interface_body","interface_member_declarations", +"interface_member_declaration","constant_declaration","abstract_method_declaration", +"array_initializer","variable_initializers","block","block_begin","block_end", +"block_statements","block_statement","local_variable_declaration_statement", "local_variable_declaration","statement","statement_nsi","statement_without_trailing_substatement", "empty_statement","label_decl","labeled_statement","labeled_statement_nsi","expression_statement", "statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi", @@ -834,45 +851,45 @@ static const short yyr1[] = { 0, 143, 143, 144, 144, 144, 144, 145, 145, 145, 145, 145, 146, 146, 148, 147, 147, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, - 151, 151, 151, 152, 152, 152, 152, 153, 153, 153, - 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, - 158, 160, 160, 161, 161, 162, 162, 162, 162, 163, - 163, 164, 164, 164, 164, 165, 165, 167, 166, 168, - 166, 169, 166, 170, 166, 166, 166, 171, 171, 171, - 171, 172, 172, 173, 173, 174, 174, 174, 174, 175, - 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, - 180, 181, 182, 182, 183, 183, 183, 184, 185, 185, - 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, - 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 189, 190, 191, 191, 192, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, - 195, 196, 197, 199, 198, 200, 200, 200, 200, 201, - 201, 201, 201, 202, 202, 203, 204, 204, 205, 205, - 205, 205, 205, 206, 207, 207, 207, 207, 208, 209, - 210, 211, 211, 211, 211, 211, 212, 212, 213, 213, - 213, 214, 215, 215, 215, 215, 216, 216, 217, 217, - 217, 218, 218, 218, 218, 219, 219, 219, 219, 220, - 220, 220, 220, 221, 221, 221, 222, 222, 222, 222, - 222, 223, 224, 224, 224, 224, 225, 225, 226, 227, - 227, 227, 227, 228, 228, 229, 229, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, - 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, - 235, 236, 236, 236, 237, 237, 237, 238, 238, 238, - 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, - 240, 240, 240, 240, 241, 241, 241, 241, 242, 243, - 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, - 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, - 249, 249, 249, 250, 250, 250, 250, 250, 251, 251, - 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, + 151, 151, 151, 152, 152, 152, 152, 153, 154, 154, + 154, 155, 155, 155, 156, 156, 156, 157, 157, 158, + 160, 159, 161, 161, 162, 162, 163, 163, 163, 163, + 164, 164, 165, 165, 165, 165, 166, 166, 168, 167, + 169, 167, 170, 167, 171, 167, 167, 167, 172, 172, + 172, 172, 173, 173, 174, 174, 175, 175, 175, 175, + 176, 177, 177, 178, 178, 178, 179, 179, 179, 180, + 180, 181, 182, 183, 183, 184, 184, 184, 185, 186, + 186, 187, 187, 187, 187, 187, 187, 188, 188, 188, + 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 190, 191, 192, 192, 193, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 195, 195, 195, 195, 195, 195, 195, 196, 196, + 196, 196, 197, 198, 200, 199, 201, 201, 201, 201, + 202, 202, 202, 202, 203, 203, 204, 205, 205, 206, + 206, 206, 206, 206, 207, 208, 208, 208, 208, 209, + 210, 211, 212, 212, 212, 212, 212, 213, 213, 214, + 214, 214, 215, 216, 216, 216, 216, 217, 217, 218, + 218, 218, 219, 219, 219, 219, 220, 220, 220, 220, + 221, 221, 221, 221, 222, 222, 222, 223, 223, 223, + 223, 223, 224, 225, 225, 225, 225, 226, 226, 227, + 228, 228, 228, 228, 229, 229, 230, 230, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 233, 233, 234, + 234, 234, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 237, 237, 237, 238, 238, 238, 239, 239, + 239, 240, 240, 240, 240, 240, 240, 240, 240, 241, + 241, 241, 241, 241, 241, 242, 242, 242, 242, 243, + 244, 245, 245, 245, 245, 245, 245, 245, 246, 246, + 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, + 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, - 253, 254, 254, 254, 255, 255, 255, 256, 256, 256, - 257, 257, 257, 258, 258, 258, 259, 259, 259, 259, - 259, 260, 260, 261, 261, 262, 262, 262, 263, 263, - 264, 265 + 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, + 254, 254, 255, 255, 255, 256, 256, 256, 257, 257, + 257, 258, 258, 258, 259, 259, 259, 260, 260, 260, + 260, 260, 261, 261, 262, 262, 263, 263, 263, 264, + 264, 265, 266 }; static const short yyr2[] = { 0, @@ -888,45 +905,45 @@ static const short yyr2[] = { 0, 3, 3, 1, 3, 3, 4, 1, 3, 2, 3, 3, 1, 1, 0, 3, 2, 3, 3, 4, 4, 2, 3, 2, 3, 2, 3, 4, 3, 3, 3, - 1, 3, 3, 2, 3, 2, 3, 0, 2, 2, - 1, 3, 3, 1, 2, 1, 2, 3, 1, 0, - 3, 2, 3, 3, 4, 2, 3, 3, 4, 1, - 2, 4, 5, 7, 6, 1, 1, 0, 4, 0, - 5, 0, 5, 0, 6, 3, 4, 2, 3, 2, - 3, 2, 3, 1, 2, 1, 1, 1, 1, 1, - 2, 2, 2, 3, 4, 1, 3, 3, 2, 3, - 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, + 1, 3, 3, 2, 3, 2, 3, 1, 0, 2, + 2, 1, 3, 3, 1, 2, 1, 2, 3, 1, + 0, 3, 2, 3, 3, 4, 2, 3, 3, 4, + 1, 2, 4, 5, 7, 6, 1, 1, 0, 4, + 0, 5, 0, 5, 0, 6, 3, 4, 2, 3, + 2, 3, 2, 3, 1, 2, 1, 1, 1, 1, + 1, 2, 2, 2, 3, 4, 1, 3, 3, 2, + 3, 1, 1, 1, 2, 1, 1, 1, 2, 2, + 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, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 4, 4, 5, 4, 5, 6, 7, 6, - 1, 1, 1, 1, 1, 1, 1, 5, 2, 3, - 4, 7, 7, 0, 3, 4, 2, 3, 5, 2, - 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, - 2, 3, 2, 4, 2, 2, 3, 4, 2, 1, - 7, 7, 6, 3, 5, 4, 7, 6, 2, 2, - 3, 2, 0, 1, 1, 2, 0, 1, 1, 3, - 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, - 3, 2, 3, 3, 2, 3, 5, 5, 2, 4, - 3, 1, 3, 3, 4, 2, 1, 2, 2, 4, - 2, 3, 4, 2, 2, 1, 1, 1, 1, 3, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 3, 3, 5, 4, 6, 5, 4, 5, 5, 6, - 3, 3, 4, 5, 2, 3, 3, 3, 1, 3, - 3, 3, 3, 4, 4, 4, 4, 3, 3, 1, - 2, 3, 3, 2, 2, 3, 3, 3, 3, 2, - 3, 4, 5, 6, 5, 6, 4, 4, 4, 4, - 3, 4, 3, 4, 1, 1, 1, 1, 2, 2, - 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, - 2, 1, 2, 2, 1, 2, 2, 5, 4, 4, - 5, 4, 2, 5, 4, 5, 1, 3, 3, 3, - 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, - 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 4, 4, 5, 4, 5, 6, 7, + 6, 1, 1, 1, 1, 1, 1, 1, 5, 2, + 3, 4, 7, 7, 0, 3, 4, 2, 3, 5, + 2, 3, 3, 4, 1, 2, 2, 1, 2, 3, + 2, 2, 3, 2, 4, 2, 2, 3, 4, 2, + 1, 7, 7, 6, 3, 5, 4, 7, 6, 2, + 2, 3, 2, 0, 1, 1, 2, 0, 1, 1, + 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, + 2, 3, 2, 3, 3, 2, 3, 5, 5, 2, + 4, 3, 1, 3, 3, 4, 2, 1, 2, 2, + 4, 2, 3, 4, 2, 2, 1, 1, 1, 1, + 3, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 5, 4, 6, 5, 4, 5, 5, + 6, 3, 3, 4, 5, 2, 3, 3, 3, 1, + 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, + 1, 2, 3, 3, 2, 2, 3, 3, 3, 3, + 2, 3, 4, 5, 6, 5, 6, 4, 4, 4, + 4, 3, 4, 3, 4, 1, 1, 1, 1, 2, + 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, + 2, 2, 1, 2, 2, 1, 2, 2, 5, 4, + 4, 5, 4, 2, 5, 4, 5, 1, 3, 3, + 3, 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, - 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, - 1, 3, 3, 1, 3, 3, 1, 5, 4, 3, - 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, - 1, 1 + 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, + 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, + 3, 1, 3, 3, 1, 3, 3, 1, 5, 4, + 3, 5, 1, 1, 3, 3, 1, 1, 1, 1, + 1, 1, 1 }; static const short yydefact[] = { 0, @@ -934,1330 +951,1338 @@ static const short yydefact[] = { 0, 0, 36, 43, 44, 38, 0, 51, 52, 46, 27, 0, 23, 24, 25, 0, 62, 0, 41, 0, 0, 37, 39, 0, 0, 56, 0, 0, 47, 45, 0, - 166, 0, 0, 162, 63, 0, 69, 42, 40, 0, - 0, 0, 61, 0, 49, 0, 26, 170, 17, 168, - 15, 0, 159, 0, 0, 68, 16, 0, 0, 59, - 167, 0, 164, 64, 69, 50, 48, 12, 0, 10, - 11, 172, 0, 8, 9, 13, 14, 15, 0, 178, - 180, 0, 179, 0, 174, 176, 177, 171, 169, 163, - 67, 71, 72, 70, 0, 161, 0, 57, 113, 0, - 128, 111, 0, 0, 90, 93, 128, 0, 0, 0, - 115, 0, 0, 182, 181, 173, 175, 0, 0, 60, - 165, 0, 0, 0, 0, 108, 99, 88, 0, 0, - 0, 0, 107, 21, 18, 22, 20, 19, 114, 128, - 112, 0, 128, 74, 73, 55, 191, 75, 23, 0, + 167, 0, 0, 163, 63, 0, 69, 42, 40, 0, + 0, 0, 61, 0, 49, 0, 26, 171, 17, 169, + 15, 0, 160, 0, 0, 68, 16, 0, 0, 59, + 168, 0, 165, 64, 69, 50, 48, 12, 0, 10, + 11, 173, 0, 8, 9, 13, 14, 15, 0, 179, + 181, 0, 180, 0, 175, 177, 178, 172, 170, 164, + 67, 71, 72, 70, 0, 162, 0, 57, 113, 0, + 129, 111, 0, 0, 90, 93, 129, 0, 0, 0, + 115, 0, 0, 183, 182, 174, 176, 0, 0, 60, + 166, 0, 0, 0, 0, 108, 99, 88, 0, 0, + 0, 0, 107, 21, 18, 22, 20, 19, 114, 129, + 112, 0, 129, 74, 73, 55, 192, 75, 23, 0, 86, 0, 77, 79, 83, 85, 0, 80, 0, 81, - 140, 128, 87, 82, 0, 58, 119, 116, 0, 0, - 0, 121, 130, 131, 129, 120, 118, 92, 0, 91, - 95, 0, 0, 0, 0, 0, 0, 0, 339, 0, - 0, 0, 0, 6, 5, 2, 3, 4, 7, 338, - 0, 406, 0, 103, 405, 336, 341, 0, 337, 342, - 343, 344, 422, 407, 408, 437, 411, 412, 415, 425, - 444, 449, 456, 467, 472, 475, 478, 481, 484, 487, - 492, 501, 493, 0, 102, 100, 98, 101, 110, 89, - 109, 189, 0, 128, 76, 78, 84, 106, 0, 137, - 0, 142, 0, 0, 0, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 0, 223, 0, 8, 406, - 0, 322, 197, 0, 212, 0, 193, 195, 0, 196, - 201, 213, 0, 202, 214, 0, 203, 204, 215, 254, - 0, 205, 0, 216, 206, 293, 0, 217, 218, 219, - 221, 220, 0, 222, 247, 246, 0, 244, 245, 242, - 243, 241, 126, 124, 0, 117, 0, 0, 416, 406, - 342, 344, 413, 417, 414, 421, 420, 419, 418, 0, - 390, 0, 0, 0, 16, 0, 426, 423, 427, 424, - 433, 0, 406, 0, 183, 186, 0, 0, 0, 0, - 0, 96, 0, 0, 365, 0, 410, 409, 0, 0, + 141, 129, 87, 82, 0, 58, 119, 116, 0, 128, + 0, 121, 0, 131, 132, 130, 120, 118, 92, 0, + 91, 95, 0, 0, 0, 0, 0, 0, 0, 340, + 0, 0, 0, 0, 6, 5, 2, 3, 4, 7, + 339, 0, 407, 0, 103, 406, 337, 342, 0, 338, + 343, 344, 345, 423, 408, 409, 438, 412, 413, 416, + 426, 445, 450, 457, 468, 473, 476, 479, 482, 485, + 488, 493, 502, 494, 0, 102, 100, 98, 101, 110, + 89, 109, 190, 0, 129, 76, 78, 84, 106, 0, + 138, 0, 143, 0, 0, 0, 281, 0, 0, 0, + 0, 0, 0, 0, 0, 340, 0, 224, 0, 8, + 407, 0, 323, 198, 0, 213, 0, 194, 196, 0, + 197, 202, 214, 0, 203, 215, 0, 204, 205, 216, + 255, 0, 206, 0, 217, 207, 294, 0, 218, 219, + 220, 222, 221, 0, 223, 248, 247, 0, 245, 246, + 243, 244, 242, 126, 124, 117, 0, 0, 0, 417, + 407, 343, 345, 414, 418, 415, 422, 421, 420, 419, + 0, 391, 0, 0, 0, 16, 0, 427, 424, 428, + 425, 434, 0, 407, 0, 184, 187, 0, 0, 0, + 0, 0, 96, 0, 0, 366, 0, 411, 410, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, - 500, 0, 144, 0, 143, 136, 105, 134, 138, 191, - 141, 0, 230, 231, 229, 249, 0, 315, 0, 304, - 302, 0, 312, 310, 0, 276, 0, 257, 0, 326, - 0, 290, 0, 308, 306, 0, 0, 199, 0, 0, - 226, 224, 0, 0, 192, 190, 194, 198, 406, 322, - 225, 228, 0, 275, 0, 406, 0, 295, 299, 292, - 0, 0, 319, 0, 127, 125, 123, 122, 133, 132, - 352, 347, 0, 389, 379, 378, 361, 0, 372, 380, - 0, 373, 0, 362, 0, 0, 0, 0, 0, 0, - 349, 340, 184, 0, 351, 346, 391, 0, 369, 401, - 0, 350, 345, 367, 348, 368, 388, 403, 0, 366, - 0, 441, 438, 442, 439, 443, 440, 447, 445, 448, - 446, 453, 450, 454, 451, 455, 452, 463, 458, 465, - 460, 462, 457, 464, 459, 466, 0, 461, 470, 468, - 471, 469, 474, 473, 477, 476, 480, 479, 483, 482, - 486, 485, 490, 0, 0, 495, 494, 145, 135, 406, - 146, 0, 0, 150, 0, 250, 0, 316, 314, 305, - 303, 313, 311, 277, 0, 258, 0, 0, 0, 323, - 327, 0, 324, 291, 309, 307, 340, 0, 200, 232, - 0, 0, 0, 255, 0, 296, 0, 284, 0, 0, - 321, 0, 397, 398, 0, 384, 385, 0, 381, 374, - 0, 377, 375, 376, 363, 354, 0, 435, 429, 432, - 0, 0, 430, 188, 185, 187, 392, 0, 402, 399, - 0, 404, 400, 357, 0, 489, 0, 0, 147, 0, - 0, 151, 148, 251, 0, 278, 274, 0, 331, 0, - 335, 334, 328, 325, 329, 236, 0, 233, 234, 0, - 0, 0, 260, 0, 264, 0, 267, 0, 301, 300, - 286, 0, 298, 0, 320, 0, 395, 0, 383, 382, - 387, 386, 356, 364, 353, 434, 428, 436, 431, 371, - 370, 393, 0, 358, 359, 491, 488, 0, 149, 0, - 0, 0, 248, 0, 201, 0, 208, 209, 0, 210, - 211, 0, 259, 332, 0, 237, 0, 0, 235, 273, - 270, 271, 502, 0, 262, 265, 0, 261, 0, 268, - 0, 0, 285, 0, 318, 317, 396, 355, 394, 360, - 0, 152, 0, 0, 0, 227, 279, 0, 333, 330, - 240, 238, 0, 272, 269, 263, 0, 283, 0, 0, - 0, 153, 0, 252, 0, 0, 239, 281, 282, 155, - 0, 0, 0, 0, 154, 0, 0, 0, 0, 288, - 0, 253, 287, 0, 0, 0 + 500, 501, 0, 145, 0, 144, 137, 105, 135, 139, + 192, 142, 0, 231, 232, 230, 250, 0, 316, 0, + 305, 303, 0, 313, 311, 0, 277, 0, 258, 0, + 327, 0, 291, 0, 309, 307, 0, 0, 200, 0, + 0, 227, 225, 0, 0, 193, 191, 195, 199, 407, + 323, 226, 229, 0, 276, 0, 407, 0, 296, 300, + 293, 0, 0, 320, 0, 123, 122, 127, 125, 134, + 133, 353, 348, 0, 390, 380, 379, 362, 0, 373, + 381, 0, 374, 0, 363, 0, 0, 0, 0, 0, + 0, 350, 341, 185, 0, 352, 347, 392, 0, 370, + 402, 0, 351, 346, 368, 349, 369, 389, 404, 0, + 367, 0, 442, 439, 443, 440, 444, 441, 448, 446, + 449, 447, 454, 451, 455, 452, 456, 453, 464, 459, + 466, 461, 463, 458, 465, 460, 467, 0, 462, 471, + 469, 472, 470, 475, 474, 478, 477, 481, 480, 484, + 483, 487, 486, 491, 0, 0, 496, 495, 146, 136, + 407, 147, 0, 0, 151, 0, 251, 0, 317, 315, + 306, 304, 314, 312, 278, 0, 259, 0, 0, 0, + 324, 328, 0, 325, 292, 310, 308, 341, 0, 201, + 233, 0, 0, 0, 256, 0, 297, 0, 285, 0, + 0, 322, 0, 398, 399, 0, 385, 386, 0, 382, + 375, 0, 378, 376, 377, 364, 355, 0, 436, 430, + 433, 0, 0, 431, 189, 186, 188, 393, 0, 403, + 400, 0, 405, 401, 358, 0, 490, 0, 0, 148, + 0, 0, 152, 149, 252, 0, 279, 275, 0, 332, + 0, 336, 335, 329, 326, 330, 237, 0, 234, 235, + 0, 0, 0, 261, 0, 265, 0, 268, 0, 302, + 301, 287, 0, 299, 0, 321, 0, 396, 0, 384, + 383, 388, 387, 357, 365, 354, 435, 429, 437, 432, + 372, 371, 394, 0, 359, 360, 492, 489, 0, 150, + 0, 0, 0, 249, 0, 202, 0, 209, 210, 0, + 211, 212, 0, 260, 333, 0, 238, 0, 0, 236, + 274, 271, 272, 503, 0, 263, 266, 0, 262, 0, + 269, 0, 0, 286, 0, 319, 318, 397, 356, 395, + 361, 0, 153, 0, 0, 0, 228, 280, 0, 334, + 331, 241, 239, 0, 273, 270, 264, 0, 284, 0, + 0, 0, 154, 0, 253, 0, 0, 240, 282, 283, + 156, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 289, 0, 254, 288, 0, 0, 0 }; -static const short yydefgoto[] = { 774, - 210, 278, 211, 85, 86, 68, 60, 87, 212, 22, +static const short yydefgoto[] = { 775, + 211, 279, 212, 85, 86, 68, 60, 87, 213, 22, 23, 24, 8, 9, 10, 11, 12, 13, 14, 15, - 440, 283, 132, 105, 47, 70, 104, 130, 162, 163, - 164, 91, 114, 115, 116, 213, 166, 259, 92, 111, - 181, 182, 136, 185, 397, 168, 169, 170, 261, 171, - 172, 401, 551, 552, 284, 18, 43, 72, 65, 107, - 44, 63, 94, 95, 96, 97, 214, 357, 285, 175, - 554, 719, 287, 288, 289, 290, 694, 291, 292, 293, - 294, 697, 295, 296, 297, 298, 698, 299, 443, 300, - 584, 654, 655, 656, 657, 301, 302, 700, 303, 304, - 305, 701, 306, 307, 450, 662, 663, 308, 309, 310, - 311, 312, 313, 314, 570, 571, 572, 573, 215, 216, - 217, 218, 488, 219, 469, 470, 471, 220, 221, 222, + 441, 284, 132, 105, 47, 70, 104, 130, 162, 163, + 164, 91, 114, 115, 116, 214, 166, 260, 92, 111, + 181, 182, 183, 136, 186, 398, 168, 169, 170, 262, + 171, 172, 402, 552, 553, 285, 18, 43, 72, 65, + 107, 44, 63, 94, 95, 96, 97, 215, 358, 286, + 175, 555, 720, 288, 289, 290, 291, 695, 292, 293, + 294, 295, 698, 296, 297, 298, 299, 699, 300, 444, + 301, 585, 655, 656, 657, 658, 302, 303, 701, 304, + 305, 306, 702, 307, 308, 451, 663, 664, 309, 310, + 311, 312, 313, 314, 315, 571, 572, 573, 574, 216, + 217, 218, 219, 489, 220, 470, 471, 472, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 392, 489, 714 + 243, 244, 245, 393, 490, 715 }; -static const short yypact[] = { 409, --32768,-32768, 168, -48, 226, 450,-32768,-32768, 240, 262, - 446,-32768,-32768,-32768,-32768, 723,-32768,-32768,-32768,-32768, - 13,-32768,-32768,-32768, 348,-32768, 250,-32768, 74, 474, --32768,-32768, 487, 587,-32768, -48, 465,-32768,-32768, 476, --32768, 467, -49, -42,-32768, 470, 41,-32768,-32768, -48, - 589, 359,-32768, 337,-32768, 66,-32768,-32768,-32768,-32768, - 0, 1441,-32768, 488, -49,-32768,-32768, 307, 496,-32768, --32768, -49, -42,-32768, 41,-32768,-32768,-32768, 511,-32768, --32768,-32768, 539, 12,-32768,-32768, 133, 442, 645,-32768, --32768, 77,-32768, 1574,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 21, 169,-32768, -49,-32768,-32768, 196, - 1,-32768, 501, 181,-32768, 746, 1, 105, 107, 336, --32768, 557, 558,-32768,-32768,-32768,-32768, 565, 1027,-32768, --32768, 169, 590, 574, 170,-32768,-32768,-32768, 576, 2045, - 180, 390,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1, --32768, 504, 1,-32768,-32768, 347, 237,-32768, 376, 645, --32768, 1354,-32768,-32768, 404,-32768, 52,-32768, 403,-32768, --32768, 516,-32768,-32768, 1837,-32768,-32768,-32768, 583, 876, - 321,-32768,-32768,-32768, 479,-32768,-32768,-32768, 513,-32768, --32768, 2741, 2792, 2857, 2908, 491, 47, 670,-32768, 2973, - 3024, 3089, 5088,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 541, 958, 29,-32768, 562, 571,-32768, 584,-32768, 370, --32768, 424, 696,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1057, 872, 1116, 888, 878, 676, 698, 668, 712, 209, --32768,-32768,-32768, 797,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 931, 516,-32768,-32768,-32768,-32768, 472, 635, - 662,-32768, 178, 271, 3140,-32768, 115, 732, 118, 293, - 325, 148, 343, 149, 678, 5387,-32768, -48, 628, 709, - 437, 833,-32768, 687,-32768, 1769,-32768,-32768, 699,-32768, --32768,-32768, 1905,-32768,-32768, 714,-32768,-32768,-32768,-32768, - 1905,-32768, 1905,-32768,-32768, 5438, 721,-32768,-32768,-32768, --32768,-32768, 412,-32768, 577, 766, 696, 887, 905,-32768, --32768,-32768,-32768, 879, 594,-32768, 663, 616,-32768, 731, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 30, --32768, 657, 1030, 736, 736, 413,-32768,-32768,-32768,-32768, --32768, 772, 1044, 19,-32768,-32768, 719, 32, 5155, 3205, - 563,-32768, 8, 3256,-32768, 416,-32768,-32768, 3321, 3372, - 3437, 3488, 3553, 3604, 3669, 3720, 3785, 3836, 3901, 3952, - 690, 4017, 4068, 4133, 4184, 4249, 4300, 4365, 2096,-32768, --32768, 4416,-32768, 561,-32768,-32768,-32768, 751,-32768,-32768, --32768, 1769,-32768,-32768,-32768,-32768, 4481,-32768, 86,-32768, --32768, 121,-32768,-32768, 167,-32768, 4532,-32768, 4597,-32768, - 791,-32768, 4996,-32768,-32768, 211, 43, 757, 2161, 892, --32768,-32768, -48, 2212,-32768,-32768,-32768,-32768, 1056, 834, --32768,-32768, 785,-32768, 818, 910, 876,-32768,-32768,-32768, - 55, 2277,-32768, 4648,-32768, 879,-32768,-32768,-32768,-32768, --32768,-32768, -37, 793,-32768,-32768,-32768, 2328, 736,-32768, - -32, 736, -32,-32768, 2393, 4713, 201, 521, 2444, 748, --32768, 5463,-32768, 1130,-32768,-32768,-32768, 573,-32768,-32768, - 243,-32768,-32768,-32768,-32768,-32768, 798,-32768, 248,-32768, - 5206,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1057,-32768, - 1057,-32768, 872,-32768, 872,-32768, 872,-32768, 1116,-32768, - 1116,-32768, 1116,-32768, 1116,-32768, 12,-32768,-32768, 888, --32768, 888,-32768, 878,-32768, 676,-32768, 698,-32768, 668, --32768, 712,-32768, 897, 816,-32768,-32768,-32768,-32768, 982, --32768, 1769, 819, 822, 1769,-32768, 236,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 354,-32768, 829, 429, 216, 791, --32768, 403,-32768,-32768,-32768,-32768,-32768, 434, 757,-32768, - 924, 24, 692,-32768, 835,-32768, 5130,-32768, 5021, 831, - 842, 844,-32768,-32768, 5271,-32768,-32768, 260,-32768, 846, - 264,-32768, 846,-32768,-32768, 169, 84,-32768,-32768,-32768, - 4764, 1427,-32768,-32768,-32768,-32768,-32768, 4829,-32768,-32768, - 5322,-32768,-32768, 169, 623,-32768, 4880, 928,-32768, 1769, - 2509,-32768,-32768,-32768, 1971,-32768,-32768, 255,-32768, 665, --32768,-32768,-32768,-32768,-32768,-32768, 2560,-32768,-32768, 940, - 411, 4945,-32768, 727,-32768, 1544,-32768, 5387,-32768,-32768, --32768, 852, 848, 5063,-32768, 342,-32768, 644,-32768,-32768, --32768,-32768,-32768,-32768, 169,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 669,-32768, 169,-32768,-32768, 440,-32768, 228, - 94, 444,-32768, 900, 904, 1971,-32768,-32768, 1971,-32768, --32768, 864,-32768, 875, 885,-32768, 965, 106,-32768,-32768, --32768,-32768,-32768, 456,-32768,-32768, 1618,-32768, 1686,-32768, - 889, 1905,-32768, 894,-32768,-32768,-32768,-32768,-32768,-32768, - 2625,-32768, 235, 4481, 1905,-32768,-32768, 2676,-32768,-32768, --32768,-32768, 971,-32768,-32768,-32768, 891,-32768, 1905, 238, - 116,-32768, 362,-32768, 5021, 899,-32768,-32768,-32768,-32768, - 241, 1971, 921, 5063,-32768, 962, 1971, 929, 1971,-32768, - 1971,-32768,-32768, 1026, 1028,-32768 +static const short yypact[] = { 538, +-32768,-32768, 17, -63, 418, 431,-32768,-32768, 519, 568, + 547,-32768,-32768,-32768,-32768, 599,-32768,-32768,-32768,-32768, + 18,-32768,-32768,-32768, 294,-32768, 335,-32768, 23, 644, +-32768,-32768, 560, 647,-32768, -63, 439,-32768,-32768, 41, +-32768, 458, -45, -42,-32768, 460, 54,-32768,-32768, -63, + 683, 297,-32768, 395,-32768, 43,-32768,-32768,-32768,-32768, + 134, 1185,-32768, 463, -45,-32768,-32768, 269, 471,-32768, +-32768, -45, -42,-32768, 54,-32768,-32768,-32768, 472,-32768, +-32768,-32768, 476, 118,-32768,-32768, 174, 189, 727,-32768, +-32768, 53,-32768, 1219,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 194, 222,-32768, -45,-32768,-32768, 196, + 185,-32768, 155, 337,-32768, 324, 185, 104, 213, 217, +-32768, 491, 499,-32768,-32768,-32768,-32768, 509, 862,-32768, +-32768, 222, 663, 531, 229,-32768,-32768,-32768, 533, 1531, + 230, 467,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 185, +-32768, 715, 185,-32768,-32768, 389, 399,-32768, 425, 727, +-32768, 1006,-32768,-32768, 429,-32768, 79,-32768, 457,-32768, +-32768, 523,-32768,-32768, 1851,-32768,-32768,-32768, 536, 562, + 354,-32768, 768,-32768,-32768, 520,-32768,-32768,-32768, 311, +-32768,-32768, 2820, 2871, 2936, 2987, 530, 28, 650,-32768, + 3052, 3103, 3168, 5167,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 541, 858, 48,-32768, 548, 572,-32768, 540,-32768, + 746,-32768, 753, 783,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 778, 837, 906, 1017, 831, 665, 681, 690, 676, + 5,-32768,-32768,-32768, 769,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 749, 523,-32768,-32768,-32768,-32768, 370, + 611, 635,-32768, 708, 101, 3219,-32768, 24, 2124, 27, + 153, 227, 239, 249, 120, 641, 5466,-32768, -63, 382, + 1042, 405, 878,-32768, 648,-32768, 1768,-32768,-32768, 656, +-32768,-32768,-32768, 1919,-32768,-32768, 660,-32768,-32768,-32768, +-32768, 1919,-32768, 1919,-32768,-32768, 1323, 722,-32768,-32768, +-32768,-32768,-32768, 255,-32768, 677, 745, 783, 828, 836, +-32768,-32768,-32768,-32768, 790,-32768, 586, 555, 564,-32768, + -23,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 456,-32768, 566, 838, 667, 667, 304,-32768,-32768,-32768, +-32768,-32768, 561, 929, 267,-32768,-32768, 602, 469, 5234, + 3284, 686,-32768, 211, 3335,-32768, 351,-32768,-32768, 3400, + 3451, 3516, 3567, 3632, 3683, 3748, 3799, 3864, 3915, 3980, + 4031, 819, 4096, 4147, 4212, 4263, 4328, 4379, 4444, 2175, +-32768,-32768, 4495,-32768, 618,-32768,-32768,-32768, 756,-32768, +-32768,-32768, 1768,-32768,-32768,-32768,-32768, 4560,-32768, 61, +-32768,-32768, 89,-32768,-32768, 96,-32768, 4611,-32768, 4676, +-32768, 597,-32768, 5075,-32768,-32768, 110, 340, 680, 2240, + 610,-32768,-32768, -63, 2291,-32768,-32768,-32768,-32768, 1070, + 562,-32768,-32768, 763,-32768, 798, 1055, 880,-32768,-32768, +-32768, 82, 2356,-32768, 4727,-32768,-32768,-32768, 790,-32768, +-32768,-32768,-32768, -7, 786,-32768,-32768,-32768, 2407, 667, +-32768, 642, 667, 642,-32768, 2472, 4792, 235, -26, 2523, + 495,-32768, 5507,-32768, 2059,-32768,-32768,-32768, 625,-32768, +-32768, 242,-32768,-32768,-32768,-32768,-32768, 805,-32768, 248, +-32768, 5285,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 778, +-32768, 778,-32768, 837,-32768, 837,-32768, 837,-32768, 906, +-32768, 906,-32768, 906,-32768, 906,-32768, 118,-32768,-32768, + 1017,-32768, 1017,-32768, 831,-32768, 665,-32768, 681,-32768, + 690,-32768, 676,-32768, 870, 788,-32768,-32768,-32768,-32768, + 1058,-32768, 1768, 807, 804, 1768,-32768, 344,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 362,-32768, 816, 392, 264, + 597,-32768, 457,-32768,-32768,-32768,-32768,-32768, 416, 680, +-32768, 930, 132, -11,-32768, 840,-32768, 5209,-32768, 5100, + 842, 845, 852,-32768,-32768, 5350,-32768,-32768, 258,-32768, + 855, 268,-32768, 855,-32768,-32768, 222, 133,-32768,-32768, +-32768, 4843, 1004,-32768,-32768,-32768,-32768,-32768, 4908,-32768, +-32768, 5401,-32768,-32768, 222, 698,-32768, 4959, 730,-32768, + 1768, 2588,-32768,-32768,-32768, 1985,-32768,-32768, 306,-32768, + 737,-32768,-32768,-32768,-32768,-32768,-32768, 2639,-32768,-32768, + 953, 393, 5024,-32768, 577,-32768, 1152,-32768, 5466,-32768, +-32768,-32768, 873, 868, 5142,-32768, 318,-32768, 717,-32768, +-32768,-32768,-32768,-32768,-32768, 222,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 732,-32768, 222,-32768,-32768, 423,-32768, + 112, 145, 428,-32768, 913, 924, 1985,-32768,-32768, 1985, +-32768,-32768, 882,-32768, 888, 892,-32768, 986, 163,-32768, +-32768,-32768,-32768,-32768, 427,-32768,-32768, 1626,-32768, 1700, +-32768, 895, 1919,-32768, 900,-32768,-32768,-32768,-32768,-32768, +-32768, 2704,-32768, 114, 4560, 1919,-32768,-32768, 2755,-32768, +-32768,-32768,-32768, 1001,-32768,-32768,-32768, 904,-32768, 1919, + 204, 172,-32768, 411,-32768, 5100, 907,-32768,-32768,-32768, +-32768, 223, 1985, 915, 5142,-32768, 951, 1985, 917, 1985, +-32768, 1985,-32768,-32768, 1018, 1024,-32768 }; static const short yypgoto[] = {-32768, --32768, -57, -60, 648, -24, -121, 332,-32768, -3, 485, --32768, 130,-32768, 1022, 770,-32768, 212,-32768,-32768, 851, - 153, 17,-32768,-32768, 981, 961,-32768, -128,-32768, 883, --32768, 126, -117, 901, -167, -193,-32768,-32768, 388, 639, - 788, -326, -98,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 896,-32768, 64,-32768, 636, -2,-32768,-32768,-32768,-32768, - 995, 646,-32768, 954,-32768,-32768, 387,-32768, -120, 799, - 781, -164, -279,-32768, 752, -70, 25, -364,-32768, -343, --32768,-32768,-32768, -270,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 415, 422, -621, -342,-32768,-32768,-32768,-32768, --32768,-32768,-32768, -304,-32768, -623, 760,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 508,-32768, 517,-32768,-32768, - 218,-32768, -413,-32768, 744, 399, -329, 1085, 275, 1199, - 335, 397, 553, -111, 610, 641, -467,-32768, 633, 780, - 642, 626, 697, 706, 715, 705, 707,-32768, 471, 708, - 779,-32768,-32768, -132,-32768 +-32768, -25, 148, 649, -16, -122, 210,-32768, -3, 592, +-32768, 139,-32768, 1023, 623,-32768, 433,-32768,-32768, 655, + 22, 478,-32768,-32768, 963, 954,-32768, -131,-32768, 877, +-32768, -53, -102, 902, -165, -197,-32768,-32768, 144, 678, + 789, -325,-32768, -90,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 884,-32768, 125,-32768, 645, -22,-32768,-32768,-32768, +-32768, 999, 494,-32768, 961,-32768,-32768, -393,-32768, -124, + 795, 773, -162, -281,-32768, 755, -237, 127, -602,-32768, + -601,-32768,-32768,-32768, -303,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 415, 417, -364, -547,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, -433,-32768, -624, 764,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 504,-32768, 506,-32768, +-32768, 220,-32768, -388,-32768, 735, 293, -253, 1128, 277, + 1280, 296, 422, 576, -185, 697, 721, -468,-32768, 545, + 596, 513, 542, 693, 696, 709, 695, 706,-32768, 470, + 691, 823,-32768,-32768, -65,-32768 }; -#define YYLAST 5572 +#define YYLAST 5616 static const short yytable[] = { 21, - 458, 84, 29, 176, 83, 152, 437, 245, 174, 356, - 286, 324, 184, 38, 613, 473, 17, 59, 143, 481, - 582, 67, 478, 480, 649, 17, 17, 17, 84, 362, - 461, 123, 485, 84, 720, 449, 83, 20, 61, 59, - 724, 174, 61, 481, 59, 62, 17, 341, 260, 17, - 17, 249, 258, 134, 251, 586, 593, 64, 88, 93, - 61, 607, 203, 594, 601, 61, 76, 17, 84, 354, - 245, 83, 84, 262, 48, 179, 346, 124, 90, 496, - 333, 335, 337, 339, 674, 88, 558, 625, 348, 350, - 88, 93, 69, 20, 649, 720, 462, 135, 486, 84, - 50, 84, 123, 59, 83, 144, 742, 146, 118, 67, - 90, 39, 482, 40, 279, 410, 742, 650, 341, 84, - 128, 560, 325, 618, 61, 88, 173, -94, -94, 88, - 61, 763, 409, 25, 27, 415, 577, 344, 398, 600, - 768, 352, 603, 427, 679, 161, -104, 342, 420, 424, - -104, 421, 16, -294, 587, 395, 88, 456, 88, 173, - 428, 16, 16, 16, 77, 52, 54, 562, 19, 57, - 186, 280, 49, 345, 50, 125, 88, 675, 161, 57, - 246, 668, 16, 618, 559, 16, 16, 733, 330, 330, - 330, 330, 84, 618, 61, 179, 330, 330, 353, 743, - 20, 610, 145, 16, 147, 618, 460, 683, 110, 761, - -157, 575, 113, 411, 89, 618, 641, 691, 342, 561, - 31, 84, 441, 388, 433, 279, 26, 491, 648, 119, - 444, 499, 445, 708, 20, 709, 634, 555, 741, -30, - 1, 757, 157, 619, 31, 279, 89, 425, 622, 88, - 45, 110, 113, 20, 165, 703, 545, 503, 505, 507, - 669, -31, 1, 129, 671, 563, 84, 187, 189, 179, - 695, 406, 403, 404, 557, 437, 405, 247, 88, 138, - 139, 160, 280, 2, 565, 180, 567, 165, 133, 439, - 616, 696, 699, 416, 3, 389, 491, 439, 597, 439, - 4, -65, 446, 67, 281, 2, 5, 101, 189, 576, - 157, 20, 46, 705, 160, 579, 660, 751, 449, 590, - 527, 592, 4, 88, 61, 418, 732, 282, 5, 635, - 702, 695, 252, 752, 695, 598, 760, 74, 7, 765, - 620, 279, 725, 422, -65, 623, 491, 366, 41, -256, - 437, 245, 696, 699, 636, 696, 699, 670, -66, 71, - 7, 672, 634, 407, 609, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 88, 330, 330, - 330, 330, 330, 330, 330, 417, 84, 630, -65, 433, - 248, 702, 315, 449, 702, 99, 412, 695, 550, 46, - 103, -66, 695, 426, 695, 180, 695, 189, -28, 1, - 42, 710, 453, 474, 326, 281, 500, 419, 696, 699, - 327, 42, 281, 696, 699, 696, 699, 696, 699, 639, - 281, -65, 281, 148, 646, 423, 157, 431, 282, 437, - 646, -139, -158, 88, 406, -29, 1, 637, 642, 316, - 28, 645, 2, -160, 189, 762, 744, 702, 447, 155, - -497, -497, 702, 3, 702, 53, 702, 58, 253, 4, - 66, 464, 330, -34, 1, 5, 55, 673, 330, 180, - 56, -25, -25, 6, 449, 681, -32, 1, 98, 2, - 57, 279, 497, 449, 279, 684, 102, 157, 711, 677, - 3, 137, 257, 315, 454, 475, 4, 7, 501, 317, - 315, 109, 5, 137, -498, -498, 167, 2, 315, 713, - 315, 640, -25, 315, 432, 721, 647, -25, -25, -25, - 2, 281, 731, -25, 4, 20, 734, -25, 120, 112, - 5, 3, 50, 745, 7, 726, 728, 4, 280, 167, - 20, 280, 20, 5, 282, 20, 730, 149, 151, 57, - 316, 20, 189, 492, 693, 154, 157, 316, 134, 279, - 396, 318, 7, 20, 183, 316, 188, 316, 328, 84, - 316, 20, 179, 323, 365, 7, -33, 1, -35, 1, - 177, 340, -97, 133, 455, 279, 20, -97, -97, -97, - -97, 753, 250, 139, -97, 756, -97, 330, 330, -97, - -97, -97, -97, 159, 611, 629, 459, 601, 633, 315, - 317, -341, -341, 330, 20, 441, 280, 317, 444, 493, - 2, 439, 2, 2, 494, 317, 88, 317, 495, 78, - 317, 358, 20, 20, 159, 121, 159, 4, 20, 4, - 20, 748, 280, 5, 548, 5, 279, 463, 279, 20, - 327, 20, 363, 457, 754, 704, 617, 364, 20, 20, - 343, 80, 618, -341, 81, 20, 316, -341, 759, 20, - 386, 281, 318, 178, 281, 7, 384, 7, 35, 318, - 526, 693, 439, 689, 78, 439, 748, 318, 754, 318, - 759, 20, 318, 122, 282, 36, 2, 282, 2, 385, - 100, 37, 78, 280, 78, 280, 685, 106, 439, 78, - 736, 117, 618, 737, 118, 387, 80, 319, 358, 81, - 20, 439, 413, 399, 192, 193, 317, 727, 651, 78, - 367, 368, 20, 618, 80, 439, 80, 81, 20, 81, - 20, 80, 131, 652, 81, 20, 400, 57, 439, 281, - 150, 153, 729, 439, 281, 439, 35, 439, 618, 315, - -156, 80, 315, 651, 81, 20, 194, 195, 30, 434, - 34, 78, 282, 36, 320, 281, 766, 653, 652, 37, - 196, 770, 180, 772, -15, 773, 197, 438, 318, -496, - -496, 359, 51, 198, 315, 429, 315, 199, 282, 430, - -343, -343, 442, 80, 483, 321, 81, 20, 484, 452, - 200, 201, 715, 359, 202, 281, 316, 360, 281, 316, - 414, 361, 468, 204, 205, 206, 207, 140, 319, 208, - 209, 612, 141, 142, 601, 319, 281, 315, 281, 549, - 568, 281, 315, 319, 569, 319, 139, 602, 319, 604, - 32, 316, -343, 316, 281, 476, -343, 599, 477, 282, - 599, 282, 358, 315, 372, 373, 35, 35, 281, 583, - 32, 315, 78, 585, 32, 595, 317, 390, 391, 317, - 621, 281, 492, 382, 383, 320, 281, 626, 281, 37, - 281, 32, 320, 627, 316, 377, 378, 379, 380, 316, - 320, 631, 320, 315, 80, 320, 315, 81, 20, 35, - 632, 317, 638, 317, 648, 78, 321, 658, 492, 664, - 316, -407, -407, 321, 315, 665, 315, 666, 316, 315, - 709, 321, 601, 321, 381, 722, 321, 587, 318, -408, - -408, 318, 315, 322, 319, 735, 578, 80, 493, -207, - 81, 20, 738, 494, 317, 741, 315, 495, 739, 317, - 316, 757, 315, 316, 2, 141, 142, 20, 740, 315, - 78, 315, 747, 318, 315, 318, 315, 749, 315, 758, - 317, 316, 688, 316, 493, -15, 316, 764, 317, 494, - -496, -496, 359, 495, 509, 511, 429, 530, 532, 316, - 361, 320, 80, 20, 767, 81, 20, 769, 519, 521, - 523, 525, 771, 316, 393, 775, 318, 776, 528, 316, - 317, 318, 33, 317, 75, 108, 316, 553, 316, 190, - 394, 316, 321, 316, 256, 316, 73, 127, -496, -496, - 359, 317, 318, 317, 360, 254, 317, 448, 361, 402, - 318, 369, 370, 371, 322, 451, 436, -15, 716, 317, - 156, 322, -496, -496, 359, 717, 78, 643, 429, 322, - 534, 322, 628, 317, 322, 79, 644, 4, 472, 317, - 536, 540, 318, 5, 542, 318, 317, 687, 317, 547, - 538, 317, 0, 317, 319, 317, 0, 319, 80, 0, - 0, 81, 20, 318, 0, 318, 0, 0, 318, 0, - 0, 157, 158, 374, 375, 376, 465, 466, 467, 0, - 614, 318, 192, 193, -496, -496, 359, 0, 0, 319, - 479, 319, 0, 0, 361, 318, -496, -496, 359, 0, - 0, 318, 360, 513, 515, 517, 430, 0, 318, 0, - 318, 320, 0, 318, 320, 318, 0, 318, 0, 0, - 0, 0, 0, 0, 194, 195, 0, 0, 0, 78, - 322, 0, 319, 0, 0, 0, 0, 319, 196, 0, - 0, 0, 321, 0, 197, 321, 320, 0, 320, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 319, 0, - 0, 80, 0, 0, 81, 20, 319, 0, 200, 201, - 0, 0, 202, 0, 203, 615, 0, 321, 0, 321, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 320, - 0, 0, 0, 0, 320, 0, 0, 0, 319, 0, - 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 0, 0, 319, - 321, 319, 0, 320, 319, 321, 331, 331, 331, 331, - 0, 0, 0, 0, 331, 331, 0, 319, 0, 0, - 0, 0, 0, 0, 0, 0, 321, 0, 0, 0, - 0, 319, 0, 0, 321, 320, 0, 319, 320, 0, + 176, 457, 29, 450, 174, 438, 357, 334, 336, 338, + 340, 185, 287, 325, 614, 349, 351, 19, 38, 389, + 152, 16, 20, 48, 411, 59, 143, 342, 342, 67, + 16, 16, 16, 696, 697, 652, 83, 174, 61, 93, + 725, 55, 61, 76, 261, 56, 583, 59, 363, 62, + 653, 16, 59, 124, 16, 16, 442, 64, 88, 250, + 61, 559, 252, 123, 445, 61, 446, 612, 83, 360, + 602, 93, 16, 361, 246, 165, 347, 362, 603, 259, + 605, 263, 587, 89, 654, 88, 594, 608, 700, 561, + 88, 390, 474, 595, 696, 697, 563, 696, 697, 479, + 481, 407, 20, 83, 144, 69, 173, 179, 165, 20, + 576, 59, 649, 626, 710, 89, 39, 67, 40, -158, + 425, 49, 412, 50, 61, 88, 20, 343, 343, 88, + 61, 764, 650, 675, 123, 399, 83, 355, 246, 173, + 769, 77, 25, 27, 680, 650, -94, -94, 422, 700, + 160, 125, 700, 417, 180, 137, 88, 328, 88, 560, + 696, 697, 459, 743, 396, 696, 697, 696, 697, 696, + 697, 281, 743, -104, 52, 54, 429, -104, 57, 88, + -295, 588, 346, 160, 504, 506, 508, 562, 57, 331, + 331, 331, 331, 408, 564, 61, 283, 331, 331, 354, + 410, 145, 703, 416, 742, 20, 461, 669, 577, 84, + 733, 428, 753, 146, 118, 700, 601, 110, 426, 604, + 700, 113, 700, 758, 700, 651, 676, 419, 179, 187, + 247, 619, 619, 684, 50, 611, 84, 134, 734, 421, + 556, 84, 620, 692, 619, 418, -97, 133, 623, 423, + 88, -97, -97, -97, -97, 454, 744, 434, 670, 709, + 110, 113, 619, 703, 642, 762, 703, 482, 672, 101, + 119, 619, 167, 99, 438, 180, 84, 190, 103, 88, + 84, 135, 497, 281, 661, 120, 450, 617, 133, 50, + 440, 610, 721, 128, 41, 492, 20, 71, 440, 500, + 440, 179, 761, 447, 475, 167, 704, 84, 283, 84, + 147, 137, 67, 282, 148, 706, 129, 190, 726, 420, + -66, 766, 280, 88, 546, 61, 188, 248, 448, 703, + 84, 580, 598, 157, 703, 45, 703, 155, 703, 621, + 482, 424, 558, 752, 635, 624, 345, 455, 180, 438, + 353, 501, 566, 721, 568, 671, 42, 367, 157, 42, + 483, 450, 637, -66, 492, 673, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 88, 331, + 331, 331, 331, 331, 331, 331, -65, 591, -159, 593, + 631, -161, 640, 711, 316, 74, 476, 46, 694, 551, + -257, 84, -97, 599, -97, 432, 413, -97, -97, -97, + -97, 635, 157, 427, 492, 140, 647, 190, 26, 246, + 141, 142, 434, 647, 283, 282, 678, 745, 407, -65, + 84, 28, 282, 578, 280, 138, 139, 636, 438, 53, + 282, 31, 282, 502, 88, 643, -65, 326, 646, -25, + -25, 317, 450, 327, 280, 638, 462, 46, 58, 442, + 66, 450, 445, 98, 157, 31, 190, 249, 397, 486, + 318, 102, 109, 331, 84, 674, 112, 17, 118, 331, + 712, 465, 359, -140, 641, 749, 17, 17, 17, -65, + -25, 149, 433, 685, 253, -25, -25, -25, 755, 151, + 57, -25, 498, 20, 763, -25, 316, 17, 648, 154, + 17, 17, 760, 316, 746, 732, 20, 254, -30, 1, + 735, 316, 463, 316, 20, 694, 316, 258, 17, 528, + 749, 184, 755, 189, 760, 487, 324, -28, 1, 90, + 366, 282, 727, 20, 729, 20, -29, 1, 20, 281, + 280, 157, 281, 682, 731, 458, 20, 20, 100, -32, + 1, 20, 2, 317, 460, 106, 464, -31, 1, 57, + 317, 90, 190, 3, 283, 134, 20, 283, 317, 4, + 317, 2, 318, 317, 20, 5, 456, 714, 613, 318, + 2, 602, 3, 722, 20, 84, 319, 318, 4, 318, + 131, 3, 318, 2, 5, 35, 161, 4, 331, 331, + 493, 2, 6, 5, 3, 179, 20, 7, 20, 329, + 4, 20, 316, 652, 331, 20, 5, 281, 4, 2, + 341, 30, 440, 34, 5, 78, 7, 88, 653, 161, + 20, 359, 35, -34, 1, 7, -33, 1, 364, 20, + 344, 20, 283, 281, 477, 51, 569, 478, 7, 36, + 570, 359, 180, 177, 32, 37, 7, 80, 365, 754, + 81, 20, 716, 757, 579, 385, 494, 630, 283, 317, + 634, 495, -35, 1, 32, 496, 493, 2, 32, 388, + 2, 282, 386, 440, 282, 20, 440, 484, 318, 78, + 280, 485, 387, 280, 4, 32, 2, 4, 319, 400, + 5, 549, 78, 5, 281, 319, 281, 327, 618, 440, + 159, -342, -342, 319, 619, 319, 2, 121, 319, 401, + 493, 80, 440, -157, 81, 20, 204, 705, 602, 283, + 435, 283, 7, 4, 80, 7, 440, 81, 20, 5, + 320, 159, 494, 159, 439, 690, 178, 495, 443, 440, + 117, 496, 600, 469, 440, 600, 440, 57, 440, 282, + 35, 20, 316, -342, 282, 316, 78, -342, 280, 139, + 2, 7, 370, 371, 372, 122, 78, 36, 84, -344, + -344, 686, 2, 37, 689, 282, 494, 619, 78, 150, + 153, 495, 404, 405, 280, 496, 406, 316, 80, 316, + 728, 81, 20, 251, 139, 20, 619, 78, 80, 527, + 453, 81, 20, 737, 319, 730, 738, 368, 369, 317, + 80, 619, 317, 81, 20, 282, -498, -498, 282, 373, + 374, -344, 394, -499, -499, -344, 383, 384, 318, 80, + 316, 318, 81, 20, 550, 316, 282, 584, 282, 391, + 392, 282, 320, 586, 317, 280, 317, 280, 78, 320, + 627, 321, -408, -408, 282, 628, 316, 320, 596, 320, + -409, -409, 320, 318, 316, 318, 141, 142, 282, 767, + 520, 522, 524, 526, 771, 322, 773, 622, 774, 632, + 80, 282, 633, 81, 20, 156, 282, 317, 282, 639, + 282, 78, 317, 375, 376, 377, 316, 510, 512, 316, + 79, 35, 4, 35, 531, 533, 318, 78, 5, 78, + 649, 318, 659, 317, 466, 467, 468, 316, 666, 316, + 665, 317, 316, 80, 37, 667, 81, 20, -497, -497, + 360, 602, 318, 710, 361, 316, 157, 158, 362, 80, + 318, 80, 81, 20, 81, 20, 723, 588, 736, 316, + 514, 516, 518, 317, 319, 316, 317, 319, 320, -208, + 739, 740, 316, 321, 316, 741, 742, 316, 748, 316, + 321, 316, 318, 750, 317, 318, 317, 323, 321, 317, + 321, 758, 759, 321, 679, 765, 770, 322, 768, 319, + 772, 319, 317, 318, 322, 318, 75, 776, 318, -497, + -497, 360, 322, 777, 322, 480, 317, 322, 108, 362, + 529, 318, 317, 33, 378, 379, 380, 381, 257, 317, + 191, 317, 395, 255, 317, 318, 317, 554, 317, 156, + 73, 318, 319, 78, 127, 78, 403, 319, 318, 437, + 318, 449, 197, 318, 79, 318, 4, 318, 198, 717, + 452, 718, 5, 382, 644, 199, 645, 535, 319, 200, + 473, 537, 541, 548, 0, 80, 319, 80, 81, 20, + 81, 20, 201, 202, 543, 539, 203, 688, 0, 321, + 157, 256, 0, 0, 0, 205, 206, 207, 208, 323, + 0, 209, 210, 0, 0, 0, 323, 0, 319, 0, + 0, 319, 0, 322, 323, 0, 323, -15, 320, 323, + 0, 320, -497, -497, 360, 0, 0, 0, 430, 319, + -15, 319, 431, -15, 319, -497, -497, 360, -497, -497, + 360, 430, 264, 0, 430, 362, 0, 319, 629, 0, + -497, -497, 360, 320, 0, 320, 361, 0, 0, 0, + 431, 319, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 319, 0, 319, 0, 0, 319, - 0, 319, 0, 319, 0, 0, 320, 0, 320, 0, - 322, 320, 0, 322, 0, 0, 321, 0, 0, 321, - 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 321, 320, 321, - 0, 0, 321, 0, 320, 322, 0, 322, 0, 0, - 0, 320, 0, 320, 0, 321, 320, 0, 320, 0, - 320, 0, 0, 0, 0, 0, 0, 0, 0, 321, - 332, 332, 332, 332, 0, 321, 0, 156, 332, 332, - 0, 0, 321, 78, 321, 0, 0, 321, 322, 321, - 0, 321, 79, 322, 4, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 0, 0, 0, 678, 0, 0, - 0, 0, 0, 0, 322, 80, 0, 0, 81, 20, - 0, 0, 322, 0, 0, 0, 0, 0, 157, 255, - 0, 0, 0, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 0, 331, 331, 331, 331, - 331, 331, 331, 0, 322, 0, 78, 322, 0, 0, - 0, 0, 0, 0, 2, 196, 0, 0, 0, 0, - 78, 197, 0, 0, 0, 322, 0, 322, 198, 79, - 322, 4, 199, 0, 0, 0, 0, 5, 80, 0, - 0, 81, 20, 322, 0, 200, 201, 0, 0, 202, - 0, 0, 80, 0, 0, 81, 20, 322, 204, 205, - 206, 207, 0, 322, 208, 209, 82, 0, 0, 0, - 322, 0, 322, 0, 263, 322, 0, 322, 0, 322, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 331, 0, 0, 0, 0, 0, 331, 332, 332, 332, + 0, 319, 0, 319, 0, 2, 195, 196, 652, 265, + 266, 78, 267, 0, 0, 268, 320, 0, 0, 269, + 197, 320, 0, 653, 0, 0, 270, 271, 5, 272, + 0, 273, 274, 199, 275, 323, 0, 276, 2, 0, + 0, 0, 320, 80, 78, 0, 81, 20, 0, 0, + 320, 0, 0, 79, 277, 4, 157, 719, 0, 321, + 278, 5, 321, 205, 206, 207, 208, 0, 0, 209, + 210, 0, 2, 0, 0, 0, 80, 0, 78, 81, + 20, 0, 320, 322, 0, 320, 322, 79, 0, 4, + 82, 0, 0, 0, 321, 5, 321, 0, 0, 0, + 0, 0, 0, 320, 0, 320, 0, 0, 320, 0, + 80, 0, 0, 81, 20, 0, 0, 0, 322, 0, + 322, 320, 0, 0, 126, 0, 0, 0, 0, 0, + 332, 332, 332, 332, 0, 320, 0, 321, 332, 332, + 0, 320, 321, 0, 0, 0, 0, 0, 320, 0, + 320, 0, 0, 320, 0, 320, 0, 320, 0, 0, + 0, 322, 0, 321, 0, 0, 322, 0, 0, 0, + 0, 321, 0, 0, 0, 0, 2, 195, 196, 0, + 0, 0, 78, 0, 0, 323, 0, 322, 323, 0, + 0, 197, 0, 0, 0, 322, 0, 198, 0, 0, + 0, 0, 0, 321, 199, 0, 321, 0, 200, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 323, 0, 323, 0, 321, 277, 321, 322, 0, 321, + 322, 0, 0, 0, 205, 206, 207, 208, 0, 0, + 209, 210, 321, 0, 0, 0, 0, 0, 322, 0, + 322, 0, 0, 322, 0, 0, 321, 0, 0, 0, + 0, 0, 321, 323, 0, 0, 322, 0, 323, 321, + 0, 321, 0, 0, 321, 0, 321, 0, 321, 0, + 322, 0, 333, 333, 333, 333, 322, 0, 0, 323, + 333, 333, 0, 322, 0, 322, 0, 323, 322, 0, + 322, 0, 322, 0, 0, 0, 0, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 0, - 332, 332, 332, 332, 332, 332, 332, 2, 194, 195, - 651, 264, 265, 78, 266, 0, 0, 267, 0, 0, - 0, 268, 196, 0, 0, 652, 0, 0, 269, 270, - 5, 271, 0, 272, 273, 198, 274, 2, 263, 275, - 0, 0, 0, 78, 0, 80, 0, 0, 81, 20, - 0, 0, 79, 0, 4, 0, 276, 0, 157, 718, - 5, 0, 277, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 0, 0, 80, 0, 0, 81, 20, - 0, 2, 194, 195, 651, 264, 265, 78, 266, 126, - 0, 267, 0, 0, 332, 268, 196, 0, 0, 652, - 332, 0, 269, 270, 5, 271, 263, 272, 273, 198, - 274, 0, 0, 275, 0, 331, 331, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 0, 0, 0, 0, - 276, 331, 157, 746, 0, 0, 277, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 0, 0, 2, - 194, 195, -266, 264, 265, 78, 266, 0, 0, 267, - 0, 0, 0, 268, 196, 0, 0, -266, 0, 0, - 269, 270, 5, 271, 0, 272, 273, 198, 274, 0, - 0, 275, 0, 0, 0, 0, 0, 80, 0, 263, - 81, 20, 0, 0, 0, 0, 0, 0, 276, 0, - 157, -266, 0, 0, 277, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, - 332, 0, 2, 194, 195, 0, 264, 265, 78, 266, - 0, 0, 267, 0, 0, 332, 268, 196, 0, 0, - 0, 0, 0, 269, 270, 5, 271, 263, 272, 273, - 198, 274, 0, 0, 275, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 0, 0, 0, - 0, 276, 0, 157, 435, 0, 0, 277, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 0, 0, - 2, 194, 195, 0, 264, 265, 78, 266, 0, 0, - 267, 0, 0, 0, 268, 196, 0, 0, 0, 0, - 0, 269, 270, 5, 271, 263, 272, 273, 198, 274, - 0, 0, 275, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 0, 0, 0, 0, 276, - 0, 157, 0, 0, 0, 277, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 0, 0, 2, 194, - 195, 0, 264, 265, 78, 266, 0, 0, 267, 0, - 0, 0, 268, 196, 0, 0, 0, 0, 0, 269, - 270, 263, 271, 0, 272, 273, 198, 274, 0, 0, - 275, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 0, 0, 0, 0, 276, 0, 157, - 0, 0, 0, 277, 0, 0, 204, 205, 206, 207, - 0, 0, 208, 209, 2, 194, 195, 0, 692, 265, - 78, 266, 0, 0, 267, 0, 0, 0, 268, 196, - 0, 0, 0, 0, 0, 269, 270, 0, 271, 0, - 272, 273, 198, 274, 0, 191, 275, 192, 193, 0, + 332, 332, 332, 332, 332, 332, 332, 0, 0, 323, + 0, 0, 323, 0, 0, 0, 0, 0, 0, 0, + 0, 192, 0, 193, 194, 0, 0, 0, 0, 0, + 323, 0, 323, 0, 0, 323, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 323, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 323, 0, 0, 195, 196, 0, 323, 0, + 78, 0, 0, 0, 0, 323, 0, 323, 0, 197, + 323, 0, 323, 0, 323, 198, 0, 0, 0, 0, + 0, 0, 199, 0, 332, 0, 200, 0, 0, 0, + 332, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 0, 204, 264, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 0, 333, 333, 333, 333, 333, 333, 333, 2, + 195, 196, 652, 265, 266, 78, 267, 0, 0, 268, + 0, 0, 0, 269, 197, 0, 0, 653, 0, 0, + 270, 271, 5, 272, 0, 273, 274, 199, 275, 0, + 264, 276, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 0, 0, 0, 0, 277, 0, + 157, 747, 0, 0, 278, 0, 0, 205, 206, 207, + 208, 0, 0, 209, 210, 0, 0, 0, 0, 332, + 332, 0, 0, 2, 195, 196, -267, 265, 266, 78, + 267, 0, 0, 268, 0, 332, 333, 269, 197, 0, + 0, -267, 333, 0, 270, 271, 5, 272, 264, 273, + 274, 199, 275, 0, 0, 276, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 0, 0, + 0, 0, 277, 0, 157, -267, 0, 0, 278, 0, + 0, 205, 206, 207, 208, 0, 0, 209, 210, 0, + 0, 2, 195, 196, 0, 265, 266, 78, 267, 0, + 0, 268, 0, 0, 0, 269, 197, 0, 0, 0, + 0, 0, 270, 271, 5, 272, 0, 273, 274, 199, + 275, 0, 0, 276, 0, 0, 0, 0, 0, 80, + 0, 264, 81, 20, 0, 0, 0, 0, 0, 0, + 277, 0, 157, 436, 0, 0, 278, 0, 0, 205, + 206, 207, 208, 0, 0, 209, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 333, 333, 0, 2, 195, 196, 0, 265, 266, + 78, 267, 0, 0, 268, 0, 0, 333, 269, 197, + 0, 0, 0, 0, 0, 270, 271, 5, 272, 264, + 273, 274, 199, 275, 0, 0, 276, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, - 0, 0, 0, 276, 0, 157, 0, 0, 0, 277, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, - 195, 0, 0, 0, 78, 0, 543, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 203, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 490, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 544, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 580, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 148, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 588, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 581, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 596, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 589, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 605, 0, 192, 193, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 597, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 490, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, - 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 606, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 580, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, + 0, 0, 0, 277, 0, 157, 0, 0, 0, 278, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 0, 0, 2, 195, 196, 0, 265, 266, 78, 267, + 0, 0, 268, 0, 0, 0, 269, 197, 0, 0, + 0, 0, 0, 270, 271, 264, 272, 0, 273, 274, + 199, 275, 0, 0, 276, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 0, 0, 0, + 0, 277, 0, 157, 0, 0, 0, 278, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 2, 195, + 196, 0, 693, 266, 78, 267, 0, 0, 268, 0, + 0, 0, 269, 197, 0, 0, 0, 0, 0, 270, + 271, 0, 272, 0, 273, 274, 199, 275, 0, 615, + 276, 193, 194, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 0, 0, 0, 0, 277, 0, 157, + 0, 0, 0, 278, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 195, 196, 0, 0, 0, 78, 0, + 0, 0, 0, 0, 0, 0, 0, 197, 0, 0, + 0, 0, 0, 198, 414, 0, 193, 194, 0, 0, + 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 201, 202, 0, + 0, 203, 0, 204, 616, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 195, 196, + 0, 0, 0, 78, 0, 544, 0, 193, 194, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 597, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 706, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 690, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 706, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 707, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 588, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 750, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 329, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 755, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 334, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 336, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 201, 202, 0, 0, 203, 0, 0, 195, + 196, 0, 415, 0, 78, 205, 206, 207, 208, 0, + 0, 209, 210, 197, 0, 0, 0, 0, 0, 198, + 491, 0, 193, 194, 0, 0, 199, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 545, 201, 202, 0, 0, 203, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 195, 196, 0, 0, 0, 78, + 0, 581, 0, 193, 194, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 201, 202, + 0, 0, 203, 0, 0, 195, 196, 148, 0, 0, + 78, 205, 206, 207, 208, 0, 0, 209, 210, 197, + 0, 0, 0, 0, 0, 198, 589, 0, 193, 194, + 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 582, 0, 0, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 195, 196, 0, 0, 0, 78, 0, 597, 0, 193, + 194, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 201, 202, 0, 0, 203, 0, + 0, 195, 196, 0, 590, 0, 78, 205, 206, 207, + 208, 0, 0, 209, 210, 197, 0, 0, 0, 0, + 0, 198, 606, 0, 193, 194, 0, 0, 199, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 201, 202, 0, 0, 203, + 0, 0, 0, 0, 598, 0, 0, 0, 205, 206, + 207, 208, 0, 0, 209, 210, 195, 196, 0, 0, + 0, 78, 0, 491, 0, 193, 194, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 338, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 347, 0, 192, 193, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 349, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, + 201, 202, 0, 0, 203, 607, 0, 195, 196, 0, + 0, 0, 78, 205, 206, 207, 208, 0, 0, 209, + 210, 197, 0, 0, 0, 0, 0, 198, 581, 0, + 193, 194, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 351, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, + 0, 201, 202, 0, 0, 203, 0, 0, 0, 0, + 598, 0, 0, 0, 205, 206, 207, 208, 0, 0, + 209, 210, 195, 196, 0, 0, 0, 78, 0, 707, + 0, 193, 194, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 198, 0, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, + 0, 0, 81, 20, 0, 0, 201, 202, 0, 0, + 203, 691, 0, 195, 196, 0, 0, 0, 78, 205, + 206, 207, 208, 0, 0, 209, 210, 197, 0, 0, + 0, 0, 0, 198, 707, 0, 193, 194, 0, 0, + 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 201, 202, 0, + 0, 203, 708, 0, 0, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 195, 196, + 0, 0, 0, 78, 0, 589, 0, 193, 194, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 408, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 490, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 498, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 502, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 504, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 506, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 201, 202, 0, 0, 203, 751, 0, 195, + 196, 0, 0, 0, 78, 205, 206, 207, 208, 0, + 0, 209, 210, 197, 0, 0, 0, 0, 0, 198, + 330, 0, 193, 194, 0, 0, 199, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 201, 202, 0, 0, 203, 0, 0, + 0, 0, 0, 756, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 195, 196, 0, 0, 0, 78, + 0, 335, 0, 193, 194, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 201, 202, + 0, 0, 203, 0, 0, 195, 196, 0, 0, 0, + 78, 205, 206, 207, 208, 0, 0, 209, 210, 197, + 0, 0, 0, 0, 0, 198, 337, 0, 193, 194, + 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 0, 0, 0, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 195, 196, 0, 0, 0, 78, 0, 339, 0, 193, + 194, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 201, 202, 0, 0, 203, 0, + 0, 195, 196, 0, 0, 0, 78, 205, 206, 207, + 208, 0, 0, 209, 210, 197, 0, 0, 0, 0, + 0, 198, 348, 0, 193, 194, 0, 0, 199, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 201, 202, 0, 0, 203, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 0, 0, 209, 210, 195, 196, 0, 0, + 0, 78, 0, 350, 0, 193, 194, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 508, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 510, 0, 192, 193, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 512, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, + 201, 202, 0, 0, 203, 0, 0, 195, 196, 0, + 0, 0, 78, 205, 206, 207, 208, 0, 0, 209, + 210, 197, 0, 0, 0, 0, 0, 198, 352, 0, + 193, 194, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 514, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, + 0, 201, 202, 0, 0, 203, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 0, 0, + 209, 210, 195, 196, 0, 0, 0, 78, 0, 409, + 0, 193, 194, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 198, 0, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, + 0, 0, 81, 20, 0, 0, 201, 202, 0, 0, + 203, 0, 0, 195, 196, 0, 0, 0, 78, 205, + 206, 207, 208, 0, 0, 209, 210, 197, 0, 0, + 0, 0, 0, 198, 491, 0, 193, 194, 0, 0, + 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 201, 202, 0, + 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 195, 196, + 0, 0, 0, 78, 0, 499, 0, 193, 194, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 516, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 518, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 520, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 522, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 524, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 529, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 201, 202, 0, 0, 203, 0, 0, 195, + 196, 0, 0, 0, 78, 205, 206, 207, 208, 0, + 0, 209, 210, 197, 0, 0, 0, 0, 0, 198, + 503, 0, 193, 194, 0, 0, 199, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 201, 202, 0, 0, 203, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 195, 196, 0, 0, 0, 78, + 0, 505, 0, 193, 194, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 201, 202, + 0, 0, 203, 0, 0, 195, 196, 0, 0, 0, + 78, 205, 206, 207, 208, 0, 0, 209, 210, 197, + 0, 0, 0, 0, 0, 198, 507, 0, 193, 194, + 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 0, 0, 0, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 195, 196, 0, 0, 0, 78, 0, 509, 0, 193, + 194, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 201, 202, 0, 0, 203, 0, + 0, 195, 196, 0, 0, 0, 78, 205, 206, 207, + 208, 0, 0, 209, 210, 197, 0, 0, 0, 0, + 0, 198, 511, 0, 193, 194, 0, 0, 199, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 201, 202, 0, 0, 203, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 0, 0, 209, 210, 195, 196, 0, 0, + 0, 78, 0, 513, 0, 193, 194, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 531, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 533, 0, 192, 193, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 535, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, + 201, 202, 0, 0, 203, 0, 0, 195, 196, 0, + 0, 0, 78, 205, 206, 207, 208, 0, 0, 209, + 210, 197, 0, 0, 0, 0, 0, 198, 515, 0, + 193, 194, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 537, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, + 0, 201, 202, 0, 0, 203, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 0, 0, + 209, 210, 195, 196, 0, 0, 0, 78, 0, 517, + 0, 193, 194, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 198, 0, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, + 0, 0, 81, 20, 0, 0, 201, 202, 0, 0, + 203, 0, 0, 195, 196, 0, 0, 0, 78, 205, + 206, 207, 208, 0, 0, 209, 210, 197, 0, 0, + 0, 0, 0, 198, 519, 0, 193, 194, 0, 0, + 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 201, 202, 0, + 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 195, 196, + 0, 0, 0, 78, 0, 521, 0, 193, 194, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 539, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 541, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 546, 0, 192, 193, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 556, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 564, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 0, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 566, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 201, 202, 0, 0, 203, 0, 0, 195, + 196, 0, 0, 0, 78, 205, 206, 207, 208, 0, + 0, 209, 210, 197, 0, 0, 0, 0, 0, 198, + 523, 0, 193, 194, 0, 0, 199, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 201, 202, 0, 0, 203, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 195, 196, 0, 0, 0, 78, + 0, 525, 0, 193, 194, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 201, 202, + 0, 0, 203, 0, 0, 195, 196, 0, 0, 0, + 78, 205, 206, 207, 208, 0, 0, 209, 210, 197, + 0, 0, 0, 0, 0, 198, 530, 0, 193, 194, + 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 0, 0, 0, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 195, 196, 0, 0, 0, 78, 0, 532, 0, 193, + 194, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 201, 202, 0, 0, 203, 0, + 0, 195, 196, 0, 0, 0, 78, 205, 206, 207, + 208, 0, 0, 209, 210, 197, 0, 0, 0, 0, + 0, 198, 534, 0, 193, 194, 0, 0, 199, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 201, 202, 0, 0, 203, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 0, 0, 209, 210, 195, 196, 0, 0, + 0, 78, 0, 536, 0, 193, 194, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 591, 0, - 192, 193, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 0, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 608, 0, 192, 193, 0, 0, 198, - 0, 0, 0, 199, 0, 0, 0, 0, 0, 80, - 0, 0, 81, 20, 0, 0, 200, 201, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 204, - 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, - 0, 0, 78, 0, 676, 0, 192, 193, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 199, 0, + 201, 202, 0, 0, 203, 0, 0, 195, 196, 0, + 0, 0, 78, 205, 206, 207, 208, 0, 0, 209, + 210, 197, 0, 0, 0, 0, 0, 198, 538, 0, + 193, 194, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 194, 195, - 0, 0, 0, 78, 204, 205, 206, 207, 0, 0, - 208, 209, 196, 0, 0, 0, 0, 0, 197, 680, - 0, 192, 193, 0, 0, 198, 0, 0, 0, 199, + 0, 201, 202, 0, 0, 203, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 0, 0, + 209, 210, 195, 196, 0, 0, 0, 78, 0, 540, + 0, 193, 194, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 198, 0, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, + 0, 0, 81, 20, 0, 0, 201, 202, 0, 0, + 203, 0, 0, 195, 196, 0, 0, 0, 78, 205, + 206, 207, 208, 0, 0, 209, 210, 197, 0, 0, + 0, 0, 0, 198, 542, 0, 193, 194, 0, 0, + 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 201, 202, 0, + 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 195, 196, + 0, 0, 0, 78, 0, 547, 0, 193, 194, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, - 0, 0, 200, 201, 0, 0, 202, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, - 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, - 686, 0, 192, 193, 0, 0, 0, 196, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 0, 0, 194, 195, 0, 0, 0, 78, - 204, 205, 206, 207, 0, 0, 208, 209, 196, 0, - 0, 0, 0, 0, 197, 712, 0, 192, 193, 0, - 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, - 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 206, 207, 0, 0, 208, 209, 194, - 195, 0, 0, 0, 78, 0, 574, 0, 0, 0, - 0, 0, 0, 196, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, - 199, 661, 0, 0, 0, 0, 80, 0, 0, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 0, -289, - -289, -289, 0, 0, 0, -289, 204, 205, 206, 207, - 0, 0, 208, 209, -289, 0, 0, 0, 0, 0, - -289, 0, 0, 723, 0, 194, 195, -289, 0, 0, - 78, -289, 0, 0, 0, 0, 0, -289, 0, 196, - -289, -289, 0, 0, 0, 197, 0, 0, -289, 0, - 192, 193, 198, 0, -289, 0, 199, -289, -289, -289, - -289, 0, 80, -289, -289, 81, 20, 194, 195, 0, - 0, 0, 78, 276, -297, 0, 0, 0, 0, 0, - 0, 196, 204, 205, 206, 207, 0, 197, 208, 209, - 659, 0, 194, 195, 198, 0, 0, 78, 199, 0, - 0, 0, 0, 0, 80, 0, 196, 81, 20, 0, - 0, 0, 197, 0, 0, 276, -297, 192, 193, 198, - 0, 0, 0, 199, 204, 205, 206, 207, 0, 80, - 208, 209, 81, 20, 194, 195, 200, 201, 0, 78, - 202, 0, 203, 355, 0, 0, 0, 0, 196, 204, - 205, 206, 207, 0, 197, 208, 209, 0, 0, 194, - 195, 198, 0, 0, 78, 199, 0, 0, 192, 193, - 0, 80, 0, 196, 81, 20, 0, 0, 0, 197, - 0, 0, 276, 0, 0, 0, 198, 0, 0, 0, - 199, 204, 205, 206, 207, 0, 80, 208, 209, 81, - 20, 0, 0, 200, 201, 0, 0, 202, 487, 0, - 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, - 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 192, 193, 0, 0, 198, 0, 0, - 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, - 81, 20, 0, 0, 200, 201, 0, 0, 202, 624, - 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, - 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, - 78, 0, 0, 0, 192, 193, 0, 0, 0, 196, - 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, - 201, 0, 0, 202, 667, 0, 194, 195, 0, 0, - 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, - 196, 0, 0, 0, 0, 0, 197, 0, 0, 192, - 193, 0, 0, 198, 0, 0, 0, 199, 0, 0, + 0, 0, 201, 202, 0, 0, 203, 0, 0, 195, + 196, 0, 0, 0, 78, 205, 206, 207, 208, 0, + 0, 209, 210, 197, 0, 0, 0, 0, 0, 198, + 557, 0, 193, 194, 0, 0, 199, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 201, 202, 0, 0, 203, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 195, 196, 0, 0, 0, 78, + 0, 565, 0, 193, 194, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 201, 202, + 0, 0, 203, 0, 0, 195, 196, 0, 0, 0, + 78, 205, 206, 207, 208, 0, 0, 209, 210, 197, + 0, 0, 0, 0, 0, 198, 567, 0, 193, 194, + 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 0, 0, 0, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 195, 196, 0, 0, 0, 78, 0, 592, 0, 193, + 194, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 201, 202, 0, 0, 203, 0, + 0, 195, 196, 0, 0, 0, 78, 205, 206, 207, + 208, 0, 0, 209, 210, 197, 0, 0, 0, 0, + 0, 198, 609, 0, 193, 194, 0, 0, 199, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 201, 202, 0, 0, 203, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 0, 0, 209, 210, 195, 196, 0, 0, + 0, 78, 0, 677, 0, 193, 194, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 198, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 200, 201, 0, 0, 202, 682, 0, 0, 0, 0, - 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 194, 195, 0, 0, 0, 78, 0, 0, 0, - 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 80, 0, - 0, 81, 20, 0, 0, 200, 201, 0, 0, 202, - 0, 2, 194, 195, 0, 0, 0, 78, 204, 205, - 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, - 0, 0, 197, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 78, 199, 0, 0, 0, 0, 0, 80, - 0, 196, 81, 20, 0, 0, 0, 197, 0, 0, - 276, 0, 0, 0, 198, 0, 0, 0, 199, 204, - 205, 206, 207, 0, 80, 208, 209, 81, 20, 0, - 0, 200, 201, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209 + 201, 202, 0, 0, 203, 0, 0, 195, 196, 0, + 0, 0, 78, 205, 206, 207, 208, 0, 0, 209, + 210, 197, 0, 0, 0, 0, 0, 198, 681, 0, + 193, 194, 0, 0, 199, 0, 0, 0, 200, 0, + 0, 0, 0, 0, 80, 0, 0, 81, 20, 0, + 0, 201, 202, 0, 0, 203, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 0, 0, + 209, 210, 195, 196, 0, 0, 0, 78, 0, 687, + 0, 193, 194, 0, 0, 0, 197, 0, 0, 0, + 0, 0, 198, 0, 0, 0, 0, 0, 0, 199, + 0, 0, 0, 200, 0, 0, 0, 0, 0, 80, + 0, 0, 81, 20, 0, 0, 201, 202, 0, 0, + 203, 0, 0, 195, 196, 0, 0, 0, 78, 205, + 206, 207, 208, 0, 0, 209, 210, 197, 0, 0, + 0, 0, 0, 198, 713, 0, 193, 194, 0, 0, + 199, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 201, 202, 0, + 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 0, 0, 209, 210, 195, 196, + 0, 0, 0, 78, 0, 575, 0, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 200, + 662, 0, 0, 0, 0, 80, 0, 0, 81, 20, + 0, 0, 201, 202, 0, 0, 203, 0, -290, -290, + -290, 0, 0, 0, -290, 205, 206, 207, 208, 0, + 0, 209, 210, -290, 0, 0, 0, 0, 0, -290, + 0, 0, 724, 0, 195, 196, -290, 0, 0, 78, + -290, 0, 0, 0, 0, 0, -290, 0, 197, -290, + -290, 0, 0, 0, 198, 0, 0, -290, 0, 193, + 194, 199, 0, -290, 0, 200, -290, -290, -290, -290, + 0, 80, -290, -290, 81, 20, 195, 196, 0, 0, + 0, 78, 277, -298, 0, 0, 0, 0, 0, 0, + 197, 205, 206, 207, 208, 0, 198, 209, 210, 660, + 0, 195, 196, 199, 0, 0, 78, 200, 0, 0, + 0, 0, 0, 80, 0, 197, 81, 20, 0, 0, + 0, 198, 0, 0, 277, -298, 193, 194, 199, 0, + 0, 0, 200, 205, 206, 207, 208, 0, 80, 209, + 210, 81, 20, 195, 196, 201, 202, 0, 78, 203, + 0, 204, 356, 0, 0, 0, 0, 197, 205, 206, + 207, 208, 0, 198, 209, 210, 0, 0, 195, 196, + 199, 0, 0, 78, 200, 0, 0, 193, 194, 0, + 80, 0, 197, 81, 20, 0, 0, 0, 198, 0, + 0, 277, 0, 0, 0, 199, 0, 0, 0, 200, + 205, 206, 207, 208, 0, 80, 209, 210, 81, 20, + 0, 0, 201, 202, 0, 0, 203, 488, 0, 195, + 196, 0, 0, 0, 78, 205, 206, 207, 208, 0, + 0, 209, 210, 197, 0, 0, 0, 0, 0, 198, + 0, 0, 193, 194, 0, 0, 199, 0, 0, 0, + 200, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 201, 202, 0, 0, 203, 625, 0, + 0, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 0, 0, 209, 210, 195, 196, 0, 0, 0, 78, + 0, 0, 0, 193, 194, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 200, 0, 0, 0, 0, + 0, 80, 0, 0, 81, 20, 0, 0, 201, 202, + 0, 0, 203, 668, 0, 195, 196, 0, 0, 0, + 78, 205, 206, 207, 208, 0, 0, 209, 210, 197, + 0, 0, 0, 0, 0, 198, 0, 0, 193, 194, + 0, 0, 199, 0, 0, 0, 200, 0, 0, 0, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 201, + 202, 0, 0, 203, 683, 0, 0, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 0, 0, 209, 210, + 195, 196, 0, 0, 0, 78, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 201, 202, 78, 0, 203, 0, + 0, 0, 0, 0, 0, 197, 0, 205, 206, 207, + 208, 198, 0, 209, 210, 0, 0, 0, 199, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 80, 0, + 0, 81, 20, 0, 0, 201, 202, 0, 0, 203, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 0, 0, 209, 210 }; static const short yycheck[] = { 3, - 327, 62, 6, 132, 62, 123, 286, 140, 129, 203, - 175, 179, 134, 1, 482, 345, 0, 42, 117, 1, - 434, 46, 352, 353, 1, 9, 10, 11, 89, 1, - 1, 89, 1, 94, 656, 306, 94, 86, 42, 64, - 664, 162, 46, 1, 69, 95, 30, 1, 169, 33, - 34, 150, 1, 53, 153, 1, 94, 100, 62, 62, - 64, 475, 95, 101, 97, 69, 1, 51, 129, 202, - 203, 129, 133, 172, 1, 133, 198, 1, 62, 72, - 192, 193, 194, 195, 1, 89, 1, 501, 200, 201, - 94, 94, 52, 86, 1, 717, 67, 97, 67, 160, - 101, 162, 160, 128, 162, 1, 1, 1, 97, 134, - 94, 99, 94, 101, 175, 1, 1, 94, 1, 180, - 100, 1, 180, 100, 128, 129, 129, 99, 100, 133, - 134, 755, 265, 4, 5, 268, 94, 198, 259, 469, - 764, 202, 472, 276, 612, 129, 95, 101, 1, 1, - 99, 272, 0, 99, 100, 254, 160, 325, 162, 162, - 278, 9, 10, 11, 99, 36, 37, 1, 1, 40, - 1, 175, 99, 198, 101, 99, 180, 94, 162, 50, - 1, 595, 30, 100, 99, 33, 34, 94, 192, 193, - 194, 195, 253, 100, 198, 253, 200, 201, 202, 94, - 86, 1, 98, 51, 98, 100, 328, 621, 79, 94, - 93, 1, 83, 99, 62, 100, 1, 631, 101, 99, - 9, 282, 293, 15, 282, 286, 1, 360, 1, 97, - 301, 364, 303, 647, 86, 1, 1, 402, 1, 0, - 1, 1, 95, 1, 33, 306, 94, 99, 1, 253, - 1, 122, 123, 86, 129, 1, 389, 369, 370, 371, - 1, 0, 1, 95, 1, 99, 327, 98, 139, 327, - 635, 1, 95, 96, 407, 555, 99, 98, 282, 99, - 100, 129, 286, 44, 417, 133, 419, 162, 93, 293, - 484, 635, 635, 1, 55, 87, 429, 301, 98, 303, - 61, 52, 306, 328, 175, 44, 67, 1, 179, 99, - 95, 86, 63, 640, 162, 433, 587, 731, 589, 452, - 381, 454, 61, 327, 328, 1, 99, 175, 67, 94, - 635, 696, 96, 99, 699, 468, 99, 1, 99, 99, - 98, 402, 1, 1, 95, 98, 479, 218, 1, 95, - 630, 484, 696, 696, 1, 699, 699, 98, 52, 1, - 99, 98, 1, 93, 476, 369, 370, 371, 372, 373, + 132, 327, 6, 307, 129, 287, 204, 193, 194, 195, + 196, 134, 175, 179, 483, 201, 202, 1, 1, 15, + 123, 0, 86, 1, 1, 42, 117, 1, 1, 46, + 9, 10, 11, 636, 636, 47, 62, 162, 42, 62, + 665, 1, 46, 1, 169, 5, 435, 64, 1, 95, + 62, 30, 69, 1, 33, 34, 294, 100, 62, 150, + 64, 1, 153, 89, 302, 69, 304, 94, 94, 93, + 97, 94, 51, 97, 140, 129, 199, 101, 472, 1, + 474, 172, 1, 62, 96, 89, 94, 476, 636, 1, + 94, 87, 346, 101, 697, 697, 1, 700, 700, 353, + 354, 1, 86, 129, 1, 52, 129, 133, 162, 86, + 1, 128, 1, 502, 1, 94, 99, 134, 101, 93, + 1, 99, 99, 101, 128, 129, 86, 101, 101, 133, + 134, 756, 1, 1, 160, 260, 162, 203, 204, 162, + 765, 99, 4, 5, 613, 1, 99, 100, 273, 697, + 129, 99, 700, 1, 133, 1, 160, 183, 162, 99, + 763, 763, 328, 1, 255, 768, 768, 770, 770, 772, + 772, 175, 1, 95, 36, 37, 279, 99, 40, 183, + 99, 100, 199, 162, 370, 371, 372, 99, 50, 193, + 194, 195, 196, 93, 99, 199, 175, 201, 202, 203, + 266, 98, 636, 269, 1, 86, 329, 596, 99, 62, + 99, 277, 99, 1, 97, 763, 470, 79, 99, 473, + 768, 83, 770, 1, 772, 94, 94, 1, 254, 1, + 1, 100, 100, 622, 101, 1, 89, 53, 94, 1, + 403, 94, 1, 632, 100, 93, 92, 93, 1, 1, + 254, 97, 98, 99, 100, 1, 94, 283, 1, 648, + 122, 123, 100, 697, 1, 94, 700, 1, 1, 1, + 97, 100, 129, 64, 556, 254, 129, 139, 69, 283, + 133, 97, 72, 287, 588, 97, 590, 485, 93, 101, + 294, 477, 657, 100, 1, 361, 86, 1, 302, 365, + 304, 327, 99, 307, 1, 162, 1, 160, 287, 162, + 98, 1, 329, 175, 98, 641, 95, 179, 1, 93, + 52, 99, 175, 327, 390, 329, 98, 98, 307, 763, + 183, 434, 98, 95, 768, 1, 770, 128, 772, 98, + 1, 93, 408, 732, 1, 98, 199, 93, 327, 631, + 203, 1, 418, 718, 420, 98, 63, 219, 95, 63, + 94, 665, 1, 95, 430, 98, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 93, 447, 552, 52, 447, - 1, 696, 175, 664, 699, 64, 267, 762, 402, 63, - 69, 95, 767, 274, 769, 253, 771, 278, 0, 1, - 63, 1, 1, 1, 94, 286, 1, 93, 762, 762, - 100, 63, 293, 767, 767, 769, 769, 771, 771, 1, - 301, 95, 303, 98, 1, 93, 95, 1, 286, 719, - 1, 95, 95, 447, 1, 0, 1, 94, 569, 175, - 1, 572, 44, 95, 325, 94, 1, 762, 306, 128, - 91, 92, 767, 55, 769, 1, 771, 1, 93, 61, - 1, 342, 476, 0, 1, 67, 1, 606, 482, 327, - 5, 45, 46, 75, 755, 618, 0, 1, 1, 44, - 361, 552, 363, 764, 555, 624, 1, 95, 88, 611, - 55, 1, 99, 286, 93, 93, 61, 99, 93, 175, - 293, 1, 67, 1, 91, 92, 129, 44, 301, 652, - 303, 93, 86, 306, 88, 658, 93, 91, 92, 93, - 44, 402, 93, 97, 61, 86, 93, 101, 97, 1, - 67, 55, 101, 88, 99, 666, 675, 61, 552, 162, - 86, 555, 86, 67, 402, 86, 685, 1, 1, 430, - 286, 86, 433, 1, 635, 1, 95, 293, 53, 630, - 99, 175, 99, 86, 1, 301, 1, 303, 100, 640, - 306, 86, 640, 1, 1, 99, 0, 1, 0, 1, - 1, 101, 92, 93, 1, 656, 86, 97, 98, 99, - 100, 734, 99, 100, 92, 738, 94, 611, 612, 97, - 98, 99, 100, 129, 94, 552, 1, 97, 555, 402, - 286, 45, 46, 627, 86, 696, 630, 293, 699, 67, - 44, 635, 44, 44, 72, 301, 640, 303, 76, 50, - 306, 101, 86, 86, 160, 1, 162, 61, 86, 61, - 86, 722, 656, 67, 94, 67, 717, 1, 719, 86, - 100, 86, 101, 1, 735, 1, 94, 97, 86, 86, - 1, 82, 100, 97, 85, 86, 402, 101, 749, 86, - 13, 552, 286, 94, 555, 99, 11, 99, 44, 293, - 1, 762, 696, 630, 50, 699, 767, 301, 769, 303, - 771, 86, 306, 59, 552, 61, 44, 555, 44, 12, - 65, 67, 50, 717, 50, 719, 94, 72, 722, 50, - 696, 83, 100, 699, 97, 14, 82, 175, 101, 85, - 86, 735, 1, 99, 3, 4, 402, 94, 47, 50, - 45, 46, 86, 100, 82, 749, 82, 85, 86, 85, - 86, 82, 107, 62, 85, 86, 95, 628, 762, 630, - 122, 123, 94, 767, 635, 769, 44, 771, 100, 552, - 93, 82, 555, 47, 85, 86, 45, 46, 9, 93, - 11, 50, 630, 61, 175, 656, 762, 96, 62, 67, - 59, 767, 640, 769, 86, 771, 65, 99, 402, 91, - 92, 93, 33, 72, 587, 97, 589, 76, 656, 101, - 45, 46, 99, 82, 96, 175, 85, 86, 100, 99, - 89, 90, 96, 93, 93, 696, 552, 97, 699, 555, - 99, 101, 97, 102, 103, 104, 105, 92, 286, 108, - 109, 94, 97, 98, 97, 293, 717, 630, 719, 99, - 60, 722, 635, 301, 64, 303, 100, 471, 306, 473, - 10, 587, 97, 589, 735, 94, 101, 469, 97, 717, - 472, 719, 101, 656, 3, 4, 44, 44, 749, 95, - 30, 664, 50, 66, 34, 93, 552, 91, 92, 555, - 93, 762, 1, 16, 17, 286, 767, 1, 769, 67, - 771, 51, 293, 88, 630, 18, 19, 20, 21, 635, - 301, 93, 303, 696, 82, 306, 699, 85, 86, 44, - 99, 587, 94, 589, 1, 50, 286, 93, 1, 99, - 656, 45, 46, 293, 717, 94, 719, 94, 664, 722, - 1, 301, 97, 303, 57, 94, 306, 100, 552, 45, - 46, 555, 735, 175, 402, 56, 65, 82, 67, 56, - 85, 86, 99, 72, 630, 1, 749, 76, 94, 635, - 696, 1, 755, 699, 44, 97, 98, 86, 94, 762, - 50, 764, 94, 587, 767, 589, 769, 94, 771, 99, - 656, 717, 65, 719, 67, 86, 722, 99, 664, 72, - 91, 92, 93, 76, 372, 373, 97, 382, 383, 735, - 101, 402, 82, 86, 94, 85, 86, 56, 377, 378, - 379, 380, 94, 749, 94, 0, 630, 0, 381, 755, - 696, 635, 11, 699, 54, 75, 762, 402, 764, 139, - 253, 767, 402, 769, 162, 771, 52, 94, 91, 92, - 93, 717, 656, 719, 97, 160, 722, 306, 101, 261, - 664, 5, 6, 7, 286, 306, 286, 86, 654, 735, - 44, 293, 91, 92, 93, 654, 50, 570, 97, 301, - 384, 303, 101, 749, 306, 59, 570, 61, 345, 755, - 385, 387, 696, 67, 388, 699, 762, 627, 764, 392, - 386, 767, -1, 769, 552, 771, -1, 555, 82, -1, - -1, 85, 86, 717, -1, 719, -1, -1, 722, -1, - -1, 95, 96, 8, 9, 10, 97, 98, 99, -1, - 1, 735, 3, 4, 91, 92, 93, -1, -1, 587, - 97, 589, -1, -1, 101, 749, 91, 92, 93, -1, - -1, 755, 97, 374, 375, 376, 101, -1, 762, -1, - 764, 552, -1, 767, 555, 769, -1, 771, -1, -1, - -1, -1, -1, -1, 45, 46, -1, -1, -1, 50, - 402, -1, 630, -1, -1, -1, -1, 635, 59, -1, - -1, -1, 552, -1, 65, 555, 587, -1, 589, -1, - -1, 72, -1, -1, -1, 76, -1, -1, 656, -1, - -1, 82, -1, -1, 85, 86, 664, -1, 89, 90, - -1, -1, 93, -1, 95, 96, -1, 587, -1, 589, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 630, - -1, -1, -1, -1, 635, -1, -1, -1, 696, -1, - -1, 699, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 656, -1, -1, -1, 717, - 630, 719, -1, 664, 722, 635, 192, 193, 194, 195, - -1, -1, -1, -1, 200, 201, -1, 735, -1, -1, - -1, -1, -1, -1, -1, -1, 656, -1, -1, -1, - -1, 749, -1, -1, 664, 696, -1, 755, 699, -1, - -1, -1, -1, -1, 762, -1, 764, -1, -1, 767, - -1, 769, -1, 771, -1, -1, 717, -1, 719, -1, - 552, 722, -1, 555, -1, -1, 696, -1, -1, 699, - -1, -1, -1, -1, 735, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 717, 749, 719, - -1, -1, 722, -1, 755, 587, -1, 589, -1, -1, - -1, 762, -1, 764, -1, 735, 767, -1, 769, -1, - 771, -1, -1, -1, -1, -1, -1, -1, -1, 749, - 192, 193, 194, 195, -1, 755, -1, 44, 200, 201, - -1, -1, 762, 50, 764, -1, -1, 767, 630, 769, - -1, 771, 59, 635, 61, -1, -1, -1, -1, -1, - 67, -1, -1, -1, -1, -1, -1, 1, -1, -1, - -1, -1, -1, -1, 656, 82, -1, -1, 85, 86, - -1, -1, 664, -1, -1, -1, -1, -1, 95, 96, - -1, -1, -1, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, -1, 382, 383, 384, 385, - 386, 387, 388, -1, 696, -1, 50, 699, -1, -1, - -1, -1, -1, -1, 44, 59, -1, -1, -1, -1, - 50, 65, -1, -1, -1, 717, -1, 719, 72, 59, - 722, 61, 76, -1, -1, -1, -1, 67, 82, -1, - -1, 85, 86, 735, -1, 89, 90, -1, -1, 93, - -1, -1, 82, -1, -1, 85, 86, 749, 102, 103, - 104, 105, -1, 755, 108, 109, 96, -1, -1, -1, - 762, -1, 764, -1, 1, 767, -1, 769, -1, 771, + 384, 385, 386, 387, 388, 389, 52, 453, 95, 455, + 553, 95, 1, 1, 175, 1, 93, 63, 636, 403, + 95, 254, 92, 469, 94, 1, 268, 97, 98, 99, + 100, 1, 95, 275, 480, 92, 1, 279, 1, 485, + 97, 98, 448, 1, 403, 287, 612, 1, 1, 95, + 283, 1, 294, 94, 287, 99, 100, 94, 720, 1, + 302, 9, 304, 93, 448, 570, 52, 94, 573, 45, + 46, 175, 756, 100, 307, 94, 1, 63, 1, 697, + 1, 765, 700, 1, 95, 33, 328, 1, 99, 1, + 175, 1, 1, 477, 327, 607, 1, 0, 97, 483, + 88, 343, 101, 95, 93, 723, 9, 10, 11, 95, + 86, 1, 88, 625, 96, 91, 92, 93, 736, 1, + 362, 97, 364, 86, 94, 101, 287, 30, 93, 1, + 33, 34, 750, 294, 88, 93, 86, 93, 0, 1, + 93, 302, 67, 304, 86, 763, 307, 99, 51, 382, + 768, 1, 770, 1, 772, 67, 1, 0, 1, 62, + 1, 403, 667, 86, 676, 86, 0, 1, 86, 553, + 403, 95, 556, 619, 686, 1, 86, 86, 65, 0, + 1, 86, 44, 287, 1, 72, 1, 0, 1, 431, + 294, 94, 434, 55, 553, 53, 86, 556, 302, 61, + 304, 44, 287, 307, 86, 67, 1, 653, 94, 294, + 44, 97, 55, 659, 86, 448, 175, 302, 61, 304, + 107, 55, 307, 44, 67, 44, 129, 61, 612, 613, + 1, 44, 75, 67, 55, 641, 86, 99, 86, 100, + 61, 86, 403, 47, 628, 86, 67, 631, 61, 44, + 101, 9, 636, 11, 67, 50, 99, 641, 62, 162, + 86, 101, 44, 0, 1, 99, 0, 1, 101, 86, + 1, 86, 631, 657, 94, 33, 60, 97, 99, 61, + 64, 101, 641, 1, 10, 67, 99, 82, 97, 735, + 85, 86, 96, 739, 65, 11, 67, 553, 657, 403, + 556, 72, 0, 1, 30, 76, 1, 44, 34, 14, + 44, 553, 12, 697, 556, 86, 700, 96, 403, 50, + 553, 100, 13, 556, 61, 51, 44, 61, 287, 99, + 67, 94, 50, 67, 718, 294, 720, 100, 94, 723, + 129, 45, 46, 302, 100, 304, 44, 1, 307, 95, + 1, 82, 736, 93, 85, 86, 95, 1, 97, 718, + 93, 720, 99, 61, 82, 99, 750, 85, 86, 67, + 175, 160, 67, 162, 99, 631, 94, 72, 99, 763, + 83, 76, 470, 97, 768, 473, 770, 629, 772, 631, + 44, 86, 553, 97, 636, 556, 50, 101, 631, 100, + 44, 99, 5, 6, 7, 59, 50, 61, 641, 45, + 46, 94, 44, 67, 65, 657, 67, 100, 50, 122, + 123, 72, 95, 96, 657, 76, 99, 588, 82, 590, + 94, 85, 86, 99, 100, 86, 100, 50, 82, 1, + 99, 85, 86, 697, 403, 94, 700, 45, 46, 553, + 82, 100, 556, 85, 86, 697, 91, 92, 700, 3, + 4, 97, 94, 91, 92, 101, 16, 17, 553, 82, + 631, 556, 85, 86, 99, 636, 718, 95, 720, 91, + 92, 723, 287, 66, 588, 718, 590, 720, 50, 294, + 1, 175, 45, 46, 736, 88, 657, 302, 93, 304, + 45, 46, 307, 588, 665, 590, 97, 98, 750, 763, + 378, 379, 380, 381, 768, 175, 770, 93, 772, 93, + 82, 763, 99, 85, 86, 44, 768, 631, 770, 94, + 772, 50, 636, 8, 9, 10, 697, 373, 374, 700, + 59, 44, 61, 44, 383, 384, 631, 50, 67, 50, + 1, 636, 93, 657, 97, 98, 99, 718, 94, 720, + 99, 665, 723, 82, 67, 94, 85, 86, 91, 92, + 93, 97, 657, 1, 97, 736, 95, 96, 101, 82, + 665, 82, 85, 86, 85, 86, 94, 100, 56, 750, + 375, 376, 377, 697, 553, 756, 700, 556, 403, 56, + 99, 94, 763, 287, 765, 94, 1, 768, 94, 770, + 294, 772, 697, 94, 718, 700, 720, 175, 302, 723, + 304, 1, 99, 307, 1, 99, 56, 287, 94, 588, + 94, 590, 736, 718, 294, 720, 54, 0, 723, 91, + 92, 93, 302, 0, 304, 97, 750, 307, 75, 101, + 382, 736, 756, 11, 18, 19, 20, 21, 162, 763, + 139, 765, 254, 160, 768, 750, 770, 403, 772, 44, + 52, 756, 631, 50, 94, 50, 262, 636, 763, 287, + 765, 307, 59, 768, 59, 770, 61, 772, 65, 655, + 307, 655, 67, 57, 571, 72, 571, 385, 657, 76, + 346, 386, 388, 393, -1, 82, 665, 82, 85, 86, + 85, 86, 89, 90, 389, 387, 93, 628, -1, 403, + 95, 96, -1, -1, -1, 102, 103, 104, 105, 287, + -1, 108, 109, -1, -1, -1, 294, -1, 697, -1, + -1, 700, -1, 403, 302, -1, 304, 86, 553, 307, + -1, 556, 91, 92, 93, -1, -1, -1, 97, 718, + 86, 720, 101, 86, 723, 91, 92, 93, 91, 92, + 93, 97, 1, -1, 97, 101, -1, 736, 101, -1, + 91, 92, 93, 588, -1, 590, 97, -1, -1, -1, + 101, 750, -1, -1, -1, -1, -1, 756, -1, -1, + -1, -1, -1, -1, 763, -1, 765, -1, -1, 768, + -1, 770, -1, 772, -1, 44, 45, 46, 47, 48, + 49, 50, 51, -1, -1, 54, 631, -1, -1, 58, + 59, 636, -1, 62, -1, -1, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 403, -1, 76, 44, -1, + -1, -1, 657, 82, 50, -1, 85, 86, -1, -1, + 665, -1, -1, 59, 93, 61, 95, 96, -1, 553, + 99, 67, 556, 102, 103, 104, 105, -1, -1, 108, + 109, -1, 44, -1, -1, -1, 82, -1, 50, 85, + 86, -1, 697, 553, -1, 700, 556, 59, -1, 61, + 96, -1, -1, -1, 588, 67, 590, -1, -1, -1, + -1, -1, -1, 718, -1, 720, -1, -1, 723, -1, + 82, -1, -1, 85, 86, -1, -1, -1, 588, -1, + 590, 736, -1, -1, 96, -1, -1, -1, -1, -1, + 193, 194, 195, 196, -1, 750, -1, 631, 201, 202, + -1, 756, 636, -1, -1, -1, -1, -1, 763, -1, + 765, -1, -1, 768, -1, 770, -1, 772, -1, -1, + -1, 631, -1, 657, -1, -1, 636, -1, -1, -1, + -1, 665, -1, -1, -1, -1, 44, 45, 46, -1, + -1, -1, 50, -1, -1, 553, -1, 657, 556, -1, + -1, 59, -1, -1, -1, 665, -1, 65, -1, -1, + -1, -1, -1, 697, 72, -1, 700, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + 588, -1, 590, -1, 718, 93, 720, 697, -1, 723, + 700, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 736, -1, -1, -1, -1, -1, 718, -1, + 720, -1, -1, 723, -1, -1, 750, -1, -1, -1, + -1, -1, 756, 631, -1, -1, 736, -1, 636, 763, + -1, 765, -1, -1, 768, -1, 770, -1, 772, -1, + 750, -1, 193, 194, 195, 196, 756, -1, -1, 657, + 201, 202, -1, 763, -1, 765, -1, 665, 768, -1, + 770, -1, 772, -1, -1, -1, -1, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, + 383, 384, 385, 386, 387, 388, 389, -1, -1, 697, + -1, -1, 700, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, 3, 4, -1, -1, -1, -1, -1, + 718, -1, 720, -1, -1, 723, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 476, -1, -1, -1, -1, -1, 482, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, -1, - 382, 383, 384, 385, 386, 387, 388, 44, 45, 46, - 47, 48, 49, 50, 51, -1, -1, 54, -1, -1, - -1, 58, 59, -1, -1, 62, -1, -1, 65, 66, - 67, 68, -1, 70, 71, 72, 73, 44, 1, 76, - -1, -1, -1, 50, -1, 82, -1, -1, 85, 86, - -1, -1, 59, -1, 61, -1, 93, -1, 95, 96, - 67, -1, 99, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, -1, -1, 82, -1, -1, 85, 86, - -1, 44, 45, 46, 47, 48, 49, 50, 51, 96, - -1, 54, -1, -1, 476, 58, 59, -1, -1, 62, - 482, -1, 65, 66, 67, 68, 1, 70, 71, 72, - 73, -1, -1, 76, -1, 611, 612, -1, -1, 82, - -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, - 93, 627, 95, 96, -1, -1, 99, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, -1, -1, 44, + -1, -1, 750, -1, -1, 45, 46, -1, 756, -1, + 50, -1, -1, -1, -1, 763, -1, 765, -1, 59, + 768, -1, 770, -1, 772, 65, -1, -1, -1, -1, + -1, -1, 72, -1, 477, -1, 76, -1, -1, -1, + 483, -1, 82, -1, -1, 85, 86, -1, -1, 89, + 90, -1, -1, 93, -1, 95, 1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, -1, 62, -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, 1, + 1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, -1, -1, 99, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 611, - 612, -1, 44, 45, 46, -1, 48, 49, 50, 51, - -1, -1, 54, -1, -1, 627, 58, 59, -1, -1, - -1, -1, -1, 65, 66, 67, 68, 1, 70, 71, + 105, -1, -1, 108, 109, -1, -1, -1, -1, 612, + 613, -1, -1, 44, 45, 46, 47, 48, 49, 50, + 51, -1, -1, 54, -1, 628, 477, 58, 59, -1, + -1, 62, 483, -1, 65, 66, 67, 68, 1, 70, + 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, + -1, -1, 93, -1, 95, 96, -1, -1, 99, -1, + -1, 102, 103, 104, 105, -1, -1, 108, 109, -1, + -1, 44, 45, 46, -1, 48, 49, 50, 51, -1, + -1, 54, -1, -1, -1, 58, 59, -1, -1, -1, + -1, -1, 65, 66, 67, 68, -1, 70, 71, 72, + 73, -1, -1, 76, -1, -1, -1, -1, -1, 82, + -1, 1, 85, 86, -1, -1, -1, -1, -1, -1, + 93, -1, 95, 96, -1, -1, 99, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 612, 613, -1, 44, 45, 46, -1, 48, 49, + 50, 51, -1, -1, 54, -1, -1, 628, 58, 59, + -1, -1, -1, -1, -1, 65, 66, 67, 68, 1, + 70, 71, 72, 73, -1, -1, 76, -1, -1, -1, + -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, + -1, -1, -1, 93, -1, 95, -1, -1, -1, 99, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + -1, -1, 44, 45, 46, -1, 48, 49, 50, 51, + -1, -1, 54, -1, -1, -1, 58, 59, -1, -1, + -1, -1, -1, 65, 66, 1, 68, -1, 70, 71, 72, 73, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, - -1, 93, -1, 95, 96, -1, -1, 99, -1, -1, - 102, 103, 104, 105, -1, -1, 108, 109, -1, -1, - 44, 45, 46, -1, 48, 49, 50, 51, -1, -1, - 54, -1, -1, -1, 58, 59, -1, -1, -1, -1, - -1, 65, 66, 67, 68, 1, 70, 71, 72, 73, - -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, - -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, - -1, 95, -1, -1, -1, 99, -1, -1, 102, 103, - 104, 105, -1, -1, 108, 109, -1, -1, 44, 45, + -1, 93, -1, 95, -1, -1, -1, 99, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 44, 45, 46, -1, 48, 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, 65, - 66, 1, 68, -1, 70, 71, 72, 73, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 66, -1, 68, -1, 70, 71, 72, 73, -1, 1, + 76, 3, 4, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, 93, -1, 95, -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, - -1, -1, 108, 109, 44, 45, 46, -1, 48, 49, - 50, 51, -1, -1, 54, -1, -1, -1, 58, 59, - -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, - 70, 71, 72, 73, -1, 1, 76, 3, 4, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, - -1, -1, -1, 93, -1, 95, -1, -1, -1, 99, - -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, -1, 108, 109, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 45, 46, -1, -1, -1, 50, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, + 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, + -1, 93, -1, 95, 96, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, 99, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, -1, 95, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, 88, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + 86, -1, 88, 89, 90, -1, -1, 93, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, 98, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, 98, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, 99, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, 99, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, 98, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, 94, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + 98, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, 98, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, 94, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, 98, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, 94, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, 94, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, 94, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, + -1, -1, -1, 99, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, - 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, 99, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, - -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, - -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, 3, 4, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, 3, 4, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, 1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, 1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, + -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, + -1, -1, 93, -1, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, 1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, 1, -1, - 3, 4, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, 1, -1, 3, + 4, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + -1, 45, 46, -1, -1, -1, 50, 102, 103, 104, + 105, -1, -1, 108, 109, 59, -1, -1, -1, -1, + -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, -1, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, + -1, 50, -1, 1, -1, 3, 4, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, + -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, + 89, 90, -1, -1, 93, -1, -1, 45, 46, -1, + -1, -1, 50, 102, 103, 104, 105, -1, -1, 108, + 109, 59, -1, -1, -1, -1, -1, 65, 1, -1, + 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, + -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, + 108, 109, 45, 46, -1, -1, -1, 50, -1, 1, + -1, 3, 4, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, - 93, -1, -1, -1, -1, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, - -1, -1, 50, -1, 1, -1, 3, 4, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, - -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, 45, 46, - -1, -1, -1, 50, 102, 103, 104, 105, -1, -1, - 108, 109, 59, -1, -1, -1, -1, -1, 65, 1, - -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, - -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, - -1, -1, 89, 90, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, 102, 103, 104, 105, -1, - -1, 108, 109, 45, 46, -1, -1, -1, 50, -1, - 1, -1, 3, 4, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 45, 46, -1, -1, -1, 50, 102, + 103, 104, 105, -1, -1, 108, 109, 59, -1, -1, + -1, -1, -1, 65, 1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, - -1, 93, -1, -1, 45, 46, -1, -1, -1, 50, - 102, 103, 104, 105, -1, -1, 108, 109, 59, -1, - -1, -1, -1, -1, 65, 1, -1, 3, 4, -1, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, + -1, -1, -1, 50, -1, 1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, + 1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, 90, -1, -1, 93, -1, 44, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + -1, -1, 1, -1, 45, 46, 72, -1, -1, 50, + 76, -1, -1, -1, -1, -1, 82, -1, 59, 85, + 86, -1, -1, -1, 65, -1, -1, 93, -1, 3, + 4, 72, -1, 99, -1, 76, 102, 103, 104, 105, + -1, 82, 108, 109, 85, 86, 45, 46, -1, -1, + -1, 50, 93, 94, -1, -1, -1, -1, -1, -1, + 59, 102, 103, 104, 105, -1, 65, 108, 109, 1, + -1, 45, 46, 72, -1, -1, 50, 76, -1, -1, + -1, -1, -1, 82, -1, 59, 85, 86, -1, -1, + -1, 65, -1, -1, 93, 94, 3, 4, 72, -1, + -1, -1, 76, 102, 103, 104, 105, -1, 82, 108, + 109, 85, 86, 45, 46, 89, 90, -1, 50, 93, + -1, 95, 96, -1, -1, -1, -1, 59, 102, 103, + 104, 105, -1, 65, 108, 109, -1, -1, 45, 46, + 72, -1, -1, 50, 76, -1, -1, 3, 4, -1, + 82, -1, 59, 85, 86, -1, -1, -1, 65, -1, + -1, 93, -1, -1, -1, 72, -1, -1, -1, 76, + 102, 103, 104, 105, -1, 82, 108, 109, 85, 86, + -1, -1, 89, 90, -1, -1, 93, 94, -1, 45, + 46, -1, -1, -1, 50, 102, 103, 104, 105, -1, + -1, 108, 109, 59, -1, -1, -1, -1, -1, 65, + -1, -1, 3, 4, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, + -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, + -1, -1, 108, 109, 45, 46, -1, -1, -1, 50, + -1, -1, -1, 3, 4, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, - 46, -1, -1, -1, 50, -1, 1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, - 76, 1, -1, -1, -1, -1, 82, -1, -1, 85, - 86, -1, -1, 89, 90, -1, -1, 93, -1, 44, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 1, -1, 45, 46, 72, -1, -1, - 50, 76, -1, -1, -1, -1, -1, 82, -1, 59, - 85, 86, -1, -1, -1, 65, -1, -1, 93, -1, - 3, 4, 72, -1, 99, -1, 76, 102, 103, 104, - 105, -1, 82, 108, 109, 85, 86, 45, 46, -1, - -1, -1, 50, 93, 94, -1, -1, -1, -1, -1, - -1, 59, 102, 103, 104, 105, -1, 65, 108, 109, - 1, -1, 45, 46, 72, -1, -1, 50, 76, -1, - -1, -1, -1, -1, 82, -1, 59, 85, 86, -1, - -1, -1, 65, -1, -1, 93, 94, 3, 4, 72, - -1, -1, -1, 76, 102, 103, 104, 105, -1, 82, - 108, 109, 85, 86, 45, 46, 89, 90, -1, 50, - 93, -1, 95, 96, -1, -1, -1, -1, 59, 102, - 103, 104, 105, -1, 65, 108, 109, -1, -1, 45, - 46, 72, -1, -1, 50, 76, -1, -1, 3, 4, - -1, 82, -1, 59, 85, 86, -1, -1, -1, 65, - -1, -1, 93, -1, -1, -1, 72, -1, -1, -1, - 76, 102, 103, 104, 105, -1, 82, 108, 109, 85, - 86, -1, -1, 89, 90, -1, -1, 93, 94, -1, - 45, 46, -1, -1, -1, 50, 102, 103, 104, 105, - -1, -1, 108, 109, 59, -1, -1, -1, -1, -1, - 65, -1, -1, 3, 4, -1, -1, 72, -1, -1, - -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, - 85, 86, -1, -1, 89, 90, -1, -1, 93, 94, - -1, -1, -1, -1, -1, -1, -1, 102, 103, 104, - 105, -1, -1, 108, 109, 45, 46, -1, -1, -1, - 50, -1, -1, -1, 3, 4, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, + -1, -1, 93, 94, -1, 45, 46, -1, -1, -1, + 50, 102, 103, 104, 105, -1, -1, 108, 109, 59, + -1, -1, -1, -1, -1, 65, -1, -1, 3, 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, - 90, -1, -1, 93, 94, -1, 45, 46, -1, -1, - -1, 50, 102, 103, 104, 105, -1, -1, 108, 109, - 59, -1, -1, -1, -1, -1, 65, -1, -1, 3, - 4, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - 89, 90, -1, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 45, 46, -1, -1, -1, 50, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, + -1, -1, 102, 103, 104, 105, -1, -1, 108, 109, + 45, 46, -1, -1, -1, 50, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, 50, -1, 93, -1, + -1, -1, -1, -1, -1, 59, -1, 102, 103, 104, + 105, 65, -1, 108, 109, -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, 89, 90, -1, -1, 93, - -1, 44, 45, 46, -1, -1, -1, 50, 102, 103, - 104, 105, -1, -1, 108, 109, 59, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - -1, -1, 50, 76, -1, -1, -1, -1, -1, 82, - -1, 59, 85, 86, -1, -1, -1, 65, -1, -1, - 93, -1, -1, -1, 72, -1, -1, -1, 76, 102, - 103, 104, 105, -1, 82, 108, 109, 85, 86, -1, - -1, 89, 90, -1, -1, 93, -1, -1, -1, -1, - -1, -1, -1, -1, 102, 103, 104, 105, -1, -1, - 108, 109 + -1, -1, -1, -1, -1, -1, -1, -1, 102, 103, + 104, 105, -1, -1, 108, 109 }; #define YYPURE 1 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/home/green/cygnus/njava/i0/share/bison.simple" +#line 3 "/usr/freeware/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -2450,7 +2475,7 @@ __yy_memcpy (char *to, char *from, int count) #endif #endif -#line 196 "/home/green/cygnus/njava/i0/share/bison.simple" +#line 196 "/usr/freeware/share/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 *. @@ -2755,69 +2780,69 @@ yyreduce: switch (yyn) { case 1: -#line 487 "./parse.y" +#line 502 "./parse.y" {; break;} case 18: -#line 531 "./parse.y" +#line 546 "./parse.y" { yyval.node = build_java_array_type (yyvsp[-2].node, -1); CLASS_LOADED_P (yyval.node) = 1; ; break;} case 19: -#line 536 "./parse.y" +#line 551 "./parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 20: -#line 538 "./parse.y" +#line 553 "./parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 21: -#line 540 "./parse.y" +#line 555 "./parse.y" {RULE ("']' expected"); RECOVER;; break;} case 22: -#line 542 "./parse.y" +#line 557 "./parse.y" {RULE ("']' expected"); RECOVER;; break;} case 26: -#line 557 "./parse.y" +#line 572 "./parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 28: -#line 566 "./parse.y" +#line 581 "./parse.y" {yyval.node = NULL;; break;} case 36: -#line 578 "./parse.y" +#line 593 "./parse.y" { yyval.node = NULL; ; break;} case 37: -#line 582 "./parse.y" +#line 597 "./parse.y" { yyval.node = NULL; ; break;} case 40: -#line 594 "./parse.y" +#line 609 "./parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); package_list = tree_cons (ctxp->package, NULL, package_list); ; break;} case 41: -#line 599 "./parse.y" +#line 614 "./parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 42: -#line 601 "./parse.y" +#line 616 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 45: -#line 611 "./parse.y" +#line 626 "./parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), node, last_name; int i = IDENTIFIER_LENGTH (name)-1; @@ -2845,15 +2870,15 @@ case 45: ; break;} case 46: -#line 637 "./parse.y" +#line 652 "./parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 47: -#line 639 "./parse.y" +#line 654 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 48: -#line 644 "./parse.y" +#line 659 "./parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); /* Don't import java.lang.* twice. */ @@ -2867,15 +2892,15 @@ case 48: ; break;} case 49: -#line 656 "./parse.y" +#line 671 "./parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 50: -#line 658 "./parse.y" +#line 673 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 51: -#line 663 "./parse.y" +#line 678 "./parse.y" { maybe_generate_finit (); maybe_generate_clinit (); @@ -2883,31 +2908,31 @@ case 51: ; break;} case 52: -#line 669 "./parse.y" +#line 684 "./parse.y" { maybe_generate_clinit (); yyval.node = yyvsp[0].node; ; break;} case 53: -#line 674 "./parse.y" +#line 689 "./parse.y" { yyval.node = NULL; ; break;} case 54: -#line 676 "./parse.y" +#line 691 "./parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 55: -#line 687 "./parse.y" +#line 702 "./parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 56: -#line 691 "./parse.y" +#line 706 "./parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) @@ -2921,95 +2946,95 @@ case 56: ; break;} case 57: -#line 707 "./parse.y" +#line 722 "./parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 58: -#line 709 "./parse.y" +#line 724 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 59: -#line 713 "./parse.y" +#line 728 "./parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 60: -#line 715 "./parse.y" +#line 730 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 61: -#line 719 "./parse.y" +#line 734 "./parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 62: -#line 721 "./parse.y" +#line 736 "./parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 63: -#line 723 "./parse.y" +#line 738 "./parse.y" { if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1); ; break;} case 64: -#line 728 "./parse.y" +#line 743 "./parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 65: -#line 732 "./parse.y" +#line 747 "./parse.y" { yyval.node = NULL; ; break;} case 66: -#line 734 "./parse.y" +#line 749 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 67: -#line 736 "./parse.y" +#line 751 "./parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 68: -#line 738 "./parse.y" +#line 753 "./parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 69: -#line 742 "./parse.y" +#line 757 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 70: -#line 744 "./parse.y" +#line 759 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 71: -#line 746 "./parse.y" +#line 761 "./parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 72: -#line 754 "./parse.y" +#line 769 "./parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 73: -#line 759 "./parse.y" +#line 774 "./parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 74: -#line 764 "./parse.y" +#line 779 "./parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 75: -#line 769 "./parse.y" +#line 784 "./parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) @@ -3019,7 +3044,7 @@ case 75: ; break;} case 76: -#line 777 "./parse.y" +#line 792 "./parse.y" { /* Store the location of the `}' when doing xrefs */ if (flag_emit_xref) @@ -3029,27 +3054,27 @@ case 76: ; break;} case 82: -#line 796 "./parse.y" +#line 811 "./parse.y" { yyval.node = parse_jdk1_1_error ("instance initializer"); ; break;} case 84: -#line 802 "./parse.y" +#line 817 "./parse.y" { yyval.node = yyvsp[-1].node; ; break;} case 86: -#line 805 "./parse.y" +#line 820 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner classe declaration"); ; break;} case 87: -#line 807 "./parse.y" +#line 822 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; break;} case 88: -#line 813 "./parse.y" +#line 828 "./parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 89: -#line 815 "./parse.y" +#line 830 "./parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", @@ -3059,19 +3084,19 @@ case 89: ; break;} case 91: -#line 828 "./parse.y" +#line 843 "./parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 92: -#line 830 "./parse.y" +#line 845 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 93: -#line 835 "./parse.y" +#line 850 "./parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 94: -#line 837 "./parse.y" +#line 852 "./parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; @@ -3080,7 +3105,7 @@ case 94: ; break;} case 95: -#line 844 "./parse.y" +#line 859 "./parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); @@ -3088,7 +3113,7 @@ case 95: ; break;} case 96: -#line 850 "./parse.y" +#line 865 "./parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); @@ -3096,88 +3121,88 @@ case 96: ; break;} case 98: -#line 860 "./parse.y" +#line 875 "./parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 99: -#line 862 "./parse.y" +#line 877 "./parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 100: -#line 864 "./parse.y" +#line 879 "./parse.y" {yyerror ("']' expected"); DRECOVER(vdi);; break;} case 101: -#line 866 "./parse.y" +#line 881 "./parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 104: -#line 877 "./parse.y" +#line 892 "./parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 105: -#line 882 "./parse.y" +#line 897 "./parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} case 106: -#line 884 "./parse.y" +#line 899 "./parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 107: -#line 889 "./parse.y" +#line 904 "./parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: -#line 891 "./parse.y" +#line 906 "./parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: -#line 893 "./parse.y" +#line 908 "./parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 110: -#line 895 "./parse.y" +#line 910 "./parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 111: -#line 897 "./parse.y" +#line 912 "./parse.y" { yyerror ("Invalid method declaration, method name required"); RECOVER; ; break;} case 112: -#line 902 "./parse.y" +#line 917 "./parse.y" {RECOVER;; break;} case 113: -#line 904 "./parse.y" +#line 919 "./parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 114: -#line 906 "./parse.y" +#line 921 "./parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 115: -#line 908 "./parse.y" +#line 923 "./parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 116: -#line 916 "./parse.y" +#line 931 "./parse.y" { yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 117: -#line 918 "./parse.y" +#line 933 "./parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 118: -#line 920 "./parse.y" +#line 935 "./parse.y" { EXPR_WFL_LINECOL (wfl_operator) = yyvsp[-1].operator.location; TREE_PURPOSE (yyvsp[-2].node) = @@ -3188,316 +3213,324 @@ case 118: ; break;} case 119: -#line 929 "./parse.y" +#line 944 "./parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 120: -#line 931 "./parse.y" +#line 946 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 121: -#line 936 "./parse.y" +#line 951 "./parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 122: -#line 940 "./parse.y" +#line 955 "./parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 123: -#line 945 "./parse.y" +#line 960 "./parse.y" {yyerror ("Missing formal parameter term"); RECOVER;; break;} case 124: -#line 950 "./parse.y" +#line 965 "./parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 125: -#line 954 "./parse.y" +#line 969 "./parse.y" { parse_jdk1_1_error ("final parameters"); yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 126: -#line 959 "./parse.y" +#line 974 "./parse.y" {yyerror ("Missing identifier"); RECOVER;; break;} case 127: -#line 961 "./parse.y" +#line 976 "./parse.y" { - SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[-2].value)); yyerror ("Missing identifier"); RECOVER; ; break;} case 128: -#line 968 "./parse.y" -{ yyval.node = NULL_TREE; ; +#line 983 "./parse.y" +{ + check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", + yyvsp[0].value, ACC_FINAL); + if (yyvsp[0].value != ACC_FINAL) + MODIFIER_WFL (FINAL_TK) = build_wfl_node (NULL_TREE); + ; break;} case 129: -#line 970 "./parse.y" -{ yyval.node = yyvsp[0].node; ; +#line 992 "./parse.y" +{ yyval.node = NULL_TREE; ; break;} case 130: -#line 972 "./parse.y" -{yyerror ("Missing class type term"); RECOVER;; +#line 994 "./parse.y" +{ yyval.node = yyvsp[0].node; ; break;} case 131: -#line 977 "./parse.y" -{ yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; +#line 996 "./parse.y" +{yyerror ("Missing class type term"); RECOVER;; break;} case 132: -#line 979 "./parse.y" -{ yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; +#line 1001 "./parse.y" +{ yyval.node = build_tree_list (yyvsp[0].node, yyvsp[0].node); ; break;} case 133: -#line 981 "./parse.y" +#line 1003 "./parse.y" +{ yyval.node = tree_cons (yyvsp[0].node, yyvsp[0].node, yyvsp[-2].node); ; + break;} +case 134: +#line 1005 "./parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} -case 136: -#line 988 "./parse.y" +case 137: +#line 1012 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 137: -#line 994 "./parse.y" +case 138: +#line 1018 "./parse.y" { TREE_CHAIN (yyvsp[0].node) = ctxp->static_initialized; ctxp->static_initialized = yyvsp[0].node; ; break;} -case 138: -#line 999 "./parse.y" +case 139: +#line 1023 "./parse.y" { TREE_CHAIN (yyvsp[-1].node) = ctxp->static_initialized; ctxp->static_initialized = yyvsp[-1].node; ; break;} -case 139: -#line 1007 "./parse.y" +case 140: +#line 1031 "./parse.y" { SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value)); ; break;} -case 140: -#line 1015 "./parse.y" +case 141: +#line 1039 "./parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} -case 141: -#line 1020 "./parse.y" +case 142: +#line 1044 "./parse.y" { finish_method_declaration (yyvsp[0].node); ; break;} -case 142: -#line 1025 "./parse.y" +case 143: +#line 1049 "./parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 143: -#line 1027 "./parse.y" +case 144: +#line 1051 "./parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 144: -#line 1032 "./parse.y" +case 145: +#line 1056 "./parse.y" { yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} -case 145: -#line 1034 "./parse.y" +case 146: +#line 1058 "./parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} -case 146: -#line 1042 "./parse.y" +case 147: +#line 1066 "./parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = empty_stmt_node; yyval.node = yyvsp[0].node; ; break;} -case 147: -#line 1047 "./parse.y" -{ yyval.node = yyvsp[0].node; ; - break;} case 148: -#line 1049 "./parse.y" +#line 1071 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 149: -#line 1051 "./parse.y" +#line 1073 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 152: -#line 1061 "./parse.y" +case 150: +#line 1075 "./parse.y" +{ yyval.node = yyvsp[0].node; ; + break;} +case 153: +#line 1085 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, NULL_TREE); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-3].node), yyval.node); yyval.node = java_method_add_stmt (current_function_decl, yyval.node); ; break;} -case 153: -#line 1067 "./parse.y" +case 154: +#line 1091 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-4].node, yyvsp[-2].node); yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-4].node), yyval.node); yyval.node = java_method_add_stmt (current_function_decl, yyval.node); ; break;} -case 154: -#line 1075 "./parse.y" -{yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; - break;} case 155: -#line 1077 "./parse.y" +#line 1099 "./parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 156: -#line 1082 "./parse.y" +#line 1101 "./parse.y" +{yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; + break;} +case 157: +#line 1106 "./parse.y" { tree wfl = build_wfl_node (this_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ; break;} -case 157: -#line 1088 "./parse.y" +case 158: +#line 1112 "./parse.y" { tree wfl = build_wfl_node (super_identifier_node); EXPR_WFL_LINECOL (wfl) = yyvsp[0].operator.location; yyval.node = wfl; ; break;} -case 158: -#line 1099 "./parse.y" +case 159: +#line 1123 "./parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} -case 159: -#line 1101 "./parse.y" +case 160: +#line 1125 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 160: -#line 1105 "./parse.y" +case 161: +#line 1129 "./parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} -case 161: -#line 1107 "./parse.y" +case 162: +#line 1131 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 162: -#line 1111 "./parse.y" +case 163: +#line 1135 "./parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 163: -#line 1113 "./parse.y" +case 164: +#line 1137 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 164: -#line 1117 "./parse.y" +case 165: +#line 1141 "./parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 165: -#line 1119 "./parse.y" +case 166: +#line 1143 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 166: -#line 1123 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; - break;} case 167: -#line 1125 "./parse.y" +#line 1147 "./parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 168: -#line 1130 "./parse.y" +#line 1149 "./parse.y" +{yyerror ("'{' expected"); RECOVER;; + break;} +case 169: +#line 1154 "./parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} -case 169: -#line 1135 "./parse.y" +case 170: +#line 1159 "./parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} -case 170: -#line 1140 "./parse.y" +case 171: +#line 1164 "./parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} -case 171: -#line 1142 "./parse.y" +case 172: +#line 1166 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 172: -#line 1147 "./parse.y" +case 173: +#line 1171 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 173: -#line 1149 "./parse.y" +case 174: +#line 1173 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 178: -#line 1161 "./parse.y" +case 179: +#line 1185 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class declaration"); ; break;} -case 179: -#line 1163 "./parse.y" +case 180: +#line 1187 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; break;} -case 181: -#line 1172 "./parse.y" +case 182: +#line 1196 "./parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} -case 182: -#line 1177 "./parse.y" +case 183: +#line 1201 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 183: -#line 1183 "./parse.y" +case 184: +#line 1207 "./parse.y" { yyval.node = build_new_array_init (yyvsp[-1].operator.location, NULL_TREE); ; break;} -case 184: -#line 1185 "./parse.y" +case 185: +#line 1209 "./parse.y" { yyval.node = build_new_array_init (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} -case 185: -#line 1187 "./parse.y" +case 186: +#line 1211 "./parse.y" { yyval.node = build_new_array_init (yyvsp[-3].operator.location, yyvsp[-2].node); ; break;} -case 186: -#line 1192 "./parse.y" +case 187: +#line 1216 "./parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, NULL_TREE); ; break;} -case 187: -#line 1197 "./parse.y" +case 188: +#line 1221 "./parse.y" { yyval.node = tree_cons (maybe_build_array_element_wfl (yyvsp[0].node), yyvsp[0].node, yyvsp[-2].node); ; break;} -case 188: -#line 1201 "./parse.y" +case 189: +#line 1225 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 189: -#line 1207 "./parse.y" +case 190: +#line 1231 "./parse.y" { /* Store the location of the `}' when doing xrefs */ if (current_function_decl && flag_emit_xref) @@ -3506,16 +3539,16 @@ case 189: yyval.node = empty_stmt_node; ; break;} -case 190: -#line 1215 "./parse.y" +case 191: +#line 1239 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 191: -#line 1220 "./parse.y" +case 192: +#line 1244 "./parse.y" { enter_block (); ; break;} -case 192: -#line 1225 "./parse.y" +case 193: +#line 1249 "./parse.y" { maybe_absorb_scoping_blocks (); /* Store the location of the `}' when doing xrefs */ @@ -3525,36 +3558,36 @@ case 192: yyval.node = exit_block (); ; break;} -case 196: -#line 1243 "./parse.y" +case 197: +#line 1267 "./parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} -case 197: -#line 1245 "./parse.y" +case 198: +#line 1269 "./parse.y" { parse_jdk1_1_error ("inner class declaration"); ; break;} -case 199: -#line 1254 "./parse.y" +case 200: +#line 1278 "./parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 200: -#line 1256 "./parse.y" +case 201: +#line 1280 "./parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 206: -#line 1266 "./parse.y" +case 207: +#line 1290 "./parse.y" { yyval.node = exit_block (); ; break;} -case 211: -#line 1275 "./parse.y" +case 212: +#line 1299 "./parse.y" { yyval.node = exit_block (); ; break;} -case 223: -#line 1294 "./parse.y" +case 224: +#line 1318 "./parse.y" { yyval.node = empty_stmt_node; ; break;} -case 224: -#line 1299 "./parse.y" +case 225: +#line 1323 "./parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); @@ -3563,20 +3596,20 @@ case 224: PUSH_LABELED_BLOCK (yyval.node); ; break;} -case 225: -#line 1310 "./parse.y" +case 226: +#line 1334 "./parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} -case 226: -#line 1312 "./parse.y" +case 227: +#line 1336 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} -case 227: -#line 1317 "./parse.y" +case 228: +#line 1341 "./parse.y" { yyval.node = finish_labeled_statement (yyvsp[-1].node, yyvsp[0].node); ; break;} -case 228: -#line 1324 "./parse.y" +case 229: +#line 1348 "./parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ @@ -3586,107 +3619,107 @@ case 228: yyval.node = JAVA_MAYBE_GENERATE_DEBUG_INFO (yyval.node); ; break;} -case 229: -#line 1333 "./parse.y" +case 230: +#line 1357 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} -case 230: -#line 1339 "./parse.y" +case 231: +#line 1363 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} -case 231: -#line 1345 "./parse.y" +case 232: +#line 1369 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); DRECOVER (expr_stmt); ; break;} -case 232: -#line 1351 "./parse.y" +case 233: +#line 1375 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 233: -#line 1353 "./parse.y" +case 234: +#line 1377 "./parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} -case 234: -#line 1358 "./parse.y" +case 235: +#line 1382 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 235: -#line 1360 "./parse.y" +case 236: +#line 1384 "./parse.y" { parse_ctor_invocation_error (); RECOVER; ; break;} -case 236: -#line 1365 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} case 237: -#line 1367 "./parse.y" -{yyerror ("')' expected"); RECOVER;; +#line 1389 "./parse.y" +{yyerror ("'(' expected"); RECOVER;; break;} case 238: -#line 1369 "./parse.y" +#line 1391 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 239: -#line 1371 "./parse.y" -{yyerror ("';' expected"); RECOVER;; +#line 1393 "./parse.y" +{yyerror ("')' expected"); RECOVER;; break;} case 240: -#line 1373 "./parse.y" +#line 1395 "./parse.y" +{yyerror ("';' expected"); RECOVER;; + break;} +case 241: +#line 1397 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 248: -#line 1388 "./parse.y" +case 249: +#line 1412 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} -case 249: -#line 1393 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} case 250: -#line 1395 "./parse.y" -{yyerror ("Missing term"); RECOVER;; +#line 1417 "./parse.y" +{yyerror ("'(' expected"); RECOVER;; break;} case 251: -#line 1397 "./parse.y" -{yyerror ("')' expected"); RECOVER;; +#line 1419 "./parse.y" +{yyerror ("Missing term"); RECOVER;; break;} case 252: -#line 1402 "./parse.y" -{ yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; +#line 1421 "./parse.y" +{yyerror ("')' expected"); RECOVER;; break;} case 253: -#line 1407 "./parse.y" +#line 1426 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 254: -#line 1412 "./parse.y" +#line 1431 "./parse.y" +{ yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; + break;} +case 255: +#line 1436 "./parse.y" { enter_block (); ; break;} -case 255: -#line 1416 "./parse.y" +case 256: +#line 1440 "./parse.y" { /* Make into "proper list" of COMPOUND_EXPRs. I.e. make the last statment also have its own @@ -3696,113 +3729,113 @@ case 255: yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-2].node), yyvsp[-2].node); ; break;} -case 256: -#line 1428 "./parse.y" +case 257: +#line 1452 "./parse.y" { yyval.node = build (SWITCH_EXPR, NULL_TREE, yyvsp[-1].node, NULL_TREE); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} -case 257: -#line 1433 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} case 258: -#line 1435 "./parse.y" -{yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; +#line 1457 "./parse.y" +{yyerror ("'(' expected"); RECOVER;; break;} case 259: -#line 1437 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; +#line 1459 "./parse.y" +{yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 260: -#line 1445 "./parse.y" -{ yyval.node = NULL_TREE; ; +#line 1461 "./parse.y" +{yyerror ("'{' expected"); RECOVER;; break;} case 261: -#line 1447 "./parse.y" +#line 1469 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 262: -#line 1449 "./parse.y" +#line 1471 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 263: -#line 1451 "./parse.y" +#line 1473 "./parse.y" +{ yyval.node = NULL_TREE; ; + break;} +case 264: +#line 1475 "./parse.y" { yyval.node = NULL_TREE; ; break;} -case 269: -#line 1470 "./parse.y" +case 270: +#line 1494 "./parse.y" { tree lab = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (lab) = yyvsp[-2].operator.location; java_method_add_stmt (current_function_decl, lab); ; break;} -case 270: -#line 1476 "./parse.y" +case 271: +#line 1500 "./parse.y" { tree lab = build1 (DEFAULT_EXPR, NULL_TREE, NULL_TREE); EXPR_WFL_LINECOL (lab) = yyvsp[-1].operator.location; java_method_add_stmt (current_function_decl, lab); ; break;} -case 271: -#line 1482 "./parse.y" -{yyerror ("Missing or invalid constant expression"); RECOVER;; - break;} case 272: -#line 1484 "./parse.y" -{yyerror ("':' expected"); RECOVER;; +#line 1506 "./parse.y" +{yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 273: -#line 1486 "./parse.y" +#line 1508 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 274: -#line 1491 "./parse.y" +#line 1510 "./parse.y" +{yyerror ("':' expected"); RECOVER;; + break;} +case 275: +#line 1515 "./parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ; break;} -case 275: -#line 1499 "./parse.y" +case 276: +#line 1523 "./parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} -case 276: -#line 1501 "./parse.y" +case 277: +#line 1525 "./parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} -case 277: -#line 1503 "./parse.y" +case 278: +#line 1527 "./parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} -case 278: -#line 1505 "./parse.y" +case 279: +#line 1529 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} -case 279: -#line 1510 "./parse.y" +case 280: +#line 1534 "./parse.y" { yyval.node = finish_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} -case 280: -#line 1515 "./parse.y" +case 281: +#line 1539 "./parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} -case 281: -#line 1524 "./parse.y" +case 282: +#line 1548 "./parse.y" { yyval.node = finish_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} -case 282: -#line 1529 "./parse.y" +case 283: +#line 1553 "./parse.y" { yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 283: -#line 1531 "./parse.y" +case 284: +#line 1555 "./parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ @@ -3810,24 +3843,24 @@ case 283: empty_stmt_node; ; break;} -case 284: -#line 1538 "./parse.y" -{yyerror ("Invalid control expression"); RECOVER;; - break;} case 285: -#line 1540 "./parse.y" -{yyerror ("Invalid update expression"); RECOVER;; +#line 1562 "./parse.y" +{yyerror ("Invalid control expression"); RECOVER;; break;} case 286: -#line 1542 "./parse.y" +#line 1564 "./parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 287: -#line 1547 "./parse.y" -{ yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; +#line 1566 "./parse.y" +{yyerror ("Invalid update expression"); RECOVER;; break;} case 288: -#line 1549 "./parse.y" +#line 1571 "./parse.y" +{ yyval.node = finish_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; + break;} +case 289: +#line 1573 "./parse.y" { yyval.node = finish_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ @@ -3835,24 +3868,24 @@ case 288: empty_stmt_node; ; break;} -case 289: -#line 1559 "./parse.y" +case 290: +#line 1583 "./parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ enter_block (); ; break;} -case 290: -#line 1565 "./parse.y" +case 291: +#line 1589 "./parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} -case 291: -#line 1567 "./parse.y" +case 292: +#line 1591 "./parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} -case 292: -#line 1572 "./parse.y" +case 293: +#line 1596 "./parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ @@ -3864,139 +3897,139 @@ case 292: java_method_add_stmt (current_function_decl, yyval.node); ; break;} -case 293: -#line 1584 "./parse.y" +case 294: +#line 1608 "./parse.y" { yyval.node = empty_stmt_node; ; break;} -case 294: -#line 1586 "./parse.y" +case 295: +#line 1610 "./parse.y" { /* Init statement recorded within the previously defined block scope */ yyval.node = java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} -case 295: -#line 1592 "./parse.y" +case 296: +#line 1616 "./parse.y" { /* Local variable are recorded within the previously defined block scope */ yyval.node = NULL_TREE; ; break;} -case 296: -#line 1598 "./parse.y" +case 297: +#line 1622 "./parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} -case 297: -#line 1602 "./parse.y" +case 298: +#line 1626 "./parse.y" {yyval.node = empty_stmt_node;; break;} -case 298: -#line 1604 "./parse.y" +case 299: +#line 1628 "./parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} -case 299: -#line 1609 "./parse.y" +case 300: +#line 1633 "./parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} -case 300: -#line 1611 "./parse.y" +case 301: +#line 1635 "./parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} -case 301: -#line 1613 "./parse.y" +case 302: +#line 1637 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 302: -#line 1618 "./parse.y" +case 303: +#line 1642 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} -case 303: -#line 1620 "./parse.y" +case 304: +#line 1644 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} -case 304: -#line 1622 "./parse.y" +case 305: +#line 1646 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 305: -#line 1624 "./parse.y" +case 306: +#line 1648 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 306: -#line 1629 "./parse.y" +case 307: +#line 1653 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} -case 307: -#line 1631 "./parse.y" +case 308: +#line 1655 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} -case 308: -#line 1633 "./parse.y" +case 309: +#line 1657 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 309: -#line 1635 "./parse.y" +case 310: +#line 1659 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 310: -#line 1640 "./parse.y" +case 311: +#line 1664 "./parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} -case 311: -#line 1642 "./parse.y" +case 312: +#line 1666 "./parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} -case 312: -#line 1644 "./parse.y" +case 313: +#line 1668 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 313: -#line 1646 "./parse.y" +case 314: +#line 1670 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 314: -#line 1651 "./parse.y" +case 315: +#line 1675 "./parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} -case 315: -#line 1656 "./parse.y" +case 316: +#line 1680 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 316: -#line 1658 "./parse.y" +case 317: +#line 1682 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} -case 317: -#line 1663 "./parse.y" +case 318: +#line 1687 "./parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = EXPR_WFL_LINECOL (MODIFIER_WFL (SYNCHRONIZED_TK)); ; break;} -case 318: -#line 1669 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; - break;} case 319: -#line 1671 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; +#line 1693 "./parse.y" +{yyerror ("'{' expected"); RECOVER;; break;} case 320: -#line 1673 "./parse.y" -{yyerror ("Missing term"); RECOVER;; +#line 1695 "./parse.y" +{yyerror ("'(' expected"); RECOVER;; break;} case 321: -#line 1675 "./parse.y" +#line 1697 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 322: -#line 1680 "./parse.y" +#line 1699 "./parse.y" +{yyerror ("Missing term"); RECOVER;; + break;} +case 323: +#line 1704 "./parse.y" { check_modifiers ( "Illegal modifier `%s'. Only `synchronized' was expected here", @@ -4006,42 +4039,42 @@ case 322: build_wfl_node (NULL_TREE); ; break;} -case 323: -#line 1692 "./parse.y" +case 324: +#line 1716 "./parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 324: -#line 1694 "./parse.y" +case 325: +#line 1718 "./parse.y" { yyval.node = build_try_finally_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node); ; break;} -case 325: -#line 1696 "./parse.y" +case 326: +#line 1720 "./parse.y" { yyval.node = build_try_finally_statement (yyvsp[-3].operator.location, build_try_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-1].node), yyvsp[0].node); ; break;} -case 326: -#line 1701 "./parse.y" +case 327: +#line 1725 "./parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} -case 328: -#line 1707 "./parse.y" +case 329: +#line 1731 "./parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} -case 329: -#line 1715 "./parse.y" +case 330: +#line 1739 "./parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); yyval.node = yyvsp[-1].node; ; break;} -case 330: -#line 1723 "./parse.y" +case 331: +#line 1747 "./parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is @@ -4058,188 +4091,188 @@ case 330: EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} -case 331: -#line 1739 "./parse.y" -{yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; - break;} case 332: -#line 1741 "./parse.y" +#line 1763 "./parse.y" +{yyerror ("'(' expected"); RECOVER; yyval.node = NULL_TREE;; + break;} +case 333: +#line 1765 "./parse.y" { yyerror ("Missing term or ')' expected"); RECOVER; yyval.node = NULL_TREE; ; break;} -case 333: -#line 1746 "./parse.y" +case 334: +#line 1770 "./parse.y" {yyerror ("Missing term"); RECOVER; yyval.node = NULL_TREE;; break;} -case 334: -#line 1751 "./parse.y" +case 335: +#line 1775 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} -case 335: -#line 1753 "./parse.y" +case 336: +#line 1777 "./parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} -case 339: -#line 1765 "./parse.y" +case 340: +#line 1789 "./parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} -case 340: -#line 1767 "./parse.y" +case 341: +#line 1791 "./parse.y" {yyval.node = yyvsp[-1].node;; break;} -case 345: -#line 1776 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("named class literals"); ; - break;} case 346: -#line 1778 "./parse.y" -{ yyval.node = build_class_ref (yyvsp[-2].node); ; +#line 1800 "./parse.y" +{ yyval.node = parse_jdk1_1_error ("named class literals"); ; break;} case 347: -#line 1780 "./parse.y" -{ yyval.node = build_class_ref (void_type_node); ; +#line 1802 "./parse.y" +{ yyval.node = build_class_ref (yyvsp[-2].node); ; break;} case 348: -#line 1785 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("class literals"); ; +#line 1804 "./parse.y" +{ yyval.node = build_class_ref (void_type_node); ; break;} case 349: -#line 1787 "./parse.y" -{yyerror ("')' expected"); RECOVER;; +#line 1809 "./parse.y" +{ yyval.node = parse_jdk1_1_error ("class literals"); ; break;} case 350: -#line 1789 "./parse.y" -{yyerror ("'class' or 'this' expected" ); RECOVER;; +#line 1811 "./parse.y" +{yyerror ("')' expected"); RECOVER;; break;} case 351: -#line 1791 "./parse.y" -{yyerror ("'class' expected" ); RECOVER;; +#line 1813 "./parse.y" +{yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 352: -#line 1793 "./parse.y" +#line 1815 "./parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 353: -#line 1798 "./parse.y" -{ yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; +#line 1817 "./parse.y" +{yyerror ("'class' expected" ); RECOVER;; break;} case 354: -#line 1800 "./parse.y" -{ yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; +#line 1822 "./parse.y" +{ yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 355: -#line 1805 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; +#line 1824 "./parse.y" +{ yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 356: -#line 1807 "./parse.y" +#line 1829 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; break;} -case 361: -#line 1816 "./parse.y" -{yyerror ("'(' expected"); DRECOVER(new_1);; +case 357: +#line 1831 "./parse.y" +{ yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; break;} case 362: -#line 1818 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; +#line 1840 "./parse.y" +{yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 363: -#line 1820 "./parse.y" -{yyerror ("')' or term expected"); RECOVER;; +#line 1842 "./parse.y" +{yyerror ("'(' expected"); RECOVER;; break;} case 364: -#line 1822 "./parse.y" -{yyerror ("')' expected"); RECOVER;; +#line 1844 "./parse.y" +{yyerror ("')' or term expected"); RECOVER;; break;} case 365: -#line 1824 "./parse.y" -{YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; +#line 1846 "./parse.y" +{yyerror ("')' expected"); RECOVER;; break;} case 366: -#line 1826 "./parse.y" +#line 1848 "./parse.y" +{YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; + break;} +case 367: +#line 1850 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} -case 369: -#line 1836 "./parse.y" +case 370: +#line 1860 "./parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} -case 370: -#line 1841 "./parse.y" +case 371: +#line 1865 "./parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} -case 371: -#line 1846 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} case 372: -#line 1851 "./parse.y" -{ yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; +#line 1870 "./parse.y" +{yyerror ("Missing term"); RECOVER;; break;} case 373: -#line 1853 "./parse.y" +#line 1875 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 374: -#line 1855 "./parse.y" -{ yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; +#line 1877 "./parse.y" +{ yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 375: -#line 1857 "./parse.y" +#line 1879 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; break;} case 376: -#line 1861 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("anonymous array"); ; +#line 1881 "./parse.y" +{ yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, CURRENT_OSB (ctxp));; break;} case 377: -#line 1863 "./parse.y" +#line 1885 "./parse.y" { yyval.node = parse_jdk1_1_error ("anonymous array"); ; break;} case 378: -#line 1865 "./parse.y" -{yyerror ("'[' expected"); DRECOVER ("]");; +#line 1887 "./parse.y" +{ yyval.node = parse_jdk1_1_error ("anonymous array"); ; break;} case 379: -#line 1867 "./parse.y" -{yyerror ("']' expected"); RECOVER;; +#line 1889 "./parse.y" +{yyerror ("'[' expected"); DRECOVER ("]");; break;} case 380: -#line 1872 "./parse.y" -{ yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; +#line 1891 "./parse.y" +{yyerror ("']' expected"); RECOVER;; break;} case 381: -#line 1874 "./parse.y" -{ yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; +#line 1896 "./parse.y" +{ yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 382: -#line 1879 "./parse.y" +#line 1898 "./parse.y" +{ yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; + break;} +case 383: +#line 1903 "./parse.y" { EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location; yyval.node = yyvsp[-1].node; ; break;} -case 383: -#line 1884 "./parse.y" +case 384: +#line 1908 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} -case 384: -#line 1886 "./parse.y" +case 385: +#line 1910 "./parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); RECOVER; ; break;} -case 385: -#line 1895 "./parse.y" +case 386: +#line 1919 "./parse.y" { int allocate = 0; /* If not initialized, allocate memory for the osb @@ -4266,20 +4299,20 @@ case 385: CURRENT_OSB (ctxp) = 1; ; break;} -case 386: -#line 1921 "./parse.y" +case 387: +#line 1945 "./parse.y" { CURRENT_OSB (ctxp)++; ; break;} -case 387: -#line 1923 "./parse.y" +case 388: +#line 1947 "./parse.y" { yyerror ("']' expected"); RECOVER;; break;} -case 388: -#line 1928 "./parse.y" +case 389: +#line 1952 "./parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} -case 389: -#line 1932 "./parse.y" +case 390: +#line 1956 "./parse.y" { tree super_wfl = build_wfl_node (super_identifier_node); @@ -4287,20 +4320,20 @@ case 389: yyval.node = make_qualified_name (super_wfl, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} -case 390: -#line 1939 "./parse.y" +case 391: +#line 1963 "./parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} -case 391: -#line 1944 "./parse.y" +case 392: +#line 1968 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} -case 392: -#line 1946 "./parse.y" +case 393: +#line 1970 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} -case 393: -#line 1948 "./parse.y" +case 394: +#line 1972 "./parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation @@ -4312,8 +4345,8 @@ case 393: } ; break;} -case 394: -#line 1959 "./parse.y" +case 395: +#line 1983 "./parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation @@ -4325,122 +4358,122 @@ case 394: } ; break;} -case 395: -#line 1970 "./parse.y" +case 396: +#line 1994 "./parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-2].node, NULL_TREE, yyvsp[-4].operator.location, yyvsp[-3].operator.location); ; break;} -case 396: -#line 1975 "./parse.y" +case 397: +#line 1999 "./parse.y" { yyval.node = build_this_super_qualified_invocation (0, yyvsp[-3].node, yyvsp[-1].node, yyvsp[-5].operator.location, yyvsp[-4].operator.location); ; break;} -case 397: -#line 1984 "./parse.y" -{ yyerror ("'(' expected"); DRECOVER (method_invocation); ; - break;} case 398: -#line 1986 "./parse.y" +#line 2008 "./parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 399: -#line 1991 "./parse.y" -{ yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; +#line 2010 "./parse.y" +{ yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 400: -#line 1993 "./parse.y" +#line 2015 "./parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 401: -#line 1995 "./parse.y" +#line 2017 "./parse.y" +{ yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; + break;} +case 402: +#line 2019 "./parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} -case 402: -#line 2000 "./parse.y" +case 403: +#line 2024 "./parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} -case 403: -#line 2005 "./parse.y" +case 404: +#line 2029 "./parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} -case 404: -#line 2010 "./parse.y" +case 405: +#line 2034 "./parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} -case 409: -#line 2025 "./parse.y" -{ yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; - break;} case 410: -#line 2030 "./parse.y" +#line 2049 "./parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} -case 413: -#line 2037 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; +case 411: +#line 2054 "./parse.y" +{ yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 414: -#line 2039 "./parse.y" +#line 2061 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} -case 416: -#line 2042 "./parse.y" -{yyerror ("Missing term"); RECOVER; +case 415: +#line 2063 "./parse.y" +{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 417: -#line 2044 "./parse.y" +#line 2066 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: -#line 2049 "./parse.y" -{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; +#line 2068 "./parse.y" +{yyerror ("Missing term"); RECOVER; break;} case 419: -#line 2051 "./parse.y" -{yyerror ("Missing term"); RECOVER; +#line 2073 "./parse.y" +{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 420: -#line 2056 "./parse.y" -{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; +#line 2075 "./parse.y" +{yyerror ("Missing term"); RECOVER; break;} case 421: -#line 2058 "./parse.y" -{yyerror ("Missing term"); RECOVER; +#line 2080 "./parse.y" +{yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} -case 423: -#line 2064 "./parse.y" -{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; +case 422: +#line 2082 "./parse.y" +{yyerror ("Missing term"); RECOVER; break;} case 424: -#line 2066 "./parse.y" +#line 2088 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} -case 426: -#line 2069 "./parse.y" -{yyerror ("Missing term"); RECOVER; +case 425: +#line 2090 "./parse.y" +{yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 427: -#line 2071 "./parse.y" +#line 2093 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 428: -#line 2076 "./parse.y" +#line 2095 "./parse.y" +{yyerror ("Missing term"); RECOVER; + break;} +case 429: +#line 2100 "./parse.y" { tree type = yyvsp[-3].node; while (CURRENT_OSB (ctxp)--) @@ -4449,16 +4482,16 @@ case 428: yyval.node = build_cast (yyvsp[-4].operator.location, type, yyvsp[0].node); ; break;} -case 429: -#line 2084 "./parse.y" -{ yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; - break;} case 430: -#line 2086 "./parse.y" +#line 2108 "./parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 431: -#line 2088 "./parse.y" +#line 2110 "./parse.y" +{ yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; + break;} +case 432: +#line 2112 "./parse.y" { const char *ptr; while (CURRENT_OSB (ctxp)--) @@ -4472,276 +4505,276 @@ case 431: yyval.node = build_cast (yyvsp[-4].operator.location, yyvsp[-3].node, yyvsp[0].node); ; break;} -case 432: -#line 2101 "./parse.y" +case 433: +#line 2125 "./parse.y" {yyerror ("']' expected, invalid type expression");; break;} -case 433: -#line 2103 "./parse.y" +case 434: +#line 2127 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid type expression"); RECOVER; RECOVER; ; break;} -case 434: -#line 2109 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} case 435: -#line 2111 "./parse.y" +#line 2133 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 436: -#line 2113 "./parse.y" +#line 2135 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 438: -#line 2119 "./parse.y" +case 437: +#line 2137 "./parse.y" +{yyerror ("Missing term"); RECOVER;; + break;} +case 439: +#line 2143 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 439: -#line 2124 "./parse.y" +case 440: +#line 2148 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 440: -#line 2129 "./parse.y" +case 441: +#line 2153 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 441: -#line 2134 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} case 442: -#line 2136 "./parse.y" +#line 2158 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 443: -#line 2138 "./parse.y" +#line 2160 "./parse.y" +{yyerror ("Missing term"); RECOVER;; + break;} +case 444: +#line 2162 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 445: -#line 2144 "./parse.y" +case 446: +#line 2168 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 446: -#line 2149 "./parse.y" +case 447: +#line 2173 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 447: -#line 2154 "./parse.y" +case 448: +#line 2178 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 448: -#line 2156 "./parse.y" +case 449: +#line 2180 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 450: -#line 2162 "./parse.y" +case 451: +#line 2186 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 451: -#line 2167 "./parse.y" +case 452: +#line 2191 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 452: -#line 2172 "./parse.y" +case 453: +#line 2196 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 453: -#line 2177 "./parse.y" -{yyerror ("Missing term"); RECOVER;; - break;} case 454: -#line 2179 "./parse.y" +#line 2201 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 455: -#line 2181 "./parse.y" +#line 2203 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 457: -#line 2187 "./parse.y" -{ - yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, - yyvsp[-2].node, yyvsp[0].node); - ; +case 456: +#line 2205 "./parse.y" +{yyerror ("Missing term"); RECOVER;; break;} case 458: -#line 2192 "./parse.y" +#line 2211 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 459: -#line 2197 "./parse.y" +#line 2216 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 460: -#line 2202 "./parse.y" +#line 2221 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 461: -#line 2207 "./parse.y" -{ yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; +#line 2226 "./parse.y" +{ + yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, + yyvsp[-2].node, yyvsp[0].node); + ; break;} case 462: -#line 2209 "./parse.y" -{yyerror ("Missing term"); RECOVER;; +#line 2231 "./parse.y" +{ yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 463: -#line 2211 "./parse.y" +#line 2233 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 464: -#line 2213 "./parse.y" +#line 2235 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 465: -#line 2215 "./parse.y" +#line 2237 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 466: -#line 2217 "./parse.y" +#line 2239 "./parse.y" +{yyerror ("Missing term"); RECOVER;; + break;} +case 467: +#line 2241 "./parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} -case 468: -#line 2223 "./parse.y" +case 469: +#line 2247 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 469: -#line 2228 "./parse.y" +case 470: +#line 2252 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 470: -#line 2233 "./parse.y" +case 471: +#line 2257 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 471: -#line 2235 "./parse.y" +case 472: +#line 2259 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 473: -#line 2241 "./parse.y" +case 474: +#line 2265 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 474: -#line 2246 "./parse.y" +case 475: +#line 2270 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 476: -#line 2252 "./parse.y" +case 477: +#line 2276 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 477: -#line 2257 "./parse.y" +case 478: +#line 2281 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 479: -#line 2263 "./parse.y" +case 480: +#line 2287 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 480: -#line 2268 "./parse.y" +case 481: +#line 2292 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 482: -#line 2274 "./parse.y" +case 483: +#line 2298 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 483: -#line 2279 "./parse.y" +case 484: +#line 2303 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 485: -#line 2285 "./parse.y" +case 486: +#line 2309 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 486: -#line 2290 "./parse.y" +case 487: +#line 2314 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} -case 488: -#line 2296 "./parse.y" +case 489: +#line 2320 "./parse.y" { yyval.node = build (CONDITIONAL_EXPR, NULL_TREE, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-3].operator.location; ; break;} -case 489: -#line 2301 "./parse.y" +case 490: +#line 2325 "./parse.y" { YYERROR_NOW; yyerror ("Missing term"); DRECOVER (1); ; break;} -case 490: -#line 2307 "./parse.y" +case 491: +#line 2331 "./parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} -case 491: -#line 2309 "./parse.y" +case 492: +#line 2333 "./parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} -case 494: -#line 2319 "./parse.y" +case 495: +#line 2343 "./parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 495: -#line 2321 "./parse.y" +case 496: +#line 2345 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Missing term"); @@ -4750,7 +4783,7 @@ case 495: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 498 "/home/green/cygnus/njava/i0/share/bison.simple" +#line 498 "/usr/freeware/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -4946,7 +4979,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 2347 "./parse.y" +#line 2371 "./parse.y" @@ -5476,27 +5509,6 @@ build_unresolved_array_type (type_or_wfl) EXPR_WFL_COLNO (type_or_wfl)); } -/* Check modifiers. If one doesn't fit, retrieve it in its declaration line - and point it out. */ - -static void -check_modifiers (message, value, mask) - const char *message; - int value; - int mask; -{ - /* Should point out the one that don't fit. ASCII/unicode, - going backward. FIXME */ - if (value & ~mask) - { - int i, remainder = value & ~mask; - for (i = 0; i <= 10; i++) - if ((1 << i) & remainder) - parse_error_context (ctxp->modifier_ctx [i], message, - java_accstring_lookup (1 << i)); - } -} - static void parser_add_interface (class_decl, interface_decl, wfl) tree class_decl, interface_decl, wfl; @@ -5561,10 +5573,12 @@ check_class_interface_creation (is_interface, flags, raw_name, qualified_name, d IDENTIFIER_POINTER (raw_name)); } - check_modifiers ((is_interface ? - "Illegal modifier `%s' for interface declaration" : - "Illegal modifier `%s' for class declaration"), flags, - (is_interface ? INTERFACE_MODIFIERS : CLASS_MODIFIERS)); + if (is_interface) + check_modifiers ("Illegal modifier `%s' for interface declaration", + flags, INTERFACE_MODIFIERS); + else + check_modifiers ("Illegal modifier `%s' for class declaration", + flags, CLASS_MODIFIERS); return 0; } @@ -5833,13 +5847,11 @@ register_fields (flags, type, variable_list) if (CLASS_INTERFACE (TYPE_NAME (class_type))) { OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (PUBLIC_TK), - flags, ACC_PUBLIC, - "%s", "interface field(s)"); + flags, ACC_PUBLIC, "interface field(s)"); OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (STATIC_TK), - flags, ACC_STATIC, - "%s", "interface field(s)"); + flags, ACC_STATIC, "interface field(s)"); OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (FINAL_TK), - flags, ACC_FINAL, "%s", "interface field(s)"); + flags, ACC_FINAL, "interface field(s)"); check_modifiers ("Illegal interface member modifier `%s'", flags, INTERFACE_FIELD_MODIFIERS); flags |= (ACC_PUBLIC | ACC_STATIC | ACC_FINAL); @@ -6348,12 +6360,12 @@ check_abstract_method_header (meth) /* DECL_NAME might still be a WFL node */ tree name = GET_METHOD_NAME (meth); - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (ABSTRACT_TK), flags, - ACC_ABSTRACT, "abstract method `%s'", - IDENTIFIER_POINTER (name)); - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (PUBLIC_TK), flags, - ACC_PUBLIC, "abstract method `%s'", - IDENTIFIER_POINTER (name)); + OBSOLETE_MODIFIER_WARNING2 (MODIFIER_WFL (ABSTRACT_TK), flags, + ACC_ABSTRACT, "abstract method", + IDENTIFIER_POINTER (name)); + OBSOLETE_MODIFIER_WARNING2 (MODIFIER_WFL (PUBLIC_TK), flags, + ACC_PUBLIC, "abstract method", + IDENTIFIER_POINTER (name)); check_modifiers ("Illegal modifier `%s' for interface method", flags, INTERFACE_METHOD_MODIFIERS); diff --git a/gcc/java/parse.h b/gcc/java/parse.h index 62acc705db1..41cb0e94c64 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -138,13 +138,20 @@ extern tree stabilize_reference PARAMS ((tree)); /* Pedantic warning on obsolete modifiers. Note: when cl is NULL, flags was set artificially, such as for a interface method */ -#define OBSOLETE_MODIFIER_WARNING(cl, flags, __modifier, format, arg) \ +#define OBSOLETE_MODIFIER_WARNING(cl, flags, __modifier, arg) \ { \ if (flag_redundant && (cl) && ((flags) & (__modifier))) \ parse_warning_context (cl, \ - "Discouraged redundant use of `%s' modifier in declaration of " format, \ + "Discouraged redundant use of `%s' modifier in declaration of %s", \ java_accstring_lookup (__modifier), arg); \ } +#define OBSOLETE_MODIFIER_WARNING2(cl, flags, __modifier, arg1, arg2) \ + { \ + if (flag_redundant && (cl) && ((flags) & (__modifier))) \ + parse_warning_context (cl, \ + "Discouraged redundant use of `%s' modifier in declaration of %s `%s'", \ + java_accstring_lookup (__modifier), arg1, arg2);\ + } /* Quickly build a temporary pointer on hypothetical type NAME. */ #define BUILD_PTR_FROM_NAME(ptr, name) \ diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 906b808b72c..c3fc4a03d2c 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -70,7 +70,6 @@ definitions and other extensions. */ static char *java_accstring_lookup PARAMS ((int)); static void classitf_redefinition_error PARAMS ((const char *,tree, tree, tree)); static void variable_redefinition_error PARAMS ((tree, tree, tree, int)); -static void check_modifiers PARAMS ((const char *, int, int)); static tree create_class PARAMS ((int, tree, tree, tree)); static tree create_interface PARAMS ((int, tree, tree)); static tree find_field PARAMS ((tree, tree)); @@ -325,6 +324,22 @@ static tree current_static_block = NULL_TREE; /* The list of all packages we've seen so far */ static tree package_list = NULL_TREE; + +/* Check modifiers. If one doesn't fit, retrieve it in its declaration + line and point it out. */ +/* Should point out the one that don't fit. ASCII/unicode, going + backward. FIXME */ + +#define check_modifiers(__message, __value, __mask) do { \ + if ((__value) & ~(__mask)) \ + { \ + int i, remainder = (__value) & ~(__mask); \ + for (i = 0; i <= 10; i++) \ + if ((1 << i) & remainder) \ + parse_error_context (ctxp->modifier_ctx [i], (__message), \ + java_accstring_lookup (1 << i)); \ + } \ +} while (0) %} @@ -2882,27 +2897,6 @@ build_unresolved_array_type (type_or_wfl) EXPR_WFL_COLNO (type_or_wfl)); } -/* Check modifiers. If one doesn't fit, retrieve it in its declaration line - and point it out. */ - -static void -check_modifiers (message, value, mask) - const char *message; - int value; - int mask; -{ - /* Should point out the one that don't fit. ASCII/unicode, - going backward. FIXME */ - if (value & ~mask) - { - int i, remainder = value & ~mask; - for (i = 0; i <= 10; i++) - if ((1 << i) & remainder) - parse_error_context (ctxp->modifier_ctx [i], message, - java_accstring_lookup (1 << i)); - } -} - static void parser_add_interface (class_decl, interface_decl, wfl) tree class_decl, interface_decl, wfl; @@ -2967,10 +2961,12 @@ check_class_interface_creation (is_interface, flags, raw_name, qualified_name, d IDENTIFIER_POINTER (raw_name)); } - check_modifiers ((is_interface ? - "Illegal modifier `%s' for interface declaration" : - "Illegal modifier `%s' for class declaration"), flags, - (is_interface ? INTERFACE_MODIFIERS : CLASS_MODIFIERS)); + if (is_interface) + check_modifiers ("Illegal modifier `%s' for interface declaration", + flags, INTERFACE_MODIFIERS); + else + check_modifiers ("Illegal modifier `%s' for class declaration", + flags, CLASS_MODIFIERS); return 0; } @@ -3239,13 +3235,11 @@ register_fields (flags, type, variable_list) if (CLASS_INTERFACE (TYPE_NAME (class_type))) { OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (PUBLIC_TK), - flags, ACC_PUBLIC, - "%s", "interface field(s)"); + flags, ACC_PUBLIC, "interface field(s)"); OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (STATIC_TK), - flags, ACC_STATIC, - "%s", "interface field(s)"); + flags, ACC_STATIC, "interface field(s)"); OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (FINAL_TK), - flags, ACC_FINAL, "%s", "interface field(s)"); + flags, ACC_FINAL, "interface field(s)"); check_modifiers ("Illegal interface member modifier `%s'", flags, INTERFACE_FIELD_MODIFIERS); flags |= (ACC_PUBLIC | ACC_STATIC | ACC_FINAL); @@ -3754,12 +3748,12 @@ check_abstract_method_header (meth) /* DECL_NAME might still be a WFL node */ tree name = GET_METHOD_NAME (meth); - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (ABSTRACT_TK), flags, - ACC_ABSTRACT, "abstract method `%s'", - IDENTIFIER_POINTER (name)); - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (PUBLIC_TK), flags, - ACC_PUBLIC, "abstract method `%s'", - IDENTIFIER_POINTER (name)); + OBSOLETE_MODIFIER_WARNING2 (MODIFIER_WFL (ABSTRACT_TK), flags, + ACC_ABSTRACT, "abstract method", + IDENTIFIER_POINTER (name)); + OBSOLETE_MODIFIER_WARNING2 (MODIFIER_WFL (PUBLIC_TK), flags, + ACC_PUBLIC, "abstract method", + IDENTIFIER_POINTER (name)); check_modifiers ("Illegal modifier `%s' for interface method", flags, INTERFACE_METHOD_MODIFIERS);