basisu 0.1.0

A bit-exact pure-Rust Basis Universal texture transcoder (.ktx2 and .basis).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
//! Static lookup tables for the XUASTC LDR transcoder: the packed trial-mode
//! config table and the per-block-size partition-seed maps driving the
//! trial-mode search, plus the JPEG-derived quantization matrix and
//! per-weight-range step scales driving the weight-grid DCT quantization.

/// The 10311 packed 24-bit trial-mode configs, pre-combined from the 3-byte
/// little-endian rows. Field order
/// LSB-first: endpoint_ise_range(5) weight_ise_range(4) ccs_index(3)
/// num_subsets(2) unique_cem_index(3) grid_wh(7).
pub static ASTC_CFG_TABLE: [u32; 10311] = [
    18608, 18640, 18672, 18704, 18736, 18768, 18800, 33456, 33488, 33520, 33552, 33584, 33616,
    33648, 33968, 34000, 34032, 34064, 34096, 34128, 34160, 34480, 34512, 34544, 34576, 34608,
    34640, 34672, 49840, 49872, 49904, 49936, 49968, 50000, 50032, 50352, 50384, 50416, 50448,
    50480, 50512, 50544, 50864, 50896, 50928, 50960, 50992, 51024, 51056, 66224, 66256, 66288,
    66320, 66352, 66384, 66416, 66736, 66768, 66800, 66832, 66864, 66896, 66928, 67248, 67280,
    67312, 67344, 67376, 67408, 67440, 67760, 67792, 67824, 67856, 67888, 67920, 67952, 82608,
    82640, 82672, 82704, 82736, 82768, 82800, 83120, 83152, 83184, 83216, 83248, 83280, 83312,
    83632, 83664, 83696, 83728, 83760, 83792, 83824, 84144, 84176, 84208, 84240, 84272, 84304,
    84336, 131344, 131376, 131408, 131440, 135440, 135472, 135504, 135536, 139536, 139568, 139600,
    139632, 147728, 147760, 147792, 147824, 149584, 149616, 149648, 149680, 149712, 149744, 149776,
    149808, 149840, 149872, 151824, 151856, 151888, 151920, 155914, 155946, 155977, 156009, 164112,
    164144, 164176, 164208, 164432, 164464, 164496, 164528, 164560, 164592, 164624, 164656, 164688,
    164720, 164944, 164976, 165008, 165040, 165072, 165104, 165136, 165168, 165200, 165232, 165456,
    165488, 165520, 165552, 165584, 165616, 165648, 165680, 165712, 165744, 168208, 168240, 168272,
    168304, 172298, 172330, 172361, 172393, 180496, 180528, 180560, 180592, 180816, 180848, 180880,
    180912, 180944, 180976, 181008, 181040, 181072, 181104, 181328, 181360, 181392, 181424, 181456,
    181488, 181520, 181552, 181584, 181616, 181840, 181872, 181904, 181936, 181968, 182000, 182032,
    182064, 182096, 182128, 184586, 184618, 184649, 184681, 188676, 188708, 188739, 188771, 196880,
    196912, 196944, 196976, 197200, 197232, 197264, 197296, 197328, 197360, 197392, 197424, 197456,
    197488, 197712, 197744, 197776, 197808, 197840, 197872, 197904, 197936, 197968, 198000, 198224,
    198256, 198288, 198320, 198352, 198384, 198416, 198448, 198480, 198512, 198736, 198768, 198800,
    198832, 198864, 198896, 198928, 198960, 198992, 199024, 200970, 201002, 201033, 201065, 205060,
    205092, 205123, 205155, 213264, 213296, 213328, 213360, 213584, 213616, 213648, 213680, 213712,
    213744, 213775, 213805, 213836, 213866, 214096, 214128, 214160, 214192, 214224, 214256, 214287,
    214317, 214348, 214378, 214608, 214640, 214672, 214704, 214736, 214768, 214799, 214829, 214860,
    214890, 215120, 215152, 215184, 215216, 215248, 215280, 215311, 215341, 215372, 215402, 217350,
    217381, 217413, 217444, 262320, 262352, 262384, 262416, 262448, 262480, 262512, 266416, 266448,
    266480, 266512, 266544, 266576, 266608, 270512, 270544, 270576, 270608, 270640, 270672, 270704,
    278704, 278736, 278768, 278800, 278832, 278864, 278896, 280624, 280656, 280688, 280720, 280752,
    280784, 280816, 280848, 280880, 280912, 280941, 282800, 282832, 282864, 282896, 282928, 282959,
    282990, 286890, 286922, 286953, 286984, 287016, 287047, 287078, 295088, 295120, 295152, 295184,
    295216, 295248, 295280, 295472, 295504, 295536, 295568, 295600, 295632, 295664, 295696, 295728,
    295760, 295789, 295984, 296016, 296048, 296080, 296112, 296144, 296176, 296208, 296240, 296272,
    296301, 296496, 296528, 296560, 296592, 296624, 296656, 296688, 296720, 296752, 296784, 296813,
    299184, 299216, 299248, 299280, 299312, 299343, 299374, 303274, 303306, 303337, 303368, 303400,
    303431, 303462, 311472, 311504, 311536, 311568, 311600, 311632, 311664, 311856, 311888, 311920,
    311952, 311984, 312016, 312048, 312078, 312107, 312137, 312166, 312368, 312400, 312432, 312464,
    312496, 312528, 312560, 312590, 312619, 312649, 312678, 312880, 312912, 312944, 312976, 313008,
    313040, 313072, 313102, 313131, 313161, 313190, 315562, 315594, 315625, 315656, 315688, 315719,
    315750, 319652, 319684, 319715, 319747, 319778, 319810, 319841, 327856, 327888, 327920, 327952,
    327984, 328016, 328048, 328240, 328272, 328304, 328336, 328368, 328400, 328432, 328462, 328491,
    328521, 328550, 328752, 328784, 328816, 328848, 328880, 328912, 328944, 328974, 329003, 329033,
    329062, 329264, 329296, 329328, 329360, 329392, 329424, 329456, 329486, 329515, 329545, 329574,
    329776, 329808, 329840, 329872, 329904, 329936, 329968, 329998, 330027, 330057, 330086, 331946,
    331978, 332009, 332040, 332072, 332103, 332134, 336036, 336068, 336099, 336131, 336162, 336194,
    336225, 344240, 344272, 344304, 344336, 344368, 344400, 344432, 344624, 344656, 344688, 344720,
    344751, 344780, 344811, 344841, 344870, 344901, 344931, 345136, 345168, 345200, 345232, 345263,
    345292, 345323, 345353, 345382, 345413, 345443, 345648, 345680, 345712, 345744, 345775, 345804,
    345835, 345865, 345894, 345925, 345955, 346160, 346192, 346224, 346256, 346287, 346316, 346347,
    346377, 346406, 346437, 346467, 348326, 348357, 348389, 348420, 348452, 348483, 348515, 393328,
    393360, 393392, 393424, 393456, 393488, 393520, 393552, 393584, 397424, 397456, 397488, 397520,
    397552, 397584, 397616, 397648, 397680, 401520, 401552, 401584, 401616, 401648, 401680, 401712,
    401744, 401776, 409712, 409744, 409776, 409808, 409840, 409872, 409904, 409936, 409968, 411696,
    411728, 411760, 411792, 411824, 411856, 411888, 411917, 411944, 411972, 413808, 413840, 413872,
    413904, 413935, 413966, 413996, 414028, 414058, 417898, 417930, 417961, 417992, 418023, 418054,
    418085, 418117, 418148, 426096, 426128, 426160, 426192, 426224, 426256, 426288, 426320, 426352,
    426544, 426576, 426608, 426640, 426672, 426704, 426736, 426765, 426792, 426820, 427056, 427088,
    427120, 427152, 427184, 427216, 427248, 427277, 427304, 427332, 427568, 427600, 427632, 427664,
    427696, 427728, 427760, 427789, 427816, 427844, 430192, 430224, 430256, 430288, 430319, 430350,
    430380, 430412, 430442, 434282, 434314, 434345, 434376, 434407, 434438, 434469, 434501, 434532,
    442480, 442512, 442544, 442576, 442608, 442640, 442672, 442704, 442736, 442928, 442960, 442992,
    443024, 443056, 443085, 443114, 443142, 443171, 443200, 443440, 443472, 443504, 443536, 443568,
    443597, 443626, 443654, 443683, 443712, 443952, 443984, 444016, 444048, 444080, 444109, 444138,
    444166, 444195, 444224, 446570, 446602, 446633, 446664, 446695, 446726, 446757, 446789, 446820,
    450660, 450692, 450723, 450755, 450786, 450817, 450849, 450880, 450912, 458864, 458896, 458928,
    458960, 458992, 459024, 459056, 459088, 459120, 459312, 459344, 459376, 459408, 459440, 459469,
    459498, 459526, 459555, 459584, 459824, 459856, 459888, 459920, 459952, 459981, 460010, 460038,
    460067, 460096, 460336, 460368, 460400, 460432, 460464, 460493, 460522, 460550, 460579, 460608,
    460848, 460880, 460912, 460944, 460976, 461005, 461034, 461062, 461091, 461120, 462954, 462986,
    463017, 463048, 463079, 463110, 463141, 463173, 463204, 467044, 467076, 467107, 467139, 467170,
    467201, 467233, 467264, 467296, 475248, 475280, 475312, 475344, 475376, 475408, 475440, 475472,
    475503, 475696, 475728, 475759, 475789, 475818, 475847, 475878, 475907, 475936, 476208, 476240,
    476271, 476301, 476330, 476359, 476390, 476419, 476448, 476720, 476752, 476783, 476813, 476842,
    476871, 476902, 476931, 476960, 477232, 477264, 477295, 477325, 477354, 477383, 477414, 477443,
    477472, 479334, 479365, 479396, 479428, 479459, 479491, 479522, 479553, 479585, 524368, 524400,
    524432, 524464, 524496, 524528, 524560, 524592, 524624, 524656, 528464, 528496, 528528, 528560,
    528592, 528624, 528656, 528688, 528720, 528752, 532560, 532592, 532624, 532656, 532688, 532720,
    532752, 532783, 532813, 532843, 540752, 540784, 540816, 540848, 540880, 540912, 540944, 540976,
    541008, 541040, 542736, 542768, 542800, 542832, 542864, 542896, 542925, 542952, 542977, 544848,
    544880, 544912, 544943, 544974, 545004, 545035, 545065, 545096, 545126, 548938, 548969, 549000,
    549031, 549062, 549093, 549124, 549155, 549186, 549217, 557136, 557168, 557200, 557232, 557264,
    557296, 557328, 557360, 557392, 557424, 557584, 557616, 557648, 557680, 557712, 557744, 557773,
    557800, 557825, 558096, 558128, 558160, 558192, 558224, 558256, 558285, 558312, 558337, 558608,
    558640, 558672, 558704, 558736, 558768, 558797, 558824, 558849, 561232, 561264, 561296, 561327,
    561358, 561388, 561419, 561449, 561480, 561510, 565322, 565353, 565384, 565415, 565446, 565477,
    565508, 565539, 565570, 565601, 573520, 573552, 573584, 573616, 573648, 573680, 573712, 573744,
    573776, 573808, 573968, 574000, 574032, 574064, 574095, 574122, 574150, 574179, 574480, 574512,
    574544, 574576, 574607, 574634, 574662, 574691, 574992, 575024, 575056, 575088, 575119, 575146,
    575174, 575203, 577610, 577641, 577672, 577703, 577734, 577765, 577796, 577827, 577858, 577889,
    581700, 581731, 581763, 581794, 581825, 581857, 581888, 581920, 589904, 589936, 589968, 590000,
    590032, 590064, 590096, 590128, 590160, 590192, 590352, 590384, 590416, 590448, 590479, 590506,
    590534, 590563, 590864, 590896, 590928, 590960, 590991, 591018, 591046, 591075, 591376, 591408,
    591440, 591472, 591503, 591530, 591558, 591587, 591888, 591920, 591952, 591984, 592015, 592042,
    592070, 592099, 593994, 594025, 594056, 594087, 594118, 594149, 594180, 594211, 594242, 594273,
    598084, 598115, 598147, 598178, 598209, 598241, 598272, 598304, 606288, 606320, 606352, 606384,
    606416, 606448, 606479, 606510, 606540, 606571, 606736, 606768, 606799, 606828, 606857, 606886,
    606915, 606944, 607248, 607280, 607311, 607340, 607369, 607398, 607427, 607456, 607760, 607792,
    607823, 607852, 607881, 607910, 607939, 607968, 608272, 608304, 608335, 608364, 608393, 608422,
    608451, 608480, 610374, 610405, 610436, 610467, 610499, 610530, 610561, 610592, 610624, 655440,
    655472, 655504, 655536, 655568, 655600, 655632, 655664, 655696, 655728, 659536, 659568, 659600,
    659632, 659664, 659696, 659728, 659760, 659792, 659821, 663632, 663664, 663696, 663728, 663760,
    663792, 663821, 663851, 663881, 663910, 671824, 671856, 671888, 671920, 671952, 671984, 672016,
    672048, 672080, 672112, 673808, 673840, 673872, 673904, 673936, 673962, 673987, 675920, 675952,
    675983, 676013, 676043, 676074, 676104, 676134, 676164, 676195, 680009, 680040, 680071, 680102,
    680133, 680164, 680194, 680225, 680256, 688208, 688240, 688272, 688304, 688336, 688368, 688400,
    688432, 688464, 688496, 688656, 688688, 688720, 688752, 688784, 688810, 688835, 689168, 689200,
    689232, 689264, 689296, 689322, 689347, 689680, 689712, 689744, 689776, 689808, 689834, 689859,
    692304, 692336, 692367, 692397, 692427, 692458, 692488, 692518, 692548, 692579, 696393, 696424,
    696455, 696486, 696517, 696548, 696578, 696609, 696640, 704592, 704624, 704656, 704688, 704720,
    704752, 704784, 704816, 704847, 704876, 705040, 705072, 705104, 705133, 705162, 705188, 705552,
    705584, 705616, 705645, 705674, 705700, 706064, 706096, 706128, 706157, 706186, 706212, 708681,
    708712, 708743, 708774, 708805, 708836, 708866, 708897, 708928, 712771, 712803, 712834, 712865,
    712896, 712928, 720976, 721008, 721040, 721072, 721104, 721136, 721168, 721200, 721231, 721260,
    721424, 721456, 721488, 721517, 721546, 721572, 721936, 721968, 722000, 722029, 722058, 722084,
    722448, 722480, 722512, 722541, 722570, 722596, 722960, 722992, 723024, 723053, 723082, 723108,
    725065, 725096, 725127, 725158, 725189, 725220, 725250, 725281, 725312, 729155, 729187, 729218,
    729249, 729280, 729312, 737360, 737392, 737424, 737456, 737488, 737518, 737548, 737578, 737609,
    737639, 737808, 737840, 737868, 737896, 737925, 737953, 738320, 738352, 738380, 738408, 738437,
    738465, 738832, 738864, 738892, 738920, 738949, 738977, 739344, 739376, 739404, 739432, 739461,
    739489, 741445, 741476, 741507, 741538, 741569, 741601, 741632, 786480, 786512, 786544, 786576,
    786608, 786640, 786672, 786704, 786736, 786768, 786800, 790576, 790608, 790640, 790672, 790704,
    790736, 790768, 790800, 790829, 790858, 790886, 794672, 794704, 794736, 794768, 794800, 794830,
    794860, 794889, 794918, 794948, 794977, 802864, 802896, 802928, 802960, 802992, 803024, 803056,
    803088, 803120, 803152, 803183, 804880, 804912, 804944, 804976, 805002, 805025, 806960, 806992,
    807023, 807053, 807083, 807113, 807143, 807173, 807203, 807233, 811050, 811080, 811111, 811142,
    811172, 811203, 811234, 811264, 819248, 819280, 819312, 819344, 819376, 819408, 819440, 819472,
    819504, 819536, 819567, 819728, 819760, 819792, 819824, 819850, 819873, 820240, 820272, 820304,
    820336, 820362, 820385, 820752, 820784, 820816, 820848, 820874, 820897, 823344, 823376, 823407,
    823437, 823467, 823497, 823527, 823557, 823587, 823617, 827434, 827464, 827495, 827526, 827556,
    827587, 827618, 827648, 835632, 835664, 835696, 835728, 835760, 835792, 835824, 835855, 835884,
    835914, 835943, 836112, 836144, 836174, 836201, 836228, 836624, 836656, 836686, 836713, 836740,
    837136, 837168, 837198, 837225, 837252, 839722, 839752, 839783, 839814, 839844, 839875, 839906,
    839936, 843812, 843843, 843874, 843905, 843936, 852016, 852048, 852080, 852112, 852144, 852176,
    852208, 852239, 852268, 852298, 852327, 852496, 852528, 852558, 852585, 852612, 853008, 853040,
    853070, 853097, 853124, 853520, 853552, 853582, 853609, 853636, 854032, 854064, 854094, 854121,
    854148, 856106, 856136, 856167, 856198, 856228, 856259, 856290, 856320, 860196, 860227, 860258,
    860289, 860320, 868400, 868432, 868464, 868496, 868527, 868557, 868588, 868617, 868647, 868678,
    868707, 868880, 868909, 868937, 868964, 868993, 869392, 869421, 869449, 869476, 869505, 869904,
    869933, 869961, 869988, 870017, 870416, 870445, 870473, 870500, 870529, 872485, 872516, 872547,
    872578, 872609, 872640, 917552, 917584, 917616, 917648, 917680, 917712, 917744, 917776, 917808,
    917840, 917872, 921648, 921680, 921712, 921744, 921776, 921808, 921840, 921868, 921895, 921924,
    925744, 925776, 925808, 925840, 925870, 925899, 925929, 925957, 925986, 926016, 933936, 933968,
    934000, 934032, 934064, 934096, 934128, 934160, 934192, 934221, 934247, 935952, 935984, 936016,
    936042, 936067, 938032, 938063, 938093, 938123, 938153, 938182, 938212, 938242, 938272, 942121,
    942151, 942182, 942213, 942243, 942273, 942304, 950320, 950352, 950384, 950416, 950448, 950480,
    950512, 950544, 950576, 950605, 950631, 950800, 950832, 950864, 950890, 950915, 951312, 951344,
    951376, 951402, 951427, 951824, 951856, 951888, 951914, 951939, 954416, 954447, 954477, 954507,
    954537, 954566, 954596, 954626, 954656, 958505, 958535, 958566, 958597, 958627, 958657, 958688,
    966704, 966736, 966768, 966800, 966832, 966864, 966895, 966923, 966952, 966982, 967010, 967184,
    967216, 967242, 967268, 967696, 967728, 967754, 967780, 968208, 968240, 968266, 968292, 970793,
    970823, 970854, 970885, 970915, 970945, 970976, 974883, 974914, 974945, 974976, 983088, 983120,
    983152, 983184, 983216, 983248, 983279, 983307, 983336, 983366, 983394, 983568, 983600, 983626,
    983652, 984080, 984112, 984138, 984164, 984592, 984624, 984650, 984676, 985104, 985136, 985162,
    985188, 987177, 987207, 987238, 987269, 987299, 987329, 987360, 991267, 991298, 991329, 991360,
    999472, 999504, 999536, 999568, 999597, 999627, 999657, 999686, 999716, 999746, 999776, 999952,
    999979, 1000006, 1000033, 1000464, 1000491, 1000518, 1000545, 1000976, 1001003, 1001030,
    1001057, 1001488, 1001515, 1001542, 1001569, 1003557, 1003587, 1003618, 1003649, 1003680,
    1048624, 1048656, 1048688, 1048720, 1048752, 1048784, 1048816, 1048848, 1048880, 1048912,
    1052720, 1052752, 1052784, 1052816, 1052848, 1052880, 1052908, 1052934, 1052961, 1056816,
    1056848, 1056880, 1056911, 1056939, 1056968, 1056997, 1057025, 1065008, 1065040, 1065072,
    1065104, 1065136, 1065168, 1065200, 1065231, 1065258, 1065286, 1067024, 1067056, 1067085,
    1067107, 1069104, 1069134, 1069163, 1069193, 1069222, 1069252, 1069282, 1073192, 1073222,
    1073253, 1073283, 1073313, 1073344, 1081392, 1081424, 1081456, 1081488, 1081520, 1081552,
    1081584, 1081615, 1081642, 1081670, 1081872, 1081904, 1081933, 1081955, 1082384, 1082416,
    1082445, 1082467, 1082896, 1082928, 1082957, 1082979, 1085488, 1085518, 1085547, 1085577,
    1085606, 1085636, 1085666, 1089576, 1089606, 1089637, 1089667, 1089697, 1089728, 1097776,
    1097808, 1097840, 1097872, 1097904, 1097934, 1097963, 1097991, 1098020, 1098049, 1098256,
    1098286, 1098310, 1098768, 1098798, 1098822, 1099280, 1099310, 1099334, 1101864, 1101894,
    1101925, 1101955, 1101985, 1102016, 1105955, 1105985, 1106016, 1106048, 1114160, 1114192,
    1114224, 1114256, 1114288, 1114318, 1114347, 1114375, 1114404, 1114433, 1114640, 1114670,
    1114694, 1115152, 1115182, 1115206, 1115664, 1115694, 1115718, 1116176, 1116206, 1116230,
    1118248, 1118278, 1118309, 1118339, 1118369, 1118400, 1122339, 1122369, 1122400, 1122432,
    1130544, 1130576, 1130608, 1130638, 1130667, 1130696, 1130726, 1130755, 1130785, 1131024,
    1131049, 1131075, 1131536, 1131561, 1131587, 1132048, 1132073, 1132099, 1132560, 1132585,
    1132611, 1134628, 1134659, 1134689, 1134720, 1179696, 1179728, 1179760, 1179792, 1179824,
    1179856, 1179888, 1179920, 1179950, 1183792, 1183824, 1183856, 1183888, 1183920, 1183946,
    1183974, 1184000, 1187888, 1187920, 1187951, 1187980, 1188008, 1188036, 1188065, 1196080,
    1196112, 1196144, 1196176, 1196208, 1196240, 1196271, 1196297, 1196323, 1198096, 1198128,
    1198151, 1200175, 1200204, 1200233, 1200263, 1200292, 1200321, 1204263, 1204293, 1204323,
    1204354, 1204384, 1212464, 1212496, 1212528, 1212560, 1212592, 1212624, 1212655, 1212681,
    1212707, 1212944, 1212976, 1212999, 1213456, 1213488, 1213511, 1213968, 1214000, 1214023,
    1216559, 1216588, 1216617, 1216647, 1216676, 1216705, 1220647, 1220677, 1220707, 1220738,
    1220768, 1228848, 1228880, 1228912, 1228944, 1228974, 1229002, 1229031, 1229059, 1229328,
    1229355, 1229378, 1229840, 1229867, 1229890, 1230352, 1230379, 1230402, 1232935, 1232965,
    1232995, 1233026, 1233056, 1237026, 1237057, 1237088, 1245232, 1245264, 1245296, 1245328,
    1245358, 1245386, 1245415, 1245443, 1245712, 1245739, 1245762, 1246224, 1246251, 1246274,
    1246736, 1246763, 1246786, 1247248, 1247275, 1247298, 1249319, 1249349, 1249379, 1249410,
    1249440, 1253410, 1253441, 1253472, 1261616, 1261648, 1261678, 1261708, 1261737, 1261766,
    1261795, 1261824, 1262096, 1262118, 1262144, 1262608, 1262630, 1262656, 1263120, 1263142,
    1263168, 1263632, 1263654, 1263680, 1265699, 1265730, 1265760, 1310736, 1310768, 1310800,
    1310832, 1310864, 1310896, 1310928, 1310960, 1310990, 1314832, 1314864, 1314896, 1314928,
    1314960, 1314988, 1315014, 1315041, 1318928, 1318960, 1318992, 1319021, 1319050, 1319077,
    1319105, 1327120, 1327152, 1327184, 1327216, 1327248, 1327280, 1327311, 1327338, 1327363,
    1329168, 1329200, 1329217, 1331216, 1331246, 1331275, 1331304, 1331333, 1331362, 1335306,
    1335335, 1335364, 1335394, 1335425, 1343504, 1343536, 1343568, 1343600, 1343632, 1343664,
    1343695, 1343722, 1343747, 1344016, 1344048, 1344065, 1344528, 1344560, 1344577, 1345040,
    1345072, 1345089, 1347600, 1347630, 1347659, 1347688, 1347717, 1347746, 1351690, 1351719,
    1351748, 1351778, 1351809, 1359888, 1359920, 1359952, 1359984, 1360016, 1360043, 1360071,
    1360100, 1360400, 1360424, 1360912, 1360936, 1361424, 1361448, 1363978, 1364007, 1364036,
    1364066, 1364097, 1368068, 1368098, 1368128, 1376272, 1376304, 1376336, 1376368, 1376400,
    1376427, 1376455, 1376484, 1376784, 1376808, 1377296, 1377320, 1377808, 1377832, 1378320,
    1378344, 1380362, 1380391, 1380420, 1380450, 1380481, 1384452, 1384482, 1384512, 1392656,
    1392688, 1392719, 1392748, 1392778, 1392806, 1392835, 1392865, 1393167, 1393188, 1393679,
    1393700, 1394191, 1394212, 1394703, 1394724, 1396742, 1396771, 1396801, 1396832, 1442064,
    1442096, 1442128, 1442160, 1446160, 1446192, 1446224, 1446256, 1450256, 1450288, 1450320,
    1450352, 1458448, 1458480, 1458512, 1458544, 1460304, 1460336, 1460368, 1460400, 1460432,
    1460464, 1460496, 1460528, 1460560, 1460592, 1462544, 1462576, 1462608, 1462640, 1466634,
    1466666, 1466697, 1466729, 1474832, 1474864, 1474896, 1474928, 1475152, 1475184, 1475216,
    1475248, 1475280, 1475312, 1475344, 1475376, 1475408, 1475440, 1475664, 1475696, 1475728,
    1475760, 1475792, 1475824, 1475856, 1475888, 1475920, 1475952, 1476176, 1476208, 1476240,
    1476272, 1476304, 1476336, 1476368, 1476400, 1476432, 1476464, 1478928, 1478960, 1478992,
    1479024, 1483018, 1483050, 1483081, 1483113, 1491216, 1491248, 1491280, 1491312, 1491536,
    1491568, 1491600, 1491632, 1491664, 1491696, 1491728, 1491760, 1491792, 1491824, 1492048,
    1492080, 1492112, 1492144, 1492176, 1492208, 1492240, 1492272, 1492304, 1492336, 1492560,
    1492592, 1492624, 1492656, 1492688, 1492720, 1492752, 1492784, 1492816, 1492848, 1495306,
    1495338, 1495369, 1495401, 1499396, 1499428, 1499459, 1499491, 1507600, 1507632, 1507664,
    1507696, 1507920, 1507952, 1507984, 1508016, 1508048, 1508080, 1508112, 1508144, 1508176,
    1508208, 1508432, 1508464, 1508496, 1508528, 1508560, 1508592, 1508624, 1508656, 1508688,
    1508720, 1508944, 1508976, 1509008, 1509040, 1509072, 1509104, 1509136, 1509168, 1509200,
    1509232, 1509456, 1509488, 1509520, 1509552, 1509584, 1509616, 1509648, 1509680, 1509712,
    1509744, 1511690, 1511722, 1511753, 1511785, 1515780, 1515812, 1515843, 1515875, 1523984,
    1524016, 1524048, 1524080, 1524304, 1524336, 1524368, 1524400, 1524432, 1524464, 1524495,
    1524525, 1524556, 1524586, 1524816, 1524848, 1524880, 1524912, 1524944, 1524976, 1525007,
    1525037, 1525068, 1525098, 1525328, 1525360, 1525392, 1525424, 1525456, 1525488, 1525519,
    1525549, 1525580, 1525610, 1525840, 1525872, 1525904, 1525936, 1525968, 1526000, 1526031,
    1526061, 1526092, 1526122, 1528070, 1528101, 1528133, 1528164, 1573008, 1573040, 1573072,
    1573104, 1573136, 1573168, 1573200, 1573232, 1577104, 1577136, 1577168, 1577200, 1577232,
    1577264, 1577296, 1577328, 1581200, 1581232, 1581264, 1581296, 1581328, 1581360, 1581392,
    1581424, 1589392, 1589424, 1589456, 1589488, 1589520, 1589552, 1589584, 1589616, 1591344,
    1591376, 1591408, 1591440, 1591472, 1591504, 1591536, 1591568, 1591599, 1591627, 1591654,
    1593488, 1593520, 1593552, 1593584, 1593615, 1593646, 1593677, 1593708, 1597578, 1597610,
    1597641, 1597672, 1597703, 1597735, 1597766, 1597797, 1605776, 1605808, 1605840, 1605872,
    1605904, 1605936, 1605968, 1606000, 1606192, 1606224, 1606256, 1606288, 1606320, 1606352,
    1606384, 1606416, 1606447, 1606475, 1606502, 1606704, 1606736, 1606768, 1606800, 1606832,
    1606864, 1606896, 1606928, 1606959, 1606987, 1607014, 1607216, 1607248, 1607280, 1607312,
    1607344, 1607376, 1607408, 1607440, 1607471, 1607499, 1607526, 1609872, 1609904, 1609936,
    1609968, 1609999, 1610030, 1610061, 1610092, 1613962, 1613994, 1614025, 1614056, 1614087,
    1614119, 1614150, 1614181, 1622160, 1622192, 1622224, 1622256, 1622288, 1622320, 1622352,
    1622384, 1622576, 1622608, 1622640, 1622672, 1622704, 1622736, 1622766, 1622794, 1622823,
    1622853, 1622881, 1623088, 1623120, 1623152, 1623184, 1623216, 1623248, 1623278, 1623306,
    1623335, 1623365, 1623393, 1623600, 1623632, 1623664, 1623696, 1623728, 1623760, 1623790,
    1623818, 1623847, 1623877, 1623905, 1626250, 1626282, 1626313, 1626344, 1626375, 1626407,
    1626438, 1626469, 1630340, 1630372, 1630403, 1630435, 1630466, 1630498, 1630529, 1630561,
    1638544, 1638576, 1638608, 1638640, 1638672, 1638704, 1638736, 1638768, 1638960, 1638992,
    1639024, 1639056, 1639088, 1639120, 1639150, 1639178, 1639207, 1639237, 1639265, 1639472,
    1639504, 1639536, 1639568, 1639600, 1639632, 1639662, 1639690, 1639719, 1639749, 1639777,
    1639984, 1640016, 1640048, 1640080, 1640112, 1640144, 1640174, 1640202, 1640231, 1640261,
    1640289, 1640496, 1640528, 1640560, 1640592, 1640624, 1640656, 1640686, 1640714, 1640743,
    1640773, 1640801, 1642634, 1642666, 1642697, 1642728, 1642759, 1642791, 1642822, 1642853,
    1646724, 1646756, 1646787, 1646819, 1646850, 1646882, 1646913, 1646945, 1654928, 1654960,
    1654992, 1655024, 1655056, 1655088, 1655120, 1655152, 1655344, 1655376, 1655408, 1655439,
    1655468, 1655498, 1655528, 1655558, 1655587, 1655617, 1655856, 1655888, 1655920, 1655951,
    1655980, 1656010, 1656040, 1656070, 1656099, 1656129, 1656368, 1656400, 1656432, 1656463,
    1656492, 1656522, 1656552, 1656582, 1656611, 1656641, 1656880, 1656912, 1656944, 1656975,
    1657004, 1657034, 1657064, 1657094, 1657123, 1657153, 1659014, 1659045, 1659076, 1659108,
    1659139, 1659171, 1659202, 1659234, 1704016, 1704048, 1704080, 1704112, 1704144, 1704176,
    1704208, 1704240, 1704272, 1704304, 1708112, 1708144, 1708176, 1708208, 1708240, 1708272,
    1708304, 1708336, 1708368, 1708400, 1712208, 1712240, 1712272, 1712304, 1712336, 1712368,
    1712400, 1712431, 1712461, 1712491, 1720400, 1720432, 1720464, 1720496, 1720528, 1720560,
    1720592, 1720624, 1720656, 1720688, 1722384, 1722416, 1722448, 1722480, 1722512, 1722544,
    1722573, 1722600, 1722625, 1724496, 1724528, 1724560, 1724591, 1724622, 1724652, 1724683,
    1724713, 1724744, 1724774, 1728586, 1728617, 1728648, 1728679, 1728710, 1728741, 1728772,
    1728803, 1728834, 1728865, 1736784, 1736816, 1736848, 1736880, 1736912, 1736944, 1736976,
    1737008, 1737040, 1737072, 1737232, 1737264, 1737296, 1737328, 1737360, 1737392, 1737421,
    1737448, 1737473, 1737744, 1737776, 1737808, 1737840, 1737872, 1737904, 1737933, 1737960,
    1737985, 1738256, 1738288, 1738320, 1738352, 1738384, 1738416, 1738445, 1738472, 1738497,
    1740880, 1740912, 1740944, 1740975, 1741006, 1741036, 1741067, 1741097, 1741128, 1741158,
    1744970, 1745001, 1745032, 1745063, 1745094, 1745125, 1745156, 1745187, 1745218, 1745249,
    1753168, 1753200, 1753232, 1753264, 1753296, 1753328, 1753360, 1753392, 1753424, 1753456,
    1753616, 1753648, 1753680, 1753712, 1753743, 1753770, 1753798, 1753827, 1754128, 1754160,
    1754192, 1754224, 1754255, 1754282, 1754310, 1754339, 1754640, 1754672, 1754704, 1754736,
    1754767, 1754794, 1754822, 1754851, 1757258, 1757289, 1757320, 1757351, 1757382, 1757413,
    1757444, 1757475, 1757506, 1757537, 1761348, 1761379, 1761411, 1761442, 1761473, 1761505,
    1761536, 1761568, 1769552, 1769584, 1769616, 1769648, 1769680, 1769712, 1769744, 1769776,
    1769808, 1769840, 1770000, 1770032, 1770064, 1770096, 1770127, 1770154, 1770182, 1770211,
    1770512, 1770544, 1770576, 1770608, 1770639, 1770666, 1770694, 1770723, 1771024, 1771056,
    1771088, 1771120, 1771151, 1771178, 1771206, 1771235, 1771536, 1771568, 1771600, 1771632,
    1771663, 1771690, 1771718, 1771747, 1773642, 1773673, 1773704, 1773735, 1773766, 1773797,
    1773828, 1773859, 1773890, 1773921, 1777732, 1777763, 1777795, 1777826, 1777857, 1777889,
    1777920, 1777952, 1785936, 1785968, 1786000, 1786032, 1786064, 1786096, 1786127, 1786158,
    1786188, 1786219, 1786384, 1786416, 1786447, 1786476, 1786505, 1786534, 1786563, 1786592,
    1786896, 1786928, 1786959, 1786988, 1787017, 1787046, 1787075, 1787104, 1787408, 1787440,
    1787471, 1787500, 1787529, 1787558, 1787587, 1787616, 1787920, 1787952, 1787983, 1788012,
    1788041, 1788070, 1788099, 1788128, 1790022, 1790053, 1790084, 1790115, 1790147, 1790178,
    1790209, 1790240, 1790272, 1835056, 1835088, 1835120, 1835152, 1835184, 1835216, 1835248,
    1835280, 1835312, 1835344, 1835376, 1839152, 1839184, 1839216, 1839248, 1839280, 1839312,
    1839344, 1839376, 1839408, 1839438, 1839466, 1843248, 1843280, 1843312, 1843344, 1843376,
    1843408, 1843438, 1843467, 1843497, 1843527, 1843556, 1851440, 1851472, 1851504, 1851536,
    1851568, 1851600, 1851632, 1851664, 1851696, 1851728, 1851760, 1853456, 1853488, 1853520,
    1853552, 1853583, 1853606, 1855536, 1855568, 1855600, 1855630, 1855660, 1855690, 1855721,
    1855750, 1855780, 1855811, 1855841, 1859626, 1859657, 1859688, 1859719, 1859749, 1859780,
    1859811, 1859841, 1859872, 1867824, 1867856, 1867888, 1867920, 1867952, 1867984, 1868016,
    1868048, 1868080, 1868112, 1868144, 1868304, 1868336, 1868368, 1868400, 1868431, 1868454,
    1868816, 1868848, 1868880, 1868912, 1868943, 1868966, 1869328, 1869360, 1869392, 1869424,
    1869455, 1869478, 1871920, 1871952, 1871984, 1872014, 1872044, 1872074, 1872105, 1872134,
    1872164, 1872195, 1872225, 1876010, 1876041, 1876072, 1876103, 1876133, 1876164, 1876195,
    1876225, 1876256, 1884208, 1884240, 1884272, 1884304, 1884336, 1884368, 1884400, 1884432,
    1884463, 1884493, 1884522, 1884688, 1884720, 1884752, 1884779, 1884807, 1884833, 1885200,
    1885232, 1885264, 1885291, 1885319, 1885345, 1885712, 1885744, 1885776, 1885803, 1885831,
    1885857, 1888298, 1888329, 1888360, 1888391, 1888421, 1888452, 1888483, 1888513, 1888544,
    1892388, 1892419, 1892450, 1892482, 1892513, 1892544, 1900592, 1900624, 1900656, 1900688,
    1900720, 1900752, 1900784, 1900816, 1900847, 1900877, 1900906, 1901072, 1901104, 1901136,
    1901163, 1901191, 1901217, 1901584, 1901616, 1901648, 1901675, 1901703, 1901729, 1902096,
    1902128, 1902160, 1902187, 1902215, 1902241, 1902608, 1902640, 1902672, 1902699, 1902727,
    1902753, 1904682, 1904713, 1904744, 1904775, 1904805, 1904836, 1904867, 1904897, 1904928,
    1908772, 1908803, 1908834, 1908866, 1908897, 1908928, 1916976, 1917008, 1917040, 1917072,
    1917104, 1917135, 1917165, 1917195, 1917225, 1917255, 1917285, 1917456, 1917487, 1917514,
    1917542, 1917571, 1917968, 1917999, 1918026, 1918054, 1918083, 1918480, 1918511, 1918538,
    1918566, 1918595, 1918992, 1919023, 1919050, 1919078, 1919107, 1921062, 1921092, 1921124,
    1921155, 1921186, 1921217, 1921248, 1966128, 1966160, 1966192, 1966224, 1966256, 1966288,
    1966320, 1966352, 1966384, 1966416, 1966448, 1970224, 1970256, 1970288, 1970320, 1970352,
    1970384, 1970416, 1970444, 1970471, 1970500, 1974320, 1974352, 1974384, 1974416, 1974446,
    1974475, 1974505, 1974533, 1974562, 1974592, 1982512, 1982544, 1982576, 1982608, 1982640,
    1982672, 1982704, 1982736, 1982768, 1982797, 1982823, 1984528, 1984560, 1984592, 1984618,
    1984643, 1986608, 1986639, 1986669, 1986699, 1986729, 1986758, 1986788, 1986818, 1986848,
    1990697, 1990727, 1990758, 1990789, 1990819, 1990849, 1990880, 1998896, 1998928, 1998960,
    1998992, 1999024, 1999056, 1999088, 1999120, 1999152, 1999181, 1999207, 1999376, 1999408,
    1999440, 1999466, 1999491, 1999888, 1999920, 1999952, 1999978, 2000003, 2000400, 2000432,
    2000464, 2000490, 2000515, 2002992, 2003023, 2003053, 2003083, 2003113, 2003142, 2003172,
    2003202, 2003232, 2007081, 2007111, 2007142, 2007173, 2007203, 2007233, 2007264, 2015280,
    2015312, 2015344, 2015376, 2015408, 2015440, 2015471, 2015499, 2015528, 2015558, 2015586,
    2015760, 2015792, 2015818, 2015844, 2016272, 2016304, 2016330, 2016356, 2016784, 2016816,
    2016842, 2016868, 2019369, 2019399, 2019430, 2019461, 2019491, 2019521, 2019552, 2023459,
    2023490, 2023521, 2023552, 2031664, 2031696, 2031728, 2031760, 2031792, 2031824, 2031855,
    2031883, 2031912, 2031942, 2031970, 2032144, 2032176, 2032202, 2032228, 2032656, 2032688,
    2032714, 2032740, 2033168, 2033200, 2033226, 2033252, 2033680, 2033712, 2033738, 2033764,
    2035753, 2035783, 2035814, 2035845, 2035875, 2035905, 2035936, 2039843, 2039874, 2039905,
    2039936, 2048048, 2048080, 2048112, 2048144, 2048173, 2048203, 2048233, 2048262, 2048292,
    2048322, 2048352, 2048528, 2048555, 2048582, 2048609, 2049040, 2049067, 2049094, 2049121,
    2049552, 2049579, 2049606, 2049633, 2050064, 2050091, 2050118, 2050145, 2052133, 2052163,
    2052194, 2052225, 2052256, 2097200, 2097232, 2097264, 2097296, 2097328, 2097360, 2097392,
    2097424, 2097456, 2101296, 2101328, 2101360, 2101392, 2101424, 2101453, 2101481, 2101507,
    2105392, 2105424, 2105456, 2105486, 2105514, 2105542, 2105571, 2113584, 2113616, 2113648,
    2113680, 2113712, 2113744, 2113776, 2113804, 2113831, 2115600, 2115632, 2115658, 2117680,
    2117709, 2117738, 2117768, 2117797, 2117827, 2117856, 2121768, 2121798, 2121828, 2121859,
    2121889, 2129968, 2130000, 2130032, 2130064, 2130096, 2130128, 2130160, 2130188, 2130215,
    2130448, 2130480, 2130506, 2130960, 2130992, 2131018, 2131472, 2131504, 2131530, 2134064,
    2134093, 2134122, 2134152, 2134181, 2134211, 2134240, 2138152, 2138182, 2138212, 2138243,
    2138273, 2146352, 2146384, 2146416, 2146448, 2146480, 2146508, 2146537, 2146565, 2146594,
    2146832, 2146860, 2146884, 2147344, 2147372, 2147396, 2147856, 2147884, 2147908, 2150440,
    2150470, 2150500, 2150531, 2150561, 2154531, 2154561, 2154592, 2162736, 2162768, 2162800,
    2162832, 2162864, 2162892, 2162921, 2162949, 2162978, 2163216, 2163244, 2163268, 2163728,
    2163756, 2163780, 2164240, 2164268, 2164292, 2164752, 2164780, 2164804, 2166824, 2166854,
    2166884, 2166915, 2166945, 2170915, 2170945, 2170976, 2179120, 2179152, 2179183, 2179213,
    2179242, 2179271, 2179301, 2179330, 2179600, 2179623, 2179649, 2180112, 2180135, 2180161,
    2180624, 2180647, 2180673, 2181136, 2181159, 2181185, 2183204, 2183234, 2183265, 2183296,
    2228240, 2228272, 2228304, 2228336, 2228368, 2228400, 2228432, 2228464, 2228494, 2232336,
    2232368, 2232400, 2232432, 2232464, 2232492, 2232518, 2232545, 2236432, 2236464, 2236496,
    2236525, 2236554, 2236581, 2236609, 2244624, 2244656, 2244688, 2244720, 2244752, 2244784,
    2244815, 2244842, 2244867, 2246672, 2246704, 2246721, 2248720, 2248750, 2248779, 2248808,
    2248837, 2248866, 2252810, 2252839, 2252868, 2252898, 2252929, 2261008, 2261040, 2261072,
    2261104, 2261136, 2261168, 2261199, 2261226, 2261251, 2261520, 2261552, 2261569, 2262032,
    2262064, 2262081, 2262544, 2262576, 2262593, 2265104, 2265134, 2265163, 2265192, 2265221,
    2265250, 2269194, 2269223, 2269252, 2269282, 2269313, 2277392, 2277424, 2277456, 2277488,
    2277520, 2277547, 2277575, 2277604, 2277904, 2277928, 2278416, 2278440, 2278928, 2278952,
    2281482, 2281511, 2281540, 2281570, 2281601, 2285572, 2285602, 2285632, 2293776, 2293808,
    2293840, 2293872, 2293904, 2293931, 2293959, 2293988, 2294288, 2294312, 2294800, 2294824,
    2295312, 2295336, 2295824, 2295848, 2297866, 2297895, 2297924, 2297954, 2297985, 2301956,
    2301986, 2302016, 2310160, 2310192, 2310223, 2310252, 2310282, 2310310, 2310339, 2310369,
    2310671, 2310692, 2311183, 2311204, 2311695, 2311716, 2312207, 2312228, 2314246, 2314275,
    2314305, 2314336, 2359312, 2359344, 2359376, 2359408, 2359440, 2359472, 2359504, 2363408,
    2363440, 2363472, 2363504, 2363533, 2363557, 2367504, 2367536, 2367566, 2367594, 2367622,
    2367649, 2375696, 2375728, 2375760, 2375792, 2375824, 2375854, 2375879, 2377744, 2377768,
    2379792, 2379820, 2379849, 2379877, 2379906, 2383882, 2383909, 2383939, 2383969, 2392080,
    2392112, 2392144, 2392176, 2392208, 2392238, 2392263, 2392592, 2392616, 2393104, 2393128,
    2393616, 2393640, 2396176, 2396204, 2396233, 2396261, 2396290, 2400266, 2400293, 2400323,
    2400353, 2408464, 2408496, 2408528, 2408560, 2408588, 2408615, 2408642, 2408976, 2408995,
    2409488, 2409507, 2410000, 2410019, 2412554, 2412581, 2412611, 2412641, 2416644, 2416673,
    2424848, 2424880, 2424912, 2424944, 2424972, 2424999, 2425026, 2425360, 2425379, 2425872,
    2425891, 2426384, 2426403, 2426896, 2426915, 2428938, 2428965, 2428995, 2429025, 2433028,
    2433057, 2441232, 2441264, 2441293, 2441322, 2441351, 2441379, 2441408, 2441740, 2441760,
    2442252, 2442272, 2442764, 2442784, 2443276, 2443296, 2445317, 2445346, 2445376, 2490384,
    2490416, 2490448, 2490480, 2490512, 2490544, 2494480, 2494512, 2494544, 2494573, 2494599,
    2498576, 2498608, 2498635, 2498662, 2498690, 2506768, 2506800, 2506832, 2506864, 2506896,
    2506919, 2508816, 2508833, 2510864, 2510891, 2510918, 2510947, 2510976, 2514953, 2514980,
    2515009, 2523152, 2523184, 2523216, 2523248, 2523280, 2523303, 2523664, 2523681, 2524176,
    2524193, 2524688, 2524705, 2527248, 2527275, 2527302, 2527331, 2527360, 2531337, 2531364,
    2531393, 2539536, 2539568, 2539600, 2539628, 2539656, 2539682, 2540048, 2540560, 2541072,
    2543625, 2543652, 2543681, 2547715, 2547744, 2555920, 2555952, 2555984, 2556012, 2556040,
    2556066, 2556432, 2556944, 2557456, 2557968, 2560009, 2560036, 2560065, 2564099, 2564128,
    2572304, 2572335, 2572363, 2572391, 2572420, 2572448, 2572810, 2573322, 2573834, 2574346,
    2576388, 2576417, 2621456, 2621488, 2621520, 2621552, 2621584, 2625552, 2625584, 2625616,
    2625640, 2625665, 2629648, 2629679, 2629704, 2629731, 2637840, 2637872, 2637904, 2637936,
    2637962, 2641936, 2641961, 2641988, 2642016, 2646024, 2646051, 2646080, 2654224, 2654256,
    2654288, 2654320, 2654346, 2658320, 2658345, 2658372, 2658400, 2662408, 2662435, 2662464,
    2670608, 2670640, 2670670, 2670697, 2670724, 2674696, 2674723, 2674752, 2678787, 2686992,
    2687024, 2687054, 2687081, 2687108, 2691080, 2691107, 2691136, 2695171, 2703376, 2703405,
    2703433, 2703460, 2703489, 2707460, 2707488, 2752528, 2752560, 2752592, 2752624, 2752656,
    2756624, 2756656, 2756684, 2756707, 2760720, 2760748, 2760773, 2768912, 2768944, 2768976,
    2769004, 2769028, 2773007, 2773031, 2773058, 2777095, 2777122, 2785296, 2785328, 2785360,
    2785388, 2785412, 2789391, 2789415, 2789442, 2793479, 2793506, 2801680, 2801712, 2801739,
    2801765, 2801792, 2805767, 2805794, 2809858, 2818064, 2818096, 2818123, 2818149, 2818176,
    2822151, 2822178, 2826242, 2834448, 2834476, 2834502, 2834530, 2838531, 2883760, 2883792,
    2883824, 2883856, 2883888, 2883920, 2883952, 2887856, 2887888, 2887920, 2887952, 2887984,
    2888016, 2888048, 2891952, 2891984, 2892016, 2892048, 2892080, 2892112, 2892144, 2900144,
    2900176, 2900208, 2900240, 2900272, 2900304, 2900336, 2902064, 2902096, 2902128, 2902160,
    2902192, 2902224, 2902256, 2902288, 2902320, 2902352, 2902381, 2904240, 2904272, 2904304,
    2904336, 2904368, 2904399, 2904430, 2908330, 2908362, 2908393, 2908424, 2908456, 2908487,
    2908518, 2916528, 2916560, 2916592, 2916624, 2916656, 2916688, 2916720, 2916912, 2916944,
    2916976, 2917008, 2917040, 2917072, 2917104, 2917136, 2917168, 2917200, 2917229, 2917424,
    2917456, 2917488, 2917520, 2917552, 2917584, 2917616, 2917648, 2917680, 2917712, 2917741,
    2917936, 2917968, 2918000, 2918032, 2918064, 2918096, 2918128, 2918160, 2918192, 2918224,
    2918253, 2920624, 2920656, 2920688, 2920720, 2920752, 2920783, 2920814, 2924714, 2924746,
    2924777, 2924808, 2924840, 2924871, 2924902, 2932912, 2932944, 2932976, 2933008, 2933040,
    2933072, 2933104, 2933296, 2933328, 2933360, 2933392, 2933424, 2933456, 2933488, 2933518,
    2933547, 2933577, 2933606, 2933808, 2933840, 2933872, 2933904, 2933936, 2933968, 2934000,
    2934030, 2934059, 2934089, 2934118, 2934320, 2934352, 2934384, 2934416, 2934448, 2934480,
    2934512, 2934542, 2934571, 2934601, 2934630, 2937002, 2937034, 2937065, 2937096, 2937128,
    2937159, 2937190, 2941092, 2941124, 2941155, 2941187, 2941218, 2941250, 2941281, 2949296,
    2949328, 2949360, 2949392, 2949424, 2949456, 2949488, 2949680, 2949712, 2949744, 2949776,
    2949808, 2949840, 2949872, 2949902, 2949931, 2949961, 2949990, 2950192, 2950224, 2950256,
    2950288, 2950320, 2950352, 2950384, 2950414, 2950443, 2950473, 2950502, 2950704, 2950736,
    2950768, 2950800, 2950832, 2950864, 2950896, 2950926, 2950955, 2950985, 2951014, 2951216,
    2951248, 2951280, 2951312, 2951344, 2951376, 2951408, 2951438, 2951467, 2951497, 2951526,
    2953386, 2953418, 2953449, 2953480, 2953512, 2953543, 2953574, 2957476, 2957508, 2957539,
    2957571, 2957602, 2957634, 2957665, 2965680, 2965712, 2965744, 2965776, 2965808, 2965840,
    2965872, 2966064, 2966096, 2966128, 2966160, 2966191, 2966220, 2966251, 2966281, 2966310,
    2966341, 2966371, 2966576, 2966608, 2966640, 2966672, 2966703, 2966732, 2966763, 2966793,
    2966822, 2966853, 2966883, 2967088, 2967120, 2967152, 2967184, 2967215, 2967244, 2967275,
    2967305, 2967334, 2967365, 2967395, 2967600, 2967632, 2967664, 2967696, 2967727, 2967756,
    2967787, 2967817, 2967846, 2967877, 2967907, 2969766, 2969797, 2969829, 2969860, 2969892,
    2969923, 2969955, 3014736, 3014768, 3014800, 3014832, 3014864, 3014896, 3014928, 3014960,
    3014992, 3015024, 3018832, 3018864, 3018896, 3018928, 3018960, 3018992, 3019024, 3019056,
    3019088, 3019120, 3022928, 3022960, 3022992, 3023024, 3023056, 3023088, 3023120, 3023151,
    3023181, 3023211, 3031120, 3031152, 3031184, 3031216, 3031248, 3031280, 3031312, 3031344,
    3031376, 3031408, 3033104, 3033136, 3033168, 3033200, 3033232, 3033264, 3033293, 3033320,
    3033345, 3035216, 3035248, 3035280, 3035311, 3035342, 3035372, 3035403, 3035433, 3035464,
    3035494, 3039306, 3039337, 3039368, 3039399, 3039430, 3039461, 3039492, 3039523, 3039554,
    3039585, 3047504, 3047536, 3047568, 3047600, 3047632, 3047664, 3047696, 3047728, 3047760,
    3047792, 3047952, 3047984, 3048016, 3048048, 3048080, 3048112, 3048141, 3048168, 3048193,
    3048464, 3048496, 3048528, 3048560, 3048592, 3048624, 3048653, 3048680, 3048705, 3048976,
    3049008, 3049040, 3049072, 3049104, 3049136, 3049165, 3049192, 3049217, 3051600, 3051632,
    3051664, 3051695, 3051726, 3051756, 3051787, 3051817, 3051848, 3051878, 3055690, 3055721,
    3055752, 3055783, 3055814, 3055845, 3055876, 3055907, 3055938, 3055969, 3063888, 3063920,
    3063952, 3063984, 3064016, 3064048, 3064080, 3064112, 3064144, 3064176, 3064336, 3064368,
    3064400, 3064432, 3064463, 3064490, 3064518, 3064547, 3064848, 3064880, 3064912, 3064944,
    3064975, 3065002, 3065030, 3065059, 3065360, 3065392, 3065424, 3065456, 3065487, 3065514,
    3065542, 3065571, 3067978, 3068009, 3068040, 3068071, 3068102, 3068133, 3068164, 3068195,
    3068226, 3068257, 3072068, 3072099, 3072131, 3072162, 3072193, 3072225, 3072256, 3072288,
    3080272, 3080304, 3080336, 3080368, 3080400, 3080432, 3080464, 3080496, 3080528, 3080560,
    3080720, 3080752, 3080784, 3080816, 3080847, 3080874, 3080902, 3080931, 3081232, 3081264,
    3081296, 3081328, 3081359, 3081386, 3081414, 3081443, 3081744, 3081776, 3081808, 3081840,
    3081871, 3081898, 3081926, 3081955, 3082256, 3082288, 3082320, 3082352, 3082383, 3082410,
    3082438, 3082467, 3084362, 3084393, 3084424, 3084455, 3084486, 3084517, 3084548, 3084579,
    3084610, 3084641, 3088452, 3088483, 3088515, 3088546, 3088577, 3088609, 3088640, 3088672,
    3096656, 3096688, 3096720, 3096752, 3096784, 3096816, 3096847, 3096878, 3096908, 3096939,
    3097104, 3097136, 3097167, 3097196, 3097225, 3097254, 3097283, 3097312, 3097616, 3097648,
    3097679, 3097708, 3097737, 3097766, 3097795, 3097824, 3098128, 3098160, 3098191, 3098220,
    3098249, 3098278, 3098307, 3098336, 3098640, 3098672, 3098703, 3098732, 3098761, 3098790,
    3098819, 3098848, 3100742, 3100773, 3100804, 3100835, 3100867, 3100898, 3100929, 3100960,
    3100992, 3145776, 3145808, 3145840, 3145872, 3145904, 3145936, 3145968, 3146000, 3146032,
    3146064, 3146096, 3149872, 3149904, 3149936, 3149968, 3150000, 3150032, 3150064, 3150096,
    3150125, 3150154, 3150182, 3153968, 3154000, 3154032, 3154064, 3154096, 3154126, 3154156,
    3154185, 3154214, 3154244, 3154273, 3162160, 3162192, 3162224, 3162256, 3162288, 3162320,
    3162352, 3162384, 3162416, 3162448, 3162479, 3164176, 3164208, 3164240, 3164272, 3164298,
    3164321, 3166256, 3166288, 3166319, 3166349, 3166379, 3166409, 3166439, 3166469, 3166499,
    3166529, 3170346, 3170376, 3170407, 3170438, 3170468, 3170499, 3170530, 3170560, 3178544,
    3178576, 3178608, 3178640, 3178672, 3178704, 3178736, 3178768, 3178800, 3178832, 3178863,
    3179024, 3179056, 3179088, 3179120, 3179146, 3179169, 3179536, 3179568, 3179600, 3179632,
    3179658, 3179681, 3180048, 3180080, 3180112, 3180144, 3180170, 3180193, 3182640, 3182672,
    3182703, 3182733, 3182763, 3182793, 3182823, 3182853, 3182883, 3182913, 3186730, 3186760,
    3186791, 3186822, 3186852, 3186883, 3186914, 3186944, 3194928, 3194960, 3194992, 3195024,
    3195056, 3195088, 3195120, 3195151, 3195180, 3195210, 3195239, 3195408, 3195440, 3195470,
    3195497, 3195524, 3195920, 3195952, 3195982, 3196009, 3196036, 3196432, 3196464, 3196494,
    3196521, 3196548, 3199018, 3199048, 3199079, 3199110, 3199140, 3199171, 3199202, 3199232,
    3203108, 3203139, 3203170, 3203201, 3203232, 3211312, 3211344, 3211376, 3211408, 3211440,
    3211472, 3211504, 3211535, 3211564, 3211594, 3211623, 3211792, 3211824, 3211854, 3211881,
    3211908, 3212304, 3212336, 3212366, 3212393, 3212420, 3212816, 3212848, 3212878, 3212905,
    3212932, 3213328, 3213360, 3213390, 3213417, 3213444, 3215402, 3215432, 3215463, 3215494,
    3215524, 3215555, 3215586, 3215616, 3219492, 3219523, 3219554, 3219585, 3219616, 3227696,
    3227728, 3227760, 3227792, 3227823, 3227853, 3227884, 3227913, 3227943, 3227974, 3228003,
    3228176, 3228205, 3228233, 3228260, 3228289, 3228688, 3228717, 3228745, 3228772, 3228801,
    3229200, 3229229, 3229257, 3229284, 3229313, 3229712, 3229741, 3229769, 3229796, 3229825,
    3231781, 3231812, 3231843, 3231874, 3231905, 3231936, 3276848, 3276880, 3276912, 3276944,
    3276976, 3277008, 3277040, 3277072, 3277104, 3277136, 3280944, 3280976, 3281008, 3281040,
    3281072, 3281104, 3281132, 3281158, 3281185, 3285040, 3285072, 3285104, 3285135, 3285163,
    3285192, 3285221, 3285249, 3293232, 3293264, 3293296, 3293328, 3293360, 3293392, 3293424,
    3293455, 3293482, 3293510, 3295248, 3295280, 3295309, 3295331, 3297328, 3297358, 3297387,
    3297417, 3297446, 3297476, 3297506, 3301416, 3301446, 3301477, 3301507, 3301537, 3301568,
    3309616, 3309648, 3309680, 3309712, 3309744, 3309776, 3309808, 3309839, 3309866, 3309894,
    3310096, 3310128, 3310157, 3310179, 3310608, 3310640, 3310669, 3310691, 3311120, 3311152,
    3311181, 3311203, 3313712, 3313742, 3313771, 3313801, 3313830, 3313860, 3313890, 3317800,
    3317830, 3317861, 3317891, 3317921, 3317952, 3326000, 3326032, 3326064, 3326096, 3326128,
    3326158, 3326187, 3326215, 3326244, 3326273, 3326480, 3326510, 3326534, 3326992, 3327022,
    3327046, 3327504, 3327534, 3327558, 3330088, 3330118, 3330149, 3330179, 3330209, 3330240,
    3334179, 3334209, 3334240, 3334272, 3342384, 3342416, 3342448, 3342480, 3342512, 3342542,
    3342571, 3342599, 3342628, 3342657, 3342864, 3342894, 3342918, 3343376, 3343406, 3343430,
    3343888, 3343918, 3343942, 3344400, 3344430, 3344454, 3346472, 3346502, 3346533, 3346563,
    3346593, 3346624, 3350563, 3350593, 3350624, 3350656, 3358768, 3358800, 3358832, 3358862,
    3358891, 3358920, 3358950, 3358979, 3359009, 3359248, 3359273, 3359299, 3359760, 3359785,
    3359811, 3360272, 3360297, 3360323, 3360784, 3360809, 3360835, 3362852, 3362883, 3362913,
    3362944, 3407888, 3407920, 3407952, 3407984, 3408016, 3408048, 3408080, 3408112, 3408142,
    3411984, 3412016, 3412048, 3412080, 3412112, 3412140, 3412166, 3412193, 3416080, 3416112,
    3416144, 3416173, 3416202, 3416229, 3416257, 3424272, 3424304, 3424336, 3424368, 3424400,
    3424432, 3424463, 3424490, 3424515, 3426320, 3426352, 3426369, 3428368, 3428398, 3428427,
    3428456, 3428485, 3428514, 3432458, 3432487, 3432516, 3432546, 3432577, 3440656, 3440688,
    3440720, 3440752, 3440784, 3440816, 3440847, 3440874, 3440899, 3441168, 3441200, 3441217,
    3441680, 3441712, 3441729, 3442192, 3442224, 3442241, 3444752, 3444782, 3444811, 3444840,
    3444869, 3444898, 3448842, 3448871, 3448900, 3448930, 3448961, 3457040, 3457072, 3457104,
    3457136, 3457168, 3457195, 3457223, 3457252, 3457552, 3457576, 3458064, 3458088, 3458576,
    3458600, 3461130, 3461159, 3461188, 3461218, 3461249, 3465220, 3465250, 3465280, 3473424,
    3473456, 3473488, 3473520, 3473552, 3473579, 3473607, 3473636, 3473936, 3473960, 3474448,
    3474472, 3474960, 3474984, 3475472, 3475496, 3477514, 3477543, 3477572, 3477602, 3477633,
    3481604, 3481634, 3481664, 3489808, 3489840, 3489871, 3489900, 3489930, 3489958, 3489987,
    3490017, 3490319, 3490340, 3490831, 3490852, 3491343, 3491364, 3491855, 3491876, 3493894,
    3493923, 3493953, 3493984, 3538960, 3538992, 3539024, 3539056, 3539088, 3539120, 3539152,
    3543056, 3543088, 3543120, 3543152, 3543179, 3543203, 3547152, 3547184, 3547213, 3547240,
    3547269, 3555344, 3555376, 3555408, 3555440, 3555472, 3555500, 3555524, 3557392, 3557414,
    3559440, 3559468, 3559496, 3559524, 3559553, 3563529, 3563557, 3563586, 3563616, 3571728,
    3571760, 3571792, 3571824, 3571856, 3571884, 3571908, 3572240, 3572262, 3572752, 3572774,
    3573264, 3573286, 3575824, 3575852, 3575880, 3575908, 3575937, 3579913, 3579941, 3579970,
    3580000, 3588112, 3588144, 3588176, 3588206, 3588235, 3588261, 3588288, 3588624, 3588641,
    3589136, 3589153, 3589648, 3589665, 3592201, 3592229, 3592258, 3592288, 3596291, 3596321,
    3604496, 3604528, 3604560, 3604590, 3604619, 3604645, 3604672, 3605008, 3605025, 3605520,
    3605537, 3606032, 3606049, 3606544, 3606561, 3608585, 3608613, 3608642, 3608672, 3612675,
    3612705, 3620880, 3620912, 3620940, 3620969, 3620998, 3621026, 3621388, 3621900, 3622412,
    3622924, 3624965, 3624994, 3625024, 3670032, 3670064, 3670096, 3670128, 3670160, 3670190,
    3674128, 3674160, 3674192, 3674218, 3674243, 3678224, 3678255, 3678281, 3678308, 3686416,
    3686448, 3686480, 3686512, 3686540, 3686563, 3688464, 3690512, 3690537, 3690565, 3690593,
    3694600, 3694627, 3694656, 3702800, 3702832, 3702864, 3702896, 3702924, 3702947, 3703312,
    3703824, 3704336, 3706896, 3706921, 3706949, 3706977, 3710984, 3711011, 3711040, 3719184,
    3719216, 3719247, 3719274, 3719301, 3719694, 3720206, 3720718, 3723272, 3723299, 3723328,
    3727363, 3727392, 3735568, 3735600, 3735631, 3735658, 3735685, 3736078, 3736590, 3737102,
    3737614, 3739656, 3739683, 3739712, 3743747, 3743776, 3751952, 3751982, 3752009, 3752037,
    3752066, 3752457, 3752969, 3753481, 3753993, 3756036, 3756064, 3801104, 3801136, 3801168,
    3801200, 3801232, 3805200, 3805232, 3805260, 3805283, 3809296, 3809324, 3809349, 3817488,
    3817520, 3817552, 3817580, 3817604, 3821583, 3821607, 3821634, 3825671, 3825698, 3833872,
    3833904, 3833936, 3833964, 3833988, 3837967, 3837991, 3838018, 3842055, 3842082, 3850256,
    3850288, 3850315, 3850341, 3850368, 3854343, 3854370, 3858434, 3866640, 3866672, 3866699,
    3866725, 3866752, 3870727, 3870754, 3874818, 3883024, 3883052, 3883078, 3883106, 3887107,
    3932176, 3932208, 3932240, 3932272, 3936272, 3936304, 3936326, 3940368, 3940393, 3940417,
    3948560, 3948592, 3948623, 3948644, 3952654, 3952677, 3956742, 3956768, 3964944, 3964976,
    3965007, 3965028, 3969038, 3969061, 3973126, 3973152, 3981328, 3981359, 3981383, 3981408,
    3985414, 3985440, 3989505, 3997712, 3997743, 3997767, 3997792, 4001798, 4001824, 4005889,
    4014096, 4014121, 4014147, 4018179, 4063248, 4063280, 4063312, 4067344, 4067373, 4067392,
    4071440, 4071462, 4079632, 4079664, 4079689, 4083724, 4083746, 4087813, 4096016, 4096048,
    4096073, 4100108, 4100130, 4104197, 4112400, 4112428, 4112451, 4116485, 4120577, 4128784,
    4128812, 4128835, 4132869, 4136961, 4145168, 4145191, 4145216, 4149250, 4194320, 4194352,
    4194382, 4198416, 4198440, 4202512, 4202531, 4210704, 4210736, 4210755, 4214795, 4214816,
    4218884, 4227088, 4227120, 4227139, 4231179, 4231200, 4235268, 4243472, 4243497, 4247556,
    4251648, 4259856, 4259881, 4263940, 4268032, 4276239, 4276260, 4280321, 4325488, 4325520,
    4325552, 4325584, 4325616, 4325648, 4325680, 4325712, 4325744, 4329584, 4329616, 4329648,
    4329680, 4329712, 4329744, 4329776, 4329808, 4329840, 4333680, 4333712, 4333744, 4333776,
    4333808, 4333840, 4333872, 4333904, 4333936, 4341872, 4341904, 4341936, 4341968, 4342000,
    4342032, 4342064, 4342096, 4342128, 4343856, 4343888, 4343920, 4343952, 4343984, 4344016,
    4344048, 4344077, 4344104, 4344132, 4345968, 4346000, 4346032, 4346064, 4346095, 4346126,
    4346156, 4346188, 4346218, 4350058, 4350090, 4350121, 4350152, 4350183, 4350214, 4350245,
    4350277, 4350308, 4358256, 4358288, 4358320, 4358352, 4358384, 4358416, 4358448, 4358480,
    4358512, 4358704, 4358736, 4358768, 4358800, 4358832, 4358864, 4358896, 4358925, 4358952,
    4358980, 4359216, 4359248, 4359280, 4359312, 4359344, 4359376, 4359408, 4359437, 4359464,
    4359492, 4359728, 4359760, 4359792, 4359824, 4359856, 4359888, 4359920, 4359949, 4359976,
    4360004, 4362352, 4362384, 4362416, 4362448, 4362479, 4362510, 4362540, 4362572, 4362602,
    4366442, 4366474, 4366505, 4366536, 4366567, 4366598, 4366629, 4366661, 4366692, 4374640,
    4374672, 4374704, 4374736, 4374768, 4374800, 4374832, 4374864, 4374896, 4375088, 4375120,
    4375152, 4375184, 4375216, 4375245, 4375274, 4375302, 4375331, 4375360, 4375600, 4375632,
    4375664, 4375696, 4375728, 4375757, 4375786, 4375814, 4375843, 4375872, 4376112, 4376144,
    4376176, 4376208, 4376240, 4376269, 4376298, 4376326, 4376355, 4376384, 4378730, 4378762,
    4378793, 4378824, 4378855, 4378886, 4378917, 4378949, 4378980, 4382820, 4382852, 4382883,
    4382915, 4382946, 4382977, 4383009, 4383040, 4383072, 4391024, 4391056, 4391088, 4391120,
    4391152, 4391184, 4391216, 4391248, 4391280, 4391472, 4391504, 4391536, 4391568, 4391600,
    4391629, 4391658, 4391686, 4391715, 4391744, 4391984, 4392016, 4392048, 4392080, 4392112,
    4392141, 4392170, 4392198, 4392227, 4392256, 4392496, 4392528, 4392560, 4392592, 4392624,
    4392653, 4392682, 4392710, 4392739, 4392768, 4393008, 4393040, 4393072, 4393104, 4393136,
    4393165, 4393194, 4393222, 4393251, 4393280, 4395114, 4395146, 4395177, 4395208, 4395239,
    4395270, 4395301, 4395333, 4395364, 4399204, 4399236, 4399267, 4399299, 4399330, 4399361,
    4399393, 4399424, 4399456, 4407408, 4407440, 4407472, 4407504, 4407536, 4407568, 4407600,
    4407632, 4407663, 4407856, 4407888, 4407919, 4407949, 4407978, 4408007, 4408038, 4408067,
    4408096, 4408368, 4408400, 4408431, 4408461, 4408490, 4408519, 4408550, 4408579, 4408608,
    4408880, 4408912, 4408943, 4408973, 4409002, 4409031, 4409062, 4409091, 4409120, 4409392,
    4409424, 4409455, 4409485, 4409514, 4409543, 4409574, 4409603, 4409632, 4411494, 4411525,
    4411556, 4411588, 4411619, 4411651, 4411682, 4411713, 4411745, 4456496, 4456528, 4456560,
    4456592, 4456624, 4456656, 4456688, 4456720, 4456752, 4456784, 4456816, 4460592, 4460624,
    4460656, 4460688, 4460720, 4460752, 4460784, 4460816, 4460848, 4460878, 4460906, 4464688,
    4464720, 4464752, 4464784, 4464816, 4464848, 4464878, 4464907, 4464937, 4464967, 4464996,
    4472880, 4472912, 4472944, 4472976, 4473008, 4473040, 4473072, 4473104, 4473136, 4473168,
    4473200, 4474896, 4474928, 4474960, 4474992, 4475023, 4475046, 4476976, 4477008, 4477040,
    4477070, 4477100, 4477130, 4477161, 4477190, 4477220, 4477251, 4477281, 4481066, 4481097,
    4481128, 4481159, 4481189, 4481220, 4481251, 4481281, 4481312, 4489264, 4489296, 4489328,
    4489360, 4489392, 4489424, 4489456, 4489488, 4489520, 4489552, 4489584, 4489744, 4489776,
    4489808, 4489840, 4489871, 4489894, 4490256, 4490288, 4490320, 4490352, 4490383, 4490406,
    4490768, 4490800, 4490832, 4490864, 4490895, 4490918, 4493360, 4493392, 4493424, 4493454,
    4493484, 4493514, 4493545, 4493574, 4493604, 4493635, 4493665, 4497450, 4497481, 4497512,
    4497543, 4497573, 4497604, 4497635, 4497665, 4497696, 4505648, 4505680, 4505712, 4505744,
    4505776, 4505808, 4505840, 4505872, 4505903, 4505933, 4505962, 4506128, 4506160, 4506192,
    4506219, 4506247, 4506273, 4506640, 4506672, 4506704, 4506731, 4506759, 4506785, 4507152,
    4507184, 4507216, 4507243, 4507271, 4507297, 4509738, 4509769, 4509800, 4509831, 4509861,
    4509892, 4509923, 4509953, 4509984, 4513828, 4513859, 4513890, 4513922, 4513953, 4513984,
    4522032, 4522064, 4522096, 4522128, 4522160, 4522192, 4522224, 4522256, 4522287, 4522317,
    4522346, 4522512, 4522544, 4522576, 4522603, 4522631, 4522657, 4523024, 4523056, 4523088,
    4523115, 4523143, 4523169, 4523536, 4523568, 4523600, 4523627, 4523655, 4523681, 4524048,
    4524080, 4524112, 4524139, 4524167, 4524193, 4526122, 4526153, 4526184, 4526215, 4526245,
    4526276, 4526307, 4526337, 4526368, 4530212, 4530243, 4530274, 4530306, 4530337, 4530368,
    4538416, 4538448, 4538480, 4538512, 4538544, 4538575, 4538605, 4538635, 4538665, 4538695,
    4538725, 4538896, 4538927, 4538954, 4538982, 4539011, 4539408, 4539439, 4539466, 4539494,
    4539523, 4539920, 4539951, 4539978, 4540006, 4540035, 4540432, 4540463, 4540490, 4540518,
    4540547, 4542502, 4542532, 4542564, 4542595, 4542626, 4542657, 4542688, 4587568, 4587600,
    4587632, 4587664, 4587696, 4587728, 4587760, 4587792, 4587824, 4587856, 4591664, 4591696,
    4591728, 4591760, 4591792, 4591824, 4591852, 4591878, 4591905, 4595760, 4595792, 4595824,
    4595855, 4595883, 4595912, 4595941, 4595969, 4603952, 4603984, 4604016, 4604048, 4604080,
    4604112, 4604144, 4604175, 4604202, 4604230, 4605968, 4606000, 4606029, 4606051, 4608048,
    4608078, 4608107, 4608137, 4608166, 4608196, 4608226, 4612136, 4612166, 4612197, 4612227,
    4612257, 4612288, 4620336, 4620368, 4620400, 4620432, 4620464, 4620496, 4620528, 4620559,
    4620586, 4620614, 4620816, 4620848, 4620877, 4620899, 4621328, 4621360, 4621389, 4621411,
    4621840, 4621872, 4621901, 4621923, 4624432, 4624462, 4624491, 4624521, 4624550, 4624580,
    4624610, 4628520, 4628550, 4628581, 4628611, 4628641, 4628672, 4636720, 4636752, 4636784,
    4636816, 4636848, 4636878, 4636907, 4636935, 4636964, 4636993, 4637200, 4637230, 4637254,
    4637712, 4637742, 4637766, 4638224, 4638254, 4638278, 4640808, 4640838, 4640869, 4640899,
    4640929, 4640960, 4644899, 4644929, 4644960, 4644992, 4653104, 4653136, 4653168, 4653200,
    4653232, 4653262, 4653291, 4653319, 4653348, 4653377, 4653584, 4653614, 4653638, 4654096,
    4654126, 4654150, 4654608, 4654638, 4654662, 4655120, 4655150, 4655174, 4657192, 4657222,
    4657253, 4657283, 4657313, 4657344, 4661283, 4661313, 4661344, 4661376, 4669488, 4669520,
    4669552, 4669582, 4669611, 4669640, 4669670, 4669699, 4669729, 4669968, 4669993, 4670019,
    4670480, 4670505, 4670531, 4670992, 4671017, 4671043, 4671504, 4671529, 4671555, 4673572,
    4673603, 4673633, 4673664, 4718608, 4718640, 4718672, 4718704, 4718736, 4718768, 4718800,
    4718832, 4722704, 4722736, 4722768, 4722800, 4722832, 4722858, 4722883, 4726800, 4726832,
    4726864, 4726892, 4726921, 4726948, 4734992, 4735024, 4735056, 4735088, 4735120, 4735152,
    4735180, 4735207, 4737040, 4737069, 4739088, 4739118, 4739146, 4739175, 4739204, 4739233,
    4743178, 4743206, 4743236, 4743266, 4743296, 4751376, 4751408, 4751440, 4751472, 4751504,
    4751536, 4751564, 4751591, 4751888, 4751917, 4752400, 4752429, 4752912, 4752941, 4755472,
    4755502, 4755530, 4755559, 4755588, 4755617, 4759562, 4759590, 4759620, 4759650, 4759680,
    4767760, 4767792, 4767824, 4767856, 4767887, 4767914, 4767941, 4767970, 4768272, 4768294,
    4768784, 4768806, 4769296, 4769318, 4771850, 4771878, 4771908, 4771938, 4771968, 4775940,
    4775969, 4776000, 4784144, 4784176, 4784208, 4784240, 4784271, 4784298, 4784325, 4784354,
    4784656, 4784678, 4785168, 4785190, 4785680, 4785702, 4786192, 4786214, 4788234, 4788262,
    4788292, 4788322, 4788352, 4792324, 4792353, 4792384, 4800528, 4800560, 4800591, 4800619,
    4800649, 4800677, 4800706, 4800736, 4801038, 4801059, 4801550, 4801571, 4802062, 4802083,
    4802574, 4802595, 4804614, 4804643, 4804673, 4849680, 4849712, 4849744, 4849776, 4849808,
    4849840, 4853776, 4853808, 4853840, 4853869, 4853895, 4857872, 4857904, 4857931, 4857958,
    4857986, 4866064, 4866096, 4866128, 4866160, 4866192, 4866215, 4868112, 4868129, 4870160,
    4870187, 4870214, 4870243, 4870272, 4874249, 4874276, 4874305, 4882448, 4882480, 4882512,
    4882544, 4882576, 4882599, 4882960, 4882977, 4883472, 4883489, 4883984, 4884001, 4886544,
    4886571, 4886598, 4886627, 4886656, 4890633, 4890660, 4890689, 4898832, 4898864, 4898896,
    4898924, 4898952, 4898978, 4899344, 4899856, 4900368, 4902921, 4902948, 4902977, 4907011,
    4907040, 4915216, 4915248, 4915280, 4915308, 4915336, 4915362, 4915728, 4916240, 4916752,
    4917264, 4919305, 4919332, 4919361, 4923395, 4923424, 4931600, 4931631, 4931659, 4931687,
    4931716, 4931744, 4932106, 4932618, 4933130, 4933642, 4935684, 4935713, 4980752, 4980784,
    4980816, 4980848, 4980880, 4984848, 4984880, 4984909, 4984932, 4988944, 4988973, 4988998,
    4989024, 4997136, 4997168, 4997200, 4997229, 4997255, 5001232, 5001256, 5001283, 5005320,
    5005346, 5013520, 5013552, 5013584, 5013613, 5013639, 5017616, 5017640, 5017667, 5021704,
    5021730, 5029904, 5029936, 5029964, 5029990, 5030018, 5033992, 5034018, 5038082, 5046288,
    5046320, 5046348, 5046374, 5046402, 5050376, 5050402, 5054466, 5062672, 5062700, 5062727,
    5062755, 5066756, 5066784, 5111824, 5111856, 5111888, 5111920, 5115920, 5115952, 5115974,
    5120016, 5120041, 5120065, 5128208, 5128240, 5128271, 5128292, 5132302, 5132325, 5136390,
    5136416, 5144592, 5144624, 5144655, 5144676, 5148686, 5148709, 5152774, 5152800, 5160976,
    5161007, 5161031, 5161056, 5165062, 5165088, 5169153, 5177360, 5177391, 5177415, 5177440,
    5181446, 5181472, 5185537, 5193744, 5193769, 5193795, 5197827, 5242896, 5242928, 5242960,
    5246992, 5247020, 5251088, 5251109, 5259280, 5259312, 5259335, 5263372, 5263394, 5267461,
    5275664, 5275696, 5275719, 5279756, 5279778, 5283845, 5292048, 5292075, 5292098, 5296133,
    5300225, 5308432, 5308459, 5308482, 5312517, 5316609, 5324816, 5324838, 5324864, 5328898,
    5373968, 5374000, 5378064, 5378086, 5382160, 5382177, 5390352, 5390383, 5394442, 5398532,
    5406736, 5406767, 5410826, 5414916, 5423120, 5423143, 5427204, 5431296, 5439504, 5439527,
    5443588, 5447680, 5455887, 5455907, 5459969, 5505040, 5505072, 5509136, 5509152, 5513230,
    5521424, 5521449, 5525512, 5529603, 5537808, 5537833, 5541896, 5545987, 5554192, 5554211,
    5558275, 5570576, 5570595, 5574659, 5586957, 5586976, 5591040, 5636112, 5636142, 5640208,
    5644299, 5652496, 5652515, 5656582, 5660673, 5668880, 5668899, 5672966, 5677057, 5685264,
    5689345, 5701648, 5705729, 5718027, 5767248, 5767280, 5767312, 5767344, 5767376, 5767408,
    5767440, 5767472, 5767504, 5767536, 5771344, 5771376, 5771408, 5771440, 5771472, 5771504,
    5771536, 5771568, 5771600, 5771632, 5775440, 5775472, 5775504, 5775536, 5775568, 5775600,
    5775632, 5775663, 5775693, 5775723, 5783632, 5783664, 5783696, 5783728, 5783760, 5783792,
    5783824, 5783856, 5783888, 5783920, 5785616, 5785648, 5785680, 5785712, 5785744, 5785776,
    5785805, 5785832, 5785857, 5787728, 5787760, 5787792, 5787823, 5787854, 5787884, 5787915,
    5787945, 5787976, 5788006, 5791818, 5791849, 5791880, 5791911, 5791942, 5791973, 5792004,
    5792035, 5792066, 5792097, 5800016, 5800048, 5800080, 5800112, 5800144, 5800176, 5800208,
    5800240, 5800272, 5800304, 5800464, 5800496, 5800528, 5800560, 5800592, 5800624, 5800653,
    5800680, 5800705, 5800976, 5801008, 5801040, 5801072, 5801104, 5801136, 5801165, 5801192,
    5801217, 5801488, 5801520, 5801552, 5801584, 5801616, 5801648, 5801677, 5801704, 5801729,
    5804112, 5804144, 5804176, 5804207, 5804238, 5804268, 5804299, 5804329, 5804360, 5804390,
    5808202, 5808233, 5808264, 5808295, 5808326, 5808357, 5808388, 5808419, 5808450, 5808481,
    5816400, 5816432, 5816464, 5816496, 5816528, 5816560, 5816592, 5816624, 5816656, 5816688,
    5816848, 5816880, 5816912, 5816944, 5816975, 5817002, 5817030, 5817059, 5817360, 5817392,
    5817424, 5817456, 5817487, 5817514, 5817542, 5817571, 5817872, 5817904, 5817936, 5817968,
    5817999, 5818026, 5818054, 5818083, 5820490, 5820521, 5820552, 5820583, 5820614, 5820645,
    5820676, 5820707, 5820738, 5820769, 5824580, 5824611, 5824643, 5824674, 5824705, 5824737,
    5824768, 5824800, 5832784, 5832816, 5832848, 5832880, 5832912, 5832944, 5832976, 5833008,
    5833040, 5833072, 5833232, 5833264, 5833296, 5833328, 5833359, 5833386, 5833414, 5833443,
    5833744, 5833776, 5833808, 5833840, 5833871, 5833898, 5833926, 5833955, 5834256, 5834288,
    5834320, 5834352, 5834383, 5834410, 5834438, 5834467, 5834768, 5834800, 5834832, 5834864,
    5834895, 5834922, 5834950, 5834979, 5836874, 5836905, 5836936, 5836967, 5836998, 5837029,
    5837060, 5837091, 5837122, 5837153, 5840964, 5840995, 5841027, 5841058, 5841089, 5841121,
    5841152, 5841184, 5849168, 5849200, 5849232, 5849264, 5849296, 5849328, 5849359, 5849390,
    5849420, 5849451, 5849616, 5849648, 5849679, 5849708, 5849737, 5849766, 5849795, 5849824,
    5850128, 5850160, 5850191, 5850220, 5850249, 5850278, 5850307, 5850336, 5850640, 5850672,
    5850703, 5850732, 5850761, 5850790, 5850819, 5850848, 5851152, 5851184, 5851215, 5851244,
    5851273, 5851302, 5851331, 5851360, 5853254, 5853285, 5853316, 5853347, 5853379, 5853410,
    5853441, 5853472, 5853504, 5898288, 5898320, 5898352, 5898384, 5898416, 5898448, 5898480,
    5898512, 5898544, 5898576, 5898608, 5902384, 5902416, 5902448, 5902480, 5902512, 5902544,
    5902576, 5902604, 5902631, 5902660, 5906480, 5906512, 5906544, 5906576, 5906606, 5906635,
    5906665, 5906693, 5906722, 5906752, 5914672, 5914704, 5914736, 5914768, 5914800, 5914832,
    5914864, 5914896, 5914928, 5914957, 5914983, 5916688, 5916720, 5916752, 5916778, 5916803,
    5918768, 5918799, 5918829, 5918859, 5918889, 5918918, 5918948, 5918978, 5919008, 5922857,
    5922887, 5922918, 5922949, 5922979, 5923009, 5923040, 5931056, 5931088, 5931120, 5931152,
    5931184, 5931216, 5931248, 5931280, 5931312, 5931341, 5931367, 5931536, 5931568, 5931600,
    5931626, 5931651, 5932048, 5932080, 5932112, 5932138, 5932163, 5932560, 5932592, 5932624,
    5932650, 5932675, 5935152, 5935183, 5935213, 5935243, 5935273, 5935302, 5935332, 5935362,
    5935392, 5939241, 5939271, 5939302, 5939333, 5939363, 5939393, 5939424, 5947440, 5947472,
    5947504, 5947536, 5947568, 5947600, 5947631, 5947659, 5947688, 5947718, 5947746, 5947920,
    5947952, 5947978, 5948004, 5948432, 5948464, 5948490, 5948516, 5948944, 5948976, 5949002,
    5949028, 5951529, 5951559, 5951590, 5951621, 5951651, 5951681, 5951712, 5955619, 5955650,
    5955681, 5955712, 5963824, 5963856, 5963888, 5963920, 5963952, 5963984, 5964015, 5964043,
    5964072, 5964102, 5964130, 5964304, 5964336, 5964362, 5964388, 5964816, 5964848, 5964874,
    5964900, 5965328, 5965360, 5965386, 5965412, 5965840, 5965872, 5965898, 5965924, 5967913,
    5967943, 5967974, 5968005, 5968035, 5968065, 5968096, 5972003, 5972034, 5972065, 5972096,
    5980208, 5980240, 5980272, 5980304, 5980333, 5980363, 5980393, 5980422, 5980452, 5980482,
    5980512, 5980688, 5980715, 5980742, 5980769, 5981200, 5981227, 5981254, 5981281, 5981712,
    5981739, 5981766, 5981793, 5982224, 5982251, 5982278, 5982305, 5984293, 5984323, 5984354,
    5984385, 5984416, 6029328, 6029360, 6029392, 6029424, 6029456, 6029488, 6029520, 6029552,
    6029582, 6033424, 6033456, 6033488, 6033520, 6033552, 6033580, 6033606, 6033633, 6037520,
    6037552, 6037584, 6037613, 6037642, 6037669, 6037697, 6045712, 6045744, 6045776, 6045808,
    6045840, 6045872, 6045903, 6045930, 6045955, 6047760, 6047792, 6047809, 6049808, 6049838,
    6049867, 6049896, 6049925, 6049954, 6053898, 6053927, 6053956, 6053986, 6054017, 6062096,
    6062128, 6062160, 6062192, 6062224, 6062256, 6062287, 6062314, 6062339, 6062608, 6062640,
    6062657, 6063120, 6063152, 6063169, 6063632, 6063664, 6063681, 6066192, 6066222, 6066251,
    6066280, 6066309, 6066338, 6070282, 6070311, 6070340, 6070370, 6070401, 6078480, 6078512,
    6078544, 6078576, 6078608, 6078635, 6078663, 6078692, 6078992, 6079016, 6079504, 6079528,
    6080016, 6080040, 6082570, 6082599, 6082628, 6082658, 6082689, 6086660, 6086690, 6086720,
    6094864, 6094896, 6094928, 6094960, 6094992, 6095019, 6095047, 6095076, 6095376, 6095400,
    6095888, 6095912, 6096400, 6096424, 6096912, 6096936, 6098954, 6098983, 6099012, 6099042,
    6099073, 6103044, 6103074, 6103104, 6111248, 6111280, 6111311, 6111340, 6111370, 6111398,
    6111427, 6111457, 6111759, 6111780, 6112271, 6112292, 6112783, 6112804, 6113295, 6113316,
    6115334, 6115363, 6115393, 6115424, 6160400, 6160432, 6160464, 6160496, 6160528, 6160560,
    6164496, 6164528, 6164560, 6164589, 6164615, 6168592, 6168624, 6168651, 6168678, 6168706,
    6176784, 6176816, 6176848, 6176880, 6176912, 6176935, 6178832, 6178849, 6180880, 6180907,
    6180934, 6180963, 6180992, 6184969, 6184996, 6185025, 6193168, 6193200, 6193232, 6193264,
    6193296, 6193319, 6193680, 6193697, 6194192, 6194209, 6194704, 6194721, 6197264, 6197291,
    6197318, 6197347, 6197376, 6201353, 6201380, 6201409, 6209552, 6209584, 6209616, 6209644,
    6209672, 6209698, 6210064, 6210576, 6211088, 6213641, 6213668, 6213697, 6217731, 6217760,
    6225936, 6225968, 6226000, 6226028, 6226056, 6226082, 6226448, 6226960, 6227472, 6227984,
    6230025, 6230052, 6230081, 6234115, 6234144, 6242320, 6242351, 6242379, 6242407, 6242436,
    6242464, 6242826, 6243338, 6243850, 6244362, 6246404, 6246433, 6291472, 6291504, 6291536,
    6291568, 6291600, 6295568, 6295600, 6295628, 6295651, 6299664, 6299692, 6299717, 6307856,
    6307888, 6307920, 6307948, 6307972, 6311951, 6311975, 6312002, 6316039, 6316066, 6324240,
    6324272, 6324304, 6324332, 6324356, 6328335, 6328359, 6328386, 6332423, 6332450, 6340624,
    6340656, 6340683, 6340709, 6340736, 6344711, 6344738, 6348802, 6357008, 6357040, 6357067,
    6357093, 6357120, 6361095, 6361122, 6365186, 6373392, 6373420, 6373446, 6373474, 6377475,
    6422544, 6422576, 6422608, 6426640, 6426671, 6426691, 6430736, 6430759, 6438928, 6438960,
    6438988, 6443021, 6443043, 6447110, 6455312, 6455344, 6455372, 6459405, 6459427, 6463494,
    6471696, 6471725, 6471749, 6475782, 6479873, 6488080, 6488109, 6488133, 6492166, 6496257,
    6504464, 6504488, 6504514, 6508546, 6553616, 6553648, 6553678, 6557712, 6557736, 6561808,
    6561827, 6570000, 6570032, 6570051, 6574091, 6574112, 6578180, 6586384, 6586416, 6586435,
    6590475, 6590496, 6594564, 6602768, 6602793, 6606852, 6610944, 6619152, 6619177, 6623236,
    6627328, 6635535, 6635556, 6639617, 6684688, 6684720, 6688784, 6688801, 6692878, 6701072,
    6701098, 6705161, 6709251, 6717456, 6717482, 6721545, 6725635, 6733840, 6733860, 6737923,
    6750224, 6750244, 6754307, 6766605, 6766625, 6770688, 6815760, 6815790, 6819856, 6823947,
    6832144, 6832163, 6836230, 6840321, 6848528, 6848547, 6852614, 6856705, 6864912, 6868993,
    6881296, 6885377, 6897675, 7209040, 7209072, 7209104, 7209136, 7209168, 7209200, 7209232,
    7209264, 7209296, 7209328, 7213136, 7213168, 7213200, 7213232, 7213264, 7213296, 7213328,
    7213360, 7213392, 7213421, 7217232, 7217264, 7217296, 7217328, 7217360, 7217392, 7217421,
    7217451, 7217481, 7217510, 7225424, 7225456, 7225488, 7225520, 7225552, 7225584, 7225616,
    7225648, 7225680, 7225712, 7227408, 7227440, 7227472, 7227504, 7227536, 7227562, 7227587,
    7229520, 7229552, 7229583, 7229613, 7229643, 7229674, 7229704, 7229734, 7229764, 7229795,
    7233609, 7233640, 7233671, 7233702, 7233733, 7233764, 7233794, 7233825, 7233856, 7241808,
    7241840, 7241872, 7241904, 7241936, 7241968, 7242000, 7242032, 7242064, 7242096, 7242256,
    7242288, 7242320, 7242352, 7242384, 7242410, 7242435, 7242768, 7242800, 7242832, 7242864,
    7242896, 7242922, 7242947, 7243280, 7243312, 7243344, 7243376, 7243408, 7243434, 7243459,
    7245904, 7245936, 7245967, 7245997, 7246027, 7246058, 7246088, 7246118, 7246148, 7246179,
    7249993, 7250024, 7250055, 7250086, 7250117, 7250148, 7250178, 7250209, 7250240, 7258192,
    7258224, 7258256, 7258288, 7258320, 7258352, 7258384, 7258416, 7258447, 7258476, 7258640,
    7258672, 7258704, 7258733, 7258762, 7258788, 7259152, 7259184, 7259216, 7259245, 7259274,
    7259300, 7259664, 7259696, 7259728, 7259757, 7259786, 7259812, 7262281, 7262312, 7262343,
    7262374, 7262405, 7262436, 7262466, 7262497, 7262528, 7266371, 7266403, 7266434, 7266465,
    7266496, 7266528, 7274576, 7274608, 7274640, 7274672, 7274704, 7274736, 7274768, 7274800,
    7274831, 7274860, 7275024, 7275056, 7275088, 7275117, 7275146, 7275172, 7275536, 7275568,
    7275600, 7275629, 7275658, 7275684, 7276048, 7276080, 7276112, 7276141, 7276170, 7276196,
    7276560, 7276592, 7276624, 7276653, 7276682, 7276708, 7278665, 7278696, 7278727, 7278758,
    7278789, 7278820, 7278850, 7278881, 7278912, 7282755, 7282787, 7282818, 7282849, 7282880,
    7282912, 7290960, 7290992, 7291024, 7291056, 7291088, 7291118, 7291148, 7291178, 7291209,
    7291239, 7291408, 7291440, 7291468, 7291496, 7291525, 7291553, 7291920, 7291952, 7291980,
    7292008, 7292037, 7292065, 7292432, 7292464, 7292492, 7292520, 7292549, 7292577, 7292944,
    7292976, 7293004, 7293032, 7293061, 7293089, 7295045, 7295076, 7295107, 7295138, 7295169,
    7295201, 7295232, 7340080, 7340112, 7340144, 7340176, 7340208, 7340240, 7340272, 7340304,
    7340336, 7344176, 7344208, 7344240, 7344272, 7344304, 7344333, 7344361, 7344387, 7348272,
    7348304, 7348336, 7348366, 7348394, 7348422, 7348451, 7356464, 7356496, 7356528, 7356560,
    7356592, 7356624, 7356656, 7356684, 7356711, 7358480, 7358512, 7358538, 7360560, 7360589,
    7360618, 7360648, 7360677, 7360707, 7360736, 7364648, 7364678, 7364708, 7364739, 7364769,
    7372848, 7372880, 7372912, 7372944, 7372976, 7373008, 7373040, 7373068, 7373095, 7373328,
    7373360, 7373386, 7373840, 7373872, 7373898, 7374352, 7374384, 7374410, 7376944, 7376973,
    7377002, 7377032, 7377061, 7377091, 7377120, 7381032, 7381062, 7381092, 7381123, 7381153,
    7389232, 7389264, 7389296, 7389328, 7389360, 7389388, 7389417, 7389445, 7389474, 7389712,
    7389740, 7389764, 7390224, 7390252, 7390276, 7390736, 7390764, 7390788, 7393320, 7393350,
    7393380, 7393411, 7393441, 7397411, 7397441, 7397472, 7405616, 7405648, 7405680, 7405712,
    7405744, 7405772, 7405801, 7405829, 7405858, 7406096, 7406124, 7406148, 7406608, 7406636,
    7406660, 7407120, 7407148, 7407172, 7407632, 7407660, 7407684, 7409704, 7409734, 7409764,
    7409795, 7409825, 7413795, 7413825, 7413856, 7422000, 7422032, 7422063, 7422093, 7422122,
    7422151, 7422181, 7422210, 7422480, 7422503, 7422529, 7422992, 7423015, 7423041, 7423504,
    7423527, 7423553, 7424016, 7424039, 7424065, 7426084, 7426114, 7426145, 7426176, 7471120,
    7471152, 7471184, 7471216, 7471248, 7471280, 7471312, 7475216, 7475248, 7475280, 7475312,
    7475339, 7475363, 7479312, 7479344, 7479373, 7479400, 7479429, 7487504, 7487536, 7487568,
    7487600, 7487632, 7487660, 7487684, 7489552, 7489574, 7491600, 7491628, 7491656, 7491684,
    7491713, 7495689, 7495717, 7495746, 7495776, 7503888, 7503920, 7503952, 7503984, 7504016,
    7504044, 7504068, 7504400, 7504422, 7504912, 7504934, 7505424, 7505446, 7507984, 7508012,
    7508040, 7508068, 7508097, 7512073, 7512101, 7512130, 7512160, 7520272, 7520304, 7520336,
    7520366, 7520395, 7520421, 7520448, 7520784, 7520801, 7521296, 7521313, 7521808, 7521825,
    7524361, 7524389, 7524418, 7524448, 7528451, 7528481, 7536656, 7536688, 7536720, 7536750,
    7536779, 7536805, 7536832, 7537168, 7537185, 7537680, 7537697, 7538192, 7538209, 7538704,
    7538721, 7540745, 7540773, 7540802, 7540832, 7544835, 7544865, 7553040, 7553072, 7553100,
    7553129, 7553158, 7553186, 7553548, 7554060, 7554572, 7555084, 7557125, 7557154, 7557184,
    7602192, 7602224, 7602256, 7602288, 7602320, 7606288, 7606320, 7606349, 7606372, 7610384,
    7610413, 7610438, 7610464, 7618576, 7618608, 7618640, 7618669, 7618695, 7622672, 7622696,
    7622723, 7626760, 7626786, 7634960, 7634992, 7635024, 7635053, 7635079, 7639056, 7639080,
    7639107, 7643144, 7643170, 7651344, 7651376, 7651404, 7651430, 7651458, 7655432, 7655458,
    7659522, 7667728, 7667760, 7667788, 7667814, 7667842, 7671816, 7671842, 7675906, 7684112,
    7684140, 7684167, 7684195, 7688196, 7688224, 7733264, 7733296, 7733328, 7737360, 7737391,
    7737411, 7741456, 7741479, 7749648, 7749680, 7749708, 7753741, 7753763, 7757830, 7766032,
    7766064, 7766092, 7770125, 7770147, 7774214, 7782416, 7782445, 7782469, 7786502, 7790593,
    7798800, 7798829, 7798853, 7802886, 7806977, 7815184, 7815208, 7815234, 7819266, 7864336,
    7864368, 7868432, 7868455, 7872528, 7872546, 7880720, 7880752, 7884810, 7888900, 7897104,
    7897136, 7901194, 7905284, 7913488, 7913512, 7917572, 7921664, 7929872, 7929896, 7933956,
    7938048, 7946255, 7946276, 7950337, 7995408, 7995440, 7999504, 8003597, 8011792, 8011815,
    8015880, 8019970, 8028176, 8028199, 8032264, 8036354, 8044560, 8044578, 8048642, 8060944,
    8060962, 8065026, 8077324, 8077344, 8081408, 8126480, 8130576, 8134666, 8142864, 8146949,
    8151041, 8159248, 8163333, 8167425, 8175632, 8179713, 8192016, 8196097, 8208394, 8650800,
    8650832, 8650864, 8650896, 8650928, 8650960, 8650992, 8651024, 8651056, 8651088, 8651120,
    8654896, 8654928, 8654960, 8654992, 8655024, 8655056, 8655088, 8655120, 8655149, 8655178,
    8655206, 8658992, 8659024, 8659056, 8659088, 8659120, 8659150, 8659180, 8659209, 8659238,
    8659268, 8659297, 8667184, 8667216, 8667248, 8667280, 8667312, 8667344, 8667376, 8667408,
    8667440, 8667472, 8667503, 8669200, 8669232, 8669264, 8669296, 8669322, 8669345, 8671280,
    8671312, 8671343, 8671373, 8671403, 8671433, 8671463, 8671493, 8671523, 8671553, 8675370,
    8675400, 8675431, 8675462, 8675492, 8675523, 8675554, 8675584, 8683568, 8683600, 8683632,
    8683664, 8683696, 8683728, 8683760, 8683792, 8683824, 8683856, 8683887, 8684048, 8684080,
    8684112, 8684144, 8684170, 8684193, 8684560, 8684592, 8684624, 8684656, 8684682, 8684705,
    8685072, 8685104, 8685136, 8685168, 8685194, 8685217, 8687664, 8687696, 8687727, 8687757,
    8687787, 8687817, 8687847, 8687877, 8687907, 8687937, 8691754, 8691784, 8691815, 8691846,
    8691876, 8691907, 8691938, 8691968, 8699952, 8699984, 8700016, 8700048, 8700080, 8700112,
    8700144, 8700175, 8700204, 8700234, 8700263, 8700432, 8700464, 8700494, 8700521, 8700548,
    8700944, 8700976, 8701006, 8701033, 8701060, 8701456, 8701488, 8701518, 8701545, 8701572,
    8704042, 8704072, 8704103, 8704134, 8704164, 8704195, 8704226, 8704256, 8708132, 8708163,
    8708194, 8708225, 8708256, 8716336, 8716368, 8716400, 8716432, 8716464, 8716496, 8716528,
    8716559, 8716588, 8716618, 8716647, 8716816, 8716848, 8716878, 8716905, 8716932, 8717328,
    8717360, 8717390, 8717417, 8717444, 8717840, 8717872, 8717902, 8717929, 8717956, 8718352,
    8718384, 8718414, 8718441, 8718468, 8720426, 8720456, 8720487, 8720518, 8720548, 8720579,
    8720610, 8720640, 8724516, 8724547, 8724578, 8724609, 8724640, 8732720, 8732752, 8732784,
    8732816, 8732847, 8732877, 8732908, 8732937, 8732967, 8732998, 8733027, 8733200, 8733229,
    8733257, 8733284, 8733313, 8733712, 8733741, 8733769, 8733796, 8733825, 8734224, 8734253,
    8734281, 8734308, 8734337, 8734736, 8734765, 8734793, 8734820, 8734849, 8736805, 8736836,
    8736867, 8736898, 8736929, 8736960, 8781840, 8781872, 8781904, 8781936, 8781968, 8782000,
    8782032, 8782064, 8782094, 8785936, 8785968, 8786000, 8786032, 8786064, 8786092, 8786118,
    8786145, 8790032, 8790064, 8790096, 8790125, 8790154, 8790181, 8790209, 8798224, 8798256,
    8798288, 8798320, 8798352, 8798384, 8798415, 8798442, 8798467, 8800272, 8800304, 8800321,
    8802320, 8802350, 8802379, 8802408, 8802437, 8802466, 8806410, 8806439, 8806468, 8806498,
    8806529, 8814608, 8814640, 8814672, 8814704, 8814736, 8814768, 8814799, 8814826, 8814851,
    8815120, 8815152, 8815169, 8815632, 8815664, 8815681, 8816144, 8816176, 8816193, 8818704,
    8818734, 8818763, 8818792, 8818821, 8818850, 8822794, 8822823, 8822852, 8822882, 8822913,
    8830992, 8831024, 8831056, 8831088, 8831120, 8831147, 8831175, 8831204, 8831504, 8831528,
    8832016, 8832040, 8832528, 8832552, 8835082, 8835111, 8835140, 8835170, 8835201, 8839172,
    8839202, 8839232, 8847376, 8847408, 8847440, 8847472, 8847504, 8847531, 8847559, 8847588,
    8847888, 8847912, 8848400, 8848424, 8848912, 8848936, 8849424, 8849448, 8851466, 8851495,
    8851524, 8851554, 8851585, 8855556, 8855586, 8855616, 8863760, 8863792, 8863823, 8863852,
    8863882, 8863910, 8863939, 8863969, 8864271, 8864292, 8864783, 8864804, 8865295, 8865316,
    8865807, 8865828, 8867846, 8867875, 8867905, 8867936, 8912912, 8912944, 8912976, 8913008,
    8913040, 8913070, 8917008, 8917040, 8917072, 8917098, 8917123, 8921104, 8921135, 8921161,
    8921188, 8929296, 8929328, 8929360, 8929392, 8929420, 8929443, 8931344, 8933392, 8933417,
    8933445, 8933473, 8937480, 8937507, 8937536, 8945680, 8945712, 8945744, 8945776, 8945804,
    8945827, 8946192, 8946704, 8947216, 8949776, 8949801, 8949829, 8949857, 8953864, 8953891,
    8953920, 8962064, 8962096, 8962127, 8962154, 8962181, 8962574, 8963086, 8963598, 8966152,
    8966179, 8966208, 8970243, 8970272, 8978448, 8978480, 8978511, 8978538, 8978565, 8978958,
    8979470, 8979982, 8980494, 8982536, 8982563, 8982592, 8986627, 8986656, 8994832, 8994862,
    8994889, 8994917, 8994946, 8995337, 8995849, 8996361, 8996873, 8998916, 8998944, 9043984,
    9044016, 9044048, 9044080, 9048080, 9048112, 9048134, 9052176, 9052201, 9052225, 9060368,
    9060400, 9060431, 9060452, 9064462, 9064485, 9068550, 9068576, 9076752, 9076784, 9076815,
    9076836, 9080846, 9080869, 9084934, 9084960, 9093136, 9093167, 9093191, 9093216, 9097222,
    9097248, 9101313, 9109520, 9109551, 9109575, 9109600, 9113606, 9113632, 9117697, 9125904,
    9125929, 9125955, 9129987, 9175056, 9175088, 9175118, 9179152, 9179176, 9183248, 9183267,
    9191440, 9191472, 9191491, 9195531, 9195552, 9199620, 9207824, 9207856, 9207875, 9211915,
    9211936, 9216004, 9224208, 9224233, 9228292, 9232384, 9240592, 9240617, 9244676, 9248768,
    9256975, 9256996, 9261057, 9306128, 9306160, 9310224, 9314317, 9322512, 9322535, 9326600,
    9330690, 9338896, 9338919, 9342984, 9347074, 9355280, 9355298, 9359362, 9371664, 9371682,
    9375746, 9388044, 9388064, 9392128, 9437200, 9441296, 9445385, 9453584, 9457669, 9461760,
    9469968, 9474053, 9478144, 9486351, 9490432, 9502735, 9506816, 9519113, 10092592, 10092624,
    10092656, 10092688, 10092720, 10092752, 10092784, 10092816, 10092848, 10092880, 10092912,
    10096688, 10096720, 10096752, 10096784, 10096816, 10096848, 10096880, 10096908, 10096935,
    10096964, 10100784, 10100816, 10100848, 10100880, 10100910, 10100939, 10100969, 10100997,
    10101026, 10101056, 10108976, 10109008, 10109040, 10109072, 10109104, 10109136, 10109168,
    10109200, 10109232, 10109261, 10109287, 10110992, 10111024, 10111056, 10111082, 10111107,
    10113072, 10113103, 10113133, 10113163, 10113193, 10113222, 10113252, 10113282, 10113312,
    10117161, 10117191, 10117222, 10117253, 10117283, 10117313, 10117344, 10125360, 10125392,
    10125424, 10125456, 10125488, 10125520, 10125552, 10125584, 10125616, 10125645, 10125671,
    10125840, 10125872, 10125904, 10125930, 10125955, 10126352, 10126384, 10126416, 10126442,
    10126467, 10126864, 10126896, 10126928, 10126954, 10126979, 10129456, 10129487, 10129517,
    10129547, 10129577, 10129606, 10129636, 10129666, 10129696, 10133545, 10133575, 10133606,
    10133637, 10133667, 10133697, 10133728, 10141744, 10141776, 10141808, 10141840, 10141872,
    10141904, 10141935, 10141963, 10141992, 10142022, 10142050, 10142224, 10142256, 10142282,
    10142308, 10142736, 10142768, 10142794, 10142820, 10143248, 10143280, 10143306, 10143332,
    10145833, 10145863, 10145894, 10145925, 10145955, 10145985, 10146016, 10149923, 10149954,
    10149985, 10150016, 10158128, 10158160, 10158192, 10158224, 10158256, 10158288, 10158319,
    10158347, 10158376, 10158406, 10158434, 10158608, 10158640, 10158666, 10158692, 10159120,
    10159152, 10159178, 10159204, 10159632, 10159664, 10159690, 10159716, 10160144, 10160176,
    10160202, 10160228, 10162217, 10162247, 10162278, 10162309, 10162339, 10162369, 10162400,
    10166307, 10166338, 10166369, 10166400, 10174512, 10174544, 10174576, 10174608, 10174637,
    10174667, 10174697, 10174726, 10174756, 10174786, 10174816, 10174992, 10175019, 10175046,
    10175073, 10175504, 10175531, 10175558, 10175585, 10176016, 10176043, 10176070, 10176097,
    10176528, 10176555, 10176582, 10176609, 10178597, 10178627, 10178658, 10178689, 10178720,
    10223632, 10223664, 10223696, 10223728, 10223760, 10223792, 10223824, 10227728, 10227760,
    10227792, 10227824, 10227853, 10227877, 10231824, 10231856, 10231886, 10231914, 10231942,
    10231969, 10240016, 10240048, 10240080, 10240112, 10240144, 10240174, 10240199, 10242064,
    10242088, 10244112, 10244140, 10244169, 10244197, 10244226, 10248202, 10248229, 10248259,
    10248289, 10256400, 10256432, 10256464, 10256496, 10256528, 10256558, 10256583, 10256912,
    10256936, 10257424, 10257448, 10257936, 10257960, 10260496, 10260524, 10260553, 10260581,
    10260610, 10264586, 10264613, 10264643, 10264673, 10272784, 10272816, 10272848, 10272880,
    10272908, 10272935, 10272962, 10273296, 10273315, 10273808, 10273827, 10274320, 10274339,
    10276874, 10276901, 10276931, 10276961, 10280964, 10280993, 10289168, 10289200, 10289232,
    10289264, 10289292, 10289319, 10289346, 10289680, 10289699, 10290192, 10290211, 10290704,
    10290723, 10291216, 10291235, 10293258, 10293285, 10293315, 10293345, 10297348, 10297377,
    10305552, 10305584, 10305613, 10305642, 10305671, 10305699, 10305728, 10306060, 10306080,
    10306572, 10306592, 10307084, 10307104, 10307596, 10307616, 10309637, 10309666, 10309696,
    10354704, 10354736, 10354768, 10354800, 10354832, 10358800, 10358832, 10358860, 10358883,
    10362896, 10362924, 10362949, 10371088, 10371120, 10371152, 10371180, 10371204, 10375183,
    10375207, 10375234, 10379271, 10379298, 10387472, 10387504, 10387536, 10387564, 10387588,
    10391567, 10391591, 10391618, 10395655, 10395682, 10403856, 10403888, 10403915, 10403941,
    10403968, 10407943, 10407970, 10412034, 10420240, 10420272, 10420299, 10420325, 10420352,
    10424327, 10424354, 10428418, 10436624, 10436652, 10436678, 10436706, 10440707, 10485776,
    10485808, 10485840, 10489872, 10489900, 10493968, 10493989, 10502160, 10502192, 10502215,
    10506252, 10506274, 10510341, 10518544, 10518576, 10518599, 10522636, 10522658, 10526725,
    10534928, 10534955, 10534978, 10539013, 10543105, 10551312, 10551339, 10551362, 10555397,
    10559489, 10567696, 10567718, 10567744, 10571778, 10616848, 10616880, 10620944, 10620961,
    10625038, 10633232, 10633258, 10637321, 10641411, 10649616, 10649642, 10653705, 10657795,
    10666000, 10666020, 10670083, 10682384, 10682404, 10686467, 10698765, 10698785, 10702848,
    10747920, 10752016, 10756106, 10764304, 10768389, 10772481, 10780688, 10784773, 10788865,
    10797072, 10801153, 10813456, 10817537, 10829834, 11534384, 11534416, 11534448, 11534480,
    11534512, 11534544, 11534576, 11534608, 11534640, 11534672, 11538480, 11538512, 11538544,
    11538576, 11538608, 11538640, 11538668, 11538694, 11538721, 11542576, 11542608, 11542640,
    11542671, 11542699, 11542728, 11542757, 11542785, 11550768, 11550800, 11550832, 11550864,
    11550896, 11550928, 11550960, 11550991, 11551018, 11551046, 11552784, 11552816, 11552845,
    11552867, 11554864, 11554894, 11554923, 11554953, 11554982, 11555012, 11555042, 11558952,
    11558982, 11559013, 11559043, 11559073, 11559104, 11567152, 11567184, 11567216, 11567248,
    11567280, 11567312, 11567344, 11567375, 11567402, 11567430, 11567632, 11567664, 11567693,
    11567715, 11568144, 11568176, 11568205, 11568227, 11568656, 11568688, 11568717, 11568739,
    11571248, 11571278, 11571307, 11571337, 11571366, 11571396, 11571426, 11575336, 11575366,
    11575397, 11575427, 11575457, 11575488, 11583536, 11583568, 11583600, 11583632, 11583664,
    11583694, 11583723, 11583751, 11583780, 11583809, 11584016, 11584046, 11584070, 11584528,
    11584558, 11584582, 11585040, 11585070, 11585094, 11587624, 11587654, 11587685, 11587715,
    11587745, 11587776, 11591715, 11591745, 11591776, 11591808, 11599920, 11599952, 11599984,
    11600016, 11600048, 11600078, 11600107, 11600135, 11600164, 11600193, 11600400, 11600430,
    11600454, 11600912, 11600942, 11600966, 11601424, 11601454, 11601478, 11601936, 11601966,
    11601990, 11604008, 11604038, 11604069, 11604099, 11604129, 11604160, 11608099, 11608129,
    11608160, 11608192, 11616304, 11616336, 11616368, 11616398, 11616427, 11616456, 11616486,
    11616515, 11616545, 11616784, 11616809, 11616835, 11617296, 11617321, 11617347, 11617808,
    11617833, 11617859, 11618320, 11618345, 11618371, 11620388, 11620419, 11620449, 11620480,
    11665424, 11665456, 11665488, 11665520, 11665552, 11665584, 11669520, 11669552, 11669584,
    11669613, 11669639, 11673616, 11673648, 11673675, 11673702, 11673730, 11681808, 11681840,
    11681872, 11681904, 11681936, 11681959, 11683856, 11683873, 11685904, 11685931, 11685958,
    11685987, 11686016, 11689993, 11690020, 11690049, 11698192, 11698224, 11698256, 11698288,
    11698320, 11698343, 11698704, 11698721, 11699216, 11699233, 11699728, 11699745, 11702288,
    11702315, 11702342, 11702371, 11702400, 11706377, 11706404, 11706433, 11714576, 11714608,
    11714640, 11714668, 11714696, 11714722, 11715088, 11715600, 11716112, 11718665, 11718692,
    11718721, 11722755, 11722784, 11730960, 11730992, 11731024, 11731052, 11731080, 11731106,
    11731472, 11731984, 11732496, 11733008, 11735049, 11735076, 11735105, 11739139, 11739168,
    11747344, 11747375, 11747403, 11747431, 11747460, 11747488, 11747850, 11748362, 11748874,
    11749386, 11751428, 11751457, 11796496, 11796528, 11796560, 11796592, 11800592, 11800624,
    11800646, 11804688, 11804713, 11804737, 11812880, 11812912, 11812943, 11812964, 11816974,
    11816997, 11821062, 11821088, 11829264, 11829296, 11829327, 11829348, 11833358, 11833381,
    11837446, 11837472, 11845648, 11845679, 11845703, 11845728, 11849734, 11849760, 11853825,
    11862032, 11862063, 11862087, 11862112, 11866118, 11866144, 11870209, 11878416, 11878441,
    11878467, 11882499, 11927568, 11927600, 11931664, 11931686, 11935760, 11935777, 11943952,
    11943983, 11948042, 11952132, 11960336, 11960367, 11964426, 11968516, 11976720, 11976743,
    11980804, 11984896, 11993104, 11993127, 11997188, 12001280, 12009487, 12009507, 12013569,
    12058640, 12058670, 12062736, 12066827, 12075024, 12075043, 12079110, 12083201, 12091408,
    12091427, 12095494, 12099585, 12107792, 12111873, 12124176, 12128257, 12140555, 12976176,
    12976208, 12976240, 12976272, 12976304, 12976336, 12976368, 12976400, 12976430, 12980272,
    12980304, 12980336, 12980368, 12980400, 12980426, 12980454, 12980480, 12984368, 12984400,
    12984431, 12984460, 12984488, 12984516, 12984545, 12992560, 12992592, 12992624, 12992656,
    12992688, 12992720, 12992751, 12992777, 12992803, 12994576, 12994608, 12994631, 12996655,
    12996684, 12996713, 12996743, 12996772, 12996801, 13000743, 13000773, 13000803, 13000834,
    13000864, 13008944, 13008976, 13009008, 13009040, 13009072, 13009104, 13009135, 13009161,
    13009187, 13009424, 13009456, 13009479, 13009936, 13009968, 13009991, 13010448, 13010480,
    13010503, 13013039, 13013068, 13013097, 13013127, 13013156, 13013185, 13017127, 13017157,
    13017187, 13017218, 13017248, 13025328, 13025360, 13025392, 13025424, 13025454, 13025482,
    13025511, 13025539, 13025808, 13025835, 13025858, 13026320, 13026347, 13026370, 13026832,
    13026859, 13026882, 13029415, 13029445, 13029475, 13029506, 13029536, 13033506, 13033537,
    13033568, 13041712, 13041744, 13041776, 13041808, 13041838, 13041866, 13041895, 13041923,
    13042192, 13042219, 13042242, 13042704, 13042731, 13042754, 13043216, 13043243, 13043266,
    13043728, 13043755, 13043778, 13045799, 13045829, 13045859, 13045890, 13045920, 13049890,
    13049921, 13049952, 13058096, 13058128, 13058158, 13058188, 13058217, 13058246, 13058275,
    13058304, 13058576, 13058598, 13058624, 13059088, 13059110, 13059136, 13059600, 13059622,
    13059648, 13060112, 13060134, 13060160, 13062179, 13062210, 13062240, 13107216, 13107248,
    13107280, 13107312, 13107344, 13111312, 13111344, 13111376, 13111400, 13111425, 13115408,
    13115439, 13115464, 13115491, 13123600, 13123632, 13123664, 13123696, 13123722, 13127696,
    13127721, 13127748, 13127776, 13131784, 13131811, 13131840, 13139984, 13140016, 13140048,
    13140080, 13140106, 13144080, 13144105, 13144132, 13144160, 13148168, 13148195, 13148224,
    13156368, 13156400, 13156430, 13156457, 13156484, 13160456, 13160483, 13160512, 13164547,
    13172752, 13172784, 13172814, 13172841, 13172868, 13176840, 13176867, 13176896, 13180931,
    13189136, 13189165, 13189193, 13189220, 13189249, 13193220, 13193248, 13238288, 13238320,
    13238352, 13242384, 13242413, 13242432, 13246480, 13246502, 13254672, 13254704, 13254729,
    13258764, 13258786, 13262853, 13271056, 13271088, 13271113, 13275148, 13275170, 13279237,
    13287440, 13287468, 13287491, 13291525, 13295617, 13303824, 13303852, 13303875, 13307909,
    13312001, 13320208, 13320231, 13320256, 13324290, 13369360, 13369392, 13373456, 13373472,
    13377550, 13385744, 13385769, 13389832, 13393923, 13402128, 13402153, 13406216, 13410307,
    13418512, 13418531, 13422595, 13434896, 13434915, 13438979, 13451277, 13451296, 13455360,
    14417936, 14417968, 14418000, 14418032, 14418064, 14418096, 14418128, 14418160, 14418190,
    14422032, 14422064, 14422096, 14422128, 14422160, 14422188, 14422214, 14422241, 14426128,
    14426160, 14426192, 14426221, 14426250, 14426277, 14426305, 14434320, 14434352, 14434384,
    14434416, 14434448, 14434480, 14434511, 14434538, 14434563, 14436368, 14436400, 14436417,
    14438416, 14438446, 14438475, 14438504, 14438533, 14438562, 14442506, 14442535, 14442564,
    14442594, 14442625, 14450704, 14450736, 14450768, 14450800, 14450832, 14450864, 14450895,
    14450922, 14450947, 14451216, 14451248, 14451265, 14451728, 14451760, 14451777, 14452240,
    14452272, 14452289, 14454800, 14454830, 14454859, 14454888, 14454917, 14454946, 14458890,
    14458919, 14458948, 14458978, 14459009, 14467088, 14467120, 14467152, 14467184, 14467216,
    14467243, 14467271, 14467300, 14467600, 14467624, 14468112, 14468136, 14468624, 14468648,
    14471178, 14471207, 14471236, 14471266, 14471297, 14475268, 14475298, 14475328, 14483472,
    14483504, 14483536, 14483568, 14483600, 14483627, 14483655, 14483684, 14483984, 14484008,
    14484496, 14484520, 14485008, 14485032, 14485520, 14485544, 14487562, 14487591, 14487620,
    14487650, 14487681, 14491652, 14491682, 14491712, 14499856, 14499888, 14499919, 14499948,
    14499978, 14500006, 14500035, 14500065, 14500367, 14500388, 14500879, 14500900, 14501391,
    14501412, 14501903, 14501924, 14503942, 14503971, 14504001, 14504032, 14549008, 14549040,
    14549072, 14549104, 14549136, 14553104, 14553136, 14553164, 14553187, 14557200, 14557228,
    14557253, 14565392, 14565424, 14565456, 14565484, 14565508, 14569487, 14569511, 14569538,
    14573575, 14573602, 14581776, 14581808, 14581840, 14581868, 14581892, 14585871, 14585895,
    14585922, 14589959, 14589986, 14598160, 14598192, 14598219, 14598245, 14598272, 14602247,
    14602274, 14606338, 14614544, 14614576, 14614603, 14614629, 14614656, 14618631, 14618658,
    14622722, 14630928, 14630956, 14630982, 14631010, 14635011, 14680080, 14680112, 14680142,
    14684176, 14684200, 14688272, 14688291, 14696464, 14696496, 14696515, 14700555, 14700576,
    14704644, 14712848, 14712880, 14712899, 14716939, 14716960, 14721028, 14729232, 14729257,
    14733316, 14737408, 14745616, 14745641, 14749700, 14753792, 14761999, 14762020, 14766081,
    14811152, 14811182, 14815248, 14819339, 14827536, 14827555, 14831622, 14835713, 14843920,
    14843939, 14848006, 14852097, 14860304, 14864385, 14876688, 14880769, 14893067,
];

