blob: 3b474cf3e5c124c345f09a56512a2452a00f1464 [file] [log] [blame]
typedef struct x86_op_id_pair {
uint16_t first;
uint16_t second;
} x86_op_id_pair;
static const x86_op_id_pair x86_16_bit_eq_tbl[] = {
{ 139, 130 },
{ 140, 131 },
{ 141, 132 },
{ 142, 133 },
{ 143, 134 },
{ 144, 135 },
{ 145, 136 },
{ 146, 137 },
{ 147, 138 },
{ 148, 130 },
{ 150, 132 },
{ 151, 133 },
{ 153, 135 },
{ 154, 136 },
{ 155, 137 },
{ 156, 138 },
{ 179, 170 },
{ 180, 171 },
{ 181, 172 },
{ 182, 173 },
{ 183, 174 },
{ 184, 175 },
{ 185, 176 },
{ 186, 177 },
{ 187, 178 },
{ 188, 170 },
{ 190, 172 },
{ 191, 173 },
{ 193, 175 },
{ 194, 176 },
{ 195, 177 },
{ 196, 178 },
{ 219, 210 },
{ 220, 211 },
{ 221, 212 },
{ 222, 213 },
{ 223, 214 },
{ 224, 215 },
{ 225, 216 },
{ 226, 217 },
{ 227, 218 },
{ 228, 210 },
{ 230, 212 },
{ 231, 213 },
{ 233, 215 },
{ 234, 216 },
{ 235, 217 },
{ 236, 218 },
{ 301, 300 },
{ 304, 302 },
{ 305, 303 },
{ 306, 302 },
{ 307, 303 },
{ 310, 308 },
{ 311, 309 },
{ 312, 308 },
{ 313, 309 },
{ 321, 317 },
{ 322, 318 },
{ 323, 319 },
{ 324, 320 },
{ 325, 317 },
{ 326, 318 },
{ 327, 319 },
{ 328, 320 },
{ 333, 329 },
{ 334, 330 },
{ 335, 331 },
{ 336, 332 },
{ 337, 329 },
{ 338, 330 },
{ 339, 331 },
{ 340, 332 },
{ 345, 341 },
{ 346, 342 },
{ 347, 343 },
{ 348, 344 },
{ 349, 341 },
{ 350, 342 },
{ 351, 343 },
{ 352, 344 },
{ 357, 353 },
{ 358, 354 },
{ 359, 355 },
{ 360, 356 },
{ 361, 353 },
{ 362, 354 },
{ 363, 355 },
{ 364, 356 },
{ 373, 369 },
{ 374, 370 },
{ 375, 371 },
{ 376, 372 },
{ 377, 369 },
{ 378, 370 },
{ 380, 371 },
{ 381, 372 },
{ 383, 382 },
{ 389, 547 },
{ 401, 399 },
{ 402, 400 },
{ 403, 399 },
{ 404, 400 },
{ 407, 405 },
{ 408, 406 },
{ 409, 405 },
{ 410, 406 },
{ 413, 411 },
{ 414, 412 },
{ 415, 411 },
{ 416, 412 },
{ 419, 417 },
{ 420, 418 },
{ 421, 417 },
{ 422, 418 },
{ 425, 423 },
{ 426, 424 },
{ 427, 423 },
{ 428, 424 },
{ 431, 429 },
{ 432, 430 },
{ 433, 429 },
{ 434, 430 },
{ 437, 435 },
{ 438, 436 },
{ 439, 435 },
{ 440, 436 },
{ 443, 441 },
{ 444, 442 },
{ 445, 441 },
{ 446, 442 },
{ 449, 447 },
{ 450, 448 },
{ 451, 447 },
{ 452, 448 },
{ 455, 453 },
{ 456, 454 },
{ 457, 453 },
{ 458, 454 },
{ 461, 459 },
{ 462, 460 },
{ 463, 459 },
{ 464, 460 },
{ 467, 465 },
{ 468, 466 },
{ 469, 465 },
{ 470, 466 },
{ 473, 471 },
{ 474, 472 },
{ 475, 471 },
{ 476, 472 },
{ 479, 477 },
{ 480, 478 },
{ 481, 477 },
{ 482, 478 },
{ 485, 483 },
{ 486, 484 },
{ 487, 483 },
{ 488, 484 },
{ 491, 489 },
{ 492, 490 },
{ 493, 489 },
{ 494, 490 },
{ 504, 495 },
{ 505, 496 },
{ 506, 497 },
{ 507, 498 },
{ 508, 499 },
{ 509, 500 },
{ 510, 501 },
{ 511, 502 },
{ 512, 503 },
{ 513, 495 },
{ 515, 497 },
{ 516, 498 },
{ 518, 500 },
{ 519, 501 },
{ 520, 502 },
{ 521, 503 },
{ 532, 534 },
{ 533, 534 },
{ 538, 536 },
{ 539, 537 },
{ 540, 536 },
{ 541, 537 },
{ 555, 552 },
{ 556, 553 },
{ 557, 554 },
{ 558, 552 },
{ 559, 553 },
{ 564, 562 },
{ 565, 563 },
{ 566, 562 },
{ 567, 563 },
{ 575, 573 },
{ 576, 574 },
{ 580, 578 },
{ 581, 579 },
{ 588, 586 },
{ 589, 587 },
{ 590, 586 },
{ 591, 587 },
{ 602, 594 },
{ 603, 595 },
{ 604, 596 },
{ 605, 597 },
{ 606, 598 },
{ 607, 599 },
{ 608, 600 },
{ 609, 601 },
{ 610, 594 },
{ 611, 595 },
{ 612, 596 },
{ 614, 598 },
{ 615, 599 },
{ 617, 601 },
{ 622, 620 },
{ 623, 621 },
{ 629, 626 },
{ 630, 627 },
{ 631, 628 },
{ 632, 626 },
{ 633, 627 },
{ 639, 640 },
{ 643, 642 },
{ 656, 655 },
{ 657, 655 },
{ 691, 687 },
{ 692, 688 },
{ 693, 689 },
{ 694, 690 },
{ 695, 687 },
{ 696, 688 },
{ 697, 689 },
{ 698, 690 },
{ 727, 725 },
{ 728, 726 },
{ 729, 725 },
{ 730, 726 },
{ 732, 731 },
{ 734, 733 },
{ 736, 733 },
{ 740, 739 },
{ 742, 741 },
{ 743, 741 },
{ 745, 744 },
{ 746, 744 },
{ 748, 747 },
{ 749, 747 },
{ 751, 750 },
{ 752, 750 },
{ 761, 763 },
{ 762, 763 },
{ 767, 769 },
{ 768, 769 },
{ 770, 772 },
{ 771, 772 },
{ 775, 773 },
{ 776, 774 },
{ 777, 773 },
{ 778, 774 },
{ 780, 779 },
{ 781, 779 },
{ 794, 792 },
{ 795, 793 },
{ 796, 792 },
{ 797, 793 },
{ 801, 800 },
{ 802, 800 },
{ 807, 806 },
{ 808, 806 },
{ 817, 800 },
{ 818, 800 },
{ 818, 801 },
{ 818, 817 },
{ 819, 800 },
{ 819, 802 },
{ 819, 817 },
{ 822, 803 },
{ 823, 804 },
{ 824, 806 },
{ 825, 806 },
{ 825, 807 },
{ 825, 824 },
{ 826, 806 },
{ 826, 808 },
{ 826, 824 },
{ 829, 809 },
{ 830, 810 },
{ 831, 811 },
{ 832, 812 },
{ 833, 813 },
{ 834, 814 },
{ 835, 816 },
{ 836, 800 },
{ 836, 801 },
{ 837, 800 },
{ 837, 802 },
{ 841, 804 },
{ 842, 806 },
{ 842, 807 },
{ 843, 806 },
{ 843, 808 },
{ 846, 809 },
{ 848, 811 },
{ 849, 812 },
{ 850, 813 },
{ 851, 814 },
{ 852, 816 },
{ 854, 853 },
{ 855, 853 },
{ 860, 859 },
{ 861, 859 },
{ 871, 869 },
{ 872, 870 },
{ 873, 869 },
{ 874, 870 },
{ 876, 875 },
{ 877, 875 },
{ 881, 883 },
{ 882, 883 },
{ 888, 884 },
{ 889, 885 },
{ 891, 886 },
{ 892, 887 },
{ 894, 884 },
{ 895, 884 },
{ 895, 894 },
{ 896, 885 },
{ 897, 886 },
{ 898, 886 },
{ 898, 897 },
{ 899, 887 },
{ 904, 900 },
{ 905, 901 },
{ 907, 902 },
{ 908, 903 },
{ 910, 900 },
{ 911, 901 },
{ 912, 902 },
{ 913, 903 },
{ 916, 914 },
{ 917, 915 },
{ 918, 914 },
{ 919, 915 },
{ 929, 927 },
{ 930, 928 },
{ 931, 927 },
{ 932, 928 },
{ 936, 938 },
{ 940, 942 },
{ 944, 946 },
{ 948, 950 },
{ 953, 960 },
{ 954, 961 },
{ 955, 963 },
{ 956, 964 },
{ 957, 965 },
{ 958, 960 },
{ 959, 965 },
{ 968, 966 },
{ 969, 967 },
{ 970, 966 },
{ 971, 967 },
{ 983, 974 },
{ 984, 975 },
{ 985, 976 },
{ 986, 977 },
{ 987, 978 },
{ 988, 979 },
{ 989, 980 },
{ 990, 981 },
{ 991, 982 },
{ 992, 974 },
{ 994, 976 },
{ 995, 977 },
{ 997, 979 },
{ 998, 980 },
{ 999, 981 },
{ 1000, 982 },
{ 1012, 1010 },
{ 1013, 1011 },
{ 1017, 1018 },
{ 1031, 1028 },
{ 1032, 1029 },
{ 1033, 1030 },
{ 1034, 1028 },
{ 1035, 1029 },
{ 1036, 1030 },
{ 1038, 1037 },
{ 1040, 1039 },
{ 1042, 1041 },
{ 1044, 1043 },
{ 1045, 1043 },
{ 1047, 1046 },
{ 1048, 1046 },
{ 1050, 1049 },
{ 1051, 1049 },
{ 1053, 1052 },
{ 1062, 1058 },
{ 1063, 1059 },
{ 1064, 1060 },
{ 1065, 1061 },
{ 1067, 1058 },
{ 1068, 1059 },
{ 1069, 1060 },
{ 1070, 1061 },
{ 1072, 1071 },
{ 1074, 1073 },
{ 1076, 1075 },
{ 1078, 1077 },
{ 1080, 1079 },
{ 1081, 1079 },
{ 1083, 1082 },
{ 1084, 1082 },
{ 1086, 1085 },
{ 1087, 1085 },
{ 1089, 1088 },
{ 1091, 1090 },
{ 1098, 1092 },
{ 1099, 1093 },
{ 1100, 1094 },
{ 1101, 1095 },
{ 1102, 1096 },
{ 1103, 1097 },
{ 1104, 1092 },
{ 1105, 1093 },
{ 1106, 1094 },
{ 1107, 1095 },
{ 1108, 1096 },
{ 1109, 1097 },
{ 1122, 1116 },
{ 1123, 1117 },
{ 1124, 1118 },
{ 1125, 1119 },
{ 1126, 1120 },
{ 1127, 1121 },
{ 1128, 1116 },
{ 1129, 1117 },
{ 1130, 1118 },
{ 1131, 1119 },
{ 1132, 1120 },
{ 1133, 1121 },
{ 1150, 1149 },
{ 1151, 1149 },
{ 1153, 1152 },
{ 1154, 1152 },
{ 1161, 1163 },
{ 1162, 1163 },
{ 1164, 1166 },
{ 1165, 1166 },
{ 1174, 1168 },
{ 1175, 1169 },
{ 1176, 1170 },
{ 1177, 1171 },
{ 1178, 1172 },
{ 1179, 1173 },
{ 1180, 1168 },
{ 1181, 1169 },
{ 1182, 1170 },
{ 1183, 1171 },
{ 1184, 1172 },
{ 1185, 1173 },
{ 1198, 1192 },
{ 1199, 1193 },
{ 1200, 1194 },
{ 1201, 1195 },
{ 1202, 1196 },
{ 1203, 1197 },
{ 1204, 1192 },
{ 1205, 1193 },
{ 1206, 1194 },
{ 1207, 1195 },
{ 1208, 1196 },
{ 1209, 1197 },
{ 1229, 1223 },
{ 1230, 1224 },
{ 1231, 1225 },
{ 1232, 1226 },
{ 1233, 1227 },
{ 1234, 1228 },
{ 1235, 1223 },
{ 1236, 1224 },
{ 1237, 1225 },
{ 1238, 1226 },
{ 1239, 1227 },
{ 1240, 1228 },
{ 1254, 1248 },
{ 1255, 1249 },
{ 1256, 1250 },
{ 1257, 1251 },
{ 1258, 1252 },
{ 1259, 1253 },
{ 1260, 1248 },
{ 1261, 1249 },
{ 1262, 1250 },
{ 1263, 1251 },
{ 1264, 1252 },
{ 1265, 1253 },
{ 1286, 1277 },
{ 1287, 1278 },
{ 1288, 1279 },
{ 1289, 1280 },
{ 1290, 1281 },
{ 1291, 1282 },
{ 1292, 1283 },
{ 1293, 1284 },
{ 1294, 1285 },
{ 1295, 1277 },
{ 1297, 1279 },
{ 1298, 1280 },
{ 1300, 1282 },
{ 1301, 1283 },
{ 1302, 1284 },
{ 1303, 1285 },
{ 1314, 1316 },
{ 1315, 1316 },
{ 1351, 1350 },
{ 1352, 1350 },
{ 1359, 1353 },
{ 1360, 1354 },
{ 1361, 1355 },
{ 1362, 1356 },
{ 1363, 1357 },
{ 1364, 1358 },
{ 1365, 1353 },
{ 1366, 1354 },
{ 1367, 1355 },
{ 1368, 1356 },
{ 1369, 1357 },
{ 1370, 1358 },
{ 1381, 1377 },
{ 1382, 1378 },
{ 1383, 1379 },
{ 1384, 1380 },
{ 1385, 1377 },
{ 1386, 1378 },
{ 1387, 1379 },
{ 1388, 1380 },
{ 1399, 1393 },
{ 1400, 1394 },
{ 1401, 1395 },
{ 1402, 1396 },
{ 1403, 1397 },
{ 1404, 1398 },
{ 1405, 1393 },
{ 1406, 1394 },
{ 1407, 1395 },
{ 1408, 1396 },
{ 1409, 1397 },
{ 1410, 1398 },
{ 1421, 1417 },
{ 1422, 1418 },
{ 1423, 1419 },
{ 1424, 1420 },
{ 1425, 1417 },
{ 1426, 1418 },
{ 1427, 1419 },
{ 1428, 1420 },
{ 1434, 1433 },
{ 1435, 1433 },
{ 1439, 1438 },
{ 1440, 1438 },
{ 1445, 1444 },
{ 1446, 1444 },
{ 1453, 1455 },
{ 1454, 1455 },
{ 1457, 1456 },
{ 1458, 1456 },
{ 1469, 1460 },
{ 1470, 1461 },
{ 1471, 1462 },
{ 1472, 1463 },
{ 1473, 1464 },
{ 1474, 1465 },
{ 1475, 1466 },
{ 1476, 1467 },
{ 1477, 1468 },
{ 1478, 1460 },
{ 1480, 1462 },
{ 1481, 1463 },
{ 1483, 1465 },
{ 1484, 1466 },
{ 1485, 1467 },
{ 1486, 1468 },
{ 1514, 1507 },
{ 1515, 1508 },
{ 1516, 1509 },
{ 1517, 1510 },
{ 1518, 1511 },
{ 1519, 1512 },
{ 1520, 1513 },
{ 1521, 1507 },
{ 1524, 1510 },
{ 1527, 1513 },
{ 1538, 1536 },
{ 1539, 1537 },
{ 1540, 1536 },
{ 1541, 1537 },
{ 1550, 1549 },
{ 1551, 1549 },
{ 1595, 1593 },
{ 1596, 1594 },
{ 1597, 1593 },
{ 1598, 1594 },
{ 1604, 1601 },
{ 1605, 1602 },
{ 1606, 1603 },
{ 1607, 1601 },
{ 1608, 1602 },
{ 1609, 1603 },
{ 1628, 1619 },
{ 1629, 1620 },
{ 1630, 1621 },
{ 1631, 1622 },
{ 1632, 1623 },
{ 1633, 1624 },
{ 1634, 1625 },
{ 1635, 1626 },
{ 1636, 1627 },
{ 1637, 1619 },
{ 1639, 1621 },
{ 1640, 1622 },
{ 1642, 1624 },
{ 1643, 1625 },
{ 1644, 1626 },
{ 1645, 1627 },
};
static const uint16_t x86_16_bit_eq_lookup[] = {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
0,
11,
12,
0,
13,
14,
15,
16,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
0,
27,
28,
0,
29,
30,
31,
32,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
0,
43,
44,
0,
45,
46,
47,
48,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
49,
0,
0,
50,
51,
52,
53,
0,
0,
54,
55,
56,
57,
0,
0,
0,
0,
0,
0,
0,
58,
59,
60,
61,
62,
63,
64,
65,
0,
0,
0,
0,
66,
67,
68,
69,
70,
71,
72,
73,
0,
0,
0,
0,
74,
75,
76,
77,
78,
79,
80,
81,
0,
0,
0,
0,
82,
83,
84,
85,
86,
87,
88,
89,
0,
0,
0,
0,
0,
0,
0,
0,
90,
91,
92,
93,
94,
95,
0,
96,
97,
0,
98,
0,
0,
0,
0,
0,
99,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
100,
101,
102,
103,
0,
0,
104,
105,
106,
107,
0,
0,
108,
109,
110,
111,
0,
0,
112,
113,
114,
115,
0,
0,
116,
117,
118,
119,
0,
0,
120,
121,
122,
123,
0,
0,
124,
125,
126,
127,
0,
0,
128,
129,
130,
131,
0,
0,
132,
133,
134,
135,
0,
0,
136,
137,
138,
139,
0,
0,
140,
141,
142,
143,
0,
0,
144,
145,
146,
147,
0,
0,
148,
149,
150,
151,
0,
0,
152,
153,
154,
155,
0,
0,
156,
157,
158,
159,
0,
0,
160,
161,
162,
163,
0,
0,
0,
0,
0,
0,
0,
0,
0,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
0,
174,
175,
0,
176,
177,
178,
179,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
180,
181,
0,
0,
0,
0,
182,
183,
184,
185,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
186,
187,
188,
189,
190,
0,
0,
0,
0,
191,
192,
193,
194,
0,
0,
0,
0,
0,
0,
0,
195,
196,
0,
0,
0,
197,
198,
0,
0,
0,
0,
0,
0,
199,
200,
201,
202,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
0,
214,
215,
0,
216,
0,
0,
0,
0,
217,
218,
0,
0,
0,
0,
0,
219,
220,
221,
222,
223,
0,
0,
0,
0,
0,
224,
0,
0,
0,
225,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
226,
227,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
228,
229,
230,
231,
232,
233,
234,
235,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
236,
237,
238,
239,
0,
240,
0,
241,
0,
242,
0,
0,
0,
243,
0,
244,
245,
0,
246,
247,
0,
248,
249,
0,
250,
251,
0,
0,
0,
0,
0,
0,
0,
0,
252,
253,
0,
0,
0,
0,
254,
255,
0,
256,
257,
0,
0,
0,
258,
259,
260,
261,
0,
262,
263,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
264,
265,
266,
267,
0,
0,
0,
268,
269,
0,
0,
0,
0,
270,
271,
0,
0,
0,
0,
0,
0,
0,
0,
272,
273,
276,
0,
0,
279,
280,
281,
282,
285,
0,
0,
288,
289,
290,
291,
292,
293,
294,
295,
297,
0,
0,
0,
299,
300,
302,
0,
0,
304,
0,
305,
306,
307,
308,
309,
0,
310,
311,
0,
0,
0,
0,
312,
313,
0,
0,
0,
0,
0,
0,
0,
0,
0,
314,
315,
316,
317,
0,
318,
319,
0,
0,
0,
320,
321,
0,
0,
0,
0,
0,
322,
323,
0,
324,
325,
0,
326,
327,
329,
330,
331,
333,
0,
0,
0,
0,
334,
335,
0,
336,
337,
0,
338,
339,
340,
341,
0,
0,
342,
343,
344,
345,
0,
0,
0,
0,
0,
0,
0,
0,
0,
346,
347,
348,
349,
0,
0,
0,
350,
0,
0,
0,
351,
0,
0,
0,
352,
0,
0,
0,
353,
0,
0,
0,
0,
354,
355,
356,
357,
358,
359,
360,
0,
0,
0,
0,
0,
0,
0,
0,
361,
362,
363,
364,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
0,
375,
376,
0,
377,
378,
379,
380,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
381,
382,
0,
0,
0,
383,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
384,
385,
386,
387,
388,
389,
0,
390,
0,
391,
0,
392,
0,
393,
394,
0,
395,
396,
0,
397,
398,
0,
399,
0,
0,
0,
0,
0,
0,
0,
0,
400,
401,
402,
403,
0,
404,
405,
406,
407,
0,
408,
0,
409,
0,
410,
0,
411,
0,
412,
413,
0,
414,
415,
0,
416,
417,
0,
418,
0,
419,
0,
0,
0,
0,
0,
0,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
444,
445,
0,
446,
447,
0,
0,
0,
0,
0,
0,
448,
449,
0,
450,
451,
0,
0,
0,
0,
0,
0,
0,
0,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
0,
510,
511,
0,
512,
513,
514,
515,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
516,
517,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
518,
519,
0,
0,
0,
0,
0,
0,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
532,
533,
534,
535,
536,
537,
538,
539,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
552,
553,
554,
555,
556,
557,
558,
559,
0,
0,
0,
0,
0,
560,
561,
0,
0,
0,
562,
563,
0,
0,
0,
0,
564,
565,
0,
0,
0,
0,
0,
0,
566,
567,
0,
0,
568,
569,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
0,
580,
581,
0,
582,
583,
584,
585,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
586,
587,
588,
589,
590,
591,
592,
593,
0,
0,
594,
0,
0,
595,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
596,
597,
598,
599,
0,
0,
0,
0,
0,
0,
0,
0,
600,
601,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
602,
603,
604,
605,
0,
0,
0,
0,
0,
606,
607,
608,
609,
610,
611,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
0,
622,
623,
0,
624,
625,
626,
627,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
};