diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index d80c6c9582a..eedcb006c1b 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -49,11 +49,13 @@ struct JCF; MODIFY_EXPR_FROM_INITIALIZATION_P (in MODIFY_EXPR) 3: IS_AN_IMPORT_ON_DEMAND_P (in IDENTIFIER_NODE) RESOLVE_PACKAGE_NAME_P (in EXPR_WITH_FILE_LOCATION) + SWITCH_HAS_DEFAULT (in SWITCH_EXPR) 4: IS_A_COMMAND_LINE_FILENAME_P (in IDENTIFIER_NODE) RESOLVE_TYPE_NAME_P (in EXPR_WITH_FILE_LOCATION) 5: HAS_BEEN_ALREADY_PARSED_P (in IDENTIFIER_NODE) IS_BREAK_STMT_P (in EXPR_WITH_FILE_LOCATION) IS_CRAFTED_STRING_BUFFER_P (in CALL_EXPR) + 6: CAN_COMPLETE_NORMALLY (in statement nodes). Usage of TYPE_LANG_FLAG_?: 0: CLASS_METHOD_CHECKED_P (in RECORD_TYPE) @@ -262,6 +264,7 @@ extern tree class_dtable_decl; extern struct CPool *outgoing_cpool; extern tree current_constant_pool_data_ref; +extern tree wfl_operator; struct lang_identifier { @@ -541,6 +544,8 @@ extern int alloc_name_constant PROTO ((int, tree)); extern void emit_register_classes PROTO (()); extern void lang_init_source PROTO ((int)); extern void write_classfile PROTO ((tree)); +extern char *print_int_node PROTO ((tree)); +extern void parse_error_context VPROTO ((tree cl, char *msg, ...)); extern tree build_primtype_type_ref PROTO ((char *)); /* Access flags etc for a method (a FUNCTION_DECL): */ @@ -713,6 +718,9 @@ extern tree *type_map; /* True if EXPR is RHS sub-tree of a compound assign expression */ #define COMPOUND_ASSIGN_P(EXPR) TREE_LANG_FLAG_1 (EXPR) +/* True if a SWITCH_EXPR has a DEFAULT_EXPR. */ +#define SWITCH_HAS_DEFAULT(NODE) TREE_LANG_FLAG_3 (NODE) + /* True if EXPR (a WFL in that case) was created after the reduction of PRIMARY . XXX */ #define PRIMARY_P(EXPR) TREE_LANG_FLAG_2 (EXPR) @@ -739,6 +747,9 @@ extern tree *type_map; /* True if EXPR (a CALL_EXPR in that case) is a crafted StringBuffer */ #define IS_CRAFTED_STRING_BUFFER_P(EXPR) TREE_LANG_FLAG_5 (EXPR) +/* True if NODE (a statement) can complete normally. */ +#define CAN_COMPLETE_NORMALLY(NODE) TREE_LANG_FLAG_6(NODE) + /* Add a FIELD_DECL to RECORD_TYPE RTYPE. The field has name NAME (a char*), and type FTYPE. Unless this is the first field, FIELD most hold the previous field. diff --git a/gcc/java/parse.c b/gcc/java/parse.c index 8646523eace..6cfae0b8987 100644 --- a/gcc/java/parse.c +++ b/gcc/java/parse.c @@ -175,7 +175,7 @@ static enum tree_code binop_lookup[19] = /* Fake WFL used to report error message. It is initialized once if needed and reused with it's location information is overriden. */ -static tree wfl_operator = NULL_TREE; +tree wfl_operator = NULL_TREE; /* The "$L" identifier we use to create labels. */ static tree label_id = NULL_TREE; @@ -286,8 +286,8 @@ static const short yyprhs[] = { 0, 665, 667, 670, 673, 676, 679, 682, 685, 688, 691, 695, 700, 705, 711, 716, 722, 729, 737, 744, 746, 748, 750, 752, 754, 756, 758, 764, 767, 771, 776, - 784, 792, 795, 800, 803, 807, 813, 816, 820, 824, - 829, 831, 834, 837, 839, 841, 844, 848, 851, 854, + 784, 792, 793, 797, 802, 805, 809, 815, 818, 822, + 826, 831, 833, 836, 839, 841, 844, 848, 851, 854, 858, 861, 866, 869, 872, 876, 881, 884, 886, 894, 902, 909, 913, 919, 924, 932, 939, 942, 945, 949, 952, 953, 955, 957, 960, 961, 963, 965, 969, 973, @@ -393,11 +393,11 @@ static const short yyrhs[] = { 123, 94, 185, 0, 48, 1, 0, 48, 93, 1, 0, 48, 93, 263, 1, 0, 48, 93, 263, 94, 186, 56, 185, 0, 48, 93, 263, 94, 186, 56, 186, - 0, 198, 199, 0, 68, 93, 263, 94, 0, 68, - 1, 0, 68, 93, 1, 0, 68, 93, 263, 94, - 1, 0, 95, 96, 0, 95, 203, 96, 0, 95, - 200, 96, 0, 95, 200, 203, 96, 0, 201, 0, - 200, 201, 0, 202, 181, 0, 203, 0, 204, 0, + 0, 0, 199, 198, 200, 0, 68, 93, 263, 94, + 0, 68, 1, 0, 68, 93, 1, 0, 68, 93, + 263, 94, 1, 0, 95, 96, 0, 95, 203, 96, + 0, 95, 201, 96, 0, 95, 201, 203, 96, 0, + 202, 0, 201, 202, 0, 203, 181, 0, 204, 0, 203, 204, 0, 62, 264, 88, 0, 47, 88, 0, 62, 1, 0, 62, 264, 1, 0, 47, 1, 0, 66, 93, 263, 94, 0, 205, 185, 0, 66, 1, @@ -493,56 +493,56 @@ static const short yyrhs[] = { 123, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 271, 277, 279, 280, 281, 282, 283, 287, 289, 292, - 294, 295, 298, 300, 303, 307, 311, 315, 321, 323, - 325, 327, 332, 334, 337, 341, 346, 351, 353, 354, - 355, 356, 357, 358, 359, 362, 367, 373, 375, 378, - 381, 383, 387, 389, 392, 419, 421, 425, 438, 440, - 444, 451, 452, 454, 464, 469, 484, 488, 491, 494, - 497, 499, 501, 503, 507, 509, 511, 513, 517, 519, - 521, 528, 534, 539, 543, 546, 550, 552, 555, 557, - 558, 559, 563, 565, 566, 568, 573, 576, 586, 589, - 591, 595, 598, 605, 611, 619, 621, 623, 625, 627, - 631, 633, 638, 645, 646, 650, 653, 655, 657, 659, - 661, 663, 665, 667, 674, 677, 679, 684, 686, 690, - 695, 700, 704, 709, 711, 713, 720, 722, 724, 728, - 731, 733, 737, 739, 740, 745, 750, 756, 764, 771, - 774, 777, 781, 784, 788, 797, 799, 801, 806, 813, - 821, 823, 827, 835, 846, 850, 853, 856, 859, 862, - 865, 868, 871, 873, 877, 883, 888, 890, 894, 897, - 901, 903, 906, 908, 909, 911, 915, 919, 925, 930, - 935, 939, 943, 949, 951, 952, 957, 960, 964, 969, - 977, 979, 982, 984, 986, 990, 994, 997, 1001, 1003, - 1004, 1005, 1006, 1007, 1017, 1019, 1020, 1021, 1022, 1025, - 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, - 1039, 1044, 1055, 1062, 1066, 1077, 1087, 1093, 1099, 1105, - 1107, 1113, 1115, 1121, 1123, 1125, 1127, 1129, 1133, 1135, - 1136, 1137, 1138, 1139, 1140, 1143, 1146, 1148, 1150, 1154, - 1159, 1164, 1172, 1178, 1180, 1182, 1186, 1189, 1191, 1193, - 1202, 1204, 1211, 1216, 1225, 1227, 1234, 1240, 1245, 1247, - 1249, 1253, 1261, 1264, 1266, 1268, 1272, 1277, 1286, 1291, - 1294, 1301, 1303, 1305, 1309, 1312, 1321, 1328, 1330, 1334, - 1347, 1349, 1355, 1361, 1365, 1367, 1371, 1374, 1376, 1380, - 1383, 1385, 1387, 1391, 1394, 1396, 1398, 1402, 1405, 1407, - 1409, 1413, 1419, 1421, 1425, 1432, 1434, 1436, 1438, 1442, - 1450, 1453, 1455, 1457, 1461, 1463, 1470, 1478, 1495, 1497, - 1499, 1503, 1509, 1514, 1516, 1519, 1521, 1523, 1525, 1526, - 1527, 1528, 1532, 1534, 1536, 1541, 1543, 1545, 1547, 1549, - 1553, 1556, 1561, 1563, 1568, 1569, 1570, 1571, 1572, 1574, - 1576, 1578, 1580, 1582, 1586, 1588, 1591, 1597, 1602, 1606, - 1609, 1611, 1613, 1617, 1619, 1621, 1623, 1627, 1630, 1634, - 1640, 1642, 1650, 1653, 1655, 1659, 1662, 1670, 1674, 1677, - 1679, 1690, 1701, 1706, 1715, 1717, 1721, 1724, 1726, 1731, - 1736, 1741, 1748, 1750, 1751, 1752, 1755, 1760, 1765, 1767, - 1768, 1770, 1772, 1773, 1775, 1779, 1782, 1786, 1789, 1793, - 1795, 1797, 1799, 1800, 1802, 1806, 1814, 1816, 1818, 1830, - 1832, 1838, 1840, 1842, 1846, 1848, 1853, 1858, 1863, 1865, - 1867, 1871, 1873, 1878, 1883, 1885, 1889, 1891, 1896, 1901, - 1906, 1908, 1910, 1914, 1916, 1921, 1926, 1931, 1936, 1938, - 1940, 1942, 1944, 1946, 1950, 1952, 1957, 1962, 1964, 1968, - 1970, 1975, 1979, 1981, 1986, 1990, 1992, 1997, 2001, 2003, - 2008, 2012, 2014, 2019, 2023, 2025, 2030, 2036, 2038, 2042, - 2044, 2047, 2050, 2058, 2060, 2061, 2064, 2066, 2069, 2073 + 266, 272, 274, 275, 276, 277, 278, 282, 284, 287, + 289, 290, 293, 295, 298, 302, 306, 310, 316, 318, + 320, 322, 327, 329, 332, 336, 341, 346, 348, 349, + 350, 351, 352, 353, 354, 357, 362, 368, 370, 373, + 376, 378, 382, 384, 387, 414, 416, 420, 433, 435, + 439, 446, 447, 449, 459, 464, 479, 483, 486, 489, + 492, 494, 496, 498, 502, 504, 506, 508, 512, 514, + 516, 523, 529, 534, 538, 541, 545, 547, 550, 552, + 553, 554, 558, 560, 561, 563, 568, 571, 581, 584, + 586, 590, 593, 600, 606, 614, 616, 618, 620, 622, + 626, 628, 633, 640, 641, 645, 648, 650, 652, 654, + 656, 658, 660, 662, 669, 672, 674, 679, 681, 685, + 690, 695, 699, 704, 706, 708, 715, 717, 719, 723, + 726, 728, 732, 734, 735, 740, 745, 751, 759, 766, + 769, 772, 776, 779, 783, 792, 794, 796, 801, 808, + 816, 818, 822, 830, 841, 845, 848, 851, 854, 857, + 860, 863, 866, 868, 872, 878, 883, 885, 889, 892, + 896, 898, 901, 903, 904, 906, 910, 914, 920, 925, + 930, 934, 938, 944, 946, 947, 952, 955, 959, 964, + 972, 974, 977, 979, 981, 985, 989, 992, 996, 998, + 999, 1000, 1001, 1002, 1012, 1014, 1015, 1016, 1017, 1020, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1034, 1039, 1050, 1057, 1061, 1072, 1082, 1088, 1094, 1100, + 1102, 1108, 1110, 1116, 1118, 1120, 1122, 1124, 1128, 1130, + 1131, 1132, 1133, 1134, 1135, 1138, 1141, 1143, 1145, 1149, + 1154, 1159, 1165, 1174, 1180, 1182, 1184, 1188, 1190, 1191, + 1192, 1195, 1197, 1200, 1204, 1206, 1209, 1216, 1222, 1224, + 1226, 1230, 1238, 1241, 1243, 1245, 1249, 1254, 1263, 1268, + 1271, 1278, 1280, 1282, 1286, 1289, 1298, 1305, 1307, 1311, + 1324, 1326, 1332, 1338, 1342, 1344, 1348, 1351, 1353, 1357, + 1360, 1362, 1364, 1368, 1371, 1373, 1375, 1379, 1382, 1384, + 1386, 1390, 1396, 1398, 1402, 1409, 1411, 1413, 1415, 1419, + 1427, 1430, 1432, 1434, 1438, 1440, 1447, 1455, 1473, 1475, + 1477, 1481, 1487, 1492, 1494, 1497, 1499, 1501, 1503, 1504, + 1505, 1506, 1510, 1512, 1514, 1519, 1521, 1523, 1525, 1527, + 1531, 1534, 1539, 1541, 1546, 1547, 1548, 1549, 1550, 1552, + 1554, 1556, 1558, 1560, 1564, 1566, 1569, 1575, 1580, 1584, + 1587, 1589, 1591, 1595, 1597, 1599, 1601, 1605, 1608, 1612, + 1618, 1620, 1628, 1631, 1633, 1637, 1640, 1648, 1652, 1655, + 1657, 1668, 1679, 1684, 1693, 1695, 1699, 1702, 1704, 1709, + 1714, 1719, 1726, 1728, 1729, 1730, 1733, 1738, 1743, 1745, + 1746, 1748, 1750, 1751, 1753, 1757, 1760, 1764, 1767, 1771, + 1773, 1775, 1777, 1778, 1780, 1784, 1792, 1794, 1796, 1808, + 1810, 1816, 1818, 1820, 1824, 1826, 1831, 1836, 1841, 1843, + 1845, 1849, 1851, 1856, 1861, 1863, 1867, 1869, 1874, 1879, + 1884, 1886, 1888, 1892, 1894, 1899, 1904, 1909, 1914, 1916, + 1918, 1920, 1922, 1924, 1928, 1930, 1935, 1940, 1942, 1946, + 1948, 1953, 1957, 1959, 1964, 1968, 1970, 1975, 1979, 1981, + 1986, 1990, 1992, 1997, 2001, 2003, 2008, 2014, 2016, 2020, + 2022, 2025, 2028, 2036, 2038, 2039, 2042, 2044, 2047, 2051 }; #endif @@ -583,22 +583,22 @@ static const char * const yytname[] = { "$","error","$undefined.","PLUS_TK", "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", -"switch_statement","switch_expression","switch_block","switch_block_statement_groups", -"switch_block_statement_group","group_of_labels","switch_labels","switch_label", -"while_expression","while_statement","while_statement_nsi","do_statement_begin", -"do_statement","for_statement","for_statement_nsi","for_header","for_begin", -"for_init","for_update","statement_expression_list","break_statement","continue_statement", -"return_statement","throw_statement","synchronized_statement","synchronized", -"try_statement","catches","catch_clause","catch_clause_parameter","finally", -"primary","primary_no_new_array","class_instance_creation_expression","something_dot_new", -"argument_list","array_creation_expression","dim_exprs","dim_expr","dims","field_access", -"method_invocation","array_access","postfix_expression","post_increment_expression", -"post_decrement_expression","unary_expression","pre_increment_expression","pre_decrement_expression", -"unary_expression_not_plus_minus","cast_expression","multiplicative_expression", -"additive_expression","shift_expression","relational_expression","equality_expression", -"and_expression","exclusive_or_expression","inclusive_or_expression","conditional_and_expression", -"conditional_or_expression","conditional_expression","assignment_expression", -"assignment","left_hand_side","assignment_operator","expression","constant_expression", NULL +"switch_statement","@9","switch_expression","switch_block","switch_block_statement_groups", +"switch_block_statement_group","switch_labels","switch_label","while_expression", +"while_statement","while_statement_nsi","do_statement_begin","do_statement", +"for_statement","for_statement_nsi","for_header","for_begin","for_init","for_update", +"statement_expression_list","break_statement","continue_statement","return_statement", +"throw_statement","synchronized_statement","synchronized","try_statement","catches", +"catch_clause","catch_clause_parameter","finally","primary","primary_no_new_array", +"class_instance_creation_expression","something_dot_new","argument_list","array_creation_expression", +"dim_exprs","dim_expr","dims","field_access","method_invocation","array_access", +"postfix_expression","post_increment_expression","post_decrement_expression", +"unary_expression","pre_increment_expression","pre_decrement_expression","unary_expression_not_plus_minus", +"cast_expression","multiplicative_expression","additive_expression","shift_expression", +"relational_expression","equality_expression","and_expression","exclusive_or_expression", +"inclusive_or_expression","conditional_and_expression","conditional_or_expression", +"conditional_expression","assignment_expression","assignment","left_hand_side", +"assignment_operator","expression","constant_expression", NULL }; #endif @@ -628,8 +628,8 @@ static const short yyr1[] = { 0, 188, 189, 190, 190, 191, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 195, - 196, 197, 198, 198, 198, 198, 199, 199, 199, 199, - 200, 200, 201, 202, 203, 203, 204, 204, 204, 204, + 196, 198, 197, 199, 199, 199, 199, 200, 200, 200, + 200, 201, 201, 202, 203, 203, 204, 204, 204, 204, 204, 205, 206, 206, 206, 206, 207, 208, 209, 210, 210, 210, 210, 210, 211, 211, 212, 212, 212, 213, 214, 214, 214, 214, 215, 215, 216, 216, 216, 217, @@ -681,8 +681,8 @@ static const short yyr2[] = { 0, 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, 2, 4, 2, 3, 5, 2, 3, 3, 4, - 1, 2, 2, 1, 1, 2, 3, 2, 2, 3, + 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, @@ -738,7 +738,7 @@ static const short yydefact[] = { 0, 141, 0, 55, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 221, 0, 8, 404, 0, 0, 195, 0, 210, 0, 191, 193, 0, 194, - 199, 211, 0, 200, 212, 0, 201, 202, 213, 0, + 199, 211, 0, 200, 212, 0, 201, 202, 213, 252, 0, 203, 0, 214, 204, 291, 0, 215, 216, 217, 219, 218, 0, 220, 245, 244, 0, 242, 243, 240, 241, 239, 125, 123, 0, 116, 0, 0, 414, 404, @@ -750,40 +750,40 @@ static const short yydefact[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, 498, 0, 143, 0, 142, 135, 104, 133, 137, 189, 140, 0, 228, 229, 227, 247, 0, 313, 0, - 302, 300, 0, 310, 308, 0, 274, 0, 254, 0, + 302, 300, 0, 310, 308, 0, 274, 0, 255, 0, 324, 0, 288, 0, 306, 304, 0, 0, 197, 0, 0, 224, 222, 0, 0, 190, 188, 192, 196, 320, - 404, 223, 226, 0, 252, 273, 0, 404, 0, 293, - 297, 290, 0, 0, 317, 0, 126, 124, 122, 121, - 132, 131, 350, 345, 0, 387, 377, 376, 359, 0, - 370, 378, 0, 371, 0, 360, 0, 0, 0, 0, - 0, 0, 347, 338, 182, 181, 0, 349, 344, 389, - 0, 367, 399, 0, 348, 343, 365, 346, 366, 386, - 401, 0, 364, 0, 439, 436, 440, 437, 441, 438, - 445, 443, 446, 444, 451, 448, 452, 449, 453, 450, - 461, 456, 463, 458, 460, 455, 462, 457, 464, 0, - 459, 468, 466, 469, 467, 472, 471, 475, 474, 478, - 477, 481, 480, 484, 483, 488, 0, 0, 493, 492, - 144, 134, 404, 0, 0, 145, 0, 248, 0, 314, - 312, 303, 301, 311, 309, 275, 0, 255, 0, 0, - 0, 321, 325, 0, 322, 289, 307, 305, 338, 0, - 198, 230, 0, 0, 0, 0, 257, 0, 261, 0, - 264, 265, 0, 294, 0, 282, 0, 0, 319, 0, - 395, 396, 0, 382, 383, 0, 379, 372, 0, 375, - 373, 374, 361, 352, 0, 433, 427, 430, 0, 0, - 428, 186, 183, 185, 390, 0, 400, 397, 0, 402, - 398, 355, 0, 487, 0, 0, 146, 0, 0, 147, - 249, 0, 276, 272, 0, 329, 0, 333, 332, 326, - 323, 327, 234, 0, 231, 232, 0, 271, 268, 269, - 500, 0, 259, 262, 264, 0, 258, 266, 0, 299, - 298, 284, 0, 296, 0, 318, 0, 393, 0, 381, - 380, 385, 384, 354, 362, 351, 432, 426, 434, 429, - 369, 368, 391, 0, 356, 357, 489, 486, 0, 148, - 0, 0, 0, 246, 0, 199, 0, 206, 207, 0, - 208, 209, 0, 256, 330, 0, 235, 0, 0, 233, - 270, 267, 260, 0, 0, 283, 0, 316, 315, 394, - 353, 392, 358, 0, 149, 0, 0, 0, 225, 277, - 0, 331, 328, 238, 236, 0, 0, 281, 0, 0, + 404, 223, 226, 0, 273, 0, 404, 0, 293, 297, + 290, 0, 0, 317, 0, 126, 124, 122, 121, 132, + 131, 350, 345, 0, 387, 377, 376, 359, 0, 370, + 378, 0, 371, 0, 360, 0, 0, 0, 0, 0, + 0, 347, 338, 182, 181, 0, 349, 344, 389, 0, + 367, 399, 0, 348, 343, 365, 346, 366, 386, 401, + 0, 364, 0, 439, 436, 440, 437, 441, 438, 445, + 443, 446, 444, 451, 448, 452, 449, 453, 450, 461, + 456, 463, 458, 460, 455, 462, 457, 464, 0, 459, + 468, 466, 469, 467, 472, 471, 475, 474, 478, 477, + 481, 480, 484, 483, 488, 0, 0, 493, 492, 144, + 134, 404, 0, 0, 145, 0, 248, 0, 314, 312, + 303, 301, 311, 309, 275, 0, 256, 0, 0, 0, + 321, 325, 0, 322, 289, 307, 305, 338, 0, 198, + 230, 0, 0, 0, 253, 0, 294, 0, 282, 0, + 0, 319, 0, 395, 396, 0, 382, 383, 0, 379, + 372, 0, 375, 373, 374, 361, 352, 0, 433, 427, + 430, 0, 0, 428, 186, 183, 185, 390, 0, 400, + 397, 0, 402, 398, 355, 0, 487, 0, 0, 146, + 0, 0, 147, 249, 0, 276, 272, 0, 329, 0, + 333, 332, 326, 323, 327, 234, 0, 231, 232, 0, + 0, 0, 258, 0, 262, 0, 265, 0, 299, 298, + 284, 0, 296, 0, 318, 0, 393, 0, 381, 380, + 385, 384, 354, 362, 351, 432, 426, 434, 429, 369, + 368, 391, 0, 356, 357, 489, 486, 0, 148, 0, + 0, 0, 246, 0, 199, 0, 206, 207, 0, 208, + 209, 0, 257, 330, 0, 235, 0, 0, 233, 271, + 268, 269, 500, 0, 260, 263, 0, 259, 0, 266, + 0, 0, 283, 0, 316, 315, 394, 353, 392, 358, + 0, 149, 0, 0, 0, 225, 277, 0, 331, 328, + 238, 236, 0, 270, 267, 261, 0, 281, 0, 0, 0, 150, 0, 250, 0, 0, 237, 279, 280, 152, 0, 0, 0, 0, 151, 0, 0, 0, 0, 286, 0, 251, 285, 0, 0, 0 @@ -792,1209 +792,1238 @@ static const short yydefact[] = { 0, static const short yydefgoto[] = { 774, 210, 278, 211, 85, 86, 68, 60, 87, 212, 22, 23, 24, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 132, 105, 47, 70, 104, 130, 162, 163, + 282, 283, 132, 105, 47, 70, 104, 130, 162, 163, 164, 91, 114, 115, 116, 213, 166, 258, 92, 111, 181, 182, 136, 185, 398, 168, 169, 170, 260, 171, - 172, 402, 554, 284, 18, 43, 72, 65, 107, 44, + 172, 402, 553, 284, 18, 43, 72, 65, 107, 44, 63, 94, 95, 96, 97, 214, 358, 285, 175, 437, - 286, 287, 288, 289, 290, 705, 291, 292, 293, 294, - 708, 295, 296, 297, 298, 709, 299, 300, 445, 588, - 589, 590, 591, 592, 301, 302, 711, 303, 304, 305, - 712, 306, 307, 452, 673, 674, 308, 309, 310, 311, - 312, 313, 314, 572, 573, 574, 575, 215, 216, 217, - 218, 491, 219, 471, 472, 473, 220, 221, 222, 223, + 719, 287, 288, 289, 290, 694, 291, 292, 293, 294, + 697, 295, 296, 297, 298, 698, 299, 444, 300, 585, + 654, 655, 656, 657, 301, 302, 700, 303, 304, 305, + 701, 306, 307, 451, 662, 663, 308, 309, 310, 311, + 312, 313, 314, 571, 572, 573, 574, 215, 216, 217, + 218, 490, 219, 470, 471, 472, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 393, 492, 662 + 244, 393, 491, 714 }; -static const short yypact[] = { 466, --32768,-32768, 432, -55, 484, 498,-32768,-32768, 425, 21, - 576,-32768,-32768,-32768,-32768, 594,-32768,-32768,-32768,-32768, - 13,-32768,-32768,-32768, 348,-32768, 361,-32768, 28, 143, --32768,-32768, 592, 618,-32768, -55, 505,-32768,-32768, 478, --32768, 510, -46, -30,-32768, 514, 23,-32768,-32768, -55, - 633, 360,-32768, 413,-32768, 95,-32768,-32768,-32768,-32768, - -11, 1145,-32768, 521, -46,-32768,-32768, 67, 525,-32768, --32768, -46, -30,-32768, 23,-32768,-32768,-32768, 542,-32768, --32768,-32768, 554, 4,-32768,-32768, 48, 184, 791,-32768, --32768, 212,-32768, 1241,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 107, 126,-32768, -46,-32768,-32768, 156, - 9,-32768, 235, 435,-32768, 790, 9, 34, 37, 182, --32768, 580, 582,-32768,-32768,-32768,-32768, 588, 861,-32768, --32768, 126, 434, 620, 56,-32768,-32768,-32768, 625, 1878, - 72, 328,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 9, --32768, 448, 9,-32768,-32768, 311, 342,-32768, 384, 791, --32768, 1029,-32768,-32768,-32768,-32768, 174,-32768, 373,-32768, --32768, 437,-32768,-32768, 1600,-32768,-32768,-32768, 628, 901, - -67,-32768,-32768,-32768, 395,-32768,-32768,-32768, 167,-32768, --32768, 2625, 2690, 2741, 2806, 489, 16, 572,-32768, 2857, - 2922, 2973, 5113,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 500, 949, 49,-32768, 509, 461,-32768, 641,-32768, 810, --32768, 823, 881,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 995, 926, 1016, 918, 932, 613, 629, 637, 659, 10, --32768,-32768,-32768, 887,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 839, 437,-32768,-32768,-32768, 341, 590, 586, --32768, 811, 305, 335, 3038,-32768, 141, 1929, 12, 352, - 357, 98, 430, 255, 609, 5410,-32768, -55, 701, 902, - 511, 873,-32768, 627,-32768, 1532,-32768,-32768, 649,-32768, --32768,-32768, 1673,-32768,-32768, 664,-32768,-32768,-32768, 674, - 1673,-32768, 1673,-32768,-32768, 5461, 704,-32768,-32768,-32768, --32768,-32768, 447,-32768, 693, 834, 881, 939, 944,-32768, --32768,-32768,-32768, 899, 644,-32768, 692, 647,-32768, 416, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 27, --32768, 655, 954, 631, 631, 452,-32768,-32768,-32768,-32768, --32768, 624, 1046, 22,-32768, 717,-32768, 603, 31, 5178, - 3089, 604,-32768, -8, 3154,-32768, 457,-32768,-32768, 3205, - 3270, 3321, 3386, 3437, 3502, 3553, 3618, 3669, 3734, 3785, - 3850, 760, 3901, 3966, 4017, 4082, 4133, 4198, 4249, 1994, --32768,-32768, 4314,-32768, 176,-32768,-32768,-32768, 718,-32768, --32768,-32768, 1532,-32768,-32768,-32768,-32768, 4365,-32768, 217, --32768,-32768, 219,-32768,-32768, 227,-32768, 4430,-32768, 4481, --32768, 751,-32768, 4895,-32768,-32768, 238, 59, 682, 2045, - 686,-32768,-32768, -55, 2110,-32768,-32768,-32768,-32768,-32768, - 1061,-32768,-32768, 602,-32768,-32768, 723, 1000, 901,-32768, --32768,-32768, 117, 2161,-32768, 4546,-32768, 899,-32768,-32768, --32768,-32768,-32768,-32768, 121, 738,-32768,-32768,-32768, 2226, - 631,-32768, 362, 631, 362,-32768, 2277, 4597, 204, 690, - 2342, 711,-32768, 973,-32768,-32768, 1813,-32768,-32768,-32768, - 308,-32768,-32768, 240,-32768,-32768,-32768,-32768,-32768, 744, --32768, 244,-32768, 5229,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 995,-32768, 995,-32768, 926,-32768, 926,-32768, 926, --32768, 1016,-32768, 1016,-32768, 1016,-32768, 1016,-32768, 4, --32768,-32768, 918,-32768, 918,-32768, 932,-32768, 613,-32768, - 629,-32768, 637,-32768, 659,-32768, 846, 761,-32768,-32768, --32768,-32768, 1043, 1532, 758,-32768, 1532,-32768, 271,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 316,-32768, 759, 460, - 257, 751,-32768, 373,-32768,-32768,-32768,-32768,-32768, 469, - 682,-32768, 868, 86, 205, 4662,-32768, 605,-32768, 1600, - 635,-32768, 778,-32768, 5029,-32768, 4920, 775, 792, 796, --32768,-32768, 5294,-32768,-32768, 247,-32768, 787, 261,-32768, - 787,-32768,-32768, 126, 88,-32768,-32768,-32768, 4713, 5071, --32768,-32768,-32768,-32768,-32768, 4778,-32768,-32768, 5345,-32768, --32768, 126, 474,-32768, 4829, 827,-32768, 1532, 2393,-32768, --32768, 1739,-32768,-32768, 294,-32768, 736,-32768,-32768,-32768, --32768,-32768,-32768, 2458,-32768,-32768, 894,-32768,-32768,-32768, --32768, 400,-32768,-32768, 713, 1441,-32768,-32768, 5410,-32768, --32768,-32768, 803, 812, 4962,-32768, 309,-32768, 515,-32768, --32768,-32768,-32768,-32768,-32768, 126,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 584,-32768, 126,-32768,-32768, 486,-32768, - 256, 102, 495,-32768, 863, 878, 1739,-32768,-32768, 1739, --32768,-32768, 843,-32768, 850, 858,-32768, 959, 135,-32768, --32768,-32768,-32768, 876, 1673,-32768, 888,-32768,-32768,-32768, --32768,-32768,-32768, 2509,-32768, 293, 4365, 1673,-32768,-32768, - 2574,-32768,-32768,-32768,-32768, 961, 907,-32768, 1673, 296, - 138,-32768, 322,-32768, 4920, 909,-32768,-32768,-32768,-32768, - 300, 1739, 915, 4962,-32768, 911, 1739, 917, 1739,-32768, - 1739,-32768,-32768, 1017, 1019,-32768 +static const short yypact[] = { 465, +-32768,-32768, 172, -63, 391, 416,-32768,-32768, 463, 205, + 546,-32768,-32768,-32768,-32768, 535,-32768,-32768,-32768,-32768, + 11,-32768,-32768,-32768, 295,-32768, 353,-32768, 15, 560, +-32768,-32768, 551, 630,-32768, -63, 443,-32768,-32768, 500, +-32768, 450, -51, -27,-32768, 453, 40,-32768,-32768, -63, + 654, 395,-32768, 358,-32768, 24,-32768,-32768,-32768,-32768, + 167, 921,-32768, 486, -51,-32768,-32768, 247, 512,-32768, +-32768, -51, -27,-32768, 40,-32768,-32768,-32768, 554,-32768, +-32768,-32768, 556, 150,-32768,-32768, 187, -44, 741,-32768, +-32768, 29,-32768, 1997,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 220, 262,-32768, -51,-32768,-32768, 313, + 5,-32768, 484, 679,-32768, 570, 5, 66, 88, 325, +-32768, 562, 566,-32768,-32768,-32768,-32768, 637, 1188,-32768, +-32768, 262, 707, 657, 210,-32768,-32768,-32768, 662, 2015, + 242, 446,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 5, +-32768, 732, 5,-32768,-32768, 366, 372,-32768, 411, 741, +-32768, 1592,-32768,-32768,-32768,-32768, 59,-32768, 448,-32768, +-32768, 466,-32768,-32768, 1807,-32768,-32768,-32768, 674, 775, + -22,-32768,-32768,-32768, 469,-32768,-32768,-32768, 579,-32768, +-32768, 2762, 2827, 2878, 2943, 473, 18, 685,-32768, 2994, + 3059, 3110, 5187,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 522, 908, 81,-32768, 534, 547,-32768, 688,-32768, 621, +-32768, 743, 813,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 885, 860, 949, 891, 857, 635, 671, 656, 703, 194, +-32768,-32768,-32768, 786,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 843, 466,-32768,-32768,-32768, 357, 625, 650, +-32768, 449, 162, 219, 3175,-32768, 177, 2066, 20, 294, + 364, 73, 390, 207, 665, 5484,-32768, -63, 378, 869, + 424, 954,-32768, 706,-32768, 1739,-32768,-32768, 651,-32768, +-32768,-32768, 1875,-32768,-32768, 684,-32768,-32768,-32768,-32768, + 1875,-32768, 1875,-32768,-32768, 5535, 730,-32768,-32768,-32768, +-32768,-32768, 396,-32768, 716, 751, 813, 849, 852,-32768, +-32768,-32768,-32768, 829, 691,-32768, 754, 698,-32768, 434, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 21, +-32768, 708, 876, 710, 710, 401,-32768,-32768,-32768,-32768, +-32768, 609, 956, 268,-32768, 719,-32768, 470, 32, 5252, + 3226, 584,-32768, -40, 3291,-32768, 413,-32768,-32768, 3342, + 3407, 3458, 3523, 3574, 3639, 3690, 3755, 3806, 3871, 3922, + 3987, 736, 4038, 4103, 4154, 4219, 4270, 4335, 4386, 2131, +-32768,-32768, 4451,-32768, 0,-32768,-32768,-32768, 744,-32768, +-32768,-32768, 1739,-32768,-32768,-32768,-32768, 4502,-32768, 36, +-32768,-32768, 48,-32768,-32768, 89,-32768, 4567,-32768, 4618, +-32768, 641,-32768, 1328,-32768,-32768, 94, 300, 737, 2182, + 557,-32768,-32768, -63, 2247,-32768,-32768,-32768,-32768,-32768, + 979,-32768,-32768, 755,-32768, 780, 893, 775,-32768,-32768, +-32768, 119, 2298,-32768, 4683,-32768, 829,-32768,-32768,-32768, +-32768,-32768,-32768, 130, 761,-32768,-32768,-32768, 2363, 710, +-32768, 139, 710, 139,-32768, 2414, 4734, 250, -42, 2479, + 628,-32768, 5560,-32768,-32768, 1126,-32768,-32768,-32768, 514, +-32768,-32768, 251,-32768,-32768,-32768,-32768,-32768, 773,-32768, + 253,-32768, 5303,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 885,-32768, 885,-32768, 860,-32768, 860,-32768, 860,-32768, + 949,-32768, 949,-32768, 949,-32768, 949,-32768, 150,-32768, +-32768, 891,-32768, 891,-32768, 857,-32768, 635,-32768, 671, +-32768, 656,-32768, 703,-32768, 867, 797,-32768,-32768,-32768, +-32768, 933, 1739, 789,-32768, 1739,-32768, 304,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 345,-32768, 806, 421, 202, + 641,-32768, 448,-32768,-32768,-32768,-32768,-32768, 430, 737, +-32768, 917, 116, 371,-32768, 831,-32768, 5075,-32768, 5008, + 823, 836, 839,-32768,-32768, 5368,-32768,-32768, 263,-32768, + 848, 266,-32768, 848,-32768,-32768, 262, 222,-32768,-32768, +-32768, 4799, 5122,-32768,-32768,-32768,-32768,-32768, 4850,-32768, +-32768, 5419,-32768,-32768, 262, 517,-32768, 4915, 738,-32768, + 1739, 2530,-32768,-32768, 1941,-32768,-32768, 231,-32768, 794, +-32768,-32768,-32768,-32768,-32768,-32768, 2595,-32768,-32768, 935, + 30, 4966,-32768, 509,-32768, 1489,-32768, 5484,-32768,-32768, +-32768, 859, 846, 5033,-32768, 237,-32768, 633,-32768,-32768, +-32768,-32768,-32768,-32768, 262,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 687,-32768, 262,-32768,-32768, 440,-32768, 97, + 227, 441,-32768, 907, 931, 1941,-32768,-32768, 1941,-32768, +-32768, 878,-32768, 914, 918,-32768, 1001, 236,-32768,-32768, +-32768,-32768,-32768, 342,-32768,-32768, 1562,-32768, 1671,-32768, + 926, 1875,-32768, 928,-32768,-32768,-32768,-32768,-32768,-32768, + 2646,-32768, 105, 4502, 1875,-32768,-32768, 2711,-32768,-32768, +-32768,-32768, 1010,-32768,-32768,-32768, 924,-32768, 1875, 136, + 245,-32768, 398,-32768, 5008, 929,-32768,-32768,-32768,-32768, + 160, 1941, 939, 5033,-32768, 971, 1941, 943, 1941,-32768, + 1941,-32768,-32768, 1038, 1041,-32768 }; static const short yypgoto[] = {-32768, --32768, -22, -52, 634, 109, -119, 375,-32768, -3, 583, --32768, 129,-32768, 1011, 746,-32768, 663,-32768,-32768, 814, - -53, -60,-32768,-32768, 977, 952,-32768, -125,-32768, 867, --32768, -99, -115, 895, -173, -191,-32768,-32768, 115, -39, - 783, -326, -98,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 879,-32768,-32768, 640, -58,-32768,-32768,-32768,-32768, 996, - 643,-32768, 960,-32768,-32768, 354,-32768, -111, 800, -383, - -387, -275,-32768, 766, 63, 97, -586,-32768, -423,-32768, --32768,-32768, -282,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 476,-32768, 496, -565, -350,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -320,-32768, -335, 768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 522,-32768, 523,-32768,-32768, -15, --32768, -340,-32768, 754, 386, -260, 975, 243, 1095, 266, - 423, 490, -147, 513, 569, -479,-32768, 683, 729, 585, - 685, 698, 714, 715, 719, 720,-32768, 477, 724, 668, --32768,-32768, 44,-32768 +-32768, 7, -53, 660, 87, -121, -35,-32768, -3, -75, +-32768, 134,-32768, 1033, 582,-32768, 9,-32768,-32768, 837, + 17, 132,-32768,-32768, 992, 976,-32768, -126,-32768, 892, +-32768, 153, -103, 920, -172, -199,-32768,-32768, 311, 689, + 808, -326, -69,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 902,-32768,-32768, 661, -54,-32768,-32768,-32768,-32768, 1014, + 623,-32768, 975,-32768,-32768, 120,-32768, -124, 814, -401, + -164, -276,-32768, 767, 296, 146, -434,-32768, -358,-32768, +-32768,-32768, -271,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 423, 429, -442, -343,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, -333,-32768, -640, 781,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 508,-32768, 519,-32768,-32768, -15, +-32768, -420,-32768, 746, 336, -248, 1100, 185, 1122, 333, + 379, 425, -130, 569, 613, -469,-32768, 565, 709, 563, + 567, 714, 717, 705, 718, 720,-32768, 477, 701, 690, +-32768,-32768, 42,-32768 }; -#define YYLAST 5570 +#define YYLAST 5669 static const short yytable[] = { 21, - 460, 90, 29, 93, 621, 324, 176, 152, 89, 84, - 438, 357, 341, 38, 184, 557, 341, 174, 143, 556, - -31, 1, 483, 451, 389, 668, 326, 463, 48, 165, - 20, 488, 327, 90, 144, 93, 84, 146, 61, 83, - 89, 84, 61, 117, 333, 335, 337, 339, 62, 363, - 174, 249, 348, 350, 251, 706, 186, 259, 88, 483, - 61, 134, 165, 499, 2, 61, 123, 101, 161, 64, - 173, 83, 246, 261, 69, 160, 84, 20, 346, 180, - 84, 4, 150, 153, 475, 88, 656, 5, 685, 50, - 88, 480, 482, 464, 584, 76, 390, 489, 421, 668, - 118, 161, 656, 173, -154, 135, 83, 84, 160, 84, - 179, 39, 342, 40, 283, 484, 342, 594, -66, 7, - 706, 282, 279, 706, 61, 88, 49, 84, 50, 88, - 61, 145, 25, 27, 147, 745, 615, 123, 745, 83, - 690, 411, -34, 1, 119, 344, 399, -93, -93, 352, - 59, 458, 579, 187, 67, 396, 88, 325, 88, 315, - 422, -66, 429, 633, 52, 54, 638, 137, 57, 247, - 637, 280, 59, 640, 257, 706, 88, 59, 57, 657, - 706, 686, 706, 245, 706, 626, 2, 626, 330, 330, - 330, 330, 157, 77, 61, 736, 330, 330, 353, 180, - 84, 626, 666, 4, 618, 658, 128, 110, 462, 5, - 608, 113, 124, 611, 601, -292, 595, 560, 707, 562, - 129, 602, 506, 508, 510, 283, 20, 564, 746, 84, - 179, 761, 282, 279, 626, 137, 59, 626, 577, 412, - 627, 7, 67, 167, 630, 354, 245, 680, 133, 88, - 110, 113, 449, 279, 700, 425, 655, 648, -96, 434, - -96, 682, 679, -96, -96, -96, -96, 189, -103, 551, - 315, 641, -103, 180, 84, 327, 167, 315, 88, 148, - 120, 438, 280, 707, 50, 315, 707, 315, 694, 441, - 315, 710, 659, 720, 714, 624, 744, 441, 702, 441, - 757, 605, 448, 281, 179, -320, 345, 189, 410, 728, - 125, 416, 671, 719, 451, 561, 643, 563, 581, 428, - 716, 713, 641, 88, 61, 565, -96, 133, 248, 530, - 617, -96, -96, -96, -96, 407, 578, 628, 707, 727, - 20, 631, 283, 707, 681, 707, 367, 707, 41, 282, - 279, 157, 417, 426, 735, 442, 710, 419, 683, 710, - 71, 45, 438, 446, 642, 447, 330, 330, 330, 330, + 459, 555, 29, 357, 174, 176, 324, 93, 84, 438, + 286, 38, 184, 614, 583, 48, 16, 31, 341, 152, + 341, 462, 20, 724, 76, 16, 16, 16, 99, 124, + 710, 498, 487, 103, 450, 84, 559, 174, 61, 93, + 84, 31, 61, 62, 259, 20, 16, 143, 561, 16, + 16, 612, 120, 159, 602, 608, 50, 134, 88, 257, + 61, 333, 335, 337, 339, 61, 144, 16, 83, 348, + 350, 326, 64, 421, 173, 84, 346, 327, 89, 84, + 249, 363, 626, 251, 159, 88, 159, 463, 146, 563, + 88, 69, 155, 550, 576, 123, 474, 648, 488, 327, + 83, 135, 261, 479, 481, 709, 84, 173, 84, 39, + 89, 40, -154, 49, 763, 50, 649, 711, 342, 587, + 342, 279, 77, 768, 61, 88, 84, 125, 59, 88, + 61, 17, 67, 399, 560, 83, 741, 25, 27, 179, + 17, 17, 17, 679, 344, 160, 562, 422, 352, 180, + 59, 630, 457, -103, 633, 59, 88, -103, 88, 315, + 757, 17, -320, 145, 17, 17, 123, 157, 83, 52, + 54, 280, 19, 57, 429, 668, 88, 411, 160, -93, + -93, 245, 17, 57, 396, 147, 325, 564, 330, 330, + 330, 330, 577, 90, 61, 732, 330, 330, 353, 84, + 695, 683, 641, 752, -31, 1, 461, 425, 389, 650, + 186, 691, 110, 720, 59, 619, 113, -292, 588, 407, + 67, 601, 674, 594, 604, 90, 708, 649, 84, 689, + 595, 703, 279, 203, 760, 602, 742, 725, 556, 505, + 507, 509, 246, 354, 245, 742, 118, 101, 2, 88, + 611, 620, 279, 623, -320, 110, 113, 20, 765, 179, + 161, 695, 20, 669, 695, 4, 671, 50, 482, 180, + 315, 5, 189, 84, 720, 412, 696, 315, 88, 438, + 390, 165, 280, 119, 345, 315, 617, 315, 434, 441, + 315, 699, 20, 161, 417, 41, 157, 441, -66, 441, + 482, 702, 447, 7, 634, 426, 410, 187, 281, 416, + 751, 408, 189, 705, 165, 675, 660, 428, 450, 128, + 733, 619, 448, 88, 61, -254, 619, 695, 529, 743, + 580, 157, 695, 179, 695, 619, 695, 696, 761, 247, + 696, -66, 744, 180, 619, 636, 610, 598, 621, 279, + 624, 367, 699, 45, 438, 699, 129, 42, 74, 316, + 670, 483, 702, 672, 419, 702, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 88, 330, - 330, 330, 330, 330, 330, 330, 713, 315, -253, 713, - 438, 752, 451, 751, 760, 413, 84, -320, 765, 553, - 721, 625, 427, 157, 494, -138, 189, 626, 502, 644, - 42, 710, -65, 74, 281, 762, 710, 316, 710, 763, - 710, 281, 42, 46, -30, 1, 434, 408, 768, 281, - 423, 281, 19, 548, 177, 157, 67, 252, 99, 397, - 317, 713, -155, 103, 418, 88, 713, 455, 713, 420, - 713, 559, 476, 189, -157, -65, 203, 503, 609, 649, - 646, 567, 652, 569, -65, -28, 1, 157, 2, 653, - 466, 688, 451, 494, 330, 46, 253, 2, 55, 3, - 330, 451, 56, 78, 26, 4, 653, 722, 684, 134, - 57, 5, 500, 283, 328, 407, 283, 598, 28, 600, - 282, 279, 155, 282, 279, 53, 695, -65, 360, 2, - 58, 432, 361, 606, 66, 80, 362, 20, 81, 20, - 3, 98, 424, 7, 494, 102, 4, 178, 316, 283, - 245, 281, 5, 138, 139, 316, 282, 279, 315, 456, - 6, 315, 109, 316, 477, 316, 250, 139, 316, 504, - 280, 317, 647, 280, 112, -25, -25, 365, 317, 57, - 731, 654, 189, 20, 7, 729, 317, 696, 317, 20, - 733, 317, 343, 626, 315, -29, 1, 283, 734, 315, - 149, 315, 151, 20, 282, 279, 280, 737, 154, 340, - 20, -32, 1, 180, 84, 20, -25, 318, 433, 20, - 359, -25, -25, -25, 495, 283, 20, -25, 730, 364, - 20, -25, 282, 279, 626, 330, 330, -33, 1, 2, - 183, 78, 315, 385, 179, 188, 315, 20, 323, 661, - 3, 330, -35, 1, 280, 2, 4, 35, 441, 20, - 386, 366, 5, 88, 457, 316, 3, 461, 585, 387, - 315, 585, 4, 80, 36, 465, 81, 20, 5, 315, - 37, 2, 280, 586, 319, 20, 586, 20, 317, 692, - 496, 31, 388, 20, 7, 497, 2, 732, 4, 498, - 401, 585, 281, 626, 5, 281, 495, 320, 400, 20, - 7, 315, 459, 4, 315, 31, 586, 587, 486, 5, - 663, -153, 487, 441, 704, 20, 441, 100, 318, 315, - 20, 159, 724, 20, 106, 318, 7, 478, 281, 435, - 479, 441, 315, 318, 359, 318, 20, 470, 318, 20, - 667, 7, 20, 315, 441, 2, 715, -339, -339, 315, - 20, 78, 159, 321, 159, 441, 315, 439, 315, 131, - 580, 315, 496, 315, 30, 315, 34, 497, 441, 585, - 529, 498, 443, 441, 57, 441, 281, 441, 444, 442, - 281, 20, 446, 80, 586, 319, 81, 20, 51, 2, - 753, 139, 319, 619, 756, 78, 609, 748, 593, -339, - 319, 121, 319, -339, 281, 319, 316, 118, 320, 316, - 754, 359, 454, 739, 620, 320, 740, 609, 723, 78, - 570, 759, 485, 320, 571, 320, 552, 80, 320, 317, - 81, 20, 317, 32, 704, 318, 610, 495, 612, 748, - 603, 754, 316, 759, 35, 281, 629, 316, 281, 316, - 78, 80, 322, 32, 81, 20, 634, 32, 635, 122, - 639, 36, 645, 281, 321, 317, 607, 37, 766, 607, - 317, 321, 317, 770, 32, 772, 281, 773, 655, 321, - 669, 321, 80, 675, 321, 81, 20, 281, -341, -341, - 316, 140, 2, 609, 316, 676, 141, 142, 78, 677, - 281, 699, 319, 496, 720, 281, 725, 281, 497, 281, - -495, -495, 498, 317, 156, 404, 405, 317, 316, 406, - 78, 595, 20, -496, -496, 320, 35, 316, 738, 79, - 80, 4, 78, 81, 20, 368, 369, 5, 373, 374, - -341, 317, 394, -205, -341, 378, 379, 380, 381, 37, - 317, 741, 80, 742, 35, 81, 20, 383, 384, 316, - 78, 743, 316, 322, 80, 157, 158, 81, 20, 744, - 322, 757, 522, 524, 526, 528, 769, 316, 322, 747, - 322, 321, 317, 322, 382, 317, 318, 391, 392, 318, - 316, 749, 80, -405, -405, 81, 20, -15, -406, -406, - 317, 316, -494, -494, 360, 141, 142, 316, 430, 370, - 371, 372, 431, 317, 316, 758, 316, 764, 767, 316, - 771, 316, 318, 316, 317, 531, 775, 318, 776, 318, - 317, 33, 78, 375, 376, 377, 108, 317, 256, 317, - 75, 196, 317, 190, 317, 395, 317, 197, 254, -494, - -494, 360, 555, 319, 198, 361, 319, 73, 199, 362, - 467, 468, 469, 127, 80, 512, 514, 81, 20, 403, - 318, 200, 201, 664, 318, 202, 320, 533, 535, 320, - 322, 450, 156, 453, 204, 205, 206, 207, 78, 319, - 208, 209, 537, 665, 319, -15, 319, 79, 318, 4, - -494, -494, 360, 650, 651, 5, 430, 318, 474, 539, - 362, 541, 320, 516, 518, 520, 543, 320, 545, 320, - 80, 698, 0, 81, 20, 0, 550, 0, 0, 0, - 0, 0, 321, 157, 255, 321, 0, 319, -15, 318, - 0, 319, 318, -494, -494, 360, -494, -494, 360, 430, - 0, 0, 481, 636, 0, 0, 362, 318, 0, 0, - 320, -494, -494, 360, 320, 319, 0, 361, 321, 0, - 318, 431, 0, 321, 319, 321, 331, 331, 331, 331, - 0, 318, 0, 0, 331, 331, 0, 318, 320, 0, - 0, 0, 0, 0, 318, 0, 318, 320, 2, 318, - 0, 318, 0, 318, 78, 0, 319, 0, 0, 319, - 0, 0, 0, 79, 0, 4, 321, 0, 0, 0, - 321, 5, 0, 0, 319, 0, 0, 0, 0, 320, - 0, 322, 320, 0, 322, 0, 80, 319, 0, 81, - 20, 0, 0, 0, 321, 0, 0, 320, 319, 0, - 82, 0, 0, 321, 319, 0, 0, 0, 0, 0, - 320, 319, 0, 319, 0, 0, 319, 322, 319, 0, - 319, 320, 322, 0, 322, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 320, 321, 320, 0, 321, 320, - 0, 320, 0, 320, 2, 0, 332, 332, 332, 332, - 78, 0, 0, 321, 332, 332, 0, 0, 0, 79, - 0, 4, 0, 0, 0, 322, 321, 5, 0, 322, - 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, - 0, 0, 80, 321, 0, 81, 20, 0, 0, 0, - 321, 0, 321, 322, 0, 321, 126, 321, 0, 321, - 0, 0, 322, 0, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 0, 331, 331, 331, - 331, 331, 331, 331, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 322, 0, 0, 322, 0, 0, + 330, 330, 330, 330, 330, 330, 418, 315, 631, -155, + 423, 26, 450, 578, 84, 71, 454, 635, 634, 552, + 413, 475, 493, 696, -65, 133, 501, 427, 696, -65, + 696, 189, 696, 502, 67, 46, 28, 651, 699, 281, + 46, 639, 148, 699, 432, 699, 281, 699, 702, 745, + 646, 547, 652, 702, 281, 702, 281, 702, 637, 167, + 646, 407, 438, 53, 88, 642, 248, -65, 645, 558, + 58, 157, -65, 66, 434, 397, 420, 42, 189, 566, + -138, 568, -30, 1, -28, 1, 653, 252, -25, -25, + 316, 493, 167, 330, 118, 465, 20, 316, 359, 330, + 673, 677, 424, 450, 137, 316, 98, 316, 455, -157, + 316, 762, 450, 476, 591, 57, 593, 499, 684, 279, + 55, 20, 279, 253, 56, 503, 2, 317, 2, -25, + 599, 433, 102, 640, -25, -25, -25, 3, 134, 3, + -25, 493, 647, 4, -25, 4, 360, 245, 20, 5, + 361, 5, 731, 734, 362, 20, 281, 315, 20, 6, + 315, 726, 157, 404, 405, -29, 1, 406, 728, 280, + -32, 1, 280, 318, 109, 651, 112, 494, 730, -34, + 1, 7, 149, 7, 57, 485, 151, 189, 328, 486, + 652, 20, 315, 340, 315, -96, 133, 279, 35, 137, + -96, -96, -96, -96, 494, 20, 84, 316, 442, 2, + 30, 603, 34, 605, 2, 36, 445, 20, 446, 319, + 3, 37, 279, 2, 715, 3, 4, 618, 330, 330, + 685, 4, 5, 619, 51, 315, 619, 5, 317, 315, + 4, 579, 359, 495, 330, 317, 5, 280, 496, -33, + 1, 441, 497, 317, 364, 317, 88, 154, 317, 20, + 315, 20, 20, 365, 7, 385, 179, 20, 315, 7, + 495, 20, 280, -35, 1, 496, 180, 183, 7, 497, + 681, 140, 188, 279, 318, 279, 141, 142, 387, 20, + -96, 318, -96, 2, 323, -96, -96, -96, -96, 318, + 315, 318, 386, 315, 318, 343, 281, 100, 366, 281, + 4, 456, 441, 713, 106, 441, 5, 2, 460, 721, + 569, 315, 477, 315, 570, 478, 315, 177, 464, 359, + 319, -495, -495, 280, 4, 280, 388, 319, 441, 315, + 5, 613, 20, 400, 602, 319, 727, 319, 7, 131, + 319, 441, 619, 315, 78, 317, 528, 316, 494, 315, + 316, 121, 20, 320, 401, 441, 315, 20, 315, 439, + 2, 315, 7, 315, 458, 315, 78, -153, 441, 20, + -339, -339, 57, 441, 281, 441, 80, 441, 281, 81, + 20, 117, 316, 20, 316, 753, 20, 138, 139, 756, + 729, 318, 443, 20, 35, 78, 619, 321, 80, 281, + 78, 81, 20, 20, 704, -341, -341, 2, 435, 122, + 178, 36, 688, 78, 495, 600, 469, 37, 600, 496, + 150, 153, -339, 497, 484, 316, -339, 80, 35, 316, + 81, 20, 80, 20, 78, 81, 20, 319, 453, 281, + 250, 139, 281, -496, -496, 80, 139, 2, 81, 20, + 316, 736, 551, 78, 737, 586, 32, -341, 316, 584, + 281, -341, 281, 596, 320, 281, 80, 368, 369, 81, + 20, 320, 373, 374, 322, 622, 32, 627, 281, 320, + 32, 320, 383, 384, 320, 80, 391, 392, 81, 20, + 316, 632, 281, 316, 628, 317, 2, 32, 317, 370, + 371, 372, 78, -405, -405, 281, -406, -406, 321, 638, + 281, 316, 281, 316, 281, 321, 316, 766, 378, 379, + 380, 381, 770, 321, 772, 321, 773, 648, 321, 316, + 317, 664, 317, 658, 80, 141, 142, 81, 20, 665, + 693, 318, 666, 316, 318, 709, 394, 511, 513, 316, + 521, 523, 525, 527, 602, 588, 316, 382, 316, 532, + 534, 316, 722, 316, -15, 316, 375, 376, 377, -494, + -494, 360, 735, 317, 2, 430, 318, 317, 318, 431, + 78, 320, 466, 467, 468, 322, 738, 319, -15, 79, + 319, 4, 322, -494, -494, 360, -205, 5, 317, 430, + 322, 442, 322, 362, 445, 322, 317, 35, -494, -494, + 360, 741, 80, 78, 361, 81, 20, 739, 362, 318, + 757, 740, 319, 318, 319, 321, 82, 748, -15, 747, + 37, 749, 758, -494, -494, 360, 769, 764, 317, 430, + 754, 317, 767, 629, 318, 80, 771, 775, 81, 20, + 776, 530, 318, 33, 759, 75, -494, -494, 360, 317, + 108, 317, 480, 256, 317, 319, 362, 693, 190, 319, + 395, 254, 748, 554, 754, 73, 759, 317, 127, -494, + -494, 360, 449, 403, 318, 361, 716, 318, 643, 431, + 319, 317, 717, 515, 517, 519, 452, 317, 319, 644, + 473, 540, 322, 549, 317, 318, 317, 318, 536, 317, + 318, 317, 538, 317, 687, 542, 0, 0, 544, 0, + 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, + 319, 320, 0, 319, 320, 0, 615, 318, 192, 193, + 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, + 318, 319, 318, 319, 0, 318, 319, 318, 0, 318, + 0, 0, 0, 0, 0, 0, 320, 0, 320, 319, + 0, 0, 0, 0, 0, 321, 0, 0, 321, 0, + 194, 195, 0, 319, 0, 78, 0, 0, 0, 319, + 0, 0, 0, 0, 196, 0, 319, 0, 319, 0, + 197, 319, 0, 319, 0, 319, 0, 198, 0, 320, + 321, 199, 321, 320, 0, 0, 0, 80, 0, 0, + 81, 20, 0, 0, 200, 201, 0, 0, 202, 0, + 203, 616, 0, 0, 320, 0, 0, 204, 205, 206, + 207, 156, 320, 208, 209, 0, 0, 78, 0, 0, + 0, 0, 322, 321, 0, 322, 79, 321, 4, 0, + 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 320, 0, 0, 320, 321, 80, + 0, 0, 81, 20, 0, 0, 321, 322, 0, 322, + 0, 0, 157, 158, 0, 320, 0, 320, 0, 0, + 320, 331, 331, 331, 331, 0, 0, 0, 0, 331, + 331, 0, 0, 320, 0, 0, 0, 0, 321, 0, + 0, 321, 0, 332, 332, 332, 332, 320, 0, 0, + 322, 332, 332, 320, 322, 0, 0, 0, 575, 321, + 320, 321, 320, 0, 321, 320, 0, 320, 0, 320, + 0, 0, 0, 0, 0, 322, 0, 321, 0, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 0, 321, 0, 0, 0, 0, 0, 321, 0, 0, + 0, -287, -287, -287, 321, 0, 321, -287, 0, 321, + 0, 321, 0, 321, 0, 322, -287, 0, 322, 0, + 0, 0, -287, 0, 0, 0, 0, 0, 0, -287, + 0, 0, 0, -287, 0, 0, 322, 0, 322, -287, + 0, 322, -287, -287, 0, 0, 0, 0, 0, 0, + -287, 0, 0, 0, 322, 0, -287, 0, 0, -287, + -287, -287, -287, 0, 0, -287, -287, 0, 322, 0, + 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, + 0, 322, 0, 322, 0, 0, 322, 0, 322, 0, + 322, 0, 0, 0, 0, 0, 0, 0, 0, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 0, 331, 331, 331, 331, 331, 331, 331, 262, + 0, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 0, 332, 332, 332, 332, 332, 332, + 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, - 0, 0, 322, 0, 0, 0, 0, 0, 0, 322, - 0, 322, 0, 0, 322, 0, 322, 0, 322, 0, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 331, 0, 0, 0, 0, 0, 331, 0, - 0, 0, 0, 0, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 0, 332, 332, 332, - 332, 332, 332, 332, 263, 194, 195, -263, 264, 265, - 78, 266, 0, 0, 267, 0, 0, 0, 268, 196, - 0, 0, -263, 0, 0, 269, 270, 5, 271, 0, - 272, 273, 198, 274, 0, 0, 275, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, - 0, 0, 262, 276, 0, 157, -263, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 332, 0, 0, 263, 194, 195, 332, 264, - 265, 78, 266, 0, 0, 267, 0, 0, 0, 268, - 196, 0, 0, 331, 331, 0, 269, 270, 5, 271, - 262, 272, 273, 198, 274, 0, 0, 275, 0, 331, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 0, 0, 0, 0, 276, 0, 157, 436, 0, 0, - 277, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 0, 0, 263, 194, 195, 0, 264, 265, 78, - 266, 0, 0, 267, 0, 0, 0, 268, 196, 0, - 0, 0, 0, 0, 269, 270, 5, 271, 0, 272, - 273, 198, 274, 262, 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, 0, 0, 332, 332, 0, 440, 194, 195, 0, - 264, 265, 78, 266, 0, 0, 267, 0, 0, 332, - 268, 196, 0, 0, 0, 0, 0, 269, 270, 262, - 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, 440, 194, 195, 0, 703, 265, 78, 266, + 0, 0, 263, 194, 195, 651, 264, 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, 622, 275, 192, 193, 0, 0, 0, + 652, 0, 0, 269, 270, 5, 271, 0, 272, 273, + 198, 274, 262, 0, 275, 0, 0, 0, 0, 0, + 80, 0, 0, 81, 20, 0, 331, 0, 0, 0, + 0, 276, 331, 157, 718, 0, 0, 277, 0, 0, + 204, 205, 206, 207, 0, 0, 208, 209, 332, 0, + 0, 0, 0, 0, 332, 263, 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, 156, 0, 275, 0, 0, + 0, 78, 0, 80, 0, 0, 81, 20, 0, 0, + 79, 0, 4, 0, 276, 0, 157, 746, 5, 0, + 277, 0, 0, 204, 205, 206, 207, 0, 0, 208, + 209, 262, 0, 80, 0, 0, 81, 20, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 255, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 331, 331, 0, 263, 194, 195, -264, 264, 265, + 78, 266, 0, 0, 267, 0, 0, 331, 268, 196, + 0, 0, -264, 332, 332, 269, 270, 5, 271, 262, + 272, 273, 198, 274, 0, 0, 275, 0, 0, 332, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, + 0, 0, 0, 276, 0, 157, -264, 0, 0, 277, + 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, + 0, 0, 263, 194, 195, 0, 264, 265, 78, 266, + 0, 0, 267, 0, 0, 0, 268, 196, 0, 0, + 0, 0, 0, 269, 270, 5, 271, 262, 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, + 0, 276, 0, 157, 436, 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, 0, 0, 0, 0, 0, 0, - 0, 196, 0, 0, 0, 0, 0, 197, 191, 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, 203, 623, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 414, - 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, 546, 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, 415, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 493, 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, 547, 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, - 582, 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, 148, 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, 583, 0, 194, 195, 0, 0, 0, - 78, 204, 205, 206, 207, 0, 0, 208, 209, 196, - 0, 0, 0, 0, 0, 197, 604, 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, 597, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 613, 0, 192, - 193, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 0, 0, 0, 198, 0, 0, + 263, 194, 195, 0, 264, 265, 78, 266, 0, 0, + 267, 0, 0, 0, 268, 196, 0, 0, 0, 0, + 0, 269, 270, 5, 271, 262, 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, 440, 194, + 195, 0, 264, 265, 78, 266, 0, 0, 267, 0, + 0, 0, 268, 196, 0, 0, 0, 0, 0, 269, + 270, 262, 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, 440, 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, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, + 0, 0, 0, 276, 0, 157, 0, 0, 0, 277, + 2, 0, 204, 205, 206, 207, 78, 0, 208, 209, + 0, 0, 0, 0, 0, 79, 0, 4, 0, 194, + 195, 0, 0, 5, 78, 0, 414, 0, 192, 193, + 0, 0, 0, 196, 0, 0, 0, 0, 80, 197, + 0, 81, 20, 0, 0, 0, 198, 0, 0, 0, + 199, 0, 126, 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, 545, 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, 194, 195, 605, 0, 0, 78, 204, 205, 206, - 207, 0, 0, 208, 209, 196, 0, 0, 0, 0, - 0, 197, 493, 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, - 614, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 207, 0, 0, 208, 209, 194, 195, 0, 0, - 0, 78, 0, 582, 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, 605, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 717, 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, 701, 0, 0, 0, - 0, 0, 0, 0, 204, 205, 206, 207, 0, 0, - 208, 209, 194, 195, 0, 0, 0, 78, 0, 717, - 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, 718, 0, 194, 195, 0, 0, 0, 78, 204, - 205, 206, 207, 0, 0, 208, 209, 196, 0, 0, - 0, 0, 0, 197, 596, 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, 750, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, 194, 195, - 0, 0, 0, 78, 0, 329, 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, 755, 0, 78, 204, 205, 206, 207, 0, - 0, 208, 209, 196, 0, 0, 0, 0, 0, 197, - 334, 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, 336, 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, 338, 0, 192, 193, + 0, 0, 0, 0, 415, 0, 0, 204, 205, 206, + 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, + 78, 0, 492, 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, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209, - 194, 195, 0, 0, 0, 78, 0, 347, 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, 349, 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, 351, 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, 80, 0, 0, 81, 20, 0, 546, 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, 581, 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, 194, 195, 0, - 0, 0, 78, 204, 205, 206, 207, 0, 0, 208, - 209, 196, 0, 0, 0, 0, 0, 197, 409, 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, 493, - 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, 501, 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, 505, 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, - 507, 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, 509, 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, 511, 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, 513, 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, 515, 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, 517, 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, 519, 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, 521, - 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, 523, 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, 525, 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, - 527, 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, 532, 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, 534, 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, 536, 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, 538, 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, 540, 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, 542, 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, 544, - 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, 549, 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, 558, 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, 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, 568, 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, 599, 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, 616, 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, 660, 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, 687, 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, 691, 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, 697, - 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, 0, 576, 0, 0, 0, 0, - 198, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 672, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 205, 206, 207, 0, 0, 208, 209, -287, -287, - -287, 0, 0, 0, -287, 0, 0, 0, 0, 0, - 0, 0, 0, -287, 0, 0, 0, 0, 0, -287, - 0, 0, 726, 0, 194, 195, -287, 0, 0, 78, - -287, 0, 0, 0, 0, 0, -287, 0, 196, -287, - -287, 0, 0, 0, 197, 0, 0, -287, 0, 0, - 0, 198, 0, -287, 0, 199, -287, -287, -287, -287, - 0, 80, -287, -287, 81, 20, 194, 195, 0, 0, - 0, 78, 276, -295, 0, 0, 0, 0, 0, 0, - 196, 204, 205, 206, 207, 0, 197, 208, 209, 670, - 0, 0, 0, 198, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 80, 0, 0, 81, 20, 0, 0, - 0, 0, 0, 0, 276, -295, 0, 0, 0, 0, + 200, 201, 0, 0, 202, 0, 0, 0, 0, 148, 0, 0, 0, 204, 205, 206, 207, 0, 0, 208, - 209, 689, 0, 194, 195, 0, 0, 0, 78, 0, - 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, + 209, 194, 195, 0, 0, 0, 78, 0, 589, 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, + 582, 0, 194, 195, 0, 0, 0, 78, 204, 205, + 206, 207, 0, 0, 208, 209, 196, 0, 0, 0, + 0, 0, 197, 597, 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, 590, 0, 0, 204, + 205, 206, 207, 0, 0, 208, 209, 194, 195, 0, + 0, 0, 78, 0, 606, 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, + 598, 0, 0, 78, 204, 205, 206, 207, 0, 0, + 208, 209, 196, 0, 0, 0, 0, 0, 197, 492, + 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, 607, 0, 0, + 0, 0, 0, 0, 0, 204, 205, 206, 207, 0, + 0, 208, 209, 194, 195, 0, 0, 0, 78, 0, + 581, 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, 192, 193, 0, 0, 0, - 78, 276, 0, 0, 0, 0, 0, 0, 0, 196, - 204, 205, 206, 207, 0, 197, 208, 209, 0, 0, + 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, + 0, 202, 0, 0, 194, 195, 598, 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, 690, 0, 0, 0, 0, 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, 707, 0, + 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, + 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, + 197, 589, 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, 750, + 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, + 207, 0, 0, 208, 209, 194, 195, 0, 0, 0, + 78, 0, 329, 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, 194, 195, 200, - 201, 0, 78, 202, 0, 0, 0, 0, 0, 0, - 0, 196, 204, 205, 206, 207, 0, 197, 208, 209, + 0, 0, 80, 0, 0, 81, 20, 0, 0, 200, + 201, 0, 0, 202, 0, 0, 194, 195, 0, 755, + 0, 78, 204, 205, 206, 207, 0, 0, 208, 209, + 196, 0, 0, 0, 0, 0, 197, 334, 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, 336, 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, 338, 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, 347, 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, 349, + 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, + 351, 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, 409, 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, 492, 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, 500, 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, 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, + 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, 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, 526, 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, 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, + 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, 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, 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, 0, + 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, + 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, + 197, 548, 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, 557, 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, 565, 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, 567, 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, 592, 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, 609, 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, 676, + 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, + 680, 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, 686, 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, 712, 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, 661, 0, + 194, 195, 0, 0, 0, 78, 204, 205, 206, 207, + 0, 0, 208, 209, 196, 0, 0, 0, 0, 0, + 197, 0, 0, 723, 0, 0, 0, 198, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 80, 0, 0, + 81, 20, 194, 195, 200, 201, 0, 78, 202, 0, + 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, -295, 0, 0, 198, 0, 0, 0, 199, 204, + 205, 206, 207, 0, 80, 208, 209, 81, 20, 194, + 195, 0, 678, 0, 78, 276, -295, 0, 0, 0, + 0, 0, 0, 196, 204, 205, 206, 207, 0, 197, + 208, 209, 0, 0, 0, 0, 198, 0, 0, 0, + 199, 0, 0, 0, 0, 0, 80, 0, 0, 81, + 20, 0, 0, 0, 0, 0, 0, 276, 0, 0, + 0, 78, 0, 0, 0, 0, 204, 205, 206, 207, + 196, 0, 208, 209, 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, 0, 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, 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, 203, 355, 0, 0, 0, 356, 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, 489, 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, 0, 203, 355, 0, - 0, 0, 356, 0, 204, 205, 206, 207, 0, 0, + 0, 200, 201, 0, 0, 202, 625, 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, 490, 0, 194, 195, 0, 0, 0, 78, 204, + 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, 0, 80, 0, 0, 81, 20, 0, 0, 200, 201, 0, - 0, 202, 632, 0, 0, 0, 0, 0, 0, 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, 192, 193, 0, + 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, 678, 0, 194, + 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, 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, 693, 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, 0, 199, 0, 0, 0, - 0, 0, 80, 0, 0, 81, 20, 0, 0, 0, - 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 205, 206, 207, 0, 0, 208, 209 + 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 }; static const short yycheck[] = { 3, - 327, 62, 6, 62, 484, 179, 132, 123, 62, 62, - 286, 203, 1, 1, 134, 403, 1, 129, 117, 403, - 0, 1, 1, 306, 15, 591, 94, 1, 1, 129, - 86, 1, 100, 94, 1, 94, 89, 1, 42, 62, - 94, 94, 46, 83, 192, 193, 194, 195, 95, 1, - 162, 150, 200, 201, 153, 642, 1, 169, 62, 1, - 64, 53, 162, 72, 44, 69, 89, 1, 129, 100, - 129, 94, 1, 172, 52, 129, 129, 86, 198, 133, - 133, 61, 122, 123, 345, 89, 1, 67, 1, 101, - 94, 352, 353, 67, 435, 1, 87, 67, 1, 665, - 97, 162, 1, 162, 93, 97, 129, 160, 162, 162, - 133, 99, 101, 101, 175, 94, 101, 1, 52, 99, - 707, 175, 175, 710, 128, 129, 99, 180, 101, 133, - 134, 98, 4, 5, 98, 1, 477, 160, 1, 162, - 620, 1, 0, 1, 97, 198, 258, 99, 100, 202, - 42, 325, 94, 98, 46, 254, 160, 180, 162, 175, - 272, 95, 278, 504, 36, 37, 554, 1, 40, 98, - 554, 175, 64, 557, 1, 762, 180, 69, 50, 94, - 767, 94, 769, 140, 771, 100, 44, 100, 192, 193, - 194, 195, 95, 99, 198, 94, 200, 201, 202, 253, - 253, 100, 590, 61, 1, 1, 100, 79, 328, 67, - 471, 83, 1, 474, 94, 99, 100, 1, 642, 1, - 95, 101, 370, 371, 372, 286, 86, 1, 94, 282, - 253, 94, 286, 286, 100, 1, 128, 100, 1, 99, - 1, 99, 134, 129, 1, 202, 203, 1, 93, 253, - 122, 123, 306, 306, 638, 1, 1, 1, 92, 282, - 94, 1, 603, 97, 98, 99, 100, 139, 95, 94, - 286, 1, 99, 327, 327, 100, 162, 293, 282, 98, - 97, 557, 286, 707, 101, 301, 710, 303, 629, 293, - 306, 642, 88, 1, 1, 487, 1, 301, 639, 303, - 1, 98, 306, 175, 327, 1, 198, 179, 265, 1, - 99, 268, 595, 654, 597, 99, 1, 99, 434, 276, - 647, 642, 1, 327, 328, 99, 92, 93, 1, 382, - 478, 97, 98, 99, 100, 1, 99, 98, 762, 675, - 86, 98, 403, 767, 98, 769, 218, 771, 1, 403, - 403, 95, 1, 99, 99, 293, 707, 1, 98, 710, - 1, 1, 638, 301, 94, 303, 370, 371, 372, 373, + 327, 403, 6, 203, 129, 132, 179, 62, 62, 286, + 175, 1, 134, 483, 435, 1, 0, 9, 1, 123, + 1, 1, 86, 664, 1, 9, 10, 11, 64, 1, + 1, 72, 1, 69, 306, 89, 1, 162, 42, 94, + 94, 33, 46, 95, 169, 86, 30, 117, 1, 33, + 34, 94, 97, 129, 97, 476, 101, 53, 62, 1, + 64, 192, 193, 194, 195, 69, 1, 51, 62, 200, + 201, 94, 100, 1, 129, 129, 198, 100, 62, 133, + 150, 1, 503, 153, 160, 89, 162, 67, 1, 1, + 94, 52, 128, 94, 1, 89, 345, 1, 67, 100, + 94, 97, 172, 352, 353, 1, 160, 162, 162, 99, + 94, 101, 93, 99, 755, 101, 1, 88, 101, 1, + 101, 175, 99, 764, 128, 129, 180, 99, 42, 133, + 134, 0, 46, 258, 99, 129, 1, 4, 5, 133, + 9, 10, 11, 613, 198, 129, 99, 272, 202, 133, + 64, 553, 325, 95, 556, 69, 160, 99, 162, 175, + 1, 30, 1, 98, 33, 34, 160, 95, 162, 36, + 37, 175, 1, 40, 278, 596, 180, 1, 162, 99, + 100, 140, 51, 50, 254, 98, 180, 99, 192, 193, + 194, 195, 99, 62, 198, 99, 200, 201, 202, 253, + 635, 622, 1, 99, 0, 1, 328, 1, 15, 94, + 1, 632, 79, 656, 128, 100, 83, 99, 100, 1, + 134, 470, 1, 94, 473, 94, 647, 1, 282, 631, + 101, 1, 286, 95, 99, 97, 1, 1, 403, 370, + 371, 372, 1, 202, 203, 1, 97, 1, 44, 253, + 1, 1, 306, 1, 93, 122, 123, 86, 99, 253, + 129, 696, 86, 1, 699, 61, 1, 101, 1, 253, + 286, 67, 139, 327, 717, 99, 635, 293, 282, 556, + 87, 129, 286, 97, 198, 301, 486, 303, 282, 293, + 306, 635, 86, 162, 1, 1, 95, 301, 52, 303, + 1, 635, 306, 99, 1, 99, 265, 98, 175, 268, + 731, 93, 179, 640, 162, 94, 588, 276, 590, 100, + 94, 100, 306, 327, 328, 95, 100, 762, 382, 94, + 434, 95, 767, 327, 769, 100, 771, 696, 94, 98, + 699, 95, 1, 327, 100, 1, 477, 98, 98, 403, + 98, 218, 696, 1, 631, 699, 95, 63, 1, 175, + 98, 94, 696, 98, 1, 699, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 707, 403, 95, 710, - 666, 99, 675, 734, 99, 267, 449, 93, 99, 403, - 1, 94, 274, 95, 361, 95, 278, 100, 365, 94, - 63, 762, 52, 1, 286, 94, 767, 175, 769, 755, - 771, 293, 63, 63, 0, 1, 449, 93, 764, 301, - 1, 303, 1, 390, 1, 95, 328, 96, 64, 99, - 175, 762, 95, 69, 93, 449, 767, 1, 769, 93, - 771, 408, 1, 325, 95, 95, 95, 1, 97, 571, - 1, 418, 574, 420, 52, 0, 1, 95, 44, 1, - 342, 619, 755, 430, 478, 63, 93, 44, 1, 55, - 484, 764, 5, 50, 1, 61, 1, 88, 614, 53, - 362, 67, 364, 554, 100, 1, 557, 454, 1, 456, - 554, 554, 128, 557, 557, 1, 632, 95, 93, 44, - 1, 1, 97, 470, 1, 82, 101, 86, 85, 86, - 55, 1, 93, 99, 481, 1, 61, 94, 286, 590, - 487, 403, 67, 99, 100, 293, 590, 590, 554, 93, - 75, 557, 1, 301, 93, 303, 99, 100, 306, 93, - 554, 286, 93, 557, 1, 45, 46, 97, 293, 431, - 686, 93, 434, 86, 99, 677, 301, 94, 303, 86, - 696, 306, 1, 100, 590, 0, 1, 638, 93, 595, - 1, 597, 1, 86, 638, 638, 590, 93, 1, 101, - 86, 0, 1, 647, 647, 86, 86, 175, 88, 86, - 101, 91, 92, 93, 1, 666, 86, 97, 94, 101, - 86, 101, 666, 666, 100, 619, 620, 0, 1, 44, - 1, 50, 638, 11, 647, 1, 642, 86, 1, 586, - 55, 635, 0, 1, 638, 44, 61, 44, 642, 86, - 12, 1, 67, 647, 1, 403, 55, 1, 47, 13, - 666, 47, 61, 82, 61, 1, 85, 86, 67, 675, - 67, 44, 666, 62, 175, 86, 62, 86, 403, 626, - 67, 9, 14, 86, 99, 72, 44, 94, 61, 76, - 95, 47, 554, 100, 67, 557, 1, 175, 99, 86, - 99, 707, 1, 61, 710, 33, 62, 96, 96, 67, - 96, 93, 100, 707, 642, 86, 710, 65, 286, 725, - 86, 129, 669, 86, 72, 293, 99, 94, 590, 93, - 97, 725, 738, 301, 101, 303, 86, 97, 306, 86, - 96, 99, 86, 749, 738, 44, 1, 45, 46, 755, - 86, 50, 160, 175, 162, 749, 762, 99, 764, 107, - 65, 767, 67, 769, 9, 771, 11, 72, 762, 47, - 1, 76, 99, 767, 636, 769, 638, 771, 95, 707, - 642, 86, 710, 82, 62, 286, 85, 86, 33, 44, - 737, 100, 293, 94, 741, 50, 97, 725, 66, 97, - 301, 1, 303, 101, 666, 306, 554, 97, 286, 557, - 738, 101, 99, 707, 94, 293, 710, 97, 96, 50, - 60, 749, 96, 301, 64, 303, 99, 82, 306, 554, - 85, 86, 557, 10, 762, 403, 473, 1, 475, 767, - 93, 769, 590, 771, 44, 707, 93, 595, 710, 597, - 50, 82, 175, 30, 85, 86, 1, 34, 88, 59, - 93, 61, 94, 725, 286, 590, 471, 67, 762, 474, - 595, 293, 597, 767, 51, 769, 738, 771, 1, 301, - 93, 303, 82, 99, 306, 85, 86, 749, 45, 46, - 638, 92, 44, 97, 642, 94, 97, 98, 50, 94, - 762, 65, 403, 67, 1, 767, 94, 769, 72, 771, - 91, 92, 76, 638, 44, 95, 96, 642, 666, 99, - 50, 100, 86, 91, 92, 403, 44, 675, 56, 59, - 82, 61, 50, 85, 86, 45, 46, 67, 3, 4, - 97, 666, 94, 56, 101, 18, 19, 20, 21, 67, - 675, 99, 82, 94, 44, 85, 86, 16, 17, 707, - 50, 94, 710, 286, 82, 95, 96, 85, 86, 1, - 293, 1, 378, 379, 380, 381, 56, 725, 301, 94, - 303, 403, 707, 306, 57, 710, 554, 91, 92, 557, - 738, 94, 82, 45, 46, 85, 86, 86, 45, 46, - 725, 749, 91, 92, 93, 97, 98, 755, 97, 5, - 6, 7, 101, 738, 762, 99, 764, 99, 94, 767, - 94, 769, 590, 771, 749, 382, 0, 595, 0, 597, - 755, 11, 50, 8, 9, 10, 75, 762, 162, 764, - 54, 59, 767, 139, 769, 253, 771, 65, 160, 91, - 92, 93, 403, 554, 72, 97, 557, 52, 76, 101, - 97, 98, 99, 94, 82, 373, 374, 85, 86, 260, - 638, 89, 90, 588, 642, 93, 554, 383, 384, 557, - 403, 306, 44, 306, 102, 103, 104, 105, 50, 590, - 108, 109, 385, 588, 595, 86, 597, 59, 666, 61, - 91, 92, 93, 572, 572, 67, 97, 675, 345, 386, - 101, 387, 590, 375, 376, 377, 388, 595, 389, 597, - 82, 635, -1, 85, 86, -1, 393, -1, -1, -1, - -1, -1, 554, 95, 96, 557, -1, 638, 86, 707, - -1, 642, 710, 91, 92, 93, 91, 92, 93, 97, - -1, -1, 97, 101, -1, -1, 101, 725, -1, -1, - 638, 91, 92, 93, 642, 666, -1, 97, 590, -1, - 738, 101, -1, 595, 675, 597, 192, 193, 194, 195, - -1, 749, -1, -1, 200, 201, -1, 755, 666, -1, - -1, -1, -1, -1, 762, -1, 764, 675, 44, 767, - -1, 769, -1, 771, 50, -1, 707, -1, -1, 710, - -1, -1, -1, 59, -1, 61, 638, -1, -1, -1, - 642, 67, -1, -1, 725, -1, -1, -1, -1, 707, - -1, 554, 710, -1, 557, -1, 82, 738, -1, 85, - 86, -1, -1, -1, 666, -1, -1, 725, 749, -1, - 96, -1, -1, 675, 755, -1, -1, -1, -1, -1, - 738, 762, -1, 764, -1, -1, 767, 590, 769, -1, - 771, 749, 595, -1, 597, -1, -1, 755, -1, -1, - -1, -1, -1, -1, 762, 707, 764, -1, 710, 767, - -1, 769, -1, 771, 44, -1, 192, 193, 194, 195, - 50, -1, -1, 725, 200, 201, -1, -1, -1, 59, - -1, 61, -1, -1, -1, 638, 738, 67, -1, 642, - -1, -1, -1, -1, -1, -1, -1, 749, -1, -1, - -1, -1, 82, 755, -1, 85, 86, -1, -1, -1, - 762, -1, 764, 666, -1, 767, 96, 769, -1, 771, - -1, -1, 675, -1, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, - 386, 387, 388, 389, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 707, -1, -1, 710, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 725, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 738, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 749, -1, -1, -1, - -1, -1, 755, -1, -1, -1, -1, -1, -1, 762, - -1, 764, -1, -1, 767, -1, 769, -1, 771, -1, - -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 478, -1, -1, -1, -1, -1, 484, -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, 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, -1, -1, -1, -1, -1, -1, - -1, -1, 478, -1, -1, 44, 45, 46, 484, 48, - 49, 50, 51, -1, -1, 54, -1, -1, -1, 58, - 59, -1, -1, 619, 620, -1, 65, 66, 67, 68, - 1, 70, 71, 72, 73, -1, -1, 76, -1, 635, - -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, -1, -1, 619, 620, -1, 44, 45, 46, -1, - 48, 49, 50, 51, -1, -1, 54, -1, -1, 635, - 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, -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, -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, + 384, 385, 386, 387, 388, 389, 93, 403, 553, 95, + 1, 1, 664, 94, 448, 1, 1, 94, 1, 403, + 267, 1, 361, 762, 52, 93, 365, 274, 767, 52, + 769, 278, 771, 1, 328, 63, 1, 47, 762, 286, + 63, 1, 98, 767, 1, 769, 293, 771, 762, 88, + 1, 390, 62, 767, 301, 769, 303, 771, 94, 129, + 1, 1, 719, 1, 448, 570, 1, 95, 573, 408, + 1, 95, 95, 1, 448, 99, 93, 63, 325, 418, + 95, 420, 0, 1, 0, 1, 96, 96, 45, 46, + 286, 430, 162, 477, 97, 342, 86, 293, 101, 483, + 607, 612, 93, 755, 1, 301, 1, 303, 93, 95, + 306, 94, 764, 93, 453, 362, 455, 364, 625, 553, + 1, 86, 556, 93, 5, 93, 44, 175, 44, 86, + 469, 88, 1, 93, 91, 92, 93, 55, 53, 55, + 97, 480, 93, 61, 101, 61, 93, 486, 86, 67, + 97, 67, 93, 93, 101, 86, 403, 553, 86, 75, + 556, 666, 95, 95, 96, 0, 1, 99, 675, 553, + 0, 1, 556, 175, 1, 47, 1, 1, 685, 0, + 1, 99, 1, 99, 431, 96, 1, 434, 100, 100, + 62, 86, 588, 101, 590, 92, 93, 631, 44, 1, + 97, 98, 99, 100, 1, 86, 640, 403, 293, 44, + 9, 472, 11, 474, 44, 61, 301, 86, 303, 175, + 55, 67, 656, 44, 96, 55, 61, 94, 612, 613, + 94, 61, 67, 100, 33, 631, 100, 67, 286, 635, + 61, 65, 101, 67, 628, 293, 67, 631, 72, 0, + 1, 635, 76, 301, 101, 303, 640, 1, 306, 86, + 656, 86, 86, 97, 99, 11, 640, 86, 664, 99, + 67, 86, 656, 0, 1, 72, 640, 1, 99, 76, + 619, 92, 1, 717, 286, 719, 97, 98, 13, 86, + 92, 293, 94, 44, 1, 97, 98, 99, 100, 301, + 696, 303, 12, 699, 306, 1, 553, 65, 1, 556, + 61, 1, 696, 652, 72, 699, 67, 44, 1, 658, + 60, 717, 94, 719, 64, 97, 722, 1, 1, 101, + 286, 91, 92, 717, 61, 719, 14, 293, 722, 735, + 67, 94, 86, 99, 97, 301, 94, 303, 99, 107, + 306, 735, 100, 749, 50, 403, 1, 553, 1, 755, + 556, 1, 86, 175, 95, 749, 762, 86, 764, 99, + 44, 767, 99, 769, 1, 771, 50, 93, 762, 86, + 45, 46, 629, 767, 631, 769, 82, 771, 635, 85, + 86, 83, 588, 86, 590, 734, 86, 99, 100, 738, + 94, 403, 99, 86, 44, 50, 100, 175, 82, 656, + 50, 85, 86, 86, 1, 45, 46, 44, 93, 59, + 94, 61, 65, 50, 67, 470, 97, 67, 473, 72, + 122, 123, 97, 76, 96, 631, 101, 82, 44, 635, + 85, 86, 82, 86, 50, 85, 86, 403, 99, 696, + 99, 100, 699, 91, 92, 82, 100, 44, 85, 86, + 656, 696, 99, 50, 699, 66, 10, 97, 664, 95, + 717, 101, 719, 93, 286, 722, 82, 45, 46, 85, + 86, 293, 3, 4, 175, 93, 30, 1, 735, 301, + 34, 303, 16, 17, 306, 82, 91, 92, 85, 86, + 696, 93, 749, 699, 88, 553, 44, 51, 556, 5, + 6, 7, 50, 45, 46, 762, 45, 46, 286, 94, + 767, 717, 769, 719, 771, 293, 722, 762, 18, 19, + 20, 21, 767, 301, 769, 303, 771, 1, 306, 735, + 588, 99, 590, 93, 82, 97, 98, 85, 86, 94, + 635, 553, 94, 749, 556, 1, 94, 373, 374, 755, + 378, 379, 380, 381, 97, 100, 762, 57, 764, 383, + 384, 767, 94, 769, 86, 771, 8, 9, 10, 91, + 92, 93, 56, 631, 44, 97, 588, 635, 590, 101, + 50, 403, 97, 98, 99, 286, 99, 553, 86, 59, + 556, 61, 293, 91, 92, 93, 56, 67, 656, 97, + 301, 696, 303, 101, 699, 306, 664, 44, 91, 92, + 93, 1, 82, 50, 97, 85, 86, 94, 101, 631, + 1, 94, 588, 635, 590, 403, 96, 722, 86, 94, + 67, 94, 99, 91, 92, 93, 56, 99, 696, 97, + 735, 699, 94, 101, 656, 82, 94, 0, 85, 86, + 0, 382, 664, 11, 749, 54, 91, 92, 93, 717, + 75, 719, 97, 162, 722, 631, 101, 762, 139, 635, + 253, 160, 767, 403, 769, 52, 771, 735, 94, 91, + 92, 93, 306, 260, 696, 97, 654, 699, 571, 101, + 656, 749, 654, 375, 376, 377, 306, 755, 664, 571, + 345, 387, 403, 393, 762, 717, 764, 719, 385, 767, + 722, 769, 386, 771, 628, 388, -1, -1, 389, -1, + -1, -1, -1, 735, -1, -1, -1, -1, -1, -1, + 696, 553, -1, 699, 556, -1, 1, 749, 3, 4, + -1, -1, -1, 755, -1, -1, -1, -1, -1, -1, + 762, 717, 764, 719, -1, 767, 722, 769, -1, 771, + -1, -1, -1, -1, -1, -1, 588, -1, 590, 735, + -1, -1, -1, -1, -1, 553, -1, -1, 556, -1, + 45, 46, -1, 749, -1, 50, -1, -1, -1, 755, + -1, -1, -1, -1, 59, -1, 762, -1, 764, -1, + 65, 767, -1, 769, -1, 771, -1, 72, -1, 631, + 588, 76, 590, 635, -1, -1, -1, 82, -1, -1, + 85, 86, -1, -1, 89, 90, -1, -1, 93, -1, + 95, 96, -1, -1, 656, -1, -1, 102, 103, 104, + 105, 44, 664, 108, 109, -1, -1, 50, -1, -1, + -1, -1, 553, 631, -1, 556, 59, 635, 61, -1, + -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 696, -1, -1, 699, 656, 82, + -1, -1, 85, 86, -1, -1, 664, 588, -1, 590, + -1, -1, 95, 96, -1, 717, -1, 719, -1, -1, + 722, 192, 193, 194, 195, -1, -1, -1, -1, 200, + 201, -1, -1, 735, -1, -1, -1, -1, 696, -1, + -1, 699, -1, 192, 193, 194, 195, 749, -1, -1, + 631, 200, 201, 755, 635, -1, -1, -1, 1, 717, + 762, 719, 764, -1, 722, 767, -1, 769, -1, 771, + -1, -1, -1, -1, -1, 656, -1, 735, -1, -1, + -1, -1, -1, 664, -1, -1, -1, -1, -1, -1, + -1, 749, -1, -1, -1, -1, -1, 755, -1, -1, + -1, 44, 45, 46, 762, -1, 764, 50, -1, 767, + -1, 769, -1, 771, -1, 696, 59, -1, 699, -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, 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, -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, 88, 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, 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, -1, 99, + -1, -1, -1, 76, -1, -1, 717, -1, 719, 82, + -1, 722, 85, 86, -1, -1, -1, -1, -1, -1, + 93, -1, -1, -1, 735, -1, 99, -1, -1, 102, + 103, 104, 105, -1, -1, 108, 109, -1, 749, -1, + -1, -1, -1, -1, 755, -1, -1, -1, -1, -1, + -1, 762, -1, 764, -1, -1, 767, -1, 769, -1, + 771, -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, 1, + -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 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, 85, 86, -1, 477, -1, -1, -1, + -1, 93, 483, 95, 96, -1, -1, 99, -1, -1, + 102, 103, 104, 105, -1, -1, 108, 109, 477, -1, + -1, -1, -1, -1, 483, 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, -1, + -1, -1, -1, -1, -1, -1, 95, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 612, 613, -1, 44, 45, 46, 47, 48, 49, + 50, 51, -1, -1, 54, -1, -1, 628, 58, 59, + -1, -1, 62, 612, 613, 65, 66, 67, 68, 1, + 70, 71, 72, 73, -1, -1, 76, -1, -1, 628, + -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, - 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, 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, + 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, + 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, + -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, + 44, -1, 102, 103, 104, 105, 50, -1, 108, 109, + -1, -1, -1, -1, -1, 59, -1, 61, -1, 45, + 46, -1, -1, 67, 50, -1, 1, -1, 3, 4, + -1, -1, -1, 59, -1, -1, -1, -1, 82, 65, + -1, 85, 86, -1, -1, -1, 72, -1, -1, -1, + 76, -1, 96, -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, -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, -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, 88, 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, 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, -1, -1, -1, -1, -1, -1, 102, 103, + 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, -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, -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, -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, 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, -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, 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, 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, + 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, 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, 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, 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, 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, + 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, 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, 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, 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, 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, + 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, 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, 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, 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, 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, + 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, + -1, 76, -1, -1, -1, -1, -1, 82, -1, -1, + 85, 86, 45, 46, 89, 90, -1, 50, 93, -1, + -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, -1, -1, 72, -1, -1, -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, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, -1, -1, -1, -1, -1, -1, 93, -1, -1, + -1, 50, -1, -1, -1, -1, 102, 103, 104, 105, + 59, -1, 108, 109, -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, + -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, 100, -1, 102, 103, 104, 105, -1, -1, 108, 109, 45, 46, -1, -1, - -1, 50, -1, 1, -1, 3, 4, -1, -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, + 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, + 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, 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, 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, - -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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, -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, 44, 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, 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, -1, - -1, 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, -1, -1, 72, -1, -1, -1, 76, -1, -1, - -1, -1, -1, 82, -1, -1, 85, 86, -1, -1, - -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, 102, 103, 104, 105, -1, -1, 108, - 109, 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, -1, -1, -1, -1, - 72, -1, -1, -1, 76, -1, -1, -1, -1, -1, - 82, -1, -1, 85, 86, 3, 4, -1, -1, -1, - 50, 93, -1, -1, -1, -1, -1, -1, -1, 59, - 102, 103, 104, 105, -1, 65, 108, 109, -1, -1, - -1, -1, 72, -1, -1, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, 45, 46, 89, - 90, -1, 50, 93, -1, -1, -1, -1, -1, -1, - -1, 59, 102, 103, 104, 105, -1, 65, 108, 109, - 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, 100, -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, @@ -2007,29 +2036,20 @@ static const short yycheck[] = { 3, 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, -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, 94, -1, 45, + -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, 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, -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, -1, 76, -1, -1, -1, - -1, -1, 82, -1, -1, 85, 86, -1, -1, -1, - -1, -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, 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 }; #define YYPURE 1 @@ -2532,66 +2552,66 @@ yyreduce: switch (yyn) { case 1: -#line 273 "./parse.y" +#line 268 "./parse.y" {; break;} case 18: -#line 317 "./parse.y" +#line 312 "./parse.y" { yyval.node = build_java_array_type (yyvsp[-2].node, -1); CLASS_LOADED_P (yyval.node) = 1; ; break;} case 19: -#line 322 "./parse.y" +#line 317 "./parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 20: -#line 324 "./parse.y" +#line 319 "./parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 21: -#line 326 "./parse.y" +#line 321 "./parse.y" {RULE ("']' expected"); RECOVER;; break;} case 22: -#line 328 "./parse.y" +#line 323 "./parse.y" {RULE ("']' expected"); RECOVER;; break;} case 26: -#line 343 "./parse.y" +#line 338 "./parse.y" { yyval.node = make_qualified_name (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 28: -#line 352 "./parse.y" +#line 347 "./parse.y" {yyval.node = NULL;; break;} case 36: -#line 364 "./parse.y" +#line 359 "./parse.y" { yyval.node = NULL; ; break;} case 37: -#line 368 "./parse.y" +#line 363 "./parse.y" { yyval.node = NULL; ; break;} case 40: -#line 380 "./parse.y" +#line 375 "./parse.y" { ctxp->package = EXPR_WFL_NODE (yyvsp[-1].node); ; break;} case 41: -#line 382 "./parse.y" +#line 377 "./parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 42: -#line 384 "./parse.y" +#line 379 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 45: -#line 394 "./parse.y" +#line 389 "./parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-1].node), node, last_name; int i = IDENTIFIER_LENGTH (name)-1; @@ -2619,15 +2639,15 @@ case 45: ; break;} case 46: -#line 420 "./parse.y" +#line 415 "./parse.y" {yyerror ("Missing name"); RECOVER;; break;} case 47: -#line 422 "./parse.y" +#line 417 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 48: -#line 427 "./parse.y" +#line 422 "./parse.y" { tree name = EXPR_WFL_NODE (yyvsp[-3].node); tree node = build_tree_list (yyvsp[-3].node, NULL_TREE); @@ -2641,15 +2661,15 @@ case 48: ; break;} case 49: -#line 439 "./parse.y" +#line 434 "./parse.y" {yyerror ("'*' expected"); RECOVER;; break;} case 50: -#line 441 "./parse.y" +#line 436 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 51: -#line 446 "./parse.y" +#line 441 "./parse.y" { maybe_generate_clinit (); maybe_generate_finit (); @@ -2657,24 +2677,24 @@ case 51: ; break;} case 53: -#line 453 "./parse.y" +#line 448 "./parse.y" { yyval.node = NULL; ; break;} case 54: -#line 455 "./parse.y" +#line 450 "./parse.y" { YYERROR_NOW; yyerror ("Class or interface declaration expected"); ; break;} case 55: -#line 466 "./parse.y" +#line 461 "./parse.y" { yyval.value = (1 << yyvsp[0].value); ; break;} case 56: -#line 470 "./parse.y" +#line 465 "./parse.y" { int acc = (1 << yyvsp[0].value); if (yyval.value & acc) @@ -2688,116 +2708,116 @@ case 56: ; break;} case 57: -#line 486 "./parse.y" +#line 481 "./parse.y" { create_class (yyvsp[-4].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 58: -#line 488 "./parse.y" +#line 483 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 59: -#line 492 "./parse.y" +#line 487 "./parse.y" { create_class (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 60: -#line 494 "./parse.y" +#line 489 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 61: -#line 498 "./parse.y" +#line 493 "./parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 62: -#line 500 "./parse.y" +#line 495 "./parse.y" {yyerror ("Missing class name"); RECOVER;; break;} case 63: -#line 502 "./parse.y" +#line 497 "./parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); DRECOVER(class1);; break;} case 64: -#line 504 "./parse.y" +#line 499 "./parse.y" {if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER;; break;} case 65: -#line 508 "./parse.y" +#line 503 "./parse.y" { yyval.node = NULL; ; break;} case 66: -#line 510 "./parse.y" +#line 505 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 67: -#line 512 "./parse.y" +#line 507 "./parse.y" {yyerror ("'{' expected"); ctxp->class_err=1;; break;} case 68: -#line 514 "./parse.y" +#line 509 "./parse.y" {yyerror ("Missing super class name"); ctxp->class_err=1;; break;} case 69: -#line 518 "./parse.y" +#line 513 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 70: -#line 520 "./parse.y" +#line 515 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 71: -#line 522 "./parse.y" +#line 517 "./parse.y" { ctxp->class_err=1; yyerror ("Missing interface name"); ; break;} case 72: -#line 530 "./parse.y" +#line 525 "./parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 73: -#line 535 "./parse.y" +#line 530 "./parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 74: -#line 540 "./parse.y" +#line 535 "./parse.y" {yyerror ("Missing interface name"); RECOVER;; break;} case 75: -#line 545 "./parse.y" +#line 540 "./parse.y" { yyval.node = ctxp->current_parsed_class; ; break;} case 76: -#line 547 "./parse.y" +#line 542 "./parse.y" { yyval.node = ctxp->current_parsed_class; ; break;} case 82: -#line 560 "./parse.y" +#line 555 "./parse.y" { yyval.node = parse_jdk1_1_error ("instance initializer"); ; break;} case 85: -#line 567 "./parse.y" +#line 562 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner classe declaration"); ; break;} case 86: -#line 569 "./parse.y" +#line 564 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; break;} case 87: -#line 575 "./parse.y" +#line 570 "./parse.y" { register_fields (0, yyvsp[-2].node, yyvsp[-1].node); ; break;} case 88: -#line 577 "./parse.y" +#line 572 "./parse.y" { check_modifiers ("Illegal modifier `%s' for field declaration", @@ -2807,19 +2827,19 @@ case 88: ; break;} case 90: -#line 590 "./parse.y" +#line 585 "./parse.y" { yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 91: -#line 592 "./parse.y" +#line 587 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 92: -#line 597 "./parse.y" +#line 592 "./parse.y" { yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 93: -#line 599 "./parse.y" +#line 594 "./parse.y" { if (java_error_count) yyvsp[0].node = NULL_TREE; @@ -2828,7 +2848,7 @@ case 93: ; break;} case 94: -#line 606 "./parse.y" +#line 601 "./parse.y" { yyerror ("Missing variable initializer"); yyval.node = build_tree_list (yyvsp[-2].node, NULL_TREE); @@ -2836,7 +2856,7 @@ case 94: ; break;} case 95: -#line 612 "./parse.y" +#line 607 "./parse.y" { yyerror ("';' expected"); yyval.node = build_tree_list (yyvsp[-3].node, NULL_TREE); @@ -2844,234 +2864,234 @@ case 95: ; break;} case 97: -#line 622 "./parse.y" +#line 617 "./parse.y" { yyval.node = build_unresolved_array_type (yyvsp[-2].node); ; break;} case 98: -#line 624 "./parse.y" +#line 619 "./parse.y" {yyerror ("Invalid declaration"); DRECOVER(vdi);; break;} case 99: -#line 626 "./parse.y" +#line 621 "./parse.y" {yyerror ("']' expected"); DRECOVER(vdi);; break;} case 100: -#line 628 "./parse.y" +#line 623 "./parse.y" {yyerror ("Unbalanced ']'"); DRECOVER(vdi);; break;} case 102: -#line 634 "./parse.y" +#line 629 "./parse.y" { yyval.node = NULL; ; break;} case 103: -#line 640 "./parse.y" +#line 635 "./parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 104: -#line 645 "./parse.y" +#line 640 "./parse.y" { complete_method_declaration (yyvsp[0].node); ; break;} case 105: -#line 647 "./parse.y" +#line 642 "./parse.y" {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;; break;} case 106: -#line 652 "./parse.y" +#line 647 "./parse.y" { yyval.node = method_header (0, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 107: -#line 654 "./parse.y" +#line 649 "./parse.y" { yyval.node = method_header (0, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 108: -#line 656 "./parse.y" +#line 651 "./parse.y" { yyval.node = method_header (yyvsp[-3].value, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 109: -#line 658 "./parse.y" +#line 653 "./parse.y" { yyval.node = method_header (yyvsp[-3].value, void_type_node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 110: -#line 660 "./parse.y" +#line 655 "./parse.y" {RECOVER;; break;} case 111: -#line 662 "./parse.y" +#line 657 "./parse.y" {RECOVER;; break;} case 112: -#line 664 "./parse.y" +#line 659 "./parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 113: -#line 666 "./parse.y" +#line 661 "./parse.y" {yyerror ("Identifier expected"); RECOVER;; break;} case 114: -#line 668 "./parse.y" +#line 663 "./parse.y" { yyerror ("Invalid method declaration, return type required"); RECOVER; ; break;} case 115: -#line 676 "./parse.y" +#line 671 "./parse.y" { yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 116: -#line 678 "./parse.y" +#line 673 "./parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 117: -#line 680 "./parse.y" +#line 675 "./parse.y" { /* Issue a warning here: obsolete declaration. FIXME */ yyval.node = NULL; /* FIXME */ ; break;} case 118: -#line 685 "./parse.y" +#line 680 "./parse.y" {yyerror ("')' expected"); DRECOVER(method_declarator);; break;} case 119: -#line 687 "./parse.y" +#line 682 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 120: -#line 692 "./parse.y" +#line 687 "./parse.y" { ctxp->formal_parameter_number = 1; ; break;} case 121: -#line 696 "./parse.y" +#line 691 "./parse.y" { ctxp->formal_parameter_number += 1; yyval.node = chainon (yyvsp[-2].node, yyvsp[0].node); ; break;} case 122: -#line 701 "./parse.y" +#line 696 "./parse.y" {yyerror ("Missing formal parameter term"); RECOVER;; break;} case 123: -#line 706 "./parse.y" +#line 701 "./parse.y" { yyval.node = build_tree_list (yyvsp[0].node, yyvsp[-1].node); ; break;} case 124: -#line 710 "./parse.y" +#line 705 "./parse.y" { yyval.node = parse_jdk1_1_error ("final local"); ; break;} case 125: -#line 712 "./parse.y" +#line 707 "./parse.y" {yyerror ("Missing identifier"); RECOVER;; break;} case 126: -#line 714 "./parse.y" +#line 709 "./parse.y" { SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[-2].value)); yyerror ("Missing identifier"); RECOVER; ; break;} case 127: -#line 721 "./parse.y" +#line 716 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 128: -#line 723 "./parse.y" +#line 718 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 129: -#line 725 "./parse.y" +#line 720 "./parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 130: -#line 730 "./parse.y" +#line 725 "./parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 131: -#line 732 "./parse.y" +#line 727 "./parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 132: -#line 734 "./parse.y" +#line 729 "./parse.y" {yyerror ("Missing class type term"); RECOVER;; break;} case 135: -#line 741 "./parse.y" +#line 736 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 136: -#line 747 "./parse.y" +#line 742 "./parse.y" { RULE ("STATIC_INITIALIZER"); ; break;} case 137: -#line 751 "./parse.y" +#line 746 "./parse.y" { RULE ("STATIC_INITIALIZER"); ; break;} case 138: -#line 758 "./parse.y" +#line 753 "./parse.y" { SOURCE_FRONTEND_DEBUG (("Modifiers: %d", yyvsp[0].value)); ; break;} case 139: -#line 766 "./parse.y" +#line 761 "./parse.y" { current_function_decl = yyvsp[0].node; source_start_java_method (current_function_decl); ; break;} case 140: -#line 771 "./parse.y" +#line 766 "./parse.y" { complete_method_declaration (yyvsp[0].node); ; break;} case 141: -#line 776 "./parse.y" +#line 771 "./parse.y" { yyval.node = method_header (0, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 142: -#line 778 "./parse.y" +#line 773 "./parse.y" { yyval.node = method_header (yyvsp[-2].value, NULL_TREE, yyvsp[-1].node, yyvsp[0].node); ; break;} case 143: -#line 783 "./parse.y" +#line 778 "./parse.y" { yyval.node = method_declarator (yyvsp[-2].node, NULL_TREE); ; break;} case 144: -#line 785 "./parse.y" +#line 780 "./parse.y" { yyval.node = method_declarator (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 145: -#line 793 "./parse.y" +#line 788 "./parse.y" { BLOCK_EXPR_BODY (yyvsp[0].node) = size_zero_node; yyval.node = yyvsp[0].node; ; break;} case 146: -#line 798 "./parse.y" +#line 793 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 147: -#line 800 "./parse.y" +#line 795 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 148: -#line 802 "./parse.y" +#line 797 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 149: -#line 808 "./parse.y" +#line 803 "./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); @@ -3079,7 +3099,7 @@ case 149: ; break;} case 150: -#line 814 "./parse.y" +#line 809 "./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); @@ -3087,15 +3107,15 @@ case 150: ; break;} case 151: -#line 822 "./parse.y" +#line 817 "./parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 152: -#line 824 "./parse.y" +#line 819 "./parse.y" {yyval.node = parse_jdk1_1_error ("explicit constructor invocation"); ; break;} case 153: -#line 829 "./parse.y" +#line 824 "./parse.y" { tree wfl = build_wfl_node (this_identifier_node, input_filename, 0, 0); @@ -3104,7 +3124,7 @@ case 153: ; break;} case 154: -#line 836 "./parse.y" +#line 831 "./parse.y" { tree wfl = build_wfl_node (super_identifier_node, input_filename, 0, 0); @@ -3113,167 +3133,167 @@ case 154: ; break;} case 155: -#line 848 "./parse.y" +#line 843 "./parse.y" { create_interface (0, yyvsp[0].node, NULL_TREE); ; break;} case 156: -#line 850 "./parse.y" +#line 845 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 157: -#line 854 "./parse.y" +#line 849 "./parse.y" { create_interface (yyvsp[-2].value, yyvsp[0].node, NULL_TREE); ; break;} case 158: -#line 856 "./parse.y" +#line 851 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 159: -#line 860 "./parse.y" +#line 855 "./parse.y" { create_interface (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 160: -#line 862 "./parse.y" +#line 857 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 161: -#line 866 "./parse.y" +#line 861 "./parse.y" { create_interface (yyvsp[-3].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 162: -#line 868 "./parse.y" +#line 863 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 163: -#line 872 "./parse.y" +#line 867 "./parse.y" {yyerror ("(here)'{' expected"); RECOVER;; break;} case 164: -#line 874 "./parse.y" +#line 869 "./parse.y" {yyerror ("(there)'{' expected"); RECOVER;; break;} case 165: -#line 879 "./parse.y" +#line 874 "./parse.y" { ctxp->interface_number = 1; yyval.node = build_tree_list (yyvsp[0].node, NULL_TREE); ; break;} case 166: -#line 884 "./parse.y" +#line 879 "./parse.y" { ctxp->interface_number++; yyval.node = chainon (yyvsp[-2].node, build_tree_list (yyvsp[0].node, NULL_TREE)); ; break;} case 167: -#line 889 "./parse.y" +#line 884 "./parse.y" {yyerror ("Invalid interface type"); RECOVER;; break;} case 168: -#line 891 "./parse.y" +#line 886 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 169: -#line 896 "./parse.y" +#line 891 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 170: -#line 898 "./parse.y" +#line 893 "./parse.y" { yyval.node = NULL_TREE; ; break;} case 175: -#line 910 "./parse.y" +#line 905 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class declaration"); ; break;} case 176: -#line 912 "./parse.y" +#line 907 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner interface declaration"); ; break;} case 178: -#line 921 "./parse.y" +#line 916 "./parse.y" { check_abstract_method_header (yyvsp[-1].node); current_function_decl = NULL_TREE; /* FIXME ? */ ; break;} case 179: -#line 926 "./parse.y" +#line 921 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 180: -#line 932 "./parse.y" +#line 927 "./parse.y" { RULE ("ARRAY_INITIALIZER (empty)"); ; break;} case 181: -#line 936 "./parse.y" +#line 931 "./parse.y" { RULE ("ARRAY_INITIALIZER (variable)"); ; break;} case 182: -#line 940 "./parse.y" +#line 935 "./parse.y" { RULE ("ARRAY_INITIALIZER (,)"); ; break;} case 183: -#line 944 "./parse.y" +#line 939 "./parse.y" { RULE ("ARRAY_INITIALIZER (variable, ,)"); ; break;} case 186: -#line 953 "./parse.y" +#line 948 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 187: -#line 959 "./parse.y" +#line 954 "./parse.y" { yyval.node = size_zero_node; ; break;} case 188: -#line 961 "./parse.y" +#line 956 "./parse.y" { yyval.node = yyvsp[0].node; ; break;} case 189: -#line 966 "./parse.y" +#line 961 "./parse.y" { enter_block (); ; break;} case 190: -#line 971 "./parse.y" +#line 966 "./parse.y" { maybe_absorb_scoping_blocks (); yyval.node = exit_block (); ; break;} case 194: -#line 985 "./parse.y" -{ yyval.node = java_method_add_stmt (current_function_decl, yyvsp[0].node); ; +#line 980 "./parse.y" +{ java_method_add_stmt (current_function_decl, yyvsp[0].node); ; break;} case 195: -#line 987 "./parse.y" -{ yyval.node = parse_jdk1_1_error ("inner class declaration"); ; +#line 982 "./parse.y" +{ parse_jdk1_1_error ("inner class declaration"); ; break;} case 197: -#line 996 "./parse.y" +#line 991 "./parse.y" { declare_local_variables (0, yyvsp[-1].node, yyvsp[0].node); ; break;} case 198: -#line 998 "./parse.y" +#line 993 "./parse.y" { declare_local_variables (yyvsp[-2].value, yyvsp[-1].node, yyvsp[0].node); ; break;} case 204: -#line 1008 "./parse.y" +#line 1003 "./parse.y" { /* If the for loop is unlabeled, we must return the block it was defined it. It our last chance to @@ -3283,11 +3303,11 @@ case 204: ; break;} case 221: -#line 1041 "./parse.y" +#line 1036 "./parse.y" { yyval.node = size_zero_node; ; break;} case 222: -#line 1046 "./parse.y" +#line 1041 "./parse.y" { yyval.node = build_labeled_block (EXPR_WFL_LINECOL (yyvsp[-1].node), EXPR_WFL_NODE (yyvsp[-1].node)); @@ -3297,7 +3317,7 @@ case 222: ; break;} case 223: -#line 1057 "./parse.y" +#line 1052 "./parse.y" { yyval.node = complete_labeled_statement (yyvsp[-1].node, yyvsp[0].node); pop_labeled_block (); @@ -3305,11 +3325,11 @@ case 223: ; break;} case 224: -#line 1063 "./parse.y" +#line 1058 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 225: -#line 1068 "./parse.y" +#line 1063 "./parse.y" { yyval.node = complete_labeled_statement (yyvsp[-1].node, yyvsp[0].node); pop_labeled_block (); @@ -3317,7 +3337,7 @@ case 225: ; break;} case 226: -#line 1079 "./parse.y" +#line 1074 "./parse.y" { /* We have a statement. Generate a WFL around it so we can debug it */ @@ -3328,7 +3348,7 @@ case 226: ; break;} case 227: -#line 1088 "./parse.y" +#line 1083 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); @@ -3336,7 +3356,7 @@ case 227: ; break;} case 228: -#line 1094 "./parse.y" +#line 1089 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); @@ -3344,7 +3364,7 @@ case 228: ; break;} case 229: -#line 1100 "./parse.y" +#line 1095 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid expression statement"); @@ -3352,11 +3372,11 @@ case 229: ; break;} case 230: -#line 1106 "./parse.y" +#line 1101 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 231: -#line 1108 "./parse.y" +#line 1103 "./parse.y" { yyerror ("Constructor invocation must be first " "thing in a constructor"); @@ -3364,11 +3384,11 @@ case 231: ; break;} case 232: -#line 1114 "./parse.y" +#line 1109 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 233: -#line 1116 "./parse.y" +#line 1111 "./parse.y" { yyerror ("Constructor invocation must be first " "thing in a constructor"); @@ -3376,193 +3396,156 @@ case 233: ; break;} case 234: -#line 1122 "./parse.y" +#line 1117 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 235: -#line 1124 "./parse.y" +#line 1119 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 236: -#line 1126 "./parse.y" +#line 1121 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 237: -#line 1128 "./parse.y" +#line 1123 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 238: -#line 1130 "./parse.y" +#line 1125 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 246: -#line 1145 "./parse.y" +#line 1140 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node, NULL_TREE); ; break;} case 247: -#line 1147 "./parse.y" +#line 1142 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 248: -#line 1149 "./parse.y" +#line 1144 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 249: -#line 1151 "./parse.y" +#line 1146 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 250: -#line 1156 "./parse.y" +#line 1151 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 251: -#line 1161 "./parse.y" +#line 1156 "./parse.y" { yyval.node = build_if_else_statement (yyvsp[-5].operator.location, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; break;} case 252: -#line 1166 "./parse.y" -{ - TREE_OPERAND (yyvsp[-1].node, 1) = yyvsp[0].node; - yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-1].node), yyvsp[-1].node); +#line 1161 "./parse.y" +{ + enter_block (); ; break;} case 253: -#line 1174 "./parse.y" +#line 1165 "./parse.y" +{ + /* Make into "proper list" of COMPOUND_EXPRs. + I.e. make the last statment also have its own COMPOUND_EXPR. */ + maybe_absorb_scoping_blocks (); + TREE_OPERAND (yyvsp[-2].node, 1) = exit_block (); + yyval.node = build_debugable_stmt (EXPR_WFL_LINECOL (yyvsp[-2].node), yyvsp[-2].node); + ; + break;} +case 254: +#line 1176 "./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 254: -#line 1179 "./parse.y" -{yyerror ("'(' expected"); RECOVER;; - break;} case 255: #line 1181 "./parse.y" -{yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; +{yyerror ("'(' expected"); RECOVER;; break;} case 256: #line 1183 "./parse.y" -{yyerror ("'{' expected"); RECOVER;; +{yyerror ("Missing term or ')'"); DRECOVER(switch_statement);; break;} case 257: -#line 1188 "./parse.y" -{ yyval.node = NULL_TREE; ; - break;} -case 258: -#line 1190 "./parse.y" -{ yyval.node = build_tree_list (yyvsp[-1].node, NULL_TREE); ; - break;} -case 259: -#line 1192 "./parse.y" -{ yyval.node = yyvsp[-1].node; ; - break;} -case 260: -#line 1194 "./parse.y" -{ - /* Switch labels alone are empty switch statements */ - tree sl = build_tree_list (yyvsp[-1].node, NULL_TREE); - TREE_CHAIN (sl) = yyvsp[-2].node; - yyval.node = sl; - ; - break;} -case 262: -#line 1205 "./parse.y" -{ - TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; - yyval.node = yyvsp[0].node; - ; - break;} -case 263: -#line 1213 "./parse.y" -{ yyval.node = build_tree_list (yyvsp[-1].node, exit_block ()); ; - break;} -case 264: -#line 1218 "./parse.y" -{ - /* All statements attached to this group of cases - will be stored in a block */ - enter_block (); - yyval.node = yyvsp[0].node; - ; - break;} -case 266: -#line 1228 "./parse.y" -{ - TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; - yyval.node = yyvsp[0].node; - ; +#line 1185 "./parse.y" +{yyerror ("'{' expected"); RECOVER;; break;} case 267: -#line 1236 "./parse.y" +#line 1211 "./parse.y" { - yyval.node = build1 (CASE_EXPR, NULL_TREE, yyvsp[-1].node); - EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; + 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 268: -#line 1241 "./parse.y" +#line 1217 "./parse.y" { - yyval.node = build1 (DEFAULT_EXPR, NULL_TREE, NULL_TREE); - EXPR_WFL_LINECOL (yyval.node) = yyvsp[-1].operator.location; + 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 269: -#line 1246 "./parse.y" +#line 1223 "./parse.y" {yyerror ("Missing or invalid constant expression"); RECOVER;; break;} case 270: -#line 1248 "./parse.y" +#line 1225 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 271: -#line 1250 "./parse.y" +#line 1227 "./parse.y" {yyerror ("':' expected"); RECOVER;; break;} case 272: -#line 1255 "./parse.y" +#line 1232 "./parse.y" { tree body = build_loop_body (yyvsp[-2].operator.location, yyvsp[-1].node, 0); yyval.node = build_new_loop (body); ; break;} case 273: -#line 1263 "./parse.y" +#line 1240 "./parse.y" { yyval.node = complete_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 274: -#line 1265 "./parse.y" +#line 1242 "./parse.y" {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;; break;} case 275: -#line 1267 "./parse.y" +#line 1244 "./parse.y" {yyerror ("Missing term and ')' expected"); RECOVER;; break;} case 276: -#line 1269 "./parse.y" +#line 1246 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 277: -#line 1274 "./parse.y" +#line 1251 "./parse.y" { yyval.node = complete_loop_body (0, NULL_TREE, yyvsp[0].node, 0); ; break;} case 278: -#line 1279 "./parse.y" +#line 1256 "./parse.y" { tree body = build_loop_body (0, NULL_TREE, 1); yyval.node = build_new_loop (body); ; break;} case 279: -#line 1288 "./parse.y" +#line 1265 "./parse.y" { yyval.node = complete_loop_body (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-5].node, 1); ; break;} case 280: -#line 1293 "./parse.y" +#line 1270 "./parse.y" { yyval.node = complete_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; break;} case 281: -#line 1295 "./parse.y" +#line 1272 "./parse.y" { yyval.node = complete_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ @@ -3571,23 +3554,23 @@ case 281: ; break;} case 282: -#line 1302 "./parse.y" +#line 1279 "./parse.y" {yyerror ("Invalid control expression"); RECOVER;; break;} case 283: -#line 1304 "./parse.y" +#line 1281 "./parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 284: -#line 1306 "./parse.y" +#line 1283 "./parse.y" {yyerror ("Invalid update expression"); RECOVER;; break;} case 285: -#line 1311 "./parse.y" +#line 1288 "./parse.y" { yyval.node = complete_for_loop (EXPR_WFL_LINECOL (yyvsp[-4].node), yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node);; break;} case 286: -#line 1313 "./parse.y" +#line 1290 "./parse.y" { yyval.node = complete_for_loop (0, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); /* We have not condition, so we get rid of the EXIT_EXPR */ @@ -3596,7 +3579,7 @@ case 286: ; break;} case 287: -#line 1323 "./parse.y" +#line 1300 "./parse.y" { /* This scope defined for local variable that may be defined within the scope of the for loop */ @@ -3604,15 +3587,15 @@ case 287: ; break;} case 288: -#line 1329 "./parse.y" +#line 1306 "./parse.y" {yyerror ("'(' expected"); DRECOVER(for_1);; break;} case 289: -#line 1331 "./parse.y" +#line 1308 "./parse.y" {yyerror ("Invalid init statement"); RECOVER;; break;} case 290: -#line 1336 "./parse.y" +#line 1313 "./parse.y" { /* We now declare the loop body. The loop is declared as a for loop. */ @@ -3625,11 +3608,11 @@ case 290: ; break;} case 291: -#line 1348 "./parse.y" +#line 1325 "./parse.y" { yyval.node = size_zero_node; ; break;} case 292: -#line 1350 "./parse.y" +#line 1327 "./parse.y" { /* Init statement recorded within the previously defined block scope */ @@ -3637,7 +3620,7 @@ case 292: ; break;} case 293: -#line 1356 "./parse.y" +#line 1333 "./parse.y" { /* Local variable are recorded within the previously defined block scope */ @@ -3645,94 +3628,94 @@ case 293: ; break;} case 294: -#line 1362 "./parse.y" +#line 1339 "./parse.y" {yyerror ("';' expected"); DRECOVER(for_init_1);; break;} case 295: -#line 1366 "./parse.y" +#line 1343 "./parse.y" {yyval.node = size_zero_node;; break;} case 296: -#line 1368 "./parse.y" +#line 1345 "./parse.y" { yyval.node = build_debugable_stmt (BUILD_LOCATION (), yyvsp[0].node); ; break;} case 297: -#line 1373 "./parse.y" +#line 1350 "./parse.y" { yyval.node = add_stmt_to_compound (NULL_TREE, NULL_TREE, yyvsp[0].node); ; break;} case 298: -#line 1375 "./parse.y" +#line 1352 "./parse.y" { yyval.node = add_stmt_to_compound (yyvsp[-2].node, NULL_TREE, yyvsp[0].node); ; break;} case 299: -#line 1377 "./parse.y" +#line 1354 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 300: -#line 1382 "./parse.y" +#line 1359 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 1, NULL_TREE); ; break;} case 301: -#line 1384 "./parse.y" +#line 1361 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 1, yyvsp[-1].node); ; break;} case 302: -#line 1386 "./parse.y" +#line 1363 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 303: -#line 1388 "./parse.y" +#line 1365 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 304: -#line 1393 "./parse.y" +#line 1370 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-1].operator.location, 0, NULL_TREE); ; break;} case 305: -#line 1395 "./parse.y" +#line 1372 "./parse.y" { yyval.node = build_bc_statement (yyvsp[-2].operator.location, 0, yyvsp[-1].node); ; break;} case 306: -#line 1397 "./parse.y" +#line 1374 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 307: -#line 1399 "./parse.y" +#line 1376 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 308: -#line 1404 "./parse.y" +#line 1381 "./parse.y" { yyval.node = build_return (yyvsp[-1].operator.location, NULL_TREE); ; break;} case 309: -#line 1406 "./parse.y" +#line 1383 "./parse.y" { yyval.node = build_return (yyvsp[-2].operator.location, yyvsp[-1].node); ; break;} case 310: -#line 1408 "./parse.y" +#line 1385 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 311: -#line 1410 "./parse.y" +#line 1387 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 312: -#line 1415 "./parse.y" +#line 1392 "./parse.y" { yyval.node = build1 (THROW_EXPR, NULL_TREE, yyvsp[-1].node); EXPR_WFL_LINECOL (yyval.node) = yyvsp[-2].operator.location; ; break;} case 313: -#line 1420 "./parse.y" +#line 1397 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 314: -#line 1422 "./parse.y" +#line 1399 "./parse.y" {yyerror ("';' expected"); RECOVER;; break;} case 315: -#line 1427 "./parse.y" +#line 1404 "./parse.y" { yyval.node = build (SYNCHRONIZED_EXPR, NULL_TREE, yyvsp[-2].node, yyvsp[0].node); EXPR_WFL_LINECOL (yyval.node) = @@ -3740,53 +3723,53 @@ case 315: ; break;} case 316: -#line 1433 "./parse.y" +#line 1410 "./parse.y" {yyerror ("'{' expected"); RECOVER;; break;} case 317: -#line 1435 "./parse.y" +#line 1412 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 318: -#line 1437 "./parse.y" +#line 1414 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 319: -#line 1439 "./parse.y" +#line 1416 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 320: -#line 1444 "./parse.y" +#line 1421 "./parse.y" { if ((1 << yyvsp[0].value) != ACC_SYNCHRONIZED) fatal ("synchronized was '%d' - yyparse", (1 << yyvsp[0].value)); ; break;} case 321: -#line 1452 "./parse.y" +#line 1429 "./parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, yyvsp[0].node, NULL_TREE); ; break;} case 322: -#line 1454 "./parse.y" +#line 1431 "./parse.y" { yyval.node = build_try_statement (yyvsp[-2].operator.location, yyvsp[-1].node, NULL_TREE, yyvsp[0].node); ; break;} case 323: -#line 1456 "./parse.y" +#line 1433 "./parse.y" { yyval.node = build_try_statement (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node); ; break;} case 324: -#line 1458 "./parse.y" +#line 1435 "./parse.y" {yyerror ("'{' expected"); DRECOVER (try_statement);; break;} case 326: -#line 1464 "./parse.y" +#line 1441 "./parse.y" { TREE_CHAIN (yyvsp[0].node) = yyvsp[-1].node; yyval.node = yyvsp[0].node; ; break;} case 327: -#line 1472 "./parse.y" +#line 1449 "./parse.y" { java_method_add_stmt (current_function_decl, yyvsp[0].node); exit_block (); @@ -3794,16 +3777,17 @@ case 327: ; break;} case 328: -#line 1480 "./parse.y" +#line 1457 "./parse.y" { /* We add a block to define a scope for formal_parameter (CCBP). The formal parameter is declared initialized by the appropriate function call */ tree ccpb = enter_block (); - tree init = build_assignment (ASSIGN_TK, yyvsp[-2].operator.location, - TREE_PURPOSE (yyvsp[-1].node), - soft_exceptioninfo_call_node); + tree init = /* flag_emit_class_files ? NULL_TREE + : */ build_assignment (ASSIGN_TK, yyvsp[-2].operator.location, + TREE_PURPOSE (yyvsp[-1].node), + soft_exceptioninfo_call_node); declare_local_variables (0, TREE_VALUE (yyvsp[-1].node), build_tree_list (TREE_PURPOSE (yyvsp[-1].node), init)); @@ -3812,179 +3796,179 @@ case 328: ; break;} case 329: -#line 1496 "./parse.y" +#line 1474 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 330: -#line 1498 "./parse.y" +#line 1476 "./parse.y" {yyerror ("Missing term or ')' expected"); DRECOVER (2);; break;} case 331: -#line 1500 "./parse.y" +#line 1478 "./parse.y" {yyerror ("')' expected"); DRECOVER (1);; break;} case 332: -#line 1505 "./parse.y" +#line 1483 "./parse.y" { yyval.node = build (FINALLY_EXPR, NULL_TREE, create_label_decl (generate_name ()), yyvsp[0].node); ; break;} case 333: -#line 1510 "./parse.y" +#line 1488 "./parse.y" {yyerror ("'{' expected"); RECOVER; ; break;} case 337: -#line 1522 "./parse.y" +#line 1500 "./parse.y" { yyval.node = build_this (yyvsp[0].operator.location); ; break;} case 338: -#line 1524 "./parse.y" +#line 1502 "./parse.y" {yyval.node = yyvsp[-1].node;; break;} case 343: -#line 1533 "./parse.y" +#line 1511 "./parse.y" { yyval.node = parse_jdk1_1_error ("class literals"); ; break;} case 344: -#line 1535 "./parse.y" +#line 1513 "./parse.y" { yyval.node = parse_jdk1_1_error ("class literals"); ; break;} case 345: -#line 1537 "./parse.y" +#line 1515 "./parse.y" { yyval.node = parse_jdk1_1_error ("class literals"); ; break;} case 346: -#line 1542 "./parse.y" +#line 1520 "./parse.y" { yyval.node = parse_jdk1_1_error ("class literals"); ; break;} case 347: -#line 1544 "./parse.y" +#line 1522 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 348: -#line 1546 "./parse.y" +#line 1524 "./parse.y" {yyerror ("'class' or 'this' expected" ); RECOVER;; break;} case 349: -#line 1548 "./parse.y" +#line 1526 "./parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 350: -#line 1550 "./parse.y" +#line 1528 "./parse.y" {yyerror ("'class' expected" ); RECOVER;; break;} case 351: -#line 1555 "./parse.y" +#line 1533 "./parse.y" { yyval.node = build_new_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 352: -#line 1557 "./parse.y" +#line 1535 "./parse.y" { yyval.node = build_new_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 353: -#line 1562 "./parse.y" +#line 1540 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; break;} case 354: -#line 1564 "./parse.y" +#line 1542 "./parse.y" { yyval.node = parse_jdk1_1_error ("inner class instance creation"); ; break;} case 359: -#line 1573 "./parse.y" +#line 1551 "./parse.y" {yyerror ("'(' expected"); DRECOVER(new_1);; break;} case 360: -#line 1575 "./parse.y" +#line 1553 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 361: -#line 1577 "./parse.y" +#line 1555 "./parse.y" {yyerror ("')' or term expected"); RECOVER;; break;} case 362: -#line 1579 "./parse.y" +#line 1557 "./parse.y" {yyerror ("')' expected"); RECOVER;; break;} case 363: -#line 1581 "./parse.y" +#line 1559 "./parse.y" {YYERROR_NOW; yyerror ("Identifier expected"); RECOVER;; break;} case 364: -#line 1583 "./parse.y" +#line 1561 "./parse.y" {yyerror ("'(' expected"); RECOVER;; break;} case 367: -#line 1593 "./parse.y" +#line 1571 "./parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, NULL_TREE); ctxp->formal_parameter_number = 1; ; break;} case 368: -#line 1598 "./parse.y" +#line 1576 "./parse.y" { ctxp->formal_parameter_number += 1; yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyvsp[-2].node); ; break;} case 369: -#line 1603 "./parse.y" +#line 1581 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 370: -#line 1608 "./parse.y" +#line 1586 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 371: -#line 1610 "./parse.y" +#line 1588 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-1].node, yyvsp[0].node, 0); ; break;} case 372: -#line 1612 "./parse.y" +#line 1590 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, ctxp->osb_number); ; break;} case 373: -#line 1614 "./parse.y" +#line 1592 "./parse.y" { yyval.node = build_newarray_node (yyvsp[-2].node, yyvsp[-1].node, ctxp->osb_number); ; break;} case 374: -#line 1618 "./parse.y" +#line 1596 "./parse.y" { yyval.node = parse_jdk1_1_error ("anonymous array"); ; break;} case 375: -#line 1620 "./parse.y" +#line 1598 "./parse.y" { yyval.node = parse_jdk1_1_error ("anonymous array"); ; break;} case 376: -#line 1622 "./parse.y" +#line 1600 "./parse.y" {yyerror ("'[' expected"); DRECOVER ("]");; break;} case 377: -#line 1624 "./parse.y" +#line 1602 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 378: -#line 1629 "./parse.y" +#line 1607 "./parse.y" { yyval.node = build_tree_list (NULL_TREE, yyvsp[0].node); ; break;} case 379: -#line 1631 "./parse.y" +#line 1609 "./parse.y" { yyval.node = tree_cons (NULL_TREE, yyvsp[0].node, yyval.node); ; break;} case 380: -#line 1636 "./parse.y" +#line 1614 "./parse.y" { EXPR_WFL_LINECOL (yyvsp[-1].node) = yyvsp[-2].operator.location; yyval.node = yyvsp[-1].node; ; break;} case 381: -#line 1641 "./parse.y" +#line 1619 "./parse.y" {yyerror ("']' expected"); RECOVER;; break;} case 382: -#line 1643 "./parse.y" +#line 1621 "./parse.y" { yyerror ("Missing term"); yyerror ("']' expected"); @@ -3992,23 +3976,23 @@ case 382: ; break;} case 383: -#line 1652 "./parse.y" +#line 1630 "./parse.y" { ctxp->osb_number = 1; ; break;} case 384: -#line 1654 "./parse.y" +#line 1632 "./parse.y" { ctxp->osb_number++; ; break;} case 385: -#line 1656 "./parse.y" +#line 1634 "./parse.y" { yyerror ("']' expected"); RECOVER;; break;} case 386: -#line 1661 "./parse.y" +#line 1639 "./parse.y" { yyval.node = make_qualified_primary (yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].operator.location); ; break;} case 387: -#line 1663 "./parse.y" +#line 1641 "./parse.y" { tree super_wfl = build_wfl_node (super_identifier_node, @@ -4018,19 +4002,19 @@ case 387: ; break;} case 388: -#line 1671 "./parse.y" +#line 1649 "./parse.y" {yyerror ("Field expected"); DRECOVER (super_field_acces);; break;} case 389: -#line 1676 "./parse.y" +#line 1654 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-2].node, NULL_TREE); ; break;} case 390: -#line 1678 "./parse.y" +#line 1656 "./parse.y" { yyval.node = build_method_invocation (yyvsp[-3].node, yyvsp[-1].node); ; break;} case 391: -#line 1680 "./parse.y" +#line 1658 "./parse.y" { if (TREE_CODE (yyvsp[-4].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation @@ -4043,7 +4027,7 @@ case 391: ; break;} case 392: -#line 1691 "./parse.y" +#line 1669 "./parse.y" { if (TREE_CODE (yyvsp[-5].node) == THIS_EXPR) yyval.node = build_this_super_qualified_invocation @@ -4056,121 +4040,121 @@ case 392: ; break;} case 393: -#line 1702 "./parse.y" +#line 1680 "./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 394: -#line 1707 "./parse.y" +#line 1685 "./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 395: -#line 1716 "./parse.y" +#line 1694 "./parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 396: -#line 1718 "./parse.y" +#line 1696 "./parse.y" { yyerror ("'(' expected"); DRECOVER (method_invocation); ; break;} case 397: -#line 1723 "./parse.y" +#line 1701 "./parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 398: -#line 1725 "./parse.y" +#line 1703 "./parse.y" { yyval.node = build_array_ref (yyvsp[-2].operator.location, yyvsp[-3].node, yyvsp[-1].node); ; break;} case 399: -#line 1727 "./parse.y" +#line 1705 "./parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 400: -#line 1732 "./parse.y" +#line 1710 "./parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 401: -#line 1737 "./parse.y" +#line 1715 "./parse.y" { yyerror ("Missing term and ']' expected"); DRECOVER(array_access); ; break;} case 402: -#line 1742 "./parse.y" +#line 1720 "./parse.y" { yyerror ("']' expected"); DRECOVER(array_access); ; break;} case 407: -#line 1757 "./parse.y" +#line 1735 "./parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 408: -#line 1762 "./parse.y" +#line 1740 "./parse.y" { yyval.node = build_incdec (yyvsp[0].operator.token, yyvsp[0].operator.location, yyvsp[-1].node, 1); ; break;} case 411: -#line 1769 "./parse.y" +#line 1747 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 412: -#line 1771 "./parse.y" +#line 1749 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 414: -#line 1774 "./parse.y" +#line 1752 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 415: -#line 1776 "./parse.y" +#line 1754 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 416: -#line 1781 "./parse.y" +#line 1759 "./parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 417: -#line 1783 "./parse.y" +#line 1761 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 418: -#line 1788 "./parse.y" +#line 1766 "./parse.y" {yyval.node = build_incdec (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node, 0); ; break;} case 419: -#line 1790 "./parse.y" +#line 1768 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 421: -#line 1796 "./parse.y" +#line 1774 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 422: -#line 1798 "./parse.y" +#line 1776 "./parse.y" {yyval.node = build_unaryop (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[0].node); ; break;} case 424: -#line 1801 "./parse.y" +#line 1779 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 425: -#line 1803 "./parse.y" +#line 1781 "./parse.y" {yyerror ("Missing term"); RECOVER; break;} case 426: -#line 1808 "./parse.y" +#line 1786 "./parse.y" { tree type = yyvsp[-3].node; while (ctxp->osb_number--) @@ -4179,15 +4163,15 @@ case 426: ; break;} case 427: -#line 1815 "./parse.y" +#line 1793 "./parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 428: -#line 1817 "./parse.y" +#line 1795 "./parse.y" { yyval.node = build_cast (yyvsp[-3].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 429: -#line 1819 "./parse.y" +#line 1797 "./parse.y" { char *ptr; while (ctxp->osb_number--) @@ -4201,11 +4185,11 @@ case 429: ; break;} case 430: -#line 1831 "./parse.y" +#line 1809 "./parse.y" {yyerror ("']' expected, invalid type expression");; break;} case 431: -#line 1833 "./parse.y" +#line 1811 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Invalid type expression"); RECOVER; @@ -4213,243 +4197,243 @@ case 431: ; break;} case 432: -#line 1839 "./parse.y" +#line 1817 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 433: -#line 1841 "./parse.y" +#line 1819 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 434: -#line 1843 "./parse.y" +#line 1821 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 436: -#line 1849 "./parse.y" +#line 1827 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 437: -#line 1854 "./parse.y" +#line 1832 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 438: -#line 1859 "./parse.y" +#line 1837 "./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 1864 "./parse.y" +#line 1842 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 440: -#line 1866 "./parse.y" +#line 1844 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 441: -#line 1868 "./parse.y" +#line 1846 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 443: -#line 1874 "./parse.y" +#line 1852 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 444: -#line 1879 "./parse.y" +#line 1857 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 445: -#line 1884 "./parse.y" +#line 1862 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 446: -#line 1886 "./parse.y" +#line 1864 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 448: -#line 1892 "./parse.y" +#line 1870 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 449: -#line 1897 "./parse.y" +#line 1875 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 450: -#line 1902 "./parse.y" +#line 1880 "./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 1907 "./parse.y" +#line 1885 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 452: -#line 1909 "./parse.y" +#line 1887 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 453: -#line 1911 "./parse.y" +#line 1889 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 455: -#line 1917 "./parse.y" +#line 1895 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 456: -#line 1922 "./parse.y" +#line 1900 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 457: -#line 1927 "./parse.y" +#line 1905 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 458: -#line 1932 "./parse.y" +#line 1910 "./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 1937 "./parse.y" +#line 1915 "./parse.y" { yyval.node = build_binop (INSTANCEOF_EXPR, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 460: -#line 1939 "./parse.y" +#line 1917 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 461: -#line 1941 "./parse.y" +#line 1919 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 462: -#line 1943 "./parse.y" +#line 1921 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 463: -#line 1945 "./parse.y" +#line 1923 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 464: -#line 1947 "./parse.y" +#line 1925 "./parse.y" {yyerror ("Invalid reference type"); RECOVER;; break;} case 466: -#line 1953 "./parse.y" +#line 1931 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 467: -#line 1958 "./parse.y" +#line 1936 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 468: -#line 1963 "./parse.y" +#line 1941 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 469: -#line 1965 "./parse.y" +#line 1943 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 471: -#line 1971 "./parse.y" +#line 1949 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 472: -#line 1976 "./parse.y" +#line 1954 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 474: -#line 1982 "./parse.y" +#line 1960 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 475: -#line 1987 "./parse.y" +#line 1965 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 477: -#line 1993 "./parse.y" +#line 1971 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 478: -#line 1998 "./parse.y" +#line 1976 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 480: -#line 2004 "./parse.y" +#line 1982 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 481: -#line 2009 "./parse.y" +#line 1987 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 483: -#line 2015 "./parse.y" +#line 1993 "./parse.y" { yyval.node = build_binop (BINOP_LOOKUP (yyvsp[-1].operator.token), yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 484: -#line 2020 "./parse.y" +#line 1998 "./parse.y" {yyerror ("Missing term"); RECOVER;; break;} case 486: -#line 2026 "./parse.y" +#line 2004 "./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 487: -#line 2031 "./parse.y" +#line 2009 "./parse.y" { YYERROR_NOW; yyerror ("Missing term"); @@ -4457,19 +4441,19 @@ case 487: ; break;} case 488: -#line 2037 "./parse.y" +#line 2015 "./parse.y" {yyerror ("Missing term"); DRECOVER (2);; break;} case 489: -#line 2039 "./parse.y" +#line 2017 "./parse.y" {yyerror ("Missing term"); DRECOVER (3);; break;} case 492: -#line 2049 "./parse.y" +#line 2027 "./parse.y" { yyval.node = build_assignment (yyvsp[-1].operator.token, yyvsp[-1].operator.location, yyvsp[-2].node, yyvsp[0].node); ; break;} case 493: -#line 2051 "./parse.y" +#line 2029 "./parse.y" { if (ctxp->prevent_ese != lineno) yyerror ("Missing term"); @@ -4674,7 +4658,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 2077 "./parse.y" +#line 2055 "./parse.y" @@ -4860,19 +4844,15 @@ yyerror (msg) } static void -parse_error (msg) - char *msg; -{ - java_error (NULL); - java_error (msg); -} - -static void -issue_warning_error_from_context (cl, msg) +issue_warning_error_from_context (cl, msg, ap) tree cl; char *msg; + va_list ap; { char *saved; + char buffer [4096]; + vsprintf (buffer, msg, ap); + force_error = 1; ctxp->elc.line = EXPR_WFL_LINENO (cl); ctxp->elc.col = (EXPR_WFL_COLNO (cl) == 0xfff ? -1 : EXPR_WFL_COLNO (cl)); @@ -4881,20 +4861,21 @@ issue_warning_error_from_context (cl, msg) saved = ctxp->filename; if (TREE_CODE (cl) == EXPR_WITH_FILE_LOCATION && EXPR_WFL_FILENAME_NODE (cl)) ctxp->filename = EXPR_WFL_FILENAME (cl); - parse_error (msg); + java_error (NULL); + java_error (buffer); ctxp->filename = saved; + force_error = 0; } /* Issue an error message at a current source line CL */ -static void +void parse_error_context VPROTO ((tree cl, char *msg, ...)) { #ifndef __STDC__ tree cl; char *msg; #endif - char buffer [4096]; va_list ap; VA_START (ap, msg); @@ -4902,11 +4883,8 @@ parse_error_context VPROTO ((tree cl, char *msg, ...)) cl = va_arg (ap, tree); msg = va_arg (ap, char *); #endif - vsprintf (buffer, msg, ap); - - force_error = 1; - issue_warning_error_from_context (cl, buffer); - force_error = 0; + issue_warning_error_from_context (cl, msg, ap); + va_end (ap); } /* Issue a warning at a current source line CL */ @@ -4918,7 +4896,6 @@ parse_warning_context VPROTO ((tree cl, char *msg, ...)) tree cl; char *msg; #endif - char buffer [4096]; va_list ap; VA_START (ap, msg); @@ -4926,11 +4903,11 @@ parse_warning_context VPROTO ((tree cl, char *msg, ...)) cl = va_arg (ap, tree); msg = va_arg (ap, char *); #endif - vsprintf (buffer, msg, ap); - force_error = do_warning = 1; - issue_warning_error_from_context (cl, buffer); - do_warning = force_error = 0; + do_warning = 1; + issue_warning_error_from_context (cl, msg, ap); + force_error = 0; + va_end (ap); } void @@ -7750,21 +7727,10 @@ static tree add_stmt_to_compound (existing, type, stmt) tree existing, type, stmt; { - tree node; - - if (existing && (TREE_CODE (existing) == COMPOUND_EXPR) - && TREE_OPERAND (existing, 1) == size_zero_node) - { - TREE_OPERAND (existing, 1) = stmt; - TREE_TYPE (existing) = type; - return existing; - } - else if (existing) - node = build (COMPOUND_EXPR, type, existing, stmt); + if (existing) + return build (COMPOUND_EXPR, type, existing, stmt); else - node = build (COMPOUND_EXPR, type, stmt, size_zero_node); - - return node; + return stmt; } /* Hold THIS for the scope of the current public method decl. */ @@ -8323,7 +8289,8 @@ resolve_field_access (qual_wfl, field_decl, field_type) type_found, DECL_NAME (decl)); if (field_ref == error_mark_node) return error_mark_node; - if (is_static && !static_final_found) + if (is_static && !static_final_found + && ! flag_emit_class_files) { field_ref = build_class_init (type_found, field_ref); /* If the static field was identified by an expression that @@ -8382,8 +8349,8 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found) if (complete_function_arguments (qual_wfl)) return 1; *where_found = - patch_method_invocation_stmt (qual_wfl, decl, type, - &is_static, NULL, from_super); + patch_method_invocation (qual_wfl, decl, type, + &is_static, NULL, from_super); if (*where_found == error_mark_node) return 1; *type_found = type = QUAL_DECL_TYPE (*where_found); @@ -8806,12 +8773,12 @@ maybe_access_field (decl, where, type) return decl; } -/* Build a method invocation statement, by patching PATCH. If non NULL +/* Build a method invocation, by patching PATCH. If non NULL and according to the situation, PRIMARY and WHERE may be used. IS_STATIC is set to 1 if the invoked function is static. */ static tree -patch_method_invocation_stmt (patch, primary, where, is_static, ret_decl, super) +patch_method_invocation (patch, primary, where, is_static, ret_decl, super) tree patch, primary, where; int *is_static; tree *ret_decl; @@ -9084,7 +9051,6 @@ patch_invoke (patch, method, args, from_super) { int im; tree dtable, func; - tree signature = build_java_signature (TREE_TYPE (method)); tree original_call, t, ta; /* Last step for args: convert build-in types. If we're dealing with @@ -9099,31 +9065,39 @@ patch_invoke (patch, method, args, from_super) TREE_TYPE (TREE_VALUE (ta)) != TREE_VALUE (t)) TREE_VALUE (ta) = convert (TREE_VALUE (t), TREE_VALUE (ta)); - switch ((im = invocation_mode (method, from_super))) + if (flag_emit_class_files) + func = method; + else { - case INVOKE_VIRTUAL: - dtable = invoke_build_dtable (0, args); - func = build_invokevirtual (dtable, method); - break; + tree signature = build_java_signature (TREE_TYPE (method)); + switch ((im = invocation_mode (method, from_super))) + { + case INVOKE_VIRTUAL: + dtable = invoke_build_dtable (0, args); + func = build_invokevirtual (dtable, method); + break; - case INVOKE_SUPER: - case INVOKE_STATIC: - func = build_known_method_ref (method, TREE_TYPE (method), - DECL_CONTEXT (method), signature, args); - break; + case INVOKE_SUPER: + case INVOKE_STATIC: + func = build_known_method_ref (method, TREE_TYPE (method), + DECL_CONTEXT (method), + signature, args); + break; - case INVOKE_INTERFACE: - dtable = invoke_build_dtable (1, args); - func = build_invokeinterface (dtable, DECL_NAME (method), signature); - break; + case INVOKE_INTERFACE: + dtable = invoke_build_dtable (1, args); + func = build_invokeinterface (dtable, DECL_NAME (method), signature); + break; - default: - fatal ("Unknown invocation mode `%d' - build_invoke", im); - return NULL_TREE; + default: + fatal ("Unknown invocation mode `%d' - build_invoke", im); + return NULL_TREE; + } + + /* Ensure self_type is initialized, (invokestatic). FIXME */ + func = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (method)), func); } - /* Ensure self_type is initialized, (invokestatic). FIXME */ - func = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (method)), func); TREE_TYPE (patch) = TREE_TYPE (TREE_TYPE (method)); TREE_OPERAND (patch, 0) = func; TREE_OPERAND (patch, 1) = args; @@ -9138,6 +9112,11 @@ patch_invoke (patch, method, args, from_super) { tree class = DECL_CONTEXT (method); tree c1, saved_new, size, new; + if (flag_emit_class_files) + { + TREE_TYPE (patch) = build_pointer_type (class); + return patch; + } if (!TYPE_SIZE (class)) safe_layout_class (class); size = size_in_bytes (class); @@ -9622,11 +9601,66 @@ java_complete_tree (node) IDENTIFIER_LOCAL_VALUE (DECL_NAME (cn)) = cn; INITIALIZED_P (cn) = 0; } - if (BLOCK_EXPR_BODY (node)) + if (BLOCK_EXPR_BODY (node) == NULL_TREE) + CAN_COMPLETE_NORMALLY (node) = 1; + else { - BLOCK_EXPR_BODY (node) = java_complete_tree (BLOCK_EXPR_BODY (node)); - if (BLOCK_EXPR_BODY (node) == error_mark_node) + tree stmt = BLOCK_EXPR_BODY (node); + tree *ptr; + int error_seen = 0; + if (TREE_CODE (stmt) == COMPOUND_EXPR) + { + /* Re-order from (((A; B); C); ...; Z) to (A; (B; (C ; (...; Z)))). + This makes it easier to scan the statements left-to-right + without using recursion (which might overflow the stack + if the block has many statements. */ + for (;;) + { + tree left = TREE_OPERAND (stmt, 0); + if (TREE_CODE (left) != COMPOUND_EXPR) + break; + TREE_OPERAND (stmt, 0) = TREE_OPERAND (left, 1); + TREE_OPERAND (left, 1) = stmt; + stmt = left; + } + BLOCK_EXPR_BODY (node) = stmt; + } + + /* Now do the actual complete, without deep recursion for long blocks. */ + ptr = &BLOCK_EXPR_BODY (node); + while (TREE_CODE (*ptr) == COMPOUND_EXPR) + { + tree cur = java_complete_tree (TREE_OPERAND (*ptr, 0)); + tree *next = &TREE_OPERAND (*ptr, 1); + TREE_OPERAND (*ptr, 0) = cur; + if (TREE_CODE (cur) == ERROR_MARK) + error_seen++; + else if (! CAN_COMPLETE_NORMALLY (cur)) + { + wfl_op2 = *next; + for (;;) + { + if (TREE_CODE (wfl_op2) == BLOCK) + wfl_op2 = BLOCK_EXPR_BODY (wfl_op2); + else if (TREE_CODE (wfl_op2) == COMPOUND_EXPR) + wfl_op2 = TREE_OPERAND (wfl_op2, 0); + else + break; + } + if (TREE_CODE (wfl_op2) != CASE_EXPR + && TREE_CODE (wfl_op2) != DEFAULT_EXPR) + { + SET_WFL_OPERATOR (wfl_operator, *ptr, wfl_op2); + parse_error_context (wfl_operator, "Unreachable statement"); + } + } + ptr = next; + } + *ptr = java_complete_tree (*ptr); + + if (TREE_CODE (*ptr) == ERROR_MARK || error_seen > 0) return error_mark_node; + CAN_COMPLETE_NORMALLY (node) = CAN_COMPLETE_NORMALLY (*ptr); } /* Turn local bindings to null */ for (cn = BLOCK_EXPR_DECLS (node); cn; cn = TREE_CHAIN (cn)) @@ -9640,6 +9674,7 @@ java_complete_tree (node) case THROW_EXPR: wfl_op1 = TREE_OPERAND (node, 0); COMPLETE_CHECK_OP_0 (node); + /* CAN_COMPLETE_NORMALLY (node) = 0; */ return patch_throw_statement (node, wfl_op1); case SYNCHRONIZED_EXPR: @@ -9657,6 +9692,8 @@ java_complete_tree (node) COMPLETE_CHECK_OP_1 (node); TREE_TYPE (node) = void_type_node; POP_LABELED_BLOCK (); + if (CAN_COMPLETE_NORMALLY (LABELED_BLOCK_BODY (node))) + CAN_COMPLETE_NORMALLY (node) = 1; return node; case EXIT_BLOCK_EXPR: @@ -9664,6 +9701,58 @@ java_complete_tree (node) the EXIT_BLOCK_EXPR which doesn't exist it Java */ return patch_bc_statement (node); + case CASE_EXPR: + cn = java_complete_tree (TREE_OPERAND (node, 0)); + if (cn == error_mark_node) + return cn; + + /* First, the case expression must be constant */ + cn = fold (cn); + + if (!TREE_CONSTANT (cn)) + { + EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); + parse_error_context (node, "Constant expression required"); + return error_mark_node; + } + + nn = ctxp->current_loop; + + /* It must be assignable to the type of the switch expression. */ + if (!try_builtin_assignconv (NULL_TREE, TREE_TYPE (TREE_OPERAND (nn, 0)), cn)) + { + EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); + parse_error_context + (wfl_operator, + "Incompatible type for case. Can't convert `%s' to `int'", + lang_printable_name (TREE_TYPE (cn), 0)); + return error_mark_node; + } + + cn = fold (convert (int_type_node, cn)); + + /* Multiple instance of a case label bearing the same + value is checked during code generation. The case + expression is allright so far. */ + TREE_OPERAND (node, 0) = cn; + CAN_COMPLETE_NORMALLY (node) = 1; + break; + + case DEFAULT_EXPR: + nn = ctxp->current_loop; + /* Only one default label is allowed per switch statement */ + if (SWITCH_HAS_DEFAULT (nn)) + { + EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); + parse_error_context (wfl_operator, + "Duplicate case label: `default'"); + return error_mark_node; + } + else + SWITCH_HAS_DEFAULT (nn) = 1; + CAN_COMPLETE_NORMALLY (node) = 1; + break; + case SWITCH_EXPR: case LOOP_EXPR: PUSH_LOOP (node); @@ -9685,7 +9774,11 @@ java_complete_tree (node) /* If we returned something different, that's because we inserted a label. Pop the label too. */ if (nn != node) - POP_LABELED_BLOCK (); + { + if (CAN_COMPLETE_NORMALLY (node)) + CAN_COMPLETE_NORMALLY (nn) = 1; + POP_LABELED_BLOCK (); + } POP_LOOP (); return nn; @@ -9720,24 +9813,38 @@ java_complete_tree (node) /* 3- Expression section */ case COMPOUND_EXPR: - TREE_OPERAND (node, 0) = java_complete_tree (TREE_OPERAND (node, 0)); + wfl_op2 = TREE_OPERAND (node, 1); + TREE_OPERAND (node, 0) = nn = java_complete_tree (TREE_OPERAND (node, 0)); + if (! CAN_COMPLETE_NORMALLY (nn) && TREE_CODE (nn) != ERROR_MARK) + { + SET_WFL_OPERATOR (wfl_operator, node, wfl_op2); + parse_error_context (wfl_operator, "Unreachable statement"); + } TREE_OPERAND (node, 1) = java_complete_tree (TREE_OPERAND (node, 1)); if (TREE_OPERAND (node, 1) == error_mark_node) return error_mark_node; TREE_TYPE (node) = TREE_TYPE (TREE_OPERAND (node, 1)); + CAN_COMPLETE_NORMALLY (node) + = CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1)); break; case RETURN_EXPR: + /* CAN_COMPLETE_NORMALLY (node) = 0; */ return patch_return (node); case EXPR_WITH_FILE_LOCATION: if (!EXPR_WFL_NODE (node) /* Or a PRIMARY flag ? */ || TREE_CODE (EXPR_WFL_NODE (node)) == IDENTIFIER_NODE) - return resolve_expression_name (node, NULL); + { + node = resolve_expression_name (node, NULL); + CAN_COMPLETE_NORMALLY (node) = 1; + } else { - EXPR_WFL_NODE (node) = java_complete_tree (EXPR_WFL_NODE (node)); + tree body = java_complete_tree (EXPR_WFL_NODE (node)); + EXPR_WFL_NODE (node) = body; TREE_SIDE_EFFECTS (node) = 1; + CAN_COMPLETE_NORMALLY (node) = CAN_COMPLETE_NORMALLY (body); if (EXPR_WFL_NODE (node) == error_mark_node) { /* Its important for the evaluation of assignment that @@ -9747,6 +9854,7 @@ java_complete_tree (node) } else TREE_TYPE (node) = TREE_TYPE (EXPR_WFL_NODE (node)); + } break; @@ -9774,10 +9882,12 @@ java_complete_tree (node) } /* They complete the array creation expression, if no errors were found. */ + CAN_COMPLETE_NORMALLY (node) = 1; return (flag ? error_mark_node : patch_newarray (node)); case NEW_CLASS_EXPR: case CALL_EXPR: + CAN_COMPLETE_NORMALLY (node) = 1; /* Complete function's argument(s) first */ if (complete_function_arguments (node)) return error_mark_node; @@ -9786,8 +9896,8 @@ java_complete_tree (node) tree decl, wfl = TREE_OPERAND (node, 0); int in_this = CALL_THIS_CONSTRUCTOR_P (node); - node = patch_method_invocation_stmt (node, NULL_TREE, - NULL_TREE, 0, &decl, 0); + node = patch_method_invocation (node, NULL_TREE, + NULL_TREE, 0, &decl, 0); if (node != error_mark_node) { check_thrown_exceptions (EXPR_WFL_LINECOL (node), decl); @@ -9827,14 +9937,6 @@ java_complete_tree (node) nn = java_complete_tree (TREE_OPERAND (node, 1)); if (nn == error_mark_node) { - /* It's hopeless, but we can further things on to discover - an error during the assignment. In any cases, the - assignment operation fails. */ - if (TREE_CODE (TREE_OPERAND (node, 1)) != EXPR_WITH_FILE_LOCATION - && TREE_TYPE (TREE_OPERAND (node, 1)) != error_mark_node - && TREE_TYPE (TREE_OPERAND (node, 1))) - patch_assignment (node, wfl_op1, wfl_op2); - /* Now, we still mark the lhs as initialized */ if (DECL_P (TREE_OPERAND (node, 0))) INITIALIZED_P (TREE_OPERAND (node, 0)) = 1; @@ -9848,7 +9950,9 @@ java_complete_tree (node) STRING_CST or a StringBuffer at this stage */ if ((nn = patch_string (TREE_OPERAND (node, 1)))) TREE_OPERAND (node, 1) = nn; - return patch_assignment (node, wfl_op1, wfl_op2); + node = patch_assignment (node, wfl_op1, wfl_op2); + CAN_COMPLETE_NORMALLY (node) = 1; + return node; case MULT_EXPR: case PLUS_EXPR: @@ -9874,6 +9978,7 @@ java_complete_tree (node) wfl_op1 = TREE_OPERAND (node, 0); wfl_op2 = TREE_OPERAND (node, 1); + CAN_COMPLETE_NORMALLY (node) = 1; /* Don't complete string nodes if dealing with the PLUS operand. */ if (TREE_CODE (node) != PLUS_EXPR || !JSTRING_P (wfl_op1)) { @@ -9906,6 +10011,7 @@ java_complete_tree (node) /* There are cases were wfl_op1 is a WFL. patch_unaryop knows how to handle those cases. */ wfl_op1 = TREE_OPERAND (node, 0); + CAN_COMPLETE_NORMALLY (node) = 1; TREE_OPERAND (node, 0) = java_complete_tree (wfl_op1); if (TREE_OPERAND (node, 0) == error_mark_node) return error_mark_node; @@ -9951,6 +10057,7 @@ java_complete_tree (node) return current_this; default: + CAN_COMPLETE_NORMALLY (node) = 1; /* Ok: may be we have a STRING_CST or a crafted `StringBuffer' and it's time to turn it into the appropriate String object */ @@ -10206,7 +10313,7 @@ build_assignment (op, op_location, lhs, rhs) /* Print an INTEGER_CST node in a static buffer, and return the buffer. */ -static char * +char * print_int_node (node) tree node; { @@ -10671,6 +10778,17 @@ valid_cast_to_p (source, dest) converted to type DEST through the methond invocation conversion process (5.3) */ +static tree +do_unary_numeric_promotion (arg) + tree arg; +{ + tree type = TREE_TYPE (arg); + if (TREE_CODE (type) == INTEGER_TYPE ? TYPE_PRECISION (type) < 32 + : TREE_CODE (type) == CHAR_TYPE) + arg = convert (int_type_node, arg); + return arg; +} + static int valid_method_invocation_conversion_p (dest, source) tree dest, source; @@ -10874,8 +10992,8 @@ patch_binop (node, wfl_op1, wfl_op2) /* Unary numeric promotion (5.6.1) is performed on each operand separatly */ - op1 = convert (promote_type (op1_type), op1); - op2 = convert (promote_type (op2_type), op2); + op1 = do_unary_numeric_promotion (op1); + op2 = do_unary_numeric_promotion (op2); /* The type of the shift expression is the type of the promoted type of the left-hand operand */ @@ -10890,7 +11008,7 @@ patch_binop (node, wfl_op1, wfl_op2) build_int_2 (0x3f, 0))); /* The >>> operator is a >> operating on unsigned quantities */ - if (code == URSHIFT_EXPR) + if (code == URSHIFT_EXPR && ! flag_emit_class_files) { op1 = convert (unsigned_type (prom_type), op1); TREE_SET_CODE (node, RSHIFT_EXPR); @@ -10924,6 +11042,11 @@ patch_binop (node, wfl_op1, wfl_op2) /* If the first operand is null, the result is always false */ if (op1 == null_pointer_node) return boolean_false_node; + else if (flag_emit_class_files) + { + TREE_OPERAND (node, 1) = op2_type; + return node; + } /* Otherwise we have to invoke instance of to figure it out */ else { @@ -11264,10 +11387,13 @@ patch_string_cst (node) tree node; { int location; - push_obstacks (&permanent_obstack, &permanent_obstack); - node = get_identifier (TREE_STRING_POINTER (node)); - location = alloc_name_constant (CONSTANT_String, node); - node = build_ref_from_constant_pool (location); + if (! flag_emit_class_files) + { + push_obstacks (&permanent_obstack, &permanent_obstack); + node = get_identifier (TREE_STRING_POINTER (node)); + location = alloc_name_constant (CONSTANT_String, node); + node = build_ref_from_constant_pool (location); + } TREE_TYPE (node) = promote_type (string_type_node); TREE_CONSTANT (node) = 1; return node; @@ -11420,8 +11546,8 @@ patch_unaryop (node, wfl_op) /* Unary numeric promotion is performed on operand */ else { - prom_type = promote_type (op_type); - op = convert (prom_type, op); + op = do_unary_numeric_promotion (op); + prom_type = TREE_TYPE (op); if (code == UNARY_PLUS_EXPR) node = op; } @@ -11437,8 +11563,8 @@ patch_unaryop (node, wfl_op) } else { - prom_type = promote_type (op_type); - op = convert (prom_type, op); + op = do_unary_numeric_promotion (op); + prom_type = TREE_TYPE (op); } break; @@ -11458,22 +11584,11 @@ patch_unaryop (node, wfl_op) case CONVERT_EXPR: value = patch_cast (node, wfl_operator); if (value == error_mark_node) - { - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - else - node = value; + return value; + node = value; break; } - /* Check variable initialization */ - if (not_initialized_as_it_should_p (op)) - { - ERROR_VARIABLE_NOT_INITIALIZED (wfl_op, DECL_NAME (op)); - INITIALIZED_P (op) = 1; - } - if (error_found) return error_mark_node; /* In the case of UNARY_PLUS_EXPR, we replaced NODE by a new one */ @@ -11557,7 +11672,16 @@ patch_cast (node, wfl_operator) conversion (5.2) */ if (valid_ref_assignconv_cast_p (op_type, cast_type, 0)) - return node; + { + TREE_SET_CODE (node, NOP_EXPR); + return node; + } + + if (flag_emit_class_files) + { + TREE_SET_CODE (node, CONVERT_EXPR); + return node; + } /* The cast requires a run-time check */ return build (CALL_EXPR, promote_type (cast_type), @@ -11608,17 +11732,10 @@ patch_array_ref (node, wfl_array, wfl_index) tree array_type = TREE_TYPE (array); tree index = TREE_OPERAND (node, 1); tree index_type = TREE_TYPE (index); - tree promoted_index_type; int error_found = 0; EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - if (not_initialized_as_it_should_p (array)) - { - ERROR_VARIABLE_NOT_INITIALIZED (wfl_array, DECL_NAME (array)); - INITIALIZED_P (array) = 1; - } - if (TREE_CODE (array_type) == POINTER_TYPE) array_type = TREE_TYPE (array_type); @@ -11634,8 +11751,8 @@ patch_array_ref (node, wfl_array, wfl_index) /* The array index underdoes unary numeric promotion. The promoted type must be int */ - promoted_index_type = promote_type (index_type); - if (promoted_index_type != int_type_node) + index = do_unary_numeric_promotion (index); + if (TREE_TYPE (index) != int_type_node) { int could_cast = valid_cast_to_p (index_type, int_type_node); parse_error_context @@ -11648,26 +11765,15 @@ patch_array_ref (node, wfl_array, wfl_index) error_found = 1; } - /* Now if the index is a var/parm decl, check on its initialization */ - if (not_initialized_as_it_should_p (index)) - { - ERROR_VARIABLE_NOT_INITIALIZED (wfl_index, DECL_NAME (index)); - INITIALIZED_P (index) = 1; - } - if (error_found) return error_mark_node; - index = convert (promoted_index_type, index); array_type = TYPE_ARRAY_ELEMENT (array_type); - if (TREE_CODE (array_type) == RECORD_TYPE - && !JPRIMITIVE_TYPE_P (TREE_TYPE (array_type))) - array_type = promote_type (array_type); if (flag_emit_class_files) { - TREE_OPERAND (node, 0)= array; - TREE_OPERAND (node, 1)= index; + TREE_OPERAND (node, 0) = array; + TREE_OPERAND (node, 1) = index; } else node = build_java_arrayaccess (array, array_type, index); @@ -11699,7 +11805,6 @@ patch_newarray (node) int error_found = 0; int ndims = 0; int xdims = TREE_INT_CST_LOW (TREE_OPERAND (node, 2)); - int total_dims; /* Dimension types are verified. It's better for the types to be verified in order. */ @@ -11719,7 +11824,7 @@ patch_newarray (node) promoted type must be int. */ else { - dim = convert (promote_type (TREE_TYPE (dim)), dim); + dim = do_unary_numeric_promotion (dim); if (TREE_TYPE (dim) != int_type_node) dim_error = 1; } @@ -11737,15 +11842,6 @@ patch_newarray (node) error_found = 1; } - /* Check for uninitialized variables */ - if (not_initialized_as_it_should_p (dim)) - { - ERROR_VARIABLE_NOT_INITIALIZED (TREE_PURPOSE (cdim), - DECL_NAME (dim)); - INITIALIZED_P (dim) = 1; - error_found = 1; - } - TREE_PURPOSE (cdim) = NULL_TREE; } @@ -11761,12 +11857,30 @@ patch_newarray (node) return error_mark_node; } + /* Set array_type to the actual (promoted) array type of the result. */ + if (TREE_CODE (type) == RECORD_TYPE) + type = build_pointer_type (type); + while (--xdims >= 0) + { + type = promote_type (build_java_array_type (type, -1)); + } + dims = nreverse (dims); + array_type = type; + for (cdim = dims; cdim; cdim = TREE_CHAIN (cdim)) + { + type = array_type; + array_type = build_java_array_type (type, + TREE_CODE (cdim) == INTEGER_CST ? + TREE_INT_CST_LOW (cdim) : -1); + array_type = promote_type (array_type); + } + dims = nreverse (dims); + /* The node is transformed into a function call. Things are done differently according to the number of dimensions. If the number of dimension is equal to 1, then the nature of the base type (primitive or not) matters. */ - total_dims = xdims + ndims; - if (total_dims == 1) + if (ndims == 1) { if (JPRIMITIVE_TYPE_P (type)) { @@ -11792,28 +11906,16 @@ patch_newarray (node) return build_newarray (type_code, TREE_VALUE (dims)); } else - return build_anewarray (type, TREE_VALUE (dims)); + return build_anewarray (TREE_TYPE (type), TREE_VALUE (dims)); } - /* Add extra dimensions as unknown dimensions */ - while (xdims--) - dims = - chainon (dims, build_tree_list (NULL_TREE, integer_negative_one_node)); - dims = chainon (dims, build_tree_list (NULL_TREE, integer_zero_node)); - /* Can't reuse what's already written in expr.c because it uses the JVM stack representation. Provide a build_multianewarray. FIXME */ - array_type = type; - for (cdim = TREE_CHAIN (dims); cdim; cdim = TREE_CHAIN (cdim)) - array_type = build_java_array_type (promote_type (array_type), - TREE_CODE (cdim) == INTEGER_CST ? - TREE_INT_CST_LOW (cdim) : -1); - return build (CALL_EXPR, - promote_type (array_type), + return build (CALL_EXPR, array_type, build_address_of (soft_multianewarray_node), - tree_cons (NULL_TREE, build_class_ref (array_type), + tree_cons (NULL_TREE, build_class_ref (TREE_TYPE (array_type)), tree_cons (NULL_TREE, - build_int_2 (total_dims, 0), dims )), + build_int_2 (ndims, 0), dims )), NULL_TREE); } @@ -11962,6 +12064,9 @@ patch_if_else_statement (node) TREE_TYPE (node) = void_type_node; TREE_SIDE_EFFECTS (node) = 1; + CAN_COMPLETE_NORMALLY (node) + = CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 0)) + | CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1)); return node; } @@ -12275,9 +12380,11 @@ patch_bc_statement (node) /* Everything looks good. We can fix the `continue' jump to go at the place in the loop were the continue is. The continue is the current labeled block, by construction. */ - EXIT_BLOCK_LABELED_BLOCK (node) = ctxp->current_labeled_block; + EXIT_BLOCK_LABELED_BLOCK (node) = bc_label = ctxp->current_labeled_block; } + CAN_COMPLETE_NORMALLY (bc_label) = 1; + /* Our break/continue don't return values. */ TREE_TYPE (node) = void_type_node; /* Encapsulate the break within a compound statement so that it's @@ -12313,6 +12420,15 @@ patch_exit_expr (node) return */ TREE_OPERAND (node, 0) = fold (build1 (TRUTH_NOT_EXPR, boolean_type_node, expression)); + + if (! integer_zerop (TREE_OPERAND (node, 0)) + && ctxp->current_loop != NULL_TREE + && TREE_CODE (ctxp->current_loop) == LOOP_EXPR) + CAN_COMPLETE_NORMALLY (ctxp->current_loop) = 1; + if (! integer_onep (TREE_OPERAND (node, 0))) + CAN_COMPLETE_NORMALLY (node) = 1; + + TREE_TYPE (node) = void_type_node; return node; } @@ -12323,9 +12439,7 @@ static tree patch_switch_statement (node) tree node; { - int error_found = 0; tree se = TREE_OPERAND (node, 0), se_type, sb; - tree default_found = NULL_TREE; /* Complete the switch expression */ se = TREE_OPERAND (node, 0) = java_complete_tree (se); @@ -12343,150 +12457,21 @@ patch_switch_statement (node) return error_mark_node; } - /* Process the switch body. We should have a list of TREE_LIST. The - PURPOSE of each node should be a list of case values, VALUE - should be the associated block. We try to process all cases and - defaults before returning, possibly finding errors. */ - TREE_OPERAND (node, 1) = nreverse (TREE_OPERAND (node, 1)); - for (sb = TREE_OPERAND (node, 1); sb; sb = TREE_CHAIN (sb)) - { - tree label; - - /* If we don't have a TREE_LIST here, we have a statement inside - the switch that isn't tied to a label. This error is caught - by the parser and we don't have to report it here. */ - - TREE_PURPOSE (sb) = nreverse (TREE_PURPOSE (sb)); - for (label = TREE_PURPOSE (sb); label; label = TREE_CHAIN (label)) - { - tree case_expr; - - /* Verification of the default label */ - if (TREE_CODE (label) == DEFAULT_EXPR) - { - /* Only one default label is allowed per switch - statement */ - if (default_found) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (label); - parse_error_context (wfl_operator, - "Duplicate case label: `default'"); - error_found = 1; - } - else - default_found = label; - continue; - } - /* Verification of case labels */ - else - { - case_expr = java_complete_tree (TREE_OPERAND (label, 0)); - if (case_expr == error_mark_node) - continue; - - /* First, the case expression must be constant */ - case_expr = fold (case_expr); - if (!TREE_CONSTANT (case_expr)) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (label); - parse_error_context (label, "Constant expression required"); - error_found = 1; - break; - } - - /* It must be assignable to the type of the switch - expression. */ - if (!try_builtin_assignconv (NULL_TREE, se_type, case_expr)) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (label); - parse_error_context - (wfl_operator, - "Incompatible type for case. Can't convert `%s' to `int'", - lang_printable_name (TREE_TYPE (case_expr), 0)); - error_found = 1; - break; - } - - /* Multiple instance of a case label bearing the same - value is checked during code generation. The case - expression is allright so far. */ - TREE_OPERAND (label, 0) = case_expr; - } - } - - /* First TREE_VALUE should be the block tied to this list of - cases. Check that this block exists and the walk it */ - if (TREE_VALUE (sb)) - { - TREE_VALUE (sb) = java_complete_tree (TREE_VALUE (sb)); - if (TREE_VALUE (sb) == error_mark_node) - error_found = 1; - } - } + TREE_OPERAND (node, 1) = java_complete_tree (TREE_OPERAND (node, 1)); /* Ready to return */ - if (error_found) + if (TREE_CODE (TREE_OPERAND (node, 1)) == ERROR_MARK) { TREE_TYPE (node) = error_mark_node; return error_mark_node; } TREE_TYPE (node) = void_type_node; TREE_SIDE_EFFECTS (node) = 1; + CAN_COMPLETE_NORMALLY (node) + = CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1)) || ! SWITCH_HAS_DEFAULT (node); return node; } -/* Do the expansion of a Java switch. With Gcc, switches are front-end - dependant things, but they rely on gcc routines. This function is - placed here because it uses things defined locally in parse.y. */ - -static tree case_identity (t, v) - tree t __attribute__ ((__unused__)); - tree v; -{ - return v; -} - -void -java_expand_switch (exp) - tree exp; -{ - tree sb; - expand_start_case (0, TREE_OPERAND (exp, 0), int_type_node, "switch"); - - for (sb = TREE_OPERAND (exp, 1); sb; sb = TREE_CHAIN (sb)) - { - /* We have a list of TREE_LIST. PURPOSE is the case value, and - when it exists, VALUE is the associated block */ - - /* The first CASE element should contain the associated block, - if any. All other should be case statements related to the - same block */ - tree label; - for (label = TREE_PURPOSE (sb); label; label = TREE_CHAIN (label)) - { - tree label_decl = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); - if (TREE_CODE (label) == CASE_EXPR) - { - tree duplicate; - if (pushcase (TREE_OPERAND (label, 0), case_identity, - label_decl, &duplicate) == 2) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (label); - parse_error_context - (wfl_operator, "Duplicate case label: `%s'", - print_int_node (TREE_OPERAND (label, 0))); - } - } - else - pushcase (NULL_TREE, 0, label_decl, NULL); - } - /* Expand the associated block, if any */ - if (TREE_VALUE (sb)) - expand_expr_stmt (TREE_VALUE (sb)); - } - expand_end_case (TREE_OPERAND (exp, 0)); -} - /* 14.18 The try statement */ /* Wrap BLOCK around a LABELED_BLOCK, set DECL to the newly generated @@ -12525,7 +12510,7 @@ build_try_statement (location, try_block, catches, finally) { tree node, rff; - if (finally) + if (finally && ! flag_emit_class_files) { /* This block defines a scope for the entire try[-catch]-finally sequence. It hold a local variable used to return from the @@ -12592,7 +12577,8 @@ build_try_statement (location, try_block, catches, finally) /* If we have a finally, surround this whole thing by a block where the RFF local variable is defined. */ - return (finally ? build_expr_block (node, rff) : node); + return (finally && ! flag_emit_class_files ? build_expr_block (node, rff) + : node); } /* Get the catch clause block from an element of the catch clause @@ -12699,13 +12685,6 @@ patch_try_statement (node) break; } } - if (unreachable) - continue; - - /* Things to do here: the exception must be thrown */ - - /* Link this type to the caught type list */ - caught_type_list = tree_cons (NULL_TREE, carg_type, caught_type_list); /* Complete the catch clause block */ catch_block = java_complete_tree (TREE_OPERAND (current, 0)); @@ -12714,21 +12693,36 @@ patch_try_statement (node) error_found = 1; continue; } + if (CAN_COMPLETE_NORMALLY (catch_block)) + CAN_COMPLETE_NORMALLY (node) = 1; TREE_OPERAND (current, 0) = catch_block; + + if (unreachable) + continue; + + /* Things to do here: the exception must be thrown */ + + /* Link this type to the caught type list */ + caught_type_list = tree_cons (NULL_TREE, carg_type, caught_type_list); + } PUSH_EXCEPTIONS (caught_type_list); if ((try = java_complete_tree (try)) == error_mark_node) error_found = 1; + if (CAN_COMPLETE_NORMALLY (try)) + CAN_COMPLETE_NORMALLY (node) = 1; POP_EXCEPTIONS (); /* Process finally */ if (finally) { - FINALLY_EXPR_BLOCK (finally) = - java_complete_tree (FINALLY_EXPR_BLOCK (finally)); - if (FINALLY_EXPR_BLOCK (finally) == error_mark_node) + current = java_complete_tree (FINALLY_EXPR_BLOCK (finally)); + FINALLY_EXPR_BLOCK (finally) = current; + if (current == error_mark_node) error_found = 1; + if (! CAN_COMPLETE_NORMALLY (current)) + CAN_COMPLETE_NORMALLY (node) = 0; } /* Verification ends here */ @@ -12875,7 +12869,8 @@ patch_throw_statement (node, wfl_op1) unchecked exception or its value is always caught by some try statement that contains it. FIXME, static initializer. */ - BUILD_THROW (node, expr); + if (! flag_emit_class_files) + BUILD_THROW (node, expr); return node; } @@ -13046,5 +13041,6 @@ patch_conditional_expr (node, wfl_cond, wfl_op1) TREE_TYPE (node) = resulting_type; TREE_SET_CODE (node, COND_EXPR); + CAN_COMPLETE_NORMALLY (node) = 1; return node; }