From 9b842bfb0006f4647553446440d08c389558dcd2 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Mon, 27 Aug 2018 17:40:22 +0800 Subject: [PATCH 01/13] update: support NullSafeNotEqual --- ast.go | 1 + sql.go | 3482 +++++++++++++++++++++++++++--------------------------- sql.y | 6 +- token.go | 2 +- 4 files changed, 1760 insertions(+), 1731 deletions(-) diff --git a/ast.go b/ast.go index c3a0d08..06330b6 100644 --- a/ast.go +++ b/ast.go @@ -2105,6 +2105,7 @@ const ( GreaterEqualStr = ">=" NotEqualStr = "!=" NullSafeEqualStr = "<=>" + NullSafeNotEqualStr = "<>" InStr = "in" NotInStr = "not in" LikeStr = "like" diff --git a/sql.go b/sql.go index 4c8f265..a938554 100644 --- a/sql.go +++ b/sql.go @@ -179,155 +179,156 @@ const IS = 57422 const LIKE = 57423 const REGEXP = 57424 const IN = 57425 -const SHIFT_LEFT = 57426 -const SHIFT_RIGHT = 57427 -const DIV = 57428 -const MOD = 57429 -const UNARY = 57430 -const COLLATE = 57431 -const BINARY = 57432 -const UNDERSCORE_BINARY = 57433 -const INTERVAL = 57434 -const JSON_EXTRACT_OP = 57435 -const JSON_UNQUOTE_EXTRACT_OP = 57436 -const CREATE = 57437 -const ALTER = 57438 -const DROP = 57439 -const RENAME = 57440 -const ANALYZE = 57441 -const ADD = 57442 -const SCHEMA = 57443 -const TABLE = 57444 -const INDEX = 57445 -const VIEW = 57446 -const TO = 57447 -const IGNORE = 57448 -const IF = 57449 -const UNIQUE = 57450 -const PRIMARY = 57451 -const COLUMN = 57452 -const CONSTRAINT = 57453 -const SPATIAL = 57454 -const FULLTEXT = 57455 -const FOREIGN = 57456 -const KEY_BLOCK_SIZE = 57457 -const SHOW = 57458 -const DESCRIBE = 57459 -const EXPLAIN = 57460 -const DATE = 57461 -const ESCAPE = 57462 -const REPAIR = 57463 -const OPTIMIZE = 57464 -const TRUNCATE = 57465 -const MAXVALUE = 57466 -const PARTITION = 57467 -const REORGANIZE = 57468 -const LESS = 57469 -const THAN = 57470 -const PROCEDURE = 57471 -const TRIGGER = 57472 -const VINDEX = 57473 -const VINDEXES = 57474 -const STATUS = 57475 -const VARIABLES = 57476 -const BEGIN = 57477 -const START = 57478 -const TRANSACTION = 57479 -const COMMIT = 57480 -const ROLLBACK = 57481 -const BIT = 57482 -const TINYINT = 57483 -const SMALLINT = 57484 -const MEDIUMINT = 57485 -const INT = 57486 -const INTEGER = 57487 -const BIGINT = 57488 -const INTNUM = 57489 -const REAL = 57490 -const DOUBLE = 57491 -const FLOAT_TYPE = 57492 -const DECIMAL = 57493 -const NUMERIC = 57494 -const TIME = 57495 -const TIMESTAMP = 57496 -const DATETIME = 57497 -const YEAR = 57498 -const CHAR = 57499 -const VARCHAR = 57500 -const BOOL = 57501 -const CHARACTER = 57502 -const VARBINARY = 57503 -const NCHAR = 57504 -const TEXT = 57505 -const TINYTEXT = 57506 -const MEDIUMTEXT = 57507 -const LONGTEXT = 57508 -const BLOB = 57509 -const TINYBLOB = 57510 -const MEDIUMBLOB = 57511 -const LONGBLOB = 57512 -const JSON = 57513 -const ENUM = 57514 -const GEOMETRY = 57515 -const POINT = 57516 -const LINESTRING = 57517 -const POLYGON = 57518 -const GEOMETRYCOLLECTION = 57519 -const MULTIPOINT = 57520 -const MULTILINESTRING = 57521 -const MULTIPOLYGON = 57522 -const NULLX = 57523 -const AUTO_INCREMENT = 57524 -const APPROXNUM = 57525 -const SIGNED = 57526 -const UNSIGNED = 57527 -const ZEROFILL = 57528 -const DATABASES = 57529 -const TABLES = 57530 -const VITESS_KEYSPACES = 57531 -const VITESS_SHARDS = 57532 -const VITESS_TABLETS = 57533 -const VSCHEMA_TABLES = 57534 -const EXTENDED = 57535 -const FULL = 57536 -const PROCESSLIST = 57537 -const NAMES = 57538 -const CHARSET = 57539 -const GLOBAL = 57540 -const SESSION = 57541 -const ISOLATION = 57542 -const LEVEL = 57543 -const READ = 57544 -const WRITE = 57545 -const ONLY = 57546 -const REPEATABLE = 57547 -const COMMITTED = 57548 -const UNCOMMITTED = 57549 -const SERIALIZABLE = 57550 -const CURRENT_TIMESTAMP = 57551 -const DATABASE = 57552 -const CURRENT_DATE = 57553 -const CURRENT_TIME = 57554 -const LOCALTIME = 57555 -const LOCALTIMESTAMP = 57556 -const UTC_DATE = 57557 -const UTC_TIME = 57558 -const UTC_TIMESTAMP = 57559 -const REPLACE = 57560 -const CONVERT = 57561 -const CAST = 57562 -const SUBSTR = 57563 -const SUBSTRING = 57564 -const GROUP_CONCAT = 57565 -const SEPARATOR = 57566 -const MATCH = 57567 -const AGAINST = 57568 -const BOOLEAN = 57569 -const LANGUAGE = 57570 -const WITH = 57571 -const QUERY = 57572 -const EXPANSION = 57573 -const UNUSED = 57574 +const NULL_SAFE_NOTEQUAL = 57426 +const SHIFT_LEFT = 57427 +const SHIFT_RIGHT = 57428 +const DIV = 57429 +const MOD = 57430 +const UNARY = 57431 +const COLLATE = 57432 +const BINARY = 57433 +const UNDERSCORE_BINARY = 57434 +const INTERVAL = 57435 +const JSON_EXTRACT_OP = 57436 +const JSON_UNQUOTE_EXTRACT_OP = 57437 +const CREATE = 57438 +const ALTER = 57439 +const DROP = 57440 +const RENAME = 57441 +const ANALYZE = 57442 +const ADD = 57443 +const SCHEMA = 57444 +const TABLE = 57445 +const INDEX = 57446 +const VIEW = 57447 +const TO = 57448 +const IGNORE = 57449 +const IF = 57450 +const UNIQUE = 57451 +const PRIMARY = 57452 +const COLUMN = 57453 +const CONSTRAINT = 57454 +const SPATIAL = 57455 +const FULLTEXT = 57456 +const FOREIGN = 57457 +const KEY_BLOCK_SIZE = 57458 +const SHOW = 57459 +const DESCRIBE = 57460 +const EXPLAIN = 57461 +const DATE = 57462 +const ESCAPE = 57463 +const REPAIR = 57464 +const OPTIMIZE = 57465 +const TRUNCATE = 57466 +const MAXVALUE = 57467 +const PARTITION = 57468 +const REORGANIZE = 57469 +const LESS = 57470 +const THAN = 57471 +const PROCEDURE = 57472 +const TRIGGER = 57473 +const VINDEX = 57474 +const VINDEXES = 57475 +const STATUS = 57476 +const VARIABLES = 57477 +const BEGIN = 57478 +const START = 57479 +const TRANSACTION = 57480 +const COMMIT = 57481 +const ROLLBACK = 57482 +const BIT = 57483 +const TINYINT = 57484 +const SMALLINT = 57485 +const MEDIUMINT = 57486 +const INT = 57487 +const INTEGER = 57488 +const BIGINT = 57489 +const INTNUM = 57490 +const REAL = 57491 +const DOUBLE = 57492 +const FLOAT_TYPE = 57493 +const DECIMAL = 57494 +const NUMERIC = 57495 +const TIME = 57496 +const TIMESTAMP = 57497 +const DATETIME = 57498 +const YEAR = 57499 +const CHAR = 57500 +const VARCHAR = 57501 +const BOOL = 57502 +const CHARACTER = 57503 +const VARBINARY = 57504 +const NCHAR = 57505 +const TEXT = 57506 +const TINYTEXT = 57507 +const MEDIUMTEXT = 57508 +const LONGTEXT = 57509 +const BLOB = 57510 +const TINYBLOB = 57511 +const MEDIUMBLOB = 57512 +const LONGBLOB = 57513 +const JSON = 57514 +const ENUM = 57515 +const GEOMETRY = 57516 +const POINT = 57517 +const LINESTRING = 57518 +const POLYGON = 57519 +const GEOMETRYCOLLECTION = 57520 +const MULTIPOINT = 57521 +const MULTILINESTRING = 57522 +const MULTIPOLYGON = 57523 +const NULLX = 57524 +const AUTO_INCREMENT = 57525 +const APPROXNUM = 57526 +const SIGNED = 57527 +const UNSIGNED = 57528 +const ZEROFILL = 57529 +const DATABASES = 57530 +const TABLES = 57531 +const VITESS_KEYSPACES = 57532 +const VITESS_SHARDS = 57533 +const VITESS_TABLETS = 57534 +const VSCHEMA_TABLES = 57535 +const EXTENDED = 57536 +const FULL = 57537 +const PROCESSLIST = 57538 +const NAMES = 57539 +const CHARSET = 57540 +const GLOBAL = 57541 +const SESSION = 57542 +const ISOLATION = 57543 +const LEVEL = 57544 +const READ = 57545 +const WRITE = 57546 +const ONLY = 57547 +const REPEATABLE = 57548 +const COMMITTED = 57549 +const UNCOMMITTED = 57550 +const SERIALIZABLE = 57551 +const CURRENT_TIMESTAMP = 57552 +const DATABASE = 57553 +const CURRENT_DATE = 57554 +const CURRENT_TIME = 57555 +const LOCALTIME = 57556 +const LOCALTIMESTAMP = 57557 +const UTC_DATE = 57558 +const UTC_TIME = 57559 +const UTC_TIMESTAMP = 57560 +const REPLACE = 57561 +const CONVERT = 57562 +const CAST = 57563 +const SUBSTR = 57564 +const SUBSTRING = 57565 +const GROUP_CONCAT = 57566 +const SEPARATOR = 57567 +const MATCH = 57568 +const AGAINST = 57569 +const BOOLEAN = 57570 +const LANGUAGE = 57571 +const WITH = 57572 +const QUERY = 57573 +const EXPANSION = 57574 +const UNUSED = 57575 var yyToknames = [...]string{ "$end", @@ -420,6 +421,7 @@ var yyToknames = [...]string{ "LIKE", "REGEXP", "IN", + "NULL_SAFE_NOTEQUAL", "'|'", "'&'", "SHIFT_LEFT", @@ -596,328 +598,340 @@ var yyExca = [...]int{ 5, 27, -2, 4, -1, 36, - 150, 263, 151, 263, + 152, 263, -2, 253, -1, 238, - 109, 587, - -2, 583, - -1, 239, - 109, 588, + 110, 588, -2, 584, + -1, 239, + 110, 589, + -2, 585, -1, 308, - 80, 746, + 80, 747, -2, 58, -1, 309, - 80, 707, + 80, 708, -2, 59, -1, 314, - 80, 691, - -2, 549, + 80, 692, + -2, 550, -1, 316, - 80, 728, - -2, 551, - -1, 575, + 80, 729, + -2, 552, + -1, 576, 52, 41, 54, 41, -2, 43, - -1, 708, - 109, 590, - -2, 586, - -1, 912, + -1, 709, + 110, 591, + -2, 587, + -1, 913, 5, 28, - -2, 395, - -1, 937, + -2, 396, + -1, 938, 5, 27, - -2, 524, - -1, 1161, - 5, 28, -2, 525, - -1, 1205, - 5, 27, - -2, 527, - -1, 1267, + -1, 1162, 5, 28, + -2, 526, + -1, 1206, + 5, 27, -2, 528, + -1, 1268, + 5, 28, + -2, 529, } const yyPrivate = 57344 -const yyLast = 10949 +const yyLast = 11104 var yyAct = [...]int{ - 269, 47, 770, 854, 1258, 522, 646, 1069, 1216, 1097, - 810, 1070, 268, 521, 3, 243, 1167, 834, 998, 788, - 806, 217, 569, 1066, 809, 53, 848, 771, 956, 1043, - 743, 567, 313, 904, 989, 945, 211, 410, 585, 710, - 455, 940, 733, 1001, 820, 740, 461, 584, 47, 844, - 307, 556, 571, 767, 294, 759, 222, 467, 475, 886, - 241, 216, 299, 226, 52, 304, 1287, 1277, 1285, 1265, - 302, 1283, 855, 442, 1276, 1061, 1155, 414, 435, 1225, - 212, 213, 214, 215, 295, 871, 1103, 1104, 1105, 1091, - 230, 1092, 1093, 293, 1108, 1106, 586, 1264, 587, 870, - 181, 177, 178, 179, 57, 536, 1240, 488, 487, 497, - 498, 490, 491, 492, 493, 494, 495, 496, 489, 964, - 801, 499, 963, 802, 803, 965, 875, 245, 450, 59, - 60, 61, 62, 63, 980, 869, 827, 310, 675, 1179, - 423, 437, 1194, 439, 835, 676, 1144, 1142, 210, 1284, - 232, 446, 447, 1282, 1259, 1022, 768, 424, 417, 1217, - 1044, 1223, 174, 175, 175, 822, 654, 239, 436, 438, - 420, 645, 1219, 822, 789, 791, 955, 954, 953, 412, - 189, 176, 1245, 866, 863, 864, 1164, 862, 1030, 298, - 1046, 511, 512, 974, 441, 441, 441, 441, 76, 441, - 920, 1019, 186, 898, 682, 186, 441, 1021, 479, 180, - 430, 1112, 873, 876, 489, 807, 822, 499, 499, 881, - 679, 1026, 1048, 47, 1052, 742, 1047, 472, 1045, 186, - 186, 76, 1009, 1050, 474, 186, 464, 76, 508, 1218, - 1250, 510, 1049, 474, 411, 1122, 463, 868, 790, 434, - 473, 472, 943, 588, 1107, 1051, 1053, 821, 1224, 1222, - 1007, 1113, 1241, 835, 828, 821, 1063, 474, 520, 867, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 760, - 535, 537, 537, 537, 537, 537, 537, 537, 537, 545, - 546, 547, 548, 1263, 760, 649, 927, 1025, 882, 1020, - 568, 1018, 685, 686, 1253, 978, 872, 469, 821, 416, - 1009, 717, 236, 819, 817, 1269, 1185, 818, 1184, 874, - 426, 427, 428, 453, 1008, 715, 716, 714, 465, 1013, - 1010, 1003, 1004, 1011, 1006, 1005, 993, 50, 1007, 992, - 824, 916, 186, 915, 186, 825, 1012, 713, 473, 472, - 186, 981, 1015, 700, 702, 703, 917, 186, 701, 473, - 472, 76, 76, 76, 76, 474, 76, 173, 509, 458, - 462, 582, 576, 76, 1270, 1251, 474, 473, 472, 310, - 1201, 418, 419, 734, 1065, 735, 480, 538, 539, 540, - 541, 542, 543, 544, 474, 895, 896, 897, 1182, 1130, - 76, 990, 1008, 1248, 473, 472, 1100, 1013, 1010, 1003, - 1004, 1011, 1006, 1005, 441, 1273, 454, 1209, 1256, 454, - 523, 474, 441, 1099, 1012, 1209, 454, 298, 292, 534, - 1002, 1209, 1210, 441, 441, 441, 441, 441, 441, 441, - 441, 1176, 1175, 1088, 454, 1163, 454, 441, 441, 487, + 269, 47, 855, 1259, 647, 771, 523, 1217, 243, 1070, + 1168, 268, 807, 789, 1071, 1098, 570, 999, 1067, 849, + 811, 217, 522, 3, 829, 810, 941, 1044, 53, 211, + 772, 957, 744, 568, 734, 741, 1002, 990, 905, 586, + 946, 760, 711, 455, 461, 845, 410, 572, 47, 313, + 585, 557, 295, 307, 241, 821, 222, 887, 835, 467, + 768, 475, 299, 304, 226, 302, 52, 1288, 1278, 1286, + 216, 1266, 1284, 212, 213, 214, 215, 856, 1277, 872, + 1062, 1156, 1265, 414, 294, 435, 1226, 1093, 1094, 803, + 804, 1092, 230, 871, 537, 293, 1241, 802, 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, - 186, 1229, 499, 663, 1119, 1118, 267, 186, 186, 186, - 1115, 1116, 1228, 76, 1115, 1114, 1151, 454, 1109, 76, - 910, 454, 50, 975, 966, 687, 857, 553, 454, 941, - 661, 745, 454, 21, 736, 711, 660, 74, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 659, 650, - 499, 47, 708, 488, 487, 497, 498, 490, 491, 492, - 493, 494, 495, 496, 489, 524, 648, 499, 643, 689, - 312, 595, 594, 942, 432, 704, 415, 425, 747, 706, - 411, 1067, 579, 681, 941, 752, 755, 54, 745, 221, - 23, 761, 1159, 707, 299, 299, 299, 299, 299, 513, - 514, 515, 516, 517, 518, 519, 23, 553, 772, 568, - 1121, 792, 737, 738, 935, 553, 942, 936, 299, 680, - 1117, 76, 747, 580, 967, 578, 910, 186, 186, 76, - 757, 186, 764, 1204, 186, 473, 472, 50, 186, 23, - 76, 76, 76, 76, 76, 76, 76, 76, 773, 796, - 712, 776, 474, 50, 76, 76, 785, 552, 941, 186, - 795, 1033, 578, 697, 698, 793, 836, 837, 838, 794, - 922, 799, 798, 814, 76, 800, 910, 919, 186, 774, - 775, 553, 777, 581, 76, 683, 50, 1189, 829, 441, - 849, 441, 1082, 223, 970, 310, 946, 947, 647, 441, - 312, 312, 312, 312, 910, 312, 845, 840, 811, 850, - 839, 65, 312, 921, 852, 523, 1102, 952, 750, 751, - 918, 298, 298, 298, 298, 298, 1067, 76, 994, 846, - 847, 558, 561, 562, 563, 559, 298, 560, 564, 477, - 50, 946, 947, 949, 657, 298, 451, 695, 899, 492, - 493, 494, 495, 496, 489, 708, 951, 499, 186, 779, - 778, 186, 186, 186, 186, 186, 782, 711, 888, 780, - 887, 783, 883, 186, 781, 784, 186, 562, 563, 805, - 186, 227, 228, 1281, 1275, 186, 186, 1029, 1280, 76, - 468, 748, 749, 893, 900, 892, 707, 756, 456, 1157, - 985, 593, 76, 433, 466, 977, 1255, 1190, 938, 939, - 457, 763, 312, 765, 766, 1254, 1202, 971, 590, 859, - 656, 937, 258, 257, 260, 261, 262, 263, 688, 566, - 468, 259, 264, 218, 709, 1234, 299, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 950, 186, 926, 219, 76, 54, 76, 1233, - 968, 891, 186, 224, 225, 186, 76, 959, 1192, 890, - 942, 884, 885, 470, 462, 1242, 958, 1180, 960, 961, - 678, 56, 712, 58, 577, 744, 746, 51, 982, 983, - 1, 856, 997, 865, 441, 984, 1257, 986, 987, 988, - 1215, 762, 1096, 972, 973, 816, 808, 409, 830, 831, - 832, 833, 64, 1249, 815, 991, 1221, 1178, 823, 441, - 312, 979, 826, 811, 841, 842, 843, 1101, 312, 1252, - 976, 787, 600, 598, 599, 597, 911, 602, 1000, 312, - 312, 312, 312, 312, 312, 312, 312, 1014, 601, 596, - 197, 928, 305, 312, 312, 558, 561, 562, 563, 559, - 894, 560, 564, 298, 565, 589, 851, 471, 66, 999, - 1017, 1016, 861, 691, 1024, 1037, 674, 1072, 1068, 47, - 880, 1042, 449, 477, 199, 1036, 312, 1055, 507, 1071, - 1062, 772, 1073, 708, 1084, 1085, 1086, 772, 889, 1054, - 76, 962, 311, 186, 1074, 684, 1077, 909, 1076, 1078, - 460, 1232, 1035, 1191, 925, 533, 758, 76, 244, 699, - 1095, 256, 253, 924, 1089, 255, 739, 254, 690, 934, - 481, 242, 1094, 234, 1058, 297, 753, 753, 549, 557, - 555, 1090, 753, 1110, 1111, 490, 491, 492, 493, 494, - 495, 496, 489, 554, 948, 499, 944, 296, 1032, 753, - 76, 76, 1154, 76, 1239, 694, 25, 55, 901, 902, - 903, 229, 19, 18, 299, 17, 20, 16, 1123, 15, - 14, 811, 29, 811, 13, 12, 76, 11, 312, 186, - 186, 1125, 10, 9, 1128, 8, 7, 186, 6, 5, - 907, 312, 1153, 4, 908, 1133, 76, 220, 22, 2, - 0, 912, 913, 914, 1132, 1140, 0, 0, 1064, 0, - 923, 0, 0, 0, 0, 929, 0, 930, 931, 932, - 933, 0, 1158, 1079, 1080, 0, 0, 1081, 0, 1166, - 1083, 1169, 1170, 1171, 1035, 968, 76, 76, 0, 0, - 1172, 1174, 0, 0, 0, 312, 0, 312, 0, 0, - 0, 441, 0, 0, 0, 312, 0, 0, 0, 0, - 0, 0, 1181, 1188, 1183, 76, 0, 76, 76, 0, - 1187, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 0, 0, 0, 0, 0, 0, 1193, 0, 0, 0, - 1072, 298, 186, 1206, 0, 0, 0, 0, 811, 0, - 76, 1203, 1071, 0, 0, 0, 1205, 1131, 0, 0, - 0, 0, 0, 76, 186, 0, 1220, 0, 0, 0, - 76, 1231, 1214, 0, 0, 999, 811, 0, 76, 0, - 0, 186, 1226, 0, 1227, 1072, 1230, 47, 0, 0, - 0, 0, 1243, 0, 0, 0, 1156, 1071, 1039, 1040, - 1244, 0, 0, 523, 1247, 0, 0, 0, 0, 0, - 0, 1056, 1057, 1041, 1059, 1060, 0, 0, 0, 459, - 1261, 0, 0, 0, 0, 1266, 0, 440, 0, 0, - 76, 0, 76, 76, 76, 186, 76, 0, 772, 957, - 0, 0, 76, 1271, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 1278, 312, 209, 1279, 0, - 1087, 0, 0, 0, 0, 1286, 0, 0, 76, 76, - 76, 0, 0, 300, 0, 0, 0, 0, 0, 233, - 0, 184, 184, 0, 0, 0, 0, 184, 0, 1137, - 1138, 0, 1139, 0, 0, 1141, 0, 1143, 0, 995, - 312, 0, 312, 0, 0, 0, 0, 0, 183, 0, - 0, 76, 76, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 312, 0, 0, 0, 0, - 0, 1135, 0, 0, 0, 0, 303, 76, 0, 0, - 1134, 413, 0, 1177, 0, 312, 0, 1136, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 1145, 1146, - 1147, 0, 0, 1150, 1260, 523, 0, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 1160, 1161, 1162, 195, - 1165, 0, 753, 0, 0, 1075, 957, 0, 753, 0, - 0, 0, 0, 76, 184, 0, 184, 0, 0, 0, - 0, 0, 184, 205, 0, 0, 0, 76, 0, 184, - 0, 0, 0, 0, 312, 0, 312, 1098, 0, 0, - 0, 0, 443, 444, 445, 0, 448, 0, 0, 0, - 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, - 0, 1195, 1196, 0, 1197, 1198, 1199, 0, 421, 1124, - 422, 0, 0, 190, 0, 0, 429, 0, 1200, 192, - 0, 0, 1126, 431, 0, 0, 198, 194, 0, 1129, - 0, 0, 0, 1211, 1212, 1213, 0, 312, 0, 0, - 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, - 496, 489, 0, 196, 499, 0, 200, 0, 0, 1235, - 1236, 1237, 1238, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 0, 0, 0, 0, 0, 0, 184, - 573, 184, 0, 0, 191, 0, 905, 0, 0, 1168, - 0, 1168, 1168, 1168, 0, 1173, 0, 0, 0, 0, - 0, 312, 0, 1262, 454, 0, 0, 0, 1267, 0, - 0, 193, 1152, 201, 202, 203, 204, 208, 1148, 454, - 0, 1272, 207, 206, 0, 0, 551, 312, 312, 312, - 0, 0, 0, 0, 0, 575, 0, 0, 0, 1288, - 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, - 496, 489, 1290, 1291, 499, 488, 487, 497, 498, 490, - 491, 492, 493, 494, 495, 496, 489, 0, 0, 499, - 1207, 1208, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1098, 488, 487, 497, 498, 490, 491, - 492, 493, 494, 495, 496, 489, 1168, 0, 499, 184, - 184, 644, 0, 184, 0, 0, 184, 0, 0, 653, - 662, 0, 0, 0, 0, 0, 1246, 1038, 0, 0, - 664, 665, 666, 667, 668, 669, 670, 671, 0, 0, - 0, 184, 0, 0, 672, 673, 0, 488, 487, 497, - 498, 490, 491, 492, 493, 494, 495, 496, 489, 753, - 184, 499, 1268, 651, 652, 0, 0, 655, 0, 662, - 658, 0, 0, 0, 0, 0, 1274, 0, 0, 23, - 24, 48, 26, 27, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 677, 0, 1149, 42, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, - 233, 0, 0, 0, 696, 233, 233, 0, 0, 754, - 754, 233, 37, 0, 0, 754, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 233, 233, 233, 0, - 184, 0, 754, 184, 184, 184, 184, 184, 0, 0, - 0, 0, 0, 0, 0, 786, 0, 0, 184, 0, - 0, 0, 573, 0, 0, 0, 0, 184, 184, 488, - 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, - 489, 0, 0, 499, 0, 30, 31, 33, 32, 35, - 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 43, 44, 0, - 0, 45, 46, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 797, 0, 0, 38, 39, 0, 40, 41, - 0, 0, 0, 0, 0, 184, 617, 0, 0, 0, - 0, 483, 0, 486, 184, 0, 858, 184, 860, 500, - 501, 502, 503, 504, 505, 506, 879, 484, 485, 482, - 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, - 496, 489, 662, 0, 499, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 233, 0, 0, 0, 0, 853, - 0, 0, 0, 906, 0, 0, 0, 0, 877, 0, - 0, 878, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 605, 488, 487, 497, 498, 490, 491, 492, - 493, 494, 495, 496, 489, 0, 0, 499, 0, 0, - 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 618, 0, 0, 0, 0, 233, 488, 487, + 57, 676, 499, 181, 177, 178, 179, 587, 677, 588, + 876, 450, 981, 828, 1104, 1105, 1106, 1180, 965, 870, + 423, 964, 1109, 1107, 966, 59, 60, 61, 62, 63, + 1195, 836, 1145, 1143, 210, 1285, 446, 447, 1283, 437, + 1260, 439, 1023, 769, 488, 487, 497, 498, 490, 491, + 492, 493, 494, 495, 496, 489, 424, 239, 499, 417, + 1218, 790, 792, 174, 175, 175, 436, 438, 867, 864, + 865, 655, 863, 1220, 1246, 646, 956, 1165, 955, 954, + 412, 420, 189, 176, 441, 441, 441, 441, 76, 441, + 906, 823, 186, 512, 513, 186, 441, 874, 877, 1224, + 1031, 823, 921, 899, 683, 743, 479, 430, 1113, 808, + 1010, 499, 180, 47, 489, 680, 1020, 499, 195, 186, + 186, 76, 1022, 473, 472, 186, 882, 76, 509, 975, + 718, 511, 869, 472, 474, 464, 791, 1251, 1008, 463, + 474, 1219, 205, 1242, 716, 717, 715, 434, 1123, 474, + 1027, 1064, 836, 761, 868, 944, 589, 416, 521, 1114, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 1264, + 536, 538, 538, 538, 538, 538, 538, 538, 538, 546, + 547, 548, 549, 1108, 822, 761, 650, 928, 979, 232, + 569, 873, 682, 190, 822, 686, 687, 1225, 1223, 192, + 426, 427, 428, 1009, 875, 883, 198, 194, 1014, 1011, + 1004, 1005, 1012, 1007, 1006, 1021, 825, 1019, 1010, 1045, + 917, 826, 916, 1254, 465, 1013, 1026, 469, 681, 418, + 419, 1016, 186, 196, 186, 1270, 200, 1186, 473, 472, + 186, 473, 472, 1185, 473, 472, 1008, 186, 994, 1047, + 823, 76, 76, 76, 76, 474, 76, 577, 474, 583, + 735, 474, 736, 76, 191, 236, 539, 540, 541, 542, + 543, 544, 545, 993, 701, 703, 704, 982, 411, 702, + 454, 1049, 1271, 1053, 173, 1048, 1252, 1046, 50, 1202, + 76, 193, 1051, 201, 202, 203, 204, 208, 714, 1183, + 245, 1050, 207, 206, 441, 1131, 918, 896, 897, 898, + 991, 1009, 441, 1153, 1052, 1054, 1014, 1011, 1004, 1005, + 1012, 1007, 1006, 441, 441, 441, 441, 441, 441, 441, + 441, 1274, 454, 1013, 473, 472, 1249, 441, 441, 1003, + 1230, 1066, 1101, 822, 1100, 292, 1210, 1257, 820, 818, + 186, 474, 819, 976, 473, 472, 967, 186, 186, 186, + 1210, 454, 298, 76, 1210, 1211, 1229, 1177, 1176, 76, + 664, 474, 858, 267, 737, 688, 1089, 454, 662, 1164, + 454, 1120, 1119, 1110, 712, 661, 488, 487, 497, 498, + 490, 491, 492, 493, 494, 495, 496, 489, 1116, 1117, + 499, 660, 47, 651, 74, 1116, 1115, 23, 458, 462, + 492, 493, 494, 495, 496, 489, 525, 649, 499, 709, + 690, 911, 454, 554, 454, 480, 644, 707, 705, 753, + 756, 936, 746, 454, 937, 762, 432, 312, 748, 596, + 595, 54, 425, 415, 580, 299, 299, 299, 299, 299, + 411, 553, 773, 453, 50, 648, 942, 738, 739, 524, + 569, 1068, 793, 1034, 942, 746, 943, 923, 535, 299, + 796, 76, 579, 765, 21, 554, 1160, 186, 186, 76, + 911, 186, 748, 758, 186, 581, 554, 579, 186, 943, + 76, 76, 76, 76, 76, 76, 76, 76, 775, 776, + 920, 778, 797, 1122, 76, 76, 911, 786, 554, 186, + 922, 794, 514, 515, 516, 517, 518, 519, 520, 831, + 832, 833, 834, 442, 76, 800, 799, 795, 186, 774, + 221, 942, 777, 815, 76, 842, 843, 844, 23, 23, + 441, 510, 441, 919, 1118, 559, 562, 563, 564, 560, + 441, 561, 565, 851, 968, 947, 948, 801, 837, 838, + 839, 911, 582, 684, 223, 1205, 50, 312, 312, 312, + 312, 1190, 312, 830, 850, 1083, 847, 848, 76, 312, + 971, 947, 948, 696, 846, 50, 50, 310, 487, 497, + 498, 490, 491, 492, 493, 494, 495, 496, 489, 900, + 298, 499, 841, 840, 65, 853, 477, 1103, 1068, 186, + 995, 50, 186, 186, 186, 186, 186, 712, 950, 888, + 658, 451, 889, 709, 186, 1282, 953, 186, 1152, 454, + 783, 186, 749, 750, 781, 784, 186, 186, 757, 782, + 76, 258, 257, 260, 261, 262, 263, 952, 901, 780, + 259, 264, 764, 76, 766, 767, 779, 227, 228, 939, + 940, 1276, 698, 699, 1281, 1030, 488, 487, 497, 498, + 490, 491, 492, 493, 494, 495, 496, 489, 884, 312, + 499, 938, 894, 893, 986, 591, 785, 299, 563, 564, + 594, 927, 488, 487, 497, 498, 490, 491, 492, 493, + 494, 495, 496, 489, 186, 433, 499, 76, 951, 76, + 978, 1256, 959, 186, 961, 524, 186, 76, 751, 752, + 960, 969, 490, 491, 492, 493, 494, 495, 496, 489, + 468, 962, 499, 1255, 456, 1203, 972, 1158, 985, 1191, + 987, 988, 989, 860, 466, 441, 457, 710, 657, 567, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 973, 974, 224, 225, 992, + 441, 559, 562, 563, 564, 560, 468, 561, 565, 806, + 983, 984, 1001, 713, 892, 218, 1235, 312, 219, 54, + 1234, 1015, 891, 1193, 943, 312, 470, 1243, 1181, 679, + 56, 895, 58, 578, 51, 1, 312, 312, 312, 312, + 312, 312, 312, 312, 857, 998, 866, 1258, 1216, 1097, + 312, 312, 817, 809, 409, 64, 1037, 1250, 1073, 310, + 47, 1038, 1069, 816, 1043, 773, 1056, 1222, 1179, 1072, + 692, 773, 1055, 824, 1063, 1085, 1086, 1087, 910, 980, + 477, 76, 1074, 312, 186, 298, 298, 298, 298, 298, + 1078, 709, 1077, 1079, 925, 827, 1102, 1253, 76, 977, + 298, 885, 886, 601, 462, 599, 600, 1091, 1090, 298, + 598, 1096, 603, 602, 1095, 597, 1111, 1112, 197, 305, + 566, 590, 852, 471, 740, 66, 1018, 1017, 862, 1025, + 675, 881, 449, 199, 754, 754, 508, 890, 963, 311, + 754, 76, 76, 1075, 76, 685, 460, 1233, 689, 1192, + 926, 534, 1124, 759, 244, 299, 700, 754, 256, 253, + 255, 254, 691, 935, 481, 1126, 912, 76, 1129, 242, + 186, 186, 234, 297, 550, 558, 556, 555, 186, 949, + 1133, 929, 945, 1154, 296, 1033, 312, 76, 1134, 1141, + 1138, 1139, 1155, 1140, 1240, 695, 1142, 25, 1144, 312, + 55, 229, 19, 18, 17, 20, 745, 747, 1159, 16, + 15, 14, 902, 903, 904, 29, 1170, 1171, 1172, 13, + 1167, 12, 763, 11, 10, 1173, 9, 76, 76, 8, + 1149, 454, 1175, 708, 7, 6, 969, 5, 4, 220, + 22, 2, 441, 0, 1178, 0, 713, 0, 0, 0, + 0, 0, 788, 312, 0, 312, 76, 0, 76, 76, + 1188, 0, 0, 312, 1189, 0, 0, 0, 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, - 0, 0, 499, 631, 632, 633, 634, 635, 636, 637, - 0, 638, 639, 640, 641, 642, 619, 620, 621, 622, - 603, 604, 0, 0, 606, 184, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 623, 624, 625, 626, - 627, 628, 629, 630, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1027, 1028, 0, 0, 0, 1023, 0, 0, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1073, 499, 186, 1207, 0, 0, 312, 0, 0, + 0, 76, 1072, 0, 1182, 1204, 1184, 0, 0, 0, + 0, 0, 0, 0, 76, 186, 1206, 1215, 0, 0, + 0, 76, 1232, 1221, 0, 1227, 440, 1228, 1194, 76, + 0, 1231, 186, 0, 0, 0, 1073, 298, 47, 0, + 0, 0, 0, 0, 0, 1244, 310, 1072, 0, 0, + 0, 0, 0, 0, 1248, 0, 0, 0, 1065, 812, + 1245, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1262, 1080, 1081, 0, 0, 1082, 0, 1267, + 1084, 76, 773, 76, 76, 76, 186, 76, 0, 0, + 0, 0, 1272, 76, 497, 498, 490, 491, 492, 493, + 494, 495, 496, 489, 0, 1279, 499, 958, 1280, 0, + 0, 0, 1040, 1041, 0, 0, 1287, 0, 0, 76, + 76, 76, 0, 0, 312, 1057, 1058, 0, 1060, 1061, + 0, 908, 0, 0, 0, 909, 0, 0, 0, 454, + 0, 0, 913, 914, 915, 0, 0, 708, 0, 0, + 0, 924, 0, 0, 0, 0, 930, 1132, 931, 932, + 933, 934, 76, 76, 0, 0, 0, 996, 312, 0, + 312, 0, 0, 0, 0, 76, 488, 487, 497, 498, + 490, 491, 492, 493, 494, 495, 496, 489, 76, 0, + 499, 0, 0, 312, 0, 0, 1157, 0, 0, 459, + 0, 0, 0, 524, 0, 0, 0, 0, 76, 0, + 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 0, 443, 444, 445, 0, 448, 0, 0, 0, 300, + 0, 0, 452, 0, 184, 312, 0, 209, 0, 0, + 0, 0, 0, 0, 76, 1136, 0, 0, 0, 0, + 754, 0, 0, 1076, 958, 0, 754, 0, 76, 233, + 0, 184, 184, 0, 183, 0, 0, 184, 0, 0, + 0, 0, 0, 0, 812, 298, 0, 0, 0, 0, + 0, 0, 312, 0, 312, 1099, 0, 0, 0, 0, + 0, 0, 303, 0, 0, 0, 0, 413, 0, 0, + 0, 0, 0, 0, 1042, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1125, 0, 0, + 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1127, 0, 0, 0, 0, 0, 0, 1130, 0, 0, + 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 1088, 0, 0, 0, 1196, 1197, 0, 1198, 1199, + 1200, 0, 0, 1036, 1261, 524, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 184, 0, 0, 0, + 0, 0, 184, 0, 0, 1059, 0, 0, 0, 184, + 0, 0, 0, 0, 0, 0, 0, 1169, 0, 1169, + 1169, 1169, 0, 1174, 421, 0, 422, 0, 0, 312, + 0, 0, 429, 0, 0, 0, 0, 0, 0, 431, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1135, 812, 1150, 812, 312, 312, 312, 1137, 0, + 645, 0, 0, 0, 0, 0, 0, 0, 654, 1146, + 1147, 1148, 0, 0, 1151, 0, 0, 0, 0, 665, + 666, 667, 668, 669, 670, 671, 672, 1161, 1162, 1163, + 0, 1166, 0, 673, 674, 0, 0, 0, 1208, 1209, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1099, 184, 1289, 0, 1036, 0, 0, 0, 184, + 574, 184, 0, 0, 1169, 0, 488, 487, 497, 498, + 490, 491, 492, 493, 494, 495, 496, 489, 0, 0, + 499, 0, 552, 0, 1247, 0, 0, 0, 0, 0, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, + 0, 0, 0, 0, 0, 0, 0, 754, 0, 812, + 1269, 0, 0, 0, 1212, 1213, 1214, 0, 0, 0, + 0, 0, 0, 1039, 1275, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1000, 812, 0, 0, + 1236, 1237, 1238, 1239, 488, 487, 497, 498, 490, 491, + 492, 493, 494, 495, 496, 489, 0, 0, 499, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, + 184, 0, 0, 184, 0, 0, 184, 0, 0, 0, + 663, 0, 0, 0, 1263, 0, 907, 0, 0, 1268, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, + 653, 184, 1273, 656, 0, 0, 659, 488, 487, 497, + 498, 490, 491, 492, 493, 494, 495, 496, 489, 0, + 184, 499, 0, 0, 0, 0, 859, 0, 861, 663, + 0, 678, 0, 1291, 1292, 0, 880, 0, 0, 0, + 23, 24, 48, 26, 27, 0, 0, 0, 0, 0, + 697, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 0, 233, 0, 0, 0, 0, 233, 233, 0, 0, + 755, 755, 233, 37, 0, 0, 755, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 233, 233, 233, 233, + 0, 184, 0, 755, 184, 184, 184, 184, 184, 0, + 0, 0, 0, 0, 0, 0, 787, 0, 0, 184, + 0, 0, 0, 574, 0, 0, 0, 0, 184, 184, + 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 33, + 32, 35, 0, 0, 0, 0, 0, 0, 0, 798, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 43, + 44, 0, 0, 45, 46, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 38, 39, 0, + 40, 41, 0, 0, 0, 0, 184, 0, 618, 0, + 0, 0, 0, 0, 0, 184, 0, 0, 184, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 854, 0, 0, 0, + 0, 997, 0, 663, 0, 878, 0, 0, 879, 0, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 0, 606, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 619, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 632, 633, 634, 635, + 636, 637, 638, 0, 639, 640, 641, 642, 643, 620, + 621, 622, 623, 604, 605, 0, 184, 607, 0, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 624, + 625, 626, 627, 628, 629, 630, 631, 483, 0, 486, + 0, 0, 0, 0, 0, 500, 501, 502, 503, 504, + 505, 506, 0, 484, 485, 482, 507, 488, 487, 497, + 498, 490, 491, 492, 493, 494, 495, 496, 489, 0, + 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1028, 1029, 0, 0, 0, 0, 0, 0, + 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 754, 0, 0, 0, 0, - 0, 754, 0, 1031, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, + 1032, 663, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 755, 0, 0, 0, + 0, 0, 755, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, + 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1186, 0, - 0, 398, 388, 0, 360, 400, 338, 352, 408, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, - 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, - 386, 359, 382, 329, 375, 401, 351, 379, 402, 0, - 0, 0, 75, 0, 812, 813, 0, 0, 0, 0, - 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, - 322, 325, 407, 395, 344, 345, 969, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 754, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 812, - 813, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, + 388, 0, 360, 400, 338, 352, 408, 353, 354, 381, + 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, + 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, + 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, + 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, + 75, 0, 813, 814, 0, 0, 0, 0, 0, 86, + 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, + 407, 395, 344, 345, 970, 0, 0, 0, 0, 0, + 0, 363, 367, 383, 357, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, + 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, + 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, + 399, 131, 0, 755, 145, 98, 97, 106, 391, 340, + 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, + 394, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 332, 335, 330, 331, 369, 370, 403, 404, 405, + 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, + 108, 169, 133, 95, 160, 398, 388, 0, 360, 400, + 338, 352, 408, 353, 354, 381, 324, 368, 125, 350, + 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, + 390, 371, 107, 406, 109, 376, 0, 142, 118, 0, + 0, 364, 392, 366, 386, 359, 382, 329, 375, 401, + 351, 379, 402, 0, 0, 0, 75, 0, 813, 814, + 0, 0, 0, 0, 0, 86, 0, 378, 397, 349, + 380, 318, 377, 0, 322, 325, 407, 395, 344, 345, + 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, + 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, @@ -942,80 +956,105 @@ var yyAct = [...]int{ 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 1034, 0, - 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, - 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, - 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, - 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 394, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 403, 404, 405, 385, 327, 0, 333, - 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 398, 388, 0, 360, 400, 338, 352, 408, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, - 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, - 386, 359, 382, 329, 375, 401, 351, 379, 402, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, - 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 705, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, + 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, + 0, 343, 384, 0, 317, 387, 393, 358, 187, 396, + 356, 355, 399, 131, 0, 0, 145, 98, 97, 106, + 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 321, 0, 143, 159, + 172, 336, 394, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 332, 335, 330, 331, 369, 370, 403, + 404, 405, 385, 327, 0, 333, 334, 0, 389, 372, + 77, 0, 108, 169, 133, 95, 160, 398, 388, 0, + 360, 400, 338, 352, 408, 353, 354, 381, 324, 368, + 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, + 365, 337, 390, 371, 107, 406, 109, 376, 0, 142, + 118, 0, 0, 364, 392, 366, 386, 359, 382, 329, + 375, 401, 351, 379, 402, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, + 397, 349, 380, 318, 377, 0, 322, 325, 407, 395, + 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, + 367, 383, 357, 0, 0, 0, 0, 0, 0, 0, + 1035, 0, 342, 0, 374, 0, 0, 0, 326, 323, + 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, + 317, 387, 393, 358, 187, 396, 356, 355, 399, 131, + 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, + 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 321, 0, 143, 159, 172, 336, 394, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, + 335, 330, 331, 369, 370, 403, 404, 405, 385, 327, + 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, + 133, 95, 160, 398, 388, 0, 360, 400, 338, 352, + 408, 353, 354, 381, 324, 368, 125, 350, 0, 341, + 319, 347, 320, 339, 362, 93, 365, 337, 390, 371, + 107, 406, 109, 376, 0, 142, 118, 0, 0, 364, + 392, 366, 386, 359, 382, 329, 375, 401, 351, 379, + 402, 0, 0, 0, 238, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 378, 397, 349, 380, 318, + 377, 0, 322, 325, 407, 395, 344, 345, 0, 0, + 0, 0, 0, 0, 0, 363, 367, 383, 357, 0, + 0, 0, 0, 0, 0, 0, 706, 0, 342, 0, + 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, + 0, 328, 0, 343, 384, 0, 317, 387, 393, 358, + 187, 396, 356, 355, 399, 131, 0, 0, 145, 98, + 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, + 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, + 143, 159, 172, 336, 394, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, + 370, 403, 404, 405, 385, 327, 0, 333, 334, 0, + 389, 372, 77, 0, 108, 169, 133, 95, 160, 398, + 388, 0, 360, 400, 338, 352, 408, 353, 354, 381, + 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, + 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, + 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, + 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, + 407, 395, 344, 345, 0, 0, 0, 0, 0, 0, + 0, 363, 367, 383, 357, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, + 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, + 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, + 399, 131, 0, 0, 145, 98, 97, 106, 391, 340, + 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, + 394, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 332, 335, 330, 331, 369, 370, 403, 404, 405, + 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, + 108, 169, 133, 95, 160, 398, 388, 0, 360, 400, + 338, 352, 408, 353, 354, 381, 324, 368, 125, 350, + 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, + 390, 371, 107, 406, 109, 376, 0, 142, 118, 0, + 0, 364, 392, 366, 386, 359, 382, 329, 375, 401, + 351, 379, 402, 0, 0, 0, 238, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 378, 397, 349, + 380, 318, 377, 0, 322, 325, 407, 395, 344, 345, + 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, + 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, @@ -1036,130 +1075,106 @@ var yyAct = [...]int{ 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, 401, 351, 379, 402, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, - 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, - 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, - 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, - 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 315, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 394, 165, 166, 167, - 168, 0, 0, 0, 316, 314, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 403, 404, 405, 385, 327, 0, 333, - 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 398, 388, 0, 360, 400, 338, 352, 408, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, - 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, - 386, 359, 382, 329, 375, 401, 351, 379, 402, 0, - 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, - 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, - 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, - 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, - 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 583, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 315, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 394, 165, 166, 167, - 168, 0, 0, 0, 316, 314, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 403, 404, 405, 385, 327, 0, 333, - 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 398, 388, 0, 360, 400, 338, 352, 408, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, - 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, - 386, 359, 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 306, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 315, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 316, - 314, 309, 308, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 125, 0, 0, 741, - 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, - 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, - 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, - 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, + 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, + 0, 343, 384, 0, 317, 387, 393, 358, 187, 396, + 356, 355, 399, 131, 0, 0, 145, 98, 97, 106, + 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 315, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 321, 0, 143, 159, + 172, 336, 394, 165, 166, 167, 168, 0, 0, 0, + 316, 314, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 332, 335, 330, 331, 369, 370, 403, + 404, 405, 385, 327, 0, 333, 334, 0, 389, 372, + 77, 0, 108, 169, 133, 95, 160, 398, 388, 0, + 360, 400, 338, 352, 408, 353, 354, 381, 324, 368, + 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, + 365, 337, 390, 371, 107, 406, 109, 376, 0, 142, + 118, 0, 0, 364, 392, 366, 386, 359, 382, 329, + 375, 401, 351, 379, 402, 0, 0, 0, 185, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, + 397, 349, 380, 318, 377, 0, 322, 325, 407, 395, + 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, + 367, 383, 357, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, + 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, + 317, 387, 393, 358, 187, 396, 356, 355, 399, 131, + 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, + 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 321, 0, 143, 159, 172, 336, 394, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, + 335, 330, 331, 369, 370, 403, 404, 405, 385, 327, + 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, + 133, 95, 160, 398, 388, 0, 360, 400, 338, 352, + 408, 353, 354, 381, 324, 368, 125, 350, 0, 341, + 319, 347, 320, 339, 362, 93, 365, 337, 390, 371, + 107, 406, 109, 376, 0, 142, 118, 0, 0, 364, + 392, 366, 386, 359, 382, 329, 375, 401, 351, 379, + 402, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 378, 397, 349, 380, 318, + 377, 0, 322, 325, 407, 395, 344, 345, 0, 0, + 0, 0, 0, 0, 0, 363, 367, 383, 357, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, + 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, + 0, 328, 0, 343, 384, 0, 317, 387, 393, 358, + 187, 396, 356, 355, 399, 131, 0, 0, 145, 98, + 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, + 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 584, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 315, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, + 143, 159, 172, 336, 394, 165, 166, 167, 168, 0, + 0, 0, 316, 314, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, + 370, 403, 404, 405, 385, 327, 0, 333, 334, 0, + 389, 372, 77, 0, 108, 169, 133, 95, 160, 398, + 388, 0, 360, 400, 338, 352, 408, 353, 354, 381, + 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, + 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, + 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, + 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, + 407, 395, 344, 345, 0, 0, 0, 0, 0, 0, + 0, 363, 367, 383, 357, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, + 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, + 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, + 399, 131, 0, 0, 145, 98, 97, 106, 391, 340, + 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 306, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 315, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, + 394, 165, 166, 167, 168, 0, 0, 0, 316, 314, + 309, 308, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 332, 335, 330, 331, 369, 370, 403, 404, 405, + 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 742, 0, + 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, + 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, + 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, + 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 231, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, @@ -1184,99 +1199,6 @@ var yyAct = [...]int{ 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, - 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, - 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, - 277, 0, 276, 77, 0, 108, 169, 133, 95, 160, - 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, - 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, - 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, - 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 249, 231, - 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, - 286, 287, 284, 285, 283, 282, 281, 291, 272, 273, - 274, 275, 277, 0, 276, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, - 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, - 0, 0, 0, 0, 0, 804, 0, 50, 0, 0, - 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, - 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, - 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, - 272, 273, 274, 275, 277, 23, 276, 77, 0, 108, - 169, 133, 95, 160, 0, 0, 0, 125, 0, 0, - 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, - 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, - 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, - 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, - 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, - 285, 283, 282, 281, 291, 272, 273, 274, 275, 277, - 0, 276, 77, 0, 108, 169, 133, 95, 160, 125, - 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, - 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, - 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, - 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1292,19 +1214,20 @@ var yyAct = [...]int{ 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, 272, 273, 274, - 275, 277, 125, 276, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 279, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, - 259, 264, 265, 266, 0, 0, 0, 251, 0, 278, + 275, 277, 0, 276, 77, 0, 108, 169, 133, 95, + 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, + 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, + 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, + 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, + 249, 231, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 1289, 128, 136, 110, 149, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, @@ -1314,13 +1237,14 @@ var yyAct = [...]int{ 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, - 272, 273, 274, 275, 277, 125, 276, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, - 0, 0, 86, 259, 264, 265, 266, 0, 0, 0, - 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 272, 273, 274, 275, 277, 0, 276, 77, 0, 108, + 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, + 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, + 271, 0, 0, 0, 0, 0, 0, 805, 0, 50, + 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, + 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, + 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, @@ -1336,20 +1260,67 @@ var yyAct = [...]int{ 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, - 282, 281, 291, 272, 273, 274, 275, 277, 125, 276, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 282, 281, 291, 272, 273, 274, 275, 277, 23, 276, + 77, 0, 108, 169, 133, 95, 160, 0, 0, 0, + 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, + 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, + 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, + 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, + 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, + 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 288, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, + 289, 286, 287, 284, 285, 283, 282, 281, 291, 272, + 273, 274, 275, 277, 0, 276, 77, 0, 108, 169, + 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, + 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, + 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, + 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, + 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, + 281, 291, 272, 273, 274, 275, 277, 125, 276, 77, + 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, + 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, + 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, + 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 488, 487, 497, 498, 490, 491, 492, 493, 494, - 495, 496, 489, 0, 0, 499, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, + 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 157, 1290, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, @@ -1357,37 +1328,82 @@ var yyAct = [...]int{ 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, + 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, + 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, + 277, 125, 276, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 279, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, + 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, + 264, 265, 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 108, 169, 133, 95, 160, - 125, 0, 0, 0, 476, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - 478, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 473, 472, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 474, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, + 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, + 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, + 272, 273, 274, 275, 277, 125, 276, 77, 0, 108, + 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, + 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 488, + 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, + 489, 0, 0, 499, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, + 0, 77, 0, 108, 169, 133, 95, 160, 125, 0, + 0, 0, 476, 0, 0, 0, 0, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 0, 478, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 473, 472, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1405,79 +1421,57 @@ var yyAct = [...]int{ 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 0, 572, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 573, 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 574, 0, 0, 0, 0, + 0, 0, 0, 185, 0, 575, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 75, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 692, 0, 0, 693, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1495,56 +1489,33 @@ var yyAct = [...]int{ 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 592, 0, + 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 0, 591, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 108, 169, 133, 95, 160, 125, - 0, 0, 0, 572, 0, 0, 0, 0, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 574, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 0, 0, 693, 0, + 0, 694, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 570, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, + 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 593, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 592, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1562,19 +1533,20 @@ var yyAct = [...]int{ 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, + 169, 133, 95, 160, 125, 0, 0, 0, 573, 0, + 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 574, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 185, 0, 575, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 571, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, @@ -1588,30 +1560,75 @@ var yyAct = [...]int{ 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 0, 478, 0, + 0, 0, 0, 50, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 77, 0, 108, 169, 133, 95, 160, - 550, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 185, 0, 575, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, + 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 478, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 77, 0, 108, 169, 133, 95, 160, 551, + 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1639,69 +1656,47 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 182, 0, 187, 0, 0, 0, 0, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1722,37 +1717,60 @@ var yyAct = [...]int{ 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 108, 169, 133, 95, 160, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, + 169, 133, 95, 160, } var yyPact = [...]int{ - 1723, -1000, -186, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1854, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 802, 836, -1000, -1000, -1000, -1000, -1000, -1000, 618, - 7335, 41, 62, -18, 10030, 61, 1367, 10699, -1000, -6, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 593, -1000, -1000, - -1000, -1000, -1000, 776, 799, 647, 803, 702, -1000, 5512, - 40, 8914, 9807, 4816, -1000, 484, 59, 10699, -158, 10253, - 34, 34, 34, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 884, 905, -1000, -1000, -1000, -1000, -1000, -1000, 661, + 7474, 51, 73, -6, 10181, 72, 196, 10853, -1000, -11, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 643, -1000, -1000, + -1000, -1000, -1000, 878, 882, 668, 857, 728, -1000, 5643, + 50, 9060, 9957, 4944, -1000, 504, 69, 10853, -153, 10405, + 44, 44, 44, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1762,21 +1780,21 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 51, 10699, -1000, 10699, 33, 481, 33, - 33, 33, 10699, -1000, 101, -1000, -1000, -1000, -1000, 10699, - 478, 733, 22, 2856, 2856, 2856, 2856, 1, 2856, -83, - 655, -1000, -1000, -1000, -1000, 2856, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 364, 739, 6211, 6211, - 802, -1000, 593, -1000, -1000, -1000, 729, -1000, -1000, 243, - 822, -1000, 7112, 99, -1000, 6211, 1819, 429, -1000, -1000, - 429, -1000, -1000, 81, -1000, -1000, 6657, 6657, 6657, 6657, - 6657, 6657, 6657, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 429, -1000, 5979, - 429, 429, 429, 429, 429, 429, 429, 429, 6211, 429, - 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, - 429, 429, 9584, 587, 874, -1000, -1000, -1000, 767, 8013, - 8691, 10699, 531, -1000, 589, 4571, -121, -1000, -1000, -1000, - 173, 8459, -1000, -1000, -1000, 731, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 71, 10853, -1000, 10853, 41, 496, 41, + 41, 41, 10853, -1000, 107, -1000, -1000, -1000, -1000, 10853, + 490, 785, 29, 2976, 2976, 2976, 2976, -5, 2976, -91, + 680, -1000, -1000, -1000, -1000, 2976, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 335, 825, 6345, 6345, + 884, -1000, 643, -1000, -1000, -1000, 819, -1000, -1000, 273, + 895, -1000, 7250, 106, -1000, 6345, 2115, 623, -1000, -1000, + 623, -1000, -1000, 92, -1000, -1000, 6793, 6793, 6793, 6793, + 6793, 6793, 6793, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 623, -1000, 6112, + 623, 623, 623, 623, 623, 623, 623, 623, 6345, 623, + 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, + 623, 623, 9733, 531, 840, -1000, -1000, -1000, 837, 8155, + 8836, 10853, 543, -1000, 618, 4698, -101, -1000, -1000, -1000, + 186, 8603, -1000, -1000, -1000, 770, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1785,118 +1803,118 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 477, - -1000, 1856, 472, 2856, 50, 606, 470, 223, 453, 10699, - 10699, 2856, 44, 10699, 757, 653, 10699, 452, 440, -1000, - 4326, -1000, 2856, 2856, 2856, 2856, 2856, 2856, 2856, 2856, - -1000, -1000, -1000, -1000, -1000, -1000, 2856, 2856, -1000, -67, - -1000, 10699, -1000, -1000, -1000, -1000, 831, 130, 525, 95, - 591, -1000, 278, 776, 364, 702, 8236, 665, -1000, -1000, - 10699, -1000, 6211, 6211, 286, -1000, 9360, -1000, -1000, 3346, - 147, 6657, 284, 237, 6657, 6657, 6657, 6657, 6657, 6657, - 6657, 6657, 6657, 6657, 6657, 6657, 6657, 6657, 6657, 327, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 438, -1000, - 593, 725, 725, 113, 113, 113, 113, 113, 113, 6880, - 5048, 364, 437, 180, 5979, 5512, 5512, 6211, 6211, 10476, - 10476, 5512, 769, 203, 180, 10476, -1000, 364, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 5512, 5512, 5512, 5512, 14, - 10699, -1000, 10476, 8914, 8914, 8914, 8914, 8914, -1000, 679, - 678, -1000, 688, 685, 694, 10699, -1000, 433, 8013, 125, - 429, -1000, 9137, -1000, -1000, 14, 568, 8914, 10699, -1000, - -1000, 4081, 589, -121, 581, -1000, -98, -97, 5744, 110, - -1000, -1000, -1000, -1000, 2611, 188, 273, -66, -1000, -1000, - -1000, 595, -1000, 595, 595, 595, 595, -33, -33, -33, - -33, -1000, -1000, -1000, -1000, -1000, 617, 614, -1000, 595, - 595, 595, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 613, 613, - 613, 597, 597, 622, -1000, 10699, -174, 430, 2856, 756, - 2856, -1000, 70, -1000, 10699, -1000, -1000, 10699, 2856, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 495, + -1000, 1988, 480, 2976, 63, 513, 471, 224, 457, 10853, + 10853, 2976, 58, 10853, 835, 679, 10853, 455, 439, -1000, + 4452, -1000, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, + -1000, -1000, -1000, -1000, -1000, -1000, 2976, 2976, -1000, -95, + -1000, 10853, -1000, -1000, -1000, -1000, 900, 135, 284, 104, + 619, -1000, 281, 878, 335, 728, 8379, 651, -1000, -1000, + 10853, -1000, 6345, 6345, 317, -1000, 9508, -1000, -1000, 3468, + 157, 6793, 345, 166, 6793, 6793, 6793, 6793, 6793, 6793, + 6793, 6793, 6793, 6793, 6793, 6793, 6793, 6793, 6793, 314, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 428, + -1000, 643, 694, 694, 115, 115, 115, 115, 115, 115, + 7017, 5177, 335, 488, 163, 6112, 5643, 5643, 6345, 6345, + 10629, 10629, 5643, 865, 187, 163, 10629, -1000, 335, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 5643, 5643, 5643, 5643, + 10, 10853, -1000, 10629, 9060, 9060, 9060, 9060, 9060, -1000, + 725, 718, -1000, 703, 699, 755, 10853, -1000, 479, 8155, + 122, 623, -1000, 9284, -1000, -1000, 10, 528, 9060, 10853, + -1000, -1000, 4206, 618, -101, 613, -1000, -122, -132, 5876, + 113, -1000, -1000, -1000, -1000, 2730, 332, 259, -80, -1000, + -1000, -1000, 630, -1000, 630, 630, 630, 630, -37, -37, + -37, -37, -1000, -1000, -1000, -1000, -1000, 660, 659, -1000, + 630, 630, 630, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 641, + 641, 641, 631, 631, 663, -1000, 10853, -170, 426, 2976, + 830, 2976, -1000, 64, -1000, 10853, -1000, -1000, 10853, 2976, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 208, -1000, -1000, -1000, -1000, 695, - 6211, 6211, 3836, 6211, -1000, -1000, -1000, 739, -1000, 769, - 810, -1000, 722, 720, 5512, -1000, -1000, 147, 156, -1000, - -1000, 328, -1000, -1000, -1000, -1000, 94, 429, -1000, 1907, - -1000, -1000, -1000, -1000, 284, 6657, 6657, 6657, 1409, 1907, - 1872, 405, 357, 113, 612, 612, 112, 112, 112, 112, - 112, 910, 910, -1000, -1000, -1000, 364, -1000, -1000, -1000, - 364, 5512, 582, -1000, -1000, 6211, -1000, 364, 426, 426, - 289, 334, 626, -1000, 91, 619, 426, 5512, 218, -1000, - 6211, 364, -1000, 426, 364, 426, 426, 544, 429, -1000, - 564, -1000, 172, 874, 605, 652, 650, -1000, -1000, -1000, - -1000, 675, -1000, 636, -1000, -1000, -1000, -1000, -1000, 58, - 57, 56, 10253, -1000, 818, 8914, 521, -1000, -1000, 581, - -121, -100, -1000, -1000, -1000, 180, -1000, 428, 530, 2366, - -1000, -1000, -1000, -1000, -1000, -1000, 601, 749, 145, 137, - 427, -1000, -1000, 736, -1000, 238, -69, -1000, -1000, 292, - -33, -33, -1000, -1000, 110, 730, 110, 110, 110, 343, - 343, -1000, -1000, -1000, -1000, 280, -1000, -1000, -1000, 277, - -1000, 637, 10253, 2856, -1000, 3591, -1000, -1000, -1000, -1000, - -1000, -1000, 282, 204, 179, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 13, -1000, 2856, -1000, - 209, 10699, 10699, 709, 180, 180, 79, -1000, -1000, 10699, - -1000, -1000, -1000, -1000, 610, -1000, -1000, -1000, 3101, 5512, - -1000, 1409, 1907, 1606, -1000, 6657, 6657, -1000, -1000, 426, - 5512, 180, -1000, -1000, -1000, 54, 327, 54, 6657, 6657, - 3836, 6657, 6657, -168, 532, 187, -1000, 6211, 307, -1000, - -1000, -1000, -1000, -1000, 635, 10476, 429, -1000, 7790, 10253, - 802, 10476, 6211, 6211, -1000, -1000, 6211, 599, -1000, 6211, - -1000, -1000, -1000, 429, 429, 429, 389, -1000, 802, 521, - -1000, -1000, -1000, -130, -132, -1000, -1000, 2611, -1000, 2611, - 10253, -1000, 367, 350, -1000, -1000, 625, 28, -1000, -1000, - -1000, 423, 110, 110, -1000, 155, -1000, -1000, -1000, 420, - -1000, 416, 526, 410, 10699, -1000, -1000, 516, -1000, 165, - -1000, -1000, 10253, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 10253, 10699, -1000, -1000, -1000, - -1000, -1000, 10253, -1000, -1000, 341, 6211, -1000, -1000, -1000, - 3591, -1000, 818, 8914, -1000, -1000, 364, -1000, 6657, 1907, - 1907, -1000, -1000, 364, 595, 595, -1000, 595, 597, -1000, - 595, -15, 595, -16, 364, 364, 1524, 1728, -1000, 422, - 1553, 429, -165, -1000, 180, 6211, -1000, 732, 490, 498, - -1000, -1000, 5280, 364, 391, 77, 389, 776, -1000, 180, - 180, 180, 10253, 180, 10253, 10253, 10253, 7567, 10253, 776, - -1000, -1000, -1000, -1000, 2366, -1000, 387, -1000, 595, -1000, - -1000, -60, 828, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -33, 340, -33, 259, -1000, 257, - 2856, 3591, 2611, -1000, 594, -1000, -1000, -1000, -1000, 741, - -1000, 180, 815, 513, -1000, 1907, -1000, -1000, 86, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6657, 6657, - -1000, 6657, 6657, 6657, 364, 322, 180, 748, -1000, 429, - -1000, -1000, 560, 10253, 10253, -1000, -1000, 377, -1000, 371, - 371, 371, 125, -1000, -1000, 107, 10253, -1000, 133, -1000, - -147, 110, -1000, 110, 417, 406, -1000, -1000, -1000, 10253, - 429, 805, 779, -1000, -1000, 1509, 1509, 1509, 1509, 16, - -1000, -1000, 826, -1000, 429, -1000, 593, 73, -1000, 10253, - -1000, -1000, -1000, -1000, -1000, 107, -1000, 347, 160, 317, - -1000, 239, 747, -1000, 738, -1000, -1000, -1000, -1000, -1000, - 363, 12, -1000, 6211, 6211, -1000, -1000, -1000, -1000, 364, - 49, -178, 10476, 498, 364, 10253, -1000, -1000, -1000, 256, - -1000, -1000, -1000, 316, -1000, -1000, 606, 361, -1000, 10253, - 180, 494, -1000, 706, -171, -181, 435, -1000, -1000, -1000, - -1000, -174, -1000, 12, 715, -1000, 705, -1000, -1000, -1000, - 9, -175, 4, -179, 429, -182, 6434, -1000, 1509, 364, - -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 225, -1000, -1000, -1000, -1000, + 751, 6345, 6345, 3960, 6345, -1000, -1000, -1000, 825, -1000, + 865, 883, -1000, 760, 759, 5643, -1000, -1000, 157, 172, + -1000, -1000, 350, -1000, -1000, -1000, -1000, 103, 623, -1000, + 710, -1000, -1000, -1000, -1000, 345, 6793, 6793, 6793, 62, + 710, 1735, 1170, 605, 115, 422, 422, 121, 121, 121, + 121, 121, 736, 736, -1000, -1000, -1000, 335, -1000, -1000, + -1000, 335, 5643, 617, -1000, -1000, 6345, -1000, 335, 477, + 477, 278, 394, 599, -1000, 102, 566, 477, 5643, 219, + -1000, 6345, 335, -1000, 477, 335, 477, 477, 511, 623, + -1000, 587, -1000, 185, 840, 640, 677, 614, -1000, -1000, + -1000, -1000, 716, -1000, 695, -1000, -1000, -1000, -1000, -1000, + 68, 67, 65, 10405, -1000, 892, 9060, 564, -1000, -1000, + 613, -101, -92, -1000, -1000, -1000, 163, -1000, 410, 610, + 2484, -1000, -1000, -1000, -1000, -1000, -1000, 637, 818, 173, + 183, 407, -1000, -1000, 791, -1000, 231, -82, -1000, -1000, + 328, -37, -37, -1000, -1000, 113, 764, 113, 113, 113, + 362, 362, -1000, -1000, -1000, -1000, 324, -1000, -1000, -1000, + 299, -1000, 669, 10405, 2976, -1000, 3714, -1000, -1000, -1000, + -1000, -1000, -1000, 300, 192, 204, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 9, -1000, 2976, + -1000, 248, 10853, 10853, 737, 163, 163, 100, -1000, -1000, + 10853, -1000, -1000, -1000, -1000, 562, -1000, -1000, -1000, 3222, + 5643, -1000, 62, 710, 1672, -1000, 6793, 6793, -1000, -1000, + 477, 5643, 163, -1000, -1000, -1000, 222, 314, 222, 6793, + 6793, 3960, 6793, 6793, -164, 536, 182, -1000, 6345, 374, + -1000, -1000, -1000, -1000, -1000, 667, 10629, 623, -1000, 7931, + 10405, 884, 10629, 6345, 6345, -1000, -1000, 6345, 632, -1000, + 6345, -1000, -1000, -1000, 623, 623, 623, 432, -1000, 884, + 564, -1000, -1000, -1000, -129, -137, -1000, -1000, 2730, -1000, + 2730, 10405, -1000, 398, 396, -1000, -1000, 666, 66, -1000, + -1000, -1000, 438, 113, 113, -1000, 162, -1000, -1000, -1000, + 461, -1000, 454, 600, 437, 10853, -1000, -1000, 559, -1000, + 178, -1000, -1000, 10405, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 10405, 10853, -1000, -1000, + -1000, -1000, -1000, 10405, -1000, -1000, 357, 6345, -1000, -1000, + -1000, 3714, -1000, 892, 9060, -1000, -1000, 335, -1000, 6793, + 710, 710, -1000, -1000, 335, 630, 630, -1000, 630, 631, + -1000, 630, -20, 630, -21, 335, 335, 1056, 1584, -1000, + 684, 404, 623, -161, -1000, 163, 6345, -1000, 820, 520, + 532, -1000, -1000, 5410, 335, 435, 77, 432, 878, -1000, + 163, 163, 163, 10405, 163, 10405, 10405, 10405, 7707, 10405, + 878, -1000, -1000, -1000, -1000, 2484, -1000, 423, -1000, 630, + -1000, -1000, -73, 899, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -37, 351, -37, 294, -1000, + 288, 2976, 3714, 2730, -1000, 628, -1000, -1000, -1000, -1000, + 823, -1000, 163, 890, 542, -1000, 710, -1000, -1000, 84, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6793, + 6793, -1000, 6793, 6793, 6793, 335, 341, 163, 817, -1000, + 623, -1000, -1000, 642, 10405, 10405, -1000, -1000, 420, -1000, + 416, 416, 416, 122, -1000, -1000, 118, 10405, -1000, 181, + -1000, -141, 113, -1000, 113, 421, 395, -1000, -1000, -1000, + 10405, 623, 886, 880, -1000, -1000, 1254, 1254, 1254, 1254, + 6, -1000, -1000, 898, -1000, 623, -1000, 643, 74, -1000, + 10405, -1000, -1000, -1000, -1000, -1000, 118, -1000, 390, 167, + 338, -1000, 268, 815, -1000, 793, -1000, -1000, -1000, -1000, + -1000, 402, 7, -1000, 6345, 6345, -1000, -1000, -1000, -1000, + 335, 34, -177, 10629, 532, 335, 10405, -1000, -1000, -1000, + 286, -1000, -1000, -1000, 334, -1000, -1000, 513, 387, -1000, + 10405, 163, 521, -1000, 733, -168, -181, 512, -1000, -1000, + -1000, -1000, -170, -1000, 7, 741, -1000, 697, -1000, -1000, + -1000, 3, -175, -1, -179, 623, -182, 6569, -1000, 1254, + 335, -1000, -1000, } var yyPgo = [...]int{ - 0, 1069, 13, 493, 1068, 1067, 1063, 1059, 1058, 1056, - 1055, 1053, 1052, 1047, 1045, 1044, 1042, 1040, 1039, 1037, - 1036, 1035, 1033, 1032, 104, 1031, 1027, 1026, 57, 1025, - 63, 1024, 1022, 33, 225, 45, 30, 150, 1018, 31, - 54, 84, 1017, 35, 1016, 1014, 70, 1013, 51, 1000, - 999, 1293, 998, 995, 19, 41, 993, 991, 990, 989, - 60, 312, 988, 987, 985, 982, 981, 979, 39, 5, - 7, 12, 11, 978, 127, 15, 976, 55, 975, 974, - 973, 971, 25, 970, 46, 965, 21, 40, 964, 16, - 53, 28, 23, 2, 65, 47, 962, 27, 50, 38, - 961, 958, 367, 948, 944, 942, 940, 936, 934, 140, - 309, 932, 931, 930, 928, 32, 167, 466, 73, 58, - 927, 926, 925, 1239, 59, 52, 22, 924, 36, 1247, - 42, 912, 910, 29, 909, 908, 897, 895, 894, 893, - 892, 264, 890, 889, 887, 17, 20, 882, 881, 49, - 26, 878, 877, 876, 34, 37, 874, 44, 873, 872, - 867, 866, 24, 10, 865, 9, 862, 8, 860, 856, - 4, 853, 18, 852, 3, 851, 6, 43, 850, 847, - 0, 323, 844, 843, 105, + 0, 1121, 22, 584, 1120, 1119, 1118, 1117, 1115, 1114, + 1109, 1106, 1104, 1103, 1101, 1099, 1095, 1091, 1090, 1089, + 1085, 1084, 1083, 1082, 110, 1081, 1080, 1077, 59, 1075, + 64, 1074, 1072, 38, 215, 35, 32, 299, 1065, 33, + 84, 52, 1064, 40, 1062, 1059, 65, 1057, 51, 1056, + 1055, 1399, 1054, 1053, 13, 26, 1052, 1049, 1044, 1043, + 54, 375, 1042, 1041, 1040, 1039, 1038, 1036, 42, 6, + 9, 11, 14, 1034, 410, 8, 1033, 41, 1031, 1030, + 1029, 1027, 28, 1026, 44, 1025, 21, 43, 1023, 10, + 60, 31, 18, 5, 63, 50, 1019, 30, 53, 39, + 1018, 1017, 394, 1016, 1013, 1012, 1011, 1010, 1009, 130, + 267, 1008, 1007, 1006, 1005, 49, 167, 483, 633, 61, + 1003, 1002, 1001, 1369, 57, 47, 16, 1000, 29, 1196, + 34, 999, 998, 27, 995, 993, 992, 990, 986, 985, + 983, 24, 979, 977, 976, 58, 12, 975, 959, 45, + 19, 953, 948, 947, 37, 46, 943, 55, 937, 935, + 934, 933, 25, 20, 932, 15, 929, 7, 928, 927, + 3, 926, 17, 925, 2, 924, 4, 36, 915, 914, + 0, 563, 913, 912, 94, } var yyR1 = [...]int{ @@ -1939,27 +1957,27 @@ var yyR1 = [...]int{ 37, 37, 37, 103, 103, 57, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 67, 67, 67, 67, 67, 67, 58, 58, 58, 58, 58, 58, 58, - 33, 33, 68, 68, 68, 74, 69, 69, 61, 61, + 58, 33, 33, 68, 68, 68, 74, 69, 69, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 65, - 65, 65, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 64, 64, 64, - 64, 64, 64, 64, 64, 184, 184, 66, 66, 66, - 66, 31, 31, 31, 31, 31, 130, 130, 133, 133, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 65, 65, 65, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 64, 64, + 64, 64, 64, 64, 64, 64, 184, 184, 66, 66, + 66, 66, 31, 31, 31, 31, 31, 130, 130, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 78, 78, 32, 32, 76, 76, 77, 79, 79, - 75, 75, 75, 60, 60, 60, 60, 60, 60, 60, - 60, 62, 62, 62, 80, 80, 81, 81, 82, 82, - 83, 83, 84, 85, 85, 85, 86, 86, 86, 86, - 87, 87, 87, 59, 59, 59, 59, 59, 59, 88, - 88, 88, 88, 92, 92, 70, 70, 72, 72, 71, - 73, 93, 93, 97, 94, 94, 98, 98, 98, 96, - 96, 96, 122, 122, 122, 101, 101, 109, 109, 110, - 110, 102, 102, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 112, 112, 112, 113, 113, 114, 114, - 114, 121, 121, 117, 117, 118, 118, 123, 123, 124, - 124, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 133, 133, 78, 78, 32, 32, 76, 76, 77, 79, + 79, 75, 75, 75, 60, 60, 60, 60, 60, 60, + 60, 60, 62, 62, 62, 80, 80, 81, 81, 82, + 82, 83, 83, 84, 85, 85, 85, 86, 86, 86, + 86, 87, 87, 87, 59, 59, 59, 59, 59, 59, + 88, 88, 88, 88, 92, 92, 70, 70, 72, 72, + 71, 73, 93, 93, 97, 94, 94, 98, 98, 98, + 96, 96, 96, 122, 122, 122, 101, 101, 109, 109, + 110, 110, 102, 102, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 112, 112, 112, 113, 113, 114, + 114, 114, 121, 121, 117, 117, 118, 118, 123, 123, + 124, 124, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, @@ -1968,7 +1986,7 @@ var yyR1 = [...]int{ 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, + 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, @@ -1978,7 +1996,7 @@ var yyR1 = [...]int{ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 180, 181, 128, 129, 129, 129, + 116, 116, 180, 181, 128, 129, 129, 129, } var yyR2 = [...]int{ @@ -2021,26 +2039,26 @@ var yyR2 = [...]int{ 3, 1, 2, 0, 3, 1, 1, 3, 3, 4, 4, 5, 3, 4, 5, 6, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 0, 2, 1, 1, 1, 3, 1, 3, 1, 1, - 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, - 2, 2, 2, 2, 3, 1, 1, 1, 1, 4, - 5, 6, 4, 4, 6, 6, 6, 6, 8, 8, - 6, 8, 8, 9, 7, 5, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 2, 4, 4, 4, - 4, 0, 3, 4, 7, 3, 1, 1, 2, 3, - 3, 1, 2, 2, 1, 2, 1, 2, 2, 1, - 2, 0, 1, 0, 2, 1, 2, 4, 0, 2, - 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 0, 3, 0, 2, 0, 3, - 1, 3, 2, 0, 1, 1, 0, 2, 4, 4, - 0, 2, 4, 2, 1, 3, 5, 4, 6, 1, - 3, 3, 5, 0, 5, 1, 3, 1, 2, 3, - 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, - 2, 1, 1, 1, 1, 1, 1, 0, 2, 0, - 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, - 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 2, 1, 1, 1, 3, 1, 3, 1, + 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, + 4, 5, 6, 4, 4, 6, 6, 6, 6, 8, + 8, 6, 8, 8, 9, 7, 5, 4, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 2, 4, 4, + 4, 4, 0, 3, 4, 7, 3, 1, 1, 2, + 3, 3, 1, 2, 2, 1, 2, 1, 2, 2, + 1, 2, 0, 1, 0, 2, 1, 2, 4, 0, + 2, 1, 3, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 0, 3, 0, 2, 0, + 3, 1, 3, 2, 0, 1, 1, 0, 2, 4, + 4, 0, 2, 4, 2, 1, 3, 5, 4, 6, + 1, 3, 3, 5, 0, 5, 1, 3, 1, 2, + 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, + 1, 2, 1, 1, 1, 1, 1, 1, 0, 2, + 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, + 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2060,289 +2078,289 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ -1000, -178, -1, -2, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -17, -18, -19, -21, -22, -23, -20, -3, -4, 6, 7, -27, 9, 10, 30, -16, - 112, 113, 115, 114, 140, 116, 133, 49, 152, 153, - 155, 156, 25, 134, 135, 138, 139, -180, 8, 235, - 53, -179, 250, -82, 15, -26, 5, -24, -183, -24, - -24, -24, -24, -24, -159, 53, -114, 121, 70, 148, - 227, 118, 119, 125, -117, 56, -116, 243, 152, 163, - 157, 184, 176, 174, 177, 214, 65, 155, 223, 136, - 172, 168, 166, 27, 189, 248, 167, 131, 130, 190, - 194, 215, 161, 162, 217, 188, 132, 32, 245, 34, - 144, 218, 192, 187, 183, 186, 160, 182, 38, 196, - 195, 197, 213, 179, 169, 18, 221, 139, 142, 191, - 193, 126, 146, 247, 219, 165, 143, 138, 222, 156, - 216, 225, 37, 201, 159, 129, 153, 150, 180, 145, - 170, 171, 185, 158, 181, 154, 147, 140, 224, 202, - 249, 178, 175, 151, 149, 206, 207, 208, 209, 246, - 220, 173, 203, -102, 121, 123, 119, 119, 120, 121, - 227, 118, 119, -51, -123, 56, -116, 121, 148, 119, - 106, 177, 112, 204, 120, 32, 146, -132, 119, -104, - 149, 206, 207, 208, 209, 56, 216, 215, 210, -123, - 154, -128, -128, -128, -128, -128, -2, -86, 17, 16, + 113, 114, 116, 115, 141, 117, 134, 49, 153, 154, + 156, 157, 25, 135, 136, 139, 140, -180, 8, 236, + 53, -179, 251, -82, 15, -26, 5, -24, -183, -24, + -24, -24, -24, -24, -159, 53, -114, 122, 70, 149, + 228, 119, 120, 126, -117, 56, -116, 244, 153, 164, + 158, 185, 177, 175, 178, 215, 65, 156, 224, 137, + 173, 169, 167, 27, 190, 249, 168, 132, 131, 191, + 195, 216, 162, 163, 218, 189, 133, 32, 246, 34, + 145, 219, 193, 188, 184, 187, 161, 183, 38, 197, + 196, 198, 214, 180, 170, 18, 222, 140, 143, 192, + 194, 127, 147, 248, 220, 166, 144, 139, 223, 157, + 217, 226, 37, 202, 160, 130, 154, 151, 181, 146, + 171, 172, 186, 159, 182, 155, 148, 141, 225, 203, + 250, 179, 176, 152, 150, 207, 208, 209, 210, 247, + 221, 174, 204, -102, 122, 124, 120, 120, 121, 122, + 228, 119, 120, -51, -123, 56, -116, 122, 149, 120, + 107, 178, 113, 205, 121, 32, 147, -132, 120, -104, + 150, 207, 208, 209, 210, 56, 217, 216, 211, -123, + 155, -128, -128, -128, -128, -128, -2, -86, 17, 16, -5, -3, -180, 6, 20, 21, -30, 39, 40, -25, - -36, 97, -37, -123, -56, 72, -61, 29, 56, -116, - 23, -60, -57, -75, -73, -74, 106, 107, 95, 96, - 103, 73, 108, -65, -63, -64, -66, 58, 57, 66, + -36, 98, -37, -123, -56, 72, -61, 29, 56, -116, + 23, -60, -57, -75, -73, -74, 107, 108, 96, 97, + 104, 73, 109, -65, -63, -64, -66, 58, 57, 66, 59, 60, 61, 62, 67, 68, 69, -117, -71, -180, - 43, 44, 236, 237, 238, 239, 242, 240, 75, 33, - 226, 234, 233, 232, 230, 231, 228, 229, 124, 227, - 101, 235, -102, -39, -40, -41, -42, -53, -74, -180, - -51, 11, -46, -51, -94, -131, 154, -98, 216, 215, - -118, -96, -117, -115, 214, 177, 213, 117, 71, 22, - 24, 199, 74, 106, 16, 75, 105, 236, 112, 47, - 228, 229, 226, 238, 239, 227, 204, 29, 10, 25, - 134, 21, 99, 114, 78, 79, 137, 23, 135, 69, - 19, 50, 11, 13, 14, 124, 123, 90, 120, 45, - 8, 108, 26, 87, 41, 28, 43, 88, 17, 230, - 231, 31, 242, 141, 101, 48, 35, 72, 67, 51, - 70, 15, 46, 89, 115, 235, 44, 118, 6, 241, - 30, 133, 42, 119, 205, 77, 122, 68, 5, 125, - 9, 49, 52, 232, 233, 234, 33, 76, 12, -160, - -155, 56, 120, -51, 235, -117, -110, 124, -110, -110, - 119, -51, -51, -109, 124, 56, -109, -109, -109, -51, - 109, -51, 56, 30, 227, 56, 146, 119, 147, 121, - -129, -180, -118, -129, -129, -129, 150, 151, -129, -105, - 211, 51, -129, -181, 55, -87, 19, 31, -37, -123, + 43, 44, 237, 238, 239, 240, 243, 241, 75, 33, + 227, 235, 234, 233, 231, 232, 229, 230, 125, 228, + 102, 236, -102, -39, -40, -41, -42, -53, -74, -180, + -51, 11, -46, -51, -94, -131, 155, -98, 217, 216, + -118, -96, -117, -115, 215, 178, 214, 118, 71, 22, + 24, 200, 74, 107, 16, 75, 106, 237, 113, 47, + 229, 230, 227, 239, 240, 228, 205, 29, 10, 25, + 135, 21, 100, 115, 78, 79, 138, 23, 136, 69, + 19, 50, 11, 13, 14, 125, 124, 90, 121, 45, + 8, 109, 26, 87, 41, 28, 43, 88, 17, 231, + 232, 31, 243, 142, 102, 48, 35, 72, 67, 51, + 70, 15, 46, 89, 116, 236, 44, 119, 6, 242, + 30, 134, 42, 120, 206, 77, 123, 68, 5, 126, + 9, 49, 52, 233, 234, 235, 33, 76, 12, -160, + -155, 56, 121, -51, 236, -117, -110, 125, -110, -110, + 120, -51, -51, -109, 125, 56, -109, -109, -109, -51, + 110, -51, 56, 30, 228, 56, 147, 120, 148, 122, + -129, -180, -118, -129, -129, -129, 151, 152, -129, -105, + 212, 51, -129, -181, 55, -87, 19, 31, -37, -123, -83, -84, -37, -82, -2, -24, 35, -28, 21, 64, - 11, -120, 71, 70, 87, -119, 22, -117, 58, 109, - -37, -58, 90, 72, 88, 89, 74, 92, 91, 102, - 95, 96, 97, 98, 99, 100, 101, 93, 94, 105, - 80, 81, 82, 83, 84, 85, 86, -103, -180, -74, - -180, 110, 111, -61, -61, -61, -61, -61, -61, -61, - -180, -2, -69, -37, -180, -180, -180, -180, -180, -180, - -180, -180, -180, -78, -37, -180, -184, -180, -184, -184, - -184, -184, -184, -184, -184, -180, -180, -180, -180, -52, - 26, -51, 30, 54, -47, -49, -48, -50, 41, 45, - 47, 42, 43, 44, 48, -127, 22, -39, -180, -126, - 142, -125, 22, -123, 58, -51, -46, -182, 54, 11, - 52, 54, -94, 154, -95, -99, 217, 219, 80, -122, - -117, 58, 29, 30, 55, 54, -134, -137, -139, -138, - -140, -135, -136, 174, 175, 106, 178, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 30, 136, 170, - 171, 172, 173, 190, 191, 192, 193, 194, 195, 196, - 197, 157, 158, 159, 160, 161, 162, 163, 165, 166, - 167, 168, 169, 56, -129, 121, -176, 52, 56, 72, - 56, -51, -51, -129, 122, -51, 23, 51, -51, 56, - 56, -124, -123, -115, -129, -129, -129, -129, -129, -129, - -129, -129, -129, -129, -107, 205, 212, -51, 9, 90, - 54, 18, 109, 54, -85, 24, 25, -86, -181, -30, - -62, -117, 59, 62, -29, 42, -51, -37, -37, -67, - 67, 72, 68, 69, -119, 97, -124, -118, -115, -61, - -68, -71, -74, 63, 90, 88, 89, 74, -61, -61, + 11, -120, 71, 70, 87, -119, 22, -117, 58, 110, + -37, -58, 90, 72, 88, 89, 74, 93, 92, 103, + 96, 97, 98, 99, 100, 101, 102, 94, 95, 106, + 80, 81, 82, 83, 84, 85, 86, 91, -103, -180, + -74, -180, 111, 112, -61, -61, -61, -61, -61, -61, + -61, -180, -2, -69, -37, -180, -180, -180, -180, -180, + -180, -180, -180, -180, -78, -37, -180, -184, -180, -184, + -184, -184, -184, -184, -184, -184, -180, -180, -180, -180, + -52, 26, -51, 30, 54, -47, -49, -48, -50, 41, + 45, 47, 42, 43, 44, 48, -127, 22, -39, -180, + -126, 143, -125, 22, -123, 58, -51, -46, -182, 54, + 11, 52, 54, -94, 155, -95, -99, 218, 220, 80, + -122, -117, 58, 29, 30, 55, 54, -134, -137, -139, + -138, -140, -135, -136, 175, 176, 107, 179, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 30, 137, + 171, 172, 173, 174, 191, 192, 193, 194, 195, 196, + 197, 198, 158, 159, 160, 161, 162, 163, 164, 166, + 167, 168, 169, 170, 56, -129, 122, -176, 52, 56, + 72, 56, -51, -51, -129, 123, -51, 23, 51, -51, + 56, 56, -124, -123, -115, -129, -129, -129, -129, -129, + -129, -129, -129, -129, -129, -107, 206, 213, -51, 9, + 90, 54, 18, 110, 54, -85, 24, 25, -86, -181, + -30, -62, -117, 59, 62, -29, 42, -51, -37, -37, + -67, 67, 72, 68, 69, -119, 98, -124, -118, -115, + -61, -68, -71, -74, 63, 90, 88, 89, 74, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -130, 56, 58, 56, -60, -60, -117, - -35, 21, -34, -36, -181, 54, -181, -2, -34, -34, - -37, -37, -75, -117, -123, -75, -34, -28, -76, -77, - 76, -75, -181, -34, -35, -34, -34, -90, 142, -51, - -93, -97, -75, -40, -41, -41, -40, -41, 41, 41, - 41, 46, 41, 46, 41, -48, -123, -181, -54, 49, - 123, 50, -180, -125, -90, 52, -39, -51, -98, -95, - 54, 218, 220, 221, 51, -37, -146, 105, -161, -162, - -163, -118, 58, 59, -155, -156, -164, 126, 129, 125, - -157, 120, 28, -151, 67, 72, -147, 202, -141, 53, - -141, -141, -141, -141, -145, 177, -145, -145, -145, 53, - 53, -141, -141, -141, -149, 53, -149, -149, -150, 53, - -150, -121, 52, -51, -174, 246, -175, 56, -129, 23, - -129, -111, 117, 114, 115, -171, 113, 199, 177, 65, - 29, 15, 236, 142, 249, 56, 143, -51, -51, -129, - -106, 11, 90, 37, -37, -37, -124, -84, -87, -101, - 19, 11, 33, 33, -34, 67, 68, 69, 109, -180, - -68, -61, -61, -61, -33, 137, 71, -181, -181, -34, - 54, -37, -181, -181, -181, 54, 52, 22, 54, 11, - 109, 54, 11, -181, -34, -79, -77, 78, -37, -181, - -181, -181, -181, -181, -59, 30, 33, -2, -180, -180, - -55, 54, 12, 80, -44, -43, 51, 52, -45, 51, - -43, 41, 41, 120, 120, 120, -91, -117, -55, -39, - -55, -99, -100, 222, 219, 225, 56, 54, -163, 80, - 53, 28, -157, -157, 56, 56, -142, 29, 67, -148, - 203, 59, -145, -145, -146, 30, -146, -146, -146, -154, - 58, -154, 59, 59, 51, -117, -129, -173, -172, -118, - -128, -177, 148, 127, 128, 131, 130, 56, 120, 28, - 126, 129, 142, 125, -177, 148, -112, -113, 122, 22, - 120, 28, 142, -129, -108, 88, 12, -123, -123, 38, - 109, -51, -38, 11, 97, -118, -35, -33, 71, -61, - -61, -181, -36, -133, 106, 174, 136, 172, 168, 188, - 179, 201, 170, 202, -130, -133, -61, -61, -118, -61, - -61, 243, -82, 79, -37, 77, -92, 51, -93, -70, - -72, -71, -180, -2, -88, -117, -91, -82, -97, -37, - -37, -37, 53, -37, -180, -180, -180, -181, 54, -82, - -55, 219, 223, 224, -162, -163, -166, -165, -117, 56, - 56, -144, 51, 58, 59, 60, 67, 226, 66, 55, - -146, -146, 56, 106, 55, 54, 55, 54, 55, 54, - -51, 54, 80, -128, -117, -128, -117, -51, -128, -117, - 58, -37, -55, -39, -181, -61, -181, -141, -141, -141, - -150, -141, 162, -141, 162, -181, -181, -181, 54, 19, - -181, 54, 19, -180, -32, 241, -37, 27, -92, 54, - -181, -181, -181, 54, 109, -181, -86, -89, -117, -89, - -89, -89, -126, -117, -86, 55, 54, -141, -152, 199, - 9, -145, 58, -145, 59, 59, -129, -172, -163, 53, - 26, -80, 13, -145, 56, -61, -61, -61, -61, -61, - -181, 58, 28, -72, 33, -2, -180, -117, -117, 54, - 55, -181, -181, -181, -54, -168, -167, 52, 132, 65, - -165, -153, 126, 28, 125, 226, -146, -146, 55, 55, - -89, -180, -81, 14, 16, -181, -181, -181, -181, -31, - 90, 246, 9, -70, -2, 109, -117, -167, 56, -158, - 80, 58, -143, 65, 28, 28, 55, -169, -170, 142, - -37, -69, -181, 244, 48, 247, -93, -181, -117, 59, - 58, -176, -181, 54, -117, 38, 245, 248, -174, -170, - 33, 38, 144, 246, 145, 247, -180, 248, -61, 141, - -181, -181, + -61, -61, -61, -61, -130, 56, 58, 56, -60, -60, + -117, -35, 21, -34, -36, -181, 54, -181, -2, -34, + -34, -37, -37, -75, -117, -123, -75, -34, -28, -76, + -77, 76, -75, -181, -34, -35, -34, -34, -90, 143, + -51, -93, -97, -75, -40, -41, -41, -40, -41, 41, + 41, 41, 46, 41, 46, 41, -48, -123, -181, -54, + 49, 124, 50, -180, -125, -90, 52, -39, -51, -98, + -95, 54, 219, 221, 222, 51, -37, -146, 106, -161, + -162, -163, -118, 58, 59, -155, -156, -164, 127, 130, + 126, -157, 121, 28, -151, 67, 72, -147, 203, -141, + 53, -141, -141, -141, -141, -145, 178, -145, -145, -145, + 53, 53, -141, -141, -141, -149, 53, -149, -149, -150, + 53, -150, -121, 52, -51, -174, 247, -175, 56, -129, + 23, -129, -111, 118, 115, 116, -171, 114, 200, 178, + 65, 29, 15, 237, 143, 250, 56, 144, -51, -51, + -129, -106, 11, 90, 37, -37, -37, -124, -84, -87, + -101, 19, 11, 33, 33, -34, 67, 68, 69, 110, + -180, -68, -61, -61, -61, -33, 138, 71, -181, -181, + -34, 54, -37, -181, -181, -181, 54, 52, 22, 54, + 11, 110, 54, 11, -181, -34, -79, -77, 78, -37, + -181, -181, -181, -181, -181, -59, 30, 33, -2, -180, + -180, -55, 54, 12, 80, -44, -43, 51, 52, -45, + 51, -43, 41, 41, 121, 121, 121, -91, -117, -55, + -39, -55, -99, -100, 223, 220, 226, 56, 54, -163, + 80, 53, 28, -157, -157, 56, 56, -142, 29, 67, + -148, 204, 59, -145, -145, -146, 30, -146, -146, -146, + -154, 58, -154, 59, 59, 51, -117, -129, -173, -172, + -118, -128, -177, 149, 128, 129, 132, 131, 56, 121, + 28, 127, 130, 143, 126, -177, 149, -112, -113, 123, + 22, 121, 28, 143, -129, -108, 88, 12, -123, -123, + 38, 110, -51, -38, 11, 98, -118, -35, -33, 71, + -61, -61, -181, -36, -133, 107, 175, 137, 173, 169, + 189, 180, 202, 171, 203, -130, -133, -61, -61, -118, + -61, -61, 244, -82, 79, -37, 77, -92, 51, -93, + -70, -72, -71, -180, -2, -88, -117, -91, -82, -97, + -37, -37, -37, 53, -37, -180, -180, -180, -181, 54, + -82, -55, 220, 224, 225, -162, -163, -166, -165, -117, + 56, 56, -144, 51, 58, 59, 60, 67, 227, 66, + 55, -146, -146, 56, 107, 55, 54, 55, 54, 55, + 54, -51, 54, 80, -128, -117, -128, -117, -51, -128, + -117, 58, -37, -55, -39, -181, -61, -181, -141, -141, + -141, -150, -141, 163, -141, 163, -181, -181, -181, 54, + 19, -181, 54, 19, -180, -32, 242, -37, 27, -92, + 54, -181, -181, -181, 54, 110, -181, -86, -89, -117, + -89, -89, -89, -126, -117, -86, 55, 54, -141, -152, + 200, 9, -145, 58, -145, 59, 59, -129, -172, -163, + 53, 26, -80, 13, -145, 56, -61, -61, -61, -61, + -61, -181, 58, 28, -72, 33, -2, -180, -117, -117, + 54, 55, -181, -181, -181, -54, -168, -167, 52, 133, + 65, -165, -153, 127, 28, 126, 227, -146, -146, 55, + 55, -89, -180, -81, 14, 16, -181, -181, -181, -181, + -31, 90, 247, 9, -70, -2, 110, -117, -167, 56, + -158, 80, 58, -143, 65, 28, 28, 55, -169, -170, + 143, -37, -69, -181, 245, 48, 248, -93, -181, -117, + 59, 58, -176, -181, 54, -117, 38, 246, 249, -174, + -170, 33, 38, 145, 247, 146, 248, -180, 249, -61, + 142, -181, -181, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 508, 0, 277, 277, 277, 277, 277, 277, 0, - 578, 561, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 783, 783, 783, 783, 783, 0, 33, 34, - 781, 1, 3, 516, 0, 0, 281, 284, 279, 0, - 561, 0, 0, 0, 60, 0, 0, 770, 0, 771, - 559, 559, 559, 579, 580, 583, 584, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, - 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, - 766, 767, 768, 769, 772, 773, 774, 775, 776, 777, - 778, 779, 780, 0, 0, 562, 0, 557, 0, 557, - 557, 557, 0, 226, 348, 587, 588, 770, 771, 0, - 0, 0, 0, 784, 784, 784, 784, 0, 784, 255, - 244, 246, 247, 248, 249, 784, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 520, 0, 0, - 508, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 21, 509, 0, 277, 277, 277, 277, 277, 277, 0, + 579, 562, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 784, 784, 784, 784, 784, 0, 33, 34, + 782, 1, 3, 517, 0, 0, 281, 284, 279, 0, + 562, 0, 0, 0, 60, 0, 0, 771, 0, 772, + 560, 560, 560, 580, 581, 584, 585, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, + 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 770, 773, 774, 775, 776, 777, 778, + 779, 780, 781, 0, 0, 563, 0, 558, 0, 558, + 558, 558, 0, 226, 348, 588, 589, 771, 772, 0, + 0, 0, 0, 785, 785, 785, 785, 0, 785, 255, + 244, 246, 247, 248, 249, 785, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 521, 0, 0, + 509, 29, 0, 277, 282, 283, 287, 285, 286, 278, 0, 295, 299, 0, 356, 0, 361, 363, -2, -2, - 0, 398, 399, 400, 401, 402, 0, 0, 0, 0, - 0, 0, 0, 425, 426, 427, 428, 493, 494, 495, - 496, 497, 498, 499, 500, 365, 366, 490, 540, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, - 455, 455, 455, 455, 455, 455, 455, 455, 0, 0, + 0, 399, 400, 401, 402, 403, 0, 0, 0, 0, + 0, 0, 0, 426, 427, 428, 429, 494, 495, 496, + 497, 498, 499, 500, 501, 365, 366, 491, 541, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, + 456, 456, 456, 456, 456, 456, 456, 456, 0, 0, 0, 0, 0, 0, 306, 308, 309, 310, 329, 0, - 331, 0, 0, 41, 45, 0, 761, 544, -2, -2, - 0, 0, 585, 586, -2, 690, -2, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 0, - 77, 0, 0, 784, 0, 67, 0, 0, 0, 0, - 0, 784, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 227, 784, 784, 784, 784, 784, 784, 784, 784, - 236, 785, 786, 237, 238, 239, 784, 784, 241, 0, - 256, 0, 250, 28, 782, 22, 0, 0, 517, 0, - 509, 510, 513, 516, 27, 284, 0, 289, 288, 280, + 331, 0, 0, 41, 45, 0, 762, 545, -2, -2, + 0, 0, 586, 587, -2, 691, -2, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 0, + 77, 0, 0, 785, 0, 67, 0, 0, 0, 0, + 0, 785, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 227, 785, 785, 785, 785, 785, 785, 785, 785, + 236, 786, 787, 237, 238, 239, 785, 785, 241, 0, + 256, 0, 250, 28, 783, 22, 0, 0, 518, 0, + 510, 511, 514, 517, 27, 284, 0, 289, 288, 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 383, 384, 385, 386, 387, 388, 389, 362, 0, 376, - 0, 0, 0, 418, 419, 420, 421, 422, 423, 0, - 291, 27, 0, 396, 0, 0, 0, 0, 0, 0, - 0, 0, 287, 0, 482, 0, 447, 0, 448, 449, - 450, 451, 452, 453, 454, 0, 291, 0, 0, 43, - 0, 347, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 339, 0, 0, 0, 0, 330, 0, 0, 350, - 734, 332, 0, 334, 335, -2, 0, 0, 0, 39, - 40, 0, 46, 761, 48, 49, 0, 0, 0, 157, - 552, 553, 554, 550, 185, 0, 140, 136, 82, 83, - 84, 129, 86, 129, 129, 129, 129, 154, 154, 154, - 154, 112, 113, 114, 115, 116, 0, 0, 99, 129, - 129, 129, 103, 119, 120, 121, 122, 123, 124, 125, - 126, 87, 88, 89, 90, 91, 92, 93, 131, 131, - 131, 133, 133, 581, 62, 0, 70, 0, 784, 0, - 784, 75, 0, 201, 0, 220, 558, 0, 784, 223, - 224, 349, 589, 590, 228, 229, 230, 231, 232, 233, - 234, 235, 240, 243, 257, 251, 252, 245, 521, 0, - 0, 0, 0, 0, 512, 514, 515, 520, 30, 287, - 0, 501, 0, 0, 0, 290, 25, 357, 358, 360, - 377, 0, 379, 381, 301, 297, 0, 491, -2, 367, - 368, 392, 393, 394, 0, 0, 0, 0, 390, 372, - 0, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 417, 466, 467, 0, 415, 416, 424, - 0, 0, 292, 293, 395, 0, 539, 27, 0, 0, - 0, 0, 0, 490, 0, 0, 0, 0, 488, 485, - 0, 0, 456, 0, 0, 0, 0, 0, 0, 346, - 354, 541, 0, 307, 325, 327, 0, 322, 337, 338, - 340, 0, 342, 0, 344, 345, 311, 312, 313, 0, - 0, 0, 0, 333, 354, 0, 354, 42, 545, 47, - 0, 0, 52, 53, 546, 547, 548, 0, 76, 186, - 188, 191, 192, 193, 78, 79, 0, 0, 0, 0, - 0, 180, 181, 143, 141, 0, 138, 137, 85, 0, - 154, 154, 106, 107, 157, 0, 157, 157, 157, 0, - 0, 100, 101, 102, 94, 0, 95, 96, 97, 0, - 98, 0, 0, 784, 64, 0, 68, 69, 65, 560, - 66, 783, 0, 0, 573, 202, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 0, 219, 784, 222, - 260, 0, 0, 0, 518, 519, 0, 511, 23, 0, - 555, 556, 502, 503, 304, 378, 380, 382, 0, 291, - 369, 390, 373, 0, 370, 0, 0, 364, 429, 0, - 0, 397, -2, 432, 433, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 508, 0, 486, 0, 0, 446, - 457, 458, 459, 460, 533, 0, 0, -2, 0, 0, - 508, 0, 0, 0, 319, 326, 0, 0, 320, 0, - 321, 341, 343, 0, 0, 0, 0, 317, 508, 354, - 38, 50, 51, 0, 0, 57, 158, 0, 189, 0, - 0, 175, 0, 0, 178, 179, 150, 0, 142, 81, - 139, 0, 157, 157, 108, 0, 109, 110, 111, 0, - 127, 0, 0, 0, 0, 582, 63, 71, 72, 0, - 194, 783, 0, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 783, 0, 0, 783, 574, 575, - 576, 577, 0, 221, 242, 0, 0, 258, 259, 522, - 0, 24, 354, 0, 298, 492, 0, 371, 0, 391, - 374, 430, 294, 0, 129, 129, 471, 129, 133, 474, - 129, 476, 129, 479, 0, 0, 0, 0, 491, 0, - 0, 0, 483, 445, 489, 0, 31, 0, 533, 523, - 535, 537, 0, 27, 0, 529, 0, 516, 542, 355, - 543, 323, 0, 328, 0, 0, 0, 331, 0, 516, - 37, 54, 55, 56, 187, 190, 0, 182, 129, 176, - 177, 152, 0, 144, 145, 146, 147, 148, 149, 130, - 104, 105, 155, 156, 154, 0, 154, 0, 134, 0, - 784, 0, 0, 195, 0, 196, 198, 199, 200, 0, - 261, 262, 504, 305, 431, 375, 434, 468, 154, 472, - 473, 475, 477, 478, 480, 436, 435, 437, 0, 0, - 440, 0, 0, 0, 0, 0, 487, 0, 32, 0, - 538, -2, 0, 0, 0, 44, 35, 0, 315, 0, - 0, 0, 350, 318, 36, 167, 0, 184, 159, 153, - 0, 157, 128, 157, 0, 0, 61, 73, 74, 0, - 0, 506, 0, 469, 470, 0, 0, 0, 0, 461, - 444, 484, 0, 536, 0, -2, 0, 531, 530, 0, - 324, 351, 352, 353, 314, 166, 168, 0, 173, 0, - 183, 164, 0, 161, 163, 151, 117, 118, 132, 135, - 0, 0, 26, 0, 0, 438, 439, 441, 442, 0, - 0, 0, 0, 526, 27, 0, 316, 169, 170, 0, - 174, 172, 80, 0, 160, 162, 67, 0, 215, 0, - 507, 505, 443, 0, 0, 0, 534, -2, 532, 171, - 165, 70, 214, 0, 0, 462, 0, 465, 197, 216, - 0, 463, 0, 0, 0, 0, 0, 464, 0, 0, - 217, 218, + 383, 384, 385, 386, 387, 388, 389, 390, 362, 0, + 376, 0, 0, 0, 419, 420, 421, 422, 423, 424, + 0, 291, 27, 0, 397, 0, 0, 0, 0, 0, + 0, 0, 0, 287, 0, 483, 0, 448, 0, 449, + 450, 451, 452, 453, 454, 455, 0, 291, 0, 0, + 43, 0, 347, 0, 0, 0, 0, 0, 0, 336, + 0, 0, 339, 0, 0, 0, 0, 330, 0, 0, + 350, 735, 332, 0, 334, 335, -2, 0, 0, 0, + 39, 40, 0, 46, 762, 48, 49, 0, 0, 0, + 157, 553, 554, 555, 551, 185, 0, 140, 136, 82, + 83, 84, 129, 86, 129, 129, 129, 129, 154, 154, + 154, 154, 112, 113, 114, 115, 116, 0, 0, 99, + 129, 129, 129, 103, 119, 120, 121, 122, 123, 124, + 125, 126, 87, 88, 89, 90, 91, 92, 93, 131, + 131, 131, 133, 133, 582, 62, 0, 70, 0, 785, + 0, 785, 75, 0, 201, 0, 220, 559, 0, 785, + 223, 224, 349, 590, 591, 228, 229, 230, 231, 232, + 233, 234, 235, 240, 243, 257, 251, 252, 245, 522, + 0, 0, 0, 0, 0, 513, 515, 516, 521, 30, + 287, 0, 502, 0, 0, 0, 290, 25, 357, 358, + 360, 377, 0, 379, 381, 301, 297, 0, 492, -2, + 367, 368, 393, 394, 395, 0, 0, 0, 0, 391, + 372, 0, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 418, 467, 468, 0, 416, 417, + 425, 0, 0, 292, 293, 396, 0, 540, 27, 0, + 0, 0, 0, 0, 491, 0, 0, 0, 0, 489, + 486, 0, 0, 457, 0, 0, 0, 0, 0, 0, + 346, 354, 542, 0, 307, 325, 327, 0, 322, 337, + 338, 340, 0, 342, 0, 344, 345, 311, 312, 313, + 0, 0, 0, 0, 333, 354, 0, 354, 42, 546, + 47, 0, 0, 52, 53, 547, 548, 549, 0, 76, + 186, 188, 191, 192, 193, 78, 79, 0, 0, 0, + 0, 0, 180, 181, 143, 141, 0, 138, 137, 85, + 0, 154, 154, 106, 107, 157, 0, 157, 157, 157, + 0, 0, 100, 101, 102, 94, 0, 95, 96, 97, + 0, 98, 0, 0, 785, 64, 0, 68, 69, 65, + 561, 66, 784, 0, 0, 574, 202, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 0, 219, 785, + 222, 260, 0, 0, 0, 519, 520, 0, 512, 23, + 0, 556, 557, 503, 504, 304, 378, 380, 382, 0, + 291, 369, 391, 373, 0, 370, 0, 0, 364, 430, + 0, 0, 398, -2, 433, 434, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 509, 0, 487, 0, 0, + 447, 458, 459, 460, 461, 534, 0, 0, -2, 0, + 0, 509, 0, 0, 0, 319, 326, 0, 0, 320, + 0, 321, 341, 343, 0, 0, 0, 0, 317, 509, + 354, 38, 50, 51, 0, 0, 57, 158, 0, 189, + 0, 0, 175, 0, 0, 178, 179, 150, 0, 142, + 81, 139, 0, 157, 157, 108, 0, 109, 110, 111, + 0, 127, 0, 0, 0, 0, 583, 63, 71, 72, + 0, 194, 784, 0, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 784, 0, 0, 784, 575, + 576, 577, 578, 0, 221, 242, 0, 0, 258, 259, + 523, 0, 24, 354, 0, 298, 493, 0, 371, 0, + 392, 374, 431, 294, 0, 129, 129, 472, 129, 133, + 475, 129, 477, 129, 480, 0, 0, 0, 0, 492, + 0, 0, 0, 484, 446, 490, 0, 31, 0, 534, + 524, 536, 538, 0, 27, 0, 530, 0, 517, 543, + 355, 544, 323, 0, 328, 0, 0, 0, 331, 0, + 517, 37, 54, 55, 56, 187, 190, 0, 182, 129, + 176, 177, 152, 0, 144, 145, 146, 147, 148, 149, + 130, 104, 105, 155, 156, 154, 0, 154, 0, 134, + 0, 785, 0, 0, 195, 0, 196, 198, 199, 200, + 0, 261, 262, 505, 305, 432, 375, 435, 469, 154, + 473, 474, 476, 478, 479, 481, 437, 436, 438, 0, + 0, 441, 0, 0, 0, 0, 0, 488, 0, 32, + 0, 539, -2, 0, 0, 0, 44, 35, 0, 315, + 0, 0, 0, 350, 318, 36, 167, 0, 184, 159, + 153, 0, 157, 128, 157, 0, 0, 61, 73, 74, + 0, 0, 507, 0, 470, 471, 0, 0, 0, 0, + 462, 445, 485, 0, 537, 0, -2, 0, 532, 531, + 0, 324, 351, 352, 353, 314, 166, 168, 0, 173, + 0, 183, 164, 0, 161, 163, 151, 117, 118, 132, + 135, 0, 0, 26, 0, 0, 439, 440, 442, 443, + 0, 0, 0, 0, 527, 27, 0, 316, 169, 170, + 0, 174, 172, 80, 0, 160, 162, 67, 0, 215, + 0, 508, 506, 444, 0, 0, 0, 535, -2, 533, + 171, 165, 70, 214, 0, 0, 463, 0, 466, 197, + 216, 0, 464, 0, 0, 0, 0, 0, 465, 0, + 0, 217, 218, } var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 73, 3, 3, 3, 100, 92, 3, - 53, 55, 97, 95, 54, 96, 109, 98, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 250, + 3, 3, 3, 73, 3, 3, 3, 101, 93, 3, + 53, 55, 98, 96, 54, 97, 110, 99, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 251, 81, 80, 82, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 102, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 103, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 91, 3, 103, + 3, 3, 3, 3, 92, 3, 104, } var yyTok2 = [...]int{ @@ -2354,8 +2372,8 @@ var yyTok2 = [...]int{ 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 83, 84, 85, 86, 87, 88, - 89, 90, 93, 94, 99, 101, 104, 105, 106, 107, - 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 89, 90, 91, 94, 95, 100, 102, 105, 106, 107, + 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, @@ -2369,7 +2387,7 @@ var yyTok2 = [...]int{ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, + 249, 250, } var yyTok3 = [...]int{ 0, @@ -4928,136 +4946,136 @@ yydefault: yyVAL.str = NullSafeEqualStr } case 390: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2052 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2051 { - yyVAL.expr = nil + yyVAL.str = NullSafeNotEqualStr } case 391: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2056 { - yyVAL.expr = yyDollar[2].expr + yyVAL.expr = nil } case 392: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2062 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2060 { - yyVAL.colTuple = yyDollar[1].valTuple + yyVAL.expr = yyDollar[2].expr } case 393: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2066 { - yyVAL.colTuple = yyDollar[1].subquery + yyVAL.colTuple = yyDollar[1].valTuple } case 394: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2070 { - yyVAL.colTuple = ListArg(yyDollar[1].bytes) + yyVAL.colTuple = yyDollar[1].subquery } case 395: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2076 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2074 { - yyVAL.subquery = &Subquery{yyDollar[2].selStmt} + yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 396: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2082 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2080 { - yyVAL.exprs = Exprs{yyDollar[1].expr} + yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 397: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2086 { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) + yyVAL.exprs = Exprs{yyDollar[1].expr} } case 398: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2092 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2090 { - yyVAL.expr = yyDollar[1].expr + yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 399: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2096 { - yyVAL.expr = yyDollar[1].boolVal + yyVAL.expr = yyDollar[1].expr } case 400: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2100 { - yyVAL.expr = yyDollar[1].colName + yyVAL.expr = yyDollar[1].boolVal } case 401: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2104 { - yyVAL.expr = yyDollar[1].expr + yyVAL.expr = yyDollar[1].colName } case 402: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2108 { - yyVAL.expr = yyDollar[1].subquery + yyVAL.expr = yyDollar[1].expr } case 403: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2112 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} + yyVAL.expr = yyDollar[1].subquery } case 404: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2116 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 405: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2120 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 406: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2124 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 407: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2128 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 408: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2132 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 409: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2136 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 410: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2140 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 411: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2144 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 412: yyDollar = yyS[yypt-3 : yypt+1] @@ -5069,47 +5087,53 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2152 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 414: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2156 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 415: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2160 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 416: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2164 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 417: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2168 { - yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 418: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2172 { - yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 419: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2176 { - yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 420: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2180 + { + yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + } + case 421: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2184 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5117,9 +5141,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 421: + case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2188 + //line sql.y:2192 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5133,21 +5157,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 422: + case 423: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2202 + //line sql.y:2206 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 423: + case 424: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2206 + //line sql.y:2210 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 424: + case 425: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2210 + //line sql.y:2214 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5155,41 +5179,35 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 429: + case 430: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2228 + //line sql.y:2232 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 430: + case 431: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2232 + //line sql.y:2236 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 431: + case 432: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2236 + //line sql.y:2240 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 432: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2246 - { - yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} - } case 433: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2250 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 434: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2254 { - yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} + yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 435: yyDollar = yyS[yypt-6 : yypt+1] @@ -5201,19 +5219,19 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2262 { - yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} + yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 437: yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2266 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} + yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 438: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2270 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 439: yyDollar = yyS[yypt-8 : yypt+1] @@ -5222,16 +5240,16 @@ yydefault: yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 440: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:2278 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 441: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2282 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 442: yyDollar = yyS[yypt-8 : yypt+1] @@ -5240,136 +5258,136 @@ yydefault: yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 443: - yyDollar = yyS[yypt-9 : yypt+1] + yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:2290 { - yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 444: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-9 : yypt+1] //line sql.y:2294 { - yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} + yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 445: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:2298 { - yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} + yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 446: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:2302 { - yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} + yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 447: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2312 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2306 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} + yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 448: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2316 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } case 449: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2320 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } case 450: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2324 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } case 451: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2329 + //line sql.y:2328 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } case 452: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2334 + //line sql.y:2333 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } case 453: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2339 + //line sql.y:2338 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } case 454: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2344 + //line sql.y:2343 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 457: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2358 + case 455: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2348 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } case 458: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2362 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } case 459: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2366 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } case 460: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2370 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } case 461: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2376 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2374 { - yyVAL.str = "" + yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } case 462: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2380 { - yyVAL.str = BooleanModeStr + yyVAL.str = "" } case 463: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2384 { - yyVAL.str = NaturalLanguageModeStr + yyVAL.str = BooleanModeStr } case 464: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2388 { - yyVAL.str = NaturalLanguageModeWithQueryExpansionStr + yyVAL.str = NaturalLanguageModeStr } case 465: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:2392 { - yyVAL.str = QueryExpansionStr + yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 466: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2398 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2396 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.str = QueryExpansionStr } case 467: yyDollar = yyS[yypt-1 : yypt+1] @@ -5378,63 +5396,63 @@ yydefault: yyVAL.str = string(yyDollar[1].bytes) } case 468: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2408 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2406 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.str = string(yyDollar[1].bytes) } case 469: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2412 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 470: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2416 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 471: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2420 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } case 472: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2424 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 473: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2428 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} - yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 474: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2434 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2432 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } case 475: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2438 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 476: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2442 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 477: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2446 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} @@ -5443,143 +5461,149 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2450 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 479: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2454 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 480: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2458 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 481: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2462 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + } + case 482: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2463 + //line sql.y:2467 { yyVAL.expr = nil } - case 482: + case 483: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2467 + //line sql.y:2471 { yyVAL.expr = yyDollar[1].expr } - case 483: + case 484: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2472 + //line sql.y:2476 { yyVAL.str = string("") } - case 484: + case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2476 + //line sql.y:2480 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 485: + case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2482 + //line sql.y:2486 { yyVAL.whens = []*When{yyDollar[1].when} } - case 486: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2486 + //line sql.y:2490 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 487: + case 488: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2492 + //line sql.y:2496 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 488: + case 489: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2497 + //line sql.y:2501 { yyVAL.expr = nil } - case 489: + case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2501 + //line sql.y:2505 { yyVAL.expr = yyDollar[2].expr } - case 490: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2507 - { - yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} - } case 491: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2511 { - yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} + yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 492: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2515 { - yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} + yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 493: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2521 + yyDollar = yyS[yypt-5 : yypt+1] + //line sql.y:2519 { - yyVAL.expr = NewStrVal(yyDollar[1].bytes) + yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 494: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2525 { - yyVAL.expr = NewHexVal(yyDollar[1].bytes) + yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 495: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2529 { - yyVAL.expr = NewBitVal(yyDollar[1].bytes) + yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 496: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2533 { - yyVAL.expr = NewIntVal(yyDollar[1].bytes) + yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 497: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2537 { - yyVAL.expr = NewFloatVal(yyDollar[1].bytes) + yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 498: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2541 { - yyVAL.expr = NewHexNum(yyDollar[1].bytes) + yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 499: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2545 { - yyVAL.expr = NewValArg(yyDollar[1].bytes) + yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 500: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2549 { - yyVAL.expr = &NullVal{} + yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 501: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2555 + //line sql.y:2553 + { + yyVAL.expr = &NullVal{} + } + case 502: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2559 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5588,239 +5612,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 502: + case 503: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2564 + //line sql.y:2568 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 503: + case 504: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2568 + //line sql.y:2572 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 504: + case 505: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2573 + //line sql.y:2577 { yyVAL.exprs = nil } - case 505: + case 506: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2577 + //line sql.y:2581 { yyVAL.exprs = yyDollar[3].exprs } - case 506: + case 507: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2582 + //line sql.y:2586 { yyVAL.expr = nil } - case 507: + case 508: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2586 + //line sql.y:2590 { yyVAL.expr = yyDollar[2].expr } - case 508: + case 509: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2591 + //line sql.y:2595 { yyVAL.orderBy = nil } - case 509: + case 510: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2595 + //line sql.y:2599 { yyVAL.orderBy = yyDollar[3].orderBy } - case 510: + case 511: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2601 + //line sql.y:2605 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 511: + case 512: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2605 + //line sql.y:2609 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 512: + case 513: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2611 + //line sql.y:2615 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 513: + case 514: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2616 + //line sql.y:2620 { yyVAL.str = AscScr } - case 514: + case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2620 + //line sql.y:2624 { yyVAL.str = AscScr } - case 515: + case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2624 + //line sql.y:2628 { yyVAL.str = DescScr } - case 516: + case 517: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2629 + //line sql.y:2633 { yyVAL.limit = nil } - case 517: + case 518: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2633 + //line sql.y:2637 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 518: + case 519: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2637 + //line sql.y:2641 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 519: + case 520: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2641 + //line sql.y:2645 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 520: + case 521: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2646 + //line sql.y:2650 { yyVAL.str = "" } - case 521: + case 522: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2650 + //line sql.y:2654 { yyVAL.str = ForUpdateStr } - case 522: + case 523: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2654 + //line sql.y:2658 { yyVAL.str = ShareModeStr } - case 523: + case 524: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2667 + //line sql.y:2671 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 524: + case 525: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2671 + //line sql.y:2675 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 525: + case 526: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2675 + //line sql.y:2679 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 526: + case 527: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2680 + //line sql.y:2684 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 527: + case 528: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2684 + //line sql.y:2688 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 528: + case 529: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2688 + //line sql.y:2692 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 529: + case 530: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2695 + //line sql.y:2699 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 530: + case 531: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2699 + //line sql.y:2703 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 531: + case 532: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2703 + //line sql.y:2707 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 532: + case 533: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2707 + //line sql.y:2711 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 533: + case 534: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2712 + //line sql.y:2716 { yyVAL.updateExprs = nil } - case 534: + case 535: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2716 + //line sql.y:2720 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 535: + case 536: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2722 + //line sql.y:2726 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 536: + case 537: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2726 + //line sql.y:2730 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 537: + case 538: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2732 + //line sql.y:2736 { yyVAL.valTuple = yyDollar[1].valTuple } - case 538: + case 539: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2736 + //line sql.y:2740 { yyVAL.valTuple = ValTuple{} } - case 539: + case 540: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2742 + //line sql.y:2746 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 540: + case 541: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2748 + //line sql.y:2752 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5828,189 +5852,183 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 541: + case 542: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2758 + //line sql.y:2762 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 542: + case 543: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2762 + //line sql.y:2766 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 543: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2768 + //line sql.y:2772 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 544: + case 545: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2774 + //line sql.y:2778 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 545: + case 546: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2778 + //line sql.y:2782 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 546: + case 547: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2784 + //line sql.y:2788 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 547: + case 548: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2788 + //line sql.y:2792 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 548: + case 549: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2792 + //line sql.y:2796 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 550: + case 551: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2799 + //line sql.y:2803 { yyVAL.bytes = []byte("charset") } - case 552: + case 553: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2806 + //line sql.y:2810 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 553: + case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2810 + //line sql.y:2814 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 554: + case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2814 + //line sql.y:2818 { yyVAL.expr = &Default{} } - case 557: + case 558: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2823 + //line sql.y:2827 { yyVAL.byt = 0 } - case 558: + case 559: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2825 + //line sql.y:2829 { yyVAL.byt = 1 } - case 559: + case 560: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2828 + //line sql.y:2832 { yyVAL.empty = struct{}{} } - case 560: + case 561: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2830 + //line sql.y:2834 { yyVAL.empty = struct{}{} } - case 561: + case 562: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2833 + //line sql.y:2837 { yyVAL.str = "" } - case 562: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2835 - { - yyVAL.str = IgnoreStr - } case 563: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2839 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 564: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2841 + //line sql.y:2843 { yyVAL.empty = struct{}{} } case 565: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2843 + //line sql.y:2845 { yyVAL.empty = struct{}{} } case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2845 + //line sql.y:2847 { yyVAL.empty = struct{}{} } case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2847 + //line sql.y:2849 { yyVAL.empty = struct{}{} } case 568: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2849 + //line sql.y:2851 { yyVAL.empty = struct{}{} } case 569: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2851 + //line sql.y:2853 { yyVAL.empty = struct{}{} } case 570: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2853 + //line sql.y:2855 { yyVAL.empty = struct{}{} } case 571: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2855 + //line sql.y:2857 { yyVAL.empty = struct{}{} } case 572: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2857 + //line sql.y:2859 { yyVAL.empty = struct{}{} } case 573: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2860 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2861 { yyVAL.empty = struct{}{} } case 574: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2862 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2864 { yyVAL.empty = struct{}{} } case 575: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2864 + //line sql.y:2866 { yyVAL.empty = struct{}{} } @@ -6022,45 +6040,45 @@ yydefault: } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2870 + //line sql.y:2872 { yyVAL.empty = struct{}{} } case 578: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2873 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2874 { yyVAL.empty = struct{}{} } case 579: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2875 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2877 { yyVAL.empty = struct{}{} } case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2877 + //line sql.y:2879 { yyVAL.empty = struct{}{} } case 581: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2880 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2881 { - yyVAL.colIdent = ColIdent{} + yyVAL.empty = struct{}{} } case 582: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2882 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2884 { - yyVAL.colIdent = yyDollar[2].colIdent + yyVAL.colIdent = ColIdent{} } case 583: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2886 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = yyDollar[2].colIdent } case 584: yyDollar = yyS[yypt-1 : yypt+1] @@ -6068,17 +6086,17 @@ yydefault: { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 586: + case 585: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2897 + //line sql.y:2894 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 587: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2903 + //line sql.y:2901 { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 588: yyDollar = yyS[yypt-1 : yypt+1] @@ -6086,41 +6104,41 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 590: + case 589: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2911 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + } + case 591: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2914 + //line sql.y:2918 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 781: + case 782: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3130 + //line sql.y:3134 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 782: + case 783: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3139 + //line sql.y:3143 { decNesting(yylex) } - case 783: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3144 - { - forceEOF(yylex) - } case 784: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3149 + //line sql.y:3148 { forceEOF(yylex) } case 785: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:3153 { forceEOF(yylex) @@ -6131,6 +6149,12 @@ yydefault: { forceEOF(yylex) } + case 787: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3161 + { + forceEOF(yylex) + } } goto yystack /* stack new state and value */ } diff --git a/sql.y b/sql.y index efbb794..67939b5 100644 --- a/sql.y +++ b/sql.y @@ -133,7 +133,7 @@ func forceEOF(yylex interface{}) { %left AND %right NOT '!' %left BETWEEN CASE WHEN THEN ELSE END -%left '=' '<' '>' LE GE NE NULL_SAFE_EQUAL IS LIKE REGEXP IN +%left '=' '<' '>' LE GE NE NULL_SAFE_EQUAL IS LIKE REGEXP IN NULL_SAFE_NOTEQUAL %left '|' %left '&' %left SHIFT_LEFT SHIFT_RIGHT @@ -2047,6 +2047,10 @@ compare: { $$ = NullSafeEqualStr } +| NULL_SAFE_NOTEQUAL + { + $$ = NullSafeNotEqualStr + } like_escape_opt: { diff --git a/token.go b/token.go index 23efa77..2c7d57b 100644 --- a/token.go +++ b/token.go @@ -562,7 +562,7 @@ func (tkn *Tokenizer) Scan() (int, []byte) { switch tkn.lastChar { case '>': tkn.next() - return NE, nil + return NULL_SAFE_NOTEQUAL, nil case '<': tkn.next() return SHIFT_LEFT, nil From f1d9d953a4625cb132a89290567250cbdc2b8e41 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Mon, 27 Aug 2018 19:08:31 +0800 Subject: [PATCH 02/13] update: inner/cross join support --- ast.go | 2 ++ sql.go | 4 ++-- sql.y | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ast.go b/ast.go index 06330b6..e9ccceb 100644 --- a/ast.go +++ b/ast.go @@ -1801,6 +1801,8 @@ type JoinTableExpr struct { // JoinTableExpr.Join const ( JoinStr = "join" + InnerJoinStr = "inner join" + CrossJoinStr = "cross join" StraightJoinStr = "straight_join" LeftJoinStr = "left join" RightJoinStr = "right join" diff --git a/sql.go b/sql.go index a938554..feab0f7 100644 --- a/sql.go +++ b/sql.go @@ -4627,13 +4627,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1811 { - yyVAL.str = JoinStr + yyVAL.str = InnerJoinStr } case 338: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1815 { - yyVAL.str = JoinStr + yyVAL.str = CrossJoinStr } case 339: yyDollar = yyS[yypt-1 : yypt+1] diff --git a/sql.y b/sql.y index 67939b5..36e205b 100644 --- a/sql.y +++ b/sql.y @@ -1809,11 +1809,11 @@ inner_join: } | INNER JOIN { - $$ = JoinStr + $$ = InnerJoinStr } | CROSS JOIN { - $$ = JoinStr + $$ = CrossJoinStr } straight_join: From ecfa07588efe17fa68feffab8bfbcf7264f65593 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 29 Aug 2018 15:14:43 +0800 Subject: [PATCH 03/13] update: support cast to timestamp --- sql.go | 2646 ++++++++++++++++++++++++++++---------------------------- sql.y | 4 + 2 files changed, 1326 insertions(+), 1324 deletions(-) diff --git a/sql.go b/sql.go index feab0f7..c141504 100644 --- a/sql.go +++ b/sql.go @@ -602,581 +602,596 @@ var yyExca = [...]int{ 152, 263, -2, 253, -1, 238, - 110, 588, - -2, 584, - -1, 239, 110, 589, -2, 585, + -1, 239, + 110, 590, + -2, 586, -1, 308, - 80, 747, + 80, 748, -2, 58, -1, 309, - 80, 708, + 80, 709, -2, 59, -1, 314, - 80, 692, - -2, 550, + 80, 693, + -2, 551, -1, 316, - 80, 729, - -2, 552, + 80, 730, + -2, 553, -1, 576, 52, 41, 54, 41, -2, 43, -1, 709, - 110, 591, - -2, 587, + 110, 592, + -2, 588, -1, 913, 5, 28, -2, 396, -1, 938, 5, 27, - -2, 525, - -1, 1162, - 5, 28, -2, 526, - -1, 1206, - 5, 27, - -2, 528, - -1, 1268, + -1, 1163, 5, 28, + -2, 527, + -1, 1207, + 5, 27, -2, 529, + -1, 1269, + 5, 28, + -2, 530, } const yyPrivate = 57344 -const yyLast = 11104 +const yyLast = 11021 var yyAct = [...]int{ - 269, 47, 855, 1259, 647, 771, 523, 1217, 243, 1070, - 1168, 268, 807, 789, 1071, 1098, 570, 999, 1067, 849, - 811, 217, 522, 3, 829, 810, 941, 1044, 53, 211, - 772, 957, 744, 568, 734, 741, 1002, 990, 905, 586, - 946, 760, 711, 455, 461, 845, 410, 572, 47, 313, - 585, 557, 295, 307, 241, 821, 222, 887, 835, 467, - 768, 475, 299, 304, 226, 302, 52, 1288, 1278, 1286, - 216, 1266, 1284, 212, 213, 214, 215, 856, 1277, 872, - 1062, 1156, 1265, 414, 294, 435, 1226, 1093, 1094, 803, - 804, 1092, 230, 871, 537, 293, 1241, 802, 488, 487, - 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, - 57, 676, 499, 181, 177, 178, 179, 587, 677, 588, - 876, 450, 981, 828, 1104, 1105, 1106, 1180, 965, 870, - 423, 964, 1109, 1107, 966, 59, 60, 61, 62, 63, - 1195, 836, 1145, 1143, 210, 1285, 446, 447, 1283, 437, - 1260, 439, 1023, 769, 488, 487, 497, 498, 490, 491, - 492, 493, 494, 495, 496, 489, 424, 239, 499, 417, - 1218, 790, 792, 174, 175, 175, 436, 438, 867, 864, - 865, 655, 863, 1220, 1246, 646, 956, 1165, 955, 954, + 269, 47, 1260, 647, 771, 855, 1071, 523, 243, 1169, + 1099, 789, 1072, 999, 1218, 570, 1068, 811, 568, 990, + 849, 217, 313, 772, 1044, 522, 3, 957, 810, 734, + 744, 905, 268, 1002, 741, 941, 821, 711, 211, 586, + 946, 455, 461, 845, 585, 53, 760, 307, 47, 410, + 768, 835, 557, 295, 807, 241, 222, 887, 294, 572, + 52, 475, 299, 226, 304, 467, 302, 1289, 1279, 1287, + 1267, 1285, 856, 216, 1278, 1063, 1157, 414, 435, 872, + 293, 1227, 212, 213, 214, 215, 1105, 1106, 1107, 587, + 230, 588, 537, 871, 1110, 1108, 1266, 1094, 1095, 803, + 804, 1093, 453, 1242, 743, 488, 487, 497, 498, 490, + 491, 492, 493, 494, 495, 496, 489, 802, 450, 499, + 876, 57, 981, 181, 177, 178, 179, 965, 676, 870, + 964, 828, 1181, 966, 1196, 677, 423, 836, 1146, 1144, + 210, 1286, 437, 1284, 439, 1261, 59, 60, 61, 62, + 63, 446, 447, 1023, 488, 487, 497, 498, 490, 491, + 492, 493, 494, 495, 496, 489, 769, 239, 499, 436, + 438, 1219, 790, 792, 424, 417, 175, 655, 867, 864, + 865, 174, 863, 175, 1221, 646, 823, 956, 955, 954, 412, 420, 189, 176, 441, 441, 441, 441, 76, 441, - 906, 823, 186, 512, 513, 186, 441, 874, 877, 1224, - 1031, 823, 921, 899, 683, 743, 479, 430, 1113, 808, - 1010, 499, 180, 47, 489, 680, 1020, 499, 195, 186, - 186, 76, 1022, 473, 472, 186, 882, 76, 509, 975, - 718, 511, 869, 472, 474, 464, 791, 1251, 1008, 463, - 474, 1219, 205, 1242, 716, 717, 715, 434, 1123, 474, - 1027, 1064, 836, 761, 868, 944, 589, 416, 521, 1114, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 1264, + 906, 823, 186, 1247, 1225, 186, 441, 874, 877, 512, + 513, 823, 1166, 1031, 975, 921, 899, 683, 479, 430, + 1020, 489, 808, 47, 499, 680, 1022, 499, 474, 186, + 186, 76, 180, 882, 1010, 186, 1252, 76, 509, 411, + 1124, 511, 869, 718, 1114, 472, 245, 791, 464, 1027, + 434, 944, 1220, 761, 1065, 1109, 836, 716, 717, 715, + 1243, 474, 1008, 979, 868, 589, 463, 761, 521, 928, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 822, 536, 538, 538, 538, 538, 538, 538, 538, 538, 546, - 547, 548, 549, 1108, 822, 761, 650, 928, 979, 232, - 569, 873, 682, 190, 822, 686, 687, 1225, 1223, 192, - 426, 427, 428, 1009, 875, 883, 198, 194, 1014, 1011, - 1004, 1005, 1012, 1007, 1006, 1021, 825, 1019, 1010, 1045, - 917, 826, 916, 1254, 465, 1013, 1026, 469, 681, 418, - 419, 1016, 186, 196, 186, 1270, 200, 1186, 473, 472, - 186, 473, 472, 1185, 473, 472, 1008, 186, 994, 1047, - 823, 76, 76, 76, 76, 474, 76, 577, 474, 583, - 735, 474, 736, 76, 191, 236, 539, 540, 541, 542, - 543, 544, 545, 993, 701, 703, 704, 982, 411, 702, - 454, 1049, 1271, 1053, 173, 1048, 1252, 1046, 50, 1202, - 76, 193, 1051, 201, 202, 203, 204, 208, 714, 1183, - 245, 1050, 207, 206, 441, 1131, 918, 896, 897, 898, - 991, 1009, 441, 1153, 1052, 1054, 1014, 1011, 1004, 1005, - 1012, 1007, 1006, 441, 441, 441, 441, 441, 441, 441, - 441, 1274, 454, 1013, 473, 472, 1249, 441, 441, 1003, - 1230, 1066, 1101, 822, 1100, 292, 1210, 1257, 820, 818, - 186, 474, 819, 976, 473, 472, 967, 186, 186, 186, - 1210, 454, 298, 76, 1210, 1211, 1229, 1177, 1176, 76, - 664, 474, 858, 267, 737, 688, 1089, 454, 662, 1164, - 454, 1120, 1119, 1110, 712, 661, 488, 487, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 1116, 1117, - 499, 660, 47, 651, 74, 1116, 1115, 23, 458, 462, - 492, 493, 494, 495, 496, 489, 525, 649, 499, 709, - 690, 911, 454, 554, 454, 480, 644, 707, 705, 753, - 756, 936, 746, 454, 937, 762, 432, 312, 748, 596, - 595, 54, 425, 415, 580, 299, 299, 299, 299, 299, - 411, 553, 773, 453, 50, 648, 942, 738, 739, 524, - 569, 1068, 793, 1034, 942, 746, 943, 923, 535, 299, - 796, 76, 579, 765, 21, 554, 1160, 186, 186, 76, - 911, 186, 748, 758, 186, 581, 554, 579, 186, 943, - 76, 76, 76, 76, 76, 76, 76, 76, 775, 776, - 920, 778, 797, 1122, 76, 76, 911, 786, 554, 186, - 922, 794, 514, 515, 516, 517, 518, 519, 520, 831, - 832, 833, 834, 442, 76, 800, 799, 795, 186, 774, - 221, 942, 777, 815, 76, 842, 843, 844, 23, 23, - 441, 510, 441, 919, 1118, 559, 562, 563, 564, 560, - 441, 561, 565, 851, 968, 947, 948, 801, 837, 838, - 839, 911, 582, 684, 223, 1205, 50, 312, 312, 312, - 312, 1190, 312, 830, 850, 1083, 847, 848, 76, 312, - 971, 947, 948, 696, 846, 50, 50, 310, 487, 497, - 498, 490, 491, 492, 493, 494, 495, 496, 489, 900, - 298, 499, 841, 840, 65, 853, 477, 1103, 1068, 186, - 995, 50, 186, 186, 186, 186, 186, 712, 950, 888, - 658, 451, 889, 709, 186, 1282, 953, 186, 1152, 454, - 783, 186, 749, 750, 781, 784, 186, 186, 757, 782, - 76, 258, 257, 260, 261, 262, 263, 952, 901, 780, - 259, 264, 764, 76, 766, 767, 779, 227, 228, 939, - 940, 1276, 698, 699, 1281, 1030, 488, 487, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 884, 312, - 499, 938, 894, 893, 986, 591, 785, 299, 563, 564, - 594, 927, 488, 487, 497, 498, 490, 491, 492, 493, - 494, 495, 496, 489, 186, 433, 499, 76, 951, 76, - 978, 1256, 959, 186, 961, 524, 186, 76, 751, 752, - 960, 969, 490, 491, 492, 493, 494, 495, 496, 489, - 468, 962, 499, 1255, 456, 1203, 972, 1158, 985, 1191, - 987, 988, 989, 860, 466, 441, 457, 710, 657, 567, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 973, 974, 224, 225, 992, - 441, 559, 562, 563, 564, 560, 468, 561, 565, 806, - 983, 984, 1001, 713, 892, 218, 1235, 312, 219, 54, - 1234, 1015, 891, 1193, 943, 312, 470, 1243, 1181, 679, - 56, 895, 58, 578, 51, 1, 312, 312, 312, 312, - 312, 312, 312, 312, 857, 998, 866, 1258, 1216, 1097, - 312, 312, 817, 809, 409, 64, 1037, 1250, 1073, 310, - 47, 1038, 1069, 816, 1043, 773, 1056, 1222, 1179, 1072, - 692, 773, 1055, 824, 1063, 1085, 1086, 1087, 910, 980, - 477, 76, 1074, 312, 186, 298, 298, 298, 298, 298, - 1078, 709, 1077, 1079, 925, 827, 1102, 1253, 76, 977, - 298, 885, 886, 601, 462, 599, 600, 1091, 1090, 298, - 598, 1096, 603, 602, 1095, 597, 1111, 1112, 197, 305, - 566, 590, 852, 471, 740, 66, 1018, 1017, 862, 1025, - 675, 881, 449, 199, 754, 754, 508, 890, 963, 311, - 754, 76, 76, 1075, 76, 685, 460, 1233, 689, 1192, - 926, 534, 1124, 759, 244, 299, 700, 754, 256, 253, - 255, 254, 691, 935, 481, 1126, 912, 76, 1129, 242, - 186, 186, 234, 297, 550, 558, 556, 555, 186, 949, - 1133, 929, 945, 1154, 296, 1033, 312, 76, 1134, 1141, - 1138, 1139, 1155, 1140, 1240, 695, 1142, 25, 1144, 312, - 55, 229, 19, 18, 17, 20, 745, 747, 1159, 16, - 15, 14, 902, 903, 904, 29, 1170, 1171, 1172, 13, - 1167, 12, 763, 11, 10, 1173, 9, 76, 76, 8, - 1149, 454, 1175, 708, 7, 6, 969, 5, 4, 220, - 22, 2, 441, 0, 1178, 0, 713, 0, 0, 0, - 0, 0, 788, 312, 0, 312, 76, 0, 76, 76, - 1188, 0, 0, 312, 1189, 0, 0, 0, 488, 487, + 547, 548, 549, 1265, 822, 1115, 650, 1255, 473, 472, + 569, 873, 1226, 1224, 822, 1067, 686, 687, 298, 820, + 818, 416, 883, 819, 875, 474, 426, 427, 428, 1021, + 469, 1019, 473, 472, 1045, 1026, 825, 1009, 896, 897, + 898, 826, 1014, 1011, 1004, 1005, 1012, 1007, 1006, 474, + 173, 442, 186, 195, 186, 465, 701, 703, 704, 1013, + 186, 702, 473, 472, 1047, 1016, 1271, 186, 1187, 1186, + 994, 76, 76, 76, 76, 993, 76, 205, 577, 474, + 583, 50, 982, 76, 539, 540, 541, 542, 543, 544, + 545, 714, 1272, 418, 419, 829, 1049, 1253, 1053, 1055, + 1048, 735, 1046, 736, 918, 1203, 1184, 1051, 1132, 991, + 76, 292, 1275, 454, 454, 310, 1050, 492, 493, 494, + 495, 496, 489, 682, 441, 499, 1250, 1154, 190, 1052, + 1054, 1102, 441, 1101, 192, 1211, 1258, 917, 1231, 916, + 976, 198, 194, 441, 441, 441, 441, 441, 441, 441, + 441, 967, 473, 472, 858, 473, 472, 441, 441, 681, + 1211, 454, 1230, 664, 1211, 1212, 1178, 1177, 196, 474, + 186, 200, 474, 1090, 454, 473, 472, 186, 186, 186, + 1165, 454, 1111, 76, 1121, 1120, 1117, 1118, 942, 76, + 1117, 1116, 474, 267, 23, 688, 737, 510, 662, 191, + 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, + 496, 489, 709, 661, 499, 911, 454, 580, 936, 554, + 454, 937, 47, 660, 74, 712, 193, 651, 201, 202, + 203, 204, 208, 746, 454, 746, 525, 207, 206, 690, + 649, 50, 644, 596, 595, 943, 432, 707, 705, 753, + 756, 425, 411, 1034, 54, 762, 298, 312, 581, 23, + 579, 748, 21, 415, 553, 299, 299, 299, 299, 299, + 232, 1069, 773, 796, 942, 579, 1161, 689, 738, 739, + 569, 554, 793, 23, 1123, 943, 1206, 554, 554, 299, + 923, 76, 765, 911, 1119, 920, 911, 186, 186, 76, + 968, 186, 801, 1010, 186, 748, 50, 797, 186, 758, + 76, 76, 76, 76, 76, 76, 76, 76, 221, 775, + 776, 911, 778, 774, 76, 76, 777, 942, 786, 186, + 50, 1008, 582, 922, 684, 745, 747, 795, 919, 800, + 799, 749, 750, 794, 76, 50, 223, 757, 186, 1191, + 830, 763, 850, 1084, 76, 971, 815, 310, 947, 948, + 441, 764, 441, 766, 767, 846, 841, 840, 65, 648, + 441, 837, 838, 839, 851, 258, 257, 260, 261, 262, + 263, 788, 853, 1104, 259, 264, 1069, 312, 312, 312, + 312, 953, 312, 50, 847, 848, 1009, 995, 76, 312, + 950, 1014, 1011, 1004, 1005, 1012, 1007, 1006, 559, 562, + 563, 564, 560, 658, 561, 565, 709, 451, 1013, 900, + 783, 952, 781, 780, 1003, 784, 477, 782, 785, 186, + 563, 564, 186, 186, 186, 186, 186, 888, 696, 713, + 889, 779, 236, 1283, 186, 227, 228, 186, 1277, 1030, + 884, 186, 1282, 894, 893, 986, 186, 186, 712, 594, + 76, 433, 468, 901, 490, 491, 492, 493, 494, 495, + 496, 489, 978, 76, 499, 1257, 466, 1256, 1204, 939, + 940, 559, 562, 563, 564, 560, 456, 561, 565, 458, + 462, 947, 948, 972, 860, 1159, 1192, 657, 457, 312, + 567, 224, 225, 468, 938, 591, 480, 299, 218, 892, + 895, 298, 298, 298, 298, 298, 927, 891, 1236, 219, + 54, 1235, 1194, 943, 186, 960, 298, 76, 951, 76, + 470, 708, 1244, 186, 1182, 298, 186, 76, 969, 679, + 524, 959, 56, 961, 58, 578, 51, 1, 857, 535, + 908, 962, 998, 866, 909, 1259, 1217, 910, 1098, 817, + 809, 913, 914, 915, 409, 441, 973, 974, 64, 1251, + 924, 992, 816, 925, 1223, 930, 1180, 931, 932, 933, + 934, 824, 980, 827, 1103, 1254, 977, 601, 599, 600, + 441, 598, 603, 983, 984, 602, 597, 197, 305, 566, + 985, 590, 987, 988, 989, 852, 471, 312, 1015, 66, + 1018, 1001, 1017, 862, 1025, 312, 675, 881, 449, 199, + 508, 890, 963, 311, 1076, 685, 312, 312, 312, 312, + 312, 312, 312, 312, 310, 460, 1234, 1193, 926, 534, + 312, 312, 759, 244, 1038, 1037, 700, 812, 1074, 256, + 47, 1070, 1043, 1057, 709, 773, 253, 1056, 255, 254, + 692, 773, 691, 935, 481, 1086, 1087, 1088, 242, 234, + 477, 76, 713, 312, 186, 1075, 1080, 297, 1078, 550, + 1073, 1064, 558, 556, 555, 949, 945, 296, 76, 514, + 515, 516, 517, 518, 519, 520, 1033, 1079, 1097, 1156, + 831, 832, 833, 834, 1241, 695, 1092, 1096, 25, 55, + 229, 19, 18, 17, 740, 1091, 842, 843, 844, 20, + 16, 15, 14, 1042, 754, 754, 29, 13, 12, 11, + 754, 76, 76, 10, 76, 708, 9, 8, 7, 6, + 5, 4, 220, 698, 699, 299, 22, 754, 1112, 1113, + 2, 1125, 0, 298, 0, 0, 0, 76, 0, 0, + 186, 186, 0, 1135, 1127, 0, 0, 1130, 186, 0, + 1089, 0, 0, 0, 1155, 0, 312, 76, 0, 1134, + 1142, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 0, 0, 0, 0, 0, 0, 524, 1160, 0, 751, + 752, 0, 0, 0, 0, 0, 1171, 1172, 1173, 0, + 440, 1168, 0, 0, 0, 1174, 0, 76, 76, 0, + 0, 0, 0, 1176, 969, 0, 0, 0, 0, 0, + 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 312, 0, 312, 76, 1189, 76, 76, + 1136, 0, 1190, 312, 0, 0, 0, 1138, 0, 0, + 806, 0, 812, 0, 0, 0, 0, 0, 0, 1147, + 1148, 1149, 1074, 186, 1152, 1208, 0, 312, 1183, 0, + 1185, 76, 0, 0, 1205, 0, 0, 1162, 1163, 1164, + 0, 1167, 0, 0, 76, 186, 1216, 0, 0, 1222, + 1207, 76, 1195, 1233, 1073, 0, 0, 0, 1000, 76, + 0, 1232, 186, 0, 0, 0, 0, 1074, 0, 47, + 0, 0, 0, 1245, 710, 0, 0, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 1249, 0, 1246, 0, 0, 0, 1228, 1073, + 1229, 1036, 885, 886, 1263, 462, 0, 0, 0, 1268, + 0, 0, 76, 773, 76, 76, 76, 186, 76, 1202, + 0, 0, 1273, 1060, 76, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1213, 1214, 1215, 958, 1281, 1280, + 0, 298, 0, 0, 0, 459, 0, 1288, 0, 0, + 76, 76, 76, 0, 312, 443, 444, 445, 0, 448, + 1237, 1238, 1239, 1240, 0, 0, 452, 912, 0, 0, + 812, 0, 812, 0, 0, 0, 0, 0, 0, 300, + 184, 0, 929, 209, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 76, 0, 0, 996, 312, 0, + 312, 0, 0, 0, 1264, 233, 76, 184, 184, 1269, + 0, 0, 0, 184, 183, 0, 0, 0, 0, 76, + 0, 0, 1274, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1036, 0, 0, 0, 0, 0, 76, + 0, 0, 303, 312, 0, 0, 0, 413, 0, 0, + 0, 0, 0, 1292, 1293, 497, 498, 490, 491, 492, + 493, 494, 495, 496, 489, 312, 0, 499, 0, 0, + 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, + 754, 0, 0, 1077, 958, 0, 754, 0, 0, 76, + 0, 1139, 1140, 0, 1141, 0, 0, 1143, 812, 1145, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 902, + 903, 904, 312, 0, 312, 1100, 0, 0, 0, 0, + 184, 0, 184, 0, 0, 1000, 812, 0, 184, 0, + 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1179, 1126, 0, 1066, + 0, 0, 0, 0, 421, 0, 422, 0, 0, 0, + 1128, 0, 429, 0, 1081, 1082, 0, 1131, 1083, 431, + 0, 1085, 1153, 454, 645, 312, 1151, 0, 0, 0, + 0, 0, 654, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 665, 666, 667, 668, 669, 670, 671, + 672, 0, 0, 0, 0, 0, 0, 673, 674, 0, + 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, + 496, 489, 0, 0, 499, 0, 0, 0, 1170, 0, + 1170, 1170, 1170, 0, 1175, 0, 0, 0, 184, 0, + 312, 0, 0, 0, 0, 184, 574, 184, 1133, 488, + 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, + 489, 0, 0, 499, 0, 0, 312, 312, 312, 0, + 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, + 0, 576, 0, 0, 0, 1150, 454, 0, 1158, 0, + 0, 0, 0, 0, 0, 524, 0, 0, 0, 1040, + 1041, 454, 0, 0, 0, 0, 0, 0, 0, 1209, + 1210, 0, 1058, 1059, 0, 1061, 1062, 0, 0, 0, + 0, 0, 1100, 488, 487, 497, 498, 490, 491, 492, + 493, 494, 495, 496, 489, 1170, 0, 499, 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, - 0, 1073, 499, 186, 1207, 0, 0, 312, 0, 0, - 0, 76, 1072, 0, 1182, 1204, 1184, 0, 0, 0, - 0, 0, 0, 0, 76, 186, 1206, 1215, 0, 0, - 0, 76, 1232, 1221, 0, 1227, 440, 1228, 1194, 76, - 0, 1231, 186, 0, 0, 0, 1073, 298, 47, 0, - 0, 0, 0, 0, 0, 1244, 310, 1072, 0, 0, - 0, 0, 0, 0, 1248, 0, 0, 0, 1065, 812, - 1245, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1262, 1080, 1081, 0, 0, 1082, 0, 1267, - 1084, 76, 773, 76, 76, 76, 186, 76, 0, 0, - 0, 0, 1272, 76, 497, 498, 490, 491, 492, 493, - 494, 495, 496, 489, 0, 1279, 499, 958, 1280, 0, - 0, 0, 1040, 1041, 0, 0, 1287, 0, 0, 76, - 76, 76, 0, 0, 312, 1057, 1058, 0, 1060, 1061, - 0, 908, 0, 0, 0, 909, 0, 0, 0, 454, - 0, 0, 913, 914, 915, 0, 0, 708, 0, 0, - 0, 924, 0, 0, 0, 0, 930, 1132, 931, 932, - 933, 934, 76, 76, 0, 0, 0, 996, 312, 0, - 312, 0, 0, 0, 0, 76, 488, 487, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 76, 0, - 499, 0, 0, 312, 0, 0, 1157, 0, 0, 459, - 0, 0, 0, 524, 0, 0, 0, 0, 76, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, - 0, 443, 444, 445, 0, 448, 0, 0, 0, 300, - 0, 0, 452, 0, 184, 312, 0, 209, 0, 0, - 0, 0, 0, 0, 76, 1136, 0, 0, 0, 0, - 754, 0, 0, 1076, 958, 0, 754, 0, 76, 233, - 0, 184, 184, 0, 183, 0, 0, 184, 0, 0, - 0, 0, 0, 0, 812, 298, 0, 0, 0, 0, - 0, 0, 312, 0, 312, 1099, 0, 0, 0, 0, - 0, 0, 303, 0, 0, 0, 0, 413, 0, 0, - 0, 0, 0, 0, 1042, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1125, 0, 0, - 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1127, 0, 0, 0, 0, 0, 0, 1130, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, - 0, 1088, 0, 0, 0, 1196, 1197, 0, 1198, 1199, - 1200, 0, 0, 1036, 1261, 524, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 0, 184, 0, 0, 0, - 0, 0, 184, 0, 0, 1059, 0, 0, 0, 184, - 0, 0, 0, 0, 0, 0, 0, 1169, 0, 1169, - 1169, 1169, 0, 1174, 421, 0, 422, 0, 0, 312, - 0, 0, 429, 0, 0, 0, 0, 0, 0, 431, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1135, 812, 1150, 812, 312, 312, 312, 1137, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 654, 1146, - 1147, 1148, 0, 0, 1151, 0, 0, 0, 0, 665, - 666, 667, 668, 669, 670, 671, 672, 1161, 1162, 1163, - 0, 1166, 0, 673, 674, 0, 0, 0, 1208, 1209, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1099, 184, 1289, 0, 1036, 0, 0, 0, 184, - 574, 184, 0, 0, 1169, 0, 488, 487, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 0, 0, - 499, 0, 552, 0, 1247, 0, 0, 0, 0, 0, - 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, - 0, 0, 0, 0, 0, 0, 0, 754, 0, 812, - 1269, 0, 0, 0, 1212, 1213, 1214, 0, 0, 0, - 0, 0, 0, 1039, 1275, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1000, 812, 0, 0, - 1236, 1237, 1238, 1239, 488, 487, 497, 498, 490, 491, + 0, 0, 499, 0, 0, 1248, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 184, 0, 0, 184, + 0, 0, 184, 0, 0, 0, 663, 487, 497, 498, + 490, 491, 492, 493, 494, 495, 496, 489, 754, 0, + 499, 1270, 0, 0, 0, 0, 0, 184, 0, 652, + 653, 0, 0, 656, 0, 1276, 659, 0, 0, 0, + 859, 0, 861, 1039, 0, 0, 184, 0, 0, 0, + 880, 0, 0, 0, 0, 663, 0, 0, 0, 0, + 0, 678, 1137, 0, 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, 0, 0, 499, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 184, 0, 0, 184, 0, 0, 184, 0, 0, 0, - 663, 0, 0, 0, 1263, 0, 907, 0, 0, 1268, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 652, - 653, 184, 1273, 656, 0, 0, 659, 488, 487, 497, - 498, 490, 491, 492, 493, 494, 495, 496, 489, 0, - 184, 499, 0, 0, 0, 0, 859, 0, 861, 663, - 0, 678, 0, 1291, 1292, 0, 880, 0, 0, 0, - 23, 24, 48, 26, 27, 0, 0, 0, 0, 0, - 697, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, - 0, 233, 0, 0, 0, 0, 233, 233, 0, 0, - 755, 755, 233, 37, 0, 0, 755, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 233, 233, 233, 233, - 0, 184, 0, 755, 184, 184, 184, 184, 184, 0, - 0, 0, 0, 0, 0, 0, 787, 0, 0, 184, - 0, 0, 0, 574, 0, 0, 0, 0, 184, 184, - 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 33, - 32, 35, 0, 0, 0, 0, 0, 0, 0, 798, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 43, - 44, 0, 0, 45, 46, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 39, 0, - 40, 41, 0, 0, 0, 0, 184, 0, 618, 0, - 0, 0, 0, 0, 0, 184, 0, 0, 184, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 854, 0, 0, 0, - 0, 997, 0, 663, 0, 878, 0, 0, 879, 0, - 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 0, 0, 606, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 619, 0, 0, 233, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 632, 633, 634, 635, - 636, 637, 638, 0, 639, 640, 641, 642, 643, 620, - 621, 622, 623, 604, 605, 0, 184, 607, 0, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 624, - 625, 626, 627, 628, 629, 630, 631, 483, 0, 486, - 0, 0, 0, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 0, 484, 485, 482, 507, 488, 487, 497, - 498, 490, 491, 492, 493, 494, 495, 496, 489, 0, - 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1028, 1029, 0, 0, 0, 0, 0, 0, - 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, - 1032, 663, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 755, 0, 0, 0, - 0, 0, 755, 0, 0, 0, 0, 0, 1187, 0, + 697, 0, 0, 0, 0, 0, 1262, 524, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, + 0, 0, 233, 233, 0, 0, 755, 755, 233, 0, + 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 233, 233, 233, 233, 0, 184, 0, 755, + 184, 184, 184, 184, 184, 0, 0, 0, 0, 0, + 0, 0, 787, 0, 0, 184, 0, 0, 0, 574, + 0, 0, 0, 0, 184, 184, 0, 0, 0, 0, + 0, 770, 0, 0, 0, 0, 23, 24, 48, 26, + 27, 907, 0, 1197, 1198, 0, 1199, 1200, 1201, 0, + 0, 0, 0, 0, 0, 42, 0, 0, 0, 798, + 28, 0, 488, 487, 497, 498, 490, 491, 492, 493, + 494, 495, 496, 489, 0, 0, 499, 0, 0, 37, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 0, 0, 618, 0, 0, 0, 0, + 0, 184, 0, 0, 184, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 997, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 854, 0, 0, 663, + 0, 0, 0, 0, 0, 878, 0, 0, 879, 0, + 1024, 233, 0, 30, 31, 33, 32, 35, 488, 487, + 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, + 0, 0, 499, 0, 36, 43, 44, 0, 0, 45, + 46, 34, 606, 0, 0, 0, 0, 0, 0, 0, + 0, 1290, 0, 38, 39, 0, 40, 41, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 619, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 632, 633, 634, 635, 636, 637, 638, + 0, 639, 640, 641, 642, 643, 620, 621, 622, 623, + 604, 605, 184, 0, 607, 0, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 624, 625, 626, 627, + 628, 629, 630, 631, 0, 483, 49, 486, 0, 0, + 0, 0, 0, 500, 501, 502, 503, 504, 505, 506, + 0, 484, 485, 482, 507, 488, 487, 497, 498, 490, + 491, 492, 493, 494, 495, 496, 489, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, + 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, + 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 755, 1188, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, - 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, - 388, 0, 360, 400, 338, 352, 408, 353, 354, 381, - 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, - 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, - 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, - 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, - 75, 0, 813, 814, 0, 0, 0, 0, 0, 86, - 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, - 407, 395, 344, 345, 970, 0, 0, 0, 0, 0, - 0, 363, 367, 383, 357, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, - 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, - 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, - 399, 131, 0, 755, 145, 98, 97, 106, 391, 340, - 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, - 394, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 332, 335, 330, 331, 369, 370, 403, 404, 405, - 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, - 108, 169, 133, 95, 160, 398, 388, 0, 360, 400, - 338, 352, 408, 353, 354, 381, 324, 368, 125, 350, - 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, - 390, 371, 107, 406, 109, 376, 0, 142, 118, 0, - 0, 364, 392, 366, 386, 359, 382, 329, 375, 401, - 351, 379, 402, 0, 0, 0, 75, 0, 813, 814, - 0, 0, 0, 0, 0, 86, 0, 378, 397, 349, - 380, 318, 377, 0, 322, 325, 407, 395, 344, 345, - 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, - 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, - 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, - 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, - 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 394, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 403, 404, 405, 385, 327, 0, 333, - 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 398, 388, 0, 360, 400, 338, 352, 408, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, - 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, - 386, 359, 382, 329, 375, 401, 351, 379, 402, 50, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, - 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, - 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, - 0, 343, 384, 0, 317, 387, 393, 358, 187, 396, - 356, 355, 399, 131, 0, 0, 145, 98, 97, 106, - 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 321, 0, 143, 159, - 172, 336, 394, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 332, 335, 330, 331, 369, 370, 403, - 404, 405, 385, 327, 0, 333, 334, 0, 389, 372, - 77, 0, 108, 169, 133, 95, 160, 398, 388, 0, - 360, 400, 338, 352, 408, 353, 354, 381, 324, 368, - 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, - 365, 337, 390, 371, 107, 406, 109, 376, 0, 142, - 118, 0, 0, 364, 392, 366, 386, 359, 382, 329, - 375, 401, 351, 379, 402, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, - 397, 349, 380, 318, 377, 0, 322, 325, 407, 395, - 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, - 367, 383, 357, 0, 0, 0, 0, 0, 0, 0, - 1035, 0, 342, 0, 374, 0, 0, 0, 326, 323, - 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, - 317, 387, 393, 358, 187, 396, 356, 355, 399, 131, - 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, - 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 321, 0, 143, 159, 172, 336, 394, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, - 335, 330, 331, 369, 370, 403, 404, 405, 385, 327, - 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, - 133, 95, 160, 398, 388, 0, 360, 400, 338, 352, - 408, 353, 354, 381, 324, 368, 125, 350, 0, 341, - 319, 347, 320, 339, 362, 93, 365, 337, 390, 371, - 107, 406, 109, 376, 0, 142, 118, 0, 0, 364, - 392, 366, 386, 359, 382, 329, 375, 401, 351, 379, - 402, 0, 0, 0, 238, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 378, 397, 349, 380, 318, - 377, 0, 322, 325, 407, 395, 344, 345, 0, 0, - 0, 0, 0, 0, 0, 363, 367, 383, 357, 0, - 0, 0, 0, 0, 0, 0, 706, 0, 342, 0, - 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, - 0, 328, 0, 343, 384, 0, 317, 387, 393, 358, - 187, 396, 356, 355, 399, 131, 0, 0, 145, 98, - 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, - 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, - 143, 159, 172, 336, 394, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, - 370, 403, 404, 405, 385, 327, 0, 333, 334, 0, - 389, 372, 77, 0, 108, 169, 133, 95, 160, 398, - 388, 0, 360, 400, 338, 352, 408, 353, 354, 381, - 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, - 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, - 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, - 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, - 407, 395, 344, 345, 0, 0, 0, 0, 0, 0, - 0, 363, 367, 383, 357, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, - 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, - 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, - 399, 131, 0, 0, 145, 98, 97, 106, 391, 340, - 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, + 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1122, 0, 0, 0, 0, + 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 398, 388, 0, 360, + 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, + 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, + 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, + 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, + 401, 351, 379, 402, 0, 0, 0, 75, 0, 813, + 814, 0, 0, 0, 0, 0, 86, 0, 378, 397, + 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, + 345, 970, 0, 0, 0, 0, 0, 0, 363, 367, + 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, + 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, + 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, + 755, 145, 98, 97, 106, 391, 340, 348, 89, 346, + 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 321, 0, 143, 159, 172, 336, 394, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, + 330, 331, 369, 370, 403, 404, 405, 385, 327, 0, + 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, + 95, 160, 398, 388, 0, 360, 400, 338, 352, 408, + 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, + 347, 320, 339, 362, 93, 365, 337, 390, 371, 107, + 406, 109, 376, 0, 142, 118, 0, 0, 364, 392, + 366, 386, 359, 382, 329, 375, 401, 351, 379, 402, + 0, 0, 0, 75, 0, 813, 814, 0, 0, 0, + 0, 0, 86, 0, 378, 397, 349, 380, 318, 377, + 0, 322, 325, 407, 395, 344, 345, 0, 0, 0, + 0, 0, 0, 0, 363, 367, 383, 357, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, + 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, + 328, 0, 343, 384, 0, 317, 387, 393, 358, 187, + 396, 356, 355, 399, 131, 0, 0, 145, 98, 97, + 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 321, 0, 143, + 159, 172, 336, 394, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 332, 335, 330, 331, 369, 370, + 403, 404, 405, 385, 327, 0, 333, 334, 0, 389, + 372, 77, 0, 108, 169, 133, 95, 160, 398, 388, + 0, 360, 400, 338, 352, 408, 353, 354, 381, 324, + 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, + 93, 365, 337, 390, 371, 107, 406, 109, 376, 0, + 142, 118, 0, 0, 364, 392, 366, 386, 359, 382, + 329, 375, 401, 351, 379, 402, 50, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 378, 397, 349, 380, 318, 377, 0, 322, 325, 407, + 395, 344, 345, 0, 0, 0, 0, 0, 0, 0, + 363, 367, 383, 357, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, + 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, + 0, 317, 387, 393, 358, 187, 396, 356, 355, 399, + 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, + 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 321, 0, 143, 159, 172, 336, 394, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 332, 335, 330, 331, 369, 370, 403, 404, 405, 385, + 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, + 169, 133, 95, 160, 398, 388, 0, 360, 400, 338, + 352, 408, 353, 354, 381, 324, 368, 125, 350, 0, + 341, 319, 347, 320, 339, 362, 93, 365, 337, 390, + 371, 107, 406, 109, 376, 0, 142, 118, 0, 0, + 364, 392, 366, 386, 359, 382, 329, 375, 401, 351, + 379, 402, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 378, 397, 349, 380, + 318, 377, 0, 322, 325, 407, 395, 344, 345, 0, + 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, + 0, 0, 0, 0, 0, 0, 0, 1035, 0, 342, + 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, + 0, 0, 328, 0, 343, 384, 0, 317, 387, 393, + 358, 187, 396, 356, 355, 399, 131, 0, 0, 145, + 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, + 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 321, + 0, 143, 159, 172, 336, 394, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 332, 335, 330, 331, + 369, 370, 403, 404, 405, 385, 327, 0, 333, 334, + 0, 389, 372, 77, 0, 108, 169, 133, 95, 160, + 398, 388, 0, 360, 400, 338, 352, 408, 353, 354, + 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, + 339, 362, 93, 365, 337, 390, 371, 107, 406, 109, + 376, 0, 142, 118, 0, 0, 364, 392, 366, 386, + 359, 382, 329, 375, 401, 351, 379, 402, 0, 0, + 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 378, 397, 349, 380, 318, 377, 0, 322, + 325, 407, 395, 344, 345, 0, 0, 0, 0, 0, + 0, 0, 363, 367, 383, 357, 0, 0, 0, 0, + 0, 0, 0, 706, 0, 342, 0, 374, 0, 0, + 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, + 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, + 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, + 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, + 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, + 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, + 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, + 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, + 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, + 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, + 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, + 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, + 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, + 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, + 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, + 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, + 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, + 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, + 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 321, 0, 143, 159, 172, 336, 394, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, + 330, 331, 369, 370, 403, 404, 405, 385, 327, 0, + 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, + 95, 160, 398, 388, 0, 360, 400, 338, 352, 408, + 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, + 347, 320, 339, 362, 93, 365, 337, 390, 371, 107, + 406, 109, 376, 0, 142, 118, 0, 0, 364, 392, + 366, 386, 359, 382, 329, 375, 401, 351, 379, 402, + 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 378, 397, 349, 380, 318, 377, + 0, 322, 325, 407, 395, 344, 345, 0, 0, 0, + 0, 0, 0, 0, 363, 367, 383, 357, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, + 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, + 328, 0, 343, 384, 0, 317, 387, 393, 358, 187, + 396, 356, 355, 399, 131, 0, 0, 145, 98, 97, + 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 321, 0, 143, + 159, 172, 336, 394, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 332, 335, 330, 331, 369, 370, + 403, 404, 405, 385, 327, 0, 333, 334, 0, 389, + 372, 77, 0, 108, 169, 133, 95, 160, 398, 388, + 0, 360, 400, 338, 352, 408, 353, 354, 381, 324, + 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, + 93, 365, 337, 390, 371, 107, 406, 109, 376, 0, + 142, 118, 0, 0, 364, 392, 366, 386, 359, 382, + 329, 375, 401, 351, 379, 402, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 378, 397, 349, 380, 318, 377, 0, 322, 325, 407, + 395, 344, 345, 0, 0, 0, 0, 0, 0, 0, + 363, 367, 383, 357, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, + 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, + 0, 317, 387, 393, 358, 187, 396, 356, 355, 399, + 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, + 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 315, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 321, 0, 143, 159, 172, 336, 394, + 165, 166, 167, 168, 0, 0, 0, 316, 314, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 332, 335, 330, 331, 369, 370, 403, 404, 405, 385, + 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, + 169, 133, 95, 160, 398, 388, 0, 360, 400, 338, + 352, 408, 353, 354, 381, 324, 368, 125, 350, 0, + 341, 319, 347, 320, 339, 362, 93, 365, 337, 390, + 371, 107, 406, 109, 376, 0, 142, 118, 0, 0, + 364, 392, 366, 386, 359, 382, 329, 375, 401, 351, + 379, 402, 0, 0, 0, 185, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 378, 397, 349, 380, + 318, 377, 0, 322, 325, 407, 395, 344, 345, 0, + 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, + 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, + 0, 0, 328, 0, 343, 384, 0, 317, 387, 393, + 358, 187, 396, 356, 355, 399, 131, 0, 0, 145, + 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, + 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 321, + 0, 143, 159, 172, 336, 394, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 332, 335, 330, 331, + 369, 370, 403, 404, 405, 385, 327, 0, 333, 334, + 0, 389, 372, 77, 0, 108, 169, 133, 95, 160, + 398, 388, 0, 360, 400, 338, 352, 408, 353, 354, + 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, + 339, 362, 93, 365, 337, 390, 371, 107, 406, 109, + 376, 0, 142, 118, 0, 0, 364, 392, 366, 386, + 359, 382, 329, 375, 401, 351, 379, 402, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 378, 397, 349, 380, 318, 377, 0, 322, + 325, 407, 395, 344, 345, 0, 0, 0, 0, 0, + 0, 0, 363, 367, 383, 357, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, + 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, + 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, + 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, + 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 584, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 315, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, + 336, 394, 165, 166, 167, 168, 0, 0, 0, 316, + 314, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, + 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, + 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, + 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, + 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, + 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, + 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, + 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, + 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, + 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, + 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, + 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, + 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, + 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, + 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 306, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 315, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 321, 0, 143, 159, 172, 336, 394, 165, 166, + 167, 168, 0, 0, 0, 316, 314, 309, 308, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, + 330, 331, 369, 370, 403, 404, 405, 385, 327, 0, + 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, + 95, 160, 125, 0, 0, 742, 0, 240, 0, 0, + 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, + 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 248, 249, 231, 0, 0, 0, 290, 0, 250, 0, + 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, - 394, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 332, 335, 330, 331, 369, 370, 403, 404, 405, - 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, - 108, 169, 133, 95, 160, 398, 388, 0, 360, 400, - 338, 352, 408, 353, 354, 381, 324, 368, 125, 350, - 0, 341, 319, 347, 320, 339, 362, 93, 365, 337, - 390, 371, 107, 406, 109, 376, 0, 142, 118, 0, - 0, 364, 392, 366, 386, 359, 382, 329, 375, 401, - 351, 379, 402, 0, 0, 0, 238, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 378, 397, 349, - 380, 318, 377, 0, 322, 325, 407, 395, 344, 345, - 0, 0, 0, 0, 0, 0, 0, 363, 367, 383, - 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 342, 0, 374, 0, 0, 0, 326, 323, 0, 361, - 0, 0, 0, 328, 0, 343, 384, 0, 317, 387, - 393, 358, 187, 396, 356, 355, 399, 131, 0, 0, - 145, 98, 97, 106, 391, 340, 348, 89, 346, 137, - 127, 157, 373, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 321, 0, 143, 159, 172, 336, 394, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 332, 335, 330, - 331, 369, 370, 403, 404, 405, 385, 327, 0, 333, - 334, 0, 389, 372, 77, 0, 108, 169, 133, 95, - 160, 398, 388, 0, 360, 400, 338, 352, 408, 353, - 354, 381, 324, 368, 125, 350, 0, 341, 319, 347, - 320, 339, 362, 93, 365, 337, 390, 371, 107, 406, - 109, 376, 0, 142, 118, 0, 0, 364, 392, 366, - 386, 359, 382, 329, 375, 401, 351, 379, 402, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 378, 397, 349, 380, 318, 377, 0, - 322, 325, 407, 395, 344, 345, 0, 0, 0, 0, - 0, 0, 0, 363, 367, 383, 357, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 342, 0, 374, 0, - 0, 0, 326, 323, 0, 361, 0, 0, 0, 328, - 0, 343, 384, 0, 317, 387, 393, 358, 187, 396, - 356, 355, 399, 131, 0, 0, 145, 98, 97, 106, - 391, 340, 348, 89, 346, 137, 127, 157, 373, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 315, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 321, 0, 143, 159, - 172, 336, 394, 165, 166, 167, 168, 0, 0, 0, - 316, 314, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 332, 335, 330, 331, 369, 370, 403, - 404, 405, 385, 327, 0, 333, 334, 0, 389, 372, - 77, 0, 108, 169, 133, 95, 160, 398, 388, 0, - 360, 400, 338, 352, 408, 353, 354, 381, 324, 368, - 125, 350, 0, 341, 319, 347, 320, 339, 362, 93, - 365, 337, 390, 371, 107, 406, 109, 376, 0, 142, - 118, 0, 0, 364, 392, 366, 386, 359, 382, 329, - 375, 401, 351, 379, 402, 0, 0, 0, 185, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 378, - 397, 349, 380, 318, 377, 0, 322, 325, 407, 395, - 344, 345, 0, 0, 0, 0, 0, 0, 0, 363, - 367, 383, 357, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 342, 0, 374, 0, 0, 0, 326, 323, - 0, 361, 0, 0, 0, 328, 0, 343, 384, 0, - 317, 387, 393, 358, 187, 396, 356, 355, 399, 131, - 0, 0, 145, 98, 97, 106, 391, 340, 348, 89, - 346, 137, 127, 157, 373, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 321, 0, 143, 159, 172, 336, 394, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 332, - 335, 330, 331, 369, 370, 403, 404, 405, 385, 327, - 0, 333, 334, 0, 389, 372, 77, 0, 108, 169, - 133, 95, 160, 398, 388, 0, 360, 400, 338, 352, - 408, 353, 354, 381, 324, 368, 125, 350, 0, 341, - 319, 347, 320, 339, 362, 93, 365, 337, 390, 371, - 107, 406, 109, 376, 0, 142, 118, 0, 0, 364, - 392, 366, 386, 359, 382, 329, 375, 401, 351, 379, - 402, 0, 0, 0, 75, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 378, 397, 349, 380, 318, - 377, 0, 322, 325, 407, 395, 344, 345, 0, 0, - 0, 0, 0, 0, 0, 363, 367, 383, 357, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 342, 0, - 374, 0, 0, 0, 326, 323, 0, 361, 0, 0, - 0, 328, 0, 343, 384, 0, 317, 387, 393, 358, - 187, 396, 356, 355, 399, 131, 0, 0, 145, 98, - 97, 106, 391, 340, 348, 89, 346, 137, 127, 157, - 373, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 584, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 315, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 321, 0, - 143, 159, 172, 336, 394, 165, 166, 167, 168, 0, - 0, 0, 316, 314, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 332, 335, 330, 331, 369, - 370, 403, 404, 405, 385, 327, 0, 333, 334, 0, - 389, 372, 77, 0, 108, 169, 133, 95, 160, 398, - 388, 0, 360, 400, 338, 352, 408, 353, 354, 381, - 324, 368, 125, 350, 0, 341, 319, 347, 320, 339, - 362, 93, 365, 337, 390, 371, 107, 406, 109, 376, - 0, 142, 118, 0, 0, 364, 392, 366, 386, 359, - 382, 329, 375, 401, 351, 379, 402, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 378, 397, 349, 380, 318, 377, 0, 322, 325, - 407, 395, 344, 345, 0, 0, 0, 0, 0, 0, - 0, 363, 367, 383, 357, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 342, 0, 374, 0, 0, 0, - 326, 323, 0, 361, 0, 0, 0, 328, 0, 343, - 384, 0, 317, 387, 393, 358, 187, 396, 356, 355, - 399, 131, 0, 0, 145, 98, 97, 106, 391, 340, - 348, 89, 346, 137, 127, 157, 373, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 306, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 315, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 321, 0, 143, 159, 172, 336, - 394, 165, 166, 167, 168, 0, 0, 0, 316, 314, - 309, 308, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 332, 335, 330, 331, 369, 370, 403, 404, 405, - 385, 327, 0, 333, 334, 0, 389, 372, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 742, 0, + 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, + 291, 272, 273, 274, 275, 277, 0, 276, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, + 50, 0, 454, 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 249, 231, 0, 0, 0, 290, + 0, 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, @@ -1195,11 +1210,11 @@ var yyAct = [...]int{ 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 454, 238, 258, 257, 260, + 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, + 0, 0, 0, 0, 0, 0, 248, 249, 231, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, @@ -1218,12 +1233,12 @@ var yyAct = [...]int{ 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, + 0, 0, 0, 0, 805, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 231, 0, 0, 0, 290, 0, 250, 0, 0, + 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, @@ -1237,31 +1252,31 @@ var yyAct = [...]int{ 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, - 272, 273, 274, 275, 277, 0, 276, 77, 0, 108, - 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, - 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, - 271, 0, 0, 0, 0, 0, 0, 805, 0, 50, - 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, - 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, - 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, + 272, 273, 274, 275, 277, 23, 276, 77, 0, 108, + 169, 133, 95, 160, 0, 0, 0, 125, 0, 0, + 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, + 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, + 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, + 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, - 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, - 282, 281, 291, 272, 273, 274, 275, 277, 23, 276, - 77, 0, 108, 169, 133, 95, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, + 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, + 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, + 277, 0, 276, 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, @@ -1284,109 +1299,40 @@ var yyAct = [...]int{ 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, 272, - 273, 274, 275, 277, 0, 276, 77, 0, 108, 169, - 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, - 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, - 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 248, 249, 0, 0, 0, 0, 290, 0, 250, - 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 280, 289, 286, 287, 284, 285, 283, 282, - 281, 291, 272, 273, 274, 275, 277, 125, 276, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, - 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, - 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, - 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, - 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 1290, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, - 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, - 277, 125, 276, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 279, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, - 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, - 264, 265, 266, 0, 0, 0, 251, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, - 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, - 272, 273, 274, 275, 277, 125, 276, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 488, - 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, - 489, 0, 0, 499, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 108, 169, 133, 95, 160, 125, 0, - 0, 0, 476, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 0, 478, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 473, 472, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 474, 0, 0, + 273, 274, 275, 277, 125, 276, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 279, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, + 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, + 0, 86, 259, 264, 265, 266, 0, 0, 0, 251, + 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, + 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 1291, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, + 282, 281, 291, 272, 273, 274, 275, 277, 125, 276, + 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, + 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, + 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, + 0, 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, + 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, @@ -1396,22 +1342,22 @@ var yyAct = [...]int{ 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, + 287, 284, 285, 283, 282, 281, 291, 272, 273, 274, + 275, 277, 125, 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 71, 72, 0, 67, 0, 0, 0, - 73, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 488, 487, 497, 498, + 490, 491, 492, 493, 494, 495, 496, 489, 0, 0, + 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 69, 164, 147, 163, 78, 146, 155, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, @@ -1419,16 +1365,16 @@ var yyAct = [...]int{ 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 0, 573, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 476, 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 575, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 478, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 473, 472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, @@ -1440,147 +1386,35 @@ var yyAct = [...]int{ 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 23, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 0, 0, 693, 0, - 0, 694, 0, 0, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 593, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 592, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, - 169, 133, 95, 160, 125, 0, 0, 0, 573, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 185, 0, 575, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 571, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, + 71, 72, 0, 67, 0, 0, 0, 73, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 69, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 0, 0, 0, 0, 77, 0, 108, 169, 133, + 95, 160, 125, 0, 0, 0, 573, 0, 0, 0, + 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 575, 0, 0, 0, 0, 0, 0, 86, @@ -1600,12 +1434,12 @@ var yyAct = [...]int{ 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 0, 478, 0, 0, 0, + 0, 50, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1622,13 +1456,81 @@ var yyAct = [...]int{ 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 126, 138, 88, 158, 141, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, + 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 185, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 0, 693, 0, 0, 694, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 77, 0, 108, 169, 133, 95, 160, 93, 0, 593, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 0, 592, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 77, 0, 108, 169, 133, 95, 160, 551, + 0, 0, 0, 0, 77, 0, 108, 169, 133, 95, + 160, 125, 0, 0, 0, 573, 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 575, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1636,7 +1538,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 89, 0, 137, 127, 157, 0, 571, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, @@ -1645,12 +1547,12 @@ var yyAct = [...]int{ 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1672,14 +1574,14 @@ var yyAct = [...]int{ 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 575, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 0, 187, 0, 0, 0, 0, 131, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, @@ -1695,7 +1597,7 @@ var yyAct = [...]int{ 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 478, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1713,64 +1615,154 @@ var yyAct = [...]int{ 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 77, + 0, 108, 169, 133, 95, 160, 551, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, + 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, + 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, + 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, + 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, + 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, - 169, 133, 95, 160, + 0, 0, 0, 0, 77, 0, 108, 169, 133, 95, + 160, } var yyPact = [...]int{ - 1854, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1870, -1000, -191, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 884, 905, -1000, -1000, -1000, -1000, -1000, -1000, 661, - 7474, 51, 73, -6, 10181, 72, 196, 10853, -1000, -11, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 643, -1000, -1000, - -1000, -1000, -1000, 878, 882, 668, 857, 728, -1000, 5643, - 50, 9060, 9957, 4944, -1000, 504, 69, 10853, -153, 10405, - 44, 44, 44, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 795, 827, -1000, -1000, -1000, -1000, -1000, -1000, 605, + 7391, 59, 73, 4, 10098, 72, 311, 10770, -1000, -15, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 567, -1000, -1000, + -1000, -1000, -1000, 781, 793, 630, 771, 696, -1000, 5560, + 52, 8977, 9874, 4861, -1000, 486, 69, 10770, -159, 10322, + 50, 50, 50, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1780,21 +1772,21 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 71, 10853, -1000, 10853, 41, 496, 41, - 41, 41, 10853, -1000, 107, -1000, -1000, -1000, -1000, 10853, - 490, 785, 29, 2976, 2976, 2976, 2976, -5, 2976, -91, - 680, -1000, -1000, -1000, -1000, 2976, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 335, 825, 6345, 6345, - 884, -1000, 643, -1000, -1000, -1000, 819, -1000, -1000, 273, - 895, -1000, 7250, 106, -1000, 6345, 2115, 623, -1000, -1000, - 623, -1000, -1000, 92, -1000, -1000, 6793, 6793, 6793, 6793, - 6793, 6793, 6793, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 623, -1000, 6112, - 623, 623, 623, 623, 623, 623, 623, 623, 6345, 623, - 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 9733, 531, 840, -1000, -1000, -1000, 837, 8155, - 8836, 10853, 543, -1000, 618, 4698, -101, -1000, -1000, -1000, - 186, 8603, -1000, -1000, -1000, 770, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 71, 10770, -1000, 10770, 49, 485, 49, + 49, 49, 10770, -1000, 109, -1000, -1000, -1000, -1000, 10770, + 480, 721, 22, 2893, 2893, 2893, 2893, 0, 2893, -94, + 656, -1000, -1000, -1000, -1000, 2893, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 349, 757, 6262, 6262, + 795, -1000, 567, -1000, -1000, -1000, 731, -1000, -1000, 256, + 809, -1000, 7167, 108, -1000, 6262, 2033, 582, -1000, -1000, + 582, -1000, -1000, 98, -1000, -1000, 6710, 6710, 6710, 6710, + 6710, 6710, 6710, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 582, -1000, 6029, + 582, 582, 582, 582, 582, 582, 582, 582, 6262, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 9650, 524, 657, -1000, -1000, -1000, 768, 8072, + 8753, 10770, 496, -1000, 568, 4615, -129, -1000, -1000, -1000, + 185, 8520, -1000, -1000, -1000, 719, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1803,118 +1795,118 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 495, - -1000, 1988, 480, 2976, 63, 513, 471, 224, 457, 10853, - 10853, 2976, 58, 10853, 835, 679, 10853, 455, 439, -1000, - 4452, -1000, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, - -1000, -1000, -1000, -1000, -1000, -1000, 2976, 2976, -1000, -95, - -1000, 10853, -1000, -1000, -1000, -1000, 900, 135, 284, 104, - 619, -1000, 281, 878, 335, 728, 8379, 651, -1000, -1000, - 10853, -1000, 6345, 6345, 317, -1000, 9508, -1000, -1000, 3468, - 157, 6793, 345, 166, 6793, 6793, 6793, 6793, 6793, 6793, - 6793, 6793, 6793, 6793, 6793, 6793, 6793, 6793, 6793, 314, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 428, - -1000, 643, 694, 694, 115, 115, 115, 115, 115, 115, - 7017, 5177, 335, 488, 163, 6112, 5643, 5643, 6345, 6345, - 10629, 10629, 5643, 865, 187, 163, 10629, -1000, 335, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5643, 5643, 5643, 5643, - 10, 10853, -1000, 10629, 9060, 9060, 9060, 9060, 9060, -1000, - 725, 718, -1000, 703, 699, 755, 10853, -1000, 479, 8155, - 122, 623, -1000, 9284, -1000, -1000, 10, 528, 9060, 10853, - -1000, -1000, 4206, 618, -101, 613, -1000, -122, -132, 5876, - 113, -1000, -1000, -1000, -1000, 2730, 332, 259, -80, -1000, - -1000, -1000, 630, -1000, 630, 630, 630, 630, -37, -37, - -37, -37, -1000, -1000, -1000, -1000, -1000, 660, 659, -1000, - 630, 630, 630, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 641, - 641, 641, 631, 631, 663, -1000, 10853, -170, 426, 2976, - 830, 2976, -1000, 64, -1000, 10853, -1000, -1000, 10853, 2976, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 479, + -1000, 1905, 476, 2893, 63, 607, 474, 224, 461, 10770, + 10770, 2893, 54, 10770, 764, 652, 10770, 457, 447, -1000, + 4369, -1000, 2893, 2893, 2893, 2893, 2893, 2893, 2893, 2893, + -1000, -1000, -1000, -1000, -1000, -1000, 2893, 2893, -1000, -78, + -1000, 10770, -1000, -1000, -1000, -1000, 820, 135, 395, 107, + 570, -1000, 282, 781, 349, 696, 8296, 686, -1000, -1000, + 10770, -1000, 6262, 6262, 279, -1000, 9425, -1000, -1000, 3385, + 141, 6710, 318, 169, 6710, 6710, 6710, 6710, 6710, 6710, + 6710, 6710, 6710, 6710, 6710, 6710, 6710, 6710, 6710, 335, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 430, + -1000, 567, 608, 608, 121, 121, 121, 121, 121, 121, + 6934, 5094, 349, 469, 252, 6029, 5560, 5560, 6262, 6262, + 10546, 10546, 5560, 772, 177, 252, 10546, -1000, 349, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 5560, 5560, 5560, 5560, + 23, 10770, -1000, 10546, 8977, 8977, 8977, 8977, 8977, -1000, + 690, 672, -1000, 671, 669, 677, 10770, -1000, 455, 8072, + 123, 582, -1000, 9201, -1000, -1000, 23, 511, 8977, 10770, + -1000, -1000, 4123, 568, -129, 538, -1000, -102, -122, 5793, + 116, -1000, -1000, -1000, -1000, 2647, 183, 259, -72, -1000, + -1000, -1000, 587, -1000, 587, 587, 587, 587, -41, -41, + -41, -41, -1000, -1000, -1000, -1000, -1000, 604, 603, -1000, + 587, 587, 587, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 602, + 602, 602, 589, 589, 620, -1000, 10770, -175, 388, 2893, + 761, 2893, -1000, 64, -1000, 10770, -1000, -1000, 10770, 2893, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 225, -1000, -1000, -1000, -1000, - 751, 6345, 6345, 3960, 6345, -1000, -1000, -1000, 825, -1000, - 865, 883, -1000, 760, 759, 5643, -1000, -1000, 157, 172, - -1000, -1000, 350, -1000, -1000, -1000, -1000, 103, 623, -1000, - 710, -1000, -1000, -1000, -1000, 345, 6793, 6793, 6793, 62, - 710, 1735, 1170, 605, 115, 422, 422, 121, 121, 121, - 121, 121, 736, 736, -1000, -1000, -1000, 335, -1000, -1000, - -1000, 335, 5643, 617, -1000, -1000, 6345, -1000, 335, 477, - 477, 278, 394, 599, -1000, 102, 566, 477, 5643, 219, - -1000, 6345, 335, -1000, 477, 335, 477, 477, 511, 623, - -1000, 587, -1000, 185, 840, 640, 677, 614, -1000, -1000, - -1000, -1000, 716, -1000, 695, -1000, -1000, -1000, -1000, -1000, - 68, 67, 65, 10405, -1000, 892, 9060, 564, -1000, -1000, - 613, -101, -92, -1000, -1000, -1000, 163, -1000, 410, 610, - 2484, -1000, -1000, -1000, -1000, -1000, -1000, 637, 818, 173, - 183, 407, -1000, -1000, 791, -1000, 231, -82, -1000, -1000, - 328, -37, -37, -1000, -1000, 113, 764, 113, 113, 113, - 362, 362, -1000, -1000, -1000, -1000, 324, -1000, -1000, -1000, - 299, -1000, 669, 10405, 2976, -1000, 3714, -1000, -1000, -1000, - -1000, -1000, -1000, 300, 192, 204, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 9, -1000, 2976, - -1000, 248, 10853, 10853, 737, 163, 163, 100, -1000, -1000, - 10853, -1000, -1000, -1000, -1000, 562, -1000, -1000, -1000, 3222, - 5643, -1000, 62, 710, 1672, -1000, 6793, 6793, -1000, -1000, - 477, 5643, 163, -1000, -1000, -1000, 222, 314, 222, 6793, - 6793, 3960, 6793, 6793, -164, 536, 182, -1000, 6345, 374, - -1000, -1000, -1000, -1000, -1000, 667, 10629, 623, -1000, 7931, - 10405, 884, 10629, 6345, 6345, -1000, -1000, 6345, 632, -1000, - 6345, -1000, -1000, -1000, 623, 623, 623, 432, -1000, 884, - 564, -1000, -1000, -1000, -129, -137, -1000, -1000, 2730, -1000, - 2730, 10405, -1000, 398, 396, -1000, -1000, 666, 66, -1000, - -1000, -1000, 438, 113, 113, -1000, 162, -1000, -1000, -1000, - 461, -1000, 454, 600, 437, 10853, -1000, -1000, 559, -1000, - 178, -1000, -1000, 10405, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 10405, 10853, -1000, -1000, - -1000, -1000, -1000, 10405, -1000, -1000, 357, 6345, -1000, -1000, - -1000, 3714, -1000, 892, 9060, -1000, -1000, 335, -1000, 6793, - 710, 710, -1000, -1000, 335, 630, 630, -1000, 630, 631, - -1000, 630, -20, 630, -21, 335, 335, 1056, 1584, -1000, - 684, 404, 623, -161, -1000, 163, 6345, -1000, 820, 520, - 532, -1000, -1000, 5410, 335, 435, 77, 432, 878, -1000, - 163, 163, 163, 10405, 163, 10405, 10405, 10405, 7707, 10405, - 878, -1000, -1000, -1000, -1000, 2484, -1000, 423, -1000, 630, - -1000, -1000, -73, 899, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -37, 351, -37, 294, -1000, - 288, 2976, 3714, 2730, -1000, 628, -1000, -1000, -1000, -1000, - 823, -1000, 163, 890, 542, -1000, 710, -1000, -1000, 84, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6793, - 6793, -1000, 6793, 6793, 6793, 335, 341, 163, 817, -1000, - 623, -1000, -1000, 642, 10405, 10405, -1000, -1000, 420, -1000, - 416, 416, 416, 122, -1000, -1000, 118, 10405, -1000, 181, - -1000, -141, 113, -1000, 113, 421, 395, -1000, -1000, -1000, - 10405, 623, 886, 880, -1000, -1000, 1254, 1254, 1254, 1254, - 6, -1000, -1000, 898, -1000, 623, -1000, 643, 74, -1000, - 10405, -1000, -1000, -1000, -1000, -1000, 118, -1000, 390, 167, - 338, -1000, 268, 815, -1000, 793, -1000, -1000, -1000, -1000, - -1000, 402, 7, -1000, 6345, 6345, -1000, -1000, -1000, -1000, - 335, 34, -177, 10629, 532, 335, 10405, -1000, -1000, -1000, - 286, -1000, -1000, -1000, 334, -1000, -1000, 513, 387, -1000, - 10405, 163, 521, -1000, 733, -168, -181, 512, -1000, -1000, - -1000, -1000, -170, -1000, 7, 741, -1000, 697, -1000, -1000, - -1000, 3, -175, -1, -179, 623, -182, 6569, -1000, 1254, - 335, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 222, -1000, -1000, -1000, -1000, + 703, 6262, 6262, 3877, 6262, -1000, -1000, -1000, 757, -1000, + 772, 788, -1000, 711, 710, 5560, -1000, -1000, 141, 174, + -1000, -1000, 261, -1000, -1000, -1000, -1000, 106, 582, -1000, + 1896, -1000, -1000, -1000, -1000, 318, 6710, 6710, 6710, 62, + 1896, 1810, 1301, 1624, 121, 309, 309, 118, 118, 118, + 118, 118, 658, 658, -1000, -1000, -1000, 349, -1000, -1000, + -1000, 349, 5560, 557, -1000, -1000, 6262, -1000, 349, 451, + 451, 375, 372, 574, -1000, 105, 569, 451, 5560, 191, + -1000, 6262, 349, -1000, 451, 349, 451, 451, 478, 582, + -1000, 563, -1000, 171, 657, 597, 639, 730, -1000, -1000, + -1000, -1000, 670, -1000, 640, -1000, -1000, -1000, -1000, -1000, + 68, 67, 66, 10322, -1000, 801, 8977, 523, -1000, -1000, + 538, -129, -93, -1000, -1000, -1000, 252, -1000, 385, 536, + 2401, -1000, -1000, -1000, -1000, -1000, -1000, 592, 755, 173, + 158, 374, -1000, -1000, 733, -1000, 196, -82, -1000, -1000, + 313, -41, -41, -1000, -1000, 116, 715, 116, 116, 116, + 341, 341, -1000, -1000, -1000, -1000, 306, -1000, -1000, -1000, + 301, -1000, 636, 10322, 2893, -1000, 3631, -1000, -1000, -1000, + -1000, -1000, -1000, 565, 206, 198, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 10, -1000, 2893, + -1000, 237, 10770, 10770, 701, 252, 252, 103, -1000, -1000, + 10770, -1000, -1000, -1000, -1000, 532, -1000, -1000, -1000, 3139, + 5560, -1000, 62, 1896, 1682, -1000, 6710, 6710, -1000, -1000, + 451, 5560, 252, -1000, -1000, -1000, 217, 335, 217, 6710, + 6710, 3877, 6710, 6710, -169, 529, 175, -1000, 6262, 228, + -1000, -1000, -1000, -1000, -1000, 625, 10546, 582, -1000, 7848, + 10322, 795, 10546, 6262, 6262, -1000, -1000, 6262, 590, -1000, + 6262, -1000, -1000, -1000, 582, 582, 582, 409, -1000, 795, + 523, -1000, -1000, -1000, -119, -127, -1000, -1000, 2647, -1000, + 2647, 10322, -1000, 367, 365, -1000, -1000, 622, 28, -1000, + -1000, -1000, 417, 116, 116, -1000, 188, -1000, -1000, -1000, + 426, -1000, 422, 530, 420, 10770, -1000, -1000, 520, -1000, + 160, -1000, -1000, 10322, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 10322, 10770, -1000, -1000, + -1000, -1000, -1000, 10322, -1000, -1000, 340, 6262, -1000, -1000, + -1000, 3631, -1000, 801, 8977, -1000, -1000, 349, -1000, 6710, + 1896, 1896, -1000, -1000, 349, 587, 587, -1000, 587, 589, + -1000, 587, -24, 587, -25, -1000, 349, 349, 1571, 1497, + -1000, 1458, 398, 582, -166, -1000, 252, 6262, -1000, 758, + 510, 512, -1000, -1000, 5327, 349, 416, 102, 409, 781, + -1000, 252, 252, 252, 10322, 252, 10322, 10322, 10322, 7624, + 10322, 781, -1000, -1000, -1000, -1000, 2401, -1000, 402, -1000, + 587, -1000, -1000, -68, 815, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -41, 338, -41, 300, + -1000, 299, 2893, 3631, 2647, -1000, 586, -1000, -1000, -1000, + -1000, 760, -1000, 252, 799, 517, -1000, 1896, -1000, -1000, + 78, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 6710, 6710, -1000, 6710, 6710, 6710, 349, 337, 252, 740, + -1000, 582, -1000, -1000, 543, 10322, 10322, -1000, -1000, 400, + -1000, 396, 396, 396, 123, -1000, -1000, 119, 10322, -1000, + 176, -1000, -146, 116, -1000, 116, 397, 373, -1000, -1000, + -1000, 10322, 582, 797, 792, -1000, -1000, 1586, 1586, 1586, + 1586, 13, -1000, -1000, 813, -1000, 582, -1000, 567, 93, + -1000, 10322, -1000, -1000, -1000, -1000, -1000, 119, -1000, 360, + 156, 329, -1000, 232, 739, -1000, 737, -1000, -1000, -1000, + -1000, -1000, 371, 2, -1000, 6262, 6262, -1000, -1000, -1000, + -1000, 349, 48, -178, 10546, 512, 349, 10322, -1000, -1000, + -1000, 297, -1000, -1000, -1000, 324, -1000, -1000, 607, 348, + -1000, 10322, 252, 471, -1000, 700, -172, -181, 424, -1000, + -1000, -1000, -1000, -175, -1000, 2, 709, -1000, 695, -1000, + -1000, -1000, -2, -176, -5, -179, 582, -182, 6486, -1000, + 1586, 349, -1000, -1000, } var yyPgo = [...]int{ - 0, 1121, 22, 584, 1120, 1119, 1118, 1117, 1115, 1114, - 1109, 1106, 1104, 1103, 1101, 1099, 1095, 1091, 1090, 1089, - 1085, 1084, 1083, 1082, 110, 1081, 1080, 1077, 59, 1075, - 64, 1074, 1072, 38, 215, 35, 32, 299, 1065, 33, - 84, 52, 1064, 40, 1062, 1059, 65, 1057, 51, 1056, - 1055, 1399, 1054, 1053, 13, 26, 1052, 1049, 1044, 1043, - 54, 375, 1042, 1041, 1040, 1039, 1038, 1036, 42, 6, - 9, 11, 14, 1034, 410, 8, 1033, 41, 1031, 1030, - 1029, 1027, 28, 1026, 44, 1025, 21, 43, 1023, 10, - 60, 31, 18, 5, 63, 50, 1019, 30, 53, 39, - 1018, 1017, 394, 1016, 1013, 1012, 1011, 1010, 1009, 130, - 267, 1008, 1007, 1006, 1005, 49, 167, 483, 633, 61, - 1003, 1002, 1001, 1369, 57, 47, 16, 1000, 29, 1196, - 34, 999, 998, 27, 995, 993, 992, 990, 986, 985, - 983, 24, 979, 977, 976, 58, 12, 975, 959, 45, - 19, 953, 948, 947, 37, 46, 943, 55, 937, 935, - 934, 933, 25, 20, 932, 15, 929, 7, 928, 927, - 3, 926, 17, 925, 2, 924, 4, 36, 915, 914, - 0, 563, 913, 912, 94, + 0, 1040, 25, 552, 1036, 1032, 1031, 1030, 1029, 1028, + 1027, 1026, 1023, 1019, 1018, 1017, 1016, 1012, 1011, 1010, + 1009, 1003, 1002, 1001, 121, 1000, 999, 998, 65, 995, + 63, 994, 989, 31, 104, 34, 30, 560, 986, 18, + 58, 53, 977, 40, 976, 975, 66, 974, 52, 973, + 972, 1319, 969, 967, 11, 35, 959, 958, 954, 953, + 55, 732, 952, 949, 948, 946, 939, 936, 37, 7, + 6, 32, 12, 933, 246, 8, 932, 46, 929, 928, + 927, 926, 45, 925, 42, 915, 21, 41, 914, 9, + 50, 27, 16, 4, 64, 44, 913, 23, 47, 39, + 912, 911, 340, 910, 909, 908, 907, 906, 904, 136, + 311, 903, 902, 900, 899, 22, 167, 483, 341, 61, + 896, 895, 891, 1285, 57, 59, 15, 889, 38, 1100, + 29, 888, 887, 24, 886, 885, 882, 881, 879, 878, + 877, 385, 876, 875, 874, 51, 54, 873, 872, 43, + 20, 871, 866, 864, 19, 49, 862, 36, 859, 858, + 854, 850, 28, 17, 849, 10, 848, 14, 846, 845, + 2, 843, 13, 842, 5, 838, 3, 33, 837, 836, + 0, 102, 835, 834, 92, } var yyR1 = [...]int{ @@ -1966,18 +1958,18 @@ var yyR1 = [...]int{ 64, 64, 64, 64, 64, 64, 184, 184, 66, 66, 66, 66, 31, 31, 31, 31, 31, 130, 130, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 78, 78, 32, 32, 76, 76, 77, 79, - 79, 75, 75, 75, 60, 60, 60, 60, 60, 60, - 60, 60, 62, 62, 62, 80, 80, 81, 81, 82, - 82, 83, 83, 84, 85, 85, 85, 86, 86, 86, - 86, 87, 87, 87, 59, 59, 59, 59, 59, 59, - 88, 88, 88, 88, 92, 92, 70, 70, 72, 72, - 71, 73, 93, 93, 97, 94, 94, 98, 98, 98, - 96, 96, 96, 122, 122, 122, 101, 101, 109, 109, - 110, 110, 102, 102, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 112, 112, 112, 113, 113, 114, - 114, 114, 121, 121, 117, 117, 118, 118, 123, 123, - 124, 124, 115, 115, 115, 115, 115, 115, 115, 115, + 133, 133, 133, 78, 78, 32, 32, 76, 76, 77, + 79, 79, 75, 75, 75, 60, 60, 60, 60, 60, + 60, 60, 60, 62, 62, 62, 80, 80, 81, 81, + 82, 82, 83, 83, 84, 85, 85, 85, 86, 86, + 86, 86, 87, 87, 87, 59, 59, 59, 59, 59, + 59, 88, 88, 88, 88, 92, 92, 70, 70, 72, + 72, 71, 73, 93, 93, 97, 94, 94, 98, 98, + 98, 96, 96, 96, 122, 122, 122, 101, 101, 109, + 109, 110, 110, 102, 102, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 112, 112, 112, 113, 113, + 114, 114, 114, 121, 121, 117, 117, 118, 118, 123, + 123, 124, 124, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, @@ -1986,7 +1978,7 @@ var yyR1 = [...]int{ 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, + 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, @@ -1996,7 +1988,7 @@ var yyR1 = [...]int{ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 180, 181, 128, 129, 129, 129, + 116, 116, 116, 180, 181, 128, 129, 129, 129, } var yyR2 = [...]int{ @@ -2048,17 +2040,17 @@ var yyR2 = [...]int{ 2, 2, 2, 2, 2, 2, 0, 2, 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, 1, 2, 3, 3, 1, 2, 2, 1, 2, 1, 2, 2, - 1, 2, 0, 1, 0, 2, 1, 2, 4, 0, - 2, 1, 3, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 0, 3, 0, 2, 0, - 3, 1, 3, 2, 0, 1, 1, 0, 2, 4, - 4, 0, 2, 4, 2, 1, 3, 5, 4, 6, - 1, 3, 3, 5, 0, 5, 1, 3, 1, 2, - 3, 1, 1, 3, 3, 1, 3, 3, 3, 3, - 1, 2, 1, 1, 1, 1, 1, 1, 0, 2, - 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, - 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 0, 1, 0, 2, 1, 2, 4, + 0, 2, 1, 3, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 0, 3, 0, 2, + 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, + 4, 4, 0, 2, 4, 2, 1, 3, 5, 4, + 6, 1, 3, 3, 5, 0, 5, 1, 3, 1, + 2, 3, 1, 1, 3, 3, 1, 3, 3, 3, + 3, 1, 2, 1, 1, 1, 1, 1, 1, 0, + 2, 0, 3, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2078,7 +2070,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -2187,164 +2179,164 @@ var yyChk = [...]int{ 22, 121, 28, 143, -129, -108, 88, 12, -123, -123, 38, 110, -51, -38, 11, 98, -118, -35, -33, 71, -61, -61, -181, -36, -133, 107, 175, 137, 173, 169, - 189, 180, 202, 171, 203, -130, -133, -61, -61, -118, - -61, -61, 244, -82, 79, -37, 77, -92, 51, -93, - -70, -72, -71, -180, -2, -88, -117, -91, -82, -97, - -37, -37, -37, 53, -37, -180, -180, -180, -181, 54, - -82, -55, 220, 224, 225, -162, -163, -166, -165, -117, - 56, 56, -144, 51, 58, 59, 60, 67, 227, 66, - 55, -146, -146, 56, 107, 55, 54, 55, 54, 55, - 54, -51, 54, 80, -128, -117, -128, -117, -51, -128, - -117, 58, -37, -55, -39, -181, -61, -181, -141, -141, - -141, -150, -141, 163, -141, 163, -181, -181, -181, 54, - 19, -181, 54, 19, -180, -32, 242, -37, 27, -92, - 54, -181, -181, -181, 54, 110, -181, -86, -89, -117, - -89, -89, -89, -126, -117, -86, 55, 54, -141, -152, - 200, 9, -145, 58, -145, 59, 59, -129, -172, -163, - 53, 26, -80, 13, -145, 56, -61, -61, -61, -61, - -61, -181, 58, 28, -72, 33, -2, -180, -117, -117, - 54, 55, -181, -181, -181, -54, -168, -167, 52, 133, - 65, -165, -153, 127, 28, 126, 227, -146, -146, 55, - 55, -89, -180, -81, 14, 16, -181, -181, -181, -181, - -31, 90, 247, 9, -70, -2, 110, -117, -167, 56, - -158, 80, 58, -143, 65, 28, 28, 55, -169, -170, - 143, -37, -69, -181, 245, 48, 248, -93, -181, -117, - 59, 58, -176, -181, 54, -117, 38, 246, 249, -174, - -170, 33, 38, 145, 247, 146, 248, -180, 249, -61, - 142, -181, -181, + 189, 180, 202, 171, 203, 172, -130, -133, -61, -61, + -118, -61, -61, 244, -82, 79, -37, 77, -92, 51, + -93, -70, -72, -71, -180, -2, -88, -117, -91, -82, + -97, -37, -37, -37, 53, -37, -180, -180, -180, -181, + 54, -82, -55, 220, 224, 225, -162, -163, -166, -165, + -117, 56, 56, -144, 51, 58, 59, 60, 67, 227, + 66, 55, -146, -146, 56, 107, 55, 54, 55, 54, + 55, 54, -51, 54, 80, -128, -117, -128, -117, -51, + -128, -117, 58, -37, -55, -39, -181, -61, -181, -141, + -141, -141, -150, -141, 163, -141, 163, -181, -181, -181, + 54, 19, -181, 54, 19, -180, -32, 242, -37, 27, + -92, 54, -181, -181, -181, 54, 110, -181, -86, -89, + -117, -89, -89, -89, -126, -117, -86, 55, 54, -141, + -152, 200, 9, -145, 58, -145, 59, 59, -129, -172, + -163, 53, 26, -80, 13, -145, 56, -61, -61, -61, + -61, -61, -181, 58, 28, -72, 33, -2, -180, -117, + -117, 54, 55, -181, -181, -181, -54, -168, -167, 52, + 133, 65, -165, -153, 127, 28, 126, 227, -146, -146, + 55, 55, -89, -180, -81, 14, 16, -181, -181, -181, + -181, -31, 90, 247, 9, -70, -2, 110, -117, -167, + 56, -158, 80, 58, -143, 65, 28, 28, 55, -169, + -170, 143, -37, -69, -181, 245, 48, 248, -93, -181, + -117, 59, 58, -176, -181, 54, -117, 38, 246, 249, + -174, -170, 33, 38, 145, 247, 146, 248, -180, 249, + -61, 142, -181, -181, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 509, 0, 277, 277, 277, 277, 277, 277, 0, - 579, 562, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 784, 784, 784, 784, 784, 0, 33, 34, - 782, 1, 3, 517, 0, 0, 281, 284, 279, 0, - 562, 0, 0, 0, 60, 0, 0, 771, 0, 772, - 560, 560, 560, 580, 581, 584, 585, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, - 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, - 767, 768, 769, 770, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 0, 0, 563, 0, 558, 0, 558, - 558, 558, 0, 226, 348, 588, 589, 771, 772, 0, - 0, 0, 0, 785, 785, 785, 785, 0, 785, 255, - 244, 246, 247, 248, 249, 785, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 521, 0, 0, - 509, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 21, 510, 0, 277, 277, 277, 277, 277, 277, 0, + 580, 563, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 785, 785, 785, 785, 785, 0, 33, 34, + 783, 1, 3, 518, 0, 0, 281, 284, 279, 0, + 563, 0, 0, 0, 60, 0, 0, 772, 0, 773, + 561, 561, 561, 581, 582, 585, 586, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 770, 771, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 0, 0, 564, 0, 559, 0, 559, + 559, 559, 0, 226, 348, 589, 590, 772, 773, 0, + 0, 0, 0, 786, 786, 786, 786, 0, 786, 255, + 244, 246, 247, 248, 249, 786, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 522, 0, 0, + 510, 29, 0, 277, 282, 283, 287, 285, 286, 278, 0, 295, 299, 0, 356, 0, 361, 363, -2, -2, 0, 399, 400, 401, 402, 403, 0, 0, 0, 0, - 0, 0, 0, 426, 427, 428, 429, 494, 495, 496, - 497, 498, 499, 500, 501, 365, 366, 491, 541, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 482, 0, + 0, 0, 0, 426, 427, 428, 429, 495, 496, 497, + 498, 499, 500, 501, 502, 365, 366, 492, 542, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, 456, 456, 456, 456, 456, 456, 456, 456, 0, 0, 0, 0, 0, 0, 306, 308, 309, 310, 329, 0, - 331, 0, 0, 41, 45, 0, 762, 545, -2, -2, - 0, 0, 586, 587, -2, 691, -2, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 0, - 77, 0, 0, 785, 0, 67, 0, 0, 0, 0, - 0, 785, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 227, 785, 785, 785, 785, 785, 785, 785, 785, - 236, 786, 787, 237, 238, 239, 785, 785, 241, 0, - 256, 0, 250, 28, 783, 22, 0, 0, 518, 0, - 510, 511, 514, 517, 27, 284, 0, 289, 288, 280, + 331, 0, 0, 41, 45, 0, 763, 546, -2, -2, + 0, 0, 587, 588, -2, 692, -2, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 0, + 77, 0, 0, 786, 0, 67, 0, 0, 0, 0, + 0, 786, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 227, 786, 786, 786, 786, 786, 786, 786, 786, + 236, 787, 788, 237, 238, 239, 786, 786, 241, 0, + 256, 0, 250, 28, 784, 22, 0, 0, 519, 0, + 511, 512, 515, 518, 27, 284, 0, 289, 288, 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, 0, 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 384, 385, 386, 387, 388, 389, 390, 362, 0, 376, 0, 0, 0, 419, 420, 421, 422, 423, 424, 0, 291, 27, 0, 397, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 483, 0, 448, 0, 449, + 0, 0, 0, 287, 0, 484, 0, 448, 0, 449, 450, 451, 452, 453, 454, 455, 0, 291, 0, 0, 43, 0, 347, 0, 0, 0, 0, 0, 0, 336, 0, 0, 339, 0, 0, 0, 0, 330, 0, 0, - 350, 735, 332, 0, 334, 335, -2, 0, 0, 0, - 39, 40, 0, 46, 762, 48, 49, 0, 0, 0, - 157, 553, 554, 555, 551, 185, 0, 140, 136, 82, + 350, 736, 332, 0, 334, 335, -2, 0, 0, 0, + 39, 40, 0, 46, 763, 48, 49, 0, 0, 0, + 157, 554, 555, 556, 552, 185, 0, 140, 136, 82, 83, 84, 129, 86, 129, 129, 129, 129, 154, 154, 154, 154, 112, 113, 114, 115, 116, 0, 0, 99, 129, 129, 129, 103, 119, 120, 121, 122, 123, 124, 125, 126, 87, 88, 89, 90, 91, 92, 93, 131, - 131, 131, 133, 133, 582, 62, 0, 70, 0, 785, - 0, 785, 75, 0, 201, 0, 220, 559, 0, 785, - 223, 224, 349, 590, 591, 228, 229, 230, 231, 232, - 233, 234, 235, 240, 243, 257, 251, 252, 245, 522, - 0, 0, 0, 0, 0, 513, 515, 516, 521, 30, - 287, 0, 502, 0, 0, 0, 290, 25, 357, 358, - 360, 377, 0, 379, 381, 301, 297, 0, 492, -2, + 131, 131, 133, 133, 583, 62, 0, 70, 0, 786, + 0, 786, 75, 0, 201, 0, 220, 560, 0, 786, + 223, 224, 349, 591, 592, 228, 229, 230, 231, 232, + 233, 234, 235, 240, 243, 257, 251, 252, 245, 523, + 0, 0, 0, 0, 0, 514, 516, 517, 522, 30, + 287, 0, 503, 0, 0, 0, 290, 25, 357, 358, + 360, 377, 0, 379, 381, 301, 297, 0, 493, -2, 367, 368, 393, 394, 395, 0, 0, 0, 0, 391, 372, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 418, 467, 468, 0, 416, 417, - 425, 0, 0, 292, 293, 396, 0, 540, 27, 0, - 0, 0, 0, 0, 491, 0, 0, 0, 0, 489, - 486, 0, 0, 457, 0, 0, 0, 0, 0, 0, - 346, 354, 542, 0, 307, 325, 327, 0, 322, 337, + 425, 0, 0, 292, 293, 396, 0, 541, 27, 0, + 0, 0, 0, 0, 492, 0, 0, 0, 0, 490, + 487, 0, 0, 457, 0, 0, 0, 0, 0, 0, + 346, 354, 543, 0, 307, 325, 327, 0, 322, 337, 338, 340, 0, 342, 0, 344, 345, 311, 312, 313, - 0, 0, 0, 0, 333, 354, 0, 354, 42, 546, - 47, 0, 0, 52, 53, 547, 548, 549, 0, 76, + 0, 0, 0, 0, 333, 354, 0, 354, 42, 547, + 47, 0, 0, 52, 53, 548, 549, 550, 0, 76, 186, 188, 191, 192, 193, 78, 79, 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, 95, 96, 97, - 0, 98, 0, 0, 785, 64, 0, 68, 69, 65, - 561, 66, 784, 0, 0, 574, 202, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 0, 219, 785, - 222, 260, 0, 0, 0, 519, 520, 0, 512, 23, - 0, 556, 557, 503, 504, 304, 378, 380, 382, 0, + 0, 98, 0, 0, 786, 64, 0, 68, 69, 65, + 562, 66, 785, 0, 0, 575, 202, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 0, 219, 786, + 222, 260, 0, 0, 0, 520, 521, 0, 513, 23, + 0, 557, 558, 504, 505, 304, 378, 380, 382, 0, 291, 369, 391, 373, 0, 370, 0, 0, 364, 430, 0, 0, 398, -2, 433, 434, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 509, 0, 487, 0, 0, - 447, 458, 459, 460, 461, 534, 0, 0, -2, 0, - 0, 509, 0, 0, 0, 319, 326, 0, 0, 320, - 0, 321, 341, 343, 0, 0, 0, 0, 317, 509, + 0, 0, 0, 0, 0, 510, 0, 488, 0, 0, + 447, 458, 459, 460, 461, 535, 0, 0, -2, 0, + 0, 510, 0, 0, 0, 319, 326, 0, 0, 320, + 0, 321, 341, 343, 0, 0, 0, 0, 317, 510, 354, 38, 50, 51, 0, 0, 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, 0, 109, 110, 111, - 0, 127, 0, 0, 0, 0, 583, 63, 71, 72, - 0, 194, 784, 0, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 784, 0, 0, 784, 575, - 576, 577, 578, 0, 221, 242, 0, 0, 258, 259, - 523, 0, 24, 354, 0, 298, 493, 0, 371, 0, + 0, 127, 0, 0, 0, 0, 584, 63, 71, 72, + 0, 194, 785, 0, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 785, 0, 0, 785, 576, + 577, 578, 579, 0, 221, 242, 0, 0, 258, 259, + 524, 0, 24, 354, 0, 298, 494, 0, 371, 0, 392, 374, 431, 294, 0, 129, 129, 472, 129, 133, - 475, 129, 477, 129, 480, 0, 0, 0, 0, 492, - 0, 0, 0, 484, 446, 490, 0, 31, 0, 534, - 524, 536, 538, 0, 27, 0, 530, 0, 517, 543, - 355, 544, 323, 0, 328, 0, 0, 0, 331, 0, - 517, 37, 54, 55, 56, 187, 190, 0, 182, 129, - 176, 177, 152, 0, 144, 145, 146, 147, 148, 149, - 130, 104, 105, 155, 156, 154, 0, 154, 0, 134, - 0, 785, 0, 0, 195, 0, 196, 198, 199, 200, - 0, 261, 262, 505, 305, 432, 375, 435, 469, 154, - 473, 474, 476, 478, 479, 481, 437, 436, 438, 0, - 0, 441, 0, 0, 0, 0, 0, 488, 0, 32, - 0, 539, -2, 0, 0, 0, 44, 35, 0, 315, - 0, 0, 0, 350, 318, 36, 167, 0, 184, 159, - 153, 0, 157, 128, 157, 0, 0, 61, 73, 74, - 0, 0, 507, 0, 470, 471, 0, 0, 0, 0, - 462, 445, 485, 0, 537, 0, -2, 0, 532, 531, - 0, 324, 351, 352, 353, 314, 166, 168, 0, 173, - 0, 183, 164, 0, 161, 163, 151, 117, 118, 132, - 135, 0, 0, 26, 0, 0, 439, 440, 442, 443, - 0, 0, 0, 0, 527, 27, 0, 316, 169, 170, - 0, 174, 172, 80, 0, 160, 162, 67, 0, 215, - 0, 508, 506, 444, 0, 0, 0, 535, -2, 533, - 171, 165, 70, 214, 0, 0, 463, 0, 466, 197, - 216, 0, 464, 0, 0, 0, 0, 0, 465, 0, - 0, 217, 218, + 475, 129, 477, 129, 480, 482, 0, 0, 0, 0, + 493, 0, 0, 0, 485, 446, 491, 0, 31, 0, + 535, 525, 537, 539, 0, 27, 0, 531, 0, 518, + 544, 355, 545, 323, 0, 328, 0, 0, 0, 331, + 0, 518, 37, 54, 55, 56, 187, 190, 0, 182, + 129, 176, 177, 152, 0, 144, 145, 146, 147, 148, + 149, 130, 104, 105, 155, 156, 154, 0, 154, 0, + 134, 0, 786, 0, 0, 195, 0, 196, 198, 199, + 200, 0, 261, 262, 506, 305, 432, 375, 435, 469, + 154, 473, 474, 476, 478, 479, 481, 437, 436, 438, + 0, 0, 441, 0, 0, 0, 0, 0, 489, 0, + 32, 0, 540, -2, 0, 0, 0, 44, 35, 0, + 315, 0, 0, 0, 350, 318, 36, 167, 0, 184, + 159, 153, 0, 157, 128, 157, 0, 0, 61, 73, + 74, 0, 0, 508, 0, 470, 471, 0, 0, 0, + 0, 462, 445, 486, 0, 538, 0, -2, 0, 533, + 532, 0, 324, 351, 352, 353, 314, 166, 168, 0, + 173, 0, 183, 164, 0, 161, 163, 151, 117, 118, + 132, 135, 0, 0, 26, 0, 0, 439, 440, 442, + 443, 0, 0, 0, 0, 528, 27, 0, 316, 169, + 170, 0, 174, 172, 80, 0, 160, 162, 67, 0, + 215, 0, 509, 507, 444, 0, 0, 0, 536, -2, + 534, 171, 165, 70, 214, 0, 0, 463, 0, 466, + 197, 216, 0, 464, 0, 0, 0, 0, 0, 465, + 0, 0, 217, 218, } var yyTok1 = [...]int{ @@ -5482,128 +5474,134 @@ yydefault: yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 482: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2466 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + } + case 483: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2467 + //line sql.y:2471 { yyVAL.expr = nil } - case 483: + case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2471 + //line sql.y:2475 { yyVAL.expr = yyDollar[1].expr } - case 484: + case 485: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2476 + //line sql.y:2480 { yyVAL.str = string("") } - case 485: + case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2480 + //line sql.y:2484 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 486: + case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2486 + //line sql.y:2490 { yyVAL.whens = []*When{yyDollar[1].when} } - case 487: + case 488: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2490 + //line sql.y:2494 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 488: + case 489: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2496 + //line sql.y:2500 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 489: + case 490: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2501 + //line sql.y:2505 { yyVAL.expr = nil } - case 490: + case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2505 + //line sql.y:2509 { yyVAL.expr = yyDollar[2].expr } - case 491: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2511 - { - yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} - } case 492: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2515 { - yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} + yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 493: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2519 { - yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} + yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 494: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2525 + yyDollar = yyS[yypt-5 : yypt+1] + //line sql.y:2523 { - yyVAL.expr = NewStrVal(yyDollar[1].bytes) + yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 495: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2529 { - yyVAL.expr = NewHexVal(yyDollar[1].bytes) + yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 496: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2533 { - yyVAL.expr = NewBitVal(yyDollar[1].bytes) + yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 497: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2537 { - yyVAL.expr = NewIntVal(yyDollar[1].bytes) + yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 498: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2541 { - yyVAL.expr = NewFloatVal(yyDollar[1].bytes) + yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 499: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2545 { - yyVAL.expr = NewHexNum(yyDollar[1].bytes) + yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 500: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2549 { - yyVAL.expr = NewValArg(yyDollar[1].bytes) + yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 501: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2553 { - yyVAL.expr = &NullVal{} + yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2559 + //line sql.y:2557 + { + yyVAL.expr = &NullVal{} + } + case 503: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2563 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5612,239 +5610,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 503: + case 504: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2568 + //line sql.y:2572 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 504: + case 505: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2572 + //line sql.y:2576 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 505: + case 506: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2577 + //line sql.y:2581 { yyVAL.exprs = nil } - case 506: + case 507: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2581 + //line sql.y:2585 { yyVAL.exprs = yyDollar[3].exprs } - case 507: + case 508: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2586 + //line sql.y:2590 { yyVAL.expr = nil } - case 508: + case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2590 + //line sql.y:2594 { yyVAL.expr = yyDollar[2].expr } - case 509: + case 510: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2595 + //line sql.y:2599 { yyVAL.orderBy = nil } - case 510: + case 511: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2599 + //line sql.y:2603 { yyVAL.orderBy = yyDollar[3].orderBy } - case 511: + case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2605 + //line sql.y:2609 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 512: + case 513: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2609 + //line sql.y:2613 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 513: + case 514: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2615 + //line sql.y:2619 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 514: + case 515: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2620 + //line sql.y:2624 { yyVAL.str = AscScr } - case 515: + case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2624 + //line sql.y:2628 { yyVAL.str = AscScr } - case 516: + case 517: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2628 + //line sql.y:2632 { yyVAL.str = DescScr } - case 517: + case 518: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2633 + //line sql.y:2637 { yyVAL.limit = nil } - case 518: + case 519: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2637 + //line sql.y:2641 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 519: + case 520: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2641 + //line sql.y:2645 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 520: + case 521: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2645 + //line sql.y:2649 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 521: + case 522: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2650 + //line sql.y:2654 { yyVAL.str = "" } - case 522: + case 523: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2654 + //line sql.y:2658 { yyVAL.str = ForUpdateStr } - case 523: + case 524: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2658 + //line sql.y:2662 { yyVAL.str = ShareModeStr } - case 524: + case 525: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2671 + //line sql.y:2675 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 525: + case 526: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2675 + //line sql.y:2679 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 526: + case 527: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2679 + //line sql.y:2683 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 527: + case 528: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2684 + //line sql.y:2688 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 528: + case 529: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2688 + //line sql.y:2692 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 529: + case 530: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2692 + //line sql.y:2696 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 530: + case 531: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2699 + //line sql.y:2703 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 531: + case 532: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2703 + //line sql.y:2707 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 532: + case 533: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2707 + //line sql.y:2711 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 533: + case 534: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2711 + //line sql.y:2715 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 534: + case 535: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2716 + //line sql.y:2720 { yyVAL.updateExprs = nil } - case 535: + case 536: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2720 + //line sql.y:2724 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 536: + case 537: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2726 + //line sql.y:2730 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 537: + case 538: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2730 + //line sql.y:2734 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 538: + case 539: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2736 + //line sql.y:2740 { yyVAL.valTuple = yyDollar[1].valTuple } - case 539: + case 540: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2740 + //line sql.y:2744 { yyVAL.valTuple = ValTuple{} } - case 540: + case 541: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2746 + //line sql.y:2750 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 541: + case 542: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2752 + //line sql.y:2756 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5852,189 +5850,183 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 542: + case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2762 + //line sql.y:2766 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 543: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2766 + //line sql.y:2770 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 544: + case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2772 + //line sql.y:2776 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 545: + case 546: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2778 + //line sql.y:2782 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 546: + case 547: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2782 + //line sql.y:2786 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 547: + case 548: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2788 + //line sql.y:2792 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 548: + case 549: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2792 + //line sql.y:2796 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 549: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2796 + //line sql.y:2800 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 551: + case 552: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2803 + //line sql.y:2807 { yyVAL.bytes = []byte("charset") } - case 553: + case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2810 + //line sql.y:2814 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 554: + case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2814 + //line sql.y:2818 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 555: + case 556: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2818 + //line sql.y:2822 { yyVAL.expr = &Default{} } - case 558: + case 559: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2827 + //line sql.y:2831 { yyVAL.byt = 0 } - case 559: + case 560: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2829 + //line sql.y:2833 { yyVAL.byt = 1 } - case 560: + case 561: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2832 + //line sql.y:2836 { yyVAL.empty = struct{}{} } - case 561: + case 562: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2834 + //line sql.y:2838 { yyVAL.empty = struct{}{} } - case 562: + case 563: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2837 + //line sql.y:2841 { yyVAL.str = "" } - case 563: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2839 - { - yyVAL.str = IgnoreStr - } case 564: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2843 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 565: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2845 + //line sql.y:2847 { yyVAL.empty = struct{}{} } case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2847 + //line sql.y:2849 { yyVAL.empty = struct{}{} } case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2849 + //line sql.y:2851 { yyVAL.empty = struct{}{} } case 568: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2851 + //line sql.y:2853 { yyVAL.empty = struct{}{} } case 569: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2853 + //line sql.y:2855 { yyVAL.empty = struct{}{} } case 570: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2855 + //line sql.y:2857 { yyVAL.empty = struct{}{} } case 571: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2857 + //line sql.y:2859 { yyVAL.empty = struct{}{} } case 572: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2859 + //line sql.y:2861 { yyVAL.empty = struct{}{} } case 573: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2861 + //line sql.y:2863 { yyVAL.empty = struct{}{} } case 574: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2864 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2865 { yyVAL.empty = struct{}{} } case 575: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2866 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2868 { yyVAL.empty = struct{}{} } case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2868 + //line sql.y:2870 { yyVAL.empty = struct{}{} } @@ -6046,45 +6038,45 @@ yydefault: } case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2874 + //line sql.y:2876 { yyVAL.empty = struct{}{} } case 579: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2877 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2878 { yyVAL.empty = struct{}{} } case 580: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2879 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2881 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2881 + //line sql.y:2883 { yyVAL.empty = struct{}{} } case 582: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2884 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2885 { - yyVAL.colIdent = ColIdent{} + yyVAL.empty = struct{}{} } case 583: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2886 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2888 { - yyVAL.colIdent = yyDollar[2].colIdent + yyVAL.colIdent = ColIdent{} } case 584: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2890 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = yyDollar[2].colIdent } case 585: yyDollar = yyS[yypt-1 : yypt+1] @@ -6092,17 +6084,17 @@ yydefault: { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 587: + case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2901 + //line sql.y:2898 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2907 + //line sql.y:2905 { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 589: yyDollar = yyS[yypt-1 : yypt+1] @@ -6110,41 +6102,41 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 591: + case 590: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2915 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + } + case 592: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2918 + //line sql.y:2922 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 782: + case 783: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3134 + //line sql.y:3138 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 783: + case 784: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3143 + //line sql.y:3147 { decNesting(yylex) } - case 784: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3148 - { - forceEOF(yylex) - } case 785: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3153 + //line sql.y:3152 { forceEOF(yylex) } case 786: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:3157 { forceEOF(yylex) @@ -6155,6 +6147,12 @@ yydefault: { forceEOF(yylex) } + case 788: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3165 + { + forceEOF(yylex) + } } goto yystack /* stack new state and value */ } diff --git a/sql.y b/sql.y index 36e205b..17aef8f 100644 --- a/sql.y +++ b/sql.y @@ -2462,6 +2462,10 @@ convert_type: { $$ = &ConvertType{Type: string($1)} } +| TIMESTAMP + { + $$ = &ConvertType{Type: string($1)} + } expression_opt: { From 8e9000334232c6b54211ffa349b249965c33ddf5 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 29 Aug 2018 18:37:23 +0800 Subject: [PATCH 04/13] update: support anonymous aliased table expression --- sql.go | 1390 +++++++++++++++++++++++++++++--------------------------- sql.y | 4 + 2 files changed, 714 insertions(+), 680 deletions(-) diff --git a/sql.go b/sql.go index c141504..bb273a1 100644 --- a/sql.go +++ b/sql.go @@ -602,45 +602,69 @@ var yyExca = [...]int{ 152, 263, -2, 253, -1, 238, - 110, 589, - -2, 585, - -1, 239, 110, 590, -2, 586, + -1, 239, + 110, 591, + -2, 587, + -1, 298, + 1, 311, + 5, 311, + 12, 311, + 13, 311, + 14, 311, + 15, 311, + 17, 311, + 19, 311, + 30, 311, + 31, 311, + 41, 311, + 42, 311, + 43, 311, + 44, 311, + 45, 311, + 47, 311, + 48, 311, + 51, 311, + 52, 311, + 54, 311, + 55, 311, + 251, 311, + -2, 330, -1, 308, - 80, 748, + 80, 749, -2, 58, -1, 309, - 80, 709, + 80, 710, -2, 59, -1, 314, - 80, 693, - -2, 551, + 80, 694, + -2, 552, -1, 316, - 80, 730, - -2, 553, + 80, 731, + -2, 554, -1, 576, 52, 41, 54, 41, -2, 43, -1, 709, - 110, 592, - -2, 588, + 110, 593, + -2, 589, -1, 913, 5, 28, - -2, 396, + -2, 397, -1, 938, 5, 27, - -2, 526, + -2, 527, -1, 1163, 5, 28, - -2, 527, + -2, 528, -1, 1207, 5, 27, - -2, 529, + -2, 530, -1, 1269, 5, 28, - -2, 530, + -2, 531, } const yyPrivate = 57344 @@ -1941,35 +1965,35 @@ var yyR1 = [...]int{ 25, 26, 26, 26, 30, 30, 30, 28, 28, 29, 29, 35, 35, 34, 34, 36, 36, 36, 36, 120, 120, 120, 119, 119, 38, 38, 39, 39, 40, 40, - 41, 41, 41, 53, 53, 89, 89, 91, 91, 42, - 42, 42, 42, 43, 43, 44, 44, 45, 45, 127, - 127, 126, 126, 126, 125, 125, 47, 47, 47, 49, - 48, 48, 48, 48, 50, 50, 52, 52, 51, 51, - 54, 54, 54, 54, 55, 55, 37, 37, 37, 37, - 37, 37, 37, 103, 103, 57, 57, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 67, 67, 67, - 67, 67, 67, 58, 58, 58, 58, 58, 58, 58, - 58, 33, 33, 68, 68, 68, 74, 69, 69, 61, + 41, 41, 41, 41, 53, 53, 89, 89, 91, 91, + 42, 42, 42, 42, 43, 43, 44, 44, 45, 45, + 127, 127, 126, 126, 126, 125, 125, 47, 47, 47, + 49, 48, 48, 48, 48, 50, 50, 52, 52, 51, + 51, 54, 54, 54, 54, 55, 55, 37, 37, 37, + 37, 37, 37, 37, 103, 103, 57, 57, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 67, 67, + 67, 67, 67, 67, 58, 58, 58, 58, 58, 58, + 58, 58, 33, 33, 68, 68, 68, 74, 69, 69, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 65, 65, 65, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 64, 64, - 64, 64, 64, 64, 64, 64, 184, 184, 66, 66, - 66, 66, 31, 31, 31, 31, 31, 130, 130, 133, + 61, 65, 65, 65, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, + 64, 64, 64, 64, 64, 64, 64, 184, 184, 66, + 66, 66, 66, 31, 31, 31, 31, 31, 130, 130, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 133, 78, 78, 32, 32, 76, 76, 77, - 79, 79, 75, 75, 75, 60, 60, 60, 60, 60, - 60, 60, 60, 62, 62, 62, 80, 80, 81, 81, - 82, 82, 83, 83, 84, 85, 85, 85, 86, 86, - 86, 86, 87, 87, 87, 59, 59, 59, 59, 59, - 59, 88, 88, 88, 88, 92, 92, 70, 70, 72, - 72, 71, 73, 93, 93, 97, 94, 94, 98, 98, - 98, 96, 96, 96, 122, 122, 122, 101, 101, 109, - 109, 110, 110, 102, 102, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 112, 112, 112, 113, 113, - 114, 114, 114, 121, 121, 117, 117, 118, 118, 123, - 123, 124, 124, 115, 115, 115, 115, 115, 115, 115, + 133, 133, 133, 133, 78, 78, 32, 32, 76, 76, + 77, 79, 79, 75, 75, 75, 60, 60, 60, 60, + 60, 60, 60, 60, 62, 62, 62, 80, 80, 81, + 81, 82, 82, 83, 83, 84, 85, 85, 85, 86, + 86, 86, 86, 87, 87, 87, 59, 59, 59, 59, + 59, 59, 88, 88, 88, 88, 92, 92, 70, 70, + 72, 72, 71, 73, 93, 93, 97, 94, 94, 98, + 98, 98, 96, 96, 96, 122, 122, 122, 101, 101, + 109, 109, 110, 110, 102, 102, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 112, 112, 112, 113, + 113, 114, 114, 114, 121, 121, 117, 117, 118, 118, + 123, 123, 124, 124, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, @@ -1978,7 +2002,7 @@ var yyR1 = [...]int{ 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, + 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, @@ -1988,7 +2012,7 @@ var yyR1 = [...]int{ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 180, 181, 128, 129, 129, 129, + 116, 116, 116, 116, 180, 181, 128, 129, 129, 129, } var yyR2 = [...]int{ @@ -2023,34 +2047,34 @@ var yyR2 = [...]int{ 2, 1, 2, 2, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 3, 1, 2, 3, 5, 0, 1, 2, 1, 1, 0, 2, 1, 3, 1, 1, - 1, 3, 3, 3, 7, 1, 3, 1, 3, 4, - 4, 4, 3, 2, 4, 0, 1, 0, 2, 0, - 1, 0, 1, 2, 1, 1, 1, 2, 2, 1, - 2, 3, 2, 3, 2, 2, 2, 1, 1, 3, - 0, 5, 5, 5, 0, 2, 1, 3, 3, 2, - 3, 1, 2, 0, 3, 1, 1, 3, 3, 4, - 4, 5, 3, 4, 5, 6, 2, 1, 2, 1, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 2, 1, 1, 1, 3, 1, 3, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, - 4, 5, 6, 4, 4, 6, 6, 6, 6, 8, - 8, 6, 8, 8, 9, 7, 5, 4, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 2, 4, 4, - 4, 4, 0, 3, 4, 7, 3, 1, 1, 2, - 3, 3, 1, 2, 2, 1, 2, 1, 2, 2, - 1, 2, 1, 0, 1, 0, 2, 1, 2, 4, - 0, 2, 1, 3, 5, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 0, 3, 0, 2, - 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, - 4, 4, 0, 2, 4, 2, 1, 3, 5, 4, - 6, 1, 3, 3, 5, 0, 5, 1, 3, 1, - 2, 3, 1, 1, 3, 3, 1, 3, 3, 3, - 3, 1, 2, 1, 1, 1, 1, 1, 1, 0, - 2, 0, 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, - 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 7, 1, 3, 1, 3, + 4, 4, 4, 3, 2, 4, 0, 1, 0, 2, + 0, 1, 0, 1, 2, 1, 1, 1, 2, 2, + 1, 2, 3, 2, 3, 2, 2, 2, 1, 1, + 3, 0, 5, 5, 5, 0, 2, 1, 3, 3, + 2, 3, 1, 2, 0, 3, 1, 1, 3, 3, + 4, 4, 5, 3, 4, 5, 6, 2, 1, 2, + 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 2, 1, 1, 1, 3, 1, 3, + 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, + 1, 4, 5, 6, 4, 4, 6, 6, 6, 6, + 8, 8, 6, 8, 8, 9, 7, 5, 4, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, + 4, 4, 4, 0, 3, 4, 7, 3, 1, 1, + 2, 3, 3, 1, 2, 2, 1, 2, 1, 2, + 2, 1, 2, 1, 0, 1, 0, 2, 1, 2, + 4, 0, 2, 1, 3, 5, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 0, 3, 0, + 2, 0, 3, 1, 3, 2, 0, 1, 1, 0, + 2, 4, 4, 0, 2, 4, 2, 1, 3, 5, + 4, 6, 1, 3, 3, 5, 0, 5, 1, 3, + 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, + 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, + 0, 2, 0, 3, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2070,7 +2094,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -2209,133 +2233,133 @@ var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 510, 0, 277, 277, 277, 277, 277, 277, 0, - 580, 563, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 785, 785, 785, 785, 785, 0, 33, 34, - 783, 1, 3, 518, 0, 0, 281, 284, 279, 0, - 563, 0, 0, 0, 60, 0, 0, 772, 0, 773, - 561, 561, 561, 581, 582, 585, 586, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, - 768, 769, 770, 771, 774, 775, 776, 777, 778, 779, - 780, 781, 782, 0, 0, 564, 0, 559, 0, 559, - 559, 559, 0, 226, 348, 589, 590, 772, 773, 0, - 0, 0, 0, 786, 786, 786, 786, 0, 786, 255, - 244, 246, 247, 248, 249, 786, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 522, 0, 0, - 510, 29, 0, 277, 282, 283, 287, 285, 286, 278, - 0, 295, 299, 0, 356, 0, 361, 363, -2, -2, - 0, 399, 400, 401, 402, 403, 0, 0, 0, 0, - 0, 0, 0, 426, 427, 428, 429, 495, 496, 497, - 498, 499, 500, 501, 502, 365, 366, 492, 542, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, - 456, 456, 456, 456, 456, 456, 456, 456, 0, 0, - 0, 0, 0, 0, 306, 308, 309, 310, 329, 0, - 331, 0, 0, 41, 45, 0, 763, 546, -2, -2, - 0, 0, 587, 588, -2, 692, -2, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 0, - 77, 0, 0, 786, 0, 67, 0, 0, 0, 0, - 0, 786, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 227, 786, 786, 786, 786, 786, 786, 786, 786, - 236, 787, 788, 237, 238, 239, 786, 786, 241, 0, - 256, 0, 250, 28, 784, 22, 0, 0, 519, 0, - 511, 512, 515, 518, 27, 284, 0, 289, 288, 280, + 21, 511, 0, 277, 277, 277, 277, 277, 277, 0, + 581, 564, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 786, 786, 786, 786, 786, 0, 33, 34, + 784, 1, 3, 519, 0, 0, 281, 284, 279, 0, + 564, 0, 0, 0, 60, 0, 0, 773, 0, 774, + 562, 562, 562, 582, 583, 586, 587, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, + 769, 770, 771, 772, 775, 776, 777, 778, 779, 780, + 781, 782, 783, 0, 0, 565, 0, 560, 0, 560, + 560, 560, 0, 226, 349, 590, 591, 773, 774, 0, + 0, 0, 0, 787, 787, 787, 787, 0, 787, 255, + 244, 246, 247, 248, 249, 787, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 523, 0, 0, + 511, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 0, 295, 299, 0, 357, 0, 362, 364, -2, -2, + 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, + 0, 0, 0, 427, 428, 429, 430, 496, 497, 498, + 499, 500, 501, 502, 503, 366, 367, 493, 543, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 484, 0, + 457, 457, 457, 457, 457, 457, 457, 457, 0, 0, + 0, 0, 0, 0, 306, 308, 309, 310, -2, 0, + 332, 0, 0, 41, 45, 0, 764, 547, -2, -2, + 0, 0, 588, 589, -2, 693, -2, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 0, + 77, 0, 0, 787, 0, 67, 0, 0, 0, 0, + 0, 787, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 227, 787, 787, 787, 787, 787, 787, 787, 787, + 236, 788, 789, 237, 238, 239, 787, 787, 241, 0, + 256, 0, 250, 28, 785, 22, 0, 0, 520, 0, + 512, 513, 516, 519, 27, 284, 0, 289, 288, 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, 0, - 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 383, 384, 385, 386, 387, 388, 389, 390, 362, 0, - 376, 0, 0, 0, 419, 420, 421, 422, 423, 424, - 0, 291, 27, 0, 397, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 484, 0, 448, 0, 449, - 450, 451, 452, 453, 454, 455, 0, 291, 0, 0, - 43, 0, 347, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 339, 0, 0, 0, 0, 330, 0, 0, - 350, 736, 332, 0, 334, 335, -2, 0, 0, 0, - 39, 40, 0, 46, 763, 48, 49, 0, 0, 0, - 157, 554, 555, 556, 552, 185, 0, 140, 136, 82, + 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 384, 385, 386, 387, 388, 389, 390, 391, 363, 0, + 377, 0, 0, 0, 420, 421, 422, 423, 424, 425, + 0, 291, 27, 0, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 287, 0, 485, 0, 449, 0, 450, + 451, 452, 453, 454, 455, 456, 0, 291, 0, 0, + 43, 0, 348, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 340, 0, 0, 0, 0, 331, 0, 0, + 351, 737, 333, 0, 335, 336, -2, 0, 0, 0, + 39, 40, 0, 46, 764, 48, 49, 0, 0, 0, + 157, 555, 556, 557, 553, 185, 0, 140, 136, 82, 83, 84, 129, 86, 129, 129, 129, 129, 154, 154, 154, 154, 112, 113, 114, 115, 116, 0, 0, 99, 129, 129, 129, 103, 119, 120, 121, 122, 123, 124, 125, 126, 87, 88, 89, 90, 91, 92, 93, 131, - 131, 131, 133, 133, 583, 62, 0, 70, 0, 786, - 0, 786, 75, 0, 201, 0, 220, 560, 0, 786, - 223, 224, 349, 591, 592, 228, 229, 230, 231, 232, - 233, 234, 235, 240, 243, 257, 251, 252, 245, 523, - 0, 0, 0, 0, 0, 514, 516, 517, 522, 30, - 287, 0, 503, 0, 0, 0, 290, 25, 357, 358, - 360, 377, 0, 379, 381, 301, 297, 0, 493, -2, - 367, 368, 393, 394, 395, 0, 0, 0, 0, 391, - 372, 0, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 418, 467, 468, 0, 416, 417, - 425, 0, 0, 292, 293, 396, 0, 541, 27, 0, - 0, 0, 0, 0, 492, 0, 0, 0, 0, 490, - 487, 0, 0, 457, 0, 0, 0, 0, 0, 0, - 346, 354, 543, 0, 307, 325, 327, 0, 322, 337, - 338, 340, 0, 342, 0, 344, 345, 311, 312, 313, - 0, 0, 0, 0, 333, 354, 0, 354, 42, 547, - 47, 0, 0, 52, 53, 548, 549, 550, 0, 76, + 131, 131, 133, 133, 584, 62, 0, 70, 0, 787, + 0, 787, 75, 0, 201, 0, 220, 561, 0, 787, + 223, 224, 350, 592, 593, 228, 229, 230, 231, 232, + 233, 234, 235, 240, 243, 257, 251, 252, 245, 524, + 0, 0, 0, 0, 0, 515, 517, 518, 523, 30, + 287, 0, 504, 0, 0, 0, 290, 25, 358, 359, + 361, 378, 0, 380, 382, 301, 297, 0, 494, -2, + 368, 369, 394, 395, 396, 0, 0, 0, 0, 392, + 373, 0, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 419, 468, 469, 0, 417, 418, + 426, 0, 0, 292, 293, 397, 0, 542, 27, 0, + 0, 0, 0, 0, 493, 0, 0, 0, 0, 491, + 488, 0, 0, 458, 0, 0, 0, 0, 0, 0, + 347, 355, 544, 0, 307, 326, 328, 0, 323, 338, + 339, 341, 0, 343, 0, 345, 346, 312, 313, 314, + 0, 0, 0, 0, 334, 355, 0, 355, 42, 548, + 47, 0, 0, 52, 53, 549, 550, 551, 0, 76, 186, 188, 191, 192, 193, 78, 79, 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, 95, 96, 97, - 0, 98, 0, 0, 786, 64, 0, 68, 69, 65, - 562, 66, 785, 0, 0, 575, 202, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 0, 219, 786, - 222, 260, 0, 0, 0, 520, 521, 0, 513, 23, - 0, 557, 558, 504, 505, 304, 378, 380, 382, 0, - 291, 369, 391, 373, 0, 370, 0, 0, 364, 430, - 0, 0, 398, -2, 433, 434, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 510, 0, 488, 0, 0, - 447, 458, 459, 460, 461, 535, 0, 0, -2, 0, - 0, 510, 0, 0, 0, 319, 326, 0, 0, 320, - 0, 321, 341, 343, 0, 0, 0, 0, 317, 510, - 354, 38, 50, 51, 0, 0, 57, 158, 0, 189, + 0, 98, 0, 0, 787, 64, 0, 68, 69, 65, + 563, 66, 786, 0, 0, 576, 202, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 0, 219, 787, + 222, 260, 0, 0, 0, 521, 522, 0, 514, 23, + 0, 558, 559, 505, 506, 304, 379, 381, 383, 0, + 291, 370, 392, 374, 0, 371, 0, 0, 365, 431, + 0, 0, 399, -2, 434, 435, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 511, 0, 489, 0, 0, + 448, 459, 460, 461, 462, 536, 0, 0, -2, 0, + 0, 511, 0, 0, 0, 320, 327, 0, 0, 321, + 0, 322, 342, 344, 0, 0, 0, 0, 318, 511, + 355, 38, 50, 51, 0, 0, 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, 0, 109, 110, 111, - 0, 127, 0, 0, 0, 0, 584, 63, 71, 72, - 0, 194, 785, 0, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 785, 0, 0, 785, 576, - 577, 578, 579, 0, 221, 242, 0, 0, 258, 259, - 524, 0, 24, 354, 0, 298, 494, 0, 371, 0, - 392, 374, 431, 294, 0, 129, 129, 472, 129, 133, - 475, 129, 477, 129, 480, 482, 0, 0, 0, 0, - 493, 0, 0, 0, 485, 446, 491, 0, 31, 0, - 535, 525, 537, 539, 0, 27, 0, 531, 0, 518, - 544, 355, 545, 323, 0, 328, 0, 0, 0, 331, - 0, 518, 37, 54, 55, 56, 187, 190, 0, 182, + 0, 127, 0, 0, 0, 0, 585, 63, 71, 72, + 0, 194, 786, 0, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 786, 0, 0, 786, 577, + 578, 579, 580, 0, 221, 242, 0, 0, 258, 259, + 525, 0, 24, 355, 0, 298, 495, 0, 372, 0, + 393, 375, 432, 294, 0, 129, 129, 473, 129, 133, + 476, 129, 478, 129, 481, 483, 0, 0, 0, 0, + 494, 0, 0, 0, 486, 447, 492, 0, 31, 0, + 536, 526, 538, 540, 0, 27, 0, 532, 0, 519, + 545, 356, 546, 324, 0, 329, 0, 0, 0, 332, + 0, 519, 37, 54, 55, 56, 187, 190, 0, 182, 129, 176, 177, 152, 0, 144, 145, 146, 147, 148, 149, 130, 104, 105, 155, 156, 154, 0, 154, 0, - 134, 0, 786, 0, 0, 195, 0, 196, 198, 199, - 200, 0, 261, 262, 506, 305, 432, 375, 435, 469, - 154, 473, 474, 476, 478, 479, 481, 437, 436, 438, - 0, 0, 441, 0, 0, 0, 0, 0, 489, 0, - 32, 0, 540, -2, 0, 0, 0, 44, 35, 0, - 315, 0, 0, 0, 350, 318, 36, 167, 0, 184, + 134, 0, 787, 0, 0, 195, 0, 196, 198, 199, + 200, 0, 261, 262, 507, 305, 433, 376, 436, 470, + 154, 474, 475, 477, 479, 480, 482, 438, 437, 439, + 0, 0, 442, 0, 0, 0, 0, 0, 490, 0, + 32, 0, 541, -2, 0, 0, 0, 44, 35, 0, + 316, 0, 0, 0, 351, 319, 36, 167, 0, 184, 159, 153, 0, 157, 128, 157, 0, 0, 61, 73, - 74, 0, 0, 508, 0, 470, 471, 0, 0, 0, - 0, 462, 445, 486, 0, 538, 0, -2, 0, 533, - 532, 0, 324, 351, 352, 353, 314, 166, 168, 0, + 74, 0, 0, 509, 0, 471, 472, 0, 0, 0, + 0, 463, 446, 487, 0, 539, 0, -2, 0, 534, + 533, 0, 325, 352, 353, 354, 315, 166, 168, 0, 173, 0, 183, 164, 0, 161, 163, 151, 117, 118, - 132, 135, 0, 0, 26, 0, 0, 439, 440, 442, - 443, 0, 0, 0, 0, 528, 27, 0, 316, 169, + 132, 135, 0, 0, 26, 0, 0, 440, 441, 443, + 444, 0, 0, 0, 0, 529, 27, 0, 317, 169, 170, 0, 174, 172, 80, 0, 160, 162, 67, 0, - 215, 0, 509, 507, 444, 0, 0, 0, 536, -2, - 534, 171, 165, 70, 214, 0, 0, 463, 0, 466, - 197, 216, 0, 464, 0, 0, 0, 0, 0, 465, + 215, 0, 510, 508, 445, 0, 0, 0, 537, -2, + 535, 171, 165, 70, 214, 0, 0, 464, 0, 467, + 197, 216, 0, 465, 0, 0, 0, 0, 0, 466, 0, 0, 217, 218, } var yyTok1 = [...]int{ @@ -4466,58 +4490,58 @@ yydefault: yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 311: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1699 { - yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} + yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery} } case 312: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1703 { - yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} + yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } case 313: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1709 + //line sql.y:1707 { - yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} + yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 314: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1713 { - yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} + yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 315: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1719 + yyDollar = yyS[yypt-7 : yypt+1] + //line sql.y:1717 { - yyVAL.columns = Columns{yyDollar[1].colIdent} + yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } case 316: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1723 { - yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) + yyVAL.columns = Columns{yyDollar[1].colIdent} } case 317: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1729 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1727 { - yyVAL.partitions = Partitions{yyDollar[1].colIdent} + yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 318: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1733 { - yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) + yyVAL.partitions = Partitions{yyDollar[1].colIdent} } case 319: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1746 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1737 { - yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} + yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } case 320: yyDollar = yyS[yypt-4 : yypt+1] @@ -4532,140 +4556,146 @@ yydefault: yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 322: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1758 { - yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} + yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 323: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1762 + { + yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} + } + case 324: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1764 + //line sql.y:1768 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 324: + case 325: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1766 + //line sql.y:1770 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } - case 325: + case 326: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1770 + //line sql.y:1774 { yyVAL.joinCondition = JoinCondition{} } - case 326: + case 327: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1772 + //line sql.y:1776 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 327: + case 328: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1776 + //line sql.y:1780 { yyVAL.joinCondition = JoinCondition{} } - case 328: + case 329: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1778 + //line sql.y:1782 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 329: + case 330: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1781 + //line sql.y:1785 { yyVAL.empty = struct{}{} } - case 330: + case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1783 + //line sql.y:1787 { yyVAL.empty = struct{}{} } - case 331: + case 332: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1786 + //line sql.y:1790 { yyVAL.tableIdent = NewTableIdent("") } - case 332: + case 333: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1790 + //line sql.y:1794 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 333: + case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1794 + //line sql.y:1798 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 335: + case 336: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1801 + //line sql.y:1805 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 336: + case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1807 + //line sql.y:1811 { yyVAL.str = JoinStr } - case 337: + case 338: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1811 + //line sql.y:1815 { yyVAL.str = InnerJoinStr } - case 338: + case 339: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1815 + //line sql.y:1819 { yyVAL.str = CrossJoinStr } - case 339: + case 340: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1821 + //line sql.y:1825 { yyVAL.str = StraightJoinStr } - case 340: + case 341: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1827 + //line sql.y:1831 { yyVAL.str = LeftJoinStr } - case 341: + case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1831 + //line sql.y:1835 { yyVAL.str = LeftJoinStr } - case 342: + case 343: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1835 + //line sql.y:1839 { yyVAL.str = RightJoinStr } - case 343: + case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1839 + //line sql.y:1843 { yyVAL.str = RightJoinStr } - case 344: + case 345: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1845 + //line sql.y:1849 { yyVAL.str = NaturalJoinStr } - case 345: + case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1849 + //line sql.y:1853 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4673,407 +4703,401 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 346: + case 347: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1859 + //line sql.y:1863 { yyVAL.tableName = yyDollar[2].tableName } - case 347: + case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1863 + //line sql.y:1867 { yyVAL.tableName = yyDollar[1].tableName } - case 348: + case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1869 + //line sql.y:1873 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 349: + case 350: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1873 + //line sql.y:1877 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 350: + case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1878 + //line sql.y:1882 { yyVAL.indexHints = nil } - case 351: + case 352: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1882 + //line sql.y:1886 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } - case 352: + case 353: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1886 + //line sql.y:1890 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } - case 353: + case 354: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1890 + //line sql.y:1894 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } - case 354: + case 355: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1895 + //line sql.y:1899 { yyVAL.expr = nil } - case 355: + case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1899 + //line sql.y:1903 { yyVAL.expr = yyDollar[2].expr } - case 356: + case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1905 + //line sql.y:1909 { yyVAL.expr = yyDollar[1].expr } - case 357: + case 358: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1909 + //line sql.y:1913 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 358: + case 359: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1913 + //line sql.y:1917 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 359: + case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1917 + //line sql.y:1921 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 360: + case 361: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1921 + //line sql.y:1925 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 361: + case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1925 + //line sql.y:1929 { yyVAL.expr = yyDollar[1].expr } - case 362: + case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1929 + //line sql.y:1933 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 363: + case 364: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1935 + //line sql.y:1939 { yyVAL.str = "" } - case 364: + case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1939 + //line sql.y:1943 { yyVAL.str = string(yyDollar[2].bytes) } - case 365: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1945 - { - yyVAL.boolVal = BoolVal(true) - } case 366: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1949 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolVal = BoolVal(true) } case 367: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1955 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1953 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} + yyVAL.boolVal = BoolVal(false) } case 368: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1959 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 369: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1963 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 370: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1967 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 371: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1971 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 372: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:1975 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 373: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1979 { - yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 374: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1983 { - yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} + yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 375: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:1987 { - yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} + yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 376: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:1991 { - yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} + yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 377: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1997 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1995 { - yyVAL.str = IsNullStr + yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 378: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2001 { - yyVAL.str = IsNotNullStr + yyVAL.str = IsNullStr } case 379: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2005 { - yyVAL.str = IsTrueStr + yyVAL.str = IsNotNullStr } case 380: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2009 { - yyVAL.str = IsNotTrueStr + yyVAL.str = IsTrueStr } case 381: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2013 { - yyVAL.str = IsFalseStr + yyVAL.str = IsNotTrueStr } case 382: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2017 { - yyVAL.str = IsNotFalseStr + yyVAL.str = IsFalseStr } case 383: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2023 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2021 { - yyVAL.str = EqualStr + yyVAL.str = IsNotFalseStr } case 384: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2027 { - yyVAL.str = LessThanStr + yyVAL.str = EqualStr } case 385: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2031 { - yyVAL.str = GreaterThanStr + yyVAL.str = LessThanStr } case 386: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2035 { - yyVAL.str = LessEqualStr + yyVAL.str = GreaterThanStr } case 387: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2039 { - yyVAL.str = GreaterEqualStr + yyVAL.str = LessEqualStr } case 388: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2043 { - yyVAL.str = NotEqualStr + yyVAL.str = GreaterEqualStr } case 389: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2047 { - yyVAL.str = NullSafeEqualStr + yyVAL.str = NotEqualStr } case 390: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2051 { - yyVAL.str = NullSafeNotEqualStr + yyVAL.str = NullSafeEqualStr } case 391: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2056 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2055 { - yyVAL.expr = nil + yyVAL.str = NullSafeNotEqualStr } case 392: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2060 { - yyVAL.expr = yyDollar[2].expr + yyVAL.expr = nil } case 393: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2066 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2064 { - yyVAL.colTuple = yyDollar[1].valTuple + yyVAL.expr = yyDollar[2].expr } case 394: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2070 { - yyVAL.colTuple = yyDollar[1].subquery + yyVAL.colTuple = yyDollar[1].valTuple } case 395: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2074 { - yyVAL.colTuple = ListArg(yyDollar[1].bytes) + yyVAL.colTuple = yyDollar[1].subquery } case 396: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2080 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2078 { - yyVAL.subquery = &Subquery{yyDollar[2].selStmt} + yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 397: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2086 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2084 { - yyVAL.exprs = Exprs{yyDollar[1].expr} + yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 398: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2090 { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) + yyVAL.exprs = Exprs{yyDollar[1].expr} } case 399: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2096 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2094 { - yyVAL.expr = yyDollar[1].expr + yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 400: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2100 { - yyVAL.expr = yyDollar[1].boolVal + yyVAL.expr = yyDollar[1].expr } case 401: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2104 { - yyVAL.expr = yyDollar[1].colName + yyVAL.expr = yyDollar[1].boolVal } case 402: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2108 { - yyVAL.expr = yyDollar[1].expr + yyVAL.expr = yyDollar[1].colName } case 403: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2112 { - yyVAL.expr = yyDollar[1].subquery + yyVAL.expr = yyDollar[1].expr } case 404: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2116 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} + yyVAL.expr = yyDollar[1].subquery } case 405: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2120 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 406: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2124 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 407: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2128 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 408: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2132 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 409: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2136 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 410: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2140 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 411: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2144 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 412: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2148 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 413: yyDollar = yyS[yypt-3 : yypt+1] @@ -5085,47 +5109,53 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2156 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 415: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2160 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 416: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2164 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 417: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2168 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 418: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2172 { - yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 419: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2176 { - yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 420: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2180 { - yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 421: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2184 + { + yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + } + case 422: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2188 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5133,9 +5163,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 422: + case 423: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2192 + //line sql.y:2196 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5149,21 +5179,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 423: + case 424: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2206 + //line sql.y:2210 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 424: + case 425: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2210 + //line sql.y:2214 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 425: + case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2214 + //line sql.y:2218 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5171,41 +5201,35 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 430: + case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2232 + //line sql.y:2236 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 431: + case 432: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2236 + //line sql.y:2240 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 432: + case 433: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2240 + //line sql.y:2244 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 433: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2250 - { - yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} - } case 434: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2254 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 435: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2258 { - yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} + yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 436: yyDollar = yyS[yypt-6 : yypt+1] @@ -5217,19 +5241,19 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2266 { - yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} + yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 438: yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2270 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} + yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 439: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2274 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 440: yyDollar = yyS[yypt-8 : yypt+1] @@ -5238,16 +5262,16 @@ yydefault: yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 441: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:2282 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 442: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:2286 { - yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 443: yyDollar = yyS[yypt-8 : yypt+1] @@ -5256,136 +5280,136 @@ yydefault: yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 444: - yyDollar = yyS[yypt-9 : yypt+1] + yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:2294 { - yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} + yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 445: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-9 : yypt+1] //line sql.y:2298 { - yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} + yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 446: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:2302 { - yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} + yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 447: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:2306 { - yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} + yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 448: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2316 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2310 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} + yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 449: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2320 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } case 450: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2324 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } case 451: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2328 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } case 452: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2333 + //line sql.y:2332 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } case 453: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2338 + //line sql.y:2337 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } case 454: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2343 + //line sql.y:2342 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } case 455: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2348 + //line sql.y:2347 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 458: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2362 + case 456: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2352 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } case 459: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2366 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } case 460: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2370 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } case 461: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2374 { - yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} + yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } case 462: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2380 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:2378 { - yyVAL.str = "" + yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } case 463: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:2384 { - yyVAL.str = BooleanModeStr + yyVAL.str = "" } case 464: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2388 { - yyVAL.str = NaturalLanguageModeStr + yyVAL.str = BooleanModeStr } case 465: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:2392 { - yyVAL.str = NaturalLanguageModeWithQueryExpansionStr + yyVAL.str = NaturalLanguageModeStr } case 466: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:2396 { - yyVAL.str = QueryExpansionStr + yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 467: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2402 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2400 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.str = QueryExpansionStr } case 468: yyDollar = yyS[yypt-1 : yypt+1] @@ -5394,63 +5418,63 @@ yydefault: yyVAL.str = string(yyDollar[1].bytes) } case 469: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2412 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2410 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.str = string(yyDollar[1].bytes) } case 470: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2416 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 471: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2420 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 472: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2424 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } case 473: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2428 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 474: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2432 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} - yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 475: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2438 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2436 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } case 476: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2442 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 477: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2446 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 478: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2450 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} @@ -5459,149 +5483,155 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2454 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 480: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2458 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 481: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2462 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 482: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2466 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 483: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2470 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + } + case 484: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2471 + //line sql.y:2475 { yyVAL.expr = nil } - case 484: + case 485: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2475 + //line sql.y:2479 { yyVAL.expr = yyDollar[1].expr } - case 485: + case 486: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2480 + //line sql.y:2484 { yyVAL.str = string("") } - case 486: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2484 + //line sql.y:2488 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 487: + case 488: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2490 + //line sql.y:2494 { yyVAL.whens = []*When{yyDollar[1].when} } - case 488: + case 489: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2494 + //line sql.y:2498 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 489: + case 490: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2500 + //line sql.y:2504 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 490: + case 491: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2505 + //line sql.y:2509 { yyVAL.expr = nil } - case 491: + case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2509 + //line sql.y:2513 { yyVAL.expr = yyDollar[2].expr } - case 492: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2515 - { - yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} - } case 493: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2519 { - yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} + yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 494: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2523 { - yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} + yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 495: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2529 + yyDollar = yyS[yypt-5 : yypt+1] + //line sql.y:2527 { - yyVAL.expr = NewStrVal(yyDollar[1].bytes) + yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 496: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2533 { - yyVAL.expr = NewHexVal(yyDollar[1].bytes) + yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 497: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2537 { - yyVAL.expr = NewBitVal(yyDollar[1].bytes) + yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 498: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2541 { - yyVAL.expr = NewIntVal(yyDollar[1].bytes) + yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 499: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2545 { - yyVAL.expr = NewFloatVal(yyDollar[1].bytes) + yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 500: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2549 { - yyVAL.expr = NewHexNum(yyDollar[1].bytes) + yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 501: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2553 { - yyVAL.expr = NewValArg(yyDollar[1].bytes) + yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 502: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2557 { - yyVAL.expr = &NullVal{} + yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2563 + //line sql.y:2561 + { + yyVAL.expr = &NullVal{} + } + case 504: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2567 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5610,239 +5640,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 504: + case 505: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2572 + //line sql.y:2576 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 505: + case 506: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2576 + //line sql.y:2580 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 506: + case 507: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2581 + //line sql.y:2585 { yyVAL.exprs = nil } - case 507: + case 508: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2585 + //line sql.y:2589 { yyVAL.exprs = yyDollar[3].exprs } - case 508: + case 509: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2590 + //line sql.y:2594 { yyVAL.expr = nil } - case 509: + case 510: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2594 + //line sql.y:2598 { yyVAL.expr = yyDollar[2].expr } - case 510: + case 511: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2599 + //line sql.y:2603 { yyVAL.orderBy = nil } - case 511: + case 512: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2603 + //line sql.y:2607 { yyVAL.orderBy = yyDollar[3].orderBy } - case 512: + case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2609 + //line sql.y:2613 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 513: + case 514: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2613 + //line sql.y:2617 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 514: + case 515: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2619 + //line sql.y:2623 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 515: + case 516: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2624 + //line sql.y:2628 { yyVAL.str = AscScr } - case 516: + case 517: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2628 + //line sql.y:2632 { yyVAL.str = AscScr } - case 517: + case 518: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2632 + //line sql.y:2636 { yyVAL.str = DescScr } - case 518: + case 519: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2637 + //line sql.y:2641 { yyVAL.limit = nil } - case 519: + case 520: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2641 + //line sql.y:2645 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 520: + case 521: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2645 + //line sql.y:2649 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 521: + case 522: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2649 + //line sql.y:2653 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 522: + case 523: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2654 + //line sql.y:2658 { yyVAL.str = "" } - case 523: + case 524: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2658 + //line sql.y:2662 { yyVAL.str = ForUpdateStr } - case 524: + case 525: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2662 + //line sql.y:2666 { yyVAL.str = ShareModeStr } - case 525: + case 526: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2675 + //line sql.y:2679 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 526: + case 527: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2679 + //line sql.y:2683 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 527: + case 528: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2683 + //line sql.y:2687 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 528: + case 529: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2688 + //line sql.y:2692 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 529: + case 530: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2692 + //line sql.y:2696 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 530: + case 531: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2696 + //line sql.y:2700 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 531: + case 532: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2703 + //line sql.y:2707 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 532: + case 533: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2707 + //line sql.y:2711 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 533: + case 534: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2711 + //line sql.y:2715 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 534: + case 535: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2715 + //line sql.y:2719 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 535: + case 536: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2720 + //line sql.y:2724 { yyVAL.updateExprs = nil } - case 536: + case 537: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2724 + //line sql.y:2728 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 537: + case 538: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2730 + //line sql.y:2734 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 538: + case 539: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2734 + //line sql.y:2738 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 539: + case 540: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2740 + //line sql.y:2744 { yyVAL.valTuple = yyDollar[1].valTuple } - case 540: + case 541: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2744 + //line sql.y:2748 { yyVAL.valTuple = ValTuple{} } - case 541: + case 542: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2750 + //line sql.y:2754 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 542: + case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2756 + //line sql.y:2760 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5850,189 +5880,183 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 543: + case 544: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2766 + //line sql.y:2770 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 544: + case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2770 + //line sql.y:2774 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 545: + case 546: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2776 + //line sql.y:2780 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 546: + case 547: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2782 + //line sql.y:2786 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 547: + case 548: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2786 + //line sql.y:2790 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 548: + case 549: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2792 + //line sql.y:2796 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 549: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2796 + //line sql.y:2800 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 550: + case 551: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2800 + //line sql.y:2804 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 552: + case 553: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2807 + //line sql.y:2811 { yyVAL.bytes = []byte("charset") } - case 554: + case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2814 + //line sql.y:2818 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 555: + case 556: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2818 + //line sql.y:2822 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 556: + case 557: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2822 + //line sql.y:2826 { yyVAL.expr = &Default{} } - case 559: + case 560: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2831 + //line sql.y:2835 { yyVAL.byt = 0 } - case 560: + case 561: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2833 + //line sql.y:2837 { yyVAL.byt = 1 } - case 561: + case 562: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2836 + //line sql.y:2840 { yyVAL.empty = struct{}{} } - case 562: + case 563: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2838 + //line sql.y:2842 { yyVAL.empty = struct{}{} } - case 563: + case 564: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2841 + //line sql.y:2845 { yyVAL.str = "" } - case 564: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2843 - { - yyVAL.str = IgnoreStr - } case 565: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2847 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2849 + //line sql.y:2851 { yyVAL.empty = struct{}{} } case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2851 + //line sql.y:2853 { yyVAL.empty = struct{}{} } case 568: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2853 + //line sql.y:2855 { yyVAL.empty = struct{}{} } case 569: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2855 + //line sql.y:2857 { yyVAL.empty = struct{}{} } case 570: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2857 + //line sql.y:2859 { yyVAL.empty = struct{}{} } case 571: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2859 + //line sql.y:2861 { yyVAL.empty = struct{}{} } case 572: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2861 + //line sql.y:2863 { yyVAL.empty = struct{}{} } case 573: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2863 + //line sql.y:2865 { yyVAL.empty = struct{}{} } case 574: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2865 + //line sql.y:2867 { yyVAL.empty = struct{}{} } case 575: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2868 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2869 { yyVAL.empty = struct{}{} } case 576: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2870 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2872 { yyVAL.empty = struct{}{} } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2872 + //line sql.y:2874 { yyVAL.empty = struct{}{} } @@ -6044,45 +6068,45 @@ yydefault: } case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2878 + //line sql.y:2880 { yyVAL.empty = struct{}{} } case 580: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2881 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2882 { yyVAL.empty = struct{}{} } case 581: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2883 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2885 { yyVAL.empty = struct{}{} } case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2885 + //line sql.y:2887 { yyVAL.empty = struct{}{} } case 583: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2888 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2889 { - yyVAL.colIdent = ColIdent{} + yyVAL.empty = struct{}{} } case 584: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2890 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2892 { - yyVAL.colIdent = yyDollar[2].colIdent + yyVAL.colIdent = ColIdent{} } case 585: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2894 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = yyDollar[2].colIdent } case 586: yyDollar = yyS[yypt-1 : yypt+1] @@ -6090,17 +6114,17 @@ yydefault: { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 588: + case 587: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2905 + //line sql.y:2902 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2911 + //line sql.y:2909 { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 590: yyDollar = yyS[yypt-1 : yypt+1] @@ -6108,41 +6132,41 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 592: + case 591: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2919 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + } + case 593: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2922 + //line sql.y:2926 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 783: + case 784: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3138 + //line sql.y:3142 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 784: + case 785: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3147 + //line sql.y:3151 { decNesting(yylex) } - case 785: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3152 - { - forceEOF(yylex) - } case 786: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3157 + //line sql.y:3156 { forceEOF(yylex) } case 787: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:3161 { forceEOF(yylex) @@ -6153,6 +6177,12 @@ yydefault: { forceEOF(yylex) } + case 789: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3169 + { + forceEOF(yylex) + } } goto yystack /* stack new state and value */ } diff --git a/sql.y b/sql.y index 17aef8f..93d4935 100644 --- a/sql.y +++ b/sql.y @@ -1695,6 +1695,10 @@ table_factor: { $$ = $1 } +| subquery + { + $$ = &AliasedTableExpr{Expr:$1} + } | subquery as_opt table_id { $$ = &AliasedTableExpr{Expr:$1, As: $3} From bda16661714a101cbf3cf0b8c9d657da5ba0d482 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 29 Aug 2018 20:43:21 +0800 Subject: [PATCH 05/13] update: support row_number() over(partition by order by) --- ast.go | 108 +- sql.go | 4126 +++++++++++++++++++++++++++--------------------------- sql.y | 26 + token.go | 2 + 4 files changed, 2198 insertions(+), 2064 deletions(-) diff --git a/ast.go b/ast.go index e9ccceb..6093194 100644 --- a/ast.go +++ b/ast.go @@ -1913,34 +1913,35 @@ type Expr interface { SQLNode } -func (*AndExpr) iExpr() {} -func (*OrExpr) iExpr() {} -func (*NotExpr) iExpr() {} -func (*ParenExpr) iExpr() {} -func (*ComparisonExpr) iExpr() {} -func (*RangeCond) iExpr() {} -func (*IsExpr) iExpr() {} -func (*ExistsExpr) iExpr() {} -func (*SQLVal) iExpr() {} -func (*NullVal) iExpr() {} -func (BoolVal) iExpr() {} -func (*ColName) iExpr() {} -func (ValTuple) iExpr() {} -func (*Subquery) iExpr() {} -func (ListArg) iExpr() {} -func (*BinaryExpr) iExpr() {} -func (*UnaryExpr) iExpr() {} -func (*IntervalExpr) iExpr() {} -func (*CollateExpr) iExpr() {} -func (*FuncExpr) iExpr() {} -func (*CaseExpr) iExpr() {} -func (*ValuesFuncExpr) iExpr() {} -func (*ConvertExpr) iExpr() {} -func (*SubstrExpr) iExpr() {} -func (*ConvertUsingExpr) iExpr() {} -func (*MatchExpr) iExpr() {} -func (*GroupConcatExpr) iExpr() {} -func (*Default) iExpr() {} +func (*AndExpr) iExpr() {} +func (*OrExpr) iExpr() {} +func (*NotExpr) iExpr() {} +func (*ParenExpr) iExpr() {} +func (*ComparisonExpr) iExpr() {} +func (*RangeCond) iExpr() {} +func (*IsExpr) iExpr() {} +func (*ExistsExpr) iExpr() {} +func (*SQLVal) iExpr() {} +func (*NullVal) iExpr() {} +func (BoolVal) iExpr() {} +func (*ColName) iExpr() {} +func (ValTuple) iExpr() {} +func (*Subquery) iExpr() {} +func (ListArg) iExpr() {} +func (*BinaryExpr) iExpr() {} +func (*UnaryExpr) iExpr() {} +func (*IntervalExpr) iExpr() {} +func (*CollateExpr) iExpr() {} +func (*FuncExpr) iExpr() {} +func (*CaseExpr) iExpr() {} +func (*ValuesFuncExpr) iExpr() {} +func (*ConvertExpr) iExpr() {} +func (*SubstrExpr) iExpr() {} +func (*ConvertUsingExpr) iExpr() {} +func (*MatchExpr) iExpr() {} +func (*GroupConcatExpr) iExpr() {} +func (*RowNumberOverExpr) iExpr() {} +func (*Default) iExpr() {} // ReplaceExpr finds the from expression from root // and replaces it with to. If from matches root, @@ -2829,6 +2830,36 @@ func (node *ConvertExpr) replace(from, to Expr) bool { return replaceExprs(from, to, &node.Expr) } +// RowNumberOverExpr represents a call to ROW_NUMBER() OVER() +type RowNumberOverExpr struct { + PartitionBy PartitionBy + OrderBy OrderBy +} + +func (node *RowNumberOverExpr) Format(buf *TrackedBuffer) { + if node.PartitionBy != nil { + buf.Myprintf("row_number() over(%v %v)", node.PartitionBy, node.OrderBy) + } else { + buf.Myprintf("row_number() over(%v)", node.OrderBy) + } +} + +func (node *RowNumberOverExpr) walkSubtree(visit Visit) error { + if node == nil { + return nil + } + + return Walk( + visit, + node.PartitionBy, + node.OrderBy, + ) +} + +func (node *RowNumberOverExpr) replace(from, to Expr) bool { + return false +} + // ConvertUsingExpr represents a call to CONVERT(expr USING charset). type ConvertUsingExpr struct { Expr Expr @@ -2841,6 +2872,7 @@ func (node *ConvertUsingExpr) Format(buf *TrackedBuffer) { } func (node *ConvertUsingExpr) walkSubtree(visit Visit) error { + if node == nil { return nil } @@ -3041,6 +3073,26 @@ func (node GroupBy) walkSubtree(visit Visit) error { return nil } +// PartitionBy represets an Partition By caluse. +type PartitionBy []Expr + +func (node PartitionBy) Format(buf *TrackedBuffer) { + prefix := "partition by " + for _, n := range node { + buf.Myprintf("%s%v", prefix, n) + prefix = ", " + } +} + +func (node PartitionBy) walkSubtree(visit Visit) error { + for _, n := range node { + if err := Walk(visit, n); err != nil { + return err + } + } + return nil +} + // OrderBy represents an ORDER By clause. type OrderBy []*Order diff --git a/sql.go b/sql.go index bb273a1..8f4a0aa 100644 --- a/sql.go +++ b/sql.go @@ -70,6 +70,7 @@ type yySymType struct { when *When orderBy OrderBy order *Order + partitionBy PartitionBy limit *Limit updateExprs UpdateExprs setExprs SetExprs @@ -321,14 +322,16 @@ const SUBSTR = 57564 const SUBSTRING = 57565 const GROUP_CONCAT = 57566 const SEPARATOR = 57567 -const MATCH = 57568 -const AGAINST = 57569 -const BOOLEAN = 57570 -const LANGUAGE = 57571 -const WITH = 57572 -const QUERY = 57573 -const EXPANSION = 57574 -const UNUSED = 57575 +const ROW_NUMBER = 57568 +const OVER = 57569 +const MATCH = 57570 +const AGAINST = 57571 +const BOOLEAN = 57572 +const LANGUAGE = 57573 +const WITH = 57574 +const QUERY = 57575 +const EXPANSION = 57576 +const UNUSED = 57577 var yyToknames = [...]string{ "$end", @@ -573,6 +576,8 @@ var yyToknames = [...]string{ "SUBSTRING", "GROUP_CONCAT", "SEPARATOR", + "ROW_NUMBER", + "OVER", "MATCH", "AGAINST", "BOOLEAN", @@ -602,12 +607,12 @@ var yyExca = [...]int{ 152, 263, -2, 253, -1, 238, - 110, 590, - -2, 586, + 110, 595, + -2, 591, -1, 239, - 110, 591, - -2, 587, - -1, 298, + 110, 596, + -2, 592, + -1, 299, 1, 311, 5, 311, 12, 311, @@ -629,607 +634,617 @@ var yyExca = [...]int{ 52, 311, 54, 311, 55, 311, - 251, 311, + 253, 311, -2, 330, - -1, 308, - 80, 749, - -2, 58, -1, 309, - 80, 710, + 80, 754, + -2, 58, + -1, 310, + 80, 715, -2, 59, - -1, 314, - 80, 694, - -2, 552, - -1, 316, - 80, 731, - -2, 554, - -1, 576, + -1, 315, + 80, 699, + -2, 557, + -1, 317, + 80, 736, + -2, 559, + -1, 578, 52, 41, 54, 41, -2, 43, - -1, 709, - 110, 593, - -2, 589, - -1, 913, + -1, 711, + 110, 598, + -2, 594, + -1, 916, 5, 28, -2, 397, - -1, 938, + -1, 942, 5, 27, - -2, 527, - -1, 1163, + -2, 532, + -1, 1170, 5, 28, - -2, 528, - -1, 1207, + -2, 533, + -1, 1216, 5, 27, - -2, 530, - -1, 1269, + -2, 535, + -1, 1283, 5, 28, - -2, 531, + -2, 536, } const yyPrivate = 57344 -const yyLast = 11021 +const yyLast = 11167 var yyAct = [...]int{ - 269, 47, 1260, 647, 771, 855, 1071, 523, 243, 1169, - 1099, 789, 1072, 999, 1218, 570, 1068, 811, 568, 990, - 849, 217, 313, 772, 1044, 522, 3, 957, 810, 734, - 744, 905, 268, 1002, 741, 941, 821, 711, 211, 586, - 946, 455, 461, 845, 585, 53, 760, 307, 47, 410, - 768, 835, 557, 295, 807, 241, 222, 887, 294, 572, - 52, 475, 299, 226, 304, 467, 302, 1289, 1279, 1287, - 1267, 1285, 856, 216, 1278, 1063, 1157, 414, 435, 872, - 293, 1227, 212, 213, 214, 215, 1105, 1106, 1107, 587, - 230, 588, 537, 871, 1110, 1108, 1266, 1094, 1095, 803, - 804, 1093, 453, 1242, 743, 488, 487, 497, 498, 490, - 491, 492, 493, 494, 495, 496, 489, 802, 450, 499, - 876, 57, 981, 181, 177, 178, 179, 965, 676, 870, - 964, 828, 1181, 966, 1196, 677, 423, 836, 1146, 1144, - 210, 1286, 437, 1284, 439, 1261, 59, 60, 61, 62, - 63, 446, 447, 1023, 488, 487, 497, 498, 490, 491, - 492, 493, 494, 495, 496, 489, 769, 239, 499, 436, - 438, 1219, 790, 792, 424, 417, 175, 655, 867, 864, - 865, 174, 863, 175, 1221, 646, 823, 956, 955, 954, - 412, 420, 189, 176, 441, 441, 441, 441, 76, 441, - 906, 823, 186, 1247, 1225, 186, 441, 874, 877, 512, - 513, 823, 1166, 1031, 975, 921, 899, 683, 479, 430, - 1020, 489, 808, 47, 499, 680, 1022, 499, 474, 186, - 186, 76, 180, 882, 1010, 186, 1252, 76, 509, 411, - 1124, 511, 869, 718, 1114, 472, 245, 791, 464, 1027, - 434, 944, 1220, 761, 1065, 1109, 836, 716, 717, 715, - 1243, 474, 1008, 979, 868, 589, 463, 761, 521, 928, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 822, - 536, 538, 538, 538, 538, 538, 538, 538, 538, 546, - 547, 548, 549, 1265, 822, 1115, 650, 1255, 473, 472, - 569, 873, 1226, 1224, 822, 1067, 686, 687, 298, 820, - 818, 416, 883, 819, 875, 474, 426, 427, 428, 1021, - 469, 1019, 473, 472, 1045, 1026, 825, 1009, 896, 897, - 898, 826, 1014, 1011, 1004, 1005, 1012, 1007, 1006, 474, - 173, 442, 186, 195, 186, 465, 701, 703, 704, 1013, - 186, 702, 473, 472, 1047, 1016, 1271, 186, 1187, 1186, - 994, 76, 76, 76, 76, 993, 76, 205, 577, 474, - 583, 50, 982, 76, 539, 540, 541, 542, 543, 544, - 545, 714, 1272, 418, 419, 829, 1049, 1253, 1053, 1055, - 1048, 735, 1046, 736, 918, 1203, 1184, 1051, 1132, 991, - 76, 292, 1275, 454, 454, 310, 1050, 492, 493, 494, - 495, 496, 489, 682, 441, 499, 1250, 1154, 190, 1052, - 1054, 1102, 441, 1101, 192, 1211, 1258, 917, 1231, 916, - 976, 198, 194, 441, 441, 441, 441, 441, 441, 441, - 441, 967, 473, 472, 858, 473, 472, 441, 441, 681, - 1211, 454, 1230, 664, 1211, 1212, 1178, 1177, 196, 474, - 186, 200, 474, 1090, 454, 473, 472, 186, 186, 186, - 1165, 454, 1111, 76, 1121, 1120, 1117, 1118, 942, 76, - 1117, 1116, 474, 267, 23, 688, 737, 510, 662, 191, - 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, - 496, 489, 709, 661, 499, 911, 454, 580, 936, 554, - 454, 937, 47, 660, 74, 712, 193, 651, 201, 202, - 203, 204, 208, 746, 454, 746, 525, 207, 206, 690, - 649, 50, 644, 596, 595, 943, 432, 707, 705, 753, - 756, 425, 411, 1034, 54, 762, 298, 312, 581, 23, - 579, 748, 21, 415, 553, 299, 299, 299, 299, 299, - 232, 1069, 773, 796, 942, 579, 1161, 689, 738, 739, - 569, 554, 793, 23, 1123, 943, 1206, 554, 554, 299, - 923, 76, 765, 911, 1119, 920, 911, 186, 186, 76, - 968, 186, 801, 1010, 186, 748, 50, 797, 186, 758, - 76, 76, 76, 76, 76, 76, 76, 76, 221, 775, - 776, 911, 778, 774, 76, 76, 777, 942, 786, 186, - 50, 1008, 582, 922, 684, 745, 747, 795, 919, 800, - 799, 749, 750, 794, 76, 50, 223, 757, 186, 1191, - 830, 763, 850, 1084, 76, 971, 815, 310, 947, 948, - 441, 764, 441, 766, 767, 846, 841, 840, 65, 648, - 441, 837, 838, 839, 851, 258, 257, 260, 261, 262, - 263, 788, 853, 1104, 259, 264, 1069, 312, 312, 312, - 312, 953, 312, 50, 847, 848, 1009, 995, 76, 312, - 950, 1014, 1011, 1004, 1005, 1012, 1007, 1006, 559, 562, - 563, 564, 560, 658, 561, 565, 709, 451, 1013, 900, - 783, 952, 781, 780, 1003, 784, 477, 782, 785, 186, - 563, 564, 186, 186, 186, 186, 186, 888, 696, 713, - 889, 779, 236, 1283, 186, 227, 228, 186, 1277, 1030, - 884, 186, 1282, 894, 893, 986, 186, 186, 712, 594, - 76, 433, 468, 901, 490, 491, 492, 493, 494, 495, - 496, 489, 978, 76, 499, 1257, 466, 1256, 1204, 939, - 940, 559, 562, 563, 564, 560, 456, 561, 565, 458, - 462, 947, 948, 972, 860, 1159, 1192, 657, 457, 312, - 567, 224, 225, 468, 938, 591, 480, 299, 218, 892, - 895, 298, 298, 298, 298, 298, 927, 891, 1236, 219, - 54, 1235, 1194, 943, 186, 960, 298, 76, 951, 76, - 470, 708, 1244, 186, 1182, 298, 186, 76, 969, 679, - 524, 959, 56, 961, 58, 578, 51, 1, 857, 535, - 908, 962, 998, 866, 909, 1259, 1217, 910, 1098, 817, - 809, 913, 914, 915, 409, 441, 973, 974, 64, 1251, - 924, 992, 816, 925, 1223, 930, 1180, 931, 932, 933, - 934, 824, 980, 827, 1103, 1254, 977, 601, 599, 600, - 441, 598, 603, 983, 984, 602, 597, 197, 305, 566, - 985, 590, 987, 988, 989, 852, 471, 312, 1015, 66, - 1018, 1001, 1017, 862, 1025, 312, 675, 881, 449, 199, - 508, 890, 963, 311, 1076, 685, 312, 312, 312, 312, - 312, 312, 312, 312, 310, 460, 1234, 1193, 926, 534, - 312, 312, 759, 244, 1038, 1037, 700, 812, 1074, 256, - 47, 1070, 1043, 1057, 709, 773, 253, 1056, 255, 254, - 692, 773, 691, 935, 481, 1086, 1087, 1088, 242, 234, - 477, 76, 713, 312, 186, 1075, 1080, 297, 1078, 550, - 1073, 1064, 558, 556, 555, 949, 945, 296, 76, 514, - 515, 516, 517, 518, 519, 520, 1033, 1079, 1097, 1156, - 831, 832, 833, 834, 1241, 695, 1092, 1096, 25, 55, - 229, 19, 18, 17, 740, 1091, 842, 843, 844, 20, - 16, 15, 14, 1042, 754, 754, 29, 13, 12, 11, - 754, 76, 76, 10, 76, 708, 9, 8, 7, 6, - 5, 4, 220, 698, 699, 299, 22, 754, 1112, 1113, - 2, 1125, 0, 298, 0, 0, 0, 76, 0, 0, - 186, 186, 0, 1135, 1127, 0, 0, 1130, 186, 0, - 1089, 0, 0, 0, 1155, 0, 312, 76, 0, 1134, - 1142, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 0, 0, 0, 0, 0, 0, 524, 1160, 0, 751, - 752, 0, 0, 0, 0, 0, 1171, 1172, 1173, 0, - 440, 1168, 0, 0, 0, 1174, 0, 76, 76, 0, - 0, 0, 0, 1176, 969, 0, 0, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 312, 76, 1189, 76, 76, - 1136, 0, 1190, 312, 0, 0, 0, 1138, 0, 0, - 806, 0, 812, 0, 0, 0, 0, 0, 0, 1147, - 1148, 1149, 1074, 186, 1152, 1208, 0, 312, 1183, 0, - 1185, 76, 0, 0, 1205, 0, 0, 1162, 1163, 1164, - 0, 1167, 0, 0, 76, 186, 1216, 0, 0, 1222, - 1207, 76, 1195, 1233, 1073, 0, 0, 0, 1000, 76, - 0, 1232, 186, 0, 0, 0, 0, 1074, 0, 47, - 0, 0, 0, 1245, 710, 0, 0, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 1249, 0, 1246, 0, 0, 0, 1228, 1073, - 1229, 1036, 885, 886, 1263, 462, 0, 0, 0, 1268, - 0, 0, 76, 773, 76, 76, 76, 186, 76, 1202, - 0, 0, 1273, 1060, 76, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1213, 1214, 1215, 958, 1281, 1280, - 0, 298, 0, 0, 0, 459, 0, 1288, 0, 0, - 76, 76, 76, 0, 312, 443, 444, 445, 0, 448, - 1237, 1238, 1239, 1240, 0, 0, 452, 912, 0, 0, - 812, 0, 812, 0, 0, 0, 0, 0, 0, 300, - 184, 0, 929, 209, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 76, 0, 0, 996, 312, 0, - 312, 0, 0, 0, 1264, 233, 76, 184, 184, 1269, - 0, 0, 0, 184, 183, 0, 0, 0, 0, 76, - 0, 0, 1274, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1036, 0, 0, 0, 0, 0, 76, - 0, 0, 303, 312, 0, 0, 0, 413, 0, 0, - 0, 0, 0, 1292, 1293, 497, 498, 490, 491, 492, - 493, 494, 495, 496, 489, 312, 0, 499, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, - 754, 0, 0, 1077, 958, 0, 754, 0, 0, 76, - 0, 1139, 1140, 0, 1141, 0, 0, 1143, 812, 1145, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 902, - 903, 904, 312, 0, 312, 1100, 0, 0, 0, 0, - 184, 0, 184, 0, 0, 1000, 812, 0, 184, 0, - 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1179, 1126, 0, 1066, - 0, 0, 0, 0, 421, 0, 422, 0, 0, 0, - 1128, 0, 429, 0, 1081, 1082, 0, 1131, 1083, 431, - 0, 1085, 1153, 454, 645, 312, 1151, 0, 0, 0, - 0, 0, 654, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 665, 666, 667, 668, 669, 670, 671, - 672, 0, 0, 0, 0, 0, 0, 673, 674, 0, - 488, 487, 497, 498, 490, 491, 492, 493, 494, 495, - 496, 489, 0, 0, 499, 0, 0, 0, 1170, 0, - 1170, 1170, 1170, 0, 1175, 0, 0, 0, 184, 0, - 312, 0, 0, 0, 0, 184, 574, 184, 1133, 488, - 487, 497, 498, 490, 491, 492, 493, 494, 495, 496, - 489, 0, 0, 499, 0, 0, 312, 312, 312, 0, - 0, 0, 552, 0, 0, 0, 0, 0, 0, 0, - 0, 576, 0, 0, 0, 1150, 454, 0, 1158, 0, - 0, 0, 0, 0, 0, 524, 0, 0, 0, 1040, - 1041, 454, 0, 0, 0, 0, 0, 0, 0, 1209, - 1210, 0, 1058, 1059, 0, 1061, 1062, 0, 0, 0, - 0, 0, 1100, 488, 487, 497, 498, 490, 491, 492, - 493, 494, 495, 496, 489, 1170, 0, 499, 488, 487, - 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, - 0, 0, 499, 0, 0, 1248, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 184, 184, 0, 0, 184, - 0, 0, 184, 0, 0, 0, 663, 487, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 754, 0, - 499, 1270, 0, 0, 0, 0, 0, 184, 0, 652, - 653, 0, 0, 656, 0, 1276, 659, 0, 0, 0, - 859, 0, 861, 1039, 0, 0, 184, 0, 0, 0, - 880, 0, 0, 0, 0, 663, 0, 0, 0, 0, - 0, 678, 1137, 0, 488, 487, 497, 498, 490, 491, - 492, 493, 494, 495, 496, 489, 0, 0, 499, 0, - 697, 0, 0, 0, 0, 0, 1262, 524, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, - 0, 0, 233, 233, 0, 0, 755, 755, 233, 0, - 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 233, 233, 233, 233, 0, 184, 0, 755, - 184, 184, 184, 184, 184, 0, 0, 0, 0, 0, - 0, 0, 787, 0, 0, 184, 0, 0, 0, 574, - 0, 0, 0, 0, 184, 184, 0, 0, 0, 0, - 0, 770, 0, 0, 0, 0, 23, 24, 48, 26, - 27, 907, 0, 1197, 1198, 0, 1199, 1200, 1201, 0, - 0, 0, 0, 0, 0, 42, 0, 0, 0, 798, - 28, 0, 488, 487, 497, 498, 490, 491, 492, 493, - 494, 495, 496, 489, 0, 0, 499, 0, 0, 37, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 0, 0, 618, 0, 0, 0, 0, - 0, 184, 0, 0, 184, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 997, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 854, 0, 0, 663, - 0, 0, 0, 0, 0, 878, 0, 0, 879, 0, - 1024, 233, 0, 30, 31, 33, 32, 35, 488, 487, - 497, 498, 490, 491, 492, 493, 494, 495, 496, 489, - 0, 0, 499, 0, 36, 43, 44, 0, 0, 45, - 46, 34, 606, 0, 0, 0, 0, 0, 0, 0, - 0, 1290, 0, 38, 39, 0, 40, 41, 233, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 619, 0, 233, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 632, 633, 634, 635, 636, 637, 638, - 0, 639, 640, 641, 642, 643, 620, 621, 622, 623, - 604, 605, 184, 0, 607, 0, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 624, 625, 626, 627, - 628, 629, 630, 631, 0, 483, 49, 486, 0, 0, - 0, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 0, 484, 485, 482, 507, 488, 487, 497, 498, 490, - 491, 492, 493, 494, 495, 496, 489, 0, 0, 499, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1028, 1029, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 663, 0, 0, - 1032, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 755, 1188, 0, 0, 0, 0, 755, 0, + 269, 47, 1272, 858, 461, 524, 1227, 1076, 243, 774, + 1104, 268, 649, 1077, 1176, 792, 1003, 217, 810, 814, + 572, 523, 3, 1073, 813, 945, 961, 53, 838, 775, + 1048, 746, 852, 314, 908, 211, 570, 743, 1006, 994, + 588, 736, 824, 762, 713, 462, 456, 411, 47, 848, + 587, 950, 771, 245, 574, 559, 222, 890, 308, 468, + 296, 241, 300, 226, 476, 305, 303, 295, 52, 216, + 1305, 1293, 1303, 832, 1279, 1301, 859, 1292, 1067, 212, + 213, 214, 215, 934, 1162, 415, 1236, 436, 1099, 1100, + 1098, 230, 539, 806, 807, 57, 1278, 1251, 294, 489, + 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, + 490, 805, 589, 500, 590, 299, 181, 177, 178, 179, + 59, 60, 61, 62, 63, 451, 985, 678, 1110, 1111, + 1112, 831, 969, 875, 679, 968, 1115, 1113, 970, 1188, + 424, 1203, 839, 1151, 1149, 210, 1302, 874, 1300, 447, + 448, 438, 1273, 440, 1165, 1027, 772, 745, 1228, 1234, + 425, 418, 174, 454, 175, 793, 795, 239, 175, 657, + 960, 1230, 826, 826, 879, 648, 959, 236, 437, 439, + 958, 413, 421, 873, 189, 176, 513, 514, 1259, 1173, + 1035, 924, 902, 685, 442, 442, 442, 442, 76, 442, + 979, 480, 186, 431, 1119, 186, 442, 489, 488, 498, + 499, 491, 492, 493, 494, 495, 496, 497, 490, 811, + 500, 500, 682, 47, 490, 180, 1031, 500, 195, 186, + 186, 76, 870, 867, 868, 186, 866, 76, 510, 1229, + 794, 512, 475, 1264, 465, 1129, 885, 948, 464, 591, + 474, 473, 205, 909, 1069, 1120, 1252, 1235, 1233, 435, + 763, 877, 880, 839, 417, 825, 825, 475, 522, 652, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 983, + 537, 538, 540, 540, 540, 540, 540, 540, 540, 540, + 548, 549, 550, 551, 511, 1277, 872, 1114, 720, 473, + 232, 571, 1030, 190, 1267, 920, 763, 919, 931, 192, + 470, 1285, 718, 719, 717, 475, 198, 194, 871, 466, + 427, 428, 429, 474, 473, 886, 1049, 1194, 474, 473, + 1193, 50, 1024, 998, 828, 1071, 419, 420, 1026, 829, + 475, 716, 186, 196, 186, 475, 200, 899, 900, 901, + 186, 688, 689, 997, 299, 876, 1051, 186, 826, 173, + 986, 76, 76, 76, 76, 737, 76, 738, 1262, 579, + 878, 1286, 585, 76, 191, 541, 542, 543, 544, 545, + 546, 547, 703, 705, 706, 1107, 412, 704, 1053, 1265, + 1057, 1059, 1052, 1210, 1050, 1191, 1137, 474, 473, 1055, + 76, 193, 1106, 201, 202, 203, 204, 208, 1054, 995, + 686, 455, 207, 206, 475, 442, 1289, 455, 921, 684, + 293, 1056, 1058, 442, 515, 516, 517, 518, 519, 520, + 521, 1025, 980, 1023, 442, 442, 442, 442, 442, 442, + 442, 442, 493, 494, 495, 496, 497, 490, 442, 442, + 500, 825, 1220, 1270, 455, 683, 823, 821, 1158, 455, + 822, 186, 1220, 455, 1240, 666, 474, 473, 186, 186, + 186, 474, 473, 971, 76, 1220, 1221, 1185, 1184, 1239, + 76, 861, 690, 475, 1095, 455, 1172, 455, 475, 664, + 1126, 1125, 1122, 1123, 1116, 714, 489, 488, 498, 499, + 491, 492, 493, 494, 495, 496, 497, 490, 1122, 1121, + 500, 914, 455, 47, 711, 556, 455, 748, 455, 459, + 463, 739, 561, 564, 565, 566, 562, 526, 563, 567, + 692, 663, 951, 952, 662, 653, 481, 715, 709, 651, + 755, 758, 707, 646, 23, 433, 764, 426, 750, 598, + 597, 1074, 412, 21, 946, 582, 946, 300, 300, 300, + 300, 300, 748, 799, 776, 581, 1168, 1281, 940, 556, + 525, 941, 571, 1128, 796, 740, 741, 1124, 972, 536, + 947, 300, 76, 1038, 804, 926, 443, 768, 186, 186, + 76, 50, 186, 750, 760, 186, 583, 54, 581, 186, + 23, 76, 76, 76, 76, 76, 76, 76, 76, 221, + 299, 299, 299, 299, 299, 76, 76, 800, 778, 779, + 186, 781, 556, 789, 777, 299, 914, 780, 925, 691, + 797, 798, 23, 555, 299, 76, 914, 803, 914, 186, + 840, 841, 842, 802, 584, 76, 818, 50, 947, 686, + 311, 923, 442, 223, 442, 50, 650, 556, 1198, 1215, + 712, 833, 442, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 854, 50, + 834, 835, 836, 837, 853, 751, 752, 747, 749, 76, + 946, 759, 850, 851, 922, 1089, 845, 846, 847, 975, + 50, 849, 765, 844, 766, 843, 767, 65, 769, 770, + 856, 903, 1109, 258, 257, 260, 261, 262, 263, 711, + 1074, 186, 259, 264, 186, 186, 186, 186, 186, 714, + 951, 952, 891, 999, 791, 954, 186, 892, 660, 186, + 1155, 455, 452, 186, 698, 786, 784, 957, 186, 186, + 787, 785, 76, 491, 492, 493, 494, 495, 496, 497, + 490, 956, 904, 500, 788, 76, 565, 566, 783, 782, + 1299, 715, 943, 944, 700, 701, 227, 228, 489, 488, + 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, + 1291, 1034, 500, 942, 887, 561, 564, 565, 566, 562, + 300, 563, 567, 469, 1298, 930, 498, 499, 491, 492, + 493, 494, 495, 496, 497, 490, 186, 467, 500, 76, + 897, 76, 896, 457, 963, 186, 965, 525, 186, 76, + 753, 754, 955, 973, 982, 458, 964, 990, 596, 434, + 1269, 267, 1268, 1213, 976, 966, 1166, 1199, 863, 659, + 569, 224, 225, 299, 469, 898, 218, 989, 442, 991, + 992, 993, 895, 987, 988, 977, 978, 1201, 1253, 1245, + 894, 1212, 74, 219, 1211, 54, 1244, 947, 471, 1256, + 1189, 681, 56, 442, 996, 58, 580, 51, 1, 860, + 1002, 869, 809, 311, 1271, 1226, 905, 906, 907, 1103, + 820, 1005, 913, 911, 812, 313, 1019, 912, 410, 64, + 1263, 416, 819, 1232, 916, 917, 918, 1187, 928, 827, + 984, 830, 1108, 927, 1266, 981, 603, 601, 933, 602, + 600, 935, 936, 937, 938, 1072, 605, 604, 599, 197, + 1042, 1041, 1079, 306, 47, 568, 1047, 592, 855, 776, + 1075, 472, 1061, 1078, 66, 776, 1068, 1022, 711, 1091, + 1092, 1093, 1060, 1021, 76, 1080, 865, 186, 1029, 677, + 884, 1083, 455, 1084, 450, 199, 1085, 509, 893, 967, + 312, 76, 1081, 1254, 888, 889, 1164, 463, 687, 1243, + 1097, 1096, 1200, 929, 1102, 535, 761, 1101, 244, 702, + 256, 253, 255, 254, 693, 939, 1117, 1118, 482, 489, + 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, + 490, 242, 234, 500, 76, 76, 298, 76, 552, 560, + 558, 557, 953, 949, 297, 313, 313, 313, 313, 300, + 313, 1037, 1130, 1161, 1250, 697, 25, 313, 55, 915, + 76, 229, 19, 186, 186, 1132, 18, 17, 1135, 20, + 16, 186, 1014, 1139, 932, 15, 14, 710, 1160, 29, + 76, 13, 12, 11, 478, 1140, 10, 1046, 9, 8, + 7, 6, 5, 4, 220, 22, 1147, 1044, 1045, 2, + 1012, 0, 299, 0, 0, 0, 0, 0, 0, 1167, + 1062, 1063, 1175, 1065, 1066, 0, 1178, 1179, 1180, 0, + 0, 76, 76, 0, 1183, 1181, 0, 0, 0, 0, + 0, 973, 0, 1144, 1145, 1094, 1146, 0, 442, 1148, + 0, 1150, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 0, 76, 76, 0, 1196, 0, 0, 313, 1197, + 1190, 0, 1192, 441, 593, 1013, 0, 0, 0, 0, + 1018, 1015, 1008, 1009, 1016, 1011, 1010, 186, 0, 1079, + 0, 311, 1217, 0, 1202, 76, 0, 1017, 0, 1186, + 1078, 0, 1214, 1020, 815, 0, 0, 0, 76, 186, + 0, 0, 0, 1216, 0, 76, 1231, 1225, 0, 0, + 1242, 0, 0, 76, 0, 1141, 186, 0, 0, 1237, + 0, 1238, 1143, 1241, 1014, 0, 1079, 0, 47, 0, + 0, 1142, 0, 1257, 1152, 1153, 1154, 1078, 0, 1157, + 0, 0, 1070, 1261, 0, 0, 0, 0, 0, 1258, + 0, 0, 1012, 1169, 1170, 1171, 0, 1174, 1086, 1087, + 0, 1275, 1088, 0, 0, 1090, 313, 76, 1280, 76, + 76, 76, 186, 76, 313, 776, 1282, 0, 0, 76, + 0, 0, 710, 0, 0, 313, 313, 313, 313, 313, + 313, 313, 313, 1287, 0, 0, 0, 0, 0, 313, + 313, 1296, 1297, 0, 0, 76, 76, 76, 0, 0, + 0, 0, 0, 1304, 0, 0, 0, 1013, 0, 694, + 0, 0, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 478, + 0, 0, 313, 0, 0, 1209, 0, 0, 0, 1017, + 0, 0, 1138, 1204, 1205, 1007, 1206, 1207, 1208, 0, + 76, 76, 1222, 1223, 1224, 0, 0, 460, 444, 445, + 446, 0, 449, 76, 0, 0, 0, 0, 0, 453, + 0, 0, 0, 742, 0, 0, 76, 0, 1246, 1247, + 1248, 1249, 1163, 756, 756, 1159, 0, 0, 0, 756, + 525, 0, 184, 0, 0, 209, 0, 0, 76, 0, + 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, + 815, 0, 0, 0, 0, 0, 0, 233, 0, 184, + 184, 0, 0, 0, 1276, 184, 0, 0, 0, 0, + 0, 0, 1283, 0, 0, 0, 313, 76, 0, 0, + 0, 0, 0, 0, 0, 1288, 0, 0, 301, 313, + 0, 76, 0, 0, 1294, 0, 1004, 0, 489, 488, + 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, + 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, + 1308, 1309, 0, 183, 0, 0, 0, 0, 0, 0, + 0, 0, 1306, 0, 0, 0, 0, 0, 0, 1040, + 0, 0, 0, 313, 0, 313, 23, 24, 48, 26, + 27, 304, 0, 313, 0, 0, 414, 0, 0, 0, + 0, 1064, 0, 1255, 0, 42, 0, 0, 0, 0, + 28, 0, 184, 0, 184, 0, 0, 313, 0, 0, + 184, 0, 0, 0, 0, 0, 0, 184, 0, 37, + 0, 0, 0, 50, 0, 1274, 525, 0, 0, 0, + 0, 0, 0, 0, 463, 0, 0, 0, 0, 815, + 0, 815, 0, 0, 0, 0, 0, 0, 647, 0, + 0, 0, 0, 0, 0, 0, 656, 0, 0, 0, + 0, 0, 1295, 0, 0, 0, 0, 667, 668, 669, + 670, 671, 672, 673, 674, 0, 0, 0, 0, 0, + 0, 675, 676, 30, 31, 33, 32, 35, 0, 0, + 0, 0, 0, 422, 0, 423, 0, 0, 0, 0, + 0, 430, 1040, 0, 36, 43, 44, 0, 432, 45, + 46, 34, 0, 0, 0, 0, 0, 0, 962, 0, + 0, 184, 0, 38, 39, 0, 40, 41, 184, 576, + 184, 484, 0, 487, 0, 313, 0, 0, 0, 501, + 502, 503, 504, 505, 506, 507, 0, 485, 486, 483, + 508, 489, 488, 498, 499, 491, 492, 493, 494, 495, + 496, 497, 490, 0, 0, 500, 0, 0, 815, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1000, 313, + 0, 313, 0, 489, 488, 498, 499, 491, 492, 493, + 494, 495, 496, 497, 490, 1004, 815, 500, 0, 0, + 0, 0, 0, 0, 313, 0, 49, 0, 0, 0, + 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 578, 0, 0, 313, 488, 498, 499, 491, 492, + 493, 494, 495, 496, 497, 490, 1156, 0, 500, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 184, 184, + 0, 0, 184, 0, 0, 184, 0, 0, 0, 665, + 0, 0, 756, 0, 0, 1082, 962, 0, 756, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 0, 0, 0, 0, 862, 0, 864, 0, 0, + 0, 0, 0, 0, 313, 883, 313, 1105, 0, 184, + 0, 0, 0, 0, 0, 0, 0, 0, 665, 489, + 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, + 490, 0, 0, 500, 0, 0, 0, 0, 0, 1131, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, + 655, 0, 1133, 658, 0, 0, 661, 0, 0, 1136, + 233, 0, 0, 0, 0, 233, 233, 313, 0, 757, + 757, 233, 0, 0, 0, 757, 0, 0, 0, 0, + 0, 680, 0, 0, 0, 0, 233, 233, 233, 233, + 0, 184, 0, 757, 184, 184, 184, 184, 184, 0, + 699, 0, 0, 0, 0, 0, 790, 0, 0, 184, + 0, 0, 0, 576, 1043, 0, 0, 0, 184, 184, + 0, 1177, 0, 1177, 1177, 1177, 0, 1182, 0, 0, + 0, 0, 0, 313, 0, 489, 488, 498, 499, 491, + 492, 493, 494, 495, 496, 497, 490, 0, 910, 500, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 313, 313, 0, 0, 0, 0, 0, 0, 0, 489, + 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, + 490, 0, 773, 500, 0, 0, 184, 620, 0, 0, + 0, 0, 0, 0, 0, 184, 0, 0, 184, 0, + 0, 1001, 0, 0, 1218, 1219, 0, 0, 0, 0, + 801, 0, 0, 0, 0, 0, 0, 1105, 0, 0, + 0, 0, 0, 665, 0, 0, 1028, 0, 0, 0, + 1177, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 857, 0, 0, + 0, 0, 233, 0, 0, 0, 881, 0, 756, 882, + 0, 1284, 0, 0, 621, 0, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 1290, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 634, 635, 636, 637, 638, + 639, 640, 0, 641, 642, 643, 644, 645, 622, 623, + 624, 625, 606, 607, 0, 0, 609, 184, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 626, 627, + 628, 629, 630, 631, 632, 633, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1032, 1033, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 665, 0, 0, 0, 0, 0, 0, 0, + 0, 1195, 0, 0, 0, 0, 0, 0, 757, 0, + 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1122, 0, 0, 0, 0, - 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 574, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1127, 0, + 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 813, - 814, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 970, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, - 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, - 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, - 755, 145, 98, 97, 106, 391, 340, 348, 89, 346, - 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 321, 0, 143, 159, 172, 336, 394, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, - 330, 331, 369, 370, 403, 404, 405, 385, 327, 0, - 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, - 95, 160, 398, 388, 0, 360, 400, 338, 352, 408, - 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, - 347, 320, 339, 362, 93, 365, 337, 390, 371, 107, - 406, 109, 376, 0, 142, 118, 0, 0, 364, 392, - 366, 386, 359, 382, 329, 375, 401, 351, 379, 402, - 0, 0, 0, 75, 0, 813, 814, 0, 0, 0, - 0, 0, 86, 0, 378, 397, 349, 380, 318, 377, - 0, 322, 325, 407, 395, 344, 345, 0, 0, 0, - 0, 0, 0, 0, 363, 367, 383, 357, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, - 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, - 328, 0, 343, 384, 0, 317, 387, 393, 358, 187, - 396, 356, 355, 399, 131, 0, 0, 145, 98, 97, - 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 321, 0, 143, - 159, 172, 336, 394, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 332, 335, 330, 331, 369, 370, - 403, 404, 405, 385, 327, 0, 333, 334, 0, 389, - 372, 77, 0, 108, 169, 133, 95, 160, 398, 388, - 0, 360, 400, 338, 352, 408, 353, 354, 381, 324, - 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, - 93, 365, 337, 390, 371, 107, 406, 109, 376, 0, - 142, 118, 0, 0, 364, 392, 366, 386, 359, 382, - 329, 375, 401, 351, 379, 402, 50, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 378, 397, 349, 380, 318, 377, 0, 322, 325, 407, - 395, 344, 345, 0, 0, 0, 0, 0, 0, 0, - 363, 367, 383, 357, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, - 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, - 0, 317, 387, 393, 358, 187, 396, 356, 355, 399, - 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, - 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, + 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, + 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, + 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, + 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, + 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, + 0, 75, 0, 816, 817, 0, 0, 0, 0, 0, + 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, + 326, 408, 396, 345, 346, 974, 0, 0, 0, 0, + 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, + 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, + 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, + 356, 400, 131, 0, 757, 145, 98, 97, 106, 392, + 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, + 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, + 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, + 373, 77, 0, 108, 169, 133, 95, 160, 399, 389, + 0, 361, 401, 339, 353, 409, 354, 355, 382, 325, + 369, 125, 351, 0, 342, 320, 348, 321, 340, 363, + 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, + 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, + 330, 376, 402, 352, 380, 403, 0, 0, 0, 75, + 0, 816, 817, 0, 0, 0, 0, 0, 86, 0, + 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, + 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, + 364, 368, 384, 358, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 343, 0, 375, 0, 0, 0, 327, + 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, + 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, + 131, 0, 0, 145, 98, 97, 106, 392, 341, 349, + 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 321, 0, 143, 159, 172, 336, 394, + 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 332, 335, 330, 331, 369, 370, 403, 404, 405, 385, - 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, - 169, 133, 95, 160, 398, 388, 0, 360, 400, 338, - 352, 408, 353, 354, 381, 324, 368, 125, 350, 0, - 341, 319, 347, 320, 339, 362, 93, 365, 337, 390, - 371, 107, 406, 109, 376, 0, 142, 118, 0, 0, - 364, 392, 366, 386, 359, 382, 329, 375, 401, 351, - 379, 402, 0, 0, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 378, 397, 349, 380, - 318, 377, 0, 322, 325, 407, 395, 344, 345, 0, - 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, - 0, 0, 0, 0, 0, 0, 0, 1035, 0, 342, - 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, - 0, 0, 328, 0, 343, 384, 0, 317, 387, 393, - 358, 187, 396, 356, 355, 399, 131, 0, 0, 145, - 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, - 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 321, - 0, 143, 159, 172, 336, 394, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 332, 335, 330, 331, - 369, 370, 403, 404, 405, 385, 327, 0, 333, 334, - 0, 389, 372, 77, 0, 108, 169, 133, 95, 160, - 398, 388, 0, 360, 400, 338, 352, 408, 353, 354, - 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, - 339, 362, 93, 365, 337, 390, 371, 107, 406, 109, - 376, 0, 142, 118, 0, 0, 364, 392, 366, 386, - 359, 382, 329, 375, 401, 351, 379, 402, 0, 0, - 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 378, 397, 349, 380, 318, 377, 0, 322, - 325, 407, 395, 344, 345, 0, 0, 0, 0, 0, - 0, 0, 363, 367, 383, 357, 0, 0, 0, 0, - 0, 0, 0, 706, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, - 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, - 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, - 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, - 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, + 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, + 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, + 0, 108, 169, 133, 95, 160, 399, 389, 0, 361, + 401, 339, 353, 409, 354, 355, 382, 325, 369, 125, + 351, 0, 342, 320, 348, 321, 340, 363, 93, 366, + 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, + 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, + 402, 352, 380, 403, 50, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, + 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, + 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, + 384, 358, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, + 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, + 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, + 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, + 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 321, 0, 143, 159, 172, 336, 394, 165, 166, + 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, - 330, 331, 369, 370, 403, 404, 405, 385, 327, 0, - 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, - 95, 160, 398, 388, 0, 360, 400, 338, 352, 408, - 353, 354, 381, 324, 368, 125, 350, 0, 341, 319, - 347, 320, 339, 362, 93, 365, 337, 390, 371, 107, - 406, 109, 376, 0, 142, 118, 0, 0, 364, 392, - 366, 386, 359, 382, 329, 375, 401, 351, 379, 402, + 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, + 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, + 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, + 169, 133, 95, 160, 399, 389, 0, 361, 401, 339, + 353, 409, 354, 355, 382, 325, 369, 125, 351, 0, + 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, + 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, + 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, + 380, 403, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, + 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, + 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, + 0, 0, 0, 0, 0, 0, 0, 1039, 0, 343, + 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, + 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, + 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, + 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, + 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, + 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, + 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, + 0, 390, 0, 0, 373, 77, 0, 108, 169, 133, + 95, 160, 399, 389, 0, 361, 401, 339, 353, 409, + 354, 355, 382, 325, 369, 125, 351, 0, 342, 320, + 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, + 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, + 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 378, 397, 349, 380, 318, 377, - 0, 322, 325, 407, 395, 344, 345, 0, 0, 0, - 0, 0, 0, 0, 363, 367, 383, 357, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 342, 0, 374, - 0, 0, 0, 326, 323, 0, 361, 0, 0, 0, - 328, 0, 343, 384, 0, 317, 387, 393, 358, 187, - 396, 356, 355, 399, 131, 0, 0, 145, 98, 97, - 106, 391, 340, 348, 89, 346, 137, 127, 157, 373, + 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, + 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, + 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, + 0, 0, 0, 0, 0, 708, 0, 343, 0, 375, + 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, + 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, + 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, + 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 321, 0, 143, - 159, 172, 336, 394, 165, 166, 167, 168, 0, 0, + 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, + 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 332, 335, 330, 331, 369, 370, - 403, 404, 405, 385, 327, 0, 333, 334, 0, 389, - 372, 77, 0, 108, 169, 133, 95, 160, 398, 388, - 0, 360, 400, 338, 352, 408, 353, 354, 381, 324, - 368, 125, 350, 0, 341, 319, 347, 320, 339, 362, - 93, 365, 337, 390, 371, 107, 406, 109, 376, 0, - 142, 118, 0, 0, 364, 392, 366, 386, 359, 382, - 329, 375, 401, 351, 379, 402, 0, 0, 0, 75, + 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, + 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, + 0, 0, 373, 77, 0, 108, 169, 133, 95, 160, + 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, + 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, + 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, + 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, + 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, + 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, + 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, + 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, + 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, + 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, + 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, + 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, + 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, + 373, 77, 0, 108, 169, 133, 95, 160, 399, 389, + 0, 361, 401, 339, 353, 409, 354, 355, 382, 325, + 369, 125, 351, 0, 342, 320, 348, 321, 340, 363, + 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, + 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, + 330, 376, 402, 352, 380, 403, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 378, 397, 349, 380, 318, 377, 0, 322, 325, 407, - 395, 344, 345, 0, 0, 0, 0, 0, 0, 0, - 363, 367, 383, 357, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 342, 0, 374, 0, 0, 0, 326, - 323, 0, 361, 0, 0, 0, 328, 0, 343, 384, - 0, 317, 387, 393, 358, 187, 396, 356, 355, 399, - 131, 0, 0, 145, 98, 97, 106, 391, 340, 348, - 89, 346, 137, 127, 157, 373, 128, 136, 110, 149, + 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, + 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, + 364, 368, 384, 358, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 343, 0, 375, 0, 0, 0, 327, + 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, + 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, + 131, 0, 0, 145, 98, 97, 106, 392, 341, 349, + 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 315, 161, 123, 148, 154, 117, 114, 81, 152, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 321, 0, 143, 159, 172, 336, 394, - 165, 166, 167, 168, 0, 0, 0, 316, 314, 101, + 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 332, 335, 330, 331, 369, 370, 403, 404, 405, 385, - 327, 0, 333, 334, 0, 389, 372, 77, 0, 108, - 169, 133, 95, 160, 398, 388, 0, 360, 400, 338, - 352, 408, 353, 354, 381, 324, 368, 125, 350, 0, - 341, 319, 347, 320, 339, 362, 93, 365, 337, 390, - 371, 107, 406, 109, 376, 0, 142, 118, 0, 0, - 364, 392, 366, 386, 359, 382, 329, 375, 401, 351, - 379, 402, 0, 0, 0, 185, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 378, 397, 349, 380, - 318, 377, 0, 322, 325, 407, 395, 344, 345, 0, - 0, 0, 0, 0, 0, 0, 363, 367, 383, 357, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, - 0, 374, 0, 0, 0, 326, 323, 0, 361, 0, - 0, 0, 328, 0, 343, 384, 0, 317, 387, 393, - 358, 187, 396, 356, 355, 399, 131, 0, 0, 145, - 98, 97, 106, 391, 340, 348, 89, 346, 137, 127, - 157, 373, 128, 136, 110, 149, 132, 156, 188, 164, + 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, + 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, + 0, 108, 169, 133, 95, 160, 399, 389, 0, 361, + 401, 339, 353, 409, 354, 355, 382, 325, 369, 125, + 351, 0, 342, 320, 348, 321, 340, 363, 93, 366, + 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, + 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, + 402, 352, 380, 403, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, + 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, + 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, + 384, 358, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, + 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, + 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, + 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, + 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 316, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, + 167, 168, 0, 0, 0, 317, 315, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, + 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, + 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, + 169, 133, 95, 160, 399, 389, 0, 361, 401, 339, + 353, 409, 354, 355, 382, 325, 369, 125, 351, 0, + 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, + 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, + 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, + 380, 403, 0, 0, 0, 185, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, + 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, + 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, + 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, + 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, + 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, + 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, + 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 321, - 0, 143, 159, 172, 336, 394, 165, 166, 167, 168, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, + 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 332, 335, 330, 331, - 369, 370, 403, 404, 405, 385, 327, 0, 333, 334, - 0, 389, 372, 77, 0, 108, 169, 133, 95, 160, - 398, 388, 0, 360, 400, 338, 352, 408, 353, 354, - 381, 324, 368, 125, 350, 0, 341, 319, 347, 320, - 339, 362, 93, 365, 337, 390, 371, 107, 406, 109, - 376, 0, 142, 118, 0, 0, 364, 392, 366, 386, - 359, 382, 329, 375, 401, 351, 379, 402, 0, 0, + 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, + 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, + 0, 390, 0, 0, 373, 77, 0, 108, 169, 133, + 95, 160, 399, 389, 0, 361, 401, 339, 353, 409, + 354, 355, 382, 325, 369, 125, 351, 0, 342, 320, + 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, + 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, + 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, + 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, + 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, + 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 343, 0, 375, + 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, + 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, + 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, + 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 586, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 316, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, + 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, + 0, 317, 315, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, + 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, + 0, 0, 373, 77, 0, 108, 169, 133, 95, 160, + 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, + 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, + 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, + 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, + 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 378, 397, 349, 380, 318, 377, 0, 322, - 325, 407, 395, 344, 345, 0, 0, 0, 0, 0, - 0, 0, 363, 367, 383, 357, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 342, 0, 374, 0, 0, - 0, 326, 323, 0, 361, 0, 0, 0, 328, 0, - 343, 384, 0, 317, 387, 393, 358, 187, 396, 356, - 355, 399, 131, 0, 0, 145, 98, 97, 106, 391, - 340, 348, 89, 346, 137, 127, 157, 373, 128, 136, + 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, + 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, + 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, + 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, + 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, + 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, + 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 584, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 307, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 315, 161, 123, 148, 154, 117, 114, + 83, 162, 82, 316, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 321, 0, 143, 159, 172, - 336, 394, 165, 166, 167, 168, 0, 0, 0, 316, - 314, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 332, 335, 330, 331, 369, 370, 403, 404, - 405, 385, 327, 0, 333, 334, 0, 389, 372, 77, - 0, 108, 169, 133, 95, 160, 398, 388, 0, 360, - 400, 338, 352, 408, 353, 354, 381, 324, 368, 125, - 350, 0, 341, 319, 347, 320, 339, 362, 93, 365, - 337, 390, 371, 107, 406, 109, 376, 0, 142, 118, - 0, 0, 364, 392, 366, 386, 359, 382, 329, 375, - 401, 351, 379, 402, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 378, 397, - 349, 380, 318, 377, 0, 322, 325, 407, 395, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 363, 367, - 383, 357, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 342, 0, 374, 0, 0, 0, 326, 323, 0, - 361, 0, 0, 0, 328, 0, 343, 384, 0, 317, - 387, 393, 358, 187, 396, 356, 355, 399, 131, 0, - 0, 145, 98, 97, 106, 391, 340, 348, 89, 346, - 137, 127, 157, 373, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 306, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 315, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 321, 0, 143, 159, 172, 336, 394, 165, 166, - 167, 168, 0, 0, 0, 316, 314, 309, 308, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 332, 335, - 330, 331, 369, 370, 403, 404, 405, 385, 327, 0, - 333, 334, 0, 389, 372, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 742, 0, 240, 0, 0, - 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, - 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 248, 249, 231, 0, 0, 0, 290, 0, 250, 0, - 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 288, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 280, 289, 286, 287, 284, 285, 283, 282, 281, - 291, 272, 273, 274, 275, 277, 0, 276, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, - 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, - 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 454, 238, 258, 257, 260, 261, 262, 263, - 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, - 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 249, 0, 0, 0, 0, 290, - 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 288, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 280, 289, 286, 287, 284, 285, - 283, 282, 281, 291, 272, 273, 274, 275, 277, 0, + 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, + 337, 395, 165, 166, 167, 168, 0, 0, 0, 317, + 315, 310, 309, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, + 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, + 373, 77, 0, 108, 169, 133, 95, 160, 125, 0, + 0, 744, 0, 240, 0, 0, 0, 93, 0, 237, + 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, + 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, + 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 248, 249, 231, 0, + 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, + 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, + 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, + 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, + 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 455, 238, 258, 257, 260, 261, 262, 263, 0, 0, + 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, + 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, + 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, + 282, 292, 272, 273, 274, 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, @@ -1239,9 +1254,9 @@ var yyAct = [...]int{ 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 231, 0, - 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, + 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, + 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, @@ -1251,91 +1266,69 @@ var yyAct = [...]int{ 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, - 287, 284, 285, 283, 282, 281, 291, 272, 273, 274, - 275, 277, 0, 276, 77, 0, 108, 169, 133, 95, - 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, - 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, - 0, 0, 0, 0, 805, 0, 50, 0, 0, 238, - 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, - 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 0, 0, 0, 0, 290, 0, 250, 0, 0, - 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 288, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 280, 289, 286, 287, 284, 285, 283, 282, 281, 291, - 272, 273, 274, 275, 277, 23, 276, 77, 0, 108, - 169, 133, 95, 160, 0, 0, 0, 125, 0, 0, - 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, - 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, - 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, - 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, - 0, 290, 0, 250, 0, 0, 246, 247, 252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 288, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 280, 289, 286, 287, - 284, 285, 283, 282, 281, 291, 272, 273, 274, 275, - 277, 0, 276, 77, 0, 108, 169, 133, 95, 160, - 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, - 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, - 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, - 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, - 0, 0, 0, 0, 290, 0, 250, 0, 0, 246, - 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 288, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 280, - 289, 286, 287, 284, 285, 283, 282, 281, 291, 272, - 273, 274, 275, 277, 125, 276, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 279, + 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, + 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, + 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, + 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, + 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, + 0, 0, 0, 0, 0, 0, 808, 0, 50, 0, + 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, + 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, + 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, + 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, + 282, 292, 272, 273, 274, 275, 277, 23, 280, 0, + 276, 77, 0, 108, 169, 133, 95, 160, 0, 125, + 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, + 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, + 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, + 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, + 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, + 0, 0, 0, 291, 0, 250, 0, 0, 246, 247, + 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 289, 0, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 281, 290, + 287, 288, 285, 286, 284, 283, 282, 292, 272, 273, + 274, 275, 277, 0, 280, 0, 276, 77, 0, 108, + 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, + 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, - 0, 86, 259, 264, 265, 266, 0, 0, 0, 251, + 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 248, 249, 0, 0, 0, 0, 290, 0, + 0, 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 288, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 1291, 128, + 0, 289, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, @@ -1344,40 +1337,63 @@ var yyAct = [...]int{ 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 280, 289, 286, 287, 284, 285, 283, - 282, 281, 291, 272, 273, 274, 275, 277, 125, 276, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, - 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, - 0, 0, 0, 251, 0, 278, 0, 0, 0, 0, + 88, 158, 141, 281, 290, 287, 288, 285, 286, 284, + 283, 282, 292, 272, 273, 274, 275, 277, 0, 280, + 125, 276, 77, 0, 108, 169, 133, 95, 160, 93, + 0, 0, 0, 0, 107, 279, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, + 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, + 265, 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, - 0, 0, 290, 0, 250, 0, 0, 246, 247, 252, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, + 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, + 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 1307, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, + 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, + 273, 274, 275, 277, 0, 280, 125, 276, 77, 0, + 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, + 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, + 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 288, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 280, 289, 286, - 287, 284, 285, 283, 282, 281, 291, 272, 273, 274, - 275, 277, 125, 276, 77, 0, 108, 169, 133, 95, + 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, + 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 281, 290, 287, 288, 285, + 286, 284, 283, 282, 292, 272, 273, 274, 275, 277, + 0, 280, 125, 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 488, 487, 497, 498, - 490, 491, 492, 493, 494, 495, 496, 489, 0, 0, - 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 489, 488, 498, 499, + 491, 492, 493, 494, 495, 496, 497, 490, 0, 0, + 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, @@ -1390,97 +1406,98 @@ var yyAct = [...]int{ 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 0, 476, - 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 478, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 473, 472, 0, + 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, + 0, 477, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 0, 479, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 474, + 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 72, 0, 67, 0, 0, 0, 73, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 69, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 0, 573, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185, 0, 575, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 71, 72, 0, 67, 0, 0, + 0, 73, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, + 110, 149, 132, 156, 69, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 108, 169, 133, 95, 160, 125, 0, + 0, 0, 575, 0, 0, 0, 0, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 577, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, - 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 75, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, @@ -1504,101 +1521,102 @@ var yyAct = [...]int{ 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, + 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 693, 0, 0, 694, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 0, 695, 0, 0, + 696, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 593, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 0, 592, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 160, 93, 0, 595, 0, 0, 107, 0, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 0, 594, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 0, 108, 169, 133, 95, - 160, 125, 0, 0, 0, 573, 0, 0, 0, 0, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 575, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, + 0, 575, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 185, 0, 577, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 571, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 185, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 573, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 575, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 577, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1617,53 +1635,31 @@ var yyAct = [...]int{ 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 478, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 77, - 0, 108, 169, 133, 95, 160, 551, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, + 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, + 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 479, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, - 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 0, 125, 77, 0, 108, 169, 133, 95, 160, + 553, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, @@ -1684,28 +1680,51 @@ var yyAct = [...]int{ 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, - 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 302, 0, 0, 0, 0, 0, 0, 125, 0, + 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 182, 0, 187, 0, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, @@ -1729,64 +1748,66 @@ var yyAct = [...]int{ 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, + 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 0, 108, 169, 133, 95, - 160, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 108, 169, 133, 95, 160, } var yyPact = [...]int{ - 1870, -1000, -191, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1490, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 860, 877, -1000, -1000, -1000, -1000, -1000, -1000, 654, + 7505, 40, 65, -3, 10236, 64, 196, 10914, -1000, -10, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 594, -1000, -1000, + -1000, -1000, -1000, 839, 857, 647, 831, 737, -1000, 5660, + 44, 9105, 10010, 4955, -1000, 496, 60, 10914, -151, 10462, + 36, 36, 36, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 795, 827, -1000, -1000, -1000, -1000, -1000, -1000, 605, - 7391, 59, 73, 4, 10098, 72, 311, 10770, -1000, -15, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 567, -1000, -1000, - -1000, -1000, -1000, 781, 793, 630, 771, 696, -1000, 5560, - 52, 8977, 9874, 4861, -1000, 486, 69, 10770, -159, 10322, - 50, 50, 50, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1794,23 +1815,23 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 62, 10914, -1000, 10914, 35, 491, 35, + 35, 35, 10914, -1000, 93, -1000, -1000, -1000, -1000, 10914, + 489, 809, 31, 2971, 2971, 2971, 2971, -2, 2971, -87, + 691, -1000, -1000, -1000, -1000, 2971, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 399, 804, 6366, 6366, + 860, -1000, 594, -1000, -1000, -1000, 782, -1000, -1000, 246, + 867, -1000, 7279, 91, -1000, 6366, 1579, 602, -1000, -1000, + 602, -1000, -1000, 75, -1000, -1000, 6818, 6818, 6818, 6818, + 6818, 6818, 6818, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 602, -1000, 6131, + 602, 602, 602, 602, 602, 602, 602, 602, 6366, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 9784, 603, 754, -1000, -1000, -1000, 828, + 8192, 8879, 10914, 544, -1000, 590, 4707, -106, -1000, -1000, + -1000, 169, 8644, -1000, -1000, -1000, 808, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 71, 10770, -1000, 10770, 49, 485, 49, - 49, 49, 10770, -1000, 109, -1000, -1000, -1000, -1000, 10770, - 480, 721, 22, 2893, 2893, 2893, 2893, 0, 2893, -94, - 656, -1000, -1000, -1000, -1000, 2893, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 349, 757, 6262, 6262, - 795, -1000, 567, -1000, -1000, -1000, 731, -1000, -1000, 256, - 809, -1000, 7167, 108, -1000, 6262, 2033, 582, -1000, -1000, - 582, -1000, -1000, 98, -1000, -1000, 6710, 6710, 6710, 6710, - 6710, 6710, 6710, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 582, -1000, 6029, - 582, 582, 582, 582, 582, 582, 582, 582, 6262, 582, - 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, - 582, 582, 9650, 524, 657, -1000, -1000, -1000, 768, 8072, - 8753, 10770, 496, -1000, 568, 4615, -129, -1000, -1000, -1000, - 185, 8520, -1000, -1000, -1000, 719, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1818,159 +1839,158 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 495, -1000, 1967, 487, 2971, 53, 604, 483, 197, 479, + 10914, 10914, 2971, 46, 10914, 826, 687, 10914, 478, 475, + -1000, 4459, -1000, 2971, 2971, 2971, 2971, 2971, 2971, 2971, + 2971, -1000, -1000, -1000, -1000, -1000, -1000, 2971, 2971, -1000, + -79, -1000, 10914, -1000, -1000, -1000, -1000, 872, 132, 401, + 83, 595, -1000, 327, 839, 399, 737, 8418, 702, -1000, + -1000, 10914, -1000, 6366, 6366, 315, -1000, 9557, -1000, -1000, + 3467, 155, 6818, 278, 224, 6818, 6818, 6818, 6818, 6818, + 6818, 6818, 6818, 6818, 6818, 6818, 6818, 6818, 6818, 6818, + 309, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 465, -1000, 594, 656, 656, 114, 114, 114, 114, 114, + 114, 7044, 5190, 399, 463, 180, 6131, 5660, 5660, 6366, + 6366, 10688, 10688, 5660, 833, 184, 180, 10688, 399, -1000, + 399, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5660, 5660, + 5660, 5660, 13, 10914, -1000, 10688, 9105, 9105, 9105, 9105, + 9105, -1000, 728, 727, -1000, 705, 704, 723, 10914, -1000, + 461, 8192, 116, 602, -1000, 9331, -1000, -1000, 13, 511, + 9105, 10914, -1000, -1000, 4211, 590, -106, 530, -1000, -108, + -128, 5895, 113, -1000, -1000, -1000, -1000, 2723, 330, 267, + -72, -1000, -1000, -1000, 608, -1000, 608, 608, 608, 608, + -36, -36, -36, -36, -1000, -1000, -1000, -1000, -1000, 652, + 650, -1000, 608, 608, 608, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 479, - -1000, 1905, 476, 2893, 63, 607, 474, 224, 461, 10770, - 10770, 2893, 54, 10770, 764, 652, 10770, 457, 447, -1000, - 4369, -1000, 2893, 2893, 2893, 2893, 2893, 2893, 2893, 2893, - -1000, -1000, -1000, -1000, -1000, -1000, 2893, 2893, -1000, -78, - -1000, 10770, -1000, -1000, -1000, -1000, 820, 135, 395, 107, - 570, -1000, 282, 781, 349, 696, 8296, 686, -1000, -1000, - 10770, -1000, 6262, 6262, 279, -1000, 9425, -1000, -1000, 3385, - 141, 6710, 318, 169, 6710, 6710, 6710, 6710, 6710, 6710, - 6710, 6710, 6710, 6710, 6710, 6710, 6710, 6710, 6710, 335, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 430, - -1000, 567, 608, 608, 121, 121, 121, 121, 121, 121, - 6934, 5094, 349, 469, 252, 6029, 5560, 5560, 6262, 6262, - 10546, 10546, 5560, 772, 177, 252, 10546, -1000, 349, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5560, 5560, 5560, 5560, - 23, 10770, -1000, 10546, 8977, 8977, 8977, 8977, 8977, -1000, - 690, 672, -1000, 671, 669, 677, 10770, -1000, 455, 8072, - 123, 582, -1000, 9201, -1000, -1000, 23, 511, 8977, 10770, - -1000, -1000, 4123, 568, -129, 538, -1000, -102, -122, 5793, - 116, -1000, -1000, -1000, -1000, 2647, 183, 259, -72, -1000, - -1000, -1000, 587, -1000, 587, 587, 587, 587, -41, -41, - -41, -41, -1000, -1000, -1000, -1000, -1000, 604, 603, -1000, - 587, 587, 587, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 602, - 602, 602, 589, 589, 620, -1000, 10770, -175, 388, 2893, - 761, 2893, -1000, 64, -1000, 10770, -1000, -1000, 10770, 2893, + -1000, 648, 648, 648, 631, 631, 658, -1000, 10914, -173, + 425, 2971, 825, 2971, -1000, 118, -1000, 10914, -1000, -1000, + 10914, 2971, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 235, -1000, -1000, + -1000, -1000, 757, 6366, 6366, 3963, 6366, -1000, -1000, -1000, + 804, -1000, 833, 851, -1000, 789, 787, 5660, -1000, -1000, + 155, 228, -1000, -1000, 280, -1000, -1000, -1000, -1000, 82, + 602, -1000, 1611, -1000, -1000, -1000, -1000, 278, 6818, 6818, + 6818, 115, 1611, 1887, 712, 1652, 114, 344, 344, 121, + 121, 121, 121, 121, 657, 657, -1000, -1000, -1000, 399, + -1000, -1000, -1000, 399, 5660, 584, -1000, -1000, 6366, -1000, + 399, 457, 457, 253, 396, 640, -1000, 81, 574, 457, + 5660, 230, -1000, 6366, 399, -161, -1000, 457, 399, 457, + 457, 538, 602, -1000, 636, -1000, 167, 754, 679, 684, + 481, -1000, -1000, -1000, -1000, 720, -1000, 706, -1000, -1000, + -1000, -1000, -1000, 59, 55, 49, 10462, -1000, 865, 9105, + 568, -1000, -1000, 530, -106, -88, -1000, -1000, -1000, 180, + -1000, 417, 524, 2475, -1000, -1000, -1000, -1000, -1000, -1000, + 646, 816, 145, 144, 376, -1000, -1000, 805, -1000, 212, + -78, -1000, -1000, 301, -36, -36, -1000, -1000, 113, 807, + 113, 113, 113, 351, 351, -1000, -1000, -1000, -1000, 294, + -1000, -1000, -1000, 274, -1000, 682, 10462, 2971, -1000, 3715, + -1000, -1000, -1000, -1000, -1000, -1000, 1186, 1034, 310, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 222, -1000, -1000, -1000, -1000, - 703, 6262, 6262, 3877, 6262, -1000, -1000, -1000, 757, -1000, - 772, 788, -1000, 711, 710, 5560, -1000, -1000, 141, 174, - -1000, -1000, 261, -1000, -1000, -1000, -1000, 106, 582, -1000, - 1896, -1000, -1000, -1000, -1000, 318, 6710, 6710, 6710, 62, - 1896, 1810, 1301, 1624, 121, 309, 309, 118, 118, 118, - 118, 118, 658, 658, -1000, -1000, -1000, 349, -1000, -1000, - -1000, 349, 5560, 557, -1000, -1000, 6262, -1000, 349, 451, - 451, 375, 372, 574, -1000, 105, 569, 451, 5560, 191, - -1000, 6262, 349, -1000, 451, 349, 451, 451, 478, 582, - -1000, 563, -1000, 171, 657, 597, 639, 730, -1000, -1000, - -1000, -1000, 670, -1000, 640, -1000, -1000, -1000, -1000, -1000, - 68, 67, 66, 10322, -1000, 801, 8977, 523, -1000, -1000, - 538, -129, -93, -1000, -1000, -1000, 252, -1000, 385, 536, - 2401, -1000, -1000, -1000, -1000, -1000, -1000, 592, 755, 173, - 158, 374, -1000, -1000, 733, -1000, 196, -82, -1000, -1000, - 313, -41, -41, -1000, -1000, 116, 715, 116, 116, 116, - 341, 341, -1000, -1000, -1000, -1000, 306, -1000, -1000, -1000, - 301, -1000, 636, 10322, 2893, -1000, 3631, -1000, -1000, -1000, - -1000, -1000, -1000, 565, 206, 198, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 10, -1000, 2893, - -1000, 237, 10770, 10770, 701, 252, 252, 103, -1000, -1000, - 10770, -1000, -1000, -1000, -1000, 532, -1000, -1000, -1000, 3139, - 5560, -1000, 62, 1896, 1682, -1000, 6710, 6710, -1000, -1000, - 451, 5560, 252, -1000, -1000, -1000, 217, 335, 217, 6710, - 6710, 3877, 6710, 6710, -169, 529, 175, -1000, 6262, 228, - -1000, -1000, -1000, -1000, -1000, 625, 10546, 582, -1000, 7848, - 10322, 795, 10546, 6262, 6262, -1000, -1000, 6262, 590, -1000, - 6262, -1000, -1000, -1000, 582, 582, 582, 409, -1000, 795, - 523, -1000, -1000, -1000, -119, -127, -1000, -1000, 2647, -1000, - 2647, 10322, -1000, 367, 365, -1000, -1000, 622, 28, -1000, - -1000, -1000, 417, 116, 116, -1000, 188, -1000, -1000, -1000, - 426, -1000, 422, 530, 420, 10770, -1000, -1000, 520, -1000, - 160, -1000, -1000, 10322, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 10322, 10770, -1000, -1000, - -1000, -1000, -1000, 10322, -1000, -1000, 340, 6262, -1000, -1000, - -1000, 3631, -1000, 801, 8977, -1000, -1000, 349, -1000, 6710, - 1896, 1896, -1000, -1000, 349, 587, 587, -1000, 587, 589, - -1000, 587, -24, 587, -25, -1000, 349, 349, 1571, 1497, - -1000, 1458, 398, 582, -166, -1000, 252, 6262, -1000, 758, - 510, 512, -1000, -1000, 5327, 349, 416, 102, 409, 781, - -1000, 252, 252, 252, 10322, 252, 10322, 10322, 10322, 7624, - 10322, 781, -1000, -1000, -1000, -1000, 2401, -1000, 402, -1000, - 587, -1000, -1000, -68, 815, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -41, 338, -41, 300, - -1000, 299, 2893, 3631, 2647, -1000, 586, -1000, -1000, -1000, - -1000, 760, -1000, 252, 799, 517, -1000, 1896, -1000, -1000, - 78, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 6710, 6710, -1000, 6710, 6710, 6710, 349, 337, 252, 740, - -1000, 582, -1000, -1000, 543, 10322, 10322, -1000, -1000, 400, - -1000, 396, 396, 396, 123, -1000, -1000, 119, 10322, -1000, - 176, -1000, -146, 116, -1000, 116, 397, 373, -1000, -1000, - -1000, 10322, 582, 797, 792, -1000, -1000, 1586, 1586, 1586, - 1586, 13, -1000, -1000, 813, -1000, 582, -1000, 567, 93, - -1000, 10322, -1000, -1000, -1000, -1000, -1000, 119, -1000, 360, - 156, 329, -1000, 232, 739, -1000, 737, -1000, -1000, -1000, - -1000, -1000, 371, 2, -1000, 6262, 6262, -1000, -1000, -1000, - -1000, 349, 48, -178, 10546, 512, 349, 10322, -1000, -1000, - -1000, 297, -1000, -1000, -1000, 324, -1000, -1000, 607, 348, - -1000, 10322, 252, 471, -1000, 700, -172, -181, 424, -1000, - -1000, -1000, -1000, -175, -1000, 2, 709, -1000, 695, -1000, - -1000, -1000, -2, -176, -5, -179, 582, -182, 6486, -1000, - 1586, 349, -1000, -1000, + 12, -1000, 2971, -1000, 214, 10914, 10914, 753, 180, 180, + 80, -1000, -1000, 10914, -1000, -1000, -1000, -1000, 572, -1000, + -1000, -1000, 3219, 5660, -1000, 115, 1611, 1853, -1000, 6818, + 6818, -1000, -1000, 457, 5660, 180, -1000, -1000, -1000, 219, + 309, 219, 6818, 6818, 3963, 6818, 6818, -168, 582, 175, + -1000, 6366, 258, -1000, 602, -1000, -1000, -1000, -1000, 669, + 10688, 602, -1000, 7966, 10462, 860, 10688, 6366, 6366, -1000, + -1000, 6366, 642, -1000, 6366, -1000, -1000, -1000, 602, 602, + 602, 430, -1000, 860, 568, -1000, -1000, -1000, -130, -136, + -1000, -1000, 2723, -1000, 2723, 10462, -1000, 346, 329, -1000, + -1000, 661, 70, -1000, -1000, -1000, 439, 113, 113, -1000, + 148, -1000, -1000, -1000, 454, -1000, 438, 523, 436, 10914, + -1000, -1000, 519, -1000, 165, -1000, -1000, 10462, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 10462, 10914, -1000, -1000, -1000, -1000, -1000, 10462, -1000, -1000, + 338, 6366, -1000, -1000, -1000, 3715, -1000, 865, 9105, -1000, + -1000, 399, -1000, 6818, 1611, 1611, -1000, -1000, 399, 608, + 608, -1000, 608, 631, -1000, 608, -19, 608, -20, -1000, + 399, 399, 686, 1737, -1000, 404, 1356, 602, -158, -1000, + 180, 6366, 11, -1000, 819, 500, 512, -1000, -1000, 5425, + 399, 432, 79, 430, 839, -1000, 180, 180, 180, 10462, + 180, 10462, 10462, 10462, 7740, 10462, 839, -1000, -1000, -1000, + -1000, 2475, -1000, 423, -1000, 608, -1000, -1000, -61, 871, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -36, 337, -36, 271, -1000, 268, 2971, 3715, 2723, + -1000, 605, -1000, -1000, -1000, -1000, 821, -1000, 180, 854, + 515, -1000, 1611, -1000, -1000, 85, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 6818, 6818, -1000, 6818, 6818, + 6818, 399, 335, 180, 859, 855, 815, -1000, 602, -1000, + -1000, 626, 10462, 10462, -1000, -1000, 421, -1000, 408, 408, + 408, 116, -1000, -1000, 106, 10462, -1000, 131, -1000, -141, + 113, -1000, 113, 424, 409, -1000, -1000, -1000, 10462, 602, + 862, 853, -1000, -1000, 917, 917, 917, 917, 7, -1000, + -1000, 852, 6366, 870, -1000, 602, -1000, 594, 78, -1000, + 10462, -1000, -1000, -1000, -1000, -1000, 106, -1000, 312, 163, + 331, -1000, 239, 814, -1000, 812, -1000, -1000, -1000, -1000, + -1000, 398, 9, -1000, 6366, 6366, -1000, -1000, -1000, -1000, + 399, 48, -176, 6366, 513, 180, 10688, 512, 399, 10462, + -1000, -1000, -1000, 252, -1000, -1000, -1000, 313, -1000, -1000, + 604, 362, -1000, 10462, 180, 508, -1000, 752, -171, -180, + 356, 6366, 502, -1000, -1000, -1000, -1000, -173, -1000, 9, + 771, -1000, 732, -1000, -1000, 180, -1000, -1000, 3, -174, + 0, -178, 602, -181, 6592, -1000, 917, 399, -1000, -1000, } var yyPgo = [...]int{ - 0, 1040, 25, 552, 1036, 1032, 1031, 1030, 1029, 1028, - 1027, 1026, 1023, 1019, 1018, 1017, 1016, 1012, 1011, 1010, - 1009, 1003, 1002, 1001, 121, 1000, 999, 998, 65, 995, - 63, 994, 989, 31, 104, 34, 30, 560, 986, 18, - 58, 53, 977, 40, 976, 975, 66, 974, 52, 973, - 972, 1319, 969, 967, 11, 35, 959, 958, 954, 953, - 55, 732, 952, 949, 948, 946, 939, 936, 37, 7, - 6, 32, 12, 933, 246, 8, 932, 46, 929, 928, - 927, 926, 45, 925, 42, 915, 21, 41, 914, 9, - 50, 27, 16, 4, 64, 44, 913, 23, 47, 39, - 912, 911, 340, 910, 909, 908, 907, 906, 904, 136, - 311, 903, 902, 900, 899, 22, 167, 483, 341, 61, - 896, 895, 891, 1285, 57, 59, 15, 889, 38, 1100, - 29, 888, 887, 24, 886, 885, 882, 881, 879, 878, - 877, 385, 876, 875, 874, 51, 54, 873, 872, 43, - 20, 871, 866, 864, 19, 49, 862, 36, 859, 858, - 854, 850, 28, 17, 849, 10, 848, 14, 846, 845, - 2, 843, 13, 842, 5, 838, 3, 33, 837, 836, - 0, 102, 835, 834, 92, + 0, 1089, 21, 553, 1085, 1084, 1083, 1082, 1081, 1080, + 1079, 1078, 1076, 1073, 1072, 1071, 1069, 1066, 1065, 1060, + 1059, 1057, 1056, 1052, 95, 1051, 1048, 1046, 59, 1045, + 63, 1044, 1043, 34, 157, 37, 31, 300, 1041, 36, + 67, 60, 1034, 51, 1033, 1032, 66, 1031, 55, 1030, + 1029, 1438, 1028, 1026, 15, 25, 1022, 1021, 1008, 1005, + 61, 177, 1004, 1003, 1002, 1001, 1000, 999, 44, 5, + 7, 11, 13, 998, 53, 8, 996, 43, 995, 993, + 992, 989, 27, 4, 45, 988, 986, 983, 17, 46, + 982, 14, 52, 26, 23, 9, 65, 50, 980, 29, + 58, 40, 979, 978, 359, 977, 975, 974, 970, 969, + 968, 140, 264, 966, 963, 957, 954, 33, 167, 841, + 586, 64, 951, 948, 947, 1347, 57, 54, 20, 945, + 35, 1153, 41, 943, 939, 30, 938, 937, 936, 930, + 929, 927, 926, 73, 925, 924, 922, 28, 18, 921, + 920, 49, 32, 919, 917, 913, 39, 47, 912, 42, + 910, 909, 908, 904, 24, 19, 900, 10, 899, 6, + 895, 894, 2, 891, 16, 890, 3, 889, 12, 38, + 888, 887, 0, 163, 886, 885, 92, } var yyR1 = [...]int{ - 0, 178, 179, 179, 1, 1, 1, 1, 1, 1, + 0, 180, 181, 181, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 6, 3, 4, 4, 5, - 5, 7, 7, 27, 27, 8, 9, 9, 9, 182, - 182, 46, 46, 90, 90, 10, 10, 10, 10, 95, - 95, 99, 99, 99, 100, 100, 100, 100, 131, 131, - 11, 11, 11, 11, 11, 11, 11, 176, 176, 175, - 174, 174, 173, 173, 172, 16, 159, 160, 160, 160, - 155, 134, 134, 134, 134, 137, 137, 135, 135, 135, - 135, 135, 135, 135, 136, 136, 136, 136, 136, 138, - 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 140, - 140, 140, 140, 140, 140, 140, 140, 154, 154, 141, - 141, 149, 149, 150, 150, 150, 147, 147, 148, 148, - 151, 151, 151, 142, 142, 142, 142, 142, 142, 142, - 144, 144, 152, 152, 145, 145, 145, 146, 146, 153, - 153, 153, 153, 153, 143, 143, 156, 156, 168, 168, - 167, 167, 167, 158, 158, 164, 164, 164, 164, 164, - 157, 157, 166, 166, 165, 161, 161, 161, 162, 162, - 162, 163, 163, 163, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 171, 169, 169, 170, 170, 13, + 5, 7, 7, 27, 27, 8, 9, 9, 9, 184, + 184, 46, 46, 92, 92, 10, 10, 10, 10, 97, + 97, 101, 101, 101, 102, 102, 102, 102, 133, 133, + 11, 11, 11, 11, 11, 11, 11, 178, 178, 177, + 176, 176, 175, 175, 174, 16, 161, 162, 162, 162, + 157, 136, 136, 136, 136, 139, 139, 137, 137, 137, + 137, 137, 137, 137, 138, 138, 138, 138, 138, 140, + 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, + 142, 142, 142, 142, 142, 142, 142, 156, 156, 143, + 143, 151, 151, 152, 152, 152, 149, 149, 150, 150, + 153, 153, 153, 144, 144, 144, 144, 144, 144, 144, + 146, 146, 154, 154, 147, 147, 147, 148, 148, 155, + 155, 155, 155, 155, 145, 145, 158, 158, 170, 170, + 169, 169, 169, 160, 160, 166, 166, 166, 166, 166, + 159, 159, 168, 168, 167, 163, 163, 163, 164, 164, + 164, 165, 165, 165, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 173, 171, 171, 172, 172, 13, 14, 14, 14, 14, 14, 15, 15, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 107, 107, 104, 104, 105, 105, 106, 106, 106, - 108, 108, 108, 132, 132, 132, 19, 19, 21, 21, - 22, 23, 20, 20, 20, 20, 20, 183, 24, 25, + 18, 109, 109, 106, 106, 107, 107, 108, 108, 108, + 110, 110, 110, 134, 134, 134, 19, 19, 21, 21, + 22, 23, 20, 20, 20, 20, 20, 185, 24, 25, 25, 26, 26, 26, 30, 30, 30, 28, 28, 29, - 29, 35, 35, 34, 34, 36, 36, 36, 36, 120, - 120, 120, 119, 119, 38, 38, 39, 39, 40, 40, - 41, 41, 41, 41, 53, 53, 89, 89, 91, 91, + 29, 35, 35, 34, 34, 36, 36, 36, 36, 122, + 122, 122, 121, 121, 38, 38, 39, 39, 40, 40, + 41, 41, 41, 41, 53, 53, 91, 91, 93, 93, 42, 42, 42, 42, 43, 43, 44, 44, 45, 45, - 127, 127, 126, 126, 126, 125, 125, 47, 47, 47, + 129, 129, 128, 128, 128, 127, 127, 47, 47, 47, 49, 48, 48, 48, 48, 50, 50, 52, 52, 51, 51, 54, 54, 54, 54, 55, 55, 37, 37, 37, - 37, 37, 37, 37, 103, 103, 57, 57, 56, 56, + 37, 37, 37, 37, 105, 105, 57, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 67, 67, 67, 67, 67, 67, 58, 58, 58, 58, 58, 58, 58, 58, 33, 33, 68, 68, 68, 74, 69, 69, @@ -1978,41 +1998,42 @@ var yyR1 = [...]int{ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 65, 65, 65, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, - 64, 64, 64, 64, 64, 64, 64, 184, 184, 66, - 66, 66, 66, 31, 31, 31, 31, 31, 130, 130, - 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 133, 133, 78, 78, 32, 32, 76, 76, - 77, 79, 79, 75, 75, 75, 60, 60, 60, 60, - 60, 60, 60, 60, 62, 62, 62, 80, 80, 81, - 81, 82, 82, 83, 83, 84, 85, 85, 85, 86, - 86, 86, 86, 87, 87, 87, 59, 59, 59, 59, - 59, 59, 88, 88, 88, 88, 92, 92, 70, 70, - 72, 72, 71, 73, 93, 93, 97, 94, 94, 98, - 98, 98, 96, 96, 96, 122, 122, 122, 101, 101, - 109, 109, 110, 110, 102, 102, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 112, 112, 112, 113, - 113, 114, 114, 114, 121, 121, 117, 117, 118, 118, - 123, 123, 124, 124, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 180, 181, 128, 129, 129, 129, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 86, 86, 87, 87, 64, 64, 64, 64, 64, 64, + 64, 64, 186, 186, 66, 66, 66, 66, 31, 31, + 31, 31, 31, 132, 132, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 78, + 78, 32, 32, 76, 76, 77, 79, 79, 75, 75, + 75, 60, 60, 60, 60, 60, 60, 60, 60, 62, + 62, 62, 80, 80, 81, 81, 82, 82, 83, 83, + 84, 85, 85, 85, 88, 88, 88, 88, 89, 89, + 89, 59, 59, 59, 59, 59, 59, 90, 90, 90, + 90, 94, 94, 70, 70, 72, 72, 71, 73, 95, + 95, 99, 96, 96, 100, 100, 100, 98, 98, 98, + 124, 124, 124, 103, 103, 111, 111, 112, 112, 104, + 104, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 114, 114, 114, 115, 115, 116, 116, 116, 123, + 123, 119, 119, 120, 120, 125, 125, 126, 126, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 182, + 183, 130, 131, 131, 131, } var yyR2 = [...]int{ @@ -2060,22 +2081,22 @@ var yyR2 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 4, 5, 6, 4, 4, 6, 6, 6, 6, - 8, 8, 6, 8, 8, 9, 7, 5, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, - 4, 4, 4, 0, 3, 4, 7, 3, 1, 1, - 2, 3, 3, 1, 2, 2, 1, 2, 1, 2, - 2, 1, 2, 1, 0, 1, 0, 2, 1, 2, - 4, 0, 2, 1, 3, 5, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 0, 3, 0, - 2, 0, 3, 1, 3, 2, 0, 1, 1, 0, - 2, 4, 4, 0, 2, 4, 2, 1, 3, 5, - 4, 6, 1, 3, 3, 5, 0, 5, 1, 3, - 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, - 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, - 0, 2, 0, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 1, 0, 1, 1, 0, 2, 1, 1, 1, 1, + 8, 8, 6, 8, 8, 9, 7, 5, 4, 10, + 0, 3, 1, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 4, 4, 4, 4, 0, 3, + 4, 7, 3, 1, 1, 2, 3, 3, 1, 2, + 2, 1, 2, 1, 2, 2, 1, 2, 1, 0, + 1, 0, 2, 1, 2, 4, 0, 2, 1, 3, + 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, + 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, + 4, 2, 1, 3, 5, 4, 6, 1, 3, 3, + 5, 0, 5, 1, 3, 1, 2, 3, 1, 1, + 3, 3, 1, 3, 3, 3, 3, 1, 2, 1, + 1, 1, 1, 1, 1, 0, 2, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2094,273 +2115,276 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -178, -1, -2, -6, -7, -8, -9, -10, -11, + -1000, -180, -1, -2, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -17, -18, -19, -21, -22, -23, -20, -3, -4, 6, 7, -27, 9, 10, 30, -16, 113, 114, 116, 115, 141, 117, 134, 49, 153, 154, - 156, 157, 25, 135, 136, 139, 140, -180, 8, 236, - 53, -179, 251, -82, 15, -26, 5, -24, -183, -24, - -24, -24, -24, -24, -159, 53, -114, 122, 70, 149, - 228, 119, 120, 126, -117, 56, -116, 244, 153, 164, + 156, 157, 25, 135, 136, 139, 140, -182, 8, 236, + 53, -181, 253, -82, 15, -26, 5, -24, -185, -24, + -24, -24, -24, -24, -161, 53, -116, 122, 70, 149, + 228, 119, 120, 126, -119, 56, -118, 246, 153, 164, 158, 185, 177, 175, 178, 215, 65, 156, 224, 137, - 173, 169, 167, 27, 190, 249, 168, 132, 131, 191, - 195, 216, 162, 163, 218, 189, 133, 32, 246, 34, + 173, 169, 167, 27, 190, 251, 168, 132, 131, 191, + 195, 216, 162, 163, 218, 189, 133, 32, 248, 34, 145, 219, 193, 188, 184, 187, 161, 183, 38, 197, 196, 198, 214, 180, 170, 18, 222, 140, 143, 192, - 194, 127, 147, 248, 220, 166, 144, 139, 223, 157, + 194, 127, 147, 250, 220, 166, 144, 139, 223, 157, 217, 226, 37, 202, 160, 130, 154, 151, 181, 146, 171, 172, 186, 159, 182, 155, 148, 141, 225, 203, - 250, 179, 176, 152, 150, 207, 208, 209, 210, 247, - 221, 174, 204, -102, 122, 124, 120, 120, 121, 122, - 228, 119, 120, -51, -123, 56, -116, 122, 149, 120, - 107, 178, 113, 205, 121, 32, 147, -132, 120, -104, - 150, 207, 208, 209, 210, 56, 217, 216, 211, -123, - 155, -128, -128, -128, -128, -128, -2, -86, 17, 16, - -5, -3, -180, 6, 20, 21, -30, 39, 40, -25, - -36, 98, -37, -123, -56, 72, -61, 29, 56, -116, + 252, 179, 176, 152, 150, 207, 208, 209, 210, 249, + 221, 174, 204, -104, 122, 124, 120, 120, 121, 122, + 228, 119, 120, -51, -125, 56, -118, 122, 149, 120, + 107, 178, 113, 205, 121, 32, 147, -134, 120, -106, + 150, 207, 208, 209, 210, 56, 217, 216, 211, -125, + 155, -130, -130, -130, -130, -130, -2, -88, 17, 16, + -5, -3, -182, 6, 20, 21, -30, 39, 40, -25, + -36, 98, -37, -125, -56, 72, -61, 29, 56, -118, 23, -60, -57, -75, -73, -74, 107, 108, 96, 97, 104, 73, 109, -65, -63, -64, -66, 58, 57, 66, - 59, 60, 61, 62, 67, 68, 69, -117, -71, -180, - 43, 44, 237, 238, 239, 240, 243, 241, 75, 33, - 227, 235, 234, 233, 231, 232, 229, 230, 125, 228, - 102, 236, -102, -39, -40, -41, -42, -53, -74, -180, - -51, 11, -46, -51, -94, -131, 155, -98, 217, 216, - -118, -96, -117, -115, 215, 178, 214, 118, 71, 22, - 24, 200, 74, 107, 16, 75, 106, 237, 113, 47, - 229, 230, 227, 239, 240, 228, 205, 29, 10, 25, - 135, 21, 100, 115, 78, 79, 138, 23, 136, 69, - 19, 50, 11, 13, 14, 125, 124, 90, 121, 45, - 8, 109, 26, 87, 41, 28, 43, 88, 17, 231, - 232, 31, 243, 142, 102, 48, 35, 72, 67, 51, - 70, 15, 46, 89, 116, 236, 44, 119, 6, 242, - 30, 134, 42, 120, 206, 77, 123, 68, 5, 126, - 9, 49, 52, 233, 234, 235, 33, 76, 12, -160, - -155, 56, 121, -51, 236, -117, -110, 125, -110, -110, - 120, -51, -51, -109, 125, 56, -109, -109, -109, -51, - 110, -51, 56, 30, 228, 56, 147, 120, 148, 122, - -129, -180, -118, -129, -129, -129, 151, 152, -129, -105, - 212, 51, -129, -181, 55, -87, 19, 31, -37, -123, - -83, -84, -37, -82, -2, -24, 35, -28, 21, 64, - 11, -120, 71, 70, 87, -119, 22, -117, 58, 110, - -37, -58, 90, 72, 88, 89, 74, 93, 92, 103, - 96, 97, 98, 99, 100, 101, 102, 94, 95, 106, - 80, 81, 82, 83, 84, 85, 86, 91, -103, -180, - -74, -180, 111, 112, -61, -61, -61, -61, -61, -61, - -61, -180, -2, -69, -37, -180, -180, -180, -180, -180, - -180, -180, -180, -180, -78, -37, -180, -184, -180, -184, - -184, -184, -184, -184, -184, -184, -180, -180, -180, -180, - -52, 26, -51, 30, 54, -47, -49, -48, -50, 41, - 45, 47, 42, 43, 44, 48, -127, 22, -39, -180, - -126, 143, -125, 22, -123, 58, -51, -46, -182, 54, - 11, 52, 54, -94, 155, -95, -99, 218, 220, 80, - -122, -117, 58, 29, 30, 55, 54, -134, -137, -139, - -138, -140, -135, -136, 175, 176, 107, 179, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 30, 137, - 171, 172, 173, 174, 191, 192, 193, 194, 195, 196, - 197, 198, 158, 159, 160, 161, 162, 163, 164, 166, - 167, 168, 169, 170, 56, -129, 122, -176, 52, 56, - 72, 56, -51, -51, -129, 123, -51, 23, 51, -51, - 56, 56, -124, -123, -115, -129, -129, -129, -129, -129, - -129, -129, -129, -129, -129, -107, 206, 213, -51, 9, - 90, 54, 18, 110, 54, -85, 24, 25, -86, -181, - -30, -62, -117, 59, 62, -29, 42, -51, -37, -37, - -67, 67, 72, 68, 69, -119, 98, -124, -118, -115, - -61, -68, -71, -74, 63, 90, 88, 89, 74, -61, - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -130, 56, 58, 56, -60, -60, - -117, -35, 21, -34, -36, -181, 54, -181, -2, -34, - -34, -37, -37, -75, -117, -123, -75, -34, -28, -76, - -77, 76, -75, -181, -34, -35, -34, -34, -90, 143, - -51, -93, -97, -75, -40, -41, -41, -40, -41, 41, - 41, 41, 46, 41, 46, 41, -48, -123, -181, -54, - 49, 124, 50, -180, -125, -90, 52, -39, -51, -98, - -95, 54, 219, 221, 222, 51, -37, -146, 106, -161, - -162, -163, -118, 58, 59, -155, -156, -164, 127, 130, - 126, -157, 121, 28, -151, 67, 72, -147, 203, -141, - 53, -141, -141, -141, -141, -145, 178, -145, -145, -145, - 53, 53, -141, -141, -141, -149, 53, -149, -149, -150, - 53, -150, -121, 52, -51, -174, 247, -175, 56, -129, - 23, -129, -111, 118, 115, 116, -171, 114, 200, 178, - 65, 29, 15, 237, 143, 250, 56, 144, -51, -51, - -129, -106, 11, 90, 37, -37, -37, -124, -84, -87, - -101, 19, 11, 33, 33, -34, 67, 68, 69, 110, - -180, -68, -61, -61, -61, -33, 138, 71, -181, -181, - -34, 54, -37, -181, -181, -181, 54, 52, 22, 54, - 11, 110, 54, 11, -181, -34, -79, -77, 78, -37, - -181, -181, -181, -181, -181, -59, 30, 33, -2, -180, - -180, -55, 54, 12, 80, -44, -43, 51, 52, -45, - 51, -43, 41, 41, 121, 121, 121, -91, -117, -55, - -39, -55, -99, -100, 223, 220, 226, 56, 54, -163, - 80, 53, 28, -157, -157, 56, 56, -142, 29, 67, - -148, 204, 59, -145, -145, -146, 30, -146, -146, -146, - -154, 58, -154, 59, 59, 51, -117, -129, -173, -172, - -118, -128, -177, 149, 128, 129, 132, 131, 56, 121, - 28, 127, 130, 143, 126, -177, 149, -112, -113, 123, - 22, 121, 28, 143, -129, -108, 88, 12, -123, -123, - 38, 110, -51, -38, 11, 98, -118, -35, -33, 71, - -61, -61, -181, -36, -133, 107, 175, 137, 173, 169, - 189, 180, 202, 171, 203, 172, -130, -133, -61, -61, - -118, -61, -61, 244, -82, 79, -37, 77, -92, 51, - -93, -70, -72, -71, -180, -2, -88, -117, -91, -82, - -97, -37, -37, -37, 53, -37, -180, -180, -180, -181, - 54, -82, -55, 220, 224, 225, -162, -163, -166, -165, - -117, 56, 56, -144, 51, 58, 59, 60, 67, 227, - 66, 55, -146, -146, 56, 107, 55, 54, 55, 54, - 55, 54, -51, 54, 80, -128, -117, -128, -117, -51, - -128, -117, 58, -37, -55, -39, -181, -61, -181, -141, - -141, -141, -150, -141, 163, -141, 163, -181, -181, -181, - 54, 19, -181, 54, 19, -180, -32, 242, -37, 27, - -92, 54, -181, -181, -181, 54, 110, -181, -86, -89, - -117, -89, -89, -89, -126, -117, -86, 55, 54, -141, - -152, 200, 9, -145, 58, -145, 59, 59, -129, -172, - -163, 53, 26, -80, 13, -145, 56, -61, -61, -61, - -61, -61, -181, 58, 28, -72, 33, -2, -180, -117, - -117, 54, 55, -181, -181, -181, -54, -168, -167, 52, - 133, 65, -165, -153, 127, 28, 126, 227, -146, -146, - 55, 55, -89, -180, -81, 14, 16, -181, -181, -181, - -181, -31, 90, 247, 9, -70, -2, 110, -117, -167, - 56, -158, 80, 58, -143, 65, 28, 28, 55, -169, - -170, 143, -37, -69, -181, 245, 48, 248, -93, -181, - -117, 59, 58, -176, -181, 54, -117, 38, 246, 249, - -174, -170, 33, 38, 145, 247, 146, 248, -180, 249, - -61, 142, -181, -181, + 59, 60, 61, 62, 67, 68, 69, -119, -71, -182, + 43, 44, 237, 238, 239, 240, 245, 241, 75, 33, + 243, 227, 235, 234, 233, 231, 232, 229, 230, 125, + 228, 102, 236, -104, -39, -40, -41, -42, -53, -74, + -182, -51, 11, -46, -51, -96, -133, 155, -100, 217, + 216, -120, -98, -119, -117, 215, 178, 214, 118, 71, + 22, 24, 200, 74, 107, 16, 75, 106, 237, 113, + 47, 229, 230, 227, 239, 240, 228, 205, 29, 10, + 25, 135, 21, 100, 115, 78, 79, 138, 23, 136, + 69, 19, 50, 11, 13, 14, 125, 124, 90, 121, + 45, 8, 109, 26, 87, 41, 28, 43, 88, 17, + 231, 232, 31, 245, 142, 102, 48, 35, 72, 67, + 51, 70, 15, 46, 89, 116, 236, 44, 119, 6, + 242, 30, 134, 42, 120, 206, 77, 123, 68, 5, + 126, 9, 49, 52, 233, 234, 235, 33, 76, 12, + -162, -157, 56, 121, -51, 236, -119, -112, 125, -112, + -112, 120, -51, -51, -111, 125, 56, -111, -111, -111, + -51, 110, -51, 56, 30, 228, 56, 147, 120, 148, + 122, -131, -182, -120, -131, -131, -131, 151, 152, -131, + -107, 212, 51, -131, -183, 55, -89, 19, 31, -37, + -125, -83, -84, -37, -82, -2, -24, 35, -28, 21, + 64, 11, -122, 71, 70, 87, -121, 22, -119, 58, + 110, -37, -58, 90, 72, 88, 89, 74, 93, 92, + 103, 96, 97, 98, 99, 100, 101, 102, 94, 95, + 106, 80, 81, 82, 83, 84, 85, 86, 91, -105, + -182, -74, -182, 111, 112, -61, -61, -61, -61, -61, + -61, -61, -182, -2, -69, -37, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -78, -37, -182, -182, -186, + -182, -186, -186, -186, -186, -186, -186, -186, -182, -182, + -182, -182, -52, 26, -51, 30, 54, -47, -49, -48, + -50, 41, 45, 47, 42, 43, 44, 48, -129, 22, + -39, -182, -128, 143, -127, 22, -125, 58, -51, -46, + -184, 54, 11, 52, 54, -96, 155, -97, -101, 218, + 220, 80, -124, -119, 58, 29, 30, 55, 54, -136, + -139, -141, -140, -142, -137, -138, 175, 176, 107, 179, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 30, 137, 171, 172, 173, 174, 191, 192, 193, 194, + 195, 196, 197, 198, 158, 159, 160, 161, 162, 163, + 164, 166, 167, 168, 169, 170, 56, -131, 122, -178, + 52, 56, 72, 56, -51, -51, -131, 123, -51, 23, + 51, -51, 56, 56, -126, -125, -117, -131, -131, -131, + -131, -131, -131, -131, -131, -131, -131, -109, 206, 213, + -51, 9, 90, 54, 18, 110, 54, -85, 24, 25, + -88, -183, -30, -62, -119, 59, 62, -29, 42, -51, + -37, -37, -67, 67, 72, 68, 69, -121, 98, -126, + -120, -117, -61, -68, -71, -74, 63, 90, 88, 89, + 74, -61, -61, -61, -61, -61, -61, -61, -61, -61, + -61, -61, -61, -61, -61, -61, -132, 56, 58, 56, + -60, -60, -119, -35, 21, -34, -36, -183, 54, -183, + -2, -34, -34, -37, -37, -75, -119, -125, -75, -34, + -28, -76, -77, 76, -75, -183, -183, -34, -35, -34, + -34, -92, 143, -51, -95, -99, -75, -40, -41, -41, + -40, -41, 41, 41, 41, 46, 41, 46, 41, -48, + -125, -183, -54, 49, 124, 50, -182, -127, -92, 52, + -39, -51, -100, -97, 54, 219, 221, 222, 51, -37, + -148, 106, -163, -164, -165, -120, 58, 59, -157, -158, + -166, 127, 130, 126, -159, 121, 28, -153, 67, 72, + -149, 203, -143, 53, -143, -143, -143, -143, -147, 178, + -147, -147, -147, 53, 53, -143, -143, -143, -151, 53, + -151, -151, -152, 53, -152, -123, 52, -51, -176, 249, + -177, 56, -131, 23, -131, -113, 118, 115, 116, -173, + 114, 200, 178, 65, 29, 15, 237, 143, 252, 56, + 144, -51, -51, -131, -108, 11, 90, 37, -37, -37, + -126, -84, -89, -103, 19, 11, 33, 33, -34, 67, + 68, 69, 110, -182, -68, -61, -61, -61, -33, 138, + 71, -183, -183, -34, 54, -37, -183, -183, -183, 54, + 52, 22, 54, 11, 110, 54, 11, -183, -34, -79, + -77, 78, -37, -183, 244, -183, -183, -183, -183, -59, + 30, 33, -2, -182, -182, -55, 54, 12, 80, -44, + -43, 51, 52, -45, 51, -43, 41, 41, 121, 121, + 121, -93, -119, -55, -39, -55, -101, -102, 223, 220, + 226, 56, 54, -165, 80, 53, 28, -159, -159, 56, + 56, -144, 29, 67, -150, 204, 59, -147, -147, -148, + 30, -148, -148, -148, -156, 58, -156, 59, 59, 51, + -119, -131, -175, -174, -120, -130, -179, 149, 128, 129, + 132, 131, 56, 121, 28, 127, 130, 143, 126, -179, + 149, -114, -115, 123, 22, 121, 28, 143, -131, -110, + 88, 12, -125, -125, 38, 110, -51, -38, 11, 98, + -120, -35, -33, 71, -61, -61, -183, -36, -135, 107, + 175, 137, 173, 169, 189, 180, 202, 171, 203, 172, + -132, -135, -61, -61, -120, -61, -61, 246, -82, 79, + -37, 77, -182, -94, 51, -95, -70, -72, -71, -182, + -2, -90, -119, -93, -82, -99, -37, -37, -37, 53, + -37, -182, -182, -182, -183, 54, -82, -55, 220, 224, + 225, -164, -165, -168, -167, -119, 56, 56, -146, 51, + 58, 59, 60, 67, 227, 66, 55, -148, -148, 56, + 107, 55, 54, 55, 54, 55, 54, -51, 54, 80, + -130, -119, -130, -119, -51, -130, -119, 58, -37, -55, + -39, -183, -61, -183, -143, -143, -143, -152, -143, 163, + -143, 163, -183, -183, -183, 54, 19, -183, 54, 19, + -182, -32, 242, -37, -86, 143, 27, -94, 54, -183, + -183, -183, 54, 110, -183, -88, -91, -119, -91, -91, + -91, -128, -119, -88, 55, 54, -143, -154, 200, 9, + -147, 58, -147, 59, 59, -131, -174, -165, 53, 26, + -80, 13, -147, 56, -61, -61, -61, -61, -61, -183, + 58, 15, 16, 28, -72, 33, -2, -182, -119, -119, + 54, 55, -183, -183, -183, -54, -170, -169, 52, 133, + 65, -167, -155, 127, 28, 126, 227, -148, -148, 55, + 55, -91, -182, -81, 14, 16, -183, -183, -183, -183, + -31, 90, 249, 16, -87, -37, 9, -70, -2, 110, + -119, -169, 56, -160, 80, 58, -145, 65, 28, 28, + 55, -171, -172, 143, -37, -69, -183, 247, 48, 250, + -83, 54, -95, -183, -119, 59, 58, -178, -183, 54, + -119, 38, 248, 251, -183, -37, -176, -172, 33, 38, + 145, 249, 146, 250, -182, 251, -61, 142, -183, -183, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 511, 0, 277, 277, 277, 277, 277, 277, 0, - 581, 564, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 786, 786, 786, 786, 786, 0, 33, 34, - 784, 1, 3, 519, 0, 0, 281, 284, 279, 0, - 564, 0, 0, 0, 60, 0, 0, 773, 0, 774, - 562, 562, 562, 582, 583, 586, 587, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, - 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, - 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 772, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 0, 0, 565, 0, 560, 0, 560, - 560, 560, 0, 226, 349, 590, 591, 773, 774, 0, - 0, 0, 0, 787, 787, 787, 787, 0, 787, 255, - 244, 246, 247, 248, 249, 787, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 523, 0, 0, - 511, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 21, 516, 0, 277, 277, 277, 277, 277, 277, 0, + 586, 569, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 791, 791, 791, 791, 791, 0, 33, 34, + 789, 1, 3, 524, 0, 0, 281, 284, 279, 0, + 569, 0, 0, 0, 60, 0, 0, 778, 0, 779, + 567, 567, 567, 587, 588, 591, 592, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, + 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, + 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 0, 0, 570, 0, 565, 0, 565, + 565, 565, 0, 226, 349, 595, 596, 778, 779, 0, + 0, 0, 0, 792, 792, 792, 792, 0, 792, 255, + 244, 246, 247, 248, 249, 792, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 528, 0, 0, + 516, 29, 0, 277, 282, 283, 287, 285, 286, 278, 0, 295, 299, 0, 357, 0, 362, 364, -2, -2, 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, - 0, 0, 0, 427, 428, 429, 430, 496, 497, 498, - 499, 500, 501, 502, 503, 366, 367, 493, 543, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 484, 0, - 457, 457, 457, 457, 457, 457, 457, 457, 0, 0, - 0, 0, 0, 0, 306, 308, 309, 310, -2, 0, - 332, 0, 0, 41, 45, 0, 764, 547, -2, -2, - 0, 0, 588, 589, -2, 693, -2, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 0, - 77, 0, 0, 787, 0, 67, 0, 0, 0, 0, - 0, 787, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 227, 787, 787, 787, 787, 787, 787, 787, 787, - 236, 788, 789, 237, 238, 239, 787, 787, 241, 0, - 256, 0, 250, 28, 785, 22, 0, 0, 520, 0, - 512, 513, 516, 519, 27, 284, 0, 289, 288, 280, - 0, 296, 0, 0, 0, 300, 0, 302, 303, 0, - 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 384, 385, 386, 387, 388, 389, 390, 391, 363, 0, - 377, 0, 0, 0, 420, 421, 422, 423, 424, 425, - 0, 291, 27, 0, 398, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 485, 0, 449, 0, 450, - 451, 452, 453, 454, 455, 456, 0, 291, 0, 0, - 43, 0, 348, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 340, 0, 0, 0, 0, 331, 0, 0, - 351, 737, 333, 0, 335, 336, -2, 0, 0, 0, - 39, 40, 0, 46, 764, 48, 49, 0, 0, 0, - 157, 555, 556, 557, 553, 185, 0, 140, 136, 82, - 83, 84, 129, 86, 129, 129, 129, 129, 154, 154, - 154, 154, 112, 113, 114, 115, 116, 0, 0, 99, - 129, 129, 129, 103, 119, 120, 121, 122, 123, 124, - 125, 126, 87, 88, 89, 90, 91, 92, 93, 131, - 131, 131, 133, 133, 584, 62, 0, 70, 0, 787, - 0, 787, 75, 0, 201, 0, 220, 561, 0, 787, - 223, 224, 350, 592, 593, 228, 229, 230, 231, 232, - 233, 234, 235, 240, 243, 257, 251, 252, 245, 524, - 0, 0, 0, 0, 0, 515, 517, 518, 523, 30, - 287, 0, 504, 0, 0, 0, 290, 25, 358, 359, - 361, 378, 0, 380, 382, 301, 297, 0, 494, -2, - 368, 369, 394, 395, 396, 0, 0, 0, 0, 392, - 373, 0, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 419, 468, 469, 0, 417, 418, - 426, 0, 0, 292, 293, 397, 0, 542, 27, 0, - 0, 0, 0, 0, 493, 0, 0, 0, 0, 491, - 488, 0, 0, 458, 0, 0, 0, 0, 0, 0, - 347, 355, 544, 0, 307, 326, 328, 0, 323, 338, - 339, 341, 0, 343, 0, 345, 346, 312, 313, 314, - 0, 0, 0, 0, 334, 355, 0, 355, 42, 548, - 47, 0, 0, 52, 53, 549, 550, 551, 0, 76, - 186, 188, 191, 192, 193, 78, 79, 0, 0, 0, - 0, 0, 180, 181, 143, 141, 0, 138, 137, 85, - 0, 154, 154, 106, 107, 157, 0, 157, 157, 157, - 0, 0, 100, 101, 102, 94, 0, 95, 96, 97, - 0, 98, 0, 0, 787, 64, 0, 68, 69, 65, - 563, 66, 786, 0, 0, 576, 202, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 0, 219, 787, - 222, 260, 0, 0, 0, 521, 522, 0, 514, 23, - 0, 558, 559, 505, 506, 304, 379, 381, 383, 0, - 291, 370, 392, 374, 0, 371, 0, 0, 365, 431, - 0, 0, 399, -2, 434, 435, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 511, 0, 489, 0, 0, - 448, 459, 460, 461, 462, 536, 0, 0, -2, 0, - 0, 511, 0, 0, 0, 320, 327, 0, 0, 321, - 0, 322, 342, 344, 0, 0, 0, 0, 318, 511, - 355, 38, 50, 51, 0, 0, 57, 158, 0, 189, - 0, 0, 175, 0, 0, 178, 179, 150, 0, 142, - 81, 139, 0, 157, 157, 108, 0, 109, 110, 111, - 0, 127, 0, 0, 0, 0, 585, 63, 71, 72, - 0, 194, 786, 0, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 786, 0, 0, 786, 577, - 578, 579, 580, 0, 221, 242, 0, 0, 258, 259, - 525, 0, 24, 355, 0, 298, 495, 0, 372, 0, - 393, 375, 432, 294, 0, 129, 129, 473, 129, 133, - 476, 129, 478, 129, 481, 483, 0, 0, 0, 0, - 494, 0, 0, 0, 486, 447, 492, 0, 31, 0, - 536, 526, 538, 540, 0, 27, 0, 532, 0, 519, - 545, 356, 546, 324, 0, 329, 0, 0, 0, 332, - 0, 519, 37, 54, 55, 56, 187, 190, 0, 182, - 129, 176, 177, 152, 0, 144, 145, 146, 147, 148, - 149, 130, 104, 105, 155, 156, 154, 0, 154, 0, - 134, 0, 787, 0, 0, 195, 0, 196, 198, 199, - 200, 0, 261, 262, 507, 305, 433, 376, 436, 470, - 154, 474, 475, 477, 479, 480, 482, 438, 437, 439, - 0, 0, 442, 0, 0, 0, 0, 0, 490, 0, - 32, 0, 541, -2, 0, 0, 0, 44, 35, 0, - 316, 0, 0, 0, 351, 319, 36, 167, 0, 184, - 159, 153, 0, 157, 128, 157, 0, 0, 61, 73, - 74, 0, 0, 509, 0, 471, 472, 0, 0, 0, - 0, 463, 446, 487, 0, 539, 0, -2, 0, 534, - 533, 0, 325, 352, 353, 354, 315, 166, 168, 0, - 173, 0, 183, 164, 0, 161, 163, 151, 117, 118, - 132, 135, 0, 0, 26, 0, 0, 440, 441, 443, - 444, 0, 0, 0, 0, 529, 27, 0, 317, 169, - 170, 0, 174, 172, 80, 0, 160, 162, 67, 0, - 215, 0, 510, 508, 445, 0, 0, 0, 537, -2, - 535, 171, 165, 70, 214, 0, 0, 464, 0, 467, - 197, 216, 0, 465, 0, 0, 0, 0, 0, 466, - 0, 0, 217, 218, + 0, 0, 0, 427, 428, 429, 430, 501, 502, 503, + 504, 505, 506, 507, 508, 366, 367, 498, 548, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, + 0, 462, 462, 462, 462, 462, 462, 462, 462, 0, + 0, 0, 0, 0, 0, 306, 308, 309, 310, -2, + 0, 332, 0, 0, 41, 45, 0, 769, 552, -2, + -2, 0, 0, 593, 594, -2, 698, -2, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 0, 77, 0, 0, 792, 0, 67, 0, 0, 0, + 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 227, 792, 792, 792, 792, 792, 792, 792, + 792, 236, 793, 794, 237, 238, 239, 792, 792, 241, + 0, 256, 0, 250, 28, 790, 22, 0, 0, 525, + 0, 517, 518, 521, 524, 27, 284, 0, 289, 288, + 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, + 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 384, 385, 386, 387, 388, 389, 390, 391, 363, + 0, 377, 0, 0, 0, 420, 421, 422, 423, 424, + 425, 0, 291, 27, 0, 398, 0, 0, 0, 0, + 0, 0, 0, 0, 287, 0, 490, 0, 0, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 0, 291, + 0, 0, 43, 0, 348, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 340, 0, 0, 0, 0, 331, + 0, 0, 351, 742, 333, 0, 335, 336, -2, 0, + 0, 0, 39, 40, 0, 46, 769, 48, 49, 0, + 0, 0, 157, 560, 561, 562, 558, 185, 0, 140, + 136, 82, 83, 84, 129, 86, 129, 129, 129, 129, + 154, 154, 154, 154, 112, 113, 114, 115, 116, 0, + 0, 99, 129, 129, 129, 103, 119, 120, 121, 122, + 123, 124, 125, 126, 87, 88, 89, 90, 91, 92, + 93, 131, 131, 131, 133, 133, 589, 62, 0, 70, + 0, 792, 0, 792, 75, 0, 201, 0, 220, 566, + 0, 792, 223, 224, 350, 597, 598, 228, 229, 230, + 231, 232, 233, 234, 235, 240, 243, 257, 251, 252, + 245, 529, 0, 0, 0, 0, 0, 520, 522, 523, + 528, 30, 287, 0, 509, 0, 0, 0, 290, 25, + 358, 359, 361, 378, 0, 380, 382, 301, 297, 0, + 499, -2, 368, 369, 394, 395, 396, 0, 0, 0, + 0, 392, 373, 0, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 419, 473, 474, 0, + 417, 418, 426, 0, 0, 292, 293, 397, 0, 547, + 27, 0, 0, 0, 0, 0, 498, 0, 0, 0, + 0, 496, 493, 0, 0, 0, 463, 0, 0, 0, + 0, 0, 0, 347, 355, 549, 0, 307, 326, 328, + 0, 323, 338, 339, 341, 0, 343, 0, 345, 346, + 312, 313, 314, 0, 0, 0, 0, 334, 355, 0, + 355, 42, 553, 47, 0, 0, 52, 53, 554, 555, + 556, 0, 76, 186, 188, 191, 192, 193, 78, 79, + 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, + 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, + 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, + 95, 96, 97, 0, 98, 0, 0, 792, 64, 0, + 68, 69, 65, 568, 66, 791, 0, 0, 581, 202, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 0, 219, 792, 222, 260, 0, 0, 0, 526, 527, + 0, 519, 23, 0, 563, 564, 510, 511, 304, 379, + 381, 383, 0, 291, 370, 392, 374, 0, 371, 0, + 0, 365, 431, 0, 0, 399, -2, 434, 435, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, + 494, 0, 0, 448, 0, 464, 465, 466, 467, 541, + 0, 0, -2, 0, 0, 516, 0, 0, 0, 320, + 327, 0, 0, 321, 0, 322, 342, 344, 0, 0, + 0, 0, 318, 516, 355, 38, 50, 51, 0, 0, + 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, + 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, + 0, 109, 110, 111, 0, 127, 0, 0, 0, 0, + 590, 63, 71, 72, 0, 194, 791, 0, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 791, + 0, 0, 791, 582, 583, 584, 585, 0, 221, 242, + 0, 0, 258, 259, 530, 0, 24, 355, 0, 298, + 500, 0, 372, 0, 393, 375, 432, 294, 0, 129, + 129, 478, 129, 133, 481, 129, 483, 129, 486, 488, + 0, 0, 0, 0, 499, 0, 0, 0, 491, 447, + 497, 0, 450, 31, 0, 541, 531, 543, 545, 0, + 27, 0, 537, 0, 524, 550, 356, 551, 324, 0, + 329, 0, 0, 0, 332, 0, 524, 37, 54, 55, + 56, 187, 190, 0, 182, 129, 176, 177, 152, 0, + 144, 145, 146, 147, 148, 149, 130, 104, 105, 155, + 156, 154, 0, 154, 0, 134, 0, 792, 0, 0, + 195, 0, 196, 198, 199, 200, 0, 261, 262, 512, + 305, 433, 376, 436, 475, 154, 479, 480, 482, 484, + 485, 487, 438, 437, 439, 0, 0, 442, 0, 0, + 0, 0, 0, 495, 0, 0, 0, 32, 0, 546, + -2, 0, 0, 0, 44, 35, 0, 316, 0, 0, + 0, 351, 319, 36, 167, 0, 184, 159, 153, 0, + 157, 128, 157, 0, 0, 61, 73, 74, 0, 0, + 514, 0, 476, 477, 0, 0, 0, 0, 468, 446, + 492, 0, 0, 0, 544, 0, -2, 0, 539, 538, + 0, 325, 352, 353, 354, 315, 166, 168, 0, 173, + 0, 183, 164, 0, 161, 163, 151, 117, 118, 132, + 135, 0, 0, 26, 0, 0, 440, 441, 443, 444, + 0, 0, 0, 0, 451, 452, 0, 534, 27, 0, + 317, 169, 170, 0, 174, 172, 80, 0, 160, 162, + 67, 0, 215, 0, 515, 513, 445, 0, 0, 0, + 0, 0, 542, -2, 540, 171, 165, 70, 214, 0, + 0, 469, 0, 472, 449, 453, 197, 216, 0, 470, + 0, 0, 0, 0, 0, 471, 0, 0, 217, 218, } var yyTok1 = [...]int{ @@ -2369,7 +2393,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 73, 3, 3, 3, 101, 93, 3, 53, 55, 98, 96, 54, 97, 110, 99, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 251, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 253, 81, 80, 82, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -2403,7 +2427,7 @@ var yyTok2 = [...]int{ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, + 249, 250, 251, 252, } var yyTok3 = [...]int{ 0, @@ -2748,29 +2772,29 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:302 + //line sql.y:305 { setParseTree(yylex, yyDollar[1].statement) } case 2: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:307 + //line sql.y:310 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:308 + //line sql.y:311 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:312 + //line sql.y:315 { yyVAL.statement = yyDollar[1].selStmt } case 22: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:335 + //line sql.y:338 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2780,55 +2804,55 @@ yydefault: } case 23: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:343 + //line sql.y:346 { yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} } case 24: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:347 + //line sql.y:350 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} } case 25: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:353 + //line sql.y:356 { yyVAL.statement = &Stream{Comments: Comments(yyDollar[2].bytes2), SelectExpr: yyDollar[3].selectExpr, Table: yyDollar[5].tableName} } case 26: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:360 + //line sql.y:363 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:366 + //line sql.y:369 { yyVAL.selStmt = yyDollar[1].selStmt } case 28: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:370 + //line sql.y:373 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:376 + //line sql.y:379 { yyVAL.selStmt = yyDollar[1].selStmt } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:380 + //line sql.y:383 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 31: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:387 + //line sql.y:390 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].ins @@ -2842,7 +2866,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:399 + //line sql.y:402 { cols := make(Columns, 0, len(yyDollar[7].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[8].updateExprs)) @@ -2854,193 +2878,193 @@ yydefault: } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:411 + //line sql.y:414 { yyVAL.str = InsertStr } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:415 + //line sql.y:418 { yyVAL.str = ReplaceStr } case 35: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:421 + //line sql.y:424 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), TableExprs: yyDollar[3].tableExprs, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } case 36: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:427 + //line sql.y:430 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[4].tableName}}, Partitions: yyDollar[5].partitions, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } case 37: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:431 + //line sql.y:434 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[4].tableNames, TableExprs: yyDollar[6].tableExprs, Where: NewWhere(WhereStr, yyDollar[7].expr)} } case 38: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:435 + //line sql.y:438 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[3].tableNames, TableExprs: yyDollar[5].tableExprs, Where: NewWhere(WhereStr, yyDollar[6].expr)} } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:440 + //line sql.y:443 { } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:441 + //line sql.y:444 { } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:445 + //line sql.y:448 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 42: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:449 + //line sql.y:452 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } case 43: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:454 + //line sql.y:457 { yyVAL.partitions = nil } case 44: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:458 + //line sql.y:461 { yyVAL.partitions = yyDollar[3].partitions } case 45: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:464 + //line sql.y:467 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 46: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:468 + //line sql.y:471 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[4].setExprs} } case 47: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:472 + //line sql.y:475 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[5].setExprs} } case 48: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:476 + //line sql.y:479 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[4].setExprs} } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:482 + //line sql.y:485 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 50: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:486 + //line sql.y:489 { yyVAL.setExprs = append(yyVAL.setExprs, yyDollar[3].setExpr) } case 51: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:492 + //line sql.y:495 { yyVAL.setExpr = yyDollar[3].setExpr } case 52: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:496 + //line sql.y:499 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("0"))} } case 53: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:500 + //line sql.y:503 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("1"))} } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:506 + //line sql.y:509 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("repeatable read"))} } case 55: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:510 + //line sql.y:513 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read committed"))} } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:514 + //line sql.y:517 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read uncommitted"))} } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:518 + //line sql.y:521 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("serializable"))} } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:524 + //line sql.y:527 { yyVAL.str = SessionStr } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:528 + //line sql.y:531 { yyVAL.str = GlobalStr } case 60: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:534 + //line sql.y:537 { yyDollar[1].ddl.TableSpec = yyDollar[2].TableSpec yyVAL.statement = yyDollar[1].ddl } case 61: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:539 + //line sql.y:542 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} } case 62: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:544 + //line sql.y:547 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} } case 63: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:548 + //line sql.y:551 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} } case 64: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:552 + //line sql.y:555 { yyVAL.statement = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ Name: yyDollar[3].colIdent, @@ -3050,102 +3074,102 @@ yydefault: } case 65: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:560 + //line sql.y:563 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } case 66: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:564 + //line sql.y:567 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } case 67: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:569 + //line sql.y:572 { yyVAL.colIdent = NewColIdent("") } case 68: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:573 + //line sql.y:576 { yyVAL.colIdent = yyDollar[2].colIdent } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:579 + //line sql.y:582 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 70: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:584 + //line sql.y:587 { var v []VindexParam yyVAL.vindexParams = v } case 71: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:589 + //line sql.y:592 { yyVAL.vindexParams = yyDollar[2].vindexParams } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:595 + //line sql.y:598 { yyVAL.vindexParams = make([]VindexParam, 0, 4) yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[1].vindexParam) } case 73: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:600 + //line sql.y:603 { yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[3].vindexParam) } case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:606 + //line sql.y:609 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } case 75: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:612 + //line sql.y:615 { yyVAL.ddl = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } case 76: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:619 + //line sql.y:622 { yyVAL.TableSpec = yyDollar[2].TableSpec yyVAL.TableSpec.Options = yyDollar[4].str } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:626 + //line sql.y:629 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) } case 78: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:631 + //line sql.y:634 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) } case 79: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:635 + //line sql.y:638 { yyVAL.TableSpec.AddIndex(yyDollar[3].indexDefinition) } case 80: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:641 + //line sql.y:644 { yyDollar[2].columnType.NotNull = yyDollar[3].boolVal yyDollar[2].columnType.Default = yyDollar[4].optVal @@ -3157,7 +3181,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:652 + //line sql.y:655 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal @@ -3165,62 +3189,62 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:663 + //line sql.y:666 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:668 + //line sql.y:671 { yyVAL.columnType = yyDollar[1].columnType } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:674 + //line sql.y:677 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:678 + //line sql.y:681 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:682 + //line sql.y:685 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:686 + //line sql.y:689 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 91: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:690 + //line sql.y:693 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:694 + //line sql.y:697 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 93: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:698 + //line sql.y:701 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 94: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:704 + //line sql.y:707 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3228,7 +3252,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:710 + //line sql.y:713 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3236,7 +3260,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:716 + //line sql.y:719 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3244,7 +3268,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:722 + //line sql.y:725 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3252,7 +3276,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:728 + //line sql.y:731 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3260,206 +3284,206 @@ yydefault: } case 99: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:736 + //line sql.y:739 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 100: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:740 + //line sql.y:743 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:744 + //line sql.y:747 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 102: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:748 + //line sql.y:751 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 103: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:752 + //line sql.y:755 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 104: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:758 + //line sql.y:761 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 105: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:762 + //line sql.y:765 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:766 + //line sql.y:769 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 107: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:770 + //line sql.y:773 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:774 + //line sql.y:777 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 109: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:778 + //line sql.y:781 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 110: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:782 + //line sql.y:785 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:786 + //line sql.y:789 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:790 + //line sql.y:793 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:794 + //line sql.y:797 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:798 + //line sql.y:801 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:802 + //line sql.y:805 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:806 + //line sql.y:809 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 117: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:810 + //line sql.y:813 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 118: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:815 + //line sql.y:818 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:821 + //line sql.y:824 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:825 + //line sql.y:828 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:829 + //line sql.y:832 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 122: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:833 + //line sql.y:836 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 123: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:837 + //line sql.y:840 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:841 + //line sql.y:844 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:845 + //line sql.y:848 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:849 + //line sql.y:852 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:855 + //line sql.y:858 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } case 128: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:860 + //line sql.y:863 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } case 129: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:865 + //line sql.y:868 { yyVAL.optVal = nil } case 130: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:869 + //line sql.y:872 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 131: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:874 + //line sql.y:877 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 132: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:878 + //line sql.y:881 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -3468,13 +3492,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:886 + //line sql.y:889 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 134: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:890 + //line sql.y:893 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -3482,7 +3506,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:896 + //line sql.y:899 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -3491,374 +3515,374 @@ yydefault: } case 136: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:904 + //line sql.y:907 { yyVAL.boolVal = BoolVal(false) } case 137: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:908 + //line sql.y:911 { yyVAL.boolVal = BoolVal(true) } case 138: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:913 + //line sql.y:916 { yyVAL.boolVal = BoolVal(false) } case 139: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:917 + //line sql.y:920 { yyVAL.boolVal = BoolVal(true) } case 140: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:923 + //line sql.y:926 { yyVAL.boolVal = BoolVal(false) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:927 + //line sql.y:930 { yyVAL.boolVal = BoolVal(false) } case 142: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:931 + //line sql.y:934 { yyVAL.boolVal = BoolVal(true) } case 143: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:936 + //line sql.y:939 { yyVAL.optVal = nil } case 144: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:940 + //line sql.y:943 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 145: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:944 + //line sql.y:947 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 146: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:948 + //line sql.y:951 { yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } case 147: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:952 + //line sql.y:955 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 148: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:956 + //line sql.y:959 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 149: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:960 + //line sql.y:963 { yyVAL.optVal = NewBitVal(yyDollar[2].bytes) } case 150: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:965 + //line sql.y:968 { yyVAL.optVal = nil } case 151: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:969 + //line sql.y:972 { yyVAL.optVal = NewValArg(yyDollar[3].bytes) } case 152: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:974 + //line sql.y:977 { yyVAL.boolVal = BoolVal(false) } case 153: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:978 + //line sql.y:981 { yyVAL.boolVal = BoolVal(true) } case 154: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:983 + //line sql.y:986 { yyVAL.str = "" } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:987 + //line sql.y:990 { yyVAL.str = string(yyDollar[3].bytes) } case 156: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:991 + //line sql.y:994 { yyVAL.str = string(yyDollar[3].bytes) } case 157: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:996 + //line sql.y:999 { yyVAL.str = "" } case 158: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1000 + //line sql.y:1003 { yyVAL.str = string(yyDollar[2].bytes) } case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1005 + //line sql.y:1008 { yyVAL.colKeyOpt = colKeyNone } case 160: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1009 + //line sql.y:1012 { yyVAL.colKeyOpt = colKeyPrimary } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1013 + //line sql.y:1016 { yyVAL.colKeyOpt = colKey } case 162: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1017 + //line sql.y:1020 { yyVAL.colKeyOpt = colKeyUniqueKey } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1021 + //line sql.y:1024 { yyVAL.colKeyOpt = colKeyUnique } case 164: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1026 + //line sql.y:1029 { yyVAL.optVal = nil } case 165: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1030 + //line sql.y:1033 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1036 + //line sql.y:1039 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } case 167: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1040 + //line sql.y:1043 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1046 + //line sql.y:1049 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1050 + //line sql.y:1053 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } case 170: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1056 + //line sql.y:1059 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1060 + //line sql.y:1063 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1065 + //line sql.y:1068 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } case 173: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1071 + //line sql.y:1074 { yyVAL.str = "" } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1075 + //line sql.y:1078 { yyVAL.str = string(yyDollar[1].bytes) } case 175: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1081 + //line sql.y:1084 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } case 176: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1085 + //line sql.y:1088 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Spatial: true, Unique: false} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1089 + //line sql.y:1092 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Unique: true} } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1093 + //line sql.y:1096 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: true} } case 179: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1097 + //line sql.y:1100 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} } case 180: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1103 + //line sql.y:1106 { yyVAL.str = string(yyDollar[1].bytes) } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1107 + //line sql.y:1110 { yyVAL.str = string(yyDollar[1].bytes) } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1113 + //line sql.y:1116 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } case 183: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1117 + //line sql.y:1120 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1123 + //line sql.y:1126 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } case 185: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1128 + //line sql.y:1131 { yyVAL.str = "" } case 186: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1132 + //line sql.y:1135 { yyVAL.str = " " + string(yyDollar[1].str) } case 187: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1136 + //line sql.y:1139 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } case 188: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1144 + //line sql.y:1147 { yyVAL.str = yyDollar[1].str } case 189: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1148 + //line sql.y:1151 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } case 190: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1152 + //line sql.y:1155 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1158 + //line sql.y:1161 { yyVAL.str = yyDollar[1].colIdent.String() } case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1162 + //line sql.y:1165 { yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } case 193: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1166 + //line sql.y:1169 { yyVAL.str = string(yyDollar[1].bytes) } case 194: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1172 + //line sql.y:1175 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 195: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1176 + //line sql.y:1179 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 196: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1180 + //line sql.y:1183 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 197: yyDollar = yyS[yypt-12 : yypt+1] - //line sql.y:1184 + //line sql.y:1187 { yyVAL.statement = &DDL{ Action: AddColVindexStr, @@ -3873,7 +3897,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1197 + //line sql.y:1200 { yyVAL.statement = &DDL{ Action: DropColVindexStr, @@ -3885,69 +3909,69 @@ yydefault: } case 199: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1207 + //line sql.y:1210 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } case 200: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1212 + //line sql.y:1215 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 201: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1217 + //line sql.y:1220 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} } case 202: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1221 + //line sql.y:1224 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, PartitionSpec: yyDollar[5].partSpec} } case 214: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1240 + //line sql.y:1243 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1246 + //line sql.y:1249 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1250 + //line sql.y:1253 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } case 217: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1256 + //line sql.y:1259 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } case 218: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1260 + //line sql.y:1263 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } case 219: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1266 + //line sql.y:1269 { yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } case 220: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1272 + //line sql.y:1275 { var exists bool if yyDollar[3].byt != 0 { @@ -3957,14 +3981,14 @@ yydefault: } case 221: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1280 + //line sql.y:1283 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } case 222: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1285 + //line sql.y:1288 { var exists bool if yyDollar[3].byt != 0 { @@ -3974,121 +3998,121 @@ yydefault: } case 223: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1293 + //line sql.y:1296 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1297 + //line sql.y:1300 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1303 + //line sql.y:1306 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1307 + //line sql.y:1310 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } case 227: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1312 + //line sql.y:1315 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1318 + //line sql.y:1321 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 229: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1322 + //line sql.y:1325 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 230: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1326 + //line sql.y:1329 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 231: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1331 + //line sql.y:1334 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 232: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1335 + //line sql.y:1338 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 233: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1339 + //line sql.y:1342 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 234: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1343 + //line sql.y:1346 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 235: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1347 + //line sql.y:1350 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1351 + //line sql.y:1354 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1355 + //line sql.y:1358 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 238: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1359 + //line sql.y:1362 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1363 + //line sql.y:1366 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 240: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1367 + //line sql.y:1370 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1371 + //line sql.y:1374 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 242: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1375 + //line sql.y:1378 { // this is ugly, but I couldn't find a better way for now if yyDollar[4].str == "processlist" { @@ -4100,602 +4124,602 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1385 + //line sql.y:1388 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 244: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1389 + //line sql.y:1392 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 245: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1393 + //line sql.y:1396 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} } case 246: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1397 + //line sql.y:1400 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 247: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1401 + //line sql.y:1404 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 248: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1405 + //line sql.y:1408 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1409 + //line sql.y:1412 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1419 + //line sql.y:1422 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1425 + //line sql.y:1428 { yyVAL.str = string(yyDollar[1].bytes) } case 252: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1429 + //line sql.y:1432 { yyVAL.str = string(yyDollar[1].bytes) } case 253: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1435 + //line sql.y:1438 { yyVAL.str = "" } case 254: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1439 + //line sql.y:1442 { yyVAL.str = "extended " } case 255: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1445 + //line sql.y:1448 { yyVAL.str = "" } case 256: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1449 + //line sql.y:1452 { yyVAL.str = "full " } case 257: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1455 + //line sql.y:1458 { yyVAL.str = "" } case 258: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1459 + //line sql.y:1462 { yyVAL.str = yyDollar[2].tableIdent.v } case 259: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1463 + //line sql.y:1466 { yyVAL.str = yyDollar[2].tableIdent.v } case 260: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1469 + //line sql.y:1472 { yyVAL.showFilter = nil } case 261: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1473 + //line sql.y:1476 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 262: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1477 + //line sql.y:1480 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 263: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1483 + //line sql.y:1486 { yyVAL.str = "" } case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1487 + //line sql.y:1490 { yyVAL.str = SessionStr } case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1491 + //line sql.y:1494 { yyVAL.str = GlobalStr } case 266: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1497 + //line sql.y:1500 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 267: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1501 + //line sql.y:1504 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1507 + //line sql.y:1510 { yyVAL.statement = &Begin{} } case 269: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1511 + //line sql.y:1514 { yyVAL.statement = &Begin{} } case 270: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1517 + //line sql.y:1520 { yyVAL.statement = &Commit{} } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1523 + //line sql.y:1526 { yyVAL.statement = &Rollback{} } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1529 + //line sql.y:1532 { yyVAL.statement = &OtherRead{} } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1533 + //line sql.y:1536 { yyVAL.statement = &OtherRead{} } case 274: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1537 + //line sql.y:1540 { yyVAL.statement = &OtherRead{} } case 275: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1541 + //line sql.y:1544 { yyVAL.statement = &OtherAdmin{} } case 276: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1545 + //line sql.y:1548 { yyVAL.statement = &OtherAdmin{} } case 277: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1550 + //line sql.y:1553 { setAllowComments(yylex, true) } case 278: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1554 + //line sql.y:1557 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } case 279: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1560 + //line sql.y:1563 { yyVAL.bytes2 = nil } case 280: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1564 + //line sql.y:1567 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } case 281: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1570 + //line sql.y:1573 { yyVAL.str = UnionStr } case 282: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1574 + //line sql.y:1577 { yyVAL.str = UnionAllStr } case 283: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1578 + //line sql.y:1581 { yyVAL.str = UnionDistinctStr } case 284: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1583 + //line sql.y:1586 { yyVAL.str = "" } case 285: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1587 + //line sql.y:1590 { yyVAL.str = SQLNoCacheStr } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1591 + //line sql.y:1594 { yyVAL.str = SQLCacheStr } case 287: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1596 + //line sql.y:1599 { yyVAL.str = "" } case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1600 + //line sql.y:1603 { yyVAL.str = DistinctStr } case 289: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1605 + //line sql.y:1608 { yyVAL.str = "" } case 290: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1609 + //line sql.y:1612 { yyVAL.str = StraightJoinHint } case 291: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1614 + //line sql.y:1617 { yyVAL.selectExprs = nil } case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1618 + //line sql.y:1621 { yyVAL.selectExprs = yyDollar[1].selectExprs } case 293: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1624 + //line sql.y:1627 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1628 + //line sql.y:1631 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } case 295: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1634 + //line sql.y:1637 { yyVAL.selectExpr = &StarExpr{} } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1638 + //line sql.y:1641 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1642 + //line sql.y:1645 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } case 298: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1646 + //line sql.y:1649 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } case 299: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1651 + //line sql.y:1654 { yyVAL.colIdent = ColIdent{} } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1655 + //line sql.y:1658 { yyVAL.colIdent = yyDollar[1].colIdent } case 301: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1659 + //line sql.y:1662 { yyVAL.colIdent = yyDollar[2].colIdent } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1666 + //line sql.y:1669 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 304: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1671 + //line sql.y:1674 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } case 305: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1675 + //line sql.y:1678 { yyVAL.tableExprs = yyDollar[2].tableExprs } case 306: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1681 + //line sql.y:1684 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1685 + //line sql.y:1688 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } case 310: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1695 + //line sql.y:1698 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 311: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1699 + //line sql.y:1702 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery} } case 312: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1703 + //line sql.y:1706 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } case 313: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1707 + //line sql.y:1710 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 314: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1713 + //line sql.y:1716 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 315: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1717 + //line sql.y:1720 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1723 + //line sql.y:1726 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1727 + //line sql.y:1730 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 318: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1733 + //line sql.y:1736 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1737 + //line sql.y:1740 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1750 + //line sql.y:1753 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 321: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1754 + //line sql.y:1757 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 322: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1758 + //line sql.y:1761 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1762 + //line sql.y:1765 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 324: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1768 + //line sql.y:1771 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 325: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1770 + //line sql.y:1773 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } case 326: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1774 + //line sql.y:1777 { yyVAL.joinCondition = JoinCondition{} } case 327: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1776 + //line sql.y:1779 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 328: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1780 + //line sql.y:1783 { yyVAL.joinCondition = JoinCondition{} } case 329: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1782 + //line sql.y:1785 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 330: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1785 + //line sql.y:1788 { yyVAL.empty = struct{}{} } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1787 + //line sql.y:1790 { yyVAL.empty = struct{}{} } case 332: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1790 + //line sql.y:1793 { yyVAL.tableIdent = NewTableIdent("") } case 333: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1794 + //line sql.y:1797 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1798 + //line sql.y:1801 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 336: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1805 + //line sql.y:1808 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1811 + //line sql.y:1814 { yyVAL.str = JoinStr } case 338: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1815 + //line sql.y:1818 { yyVAL.str = InnerJoinStr } case 339: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1819 + //line sql.y:1822 { yyVAL.str = CrossJoinStr } case 340: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1825 + //line sql.y:1828 { yyVAL.str = StraightJoinStr } case 341: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1831 + //line sql.y:1834 { yyVAL.str = LeftJoinStr } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1835 + //line sql.y:1838 { yyVAL.str = LeftJoinStr } case 343: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1839 + //line sql.y:1842 { yyVAL.str = RightJoinStr } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1843 + //line sql.y:1846 { yyVAL.str = RightJoinStr } case 345: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1849 + //line sql.y:1852 { yyVAL.str = NaturalJoinStr } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1853 + //line sql.y:1856 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4705,457 +4729,457 @@ yydefault: } case 347: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1863 + //line sql.y:1866 { yyVAL.tableName = yyDollar[2].tableName } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1867 + //line sql.y:1870 { yyVAL.tableName = yyDollar[1].tableName } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1873 + //line sql.y:1876 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 350: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1877 + //line sql.y:1880 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1882 + //line sql.y:1885 { yyVAL.indexHints = nil } case 352: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1886 + //line sql.y:1889 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } case 353: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1890 + //line sql.y:1893 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } case 354: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1894 + //line sql.y:1897 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } case 355: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1899 + //line sql.y:1902 { yyVAL.expr = nil } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1903 + //line sql.y:1906 { yyVAL.expr = yyDollar[2].expr } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1909 + //line sql.y:1912 { yyVAL.expr = yyDollar[1].expr } case 358: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1913 + //line sql.y:1916 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 359: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1917 + //line sql.y:1920 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1921 + //line sql.y:1924 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } case 361: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1925 + //line sql.y:1928 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1929 + //line sql.y:1932 { yyVAL.expr = yyDollar[1].expr } case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1933 + //line sql.y:1936 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } case 364: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1939 + //line sql.y:1942 { yyVAL.str = "" } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1943 + //line sql.y:1946 { yyVAL.str = string(yyDollar[2].bytes) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1949 + //line sql.y:1952 { yyVAL.boolVal = BoolVal(true) } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1953 + //line sql.y:1956 { yyVAL.boolVal = BoolVal(false) } case 368: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1959 + //line sql.y:1962 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 369: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1963 + //line sql.y:1966 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 370: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1967 + //line sql.y:1970 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 371: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1971 + //line sql.y:1974 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 372: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1975 + //line sql.y:1978 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1979 + //line sql.y:1982 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 374: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1983 + //line sql.y:1986 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 375: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1987 + //line sql.y:1990 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 376: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1991 + //line sql.y:1994 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 377: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1995 + //line sql.y:1998 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2001 + //line sql.y:2004 { yyVAL.str = IsNullStr } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2005 + //line sql.y:2008 { yyVAL.str = IsNotNullStr } case 380: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2009 + //line sql.y:2012 { yyVAL.str = IsTrueStr } case 381: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2013 + //line sql.y:2016 { yyVAL.str = IsNotTrueStr } case 382: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2017 + //line sql.y:2020 { yyVAL.str = IsFalseStr } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2021 + //line sql.y:2024 { yyVAL.str = IsNotFalseStr } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2027 + //line sql.y:2030 { yyVAL.str = EqualStr } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2031 + //line sql.y:2034 { yyVAL.str = LessThanStr } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2035 + //line sql.y:2038 { yyVAL.str = GreaterThanStr } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2039 + //line sql.y:2042 { yyVAL.str = LessEqualStr } case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2043 + //line sql.y:2046 { yyVAL.str = GreaterEqualStr } case 389: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2047 + //line sql.y:2050 { yyVAL.str = NotEqualStr } case 390: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2051 + //line sql.y:2054 { yyVAL.str = NullSafeEqualStr } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2055 + //line sql.y:2058 { yyVAL.str = NullSafeNotEqualStr } case 392: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2060 + //line sql.y:2063 { yyVAL.expr = nil } case 393: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2064 + //line sql.y:2067 { yyVAL.expr = yyDollar[2].expr } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2070 + //line sql.y:2073 { yyVAL.colTuple = yyDollar[1].valTuple } case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2074 + //line sql.y:2077 { yyVAL.colTuple = yyDollar[1].subquery } case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2078 + //line sql.y:2081 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2084 + //line sql.y:2087 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2090 + //line sql.y:2093 { yyVAL.exprs = Exprs{yyDollar[1].expr} } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2094 + //line sql.y:2097 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2100 + //line sql.y:2103 { yyVAL.expr = yyDollar[1].expr } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2104 + //line sql.y:2107 { yyVAL.expr = yyDollar[1].boolVal } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2108 + //line sql.y:2111 { yyVAL.expr = yyDollar[1].colName } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2112 + //line sql.y:2115 { yyVAL.expr = yyDollar[1].expr } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2116 + //line sql.y:2119 { yyVAL.expr = yyDollar[1].subquery } case 405: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2120 + //line sql.y:2123 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 406: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2124 + //line sql.y:2127 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 407: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2128 + //line sql.y:2131 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2132 + //line sql.y:2135 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2136 + //line sql.y:2139 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2140 + //line sql.y:2143 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2144 + //line sql.y:2147 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2148 + //line sql.y:2151 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2152 + //line sql.y:2155 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2156 + //line sql.y:2159 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2160 + //line sql.y:2163 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2164 + //line sql.y:2167 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 417: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2168 + //line sql.y:2171 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2172 + //line sql.y:2175 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2176 + //line sql.y:2179 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 420: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2180 + //line sql.y:2183 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 421: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2184 + //line sql.y:2187 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2188 + //line sql.y:2191 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5165,7 +5189,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2196 + //line sql.y:2199 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5181,19 +5205,19 @@ yydefault: } case 424: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2210 + //line sql.y:2213 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } case 425: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2214 + //line sql.y:2217 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2218 + //line sql.y:2221 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5203,435 +5227,465 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2236 + //line sql.y:2239 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } case 432: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2240 + //line sql.y:2243 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } case 433: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2244 + //line sql.y:2247 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } case 434: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2254 + //line sql.y:2257 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 435: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2258 + //line sql.y:2261 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 436: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2262 + //line sql.y:2265 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 437: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2266 + //line sql.y:2269 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 438: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2270 + //line sql.y:2273 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 439: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2274 + //line sql.y:2277 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 440: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2278 + //line sql.y:2281 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 441: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2282 + //line sql.y:2285 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 442: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2286 + //line sql.y:2289 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 443: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2290 + //line sql.y:2293 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 444: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2294 + //line sql.y:2297 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 445: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2298 + //line sql.y:2301 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 446: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2302 + //line sql.y:2305 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 447: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2306 + //line sql.y:2309 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 448: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2310 + //line sql.y:2313 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 449: + yyDollar = yyS[yypt-10 : yypt+1] + //line sql.y:2317 + { + yyVAL.expr = &RowNumberOverExpr{PartitionBy: yyDollar[6].partitionBy, OrderBy: yyDollar[9].orderBy} + } + case 450: + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2322 + { + yyVAL.partitionBy = nil + } + case 451: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2326 + { + yyVAL.partitionBy = yyDollar[3].partitionBy + } + case 452: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2332 + { + yyVAL.partitionBy = PartitionBy{yyDollar[1].expr} + } + case 453: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:2336 + { + yyVAL.partitionBy = append(yyDollar[1].partitionBy, yyDollar[3].expr) + } + case 454: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2320 + //line sql.y:2346 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 450: + case 455: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2324 + //line sql.y:2350 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 451: + case 456: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2328 + //line sql.y:2354 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 452: + case 457: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2332 + //line sql.y:2358 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 453: + case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2337 + //line sql.y:2363 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 454: + case 459: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2342 + //line sql.y:2368 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 455: + case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2347 + //line sql.y:2373 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 456: + case 461: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2352 + //line sql.y:2378 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 459: + case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2366 + //line sql.y:2392 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 460: + case 465: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2370 + //line sql.y:2396 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 461: + case 466: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2374 + //line sql.y:2400 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 462: + case 467: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2378 + //line sql.y:2404 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 463: + case 468: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2384 + //line sql.y:2410 { yyVAL.str = "" } - case 464: + case 469: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2388 + //line sql.y:2414 { yyVAL.str = BooleanModeStr } - case 465: + case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2392 + //line sql.y:2418 { yyVAL.str = NaturalLanguageModeStr } - case 466: + case 471: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2396 + //line sql.y:2422 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 467: + case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2400 + //line sql.y:2426 { yyVAL.str = QueryExpansionStr } - case 468: + case 473: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2406 + //line sql.y:2432 { yyVAL.str = string(yyDollar[1].bytes) } - case 469: + case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2410 + //line sql.y:2436 { yyVAL.str = string(yyDollar[1].bytes) } - case 470: + case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2416 + //line sql.y:2442 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 471: + case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2420 + //line sql.y:2446 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 472: + case 477: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2424 + //line sql.y:2450 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 473: + case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2428 + //line sql.y:2454 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 474: + case 479: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2432 + //line sql.y:2458 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 475: + case 480: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2436 + //line sql.y:2462 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 476: + case 481: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2442 + //line sql.y:2468 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 477: + case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2446 + //line sql.y:2472 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 478: + case 483: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2450 + //line sql.y:2476 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 479: + case 484: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2454 + //line sql.y:2480 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 480: + case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2458 + //line sql.y:2484 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 481: + case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2462 + //line sql.y:2488 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 482: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2466 + //line sql.y:2492 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 483: + case 488: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2470 + //line sql.y:2496 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 484: + case 489: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2475 + //line sql.y:2501 { yyVAL.expr = nil } - case 485: + case 490: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2479 + //line sql.y:2505 { yyVAL.expr = yyDollar[1].expr } - case 486: + case 491: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2484 + //line sql.y:2510 { yyVAL.str = string("") } - case 487: + case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2488 + //line sql.y:2514 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 488: + case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2494 + //line sql.y:2520 { yyVAL.whens = []*When{yyDollar[1].when} } - case 489: + case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2498 + //line sql.y:2524 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 490: + case 495: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2504 + //line sql.y:2530 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 491: + case 496: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2509 + //line sql.y:2535 { yyVAL.expr = nil } - case 492: + case 497: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2513 + //line sql.y:2539 { yyVAL.expr = yyDollar[2].expr } - case 493: + case 498: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2519 + //line sql.y:2545 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 494: + case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2523 + //line sql.y:2549 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 495: + case 500: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2527 + //line sql.y:2553 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 496: + case 501: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2533 + //line sql.y:2559 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 497: + case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2537 + //line sql.y:2563 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 498: + case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2541 + //line sql.y:2567 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } - case 499: + case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2545 + //line sql.y:2571 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 500: + case 505: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2549 + //line sql.y:2575 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 501: + case 506: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2553 + //line sql.y:2579 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 502: + case 507: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2557 + //line sql.y:2583 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 503: + case 508: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2561 + //line sql.y:2587 { yyVAL.expr = &NullVal{} } - case 504: + case 509: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2567 + //line sql.y:2593 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5640,239 +5694,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 505: + case 510: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2576 + //line sql.y:2602 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 506: + case 511: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2580 + //line sql.y:2606 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 507: + case 512: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2585 + //line sql.y:2611 { yyVAL.exprs = nil } - case 508: + case 513: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2589 + //line sql.y:2615 { yyVAL.exprs = yyDollar[3].exprs } - case 509: + case 514: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2594 + //line sql.y:2620 { yyVAL.expr = nil } - case 510: + case 515: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2598 + //line sql.y:2624 { yyVAL.expr = yyDollar[2].expr } - case 511: + case 516: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2603 + //line sql.y:2629 { yyVAL.orderBy = nil } - case 512: + case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2607 + //line sql.y:2633 { yyVAL.orderBy = yyDollar[3].orderBy } - case 513: + case 518: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2613 + //line sql.y:2639 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 514: + case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2617 + //line sql.y:2643 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 515: + case 520: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2623 + //line sql.y:2649 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 516: + case 521: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2628 + //line sql.y:2654 { yyVAL.str = AscScr } - case 517: + case 522: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2632 + //line sql.y:2658 { yyVAL.str = AscScr } - case 518: + case 523: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2636 + //line sql.y:2662 { yyVAL.str = DescScr } - case 519: + case 524: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2641 + //line sql.y:2667 { yyVAL.limit = nil } - case 520: + case 525: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2645 + //line sql.y:2671 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 521: + case 526: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2649 + //line sql.y:2675 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 522: + case 527: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2653 + //line sql.y:2679 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 523: + case 528: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2658 + //line sql.y:2684 { yyVAL.str = "" } - case 524: + case 529: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2662 + //line sql.y:2688 { yyVAL.str = ForUpdateStr } - case 525: + case 530: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2666 + //line sql.y:2692 { yyVAL.str = ShareModeStr } - case 526: + case 531: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2679 + //line sql.y:2705 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 527: + case 532: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2683 + //line sql.y:2709 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 528: + case 533: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2687 + //line sql.y:2713 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 529: + case 534: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2692 + //line sql.y:2718 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 530: + case 535: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2696 + //line sql.y:2722 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 531: + case 536: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2700 + //line sql.y:2726 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 532: + case 537: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2707 + //line sql.y:2733 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 533: + case 538: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2711 + //line sql.y:2737 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 534: + case 539: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2715 + //line sql.y:2741 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 535: + case 540: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2719 + //line sql.y:2745 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 536: + case 541: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2724 + //line sql.y:2750 { yyVAL.updateExprs = nil } - case 537: + case 542: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2728 + //line sql.y:2754 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 538: + case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2734 + //line sql.y:2760 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 539: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2738 + //line sql.y:2764 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 540: + case 545: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2744 + //line sql.y:2770 { yyVAL.valTuple = yyDollar[1].valTuple } - case 541: + case 546: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2748 + //line sql.y:2774 { yyVAL.valTuple = ValTuple{} } - case 542: + case 547: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2754 + //line sql.y:2780 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 543: + case 548: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2760 + //line sql.y:2786 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5880,306 +5934,306 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 544: + case 549: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2770 + //line sql.y:2796 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 545: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2774 + //line sql.y:2800 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 546: + case 551: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2780 + //line sql.y:2806 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 547: + case 552: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2786 + //line sql.y:2812 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 548: + case 553: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2790 + //line sql.y:2816 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 549: + case 554: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2796 + //line sql.y:2822 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 550: + case 555: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2800 + //line sql.y:2826 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 551: + case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2804 + //line sql.y:2830 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 553: + case 558: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2811 + //line sql.y:2837 { yyVAL.bytes = []byte("charset") } - case 555: + case 560: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2818 + //line sql.y:2844 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 556: + case 561: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2822 + //line sql.y:2848 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 557: + case 562: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2826 + //line sql.y:2852 { yyVAL.expr = &Default{} } - case 560: + case 565: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2835 + //line sql.y:2861 { yyVAL.byt = 0 } - case 561: + case 566: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2837 + //line sql.y:2863 { yyVAL.byt = 1 } - case 562: + case 567: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2840 + //line sql.y:2866 { yyVAL.empty = struct{}{} } - case 563: + case 568: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2842 + //line sql.y:2868 { yyVAL.empty = struct{}{} } - case 564: + case 569: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2845 + //line sql.y:2871 { yyVAL.str = "" } - case 565: + case 570: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2847 + //line sql.y:2873 { yyVAL.str = IgnoreStr } - case 566: + case 571: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2851 + //line sql.y:2877 { yyVAL.empty = struct{}{} } - case 567: + case 572: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2853 + //line sql.y:2879 { yyVAL.empty = struct{}{} } - case 568: + case 573: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2855 + //line sql.y:2881 { yyVAL.empty = struct{}{} } - case 569: + case 574: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2857 + //line sql.y:2883 { yyVAL.empty = struct{}{} } - case 570: + case 575: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2859 + //line sql.y:2885 { yyVAL.empty = struct{}{} } - case 571: + case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2861 + //line sql.y:2887 { yyVAL.empty = struct{}{} } - case 572: + case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2863 + //line sql.y:2889 { yyVAL.empty = struct{}{} } - case 573: + case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2865 + //line sql.y:2891 { yyVAL.empty = struct{}{} } - case 574: + case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2867 + //line sql.y:2893 { yyVAL.empty = struct{}{} } - case 575: + case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2869 + //line sql.y:2895 { yyVAL.empty = struct{}{} } - case 576: + case 581: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2872 + //line sql.y:2898 { yyVAL.empty = struct{}{} } - case 577: + case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2874 + //line sql.y:2900 { yyVAL.empty = struct{}{} } - case 578: + case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2876 + //line sql.y:2902 { yyVAL.empty = struct{}{} } - case 579: + case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2880 + //line sql.y:2906 { yyVAL.empty = struct{}{} } - case 580: + case 585: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2882 + //line sql.y:2908 { yyVAL.empty = struct{}{} } - case 581: + case 586: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2885 + //line sql.y:2911 { yyVAL.empty = struct{}{} } - case 582: + case 587: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2887 + //line sql.y:2913 { yyVAL.empty = struct{}{} } - case 583: + case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2889 + //line sql.y:2915 { yyVAL.empty = struct{}{} } - case 584: + case 589: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2892 + //line sql.y:2918 { yyVAL.colIdent = ColIdent{} } - case 585: + case 590: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2894 + //line sql.y:2920 { yyVAL.colIdent = yyDollar[2].colIdent } - case 586: + case 591: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2898 + //line sql.y:2924 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 587: + case 592: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2902 + //line sql.y:2928 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 589: + case 594: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2909 + //line sql.y:2935 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 590: + case 595: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2915 + //line sql.y:2941 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 591: + case 596: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2919 + //line sql.y:2945 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 593: + case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2926 + //line sql.y:2952 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 784: + case 789: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3142 + //line sql.y:3168 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 785: + case 790: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3151 + //line sql.y:3177 { decNesting(yylex) } - case 786: + case 791: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3156 + //line sql.y:3182 { forceEOF(yylex) } - case 787: + case 792: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3161 + //line sql.y:3187 { forceEOF(yylex) } - case 788: + case 793: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3165 + //line sql.y:3191 { forceEOF(yylex) } - case 789: + case 794: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3169 + //line sql.y:3195 { forceEOF(yylex) } diff --git a/sql.y b/sql.y index 93d4935..0bb3751 100644 --- a/sql.y +++ b/sql.y @@ -83,6 +83,7 @@ func forceEOF(yylex interface{}) { when *When orderBy OrderBy order *Order + partitionBy PartitionBy limit *Limit updateExprs UpdateExprs setExprs SetExprs @@ -188,6 +189,7 @@ func forceEOF(yylex interface{}) { %token CONVERT CAST %token SUBSTR SUBSTRING %token GROUP_CONCAT SEPARATOR +%token ROW_NUMBER OVER // Match %token MATCH AGAINST BOOLEAN LANGUAGE WITH QUERY EXPANSION @@ -240,6 +242,7 @@ func forceEOF(yylex interface{}) { %type order_by_opt order_list %type order %type asc_desc_opt +%type partition_by_opt partition_by_list %type limit_opt %type lock_opt %type ins_column_list column_list @@ -2310,6 +2313,29 @@ function_call_keyword: { $$ = &ValuesFuncExpr{Name: $3} } +| ROW_NUMBER openb closeb OVER openb partition_by_opt ORDER BY order_list closeb + { + $$ = &RowNumberOverExpr{ PartitionBy: $6, OrderBy: $9} + } + +partition_by_opt: + { + $$ = nil + } +| PARTITION BY partition_by_list + { + $$ = $3 + } + +partition_by_list: + expression + { + $$ = PartitionBy{$1} + } +| partition_by_list ',' expression + { + $$ = append($1, $3) + } /* Function calls using non reserved keywords but with special syntax forms. diff --git a/token.go b/token.go index 2c7d57b..c855b85 100644 --- a/token.go +++ b/token.go @@ -277,6 +277,7 @@ var keywords = map[string]int{ "out": UNUSED, "outer": OUTER, "outfile": UNUSED, + "over": OVER, "partition": PARTITION, "point": POINT, "polygon": POLYGON, @@ -307,6 +308,7 @@ var keywords = map[string]int{ "right": RIGHT, "rlike": REGEXP, "rollback": ROLLBACK, + "row_number": ROW_NUMBER, "schema": SCHEMA, "schemas": UNUSED, "second_microsecond": UNUSED, From 2676506889114e04ec6e6f6407312d96a69bc21d Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 29 Aug 2018 20:56:37 +0800 Subject: [PATCH 06/13] ./CONTRIBUTORS.md --- sql.go | 2773 ++++++++++++++++++++++++++++---------------------------- sql.y | 24 +- 2 files changed, 1427 insertions(+), 1370 deletions(-) diff --git a/sql.go b/sql.go index 8f4a0aa..f18940b 100644 --- a/sql.go +++ b/sql.go @@ -607,11 +607,11 @@ var yyExca = [...]int{ 152, 263, -2, 253, -1, 238, - 110, 595, - -2, 591, + 110, 600, + -2, 596, -1, 239, - 110, 596, - -2, 592, + 110, 601, + -2, 597, -1, 299, 1, 311, 5, 311, @@ -637,644 +637,737 @@ var yyExca = [...]int{ 253, 311, -2, 330, -1, 309, - 80, 754, + 80, 759, -2, 58, -1, 310, - 80, 715, + 80, 720, -2, 59, -1, 315, - 80, 699, - -2, 557, + 80, 704, + -2, 562, -1, 317, - 80, 736, - -2, 559, + 80, 741, + -2, 564, -1, 578, 52, 41, 54, 41, -2, 43, -1, 711, - 110, 598, - -2, 594, + 110, 603, + -2, 599, -1, 916, 5, 28, -2, 397, -1, 942, 5, 27, - -2, 532, - -1, 1170, + -2, 537, + -1, 1181, 5, 28, - -2, 533, - -1, 1216, + -2, 538, + -1, 1227, 5, 27, - -2, 535, - -1, 1283, + -2, 540, + -1, 1294, 5, 28, - -2, 536, + -2, 541, } const yyPrivate = 57344 -const yyLast = 11167 +const yyLast = 11174 var yyAct = [...]int{ - 269, 47, 1272, 858, 461, 524, 1227, 1076, 243, 774, - 1104, 268, 649, 1077, 1176, 792, 1003, 217, 810, 814, - 572, 523, 3, 1073, 813, 945, 961, 53, 838, 775, - 1048, 746, 852, 314, 908, 211, 570, 743, 1006, 994, - 588, 736, 824, 762, 713, 462, 456, 411, 47, 848, - 587, 950, 771, 245, 574, 559, 222, 890, 308, 468, - 296, 241, 300, 226, 476, 305, 303, 295, 52, 216, - 1305, 1293, 1303, 832, 1279, 1301, 859, 1292, 1067, 212, - 213, 214, 215, 934, 1162, 415, 1236, 436, 1099, 1100, - 1098, 230, 539, 806, 807, 57, 1278, 1251, 294, 489, - 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 805, 589, 500, 590, 299, 181, 177, 178, 179, - 59, 60, 61, 62, 63, 451, 985, 678, 1110, 1111, - 1112, 831, 969, 875, 679, 968, 1115, 1113, 970, 1188, - 424, 1203, 839, 1151, 1149, 210, 1302, 874, 1300, 447, - 448, 438, 1273, 440, 1165, 1027, 772, 745, 1228, 1234, - 425, 418, 174, 454, 175, 793, 795, 239, 175, 657, - 960, 1230, 826, 826, 879, 648, 959, 236, 437, 439, - 958, 413, 421, 873, 189, 176, 513, 514, 1259, 1173, - 1035, 924, 902, 685, 442, 442, 442, 442, 76, 442, - 979, 480, 186, 431, 1119, 186, 442, 489, 488, 498, - 499, 491, 492, 493, 494, 495, 496, 497, 490, 811, - 500, 500, 682, 47, 490, 180, 1031, 500, 195, 186, - 186, 76, 870, 867, 868, 186, 866, 76, 510, 1229, - 794, 512, 475, 1264, 465, 1129, 885, 948, 464, 591, - 474, 473, 205, 909, 1069, 1120, 1252, 1235, 1233, 435, - 763, 877, 880, 839, 417, 825, 825, 475, 522, 652, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 983, - 537, 538, 540, 540, 540, 540, 540, 540, 540, 540, - 548, 549, 550, 551, 511, 1277, 872, 1114, 720, 473, - 232, 571, 1030, 190, 1267, 920, 763, 919, 931, 192, - 470, 1285, 718, 719, 717, 475, 198, 194, 871, 466, - 427, 428, 429, 474, 473, 886, 1049, 1194, 474, 473, - 1193, 50, 1024, 998, 828, 1071, 419, 420, 1026, 829, - 475, 716, 186, 196, 186, 475, 200, 899, 900, 901, - 186, 688, 689, 997, 299, 876, 1051, 186, 826, 173, - 986, 76, 76, 76, 76, 737, 76, 738, 1262, 579, - 878, 1286, 585, 76, 191, 541, 542, 543, 544, 545, - 546, 547, 703, 705, 706, 1107, 412, 704, 1053, 1265, - 1057, 1059, 1052, 1210, 1050, 1191, 1137, 474, 473, 1055, - 76, 193, 1106, 201, 202, 203, 204, 208, 1054, 995, - 686, 455, 207, 206, 475, 442, 1289, 455, 921, 684, - 293, 1056, 1058, 442, 515, 516, 517, 518, 519, 520, - 521, 1025, 980, 1023, 442, 442, 442, 442, 442, 442, - 442, 442, 493, 494, 495, 496, 497, 490, 442, 442, - 500, 825, 1220, 1270, 455, 683, 823, 821, 1158, 455, - 822, 186, 1220, 455, 1240, 666, 474, 473, 186, 186, - 186, 474, 473, 971, 76, 1220, 1221, 1185, 1184, 1239, - 76, 861, 690, 475, 1095, 455, 1172, 455, 475, 664, - 1126, 1125, 1122, 1123, 1116, 714, 489, 488, 498, 499, - 491, 492, 493, 494, 495, 496, 497, 490, 1122, 1121, - 500, 914, 455, 47, 711, 556, 455, 748, 455, 459, - 463, 739, 561, 564, 565, 566, 562, 526, 563, 567, - 692, 663, 951, 952, 662, 653, 481, 715, 709, 651, - 755, 758, 707, 646, 23, 433, 764, 426, 750, 598, - 597, 1074, 412, 21, 946, 582, 946, 300, 300, 300, - 300, 300, 748, 799, 776, 581, 1168, 1281, 940, 556, - 525, 941, 571, 1128, 796, 740, 741, 1124, 972, 536, - 947, 300, 76, 1038, 804, 926, 443, 768, 186, 186, - 76, 50, 186, 750, 760, 186, 583, 54, 581, 186, - 23, 76, 76, 76, 76, 76, 76, 76, 76, 221, - 299, 299, 299, 299, 299, 76, 76, 800, 778, 779, - 186, 781, 556, 789, 777, 299, 914, 780, 925, 691, - 797, 798, 23, 555, 299, 76, 914, 803, 914, 186, - 840, 841, 842, 802, 584, 76, 818, 50, 947, 686, - 311, 923, 442, 223, 442, 50, 650, 556, 1198, 1215, - 712, 833, 442, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 854, 50, - 834, 835, 836, 837, 853, 751, 752, 747, 749, 76, - 946, 759, 850, 851, 922, 1089, 845, 846, 847, 975, - 50, 849, 765, 844, 766, 843, 767, 65, 769, 770, - 856, 903, 1109, 258, 257, 260, 261, 262, 263, 711, - 1074, 186, 259, 264, 186, 186, 186, 186, 186, 714, - 951, 952, 891, 999, 791, 954, 186, 892, 660, 186, - 1155, 455, 452, 186, 698, 786, 784, 957, 186, 186, - 787, 785, 76, 491, 492, 493, 494, 495, 496, 497, - 490, 956, 904, 500, 788, 76, 565, 566, 783, 782, - 1299, 715, 943, 944, 700, 701, 227, 228, 489, 488, + 269, 47, 1283, 524, 649, 858, 461, 243, 774, 1238, + 1187, 1109, 1081, 814, 268, 1003, 792, 1082, 1078, 572, + 813, 852, 211, 53, 523, 3, 217, 775, 838, 810, + 570, 961, 736, 314, 908, 746, 994, 743, 1006, 945, + 1048, 588, 824, 950, 762, 713, 462, 411, 47, 456, + 848, 587, 308, 574, 771, 559, 222, 890, 476, 468, + 296, 241, 300, 226, 305, 295, 212, 213, 214, 215, + 52, 303, 216, 1316, 1304, 1314, 1290, 1312, 859, 1303, + 875, 1072, 934, 1173, 415, 969, 436, 1247, 968, 806, + 807, 970, 294, 539, 874, 230, 1262, 1103, 489, 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, - 1291, 1034, 500, 942, 887, 561, 564, 565, 566, 562, - 300, 563, 567, 469, 1298, 930, 498, 499, 491, 492, - 493, 494, 495, 496, 497, 490, 186, 467, 500, 76, - 897, 76, 896, 457, 963, 186, 965, 525, 186, 76, - 753, 754, 955, 973, 982, 458, 964, 990, 596, 434, - 1269, 267, 1268, 1213, 976, 966, 1166, 1199, 863, 659, - 569, 224, 225, 299, 469, 898, 218, 989, 442, 991, - 992, 993, 895, 987, 988, 977, 978, 1201, 1253, 1245, - 894, 1212, 74, 219, 1211, 54, 1244, 947, 471, 1256, - 1189, 681, 56, 442, 996, 58, 580, 51, 1, 860, - 1002, 869, 809, 311, 1271, 1226, 905, 906, 907, 1103, - 820, 1005, 913, 911, 812, 313, 1019, 912, 410, 64, - 1263, 416, 819, 1232, 916, 917, 918, 1187, 928, 827, - 984, 830, 1108, 927, 1266, 981, 603, 601, 933, 602, - 600, 935, 936, 937, 938, 1072, 605, 604, 599, 197, - 1042, 1041, 1079, 306, 47, 568, 1047, 592, 855, 776, - 1075, 472, 1061, 1078, 66, 776, 1068, 1022, 711, 1091, - 1092, 1093, 1060, 1021, 76, 1080, 865, 186, 1029, 677, - 884, 1083, 455, 1084, 450, 199, 1085, 509, 893, 967, - 312, 76, 1081, 1254, 888, 889, 1164, 463, 687, 1243, - 1097, 1096, 1200, 929, 1102, 535, 761, 1101, 244, 702, - 256, 253, 255, 254, 693, 939, 1117, 1118, 482, 489, + 1289, 805, 500, 181, 177, 178, 179, 1104, 1105, 451, + 589, 879, 590, 985, 678, 831, 245, 1199, 57, 1214, + 873, 679, 424, 839, 1115, 1116, 1117, 1156, 1154, 210, + 447, 448, 1120, 1118, 1313, 1311, 1284, 1176, 1027, 443, + 438, 454, 440, 59, 60, 61, 62, 63, 772, 1239, + 425, 826, 418, 1245, 793, 795, 175, 239, 1024, 174, + 648, 175, 1241, 826, 1026, 657, 960, 437, 439, 870, + 867, 868, 959, 866, 958, 413, 745, 421, 299, 412, + 189, 176, 513, 514, 442, 442, 442, 442, 76, 442, + 1270, 979, 186, 1184, 1035, 186, 442, 924, 877, 880, + 902, 826, 685, 311, 491, 492, 493, 494, 495, 496, + 497, 490, 180, 47, 500, 1014, 480, 431, 1124, 186, + 186, 76, 811, 490, 500, 186, 500, 76, 510, 794, + 1240, 512, 885, 872, 464, 682, 475, 465, 688, 689, + 1275, 839, 1074, 1012, 825, 1263, 1134, 921, 435, 823, + 821, 1246, 1244, 822, 948, 871, 825, 1025, 522, 1023, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 1125, + 537, 538, 540, 540, 540, 540, 540, 540, 540, 540, + 548, 549, 550, 551, 474, 473, 23, 24, 48, 26, + 27, 571, 876, 1119, 825, 474, 473, 591, 652, 1288, + 1031, 475, 427, 428, 429, 42, 763, 878, 1013, 983, + 28, 886, 475, 1018, 1015, 1008, 1009, 1016, 1011, 1010, + 493, 494, 495, 496, 497, 490, 474, 473, 500, 37, + 1017, 1278, 186, 50, 186, 763, 1020, 931, 474, 473, + 186, 470, 466, 475, 720, 1076, 473, 186, 899, 900, + 901, 76, 76, 76, 76, 475, 76, 511, 718, 719, + 717, 585, 475, 76, 579, 50, 541, 542, 543, 544, + 545, 546, 547, 1296, 1014, 716, 1030, 489, 488, 498, + 499, 491, 492, 493, 494, 495, 496, 497, 490, 417, + 76, 500, 173, 30, 31, 33, 32, 35, 703, 705, + 706, 828, 1012, 704, 1205, 442, 829, 1204, 737, 998, + 738, 1273, 997, 442, 36, 43, 44, 299, 986, 45, + 46, 34, 1297, 909, 442, 442, 442, 442, 442, 442, + 442, 442, 684, 38, 39, 1276, 40, 41, 442, 442, + 1221, 1202, 1142, 995, 686, 455, 311, 920, 1112, 919, + 1111, 186, 980, 293, 971, 666, 1300, 455, 186, 186, + 186, 419, 420, 861, 76, 474, 473, 1013, 683, 739, + 76, 663, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 664, + 662, 690, 475, 653, 474, 473, 1231, 1281, 714, 1017, + 1231, 455, 1231, 1232, 455, 1007, 1196, 1195, 1100, 455, + 21, 475, 651, 47, 711, 488, 498, 499, 491, 492, + 493, 494, 495, 496, 497, 490, 49, 526, 500, 646, + 692, 1183, 455, 1131, 1130, 1251, 707, 433, 709, 755, + 758, 1127, 1128, 1127, 1126, 764, 914, 455, 556, 455, + 1250, 750, 426, 23, 748, 455, 1121, 300, 300, 300, + 300, 300, 267, 776, 598, 597, 221, 412, 946, 748, + 1079, 582, 571, 946, 796, 740, 741, 940, 1179, 1292, + 941, 300, 76, 556, 1133, 947, 947, 768, 186, 186, + 76, 1038, 186, 74, 760, 186, 750, 23, 1129, 186, + 50, 76, 76, 76, 76, 76, 76, 76, 76, 54, + 715, 800, 583, 972, 581, 76, 76, 691, 778, 779, + 186, 781, 777, 789, 1226, 780, 313, 556, 946, 797, + 710, 926, 416, 798, 914, 76, 923, 802, 803, 186, + 840, 841, 842, 804, 50, 76, 818, 799, 914, 581, + 23, 914, 442, 555, 442, 258, 257, 260, 261, 262, + 263, 584, 442, 686, 259, 264, 223, 854, 50, 1209, + 833, 853, 832, 650, 925, 747, 749, 556, 856, 922, + 1094, 975, 849, 299, 299, 299, 299, 299, 844, 76, + 765, 843, 766, 850, 851, 65, 1114, 50, 299, 561, + 564, 565, 566, 562, 1079, 563, 567, 299, 999, 951, + 952, 903, 954, 50, 751, 752, 951, 952, 660, 711, + 759, 186, 791, 452, 186, 186, 186, 186, 186, 1310, + 698, 957, 714, 891, 311, 767, 186, 769, 770, 186, + 892, 1169, 455, 186, 956, 786, 784, 815, 186, 186, + 787, 785, 76, 783, 782, 1302, 313, 313, 313, 313, + 1034, 313, 887, 904, 788, 76, 565, 566, 313, 227, + 228, 1309, 943, 944, 897, 896, 990, 469, 596, 489, 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 242, 234, 500, 76, 76, 298, 76, 552, 560, - 558, 557, 953, 949, 297, 313, 313, 313, 313, 300, - 313, 1037, 1130, 1161, 1250, 697, 25, 313, 55, 915, - 76, 229, 19, 186, 186, 1132, 18, 17, 1135, 20, - 16, 186, 1014, 1139, 932, 15, 14, 710, 1160, 29, - 76, 13, 12, 11, 478, 1140, 10, 1046, 9, 8, - 7, 6, 5, 4, 220, 22, 1147, 1044, 1045, 2, - 1012, 0, 299, 0, 0, 0, 0, 0, 0, 1167, - 1062, 1063, 1175, 1065, 1066, 0, 1178, 1179, 1180, 0, - 0, 76, 76, 0, 1183, 1181, 0, 0, 0, 0, - 0, 973, 0, 1144, 1145, 1094, 1146, 0, 442, 1148, - 0, 1150, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 0, 76, 76, 0, 1196, 0, 0, 313, 1197, - 1190, 0, 1192, 441, 593, 1013, 0, 0, 0, 0, - 1018, 1015, 1008, 1009, 1016, 1011, 1010, 186, 0, 1079, - 0, 311, 1217, 0, 1202, 76, 0, 1017, 0, 1186, - 1078, 0, 1214, 1020, 815, 0, 0, 0, 76, 186, - 0, 0, 0, 1216, 0, 76, 1231, 1225, 0, 0, - 1242, 0, 0, 76, 0, 1141, 186, 0, 0, 1237, - 0, 1238, 1143, 1241, 1014, 0, 1079, 0, 47, 0, - 0, 1142, 0, 1257, 1152, 1153, 1154, 1078, 0, 1157, - 0, 0, 1070, 1261, 0, 0, 0, 0, 0, 1258, - 0, 0, 1012, 1169, 1170, 1171, 0, 1174, 1086, 1087, - 0, 1275, 1088, 0, 0, 1090, 313, 76, 1280, 76, - 76, 76, 186, 76, 313, 776, 1282, 0, 0, 76, - 0, 0, 710, 0, 0, 313, 313, 313, 313, 313, - 313, 313, 313, 1287, 0, 0, 0, 0, 0, 313, - 313, 1296, 1297, 0, 0, 76, 76, 76, 0, 0, - 0, 0, 0, 1304, 0, 0, 0, 1013, 0, 694, - 0, 0, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 478, - 0, 0, 313, 0, 0, 1209, 0, 0, 0, 1017, - 0, 0, 1138, 1204, 1205, 1007, 1206, 1207, 1208, 0, - 76, 76, 1222, 1223, 1224, 0, 0, 460, 444, 445, - 446, 0, 449, 76, 0, 0, 0, 0, 0, 453, - 0, 0, 0, 742, 0, 0, 76, 0, 1246, 1247, - 1248, 1249, 1163, 756, 756, 1159, 0, 0, 0, 756, - 525, 0, 184, 0, 0, 209, 0, 0, 76, 0, - 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, - 815, 0, 0, 0, 0, 0, 0, 233, 0, 184, - 184, 0, 0, 0, 1276, 184, 0, 0, 0, 0, - 0, 0, 1283, 0, 0, 0, 313, 76, 0, 0, - 0, 0, 0, 0, 0, 1288, 0, 0, 301, 313, - 0, 76, 0, 0, 1294, 0, 1004, 0, 489, 488, + 490, 467, 434, 500, 982, 478, 942, 457, 1280, 1279, + 300, 561, 564, 565, 566, 562, 930, 563, 567, 458, + 1224, 976, 1177, 1210, 863, 659, 186, 569, 469, 76, + 218, 76, 224, 225, 955, 186, 895, 973, 186, 76, + 964, 1212, 1264, 1256, 894, 710, 1223, 219, 963, 236, + 965, 1222, 54, 1255, 715, 947, 966, 498, 499, 491, + 492, 493, 494, 495, 496, 497, 490, 471, 442, 500, + 1267, 1200, 681, 987, 988, 977, 978, 56, 989, 313, + 991, 992, 993, 58, 580, 593, 51, 1, 860, 1002, + 869, 996, 1282, 442, 898, 1237, 1108, 820, 1005, 812, + 410, 911, 64, 1274, 819, 912, 1243, 1198, 827, 984, + 830, 1113, 916, 917, 918, 1277, 1019, 981, 603, 601, + 602, 927, 600, 605, 604, 599, 933, 197, 306, 935, + 936, 937, 938, 568, 592, 855, 299, 472, 66, 1022, + 1021, 913, 865, 1029, 677, 1077, 884, 450, 199, 509, + 1042, 1041, 1084, 893, 47, 967, 312, 928, 776, 1080, + 1047, 1086, 1073, 1065, 776, 1265, 1083, 441, 711, 1096, + 1097, 1098, 1066, 815, 76, 1175, 687, 186, 1085, 1089, + 1254, 1211, 929, 535, 1090, 761, 1088, 313, 244, 702, + 256, 76, 253, 255, 254, 313, 693, 1101, 1107, 939, + 482, 242, 234, 1106, 298, 552, 313, 313, 313, 313, + 313, 313, 313, 313, 1102, 560, 558, 557, 953, 1004, + 313, 313, 949, 297, 1037, 232, 1172, 1122, 1123, 1261, + 697, 25, 55, 229, 76, 76, 19, 76, 18, 1135, + 694, 17, 20, 16, 15, 14, 29, 13, 12, 300, + 478, 11, 1137, 313, 10, 1140, 9, 8, 7, 6, + 76, 5, 1040, 186, 186, 4, 220, 22, 2, 0, + 0, 186, 0, 0, 0, 1046, 0, 0, 0, 1145, + 76, 0, 0, 1171, 1069, 1152, 0, 1144, 0, 0, + 0, 0, 0, 0, 742, 0, 515, 516, 517, 518, + 519, 520, 521, 0, 756, 756, 0, 0, 0, 1178, + 756, 0, 0, 0, 0, 0, 0, 1189, 1190, 1191, + 0, 76, 76, 1099, 0, 0, 1186, 0, 756, 1192, + 973, 0, 815, 0, 815, 0, 0, 0, 1194, 0, + 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, + 76, 0, 76, 76, 0, 0, 0, 313, 1208, 1207, + 0, 0, 444, 445, 446, 1201, 449, 1203, 0, 0, + 313, 0, 0, 453, 0, 299, 0, 186, 0, 0, + 0, 0, 0, 0, 0, 76, 0, 0, 0, 1213, + 1084, 0, 0, 1228, 0, 1040, 0, 0, 76, 186, + 0, 0, 0, 1146, 1083, 76, 0, 1225, 0, 0, + 1148, 0, 0, 76, 0, 0, 186, 1227, 1242, 1236, + 0, 1253, 0, 0, 313, 0, 313, 1163, 1164, 1165, + 1252, 0, 1168, 0, 313, 0, 0, 1084, 0, 47, + 0, 1248, 0, 1249, 459, 463, 1180, 1181, 1182, 1268, + 1185, 1083, 0, 0, 0, 0, 0, 1272, 313, 0, + 0, 481, 0, 1269, 0, 0, 815, 0, 0, 0, + 1286, 0, 76, 0, 76, 76, 76, 186, 76, 0, + 0, 1291, 0, 0, 76, 776, 1293, 0, 0, 834, + 835, 836, 837, 1004, 815, 525, 1298, 0, 0, 0, + 0, 0, 0, 0, 536, 845, 846, 847, 0, 0, + 76, 76, 76, 1308, 1307, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1315, 0, 0, 0, 0, 0, + 0, 0, 712, 0, 1220, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 0, 1233, 1234, 1235, 0, 0, 0, 0, 0, 0, + 0, 76, 76, 0, 0, 0, 0, 0, 0, 962, + 0, 0, 0, 0, 76, 0, 0, 1257, 1258, 1259, + 1260, 0, 647, 0, 0, 0, 313, 76, 0, 460, + 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 667, 668, 669, 670, 671, 672, 673, 674, 76, + 0, 0, 0, 195, 0, 675, 676, 0, 0, 0, + 0, 0, 0, 1287, 184, 1166, 455, 209, 0, 1000, + 313, 1294, 313, 0, 0, 0, 0, 205, 0, 0, + 0, 0, 0, 0, 1299, 0, 0, 301, 76, 233, + 0, 184, 184, 1305, 0, 313, 0, 184, 0, 0, + 0, 0, 76, 489, 488, 498, 499, 491, 492, 493, + 494, 495, 496, 497, 490, 313, 0, 500, 0, 1319, + 1320, 0, 183, 0, 0, 0, 0, 0, 190, 0, + 0, 0, 0, 0, 192, 455, 0, 313, 0, 700, + 701, 198, 194, 0, 0, 0, 0, 0, 0, 0, + 304, 0, 0, 756, 0, 414, 1087, 962, 0, 756, + 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, + 0, 200, 489, 488, 498, 499, 491, 492, 493, 494, + 495, 496, 497, 490, 0, 313, 500, 313, 1110, 0, + 0, 0, 525, 0, 0, 753, 754, 0, 0, 191, + 0, 0, 0, 0, 184, 0, 184, 0, 905, 906, + 907, 0, 184, 0, 0, 0, 0, 0, 0, 184, + 1136, 1049, 0, 0, 0, 0, 193, 0, 201, 202, + 203, 204, 208, 1138, 0, 0, 0, 207, 206, 0, + 1141, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 1051, 0, 0, 0, 0, 0, 809, 0, 862, + 0, 864, 422, 0, 423, 0, 0, 0, 0, 883, + 430, 0, 0, 1061, 1062, 1063, 1060, 432, 1064, 0, + 1170, 0, 0, 1053, 0, 1057, 1059, 1052, 0, 1050, + 0, 0, 0, 0, 1055, 0, 0, 0, 0, 0, + 0, 0, 0, 1054, 0, 0, 0, 1188, 0, 1188, + 1188, 1188, 0, 1193, 0, 0, 1056, 1058, 0, 313, + 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, + 184, 576, 184, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 313, 313, 0, 888, + 889, 0, 463, 489, 488, 498, 499, 491, 492, 493, + 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, + 0, 0, 1149, 1150, 0, 1151, 0, 0, 1153, 0, + 1155, 554, 1157, 1158, 1159, 1160, 1161, 1162, 0, 0, + 578, 0, 0, 0, 1167, 0, 1229, 1230, 0, 1044, + 1045, 0, 0, 0, 0, 0, 0, 0, 0, 1110, + 0, 0, 1067, 1068, 915, 1070, 1071, 0, 0, 0, + 0, 0, 1188, 0, 0, 0, 0, 0, 0, 932, + 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, + 184, 184, 0, 0, 184, 0, 0, 184, 0, 0, + 0, 665, 0, 0, 0, 1001, 0, 489, 488, 498, + 499, 491, 492, 493, 494, 495, 496, 497, 490, 0, + 756, 500, 184, 1295, 0, 0, 0, 0, 0, 0, + 1028, 0, 0, 0, 0, 1043, 0, 1301, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 654, 655, + 665, 0, 658, 0, 0, 661, 489, 488, 498, 499, + 491, 492, 493, 494, 495, 496, 497, 490, 0, 0, + 500, 0, 0, 1147, 0, 0, 0, 0, 0, 0, + 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 233, 0, 0, 0, 0, 233, 233, 699, + 0, 757, 757, 233, 0, 0, 0, 757, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 233, 233, + 233, 233, 0, 184, 0, 757, 184, 184, 184, 184, + 184, 0, 0, 0, 0, 0, 0, 1075, 790, 0, + 910, 184, 0, 0, 0, 576, 0, 0, 0, 0, + 184, 184, 0, 1091, 1092, 0, 0, 1093, 0, 0, + 1095, 489, 488, 498, 499, 491, 492, 493, 494, 495, + 496, 497, 490, 0, 0, 500, 0, 0, 0, 0, + 0, 773, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 620, 1215, 1216, 0, 1217, + 1218, 1219, 0, 0, 0, 0, 0, 0, 0, 801, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, + 184, 0, 0, 0, 0, 0, 0, 1143, 489, 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, - 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, - 1308, 1309, 0, 183, 0, 0, 0, 0, 0, 0, - 0, 0, 1306, 0, 0, 0, 0, 0, 0, 1040, - 0, 0, 0, 313, 0, 313, 23, 24, 48, 26, - 27, 304, 0, 313, 0, 0, 414, 0, 0, 0, - 0, 1064, 0, 1255, 0, 42, 0, 0, 0, 0, - 28, 0, 184, 0, 184, 0, 0, 313, 0, 0, - 184, 0, 0, 0, 0, 0, 0, 184, 0, 37, - 0, 0, 0, 50, 0, 1274, 525, 0, 0, 0, - 0, 0, 0, 0, 463, 0, 0, 0, 0, 815, - 0, 815, 0, 0, 0, 0, 0, 0, 647, 0, - 0, 0, 0, 0, 0, 0, 656, 0, 0, 0, - 0, 0, 1295, 0, 0, 0, 0, 667, 668, 669, - 670, 671, 672, 673, 674, 0, 0, 0, 0, 0, - 0, 675, 676, 30, 31, 33, 32, 35, 0, 0, - 0, 0, 0, 422, 0, 423, 0, 0, 0, 0, - 0, 430, 1040, 0, 36, 43, 44, 0, 432, 45, - 46, 34, 0, 0, 0, 0, 0, 0, 962, 0, - 0, 184, 0, 38, 39, 0, 40, 41, 184, 576, - 184, 484, 0, 487, 0, 313, 0, 0, 0, 501, - 502, 503, 504, 505, 506, 507, 0, 485, 486, 483, - 508, 489, 488, 498, 499, 491, 492, 493, 494, 495, - 496, 497, 490, 0, 0, 500, 0, 0, 815, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1000, 313, - 0, 313, 0, 489, 488, 498, 499, 491, 492, 493, - 494, 495, 496, 497, 490, 1004, 815, 500, 0, 0, - 0, 0, 0, 0, 313, 0, 49, 0, 0, 0, - 0, 0, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 578, 0, 0, 313, 488, 498, 499, 491, 492, - 493, 494, 495, 496, 497, 490, 1156, 0, 500, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 184, 184, - 0, 0, 184, 0, 0, 184, 0, 0, 0, 665, - 0, 0, 756, 0, 0, 1082, 962, 0, 756, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 0, 0, 0, 0, 862, 0, 864, 0, 0, - 0, 0, 0, 0, 313, 883, 313, 1105, 0, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 665, 489, - 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 0, 0, 500, 0, 0, 0, 0, 0, 1131, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, - 655, 0, 1133, 658, 0, 0, 661, 0, 0, 1136, - 233, 0, 0, 0, 0, 233, 233, 313, 0, 757, - 757, 233, 0, 0, 0, 757, 0, 0, 0, 0, - 0, 680, 0, 0, 0, 0, 233, 233, 233, 233, - 0, 184, 0, 757, 184, 184, 184, 184, 184, 0, - 699, 0, 0, 0, 0, 0, 790, 0, 0, 184, - 0, 0, 0, 576, 1043, 0, 0, 0, 184, 184, - 0, 1177, 0, 1177, 1177, 1177, 0, 1182, 0, 0, - 0, 0, 0, 313, 0, 489, 488, 498, 499, 491, - 492, 493, 494, 495, 496, 497, 490, 0, 910, 500, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 313, 313, 0, 0, 0, 0, 0, 0, 0, 489, - 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 0, 773, 500, 0, 0, 184, 620, 0, 0, - 0, 0, 0, 0, 0, 184, 0, 0, 184, 0, - 0, 1001, 0, 0, 1218, 1219, 0, 0, 0, 0, - 801, 0, 0, 0, 0, 0, 0, 1105, 0, 0, - 0, 0, 0, 665, 0, 0, 1028, 0, 0, 0, - 1177, 0, 0, 0, 0, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 857, 0, 0, - 0, 0, 233, 0, 0, 0, 881, 0, 756, 882, - 0, 1284, 0, 0, 621, 0, 0, 0, 233, 0, - 0, 0, 0, 0, 0, 1290, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 634, 635, 636, 637, 638, - 639, 640, 0, 641, 642, 643, 644, 645, 622, 623, - 624, 625, 606, 607, 0, 0, 609, 184, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 626, 627, - 628, 629, 630, 631, 632, 633, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 500, 0, 0, 665, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, + 0, 0, 608, 0, 0, 0, 857, 0, 0, 0, + 1206, 0, 1174, 0, 0, 881, 0, 0, 882, 0, + 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 621, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, + 0, 0, 0, 634, 635, 636, 637, 638, 639, 640, + 233, 641, 642, 643, 644, 645, 622, 623, 624, 625, + 606, 607, 0, 0, 609, 1317, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 626, 627, 628, 629, + 630, 631, 632, 633, 484, 0, 487, 0, 0, 184, + 0, 0, 501, 502, 503, 504, 505, 506, 507, 0, + 485, 486, 483, 508, 489, 488, 498, 499, 491, 492, + 493, 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1032, 1033, 0, 0, 0, 0, 0, - 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 665, 0, 0, 0, 0, 0, 0, 0, - 0, 1195, 0, 0, 0, 0, 0, 0, 757, 0, - 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1032, 1033, 0, 0, 0, + 0, 1285, 525, 184, 0, 0, 0, 0, 0, 0, + 463, 0, 0, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 665, 0, 0, 0, 1306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 757, 0, 0, 0, 0, 0, 757, 0, 0, 0, + 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1127, 0, - 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1132, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 399, 389, 0, + 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, + 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, + 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, + 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, + 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, + 816, 817, 0, 0, 0, 0, 0, 86, 0, 379, + 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, + 345, 346, 974, 0, 0, 0, 0, 0, 0, 364, + 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, + 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, + 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, + 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, + 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 757, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, + 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, + 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, + 108, 169, 133, 95, 160, 399, 389, 0, 361, 401, + 339, 353, 409, 354, 355, 382, 325, 369, 125, 351, + 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, + 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, + 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, + 352, 380, 403, 0, 0, 0, 75, 0, 816, 817, + 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, + 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, + 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, + 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, + 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, + 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, + 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, + 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, + 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, + 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, + 133, 95, 160, 399, 389, 0, 361, 401, 339, 353, + 409, 354, 355, 382, 325, 369, 125, 351, 0, 342, + 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, + 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, + 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, + 403, 50, 0, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, + 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, + 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, + 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, + 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, + 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, + 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, + 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, + 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, + 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, + 390, 0, 0, 373, 77, 0, 108, 169, 133, 95, + 160, 399, 389, 0, 361, 401, 339, 353, 409, 354, + 355, 382, 325, 369, 125, 351, 0, 342, 320, 348, + 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, + 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, + 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, + 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, + 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, + 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, + 0, 0, 0, 0, 1039, 0, 343, 0, 375, 0, + 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, + 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, + 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, + 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, + 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, + 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, + 0, 373, 77, 0, 108, 169, 133, 95, 160, 399, + 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, + 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, + 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, + 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, + 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, + 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, + 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, + 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, + 0, 0, 708, 0, 343, 0, 375, 0, 0, 0, + 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, + 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, + 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, + 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, + 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, + 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, + 77, 0, 108, 169, 133, 95, 160, 399, 389, 0, + 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, + 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, + 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, + 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, + 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, + 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, + 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, + 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, + 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, + 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, + 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, + 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, + 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, + 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, + 108, 169, 133, 95, 160, 399, 389, 0, 361, 401, + 339, 353, 409, 354, 355, 382, 325, 369, 125, 351, + 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, + 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, + 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, + 352, 380, 403, 0, 0, 0, 238, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, + 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, + 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, + 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, + 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, + 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, + 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, + 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, + 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, + 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, + 133, 95, 160, 399, 389, 0, 361, 401, 339, 353, + 409, 354, 355, 382, 325, 369, 125, 351, 0, 342, + 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, + 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, + 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, + 403, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, + 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, + 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, + 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, + 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, + 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, + 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, + 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 316, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, + 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, + 0, 0, 317, 315, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, + 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, + 390, 0, 0, 373, 77, 0, 108, 169, 133, 95, + 160, 399, 389, 0, 361, 401, 339, 353, 409, 354, + 355, 382, 325, 369, 125, 351, 0, 342, 320, 348, + 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, + 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, + 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, + 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, + 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, + 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 343, 0, 375, 0, + 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, + 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, + 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, + 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, + 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, + 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, + 0, 373, 77, 0, 108, 169, 133, 95, 160, 399, + 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, + 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, + 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, + 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, + 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, + 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, + 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, + 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, + 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, + 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, + 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 586, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 316, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, + 395, 165, 166, 167, 168, 0, 0, 0, 317, 315, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, + 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, + 77, 0, 108, 169, 133, 95, 160, 399, 389, 0, + 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, + 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, + 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, + 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, + 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, + 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, + 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, + 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, + 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, + 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, + 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, + 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 307, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 316, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, + 166, 167, 168, 0, 0, 0, 317, 315, 310, 309, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, + 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, + 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 744, 0, + 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, + 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, + 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, + 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 248, 249, 231, 0, 0, 0, 291, + 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, + 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, + 280, 0, 276, 77, 0, 108, 169, 133, 95, 160, + 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, + 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 0, 455, 238, 258, + 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, + 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, - 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, - 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, - 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, - 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, - 0, 75, 0, 816, 817, 0, 0, 0, 0, 0, - 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, - 326, 408, 396, 345, 346, 974, 0, 0, 0, 0, - 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, - 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, - 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, - 356, 400, 131, 0, 757, 145, 98, 97, 106, 392, - 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, - 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, - 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, - 373, 77, 0, 108, 169, 133, 95, 160, 399, 389, - 0, 361, 401, 339, 353, 409, 354, 355, 382, 325, - 369, 125, 351, 0, 342, 320, 348, 321, 340, 363, - 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, - 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, - 330, 376, 402, 352, 380, 403, 0, 0, 0, 75, - 0, 816, 817, 0, 0, 0, 0, 0, 86, 0, - 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, - 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, - 364, 368, 384, 358, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 343, 0, 375, 0, 0, 0, 327, - 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, - 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, - 131, 0, 0, 145, 98, 97, 106, 392, 341, 349, - 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, - 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, - 0, 108, 169, 133, 95, 160, 399, 389, 0, 361, - 401, 339, 353, 409, 354, 355, 382, 325, 369, 125, - 351, 0, 342, 320, 348, 321, 340, 363, 93, 366, - 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, - 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, - 402, 352, 380, 403, 50, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, - 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, - 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, - 384, 358, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, - 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, - 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, - 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, - 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, - 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, - 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, - 169, 133, 95, 160, 399, 389, 0, 361, 401, 339, - 353, 409, 354, 355, 382, 325, 369, 125, 351, 0, - 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, - 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, - 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, - 380, 403, 0, 0, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, - 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, - 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, - 0, 0, 0, 0, 0, 0, 0, 1039, 0, 343, - 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, - 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, - 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, - 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, - 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, - 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, - 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, - 0, 390, 0, 0, 373, 77, 0, 108, 169, 133, - 95, 160, 399, 389, 0, 361, 401, 339, 353, 409, - 354, 355, 382, 325, 369, 125, 351, 0, 342, 320, - 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, - 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, - 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, - 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, - 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, - 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, - 0, 0, 0, 0, 0, 708, 0, 343, 0, 375, - 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, - 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, - 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, - 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, + 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, + 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, + 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, + 273, 274, 275, 277, 0, 280, 0, 276, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, + 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, + 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, + 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, + 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 248, 249, 231, 0, 0, 0, 291, + 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, - 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, - 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, - 0, 0, 373, 77, 0, 108, 169, 133, 95, 160, - 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, - 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, - 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, - 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, - 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, - 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, - 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, - 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, - 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, - 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, - 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, - 337, 395, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, - 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, - 373, 77, 0, 108, 169, 133, 95, 160, 399, 389, - 0, 361, 401, 339, 353, 409, 354, 355, 382, 325, - 369, 125, 351, 0, 342, 320, 348, 321, 340, 363, - 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, - 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, - 330, 376, 402, 352, 380, 403, 0, 0, 0, 238, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, - 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, - 364, 368, 384, 358, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 343, 0, 375, 0, 0, 0, 327, - 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, - 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, - 131, 0, 0, 145, 98, 97, 106, 392, 341, 349, - 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, + 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, + 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, + 280, 0, 276, 77, 0, 108, 169, 133, 95, 160, + 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, + 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, + 0, 0, 0, 808, 0, 50, 0, 0, 238, 258, + 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, + 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, + 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, + 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, + 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, + 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, + 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, + 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, + 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, + 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, + 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, + 273, 274, 275, 277, 23, 280, 0, 276, 77, 0, + 108, 169, 133, 95, 160, 0, 125, 0, 0, 0, + 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, + 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, + 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, + 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, + 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 281, 290, 287, 288, 285, + 286, 284, 283, 282, 292, 272, 273, 274, 275, 277, + 0, 280, 0, 276, 77, 0, 108, 169, 133, 95, + 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, + 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, + 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, + 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, + 249, 0, 0, 0, 0, 291, 0, 250, 0, 0, + 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 289, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, - 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, - 0, 108, 169, 133, 95, 160, 399, 389, 0, 361, - 401, 339, 353, 409, 354, 355, 382, 325, 369, 125, - 351, 0, 342, 320, 348, 321, 340, 363, 93, 366, - 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, - 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, - 402, 352, 380, 403, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, - 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, - 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, - 384, 358, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, - 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, - 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, - 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, - 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 316, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, - 167, 168, 0, 0, 0, 317, 315, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, - 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, - 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, - 169, 133, 95, 160, 399, 389, 0, 361, 401, 339, - 353, 409, 354, 355, 382, 325, 369, 125, 351, 0, - 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, - 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, - 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, - 380, 403, 0, 0, 0, 185, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, - 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, - 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, - 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, - 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, - 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, - 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, - 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, + 281, 290, 287, 288, 285, 286, 284, 283, 282, 292, + 272, 273, 274, 275, 277, 0, 280, 125, 276, 77, + 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, + 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, + 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, + 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, + 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 1318, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, - 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, - 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, - 0, 390, 0, 0, 373, 77, 0, 108, 169, 133, - 95, 160, 399, 389, 0, 361, 401, 339, 353, 409, - 354, 355, 382, 325, 369, 125, 351, 0, 342, 320, - 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, - 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, - 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, - 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, - 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, - 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 343, 0, 375, - 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, - 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, - 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, - 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 586, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 316, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, - 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, - 0, 317, 315, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, - 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, - 0, 0, 373, 77, 0, 108, 169, 133, 95, 160, - 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, - 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, - 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, - 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, - 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, - 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, - 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, - 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, - 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, - 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, - 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 307, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 316, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, - 337, 395, 165, 166, 167, 168, 0, 0, 0, 317, - 315, 310, 309, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, - 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, - 373, 77, 0, 108, 169, 133, 95, 160, 125, 0, - 0, 744, 0, 240, 0, 0, 0, 93, 0, 237, - 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, - 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, - 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 248, 249, 231, 0, - 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, - 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, - 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, - 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, - 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, + 170, 126, 138, 88, 158, 141, 281, 290, 287, 288, + 285, 286, 284, 283, 282, 292, 272, 273, 274, 275, + 277, 0, 280, 125, 276, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 455, 238, 258, 257, 260, 261, 262, 263, 0, 0, - 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, - 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, - 282, 292, 272, 273, 274, 275, 277, 0, 280, 0, - 276, 77, 0, 108, 169, 133, 95, 160, 125, 0, - 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, - 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, - 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, - 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 248, 249, 231, 0, - 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, - 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, - 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, - 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, - 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, - 0, 0, 0, 0, 0, 0, 808, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, - 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, + 86, 259, 264, 265, 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, @@ -1291,19 +1384,18 @@ var yyAct = [...]int{ 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, - 282, 292, 272, 273, 274, 275, 277, 23, 280, 0, - 276, 77, 0, 108, 169, 133, 95, 160, 0, 125, - 0, 0, 0, 0, 240, 0, 0, 0, 93, 0, - 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, - 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, - 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, - 0, 0, 0, 291, 0, 250, 0, 0, 246, 247, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 289, 0, 131, 0, + 282, 292, 272, 273, 274, 275, 277, 0, 280, 125, + 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 489, 488, 498, 499, 491, 492, 493, + 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, @@ -1313,21 +1405,21 @@ var yyAct = [...]int{ 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 281, 290, - 287, 288, 285, 286, 284, 283, 282, 292, 272, 273, - 274, 275, 277, 0, 280, 0, 276, 77, 0, 108, - 169, 133, 95, 160, 125, 0, 0, 0, 0, 240, - 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, - 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, - 0, 86, 259, 264, 265, 266, 0, 0, 235, 251, - 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 248, 249, 0, 0, 0, 0, 291, 0, - 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, + 169, 133, 95, 160, 125, 0, 0, 0, 477, 0, + 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 479, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 474, 473, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 289, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, @@ -1337,84 +1429,84 @@ var yyAct = [...]int{ 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 281, 290, 287, 288, 285, 286, 284, - 283, 282, 292, 272, 273, 274, 275, 277, 0, 280, - 125, 276, 77, 0, 108, 169, 133, 95, 160, 93, - 0, 0, 0, 0, 107, 279, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, - 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, - 265, 266, 0, 0, 0, 251, 0, 278, 0, 0, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, - 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, - 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, + 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, + 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, + 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 71, 72, 0, 67, 0, 0, 0, 73, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 1307, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, + 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, + 156, 69, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, - 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, - 273, 274, 275, 277, 0, 280, 125, 276, 77, 0, - 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, - 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, - 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, - 0, 251, 0, 278, 0, 0, 0, 0, 0, 0, + 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 108, 169, 133, 95, 160, 125, 0, 0, 0, 575, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, + 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, - 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, + 0, 0, 0, 185, 0, 577, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 281, 290, 287, 288, 285, - 286, 284, 283, 282, 292, 272, 273, 274, 275, 277, - 0, 280, 125, 276, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 489, 488, 498, 499, - 491, 492, 493, 494, 495, 496, 497, 490, 0, 0, - 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, - 0, 477, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, + 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 0, 479, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 474, - 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 475, 0, 0, 0, + 0, 0, 50, 0, 0, 185, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1434,16 +1526,16 @@ var yyAct = [...]int{ 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 75, 0, 0, 695, 0, 0, 696, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 72, 0, 67, 0, 0, - 0, 73, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 69, 164, 147, 163, 78, 146, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, @@ -1451,36 +1543,36 @@ var yyAct = [...]int{ 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 70, 0, 0, 0, 0, 0, 0, + 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 595, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 108, 169, 133, 95, 160, 125, 0, - 0, 0, 575, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 0, 594, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 577, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, + 169, 133, 95, 160, 125, 0, 0, 0, 575, 0, + 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 185, 0, 577, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1488,7 +1580,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 573, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, @@ -1497,7 +1589,7 @@ var yyAct = [...]int{ 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 23, 0, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, @@ -1525,8 +1617,8 @@ var yyAct = [...]int{ 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 0, 0, 695, 0, 0, - 696, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 0, 577, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1545,10 +1637,10 @@ var yyAct = [...]int{ 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 595, 0, 0, 107, 0, 109, 0, + 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 594, 0, 0, 0, 0, 0, 0, 86, + 75, 0, 479, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1566,57 +1658,11 @@ var yyAct = [...]int{ 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, - 0, 575, 0, 0, 0, 0, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 577, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 573, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 77, 0, 108, 169, 133, 95, 160, 553, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 577, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1634,12 +1680,12 @@ var yyAct = [...]int{ 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 479, 0, 0, 0, 0, + 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1658,154 +1704,109 @@ var yyAct = [...]int{ 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 77, 0, 108, 169, 133, 95, 160, - 553, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, - 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 182, 0, 187, 0, 0, 0, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, + 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, + 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, - 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, + 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, + 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, + 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, + 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, + 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, + 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, + 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, + 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, + 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, + 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, + 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, + 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, + 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, + 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, + 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, + 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, + 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, + 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, + 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, + 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 108, 169, 133, 95, 160, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, + 169, 133, 95, 160, } var yyPact = [...]int{ - 1490, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 290, -1000, -183, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 860, 877, -1000, -1000, -1000, -1000, -1000, -1000, 654, - 7505, 40, 65, -3, 10236, 64, 196, 10914, -1000, -10, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 594, -1000, -1000, - -1000, -1000, -1000, 839, 857, 647, 831, 737, -1000, 5660, - 44, 9105, 10010, 4955, -1000, 496, 60, 10914, -151, 10462, - 36, 36, 36, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 827, 862, -1000, -1000, -1000, -1000, -1000, -1000, 642, + 7512, 47, 71, -6, 10243, 70, 1371, 10921, -1000, -16, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 644, -1000, -1000, + -1000, -1000, -1000, 803, 821, 660, 802, 730, -1000, 5667, + 42, 9112, 10017, 4962, -1000, 511, 64, 10921, -152, 10469, + 37, 37, 37, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1815,21 +1816,21 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 62, 10914, -1000, 10914, 35, 491, 35, - 35, 35, 10914, -1000, 93, -1000, -1000, -1000, -1000, 10914, - 489, 809, 31, 2971, 2971, 2971, 2971, -2, 2971, -87, - 691, -1000, -1000, -1000, -1000, 2971, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 399, 804, 6366, 6366, - 860, -1000, 594, -1000, -1000, -1000, 782, -1000, -1000, 246, - 867, -1000, 7279, 91, -1000, 6366, 1579, 602, -1000, -1000, - 602, -1000, -1000, 75, -1000, -1000, 6818, 6818, 6818, 6818, - 6818, 6818, 6818, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 602, -1000, 6131, - 602, 602, 602, 602, 602, 602, 602, 602, 6366, 602, - 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 602, 9784, 603, 754, -1000, -1000, -1000, 828, - 8192, 8879, 10914, 544, -1000, 590, 4707, -106, -1000, -1000, - -1000, 169, 8644, -1000, -1000, -1000, 808, -1000, -1000, -1000, + -1000, -1000, -1000, 67, 10921, -1000, 10921, 35, 496, 35, + 35, 35, 10921, -1000, 117, -1000, -1000, -1000, -1000, 10921, + 481, 762, 30, 2978, 2978, 2978, 2978, -11, 2978, -93, + 672, -1000, -1000, -1000, -1000, 2978, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 449, 778, 6373, 6373, + 827, -1000, 644, -1000, -1000, -1000, 756, -1000, -1000, 287, + 846, -1000, 7286, 116, -1000, 6373, 2102, 615, -1000, -1000, + 615, -1000, -1000, 81, -1000, -1000, 6825, 6825, 6825, 6825, + 6825, 6825, 6825, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 615, -1000, 6138, + 615, 615, 615, 615, 615, 615, 615, 615, 6373, 615, + 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, + 615, 615, 615, 9791, 623, 760, -1000, -1000, -1000, 795, + 8199, 8886, 10921, 560, -1000, 607, 4714, -98, -1000, -1000, + -1000, 227, 8651, -1000, -1000, -1000, 748, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1839,118 +1840,120 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 495, -1000, 1967, 487, 2971, 53, 604, 483, 197, 479, - 10914, 10914, 2971, 46, 10914, 826, 687, 10914, 478, 475, - -1000, 4459, -1000, 2971, 2971, 2971, 2971, 2971, 2971, 2971, - 2971, -1000, -1000, -1000, -1000, -1000, -1000, 2971, 2971, -1000, - -79, -1000, 10914, -1000, -1000, -1000, -1000, 872, 132, 401, - 83, 595, -1000, 327, 839, 399, 737, 8418, 702, -1000, - -1000, 10914, -1000, 6366, 6366, 315, -1000, 9557, -1000, -1000, - 3467, 155, 6818, 278, 224, 6818, 6818, 6818, 6818, 6818, - 6818, 6818, 6818, 6818, 6818, 6818, 6818, 6818, 6818, 6818, - 309, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 465, -1000, 594, 656, 656, 114, 114, 114, 114, 114, - 114, 7044, 5190, 399, 463, 180, 6131, 5660, 5660, 6366, - 6366, 10688, 10688, 5660, 833, 184, 180, 10688, 399, -1000, - 399, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5660, 5660, - 5660, 5660, 13, 10914, -1000, 10688, 9105, 9105, 9105, 9105, - 9105, -1000, 728, 727, -1000, 705, 704, 723, 10914, -1000, - 461, 8192, 116, 602, -1000, 9331, -1000, -1000, 13, 511, - 9105, 10914, -1000, -1000, 4211, 590, -106, 530, -1000, -108, - -128, 5895, 113, -1000, -1000, -1000, -1000, 2723, 330, 267, - -72, -1000, -1000, -1000, 608, -1000, 608, 608, 608, 608, - -36, -36, -36, -36, -1000, -1000, -1000, -1000, -1000, 652, - 650, -1000, 608, 608, 608, -1000, -1000, -1000, -1000, -1000, + 510, -1000, 1975, 473, 2978, 48, 621, 456, 236, 437, + 10921, 10921, 2978, 52, 10921, 792, 667, 10921, 434, 425, + -1000, 4466, -1000, 2978, 2978, 2978, 2978, 2978, 2978, 2978, + 2978, -1000, -1000, -1000, -1000, -1000, -1000, 2978, 2978, -1000, + -82, -1000, 10921, -1000, -1000, -1000, -1000, 853, 155, 424, + 102, 609, -1000, 224, 803, 449, 730, 8425, 688, -1000, + -1000, 10921, -1000, 6373, 6373, 341, -1000, 9564, -1000, -1000, + 3474, 159, 6825, 322, 280, 6825, 6825, 6825, 6825, 6825, + 6825, 6825, 6825, 6825, 6825, 6825, 6825, 6825, 6825, 6825, + 362, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 423, -1000, 644, 598, 598, 128, 128, 128, 128, 128, + 128, 7051, 5197, 449, 500, 266, 6138, 5667, 5667, 6373, + 6373, 10695, 10695, 5667, 797, 240, 266, 10695, 449, -1000, + 449, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5667, 5667, + 5667, 5667, 15, 10921, -1000, 10695, 9112, 9112, 9112, 9112, + 9112, -1000, 713, 712, -1000, 705, 704, 723, 10921, -1000, + 494, 8199, 115, 615, -1000, 9338, -1000, -1000, 15, 595, + 9112, 10921, -1000, -1000, 4218, 607, -98, 589, -1000, -108, + -132, 5902, 126, -1000, -1000, -1000, -1000, 2730, 133, 344, + -78, -1000, -1000, -1000, 617, -1000, 617, 617, 617, 617, + -45, -45, -45, -45, -1000, -1000, -1000, -1000, -1000, 638, + 635, -1000, 617, 617, 617, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 648, 648, 648, 631, 631, 658, -1000, 10914, -173, - 425, 2971, 825, 2971, -1000, 118, -1000, 10914, -1000, -1000, - 10914, 2971, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 235, -1000, -1000, - -1000, -1000, 757, 6366, 6366, 3963, 6366, -1000, -1000, -1000, - 804, -1000, 833, 851, -1000, 789, 787, 5660, -1000, -1000, - 155, 228, -1000, -1000, 280, -1000, -1000, -1000, -1000, 82, - 602, -1000, 1611, -1000, -1000, -1000, -1000, 278, 6818, 6818, - 6818, 115, 1611, 1887, 712, 1652, 114, 344, 344, 121, - 121, 121, 121, 121, 657, 657, -1000, -1000, -1000, 399, - -1000, -1000, -1000, 399, 5660, 584, -1000, -1000, 6366, -1000, - 399, 457, 457, 253, 396, 640, -1000, 81, 574, 457, - 5660, 230, -1000, 6366, 399, -161, -1000, 457, 399, 457, - 457, 538, 602, -1000, 636, -1000, 167, 754, 679, 684, - 481, -1000, -1000, -1000, -1000, 720, -1000, 706, -1000, -1000, - -1000, -1000, -1000, 59, 55, 49, 10462, -1000, 865, 9105, - 568, -1000, -1000, 530, -106, -88, -1000, -1000, -1000, 180, - -1000, 417, 524, 2475, -1000, -1000, -1000, -1000, -1000, -1000, - 646, 816, 145, 144, 376, -1000, -1000, 805, -1000, 212, - -78, -1000, -1000, 301, -36, -36, -1000, -1000, 113, 807, - 113, 113, 113, 351, 351, -1000, -1000, -1000, -1000, 294, - -1000, -1000, -1000, 274, -1000, 682, 10462, 2971, -1000, 3715, - -1000, -1000, -1000, -1000, -1000, -1000, 1186, 1034, 310, -1000, + -1000, 629, 629, 629, 618, 618, 626, -1000, 10921, -171, + 417, 2978, 791, 2978, -1000, 65, -1000, 10921, -1000, -1000, + 10921, 2978, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 231, -1000, -1000, + -1000, -1000, 725, 6373, 6373, 3970, 6373, -1000, -1000, -1000, + 778, -1000, 797, 815, -1000, 742, 741, 5667, -1000, -1000, + 159, 285, -1000, -1000, 291, -1000, -1000, -1000, -1000, 100, + 615, -1000, 1956, -1000, -1000, -1000, -1000, 322, 6825, 6825, + 6825, 295, 1956, 1879, 753, 422, 128, 232, 232, 130, + 130, 130, 130, 130, 118, 118, -1000, -1000, -1000, 449, + -1000, -1000, -1000, 449, 5667, 597, -1000, -1000, 6373, -1000, + 449, 492, 492, 405, 235, 625, -1000, 97, 620, 492, + 5667, 269, -1000, 6373, 449, -162, -1000, 492, 449, 492, + 492, 547, 615, -1000, 574, -1000, 184, 760, 665, 661, + 658, -1000, -1000, -1000, -1000, 703, -1000, 690, -1000, -1000, + -1000, -1000, -1000, 63, 61, 55, 10469, -1000, 833, 9112, + 573, -1000, -1000, 589, -98, -135, -1000, -1000, -1000, 266, + -1000, 408, 559, 2482, -1000, -1000, -1000, -1000, -1000, -1000, + 628, 783, 183, 145, 406, -1000, -1000, 765, -1000, 252, + -81, -1000, -1000, 369, -45, -45, -1000, -1000, 126, 746, + 126, 126, 126, 395, 395, -1000, -1000, -1000, -1000, 363, + -1000, -1000, -1000, 360, -1000, 657, 10469, 2978, -1000, 3722, + -1000, -1000, -1000, -1000, -1000, -1000, 356, 197, 146, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 12, -1000, 2971, -1000, 214, 10914, 10914, 753, 180, 180, - 80, -1000, -1000, 10914, -1000, -1000, -1000, -1000, 572, -1000, - -1000, -1000, 3219, 5660, -1000, 115, 1611, 1853, -1000, 6818, - 6818, -1000, -1000, 457, 5660, 180, -1000, -1000, -1000, 219, - 309, 219, 6818, 6818, 3963, 6818, 6818, -168, 582, 175, - -1000, 6366, 258, -1000, 602, -1000, -1000, -1000, -1000, 669, - 10688, 602, -1000, 7966, 10462, 860, 10688, 6366, 6366, -1000, - -1000, 6366, 642, -1000, 6366, -1000, -1000, -1000, 602, 602, - 602, 430, -1000, 860, 568, -1000, -1000, -1000, -130, -136, - -1000, -1000, 2723, -1000, 2723, 10462, -1000, 346, 329, -1000, - -1000, 661, 70, -1000, -1000, -1000, 439, 113, 113, -1000, - 148, -1000, -1000, -1000, 454, -1000, 438, 523, 436, 10914, - -1000, -1000, 519, -1000, 165, -1000, -1000, 10462, -1000, -1000, + 5, -1000, 2978, -1000, 298, 10921, 10921, 722, 266, 266, + 94, -1000, -1000, 10921, -1000, -1000, -1000, -1000, 580, -1000, + -1000, -1000, 3226, 5667, -1000, 295, 1956, 1774, -1000, 6825, + 6825, -1000, -1000, 492, 5667, 266, -1000, -1000, -1000, 1464, + 362, 1464, 6825, 6825, 3970, 6825, 6825, -165, 594, 173, + -1000, 6373, 278, -1000, 615, -1000, -1000, -1000, -1000, 653, + 10695, 615, -1000, 7973, 10469, 827, 10695, 6373, 6373, -1000, + -1000, 6373, 627, -1000, 6373, -1000, -1000, -1000, 615, 615, + 615, 454, -1000, 827, 573, -1000, -1000, -1000, -123, -107, + -1000, -1000, 2730, -1000, 2730, 10469, -1000, 404, 402, -1000, + -1000, 645, 76, -1000, -1000, -1000, 501, 126, 126, -1000, + 172, -1000, -1000, -1000, 489, -1000, 487, 544, 479, 10921, + -1000, -1000, 530, -1000, 176, -1000, -1000, 10469, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 10462, 10914, -1000, -1000, -1000, -1000, -1000, 10462, -1000, -1000, - 338, 6366, -1000, -1000, -1000, 3715, -1000, 865, 9105, -1000, - -1000, 399, -1000, 6818, 1611, 1611, -1000, -1000, 399, 608, - 608, -1000, 608, 631, -1000, 608, -19, 608, -20, -1000, - 399, 399, 686, 1737, -1000, 404, 1356, 602, -158, -1000, - 180, 6366, 11, -1000, 819, 500, 512, -1000, -1000, 5425, - 399, 432, 79, 430, 839, -1000, 180, 180, 180, 10462, - 180, 10462, 10462, 10462, 7740, 10462, 839, -1000, -1000, -1000, - -1000, 2475, -1000, 423, -1000, 608, -1000, -1000, -61, 871, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -36, 337, -36, 271, -1000, 268, 2971, 3715, 2723, - -1000, 605, -1000, -1000, -1000, -1000, 821, -1000, 180, 854, - 515, -1000, 1611, -1000, -1000, 85, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 6818, 6818, -1000, 6818, 6818, - 6818, 399, 335, 180, 859, 855, 815, -1000, 602, -1000, - -1000, 626, 10462, 10462, -1000, -1000, 421, -1000, 408, 408, - 408, 116, -1000, -1000, 106, 10462, -1000, 131, -1000, -141, - 113, -1000, 113, 424, 409, -1000, -1000, -1000, 10462, 602, - 862, 853, -1000, -1000, 917, 917, 917, 917, 7, -1000, - -1000, 852, 6366, 870, -1000, 602, -1000, 594, 78, -1000, - 10462, -1000, -1000, -1000, -1000, -1000, 106, -1000, 312, 163, - 331, -1000, 239, 814, -1000, 812, -1000, -1000, -1000, -1000, - -1000, 398, 9, -1000, 6366, 6366, -1000, -1000, -1000, -1000, - 399, 48, -176, 6366, 513, 180, 10688, 512, 399, 10462, - -1000, -1000, -1000, 252, -1000, -1000, -1000, 313, -1000, -1000, - 604, 362, -1000, 10462, 180, 508, -1000, 752, -171, -180, - 356, 6366, 502, -1000, -1000, -1000, -1000, -173, -1000, 9, - 771, -1000, 732, -1000, -1000, 180, -1000, -1000, 3, -174, - 0, -178, 602, -181, 6592, -1000, 917, 399, -1000, -1000, + 10469, 10921, -1000, -1000, -1000, -1000, -1000, 10469, -1000, -1000, + 394, 6373, -1000, -1000, -1000, 3722, -1000, 833, 9112, -1000, + -1000, 449, -1000, 6825, 1956, 1956, -1000, -1000, 449, 617, + 617, -1000, 617, 618, -1000, 617, -25, 617, -26, 617, + 617, 617, 617, 617, 617, 449, 449, 1361, 1725, -1000, + 687, 1611, 615, -159, -1000, 266, 6373, 4, -1000, 785, + 519, 524, -1000, -1000, 5432, 449, 477, 93, 454, 803, + -1000, 266, 266, 266, 10469, 266, 10469, 10469, 10469, 7747, + 10469, 803, -1000, -1000, -1000, -1000, 2482, -1000, 452, -1000, + 617, -1000, -1000, -73, 852, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -45, 393, -45, 358, + -1000, 355, 2978, 3722, 2730, -1000, 616, -1000, -1000, -1000, + -1000, 787, -1000, 266, 818, 529, -1000, 1956, -1000, -1000, + 73, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 6825, 6825, -1000, 6825, + 6825, 6825, 449, 392, 266, 826, 820, 782, -1000, 615, + -1000, -1000, 591, 10469, 10469, -1000, -1000, 448, -1000, 446, + 446, 446, 115, -1000, -1000, 107, 10469, -1000, 135, -1000, + -140, 126, -1000, 126, 495, 480, -1000, -1000, -1000, 10469, + 615, 829, 817, -1000, -1000, 1430, 1430, 1430, 1430, 6, + -1000, -1000, 816, 6373, 851, -1000, 615, -1000, 644, 90, + -1000, 10469, -1000, -1000, -1000, -1000, -1000, 107, -1000, 365, + 170, 387, -1000, 276, 771, -1000, 770, -1000, -1000, -1000, + -1000, -1000, 442, 3, -1000, 6373, 6373, -1000, -1000, -1000, + -1000, 449, 62, -174, 6373, 525, 266, 10695, 524, 449, + 10469, -1000, -1000, -1000, 324, -1000, -1000, -1000, 374, -1000, + -1000, 621, 412, -1000, 10469, 266, 515, -1000, 717, -169, + -177, 400, 6373, 514, -1000, -1000, -1000, -1000, -171, -1000, + 3, 738, -1000, 691, -1000, -1000, 266, -1000, -1000, 0, + -172, -2, -175, 615, -178, 6599, -1000, 1430, 449, -1000, + -1000, } var yyPgo = [...]int{ - 0, 1089, 21, 553, 1085, 1084, 1083, 1082, 1081, 1080, - 1079, 1078, 1076, 1073, 1072, 1071, 1069, 1066, 1065, 1060, - 1059, 1057, 1056, 1052, 95, 1051, 1048, 1046, 59, 1045, - 63, 1044, 1043, 34, 157, 37, 31, 300, 1041, 36, - 67, 60, 1034, 51, 1033, 1032, 66, 1031, 55, 1030, - 1029, 1438, 1028, 1026, 15, 25, 1022, 1021, 1008, 1005, - 61, 177, 1004, 1003, 1002, 1001, 1000, 999, 44, 5, - 7, 11, 13, 998, 53, 8, 996, 43, 995, 993, - 992, 989, 27, 4, 45, 988, 986, 983, 17, 46, - 982, 14, 52, 26, 23, 9, 65, 50, 980, 29, - 58, 40, 979, 978, 359, 977, 975, 974, 970, 969, - 968, 140, 264, 966, 963, 957, 954, 33, 167, 841, - 586, 64, 951, 948, 947, 1347, 57, 54, 20, 945, - 35, 1153, 41, 943, 939, 30, 938, 937, 936, 930, - 929, 927, 926, 73, 925, 924, 922, 28, 18, 921, - 920, 49, 32, 919, 917, 913, 39, 47, 912, 42, - 910, 909, 908, 904, 24, 19, 900, 10, 899, 6, - 895, 894, 2, 891, 16, 890, 3, 889, 12, 38, - 888, 887, 0, 163, 886, 885, 92, + 0, 1058, 24, 510, 1057, 1056, 1055, 1051, 1049, 1048, + 1047, 1046, 1044, 1041, 1038, 1037, 1036, 1035, 1034, 1033, + 1032, 1031, 1028, 1026, 128, 1023, 1022, 1021, 59, 1020, + 63, 1019, 1016, 34, 186, 37, 35, 1015, 1014, 30, + 65, 60, 1013, 43, 1012, 1008, 71, 1007, 55, 1006, + 1005, 1437, 995, 994, 16, 39, 992, 991, 990, 989, + 61, 839, 986, 984, 983, 982, 980, 979, 45, 3, + 12, 14, 17, 978, 126, 7, 975, 44, 973, 972, + 971, 970, 23, 6, 46, 966, 965, 955, 26, 49, + 951, 10, 54, 31, 18, 8, 64, 51, 946, 27, + 52, 41, 945, 943, 402, 939, 938, 937, 936, 934, + 933, 132, 399, 932, 930, 929, 928, 33, 167, 562, + 149, 58, 927, 925, 924, 1379, 57, 53, 19, 923, + 22, 957, 32, 918, 917, 40, 915, 914, 913, 912, + 910, 909, 908, 672, 907, 905, 901, 28, 29, 900, + 899, 50, 21, 898, 897, 896, 36, 47, 894, 42, + 893, 892, 890, 889, 20, 13, 887, 11, 886, 9, + 885, 882, 2, 880, 15, 879, 5, 878, 4, 38, + 877, 876, 0, 151, 874, 873, 93, } var yyR1 = [...]int{ @@ -2002,19 +2005,19 @@ var yyR1 = [...]int{ 86, 86, 87, 87, 64, 64, 64, 64, 64, 64, 64, 64, 186, 186, 66, 66, 66, 66, 31, 31, 31, 31, 31, 132, 132, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 78, - 78, 32, 32, 76, 76, 77, 79, 79, 75, 75, - 75, 60, 60, 60, 60, 60, 60, 60, 60, 62, - 62, 62, 80, 80, 81, 81, 82, 82, 83, 83, - 84, 85, 85, 85, 88, 88, 88, 88, 89, 89, - 89, 59, 59, 59, 59, 59, 59, 90, 90, 90, - 90, 94, 94, 70, 70, 72, 72, 71, 73, 95, - 95, 99, 96, 96, 100, 100, 100, 98, 98, 98, - 124, 124, 124, 103, 103, 111, 111, 112, 112, 104, - 104, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 114, 114, 114, 115, 115, 116, 116, 116, 123, - 123, 119, 119, 120, 120, 125, 125, 126, 126, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 78, 78, 32, 32, 76, 76, + 77, 79, 79, 75, 75, 75, 60, 60, 60, 60, + 60, 60, 60, 60, 62, 62, 62, 80, 80, 81, + 81, 82, 82, 83, 83, 84, 85, 85, 85, 88, + 88, 88, 88, 89, 89, 89, 59, 59, 59, 59, + 59, 59, 90, 90, 90, 90, 94, 94, 70, 70, + 72, 72, 71, 73, 95, 95, 99, 96, 96, 100, + 100, 100, 98, 98, 98, 124, 124, 124, 103, 103, + 111, 111, 112, 112, 104, 104, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 114, 114, 114, 115, + 115, 116, 116, 116, 123, 123, 119, 119, 120, 120, + 125, 125, 126, 126, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, @@ -2023,7 +2026,7 @@ var yyR1 = [...]int{ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, @@ -2032,8 +2035,8 @@ var yyR1 = [...]int{ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 182, - 183, 130, 131, 131, 131, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 182, 183, 130, 131, 131, 131, } var yyR2 = [...]int{ @@ -2085,18 +2088,18 @@ var yyR2 = [...]int{ 0, 3, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, 1, 2, 3, 3, 1, 2, - 2, 1, 2, 1, 2, 2, 1, 2, 1, 0, - 1, 0, 2, 1, 2, 4, 0, 2, 1, 3, - 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 0, 3, 0, 2, 0, 3, 1, 3, - 2, 0, 1, 1, 0, 2, 4, 4, 0, 2, - 4, 2, 1, 3, 5, 4, 6, 1, 3, 3, - 5, 0, 5, 1, 3, 1, 2, 3, 1, 1, - 3, 3, 1, 3, 3, 3, 3, 1, 2, 1, - 1, 1, 1, 1, 1, 0, 2, 0, 3, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, + 2, 2, 2, 2, 0, 1, 0, 2, 1, 2, + 4, 0, 2, 1, 3, 5, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 0, 3, 0, + 2, 0, 3, 1, 3, 2, 0, 1, 1, 0, + 2, 4, 4, 0, 2, 4, 2, 1, 3, 5, + 4, 6, 1, 3, 3, 5, 0, 5, 1, 3, + 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, + 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, + 0, 2, 0, 3, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2116,7 +2119,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -2226,165 +2229,169 @@ var yyChk = [...]int{ 88, 12, -125, -125, 38, 110, -51, -38, 11, 98, -120, -35, -33, 71, -61, -61, -183, -36, -135, 107, 175, 137, 173, 169, 189, 180, 202, 171, 203, 172, - -132, -135, -61, -61, -120, -61, -61, 246, -82, 79, - -37, 77, -182, -94, 51, -95, -70, -72, -71, -182, - -2, -90, -119, -93, -82, -99, -37, -37, -37, 53, - -37, -182, -182, -182, -183, 54, -82, -55, 220, 224, - 225, -164, -165, -168, -167, -119, 56, 56, -146, 51, - 58, 59, 60, 67, 227, 66, 55, -148, -148, 56, - 107, 55, 54, 55, 54, 55, 54, -51, 54, 80, - -130, -119, -130, -119, -51, -130, -119, 58, -37, -55, - -39, -183, -61, -183, -143, -143, -143, -152, -143, 163, - -143, 163, -183, -183, -183, 54, 19, -183, 54, 19, - -182, -32, 242, -37, -86, 143, 27, -94, 54, -183, - -183, -183, 54, 110, -183, -88, -91, -119, -91, -91, - -91, -128, -119, -88, 55, 54, -143, -154, 200, 9, - -147, 58, -147, 59, 59, -131, -174, -165, 53, 26, - -80, 13, -147, 56, -61, -61, -61, -61, -61, -183, - 58, 15, 16, 28, -72, 33, -2, -182, -119, -119, - 54, 55, -183, -183, -183, -54, -170, -169, 52, 133, - 65, -167, -155, 127, 28, 126, 227, -148, -148, 55, - 55, -91, -182, -81, 14, 16, -183, -183, -183, -183, - -31, 90, 249, 16, -87, -37, 9, -70, -2, 110, - -119, -169, 56, -160, 80, 58, -145, 65, 28, 28, - 55, -171, -172, 143, -37, -69, -183, 247, 48, 250, - -83, 54, -95, -183, -119, 59, 58, -178, -183, 54, - -119, 38, 248, 251, -183, -37, -176, -172, 33, 38, - 145, 249, 146, 250, -182, 251, -61, 142, -183, -183, + 162, 159, 160, 161, 164, -132, -135, -61, -61, -120, + -61, -61, 246, -82, 79, -37, 77, -182, -94, 51, + -95, -70, -72, -71, -182, -2, -90, -119, -93, -82, + -99, -37, -37, -37, 53, -37, -182, -182, -182, -183, + 54, -82, -55, 220, 224, 225, -164, -165, -168, -167, + -119, 56, 56, -146, 51, 58, 59, 60, 67, 227, + 66, 55, -148, -148, 56, 107, 55, 54, 55, 54, + 55, 54, -51, 54, 80, -130, -119, -130, -119, -51, + -130, -119, 58, -37, -55, -39, -183, -61, -183, -143, + -143, -143, -152, -143, 163, -143, 163, -143, -143, -143, + -143, -143, -143, -183, -183, -183, 54, 19, -183, 54, + 19, -182, -32, 242, -37, -86, 143, 27, -94, 54, + -183, -183, -183, 54, 110, -183, -88, -91, -119, -91, + -91, -91, -128, -119, -88, 55, 54, -143, -154, 200, + 9, -147, 58, -147, 59, 59, -131, -174, -165, 53, + 26, -80, 13, -147, 56, -61, -61, -61, -61, -61, + -183, 58, 15, 16, 28, -72, 33, -2, -182, -119, + -119, 54, 55, -183, -183, -183, -54, -170, -169, 52, + 133, 65, -167, -155, 127, 28, 126, 227, -148, -148, + 55, 55, -91, -182, -81, 14, 16, -183, -183, -183, + -183, -31, 90, 249, 16, -87, -37, 9, -70, -2, + 110, -119, -169, 56, -160, 80, 58, -145, 65, 28, + 28, 55, -171, -172, 143, -37, -69, -183, 247, 48, + 250, -83, 54, -95, -183, -119, 59, 58, -178, -183, + 54, -119, 38, 248, 251, -183, -37, -176, -172, 33, + 38, 145, 249, 146, 250, -182, 251, -61, 142, -183, + -183, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 516, 0, 277, 277, 277, 277, 277, 277, 0, - 586, 569, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 791, 791, 791, 791, 791, 0, 33, 34, - 789, 1, 3, 524, 0, 0, 281, 284, 279, 0, - 569, 0, 0, 0, 60, 0, 0, 778, 0, 779, - 567, 567, 567, 587, 588, 591, 592, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, - 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, - 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 780, 781, 782, 783, 784, 785, - 786, 787, 788, 0, 0, 570, 0, 565, 0, 565, - 565, 565, 0, 226, 349, 595, 596, 778, 779, 0, - 0, 0, 0, 792, 792, 792, 792, 0, 792, 255, - 244, 246, 247, 248, 249, 792, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 528, 0, 0, - 516, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 21, 521, 0, 277, 277, 277, 277, 277, 277, 0, + 591, 574, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 796, 796, 796, 796, 796, 0, 33, 34, + 794, 1, 3, 529, 0, 0, 281, 284, 279, 0, + 574, 0, 0, 0, 60, 0, 0, 783, 0, 784, + 572, 572, 572, 592, 593, 596, 597, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, + 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, + 779, 780, 781, 782, 785, 786, 787, 788, 789, 790, + 791, 792, 793, 0, 0, 575, 0, 570, 0, 570, + 570, 570, 0, 226, 349, 600, 601, 783, 784, 0, + 0, 0, 0, 797, 797, 797, 797, 0, 797, 255, + 244, 246, 247, 248, 249, 797, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 533, 0, 0, + 521, 29, 0, 277, 282, 283, 287, 285, 286, 278, 0, 295, 299, 0, 357, 0, 362, 364, -2, -2, 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, - 0, 0, 0, 427, 428, 429, 430, 501, 502, 503, - 504, 505, 506, 507, 508, 366, 367, 498, 548, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, + 0, 0, 0, 427, 428, 429, 430, 506, 507, 508, + 509, 510, 511, 512, 513, 366, 367, 503, 553, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 494, 0, 0, 462, 462, 462, 462, 462, 462, 462, 462, 0, 0, 0, 0, 0, 0, 306, 308, 309, 310, -2, - 0, 332, 0, 0, 41, 45, 0, 769, 552, -2, - -2, 0, 0, 593, 594, -2, 698, -2, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 0, 77, 0, 0, 792, 0, 67, 0, 0, 0, - 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 227, 792, 792, 792, 792, 792, 792, 792, - 792, 236, 793, 794, 237, 238, 239, 792, 792, 241, - 0, 256, 0, 250, 28, 790, 22, 0, 0, 525, - 0, 517, 518, 521, 524, 27, 284, 0, 289, 288, + 0, 332, 0, 0, 41, 45, 0, 774, 557, -2, + -2, 0, 0, 598, 599, -2, 703, -2, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 0, 77, 0, 0, 797, 0, 67, 0, 0, 0, + 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 227, 797, 797, 797, 797, 797, 797, 797, + 797, 236, 798, 799, 237, 238, 239, 797, 797, 241, + 0, 256, 0, 250, 28, 795, 22, 0, 0, 530, + 0, 522, 523, 526, 529, 27, 284, 0, 289, 288, 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 385, 386, 387, 388, 389, 390, 391, 363, 0, 377, 0, 0, 0, 420, 421, 422, 423, 424, 425, 0, 291, 27, 0, 398, 0, 0, 0, 0, - 0, 0, 0, 0, 287, 0, 490, 0, 0, 454, + 0, 0, 0, 0, 287, 0, 495, 0, 0, 454, 0, 455, 456, 457, 458, 459, 460, 461, 0, 291, 0, 0, 43, 0, 348, 0, 0, 0, 0, 0, 0, 337, 0, 0, 340, 0, 0, 0, 0, 331, - 0, 0, 351, 742, 333, 0, 335, 336, -2, 0, - 0, 0, 39, 40, 0, 46, 769, 48, 49, 0, - 0, 0, 157, 560, 561, 562, 558, 185, 0, 140, + 0, 0, 351, 747, 333, 0, 335, 336, -2, 0, + 0, 0, 39, 40, 0, 46, 774, 48, 49, 0, + 0, 0, 157, 565, 566, 567, 563, 185, 0, 140, 136, 82, 83, 84, 129, 86, 129, 129, 129, 129, 154, 154, 154, 154, 112, 113, 114, 115, 116, 0, 0, 99, 129, 129, 129, 103, 119, 120, 121, 122, 123, 124, 125, 126, 87, 88, 89, 90, 91, 92, - 93, 131, 131, 131, 133, 133, 589, 62, 0, 70, - 0, 792, 0, 792, 75, 0, 201, 0, 220, 566, - 0, 792, 223, 224, 350, 597, 598, 228, 229, 230, + 93, 131, 131, 131, 133, 133, 594, 62, 0, 70, + 0, 797, 0, 797, 75, 0, 201, 0, 220, 571, + 0, 797, 223, 224, 350, 602, 603, 228, 229, 230, 231, 232, 233, 234, 235, 240, 243, 257, 251, 252, - 245, 529, 0, 0, 0, 0, 0, 520, 522, 523, - 528, 30, 287, 0, 509, 0, 0, 0, 290, 25, + 245, 534, 0, 0, 0, 0, 0, 525, 527, 528, + 533, 30, 287, 0, 514, 0, 0, 0, 290, 25, 358, 359, 361, 378, 0, 380, 382, 301, 297, 0, - 499, -2, 368, 369, 394, 395, 396, 0, 0, 0, + 504, -2, 368, 369, 394, 395, 396, 0, 0, 0, 0, 392, 373, 0, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 419, 473, 474, 0, - 417, 418, 426, 0, 0, 292, 293, 397, 0, 547, - 27, 0, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 496, 493, 0, 0, 0, 463, 0, 0, 0, - 0, 0, 0, 347, 355, 549, 0, 307, 326, 328, + 417, 418, 426, 0, 0, 292, 293, 397, 0, 552, + 27, 0, 0, 0, 0, 0, 503, 0, 0, 0, + 0, 501, 498, 0, 0, 0, 463, 0, 0, 0, + 0, 0, 0, 347, 355, 554, 0, 307, 326, 328, 0, 323, 338, 339, 341, 0, 343, 0, 345, 346, 312, 313, 314, 0, 0, 0, 0, 334, 355, 0, - 355, 42, 553, 47, 0, 0, 52, 53, 554, 555, - 556, 0, 76, 186, 188, 191, 192, 193, 78, 79, + 355, 42, 558, 47, 0, 0, 52, 53, 559, 560, + 561, 0, 76, 186, 188, 191, 192, 193, 78, 79, 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, - 95, 96, 97, 0, 98, 0, 0, 792, 64, 0, - 68, 69, 65, 568, 66, 791, 0, 0, 581, 202, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 0, 219, 792, 222, 260, 0, 0, 0, 526, 527, - 0, 519, 23, 0, 563, 564, 510, 511, 304, 379, + 95, 96, 97, 0, 98, 0, 0, 797, 64, 0, + 68, 69, 65, 573, 66, 796, 0, 0, 586, 202, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 0, 219, 797, 222, 260, 0, 0, 0, 531, 532, + 0, 524, 23, 0, 568, 569, 515, 516, 304, 379, 381, 383, 0, 291, 370, 392, 374, 0, 371, 0, 0, 365, 431, 0, 0, 399, -2, 434, 435, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, - 494, 0, 0, 448, 0, 464, 465, 466, 467, 541, - 0, 0, -2, 0, 0, 516, 0, 0, 0, 320, + 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, + 499, 0, 0, 448, 0, 464, 465, 466, 467, 546, + 0, 0, -2, 0, 0, 521, 0, 0, 0, 320, 327, 0, 0, 321, 0, 322, 342, 344, 0, 0, - 0, 0, 318, 516, 355, 38, 50, 51, 0, 0, + 0, 0, 318, 521, 355, 38, 50, 51, 0, 0, 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, 0, 109, 110, 111, 0, 127, 0, 0, 0, 0, - 590, 63, 71, 72, 0, 194, 791, 0, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 791, - 0, 0, 791, 582, 583, 584, 585, 0, 221, 242, - 0, 0, 258, 259, 530, 0, 24, 355, 0, 298, - 500, 0, 372, 0, 393, 375, 432, 294, 0, 129, - 129, 478, 129, 133, 481, 129, 483, 129, 486, 488, - 0, 0, 0, 0, 499, 0, 0, 0, 491, 447, - 497, 0, 450, 31, 0, 541, 531, 543, 545, 0, - 27, 0, 537, 0, 524, 550, 356, 551, 324, 0, - 329, 0, 0, 0, 332, 0, 524, 37, 54, 55, - 56, 187, 190, 0, 182, 129, 176, 177, 152, 0, - 144, 145, 146, 147, 148, 149, 130, 104, 105, 155, - 156, 154, 0, 154, 0, 134, 0, 792, 0, 0, - 195, 0, 196, 198, 199, 200, 0, 261, 262, 512, - 305, 433, 376, 436, 475, 154, 479, 480, 482, 484, - 485, 487, 438, 437, 439, 0, 0, 442, 0, 0, - 0, 0, 0, 495, 0, 0, 0, 32, 0, 546, - -2, 0, 0, 0, 44, 35, 0, 316, 0, 0, - 0, 351, 319, 36, 167, 0, 184, 159, 153, 0, - 157, 128, 157, 0, 0, 61, 73, 74, 0, 0, - 514, 0, 476, 477, 0, 0, 0, 0, 468, 446, - 492, 0, 0, 0, 544, 0, -2, 0, 539, 538, - 0, 325, 352, 353, 354, 315, 166, 168, 0, 173, - 0, 183, 164, 0, 161, 163, 151, 117, 118, 132, - 135, 0, 0, 26, 0, 0, 440, 441, 443, 444, - 0, 0, 0, 0, 451, 452, 0, 534, 27, 0, - 317, 169, 170, 0, 174, 172, 80, 0, 160, 162, - 67, 0, 215, 0, 515, 513, 445, 0, 0, 0, - 0, 0, 542, -2, 540, 171, 165, 70, 214, 0, - 0, 469, 0, 472, 449, 453, 197, 216, 0, 470, - 0, 0, 0, 0, 0, 471, 0, 0, 217, 218, + 595, 63, 71, 72, 0, 194, 796, 0, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 796, + 0, 0, 796, 587, 588, 589, 590, 0, 221, 242, + 0, 0, 258, 259, 535, 0, 24, 355, 0, 298, + 505, 0, 372, 0, 393, 375, 432, 294, 0, 129, + 129, 478, 129, 133, 481, 129, 483, 129, 486, 129, + 129, 129, 129, 129, 129, 0, 0, 0, 0, 504, + 0, 0, 0, 496, 447, 502, 0, 450, 31, 0, + 546, 536, 548, 550, 0, 27, 0, 542, 0, 529, + 555, 356, 556, 324, 0, 329, 0, 0, 0, 332, + 0, 529, 37, 54, 55, 56, 187, 190, 0, 182, + 129, 176, 177, 152, 0, 144, 145, 146, 147, 148, + 149, 130, 104, 105, 155, 156, 154, 0, 154, 0, + 134, 0, 797, 0, 0, 195, 0, 196, 198, 199, + 200, 0, 261, 262, 517, 305, 433, 376, 436, 475, + 154, 479, 480, 482, 484, 485, 487, 488, 489, 490, + 491, 492, 493, 438, 437, 439, 0, 0, 442, 0, + 0, 0, 0, 0, 500, 0, 0, 0, 32, 0, + 551, -2, 0, 0, 0, 44, 35, 0, 316, 0, + 0, 0, 351, 319, 36, 167, 0, 184, 159, 153, + 0, 157, 128, 157, 0, 0, 61, 73, 74, 0, + 0, 519, 0, 476, 477, 0, 0, 0, 0, 468, + 446, 497, 0, 0, 0, 549, 0, -2, 0, 544, + 543, 0, 325, 352, 353, 354, 315, 166, 168, 0, + 173, 0, 183, 164, 0, 161, 163, 151, 117, 118, + 132, 135, 0, 0, 26, 0, 0, 440, 441, 443, + 444, 0, 0, 0, 0, 451, 452, 0, 539, 27, + 0, 317, 169, 170, 0, 174, 172, 80, 0, 160, + 162, 67, 0, 215, 0, 520, 518, 445, 0, 0, + 0, 0, 0, 547, -2, 545, 171, 165, 70, 214, + 0, 0, 469, 0, 472, 449, 453, 197, 216, 0, + 470, 0, 0, 0, 0, 0, 471, 0, 0, 217, + 218, } var yyTok1 = [...]int{ @@ -5557,135 +5564,165 @@ yydefault: { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 488: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2496 + case 488: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2496 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + } + case 489: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2500 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + } + case 490: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2504 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + } + case 491: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2508 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + } + case 492: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2512 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + } + case 493: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2516 { - yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 489: + case 494: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2501 + //line sql.y:2521 { yyVAL.expr = nil } - case 490: + case 495: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2505 + //line sql.y:2525 { yyVAL.expr = yyDollar[1].expr } - case 491: + case 496: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2510 + //line sql.y:2530 { yyVAL.str = string("") } - case 492: + case 497: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2514 + //line sql.y:2534 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 493: + case 498: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2520 + //line sql.y:2540 { yyVAL.whens = []*When{yyDollar[1].when} } - case 494: + case 499: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2524 + //line sql.y:2544 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 495: + case 500: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2530 + //line sql.y:2550 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 496: + case 501: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2535 + //line sql.y:2555 { yyVAL.expr = nil } - case 497: + case 502: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2539 + //line sql.y:2559 { yyVAL.expr = yyDollar[2].expr } - case 498: + case 503: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2545 + //line sql.y:2565 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 499: + case 504: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2549 + //line sql.y:2569 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 500: + case 505: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2553 + //line sql.y:2573 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 501: + case 506: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2559 + //line sql.y:2579 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 502: + case 507: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2563 + //line sql.y:2583 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 503: + case 508: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2567 + //line sql.y:2587 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } - case 504: + case 509: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2571 + //line sql.y:2591 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 505: + case 510: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2575 + //line sql.y:2595 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 506: + case 511: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2579 + //line sql.y:2599 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 507: + case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2583 + //line sql.y:2603 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 508: + case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2587 + //line sql.y:2607 { yyVAL.expr = &NullVal{} } - case 509: + case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2593 + //line sql.y:2613 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5694,239 +5731,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 510: + case 515: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2602 + //line sql.y:2622 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 511: + case 516: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2606 + //line sql.y:2626 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 512: + case 517: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2611 + //line sql.y:2631 { yyVAL.exprs = nil } - case 513: + case 518: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2615 + //line sql.y:2635 { yyVAL.exprs = yyDollar[3].exprs } - case 514: + case 519: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2620 + //line sql.y:2640 { yyVAL.expr = nil } - case 515: + case 520: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2624 + //line sql.y:2644 { yyVAL.expr = yyDollar[2].expr } - case 516: + case 521: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2629 + //line sql.y:2649 { yyVAL.orderBy = nil } - case 517: + case 522: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2633 + //line sql.y:2653 { yyVAL.orderBy = yyDollar[3].orderBy } - case 518: + case 523: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2639 + //line sql.y:2659 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 519: + case 524: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2643 + //line sql.y:2663 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 520: + case 525: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2649 + //line sql.y:2669 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 521: + case 526: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2654 + //line sql.y:2674 { yyVAL.str = AscScr } - case 522: + case 527: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2658 + //line sql.y:2678 { yyVAL.str = AscScr } - case 523: + case 528: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2662 + //line sql.y:2682 { yyVAL.str = DescScr } - case 524: + case 529: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2667 + //line sql.y:2687 { yyVAL.limit = nil } - case 525: + case 530: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2671 + //line sql.y:2691 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 526: + case 531: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2675 + //line sql.y:2695 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 527: + case 532: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2679 + //line sql.y:2699 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 528: + case 533: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2684 + //line sql.y:2704 { yyVAL.str = "" } - case 529: + case 534: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2688 + //line sql.y:2708 { yyVAL.str = ForUpdateStr } - case 530: + case 535: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2692 + //line sql.y:2712 { yyVAL.str = ShareModeStr } - case 531: + case 536: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2705 + //line sql.y:2725 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 532: + case 537: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2709 + //line sql.y:2729 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 533: + case 538: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2713 + //line sql.y:2733 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 534: + case 539: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2718 + //line sql.y:2738 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 535: + case 540: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2722 + //line sql.y:2742 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 536: + case 541: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2726 + //line sql.y:2746 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 537: + case 542: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2733 + //line sql.y:2753 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 538: + case 543: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2737 + //line sql.y:2757 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 539: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2741 + //line sql.y:2761 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 540: + case 545: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2745 + //line sql.y:2765 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 541: + case 546: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2750 + //line sql.y:2770 { yyVAL.updateExprs = nil } - case 542: + case 547: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2754 + //line sql.y:2774 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 543: + case 548: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2760 + //line sql.y:2780 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 544: + case 549: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2764 + //line sql.y:2784 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 545: + case 550: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2770 + //line sql.y:2790 { yyVAL.valTuple = yyDollar[1].valTuple } - case 546: + case 551: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2774 + //line sql.y:2794 { yyVAL.valTuple = ValTuple{} } - case 547: + case 552: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2780 + //line sql.y:2800 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 548: + case 553: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2786 + //line sql.y:2806 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5934,306 +5971,306 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 549: + case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2796 + //line sql.y:2816 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 550: + case 555: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2800 + //line sql.y:2820 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 551: + case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2806 + //line sql.y:2826 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 552: + case 557: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2812 + //line sql.y:2832 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 553: + case 558: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2816 + //line sql.y:2836 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 554: + case 559: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2822 + //line sql.y:2842 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 555: + case 560: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2826 + //line sql.y:2846 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 556: + case 561: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2830 + //line sql.y:2850 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 558: + case 563: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2837 + //line sql.y:2857 { yyVAL.bytes = []byte("charset") } - case 560: + case 565: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2844 + //line sql.y:2864 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 561: + case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2848 + //line sql.y:2868 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 562: + case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2852 + //line sql.y:2872 { yyVAL.expr = &Default{} } - case 565: + case 570: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2861 + //line sql.y:2881 { yyVAL.byt = 0 } - case 566: + case 571: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2863 + //line sql.y:2883 { yyVAL.byt = 1 } - case 567: + case 572: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2866 + //line sql.y:2886 { yyVAL.empty = struct{}{} } - case 568: + case 573: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2868 + //line sql.y:2888 { yyVAL.empty = struct{}{} } - case 569: + case 574: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2871 + //line sql.y:2891 { yyVAL.str = "" } - case 570: + case 575: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2873 + //line sql.y:2893 { yyVAL.str = IgnoreStr } - case 571: + case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2877 + //line sql.y:2897 { yyVAL.empty = struct{}{} } - case 572: + case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2879 + //line sql.y:2899 { yyVAL.empty = struct{}{} } - case 573: + case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2881 + //line sql.y:2901 { yyVAL.empty = struct{}{} } - case 574: + case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2883 + //line sql.y:2903 { yyVAL.empty = struct{}{} } - case 575: + case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2885 + //line sql.y:2905 { yyVAL.empty = struct{}{} } - case 576: + case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2887 + //line sql.y:2907 { yyVAL.empty = struct{}{} } - case 577: + case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2889 + //line sql.y:2909 { yyVAL.empty = struct{}{} } - case 578: + case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2891 + //line sql.y:2911 { yyVAL.empty = struct{}{} } - case 579: + case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2893 + //line sql.y:2913 { yyVAL.empty = struct{}{} } - case 580: + case 585: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2895 + //line sql.y:2915 { yyVAL.empty = struct{}{} } - case 581: + case 586: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2898 + //line sql.y:2918 { yyVAL.empty = struct{}{} } - case 582: + case 587: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2900 + //line sql.y:2920 { yyVAL.empty = struct{}{} } - case 583: + case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2902 + //line sql.y:2922 { yyVAL.empty = struct{}{} } - case 584: + case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2906 + //line sql.y:2926 { yyVAL.empty = struct{}{} } - case 585: + case 590: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2908 + //line sql.y:2928 { yyVAL.empty = struct{}{} } - case 586: + case 591: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2911 + //line sql.y:2931 { yyVAL.empty = struct{}{} } - case 587: + case 592: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2913 + //line sql.y:2933 { yyVAL.empty = struct{}{} } - case 588: + case 593: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2915 + //line sql.y:2935 { yyVAL.empty = struct{}{} } - case 589: + case 594: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2918 + //line sql.y:2938 { yyVAL.colIdent = ColIdent{} } - case 590: + case 595: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2920 + //line sql.y:2940 { yyVAL.colIdent = yyDollar[2].colIdent } - case 591: + case 596: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2924 + //line sql.y:2944 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 592: + case 597: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2928 + //line sql.y:2948 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 594: + case 599: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2935 + //line sql.y:2955 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 595: + case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2941 + //line sql.y:2961 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 596: + case 601: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2945 + //line sql.y:2965 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 598: + case 603: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2952 + //line sql.y:2972 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 789: + case 794: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3168 + //line sql.y:3188 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 790: + case 795: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3177 + //line sql.y:3197 { decNesting(yylex) } - case 791: + case 796: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3182 + //line sql.y:3202 { forceEOF(yylex) } - case 792: + case 797: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3187 + //line sql.y:3207 { forceEOF(yylex) } - case 793: + case 798: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3191 + //line sql.y:3211 { forceEOF(yylex) } - case 794: + case 799: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3195 + //line sql.y:3215 { forceEOF(yylex) } diff --git a/sql.y b/sql.y index 0bb3751..10e183f 100644 --- a/sql.y +++ b/sql.y @@ -2492,9 +2492,29 @@ convert_type: { $$ = &ConvertType{Type: string($1)} } -| TIMESTAMP +| TIMESTAMP length_opt { - $$ = &ConvertType{Type: string($1)} + $$ = &ConvertType{Type: string($1), Length: $2} + } +| INT length_opt + { + $$ = &ConvertType{Type: string($1), Length: $2} + } +| TINYINT length_opt + { + $$ = &ConvertType{Type: string($1), Length: $2} + } +| SMALLINT length_opt + { + $$ = &ConvertType{Type: string($1), Length: $2} + } +| MEDIUMINT length_opt + { + $$ = &ConvertType{Type: string($1), Length: $2} + } +| BIGINT length_opt + { + $$ = &ConvertType{Type: string($1), Length: $2} } expression_opt: From 6a320c7f3fa2064e4b0f65709ec645ddcc0c98e2 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 29 Aug 2018 21:07:01 +0800 Subject: [PATCH 07/13] update: support string --- sql.go | 2206 ++++++++++++++++++++++++++++---------------------------- sql.y | 4 + 2 files changed, 1116 insertions(+), 1094 deletions(-) diff --git a/sql.go b/sql.go index f18940b..cd993e8 100644 --- a/sql.go +++ b/sql.go @@ -607,11 +607,11 @@ var yyExca = [...]int{ 152, 263, -2, 253, -1, 238, - 110, 600, - -2, 596, - -1, 239, 110, 601, -2, 597, + -1, 239, + 110, 602, + -2, 598, -1, 299, 1, 311, 5, 311, @@ -637,296 +637,331 @@ var yyExca = [...]int{ 253, 311, -2, 330, -1, 309, - 80, 759, + 80, 760, -2, 58, -1, 310, - 80, 720, + 80, 721, -2, 59, -1, 315, - 80, 704, - -2, 562, + 80, 705, + -2, 563, -1, 317, - 80, 741, - -2, 564, + 80, 742, + -2, 565, -1, 578, 52, 41, 54, 41, -2, 43, -1, 711, - 110, 603, - -2, 599, + 110, 604, + -2, 600, -1, 916, 5, 28, -2, 397, -1, 942, 5, 27, - -2, 537, - -1, 1181, - 5, 28, -2, 538, - -1, 1227, - 5, 27, - -2, 540, - -1, 1294, + -1, 1182, 5, 28, + -2, 539, + -1, 1228, + 5, 27, -2, 541, + -1, 1295, + 5, 28, + -2, 542, } const yyPrivate = 57344 -const yyLast = 11174 +const yyLast = 11276 var yyAct = [...]int{ - 269, 47, 1283, 524, 649, 858, 461, 243, 774, 1238, - 1187, 1109, 1081, 814, 268, 1003, 792, 1082, 1078, 572, - 813, 852, 211, 53, 523, 3, 217, 775, 838, 810, - 570, 961, 736, 314, 908, 746, 994, 743, 1006, 945, - 1048, 588, 824, 950, 762, 713, 462, 411, 47, 456, - 848, 587, 308, 574, 771, 559, 222, 890, 476, 468, - 296, 241, 300, 226, 305, 295, 212, 213, 214, 215, - 52, 303, 216, 1316, 1304, 1314, 1290, 1312, 859, 1303, - 875, 1072, 934, 1173, 415, 969, 436, 1247, 968, 806, - 807, 970, 294, 539, 874, 230, 1262, 1103, 489, 488, - 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, - 1289, 805, 500, 181, 177, 178, 179, 1104, 1105, 451, - 589, 879, 590, 985, 678, 831, 245, 1199, 57, 1214, - 873, 679, 424, 839, 1115, 1116, 1117, 1156, 1154, 210, - 447, 448, 1120, 1118, 1313, 1311, 1284, 1176, 1027, 443, - 438, 454, 440, 59, 60, 61, 62, 63, 772, 1239, - 425, 826, 418, 1245, 793, 795, 175, 239, 1024, 174, - 648, 175, 1241, 826, 1026, 657, 960, 437, 439, 870, - 867, 868, 959, 866, 958, 413, 745, 421, 299, 412, - 189, 176, 513, 514, 442, 442, 442, 442, 76, 442, - 1270, 979, 186, 1184, 1035, 186, 442, 924, 877, 880, - 902, 826, 685, 311, 491, 492, 493, 494, 495, 496, - 497, 490, 180, 47, 500, 1014, 480, 431, 1124, 186, - 186, 76, 811, 490, 500, 186, 500, 76, 510, 794, - 1240, 512, 885, 872, 464, 682, 475, 465, 688, 689, - 1275, 839, 1074, 1012, 825, 1263, 1134, 921, 435, 823, - 821, 1246, 1244, 822, 948, 871, 825, 1025, 522, 1023, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 1125, + 269, 47, 774, 649, 1284, 268, 461, 243, 1082, 858, + 1239, 810, 524, 1110, 792, 1083, 1003, 852, 217, 945, + 1188, 523, 3, 572, 838, 1079, 53, 454, 814, 211, + 775, 813, 736, 570, 961, 1048, 746, 1006, 824, 908, + 994, 588, 950, 314, 762, 713, 462, 848, 47, 456, + 411, 574, 296, 587, 559, 241, 222, 308, 476, 743, + 890, 295, 300, 226, 771, 468, 303, 305, 52, 216, + 1317, 1305, 1315, 212, 213, 214, 215, 1291, 1313, 859, + 875, 1304, 1073, 934, 1174, 415, 436, 1248, 1105, 1106, + 443, 806, 807, 1104, 874, 294, 230, 1290, 1263, 539, + 489, 488, 498, 499, 491, 492, 493, 494, 495, 496, + 497, 490, 805, 57, 500, 181, 177, 178, 179, 451, + 589, 879, 590, 985, 678, 1116, 1117, 1118, 831, 969, + 873, 679, 968, 1121, 1119, 970, 1200, 1215, 59, 60, + 61, 62, 63, 839, 1157, 1155, 210, 1314, 447, 448, + 438, 195, 440, 1240, 311, 1312, 1285, 1177, 745, 424, + 1027, 772, 826, 425, 1246, 418, 1242, 239, 175, 657, + 793, 795, 174, 648, 175, 205, 960, 437, 439, 870, + 867, 868, 959, 866, 958, 413, 826, 1271, 421, 189, + 412, 176, 1185, 1035, 442, 442, 442, 442, 76, 442, + 513, 514, 186, 924, 902, 186, 442, 232, 877, 880, + 1024, 826, 685, 480, 979, 431, 1026, 490, 811, 500, + 500, 885, 682, 47, 180, 475, 190, 1276, 1135, 186, + 186, 76, 192, 948, 1241, 186, 591, 76, 510, 198, + 194, 512, 1031, 872, 465, 794, 1075, 464, 493, 494, + 495, 496, 497, 490, 1125, 825, 500, 1264, 435, 839, + 823, 821, 1247, 1245, 822, 871, 196, 763, 522, 200, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 825, 537, 538, 540, 540, 540, 540, 540, 540, 540, 540, - 548, 549, 550, 551, 474, 473, 23, 24, 48, 26, - 27, 571, 876, 1119, 825, 474, 473, 591, 652, 1288, - 1031, 475, 427, 428, 429, 42, 763, 878, 1013, 983, - 28, 886, 475, 1018, 1015, 1008, 1009, 1016, 1011, 1010, - 493, 494, 495, 496, 497, 490, 474, 473, 500, 37, - 1017, 1278, 186, 50, 186, 763, 1020, 931, 474, 473, - 186, 470, 466, 475, 720, 1076, 473, 186, 899, 900, - 901, 76, 76, 76, 76, 475, 76, 511, 718, 719, - 717, 585, 475, 76, 579, 50, 541, 542, 543, 544, - 545, 546, 547, 1296, 1014, 716, 1030, 489, 488, 498, - 499, 491, 492, 493, 494, 495, 496, 497, 490, 417, - 76, 500, 173, 30, 31, 33, 32, 35, 703, 705, - 706, 828, 1012, 704, 1205, 442, 829, 1204, 737, 998, - 738, 1273, 997, 442, 36, 43, 44, 299, 986, 45, - 46, 34, 1297, 909, 442, 442, 442, 442, 442, 442, - 442, 442, 684, 38, 39, 1276, 40, 41, 442, 442, - 1221, 1202, 1142, 995, 686, 455, 311, 920, 1112, 919, - 1111, 186, 980, 293, 971, 666, 1300, 455, 186, 186, - 186, 419, 420, 861, 76, 474, 473, 1013, 683, 739, - 76, 663, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 664, - 662, 690, 475, 653, 474, 473, 1231, 1281, 714, 1017, - 1231, 455, 1231, 1232, 455, 1007, 1196, 1195, 1100, 455, - 21, 475, 651, 47, 711, 488, 498, 499, 491, 492, - 493, 494, 495, 496, 497, 490, 49, 526, 500, 646, - 692, 1183, 455, 1131, 1130, 1251, 707, 433, 709, 755, - 758, 1127, 1128, 1127, 1126, 764, 914, 455, 556, 455, - 1250, 750, 426, 23, 748, 455, 1121, 300, 300, 300, - 300, 300, 267, 776, 598, 597, 221, 412, 946, 748, - 1079, 582, 571, 946, 796, 740, 741, 940, 1179, 1292, - 941, 300, 76, 556, 1133, 947, 947, 768, 186, 186, - 76, 1038, 186, 74, 760, 186, 750, 23, 1129, 186, - 50, 76, 76, 76, 76, 76, 76, 76, 76, 54, - 715, 800, 583, 972, 581, 76, 76, 691, 778, 779, - 186, 781, 777, 789, 1226, 780, 313, 556, 946, 797, - 710, 926, 416, 798, 914, 76, 923, 802, 803, 186, - 840, 841, 842, 804, 50, 76, 818, 799, 914, 581, - 23, 914, 442, 555, 442, 258, 257, 260, 261, 262, - 263, 584, 442, 686, 259, 264, 223, 854, 50, 1209, - 833, 853, 832, 650, 925, 747, 749, 556, 856, 922, - 1094, 975, 849, 299, 299, 299, 299, 299, 844, 76, - 765, 843, 766, 850, 851, 65, 1114, 50, 299, 561, - 564, 565, 566, 562, 1079, 563, 567, 299, 999, 951, - 952, 903, 954, 50, 751, 752, 951, 952, 660, 711, - 759, 186, 791, 452, 186, 186, 186, 186, 186, 1310, - 698, 957, 714, 891, 311, 767, 186, 769, 770, 186, - 892, 1169, 455, 186, 956, 786, 784, 815, 186, 186, - 787, 785, 76, 783, 782, 1302, 313, 313, 313, 313, - 1034, 313, 887, 904, 788, 76, 565, 566, 313, 227, - 228, 1309, 943, 944, 897, 896, 990, 469, 596, 489, + 548, 549, 550, 551, 1120, 417, 1289, 191, 720, 473, + 886, 571, 876, 1014, 825, 1126, 474, 473, 832, 1025, + 652, 1023, 718, 719, 717, 475, 983, 878, 1030, 763, + 828, 931, 1279, 475, 193, 829, 201, 202, 203, 204, + 208, 1012, 688, 689, 470, 207, 206, 466, 1297, 427, + 428, 429, 186, 1298, 186, 1206, 1205, 998, 474, 473, + 186, 899, 900, 901, 997, 1077, 684, 186, 920, 173, + 919, 76, 76, 76, 76, 475, 76, 419, 420, 579, + 703, 705, 706, 76, 585, 704, 474, 473, 474, 473, + 921, 236, 541, 542, 543, 544, 545, 546, 547, 50, + 986, 1277, 683, 475, 455, 475, 1013, 311, 1222, 716, + 76, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 474, 473, + 737, 1203, 738, 1143, 995, 442, 1014, 1274, 1017, 1113, + 293, 686, 455, 442, 1020, 475, 459, 463, 474, 473, + 1301, 455, 1232, 1282, 442, 442, 442, 442, 442, 442, + 442, 442, 1112, 481, 1012, 475, 1232, 455, 442, 442, 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 467, 434, 500, 982, 478, 942, 457, 1280, 1279, - 300, 561, 564, 565, 566, 562, 930, 563, 567, 458, - 1224, 976, 1177, 1210, 863, 659, 186, 569, 469, 76, - 218, 76, 224, 225, 955, 186, 895, 973, 186, 76, - 964, 1212, 1264, 1256, 894, 710, 1223, 219, 963, 236, - 965, 1222, 54, 1255, 715, 947, 966, 498, 499, 491, - 492, 493, 494, 495, 496, 497, 490, 471, 442, 500, - 1267, 1200, 681, 987, 988, 977, 978, 56, 989, 313, - 991, 992, 993, 58, 580, 593, 51, 1, 860, 1002, - 869, 996, 1282, 442, 898, 1237, 1108, 820, 1005, 812, - 410, 911, 64, 1274, 819, 912, 1243, 1198, 827, 984, - 830, 1113, 916, 917, 918, 1277, 1019, 981, 603, 601, - 602, 927, 600, 605, 604, 599, 933, 197, 306, 935, - 936, 937, 938, 568, 592, 855, 299, 472, 66, 1022, - 1021, 913, 865, 1029, 677, 1077, 884, 450, 199, 509, - 1042, 1041, 1084, 893, 47, 967, 312, 928, 776, 1080, - 1047, 1086, 1073, 1065, 776, 1265, 1083, 441, 711, 1096, - 1097, 1098, 1066, 815, 76, 1175, 687, 186, 1085, 1089, - 1254, 1211, 929, 535, 1090, 761, 1088, 313, 244, 702, - 256, 76, 253, 255, 254, 313, 693, 1101, 1107, 939, - 482, 242, 234, 1106, 298, 552, 313, 313, 313, 313, - 313, 313, 313, 313, 1102, 560, 558, 557, 953, 1004, - 313, 313, 949, 297, 1037, 232, 1172, 1122, 1123, 1261, - 697, 25, 55, 229, 76, 76, 19, 76, 18, 1135, - 694, 17, 20, 16, 15, 14, 29, 13, 12, 300, - 478, 11, 1137, 313, 10, 1140, 9, 8, 7, 6, - 76, 5, 1040, 186, 186, 4, 220, 22, 2, 0, - 0, 186, 0, 0, 0, 1046, 0, 0, 0, 1145, - 76, 0, 0, 1171, 1069, 1152, 0, 1144, 0, 0, - 0, 0, 0, 0, 742, 0, 515, 516, 517, 518, - 519, 520, 521, 0, 756, 756, 0, 0, 0, 1178, - 756, 0, 0, 0, 0, 0, 0, 1189, 1190, 1191, - 0, 76, 76, 1099, 0, 0, 1186, 0, 756, 1192, - 973, 0, 815, 0, 815, 0, 0, 0, 1194, 0, - 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, - 76, 0, 76, 76, 0, 0, 0, 313, 1208, 1207, - 0, 0, 444, 445, 446, 1201, 449, 1203, 0, 0, - 313, 0, 0, 453, 0, 299, 0, 186, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 0, 1213, - 1084, 0, 0, 1228, 0, 1040, 0, 0, 76, 186, - 0, 0, 0, 1146, 1083, 76, 0, 1225, 0, 0, - 1148, 0, 0, 76, 0, 0, 186, 1227, 1242, 1236, - 0, 1253, 0, 0, 313, 0, 313, 1163, 1164, 1165, - 1252, 0, 1168, 0, 313, 0, 0, 1084, 0, 47, - 0, 1248, 0, 1249, 459, 463, 1180, 1181, 1182, 1268, - 1185, 1083, 0, 0, 0, 0, 0, 1272, 313, 0, - 0, 481, 0, 1269, 0, 0, 815, 0, 0, 0, - 1286, 0, 76, 0, 76, 76, 76, 186, 76, 0, - 0, 1291, 0, 0, 76, 776, 1293, 0, 0, 834, - 835, 836, 837, 1004, 815, 525, 1298, 0, 0, 0, - 0, 0, 0, 0, 536, 845, 846, 847, 0, 0, - 76, 76, 76, 1308, 1307, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1315, 0, 0, 0, 0, 0, - 0, 0, 712, 0, 1220, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 0, 1233, 1234, 1235, 0, 0, 0, 0, 0, 0, - 0, 76, 76, 0, 0, 0, 0, 0, 0, 962, - 0, 0, 0, 0, 76, 0, 0, 1257, 1258, 1259, - 1260, 0, 647, 0, 0, 0, 313, 76, 0, 460, - 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 667, 668, 669, 670, 671, 672, 673, 674, 76, - 0, 0, 0, 195, 0, 675, 676, 0, 0, 0, - 0, 0, 0, 1287, 184, 1166, 455, 209, 0, 1000, - 313, 1294, 313, 0, 0, 0, 0, 205, 0, 0, - 0, 0, 0, 0, 1299, 0, 0, 301, 76, 233, - 0, 184, 184, 1305, 0, 313, 0, 184, 0, 0, - 0, 0, 76, 489, 488, 498, 499, 491, 492, 493, - 494, 495, 496, 497, 490, 313, 0, 500, 0, 1319, - 1320, 0, 183, 0, 0, 0, 0, 0, 190, 0, - 0, 0, 0, 0, 192, 455, 0, 313, 0, 700, - 701, 198, 194, 0, 0, 0, 0, 0, 0, 0, - 304, 0, 0, 756, 0, 414, 1087, 962, 0, 756, - 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, - 0, 200, 489, 488, 498, 499, 491, 492, 493, 494, - 495, 496, 497, 490, 0, 313, 500, 313, 1110, 0, - 0, 0, 525, 0, 0, 753, 754, 0, 0, 191, - 0, 0, 0, 0, 184, 0, 184, 0, 905, 906, - 907, 0, 184, 0, 0, 0, 0, 0, 0, 184, - 1136, 1049, 0, 0, 0, 0, 193, 0, 201, 202, - 203, 204, 208, 1138, 0, 0, 0, 207, 206, 0, - 1141, 0, 0, 0, 0, 0, 0, 0, 313, 0, - 0, 1051, 0, 0, 0, 0, 0, 809, 0, 862, - 0, 864, 422, 0, 423, 0, 0, 0, 0, 883, - 430, 0, 0, 1061, 1062, 1063, 1060, 432, 1064, 0, - 1170, 0, 0, 1053, 0, 1057, 1059, 1052, 0, 1050, - 0, 0, 0, 0, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 1054, 0, 0, 0, 1188, 0, 1188, - 1188, 1188, 0, 1193, 0, 0, 1056, 1058, 0, 313, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 184, 576, 184, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 313, 313, 0, 888, - 889, 0, 463, 489, 488, 498, 499, 491, 492, 493, + 490, 186, 980, 500, 1232, 1233, 1197, 1196, 186, 186, + 186, 1101, 455, 441, 76, 666, 971, 525, 1184, 455, + 76, 1132, 1131, 690, 1128, 1129, 536, 1128, 1127, 714, + 914, 455, 664, 691, 861, 739, 489, 488, 498, 499, + 491, 492, 493, 494, 495, 496, 497, 490, 23, 1013, + 500, 556, 455, 47, 1018, 1015, 1008, 1009, 1016, 1011, + 1010, 748, 455, 1252, 711, 245, 663, 526, 662, 653, + 692, 1017, 940, 651, 646, 941, 707, 1007, 433, 755, + 758, 709, 909, 598, 597, 764, 426, 412, 750, 1251, + 1122, 747, 749, 582, 946, 50, 21, 300, 300, 300, + 300, 300, 1080, 776, 748, 946, 765, 555, 766, 740, + 741, 710, 571, 1180, 796, 258, 257, 260, 261, 262, + 263, 300, 76, 947, 259, 264, 1293, 299, 186, 186, + 76, 556, 186, 750, 583, 186, 581, 23, 791, 186, + 760, 76, 76, 76, 76, 76, 76, 76, 76, 768, + 778, 779, 221, 781, 800, 76, 76, 1038, 777, 54, + 186, 780, 789, 947, 1227, 556, 23, 797, 515, 516, + 517, 518, 519, 520, 521, 76, 840, 841, 842, 186, + 803, 926, 802, 798, 50, 76, 799, 556, 581, 818, + 923, 1134, 442, 1130, 442, 972, 1170, 455, 914, 804, + 914, 914, 442, 854, 584, 946, 686, 50, 444, 445, + 446, 1210, 449, 50, 833, 311, 853, 1095, 975, 453, + 849, 700, 701, 223, 925, 844, 751, 752, 815, 76, + 850, 851, 759, 922, 489, 488, 498, 499, 491, 492, + 493, 494, 495, 496, 497, 490, 843, 767, 500, 769, + 770, 903, 491, 492, 493, 494, 495, 496, 497, 490, + 65, 186, 500, 714, 186, 186, 186, 186, 186, 711, + 50, 951, 952, 891, 525, 650, 186, 753, 754, 186, + 892, 856, 1115, 186, 1080, 999, 954, 660, 186, 186, + 452, 698, 76, 561, 564, 565, 566, 562, 957, 563, + 567, 956, 783, 904, 786, 76, 511, 911, 782, 787, + 784, 912, 943, 944, 1311, 785, 710, 1303, 916, 917, + 918, 788, 1034, 565, 566, 227, 228, 927, 887, 1310, + 897, 896, 933, 942, 990, 935, 936, 937, 938, 809, + 300, 561, 564, 565, 566, 562, 930, 563, 567, 596, + 469, 951, 952, 434, 982, 457, 186, 1178, 963, 76, + 965, 76, 1281, 955, 467, 186, 299, 458, 186, 76, + 1280, 1225, 976, 964, 1211, 863, 659, 569, 224, 225, + 469, 895, 973, 218, 1265, 1257, 966, 1224, 219, 894, + 989, 1223, 991, 992, 993, 54, 898, 1256, 442, 987, + 988, 977, 978, 1213, 712, 947, 471, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 1268, 442, 1201, 996, 681, 56, 647, 58, + 580, 888, 889, 51, 463, 1005, 656, 1, 860, 1002, + 869, 1283, 1238, 913, 815, 1019, 1109, 667, 668, 669, + 670, 671, 672, 673, 674, 834, 835, 836, 837, 928, + 820, 675, 676, 812, 410, 64, 1275, 819, 1244, 1199, + 827, 845, 846, 847, 984, 1078, 830, 1114, 1278, 981, + 603, 1046, 1085, 1081, 47, 1042, 601, 1084, 776, 602, + 1004, 1047, 600, 1066, 776, 1074, 915, 1067, 605, 1097, + 1098, 1099, 604, 1041, 76, 1086, 599, 186, 711, 197, + 306, 932, 1090, 568, 267, 592, 855, 1091, 472, 1089, + 66, 76, 1022, 1021, 1103, 865, 1029, 677, 884, 1100, + 1102, 450, 199, 1040, 509, 893, 967, 312, 1087, 1123, + 1124, 1266, 1176, 1108, 1107, 74, 687, 1255, 1212, 715, + 929, 535, 761, 244, 702, 1070, 256, 253, 255, 254, + 693, 939, 482, 242, 76, 76, 234, 76, 298, 552, + 560, 558, 557, 953, 949, 297, 1136, 1037, 313, 300, + 1173, 1262, 697, 25, 416, 55, 229, 19, 18, 1138, + 76, 17, 1141, 186, 186, 20, 16, 1145, 15, 14, + 29, 186, 13, 815, 12, 815, 11, 10, 9, 1147, + 76, 1153, 1146, 8, 1172, 7, 1149, 6, 5, 4, + 220, 22, 299, 299, 299, 299, 299, 2, 0, 0, + 0, 0, 0, 0, 1164, 1165, 1166, 299, 0, 1169, + 905, 906, 907, 0, 0, 0, 299, 1179, 0, 1187, + 0, 76, 76, 1181, 1182, 1183, 0, 1186, 1190, 1191, + 1192, 1195, 0, 0, 1193, 862, 1040, 864, 0, 0, + 0, 0, 0, 0, 442, 883, 973, 0, 0, 1076, + 76, 0, 76, 76, 0, 0, 0, 0, 0, 0, + 0, 1208, 1202, 0, 1204, 1092, 1093, 0, 0, 1094, + 0, 0, 1096, 0, 1209, 0, 0, 186, 313, 313, + 313, 313, 0, 313, 0, 76, 1214, 0, 0, 0, + 313, 1085, 0, 0, 1229, 0, 1084, 0, 76, 186, + 0, 0, 0, 0, 0, 76, 1226, 0, 815, 0, + 0, 1221, 0, 76, 0, 1228, 186, 478, 1237, 0, + 0, 1243, 1254, 0, 1249, 0, 1250, 0, 1234, 1235, + 1236, 0, 0, 0, 0, 1004, 815, 0, 1085, 0, + 47, 1253, 0, 1084, 0, 0, 1269, 0, 0, 1144, + 0, 0, 0, 715, 1258, 1259, 1260, 1261, 0, 1273, + 0, 1270, 498, 499, 491, 492, 493, 494, 495, 496, + 497, 490, 0, 76, 500, 76, 76, 76, 186, 76, + 1287, 1294, 1292, 0, 0, 76, 776, 0, 0, 0, + 0, 313, 0, 0, 0, 1175, 1299, 593, 0, 0, + 1288, 1044, 1045, 525, 0, 0, 1167, 455, 1295, 0, + 0, 76, 76, 76, 1068, 1069, 1309, 1071, 1072, 1308, + 0, 1300, 0, 0, 301, 1316, 0, 0, 0, 0, + 1306, 0, 0, 0, 0, 299, 0, 0, 0, 0, + 0, 1001, 0, 0, 489, 488, 498, 499, 491, 492, + 493, 494, 495, 496, 497, 490, 1320, 1321, 500, 183, + 0, 0, 76, 76, 0, 1065, 1028, 0, 1150, 1151, + 0, 1152, 0, 0, 1154, 76, 1156, 0, 1158, 1159, + 1160, 1161, 1162, 1163, 0, 0, 0, 304, 76, 0, + 0, 0, 414, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 76, 0, 0, 0, 1049, 0, 0, 0, 313, 313, + 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, + 1198, 0, 313, 313, 0, 1148, 0, 0, 0, 0, + 0, 0, 1267, 0, 1051, 0, 0, 0, 0, 76, + 0, 0, 694, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 478, 76, 0, 313, 1061, 1062, 1063, 1060, + 0, 1064, 0, 0, 1286, 525, 1053, 0, 1057, 1059, + 1052, 0, 1050, 463, 0, 0, 0, 1055, 0, 0, + 460, 0, 0, 0, 0, 0, 1054, 0, 0, 422, + 0, 423, 0, 0, 0, 0, 742, 430, 0, 1056, + 1058, 1307, 0, 0, 432, 0, 756, 756, 0, 0, + 0, 0, 756, 0, 0, 184, 0, 0, 209, 1171, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 756, 0, 0, 0, 0, 0, 455, 0, 0, 0, + 233, 0, 184, 184, 0, 0, 0, 0, 184, 1216, + 1217, 0, 1218, 1219, 1220, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 299, 1168, 23, 24, 48, 26, + 27, 0, 313, 489, 488, 498, 499, 491, 492, 493, + 494, 495, 496, 497, 490, 42, 0, 500, 0, 0, + 28, 0, 489, 488, 498, 499, 491, 492, 493, 494, + 495, 496, 497, 490, 0, 0, 500, 1207, 554, 37, + 0, 0, 0, 50, 0, 0, 0, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 489, 488, + 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, + 0, 0, 500, 0, 0, 184, 0, 184, 1043, 0, + 313, 620, 0, 184, 0, 0, 0, 0, 0, 0, + 184, 0, 0, 30, 31, 33, 32, 35, 0, 489, + 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, + 490, 0, 0, 500, 36, 43, 44, 910, 1318, 45, + 46, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 38, 39, 0, 40, 41, 489, 488, + 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, + 0, 0, 500, 0, 0, 654, 655, 0, 608, 658, + 0, 0, 661, 489, 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, - 0, 0, 1149, 1150, 0, 1151, 0, 0, 1153, 0, - 1155, 554, 1157, 1158, 1159, 1160, 1161, 1162, 0, 0, - 578, 0, 0, 0, 1167, 0, 1229, 1230, 0, 1044, - 1045, 0, 0, 0, 0, 0, 0, 0, 0, 1110, - 0, 0, 1067, 1068, 915, 1070, 1071, 0, 0, 0, - 0, 0, 1188, 0, 0, 0, 0, 0, 0, 932, - 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, - 184, 184, 0, 0, 184, 0, 0, 184, 0, 0, - 0, 665, 0, 0, 0, 1001, 0, 489, 488, 498, - 499, 491, 492, 493, 494, 495, 496, 497, 490, 0, - 756, 500, 184, 1295, 0, 0, 0, 0, 0, 0, - 1028, 0, 0, 0, 0, 1043, 0, 1301, 0, 0, - 0, 184, 0, 0, 0, 0, 0, 0, 654, 655, - 665, 0, 658, 0, 0, 661, 489, 488, 498, 499, - 491, 492, 493, 494, 495, 496, 497, 490, 0, 0, - 500, 0, 0, 1147, 0, 0, 0, 0, 0, 0, - 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 233, 0, 0, 0, 0, 233, 233, 699, - 0, 757, 757, 233, 0, 0, 0, 757, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 233, 233, - 233, 233, 0, 184, 0, 757, 184, 184, 184, 184, - 184, 0, 0, 0, 0, 0, 0, 1075, 790, 0, - 910, 184, 0, 0, 0, 576, 0, 0, 0, 0, - 184, 184, 0, 1091, 1092, 0, 0, 1093, 0, 0, - 1095, 489, 488, 498, 499, 491, 492, 493, 494, 495, - 496, 497, 490, 0, 0, 500, 0, 0, 0, 0, - 0, 773, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 620, 1215, 1216, 0, 1217, - 1218, 1219, 0, 0, 0, 0, 0, 0, 0, 801, + 0, 0, 0, 0, 0, 0, 0, 680, 621, 0, + 0, 962, 0, 0, 184, 0, 0, 0, 0, 0, + 0, 184, 576, 184, 0, 0, 699, 0, 313, 634, + 635, 636, 637, 638, 639, 640, 49, 641, 642, 643, + 644, 645, 622, 623, 624, 625, 606, 607, 0, 0, + 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 626, 627, 628, 629, 630, 631, 632, 633, + 0, 1000, 313, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 801, 0, 0, 313, + 0, 184, 184, 0, 0, 184, 0, 0, 184, 0, + 0, 0, 665, 0, 0, 756, 0, 0, 1088, 962, + 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 313, + 1111, 0, 184, 0, 0, 0, 0, 0, 0, 0, + 0, 665, 0, 857, 0, 0, 0, 0, 0, 0, + 0, 0, 881, 0, 0, 882, 0, 0, 0, 0, + 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, + 0, 0, 1142, 233, 0, 0, 0, 0, 233, 233, + 313, 0, 757, 757, 233, 0, 0, 0, 757, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, + 233, 233, 233, 0, 184, 0, 757, 184, 184, 184, + 184, 184, 0, 0, 0, 0, 0, 0, 0, 790, + 0, 0, 184, 0, 0, 0, 576, 0, 0, 0, + 0, 184, 184, 0, 0, 0, 0, 0, 0, 0, + 1189, 0, 1189, 1189, 1189, 0, 1194, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, - 184, 0, 0, 0, 0, 0, 0, 1143, 489, 488, - 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, - 0, 0, 500, 0, 0, 665, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, - 0, 0, 608, 0, 0, 0, 857, 0, 0, 0, - 1206, 0, 1174, 0, 0, 881, 0, 0, 882, 0, - 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 621, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, - 0, 0, 0, 634, 635, 636, 637, 638, 639, 640, - 233, 641, 642, 643, 644, 645, 622, 623, 624, 625, - 606, 607, 0, 0, 609, 1317, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 626, 627, 628, 629, - 630, 631, 632, 633, 484, 0, 487, 0, 0, 184, - 0, 0, 501, 502, 503, 504, 505, 506, 507, 0, - 485, 486, 483, 508, 489, 488, 498, 499, 491, 492, - 493, 494, 495, 496, 497, 490, 0, 0, 500, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, + 1231, 0, 0, 0, 0, 0, 665, 0, 0, 0, + 0, 0, 1111, 0, 0, 0, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1272, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1266, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 233, 0, 756, 0, 484, 1296, 487, 0, 0, + 0, 0, 0, 501, 502, 503, 504, 505, 506, 507, + 1302, 485, 486, 483, 508, 489, 488, 498, 499, 491, + 492, 493, 494, 495, 496, 497, 490, 0, 0, 500, + 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1032, 1033, 0, 0, 0, - 0, 1285, 525, 184, 0, 0, 0, 0, 0, 0, - 463, 0, 0, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1032, 1033, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 665, 0, 0, 0, 1306, 0, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 757, 0, 0, 0, 0, 0, 757, 0, 0, 0, - 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 757, 0, 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, - 0, 0, 0, 0, 0, 0, 0, 399, 389, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 399, + 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, + 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, + 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, + 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, + 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, + 75, 0, 816, 817, 0, 0, 0, 0, 0, 86, + 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, + 408, 396, 345, 346, 974, 0, 0, 0, 0, 0, + 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, + 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, + 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, + 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, + 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 757, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, + 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, + 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, + 77, 0, 108, 169, 133, 95, 160, 399, 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, @@ -934,7 +969,7 @@ var yyAct = [...]int{ 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, 816, 817, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, - 345, 346, 974, 0, 0, 0, 0, 0, 0, 364, + 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, @@ -942,7 +977,7 @@ var yyAct = [...]int{ 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 757, 135, 92, + 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, @@ -956,7 +991,7 @@ var yyAct = [...]int{ 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, - 352, 380, 403, 0, 0, 0, 75, 0, 816, 817, + 352, 380, 403, 50, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, @@ -981,11 +1016,11 @@ var yyAct = [...]int{ 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, - 403, 50, 0, 0, 75, 0, 0, 0, 0, 0, + 403, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, + 0, 0, 0, 0, 0, 0, 1039, 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, @@ -1006,11 +1041,11 @@ var yyAct = [...]int{ 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, - 0, 0, 0, 0, 1039, 0, 343, 0, 375, 0, + 0, 0, 0, 0, 708, 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, @@ -1031,11 +1066,11 @@ var yyAct = [...]int{ 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, - 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, - 0, 0, 708, 0, 343, 0, 375, 0, 0, 0, + 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, @@ -1055,7 +1090,7 @@ var yyAct = [...]int{ 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, - 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, + 376, 402, 352, 380, 403, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, @@ -1080,7 +1115,7 @@ var yyAct = [...]int{ 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, - 352, 380, 403, 0, 0, 0, 238, 0, 0, 0, + 352, 380, 403, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, @@ -1092,11 +1127,11 @@ var yyAct = [...]int{ 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 124, 150, 151, 90, 171, 83, 162, 82, 316, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 168, 0, 0, 0, 317, 315, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, @@ -1105,7 +1140,7 @@ var yyAct = [...]int{ 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, - 403, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 403, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, @@ -1117,11 +1152,11 @@ var yyAct = [...]int{ 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 316, 161, 123, 148, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, - 0, 0, 317, 315, 101, 140, 104, 111, 134, 170, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, 133, 95, @@ -1130,7 +1165,7 @@ var yyAct = [...]int{ 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, - 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, @@ -1140,13 +1175,13 @@ var yyAct = [...]int{ 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 146, 586, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 171, 83, 162, 82, 316, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 317, 315, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, 133, 95, 160, 399, @@ -1164,195 +1199,77 @@ var yyAct = [...]int{ 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 586, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 307, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 316, 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, 317, 315, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 310, 309, 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, - 77, 0, 108, 169, 133, 95, 160, 399, 389, 0, - 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, - 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, - 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, - 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, - 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, - 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, - 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, - 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, - 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, - 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, - 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, - 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 307, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 316, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, - 166, 167, 168, 0, 0, 0, 317, 315, 310, 309, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, - 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, - 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 744, 0, - 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, - 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, - 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, - 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, + 744, 0, 240, 0, 0, 0, 93, 0, 237, 0, + 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, + 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, + 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, + 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 249, 231, 0, 0, 0, 291, - 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, - 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, - 280, 0, 276, 77, 0, 108, 169, 133, 95, 160, - 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, - 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 455, 238, 258, - 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, - 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, - 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, - 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, - 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, - 273, 274, 275, 277, 0, 280, 0, 276, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 0, 0, - 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, - 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, - 0, 0, 86, 259, 264, 265, 266, 0, 0, 235, - 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 231, 0, 0, + 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 249, 231, 0, 0, 0, 291, - 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, - 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, - 280, 0, 276, 77, 0, 108, 169, 133, 95, 160, - 125, 0, 0, 0, 0, 240, 0, 0, 0, 93, - 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, - 0, 0, 0, 808, 0, 50, 0, 0, 238, 258, - 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, - 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, - 0, 0, 0, 0, 291, 0, 250, 0, 0, 246, - 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, - 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, - 273, 274, 275, 277, 23, 280, 0, 276, 77, 0, - 108, 169, 133, 95, 160, 0, 125, 0, 0, 0, - 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, - 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, - 263, 0, 0, 86, 259, 264, 265, 266, 0, 0, - 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, - 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 281, 290, 287, 288, 285, - 286, 284, 283, 282, 292, 272, 273, 274, 275, 277, - 0, 280, 0, 276, 77, 0, 108, 169, 133, 95, - 160, 125, 0, 0, 0, 0, 240, 0, 0, 0, - 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, - 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, - 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, - 249, 0, 0, 0, 0, 291, 0, 250, 0, 0, - 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 289, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 281, 290, 287, 288, 285, 286, 284, 283, 282, 292, - 272, 273, 274, 275, 277, 0, 280, 125, 276, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, + 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, + 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, + 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, + 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, + 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, + 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, + 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, + 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, + 170, 126, 138, 88, 158, 141, 281, 290, 287, 288, + 285, 286, 284, 283, 282, 292, 272, 273, 274, 275, + 277, 0, 280, 0, 276, 77, 0, 108, 169, 133, + 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, + 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 455, + 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, + 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 248, 249, 0, 0, 0, 0, 291, 0, 250, 0, + 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 289, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 281, 290, 287, 288, 285, 286, 284, 283, 282, + 292, 272, 273, 274, 275, 277, 0, 280, 0, 276, + 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, + 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, - 0, 0, 251, 0, 278, 0, 0, 0, 0, 0, + 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 249, 231, 0, 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 1318, 128, 136, 110, 149, 132, 156, 188, 164, + 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, @@ -1362,12 +1279,60 @@ var yyAct = [...]int{ 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, 275, - 277, 0, 280, 125, 276, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 279, 109, + 277, 0, 280, 0, 276, 77, 0, 108, 169, 133, + 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, + 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, + 0, 0, 0, 0, 0, 808, 0, 50, 0, 0, + 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, + 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 248, 249, 0, 0, 0, 0, 291, 0, 250, 0, + 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 187, 0, 0, 289, + 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 281, 290, 287, 288, 285, 286, 284, 283, 282, + 292, 272, 273, 274, 275, 277, 23, 280, 0, 276, + 77, 0, 108, 169, 133, 95, 160, 0, 125, 0, + 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, + 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, + 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, + 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, + 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, + 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, + 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, + 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, + 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, + 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, - 86, 259, 264, 265, 266, 0, 0, 0, 251, 0, + 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, @@ -1386,18 +1351,18 @@ var yyAct = [...]int{ 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, 280, 125, 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 489, 488, 498, 499, 491, 492, 493, - 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, + 0, 0, 0, 107, 279, 109, 0, 0, 142, 118, + 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, + 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, + 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, + 0, 0, 0, 291, 0, 250, 0, 0, 246, 247, + 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, + 137, 127, 157, 1319, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, @@ -1405,67 +1370,20 @@ var yyAct = [...]int{ 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, - 169, 133, 95, 160, 125, 0, 0, 0, 477, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 479, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 474, 473, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, - 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 71, 72, 0, 67, 0, 0, 0, 73, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 69, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, - 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 108, 169, 133, 95, 160, 125, 0, 0, 0, 575, - 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 577, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 111, 134, 170, 126, 138, 88, 158, 141, 281, 290, + 287, 288, 285, 286, 284, 283, 282, 292, 272, 273, + 274, 275, 277, 0, 280, 125, 276, 77, 0, 108, + 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, + 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, + 0, 0, 86, 259, 264, 265, 266, 0, 0, 0, + 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 248, 249, 0, 0, 0, 0, 291, + 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, @@ -1475,17 +1393,17 @@ var yyAct = [...]int{ 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, + 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, + 280, 125, 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 489, 488, 498, 499, 491, + 492, 493, 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, @@ -1498,12 +1416,59 @@ var yyAct = [...]int{ 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, + 477, 0, 0, 0, 0, 93, 0, 0, 0, 0, + 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 479, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 0, 474, 473, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, + 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, + 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, + 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, + 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, + 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, + 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, + 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, + 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, + 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, + 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, + 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 71, 72, 0, 67, 0, 0, 0, + 73, 131, 0, 0, 145, 98, 97, 106, 0, 0, + 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, + 149, 132, 156, 69, 164, 147, 163, 78, 146, 155, + 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, + 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, + 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, + 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, + 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, + 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, + 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, + 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, + 0, 575, 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 185, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 185, 0, 577, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1521,12 +1486,12 @@ var yyAct = [...]int{ 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 695, 0, 0, 696, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1543,12 +1508,12 @@ var yyAct = [...]int{ 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 141, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 595, 0, 0, 107, 0, 109, 0, 0, 142, 118, + 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 0, 594, + 0, 0, 0, 0, 50, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1567,54 +1532,54 @@ var yyAct = [...]int{ 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, - 169, 133, 95, 160, 125, 0, 0, 0, 575, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, + 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, + 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 185, 0, 577, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 0, 695, 0, 0, 696, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 573, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, - 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 185, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 595, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 594, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, - 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, - 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 0, 0, 143, 159, 172, 0, 0, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, - 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, + 575, 0, 0, 0, 0, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 577, 0, 0, 0, @@ -1626,7 +1591,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, + 0, 573, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, @@ -1639,8 +1604,8 @@ var yyAct = [...]int{ 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 479, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1658,53 +1623,53 @@ var yyAct = [...]int{ 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 77, 0, 108, 169, 133, 95, 160, 553, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, + 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, + 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 577, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, + 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, + 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, + 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, + 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, + 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, + 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, + 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, + 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, + 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, + 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, + 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, + 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 75, 0, 479, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, + 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, + 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, + 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, + 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, + 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, + 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, + 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, + 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, + 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, + 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 77, 0, 108, 169, 133, 95, 160, 553, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, @@ -1714,7 +1679,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 0, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, @@ -1726,11 +1691,11 @@ var yyAct = [...]int{ 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 77, + 302, 0, 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1753,13 +1718,13 @@ var yyAct = [...]int{ 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, + 0, 0, 0, 0, 0, 182, 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, @@ -1775,7 +1740,7 @@ var yyAct = [...]int{ 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1794,19 +1759,64 @@ var yyAct = [...]int{ 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 108, - 169, 133, 95, 160, + 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, + 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, + 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, + 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, + 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, + 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, + 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, + 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, + 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, + 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, + 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, + 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, + 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, + 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, + 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, + 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, + 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, + 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, + 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, + 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, + 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, + 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, + 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, + 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 108, 169, 133, 95, 160, } var yyPact = [...]int{ - 290, -1000, -183, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1560, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 827, 862, -1000, -1000, -1000, -1000, -1000, -1000, 642, - 7512, 47, 71, -6, 10243, 70, 1371, 10921, -1000, -16, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 644, -1000, -1000, - -1000, -1000, -1000, 803, 821, 660, 802, 730, -1000, 5667, - 42, 9112, 10017, 4962, -1000, 511, 64, 10921, -152, 10469, - 37, 37, 37, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 840, 882, -1000, -1000, -1000, -1000, -1000, -1000, 667, + 7614, 50, 71, -4, 10345, 69, 119, 11023, -1000, -9, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 620, -1000, -1000, + -1000, -1000, -1000, 826, 832, 677, 818, 746, -1000, 5769, + 44, 9214, 10119, 5064, -1000, 491, 64, 11023, -151, 10571, + 40, 40, 40, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1816,21 +1826,21 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 67, 10921, -1000, 10921, 35, 496, 35, - 35, 35, 10921, -1000, 117, -1000, -1000, -1000, -1000, 10921, - 481, 762, 30, 2978, 2978, 2978, 2978, -11, 2978, -93, - 672, -1000, -1000, -1000, -1000, 2978, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 449, 778, 6373, 6373, - 827, -1000, 644, -1000, -1000, -1000, 756, -1000, -1000, 287, - 846, -1000, 7286, 116, -1000, 6373, 2102, 615, -1000, -1000, - 615, -1000, -1000, 81, -1000, -1000, 6825, 6825, 6825, 6825, - 6825, 6825, 6825, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 615, -1000, 6138, - 615, 615, 615, 615, 615, 615, 615, 615, 6373, 615, - 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, - 615, 615, 615, 9791, 623, 760, -1000, -1000, -1000, 795, - 8199, 8886, 10921, 560, -1000, 607, 4714, -98, -1000, -1000, - -1000, 227, 8651, -1000, -1000, -1000, 748, -1000, -1000, -1000, + -1000, -1000, -1000, 68, 11023, -1000, 11023, 38, 490, 38, + 38, 38, 11023, -1000, 105, -1000, -1000, -1000, -1000, 11023, + 482, 783, 30, 3080, 3080, 3080, 3080, -3, 3080, -93, + 699, -1000, -1000, -1000, -1000, 3080, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 339, 796, 6475, 6475, + 840, -1000, 620, -1000, -1000, -1000, 789, -1000, -1000, 270, + 855, -1000, 7388, 103, -1000, 6475, 2173, 614, -1000, -1000, + 614, -1000, -1000, 89, -1000, -1000, 6927, 6927, 6927, 6927, + 6927, 6927, 6927, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 614, -1000, 6240, + 614, 614, 614, 614, 614, 614, 614, 614, 6475, 614, + 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, + 614, 614, 614, 9893, 537, 712, -1000, -1000, -1000, 815, + 8301, 8988, 11023, 542, -1000, 610, 4816, -98, -1000, -1000, + -1000, 156, 8753, -1000, -1000, -1000, 779, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1840,120 +1850,120 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 510, -1000, 1975, 473, 2978, 48, 621, 456, 236, 437, - 10921, 10921, 2978, 52, 10921, 792, 667, 10921, 434, 425, - -1000, 4466, -1000, 2978, 2978, 2978, 2978, 2978, 2978, 2978, - 2978, -1000, -1000, -1000, -1000, -1000, -1000, 2978, 2978, -1000, - -82, -1000, 10921, -1000, -1000, -1000, -1000, 853, 155, 424, - 102, 609, -1000, 224, 803, 449, 730, 8425, 688, -1000, - -1000, 10921, -1000, 6373, 6373, 341, -1000, 9564, -1000, -1000, - 3474, 159, 6825, 322, 280, 6825, 6825, 6825, 6825, 6825, - 6825, 6825, 6825, 6825, 6825, 6825, 6825, 6825, 6825, 6825, - 362, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 423, -1000, 644, 598, 598, 128, 128, 128, 128, 128, - 128, 7051, 5197, 449, 500, 266, 6138, 5667, 5667, 6373, - 6373, 10695, 10695, 5667, 797, 240, 266, 10695, 449, -1000, - 449, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5667, 5667, - 5667, 5667, 15, 10921, -1000, 10695, 9112, 9112, 9112, 9112, - 9112, -1000, 713, 712, -1000, 705, 704, 723, 10921, -1000, - 494, 8199, 115, 615, -1000, 9338, -1000, -1000, 15, 595, - 9112, 10921, -1000, -1000, 4218, 607, -98, 589, -1000, -108, - -132, 5902, 126, -1000, -1000, -1000, -1000, 2730, 133, 344, - -78, -1000, -1000, -1000, 617, -1000, 617, 617, 617, 617, - -45, -45, -45, -45, -1000, -1000, -1000, -1000, -1000, 638, - 635, -1000, 617, 617, 617, -1000, -1000, -1000, -1000, -1000, + 489, -1000, 1631, 478, 3080, 51, 683, 477, 238, 473, + 11023, 11023, 3080, 46, 11023, 813, 696, 11023, 472, 470, + -1000, 4568, -1000, 3080, 3080, 3080, 3080, 3080, 3080, 3080, + 3080, -1000, -1000, -1000, -1000, -1000, -1000, 3080, 3080, -1000, + -82, -1000, 11023, -1000, -1000, -1000, -1000, 877, 132, 338, + 102, 612, -1000, 308, 826, 339, 746, 8527, 709, -1000, + -1000, 11023, -1000, 6475, 6475, 303, -1000, 9666, -1000, -1000, + 3576, 138, 6927, 336, 224, 6927, 6927, 6927, 6927, 6927, + 6927, 6927, 6927, 6927, 6927, 6927, 6927, 6927, 6927, 6927, + 354, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 439, -1000, 620, 518, 518, 113, 113, 113, 113, 113, + 113, 7153, 5299, 339, 467, 236, 6240, 5769, 5769, 6475, + 6475, 10797, 10797, 5769, 819, 191, 236, 10797, 339, -1000, + 339, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5769, 5769, + 5769, 5769, 18, 11023, -1000, 10797, 9214, 9214, 9214, 9214, + 9214, -1000, 727, 721, -1000, 729, 723, 740, 11023, -1000, + 457, 8301, 121, 614, -1000, 9440, -1000, -1000, 18, 594, + 9214, 11023, -1000, -1000, 4320, 610, -98, 605, -1000, -107, + -130, 6004, 112, -1000, -1000, -1000, -1000, 2832, 134, 253, + -75, -1000, -1000, -1000, 621, -1000, 621, 621, 621, 621, + -35, -35, -35, -35, -1000, -1000, -1000, -1000, -1000, 653, + 632, -1000, 621, 621, 621, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 629, 629, 629, 618, 618, 626, -1000, 10921, -171, - 417, 2978, 791, 2978, -1000, 65, -1000, 10921, -1000, -1000, - 10921, 2978, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 231, -1000, -1000, - -1000, -1000, 725, 6373, 6373, 3970, 6373, -1000, -1000, -1000, - 778, -1000, 797, 815, -1000, 742, 741, 5667, -1000, -1000, - 159, 285, -1000, -1000, 291, -1000, -1000, -1000, -1000, 100, - 615, -1000, 1956, -1000, -1000, -1000, -1000, 322, 6825, 6825, - 6825, 295, 1956, 1879, 753, 422, 128, 232, 232, 130, - 130, 130, 130, 130, 118, 118, -1000, -1000, -1000, 449, - -1000, -1000, -1000, 449, 5667, 597, -1000, -1000, 6373, -1000, - 449, 492, 492, 405, 235, 625, -1000, 97, 620, 492, - 5667, 269, -1000, 6373, 449, -162, -1000, 492, 449, 492, - 492, 547, 615, -1000, 574, -1000, 184, 760, 665, 661, - 658, -1000, -1000, -1000, -1000, 703, -1000, 690, -1000, -1000, - -1000, -1000, -1000, 63, 61, 55, 10469, -1000, 833, 9112, - 573, -1000, -1000, 589, -98, -135, -1000, -1000, -1000, 266, - -1000, 408, 559, 2482, -1000, -1000, -1000, -1000, -1000, -1000, - 628, 783, 183, 145, 406, -1000, -1000, 765, -1000, 252, - -81, -1000, -1000, 369, -45, -45, -1000, -1000, 126, 746, - 126, 126, 126, 395, 395, -1000, -1000, -1000, -1000, 363, - -1000, -1000, -1000, 360, -1000, 657, 10469, 2978, -1000, 3722, - -1000, -1000, -1000, -1000, -1000, -1000, 356, 197, 146, -1000, + -1000, 627, 627, 627, 623, 623, 689, -1000, 11023, -170, + 438, 3080, 812, 3080, -1000, 65, -1000, 11023, -1000, -1000, + 11023, 3080, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 210, -1000, -1000, + -1000, -1000, 751, 6475, 6475, 4072, 6475, -1000, -1000, -1000, + 796, -1000, 819, 830, -1000, 758, 757, 5769, -1000, -1000, + 138, 228, -1000, -1000, 284, -1000, -1000, -1000, -1000, 94, + 614, -1000, 1651, -1000, -1000, -1000, -1000, 336, 6927, 6927, + 6927, 404, 1651, 1626, 1158, 357, 113, 150, 150, 114, + 114, 114, 114, 114, 616, 616, -1000, -1000, -1000, 339, + -1000, -1000, -1000, 339, 5769, 607, -1000, -1000, 6475, -1000, + 339, 436, 436, 306, 358, 639, -1000, 93, 630, 436, + 5769, 243, -1000, 6475, 339, -161, -1000, 436, 339, 436, + 436, 502, 614, -1000, 611, -1000, 153, 712, 680, 695, + 760, -1000, -1000, -1000, -1000, 720, -1000, 717, -1000, -1000, + -1000, -1000, -1000, 63, 61, 55, 10571, -1000, 853, 9214, + 571, -1000, -1000, 605, -98, -91, -1000, -1000, -1000, 236, + -1000, 420, 601, 2584, -1000, -1000, -1000, -1000, -1000, -1000, + 625, 804, 183, 158, 406, -1000, -1000, 785, -1000, 249, + -81, -1000, -1000, 331, -35, -35, -1000, -1000, 112, 764, + 112, 112, 112, 356, 356, -1000, -1000, -1000, -1000, 295, + -1000, -1000, -1000, 288, -1000, 694, 10571, 3080, -1000, 3824, + -1000, -1000, -1000, -1000, -1000, -1000, 388, 275, 188, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 5, -1000, 2978, -1000, 298, 10921, 10921, 722, 266, 266, - 94, -1000, -1000, 10921, -1000, -1000, -1000, -1000, 580, -1000, - -1000, -1000, 3226, 5667, -1000, 295, 1956, 1774, -1000, 6825, - 6825, -1000, -1000, 492, 5667, 266, -1000, -1000, -1000, 1464, - 362, 1464, 6825, 6825, 3970, 6825, 6825, -165, 594, 173, - -1000, 6373, 278, -1000, 615, -1000, -1000, -1000, -1000, 653, - 10695, 615, -1000, 7973, 10469, 827, 10695, 6373, 6373, -1000, - -1000, 6373, 627, -1000, 6373, -1000, -1000, -1000, 615, 615, - 615, 454, -1000, 827, 573, -1000, -1000, -1000, -123, -107, - -1000, -1000, 2730, -1000, 2730, 10469, -1000, 404, 402, -1000, - -1000, 645, 76, -1000, -1000, -1000, 501, 126, 126, -1000, - 172, -1000, -1000, -1000, 489, -1000, 487, 544, 479, 10921, - -1000, -1000, 530, -1000, 176, -1000, -1000, 10469, -1000, -1000, + 17, -1000, 3080, -1000, 230, 11023, 11023, 744, 236, 236, + 83, -1000, -1000, 11023, -1000, -1000, -1000, -1000, 606, -1000, + -1000, -1000, 3328, 5769, -1000, 404, 1651, 1587, -1000, 6927, + 6927, -1000, -1000, 436, 5769, 236, -1000, -1000, -1000, 1297, + 354, 1297, 6927, 6927, 4072, 6927, 6927, -164, 604, 167, + -1000, 6475, 278, -1000, 614, -1000, -1000, -1000, -1000, 693, + 10797, 614, -1000, 8075, 10571, 840, 10797, 6475, 6475, -1000, + -1000, 6475, 624, -1000, 6475, -1000, -1000, -1000, 614, 614, + 614, 417, -1000, 840, 571, -1000, -1000, -1000, -127, -136, + -1000, -1000, 2832, -1000, 2832, 10571, -1000, 386, 363, -1000, + -1000, 691, 67, -1000, -1000, -1000, 495, 112, 112, -1000, + 198, -1000, -1000, -1000, 433, -1000, 430, 599, 427, 11023, + -1000, -1000, 597, -1000, 148, -1000, -1000, 10571, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 10469, 10921, -1000, -1000, -1000, -1000, -1000, 10469, -1000, -1000, - 394, 6373, -1000, -1000, -1000, 3722, -1000, 833, 9112, -1000, - -1000, 449, -1000, 6825, 1956, 1956, -1000, -1000, 449, 617, - 617, -1000, 617, 618, -1000, 617, -25, 617, -26, 617, - 617, 617, 617, 617, 617, 449, 449, 1361, 1725, -1000, - 687, 1611, 615, -159, -1000, 266, 6373, 4, -1000, 785, - 519, 524, -1000, -1000, 5432, 449, 477, 93, 454, 803, - -1000, 266, 266, 266, 10469, 266, 10469, 10469, 10469, 7747, - 10469, 803, -1000, -1000, -1000, -1000, 2482, -1000, 452, -1000, - 617, -1000, -1000, -73, 852, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -45, 393, -45, 358, - -1000, 355, 2978, 3722, 2730, -1000, 616, -1000, -1000, -1000, - -1000, 787, -1000, 266, 818, 529, -1000, 1956, -1000, -1000, - 73, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 6825, 6825, -1000, 6825, - 6825, 6825, 449, 392, 266, 826, 820, 782, -1000, 615, - -1000, -1000, 591, 10469, 10469, -1000, -1000, 448, -1000, 446, - 446, 446, 115, -1000, -1000, 107, 10469, -1000, 135, -1000, - -140, 126, -1000, 126, 495, 480, -1000, -1000, -1000, 10469, - 615, 829, 817, -1000, -1000, 1430, 1430, 1430, 1430, 6, - -1000, -1000, 816, 6373, 851, -1000, 615, -1000, 644, 90, - -1000, 10469, -1000, -1000, -1000, -1000, -1000, 107, -1000, 365, - 170, 387, -1000, 276, 771, -1000, 770, -1000, -1000, -1000, - -1000, -1000, 442, 3, -1000, 6373, 6373, -1000, -1000, -1000, - -1000, 449, 62, -174, 6373, 525, 266, 10695, 524, 449, - 10469, -1000, -1000, -1000, 324, -1000, -1000, -1000, 374, -1000, - -1000, 621, 412, -1000, 10469, 266, 515, -1000, 717, -169, - -177, 400, 6373, 514, -1000, -1000, -1000, -1000, -171, -1000, - 3, 738, -1000, 691, -1000, -1000, 266, -1000, -1000, 0, - -172, -2, -175, 615, -178, 6599, -1000, 1430, 449, -1000, - -1000, + 10571, 11023, -1000, -1000, -1000, -1000, -1000, 10571, -1000, -1000, + 355, 6475, -1000, -1000, -1000, 3824, -1000, 853, 9214, -1000, + -1000, 339, -1000, 6927, 1651, 1651, -1000, -1000, 339, 621, + 621, -1000, 621, 623, -1000, 621, -18, 621, -19, 621, + 621, 621, 621, 621, 621, -1000, 339, 339, 1242, 1546, + -1000, 602, 1500, 614, -158, -1000, 236, 6475, 14, -1000, + 790, 511, 519, -1000, -1000, 5534, 339, 424, 82, 417, + 826, -1000, 236, 236, 236, 10571, 236, 10571, 10571, 10571, + 7849, 10571, 826, -1000, -1000, -1000, -1000, 2584, -1000, 412, + -1000, 621, -1000, -1000, -64, 875, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -35, 353, -35, + 287, -1000, 286, 3080, 3824, 2832, -1000, 618, -1000, -1000, + -1000, -1000, 808, -1000, 236, 850, 593, -1000, 1651, -1000, + -1000, 81, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6927, 6927, -1000, + 6927, 6927, 6927, 339, 340, 236, 836, 831, 803, -1000, + 614, -1000, -1000, 591, 10571, 10571, -1000, -1000, 410, -1000, + 392, 392, 392, 121, -1000, -1000, 101, 10571, -1000, 136, + -1000, -140, 112, -1000, 112, 494, 468, -1000, -1000, -1000, + 10571, 614, 843, 829, -1000, -1000, 1481, 1481, 1481, 1481, + 8, -1000, -1000, 828, 6475, 873, -1000, 614, -1000, 620, + 77, -1000, 10571, -1000, -1000, -1000, -1000, -1000, 101, -1000, + 361, 147, 333, -1000, 257, 802, -1000, 794, -1000, -1000, + -1000, -1000, -1000, 378, 13, -1000, 6475, 6475, -1000, -1000, + -1000, -1000, 339, 49, -173, 6475, 532, 236, 10797, 519, + 339, 10571, -1000, -1000, -1000, 279, -1000, -1000, -1000, 285, + -1000, -1000, 683, 376, -1000, 10571, 236, 510, -1000, 739, + -167, -180, 367, 6475, 500, -1000, -1000, -1000, -1000, -170, + -1000, 13, 756, -1000, 736, -1000, -1000, 236, -1000, -1000, + 10, -171, 1, -178, 614, -181, 6701, -1000, 1481, 339, + -1000, -1000, } var yyPgo = [...]int{ - 0, 1058, 24, 510, 1057, 1056, 1055, 1051, 1049, 1048, - 1047, 1046, 1044, 1041, 1038, 1037, 1036, 1035, 1034, 1033, - 1032, 1031, 1028, 1026, 128, 1023, 1022, 1021, 59, 1020, - 63, 1019, 1016, 34, 186, 37, 35, 1015, 1014, 30, - 65, 60, 1013, 43, 1012, 1008, 71, 1007, 55, 1006, - 1005, 1437, 995, 994, 16, 39, 992, 991, 990, 989, - 61, 839, 986, 984, 983, 982, 980, 979, 45, 3, - 12, 14, 17, 978, 126, 7, 975, 44, 973, 972, - 971, 970, 23, 6, 46, 966, 965, 955, 26, 49, - 951, 10, 54, 31, 18, 8, 64, 51, 946, 27, - 52, 41, 945, 943, 402, 939, 938, 937, 936, 934, - 933, 132, 399, 932, 930, 929, 928, 33, 167, 562, - 149, 58, 927, 925, 924, 1379, 57, 53, 19, 923, - 22, 957, 32, 918, 917, 40, 915, 914, 913, 912, - 910, 909, 908, 672, 907, 905, 901, 28, 29, 900, - 899, 50, 21, 898, 897, 896, 36, 47, 894, 42, - 893, 892, 890, 889, 20, 13, 887, 11, 886, 9, - 885, 882, 2, 880, 15, 879, 5, 878, 4, 38, - 877, 876, 0, 151, 874, 873, 93, + 0, 1087, 21, 556, 1081, 1080, 1079, 1078, 1077, 1075, + 1073, 1068, 1067, 1066, 1064, 1062, 1060, 1059, 1058, 1056, + 1055, 1051, 1048, 1047, 113, 1046, 1045, 1043, 65, 1042, + 63, 1041, 1040, 39, 158, 59, 36, 207, 1037, 33, + 61, 52, 1035, 42, 1034, 1033, 66, 1032, 54, 1031, + 1030, 1314, 1029, 1028, 14, 19, 1026, 1023, 1022, 1021, + 55, 381, 1020, 1019, 1018, 1017, 1016, 1014, 45, 12, + 8, 5, 15, 1013, 525, 7, 1012, 44, 1011, 1010, + 1008, 1007, 26, 6, 46, 1006, 1002, 1001, 18, 49, + 998, 20, 64, 34, 25, 2, 67, 53, 997, 30, + 57, 41, 996, 995, 359, 994, 992, 991, 988, 987, + 986, 159, 295, 985, 983, 982, 980, 43, 167, 974, + 90, 58, 978, 976, 975, 1480, 60, 51, 23, 973, + 29, 473, 32, 970, 969, 35, 966, 962, 958, 952, + 949, 946, 940, 308, 939, 938, 937, 24, 11, 936, + 934, 47, 17, 930, 929, 928, 40, 50, 927, 38, + 926, 925, 924, 923, 31, 28, 920, 13, 906, 10, + 902, 901, 4, 900, 16, 899, 9, 898, 3, 37, + 897, 893, 0, 27, 890, 889, 99, } var yyR1 = [...]int{ @@ -2006,18 +2016,18 @@ var yyR1 = [...]int{ 64, 64, 186, 186, 66, 66, 66, 66, 31, 31, 31, 31, 31, 132, 132, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 78, 78, 32, 32, 76, 76, - 77, 79, 79, 75, 75, 75, 60, 60, 60, 60, - 60, 60, 60, 60, 62, 62, 62, 80, 80, 81, - 81, 82, 82, 83, 83, 84, 85, 85, 85, 88, - 88, 88, 88, 89, 89, 89, 59, 59, 59, 59, - 59, 59, 90, 90, 90, 90, 94, 94, 70, 70, - 72, 72, 71, 73, 95, 95, 99, 96, 96, 100, - 100, 100, 98, 98, 98, 124, 124, 124, 103, 103, - 111, 111, 112, 112, 104, 104, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 114, 114, 114, 115, - 115, 116, 116, 116, 123, 123, 119, 119, 120, 120, - 125, 125, 126, 126, 117, 117, 117, 117, 117, 117, + 135, 135, 135, 135, 135, 78, 78, 32, 32, 76, + 76, 77, 79, 79, 75, 75, 75, 60, 60, 60, + 60, 60, 60, 60, 60, 62, 62, 62, 80, 80, + 81, 81, 82, 82, 83, 83, 84, 85, 85, 85, + 88, 88, 88, 88, 89, 89, 89, 59, 59, 59, + 59, 59, 59, 90, 90, 90, 90, 94, 94, 70, + 70, 72, 72, 71, 73, 95, 95, 99, 96, 96, + 100, 100, 100, 98, 98, 98, 124, 124, 124, 103, + 103, 111, 111, 112, 112, 104, 104, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 114, 114, 114, + 115, 115, 116, 116, 116, 123, 123, 119, 119, 120, + 120, 125, 125, 126, 126, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, @@ -2026,7 +2036,7 @@ var yyR1 = [...]int{ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, + 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, @@ -2036,7 +2046,8 @@ var yyR1 = [...]int{ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 182, 183, 130, 131, 131, 131, + 118, 118, 118, 118, 118, 182, 183, 130, 131, 131, + 131, } var yyR2 = [...]int{ @@ -2089,17 +2100,17 @@ var yyR2 = [...]int{ 2, 2, 0, 2, 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, 1, 2, 3, 3, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, - 2, 2, 2, 2, 0, 1, 0, 2, 1, 2, - 4, 0, 2, 1, 3, 5, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 0, 3, 0, - 2, 0, 3, 1, 3, 2, 0, 1, 1, 0, - 2, 4, 4, 0, 2, 4, 2, 1, 3, 5, - 4, 6, 1, 3, 3, 5, 0, 5, 1, 3, - 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, - 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, - 0, 2, 0, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 1, 0, 1, 1, 0, 2, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 0, 1, 0, 2, 1, + 2, 4, 0, 2, 1, 3, 5, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 0, 3, + 0, 2, 0, 3, 1, 3, 2, 0, 1, 1, + 0, 2, 4, 4, 0, 2, 4, 2, 1, 3, + 5, 4, 6, 1, 3, 3, 5, 0, 5, 1, + 3, 1, 2, 3, 1, 1, 3, 3, 1, 3, + 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, + 1, 0, 2, 0, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 0, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2119,7 +2130,8 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, + 1, } var yyChk = [...]int{ @@ -2229,169 +2241,169 @@ var yyChk = [...]int{ 88, 12, -125, -125, 38, 110, -51, -38, 11, 98, -120, -35, -33, 71, -61, -61, -183, -36, -135, 107, 175, 137, 173, 169, 189, 180, 202, 171, 203, 172, - 162, 159, 160, 161, 164, -132, -135, -61, -61, -120, - -61, -61, 246, -82, 79, -37, 77, -182, -94, 51, - -95, -70, -72, -71, -182, -2, -90, -119, -93, -82, - -99, -37, -37, -37, 53, -37, -182, -182, -182, -183, - 54, -82, -55, 220, 224, 225, -164, -165, -168, -167, - -119, 56, 56, -146, 51, 58, 59, 60, 67, 227, - 66, 55, -148, -148, 56, 107, 55, 54, 55, 54, - 55, 54, -51, 54, 80, -130, -119, -130, -119, -51, - -130, -119, 58, -37, -55, -39, -183, -61, -183, -143, - -143, -143, -152, -143, 163, -143, 163, -143, -143, -143, - -143, -143, -143, -183, -183, -183, 54, 19, -183, 54, - 19, -182, -32, 242, -37, -86, 143, 27, -94, 54, - -183, -183, -183, 54, 110, -183, -88, -91, -119, -91, - -91, -91, -128, -119, -88, 55, 54, -143, -154, 200, - 9, -147, 58, -147, 59, 59, -131, -174, -165, 53, - 26, -80, 13, -147, 56, -61, -61, -61, -61, -61, - -183, 58, 15, 16, 28, -72, 33, -2, -182, -119, - -119, 54, 55, -183, -183, -183, -54, -170, -169, 52, - 133, 65, -167, -155, 127, 28, 126, 227, -148, -148, - 55, 55, -91, -182, -81, 14, 16, -183, -183, -183, - -183, -31, 90, 249, 16, -87, -37, 9, -70, -2, - 110, -119, -169, 56, -160, 80, 58, -145, 65, 28, - 28, 55, -171, -172, 143, -37, -69, -183, 247, 48, - 250, -83, 54, -95, -183, -119, 59, 58, -178, -183, - 54, -119, 38, 248, 251, -183, -37, -176, -172, 33, - 38, 145, 249, 146, 250, -182, 251, -61, 142, -183, - -183, + 162, 159, 160, 161, 164, 58, -132, -135, -61, -61, + -120, -61, -61, 246, -82, 79, -37, 77, -182, -94, + 51, -95, -70, -72, -71, -182, -2, -90, -119, -93, + -82, -99, -37, -37, -37, 53, -37, -182, -182, -182, + -183, 54, -82, -55, 220, 224, 225, -164, -165, -168, + -167, -119, 56, 56, -146, 51, 58, 59, 60, 67, + 227, 66, 55, -148, -148, 56, 107, 55, 54, 55, + 54, 55, 54, -51, 54, 80, -130, -119, -130, -119, + -51, -130, -119, 58, -37, -55, -39, -183, -61, -183, + -143, -143, -143, -152, -143, 163, -143, 163, -143, -143, + -143, -143, -143, -143, -183, -183, -183, 54, 19, -183, + 54, 19, -182, -32, 242, -37, -86, 143, 27, -94, + 54, -183, -183, -183, 54, 110, -183, -88, -91, -119, + -91, -91, -91, -128, -119, -88, 55, 54, -143, -154, + 200, 9, -147, 58, -147, 59, 59, -131, -174, -165, + 53, 26, -80, 13, -147, 56, -61, -61, -61, -61, + -61, -183, 58, 15, 16, 28, -72, 33, -2, -182, + -119, -119, 54, 55, -183, -183, -183, -54, -170, -169, + 52, 133, 65, -167, -155, 127, 28, 126, 227, -148, + -148, 55, 55, -91, -182, -81, 14, 16, -183, -183, + -183, -183, -31, 90, 249, 16, -87, -37, 9, -70, + -2, 110, -119, -169, 56, -160, 80, 58, -145, 65, + 28, 28, 55, -171, -172, 143, -37, -69, -183, 247, + 48, 250, -83, 54, -95, -183, -119, 59, 58, -178, + -183, 54, -119, 38, 248, 251, -183, -37, -176, -172, + 33, 38, 145, 249, 146, 250, -182, 251, -61, 142, + -183, -183, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 521, 0, 277, 277, 277, 277, 277, 277, 0, - 591, 574, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 796, 796, 796, 796, 796, 0, 33, 34, - 794, 1, 3, 529, 0, 0, 281, 284, 279, 0, - 574, 0, 0, 0, 60, 0, 0, 783, 0, 784, - 572, 572, 572, 592, 593, 596, 597, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, - 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, - 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 782, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 0, 0, 575, 0, 570, 0, 570, - 570, 570, 0, 226, 349, 600, 601, 783, 784, 0, - 0, 0, 0, 797, 797, 797, 797, 0, 797, 255, - 244, 246, 247, 248, 249, 797, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 533, 0, 0, - 521, 29, 0, 277, 282, 283, 287, 285, 286, 278, + 21, 522, 0, 277, 277, 277, 277, 277, 277, 0, + 592, 575, 0, 0, 0, 0, -2, 267, 268, 0, + 270, 271, 797, 797, 797, 797, 797, 0, 33, 34, + 795, 1, 3, 530, 0, 0, 281, 284, 279, 0, + 575, 0, 0, 0, 60, 0, 0, 784, 0, 785, + 573, 573, 573, 593, 594, 597, 598, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, + 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, + 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 0, 0, 576, 0, 571, 0, 571, + 571, 571, 0, 226, 349, 601, 602, 784, 785, 0, + 0, 0, 0, 798, 798, 798, 798, 0, 798, 255, + 244, 246, 247, 248, 249, 798, 264, 265, 254, 266, + 269, 272, 273, 274, 275, 276, 27, 534, 0, 0, + 522, 29, 0, 277, 282, 283, 287, 285, 286, 278, 0, 295, 299, 0, 357, 0, 362, 364, -2, -2, 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, - 0, 0, 0, 427, 428, 429, 430, 506, 507, 508, - 509, 510, 511, 512, 513, 366, 367, 503, 553, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 494, 0, + 0, 0, 0, 427, 428, 429, 430, 507, 508, 509, + 510, 511, 512, 513, 514, 366, 367, 504, 554, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 462, 462, 462, 462, 462, 462, 462, 462, 0, 0, 0, 0, 0, 0, 306, 308, 309, 310, -2, - 0, 332, 0, 0, 41, 45, 0, 774, 557, -2, - -2, 0, 0, 598, 599, -2, 703, -2, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 0, 77, 0, 0, 797, 0, 67, 0, 0, 0, - 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 227, 797, 797, 797, 797, 797, 797, 797, - 797, 236, 798, 799, 237, 238, 239, 797, 797, 241, - 0, 256, 0, 250, 28, 795, 22, 0, 0, 530, - 0, 522, 523, 526, 529, 27, 284, 0, 289, 288, + 0, 332, 0, 0, 41, 45, 0, 775, 558, -2, + -2, 0, 0, 599, 600, -2, 704, -2, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 0, 77, 0, 0, 798, 0, 67, 0, 0, 0, + 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 227, 798, 798, 798, 798, 798, 798, 798, + 798, 236, 799, 800, 237, 238, 239, 798, 798, 241, + 0, 256, 0, 250, 28, 796, 22, 0, 0, 531, + 0, 523, 524, 527, 530, 27, 284, 0, 289, 288, 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 385, 386, 387, 388, 389, 390, 391, 363, 0, 377, 0, 0, 0, 420, 421, 422, 423, 424, 425, 0, 291, 27, 0, 398, 0, 0, 0, 0, - 0, 0, 0, 0, 287, 0, 495, 0, 0, 454, + 0, 0, 0, 0, 287, 0, 496, 0, 0, 454, 0, 455, 456, 457, 458, 459, 460, 461, 0, 291, 0, 0, 43, 0, 348, 0, 0, 0, 0, 0, 0, 337, 0, 0, 340, 0, 0, 0, 0, 331, - 0, 0, 351, 747, 333, 0, 335, 336, -2, 0, - 0, 0, 39, 40, 0, 46, 774, 48, 49, 0, - 0, 0, 157, 565, 566, 567, 563, 185, 0, 140, + 0, 0, 351, 748, 333, 0, 335, 336, -2, 0, + 0, 0, 39, 40, 0, 46, 775, 48, 49, 0, + 0, 0, 157, 566, 567, 568, 564, 185, 0, 140, 136, 82, 83, 84, 129, 86, 129, 129, 129, 129, 154, 154, 154, 154, 112, 113, 114, 115, 116, 0, 0, 99, 129, 129, 129, 103, 119, 120, 121, 122, 123, 124, 125, 126, 87, 88, 89, 90, 91, 92, - 93, 131, 131, 131, 133, 133, 594, 62, 0, 70, - 0, 797, 0, 797, 75, 0, 201, 0, 220, 571, - 0, 797, 223, 224, 350, 602, 603, 228, 229, 230, + 93, 131, 131, 131, 133, 133, 595, 62, 0, 70, + 0, 798, 0, 798, 75, 0, 201, 0, 220, 572, + 0, 798, 223, 224, 350, 603, 604, 228, 229, 230, 231, 232, 233, 234, 235, 240, 243, 257, 251, 252, - 245, 534, 0, 0, 0, 0, 0, 525, 527, 528, - 533, 30, 287, 0, 514, 0, 0, 0, 290, 25, + 245, 535, 0, 0, 0, 0, 0, 526, 528, 529, + 534, 30, 287, 0, 515, 0, 0, 0, 290, 25, 358, 359, 361, 378, 0, 380, 382, 301, 297, 0, - 504, -2, 368, 369, 394, 395, 396, 0, 0, 0, + 505, -2, 368, 369, 394, 395, 396, 0, 0, 0, 0, 392, 373, 0, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 419, 473, 474, 0, - 417, 418, 426, 0, 0, 292, 293, 397, 0, 552, - 27, 0, 0, 0, 0, 0, 503, 0, 0, 0, - 0, 501, 498, 0, 0, 0, 463, 0, 0, 0, - 0, 0, 0, 347, 355, 554, 0, 307, 326, 328, + 417, 418, 426, 0, 0, 292, 293, 397, 0, 553, + 27, 0, 0, 0, 0, 0, 504, 0, 0, 0, + 0, 502, 499, 0, 0, 0, 463, 0, 0, 0, + 0, 0, 0, 347, 355, 555, 0, 307, 326, 328, 0, 323, 338, 339, 341, 0, 343, 0, 345, 346, 312, 313, 314, 0, 0, 0, 0, 334, 355, 0, - 355, 42, 558, 47, 0, 0, 52, 53, 559, 560, - 561, 0, 76, 186, 188, 191, 192, 193, 78, 79, + 355, 42, 559, 47, 0, 0, 52, 53, 560, 561, + 562, 0, 76, 186, 188, 191, 192, 193, 78, 79, 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, - 95, 96, 97, 0, 98, 0, 0, 797, 64, 0, - 68, 69, 65, 573, 66, 796, 0, 0, 586, 202, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 0, 219, 797, 222, 260, 0, 0, 0, 531, 532, - 0, 524, 23, 0, 568, 569, 515, 516, 304, 379, + 95, 96, 97, 0, 98, 0, 0, 798, 64, 0, + 68, 69, 65, 574, 66, 797, 0, 0, 587, 202, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 0, 219, 798, 222, 260, 0, 0, 0, 532, 533, + 0, 525, 23, 0, 569, 570, 516, 517, 304, 379, 381, 383, 0, 291, 370, 392, 374, 0, 371, 0, 0, 365, 431, 0, 0, 399, -2, 434, 435, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, - 499, 0, 0, 448, 0, 464, 465, 466, 467, 546, - 0, 0, -2, 0, 0, 521, 0, 0, 0, 320, + 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, + 500, 0, 0, 448, 0, 464, 465, 466, 467, 547, + 0, 0, -2, 0, 0, 522, 0, 0, 0, 320, 327, 0, 0, 321, 0, 322, 342, 344, 0, 0, - 0, 0, 318, 521, 355, 38, 50, 51, 0, 0, + 0, 0, 318, 522, 355, 38, 50, 51, 0, 0, 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, 0, 109, 110, 111, 0, 127, 0, 0, 0, 0, - 595, 63, 71, 72, 0, 194, 796, 0, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 796, - 0, 0, 796, 587, 588, 589, 590, 0, 221, 242, - 0, 0, 258, 259, 535, 0, 24, 355, 0, 298, - 505, 0, 372, 0, 393, 375, 432, 294, 0, 129, + 596, 63, 71, 72, 0, 194, 797, 0, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 797, + 0, 0, 797, 588, 589, 590, 591, 0, 221, 242, + 0, 0, 258, 259, 536, 0, 24, 355, 0, 298, + 506, 0, 372, 0, 393, 375, 432, 294, 0, 129, 129, 478, 129, 133, 481, 129, 483, 129, 486, 129, - 129, 129, 129, 129, 129, 0, 0, 0, 0, 504, - 0, 0, 0, 496, 447, 502, 0, 450, 31, 0, - 546, 536, 548, 550, 0, 27, 0, 542, 0, 529, - 555, 356, 556, 324, 0, 329, 0, 0, 0, 332, - 0, 529, 37, 54, 55, 56, 187, 190, 0, 182, - 129, 176, 177, 152, 0, 144, 145, 146, 147, 148, - 149, 130, 104, 105, 155, 156, 154, 0, 154, 0, - 134, 0, 797, 0, 0, 195, 0, 196, 198, 199, - 200, 0, 261, 262, 517, 305, 433, 376, 436, 475, - 154, 479, 480, 482, 484, 485, 487, 488, 489, 490, - 491, 492, 493, 438, 437, 439, 0, 0, 442, 0, - 0, 0, 0, 0, 500, 0, 0, 0, 32, 0, - 551, -2, 0, 0, 0, 44, 35, 0, 316, 0, - 0, 0, 351, 319, 36, 167, 0, 184, 159, 153, - 0, 157, 128, 157, 0, 0, 61, 73, 74, 0, - 0, 519, 0, 476, 477, 0, 0, 0, 0, 468, - 446, 497, 0, 0, 0, 549, 0, -2, 0, 544, - 543, 0, 325, 352, 353, 354, 315, 166, 168, 0, - 173, 0, 183, 164, 0, 161, 163, 151, 117, 118, - 132, 135, 0, 0, 26, 0, 0, 440, 441, 443, - 444, 0, 0, 0, 0, 451, 452, 0, 539, 27, - 0, 317, 169, 170, 0, 174, 172, 80, 0, 160, - 162, 67, 0, 215, 0, 520, 518, 445, 0, 0, - 0, 0, 0, 547, -2, 545, 171, 165, 70, 214, - 0, 0, 469, 0, 472, 449, 453, 197, 216, 0, - 470, 0, 0, 0, 0, 0, 471, 0, 0, 217, - 218, + 129, 129, 129, 129, 129, 494, 0, 0, 0, 0, + 505, 0, 0, 0, 497, 447, 503, 0, 450, 31, + 0, 547, 537, 549, 551, 0, 27, 0, 543, 0, + 530, 556, 356, 557, 324, 0, 329, 0, 0, 0, + 332, 0, 530, 37, 54, 55, 56, 187, 190, 0, + 182, 129, 176, 177, 152, 0, 144, 145, 146, 147, + 148, 149, 130, 104, 105, 155, 156, 154, 0, 154, + 0, 134, 0, 798, 0, 0, 195, 0, 196, 198, + 199, 200, 0, 261, 262, 518, 305, 433, 376, 436, + 475, 154, 479, 480, 482, 484, 485, 487, 488, 489, + 490, 491, 492, 493, 438, 437, 439, 0, 0, 442, + 0, 0, 0, 0, 0, 501, 0, 0, 0, 32, + 0, 552, -2, 0, 0, 0, 44, 35, 0, 316, + 0, 0, 0, 351, 319, 36, 167, 0, 184, 159, + 153, 0, 157, 128, 157, 0, 0, 61, 73, 74, + 0, 0, 520, 0, 476, 477, 0, 0, 0, 0, + 468, 446, 498, 0, 0, 0, 550, 0, -2, 0, + 545, 544, 0, 325, 352, 353, 354, 315, 166, 168, + 0, 173, 0, 183, 164, 0, 161, 163, 151, 117, + 118, 132, 135, 0, 0, 26, 0, 0, 440, 441, + 443, 444, 0, 0, 0, 0, 451, 452, 0, 540, + 27, 0, 317, 169, 170, 0, 174, 172, 80, 0, + 160, 162, 67, 0, 215, 0, 521, 519, 445, 0, + 0, 0, 0, 0, 548, -2, 546, 171, 165, 70, + 214, 0, 0, 469, 0, 472, 449, 453, 197, 216, + 0, 470, 0, 0, 0, 0, 0, 471, 0, 0, + 217, 218, } var yyTok1 = [...]int{ @@ -5601,128 +5613,134 @@ yydefault: yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 494: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2520 + { + yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} + } + case 495: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2521 + //line sql.y:2525 { yyVAL.expr = nil } - case 495: + case 496: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2525 + //line sql.y:2529 { yyVAL.expr = yyDollar[1].expr } - case 496: + case 497: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2530 + //line sql.y:2534 { yyVAL.str = string("") } - case 497: + case 498: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2534 + //line sql.y:2538 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 498: + case 499: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2540 + //line sql.y:2544 { yyVAL.whens = []*When{yyDollar[1].when} } - case 499: + case 500: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2544 + //line sql.y:2548 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 500: + case 501: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2550 + //line sql.y:2554 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 501: + case 502: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2555 + //line sql.y:2559 { yyVAL.expr = nil } - case 502: + case 503: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2559 + //line sql.y:2563 { yyVAL.expr = yyDollar[2].expr } - case 503: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2565 - { - yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} - } case 504: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2569 { - yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} + yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 505: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2573 { - yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} + yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 506: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2579 + yyDollar = yyS[yypt-5 : yypt+1] + //line sql.y:2577 { - yyVAL.expr = NewStrVal(yyDollar[1].bytes) + yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 507: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2583 { - yyVAL.expr = NewHexVal(yyDollar[1].bytes) + yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 508: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2587 { - yyVAL.expr = NewBitVal(yyDollar[1].bytes) + yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 509: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2591 { - yyVAL.expr = NewIntVal(yyDollar[1].bytes) + yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 510: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2595 { - yyVAL.expr = NewFloatVal(yyDollar[1].bytes) + yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 511: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2599 { - yyVAL.expr = NewHexNum(yyDollar[1].bytes) + yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 512: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2603 { - yyVAL.expr = NewValArg(yyDollar[1].bytes) + yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 513: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2607 { - yyVAL.expr = &NullVal{} + yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2613 + //line sql.y:2611 + { + yyVAL.expr = &NullVal{} + } + case 515: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2617 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5731,239 +5749,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 515: + case 516: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2622 + //line sql.y:2626 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 516: + case 517: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2626 + //line sql.y:2630 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 517: + case 518: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2631 + //line sql.y:2635 { yyVAL.exprs = nil } - case 518: + case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2635 + //line sql.y:2639 { yyVAL.exprs = yyDollar[3].exprs } - case 519: + case 520: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2640 + //line sql.y:2644 { yyVAL.expr = nil } - case 520: + case 521: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2644 + //line sql.y:2648 { yyVAL.expr = yyDollar[2].expr } - case 521: + case 522: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2649 + //line sql.y:2653 { yyVAL.orderBy = nil } - case 522: + case 523: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2653 + //line sql.y:2657 { yyVAL.orderBy = yyDollar[3].orderBy } - case 523: + case 524: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2659 + //line sql.y:2663 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 524: + case 525: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2663 + //line sql.y:2667 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 525: + case 526: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2669 + //line sql.y:2673 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 526: + case 527: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2674 + //line sql.y:2678 { yyVAL.str = AscScr } - case 527: + case 528: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2678 + //line sql.y:2682 { yyVAL.str = AscScr } - case 528: + case 529: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2682 + //line sql.y:2686 { yyVAL.str = DescScr } - case 529: + case 530: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2687 + //line sql.y:2691 { yyVAL.limit = nil } - case 530: + case 531: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2691 + //line sql.y:2695 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 531: + case 532: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2695 + //line sql.y:2699 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 532: + case 533: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2699 + //line sql.y:2703 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 533: + case 534: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2704 + //line sql.y:2708 { yyVAL.str = "" } - case 534: + case 535: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2708 + //line sql.y:2712 { yyVAL.str = ForUpdateStr } - case 535: + case 536: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2712 + //line sql.y:2716 { yyVAL.str = ShareModeStr } - case 536: + case 537: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2725 + //line sql.y:2729 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 537: + case 538: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2729 + //line sql.y:2733 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 538: + case 539: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2733 + //line sql.y:2737 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 539: + case 540: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2738 + //line sql.y:2742 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 540: + case 541: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2742 + //line sql.y:2746 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 541: + case 542: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2746 + //line sql.y:2750 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 542: + case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2753 + //line sql.y:2757 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 543: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2757 + //line sql.y:2761 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 544: + case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2761 + //line sql.y:2765 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 545: + case 546: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2765 + //line sql.y:2769 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 546: + case 547: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2770 + //line sql.y:2774 { yyVAL.updateExprs = nil } - case 547: + case 548: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2774 + //line sql.y:2778 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 548: + case 549: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2780 + //line sql.y:2784 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 549: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2784 + //line sql.y:2788 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 550: + case 551: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2790 + //line sql.y:2794 { yyVAL.valTuple = yyDollar[1].valTuple } - case 551: + case 552: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2794 + //line sql.y:2798 { yyVAL.valTuple = ValTuple{} } - case 552: + case 553: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2800 + //line sql.y:2804 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 553: + case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2806 + //line sql.y:2810 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5971,189 +5989,183 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 554: + case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2816 + //line sql.y:2820 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 555: + case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2820 + //line sql.y:2824 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 556: + case 557: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2826 + //line sql.y:2830 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 557: + case 558: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2832 + //line sql.y:2836 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 558: + case 559: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2836 + //line sql.y:2840 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 559: + case 560: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2842 + //line sql.y:2846 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 560: + case 561: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2846 + //line sql.y:2850 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 561: + case 562: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2850 + //line sql.y:2854 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 563: + case 564: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2857 + //line sql.y:2861 { yyVAL.bytes = []byte("charset") } - case 565: + case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2864 + //line sql.y:2868 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 566: + case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2868 + //line sql.y:2872 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 567: + case 568: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2872 + //line sql.y:2876 { yyVAL.expr = &Default{} } - case 570: + case 571: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2881 + //line sql.y:2885 { yyVAL.byt = 0 } - case 571: + case 572: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2883 + //line sql.y:2887 { yyVAL.byt = 1 } - case 572: + case 573: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2886 + //line sql.y:2890 { yyVAL.empty = struct{}{} } - case 573: + case 574: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2888 + //line sql.y:2892 { yyVAL.empty = struct{}{} } - case 574: + case 575: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2891 + //line sql.y:2895 { yyVAL.str = "" } - case 575: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2893 - { - yyVAL.str = IgnoreStr - } case 576: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2897 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2899 + //line sql.y:2901 { yyVAL.empty = struct{}{} } case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2901 + //line sql.y:2903 { yyVAL.empty = struct{}{} } case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2903 + //line sql.y:2905 { yyVAL.empty = struct{}{} } case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2905 + //line sql.y:2907 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2907 + //line sql.y:2909 { yyVAL.empty = struct{}{} } case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2909 + //line sql.y:2911 { yyVAL.empty = struct{}{} } case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2911 + //line sql.y:2913 { yyVAL.empty = struct{}{} } case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2913 + //line sql.y:2915 { yyVAL.empty = struct{}{} } case 585: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2915 + //line sql.y:2917 { yyVAL.empty = struct{}{} } case 586: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2918 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2919 { yyVAL.empty = struct{}{} } case 587: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2920 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2922 { yyVAL.empty = struct{}{} } case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2922 + //line sql.y:2924 { yyVAL.empty = struct{}{} } @@ -6165,45 +6177,45 @@ yydefault: } case 590: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2928 + //line sql.y:2930 { yyVAL.empty = struct{}{} } case 591: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2931 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2932 { yyVAL.empty = struct{}{} } case 592: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2933 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2935 { yyVAL.empty = struct{}{} } case 593: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2935 + //line sql.y:2937 { yyVAL.empty = struct{}{} } case 594: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2938 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2939 { - yyVAL.colIdent = ColIdent{} + yyVAL.empty = struct{}{} } case 595: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2940 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2942 { - yyVAL.colIdent = yyDollar[2].colIdent + yyVAL.colIdent = ColIdent{} } case 596: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2944 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = yyDollar[2].colIdent } case 597: yyDollar = yyS[yypt-1 : yypt+1] @@ -6211,17 +6223,17 @@ yydefault: { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 599: + case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2955 + //line sql.y:2952 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2961 + //line sql.y:2959 { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 601: yyDollar = yyS[yypt-1 : yypt+1] @@ -6229,41 +6241,41 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 603: + case 602: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2969 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) + } + case 604: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2972 + //line sql.y:2976 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 794: + case 795: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3188 + //line sql.y:3192 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 795: + case 796: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3197 + //line sql.y:3201 { decNesting(yylex) } - case 796: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3202 - { - forceEOF(yylex) - } case 797: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3207 + //line sql.y:3206 { forceEOF(yylex) } case 798: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:3211 { forceEOF(yylex) @@ -6274,6 +6286,12 @@ yydefault: { forceEOF(yylex) } + case 800: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:3219 + { + forceEOF(yylex) + } } goto yystack /* stack new state and value */ } diff --git a/sql.y b/sql.y index 10e183f..c5a8daa 100644 --- a/sql.y +++ b/sql.y @@ -2516,6 +2516,10 @@ convert_type: { $$ = &ConvertType{Type: string($1), Length: $2} } +| STRING + { + $$ = &ConvertType{Type: string($1)} + } expression_opt: { From 7d9239f1809bc70372bceaefbc2cfc817223cf8d Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 29 Aug 2018 21:17:42 +0800 Subject: [PATCH 08/13] fix: STRING --- token.go | 1 + 1 file changed, 1 insertion(+) diff --git a/token.go b/token.go index c855b85..04def0f 100644 --- a/token.go +++ b/token.go @@ -341,6 +341,7 @@ var keywords = map[string]int{ "stored": UNUSED, "straight_join": STRAIGHT_JOIN, "stream": STREAM, + "string": STRING, "table": TABLE, "tables": TABLES, "terminated": UNUSED, From 1bb88f41fa77b82a15725d41bc740a084473b662 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Fri, 31 Aug 2018 12:58:29 +0800 Subject: [PATCH 09/13] update: parse mysql vars --- sql.go | 1786 ++++++++++++++++++++++++++++---------------------------- sql.y | 9 +- 2 files changed, 898 insertions(+), 897 deletions(-) diff --git a/sql.go b/sql.go index cd993e8..7a33124 100644 --- a/sql.go +++ b/sql.go @@ -600,12 +600,12 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 3, - 5, 27, + 5, 28, -2, 4, -1, 36, - 151, 263, - 152, 263, - -2, 253, + 151, 264, + 152, 264, + -2, 254, -1, 238, 110, 601, -2, 597, @@ -638,10 +638,10 @@ var yyExca = [...]int{ -2, 330, -1, 309, 80, 760, - -2, 58, + -2, 59, -1, 310, 80, 721, - -2, 59, + -2, 60, -1, 315, 80, 705, -2, 563, @@ -649,26 +649,26 @@ var yyExca = [...]int{ 80, 742, -2, 565, -1, 578, - 52, 41, - 54, 41, - -2, 43, + 52, 42, + 54, 42, + -2, 44, -1, 711, 110, 604, -2, 600, -1, 916, - 5, 28, + 5, 29, -2, 397, -1, 942, - 5, 27, + 5, 28, -2, 538, -1, 1182, - 5, 28, + 5, 29, -2, 539, -1, 1228, - 5, 27, + 5, 28, -2, 541, -1, 1295, - 5, 28, + 5, 29, -2, 542, } @@ -1969,35 +1969,35 @@ var yyR1 = [...]int{ 0, 180, 181, 181, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 6, 3, 4, 4, 5, - 5, 7, 7, 27, 27, 8, 9, 9, 9, 184, - 184, 46, 46, 92, 92, 10, 10, 10, 10, 97, - 97, 101, 101, 101, 102, 102, 102, 102, 133, 133, - 11, 11, 11, 11, 11, 11, 11, 178, 178, 177, - 176, 176, 175, 175, 174, 16, 161, 162, 162, 162, - 157, 136, 136, 136, 136, 139, 139, 137, 137, 137, - 137, 137, 137, 137, 138, 138, 138, 138, 138, 140, - 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, - 142, 142, 142, 142, 142, 142, 142, 156, 156, 143, - 143, 151, 151, 152, 152, 152, 149, 149, 150, 150, - 153, 153, 153, 144, 144, 144, 144, 144, 144, 144, - 146, 146, 154, 154, 147, 147, 147, 148, 148, 155, - 155, 155, 155, 155, 145, 145, 158, 158, 170, 170, - 169, 169, 169, 160, 160, 166, 166, 166, 166, 166, - 159, 159, 168, 168, 167, 163, 163, 163, 164, 164, - 164, 165, 165, 165, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 173, 171, 171, 172, 172, 13, - 14, 14, 14, 14, 14, 15, 15, 17, 18, 18, + 1, 1, 2, 2, 2, 6, 3, 3, 4, 4, + 5, 5, 7, 7, 27, 27, 8, 9, 9, 9, + 184, 184, 46, 46, 92, 92, 10, 10, 10, 10, + 97, 97, 101, 101, 101, 102, 102, 102, 102, 133, + 133, 11, 11, 11, 11, 11, 11, 11, 178, 178, + 177, 176, 176, 175, 175, 174, 16, 161, 162, 162, + 162, 157, 136, 136, 136, 136, 139, 139, 137, 137, + 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, + 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 142, 142, 142, 142, 142, 142, 142, 142, 156, 156, + 143, 143, 151, 151, 152, 152, 152, 149, 149, 150, + 150, 153, 153, 153, 144, 144, 144, 144, 144, 144, + 144, 146, 146, 154, 154, 147, 147, 147, 148, 148, + 155, 155, 155, 155, 155, 145, 145, 158, 158, 170, + 170, 169, 169, 169, 160, 160, 166, 166, 166, 166, + 166, 159, 159, 168, 168, 167, 163, 163, 163, 164, + 164, 164, 165, 165, 165, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 173, 171, 171, 172, 172, + 13, 14, 14, 14, 14, 14, 15, 15, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 109, 109, 106, 106, 107, 107, 108, 108, 108, - 110, 110, 110, 134, 134, 134, 19, 19, 21, 21, - 22, 23, 20, 20, 20, 20, 20, 185, 24, 25, - 25, 26, 26, 26, 30, 30, 30, 28, 28, 29, - 29, 35, 35, 34, 34, 36, 36, 36, 36, 122, - 122, 122, 121, 121, 38, 38, 39, 39, 40, 40, + 18, 18, 109, 109, 106, 106, 107, 107, 108, 108, + 108, 110, 110, 110, 134, 134, 134, 19, 19, 21, + 21, 22, 23, 20, 20, 20, 20, 20, 185, 24, + 25, 25, 26, 26, 26, 30, 30, 30, 28, 28, + 29, 29, 35, 35, 34, 34, 36, 36, 36, 36, + 122, 122, 122, 121, 121, 38, 39, 39, 40, 40, 41, 41, 41, 41, 53, 53, 91, 91, 93, 93, 42, 42, 42, 42, 43, 43, 44, 44, 45, 45, 129, 129, 128, 128, 128, 127, 127, 47, 47, 47, @@ -2053,35 +2053,35 @@ var yyR2 = [...]int{ 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 6, 7, 5, 10, 1, 3, 1, - 3, 7, 8, 1, 1, 8, 8, 7, 6, 1, - 1, 1, 3, 0, 4, 3, 4, 5, 4, 1, - 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, - 2, 8, 4, 6, 5, 5, 5, 0, 2, 1, - 0, 2, 1, 3, 3, 4, 4, 1, 3, 3, - 8, 3, 1, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, - 2, 2, 2, 1, 4, 4, 2, 2, 3, 3, - 3, 3, 1, 1, 1, 1, 1, 6, 6, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, - 3, 0, 5, 0, 3, 5, 0, 1, 0, 1, - 0, 1, 2, 0, 2, 2, 2, 2, 2, 2, - 0, 3, 0, 1, 0, 3, 3, 0, 2, 0, - 2, 1, 2, 1, 0, 2, 5, 4, 1, 2, - 2, 3, 2, 0, 1, 2, 3, 3, 2, 2, - 1, 1, 1, 3, 2, 0, 1, 3, 1, 2, - 3, 1, 1, 1, 6, 7, 7, 12, 7, 7, - 7, 4, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 7, 1, 3, 8, 8, 5, - 4, 6, 5, 4, 4, 3, 2, 3, 4, 4, - 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, - 4, 3, 6, 4, 2, 4, 2, 2, 2, 2, - 3, 1, 1, 0, 1, 0, 1, 0, 2, 2, - 0, 2, 2, 0, 1, 1, 2, 1, 1, 2, - 1, 1, 2, 2, 2, 2, 2, 0, 2, 0, - 2, 1, 2, 2, 0, 1, 1, 0, 1, 0, - 1, 0, 1, 1, 3, 1, 2, 3, 5, 0, - 1, 2, 1, 1, 0, 2, 1, 3, 1, 1, + 1, 1, 4, 6, 7, 5, 10, 6, 1, 3, + 1, 3, 7, 8, 1, 1, 8, 8, 7, 6, + 1, 1, 1, 3, 0, 4, 3, 4, 5, 4, + 1, 3, 3, 2, 2, 2, 2, 2, 1, 1, + 1, 2, 8, 4, 6, 5, 5, 5, 0, 2, + 1, 0, 2, 1, 3, 3, 4, 4, 1, 3, + 3, 8, 3, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 1, 4, 4, 2, 2, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 6, 6, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 0, 3, 0, 5, 0, 3, 5, 0, 1, 0, + 1, 0, 1, 2, 0, 2, 2, 2, 2, 2, + 2, 0, 3, 0, 1, 0, 3, 3, 0, 2, + 0, 2, 1, 2, 1, 0, 2, 5, 4, 1, + 2, 2, 3, 2, 0, 1, 2, 3, 3, 2, + 2, 1, 1, 1, 3, 2, 0, 1, 3, 1, + 2, 3, 1, 1, 1, 6, 7, 7, 12, 7, + 7, 7, 4, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 7, 1, 3, 8, 8, + 5, 4, 6, 5, 4, 4, 3, 2, 3, 4, + 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, + 3, 4, 3, 6, 4, 2, 4, 2, 2, 2, + 2, 3, 1, 1, 0, 1, 0, 1, 0, 2, + 2, 0, 2, 2, 0, 1, 1, 2, 1, 1, + 2, 1, 1, 2, 2, 2, 2, 2, 0, 2, + 0, 2, 1, 2, 2, 0, 1, 1, 0, 1, + 0, 1, 0, 1, 1, 3, 1, 2, 3, 5, + 0, 1, 2, 1, 1, 2, 1, 3, 1, 1, 1, 1, 3, 3, 3, 7, 1, 3, 1, 3, 4, 4, 4, 3, 2, 4, 0, 1, 0, 2, 0, 1, 0, 1, 2, 1, 1, 1, 2, 2, @@ -2273,11 +2273,11 @@ var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 522, 0, 277, 277, 277, 277, 277, 277, 0, - 592, 575, 0, 0, 0, 0, -2, 267, 268, 0, - 270, 271, 797, 797, 797, 797, 797, 0, 33, 34, - 795, 1, 3, 530, 0, 0, 281, 284, 279, 0, - 575, 0, 0, 0, 60, 0, 0, 784, 0, 785, + 21, 522, 0, 278, 278, 278, 278, 278, 278, 0, + 592, 575, 0, 0, 0, 0, -2, 268, 269, 0, + 271, 272, 797, 797, 797, 797, 797, 0, 34, 35, + 795, 1, 3, 530, 0, 0, 282, 285, 280, 0, + 575, 0, 0, 0, 61, 0, 0, 784, 0, 785, 573, 573, 573, 593, 594, 597, 598, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, @@ -2289,19 +2289,19 @@ var yyDef = [...]int{ 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 786, 787, 788, 789, 790, 791, 792, 793, 794, 0, 0, 576, 0, 571, 0, 571, - 571, 571, 0, 226, 349, 601, 602, 784, 785, 0, - 0, 0, 0, 798, 798, 798, 798, 0, 798, 255, - 244, 246, 247, 248, 249, 798, 264, 265, 254, 266, - 269, 272, 273, 274, 275, 276, 27, 534, 0, 0, - 522, 29, 0, 277, 282, 283, 287, 285, 286, 278, - 0, 295, 299, 0, 357, 0, 362, 364, -2, -2, + 571, 571, 0, 227, 349, 601, 602, 784, 785, 0, + 0, 0, 0, 798, 798, 798, 798, 0, 798, 256, + 245, 247, 248, 249, 250, 798, 265, 266, 255, 267, + 270, 273, 274, 275, 276, 277, 28, 534, 0, 0, + 522, 30, 0, 278, 283, 284, 288, 286, 287, 279, + 0, 296, 300, 0, 357, 0, 362, 364, -2, -2, 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, 0, 0, 0, 427, 428, 429, 430, 507, 508, 509, 510, 511, 512, 513, 514, 366, 367, 504, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 462, 462, 462, 462, 462, 462, 462, 462, 0, 0, 0, 0, 0, 0, 306, 308, 309, 310, -2, - 0, 332, 0, 0, 41, 45, 0, 775, 558, -2, + 0, 332, 0, 0, 42, 46, 0, 775, 558, -2, -2, 0, 0, 599, 600, -2, 704, -2, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, @@ -2312,98 +2312,98 @@ var yyDef = [...]int{ 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 0, 77, 0, 0, 798, 0, 67, 0, 0, 0, + 0, 78, 0, 0, 798, 0, 68, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 227, 798, 798, 798, 798, 798, 798, 798, - 798, 236, 799, 800, 237, 238, 239, 798, 798, 241, - 0, 256, 0, 250, 28, 796, 22, 0, 0, 531, - 0, 523, 524, 527, 530, 27, 284, 0, 289, 288, - 280, 0, 296, 0, 0, 0, 300, 0, 302, 303, + 226, 0, 228, 798, 798, 798, 798, 798, 798, 798, + 798, 237, 799, 800, 238, 239, 240, 798, 798, 242, + 0, 257, 0, 251, 29, 796, 22, 0, 0, 531, + 0, 523, 524, 527, 530, 28, 285, 0, 290, 289, + 281, 0, 297, 0, 0, 0, 301, 0, 303, 304, 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 385, 386, 387, 388, 389, 390, 391, 363, 0, 377, 0, 0, 0, 420, 421, 422, 423, 424, - 425, 0, 291, 27, 0, 398, 0, 0, 0, 0, - 0, 0, 0, 0, 287, 0, 496, 0, 0, 454, - 0, 455, 456, 457, 458, 459, 460, 461, 0, 291, - 0, 0, 43, 0, 348, 0, 0, 0, 0, 0, + 425, 0, 292, 28, 0, 398, 0, 0, 0, 0, + 0, 0, 0, 0, 288, 0, 496, 0, 0, 454, + 0, 455, 456, 457, 458, 459, 460, 461, 0, 292, + 0, 0, 44, 0, 348, 0, 0, 0, 0, 0, 0, 337, 0, 0, 340, 0, 0, 0, 0, 331, 0, 0, 351, 748, 333, 0, 335, 336, -2, 0, - 0, 0, 39, 40, 0, 46, 775, 48, 49, 0, - 0, 0, 157, 566, 567, 568, 564, 185, 0, 140, - 136, 82, 83, 84, 129, 86, 129, 129, 129, 129, - 154, 154, 154, 154, 112, 113, 114, 115, 116, 0, - 0, 99, 129, 129, 129, 103, 119, 120, 121, 122, - 123, 124, 125, 126, 87, 88, 89, 90, 91, 92, - 93, 131, 131, 131, 133, 133, 595, 62, 0, 70, - 0, 798, 0, 798, 75, 0, 201, 0, 220, 572, - 0, 798, 223, 224, 350, 603, 604, 228, 229, 230, - 231, 232, 233, 234, 235, 240, 243, 257, 251, 252, - 245, 535, 0, 0, 0, 0, 0, 526, 528, 529, - 534, 30, 287, 0, 515, 0, 0, 0, 290, 25, - 358, 359, 361, 378, 0, 380, 382, 301, 297, 0, + 0, 0, 40, 41, 0, 47, 775, 49, 50, 0, + 0, 0, 158, 566, 567, 568, 564, 186, 0, 141, + 137, 83, 84, 85, 130, 87, 130, 130, 130, 130, + 155, 155, 155, 155, 113, 114, 115, 116, 117, 0, + 0, 100, 130, 130, 130, 104, 120, 121, 122, 123, + 124, 125, 126, 127, 88, 89, 90, 91, 92, 93, + 94, 132, 132, 132, 134, 134, 595, 63, 0, 71, + 0, 798, 0, 798, 76, 0, 202, 0, 221, 572, + 0, 798, 224, 225, 350, 603, 604, 229, 230, 231, + 232, 233, 234, 235, 236, 241, 244, 258, 252, 253, + 246, 535, 0, 0, 0, 0, 0, 526, 528, 529, + 534, 31, 288, 0, 515, 0, 0, 0, 291, 25, + 358, 359, 361, 378, 0, 380, 382, 302, 298, 0, 505, -2, 368, 369, 394, 395, 396, 0, 0, 0, 0, 392, 373, 0, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 419, 473, 474, 0, - 417, 418, 426, 0, 0, 292, 293, 397, 0, 553, - 27, 0, 0, 0, 0, 0, 504, 0, 0, 0, + 417, 418, 426, 0, 0, 293, 294, 397, 0, 553, + 28, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 502, 499, 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, 347, 355, 555, 0, 307, 326, 328, 0, 323, 338, 339, 341, 0, 343, 0, 345, 346, 312, 313, 314, 0, 0, 0, 0, 334, 355, 0, - 355, 42, 559, 47, 0, 0, 52, 53, 560, 561, - 562, 0, 76, 186, 188, 191, 192, 193, 78, 79, - 0, 0, 0, 0, 0, 180, 181, 143, 141, 0, - 138, 137, 85, 0, 154, 154, 106, 107, 157, 0, - 157, 157, 157, 0, 0, 100, 101, 102, 94, 0, - 95, 96, 97, 0, 98, 0, 0, 798, 64, 0, - 68, 69, 65, 574, 66, 797, 0, 0, 587, 202, + 355, 43, 559, 48, 0, 0, 53, 54, 560, 561, + 562, 0, 77, 187, 189, 192, 193, 194, 79, 80, + 0, 0, 0, 0, 0, 181, 182, 144, 142, 0, + 139, 138, 86, 0, 155, 155, 107, 108, 158, 0, + 158, 158, 158, 0, 0, 101, 102, 103, 95, 0, + 96, 97, 98, 0, 99, 0, 0, 798, 65, 0, + 69, 70, 66, 574, 67, 797, 0, 0, 587, 203, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 0, 219, 798, 222, 260, 0, 0, 0, 532, 533, - 0, 525, 23, 0, 569, 570, 516, 517, 304, 379, - 381, 383, 0, 291, 370, 392, 374, 0, 371, 0, + 0, 220, 798, 223, 261, 0, 0, 0, 532, 533, + 0, 525, 23, 0, 569, 570, 516, 517, 27, 379, + 381, 383, 0, 292, 370, 392, 374, 0, 371, 0, 0, 365, 431, 0, 0, 399, -2, 434, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 500, 0, 0, 448, 0, 464, 465, 466, 467, 547, 0, 0, -2, 0, 0, 522, 0, 0, 0, 320, 327, 0, 0, 321, 0, 322, 342, 344, 0, 0, - 0, 0, 318, 522, 355, 38, 50, 51, 0, 0, - 57, 158, 0, 189, 0, 0, 175, 0, 0, 178, - 179, 150, 0, 142, 81, 139, 0, 157, 157, 108, - 0, 109, 110, 111, 0, 127, 0, 0, 0, 0, - 596, 63, 71, 72, 0, 194, 797, 0, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 797, - 0, 0, 797, 588, 589, 590, 591, 0, 221, 242, - 0, 0, 258, 259, 536, 0, 24, 355, 0, 298, - 506, 0, 372, 0, 393, 375, 432, 294, 0, 129, - 129, 478, 129, 133, 481, 129, 483, 129, 486, 129, - 129, 129, 129, 129, 129, 494, 0, 0, 0, 0, - 505, 0, 0, 0, 497, 447, 503, 0, 450, 31, - 0, 547, 537, 549, 551, 0, 27, 0, 543, 0, + 0, 0, 318, 522, 355, 39, 51, 52, 0, 0, + 58, 159, 0, 190, 0, 0, 176, 0, 0, 179, + 180, 151, 0, 143, 82, 140, 0, 158, 158, 109, + 0, 110, 111, 112, 0, 128, 0, 0, 0, 0, + 596, 64, 72, 73, 0, 195, 797, 0, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 797, + 0, 0, 797, 588, 589, 590, 591, 0, 222, 243, + 0, 0, 259, 260, 536, 0, 24, 355, 0, 299, + 506, 0, 372, 0, 393, 375, 432, 295, 0, 130, + 130, 478, 130, 134, 481, 130, 483, 130, 486, 130, + 130, 130, 130, 130, 130, 494, 0, 0, 0, 0, + 505, 0, 0, 0, 497, 447, 503, 0, 450, 32, + 0, 547, 537, 549, 551, 0, 28, 0, 543, 0, 530, 556, 356, 557, 324, 0, 329, 0, 0, 0, - 332, 0, 530, 37, 54, 55, 56, 187, 190, 0, - 182, 129, 176, 177, 152, 0, 144, 145, 146, 147, - 148, 149, 130, 104, 105, 155, 156, 154, 0, 154, - 0, 134, 0, 798, 0, 0, 195, 0, 196, 198, - 199, 200, 0, 261, 262, 518, 305, 433, 376, 436, - 475, 154, 479, 480, 482, 484, 485, 487, 488, 489, + 332, 0, 530, 38, 55, 56, 57, 188, 191, 0, + 183, 130, 177, 178, 153, 0, 145, 146, 147, 148, + 149, 150, 131, 105, 106, 156, 157, 155, 0, 155, + 0, 135, 0, 798, 0, 0, 196, 0, 197, 199, + 200, 201, 0, 262, 263, 518, 305, 433, 376, 436, + 475, 155, 479, 480, 482, 484, 485, 487, 488, 489, 490, 491, 492, 493, 438, 437, 439, 0, 0, 442, - 0, 0, 0, 0, 0, 501, 0, 0, 0, 32, - 0, 552, -2, 0, 0, 0, 44, 35, 0, 316, - 0, 0, 0, 351, 319, 36, 167, 0, 184, 159, - 153, 0, 157, 128, 157, 0, 0, 61, 73, 74, + 0, 0, 0, 0, 0, 501, 0, 0, 0, 33, + 0, 552, -2, 0, 0, 0, 45, 36, 0, 316, + 0, 0, 0, 351, 319, 37, 168, 0, 185, 160, + 154, 0, 158, 129, 158, 0, 0, 62, 74, 75, 0, 0, 520, 0, 476, 477, 0, 0, 0, 0, 468, 446, 498, 0, 0, 0, 550, 0, -2, 0, - 545, 544, 0, 325, 352, 353, 354, 315, 166, 168, - 0, 173, 0, 183, 164, 0, 161, 163, 151, 117, - 118, 132, 135, 0, 0, 26, 0, 0, 440, 441, + 545, 544, 0, 325, 352, 353, 354, 315, 167, 169, + 0, 174, 0, 184, 165, 0, 162, 164, 152, 118, + 119, 133, 136, 0, 0, 26, 0, 0, 440, 441, 443, 444, 0, 0, 0, 0, 451, 452, 0, 540, - 27, 0, 317, 169, 170, 0, 174, 172, 80, 0, - 160, 162, 67, 0, 215, 0, 521, 519, 445, 0, - 0, 0, 0, 0, 548, -2, 546, 171, 165, 70, - 214, 0, 0, 469, 0, 472, 449, 453, 197, 216, + 28, 0, 317, 170, 171, 0, 175, 173, 81, 0, + 161, 163, 68, 0, 216, 0, 521, 519, 445, 0, + 0, 0, 0, 0, 548, -2, 546, 172, 166, 71, + 215, 0, 0, 469, 0, 472, 449, 453, 198, 217, 0, 470, 0, 0, 0, 0, 0, 471, 0, 0, - 217, 218, + 218, 219, } var yyTok1 = [...]int{ @@ -2846,32 +2846,38 @@ yydefault: yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } case 27: + yyDollar = yyS[yypt-6 : yypt+1] + //line sql.y:367 + { + yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs} + } + case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:369 + //line sql.y:373 { yyVAL.selStmt = yyDollar[1].selStmt } - case 28: + case 29: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:373 + //line sql.y:377 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } - case 29: + case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:379 + //line sql.y:383 { yyVAL.selStmt = yyDollar[1].selStmt } - case 30: + case 31: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:383 + //line sql.y:387 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } - case 31: + case 32: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:390 + //line sql.y:394 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].ins @@ -2883,9 +2889,9 @@ yydefault: ins.OnDup = OnDup(yyDollar[7].updateExprs) yyVAL.statement = ins } - case 32: + case 33: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:402 + //line sql.y:406 { cols := make(Columns, 0, len(yyDollar[7].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[8].updateExprs)) @@ -2895,195 +2901,195 @@ yydefault: } yyVAL.statement = &Insert{Action: yyDollar[1].str, Comments: Comments(yyDollar[2].bytes2), Ignore: yyDollar[3].str, Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitions, Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprs)} } - case 33: + case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:414 + //line sql.y:418 { yyVAL.str = InsertStr } - case 34: + case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:418 + //line sql.y:422 { yyVAL.str = ReplaceStr } - case 35: + case 36: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:424 + //line sql.y:428 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), TableExprs: yyDollar[3].tableExprs, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } - case 36: + case 37: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:430 + //line sql.y:434 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[4].tableName}}, Partitions: yyDollar[5].partitions, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } - case 37: + case 38: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:434 + //line sql.y:438 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[4].tableNames, TableExprs: yyDollar[6].tableExprs, Where: NewWhere(WhereStr, yyDollar[7].expr)} } - case 38: + case 39: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:438 + //line sql.y:442 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[3].tableNames, TableExprs: yyDollar[5].tableExprs, Where: NewWhere(WhereStr, yyDollar[6].expr)} } - case 39: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:443 - { - } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:444 + //line sql.y:447 { } case 41: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:448 { - yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 42: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:452 { - yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) + yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 43: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:457 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:456 { - yyVAL.partitions = nil + yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } case 44: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:461 { - yyVAL.partitions = yyDollar[3].partitions + yyVAL.partitions = nil } case 45: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:467 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:465 { - yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} + yyVAL.partitions = yyDollar[3].partitions } case 46: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:471 { - yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[4].setExprs} + yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 47: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:475 { - yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[5].setExprs} + yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[4].setExprs} } case 48: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:479 { - yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[4].setExprs} + yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[5].setExprs} } case 49: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:485 + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:483 { - yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} + yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[4].setExprs} } case 50: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:489 { - yyVAL.setExprs = append(yyVAL.setExprs, yyDollar[3].setExpr) + yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 51: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:495 + //line sql.y:493 { - yyVAL.setExpr = yyDollar[3].setExpr + yyVAL.setExprs = append(yyVAL.setExprs, yyDollar[3].setExpr) } case 52: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:499 { - yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("0"))} + yyVAL.setExpr = yyDollar[3].setExpr } case 53: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:503 { - yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("1"))} + yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("0"))} } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:509 + //line sql.y:507 { - yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("repeatable read"))} + yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("1"))} } case 55: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:513 { - yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read committed"))} + yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("repeatable read"))} } case 56: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:517 { - yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read uncommitted"))} + yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read committed"))} } case 57: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:521 { - yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("serializable"))} + yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read uncommitted"))} } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:527 + //line sql.y:525 { - yyVAL.str = SessionStr + yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("serializable"))} } case 59: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:531 { - yyVAL.str = GlobalStr + yyVAL.str = SessionStr } case 60: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:535 + { + yyVAL.str = GlobalStr + } + case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:537 + //line sql.y:541 { yyDollar[1].ddl.TableSpec = yyDollar[2].TableSpec yyVAL.statement = yyDollar[1].ddl } - case 61: + case 62: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:542 + //line sql.y:546 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} } - case 62: + case 63: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:547 + //line sql.y:551 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} } - case 63: + case 64: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:551 + //line sql.y:555 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} } - case 64: + case 65: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:555 + //line sql.y:559 { yyVAL.statement = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ Name: yyDollar[3].colIdent, @@ -3091,104 +3097,104 @@ yydefault: Params: yyDollar[5].vindexParams, }} } - case 65: + case 66: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:563 + //line sql.y:567 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } - case 66: + case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:567 + //line sql.y:571 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } - case 67: + case 68: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:572 + //line sql.y:576 { yyVAL.colIdent = NewColIdent("") } - case 68: + case 69: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:576 + //line sql.y:580 { yyVAL.colIdent = yyDollar[2].colIdent } - case 69: + case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:582 + //line sql.y:586 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 70: + case 71: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:587 + //line sql.y:591 { var v []VindexParam yyVAL.vindexParams = v } - case 71: + case 72: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:592 + //line sql.y:596 { yyVAL.vindexParams = yyDollar[2].vindexParams } - case 72: + case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:598 + //line sql.y:602 { yyVAL.vindexParams = make([]VindexParam, 0, 4) yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[1].vindexParam) } - case 73: + case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:603 + //line sql.y:607 { yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[3].vindexParam) } - case 74: + case 75: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:609 + //line sql.y:613 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } - case 75: + case 76: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:615 + //line sql.y:619 { yyVAL.ddl = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } - case 76: + case 77: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:622 + //line sql.y:626 { yyVAL.TableSpec = yyDollar[2].TableSpec yyVAL.TableSpec.Options = yyDollar[4].str } - case 77: + case 78: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:629 + //line sql.y:633 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) } - case 78: + case 79: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:634 + //line sql.y:638 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) } - case 79: + case 80: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:638 + //line sql.y:642 { yyVAL.TableSpec.AddIndex(yyDollar[3].indexDefinition) } - case 80: + case 81: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:644 + //line sql.y:648 { yyDollar[2].columnType.NotNull = yyDollar[3].boolVal yyDollar[2].columnType.Default = yyDollar[4].optVal @@ -3198,32 +3204,26 @@ yydefault: yyDollar[2].columnType.Comment = yyDollar[8].optVal yyVAL.columnDefinition = &ColumnDefinition{Name: NewColIdent(string(yyDollar[1].bytes)), Type: yyDollar[2].columnType} } - case 81: + case 82: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:655 + //line sql.y:659 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal yyVAL.columnType.Zerofill = yyDollar[3].boolVal } - case 85: + case 86: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:666 + //line sql.y:670 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } - case 86: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:671 - { - yyVAL.columnType = yyDollar[1].columnType - } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:677 + //line sql.y:675 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = yyDollar[1].columnType } case 88: yyDollar = yyS[yypt-1 : yypt+1] @@ -3262,16 +3262,14 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 94: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:707 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:705 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 95: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:713 + //line sql.y:711 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3279,7 +3277,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:719 + //line sql.y:717 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3287,7 +3285,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:725 + //line sql.y:723 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -3295,23 +3293,25 @@ yydefault: } case 98: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:731 + //line sql.y:729 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 99: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:739 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:735 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } case 100: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:743 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 101: yyDollar = yyS[yypt-2 : yypt+1] @@ -3326,16 +3326,16 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 103: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:755 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 104: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:761 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:759 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 105: yyDollar = yyS[yypt-4 : yypt+1] @@ -3344,10 +3344,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 106: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:769 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 107: yyDollar = yyS[yypt-2 : yypt+1] @@ -3356,10 +3356,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 108: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:777 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 109: yyDollar = yyS[yypt-3 : yypt+1] @@ -3380,10 +3380,10 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 112: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:793 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 113: yyDollar = yyS[yypt-1 : yypt+1] @@ -3410,22 +3410,22 @@ yydefault: yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 117: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:813 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 118: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:818 + //line sql.y:817 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 119: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:824 + yyDollar = yyS[yypt-6 : yypt+1] + //line sql.y:822 { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 120: yyDollar = yyS[yypt-1 : yypt+1] @@ -3471,138 +3471,138 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:858 + //line sql.y:856 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} + } + case 128: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:862 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } - case 128: + case 129: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:863 + //line sql.y:867 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } - case 129: + case 130: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:868 + //line sql.y:872 { yyVAL.optVal = nil } - case 130: + case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:872 + //line sql.y:876 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 131: + case 132: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:877 + //line sql.y:881 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 132: + case 133: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:881 + //line sql.y:885 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 133: + case 134: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:889 + //line sql.y:893 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 134: + case 135: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:893 + //line sql.y:897 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), } } - case 135: + case 136: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:899 + //line sql.y:903 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 136: + case 137: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:907 + //line sql.y:911 { yyVAL.boolVal = BoolVal(false) } - case 137: + case 138: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:911 + //line sql.y:915 { yyVAL.boolVal = BoolVal(true) } - case 138: + case 139: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:916 + //line sql.y:920 { yyVAL.boolVal = BoolVal(false) } - case 139: + case 140: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:920 + //line sql.y:924 { yyVAL.boolVal = BoolVal(true) } - case 140: + case 141: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:926 + //line sql.y:930 { yyVAL.boolVal = BoolVal(false) } - case 141: + case 142: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:930 + //line sql.y:934 { yyVAL.boolVal = BoolVal(false) } - case 142: + case 143: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:934 + //line sql.y:938 { yyVAL.boolVal = BoolVal(true) } - case 143: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:939 - { - yyVAL.optVal = nil - } case 144: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:943 { - yyVAL.optVal = NewStrVal(yyDollar[2].bytes) + yyVAL.optVal = nil } case 145: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:947 { - yyVAL.optVal = NewIntVal(yyDollar[2].bytes) + yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 146: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:951 { - yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) + yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 147: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:955 { - yyVAL.optVal = NewValArg(yyDollar[2].bytes) + yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } case 148: yyDollar = yyS[yypt-2 : yypt+1] @@ -3614,194 +3614,194 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:963 { - yyVAL.optVal = NewBitVal(yyDollar[2].bytes) + yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 150: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:967 + { + yyVAL.optVal = NewBitVal(yyDollar[2].bytes) + } + case 151: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:968 + //line sql.y:972 { yyVAL.optVal = nil } - case 151: + case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:972 + //line sql.y:976 { yyVAL.optVal = NewValArg(yyDollar[3].bytes) } - case 152: + case 153: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:977 + //line sql.y:981 { yyVAL.boolVal = BoolVal(false) } - case 153: + case 154: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:981 + //line sql.y:985 { yyVAL.boolVal = BoolVal(true) } - case 154: + case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:986 + //line sql.y:990 { yyVAL.str = "" } - case 155: + case 156: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:990 + //line sql.y:994 { yyVAL.str = string(yyDollar[3].bytes) } - case 156: + case 157: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:994 + //line sql.y:998 { yyVAL.str = string(yyDollar[3].bytes) } - case 157: + case 158: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:999 + //line sql.y:1003 { yyVAL.str = "" } - case 158: + case 159: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1003 + //line sql.y:1007 { yyVAL.str = string(yyDollar[2].bytes) } - case 159: + case 160: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1008 + //line sql.y:1012 { yyVAL.colKeyOpt = colKeyNone } - case 160: + case 161: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1012 + //line sql.y:1016 { yyVAL.colKeyOpt = colKeyPrimary } - case 161: + case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1016 + //line sql.y:1020 { yyVAL.colKeyOpt = colKey } - case 162: + case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1020 + //line sql.y:1024 { yyVAL.colKeyOpt = colKeyUniqueKey } - case 163: + case 164: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1024 + //line sql.y:1028 { yyVAL.colKeyOpt = colKeyUnique } - case 164: + case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1029 + //line sql.y:1033 { yyVAL.optVal = nil } - case 165: + case 166: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1033 + //line sql.y:1037 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 166: + case 167: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1039 + //line sql.y:1043 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } - case 167: + case 168: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1043 + //line sql.y:1047 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } - case 168: + case 169: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1049 + //line sql.y:1053 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } - case 169: + case 170: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1053 + //line sql.y:1057 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } - case 170: + case 171: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1059 + //line sql.y:1063 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } - case 171: + case 172: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1063 + //line sql.y:1067 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } - case 172: + case 173: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1068 + //line sql.y:1072 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } - case 173: + case 174: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1074 + //line sql.y:1078 { yyVAL.str = "" } - case 174: + case 175: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1078 + //line sql.y:1082 { yyVAL.str = string(yyDollar[1].bytes) } - case 175: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1084 - { - yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} - } case 176: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1088 { - yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Spatial: true, Unique: false} + yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } case 177: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1092 { - yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Unique: true} + yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Spatial: true, Unique: false} } case 178: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1096 { - yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: true} + yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Unique: true} } case 179: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1100 { - yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} + yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: true} } case 180: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1106 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1104 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} } case 181: yyDollar = yyS[yypt-1 : yypt+1] @@ -3811,84 +3811,84 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1116 + //line sql.y:1114 { - yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} + yyVAL.str = string(yyDollar[1].bytes) } case 183: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1120 { - yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) + yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } case 184: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1124 + { + yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) + } + case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1126 + //line sql.y:1130 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } - case 185: + case 186: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1131 + //line sql.y:1135 { yyVAL.str = "" } - case 186: + case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1135 + //line sql.y:1139 { yyVAL.str = " " + string(yyDollar[1].str) } - case 187: + case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1139 + //line sql.y:1143 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } - case 188: + case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1147 + //line sql.y:1151 { yyVAL.str = yyDollar[1].str } - case 189: + case 190: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1151 + //line sql.y:1155 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } - case 190: + case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1155 + //line sql.y:1159 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } - case 191: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1161 - { - yyVAL.str = yyDollar[1].colIdent.String() - } case 192: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1165 { - yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" + yyVAL.str = yyDollar[1].colIdent.String() } case 193: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1169 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } case 194: - yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1175 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1173 { - yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} + yyVAL.str = string(yyDollar[1].bytes) } case 195: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:1179 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} @@ -3900,8 +3900,14 @@ yydefault: yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 197: - yyDollar = yyS[yypt-12 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:1187 + { + yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} + } + case 198: + yyDollar = yyS[yypt-12 : yypt+1] + //line sql.y:1191 { yyVAL.statement = &DDL{ Action: AddColVindexStr, @@ -3914,9 +3920,9 @@ yydefault: VindexCols: yyDollar[9].columns, } } - case 198: + case 199: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1200 + //line sql.y:1204 { yyVAL.statement = &DDL{ Action: DropColVindexStr, @@ -3926,71 +3932,71 @@ yydefault: }, } } - case 199: + case 200: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1210 + //line sql.y:1214 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } - case 200: + case 201: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1215 + //line sql.y:1219 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 201: + case 202: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1220 + //line sql.y:1224 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} } - case 202: + case 203: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1224 + //line sql.y:1228 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, PartitionSpec: yyDollar[5].partSpec} } - case 214: + case 215: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1243 + //line sql.y:1247 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } - case 215: + case 216: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1249 + //line sql.y:1253 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } - case 216: + case 217: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1253 + //line sql.y:1257 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } - case 217: + case 218: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1259 + //line sql.y:1263 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } - case 218: + case 219: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1263 + //line sql.y:1267 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } - case 219: + case 220: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1269 + //line sql.y:1273 { yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } - case 220: + case 221: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1275 + //line sql.y:1279 { var exists bool if yyDollar[3].byt != 0 { @@ -3998,16 +4004,16 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName, IfExists: exists} } - case 221: + case 222: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1283 + //line sql.y:1287 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } - case 222: + case 223: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1288 + //line sql.y:1292 { var exists bool if yyDollar[3].byt != 0 { @@ -4015,42 +4021,36 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName.ToViewName(), IfExists: exists} } - case 223: + case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1296 + //line sql.y:1300 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 224: + case 225: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1300 + //line sql.y:1304 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 225: + case 226: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1306 + //line sql.y:1310 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } - case 226: + case 227: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1310 + //line sql.y:1314 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } - case 227: + case 228: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1315 + //line sql.y:1319 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } - case 228: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1321 - { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} - } case 229: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1325 @@ -4065,7 +4065,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1334 + //line sql.y:1333 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } @@ -4094,10 +4094,10 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 236: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1354 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 237: yyDollar = yyS[yypt-3 : yypt+1] @@ -4118,20 +4118,26 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 240: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1370 { - yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 241: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1374 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 242: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1378 + { + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + } + case 243: + yyDollar = yyS[yypt-6 : yypt+1] + //line sql.y:1382 { // this is ugly, but I couldn't find a better way for now if yyDollar[4].str == "processlist" { @@ -4141,29 +4147,23 @@ yydefault: yyVAL.statement = &Show{Type: yyDollar[4].str, ShowTablesOpt: showTablesOpt} } } - case 243: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1388 - { - yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} - } case 244: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1392 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 245: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1396 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 246: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1400 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} } case 247: yyDollar = yyS[yypt-2 : yypt+1] @@ -4184,16 +4184,16 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 250: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1422 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1416 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 251: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1428 + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1426 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 252: yyDollar = yyS[yypt-1 : yypt+1] @@ -4202,40 +4202,40 @@ yydefault: yyVAL.str = string(yyDollar[1].bytes) } case 253: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1438 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1436 { - yyVAL.str = "" + yyVAL.str = string(yyDollar[1].bytes) } case 254: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1442 { - yyVAL.str = "extended " + yyVAL.str = "" } case 255: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1448 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1446 { - yyVAL.str = "" + yyVAL.str = "extended " } case 256: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1452 { - yyVAL.str = "full " + yyVAL.str = "" } case 257: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1458 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1456 { - yyVAL.str = "" + yyVAL.str = "full " } case 258: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1462 { - yyVAL.str = yyDollar[2].tableIdent.v + yyVAL.str = "" } case 259: yyDollar = yyS[yypt-2 : yypt+1] @@ -4244,82 +4244,82 @@ yydefault: yyVAL.str = yyDollar[2].tableIdent.v } case 260: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1472 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1470 { - yyVAL.showFilter = nil + yyVAL.str = yyDollar[2].tableIdent.v } case 261: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1476 { - yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} + yyVAL.showFilter = nil } case 262: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1480 { - yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} + yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 263: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1486 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1484 { - yyVAL.str = "" + yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 264: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1490 { - yyVAL.str = SessionStr + yyVAL.str = "" } case 265: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1494 { - yyVAL.str = GlobalStr + yyVAL.str = SessionStr } case 266: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1500 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1498 { - yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} + yyVAL.str = GlobalStr } case 267: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1504 { - yyVAL.statement = &Use{DBName: TableIdent{v: ""}} + yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 268: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1510 + //line sql.y:1508 { - yyVAL.statement = &Begin{} + yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } case 269: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1514 { yyVAL.statement = &Begin{} } case 270: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1520 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1518 { - yyVAL.statement = &Commit{} + yyVAL.statement = &Begin{} } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1526 + //line sql.y:1524 { - yyVAL.statement = &Rollback{} + yyVAL.statement = &Commit{} } case 272: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1532 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1530 { - yyVAL.statement = &OtherRead{} + yyVAL.statement = &Rollback{} } case 273: yyDollar = yyS[yypt-2 : yypt+1] @@ -4337,7 +4337,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1544 { - yyVAL.statement = &OtherAdmin{} + yyVAL.statement = &OtherRead{} } case 276: yyDollar = yyS[yypt-2 : yypt+1] @@ -4346,399 +4346,399 @@ yydefault: yyVAL.statement = &OtherAdmin{} } case 277: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1552 + { + yyVAL.statement = &OtherAdmin{} + } + case 278: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1553 + //line sql.y:1557 { setAllowComments(yylex, true) } - case 278: + case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1557 + //line sql.y:1561 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 279: + case 280: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1563 + //line sql.y:1567 { yyVAL.bytes2 = nil } - case 280: + case 281: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1567 + //line sql.y:1571 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 281: + case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1573 + //line sql.y:1577 { yyVAL.str = UnionStr } - case 282: + case 283: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1577 + //line sql.y:1581 { yyVAL.str = UnionAllStr } - case 283: + case 284: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1581 + //line sql.y:1585 { yyVAL.str = UnionDistinctStr } - case 284: + case 285: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1586 + //line sql.y:1590 { yyVAL.str = "" } - case 285: + case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1590 + //line sql.y:1594 { yyVAL.str = SQLNoCacheStr } - case 286: + case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1594 + //line sql.y:1598 { yyVAL.str = SQLCacheStr } - case 287: + case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1599 + //line sql.y:1603 { yyVAL.str = "" } - case 288: + case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1603 + //line sql.y:1607 { yyVAL.str = DistinctStr } - case 289: + case 290: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1608 + //line sql.y:1612 { yyVAL.str = "" } - case 290: + case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1612 + //line sql.y:1616 { yyVAL.str = StraightJoinHint } - case 291: + case 292: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1617 + //line sql.y:1621 { yyVAL.selectExprs = nil } - case 292: + case 293: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1621 + //line sql.y:1625 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 293: + case 294: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1627 + //line sql.y:1631 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 294: + case 295: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1631 + //line sql.y:1635 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 295: + case 296: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1637 + //line sql.y:1641 { yyVAL.selectExpr = &StarExpr{} } - case 296: + case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1641 + //line sql.y:1645 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 297: + case 298: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1645 + //line sql.y:1649 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 298: + case 299: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1649 + //line sql.y:1653 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 299: + case 300: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1654 + //line sql.y:1658 { yyVAL.colIdent = ColIdent{} } - case 300: + case 301: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1658 + //line sql.y:1662 { yyVAL.colIdent = yyDollar[1].colIdent } - case 301: + case 302: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1662 + //line sql.y:1666 { yyVAL.colIdent = yyDollar[2].colIdent } - case 303: + case 304: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1669 + //line sql.y:1673 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 304: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1674 - { - yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} - } case 305: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1678 + //line sql.y:1679 { yyVAL.tableExprs = yyDollar[2].tableExprs } case 306: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1684 + //line sql.y:1685 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1688 + //line sql.y:1689 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } case 310: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1698 + //line sql.y:1699 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 311: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1702 + //line sql.y:1703 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery} } case 312: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1706 + //line sql.y:1707 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } case 313: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1710 + //line sql.y:1711 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 314: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1716 + //line sql.y:1717 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 315: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1720 + //line sql.y:1721 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1726 + //line sql.y:1727 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1730 + //line sql.y:1731 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 318: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1736 + //line sql.y:1737 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1740 + //line sql.y:1741 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1753 + //line sql.y:1754 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 321: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1757 + //line sql.y:1758 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 322: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1761 + //line sql.y:1762 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1765 + //line sql.y:1766 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 324: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1771 + //line sql.y:1772 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 325: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1773 + //line sql.y:1774 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } case 326: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1777 + //line sql.y:1778 { yyVAL.joinCondition = JoinCondition{} } case 327: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1779 + //line sql.y:1780 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 328: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1783 + //line sql.y:1784 { yyVAL.joinCondition = JoinCondition{} } case 329: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1785 + //line sql.y:1786 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 330: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1788 + //line sql.y:1789 { yyVAL.empty = struct{}{} } case 331: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1790 + //line sql.y:1791 { yyVAL.empty = struct{}{} } case 332: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1793 + //line sql.y:1794 { yyVAL.tableIdent = NewTableIdent("") } case 333: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1797 + //line sql.y:1798 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1801 + //line sql.y:1802 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 336: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1808 + //line sql.y:1809 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1814 + //line sql.y:1815 { yyVAL.str = JoinStr } case 338: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1818 + //line sql.y:1819 { yyVAL.str = InnerJoinStr } case 339: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1822 + //line sql.y:1823 { yyVAL.str = CrossJoinStr } case 340: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1828 + //line sql.y:1829 { yyVAL.str = StraightJoinStr } case 341: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1834 + //line sql.y:1835 { yyVAL.str = LeftJoinStr } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1838 + //line sql.y:1839 { yyVAL.str = LeftJoinStr } case 343: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1842 + //line sql.y:1843 { yyVAL.str = RightJoinStr } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1846 + //line sql.y:1847 { yyVAL.str = RightJoinStr } case 345: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1852 + //line sql.y:1853 { yyVAL.str = NaturalJoinStr } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1856 + //line sql.y:1857 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4748,457 +4748,457 @@ yydefault: } case 347: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1866 + //line sql.y:1867 { yyVAL.tableName = yyDollar[2].tableName } case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1870 + //line sql.y:1871 { yyVAL.tableName = yyDollar[1].tableName } case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1876 + //line sql.y:1877 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 350: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1880 + //line sql.y:1881 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 351: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1885 + //line sql.y:1886 { yyVAL.indexHints = nil } case 352: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1889 + //line sql.y:1890 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } case 353: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1893 + //line sql.y:1894 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } case 354: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1897 + //line sql.y:1898 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } case 355: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1902 + //line sql.y:1903 { yyVAL.expr = nil } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1906 + //line sql.y:1907 { yyVAL.expr = yyDollar[2].expr } case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1912 + //line sql.y:1913 { yyVAL.expr = yyDollar[1].expr } case 358: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1916 + //line sql.y:1917 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 359: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1920 + //line sql.y:1921 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1924 + //line sql.y:1925 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } case 361: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1928 + //line sql.y:1929 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1932 + //line sql.y:1933 { yyVAL.expr = yyDollar[1].expr } case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1936 + //line sql.y:1937 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } case 364: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1942 + //line sql.y:1943 { yyVAL.str = "" } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1946 + //line sql.y:1947 { yyVAL.str = string(yyDollar[2].bytes) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1952 + //line sql.y:1953 { yyVAL.boolVal = BoolVal(true) } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1956 + //line sql.y:1957 { yyVAL.boolVal = BoolVal(false) } case 368: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1962 + //line sql.y:1963 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 369: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1966 + //line sql.y:1967 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 370: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1970 + //line sql.y:1971 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 371: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1974 + //line sql.y:1975 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 372: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1978 + //line sql.y:1979 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1982 + //line sql.y:1983 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 374: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1986 + //line sql.y:1987 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 375: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1990 + //line sql.y:1991 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 376: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1994 + //line sql.y:1995 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 377: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1998 + //line sql.y:1999 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2004 + //line sql.y:2005 { yyVAL.str = IsNullStr } case 379: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2008 + //line sql.y:2009 { yyVAL.str = IsNotNullStr } case 380: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2012 + //line sql.y:2013 { yyVAL.str = IsTrueStr } case 381: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2016 + //line sql.y:2017 { yyVAL.str = IsNotTrueStr } case 382: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2020 + //line sql.y:2021 { yyVAL.str = IsFalseStr } case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2024 + //line sql.y:2025 { yyVAL.str = IsNotFalseStr } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2030 + //line sql.y:2031 { yyVAL.str = EqualStr } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2034 + //line sql.y:2035 { yyVAL.str = LessThanStr } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2038 + //line sql.y:2039 { yyVAL.str = GreaterThanStr } case 387: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2042 + //line sql.y:2043 { yyVAL.str = LessEqualStr } case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2046 + //line sql.y:2047 { yyVAL.str = GreaterEqualStr } case 389: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2050 + //line sql.y:2051 { yyVAL.str = NotEqualStr } case 390: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2054 + //line sql.y:2055 { yyVAL.str = NullSafeEqualStr } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2058 + //line sql.y:2059 { yyVAL.str = NullSafeNotEqualStr } case 392: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2063 + //line sql.y:2064 { yyVAL.expr = nil } case 393: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2067 + //line sql.y:2068 { yyVAL.expr = yyDollar[2].expr } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2073 + //line sql.y:2074 { yyVAL.colTuple = yyDollar[1].valTuple } case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2077 + //line sql.y:2078 { yyVAL.colTuple = yyDollar[1].subquery } case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2081 + //line sql.y:2082 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2087 + //line sql.y:2088 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2093 + //line sql.y:2094 { yyVAL.exprs = Exprs{yyDollar[1].expr} } case 399: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2097 + //line sql.y:2098 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2103 + //line sql.y:2104 { yyVAL.expr = yyDollar[1].expr } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2107 + //line sql.y:2108 { yyVAL.expr = yyDollar[1].boolVal } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2111 + //line sql.y:2112 { yyVAL.expr = yyDollar[1].colName } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2115 + //line sql.y:2116 { yyVAL.expr = yyDollar[1].expr } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2119 + //line sql.y:2120 { yyVAL.expr = yyDollar[1].subquery } case 405: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2123 + //line sql.y:2124 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 406: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2127 + //line sql.y:2128 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 407: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2131 + //line sql.y:2132 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2135 + //line sql.y:2136 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 409: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2139 + //line sql.y:2140 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2143 + //line sql.y:2144 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2147 + //line sql.y:2148 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2151 + //line sql.y:2152 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2155 + //line sql.y:2156 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2159 + //line sql.y:2160 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2163 + //line sql.y:2164 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2167 + //line sql.y:2168 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 417: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2171 + //line sql.y:2172 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2175 + //line sql.y:2176 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2179 + //line sql.y:2180 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 420: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2183 + //line sql.y:2184 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 421: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2187 + //line sql.y:2188 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2191 + //line sql.y:2192 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5208,7 +5208,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2199 + //line sql.y:2200 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5224,19 +5224,19 @@ yydefault: } case 424: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2213 + //line sql.y:2214 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } case 425: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2217 + //line sql.y:2218 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2221 + //line sql.y:2222 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5246,289 +5246,289 @@ yydefault: } case 431: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2239 + //line sql.y:2240 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } case 432: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2243 + //line sql.y:2244 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } case 433: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2247 + //line sql.y:2248 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } case 434: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2257 + //line sql.y:2258 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 435: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2261 + //line sql.y:2262 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 436: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2265 + //line sql.y:2266 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 437: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2269 + //line sql.y:2270 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 438: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2273 + //line sql.y:2274 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 439: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2277 + //line sql.y:2278 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 440: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2281 + //line sql.y:2282 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 441: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2285 + //line sql.y:2286 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 442: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2289 + //line sql.y:2290 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } case 443: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2293 + //line sql.y:2294 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 444: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2297 + //line sql.y:2298 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 445: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2301 + //line sql.y:2302 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 446: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2305 + //line sql.y:2306 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 447: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2309 + //line sql.y:2310 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 448: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2313 + //line sql.y:2314 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 449: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:2317 + //line sql.y:2318 { yyVAL.expr = &RowNumberOverExpr{PartitionBy: yyDollar[6].partitionBy, OrderBy: yyDollar[9].orderBy} } case 450: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2322 + //line sql.y:2323 { yyVAL.partitionBy = nil } case 451: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2326 + //line sql.y:2327 { yyVAL.partitionBy = yyDollar[3].partitionBy } case 452: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2332 + //line sql.y:2333 { yyVAL.partitionBy = PartitionBy{yyDollar[1].expr} } case 453: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2336 + //line sql.y:2337 { yyVAL.partitionBy = append(yyDollar[1].partitionBy, yyDollar[3].expr) } case 454: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2346 + //line sql.y:2347 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } case 455: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2350 + //line sql.y:2351 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } case 456: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2354 + //line sql.y:2355 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } case 457: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2358 + //line sql.y:2359 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } case 458: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2363 + //line sql.y:2364 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } case 459: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2368 + //line sql.y:2369 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2373 + //line sql.y:2374 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } case 461: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2378 + //line sql.y:2379 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } case 464: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2392 + //line sql.y:2393 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } case 465: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2396 + //line sql.y:2397 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } case 466: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2400 + //line sql.y:2401 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } case 467: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2404 + //line sql.y:2405 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } case 468: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2410 + //line sql.y:2411 { yyVAL.str = "" } case 469: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2414 + //line sql.y:2415 { yyVAL.str = BooleanModeStr } case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2418 + //line sql.y:2419 { yyVAL.str = NaturalLanguageModeStr } case 471: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2422 + //line sql.y:2423 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2426 + //line sql.y:2427 { yyVAL.str = QueryExpansionStr } case 473: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2432 + //line sql.y:2433 { yyVAL.str = string(yyDollar[1].bytes) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2436 + //line sql.y:2437 { yyVAL.str = string(yyDollar[1].bytes) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2442 + //line sql.y:2443 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2446 + //line sql.y:2447 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 477: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2450 + //line sql.y:2451 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2454 + //line sql.y:2455 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 479: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2458 + //line sql.y:2459 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 480: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2462 + //line sql.y:2463 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length @@ -5536,211 +5536,211 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2468 + //line sql.y:2469 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2472 + //line sql.y:2473 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 483: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2476 + //line sql.y:2477 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 484: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2480 + //line sql.y:2481 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2484 + //line sql.y:2485 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2488 + //line sql.y:2489 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2492 + //line sql.y:2493 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 488: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2496 + //line sql.y:2497 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 489: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2500 + //line sql.y:2501 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2504 + //line sql.y:2505 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2508 + //line sql.y:2509 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2512 + //line sql.y:2513 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 493: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2516 + //line sql.y:2517 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 494: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2520 + //line sql.y:2521 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 495: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2525 + //line sql.y:2526 { yyVAL.expr = nil } case 496: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2529 + //line sql.y:2530 { yyVAL.expr = yyDollar[1].expr } case 497: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2534 + //line sql.y:2535 { yyVAL.str = string("") } case 498: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2538 + //line sql.y:2539 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } case 499: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2544 + //line sql.y:2545 { yyVAL.whens = []*When{yyDollar[1].when} } case 500: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2548 + //line sql.y:2549 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } case 501: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2554 + //line sql.y:2555 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } case 502: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2559 + //line sql.y:2560 { yyVAL.expr = nil } case 503: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2563 + //line sql.y:2564 { yyVAL.expr = yyDollar[2].expr } case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2569 + //line sql.y:2570 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 505: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2573 + //line sql.y:2574 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 506: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2577 + //line sql.y:2578 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 507: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2583 + //line sql.y:2584 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 508: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2587 + //line sql.y:2588 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 509: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2591 + //line sql.y:2592 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 510: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2595 + //line sql.y:2596 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 511: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2599 + //line sql.y:2600 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2603 + //line sql.y:2604 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2607 + //line sql.y:2608 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2611 + //line sql.y:2612 { yyVAL.expr = &NullVal{} } case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2617 + //line sql.y:2618 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5751,237 +5751,237 @@ yydefault: } case 516: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2626 + //line sql.y:2627 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 517: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2630 + //line sql.y:2631 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 518: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2635 + //line sql.y:2636 { yyVAL.exprs = nil } case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2639 + //line sql.y:2640 { yyVAL.exprs = yyDollar[3].exprs } case 520: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2644 + //line sql.y:2645 { yyVAL.expr = nil } case 521: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2648 + //line sql.y:2649 { yyVAL.expr = yyDollar[2].expr } case 522: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2653 + //line sql.y:2654 { yyVAL.orderBy = nil } case 523: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2657 + //line sql.y:2658 { yyVAL.orderBy = yyDollar[3].orderBy } case 524: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2663 + //line sql.y:2664 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } case 525: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2667 + //line sql.y:2668 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } case 526: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2673 + //line sql.y:2674 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } case 527: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2678 + //line sql.y:2679 { yyVAL.str = AscScr } case 528: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2682 + //line sql.y:2683 { yyVAL.str = AscScr } case 529: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2686 + //line sql.y:2687 { yyVAL.str = DescScr } case 530: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2691 + //line sql.y:2692 { yyVAL.limit = nil } case 531: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2695 + //line sql.y:2696 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } case 532: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2699 + //line sql.y:2700 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } case 533: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2703 + //line sql.y:2704 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } case 534: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2708 + //line sql.y:2709 { yyVAL.str = "" } case 535: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2712 + //line sql.y:2713 { yyVAL.str = ForUpdateStr } case 536: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2716 + //line sql.y:2717 { yyVAL.str = ShareModeStr } case 537: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2729 + //line sql.y:2730 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } case 538: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2733 + //line sql.y:2734 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } case 539: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2737 + //line sql.y:2738 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } case 540: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2742 + //line sql.y:2743 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } case 541: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2746 + //line sql.y:2747 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } case 542: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2750 + //line sql.y:2751 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2757 + //line sql.y:2758 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2761 + //line sql.y:2762 { yyVAL.columns = Columns{yyDollar[3].colIdent} } case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2765 + //line sql.y:2766 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 546: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2769 + //line sql.y:2770 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } case 547: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2774 + //line sql.y:2775 { yyVAL.updateExprs = nil } case 548: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2778 + //line sql.y:2779 { yyVAL.updateExprs = yyDollar[5].updateExprs } case 549: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2784 + //line sql.y:2785 { yyVAL.values = Values{yyDollar[1].valTuple} } case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2788 + //line sql.y:2789 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } case 551: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2794 + //line sql.y:2795 { yyVAL.valTuple = yyDollar[1].valTuple } case 552: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2798 + //line sql.y:2799 { yyVAL.valTuple = ValTuple{} } case 553: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2804 + //line sql.y:2805 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2810 + //line sql.y:2811 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5991,271 +5991,271 @@ yydefault: } case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2820 + //line sql.y:2821 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2824 + //line sql.y:2825 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } case 557: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2830 + //line sql.y:2831 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } case 558: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2836 + //line sql.y:2837 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 559: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2840 + //line sql.y:2841 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } case 560: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2846 + //line sql.y:2847 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } case 561: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2850 + //line sql.y:2851 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } case 562: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2854 + //line sql.y:2855 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } case 564: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2861 + //line sql.y:2862 { yyVAL.bytes = []byte("charset") } case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2868 + //line sql.y:2869 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2872 + //line sql.y:2873 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 568: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2876 + //line sql.y:2877 { yyVAL.expr = &Default{} } case 571: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2885 + //line sql.y:2886 { yyVAL.byt = 0 } case 572: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2887 + //line sql.y:2888 { yyVAL.byt = 1 } case 573: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2890 + //line sql.y:2891 { yyVAL.empty = struct{}{} } case 574: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2892 + //line sql.y:2893 { yyVAL.empty = struct{}{} } case 575: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2895 + //line sql.y:2896 { yyVAL.str = "" } case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2897 + //line sql.y:2898 { yyVAL.str = IgnoreStr } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2901 + //line sql.y:2902 { yyVAL.empty = struct{}{} } case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2903 + //line sql.y:2904 { yyVAL.empty = struct{}{} } case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2905 + //line sql.y:2906 { yyVAL.empty = struct{}{} } case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2907 + //line sql.y:2908 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2909 + //line sql.y:2910 { yyVAL.empty = struct{}{} } case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2911 + //line sql.y:2912 { yyVAL.empty = struct{}{} } case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2913 + //line sql.y:2914 { yyVAL.empty = struct{}{} } case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2915 + //line sql.y:2916 { yyVAL.empty = struct{}{} } case 585: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2917 + //line sql.y:2918 { yyVAL.empty = struct{}{} } case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2919 + //line sql.y:2920 { yyVAL.empty = struct{}{} } case 587: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2922 + //line sql.y:2923 { yyVAL.empty = struct{}{} } case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2924 + //line sql.y:2925 { yyVAL.empty = struct{}{} } case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2926 + //line sql.y:2927 { yyVAL.empty = struct{}{} } case 590: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2930 + //line sql.y:2931 { yyVAL.empty = struct{}{} } case 591: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2932 + //line sql.y:2933 { yyVAL.empty = struct{}{} } case 592: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2935 + //line sql.y:2936 { yyVAL.empty = struct{}{} } case 593: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2937 + //line sql.y:2938 { yyVAL.empty = struct{}{} } case 594: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2939 + //line sql.y:2940 { yyVAL.empty = struct{}{} } case 595: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2942 + //line sql.y:2943 { yyVAL.colIdent = ColIdent{} } case 596: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2944 + //line sql.y:2945 { yyVAL.colIdent = yyDollar[2].colIdent } case 597: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2948 + //line sql.y:2949 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2952 + //line sql.y:2953 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2959 + //line sql.y:2960 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 601: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2965 + //line sql.y:2966 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 602: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2969 + //line sql.y:2970 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 604: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2976 + //line sql.y:2977 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 795: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3192 + //line sql.y:3193 { if incNesting(yylex) { yylex.Error("max nesting level reached") @@ -6264,31 +6264,31 @@ yydefault: } case 796: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3201 + //line sql.y:3202 { decNesting(yylex) } case 797: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3206 + //line sql.y:3207 { forceEOF(yylex) } case 798: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3211 + //line sql.y:3212 { forceEOF(yylex) } case 799: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3215 + //line sql.y:3216 { forceEOF(yylex) } case 800: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3219 + //line sql.y:3220 { forceEOF(yylex) } diff --git a/sql.y b/sql.y index c5a8daa..33c12dc 100644 --- a/sql.y +++ b/sql.y @@ -363,6 +363,10 @@ base_select: { $$ = &Select{Comments: Comments($2), Cache: $3, Distinct: $4, Hints: $5, SelectExprs: $6, From: $7, Where: NewWhere(WhereStr, $8), GroupBy: GroupBy($9), Having: NewWhere(HavingStr, $10)} } +| SELECT comment_opt cache_opt distinct_opt straight_join_opt select_expression_list + { + $$ = &Select{Comments: Comments($2), Cache: $3, Distinct: $4, Hints: $5, SelectExprs: $6} + } union_lhs: select_statement @@ -1671,10 +1675,7 @@ col_alias: } from_opt: - { - $$ = TableExprs{&AliasedTableExpr{Expr:TableName{Name: NewTableIdent("dual")}}} - } -| FROM table_references + FROM table_references { $$ = $2 } From 59e317d1738c80314a50b08f8265a4553c163a46 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Fri, 31 Aug 2018 13:07:47 +0800 Subject: [PATCH 10/13] update: select without from --- ast.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ast.go b/ast.go index 6093194..143fe3d 100644 --- a/ast.go +++ b/ast.go @@ -289,11 +289,16 @@ func (node *Select) SetLimit(limit *Limit) { // Format formats the node. func (node *Select) Format(buf *TrackedBuffer) { - buf.Myprintf("select %v%s%s%s%v from %v%v%v%v%v%v%s", - node.Comments, node.Cache, node.Distinct, node.Hints, node.SelectExprs, - node.From, node.Where, - node.GroupBy, node.Having, node.OrderBy, - node.Limit, node.Lock) + if node.From != nil { + buf.Myprintf("select %v%s%s%s%v from %v%v%v%v%v%v%s", + node.Comments, node.Cache, node.Distinct, node.Hints, node.SelectExprs, + node.From, node.Where, + node.GroupBy, node.Having, node.OrderBy, + node.Limit, node.Lock) + } else { + buf.Myprintf("select %v%s%s%s%v", + node.Comments, node.Cache, node.Distinct, node.Hints, node.SelectExprs) + } } func (node *Select) walkSubtree(visit Visit) error { From 26175c4e0c22224f1b20bfa0e46d25858f31ee09 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 19 Dec 2018 12:39:42 +0800 Subject: [PATCH 11/13] add: prepare | execute in query --- analyzer.go | 10 + ast.go | 57 +- sql.go | 5999 ++++++++++++++++++++++++++------------------------- sql.y | 28 +- token.go | 2 + 5 files changed, 3102 insertions(+), 2994 deletions(-) diff --git a/analyzer.go b/analyzer.go index 95f97d3..8e8eeed 100644 --- a/analyzer.go +++ b/analyzer.go @@ -46,6 +46,8 @@ const ( StmtOther StmtUnknown StmtComment + StmtPrepare + StmtExecute ) // Preview analyzes the beginning of the query using a simpler and faster @@ -71,6 +73,10 @@ func Preview(sql string) int { return StmtReplace case "update": return StmtUpdate + case "prepare": + return StmtPrepare + case "execute": + return StmtExecute case "delete": return StmtDelete } @@ -137,6 +143,10 @@ func StmtType(stmtType int) string { return "USE" case StmtOther: return "OTHER" + case StmtPrepare: + return "PREPARE" + case StmtExecute: + return "EXECUTE" default: return "UNKNOWN" } diff --git a/ast.go b/ast.go index 143fe3d..31d9fc9 100644 --- a/ast.go +++ b/ast.go @@ -223,6 +223,8 @@ func (*Commit) iStatement() {} func (*Rollback) iStatement() {} func (*OtherRead) iStatement() {} func (*OtherAdmin) iStatement() {} +func (*Prepare) iStatement() {} +func (*Execute) iStatement() {} // ParenSelect can actually not be a top level statement, // but we have to allow it because it's a requirement @@ -589,6 +591,59 @@ func (node *Delete) walkSubtree(visit Visit) error { ) } +// Prepare represents a PREPARE statement. +type Prepare struct { + Name ColIdent + Stmt *SQLVal +} + +// Format formats the node. +func (node *Prepare) Format(buf *TrackedBuffer) { + buf.Myprintf("prepare %s from %v", node.Name.String(), node.Stmt) +} + +func (node *Prepare) walkSubtree(visit Visit) error { + if node == nil { + return nil + } + return Walk(visit, node.Name, node.Stmt) +} + +// Execute represents a EXECUTE statement. +type Execute struct { + Name ColIdent + Params []ColIdent +} + +// Format formats the node. +func (node *Execute) Format(buf *TrackedBuffer) { + buf.Myprintf("execute %s", node.Name.String()) + if len(node.Params) > 0 { + prefix := " using " + for _, v := range node.Params { + buf.Myprintf("%s%s", prefix, v.String()) + prefix = ", " + } + } +} + +func (node *Execute) walkSubtree(visit Visit) error { + if node == nil { + return nil + } + + if err := Walk(visit, node.Name); err != nil { + return err + } + + for _, n := range node.Params { + if err := Walk(visit, n); err != nil { + return err + } + } + return nil +} + // Set represents a SET statement. type Set struct { Comments Comments @@ -3086,7 +3141,7 @@ func (node PartitionBy) Format(buf *TrackedBuffer) { for _, n := range node { buf.Myprintf("%s%v", prefix, n) prefix = ", " - } + } } func (node PartitionBy) walkSubtree(visit Visit) error { diff --git a/sql.go b/sql.go index 7a33124..61666f1 100644 --- a/sql.go +++ b/sql.go @@ -116,222 +116,224 @@ const BY = 57358 const LIMIT = 57359 const OFFSET = 57360 const FOR = 57361 -const ALL = 57362 -const DISTINCT = 57363 -const AS = 57364 -const EXISTS = 57365 -const ASC = 57366 -const DESC = 57367 -const INTO = 57368 -const DUPLICATE = 57369 -const KEY = 57370 -const DEFAULT = 57371 -const SET = 57372 -const LOCK = 57373 -const KEYS = 57374 -const VALUES = 57375 -const LAST_INSERT_ID = 57376 -const NEXT = 57377 -const VALUE = 57378 -const SHARE = 57379 -const MODE = 57380 -const SQL_NO_CACHE = 57381 -const SQL_CACHE = 57382 -const JOIN = 57383 -const STRAIGHT_JOIN = 57384 -const LEFT = 57385 -const RIGHT = 57386 -const INNER = 57387 -const OUTER = 57388 -const CROSS = 57389 -const NATURAL = 57390 -const USE = 57391 -const FORCE = 57392 -const ON = 57393 -const USING = 57394 -const ID = 57395 -const HEX = 57396 -const STRING = 57397 -const INTEGRAL = 57398 -const FLOAT = 57399 -const HEXNUM = 57400 -const VALUE_ARG = 57401 -const LIST_ARG = 57402 -const COMMENT = 57403 -const COMMENT_KEYWORD = 57404 -const BIT_LITERAL = 57405 -const NULL = 57406 -const TRUE = 57407 -const FALSE = 57408 -const OR = 57409 -const AND = 57410 -const NOT = 57411 -const BETWEEN = 57412 -const CASE = 57413 -const WHEN = 57414 -const THEN = 57415 -const ELSE = 57416 -const END = 57417 -const LE = 57418 -const GE = 57419 -const NE = 57420 -const NULL_SAFE_EQUAL = 57421 -const IS = 57422 -const LIKE = 57423 -const REGEXP = 57424 -const IN = 57425 -const NULL_SAFE_NOTEQUAL = 57426 -const SHIFT_LEFT = 57427 -const SHIFT_RIGHT = 57428 -const DIV = 57429 -const MOD = 57430 -const UNARY = 57431 -const COLLATE = 57432 -const BINARY = 57433 -const UNDERSCORE_BINARY = 57434 -const INTERVAL = 57435 -const JSON_EXTRACT_OP = 57436 -const JSON_UNQUOTE_EXTRACT_OP = 57437 -const CREATE = 57438 -const ALTER = 57439 -const DROP = 57440 -const RENAME = 57441 -const ANALYZE = 57442 -const ADD = 57443 -const SCHEMA = 57444 -const TABLE = 57445 -const INDEX = 57446 -const VIEW = 57447 -const TO = 57448 -const IGNORE = 57449 -const IF = 57450 -const UNIQUE = 57451 -const PRIMARY = 57452 -const COLUMN = 57453 -const CONSTRAINT = 57454 -const SPATIAL = 57455 -const FULLTEXT = 57456 -const FOREIGN = 57457 -const KEY_BLOCK_SIZE = 57458 -const SHOW = 57459 -const DESCRIBE = 57460 -const EXPLAIN = 57461 -const DATE = 57462 -const ESCAPE = 57463 -const REPAIR = 57464 -const OPTIMIZE = 57465 -const TRUNCATE = 57466 -const MAXVALUE = 57467 -const PARTITION = 57468 -const REORGANIZE = 57469 -const LESS = 57470 -const THAN = 57471 -const PROCEDURE = 57472 -const TRIGGER = 57473 -const VINDEX = 57474 -const VINDEXES = 57475 -const STATUS = 57476 -const VARIABLES = 57477 -const BEGIN = 57478 -const START = 57479 -const TRANSACTION = 57480 -const COMMIT = 57481 -const ROLLBACK = 57482 -const BIT = 57483 -const TINYINT = 57484 -const SMALLINT = 57485 -const MEDIUMINT = 57486 -const INT = 57487 -const INTEGER = 57488 -const BIGINT = 57489 -const INTNUM = 57490 -const REAL = 57491 -const DOUBLE = 57492 -const FLOAT_TYPE = 57493 -const DECIMAL = 57494 -const NUMERIC = 57495 -const TIME = 57496 -const TIMESTAMP = 57497 -const DATETIME = 57498 -const YEAR = 57499 -const CHAR = 57500 -const VARCHAR = 57501 -const BOOL = 57502 -const CHARACTER = 57503 -const VARBINARY = 57504 -const NCHAR = 57505 -const TEXT = 57506 -const TINYTEXT = 57507 -const MEDIUMTEXT = 57508 -const LONGTEXT = 57509 -const BLOB = 57510 -const TINYBLOB = 57511 -const MEDIUMBLOB = 57512 -const LONGBLOB = 57513 -const JSON = 57514 -const ENUM = 57515 -const GEOMETRY = 57516 -const POINT = 57517 -const LINESTRING = 57518 -const POLYGON = 57519 -const GEOMETRYCOLLECTION = 57520 -const MULTIPOINT = 57521 -const MULTILINESTRING = 57522 -const MULTIPOLYGON = 57523 -const NULLX = 57524 -const AUTO_INCREMENT = 57525 -const APPROXNUM = 57526 -const SIGNED = 57527 -const UNSIGNED = 57528 -const ZEROFILL = 57529 -const DATABASES = 57530 -const TABLES = 57531 -const VITESS_KEYSPACES = 57532 -const VITESS_SHARDS = 57533 -const VITESS_TABLETS = 57534 -const VSCHEMA_TABLES = 57535 -const EXTENDED = 57536 -const FULL = 57537 -const PROCESSLIST = 57538 -const NAMES = 57539 -const CHARSET = 57540 -const GLOBAL = 57541 -const SESSION = 57542 -const ISOLATION = 57543 -const LEVEL = 57544 -const READ = 57545 -const WRITE = 57546 -const ONLY = 57547 -const REPEATABLE = 57548 -const COMMITTED = 57549 -const UNCOMMITTED = 57550 -const SERIALIZABLE = 57551 -const CURRENT_TIMESTAMP = 57552 -const DATABASE = 57553 -const CURRENT_DATE = 57554 -const CURRENT_TIME = 57555 -const LOCALTIME = 57556 -const LOCALTIMESTAMP = 57557 -const UTC_DATE = 57558 -const UTC_TIME = 57559 -const UTC_TIMESTAMP = 57560 -const REPLACE = 57561 -const CONVERT = 57562 -const CAST = 57563 -const SUBSTR = 57564 -const SUBSTRING = 57565 -const GROUP_CONCAT = 57566 -const SEPARATOR = 57567 -const ROW_NUMBER = 57568 -const OVER = 57569 -const MATCH = 57570 -const AGAINST = 57571 -const BOOLEAN = 57572 -const LANGUAGE = 57573 -const WITH = 57574 -const QUERY = 57575 -const EXPANSION = 57576 -const UNUSED = 57577 +const PREPARE = 57362 +const EXECUTE = 57363 +const ALL = 57364 +const DISTINCT = 57365 +const AS = 57366 +const EXISTS = 57367 +const ASC = 57368 +const DESC = 57369 +const INTO = 57370 +const DUPLICATE = 57371 +const KEY = 57372 +const DEFAULT = 57373 +const SET = 57374 +const LOCK = 57375 +const KEYS = 57376 +const VALUES = 57377 +const LAST_INSERT_ID = 57378 +const NEXT = 57379 +const VALUE = 57380 +const SHARE = 57381 +const MODE = 57382 +const SQL_NO_CACHE = 57383 +const SQL_CACHE = 57384 +const JOIN = 57385 +const STRAIGHT_JOIN = 57386 +const LEFT = 57387 +const RIGHT = 57388 +const INNER = 57389 +const OUTER = 57390 +const CROSS = 57391 +const NATURAL = 57392 +const USE = 57393 +const FORCE = 57394 +const ON = 57395 +const USING = 57396 +const ID = 57397 +const HEX = 57398 +const STRING = 57399 +const INTEGRAL = 57400 +const FLOAT = 57401 +const HEXNUM = 57402 +const VALUE_ARG = 57403 +const LIST_ARG = 57404 +const COMMENT = 57405 +const COMMENT_KEYWORD = 57406 +const BIT_LITERAL = 57407 +const NULL = 57408 +const TRUE = 57409 +const FALSE = 57410 +const OR = 57411 +const AND = 57412 +const NOT = 57413 +const BETWEEN = 57414 +const CASE = 57415 +const WHEN = 57416 +const THEN = 57417 +const ELSE = 57418 +const END = 57419 +const LE = 57420 +const GE = 57421 +const NE = 57422 +const NULL_SAFE_EQUAL = 57423 +const IS = 57424 +const LIKE = 57425 +const REGEXP = 57426 +const IN = 57427 +const NULL_SAFE_NOTEQUAL = 57428 +const SHIFT_LEFT = 57429 +const SHIFT_RIGHT = 57430 +const DIV = 57431 +const MOD = 57432 +const UNARY = 57433 +const COLLATE = 57434 +const BINARY = 57435 +const UNDERSCORE_BINARY = 57436 +const INTERVAL = 57437 +const JSON_EXTRACT_OP = 57438 +const JSON_UNQUOTE_EXTRACT_OP = 57439 +const CREATE = 57440 +const ALTER = 57441 +const DROP = 57442 +const RENAME = 57443 +const ANALYZE = 57444 +const ADD = 57445 +const SCHEMA = 57446 +const TABLE = 57447 +const INDEX = 57448 +const VIEW = 57449 +const TO = 57450 +const IGNORE = 57451 +const IF = 57452 +const UNIQUE = 57453 +const PRIMARY = 57454 +const COLUMN = 57455 +const CONSTRAINT = 57456 +const SPATIAL = 57457 +const FULLTEXT = 57458 +const FOREIGN = 57459 +const KEY_BLOCK_SIZE = 57460 +const SHOW = 57461 +const DESCRIBE = 57462 +const EXPLAIN = 57463 +const DATE = 57464 +const ESCAPE = 57465 +const REPAIR = 57466 +const OPTIMIZE = 57467 +const TRUNCATE = 57468 +const MAXVALUE = 57469 +const PARTITION = 57470 +const REORGANIZE = 57471 +const LESS = 57472 +const THAN = 57473 +const PROCEDURE = 57474 +const TRIGGER = 57475 +const VINDEX = 57476 +const VINDEXES = 57477 +const STATUS = 57478 +const VARIABLES = 57479 +const BEGIN = 57480 +const START = 57481 +const TRANSACTION = 57482 +const COMMIT = 57483 +const ROLLBACK = 57484 +const BIT = 57485 +const TINYINT = 57486 +const SMALLINT = 57487 +const MEDIUMINT = 57488 +const INT = 57489 +const INTEGER = 57490 +const BIGINT = 57491 +const INTNUM = 57492 +const REAL = 57493 +const DOUBLE = 57494 +const FLOAT_TYPE = 57495 +const DECIMAL = 57496 +const NUMERIC = 57497 +const TIME = 57498 +const TIMESTAMP = 57499 +const DATETIME = 57500 +const YEAR = 57501 +const CHAR = 57502 +const VARCHAR = 57503 +const BOOL = 57504 +const CHARACTER = 57505 +const VARBINARY = 57506 +const NCHAR = 57507 +const TEXT = 57508 +const TINYTEXT = 57509 +const MEDIUMTEXT = 57510 +const LONGTEXT = 57511 +const BLOB = 57512 +const TINYBLOB = 57513 +const MEDIUMBLOB = 57514 +const LONGBLOB = 57515 +const JSON = 57516 +const ENUM = 57517 +const GEOMETRY = 57518 +const POINT = 57519 +const LINESTRING = 57520 +const POLYGON = 57521 +const GEOMETRYCOLLECTION = 57522 +const MULTIPOINT = 57523 +const MULTILINESTRING = 57524 +const MULTIPOLYGON = 57525 +const NULLX = 57526 +const AUTO_INCREMENT = 57527 +const APPROXNUM = 57528 +const SIGNED = 57529 +const UNSIGNED = 57530 +const ZEROFILL = 57531 +const DATABASES = 57532 +const TABLES = 57533 +const VITESS_KEYSPACES = 57534 +const VITESS_SHARDS = 57535 +const VITESS_TABLETS = 57536 +const VSCHEMA_TABLES = 57537 +const EXTENDED = 57538 +const FULL = 57539 +const PROCESSLIST = 57540 +const NAMES = 57541 +const CHARSET = 57542 +const GLOBAL = 57543 +const SESSION = 57544 +const ISOLATION = 57545 +const LEVEL = 57546 +const READ = 57547 +const WRITE = 57548 +const ONLY = 57549 +const REPEATABLE = 57550 +const COMMITTED = 57551 +const UNCOMMITTED = 57552 +const SERIALIZABLE = 57553 +const CURRENT_TIMESTAMP = 57554 +const DATABASE = 57555 +const CURRENT_DATE = 57556 +const CURRENT_TIME = 57557 +const LOCALTIME = 57558 +const LOCALTIMESTAMP = 57559 +const UTC_DATE = 57560 +const UTC_TIME = 57561 +const UTC_TIMESTAMP = 57562 +const REPLACE = 57563 +const CONVERT = 57564 +const CAST = 57565 +const SUBSTR = 57566 +const SUBSTRING = 57567 +const GROUP_CONCAT = 57568 +const SEPARATOR = 57569 +const ROW_NUMBER = 57570 +const OVER = 57571 +const MATCH = 57572 +const AGAINST = 57573 +const BOOLEAN = 57574 +const LANGUAGE = 57575 +const WITH = 57576 +const QUERY = 57577 +const EXPANSION = 57578 +const UNUSED = 57579 var yyToknames = [...]string{ "$end", @@ -353,6 +355,8 @@ var yyToknames = [...]string{ "LIMIT", "OFFSET", "FOR", + "PREPARE", + "EXECUTE", "ALL", "DISTINCT", "AS", @@ -600,1223 +604,1210 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 3, - 5, 28, + 5, 30, -2, 4, - -1, 36, - 151, 264, - 152, 264, - -2, 254, - -1, 238, - 110, 601, - -2, 597, - -1, 239, - 110, 602, - -2, 598, - -1, 299, - 1, 311, - 5, 311, - 12, 311, - 13, 311, - 14, 311, - 15, 311, - 17, 311, - 19, 311, - 30, 311, - 31, 311, - 41, 311, - 42, 311, - 43, 311, - 44, 311, - 45, 311, - 47, 311, - 48, 311, - 51, 311, - 52, 311, - 54, 311, - 55, 311, - 253, 311, - -2, 330, - -1, 309, - 80, 760, - -2, 59, - -1, 310, - 80, 721, - -2, 60, - -1, 315, - 80, 705, - -2, 563, + -1, 40, + 153, 270, + 154, 270, + -2, 260, + -1, 244, + 112, 607, + -2, 603, + -1, 245, + 112, 608, + -2, 604, + -1, 305, + 1, 317, + 5, 317, + 12, 317, + 13, 317, + 14, 317, + 15, 317, + 17, 317, + 19, 317, + 32, 317, + 33, 317, + 43, 317, + 44, 317, + 45, 317, + 46, 317, + 47, 317, + 49, 317, + 50, 317, + 53, 317, + 54, 317, + 56, 317, + 57, 317, + 255, 317, + -2, 336, -1, 317, - 80, 742, - -2, 565, - -1, 578, - 52, 42, - 54, 42, - -2, 44, - -1, 711, - 110, 604, - -2, 600, - -1, 916, - 5, 29, - -2, 397, - -1, 942, - 5, 28, - -2, 538, - -1, 1182, - 5, 29, - -2, 539, - -1, 1228, - 5, 28, - -2, 541, - -1, 1295, - 5, 29, - -2, 542, + 82, 768, + -2, 65, + -1, 318, + 82, 729, + -2, 66, + -1, 323, + 82, 713, + -2, 569, + -1, 325, + 82, 750, + -2, 571, + -1, 588, + 54, 48, + 56, 48, + -2, 50, + -1, 725, + 112, 610, + -2, 606, + -1, 931, + 5, 31, + -2, 403, + -1, 957, + 5, 30, + -2, 544, + -1, 1198, + 5, 31, + -2, 545, + -1, 1243, + 5, 30, + -2, 547, + -1, 1308, + 5, 31, + -2, 548, } const yyPrivate = 57344 -const yyLast = 11276 +const yyLast = 11139 var yyAct = [...]int{ - 269, 47, 774, 649, 1284, 268, 461, 243, 1082, 858, - 1239, 810, 524, 1110, 792, 1083, 1003, 852, 217, 945, - 1188, 523, 3, 572, 838, 1079, 53, 454, 814, 211, - 775, 813, 736, 570, 961, 1048, 746, 1006, 824, 908, - 994, 588, 950, 314, 762, 713, 462, 848, 47, 456, - 411, 574, 296, 587, 559, 241, 222, 308, 476, 743, - 890, 295, 300, 226, 771, 468, 303, 305, 52, 216, - 1317, 1305, 1315, 212, 213, 214, 215, 1291, 1313, 859, - 875, 1304, 1073, 934, 1174, 415, 436, 1248, 1105, 1106, - 443, 806, 807, 1104, 874, 294, 230, 1290, 1263, 539, - 489, 488, 498, 499, 491, 492, 493, 494, 495, 496, - 497, 490, 805, 57, 500, 181, 177, 178, 179, 451, - 589, 879, 590, 985, 678, 1116, 1117, 1118, 831, 969, - 873, 679, 968, 1121, 1119, 970, 1200, 1215, 59, 60, - 61, 62, 63, 839, 1157, 1155, 210, 1314, 447, 448, - 438, 195, 440, 1240, 311, 1312, 1285, 1177, 745, 424, - 1027, 772, 826, 425, 1246, 418, 1242, 239, 175, 657, - 793, 795, 174, 648, 175, 205, 960, 437, 439, 870, - 867, 868, 959, 866, 958, 413, 826, 1271, 421, 189, - 412, 176, 1185, 1035, 442, 442, 442, 442, 76, 442, - 513, 514, 186, 924, 902, 186, 442, 232, 877, 880, - 1024, 826, 685, 480, 979, 431, 1026, 490, 811, 500, - 500, 885, 682, 47, 180, 475, 190, 1276, 1135, 186, - 186, 76, 192, 948, 1241, 186, 591, 76, 510, 198, - 194, 512, 1031, 872, 465, 794, 1075, 464, 493, 494, - 495, 496, 497, 490, 1125, 825, 500, 1264, 435, 839, - 823, 821, 1247, 1245, 822, 871, 196, 763, 522, 200, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 825, - 537, 538, 540, 540, 540, 540, 540, 540, 540, 540, - 548, 549, 550, 551, 1120, 417, 1289, 191, 720, 473, - 886, 571, 876, 1014, 825, 1126, 474, 473, 832, 1025, - 652, 1023, 718, 719, 717, 475, 983, 878, 1030, 763, - 828, 931, 1279, 475, 193, 829, 201, 202, 203, 204, - 208, 1012, 688, 689, 470, 207, 206, 466, 1297, 427, - 428, 429, 186, 1298, 186, 1206, 1205, 998, 474, 473, - 186, 899, 900, 901, 997, 1077, 684, 186, 920, 173, - 919, 76, 76, 76, 76, 475, 76, 419, 420, 579, - 703, 705, 706, 76, 585, 704, 474, 473, 474, 473, - 921, 236, 541, 542, 543, 544, 545, 546, 547, 50, - 986, 1277, 683, 475, 455, 475, 1013, 311, 1222, 716, - 76, 1018, 1015, 1008, 1009, 1016, 1011, 1010, 474, 473, - 737, 1203, 738, 1143, 995, 442, 1014, 1274, 1017, 1113, - 293, 686, 455, 442, 1020, 475, 459, 463, 474, 473, - 1301, 455, 1232, 1282, 442, 442, 442, 442, 442, 442, - 442, 442, 1112, 481, 1012, 475, 1232, 455, 442, 442, - 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 186, 980, 500, 1232, 1233, 1197, 1196, 186, 186, - 186, 1101, 455, 441, 76, 666, 971, 525, 1184, 455, - 76, 1132, 1131, 690, 1128, 1129, 536, 1128, 1127, 714, - 914, 455, 664, 691, 861, 739, 489, 488, 498, 499, - 491, 492, 493, 494, 495, 496, 497, 490, 23, 1013, - 500, 556, 455, 47, 1018, 1015, 1008, 1009, 1016, 1011, - 1010, 748, 455, 1252, 711, 245, 663, 526, 662, 653, - 692, 1017, 940, 651, 646, 941, 707, 1007, 433, 755, - 758, 709, 909, 598, 597, 764, 426, 412, 750, 1251, - 1122, 747, 749, 582, 946, 50, 21, 300, 300, 300, - 300, 300, 1080, 776, 748, 946, 765, 555, 766, 740, - 741, 710, 571, 1180, 796, 258, 257, 260, 261, 262, - 263, 300, 76, 947, 259, 264, 1293, 299, 186, 186, - 76, 556, 186, 750, 583, 186, 581, 23, 791, 186, - 760, 76, 76, 76, 76, 76, 76, 76, 76, 768, - 778, 779, 221, 781, 800, 76, 76, 1038, 777, 54, - 186, 780, 789, 947, 1227, 556, 23, 797, 515, 516, - 517, 518, 519, 520, 521, 76, 840, 841, 842, 186, - 803, 926, 802, 798, 50, 76, 799, 556, 581, 818, - 923, 1134, 442, 1130, 442, 972, 1170, 455, 914, 804, - 914, 914, 442, 854, 584, 946, 686, 50, 444, 445, - 446, 1210, 449, 50, 833, 311, 853, 1095, 975, 453, - 849, 700, 701, 223, 925, 844, 751, 752, 815, 76, - 850, 851, 759, 922, 489, 488, 498, 499, 491, 492, - 493, 494, 495, 496, 497, 490, 843, 767, 500, 769, - 770, 903, 491, 492, 493, 494, 495, 496, 497, 490, - 65, 186, 500, 714, 186, 186, 186, 186, 186, 711, - 50, 951, 952, 891, 525, 650, 186, 753, 754, 186, - 892, 856, 1115, 186, 1080, 999, 954, 660, 186, 186, - 452, 698, 76, 561, 564, 565, 566, 562, 957, 563, - 567, 956, 783, 904, 786, 76, 511, 911, 782, 787, - 784, 912, 943, 944, 1311, 785, 710, 1303, 916, 917, - 918, 788, 1034, 565, 566, 227, 228, 927, 887, 1310, - 897, 896, 933, 942, 990, 935, 936, 937, 938, 809, - 300, 561, 564, 565, 566, 562, 930, 563, 567, 596, - 469, 951, 952, 434, 982, 457, 186, 1178, 963, 76, - 965, 76, 1281, 955, 467, 186, 299, 458, 186, 76, - 1280, 1225, 976, 964, 1211, 863, 659, 569, 224, 225, - 469, 895, 973, 218, 1265, 1257, 966, 1224, 219, 894, - 989, 1223, 991, 992, 993, 54, 898, 1256, 442, 987, - 988, 977, 978, 1213, 712, 947, 471, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 1268, 442, 1201, 996, 681, 56, 647, 58, - 580, 888, 889, 51, 463, 1005, 656, 1, 860, 1002, - 869, 1283, 1238, 913, 815, 1019, 1109, 667, 668, 669, - 670, 671, 672, 673, 674, 834, 835, 836, 837, 928, - 820, 675, 676, 812, 410, 64, 1275, 819, 1244, 1199, - 827, 845, 846, 847, 984, 1078, 830, 1114, 1278, 981, - 603, 1046, 1085, 1081, 47, 1042, 601, 1084, 776, 602, - 1004, 1047, 600, 1066, 776, 1074, 915, 1067, 605, 1097, - 1098, 1099, 604, 1041, 76, 1086, 599, 186, 711, 197, - 306, 932, 1090, 568, 267, 592, 855, 1091, 472, 1089, - 66, 76, 1022, 1021, 1103, 865, 1029, 677, 884, 1100, - 1102, 450, 199, 1040, 509, 893, 967, 312, 1087, 1123, - 1124, 1266, 1176, 1108, 1107, 74, 687, 1255, 1212, 715, - 929, 535, 761, 244, 702, 1070, 256, 253, 255, 254, - 693, 939, 482, 242, 76, 76, 234, 76, 298, 552, - 560, 558, 557, 953, 949, 297, 1136, 1037, 313, 300, - 1173, 1262, 697, 25, 416, 55, 229, 19, 18, 1138, - 76, 17, 1141, 186, 186, 20, 16, 1145, 15, 14, - 29, 186, 13, 815, 12, 815, 11, 10, 9, 1147, - 76, 1153, 1146, 8, 1172, 7, 1149, 6, 5, 4, - 220, 22, 299, 299, 299, 299, 299, 2, 0, 0, - 0, 0, 0, 0, 1164, 1165, 1166, 299, 0, 1169, - 905, 906, 907, 0, 0, 0, 299, 1179, 0, 1187, - 0, 76, 76, 1181, 1182, 1183, 0, 1186, 1190, 1191, - 1192, 1195, 0, 0, 1193, 862, 1040, 864, 0, 0, - 0, 0, 0, 0, 442, 883, 973, 0, 0, 1076, - 76, 0, 76, 76, 0, 0, 0, 0, 0, 0, - 0, 1208, 1202, 0, 1204, 1092, 1093, 0, 0, 1094, - 0, 0, 1096, 0, 1209, 0, 0, 186, 313, 313, - 313, 313, 0, 313, 0, 76, 1214, 0, 0, 0, - 313, 1085, 0, 0, 1229, 0, 1084, 0, 76, 186, - 0, 0, 0, 0, 0, 76, 1226, 0, 815, 0, - 0, 1221, 0, 76, 0, 1228, 186, 478, 1237, 0, - 0, 1243, 1254, 0, 1249, 0, 1250, 0, 1234, 1235, - 1236, 0, 0, 0, 0, 1004, 815, 0, 1085, 0, - 47, 1253, 0, 1084, 0, 0, 1269, 0, 0, 1144, - 0, 0, 0, 715, 1258, 1259, 1260, 1261, 0, 1273, - 0, 1270, 498, 499, 491, 492, 493, 494, 495, 496, - 497, 490, 0, 76, 500, 76, 76, 76, 186, 76, - 1287, 1294, 1292, 0, 0, 76, 776, 0, 0, 0, - 0, 313, 0, 0, 0, 1175, 1299, 593, 0, 0, - 1288, 1044, 1045, 525, 0, 0, 1167, 455, 1295, 0, - 0, 76, 76, 76, 1068, 1069, 1309, 1071, 1072, 1308, - 0, 1300, 0, 0, 301, 1316, 0, 0, 0, 0, - 1306, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 1001, 0, 0, 489, 488, 498, 499, 491, 492, - 493, 494, 495, 496, 497, 490, 1320, 1321, 500, 183, - 0, 0, 76, 76, 0, 1065, 1028, 0, 1150, 1151, - 0, 1152, 0, 0, 1154, 76, 1156, 0, 1158, 1159, - 1160, 1161, 1162, 1163, 0, 0, 0, 304, 76, 0, - 0, 0, 414, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 76, 0, 0, 0, 1049, 0, 0, 0, 313, 313, - 313, 313, 313, 313, 313, 313, 0, 0, 0, 0, - 1198, 0, 313, 313, 0, 1148, 0, 0, 0, 0, - 0, 0, 1267, 0, 1051, 0, 0, 0, 0, 76, - 0, 0, 694, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 478, 76, 0, 313, 1061, 1062, 1063, 1060, - 0, 1064, 0, 0, 1286, 525, 1053, 0, 1057, 1059, - 1052, 0, 1050, 463, 0, 0, 0, 1055, 0, 0, - 460, 0, 0, 0, 0, 0, 1054, 0, 0, 422, - 0, 423, 0, 0, 0, 0, 742, 430, 0, 1056, - 1058, 1307, 0, 0, 432, 0, 756, 756, 0, 0, - 0, 0, 756, 0, 0, 184, 0, 0, 209, 1171, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 756, 0, 0, 0, 0, 0, 455, 0, 0, 0, - 233, 0, 184, 184, 0, 0, 0, 0, 184, 1216, - 1217, 0, 1218, 1219, 1220, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 299, 1168, 23, 24, 48, 26, - 27, 0, 313, 489, 488, 498, 499, 491, 492, 493, - 494, 495, 496, 497, 490, 42, 0, 500, 0, 0, - 28, 0, 489, 488, 498, 499, 491, 492, 493, 494, - 495, 496, 497, 490, 0, 0, 500, 1207, 554, 37, - 0, 0, 0, 50, 0, 0, 0, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 313, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 489, 488, - 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, - 0, 0, 500, 0, 0, 184, 0, 184, 1043, 0, - 313, 620, 0, 184, 0, 0, 0, 0, 0, 0, - 184, 0, 0, 30, 31, 33, 32, 35, 0, 489, - 488, 498, 499, 491, 492, 493, 494, 495, 496, 497, - 490, 0, 0, 500, 36, 43, 44, 910, 1318, 45, - 46, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 39, 0, 40, 41, 489, 488, - 498, 499, 491, 492, 493, 494, 495, 496, 497, 490, - 0, 0, 500, 0, 0, 654, 655, 0, 608, 658, - 0, 0, 661, 489, 488, 498, 499, 491, 492, 493, - 494, 495, 496, 497, 490, 0, 0, 500, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 680, 621, 0, - 0, 962, 0, 0, 184, 0, 0, 0, 0, 0, - 0, 184, 576, 184, 0, 0, 699, 0, 313, 634, - 635, 636, 637, 638, 639, 640, 49, 641, 642, 643, - 644, 645, 622, 623, 624, 625, 606, 607, 0, 0, - 609, 0, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 626, 627, 628, 629, 630, 631, 632, 633, - 0, 1000, 313, 0, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 773, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 801, 0, 0, 313, - 0, 184, 184, 0, 0, 184, 0, 0, 184, 0, - 0, 0, 665, 0, 0, 756, 0, 0, 1088, 962, - 0, 756, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 313, - 1111, 0, 184, 0, 0, 0, 0, 0, 0, 0, - 0, 665, 0, 857, 0, 0, 0, 0, 0, 0, - 0, 0, 881, 0, 0, 882, 0, 0, 0, 0, - 0, 0, 1137, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, - 0, 0, 1142, 233, 0, 0, 0, 0, 233, 233, - 313, 0, 757, 757, 233, 0, 0, 0, 757, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, - 233, 233, 233, 0, 184, 0, 757, 184, 184, 184, - 184, 184, 0, 0, 0, 0, 0, 0, 0, 790, - 0, 0, 184, 0, 0, 0, 576, 0, 0, 0, - 0, 184, 184, 0, 0, 0, 0, 0, 0, 0, - 1189, 0, 1189, 1189, 1189, 0, 1194, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 313, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, - 1231, 0, 0, 0, 0, 0, 665, 0, 0, 0, - 0, 0, 1111, 0, 0, 0, 0, 0, 233, 0, - 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1272, 1036, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 233, 0, 756, 0, 484, 1296, 487, 0, 0, - 0, 0, 0, 501, 502, 503, 504, 505, 506, 507, - 1302, 485, 486, 483, 508, 489, 488, 498, 499, 491, - 492, 493, 494, 495, 496, 497, 490, 0, 0, 500, - 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1133, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1140, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1032, 1033, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 665, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 757, 0, 0, 0, 0, 0, 757, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 576, 0, 0, 0, 0, 0, 0, 0, 399, - 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, - 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, - 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, - 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, - 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, - 75, 0, 816, 817, 0, 0, 0, 0, 0, 86, - 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, - 408, 396, 345, 346, 974, 0, 0, 0, 0, 0, - 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, - 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, - 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, - 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, - 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 757, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, - 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, - 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, - 77, 0, 108, 169, 133, 95, 160, 399, 389, 0, - 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, - 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, - 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, - 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, - 376, 402, 352, 380, 403, 0, 0, 0, 75, 0, - 816, 817, 0, 0, 0, 0, 0, 86, 0, 379, - 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, - 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, - 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, - 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, - 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, - 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, - 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, - 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, - 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, - 108, 169, 133, 95, 160, 399, 389, 0, 361, 401, - 339, 353, 409, 354, 355, 382, 325, 369, 125, 351, - 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, - 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, - 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, - 352, 380, 403, 50, 0, 0, 75, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, - 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, - 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, - 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, - 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, - 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, - 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, - 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, - 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, - 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, - 133, 95, 160, 399, 389, 0, 361, 401, 339, 353, - 409, 354, 355, 382, 325, 369, 125, 351, 0, 342, - 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, - 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, - 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, - 403, 0, 0, 0, 75, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, - 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, - 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, - 0, 0, 0, 0, 0, 0, 1039, 0, 343, 0, - 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, - 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, - 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, - 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, - 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, - 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, - 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, - 390, 0, 0, 373, 77, 0, 108, 169, 133, 95, - 160, 399, 389, 0, 361, 401, 339, 353, 409, 354, - 355, 382, 325, 369, 125, 351, 0, 342, 320, 348, - 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, - 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, - 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, - 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, - 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, - 0, 0, 0, 0, 708, 0, 343, 0, 375, 0, - 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, - 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, - 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, - 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, - 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, - 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, - 0, 373, 77, 0, 108, 169, 133, 95, 160, 399, - 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, - 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, - 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, - 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, - 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, - 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, - 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, - 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, - 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, - 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, - 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, - 395, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, - 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, - 77, 0, 108, 169, 133, 95, 160, 399, 389, 0, - 361, 401, 339, 353, 409, 354, 355, 382, 325, 369, - 125, 351, 0, 342, 320, 348, 321, 340, 363, 93, - 366, 338, 391, 372, 107, 407, 109, 377, 0, 142, - 118, 0, 0, 365, 393, 367, 387, 360, 383, 330, - 376, 402, 352, 380, 403, 0, 0, 0, 238, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 379, - 398, 350, 381, 319, 378, 0, 323, 326, 408, 396, - 345, 346, 0, 0, 0, 0, 0, 0, 0, 364, - 368, 384, 358, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 343, 0, 375, 0, 0, 0, 327, 324, - 0, 362, 0, 0, 0, 329, 0, 344, 385, 0, - 318, 388, 394, 359, 187, 397, 357, 356, 400, 131, - 0, 0, 145, 98, 97, 106, 392, 341, 349, 89, - 347, 137, 127, 157, 374, 128, 136, 110, 149, 132, - 156, 188, 164, 147, 163, 78, 146, 155, 87, 139, - 80, 153, 144, 116, 102, 103, 79, 0, 135, 92, - 96, 91, 124, 150, 151, 90, 171, 83, 162, 82, - 84, 161, 123, 148, 154, 117, 114, 81, 152, 115, - 113, 105, 94, 99, 129, 112, 130, 100, 120, 119, - 121, 0, 322, 0, 143, 159, 172, 337, 395, 165, - 166, 167, 168, 0, 0, 0, 122, 85, 101, 140, - 104, 111, 134, 170, 126, 138, 88, 158, 141, 333, - 336, 331, 332, 370, 371, 404, 405, 406, 386, 328, - 0, 334, 335, 0, 390, 0, 0, 373, 77, 0, - 108, 169, 133, 95, 160, 399, 389, 0, 361, 401, - 339, 353, 409, 354, 355, 382, 325, 369, 125, 351, - 0, 342, 320, 348, 321, 340, 363, 93, 366, 338, - 391, 372, 107, 407, 109, 377, 0, 142, 118, 0, - 0, 365, 393, 367, 387, 360, 383, 330, 376, 402, - 352, 380, 403, 0, 0, 0, 75, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 379, 398, 350, - 381, 319, 378, 0, 323, 326, 408, 396, 345, 346, - 0, 0, 0, 0, 0, 0, 0, 364, 368, 384, - 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 0, 375, 0, 0, 0, 327, 324, 0, 362, - 0, 0, 0, 329, 0, 344, 385, 0, 318, 388, - 394, 359, 187, 397, 357, 356, 400, 131, 0, 0, - 145, 98, 97, 106, 392, 341, 349, 89, 347, 137, - 127, 157, 374, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 316, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 322, 0, 143, 159, 172, 337, 395, 165, 166, 167, - 168, 0, 0, 0, 317, 315, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 333, 336, 331, - 332, 370, 371, 404, 405, 406, 386, 328, 0, 334, - 335, 0, 390, 0, 0, 373, 77, 0, 108, 169, - 133, 95, 160, 399, 389, 0, 361, 401, 339, 353, - 409, 354, 355, 382, 325, 369, 125, 351, 0, 342, - 320, 348, 321, 340, 363, 93, 366, 338, 391, 372, - 107, 407, 109, 377, 0, 142, 118, 0, 0, 365, - 393, 367, 387, 360, 383, 330, 376, 402, 352, 380, - 403, 0, 0, 0, 185, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 379, 398, 350, 381, 319, - 378, 0, 323, 326, 408, 396, 345, 346, 0, 0, - 0, 0, 0, 0, 0, 364, 368, 384, 358, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, - 375, 0, 0, 0, 327, 324, 0, 362, 0, 0, - 0, 329, 0, 344, 385, 0, 318, 388, 394, 359, - 187, 397, 357, 356, 400, 131, 0, 0, 145, 98, - 97, 106, 392, 341, 349, 89, 347, 137, 127, 157, - 374, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 322, 0, - 143, 159, 172, 337, 395, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 333, 336, 331, 332, 370, - 371, 404, 405, 406, 386, 328, 0, 334, 335, 0, - 390, 0, 0, 373, 77, 0, 108, 169, 133, 95, - 160, 399, 389, 0, 361, 401, 339, 353, 409, 354, - 355, 382, 325, 369, 125, 351, 0, 342, 320, 348, - 321, 340, 363, 93, 366, 338, 391, 372, 107, 407, - 109, 377, 0, 142, 118, 0, 0, 365, 393, 367, - 387, 360, 383, 330, 376, 402, 352, 380, 403, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 379, 398, 350, 381, 319, 378, 0, - 323, 326, 408, 396, 345, 346, 0, 0, 0, 0, - 0, 0, 0, 364, 368, 384, 358, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 343, 0, 375, 0, - 0, 0, 327, 324, 0, 362, 0, 0, 0, 329, - 0, 344, 385, 0, 318, 388, 394, 359, 187, 397, - 357, 356, 400, 131, 0, 0, 145, 98, 97, 106, - 392, 341, 349, 89, 347, 137, 127, 157, 374, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 586, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 316, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 322, 0, 143, 159, - 172, 337, 395, 165, 166, 167, 168, 0, 0, 0, - 317, 315, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 333, 336, 331, 332, 370, 371, 404, - 405, 406, 386, 328, 0, 334, 335, 0, 390, 0, - 0, 373, 77, 0, 108, 169, 133, 95, 160, 399, - 389, 0, 361, 401, 339, 353, 409, 354, 355, 382, - 325, 369, 125, 351, 0, 342, 320, 348, 321, 340, - 363, 93, 366, 338, 391, 372, 107, 407, 109, 377, - 0, 142, 118, 0, 0, 365, 393, 367, 387, 360, - 383, 330, 376, 402, 352, 380, 403, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 379, 398, 350, 381, 319, 378, 0, 323, 326, - 408, 396, 345, 346, 0, 0, 0, 0, 0, 0, - 0, 364, 368, 384, 358, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 343, 0, 375, 0, 0, 0, - 327, 324, 0, 362, 0, 0, 0, 329, 0, 344, - 385, 0, 318, 388, 394, 359, 187, 397, 357, 356, - 400, 131, 0, 0, 145, 98, 97, 106, 392, 341, - 349, 89, 347, 137, 127, 157, 374, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 307, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 316, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 322, 0, 143, 159, 172, 337, - 395, 165, 166, 167, 168, 0, 0, 0, 317, 315, - 310, 309, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 333, 336, 331, 332, 370, 371, 404, 405, 406, - 386, 328, 0, 334, 335, 0, 390, 0, 0, 373, - 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, - 744, 0, 240, 0, 0, 0, 93, 0, 237, 0, - 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, - 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, - 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 248, 249, 231, 0, 0, - 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 281, 290, 287, 288, - 285, 286, 284, 283, 282, 292, 272, 273, 274, 275, - 277, 0, 280, 0, 276, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, - 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 455, - 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, - 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 248, 249, 0, 0, 0, 0, 291, 0, 250, 0, - 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 289, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 281, 290, 287, 288, 285, 286, 284, 283, 282, - 292, 272, 273, 274, 275, 277, 0, 280, 0, 276, - 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, - 0, 0, 240, 0, 0, 0, 93, 0, 237, 0, - 0, 107, 279, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 270, 271, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 238, 258, 257, 260, 261, - 262, 263, 0, 0, 86, 259, 264, 265, 266, 0, - 0, 235, 251, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 248, 249, 231, 0, 0, - 0, 291, 0, 250, 0, 0, 246, 247, 252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 289, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 281, 290, 287, 288, - 285, 286, 284, 283, 282, 292, 272, 273, 274, 275, - 277, 0, 280, 0, 276, 77, 0, 108, 169, 133, - 95, 160, 125, 0, 0, 0, 0, 240, 0, 0, - 0, 93, 0, 237, 0, 0, 107, 279, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 270, 271, 0, - 0, 0, 0, 0, 0, 808, 0, 50, 0, 0, - 238, 258, 257, 260, 261, 262, 263, 0, 0, 86, - 259, 264, 265, 266, 0, 0, 235, 251, 0, 278, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 248, 249, 0, 0, 0, 0, 291, 0, 250, 0, - 0, 246, 247, 252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 289, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 281, 290, 287, 288, 285, 286, 284, 283, 282, - 292, 272, 273, 274, 275, 277, 23, 280, 0, 276, - 77, 0, 108, 169, 133, 95, 160, 0, 125, 0, - 0, 0, 0, 240, 0, 0, 0, 93, 0, 237, - 0, 0, 107, 279, 109, 0, 0, 142, 118, 0, - 0, 0, 0, 270, 271, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 238, 258, 257, 260, - 261, 262, 263, 0, 0, 86, 259, 264, 265, 266, - 0, 0, 235, 251, 0, 278, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 248, 249, 0, 0, - 0, 0, 291, 0, 250, 0, 0, 246, 247, 252, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 289, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 281, 290, 287, - 288, 285, 286, 284, 283, 282, 292, 272, 273, 274, - 275, 277, 0, 280, 0, 276, 77, 0, 108, 169, - 133, 95, 160, 125, 0, 0, 0, 0, 240, 0, - 0, 0, 93, 0, 237, 0, 0, 107, 279, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 270, 271, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 0, 238, 258, 257, 260, 261, 262, 263, 0, 0, - 86, 259, 264, 265, 266, 0, 0, 235, 251, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 248, 249, 0, 0, 0, 0, 291, 0, 250, - 0, 0, 246, 247, 252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 289, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 281, 290, 287, 288, 285, 286, 284, 283, - 282, 292, 272, 273, 274, 275, 277, 0, 280, 125, - 276, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 279, 109, 0, 0, 142, 118, - 0, 0, 0, 0, 270, 271, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 238, 258, 257, - 260, 261, 262, 263, 0, 0, 86, 259, 264, 265, - 266, 0, 0, 0, 251, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 248, 249, 0, - 0, 0, 0, 291, 0, 250, 0, 0, 246, 247, - 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 289, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 1319, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 281, 290, - 287, 288, 285, 286, 284, 283, 282, 292, 272, 273, - 274, 275, 277, 0, 280, 125, 276, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 279, 109, 0, 0, 142, 118, 0, 0, 0, 0, - 270, 271, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 238, 258, 257, 260, 261, 262, 263, - 0, 0, 86, 259, 264, 265, 266, 0, 0, 0, - 251, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 249, 0, 0, 0, 0, 291, - 0, 250, 0, 0, 246, 247, 252, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 289, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 281, 290, 287, 288, 285, 286, - 284, 283, 282, 292, 272, 273, 274, 275, 277, 0, - 280, 125, 276, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 489, 488, 498, 499, 491, - 492, 493, 494, 495, 496, 497, 490, 0, 0, 500, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, - 477, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 75, 0, 479, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 474, 473, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 128, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 71, 72, 0, 67, 0, 0, 0, - 73, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 69, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 70, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 108, 169, 133, 95, 160, 125, 0, 0, - 0, 575, 0, 0, 0, 0, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 577, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 275, 51, 1297, 873, 663, 788, 249, 1253, 534, 1098, + 471, 596, 274, 1126, 806, 1099, 1019, 580, 853, 829, + 582, 867, 1095, 960, 217, 828, 825, 223, 57, 789, + 976, 322, 923, 1064, 760, 757, 1010, 750, 1022, 776, + 727, 472, 466, 316, 965, 863, 602, 839, 601, 247, + 421, 785, 51, 584, 302, 569, 533, 3, 478, 301, + 228, 905, 486, 232, 313, 56, 306, 309, 1330, 1318, + 1328, 1304, 218, 219, 220, 221, 1326, 874, 1317, 1089, + 949, 1190, 425, 300, 446, 890, 187, 183, 184, 185, + 1262, 1121, 1122, 549, 821, 822, 1120, 759, 236, 820, + 461, 889, 1303, 61, 603, 846, 604, 1277, 222, 499, + 498, 508, 509, 501, 502, 503, 504, 505, 506, 507, + 500, 985, 692, 510, 984, 1001, 1215, 986, 894, 693, + 63, 64, 65, 66, 854, 434, 69, 888, 1230, 1173, + 1171, 216, 457, 458, 1327, 464, 1325, 1298, 448, 1193, + 450, 1132, 1133, 1134, 1043, 786, 435, 1254, 428, 1137, + 1135, 181, 180, 1260, 181, 841, 841, 807, 809, 245, + 1256, 671, 1040, 662, 841, 447, 449, 238, 1042, 453, + 975, 974, 973, 423, 431, 195, 885, 882, 883, 182, + 881, 523, 524, 995, 422, 186, 1285, 1201, 1051, 939, + 452, 452, 452, 452, 82, 452, 917, 699, 192, 490, + 441, 192, 452, 1030, 826, 892, 895, 499, 498, 508, + 509, 501, 502, 503, 504, 505, 506, 507, 500, 51, + 500, 510, 510, 510, 696, 192, 192, 483, 1255, 82, + 485, 1028, 808, 192, 520, 82, 1091, 522, 1047, 319, + 887, 1141, 251, 485, 1289, 474, 445, 1151, 840, 840, + 854, 1261, 1259, 924, 838, 836, 1278, 840, 837, 963, + 900, 1041, 886, 1039, 532, 777, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 475, 547, 548, 550, 550, + 550, 550, 550, 550, 550, 550, 558, 559, 560, 561, + 605, 1302, 1142, 777, 666, 946, 1029, 581, 999, 891, + 1292, 1034, 1031, 1024, 1025, 1032, 1027, 1026, 305, 480, + 1136, 437, 438, 439, 893, 1310, 1046, 843, 1033, 935, + 734, 934, 844, 476, 1036, 503, 504, 505, 506, 507, + 500, 1221, 201, 510, 732, 733, 731, 484, 483, 1220, + 192, 901, 192, 465, 1014, 1013, 484, 483, 192, 702, + 703, 427, 936, 1093, 485, 192, 211, 54, 1002, 82, + 82, 82, 82, 485, 82, 1311, 589, 730, 751, 599, + 752, 82, 551, 552, 553, 554, 555, 556, 557, 179, + 499, 498, 508, 509, 501, 502, 503, 504, 505, 506, + 507, 500, 469, 473, 510, 484, 483, 1290, 82, 1237, + 484, 483, 484, 483, 914, 915, 916, 196, 1218, 491, + 594, 1159, 485, 198, 595, 452, 698, 485, 1011, 485, + 204, 200, 23, 452, 700, 465, 717, 719, 720, 429, + 430, 718, 1287, 1030, 452, 452, 452, 452, 452, 452, + 452, 452, 1129, 535, 299, 1314, 465, 202, 452, 452, + 206, 1128, 546, 996, 697, 816, 1295, 816, 465, 192, + 987, 1028, 876, 680, 816, 1247, 192, 192, 192, 753, + 484, 483, 82, 677, 82, 1212, 1211, 54, 197, 676, + 82, 667, 227, 665, 319, 1117, 465, 485, 660, 521, + 1200, 465, 704, 678, 1148, 1147, 728, 1144, 1145, 1144, + 1143, 929, 465, 566, 465, 199, 443, 207, 208, 209, + 210, 214, 725, 51, 762, 465, 213, 212, 501, 502, + 503, 504, 505, 506, 507, 500, 1029, 536, 510, 436, + 706, 1034, 1031, 1024, 1025, 1032, 1027, 1026, 769, 772, + 721, 422, 723, 592, 778, 612, 611, 465, 1033, 305, + 68, 25, 67, 1266, 1023, 1265, 1138, 306, 306, 306, + 306, 306, 790, 754, 755, 961, 264, 263, 266, 267, + 268, 269, 581, 58, 810, 265, 270, 955, 565, 1096, + 956, 306, 961, 764, 82, 782, 593, 813, 591, 591, + 192, 192, 82, 774, 192, 25, 242, 192, 814, 962, + 54, 192, 566, 82, 82, 82, 82, 82, 82, 82, + 82, 705, 792, 793, 929, 795, 791, 82, 82, 794, + 962, 762, 192, 803, 1242, 765, 766, 1196, 764, 811, + 812, 773, 817, 1225, 855, 856, 857, 82, 1054, 818, + 1306, 192, 941, 566, 54, 938, 781, 82, 783, 784, + 566, 714, 715, 833, 664, 1150, 452, 1146, 452, 988, + 724, 25, 819, 929, 961, 847, 452, 598, 816, 761, + 763, 869, 498, 508, 509, 501, 502, 503, 504, 505, + 506, 507, 500, 929, 779, 510, 780, 940, 700, 871, + 937, 82, 865, 866, 508, 509, 501, 502, 503, 504, + 505, 506, 507, 500, 535, 848, 510, 767, 768, 868, + 54, 1111, 229, 991, 864, 918, 805, 966, 967, 1131, + 859, 725, 858, 192, 71, 312, 192, 192, 192, 192, + 192, 1096, 906, 1015, 728, 969, 729, 907, 192, 674, + 462, 192, 712, 800, 798, 192, 1186, 465, 801, 799, + 192, 192, 972, 571, 574, 575, 576, 572, 82, 573, + 577, 54, 919, 966, 967, 971, 797, 802, 319, 575, + 576, 82, 796, 824, 233, 234, 958, 959, 1324, 1316, + 1050, 830, 902, 479, 499, 498, 508, 509, 501, 502, + 503, 504, 505, 506, 507, 500, 1323, 477, 510, 913, + 912, 911, 467, 1006, 306, 945, 610, 273, 444, 305, + 305, 305, 305, 305, 1194, 998, 468, 1294, 1293, 1240, + 992, 979, 192, 1226, 305, 82, 978, 82, 980, 970, + 878, 192, 957, 305, 192, 82, 673, 579, 989, 230, + 231, 479, 80, 224, 1279, 1271, 928, 1239, 225, 525, + 526, 527, 528, 529, 530, 531, 982, 1238, 1003, 1004, + 58, 1270, 943, 452, 1228, 903, 904, 962, 473, 724, + 1005, 481, 1007, 1008, 1009, 993, 994, 321, 571, 574, + 575, 576, 572, 426, 573, 577, 1012, 311, 452, 926, + 910, 1282, 1216, 927, 695, 1021, 60, 62, 909, 590, + 931, 932, 933, 55, 1, 875, 1018, 884, 1296, 942, + 1252, 1035, 1125, 835, 948, 827, 420, 950, 951, 952, + 953, 70, 1288, 834, 1258, 1214, 842, 1000, 845, 1130, + 930, 1291, 997, 617, 615, 616, 614, 619, 618, 613, + 1094, 203, 314, 1058, 1057, 947, 578, 1101, 606, 51, + 870, 1097, 790, 482, 1063, 72, 1038, 1037, 790, 1100, + 1083, 725, 1090, 1082, 1113, 1114, 1115, 880, 1045, 691, + 82, 899, 460, 192, 729, 205, 82, 451, 519, 1106, + 1105, 1107, 908, 983, 320, 1103, 1280, 1192, 82, 701, + 1269, 1227, 944, 1119, 545, 775, 250, 1118, 830, 716, + 1124, 262, 259, 261, 1123, 1102, 260, 321, 321, 321, + 321, 707, 321, 954, 492, 248, 240, 304, 562, 321, + 1139, 1140, 570, 568, 567, 968, 964, 303, 1053, 1189, + 1276, 82, 82, 711, 82, 27, 59, 1152, 235, 21, + 20, 19, 22, 18, 1020, 306, 488, 17, 16, 33, + 1154, 15, 14, 1157, 13, 12, 305, 82, 11, 9, + 192, 192, 1162, 8, 1062, 10, 7, 1161, 192, 6, + 5, 4, 226, 24, 2, 0, 0, 82, 0, 0, + 1188, 1169, 0, 0, 0, 0, 0, 1056, 0, 726, + 0, 0, 735, 736, 737, 738, 739, 740, 741, 742, + 743, 744, 745, 746, 747, 748, 749, 0, 0, 1086, + 1195, 0, 1116, 1204, 1092, 1205, 1206, 1207, 82, 82, + 597, 0, 321, 0, 1203, 1183, 465, 1208, 607, 0, + 1108, 1109, 0, 989, 1110, 0, 1210, 1112, 0, 0, + 452, 0, 0, 0, 0, 0, 0, 0, 82, 0, + 82, 82, 1217, 0, 1219, 0, 0, 1223, 830, 0, + 830, 1224, 0, 499, 498, 508, 509, 501, 502, 503, + 504, 505, 506, 507, 500, 192, 1229, 510, 454, 455, + 456, 0, 459, 82, 0, 0, 0, 1101, 0, 463, + 1244, 0, 0, 1163, 0, 0, 82, 192, 0, 1100, + 1165, 0, 1241, 82, 0, 0, 0, 0, 0, 0, + 0, 82, 0, 1251, 192, 1160, 1257, 1268, 1180, 1181, + 1182, 1056, 0, 1185, 0, 0, 0, 1267, 0, 0, + 0, 0, 321, 1101, 1263, 51, 1264, 1197, 1198, 1199, + 321, 1202, 1283, 0, 0, 1100, 1243, 0, 0, 0, + 1286, 321, 321, 321, 321, 321, 321, 321, 321, 0, + 0, 1191, 0, 0, 0, 321, 321, 0, 0, 535, + 1300, 82, 0, 82, 82, 82, 192, 82, 1307, 790, + 1305, 0, 0, 82, 0, 708, 849, 850, 851, 852, + 1312, 1284, 0, 830, 0, 488, 0, 305, 321, 0, + 0, 0, 860, 861, 862, 0, 1321, 1322, 0, 82, + 82, 82, 0, 0, 0, 0, 0, 0, 1329, 0, + 1020, 830, 0, 470, 0, 1236, 0, 0, 0, 920, + 921, 922, 0, 0, 0, 0, 0, 0, 0, 756, + 0, 1248, 1249, 1250, 0, 0, 0, 0, 0, 770, + 770, 0, 0, 0, 0, 770, 0, 0, 0, 0, + 82, 82, 190, 0, 0, 215, 0, 1272, 1273, 1274, + 1275, 0, 82, 770, 0, 307, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, 0, 239, 0, 190, + 190, 0, 0, 0, 0, 0, 0, 190, 0, 0, + 0, 0, 661, 0, 0, 0, 321, 1281, 0, 1187, + 670, 0, 1301, 0, 189, 0, 0, 0, 0, 321, + 1308, 681, 682, 683, 684, 685, 686, 687, 688, 0, + 0, 0, 1313, 0, 0, 689, 690, 0, 1299, 535, + 0, 1319, 310, 0, 0, 82, 0, 473, 0, 424, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, + 0, 0, 0, 0, 1184, 0, 0, 1333, 1334, 0, + 0, 0, 0, 321, 1320, 321, 0, 0, 0, 0, + 0, 0, 0, 321, 499, 498, 508, 509, 501, 502, + 503, 504, 505, 506, 507, 500, 0, 0, 510, 0, + 0, 0, 0, 0, 190, 0, 190, 321, 0, 0, + 0, 0, 190, 0, 0, 0, 0, 0, 0, 190, + 0, 1060, 1061, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1084, 1085, 0, 1087, 1088, 499, + 498, 508, 509, 501, 502, 503, 504, 505, 506, 507, + 500, 0, 0, 510, 0, 0, 432, 0, 433, 25, + 26, 52, 28, 29, 440, 1059, 0, 0, 0, 0, + 0, 442, 0, 30, 31, 0, 0, 0, 0, 0, + 46, 0, 0, 0, 0, 32, 499, 498, 508, 509, + 501, 502, 503, 504, 505, 506, 507, 500, 0, 0, + 510, 0, 0, 0, 41, 0, 0, 0, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 977, 0, + 0, 0, 0, 190, 981, 0, 0, 0, 0, 0, + 190, 586, 190, 0, 0, 0, 321, 0, 0, 0, + 0, 0, 0, 877, 0, 879, 0, 0, 0, 0, + 0, 0, 0, 898, 0, 0, 1164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, + 37, 36, 39, 0, 0, 564, 0, 0, 0, 1016, + 321, 0, 321, 0, 588, 0, 0, 0, 0, 40, + 47, 48, 925, 0, 49, 50, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 321, 0, 0, 42, 43, + 0, 44, 45, 499, 498, 508, 509, 501, 502, 503, + 504, 505, 506, 507, 500, 321, 0, 510, 0, 0, + 0, 1166, 1167, 0, 1168, 0, 0, 1170, 0, 1172, + 0, 1174, 1175, 1176, 1177, 1178, 1179, 321, 0, 0, + 0, 0, 0, 0, 190, 190, 0, 0, 190, 0, + 0, 190, 0, 770, 0, 679, 1104, 977, 0, 770, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1231, 1232, 0, 1233, 1234, 1235, 190, 0, 0, 0, + 0, 53, 0, 1213, 0, 0, 321, 0, 321, 1127, + 0, 0, 0, 0, 0, 190, 668, 669, 0, 0, + 672, 0, 0, 675, 679, 499, 498, 508, 509, 501, + 502, 503, 504, 505, 506, 507, 500, 0, 0, 510, + 0, 1153, 1081, 0, 0, 0, 0, 0, 694, 0, + 0, 0, 0, 0, 1155, 0, 0, 0, 0, 0, + 1017, 1158, 0, 0, 0, 0, 239, 713, 0, 321, + 0, 239, 239, 0, 0, 771, 771, 239, 0, 0, + 0, 771, 0, 0, 0, 1044, 0, 0, 0, 0, + 0, 1065, 239, 239, 239, 239, 0, 190, 0, 771, + 190, 190, 190, 190, 190, 0, 0, 0, 0, 0, + 0, 0, 804, 0, 0, 190, 0, 0, 0, 586, + 0, 1067, 0, 0, 190, 190, 0, 0, 0, 597, + 0, 597, 597, 597, 0, 1209, 1331, 0, 0, 0, + 0, 321, 0, 1077, 1078, 1079, 1076, 0, 1080, 787, + 0, 0, 0, 1069, 0, 1073, 1075, 1068, 0, 1066, + 0, 0, 0, 0, 1071, 0, 0, 321, 321, 321, + 0, 0, 0, 1070, 0, 0, 0, 815, 0, 0, + 0, 0, 0, 0, 0, 0, 1072, 1074, 0, 0, + 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 190, 0, 0, 190, 0, + 0, 0, 634, 0, 0, 0, 0, 0, 1245, 1246, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1127, 0, 0, 679, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 597, 0, 239, 0, 0, 872, 0, + 0, 0, 0, 494, 0, 497, 0, 896, 0, 0, + 897, 511, 512, 513, 514, 515, 516, 517, 0, 495, + 496, 493, 518, 499, 498, 508, 509, 501, 502, 503, + 504, 505, 506, 507, 500, 0, 0, 510, 0, 622, + 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, + 770, 0, 0, 1309, 0, 0, 0, 0, 239, 0, + 0, 0, 0, 0, 0, 0, 1315, 0, 0, 635, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, + 648, 649, 650, 651, 652, 653, 654, 190, 655, 656, + 657, 658, 659, 636, 637, 638, 639, 620, 621, 0, + 0, 623, 0, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 640, 641, 642, 643, 644, 645, 646, + 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1048, 1049, 0, 0, 0, 0, + 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, + 0, 0, 0, 0, 1052, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 586, 0, 0, 0, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 831, + 832, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 990, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 771, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 831, + 832, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 54, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 1055, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 244, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 722, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 244, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 324, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 325, 323, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 191, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 600, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 324, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 325, 323, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 407, 397, 0, 369, 409, 347, + 361, 417, 362, 363, 390, 333, 377, 131, 359, 418, + 419, 0, 350, 328, 356, 329, 348, 371, 99, 374, + 346, 399, 380, 113, 415, 115, 385, 0, 148, 124, + 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, + 410, 360, 388, 411, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 387, 406, + 358, 389, 327, 386, 0, 331, 334, 416, 404, 353, + 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, + 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, + 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, + 396, 402, 367, 193, 405, 365, 364, 408, 137, 0, + 0, 151, 104, 103, 112, 400, 349, 357, 95, 355, + 143, 133, 163, 382, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 315, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 324, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 330, 0, 149, 165, 178, 345, 403, 171, 172, + 173, 174, 0, 0, 0, 325, 323, 318, 317, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 341, 344, + 339, 340, 378, 379, 412, 413, 414, 394, 336, 0, + 342, 343, 0, 398, 0, 0, 381, 83, 0, 114, + 175, 139, 101, 166, 131, 0, 0, 0, 0, 758, + 0, 246, 0, 0, 0, 99, 0, 243, 0, 0, + 113, 285, 115, 0, 0, 148, 124, 0, 0, 0, + 0, 276, 277, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 244, 264, 263, 266, 267, 268, + 269, 0, 0, 92, 265, 270, 271, 272, 0, 0, + 241, 257, 0, 284, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 254, 255, 237, 0, 0, 0, + 297, 0, 256, 0, 0, 252, 253, 258, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 193, 0, 0, 295, 0, 137, 0, 0, 151, 104, + 103, 112, 0, 0, 0, 95, 0, 143, 133, 163, + 0, 134, 142, 116, 155, 138, 162, 194, 170, 153, + 169, 84, 152, 161, 93, 145, 86, 159, 150, 122, + 108, 109, 85, 0, 141, 98, 102, 97, 130, 156, + 157, 96, 177, 89, 168, 88, 90, 167, 129, 154, + 160, 123, 120, 87, 158, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 149, 165, 178, 0, 0, 171, 172, 173, 174, 0, + 0, 0, 128, 91, 107, 146, 110, 117, 140, 176, + 132, 144, 94, 164, 147, 287, 296, 293, 294, 291, + 292, 290, 289, 288, 298, 278, 279, 280, 281, 283, + 0, 286, 0, 282, 83, 131, 114, 175, 139, 101, + 166, 0, 246, 0, 0, 0, 99, 0, 243, 0, + 0, 113, 285, 115, 0, 0, 148, 124, 0, 0, + 0, 0, 276, 277, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 465, 244, 264, 263, 266, 267, + 268, 269, 0, 0, 92, 265, 270, 271, 272, 0, + 0, 241, 257, 0, 284, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 254, 255, 0, 0, 0, + 0, 297, 0, 256, 0, 0, 252, 253, 258, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 295, 0, 137, 0, 0, 151, + 104, 103, 112, 0, 0, 0, 95, 0, 143, 133, + 163, 0, 134, 142, 116, 155, 138, 162, 194, 170, + 153, 169, 84, 152, 161, 93, 145, 86, 159, 150, + 122, 108, 109, 85, 0, 141, 98, 102, 97, 130, + 156, 157, 96, 177, 89, 168, 88, 90, 167, 129, + 154, 160, 123, 120, 87, 158, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 149, 165, 178, 0, 0, 171, 172, 173, 174, + 0, 0, 0, 128, 91, 107, 146, 110, 117, 140, + 176, 132, 144, 94, 164, 147, 287, 296, 293, 294, + 291, 292, 290, 289, 288, 298, 278, 279, 280, 281, + 283, 0, 286, 0, 282, 83, 131, 114, 175, 139, + 101, 166, 0, 246, 0, 0, 0, 99, 0, 243, + 0, 0, 113, 285, 115, 0, 0, 148, 124, 0, + 0, 0, 0, 276, 277, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 244, 264, 263, 266, + 267, 268, 269, 0, 0, 92, 265, 270, 271, 272, + 0, 0, 241, 257, 0, 284, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 254, 255, 237, 0, + 0, 0, 297, 0, 256, 0, 0, 252, 253, 258, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 0, 0, 295, 0, 137, 0, 0, + 151, 104, 103, 112, 0, 0, 0, 95, 0, 143, + 133, 163, 0, 134, 142, 116, 155, 138, 162, 194, + 170, 153, 169, 84, 152, 161, 93, 145, 86, 159, + 150, 122, 108, 109, 85, 0, 141, 98, 102, 97, + 130, 156, 157, 96, 177, 89, 168, 88, 90, 167, + 129, 154, 160, 123, 120, 87, 158, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 149, 165, 178, 0, 0, 171, 172, 173, + 174, 0, 0, 0, 128, 91, 107, 146, 110, 117, + 140, 176, 132, 144, 94, 164, 147, 287, 296, 293, + 294, 291, 292, 290, 289, 288, 298, 278, 279, 280, + 281, 283, 0, 286, 0, 282, 83, 131, 114, 175, + 139, 101, 166, 0, 246, 0, 0, 0, 99, 0, + 243, 0, 0, 113, 285, 115, 0, 0, 148, 124, + 0, 0, 0, 0, 276, 277, 0, 0, 0, 0, + 0, 0, 823, 0, 54, 0, 0, 244, 264, 263, + 266, 267, 268, 269, 0, 0, 92, 265, 270, 271, + 272, 0, 0, 241, 257, 0, 284, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 254, 255, 0, + 0, 0, 0, 297, 0, 256, 0, 0, 252, 253, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 295, 0, 137, 0, + 0, 151, 104, 103, 112, 0, 0, 0, 95, 0, + 143, 133, 163, 0, 134, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 0, 0, 149, 165, 178, 0, 0, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 287, 296, + 293, 294, 291, 292, 290, 289, 288, 298, 278, 279, + 280, 281, 283, 25, 286, 0, 282, 83, 0, 114, + 175, 139, 101, 166, 0, 131, 0, 0, 0, 0, + 0, 0, 246, 0, 0, 0, 99, 0, 243, 0, + 0, 113, 285, 115, 0, 0, 148, 124, 0, 0, + 0, 0, 276, 277, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 244, 264, 263, 266, 267, + 268, 269, 0, 0, 92, 265, 270, 271, 272, 0, + 0, 241, 257, 0, 284, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 254, 255, 0, 0, 0, + 0, 297, 0, 256, 0, 0, 252, 253, 258, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 295, 0, 137, 0, 0, 151, + 104, 103, 112, 0, 0, 0, 95, 0, 143, 133, + 163, 0, 134, 142, 116, 155, 138, 162, 194, 170, + 153, 169, 84, 152, 161, 93, 145, 86, 159, 150, + 122, 108, 109, 85, 0, 141, 98, 102, 97, 130, + 156, 157, 96, 177, 89, 168, 88, 90, 167, 129, + 154, 160, 123, 120, 87, 158, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 149, 165, 178, 0, 0, 171, 172, 173, 174, + 0, 0, 0, 128, 91, 107, 146, 110, 117, 140, + 176, 132, 144, 94, 164, 147, 287, 296, 293, 294, + 291, 292, 290, 289, 288, 298, 278, 279, 280, 281, + 283, 0, 286, 0, 282, 83, 131, 114, 175, 139, + 101, 166, 0, 246, 0, 0, 0, 99, 0, 243, + 0, 0, 113, 285, 115, 0, 0, 148, 124, 0, + 0, 0, 0, 276, 277, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, 244, 264, 263, 266, + 267, 268, 269, 0, 0, 92, 265, 270, 271, 272, + 0, 0, 241, 257, 0, 284, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 254, 255, 0, 0, + 0, 0, 297, 0, 256, 0, 0, 252, 253, 258, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 0, 0, 295, 0, 137, 0, 0, + 151, 104, 103, 112, 0, 0, 0, 95, 0, 143, + 133, 163, 0, 134, 142, 116, 155, 138, 162, 194, + 170, 153, 169, 84, 152, 161, 93, 145, 86, 159, + 150, 122, 108, 109, 85, 0, 141, 98, 102, 97, + 130, 156, 157, 96, 177, 89, 168, 88, 90, 167, + 129, 154, 160, 123, 120, 87, 158, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 149, 165, 178, 0, 0, 171, 172, 173, + 174, 0, 0, 0, 128, 91, 107, 146, 110, 117, + 140, 176, 132, 144, 94, 164, 147, 287, 296, 293, + 294, 291, 292, 290, 289, 288, 298, 278, 279, 280, + 281, 283, 131, 286, 0, 282, 83, 0, 114, 175, + 139, 101, 166, 99, 0, 0, 0, 0, 113, 285, + 115, 0, 0, 148, 124, 0, 0, 0, 0, 276, + 277, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 0, 0, 244, 264, 263, 266, 267, 268, 269, 0, + 0, 92, 265, 270, 271, 272, 0, 0, 0, 257, + 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 254, 255, 0, 0, 0, 0, 297, 0, + 256, 0, 0, 252, 253, 258, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 295, 0, 137, 0, 0, 151, 104, 103, 112, + 0, 0, 0, 95, 0, 143, 133, 163, 1332, 134, + 142, 116, 155, 138, 162, 194, 170, 153, 169, 84, + 152, 161, 93, 145, 86, 159, 150, 122, 108, 109, + 85, 0, 141, 98, 102, 97, 130, 156, 157, 96, + 177, 89, 168, 88, 90, 167, 129, 154, 160, 123, + 120, 87, 158, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 149, 165, + 178, 0, 0, 171, 172, 173, 174, 0, 0, 0, + 128, 91, 107, 146, 110, 117, 140, 176, 132, 144, + 94, 164, 147, 287, 296, 293, 294, 291, 292, 290, + 289, 288, 298, 278, 279, 280, 281, 283, 131, 286, + 0, 282, 83, 0, 114, 175, 139, 101, 166, 99, + 0, 0, 0, 0, 113, 285, 115, 0, 0, 148, + 124, 0, 0, 0, 0, 276, 277, 0, 0, 0, + 0, 0, 0, 0, 0, 54, 0, 0, 244, 264, + 263, 266, 267, 268, 269, 0, 0, 92, 265, 270, + 271, 272, 0, 0, 0, 257, 0, 284, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, + 0, 0, 0, 0, 297, 0, 256, 0, 0, 252, + 253, 258, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 193, 0, 0, 295, 0, 137, + 0, 0, 151, 104, 103, 112, 0, 0, 0, 95, + 0, 143, 133, 163, 0, 134, 142, 116, 155, 138, + 162, 194, 170, 153, 169, 84, 152, 161, 93, 145, + 86, 159, 150, 122, 108, 109, 85, 0, 141, 98, + 102, 97, 130, 156, 157, 96, 177, 89, 168, 88, + 90, 167, 129, 154, 160, 123, 120, 87, 158, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 149, 165, 178, 0, 0, 171, + 172, 173, 174, 0, 0, 0, 128, 91, 107, 146, + 110, 117, 140, 176, 132, 144, 94, 164, 147, 287, + 296, 293, 294, 291, 292, 290, 289, 288, 298, 278, + 279, 280, 281, 283, 131, 286, 0, 282, 83, 0, + 114, 175, 139, 101, 166, 99, 0, 0, 0, 0, + 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 499, 498, 508, 509, 501, 502, 503, 504, 505, 506, + 507, 500, 0, 0, 510, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 193, 0, 0, 0, 0, 137, 0, 0, 151, 104, + 103, 112, 0, 0, 0, 95, 0, 143, 133, 163, + 0, 134, 142, 116, 155, 138, 162, 194, 170, 153, + 169, 84, 152, 161, 93, 145, 86, 159, 150, 122, + 108, 109, 85, 0, 141, 98, 102, 97, 130, 156, + 157, 96, 177, 89, 168, 88, 90, 167, 129, 154, + 160, 123, 120, 87, 158, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 149, 165, 178, 0, 0, 171, 172, 173, 174, 0, + 0, 0, 128, 91, 107, 146, 110, 117, 140, 176, + 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 83, 131, 114, 175, 139, 101, + 166, 487, 0, 0, 0, 0, 99, 0, 0, 0, + 0, 113, 0, 115, 0, 0, 148, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 489, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 0, 484, + 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 0, 0, 137, 0, 0, 151, + 104, 103, 112, 0, 0, 0, 95, 0, 143, 133, + 163, 0, 134, 142, 116, 155, 138, 162, 194, 170, + 153, 169, 84, 152, 161, 93, 145, 86, 159, 150, + 122, 108, 109, 85, 0, 141, 98, 102, 97, 130, + 156, 157, 96, 177, 89, 168, 88, 90, 167, 129, + 154, 160, 123, 120, 87, 158, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 149, 165, 178, 0, 0, 171, 172, 173, 174, + 0, 0, 0, 128, 91, 107, 146, 110, 117, 140, + 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 0, 0, 83, 0, 114, 175, 139, + 101, 166, 99, 0, 0, 0, 0, 113, 0, 115, + 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 0, 0, 0, 0, 74, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 78, 0, 73, 0, 0, + 0, 79, 137, 0, 0, 151, 104, 103, 112, 0, + 0, 0, 95, 0, 143, 133, 163, 0, 134, 142, + 116, 155, 138, 162, 75, 170, 153, 169, 84, 152, + 161, 93, 145, 86, 159, 150, 122, 108, 109, 85, + 0, 141, 98, 102, 97, 130, 156, 157, 96, 177, + 89, 168, 88, 90, 167, 129, 154, 160, 123, 120, + 87, 158, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 149, 165, 178, + 0, 0, 171, 172, 173, 174, 0, 0, 0, 128, + 91, 107, 146, 110, 117, 140, 176, 132, 144, 94, + 164, 147, 0, 76, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 83, 131, 114, 175, 139, 101, 166, 585, 0, + 0, 0, 0, 99, 0, 0, 0, 0, 113, 0, + 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 587, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 0, 0, 137, 0, 0, 151, 104, 103, 112, + 0, 0, 0, 95, 0, 143, 133, 163, 0, 134, + 142, 116, 155, 138, 162, 194, 170, 153, 169, 84, + 152, 161, 93, 145, 86, 159, 150, 122, 108, 109, + 85, 0, 141, 98, 102, 97, 130, 156, 157, 96, + 177, 89, 168, 88, 90, 167, 129, 154, 160, 123, + 120, 87, 158, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 149, 165, + 178, 0, 0, 171, 172, 173, 174, 0, 0, 0, + 128, 91, 107, 146, 110, 117, 140, 176, 132, 144, + 94, 164, 147, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, + 0, 0, 83, 0, 114, 175, 139, 101, 166, 99, + 0, 0, 0, 0, 113, 0, 115, 0, 0, 148, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, 0, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 23, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 185, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 0, 193, 0, 0, 0, 0, 137, + 0, 0, 151, 104, 103, 112, 0, 0, 0, 95, + 0, 143, 133, 163, 0, 134, 142, 116, 155, 138, + 162, 194, 170, 153, 169, 84, 152, 161, 93, 145, + 86, 159, 150, 122, 108, 109, 85, 0, 141, 98, + 102, 97, 130, 156, 157, 96, 177, 89, 168, 88, + 90, 167, 129, 154, 160, 123, 120, 87, 158, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 149, 165, 178, 0, 0, 171, + 172, 173, 174, 0, 0, 0, 128, 91, 107, 146, + 110, 117, 140, 176, 132, 144, 94, 164, 147, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 0, 0, 0, 83, 0, + 114, 175, 139, 101, 166, 99, 0, 0, 0, 0, + 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 193, 0, 0, 0, 0, 137, 0, 0, 151, 104, + 103, 112, 0, 0, 0, 95, 0, 143, 133, 163, + 0, 134, 142, 116, 155, 138, 162, 194, 170, 153, + 169, 84, 152, 161, 93, 145, 86, 159, 150, 122, + 108, 109, 85, 0, 141, 98, 102, 97, 130, 156, + 157, 96, 177, 89, 168, 88, 90, 167, 129, 154, + 160, 123, 120, 87, 158, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 149, 165, 178, 0, 0, 171, 172, 173, 174, 0, + 0, 0, 128, 91, 107, 146, 110, 117, 140, 176, + 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 0, 695, 0, 0, 696, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 131, 0, 0, 0, 83, 0, 114, 175, 139, 101, + 166, 99, 0, 0, 0, 0, 113, 0, 115, 0, + 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 81, 0, 0, 709, 0, 0, 710, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 595, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 594, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, + 0, 137, 0, 0, 151, 104, 103, 112, 0, 0, + 0, 95, 0, 143, 133, 163, 0, 134, 142, 116, + 155, 138, 162, 194, 170, 153, 169, 84, 152, 161, + 93, 145, 86, 159, 150, 122, 108, 109, 85, 0, + 141, 98, 102, 97, 130, 156, 157, 96, 177, 89, + 168, 88, 90, 167, 129, 154, 160, 123, 120, 87, + 158, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 0, 0, 149, 165, 178, 0, + 0, 171, 172, 173, 174, 0, 0, 0, 128, 91, + 107, 146, 110, 117, 140, 176, 132, 144, 94, 164, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 83, 0, 114, 175, 139, 101, 166, 99, 0, 609, + 0, 0, 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 81, 0, 608, 0, + 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 108, 169, 133, 95, 160, 125, 0, 0, 0, - 575, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 0, 577, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 193, 0, 0, 0, 0, 137, 0, 0, + 151, 104, 103, 112, 0, 0, 0, 95, 0, 143, + 133, 163, 0, 134, 142, 116, 155, 138, 162, 194, + 170, 153, 169, 84, 152, 161, 93, 145, 86, 159, + 150, 122, 108, 109, 85, 0, 141, 98, 102, 97, + 130, 156, 157, 96, 177, 89, 168, 88, 90, 167, + 129, 154, 160, 123, 120, 87, 158, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 149, 165, 178, 0, 0, 171, 172, 173, + 174, 0, 0, 0, 128, 91, 107, 146, 110, 117, + 140, 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 131, 114, 175, + 139, 101, 166, 585, 0, 0, 0, 0, 99, 0, + 0, 0, 0, 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 0, 587, + 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 0, 131, 0, 0, 145, 98, - 97, 106, 0, 0, 0, 89, 0, 137, 127, 157, - 0, 573, 136, 110, 149, 132, 156, 188, 164, 147, - 163, 78, 146, 155, 87, 139, 80, 153, 144, 116, - 102, 103, 79, 0, 135, 92, 96, 91, 124, 150, - 151, 90, 171, 83, 162, 82, 84, 161, 123, 148, - 154, 117, 114, 81, 152, 115, 113, 105, 94, 99, - 129, 112, 130, 100, 120, 119, 121, 0, 0, 0, - 143, 159, 172, 0, 0, 165, 166, 167, 168, 0, - 0, 0, 122, 85, 101, 140, 104, 111, 134, 170, - 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 0, 77, 0, 108, 169, 133, 95, - 160, 93, 0, 0, 0, 0, 107, 0, 109, 0, - 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 185, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 0, 0, 137, 0, + 0, 151, 104, 103, 112, 0, 0, 0, 95, 0, + 143, 133, 163, 0, 583, 142, 116, 155, 138, 162, + 194, 170, 153, 169, 84, 152, 161, 93, 145, 86, + 159, 150, 122, 108, 109, 85, 0, 141, 98, 102, + 97, 130, 156, 157, 96, 177, 89, 168, 88, 90, + 167, 129, 154, 160, 123, 120, 87, 158, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 0, 0, 149, 165, 178, 0, 0, 171, 172, + 173, 174, 0, 0, 0, 128, 91, 107, 146, 110, + 117, 140, 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 0, 0, 0, 83, 0, 114, + 175, 139, 101, 166, 99, 0, 0, 0, 0, 113, + 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 131, 0, 0, 145, 98, 97, 106, 0, 0, - 0, 89, 0, 137, 127, 157, 0, 128, 136, 110, - 149, 132, 156, 188, 164, 147, 163, 78, 146, 155, - 87, 139, 80, 153, 144, 116, 102, 103, 79, 0, - 135, 92, 96, 91, 124, 150, 151, 90, 171, 83, - 162, 82, 84, 161, 123, 148, 154, 117, 114, 81, - 152, 115, 113, 105, 94, 99, 129, 112, 130, 100, - 120, 119, 121, 0, 0, 0, 143, 159, 172, 0, - 0, 165, 166, 167, 168, 0, 0, 0, 122, 85, - 101, 140, 104, 111, 134, 170, 126, 138, 88, 158, - 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 77, 0, 108, 169, 133, 95, 160, 93, 0, 0, - 0, 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 577, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 0, 0, 0, 0, 137, 0, 0, 151, 104, 103, + 112, 0, 0, 0, 95, 0, 143, 133, 163, 0, + 134, 142, 116, 155, 138, 162, 194, 170, 153, 169, + 84, 152, 161, 93, 145, 86, 159, 150, 122, 108, + 109, 85, 0, 141, 98, 102, 97, 130, 156, 157, + 96, 177, 89, 168, 88, 90, 167, 129, 154, 160, + 123, 120, 87, 158, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 149, + 165, 178, 0, 0, 171, 172, 173, 174, 0, 0, + 0, 128, 91, 107, 146, 110, 117, 140, 176, 132, + 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 0, 0, 0, 83, 0, 114, 175, 139, 101, 166, + 99, 0, 0, 0, 0, 113, 0, 115, 0, 0, + 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 0, 587, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 131, 0, 0, - 145, 98, 97, 106, 0, 0, 0, 89, 0, 137, - 127, 157, 0, 128, 136, 110, 149, 132, 156, 188, - 164, 147, 163, 78, 146, 155, 87, 139, 80, 153, - 144, 116, 102, 103, 79, 0, 135, 92, 96, 91, - 124, 150, 151, 90, 171, 83, 162, 82, 84, 161, - 123, 148, 154, 117, 114, 81, 152, 115, 113, 105, - 94, 99, 129, 112, 130, 100, 120, 119, 121, 0, - 0, 0, 143, 159, 172, 0, 0, 165, 166, 167, - 168, 0, 0, 0, 122, 85, 101, 140, 104, 111, - 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 77, 0, 108, 169, - 133, 95, 160, 93, 0, 0, 0, 0, 107, 0, - 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, + 137, 0, 0, 151, 104, 103, 112, 0, 0, 0, + 95, 0, 143, 133, 163, 0, 134, 142, 116, 155, + 138, 162, 194, 170, 153, 169, 84, 152, 161, 93, + 145, 86, 159, 150, 122, 108, 109, 85, 0, 141, + 98, 102, 97, 130, 156, 157, 96, 177, 89, 168, + 88, 90, 167, 129, 154, 160, 123, 120, 87, 158, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 0, 0, 149, 165, 178, 0, 0, + 171, 172, 173, 174, 0, 0, 0, 128, 91, 107, + 146, 110, 117, 140, 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 479, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 0, 0, 0, 83, + 0, 114, 175, 139, 101, 166, 99, 0, 0, 0, + 0, 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 489, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 131, 0, 0, 145, 98, 97, 106, - 0, 0, 0, 89, 0, 137, 127, 157, 0, 128, - 136, 110, 149, 132, 156, 188, 164, 147, 163, 78, - 146, 155, 87, 139, 80, 153, 144, 116, 102, 103, - 79, 0, 135, 92, 96, 91, 124, 150, 151, 90, - 171, 83, 162, 82, 84, 161, 123, 148, 154, 117, - 114, 81, 152, 115, 113, 105, 94, 99, 129, 112, - 130, 100, 120, 119, 121, 0, 0, 0, 143, 159, - 172, 0, 0, 165, 166, 167, 168, 0, 0, 0, - 122, 85, 101, 140, 104, 111, 134, 170, 126, 138, - 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 77, 0, 108, 169, 133, 95, 160, 553, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 0, 0, 137, 0, 0, 151, + 104, 103, 112, 0, 0, 0, 95, 0, 143, 133, + 163, 0, 134, 142, 116, 155, 138, 162, 194, 170, + 153, 169, 84, 152, 161, 93, 145, 86, 159, 150, + 122, 108, 109, 85, 0, 141, 98, 102, 97, 130, + 156, 157, 96, 177, 89, 168, 88, 90, 167, 129, + 154, 160, 123, 120, 87, 158, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 149, 165, 178, 0, 0, 171, 172, 173, 174, + 0, 0, 0, 128, 91, 107, 146, 110, 117, 140, + 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 0, 83, 0, 114, 175, 139, + 101, 166, 563, 99, 0, 0, 0, 0, 113, 0, + 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 125, 0, 77, - 0, 108, 169, 133, 95, 160, 93, 0, 0, 0, - 0, 107, 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 0, 0, 137, 0, 0, 151, 104, 103, 112, + 0, 0, 0, 95, 0, 143, 133, 163, 0, 134, + 142, 116, 155, 138, 162, 194, 170, 153, 169, 84, + 152, 161, 93, 145, 86, 159, 150, 122, 108, 109, + 85, 0, 141, 98, 102, 97, 130, 156, 157, 96, + 177, 89, 168, 88, 90, 167, 129, 154, 160, 123, + 120, 87, 158, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 149, 165, + 178, 0, 0, 171, 172, 173, 174, 0, 0, 0, + 128, 91, 107, 146, 110, 117, 140, 176, 132, 144, + 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 308, 0, 0, 0, 0, 0, 0, 131, 0, + 0, 0, 83, 0, 114, 175, 139, 101, 166, 99, + 0, 0, 0, 0, 113, 0, 115, 0, 0, 148, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 131, 0, 0, 145, - 98, 97, 106, 0, 0, 0, 89, 0, 137, 127, - 157, 0, 128, 136, 110, 149, 132, 156, 188, 164, - 147, 163, 78, 146, 155, 87, 139, 80, 153, 144, - 116, 102, 103, 79, 0, 135, 92, 96, 91, 124, - 150, 151, 90, 171, 83, 162, 82, 84, 161, 123, - 148, 154, 117, 114, 81, 152, 115, 113, 105, 94, - 99, 129, 112, 130, 100, 120, 119, 121, 0, 0, - 0, 143, 159, 172, 0, 0, 165, 166, 167, 168, - 0, 0, 0, 122, 85, 101, 140, 104, 111, 134, - 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, + 0, 0, 0, 0, 193, 0, 0, 0, 0, 137, + 0, 0, 151, 104, 103, 112, 0, 0, 0, 95, + 0, 143, 133, 163, 0, 134, 142, 116, 155, 138, + 162, 194, 170, 153, 169, 84, 152, 161, 93, 145, + 86, 159, 150, 122, 108, 109, 85, 0, 141, 98, + 102, 97, 130, 156, 157, 96, 177, 89, 168, 88, + 90, 167, 129, 154, 160, 123, 120, 87, 158, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 149, 165, 178, 0, 0, 171, + 172, 173, 174, 0, 0, 0, 128, 91, 107, 146, + 110, 117, 140, 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 77, 0, 108, 169, 133, - 95, 160, 93, 0, 0, 0, 0, 107, 0, 109, - 0, 0, 142, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 0, 0, 0, 83, 0, + 114, 175, 139, 101, 166, 99, 0, 0, 0, 0, + 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 0, 187, 0, 0, - 0, 0, 131, 0, 0, 145, 98, 97, 106, 0, - 0, 0, 89, 0, 137, 127, 157, 0, 128, 136, - 110, 149, 132, 156, 188, 164, 147, 163, 78, 146, - 155, 87, 139, 80, 153, 144, 116, 102, 103, 79, - 0, 135, 92, 96, 91, 124, 150, 151, 90, 171, - 83, 162, 82, 84, 161, 123, 148, 154, 117, 114, - 81, 152, 115, 113, 105, 94, 99, 129, 112, 130, - 100, 120, 119, 121, 0, 0, 0, 143, 159, 172, - 0, 0, 165, 166, 167, 168, 0, 0, 0, 122, - 85, 101, 140, 104, 111, 134, 170, 126, 138, 88, - 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 77, 0, 108, 169, 133, 95, 160, 93, 0, - 0, 0, 0, 107, 0, 109, 0, 0, 142, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, + 193, 0, 0, 0, 0, 137, 0, 0, 151, 104, + 103, 112, 0, 0, 0, 95, 0, 143, 133, 163, + 0, 134, 142, 116, 155, 138, 162, 194, 170, 153, + 169, 84, 152, 161, 93, 145, 86, 159, 150, 122, + 108, 109, 85, 0, 141, 98, 102, 97, 130, 156, + 157, 96, 177, 89, 168, 88, 90, 167, 129, 154, + 160, 123, 120, 87, 158, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 149, 165, 178, 0, 0, 171, 172, 173, 174, 0, + 0, 0, 128, 91, 107, 146, 110, 117, 140, 176, + 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 131, 0, 0, 0, 83, 0, 114, 175, 139, 101, + 166, 99, 0, 0, 0, 0, 113, 0, 115, 0, + 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 81, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 131, 0, - 0, 145, 98, 97, 106, 0, 0, 0, 89, 0, - 137, 127, 157, 0, 128, 136, 110, 149, 132, 156, - 188, 164, 147, 163, 78, 146, 155, 87, 139, 80, - 153, 144, 116, 102, 103, 79, 0, 135, 92, 96, - 91, 124, 150, 151, 90, 171, 83, 162, 82, 84, - 161, 123, 148, 154, 117, 114, 81, 152, 115, 113, - 105, 94, 99, 129, 112, 130, 100, 120, 119, 121, - 0, 0, 0, 143, 159, 172, 0, 0, 165, 166, - 167, 168, 0, 0, 0, 122, 85, 101, 140, 104, - 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 77, 0, 108, - 169, 133, 95, 160, 93, 0, 0, 0, 0, 107, - 0, 109, 0, 0, 142, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, + 0, 137, 0, 0, 151, 104, 103, 112, 0, 0, + 0, 95, 0, 143, 133, 163, 0, 134, 142, 116, + 155, 138, 162, 194, 170, 153, 169, 84, 152, 161, + 93, 145, 86, 159, 150, 122, 108, 109, 85, 0, + 141, 98, 102, 97, 130, 156, 157, 96, 177, 89, + 168, 88, 90, 167, 129, 154, 160, 123, 120, 87, + 158, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 0, 0, 149, 165, 178, 0, + 0, 171, 172, 173, 174, 0, 0, 0, 128, 91, + 107, 146, 110, 117, 140, 176, 132, 144, 94, 164, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 83, 0, 114, 175, 139, 101, 166, 99, 0, 0, + 0, 0, 113, 0, 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 0, 0, 0, 131, 0, 0, 145, 98, 97, - 106, 0, 0, 0, 89, 0, 137, 127, 157, 0, - 128, 136, 110, 149, 132, 156, 188, 164, 147, 163, - 78, 146, 155, 87, 139, 80, 153, 144, 116, 102, - 103, 79, 0, 135, 92, 96, 91, 124, 150, 151, - 90, 171, 83, 162, 82, 84, 161, 123, 148, 154, - 117, 114, 81, 152, 115, 113, 105, 94, 99, 129, - 112, 130, 100, 120, 119, 121, 0, 0, 0, 143, - 159, 172, 0, 0, 165, 166, 167, 168, 0, 0, - 0, 122, 85, 101, 140, 104, 111, 134, 170, 126, - 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 77, 0, 108, 169, 133, 95, 160, - 93, 0, 0, 0, 0, 107, 0, 109, 0, 0, - 142, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 0, 193, 0, 0, 0, 0, 137, 0, 0, + 151, 104, 103, 112, 0, 0, 0, 95, 0, 143, + 133, 163, 0, 134, 142, 116, 155, 138, 162, 194, + 170, 153, 169, 84, 152, 161, 93, 145, 86, 159, + 150, 122, 108, 109, 85, 0, 141, 98, 102, 97, + 130, 156, 157, 96, 177, 89, 168, 88, 90, 167, + 129, 154, 160, 123, 120, 87, 158, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 149, 165, 178, 0, 0, 171, 172, 173, + 174, 0, 0, 0, 128, 91, 107, 146, 110, 117, + 140, 176, 132, 144, 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 0, 0, 83, 0, 114, 175, + 139, 101, 166, 99, 0, 0, 0, 0, 113, 0, + 115, 0, 0, 148, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, - 131, 0, 0, 145, 98, 97, 106, 0, 0, 0, - 89, 0, 137, 127, 157, 0, 128, 136, 110, 149, - 132, 156, 188, 164, 147, 163, 78, 146, 155, 87, - 139, 80, 153, 144, 116, 102, 103, 79, 0, 135, - 92, 96, 91, 124, 150, 151, 90, 171, 83, 162, - 82, 84, 161, 123, 148, 154, 117, 114, 81, 152, - 115, 113, 105, 94, 99, 129, 112, 130, 100, 120, - 119, 121, 0, 0, 0, 143, 159, 172, 0, 0, - 165, 166, 167, 168, 0, 0, 0, 122, 85, 101, - 140, 104, 111, 134, 170, 126, 138, 88, 158, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 108, 169, 133, 95, 160, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 0, 0, 137, 0, 0, 151, 104, 103, 112, + 0, 0, 0, 95, 0, 143, 133, 163, 0, 134, + 142, 116, 155, 138, 162, 194, 170, 153, 169, 84, + 152, 161, 93, 145, 86, 159, 150, 122, 108, 109, + 85, 0, 141, 98, 102, 97, 130, 156, 157, 96, + 177, 89, 168, 88, 90, 167, 129, 154, 160, 123, + 120, 87, 158, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 149, 165, + 178, 0, 0, 171, 172, 173, 174, 0, 0, 0, + 128, 91, 107, 146, 110, 117, 140, 176, 132, 144, + 94, 164, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 0, 114, 175, 139, 101, 166, } var yyPact = [...]int{ - 1560, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1563, -1000, -190, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 855, 901, -1000, -1000, -1000, -1000, -1000, + 504, 502, -1000, 679, 7483, 38, 67, -35, 10206, 63, + 308, 10884, -1000, -16, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 665, -1000, -1000, -1000, -1000, -1000, 836, 842, 716, + 827, 743, -1000, 5648, 35, 9075, 9980, 886, 681, 4949, + -1000, 493, 60, 10884, -156, 10432, 31, 31, 31, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 840, 882, -1000, -1000, -1000, -1000, -1000, -1000, 667, - 7614, 50, 71, -4, 10345, 69, 119, 11023, -1000, -9, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 620, -1000, -1000, - -1000, -1000, -1000, 826, 832, 677, 818, 746, -1000, 5769, - 44, 9214, 10119, 5064, -1000, 491, 64, 11023, -151, 10571, - 40, 40, 40, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1825,22 +1816,22 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62, + 10884, -1000, 10884, 29, 481, 29, 29, 29, 10884, -1000, + 98, -1000, -1000, -1000, -1000, 10884, 458, 786, 26, 2949, + 2949, 2949, 2949, -11, 2949, -114, 697, -1000, -1000, -1000, + -1000, 2949, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 500, 793, 6348, 6348, 855, -1000, 665, -1000, + -1000, -1000, 770, -1000, -1000, 253, 870, -1000, 7257, 97, + -1000, 6348, 1979, 432, -1000, -1000, 432, -1000, -1000, 78, + -1000, -1000, 6800, 6800, 6800, 6800, 6800, 6800, 6800, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 68, 11023, -1000, 11023, 38, 490, 38, - 38, 38, 11023, -1000, 105, -1000, -1000, -1000, -1000, 11023, - 482, 783, 30, 3080, 3080, 3080, 3080, -3, 3080, -93, - 699, -1000, -1000, -1000, -1000, 3080, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 339, 796, 6475, 6475, - 840, -1000, 620, -1000, -1000, -1000, 789, -1000, -1000, 270, - 855, -1000, 7388, 103, -1000, 6475, 2173, 614, -1000, -1000, - 614, -1000, -1000, 89, -1000, -1000, 6927, 6927, 6927, 6927, - 6927, 6927, 6927, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 614, -1000, 6240, - 614, 614, 614, 614, 614, 614, 614, 614, 6475, 614, - 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, - 614, 614, 614, 9893, 537, 712, -1000, -1000, -1000, 815, - 8301, 8988, 11023, 542, -1000, 610, 4816, -98, -1000, -1000, - -1000, 156, 8753, -1000, -1000, -1000, 779, -1000, -1000, -1000, + -1000, -1000, -1000, 432, -1000, 6117, 432, 432, 432, 432, + 432, 432, 432, 432, 6348, 432, 432, 432, 432, 432, + 432, 432, 432, 432, 432, 432, 432, 432, 432, 9754, + 556, 845, -1000, -1000, -1000, 823, 8166, 8849, 10884, 542, + -1000, 360, 10432, 621, 4699, -116, -1000, -1000, -1000, 218, + 8618, -1000, -1000, -1000, 784, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1850,267 +1841,268 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 489, -1000, 1631, 478, 3080, 51, 683, 477, 238, 473, - 11023, 11023, 3080, 46, 11023, 813, 696, 11023, 472, 470, - -1000, 4568, -1000, 3080, 3080, 3080, 3080, 3080, 3080, 3080, - 3080, -1000, -1000, -1000, -1000, -1000, -1000, 3080, 3080, -1000, - -82, -1000, 11023, -1000, -1000, -1000, -1000, 877, 132, 338, - 102, 612, -1000, 308, 826, 339, 746, 8527, 709, -1000, - -1000, 11023, -1000, 6475, 6475, 303, -1000, 9666, -1000, -1000, - 3576, 138, 6927, 336, 224, 6927, 6927, 6927, 6927, 6927, - 6927, 6927, 6927, 6927, 6927, 6927, 6927, 6927, 6927, 6927, - 354, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 439, -1000, 620, 518, 518, 113, 113, 113, 113, 113, - 113, 7153, 5299, 339, 467, 236, 6240, 5769, 5769, 6475, - 6475, 10797, 10797, 5769, 819, 191, 236, 10797, 339, -1000, - 339, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5769, 5769, - 5769, 5769, 18, 11023, -1000, 10797, 9214, 9214, 9214, 9214, - 9214, -1000, 727, 721, -1000, 729, 723, 740, 11023, -1000, - 457, 8301, 121, 614, -1000, 9440, -1000, -1000, 18, 594, - 9214, 11023, -1000, -1000, 4320, 610, -98, 605, -1000, -107, - -130, 6004, 112, -1000, -1000, -1000, -1000, 2832, 134, 253, - -75, -1000, -1000, -1000, 621, -1000, 621, 621, 621, 621, - -35, -35, -35, -35, -1000, -1000, -1000, -1000, -1000, 653, - 632, -1000, 621, 621, 621, -1000, -1000, -1000, -1000, -1000, + 499, -1000, 1980, 440, 2949, 49, 610, 435, 230, 433, + 10884, 10884, 2949, 46, 10884, 821, 696, 10884, 431, 425, + -1000, 4449, -1000, 2949, 2949, 2949, 2949, 2949, 2949, 2949, + 2949, -1000, -1000, -1000, -1000, -1000, -1000, 2949, 2949, -1000, + -86, -1000, 10884, -1000, -1000, -1000, -1000, 895, 142, 408, + 95, 642, -1000, 333, 836, 500, 743, 8392, 708, -1000, + -1000, 10884, -1000, 6348, 6348, 367, -1000, 9527, -1000, -1000, + 3449, 151, 6800, 312, 254, 6800, 6800, 6800, 6800, 6800, + 6800, 6800, 6800, 6800, 6800, 6800, 6800, 6800, 6800, 6800, + 320, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 421, -1000, 665, 517, 517, 124, 124, 124, 124, 124, + 124, 7026, 5186, 500, 468, 340, 6117, 5648, 5648, 6348, + 6348, 10658, 10658, 5648, 828, 197, 340, 10658, 500, -1000, + 500, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5648, 5648, + 5648, 5648, 10, 10884, -1000, 10658, 9075, 9075, 9075, 9075, + 9075, -1000, 739, 733, -1000, 711, 710, 734, 10884, -1000, + 457, 8166, 116, 432, -1000, 9301, -1000, -1000, 10, 543, + 9075, 10884, -1000, -1000, -1000, -1000, 622, -1000, 4199, 621, + -116, 616, -1000, -122, -129, 5879, 106, -1000, -1000, -1000, + -1000, 2699, 136, 258, -100, -1000, -1000, -1000, 660, -1000, + 660, 660, 660, 660, -46, -46, -46, -46, -1000, -1000, + -1000, -1000, -1000, 677, 675, -1000, 660, 660, 660, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 627, 627, 627, 623, 623, 689, -1000, 11023, -170, - 438, 3080, 812, 3080, -1000, 65, -1000, 11023, -1000, -1000, - 11023, 3080, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 210, -1000, -1000, - -1000, -1000, 751, 6475, 6475, 4072, 6475, -1000, -1000, -1000, - 796, -1000, 819, 830, -1000, 758, 757, 5769, -1000, -1000, - 138, 228, -1000, -1000, 284, -1000, -1000, -1000, -1000, 94, - 614, -1000, 1651, -1000, -1000, -1000, -1000, 336, 6927, 6927, - 6927, 404, 1651, 1626, 1158, 357, 113, 150, 150, 114, - 114, 114, 114, 114, 616, 616, -1000, -1000, -1000, 339, - -1000, -1000, -1000, 339, 5769, 607, -1000, -1000, 6475, -1000, - 339, 436, 436, 306, 358, 639, -1000, 93, 630, 436, - 5769, 243, -1000, 6475, 339, -161, -1000, 436, 339, 436, - 436, 502, 614, -1000, 611, -1000, 153, 712, 680, 695, - 760, -1000, -1000, -1000, -1000, 720, -1000, 717, -1000, -1000, - -1000, -1000, -1000, 63, 61, 55, 10571, -1000, 853, 9214, - 571, -1000, -1000, 605, -98, -91, -1000, -1000, -1000, 236, - -1000, 420, 601, 2584, -1000, -1000, -1000, -1000, -1000, -1000, - 625, 804, 183, 158, 406, -1000, -1000, 785, -1000, 249, - -81, -1000, -1000, 331, -35, -35, -1000, -1000, 112, 764, - 112, 112, 112, 356, 356, -1000, -1000, -1000, -1000, 295, - -1000, -1000, -1000, 288, -1000, 694, 10571, 3080, -1000, 3824, - -1000, -1000, -1000, -1000, -1000, -1000, 388, 275, 188, -1000, + -1000, -1000, -1000, -1000, -1000, 669, 669, 669, 664, 664, + 645, -1000, 10884, -174, 414, 2949, 815, 2949, -1000, 70, + -1000, 10884, -1000, -1000, 10884, 2949, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 17, -1000, 3080, -1000, 230, 11023, 11023, 744, 236, 236, - 83, -1000, -1000, 11023, -1000, -1000, -1000, -1000, 606, -1000, - -1000, -1000, 3328, 5769, -1000, 404, 1651, 1587, -1000, 6927, - 6927, -1000, -1000, 436, 5769, 236, -1000, -1000, -1000, 1297, - 354, 1297, 6927, 6927, 4072, 6927, 6927, -164, 604, 167, - -1000, 6475, 278, -1000, 614, -1000, -1000, -1000, -1000, 693, - 10797, 614, -1000, 8075, 10571, 840, 10797, 6475, 6475, -1000, - -1000, 6475, 624, -1000, 6475, -1000, -1000, -1000, 614, 614, - 614, 417, -1000, 840, 571, -1000, -1000, -1000, -127, -136, - -1000, -1000, 2832, -1000, 2832, 10571, -1000, 386, 363, -1000, - -1000, 691, 67, -1000, -1000, -1000, 495, 112, 112, -1000, - 198, -1000, -1000, -1000, 433, -1000, 430, 599, 427, 11023, - -1000, -1000, 597, -1000, 148, -1000, -1000, 10571, -1000, -1000, + -1000, 259, -1000, -1000, -1000, -1000, 753, 6348, 6348, 3949, + 6348, -1000, -1000, -1000, 793, -1000, 828, 889, -1000, 776, + 775, 5648, -1000, -1000, 151, 164, -1000, -1000, 345, -1000, + -1000, -1000, -1000, 94, 432, -1000, 1731, -1000, -1000, -1000, + -1000, 312, 6800, 6800, 6800, 123, 1731, 1629, 608, 587, + 124, 235, 235, 125, 125, 125, 125, 125, 430, 430, + -1000, -1000, -1000, 500, -1000, -1000, -1000, 500, 5648, 617, + -1000, -1000, 6348, -1000, 500, 455, 455, 275, 338, 644, + -1000, 87, 641, 455, 5648, 225, -1000, 6348, 500, -166, + -1000, 455, 500, 455, 455, 555, 432, -1000, 618, -1000, + 187, 845, 674, 692, 720, -1000, -1000, -1000, -1000, 732, + -1000, 719, -1000, -1000, -1000, -1000, -1000, 59, 58, 57, + 10432, -1000, 865, 9075, 597, -1000, 10432, -1000, 616, -116, + -101, -1000, -1000, -1000, 340, -1000, 412, 613, 2449, -1000, + -1000, -1000, -1000, -1000, -1000, 668, 800, 144, 135, 405, + -1000, -1000, 794, -1000, 239, -81, -1000, -1000, 307, -46, + -46, -1000, -1000, 106, 781, 106, 106, 106, 368, 368, + -1000, -1000, -1000, -1000, 294, -1000, -1000, -1000, 293, -1000, + 690, 10432, 2949, -1000, 3699, -1000, -1000, -1000, -1000, -1000, + -1000, 413, 183, 148, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 9, -1000, 2949, -1000, 236, + 10884, 10884, 750, 340, 340, 86, -1000, -1000, 10884, -1000, + -1000, -1000, -1000, 637, -1000, -1000, -1000, 3199, 5648, -1000, + 123, 1731, 1502, -1000, 6800, 6800, -1000, -1000, 455, 5648, + 340, -1000, -1000, -1000, 1782, 320, 1782, 6800, 6800, 3949, + 6800, 6800, -169, 568, 165, -1000, 6348, 284, -1000, 432, + -1000, -1000, -1000, -1000, 688, 10658, 432, -1000, 7940, 10432, + 855, 10658, 6348, 6348, -1000, -1000, 6348, 666, -1000, 6348, + -1000, -1000, -1000, 432, 432, 432, 439, -1000, 855, 597, + -1000, -1000, -1000, -1000, -126, -135, -1000, -1000, 2699, -1000, + 2699, 10432, -1000, 403, 394, -1000, -1000, 676, 91, -1000, + -1000, -1000, 509, 106, 106, -1000, 193, -1000, -1000, -1000, + 453, -1000, 451, 611, 448, 10884, -1000, -1000, 609, -1000, + 175, -1000, -1000, 10432, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 10432, 10884, -1000, -1000, + -1000, -1000, -1000, 10432, -1000, -1000, 361, 6348, -1000, -1000, + -1000, 3699, -1000, 865, 9075, -1000, -1000, 500, -1000, 6800, + 1731, 1731, -1000, -1000, 500, 660, 660, -1000, 660, 664, + -1000, 660, -25, 660, -26, 660, 660, 660, 660, 660, + 660, -1000, 500, 500, 1079, 1455, -1000, 700, 1400, 432, + -163, -1000, 340, 6348, 4, -1000, 795, 536, 581, -1000, + -1000, 5417, 500, 444, 85, 439, 836, -1000, 340, 340, + 340, 10432, 340, 10432, 10432, 10432, 7714, 10432, 836, -1000, + -1000, -1000, -1000, 2449, -1000, 429, -1000, 660, -1000, -1000, + -76, 893, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -46, 358, -46, 288, -1000, 280, 2949, + 3699, 2699, -1000, 588, -1000, -1000, -1000, -1000, 805, -1000, + 340, 861, 604, -1000, 1731, -1000, -1000, 80, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 10571, 11023, -1000, -1000, -1000, -1000, -1000, 10571, -1000, -1000, - 355, 6475, -1000, -1000, -1000, 3824, -1000, 853, 9214, -1000, - -1000, 339, -1000, 6927, 1651, 1651, -1000, -1000, 339, 621, - 621, -1000, 621, 623, -1000, 621, -18, 621, -19, 621, - 621, 621, 621, 621, 621, -1000, 339, 339, 1242, 1546, - -1000, 602, 1500, 614, -158, -1000, 236, 6475, 14, -1000, - 790, 511, 519, -1000, -1000, 5534, 339, 424, 82, 417, - 826, -1000, 236, 236, 236, 10571, 236, 10571, 10571, 10571, - 7849, 10571, 826, -1000, -1000, -1000, -1000, 2584, -1000, 412, - -1000, 621, -1000, -1000, -64, 875, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -35, 353, -35, - 287, -1000, 286, 3080, 3824, 2832, -1000, 618, -1000, -1000, - -1000, -1000, 808, -1000, 236, 850, 593, -1000, 1651, -1000, - -1000, 81, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6927, 6927, -1000, - 6927, 6927, 6927, 339, 340, 236, 836, 831, 803, -1000, - 614, -1000, -1000, 591, 10571, 10571, -1000, -1000, 410, -1000, - 392, 392, 392, 121, -1000, -1000, 101, 10571, -1000, 136, - -1000, -140, 112, -1000, 112, 494, 468, -1000, -1000, -1000, - 10571, 614, 843, 829, -1000, -1000, 1481, 1481, 1481, 1481, - 8, -1000, -1000, 828, 6475, 873, -1000, 614, -1000, 620, - 77, -1000, 10571, -1000, -1000, -1000, -1000, -1000, 101, -1000, - 361, 147, 333, -1000, 257, 802, -1000, 794, -1000, -1000, - -1000, -1000, -1000, 378, 13, -1000, 6475, 6475, -1000, -1000, - -1000, -1000, 339, 49, -173, 6475, 532, 236, 10797, 519, - 339, 10571, -1000, -1000, -1000, 279, -1000, -1000, -1000, 285, - -1000, -1000, 683, 376, -1000, 10571, 236, 510, -1000, 739, - -167, -180, 367, 6475, 500, -1000, -1000, -1000, -1000, -170, - -1000, 13, 756, -1000, 736, -1000, -1000, 236, -1000, -1000, - 10, -171, 1, -178, 614, -181, 6701, -1000, 1481, 339, - -1000, -1000, + -1000, -1000, -1000, 6800, 6800, -1000, 6800, 6800, 6800, 500, + 349, 340, 852, 841, 799, -1000, 432, -1000, -1000, 599, + 10432, 10432, -1000, -1000, 418, 411, 411, 411, 116, -1000, + -1000, 103, 10432, -1000, 133, -1000, -139, 106, -1000, 106, + 508, 506, -1000, -1000, -1000, 10432, 432, 857, 839, -1000, + -1000, 296, 296, 296, 296, 15, -1000, -1000, 838, 6348, + 892, -1000, 432, -1000, 665, 84, -1000, -1000, -1000, -1000, + -1000, -1000, 103, -1000, 384, 172, 347, -1000, 243, 798, + -1000, 797, -1000, -1000, -1000, -1000, -1000, 409, 2, -1000, + 6348, 6348, -1000, -1000, -1000, -1000, 500, 52, -181, 6348, + 594, 340, 10658, 581, 500, 10432, -1000, -1000, 264, -1000, + -1000, -1000, 315, -1000, -1000, 610, 399, -1000, 10432, 340, + 575, -1000, 749, -172, -184, 378, 6348, 519, -1000, -1000, + -1000, -1000, -174, -1000, 2, 771, -1000, 748, -1000, -1000, + 340, -1000, -1000, -1, -175, -4, -182, 432, -185, 6574, + -1000, 296, 500, -1000, -1000, } var yyPgo = [...]int{ - 0, 1087, 21, 556, 1081, 1080, 1079, 1078, 1077, 1075, - 1073, 1068, 1067, 1066, 1064, 1062, 1060, 1059, 1058, 1056, - 1055, 1051, 1048, 1047, 113, 1046, 1045, 1043, 65, 1042, - 63, 1041, 1040, 39, 158, 59, 36, 207, 1037, 33, - 61, 52, 1035, 42, 1034, 1033, 66, 1032, 54, 1031, - 1030, 1314, 1029, 1028, 14, 19, 1026, 1023, 1022, 1021, - 55, 381, 1020, 1019, 1018, 1017, 1016, 1014, 45, 12, - 8, 5, 15, 1013, 525, 7, 1012, 44, 1011, 1010, - 1008, 1007, 26, 6, 46, 1006, 1002, 1001, 18, 49, - 998, 20, 64, 34, 25, 2, 67, 53, 997, 30, - 57, 41, 996, 995, 359, 994, 992, 991, 988, 987, - 986, 159, 295, 985, 983, 982, 980, 43, 167, 974, - 90, 58, 978, 976, 975, 1480, 60, 51, 23, 973, - 29, 473, 32, 970, 969, 35, 966, 962, 958, 952, - 949, 946, 940, 308, 939, 938, 937, 24, 11, 936, - 934, 47, 17, 930, 929, 928, 40, 50, 927, 38, - 926, 925, 924, 923, 31, 28, 920, 13, 906, 10, - 902, 901, 4, 900, 16, 899, 9, 898, 3, 37, - 897, 893, 0, 27, 890, 889, 99, + 0, 1084, 56, 432, 1083, 1082, 1081, 1080, 1079, 1076, + 1075, 1073, 1069, 1068, 1065, 1064, 1062, 1061, 1059, 1058, + 1057, 1053, 1052, 1051, 1050, 1049, 103, 1048, 1046, 1045, + 58, 1043, 63, 1040, 1039, 32, 97, 35, 34, 177, + 1038, 17, 59, 54, 1037, 44, 1036, 1035, 67, 1034, + 55, 1033, 1032, 1385, 1028, 1027, 14, 23, 1026, 1025, + 1024, 1023, 49, 606, 1021, 1016, 1013, 1012, 1011, 1009, + 40, 8, 9, 12, 15, 1006, 252, 6, 1005, 39, + 1004, 1002, 1001, 1000, 28, 10, 41, 999, 997, 996, + 27, 42, 995, 11, 51, 30, 22, 5, 64, 48, + 994, 29, 43, 46, 993, 992, 389, 988, 985, 982, + 981, 979, 978, 135, 361, 977, 967, 966, 965, 31, + 169, 817, 179, 62, 963, 960, 958, 1333, 61, 53, + 20, 956, 24, 987, 37, 952, 951, 33, 949, 948, + 947, 946, 945, 944, 943, 675, 942, 941, 939, 18, + 26, 938, 937, 45, 21, 936, 935, 934, 36, 50, + 933, 47, 932, 931, 926, 925, 25, 19, 923, 13, + 922, 7, 920, 918, 2, 917, 16, 916, 3, 915, + 4, 38, 914, 913, 0, 145, 909, 907, 93, } var yyR1 = [...]int{ - 0, 180, 181, 181, 1, 1, 1, 1, 1, 1, + 0, 182, 183, 183, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 6, 3, 3, 4, 4, - 5, 5, 7, 7, 27, 27, 8, 9, 9, 9, - 184, 184, 46, 46, 92, 92, 10, 10, 10, 10, - 97, 97, 101, 101, 101, 102, 102, 102, 102, 133, - 133, 11, 11, 11, 11, 11, 11, 11, 178, 178, - 177, 176, 176, 175, 175, 174, 16, 161, 162, 162, - 162, 157, 136, 136, 136, 136, 139, 139, 137, 137, - 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, - 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 142, 142, 142, 142, 142, 142, 142, 142, 156, 156, - 143, 143, 151, 151, 152, 152, 152, 149, 149, 150, - 150, 153, 153, 153, 144, 144, 144, 144, 144, 144, - 144, 146, 146, 154, 154, 147, 147, 147, 148, 148, - 155, 155, 155, 155, 155, 145, 145, 158, 158, 170, - 170, 169, 169, 169, 160, 160, 166, 166, 166, 166, - 166, 159, 159, 168, 168, 167, 163, 163, 163, 164, - 164, 164, 165, 165, 165, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 173, 171, 171, 172, 172, - 13, 14, 14, 14, 14, 14, 15, 15, 17, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 109, 109, 106, 106, 107, 107, 108, 108, - 108, 110, 110, 110, 134, 134, 134, 19, 19, 21, - 21, 22, 23, 20, 20, 20, 20, 20, 185, 24, - 25, 25, 26, 26, 26, 30, 30, 30, 28, 28, - 29, 29, 35, 35, 34, 34, 36, 36, 36, 36, - 122, 122, 122, 121, 121, 38, 39, 39, 40, 40, - 41, 41, 41, 41, 53, 53, 91, 91, 93, 93, - 42, 42, 42, 42, 43, 43, 44, 44, 45, 45, - 129, 129, 128, 128, 128, 127, 127, 47, 47, 47, - 49, 48, 48, 48, 48, 50, 50, 52, 52, 51, - 51, 54, 54, 54, 54, 55, 55, 37, 37, 37, - 37, 37, 37, 37, 105, 105, 57, 57, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 67, 67, - 67, 67, 67, 67, 58, 58, 58, 58, 58, 58, - 58, 58, 33, 33, 68, 68, 68, 74, 69, 69, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 65, 65, 65, 63, 63, 63, 63, 63, 63, + 1, 1, 1, 1, 2, 2, 2, 6, 3, 3, + 4, 4, 5, 5, 7, 7, 29, 29, 8, 9, + 9, 9, 11, 11, 12, 12, 186, 186, 48, 48, + 94, 94, 10, 10, 10, 10, 99, 99, 103, 103, + 103, 104, 104, 104, 104, 135, 135, 13, 13, 13, + 13, 13, 13, 13, 180, 180, 179, 178, 178, 177, + 177, 176, 18, 163, 164, 164, 164, 159, 138, 138, + 138, 138, 141, 141, 139, 139, 139, 139, 139, 139, + 139, 140, 140, 140, 140, 140, 142, 142, 142, 142, + 142, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 144, 144, 144, 144, + 144, 144, 144, 144, 158, 158, 145, 145, 153, 153, + 154, 154, 154, 151, 151, 152, 152, 155, 155, 155, + 146, 146, 146, 146, 146, 146, 146, 148, 148, 156, + 156, 149, 149, 149, 150, 150, 157, 157, 157, 157, + 157, 147, 147, 160, 160, 172, 172, 171, 171, 171, + 162, 162, 168, 168, 168, 168, 168, 161, 161, 170, + 170, 169, 165, 165, 165, 166, 166, 166, 167, 167, + 167, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 175, 173, 173, 174, 174, 15, 16, 16, 16, + 16, 16, 17, 17, 19, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 111, 111, + 108, 108, 109, 109, 110, 110, 110, 112, 112, 112, + 136, 136, 136, 21, 21, 23, 23, 24, 25, 22, + 22, 22, 22, 22, 187, 26, 27, 27, 28, 28, + 28, 32, 32, 32, 30, 30, 31, 31, 37, 37, + 36, 36, 38, 38, 38, 38, 124, 124, 124, 123, + 123, 40, 41, 41, 42, 42, 43, 43, 43, 43, + 55, 55, 93, 93, 95, 95, 44, 44, 44, 44, + 45, 45, 46, 46, 47, 47, 131, 131, 130, 130, + 130, 129, 129, 49, 49, 49, 51, 50, 50, 50, + 50, 52, 52, 54, 54, 53, 53, 56, 56, 56, + 56, 57, 57, 39, 39, 39, 39, 39, 39, 39, + 107, 107, 59, 59, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 69, 69, 69, 69, 69, 69, + 60, 60, 60, 60, 60, 60, 60, 60, 35, 35, + 70, 70, 70, 76, 71, 71, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 86, 86, 87, 87, 64, 64, 64, 64, 64, 64, - 64, 64, 186, 186, 66, 66, 66, 66, 31, 31, - 31, 31, 31, 132, 132, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 78, 78, 32, 32, 76, - 76, 77, 79, 79, 75, 75, 75, 60, 60, 60, - 60, 60, 60, 60, 60, 62, 62, 62, 80, 80, - 81, 81, 82, 82, 83, 83, 84, 85, 85, 85, - 88, 88, 88, 88, 89, 89, 89, 59, 59, 59, - 59, 59, 59, 90, 90, 90, 90, 94, 94, 70, - 70, 72, 72, 71, 73, 95, 95, 99, 96, 96, - 100, 100, 100, 98, 98, 98, 124, 124, 124, 103, - 103, 111, 111, 112, 112, 104, 104, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 114, 114, 114, - 115, 115, 116, 116, 116, 123, 123, 119, 119, 120, - 120, 125, 125, 126, 126, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 182, 183, 130, 131, 131, - 131, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 67, 67, 67, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 88, 88, 89, 89, + 66, 66, 66, 66, 66, 66, 66, 66, 188, 188, + 68, 68, 68, 68, 33, 33, 33, 33, 33, 134, + 134, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 80, 80, 34, 34, 78, 78, 79, 81, 81, + 77, 77, 77, 62, 62, 62, 62, 62, 62, 62, + 62, 64, 64, 64, 82, 82, 83, 83, 84, 84, + 85, 85, 86, 87, 87, 87, 90, 90, 90, 90, + 91, 91, 91, 61, 61, 61, 61, 61, 61, 92, + 92, 92, 92, 96, 96, 72, 72, 74, 74, 73, + 75, 97, 97, 101, 98, 98, 102, 102, 102, 100, + 100, 100, 126, 126, 126, 105, 105, 113, 113, 114, + 114, 106, 106, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 116, 116, 116, 117, 117, 118, 118, + 118, 125, 125, 121, 121, 122, 122, 127, 127, 128, + 128, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 184, 185, 132, 133, 133, 133, } var yyR2 = [...]int{ 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 6, 7, 5, 10, 6, 1, 3, - 1, 3, 7, 8, 1, 1, 8, 8, 7, 6, - 1, 1, 1, 3, 0, 4, 3, 4, 5, 4, - 1, 3, 3, 2, 2, 2, 2, 2, 1, 1, - 1, 2, 8, 4, 6, 5, 5, 5, 0, 2, - 1, 0, 2, 1, 3, 3, 4, 4, 1, 3, - 3, 8, 3, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 1, 2, 2, 2, 1, 4, 4, 2, 2, 3, - 3, 3, 3, 1, 1, 1, 1, 1, 6, 6, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 3, 0, 5, 0, 3, 5, 0, 1, 0, - 1, 0, 1, 2, 0, 2, 2, 2, 2, 2, - 2, 0, 3, 0, 1, 0, 3, 3, 0, 2, - 0, 2, 1, 2, 1, 0, 2, 5, 4, 1, - 2, 2, 3, 2, 0, 1, 2, 3, 3, 2, - 2, 1, 1, 1, 3, 2, 0, 1, 3, 1, - 2, 3, 1, 1, 1, 6, 7, 7, 12, 7, - 7, 7, 4, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 7, 1, 3, 8, 8, - 5, 4, 6, 5, 4, 4, 3, 2, 3, 4, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, - 3, 4, 3, 6, 4, 2, 4, 2, 2, 2, - 2, 3, 1, 1, 0, 1, 0, 1, 0, 2, - 2, 0, 2, 2, 0, 1, 1, 2, 1, 1, - 2, 1, 1, 2, 2, 2, 2, 2, 0, 2, - 0, 2, 1, 2, 2, 0, 1, 1, 0, 1, - 0, 1, 0, 1, 1, 3, 1, 2, 3, 5, - 0, 1, 2, 1, 1, 2, 1, 3, 1, 1, - 1, 1, 3, 3, 3, 7, 1, 3, 1, 3, - 4, 4, 4, 3, 2, 4, 0, 1, 0, 2, - 0, 1, 0, 1, 2, 1, 1, 1, 2, 2, - 1, 2, 3, 2, 3, 2, 2, 2, 1, 1, - 3, 0, 5, 5, 5, 0, 2, 1, 3, 3, - 2, 3, 1, 2, 0, 3, 1, 1, 3, 3, - 4, 4, 5, 3, 4, 5, 6, 2, 1, 2, - 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 2, 1, 1, 1, 3, 1, 3, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, - 1, 4, 5, 6, 4, 4, 6, 6, 6, 6, - 8, 8, 6, 8, 8, 9, 7, 5, 4, 10, - 0, 3, 1, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 2, 4, 4, 4, 4, 0, 3, - 4, 7, 3, 1, 1, 2, 3, 3, 1, 2, - 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, - 2, 2, 2, 2, 1, 0, 1, 0, 2, 1, - 2, 4, 0, 2, 1, 3, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 0, 3, - 0, 2, 0, 3, 1, 3, 2, 0, 1, 1, - 0, 2, 4, 4, 0, 2, 4, 2, 1, 3, - 5, 4, 6, 1, 3, 3, 5, 0, 5, 1, - 3, 1, 2, 3, 1, 1, 3, 3, 1, 3, - 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, - 1, 0, 2, 0, 3, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 1, 0, 1, 1, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 4, 6, 7, 5, 10, 6, + 1, 3, 1, 3, 7, 8, 1, 1, 8, 8, + 7, 6, 4, 4, 2, 4, 1, 1, 1, 3, + 0, 4, 3, 4, 5, 4, 1, 3, 3, 2, + 2, 2, 2, 2, 1, 1, 1, 2, 8, 4, + 6, 5, 5, 5, 0, 2, 1, 0, 2, 1, + 3, 3, 4, 4, 1, 3, 3, 8, 3, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, + 1, 4, 4, 2, 2, 3, 3, 3, 3, 1, + 1, 1, 1, 1, 6, 6, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 3, 0, 5, + 0, 3, 5, 0, 1, 0, 1, 0, 1, 2, + 0, 2, 2, 2, 2, 2, 2, 0, 3, 0, + 1, 0, 3, 3, 0, 2, 0, 2, 1, 2, + 1, 0, 2, 5, 4, 1, 2, 2, 3, 2, + 0, 1, 2, 3, 3, 2, 2, 1, 1, 1, + 3, 2, 0, 1, 3, 1, 2, 3, 1, 1, + 1, 6, 7, 7, 12, 7, 7, 7, 4, 5, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 7, 1, 3, 8, 8, 5, 4, 6, 5, + 4, 4, 3, 2, 3, 4, 4, 4, 4, 4, + 4, 4, 4, 3, 3, 3, 3, 4, 3, 6, + 4, 2, 4, 2, 2, 2, 2, 3, 1, 1, + 0, 1, 0, 1, 0, 2, 2, 0, 2, 2, + 0, 1, 1, 2, 1, 1, 2, 1, 1, 2, + 2, 2, 2, 2, 0, 2, 0, 2, 1, 2, + 2, 0, 1, 1, 0, 1, 0, 1, 0, 1, + 1, 3, 1, 2, 3, 5, 0, 1, 2, 1, + 1, 2, 1, 3, 1, 1, 1, 1, 3, 3, + 3, 7, 1, 3, 1, 3, 4, 4, 4, 3, + 2, 4, 0, 1, 0, 2, 0, 1, 0, 1, + 2, 1, 1, 1, 2, 2, 1, 2, 3, 2, + 3, 2, 2, 2, 1, 1, 3, 0, 5, 5, + 5, 0, 2, 1, 3, 3, 2, 3, 1, 2, + 0, 3, 1, 1, 3, 3, 4, 4, 5, 3, + 4, 5, 6, 2, 1, 2, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, + 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, + 2, 2, 3, 1, 1, 1, 1, 4, 5, 6, + 4, 4, 6, 6, 6, 6, 8, 8, 6, 8, + 8, 9, 7, 5, 4, 10, 0, 3, 1, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, + 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, + 1, 2, 3, 3, 1, 2, 2, 1, 2, 1, + 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 0, 1, 0, 2, 1, 2, 4, 0, 2, + 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 0, 3, 0, 2, 0, 3, + 1, 3, 2, 0, 1, 1, 0, 2, 4, 4, + 0, 2, 4, 2, 1, 3, 5, 4, 6, 1, + 3, 3, 5, 0, 5, 1, 3, 1, 2, 3, + 1, 1, 3, 3, 1, 3, 3, 3, 3, 1, + 2, 1, 1, 1, 1, 1, 1, 0, 2, 0, + 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, + 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2130,296 +2122,297 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, - 1, + 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -180, -1, -2, -6, -7, -8, -9, -10, -11, - -12, -13, -14, -15, -17, -18, -19, -21, -22, -23, - -20, -3, -4, 6, 7, -27, 9, 10, 30, -16, - 113, 114, 116, 115, 141, 117, 134, 49, 153, 154, - 156, 157, 25, 135, 136, 139, 140, -182, 8, 236, - 53, -181, 253, -82, 15, -26, 5, -24, -185, -24, - -24, -24, -24, -24, -161, 53, -116, 122, 70, 149, - 228, 119, 120, 126, -119, 56, -118, 246, 153, 164, - 158, 185, 177, 175, 178, 215, 65, 156, 224, 137, - 173, 169, 167, 27, 190, 251, 168, 132, 131, 191, - 195, 216, 162, 163, 218, 189, 133, 32, 248, 34, - 145, 219, 193, 188, 184, 187, 161, 183, 38, 197, - 196, 198, 214, 180, 170, 18, 222, 140, 143, 192, - 194, 127, 147, 250, 220, 166, 144, 139, 223, 157, - 217, 226, 37, 202, 160, 130, 154, 151, 181, 146, - 171, 172, 186, 159, 182, 155, 148, 141, 225, 203, - 252, 179, 176, 152, 150, 207, 208, 209, 210, 249, - 221, 174, 204, -104, 122, 124, 120, 120, 121, 122, - 228, 119, 120, -51, -125, 56, -118, 122, 149, 120, - 107, 178, 113, 205, 121, 32, 147, -134, 120, -106, - 150, 207, 208, 209, 210, 56, 217, 216, 211, -125, - 155, -130, -130, -130, -130, -130, -2, -88, 17, 16, - -5, -3, -182, 6, 20, 21, -30, 39, 40, -25, - -36, 98, -37, -125, -56, 72, -61, 29, 56, -118, - 23, -60, -57, -75, -73, -74, 107, 108, 96, 97, - 104, 73, 109, -65, -63, -64, -66, 58, 57, 66, - 59, 60, 61, 62, 67, 68, 69, -119, -71, -182, - 43, 44, 237, 238, 239, 240, 245, 241, 75, 33, - 243, 227, 235, 234, 233, 231, 232, 229, 230, 125, - 228, 102, 236, -104, -39, -40, -41, -42, -53, -74, - -182, -51, 11, -46, -51, -96, -133, 155, -100, 217, - 216, -120, -98, -119, -117, 215, 178, 214, 118, 71, - 22, 24, 200, 74, 107, 16, 75, 106, 237, 113, - 47, 229, 230, 227, 239, 240, 228, 205, 29, 10, - 25, 135, 21, 100, 115, 78, 79, 138, 23, 136, - 69, 19, 50, 11, 13, 14, 125, 124, 90, 121, - 45, 8, 109, 26, 87, 41, 28, 43, 88, 17, - 231, 232, 31, 245, 142, 102, 48, 35, 72, 67, - 51, 70, 15, 46, 89, 116, 236, 44, 119, 6, - 242, 30, 134, 42, 120, 206, 77, 123, 68, 5, - 126, 9, 49, 52, 233, 234, 235, 33, 76, 12, - -162, -157, 56, 121, -51, 236, -119, -112, 125, -112, - -112, 120, -51, -51, -111, 125, 56, -111, -111, -111, - -51, 110, -51, 56, 30, 228, 56, 147, 120, 148, - 122, -131, -182, -120, -131, -131, -131, 151, 152, -131, - -107, 212, 51, -131, -183, 55, -89, 19, 31, -37, - -125, -83, -84, -37, -82, -2, -24, 35, -28, 21, - 64, 11, -122, 71, 70, 87, -121, 22, -119, 58, - 110, -37, -58, 90, 72, 88, 89, 74, 93, 92, - 103, 96, 97, 98, 99, 100, 101, 102, 94, 95, - 106, 80, 81, 82, 83, 84, 85, 86, 91, -105, - -182, -74, -182, 111, 112, -61, -61, -61, -61, -61, - -61, -61, -182, -2, -69, -37, -182, -182, -182, -182, - -182, -182, -182, -182, -182, -78, -37, -182, -182, -186, - -182, -186, -186, -186, -186, -186, -186, -186, -182, -182, - -182, -182, -52, 26, -51, 30, 54, -47, -49, -48, - -50, 41, 45, 47, 42, 43, 44, 48, -129, 22, - -39, -182, -128, 143, -127, 22, -125, 58, -51, -46, - -184, 54, 11, 52, 54, -96, 155, -97, -101, 218, - 220, 80, -124, -119, 58, 29, 30, 55, 54, -136, - -139, -141, -140, -142, -137, -138, 175, 176, 107, 179, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 30, 137, 171, 172, 173, 174, 191, 192, 193, 194, - 195, 196, 197, 198, 158, 159, 160, 161, 162, 163, - 164, 166, 167, 168, 169, 170, 56, -131, 122, -178, - 52, 56, 72, 56, -51, -51, -131, 123, -51, 23, - 51, -51, 56, 56, -126, -125, -117, -131, -131, -131, - -131, -131, -131, -131, -131, -131, -131, -109, 206, 213, - -51, 9, 90, 54, 18, 110, 54, -85, 24, 25, - -88, -183, -30, -62, -119, 59, 62, -29, 42, -51, - -37, -37, -67, 67, 72, 68, 69, -121, 98, -126, - -120, -117, -61, -68, -71, -74, 63, 90, 88, 89, - 74, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -132, 56, 58, 56, - -60, -60, -119, -35, 21, -34, -36, -183, 54, -183, - -2, -34, -34, -37, -37, -75, -119, -125, -75, -34, - -28, -76, -77, 76, -75, -183, -183, -34, -35, -34, - -34, -92, 143, -51, -95, -99, -75, -40, -41, -41, - -40, -41, 41, 41, 41, 46, 41, 46, 41, -48, - -125, -183, -54, 49, 124, 50, -182, -127, -92, 52, - -39, -51, -100, -97, 54, 219, 221, 222, 51, -37, - -148, 106, -163, -164, -165, -120, 58, 59, -157, -158, - -166, 127, 130, 126, -159, 121, 28, -153, 67, 72, - -149, 203, -143, 53, -143, -143, -143, -143, -147, 178, - -147, -147, -147, 53, 53, -143, -143, -143, -151, 53, - -151, -151, -152, 53, -152, -123, 52, -51, -176, 249, - -177, 56, -131, 23, -131, -113, 118, 115, 116, -173, - 114, 200, 178, 65, 29, 15, 237, 143, 252, 56, - 144, -51, -51, -131, -108, 11, 90, 37, -37, -37, - -126, -84, -89, -103, 19, 11, 33, 33, -34, 67, - 68, 69, 110, -182, -68, -61, -61, -61, -33, 138, - 71, -183, -183, -34, 54, -37, -183, -183, -183, 54, - 52, 22, 54, 11, 110, 54, 11, -183, -34, -79, - -77, 78, -37, -183, 244, -183, -183, -183, -183, -59, - 30, 33, -2, -182, -182, -55, 54, 12, 80, -44, - -43, 51, 52, -45, 51, -43, 41, 41, 121, 121, - 121, -93, -119, -55, -39, -55, -101, -102, 223, 220, - 226, 56, 54, -165, 80, 53, 28, -159, -159, 56, - 56, -144, 29, 67, -150, 204, 59, -147, -147, -148, - 30, -148, -148, -148, -156, 58, -156, 59, 59, 51, - -119, -131, -175, -174, -120, -130, -179, 149, 128, 129, - 132, 131, 56, 121, 28, 127, 130, 143, 126, -179, - 149, -114, -115, 123, 22, 121, 28, 143, -131, -110, - 88, 12, -125, -125, 38, 110, -51, -38, 11, 98, - -120, -35, -33, 71, -61, -61, -183, -36, -135, 107, - 175, 137, 173, 169, 189, 180, 202, 171, 203, 172, - 162, 159, 160, 161, 164, 58, -132, -135, -61, -61, - -120, -61, -61, 246, -82, 79, -37, 77, -182, -94, - 51, -95, -70, -72, -71, -182, -2, -90, -119, -93, - -82, -99, -37, -37, -37, 53, -37, -182, -182, -182, - -183, 54, -82, -55, 220, 224, 225, -164, -165, -168, - -167, -119, 56, 56, -146, 51, 58, 59, 60, 67, - 227, 66, 55, -148, -148, 56, 107, 55, 54, 55, - 54, 55, 54, -51, 54, 80, -130, -119, -130, -119, - -51, -130, -119, 58, -37, -55, -39, -183, -61, -183, - -143, -143, -143, -152, -143, 163, -143, 163, -143, -143, - -143, -143, -143, -143, -183, -183, -183, 54, 19, -183, - 54, 19, -182, -32, 242, -37, -86, 143, 27, -94, - 54, -183, -183, -183, 54, 110, -183, -88, -91, -119, - -91, -91, -91, -128, -119, -88, 55, 54, -143, -154, - 200, 9, -147, 58, -147, 59, 59, -131, -174, -165, - 53, 26, -80, 13, -147, 56, -61, -61, -61, -61, - -61, -183, 58, 15, 16, 28, -72, 33, -2, -182, - -119, -119, 54, 55, -183, -183, -183, -54, -170, -169, - 52, 133, 65, -167, -155, 127, 28, 126, 227, -148, - -148, 55, 55, -91, -182, -81, 14, 16, -183, -183, - -183, -183, -31, 90, 249, 16, -87, -37, 9, -70, - -2, 110, -119, -169, 56, -160, 80, 58, -145, 65, - 28, 28, 55, -171, -172, 143, -37, -69, -183, 247, - 48, 250, -83, 54, -95, -183, -119, 59, 58, -178, - -183, 54, -119, 38, 248, 251, -183, -37, -176, -172, - 33, 38, 145, 249, 146, 250, -182, 251, -61, 142, - -183, -183, + -1000, -182, -1, -2, -6, -7, -8, -9, -11, -12, + -10, -13, -14, -15, -16, -17, -19, -20, -21, -23, + -24, -25, -22, -3, -4, 6, 7, -29, 9, 10, + 20, 21, 32, -18, 115, 116, 118, 117, 143, 119, + 136, 51, 155, 156, 158, 159, 27, 137, 138, 141, + 142, -184, 8, 238, 55, -183, 255, -84, 15, -28, + 5, -26, -187, -26, -26, -26, -26, 58, 58, -26, + -163, 55, -118, 124, 72, 151, 230, 121, 122, 128, + -121, 58, -120, 248, 155, 166, 160, 187, 179, 177, + 180, 217, 67, 158, 226, 139, 175, 171, 169, 29, + 192, 253, 170, 134, 133, 193, 197, 218, 164, 165, + 220, 191, 135, 34, 250, 36, 147, 221, 195, 190, + 186, 189, 163, 185, 40, 199, 198, 200, 216, 182, + 172, 18, 224, 142, 145, 194, 196, 129, 149, 252, + 222, 168, 146, 141, 225, 159, 219, 228, 39, 204, + 162, 132, 156, 153, 183, 148, 173, 174, 188, 161, + 184, 157, 150, 143, 227, 205, 254, 181, 178, 154, + 152, 209, 210, 211, 212, 251, 223, 176, 206, -106, + 124, 126, 122, 122, 123, 124, 230, 121, 122, -53, + -127, 58, -120, 124, 151, 122, 109, 180, 115, 207, + 123, 34, 149, -136, 122, -108, 152, 209, 210, 211, + 212, 58, 219, 218, 213, -127, 157, -132, -132, -132, + -132, -132, -2, -90, 17, 16, -5, -3, -184, 6, + 22, 23, -32, 41, 42, -27, -38, 100, -39, -127, + -58, 74, -63, 31, 58, -120, 25, -62, -59, -77, + -75, -76, 109, 110, 98, 99, 106, 75, 111, -67, + -65, -66, -68, 60, 59, 68, 61, 62, 63, 64, + 69, 70, 71, -121, -73, -184, 45, 46, 239, 240, + 241, 242, 247, 243, 77, 35, 245, 229, 237, 236, + 235, 233, 234, 231, 232, 127, 230, 104, 238, -106, + -41, -42, -43, -44, -55, -76, -184, -53, 11, -48, + -53, 11, 54, -98, -135, 157, -102, 219, 218, -122, + -100, -121, -119, 217, 180, 216, 120, 73, 24, 26, + 202, 76, 109, 16, 77, 108, 239, 115, 49, 231, + 232, 229, 241, 242, 230, 207, 31, 10, 27, 137, + 23, 102, 117, 80, 81, 140, 25, 138, 71, 19, + 52, 11, 13, 14, 127, 126, 92, 123, 47, 8, + 111, 28, 89, 43, 30, 45, 90, 17, 233, 234, + 33, 247, 144, 104, 50, 37, 74, 69, 53, 72, + 15, 48, 91, 118, 238, 46, 121, 6, 244, 32, + 136, 44, 122, 208, 79, 125, 70, 5, 128, 9, + 51, 54, 235, 236, 237, 35, 78, 12, 20, 21, + -164, -159, 58, 123, -53, 238, -121, -114, 127, -114, + -114, 122, -53, -53, -113, 127, 58, -113, -113, -113, + -53, 112, -53, 58, 32, 230, 58, 149, 122, 150, + 124, -133, -184, -122, -133, -133, -133, 153, 154, -133, + -109, 214, 53, -133, -185, 57, -91, 19, 33, -39, + -127, -85, -86, -39, -84, -2, -26, 37, -30, 23, + 66, 11, -124, 73, 72, 89, -123, 24, -121, 60, + 112, -39, -60, 92, 74, 90, 91, 76, 95, 94, + 105, 98, 99, 100, 101, 102, 103, 104, 96, 97, + 108, 82, 83, 84, 85, 86, 87, 88, 93, -107, + -184, -76, -184, 113, 114, -63, -63, -63, -63, -63, + -63, -63, -184, -2, -71, -39, -184, -184, -184, -184, + -184, -184, -184, -184, -184, -80, -39, -184, -184, -188, + -184, -188, -188, -188, -188, -188, -188, -188, -184, -184, + -184, -184, -54, 28, -53, 32, 56, -49, -51, -50, + -52, 43, 47, 49, 44, 45, 46, 50, -131, 24, + -41, -184, -130, 145, -129, 24, -127, 60, -53, -48, + -186, 56, 11, 54, 60, 64, -93, -121, 56, -98, + 157, -99, -103, 220, 222, 82, -126, -121, 60, 31, + 32, 57, 56, -138, -141, -143, -142, -144, -139, -140, + 177, 178, 109, 181, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 32, 139, 173, 174, 175, 176, + 193, 194, 195, 196, 197, 198, 199, 200, 160, 161, + 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, + 58, -133, 124, -180, 54, 58, 74, 58, -53, -53, + -133, 125, -53, 25, 53, -53, 58, 58, -128, -127, + -119, -133, -133, -133, -133, -133, -133, -133, -133, -133, + -133, -111, 208, 215, -53, 9, 92, 56, 18, 112, + 56, -87, 26, 27, -90, -185, -32, -64, -121, 61, + 64, -31, 44, -53, -39, -39, -69, 69, 74, 70, + 71, -123, 100, -128, -122, -119, -63, -70, -73, -76, + 65, 92, 90, 91, 76, -63, -63, -63, -63, -63, + -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, + -134, 58, 60, 58, -62, -62, -121, -37, 23, -36, + -38, -185, 56, -185, -2, -36, -36, -39, -39, -77, + -121, -127, -77, -36, -30, -78, -79, 78, -77, -185, + -185, -36, -37, -36, -36, -94, 145, -53, -97, -101, + -77, -42, -43, -43, -42, -43, 43, 43, 43, 48, + 43, 48, 43, -50, -127, -185, -56, 51, 126, 52, + -184, -129, -94, 54, -41, -53, 56, -102, -99, 56, + 221, 223, 224, 53, -39, -150, 108, -165, -166, -167, + -122, 60, 61, -159, -160, -168, 129, 132, 128, -161, + 123, 30, -155, 69, 74, -151, 205, -145, 55, -145, + -145, -145, -145, -149, 180, -149, -149, -149, 55, 55, + -145, -145, -145, -153, 55, -153, -153, -154, 55, -154, + -125, 54, -53, -178, 251, -179, 58, -133, 25, -133, + -115, 120, 117, 118, -175, 116, 202, 180, 67, 31, + 15, 239, 145, 254, 58, 146, -53, -53, -133, -110, + 11, 92, 39, -39, -39, -128, -86, -91, -105, 19, + 11, 35, 35, -36, 69, 70, 71, 112, -184, -70, + -63, -63, -63, -35, 140, 73, -185, -185, -36, 56, + -39, -185, -185, -185, 56, 54, 24, 56, 11, 112, + 56, 11, -185, -36, -81, -79, 80, -39, -185, 246, + -185, -185, -185, -185, -61, 32, 35, -2, -184, -184, + -57, 56, 12, 82, -46, -45, 53, 54, -47, 53, + -45, 43, 43, 123, 123, 123, -95, -121, -57, -41, + -57, -121, -103, -104, 225, 222, 228, 58, 56, -167, + 82, 55, 30, -161, -161, 58, 58, -146, 31, 69, + -152, 206, 61, -149, -149, -150, 32, -150, -150, -150, + -158, 60, -158, 61, 61, 53, -121, -133, -177, -176, + -122, -132, -181, 151, 130, 131, 134, 133, 58, 123, + 30, 129, 132, 145, 128, -181, 151, -116, -117, 125, + 24, 123, 30, 145, -133, -112, 90, 12, -127, -127, + 40, 112, -53, -40, 11, 100, -122, -37, -35, 73, + -63, -63, -185, -38, -137, 109, 177, 139, 175, 171, + 191, 182, 204, 173, 205, 174, 164, 161, 162, 163, + 166, 60, -134, -137, -63, -63, -122, -63, -63, 248, + -84, 81, -39, 79, -184, -96, 53, -97, -72, -74, + -73, -184, -2, -92, -121, -95, -84, -101, -39, -39, + -39, 55, -39, -184, -184, -184, -185, 56, -84, -57, + 222, 226, 227, -166, -167, -170, -169, -121, 58, 58, + -148, 53, 60, 61, 62, 69, 229, 68, 57, -150, + -150, 58, 109, 57, 56, 57, 56, 57, 56, -53, + 56, 82, -132, -121, -132, -121, -53, -132, -121, 60, + -39, -57, -41, -185, -63, -185, -145, -145, -145, -154, + -145, 165, -145, 165, -145, -145, -145, -145, -145, -145, + -185, -185, -185, 56, 19, -185, 56, 19, -184, -34, + 244, -39, -88, 145, 29, -96, 56, -185, -185, -185, + 56, 112, -185, -90, -93, -93, -93, -93, -130, -121, + -90, 57, 56, -145, -156, 202, 9, -149, 60, -149, + 61, 61, -133, -176, -167, 55, 28, -82, 13, -149, + 58, -63, -63, -63, -63, -63, -185, 60, 15, 16, + 30, -74, 35, -2, -184, -121, -121, 57, -185, -185, + -185, -56, -172, -171, 54, 135, 67, -169, -157, 129, + 30, 128, 229, -150, -150, 57, 57, -93, -184, -83, + 14, 16, -185, -185, -185, -185, -33, 92, 251, 16, + -89, -39, 9, -72, -2, 112, -171, 58, -162, 82, + 60, -147, 67, 30, 30, 57, -173, -174, 145, -39, + -71, -185, 249, 50, 252, -85, 56, -97, -185, -121, + 61, 60, -180, -185, 56, -121, 40, 250, 253, -185, + -39, -178, -174, 35, 40, 147, 251, 148, 252, -184, + 253, -63, 144, -185, -185, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 522, 0, 278, 278, 278, 278, 278, 278, 0, - 592, 575, 0, 0, 0, 0, -2, 268, 269, 0, - 271, 272, 797, 797, 797, 797, 797, 0, 34, 35, - 795, 1, 3, 530, 0, 0, 282, 285, 280, 0, - 575, 0, 0, 0, 61, 0, 0, 784, 0, 785, - 573, 573, 573, 593, 594, 597, 598, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, - 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, - 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 781, 782, 783, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 0, 0, 576, 0, 571, 0, 571, - 571, 571, 0, 227, 349, 601, 602, 784, 785, 0, - 0, 0, 0, 798, 798, 798, 798, 0, 798, 256, - 245, 247, 248, 249, 250, 798, 265, 266, 255, 267, - 270, 273, 274, 275, 276, 277, 28, 534, 0, 0, - 522, 30, 0, 278, 283, 284, 288, 286, 287, 279, - 0, 296, 300, 0, 357, 0, 362, 364, -2, -2, - 0, 400, 401, 402, 403, 404, 0, 0, 0, 0, - 0, 0, 0, 427, 428, 429, 430, 507, 508, 509, - 510, 511, 512, 513, 514, 366, 367, 504, 554, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, - 0, 462, 462, 462, 462, 462, 462, 462, 462, 0, - 0, 0, 0, 0, 0, 306, 308, 309, 310, -2, - 0, 332, 0, 0, 42, 46, 0, 775, 558, -2, - -2, 0, 0, 599, 600, -2, 704, -2, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 0, 78, 0, 0, 798, 0, 68, 0, 0, 0, - 0, 0, 798, 0, 0, 0, 0, 0, 0, 0, - 226, 0, 228, 798, 798, 798, 798, 798, 798, 798, - 798, 237, 799, 800, 238, 239, 240, 798, 798, 242, - 0, 257, 0, 251, 29, 796, 22, 0, 0, 531, - 0, 523, 524, 527, 530, 28, 285, 0, 290, 289, - 281, 0, 297, 0, 0, 0, 301, 0, 303, 304, - 0, 360, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 384, 385, 386, 387, 388, 389, 390, 391, 363, - 0, 377, 0, 0, 0, 420, 421, 422, 423, 424, - 425, 0, 292, 28, 0, 398, 0, 0, 0, 0, - 0, 0, 0, 0, 288, 0, 496, 0, 0, 454, - 0, 455, 456, 457, 458, 459, 460, 461, 0, 292, - 0, 0, 44, 0, 348, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 340, 0, 0, 0, 0, 331, - 0, 0, 351, 748, 333, 0, 335, 336, -2, 0, - 0, 0, 40, 41, 0, 47, 775, 49, 50, 0, - 0, 0, 158, 566, 567, 568, 564, 186, 0, 141, - 137, 83, 84, 85, 130, 87, 130, 130, 130, 130, - 155, 155, 155, 155, 113, 114, 115, 116, 117, 0, - 0, 100, 130, 130, 130, 104, 120, 121, 122, 123, - 124, 125, 126, 127, 88, 89, 90, 91, 92, 93, - 94, 132, 132, 132, 134, 134, 595, 63, 0, 71, - 0, 798, 0, 798, 76, 0, 202, 0, 221, 572, - 0, 798, 224, 225, 350, 603, 604, 229, 230, 231, - 232, 233, 234, 235, 236, 241, 244, 258, 252, 253, - 246, 535, 0, 0, 0, 0, 0, 526, 528, 529, - 534, 31, 288, 0, 515, 0, 0, 0, 291, 25, - 358, 359, 361, 378, 0, 380, 382, 302, 298, 0, - 505, -2, 368, 369, 394, 395, 396, 0, 0, 0, - 0, 392, 373, 0, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 419, 473, 474, 0, - 417, 418, 426, 0, 0, 293, 294, 397, 0, 553, - 28, 0, 0, 0, 0, 0, 504, 0, 0, 0, - 0, 502, 499, 0, 0, 0, 463, 0, 0, 0, - 0, 0, 0, 347, 355, 555, 0, 307, 326, 328, - 0, 323, 338, 339, 341, 0, 343, 0, 345, 346, - 312, 313, 314, 0, 0, 0, 0, 334, 355, 0, - 355, 43, 559, 48, 0, 0, 53, 54, 560, 561, - 562, 0, 77, 187, 189, 192, 193, 194, 79, 80, - 0, 0, 0, 0, 0, 181, 182, 144, 142, 0, - 139, 138, 86, 0, 155, 155, 107, 108, 158, 0, - 158, 158, 158, 0, 0, 101, 102, 103, 95, 0, - 96, 97, 98, 0, 99, 0, 0, 798, 65, 0, - 69, 70, 66, 574, 67, 797, 0, 0, 587, 203, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 0, 220, 798, 223, 261, 0, 0, 0, 532, 533, - 0, 525, 23, 0, 569, 570, 516, 517, 27, 379, - 381, 383, 0, 292, 370, 392, 374, 0, 371, 0, - 0, 365, 431, 0, 0, 399, -2, 434, 435, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, - 500, 0, 0, 448, 0, 464, 465, 466, 467, 547, - 0, 0, -2, 0, 0, 522, 0, 0, 0, 320, - 327, 0, 0, 321, 0, 322, 342, 344, 0, 0, - 0, 0, 318, 522, 355, 39, 51, 52, 0, 0, - 58, 159, 0, 190, 0, 0, 176, 0, 0, 179, - 180, 151, 0, 143, 82, 140, 0, 158, 158, 109, - 0, 110, 111, 112, 0, 128, 0, 0, 0, 0, - 596, 64, 72, 73, 0, 195, 797, 0, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 797, - 0, 0, 797, 588, 589, 590, 591, 0, 222, 243, - 0, 0, 259, 260, 536, 0, 24, 355, 0, 299, - 506, 0, 372, 0, 393, 375, 432, 295, 0, 130, - 130, 478, 130, 134, 481, 130, 483, 130, 486, 130, - 130, 130, 130, 130, 130, 494, 0, 0, 0, 0, - 505, 0, 0, 0, 497, 447, 503, 0, 450, 32, - 0, 547, 537, 549, 551, 0, 28, 0, 543, 0, - 530, 556, 356, 557, 324, 0, 329, 0, 0, 0, - 332, 0, 530, 38, 55, 56, 57, 188, 191, 0, - 183, 130, 177, 178, 153, 0, 145, 146, 147, 148, - 149, 150, 131, 105, 106, 156, 157, 155, 0, 155, - 0, 135, 0, 798, 0, 0, 196, 0, 197, 199, - 200, 201, 0, 262, 263, 518, 305, 433, 376, 436, - 475, 155, 479, 480, 482, 484, 485, 487, 488, 489, - 490, 491, 492, 493, 438, 437, 439, 0, 0, 442, - 0, 0, 0, 0, 0, 501, 0, 0, 0, 33, - 0, 552, -2, 0, 0, 0, 45, 36, 0, 316, - 0, 0, 0, 351, 319, 37, 168, 0, 185, 160, - 154, 0, 158, 129, 158, 0, 0, 62, 74, 75, - 0, 0, 520, 0, 476, 477, 0, 0, 0, 0, - 468, 446, 498, 0, 0, 0, 550, 0, -2, 0, - 545, 544, 0, 325, 352, 353, 354, 315, 167, 169, - 0, 174, 0, 184, 165, 0, 162, 164, 152, 118, - 119, 133, 136, 0, 0, 26, 0, 0, 440, 441, - 443, 444, 0, 0, 0, 0, 451, 452, 0, 540, - 28, 0, 317, 170, 171, 0, 175, 173, 81, 0, - 161, 163, 68, 0, 216, 0, 521, 519, 445, 0, - 0, 0, 0, 0, 548, -2, 546, 172, 166, 71, - 215, 0, 0, 469, 0, 472, 449, 453, 198, 217, - 0, 470, 0, 0, 0, 0, 0, 471, 0, 0, - 218, 219, + 21, 22, 23, 528, 0, 284, 284, 284, 284, 284, + 0, 0, 284, 0, 598, 581, 0, 0, 0, 0, + -2, 274, 275, 0, 277, 278, 805, 805, 805, 805, + 805, 0, 36, 37, 803, 1, 3, 536, 0, 0, + 288, 291, 286, 0, 581, 0, 0, 0, 44, 0, + 67, 0, 0, 792, 0, 793, 579, 579, 579, 599, + 600, 603, 604, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 0, + 0, 582, 0, 577, 0, 577, 577, 577, 0, 233, + 355, 607, 608, 792, 793, 0, 0, 0, 0, 806, + 806, 806, 806, 0, 806, 262, 251, 253, 254, 255, + 256, 806, 271, 272, 261, 273, 276, 279, 280, 281, + 282, 283, 30, 540, 0, 0, 528, 32, 0, 284, + 289, 290, 294, 292, 293, 285, 0, 302, 306, 0, + 363, 0, 368, 370, -2, -2, 0, 406, 407, 408, + 409, 410, 0, 0, 0, 0, 0, 0, 0, 433, + 434, 435, 436, 513, 514, 515, 516, 517, 518, 519, + 520, 372, 373, 510, 560, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 501, 0, 0, 468, 468, 468, + 468, 468, 468, 468, 468, 0, 0, 0, 0, 0, + 0, 312, 314, 315, 316, -2, 0, 338, 0, 0, + 48, 0, 0, 52, 0, 783, 564, -2, -2, 0, + 0, 605, 606, -2, 712, -2, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 0, 84, 0, 0, 806, 0, 74, 0, 0, 0, + 0, 0, 806, 0, 0, 0, 0, 0, 0, 0, + 232, 0, 234, 806, 806, 806, 806, 806, 806, 806, + 806, 243, 807, 808, 244, 245, 246, 806, 806, 248, + 0, 263, 0, 257, 31, 804, 24, 0, 0, 537, + 0, 529, 530, 533, 536, 30, 291, 0, 296, 295, + 287, 0, 303, 0, 0, 0, 307, 0, 309, 310, + 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 390, 391, 392, 393, 394, 395, 396, 397, 369, + 0, 383, 0, 0, 0, 426, 427, 428, 429, 430, + 431, 0, 298, 30, 0, 404, 0, 0, 0, 0, + 0, 0, 0, 0, 294, 0, 502, 0, 0, 460, + 0, 461, 462, 463, 464, 465, 466, 467, 0, 298, + 0, 0, 50, 0, 354, 0, 0, 0, 0, 0, + 0, 343, 0, 0, 346, 0, 0, 0, 0, 337, + 0, 0, 357, 756, 339, 0, 341, 342, -2, 0, + 0, 0, 46, 47, 42, 43, 45, 322, 0, 53, + 783, 55, 56, 0, 0, 0, 164, 572, 573, 574, + 570, 192, 0, 147, 143, 89, 90, 91, 136, 93, + 136, 136, 136, 136, 161, 161, 161, 161, 119, 120, + 121, 122, 123, 0, 0, 106, 136, 136, 136, 110, + 126, 127, 128, 129, 130, 131, 132, 133, 94, 95, + 96, 97, 98, 99, 100, 138, 138, 138, 140, 140, + 601, 69, 0, 77, 0, 806, 0, 806, 82, 0, + 208, 0, 227, 578, 0, 806, 230, 231, 356, 609, + 610, 235, 236, 237, 238, 239, 240, 241, 242, 247, + 250, 264, 258, 259, 252, 541, 0, 0, 0, 0, + 0, 532, 534, 535, 540, 33, 294, 0, 521, 0, + 0, 0, 297, 27, 364, 365, 367, 384, 0, 386, + 388, 308, 304, 0, 511, -2, 374, 375, 400, 401, + 402, 0, 0, 0, 0, 398, 379, 0, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 425, 479, 480, 0, 423, 424, 432, 0, 0, 299, + 300, 403, 0, 559, 30, 0, 0, 0, 0, 0, + 510, 0, 0, 0, 0, 508, 505, 0, 0, 0, + 469, 0, 0, 0, 0, 0, 0, 353, 361, 561, + 0, 313, 332, 334, 0, 329, 344, 345, 347, 0, + 349, 0, 351, 352, 318, 319, 320, 0, 0, 0, + 0, 340, 361, 0, 361, 49, 0, 565, 54, 0, + 0, 59, 60, 566, 567, 568, 0, 83, 193, 195, + 198, 199, 200, 85, 86, 0, 0, 0, 0, 0, + 187, 188, 150, 148, 0, 145, 144, 92, 0, 161, + 161, 113, 114, 164, 0, 164, 164, 164, 0, 0, + 107, 108, 109, 101, 0, 102, 103, 104, 0, 105, + 0, 0, 806, 71, 0, 75, 76, 72, 580, 73, + 805, 0, 0, 593, 209, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 0, 226, 806, 229, 267, + 0, 0, 0, 538, 539, 0, 531, 25, 0, 575, + 576, 522, 523, 29, 385, 387, 389, 0, 298, 376, + 398, 380, 0, 377, 0, 0, 371, 437, 0, 0, + 405, -2, 440, 441, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 528, 0, 506, 0, 0, 454, 0, + 470, 471, 472, 473, 553, 0, 0, -2, 0, 0, + 528, 0, 0, 0, 326, 333, 0, 0, 327, 0, + 328, 348, 350, 0, 0, 0, 0, 324, 528, 361, + 41, 323, 57, 58, 0, 0, 64, 165, 0, 196, + 0, 0, 182, 0, 0, 185, 186, 157, 0, 149, + 88, 146, 0, 164, 164, 115, 0, 116, 117, 118, + 0, 134, 0, 0, 0, 0, 602, 70, 78, 79, + 0, 201, 805, 0, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 805, 0, 0, 805, 594, + 595, 596, 597, 0, 228, 249, 0, 0, 265, 266, + 542, 0, 26, 361, 0, 305, 512, 0, 378, 0, + 399, 381, 438, 301, 0, 136, 136, 484, 136, 140, + 487, 136, 489, 136, 492, 136, 136, 136, 136, 136, + 136, 500, 0, 0, 0, 0, 511, 0, 0, 0, + 503, 453, 509, 0, 456, 34, 0, 553, 543, 555, + 557, 0, 30, 0, 549, 0, 536, 562, 362, 563, + 330, 0, 335, 0, 0, 0, 338, 0, 536, 40, + 61, 62, 63, 194, 197, 0, 189, 136, 183, 184, + 159, 0, 151, 152, 153, 154, 155, 156, 137, 111, + 112, 162, 163, 161, 0, 161, 0, 141, 0, 806, + 0, 0, 202, 0, 203, 205, 206, 207, 0, 268, + 269, 524, 311, 439, 382, 442, 481, 161, 485, 486, + 488, 490, 491, 493, 494, 495, 496, 497, 498, 499, + 444, 443, 445, 0, 0, 448, 0, 0, 0, 0, + 0, 507, 0, 0, 0, 35, 0, 558, -2, 0, + 0, 0, 51, 38, 0, 0, 0, 0, 357, 325, + 39, 174, 0, 191, 166, 160, 0, 164, 135, 164, + 0, 0, 68, 80, 81, 0, 0, 526, 0, 482, + 483, 0, 0, 0, 0, 474, 452, 504, 0, 0, + 0, 556, 0, -2, 0, 551, 550, 331, 358, 359, + 360, 321, 173, 175, 0, 180, 0, 190, 171, 0, + 168, 170, 158, 124, 125, 139, 142, 0, 0, 28, + 0, 0, 446, 447, 449, 450, 0, 0, 0, 0, + 457, 458, 0, 546, 30, 0, 176, 177, 0, 181, + 179, 87, 0, 167, 169, 74, 0, 222, 0, 527, + 525, 451, 0, 0, 0, 0, 0, 554, -2, 552, + 178, 172, 77, 221, 0, 0, 475, 0, 478, 455, + 459, 204, 223, 0, 476, 0, 0, 0, 0, 0, + 477, 0, 0, 224, 225, } var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 73, 3, 3, 3, 101, 93, 3, - 53, 55, 98, 96, 54, 97, 110, 99, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 253, - 81, 80, 82, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 75, 3, 3, 3, 103, 95, 3, + 55, 57, 100, 98, 56, 99, 112, 101, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 255, + 83, 82, 84, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 103, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 105, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 92, 3, 104, + 3, 3, 3, 3, 94, 3, 106, } var yyTok2 = [...]int{ @@ -2428,11 +2421,11 @@ var yyTok2 = [...]int{ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, - 76, 77, 78, 79, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 94, 95, 100, 102, 105, 106, 107, - 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, + 52, 53, 54, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 76, 77, 78, 79, 80, 81, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 96, 97, 102, 104, 107, + 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, @@ -2446,7 +2439,7 @@ var yyTok2 = [...]int{ 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, + 249, 250, 251, 252, 253, 254, } var yyTok3 = [...]int{ 0, @@ -2811,9 +2804,9 @@ yydefault: { yyVAL.statement = yyDollar[1].selStmt } - case 22: + case 24: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:338 + //line sql.y:340 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2821,63 +2814,63 @@ yydefault: sel.Lock = yyDollar[4].str yyVAL.selStmt = sel } - case 23: + case 25: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:346 + //line sql.y:348 { yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} } - case 24: + case 26: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:350 + //line sql.y:352 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} } - case 25: + case 27: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:356 + //line sql.y:358 { yyVAL.statement = &Stream{Comments: Comments(yyDollar[2].bytes2), SelectExpr: yyDollar[3].selectExpr, Table: yyDollar[5].tableName} } - case 26: + case 28: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:363 + //line sql.y:365 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } - case 27: + case 29: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:367 + //line sql.y:369 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs} } - case 28: + case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:373 + //line sql.y:375 { yyVAL.selStmt = yyDollar[1].selStmt } - case 29: + case 31: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:377 + //line sql.y:379 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } - case 30: + case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:383 + //line sql.y:385 { yyVAL.selStmt = yyDollar[1].selStmt } - case 31: + case 33: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:387 + //line sql.y:389 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } - case 32: + case 34: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:394 + //line sql.y:396 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].ins @@ -2889,9 +2882,9 @@ yydefault: ins.OnDup = OnDup(yyDollar[7].updateExprs) yyVAL.statement = ins } - case 33: + case 35: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:406 + //line sql.y:408 { cols := make(Columns, 0, len(yyDollar[7].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[8].updateExprs)) @@ -2901,195 +2894,219 @@ yydefault: } yyVAL.statement = &Insert{Action: yyDollar[1].str, Comments: Comments(yyDollar[2].bytes2), Ignore: yyDollar[3].str, Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitions, Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprs)} } - case 34: + case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:418 + //line sql.y:420 { yyVAL.str = InsertStr } - case 35: + case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:422 + //line sql.y:424 { yyVAL.str = ReplaceStr } - case 36: + case 38: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:428 + //line sql.y:430 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), TableExprs: yyDollar[3].tableExprs, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } - case 37: + case 39: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:434 + //line sql.y:436 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[4].tableName}}, Partitions: yyDollar[5].partitions, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } - case 38: + case 40: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:438 + //line sql.y:440 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[4].tableNames, TableExprs: yyDollar[6].tableExprs, Where: NewWhere(WhereStr, yyDollar[7].expr)} } - case 39: + case 41: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:442 + //line sql.y:444 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[3].tableNames, TableExprs: yyDollar[5].tableExprs, Where: NewWhere(WhereStr, yyDollar[6].expr)} } - case 40: + case 42: + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:450 + { + yyVAL.statement = &Prepare{Name: NewColIdent(string(yyDollar[2].bytes)), Stmt: NewStrVal(yyDollar[4].bytes)} + } + case 43: + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:454 + { + yyVAL.statement = &Prepare{Name: NewColIdent(string(yyDollar[2].bytes)), Stmt: NewValArg(yyDollar[4].bytes)} + } + case 44: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:460 + { + yyVAL.statement = &Execute{Name: NewColIdent(string(yyDollar[2].bytes))} + } + case 45: + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:464 + { + yyVAL.statement = &Execute{Name: NewColIdent(string(yyDollar[2].bytes)), Params: yyDollar[4].columns} + } + case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:447 + //line sql.y:469 { } - case 41: + case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:448 + //line sql.y:470 { } - case 42: + case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:452 + //line sql.y:474 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } - case 43: + case 49: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:456 + //line sql.y:478 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } - case 44: + case 50: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:461 + //line sql.y:483 { yyVAL.partitions = nil } - case 45: + case 51: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:465 + //line sql.y:487 { yyVAL.partitions = yyDollar[3].partitions } - case 46: + case 52: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:471 + //line sql.y:493 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } - case 47: + case 53: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:475 + //line sql.y:497 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[4].setExprs} } - case 48: + case 54: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:479 + //line sql.y:501 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[5].setExprs} } - case 49: + case 55: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:483 + //line sql.y:505 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[4].setExprs} } - case 50: + case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:489 + //line sql.y:511 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 51: + case 57: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:493 + //line sql.y:515 { yyVAL.setExprs = append(yyVAL.setExprs, yyDollar[3].setExpr) } - case 52: + case 58: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:499 + //line sql.y:521 { yyVAL.setExpr = yyDollar[3].setExpr } - case 53: + case 59: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:503 + //line sql.y:525 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("0"))} } - case 54: + case 60: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:507 + //line sql.y:529 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("1"))} } - case 55: + case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:513 + //line sql.y:535 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("repeatable read"))} } - case 56: + case 62: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:517 + //line sql.y:539 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read committed"))} } - case 57: + case 63: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:521 + //line sql.y:543 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read uncommitted"))} } - case 58: + case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:525 + //line sql.y:547 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("serializable"))} } - case 59: + case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:531 + //line sql.y:553 { yyVAL.str = SessionStr } - case 60: + case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:535 + //line sql.y:557 { yyVAL.str = GlobalStr } - case 61: + case 67: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:541 + //line sql.y:563 { yyDollar[1].ddl.TableSpec = yyDollar[2].TableSpec yyVAL.statement = yyDollar[1].ddl } - case 62: + case 68: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:546 + //line sql.y:568 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} } - case 63: + case 69: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:551 + //line sql.y:573 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} } - case 64: + case 70: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:555 + //line sql.y:577 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} } - case 65: + case 71: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:559 + //line sql.y:581 { yyVAL.statement = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ Name: yyDollar[3].colIdent, @@ -3097,104 +3114,104 @@ yydefault: Params: yyDollar[5].vindexParams, }} } - case 66: + case 72: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:567 + //line sql.y:589 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } - case 67: + case 73: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:571 + //line sql.y:593 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } - case 68: + case 74: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:576 + //line sql.y:598 { yyVAL.colIdent = NewColIdent("") } - case 69: + case 75: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:580 + //line sql.y:602 { yyVAL.colIdent = yyDollar[2].colIdent } - case 70: + case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:586 + //line sql.y:608 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 71: + case 77: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:591 + //line sql.y:613 { var v []VindexParam yyVAL.vindexParams = v } - case 72: + case 78: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:596 + //line sql.y:618 { yyVAL.vindexParams = yyDollar[2].vindexParams } - case 73: + case 79: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:602 + //line sql.y:624 { yyVAL.vindexParams = make([]VindexParam, 0, 4) yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[1].vindexParam) } - case 74: + case 80: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:607 + //line sql.y:629 { yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[3].vindexParam) } - case 75: + case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:613 + //line sql.y:635 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } - case 76: + case 82: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:619 + //line sql.y:641 { yyVAL.ddl = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } - case 77: + case 83: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:626 + //line sql.y:648 { yyVAL.TableSpec = yyDollar[2].TableSpec yyVAL.TableSpec.Options = yyDollar[4].str } - case 78: + case 84: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:633 + //line sql.y:655 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) } - case 79: + case 85: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:638 + //line sql.y:660 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) } - case 80: + case 86: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:642 + //line sql.y:664 { yyVAL.TableSpec.AddIndex(yyDollar[3].indexDefinition) } - case 81: + case 87: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:648 + //line sql.y:670 { yyDollar[2].columnType.NotNull = yyDollar[3].boolVal yyDollar[2].columnType.Default = yyDollar[4].optVal @@ -3204,710 +3221,710 @@ yydefault: yyDollar[2].columnType.Comment = yyDollar[8].optVal yyVAL.columnDefinition = &ColumnDefinition{Name: NewColIdent(string(yyDollar[1].bytes)), Type: yyDollar[2].columnType} } - case 82: + case 88: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:659 + //line sql.y:681 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal yyVAL.columnType.Zerofill = yyDollar[3].boolVal } - case 86: + case 92: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:670 + //line sql.y:692 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } - case 87: + case 93: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:675 + //line sql.y:697 { yyVAL.columnType = yyDollar[1].columnType } - case 88: + case 94: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:681 + //line sql.y:703 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 89: + case 95: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:685 + //line sql.y:707 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 90: + case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:689 + //line sql.y:711 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 91: + case 97: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:693 + //line sql.y:715 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 92: + case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:697 + //line sql.y:719 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 93: + case 99: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:701 + //line sql.y:723 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 94: + case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:705 + //line sql.y:727 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 95: + case 101: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:711 + //line sql.y:733 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 96: + case 102: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:717 + //line sql.y:739 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 97: + case 103: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:723 + //line sql.y:745 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 98: + case 104: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:729 + //line sql.y:751 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 99: + case 105: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:735 + //line sql.y:757 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 100: + case 106: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:743 + //line sql.y:765 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 101: + case 107: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:747 + //line sql.y:769 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 102: + case 108: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:751 + //line sql.y:773 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 103: + case 109: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:755 + //line sql.y:777 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 104: + case 110: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:759 + //line sql.y:781 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 105: + case 111: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:765 + //line sql.y:787 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 106: + case 112: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:769 + //line sql.y:791 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 107: + case 113: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:773 + //line sql.y:795 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 108: + case 114: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:777 + //line sql.y:799 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 109: + case 115: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:781 + //line sql.y:803 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 110: + case 116: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:785 + //line sql.y:807 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 111: + case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:789 + //line sql.y:811 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 112: + case 118: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:793 + //line sql.y:815 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 113: + case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:797 + //line sql.y:819 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 114: + case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:801 + //line sql.y:823 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 115: + case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:805 + //line sql.y:827 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 116: + case 122: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:809 + //line sql.y:831 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 117: + case 123: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:813 + //line sql.y:835 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 118: + case 124: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:817 + //line sql.y:839 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 119: + case 125: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:822 + //line sql.y:844 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 120: + case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:828 + //line sql.y:850 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 121: + case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:832 + //line sql.y:854 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 122: + case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:836 + //line sql.y:858 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 123: + case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:840 + //line sql.y:862 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 124: + case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:844 + //line sql.y:866 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 125: + case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:848 + //line sql.y:870 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 126: + case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:852 + //line sql.y:874 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 127: + case 133: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:856 + //line sql.y:878 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 128: + case 134: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:862 + //line sql.y:884 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } - case 129: + case 135: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:867 + //line sql.y:889 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } - case 130: + case 136: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:872 + //line sql.y:894 { yyVAL.optVal = nil } - case 131: + case 137: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:876 + //line sql.y:898 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 132: + case 138: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:881 + //line sql.y:903 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 133: + case 139: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:885 + //line sql.y:907 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 134: + case 140: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:893 + //line sql.y:915 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 135: + case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:897 + //line sql.y:919 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), } } - case 136: + case 142: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:903 + //line sql.y:925 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 137: + case 143: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:911 + //line sql.y:933 { yyVAL.boolVal = BoolVal(false) } - case 138: + case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:915 + //line sql.y:937 { yyVAL.boolVal = BoolVal(true) } - case 139: + case 145: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:920 + //line sql.y:942 { yyVAL.boolVal = BoolVal(false) } - case 140: + case 146: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:924 + //line sql.y:946 { yyVAL.boolVal = BoolVal(true) } - case 141: + case 147: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:930 + //line sql.y:952 { yyVAL.boolVal = BoolVal(false) } - case 142: + case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:934 + //line sql.y:956 { yyVAL.boolVal = BoolVal(false) } - case 143: + case 149: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:938 + //line sql.y:960 { yyVAL.boolVal = BoolVal(true) } - case 144: + case 150: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:943 + //line sql.y:965 { yyVAL.optVal = nil } - case 145: + case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:947 + //line sql.y:969 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 146: + case 152: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:951 + //line sql.y:973 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 147: + case 153: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:955 + //line sql.y:977 { yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } - case 148: + case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:959 + //line sql.y:981 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } - case 149: + case 155: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:963 + //line sql.y:985 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } - case 150: + case 156: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:967 + //line sql.y:989 { yyVAL.optVal = NewBitVal(yyDollar[2].bytes) } - case 151: + case 157: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:972 + //line sql.y:994 { yyVAL.optVal = nil } - case 152: + case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:976 + //line sql.y:998 { yyVAL.optVal = NewValArg(yyDollar[3].bytes) } - case 153: + case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:981 + //line sql.y:1003 { yyVAL.boolVal = BoolVal(false) } - case 154: + case 160: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:985 + //line sql.y:1007 { yyVAL.boolVal = BoolVal(true) } - case 155: + case 161: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:990 + //line sql.y:1012 { yyVAL.str = "" } - case 156: + case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:994 + //line sql.y:1016 { yyVAL.str = string(yyDollar[3].bytes) } - case 157: + case 163: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:998 + //line sql.y:1020 { yyVAL.str = string(yyDollar[3].bytes) } - case 158: + case 164: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1003 + //line sql.y:1025 { yyVAL.str = "" } - case 159: + case 165: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1007 + //line sql.y:1029 { yyVAL.str = string(yyDollar[2].bytes) } - case 160: + case 166: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1012 + //line sql.y:1034 { yyVAL.colKeyOpt = colKeyNone } - case 161: + case 167: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1016 + //line sql.y:1038 { yyVAL.colKeyOpt = colKeyPrimary } - case 162: + case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1020 + //line sql.y:1042 { yyVAL.colKeyOpt = colKey } - case 163: + case 169: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1024 + //line sql.y:1046 { yyVAL.colKeyOpt = colKeyUniqueKey } - case 164: + case 170: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1028 + //line sql.y:1050 { yyVAL.colKeyOpt = colKeyUnique } - case 165: + case 171: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1033 + //line sql.y:1055 { yyVAL.optVal = nil } - case 166: + case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1037 + //line sql.y:1059 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 167: + case 173: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1043 + //line sql.y:1065 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } - case 168: + case 174: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1047 + //line sql.y:1069 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } - case 169: + case 175: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1053 + //line sql.y:1075 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } - case 170: + case 176: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1057 + //line sql.y:1079 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } - case 171: + case 177: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1063 + //line sql.y:1085 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } - case 172: + case 178: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1067 + //line sql.y:1089 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } - case 173: + case 179: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1072 + //line sql.y:1094 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } - case 174: + case 180: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1078 + //line sql.y:1100 { yyVAL.str = "" } - case 175: + case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1082 + //line sql.y:1104 { yyVAL.str = string(yyDollar[1].bytes) } - case 176: + case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1088 + //line sql.y:1110 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } - case 177: + case 183: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1092 + //line sql.y:1114 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Spatial: true, Unique: false} } - case 178: + case 184: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1096 + //line sql.y:1118 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Unique: true} } - case 179: + case 185: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1100 + //line sql.y:1122 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: true} } - case 180: + case 186: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1104 + //line sql.y:1126 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} } - case 181: + case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1110 + //line sql.y:1132 { yyVAL.str = string(yyDollar[1].bytes) } - case 182: + case 188: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1114 + //line sql.y:1136 { yyVAL.str = string(yyDollar[1].bytes) } - case 183: + case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1120 + //line sql.y:1142 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } - case 184: + case 190: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1124 + //line sql.y:1146 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } - case 185: + case 191: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1130 + //line sql.y:1152 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } - case 186: + case 192: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1135 + //line sql.y:1157 { yyVAL.str = "" } - case 187: + case 193: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1139 + //line sql.y:1161 { yyVAL.str = " " + string(yyDollar[1].str) } - case 188: + case 194: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1143 + //line sql.y:1165 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } - case 189: + case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1151 + //line sql.y:1173 { yyVAL.str = yyDollar[1].str } - case 190: + case 196: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1155 + //line sql.y:1177 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } - case 191: + case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1159 + //line sql.y:1181 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } - case 192: + case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1165 + //line sql.y:1187 { yyVAL.str = yyDollar[1].colIdent.String() } - case 193: + case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1169 + //line sql.y:1191 { yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } - case 194: + case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1173 + //line sql.y:1195 { yyVAL.str = string(yyDollar[1].bytes) } - case 195: + case 201: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1179 + //line sql.y:1201 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 196: + case 202: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1183 + //line sql.y:1205 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 197: + case 203: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1187 + //line sql.y:1209 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 198: + case 204: yyDollar = yyS[yypt-12 : yypt+1] - //line sql.y:1191 + //line sql.y:1213 { yyVAL.statement = &DDL{ Action: AddColVindexStr, @@ -3920,9 +3937,9 @@ yydefault: VindexCols: yyDollar[9].columns, } } - case 199: + case 205: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1204 + //line sql.y:1226 { yyVAL.statement = &DDL{ Action: DropColVindexStr, @@ -3932,71 +3949,71 @@ yydefault: }, } } - case 200: + case 206: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1214 + //line sql.y:1236 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } - case 201: + case 207: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1219 + //line sql.y:1241 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 202: + case 208: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1224 + //line sql.y:1246 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} } - case 203: + case 209: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1228 + //line sql.y:1250 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, PartitionSpec: yyDollar[5].partSpec} } - case 215: + case 221: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1247 + //line sql.y:1269 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } - case 216: + case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1253 + //line sql.y:1275 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } - case 217: + case 223: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1257 + //line sql.y:1279 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } - case 218: + case 224: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1263 + //line sql.y:1285 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } - case 219: + case 225: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1267 + //line sql.y:1289 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } - case 220: + case 226: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1273 + //line sql.y:1295 { yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } - case 221: + case 227: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1279 + //line sql.y:1301 { var exists bool if yyDollar[3].byt != 0 { @@ -4004,16 +4021,16 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName, IfExists: exists} } - case 222: + case 228: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1287 + //line sql.y:1309 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } - case 223: + case 229: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1292 + //line sql.y:1314 { var exists bool if yyDollar[3].byt != 0 { @@ -4021,123 +4038,123 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName.ToViewName(), IfExists: exists} } - case 224: + case 230: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1300 + //line sql.y:1322 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 225: + case 231: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1304 + //line sql.y:1326 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 226: + case 232: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1310 + //line sql.y:1332 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } - case 227: + case 233: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1314 + //line sql.y:1336 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } - case 228: + case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1319 + //line sql.y:1341 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } - case 229: + case 235: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1325 + //line sql.y:1347 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 230: + case 236: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1329 + //line sql.y:1351 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 231: + case 237: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1333 + //line sql.y:1355 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 232: + case 238: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1338 + //line sql.y:1360 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 233: + case 239: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1342 + //line sql.y:1364 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 234: + case 240: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1346 + //line sql.y:1368 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 235: + case 241: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1350 + //line sql.y:1372 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 236: + case 242: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1354 + //line sql.y:1376 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 237: + case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1358 + //line sql.y:1380 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 238: + case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1362 + //line sql.y:1384 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 239: + case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1366 + //line sql.y:1388 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 240: + case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1370 + //line sql.y:1392 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 241: + case 247: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1374 + //line sql.y:1396 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } - case 242: + case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1378 + //line sql.y:1400 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 243: + case 249: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1382 + //line sql.y:1404 { // this is ugly, but I couldn't find a better way for now if yyDollar[4].str == "processlist" { @@ -4147,598 +4164,598 @@ yydefault: yyVAL.statement = &Show{Type: yyDollar[4].str, ShowTablesOpt: showTablesOpt} } } - case 244: + case 250: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1392 + //line sql.y:1414 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } - case 245: + case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1396 + //line sql.y:1418 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 246: + case 252: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1400 + //line sql.y:1422 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} } - case 247: + case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1404 + //line sql.y:1426 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 248: + case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1408 + //line sql.y:1430 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 249: + case 255: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1412 + //line sql.y:1434 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 250: + case 256: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1416 + //line sql.y:1438 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 251: + case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1426 + //line sql.y:1448 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 252: + case 258: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1432 + //line sql.y:1454 { yyVAL.str = string(yyDollar[1].bytes) } - case 253: + case 259: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1436 + //line sql.y:1458 { yyVAL.str = string(yyDollar[1].bytes) } - case 254: + case 260: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1442 + //line sql.y:1464 { yyVAL.str = "" } - case 255: + case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1446 + //line sql.y:1468 { yyVAL.str = "extended " } - case 256: + case 262: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1452 + //line sql.y:1474 { yyVAL.str = "" } - case 257: + case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1456 + //line sql.y:1478 { yyVAL.str = "full " } - case 258: + case 264: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1462 + //line sql.y:1484 { yyVAL.str = "" } - case 259: + case 265: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1466 + //line sql.y:1488 { yyVAL.str = yyDollar[2].tableIdent.v } - case 260: + case 266: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1470 + //line sql.y:1492 { yyVAL.str = yyDollar[2].tableIdent.v } - case 261: + case 267: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1476 + //line sql.y:1498 { yyVAL.showFilter = nil } - case 262: + case 268: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1480 + //line sql.y:1502 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } - case 263: + case 269: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1484 + //line sql.y:1506 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } - case 264: + case 270: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1490 + //line sql.y:1512 { yyVAL.str = "" } - case 265: + case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1494 + //line sql.y:1516 { yyVAL.str = SessionStr } - case 266: + case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1498 + //line sql.y:1520 { yyVAL.str = GlobalStr } - case 267: + case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1504 + //line sql.y:1526 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } - case 268: + case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1508 + //line sql.y:1530 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } - case 269: + case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1514 + //line sql.y:1536 { yyVAL.statement = &Begin{} } - case 270: + case 276: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1518 + //line sql.y:1540 { yyVAL.statement = &Begin{} } - case 271: + case 277: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1524 + //line sql.y:1546 { yyVAL.statement = &Commit{} } - case 272: + case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1530 + //line sql.y:1552 { yyVAL.statement = &Rollback{} } - case 273: + case 279: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1536 + //line sql.y:1558 { yyVAL.statement = &OtherRead{} } - case 274: + case 280: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1540 + //line sql.y:1562 { yyVAL.statement = &OtherRead{} } - case 275: + case 281: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1544 + //line sql.y:1566 { yyVAL.statement = &OtherRead{} } - case 276: + case 282: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1548 + //line sql.y:1570 { yyVAL.statement = &OtherAdmin{} } - case 277: + case 283: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1552 + //line sql.y:1574 { yyVAL.statement = &OtherAdmin{} } - case 278: + case 284: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1557 + //line sql.y:1579 { setAllowComments(yylex, true) } - case 279: + case 285: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1561 + //line sql.y:1583 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 280: + case 286: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1567 + //line sql.y:1589 { yyVAL.bytes2 = nil } - case 281: + case 287: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1571 + //line sql.y:1593 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 282: + case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1577 + //line sql.y:1599 { yyVAL.str = UnionStr } - case 283: + case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1581 + //line sql.y:1603 { yyVAL.str = UnionAllStr } - case 284: + case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1585 + //line sql.y:1607 { yyVAL.str = UnionDistinctStr } - case 285: + case 291: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1590 + //line sql.y:1612 { yyVAL.str = "" } - case 286: + case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1594 + //line sql.y:1616 { yyVAL.str = SQLNoCacheStr } - case 287: + case 293: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1598 + //line sql.y:1620 { yyVAL.str = SQLCacheStr } - case 288: + case 294: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1603 + //line sql.y:1625 { yyVAL.str = "" } - case 289: + case 295: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1607 + //line sql.y:1629 { yyVAL.str = DistinctStr } - case 290: + case 296: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1612 + //line sql.y:1634 { yyVAL.str = "" } - case 291: + case 297: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1616 + //line sql.y:1638 { yyVAL.str = StraightJoinHint } - case 292: + case 298: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1621 + //line sql.y:1643 { yyVAL.selectExprs = nil } - case 293: + case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1625 + //line sql.y:1647 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 294: + case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1631 + //line sql.y:1653 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 295: + case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1635 + //line sql.y:1657 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 296: + case 302: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1641 + //line sql.y:1663 { yyVAL.selectExpr = &StarExpr{} } - case 297: + case 303: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1645 + //line sql.y:1667 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 298: + case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1649 + //line sql.y:1671 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 299: + case 305: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1653 + //line sql.y:1675 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 300: + case 306: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1658 + //line sql.y:1680 { yyVAL.colIdent = ColIdent{} } - case 301: + case 307: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1662 + //line sql.y:1684 { yyVAL.colIdent = yyDollar[1].colIdent } - case 302: + case 308: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1666 + //line sql.y:1688 { yyVAL.colIdent = yyDollar[2].colIdent } - case 304: + case 310: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1673 + //line sql.y:1695 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 305: + case 311: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1679 + //line sql.y:1701 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 306: + case 312: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1685 + //line sql.y:1707 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 307: + case 313: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1689 + //line sql.y:1711 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 310: + case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1699 + //line sql.y:1721 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 311: + case 317: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1703 + //line sql.y:1725 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery} } - case 312: + case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1707 + //line sql.y:1729 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 313: + case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1711 + //line sql.y:1733 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 314: + case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1717 + //line sql.y:1739 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 315: + case 321: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1721 + //line sql.y:1743 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } - case 316: + case 322: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1727 + //line sql.y:1749 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 317: + case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1731 + //line sql.y:1753 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 318: + case 324: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1737 + //line sql.y:1759 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } - case 319: + case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1741 + //line sql.y:1763 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } - case 320: + case 326: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1754 + //line sql.y:1776 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 321: + case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1758 + //line sql.y:1780 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 322: + case 328: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1762 + //line sql.y:1784 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 323: + case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1766 + //line sql.y:1788 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 324: + case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1772 + //line sql.y:1794 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 325: + case 331: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1774 + //line sql.y:1796 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } - case 326: + case 332: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1778 + //line sql.y:1800 { yyVAL.joinCondition = JoinCondition{} } - case 327: + case 333: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1780 + //line sql.y:1802 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 328: + case 334: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1784 + //line sql.y:1806 { yyVAL.joinCondition = JoinCondition{} } - case 329: + case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1786 + //line sql.y:1808 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 330: + case 336: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1789 + //line sql.y:1811 { yyVAL.empty = struct{}{} } - case 331: + case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1791 + //line sql.y:1813 { yyVAL.empty = struct{}{} } - case 332: + case 338: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1794 + //line sql.y:1816 { yyVAL.tableIdent = NewTableIdent("") } - case 333: + case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1798 + //line sql.y:1820 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 334: + case 340: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1802 + //line sql.y:1824 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 336: + case 342: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1809 + //line sql.y:1831 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 337: + case 343: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1815 + //line sql.y:1837 { yyVAL.str = JoinStr } - case 338: + case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1819 + //line sql.y:1841 { yyVAL.str = InnerJoinStr } - case 339: + case 345: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1823 + //line sql.y:1845 { yyVAL.str = CrossJoinStr } - case 340: + case 346: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1829 + //line sql.y:1851 { yyVAL.str = StraightJoinStr } - case 341: + case 347: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1835 + //line sql.y:1857 { yyVAL.str = LeftJoinStr } - case 342: + case 348: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1839 + //line sql.y:1861 { yyVAL.str = LeftJoinStr } - case 343: + case 349: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1843 + //line sql.y:1865 { yyVAL.str = RightJoinStr } - case 344: + case 350: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1847 + //line sql.y:1869 { yyVAL.str = RightJoinStr } - case 345: + case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1853 + //line sql.y:1875 { yyVAL.str = NaturalJoinStr } - case 346: + case 352: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1857 + //line sql.y:1879 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4746,459 +4763,459 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 347: + case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1867 + //line sql.y:1889 { yyVAL.tableName = yyDollar[2].tableName } - case 348: + case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1871 + //line sql.y:1893 { yyVAL.tableName = yyDollar[1].tableName } - case 349: + case 355: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1877 + //line sql.y:1899 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 350: + case 356: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1881 + //line sql.y:1903 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 351: + case 357: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1886 + //line sql.y:1908 { yyVAL.indexHints = nil } - case 352: + case 358: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1890 + //line sql.y:1912 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } - case 353: + case 359: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1894 + //line sql.y:1916 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } - case 354: + case 360: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1898 + //line sql.y:1920 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } - case 355: + case 361: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1903 + //line sql.y:1925 { yyVAL.expr = nil } - case 356: + case 362: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1907 + //line sql.y:1929 { yyVAL.expr = yyDollar[2].expr } - case 357: + case 363: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1913 + //line sql.y:1935 { yyVAL.expr = yyDollar[1].expr } - case 358: + case 364: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1917 + //line sql.y:1939 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 359: + case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1921 + //line sql.y:1943 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 360: + case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1925 + //line sql.y:1947 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 361: + case 367: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1929 + //line sql.y:1951 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 362: + case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1933 + //line sql.y:1955 { yyVAL.expr = yyDollar[1].expr } - case 363: + case 369: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1937 + //line sql.y:1959 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 364: + case 370: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1943 + //line sql.y:1965 { yyVAL.str = "" } - case 365: + case 371: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1947 + //line sql.y:1969 { yyVAL.str = string(yyDollar[2].bytes) } - case 366: + case 372: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1953 + //line sql.y:1975 { yyVAL.boolVal = BoolVal(true) } - case 367: + case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1957 + //line sql.y:1979 { yyVAL.boolVal = BoolVal(false) } - case 368: + case 374: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1963 + //line sql.y:1985 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } - case 369: + case 375: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1967 + //line sql.y:1989 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } - case 370: + case 376: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1971 + //line sql.y:1993 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } - case 371: + case 377: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1975 + //line sql.y:1997 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } - case 372: + case 378: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1979 + //line sql.y:2001 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } - case 373: + case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1983 + //line sql.y:2005 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } - case 374: + case 380: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1987 + //line sql.y:2009 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } - case 375: + case 381: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1991 + //line sql.y:2013 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } - case 376: + case 382: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1995 + //line sql.y:2017 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } - case 377: + case 383: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1999 + //line sql.y:2021 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } - case 378: + case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2005 + //line sql.y:2027 { yyVAL.str = IsNullStr } - case 379: + case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2009 + //line sql.y:2031 { yyVAL.str = IsNotNullStr } - case 380: + case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2013 + //line sql.y:2035 { yyVAL.str = IsTrueStr } - case 381: + case 387: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2017 + //line sql.y:2039 { yyVAL.str = IsNotTrueStr } - case 382: + case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2021 + //line sql.y:2043 { yyVAL.str = IsFalseStr } - case 383: + case 389: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2025 + //line sql.y:2047 { yyVAL.str = IsNotFalseStr } - case 384: + case 390: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2031 + //line sql.y:2053 { yyVAL.str = EqualStr } - case 385: + case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2035 + //line sql.y:2057 { yyVAL.str = LessThanStr } - case 386: + case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2039 + //line sql.y:2061 { yyVAL.str = GreaterThanStr } - case 387: + case 393: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2043 + //line sql.y:2065 { yyVAL.str = LessEqualStr } - case 388: + case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2047 + //line sql.y:2069 { yyVAL.str = GreaterEqualStr } - case 389: + case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2051 + //line sql.y:2073 { yyVAL.str = NotEqualStr } - case 390: + case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2055 + //line sql.y:2077 { yyVAL.str = NullSafeEqualStr } - case 391: + case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2059 + //line sql.y:2081 { yyVAL.str = NullSafeNotEqualStr } - case 392: + case 398: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2064 + //line sql.y:2086 { yyVAL.expr = nil } - case 393: + case 399: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2068 + //line sql.y:2090 { yyVAL.expr = yyDollar[2].expr } - case 394: + case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2074 + //line sql.y:2096 { yyVAL.colTuple = yyDollar[1].valTuple } - case 395: + case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2078 + //line sql.y:2100 { yyVAL.colTuple = yyDollar[1].subquery } - case 396: + case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2082 + //line sql.y:2104 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 397: + case 403: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2088 + //line sql.y:2110 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 398: + case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2094 + //line sql.y:2116 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 399: + case 405: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2098 + //line sql.y:2120 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 400: + case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2104 + //line sql.y:2126 { yyVAL.expr = yyDollar[1].expr } - case 401: + case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2108 + //line sql.y:2130 { yyVAL.expr = yyDollar[1].boolVal } - case 402: + case 408: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2112 + //line sql.y:2134 { yyVAL.expr = yyDollar[1].colName } - case 403: + case 409: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2116 + //line sql.y:2138 { yyVAL.expr = yyDollar[1].expr } - case 404: + case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2120 + //line sql.y:2142 { yyVAL.expr = yyDollar[1].subquery } - case 405: + case 411: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2124 + //line sql.y:2146 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } - case 406: + case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2128 + //line sql.y:2150 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } - case 407: + case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2132 + //line sql.y:2154 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } - case 408: + case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2136 + //line sql.y:2158 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } - case 409: + case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2140 + //line sql.y:2162 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } - case 410: + case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2144 + //line sql.y:2166 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } - case 411: + case 417: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2148 + //line sql.y:2170 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } - case 412: + case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2152 + //line sql.y:2174 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } - case 413: + case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2156 + //line sql.y:2178 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 414: + case 420: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2160 + //line sql.y:2182 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 415: + case 421: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2164 + //line sql.y:2186 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } - case 416: + case 422: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2168 + //line sql.y:2190 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } - case 417: + case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2172 + //line sql.y:2194 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } - case 418: + case 424: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2176 + //line sql.y:2198 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } - case 419: + case 425: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2180 + //line sql.y:2202 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } - case 420: + case 426: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2184 + //line sql.y:2206 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } - case 421: + case 427: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2188 + //line sql.y:2210 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } - case 422: + case 428: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2192 + //line sql.y:2214 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5206,9 +5223,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 423: + case 429: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2200 + //line sql.y:2222 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5222,21 +5239,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 424: + case 430: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2214 + //line sql.y:2236 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 425: + case 431: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2218 + //line sql.y:2240 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 426: + case 432: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2222 + //line sql.y:2244 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5244,503 +5261,503 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 431: + case 437: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2240 + //line sql.y:2262 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 432: + case 438: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2244 + //line sql.y:2266 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 433: + case 439: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2248 + //line sql.y:2270 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 434: + case 440: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2258 + //line sql.y:2280 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 435: + case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2262 + //line sql.y:2284 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 436: + case 442: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2266 + //line sql.y:2288 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 437: + case 443: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2270 + //line sql.y:2292 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 438: + case 444: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2274 + //line sql.y:2296 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 439: + case 445: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2278 + //line sql.y:2300 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 440: + case 446: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2282 + //line sql.y:2304 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 441: + case 447: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2286 + //line sql.y:2308 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 442: + case 448: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2290 + //line sql.y:2312 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 443: + case 449: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2294 + //line sql.y:2316 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 444: + case 450: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2298 + //line sql.y:2320 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 445: + case 451: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2302 + //line sql.y:2324 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 446: + case 452: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2306 + //line sql.y:2328 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 447: + case 453: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2310 + //line sql.y:2332 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 448: + case 454: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2314 + //line sql.y:2336 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } - case 449: + case 455: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:2318 + //line sql.y:2340 { yyVAL.expr = &RowNumberOverExpr{PartitionBy: yyDollar[6].partitionBy, OrderBy: yyDollar[9].orderBy} } - case 450: + case 456: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2323 + //line sql.y:2345 { yyVAL.partitionBy = nil } - case 451: + case 457: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2327 + //line sql.y:2349 { yyVAL.partitionBy = yyDollar[3].partitionBy } - case 452: + case 458: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2333 + //line sql.y:2355 { yyVAL.partitionBy = PartitionBy{yyDollar[1].expr} } - case 453: + case 459: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2337 + //line sql.y:2359 { yyVAL.partitionBy = append(yyDollar[1].partitionBy, yyDollar[3].expr) } - case 454: + case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2347 + //line sql.y:2369 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 455: + case 461: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2351 + //line sql.y:2373 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 456: + case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2355 + //line sql.y:2377 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 457: + case 463: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2359 + //line sql.y:2381 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 458: + case 464: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2364 + //line sql.y:2386 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 459: + case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2369 + //line sql.y:2391 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 460: + case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2374 + //line sql.y:2396 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 461: + case 467: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2379 + //line sql.y:2401 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 464: + case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2393 + //line sql.y:2415 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 465: + case 471: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2397 + //line sql.y:2419 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 466: + case 472: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2401 + //line sql.y:2423 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 467: + case 473: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2405 + //line sql.y:2427 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 468: + case 474: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2411 + //line sql.y:2433 { yyVAL.str = "" } - case 469: + case 475: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2415 + //line sql.y:2437 { yyVAL.str = BooleanModeStr } - case 470: + case 476: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2419 + //line sql.y:2441 { yyVAL.str = NaturalLanguageModeStr } - case 471: + case 477: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2423 + //line sql.y:2445 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 472: + case 478: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2427 + //line sql.y:2449 { yyVAL.str = QueryExpansionStr } - case 473: + case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2433 + //line sql.y:2455 { yyVAL.str = string(yyDollar[1].bytes) } - case 474: + case 480: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2437 + //line sql.y:2459 { yyVAL.str = string(yyDollar[1].bytes) } - case 475: + case 481: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2443 + //line sql.y:2465 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 476: + case 482: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2447 + //line sql.y:2469 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 477: + case 483: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2451 + //line sql.y:2473 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 478: + case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2455 + //line sql.y:2477 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 479: + case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2459 + //line sql.y:2481 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 480: + case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2463 + //line sql.y:2485 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 481: + case 487: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2469 + //line sql.y:2491 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 482: + case 488: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2473 + //line sql.y:2495 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 483: + case 489: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2477 + //line sql.y:2499 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 484: + case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2481 + //line sql.y:2503 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 485: + case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2485 + //line sql.y:2507 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 486: + case 492: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2489 + //line sql.y:2511 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 487: + case 493: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2493 + //line sql.y:2515 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 488: + case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2497 + //line sql.y:2519 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 489: + case 495: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2501 + //line sql.y:2523 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 490: + case 496: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2505 + //line sql.y:2527 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 491: + case 497: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2509 + //line sql.y:2531 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 492: + case 498: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2513 + //line sql.y:2535 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 493: + case 499: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2517 + //line sql.y:2539 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 494: + case 500: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2521 + //line sql.y:2543 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 495: + case 501: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2526 + //line sql.y:2548 { yyVAL.expr = nil } - case 496: + case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2530 + //line sql.y:2552 { yyVAL.expr = yyDollar[1].expr } - case 497: + case 503: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2535 + //line sql.y:2557 { yyVAL.str = string("") } - case 498: + case 504: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2539 + //line sql.y:2561 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 499: + case 505: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2545 + //line sql.y:2567 { yyVAL.whens = []*When{yyDollar[1].when} } - case 500: + case 506: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2549 + //line sql.y:2571 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 501: + case 507: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2555 + //line sql.y:2577 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 502: + case 508: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2560 + //line sql.y:2582 { yyVAL.expr = nil } - case 503: + case 509: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2564 + //line sql.y:2586 { yyVAL.expr = yyDollar[2].expr } - case 504: + case 510: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2570 + //line sql.y:2592 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 505: + case 511: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2574 + //line sql.y:2596 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 506: + case 512: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2578 + //line sql.y:2600 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 507: + case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2584 + //line sql.y:2606 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 508: + case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2588 + //line sql.y:2610 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 509: + case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2592 + //line sql.y:2614 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } - case 510: + case 516: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2596 + //line sql.y:2618 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 511: + case 517: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2600 + //line sql.y:2622 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 512: + case 518: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2604 + //line sql.y:2626 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 513: + case 519: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2608 + //line sql.y:2630 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 514: + case 520: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2612 + //line sql.y:2634 { yyVAL.expr = &NullVal{} } - case 515: + case 521: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2618 + //line sql.y:2640 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5749,239 +5766,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 516: + case 522: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2627 + //line sql.y:2649 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 517: + case 523: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2631 + //line sql.y:2653 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 518: + case 524: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2636 + //line sql.y:2658 { yyVAL.exprs = nil } - case 519: + case 525: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2640 + //line sql.y:2662 { yyVAL.exprs = yyDollar[3].exprs } - case 520: + case 526: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2645 + //line sql.y:2667 { yyVAL.expr = nil } - case 521: + case 527: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2649 + //line sql.y:2671 { yyVAL.expr = yyDollar[2].expr } - case 522: + case 528: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2654 + //line sql.y:2676 { yyVAL.orderBy = nil } - case 523: + case 529: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2658 + //line sql.y:2680 { yyVAL.orderBy = yyDollar[3].orderBy } - case 524: + case 530: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2664 + //line sql.y:2686 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 525: + case 531: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2668 + //line sql.y:2690 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 526: + case 532: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2674 + //line sql.y:2696 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 527: + case 533: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2679 + //line sql.y:2701 { yyVAL.str = AscScr } - case 528: + case 534: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2683 + //line sql.y:2705 { yyVAL.str = AscScr } - case 529: + case 535: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2687 + //line sql.y:2709 { yyVAL.str = DescScr } - case 530: + case 536: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2692 + //line sql.y:2714 { yyVAL.limit = nil } - case 531: + case 537: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2696 + //line sql.y:2718 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 532: + case 538: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2700 + //line sql.y:2722 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 533: + case 539: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2704 + //line sql.y:2726 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 534: + case 540: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2709 + //line sql.y:2731 { yyVAL.str = "" } - case 535: + case 541: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2713 + //line sql.y:2735 { yyVAL.str = ForUpdateStr } - case 536: + case 542: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2717 + //line sql.y:2739 { yyVAL.str = ShareModeStr } - case 537: + case 543: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2730 + //line sql.y:2752 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 538: + case 544: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2734 + //line sql.y:2756 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 539: + case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2738 + //line sql.y:2760 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 540: + case 546: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2743 + //line sql.y:2765 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 541: + case 547: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2747 + //line sql.y:2769 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 542: + case 548: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2751 + //line sql.y:2773 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 543: + case 549: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2758 + //line sql.y:2780 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 544: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2762 + //line sql.y:2784 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 545: + case 551: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2766 + //line sql.y:2788 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 546: + case 552: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2770 + //line sql.y:2792 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 547: + case 553: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2775 + //line sql.y:2797 { yyVAL.updateExprs = nil } - case 548: + case 554: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2779 + //line sql.y:2801 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 549: + case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2785 + //line sql.y:2807 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 550: + case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2789 + //line sql.y:2811 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 551: + case 557: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2795 + //line sql.y:2817 { yyVAL.valTuple = yyDollar[1].valTuple } - case 552: + case 558: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2799 + //line sql.y:2821 { yyVAL.valTuple = ValTuple{} } - case 553: + case 559: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2805 + //line sql.y:2827 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 554: + case 560: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2811 + //line sql.y:2833 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5989,306 +6006,306 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 555: + case 561: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2821 + //line sql.y:2843 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 556: + case 562: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2825 + //line sql.y:2847 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 557: + case 563: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2831 + //line sql.y:2853 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 558: + case 564: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2837 + //line sql.y:2859 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 559: + case 565: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2841 + //line sql.y:2863 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 560: + case 566: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2847 + //line sql.y:2869 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 561: + case 567: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2851 + //line sql.y:2873 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 562: + case 568: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2855 + //line sql.y:2877 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 564: + case 570: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2862 + //line sql.y:2884 { yyVAL.bytes = []byte("charset") } - case 566: + case 572: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2869 + //line sql.y:2891 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 567: + case 573: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2873 + //line sql.y:2895 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 568: + case 574: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2877 + //line sql.y:2899 { yyVAL.expr = &Default{} } - case 571: + case 577: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2886 + //line sql.y:2908 { yyVAL.byt = 0 } - case 572: + case 578: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2888 + //line sql.y:2910 { yyVAL.byt = 1 } - case 573: + case 579: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2891 + //line sql.y:2913 { yyVAL.empty = struct{}{} } - case 574: + case 580: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2893 + //line sql.y:2915 { yyVAL.empty = struct{}{} } - case 575: + case 581: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2896 + //line sql.y:2918 { yyVAL.str = "" } - case 576: + case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2898 + //line sql.y:2920 { yyVAL.str = IgnoreStr } - case 577: + case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2902 + //line sql.y:2924 { yyVAL.empty = struct{}{} } - case 578: + case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2904 + //line sql.y:2926 { yyVAL.empty = struct{}{} } - case 579: + case 585: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2906 + //line sql.y:2928 { yyVAL.empty = struct{}{} } - case 580: + case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2908 + //line sql.y:2930 { yyVAL.empty = struct{}{} } - case 581: + case 587: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2910 + //line sql.y:2932 { yyVAL.empty = struct{}{} } - case 582: + case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2912 + //line sql.y:2934 { yyVAL.empty = struct{}{} } - case 583: + case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2914 + //line sql.y:2936 { yyVAL.empty = struct{}{} } - case 584: + case 590: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2916 + //line sql.y:2938 { yyVAL.empty = struct{}{} } - case 585: + case 591: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2918 + //line sql.y:2940 { yyVAL.empty = struct{}{} } - case 586: + case 592: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2920 + //line sql.y:2942 { yyVAL.empty = struct{}{} } - case 587: + case 593: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2923 + //line sql.y:2945 { yyVAL.empty = struct{}{} } - case 588: + case 594: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2925 + //line sql.y:2947 { yyVAL.empty = struct{}{} } - case 589: + case 595: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2927 + //line sql.y:2949 { yyVAL.empty = struct{}{} } - case 590: + case 596: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2931 + //line sql.y:2953 { yyVAL.empty = struct{}{} } - case 591: + case 597: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2933 + //line sql.y:2955 { yyVAL.empty = struct{}{} } - case 592: + case 598: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2936 + //line sql.y:2958 { yyVAL.empty = struct{}{} } - case 593: + case 599: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2938 + //line sql.y:2960 { yyVAL.empty = struct{}{} } - case 594: + case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2940 + //line sql.y:2962 { yyVAL.empty = struct{}{} } - case 595: + case 601: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2943 + //line sql.y:2965 { yyVAL.colIdent = ColIdent{} } - case 596: + case 602: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2945 + //line sql.y:2967 { yyVAL.colIdent = yyDollar[2].colIdent } - case 597: + case 603: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2949 + //line sql.y:2971 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 598: + case 604: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2953 + //line sql.y:2975 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 600: + case 606: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2960 + //line sql.y:2982 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 601: + case 607: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2966 + //line sql.y:2988 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 602: + case 608: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2970 + //line sql.y:2992 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 604: + case 610: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2977 + //line sql.y:2999 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 795: + case 803: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3193 + //line sql.y:3217 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 796: + case 804: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3202 + //line sql.y:3226 { decNesting(yylex) } - case 797: + case 805: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3207 + //line sql.y:3231 { forceEOF(yylex) } - case 798: + case 806: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3212 + //line sql.y:3236 { forceEOF(yylex) } - case 799: + case 807: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3216 + //line sql.y:3240 { forceEOF(yylex) } - case 800: + case 808: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3220 + //line sql.y:3244 { forceEOF(yylex) } diff --git a/sql.y b/sql.y index 33c12dc..38ec5ea 100644 --- a/sql.y +++ b/sql.y @@ -115,7 +115,7 @@ func forceEOF(yylex interface{}) { %token LEX_ERROR %left UNION -%token SELECT STREAM INSERT UPDATE DELETE FROM WHERE GROUP HAVING ORDER BY LIMIT OFFSET FOR +%token SELECT STREAM INSERT UPDATE DELETE FROM WHERE GROUP HAVING ORDER BY LIMIT OFFSET FOR PREPARE EXECUTE %token ALL DISTINCT AS EXISTS ASC DESC INTO DUPLICATE KEY DEFAULT SET LOCK KEYS %token VALUES LAST_INSERT_ID %token NEXT VALUE SHARE MODE @@ -199,7 +199,7 @@ func forceEOF(yylex interface{}) { %type command %type select_statement base_select union_lhs union_rhs -%type stream_statement insert_statement update_statement delete_statement set_statement +%type stream_statement insert_statement update_statement delete_statement set_statement prepare_statement execute_statement %type create_statement alter_statement rename_statement drop_statement truncate_statement %type create_table_prefix %type analyze_statement show_statement use_statement other_statement @@ -319,6 +319,8 @@ command: | insert_statement | update_statement | delete_statement +| prepare_statement +| execute_statement | set_statement | create_statement | alter_statement @@ -443,6 +445,26 @@ delete_statement: $$ = &Delete{Comments: Comments($2), Targets: $3, TableExprs: $5, Where: NewWhere(WhereStr, $6)} } +prepare_statement: + PREPARE ID FROM STRING + { + $$ = &Prepare{Name: NewColIdent(string($2)), Stmt: NewStrVal($4)} + } +| PREPARE ID FROM VALUE_ARG + { + $$ = &Prepare{Name: NewColIdent(string($2)), Stmt: NewValArg($4)} + } + +execute_statement: + EXECUTE ID + { + $$ = &Execute{Name: NewColIdent(string($2))} + } +| EXECUTE ID USING column_list + { + $$ = &Execute{Name: NewColIdent(string($2)), Params: $4} + } + from_or_using: FROM {} | USING {} @@ -3080,6 +3102,8 @@ reserved_keyword: | VALUES | WHEN | WHERE +| PREPARE +| EXECUTE /* These are non-reserved Vitess, because they don't cause conflicts in the grammar. diff --git a/token.go b/token.go index 04def0f..4827f27 100644 --- a/token.go +++ b/token.go @@ -164,6 +164,7 @@ var keywords = map[string]int{ "enum": ENUM, "escape": ESCAPE, "escaped": UNUSED, + "execute": EXECUTE, "exists": EXISTS, "exit": UNUSED, "explain": EXPLAIN, @@ -282,6 +283,7 @@ var keywords = map[string]int{ "point": POINT, "polygon": POLYGON, "precision": UNUSED, + "prepare": PREPARE, "primary": PRIMARY, "processlist": PROCESSLIST, "procedure": PROCEDURE, From a4d5ffced50d818267fa96e8a9065b0585626620 Mon Sep 17 00:00:00 2001 From: deatheyes Date: Wed, 19 Dec 2018 13:00:50 +0800 Subject: [PATCH 12/13] update: sed path --- README.md | 18 ++-- analyzer.go | 2 +- analyzer_test.go | 2 +- ast.go | 4 +- ast_test.go | 2 +- dependency/sqltypes/bind_variables.go | 2 +- dependency/sqltypes/bind_variables_test.go | 2 +- dependency/sqltypes/plan_value.go | 2 +- dependency/sqltypes/plan_value_test.go | 2 +- dependency/sqltypes/testing.go | 2 +- dependency/sqltypes/type.go | 2 +- dependency/sqltypes/type_test.go | 2 +- dependency/sqltypes/value.go | 6 +- dependency/sqltypes/value_test.go | 2 +- encodable.go | 2 +- encodable_test.go | 2 +- github_test.go | 2 +- normalizer.go | 4 +- normalizer_test.go | 4 +- parsed_query.go | 4 +- parsed_query_test.go | 4 +- patches/querypb.patch | 4 +- patches/sqlparser.patch | 116 ++++++++++----------- patches/sqltypes.patch | 58 +++++------ redact_query.go | 2 +- token.go | 4 +- 26 files changed, 128 insertions(+), 128 deletions(-) diff --git a/README.md b/README.md index 58d4759..9d4c331 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# sqlparser [![Build Status](https://img.shields.io/travis/xwb1989/sqlparser.svg)](https://travis-ci.org/xwb1989/sqlparser) [![Coverage](https://img.shields.io/coveralls/xwb1989/sqlparser.svg)](https://coveralls.io/github/xwb1989/sqlparser) [![Report card](https://goreportcard.com/badge/github.com/xwb1989/sqlparser)](https://goreportcard.com/report/github.com/xwb1989/sqlparser) [![GoDoc](https://godoc.org/github.com/xwb1989/sqlparser?status.svg)](https://godoc.org/github.com/xwb1989/sqlparser) +# sqlparser [![Build Status](https://img.shields.io/travis/deatheyes/sqlparser.svg)](https://travis-ci.org/deatheyes/sqlparser) [![Coverage](https://img.shields.io/coveralls/deatheyes/sqlparser.svg)](https://coveralls.io/github/deatheyes/sqlparser) [![Report card](https://goreportcard.com/badge/github.com/deatheyes/sqlparser)](https://goreportcard.com/report/github.com/deatheyes/sqlparser) [![GoDoc](https://godoc.org/github.com/deatheyes/sqlparser?status.svg)](https://godoc.org/github.com/deatheyes/sqlparser) Go package for parsing MySQL SQL queries. @@ -13,7 +13,7 @@ It applies the same LICENSE as vitessio/vitess. ```go import ( - "github.com/xwb1989/sqlparser" + "github.com/deatheyes/sqlparser" ) ``` @@ -49,7 +49,7 @@ for { } ``` -See [parse_test.go](https://github.com/xwb1989/sqlparser/blob/master/parse_test.go) for more examples, or read the [godoc](https://godoc.org/github.com/xwb1989/sqlparser). +See [parse_test.go](https://github.com/deatheyes/sqlparser/blob/master/parse_test.go) for more examples, or read the [godoc](https://godoc.org/github.com/deatheyes/sqlparser). ## Porting Instructions @@ -61,7 +61,7 @@ You only need the below if you plan to try and keep this library up to date with ```bash shopt -s nullglob VITESS=${GOPATH?}/src/vitess.io/vitess/go/ -XWB1989=${GOPATH?}/src/github.com/xwb1989/sqlparser/ +XWB1989=${GOPATH?}/src/github.com/deatheyes/sqlparser/ # Create patches for everything that changed LASTIMPORT=1b7879cb91f1dfe1a2dfa06fea96e951e3a7aec5 @@ -96,7 +96,7 @@ TODO: Change these instructions to use git to copy the files, that'll make later ```bash VITESS=${GOPATH?}/src/vitess.io/vitess/go/ -XWB1989=${GOPATH?}/src/github.com/xwb1989/sqlparser/ +XWB1989=${GOPATH?}/src/github.com/deatheyes/sqlparser/ cd ${XWB1989?} @@ -112,8 +112,8 @@ rm dependency/sqltypes/arithmetic.go dependency/sqltypes/arithmetic_test.go depe # Some automated fixes # Fix imports -sed -i '.bak' 's_vitess.io/vitess/go/vt/proto/query_github.com/xwb1989/sqlparser/dependency/querypb_g' *.go dependency/sqltypes/*.go -sed -i '.bak' 's_vitess.io/vitess/go/_github.com/xwb1989/sqlparser/dependency/_g' *.go dependency/sqltypes/*.go +sed -i '.bak' 's_vitess.io/vitess/go/vt/proto/query_github.com/deatheyes/sqlparser/dependency/querypb_g' *.go dependency/sqltypes/*.go +sed -i '.bak' 's_vitess.io/vitess/go/_github.com/deatheyes/sqlparser/dependency/_g' *.go dependency/sqltypes/*.go # Copy the proto, but basically drop everything we don't want cp -pr ${VITESS?}/vt/proto/query dependency/querypb @@ -135,7 +135,7 @@ sed -i '.bak' 's/vterrors.New([^,]*, /errors.New(/g' *.go dependency/sqltypes/*. ```bash VITESS=${GOPATH?}/src/vitess.io/vitess/go/ -XWB1989=${GOPATH?}/src/github.com/xwb1989/sqlparser/ +XWB1989=${GOPATH?}/src/github.com/deatheyes/sqlparser/ cd ${XWB1989?} @@ -147,4 +147,4 @@ diff -u ${VITESS?}/sqltypes/ ${XWB1989?}/dependency/sqltypes/ > ${XWB1989 diff -u ${VITESS?}/bytes2/ ${XWB1989?}/dependency/bytes2/ > ${XWB1989?}/patches/bytes2.patch diff -u ${VITESS?}/vt/proto/query/ ${XWB1989?}/dependency/querypb/ > ${XWB1989?}/patches/querypb.patch diff -u ${VITESS?}/vt/sqlparser/ ${XWB1989?}/ > ${XWB1989?}/patches/sqlparser.patch -``` \ No newline at end of file +``` diff --git a/analyzer.go b/analyzer.go index 8e8eeed..105121d 100644 --- a/analyzer.go +++ b/analyzer.go @@ -25,7 +25,7 @@ import ( "strings" "unicode" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // These constants are used to identify the SQL statement type. diff --git a/analyzer_test.go b/analyzer_test.go index 6d8c1ef..41a5efa 100644 --- a/analyzer_test.go +++ b/analyzer_test.go @@ -21,7 +21,7 @@ import ( "strings" "testing" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestPreview(t *testing.T) { diff --git a/ast.go b/ast.go index 31d9fc9..a196e5f 100644 --- a/ast.go +++ b/ast.go @@ -25,8 +25,8 @@ import ( "log" "strings" - "github.com/xwb1989/sqlparser/dependency/querypb" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // Instructions for creating new types: If a type diff --git a/ast_test.go b/ast_test.go index c02d882..411ac3e 100644 --- a/ast_test.go +++ b/ast_test.go @@ -24,7 +24,7 @@ import ( "testing" "unsafe" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestAppend(t *testing.T) { diff --git a/dependency/sqltypes/bind_variables.go b/dependency/sqltypes/bind_variables.go index 1879e6d..1c80525 100644 --- a/dependency/sqltypes/bind_variables.go +++ b/dependency/sqltypes/bind_variables.go @@ -22,7 +22,7 @@ import ( "reflect" "strconv" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) // NullBindVariable is a bindvar with NULL value. diff --git a/dependency/sqltypes/bind_variables_test.go b/dependency/sqltypes/bind_variables_test.go index ca0636c..ec762b3 100644 --- a/dependency/sqltypes/bind_variables_test.go +++ b/dependency/sqltypes/bind_variables_test.go @@ -21,7 +21,7 @@ import ( "strings" "testing" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestProtoConversions(t *testing.T) { diff --git a/dependency/sqltypes/plan_value.go b/dependency/sqltypes/plan_value.go index 7936a6b..1fe247f 100644 --- a/dependency/sqltypes/plan_value.go +++ b/dependency/sqltypes/plan_value.go @@ -21,7 +21,7 @@ import ( "errors" "fmt" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) // PlanValue represents a value or a list of values for diff --git a/dependency/sqltypes/plan_value_test.go b/dependency/sqltypes/plan_value_test.go index ea85c9c..0aacb7a 100644 --- a/dependency/sqltypes/plan_value_test.go +++ b/dependency/sqltypes/plan_value_test.go @@ -21,7 +21,7 @@ import ( "strings" "testing" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestPlanValueIsNull(t *testing.T) { diff --git a/dependency/sqltypes/testing.go b/dependency/sqltypes/testing.go index 0acaedd..4bfec09 100644 --- a/dependency/sqltypes/testing.go +++ b/dependency/sqltypes/testing.go @@ -17,7 +17,7 @@ limitations under the License. package sqltypes import ( - querypb "github.com/xwb1989/sqlparser/dependency/querypb" + querypb "github.com/deatheyes/sqlparser/dependency/querypb" ) // Functions in this file should only be used for testing. diff --git a/dependency/sqltypes/type.go b/dependency/sqltypes/type.go index 49224e4..37ecd66 100644 --- a/dependency/sqltypes/type.go +++ b/dependency/sqltypes/type.go @@ -19,7 +19,7 @@ package sqltypes import ( "fmt" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) // This file provides wrappers and support diff --git a/dependency/sqltypes/type_test.go b/dependency/sqltypes/type_test.go index 613fcda..af78ed2 100644 --- a/dependency/sqltypes/type_test.go +++ b/dependency/sqltypes/type_test.go @@ -19,7 +19,7 @@ package sqltypes import ( "testing" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestTypeValues(t *testing.T) { diff --git a/dependency/sqltypes/value.go b/dependency/sqltypes/value.go index a3bceee..b42898a 100644 --- a/dependency/sqltypes/value.go +++ b/dependency/sqltypes/value.go @@ -23,10 +23,10 @@ import ( "fmt" "strconv" - "github.com/xwb1989/sqlparser/dependency/bytes2" - "github.com/xwb1989/sqlparser/dependency/hack" + "github.com/deatheyes/sqlparser/dependency/bytes2" + "github.com/deatheyes/sqlparser/dependency/hack" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) var ( diff --git a/dependency/sqltypes/value_test.go b/dependency/sqltypes/value_test.go index 96b137d..21043da 100644 --- a/dependency/sqltypes/value_test.go +++ b/dependency/sqltypes/value_test.go @@ -22,7 +22,7 @@ import ( "strings" "testing" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) const ( diff --git a/encodable.go b/encodable.go index badfa42..561d1c3 100644 --- a/encodable.go +++ b/encodable.go @@ -19,7 +19,7 @@ package sqlparser import ( "bytes" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // This file contains types that are 'Encodable'. diff --git a/encodable_test.go b/encodable_test.go index 3bfc774..d510852 100644 --- a/encodable_test.go +++ b/encodable_test.go @@ -20,7 +20,7 @@ import ( "bytes" "testing" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestEncodable(t *testing.T) { diff --git a/github_test.go b/github_test.go index 01ab03e..24eaf36 100644 --- a/github_test.go +++ b/github_test.go @@ -45,7 +45,7 @@ func TestParsing(t *testing.T) { } if _, err := Parse(test.sql); err != nil { - t.Errorf("https://github.com/xwb1989/sqlparser/issues/%d:\nParse(%q) err = %s, want nil", test.id, test.sql, err) + t.Errorf("https://github.com/deatheyes/sqlparser/issues/%d:\nParse(%q) err = %s, want nil", test.id, test.sql, err) } } } diff --git a/normalizer.go b/normalizer.go index f652031..67017d2 100644 --- a/normalizer.go +++ b/normalizer.go @@ -19,9 +19,9 @@ package sqlparser import ( "fmt" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) // Normalize changes the statement to use bind values, and diff --git a/normalizer_test.go b/normalizer_test.go index 20f7e39..d01c48f 100644 --- a/normalizer_test.go +++ b/normalizer_test.go @@ -21,8 +21,8 @@ import ( "reflect" "testing" - "github.com/xwb1989/sqlparser/dependency/querypb" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestNormalize(t *testing.T) { diff --git a/parsed_query.go b/parsed_query.go index cf4ef03..0659e23 100644 --- a/parsed_query.go +++ b/parsed_query.go @@ -20,8 +20,8 @@ import ( "bytes" "fmt" - "github.com/xwb1989/sqlparser/dependency/querypb" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // ParsedQuery represents a parsed query where diff --git a/parsed_query_test.go b/parsed_query_test.go index dc0e1ac..31f6388 100644 --- a/parsed_query_test.go +++ b/parsed_query_test.go @@ -20,9 +20,9 @@ import ( "reflect" "testing" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/sqltypes" - "github.com/xwb1989/sqlparser/dependency/querypb" + "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestNewParsedQuery(t *testing.T) { diff --git a/patches/querypb.patch b/patches/querypb.patch index abf19ea..fbe94ac 100644 --- a/patches/querypb.patch +++ b/patches/querypb.patch @@ -1,6 +1,6 @@ -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/proto/query/query.pb.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/querypb/query.pb.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/proto/query/query.pb.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/querypb/query.pb.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/proto/query/query.pb.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/querypb/query.pb.go 2017-10-18 18:06:33.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/querypb/query.pb.go 2017-10-18 18:06:33.000000000 -0700 @@ -62,30 +62,24 @@ SplitQueryResponse StreamHealthRequest diff --git a/patches/sqlparser.patch b/patches/sqlparser.patch index 9cdc14e..fd2e3b3 100644 --- a/patches/sqlparser.patch +++ b/patches/sqlparser.patch @@ -1,12 +1,12 @@ -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: .git -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: .gitignore -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: .travis.yml -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: CONTRIBUTORS.md -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: LICENSE.md -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: README.md -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//analyzer.go +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: .git +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: .gitignore +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: .travis.yml +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: CONTRIBUTORS.md +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: LICENSE.md +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: README.md +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//analyzer.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//analyzer.go 2018-06-06 07:45:09.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//analyzer.go 2018-06-06 07:45:09.000000000 -0700 @@ -19,15 +19,13 @@ // analyzer.go contains utility analysis functions. @@ -21,7 +21,7 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer.go /Users - "vitess.io/vitess/go/vt/vterrors" - - vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // These constants are used to identify the SQL statement type. @@ -61,21 +61,21 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer.go /Users } // StringIn is a convenience function that returns -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//analyzer_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//analyzer_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/analyzer_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//analyzer_test.go 2018-06-06 07:45:09.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//analyzer_test.go 2018-06-06 07:45:09.000000000 -0700 @@ -21,7 +21,7 @@ "strings" "testing" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestPreview(t *testing.T) { -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//ast.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//ast.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//ast.go 2018-06-06 07:45:09.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//ast.go 2018-06-06 07:45:09.000000000 -0700 @@ -22,14 +22,11 @@ "encoding/json" "fmt" @@ -89,8 +89,8 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast.go /Users/bram - - querypb "vitess.io/vitess/go/vt/proto/query" - vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" -+ "github.com/xwb1989/sqlparser/dependency/querypb" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // Instructions for creating new types: If a type @@ -138,21 +138,21 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast.go /Users/bram func formatID(buf *TrackedBuffer, original, lowered string) { isDbSystemVariable := false if len(original) > 1 && original[:2] == "@@" { -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//ast_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//ast_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/ast_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//ast_test.go 2018-06-05 07:41:09.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//ast_test.go 2018-06-05 07:41:09.000000000 -0700 @@ -24,7 +24,7 @@ "testing" "unsafe" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestAppend(t *testing.T) { -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//comments.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//comments.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//comments.go 2018-06-06 07:45:09.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//comments.go 2018-06-06 07:45:09.000000000 -0700 @@ -145,7 +145,7 @@ // Single line comment index := strings.Index(sql, "\n") @@ -162,9 +162,9 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments.go /Users } sql = sql[index+1:] } -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//comments_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//comments_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//comments_test.go 2018-06-06 07:45:08.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//comments_test.go 2018-06-06 07:45:08.000000000 -0700 @@ -187,7 +187,7 @@ outSQL: "bar", }, { @@ -183,64 +183,64 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/comments_test.go / }} for _, testCase := range testCases { gotSQL := StripLeadingComments(testCase.input) -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: dependency -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/encodable.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//encodable.go +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: dependency +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/encodable.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//encodable.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/encodable.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//encodable.go 2017-10-18 18:06:33.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//encodable.go 2017-10-18 18:06:33.000000000 -0700 @@ -19,7 +19,7 @@ import ( "bytes" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // This file contains types that are 'Encodable'. -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/encodable_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//encodable_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/encodable_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//encodable_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/encodable_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//encodable_test.go 2017-10-18 18:06:33.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//encodable_test.go 2017-10-18 18:06:33.000000000 -0700 @@ -20,7 +20,7 @@ "bytes" "testing" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestEncodable(t *testing.T) { -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: github_test.go -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/normalizer.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//normalizer.go +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: github_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/normalizer.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//normalizer.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/normalizer.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//normalizer.go 2017-10-18 18:06:33.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//normalizer.go 2017-10-18 18:06:33.000000000 -0700 @@ -19,9 +19,9 @@ import ( "fmt" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) // Normalize changes the statement to use bind values, and -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/normalizer_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//normalizer_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/normalizer_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//normalizer_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/normalizer_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//normalizer_test.go 2017-11-27 22:10:51.000000000 -0800 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//normalizer_test.go 2017-11-27 22:10:51.000000000 -0800 @@ -21,8 +21,8 @@ "reflect" "testing" - "vitess.io/vitess/go/sqltypes" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) func TestNormalize(t *testing.T) { -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//parsed_query.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//parsed_query.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//parsed_query.go 2017-10-22 13:30:37.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//parsed_query.go 2017-10-22 13:30:37.000000000 -0700 @@ -18,12 +18,10 @@ import ( @@ -251,8 +251,8 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query.go /U - "vitess.io/vitess/go/sqltypes" - - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) // ParsedQuery represents a parsed query where @@ -269,48 +269,48 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query.go /U // EncodeValue encodes one bind variable value into the query. func EncodeValue(buf *bytes.Buffer, value *querypb.BindVariable) { if value.Type != querypb.Type_TUPLE { -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//parsed_query_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//parsed_query_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/parsed_query_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//parsed_query_test.go 2017-10-18 18:06:33.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//parsed_query_test.go 2017-10-18 18:06:33.000000000 -0700 @@ -20,9 +20,9 @@ "reflect" "testing" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestNewParsedQuery(t *testing.T) { -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: patches -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: quick -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/redact_query.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//redact_query.go +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: patches +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: quick +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/redact_query.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//redact_query.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/redact_query.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//redact_query.go 2018-06-06 07:42:56.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//redact_query.go 2018-06-06 07:42:56.000000000 -0700 @@ -1,6 +1,6 @@ package sqlparser -import querypb "vitess.io/vitess/go/vt/proto/query" -+import querypb "github.com/xwb1989/sqlparser/dependency/querypb" ++import querypb "github.com/deatheyes/sqlparser/dependency/querypb" // RedactSQLQuery returns a sql string with the params stripped out for display func RedactSQLQuery(sql string) (string, error) { -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: tests -diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/token.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//token.go +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: tests +diff -u /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/token.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//token.go --- /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/token.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//token.go 2018-06-06 07:45:09.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//token.go 2018-06-06 07:45:09.000000000 -0700 @@ -22,8 +22,8 @@ "fmt" "io" - "vitess.io/vitess/go/bytes2" - "vitess.io/vitess/go/sqltypes" -+ "github.com/xwb1989/sqlparser/dependency/bytes2" -+ "github.com/xwb1989/sqlparser/dependency/sqltypes" ++ "github.com/deatheyes/sqlparser/dependency/bytes2" ++ "github.com/deatheyes/sqlparser/dependency/sqltypes" ) const ( Only in /Users/bramp/go/src/vitess.io/vitess/go//vt/sqlparser/: truncate_query.go -Only in /Users/bramp/go/src/github.com/xwb1989/sqlparser//: y.output +Only in /Users/bramp/go/src/github.com/deatheyes/sqlparser//: y.output diff --git a/patches/sqltypes.patch b/patches/sqltypes.patch index 215ba9d..8905473 100644 --- a/patches/sqltypes.patch +++ b/patches/sqltypes.patch @@ -1,8 +1,8 @@ Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: arithmetic.go Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: arithmetic_test.go -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/bind_variables.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/bind_variables.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/bind_variables.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/bind_variables.go 2018-06-04 08:05:24.000000000 -0700 @@ -19,11 +19,10 @@ import ( "errors" @@ -13,7 +13,7 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables.go /Use - "github.com/golang/protobuf/proto" - - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) // NullBindVariable is a bindvar with NULL value. @@ -28,9 +28,9 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables.go /Use } // CopyBindVariables returns a shallow-copy of the given bindVariables map. -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/bind_variables_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/bind_variables_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/bind_variables_test.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/bind_variables_test.go 2018-06-04 08:05:24.000000000 -0700 @@ -21,16 +21,14 @@ "strings" "testing" @@ -38,7 +38,7 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables_test.go - "github.com/golang/protobuf/proto" - - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestProtoConversions(t *testing.T) { @@ -70,9 +70,9 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/bind_variables_test.go Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: event_token.go Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: event_token_test.go -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/plan_value.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/plan_value.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/plan_value.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/plan_value.go 2018-06-04 08:05:24.000000000 -0700 @@ -18,10 +18,10 @@ import ( @@ -83,7 +83,7 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value.go /Users/b - querypb "vitess.io/vitess/go/vt/proto/query" - vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" - "vitess.io/vitess/go/vt/vterrors" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) // PlanValue represents a value or a list of values for @@ -147,15 +147,15 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value.go /Users/b for j, pv := range pvs { switch { case pv.Key != "": -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/plan_value_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/plan_value_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/plan_value_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/plan_value_test.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/plan_value_test.go 2018-06-04 08:05:24.000000000 -0700 @@ -21,7 +21,7 @@ "strings" "testing" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestPlanValueIsNull(t *testing.T) { @@ -164,9 +164,9 @@ Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: proto3_test.go Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: query_response.go Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: result.go Only in /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/: result_test.go -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/testing.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/testing.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/testing.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/testing.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/testing.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/testing.go 2018-06-04 08:06:27.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/testing.go 2018-06-04 08:06:27.000000000 -0700 @@ -17,17 +17,14 @@ package sqltypes @@ -176,7 +176,7 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/testing.go /Users/bram - "strings" - - querypb "vitess.io/vitess/go/vt/proto/query" -+ querypb "github.com/xwb1989/sqlparser/dependency/querypb" ++ querypb "github.com/deatheyes/sqlparser/dependency/querypb" ) // Functions in this file should only be used for testing. @@ -208,44 +208,44 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/testing.go /Users/bram return splits } +*/ -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/type.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/type.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/type.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/type.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/type.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/type.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/type.go 2018-06-04 08:05:24.000000000 -0700 @@ -19,7 +19,7 @@ import ( "fmt" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) // This file provides wrappers and support -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/type_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/type_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/type_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/type_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/type_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/type_test.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/type_test.go 2018-06-04 08:05:24.000000000 -0700 @@ -19,7 +19,7 @@ import ( "testing" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) func TestTypeValues(t *testing.T) { -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/value.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/value.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/value.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/value.go 2018-06-04 08:05:24.000000000 -0700 @@ -23,10 +23,10 @@ "fmt" "strconv" - "vitess.io/vitess/go/bytes2" - "vitess.io/vitess/go/hack" -+ "github.com/xwb1989/sqlparser/dependency/bytes2" -+ "github.com/xwb1989/sqlparser/dependency/hack" ++ "github.com/deatheyes/sqlparser/dependency/bytes2" ++ "github.com/deatheyes/sqlparser/dependency/hack" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) var ( @@ -276,15 +276,15 @@ diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value.go /Users/bramp/ // this may not match MySQL's representation. func (v Value) Raw() []byte { return v.val -diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value_test.go /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/value_test.go +diff -u /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value_test.go /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/value_test.go --- /Users/bramp/go/src/vitess.io/vitess/go//sqltypes/value_test.go 2018-06-05 08:45:47.000000000 -0700 -+++ /Users/bramp/go/src/github.com/xwb1989/sqlparser//dependency/sqltypes/value_test.go 2018-06-04 08:05:24.000000000 -0700 ++++ /Users/bramp/go/src/github.com/deatheyes/sqlparser//dependency/sqltypes/value_test.go 2018-06-04 08:05:24.000000000 -0700 @@ -22,7 +22,7 @@ "strings" "testing" - querypb "vitess.io/vitess/go/vt/proto/query" -+ "github.com/xwb1989/sqlparser/dependency/querypb" ++ "github.com/deatheyes/sqlparser/dependency/querypb" ) const ( diff --git a/redact_query.go b/redact_query.go index a50b9bc..48febcf 100644 --- a/redact_query.go +++ b/redact_query.go @@ -1,6 +1,6 @@ package sqlparser -import querypb "github.com/xwb1989/sqlparser/dependency/querypb" +import querypb "github.com/deatheyes/sqlparser/dependency/querypb" // RedactSQLQuery returns a sql string with the params stripped out for display func RedactSQLQuery(sql string) (string, error) { diff --git a/token.go b/token.go index 4827f27..81b6029 100644 --- a/token.go +++ b/token.go @@ -22,8 +22,8 @@ import ( "fmt" "io" - "github.com/xwb1989/sqlparser/dependency/bytes2" - "github.com/xwb1989/sqlparser/dependency/sqltypes" + "github.com/deatheyes/sqlparser/dependency/bytes2" + "github.com/deatheyes/sqlparser/dependency/sqltypes" ) const ( From 6f1dfd045c7e5ad999054f28c9028f4cfbea766d Mon Sep 17 00:00:00 2001 From: deatheyes Date: Tue, 10 Sep 2019 17:46:15 +0800 Subject: [PATCH 13/13] update: trackedbuff for normalizer --- tracked_buffer.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tracked_buffer.go b/tracked_buffer.go index ec421a5..49cc36d 100644 --- a/tracked_buffer.go +++ b/tracked_buffer.go @@ -36,6 +36,11 @@ type TrackedBuffer struct { *bytes.Buffer bindLocations []bindLocation nodeFormatter NodeFormatter + vPrefix string + fPrefix string + Vars map[string]string + vCount int + fCount int } // NewTrackedBuffer creates a new TrackedBuffer. @@ -43,9 +48,28 @@ func NewTrackedBuffer(nodeFormatter NodeFormatter) *TrackedBuffer { return &TrackedBuffer{ Buffer: new(bytes.Buffer), nodeFormatter: nodeFormatter, + Vars: make(map[string]string), + vPrefix: ":v", + fPrefix: ":f", + vCount: 1, + fCount: 1, } } +// VarArg create variable id +func (buf *TrackedBuffer) VarArg() string { + name := fmt.Sprintf("%s%d", buf.vPrefix, buf.vCount) + buf.vCount++ + return name +} + +// FuncArg create function id +func (buf *TrackedBuffer) FuncArg() string { + name := fmt.Sprintf("%s%d", buf.fPrefix, buf.fCount) + buf.fCount++ + return name +} + // WriteNode function, initiates the writing of a single SQLNode tree by passing // through to Myprintf with a default format string func (buf *TrackedBuffer) WriteNode(node SQLNode) *TrackedBuffer {