/// Count of deduplicated ASTC partition patterns per block size and subset
/// count, indexed `[block_size_index][num_parts - 2]` (column 0 is 2 subsets,
/// column 1 is 3 subsets). Each count equals the length of the matching
/// `UNIQUE_TO_SEED_*` array and bounds the unique-pattern index space.
pub static TOTAL_UNIQUE_PATTERNS: [[u16; 2]; 14] = [
    [437, 329],
    [559, 405],
    [659, 486],
    [720, 534],
    [521, 333],
    [584, 377],
    [640, 410],
    [672, 436],
    [710, 468],
    [701, 476],
    [759, 528],
    [799, 568],
    [818, 597],
    [838, 626],
];

/// Unique-pattern index to ASTC partition seed, 4x4 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_4X4_P2: [u16; 437] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30,
    33, 36, 37, 39, 42, 43, 44, 45, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 61, 62, 63, 65, 66,
    68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 83, 87, 89, 90, 91, 94, 95, 98, 99, 100, 101, 107, 108,
    109, 110, 111, 113, 114, 115, 116, 119, 121, 122, 124, 125, 128, 129, 130, 131, 134, 135, 137,
    138, 139, 142, 143, 144, 146, 147, 149, 150, 151, 156, 158, 159, 161, 165, 167, 168, 169, 170,
    171, 172, 174, 175, 177, 181, 183, 184, 191, 194, 195, 196, 198, 199, 203, 204, 206, 207, 208,
    210, 211, 213, 214, 215, 216, 218, 220, 222, 226, 227, 230, 231, 232, 235, 236, 239, 245, 246,
    247, 248, 249, 250, 252, 253, 254, 255, 257, 258, 260, 262, 264, 270, 271, 273, 277, 278, 279,
    280, 281, 284, 291, 293, 299, 302, 304, 305, 306, 307, 309, 314, 319, 324, 325, 326, 327, 329,
    330, 335, 337, 339, 341, 343, 344, 347, 348, 351, 352, 354, 355, 359, 362, 368, 370, 373, 374,
    375, 376, 380, 386, 387, 388, 389, 394, 395, 399, 404, 409, 411, 412, 418, 419, 422, 423, 426,
    430, 432, 438, 441, 443, 445, 447, 453, 455, 463, 471, 474, 475, 476, 478, 479, 484, 487, 488,
    489, 490, 491, 495, 496, 498, 500, 504, 510, 511, 513, 517, 518, 523, 524, 526, 527, 529, 530,
    531, 534, 539, 542, 546, 547, 549, 553, 558, 567, 578, 581, 583, 586, 587, 591, 593, 594, 595,
    598, 600, 601, 602, 605, 607, 611, 612, 614, 615, 619, 622, 625, 627, 631, 633, 634, 638, 639,
    643, 647, 649, 655, 658, 661, 662, 663, 664, 666, 672, 673, 674, 681, 683, 684, 686, 690, 693,
    694, 695, 696, 700, 703, 705, 707, 713, 716, 719, 720, 724, 726, 727, 730, 731, 732, 736, 742,
    751, 754, 756, 762, 764, 766, 769, 770, 773, 774, 778, 780, 789, 791, 796, 798, 799, 801, 802,
    804, 807, 810, 811, 812, 818, 819, 821, 826, 828, 831, 833, 834, 836, 839, 840, 842, 847, 849,
    852, 868, 872, 873, 877, 881, 886, 887, 888, 890, 895, 897, 898, 899, 902, 903, 906, 911, 914,
    915, 919, 923, 924, 930, 934, 937, 938, 943, 945, 947, 948, 950, 951, 954, 958, 959, 963, 964,
    966, 967, 971, 976, 983, 987, 988, 993, 994, 995, 998, 999, 1006, 1007, 1009, 1013, 1014, 1015,
    1016, 1019, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 5x4 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_5X4_P2: [u16; 559] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30,
    31, 33, 36, 37, 39, 42, 43, 44, 45, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 61, 62, 63, 65,
    66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 83, 87, 88, 89, 90, 91, 94, 95, 97, 98, 99,
    100, 101, 107, 108, 109, 110, 111, 113, 114, 115, 116, 119, 121, 122, 124, 125, 128, 129, 130,
    131, 132, 134, 135, 137, 138, 139, 142, 143, 144, 145, 146, 147, 149, 150, 151, 153, 154, 156,
    157, 158, 159, 161, 165, 167, 168, 169, 170, 171, 172, 174, 175, 177, 181, 183, 184, 185, 188,
    190, 191, 194, 195, 196, 198, 199, 200, 203, 204, 206, 207, 208, 210, 211, 213, 214, 215, 216,
    217, 218, 220, 222, 225, 226, 227, 229, 230, 231, 232, 235, 236, 239, 245, 246, 247, 248, 249,
    250, 252, 253, 254, 255, 257, 258, 260, 261, 262, 264, 265, 267, 270, 271, 273, 275, 277, 278,
    279, 280, 281, 282, 284, 287, 291, 293, 295, 296, 299, 300, 302, 304, 305, 306, 307, 309, 314,
    317, 319, 323, 324, 325, 326, 327, 329, 330, 332, 335, 337, 339, 341, 342, 343, 344, 347, 348,
    349, 350, 351, 352, 354, 355, 359, 361, 362, 365, 368, 370, 373, 374, 375, 376, 380, 381, 386,
    387, 388, 389, 391, 394, 395, 399, 404, 405, 407, 409, 410, 411, 412, 418, 419, 420, 422, 423,
    426, 430, 432, 438, 439, 441, 443, 445, 447, 449, 453, 454, 455, 462, 463, 465, 471, 473, 474,
    475, 476, 478, 479, 482, 484, 486, 487, 488, 489, 490, 491, 495, 496, 498, 500, 501, 503, 504,
    505, 508, 510, 511, 513, 516, 517, 518, 519, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534,
    538, 539, 542, 546, 547, 549, 550, 551, 553, 554, 558, 563, 567, 569, 572, 575, 578, 579, 581,
    583, 586, 587, 591, 593, 594, 595, 598, 600, 601, 602, 605, 606, 607, 608, 611, 612, 614, 615,
    616, 619, 622, 623, 625, 627, 631, 633, 634, 636, 638, 639, 643, 645, 647, 649, 652, 655, 658,
    661, 662, 663, 664, 665, 666, 668, 672, 673, 674, 675, 681, 683, 684, 686, 687, 690, 692, 693,
    694, 695, 696, 697, 700, 702, 703, 705, 707, 709, 711, 713, 716, 719, 720, 724, 725, 726, 727,
    730, 731, 732, 736, 739, 742, 748, 751, 754, 756, 758, 762, 763, 764, 766, 768, 769, 770, 772,
    773, 774, 776, 778, 780, 782, 786, 789, 791, 792, 796, 798, 799, 801, 802, 804, 807, 810, 811,
    812, 814, 818, 819, 821, 823, 826, 828, 830, 831, 833, 834, 835, 836, 839, 840, 842, 845, 847,
    849, 852, 858, 861, 866, 868, 870, 871, 872, 873, 876, 877, 878, 881, 886, 887, 888, 890, 891,
    895, 897, 898, 899, 901, 902, 903, 906, 909, 911, 914, 915, 919, 923, 924, 927, 929, 930, 933,
    934, 935, 936, 937, 938, 941, 942, 943, 945, 947, 948, 950, 951, 954, 955, 958, 959, 963, 964,
    966, 967, 970, 971, 975, 976, 980, 983, 986, 987, 988, 993, 994, 995, 997, 998, 999, 1001,
    1006, 1007, 1009, 1010, 1013, 1014, 1015, 1016, 1019, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 5x5 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_5X5_P2: [u16; 659] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30,
    31, 33, 34, 36, 37, 39, 42, 43, 44, 45, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 60, 61, 62,
    63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 81, 82, 83, 87, 88, 89, 90, 91, 92,
    94, 95, 97, 98, 99, 100, 101, 105, 107, 108, 109, 110, 111, 113, 114, 115, 116, 119, 120, 121,
    122, 124, 125, 128, 129, 130, 131, 132, 134, 135, 137, 138, 139, 142, 143, 144, 145, 146, 147,
    148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 161, 165, 167, 168, 169, 170, 171, 172,
    174, 175, 176, 177, 181, 182, 183, 184, 185, 188, 190, 191, 193, 194, 195, 196, 198, 199, 200,
    203, 204, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 220, 222, 224, 225, 226,
    227, 229, 230, 231, 232, 235, 236, 239, 240, 242, 245, 246, 247, 248, 249, 250, 252, 253, 254,
    255, 256, 257, 258, 260, 261, 262, 264, 265, 267, 270, 271, 273, 275, 276, 277, 278, 279, 280,
    281, 282, 283, 284, 286, 287, 289, 291, 293, 294, 295, 296, 298, 299, 300, 302, 303, 304, 305,
    306, 307, 309, 313, 314, 317, 318, 319, 323, 324, 325, 326, 327, 329, 330, 331, 332, 335, 337,
    338, 339, 341, 342, 343, 344, 347, 348, 349, 350, 351, 352, 354, 355, 356, 359, 361, 362, 365,
    368, 370, 373, 374, 375, 376, 377, 378, 380, 381, 386, 387, 388, 389, 390, 391, 392, 393, 394,
    395, 399, 403, 404, 405, 407, 409, 410, 411, 412, 415, 418, 419, 420, 421, 422, 423, 424, 426,
    430, 432, 433, 437, 438, 439, 440, 441, 443, 444, 445, 446, 447, 449, 453, 454, 455, 458, 462,
    463, 465, 466, 469, 470, 471, 473, 474, 475, 476, 478, 479, 481, 482, 484, 486, 487, 488, 489,
    490, 491, 492, 495, 496, 498, 500, 501, 502, 503, 504, 505, 506, 508, 509, 510, 511, 513, 516,
    517, 518, 519, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534, 538, 539, 542, 546, 547, 548,
    549, 550, 551, 553, 554, 558, 559, 561, 562, 563, 567, 569, 572, 575, 578, 579, 580, 581, 583,
    585, 586, 587, 590, 591, 593, 594, 595, 596, 598, 599, 600, 601, 602, 605, 606, 607, 608, 609,
    610, 611, 612, 614, 615, 616, 617, 619, 620, 621, 622, 623, 625, 627, 631, 633, 634, 636, 638,
    639, 643, 645, 646, 647, 648, 649, 652, 654, 655, 658, 661, 662, 663, 664, 665, 666, 668, 672,
    673, 674, 675, 681, 683, 684, 686, 687, 688, 690, 692, 693, 694, 695, 696, 697, 699, 700, 701,
    702, 703, 705, 707, 709, 711, 713, 714, 716, 719, 720, 722, 724, 725, 726, 727, 730, 731, 732,
    736, 738, 739, 742, 748, 751, 753, 754, 756, 758, 760, 762, 763, 764, 766, 768, 769, 770, 772,
    773, 774, 776, 778, 780, 782, 783, 786, 789, 791, 792, 796, 798, 799, 801, 802, 804, 806, 807,
    808, 810, 811, 812, 813, 814, 818, 819, 821, 823, 826, 828, 830, 831, 833, 834, 835, 836, 839,
    840, 841, 842, 845, 847, 849, 851, 852, 858, 861, 866, 868, 869, 870, 871, 872, 873, 874, 876,
    877, 878, 879, 881, 886, 887, 888, 890, 891, 893, 894, 895, 897, 898, 899, 901, 902, 903, 906,
    909, 910, 911, 912, 914, 915, 917, 919, 920, 921, 923, 924, 927, 929, 930, 933, 934, 935, 936,
    937, 938, 941, 942, 943, 945, 947, 948, 950, 951, 954, 955, 958, 959, 961, 962, 963, 964, 966,
    967, 968, 970, 971, 975, 976, 977, 980, 983, 986, 987, 988, 993, 994, 995, 996, 997, 998, 999,
    1001, 1006, 1007, 1009, 1010, 1013, 1014, 1015, 1016, 1018, 1019, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 6x5 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_6X5_P2: [u16; 720] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30,
    31, 33, 34, 36, 37, 39, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61,
    62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87,
    88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 100, 101, 105, 107, 108, 109, 110, 111, 112, 113, 114,
    115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 134, 135, 136, 137,
    138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159,
    161, 165, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 181, 182, 183, 184, 185, 188,
    190, 191, 193, 194, 195, 196, 198, 199, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 212,
    213, 214, 215, 216, 217, 218, 220, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 235, 236,
    239, 240, 242, 243, 245, 246, 247, 248, 249, 250, 252, 253, 254, 255, 256, 257, 258, 260, 261,
    262, 264, 265, 266, 267, 270, 271, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 286,
    287, 289, 291, 293, 294, 295, 296, 298, 299, 300, 302, 303, 304, 305, 306, 307, 309, 310, 313,
    314, 317, 318, 319, 323, 324, 325, 326, 327, 329, 330, 331, 332, 335, 337, 338, 339, 341, 342,
    343, 344, 347, 348, 349, 350, 351, 352, 354, 355, 356, 357, 359, 360, 361, 362, 363, 365, 367,
    368, 370, 371, 373, 374, 375, 376, 377, 378, 380, 381, 383, 386, 387, 388, 389, 390, 391, 392,
    393, 394, 395, 399, 402, 403, 404, 405, 407, 409, 410, 411, 412, 415, 418, 419, 420, 421, 422,
    423, 424, 426, 430, 432, 433, 436, 437, 438, 439, 440, 441, 443, 444, 445, 446, 447, 449, 453,
    454, 455, 458, 461, 462, 463, 465, 466, 469, 470, 471, 473, 474, 475, 476, 478, 479, 481, 482,
    484, 486, 487, 488, 489, 490, 491, 492, 493, 495, 496, 498, 499, 500, 501, 502, 503, 504, 505,
    506, 508, 509, 510, 511, 513, 516, 517, 518, 519, 521, 523, 524, 526, 527, 529, 530, 531, 532,
    533, 534, 536, 538, 539, 542, 543, 545, 546, 547, 548, 549, 550, 551, 553, 554, 558, 559, 561,
    562, 563, 564, 567, 569, 570, 572, 575, 578, 579, 580, 581, 583, 584, 585, 586, 587, 590, 591,
    593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 605, 606, 607, 608, 609, 610, 611, 612, 614,
    615, 616, 617, 619, 620, 621, 622, 623, 624, 625, 627, 628, 629, 631, 633, 634, 636, 638, 639,
    643, 645, 646, 647, 648, 649, 651, 652, 654, 655, 657, 658, 661, 662, 663, 664, 665, 666, 668,
    672, 673, 674, 675, 681, 683, 684, 686, 687, 688, 690, 692, 693, 694, 695, 696, 697, 699, 700,
    701, 702, 703, 705, 706, 707, 709, 711, 713, 714, 716, 719, 720, 722, 723, 724, 725, 726, 727,
    730, 731, 732, 736, 738, 739, 742, 745, 747, 748, 751, 753, 754, 756, 758, 760, 762, 763, 764,
    766, 768, 769, 770, 772, 773, 774, 776, 778, 780, 782, 783, 784, 786, 788, 789, 791, 792, 795,
    796, 798, 799, 801, 802, 804, 806, 807, 808, 810, 811, 812, 813, 814, 818, 819, 820, 821, 823,
    826, 828, 830, 831, 833, 834, 835, 836, 839, 840, 841, 842, 845, 847, 849, 851, 852, 856, 858,
    861, 866, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 881, 883, 886, 887, 888,
    890, 891, 893, 894, 895, 896, 897, 898, 899, 901, 902, 903, 906, 908, 909, 910, 911, 912, 914,
    915, 917, 919, 920, 921, 923, 924, 927, 929, 930, 932, 933, 934, 935, 936, 937, 938, 941, 942,
    943, 945, 947, 948, 950, 951, 954, 955, 956, 958, 959, 960, 961, 962, 963, 964, 966, 967, 968,
    970, 971, 972, 975, 976, 977, 979, 980, 982, 983, 986, 987, 988, 993, 994, 995, 996, 997, 998,
    999, 1001, 1004, 1006, 1007, 1009, 1010, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1022,
    1023,
];

