From 12be39a1c6f103d02645219582ab7ca3cb2b28a3 Mon Sep 17 00:00:00 2001 From: longfei Date: Fri, 27 Jul 2018 13:47:05 +0800 Subject: [PATCH 1/7] support create table like statement Signed-off-by: longfei --- go/vt/sqlparser/ast.go | 29 +- go/vt/sqlparser/sql.go | 5185 ++++++++++++++++++++-------------------- go/vt/sqlparser/sql.y | 18 + 3 files changed, 2662 insertions(+), 2570 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 4ab597bae47..6567745e399 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -682,6 +682,7 @@ type DDL struct { NewName TableName IfExists bool TableSpec *TableSpec + OptLike *OptLike PartitionSpec *PartitionSpec VindexSpec *VindexSpec VindexCols []ColIdent @@ -706,10 +707,12 @@ const ( func (node *DDL) Format(buf *TrackedBuffer) { switch node.Action { case CreateStr: - if node.TableSpec == nil { - buf.Myprintf("%s table %v", node.Action, node.NewName) - } else { + if node.OptLike != nil { + buf.Myprintf("%s table %v %v", node.Action, node.NewName, node.OptLike) + } else if node.TableSpec != nil { buf.Myprintf("%s table %v %v", node.Action, node.NewName, node.TableSpec) + } else { + buf.Myprintf("%s table %v", node.Action, node.NewName) } case DropStr: exists := "" @@ -763,6 +766,26 @@ const ( ReorganizeStr = "reorganize partition" ) +// OptLike works for create table xxx like xxx +type OptLike struct { + LikeTable TableName +} + +// Format formats the node. +func (node *OptLike) Format(buf *TrackedBuffer) { + buf.Myprintf("like %v", node.LikeTable) +} + +func (node *OptLike) walkSubtree(visit Visit) error { + if node == nil { + return nil + } + if err := Walk(visit, node.LikeTable); err != nil { + return err + } + return nil +} + // PartitionSpec describe partition actions (for alter and create) type PartitionSpec struct { Action string diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index d111bbcd16f..92ba842e689 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1,3 +1,5 @@ +// Code generated by goyacc -o sql.go sql.y. DO NOT EDIT. + //line sql.y:18 package sqlparser @@ -99,6 +101,7 @@ type yySymType struct { vindexParam VindexParam vindexParams []VindexParam showFilter *ShowFilter + OptLike *OptLike } const LEX_ERROR = 57346 @@ -606,1147 +609,1169 @@ var yyExca = [...]int{ 5, 28, -2, 4, -1, 36, - 153, 269, - 154, 269, - -2, 261, - -1, 246, - 111, 596, - -2, 592, - -1, 247, - 111, 597, - -2, 593, - -1, 317, - 81, 759, + 153, 272, + 154, 272, + -2, 264, + -1, 248, + 111, 599, + -2, 595, + -1, 249, + 111, 600, + -2, 596, + -1, 319, + 81, 762, -2, 59, - -1, 318, - 81, 719, + -1, 320, + 81, 722, -2, 60, - -1, 323, - 81, 701, - -2, 558, -1, 325, - 81, 740, - -2, 560, - -1, 591, + 81, 704, + -2, 561, + -1, 327, + 81, 743, + -2, 563, + -1, 595, 53, 42, 55, 42, -2, 44, - -1, 726, - 111, 599, - -2, 595, - -1, 937, - 5, 29, - -2, 403, - -1, 962, - 5, 28, - -2, 533, - -1, 1187, + -1, 731, + 111, 602, + -2, 598, + -1, 943, 5, 29, - -2, 534, - -1, 1232, + -2, 406, + -1, 968, 5, 28, -2, 536, - -1, 1296, + -1, 1193, 5, 29, -2, 537, + -1, 1238, + 5, 28, + -2, 539, + -1, 1302, + 5, 29, + -2, 540, } const yyPrivate = 57344 -const yyLast = 10776 +const yyLast = 11010 var yyAct = [...]int{ - 247, 1287, 876, 538, 662, 1193, 1243, 240, 788, 1094, - 806, 251, 1095, 1122, 828, 225, 1025, 827, 870, 585, - 837, 583, 277, 55, 789, 1091, 965, 981, 322, 1016, - 761, 78, 929, 903, 1068, 191, 758, 691, 191, 751, - 777, 728, 841, 601, 470, 476, 420, 1028, 970, 600, - 537, 3, 217, 316, 785, 866, 304, 490, 856, 587, - 482, 572, 824, 303, 191, 191, 78, 278, 49, 249, - 191, 313, 78, 234, 311, 54, 1320, 1307, 552, 1318, - 911, 1294, 850, 1315, 877, 302, 1306, 1086, 1293, 1181, - 424, 445, 238, 1253, 1117, 1118, 218, 219, 220, 221, - 224, 59, 1130, 1131, 1132, 820, 821, 893, 1116, 819, - 1135, 1133, 186, 182, 183, 184, 989, 49, 602, 988, - 603, 892, 990, 223, 222, 230, 61, 62, 63, 64, - 65, 308, 1268, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 461, 1007, 514, 849, 897, - 1206, 462, 459, 433, 1221, 447, 857, 449, 891, 1170, - 1168, 1069, 216, 456, 457, 1317, 253, 503, 502, 512, - 513, 505, 506, 507, 508, 509, 510, 511, 504, 1314, - 191, 514, 191, 446, 448, 1288, 1280, 1049, 191, 786, - 842, 434, 1244, 1071, 427, 191, 179, 1251, 180, 78, - 78, 78, 78, 180, 78, 1246, 670, 888, 885, 886, - 844, 884, 78, 844, 661, 930, 980, 807, 809, 430, - 844, 979, 978, 185, 422, 1073, 1046, 1077, 194, 1072, - 307, 1070, 1048, 181, 473, 477, 1075, 895, 898, 760, - 1273, 78, 1000, 526, 527, 1074, 1190, 1055, 945, 421, - 1139, 495, 478, 468, 923, 700, 494, 440, 1076, 1078, - 504, 825, 514, 514, 697, 444, 451, 451, 451, 451, - 1278, 451, 890, 1134, 1245, 466, 467, 857, 905, 451, - 1149, 479, 489, 968, 488, 487, 539, 1292, 1036, 487, - 604, 1269, 808, 778, 889, 550, 1252, 1250, 49, 692, - 1140, 489, 191, 1088, 843, 489, 778, 843, 952, 191, - 191, 191, 665, 523, 843, 78, 525, 1034, 1005, 840, - 838, 78, 836, 839, 1282, 842, 1047, 735, 1045, 718, - 720, 721, 894, 480, 719, 920, 921, 922, 436, 437, - 438, 733, 734, 732, 536, 896, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 904, 551, 553, 553, 553, - 553, 553, 553, 553, 553, 561, 562, 563, 564, 554, - 555, 556, 557, 558, 559, 560, 584, 484, 846, 693, - 1298, 426, 1035, 847, 1212, 592, 598, 1040, 1037, 1030, - 1031, 1038, 1033, 1032, 505, 506, 507, 508, 509, 510, - 511, 504, 276, 178, 514, 1039, 1211, 1020, 1019, 488, - 487, 1042, 703, 704, 1008, 524, 1090, 507, 508, 509, - 510, 511, 504, 1300, 78, 514, 489, 1279, 1228, 52, - 191, 191, 78, 76, 191, 942, 699, 191, 1036, 731, - 752, 191, 753, 78, 78, 78, 78, 78, 78, 78, - 78, 1209, 941, 1052, 940, 428, 429, 78, 78, 488, - 487, 1017, 1236, 1316, 191, 1276, 301, 1034, 321, 679, - 488, 487, 695, 698, 425, 307, 489, 21, 1303, 469, - 1236, 1285, 78, 1126, 488, 487, 191, 489, 1125, 488, - 487, 451, 78, 452, 705, 715, 716, 1236, 1248, 451, - 1001, 489, 1236, 469, 1236, 1237, 489, 1202, 1201, 469, - 451, 451, 451, 451, 451, 451, 451, 451, 1113, 469, - 729, 677, 996, 726, 451, 451, 1189, 469, 1146, 1145, - 1142, 1143, 1035, 1142, 1141, 229, 78, 1040, 1037, 1030, - 1031, 1038, 1033, 1032, 935, 469, 966, 991, 539, 722, - 879, 768, 769, 754, 707, 1039, 676, 770, 773, 319, - 675, 1029, 23, 779, 569, 469, 1257, 191, 763, 469, - 191, 191, 191, 191, 191, 724, 666, 664, 659, 442, - 790, 435, 191, 611, 610, 191, 960, 421, 1256, 191, - 961, 765, 1136, 49, 191, 191, 755, 756, 78, 782, - 763, 321, 321, 321, 321, 1185, 321, 967, 540, 775, - 52, 78, 823, 595, 321, 814, 502, 512, 513, 505, - 506, 507, 508, 509, 510, 511, 504, 792, 793, 514, - 795, 23, 56, 791, 1058, 765, 794, 308, 308, 308, - 308, 308, 803, 492, 1092, 309, 812, 966, 811, 817, - 569, 816, 584, 967, 810, 596, 947, 594, 832, 1231, - 23, 308, 191, 568, 730, 78, 813, 78, 594, 944, - 244, 191, 935, 569, 191, 78, 1148, 872, 935, 52, - 188, 1144, 992, 858, 859, 860, 818, 935, 569, 597, - 701, 191, 52, 191, 191, 231, 966, 1308, 1216, 663, - 946, 851, 852, 853, 854, 855, 909, 910, 52, 477, - 312, 868, 869, 943, 871, 423, 1127, 321, 863, 864, - 865, 1129, 1107, 606, 574, 577, 578, 579, 575, 726, - 576, 580, 451, 706, 451, 995, 307, 307, 307, 307, - 307, 867, 451, 52, 971, 972, 874, 912, 862, 861, - 913, 307, 67, 1092, 1021, 729, 974, 673, 463, 713, - 307, 512, 513, 505, 506, 507, 508, 509, 510, 511, - 504, 936, 977, 514, 925, 267, 266, 269, 270, 271, - 272, 766, 767, 800, 268, 273, 953, 774, 801, 798, - 1178, 762, 764, 924, 799, 802, 976, 578, 579, 797, - 796, 781, 1312, 783, 784, 235, 236, 780, 319, 1305, - 908, 78, 1054, 1311, 191, 483, 918, 951, 917, 471, - 1012, 609, 443, 1183, 1004, 431, 321, 432, 78, 1284, - 481, 472, 1283, 439, 321, 984, 962, 805, 1229, 983, - 441, 985, 993, 975, 1002, 321, 321, 321, 321, 321, - 321, 321, 321, 963, 964, 997, 1217, 881, 672, 321, - 321, 582, 986, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 78, 78, 514, 78, 232, - 233, 308, 998, 999, 709, 483, 226, 916, 1262, 227, - 56, 1261, 1018, 1219, 492, 915, 967, 321, 464, 730, - 690, 78, 485, 1270, 1207, 696, 58, 60, 593, 53, - 1, 1009, 1010, 1053, 878, 191, 1024, 887, 1286, 1011, - 1242, 1013, 1014, 1015, 78, 528, 529, 530, 531, 532, - 533, 534, 535, 1041, 1121, 835, 1027, 826, 757, 419, - 1051, 66, 1277, 451, 834, 833, 1249, 567, 771, 771, - 1205, 845, 919, 1006, 771, 848, 591, 1128, 1281, 1062, - 1089, 1061, 1003, 616, 78, 78, 1067, 614, 451, 1093, - 615, 771, 790, 1087, 726, 1104, 1105, 1080, 790, 1106, - 307, 1079, 1108, 613, 1096, 618, 617, 612, 725, 1102, - 202, 1103, 1101, 78, 314, 78, 78, 581, 605, 934, - 321, 873, 486, 68, 1044, 1043, 883, 1114, 932, 1120, - 1119, 1115, 933, 321, 1098, 949, 460, 1124, 204, 937, - 938, 939, 191, 522, 914, 987, 320, 1099, 948, 1097, - 78, 49, 702, 954, 475, 955, 956, 957, 958, 1260, - 1218, 950, 549, 78, 191, 776, 1109, 1110, 1111, 252, - 78, 574, 577, 578, 579, 575, 78, 576, 580, 191, - 717, 971, 972, 265, 262, 264, 263, 321, 708, 321, - 959, 496, 1137, 1138, 250, 667, 668, 321, 242, 671, - 1159, 1150, 674, 306, 1158, 1157, 565, 573, 571, 570, - 973, 319, 1166, 969, 1152, 305, 1057, 1155, 1182, 1180, - 1267, 712, 25, 321, 829, 539, 57, 237, 78, 694, - 78, 78, 78, 191, 78, 1195, 1196, 1197, 1192, 1184, - 78, 19, 18, 17, 20, 16, 308, 15, 78, 14, - 1200, 714, 1198, 1204, 993, 29, 13, 12, 11, 10, - 9, 8, 7, 6, 5, 4, 228, 22, 78, 78, - 78, 2, 1163, 1164, 1179, 1165, 0, 0, 1167, 0, - 1169, 0, 0, 0, 1215, 1214, 0, 727, 0, 0, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 0, 0, 0, 1066, 0, - 78, 78, 0, 474, 725, 0, 0, 0, 1230, 0, - 1208, 0, 1210, 78, 0, 0, 1203, 0, 1096, 1241, - 0, 0, 787, 982, 0, 451, 1247, 78, 0, 0, - 0, 0, 1258, 1220, 0, 307, 0, 0, 189, 0, - 321, 215, 0, 0, 0, 1112, 0, 78, 0, 1232, - 815, 1271, 0, 0, 0, 0, 0, 0, 0, 1275, - 0, 0, 0, 1097, 1096, 241, 1233, 189, 189, 0, - 450, 0, 0, 189, 0, 0, 1290, 0, 0, 1289, - 539, 1254, 0, 1255, 78, 0, 0, 1022, 321, 1295, - 321, 191, 790, 0, 1272, 1259, 0, 0, 0, 78, - 1301, 0, 0, 0, 0, 0, 0, 0, 0, 1097, - 0, 49, 0, 321, 1309, 1310, 0, 875, 0, 78, - 0, 0, 0, 0, 1313, 1160, 899, 0, 0, 900, - 0, 829, 1162, 0, 0, 0, 321, 0, 0, 0, - 0, 0, 0, 1171, 1172, 1173, 902, 0, 1176, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 321, 0, - 0, 1186, 1187, 1188, 0, 1191, 0, 0, 0, 0, - 0, 0, 0, 771, 0, 0, 1100, 982, 0, 771, - 0, 1026, 0, 189, 0, 189, 0, 0, 0, 0, - 0, 189, 1177, 469, 0, 1319, 0, 0, 189, 0, - 0, 0, 200, 0, 0, 321, 0, 321, 1123, 0, - 0, 0, 0, 0, 926, 927, 928, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 211, 1060, 0, 503, - 502, 512, 513, 505, 506, 507, 508, 509, 510, 511, - 504, 0, 1151, 514, 1227, 0, 0, 0, 0, 1083, - 0, 0, 0, 0, 0, 1153, 0, 0, 0, 1238, - 1239, 1240, 1156, 0, 0, 0, 0, 0, 321, 0, - 453, 454, 455, 0, 458, 0, 195, 0, 0, 0, - 0, 0, 465, 197, 0, 0, 1263, 1264, 1265, 1266, - 203, 199, 0, 0, 0, 0, 829, 0, 829, 0, - 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 189, 589, 189, 0, 0, 0, 201, 0, - 1194, 205, 1194, 1194, 1194, 0, 1199, 0, 0, 0, - 0, 1291, 321, 0, 0, 0, 1296, 0, 0, 0, - 1194, 0, 0, 0, 0, 0, 0, 0, 0, 196, - 1302, 0, 0, 1174, 469, 0, 0, 0, 0, 1060, - 321, 321, 321, 0, 0, 0, 0, 0, 0, 0, - 1056, 0, 0, 0, 0, 0, 206, 198, 0, 207, - 208, 209, 210, 214, 0, 1323, 1324, 0, 213, 212, - 503, 502, 512, 513, 505, 506, 507, 508, 509, 510, - 511, 504, 1234, 1235, 514, 0, 0, 0, 0, 0, - 0, 1064, 1065, 0, 0, 1123, 0, 0, 469, 0, - 0, 0, 0, 829, 1081, 1082, 0, 1084, 1085, 1194, - 0, 0, 0, 189, 189, 0, 0, 189, 0, 0, - 189, 0, 0, 0, 678, 0, 0, 0, 0, 1274, - 0, 0, 1026, 829, 503, 502, 512, 513, 505, 506, - 507, 508, 509, 510, 511, 504, 0, 189, 514, 0, - 633, 0, 0, 0, 0, 0, 0, 1147, 0, 0, - 0, 0, 0, 771, 0, 0, 1297, 0, 0, 189, - 0, 0, 0, 0, 660, 0, 0, 0, 678, 1154, - 0, 1304, 669, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 680, 681, 682, 683, 684, 685, 686, - 687, 1194, 0, 0, 0, 0, 0, 688, 689, 0, + 249, 1293, 882, 542, 667, 1249, 793, 1100, 1128, 1097, + 1101, 1031, 587, 1199, 811, 833, 227, 589, 876, 971, + 794, 909, 935, 279, 987, 766, 842, 696, 763, 1022, + 1034, 80, 862, 832, 846, 193, 605, 480, 193, 219, + 253, 976, 324, 829, 756, 782, 733, 1074, 474, 872, + 423, 604, 318, 306, 790, 591, 486, 917, 305, 494, + 541, 3, 576, 236, 193, 193, 80, 280, 49, 251, + 193, 315, 193, 313, 80, 54, 304, 1326, 556, 1313, + 1324, 1300, 1321, 220, 221, 222, 223, 240, 883, 1312, + 1299, 55, 1092, 1274, 507, 506, 516, 517, 509, 510, + 511, 512, 513, 514, 515, 508, 1187, 899, 518, 428, + 226, 1259, 995, 59, 606, 994, 607, 49, 996, 1123, + 1124, 898, 1122, 449, 824, 232, 225, 1136, 1137, 1138, + 224, 310, 825, 826, 1013, 1141, 1139, 855, 61, 62, + 63, 64, 65, 188, 184, 185, 186, 465, 1212, 903, + 437, 1227, 863, 466, 463, 1176, 1174, 218, 897, 1323, + 1075, 460, 461, 1320, 507, 506, 516, 517, 509, 510, + 511, 512, 513, 514, 515, 508, 1294, 1055, 518, 791, + 1250, 1286, 193, 847, 193, 1257, 438, 451, 431, 453, + 193, 675, 1077, 1252, 456, 182, 181, 193, 182, 1052, + 666, 80, 80, 80, 80, 1054, 80, 894, 891, 892, + 986, 890, 936, 849, 80, 450, 452, 812, 814, 985, + 849, 984, 426, 434, 1079, 196, 1083, 183, 1078, 1279, + 1076, 530, 531, 765, 1196, 1081, 1061, 901, 904, 951, + 929, 705, 1006, 80, 1080, 511, 512, 513, 514, 515, + 508, 498, 1275, 518, 187, 444, 830, 1082, 1084, 1145, + 321, 518, 1251, 508, 470, 471, 518, 702, 455, 455, + 455, 455, 896, 455, 863, 68, 424, 856, 493, 492, + 491, 455, 1284, 1094, 1258, 1256, 1096, 1155, 974, 1298, + 1042, 948, 813, 483, 895, 608, 493, 448, 1140, 1053, + 49, 1051, 783, 697, 193, 491, 849, 848, 422, 1146, + 69, 193, 193, 193, 848, 527, 670, 80, 529, 1040, + 1011, 493, 482, 80, 509, 510, 511, 512, 513, 514, + 515, 508, 900, 911, 518, 424, 1288, 440, 441, 442, + 492, 491, 783, 1304, 958, 902, 540, 484, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 493, 555, 557, + 557, 557, 557, 557, 557, 557, 557, 565, 566, 567, + 568, 558, 559, 560, 561, 562, 563, 564, 588, 708, + 709, 430, 740, 698, 1041, 947, 596, 946, 602, 1046, + 1043, 1036, 1037, 1044, 1039, 1038, 738, 739, 737, 488, + 848, 1184, 704, 492, 491, 845, 843, 1045, 841, 844, + 910, 847, 1218, 1048, 492, 491, 454, 723, 725, 726, + 493, 1217, 724, 193, 852, 1026, 492, 491, 80, 853, + 52, 493, 1025, 1014, 193, 193, 80, 180, 193, 703, + 736, 193, 757, 493, 758, 193, 1306, 80, 80, 80, + 80, 80, 80, 80, 80, 492, 491, 432, 433, 1285, + 1234, 80, 80, 1215, 1058, 1042, 255, 1023, 193, 21, + 1282, 246, 493, 1132, 507, 506, 516, 517, 509, 510, + 511, 512, 513, 514, 515, 508, 80, 684, 518, 1131, + 193, 926, 927, 928, 1040, 455, 80, 1242, 1322, 710, + 303, 1007, 682, 455, 1309, 473, 1242, 1291, 1242, 1254, + 473, 321, 1242, 473, 455, 455, 455, 455, 455, 455, + 455, 455, 311, 1242, 1243, 734, 1002, 231, 455, 455, + 309, 1208, 1207, 269, 268, 271, 272, 273, 274, 997, + 80, 731, 270, 275, 1119, 473, 1195, 473, 712, 1152, + 1151, 1148, 1149, 1148, 1147, 727, 729, 190, 885, 1041, + 941, 473, 573, 473, 1046, 1043, 1036, 1037, 1044, 1039, + 1038, 193, 278, 759, 193, 193, 193, 193, 193, 768, + 473, 599, 1045, 681, 680, 671, 193, 314, 1035, 193, + 775, 778, 425, 193, 427, 787, 784, 49, 193, 193, + 760, 761, 80, 78, 669, 770, 664, 615, 614, 780, + 819, 446, 544, 795, 439, 80, 1263, 1262, 457, 458, + 459, 1098, 462, 600, 972, 598, 472, 1142, 797, 798, + 469, 800, 796, 23, 973, 799, 850, 818, 323, 598, + 972, 310, 310, 310, 310, 310, 429, 808, 816, 770, + 817, 973, 768, 1064, 821, 822, 588, 966, 815, 953, + 56, 967, 864, 865, 866, 310, 837, 193, 1191, 950, + 80, 573, 80, 23, 23, 1154, 193, 573, 1150, 193, + 80, 52, 878, 516, 517, 509, 510, 511, 512, 513, + 514, 515, 508, 730, 972, 518, 193, 941, 193, 193, + 941, 1237, 572, 952, 435, 998, 436, 823, 941, 601, + 874, 875, 443, 949, 706, 233, 52, 528, 1314, 445, + 1222, 52, 52, 857, 877, 1133, 668, 573, 532, 533, + 534, 535, 536, 537, 538, 539, 1113, 455, 1001, 455, + 977, 978, 1135, 873, 918, 868, 867, 455, 731, 578, + 581, 582, 583, 579, 880, 580, 584, 1098, 1027, 919, + 980, 734, 678, 52, 467, 805, 803, 1318, 718, 983, + 806, 804, 982, 323, 323, 323, 323, 309, 323, 771, + 772, 802, 801, 1311, 931, 779, 323, 807, 1060, 582, + 583, 237, 238, 914, 1317, 487, 321, 924, 930, 786, + 923, 788, 789, 1018, 1010, 475, 613, 447, 1290, 834, + 485, 1289, 1235, 1008, 1189, 496, 80, 476, 1003, 193, + 1223, 887, 677, 586, 234, 235, 571, 957, 487, 228, + 922, 990, 1268, 80, 229, 595, 56, 989, 921, 991, + 1267, 981, 1225, 973, 665, 468, 695, 489, 999, 1276, + 1213, 968, 674, 701, 58, 60, 597, 53, 969, 970, + 992, 1, 884, 685, 686, 687, 688, 689, 690, 691, + 692, 1030, 893, 1292, 1248, 1127, 840, 693, 694, 1004, + 1005, 80, 80, 831, 80, 67, 310, 421, 66, 323, + 1283, 1015, 1016, 839, 838, 610, 1255, 1211, 1024, 851, + 730, 1012, 858, 859, 860, 861, 1017, 80, 1019, 1020, + 1021, 854, 1134, 1287, 1009, 621, 619, 620, 869, 870, + 871, 193, 1047, 618, 623, 622, 617, 204, 316, 1033, + 80, 585, 609, 879, 490, 242, 1057, 578, 581, 582, + 583, 579, 70, 580, 584, 616, 1050, 977, 978, 455, + 1049, 925, 889, 464, 206, 1068, 672, 673, 526, 1067, + 676, 920, 993, 679, 322, 1105, 707, 1073, 735, 479, + 80, 80, 732, 1099, 455, 741, 742, 743, 744, 745, + 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, + 699, 1102, 1085, 1109, 731, 1107, 1086, 1266, 940, 80, + 323, 80, 80, 1224, 956, 553, 781, 795, 323, 254, + 1121, 722, 719, 795, 955, 267, 1126, 264, 266, 323, + 323, 323, 323, 323, 323, 323, 323, 834, 193, 1130, + 1104, 265, 1125, 323, 323, 1103, 80, 49, 713, 965, + 309, 309, 309, 309, 309, 500, 252, 1093, 244, 80, + 193, 308, 1115, 1116, 1117, 309, 80, 569, 714, 1143, + 1144, 577, 80, 1108, 309, 193, 575, 574, 496, 979, + 975, 323, 307, 1063, 1156, 1186, 1273, 1165, 1032, 1163, + 717, 1120, 25, 1164, 57, 239, 886, 1158, 888, 19, + 1161, 18, 17, 792, 20, 16, 907, 15, 1172, 14, + 29, 13, 12, 11, 10, 9, 8, 7, 6, 1190, + 711, 5, 762, 4, 80, 230, 80, 80, 80, 193, + 80, 820, 776, 776, 1066, 1198, 80, 22, 776, 1201, + 1202, 1203, 310, 2, 80, 0, 1204, 1206, 0, 0, + 0, 999, 0, 0, 0, 776, 1089, 1210, 0, 0, + 0, 0, 202, 0, 80, 80, 80, 0, 0, 0, + 1185, 0, 0, 0, 477, 481, 1220, 0, 767, 769, + 0, 1221, 0, 0, 323, 0, 213, 0, 0, 0, + 1214, 499, 1216, 0, 785, 0, 0, 323, 0, 881, + 0, 0, 0, 834, 0, 834, 80, 80, 905, 0, + 0, 906, 1236, 1226, 735, 0, 0, 0, 0, 80, + 932, 933, 934, 0, 810, 1102, 543, 1253, 908, 1247, + 0, 455, 0, 80, 0, 554, 197, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 1264, 0, 0, 0, + 205, 201, 323, 80, 323, 1277, 0, 0, 0, 0, + 0, 0, 323, 0, 1281, 1238, 1066, 0, 1260, 1103, + 1261, 1102, 1239, 0, 0, 0, 0, 0, 203, 0, + 0, 207, 1296, 0, 0, 0, 0, 0, 323, 0, + 80, 0, 0, 1301, 0, 309, 0, 193, 0, 0, + 0, 1265, 0, 0, 0, 80, 1307, 0, 1029, 198, + 1278, 0, 0, 0, 0, 1103, 0, 49, 0, 0, + 1315, 1316, 0, 0, 0, 80, 0, 795, 0, 0, + 834, 0, 0, 1056, 0, 0, 208, 200, 1319, 209, + 210, 211, 212, 216, 1183, 473, 0, 0, 215, 214, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032, + 834, 0, 0, 1169, 1170, 0, 1171, 0, 0, 1173, + 0, 1175, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 507, 506, 516, 517, 509, 510, 511, 512, 513, + 514, 515, 508, 0, 0, 518, 938, 0, 988, 0, + 939, 1325, 0, 0, 0, 0, 0, 943, 944, 945, + 0, 0, 0, 0, 700, 323, 954, 1209, 1070, 1071, + 0, 960, 0, 961, 962, 963, 964, 0, 0, 0, + 0, 1087, 1088, 473, 1090, 1091, 0, 720, 721, 0, + 0, 0, 0, 0, 0, 0, 478, 0, 1181, 0, + 0, 0, 0, 1062, 0, 0, 0, 0, 1180, 473, + 0, 0, 0, 1028, 323, 0, 323, 0, 0, 507, + 506, 516, 517, 509, 510, 511, 512, 513, 514, 515, + 508, 191, 0, 518, 217, 0, 0, 0, 0, 323, + 543, 0, 0, 773, 774, 507, 506, 516, 517, 509, + 510, 511, 512, 513, 514, 515, 508, 0, 243, 518, + 191, 191, 323, 0, 0, 0, 191, 0, 191, 0, + 0, 507, 506, 516, 517, 509, 510, 511, 512, 513, + 514, 515, 508, 0, 323, 518, 0, 0, 0, 0, + 0, 309, 1069, 0, 0, 0, 0, 0, 0, 776, + 0, 1167, 1106, 988, 828, 776, 0, 0, 0, 0, + 1153, 0, 507, 506, 516, 517, 509, 510, 511, 512, + 513, 514, 515, 508, 0, 0, 518, 1072, 0, 0, + 1219, 323, 1160, 323, 1129, 0, 502, 0, 505, 0, + 0, 0, 0, 0, 519, 520, 521, 522, 523, 524, + 525, 0, 503, 504, 501, 507, 506, 516, 517, 509, + 510, 511, 512, 513, 514, 515, 508, 0, 1157, 518, + 0, 0, 0, 0, 1118, 0, 0, 0, 191, 0, + 191, 1159, 0, 0, 0, 0, 191, 0, 1162, 0, + 0, 0, 0, 191, 323, 0, 0, 0, 937, 915, + 916, 0, 481, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1228, 1229, 0, 1230, 1231, 1232, 507, 506, + 516, 517, 509, 510, 511, 512, 513, 514, 515, 508, + 0, 0, 518, 507, 506, 516, 517, 509, 510, 511, + 512, 513, 514, 515, 508, 0, 1200, 518, 1200, 1200, + 1200, 0, 1205, 0, 1166, 0, 0, 0, 323, 0, + 0, 1168, 0, 0, 942, 0, 1200, 0, 0, 0, + 0, 0, 1177, 1178, 1179, 0, 0, 1182, 0, 959, + 0, 0, 0, 0, 0, 0, 323, 323, 323, 0, + 1192, 1193, 1194, 0, 1197, 0, 0, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 191, 593, 191, + 506, 516, 517, 509, 510, 511, 512, 513, 514, 515, + 508, 0, 0, 518, 0, 0, 0, 0, 1240, 1241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 241, 0, 0, 0, 1161, 241, 241, 621, 0, 772, - 772, 241, 0, 0, 0, 772, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 241, 241, 241, 241, 0, - 189, 0, 772, 189, 189, 189, 189, 189, 0, 634, - 0, 0, 0, 0, 0, 804, 0, 0, 189, 0, - 0, 0, 589, 0, 0, 0, 0, 189, 189, 0, - 647, 648, 649, 650, 651, 652, 653, 0, 654, 655, - 656, 657, 658, 635, 636, 637, 638, 619, 620, 0, - 0, 622, 0, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 639, 640, 641, 642, 643, 644, 645, - 646, 0, 0, 0, 1175, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1222, 1223, 0, 1224, 1225, - 1226, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 189, 0, 0, 189, 503, 502, - 512, 513, 505, 506, 507, 508, 509, 510, 511, 504, - 0, 129, 514, 0, 189, 588, 906, 907, 0, 0, - 97, 0, 0, 0, 678, 0, 111, 0, 113, 0, - 0, 147, 122, 0, 0, 0, 241, 503, 502, 512, - 513, 505, 506, 507, 508, 509, 510, 511, 504, 0, - 190, 514, 590, 0, 0, 880, 1299, 882, 0, 90, - 0, 0, 0, 0, 0, 901, 0, 0, 498, 0, - 501, 0, 0, 0, 0, 0, 515, 516, 517, 518, - 519, 520, 521, 241, 499, 500, 497, 503, 502, 512, - 513, 505, 506, 507, 508, 509, 510, 511, 504, 241, - 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, - 1321, 135, 0, 0, 150, 102, 101, 140, 110, 0, - 0, 0, 93, 0, 142, 131, 162, 189, 132, 141, - 114, 154, 136, 161, 193, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 0, 0, 148, 164, 177, - 88, 0, 0, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 0, 0, 0, 0, 0, 23, 24, - 50, 26, 27, 0, 0, 0, 0, 0, 189, 0, - 79, 0, 112, 174, 137, 99, 165, 42, 241, 0, - 0, 0, 28, 47, 48, 0, 0, 0, 0, 241, - 0, 0, 0, 0, 0, 0, 1023, 0, 0, 678, - 0, 0, 37, 1063, 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 772, 0, 0, 0, 931, 0, - 772, 1050, 0, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 0, 0, 514, 503, 502, - 512, 513, 505, 506, 507, 508, 509, 510, 511, 504, - 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 31, 33, 32, - 35, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 43, - 44, 0, 0, 45, 46, 34, 0, 189, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 39, 0, - 40, 41, 189, 0, 0, 0, 0, 0, 0, 0, + 0, 1129, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1200, 0, 1327, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1305, + 0, 0, 0, 1233, 0, 1280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1244, 1245, + 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1059, 0, 776, + 0, 0, 1303, 0, 0, 1269, 1270, 1271, 1272, 191, + 0, 0, 0, 0, 0, 0, 0, 1310, 0, 0, + 191, 191, 0, 0, 191, 0, 0, 191, 0, 0, + 0, 683, 0, 0, 0, 0, 0, 1200, 0, 0, + 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, + 1297, 0, 0, 0, 191, 1302, 0, 0, 0, 1110, + 1111, 0, 0, 1112, 0, 0, 1114, 0, 0, 1308, + 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, + 0, 23, 24, 50, 26, 27, 0, 0, 0, 0, + 0, 0, 0, 0, 1329, 1330, 0, 0, 0, 0, + 42, 0, 0, 0, 0, 28, 47, 48, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, + 0, 0, 243, 243, 0, 37, 777, 777, 243, 52, + 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 243, 243, 243, 243, 0, 191, 0, 777, + 191, 191, 191, 191, 191, 0, 0, 0, 0, 0, + 0, 0, 809, 0, 0, 191, 0, 0, 0, 593, + 0, 0, 1188, 0, 191, 191, 0, 0, 0, 543, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 31, 33, 32, 35, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, + 38, 39, 0, 40, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 0, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 0, 0, 191, 495, 912, 913, 0, 0, 99, 0, + 0, 0, 683, 0, 113, 0, 115, 0, 0, 149, + 124, 0, 0, 0, 243, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, + 497, 0, 0, 0, 51, 0, 0, 92, 0, 0, + 0, 0, 492, 491, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, + 0, 243, 0, 1295, 543, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, + 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, + 95, 0, 144, 133, 164, 191, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 638, 0, 0, 150, 166, 179, 90, 0, + 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 81, 0, + 114, 176, 139, 101, 167, 0, 0, 243, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 683, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 589, 0, 0, 0, + 0, 0, 0, 777, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 652, 653, 654, 655, 656, 657, 658, 0, + 659, 660, 661, 662, 663, 640, 641, 642, 643, 624, + 625, 0, 0, 627, 191, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 644, 645, 646, 647, 648, + 649, 650, 651, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 407, 397, 0, 369, - 410, 347, 361, 418, 362, 363, 390, 333, 377, 129, - 359, 0, 350, 328, 356, 329, 348, 371, 97, 374, - 346, 399, 380, 409, 111, 416, 113, 385, 1213, 147, - 122, 0, 0, 373, 401, 375, 395, 368, 391, 338, - 384, 411, 360, 388, 412, 0, 0, 0, 77, 0, - 830, 831, 0, 0, 0, 0, 0, 90, 0, 387, - 406, 358, 389, 327, 386, 0, 331, 334, 417, 404, - 353, 354, 994, 0, 0, 0, 0, 0, 0, 372, - 376, 392, 366, 0, 772, 0, 0, 0, 0, 0, - 0, 351, 0, 383, 189, 0, 0, 335, 332, 0, - 0, 370, 0, 0, 0, 337, 0, 352, 393, 0, - 326, 396, 402, 367, 192, 405, 365, 364, 408, 135, - 0, 0, 150, 102, 101, 140, 110, 400, 349, 357, - 93, 355, 142, 131, 162, 382, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 160, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 330, 0, 148, 164, 177, 88, 345, - 403, 170, 171, 172, 173, 0, 0, 89, 126, 87, - 105, 145, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 341, 344, 339, 340, 378, 379, 413, 414, 415, - 394, 336, 0, 342, 343, 0, 398, 381, 79, 0, - 112, 174, 137, 99, 165, 407, 397, 0, 369, 410, - 347, 361, 418, 362, 363, 390, 333, 377, 129, 359, - 0, 350, 328, 356, 329, 348, 371, 97, 374, 346, - 399, 380, 409, 111, 416, 113, 385, 0, 147, 122, - 0, 0, 373, 401, 375, 395, 368, 391, 338, 384, - 411, 360, 388, 412, 0, 0, 0, 77, 0, 830, - 831, 0, 0, 0, 0, 0, 90, 0, 387, 406, - 358, 389, 327, 386, 0, 331, 334, 417, 404, 353, - 354, 0, 0, 0, 0, 0, 0, 0, 372, 376, - 392, 366, 0, 0, 0, 0, 0, 0, 0, 0, - 351, 0, 383, 0, 0, 0, 335, 332, 0, 0, - 370, 0, 0, 0, 337, 0, 352, 393, 0, 326, - 396, 402, 367, 192, 405, 365, 364, 408, 135, 0, - 0, 150, 102, 101, 140, 110, 400, 349, 357, 93, - 355, 142, 131, 162, 382, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 330, 0, 148, 164, 177, 88, 345, 403, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 341, 344, 339, 340, 378, 379, 413, 414, 415, 394, - 336, 0, 342, 343, 0, 398, 381, 79, 0, 112, - 174, 137, 99, 165, 407, 397, 0, 369, 410, 347, - 361, 418, 362, 363, 390, 333, 377, 129, 359, 0, - 350, 328, 356, 329, 348, 371, 97, 374, 346, 399, - 380, 409, 111, 416, 113, 385, 0, 147, 122, 0, - 0, 373, 401, 375, 395, 368, 391, 338, 384, 411, - 360, 388, 412, 52, 0, 0, 77, 0, 0, 0, - 0, 0, 0, 0, 0, 90, 0, 387, 406, 358, - 389, 327, 386, 0, 331, 334, 417, 404, 353, 354, - 0, 0, 0, 0, 0, 0, 0, 372, 376, 392, - 366, 0, 0, 0, 0, 0, 0, 0, 0, 351, - 0, 383, 0, 0, 0, 335, 332, 0, 0, 370, - 0, 0, 0, 337, 0, 352, 393, 0, 326, 396, - 402, 367, 192, 405, 365, 364, 408, 135, 0, 0, - 150, 102, 101, 140, 110, 400, 349, 357, 93, 355, - 142, 131, 162, 382, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, - 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, - 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, - 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 330, 0, 148, 164, 177, 88, 345, 403, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 341, - 344, 339, 340, 378, 379, 413, 414, 415, 394, 336, - 0, 342, 343, 0, 398, 381, 79, 0, 112, 174, - 137, 99, 165, 407, 397, 0, 369, 410, 347, 361, - 418, 362, 363, 390, 333, 377, 129, 359, 0, 350, - 328, 356, 329, 348, 371, 97, 374, 346, 399, 380, - 409, 111, 416, 113, 385, 0, 147, 122, 0, 0, - 373, 401, 375, 395, 368, 391, 338, 384, 411, 360, - 388, 412, 0, 0, 0, 77, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 0, 387, 406, 358, 389, - 327, 386, 0, 331, 334, 417, 404, 353, 354, 0, - 0, 0, 0, 0, 0, 0, 372, 376, 392, 366, - 0, 0, 0, 0, 0, 0, 1059, 0, 351, 0, - 383, 0, 0, 0, 335, 332, 0, 0, 370, 0, - 0, 0, 337, 0, 352, 393, 0, 326, 396, 402, - 367, 192, 405, 365, 364, 408, 135, 0, 0, 150, - 102, 101, 140, 110, 400, 349, 357, 93, 355, 142, - 131, 162, 382, 132, 141, 114, 154, 136, 161, 193, - 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, - 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, - 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, - 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 330, 0, 148, 164, 177, 88, 345, 403, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 341, 344, - 339, 340, 378, 379, 413, 414, 415, 394, 336, 0, - 342, 343, 0, 398, 381, 79, 0, 112, 174, 137, - 99, 165, 407, 397, 0, 369, 410, 347, 361, 418, - 362, 363, 390, 333, 377, 129, 359, 0, 350, 328, - 356, 329, 348, 371, 97, 374, 346, 399, 380, 409, - 111, 416, 113, 385, 0, 147, 122, 0, 0, 373, - 401, 375, 395, 368, 391, 338, 384, 411, 360, 388, - 412, 0, 0, 0, 246, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 387, 406, 358, 389, 327, - 386, 0, 331, 334, 417, 404, 353, 354, 0, 0, - 0, 0, 0, 0, 0, 372, 376, 392, 366, 0, - 0, 0, 0, 0, 0, 723, 0, 351, 0, 383, - 0, 0, 0, 335, 332, 0, 0, 370, 0, 0, - 0, 337, 0, 352, 393, 0, 326, 396, 402, 367, - 192, 405, 365, 364, 408, 135, 0, 0, 150, 102, - 101, 140, 110, 400, 349, 357, 93, 355, 142, 131, - 162, 382, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 330, - 0, 148, 164, 177, 88, 345, 403, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 341, 344, 339, - 340, 378, 379, 413, 414, 415, 394, 336, 0, 342, - 343, 0, 398, 381, 79, 0, 112, 174, 137, 99, - 165, 407, 397, 0, 369, 410, 347, 361, 418, 362, - 363, 390, 333, 377, 129, 359, 0, 350, 328, 356, - 329, 348, 371, 97, 374, 346, 399, 380, 409, 111, - 416, 113, 385, 0, 147, 122, 0, 0, 373, 401, - 375, 395, 368, 391, 338, 384, 411, 360, 388, 412, - 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 387, 406, 358, 389, 327, 386, - 0, 331, 334, 417, 404, 353, 354, 0, 0, 0, - 0, 0, 0, 0, 372, 376, 392, 366, 0, 0, - 0, 0, 0, 0, 0, 0, 351, 0, 383, 0, - 0, 0, 335, 332, 0, 0, 370, 0, 0, 0, - 337, 0, 352, 393, 0, 326, 396, 402, 367, 192, - 405, 365, 364, 408, 135, 0, 0, 150, 102, 101, - 140, 110, 400, 349, 357, 93, 355, 142, 131, 162, - 382, 132, 141, 114, 154, 136, 161, 193, 169, 152, - 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, - 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, - 156, 94, 176, 85, 167, 84, 86, 166, 127, 153, - 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, - 133, 116, 134, 104, 124, 123, 125, 0, 330, 0, - 148, 164, 177, 88, 345, 403, 170, 171, 172, 173, - 0, 0, 89, 126, 87, 105, 145, 108, 115, 138, - 175, 130, 143, 92, 163, 146, 341, 344, 339, 340, - 378, 379, 413, 414, 415, 394, 336, 0, 342, 343, - 0, 398, 381, 79, 0, 112, 174, 137, 99, 165, - 407, 397, 0, 369, 410, 347, 361, 418, 362, 363, - 390, 333, 377, 129, 359, 0, 350, 328, 356, 329, - 348, 371, 97, 374, 346, 399, 380, 409, 111, 416, - 113, 385, 0, 147, 122, 0, 0, 373, 401, 375, - 395, 368, 391, 338, 384, 411, 360, 388, 412, 0, - 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, - 0, 90, 0, 387, 406, 358, 389, 327, 386, 0, - 331, 334, 417, 404, 353, 354, 0, 0, 0, 0, - 0, 0, 0, 372, 376, 392, 366, 0, 0, 0, - 0, 0, 0, 0, 0, 351, 0, 383, 0, 0, - 0, 335, 332, 0, 0, 370, 0, 0, 0, 337, - 0, 352, 393, 0, 326, 396, 402, 367, 192, 405, - 365, 364, 408, 135, 0, 0, 150, 102, 101, 140, - 110, 400, 349, 357, 93, 355, 142, 131, 162, 382, - 132, 141, 114, 154, 136, 161, 193, 169, 152, 168, - 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, - 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, - 94, 176, 85, 167, 84, 86, 166, 127, 153, 159, - 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, - 116, 134, 104, 124, 123, 125, 0, 330, 0, 148, - 164, 177, 88, 345, 403, 170, 171, 172, 173, 0, - 0, 89, 126, 87, 105, 145, 108, 115, 138, 175, - 130, 143, 92, 163, 146, 341, 344, 339, 340, 378, - 379, 413, 414, 415, 394, 336, 0, 342, 343, 0, - 398, 381, 79, 0, 112, 174, 137, 99, 165, 407, - 397, 0, 369, 410, 347, 361, 418, 362, 363, 390, - 333, 377, 129, 359, 0, 350, 328, 356, 329, 348, - 371, 97, 374, 346, 399, 380, 409, 111, 416, 113, - 385, 0, 147, 122, 0, 0, 373, 401, 375, 395, - 368, 391, 338, 384, 411, 360, 388, 412, 0, 0, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, - 90, 0, 387, 406, 358, 389, 327, 386, 0, 331, - 334, 417, 404, 353, 354, 0, 0, 0, 0, 0, - 0, 0, 372, 376, 392, 366, 0, 0, 0, 0, - 0, 0, 0, 0, 351, 0, 383, 0, 0, 0, - 335, 332, 0, 0, 370, 0, 0, 0, 337, 0, - 352, 393, 0, 326, 396, 402, 367, 192, 405, 365, - 364, 408, 135, 0, 0, 150, 102, 101, 140, 110, - 400, 349, 357, 93, 355, 142, 131, 162, 382, 132, - 141, 114, 154, 136, 161, 193, 169, 152, 168, 80, - 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, - 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, - 176, 85, 167, 84, 324, 166, 127, 153, 159, 121, - 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, - 134, 104, 124, 123, 125, 0, 330, 0, 148, 164, - 177, 88, 345, 403, 170, 171, 172, 173, 0, 0, - 89, 325, 323, 105, 145, 108, 115, 138, 175, 130, - 143, 92, 163, 146, 341, 344, 339, 340, 378, 379, - 413, 414, 415, 394, 336, 0, 342, 343, 0, 398, - 381, 79, 0, 112, 174, 137, 99, 165, 407, 397, - 0, 369, 410, 347, 361, 418, 362, 363, 390, 333, - 377, 129, 359, 0, 350, 328, 356, 329, 348, 371, - 97, 374, 346, 399, 380, 409, 111, 416, 113, 385, - 0, 147, 122, 0, 0, 373, 401, 375, 395, 368, - 391, 338, 384, 411, 360, 388, 412, 0, 0, 0, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 90, - 0, 387, 406, 358, 389, 327, 386, 0, 331, 334, - 417, 404, 353, 354, 0, 0, 0, 0, 0, 0, - 0, 372, 376, 392, 366, 0, 0, 0, 0, 0, - 0, 0, 0, 351, 0, 383, 0, 0, 0, 335, - 332, 0, 0, 370, 0, 0, 0, 337, 0, 352, - 393, 0, 326, 396, 402, 367, 192, 405, 365, 364, - 408, 135, 0, 0, 150, 102, 101, 140, 110, 400, - 349, 357, 93, 355, 142, 131, 162, 382, 132, 141, - 114, 154, 136, 161, 193, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 330, 0, 148, 164, 177, - 88, 345, 403, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 341, 344, 339, 340, 378, 379, 413, - 414, 415, 394, 336, 0, 342, 343, 0, 398, 381, - 79, 0, 112, 174, 137, 99, 165, 407, 397, 0, - 369, 410, 347, 361, 418, 362, 363, 390, 333, 377, - 129, 359, 0, 350, 328, 356, 329, 348, 371, 97, - 374, 346, 399, 380, 409, 111, 416, 113, 385, 0, - 147, 122, 0, 0, 373, 401, 375, 395, 368, 391, - 338, 384, 411, 360, 388, 412, 0, 0, 0, 77, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, - 387, 406, 358, 389, 327, 386, 0, 331, 334, 417, - 404, 353, 354, 0, 0, 0, 0, 0, 0, 0, - 372, 376, 392, 366, 0, 0, 0, 0, 0, 0, - 0, 0, 351, 0, 383, 0, 0, 0, 335, 332, - 0, 0, 370, 0, 0, 0, 337, 0, 352, 393, - 0, 326, 396, 402, 367, 192, 405, 365, 364, 408, - 135, 0, 0, 150, 102, 101, 140, 110, 400, 349, - 357, 93, 355, 142, 131, 162, 382, 132, 141, 114, - 154, 136, 161, 193, 169, 152, 168, 80, 151, 599, - 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, - 139, 96, 100, 95, 128, 155, 156, 94, 176, 85, - 167, 84, 324, 166, 127, 153, 159, 121, 118, 83, - 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, - 124, 123, 125, 0, 330, 0, 148, 164, 177, 88, - 345, 403, 170, 171, 172, 173, 0, 0, 89, 325, - 323, 105, 145, 108, 115, 138, 175, 130, 143, 92, - 163, 146, 341, 344, 339, 340, 378, 379, 413, 414, - 415, 394, 336, 0, 342, 343, 0, 398, 381, 79, - 0, 112, 174, 137, 99, 165, 407, 397, 0, 369, - 410, 347, 361, 418, 362, 363, 390, 333, 377, 129, - 359, 0, 350, 328, 356, 329, 348, 371, 97, 374, - 346, 399, 380, 409, 111, 416, 113, 385, 0, 147, - 122, 0, 0, 373, 401, 375, 395, 368, 391, 338, - 384, 411, 360, 388, 412, 0, 0, 0, 77, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 0, 387, - 406, 358, 389, 327, 386, 0, 331, 334, 417, 404, - 353, 354, 0, 0, 0, 0, 0, 0, 0, 372, - 376, 392, 366, 0, 0, 0, 0, 0, 0, 0, - 0, 351, 0, 383, 0, 0, 0, 335, 332, 0, - 0, 370, 0, 0, 0, 337, 0, 352, 393, 0, - 326, 396, 402, 367, 192, 405, 365, 364, 408, 135, - 0, 0, 150, 102, 101, 140, 110, 400, 349, 357, - 93, 355, 142, 131, 162, 382, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 315, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 324, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 330, 0, 148, 164, 177, 88, 345, - 403, 170, 171, 172, 173, 0, 0, 89, 325, 323, - 318, 317, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 341, 344, 339, 340, 378, 379, 413, 414, 415, - 394, 336, 0, 342, 343, 0, 398, 381, 79, 0, - 112, 174, 137, 99, 165, 129, 0, 0, 759, 0, - 248, 0, 0, 0, 97, 0, 245, 0, 0, 0, - 111, 288, 113, 0, 0, 147, 122, 0, 0, 0, - 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 246, 267, 266, 269, 270, 271, - 272, 0, 0, 90, 268, 273, 274, 275, 0, 0, - 243, 260, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 258, 239, 0, 0, 0, 299, - 0, 259, 0, 0, 254, 255, 256, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 297, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 289, 298, 295, - 296, 293, 294, 292, 291, 290, 300, 281, 282, 283, - 284, 286, 0, 285, 79, 0, 112, 174, 137, 99, - 165, 129, 0, 0, 0, 0, 248, 0, 0, 0, - 97, 0, 245, 0, 0, 0, 111, 288, 113, 0, - 0, 147, 122, 0, 0, 0, 0, 279, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 469, - 246, 267, 266, 269, 270, 271, 272, 0, 0, 90, - 268, 273, 274, 275, 0, 0, 243, 260, 0, 287, + 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 258, 0, 0, 0, 0, 299, 0, 259, 0, 0, - 254, 255, 256, 261, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 192, 0, 0, 297, - 0, 135, 0, 0, 150, 102, 101, 140, 110, 0, - 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, - 114, 154, 136, 161, 193, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 0, 0, 148, 164, 177, - 88, 0, 0, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 289, 298, 295, 296, 293, 294, 292, - 291, 290, 300, 281, 282, 283, 284, 286, 0, 285, - 79, 0, 112, 174, 137, 99, 165, 129, 0, 0, - 0, 0, 248, 0, 0, 0, 97, 0, 245, 0, - 0, 0, 111, 288, 113, 0, 0, 147, 122, 0, - 0, 0, 0, 279, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 246, 267, 266, 269, - 270, 271, 272, 0, 0, 90, 268, 273, 274, 275, - 0, 0, 243, 260, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 258, 239, 0, 0, - 0, 299, 0, 259, 0, 0, 254, 255, 256, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 0, 0, 297, 0, 135, 0, 0, - 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, - 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, - 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, - 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, - 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 0, 0, 148, 164, 177, 88, 0, 0, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 289, - 298, 295, 296, 293, 294, 292, 291, 290, 300, 281, - 282, 283, 284, 286, 0, 285, 79, 0, 112, 174, - 137, 99, 165, 129, 0, 0, 0, 0, 248, 0, - 0, 0, 97, 0, 245, 0, 0, 0, 111, 288, - 113, 0, 0, 147, 122, 0, 0, 0, 0, 279, - 280, 0, 0, 0, 0, 0, 0, 822, 0, 52, - 0, 0, 246, 267, 266, 269, 270, 271, 272, 0, - 0, 90, 268, 273, 274, 275, 0, 0, 243, 260, - 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 258, 0, 0, 0, 0, 299, 0, 259, - 0, 0, 254, 255, 256, 261, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 297, 0, 135, 0, 0, 150, 102, 101, 140, - 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, - 132, 141, 114, 154, 136, 161, 193, 169, 152, 168, - 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, - 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, - 94, 176, 85, 167, 84, 86, 166, 127, 153, 159, - 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, - 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, - 164, 177, 88, 0, 0, 170, 171, 172, 173, 0, - 0, 89, 126, 87, 105, 145, 108, 115, 138, 175, - 130, 143, 92, 163, 146, 289, 298, 295, 296, 293, - 294, 292, 291, 290, 300, 281, 282, 283, 284, 286, - 23, 285, 79, 0, 112, 174, 137, 99, 165, 0, - 0, 0, 129, 0, 0, 0, 0, 248, 0, 0, - 0, 97, 0, 245, 0, 0, 0, 111, 288, 113, - 0, 0, 147, 122, 0, 0, 0, 0, 279, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 246, 267, 266, 269, 270, 271, 272, 0, 0, - 90, 268, 273, 274, 275, 0, 0, 243, 260, 0, - 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 258, 0, 0, 0, 0, 299, 0, 259, 0, - 0, 254, 255, 256, 261, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, - 297, 0, 135, 0, 0, 150, 102, 101, 140, 110, - 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, - 141, 114, 154, 136, 161, 193, 169, 152, 168, 80, - 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, - 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, - 176, 85, 167, 84, 86, 166, 127, 153, 159, 121, - 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, - 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, - 177, 88, 0, 0, 170, 171, 172, 173, 0, 0, - 89, 126, 87, 105, 145, 108, 115, 138, 175, 130, - 143, 92, 163, 146, 289, 298, 295, 296, 293, 294, - 292, 291, 290, 300, 281, 282, 283, 284, 286, 0, - 285, 79, 0, 112, 174, 137, 99, 165, 129, 0, - 0, 0, 0, 248, 0, 0, 0, 97, 0, 245, - 0, 0, 0, 111, 288, 113, 0, 0, 147, 122, - 0, 0, 0, 0, 279, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 246, 267, 266, - 269, 270, 271, 272, 0, 0, 90, 268, 273, 274, - 275, 0, 0, 243, 260, 0, 287, 0, 0, 0, + 409, 399, 0, 371, 412, 349, 363, 420, 364, 365, + 392, 335, 379, 131, 361, 0, 352, 330, 358, 331, + 350, 373, 99, 376, 348, 401, 382, 411, 113, 418, + 115, 387, 0, 149, 124, 0, 0, 375, 403, 377, + 397, 370, 393, 340, 386, 413, 362, 390, 414, 0, + 0, 0, 79, 0, 835, 836, 0, 0, 0, 0, + 0, 92, 0, 389, 408, 360, 391, 329, 388, 0, + 333, 336, 419, 406, 355, 356, 1000, 0, 0, 0, + 0, 0, 0, 374, 378, 394, 368, 0, 0, 0, + 0, 0, 0, 0, 0, 353, 0, 385, 0, 0, + 0, 337, 334, 777, 0, 372, 0, 0, 0, 339, + 0, 354, 395, 191, 328, 398, 404, 369, 194, 407, + 367, 366, 410, 137, 0, 0, 152, 104, 103, 142, + 112, 402, 351, 359, 95, 357, 144, 133, 164, 384, + 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 178, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 332, 0, 150, + 166, 179, 90, 347, 405, 172, 173, 174, 175, 0, + 0, 91, 128, 89, 107, 147, 110, 117, 140, 177, + 132, 145, 94, 165, 148, 343, 346, 341, 342, 380, + 381, 415, 416, 417, 396, 338, 0, 344, 345, 0, + 400, 383, 81, 0, 114, 176, 139, 101, 167, 409, + 399, 0, 371, 412, 349, 363, 420, 364, 365, 392, + 335, 379, 131, 361, 0, 352, 330, 358, 331, 350, + 373, 99, 376, 348, 401, 382, 411, 113, 418, 115, + 387, 0, 149, 124, 0, 0, 375, 403, 377, 397, + 370, 393, 340, 386, 413, 362, 390, 414, 0, 0, + 0, 79, 0, 835, 836, 0, 0, 0, 0, 0, + 92, 0, 389, 408, 360, 391, 329, 388, 0, 333, + 336, 419, 406, 355, 356, 0, 0, 0, 0, 0, + 0, 0, 374, 378, 394, 368, 0, 0, 0, 0, + 0, 0, 0, 0, 353, 0, 385, 0, 0, 0, + 337, 334, 0, 0, 372, 0, 0, 0, 339, 0, + 354, 395, 0, 328, 398, 404, 369, 194, 407, 367, + 366, 410, 137, 0, 0, 152, 104, 103, 142, 112, + 402, 351, 359, 95, 357, 144, 133, 164, 384, 134, + 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, + 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, + 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, + 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, + 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 332, 0, 150, 166, + 179, 90, 347, 405, 172, 173, 174, 175, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, + 145, 94, 165, 148, 343, 346, 341, 342, 380, 381, + 415, 416, 417, 396, 338, 0, 344, 345, 0, 400, + 383, 81, 0, 114, 176, 139, 101, 167, 409, 399, + 0, 371, 412, 349, 363, 420, 364, 365, 392, 335, + 379, 131, 361, 0, 352, 330, 358, 331, 350, 373, + 99, 376, 348, 401, 382, 411, 113, 418, 115, 387, + 0, 149, 124, 0, 0, 375, 403, 377, 397, 370, + 393, 340, 386, 413, 362, 390, 414, 52, 0, 0, + 79, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 0, 389, 408, 360, 391, 329, 388, 0, 333, 336, + 419, 406, 355, 356, 0, 0, 0, 0, 0, 0, + 0, 374, 378, 394, 368, 0, 0, 0, 0, 0, + 0, 0, 0, 353, 0, 385, 0, 0, 0, 337, + 334, 0, 0, 372, 0, 0, 0, 339, 0, 354, + 395, 0, 328, 398, 404, 369, 194, 407, 367, 366, + 410, 137, 0, 0, 152, 104, 103, 142, 112, 402, + 351, 359, 95, 357, 144, 133, 164, 384, 134, 143, + 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 332, 0, 150, 166, 179, + 90, 347, 405, 172, 173, 174, 175, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, + 94, 165, 148, 343, 346, 341, 342, 380, 381, 415, + 416, 417, 396, 338, 0, 344, 345, 0, 400, 383, + 81, 0, 114, 176, 139, 101, 167, 409, 399, 0, + 371, 412, 349, 363, 420, 364, 365, 392, 335, 379, + 131, 361, 0, 352, 330, 358, 331, 350, 373, 99, + 376, 348, 401, 382, 411, 113, 418, 115, 387, 0, + 149, 124, 0, 0, 375, 403, 377, 397, 370, 393, + 340, 386, 413, 362, 390, 414, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 389, 408, 360, 391, 329, 388, 0, 333, 336, 419, + 406, 355, 356, 0, 0, 0, 0, 0, 0, 0, + 374, 378, 394, 368, 0, 0, 0, 0, 0, 0, + 1065, 0, 353, 0, 385, 0, 0, 0, 337, 334, + 0, 0, 372, 0, 0, 0, 339, 0, 354, 395, + 0, 328, 398, 404, 369, 194, 407, 367, 366, 410, + 137, 0, 0, 152, 104, 103, 142, 112, 402, 351, + 359, 95, 357, 144, 133, 164, 384, 134, 143, 116, + 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 332, 0, 150, 166, 179, 90, + 347, 405, 172, 173, 174, 175, 0, 0, 91, 128, + 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, + 165, 148, 343, 346, 341, 342, 380, 381, 415, 416, + 417, 396, 338, 0, 344, 345, 0, 400, 383, 81, + 0, 114, 176, 139, 101, 167, 409, 399, 0, 371, + 412, 349, 363, 420, 364, 365, 392, 335, 379, 131, + 361, 0, 352, 330, 358, 331, 350, 373, 99, 376, + 348, 401, 382, 411, 113, 418, 115, 387, 0, 149, + 124, 0, 0, 375, 403, 377, 397, 370, 393, 340, + 386, 413, 362, 390, 414, 0, 0, 0, 248, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 0, 389, + 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, + 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, + 378, 394, 368, 0, 0, 0, 0, 0, 0, 728, + 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, + 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, + 328, 398, 404, 369, 194, 407, 367, 366, 410, 137, + 0, 0, 152, 104, 103, 142, 112, 402, 351, 359, + 95, 357, 144, 133, 164, 384, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 332, 0, 150, 166, 179, 90, 347, + 405, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 343, 346, 341, 342, 380, 381, 415, 416, 417, + 396, 338, 0, 344, 345, 0, 400, 383, 81, 0, + 114, 176, 139, 101, 167, 409, 399, 0, 371, 412, + 349, 363, 420, 364, 365, 392, 335, 379, 131, 361, + 0, 352, 330, 358, 331, 350, 373, 99, 376, 348, + 401, 382, 411, 113, 418, 115, 387, 0, 149, 124, + 0, 0, 375, 403, 377, 397, 370, 393, 340, 386, + 413, 362, 390, 414, 0, 0, 0, 79, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 389, 408, + 360, 391, 329, 388, 0, 333, 336, 419, 406, 355, + 356, 0, 0, 0, 0, 0, 0, 0, 374, 378, + 394, 368, 0, 0, 0, 0, 0, 0, 0, 0, + 353, 0, 385, 0, 0, 0, 337, 334, 0, 0, + 372, 0, 0, 0, 339, 0, 354, 395, 0, 328, + 398, 404, 369, 194, 407, 367, 366, 410, 137, 0, + 0, 152, 104, 103, 142, 112, 402, 351, 359, 95, + 357, 144, 133, 164, 384, 134, 143, 116, 156, 138, + 163, 195, 171, 154, 170, 82, 153, 162, 93, 146, + 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, + 102, 97, 130, 157, 158, 96, 178, 87, 169, 86, + 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 332, 0, 150, 166, 179, 90, 347, 405, + 172, 173, 174, 175, 0, 0, 91, 128, 89, 107, + 147, 110, 117, 140, 177, 132, 145, 94, 165, 148, + 343, 346, 341, 342, 380, 381, 415, 416, 417, 396, + 338, 0, 344, 345, 0, 400, 383, 81, 0, 114, + 176, 139, 101, 167, 409, 399, 0, 371, 412, 349, + 363, 420, 364, 365, 392, 335, 379, 131, 361, 0, + 352, 330, 358, 331, 350, 373, 99, 376, 348, 401, + 382, 411, 113, 418, 115, 387, 0, 149, 124, 0, + 0, 375, 403, 377, 397, 370, 393, 340, 386, 413, + 362, 390, 414, 0, 0, 0, 248, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 0, 389, 408, 360, + 391, 329, 388, 0, 333, 336, 419, 406, 355, 356, + 0, 0, 0, 0, 0, 0, 0, 374, 378, 394, + 368, 0, 0, 0, 0, 0, 0, 0, 0, 353, + 0, 385, 0, 0, 0, 337, 334, 0, 0, 372, + 0, 0, 0, 339, 0, 354, 395, 0, 328, 398, + 404, 369, 194, 407, 367, 366, 410, 137, 0, 0, + 152, 104, 103, 142, 112, 402, 351, 359, 95, 357, + 144, 133, 164, 384, 134, 143, 116, 156, 138, 163, + 195, 171, 154, 170, 82, 153, 162, 93, 146, 84, + 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, + 97, 130, 157, 158, 96, 178, 87, 169, 86, 88, + 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 332, 0, 150, 166, 179, 90, 347, 405, 172, + 173, 174, 175, 0, 0, 91, 128, 89, 107, 147, + 110, 117, 140, 177, 132, 145, 94, 165, 148, 343, + 346, 341, 342, 380, 381, 415, 416, 417, 396, 338, + 0, 344, 345, 0, 400, 383, 81, 0, 114, 176, + 139, 101, 167, 409, 399, 0, 371, 412, 349, 363, + 420, 364, 365, 392, 335, 379, 131, 361, 0, 352, + 330, 358, 331, 350, 373, 99, 376, 348, 401, 382, + 411, 113, 418, 115, 387, 0, 149, 124, 0, 0, + 375, 403, 377, 397, 370, 393, 340, 386, 413, 362, + 390, 414, 0, 0, 0, 79, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 0, 389, 408, 360, 391, + 329, 388, 0, 333, 336, 419, 406, 355, 356, 0, + 0, 0, 0, 0, 0, 0, 374, 378, 394, 368, + 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, + 385, 0, 0, 0, 337, 334, 0, 0, 372, 0, + 0, 0, 339, 0, 354, 395, 0, 328, 398, 404, + 369, 194, 407, 367, 366, 410, 137, 0, 0, 152, + 104, 103, 142, 112, 402, 351, 359, 95, 357, 144, + 133, 164, 384, 134, 143, 116, 156, 138, 163, 195, + 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, + 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, + 130, 157, 158, 96, 178, 87, 169, 86, 326, 168, + 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 332, 0, 150, 166, 179, 90, 347, 405, 172, 173, + 174, 175, 0, 0, 91, 327, 325, 107, 147, 110, + 117, 140, 177, 132, 145, 94, 165, 148, 343, 346, + 341, 342, 380, 381, 415, 416, 417, 396, 338, 0, + 344, 345, 0, 400, 383, 81, 0, 114, 176, 139, + 101, 167, 409, 399, 0, 371, 412, 349, 363, 420, + 364, 365, 392, 335, 379, 131, 361, 0, 352, 330, + 358, 331, 350, 373, 99, 376, 348, 401, 382, 411, + 113, 418, 115, 387, 0, 149, 124, 0, 0, 375, + 403, 377, 397, 370, 393, 340, 386, 413, 362, 390, + 414, 0, 0, 0, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 389, 408, 360, 391, 329, + 388, 0, 333, 336, 419, 406, 355, 356, 0, 0, + 0, 0, 0, 0, 0, 374, 378, 394, 368, 0, + 0, 0, 0, 0, 0, 0, 0, 353, 0, 385, + 0, 0, 0, 337, 334, 0, 0, 372, 0, 0, + 0, 339, 0, 354, 395, 0, 328, 398, 404, 369, + 194, 407, 367, 366, 410, 137, 0, 0, 152, 104, + 103, 142, 112, 402, 351, 359, 95, 357, 144, 133, + 164, 384, 134, 143, 116, 156, 138, 163, 195, 171, + 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, + 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, + 157, 158, 96, 178, 87, 169, 86, 88, 168, 129, + 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 332, + 0, 150, 166, 179, 90, 347, 405, 172, 173, 174, + 175, 0, 0, 91, 128, 89, 107, 147, 110, 117, + 140, 177, 132, 145, 94, 165, 148, 343, 346, 341, + 342, 380, 381, 415, 416, 417, 396, 338, 0, 344, + 345, 0, 400, 383, 81, 0, 114, 176, 139, 101, + 167, 409, 399, 0, 371, 412, 349, 363, 420, 364, + 365, 392, 335, 379, 131, 361, 0, 352, 330, 358, + 331, 350, 373, 99, 376, 348, 401, 382, 411, 113, + 418, 115, 387, 0, 149, 124, 0, 0, 375, 403, + 377, 397, 370, 393, 340, 386, 413, 362, 390, 414, + 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 389, 408, 360, 391, 329, 388, + 0, 333, 336, 419, 406, 355, 356, 0, 0, 0, + 0, 0, 0, 0, 374, 378, 394, 368, 0, 0, + 0, 0, 0, 0, 0, 0, 353, 0, 385, 0, + 0, 0, 337, 334, 0, 0, 372, 0, 0, 0, + 339, 0, 354, 395, 0, 328, 398, 404, 369, 194, + 407, 367, 366, 410, 137, 0, 0, 152, 104, 103, + 142, 112, 402, 351, 359, 95, 357, 144, 133, 164, + 384, 134, 143, 116, 156, 138, 163, 195, 171, 154, + 170, 82, 153, 603, 93, 146, 84, 160, 151, 122, + 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, + 158, 96, 178, 87, 169, 86, 326, 168, 129, 155, + 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 332, 0, + 150, 166, 179, 90, 347, 405, 172, 173, 174, 175, + 0, 0, 91, 327, 325, 107, 147, 110, 117, 140, + 177, 132, 145, 94, 165, 148, 343, 346, 341, 342, + 380, 381, 415, 416, 417, 396, 338, 0, 344, 345, + 0, 400, 383, 81, 0, 114, 176, 139, 101, 167, + 409, 399, 0, 371, 412, 349, 363, 420, 364, 365, + 392, 335, 379, 131, 361, 0, 352, 330, 358, 331, + 350, 373, 99, 376, 348, 401, 382, 411, 113, 418, + 115, 387, 0, 149, 124, 0, 0, 375, 403, 377, + 397, 370, 393, 340, 386, 413, 362, 390, 414, 0, + 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 389, 408, 360, 391, 329, 388, 0, + 333, 336, 419, 406, 355, 356, 0, 0, 0, 0, + 0, 0, 0, 374, 378, 394, 368, 0, 0, 0, + 0, 0, 0, 0, 0, 353, 0, 385, 0, 0, + 0, 337, 334, 0, 0, 372, 0, 0, 0, 339, + 0, 354, 395, 0, 328, 398, 404, 369, 194, 407, + 367, 366, 410, 137, 0, 0, 152, 104, 103, 142, + 112, 402, 351, 359, 95, 357, 144, 133, 164, 384, + 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, + 82, 153, 317, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 178, 87, 169, 86, 326, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 332, 0, 150, + 166, 179, 90, 347, 405, 172, 173, 174, 175, 0, + 0, 91, 327, 325, 320, 319, 110, 117, 140, 177, + 132, 145, 94, 165, 148, 343, 346, 341, 342, 380, + 381, 415, 416, 417, 396, 338, 0, 344, 345, 0, + 400, 383, 81, 0, 114, 176, 139, 101, 167, 131, + 0, 0, 764, 0, 250, 0, 0, 0, 99, 0, + 247, 0, 0, 0, 113, 290, 115, 0, 0, 149, + 124, 0, 0, 0, 0, 281, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 248, 269, + 268, 271, 272, 273, 274, 0, 0, 92, 270, 275, + 276, 277, 0, 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 258, 0, 0, - 0, 0, 299, 0, 259, 0, 0, 254, 255, 256, - 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 297, 0, 135, 0, - 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, - 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 0, 0, 148, 164, 177, 88, 0, 0, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 289, 298, 295, 296, 293, 294, 292, 291, 290, 300, - 281, 282, 283, 284, 286, 129, 285, 79, 0, 112, - 174, 137, 99, 165, 97, 0, 0, 0, 0, 0, - 111, 288, 113, 0, 0, 147, 122, 0, 0, 0, - 0, 279, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 246, 267, 266, 269, 270, 271, - 272, 0, 0, 90, 268, 273, 274, 275, 0, 0, - 0, 260, 0, 287, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 260, 241, + 0, 0, 0, 301, 0, 261, 0, 0, 256, 257, + 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 0, 299, 0, 137, + 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, + 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, + 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 291, 300, 297, 298, 295, 296, 294, 293, 292, + 302, 283, 284, 285, 286, 288, 0, 287, 81, 0, + 114, 176, 139, 101, 167, 131, 0, 0, 0, 0, + 250, 0, 0, 0, 99, 0, 247, 0, 0, 0, + 113, 290, 115, 0, 0, 149, 124, 0, 0, 0, + 0, 281, 282, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 473, 248, 269, 268, 271, 272, 273, + 274, 0, 0, 92, 270, 275, 276, 277, 0, 0, + 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 258, 0, 0, 0, 0, 299, - 0, 259, 0, 0, 254, 255, 256, 261, 0, 0, + 0, 0, 0, 259, 260, 0, 0, 0, 0, 301, + 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 297, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 1322, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 289, 298, 295, - 296, 293, 294, 292, 291, 290, 300, 281, 282, 283, - 284, 286, 129, 285, 79, 0, 112, 174, 137, 99, - 165, 97, 0, 0, 0, 0, 0, 111, 288, 113, - 0, 0, 147, 122, 0, 0, 0, 0, 279, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 246, 267, 266, 269, 270, 271, 272, 0, 0, - 90, 268, 273, 274, 275, 0, 0, 0, 260, 0, - 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 194, 0, 0, 299, 0, 137, 0, 0, 152, 104, + 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, + 164, 0, 134, 143, 116, 156, 138, 163, 195, 171, + 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, + 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, + 157, 158, 96, 178, 87, 169, 86, 88, 168, 129, + 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 150, 166, 179, 90, 0, 0, 172, 173, 174, + 175, 0, 0, 91, 128, 89, 107, 147, 110, 117, + 140, 177, 132, 145, 94, 165, 148, 291, 300, 297, + 298, 295, 296, 294, 293, 292, 302, 283, 284, 285, + 286, 288, 0, 287, 81, 0, 114, 176, 139, 101, + 167, 131, 0, 0, 0, 0, 250, 0, 0, 0, + 99, 0, 247, 0, 0, 0, 113, 290, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 281, 282, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 248, 269, 268, 271, 272, 273, 274, 0, 0, 92, + 270, 275, 276, 277, 0, 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 258, 0, 0, 0, 0, 299, 0, 259, 0, - 0, 254, 255, 256, 261, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, - 297, 0, 135, 0, 0, 150, 102, 101, 140, 110, - 0, 0, 0, 93, 0, 142, 131, 162, 0, 132, - 141, 114, 154, 136, 161, 193, 169, 152, 168, 80, - 151, 160, 91, 144, 82, 158, 149, 120, 106, 107, - 81, 0, 139, 96, 100, 95, 128, 155, 156, 94, - 176, 85, 167, 84, 86, 166, 127, 153, 159, 121, - 118, 83, 157, 119, 117, 109, 98, 103, 133, 116, - 134, 104, 124, 123, 125, 0, 0, 0, 148, 164, - 177, 88, 0, 0, 170, 171, 172, 173, 0, 0, - 89, 126, 87, 105, 145, 108, 115, 138, 175, 130, - 143, 92, 163, 146, 289, 298, 295, 296, 293, 294, - 292, 291, 290, 300, 281, 282, 283, 284, 286, 129, - 285, 79, 0, 112, 174, 137, 99, 165, 97, 0, - 0, 0, 0, 0, 111, 0, 113, 0, 0, 147, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, + 260, 241, 0, 0, 0, 301, 0, 261, 0, 0, + 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 194, 0, 0, 299, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 179, + 90, 0, 0, 172, 173, 174, 175, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, + 94, 165, 148, 291, 300, 297, 298, 295, 296, 294, + 293, 292, 302, 283, 284, 285, 286, 288, 0, 287, + 81, 0, 114, 176, 139, 101, 167, 131, 0, 0, + 0, 0, 250, 0, 0, 0, 99, 0, 247, 0, + 0, 0, 113, 290, 115, 0, 0, 149, 124, 0, + 0, 0, 0, 281, 282, 0, 0, 0, 0, 0, + 0, 827, 0, 52, 0, 0, 248, 269, 268, 271, + 272, 273, 274, 0, 0, 92, 270, 275, 276, 277, + 0, 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 259, 260, 0, 0, 0, + 0, 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 503, 502, 512, 513, 505, 506, 507, - 508, 509, 510, 511, 504, 0, 0, 514, 0, 0, + 0, 0, 194, 0, 0, 299, 0, 137, 0, 0, + 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, + 144, 133, 164, 0, 134, 143, 116, 156, 138, 163, + 195, 171, 154, 170, 82, 153, 162, 93, 146, 84, + 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, + 97, 130, 157, 158, 96, 178, 87, 169, 86, 88, + 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 0, 0, 150, 166, 179, 90, 0, 0, 172, + 173, 174, 175, 0, 0, 91, 128, 89, 107, 147, + 110, 117, 140, 177, 132, 145, 94, 165, 148, 291, + 300, 297, 298, 295, 296, 294, 293, 292, 302, 283, + 284, 285, 286, 288, 23, 287, 81, 0, 114, 176, + 139, 101, 167, 0, 0, 0, 131, 0, 0, 0, + 0, 250, 0, 0, 0, 99, 0, 247, 0, 0, + 0, 113, 290, 115, 0, 0, 149, 124, 0, 0, + 0, 0, 281, 282, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 248, 269, 268, 271, 272, + 273, 274, 0, 0, 92, 270, 275, 276, 277, 0, + 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 192, 0, 0, 0, 0, 135, - 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, - 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 160, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 0, 0, 148, 164, 177, 88, 0, - 0, 170, 171, 172, 173, 0, 0, 89, 126, 87, - 105, 145, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 0, 0, 0, 491, 0, 0, 0, 79, 97, - 112, 174, 137, 99, 165, 111, 0, 113, 0, 0, - 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 493, 0, 0, 0, 0, 0, 0, 90, 0, - 0, 0, 0, 488, 487, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 259, 260, 0, 0, 0, 0, + 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 194, 0, 0, 299, 0, 137, 0, 0, 152, + 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, + 133, 164, 0, 134, 143, 116, 156, 138, 163, 195, + 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, + 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, + 130, 157, 158, 96, 178, 87, 169, 86, 88, 168, + 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 150, 166, 179, 90, 0, 0, 172, 173, + 174, 175, 0, 0, 91, 128, 89, 107, 147, 110, + 117, 140, 177, 132, 145, 94, 165, 148, 291, 300, + 297, 298, 295, 296, 294, 293, 292, 302, 283, 284, + 285, 286, 288, 0, 287, 81, 0, 114, 176, 139, + 101, 167, 131, 0, 0, 0, 0, 250, 0, 0, + 0, 99, 0, 247, 0, 0, 0, 113, 290, 115, + 0, 0, 149, 124, 0, 0, 0, 0, 281, 282, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 248, 269, 268, 271, 272, 273, 274, 0, 0, + 92, 270, 275, 276, 277, 0, 0, 245, 262, 0, + 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 259, 260, 0, 0, 0, 0, 301, 0, 261, 0, + 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, + 299, 0, 137, 0, 0, 152, 104, 103, 142, 112, + 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, + 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, + 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, + 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, + 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, + 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 150, 166, + 179, 90, 0, 0, 172, 173, 174, 175, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, + 145, 94, 165, 148, 291, 300, 297, 298, 295, 296, + 294, 293, 292, 302, 283, 284, 285, 286, 288, 131, + 287, 81, 0, 114, 176, 139, 101, 167, 99, 0, + 0, 0, 0, 0, 113, 290, 115, 0, 0, 149, + 124, 0, 0, 0, 0, 281, 282, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 248, 269, + 268, 271, 272, 273, 274, 0, 0, 92, 270, 275, + 276, 277, 0, 0, 0, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, - 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, - 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, - 154, 136, 161, 193, 169, 152, 168, 80, 151, 160, - 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, - 139, 96, 100, 95, 128, 155, 156, 94, 176, 85, - 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, - 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, - 124, 123, 125, 0, 0, 0, 148, 164, 177, 88, - 0, 0, 170, 171, 172, 173, 0, 0, 89, 126, - 87, 105, 145, 108, 115, 138, 175, 130, 143, 92, - 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 0, 0, 0, 0, 0, 0, 0, 79, - 97, 112, 174, 137, 99, 165, 111, 0, 113, 0, - 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 260, 0, + 0, 0, 0, 301, 0, 261, 0, 0, 256, 257, + 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 0, 299, 0, 137, + 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, + 95, 0, 144, 133, 164, 1328, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, + 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 291, 300, 297, 298, 295, 296, 294, 293, 292, + 302, 283, 284, 285, 286, 288, 131, 287, 81, 0, + 114, 176, 139, 101, 167, 99, 0, 0, 0, 0, + 0, 113, 290, 115, 0, 0, 149, 124, 0, 0, + 0, 0, 281, 282, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 248, 269, 268, 271, 272, + 273, 274, 0, 0, 92, 270, 275, 276, 277, 0, + 0, 0, 262, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 0, 0, 0, 90, - 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 259, 260, 0, 0, 0, 0, + 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 194, 0, 0, 299, 0, 137, 0, 0, 152, + 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, + 133, 164, 0, 134, 143, 116, 156, 138, 163, 195, + 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, + 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, + 130, 157, 158, 96, 178, 87, 169, 86, 88, 168, + 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 150, 166, 179, 90, 0, 0, 172, 173, + 174, 175, 0, 0, 91, 128, 89, 107, 147, 110, + 117, 140, 177, 132, 145, 94, 165, 148, 291, 300, + 297, 298, 295, 296, 294, 293, 292, 302, 283, 284, + 285, 286, 288, 131, 287, 81, 0, 114, 176, 139, + 101, 167, 99, 0, 0, 0, 0, 0, 113, 0, + 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 79, 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, 507, 506, 516, + 517, 509, 510, 511, 512, 513, 514, 515, 508, 0, + 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, + 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, + 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, + 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 178, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, + 166, 179, 90, 0, 0, 172, 173, 174, 175, 0, + 0, 91, 128, 89, 107, 147, 110, 117, 140, 177, + 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, + 0, 0, 81, 99, 114, 176, 139, 101, 167, 113, + 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 74, 0, 69, 0, 0, 0, - 75, 135, 0, 0, 150, 102, 101, 140, 110, 0, - 0, 0, 93, 0, 142, 131, 162, 0, 132, 141, - 114, 154, 136, 161, 71, 169, 152, 168, 80, 151, - 160, 91, 144, 82, 158, 149, 120, 106, 107, 81, - 0, 139, 96, 100, 95, 128, 155, 156, 94, 176, - 85, 167, 84, 86, 166, 127, 153, 159, 121, 118, - 83, 157, 119, 117, 109, 98, 103, 133, 116, 134, - 104, 124, 123, 125, 0, 0, 0, 148, 164, 177, - 88, 0, 0, 170, 171, 172, 173, 0, 0, 89, - 126, 87, 105, 145, 108, 115, 138, 175, 130, 143, - 92, 163, 146, 0, 72, 0, 23, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, - 79, 0, 112, 174, 137, 99, 165, 97, 0, 0, - 0, 0, 0, 111, 0, 113, 0, 0, 147, 122, + 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 77, 0, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 76, 0, 71, + 0, 0, 0, 77, 137, 0, 0, 152, 104, 103, + 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, + 0, 134, 143, 116, 156, 138, 163, 73, 171, 154, + 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, + 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, + 158, 96, 178, 87, 169, 86, 88, 168, 129, 155, + 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 150, 166, 179, 90, 0, 0, 172, 173, 174, 175, + 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, + 177, 132, 145, 94, 165, 148, 0, 74, 0, 0, + 0, 0, 0, 0, 0, 131, 0, 0, 0, 592, + 0, 0, 0, 81, 99, 114, 176, 139, 101, 167, + 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 192, 0, 594, 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, 192, 0, 0, 0, 0, 135, 0, - 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, - 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 0, 0, 148, 164, 177, 88, 0, 0, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 129, 0, 79, 0, 112, - 174, 137, 99, 165, 97, 0, 0, 0, 0, 0, - 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 190, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 194, 0, 0, 0, 0, 137, 0, 0, 152, 104, + 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, + 164, 0, 134, 143, 116, 156, 138, 163, 195, 171, + 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, + 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, + 157, 158, 96, 178, 87, 169, 86, 88, 168, 129, + 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 150, 166, 179, 90, 0, 0, 172, 173, 174, + 175, 0, 0, 91, 128, 89, 107, 147, 110, 117, + 140, 177, 132, 145, 94, 165, 148, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 81, 0, 114, 176, 139, 101, + 167, 99, 0, 0, 0, 0, 0, 113, 0, 115, + 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 79, 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, - 192, 0, 0, 0, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 0, 79, 97, 112, 174, 137, 99, - 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 0, 710, 0, - 0, 711, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, + 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, + 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, + 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, + 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, + 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, + 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, + 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 150, 166, + 179, 90, 0, 0, 172, 173, 174, 175, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, + 145, 94, 165, 148, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 0, 81, 0, 114, 176, 139, 101, 167, 99, 0, + 0, 0, 0, 0, 113, 0, 115, 0, 0, 149, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 192, 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, 192, 0, 0, 0, 0, 135, 0, 0, 150, - 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, - 131, 162, 0, 132, 141, 114, 154, 136, 161, 193, - 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, - 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, - 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, - 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 0, 0, 148, 164, 177, 88, 0, 0, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 0, 79, 0, 112, 174, 137, - 99, 165, 97, 0, 608, 0, 0, 0, 111, 0, - 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, + 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, + 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, + 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 131, 0, 0, 0, 0, 0, 0, 0, 81, 99, + 114, 176, 139, 101, 167, 113, 0, 115, 0, 0, + 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 0, 0, 715, 0, 0, 716, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 607, 0, 0, 0, 0, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 0, 0, 135, 0, 0, 150, 102, 101, 140, - 110, 0, 0, 0, 93, 0, 142, 131, 162, 0, - 132, 141, 114, 154, 136, 161, 193, 169, 152, 168, - 80, 151, 160, 91, 144, 82, 158, 149, 120, 106, - 107, 81, 0, 139, 96, 100, 95, 128, 155, 156, - 94, 176, 85, 167, 84, 86, 166, 127, 153, 159, - 121, 118, 83, 157, 119, 117, 109, 98, 103, 133, - 116, 134, 104, 124, 123, 125, 0, 0, 0, 148, - 164, 177, 88, 0, 0, 170, 171, 172, 173, 0, - 0, 89, 126, 87, 105, 145, 108, 115, 138, 175, - 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 129, 0, 0, 0, 588, 0, - 0, 0, 79, 97, 112, 174, 137, 99, 165, 111, - 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, + 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, + 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, + 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 0, 0, 150, 166, 179, 90, + 0, 0, 172, 173, 174, 175, 0, 0, 91, 128, + 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, + 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 0, 81, + 0, 114, 176, 139, 101, 167, 99, 0, 612, 0, + 0, 0, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 590, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 79, 0, 611, 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, 192, - 0, 0, 0, 0, 135, 0, 0, 150, 102, 101, - 140, 110, 0, 0, 0, 93, 0, 142, 131, 162, - 0, 586, 141, 114, 154, 136, 161, 193, 169, 152, - 168, 80, 151, 160, 91, 144, 82, 158, 149, 120, - 106, 107, 81, 0, 139, 96, 100, 95, 128, 155, - 156, 94, 176, 85, 167, 84, 86, 166, 127, 153, - 159, 121, 118, 83, 157, 119, 117, 109, 98, 103, - 133, 116, 134, 104, 124, 123, 125, 0, 0, 0, - 148, 164, 177, 88, 0, 0, 170, 171, 172, 173, - 0, 0, 89, 126, 87, 105, 145, 108, 115, 138, - 175, 130, 143, 92, 163, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, - 0, 0, 0, 79, 97, 112, 174, 137, 99, 165, - 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 190, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 0, 194, 0, 0, 0, 0, 137, 0, 0, + 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, + 144, 133, 164, 0, 134, 143, 116, 156, 138, 163, + 195, 171, 154, 170, 82, 153, 162, 93, 146, 84, + 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, + 97, 130, 157, 158, 96, 178, 87, 169, 86, 88, + 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 0, 0, 150, 166, 179, 90, 0, 0, 172, + 173, 174, 175, 0, 0, 91, 128, 89, 107, 147, + 110, 117, 140, 177, 132, 145, 94, 165, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, + 0, 0, 592, 0, 0, 0, 81, 99, 114, 176, + 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 192, 0, 594, + 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, - 192, 0, 0, 0, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 0, 79, 97, 112, 174, 137, 99, - 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, + 0, 0, 0, 194, 0, 0, 0, 0, 137, 0, + 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, + 0, 144, 133, 164, 0, 590, 143, 116, 156, 138, + 163, 195, 171, 154, 170, 82, 153, 162, 93, 146, + 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, + 102, 97, 130, 157, 158, 96, 178, 87, 169, 86, + 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 150, 166, 179, 90, 0, 0, + 172, 173, 174, 175, 0, 0, 91, 128, 89, 107, + 147, 110, 117, 140, 177, 132, 145, 94, 165, 148, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 0, 0, 0, 0, 0, 0, 0, 81, 99, 114, + 176, 139, 101, 167, 113, 0, 115, 0, 0, 149, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 192, 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, 190, 0, 590, 0, 0, - 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, + 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, + 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, + 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 131, 0, 0, 0, 0, 0, 0, 0, 81, 99, + 114, 176, 139, 101, 167, 113, 0, 115, 0, 0, + 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, + 0, 594, 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, 192, 0, 0, 0, 0, 135, 0, 0, 150, - 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, - 131, 162, 0, 132, 141, 114, 154, 136, 161, 193, - 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, - 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, - 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, - 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 0, 0, 148, 164, 177, 88, 0, 0, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, - 0, 0, 0, 0, 0, 79, 97, 112, 174, 137, - 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 493, 0, - 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, + 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, + 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, + 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 0, 0, 150, 166, 179, 90, + 0, 0, 172, 173, 174, 175, 0, 0, 91, 128, + 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, + 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 0, 0, 0, 0, 0, 0, 81, + 99, 114, 176, 139, 101, 167, 113, 0, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 0, 497, 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, 192, 0, 0, 0, 0, 135, 0, 0, - 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, - 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, - 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, - 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, - 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 0, 0, 148, 164, 177, 88, 0, 0, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 129, 79, 0, 112, 174, - 137, 99, 165, 566, 97, 0, 0, 0, 0, 0, - 111, 0, 113, 0, 0, 147, 122, 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, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 179, + 90, 0, 0, 172, 173, 174, 175, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, + 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 81, 0, 114, 176, 139, 101, 167, 570, 99, 0, + 0, 0, 0, 0, 113, 0, 115, 0, 0, 149, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 192, 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, - 192, 0, 0, 0, 0, 135, 0, 0, 150, 102, - 101, 140, 110, 0, 0, 0, 93, 0, 142, 131, - 162, 0, 132, 141, 114, 154, 136, 161, 193, 169, - 152, 168, 80, 151, 160, 91, 144, 82, 158, 149, - 120, 106, 107, 81, 0, 139, 96, 100, 95, 128, - 155, 156, 94, 176, 85, 167, 84, 86, 166, 127, - 153, 159, 121, 118, 83, 157, 119, 117, 109, 98, - 103, 133, 116, 134, 104, 124, 123, 125, 0, 0, - 0, 148, 164, 177, 88, 0, 0, 170, 171, 172, - 173, 0, 0, 89, 126, 87, 105, 145, 108, 115, - 138, 175, 130, 143, 92, 163, 146, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, - 0, 0, 0, 0, 79, 97, 112, 174, 137, 99, - 165, 111, 0, 113, 0, 0, 147, 122, 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, 90, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, + 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, + 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, + 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, + 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, + 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, + 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, + 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, + 148, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 131, 0, 0, 0, 0, 0, 0, 0, 81, 99, + 114, 176, 139, 101, 167, 113, 0, 115, 0, 0, + 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, + 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, 192, 0, 0, 0, 0, 135, 0, 0, 150, - 102, 101, 140, 110, 0, 0, 0, 93, 0, 142, - 131, 162, 0, 132, 141, 114, 154, 136, 161, 193, - 169, 152, 168, 80, 151, 160, 91, 144, 82, 158, - 149, 120, 106, 107, 81, 0, 139, 96, 100, 95, - 128, 155, 156, 94, 176, 85, 167, 84, 86, 166, - 127, 153, 159, 121, 118, 83, 157, 119, 117, 109, - 98, 103, 133, 116, 134, 104, 124, 123, 125, 0, - 0, 0, 148, 164, 177, 88, 0, 0, 170, 171, - 172, 173, 0, 0, 89, 126, 87, 105, 145, 108, - 115, 138, 175, 130, 143, 92, 163, 146, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, - 0, 0, 0, 0, 0, 79, 97, 112, 174, 137, - 99, 165, 111, 0, 113, 0, 0, 147, 122, 0, + 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, + 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, + 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, + 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 0, 0, 150, 166, 179, 90, + 0, 0, 172, 173, 174, 175, 0, 0, 91, 128, + 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, + 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 0, 0, 0, 0, 0, 0, 81, + 99, 114, 176, 139, 101, 167, 113, 0, 115, 0, + 0, 149, 124, 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, 90, 0, 0, 0, 0, + 192, 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, - 187, 0, 192, 0, 0, 0, 0, 135, 0, 0, - 150, 102, 101, 140, 110, 0, 0, 0, 93, 0, - 142, 131, 162, 0, 132, 141, 114, 154, 136, 161, - 193, 169, 152, 168, 80, 151, 160, 91, 144, 82, - 158, 149, 120, 106, 107, 81, 0, 139, 96, 100, - 95, 128, 155, 156, 94, 176, 85, 167, 84, 86, - 166, 127, 153, 159, 121, 118, 83, 157, 119, 117, - 109, 98, 103, 133, 116, 134, 104, 124, 123, 125, - 0, 0, 0, 148, 164, 177, 88, 0, 0, 170, - 171, 172, 173, 0, 0, 89, 126, 87, 105, 145, - 108, 115, 138, 175, 130, 143, 92, 163, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, - 0, 0, 0, 0, 0, 0, 79, 97, 112, 174, - 137, 99, 165, 111, 0, 113, 0, 0, 147, 122, + 0, 0, 0, 0, 189, 0, 194, 0, 0, 0, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 179, + 90, 0, 0, 172, 173, 174, 175, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, + 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, + 81, 99, 114, 176, 139, 101, 167, 113, 0, 115, + 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 0, 79, 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, 0, 0, 0, 194, 0, 0, + 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, + 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, + 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, + 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, + 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, + 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, + 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, + 136, 106, 126, 125, 127, 0, 0, 0, 150, 166, + 179, 90, 0, 0, 172, 173, 174, 175, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, + 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, + 0, 81, 99, 114, 176, 139, 101, 167, 113, 0, + 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 0, 0, 135, 0, - 0, 150, 102, 101, 140, 110, 0, 0, 0, 93, - 0, 142, 131, 162, 0, 132, 141, 114, 154, 136, - 161, 193, 169, 152, 168, 80, 151, 160, 91, 144, - 82, 158, 149, 120, 106, 107, 81, 0, 139, 96, - 100, 95, 128, 155, 156, 94, 176, 85, 167, 84, - 86, 166, 127, 153, 159, 121, 118, 83, 157, 119, - 117, 109, 98, 103, 133, 116, 134, 104, 124, 123, - 125, 0, 0, 0, 148, 164, 177, 88, 0, 0, - 170, 171, 172, 173, 0, 0, 89, 126, 87, 105, - 145, 108, 115, 138, 175, 130, 143, 92, 163, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 0, 0, 0, 0, 0, 0, 0, 79, 97, 112, - 174, 137, 99, 165, 111, 0, 113, 0, 0, 147, - 122, 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, 90, 0, 0, + 0, 0, 192, 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, 0, 0, 0, 194, 0, + 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, + 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, + 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 178, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, + 166, 179, 90, 0, 0, 172, 173, 174, 175, 0, + 0, 91, 128, 89, 107, 147, 110, 117, 140, 177, + 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, + 0, 0, 81, 99, 114, 176, 139, 101, 167, 113, + 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 192, 0, 0, 0, 0, 135, - 0, 0, 150, 102, 101, 140, 110, 0, 0, 0, - 93, 0, 142, 131, 162, 0, 132, 141, 114, 154, - 136, 161, 193, 169, 152, 168, 80, 151, 160, 91, - 144, 82, 158, 149, 120, 106, 107, 81, 0, 139, - 96, 100, 95, 128, 155, 156, 94, 176, 85, 167, - 84, 86, 166, 127, 153, 159, 121, 118, 83, 157, - 119, 117, 109, 98, 103, 133, 116, 134, 104, 124, - 123, 125, 0, 0, 0, 148, 164, 177, 88, 0, - 0, 170, 171, 172, 173, 0, 0, 89, 126, 87, - 105, 145, 108, 115, 138, 175, 130, 143, 92, 163, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 0, 0, 0, 0, 0, 0, 0, 79, 97, - 112, 174, 137, 99, 165, 111, 0, 113, 0, 0, - 147, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, + 0, 0, 0, 248, 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, 0, 0, 0, 194, + 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, + 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, + 0, 134, 143, 116, 156, 138, 163, 195, 171, 154, + 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, + 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, + 158, 96, 178, 87, 169, 86, 88, 168, 129, 155, + 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 150, 166, 179, 90, 0, 0, 172, 173, 174, 175, + 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, + 177, 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, - 135, 0, 0, 150, 102, 101, 140, 110, 0, 0, - 0, 93, 0, 142, 131, 162, 0, 132, 141, 114, - 154, 136, 161, 193, 169, 152, 168, 80, 151, 160, - 91, 144, 82, 158, 149, 120, 106, 107, 81, 0, - 139, 96, 100, 95, 128, 155, 156, 94, 176, 85, - 167, 84, 86, 166, 127, 153, 159, 121, 118, 83, - 157, 119, 117, 109, 98, 103, 133, 116, 134, 104, - 124, 123, 125, 0, 0, 0, 148, 164, 177, 88, - 0, 0, 170, 171, 172, 173, 0, 0, 89, 126, - 87, 105, 145, 108, 115, 138, 175, 130, 143, 92, - 163, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 0, 112, 174, 137, 99, 165, + 0, 0, 0, 81, 0, 114, 176, 139, 101, 167, } var yyPact = [...]int{ - 2092, -1000, -179, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 875, 901, -1000, -1000, -1000, -1000, -1000, -1000, 698, - 7403, 73, 112, -8, 9859, 107, 1359, 10301, -1000, 5, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -85, -86, 654, - -1000, -1000, -1000, -1000, -1000, 869, 873, 689, 859, 765, - -1000, 5569, 78, 8747, 9638, 4861, -1000, 530, 102, 10301, - -149, 10080, 68, 68, 68, -1000, -1000, -1000, -1000, -1000, + 1935, -1000, -179, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 821, 849, -1000, -1000, -1000, -1000, -1000, -1000, 221, + 7416, 73, 106, 23, 10093, 104, 1119, 10535, -1000, 0, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -79, -83, 668, + -1000, -1000, -1000, -1000, -1000, 812, 818, 709, 804, 751, + -1000, 5803, 70, 8981, 9872, 5095, -1000, -1000, 219, 10535, + 100, 10535, -130, 10314, 62, 62, 62, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1755,207 +1780,210 @@ 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, 98, 10301, - -1000, 10301, 65, 524, 65, 65, 65, 10301, -1000, 146, - -1000, -1000, -1000, -1000, 10301, 522, 792, 34, 2869, 2869, - 2869, 2869, 10, 2869, -64, 706, 886, -1000, -1000, -1000, - -1000, 2869, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 453, 800, 6280, 6280, 875, -1000, - 654, -1000, -1000, -1000, 794, -1000, -1000, 312, 891, -1000, - 7182, 145, -1000, 6280, 1865, 638, -1000, -1000, 638, -1000, - -1000, 131, -1000, -1000, 6734, 6734, 6734, 6734, 6734, 6734, - 6734, 6734, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 638, -1000, 6044, 638, - 638, 638, 638, 638, 638, 638, 638, 6280, 638, 638, - 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, - 638, 9417, 633, 682, -1000, -1000, -1000, 839, 7857, 8526, - 10301, 602, -1000, 634, 4612, -103, -1000, -1000, -1000, 209, - 8305, -1000, -1000, -1000, 791, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 102, 10535, -1000, 10535, 60, 557, 60, 60, 60, 10535, + -1000, 144, -1000, -1000, -1000, -1000, 10535, 554, 777, 66, + 3103, 3103, 3103, 3103, 8, 3103, -62, 712, 833, -1000, + -1000, -1000, -1000, 3103, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 454, 786, 6514, 6514, + 821, -1000, 668, -1000, -1000, -1000, 774, -1000, -1000, 334, + 836, -1000, 2111, 140, -1000, 6514, 1503, 662, -1000, -1000, + 662, -1000, -1000, 119, -1000, -1000, 6968, 6968, 6968, 6968, + 6968, 6968, 6968, 6968, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 662, -1000, + 6278, 662, 662, 662, 662, 662, 662, 662, 662, 6514, + 662, 662, 662, 662, 662, 662, 662, 662, 662, 662, + 662, 662, 662, 9651, 672, 707, -1000, -1000, -1000, 801, + 8091, 8760, 10535, 570, -1000, 654, 4846, -107, -1000, -1000, + -1000, 214, 8539, -1000, -1000, -1000, 776, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 528, - -1000, 1630, 521, 2869, 91, 646, 520, 239, 519, 10301, - 10301, 2869, 82, 10301, 835, 705, 10301, 503, 499, -1000, - 4363, -1000, 2869, 2869, 2869, 2869, 2869, 2869, 2869, 2869, - -1000, -1000, -1000, -1000, -1000, -1000, 2869, 2869, -1000, 889, - 288, -1000, -1000, 10301, 6280, -1000, -1000, -1000, -1000, -1000, - -1000, 896, 173, 418, 144, 635, -1000, 388, 869, 453, - 765, 8078, 716, -1000, -1000, 10301, -1000, 6280, 6280, 261, - -1000, 9189, -1000, -1000, 3367, 194, 6734, 375, 252, 6734, - 6734, 6734, 6734, 6734, 6734, 6734, 6734, 6734, 6734, 6734, - 6734, 6734, 6734, 6734, 383, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 496, -1000, 654, 717, 717, 156, 156, - 156, 156, 156, 156, 156, 6961, 5097, 453, 513, 213, - 6044, 5569, 5569, 6280, 6280, 10522, 10522, 5569, 864, 216, - 213, 10522, -1000, 453, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 5569, 5569, 5569, 5569, 44, 10301, -1000, 10522, 8747, - 8747, 8747, 8747, 8747, -1000, 758, 757, -1000, 747, 741, - 753, 10301, -1000, 509, 7857, 167, 638, -1000, 8968, -1000, - -1000, 44, 613, 8747, 10301, -1000, -1000, 4114, 634, -103, - 631, -1000, -113, -119, 5805, 155, -1000, -1000, -1000, -1000, - 2620, 192, 310, -57, -1000, -1000, -1000, 647, -1000, 647, - 647, 647, 647, -24, -24, -24, -24, -1000, -1000, -1000, - -1000, -1000, 695, 694, -1000, 647, 647, 647, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 687, 687, 687, 660, 660, 693, - -1000, 10301, -166, 493, 2869, 834, 2869, -1000, 92, -1000, - 10301, -1000, -1000, 10301, 2869, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 10301, 266, 10301, 10301, -1000, 213, -1000, 772, 6280, 6280, - 3865, 6280, -1000, -1000, -1000, 800, -1000, 864, 876, -1000, - 784, 782, 5569, -1000, -1000, 194, 217, -1000, -1000, 267, - -1000, -1000, -1000, -1000, 143, 638, -1000, 1776, -1000, -1000, - -1000, -1000, 375, 6734, 6734, 6734, 75, 1776, 2086, 667, - 523, 156, 319, 319, 157, 157, 157, 157, 157, 298, - 298, -1000, -1000, -1000, 453, -1000, -1000, -1000, 453, 5569, - 632, -1000, -1000, 6280, -1000, 453, 489, 489, 399, 413, - 658, -1000, 137, 645, 489, 5569, 229, -1000, 6280, 453, - -1000, 489, 453, 489, 489, 556, 638, -1000, 641, -1000, - 202, 682, 692, 704, 1009, -1000, -1000, -1000, -1000, 754, - -1000, 730, -1000, -1000, -1000, -1000, -1000, 100, 99, 94, - 10080, -1000, 884, 8747, 595, -1000, -1000, 631, -103, -107, - -1000, -1000, -1000, 213, -1000, 490, 627, 2371, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 681, 465, -1000, 827, 182, - 185, 443, 816, -1000, -1000, 795, -1000, 250, -60, -1000, - -1000, 354, -24, -24, -1000, -1000, 155, 790, 155, 155, - 155, 402, 402, -1000, -1000, -1000, -1000, 348, -1000, -1000, - -1000, 347, -1000, 702, 10080, 2869, -1000, 3616, -1000, -1000, - -1000, -1000, -1000, -1000, 410, 260, 204, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 42, -1000, - 2869, -1000, 288, -1000, 394, 6280, -1000, -1000, 773, 213, - 213, 136, -1000, -1000, 10301, -1000, -1000, -1000, -1000, 623, - -1000, -1000, -1000, 3118, 5569, -1000, 75, 1776, 2071, -1000, - 6734, 6734, -1000, -1000, 489, 5569, 213, -1000, -1000, -1000, - 54, 383, 54, 6734, 6734, 3865, 6734, 6734, -160, 617, - 223, -1000, 6280, 338, -1000, -1000, -1000, -1000, -1000, 701, - 10522, 638, -1000, 7630, 10080, 875, 10522, 6280, 6280, -1000, - -1000, 6280, 668, -1000, 6280, -1000, -1000, -1000, 638, 638, - 638, 463, -1000, 875, 595, -1000, -1000, -1000, -115, -133, - -1000, -1000, 2620, -1000, 2620, 10080, 57, -1000, 431, 426, - -1000, -1000, 662, 669, 43, -1000, -1000, -1000, 536, 155, - 155, -1000, 193, -1000, -1000, -1000, 478, -1000, 475, 626, - 473, 10301, -1000, -1000, 621, -1000, 199, -1000, -1000, 10080, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 10080, 10301, -1000, -1000, -1000, -1000, -1000, 10080, - -1000, 266, -1000, 213, -1000, 3616, -1000, 884, 8747, -1000, - -1000, 453, -1000, 6734, 1776, 1776, -1000, -1000, 453, 647, - 647, -1000, 647, 660, -1000, 647, -5, 647, -6, 453, - 453, 1488, 1815, -1000, 1327, 771, 638, -156, -1000, 213, - 6280, -1000, 796, 592, 550, -1000, -1000, 5333, 453, 471, - 135, 463, 869, -1000, 213, 213, 213, 10080, 213, 10080, - 10080, 10080, 1863, 10080, 869, -1000, -1000, -1000, -1000, 2371, - -1000, 452, -1000, 647, -1000, -1000, -1000, 10080, -52, 895, + -1000, 552, 10535, -1000, 2282, -1000, 549, 3103, 77, 673, + 547, 243, 528, 10535, 10535, 3103, 67, 10535, 799, 710, + 10535, 527, 526, -1000, 4597, -1000, 3103, 3103, 3103, 3103, + 3103, 3103, 3103, 3103, -1000, -1000, -1000, -1000, -1000, -1000, + 3103, 3103, -1000, 835, 292, -1000, -1000, 10535, 6514, -1000, + -1000, -1000, -1000, -1000, -1000, 844, 176, 384, 130, 659, + -1000, 355, 812, 454, 751, 8312, 725, -1000, -1000, 10535, + -1000, 6514, 6514, 349, -1000, 9423, -1000, -1000, 3601, 190, + 6968, 376, 307, 6968, 6968, 6968, 6968, 6968, 6968, 6968, + 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 385, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 516, -1000, 668, + 475, 475, 155, 155, 155, 155, 155, 155, 155, 7195, + 5331, 454, 524, 343, 6278, 5803, 5803, 6514, 6514, 10756, + 10756, 5803, 807, 225, 343, 10756, -1000, 454, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 5803, 5803, 5803, 5803, 34, + 10535, -1000, 10756, 8981, 8981, 8981, 8981, 8981, -1000, 740, + 739, -1000, 724, 723, 745, 10535, -1000, 507, 8091, 167, + 662, -1000, 9202, -1000, -1000, 34, 584, 8981, 10535, -1000, + -1000, 4348, 654, -107, 652, -1000, -98, -92, 6039, 150, + -1000, -1000, -1000, -1000, 2854, 278, 580, 356, -68, -1000, + -1000, -1000, 669, -1000, 669, 669, 669, 669, -28, -28, + -28, -28, -1000, -1000, -1000, -1000, -1000, 692, 691, -1000, + 669, 669, 669, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 689, + 689, 689, 670, 670, 701, -1000, 10535, -162, 501, 3103, + 798, 3103, -1000, 92, -1000, 10535, -1000, -1000, 10535, 3103, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -24, 392, -24, 346, -1000, 324, 2869, 3616, 2620, - -1000, 644, -1000, -1000, -1000, -1000, 830, -1000, 880, 618, - -1000, 1776, -1000, -1000, 97, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 6734, 6734, -1000, 6734, 6734, 6734, - 453, 369, 213, 810, -1000, 638, -1000, -1000, 625, 10080, - 10080, -1000, -1000, 449, -1000, 447, 447, 447, 167, -1000, - -1000, 139, 10080, -1000, 442, 169, -1000, -137, 155, -1000, - 155, 532, 510, -1000, -1000, -1000, 10080, 638, 877, 872, - -1000, -1000, 1552, 1552, 1552, 1552, 41, -1000, -1000, 894, - -1000, 638, -1000, 654, 129, -1000, 10080, -1000, -1000, -1000, - -1000, -1000, 139, -1000, 408, 189, 368, -1000, 52, 258, - 804, -1000, 801, -1000, -1000, -1000, -1000, -1000, 425, 40, - -1000, 6280, 6280, -1000, -1000, -1000, -1000, 453, 39, -170, - 10522, 550, 453, 10080, -1000, -1000, -1000, 320, -1000, -1000, - 10301, -1000, 364, -1000, -1000, 646, 423, -1000, 10080, 213, - 545, -1000, 770, -163, -175, 491, -1000, -1000, -1000, 643, - -1000, -166, -1000, 40, 779, -1000, 763, -1000, 10080, -1000, - -1000, 32, -167, 407, 17, -172, -1000, 638, -176, 6507, - -1000, 1552, 453, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 10535, 321, 10535, 10535, -1000, + 343, -1000, 755, 6514, 6514, 4099, 6514, -1000, -1000, -1000, + 786, -1000, 807, 819, -1000, 766, 763, 5803, -1000, -1000, + 190, 233, -1000, -1000, 423, -1000, -1000, -1000, -1000, 129, + 662, -1000, 1581, -1000, -1000, -1000, -1000, 376, 6968, 6968, + 6968, 72, 1581, 1566, 589, 1657, 155, 147, 147, 160, + 160, 160, 160, 160, 228, 228, -1000, -1000, -1000, 454, + -1000, -1000, -1000, 454, 5803, 653, -1000, -1000, 6514, -1000, + 454, 505, 505, 332, 269, 658, -1000, 128, 648, 505, + 5803, 265, -1000, 6514, 454, -1000, 505, 454, 505, 505, + 627, 662, -1000, 639, -1000, 207, 707, 688, 708, 895, + -1000, -1000, -1000, -1000, 730, -1000, 727, -1000, -1000, -1000, + -1000, -1000, 99, 97, 88, 10314, -1000, 831, 8981, 622, + -1000, -1000, 652, -107, -111, -1000, -1000, -1000, 343, -1000, + 482, 650, 2605, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 684, 469, -1000, 790, 192, 185, 444, 785, -1000, -1000, + -1000, 775, -1000, 252, -72, -1000, -1000, 373, -28, -28, + -1000, -1000, 150, 773, 150, 150, 150, 408, 408, -1000, + -1000, -1000, -1000, 372, -1000, -1000, -1000, 365, -1000, 706, + 10314, 3103, -1000, 3850, -1000, -1000, -1000, -1000, -1000, -1000, + 437, 262, 177, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 32, -1000, 3103, -1000, 292, -1000, + 405, 6514, -1000, -1000, 749, 343, 343, 125, -1000, -1000, + 10535, -1000, -1000, -1000, -1000, 642, -1000, -1000, -1000, 3352, + 5803, -1000, 72, 1581, 1460, -1000, 6968, 6968, -1000, -1000, + 505, 5803, 343, -1000, -1000, -1000, 53, 385, 53, 6968, + 6968, 4099, 6968, 6968, -155, 645, 203, -1000, 6514, 208, + -1000, -1000, -1000, -1000, -1000, 705, 10756, 662, -1000, 7864, + 10314, 821, 10756, 6514, 6514, -1000, -1000, 6514, 682, -1000, + 6514, -1000, -1000, -1000, 662, 662, 662, 489, -1000, 821, + 622, -1000, -1000, -1000, -101, -108, -1000, -1000, 2854, -1000, + 2854, 10314, 50, -1000, 432, 416, -1000, -1000, 671, 690, + 68, -1000, -1000, -1000, 571, 150, 150, -1000, 202, -1000, + -1000, -1000, 498, -1000, 496, 623, 494, 10535, -1000, -1000, + 620, -1000, 206, -1000, -1000, 10314, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 10314, 10535, + -1000, -1000, -1000, -1000, -1000, 10314, -1000, 321, -1000, 343, + -1000, 3850, -1000, 831, 8981, -1000, -1000, 454, -1000, 6968, + 1581, 1581, -1000, -1000, 454, 669, 669, -1000, 669, 670, + -1000, 669, -9, 669, -10, 454, 454, 1393, 1419, -1000, + 1279, 382, 662, -139, -1000, 343, 6514, -1000, 787, 569, + 613, -1000, -1000, 5567, 454, 491, 123, 489, 812, -1000, + 343, 343, 343, 10314, 343, 10314, 10314, 10314, 7637, 10314, + 812, -1000, -1000, -1000, -1000, 2605, -1000, 476, -1000, 669, + -1000, -1000, -1000, 10314, -54, 841, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -28, 404, -28, + 361, -1000, 352, 3103, 3850, 2854, -1000, 666, -1000, -1000, + -1000, -1000, 794, -1000, 829, 616, -1000, 1581, -1000, -1000, + 94, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 6968, 6968, -1000, 6968, 6968, 6968, 454, 401, 343, 784, + -1000, 662, -1000, -1000, 667, 10314, 10314, -1000, -1000, 468, + -1000, 457, 457, 457, 167, -1000, -1000, 127, 10314, -1000, + 453, 157, -1000, -119, 150, -1000, 150, 561, 560, -1000, + -1000, -1000, 10314, 662, 826, 816, -1000, -1000, 1367, 1367, + 1367, 1367, 2, -1000, -1000, 840, -1000, 662, -1000, 668, + 118, -1000, 10314, -1000, -1000, -1000, -1000, -1000, 127, -1000, + 413, 201, 400, -1000, 47, 270, 783, -1000, 780, -1000, + -1000, -1000, -1000, -1000, 451, 31, -1000, 6514, 6514, -1000, + -1000, -1000, -1000, 454, 41, -170, 10756, 613, 454, 10314, + -1000, -1000, -1000, 283, -1000, -1000, 10535, -1000, 387, -1000, + -1000, 673, 449, -1000, 10314, 343, 597, -1000, 744, -160, + -173, 585, -1000, -1000, -1000, 664, -1000, -162, -1000, 31, + 760, -1000, 728, -1000, 10314, -1000, -1000, 16, -168, 442, + 11, -171, -1000, 662, -175, 6741, -1000, 1367, 454, -1000, + -1000, } var yyPgo = [...]int{ - 0, 1151, 50, 477, 1147, 1146, 1145, 1144, 1143, 1142, - 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1129, 1127, 1125, - 1124, 1123, 1122, 1121, 101, 1107, 1106, 1102, 60, 1101, - 73, 1100, 1099, 32, 239, 36, 30, 7, 1096, 21, - 63, 56, 1095, 48, 1093, 1090, 74, 1089, 61, 1088, - 1087, 645, 1086, 1083, 10, 26, 1078, 1074, 1071, 1070, - 69, 670, 1068, 1066, 1065, 1064, 1063, 1060, 41, 3, - 9, 22, 12, 1049, 166, 11, 1045, 40, 1042, 1041, - 1040, 1039, 23, 1034, 45, 1032, 15, 44, 1027, 5, - 54, 27, 25, 8, 71, 49, 1026, 24, 53, 43, - 1025, 1024, 403, 1023, 1018, 37, 1016, 33, 153, 381, - 1006, 1005, 1004, 1003, 28, 0, 402, 493, 57, 1002, - 1001, 998, 1193, 80, 59, 19, 997, 52, 1260, 39, - 994, 990, 34, 987, 986, 985, 983, 970, 967, 963, - 82, 962, 958, 957, 58, 62, 955, 953, 55, 18, - 951, 950, 946, 29, 46, 945, 944, 42, 942, 941, - 939, 937, 17, 14, 935, 13, 934, 6, 920, 20, - 918, 1, 917, 16, 916, 2, 914, 4, 47, 910, - 909, 67, 253, 908, 907, 78, + 0, 1133, 60, 469, 1127, 1115, 1113, 1111, 1108, 1107, + 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1097, 1095, + 1094, 1092, 1091, 1089, 113, 1085, 1084, 1082, 56, 1080, + 63, 1076, 1075, 22, 233, 28, 25, 935, 1073, 12, + 58, 53, 1072, 41, 1070, 1069, 73, 1067, 62, 1066, + 1061, 522, 1057, 1051, 14, 19, 1048, 1046, 1045, 1039, + 69, 471, 1038, 1031, 1018, 1017, 1015, 1011, 46, 3, + 7, 23, 10, 1009, 466, 40, 1006, 45, 1005, 1004, + 1003, 997, 91, 969, 37, 966, 16, 48, 965, 13, + 54, 24, 9, 6, 71, 51, 964, 20, 52, 36, + 962, 961, 437, 958, 954, 27, 953, 21, 150, 381, + 952, 950, 946, 942, 42, 0, 572, 194, 59, 934, + 933, 932, 1436, 57, 55, 17, 931, 39, 416, 44, + 928, 927, 47, 926, 925, 924, 923, 917, 916, 915, + 277, 914, 913, 912, 32, 43, 911, 901, 49, 18, + 899, 897, 896, 29, 50, 894, 893, 34, 890, 888, + 887, 885, 883, 33, 15, 876, 8, 875, 5, 874, + 26, 873, 1, 872, 11, 871, 2, 862, 4, 30, + 861, 857, 67, 626, 856, 855, 78, } var yyR1 = [...]int{ - 0, 179, 180, 180, 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, 1, 2, 2, 2, 6, 3, 4, 4, 5, 5, 7, 7, 27, 27, 8, 9, 9, 9, - 183, 183, 46, 46, 90, 90, 10, 10, 10, 10, + 184, 184, 46, 46, 90, 90, 10, 10, 10, 10, 95, 95, 99, 99, 99, 100, 100, 100, 100, 130, - 130, 11, 11, 11, 11, 11, 11, 11, 177, 177, - 176, 175, 175, 174, 174, 173, 16, 159, 160, 160, - 160, 160, 154, 133, 133, 133, 133, 136, 136, 134, - 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, - 135, 137, 137, 137, 137, 137, 138, 138, 138, 138, + 130, 11, 11, 11, 11, 11, 11, 11, 11, 178, + 178, 177, 176, 176, 175, 175, 174, 16, 159, 161, + 161, 160, 160, 160, 160, 154, 133, 133, 133, 133, + 136, 136, 134, 134, 134, 134, 134, 134, 134, 135, + 135, 135, 135, 135, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 138, 139, 139, 139, 139, 139, 139, 139, 139, 153, - 153, 140, 140, 148, 148, 149, 149, 149, 146, 146, - 147, 147, 150, 150, 150, 141, 141, 141, 141, 141, - 141, 141, 143, 143, 151, 151, 144, 144, 144, 145, - 145, 152, 152, 152, 152, 152, 142, 142, 155, 155, - 168, 168, 167, 167, 167, 158, 158, 164, 164, 164, - 164, 164, 157, 157, 166, 166, 165, 156, 156, 169, - 161, 161, 161, 162, 162, 162, 163, 163, 163, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 172, - 170, 170, 171, 171, 13, 14, 14, 14, 14, 14, - 15, 15, 17, 18, 18, 18, 18, 18, 18, 18, + 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, + 139, 139, 153, 153, 140, 140, 148, 148, 149, 149, + 149, 146, 146, 147, 147, 150, 150, 150, 141, 141, + 141, 141, 141, 141, 141, 143, 143, 151, 151, 144, + 144, 144, 145, 145, 152, 152, 152, 152, 152, 142, + 142, 155, 155, 169, 169, 168, 168, 168, 158, 158, + 165, 165, 165, 165, 165, 157, 157, 167, 167, 166, + 156, 156, 170, 162, 162, 162, 163, 163, 163, 164, + 164, 164, 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, 106, - 106, 104, 104, 105, 105, 105, 107, 107, 107, 131, - 131, 131, 19, 19, 21, 21, 22, 23, 20, 20, - 20, 20, 20, 20, 20, 184, 24, 25, 25, 26, - 26, 26, 30, 30, 30, 28, 28, 29, 29, 35, - 35, 34, 34, 36, 36, 36, 36, 119, 119, 119, - 118, 118, 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, 126, 126, 125, - 125, 125, 124, 124, 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, 33, 33, - 68, 68, 68, 74, 69, 69, 61, 61, 61, 61, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 106, 106, 104, 104, 105, 105, 105, 107, + 107, 107, 131, 131, 131, 19, 19, 21, 21, 22, + 23, 20, 20, 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, + 119, 119, 119, 118, 118, 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, + 126, 126, 125, 125, 125, 124, 124, 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, 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, - 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, 185, 185, 66, 66, 66, 66, - 31, 31, 31, 31, 31, 129, 129, 132, 132, 132, + 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, 186, 186, 66, + 66, 66, 66, 31, 31, 31, 31, 31, 129, 129, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 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, 121, 121, 121, 101, 101, 108, 108, 109, 109, - 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 111, 111, 111, 112, 112, 113, 113, 113, - 120, 120, 116, 116, 117, 117, 122, 122, 123, 123, + 132, 132, 132, 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, 121, 121, 121, 101, 101, 108, + 108, 109, 109, 102, 102, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 111, 111, 111, 112, 112, + 113, 113, 113, 120, 120, 116, 116, 117, 117, 122, + 122, 123, 123, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, @@ -1964,8 +1992,7 @@ var yyR1 = [...]int{ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, + 114, 114, 114, 114, 114, 114, 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, @@ -1975,7 +2002,8 @@ 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, 181, 182, 127, 128, 128, 128, + 115, 115, 115, 115, 115, 115, 115, 182, 183, 127, + 128, 128, 128, } var yyR2 = [...]int{ @@ -1985,60 +2013,60 @@ var yyR2 = [...]int{ 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, 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, 3, 1, 10, - 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, 7, 5, 4, - 2, 2, 4, 4, 2, 2, 2, 2, 3, 1, - 1, 0, 1, 0, 2, 2, 0, 2, 2, 0, - 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, - 2, 2, 2, 3, 3, 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, 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, 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, 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, 2, 2, 8, 4, 6, 5, 5, 5, 0, + 2, 1, 0, 2, 1, 3, 3, 4, 4, 2, + 4, 1, 3, 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, + 3, 1, 10, 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, + 7, 5, 4, 2, 2, 4, 4, 2, 2, 2, + 2, 3, 1, 1, 0, 1, 0, 2, 2, 0, + 2, 2, 0, 1, 1, 2, 1, 1, 2, 1, + 1, 2, 2, 2, 2, 2, 3, 3, 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, 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, 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, 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, @@ -2058,279 +2086,282 @@ 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, 0, + 0, 1, 1, } var yyChk = [...]int{ - -1000, -179, -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, 114, 115, 117, 116, 143, 118, 136, 50, 155, 156, - 158, 159, 25, 137, 138, 141, 142, 31, 32, -181, - 8, 239, 54, -180, 254, -82, 15, -26, 5, -24, - -184, -24, -24, -24, -24, -24, -159, 54, -113, 123, - 71, 151, 231, 120, 121, 127, -116, 57, -115, 247, - 155, 166, 160, 187, 179, 177, 180, 218, 207, 216, - 66, 158, 227, 139, 175, 171, 169, 27, 192, 252, - 170, 133, 132, 193, 197, 219, 164, 165, 221, 191, - 135, 33, 249, 35, 147, 222, 195, 190, 186, 189, - 163, 185, 39, 199, 198, 200, 217, 182, 172, 18, - 225, 142, 145, 194, 196, 128, 149, 251, 223, 168, - 134, 146, 141, 226, 159, 220, 229, 38, 204, 162, - 131, 156, 153, 183, 148, 173, 174, 188, 161, 184, - 157, 150, 143, 228, 205, 253, 181, 178, 154, 152, - 210, 211, 212, 213, 250, 224, 176, 206, -102, 123, - 125, 121, 121, 122, 123, 231, 120, 121, -51, -122, - 57, -115, 123, 151, 121, 107, 180, 114, 208, 122, - 33, 149, -131, 121, -104, 152, 207, 210, 211, 212, - 213, 57, 220, 219, 214, -122, 157, -127, -127, -127, - -127, -127, 209, 209, -2, -86, 17, 16, -5, -3, - -181, 6, 20, 21, -30, 40, 41, -25, -36, 98, - -37, -122, -56, 73, -61, 29, 57, -115, 23, -60, - -57, -75, -73, -74, 107, 108, 109, 96, 97, 104, - 74, 110, -65, -63, -64, -66, 59, 58, 67, 60, - 61, 62, 63, 68, 69, 70, -116, -71, -181, 44, - 45, 240, 241, 242, 243, 246, 244, 76, 34, 230, - 238, 237, 236, 234, 235, 232, 233, 126, 231, 102, - 239, -102, -39, -40, -41, -42, -53, -74, -181, -51, - 11, -46, -51, -94, -130, 157, -98, 220, 219, -117, - -96, -116, -114, 218, 180, 217, 119, 72, 22, 24, - 202, 75, 107, 16, 76, 106, 240, 114, 48, 232, - 233, 230, 242, 243, 231, 208, 29, 10, 25, 137, - 21, 100, 116, 79, 80, 140, 23, 138, 70, 19, - 51, 11, 13, 14, 126, 125, 91, 122, 46, 8, - 110, 26, 88, 42, 28, 44, 89, 17, 234, 235, - 31, 246, 144, 102, 49, 36, 73, 68, 52, 71, - 15, 47, 90, 117, 239, 45, 120, 6, 245, 30, - 136, 43, 121, 209, 78, 124, 69, 5, 127, 32, - 9, 50, 53, 236, 237, 238, 34, 77, 12, -160, - -154, 57, 122, -51, 239, -116, -109, 126, -109, -109, - 121, -51, -51, -108, 126, 57, -108, -108, -108, -51, - 111, -51, 57, 30, 231, 57, 149, 121, 150, 123, - -128, -181, -117, -128, -128, -128, 153, 154, -128, 216, - -106, 209, 215, 52, 12, -128, -127, -127, -182, 56, - -87, 19, 31, -37, -122, -83, -84, -37, -82, -2, - -24, 36, -28, 21, 65, 11, -119, 72, 71, 88, - -118, 22, -116, 59, 111, -37, -58, 91, 73, 89, - 90, 75, 93, 92, 103, 96, 97, 98, 99, 100, - 101, 102, 94, 95, 106, 81, 82, 83, 84, 85, - 86, 87, -103, -181, -74, -181, 112, 113, -61, -61, - -61, -61, -61, -61, -61, -61, -181, -2, -69, -37, - -181, -181, -181, -181, -181, -181, -181, -181, -181, -78, - -37, -181, -185, -181, -185, -185, -185, -185, -185, -185, - -185, -181, -181, -181, -181, -52, 26, -51, 30, 55, - -47, -49, -48, -50, 42, 46, 48, 43, 44, 45, - 49, -126, 22, -39, -181, -125, 145, -124, 22, -122, - 59, -51, -46, -183, 55, 11, 53, 55, -94, 157, - -95, -99, 221, 223, 81, -121, -116, 59, 29, 30, - 56, 55, -133, -136, -138, -137, -139, -134, -135, 177, - 178, 107, 181, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 30, 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, 57, - -128, 123, -177, 53, 57, 73, 57, -51, -51, -128, - 124, -51, 23, 52, -51, 57, 57, -123, -122, -114, - -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, - 11, -105, 11, 91, -51, -37, 9, 91, 55, 18, - 111, 55, -85, 24, 25, -86, -182, -30, -62, -116, - 60, 63, -29, 43, -51, -37, -37, -67, 68, 73, - 69, 70, -118, 98, -123, -117, -114, -61, -68, -71, - -74, 64, 91, 89, 90, 75, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -129, 57, 59, 57, -60, -60, -116, -35, 21, - -34, -36, -182, 55, -182, -2, -34, -34, -37, -37, - -75, -116, -122, -75, -34, -28, -76, -77, 77, -75, - -182, -34, -35, -34, -34, -90, 145, -51, -93, -97, - -75, -40, -41, -41, -40, -41, 42, 42, 42, 47, - 42, 47, 42, -48, -122, -182, -54, 50, 125, 51, - -181, -124, -90, 53, -39, -51, -98, -95, 55, 222, - 224, 225, 52, -37, -145, 106, -161, -162, -163, -117, - 59, 60, -154, -155, -156, -164, 130, -169, 128, 131, - 127, -157, 133, 122, 28, -150, 68, 73, -146, 205, - -140, 54, -140, -140, -140, -140, -144, 180, -144, -144, - -144, 54, 54, -140, -140, -140, -148, 54, -148, -148, - -149, 54, -149, -120, 53, -51, -175, 250, -176, 57, - -128, 23, -128, -110, 119, 116, 117, -172, 115, 202, - 180, 66, 29, 15, 240, 145, 253, 57, 146, -51, - -51, -128, -51, -107, 89, 12, -122, -122, 38, -37, - -37, -123, -84, -87, -101, 19, 11, 34, 34, -34, - 68, 69, 70, 111, -181, -68, -61, -61, -61, -33, - 140, 72, -182, -182, -34, 55, -37, -182, -182, -182, - 55, 53, 22, 55, 11, 111, 55, 11, -182, -34, - -79, -77, 79, -37, -182, -182, -182, -182, -182, -59, - 30, 34, -2, -181, -181, -55, 55, 12, 81, -44, - -43, 52, 53, -45, 52, -43, 42, 42, 122, 122, - 122, -91, -116, -55, -39, -55, -99, -100, 226, 223, - 229, 57, 55, -163, 81, 54, 57, 28, -157, -157, - 57, 57, 28, -141, 29, 68, -147, 206, 60, -144, - -144, -145, 30, -145, -145, -145, -153, 59, -153, 60, - 60, 52, -116, -128, -174, -173, -117, -127, -178, 151, - 129, 130, 133, 132, 57, 122, 28, 128, 131, 145, - 127, -178, 151, -111, -112, 124, 22, 122, 28, 145, - -128, -105, 59, -37, 39, 111, -51, -38, 11, 98, - -117, -35, -33, 72, -61, -61, -182, -36, -132, 107, - 177, 139, 175, 171, 191, 182, 204, 173, 205, -129, - -132, -61, -61, -117, -61, -61, 247, -82, 80, -37, - 78, -92, 52, -93, -70, -72, -71, -181, -2, -88, - -116, -91, -82, -97, -37, -37, -37, 54, -37, -181, - -181, -181, -182, 55, -82, -55, 223, 227, 228, -162, - -163, -166, -165, -116, -169, 57, 57, 54, -143, 52, - 59, 60, 61, 68, 230, 67, 56, -145, -145, 57, - 107, 56, 55, 56, 55, 56, 55, -51, 55, 81, - -127, -116, -127, -116, -51, -127, -116, -107, -55, -39, - -182, -61, -182, -140, -140, -140, -149, -140, 165, -140, - 165, -182, -182, -182, 55, 19, -182, 55, 19, -181, - -32, 245, -37, 27, -92, 55, -182, -182, -182, 55, - 111, -182, -86, -89, -116, -89, -89, -89, -125, -116, - -86, 56, 55, -140, -89, -151, 202, 9, -144, 59, - -144, 60, 60, -128, -173, -163, 54, 26, -80, 13, - -144, 57, -61, -61, -61, -61, -61, -182, 59, 28, - -72, 34, -2, -181, -116, -116, 55, 56, -182, -182, - -182, -54, -168, -167, 53, 135, 66, -165, 56, -152, - 128, 28, 127, 230, -145, -145, 56, 56, -89, -181, - -81, 14, 16, -182, -182, -182, -182, -31, 91, 250, - 9, -70, -2, 111, -116, -167, 57, -158, 81, 59, - 134, -142, 66, 28, 28, 56, -170, -171, 145, -37, - -69, -182, 248, 49, 251, -93, -182, -116, 60, -51, - 59, -177, -182, 55, -116, 39, 249, 252, 54, -175, - -171, 34, 39, -89, 147, 250, 56, 148, 251, -181, - 252, -61, 144, -182, -182, + 158, 159, 25, 137, 138, 141, 142, 31, 32, -182, + 8, 239, 54, -181, 254, -82, 15, -26, 5, -24, + -185, -24, -24, -24, -24, -24, -159, -161, 54, 89, + -113, 123, 71, 151, 231, 120, 121, 127, -116, 57, + -115, 247, 155, 166, 160, 187, 179, 177, 180, 218, + 207, 216, 66, 158, 227, 139, 175, 171, 169, 27, + 192, 252, 170, 133, 132, 193, 197, 219, 164, 165, + 221, 191, 135, 33, 249, 35, 147, 222, 195, 190, + 186, 189, 163, 185, 39, 199, 198, 200, 217, 182, + 172, 18, 225, 142, 145, 194, 196, 128, 149, 251, + 223, 168, 134, 146, 141, 226, 159, 220, 229, 38, + 204, 162, 131, 156, 153, 183, 148, 173, 174, 188, + 161, 184, 157, 150, 143, 228, 205, 253, 181, 178, + 154, 152, 210, 211, 212, 213, 250, 224, 176, 206, + -102, 123, 125, 121, 121, 122, 123, 231, 120, 121, + -51, -122, 57, -115, 123, 151, 121, 107, 180, 114, + 208, 122, 33, 149, -131, 121, -104, 152, 207, 210, + 211, 212, 213, 57, 220, 219, 214, -122, 157, -127, + -127, -127, -127, -127, 209, 209, -2, -86, 17, 16, + -5, -3, -182, 6, 20, 21, -30, 40, 41, -25, + -36, 98, -37, -122, -56, 73, -61, 29, 57, -115, + 23, -60, -57, -75, -73, -74, 107, 108, 109, 96, + 97, 104, 74, 110, -65, -63, -64, -66, 59, 58, + 67, 60, 61, 62, 63, 68, 69, 70, -116, -71, + -182, 44, 45, 240, 241, 242, 243, 246, 244, 76, + 34, 230, 238, 237, 236, 234, 235, 232, 233, 126, + 231, 102, 239, -102, -39, -40, -41, -42, -53, -74, + -182, -51, 11, -46, -51, -94, -130, 157, -98, 220, + 219, -117, -96, -116, -114, 218, 180, 217, 119, 72, + 22, 24, 202, 75, 107, 16, 76, 106, 240, 114, + 48, 232, 233, 230, 242, 243, 231, 208, 29, 10, + 25, 137, 21, 100, 116, 79, 80, 140, 23, 138, + 70, 19, 51, 11, 13, 14, 126, 125, 91, 122, + 46, 8, 110, 26, 88, 42, 28, 44, 89, 17, + 234, 235, 31, 246, 144, 102, 49, 36, 73, 68, + 52, 71, 15, 47, 90, 117, 239, 45, 120, 6, + 245, 30, 136, 43, 121, 209, 78, 124, 69, 5, + 127, 32, 9, 50, 53, 236, 237, 238, 34, 77, + 12, -160, 89, -154, 57, -51, 122, -51, 239, -116, + -109, 126, -109, -109, 121, -51, -51, -108, 126, 57, + -108, -108, -108, -51, 111, -51, 57, 30, 231, 57, + 149, 121, 150, 123, -128, -182, -117, -128, -128, -128, + 153, 154, -128, 216, -106, 209, 215, 52, 12, -128, + -127, -127, -183, 56, -87, 19, 31, -37, -122, -83, + -84, -37, -82, -2, -24, 36, -28, 21, 65, 11, + -119, 72, 71, 88, -118, 22, -116, 59, 111, -37, + -58, 91, 73, 89, 90, 75, 93, 92, 103, 96, + 97, 98, 99, 100, 101, 102, 94, 95, 106, 81, + 82, 83, 84, 85, 86, 87, -103, -182, -74, -182, + 112, 113, -61, -61, -61, -61, -61, -61, -61, -61, + -182, -2, -69, -37, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -78, -37, -182, -186, -182, -186, -186, + -186, -186, -186, -186, -186, -182, -182, -182, -182, -52, + 26, -51, 30, 55, -47, -49, -48, -50, 42, 46, + 48, 43, 44, 45, 49, -126, 22, -39, -182, -125, + 145, -124, 22, -122, 59, -51, -46, -184, 55, 11, + 53, 55, -94, 157, -95, -99, 221, 223, 81, -121, + -116, 59, 29, 30, 56, 55, -51, -133, -136, -138, + -137, -139, -134, -135, 177, 178, 107, 181, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 30, 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, 57, -128, 123, -178, 53, 57, + 73, 57, -51, -51, -128, 124, -51, 23, 52, -51, + 57, 57, -123, -122, -114, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, 11, -105, 11, 91, -51, + -37, 9, 91, 55, 18, 111, 55, -85, 24, 25, + -86, -183, -30, -62, -116, 60, 63, -29, 43, -51, + -37, -37, -67, 68, 73, 69, 70, -118, 98, -123, + -117, -114, -61, -68, -71, -74, 64, 91, 89, 90, + 75, -61, -61, -61, -61, -61, -61, -61, -61, -61, + -61, -61, -61, -61, -61, -61, -129, 57, 59, 57, + -60, -60, -116, -35, 21, -34, -36, -183, 55, -183, + -2, -34, -34, -37, -37, -75, -116, -122, -75, -34, + -28, -76, -77, 77, -75, -183, -34, -35, -34, -34, + -90, 145, -51, -93, -97, -75, -40, -41, -41, -40, + -41, 42, 42, 42, 47, 42, 47, 42, -48, -122, + -183, -54, 50, 125, 51, -182, -124, -90, 53, -39, + -51, -98, -95, 55, 222, 224, 225, 52, -37, -145, + 106, -162, -163, -164, -117, 59, 60, -154, -155, -156, + -165, 130, -170, 128, 131, 127, -157, 133, 122, 28, + 56, -150, 68, 73, -146, 205, -140, 54, -140, -140, + -140, -140, -144, 180, -144, -144, -144, 54, 54, -140, + -140, -140, -148, 54, -148, -148, -149, 54, -149, -120, + 53, -51, -176, 250, -177, 57, -128, 23, -128, -110, + 119, 116, 117, -173, 115, 202, 180, 66, 29, 15, + 240, 145, 253, 57, 146, -51, -51, -128, -51, -107, + 89, 12, -122, -122, 38, -37, -37, -123, -84, -87, + -101, 19, 11, 34, 34, -34, 68, 69, 70, 111, + -182, -68, -61, -61, -61, -33, 140, 72, -183, -183, + -34, 55, -37, -183, -183, -183, 55, 53, 22, 55, + 11, 111, 55, 11, -183, -34, -79, -77, 79, -37, + -183, -183, -183, -183, -183, -59, 30, 34, -2, -182, + -182, -55, 55, 12, 81, -44, -43, 52, 53, -45, + 52, -43, 42, 42, 122, 122, 122, -91, -116, -55, + -39, -55, -99, -100, 226, 223, 229, 57, 55, -164, + 81, 54, 57, 28, -157, -157, 57, 57, 28, -141, + 29, 68, -147, 206, 60, -144, -144, -145, 30, -145, + -145, -145, -153, 59, -153, 60, 60, 52, -116, -128, + -175, -174, -117, -127, -179, 151, 129, 130, 133, 132, + 57, 122, 28, 128, 131, 145, 127, -179, 151, -111, + -112, 124, 22, 122, 28, 145, -128, -105, 59, -37, + 39, 111, -51, -38, 11, 98, -117, -35, -33, 72, + -61, -61, -183, -36, -132, 107, 177, 139, 175, 171, + 191, 182, 204, 173, 205, -129, -132, -61, -61, -117, + -61, -61, 247, -82, 80, -37, 78, -92, 52, -93, + -70, -72, -71, -182, -2, -88, -116, -91, -82, -97, + -37, -37, -37, 54, -37, -182, -182, -182, -183, 55, + -82, -55, 223, 227, 228, -163, -164, -167, -166, -116, + -170, 57, 57, 54, -143, 52, 59, 60, 61, 68, + 230, 67, 56, -145, -145, 57, 107, 56, 55, 56, + 55, 56, 55, -51, 55, 81, -127, -116, -127, -116, + -51, -127, -116, -107, -55, -39, -183, -61, -183, -140, + -140, -140, -149, -140, 165, -140, 165, -183, -183, -183, + 55, 19, -183, 55, 19, -182, -32, 245, -37, 27, + -92, 55, -183, -183, -183, 55, 111, -183, -86, -89, + -116, -89, -89, -89, -125, -116, -86, 56, 55, -140, + -89, -151, 202, 9, -144, 59, -144, 60, 60, -128, + -174, -164, 54, 26, -80, 13, -144, 57, -61, -61, + -61, -61, -61, -183, 59, 28, -72, 34, -2, -182, + -116, -116, 55, 56, -183, -183, -183, -54, -169, -168, + 53, 135, 66, -166, 56, -152, 128, 28, 127, 230, + -145, -145, 56, 56, -89, -182, -81, 14, 16, -183, + -183, -183, -183, -31, 91, 250, 9, -70, -2, 111, + -116, -168, 57, -158, 81, 59, 134, -142, 66, 28, + 28, 56, -171, -172, 145, -37, -69, -183, 248, 49, + 251, -93, -183, -116, 60, -51, 59, -178, -183, 55, + -116, 39, 249, 252, 54, -176, -172, 34, 39, -89, + 147, 250, 56, 148, 251, -182, 252, -61, 144, -183, + -183, } var yyDef = [...]int{ 22, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 517, 0, 285, 285, 285, 285, 285, 285, 0, - 587, 570, 0, 0, 0, 0, -2, 273, 274, 0, - 276, 277, 796, 796, 796, 796, 796, 0, 0, 0, - 34, 35, 794, 1, 3, 525, 0, 0, 289, 292, - 287, 0, 570, 0, 0, 0, 61, 0, 0, 783, - 0, 784, 568, 568, 568, 588, 589, 592, 593, 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, 778, 779, 780, 781, 782, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 0, 0, - 571, 0, 566, 0, 566, 566, 566, 0, 231, 356, - 596, 597, 783, 784, 0, 0, 0, 0, 797, 797, - 797, 797, 0, 797, 0, 250, 251, 254, 255, 256, - 257, 797, 270, 271, 262, 272, 275, 278, 279, 280, - 281, 282, 796, 796, 28, 529, 0, 0, 517, 30, - 0, 285, 290, 291, 295, 293, 294, 286, 0, 303, - 307, 0, 364, 0, 369, 371, -2, -2, 0, 406, - 407, 408, 409, 410, 0, 0, 0, 0, 0, 0, - 0, 0, 434, 435, 436, 437, 502, 503, 504, 505, - 506, 507, 508, 509, 373, 374, 499, 549, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 490, 0, 464, - 464, 464, 464, 464, 464, 464, 464, 0, 0, 0, - 0, 0, 0, 314, 316, 317, 318, 337, 0, 339, - 0, 0, 42, 46, 0, 774, 553, -2, -2, 0, - 0, 594, 595, -2, 700, -2, 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, 691, 692, 0, - 78, 0, 0, 797, 0, 68, 0, 0, 0, 0, - 0, 797, 0, 0, 0, 0, 0, 0, 0, 230, - 0, 232, 797, 797, 797, 797, 797, 797, 797, 797, - 241, 798, 799, 242, 243, 244, 797, 797, 246, 0, - 263, 259, 260, 0, 0, 258, 283, 284, 29, 795, - 23, 0, 0, 526, 0, 518, 519, 522, 525, 28, - 292, 0, 297, 296, 288, 0, 304, 0, 0, 0, - 308, 0, 310, 311, 0, 367, 0, 0, 0, 0, + 21, 520, 0, 288, 288, 288, 288, 288, 288, 0, + 590, 573, 0, 0, 0, 0, -2, 276, 277, 0, + 279, 280, 799, 799, 799, 799, 799, 0, 0, 0, + 34, 35, 797, 1, 3, 528, 0, 0, 292, 295, + 290, 0, 573, 0, 0, 0, 61, 62, 0, 0, + 0, 786, 0, 787, 571, 571, 571, 591, 592, 595, + 596, 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, 783, 784, + 785, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 0, 0, 574, 0, 569, 0, 569, 569, 569, 0, + 234, 359, 599, 600, 786, 787, 0, 0, 0, 0, + 800, 800, 800, 800, 0, 800, 0, 253, 254, 257, + 258, 259, 260, 800, 273, 274, 265, 275, 278, 281, + 282, 283, 284, 285, 799, 799, 28, 532, 0, 0, + 520, 30, 0, 288, 293, 294, 298, 296, 297, 289, + 0, 306, 310, 0, 367, 0, 372, 374, -2, -2, + 0, 409, 410, 411, 412, 413, 0, 0, 0, 0, + 0, 0, 0, 0, 437, 438, 439, 440, 505, 506, + 507, 508, 509, 510, 511, 512, 376, 377, 502, 552, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, + 0, 467, 467, 467, 467, 467, 467, 467, 467, 0, + 0, 0, 0, 0, 0, 317, 319, 320, 321, 340, + 0, 342, 0, 0, 42, 46, 0, 777, 556, -2, + -2, 0, 0, 597, 598, -2, 703, -2, 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, 691, 692, 693, 694, + 695, 0, 0, 81, 0, 79, 0, 800, 0, 69, + 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, + 0, 0, 0, 233, 0, 235, 800, 800, 800, 800, + 800, 800, 800, 800, 244, 801, 802, 245, 246, 247, + 800, 800, 249, 0, 266, 262, 263, 0, 0, 261, + 286, 287, 29, 798, 23, 0, 0, 529, 0, 521, + 522, 525, 528, 28, 295, 0, 300, 299, 291, 0, + 307, 0, 0, 0, 311, 0, 313, 314, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 391, 392, 393, 394, 395, - 396, 397, 370, 0, 384, 0, 0, 0, 426, 427, - 428, 429, 430, 431, 432, 0, 299, 28, 0, 404, - 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, - 491, 0, 456, 0, 457, 458, 459, 460, 461, 462, - 463, 0, 299, 0, 0, 44, 0, 355, 0, 0, - 0, 0, 0, 0, 344, 0, 0, 347, 0, 0, - 0, 0, 338, 0, 0, 358, 746, 340, 0, 342, - 343, -2, 0, 0, 0, 40, 41, 0, 47, 774, - 49, 50, 0, 0, 0, 159, 561, 562, 563, 559, - 190, 0, 142, 138, 84, 85, 86, 131, 88, 131, - 131, 131, 131, 156, 156, 156, 156, 114, 115, 116, - 117, 118, 0, 0, 101, 131, 131, 131, 105, 121, - 122, 123, 124, 125, 126, 127, 128, 89, 90, 91, - 92, 93, 94, 95, 133, 133, 133, 135, 135, 590, - 63, 0, 71, 0, 797, 0, 797, 76, 0, 206, - 0, 225, 567, 0, 797, 228, 229, 357, 598, 599, - 233, 234, 235, 236, 237, 238, 239, 240, 245, 249, - 0, 266, 0, 0, 253, 252, 530, 0, 0, 0, - 0, 0, 521, 523, 524, 529, 31, 295, 0, 510, - 0, 0, 0, 298, 26, 365, 366, 368, 385, 0, - 387, 389, 309, 305, 0, 500, -2, 375, 376, 400, - 401, 402, 0, 0, 0, 0, 398, 380, 0, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 425, 475, 476, 0, 423, 424, 433, 0, 0, - 300, 301, 403, 0, 548, 28, 0, 0, 0, 0, - 0, 499, 0, 0, 0, 0, 497, 494, 0, 0, - 465, 0, 0, 0, 0, 0, 0, 354, 362, 550, - 0, 315, 333, 335, 0, 330, 345, 346, 348, 0, - 350, 0, 352, 353, 319, 320, 321, 0, 0, 0, - 0, 341, 362, 0, 362, 43, 554, 48, 0, 0, - 53, 54, 555, 556, 557, 0, 77, 191, 193, 196, - 197, 198, 79, 80, 81, 0, 0, 188, 0, 0, - 0, 0, 0, 182, 183, 145, 143, 0, 140, 139, - 87, 0, 156, 156, 108, 109, 159, 0, 159, 159, - 159, 0, 0, 102, 103, 104, 96, 0, 97, 98, - 99, 0, 100, 0, 0, 797, 65, 0, 69, 70, - 66, 569, 67, 796, 0, 0, 582, 207, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 0, 224, - 797, 227, 263, 248, 0, 0, 264, 265, 0, 527, - 528, 0, 520, 24, 0, 564, 565, 511, 512, 312, - 386, 388, 390, 0, 299, 377, 398, 381, 0, 378, - 0, 0, 372, 438, 0, 0, 405, -2, 441, 442, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, - 0, 495, 0, 0, 455, 466, 467, 468, 469, 542, - 0, 0, -2, 0, 0, 517, 0, 0, 0, 327, - 334, 0, 0, 328, 0, 329, 349, 351, 0, 0, - 0, 0, 325, 517, 362, 39, 51, 52, 0, 0, - 58, 160, 0, 194, 0, 0, 0, 177, 0, 0, - 180, 181, 0, 152, 0, 144, 83, 141, 0, 159, - 159, 110, 0, 111, 112, 113, 0, 129, 0, 0, - 0, 0, 591, 64, 72, 73, 0, 199, 796, 0, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 796, 0, 0, 796, 583, 584, 585, 586, 0, - 226, 266, 267, 268, 531, 0, 25, 362, 0, 306, - 501, 0, 379, 0, 399, 382, 439, 302, 0, 131, - 131, 480, 131, 135, 483, 131, 485, 131, 488, 0, - 0, 0, 0, 500, 0, 0, 0, 492, 454, 498, - 0, 32, 0, 542, 532, 544, 546, 0, 28, 0, - 538, 0, 525, 551, 363, 552, 331, 0, 336, 0, - 0, 0, 339, 0, 525, 38, 55, 56, 57, 192, - 195, 0, 184, 131, 187, 178, 179, 0, 154, 0, - 146, 147, 148, 149, 150, 151, 132, 106, 107, 157, - 158, 156, 0, 156, 0, 136, 0, 797, 0, 0, - 200, 0, 201, 203, 204, 205, 0, 247, 513, 313, - 440, 383, 443, 477, 156, 481, 482, 484, 486, 487, - 489, 445, 444, 446, 0, 0, 449, 0, 0, 0, - 0, 0, 496, 0, 33, 0, 547, -2, 0, 0, - 0, 45, 36, 0, 323, 0, 0, 0, 358, 326, - 37, 169, 0, 186, 0, 161, 155, 0, 159, 130, - 159, 0, 0, 62, 74, 75, 0, 0, 515, 0, - 478, 479, 0, 0, 0, 0, 470, 453, 493, 0, - 545, 0, -2, 0, 540, 539, 0, 332, 359, 360, - 361, 322, 168, 170, 0, 175, 0, 185, 0, 166, - 0, 163, 165, 153, 119, 120, 134, 137, 0, 0, - 27, 0, 0, 447, 448, 450, 451, 0, 0, 0, - 0, 535, 28, 0, 324, 171, 172, 0, 176, 174, - 0, 82, 0, 162, 164, 68, 0, 220, 0, 516, - 514, 452, 0, 0, 0, 543, -2, 541, 173, 0, - 167, 71, 219, 0, 0, 471, 0, 474, 0, 202, - 221, 0, 472, 0, 0, 0, 189, 0, 0, 0, - 473, 0, 0, 222, 223, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, + 395, 396, 397, 398, 399, 400, 373, 0, 387, 0, + 0, 0, 429, 430, 431, 432, 433, 434, 435, 0, + 302, 28, 0, 407, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 494, 0, 459, 0, 460, 461, + 462, 463, 464, 465, 466, 0, 302, 0, 0, 44, + 0, 358, 0, 0, 0, 0, 0, 0, 347, 0, + 0, 350, 0, 0, 0, 0, 341, 0, 0, 361, + 749, 343, 0, 345, 346, -2, 0, 0, 0, 40, + 41, 0, 47, 777, 49, 50, 0, 0, 0, 162, + 564, 565, 566, 562, 193, 0, 0, 145, 141, 87, + 88, 89, 134, 91, 134, 134, 134, 134, 159, 159, + 159, 159, 117, 118, 119, 120, 121, 0, 0, 104, + 134, 134, 134, 108, 124, 125, 126, 127, 128, 129, + 130, 131, 92, 93, 94, 95, 96, 97, 98, 136, + 136, 136, 138, 138, 593, 64, 0, 72, 0, 800, + 0, 800, 77, 0, 209, 0, 228, 570, 0, 800, + 231, 232, 360, 601, 602, 236, 237, 238, 239, 240, + 241, 242, 243, 248, 252, 0, 269, 0, 0, 256, + 255, 533, 0, 0, 0, 0, 0, 524, 526, 527, + 532, 31, 298, 0, 513, 0, 0, 0, 301, 26, + 368, 369, 371, 388, 0, 390, 392, 312, 308, 0, + 503, -2, 378, 379, 403, 404, 405, 0, 0, 0, + 0, 401, 383, 0, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 428, 478, 479, 0, + 426, 427, 436, 0, 0, 303, 304, 406, 0, 551, + 28, 0, 0, 0, 0, 0, 502, 0, 0, 0, + 0, 500, 497, 0, 0, 468, 0, 0, 0, 0, + 0, 0, 357, 365, 553, 0, 318, 336, 338, 0, + 333, 348, 349, 351, 0, 353, 0, 355, 356, 322, + 323, 324, 0, 0, 0, 0, 344, 365, 0, 365, + 43, 557, 48, 0, 0, 53, 54, 558, 559, 560, + 0, 78, 194, 196, 199, 200, 201, 82, 83, 84, + 0, 0, 191, 0, 0, 0, 0, 0, 185, 186, + 80, 148, 146, 0, 143, 142, 90, 0, 159, 159, + 111, 112, 162, 0, 162, 162, 162, 0, 0, 105, + 106, 107, 99, 0, 100, 101, 102, 0, 103, 0, + 0, 800, 66, 0, 70, 71, 67, 572, 68, 799, + 0, 0, 585, 210, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 0, 227, 800, 230, 266, 251, + 0, 0, 267, 268, 0, 530, 531, 0, 523, 24, + 0, 567, 568, 514, 515, 315, 389, 391, 393, 0, + 302, 380, 401, 384, 0, 381, 0, 0, 375, 441, + 0, 0, 408, -2, 444, 445, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 520, 0, 498, 0, 0, + 458, 469, 470, 471, 472, 545, 0, 0, -2, 0, + 0, 520, 0, 0, 0, 330, 337, 0, 0, 331, + 0, 332, 352, 354, 0, 0, 0, 0, 328, 520, + 365, 39, 51, 52, 0, 0, 58, 163, 0, 197, + 0, 0, 0, 180, 0, 0, 183, 184, 0, 155, + 0, 147, 86, 144, 0, 162, 162, 113, 0, 114, + 115, 116, 0, 132, 0, 0, 0, 0, 594, 65, + 73, 74, 0, 202, 799, 0, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 799, 0, 0, + 799, 586, 587, 588, 589, 0, 229, 269, 270, 271, + 534, 0, 25, 365, 0, 309, 504, 0, 382, 0, + 402, 385, 442, 305, 0, 134, 134, 483, 134, 138, + 486, 134, 488, 134, 491, 0, 0, 0, 0, 503, + 0, 0, 0, 495, 457, 501, 0, 32, 0, 545, + 535, 547, 549, 0, 28, 0, 541, 0, 528, 554, + 366, 555, 334, 0, 339, 0, 0, 0, 342, 0, + 528, 38, 55, 56, 57, 195, 198, 0, 187, 134, + 190, 181, 182, 0, 157, 0, 149, 150, 151, 152, + 153, 154, 135, 109, 110, 160, 161, 159, 0, 159, + 0, 139, 0, 800, 0, 0, 203, 0, 204, 206, + 207, 208, 0, 250, 516, 316, 443, 386, 446, 480, + 159, 484, 485, 487, 489, 490, 492, 448, 447, 449, + 0, 0, 452, 0, 0, 0, 0, 0, 499, 0, + 33, 0, 550, -2, 0, 0, 0, 45, 36, 0, + 326, 0, 0, 0, 361, 329, 37, 172, 0, 189, + 0, 164, 158, 0, 162, 133, 162, 0, 0, 63, + 75, 76, 0, 0, 518, 0, 481, 482, 0, 0, + 0, 0, 473, 456, 496, 0, 548, 0, -2, 0, + 543, 542, 0, 335, 362, 363, 364, 325, 171, 173, + 0, 178, 0, 188, 0, 169, 0, 166, 168, 156, + 122, 123, 137, 140, 0, 0, 27, 0, 0, 450, + 451, 453, 454, 0, 0, 0, 0, 538, 28, 0, + 327, 174, 175, 0, 179, 177, 0, 85, 0, 165, + 167, 69, 0, 223, 0, 519, 517, 455, 0, 0, + 0, 546, -2, 544, 176, 0, 170, 72, 222, 0, + 0, 474, 0, 477, 0, 205, 224, 0, 475, 0, + 0, 0, 192, 0, 0, 0, 476, 0, 0, 225, + 226, } var yyTok1 = [...]int{ @@ -2718,35 +2749,35 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:306 + //line sql.y:308 { setParseTree(yylex, yyDollar[1].statement) } case 2: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:311 + //line sql.y:313 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:312 + //line sql.y:314 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:316 + //line sql.y:318 { yyVAL.statement = yyDollar[1].selStmt } case 22: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:337 + //line sql.y:339 { setParseTree(yylex, nil) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:343 + //line sql.y:345 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2756,55 +2787,55 @@ yydefault: } case 24: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:351 + //line sql.y:353 { 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 25: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:355 + //line sql.y:357 { 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 26: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:361 + //line sql.y:363 { yyVAL.statement = &Stream{Comments: Comments(yyDollar[2].bytes2), SelectExpr: yyDollar[3].selectExpr, Table: yyDollar[5].tableName} } case 27: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:368 + //line sql.y:370 { 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 28: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:374 + //line sql.y:376 { yyVAL.selStmt = yyDollar[1].selStmt } case 29: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:378 + //line sql.y:380 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:384 + //line sql.y:386 { yyVAL.selStmt = yyDollar[1].selStmt } case 31: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:388 + //line sql.y:390 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 32: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:395 + //line sql.y:397 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].ins @@ -2818,7 +2849,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:407 + //line sql.y:409 { cols := make(Columns, 0, len(yyDollar[7].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[8].updateExprs)) @@ -2830,193 +2861,201 @@ yydefault: } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:419 + //line sql.y:421 { yyVAL.str = InsertStr } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:423 + //line sql.y:425 { yyVAL.str = ReplaceStr } case 36: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:429 + //line sql.y:431 { 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: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:435 + //line sql.y:437 { 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: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:439 + //line sql.y:441 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[4].tableNames, TableExprs: yyDollar[6].tableExprs, Where: NewWhere(WhereStr, yyDollar[7].expr)} } case 39: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:443 + //line sql.y:445 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Targets: yyDollar[3].tableNames, TableExprs: yyDollar[5].tableExprs, Where: NewWhere(WhereStr, yyDollar[6].expr)} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:448 + //line sql.y:450 { } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:449 + //line sql.y:451 { } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:453 + //line sql.y:455 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 43: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:457 + //line sql.y:459 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } case 44: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:462 + //line sql.y:464 { yyVAL.partitions = nil } case 45: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:466 + //line sql.y:468 { yyVAL.partitions = yyDollar[3].partitions } case 46: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:472 + //line sql.y:474 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 47: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:476 + //line sql.y:478 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[4].setExprs} } case 48: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:480 + //line sql.y:482 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Scope: yyDollar[3].str, Exprs: yyDollar[5].setExprs} } case 49: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:484 + //line sql.y:486 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[4].setExprs} } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:490 + //line sql.y:492 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 51: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:494 + //line sql.y:496 { yyVAL.setExprs = append(yyVAL.setExprs, yyDollar[3].setExpr) } case 52: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:500 + //line sql.y:502 { yyVAL.setExpr = yyDollar[3].setExpr } case 53: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:504 + //line sql.y:506 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("0"))} } case 54: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:508 + //line sql.y:510 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_read_only"), Expr: NewIntVal([]byte("1"))} } case 55: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:514 + //line sql.y:516 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("repeatable read"))} } case 56: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:518 + //line sql.y:520 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read committed"))} } case 57: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:522 + //line sql.y:524 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("read uncommitted"))} } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:526 + //line sql.y:528 { yyVAL.setExpr = &SetExpr{Name: NewColIdent("tx_isolation"), Expr: NewStrVal([]byte("serializable"))} } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:532 + //line sql.y:534 { yyVAL.str = SessionStr } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:536 + //line sql.y:538 { yyVAL.str = GlobalStr } case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:542 + //line sql.y:544 { yyDollar[1].ddl.TableSpec = yyDollar[2].TableSpec yyVAL.statement = yyDollar[1].ddl } case 62: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:549 + { + // create table [name] like [name] + yyDollar[1].ddl.OptLike = yyDollar[2].OptLike + yyVAL.statement = yyDollar[1].ddl + } + case 63: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:547 + //line sql.y:555 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} } - case 63: + case 64: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:552 + //line sql.y:560 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} } - case 64: + case 65: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:556 + //line sql.y:564 { yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} } - case 65: + case 66: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:560 + //line sql.y:568 { yyVAL.statement = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ Name: yyDollar[3].colIdent, @@ -3024,110 +3063,122 @@ yydefault: Params: yyDollar[5].vindexParams, }} } - case 66: + case 67: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:568 + //line sql.y:576 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } - case 67: + case 68: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:572 + //line sql.y:580 { yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].bytes)} } - case 68: + case 69: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:577 + //line sql.y:585 { yyVAL.colIdent = NewColIdent("") } - case 69: + case 70: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:581 + //line sql.y:589 { yyVAL.colIdent = yyDollar[2].colIdent } - case 70: + case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:587 + //line sql.y:595 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 71: + case 72: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:592 + //line sql.y:600 { var v []VindexParam yyVAL.vindexParams = v } - case 72: + case 73: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:597 + //line sql.y:605 { yyVAL.vindexParams = yyDollar[2].vindexParams } - case 73: + case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:603 + //line sql.y:611 { yyVAL.vindexParams = make([]VindexParam, 0, 4) yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[1].vindexParam) } - case 74: + case 75: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:608 + //line sql.y:616 { yyVAL.vindexParams = append(yyVAL.vindexParams, yyDollar[3].vindexParam) } - case 75: + case 76: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:614 + //line sql.y:622 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } - case 76: + case 77: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:620 + //line sql.y:628 { yyVAL.ddl = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } - case 77: + case 78: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:627 + //line sql.y:635 { yyVAL.TableSpec = yyDollar[2].TableSpec yyVAL.TableSpec.Options = yyDollar[4].str } - case 78: + case 79: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:642 + { + yyVAL.OptLike = &OptLike{LikeTable: yyDollar[2].tableName} + } + case 80: + yyDollar = yyS[yypt-4 : yypt+1] + //line sql.y:646 + { + yyVAL.OptLike = &OptLike{LikeTable: yyDollar[3].tableName} + } + case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:634 + //line sql.y:652 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) } - case 79: + case 82: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:639 + //line sql.y:657 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) } - case 80: + case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:643 + //line sql.y:661 { yyVAL.TableSpec.AddIndex(yyDollar[3].indexDefinition) } - case 81: + case 84: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:647 + //line sql.y:665 { yyVAL.TableSpec.AddConstraint(yyDollar[3].constraintDefinition) } - case 82: + case 85: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:653 + //line sql.y:671 { yyDollar[2].columnType.NotNull = yyDollar[3].boolVal yyDollar[2].columnType.Default = yyDollar[4].optVal @@ -3137,728 +3188,728 @@ yydefault: yyDollar[2].columnType.Comment = yyDollar[8].optVal yyVAL.columnDefinition = &ColumnDefinition{Name: NewColIdent(string(yyDollar[1].bytes)), Type: yyDollar[2].columnType} } - case 83: + case 86: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:664 + //line sql.y:682 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal yyVAL.columnType.Zerofill = yyDollar[3].boolVal } - case 87: + case 90: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:675 + //line sql.y:693 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } - case 88: + case 91: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:680 + //line sql.y:698 { yyVAL.columnType = yyDollar[1].columnType } - case 89: + case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:686 + //line sql.y:704 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 90: + case 93: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:690 + //line sql.y:708 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 91: + case 94: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:694 + //line sql.y:712 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 92: + case 95: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:698 + //line sql.y:716 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 93: + case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:702 + //line sql.y:720 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 94: + case 97: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:706 + //line sql.y:724 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 95: + case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:710 + //line sql.y:728 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 96: + case 99: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:716 + //line sql.y:734 { 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 100: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:722 + //line sql.y:740 { 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 101: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:728 + //line sql.y:746 { 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 102: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:734 + //line sql.y:752 { 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 103: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:740 + //line sql.y:758 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 101: + case 104: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:748 + //line sql.y:766 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 102: + case 105: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:752 + //line sql.y:770 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 103: + case 106: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:756 + //line sql.y:774 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 104: + case 107: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:760 + //line sql.y:778 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 105: + case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:764 + //line sql.y:782 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 106: + case 109: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:770 + //line sql.y:788 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 107: + case 110: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:774 + //line sql.y:792 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 108: + case 111: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:778 + //line sql.y:796 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 109: + case 112: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:782 + //line sql.y:800 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 110: + case 113: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:786 + //line sql.y:804 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 111: + case 114: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:790 + //line sql.y:808 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 112: + case 115: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:794 + //line sql.y:812 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 113: + case 116: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:798 + //line sql.y:816 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 114: + case 117: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:802 + //line sql.y:820 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 115: + case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:806 + //line sql.y:824 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 116: + case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:810 + //line sql.y:828 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 117: + case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:814 + //line sql.y:832 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 118: + case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:818 + //line sql.y:836 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 119: + case 122: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:822 + //line sql.y:840 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 120: + case 123: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:827 + //line sql.y:845 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 121: + case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:833 + //line sql.y:851 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 122: + case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:837 + //line sql.y:855 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 123: + case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:841 + //line sql.y:859 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 124: + case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:845 + //line sql.y:863 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 125: + case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:849 + //line sql.y:867 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 126: + case 129: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:853 + //line sql.y:871 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 127: + case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:857 + //line sql.y:875 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 128: + case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:861 + //line sql.y:879 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } - case 129: + case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:867 + //line sql.y:885 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } - case 130: + case 133: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:872 + //line sql.y:890 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } - case 131: + case 134: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:877 + //line sql.y:895 { yyVAL.optVal = nil } - case 132: + case 135: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:881 + //line sql.y:899 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 133: + case 136: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:886 + //line sql.y:904 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 134: + case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:890 + //line sql.y:908 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 135: + case 138: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:898 + //line sql.y:916 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 136: + case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:902 + //line sql.y:920 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), } } - case 137: + case 140: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:908 + //line sql.y:926 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), Scale: NewIntVal(yyDollar[4].bytes), } } - case 138: + case 141: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:916 + //line sql.y:934 { yyVAL.boolVal = BoolVal(false) } - case 139: + case 142: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:920 + //line sql.y:938 { yyVAL.boolVal = BoolVal(true) } - case 140: + case 143: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:925 + //line sql.y:943 { yyVAL.boolVal = BoolVal(false) } - case 141: + case 144: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:929 + //line sql.y:947 { yyVAL.boolVal = BoolVal(true) } - case 142: + case 145: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:935 + //line sql.y:953 { yyVAL.boolVal = BoolVal(false) } - case 143: + case 146: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:939 + //line sql.y:957 { yyVAL.boolVal = BoolVal(false) } - case 144: + case 147: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:943 + //line sql.y:961 { yyVAL.boolVal = BoolVal(true) } - case 145: + case 148: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:948 + //line sql.y:966 { yyVAL.optVal = nil } - case 146: + case 149: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:952 + //line sql.y:970 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 147: + case 150: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:956 + //line sql.y:974 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } - case 148: + case 151: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:960 + //line sql.y:978 { yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } - case 149: + case 152: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:964 + //line sql.y:982 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } - case 150: + case 153: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:968 + //line sql.y:986 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } - case 151: + case 154: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:972 + //line sql.y:990 { yyVAL.optVal = NewBitVal(yyDollar[2].bytes) } - case 152: + case 155: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:977 + //line sql.y:995 { yyVAL.optVal = nil } - case 153: + case 156: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:981 + //line sql.y:999 { yyVAL.optVal = NewValArg(yyDollar[3].bytes) } - case 154: + case 157: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:986 + //line sql.y:1004 { yyVAL.boolVal = BoolVal(false) } - case 155: + case 158: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:990 + //line sql.y:1008 { yyVAL.boolVal = BoolVal(true) } - case 156: + case 159: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:995 + //line sql.y:1013 { yyVAL.str = "" } - case 157: + case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:999 + //line sql.y:1017 { yyVAL.str = string(yyDollar[3].bytes) } - case 158: + case 161: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1003 + //line sql.y:1021 { yyVAL.str = string(yyDollar[3].bytes) } - case 159: + case 162: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1008 + //line sql.y:1026 { yyVAL.str = "" } - case 160: + case 163: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1012 + //line sql.y:1030 { yyVAL.str = string(yyDollar[2].bytes) } - case 161: + case 164: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1017 + //line sql.y:1035 { yyVAL.colKeyOpt = colKeyNone } - case 162: + case 165: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1021 + //line sql.y:1039 { yyVAL.colKeyOpt = colKeyPrimary } - case 163: + case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1025 + //line sql.y:1043 { yyVAL.colKeyOpt = colKey } - case 164: + case 167: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1029 + //line sql.y:1047 { yyVAL.colKeyOpt = colKeyUniqueKey } - case 165: + case 168: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1033 + //line sql.y:1051 { yyVAL.colKeyOpt = colKeyUnique } - case 166: + case 169: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1038 + //line sql.y:1056 { yyVAL.optVal = nil } - case 167: + case 170: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1042 + //line sql.y:1060 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 168: + case 171: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1048 + //line sql.y:1066 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } - case 169: + case 172: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1052 + //line sql.y:1070 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } - case 170: + case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1058 + //line sql.y:1076 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } - case 171: + case 174: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1062 + //line sql.y:1080 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } - case 172: + case 175: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1068 + //line sql.y:1086 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } - case 173: + case 176: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1072 + //line sql.y:1090 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } - case 174: + case 177: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1077 + //line sql.y:1095 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } - case 175: + case 178: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1083 + //line sql.y:1101 { yyVAL.str = "" } - case 176: + case 179: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1087 + //line sql.y:1105 { yyVAL.str = string(yyDollar[1].bytes) } - case 177: + case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1093 + //line sql.y:1111 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } - case 178: + case 181: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1097 + //line sql.y:1115 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Spatial: true, Unique: false} } - case 179: + case 182: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1101 + //line sql.y:1119 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(string(yyDollar[3].bytes)), Unique: true} } - case 180: + case 183: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1105 + //line sql.y:1123 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: true} } - case 181: + case 184: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1109 + //line sql.y:1127 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} } - case 182: + case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1115 + //line sql.y:1133 { yyVAL.str = string(yyDollar[1].bytes) } - case 183: + case 186: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1119 + //line sql.y:1137 { yyVAL.str = string(yyDollar[1].bytes) } - case 184: + case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1125 + //line sql.y:1143 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } - case 185: + case 188: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1129 + //line sql.y:1147 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } - case 186: + case 189: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1135 + //line sql.y:1153 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } - case 187: + case 190: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1141 + //line sql.y:1159 { yyVAL.constraintDefinition = &ConstraintDefinition{Name: string(yyDollar[2].bytes), Details: yyDollar[3].constraintInfo} } - case 188: + case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1145 + //line sql.y:1163 { yyVAL.constraintDefinition = &ConstraintDefinition{Details: yyDollar[1].constraintInfo} } - case 189: + case 192: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:1152 + //line sql.y:1170 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns} } - case 190: + case 193: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1157 + //line sql.y:1175 { yyVAL.str = "" } - case 191: + case 194: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1161 + //line sql.y:1179 { yyVAL.str = " " + string(yyDollar[1].str) } - case 192: + case 195: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1165 + //line sql.y:1183 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } - case 193: + case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1173 + //line sql.y:1191 { yyVAL.str = yyDollar[1].str } - case 194: + case 197: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1177 + //line sql.y:1195 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } - case 195: + case 198: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1181 + //line sql.y:1199 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } - case 196: + case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1187 + //line sql.y:1205 { yyVAL.str = yyDollar[1].colIdent.String() } - case 197: + case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1191 + //line sql.y:1209 { yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } - case 198: + case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1195 + //line sql.y:1213 { yyVAL.str = string(yyDollar[1].bytes) } - case 199: + case 202: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1201 + //line sql.y:1219 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 200: + case 203: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1205 + //line sql.y:1223 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 201: + case 204: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1209 + //line sql.y:1227 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 202: + case 205: yyDollar = yyS[yypt-12 : yypt+1] - //line sql.y:1213 + //line sql.y:1231 { yyVAL.statement = &DDL{ Action: AddColVindexStr, @@ -3871,9 +3922,9 @@ yydefault: VindexCols: yyDollar[9].columns, } } - case 203: + case 206: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1226 + //line sql.y:1244 { yyVAL.statement = &DDL{ Action: DropColVindexStr, @@ -3883,71 +3934,71 @@ yydefault: }, } } - case 204: + case 207: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1236 + //line sql.y:1254 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } - case 205: + case 208: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1241 + //line sql.y:1259 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 206: + case 209: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1246 + //line sql.y:1264 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} } - case 207: + case 210: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1250 + //line sql.y:1268 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, PartitionSpec: yyDollar[5].partSpec} } - case 219: + case 222: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1269 + //line sql.y:1287 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } - case 220: + case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1275 + //line sql.y:1293 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } - case 221: + case 224: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1279 + //line sql.y:1297 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } - case 222: + case 225: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1285 + //line sql.y:1303 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } - case 223: + case 226: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1289 + //line sql.y:1307 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } - case 224: + case 227: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1295 + //line sql.y:1313 { yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } - case 225: + case 228: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1301 + //line sql.y:1319 { var exists bool if yyDollar[3].byt != 0 { @@ -3955,16 +4006,16 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName, IfExists: exists} } - case 226: + case 229: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1309 + //line sql.y:1327 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } - case 227: + case 230: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1314 + //line sql.y:1332 { var exists bool if yyDollar[3].byt != 0 { @@ -3972,130 +4023,130 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName.ToViewName(), IfExists: exists} } - case 228: + case 231: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1322 + //line sql.y:1340 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 229: + case 232: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1326 + //line sql.y:1344 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 230: + case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1332 + //line sql.y:1350 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } - case 231: + case 234: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1336 + //line sql.y:1354 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } - case 232: + case 235: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1341 + //line sql.y:1359 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } - case 233: + case 236: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1347 + //line sql.y:1365 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 234: + case 237: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1351 + //line sql.y:1369 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 235: + case 238: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1355 + //line sql.y:1373 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 236: + case 239: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1360 + //line sql.y:1378 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 237: + case 240: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1364 + //line sql.y:1382 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 238: + case 241: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1368 + //line sql.y:1386 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 239: + case 242: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1372 + //line sql.y:1390 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 240: + case 243: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1376 + //line sql.y:1394 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } - case 241: + case 244: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1380 + //line sql.y:1398 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 242: + case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1384 + //line sql.y:1402 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 243: + case 246: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1388 + //line sql.y:1406 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 244: + case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1392 + //line sql.y:1410 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 245: + case 248: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1396 + //line sql.y:1414 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } - case 246: + case 249: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1400 + //line sql.y:1418 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 247: + case 250: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1404 + //line sql.y:1422 { showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} yyVAL.statement = &Show{Type: string(yyDollar[3].bytes), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} } - case 248: + case 251: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1409 + //line sql.y:1427 { // this is ugly, but I couldn't find a better way for now if yyDollar[3].str == "processlist" { @@ -4105,610 +4156,610 @@ yydefault: yyVAL.statement = &Show{Type: yyDollar[3].str, ShowTablesOpt: showTablesOpt} } } - case 249: + case 252: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1419 + //line sql.y:1437 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } - case 250: + case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1423 + //line sql.y:1441 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 251: + case 254: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1427 + //line sql.y:1445 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 252: + case 255: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1431 + //line sql.y:1449 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowCollationFilterOpt: &yyDollar[4].expr} } - case 253: + case 256: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1435 + //line sql.y:1453 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} } - case 254: + case 257: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1439 + //line sql.y:1457 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 255: + case 258: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1443 + //line sql.y:1461 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 256: + case 259: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1447 + //line sql.y:1465 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 257: + case 260: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1451 + //line sql.y:1469 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 258: + case 261: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1461 + //line sql.y:1479 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } - case 259: + case 262: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1467 + //line sql.y:1485 { yyVAL.str = string(yyDollar[1].bytes) } - case 260: + case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1471 + //line sql.y:1489 { yyVAL.str = string(yyDollar[1].bytes) } - case 261: + case 264: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1477 + //line sql.y:1495 { yyVAL.str = "" } - case 262: + case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1481 + //line sql.y:1499 { yyVAL.str = "full " } - case 263: + case 266: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1487 + //line sql.y:1505 { yyVAL.str = "" } - case 264: + case 267: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1491 + //line sql.y:1509 { yyVAL.str = yyDollar[2].tableIdent.v } - case 265: + case 268: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1495 + //line sql.y:1513 { yyVAL.str = yyDollar[2].tableIdent.v } - case 266: + case 269: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1501 + //line sql.y:1519 { yyVAL.showFilter = nil } - case 267: + case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1505 + //line sql.y:1523 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } - case 268: + case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1509 + //line sql.y:1527 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } - case 269: + case 272: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1515 + //line sql.y:1533 { yyVAL.str = "" } - case 270: + case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1519 + //line sql.y:1537 { yyVAL.str = SessionStr } - case 271: + case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1523 + //line sql.y:1541 { yyVAL.str = GlobalStr } - case 272: + case 275: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1529 + //line sql.y:1547 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } - case 273: + case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1533 + //line sql.y:1551 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } - case 274: + case 277: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1539 + //line sql.y:1557 { yyVAL.statement = &Begin{} } - case 275: + case 278: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1543 + //line sql.y:1561 { yyVAL.statement = &Begin{} } - case 276: + case 279: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1549 + //line sql.y:1567 { yyVAL.statement = &Commit{} } - case 277: + case 280: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1555 + //line sql.y:1573 { yyVAL.statement = &Rollback{} } - case 278: + case 281: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1561 + //line sql.y:1579 { yyVAL.statement = &OtherRead{} } - case 279: + case 282: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1565 + //line sql.y:1583 { yyVAL.statement = &OtherRead{} } - case 280: + case 283: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1569 + //line sql.y:1587 { yyVAL.statement = &OtherRead{} } - case 281: + case 284: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1573 + //line sql.y:1591 { yyVAL.statement = &OtherAdmin{} } - case 282: + case 285: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1577 + //line sql.y:1595 { yyVAL.statement = &OtherAdmin{} } - case 283: + case 286: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1581 + //line sql.y:1599 { yyVAL.statement = &OtherAdmin{} } - case 284: + case 287: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1585 + //line sql.y:1603 { yyVAL.statement = &OtherAdmin{} } - case 285: + case 288: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1590 + //line sql.y:1608 { setAllowComments(yylex, true) } - case 286: + case 289: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1594 + //line sql.y:1612 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 287: + case 290: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1600 + //line sql.y:1618 { yyVAL.bytes2 = nil } - case 288: + case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1604 + //line sql.y:1622 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 289: + case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1610 + //line sql.y:1628 { yyVAL.str = UnionStr } - case 290: + case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1614 + //line sql.y:1632 { yyVAL.str = UnionAllStr } - case 291: + case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1618 + //line sql.y:1636 { yyVAL.str = UnionDistinctStr } - case 292: + case 295: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1623 + //line sql.y:1641 { yyVAL.str = "" } - case 293: + case 296: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1627 + //line sql.y:1645 { yyVAL.str = SQLNoCacheStr } - case 294: + case 297: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1631 + //line sql.y:1649 { yyVAL.str = SQLCacheStr } - case 295: + case 298: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1636 + //line sql.y:1654 { yyVAL.str = "" } - case 296: + case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1640 + //line sql.y:1658 { yyVAL.str = DistinctStr } - case 297: + case 300: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1645 + //line sql.y:1663 { yyVAL.str = "" } - case 298: + case 301: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1649 + //line sql.y:1667 { yyVAL.str = StraightJoinHint } - case 299: + case 302: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1654 + //line sql.y:1672 { yyVAL.selectExprs = nil } - case 300: + case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1658 + //line sql.y:1676 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 301: + case 304: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1664 + //line sql.y:1682 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 302: + case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1668 + //line sql.y:1686 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 303: + case 306: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1674 + //line sql.y:1692 { yyVAL.selectExpr = &StarExpr{} } - case 304: + case 307: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1678 + //line sql.y:1696 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 305: + case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1682 + //line sql.y:1700 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 306: + case 309: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1686 + //line sql.y:1704 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 307: + case 310: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1691 + //line sql.y:1709 { yyVAL.colIdent = ColIdent{} } - case 308: + case 311: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1695 + //line sql.y:1713 { yyVAL.colIdent = yyDollar[1].colIdent } - case 309: + case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1699 + //line sql.y:1717 { yyVAL.colIdent = yyDollar[2].colIdent } - case 311: + case 314: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1706 + //line sql.y:1724 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 312: + case 315: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1711 + //line sql.y:1729 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } - case 313: + case 316: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1715 + //line sql.y:1733 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 314: + case 317: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1721 + //line sql.y:1739 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 315: + case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1725 + //line sql.y:1743 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 318: + case 321: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1735 + //line sql.y:1753 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 319: + case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1739 + //line sql.y:1757 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 320: + case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1743 + //line sql.y:1761 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 321: + case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1749 + //line sql.y:1767 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 322: + case 325: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1753 + //line sql.y:1771 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } - case 323: + case 326: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1759 + //line sql.y:1777 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 324: + case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1763 + //line sql.y:1781 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 325: + case 328: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1769 + //line sql.y:1787 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } - case 326: + case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1773 + //line sql.y:1791 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } - case 327: + case 330: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1786 + //line sql.y:1804 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 328: + case 331: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1790 + //line sql.y:1808 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 329: + case 332: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1794 + //line sql.y:1812 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 330: + case 333: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1798 + //line sql.y:1816 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 331: + case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1804 + //line sql.y:1822 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 332: + case 335: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1806 + //line sql.y:1824 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } - case 333: + case 336: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1810 + //line sql.y:1828 { yyVAL.joinCondition = JoinCondition{} } - case 334: + case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1812 + //line sql.y:1830 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 335: + case 338: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1816 + //line sql.y:1834 { yyVAL.joinCondition = JoinCondition{} } - case 336: + case 339: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1818 + //line sql.y:1836 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 337: + case 340: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1821 + //line sql.y:1839 { yyVAL.empty = struct{}{} } - case 338: + case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1823 + //line sql.y:1841 { yyVAL.empty = struct{}{} } - case 339: + case 342: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1826 + //line sql.y:1844 { yyVAL.tableIdent = NewTableIdent("") } - case 340: + case 343: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1830 + //line sql.y:1848 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 341: + case 344: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1834 + //line sql.y:1852 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 343: + case 346: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1841 + //line sql.y:1859 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 344: + case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1847 + //line sql.y:1865 { yyVAL.str = JoinStr } - case 345: + case 348: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1851 + //line sql.y:1869 { yyVAL.str = JoinStr } - case 346: + case 349: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1855 + //line sql.y:1873 { yyVAL.str = JoinStr } - case 347: + case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1861 + //line sql.y:1879 { yyVAL.str = StraightJoinStr } - case 348: + case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1867 + //line sql.y:1885 { yyVAL.str = LeftJoinStr } - case 349: + case 352: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1871 + //line sql.y:1889 { yyVAL.str = LeftJoinStr } - case 350: + case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1875 + //line sql.y:1893 { yyVAL.str = RightJoinStr } - case 351: + case 354: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1879 + //line sql.y:1897 { yyVAL.str = RightJoinStr } - case 352: + case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1885 + //line sql.y:1903 { yyVAL.str = NaturalJoinStr } - case 353: + case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1889 + //line sql.y:1907 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4716,459 +4767,459 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 354: + case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1899 + //line sql.y:1917 { yyVAL.tableName = yyDollar[2].tableName } - case 355: + case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1903 + //line sql.y:1921 { yyVAL.tableName = yyDollar[1].tableName } - case 356: + case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1909 + //line sql.y:1927 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 357: + case 360: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1913 + //line sql.y:1931 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 358: + case 361: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1918 + //line sql.y:1936 { yyVAL.indexHints = nil } - case 359: + case 362: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1922 + //line sql.y:1940 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } - case 360: + case 363: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1926 + //line sql.y:1944 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } - case 361: + case 364: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1930 + //line sql.y:1948 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } - case 362: + case 365: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1935 + //line sql.y:1953 { yyVAL.expr = nil } - case 363: + case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1939 + //line sql.y:1957 { yyVAL.expr = yyDollar[2].expr } - case 364: + case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1945 + //line sql.y:1963 { yyVAL.expr = yyDollar[1].expr } - case 365: + case 368: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1949 + //line sql.y:1967 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 366: + case 369: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1953 + //line sql.y:1971 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 367: + case 370: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1957 + //line sql.y:1975 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 368: + case 371: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1961 + //line sql.y:1979 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 369: + case 372: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1965 + //line sql.y:1983 { yyVAL.expr = yyDollar[1].expr } - case 370: + case 373: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1969 + //line sql.y:1987 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 371: + case 374: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1975 + //line sql.y:1993 { yyVAL.str = "" } - case 372: + case 375: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1979 + //line sql.y:1997 { yyVAL.str = string(yyDollar[2].bytes) } - case 373: + case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1985 + //line sql.y:2003 { yyVAL.boolVal = BoolVal(true) } - case 374: + case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1989 + //line sql.y:2007 { yyVAL.boolVal = BoolVal(false) } - case 375: + case 378: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1995 + //line sql.y:2013 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } - case 376: + case 379: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1999 + //line sql.y:2017 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } - case 377: + case 380: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2003 + //line sql.y:2021 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } - case 378: + case 381: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2007 + //line sql.y:2025 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } - case 379: + case 382: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2011 + //line sql.y:2029 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } - case 380: + case 383: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2015 + //line sql.y:2033 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } - case 381: + case 384: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2019 + //line sql.y:2037 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } - case 382: + case 385: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2023 + //line sql.y:2041 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } - case 383: + case 386: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2027 + //line sql.y:2045 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } - case 384: + case 387: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2031 + //line sql.y:2049 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } - case 385: + case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2037 + //line sql.y:2055 { yyVAL.str = IsNullStr } - case 386: + case 389: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2041 + //line sql.y:2059 { yyVAL.str = IsNotNullStr } - case 387: + case 390: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2045 + //line sql.y:2063 { yyVAL.str = IsTrueStr } - case 388: + case 391: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2049 + //line sql.y:2067 { yyVAL.str = IsNotTrueStr } - case 389: + case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2053 + //line sql.y:2071 { yyVAL.str = IsFalseStr } - case 390: + case 393: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2057 + //line sql.y:2075 { yyVAL.str = IsNotFalseStr } - case 391: + case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2063 + //line sql.y:2081 { yyVAL.str = EqualStr } - case 392: + case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2067 + //line sql.y:2085 { yyVAL.str = LessThanStr } - case 393: + case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2071 + //line sql.y:2089 { yyVAL.str = GreaterThanStr } - case 394: + case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2075 + //line sql.y:2093 { yyVAL.str = LessEqualStr } - case 395: + case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2079 + //line sql.y:2097 { yyVAL.str = GreaterEqualStr } - case 396: + case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2083 + //line sql.y:2101 { yyVAL.str = NotEqualStr } - case 397: + case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2087 + //line sql.y:2105 { yyVAL.str = NullSafeEqualStr } - case 398: + case 401: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2092 + //line sql.y:2110 { yyVAL.expr = nil } - case 399: + case 402: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2096 + //line sql.y:2114 { yyVAL.expr = yyDollar[2].expr } - case 400: + case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2102 + //line sql.y:2120 { yyVAL.colTuple = yyDollar[1].valTuple } - case 401: + case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2106 + //line sql.y:2124 { yyVAL.colTuple = yyDollar[1].subquery } - case 402: + case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2110 + //line sql.y:2128 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 403: + case 406: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2116 + //line sql.y:2134 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 404: + case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2122 + //line sql.y:2140 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 405: + case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2126 + //line sql.y:2144 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 406: + case 409: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2132 + //line sql.y:2150 { yyVAL.expr = yyDollar[1].expr } - case 407: + case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2136 + //line sql.y:2154 { yyVAL.expr = yyDollar[1].boolVal } - case 408: + case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2140 + //line sql.y:2158 { yyVAL.expr = yyDollar[1].colName } - case 409: + case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2144 + //line sql.y:2162 { yyVAL.expr = yyDollar[1].expr } - case 410: + case 413: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2148 + //line sql.y:2166 { yyVAL.expr = yyDollar[1].subquery } - case 411: + case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2152 + //line sql.y:2170 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } - case 412: + case 415: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2156 + //line sql.y:2174 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } - case 413: + case 416: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2160 + //line sql.y:2178 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } - case 414: + case 417: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2164 + //line sql.y:2182 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } - case 415: + case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2168 + //line sql.y:2186 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } - case 416: + case 419: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2172 + //line sql.y:2190 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } - case 417: + case 420: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2176 + //line sql.y:2194 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } - case 418: + case 421: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2180 + //line sql.y:2198 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } - case 419: + case 422: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2184 + //line sql.y:2202 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 420: + case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2188 + //line sql.y:2206 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 421: + case 424: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2192 + //line sql.y:2210 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } - case 422: + case 425: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2196 + //line sql.y:2214 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } - case 423: + case 426: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2200 + //line sql.y:2218 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } - case 424: + case 427: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2204 + //line sql.y:2222 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } - case 425: + case 428: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2208 + //line sql.y:2226 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } - case 426: + case 429: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2212 + //line sql.y:2230 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } - case 427: + case 430: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2216 + //line sql.y:2234 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } - case 428: + case 431: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2220 + //line sql.y:2238 { yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} } - case 429: + case 432: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2224 + //line sql.y:2242 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5176,9 +5227,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 430: + case 433: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2232 + //line sql.y:2250 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5192,21 +5243,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 431: + case 434: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2246 + //line sql.y:2264 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 432: + case 435: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2250 + //line sql.y:2268 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 433: + case 436: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2254 + //line sql.y:2272 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5214,431 +5265,431 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 438: + case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2272 + //line sql.y:2290 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 439: + case 442: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2276 + //line sql.y:2294 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 440: + case 443: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2280 + //line sql.y:2298 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 441: + case 444: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2290 + //line sql.y:2308 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 442: + case 445: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2294 + //line sql.y:2312 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 443: + case 446: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2298 + //line sql.y:2316 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 444: + case 447: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2302 + //line sql.y:2320 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 445: + case 448: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2306 + //line sql.y:2324 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 446: + case 449: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2310 + //line sql.y:2328 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 447: + case 450: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2314 + //line sql.y:2332 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 448: + case 451: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2318 + //line sql.y:2336 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 449: + case 452: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2322 + //line sql.y:2340 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 450: + case 453: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2326 + //line sql.y:2344 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 451: + case 454: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2330 + //line sql.y:2348 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 452: + case 455: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2334 + //line sql.y:2352 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 453: + case 456: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2338 + //line sql.y:2356 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 454: + case 457: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2342 + //line sql.y:2360 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 455: + case 458: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2346 + //line sql.y:2364 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } - case 456: + case 459: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2356 + //line sql.y:2374 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 457: + case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2360 + //line sql.y:2378 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 458: + case 461: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2364 + //line sql.y:2382 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 459: + case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2368 + //line sql.y:2386 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 460: + case 463: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2373 + //line sql.y:2391 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 461: + case 464: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2378 + //line sql.y:2396 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 462: + case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2383 + //line sql.y:2401 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 463: + case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2388 + //line sql.y:2406 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 466: + case 469: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2402 + //line sql.y:2420 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 467: + case 470: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2406 + //line sql.y:2424 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 468: + case 471: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2410 + //line sql.y:2428 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 469: + case 472: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2414 + //line sql.y:2432 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 470: + case 473: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2420 + //line sql.y:2438 { yyVAL.str = "" } - case 471: + case 474: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2424 + //line sql.y:2442 { yyVAL.str = BooleanModeStr } - case 472: + case 475: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2428 + //line sql.y:2446 { yyVAL.str = NaturalLanguageModeStr } - case 473: + case 476: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2432 + //line sql.y:2450 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 474: + case 477: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2436 + //line sql.y:2454 { yyVAL.str = QueryExpansionStr } - case 475: + case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2442 + //line sql.y:2460 { yyVAL.str = string(yyDollar[1].bytes) } - case 476: + case 479: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2446 + //line sql.y:2464 { yyVAL.str = string(yyDollar[1].bytes) } - case 477: + case 480: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2452 + //line sql.y:2470 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 478: + case 481: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2456 + //line sql.y:2474 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 479: + case 482: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2460 + //line sql.y:2478 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 480: + case 483: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2464 + //line sql.y:2482 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 481: + case 484: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2468 + //line sql.y:2486 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 482: + case 485: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2472 + //line sql.y:2490 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 483: + case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2478 + //line sql.y:2496 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 484: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2482 + //line sql.y:2500 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 485: + case 488: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2486 + //line sql.y:2504 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 486: + case 489: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2490 + //line sql.y:2508 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 487: + case 490: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2494 + //line sql.y:2512 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 488: + case 491: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2498 + //line sql.y:2516 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 489: + case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2502 + //line sql.y:2520 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 490: + case 493: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2507 + //line sql.y:2525 { yyVAL.expr = nil } - case 491: + case 494: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2511 + //line sql.y:2529 { yyVAL.expr = yyDollar[1].expr } - case 492: + case 495: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2516 + //line sql.y:2534 { yyVAL.str = string("") } - case 493: + case 496: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2520 + //line sql.y:2538 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 494: + case 497: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2526 + //line sql.y:2544 { yyVAL.whens = []*When{yyDollar[1].when} } - case 495: + case 498: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2530 + //line sql.y:2548 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 496: + case 499: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2536 + //line sql.y:2554 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 497: + case 500: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2541 + //line sql.y:2559 { yyVAL.expr = nil } - case 498: + case 501: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2545 + //line sql.y:2563 { yyVAL.expr = yyDollar[2].expr } - case 499: + case 502: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2551 + //line sql.y:2569 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 500: + case 503: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2555 + //line sql.y:2573 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 501: + case 504: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2559 + //line sql.y:2577 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 502: + case 505: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2565 + //line sql.y:2583 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 503: + case 506: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2569 + //line sql.y:2587 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 504: + case 507: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2573 + //line sql.y:2591 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } - case 505: + case 508: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2577 + //line sql.y:2595 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 506: + case 509: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2581 + //line sql.y:2599 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 507: + case 510: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2585 + //line sql.y:2603 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 508: + case 511: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2589 + //line sql.y:2607 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 509: + case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2593 + //line sql.y:2611 { yyVAL.expr = &NullVal{} } - case 510: + case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2599 + //line sql.y:2617 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5647,239 +5698,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 511: + case 514: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2608 + //line sql.y:2626 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 512: + case 515: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2612 + //line sql.y:2630 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 513: + case 516: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2617 + //line sql.y:2635 { yyVAL.exprs = nil } - case 514: + case 517: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2621 + //line sql.y:2639 { yyVAL.exprs = yyDollar[3].exprs } - case 515: + case 518: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2626 + //line sql.y:2644 { yyVAL.expr = nil } - case 516: + case 519: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2630 + //line sql.y:2648 { yyVAL.expr = yyDollar[2].expr } - case 517: + case 520: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2635 + //line sql.y:2653 { yyVAL.orderBy = nil } - case 518: + case 521: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2639 + //line sql.y:2657 { yyVAL.orderBy = yyDollar[3].orderBy } - case 519: + case 522: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2645 + //line sql.y:2663 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 520: + case 523: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2649 + //line sql.y:2667 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 521: + case 524: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2655 + //line sql.y:2673 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 522: + case 525: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2660 + //line sql.y:2678 { yyVAL.str = AscScr } - case 523: + case 526: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2664 + //line sql.y:2682 { yyVAL.str = AscScr } - case 524: + case 527: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2668 + //line sql.y:2686 { yyVAL.str = DescScr } - case 525: + case 528: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2673 + //line sql.y:2691 { yyVAL.limit = nil } - case 526: + case 529: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2677 + //line sql.y:2695 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 527: + case 530: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2681 + //line sql.y:2699 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 528: + case 531: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2685 + //line sql.y:2703 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 529: + case 532: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2690 + //line sql.y:2708 { yyVAL.str = "" } - case 530: + case 533: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2694 + //line sql.y:2712 { yyVAL.str = ForUpdateStr } - case 531: + case 534: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2698 + //line sql.y:2716 { yyVAL.str = ShareModeStr } - case 532: + case 535: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2711 + //line sql.y:2729 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 533: + case 536: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2715 + //line sql.y:2733 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 534: + case 537: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2719 + //line sql.y:2737 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 535: + case 538: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2724 + //line sql.y:2742 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 536: + case 539: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2728 + //line sql.y:2746 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 537: + case 540: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2732 + //line sql.y:2750 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 538: + case 541: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2739 + //line sql.y:2757 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 539: + case 542: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2743 + //line sql.y:2761 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 540: + case 543: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2747 + //line sql.y:2765 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 541: + case 544: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2751 + //line sql.y:2769 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 542: + case 545: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2756 + //line sql.y:2774 { yyVAL.updateExprs = nil } - case 543: + case 546: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2760 + //line sql.y:2778 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 544: + case 547: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2766 + //line sql.y:2784 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 545: + case 548: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2770 + //line sql.y:2788 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 546: + case 549: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2776 + //line sql.y:2794 { yyVAL.valTuple = yyDollar[1].valTuple } - case 547: + case 550: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2780 + //line sql.y:2798 { yyVAL.valTuple = ValTuple{} } - case 548: + case 551: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2786 + //line sql.y:2804 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 549: + case 552: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2792 + //line sql.y:2810 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5887,306 +5938,306 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 550: + case 553: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2802 + //line sql.y:2820 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 551: + case 554: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2806 + //line sql.y:2824 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 552: + case 555: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2812 + //line sql.y:2830 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 553: + case 556: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2818 + //line sql.y:2836 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 554: + case 557: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2822 + //line sql.y:2840 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 555: + case 558: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2828 + //line sql.y:2846 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 556: + case 559: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2832 + //line sql.y:2850 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 557: + case 560: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2836 + //line sql.y:2854 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 559: + case 562: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2843 + //line sql.y:2861 { yyVAL.bytes = []byte("charset") } - case 561: + case 564: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2850 + //line sql.y:2868 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 562: + case 565: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2854 + //line sql.y:2872 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 563: + case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2858 + //line sql.y:2876 { yyVAL.expr = &Default{} } - case 566: + case 569: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2867 + //line sql.y:2885 { yyVAL.byt = 0 } - case 567: + case 570: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2869 + //line sql.y:2887 { yyVAL.byt = 1 } - case 568: + case 571: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2872 + //line sql.y:2890 { yyVAL.empty = struct{}{} } - case 569: + case 572: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2874 + //line sql.y:2892 { yyVAL.empty = struct{}{} } - case 570: + case 573: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2877 + //line sql.y:2895 { yyVAL.str = "" } - case 571: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2879 - { - yyVAL.str = IgnoreStr - } - case 572: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2883 - { - yyVAL.empty = struct{}{} - } - case 573: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2885 - { - yyVAL.empty = struct{}{} - } case 574: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2887 + //line sql.y:2897 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 575: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2889 + //line sql.y:2901 { yyVAL.empty = struct{}{} } case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2891 + //line sql.y:2903 { yyVAL.empty = struct{}{} } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2893 + //line sql.y:2905 { yyVAL.empty = struct{}{} } case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2895 + //line sql.y:2907 { yyVAL.empty = struct{}{} } case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2897 + //line sql.y:2909 { yyVAL.empty = struct{}{} } case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2899 + //line sql.y:2911 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2901 + //line sql.y:2913 { yyVAL.empty = struct{}{} } case 582: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2904 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2915 { yyVAL.empty = struct{}{} } case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2906 + //line sql.y:2917 { yyVAL.empty = struct{}{} } case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2908 + //line sql.y:2919 { yyVAL.empty = struct{}{} } case 585: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2912 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2922 { yyVAL.empty = struct{}{} } case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2914 + //line sql.y:2924 { yyVAL.empty = struct{}{} } case 587: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2917 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2926 { yyVAL.empty = struct{}{} } case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2919 + //line sql.y:2930 { yyVAL.empty = struct{}{} } case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2921 + //line sql.y:2932 { yyVAL.empty = struct{}{} } case 590: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2924 + //line sql.y:2935 { - yyVAL.colIdent = ColIdent{} + yyVAL.empty = struct{}{} } case 591: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2937 + { + yyVAL.empty = struct{}{} + } + case 592: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2939 + { + yyVAL.empty = struct{}{} + } + case 593: + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2942 + { + yyVAL.colIdent = ColIdent{} + } + case 594: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2926 + //line sql.y:2944 { yyVAL.colIdent = yyDollar[2].colIdent } - case 592: + case 595: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2930 + //line sql.y:2948 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 593: + case 596: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2934 + //line sql.y:2952 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 595: + case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2941 + //line sql.y:2959 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 596: + case 599: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2947 + //line sql.y:2965 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 597: + case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2951 + //line sql.y:2969 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 599: + case 602: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2958 + //line sql.y:2976 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 794: + case 797: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3178 + //line sql.y:3196 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 795: + case 798: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3187 + //line sql.y:3205 { decNesting(yylex) } - case 796: + case 799: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3192 + //line sql.y:3210 { forceEOF(yylex) } - case 797: + case 800: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3197 + //line sql.y:3215 { forceEOF(yylex) } - case 798: + case 801: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3201 + //line sql.y:3219 { forceEOF(yylex) } - case 799: + case 802: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3205 + //line sql.y:3223 { forceEOF(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index b8bd85f8e24..c83c0da74c4 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -112,6 +112,7 @@ func forceEOF(yylex interface{}) { vindexParam VindexParam vindexParams []VindexParam showFilter *ShowFilter + OptLike *OptLike } %token LEX_ERROR @@ -282,6 +283,7 @@ func forceEOF(yylex interface{}) { %type index_or_key %type equal_opt %type table_spec table_column_list +%type create_like %type table_option_list table_option table_opt_value %type index_info %type index_column @@ -543,6 +545,12 @@ create_statement: $1.TableSpec = $2 $$ = $1 } +| create_table_prefix create_like + { + // Create table [name] like [name] + $1.OptLike = $2 + $$ = $1 + } | CREATE constraint_opt INDEX ID using_opt ON table_name ddl_force_eof { // Change this to an alter statement @@ -629,6 +637,16 @@ table_spec: $$.Options = $4 } +create_like: + LIKE table_name + { + $$ = &OptLike{LikeTable: $2} + } +| '(' LIKE table_name ')' + { + $$ = &OptLike{LikeTable: $3} + } + table_column_list: column_definition { From ab2c54201ccdca7ebc3f8d87fc9f909d3f2659e0 Mon Sep 17 00:00:00 2001 From: longfei Date: Fri, 27 Jul 2018 13:59:01 +0800 Subject: [PATCH 2/7] fix for golint suggestion Signed-off-by: longfei --- go/vt/sqlparser/ast.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 6567745e399..b6947c3d7fb 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -780,10 +780,7 @@ func (node *OptLike) walkSubtree(visit Visit) error { if node == nil { return nil } - if err := Walk(visit, node.LikeTable); err != nil { - return err - } - return nil + return Walk(visit, node.LikeTable) } // PartitionSpec describe partition actions (for alter and create) From d96736f8660ff544fc8e01e5e76e0b7211228c95 Mon Sep 17 00:00:00 2001 From: longfei Date: Mon, 30 Jul 2018 11:09:50 +0800 Subject: [PATCH 3/7] just For uniformity Signed-off-by: longfei --- go/vt/sqlparser/sql.go | 10 +++++----- go/vt/sqlparser/sql.y | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 92ba842e689..17ea59d1dcc 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -101,7 +101,7 @@ type yySymType struct { vindexParam VindexParam vindexParams []VindexParam showFilter *ShowFilter - OptLike *OptLike + optLike *OptLike } const LEX_ERROR = 57346 @@ -3030,8 +3030,8 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:549 { - // create table [name] like [name] - yyDollar[1].ddl.OptLike = yyDollar[2].OptLike + // Create table [name] like [name] + yyDollar[1].ddl.OptLike = yyDollar[2].optLike yyVAL.statement = yyDollar[1].ddl } case 63: @@ -3143,13 +3143,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:642 { - yyVAL.OptLike = &OptLike{LikeTable: yyDollar[2].tableName} + yyVAL.optLike = &OptLike{LikeTable: yyDollar[2].tableName} } case 80: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:646 { - yyVAL.OptLike = &OptLike{LikeTable: yyDollar[3].tableName} + yyVAL.optLike = &OptLike{LikeTable: yyDollar[3].tableName} } case 81: yyDollar = yyS[yypt-1 : yypt+1] diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index c83c0da74c4..ba8d596c420 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -112,7 +112,7 @@ func forceEOF(yylex interface{}) { vindexParam VindexParam vindexParams []VindexParam showFilter *ShowFilter - OptLike *OptLike + optLike *OptLike } %token LEX_ERROR @@ -283,7 +283,7 @@ func forceEOF(yylex interface{}) { %type index_or_key %type equal_opt %type table_spec table_column_list -%type create_like +%type create_like %type table_option_list table_option table_opt_value %type index_info %type index_column From f2889b55906130522c79e0826b5b9951a93719d5 Mon Sep 17 00:00:00 2001 From: longfei Date: Mon, 30 Jul 2018 11:57:53 +0800 Subject: [PATCH 4/7] add some test cases for create-like Signed-off-by: longfei --- go/vt/sqlparser/parse_test.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 6775593a121..0bf8c79c07f 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1942,6 +1942,37 @@ func TestCreateTable(t *testing.T) { } } +func TestCreateTableLike(t *testing.T) { + normal := "create table a like b" + testCases := []struct { + input string + output string + }{ + { + "create table a like b", + normal, + }, + { + "create table a (like b)", + normal, + }, + { + "create table ks.a like unsharded_ks.b", + "create table ks.a like unsharded_ks.b", + }, + } + for _, tcase := range testCases { + tree, err := ParseStrictDDL(tcase.input) + if err != nil { + t.Errorf("input: %s, err: %v", tcase.input, err) + continue + } + if got, want := String(tree.(*DDL)), tcase.output; got != want { + t.Errorf("Parse(%s):\n%s, want\n%s", tcase.input, got, want) + } + } +} + func TestCreateTableEscaped(t *testing.T) { testCases := []struct { input string From febbc63bd16558ca44957711c2f8a22ca65db01e Mon Sep 17 00:00:00 2001 From: longfei Date: Mon, 30 Jul 2018 16:21:36 +0800 Subject: [PATCH 5/7] support in vtexplain Signed-off-by: longfei --- go/vt/vtexplain/vtexplain.go | 2 +- go/vt/vtexplain/vtexplain_vttablet.go | 11 +++++++- go/vt/vtexplain/vtexplain_vttablet_test.go | 32 ++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/go/vt/vtexplain/vtexplain.go b/go/vt/vtexplain/vtexplain.go index bc9c27cc060..ad063ba346f 100644 --- a/go/vt/vtexplain/vtexplain.go +++ b/go/vt/vtexplain/vtexplain.go @@ -198,7 +198,7 @@ func parseSchema(sqlSchema string, opts *Options) ([]*sqlparser.DDL, error) { log.Infof("ignoring %s table statement", ddl.Action) continue } - if ddl.TableSpec == nil { + if ddl.TableSpec == nil && ddl.OptLike == nil { log.Errorf("invalid create table statement: %s", sql) continue } diff --git a/go/vt/vtexplain/vtexplain_vttablet.go b/go/vt/vtexplain/vtexplain_vttablet.go index dae8b3929fe..377c6fc1a47 100644 --- a/go/vt/vtexplain/vtexplain_vttablet.go +++ b/go/vt/vtexplain/vtexplain_vttablet.go @@ -395,8 +395,17 @@ func initTabletEnvironment(ddls []*sqlparser.DDL, opts *Options) error { Rows: [][]sqltypes.Value{showTableRows[i]}, } + if ddl.OptLike != nil { + likeTable := ddl.OptLike.LikeTable.Name.String() + if _, ok := schemaQueries["describe "+likeTable]; !ok { + return fmt.Errorf("check you schema, table[%s] doesnt exist", likeTable) + } + schemaQueries["show index from "+table] = schemaQueries["show index from "+likeTable] + schemaQueries["describe "+table] = schemaQueries["describe "+likeTable] + schemaQueries["select * from "+table+" where 1 != 1"] = schemaQueries["select * from "+likeTable+" where 1 != 1"] + continue + } pkColumns := make(map[string]bool) - indexRows := make([][]sqltypes.Value, 0, 4) for _, idx := range ddl.TableSpec.Indexes { for i, col := range idx.Columns { diff --git a/go/vt/vtexplain/vtexplain_vttablet_test.go b/go/vt/vtexplain/vtexplain_vttablet_test.go index c36a9ab6a34..7229b05c6a7 100644 --- a/go/vt/vtexplain/vtexplain_vttablet_test.go +++ b/go/vt/vtexplain/vtexplain_vttablet_test.go @@ -38,6 +38,10 @@ create table t2 ( create table t3 ( b bit(1) default B'0' ); + +create table t4 like t3; + +create table t5 (like t2); ` ddls, err := parseSchema(testSchema, &Options{StrictDDL: true}) @@ -86,4 +90,32 @@ create table t3 ( if t2.HasPrimary() || len(t2.PKColumns) != 0 { t.Errorf("expected !HasPrimary && t2.PKColumns == [] got %v", t2.PKColumns) } + + t5 := tables["t5"] + if t5 == nil { + t.Fatalf("table t5 wasn't parsed properly") + } + got, _ = json.Marshal(t5.Columns) + if wantCols != string(got) { + t.Errorf("expected %s got %s", wantCols, string(got)) + } + + if t5.HasPrimary() || len(t5.PKColumns) != 0 { + t.Errorf("expected !HasPrimary && t5.PKColumns == [] got %v", t5.PKColumns) + } +} + +func TestErrParseSchema(t *testing.T) { + testSchema := ` +create table t1 like t2; +` + expected := "check you schema, table[t2] doesnt exist" + ddl, err := parseSchema(testSchema, &Options{StrictDDL: true}) + if err != nil { + t.Fatalf("parseSchema: %v", err) + } + err = initTabletEnvironment(ddl, defaultTestOpts()) + if err.Error() != expected { + t.Errorf("want: %s, got %s", expected, err.Error()) + } } From 9bb0a39b71c703bd0eb0a42550ca8eaead6f5165 Mon Sep 17 00:00:00 2001 From: longfei Date: Mon, 30 Jul 2018 16:26:29 +0800 Subject: [PATCH 6/7] fix spelling mistakes Signed-off-by: longfei --- go/vt/vtexplain/vtexplain_vttablet.go | 2 +- go/vt/vtexplain/vtexplain_vttablet_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go/vt/vtexplain/vtexplain_vttablet.go b/go/vt/vtexplain/vtexplain_vttablet.go index 377c6fc1a47..59d2b0696b2 100644 --- a/go/vt/vtexplain/vtexplain_vttablet.go +++ b/go/vt/vtexplain/vtexplain_vttablet.go @@ -398,7 +398,7 @@ func initTabletEnvironment(ddls []*sqlparser.DDL, opts *Options) error { if ddl.OptLike != nil { likeTable := ddl.OptLike.LikeTable.Name.String() if _, ok := schemaQueries["describe "+likeTable]; !ok { - return fmt.Errorf("check you schema, table[%s] doesnt exist", likeTable) + return fmt.Errorf("check your schema, table[%s] doesnt exist", likeTable) } schemaQueries["show index from "+table] = schemaQueries["show index from "+likeTable] schemaQueries["describe "+table] = schemaQueries["describe "+likeTable] diff --git a/go/vt/vtexplain/vtexplain_vttablet_test.go b/go/vt/vtexplain/vtexplain_vttablet_test.go index 7229b05c6a7..06e1438cfbd 100644 --- a/go/vt/vtexplain/vtexplain_vttablet_test.go +++ b/go/vt/vtexplain/vtexplain_vttablet_test.go @@ -109,7 +109,7 @@ func TestErrParseSchema(t *testing.T) { testSchema := ` create table t1 like t2; ` - expected := "check you schema, table[t2] doesnt exist" + expected := "check your schema, table[t2] doesnt exist" ddl, err := parseSchema(testSchema, &Options{StrictDDL: true}) if err != nil { t.Fatalf("parseSchema: %v", err) From b682e8744bf28594d2976807818f28f4dd18f6ab Mon Sep 17 00:00:00 2001 From: longfei Date: Tue, 31 Jul 2018 10:23:21 +0800 Subject: [PATCH 7/7] fix conflict: sql.go Signed-off-by: longfei --- go/vt/sqlparser/sql.go | 4620 ++++++++++++++++++++-------------------- 1 file changed, 2333 insertions(+), 2287 deletions(-) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index b62930281bd..11a1b817a07 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -297,46 +297,47 @@ const VITESS_KEYSPACES = 57535 const VITESS_SHARDS = 57536 const VITESS_TABLETS = 57537 const VSCHEMA_TABLES = 57538 -const FULL = 57539 -const PROCESSLIST = 57540 -const COLUMNS = 57541 -const NAMES = 57542 -const CHARSET = 57543 -const GLOBAL = 57544 -const SESSION = 57545 -const ISOLATION = 57546 -const LEVEL = 57547 -const READ = 57548 -const WRITE = 57549 -const ONLY = 57550 -const REPEATABLE = 57551 -const COMMITTED = 57552 -const UNCOMMITTED = 57553 -const SERIALIZABLE = 57554 -const CURRENT_TIMESTAMP = 57555 -const DATABASE = 57556 -const CURRENT_DATE = 57557 -const CURRENT_TIME = 57558 -const LOCALTIME = 57559 -const LOCALTIMESTAMP = 57560 -const UTC_DATE = 57561 -const UTC_TIME = 57562 -const UTC_TIMESTAMP = 57563 -const REPLACE = 57564 -const CONVERT = 57565 -const CAST = 57566 -const SUBSTR = 57567 -const SUBSTRING = 57568 -const GROUP_CONCAT = 57569 -const SEPARATOR = 57570 -const MATCH = 57571 -const AGAINST = 57572 -const BOOLEAN = 57573 -const LANGUAGE = 57574 -const WITH = 57575 -const QUERY = 57576 -const EXPANSION = 57577 -const UNUSED = 57578 +const VITESS_TARGET = 57539 +const FULL = 57540 +const PROCESSLIST = 57541 +const COLUMNS = 57542 +const NAMES = 57543 +const CHARSET = 57544 +const GLOBAL = 57545 +const SESSION = 57546 +const ISOLATION = 57547 +const LEVEL = 57548 +const READ = 57549 +const WRITE = 57550 +const ONLY = 57551 +const REPEATABLE = 57552 +const COMMITTED = 57553 +const UNCOMMITTED = 57554 +const SERIALIZABLE = 57555 +const CURRENT_TIMESTAMP = 57556 +const DATABASE = 57557 +const CURRENT_DATE = 57558 +const CURRENT_TIME = 57559 +const LOCALTIME = 57560 +const LOCALTIMESTAMP = 57561 +const UTC_DATE = 57562 +const UTC_TIME = 57563 +const UTC_TIMESTAMP = 57564 +const REPLACE = 57565 +const CONVERT = 57566 +const CAST = 57567 +const SUBSTR = 57568 +const SUBSTRING = 57569 +const GROUP_CONCAT = 57570 +const SEPARATOR = 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", @@ -552,6 +553,7 @@ var yyToknames = [...]string{ "VITESS_SHARDS", "VITESS_TABLETS", "VSCHEMA_TABLES", + "VITESS_TARGET", "FULL", "PROCESSLIST", "COLUMNS", @@ -609,1169 +611,1203 @@ var yyExca = [...]int{ 5, 28, -2, 4, -1, 36, - 153, 272, - 154, 272, - -2, 264, - -1, 248, - 111, 599, - -2, 595, - -1, 249, - 111, 600, - -2, 596, - -1, 319, - 81, 762, + 153, 274, + 154, 274, + -2, 266, + -1, 250, + 111, 601, + -2, 597, + -1, 251, + 111, 602, + -2, 598, + -1, 321, + 81, 764, -2, 59, - -1, 320, - 81, 722, + -1, 322, + 81, 724, -2, 60, - -1, 325, - 81, 704, - -2, 561, -1, 327, - 81, 743, + 81, 706, -2, 563, - -1, 595, + -1, 329, + 81, 745, + -2, 565, + -1, 597, 53, 42, 55, 42, -2, 44, - -1, 731, - 111, 602, - -2, 598, - -1, 943, + -1, 733, + 111, 604, + -2, 600, + -1, 945, 5, 29, - -2, 406, - -1, 968, + -2, 408, + -1, 970, 5, 28, - -2, 536, - -1, 1193, + -2, 538, + -1, 1196, 5, 29, - -2, 537, - -1, 1238, - 5, 28, -2, 539, - -1, 1302, + -1, 1241, + 5, 28, + -2, 541, + -1, 1305, 5, 29, - -2, 540, + -2, 542, } const yyPrivate = 57344 -const yyLast = 11010 +const yyLast = 11325 var yyAct = [...]int{ - 249, 1293, 882, 542, 667, 1249, 793, 1100, 1128, 1097, - 1101, 1031, 587, 1199, 811, 833, 227, 589, 876, 971, - 794, 909, 935, 279, 987, 766, 842, 696, 763, 1022, - 1034, 80, 862, 832, 846, 193, 605, 480, 193, 219, - 253, 976, 324, 829, 756, 782, 733, 1074, 474, 872, - 423, 604, 318, 306, 790, 591, 486, 917, 305, 494, - 541, 3, 576, 236, 193, 193, 80, 280, 49, 251, - 193, 315, 193, 313, 80, 54, 304, 1326, 556, 1313, - 1324, 1300, 1321, 220, 221, 222, 223, 240, 883, 1312, - 1299, 55, 1092, 1274, 507, 506, 516, 517, 509, 510, - 511, 512, 513, 514, 515, 508, 1187, 899, 518, 428, - 226, 1259, 995, 59, 606, 994, 607, 49, 996, 1123, - 1124, 898, 1122, 449, 824, 232, 225, 1136, 1137, 1138, - 224, 310, 825, 826, 1013, 1141, 1139, 855, 61, 62, - 63, 64, 65, 188, 184, 185, 186, 465, 1212, 903, - 437, 1227, 863, 466, 463, 1176, 1174, 218, 897, 1323, - 1075, 460, 461, 1320, 507, 506, 516, 517, 509, 510, - 511, 512, 513, 514, 515, 508, 1294, 1055, 518, 791, - 1250, 1286, 193, 847, 193, 1257, 438, 451, 431, 453, - 193, 675, 1077, 1252, 456, 182, 181, 193, 182, 1052, - 666, 80, 80, 80, 80, 1054, 80, 894, 891, 892, - 986, 890, 936, 849, 80, 450, 452, 812, 814, 985, - 849, 984, 426, 434, 1079, 196, 1083, 183, 1078, 1279, - 1076, 530, 531, 765, 1196, 1081, 1061, 901, 904, 951, - 929, 705, 1006, 80, 1080, 511, 512, 513, 514, 515, - 508, 498, 1275, 518, 187, 444, 830, 1082, 1084, 1145, - 321, 518, 1251, 508, 470, 471, 518, 702, 455, 455, - 455, 455, 896, 455, 863, 68, 424, 856, 493, 492, - 491, 455, 1284, 1094, 1258, 1256, 1096, 1155, 974, 1298, - 1042, 948, 813, 483, 895, 608, 493, 448, 1140, 1053, - 49, 1051, 783, 697, 193, 491, 849, 848, 422, 1146, - 69, 193, 193, 193, 848, 527, 670, 80, 529, 1040, - 1011, 493, 482, 80, 509, 510, 511, 512, 513, 514, - 515, 508, 900, 911, 518, 424, 1288, 440, 441, 442, - 492, 491, 783, 1304, 958, 902, 540, 484, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 493, 555, 557, - 557, 557, 557, 557, 557, 557, 557, 565, 566, 567, - 568, 558, 559, 560, 561, 562, 563, 564, 588, 708, - 709, 430, 740, 698, 1041, 947, 596, 946, 602, 1046, - 1043, 1036, 1037, 1044, 1039, 1038, 738, 739, 737, 488, - 848, 1184, 704, 492, 491, 845, 843, 1045, 841, 844, - 910, 847, 1218, 1048, 492, 491, 454, 723, 725, 726, - 493, 1217, 724, 193, 852, 1026, 492, 491, 80, 853, - 52, 493, 1025, 1014, 193, 193, 80, 180, 193, 703, - 736, 193, 757, 493, 758, 193, 1306, 80, 80, 80, - 80, 80, 80, 80, 80, 492, 491, 432, 433, 1285, - 1234, 80, 80, 1215, 1058, 1042, 255, 1023, 193, 21, - 1282, 246, 493, 1132, 507, 506, 516, 517, 509, 510, - 511, 512, 513, 514, 515, 508, 80, 684, 518, 1131, - 193, 926, 927, 928, 1040, 455, 80, 1242, 1322, 710, - 303, 1007, 682, 455, 1309, 473, 1242, 1291, 1242, 1254, - 473, 321, 1242, 473, 455, 455, 455, 455, 455, 455, - 455, 455, 311, 1242, 1243, 734, 1002, 231, 455, 455, - 309, 1208, 1207, 269, 268, 271, 272, 273, 274, 997, - 80, 731, 270, 275, 1119, 473, 1195, 473, 712, 1152, - 1151, 1148, 1149, 1148, 1147, 727, 729, 190, 885, 1041, - 941, 473, 573, 473, 1046, 1043, 1036, 1037, 1044, 1039, - 1038, 193, 278, 759, 193, 193, 193, 193, 193, 768, - 473, 599, 1045, 681, 680, 671, 193, 314, 1035, 193, - 775, 778, 425, 193, 427, 787, 784, 49, 193, 193, - 760, 761, 80, 78, 669, 770, 664, 615, 614, 780, - 819, 446, 544, 795, 439, 80, 1263, 1262, 457, 458, - 459, 1098, 462, 600, 972, 598, 472, 1142, 797, 798, - 469, 800, 796, 23, 973, 799, 850, 818, 323, 598, - 972, 310, 310, 310, 310, 310, 429, 808, 816, 770, - 817, 973, 768, 1064, 821, 822, 588, 966, 815, 953, - 56, 967, 864, 865, 866, 310, 837, 193, 1191, 950, - 80, 573, 80, 23, 23, 1154, 193, 573, 1150, 193, - 80, 52, 878, 516, 517, 509, 510, 511, 512, 513, - 514, 515, 508, 730, 972, 518, 193, 941, 193, 193, - 941, 1237, 572, 952, 435, 998, 436, 823, 941, 601, - 874, 875, 443, 949, 706, 233, 52, 528, 1314, 445, - 1222, 52, 52, 857, 877, 1133, 668, 573, 532, 533, - 534, 535, 536, 537, 538, 539, 1113, 455, 1001, 455, - 977, 978, 1135, 873, 918, 868, 867, 455, 731, 578, - 581, 582, 583, 579, 880, 580, 584, 1098, 1027, 919, - 980, 734, 678, 52, 467, 805, 803, 1318, 718, 983, - 806, 804, 982, 323, 323, 323, 323, 309, 323, 771, - 772, 802, 801, 1311, 931, 779, 323, 807, 1060, 582, - 583, 237, 238, 914, 1317, 487, 321, 924, 930, 786, - 923, 788, 789, 1018, 1010, 475, 613, 447, 1290, 834, - 485, 1289, 1235, 1008, 1189, 496, 80, 476, 1003, 193, - 1223, 887, 677, 586, 234, 235, 571, 957, 487, 228, - 922, 990, 1268, 80, 229, 595, 56, 989, 921, 991, - 1267, 981, 1225, 973, 665, 468, 695, 489, 999, 1276, - 1213, 968, 674, 701, 58, 60, 597, 53, 969, 970, - 992, 1, 884, 685, 686, 687, 688, 689, 690, 691, - 692, 1030, 893, 1292, 1248, 1127, 840, 693, 694, 1004, - 1005, 80, 80, 831, 80, 67, 310, 421, 66, 323, - 1283, 1015, 1016, 839, 838, 610, 1255, 1211, 1024, 851, - 730, 1012, 858, 859, 860, 861, 1017, 80, 1019, 1020, - 1021, 854, 1134, 1287, 1009, 621, 619, 620, 869, 870, - 871, 193, 1047, 618, 623, 622, 617, 204, 316, 1033, - 80, 585, 609, 879, 490, 242, 1057, 578, 581, 582, - 583, 579, 70, 580, 584, 616, 1050, 977, 978, 455, - 1049, 925, 889, 464, 206, 1068, 672, 673, 526, 1067, - 676, 920, 993, 679, 322, 1105, 707, 1073, 735, 479, - 80, 80, 732, 1099, 455, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, - 699, 1102, 1085, 1109, 731, 1107, 1086, 1266, 940, 80, - 323, 80, 80, 1224, 956, 553, 781, 795, 323, 254, - 1121, 722, 719, 795, 955, 267, 1126, 264, 266, 323, - 323, 323, 323, 323, 323, 323, 323, 834, 193, 1130, - 1104, 265, 1125, 323, 323, 1103, 80, 49, 713, 965, - 309, 309, 309, 309, 309, 500, 252, 1093, 244, 80, - 193, 308, 1115, 1116, 1117, 309, 80, 569, 714, 1143, - 1144, 577, 80, 1108, 309, 193, 575, 574, 496, 979, - 975, 323, 307, 1063, 1156, 1186, 1273, 1165, 1032, 1163, - 717, 1120, 25, 1164, 57, 239, 886, 1158, 888, 19, - 1161, 18, 17, 792, 20, 16, 907, 15, 1172, 14, - 29, 13, 12, 11, 10, 9, 8, 7, 6, 1190, - 711, 5, 762, 4, 80, 230, 80, 80, 80, 193, - 80, 820, 776, 776, 1066, 1198, 80, 22, 776, 1201, - 1202, 1203, 310, 2, 80, 0, 1204, 1206, 0, 0, - 0, 999, 0, 0, 0, 776, 1089, 1210, 0, 0, - 0, 0, 202, 0, 80, 80, 80, 0, 0, 0, - 1185, 0, 0, 0, 477, 481, 1220, 0, 767, 769, - 0, 1221, 0, 0, 323, 0, 213, 0, 0, 0, - 1214, 499, 1216, 0, 785, 0, 0, 323, 0, 881, - 0, 0, 0, 834, 0, 834, 80, 80, 905, 0, - 0, 906, 1236, 1226, 735, 0, 0, 0, 0, 80, - 932, 933, 934, 0, 810, 1102, 543, 1253, 908, 1247, - 0, 455, 0, 80, 0, 554, 197, 0, 0, 0, - 0, 0, 0, 199, 0, 0, 1264, 0, 0, 0, - 205, 201, 323, 80, 323, 1277, 0, 0, 0, 0, - 0, 0, 323, 0, 1281, 1238, 1066, 0, 1260, 1103, - 1261, 1102, 1239, 0, 0, 0, 0, 0, 203, 0, - 0, 207, 1296, 0, 0, 0, 0, 0, 323, 0, - 80, 0, 0, 1301, 0, 309, 0, 193, 0, 0, - 0, 1265, 0, 0, 0, 80, 1307, 0, 1029, 198, - 1278, 0, 0, 0, 0, 1103, 0, 49, 0, 0, - 1315, 1316, 0, 0, 0, 80, 0, 795, 0, 0, - 834, 0, 0, 1056, 0, 0, 208, 200, 1319, 209, - 210, 211, 212, 216, 1183, 473, 0, 0, 215, 214, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032, - 834, 0, 0, 1169, 1170, 0, 1171, 0, 0, 1173, - 0, 1175, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 507, 506, 516, 517, 509, 510, 511, 512, 513, - 514, 515, 508, 0, 0, 518, 938, 0, 988, 0, - 939, 1325, 0, 0, 0, 0, 0, 943, 944, 945, - 0, 0, 0, 0, 700, 323, 954, 1209, 1070, 1071, - 0, 960, 0, 961, 962, 963, 964, 0, 0, 0, - 0, 1087, 1088, 473, 1090, 1091, 0, 720, 721, 0, - 0, 0, 0, 0, 0, 0, 478, 0, 1181, 0, - 0, 0, 0, 1062, 0, 0, 0, 0, 1180, 473, - 0, 0, 0, 1028, 323, 0, 323, 0, 0, 507, - 506, 516, 517, 509, 510, 511, 512, 513, 514, 515, - 508, 191, 0, 518, 217, 0, 0, 0, 0, 323, - 543, 0, 0, 773, 774, 507, 506, 516, 517, 509, - 510, 511, 512, 513, 514, 515, 508, 0, 243, 518, - 191, 191, 323, 0, 0, 0, 191, 0, 191, 0, - 0, 507, 506, 516, 517, 509, 510, 511, 512, 513, - 514, 515, 508, 0, 323, 518, 0, 0, 0, 0, - 0, 309, 1069, 0, 0, 0, 0, 0, 0, 776, - 0, 1167, 1106, 988, 828, 776, 0, 0, 0, 0, - 1153, 0, 507, 506, 516, 517, 509, 510, 511, 512, - 513, 514, 515, 508, 0, 0, 518, 1072, 0, 0, - 1219, 323, 1160, 323, 1129, 0, 502, 0, 505, 0, - 0, 0, 0, 0, 519, 520, 521, 522, 523, 524, - 525, 0, 503, 504, 501, 507, 506, 516, 517, 509, - 510, 511, 512, 513, 514, 515, 508, 0, 1157, 518, - 0, 0, 0, 0, 1118, 0, 0, 0, 191, 0, - 191, 1159, 0, 0, 0, 0, 191, 0, 1162, 0, - 0, 0, 0, 191, 323, 0, 0, 0, 937, 915, - 916, 0, 481, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1228, 1229, 0, 1230, 1231, 1232, 507, 506, - 516, 517, 509, 510, 511, 512, 513, 514, 515, 508, - 0, 0, 518, 507, 506, 516, 517, 509, 510, 511, - 512, 513, 514, 515, 508, 0, 1200, 518, 1200, 1200, - 1200, 0, 1205, 0, 1166, 0, 0, 0, 323, 0, - 0, 1168, 0, 0, 942, 0, 1200, 0, 0, 0, - 0, 0, 1177, 1178, 1179, 0, 0, 1182, 0, 959, - 0, 0, 0, 0, 0, 0, 323, 323, 323, 0, - 1192, 1193, 1194, 0, 1197, 0, 0, 0, 0, 0, - 191, 0, 0, 0, 0, 0, 0, 191, 593, 191, - 506, 516, 517, 509, 510, 511, 512, 513, 514, 515, - 508, 0, 0, 518, 0, 0, 0, 0, 1240, 1241, - 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, 1200, 0, 1327, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1305, - 0, 0, 0, 1233, 0, 1280, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1244, 1245, - 1246, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1059, 0, 776, - 0, 0, 1303, 0, 0, 1269, 1270, 1271, 1272, 191, - 0, 0, 0, 0, 0, 0, 0, 1310, 0, 0, - 191, 191, 0, 0, 191, 0, 0, 191, 0, 0, - 0, 683, 0, 0, 0, 0, 0, 1200, 0, 0, - 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, - 1297, 0, 0, 0, 191, 1302, 0, 0, 0, 1110, - 1111, 0, 0, 1112, 0, 0, 1114, 0, 0, 1308, - 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 683, 0, 0, 0, 0, - 0, 23, 24, 50, 26, 27, 0, 0, 0, 0, - 0, 0, 0, 0, 1329, 1330, 0, 0, 0, 0, - 42, 0, 0, 0, 0, 28, 47, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, - 0, 0, 243, 243, 0, 37, 777, 777, 243, 52, - 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 243, 243, 243, 243, 0, 191, 0, 777, - 191, 191, 191, 191, 191, 0, 0, 0, 0, 0, - 0, 0, 809, 0, 0, 191, 0, 0, 0, 593, - 0, 0, 1188, 0, 191, 191, 0, 0, 0, 543, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 33, 32, 35, 0, 0, 0, 0, 0, 0, - 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, 0, 0, 0, - 38, 39, 0, 40, 41, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 0, 0, 191, 495, 912, 913, 0, 0, 99, 0, - 0, 0, 683, 0, 113, 0, 115, 0, 0, 149, - 124, 0, 0, 0, 243, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, - 497, 0, 0, 0, 51, 0, 0, 92, 0, 0, - 0, 0, 492, 491, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, - 0, 243, 0, 1295, 543, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, + 251, 1296, 884, 544, 669, 795, 1252, 1103, 255, 1131, + 831, 813, 1034, 1202, 835, 229, 281, 973, 543, 3, + 1104, 1100, 591, 834, 911, 796, 589, 844, 989, 1077, + 878, 80, 758, 937, 768, 194, 698, 1037, 194, 1025, + 55, 848, 326, 607, 735, 784, 765, 476, 978, 482, + 874, 606, 425, 578, 320, 792, 308, 767, 488, 593, + 253, 496, 307, 238, 194, 194, 80, 919, 228, 317, + 194, 315, 194, 558, 80, 54, 864, 221, 1329, 1316, + 1327, 1303, 1324, 885, 1315, 257, 1302, 1095, 1190, 430, + 306, 59, 1262, 1125, 313, 901, 242, 451, 1139, 1140, + 1141, 189, 185, 186, 187, 997, 1144, 1142, 996, 900, + 826, 998, 1126, 1127, 827, 828, 61, 62, 63, 64, + 65, 222, 223, 224, 225, 608, 227, 609, 226, 191, + 1016, 23, 24, 50, 26, 27, 467, 905, 857, 1215, + 439, 1230, 865, 468, 465, 1179, 899, 1177, 220, 311, + 42, 462, 463, 1326, 1078, 28, 47, 48, 1323, 316, + 1297, 453, 1058, 455, 427, 793, 429, 1253, 1289, 849, + 440, 814, 816, 677, 433, 37, 1260, 183, 668, 52, + 1255, 436, 182, 194, 183, 194, 1080, 858, 988, 452, + 454, 194, 987, 986, 1045, 896, 893, 894, 194, 892, + 428, 1282, 80, 80, 80, 80, 197, 80, 1055, 851, + 184, 532, 533, 188, 1057, 851, 80, 1199, 1082, 1064, + 1086, 953, 1081, 1043, 1079, 903, 906, 931, 707, 1084, + 500, 446, 510, 832, 520, 520, 699, 704, 1083, 30, + 31, 33, 32, 35, 1009, 80, 815, 913, 495, 1254, + 1287, 1085, 1087, 485, 494, 493, 1158, 1148, 1045, 976, + 898, 36, 43, 44, 865, 610, 45, 46, 34, 1097, + 1143, 495, 450, 484, 785, 1261, 1259, 437, 672, 438, + 38, 39, 897, 40, 41, 445, 1301, 1043, 1044, 710, + 711, 851, 447, 1049, 1046, 1039, 1040, 1047, 1042, 1041, + 458, 474, 1014, 850, 472, 473, 194, 1149, 1056, 850, + 1054, 1048, 1291, 194, 194, 194, 700, 1051, 490, 80, + 426, 902, 1307, 426, 912, 80, 1309, 486, 442, 443, + 444, 432, 68, 950, 904, 1221, 494, 493, 530, 1277, + 509, 508, 518, 519, 511, 512, 513, 514, 515, 516, + 517, 510, 1044, 495, 520, 424, 1220, 1049, 1046, 1039, + 1040, 1047, 1042, 1041, 742, 51, 323, 69, 560, 561, + 562, 563, 564, 565, 566, 1048, 493, 1029, 740, 741, + 739, 1038, 494, 493, 1288, 850, 598, 949, 604, 948, + 847, 845, 495, 843, 846, 1028, 849, 854, 311, 495, + 573, 785, 855, 960, 181, 494, 493, 434, 435, 597, + 509, 508, 518, 519, 511, 512, 513, 514, 515, 516, + 517, 510, 495, 52, 520, 194, 725, 727, 728, 1237, + 80, 726, 1017, 738, 1186, 475, 194, 194, 80, 759, + 194, 760, 1218, 194, 282, 49, 999, 194, 1000, 80, + 80, 80, 80, 80, 80, 80, 80, 1061, 938, 928, + 929, 930, 1026, 80, 80, 1245, 1325, 305, 1312, 475, + 194, 509, 508, 518, 519, 511, 512, 513, 514, 515, + 516, 517, 510, 21, 1285, 520, 494, 493, 80, 686, + 1245, 1294, 194, 1099, 49, 1245, 1257, 475, 80, 1278, + 712, 706, 234, 495, 1245, 475, 1245, 1246, 312, 1211, + 1210, 1122, 475, 1266, 684, 1198, 475, 1155, 1154, 618, + 736, 1135, 511, 512, 513, 514, 515, 516, 517, 510, + 674, 675, 520, 1134, 678, 1151, 1152, 681, 705, 1151, + 1150, 233, 80, 733, 513, 514, 515, 516, 517, 510, + 714, 1010, 520, 1005, 494, 493, 943, 475, 1265, 729, + 777, 780, 887, 761, 701, 772, 786, 683, 731, 575, + 475, 495, 682, 194, 23, 673, 194, 194, 194, 194, + 194, 770, 475, 797, 671, 666, 721, 601, 194, 737, + 448, 194, 248, 762, 763, 194, 617, 616, 968, 441, + 194, 194, 969, 1145, 80, 773, 774, 23, 1067, 772, + 56, 781, 852, 782, 974, 789, 975, 80, 1101, 323, + 574, 974, 52, 975, 955, 788, 821, 790, 791, 602, + 820, 600, 600, 799, 800, 1240, 802, 770, 798, 952, + 810, 801, 1194, 23, 575, 575, 457, 457, 457, 457, + 943, 457, 943, 819, 818, 52, 235, 824, 823, 575, + 457, 311, 311, 311, 311, 311, 974, 794, 954, 194, + 839, 1157, 80, 1153, 80, 1001, 311, 825, 194, 49, + 943, 194, 80, 951, 603, 311, 580, 583, 584, 585, + 581, 52, 582, 586, 529, 822, 880, 531, 194, 52, + 194, 194, 708, 1317, 52, 1225, 859, 879, 866, 867, + 868, 456, 1136, 876, 877, 1116, 1004, 979, 980, 720, + 875, 870, 869, 670, 882, 542, 1138, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 1101, 557, 559, 559, + 559, 559, 559, 559, 559, 559, 567, 568, 569, 570, + 733, 1030, 982, 680, 280, 469, 736, 590, 920, 809, + 921, 584, 585, 883, 271, 270, 273, 274, 275, 276, + 985, 807, 907, 272, 277, 908, 808, 927, 805, 984, + 804, 803, 1321, 806, 933, 78, 1314, 713, 239, 240, + 489, 1063, 910, 580, 583, 584, 585, 581, 916, 582, + 586, 732, 1320, 979, 980, 487, 926, 925, 1021, 615, + 477, 970, 449, 1013, 860, 861, 862, 863, 80, 1192, + 325, 194, 478, 1293, 942, 737, 1292, 1238, 431, 959, + 871, 872, 873, 1011, 1006, 80, 1226, 991, 889, 993, + 957, 679, 588, 236, 237, 769, 771, 992, 489, 1002, + 983, 534, 535, 536, 537, 538, 539, 540, 541, 924, + 230, 787, 1271, 231, 56, 1270, 1228, 923, 975, 994, + 470, 697, 491, 1279, 457, 1020, 1216, 1022, 1023, 1024, + 703, 58, 457, 80, 80, 60, 80, 599, 1007, 1008, + 53, 812, 1, 457, 457, 457, 457, 457, 457, 457, + 457, 886, 1033, 895, 323, 1295, 311, 457, 457, 80, + 1027, 1251, 1130, 842, 459, 460, 461, 836, 464, 833, + 67, 423, 66, 194, 1286, 841, 840, 471, 1258, 1214, + 853, 1050, 80, 1015, 856, 1137, 1290, 1018, 1019, 1012, + 623, 621, 622, 620, 625, 624, 619, 1060, 205, 318, + 587, 611, 881, 492, 70, 1053, 325, 325, 325, 325, + 1052, 325, 891, 466, 207, 528, 922, 995, 1071, 1036, + 325, 324, 80, 80, 1102, 1108, 49, 797, 1076, 1070, + 1089, 709, 1088, 797, 481, 1269, 1105, 1227, 958, 555, + 1107, 546, 783, 256, 724, 269, 733, 266, 1096, 498, + 1112, 1110, 80, 268, 80, 80, 267, 715, 732, 967, + 1124, 502, 254, 246, 1111, 310, 571, 1065, 1129, 579, + 312, 312, 312, 312, 312, 1128, 577, 576, 981, 1146, + 1147, 194, 1123, 1133, 977, 590, 309, 817, 1066, 80, + 1189, 1276, 719, 25, 312, 57, 241, 19, 18, 17, + 20, 16, 80, 194, 15, 14, 29, 13, 12, 80, + 11, 10, 9, 940, 8, 80, 7, 941, 194, 6, + 5, 4, 232, 325, 945, 946, 947, 22, 2, 612, + 0, 0, 0, 956, 1167, 1166, 0, 0, 962, 0, + 963, 964, 965, 966, 1168, 734, 0, 0, 743, 744, + 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, + 755, 756, 757, 1175, 0, 1159, 457, 80, 457, 80, + 80, 80, 194, 80, 1193, 1156, 457, 1201, 1161, 80, + 0, 1164, 1204, 1205, 1206, 836, 0, 80, 0, 1209, + 0, 667, 0, 1002, 1207, 0, 0, 1163, 0, 676, + 1213, 0, 0, 311, 0, 0, 0, 80, 80, 80, + 687, 688, 689, 690, 691, 692, 693, 694, 0, 0, + 1223, 0, 0, 1224, 695, 696, 0, 932, 0, 0, + 0, 0, 0, 0, 325, 0, 1035, 0, 0, 0, + 0, 0, 325, 0, 0, 0, 0, 0, 0, 80, + 80, 0, 0, 325, 325, 325, 325, 325, 325, 325, + 325, 1105, 80, 0, 0, 1239, 1241, 325, 325, 1250, + 0, 1256, 0, 0, 0, 0, 80, 1217, 1263, 1219, + 1264, 0, 1069, 0, 0, 0, 0, 971, 972, 1267, + 0, 0, 716, 0, 1075, 0, 80, 0, 1280, 0, + 1229, 0, 498, 0, 1092, 325, 0, 1105, 1284, 0, + 0, 1281, 0, 0, 0, 312, 1172, 1173, 0, 1174, + 0, 0, 1176, 0, 1178, 1299, 0, 0, 244, 0, + 0, 0, 0, 80, 0, 1304, 0, 0, 797, 0, + 194, 1121, 0, 0, 0, 0, 764, 0, 80, 1310, + 1183, 475, 836, 0, 836, 0, 778, 778, 0, 0, + 0, 0, 778, 1318, 1319, 0, 0, 0, 80, 0, + 1212, 0, 0, 0, 0, 0, 0, 0, 457, 778, + 0, 1322, 0, 934, 935, 936, 0, 509, 508, 518, + 519, 511, 512, 513, 514, 515, 516, 517, 510, 0, + 0, 520, 0, 457, 0, 0, 0, 0, 325, 0, + 0, 0, 0, 0, 0, 1069, 0, 0, 0, 0, + 0, 325, 1169, 0, 0, 0, 0, 0, 0, 1171, + 0, 0, 0, 888, 1308, 890, 0, 0, 0, 0, + 1180, 1181, 1182, 909, 0, 1185, 0, 0, 0, 0, + 0, 475, 0, 0, 0, 0, 0, 0, 1195, 1196, + 1197, 0, 1200, 0, 1106, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 325, 0, 325, 836, + 203, 1118, 1119, 1120, 0, 0, 325, 509, 508, 518, + 519, 511, 512, 513, 514, 515, 516, 517, 510, 0, + 0, 520, 0, 0, 215, 504, 0, 507, 1035, 836, + 0, 0, 325, 521, 522, 523, 524, 525, 526, 527, + 0, 505, 506, 503, 509, 508, 518, 519, 511, 512, + 513, 514, 515, 516, 517, 510, 0, 0, 520, 0, + 480, 1236, 508, 518, 519, 511, 512, 513, 514, 515, + 516, 517, 510, 0, 198, 520, 1247, 1248, 1249, 479, + 483, 200, 312, 0, 0, 0, 0, 0, 206, 202, + 0, 0, 0, 0, 0, 192, 501, 0, 219, 0, + 0, 1073, 1074, 1272, 1273, 1274, 1275, 0, 0, 0, + 1188, 0, 0, 0, 1090, 1091, 204, 1093, 1094, 208, + 0, 0, 245, 0, 192, 192, 0, 0, 0, 0, + 192, 545, 192, 0, 0, 0, 0, 0, 0, 0, + 556, 1187, 990, 0, 0, 0, 0, 199, 1300, 0, + 0, 0, 0, 1305, 0, 0, 0, 0, 0, 325, + 0, 0, 0, 0, 0, 1032, 0, 1311, 0, 0, + 0, 457, 0, 0, 209, 201, 0, 210, 211, 212, + 214, 213, 218, 0, 0, 0, 1184, 217, 216, 0, + 1059, 0, 518, 519, 511, 512, 513, 514, 515, 516, + 517, 510, 1332, 1333, 520, 0, 0, 1031, 325, 1106, + 325, 0, 1242, 0, 509, 508, 518, 519, 511, 512, + 513, 514, 515, 516, 517, 510, 0, 0, 520, 0, + 0, 0, 0, 325, 0, 1170, 0, 0, 0, 0, + 0, 1268, 0, 192, 0, 192, 0, 0, 0, 0, + 0, 192, 0, 0, 0, 1106, 325, 49, 192, 509, + 508, 518, 519, 511, 512, 513, 514, 515, 516, 517, + 510, 0, 0, 520, 0, 0, 0, 0, 325, 0, + 1072, 509, 508, 518, 519, 511, 512, 513, 514, 515, + 516, 517, 510, 778, 0, 520, 1109, 990, 0, 778, + 509, 508, 518, 519, 511, 512, 513, 514, 515, 516, + 517, 510, 0, 0, 520, 0, 0, 0, 0, 702, + 0, 0, 0, 0, 0, 0, 325, 0, 325, 1132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, - 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, - 95, 0, 144, 133, 164, 191, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, - 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, - 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, - 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 638, 0, 0, 150, 166, 179, 90, 0, - 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 191, 81, 0, - 114, 176, 139, 101, 167, 0, 0, 243, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 683, 626, + 0, 1328, 722, 723, 0, 0, 1231, 1232, 0, 1233, + 1234, 1235, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1160, 0, 0, 192, 0, 0, 0, + 0, 0, 0, 192, 595, 192, 1162, 0, 0, 0, + 939, 0, 0, 1165, 0, 0, 0, 0, 0, 325, + 0, 0, 0, 0, 0, 545, 0, 0, 775, 776, + 509, 508, 518, 519, 511, 512, 513, 514, 515, 516, + 517, 510, 0, 0, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 777, 0, 0, 0, 0, 0, 777, + 0, 0, 0, 0, 0, 0, 0, 0, 1222, 0, + 0, 1203, 0, 1203, 1203, 1203, 0, 1208, 0, 0, + 0, 0, 0, 325, 0, 0, 0, 0, 0, 830, + 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 639, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 325, 325, 325, 0, 192, 0, 0, 0, 0, + 0, 1330, 0, 0, 0, 0, 192, 192, 0, 0, + 192, 0, 0, 192, 0, 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 652, 653, 654, 655, 656, 657, 658, 0, - 659, 660, 661, 662, 663, 640, 641, 642, 643, 624, - 625, 0, 0, 627, 191, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 644, 645, 646, 647, 648, - 649, 650, 651, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 1243, 1244, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 640, 0, 1132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 1203, 0, 192, 0, 917, 918, 0, 483, 0, 0, + 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, + 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 778, 0, 0, 1306, 245, 245, + 0, 628, 779, 779, 245, 0, 0, 0, 779, 944, + 0, 0, 1313, 0, 0, 0, 0, 0, 245, 245, + 245, 245, 0, 192, 961, 779, 192, 192, 192, 192, + 192, 0, 1203, 641, 0, 0, 0, 0, 811, 0, + 0, 192, 0, 0, 0, 595, 0, 0, 0, 0, + 192, 192, 0, 0, 654, 655, 656, 657, 658, 659, + 660, 0, 661, 662, 663, 664, 665, 642, 643, 644, + 645, 626, 627, 0, 0, 629, 0, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 646, 647, 648, + 649, 650, 651, 652, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, + 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, + 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, + 914, 915, 1062, 0, 0, 0, 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, + 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1113, 1114, 0, 245, 1115, 0, + 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 409, 399, 0, 371, 412, 349, 363, 420, 364, 365, - 392, 335, 379, 131, 361, 0, 352, 330, 358, 331, - 350, 373, 99, 376, 348, 401, 382, 411, 113, 418, - 115, 387, 0, 149, 124, 0, 0, 375, 403, 377, - 397, 370, 393, 340, 386, 413, 362, 390, 414, 0, - 0, 0, 79, 0, 835, 836, 0, 0, 0, 0, - 0, 92, 0, 389, 408, 360, 391, 329, 388, 0, - 333, 336, 419, 406, 355, 356, 1000, 0, 0, 0, - 0, 0, 0, 374, 378, 394, 368, 0, 0, 0, - 0, 0, 0, 0, 0, 353, 0, 385, 0, 0, - 0, 337, 334, 777, 0, 372, 0, 0, 0, 339, - 0, 354, 395, 191, 328, 398, 404, 369, 194, 407, - 367, 366, 410, 137, 0, 0, 152, 104, 103, 142, - 112, 402, 351, 359, 95, 357, 144, 133, 164, 384, - 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, - 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, - 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, - 96, 178, 87, 169, 86, 88, 168, 129, 155, 161, - 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, - 118, 136, 106, 126, 125, 127, 0, 332, 0, 150, - 166, 179, 90, 347, 405, 172, 173, 174, 175, 0, - 0, 91, 128, 89, 107, 147, 110, 117, 140, 177, - 132, 145, 94, 165, 148, 343, 346, 341, 342, 380, - 381, 415, 416, 417, 396, 338, 0, 344, 345, 0, - 400, 383, 81, 0, 114, 176, 139, 101, 167, 409, - 399, 0, 371, 412, 349, 363, 420, 364, 365, 392, - 335, 379, 131, 361, 0, 352, 330, 358, 331, 350, - 373, 99, 376, 348, 401, 382, 411, 113, 418, 115, - 387, 0, 149, 124, 0, 0, 375, 403, 377, 397, - 370, 393, 340, 386, 413, 362, 390, 414, 0, 0, - 0, 79, 0, 835, 836, 0, 0, 0, 0, 0, - 92, 0, 389, 408, 360, 391, 329, 388, 0, 333, - 336, 419, 406, 355, 356, 0, 0, 0, 0, 0, - 0, 0, 374, 378, 394, 368, 0, 0, 0, 0, - 0, 0, 0, 0, 353, 0, 385, 0, 0, 0, - 337, 334, 0, 0, 372, 0, 0, 0, 339, 0, - 354, 395, 0, 328, 398, 404, 369, 194, 407, 367, - 366, 410, 137, 0, 0, 152, 104, 103, 142, 112, - 402, 351, 359, 95, 357, 144, 133, 164, 384, 134, - 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, - 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, - 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, - 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, - 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, - 136, 106, 126, 125, 127, 0, 332, 0, 150, 166, - 179, 90, 347, 405, 172, 173, 174, 175, 0, 0, - 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, - 145, 94, 165, 148, 343, 346, 341, 342, 380, 381, - 415, 416, 417, 396, 338, 0, 344, 345, 0, 400, - 383, 81, 0, 114, 176, 139, 101, 167, 409, 399, - 0, 371, 412, 349, 363, 420, 364, 365, 392, 335, - 379, 131, 361, 0, 352, 330, 358, 331, 350, 373, - 99, 376, 348, 401, 382, 411, 113, 418, 115, 387, - 0, 149, 124, 0, 0, 375, 403, 377, 397, 370, - 393, 340, 386, 413, 362, 390, 414, 52, 0, 0, - 79, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 0, 389, 408, 360, 391, 329, 388, 0, 333, 336, - 419, 406, 355, 356, 0, 0, 0, 0, 0, 0, - 0, 374, 378, 394, 368, 0, 0, 0, 0, 0, - 0, 0, 0, 353, 0, 385, 0, 0, 0, 337, - 334, 0, 0, 372, 0, 0, 0, 339, 0, 354, - 395, 0, 328, 398, 404, 369, 194, 407, 367, 366, - 410, 137, 0, 0, 152, 104, 103, 142, 112, 402, - 351, 359, 95, 357, 144, 133, 164, 384, 134, 143, - 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, - 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, - 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, - 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, - 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, - 106, 126, 125, 127, 0, 332, 0, 150, 166, 179, - 90, 347, 405, 172, 173, 174, 175, 0, 0, 91, - 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, - 94, 165, 148, 343, 346, 341, 342, 380, 381, 415, - 416, 417, 396, 338, 0, 344, 345, 0, 400, 383, - 81, 0, 114, 176, 139, 101, 167, 409, 399, 0, - 371, 412, 349, 363, 420, 364, 365, 392, 335, 379, - 131, 361, 0, 352, 330, 358, 331, 350, 373, 99, - 376, 348, 401, 382, 411, 113, 418, 115, 387, 0, - 149, 124, 0, 0, 375, 403, 377, 397, 370, 393, - 340, 386, 413, 362, 390, 414, 0, 0, 0, 79, + 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1191, 0, + 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 245, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 685, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 779, + 0, 0, 0, 0, 0, 779, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 0, 0, 0, 0, 1298, + 545, 0, 0, 0, 0, 0, 0, 0, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 595, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 837, 838, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 1003, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 779, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 192, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 837, 838, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 52, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, - 389, 408, 360, 391, 329, 388, 0, 333, 336, 419, - 406, 355, 356, 0, 0, 0, 0, 0, 0, 0, - 374, 378, 394, 368, 0, 0, 0, 0, 0, 0, - 1065, 0, 353, 0, 385, 0, 0, 0, 337, 334, - 0, 0, 372, 0, 0, 0, 339, 0, 354, 395, - 0, 328, 398, 404, 369, 194, 407, 367, 366, 410, - 137, 0, 0, 152, 104, 103, 142, 112, 402, 351, - 359, 95, 357, 144, 133, 164, 384, 134, 143, 116, - 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, - 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, - 126, 125, 127, 0, 332, 0, 150, 166, 179, 90, - 347, 405, 172, 173, 174, 175, 0, 0, 91, 128, - 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, - 165, 148, 343, 346, 341, 342, 380, 381, 415, 416, - 417, 396, 338, 0, 344, 345, 0, 400, 383, 81, - 0, 114, 176, 139, 101, 167, 409, 399, 0, 371, - 412, 349, 363, 420, 364, 365, 392, 335, 379, 131, - 361, 0, 352, 330, 358, 331, 350, 373, 99, 376, - 348, 401, 382, 411, 113, 418, 115, 387, 0, 149, - 124, 0, 0, 375, 403, 377, 397, 370, 393, 340, - 386, 413, 362, 390, 414, 0, 0, 0, 248, 0, - 0, 0, 0, 0, 0, 0, 0, 92, 0, 389, - 408, 360, 391, 329, 388, 0, 333, 336, 419, 406, - 355, 356, 0, 0, 0, 0, 0, 0, 0, 374, - 378, 394, 368, 0, 0, 0, 0, 0, 0, 728, - 0, 353, 0, 385, 0, 0, 0, 337, 334, 0, - 0, 372, 0, 0, 0, 339, 0, 354, 395, 0, - 328, 398, 404, 369, 194, 407, 367, 366, 410, 137, - 0, 0, 152, 104, 103, 142, 112, 402, 351, 359, - 95, 357, 144, 133, 164, 384, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, - 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, - 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, - 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 0, 332, 0, 150, 166, 179, 90, 347, - 405, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 343, 346, 341, 342, 380, 381, 415, 416, 417, - 396, 338, 0, 344, 345, 0, 400, 383, 81, 0, - 114, 176, 139, 101, 167, 409, 399, 0, 371, 412, - 349, 363, 420, 364, 365, 392, 335, 379, 131, 361, - 0, 352, 330, 358, 331, 350, 373, 99, 376, 348, - 401, 382, 411, 113, 418, 115, 387, 0, 149, 124, - 0, 0, 375, 403, 377, 397, 370, 393, 340, 386, - 413, 362, 390, 414, 0, 0, 0, 79, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 0, 389, 408, - 360, 391, 329, 388, 0, 333, 336, 419, 406, 355, - 356, 0, 0, 0, 0, 0, 0, 0, 374, 378, - 394, 368, 0, 0, 0, 0, 0, 0, 0, 0, - 353, 0, 385, 0, 0, 0, 337, 334, 0, 0, - 372, 0, 0, 0, 339, 0, 354, 395, 0, 328, - 398, 404, 369, 194, 407, 367, 366, 410, 137, 0, - 0, 152, 104, 103, 142, 112, 402, 351, 359, 95, - 357, 144, 133, 164, 384, 134, 143, 116, 156, 138, - 163, 195, 171, 154, 170, 82, 153, 162, 93, 146, - 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, - 102, 97, 130, 157, 158, 96, 178, 87, 169, 86, - 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, - 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, - 127, 0, 332, 0, 150, 166, 179, 90, 347, 405, - 172, 173, 174, 175, 0, 0, 91, 128, 89, 107, - 147, 110, 117, 140, 177, 132, 145, 94, 165, 148, - 343, 346, 341, 342, 380, 381, 415, 416, 417, 396, - 338, 0, 344, 345, 0, 400, 383, 81, 0, 114, - 176, 139, 101, 167, 409, 399, 0, 371, 412, 349, - 363, 420, 364, 365, 392, 335, 379, 131, 361, 0, - 352, 330, 358, 331, 350, 373, 99, 376, 348, 401, - 382, 411, 113, 418, 115, 387, 0, 149, 124, 0, - 0, 375, 403, 377, 397, 370, 393, 340, 386, 413, - 362, 390, 414, 0, 0, 0, 248, 0, 0, 0, - 0, 0, 0, 0, 0, 92, 0, 389, 408, 360, - 391, 329, 388, 0, 333, 336, 419, 406, 355, 356, - 0, 0, 0, 0, 0, 0, 0, 374, 378, 394, - 368, 0, 0, 0, 0, 0, 0, 0, 0, 353, - 0, 385, 0, 0, 0, 337, 334, 0, 0, 372, - 0, 0, 0, 339, 0, 354, 395, 0, 328, 398, - 404, 369, 194, 407, 367, 366, 410, 137, 0, 0, - 152, 104, 103, 142, 112, 402, 351, 359, 95, 357, - 144, 133, 164, 384, 134, 143, 116, 156, 138, 163, - 195, 171, 154, 170, 82, 153, 162, 93, 146, 84, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 1068, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 730, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 328, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 329, 327, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 193, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 605, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 328, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 329, 327, 107, 147, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 411, 401, 0, + 373, 414, 351, 365, 422, 366, 367, 394, 337, 381, + 131, 363, 0, 354, 332, 360, 333, 352, 375, 99, + 378, 350, 403, 384, 413, 113, 420, 115, 389, 0, + 149, 124, 0, 0, 377, 405, 379, 399, 372, 395, + 342, 388, 415, 364, 392, 416, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, + 391, 410, 362, 393, 331, 390, 0, 335, 338, 421, + 408, 357, 358, 0, 0, 0, 0, 0, 0, 0, + 376, 380, 396, 370, 0, 0, 0, 0, 0, 0, + 0, 0, 355, 0, 387, 0, 0, 0, 339, 336, + 0, 0, 374, 0, 0, 0, 341, 0, 356, 397, + 0, 330, 400, 406, 371, 195, 409, 369, 368, 412, + 137, 0, 0, 152, 104, 103, 142, 112, 404, 353, + 361, 95, 359, 144, 133, 164, 386, 134, 143, 116, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 319, + 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, + 169, 86, 328, 168, 129, 155, 161, 123, 120, 85, + 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, + 126, 125, 127, 0, 334, 0, 150, 166, 180, 90, + 349, 407, 172, 173, 174, 175, 176, 0, 0, 91, + 329, 327, 322, 321, 110, 117, 140, 178, 132, 145, + 94, 165, 148, 345, 348, 343, 344, 382, 383, 417, + 418, 419, 398, 340, 0, 346, 347, 0, 402, 385, + 81, 0, 114, 177, 139, 101, 167, 131, 0, 0, + 766, 0, 252, 0, 0, 0, 99, 0, 249, 0, + 0, 0, 113, 292, 115, 0, 0, 149, 124, 0, + 0, 0, 0, 283, 284, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 250, 271, 270, 273, + 274, 275, 276, 0, 0, 92, 272, 277, 278, 279, + 0, 0, 247, 264, 0, 291, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 261, 262, 243, 0, 0, + 0, 303, 0, 263, 0, 0, 258, 259, 260, 265, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 0, 0, 301, 0, 137, 0, 0, + 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, + 144, 133, 164, 0, 134, 143, 116, 156, 138, 163, + 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, - 97, 130, 157, 158, 96, 178, 87, 169, 86, 88, + 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, - 0, 332, 0, 150, 166, 179, 90, 347, 405, 172, - 173, 174, 175, 0, 0, 91, 128, 89, 107, 147, - 110, 117, 140, 177, 132, 145, 94, 165, 148, 343, - 346, 341, 342, 380, 381, 415, 416, 417, 396, 338, - 0, 344, 345, 0, 400, 383, 81, 0, 114, 176, - 139, 101, 167, 409, 399, 0, 371, 412, 349, 363, - 420, 364, 365, 392, 335, 379, 131, 361, 0, 352, - 330, 358, 331, 350, 373, 99, 376, 348, 401, 382, - 411, 113, 418, 115, 387, 0, 149, 124, 0, 0, - 375, 403, 377, 397, 370, 393, 340, 386, 413, 362, - 390, 414, 0, 0, 0, 79, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 0, 389, 408, 360, 391, - 329, 388, 0, 333, 336, 419, 406, 355, 356, 0, - 0, 0, 0, 0, 0, 0, 374, 378, 394, 368, - 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, - 385, 0, 0, 0, 337, 334, 0, 0, 372, 0, - 0, 0, 339, 0, 354, 395, 0, 328, 398, 404, - 369, 194, 407, 367, 366, 410, 137, 0, 0, 152, - 104, 103, 142, 112, 402, 351, 359, 95, 357, 144, - 133, 164, 384, 134, 143, 116, 156, 138, 163, 195, - 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, - 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, - 130, 157, 158, 96, 178, 87, 169, 86, 326, 168, - 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, - 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, - 332, 0, 150, 166, 179, 90, 347, 405, 172, 173, - 174, 175, 0, 0, 91, 327, 325, 107, 147, 110, - 117, 140, 177, 132, 145, 94, 165, 148, 343, 346, - 341, 342, 380, 381, 415, 416, 417, 396, 338, 0, - 344, 345, 0, 400, 383, 81, 0, 114, 176, 139, - 101, 167, 409, 399, 0, 371, 412, 349, 363, 420, - 364, 365, 392, 335, 379, 131, 361, 0, 352, 330, - 358, 331, 350, 373, 99, 376, 348, 401, 382, 411, - 113, 418, 115, 387, 0, 149, 124, 0, 0, 375, - 403, 377, 397, 370, 393, 340, 386, 413, 362, 390, - 414, 0, 0, 0, 192, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 389, 408, 360, 391, 329, - 388, 0, 333, 336, 419, 406, 355, 356, 0, 0, - 0, 0, 0, 0, 0, 374, 378, 394, 368, 0, - 0, 0, 0, 0, 0, 0, 0, 353, 0, 385, - 0, 0, 0, 337, 334, 0, 0, 372, 0, 0, - 0, 339, 0, 354, 395, 0, 328, 398, 404, 369, - 194, 407, 367, 366, 410, 137, 0, 0, 152, 104, - 103, 142, 112, 402, 351, 359, 95, 357, 144, 133, - 164, 384, 134, 143, 116, 156, 138, 163, 195, 171, - 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, - 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, - 157, 158, 96, 178, 87, 169, 86, 88, 168, 129, - 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, - 105, 135, 118, 136, 106, 126, 125, 127, 0, 332, - 0, 150, 166, 179, 90, 347, 405, 172, 173, 174, - 175, 0, 0, 91, 128, 89, 107, 147, 110, 117, - 140, 177, 132, 145, 94, 165, 148, 343, 346, 341, - 342, 380, 381, 415, 416, 417, 396, 338, 0, 344, - 345, 0, 400, 383, 81, 0, 114, 176, 139, 101, - 167, 409, 399, 0, 371, 412, 349, 363, 420, 364, - 365, 392, 335, 379, 131, 361, 0, 352, 330, 358, - 331, 350, 373, 99, 376, 348, 401, 382, 411, 113, - 418, 115, 387, 0, 149, 124, 0, 0, 375, 403, - 377, 397, 370, 393, 340, 386, 413, 362, 390, 414, - 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 389, 408, 360, 391, 329, 388, - 0, 333, 336, 419, 406, 355, 356, 0, 0, 0, - 0, 0, 0, 0, 374, 378, 394, 368, 0, 0, - 0, 0, 0, 0, 0, 0, 353, 0, 385, 0, - 0, 0, 337, 334, 0, 0, 372, 0, 0, 0, - 339, 0, 354, 395, 0, 328, 398, 404, 369, 194, - 407, 367, 366, 410, 137, 0, 0, 152, 104, 103, - 142, 112, 402, 351, 359, 95, 357, 144, 133, 164, - 384, 134, 143, 116, 156, 138, 163, 195, 171, 154, - 170, 82, 153, 603, 93, 146, 84, 160, 151, 122, + 0, 0, 0, 150, 166, 180, 90, 0, 0, 172, + 173, 174, 175, 176, 0, 0, 91, 128, 89, 107, + 147, 110, 117, 140, 178, 132, 145, 94, 165, 148, + 293, 302, 299, 300, 297, 298, 296, 295, 294, 304, + 285, 286, 287, 288, 290, 0, 289, 81, 0, 114, + 177, 139, 101, 167, 131, 0, 0, 0, 0, 252, + 0, 0, 0, 99, 0, 249, 0, 0, 0, 113, + 292, 115, 0, 0, 149, 124, 0, 0, 0, 0, + 283, 284, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 475, 250, 271, 270, 273, 274, 275, 276, + 0, 0, 92, 272, 277, 278, 279, 0, 0, 247, + 264, 0, 291, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 261, 262, 0, 0, 0, 0, 303, 0, + 263, 0, 0, 258, 259, 260, 265, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 0, 0, 301, 0, 137, 0, 0, 152, 104, 103, + 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, + 0, 134, 143, 116, 156, 138, 163, 196, 171, 154, + 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, - 158, 96, 178, 87, 169, 86, 326, 168, 129, 155, + 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, - 135, 118, 136, 106, 126, 125, 127, 0, 332, 0, - 150, 166, 179, 90, 347, 405, 172, 173, 174, 175, - 0, 0, 91, 327, 325, 107, 147, 110, 117, 140, - 177, 132, 145, 94, 165, 148, 343, 346, 341, 342, - 380, 381, 415, 416, 417, 396, 338, 0, 344, 345, - 0, 400, 383, 81, 0, 114, 176, 139, 101, 167, - 409, 399, 0, 371, 412, 349, 363, 420, 364, 365, - 392, 335, 379, 131, 361, 0, 352, 330, 358, 331, - 350, 373, 99, 376, 348, 401, 382, 411, 113, 418, - 115, 387, 0, 149, 124, 0, 0, 375, 403, 377, - 397, 370, 393, 340, 386, 413, 362, 390, 414, 0, - 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 389, 408, 360, 391, 329, 388, 0, - 333, 336, 419, 406, 355, 356, 0, 0, 0, 0, - 0, 0, 0, 374, 378, 394, 368, 0, 0, 0, - 0, 0, 0, 0, 0, 353, 0, 385, 0, 0, - 0, 337, 334, 0, 0, 372, 0, 0, 0, 339, - 0, 354, 395, 0, 328, 398, 404, 369, 194, 407, - 367, 366, 410, 137, 0, 0, 152, 104, 103, 142, - 112, 402, 351, 359, 95, 357, 144, 133, 164, 384, - 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, - 82, 153, 317, 93, 146, 84, 160, 151, 122, 108, - 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, - 96, 178, 87, 169, 86, 326, 168, 129, 155, 161, - 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, - 118, 136, 106, 126, 125, 127, 0, 332, 0, 150, - 166, 179, 90, 347, 405, 172, 173, 174, 175, 0, - 0, 91, 327, 325, 320, 319, 110, 117, 140, 177, - 132, 145, 94, 165, 148, 343, 346, 341, 342, 380, - 381, 415, 416, 417, 396, 338, 0, 344, 345, 0, - 400, 383, 81, 0, 114, 176, 139, 101, 167, 131, - 0, 0, 764, 0, 250, 0, 0, 0, 99, 0, - 247, 0, 0, 0, 113, 290, 115, 0, 0, 149, - 124, 0, 0, 0, 0, 281, 282, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 248, 269, - 268, 271, 272, 273, 274, 0, 0, 92, 270, 275, - 276, 277, 0, 0, 245, 262, 0, 289, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 259, 260, 241, - 0, 0, 0, 301, 0, 261, 0, 0, 256, 257, - 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 0, 0, 299, 0, 137, - 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, - 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, - 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, - 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, - 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, - 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 291, 300, 297, 298, 295, 296, 294, 293, 292, - 302, 283, 284, 285, 286, 288, 0, 287, 81, 0, - 114, 176, 139, 101, 167, 131, 0, 0, 0, 0, - 250, 0, 0, 0, 99, 0, 247, 0, 0, 0, - 113, 290, 115, 0, 0, 149, 124, 0, 0, 0, - 0, 281, 282, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 473, 248, 269, 268, 271, 272, 273, - 274, 0, 0, 92, 270, 275, 276, 277, 0, 0, - 245, 262, 0, 289, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 259, 260, 0, 0, 0, 0, 301, - 0, 261, 0, 0, 256, 257, 258, 263, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 194, 0, 0, 299, 0, 137, 0, 0, 152, 104, + 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, + 150, 166, 180, 90, 0, 0, 172, 173, 174, 175, + 176, 0, 0, 91, 128, 89, 107, 147, 110, 117, + 140, 178, 132, 145, 94, 165, 148, 293, 302, 299, + 300, 297, 298, 296, 295, 294, 304, 285, 286, 287, + 288, 290, 0, 289, 81, 0, 114, 177, 139, 101, + 167, 131, 0, 0, 0, 0, 252, 0, 0, 0, + 99, 0, 249, 0, 0, 0, 113, 292, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 283, 284, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 250, 271, 270, 273, 274, 275, 276, 0, 0, 92, + 272, 277, 278, 279, 0, 0, 247, 264, 0, 291, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, + 262, 243, 0, 0, 0, 303, 0, 263, 0, 0, + 258, 259, 260, 265, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 301, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 179, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 180, + 90, 0, 0, 172, 173, 174, 175, 176, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 178, 132, + 145, 94, 165, 148, 293, 302, 299, 300, 297, 298, + 296, 295, 294, 304, 285, 286, 287, 288, 290, 0, + 289, 81, 0, 114, 177, 139, 101, 167, 131, 0, + 0, 0, 0, 252, 0, 0, 0, 99, 0, 249, + 0, 0, 0, 113, 292, 115, 0, 0, 149, 124, + 0, 0, 0, 0, 283, 284, 0, 0, 0, 0, + 0, 0, 829, 0, 52, 0, 0, 250, 271, 270, + 273, 274, 275, 276, 0, 0, 92, 272, 277, 278, + 279, 0, 0, 247, 264, 0, 291, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 261, 262, 0, 0, + 0, 0, 303, 0, 263, 0, 0, 258, 259, 260, + 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 195, 0, 0, 301, 0, 137, 0, + 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, + 0, 144, 133, 164, 0, 134, 143, 116, 156, 138, + 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, + 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, + 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, + 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 150, 166, 180, 90, 0, 0, + 172, 173, 174, 175, 176, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 178, 132, 145, 94, 165, + 148, 293, 302, 299, 300, 297, 298, 296, 295, 294, + 304, 285, 286, 287, 288, 290, 23, 289, 81, 0, + 114, 177, 139, 101, 167, 0, 0, 0, 131, 0, + 0, 0, 0, 252, 0, 0, 0, 99, 0, 249, + 0, 0, 0, 113, 292, 115, 0, 0, 149, 124, + 0, 0, 0, 0, 283, 284, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 250, 271, 270, + 273, 274, 275, 276, 0, 0, 92, 272, 277, 278, + 279, 0, 0, 247, 264, 0, 291, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 261, 262, 0, 0, + 0, 0, 303, 0, 263, 0, 0, 258, 259, 260, + 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 195, 0, 0, 301, 0, 137, 0, + 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, + 0, 144, 133, 164, 0, 134, 143, 116, 156, 138, + 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, + 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, + 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, + 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 150, 166, 180, 90, 0, 0, + 172, 173, 174, 175, 176, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 178, 132, 145, 94, 165, + 148, 293, 302, 299, 300, 297, 298, 296, 295, 294, + 304, 285, 286, 287, 288, 290, 0, 289, 81, 0, + 114, 177, 139, 101, 167, 131, 0, 0, 0, 0, + 252, 0, 0, 0, 99, 0, 249, 0, 0, 0, + 113, 292, 115, 0, 0, 149, 124, 0, 0, 0, + 0, 283, 284, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 250, 271, 270, 273, 274, 275, + 276, 0, 0, 92, 272, 277, 278, 279, 0, 0, + 247, 264, 0, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 261, 262, 0, 0, 0, 0, 303, + 0, 263, 0, 0, 258, 259, 260, 265, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 195, 0, 0, 301, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, - 164, 0, 134, 143, 116, 156, 138, 163, 195, 171, + 164, 0, 134, 143, 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, - 157, 158, 96, 178, 87, 169, 86, 88, 168, 129, + 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, - 0, 150, 166, 179, 90, 0, 0, 172, 173, 174, - 175, 0, 0, 91, 128, 89, 107, 147, 110, 117, - 140, 177, 132, 145, 94, 165, 148, 291, 300, 297, - 298, 295, 296, 294, 293, 292, 302, 283, 284, 285, - 286, 288, 0, 287, 81, 0, 114, 176, 139, 101, - 167, 131, 0, 0, 0, 0, 250, 0, 0, 0, - 99, 0, 247, 0, 0, 0, 113, 290, 115, 0, - 0, 149, 124, 0, 0, 0, 0, 281, 282, 0, + 0, 150, 166, 180, 90, 0, 0, 172, 173, 174, + 175, 176, 0, 0, 91, 128, 89, 107, 147, 110, + 117, 140, 178, 132, 145, 94, 165, 148, 293, 302, + 299, 300, 297, 298, 296, 295, 294, 304, 285, 286, + 287, 288, 290, 131, 289, 81, 0, 114, 177, 139, + 101, 167, 99, 0, 0, 0, 0, 0, 113, 292, + 115, 0, 0, 149, 124, 0, 0, 0, 0, 283, + 284, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 250, 271, 270, 273, 274, 275, 276, 0, + 0, 92, 272, 277, 278, 279, 0, 0, 0, 264, + 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 261, 262, 0, 0, 0, 0, 303, 0, 263, + 0, 0, 258, 259, 260, 265, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, + 0, 301, 0, 137, 0, 0, 152, 104, 103, 142, + 112, 0, 0, 0, 95, 0, 144, 133, 164, 1331, + 134, 143, 116, 156, 138, 163, 196, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, + 166, 180, 90, 0, 0, 172, 173, 174, 175, 176, + 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, + 178, 132, 145, 94, 165, 148, 293, 302, 299, 300, + 297, 298, 296, 295, 294, 304, 285, 286, 287, 288, + 290, 131, 289, 81, 0, 114, 177, 139, 101, 167, + 99, 0, 0, 0, 0, 0, 113, 292, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 283, 284, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, - 248, 269, 268, 271, 272, 273, 274, 0, 0, 92, - 270, 275, 276, 277, 0, 0, 245, 262, 0, 289, + 250, 271, 270, 273, 274, 275, 276, 0, 0, 92, + 272, 277, 278, 279, 0, 0, 0, 264, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, - 260, 241, 0, 0, 0, 301, 0, 261, 0, 0, - 256, 257, 258, 263, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 194, 0, 0, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, + 262, 0, 0, 0, 0, 303, 0, 263, 0, 0, + 258, 259, 260, 265, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 301, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, - 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, + 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, - 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, - 106, 126, 125, 127, 0, 0, 0, 150, 166, 179, - 90, 0, 0, 172, 173, 174, 175, 0, 0, 91, - 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, - 94, 165, 148, 291, 300, 297, 298, 295, 296, 294, - 293, 292, 302, 283, 284, 285, 286, 288, 0, 287, - 81, 0, 114, 176, 139, 101, 167, 131, 0, 0, - 0, 0, 250, 0, 0, 0, 99, 0, 247, 0, - 0, 0, 113, 290, 115, 0, 0, 149, 124, 0, - 0, 0, 0, 281, 282, 0, 0, 0, 0, 0, - 0, 827, 0, 52, 0, 0, 248, 269, 268, 271, - 272, 273, 274, 0, 0, 92, 270, 275, 276, 277, - 0, 0, 245, 262, 0, 289, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 259, 260, 0, 0, 0, - 0, 301, 0, 261, 0, 0, 256, 257, 258, 263, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 0, 0, 299, 0, 137, 0, 0, - 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, - 144, 133, 164, 0, 134, 143, 116, 156, 138, 163, - 195, 171, 154, 170, 82, 153, 162, 93, 146, 84, - 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, - 97, 130, 157, 158, 96, 178, 87, 169, 86, 88, - 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, - 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, - 0, 0, 0, 150, 166, 179, 90, 0, 0, 172, - 173, 174, 175, 0, 0, 91, 128, 89, 107, 147, - 110, 117, 140, 177, 132, 145, 94, 165, 148, 291, - 300, 297, 298, 295, 296, 294, 293, 292, 302, 283, - 284, 285, 286, 288, 23, 287, 81, 0, 114, 176, - 139, 101, 167, 0, 0, 0, 131, 0, 0, 0, - 0, 250, 0, 0, 0, 99, 0, 247, 0, 0, - 0, 113, 290, 115, 0, 0, 149, 124, 0, 0, - 0, 0, 281, 282, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 248, 269, 268, 271, 272, - 273, 274, 0, 0, 92, 270, 275, 276, 277, 0, - 0, 245, 262, 0, 289, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 259, 260, 0, 0, 0, 0, - 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 0, 0, 299, 0, 137, 0, 0, 152, - 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, - 133, 164, 0, 134, 143, 116, 156, 138, 163, 195, - 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, - 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, - 130, 157, 158, 96, 178, 87, 169, 86, 88, 168, - 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, - 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, - 0, 0, 150, 166, 179, 90, 0, 0, 172, 173, - 174, 175, 0, 0, 91, 128, 89, 107, 147, 110, - 117, 140, 177, 132, 145, 94, 165, 148, 291, 300, - 297, 298, 295, 296, 294, 293, 292, 302, 283, 284, - 285, 286, 288, 0, 287, 81, 0, 114, 176, 139, - 101, 167, 131, 0, 0, 0, 0, 250, 0, 0, - 0, 99, 0, 247, 0, 0, 0, 113, 290, 115, - 0, 0, 149, 124, 0, 0, 0, 0, 281, 282, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 248, 269, 268, 271, 272, 273, 274, 0, 0, - 92, 270, 275, 276, 277, 0, 0, 245, 262, 0, - 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 259, 260, 0, 0, 0, 0, 301, 0, 261, 0, - 0, 256, 257, 258, 263, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, - 299, 0, 137, 0, 0, 152, 104, 103, 142, 112, - 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, - 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, - 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, - 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, - 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, - 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, - 136, 106, 126, 125, 127, 0, 0, 0, 150, 166, - 179, 90, 0, 0, 172, 173, 174, 175, 0, 0, - 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, - 145, 94, 165, 148, 291, 300, 297, 298, 295, 296, - 294, 293, 292, 302, 283, 284, 285, 286, 288, 131, - 287, 81, 0, 114, 176, 139, 101, 167, 99, 0, - 0, 0, 0, 0, 113, 290, 115, 0, 0, 149, - 124, 0, 0, 0, 0, 281, 282, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 248, 269, - 268, 271, 272, 273, 274, 0, 0, 92, 270, 275, - 276, 277, 0, 0, 0, 262, 0, 289, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 259, 260, 0, - 0, 0, 0, 301, 0, 261, 0, 0, 256, 257, - 258, 263, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 0, 0, 299, 0, 137, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 180, + 90, 0, 0, 172, 173, 174, 175, 176, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 178, 132, + 145, 94, 165, 148, 293, 302, 299, 300, 297, 298, + 296, 295, 294, 304, 285, 286, 287, 288, 290, 131, + 289, 81, 0, 114, 177, 139, 101, 167, 99, 0, + 0, 0, 0, 0, 113, 0, 115, 0, 0, 149, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 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, 509, 508, 518, 519, 511, 512, 513, + 514, 515, 516, 517, 510, 0, 0, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, - 95, 0, 144, 133, 164, 1328, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, + 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 98, 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, - 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 291, 300, 297, 298, 295, 296, 294, 293, 292, - 302, 283, 284, 285, 286, 288, 131, 287, 81, 0, - 114, 176, 139, 101, 167, 99, 0, 0, 0, 0, - 0, 113, 290, 115, 0, 0, 149, 124, 0, 0, - 0, 0, 281, 282, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 248, 269, 268, 271, 272, - 273, 274, 0, 0, 92, 270, 275, 276, 277, 0, - 0, 0, 262, 0, 289, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 259, 260, 0, 0, 0, 0, - 301, 0, 261, 0, 0, 256, 257, 258, 263, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 0, 0, 299, 0, 137, 0, 0, 152, - 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, - 133, 164, 0, 134, 143, 116, 156, 138, 163, 195, - 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, - 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, - 130, 157, 158, 96, 178, 87, 169, 86, 88, 168, - 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, - 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, - 0, 0, 150, 166, 179, 90, 0, 0, 172, 173, - 174, 175, 0, 0, 91, 128, 89, 107, 147, 110, - 117, 140, 177, 132, 145, 94, 165, 148, 291, 300, - 297, 298, 295, 296, 294, 293, 292, 302, 283, 284, - 285, 286, 288, 131, 287, 81, 0, 114, 176, 139, - 101, 167, 99, 0, 0, 0, 0, 0, 113, 0, + 125, 127, 0, 0, 0, 150, 166, 180, 90, 0, + 0, 172, 173, 174, 175, 176, 0, 0, 91, 128, + 89, 107, 147, 110, 117, 140, 178, 132, 145, 94, + 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 0, 0, 497, 0, 0, 0, 81, + 99, 114, 177, 139, 101, 167, 113, 0, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 79, 0, 499, 0, 0, 0, 0, 0, 0, 92, + 0, 0, 0, 0, 494, 493, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 495, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 179, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 180, + 90, 0, 0, 172, 173, 174, 175, 176, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 178, 132, + 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, + 0, 81, 99, 114, 177, 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 507, 506, 516, - 517, 509, 510, 511, 512, 513, 514, 515, 508, 0, - 0, 518, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, - 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 76, 0, 71, 0, + 0, 0, 77, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, - 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, + 134, 143, 116, 156, 138, 163, 73, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, - 96, 178, 87, 169, 86, 88, 168, 129, 155, 161, + 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, - 166, 179, 90, 0, 0, 172, 173, 174, 175, 0, - 0, 91, 128, 89, 107, 147, 110, 117, 140, 177, - 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, - 0, 0, 81, 99, 114, 176, 139, 101, 167, 113, - 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 0, 0, 0, 72, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 76, 0, 71, - 0, 0, 0, 77, 137, 0, 0, 152, 104, 103, - 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, - 0, 134, 143, 116, 156, 138, 163, 73, 171, 154, - 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, - 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, - 158, 96, 178, 87, 169, 86, 88, 168, 129, 155, - 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, - 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, - 150, 166, 179, 90, 0, 0, 172, 173, 174, 175, + 166, 180, 90, 0, 0, 172, 173, 174, 175, 176, 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, - 177, 132, 145, 94, 165, 148, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 131, 0, 0, 0, 592, - 0, 0, 0, 81, 99, 114, 176, 139, 101, 167, + 178, 132, 145, 94, 165, 148, 0, 74, 0, 0, + 0, 0, 0, 0, 0, 131, 0, 0, 0, 594, + 0, 0, 0, 81, 99, 114, 177, 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 192, 0, 594, 0, 0, 0, + 0, 0, 0, 0, 193, 0, 596, 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, - 194, 0, 0, 0, 0, 137, 0, 0, 152, 104, + 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, - 164, 0, 134, 143, 116, 156, 138, 163, 195, 171, + 164, 0, 134, 143, 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, - 157, 158, 96, 178, 87, 169, 86, 88, 168, 129, + 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, - 0, 150, 166, 179, 90, 0, 0, 172, 173, 174, - 175, 0, 0, 91, 128, 89, 107, 147, 110, 117, - 140, 177, 132, 145, 94, 165, 148, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 131, 0, 81, 0, 114, 176, 139, 101, - 167, 99, 0, 0, 0, 0, 0, 113, 0, 115, - 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 79, 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, 150, 166, 180, 90, 0, 0, 172, 173, 174, + 175, 176, 0, 0, 91, 128, 89, 107, 147, 110, + 117, 140, 178, 132, 145, 94, 165, 148, 0, 0, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 0, 81, 0, 114, 177, 139, + 101, 167, 99, 0, 0, 0, 0, 0, 113, 0, + 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 79, 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, 194, 0, 0, - 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, - 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, - 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, - 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, - 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, - 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, - 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, - 136, 106, 126, 125, 127, 0, 0, 0, 150, 166, - 179, 90, 0, 0, 172, 173, 174, 175, 0, 0, - 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, - 145, 94, 165, 148, 0, 0, 0, 23, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 0, 81, 0, 114, 176, 139, 101, 167, 99, 0, - 0, 0, 0, 0, 113, 0, 115, 0, 0, 149, - 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 192, 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, 195, 0, + 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, + 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, + 134, 143, 116, 156, 138, 163, 196, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, + 166, 180, 90, 0, 0, 172, 173, 174, 175, 176, + 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, + 178, 132, 145, 94, 165, 148, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 81, 0, 114, 177, 139, 101, 167, + 99, 0, 0, 0, 0, 0, 113, 0, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 193, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, - 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, - 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, - 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, - 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, - 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, - 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 0, 0, 0, 0, 0, 0, 0, 81, 99, - 114, 176, 139, 101, 167, 113, 0, 115, 0, 0, - 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 0, 0, 715, 0, 0, 716, 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, 195, 0, 0, 0, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 179, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 180, + 90, 0, 0, 172, 173, 174, 175, 176, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 178, 132, + 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, + 0, 81, 99, 114, 177, 139, 101, 167, 113, 0, + 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, - 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, - 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, - 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, - 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, - 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, - 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, - 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, - 126, 125, 127, 0, 0, 0, 150, 166, 179, 90, - 0, 0, 172, 173, 174, 175, 0, 0, 91, 128, - 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, - 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 131, 0, 81, - 0, 114, 176, 139, 101, 167, 99, 0, 612, 0, - 0, 0, 113, 0, 115, 0, 0, 149, 124, 0, + 0, 0, 79, 0, 0, 717, 0, 0, 718, 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, 79, 0, 611, 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, 195, 0, + 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, + 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, + 134, 143, 116, 156, 138, 163, 196, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, + 166, 180, 90, 0, 0, 172, 173, 174, 175, 176, + 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, + 178, 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 81, 0, 114, 177, 139, 101, 167, + 99, 0, 614, 0, 0, 0, 113, 0, 115, 0, + 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 137, 0, 0, - 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, - 144, 133, 164, 0, 134, 143, 116, 156, 138, 163, - 195, 171, 154, 170, 82, 153, 162, 93, 146, 84, - 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, - 97, 130, 157, 158, 96, 178, 87, 169, 86, 88, - 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, - 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, - 0, 0, 0, 150, 166, 179, 90, 0, 0, 172, - 173, 174, 175, 0, 0, 91, 128, 89, 107, 147, - 110, 117, 140, 177, 132, 145, 94, 165, 148, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, - 0, 0, 592, 0, 0, 0, 81, 99, 114, 176, - 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, + 79, 0, 613, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 594, - 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, 195, 0, 0, 0, + 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, + 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, + 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, + 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, + 0, 141, 98, 102, 97, 130, 157, 158, 96, 179, + 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, + 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, + 106, 126, 125, 127, 0, 0, 0, 150, 166, 180, + 90, 0, 0, 172, 173, 174, 175, 176, 0, 0, + 91, 128, 89, 107, 147, 110, 117, 140, 178, 132, + 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 0, 0, 0, 594, 0, 0, + 0, 81, 99, 114, 177, 139, 101, 167, 113, 0, + 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 0, 0, 0, 0, 137, 0, - 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, - 0, 144, 133, 164, 0, 590, 143, 116, 156, 138, - 163, 195, 171, 154, 170, 82, 153, 162, 93, 146, - 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, - 102, 97, 130, 157, 158, 96, 178, 87, 169, 86, - 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, - 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, - 127, 0, 0, 0, 150, 166, 179, 90, 0, 0, - 172, 173, 174, 175, 0, 0, 91, 128, 89, 107, - 147, 110, 117, 140, 177, 132, 145, 94, 165, 148, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 0, 0, 0, 0, 0, 0, 0, 81, 99, 114, - 176, 139, 101, 167, 113, 0, 115, 0, 0, 149, - 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 192, 0, - 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, + 0, 0, 193, 0, 596, 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, 195, 0, + 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, + 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, + 592, 143, 116, 156, 138, 163, 196, 171, 154, 170, + 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, + 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, + 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, + 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, + 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, + 166, 180, 90, 0, 0, 172, 173, 174, 175, 176, + 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, + 178, 132, 145, 94, 165, 148, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, + 0, 0, 0, 81, 99, 114, 177, 139, 101, 167, + 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 0, 0, 0, 0, 137, - 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, - 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, - 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, - 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, - 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, - 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 0, 0, 0, 0, 0, 0, 0, 81, 99, - 114, 176, 139, 101, 167, 113, 0, 115, 0, 0, - 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, - 0, 594, 0, 0, 0, 0, 0, 0, 92, 0, + 0, 52, 0, 0, 193, 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, 0, 0, 0, - 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, - 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, - 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, - 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, - 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, - 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, - 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, - 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, - 126, 125, 127, 0, 0, 0, 150, 166, 179, 90, - 0, 0, 172, 173, 174, 175, 0, 0, 91, 128, - 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, - 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 131, 0, 0, 0, 0, 0, 0, 0, 81, - 99, 114, 176, 139, 101, 167, 113, 0, 115, 0, - 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, + 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, + 164, 0, 134, 143, 116, 156, 138, 163, 196, 171, + 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, + 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, + 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, + 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, + 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, + 0, 150, 166, 180, 90, 0, 0, 172, 173, 174, + 175, 176, 0, 0, 91, 128, 89, 107, 147, 110, + 117, 140, 178, 132, 145, 94, 165, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, + 0, 0, 0, 0, 0, 81, 99, 114, 177, 139, + 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 0, 497, 0, 0, 0, 0, 0, 0, 92, + 0, 0, 0, 0, 0, 0, 193, 0, 596, 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, 0, 0, 0, 0, 194, 0, 0, 0, - 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, - 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, - 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, - 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, - 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, - 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, - 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, - 106, 126, 125, 127, 0, 0, 0, 150, 166, 179, - 90, 0, 0, 172, 173, 174, 175, 0, 0, 91, - 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, - 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 0, 0, 0, 0, 137, 0, 0, + 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, + 144, 133, 164, 0, 134, 143, 116, 156, 138, 163, + 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, + 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, + 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, + 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, + 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, + 0, 0, 0, 150, 166, 180, 90, 0, 0, 172, + 173, 174, 175, 176, 0, 0, 91, 128, 89, 107, + 147, 110, 117, 140, 178, 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 81, 0, 114, 176, 139, 101, 167, 570, 99, 0, - 0, 0, 0, 0, 113, 0, 115, 0, 0, 149, + 0, 0, 0, 0, 0, 0, 0, 81, 99, 114, + 177, 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, + 499, 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, 194, 0, 0, 0, 0, 137, + 0, 0, 0, 0, 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, 156, - 138, 163, 195, 171, 154, 170, 82, 153, 162, 93, + 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, - 98, 102, 97, 130, 157, 158, 96, 178, 87, 169, + 98, 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, - 125, 127, 0, 0, 0, 150, 166, 179, 90, 0, - 0, 172, 173, 174, 175, 0, 0, 91, 128, 89, - 107, 147, 110, 117, 140, 177, 132, 145, 94, 165, - 148, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 125, 127, 0, 0, 0, 150, 166, 180, 90, 0, + 0, 172, 173, 174, 175, 176, 0, 0, 91, 128, + 89, 107, 147, 110, 117, 140, 178, 132, 145, 94, + 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 81, + 0, 114, 177, 139, 101, 167, 572, 99, 0, 0, + 0, 0, 0, 113, 0, 115, 0, 0, 149, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 193, 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, + 0, 0, 0, 195, 0, 0, 0, 0, 137, 0, + 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, + 0, 144, 133, 164, 0, 134, 143, 116, 156, 138, + 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, + 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, + 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, + 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 150, 166, 180, 90, 0, 0, + 172, 173, 174, 175, 176, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 178, 132, 145, 94, 165, + 148, 0, 0, 314, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 81, 99, - 114, 176, 139, 101, 167, 113, 0, 115, 0, 0, + 114, 177, 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 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, 0, 0, 0, 194, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, 116, - 156, 138, 163, 195, 171, 154, 170, 82, 153, 162, + 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, - 141, 98, 102, 97, 130, 157, 158, 96, 178, 87, + 141, 98, 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, - 126, 125, 127, 0, 0, 0, 150, 166, 179, 90, - 0, 0, 172, 173, 174, 175, 0, 0, 91, 128, - 89, 107, 147, 110, 117, 140, 177, 132, 145, 94, - 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 131, 0, 0, 0, 0, 0, 0, 0, 81, - 99, 114, 176, 139, 101, 167, 113, 0, 115, 0, - 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 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, 0, 189, 0, 194, 0, 0, 0, - 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, - 0, 0, 95, 0, 144, 133, 164, 0, 134, 143, - 116, 156, 138, 163, 195, 171, 154, 170, 82, 153, - 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, - 0, 141, 98, 102, 97, 130, 157, 158, 96, 178, - 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, - 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, - 106, 126, 125, 127, 0, 0, 0, 150, 166, 179, - 90, 0, 0, 172, 173, 174, 175, 0, 0, 91, - 128, 89, 107, 147, 110, 117, 140, 177, 132, 145, + 126, 125, 127, 0, 0, 0, 150, 166, 180, 90, + 0, 0, 172, 173, 174, 175, 176, 0, 0, 91, + 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, - 81, 99, 114, 176, 139, 101, 167, 113, 0, 115, + 81, 99, 114, 177, 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 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, 0, 0, 0, 194, 0, 0, + 0, 0, 0, 0, 0, 190, 0, 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, 134, - 143, 116, 156, 138, 163, 195, 171, 154, 170, 82, + 143, 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, 96, - 178, 87, 169, 86, 88, 168, 129, 155, 161, 123, + 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, 166, - 179, 90, 0, 0, 172, 173, 174, 175, 0, 0, - 91, 128, 89, 107, 147, 110, 117, 140, 177, 132, - 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, - 0, 81, 99, 114, 176, 139, 101, 167, 113, 0, - 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 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, 0, 0, 0, 194, 0, - 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, - 112, 0, 0, 0, 95, 0, 144, 133, 164, 0, - 134, 143, 116, 156, 138, 163, 195, 171, 154, 170, - 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, - 109, 83, 0, 141, 98, 102, 97, 130, 157, 158, - 96, 178, 87, 169, 86, 88, 168, 129, 155, 161, - 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, - 118, 136, 106, 126, 125, 127, 0, 0, 0, 150, - 166, 179, 90, 0, 0, 172, 173, 174, 175, 0, - 0, 91, 128, 89, 107, 147, 110, 117, 140, 177, + 180, 90, 0, 0, 172, 173, 174, 175, 176, 0, + 0, 91, 128, 89, 107, 147, 110, 117, 140, 178, 132, 145, 94, 165, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, - 0, 0, 81, 99, 114, 176, 139, 101, 167, 113, + 0, 0, 81, 99, 114, 177, 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 79, 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, 0, 0, 0, 194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 137, 0, 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, 133, 164, - 0, 134, 143, 116, 156, 138, 163, 195, 171, 154, + 0, 134, 143, 116, 156, 138, 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, 130, 157, - 158, 96, 178, 87, 169, 86, 88, 168, 129, 155, + 158, 96, 179, 87, 169, 86, 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, 0, 0, - 150, 166, 179, 90, 0, 0, 172, 173, 174, 175, - 0, 0, 91, 128, 89, 107, 147, 110, 117, 140, - 177, 132, 145, 94, 165, 148, 0, 0, 0, 0, + 150, 166, 180, 90, 0, 0, 172, 173, 174, 175, + 176, 0, 0, 91, 128, 89, 107, 147, 110, 117, + 140, 178, 132, 145, 94, 165, 148, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 81, 99, 114, 177, 139, 101, + 167, 113, 0, 115, 0, 0, 149, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 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, 81, 0, 114, 176, 139, 101, 167, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 195, 0, 0, 0, 0, 137, 0, 0, 152, + 104, 103, 142, 112, 0, 0, 0, 95, 0, 144, + 133, 164, 0, 134, 143, 116, 156, 138, 163, 196, + 171, 154, 170, 82, 153, 162, 93, 146, 84, 160, + 151, 122, 108, 109, 83, 0, 141, 98, 102, 97, + 130, 157, 158, 96, 179, 87, 169, 86, 88, 168, + 129, 155, 161, 123, 120, 85, 159, 121, 119, 111, + 100, 105, 135, 118, 136, 106, 126, 125, 127, 0, + 0, 0, 150, 166, 180, 90, 0, 0, 172, 173, + 174, 175, 176, 0, 0, 91, 128, 89, 107, 147, + 110, 117, 140, 178, 132, 145, 94, 165, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, + 0, 0, 0, 0, 0, 0, 81, 99, 114, 177, + 139, 101, 167, 113, 0, 115, 0, 0, 149, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 250, 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, + 0, 0, 0, 195, 0, 0, 0, 0, 137, 0, + 0, 152, 104, 103, 142, 112, 0, 0, 0, 95, + 0, 144, 133, 164, 0, 134, 143, 116, 156, 138, + 163, 196, 171, 154, 170, 82, 153, 162, 93, 146, + 84, 160, 151, 122, 108, 109, 83, 0, 141, 98, + 102, 97, 130, 157, 158, 96, 179, 87, 169, 86, + 88, 168, 129, 155, 161, 123, 120, 85, 159, 121, + 119, 111, 100, 105, 135, 118, 136, 106, 126, 125, + 127, 0, 0, 0, 150, 166, 180, 90, 0, 0, + 172, 173, 174, 175, 176, 0, 0, 91, 128, 89, + 107, 147, 110, 117, 140, 178, 132, 145, 94, 165, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, + 114, 177, 139, 101, 167, } var yyPact = [...]int{ - 1935, -1000, -179, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 125, -1000, -180, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 849, 876, -1000, -1000, -1000, -1000, -1000, -1000, 278, + 7715, 59, 89, -19, 10404, 85, 1397, 10848, -1000, -9, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -81, -83, 637, + -1000, -1000, -1000, -1000, -1000, 843, 847, 650, 823, 748, + -1000, 5873, 52, 9287, 10182, 5162, -1000, -1000, 266, 10848, + 78, 10848, -151, 10626, 48, 48, 48, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 821, 849, -1000, -1000, -1000, -1000, -1000, -1000, 221, - 7416, 73, 106, 23, 10093, 104, 1119, 10535, -1000, 0, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -79, -83, 668, - -1000, -1000, -1000, -1000, -1000, 812, 818, 709, 804, 751, - -1000, 5803, 70, 8981, 9872, 5095, -1000, -1000, 219, 10535, - 100, 10535, -130, 10314, 62, 62, 62, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -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,23 +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, 60, 10848, -1000, 10848, 44, 542, 44, 44, 44, + 10848, -1000, 120, -1000, -1000, -1000, -1000, 10848, 533, 782, + 40, 3162, 3162, 3162, 3162, -2, 3162, -73, 703, 858, + -1000, -1000, -1000, -1000, -1000, 3162, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 441, 791, + 6587, 6587, 849, -1000, 637, -1000, -1000, -1000, 769, -1000, + -1000, 253, 861, -1000, 7493, 119, -1000, 6587, 1382, 645, + -1000, -1000, 645, -1000, -1000, 99, -1000, -1000, 7043, 7043, + 7043, 7043, 7043, 7043, 7043, 7043, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 645, -1000, 6350, 645, 645, 645, 645, 645, 645, 645, + 645, 6587, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 9960, 590, 644, -1000, -1000, + -1000, 820, 8393, 9065, 10848, 576, -1000, 629, 4912, -97, + -1000, -1000, -1000, 184, 8843, -1000, -1000, -1000, 779, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 102, 10535, -1000, 10535, 60, 557, 60, 60, 60, 10535, - -1000, 144, -1000, -1000, -1000, -1000, 10535, 554, 777, 66, - 3103, 3103, 3103, 3103, 8, 3103, -62, 712, 833, -1000, - -1000, -1000, -1000, 3103, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 454, 786, 6514, 6514, - 821, -1000, 668, -1000, -1000, -1000, 774, -1000, -1000, 334, - 836, -1000, 2111, 140, -1000, 6514, 1503, 662, -1000, -1000, - 662, -1000, -1000, 119, -1000, -1000, 6968, 6968, 6968, 6968, - 6968, 6968, 6968, 6968, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 662, -1000, - 6278, 662, 662, 662, 662, 662, 662, 662, 662, 6514, - 662, 662, 662, 662, 662, 662, 662, 662, 662, 662, - 662, 662, 662, 9651, 672, 707, -1000, -1000, -1000, 801, - 8091, 8760, 10535, 570, -1000, 654, 4846, -107, -1000, -1000, - -1000, 214, 8539, -1000, -1000, -1000, 776, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1805,121 +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, + -1000, -1000, -1000, 541, 10848, -1000, 1934, -1000, 528, 3162, + 55, 670, 527, 205, 518, 10848, 10848, 3162, 49, 10848, + 818, 701, 10848, 515, 510, -1000, 4662, -1000, 3162, 3162, + 3162, 3162, 3162, 3162, 3162, 3162, -1000, -1000, -1000, -1000, + -1000, -1000, 3162, 3162, -1000, 860, 225, -1000, -1000, 10848, + 6587, -1000, -1000, -1000, -1000, -1000, -1000, 871, 146, 483, + 117, 647, -1000, 265, 843, 441, 748, 8615, 676, -1000, + -1000, 10848, -1000, 6587, 6587, 358, -1000, 9731, -1000, -1000, + 3662, 160, 7043, 369, 289, 7043, 7043, 7043, 7043, 7043, + 7043, 7043, 7043, 7043, 7043, 7043, 7043, 7043, 7043, 7043, + 382, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 506, + -1000, 637, 706, 706, 128, 128, 128, 128, 128, 128, + 128, 7271, 5399, 441, 526, 183, 6350, 5873, 5873, 6587, + 6587, 11070, 11070, 5873, 827, 197, 183, 11070, -1000, 441, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5873, 5873, 5873, + 5873, 20, 10848, -1000, 11070, 9287, 9287, 9287, 9287, 9287, + -1000, 739, 738, -1000, 736, 729, 717, 10848, -1000, 514, + 8393, 121, 645, -1000, 9509, -1000, -1000, 20, 577, 9287, + 10848, -1000, -1000, 4412, 629, -97, 622, -1000, -113, -111, + 6110, 127, -1000, -1000, -1000, -1000, 2912, 263, 556, 329, + -67, -1000, -1000, -1000, 652, -1000, 652, 652, 652, 652, + -38, -38, -38, -38, -1000, -1000, -1000, -1000, -1000, 668, + 667, -1000, 652, 652, 652, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 552, 10535, -1000, 2282, -1000, 549, 3103, 77, 673, - 547, 243, 528, 10535, 10535, 3103, 67, 10535, 799, 710, - 10535, 527, 526, -1000, 4597, -1000, 3103, 3103, 3103, 3103, - 3103, 3103, 3103, 3103, -1000, -1000, -1000, -1000, -1000, -1000, - 3103, 3103, -1000, 835, 292, -1000, -1000, 10535, 6514, -1000, - -1000, -1000, -1000, -1000, -1000, 844, 176, 384, 130, 659, - -1000, 355, 812, 454, 751, 8312, 725, -1000, -1000, 10535, - -1000, 6514, 6514, 349, -1000, 9423, -1000, -1000, 3601, 190, - 6968, 376, 307, 6968, 6968, 6968, 6968, 6968, 6968, 6968, - 6968, 6968, 6968, 6968, 6968, 6968, 6968, 6968, 385, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 516, -1000, 668, - 475, 475, 155, 155, 155, 155, 155, 155, 155, 7195, - 5331, 454, 524, 343, 6278, 5803, 5803, 6514, 6514, 10756, - 10756, 5803, 807, 225, 343, 10756, -1000, 454, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 5803, 5803, 5803, 5803, 34, - 10535, -1000, 10756, 8981, 8981, 8981, 8981, 8981, -1000, 740, - 739, -1000, 724, 723, 745, 10535, -1000, 507, 8091, 167, - 662, -1000, 9202, -1000, -1000, 34, 584, 8981, 10535, -1000, - -1000, 4348, 654, -107, 652, -1000, -98, -92, 6039, 150, - -1000, -1000, -1000, -1000, 2854, 278, 580, 356, -68, -1000, - -1000, -1000, 669, -1000, 669, 669, 669, 669, -28, -28, - -28, -28, -1000, -1000, -1000, -1000, -1000, 692, 691, -1000, - 669, 669, 669, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 689, - 689, 689, 670, 670, 701, -1000, 10535, -162, 501, 3103, - 798, 3103, -1000, 92, -1000, 10535, -1000, -1000, 10535, 3103, + -1000, 666, 666, 666, 653, 653, 671, -1000, 10848, -168, + 505, 3162, 815, 3162, -1000, 80, -1000, 10848, -1000, -1000, + 10848, 3162, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 10848, 235, 10848, + 10848, -1000, 183, -1000, 760, 6587, 6587, 4162, 6587, -1000, + -1000, -1000, 791, -1000, 827, 848, -1000, 773, 772, 5873, + -1000, -1000, 160, 304, -1000, -1000, 391, -1000, -1000, -1000, + -1000, 116, 645, -1000, 1619, -1000, -1000, -1000, -1000, 369, + 7043, 7043, 7043, 318, 1619, 1738, 1528, 1399, 128, 446, + 446, 129, 129, 129, 129, 129, 426, 426, -1000, -1000, + -1000, 441, -1000, -1000, -1000, 441, 5873, 625, -1000, -1000, + 6587, -1000, 441, 501, 501, 334, 311, 628, -1000, 110, + 613, 501, 5873, 324, -1000, 6587, 441, -1000, 501, 441, + 501, 501, 568, 645, -1000, 611, -1000, 178, 644, 665, + 700, 751, -1000, -1000, -1000, -1000, 737, -1000, 728, -1000, + -1000, -1000, -1000, -1000, 71, 70, 66, 10626, -1000, 856, + 9287, 604, -1000, -1000, 622, -97, -119, -1000, -1000, -1000, + 183, -1000, 389, 620, 2662, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 662, 496, -1000, 806, 181, 187, 494, 805, + -1000, -1000, -1000, 784, -1000, 234, -76, -1000, -1000, 372, + -38, -38, -1000, -1000, 127, 778, 127, 127, 127, 403, + 403, -1000, -1000, -1000, -1000, 335, -1000, -1000, -1000, 317, + -1000, 699, 10626, 3162, -1000, 3912, -1000, -1000, -1000, -1000, + -1000, -1000, 230, 166, 186, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 17, -1000, 3162, -1000, + 225, -1000, 398, 6587, -1000, -1000, 752, 183, 183, 108, + -1000, -1000, 10848, -1000, -1000, -1000, -1000, 597, -1000, -1000, + -1000, 3412, 5873, -1000, 318, 1619, 1638, -1000, 7043, 7043, + -1000, -1000, 501, 5873, 183, -1000, -1000, -1000, 47, 382, + 47, 7043, 7043, 4162, 7043, 7043, -161, 595, 189, -1000, + 6587, 415, -1000, -1000, -1000, -1000, -1000, 684, 11070, 645, + -1000, 8165, 10626, 849, 11070, 6587, 6587, -1000, -1000, 6587, + 661, -1000, 6587, -1000, -1000, -1000, 645, 645, 645, 456, + -1000, 849, 604, -1000, -1000, -1000, -131, -116, -1000, -1000, + -1000, 2912, -1000, 2912, 10626, 36, -1000, 476, 464, -1000, + -1000, 658, 674, 39, -1000, -1000, -1000, 547, 127, 127, + -1000, 200, -1000, -1000, -1000, 484, -1000, 480, 618, 462, + 10848, -1000, -1000, 616, -1000, 175, -1000, -1000, 10626, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 10535, 321, 10535, 10535, -1000, - 343, -1000, 755, 6514, 6514, 4099, 6514, -1000, -1000, -1000, - 786, -1000, 807, 819, -1000, 766, 763, 5803, -1000, -1000, - 190, 233, -1000, -1000, 423, -1000, -1000, -1000, -1000, 129, - 662, -1000, 1581, -1000, -1000, -1000, -1000, 376, 6968, 6968, - 6968, 72, 1581, 1566, 589, 1657, 155, 147, 147, 160, - 160, 160, 160, 160, 228, 228, -1000, -1000, -1000, 454, - -1000, -1000, -1000, 454, 5803, 653, -1000, -1000, 6514, -1000, - 454, 505, 505, 332, 269, 658, -1000, 128, 648, 505, - 5803, 265, -1000, 6514, 454, -1000, 505, 454, 505, 505, - 627, 662, -1000, 639, -1000, 207, 707, 688, 708, 895, - -1000, -1000, -1000, -1000, 730, -1000, 727, -1000, -1000, -1000, - -1000, -1000, 99, 97, 88, 10314, -1000, 831, 8981, 622, - -1000, -1000, 652, -107, -111, -1000, -1000, -1000, 343, -1000, - 482, 650, 2605, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 684, 469, -1000, 790, 192, 185, 444, 785, -1000, -1000, - -1000, 775, -1000, 252, -72, -1000, -1000, 373, -28, -28, - -1000, -1000, 150, 773, 150, 150, 150, 408, 408, -1000, - -1000, -1000, -1000, 372, -1000, -1000, -1000, 365, -1000, 706, - 10314, 3103, -1000, 3850, -1000, -1000, -1000, -1000, -1000, -1000, - 437, 262, 177, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 32, -1000, 3103, -1000, 292, -1000, - 405, 6514, -1000, -1000, 749, 343, 343, 125, -1000, -1000, - 10535, -1000, -1000, -1000, -1000, 642, -1000, -1000, -1000, 3352, - 5803, -1000, 72, 1581, 1460, -1000, 6968, 6968, -1000, -1000, - 505, 5803, 343, -1000, -1000, -1000, 53, 385, 53, 6968, - 6968, 4099, 6968, 6968, -155, 645, 203, -1000, 6514, 208, - -1000, -1000, -1000, -1000, -1000, 705, 10756, 662, -1000, 7864, - 10314, 821, 10756, 6514, 6514, -1000, -1000, 6514, 682, -1000, - 6514, -1000, -1000, -1000, 662, 662, 662, 489, -1000, 821, - 622, -1000, -1000, -1000, -101, -108, -1000, -1000, 2854, -1000, - 2854, 10314, 50, -1000, 432, 416, -1000, -1000, 671, 690, - 68, -1000, -1000, -1000, 571, 150, 150, -1000, 202, -1000, - -1000, -1000, 498, -1000, 496, 623, 494, 10535, -1000, -1000, - 620, -1000, 206, -1000, -1000, 10314, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 10314, 10535, - -1000, -1000, -1000, -1000, -1000, 10314, -1000, 321, -1000, 343, - -1000, 3850, -1000, 831, 8981, -1000, -1000, 454, -1000, 6968, - 1581, 1581, -1000, -1000, 454, 669, 669, -1000, 669, 670, - -1000, 669, -9, 669, -10, 454, 454, 1393, 1419, -1000, - 1279, 382, 662, -139, -1000, 343, 6514, -1000, 787, 569, - 613, -1000, -1000, 5567, 454, 491, 123, 489, 812, -1000, - 343, 343, 343, 10314, 343, 10314, 10314, 10314, 7637, 10314, - 812, -1000, -1000, -1000, -1000, 2605, -1000, 476, -1000, 669, - -1000, -1000, -1000, 10314, -54, 841, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -28, 404, -28, - 361, -1000, 352, 3103, 3850, 2854, -1000, 666, -1000, -1000, - -1000, -1000, 794, -1000, 829, 616, -1000, 1581, -1000, -1000, - 94, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 6968, 6968, -1000, 6968, 6968, 6968, 454, 401, 343, 784, - -1000, 662, -1000, -1000, 667, 10314, 10314, -1000, -1000, 468, - -1000, 457, 457, 457, 167, -1000, -1000, 127, 10314, -1000, - 453, 157, -1000, -119, 150, -1000, 150, 561, 560, -1000, - -1000, -1000, 10314, 662, 826, 816, -1000, -1000, 1367, 1367, - 1367, 1367, 2, -1000, -1000, 840, -1000, 662, -1000, 668, - 118, -1000, 10314, -1000, -1000, -1000, -1000, -1000, 127, -1000, - 413, 201, 400, -1000, 47, 270, 783, -1000, 780, -1000, - -1000, -1000, -1000, -1000, 451, 31, -1000, 6514, 6514, -1000, - -1000, -1000, -1000, 454, 41, -170, 10756, 613, 454, 10314, - -1000, -1000, -1000, 283, -1000, -1000, 10535, -1000, 387, -1000, - -1000, 673, 449, -1000, 10314, 343, 597, -1000, 744, -160, - -173, 585, -1000, -1000, -1000, 664, -1000, -162, -1000, 31, - 760, -1000, 728, -1000, 10314, -1000, -1000, 16, -168, 442, - 11, -171, -1000, 662, -175, 6741, -1000, 1367, 454, -1000, - -1000, + -1000, 10626, 10848, -1000, -1000, -1000, -1000, -1000, 10626, -1000, + 235, -1000, 183, -1000, 3912, -1000, 856, 9287, -1000, -1000, + 441, -1000, 7043, 1619, 1619, -1000, -1000, 441, 652, 652, + -1000, 652, 653, -1000, 652, -18, 652, -20, 441, 441, + 1245, 1597, -1000, 379, 1552, 645, -158, -1000, 183, 6587, + -1000, 792, 566, 587, -1000, -1000, 5636, 441, 460, 106, + 456, 843, -1000, 183, 183, 183, 10626, 183, 10626, 10626, + 10626, 7937, 10626, 843, -1000, -1000, -1000, -1000, 2662, -1000, + 454, -1000, 652, -1000, -1000, -1000, 10626, -63, 867, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -38, 383, -38, 296, -1000, 275, 3162, 3912, 2912, -1000, + 651, -1000, -1000, -1000, -1000, 810, -1000, 853, 589, -1000, + 1619, -1000, -1000, 84, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 7043, 7043, -1000, 7043, 7043, 7043, 441, + 370, 183, 799, -1000, 645, -1000, -1000, 601, 10626, 10626, + -1000, -1000, 451, -1000, 449, 449, 449, 121, -1000, -1000, + 114, 10626, -1000, 440, 148, -1000, -139, 127, -1000, 127, + 502, 457, -1000, -1000, -1000, 10626, 645, 851, 846, -1000, + -1000, 1345, 1345, 1345, 1345, 248, -1000, -1000, 864, -1000, + 645, -1000, 637, 90, -1000, 10626, -1000, -1000, -1000, -1000, + -1000, 114, -1000, 427, 169, 325, -1000, 34, 246, 798, + -1000, 795, -1000, -1000, -1000, -1000, -1000, 435, 15, -1000, + 6587, 6587, -1000, -1000, -1000, -1000, 441, 37, -171, 11070, + 587, 441, 10626, -1000, -1000, -1000, 262, -1000, -1000, 10848, + -1000, 267, -1000, -1000, 670, 413, -1000, 10626, 183, 582, + -1000, 747, -166, -174, 559, -1000, -1000, -1000, 649, -1000, + -168, -1000, 15, 768, -1000, 743, -1000, 10626, -1000, -1000, + 11, -169, 410, 5, -172, -1000, 645, -175, 6815, -1000, + 1345, 441, -1000, -1000, } var yyPgo = [...]int{ - 0, 1133, 60, 469, 1127, 1115, 1113, 1111, 1108, 1107, - 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1097, 1095, - 1094, 1092, 1091, 1089, 113, 1085, 1084, 1082, 56, 1080, - 63, 1076, 1075, 22, 233, 28, 25, 935, 1073, 12, - 58, 53, 1072, 41, 1070, 1069, 73, 1067, 62, 1066, - 1061, 522, 1057, 1051, 14, 19, 1048, 1046, 1045, 1039, - 69, 471, 1038, 1031, 1018, 1017, 1015, 1011, 46, 3, - 7, 23, 10, 1009, 466, 40, 1006, 45, 1005, 1004, - 1003, 997, 91, 969, 37, 966, 16, 48, 965, 13, - 54, 24, 9, 6, 71, 51, 964, 20, 52, 36, - 962, 961, 437, 958, 954, 27, 953, 21, 150, 381, - 952, 950, 946, 942, 42, 0, 572, 194, 59, 934, - 933, 932, 1436, 57, 55, 17, 931, 39, 416, 44, - 928, 927, 47, 926, 925, 924, 923, 917, 916, 915, - 277, 914, 913, 912, 32, 43, 911, 901, 49, 18, - 899, 897, 896, 29, 50, 894, 893, 34, 890, 888, - 887, 885, 883, 33, 15, 876, 8, 875, 5, 874, - 26, 873, 1, 872, 11, 871, 2, 862, 4, 30, - 861, 857, 67, 626, 856, 855, 78, + 0, 1078, 18, 483, 1077, 1072, 1071, 1070, 1069, 1066, + 1064, 1062, 1061, 1060, 1058, 1057, 1056, 1055, 1054, 1051, + 1050, 1049, 1048, 1047, 91, 1046, 1045, 1043, 58, 1042, + 63, 1041, 1040, 33, 57, 46, 34, 1278, 1038, 26, + 62, 56, 1036, 48, 1034, 1028, 71, 1027, 53, 1026, + 1019, 94, 1016, 1015, 11, 17, 1013, 1012, 1011, 1009, + 60, 592, 1007, 1006, 1003, 997, 995, 994, 44, 3, + 7, 16, 20, 993, 85, 8, 992, 45, 989, 988, + 987, 985, 40, 984, 49, 981, 15, 47, 975, 13, + 55, 28, 21, 5, 69, 51, 971, 25, 54, 43, + 967, 966, 404, 965, 964, 36, 963, 24, 140, 331, + 962, 960, 955, 954, 42, 0, 754, 300, 61, 953, + 952, 951, 1490, 67, 59, 22, 950, 77, 711, 32, + 949, 948, 29, 946, 945, 944, 943, 942, 941, 940, + 187, 939, 936, 935, 76, 10, 934, 933, 50, 30, + 930, 929, 928, 39, 52, 926, 925, 41, 924, 922, + 921, 920, 919, 23, 14, 913, 9, 912, 6, 911, + 27, 905, 1, 903, 12, 902, 2, 901, 4, 37, + 892, 890, 444, 301, 887, 885, 73, } var yyR1 = [...]int{ @@ -1939,51 +1973,51 @@ var yyR1 = [...]int{ 139, 139, 153, 153, 140, 140, 148, 148, 149, 149, 149, 146, 146, 147, 147, 150, 150, 150, 141, 141, 141, 141, 141, 141, 141, 143, 143, 151, 151, 144, - 144, 144, 145, 145, 152, 152, 152, 152, 152, 142, - 142, 155, 155, 169, 169, 168, 168, 168, 158, 158, - 165, 165, 165, 165, 165, 157, 157, 167, 167, 166, - 156, 156, 170, 162, 162, 162, 163, 163, 163, 164, - 164, 164, 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, + 144, 144, 145, 145, 145, 152, 152, 152, 152, 152, + 142, 142, 155, 155, 169, 169, 168, 168, 168, 158, + 158, 165, 165, 165, 165, 165, 157, 157, 167, 167, + 166, 156, 156, 170, 162, 162, 162, 163, 163, 163, + 164, 164, 164, 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, - 18, 18, 106, 106, 104, 104, 105, 105, 105, 107, - 107, 107, 131, 131, 131, 19, 19, 21, 21, 22, - 23, 20, 20, 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, - 119, 119, 119, 118, 118, 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, - 126, 126, 125, 125, 125, 124, 124, 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, 33, 33, 68, 68, 68, 74, 69, 69, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 18, 18, 18, 18, 106, 106, 104, 104, 105, 105, + 105, 107, 107, 107, 131, 131, 131, 19, 19, 21, + 21, 22, 23, 20, 20, 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, 119, 119, 119, 118, 118, 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, 126, 126, 125, 125, 125, 124, 124, 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, 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, 186, 186, 66, - 66, 66, 66, 31, 31, 31, 31, 31, 129, 129, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 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, 121, 121, 121, 101, 101, 108, - 108, 109, 109, 102, 102, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 111, 111, 111, 112, 112, - 113, 113, 113, 120, 120, 116, 116, 117, 117, 122, - 122, 123, 123, 114, 114, 114, 114, 114, 114, 114, + 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, 186, + 186, 66, 66, 66, 66, 31, 31, 31, 31, 31, + 129, 129, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 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, 121, 121, 121, 101, + 101, 108, 108, 109, 109, 102, 102, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, + 112, 112, 113, 113, 113, 120, 120, 116, 116, 117, + 117, 122, 122, 123, 123, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, @@ -1992,7 +2026,7 @@ var yyR1 = [...]int{ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, + 114, 114, 114, 114, 114, 114, 114, 114, 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, @@ -2002,8 +2036,8 @@ 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, 115, 115, 182, 183, 127, - 128, 128, 128, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 182, 183, 127, 128, 128, 128, } var yyR2 = [...]int{ @@ -2023,50 +2057,50 @@ var yyR2 = [...]int{ 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, - 3, 1, 10, 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, - 7, 5, 4, 2, 2, 4, 4, 2, 2, 2, - 2, 3, 1, 1, 0, 1, 0, 2, 2, 0, - 2, 2, 0, 1, 1, 2, 1, 1, 2, 1, - 1, 2, 2, 2, 2, 2, 3, 3, 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, 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, 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, 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, + 3, 3, 0, 2, 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, 3, 1, 10, 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, 7, 5, 4, 2, 2, 4, 4, 2, 2, + 2, 2, 2, 3, 1, 1, 0, 1, 0, 2, + 2, 0, 2, 2, 0, 1, 1, 2, 1, 1, + 2, 1, 1, 2, 2, 2, 2, 2, 3, 3, + 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, 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, 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, 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, @@ -2086,8 +2120,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, 1, 1, 1, 0, - 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -2096,171 +2130,171 @@ var yyChk = [...]int{ -20, -3, -4, 6, 7, -27, 9, 10, 30, -16, 114, 115, 117, 116, 143, 118, 136, 50, 155, 156, 158, 159, 25, 137, 138, 141, 142, 31, 32, -182, - 8, 239, 54, -181, 254, -82, 15, -26, 5, -24, + 8, 240, 54, -181, 255, -82, 15, -26, 5, -24, -185, -24, -24, -24, -24, -24, -159, -161, 54, 89, - -113, 123, 71, 151, 231, 120, 121, 127, -116, 57, - -115, 247, 155, 166, 160, 187, 179, 177, 180, 218, - 207, 216, 66, 158, 227, 139, 175, 171, 169, 27, - 192, 252, 170, 133, 132, 193, 197, 219, 164, 165, - 221, 191, 135, 33, 249, 35, 147, 222, 195, 190, - 186, 189, 163, 185, 39, 199, 198, 200, 217, 182, - 172, 18, 225, 142, 145, 194, 196, 128, 149, 251, - 223, 168, 134, 146, 141, 226, 159, 220, 229, 38, + -113, 123, 71, 151, 232, 120, 121, 127, -116, 57, + -115, 248, 155, 166, 160, 187, 179, 177, 180, 219, + 207, 217, 66, 158, 228, 139, 175, 171, 169, 27, + 192, 253, 170, 133, 132, 193, 197, 220, 164, 165, + 222, 191, 135, 33, 250, 35, 147, 223, 195, 190, + 186, 189, 163, 185, 39, 199, 198, 200, 218, 182, + 172, 18, 226, 142, 145, 194, 196, 128, 149, 252, + 224, 168, 134, 146, 141, 227, 159, 221, 230, 38, 204, 162, 131, 156, 153, 183, 148, 173, 174, 188, - 161, 184, 157, 150, 143, 228, 205, 253, 181, 178, - 154, 152, 210, 211, 212, 213, 250, 224, 176, 206, - -102, 123, 125, 121, 121, 122, 123, 231, 120, 121, - -51, -122, 57, -115, 123, 151, 121, 107, 180, 114, - 208, 122, 33, 149, -131, 121, -104, 152, 207, 210, - 211, 212, 213, 57, 220, 219, 214, -122, 157, -127, - -127, -127, -127, -127, 209, 209, -2, -86, 17, 16, - -5, -3, -182, 6, 20, 21, -30, 40, 41, -25, - -36, 98, -37, -122, -56, 73, -61, 29, 57, -115, - 23, -60, -57, -75, -73, -74, 107, 108, 109, 96, - 97, 104, 74, 110, -65, -63, -64, -66, 59, 58, - 67, 60, 61, 62, 63, 68, 69, 70, -116, -71, - -182, 44, 45, 240, 241, 242, 243, 246, 244, 76, - 34, 230, 238, 237, 236, 234, 235, 232, 233, 126, - 231, 102, 239, -102, -39, -40, -41, -42, -53, -74, - -182, -51, 11, -46, -51, -94, -130, 157, -98, 220, - 219, -117, -96, -116, -114, 218, 180, 217, 119, 72, - 22, 24, 202, 75, 107, 16, 76, 106, 240, 114, - 48, 232, 233, 230, 242, 243, 231, 208, 29, 10, - 25, 137, 21, 100, 116, 79, 80, 140, 23, 138, - 70, 19, 51, 11, 13, 14, 126, 125, 91, 122, - 46, 8, 110, 26, 88, 42, 28, 44, 89, 17, - 234, 235, 31, 246, 144, 102, 49, 36, 73, 68, - 52, 71, 15, 47, 90, 117, 239, 45, 120, 6, - 245, 30, 136, 43, 121, 209, 78, 124, 69, 5, - 127, 32, 9, 50, 53, 236, 237, 238, 34, 77, - 12, -160, 89, -154, 57, -51, 122, -51, 239, -116, - -109, 126, -109, -109, 121, -51, -51, -108, 126, 57, - -108, -108, -108, -51, 111, -51, 57, 30, 231, 57, - 149, 121, 150, 123, -128, -182, -117, -128, -128, -128, - 153, 154, -128, 216, -106, 209, 215, 52, 12, -128, - -127, -127, -183, 56, -87, 19, 31, -37, -122, -83, - -84, -37, -82, -2, -24, 36, -28, 21, 65, 11, - -119, 72, 71, 88, -118, 22, -116, 59, 111, -37, - -58, 91, 73, 89, 90, 75, 93, 92, 103, 96, - 97, 98, 99, 100, 101, 102, 94, 95, 106, 81, - 82, 83, 84, 85, 86, 87, -103, -182, -74, -182, - 112, 113, -61, -61, -61, -61, -61, -61, -61, -61, - -182, -2, -69, -37, -182, -182, -182, -182, -182, -182, - -182, -182, -182, -78, -37, -182, -186, -182, -186, -186, - -186, -186, -186, -186, -186, -182, -182, -182, -182, -52, - 26, -51, 30, 55, -47, -49, -48, -50, 42, 46, - 48, 43, 44, 45, 49, -126, 22, -39, -182, -125, - 145, -124, 22, -122, 59, -51, -46, -184, 55, 11, - 53, 55, -94, 157, -95, -99, 221, 223, 81, -121, - -116, 59, 29, 30, 56, 55, -51, -133, -136, -138, - -137, -139, -134, -135, 177, 178, 107, 181, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 30, 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, 57, -128, 123, -178, 53, 57, - 73, 57, -51, -51, -128, 124, -51, 23, 52, -51, - 57, 57, -123, -122, -114, -128, -128, -128, -128, -128, - -128, -128, -128, -128, -128, 11, -105, 11, 91, -51, - -37, 9, 91, 55, 18, 111, 55, -85, 24, 25, - -86, -183, -30, -62, -116, 60, 63, -29, 43, -51, - -37, -37, -67, 68, 73, 69, 70, -118, 98, -123, - -117, -114, -61, -68, -71, -74, 64, 91, 89, 90, - 75, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -129, 57, 59, 57, - -60, -60, -116, -35, 21, -34, -36, -183, 55, -183, - -2, -34, -34, -37, -37, -75, -116, -122, -75, -34, - -28, -76, -77, 77, -75, -183, -34, -35, -34, -34, - -90, 145, -51, -93, -97, -75, -40, -41, -41, -40, - -41, 42, 42, 42, 47, 42, 47, 42, -48, -122, - -183, -54, 50, 125, 51, -182, -124, -90, 53, -39, - -51, -98, -95, 55, 222, 224, 225, 52, -37, -145, - 106, -162, -163, -164, -117, 59, 60, -154, -155, -156, - -165, 130, -170, 128, 131, 127, -157, 133, 122, 28, - 56, -150, 68, 73, -146, 205, -140, 54, -140, -140, - -140, -140, -144, 180, -144, -144, -144, 54, 54, -140, - -140, -140, -148, 54, -148, -148, -149, 54, -149, -120, - 53, -51, -176, 250, -177, 57, -128, 23, -128, -110, - 119, 116, 117, -173, 115, 202, 180, 66, 29, 15, - 240, 145, 253, 57, 146, -51, -51, -128, -51, -107, - 89, 12, -122, -122, 38, -37, -37, -123, -84, -87, - -101, 19, 11, 34, 34, -34, 68, 69, 70, 111, - -182, -68, -61, -61, -61, -33, 140, 72, -183, -183, - -34, 55, -37, -183, -183, -183, 55, 53, 22, 55, - 11, 111, 55, 11, -183, -34, -79, -77, 79, -37, - -183, -183, -183, -183, -183, -59, 30, 34, -2, -182, - -182, -55, 55, 12, 81, -44, -43, 52, 53, -45, - 52, -43, 42, 42, 122, 122, 122, -91, -116, -55, - -39, -55, -99, -100, 226, 223, 229, 57, 55, -164, - 81, 54, 57, 28, -157, -157, 57, 57, 28, -141, - 29, 68, -147, 206, 60, -144, -144, -145, 30, -145, - -145, -145, -153, 59, -153, 60, 60, 52, -116, -128, - -175, -174, -117, -127, -179, 151, 129, 130, 133, 132, - 57, 122, 28, 128, 131, 145, 127, -179, 151, -111, - -112, 124, 22, 122, 28, 145, -128, -105, 59, -37, - 39, 111, -51, -38, 11, 98, -117, -35, -33, 72, - -61, -61, -183, -36, -132, 107, 177, 139, 175, 171, - 191, 182, 204, 173, 205, -129, -132, -61, -61, -117, - -61, -61, 247, -82, 80, -37, 78, -92, 52, -93, - -70, -72, -71, -182, -2, -88, -116, -91, -82, -97, - -37, -37, -37, 54, -37, -182, -182, -182, -183, 55, - -82, -55, 223, 227, 228, -163, -164, -167, -166, -116, - -170, 57, 57, 54, -143, 52, 59, 60, 61, 68, - 230, 67, 56, -145, -145, 57, 107, 56, 55, 56, - 55, 56, 55, -51, 55, 81, -127, -116, -127, -116, - -51, -127, -116, -107, -55, -39, -183, -61, -183, -140, - -140, -140, -149, -140, 165, -140, 165, -183, -183, -183, - 55, 19, -183, 55, 19, -182, -32, 245, -37, 27, - -92, 55, -183, -183, -183, 55, 111, -183, -86, -89, - -116, -89, -89, -89, -125, -116, -86, 56, 55, -140, - -89, -151, 202, 9, -144, 59, -144, 60, 60, -128, - -174, -164, 54, 26, -80, 13, -144, 57, -61, -61, - -61, -61, -61, -183, 59, 28, -72, 34, -2, -182, - -116, -116, 55, 56, -183, -183, -183, -54, -169, -168, - 53, 135, 66, -166, 56, -152, 128, 28, 127, 230, - -145, -145, 56, 56, -89, -182, -81, 14, 16, -183, - -183, -183, -183, -31, 91, 250, 9, -70, -2, 111, - -116, -168, 57, -158, 81, 59, 134, -142, 66, 28, - 28, 56, -171, -172, 145, -37, -69, -183, 248, 49, - 251, -93, -183, -116, 60, -51, 59, -178, -183, 55, - -116, 39, 249, 252, 54, -176, -172, 34, 39, -89, - 147, 250, 56, 148, 251, -182, 252, -61, 144, -183, - -183, + 161, 184, 157, 150, 143, 229, 205, 254, 181, 178, + 154, 152, 210, 211, 212, 213, 214, 251, 225, 176, + 206, -102, 123, 125, 121, 121, 122, 123, 232, 120, + 121, -51, -122, 57, -115, 123, 151, 121, 107, 180, + 114, 208, 122, 33, 149, -131, 121, -104, 152, 207, + 210, 211, 212, 214, 213, 57, 221, 220, 215, -122, + 157, -127, -127, -127, -127, -127, 209, 209, -2, -86, + 17, 16, -5, -3, -182, 6, 20, 21, -30, 40, + 41, -25, -36, 98, -37, -122, -56, 73, -61, 29, + 57, -115, 23, -60, -57, -75, -73, -74, 107, 108, + 109, 96, 97, 104, 74, 110, -65, -63, -64, -66, + 59, 58, 67, 60, 61, 62, 63, 68, 69, 70, + -116, -71, -182, 44, 45, 241, 242, 243, 244, 247, + 245, 76, 34, 231, 239, 238, 237, 235, 236, 233, + 234, 126, 232, 102, 240, -102, -39, -40, -41, -42, + -53, -74, -182, -51, 11, -46, -51, -94, -130, 157, + -98, 221, 220, -117, -96, -116, -114, 219, 180, 218, + 119, 72, 22, 24, 202, 75, 107, 16, 76, 106, + 241, 114, 48, 233, 234, 231, 243, 244, 232, 208, + 29, 10, 25, 137, 21, 100, 116, 79, 80, 140, + 23, 138, 70, 19, 51, 11, 13, 14, 126, 125, + 91, 122, 46, 8, 110, 26, 88, 42, 28, 44, + 89, 17, 235, 236, 31, 247, 144, 102, 49, 36, + 73, 68, 52, 71, 15, 47, 90, 117, 240, 45, + 120, 6, 246, 30, 136, 43, 121, 209, 78, 124, + 69, 5, 127, 32, 9, 50, 53, 237, 238, 239, + 34, 77, 12, -160, 89, -154, 57, -51, 122, -51, + 240, -116, -109, 126, -109, -109, 121, -51, -51, -108, + 126, 57, -108, -108, -108, -51, 111, -51, 57, 30, + 232, 57, 149, 121, 150, 123, -128, -182, -117, -128, + -128, -128, 153, 154, -128, 217, -106, 209, 216, 52, + 12, -128, -127, -127, -183, 56, -87, 19, 31, -37, + -122, -83, -84, -37, -82, -2, -24, 36, -28, 21, + 65, 11, -119, 72, 71, 88, -118, 22, -116, 59, + 111, -37, -58, 91, 73, 89, 90, 75, 93, 92, + 103, 96, 97, 98, 99, 100, 101, 102, 94, 95, + 106, 81, 82, 83, 84, 85, 86, 87, -103, -182, + -74, -182, 112, 113, -61, -61, -61, -61, -61, -61, + -61, -61, -182, -2, -69, -37, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -78, -37, -182, -186, -182, + -186, -186, -186, -186, -186, -186, -186, -182, -182, -182, + -182, -52, 26, -51, 30, 55, -47, -49, -48, -50, + 42, 46, 48, 43, 44, 45, 49, -126, 22, -39, + -182, -125, 145, -124, 22, -122, 59, -51, -46, -184, + 55, 11, 53, 55, -94, 157, -95, -99, 222, 224, + 81, -121, -116, 59, 29, 30, 56, 55, -51, -133, + -136, -138, -137, -139, -134, -135, 177, 178, 107, 181, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 30, 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, 57, -128, 123, -178, + 53, 57, 73, 57, -51, -51, -128, 124, -51, 23, + 52, -51, 57, 57, -123, -122, -114, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, 11, -105, 11, + 91, -51, -37, 9, 91, 55, 18, 111, 55, -85, + 24, 25, -86, -183, -30, -62, -116, 60, 63, -29, + 43, -51, -37, -37, -67, 68, 73, 69, 70, -118, + 98, -123, -117, -114, -61, -68, -71, -74, 64, 91, + 89, 90, 75, -61, -61, -61, -61, -61, -61, -61, + -61, -61, -61, -61, -61, -61, -61, -61, -129, 57, + 59, 57, -60, -60, -116, -35, 21, -34, -36, -183, + 55, -183, -2, -34, -34, -37, -37, -75, -116, -122, + -75, -34, -28, -76, -77, 77, -75, -183, -34, -35, + -34, -34, -90, 145, -51, -93, -97, -75, -40, -41, + -41, -40, -41, 42, 42, 42, 47, 42, 47, 42, + -48, -122, -183, -54, 50, 125, 51, -182, -124, -90, + 53, -39, -51, -98, -95, 55, 223, 225, 226, 52, + -37, -145, 106, -162, -163, -164, -117, 59, 60, -154, + -155, -156, -165, 130, -170, 128, 131, 127, -157, 133, + 122, 28, 56, -150, 68, 73, -146, 205, -140, 54, + -140, -140, -140, -140, -144, 180, -144, -144, -144, 54, + 54, -140, -140, -140, -148, 54, -148, -148, -149, 54, + -149, -120, 53, -51, -176, 251, -177, 57, -128, 23, + -128, -110, 119, 116, 117, -173, 115, 202, 180, 66, + 29, 15, 241, 145, 254, 57, 146, -51, -51, -128, + -51, -107, 89, 12, -122, -122, 38, -37, -37, -123, + -84, -87, -101, 19, 11, 34, 34, -34, 68, 69, + 70, 111, -182, -68, -61, -61, -61, -33, 140, 72, + -183, -183, -34, 55, -37, -183, -183, -183, 55, 53, + 22, 55, 11, 111, 55, 11, -183, -34, -79, -77, + 79, -37, -183, -183, -183, -183, -183, -59, 30, 34, + -2, -182, -182, -55, 55, 12, 81, -44, -43, 52, + 53, -45, 52, -43, 42, 42, 122, 122, 122, -91, + -116, -55, -39, -55, -99, -100, 227, 224, 230, 57, + 59, 55, -164, 81, 54, 57, 28, -157, -157, 57, + 57, 28, -141, 29, 68, -147, 206, 60, -144, -144, + -145, 30, -145, -145, -145, -153, 59, -153, 60, 60, + 52, -116, -128, -175, -174, -117, -127, -179, 151, 129, + 130, 133, 132, 57, 122, 28, 128, 131, 145, 127, + -179, 151, -111, -112, 124, 22, 122, 28, 145, -128, + -105, 59, -37, 39, 111, -51, -38, 11, 98, -117, + -35, -33, 72, -61, -61, -183, -36, -132, 107, 177, + 139, 175, 171, 191, 182, 204, 173, 205, -129, -132, + -61, -61, -117, -61, -61, 248, -82, 80, -37, 78, + -92, 52, -93, -70, -72, -71, -182, -2, -88, -116, + -91, -82, -97, -37, -37, -37, 54, -37, -182, -182, + -182, -183, 55, -82, -55, 224, 228, 229, -163, -164, + -167, -166, -116, -170, 57, 57, 54, -143, 52, 59, + 60, 61, 68, 231, 67, 56, -145, -145, 57, 107, + 56, 55, 56, 55, 56, 55, -51, 55, 81, -127, + -116, -127, -116, -51, -127, -116, -107, -55, -39, -183, + -61, -183, -140, -140, -140, -149, -140, 165, -140, 165, + -183, -183, -183, 55, 19, -183, 55, 19, -182, -32, + 246, -37, 27, -92, 55, -183, -183, -183, 55, 111, + -183, -86, -89, -116, -89, -89, -89, -125, -116, -86, + 56, 55, -140, -89, -151, 202, 9, -144, 59, -144, + 60, 60, -128, -174, -164, 54, 26, -80, 13, -144, + 57, -61, -61, -61, -61, -61, -183, 59, 28, -72, + 34, -2, -182, -116, -116, 55, 56, -183, -183, -183, + -54, -169, -168, 53, 135, 66, -166, 56, -152, 128, + 28, 127, 231, -145, -145, 56, 56, -89, -182, -81, + 14, 16, -183, -183, -183, -183, -31, 91, 251, 9, + -70, -2, 111, -116, -168, 57, -158, 81, 59, 134, + -142, 66, 28, 28, 56, -171, -172, 145, -37, -69, + -183, 249, 49, 252, -93, -183, -116, 60, -51, 59, + -178, -183, 55, -116, 39, 250, 253, 54, -176, -172, + 34, 39, -89, 147, 251, 56, 148, 252, -182, 253, + -61, 144, -183, -183, } var yyDef = [...]int{ 22, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 520, 0, 288, 288, 288, 288, 288, 288, 0, - 590, 573, 0, 0, 0, 0, -2, 276, 277, 0, - 279, 280, 799, 799, 799, 799, 799, 0, 0, 0, - 34, 35, 797, 1, 3, 528, 0, 0, 292, 295, - 290, 0, 573, 0, 0, 0, 61, 62, 0, 0, - 0, 786, 0, 787, 571, 571, 571, 591, 592, 595, - 596, 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, 783, 784, - 785, 788, 789, 790, 791, 792, 793, 794, 795, 796, - 0, 0, 574, 0, 569, 0, 569, 569, 569, 0, - 234, 359, 599, 600, 786, 787, 0, 0, 0, 0, - 800, 800, 800, 800, 0, 800, 0, 253, 254, 257, - 258, 259, 260, 800, 273, 274, 265, 275, 278, 281, - 282, 283, 284, 285, 799, 799, 28, 532, 0, 0, - 520, 30, 0, 288, 293, 294, 298, 296, 297, 289, - 0, 306, 310, 0, 367, 0, 372, 374, -2, -2, - 0, 409, 410, 411, 412, 413, 0, 0, 0, 0, - 0, 0, 0, 0, 437, 438, 439, 440, 505, 506, - 507, 508, 509, 510, 511, 512, 376, 377, 502, 552, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, - 0, 467, 467, 467, 467, 467, 467, 467, 467, 0, - 0, 0, 0, 0, 0, 317, 319, 320, 321, 340, - 0, 342, 0, 0, 42, 46, 0, 777, 556, -2, - -2, 0, 0, 597, 598, -2, 703, -2, 603, 604, + 21, 522, 0, 290, 290, 290, 290, 290, 290, 0, + 592, 575, 0, 0, 0, 0, -2, 278, 279, 0, + 281, 282, 802, 802, 802, 802, 802, 0, 0, 0, + 34, 35, 800, 1, 3, 530, 0, 0, 294, 297, + 292, 0, 575, 0, 0, 0, 61, 62, 0, 0, + 0, 788, 0, 789, 573, 573, 573, 593, 594, 597, + 598, 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, 784, 785, 786, + 787, 790, 791, 792, 793, 794, 795, 796, 797, 798, + 799, 0, 0, 576, 0, 571, 0, 571, 571, 571, + 0, 235, 361, 601, 602, 788, 789, 0, 0, 0, + 0, 803, 803, 803, 803, 0, 803, 0, 254, 255, + 258, 259, 260, 261, 262, 803, 275, 276, 267, 277, + 280, 283, 284, 285, 286, 287, 802, 802, 28, 534, + 0, 0, 522, 30, 0, 290, 295, 296, 300, 298, + 299, 291, 0, 308, 312, 0, 369, 0, 374, 376, + -2, -2, 0, 411, 412, 413, 414, 415, 0, 0, + 0, 0, 0, 0, 0, 0, 439, 440, 441, 442, + 507, 508, 509, 510, 511, 512, 513, 514, 378, 379, + 504, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 495, 0, 469, 469, 469, 469, 469, 469, 469, + 469, 0, 0, 0, 0, 0, 0, 319, 321, 322, + 323, 342, 0, 344, 0, 0, 42, 46, 0, 779, + 558, -2, -2, 0, 0, 599, 600, -2, 705, -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, @@ -2270,98 +2304,98 @@ var yyDef = [...]int{ 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, 0, 81, 0, 79, 0, 800, 0, 69, - 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, - 0, 0, 0, 233, 0, 235, 800, 800, 800, 800, - 800, 800, 800, 800, 244, 801, 802, 245, 246, 247, - 800, 800, 249, 0, 266, 262, 263, 0, 0, 261, - 286, 287, 29, 798, 23, 0, 0, 529, 0, 521, - 522, 525, 528, 28, 295, 0, 300, 299, 291, 0, - 307, 0, 0, 0, 311, 0, 313, 314, 0, 370, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, - 395, 396, 397, 398, 399, 400, 373, 0, 387, 0, - 0, 0, 429, 430, 431, 432, 433, 434, 435, 0, - 302, 28, 0, 407, 0, 0, 0, 0, 0, 0, - 0, 0, 298, 0, 494, 0, 459, 0, 460, 461, - 462, 463, 464, 465, 466, 0, 302, 0, 0, 44, - 0, 358, 0, 0, 0, 0, 0, 0, 347, 0, - 0, 350, 0, 0, 0, 0, 341, 0, 0, 361, - 749, 343, 0, 345, 346, -2, 0, 0, 0, 40, - 41, 0, 47, 777, 49, 50, 0, 0, 0, 162, - 564, 565, 566, 562, 193, 0, 0, 145, 141, 87, - 88, 89, 134, 91, 134, 134, 134, 134, 159, 159, - 159, 159, 117, 118, 119, 120, 121, 0, 0, 104, - 134, 134, 134, 108, 124, 125, 126, 127, 128, 129, - 130, 131, 92, 93, 94, 95, 96, 97, 98, 136, - 136, 136, 138, 138, 593, 64, 0, 72, 0, 800, - 0, 800, 77, 0, 209, 0, 228, 570, 0, 800, - 231, 232, 360, 601, 602, 236, 237, 238, 239, 240, - 241, 242, 243, 248, 252, 0, 269, 0, 0, 256, - 255, 533, 0, 0, 0, 0, 0, 524, 526, 527, - 532, 31, 298, 0, 513, 0, 0, 0, 301, 26, - 368, 369, 371, 388, 0, 390, 392, 312, 308, 0, - 503, -2, 378, 379, 403, 404, 405, 0, 0, 0, - 0, 401, 383, 0, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 428, 478, 479, 0, - 426, 427, 436, 0, 0, 303, 304, 406, 0, 551, - 28, 0, 0, 0, 0, 0, 502, 0, 0, 0, - 0, 500, 497, 0, 0, 468, 0, 0, 0, 0, - 0, 0, 357, 365, 553, 0, 318, 336, 338, 0, - 333, 348, 349, 351, 0, 353, 0, 355, 356, 322, - 323, 324, 0, 0, 0, 0, 344, 365, 0, 365, - 43, 557, 48, 0, 0, 53, 54, 558, 559, 560, - 0, 78, 194, 196, 199, 200, 201, 82, 83, 84, - 0, 0, 191, 0, 0, 0, 0, 0, 185, 186, - 80, 148, 146, 0, 143, 142, 90, 0, 159, 159, - 111, 112, 162, 0, 162, 162, 162, 0, 0, 105, - 106, 107, 99, 0, 100, 101, 102, 0, 103, 0, - 0, 800, 66, 0, 70, 71, 67, 572, 68, 799, - 0, 0, 585, 210, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 0, 227, 800, 230, 266, 251, - 0, 0, 267, 268, 0, 530, 531, 0, 523, 24, - 0, 567, 568, 514, 515, 315, 389, 391, 393, 0, - 302, 380, 401, 384, 0, 381, 0, 0, 375, 441, - 0, 0, 408, -2, 444, 445, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 520, 0, 498, 0, 0, - 458, 469, 470, 471, 472, 545, 0, 0, -2, 0, - 0, 520, 0, 0, 0, 330, 337, 0, 0, 331, - 0, 332, 352, 354, 0, 0, 0, 0, 328, 520, - 365, 39, 51, 52, 0, 0, 58, 163, 0, 197, - 0, 0, 0, 180, 0, 0, 183, 184, 0, 155, - 0, 147, 86, 144, 0, 162, 162, 113, 0, 114, - 115, 116, 0, 132, 0, 0, 0, 0, 594, 65, - 73, 74, 0, 202, 799, 0, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 799, 0, 0, - 799, 586, 587, 588, 589, 0, 229, 269, 270, 271, - 534, 0, 25, 365, 0, 309, 504, 0, 382, 0, - 402, 385, 442, 305, 0, 134, 134, 483, 134, 138, - 486, 134, 488, 134, 491, 0, 0, 0, 0, 503, - 0, 0, 0, 495, 457, 501, 0, 32, 0, 545, - 535, 547, 549, 0, 28, 0, 541, 0, 528, 554, - 366, 555, 334, 0, 339, 0, 0, 0, 342, 0, - 528, 38, 55, 56, 57, 195, 198, 0, 187, 134, - 190, 181, 182, 0, 157, 0, 149, 150, 151, 152, - 153, 154, 135, 109, 110, 160, 161, 159, 0, 159, - 0, 139, 0, 800, 0, 0, 203, 0, 204, 206, - 207, 208, 0, 250, 516, 316, 443, 386, 446, 480, - 159, 484, 485, 487, 489, 490, 492, 448, 447, 449, - 0, 0, 452, 0, 0, 0, 0, 0, 499, 0, - 33, 0, 550, -2, 0, 0, 0, 45, 36, 0, - 326, 0, 0, 0, 361, 329, 37, 172, 0, 189, - 0, 164, 158, 0, 162, 133, 162, 0, 0, 63, - 75, 76, 0, 0, 518, 0, 481, 482, 0, 0, - 0, 0, 473, 456, 496, 0, 548, 0, -2, 0, - 543, 542, 0, 335, 362, 363, 364, 325, 171, 173, - 0, 178, 0, 188, 0, 169, 0, 166, 168, 156, - 122, 123, 137, 140, 0, 0, 27, 0, 0, 450, - 451, 453, 454, 0, 0, 0, 0, 538, 28, 0, - 327, 174, 175, 0, 179, 177, 0, 85, 0, 165, - 167, 69, 0, 223, 0, 519, 517, 455, 0, 0, - 0, 546, -2, 544, 176, 0, 170, 72, 222, 0, - 0, 474, 0, 477, 0, 205, 224, 0, 475, 0, - 0, 0, 192, 0, 0, 0, 476, 0, 0, 225, - 226, + 695, 696, 697, 0, 0, 81, 0, 79, 0, 803, + 0, 69, 0, 0, 0, 0, 0, 803, 0, 0, + 0, 0, 0, 0, 0, 234, 0, 236, 803, 803, + 803, 803, 803, 803, 803, 803, 245, 804, 805, 246, + 247, 248, 803, 803, 250, 0, 268, 264, 265, 0, + 0, 263, 288, 289, 29, 801, 23, 0, 0, 531, + 0, 523, 524, 527, 530, 28, 297, 0, 302, 301, + 293, 0, 309, 0, 0, 0, 313, 0, 315, 316, + 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 396, 397, 398, 399, 400, 401, 402, 375, 0, + 389, 0, 0, 0, 431, 432, 433, 434, 435, 436, + 437, 0, 304, 28, 0, 409, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 0, 496, 0, 461, 0, + 462, 463, 464, 465, 466, 467, 468, 0, 304, 0, + 0, 44, 0, 360, 0, 0, 0, 0, 0, 0, + 349, 0, 0, 352, 0, 0, 0, 0, 343, 0, + 0, 363, 751, 345, 0, 347, 348, -2, 0, 0, + 0, 40, 41, 0, 47, 779, 49, 50, 0, 0, + 0, 162, 566, 567, 568, 564, 194, 0, 0, 145, + 141, 87, 88, 89, 134, 91, 134, 134, 134, 134, + 159, 159, 159, 159, 117, 118, 119, 120, 121, 0, + 0, 104, 134, 134, 134, 108, 124, 125, 126, 127, + 128, 129, 130, 131, 92, 93, 94, 95, 96, 97, + 98, 136, 136, 136, 138, 138, 595, 64, 0, 72, + 0, 803, 0, 803, 77, 0, 210, 0, 229, 572, + 0, 803, 232, 233, 362, 603, 604, 237, 238, 239, + 240, 241, 242, 243, 244, 249, 253, 0, 271, 0, + 0, 257, 256, 535, 0, 0, 0, 0, 0, 526, + 528, 529, 534, 31, 300, 0, 515, 0, 0, 0, + 303, 26, 370, 371, 373, 390, 0, 392, 394, 314, + 310, 0, 505, -2, 380, 381, 405, 406, 407, 0, + 0, 0, 0, 403, 385, 0, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 430, 480, + 481, 0, 428, 429, 438, 0, 0, 305, 306, 408, + 0, 553, 28, 0, 0, 0, 0, 0, 504, 0, + 0, 0, 0, 502, 499, 0, 0, 470, 0, 0, + 0, 0, 0, 0, 359, 367, 555, 0, 320, 338, + 340, 0, 335, 350, 351, 353, 0, 355, 0, 357, + 358, 324, 325, 326, 0, 0, 0, 0, 346, 367, + 0, 367, 43, 559, 48, 0, 0, 53, 54, 560, + 561, 562, 0, 78, 195, 197, 200, 201, 202, 82, + 83, 84, 0, 0, 192, 0, 0, 0, 0, 0, + 186, 187, 80, 148, 146, 0, 143, 142, 90, 0, + 159, 159, 111, 112, 162, 0, 162, 162, 162, 0, + 0, 105, 106, 107, 99, 0, 100, 101, 102, 0, + 103, 0, 0, 803, 66, 0, 70, 71, 67, 574, + 68, 802, 0, 0, 587, 211, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 0, 228, 803, 231, + 268, 252, 0, 0, 269, 270, 0, 532, 533, 0, + 525, 24, 0, 569, 570, 516, 517, 317, 391, 393, + 395, 0, 304, 382, 403, 386, 0, 383, 0, 0, + 377, 443, 0, 0, 410, -2, 446, 447, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 522, 0, 500, + 0, 0, 460, 471, 472, 473, 474, 547, 0, 0, + -2, 0, 0, 522, 0, 0, 0, 332, 339, 0, + 0, 333, 0, 334, 354, 356, 0, 0, 0, 0, + 330, 522, 367, 39, 51, 52, 0, 0, 58, 163, + 164, 0, 198, 0, 0, 0, 181, 0, 0, 184, + 185, 0, 155, 0, 147, 86, 144, 0, 162, 162, + 113, 0, 114, 115, 116, 0, 132, 0, 0, 0, + 0, 596, 65, 73, 74, 0, 203, 802, 0, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 802, 0, 0, 802, 588, 589, 590, 591, 0, 230, + 271, 272, 273, 536, 0, 25, 367, 0, 311, 506, + 0, 384, 0, 404, 387, 444, 307, 0, 134, 134, + 485, 134, 138, 488, 134, 490, 134, 493, 0, 0, + 0, 0, 505, 0, 0, 0, 497, 459, 503, 0, + 32, 0, 547, 537, 549, 551, 0, 28, 0, 543, + 0, 530, 556, 368, 557, 336, 0, 341, 0, 0, + 0, 344, 0, 530, 38, 55, 56, 57, 196, 199, + 0, 188, 134, 191, 182, 183, 0, 157, 0, 149, + 150, 151, 152, 153, 154, 135, 109, 110, 160, 161, + 159, 0, 159, 0, 139, 0, 803, 0, 0, 204, + 0, 205, 207, 208, 209, 0, 251, 518, 318, 445, + 388, 448, 482, 159, 486, 487, 489, 491, 492, 494, + 450, 449, 451, 0, 0, 454, 0, 0, 0, 0, + 0, 501, 0, 33, 0, 552, -2, 0, 0, 0, + 45, 36, 0, 328, 0, 0, 0, 363, 331, 37, + 173, 0, 190, 0, 165, 158, 0, 162, 133, 162, + 0, 0, 63, 75, 76, 0, 0, 520, 0, 483, + 484, 0, 0, 0, 0, 475, 458, 498, 0, 550, + 0, -2, 0, 545, 544, 0, 337, 364, 365, 366, + 327, 172, 174, 0, 179, 0, 189, 0, 170, 0, + 167, 169, 156, 122, 123, 137, 140, 0, 0, 27, + 0, 0, 452, 453, 455, 456, 0, 0, 0, 0, + 540, 28, 0, 329, 175, 176, 0, 180, 178, 0, + 85, 0, 166, 168, 69, 0, 224, 0, 521, 519, + 457, 0, 0, 0, 548, -2, 546, 177, 0, 171, + 72, 223, 0, 0, 476, 0, 479, 0, 206, 225, + 0, 477, 0, 0, 0, 193, 0, 0, 0, 478, + 0, 0, 226, 227, } var yyTok1 = [...]int{ @@ -2370,7 +2404,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 74, 3, 3, 3, 101, 93, 3, 54, 56, 98, 96, 55, 97, 111, 99, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 254, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 255, 82, 81, 83, 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, @@ -2404,7 +2438,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, 253, + 249, 250, 251, 252, 253, 254, } var yyTok3 = [...]int{ 0, @@ -3661,137 +3695,137 @@ yydefault: yyVAL.str = string(yyDollar[2].bytes) } case 164: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1034 + { + yyVAL.str = string(yyDollar[2].bytes) + } + case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1035 + //line sql.y:1039 { yyVAL.colKeyOpt = colKeyNone } - case 165: + case 166: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1039 + //line sql.y:1043 { yyVAL.colKeyOpt = colKeyPrimary } - case 166: + case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1043 + //line sql.y:1047 { yyVAL.colKeyOpt = colKey } - case 167: + case 168: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1047 + //line sql.y:1051 { yyVAL.colKeyOpt = colKeyUniqueKey } - case 168: + case 169: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1051 + //line sql.y:1055 { yyVAL.colKeyOpt = colKeyUnique } - case 169: + case 170: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1056 + //line sql.y:1060 { yyVAL.optVal = nil } - case 170: + case 171: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1060 + //line sql.y:1064 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } - case 171: + case 172: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1066 + //line sql.y:1070 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } - case 172: + case 173: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1070 + //line sql.y:1074 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } - case 173: + case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1076 + //line sql.y:1080 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } - case 174: + case 175: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1080 + //line sql.y:1084 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } - case 175: + case 176: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1086 + //line sql.y:1090 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } - case 176: + case 177: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1090 + //line sql.y:1094 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } - case 177: + case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1095 + //line sql.y:1099 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } - case 178: + case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1101 + //line sql.y:1105 { yyVAL.str = "" } - case 179: + case 180: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1105 + //line sql.y:1109 { yyVAL.str = string(yyDollar[1].bytes) } - case 180: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1111 - { - yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} - } case 181: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1115 { - 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 182: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1119 { - 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 183: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1123 { - 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 184: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1127 { - 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 185: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1133 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1131 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(string(yyDollar[2].bytes)), Unique: false} } case 186: yyDollar = yyS[yypt-1 : yypt+1] @@ -3801,102 +3835,102 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1143 + //line sql.y:1141 + { + yyVAL.str = string(yyDollar[1].bytes) + } + case 188: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1147 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } - case 188: + case 189: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1147 + //line sql.y:1151 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } - case 189: + case 190: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1153 + //line sql.y:1157 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } - case 190: + case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1159 + //line sql.y:1163 { yyVAL.constraintDefinition = &ConstraintDefinition{Name: string(yyDollar[2].bytes), Details: yyDollar[3].constraintInfo} } - case 191: + case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1163 + //line sql.y:1167 { yyVAL.constraintDefinition = &ConstraintDefinition{Details: yyDollar[1].constraintInfo} } - case 192: + case 193: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:1170 + //line sql.y:1174 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns} } - case 193: + case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1175 + //line sql.y:1179 { yyVAL.str = "" } - case 194: + case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1179 + //line sql.y:1183 { yyVAL.str = " " + string(yyDollar[1].str) } - case 195: + case 196: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1183 + //line sql.y:1187 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } - case 196: + case 197: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1191 + //line sql.y:1195 { yyVAL.str = yyDollar[1].str } - case 197: + case 198: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1195 + //line sql.y:1199 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } - case 198: + case 199: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1199 + //line sql.y:1203 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } - case 199: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1205 - { - yyVAL.str = yyDollar[1].colIdent.String() - } case 200: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1209 { - yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" + yyVAL.str = yyDollar[1].colIdent.String() } case 201: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1213 { - yyVAL.str = string(yyDollar[1].bytes) + yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } case 202: - yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1219 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:1217 { - yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} + yyVAL.str = string(yyDollar[1].bytes) } case 203: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:1223 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} @@ -3908,8 +3942,14 @@ yydefault: yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 205: - yyDollar = yyS[yypt-12 : yypt+1] + yyDollar = yyS[yypt-7 : yypt+1] //line sql.y:1231 + { + yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} + } + case 206: + yyDollar = yyS[yypt-12 : yypt+1] + //line sql.y:1235 { yyVAL.statement = &DDL{ Action: AddColVindexStr, @@ -3922,9 +3962,9 @@ yydefault: VindexCols: yyDollar[9].columns, } } - case 206: + case 207: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1244 + //line sql.y:1248 { yyVAL.statement = &DDL{ Action: DropColVindexStr, @@ -3934,71 +3974,71 @@ yydefault: }, } } - case 207: + case 208: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1254 + //line sql.y:1258 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } - case 208: + case 209: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1259 + //line sql.y:1263 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } - case 209: + case 210: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1264 + //line sql.y:1268 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} } - case 210: + case 211: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1268 + //line sql.y:1272 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, PartitionSpec: yyDollar[5].partSpec} } - case 222: + case 223: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1287 + //line sql.y:1291 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } - case 223: + case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1293 + //line sql.y:1297 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } - case 224: + case 225: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1297 + //line sql.y:1301 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } - case 225: + case 226: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1303 + //line sql.y:1307 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } - case 226: + case 227: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1307 + //line sql.y:1311 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } - case 227: + case 228: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1313 + //line sql.y:1317 { yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } - case 228: + case 229: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1319 + //line sql.y:1323 { var exists bool if yyDollar[3].byt != 0 { @@ -4006,16 +4046,16 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName, IfExists: exists} } - case 229: + case 230: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1327 + //line sql.y:1331 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } - case 230: + case 231: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1332 + //line sql.y:1336 { var exists bool if yyDollar[3].byt != 0 { @@ -4023,42 +4063,36 @@ yydefault: } yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName.ToViewName(), IfExists: exists} } - case 231: + case 232: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1340 + //line sql.y:1344 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 232: + case 233: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1344 + //line sql.y:1348 { yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} } - case 233: + case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1350 + //line sql.y:1354 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } - case 234: + case 235: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1354 + //line sql.y:1358 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } - case 235: + case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1359 + //line sql.y:1363 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } - case 236: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1365 - { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} - } case 237: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1369 @@ -4073,7 +4107,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1378 + //line sql.y:1377 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } @@ -4102,10 +4136,10 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 244: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1398 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 245: yyDollar = yyS[yypt-3 : yypt+1] @@ -4126,27 +4160,33 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 248: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1414 { - yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 249: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1418 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 250: - yyDollar = yyS[yypt-7 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1422 + { + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + } + case 251: + yyDollar = yyS[yypt-7 : yypt+1] + //line sql.y:1426 { showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} yyVAL.statement = &Show{Type: string(yyDollar[3].bytes), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} } - case 251: + case 252: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1427 + //line sql.y:1431 { // this is ugly, but I couldn't find a better way for now if yyDollar[3].str == "processlist" { @@ -4156,17 +4196,11 @@ yydefault: yyVAL.statement = &Show{Type: yyDollar[3].str, ShowTablesOpt: showTablesOpt} } } - case 252: - yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1437 - { - yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} - } case 253: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1441 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 254: yyDollar = yyS[yypt-2 : yypt+1] @@ -4175,22 +4209,22 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 255: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1449 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowCollationFilterOpt: &yyDollar[4].expr} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 256: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1453 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowCollationFilterOpt: &yyDollar[4].expr} } case 257: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1457 { - yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} } case 258: yyDollar = yyS[yypt-2 : yypt+1] @@ -4211,555 +4245,567 @@ yydefault: yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 261: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1479 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1473 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 262: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1477 + { + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + } + case 263: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1487 + { + yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} + } + case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1485 + //line sql.y:1493 { yyVAL.str = string(yyDollar[1].bytes) } - case 263: + case 265: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1489 + //line sql.y:1497 { yyVAL.str = string(yyDollar[1].bytes) } - case 264: + case 266: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1495 + //line sql.y:1503 { yyVAL.str = "" } - case 265: + case 267: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1499 + //line sql.y:1507 { yyVAL.str = "full " } - case 266: + case 268: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1505 + //line sql.y:1513 { yyVAL.str = "" } - case 267: + case 269: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1509 + //line sql.y:1517 { yyVAL.str = yyDollar[2].tableIdent.v } - case 268: + case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1513 + //line sql.y:1521 { yyVAL.str = yyDollar[2].tableIdent.v } - case 269: + case 271: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1519 + //line sql.y:1527 { yyVAL.showFilter = nil } - case 270: + case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1523 + //line sql.y:1531 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } - case 271: + case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1527 + //line sql.y:1535 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } - case 272: + case 274: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1533 + //line sql.y:1541 { yyVAL.str = "" } - case 273: + case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1537 + //line sql.y:1545 { yyVAL.str = SessionStr } - case 274: + case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1541 + //line sql.y:1549 { yyVAL.str = GlobalStr } - case 275: + case 277: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1547 + //line sql.y:1555 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } - case 276: + case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1551 + //line sql.y:1559 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } - case 277: + case 279: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1557 + //line sql.y:1565 { yyVAL.statement = &Begin{} } - case 278: + case 280: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1561 + //line sql.y:1569 { yyVAL.statement = &Begin{} } - case 279: + case 281: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1567 + //line sql.y:1575 { yyVAL.statement = &Commit{} } - case 280: + case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1573 + //line sql.y:1581 { yyVAL.statement = &Rollback{} } - case 281: + case 283: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1579 + //line sql.y:1587 { yyVAL.statement = &OtherRead{} } - case 282: + case 284: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1583 + //line sql.y:1591 { yyVAL.statement = &OtherRead{} } - case 283: + case 285: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1587 + //line sql.y:1595 { yyVAL.statement = &OtherRead{} } - case 284: + case 286: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1591 + //line sql.y:1599 { yyVAL.statement = &OtherAdmin{} } - case 285: + case 287: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1595 + //line sql.y:1603 { yyVAL.statement = &OtherAdmin{} } - case 286: + case 288: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1599 + //line sql.y:1607 { yyVAL.statement = &OtherAdmin{} } - case 287: + case 289: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1603 + //line sql.y:1611 { yyVAL.statement = &OtherAdmin{} } - case 288: + case 290: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1608 + //line sql.y:1616 { setAllowComments(yylex, true) } - case 289: + case 291: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1612 + //line sql.y:1620 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 290: + case 292: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1618 + //line sql.y:1626 { yyVAL.bytes2 = nil } - case 291: + case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1622 + //line sql.y:1630 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 292: + case 294: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1628 + //line sql.y:1636 { yyVAL.str = UnionStr } - case 293: + case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1632 + //line sql.y:1640 { yyVAL.str = UnionAllStr } - case 294: + case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1636 + //line sql.y:1644 { yyVAL.str = UnionDistinctStr } - case 295: + case 297: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1641 + //line sql.y:1649 { yyVAL.str = "" } - case 296: + case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1645 + //line sql.y:1653 { yyVAL.str = SQLNoCacheStr } - case 297: + case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1649 + //line sql.y:1657 { yyVAL.str = SQLCacheStr } - case 298: + case 300: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1654 + //line sql.y:1662 { yyVAL.str = "" } - case 299: + case 301: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1658 + //line sql.y:1666 { yyVAL.str = DistinctStr } - case 300: + case 302: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1663 + //line sql.y:1671 { yyVAL.str = "" } - case 301: + case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1667 + //line sql.y:1675 { yyVAL.str = StraightJoinHint } - case 302: + case 304: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1672 + //line sql.y:1680 { yyVAL.selectExprs = nil } - case 303: + case 305: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1676 + //line sql.y:1684 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 304: + case 306: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1682 + //line sql.y:1690 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 305: + case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1686 + //line sql.y:1694 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 306: + case 308: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1692 + //line sql.y:1700 { yyVAL.selectExpr = &StarExpr{} } - case 307: + case 309: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1696 + //line sql.y:1704 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 308: + case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1700 + //line sql.y:1708 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 309: + case 311: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1704 + //line sql.y:1712 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 310: + case 312: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1709 + //line sql.y:1717 { yyVAL.colIdent = ColIdent{} } - case 311: + case 313: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1713 + //line sql.y:1721 { yyVAL.colIdent = yyDollar[1].colIdent } - case 312: + case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1717 + //line sql.y:1725 { yyVAL.colIdent = yyDollar[2].colIdent } - case 314: + case 316: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1724 + //line sql.y:1732 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 315: + case 317: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1729 + //line sql.y:1737 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } - case 316: + case 318: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1733 + //line sql.y:1741 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 317: + case 319: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1739 + //line sql.y:1747 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 318: + case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1743 + //line sql.y:1751 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 321: + case 323: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1753 + //line sql.y:1761 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 322: + case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1757 + //line sql.y:1765 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 323: + case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1761 + //line sql.y:1769 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 324: + case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1767 + //line sql.y:1775 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 325: + case 327: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1771 + //line sql.y:1779 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } - case 326: + case 328: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1777 + //line sql.y:1785 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 327: + case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1781 + //line sql.y:1789 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 328: + case 330: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1787 + //line sql.y:1795 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } - case 329: + case 331: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1791 + //line sql.y:1799 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } - case 330: + case 332: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1804 + //line sql.y:1812 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 331: + case 333: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1808 + //line sql.y:1816 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 332: + case 334: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1812 + //line sql.y:1820 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } - case 333: + case 335: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1816 + //line sql.y:1824 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 334: + case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1822 + //line sql.y:1830 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 335: + case 337: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1824 + //line sql.y:1832 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } - case 336: + case 338: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1828 + //line sql.y:1836 { yyVAL.joinCondition = JoinCondition{} } - case 337: + case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1830 + //line sql.y:1838 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 338: + case 340: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1834 + //line sql.y:1842 { yyVAL.joinCondition = JoinCondition{} } - case 339: + case 341: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1836 + //line sql.y:1844 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } - case 340: + case 342: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1839 + //line sql.y:1847 { yyVAL.empty = struct{}{} } - case 341: + case 343: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1841 + //line sql.y:1849 { yyVAL.empty = struct{}{} } - case 342: + case 344: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1844 + //line sql.y:1852 { yyVAL.tableIdent = NewTableIdent("") } - case 343: + case 345: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1848 + //line sql.y:1856 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 344: + case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1852 + //line sql.y:1860 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 346: + case 348: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1859 + //line sql.y:1867 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 347: + case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1865 + //line sql.y:1873 { yyVAL.str = JoinStr } - case 348: + case 350: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1869 + //line sql.y:1877 { yyVAL.str = JoinStr } - case 349: + case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1873 + //line sql.y:1881 { yyVAL.str = JoinStr } - case 350: + case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1879 + //line sql.y:1887 { yyVAL.str = StraightJoinStr } - case 351: + case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1885 + //line sql.y:1893 { yyVAL.str = LeftJoinStr } - case 352: + case 354: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1889 + //line sql.y:1897 { yyVAL.str = LeftJoinStr } - case 353: + case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1893 + //line sql.y:1901 { yyVAL.str = RightJoinStr } - case 354: + case 356: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1897 + //line sql.y:1905 { yyVAL.str = RightJoinStr } - case 355: + case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1903 + //line sql.y:1911 { yyVAL.str = NaturalJoinStr } - case 356: + case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1907 + //line sql.y:1915 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -4767,459 +4813,459 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 357: + case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1917 + //line sql.y:1925 { yyVAL.tableName = yyDollar[2].tableName } - case 358: + case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1921 + //line sql.y:1929 { yyVAL.tableName = yyDollar[1].tableName } - case 359: + case 361: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1927 + //line sql.y:1935 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 360: + case 362: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1931 + //line sql.y:1939 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 361: + case 363: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1936 + //line sql.y:1944 { yyVAL.indexHints = nil } - case 362: + case 364: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1940 + //line sql.y:1948 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } - case 363: + case 365: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1944 + //line sql.y:1952 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } - case 364: + case 366: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1948 + //line sql.y:1956 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } - case 365: + case 367: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1953 + //line sql.y:1961 { yyVAL.expr = nil } - case 366: + case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1957 + //line sql.y:1965 { yyVAL.expr = yyDollar[2].expr } - case 367: + case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1963 + //line sql.y:1971 { yyVAL.expr = yyDollar[1].expr } - case 368: + case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1967 + //line sql.y:1975 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 369: + case 371: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1971 + //line sql.y:1979 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 370: + case 372: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1975 + //line sql.y:1983 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 371: + case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1979 + //line sql.y:1987 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 372: + case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1983 + //line sql.y:1991 { yyVAL.expr = yyDollar[1].expr } - case 373: + case 375: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1987 + //line sql.y:1995 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 374: + case 376: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1993 + //line sql.y:2001 { yyVAL.str = "" } - case 375: + case 377: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1997 + //line sql.y:2005 { yyVAL.str = string(yyDollar[2].bytes) } - case 376: + case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2003 + //line sql.y:2011 { yyVAL.boolVal = BoolVal(true) } - case 377: + case 379: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2007 + //line sql.y:2015 { yyVAL.boolVal = BoolVal(false) } - case 378: + case 380: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2013 + //line sql.y:2021 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } - case 379: + case 381: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2017 + //line sql.y:2025 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } - case 380: + case 382: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2021 + //line sql.y:2029 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } - case 381: + case 383: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2025 + //line sql.y:2033 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } - case 382: + case 384: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2029 + //line sql.y:2037 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } - case 383: + case 385: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2033 + //line sql.y:2041 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } - case 384: + case 386: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2037 + //line sql.y:2045 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } - case 385: + case 387: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2041 + //line sql.y:2049 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } - case 386: + case 388: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2045 + //line sql.y:2053 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } - case 387: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2049 - { - yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} - } - case 388: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2055 - { - yyVAL.str = IsNullStr - } case 389: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2059 + //line sql.y:2057 { - yyVAL.str = IsNotNullStr + yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 390: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2063 { - yyVAL.str = IsTrueStr + yyVAL.str = IsNullStr } case 391: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2067 { - yyVAL.str = IsNotTrueStr + yyVAL.str = IsNotNullStr } case 392: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2071 { - yyVAL.str = IsFalseStr + yyVAL.str = IsTrueStr } case 393: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2075 { - yyVAL.str = IsNotFalseStr + yyVAL.str = IsNotTrueStr } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2081 + //line sql.y:2079 { - yyVAL.str = EqualStr + yyVAL.str = IsFalseStr } case 395: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2085 + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2083 { - yyVAL.str = LessThanStr + yyVAL.str = IsNotFalseStr } case 396: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2089 { - yyVAL.str = GreaterThanStr + yyVAL.str = EqualStr } case 397: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2093 { - yyVAL.str = LessEqualStr + yyVAL.str = LessThanStr } case 398: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2097 { - yyVAL.str = GreaterEqualStr + yyVAL.str = GreaterThanStr } case 399: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2101 + { + yyVAL.str = LessEqualStr + } + case 400: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2105 + { + yyVAL.str = GreaterEqualStr + } + case 401: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2109 { yyVAL.str = NotEqualStr } - case 400: + case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2105 + //line sql.y:2113 { yyVAL.str = NullSafeEqualStr } - case 401: + case 403: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2110 + //line sql.y:2118 { yyVAL.expr = nil } - case 402: + case 404: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2114 + //line sql.y:2122 { yyVAL.expr = yyDollar[2].expr } - case 403: + case 405: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2120 + //line sql.y:2128 { yyVAL.colTuple = yyDollar[1].valTuple } - case 404: + case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2124 + //line sql.y:2132 { yyVAL.colTuple = yyDollar[1].subquery } - case 405: + case 407: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2128 + //line sql.y:2136 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 406: + case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2134 + //line sql.y:2142 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 407: + case 409: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2140 + //line sql.y:2148 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 408: + case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2144 + //line sql.y:2152 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 409: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2150 - { - yyVAL.expr = yyDollar[1].expr - } - case 410: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2154 - { - yyVAL.expr = yyDollar[1].boolVal - } case 411: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2158 { - yyVAL.expr = yyDollar[1].colName + yyVAL.expr = yyDollar[1].expr } case 412: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2162 { - yyVAL.expr = yyDollar[1].expr + yyVAL.expr = yyDollar[1].boolVal } case 413: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2166 { - yyVAL.expr = yyDollar[1].subquery + yyVAL.expr = yyDollar[1].colName } case 414: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2170 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} + yyVAL.expr = yyDollar[1].expr } case 415: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2174 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} + yyVAL.expr = yyDollar[1].subquery } case 416: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2178 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 417: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2182 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 418: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2186 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 419: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2190 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 420: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2194 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 421: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2198 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 422: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2202 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 423: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2206 { - 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 424: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2210 { - 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 425: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2214 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 426: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2218 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 427: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2222 { - yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 428: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2226 { - yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 429: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2230 { - yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 430: - yyDollar = yyS[yypt-2 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:2234 { - yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 431: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2238 { - yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} + yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 432: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:2242 + { + yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} + } + case 433: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2246 + { + yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} + } + case 434: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:2250 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -5227,9 +5273,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 433: + case 435: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2250 + //line sql.y:2258 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -5243,21 +5289,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 434: + case 436: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2264 + //line sql.y:2272 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 435: + case 437: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2268 + //line sql.y:2276 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 436: + case 438: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2272 + //line sql.y:2280 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -5265,431 +5311,431 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} } - case 441: + case 443: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2290 + //line sql.y:2298 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 442: + case 444: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2294 + //line sql.y:2302 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 443: + case 445: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2298 + //line sql.y:2306 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 444: + case 446: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2308 + //line sql.y:2316 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 445: + case 447: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2312 + //line sql.y:2320 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 446: + case 448: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2316 + //line sql.y:2324 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 447: + case 449: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2320 + //line sql.y:2328 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 448: + case 450: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2324 + //line sql.y:2332 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 449: + case 451: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2328 + //line sql.y:2336 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 450: + case 452: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2332 + //line sql.y:2340 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 451: + case 453: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2336 + //line sql.y:2344 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 452: + case 454: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2340 + //line sql.y:2348 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} } - case 453: + case 455: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2344 + //line sql.y:2352 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 454: + case 456: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2348 + //line sql.y:2356 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } - case 455: + case 457: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2352 + //line sql.y:2360 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 456: + case 458: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2356 + //line sql.y:2364 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 457: + case 459: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2360 + //line sql.y:2368 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 458: + case 460: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2364 + //line sql.y:2372 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } - case 459: + case 461: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2374 + //line sql.y:2382 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 460: + case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2378 + //line sql.y:2386 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 461: + case 463: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2382 + //line sql.y:2390 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 462: + case 464: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2386 + //line sql.y:2394 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 463: + case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2391 + //line sql.y:2399 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 464: + case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2396 + //line sql.y:2404 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 465: + case 467: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2401 + //line sql.y:2409 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 466: + case 468: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2406 + //line sql.y:2414 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 469: + case 471: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2420 + //line sql.y:2428 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 470: + case 472: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2424 + //line sql.y:2432 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 471: + case 473: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2428 + //line sql.y:2436 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 472: + case 474: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2432 + //line sql.y:2440 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 473: + case 475: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2438 + //line sql.y:2446 { yyVAL.str = "" } - case 474: + case 476: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2442 + //line sql.y:2450 { yyVAL.str = BooleanModeStr } - case 475: + case 477: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2446 + //line sql.y:2454 { yyVAL.str = NaturalLanguageModeStr } - case 476: + case 478: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2450 + //line sql.y:2458 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 477: + case 479: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2454 + //line sql.y:2462 { yyVAL.str = QueryExpansionStr } - case 478: + case 480: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2460 + //line sql.y:2468 { yyVAL.str = string(yyDollar[1].bytes) } - case 479: + case 481: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2464 + //line sql.y:2472 { yyVAL.str = string(yyDollar[1].bytes) } - case 480: + case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2470 + //line sql.y:2478 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 481: + case 483: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2474 + //line sql.y:2482 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 482: + case 484: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2478 + //line sql.y:2486 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 483: + case 485: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2482 + //line sql.y:2490 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 484: + case 486: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2486 + //line sql.y:2494 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 485: + case 487: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2490 + //line sql.y:2498 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 486: + case 488: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2496 + //line sql.y:2504 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 487: + case 489: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2500 + //line sql.y:2508 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 488: + case 490: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2504 + //line sql.y:2512 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 489: + case 491: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2508 + //line sql.y:2516 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 490: + case 492: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2512 + //line sql.y:2520 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 491: + case 493: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2516 + //line sql.y:2524 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 492: + case 494: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2520 + //line sql.y:2528 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 493: + case 495: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2525 + //line sql.y:2533 { yyVAL.expr = nil } - case 494: + case 496: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2529 + //line sql.y:2537 { yyVAL.expr = yyDollar[1].expr } - case 495: + case 497: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2534 + //line sql.y:2542 { yyVAL.str = string("") } - case 496: + case 498: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2538 + //line sql.y:2546 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 497: + case 499: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2544 + //line sql.y:2552 { yyVAL.whens = []*When{yyDollar[1].when} } - case 498: + case 500: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2548 + //line sql.y:2556 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 499: + case 501: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2554 + //line sql.y:2562 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 500: + case 502: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2559 + //line sql.y:2567 { yyVAL.expr = nil } - case 501: + case 503: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2563 + //line sql.y:2571 { yyVAL.expr = yyDollar[2].expr } - case 502: + case 504: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2569 + //line sql.y:2577 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 503: + case 505: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2573 + //line sql.y:2581 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 504: + case 506: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2577 + //line sql.y:2585 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 505: + case 507: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2583 + //line sql.y:2591 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 506: + case 508: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2587 + //line sql.y:2595 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 507: + case 509: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2591 + //line sql.y:2599 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } - case 508: + case 510: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2595 + //line sql.y:2603 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 509: + case 511: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2599 + //line sql.y:2607 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 510: + case 512: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2603 + //line sql.y:2611 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 511: + case 513: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2607 + //line sql.y:2615 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 512: + case 514: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2611 + //line sql.y:2619 { yyVAL.expr = &NullVal{} } - case 513: + case 515: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2617 + //line sql.y:2625 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -5698,239 +5744,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 514: + case 516: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2626 + //line sql.y:2634 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 515: + case 517: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2630 + //line sql.y:2638 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 516: + case 518: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2635 + //line sql.y:2643 { yyVAL.exprs = nil } - case 517: + case 519: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2639 + //line sql.y:2647 { yyVAL.exprs = yyDollar[3].exprs } - case 518: + case 520: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2644 + //line sql.y:2652 { yyVAL.expr = nil } - case 519: + case 521: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2648 + //line sql.y:2656 { yyVAL.expr = yyDollar[2].expr } - case 520: + case 522: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2653 + //line sql.y:2661 { yyVAL.orderBy = nil } - case 521: + case 523: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2657 + //line sql.y:2665 { yyVAL.orderBy = yyDollar[3].orderBy } - case 522: + case 524: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2663 + //line sql.y:2671 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 523: + case 525: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2667 + //line sql.y:2675 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 524: + case 526: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2673 + //line sql.y:2681 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 525: + case 527: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2678 + //line sql.y:2686 { yyVAL.str = AscScr } - case 526: + case 528: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2682 + //line sql.y:2690 { yyVAL.str = AscScr } - case 527: + case 529: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2686 + //line sql.y:2694 { yyVAL.str = DescScr } - case 528: + case 530: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2691 + //line sql.y:2699 { yyVAL.limit = nil } - case 529: + case 531: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2695 + //line sql.y:2703 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 530: + case 532: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2699 + //line sql.y:2707 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 531: + case 533: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2703 + //line sql.y:2711 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 532: + case 534: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2708 + //line sql.y:2716 { yyVAL.str = "" } - case 533: + case 535: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2712 + //line sql.y:2720 { yyVAL.str = ForUpdateStr } - case 534: + case 536: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2716 + //line sql.y:2724 { yyVAL.str = ShareModeStr } - case 535: + case 537: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2729 + //line sql.y:2737 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 536: + case 538: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2733 + //line sql.y:2741 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 537: + case 539: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2737 + //line sql.y:2745 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 538: + case 540: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2742 + //line sql.y:2750 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 539: + case 541: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2746 + //line sql.y:2754 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 540: + case 542: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2750 + //line sql.y:2758 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 541: + case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2757 + //line sql.y:2765 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 542: + case 544: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2761 + //line sql.y:2769 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 543: + case 545: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2765 + //line sql.y:2773 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 544: + case 546: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2769 + //line sql.y:2777 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 545: + case 547: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2774 + //line sql.y:2782 { yyVAL.updateExprs = nil } - case 546: + case 548: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2778 + //line sql.y:2786 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 547: + case 549: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2784 + //line sql.y:2792 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 548: + case 550: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2788 + //line sql.y:2796 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 549: + case 551: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2794 + //line sql.y:2802 { yyVAL.valTuple = yyDollar[1].valTuple } - case 550: + case 552: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2798 + //line sql.y:2806 { yyVAL.valTuple = ValTuple{} } - case 551: + case 553: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2804 + //line sql.y:2812 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 552: + case 554: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2810 + //line sql.y:2818 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -5938,309 +5984,309 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 553: + case 555: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2820 + //line sql.y:2828 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 554: + case 556: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2824 + //line sql.y:2832 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 555: + case 557: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2830 + //line sql.y:2838 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 556: + case 558: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2836 + //line sql.y:2844 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } - case 557: + case 559: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2840 + //line sql.y:2848 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } - case 558: + case 560: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2846 + //line sql.y:2854 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} } - case 559: + case 561: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2850 + //line sql.y:2858 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } - case 560: + case 562: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2854 + //line sql.y:2862 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } - case 562: + case 564: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2861 + //line sql.y:2869 { yyVAL.bytes = []byte("charset") } - case 564: + case 566: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2868 + //line sql.y:2876 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } - case 565: + case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2872 + //line sql.y:2880 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 566: + case 568: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2876 + //line sql.y:2884 { yyVAL.expr = &Default{} } - case 569: + case 571: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2885 + //line sql.y:2893 { yyVAL.byt = 0 } - case 570: + case 572: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2887 + //line sql.y:2895 { yyVAL.byt = 1 } - case 571: + case 573: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2890 + //line sql.y:2898 { yyVAL.empty = struct{}{} } - case 572: + case 574: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2892 + //line sql.y:2900 { yyVAL.empty = struct{}{} } - case 573: + case 575: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2895 + //line sql.y:2903 { yyVAL.str = "" } - case 574: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2897 - { - yyVAL.str = IgnoreStr - } - case 575: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2901 - { - yyVAL.empty = struct{}{} - } case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2903 + //line sql.y:2905 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2905 + //line sql.y:2909 { yyVAL.empty = struct{}{} } case 578: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2907 + //line sql.y:2911 { yyVAL.empty = struct{}{} } case 579: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2909 + //line sql.y:2913 { yyVAL.empty = struct{}{} } case 580: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2911 + //line sql.y:2915 { yyVAL.empty = struct{}{} } case 581: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2913 + //line sql.y:2917 { yyVAL.empty = struct{}{} } case 582: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2915 + //line sql.y:2919 { yyVAL.empty = struct{}{} } case 583: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2917 + //line sql.y:2921 { yyVAL.empty = struct{}{} } case 584: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2919 + //line sql.y:2923 { yyVAL.empty = struct{}{} } case 585: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2922 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2925 { yyVAL.empty = struct{}{} } case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2924 + //line sql.y:2927 { yyVAL.empty = struct{}{} } case 587: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2926 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2930 { yyVAL.empty = struct{}{} } case 588: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2930 + //line sql.y:2932 { yyVAL.empty = struct{}{} } case 589: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2932 + //line sql.y:2934 { yyVAL.empty = struct{}{} } case 590: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2935 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2938 { yyVAL.empty = struct{}{} } case 591: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2937 + //line sql.y:2940 { yyVAL.empty = struct{}{} } case 592: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2939 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2943 { yyVAL.empty = struct{}{} } case 593: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2945 + { + yyVAL.empty = struct{}{} + } + case 594: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2947 + { + yyVAL.empty = struct{}{} + } + case 595: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2942 + //line sql.y:2950 { yyVAL.colIdent = ColIdent{} } - case 594: + case 596: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2944 + //line sql.y:2952 { yyVAL.colIdent = yyDollar[2].colIdent } - case 595: + case 597: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2948 + //line sql.y:2956 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 596: + case 598: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2952 + //line sql.y:2960 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 598: + case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2959 + //line sql.y:2967 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 599: + case 601: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2965 + //line sql.y:2973 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 600: + case 602: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2969 + //line sql.y:2977 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 602: + case 604: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2976 + //line sql.y:2984 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 797: + case 800: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3196 + //line sql.y:3205 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 798: + case 801: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3205 + //line sql.y:3214 { decNesting(yylex) } - case 799: + case 802: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3210 + //line sql.y:3219 { forceEOF(yylex) } - case 800: + case 803: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3215 + //line sql.y:3224 { forceEOF(yylex) } - case 801: + case 804: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3219 + //line sql.y:3228 { forceEOF(yylex) } - case 802: + case 805: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3223 + //line sql.y:3232 { forceEOF(yylex) } } goto yystack /* stack new state and value */ -} \ No newline at end of file +}