/// Unique-pattern index to ASTC partition seed, 6x6 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_6X6_P2: [u16; 521] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 31, 33,
    36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 65,
    66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 83, 86, 87, 88, 89, 90, 91, 94, 95, 98, 99,
    100, 101, 103, 107, 108, 109, 110, 112, 114, 115, 116, 119, 121, 122, 125, 128, 129, 130, 131,
    132, 134, 135, 136, 137, 138, 139, 142, 144, 146, 147, 148, 149, 151, 153, 154, 156, 158, 159,
    167, 168, 169, 170, 171, 172, 174, 175, 177, 178, 181, 183, 190, 191, 193, 194, 195, 196, 198,
    199, 203, 206, 207, 210, 211, 213, 214, 215, 216, 217, 218, 220, 222, 223, 225, 226, 227, 229,
    230, 231, 232, 235, 236, 237, 240, 247, 249, 250, 252, 254, 255, 257, 258, 260, 262, 264, 266,
    267, 270, 271, 272, 273, 277, 278, 279, 281, 283, 284, 286, 289, 291, 292, 293, 295, 298, 299,
    302, 303, 305, 306, 307, 309, 314, 316, 318, 319, 323, 324, 326, 327, 329, 335, 339, 341, 343,
    347, 348, 351, 352, 353, 354, 355, 361, 362, 363, 366, 367, 368, 370, 373, 374, 376, 380, 386,
    387, 388, 389, 390, 392, 393, 394, 395, 402, 403, 404, 407, 409, 411, 414, 415, 418, 419, 422,
    423, 426, 430, 432, 433, 436, 437, 438, 439, 440, 441, 445, 447, 450, 452, 453, 455, 458, 461,
    463, 470, 471, 474, 475, 476, 478, 480, 482, 486, 487, 488, 490, 495, 496, 498, 499, 500, 504,
    506, 508, 510, 513, 517, 518, 519, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534, 538, 539,
    543, 545, 546, 547, 549, 550, 551, 553, 554, 558, 562, 567, 569, 572, 578, 581, 583, 585, 586,
    587, 591, 593, 594, 595, 596, 598, 600, 601, 602, 606, 607, 608, 610, 611, 612, 614, 615, 616,
    619, 621, 622, 623, 625, 627, 631, 633, 634, 638, 639, 643, 645, 646, 647, 648, 649, 652, 655,
    658, 661, 662, 663, 664, 665, 670, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690,
    691, 693, 694, 695, 696, 697, 700, 702, 703, 705, 713, 714, 716, 719, 720, 722, 724, 726, 727,
    730, 731, 732, 736, 740, 742, 751, 753, 754, 756, 758, 760, 762, 763, 764, 766, 769, 770, 774,
    778, 780, 786, 789, 791, 794, 797, 798, 799, 801, 802, 804, 805, 807, 808, 810, 811, 812, 817,
    819, 821, 822, 826, 828, 831, 834, 835, 836, 839, 842, 847, 852, 854, 858, 862, 868, 869, 870,
    872, 874, 876, 877, 878, 886, 887, 890, 891, 893, 895, 897, 898, 899, 902, 903, 906, 909, 910,
    911, 912, 914, 919, 929, 930, 934, 936, 937, 938, 942, 943, 945, 947, 948, 950, 951, 954, 955,
    958, 959, 963, 964, 966, 967, 968, 976, 980, 983, 987, 988, 993, 994, 995, 998, 999, 1001,
    1006, 1007, 1008, 1009, 1013, 1014, 1015, 1016, 1019, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 8x5 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_8X5_P2: [u16; 584] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30,
    31, 32, 33, 36, 37, 39, 42, 43, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 61, 62, 63,
    65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 86, 87, 88, 89, 90, 91, 94, 95,
    98, 99, 100, 101, 103, 107, 108, 109, 110, 112, 114, 115, 116, 119, 121, 122, 123, 125, 128,
    129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148, 149, 150, 151,
    154, 156, 158, 159, 165, 167, 168, 169, 170, 171, 172, 174, 175, 177, 178, 181, 183, 184, 191,
    193, 194, 195, 196, 198, 199, 203, 204, 206, 207, 209, 210, 211, 213, 214, 215, 216, 217, 218,
    220, 222, 225, 226, 227, 229, 230, 231, 232, 235, 236, 237, 240, 247, 248, 249, 250, 252, 253,
    254, 255, 257, 258, 260, 261, 262, 264, 266, 267, 270, 271, 272, 273, 277, 278, 279, 281, 284,
    286, 287, 289, 291, 292, 293, 295, 296, 298, 299, 300, 302, 303, 304, 305, 306, 307, 309, 314,
    316, 317, 318, 319, 323, 324, 325, 326, 327, 329, 330, 335, 337, 339, 341, 342, 343, 344, 347,
    348, 351, 352, 353, 354, 355, 359, 361, 362, 363, 366, 367, 368, 370, 371, 374, 375, 376, 380,
    381, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 399, 402, 403, 404, 405, 407, 409, 410,
    411, 412, 415, 418, 419, 422, 423, 424, 426, 430, 432, 433, 436, 437, 438, 439, 440, 441, 444,
    445, 446, 447, 450, 451, 452, 453, 454, 455, 458, 461, 462, 463, 465, 470, 471, 473, 474, 475,
    476, 478, 479, 482, 484, 486, 487, 488, 490, 491, 495, 496, 498, 499, 500, 501, 502, 504, 505,
    506, 508, 510, 511, 513, 517, 518, 519, 521, 523, 524, 526, 527, 530, 531, 533, 534, 535, 538,
    539, 543, 545, 546, 547, 550, 551, 554, 558, 559, 562, 567, 569, 572, 578, 579, 581, 583, 585,
    586, 587, 591, 593, 594, 595, 598, 600, 601, 602, 606, 607, 608, 610, 611, 612, 614, 615, 618,
    619, 621, 622, 623, 625, 627, 631, 633, 636, 638, 639, 643, 645, 646, 647, 648, 649, 650, 651,
    652, 655, 658, 659, 661, 662, 663, 664, 665, 666, 668, 672, 673, 674, 675, 683, 684, 685, 686,
    687, 688, 690, 691, 692, 693, 694, 695, 696, 697, 700, 701, 702, 703, 705, 707, 711, 713, 716,
    719, 720, 722, 724, 725, 726, 727, 730, 731, 732, 736, 739, 740, 742, 748, 751, 753, 754, 756,
    758, 760, 762, 763, 764, 766, 768, 770, 774, 775, 778, 780, 786, 789, 791, 794, 796, 798, 799,
    801, 802, 804, 805, 807, 808, 810, 811, 812, 813, 817, 819, 821, 825, 826, 831, 834, 836, 839,
    841, 842, 845, 847, 849, 851, 852, 854, 856, 862, 868, 869, 870, 871, 872, 874, 876, 877, 879,
    881, 886, 887, 890, 891, 893, 895, 897, 898, 899, 902, 903, 906, 909, 910, 911, 914, 915, 918,
    919, 921, 923, 924, 927, 929, 930, 934, 936, 937, 938, 942, 943, 945, 947, 948, 951, 954, 955,
    958, 959, 962, 963, 964, 966, 967, 968, 970, 971, 976, 977, 979, 983, 987, 988, 989, 993, 994,
    995, 997, 998, 999, 1001, 1006, 1007, 1008, 1009, 1013, 1015, 1016, 1018, 1019, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 8x6 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_8X6_P2: [u16; 640] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 60,
    61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 86, 87, 88, 89, 90,
    91, 94, 95, 98, 99, 100, 101, 103, 107, 108, 109, 110, 112, 113, 114, 115, 116, 119, 121, 122,
    123, 125, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143, 144, 146, 147, 148,
    149, 150, 151, 153, 154, 156, 158, 159, 165, 167, 168, 169, 170, 171, 172, 174, 175, 177, 178,
    181, 183, 184, 190, 191, 193, 194, 195, 196, 198, 199, 200, 203, 204, 206, 207, 208, 209, 210,
    211, 213, 214, 215, 216, 217, 218, 220, 222, 223, 225, 226, 227, 229, 230, 231, 232, 235, 236,
    237, 240, 245, 246, 247, 248, 249, 250, 252, 253, 254, 255, 257, 258, 260, 261, 262, 264, 266,
    267, 270, 271, 272, 273, 277, 278, 279, 281, 283, 284, 286, 287, 289, 291, 292, 293, 294, 295,
    296, 298, 299, 300, 302, 303, 304, 305, 306, 307, 309, 314, 316, 317, 318, 319, 323, 324, 325,
    326, 327, 329, 330, 335, 337, 339, 341, 342, 343, 344, 347, 348, 349, 350, 351, 352, 353, 354,
    355, 359, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 375, 376, 380, 381, 386, 387,
    388, 389, 390, 391, 392, 393, 394, 395, 399, 402, 403, 404, 405, 407, 409, 410, 411, 412, 414,
    415, 418, 419, 422, 423, 424, 426, 430, 432, 433, 436, 437, 438, 439, 440, 441, 443, 444, 445,
    446, 447, 450, 451, 452, 453, 454, 455, 458, 461, 462, 463, 465, 470, 471, 473, 474, 475, 476,
    478, 479, 480, 482, 484, 486, 487, 488, 489, 490, 491, 495, 496, 498, 499, 500, 501, 502, 504,
    505, 506, 508, 510, 511, 513, 517, 518, 519, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534,
    535, 538, 539, 543, 545, 546, 547, 549, 550, 551, 553, 554, 558, 559, 562, 567, 569, 572, 575,
    578, 579, 581, 583, 585, 586, 587, 591, 593, 594, 595, 596, 598, 600, 601, 602, 606, 607, 608,
    610, 611, 612, 614, 615, 616, 618, 619, 621, 622, 623, 625, 627, 631, 633, 634, 636, 638, 639,
    643, 645, 646, 647, 648, 649, 650, 651, 652, 655, 658, 659, 661, 662, 663, 664, 665, 666, 668,
    670, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696,
    697, 700, 701, 702, 703, 705, 707, 711, 713, 714, 716, 719, 720, 722, 724, 725, 726, 727, 730,
    731, 732, 736, 739, 740, 742, 748, 751, 753, 754, 756, 758, 760, 762, 763, 764, 766, 768, 769,
    770, 773, 774, 775, 776, 778, 780, 786, 789, 791, 792, 794, 796, 797, 798, 799, 801, 802, 804,
    805, 807, 808, 810, 811, 812, 813, 817, 818, 819, 821, 822, 825, 826, 828, 830, 831, 833, 834,
    835, 836, 839, 841, 842, 845, 847, 849, 851, 852, 854, 856, 858, 861, 862, 868, 869, 870, 871,
    872, 873, 874, 876, 877, 878, 879, 881, 886, 887, 888, 890, 891, 893, 895, 897, 898, 899, 902,
    903, 906, 909, 910, 911, 912, 914, 915, 918, 919, 921, 923, 924, 927, 929, 930, 933, 934, 935,
    936, 937, 938, 940, 942, 943, 945, 947, 948, 950, 951, 954, 955, 958, 959, 962, 963, 964, 966,
    967, 968, 970, 971, 976, 977, 979, 980, 983, 986, 987, 988, 989, 993, 994, 995, 997, 998, 999,
    1001, 1006, 1007, 1008, 1009, 1013, 1014, 1015, 1016, 1018, 1019, 1021, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x5 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_10X5_P2: [u16; 672] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59,
    61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 84, 85, 86, 87, 88,
    89, 90, 91, 94, 95, 97, 98, 99, 100, 101, 103, 107, 108, 109, 110, 112, 113, 114, 115, 116,
    119, 121, 122, 123, 125, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143, 144,
    145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 165, 167, 168, 169, 170,
    171, 172, 174, 175, 177, 178, 181, 183, 184, 185, 188, 191, 193, 194, 195, 196, 198, 199, 200,
    203, 204, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 219, 220, 222, 223, 225,
    226, 227, 229, 230, 231, 232, 235, 236, 237, 238, 239, 240, 247, 248, 249, 250, 252, 253, 254,
    255, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 275, 277, 278, 279,
    281, 282, 283, 284, 286, 287, 289, 291, 292, 293, 294, 295, 296, 298, 299, 300, 302, 303, 304,
    305, 306, 307, 309, 314, 316, 317, 318, 319, 323, 324, 325, 326, 327, 329, 330, 332, 335, 337,
    339, 341, 342, 343, 344, 347, 348, 349, 350, 351, 352, 353, 354, 355, 358, 359, 361, 362, 363,
    365, 366, 367, 368, 370, 371, 374, 375, 376, 380, 381, 386, 387, 388, 389, 390, 391, 392, 393,
    394, 395, 399, 402, 403, 404, 405, 407, 409, 410, 411, 412, 415, 418, 419, 422, 423, 424, 426,
    429, 430, 432, 433, 436, 437, 438, 439, 440, 441, 443, 444, 445, 446, 447, 449, 450, 451, 452,
    453, 454, 455, 458, 461, 462, 463, 465, 470, 471, 473, 474, 475, 476, 478, 479, 481, 482, 484,
    486, 487, 488, 489, 490, 491, 492, 495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508,
    510, 511, 513, 517, 518, 519, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534, 535, 538, 539,
    542, 543, 545, 546, 547, 548, 550, 551, 554, 558, 559, 562, 567, 569, 570, 571, 572, 575, 578,
    579, 580, 581, 583, 585, 586, 587, 591, 593, 594, 595, 597, 598, 600, 601, 602, 606, 607, 608,
    609, 610, 611, 612, 614, 615, 616, 617, 618, 619, 621, 622, 623, 624, 625, 627, 631, 633, 634,
    636, 638, 639, 643, 645, 646, 647, 648, 649, 650, 651, 652, 655, 657, 658, 659, 661, 662, 663,
    664, 665, 666, 668, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693,
    694, 695, 696, 697, 699, 700, 701, 702, 703, 705, 706, 707, 711, 713, 716, 719, 720, 722, 723,
    724, 725, 726, 727, 730, 731, 732, 736, 739, 740, 742, 748, 751, 753, 754, 755, 756, 757, 758,
    760, 762, 763, 764, 766, 768, 770, 773, 774, 775, 776, 778, 780, 786, 789, 791, 794, 795, 796,
    798, 799, 801, 802, 804, 805, 807, 808, 810, 811, 812, 813, 814, 817, 818, 819, 821, 822, 823,
    825, 826, 828, 830, 831, 834, 835, 836, 839, 841, 842, 845, 847, 849, 851, 852, 854, 856, 862,
    868, 869, 870, 871, 872, 873, 874, 876, 877, 878, 879, 881, 883, 886, 887, 888, 890, 891, 893,
    895, 897, 898, 899, 901, 902, 903, 906, 909, 910, 911, 914, 915, 918, 919, 920, 921, 923, 924,
    927, 929, 930, 932, 933, 934, 935, 936, 937, 938, 941, 942, 943, 945, 947, 948, 950, 951, 954,
    955, 956, 958, 959, 961, 962, 963, 964, 966, 967, 968, 969, 970, 971, 975, 976, 977, 979, 980,
    983, 986, 987, 988, 989, 993, 994, 995, 996, 997, 998, 999, 1001, 1006, 1007, 1008, 1009, 1013,
    1014, 1015, 1016, 1017, 1018, 1019, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x6 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_10X6_P2: [u16; 710] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59,
    60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 84, 85, 86, 87,
    88, 89, 90, 91, 94, 95, 97, 98, 99, 100, 101, 103, 107, 108, 109, 110, 112, 113, 114, 115, 116,
    119, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143,
    144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 165, 167, 168, 169,
    170, 171, 172, 174, 175, 177, 178, 181, 183, 184, 185, 188, 190, 191, 193, 194, 195, 196, 198,
    199, 200, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
    221, 222, 223, 225, 226, 227, 229, 230, 231, 232, 235, 236, 237, 238, 239, 240, 245, 246, 247,
    248, 249, 250, 252, 253, 254, 255, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271,
    272, 273, 274, 275, 277, 278, 279, 281, 282, 283, 284, 286, 287, 289, 291, 292, 293, 294, 295,
    296, 298, 299, 300, 302, 303, 304, 305, 306, 307, 309, 310, 314, 316, 317, 318, 319, 323, 324,
    325, 326, 327, 329, 330, 332, 335, 337, 338, 339, 341, 342, 343, 344, 347, 348, 349, 350, 351,
    352, 353, 354, 355, 358, 359, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 375, 376,
    380, 381, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 399, 402, 403, 404, 405, 407, 409,
    410, 411, 412, 414, 415, 418, 419, 422, 423, 424, 426, 429, 430, 432, 433, 436, 437, 438, 439,
    440, 441, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 458, 461, 462, 463, 465,
    470, 471, 473, 474, 475, 476, 478, 479, 480, 481, 482, 484, 486, 487, 488, 489, 490, 491, 492,
    495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509, 510, 511, 513, 516, 517, 518,
    519, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534, 535, 538, 539, 542, 543, 545, 546, 547,
    548, 549, 550, 551, 553, 554, 558, 559, 562, 567, 569, 570, 571, 572, 575, 578, 579, 580, 581,
    583, 585, 586, 587, 590, 591, 593, 594, 595, 596, 597, 598, 600, 601, 602, 606, 607, 608, 609,
    610, 611, 612, 614, 615, 616, 617, 618, 619, 621, 622, 623, 624, 625, 627, 631, 633, 634, 636,
    638, 639, 643, 645, 646, 647, 648, 649, 650, 651, 652, 655, 657, 658, 659, 661, 662, 663, 664,
    665, 666, 668, 670, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693,
    694, 695, 696, 697, 699, 700, 701, 702, 703, 705, 706, 707, 709, 711, 713, 714, 716, 719, 720,
    722, 723, 724, 725, 726, 727, 730, 731, 732, 736, 739, 740, 742, 748, 751, 753, 754, 755, 756,
    757, 758, 760, 762, 763, 764, 766, 768, 769, 770, 772, 773, 774, 775, 776, 778, 780, 782, 783,
    786, 788, 789, 791, 792, 794, 795, 796, 797, 798, 799, 801, 802, 804, 805, 807, 808, 810, 811,
    812, 813, 814, 817, 818, 819, 821, 822, 823, 825, 826, 828, 830, 831, 833, 834, 835, 836, 839,
    841, 842, 845, 847, 849, 851, 852, 854, 856, 858, 861, 862, 868, 869, 870, 871, 872, 873, 874,
    876, 877, 878, 879, 881, 883, 886, 887, 888, 890, 891, 893, 895, 897, 898, 899, 901, 902, 903,
    906, 908, 909, 910, 911, 912, 914, 915, 918, 919, 920, 921, 923, 924, 927, 929, 930, 932, 933,
    934, 935, 936, 937, 938, 940, 941, 942, 943, 945, 947, 948, 949, 950, 951, 954, 955, 956, 958,
    959, 961, 962, 963, 964, 966, 967, 968, 969, 970, 971, 975, 976, 977, 979, 980, 983, 986, 987,
    988, 989, 993, 994, 995, 996, 997, 998, 999, 1001, 1004, 1006, 1007, 1008, 1009, 1013, 1014,
    1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 8x8 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_8X8_P2: [u16; 701] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 60,
    61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 86, 87, 88, 89, 90,
    91, 94, 95, 97, 98, 99, 100, 101, 102, 103, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
    118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139,
    142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 161, 165, 167,
    168, 169, 170, 171, 172, 174, 175, 177, 178, 181, 182, 183, 184, 188, 190, 191, 193, 194, 195,
    196, 198, 199, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218,
    220, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 235, 236, 237, 239, 240, 242, 245, 246,
    247, 248, 249, 250, 252, 253, 254, 255, 257, 258, 260, 261, 262, 264, 265, 266, 267, 270, 271,
    272, 273, 276, 277, 278, 279, 280, 281, 282, 283, 284, 286, 287, 289, 291, 292, 293, 294, 295,
    296, 298, 299, 300, 302, 303, 304, 305, 306, 307, 309, 314, 316, 317, 318, 319, 323, 324, 325,
    326, 327, 329, 330, 331, 332, 333, 335, 337, 338, 339, 341, 342, 343, 344, 347, 348, 349, 350,
    351, 352, 353, 354, 355, 359, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 375, 376,
    380, 381, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 399, 400, 402, 403, 404, 405, 407,
    409, 410, 411, 412, 414, 415, 418, 419, 420, 422, 423, 424, 426, 430, 432, 433, 436, 437, 438,
    439, 440, 441, 443, 444, 445, 446, 447, 450, 451, 452, 453, 454, 455, 458, 461, 462, 463, 465,
    466, 470, 471, 473, 474, 475, 476, 478, 479, 480, 481, 482, 484, 486, 487, 488, 489, 490, 491,
    495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 510, 511, 513, 516, 517, 518, 519,
    521, 523, 524, 526, 527, 529, 530, 531, 533, 534, 535, 538, 539, 542, 543, 545, 546, 547, 548,
    549, 550, 551, 553, 554, 558, 559, 562, 563, 567, 569, 572, 575, 578, 579, 580, 581, 583, 585,
    586, 587, 590, 591, 593, 594, 595, 596, 598, 599, 600, 601, 602, 605, 606, 607, 608, 609, 610,
    611, 612, 614, 615, 616, 618, 619, 620, 621, 622, 623, 625, 627, 631, 633, 634, 636, 638, 639,
    643, 645, 646, 647, 648, 649, 650, 651, 652, 655, 658, 659, 661, 662, 663, 664, 665, 666, 668,
    670, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696,
    697, 700, 701, 702, 703, 705, 707, 709, 711, 713, 714, 716, 719, 720, 722, 724, 725, 726, 727,
    730, 731, 732, 736, 739, 740, 742, 743, 748, 751, 753, 754, 755, 756, 757, 758, 760, 762, 763,
    764, 766, 768, 769, 770, 772, 773, 774, 775, 776, 778, 780, 782, 783, 786, 789, 791, 792, 793,
    794, 796, 797, 798, 799, 801, 802, 804, 805, 806, 807, 808, 810, 811, 812, 813, 814, 817, 818,
    819, 821, 822, 825, 826, 828, 830, 831, 833, 834, 835, 836, 839, 840, 841, 842, 845, 847, 849,
    851, 852, 854, 856, 858, 861, 862, 866, 868, 869, 870, 871, 872, 873, 874, 876, 877, 878, 879,
    881, 886, 887, 888, 890, 891, 893, 894, 895, 897, 898, 899, 901, 902, 903, 906, 908, 909, 910,
    911, 912, 914, 915, 916, 917, 918, 919, 921, 923, 924, 927, 929, 930, 933, 934, 935, 936, 937,
    938, 940, 942, 943, 945, 947, 948, 949, 950, 951, 954, 955, 956, 958, 959, 962, 963, 964, 966,
    967, 968, 969, 970, 971, 975, 976, 977, 979, 980, 983, 986, 987, 988, 989, 993, 994, 995, 997,
    998, 999, 1001, 1006, 1007, 1008, 1009, 1010, 1013, 1014, 1015, 1016, 1018, 1019, 1020, 1021,
    1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x8 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_10X8_P2: [u16; 759] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 34, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58,
    59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83, 84, 85, 86,
    87, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 107, 108, 109, 110, 111,
    112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131, 132, 134,
    135, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
    156, 157, 158, 159, 161, 165, 167, 168, 169, 170, 171, 172, 174, 175, 177, 178, 179, 180, 181,
    182, 183, 184, 185, 188, 190, 191, 193, 194, 195, 196, 198, 199, 200, 201, 203, 204, 206, 207,
    208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
    227, 229, 230, 231, 232, 235, 236, 237, 238, 239, 240, 242, 245, 246, 247, 248, 249, 250, 252,
    253, 254, 255, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270, 271, 272, 273, 274, 275,
    276, 277, 278, 279, 280, 281, 282, 283, 284, 286, 287, 289, 291, 292, 293, 294, 295, 296, 298,
    299, 300, 302, 303, 304, 305, 306, 307, 309, 310, 314, 316, 317, 318, 319, 321, 323, 324, 325,
    326, 327, 329, 330, 331, 332, 333, 335, 337, 338, 339, 341, 342, 343, 344, 347, 348, 349, 350,
    351, 352, 353, 354, 355, 358, 359, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 375,
    376, 378, 380, 381, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 399, 400, 402, 403,
    404, 405, 407, 409, 410, 411, 412, 414, 415, 418, 419, 420, 422, 423, 424, 426, 429, 430, 432,
    433, 436, 437, 438, 439, 440, 441, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455,
    458, 461, 462, 463, 465, 466, 469, 470, 471, 473, 474, 475, 476, 478, 479, 480, 481, 482, 484,
    486, 487, 488, 489, 490, 491, 492, 495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508,
    509, 510, 511, 513, 516, 517, 518, 519, 520, 521, 523, 524, 526, 527, 529, 530, 531, 533, 534,
    535, 538, 539, 542, 543, 545, 546, 547, 548, 549, 550, 551, 553, 554, 558, 559, 562, 563, 567,
    569, 570, 571, 572, 575, 578, 579, 580, 581, 583, 584, 585, 586, 587, 590, 591, 593, 594, 595,
    596, 597, 598, 599, 600, 601, 602, 605, 606, 607, 608, 609, 610, 611, 612, 614, 615, 616, 617,
    618, 619, 620, 621, 622, 623, 624, 625, 627, 628, 629, 631, 633, 634, 636, 638, 639, 643, 645,
    646, 647, 648, 649, 650, 651, 652, 655, 657, 658, 659, 661, 662, 663, 664, 665, 666, 668, 670,
    672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696, 697,
    699, 700, 701, 702, 703, 705, 706, 707, 709, 711, 713, 714, 716, 719, 720, 722, 723, 724, 725,
    726, 727, 730, 731, 732, 736, 739, 740, 742, 743, 745, 747, 748, 751, 753, 754, 755, 756, 757,
    758, 760, 762, 763, 764, 766, 768, 769, 770, 772, 773, 774, 775, 776, 778, 780, 781, 782, 783,
    786, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 801, 802, 804, 805, 806, 807, 808,
    810, 811, 812, 813, 814, 817, 818, 819, 821, 822, 823, 825, 826, 828, 830, 831, 833, 834, 835,
    836, 839, 840, 841, 842, 845, 847, 849, 851, 852, 854, 856, 858, 861, 862, 866, 868, 869, 870,
    871, 872, 873, 874, 876, 877, 878, 879, 880, 881, 883, 886, 887, 888, 890, 891, 893, 894, 895,
    897, 898, 899, 901, 902, 903, 906, 908, 909, 910, 911, 912, 914, 915, 916, 917, 918, 919, 920,
    921, 923, 924, 927, 929, 930, 932, 933, 934, 935, 936, 937, 938, 940, 941, 942, 943, 945, 947,
    948, 949, 950, 951, 954, 955, 956, 958, 959, 960, 961, 962, 963, 964, 966, 967, 968, 969, 970,
    971, 975, 976, 977, 979, 980, 982, 983, 986, 987, 988, 989, 993, 994, 995, 996, 997, 998, 999,
    1001, 1004, 1006, 1007, 1008, 1009, 1010, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
    1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x10 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_10X10_P2: [u16; 799] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 34, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58,
    59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84,
    85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 100, 101, 102, 103, 105, 107, 108, 109,
    110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 128, 129, 130, 131,
    132, 134, 135, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
    154, 155, 156, 157, 158, 159, 161, 165, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178,
    179, 180, 181, 182, 183, 184, 185, 188, 190, 191, 193, 194, 195, 196, 198, 199, 200, 201, 202,
    203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
    223, 224, 225, 226, 227, 229, 230, 231, 232, 235, 236, 237, 238, 239, 240, 242, 245, 246, 247,
    248, 249, 250, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 270,
    271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 286, 287, 289, 291, 292,
    293, 294, 295, 296, 298, 299, 300, 302, 303, 304, 305, 306, 307, 309, 310, 313, 314, 316, 317,
    318, 319, 321, 323, 324, 325, 326, 327, 329, 330, 331, 332, 333, 335, 337, 338, 339, 341, 342,
    343, 344, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
    365, 366, 367, 368, 370, 371, 373, 374, 375, 376, 377, 378, 380, 381, 385, 386, 387, 388, 389,
    390, 391, 392, 393, 394, 395, 399, 400, 402, 403, 404, 405, 407, 409, 410, 411, 412, 414, 415,
    417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 432, 433, 436, 437, 438,
    439, 440, 441, 443, 444, 445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 458, 459, 461, 462,
    463, 465, 466, 469, 470, 471, 473, 474, 475, 476, 478, 479, 480, 481, 482, 484, 486, 487, 488,
    489, 490, 491, 492, 493, 494, 495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509,
    510, 511, 513, 514, 516, 517, 518, 519, 520, 521, 522, 523, 524, 526, 527, 528, 529, 530, 531,
    532, 533, 534, 535, 536, 538, 539, 542, 543, 545, 546, 547, 548, 549, 550, 551, 553, 554, 558,
    559, 561, 562, 563, 566, 567, 569, 570, 571, 572, 575, 578, 579, 580, 581, 583, 584, 585, 586,
    587, 590, 591, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 605, 606, 607, 608, 609, 610,
    611, 612, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 627, 628, 629, 631, 633,
    634, 636, 638, 639, 643, 645, 646, 647, 648, 649, 650, 651, 652, 654, 655, 657, 658, 659, 661,
    662, 663, 664, 665, 666, 667, 668, 670, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688,
    690, 691, 692, 693, 694, 695, 696, 697, 699, 700, 701, 702, 703, 705, 706, 707, 709, 711, 713,
    714, 716, 719, 720, 722, 723, 724, 725, 726, 727, 730, 731, 732, 736, 738, 739, 740, 742, 743,
    745, 747, 748, 751, 753, 754, 755, 756, 757, 758, 760, 762, 763, 764, 766, 768, 769, 770, 771,
    772, 773, 774, 775, 776, 778, 780, 781, 782, 783, 784, 786, 788, 789, 791, 792, 793, 794, 795,
    796, 797, 798, 799, 801, 802, 803, 804, 805, 806, 807, 808, 810, 811, 812, 813, 814, 817, 818,
    819, 820, 821, 822, 823, 825, 826, 828, 829, 830, 831, 833, 834, 835, 836, 839, 840, 841, 842,
    845, 846, 847, 848, 849, 851, 852, 854, 855, 856, 858, 861, 862, 866, 867, 868, 869, 870, 871,
    872, 873, 874, 876, 877, 878, 879, 880, 881, 883, 886, 887, 888, 890, 891, 893, 894, 895, 896,
    897, 898, 899, 901, 902, 903, 904, 906, 908, 909, 910, 911, 912, 914, 915, 916, 917, 918, 919,
    920, 921, 923, 924, 927, 929, 930, 932, 933, 934, 935, 936, 937, 938, 940, 941, 942, 943, 945,
    947, 948, 949, 950, 951, 954, 955, 956, 958, 959, 960, 961, 962, 963, 964, 966, 967, 968, 969,
    970, 971, 972, 975, 976, 977, 979, 980, 982, 983, 986, 987, 988, 989, 993, 994, 995, 996, 997,
    998, 999, 1001, 1004, 1006, 1007, 1008, 1009, 1010, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
    1020, 1021, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 12x10 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_12X10_P2: [u16; 818] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 34, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58,
    59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
    83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107,
    108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
    128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149,
    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 165, 167, 168, 169, 170, 171, 172, 174,
    175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 188, 190, 191, 193, 194, 195, 196, 198,
    199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
    219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 235, 236, 237, 238, 239, 240,
    242, 243, 244, 245, 246, 247, 248, 249, 250, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262,
    263, 264, 265, 266, 267, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
    284, 286, 287, 289, 291, 292, 293, 294, 295, 296, 298, 299, 300, 302, 303, 304, 305, 306, 307,
    309, 310, 313, 314, 316, 317, 318, 319, 321, 323, 324, 325, 326, 327, 329, 330, 331, 332, 333,
    335, 337, 338, 339, 341, 342, 343, 344, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
    358, 359, 360, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 375, 376, 377, 378, 380,
    381, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 399, 400, 402, 403, 404, 405,
    407, 409, 410, 411, 412, 414, 415, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
    429, 430, 432, 433, 436, 437, 438, 439, 440, 441, 443, 444, 445, 446, 447, 449, 450, 451, 452,
    453, 454, 455, 458, 459, 461, 462, 463, 465, 466, 469, 470, 471, 473, 474, 475, 476, 478, 479,
    480, 481, 482, 484, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 498, 499, 500, 501,
    502, 503, 504, 505, 506, 508, 509, 510, 511, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
    523, 524, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 542, 543, 545,
    546, 547, 548, 549, 550, 551, 553, 554, 558, 559, 561, 562, 563, 564, 566, 567, 569, 570, 571,
    572, 575, 578, 579, 580, 581, 583, 584, 585, 586, 587, 589, 590, 591, 593, 594, 595, 596, 597,
    598, 599, 600, 601, 602, 605, 606, 607, 608, 609, 610, 611, 612, 614, 615, 616, 617, 618, 619,
    620, 621, 622, 623, 624, 625, 627, 628, 629, 631, 633, 634, 636, 638, 639, 643, 645, 646, 647,
    648, 649, 650, 651, 652, 654, 655, 657, 658, 659, 661, 662, 663, 664, 665, 666, 667, 668, 670,
    671, 672, 673, 674, 675, 681, 683, 684, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696,
    697, 699, 700, 701, 702, 703, 705, 706, 707, 709, 711, 713, 714, 716, 719, 720, 722, 723, 724,
    725, 726, 727, 730, 731, 732, 736, 738, 739, 740, 742, 743, 745, 747, 748, 751, 753, 754, 755,
    756, 757, 758, 760, 762, 763, 764, 766, 768, 769, 770, 771, 772, 773, 774, 775, 776, 778, 780,
    781, 782, 783, 784, 785, 786, 787, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 801,
    802, 803, 804, 805, 806, 807, 808, 810, 811, 812, 813, 814, 817, 818, 819, 820, 821, 822, 823,
    825, 826, 828, 829, 830, 831, 833, 834, 835, 836, 839, 840, 841, 842, 845, 846, 847, 848, 849,
    851, 852, 854, 855, 856, 857, 858, 861, 862, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875,
    876, 877, 878, 879, 880, 881, 883, 886, 887, 888, 890, 891, 893, 894, 895, 896, 897, 898, 899,
    901, 902, 903, 904, 906, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
    923, 924, 927, 929, 930, 932, 933, 934, 935, 936, 937, 938, 940, 941, 942, 943, 944, 945, 947,
    948, 949, 950, 951, 954, 955, 956, 958, 959, 960, 961, 962, 963, 964, 966, 967, 968, 969, 970,
    971, 972, 975, 976, 977, 979, 980, 982, 983, 986, 987, 988, 989, 993, 994, 995, 996, 997, 998,
    999, 1001, 1004, 1006, 1007, 1008, 1009, 1010, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
    1021, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 12x12 blocks with 2 subsets.
pub static UNIQUE_TO_SEED_12X12_P2: [u16; 838] = [
    1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29,
    30, 31, 32, 33, 34, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58,
    59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
    83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107,
    108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
    128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149,
    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 165, 167, 168, 169, 170, 171, 172, 174,
    175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 190, 191, 193, 194, 195, 196,
    198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
    218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 235, 236, 237, 238, 239,
    240, 242, 243, 244, 245, 246, 247, 248, 249, 250, 252, 253, 254, 255, 256, 257, 258, 260, 261,
    262, 263, 264, 265, 266, 267, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
    282, 283, 284, 286, 287, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 302, 303, 304,
    305, 306, 307, 309, 310, 313, 314, 316, 317, 318, 319, 321, 323, 324, 325, 326, 327, 329, 330,
    331, 332, 333, 335, 337, 338, 339, 340, 341, 342, 343, 344, 347, 348, 349, 350, 351, 352, 353,
    354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 365, 366, 367, 368, 370, 371, 373, 374, 375,
    376, 377, 378, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
    396, 399, 400, 402, 403, 404, 405, 407, 409, 410, 411, 412, 414, 415, 417, 418, 419, 420, 421,
    422, 423, 424, 425, 426, 427, 428, 429, 430, 432, 433, 436, 437, 438, 439, 440, 441, 443, 444,
    445, 446, 447, 449, 450, 451, 452, 453, 454, 455, 456, 458, 459, 461, 462, 463, 465, 466, 469,
    470, 471, 473, 474, 475, 476, 478, 479, 480, 481, 482, 484, 486, 487, 488, 489, 490, 491, 492,
    493, 494, 495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509, 510, 511, 513, 514,
    515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 526, 527, 528, 529, 530, 531, 532, 533, 534,
    535, 536, 537, 538, 539, 542, 543, 545, 546, 547, 548, 549, 550, 551, 553, 554, 557, 558, 559,
    561, 562, 563, 564, 566, 567, 569, 570, 571, 572, 575, 576, 578, 579, 580, 581, 583, 584, 585,
    586, 587, 589, 590, 591, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 605, 606, 607, 608,
    609, 610, 611, 612, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 627, 628, 629,
    631, 633, 634, 636, 638, 639, 640, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 654, 655,
    657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 670, 671, 672, 673, 674, 675, 681,
    683, 684, 685, 686, 687, 688, 690, 691, 692, 693, 694, 695, 696, 697, 699, 700, 701, 702, 703,
    705, 706, 707, 709, 711, 713, 714, 716, 717, 719, 720, 721, 722, 723, 724, 725, 726, 727, 730,
    731, 732, 736, 738, 739, 740, 742, 743, 745, 747, 748, 751, 753, 754, 755, 756, 757, 758, 760,
    762, 763, 764, 766, 768, 769, 770, 771, 772, 773, 774, 775, 776, 778, 780, 781, 782, 783, 784,
    785, 786, 787, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
    805, 806, 807, 808, 810, 811, 812, 813, 814, 815, 817, 818, 819, 820, 821, 822, 823, 825, 826,
    828, 829, 830, 831, 833, 834, 835, 836, 837, 839, 840, 841, 842, 844, 845, 846, 847, 848, 849,
    851, 852, 854, 855, 856, 857, 858, 861, 862, 863, 866, 867, 868, 869, 870, 871, 872, 873, 874,
    875, 876, 877, 878, 879, 880, 881, 883, 886, 887, 888, 890, 891, 893, 894, 895, 896, 897, 898,
    899, 901, 902, 903, 904, 906, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920,
    921, 923, 924, 927, 929, 930, 932, 933, 934, 935, 936, 937, 938, 940, 941, 942, 943, 944, 945,
    947, 948, 949, 950, 951, 954, 955, 956, 958, 959, 960, 961, 962, 963, 964, 966, 967, 968, 969,
    970, 971, 972, 975, 976, 977, 979, 980, 982, 983, 986, 987, 988, 989, 993, 994, 995, 996, 997,
    998, 999, 1001, 1004, 1006, 1007, 1008, 1009, 1010, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
    1020, 1021, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 4x4 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_4X4_P3: [u16; 329] = [
    0, 3, 8, 11, 14, 15, 17, 26, 29, 30, 31, 32, 33, 36, 38, 43, 44, 47, 49, 51, 55, 56, 57, 59,
    67, 70, 74, 76, 79, 81, 82, 88, 89, 90, 100, 104, 108, 110, 111, 117, 122, 126, 127, 132, 133,
    134, 135, 139, 147, 150, 151, 152, 156, 157, 163, 166, 167, 168, 171, 175, 176, 179, 181, 182,
    183, 186, 189, 192, 199, 203, 205, 207, 210, 214, 216, 230, 236, 247, 249, 250, 252, 254, 260,
    262, 263, 266, 272, 273, 276, 291, 292, 294, 297, 302, 309, 310, 313, 314, 318, 319, 324, 327,
    328, 330, 331, 335, 337, 346, 355, 356, 357, 358, 363, 365, 368, 378, 381, 384, 386, 388, 390,
    391, 392, 397, 398, 401, 410, 411, 417, 419, 427, 431, 437, 439, 440, 446, 451, 455, 457, 458,
    459, 460, 462, 464, 467, 468, 471, 472, 474, 475, 477, 479, 483, 487, 488, 493, 495, 496, 497,
    502, 503, 504, 511, 512, 516, 518, 519, 523, 525, 530, 532, 538, 543, 544, 546, 547, 549, 550,
    551, 553, 554, 562, 567, 568, 570, 571, 578, 579, 581, 582, 588, 589, 590, 593, 594, 600, 601,
    606, 611, 613, 623, 624, 625, 630, 637, 638, 645, 646, 648, 650, 651, 658, 659, 662, 666, 669,
    670, 678, 683, 686, 688, 691, 694, 696, 699, 700, 701, 703, 704, 707, 713, 715, 717, 719, 722,
    724, 725, 727, 730, 731, 735, 738, 739, 745, 750, 751, 758, 759, 760, 766, 775, 776, 779, 783,
    784, 785, 786, 787, 788, 798, 799, 802, 804, 805, 807, 808, 809, 812, 821, 822, 823, 825, 827,
    831, 835, 837, 838, 842, 844, 845, 846, 848, 853, 854, 858, 859, 860, 866, 884, 888, 892, 894,
    898, 902, 906, 907, 915, 918, 922, 923, 925, 927, 931, 932, 937, 938, 940, 943, 945, 953, 955,
    958, 959, 963, 971, 974, 977, 979, 989, 990, 998, 1005, 1006, 1007, 1011, 1012, 1015, 1020,
    1023,
];

/// Unique-pattern index to ASTC partition seed, 5x4 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_5X4_P3: [u16; 405] = [
    0, 3, 7, 8, 11, 12, 14, 15, 17, 18, 26, 29, 30, 31, 32, 33, 34, 36, 38, 39, 43, 44, 47, 49, 51,
    55, 56, 57, 59, 62, 63, 67, 70, 74, 76, 79, 81, 82, 88, 89, 90, 91, 100, 103, 104, 108, 110,
    111, 117, 122, 123, 126, 127, 132, 133, 134, 135, 136, 139, 144, 147, 150, 151, 152, 156, 157,
    158, 163, 166, 167, 168, 171, 173, 175, 176, 179, 181, 182, 183, 186, 189, 192, 199, 203, 205,
    207, 210, 214, 216, 222, 230, 236, 246, 247, 249, 250, 252, 254, 259, 260, 262, 263, 266, 269,
    272, 273, 274, 275, 276, 291, 292, 293, 294, 297, 302, 306, 309, 310, 311, 313, 314, 315, 318,
    319, 324, 327, 328, 330, 331, 335, 337, 346, 355, 356, 357, 358, 359, 363, 365, 368, 377, 378,
    381, 384, 386, 388, 390, 391, 392, 394, 397, 398, 401, 407, 410, 411, 417, 419, 427, 430, 431,
    437, 439, 440, 446, 451, 455, 457, 458, 459, 460, 462, 464, 467, 468, 470, 471, 472, 474, 475,
    477, 478, 479, 483, 485, 487, 488, 493, 495, 496, 497, 501, 502, 503, 504, 506, 508, 510, 511,
    512, 515, 516, 518, 519, 521, 523, 524, 525, 530, 532, 538, 541, 543, 544, 546, 547, 549, 550,
    551, 552, 553, 554, 562, 567, 568, 570, 571, 577, 578, 579, 581, 582, 588, 589, 590, 593, 594,
    595, 600, 601, 603, 606, 609, 611, 613, 623, 624, 625, 630, 632, 637, 638, 639, 645, 646, 648,
    650, 651, 654, 658, 659, 662, 666, 669, 670, 678, 679, 683, 685, 686, 688, 691, 694, 696, 699,
    700, 701, 703, 704, 707, 713, 715, 717, 719, 722, 724, 725, 727, 730, 731, 732, 735, 738, 739,
    742, 745, 746, 749, 750, 751, 758, 759, 760, 766, 769, 773, 775, 776, 779, 783, 784, 785, 786,
    787, 788, 791, 793, 798, 799, 802, 804, 805, 806, 807, 808, 809, 812, 813, 821, 822, 823, 825,
    827, 831, 835, 837, 838, 839, 842, 844, 845, 846, 848, 853, 854, 858, 859, 860, 866, 873, 876,
    877, 884, 887, 888, 892, 894, 898, 902, 906, 907, 914, 915, 918, 919, 922, 923, 925, 927, 931,
    932, 937, 938, 940, 943, 944, 945, 951, 953, 955, 958, 959, 963, 971, 972, 974, 977, 979, 982,
    983, 989, 990, 991, 998, 999, 1005, 1006, 1007, 1010, 1011, 1012, 1015, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 5x5 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_5X5_P3: [u16; 486] = [
    0, 3, 7, 8, 10, 11, 12, 14, 15, 17, 18, 26, 27, 29, 30, 31, 32, 33, 34, 36, 38, 39, 43, 44, 47,
    48, 49, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 67, 70, 72, 74, 76, 79, 81, 82, 88, 89, 90, 91,
    94, 100, 103, 104, 106, 108, 110, 111, 115, 117, 122, 123, 126, 127, 128, 130, 132, 133, 134,
    135, 136, 139, 144, 147, 150, 151, 152, 156, 157, 158, 162, 163, 166, 167, 168, 169, 171, 173,
    175, 176, 179, 181, 182, 183, 186, 189, 192, 199, 203, 205, 207, 209, 210, 214, 216, 220, 222,
    227, 230, 235, 236, 246, 247, 249, 250, 252, 254, 257, 259, 260, 262, 263, 266, 269, 272, 273,
    274, 275, 276, 279, 282, 291, 292, 293, 294, 295, 297, 302, 306, 309, 310, 311, 313, 314, 315,
    318, 319, 324, 326, 327, 328, 330, 331, 335, 337, 342, 345, 346, 353, 355, 356, 357, 358, 359,
    363, 364, 365, 368, 371, 374, 377, 378, 381, 384, 386, 387, 388, 390, 391, 392, 394, 397, 398,
    399, 401, 407, 410, 411, 417, 419, 427, 430, 431, 437, 438, 439, 440, 443, 446, 451, 455, 456,
    457, 458, 459, 460, 462, 463, 464, 466, 467, 468, 470, 471, 472, 474, 475, 477, 478, 479, 480,
    482, 483, 485, 487, 488, 493, 495, 496, 497, 501, 502, 503, 504, 506, 508, 510, 511, 512, 515,
    516, 518, 519, 521, 522, 523, 524, 525, 530, 532, 538, 539, 541, 543, 544, 546, 547, 549, 550,
    551, 552, 553, 554, 555, 562, 567, 568, 570, 571, 577, 578, 579, 581, 582, 586, 588, 589, 590,
    593, 594, 595, 600, 601, 602, 603, 606, 609, 610, 611, 613, 618, 623, 624, 625, 626, 630, 632,
    637, 638, 639, 645, 646, 648, 650, 651, 654, 658, 659, 662, 666, 667, 668, 669, 670, 671, 678,
    679, 683, 685, 686, 687, 688, 691, 694, 696, 698, 699, 700, 701, 703, 704, 707, 708, 713, 715,
    717, 719, 722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739, 742, 745, 746, 747, 748, 749,
    750, 751, 753, 758, 759, 760, 764, 766, 767, 769, 771, 773, 775, 776, 779, 780, 781, 783, 784,
    785, 786, 787, 788, 791, 793, 794, 798, 799, 800, 802, 804, 805, 806, 807, 808, 809, 811, 812,
    813, 821, 822, 823, 825, 827, 831, 835, 837, 838, 839, 840, 842, 843, 844, 845, 846, 847, 848,
    850, 852, 853, 854, 858, 859, 860, 866, 869, 873, 874, 876, 877, 881, 884, 886, 887, 888, 892,
    894, 897, 898, 902, 905, 906, 907, 914, 915, 918, 919, 920, 922, 923, 925, 927, 931, 932, 937,
    938, 940, 943, 944, 945, 951, 953, 954, 955, 958, 959, 963, 971, 972, 973, 974, 977, 978, 979,
    982, 983, 989, 990, 991, 992, 998, 999, 1004, 1005, 1006, 1007, 1010, 1011, 1012, 1015, 1020,
    1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 6x5 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_6X5_P3: [u16; 534] = [
    0, 3, 7, 8, 10, 11, 12, 14, 15, 17, 18, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39,
    42, 43, 44, 47, 48, 49, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 67, 70, 72, 74, 76, 79, 81, 82,
    88, 89, 90, 91, 94, 100, 102, 103, 104, 106, 108, 110, 111, 114, 115, 117, 120, 122, 123, 126,
    127, 128, 130, 132, 133, 134, 135, 136, 139, 140, 144, 147, 150, 151, 152, 153, 156, 157, 158,
    162, 163, 166, 167, 168, 169, 171, 173, 175, 176, 179, 181, 182, 183, 186, 189, 192, 198, 199,
    200, 203, 205, 207, 209, 210, 214, 216, 220, 222, 227, 230, 231, 235, 236, 245, 246, 247, 249,
    250, 252, 254, 257, 259, 260, 262, 263, 266, 269, 272, 273, 274, 275, 276, 279, 281, 282, 288,
    291, 292, 293, 294, 295, 297, 300, 302, 306, 309, 310, 311, 313, 314, 315, 318, 319, 324, 326,
    327, 328, 330, 331, 335, 337, 342, 345, 346, 348, 353, 355, 356, 357, 358, 359, 363, 364, 365,
    368, 371, 372, 374, 377, 378, 379, 381, 384, 386, 387, 388, 390, 391, 392, 394, 395, 397, 398,
    399, 401, 407, 410, 411, 412, 413, 417, 419, 427, 430, 431, 437, 438, 439, 440, 443, 446, 450,
    451, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 470, 471, 472, 474,
    475, 477, 478, 479, 480, 482, 483, 485, 487, 488, 493, 495, 496, 497, 500, 501, 502, 503, 504,
    505, 506, 508, 510, 511, 512, 513, 515, 516, 518, 519, 521, 522, 523, 524, 525, 527, 530, 532,
    538, 539, 541, 543, 544, 546, 547, 549, 550, 551, 552, 553, 554, 555, 557, 558, 562, 566, 567,
    568, 570, 571, 577, 578, 579, 580, 581, 582, 584, 586, 588, 589, 590, 593, 594, 595, 600, 601,
    602, 603, 606, 609, 610, 611, 613, 614, 618, 623, 624, 625, 626, 630, 632, 637, 638, 639, 644,
    645, 646, 648, 650, 651, 654, 658, 659, 662, 666, 667, 668, 669, 670, 671, 678, 679, 683, 685,
    686, 687, 688, 689, 691, 694, 696, 698, 699, 700, 701, 703, 704, 707, 708, 711, 713, 715, 717,
    719, 722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739, 742, 743, 745, 746, 747, 748, 749,
    750, 751, 753, 758, 759, 760, 764, 766, 767, 769, 771, 773, 775, 776, 779, 780, 781, 783, 784,
    785, 786, 787, 788, 791, 793, 794, 798, 799, 800, 802, 804, 805, 806, 807, 808, 809, 810, 811,
    812, 813, 821, 822, 823, 824, 825, 827, 831, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
    845, 846, 847, 848, 850, 852, 853, 854, 858, 859, 860, 866, 869, 873, 874, 876, 877, 881, 884,
    886, 887, 888, 892, 894, 897, 898, 900, 902, 905, 906, 907, 914, 915, 918, 919, 920, 922, 923,
    925, 927, 931, 932, 937, 938, 940, 943, 944, 945, 951, 953, 954, 955, 957, 958, 959, 963, 967,
    971, 972, 973, 974, 977, 978, 979, 982, 983, 986, 989, 990, 991, 992, 998, 999, 1003, 1004,
    1005, 1006, 1007, 1010, 1011, 1012, 1015, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 6x6 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_6X6_P3: [u16; 333] = [
    0, 8, 11, 14, 15, 17, 18, 19, 26, 31, 34, 35, 36, 38, 44, 47, 48, 49, 51, 56, 59, 61, 70, 74,
    76, 82, 88, 90, 96, 100, 103, 104, 108, 110, 111, 117, 122, 123, 126, 127, 132, 133, 135, 139,
    147, 150, 151, 152, 156, 157, 163, 166, 168, 171, 175, 176, 179, 181, 182, 183, 186, 189, 192,
    199, 203, 205, 207, 210, 214, 216, 222, 247, 249, 250, 252, 254, 260, 261, 262, 263, 266, 272,
    273, 275, 276, 288, 291, 292, 293, 294, 297, 302, 309, 310, 313, 314, 318, 327, 328, 331, 335,
    337, 346, 356, 357, 358, 363, 365, 368, 378, 381, 384, 386, 390, 391, 392, 396, 397, 398, 399,
    401, 410, 411, 419, 427, 430, 431, 437, 439, 440, 451, 455, 457, 458, 459, 460, 462, 468, 470,
    471, 472, 474, 475, 477, 479, 482, 483, 488, 493, 495, 496, 502, 503, 504, 507, 510, 511, 512,
    515, 516, 518, 519, 522, 523, 525, 526, 527, 538, 543, 544, 546, 547, 549, 550, 552, 553, 554,
    562, 570, 578, 579, 581, 582, 588, 589, 590, 593, 595, 600, 606, 611, 613, 618, 623, 625, 632,
    637, 638, 645, 646, 650, 651, 658, 659, 662, 666, 667, 669, 670, 678, 679, 685, 686, 687, 688,
    691, 694, 696, 698, 699, 700, 701, 703, 704, 707, 713, 714, 715, 717, 719, 722, 724, 727, 730,
    731, 734, 738, 739, 743, 747, 748, 750, 751, 753, 758, 760, 764, 766, 769, 775, 776, 783, 784,
    785, 787, 791, 793, 798, 799, 802, 804, 805, 806, 807, 808, 809, 810, 813, 822, 823, 825, 831,
    835, 837, 838, 839, 840, 842, 845, 846, 848, 853, 854, 858, 859, 860, 866, 874, 882, 884, 887,
    888, 892, 894, 898, 902, 907, 914, 915, 918, 919, 922, 923, 925, 927, 931, 932, 937, 938, 940,
    943, 944, 945, 953, 955, 958, 959, 963, 966, 971, 974, 979, 990, 991, 998, 999, 1007, 1010,
    1011, 1012, 1015, 1020, 1023,
];

/// Unique-pattern index to ASTC partition seed, 8x5 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_8X5_P3: [u16; 377] = [
    0, 3, 8, 11, 14, 15, 17, 18, 19, 23, 26, 27, 29, 31, 33, 34, 35, 36, 38, 43, 44, 47, 48, 49,
    51, 55, 56, 59, 61, 67, 70, 76, 79, 81, 82, 88, 89, 90, 96, 100, 103, 104, 108, 110, 111, 117,
    122, 123, 126, 127, 132, 133, 134, 135, 139, 147, 150, 151, 152, 156, 157, 163, 166, 167, 168,
    171, 173, 175, 176, 179, 181, 182, 183, 186, 189, 192, 199, 203, 205, 207, 210, 214, 216, 227,
    230, 247, 249, 250, 254, 260, 261, 262, 263, 266, 272, 273, 275, 276, 279, 288, 291, 292, 293,
    294, 297, 302, 307, 309, 310, 313, 314, 315, 318, 319, 327, 328, 331, 335, 337, 346, 355, 356,
    357, 358, 359, 363, 365, 377, 378, 381, 384, 386, 390, 391, 392, 394, 396, 397, 398, 399, 401,
    407, 410, 411, 419, 424, 427, 430, 431, 437, 439, 440, 450, 451, 455, 457, 458, 459, 460, 462,
    464, 467, 468, 470, 471, 472, 474, 475, 477, 478, 479, 482, 483, 487, 488, 493, 495, 496, 502,
    503, 504, 507, 508, 511, 512, 515, 516, 518, 519, 522, 523, 524, 526, 527, 538, 543, 544, 547,
    549, 550, 552, 553, 554, 557, 562, 568, 570, 578, 579, 581, 582, 588, 589, 590, 593, 595, 600,
    602, 603, 606, 609, 611, 613, 614, 624, 625, 632, 637, 638, 639, 645, 646, 650, 651, 658, 659,
    662, 666, 667, 669, 670, 678, 679, 685, 686, 687, 688, 689, 691, 694, 696, 699, 700, 701, 703,
    704, 707, 712, 713, 715, 717, 719, 722, 724, 727, 730, 731, 734, 738, 739, 743, 745, 747, 750,
    751, 758, 759, 760, 763, 764, 766, 769, 771, 775, 776, 779, 781, 783, 784, 785, 787, 791, 793,
    798, 799, 802, 804, 805, 806, 807, 809, 810, 812, 813, 822, 823, 825, 831, 835, 837, 838, 840,
    842, 844, 845, 846, 848, 853, 854, 858, 859, 860, 866, 873, 876, 882, 884, 887, 888, 892, 894,
    895, 898, 902, 906, 907, 914, 915, 918, 919, 922, 923, 925, 927, 931, 932, 937, 938, 940, 943,
    944, 945, 947, 951, 953, 955, 958, 959, 963, 966, 971, 974, 977, 979, 983, 989, 990, 991, 998,
    999, 1005, 1007, 1010, 1011, 1012, 1015, 1023,
];

/// Unique-pattern index to ASTC partition seed, 8x6 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_8X6_P3: [u16; 410] = [
    0, 3, 8, 11, 14, 15, 17, 18, 19, 23, 26, 27, 29, 31, 33, 34, 35, 36, 38, 43, 44, 47, 48, 49,
    51, 55, 56, 59, 61, 67, 70, 74, 76, 79, 81, 82, 88, 89, 90, 96, 100, 103, 104, 108, 110, 111,
    117, 122, 123, 126, 127, 131, 132, 133, 134, 135, 139, 147, 150, 151, 152, 156, 157, 163, 166,
    167, 168, 171, 173, 175, 176, 179, 181, 182, 183, 186, 189, 192, 199, 203, 205, 207, 210, 214,
    216, 222, 227, 230, 236, 247, 249, 250, 252, 254, 260, 261, 262, 263, 266, 272, 273, 275, 276,
    279, 288, 291, 292, 293, 294, 297, 302, 307, 309, 310, 313, 314, 315, 318, 319, 324, 327, 328,
    331, 335, 337, 338, 346, 355, 356, 357, 358, 359, 363, 365, 368, 377, 378, 381, 384, 386, 390,
    391, 392, 394, 396, 397, 398, 399, 401, 407, 410, 411, 419, 424, 427, 430, 431, 437, 439, 440,
    450, 451, 455, 457, 458, 459, 460, 462, 464, 467, 468, 470, 471, 472, 474, 475, 477, 478, 479,
    482, 483, 485, 487, 488, 493, 495, 496, 502, 503, 504, 507, 508, 510, 511, 512, 515, 516, 518,
    519, 522, 523, 524, 525, 526, 527, 538, 541, 543, 544, 546, 547, 549, 550, 552, 553, 554, 557,
    562, 566, 567, 568, 570, 578, 579, 581, 582, 588, 589, 590, 593, 595, 600, 601, 602, 603, 606,
    609, 611, 613, 614, 618, 623, 624, 625, 632, 637, 638, 639, 645, 646, 650, 651, 658, 659, 662,
    666, 667, 669, 670, 678, 679, 685, 686, 687, 688, 689, 691, 694, 696, 698, 699, 700, 701, 703,
    704, 707, 708, 712, 713, 714, 715, 717, 719, 722, 724, 725, 727, 730, 731, 732, 734, 738, 739,
    743, 745, 747, 748, 750, 751, 753, 758, 759, 760, 763, 764, 766, 769, 771, 775, 776, 779, 781,
    783, 784, 785, 786, 787, 791, 793, 798, 799, 802, 804, 805, 806, 807, 808, 809, 810, 812, 813,
    822, 823, 825, 831, 835, 837, 838, 839, 840, 842, 844, 845, 846, 848, 850, 853, 854, 858, 859,
    860, 866, 873, 874, 876, 882, 884, 887, 888, 892, 894, 895, 898, 900, 902, 906, 907, 914, 915,
    918, 919, 922, 923, 925, 927, 931, 932, 937, 938, 940, 943, 944, 945, 947, 951, 953, 955, 958,
    959, 963, 966, 971, 974, 977, 979, 983, 989, 990, 991, 998, 999, 1005, 1007, 1010, 1011, 1012,
    1015, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x5 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_10X5_P3: [u16; 436] = [
    0, 3, 7, 8, 11, 14, 15, 17, 18, 19, 23, 26, 27, 29, 31, 33, 34, 35, 36, 38, 43, 44, 47, 48, 49,
    51, 55, 56, 59, 61, 62, 67, 70, 72, 76, 79, 81, 82, 88, 89, 90, 91, 95, 96, 100, 103, 104, 108,
    110, 111, 114, 117, 122, 123, 126, 127, 131, 132, 133, 134, 135, 139, 140, 147, 150, 151, 152,
    156, 157, 158, 163, 166, 167, 168, 171, 173, 175, 176, 179, 181, 182, 183, 186, 189, 192, 199,
    203, 205, 207, 210, 213, 214, 216, 227, 230, 245, 247, 249, 250, 254, 259, 260, 261, 262, 263,
    266, 269, 272, 273, 274, 275, 276, 279, 281, 288, 291, 292, 293, 294, 295, 297, 302, 307, 309,
    310, 313, 314, 315, 318, 319, 327, 328, 331, 335, 337, 346, 355, 356, 357, 358, 359, 363, 365,
    377, 378, 381, 384, 386, 390, 391, 392, 394, 396, 397, 398, 399, 401, 407, 410, 411, 412, 413,
    419, 424, 427, 430, 431, 437, 439, 440, 450, 451, 455, 457, 458, 459, 460, 462, 464, 467, 468,
    470, 471, 472, 474, 475, 477, 478, 479, 482, 483, 487, 488, 493, 495, 496, 500, 501, 502, 503,
    504, 506, 507, 508, 510, 511, 512, 515, 516, 518, 519, 521, 522, 523, 524, 526, 527, 530, 538,
    541, 543, 544, 547, 549, 550, 552, 553, 554, 555, 557, 562, 565, 568, 570, 577, 578, 579, 581,
    582, 588, 589, 590, 593, 595, 600, 601, 602, 603, 606, 609, 611, 613, 614, 618, 624, 625, 632,
    637, 638, 639, 645, 646, 650, 651, 654, 658, 659, 662, 666, 667, 669, 670, 678, 679, 685, 686,
    687, 688, 689, 691, 694, 695, 696, 698, 699, 700, 701, 703, 704, 707, 712, 713, 715, 717, 719,
    722, 724, 725, 727, 730, 731, 732, 734, 738, 739, 742, 743, 745, 747, 749, 750, 751, 758, 759,
    760, 763, 764, 765, 766, 769, 771, 773, 775, 776, 779, 781, 783, 784, 785, 786, 787, 791, 793,
    798, 799, 802, 804, 805, 806, 807, 809, 810, 812, 813, 821, 822, 823, 825, 827, 831, 835, 836,
    837, 838, 839, 840, 841, 842, 844, 845, 846, 848, 853, 854, 858, 859, 860, 866, 869, 873, 876,
    877, 882, 884, 887, 888, 891, 892, 894, 895, 898, 900, 902, 905, 906, 907, 909, 914, 915, 918,
    919, 922, 923, 925, 927, 931, 932, 937, 938, 939, 940, 943, 944, 945, 947, 951, 953, 954, 955,
    957, 958, 959, 961, 963, 966, 967, 971, 974, 975, 977, 978, 979, 983, 989, 990, 991, 993, 998,
    999, 1005, 1007, 1010, 1011, 1012, 1015, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x6 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_10X6_P3: [u16; 468] = [
    0, 3, 7, 8, 11, 12, 14, 15, 17, 18, 19, 23, 26, 27, 29, 31, 33, 34, 35, 36, 38, 43, 44, 47, 48,
    49, 51, 55, 56, 59, 61, 62, 67, 70, 72, 74, 76, 79, 81, 82, 88, 89, 90, 91, 95, 96, 100, 103,
    104, 108, 110, 111, 114, 117, 122, 123, 126, 127, 131, 132, 133, 134, 135, 139, 140, 147, 150,
    151, 152, 156, 157, 158, 163, 166, 167, 168, 171, 173, 175, 176, 179, 181, 182, 183, 186, 189,
    192, 199, 203, 205, 207, 210, 213, 214, 216, 222, 227, 230, 236, 245, 246, 247, 249, 250, 252,
    254, 259, 260, 261, 262, 263, 266, 269, 272, 273, 274, 275, 276, 279, 281, 288, 291, 292, 293,
    294, 295, 297, 302, 306, 307, 309, 310, 311, 313, 314, 315, 318, 319, 324, 327, 328, 330, 331,
    335, 337, 338, 346, 355, 356, 357, 358, 359, 363, 364, 365, 368, 377, 378, 381, 384, 386, 390,
    391, 392, 394, 396, 397, 398, 399, 401, 407, 410, 411, 412, 413, 419, 424, 427, 430, 431, 437,
    439, 440, 450, 451, 455, 457, 458, 459, 460, 462, 464, 467, 468, 470, 471, 472, 474, 475, 477,
    478, 479, 482, 483, 485, 487, 488, 493, 495, 496, 500, 501, 502, 503, 504, 506, 507, 508, 510,
    511, 512, 515, 516, 518, 519, 521, 522, 523, 524, 525, 526, 527, 530, 538, 539, 541, 543, 544,
    546, 547, 549, 550, 552, 553, 554, 555, 557, 562, 565, 566, 567, 568, 570, 577, 578, 579, 581,
    582, 588, 589, 590, 593, 595, 600, 601, 602, 603, 606, 609, 611, 613, 614, 618, 623, 624, 625,
    632, 637, 638, 639, 645, 646, 648, 650, 651, 654, 658, 659, 662, 666, 667, 669, 670, 678, 679,
    685, 686, 687, 688, 689, 691, 694, 695, 696, 698, 699, 700, 701, 703, 704, 707, 708, 712, 713,
    714, 715, 717, 719, 722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739, 742, 743, 745, 747,
    748, 749, 750, 751, 753, 758, 759, 760, 763, 764, 765, 766, 769, 771, 773, 775, 776, 779, 781,
    783, 784, 785, 786, 787, 791, 793, 798, 799, 802, 804, 805, 806, 807, 808, 809, 810, 812, 813,
    821, 822, 823, 825, 827, 831, 835, 836, 837, 838, 839, 840, 841, 842, 844, 845, 846, 848, 850,
    853, 854, 858, 859, 860, 866, 869, 873, 874, 876, 877, 882, 884, 887, 888, 891, 892, 894, 895,
    898, 900, 902, 905, 906, 907, 909, 914, 915, 918, 919, 922, 923, 925, 927, 931, 932, 937, 938,
    939, 940, 943, 944, 945, 947, 951, 953, 954, 955, 957, 958, 959, 961, 963, 966, 967, 971, 974,
    975, 977, 978, 979, 982, 983, 989, 990, 991, 993, 998, 999, 1005, 1007, 1010, 1011, 1012, 1015,
    1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 8x8 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_8X8_P3: [u16; 476] = [
    0, 3, 7, 8, 11, 12, 14, 15, 17, 18, 19, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 43,
    44, 47, 48, 49, 50, 51, 55, 56, 57, 59, 60, 61, 63, 67, 70, 72, 74, 76, 79, 81, 82, 88, 89, 90,
    96, 100, 103, 104, 106, 108, 110, 111, 117, 122, 123, 126, 127, 131, 132, 133, 134, 135, 136,
    139, 144, 147, 150, 151, 152, 156, 157, 158, 163, 166, 167, 168, 171, 173, 175, 176, 178, 179,
    181, 182, 183, 186, 189, 192, 199, 203, 205, 207, 210, 214, 216, 222, 227, 230, 235, 236, 246,
    247, 249, 250, 252, 254, 260, 261, 262, 263, 266, 269, 272, 273, 275, 276, 279, 288, 291, 292,
    293, 294, 295, 297, 302, 306, 307, 309, 310, 311, 313, 314, 315, 318, 319, 324, 327, 328, 330,
    331, 335, 337, 338, 342, 345, 346, 355, 356, 357, 358, 359, 363, 365, 368, 371, 377, 378, 381,
    384, 386, 388, 390, 391, 392, 394, 396, 397, 398, 399, 401, 407, 410, 411, 417, 419, 424, 427,
    430, 431, 437, 439, 440, 446, 450, 451, 455, 457, 458, 459, 460, 462, 464, 466, 467, 468, 470,
    471, 472, 474, 475, 477, 478, 479, 480, 482, 483, 485, 487, 488, 493, 495, 496, 497, 502, 503,
    504, 507, 508, 510, 511, 512, 515, 516, 518, 519, 521, 522, 523, 524, 525, 526, 527, 530, 532,
    538, 539, 541, 543, 544, 546, 547, 549, 550, 551, 552, 553, 554, 557, 562, 566, 567, 568, 570,
    571, 577, 578, 579, 581, 582, 586, 588, 589, 590, 592, 593, 594, 595, 600, 601, 602, 603, 606,
    609, 610, 611, 613, 614, 618, 623, 624, 625, 630, 632, 637, 638, 639, 645, 646, 648, 650, 651,
    658, 659, 662, 666, 667, 669, 670, 671, 678, 679, 683, 685, 686, 687, 688, 689, 691, 694, 696,
    698, 699, 700, 701, 703, 704, 707, 708, 712, 713, 714, 715, 717, 719, 722, 724, 725, 727, 730,
    731, 732, 734, 735, 738, 739, 743, 745, 746, 747, 748, 750, 751, 753, 758, 759, 760, 763, 764,
    766, 767, 769, 771, 773, 775, 776, 779, 780, 781, 783, 784, 785, 786, 787, 788, 791, 793, 794,
    798, 799, 802, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 821, 822, 823, 825, 827, 831,
    835, 837, 838, 839, 840, 842, 844, 845, 846, 847, 848, 850, 852, 853, 854, 858, 859, 860, 866,
    873, 874, 876, 877, 882, 884, 886, 887, 888, 892, 894, 895, 897, 898, 900, 902, 906, 907, 914,
    915, 918, 919, 920, 922, 923, 925, 927, 931, 932, 937, 938, 940, 943, 944, 945, 947, 951, 953,
    954, 955, 958, 959, 963, 966, 971, 972, 974, 977, 979, 982, 983, 989, 990, 991, 998, 999, 1005,
    1006, 1007, 1010, 1011, 1012, 1015, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x8 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_10X8_P3: [u16; 528] = [
    0, 3, 7, 8, 11, 12, 14, 15, 17, 18, 19, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 43,
    44, 47, 48, 49, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 67, 70, 72, 74, 76, 79, 81, 82, 88, 89,
    90, 91, 94, 95, 96, 100, 103, 104, 106, 108, 110, 111, 114, 115, 117, 122, 123, 126, 127, 131,
    132, 133, 134, 135, 136, 139, 140, 144, 147, 150, 151, 152, 153, 156, 157, 158, 163, 166, 167,
    168, 171, 173, 175, 176, 178, 179, 181, 182, 183, 186, 189, 192, 198, 199, 203, 205, 207, 210,
    213, 214, 216, 220, 222, 227, 230, 235, 236, 245, 246, 247, 249, 250, 252, 254, 259, 260, 261,
    262, 263, 266, 269, 272, 273, 274, 275, 276, 279, 281, 288, 291, 292, 293, 294, 295, 297, 302,
    306, 307, 309, 310, 311, 313, 314, 315, 318, 319, 324, 327, 328, 330, 331, 335, 337, 338, 342,
    345, 346, 355, 356, 357, 358, 359, 363, 364, 365, 368, 371, 374, 377, 378, 379, 381, 384, 386,
    387, 388, 390, 391, 392, 394, 395, 396, 397, 398, 399, 401, 407, 410, 411, 412, 413, 417, 419,
    424, 427, 430, 431, 437, 438, 439, 440, 443, 446, 450, 451, 455, 457, 458, 459, 460, 462, 464,
    466, 467, 468, 470, 471, 472, 474, 475, 477, 478, 479, 480, 482, 483, 485, 487, 488, 493, 495,
    496, 497, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511, 512, 515, 516, 518, 519, 521,
    522, 523, 524, 525, 526, 527, 530, 532, 538, 539, 541, 543, 544, 546, 547, 549, 550, 551, 552,
    553, 554, 555, 557, 562, 565, 566, 567, 568, 570, 571, 577, 578, 579, 581, 582, 586, 588, 589,
    590, 592, 593, 594, 595, 600, 601, 602, 603, 606, 609, 610, 611, 613, 614, 618, 623, 624, 625,
    630, 632, 637, 638, 639, 644, 645, 646, 648, 650, 651, 654, 658, 659, 662, 666, 667, 669, 670,
    671, 678, 679, 683, 685, 686, 687, 688, 689, 691, 694, 695, 696, 698, 699, 700, 701, 703, 704,
    707, 708, 712, 713, 714, 715, 717, 719, 722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739,
    742, 743, 745, 746, 747, 748, 749, 750, 751, 753, 758, 759, 760, 763, 764, 765, 766, 767, 769,
    771, 773, 775, 776, 779, 780, 781, 783, 784, 785, 786, 787, 788, 791, 793, 794, 798, 799, 800,
    802, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 821, 822, 823, 825, 827, 831, 835, 836,
    837, 838, 839, 840, 841, 842, 844, 845, 846, 847, 848, 850, 852, 853, 854, 858, 859, 860, 866,
    869, 873, 874, 876, 877, 882, 884, 886, 887, 888, 891, 892, 894, 895, 897, 898, 900, 902, 905,
    906, 907, 909, 914, 915, 918, 919, 920, 922, 923, 925, 927, 931, 932, 937, 938, 939, 940, 943,
    944, 945, 947, 951, 953, 954, 955, 957, 958, 959, 961, 963, 966, 967, 971, 972, 973, 974, 975,
    977, 978, 979, 982, 983, 986, 989, 990, 991, 993, 998, 999, 1005, 1006, 1007, 1010, 1011, 1012,
    1015, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 10x10 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_10X10_P3: [u16; 568] = [
    0, 3, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39,
    40, 43, 44, 47, 48, 49, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 67, 70, 72, 74, 75, 76, 79, 81,
    82, 88, 89, 90, 91, 94, 95, 96, 100, 103, 104, 106, 108, 110, 111, 114, 115, 117, 120, 122,
    123, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 139, 140, 144, 147, 150, 151, 152, 153,
    156, 157, 158, 162, 163, 166, 167, 168, 169, 171, 173, 175, 176, 178, 179, 181, 182, 183, 186,
    189, 192, 198, 199, 200, 203, 205, 207, 209, 210, 213, 214, 216, 218, 220, 222, 227, 230, 235,
    236, 238, 242, 245, 246, 247, 249, 250, 252, 254, 257, 259, 260, 261, 262, 263, 266, 269, 272,
    273, 274, 275, 276, 279, 281, 282, 288, 291, 292, 293, 294, 295, 297, 302, 306, 307, 308, 309,
    310, 311, 313, 314, 315, 318, 319, 324, 326, 327, 328, 330, 331, 335, 337, 338, 342, 345, 346,
    347, 350, 353, 355, 356, 357, 358, 359, 363, 364, 365, 368, 371, 372, 374, 377, 378, 379, 381,
    384, 386, 387, 388, 390, 391, 392, 394, 395, 396, 397, 398, 399, 401, 407, 408, 410, 411, 412,
    413, 417, 419, 424, 427, 430, 431, 435, 437, 438, 439, 440, 443, 446, 450, 451, 455, 456, 457,
    458, 459, 460, 462, 463, 464, 466, 467, 468, 470, 471, 472, 474, 475, 477, 478, 479, 480, 482,
    483, 485, 487, 488, 493, 495, 496, 497, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511,
    512, 513, 515, 516, 518, 519, 521, 522, 523, 524, 525, 526, 527, 530, 532, 538, 539, 541, 543,
    544, 546, 547, 549, 550, 551, 552, 553, 554, 555, 557, 562, 565, 566, 567, 568, 570, 571, 577,
    578, 579, 580, 581, 582, 586, 588, 589, 590, 592, 593, 594, 595, 600, 601, 602, 603, 606, 609,
    610, 611, 613, 614, 618, 623, 624, 625, 626, 630, 632, 634, 637, 638, 639, 644, 645, 646, 648,
    650, 651, 654, 658, 659, 662, 666, 667, 668, 669, 670, 671, 678, 679, 683, 685, 686, 687, 688,
    689, 691, 694, 695, 696, 698, 699, 700, 701, 703, 704, 707, 708, 712, 713, 714, 715, 717, 719,
    722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739, 742, 743, 745, 746, 747, 748, 749, 750,
    751, 753, 758, 759, 760, 763, 764, 765, 766, 767, 769, 771, 773, 775, 776, 779, 780, 781, 783,
    784, 785, 786, 787, 788, 789, 790, 791, 793, 794, 798, 799, 800, 802, 804, 805, 806, 807, 808,
    809, 810, 811, 812, 813, 821, 822, 823, 825, 827, 831, 835, 836, 837, 838, 839, 840, 841, 842,
    843, 844, 845, 846, 847, 848, 850, 852, 853, 854, 858, 859, 860, 866, 869, 873, 874, 876, 877,
    881, 882, 884, 886, 887, 888, 891, 892, 894, 895, 897, 898, 900, 902, 905, 906, 907, 909, 914,
    915, 918, 919, 920, 922, 923, 925, 927, 931, 932, 937, 938, 939, 940, 943, 944, 945, 947, 951,
    952, 953, 954, 955, 957, 958, 959, 961, 963, 966, 967, 971, 972, 973, 974, 975, 977, 978, 979,
    980, 982, 983, 986, 989, 990, 991, 992, 993, 998, 999, 1003, 1004, 1005, 1006, 1007, 1010,
    1011, 1012, 1014, 1015, 1020, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 12x10 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_12X10_P3: [u16; 597] = [
    0, 3, 7, 8, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36,
    38, 39, 40, 42, 43, 44, 45, 47, 48, 49, 50, 51, 55, 56, 57, 59, 60, 61, 62, 63, 67, 70, 72, 74,
    75, 76, 79, 81, 82, 88, 89, 90, 91, 94, 95, 96, 100, 102, 103, 104, 106, 108, 110, 111, 114,
    115, 117, 120, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 140, 144,
    147, 150, 151, 152, 153, 156, 157, 158, 161, 162, 163, 166, 167, 168, 169, 171, 173, 175, 176,
    178, 179, 181, 182, 183, 185, 186, 189, 192, 195, 198, 199, 200, 203, 205, 207, 209, 210, 213,
    214, 216, 218, 220, 222, 227, 230, 231, 235, 236, 238, 242, 245, 246, 247, 249, 250, 251, 252,
    254, 257, 259, 260, 261, 262, 263, 266, 269, 272, 273, 274, 275, 276, 279, 281, 282, 283, 288,
    291, 292, 293, 294, 295, 297, 300, 302, 306, 307, 308, 309, 310, 311, 313, 314, 315, 318, 319,
    324, 326, 327, 328, 330, 331, 335, 337, 338, 342, 345, 346, 347, 348, 350, 353, 355, 356, 357,
    358, 359, 363, 364, 365, 368, 371, 372, 374, 377, 378, 379, 381, 384, 386, 387, 388, 390, 391,
    392, 394, 395, 396, 397, 398, 399, 401, 407, 408, 410, 411, 412, 413, 415, 417, 419, 424, 427,
    430, 431, 435, 437, 438, 439, 440, 443, 446, 450, 451, 455, 456, 457, 458, 459, 460, 461, 462,
    463, 464, 465, 466, 467, 468, 470, 471, 472, 474, 475, 477, 478, 479, 480, 482, 483, 485, 487,
    488, 493, 495, 496, 497, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511, 512, 513, 515,
    516, 518, 519, 521, 522, 523, 524, 525, 526, 527, 530, 532, 538, 539, 541, 543, 544, 546, 547,
    549, 550, 551, 552, 553, 554, 555, 557, 558, 562, 563, 565, 566, 567, 568, 570, 571, 577, 578,
    579, 580, 581, 582, 584, 586, 588, 589, 590, 592, 593, 594, 595, 600, 601, 602, 603, 604, 606,
    609, 610, 611, 613, 614, 618, 623, 624, 625, 626, 630, 632, 634, 637, 638, 639, 643, 644, 645,
    646, 648, 650, 651, 654, 658, 659, 662, 666, 667, 668, 669, 670, 671, 673, 678, 679, 683, 685,
    686, 687, 688, 689, 691, 694, 695, 696, 698, 699, 700, 701, 703, 704, 707, 708, 711, 712, 713,
    714, 715, 717, 719, 722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739, 742, 743, 745, 746,
    747, 748, 749, 750, 751, 753, 758, 759, 760, 763, 764, 765, 766, 767, 769, 771, 773, 775, 776,
    779, 780, 781, 783, 784, 785, 786, 787, 788, 789, 790, 791, 793, 794, 798, 799, 800, 802, 804,
    805, 806, 807, 808, 809, 810, 811, 812, 813, 821, 822, 823, 824, 825, 827, 828, 831, 835, 836,
    837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 850, 852, 853, 854, 858, 859, 860,
    866, 869, 873, 874, 876, 877, 881, 882, 884, 886, 887, 888, 891, 892, 894, 895, 897, 898, 900,
    902, 905, 906, 907, 909, 914, 915, 918, 919, 920, 922, 923, 925, 927, 931, 932, 937, 938, 939,
    940, 943, 944, 945, 947, 951, 952, 953, 954, 955, 957, 958, 959, 961, 963, 966, 967, 971, 972,
    973, 974, 975, 977, 978, 979, 980, 982, 983, 986, 989, 990, 991, 992, 993, 995, 998, 999, 1002,
    1003, 1004, 1005, 1006, 1007, 1010, 1011, 1012, 1014, 1015, 1020, 1021, 1022, 1023,
];

/// Unique-pattern index to ASTC partition seed, 12x12 blocks with 3 subsets.
pub static UNIQUE_TO_SEED_12X12_P3: [u16; 626] = [
    0, 3, 4, 7, 8, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35,
    36, 38, 39, 40, 42, 43, 44, 45, 47, 48, 49, 50, 51, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 67,
    70, 72, 74, 75, 76, 79, 81, 82, 83, 88, 89, 90, 91, 94, 95, 96, 100, 102, 103, 104, 106, 108,
    110, 111, 114, 115, 117, 120, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
    138, 139, 140, 144, 147, 150, 151, 152, 153, 156, 157, 158, 159, 160, 161, 162, 163, 166, 167,
    168, 169, 171, 173, 175, 176, 177, 178, 179, 181, 182, 183, 185, 186, 189, 192, 195, 196, 198,
    199, 200, 203, 205, 207, 208, 209, 210, 213, 214, 216, 218, 220, 222, 227, 230, 231, 235, 236,
    238, 242, 245, 246, 247, 249, 250, 251, 252, 254, 257, 259, 260, 261, 262, 263, 266, 269, 272,
    273, 274, 275, 276, 279, 281, 282, 283, 288, 291, 292, 293, 294, 295, 297, 300, 302, 306, 307,
    308, 309, 310, 311, 313, 314, 315, 318, 319, 324, 326, 327, 328, 330, 331, 335, 337, 338, 342,
    345, 346, 347, 348, 350, 353, 355, 356, 357, 358, 359, 363, 364, 365, 368, 371, 372, 374, 377,
    378, 379, 381, 384, 386, 387, 388, 390, 391, 392, 394, 395, 396, 397, 398, 399, 401, 407, 408,
    410, 411, 412, 413, 415, 417, 419, 424, 426, 427, 430, 431, 432, 435, 437, 438, 439, 440, 443,
    444, 446, 450, 451, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 470,
    471, 472, 474, 475, 477, 478, 479, 480, 482, 483, 485, 487, 488, 493, 495, 496, 497, 500, 501,
    502, 503, 504, 505, 506, 507, 508, 510, 511, 512, 513, 515, 516, 518, 519, 521, 522, 523, 524,
    525, 526, 527, 530, 532, 535, 538, 539, 540, 541, 543, 544, 546, 547, 549, 550, 551, 552, 553,
    554, 555, 557, 558, 562, 563, 565, 566, 567, 568, 569, 570, 571, 577, 578, 579, 580, 581, 582,
    584, 586, 588, 589, 590, 592, 593, 594, 595, 600, 601, 602, 603, 604, 606, 609, 610, 611, 613,
    614, 618, 623, 624, 625, 626, 628, 630, 631, 632, 634, 636, 637, 638, 639, 640, 643, 644, 645,
    646, 648, 650, 651, 654, 658, 659, 662, 666, 667, 668, 669, 670, 671, 673, 678, 679, 683, 685,
    686, 687, 688, 689, 691, 694, 695, 696, 698, 699, 700, 701, 703, 704, 707, 708, 711, 712, 713,
    714, 715, 717, 719, 722, 724, 725, 727, 730, 731, 732, 734, 735, 738, 739, 742, 743, 745, 746,
    747, 748, 749, 750, 751, 753, 758, 759, 760, 763, 764, 765, 766, 767, 768, 769, 771, 773, 774,
    775, 776, 778, 779, 780, 781, 783, 784, 785, 786, 787, 788, 789, 790, 791, 793, 794, 798, 799,
    800, 802, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 821, 822, 823, 824, 825, 827, 828,
    831, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 850, 852, 853, 854,
    858, 859, 860, 863, 866, 869, 873, 874, 876, 877, 881, 882, 884, 886, 887, 888, 891, 892, 894,
    895, 897, 898, 900, 902, 905, 906, 907, 909, 911, 912, 914, 915, 918, 919, 920, 922, 923, 925,
    927, 929, 930, 931, 932, 937, 938, 939, 940, 943, 944, 945, 947, 951, 952, 953, 954, 955, 957,
    958, 959, 961, 963, 966, 967, 971, 972, 973, 974, 975, 977, 978, 979, 980, 982, 983, 986, 989,
    990, 991, 992, 993, 995, 998, 999, 1000, 1002, 1003, 1004, 1005, 1006, 1007, 1010, 1011, 1012,
    1014, 1015, 1020, 1021, 1022, 1023,
];

/// Partition-seed maps grouped by subset count then block size, indexed
/// `[num_parts - 2][block_size_index]`: the outer index selects the 2-subset
/// (`P2`) or 3-subset (`P3`) set, and each inner entry is that block size's
/// `UNIQUE_TO_SEED_*` array turning a unique-pattern index into an ASTC
/// partition seed.
pub static UNIQUE_INDEX_TO_PART_SEED: [[&[u16]; 14]; 2] = [
    [
        &UNIQUE_TO_SEED_4X4_P2,
        &UNIQUE_TO_SEED_5X4_P2,
        &UNIQUE_TO_SEED_5X5_P2,
        &UNIQUE_TO_SEED_6X5_P2,
        &UNIQUE_TO_SEED_6X6_P2,
        &UNIQUE_TO_SEED_8X5_P2,
        &UNIQUE_TO_SEED_8X6_P2,
        &UNIQUE_TO_SEED_10X5_P2,
        &UNIQUE_TO_SEED_10X6_P2,
        &UNIQUE_TO_SEED_8X8_P2,
        &UNIQUE_TO_SEED_10X8_P2,
        &UNIQUE_TO_SEED_10X10_P2,
        &UNIQUE_TO_SEED_12X10_P2,
        &UNIQUE_TO_SEED_12X12_P2,
    ],
    [
        &UNIQUE_TO_SEED_4X4_P3,
        &UNIQUE_TO_SEED_5X4_P3,
        &UNIQUE_TO_SEED_5X5_P3,
        &UNIQUE_TO_SEED_6X5_P3,
        &UNIQUE_TO_SEED_6X6_P3,
        &UNIQUE_TO_SEED_8X5_P3,
        &UNIQUE_TO_SEED_8X6_P3,
        &UNIQUE_TO_SEED_10X5_P3,
        &UNIQUE_TO_SEED_10X6_P3,
        &UNIQUE_TO_SEED_8X8_P3,
        &UNIQUE_TO_SEED_10X8_P3,
        &UNIQUE_TO_SEED_10X10_P3,
        &UNIQUE_TO_SEED_12X10_P3,
        &UNIQUE_TO_SEED_12X12_P3,
    ],
];

/// The baseline JPEG luminance quantization matrix (ISO/IEC 10918-1 Annex K,
/// Table K.1), row-major `[y_freq][x_freq]`, except the DC term is lowered from
/// 16 to 4 so the lowest-frequency weight quantizes more finely. Sampled
/// bilinearly across the weight grid's frequency extent to frequency-weight the
/// DCT-domain quantization of the grid.
pub static BASELINE_JPEG_Y: [[i32; 8]; 8] = [
    [4, 11, 10, 16, 24, 40, 51, 61],
    [12, 12, 14, 19, 26, 58, 60, 55],
    [14, 13, 16, 24, 40, 57, 69, 56],
    [14, 17, 22, 29, 51, 87, 80, 62],
    [18, 22, 37, 56, 68, 109, 103, 77],
    [24, 35, 55, 64, 81, 104, 113, 92],
    [49, 64, 78, 87, 103, 121, 120, 101],
    [72, 92, 95, 98, 112, 100, 103, 99],
];

/// Per-weight-range quantization step scale, indexed by the weight ISE range
/// and folded into the adaptive factor of the weight-grid DCT quantization.
/// Written at full f32 printed precision, hence the `excessive_precision` allow.
#[allow(clippy::excessive_precision)]
pub static SCALE_QUANT_STEPS: [f32; 12] = [
    1.51333141, 1.41198814, 1.35588217, 1.31743157, 1.28835952, 1.24573100, 1.21481407, 1.19067919,
    1.15431654, 1.12734985, 1.10601568, 1.07348967,
];