lpn 0.2.0

Software to study attacks on the Learning Parity with Noise problem
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
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
use std::boxed::Box;
use std::default::Default;
use std::sync::Once;

use fnv::FnvHashMap;

use m4ri_rust::friendly::BinMatrix;
use m4ri_rust::friendly::BinVector;

use crate::codes::BinaryCode;

/// ``[23, 10]`` Guava code
///
/// Best code found from the GUAVA database version 3.15
///
/// Decodes using Syndrome decoding
#[derive(Clone, Serialize)]
pub struct GuavaCode23_10;

static INIT: Once = Once::new();
static mut GENERATOR_MATRIX: *const BinMatrix = 0 as *const BinMatrix;
static mut PARITY_MATRIX: *const BinMatrix = 0 as *const BinMatrix;
static mut PARITY_MATRIX_T: *const BinMatrix = 0 as *const BinMatrix;
static mut SYNDROME_MAP: *const FnvHashMap<u64, &'static [usize; 1]> = 0 as *const FnvHashMap<u64, &'static [usize; 1]>;

fn init() {
    INIT.call_once(|| {
        unsafe {
            let matrix = Box::new(BinMatrix::from_slices(&[
                &[ 5581825 ],
                &[ 1805314 ],
                &[ 4639748 ],
                &[ 5085192 ],
                &[ 5976080 ],
                &[ 504864 ],
                &[ 1009728 ],
                &[ 2019456 ],
                &[ 5010688 ],
                &[ 5827072 ],
                
            ], 23));
            GENERATOR_MATRIX = Box::into_raw(matrix);

            let matrix = Box::new(BinMatrix::from_slices(&[
                &[ 4673537 ],
                &[ 651266 ],
                &[ 5550084 ],
                &[ 929800 ],
                &[ 5976080 ],
                &[ 5660704 ],
                &[ 5029952 ],
                &[ 2019456 ],
                &[ 1941760 ],
                &[ 1786368 ],
                &[ 5362688 ],
                &[ 4433920 ],
                &[ 2097152 ],
                
            ], 23));
            let matrix_t = Box::new(matrix.transposed());
            PARITY_MATRIX = Box::into_raw(matrix);
            PARITY_MATRIX_T = Box::into_raw(matrix_t);

            let mut map = Box::new(FnvHashMap::with_capacity_and_hasher(8192, Default::default()));
            map.insert(0, &[0]);     // 0 => [0]
            map.insert(1, &[1]);     // 1 => [1]
            map.insert(2, &[2]);     // 2 => [2]
            map.insert(4, &[4]);     // 4 => [4]
            map.insert(8, &[8]);     // 8 => [8]
            map.insert(16, &[16]);     // 16 => [16]
            map.insert(32, &[32]);     // 32 => [32]
            map.insert(64, &[64]);     // 64 => [64]
            map.insert(128, &[128]);     // 128 => [128]
            map.insert(256, &[256]);     // 256 => [256]
            map.insert(512, &[512]);     // 512 => [512]
            map.insert(1024, &[1024]);     // 1024 => [1024]
            map.insert(2048, &[2048]);     // 2048 => [2048]
            map.insert(1183, &[4096]);     // 1183 => [4096]
            map.insert(2366, &[8192]);     // 2366 => [8192]
            map.insert(1763, &[16384]);     // 1763 => [16384]
            map.insert(3526, &[32768]);     // 3526 => [32768]
            map.insert(3859, &[65536]);     // 3859 => [65536]
            map.insert(2745, &[131072]);     // 2745 => [131072]
            map.insert(493, &[262144]);     // 493 => [262144]
            map.insert(986, &[524288]);     // 986 => [524288]
            map.insert(1972, &[1048576]);     // 1972 => [1048576]
            map.insert(4096, &[2097152]);     // 4096 => [2097152]
            map.insert(3189, &[4194304]);     // 3189 => [4194304]
            map.insert(3, &[3]);     // 3 => [3]
            map.insert(5, &[5]);     // 5 => [5]
            map.insert(9, &[9]);     // 9 => [9]
            map.insert(17, &[17]);     // 17 => [17]
            map.insert(33, &[33]);     // 33 => [33]
            map.insert(65, &[65]);     // 65 => [65]
            map.insert(129, &[129]);     // 129 => [129]
            map.insert(257, &[257]);     // 257 => [257]
            map.insert(513, &[513]);     // 513 => [513]
            map.insert(1025, &[1025]);     // 1025 => [1025]
            map.insert(2049, &[2049]);     // 2049 => [2049]
            map.insert(1182, &[4097]);     // 1182 => [4097]
            map.insert(2367, &[8193]);     // 2367 => [8193]
            map.insert(1762, &[16385]);     // 1762 => [16385]
            map.insert(3527, &[32769]);     // 3527 => [32769]
            map.insert(3858, &[65537]);     // 3858 => [65537]
            map.insert(2744, &[131073]);     // 2744 => [131073]
            map.insert(492, &[262145]);     // 492 => [262145]
            map.insert(987, &[524289]);     // 987 => [524289]
            map.insert(1973, &[1048577]);     // 1973 => [1048577]
            map.insert(4097, &[2097153]);     // 4097 => [2097153]
            map.insert(3188, &[4194305]);     // 3188 => [4194305]
            map.insert(6, &[6]);     // 6 => [6]
            map.insert(10, &[10]);     // 10 => [10]
            map.insert(18, &[18]);     // 18 => [18]
            map.insert(34, &[34]);     // 34 => [34]
            map.insert(66, &[66]);     // 66 => [66]
            map.insert(130, &[130]);     // 130 => [130]
            map.insert(258, &[258]);     // 258 => [258]
            map.insert(514, &[514]);     // 514 => [514]
            map.insert(1026, &[1026]);     // 1026 => [1026]
            map.insert(2050, &[2050]);     // 2050 => [2050]
            map.insert(1181, &[4098]);     // 1181 => [4098]
            map.insert(2364, &[8194]);     // 2364 => [8194]
            map.insert(1761, &[16386]);     // 1761 => [16386]
            map.insert(3524, &[32770]);     // 3524 => [32770]
            map.insert(3857, &[65538]);     // 3857 => [65538]
            map.insert(2747, &[131074]);     // 2747 => [131074]
            map.insert(495, &[262146]);     // 495 => [262146]
            map.insert(984, &[524290]);     // 984 => [524290]
            map.insert(1974, &[1048578]);     // 1974 => [1048578]
            map.insert(4098, &[2097154]);     // 4098 => [2097154]
            map.insert(3191, &[4194306]);     // 3191 => [4194306]
            map.insert(12, &[12]);     // 12 => [12]
            map.insert(20, &[20]);     // 20 => [20]
            map.insert(36, &[36]);     // 36 => [36]
            map.insert(68, &[68]);     // 68 => [68]
            map.insert(132, &[132]);     // 132 => [132]
            map.insert(260, &[260]);     // 260 => [260]
            map.insert(516, &[516]);     // 516 => [516]
            map.insert(1028, &[1028]);     // 1028 => [1028]
            map.insert(2052, &[2052]);     // 2052 => [2052]
            map.insert(1179, &[4100]);     // 1179 => [4100]
            map.insert(2362, &[8196]);     // 2362 => [8196]
            map.insert(1767, &[16388]);     // 1767 => [16388]
            map.insert(3522, &[32772]);     // 3522 => [32772]
            map.insert(3863, &[65540]);     // 3863 => [65540]
            map.insert(2749, &[131076]);     // 2749 => [131076]
            map.insert(489, &[262148]);     // 489 => [262148]
            map.insert(990, &[524292]);     // 990 => [524292]
            map.insert(1968, &[1048580]);     // 1968 => [1048580]
            map.insert(4100, &[2097156]);     // 4100 => [2097156]
            map.insert(3185, &[4194308]);     // 3185 => [4194308]
            map.insert(24, &[24]);     // 24 => [24]
            map.insert(40, &[40]);     // 40 => [40]
            map.insert(72, &[72]);     // 72 => [72]
            map.insert(136, &[136]);     // 136 => [136]
            map.insert(264, &[264]);     // 264 => [264]
            map.insert(520, &[520]);     // 520 => [520]
            map.insert(1032, &[1032]);     // 1032 => [1032]
            map.insert(2056, &[2056]);     // 2056 => [2056]
            map.insert(1175, &[4104]);     // 1175 => [4104]
            map.insert(2358, &[8200]);     // 2358 => [8200]
            map.insert(1771, &[16392]);     // 1771 => [16392]
            map.insert(3534, &[32776]);     // 3534 => [32776]
            map.insert(3867, &[65544]);     // 3867 => [65544]
            map.insert(2737, &[131080]);     // 2737 => [131080]
            map.insert(485, &[262152]);     // 485 => [262152]
            map.insert(978, &[524296]);     // 978 => [524296]
            map.insert(1980, &[1048584]);     // 1980 => [1048584]
            map.insert(4104, &[2097160]);     // 4104 => [2097160]
            map.insert(3197, &[4194312]);     // 3197 => [4194312]
            map.insert(48, &[48]);     // 48 => [48]
            map.insert(80, &[80]);     // 80 => [80]
            map.insert(144, &[144]);     // 144 => [144]
            map.insert(272, &[272]);     // 272 => [272]
            map.insert(528, &[528]);     // 528 => [528]
            map.insert(1040, &[1040]);     // 1040 => [1040]
            map.insert(2064, &[2064]);     // 2064 => [2064]
            map.insert(1167, &[4112]);     // 1167 => [4112]
            map.insert(2350, &[8208]);     // 2350 => [8208]
            map.insert(1779, &[16400]);     // 1779 => [16400]
            map.insert(3542, &[32784]);     // 3542 => [32784]
            map.insert(3843, &[65552]);     // 3843 => [65552]
            map.insert(2729, &[131088]);     // 2729 => [131088]
            map.insert(509, &[262160]);     // 509 => [262160]
            map.insert(970, &[524304]);     // 970 => [524304]
            map.insert(1956, &[1048592]);     // 1956 => [1048592]
            map.insert(4112, &[2097168]);     // 4112 => [2097168]
            map.insert(3173, &[4194320]);     // 3173 => [4194320]
            map.insert(96, &[96]);     // 96 => [96]
            map.insert(160, &[160]);     // 160 => [160]
            map.insert(288, &[288]);     // 288 => [288]
            map.insert(544, &[544]);     // 544 => [544]
            map.insert(1056, &[1056]);     // 1056 => [1056]
            map.insert(2080, &[2080]);     // 2080 => [2080]
            map.insert(1215, &[4128]);     // 1215 => [4128]
            map.insert(2334, &[8224]);     // 2334 => [8224]
            map.insert(1731, &[16416]);     // 1731 => [16416]
            map.insert(3558, &[32800]);     // 3558 => [32800]
            map.insert(3891, &[65568]);     // 3891 => [65568]
            map.insert(2713, &[131104]);     // 2713 => [131104]
            map.insert(461, &[262176]);     // 461 => [262176]
            map.insert(1018, &[524320]);     // 1018 => [524320]
            map.insert(1940, &[1048608]);     // 1940 => [1048608]
            map.insert(4128, &[2097184]);     // 4128 => [2097184]
            map.insert(3157, &[4194336]);     // 3157 => [4194336]
            map.insert(192, &[192]);     // 192 => [192]
            map.insert(320, &[320]);     // 320 => [320]
            map.insert(576, &[576]);     // 576 => [576]
            map.insert(1088, &[1088]);     // 1088 => [1088]
            map.insert(2112, &[2112]);     // 2112 => [2112]
            map.insert(1247, &[4160]);     // 1247 => [4160]
            map.insert(2430, &[8256]);     // 2430 => [8256]
            map.insert(1699, &[16448]);     // 1699 => [16448]
            map.insert(3462, &[32832]);     // 3462 => [32832]
            map.insert(3923, &[65600]);     // 3923 => [65600]
            map.insert(2809, &[131136]);     // 2809 => [131136]
            map.insert(429, &[262208]);     // 429 => [262208]
            map.insert(922, &[524352]);     // 922 => [524352]
            map.insert(2036, &[1048640]);     // 2036 => [1048640]
            map.insert(4160, &[2097216]);     // 4160 => [2097216]
            map.insert(3125, &[4194368]);     // 3125 => [4194368]
            map.insert(384, &[384]);     // 384 => [384]
            map.insert(640, &[640]);     // 640 => [640]
            map.insert(1152, &[1152]);     // 1152 => [1152]
            map.insert(2176, &[2176]);     // 2176 => [2176]
            map.insert(1055, &[4224]);     // 1055 => [4224]
            map.insert(2494, &[8320]);     // 2494 => [8320]
            map.insert(1635, &[16512]);     // 1635 => [16512]
            map.insert(3398, &[32896]);     // 3398 => [32896]
            map.insert(3987, &[65664]);     // 3987 => [65664]
            map.insert(2617, &[131200]);     // 2617 => [131200]
            map.insert(365, &[262272]);     // 365 => [262272]
            map.insert(858, &[524416]);     // 858 => [524416]
            map.insert(1844, &[1048704]);     // 1844 => [1048704]
            map.insert(4224, &[2097280]);     // 4224 => [2097280]
            map.insert(3317, &[4194432]);     // 3317 => [4194432]
            map.insert(768, &[768]);     // 768 => [768]
            map.insert(1280, &[1280]);     // 1280 => [1280]
            map.insert(2304, &[2304]);     // 2304 => [2304]
            map.insert(1439, &[4352]);     // 1439 => [4352]
            map.insert(2110, &[8448]);     // 2110 => [8448]
            map.insert(2019, &[16640]);     // 2019 => [16640]
            map.insert(3270, &[33024]);     // 3270 => [33024]
            map.insert(3603, &[65792]);     // 3603 => [65792]
            map.insert(3001, &[131328]);     // 3001 => [131328]
            map.insert(237, &[262400]);     // 237 => [262400]
            map.insert(730, &[524544]);     // 730 => [524544]
            map.insert(1716, &[1048832]);     // 1716 => [1048832]
            map.insert(4352, &[2097408]);     // 4352 => [2097408]
            map.insert(3445, &[4194560]);     // 3445 => [4194560]
            map.insert(1536, &[1536]);     // 1536 => [1536]
            map.insert(2560, &[2560]);     // 2560 => [2560]
            map.insert(1695, &[4608]);     // 1695 => [4608]
            map.insert(2878, &[8704]);     // 2878 => [8704]
            map.insert(1251, &[16896]);     // 1251 => [16896]
            map.insert(4038, &[33280]);     // 4038 => [33280]
            map.insert(3347, &[66048]);     // 3347 => [66048]
            map.insert(2233, &[131584]);     // 2233 => [131584]
            map.insert(1005, &[262656]);     // 1005 => [262656]
            map.insert(474, &[524800]);     // 474 => [524800]
            map.insert(1460, &[1049088]);     // 1460 => [1049088]
            map.insert(4608, &[2097664]);     // 4608 => [2097664]
            map.insert(3701, &[4194816]);     // 3701 => [4194816]
            map.insert(3072, &[3072]);     // 3072 => [3072]
            map.insert(159, &[5120]);     // 159 => [5120]
            map.insert(3390, &[9216]);     // 3390 => [9216]
            map.insert(739, &[17408]);     // 739 => [17408]
            map.insert(2502, &[33792]);     // 2502 => [33792]
            map.insert(2835, &[66560]);     // 2835 => [66560]
            map.insert(3769, &[132096]);     // 3769 => [132096]
            map.insert(1517, &[263168]);     // 1517 => [263168]
            map.insert(2010, &[525312]);     // 2010 => [525312]
            map.insert(948, &[1049600]);     // 948 => [1049600]
            map.insert(5120, &[2098176]);     // 5120 => [2098176]
            map.insert(2165, &[4195328]);     // 2165 => [4195328]
            map.insert(3231, &[6144]);     // 3231 => [6144]
            map.insert(318, &[10240]);     // 318 => [10240]
            map.insert(3811, &[18432]);     // 3811 => [18432]
            map.insert(1478, &[34816]);     // 1478 => [34816]
            map.insert(1811, &[67584]);     // 1811 => [67584]
            map.insert(697, &[133120]);     // 697 => [133120]
            map.insert(2541, &[264192]);     // 2541 => [264192]
            map.insert(3034, &[526336]);     // 3034 => [526336]
            map.insert(4020, &[1050624]);     // 4020 => [1050624]
            map.insert(6144, &[2099200]);     // 6144 => [2099200]
            map.insert(1141, &[4196352]);     // 1141 => [4196352]
            map.insert(3489, &[12288]);     // 3489 => [12288]
            map.insert(636, &[20480]);     // 636 => [20480]
            map.insert(2393, &[36864]);     // 2393 => [36864]
            map.insert(2956, &[69632]);     // 2956 => [69632]
            map.insert(3622, &[135168]);     // 3622 => [135168]
            map.insert(1394, &[266240]);     // 1394 => [266240]
            map.insert(1861, &[528384]);     // 1861 => [528384]
            map.insert(811, &[1052672]);     // 811 => [1052672]
            map.insert(5279, &[2101248]);     // 5279 => [2101248]
            map.insert(2282, &[4198400]);     // 2282 => [4198400]
            map.insert(4061, &[24576]);     // 4061 => [24576]
            map.insert(1272, &[40960]);     // 1272 => [40960]
            map.insert(1581, &[73728]);     // 1581 => [73728]
            map.insert(903, &[139264]);     // 903 => [139264]
            map.insert(2259, &[270336]);     // 2259 => [270336]
            map.insert(2788, &[532480]);     // 2788 => [532480]
            map.insert(3722, &[1056768]);     // 3722 => [1056768]
            map.insert(6462, &[2105344]);     // 6462 => [2105344]
            map.insert(1355, &[4202496]);     // 1355 => [4202496]
            map.insert(2853, &[49152]);     // 2853 => [49152]
            map.insert(2544, &[81920]);     // 2544 => [81920]
            map.insert(3162, &[147456]);     // 3162 => [147456]
            map.insert(1806, &[278528]);     // 1806 => [278528]
            map.insert(1337, &[540672]);     // 1337 => [540672]
            map.insert(343, &[1064960]);     // 343 => [1064960]
            map.insert(5859, &[2113536]);     // 5859 => [2113536]
            map.insert(2710, &[4210688]);     // 2710 => [4210688]
            map.insert(725, &[98304]);     // 725 => [98304]
            map.insert(1919, &[163840]);     // 1919 => [163840]
            map.insert(3115, &[294912]);     // 3115 => [294912]
            map.insert(3612, &[557056]);     // 3612 => [557056]
            map.insert(2674, &[1081344]);     // 2674 => [1081344]
            map.insert(7622, &[2129920]);     // 7622 => [2129920]
            map.insert(435, &[4227072]);     // 435 => [4227072]
            map.insert(1450, &[196608]);     // 1450 => [196608]
            map.insert(3838, &[327680]);     // 3838 => [327680]
            map.insert(3273, &[589824]);     // 3273 => [589824]
            map.insert(2215, &[1114112]);     // 2215 => [1114112]
            map.insert(7955, &[2162688]);     // 7955 => [2162688]
            map.insert(870, &[4259840]);     // 870 => [4259840]
            map.insert(2900, &[393216]);     // 2900 => [393216]
            map.insert(2403, &[655360]);     // 2403 => [655360]
            map.insert(3341, &[1179648]);     // 3341 => [1179648]
            map.insert(6841, &[2228224]);     // 6841 => [2228224]
            map.insert(1740, &[4325376]);     // 1740 => [4325376]
            map.insert(567, &[786432]);     // 567 => [786432]
            map.insert(1625, &[1310720]);     // 1625 => [1310720]
            map.insert(4589, &[2359296]);     // 4589 => [2359296]
            map.insert(3480, &[4456448]);     // 3480 => [4456448]
            map.insert(1134, &[1572864]);     // 1134 => [1572864]
            map.insert(5082, &[2621440]);     // 5082 => [2621440]
            map.insert(4015, &[4718592]);     // 4015 => [4718592]
            map.insert(6068, &[3145728]);     // 6068 => [3145728]
            map.insert(3009, &[5242880]);     // 3009 => [5242880]
            map.insert(7285, &[6291456]);     // 7285 => [6291456]
            map.insert(7, &[7]);     // 7 => [7]
            map.insert(11, &[11]);     // 11 => [11]
            map.insert(19, &[19]);     // 19 => [19]
            map.insert(35, &[35]);     // 35 => [35]
            map.insert(67, &[67]);     // 67 => [67]
            map.insert(131, &[131]);     // 131 => [131]
            map.insert(259, &[259]);     // 259 => [259]
            map.insert(515, &[515]);     // 515 => [515]
            map.insert(1027, &[1027]);     // 1027 => [1027]
            map.insert(2051, &[2051]);     // 2051 => [2051]
            map.insert(1180, &[4099]);     // 1180 => [4099]
            map.insert(2365, &[8195]);     // 2365 => [8195]
            map.insert(1760, &[16387]);     // 1760 => [16387]
            map.insert(3525, &[32771]);     // 3525 => [32771]
            map.insert(3856, &[65539]);     // 3856 => [65539]
            map.insert(2746, &[131075]);     // 2746 => [131075]
            map.insert(494, &[262147]);     // 494 => [262147]
            map.insert(985, &[524291]);     // 985 => [524291]
            map.insert(1975, &[1048579]);     // 1975 => [1048579]
            map.insert(4099, &[2097155]);     // 4099 => [2097155]
            map.insert(3190, &[4194307]);     // 3190 => [4194307]
            map.insert(13, &[13]);     // 13 => [13]
            map.insert(21, &[21]);     // 21 => [21]
            map.insert(37, &[37]);     // 37 => [37]
            map.insert(69, &[69]);     // 69 => [69]
            map.insert(133, &[133]);     // 133 => [133]
            map.insert(261, &[261]);     // 261 => [261]
            map.insert(517, &[517]);     // 517 => [517]
            map.insert(1029, &[1029]);     // 1029 => [1029]
            map.insert(2053, &[2053]);     // 2053 => [2053]
            map.insert(1178, &[4101]);     // 1178 => [4101]
            map.insert(2363, &[8197]);     // 2363 => [8197]
            map.insert(1766, &[16389]);     // 1766 => [16389]
            map.insert(3523, &[32773]);     // 3523 => [32773]
            map.insert(3862, &[65541]);     // 3862 => [65541]
            map.insert(2748, &[131077]);     // 2748 => [131077]
            map.insert(488, &[262149]);     // 488 => [262149]
            map.insert(991, &[524293]);     // 991 => [524293]
            map.insert(1969, &[1048581]);     // 1969 => [1048581]
            map.insert(4101, &[2097157]);     // 4101 => [2097157]
            map.insert(3184, &[4194309]);     // 3184 => [4194309]
            map.insert(25, &[25]);     // 25 => [25]
            map.insert(41, &[41]);     // 41 => [41]
            map.insert(73, &[73]);     // 73 => [73]
            map.insert(137, &[137]);     // 137 => [137]
            map.insert(265, &[265]);     // 265 => [265]
            map.insert(521, &[521]);     // 521 => [521]
            map.insert(1033, &[1033]);     // 1033 => [1033]
            map.insert(2057, &[2057]);     // 2057 => [2057]
            map.insert(1174, &[4105]);     // 1174 => [4105]
            map.insert(2359, &[8201]);     // 2359 => [8201]
            map.insert(1770, &[16393]);     // 1770 => [16393]
            map.insert(3535, &[32777]);     // 3535 => [32777]
            map.insert(3866, &[65545]);     // 3866 => [65545]
            map.insert(2736, &[131081]);     // 2736 => [131081]
            map.insert(484, &[262153]);     // 484 => [262153]
            map.insert(979, &[524297]);     // 979 => [524297]
            map.insert(1981, &[1048585]);     // 1981 => [1048585]
            map.insert(4105, &[2097161]);     // 4105 => [2097161]
            map.insert(3196, &[4194313]);     // 3196 => [4194313]
            map.insert(49, &[49]);     // 49 => [49]
            map.insert(81, &[81]);     // 81 => [81]
            map.insert(145, &[145]);     // 145 => [145]
            map.insert(273, &[273]);     // 273 => [273]
            map.insert(529, &[529]);     // 529 => [529]
            map.insert(1041, &[1041]);     // 1041 => [1041]
            map.insert(2065, &[2065]);     // 2065 => [2065]
            map.insert(1166, &[4113]);     // 1166 => [4113]
            map.insert(2351, &[8209]);     // 2351 => [8209]
            map.insert(1778, &[16401]);     // 1778 => [16401]
            map.insert(3543, &[32785]);     // 3543 => [32785]
            map.insert(3842, &[65553]);     // 3842 => [65553]
            map.insert(2728, &[131089]);     // 2728 => [131089]
            map.insert(508, &[262161]);     // 508 => [262161]
            map.insert(971, &[524305]);     // 971 => [524305]
            map.insert(1957, &[1048593]);     // 1957 => [1048593]
            map.insert(4113, &[2097169]);     // 4113 => [2097169]
            map.insert(3172, &[4194321]);     // 3172 => [4194321]
            map.insert(97, &[97]);     // 97 => [97]
            map.insert(161, &[161]);     // 161 => [161]
            map.insert(289, &[289]);     // 289 => [289]
            map.insert(545, &[545]);     // 545 => [545]
            map.insert(1057, &[1057]);     // 1057 => [1057]
            map.insert(2081, &[2081]);     // 2081 => [2081]
            map.insert(1214, &[4129]);     // 1214 => [4129]
            map.insert(2335, &[8225]);     // 2335 => [8225]
            map.insert(1730, &[16417]);     // 1730 => [16417]
            map.insert(3559, &[32801]);     // 3559 => [32801]
            map.insert(3890, &[65569]);     // 3890 => [65569]
            map.insert(2712, &[131105]);     // 2712 => [131105]
            map.insert(460, &[262177]);     // 460 => [262177]
            map.insert(1019, &[524321]);     // 1019 => [524321]
            map.insert(1941, &[1048609]);     // 1941 => [1048609]
            map.insert(4129, &[2097185]);     // 4129 => [2097185]
            map.insert(3156, &[4194337]);     // 3156 => [4194337]
            map.insert(193, &[193]);     // 193 => [193]
            map.insert(321, &[321]);     // 321 => [321]
            map.insert(577, &[577]);     // 577 => [577]
            map.insert(1089, &[1089]);     // 1089 => [1089]
            map.insert(2113, &[2113]);     // 2113 => [2113]
            map.insert(1246, &[4161]);     // 1246 => [4161]
            map.insert(2431, &[8257]);     // 2431 => [8257]
            map.insert(1698, &[16449]);     // 1698 => [16449]
            map.insert(3463, &[32833]);     // 3463 => [32833]
            map.insert(3922, &[65601]);     // 3922 => [65601]
            map.insert(2808, &[131137]);     // 2808 => [131137]
            map.insert(428, &[262209]);     // 428 => [262209]
            map.insert(923, &[524353]);     // 923 => [524353]
            map.insert(2037, &[1048641]);     // 2037 => [1048641]
            map.insert(4161, &[2097217]);     // 4161 => [2097217]
            map.insert(3124, &[4194369]);     // 3124 => [4194369]
            map.insert(385, &[385]);     // 385 => [385]
            map.insert(641, &[641]);     // 641 => [641]
            map.insert(1153, &[1153]);     // 1153 => [1153]
            map.insert(2177, &[2177]);     // 2177 => [2177]
            map.insert(1054, &[4225]);     // 1054 => [4225]
            map.insert(2495, &[8321]);     // 2495 => [8321]
            map.insert(1634, &[16513]);     // 1634 => [16513]
            map.insert(3399, &[32897]);     // 3399 => [32897]
            map.insert(3986, &[65665]);     // 3986 => [65665]
            map.insert(2616, &[131201]);     // 2616 => [131201]
            map.insert(364, &[262273]);     // 364 => [262273]
            map.insert(859, &[524417]);     // 859 => [524417]
            map.insert(1845, &[1048705]);     // 1845 => [1048705]
            map.insert(4225, &[2097281]);     // 4225 => [2097281]
            map.insert(3316, &[4194433]);     // 3316 => [4194433]
            map.insert(769, &[769]);     // 769 => [769]
            map.insert(1281, &[1281]);     // 1281 => [1281]
            map.insert(2305, &[2305]);     // 2305 => [2305]
            map.insert(1438, &[4353]);     // 1438 => [4353]
            map.insert(2111, &[8449]);     // 2111 => [8449]
            map.insert(2018, &[16641]);     // 2018 => [16641]
            map.insert(3271, &[33025]);     // 3271 => [33025]
            map.insert(3602, &[65793]);     // 3602 => [65793]
            map.insert(3000, &[131329]);     // 3000 => [131329]
            map.insert(236, &[262401]);     // 236 => [262401]
            map.insert(731, &[524545]);     // 731 => [524545]
            map.insert(1717, &[1048833]);     // 1717 => [1048833]
            map.insert(4353, &[2097409]);     // 4353 => [2097409]
            map.insert(3444, &[4194561]);     // 3444 => [4194561]
            map.insert(1537, &[1537]);     // 1537 => [1537]
            map.insert(2561, &[2561]);     // 2561 => [2561]
            map.insert(1694, &[4609]);     // 1694 => [4609]
            map.insert(2879, &[8705]);     // 2879 => [8705]
            map.insert(1250, &[16897]);     // 1250 => [16897]
            map.insert(4039, &[33281]);     // 4039 => [33281]
            map.insert(3346, &[66049]);     // 3346 => [66049]
            map.insert(2232, &[131585]);     // 2232 => [131585]
            map.insert(1004, &[262657]);     // 1004 => [262657]
            map.insert(475, &[524801]);     // 475 => [524801]
            map.insert(1461, &[1049089]);     // 1461 => [1049089]
            map.insert(4609, &[2097665]);     // 4609 => [2097665]
            map.insert(3700, &[4194817]);     // 3700 => [4194817]
            map.insert(3073, &[3073]);     // 3073 => [3073]
            map.insert(158, &[5121]);     // 158 => [5121]
            map.insert(3391, &[9217]);     // 3391 => [9217]
            map.insert(738, &[17409]);     // 738 => [17409]
            map.insert(2503, &[33793]);     // 2503 => [33793]
            map.insert(2834, &[66561]);     // 2834 => [66561]
            map.insert(3768, &[132097]);     // 3768 => [132097]
            map.insert(1516, &[263169]);     // 1516 => [263169]
            map.insert(2011, &[525313]);     // 2011 => [525313]
            map.insert(949, &[1049601]);     // 949 => [1049601]
            map.insert(5121, &[2098177]);     // 5121 => [2098177]
            map.insert(2164, &[4195329]);     // 2164 => [4195329]
            map.insert(3230, &[6145]);     // 3230 => [6145]
            map.insert(319, &[10241]);     // 319 => [10241]
            map.insert(3810, &[18433]);     // 3810 => [18433]
            map.insert(1479, &[34817]);     // 1479 => [34817]
            map.insert(1810, &[67585]);     // 1810 => [67585]
            map.insert(696, &[133121]);     // 696 => [133121]
            map.insert(2540, &[264193]);     // 2540 => [264193]
            map.insert(3035, &[526337]);     // 3035 => [526337]
            map.insert(4021, &[1050625]);     // 4021 => [1050625]
            map.insert(6145, &[2099201]);     // 6145 => [2099201]
            map.insert(1140, &[4196353]);     // 1140 => [4196353]
            map.insert(3488, &[12289]);     // 3488 => [12289]
            map.insert(637, &[20481]);     // 637 => [20481]
            map.insert(2392, &[36865]);     // 2392 => [36865]
            map.insert(2957, &[69633]);     // 2957 => [69633]
            map.insert(3623, &[135169]);     // 3623 => [135169]
            map.insert(1395, &[266241]);     // 1395 => [266241]
            map.insert(1860, &[528385]);     // 1860 => [528385]
            map.insert(810, &[1052673]);     // 810 => [1052673]
            map.insert(5278, &[2101249]);     // 5278 => [2101249]
            map.insert(2283, &[4198401]);     // 2283 => [4198401]
            map.insert(4060, &[24577]);     // 4060 => [24577]
            map.insert(1273, &[40961]);     // 1273 => [40961]
            map.insert(1580, &[73729]);     // 1580 => [73729]
            map.insert(902, &[139265]);     // 902 => [139265]
            map.insert(2258, &[270337]);     // 2258 => [270337]
            map.insert(2789, &[532481]);     // 2789 => [532481]
            map.insert(3723, &[1056769]);     // 3723 => [1056769]
            map.insert(6463, &[2105345]);     // 6463 => [2105345]
            map.insert(1354, &[4202497]);     // 1354 => [4202497]
            map.insert(2852, &[49153]);     // 2852 => [49153]
            map.insert(2545, &[81921]);     // 2545 => [81921]
            map.insert(3163, &[147457]);     // 3163 => [147457]
            map.insert(1807, &[278529]);     // 1807 => [278529]
            map.insert(1336, &[540673]);     // 1336 => [540673]
            map.insert(342, &[1064961]);     // 342 => [1064961]
            map.insert(5858, &[2113537]);     // 5858 => [2113537]
            map.insert(2711, &[4210689]);     // 2711 => [4210689]
            map.insert(724, &[98305]);     // 724 => [98305]
            map.insert(1918, &[163841]);     // 1918 => [163841]
            map.insert(3114, &[294913]);     // 3114 => [294913]
            map.insert(3613, &[557057]);     // 3613 => [557057]
            map.insert(2675, &[1081345]);     // 2675 => [1081345]
            map.insert(7623, &[2129921]);     // 7623 => [2129921]
            map.insert(434, &[4227073]);     // 434 => [4227073]
            map.insert(1451, &[196609]);     // 1451 => [196609]
            map.insert(3839, &[327681]);     // 3839 => [327681]
            map.insert(3272, &[589825]);     // 3272 => [589825]
            map.insert(2214, &[1114113]);     // 2214 => [1114113]
            map.insert(7954, &[2162689]);     // 7954 => [2162689]
            map.insert(871, &[4259841]);     // 871 => [4259841]
            map.insert(2901, &[393217]);     // 2901 => [393217]
            map.insert(2402, &[655361]);     // 2402 => [655361]
            map.insert(3340, &[1179649]);     // 3340 => [1179649]
            map.insert(6840, &[2228225]);     // 6840 => [2228225]
            map.insert(1741, &[4325377]);     // 1741 => [4325377]
            map.insert(566, &[786433]);     // 566 => [786433]
            map.insert(1624, &[1310721]);     // 1624 => [1310721]
            map.insert(4588, &[2359297]);     // 4588 => [2359297]
            map.insert(3481, &[4456449]);     // 3481 => [4456449]
            map.insert(1135, &[1572865]);     // 1135 => [1572865]
            map.insert(5083, &[2621441]);     // 5083 => [2621441]
            map.insert(4014, &[4718593]);     // 4014 => [4718593]
            map.insert(6069, &[3145729]);     // 6069 => [3145729]
            map.insert(3008, &[5242881]);     // 3008 => [5242881]
            map.insert(7284, &[6291457]);     // 7284 => [6291457]
            map.insert(14, &[14]);     // 14 => [14]
            map.insert(22, &[22]);     // 22 => [22]
            map.insert(38, &[38]);     // 38 => [38]
            map.insert(70, &[70]);     // 70 => [70]
            map.insert(134, &[134]);     // 134 => [134]
            map.insert(262, &[262]);     // 262 => [262]
            map.insert(518, &[518]);     // 518 => [518]
            map.insert(1030, &[1030]);     // 1030 => [1030]
            map.insert(2054, &[2054]);     // 2054 => [2054]
            map.insert(1177, &[4102]);     // 1177 => [4102]
            map.insert(2360, &[8198]);     // 2360 => [8198]
            map.insert(1765, &[16390]);     // 1765 => [16390]
            map.insert(3520, &[32774]);     // 3520 => [32774]
            map.insert(3861, &[65542]);     // 3861 => [65542]
            map.insert(2751, &[131078]);     // 2751 => [131078]
            map.insert(491, &[262150]);     // 491 => [262150]
            map.insert(988, &[524294]);     // 988 => [524294]
            map.insert(1970, &[1048582]);     // 1970 => [1048582]
            map.insert(4102, &[2097158]);     // 4102 => [2097158]
            map.insert(3187, &[4194310]);     // 3187 => [4194310]
            map.insert(26, &[26]);     // 26 => [26]
            map.insert(42, &[42]);     // 42 => [42]
            map.insert(74, &[74]);     // 74 => [74]
            map.insert(138, &[138]);     // 138 => [138]
            map.insert(266, &[266]);     // 266 => [266]
            map.insert(522, &[522]);     // 522 => [522]
            map.insert(1034, &[1034]);     // 1034 => [1034]
            map.insert(2058, &[2058]);     // 2058 => [2058]
            map.insert(1173, &[4106]);     // 1173 => [4106]
            map.insert(2356, &[8202]);     // 2356 => [8202]
            map.insert(1769, &[16394]);     // 1769 => [16394]
            map.insert(3532, &[32778]);     // 3532 => [32778]
            map.insert(3865, &[65546]);     // 3865 => [65546]
            map.insert(2739, &[131082]);     // 2739 => [131082]
            map.insert(487, &[262154]);     // 487 => [262154]
            map.insert(976, &[524298]);     // 976 => [524298]
            map.insert(1982, &[1048586]);     // 1982 => [1048586]
            map.insert(4106, &[2097162]);     // 4106 => [2097162]
            map.insert(3199, &[4194314]);     // 3199 => [4194314]
            map.insert(50, &[50]);     // 50 => [50]
            map.insert(82, &[82]);     // 82 => [82]
            map.insert(146, &[146]);     // 146 => [146]
            map.insert(274, &[274]);     // 274 => [274]
            map.insert(530, &[530]);     // 530 => [530]
            map.insert(1042, &[1042]);     // 1042 => [1042]
            map.insert(2066, &[2066]);     // 2066 => [2066]
            map.insert(1165, &[4114]);     // 1165 => [4114]
            map.insert(2348, &[8210]);     // 2348 => [8210]
            map.insert(1777, &[16402]);     // 1777 => [16402]
            map.insert(3540, &[32786]);     // 3540 => [32786]
            map.insert(3841, &[65554]);     // 3841 => [65554]
            map.insert(2731, &[131090]);     // 2731 => [131090]
            map.insert(511, &[262162]);     // 511 => [262162]
            map.insert(968, &[524306]);     // 968 => [524306]
            map.insert(1958, &[1048594]);     // 1958 => [1048594]
            map.insert(4114, &[2097170]);     // 4114 => [2097170]
            map.insert(3175, &[4194322]);     // 3175 => [4194322]
            map.insert(98, &[98]);     // 98 => [98]
            map.insert(162, &[162]);     // 162 => [162]
            map.insert(290, &[290]);     // 290 => [290]
            map.insert(546, &[546]);     // 546 => [546]
            map.insert(1058, &[1058]);     // 1058 => [1058]
            map.insert(2082, &[2082]);     // 2082 => [2082]
            map.insert(1213, &[4130]);     // 1213 => [4130]
            map.insert(2332, &[8226]);     // 2332 => [8226]
            map.insert(1729, &[16418]);     // 1729 => [16418]
            map.insert(3556, &[32802]);     // 3556 => [32802]
            map.insert(3889, &[65570]);     // 3889 => [65570]
            map.insert(2715, &[131106]);     // 2715 => [131106]
            map.insert(463, &[262178]);     // 463 => [262178]
            map.insert(1016, &[524322]);     // 1016 => [524322]
            map.insert(1942, &[1048610]);     // 1942 => [1048610]
            map.insert(4130, &[2097186]);     // 4130 => [2097186]
            map.insert(3159, &[4194338]);     // 3159 => [4194338]
            map.insert(194, &[194]);     // 194 => [194]
            map.insert(322, &[322]);     // 322 => [322]
            map.insert(578, &[578]);     // 578 => [578]
            map.insert(1090, &[1090]);     // 1090 => [1090]
            map.insert(2114, &[2114]);     // 2114 => [2114]
            map.insert(1245, &[4162]);     // 1245 => [4162]
            map.insert(2428, &[8258]);     // 2428 => [8258]
            map.insert(1697, &[16450]);     // 1697 => [16450]
            map.insert(3460, &[32834]);     // 3460 => [32834]
            map.insert(3921, &[65602]);     // 3921 => [65602]
            map.insert(2811, &[131138]);     // 2811 => [131138]
            map.insert(431, &[262210]);     // 431 => [262210]
            map.insert(920, &[524354]);     // 920 => [524354]
            map.insert(2038, &[1048642]);     // 2038 => [1048642]
            map.insert(4162, &[2097218]);     // 4162 => [2097218]
            map.insert(3127, &[4194370]);     // 3127 => [4194370]
            map.insert(386, &[386]);     // 386 => [386]
            map.insert(642, &[642]);     // 642 => [642]
            map.insert(1154, &[1154]);     // 1154 => [1154]
            map.insert(2178, &[2178]);     // 2178 => [2178]
            map.insert(1053, &[4226]);     // 1053 => [4226]
            map.insert(2492, &[8322]);     // 2492 => [8322]
            map.insert(1633, &[16514]);     // 1633 => [16514]
            map.insert(3396, &[32898]);     // 3396 => [32898]
            map.insert(3985, &[65666]);     // 3985 => [65666]
            map.insert(2619, &[131202]);     // 2619 => [131202]
            map.insert(367, &[262274]);     // 367 => [262274]
            map.insert(856, &[524418]);     // 856 => [524418]
            map.insert(1846, &[1048706]);     // 1846 => [1048706]
            map.insert(4226, &[2097282]);     // 4226 => [2097282]
            map.insert(3319, &[4194434]);     // 3319 => [4194434]
            map.insert(770, &[770]);     // 770 => [770]
            map.insert(1282, &[1282]);     // 1282 => [1282]
            map.insert(2306, &[2306]);     // 2306 => [2306]
            map.insert(1437, &[4354]);     // 1437 => [4354]
            map.insert(2108, &[8450]);     // 2108 => [8450]
            map.insert(2017, &[16642]);     // 2017 => [16642]
            map.insert(3268, &[33026]);     // 3268 => [33026]
            map.insert(3601, &[65794]);     // 3601 => [65794]
            map.insert(3003, &[131330]);     // 3003 => [131330]
            map.insert(239, &[262402]);     // 239 => [262402]
            map.insert(728, &[524546]);     // 728 => [524546]
            map.insert(1718, &[1048834]);     // 1718 => [1048834]
            map.insert(4354, &[2097410]);     // 4354 => [2097410]
            map.insert(3447, &[4194562]);     // 3447 => [4194562]
            map.insert(1538, &[1538]);     // 1538 => [1538]
            map.insert(2562, &[2562]);     // 2562 => [2562]
            map.insert(1693, &[4610]);     // 1693 => [4610]
            map.insert(2876, &[8706]);     // 2876 => [8706]
            map.insert(1249, &[16898]);     // 1249 => [16898]
            map.insert(4036, &[33282]);     // 4036 => [33282]
            map.insert(3345, &[66050]);     // 3345 => [66050]
            map.insert(2235, &[131586]);     // 2235 => [131586]
            map.insert(1007, &[262658]);     // 1007 => [262658]
            map.insert(472, &[524802]);     // 472 => [524802]
            map.insert(1462, &[1049090]);     // 1462 => [1049090]
            map.insert(4610, &[2097666]);     // 4610 => [2097666]
            map.insert(3703, &[4194818]);     // 3703 => [4194818]
            map.insert(3074, &[3074]);     // 3074 => [3074]
            map.insert(157, &[5122]);     // 157 => [5122]
            map.insert(3388, &[9218]);     // 3388 => [9218]
            map.insert(737, &[17410]);     // 737 => [17410]
            map.insert(2500, &[33794]);     // 2500 => [33794]
            map.insert(2833, &[66562]);     // 2833 => [66562]
            map.insert(3771, &[132098]);     // 3771 => [132098]
            map.insert(1519, &[263170]);     // 1519 => [263170]
            map.insert(2008, &[525314]);     // 2008 => [525314]
            map.insert(950, &[1049602]);     // 950 => [1049602]
            map.insert(5122, &[2098178]);     // 5122 => [2098178]
            map.insert(2167, &[4195330]);     // 2167 => [4195330]
            map.insert(3229, &[6146]);     // 3229 => [6146]
            map.insert(316, &[10242]);     // 316 => [10242]
            map.insert(3809, &[18434]);     // 3809 => [18434]
            map.insert(1476, &[34818]);     // 1476 => [34818]
            map.insert(1809, &[67586]);     // 1809 => [67586]
            map.insert(699, &[133122]);     // 699 => [133122]
            map.insert(2543, &[264194]);     // 2543 => [264194]
            map.insert(3032, &[526338]);     // 3032 => [526338]
            map.insert(4022, &[1050626]);     // 4022 => [1050626]
            map.insert(6146, &[2099202]);     // 6146 => [2099202]
            map.insert(1143, &[4196354]);     // 1143 => [4196354]
            map.insert(3491, &[12290]);     // 3491 => [12290]
            map.insert(638, &[20482]);     // 638 => [20482]
            map.insert(2395, &[36866]);     // 2395 => [36866]
            map.insert(2958, &[69634]);     // 2958 => [69634]
            map.insert(3620, &[135170]);     // 3620 => [135170]
            map.insert(1392, &[266242]);     // 1392 => [266242]
            map.insert(1863, &[528386]);     // 1863 => [528386]
            map.insert(809, &[1052674]);     // 809 => [1052674]
            map.insert(5277, &[2101250]);     // 5277 => [2101250]
            map.insert(2280, &[4198402]);     // 2280 => [4198402]
            map.insert(4063, &[24578]);     // 4063 => [24578]
            map.insert(1274, &[40962]);     // 1274 => [40962]
            map.insert(1583, &[73730]);     // 1583 => [73730]
            map.insert(901, &[139266]);     // 901 => [139266]
            map.insert(2257, &[270338]);     // 2257 => [270338]
            map.insert(2790, &[532482]);     // 2790 => [532482]
            map.insert(3720, &[1056770]);     // 3720 => [1056770]
            map.insert(6460, &[2105346]);     // 6460 => [2105346]
            map.insert(1353, &[4202498]);     // 1353 => [4202498]
            map.insert(2855, &[49154]);     // 2855 => [49154]
            map.insert(2546, &[81922]);     // 2546 => [81922]
            map.insert(3160, &[147458]);     // 3160 => [147458]
            map.insert(1804, &[278530]);     // 1804 => [278530]
            map.insert(1339, &[540674]);     // 1339 => [540674]
            map.insert(341, &[1064962]);     // 341 => [1064962]
            map.insert(5857, &[2113538]);     // 5857 => [2113538]
            map.insert(2708, &[4210690]);     // 2708 => [4210690]
            map.insert(727, &[98306]);     // 727 => [98306]
            map.insert(1917, &[163842]);     // 1917 => [163842]
            map.insert(3113, &[294914]);     // 3113 => [294914]
            map.insert(3614, &[557058]);     // 3614 => [557058]
            map.insert(2672, &[1081346]);     // 2672 => [1081346]
            map.insert(7620, &[2129922]);     // 7620 => [2129922]
            map.insert(433, &[4227074]);     // 433 => [4227074]
            map.insert(1448, &[196610]);     // 1448 => [196610]
            map.insert(3836, &[327682]);     // 3836 => [327682]
            map.insert(3275, &[589826]);     // 3275 => [589826]
            map.insert(2213, &[1114114]);     // 2213 => [1114114]
            map.insert(7953, &[2162690]);     // 7953 => [2162690]
            map.insert(868, &[4259842]);     // 868 => [4259842]
            map.insert(2902, &[393218]);     // 2902 => [393218]
            map.insert(2401, &[655362]);     // 2401 => [655362]
            map.insert(3343, &[1179650]);     // 3343 => [1179650]
            map.insert(6843, &[2228226]);     // 6843 => [2228226]
            map.insert(1742, &[4325378]);     // 1742 => [4325378]
            map.insert(565, &[786434]);     // 565 => [786434]
            map.insert(1627, &[1310722]);     // 1627 => [1310722]
            map.insert(4591, &[2359298]);     // 4591 => [2359298]
            map.insert(3482, &[4456450]);     // 3482 => [4456450]
            map.insert(1132, &[1572866]);     // 1132 => [1572866]
            map.insert(5080, &[2621442]);     // 5080 => [2621442]
            map.insert(4013, &[4718594]);     // 4013 => [4718594]
            map.insert(6070, &[3145730]);     // 6070 => [3145730]
            map.insert(3011, &[5242882]);     // 3011 => [5242882]
            map.insert(7287, &[6291458]);     // 7287 => [6291458]
            map.insert(28, &[28]);     // 28 => [28]
            map.insert(44, &[44]);     // 44 => [44]
            map.insert(76, &[76]);     // 76 => [76]
            map.insert(140, &[140]);     // 140 => [140]
            map.insert(268, &[268]);     // 268 => [268]
            map.insert(524, &[524]);     // 524 => [524]
            map.insert(1036, &[1036]);     // 1036 => [1036]
            map.insert(2060, &[2060]);     // 2060 => [2060]
            map.insert(1171, &[4108]);     // 1171 => [4108]
            map.insert(2354, &[8204]);     // 2354 => [8204]
            map.insert(1775, &[16396]);     // 1775 => [16396]
            map.insert(3530, &[32780]);     // 3530 => [32780]
            map.insert(3871, &[65548]);     // 3871 => [65548]
            map.insert(2741, &[131084]);     // 2741 => [131084]
            map.insert(481, &[262156]);     // 481 => [262156]
            map.insert(982, &[524300]);     // 982 => [524300]
            map.insert(1976, &[1048588]);     // 1976 => [1048588]
            map.insert(4108, &[2097164]);     // 4108 => [2097164]
            map.insert(3193, &[4194316]);     // 3193 => [4194316]
            map.insert(52, &[52]);     // 52 => [52]
            map.insert(84, &[84]);     // 84 => [84]
            map.insert(148, &[148]);     // 148 => [148]
            map.insert(276, &[276]);     // 276 => [276]
            map.insert(532, &[532]);     // 532 => [532]
            map.insert(1044, &[1044]);     // 1044 => [1044]
            map.insert(2068, &[2068]);     // 2068 => [2068]
            map.insert(1163, &[4116]);     // 1163 => [4116]
            map.insert(2346, &[8212]);     // 2346 => [8212]
            map.insert(1783, &[16404]);     // 1783 => [16404]
            map.insert(3538, &[32788]);     // 3538 => [32788]
            map.insert(3847, &[65556]);     // 3847 => [65556]
            map.insert(2733, &[131092]);     // 2733 => [131092]
            map.insert(505, &[262164]);     // 505 => [262164]
            map.insert(974, &[524308]);     // 974 => [524308]
            map.insert(1952, &[1048596]);     // 1952 => [1048596]
            map.insert(4116, &[2097172]);     // 4116 => [2097172]
            map.insert(3169, &[4194324]);     // 3169 => [4194324]
            map.insert(100, &[100]);     // 100 => [100]
            map.insert(164, &[164]);     // 164 => [164]
            map.insert(292, &[292]);     // 292 => [292]
            map.insert(548, &[548]);     // 548 => [548]
            map.insert(1060, &[1060]);     // 1060 => [1060]
            map.insert(2084, &[2084]);     // 2084 => [2084]
            map.insert(1211, &[4132]);     // 1211 => [4132]
            map.insert(2330, &[8228]);     // 2330 => [8228]
            map.insert(1735, &[16420]);     // 1735 => [16420]
            map.insert(3554, &[32804]);     // 3554 => [32804]
            map.insert(3895, &[65572]);     // 3895 => [65572]
            map.insert(2717, &[131108]);     // 2717 => [131108]
            map.insert(457, &[262180]);     // 457 => [262180]
            map.insert(1022, &[524324]);     // 1022 => [524324]
            map.insert(1936, &[1048612]);     // 1936 => [1048612]
            map.insert(4132, &[2097188]);     // 4132 => [2097188]
            map.insert(3153, &[4194340]);     // 3153 => [4194340]
            map.insert(196, &[196]);     // 196 => [196]
            map.insert(324, &[324]);     // 324 => [324]
            map.insert(580, &[580]);     // 580 => [580]
            map.insert(1092, &[1092]);     // 1092 => [1092]
            map.insert(2116, &[2116]);     // 2116 => [2116]
            map.insert(1243, &[4164]);     // 1243 => [4164]
            map.insert(2426, &[8260]);     // 2426 => [8260]
            map.insert(1703, &[16452]);     // 1703 => [16452]
            map.insert(3458, &[32836]);     // 3458 => [32836]
            map.insert(3927, &[65604]);     // 3927 => [65604]
            map.insert(2813, &[131140]);     // 2813 => [131140]
            map.insert(425, &[262212]);     // 425 => [262212]
            map.insert(926, &[524356]);     // 926 => [524356]
            map.insert(2032, &[1048644]);     // 2032 => [1048644]
            map.insert(4164, &[2097220]);     // 4164 => [2097220]
            map.insert(3121, &[4194372]);     // 3121 => [4194372]
            map.insert(388, &[388]);     // 388 => [388]
            map.insert(644, &[644]);     // 644 => [644]
            map.insert(1156, &[1156]);     // 1156 => [1156]
            map.insert(2180, &[2180]);     // 2180 => [2180]
            map.insert(1051, &[4228]);     // 1051 => [4228]
            map.insert(2490, &[8324]);     // 2490 => [8324]
            map.insert(1639, &[16516]);     // 1639 => [16516]
            map.insert(3394, &[32900]);     // 3394 => [32900]
            map.insert(3991, &[65668]);     // 3991 => [65668]
            map.insert(2621, &[131204]);     // 2621 => [131204]
            map.insert(361, &[262276]);     // 361 => [262276]
            map.insert(862, &[524420]);     // 862 => [524420]
            map.insert(1840, &[1048708]);     // 1840 => [1048708]
            map.insert(4228, &[2097284]);     // 4228 => [2097284]
            map.insert(3313, &[4194436]);     // 3313 => [4194436]
            map.insert(772, &[772]);     // 772 => [772]
            map.insert(1284, &[1284]);     // 1284 => [1284]
            map.insert(2308, &[2308]);     // 2308 => [2308]
            map.insert(1435, &[4356]);     // 1435 => [4356]
            map.insert(2106, &[8452]);     // 2106 => [8452]
            map.insert(2023, &[16644]);     // 2023 => [16644]
            map.insert(3266, &[33028]);     // 3266 => [33028]
            map.insert(3607, &[65796]);     // 3607 => [65796]
            map.insert(3005, &[131332]);     // 3005 => [131332]
            map.insert(233, &[262404]);     // 233 => [262404]
            map.insert(734, &[524548]);     // 734 => [524548]
            map.insert(1712, &[1048836]);     // 1712 => [1048836]
            map.insert(4356, &[2097412]);     // 4356 => [2097412]
            map.insert(3441, &[4194564]);     // 3441 => [4194564]
            map.insert(1540, &[1540]);     // 1540 => [1540]
            map.insert(2564, &[2564]);     // 2564 => [2564]
            map.insert(1691, &[4612]);     // 1691 => [4612]
            map.insert(2874, &[8708]);     // 2874 => [8708]
            map.insert(1255, &[16900]);     // 1255 => [16900]
            map.insert(4034, &[33284]);     // 4034 => [33284]
            map.insert(3351, &[66052]);     // 3351 => [66052]
            map.insert(2237, &[131588]);     // 2237 => [131588]
            map.insert(1001, &[262660]);     // 1001 => [262660]
            map.insert(478, &[524804]);     // 478 => [524804]
            map.insert(1456, &[1049092]);     // 1456 => [1049092]
            map.insert(4612, &[2097668]);     // 4612 => [2097668]
            map.insert(3697, &[4194820]);     // 3697 => [4194820]
            map.insert(3076, &[3076]);     // 3076 => [3076]
            map.insert(155, &[5124]);     // 155 => [5124]
            map.insert(3386, &[9220]);     // 3386 => [9220]
            map.insert(743, &[17412]);     // 743 => [17412]
            map.insert(2498, &[33796]);     // 2498 => [33796]
            map.insert(2839, &[66564]);     // 2839 => [66564]
            map.insert(3773, &[132100]);     // 3773 => [132100]
            map.insert(1513, &[263172]);     // 1513 => [263172]
            map.insert(2014, &[525316]);     // 2014 => [525316]
            map.insert(944, &[1049604]);     // 944 => [1049604]
            map.insert(5124, &[2098180]);     // 5124 => [2098180]
            map.insert(2161, &[4195332]);     // 2161 => [4195332]
            map.insert(3227, &[6148]);     // 3227 => [6148]
            map.insert(314, &[10244]);     // 314 => [10244]
            map.insert(3815, &[18436]);     // 3815 => [18436]
            map.insert(1474, &[34820]);     // 1474 => [34820]
            map.insert(1815, &[67588]);     // 1815 => [67588]
            map.insert(701, &[133124]);     // 701 => [133124]
            map.insert(2537, &[264196]);     // 2537 => [264196]
            map.insert(3038, &[526340]);     // 3038 => [526340]
            map.insert(4016, &[1050628]);     // 4016 => [1050628]
            map.insert(6148, &[2099204]);     // 6148 => [2099204]
            map.insert(1137, &[4196356]);     // 1137 => [4196356]
            map.insert(3493, &[12292]);     // 3493 => [12292]
            map.insert(632, &[20484]);     // 632 => [20484]
            map.insert(2397, &[36868]);     // 2397 => [36868]
            map.insert(2952, &[69636]);     // 2952 => [69636]
            map.insert(3618, &[135172]);     // 3618 => [135172]
            map.insert(1398, &[266244]);     // 1398 => [266244]
            map.insert(1857, &[528388]);     // 1857 => [528388]
            map.insert(815, &[1052676]);     // 815 => [1052676]
            map.insert(5275, &[2101252]);     // 5275 => [2101252]
            map.insert(2286, &[4198404]);     // 2286 => [4198404]
            map.insert(4057, &[24580]);     // 4057 => [24580]
            map.insert(1276, &[40964]);     // 1276 => [40964]
            map.insert(1577, &[73732]);     // 1577 => [73732]
            map.insert(899, &[139268]);     // 899 => [139268]
            map.insert(2263, &[270340]);     // 2263 => [270340]
            map.insert(2784, &[532484]);     // 2784 => [532484]
            map.insert(3726, &[1056772]);     // 3726 => [1056772]
            map.insert(6458, &[2105348]);     // 6458 => [2105348]
            map.insert(1359, &[4202500]);     // 1359 => [4202500]
            map.insert(2849, &[49156]);     // 2849 => [49156]
            map.insert(2548, &[81924]);     // 2548 => [81924]
            map.insert(3166, &[147460]);     // 3166 => [147460]
            map.insert(1802, &[278532]);     // 1802 => [278532]
            map.insert(1341, &[540676]);     // 1341 => [540676]
            map.insert(339, &[1064964]);     // 339 => [1064964]
            map.insert(5863, &[2113540]);     // 5863 => [2113540]
            map.insert(2706, &[4210692]);     // 2706 => [4210692]
            map.insert(721, &[98308]);     // 721 => [98308]
            map.insert(1915, &[163844]);     // 1915 => [163844]
            map.insert(3119, &[294916]);     // 3119 => [294916]
            map.insert(3608, &[557060]);     // 3608 => [557060]
            map.insert(2678, &[1081348]);     // 2678 => [1081348]
            map.insert(7618, &[2129924]);     // 7618 => [2129924]
            map.insert(439, &[4227076]);     // 439 => [4227076]
            map.insert(1454, &[196612]);     // 1454 => [196612]
            map.insert(3834, &[327684]);     // 3834 => [327684]
            map.insert(3277, &[589828]);     // 3277 => [589828]
            map.insert(2211, &[1114116]);     // 2211 => [1114116]
            map.insert(7959, &[2162692]);     // 7959 => [2162692]
            map.insert(866, &[4259844]);     // 866 => [4259844]
            map.insert(2896, &[393220]);     // 2896 => [393220]
            map.insert(2407, &[655364]);     // 2407 => [655364]
            map.insert(3337, &[1179652]);     // 3337 => [1179652]
            map.insert(6845, &[2228228]);     // 6845 => [2228228]
            map.insert(1736, &[4325380]);     // 1736 => [4325380]
            map.insert(563, &[786436]);     // 563 => [786436]
            map.insert(1629, &[1310724]);     // 1629 => [1310724]
            map.insert(4585, &[2359300]);     // 4585 => [2359300]
            map.insert(3484, &[4456452]);     // 3484 => [4456452]
            map.insert(1130, &[1572868]);     // 1130 => [1572868]
            map.insert(5086, &[2621444]);     // 5086 => [2621444]
            map.insert(4011, &[4718596]);     // 4011 => [4718596]
            map.insert(6064, &[3145732]);     // 6064 => [3145732]
            map.insert(3013, &[5242884]);     // 3013 => [5242884]
            map.insert(7281, &[6291460]);     // 7281 => [6291460]
            map.insert(56, &[56]);     // 56 => [56]
            map.insert(88, &[88]);     // 88 => [88]
            map.insert(152, &[152]);     // 152 => [152]
            map.insert(280, &[280]);     // 280 => [280]
            map.insert(536, &[536]);     // 536 => [536]
            map.insert(1048, &[1048]);     // 1048 => [1048]
            map.insert(2072, &[2072]);     // 2072 => [2072]
            map.insert(1159, &[4120]);     // 1159 => [4120]
            map.insert(2342, &[8216]);     // 2342 => [8216]
            map.insert(1787, &[16408]);     // 1787 => [16408]
            map.insert(3550, &[32792]);     // 3550 => [32792]
            map.insert(3851, &[65560]);     // 3851 => [65560]
            map.insert(2721, &[131096]);     // 2721 => [131096]
            map.insert(501, &[262168]);     // 501 => [262168]
            map.insert(962, &[524312]);     // 962 => [524312]
            map.insert(1964, &[1048600]);     // 1964 => [1048600]
            map.insert(4120, &[2097176]);     // 4120 => [2097176]
            map.insert(3181, &[4194328]);     // 3181 => [4194328]
            map.insert(104, &[104]);     // 104 => [104]
            map.insert(168, &[168]);     // 168 => [168]
            map.insert(296, &[296]);     // 296 => [296]
            map.insert(552, &[552]);     // 552 => [552]
            map.insert(1064, &[1064]);     // 1064 => [1064]
            map.insert(2088, &[2088]);     // 2088 => [2088]
            map.insert(1207, &[4136]);     // 1207 => [4136]
            map.insert(2326, &[8232]);     // 2326 => [8232]
            map.insert(1739, &[16424]);     // 1739 => [16424]
            map.insert(3566, &[32808]);     // 3566 => [32808]
            map.insert(3899, &[65576]);     // 3899 => [65576]
            map.insert(2705, &[131112]);     // 2705 => [131112]
            map.insert(453, &[262184]);     // 453 => [262184]
            map.insert(1010, &[524328]);     // 1010 => [524328]
            map.insert(1948, &[1048616]);     // 1948 => [1048616]
            map.insert(4136, &[2097192]);     // 4136 => [2097192]
            map.insert(3165, &[4194344]);     // 3165 => [4194344]
            map.insert(200, &[200]);     // 200 => [200]
            map.insert(328, &[328]);     // 328 => [328]
            map.insert(584, &[584]);     // 584 => [584]
            map.insert(1096, &[1096]);     // 1096 => [1096]
            map.insert(2120, &[2120]);     // 2120 => [2120]
            map.insert(1239, &[4168]);     // 1239 => [4168]
            map.insert(2422, &[8264]);     // 2422 => [8264]
            map.insert(1707, &[16456]);     // 1707 => [16456]
            map.insert(3470, &[32840]);     // 3470 => [32840]
            map.insert(3931, &[65608]);     // 3931 => [65608]
            map.insert(2801, &[131144]);     // 2801 => [131144]
            map.insert(421, &[262216]);     // 421 => [262216]
            map.insert(914, &[524360]);     // 914 => [524360]
            map.insert(2044, &[1048648]);     // 2044 => [1048648]
            map.insert(4168, &[2097224]);     // 4168 => [2097224]
            map.insert(3133, &[4194376]);     // 3133 => [4194376]
            map.insert(392, &[392]);     // 392 => [392]
            map.insert(648, &[648]);     // 648 => [648]
            map.insert(1160, &[1160]);     // 1160 => [1160]
            map.insert(2184, &[2184]);     // 2184 => [2184]
            map.insert(1047, &[4232]);     // 1047 => [4232]
            map.insert(2486, &[8328]);     // 2486 => [8328]
            map.insert(1643, &[16520]);     // 1643 => [16520]
            map.insert(3406, &[32904]);     // 3406 => [32904]
            map.insert(3995, &[65672]);     // 3995 => [65672]
            map.insert(2609, &[131208]);     // 2609 => [131208]
            map.insert(357, &[262280]);     // 357 => [262280]
            map.insert(850, &[524424]);     // 850 => [524424]
            map.insert(1852, &[1048712]);     // 1852 => [1048712]
            map.insert(4232, &[2097288]);     // 4232 => [2097288]
            map.insert(3325, &[4194440]);     // 3325 => [4194440]
            map.insert(776, &[776]);     // 776 => [776]
            map.insert(1288, &[1288]);     // 1288 => [1288]
            map.insert(2312, &[2312]);     // 2312 => [2312]
            map.insert(1431, &[4360]);     // 1431 => [4360]
            map.insert(2102, &[8456]);     // 2102 => [8456]
            map.insert(2027, &[16648]);     // 2027 => [16648]
            map.insert(3278, &[33032]);     // 3278 => [33032]
            map.insert(3611, &[65800]);     // 3611 => [65800]
            map.insert(2993, &[131336]);     // 2993 => [131336]
            map.insert(229, &[262408]);     // 229 => [262408]
            map.insert(722, &[524552]);     // 722 => [524552]
            map.insert(1724, &[1048840]);     // 1724 => [1048840]
            map.insert(4360, &[2097416]);     // 4360 => [2097416]
            map.insert(3453, &[4194568]);     // 3453 => [4194568]
            map.insert(1544, &[1544]);     // 1544 => [1544]
            map.insert(2568, &[2568]);     // 2568 => [2568]
            map.insert(1687, &[4616]);     // 1687 => [4616]
            map.insert(2870, &[8712]);     // 2870 => [8712]
            map.insert(1259, &[16904]);     // 1259 => [16904]
            map.insert(4046, &[33288]);     // 4046 => [33288]
            map.insert(3355, &[66056]);     // 3355 => [66056]
            map.insert(2225, &[131592]);     // 2225 => [131592]
            map.insert(997, &[262664]);     // 997 => [262664]
            map.insert(466, &[524808]);     // 466 => [524808]
            map.insert(1468, &[1049096]);     // 1468 => [1049096]
            map.insert(4616, &[2097672]);     // 4616 => [2097672]
            map.insert(3709, &[4194824]);     // 3709 => [4194824]
            map.insert(3080, &[3080]);     // 3080 => [3080]
            map.insert(151, &[5128]);     // 151 => [5128]
            map.insert(3382, &[9224]);     // 3382 => [9224]
            map.insert(747, &[17416]);     // 747 => [17416]
            map.insert(2510, &[33800]);     // 2510 => [33800]
            map.insert(2843, &[66568]);     // 2843 => [66568]
            map.insert(3761, &[132104]);     // 3761 => [132104]
            map.insert(1509, &[263176]);     // 1509 => [263176]
            map.insert(2002, &[525320]);     // 2002 => [525320]
            map.insert(956, &[1049608]);     // 956 => [1049608]
            map.insert(5128, &[2098184]);     // 5128 => [2098184]
            map.insert(2173, &[4195336]);     // 2173 => [4195336]
            map.insert(3223, &[6152]);     // 3223 => [6152]
            map.insert(310, &[10248]);     // 310 => [10248]
            map.insert(3819, &[18440]);     // 3819 => [18440]
            map.insert(1486, &[34824]);     // 1486 => [34824]
            map.insert(1819, &[67592]);     // 1819 => [67592]
            map.insert(689, &[133128]);     // 689 => [133128]
            map.insert(2533, &[264200]);     // 2533 => [264200]
            map.insert(3026, &[526344]);     // 3026 => [526344]
            map.insert(4028, &[1050632]);     // 4028 => [1050632]
            map.insert(6152, &[2099208]);     // 6152 => [2099208]
            map.insert(1149, &[4196360]);     // 1149 => [4196360]
            map.insert(3497, &[12296]);     // 3497 => [12296]
            map.insert(628, &[20488]);     // 628 => [20488]
            map.insert(2385, &[36872]);     // 2385 => [36872]
            map.insert(2948, &[69640]);     // 2948 => [69640]
            map.insert(3630, &[135176]);     // 3630 => [135176]
            map.insert(1402, &[266248]);     // 1402 => [266248]
            map.insert(1869, &[528392]);     // 1869 => [528392]
            map.insert(803, &[1052680]);     // 803 => [1052680]
            map.insert(5271, &[2101256]);     // 5271 => [2101256]
            map.insert(2274, &[4198408]);     // 2274 => [4198408]
            map.insert(4053, &[24584]);     // 4053 => [24584]
            map.insert(1264, &[40968]);     // 1264 => [40968]
            map.insert(1573, &[73736]);     // 1573 => [73736]
            map.insert(911, &[139272]);     // 911 => [139272]
            map.insert(2267, &[270344]);     // 2267 => [270344]
            map.insert(2796, &[532488]);     // 2796 => [532488]
            map.insert(3714, &[1056776]);     // 3714 => [1056776]
            map.insert(6454, &[2105352]);     // 6454 => [2105352]
            map.insert(1347, &[4202504]);     // 1347 => [4202504]
            map.insert(2861, &[49160]);     // 2861 => [49160]
            map.insert(2552, &[81928]);     // 2552 => [81928]
            map.insert(3154, &[147464]);     // 3154 => [147464]
            map.insert(1798, &[278536]);     // 1798 => [278536]
            map.insert(1329, &[540680]);     // 1329 => [540680]
            map.insert(351, &[1064968]);     // 351 => [1064968]
            map.insert(5867, &[2113544]);     // 5867 => [2113544]
            map.insert(2718, &[4210696]);     // 2718 => [4210696]
            map.insert(733, &[98312]);     // 733 => [98312]
            map.insert(1911, &[163848]);     // 1911 => [163848]
            map.insert(3107, &[294920]);     // 3107 => [294920]
            map.insert(3604, &[557064]);     // 3604 => [557064]
            map.insert(2682, &[1081352]);     // 2682 => [1081352]
            map.insert(7630, &[2129928]);     // 7630 => [2129928]
            map.insert(443, &[4227080]);     // 443 => [4227080]
            map.insert(1442, &[196616]);     // 1442 => [196616]
            map.insert(3830, &[327688]);     // 3830 => [327688]
            map.insert(3265, &[589832]);     // 3265 => [589832]
            map.insert(2223, &[1114120]);     // 2223 => [1114120]
            map.insert(7963, &[2162696]);     // 7963 => [2162696]
            map.insert(878, &[4259848]);     // 878 => [4259848]
            map.insert(2908, &[393224]);     // 2908 => [393224]
            map.insert(2411, &[655368]);     // 2411 => [655368]
            map.insert(3333, &[1179656]);     // 3333 => [1179656]
            map.insert(6833, &[2228232]);     // 6833 => [2228232]
            map.insert(1732, &[4325384]);     // 1732 => [4325384]
            map.insert(575, &[786440]);     // 575 => [786440]
            map.insert(1617, &[1310728]);     // 1617 => [1310728]
            map.insert(4581, &[2359304]);     // 4581 => [2359304]
            map.insert(3472, &[4456456]);     // 3472 => [4456456]
            map.insert(1126, &[1572872]);     // 1126 => [1572872]
            map.insert(5074, &[2621448]);     // 5074 => [2621448]
            map.insert(4007, &[4718600]);     // 4007 => [4718600]
            map.insert(6076, &[3145736]);     // 6076 => [3145736]
            map.insert(3017, &[5242888]);     // 3017 => [5242888]
            map.insert(7293, &[6291464]);     // 7293 => [6291464]
            map.insert(112, &[112]);     // 112 => [112]
            map.insert(176, &[176]);     // 176 => [176]
            map.insert(304, &[304]);     // 304 => [304]
            map.insert(560, &[560]);     // 560 => [560]
            map.insert(1072, &[1072]);     // 1072 => [1072]
            map.insert(2096, &[2096]);     // 2096 => [2096]
            map.insert(1199, &[4144]);     // 1199 => [4144]
            map.insert(2318, &[8240]);     // 2318 => [8240]
            map.insert(1747, &[16432]);     // 1747 => [16432]
            map.insert(3574, &[32816]);     // 3574 => [32816]
            map.insert(3875, &[65584]);     // 3875 => [65584]
            map.insert(2697, &[131120]);     // 2697 => [131120]
            map.insert(477, &[262192]);     // 477 => [262192]
            map.insert(1002, &[524336]);     // 1002 => [524336]
            map.insert(1924, &[1048624]);     // 1924 => [1048624]
            map.insert(4144, &[2097200]);     // 4144 => [2097200]
            map.insert(3141, &[4194352]);     // 3141 => [4194352]
            map.insert(208, &[208]);     // 208 => [208]
            map.insert(336, &[336]);     // 336 => [336]
            map.insert(592, &[592]);     // 592 => [592]
            map.insert(1104, &[1104]);     // 1104 => [1104]
            map.insert(2128, &[2128]);     // 2128 => [2128]
            map.insert(1231, &[4176]);     // 1231 => [4176]
            map.insert(2414, &[8272]);     // 2414 => [8272]
            map.insert(1715, &[16464]);     // 1715 => [16464]
            map.insert(3478, &[32848]);     // 3478 => [32848]
            map.insert(3907, &[65616]);     // 3907 => [65616]
            map.insert(2793, &[131152]);     // 2793 => [131152]
            map.insert(445, &[262224]);     // 445 => [262224]
            map.insert(906, &[524368]);     // 906 => [524368]
            map.insert(2020, &[1048656]);     // 2020 => [1048656]
            map.insert(4176, &[2097232]);     // 4176 => [2097232]
            map.insert(3109, &[4194384]);     // 3109 => [4194384]
            map.insert(400, &[400]);     // 400 => [400]
            map.insert(656, &[656]);     // 656 => [656]
            map.insert(1168, &[1168]);     // 1168 => [1168]
            map.insert(2192, &[2192]);     // 2192 => [2192]
            map.insert(1039, &[4240]);     // 1039 => [4240]
            map.insert(2478, &[8336]);     // 2478 => [8336]
            map.insert(1651, &[16528]);     // 1651 => [16528]
            map.insert(3414, &[32912]);     // 3414 => [32912]
            map.insert(3971, &[65680]);     // 3971 => [65680]
            map.insert(2601, &[131216]);     // 2601 => [131216]
            map.insert(381, &[262288]);     // 381 => [262288]
            map.insert(842, &[524432]);     // 842 => [524432]
            map.insert(1828, &[1048720]);     // 1828 => [1048720]
            map.insert(4240, &[2097296]);     // 4240 => [2097296]
            map.insert(3301, &[4194448]);     // 3301 => [4194448]
            map.insert(784, &[784]);     // 784 => [784]
            map.insert(1296, &[1296]);     // 1296 => [1296]
            map.insert(2320, &[2320]);     // 2320 => [2320]
            map.insert(1423, &[4368]);     // 1423 => [4368]
            map.insert(2094, &[8464]);     // 2094 => [8464]
            map.insert(2035, &[16656]);     // 2035 => [16656]
            map.insert(3286, &[33040]);     // 3286 => [33040]
            map.insert(3587, &[65808]);     // 3587 => [65808]
            map.insert(2985, &[131344]);     // 2985 => [131344]
            map.insert(253, &[262416]);     // 253 => [262416]
            map.insert(714, &[524560]);     // 714 => [524560]
            map.insert(1700, &[1048848]);     // 1700 => [1048848]
            map.insert(4368, &[2097424]);     // 4368 => [2097424]
            map.insert(3429, &[4194576]);     // 3429 => [4194576]
            map.insert(1552, &[1552]);     // 1552 => [1552]
            map.insert(2576, &[2576]);     // 2576 => [2576]
            map.insert(1679, &[4624]);     // 1679 => [4624]
            map.insert(2862, &[8720]);     // 2862 => [8720]
            map.insert(1267, &[16912]);     // 1267 => [16912]
            map.insert(4054, &[33296]);     // 4054 => [33296]
            map.insert(3331, &[66064]);     // 3331 => [66064]
            map.insert(2217, &[131600]);     // 2217 => [131600]
            map.insert(1021, &[262672]);     // 1021 => [262672]
            map.insert(458, &[524816]);     // 458 => [524816]
            map.insert(1444, &[1049104]);     // 1444 => [1049104]
            map.insert(4624, &[2097680]);     // 4624 => [2097680]
            map.insert(3685, &[4194832]);     // 3685 => [4194832]
            map.insert(3088, &[3088]);     // 3088 => [3088]
            map.insert(143, &[5136]);     // 143 => [5136]
            map.insert(3374, &[9232]);     // 3374 => [9232]
            map.insert(755, &[17424]);     // 755 => [17424]
            map.insert(2518, &[33808]);     // 2518 => [33808]
            map.insert(2819, &[66576]);     // 2819 => [66576]
            map.insert(3753, &[132112]);     // 3753 => [132112]
            map.insert(1533, &[263184]);     // 1533 => [263184]
            map.insert(1994, &[525328]);     // 1994 => [525328]
            map.insert(932, &[1049616]);     // 932 => [1049616]
            map.insert(5136, &[2098192]);     // 5136 => [2098192]
            map.insert(2149, &[4195344]);     // 2149 => [4195344]
            map.insert(3215, &[6160]);     // 3215 => [6160]
            map.insert(302, &[10256]);     // 302 => [10256]
            map.insert(3827, &[18448]);     // 3827 => [18448]
            map.insert(1494, &[34832]);     // 1494 => [34832]
            map.insert(1795, &[67600]);     // 1795 => [67600]
            map.insert(681, &[133136]);     // 681 => [133136]
            map.insert(2557, &[264208]);     // 2557 => [264208]
            map.insert(3018, &[526352]);     // 3018 => [526352]
            map.insert(4004, &[1050640]);     // 4004 => [1050640]
            map.insert(6160, &[2099216]);     // 6160 => [2099216]
            map.insert(1125, &[4196368]);     // 1125 => [4196368]
            map.insert(3505, &[12304]);     // 3505 => [12304]
            map.insert(620, &[20496]);     // 620 => [20496]
            map.insert(2377, &[36880]);     // 2377 => [36880]
            map.insert(2972, &[69648]);     // 2972 => [69648]
            map.insert(3638, &[135184]);     // 3638 => [135184]
            map.insert(1378, &[266256]);     // 1378 => [266256]
            map.insert(1877, &[528400]);     // 1877 => [528400]
            map.insert(827, &[1052688]);     // 827 => [1052688]
            map.insert(5263, &[2101264]);     // 5263 => [2101264]
            map.insert(2298, &[4198416]);     // 2298 => [4198416]
            map.insert(4045, &[24592]);     // 4045 => [24592]
            map.insert(1256, &[40976]);     // 1256 => [40976]
            map.insert(1597, &[73744]);     // 1597 => [73744]
            map.insert(919, &[139280]);     // 919 => [139280]
            map.insert(2243, &[270352]);     // 2243 => [270352]
            map.insert(2804, &[532496]);     // 2804 => [532496]
            map.insert(3738, &[1056784]);     // 3738 => [1056784]
            map.insert(6446, &[2105360]);     // 6446 => [2105360]
            map.insert(1371, &[4202512]);     // 1371 => [4202512]
            map.insert(2869, &[49168]);     // 2869 => [49168]
            map.insert(2528, &[81936]);     // 2528 => [81936]
            map.insert(3146, &[147472]);     // 3146 => [147472]
            map.insert(1822, &[278544]);     // 1822 => [278544]
            map.insert(1321, &[540688]);     // 1321 => [540688]
            map.insert(327, &[1064976]);     // 327 => [1064976]
            map.insert(5875, &[2113552]);     // 5875 => [2113552]
            map.insert(2694, &[4210704]);     // 2694 => [4210704]
            map.insert(709, &[98320]);     // 709 => [98320]
            map.insert(1903, &[163856]);     // 1903 => [163856]
            map.insert(3131, &[294928]);     // 3131 => [294928]
            map.insert(3596, &[557072]);     // 3596 => [557072]
            map.insert(2658, &[1081360]);     // 2658 => [1081360]
            map.insert(7638, &[2129936]);     // 7638 => [2129936]
            map.insert(419, &[4227088]);     // 419 => [4227088]
            map.insert(1466, &[196624]);     // 1466 => [196624]
            map.insert(3822, &[327696]);     // 3822 => [327696]
            map.insert(3289, &[589840]);     // 3289 => [589840]
            map.insert(2231, &[1114128]);     // 2231 => [1114128]
            map.insert(7939, &[2162704]);     // 7939 => [2162704]
            map.insert(886, &[4259856]);     // 886 => [4259856]
            map.insert(2884, &[393232]);     // 2884 => [393232]
            map.insert(2419, &[655376]);     // 2419 => [655376]
            map.insert(3357, &[1179664]);     // 3357 => [1179664]
            map.insert(6825, &[2228240]);     // 6825 => [2228240]
            map.insert(1756, &[4325392]);     // 1756 => [4325392]
            map.insert(551, &[786448]);     // 551 => [786448]
            map.insert(1609, &[1310736]);     // 1609 => [1310736]
            map.insert(4605, &[2359312]);     // 4605 => [2359312]
            map.insert(3464, &[4456464]);     // 3464 => [4456464]
            map.insert(1150, &[1572880]);     // 1150 => [1572880]
            map.insert(5066, &[2621456]);     // 5066 => [2621456]
            map.insert(4031, &[4718608]);     // 4031 => [4718608]
            map.insert(6052, &[3145744]);     // 6052 => [3145744]
            map.insert(3025, &[5242896]);     // 3025 => [5242896]
            map.insert(7269, &[6291472]);     // 7269 => [6291472]
            map.insert(224, &[224]);     // 224 => [224]
            map.insert(352, &[352]);     // 352 => [352]
            map.insert(608, &[608]);     // 608 => [608]
            map.insert(1120, &[1120]);     // 1120 => [1120]
            map.insert(2144, &[2144]);     // 2144 => [2144]
            map.insert(1279, &[4192]);     // 1279 => [4192]
            map.insert(2398, &[8288]);     // 2398 => [8288]
            map.insert(1667, &[16480]);     // 1667 => [16480]
            map.insert(3494, &[32864]);     // 3494 => [32864]
            map.insert(3955, &[65632]);     // 3955 => [65632]
            map.insert(2777, &[131168]);     // 2777 => [131168]
            map.insert(397, &[262240]);     // 397 => [262240]
            map.insert(954, &[524384]);     // 954 => [524384]
            map.insert(2004, &[1048672]);     // 2004 => [1048672]
            map.insert(4192, &[2097248]);     // 4192 => [2097248]
            map.insert(3093, &[4194400]);     // 3093 => [4194400]
            map.insert(416, &[416]);     // 416 => [416]
            map.insert(672, &[672]);     // 672 => [672]
            map.insert(1184, &[1184]);     // 1184 => [1184]
            map.insert(2208, &[2208]);     // 2208 => [2208]
            map.insert(1087, &[4256]);     // 1087 => [4256]
            map.insert(2462, &[8352]);     // 2462 => [8352]
            map.insert(1603, &[16544]);     // 1603 => [16544]
            map.insert(3430, &[32928]);     // 3430 => [32928]
            map.insert(4019, &[65696]);     // 4019 => [65696]
            map.insert(2585, &[131232]);     // 2585 => [131232]
            map.insert(333, &[262304]);     // 333 => [262304]
            map.insert(890, &[524448]);     // 890 => [524448]
            map.insert(1812, &[1048736]);     // 1812 => [1048736]
            map.insert(4256, &[2097312]);     // 4256 => [2097312]
            map.insert(3285, &[4194464]);     // 3285 => [4194464]
            map.insert(800, &[800]);     // 800 => [800]
            map.insert(1312, &[1312]);     // 1312 => [1312]
            map.insert(2336, &[2336]);     // 2336 => [2336]
            map.insert(1471, &[4384]);     // 1471 => [4384]
            map.insert(2078, &[8480]);     // 2078 => [8480]
            map.insert(1987, &[16672]);     // 1987 => [16672]
            map.insert(3302, &[33056]);     // 3302 => [33056]
            map.insert(3635, &[65824]);     // 3635 => [65824]
            map.insert(2969, &[131360]);     // 2969 => [131360]
            map.insert(205, &[262432]);     // 205 => [262432]
            map.insert(762, &[524576]);     // 762 => [524576]
            map.insert(1684, &[1048864]);     // 1684 => [1048864]
            map.insert(4384, &[2097440]);     // 4384 => [2097440]
            map.insert(3413, &[4194592]);     // 3413 => [4194592]
            map.insert(1568, &[1568]);     // 1568 => [1568]
            map.insert(2592, &[2592]);     // 2592 => [2592]
            map.insert(1727, &[4640]);     // 1727 => [4640]
            map.insert(2846, &[8736]);     // 2846 => [8736]
            map.insert(1219, &[16928]);     // 1219 => [16928]
            map.insert(4070, &[33312]);     // 4070 => [33312]
            map.insert(3379, &[66080]);     // 3379 => [66080]
            map.insert(2201, &[131616]);     // 2201 => [131616]
            map.insert(973, &[262688]);     // 973 => [262688]
            map.insert(506, &[524832]);     // 506 => [524832]
            map.insert(1428, &[1049120]);     // 1428 => [1049120]
            map.insert(4640, &[2097696]);     // 4640 => [2097696]
            map.insert(3669, &[4194848]);     // 3669 => [4194848]
            map.insert(3104, &[3104]);     // 3104 => [3104]
            map.insert(191, &[5152]);     // 191 => [5152]
            map.insert(3358, &[9248]);     // 3358 => [9248]
            map.insert(707, &[17440]);     // 707 => [17440]
            map.insert(2534, &[33824]);     // 2534 => [33824]
            map.insert(2867, &[66592]);     // 2867 => [66592]
            map.insert(3737, &[132128]);     // 3737 => [132128]
            map.insert(1485, &[263200]);     // 1485 => [263200]
            map.insert(2042, &[525344]);     // 2042 => [525344]
            map.insert(916, &[1049632]);     // 916 => [1049632]
            map.insert(5152, &[2098208]);     // 5152 => [2098208]
            map.insert(2133, &[4195360]);     // 2133 => [4195360]
            map.insert(3263, &[6176]);     // 3263 => [6176]
            map.insert(286, &[10272]);     // 286 => [10272]
            map.insert(3779, &[18464]);     // 3779 => [18464]
            map.insert(1510, &[34848]);     // 1510 => [34848]
            map.insert(1843, &[67616]);     // 1843 => [67616]
            map.insert(665, &[133152]);     // 665 => [133152]
            map.insert(2509, &[264224]);     // 2509 => [264224]
            map.insert(3066, &[526368]);     // 3066 => [526368]
            map.insert(3988, &[1050656]);     // 3988 => [1050656]
            map.insert(6176, &[2099232]);     // 6176 => [2099232]
            map.insert(1109, &[4196384]);     // 1109 => [4196384]
            map.insert(3457, &[12320]);     // 3457 => [12320]
            map.insert(604, &[20512]);     // 604 => [20512]
            map.insert(2425, &[36896]);     // 2425 => [36896]
            map.insert(2988, &[69664]);     // 2988 => [69664]
            map.insert(3590, &[135200]);     // 3590 => [135200]
            map.insert(1362, &[266272]);     // 1362 => [266272]
            map.insert(1893, &[528416]);     // 1893 => [528416]
            map.insert(779, &[1052704]);     // 779 => [1052704]
            map.insert(5311, &[2101280]);     // 5311 => [2101280]
            map.insert(2250, &[4198432]);     // 2250 => [4198432]
            map.insert(4093, &[24608]);     // 4093 => [24608]
            map.insert(1240, &[40992]);     // 1240 => [40992]
            map.insert(1549, &[73760]);     // 1549 => [73760]
            map.insert(935, &[139296]);     // 935 => [139296]
            map.insert(2291, &[270368]);     // 2291 => [270368]
            map.insert(2756, &[532512]);     // 2756 => [532512]
            map.insert(3754, &[1056800]);     // 3754 => [1056800]
            map.insert(6430, &[2105376]);     // 6430 => [2105376]
            map.insert(1387, &[4202528]);     // 1387 => [4202528]
            map.insert(2821, &[49184]);     // 2821 => [49184]
            map.insert(2512, &[81952]);     // 2512 => [81952]
            map.insert(3194, &[147488]);     // 3194 => [147488]
            map.insert(1838, &[278560]);     // 1838 => [278560]
            map.insert(1305, &[540704]);     // 1305 => [540704]
            map.insert(375, &[1064992]);     // 375 => [1064992]
            map.insert(5827, &[2113568]);     // 5827 => [2113568]
            map.insert(2742, &[4210720]);     // 2742 => [4210720]
            map.insert(757, &[98336]);     // 757 => [98336]
            map.insert(1887, &[163872]);     // 1887 => [163872]
            map.insert(3083, &[294944]);     // 3083 => [294944]
            map.insert(3644, &[557088]);     // 3644 => [557088]
            map.insert(2642, &[1081376]);     // 2642 => [1081376]
            map.insert(7654, &[2129952]);     // 7654 => [2129952]
            map.insert(403, &[4227104]);     // 403 => [4227104]
            map.insert(1418, &[196640]);     // 1418 => [196640]
            map.insert(3806, &[327712]);     // 3806 => [327712]
            map.insert(3305, &[589856]);     // 3305 => [589856]
            map.insert(2183, &[1114144]);     // 2183 => [1114144]
            map.insert(7987, &[2162720]);     // 7987 => [2162720]
            map.insert(838, &[4259872]);     // 838 => [4259872]
            map.insert(2932, &[393248]);     // 2932 => [393248]
            map.insert(2371, &[655392]);     // 2371 => [655392]
            map.insert(3373, &[1179680]);     // 3373 => [1179680]
            map.insert(6809, &[2228256]);     // 6809 => [2228256]
            map.insert(1772, &[4325408]);     // 1772 => [4325408]
            map.insert(535, &[786464]);     // 535 => [786464]
            map.insert(1657, &[1310752]);     // 1657 => [1310752]
            map.insert(4557, &[2359328]);     // 4557 => [2359328]
            map.insert(3512, &[4456480]);     // 3512 => [4456480]
            map.insert(1102, &[1572896]);     // 1102 => [1572896]
            map.insert(5114, &[2621472]);     // 5114 => [2621472]
            map.insert(3983, &[4718624]);     // 3983 => [4718624]
            map.insert(6036, &[3145760]);     // 6036 => [3145760]
            map.insert(3041, &[5242912]);     // 3041 => [5242912]
            map.insert(7253, &[6291488]);     // 7253 => [6291488]
            map.insert(448, &[448]);     // 448 => [448]
            map.insert(704, &[704]);     // 704 => [704]
            map.insert(1216, &[1216]);     // 1216 => [1216]
            map.insert(2240, &[2240]);     // 2240 => [2240]
            map.insert(1119, &[4288]);     // 1119 => [4288]
            map.insert(2558, &[8384]);     // 2558 => [8384]
            map.insert(1571, &[16576]);     // 1571 => [16576]
            map.insert(3334, &[32960]);     // 3334 => [32960]
            map.insert(4051, &[65728]);     // 4051 => [65728]
            map.insert(2681, &[131264]);     // 2681 => [131264]
            map.insert(301, &[262336]);     // 301 => [262336]
            map.insert(794, &[524480]);     // 794 => [524480]
            map.insert(1908, &[1048768]);     // 1908 => [1048768]
            map.insert(4288, &[2097344]);     // 4288 => [2097344]
            map.insert(3253, &[4194496]);     // 3253 => [4194496]
            map.insert(832, &[832]);     // 832 => [832]
            map.insert(1344, &[1344]);     // 1344 => [1344]
            map.insert(2368, &[2368]);     // 2368 => [2368]
            map.insert(1503, &[4416]);     // 1503 => [4416]
            map.insert(2174, &[8512]);     // 2174 => [8512]
            map.insert(1955, &[16704]);     // 1955 => [16704]
            map.insert(3206, &[33088]);     // 3206 => [33088]
            map.insert(3667, &[65856]);     // 3667 => [65856]
            map.insert(3065, &[131392]);     // 3065 => [131392]
            map.insert(173, &[262464]);     // 173 => [262464]
            map.insert(666, &[524608]);     // 666 => [524608]
            map.insert(1780, &[1048896]);     // 1780 => [1048896]
            map.insert(4416, &[2097472]);     // 4416 => [2097472]
            map.insert(3381, &[4194624]);     // 3381 => [4194624]
            map.insert(1600, &[1600]);     // 1600 => [1600]
            map.insert(2624, &[2624]);     // 2624 => [2624]
            map.insert(1759, &[4672]);     // 1759 => [4672]
            map.insert(2942, &[8768]);     // 2942 => [8768]
            map.insert(1187, &[16960]);     // 1187 => [16960]
            map.insert(3974, &[33344]);     // 3974 => [33344]
            map.insert(3411, &[66112]);     // 3411 => [66112]
            map.insert(2297, &[131648]);     // 2297 => [131648]
            map.insert(941, &[262720]);     // 941 => [262720]
            map.insert(410, &[524864]);     // 410 => [524864]
            map.insert(1524, &[1049152]);     // 1524 => [1049152]
            map.insert(4672, &[2097728]);     // 4672 => [2097728]
            map.insert(3637, &[4194880]);     // 3637 => [4194880]
            map.insert(3136, &[3136]);     // 3136 => [3136]
            map.insert(223, &[5184]);     // 223 => [5184]
            map.insert(3454, &[9280]);     // 3454 => [9280]
            map.insert(675, &[17472]);     // 675 => [17472]
            map.insert(2438, &[33856]);     // 2438 => [33856]
            map.insert(2899, &[66624]);     // 2899 => [66624]
            map.insert(3833, &[132160]);     // 3833 => [132160]
            map.insert(1453, &[263232]);     // 1453 => [263232]
            map.insert(1946, &[525376]);     // 1946 => [525376]
            map.insert(1012, &[1049664]);     // 1012 => [1049664]
            map.insert(5184, &[2098240]);     // 5184 => [2098240]
            map.insert(2101, &[4195392]);     // 2101 => [4195392]
            map.insert(3295, &[6208]);     // 3295 => [6208]
            map.insert(382, &[10304]);     // 382 => [10304]
            map.insert(3747, &[18496]);     // 3747 => [18496]
            map.insert(1414, &[34880]);     // 1414 => [34880]
            map.insert(1875, &[67648]);     // 1875 => [67648]
            map.insert(761, &[133184]);     // 761 => [133184]
            map.insert(2477, &[264256]);     // 2477 => [264256]
            map.insert(2970, &[526400]);     // 2970 => [526400]
            map.insert(4084, &[1050688]);     // 4084 => [1050688]
            map.insert(6208, &[2099264]);     // 6208 => [2099264]
            map.insert(1077, &[4196416]);     // 1077 => [4196416]
            map.insert(3553, &[12352]);     // 3553 => [12352]
            map.insert(572, &[20544]);     // 572 => [20544]
            map.insert(2329, &[36928]);     // 2329 => [36928]
            map.insert(3020, &[69696]);     // 3020 => [69696]
            map.insert(3686, &[135232]);     // 3686 => [135232]
            map.insert(1330, &[266304]);     // 1330 => [266304]
            map.insert(1797, &[528448]);     // 1797 => [528448]
            map.insert(875, &[1052736]);     // 875 => [1052736]
            map.insert(5343, &[2101312]);     // 5343 => [2101312]
            map.insert(2218, &[4198464]);     // 2218 => [4198464]
            map.insert(3997, &[24640]);     // 3997 => [24640]
            map.insert(1208, &[41024]);     // 1208 => [41024]
            map.insert(1645, &[73792]);     // 1645 => [73792]
            map.insert(967, &[139328]);     // 967 => [139328]
            map.insert(2195, &[270400]);     // 2195 => [270400]
            map.insert(2724, &[532544]);     // 2724 => [532544]
            map.insert(3786, &[1056832]);     // 3786 => [1056832]
            map.insert(6526, &[2105408]);     // 6526 => [2105408]
            map.insert(1291, &[4202560]);     // 1291 => [4202560]
            map.insert(2917, &[49216]);     // 2917 => [49216]
            map.insert(2480, &[81984]);     // 2480 => [81984]
            map.insert(3098, &[147520]);     // 3098 => [147520]
            map.insert(1870, &[278592]);     // 1870 => [278592]
            map.insert(1401, &[540736]);     // 1401 => [540736]
            map.insert(279, &[1065024]);     // 279 => [1065024]
            map.insert(5795, &[2113600]);     // 5795 => [2113600]
            map.insert(2774, &[4210752]);     // 2774 => [4210752]
            map.insert(661, &[98368]);     // 661 => [98368]
            map.insert(1855, &[163904]);     // 1855 => [163904]
            map.insert(3179, &[294976]);     // 3179 => [294976]
            map.insert(3676, &[557120]);     // 3676 => [557120]
            map.insert(2610, &[1081408]);     // 2610 => [1081408]
            map.insert(7558, &[2129984]);     // 7558 => [2129984]
            map.insert(499, &[4227136]);     // 499 => [4227136]
            map.insert(1514, &[196672]);     // 1514 => [196672]
            map.insert(3774, &[327744]);     // 3774 => [327744]
            map.insert(3209, &[589888]);     // 3209 => [589888]
            map.insert(2279, &[1114176]);     // 2279 => [1114176]
            map.insert(8019, &[2162752]);     // 8019 => [2162752]
            map.insert(806, &[4259904]);     // 806 => [4259904]
            map.insert(2836, &[393280]);     // 2836 => [393280]
            map.insert(2339, &[655424]);     // 2339 => [655424]
            map.insert(3405, &[1179712]);     // 3405 => [1179712]
            map.insert(6905, &[2228288]);     // 6905 => [2228288]
            map.insert(1676, &[4325440]);     // 1676 => [4325440]
            map.insert(631, &[786496]);     // 631 => [786496]
            map.insert(1561, &[1310784]);     // 1561 => [1310784]
            map.insert(4525, &[2359360]);     // 4525 => [2359360]
            map.insert(3544, &[4456512]);     // 3544 => [4456512]
            map.insert(1070, &[1572928]);     // 1070 => [1572928]
            map.insert(5018, &[2621504]);     // 5018 => [2621504]
            map.insert(4079, &[4718656]);     // 4079 => [4718656]
            map.insert(6132, &[3145792]);     // 6132 => [3145792]
            map.insert(2945, &[5242944]);     // 2945 => [5242944]
            map.insert(7221, &[6291520]);     // 7221 => [6291520]
            map.insert(896, &[896]);     // 896 => [896]
            map.insert(1408, &[1408]);     // 1408 => [1408]
            map.insert(2432, &[2432]);     // 2432 => [2432]
            map.insert(1311, &[4480]);     // 1311 => [4480]
            map.insert(2238, &[8576]);     // 2238 => [8576]
            map.insert(1891, &[16768]);     // 1891 => [16768]
            map.insert(3142, &[33152]);     // 3142 => [33152]
            map.insert(3731, &[65920]);     // 3731 => [65920]
            map.insert(2873, &[131456]);     // 2873 => [131456]
            map.insert(109, &[262528]);     // 109 => [262528]
            map.insert(602, &[524672]);     // 602 => [524672]
            map.insert(1588, &[1048960]);     // 1588 => [1048960]
            map.insert(4480, &[2097536]);     // 4480 => [2097536]
            map.insert(3573, &[4194688]);     // 3573 => [4194688]
            map.insert(1664, &[1664]);     // 1664 => [1664]
            map.insert(2688, &[2688]);     // 2688 => [2688]
            map.insert(1567, &[4736]);     // 1567 => [4736]
            map.insert(3006, &[8832]);     // 3006 => [8832]
            map.insert(1123, &[17024]);     // 1123 => [17024]
            map.insert(3910, &[33408]);     // 3910 => [33408]
            map.insert(3475, &[66176]);     // 3475 => [66176]
            map.insert(2105, &[131712]);     // 2105 => [131712]
            map.insert(877, &[262784]);     // 877 => [262784]
            map.insert(346, &[524928]);     // 346 => [524928]
            map.insert(1332, &[1049216]);     // 1332 => [1049216]
            map.insert(4736, &[2097792]);     // 4736 => [2097792]
            map.insert(3829, &[4194944]);     // 3829 => [4194944]
            map.insert(3200, &[3200]);     // 3200 => [3200]
            map.insert(31, &[5248]);     // 31 => [5248]
            map.insert(3518, &[9344]);     // 3518 => [9344]
            map.insert(611, &[17536]);     // 611 => [17536]
            map.insert(2374, &[33920]);     // 2374 => [33920]
            map.insert(2963, &[66688]);     // 2963 => [66688]
            map.insert(3641, &[132224]);     // 3641 => [132224]
            map.insert(1389, &[263296]);     // 1389 => [263296]
            map.insert(1882, &[525440]);     // 1882 => [525440]
            map.insert(820, &[1049728]);     // 820 => [1049728]
            map.insert(5248, &[2098304]);     // 5248 => [2098304]
            map.insert(2293, &[4195456]);     // 2293 => [4195456]
            map.insert(3103, &[6272]);     // 3103 => [6272]
            map.insert(446, &[10368]);     // 446 => [10368]
            map.insert(3683, &[18560]);     // 3683 => [18560]
            map.insert(1350, &[34944]);     // 1350 => [34944]
            map.insert(1939, &[67712]);     // 1939 => [67712]
            map.insert(569, &[133248]);     // 569 => [133248]
            map.insert(2413, &[264320]);     // 2413 => [264320]
            map.insert(2906, &[526464]);     // 2906 => [526464]
            map.insert(3892, &[1050752]);     // 3892 => [1050752]
            map.insert(6272, &[2099328]);     // 6272 => [2099328]
            map.insert(1269, &[4196480]);     // 1269 => [4196480]
            map.insert(3361, &[12416]);     // 3361 => [12416]
            map.insert(764, &[20608]);     // 764 => [20608]
            map.insert(2521, &[36992]);     // 2521 => [36992]
            map.insert(2828, &[69760]);     // 2828 => [69760]
            map.insert(3750, &[135296]);     // 3750 => [135296]
            map.insert(1522, &[266368]);     // 1522 => [266368]
            map.insert(1989, &[528512]);     // 1989 => [528512]
            map.insert(939, &[1052800]);     // 939 => [1052800]
            map.insert(5151, &[2101376]);     // 5151 => [2101376]
            map.insert(2154, &[4198528]);     // 2154 => [4198528]
            map.insert(3933, &[24704]);     // 3933 => [24704]
            map.insert(1144, &[41088]);     // 1144 => [41088]
            map.insert(1709, &[73856]);     // 1709 => [73856]
            map.insert(775, &[139392]);     // 775 => [139392]
            map.insert(2131, &[270464]);     // 2131 => [270464]
            map.insert(2660, &[532608]);     // 2660 => [532608]
            map.insert(3594, &[1056896]);     // 3594 => [1056896]
            map.insert(6590, &[2105472]);     // 6590 => [2105472]
            map.insert(1483, &[4202624]);     // 1483 => [4202624]
            map.insert(2981, &[49280]);     // 2981 => [49280]
            map.insert(2416, &[82048]);     // 2416 => [82048]
            map.insert(3290, &[147584]);     // 3290 => [147584]
            map.insert(1934, &[278656]);     // 1934 => [278656]
            map.insert(1465, &[540800]);     // 1465 => [540800]
            map.insert(471, &[1065088]);     // 471 => [1065088]
            map.insert(5731, &[2113664]);     // 5731 => [2113664]
            map.insert(2582, &[4210816]);     // 2582 => [4210816]
            map.insert(597, &[98432]);     // 597 => [98432]
            map.insert(2047, &[163968]);     // 2047 => [163968]
            map.insert(3243, &[295040]);     // 3243 => [295040]
            map.insert(3740, &[557184]);     // 3740 => [557184]
            map.insert(2802, &[1081472]);     // 2802 => [1081472]
            map.insert(7494, &[2130048]);     // 7494 => [2130048]
            map.insert(307, &[4227200]);     // 307 => [4227200]
            map.insert(1322, &[196736]);     // 1322 => [196736]
            map.insert(3710, &[327808]);     // 3710 => [327808]
            map.insert(3145, &[589952]);     // 3145 => [589952]
            map.insert(2087, &[1114240]);     // 2087 => [1114240]
            map.insert(8083, &[2162816]);     // 8083 => [2162816]
            map.insert(998, &[4259968]);     // 998 => [4259968]
            map.insert(3028, &[393344]);     // 3028 => [393344]
            map.insert(2531, &[655488]);     // 2531 => [655488]
            map.insert(3469, &[1179776]);     // 3469 => [1179776]
            map.insert(6713, &[2228352]);     // 6713 => [2228352]
            map.insert(1612, &[4325504]);     // 1612 => [4325504]
            map.insert(695, &[786560]);     // 695 => [786560]
            map.insert(1753, &[1310848]);     // 1753 => [1310848]
            map.insert(4461, &[2359424]);     // 4461 => [2359424]
            map.insert(3352, &[4456576]);     // 3352 => [4456576]
            map.insert(1262, &[1572992]);     // 1262 => [1572992]
            map.insert(4954, &[2621568]);     // 4954 => [2621568]
            map.insert(3887, &[4718720]);     // 3887 => [4718720]
            map.insert(5940, &[3145856]);     // 5940 => [3145856]
            map.insert(2881, &[5243008]);     // 2881 => [5243008]
            map.insert(7413, &[6291584]);     // 7413 => [6291584]
            map.insert(1792, &[1792]);     // 1792 => [1792]
            map.insert(2816, &[2816]);     // 2816 => [2816]
            map.insert(1951, &[4864]);     // 1951 => [4864]
            map.insert(2622, &[8960]);     // 2622 => [8960]
            map.insert(1507, &[17152]);     // 1507 => [17152]
            map.insert(3782, &[33536]);     // 3782 => [33536]
            map.insert(3091, &[66304]);     // 3091 => [66304]
            map.insert(2489, &[131840]);     // 2489 => [131840]
            map.insert(749, &[262912]);     // 749 => [262912]
            map.insert(218, &[525056]);     // 218 => [525056]
            map.insert(1204, &[1049344]);     // 1204 => [1049344]
            map.insert(4864, &[2097920]);     // 4864 => [2097920]
            map.insert(3957, &[4195072]);     // 3957 => [4195072]
            map.insert(3328, &[3328]);     // 3328 => [3328]
            map.insert(415, &[5376]);     // 415 => [5376]
            map.insert(3134, &[9472]);     // 3134 => [9472]
            map.insert(995, &[17664]);     // 995 => [17664]
            map.insert(2246, &[34048]);     // 2246 => [34048]
            map.insert(2579, &[66816]);     // 2579 => [66816]
            map.insert(4025, &[132352]);     // 4025 => [132352]
            map.insert(1261, &[263424]);     // 1261 => [263424]
            map.insert(1754, &[525568]);     // 1754 => [525568]
            map.insert(692, &[1049856]);     // 692 => [1049856]
            map.insert(5376, &[2098432]);     // 5376 => [2098432]
            map.insert(2421, &[4195584]);     // 2421 => [4195584]
            map.insert(3487, &[6400]);     // 3487 => [6400]
            map.insert(62, &[10496]);     // 62 => [10496]
            map.insert(4067, &[18688]);     // 4067 => [18688]
            map.insert(1222, &[35072]);     // 1222 => [35072]
            map.insert(1555, &[67840]);     // 1555 => [67840]
            map.insert(953, &[133376]);     // 953 => [133376]
            map.insert(2285, &[264448]);     // 2285 => [264448]
            map.insert(2778, &[526592]);     // 2778 => [526592]
            map.insert(3764, &[1050880]);     // 3764 => [1050880]
            map.insert(6400, &[2099456]);     // 6400 => [2099456]
            map.insert(1397, &[4196608]);     // 1397 => [4196608]
            map.insert(3233, &[12544]);     // 3233 => [12544]
            map.insert(892, &[20736]);     // 892 => [20736]
            map.insert(2137, &[37120]);     // 2137 => [37120]
            map.insert(2700, &[69888]);     // 2700 => [69888]
            map.insert(3878, &[135424]);     // 3878 => [135424]
            map.insert(1138, &[266496]);     // 1138 => [266496]
            map.insert(1605, &[528640]);     // 1605 => [528640]
            map.insert(555, &[1052928]);     // 555 => [1052928]
            map.insert(5535, &[2101504]);     // 5535 => [2101504]
            map.insert(2538, &[4198656]);     // 2538 => [4198656]
            map.insert(3805, &[24832]);     // 3805 => [24832]
            map.insert(1528, &[41216]);     // 1528 => [41216]
            map.insert(1837, &[73984]);     // 1837 => [73984]
            map.insert(647, &[139520]);     // 647 => [139520]
            map.insert(2515, &[270592]);     // 2515 => [270592]
            map.insert(3044, &[532736]);     // 3044 => [532736]
            map.insert(3978, &[1057024]);     // 3978 => [1057024]
            map.insert(6206, &[2105600]);     // 6206 => [2105600]
            map.insert(1099, &[4202752]);     // 1099 => [4202752]
            map.insert(2597, &[49408]);     // 2597 => [49408]
            map.insert(2288, &[82176]);     // 2288 => [82176]
            map.insert(3418, &[147712]);     // 3418 => [147712]
            map.insert(1550, &[278784]);     // 1550 => [278784]
            map.insert(1081, &[540928]);     // 1081 => [540928]
            map.insert(87, &[1065216]);     // 87 => [1065216]
            map.insert(6115, &[2113792]);     // 6115 => [2113792]
            map.insert(2966, &[4210944]);     // 2966 => [4210944]
            map.insert(981, &[98560]);     // 981 => [98560]
            map.insert(1663, &[164096]);     // 1663 => [164096]
            map.insert(3371, &[295168]);     // 3371 => [295168]
            map.insert(3868, &[557312]);     // 3868 => [557312]
            map.insert(2930, &[1081600]);     // 2930 => [1081600]
            map.insert(7366, &[2130176]);     // 7366 => [2130176]
            map.insert(179, &[4227328]);     // 179 => [4227328]
            map.insert(1194, &[196864]);     // 1194 => [196864]
            map.insert(4094, &[327936]);     // 4094 => [327936]
            map.insert(3529, &[590080]);     // 3529 => [590080]
            map.insert(2471, &[1114368]);     // 2471 => [1114368]
            map.insert(7699, &[2162944]);     // 7699 => [2162944]
            map.insert(614, &[4260096]);     // 614 => [4260096]
            map.insert(2644, &[393472]);     // 2644 => [393472]
            map.insert(2147, &[655616]);     // 2147 => [655616]
            map.insert(3085, &[1179904]);     // 3085 => [1179904]
            map.insert(7097, &[2228480]);     // 7097 => [2228480]
            map.insert(1996, &[4325632]);     // 1996 => [4325632]
            map.insert(823, &[786688]);     // 823 => [786688]
            map.insert(1881, &[1310976]);     // 1881 => [1310976]
            map.insert(4333, &[2359552]);     // 4333 => [2359552]
            map.insert(3224, &[4456704]);     // 3224 => [4456704]
            map.insert(1390, &[1573120]);     // 1390 => [1573120]
            map.insert(4826, &[2621696]);     // 4826 => [2621696]
            map.insert(3759, &[4718848]);     // 3759 => [4718848]
            map.insert(5812, &[3145984]);     // 5812 => [3145984]
            map.insert(2753, &[5243136]);     // 2753 => [5243136]
            map.insert(7541, &[6291712]);     // 7541 => [6291712]
            map.insert(3584, &[3584]);     // 3584 => [3584]
            map.insert(671, &[5632]);     // 671 => [5632]
            map.insert(3902, &[9728]);     // 3902 => [9728]
            map.insert(227, &[17920]);     // 227 => [17920]
            map.insert(3014, &[34304]);     // 3014 => [34304]
            map.insert(2323, &[67072]);     // 2323 => [67072]
            map.insert(3257, &[132608]);     // 3257 => [132608]
            map.insert(2029, &[263680]);     // 2029 => [263680]
            map.insert(1498, &[525824]);     // 1498 => [525824]
            map.insert(436, &[1050112]);     // 436 => [1050112]
            map.insert(5632, &[2098688]);     // 5632 => [2098688]
            map.insert(2677, &[4195840]);     // 2677 => [4195840]
            map.insert(3743, &[6656]);     // 3743 => [6656]
            map.insert(830, &[10752]);     // 830 => [10752]
            map.insert(3299, &[18944]);     // 3299 => [18944]
            map.insert(1990, &[35328]);     // 1990 => [35328]
            map.insert(1299, &[68096]);     // 1299 => [68096]
            map.insert(185, &[133632]);     // 185 => [133632]
            map.insert(3053, &[264704]);     // 3053 => [264704]
            map.insert(2522, &[526848]);     // 2522 => [526848]
            map.insert(3508, &[1051136]);     // 3508 => [1051136]
            map.insert(6656, &[2099712]);     // 6656 => [2099712]
            map.insert(1653, &[4196864]);     // 1653 => [4196864]
            map.insert(4001, &[12800]);     // 4001 => [12800]
            map.insert(124, &[20992]);     // 124 => [20992]
            map.insert(2905, &[37376]);     // 2905 => [37376]
            map.insert(2444, &[70144]);     // 2444 => [70144]
            map.insert(3110, &[135680]);     // 3110 => [135680]
            map.insert(1906, &[266752]);     // 1906 => [266752]
            map.insert(1349, &[528896]);     // 1349 => [528896]
            map.insert(299, &[1053184]);     // 299 => [1053184]
            map.insert(5791, &[2101760]);     // 5791 => [2101760]
            map.insert(2794, &[4198912]);     // 2794 => [4198912]
            map.insert(3549, &[25088]);     // 3549 => [25088]
            map.insert(1784, &[41472]);     // 1784 => [41472]
            map.insert(1069, &[74240]);     // 1069 => [74240]
            map.insert(391, &[139776]);     // 391 => [139776]
            map.insert(2771, &[270848]);     // 2771 => [270848]
            map.insert(2276, &[532992]);     // 2276 => [532992]
            map.insert(3210, &[1057280]);     // 3210 => [1057280]
            map.insert(6974, &[2105856]);     // 6974 => [2105856]
            map.insert(1867, &[4203008]);     // 1867 => [4203008]
            map.insert(2341, &[49664]);     // 2341 => [49664]
            map.insert(3056, &[82432]);     // 3056 => [82432]
            map.insert(3674, &[147968]);     // 3674 => [147968]
            map.insert(1294, &[279040]);     // 1294 => [279040]
            map.insert(1849, &[541184]);     // 1849 => [541184]
            map.insert(855, &[1065472]);     // 855 => [1065472]
            map.insert(5347, &[2114048]);     // 5347 => [2114048]
            map.insert(2198, &[4211200]);     // 2198 => [4211200]
            map.insert(213, &[98816]);     // 213 => [98816]
            map.insert(1407, &[164352]);     // 1407 => [164352]
            map.insert(3627, &[295424]);     // 3627 => [295424]
            map.insert(3100, &[557568]);     // 3100 => [557568]
            map.insert(2162, &[1081856]);     // 2162 => [1081856]
            map.insert(8134, &[2130432]);     // 8134 => [2130432]
            map.insert(947, &[4227584]);     // 947 => [4227584]
            map.insert(1962, &[197120]);     // 1962 => [197120]
            map.insert(3326, &[328192]);     // 3326 => [328192]
            map.insert(3785, &[590336]);     // 3785 => [590336]
            map.insert(2727, &[1114624]);     // 2727 => [1114624]
            map.insert(7443, &[2163200]);     // 7443 => [2163200]
            map.insert(358, &[4260352]);     // 358 => [4260352]
            map.insert(2388, &[393728]);     // 2388 => [393728]
            map.insert(2915, &[655872]);     // 2915 => [655872]
            map.insert(3853, &[1180160]);     // 3853 => [1180160]
            map.insert(6329, &[2228736]);     // 6329 => [2228736]
            map.insert(1228, &[4325888]);     // 1228 => [4325888]
            map.insert(55, &[786944]);     // 55 => [786944]
            map.insert(1113, &[1311232]);     // 1113 => [1311232]
            map.insert(5101, &[2359808]);     // 5101 => [2359808]
            map.insert(3992, &[4456960]);     // 3992 => [4456960]
            map.insert(1646, &[1573376]);     // 1646 => [1573376]
            map.insert(4570, &[2621952]);     // 4570 => [2621952]
            map.insert(3503, &[4719104]);     // 3503 => [4719104]
            map.insert(5556, &[3146240]);     // 5556 => [3146240]
            map.insert(2497, &[5243392]);     // 2497 => [5243392]
            map.insert(7797, &[6291968]);     // 7797 => [6291968]
            map.insert(2207, &[7168]);     // 2207 => [7168]
            map.insert(1342, &[11264]);     // 1342 => [11264]
            map.insert(2787, &[19456]);     // 2787 => [19456]
            map.insert(454, &[35840]);     // 454 => [35840]
            map.insert(787, &[68608]);     // 787 => [68608]
            map.insert(1721, &[134144]);     // 1721 => [134144]
            map.insert(3565, &[265216]);     // 3565 => [265216]
            map.insert(4058, &[527360]);     // 4058 => [527360]
            map.insert(2996, &[1051648]);     // 2996 => [1051648]
            map.insert(7168, &[2100224]);     // 7168 => [2100224]
            map.insert(117, &[4197376]);     // 117 => [4197376]
            map.insert(2465, &[13312]);     // 2465 => [13312]
            map.insert(1660, &[21504]);     // 1660 => [21504]
            map.insert(3417, &[37888]);     // 3417 => [37888]
            map.insert(3980, &[70656]);     // 3980 => [70656]
            map.insert(2598, &[136192]);     // 2598 => [136192]
            map.insert(370, &[267264]);     // 370 => [267264]
            map.insert(837, &[529408]);     // 837 => [529408]
            map.insert(1835, &[1053696]);     // 1835 => [1053696]
            map.insert(4255, &[2102272]);     // 4255 => [2102272]
            map.insert(3306, &[4199424]);     // 3306 => [4199424]
            map.insert(3037, &[25600]);     // 3037 => [25600]
            map.insert(248, &[41984]);     // 248 => [41984]
            map.insert(557, &[74752]);     // 557 => [74752]
            map.insert(1927, &[140288]);     // 1927 => [140288]
            map.insert(3283, &[271360]);     // 3283 => [271360]
            map.insert(3812, &[533504]);     // 3812 => [533504]
            map.insert(2698, &[1057792]);     // 2698 => [1057792]
            map.insert(7486, &[2106368]);     // 7486 => [2106368]
            map.insert(331, &[4203520]);     // 331 => [4203520]
            map.insert(3877, &[50176]);     // 3877 => [50176]
            map.insert(3568, &[82944]);     // 3568 => [82944]
            map.insert(2138, &[148480]);     // 2138 => [148480]
            map.insert(782, &[279552]);     // 782 => [279552]
            map.insert(313, &[541696]);     // 313 => [541696]
            map.insert(1367, &[1065984]);     // 1367 => [1065984]
            map.insert(4835, &[2114560]);     // 4835 => [2114560]
            map.insert(3734, &[4211712]);     // 3734 => [4211712]
            map.insert(1749, &[99328]);     // 1749 => [99328]
            map.insert(895, &[164864]);     // 895 => [164864]
            map.insert(2091, &[295936]);     // 2091 => [295936]
            map.insert(2588, &[558080]);     // 2588 => [558080]
            map.insert(3698, &[1082368]);     // 3698 => [1082368]
            map.insert(6598, &[2130944]);     // 6598 => [2130944]
            map.insert(1459, &[4228096]);     // 1459 => [4228096]
            map.insert(426, &[197632]);     // 426 => [197632]
            map.insert(2814, &[328704]);     // 2814 => [328704]
            map.insert(2249, &[590848]);     // 2249 => [590848]
            map.insert(3239, &[1115136]);     // 3239 => [1115136]
            map.insert(6931, &[2163712]);     // 6931 => [2163712]
            map.insert(1894, &[4260864]);     // 1894 => [4260864]
            map.insert(3924, &[394240]);     // 3924 => [394240]
            map.insert(3427, &[656384]);     // 3427 => [656384]
            map.insert(2317, &[1180672]);     // 2317 => [1180672]
            map.insert(7865, &[2229248]);     // 7865 => [2229248]
            map.insert(716, &[4326400]);     // 716 => [4326400]
            map.insert(1591, &[787456]);     // 1591 => [787456]
            map.insert(601, &[1311744]);     // 601 => [1311744]
            map.insert(5613, &[2360320]);     // 5613 => [2360320]
            map.insert(2456, &[4457472]);     // 2456 => [4457472]
            map.insert(110, &[1573888]);     // 110 => [1573888]
            map.insert(6106, &[2622464]);     // 6106 => [2622464]
            map.insert(2991, &[4719616]);     // 2991 => [4719616]
            map.insert(5044, &[3146752]);     // 5044 => [3146752]
            map.insert(4033, &[5243904]);     // 4033 => [5243904]
            map.insert(6261, &[6292480]);     // 6261 => [6292480]
            map.insert(1441, &[14336]);     // 1441 => [14336]
            map.insert(2684, &[22528]);     // 2684 => [22528]
            map.insert(345, &[38912]);     // 345 => [38912]
            map.insert(908, &[71680]);     // 908 => [71680]
            map.insert(1574, &[137216]);     // 1574 => [137216]
            map.insert(3442, &[268288]);     // 3442 => [268288]
            map.insert(3909, &[530432]);     // 3909 => [530432]
            map.insert(2859, &[1054720]);     // 2859 => [1054720]
            map.insert(7327, &[2103296]);     // 7327 => [2103296]
            map.insert(234, &[4200448]);     // 234 => [4200448]
            map.insert(2013, &[26624]);     // 2013 => [26624]
            map.insert(3320, &[43008]);     // 3320 => [43008]
            map.insert(3629, &[75776]);     // 3629 => [75776]
            map.insert(2951, &[141312]);     // 2951 => [141312]
            map.insert(211, &[272384]);     // 211 => [272384]
            map.insert(740, &[534528]);     // 740 => [534528]
            map.insert(1674, &[1058816]);     // 1674 => [1058816]
            map.insert(4414, &[2107392]);     // 4414 => [2107392]
            map.insert(3403, &[4204544]);     // 3403 => [4204544]
            map.insert(805, &[51200]);     // 805 => [51200]
            map.insert(496, &[83968]);     // 496 => [83968]
            map.insert(1114, &[149504]);     // 1114 => [149504]
            map.insert(3854, &[280576]);     // 3854 => [280576]
            map.insert(3385, &[542720]);     // 3385 => [542720]
            map.insert(2391, &[1067008]);     // 2391 => [1067008]
            map.insert(7907, &[2115584]);     // 7907 => [2115584]
            map.insert(662, &[4212736]);     // 662 => [4212736]
            map.insert(2773, &[100352]);     // 2773 => [100352]
            map.insert(3967, &[165888]);     // 3967 => [165888]
            map.insert(1067, &[296960]);     // 1067 => [296960]
            map.insert(1564, &[559104]);     // 1564 => [559104]
            map.insert(626, &[1083392]);     // 626 => [1083392]
            map.insert(5574, &[2131968]);     // 5574 => [2131968]
            map.insert(2483, &[4229120]);     // 2483 => [4229120]
            map.insert(3498, &[198656]);     // 3498 => [198656]
            map.insert(1790, &[329728]);     // 1790 => [329728]
            map.insert(1225, &[591872]);     // 1225 => [591872]
            map.insert(167, &[1116160]);     // 167 => [1116160]
            map.insert(5907, &[2164736]);     // 5907 => [2164736]
            map.insert(2918, &[4261888]);     // 2918 => [4261888]
            map.insert(852, &[395264]);     // 852 => [395264]
            map.insert(355, &[657408]);     // 355 => [657408]
            map.insert(1293, &[1181696]);     // 1293 => [1181696]
            map.insert(4793, &[2230272]);     // 4793 => [2230272]
            map.insert(3788, &[4327424]);     // 3788 => [4327424]
            map.insert(2615, &[788480]);     // 2615 => [788480]
            map.insert(3673, &[1312768]);     // 3673 => [1312768]
            map.insert(6637, &[2361344]);     // 6637 => [2361344]
            map.insert(1432, &[4458496]);     // 1432 => [4458496]
            map.insert(3182, &[1574912]);     // 3182 => [1574912]
            map.insert(7130, &[2623488]);     // 7130 => [2623488]
            map.insert(1967, &[4720640]);     // 1967 => [4720640]
            map.insert(8116, &[3147776]);     // 8116 => [3147776]
            map.insert(961, &[5244928]);     // 961 => [5244928]
            map.insert(5237, &[6293504]);     // 5237 => [6293504]
            map.insert(2882, &[28672]);     // 2882 => [28672]
            map.insert(103, &[45056]);     // 103 => [45056]
            map.insert(690, &[77824]);     // 690 => [77824]
            map.insert(1816, &[143360]);     // 1816 => [143360]
            map.insert(3148, &[274432]);     // 3148 => [274432]
            map.insert(3707, &[536576]);     // 3707 => [536576]
            map.insert(2581, &[1060864]);     // 2581 => [1060864]
            map.insert(7585, &[2109440]);     // 7585 => [2109440]
            map.insert(468, &[4206592]);     // 468 => [4206592]
            map.insert(4026, &[53248]);     // 4026 => [53248]
            map.insert(3439, &[86016]);     // 3439 => [86016]
            map.insert(2245, &[151552]);     // 2245 => [151552]
            map.insert(913, &[282624]);     // 913 => [282624]
            map.insert(422, &[544768]);     // 422 => [544768]
            map.insert(1480, &[1069056]);     // 1480 => [1069056]
            map.insert(4732, &[2117632]);     // 4732 => [2117632]
            map.insert(3593, &[4214784]);     // 3593 => [4214784]
            map.insert(1610, &[102400]);     // 1610 => [102400]
            map.insert(992, &[167936]);     // 992 => [167936]
            map.insert(2228, &[299008]);     // 2228 => [299008]
            map.insert(2691, &[561152]);     // 2691 => [561152]
            map.insert(3821, &[1085440]);     // 3821 => [1085440]
            map.insert(6489, &[2134016]);     // 6489 => [2134016]
            map.insert(1324, &[4231168]);     // 1324 => [4231168]
            map.insert(309, &[200704]);     // 309 => [200704]
            map.insert(2657, &[331776]);     // 2657 => [331776]
            map.insert(2134, &[593920]);     // 2134 => [593920]
            map.insert(3128, &[1118208]);     // 3128 => [1118208]
            map.insert(7052, &[2166784]);     // 7052 => [2166784]
            map.insert(2041, &[4263936]);     // 2041 => [4263936]
            map.insert(4043, &[397312]);     // 4043 => [397312]
            map.insert(3580, &[659456]);     // 3580 => [659456]
            map.insert(2450, &[1183744]);     // 2450 => [1183744]
            map.insert(7718, &[2232320]);     // 7718 => [2232320]
            map.insert(595, &[4329472]);     // 595 => [4329472]
            map.insert(1704, &[790528]);     // 1704 => [790528]
            map.insert(710, &[1314816]);     // 710 => [1314816]
            map.insert(5490, &[2363392]);     // 5490 => [2363392]
            map.insert(2311, &[4460544]);     // 2311 => [4460544]
            map.insert(241, &[1576960]);     // 241 => [1576960]
            map.insert(5957, &[2625536]);     // 5957 => [2625536]
            map.insert(2864, &[4722688]);     // 2864 => [4722688]
            map.insert(4907, &[3149824]);     // 4907 => [3149824]
            map.insert(3934, &[5246976]);     // 3934 => [5246976]
            map.insert(6378, &[6295552]);     // 6378 => [6295552]
            map.insert(539, &[57344]);     // 539 => [57344]
            map.insert(206, &[90112]);     // 206 => [90112]
            map.insert(1380, &[155648]);     // 1380 => [155648]
            map.insert(3632, &[286720]);     // 3632 => [286720]
            map.insert(3079, &[548864]);     // 3079 => [548864]
            map.insert(2153, &[1073152]);     // 2153 => [1073152]
            map.insert(8157, &[2121728]);     // 8157 => [2121728]
            map.insert(936, &[4218880]);     // 936 => [4218880]
            map.insert(3051, &[106496]);     // 3051 => [106496]
            map.insert(3649, &[172032]);     // 3649 => [172032]
            map.insert(1301, &[303104]);     // 1301 => [303104]
            map.insert(1826, &[565248]);     // 1826 => [565248]
            map.insert(844, &[1089536]);     // 844 => [1089536]
            map.insert(5368, &[2138112]);     // 5368 => [2138112]
            map.insert(2189, &[4235264]);     // 2189 => [4235264]
            map.insert(3220, &[204800]);     // 3220 => [204800]
            map.insert(1984, &[335872]);     // 1984 => [335872]
            map.insert(1527, &[598016]);     // 1527 => [598016]
            map.insert(409, &[1122304]);     // 409 => [1122304]
            map.insert(5677, &[2170880]);     // 5677 => [2170880]
            map.insert(2648, &[4268032]);     // 2648 => [4268032]
            map.insert(618, &[401408]);     // 618 => [401408]
            map.insert(93, &[663552]);     // 93 => [663552]
            map.insert(1075, &[1187840]);     // 1075 => [1187840]
            map.insert(4999, &[2236416]);     // 4999 => [2236416]
            map.insert(4082, &[4333568]);     // 4082 => [4333568]
            map.insert(2825, &[794624]);     // 2825 => [794624]
            map.insert(3943, &[1318912]);     // 3943 => [1318912]
            map.insert(6355, &[2367488]);     // 6355 => [2367488]
            map.insert(1190, &[4464640]);     // 1190 => [4464640]
            map.insert(3408, &[1581056]);     // 3408 => [1581056]
            map.insert(6884, &[2629632]);     // 6884 => [2629632]
            map.insert(1681, &[4726784]);     // 1681 => [4726784]
            map.insert(7818, &[3153920]);     // 7818 => [3153920]
            map.insert(767, &[5251072]);     // 767 => [5251072]
            map.insert(5451, &[6299648]);     // 5451 => [6299648]
            map.insert(1078, &[114688]);     // 1078 => [114688]
            map.insert(412, &[180224]);     // 412 => [180224]
            map.insert(2760, &[311296]);     // 2760 => [311296]
            map.insert(2303, &[573440]);     // 2303 => [573440]
            map.insert(3217, &[1097728]);     // 3217 => [1097728]
            map.insert(6949, &[2146304]);     // 6949 => [2146304]
            map.insert(1872, &[4243456]);     // 1872 => [4243456]
            map.insert(841, &[212992]);     // 841 => [212992]
            map.insert(2077, &[344064]);     // 2077 => [344064]
            map.insert(2602, &[606208]);     // 2602 => [606208]
            map.insert(3652, &[1130496]);     // 3652 => [1130496]
            map.insert(6640, &[2179072]);     // 6640 => [2179072]
            map.insert(1413, &[4276224]);     // 1413 => [4276224]
            map.insert(3511, &[409600]);     // 3511 => [409600]
            map.insert(3968, &[671744]);     // 3968 => [671744]
            map.insert(3054, &[1196032]);     // 3054 => [1196032]
            map.insert(7258, &[2244608]);     // 7258 => [2244608]
            map.insert(47, &[4341760]);     // 47 => [4341760]
            map.insert(1236, &[802816]);     // 1236 => [802816]
            map.insert(186, &[1327104]);     // 186 => [1327104]
            map.insert(5902, &[2375680]);     // 5902 => [2375680]
            map.insert(2939, &[4472832]);     // 2939 => [4472832]
            map.insert(653, &[1589248]);     // 653 => [1589248]
            map.insert(5433, &[2637824]);     // 5433 => [2637824]
            map.insert(2380, &[4734976]);     // 2380 => [4734976]
            map.insert(4439, &[3162112]);     // 4439 => [3162112]
            map.insert(3362, &[5259264]);     // 3362 => [5259264]
            map.insert(6806, &[6307840]);     // 6806 => [6307840]
            map.insert(2156, &[229376]);     // 2156 => [229376]
            map.insert(824, &[360448]);     // 824 => [360448]
            map.insert(271, &[622592]);     // 271 => [622592]
            map.insert(1377, &[1146880]);     // 1377 => [1146880]
            map.insert(4821, &[2195456]);     // 4821 => [2195456]
            map.insert(3744, &[4292608]);     // 3744 => [4292608]
            map.insert(1682, &[425984]);     // 1682 => [425984]
            map.insert(1189, &[688128]);     // 1189 => [688128]
            map.insert(203, &[1212416]);     // 203 => [1212416]
            map.insert(6015, &[2260992]);     // 6015 => [2260992]
            map.insert(2826, &[4358144]);     // 2826 => [4358144]
            map.insert(4081, &[819200]);     // 4081 => [819200]
            map.insert(2975, &[1343488]);     // 2975 => [1343488]
            map.insert(7211, &[2392064]);     // 7211 => [2392064]
            map.insert(94, &[4489216]);     // 94 => [4489216]
            map.insert(2472, &[1605632]);     // 2472 => [1605632]
            map.insert(7708, &[2654208]);     // 7708 => [2654208]
            map.insert(617, &[4751360]);     // 617 => [4751360]
            map.insert(6770, &[3178496]);     // 6770 => [3178496]
            map.insert(1543, &[5275648]);     // 1543 => [5275648]
            map.insert(4531, &[6324224]);     // 4531 => [6324224]
            map.insert(1095, &[458752]);     // 1095 => [458752]
            map.insert(1648, &[720896]);     // 1648 => [720896]
            map.insert(542, &[1245184]);     // 542 => [1245184]
            map.insert(5546, &[2293760]);     // 5546 => [2293760]
            map.insert(2527, &[4390912]);     // 2527 => [4390912]
            map.insert(3364, &[851968]);     // 3364 => [851968]
            map.insert(2378, &[1376256]);     // 2378 => [1376256]
            map.insert(7934, &[2424832]);     // 7934 => [2424832]
            map.insert(651, &[4521984]);     // 651 => [4521984]
            map.insert(2941, &[1638400]);     // 2941 => [1638400]
            map.insert(7369, &[2686976]);     // 7369 => [2686976]
            map.insert(188, &[4784128]);     // 188 => [4784128]
            map.insert(6311, &[3211264]);     // 6311 => [3211264]
            map.insert(1234, &[5308416]);     // 1234 => [5308416]
            map.insert(4966, &[6356992]);     // 4966 => [6356992]
            map.insert(2190, &[917504]);     // 2190 => [917504]
            map.insert(3296, &[1441792]);     // 3296 => [1441792]
            map.insert(6996, &[2490368]);     // 6996 => [2490368]
            map.insert(1825, &[4587520]);     // 1825 => [4587520]
            map.insert(3799, &[1703936]);     // 3799 => [1703936]
            map.insert(6499, &[2752512]);     // 6499 => [2752512]
            map.insert(1302, &[4849664]);     // 1302 => [4849664]
            map.insert(7437, &[3276800]);     // 7437 => [3276800]
            map.insert(376, &[5373952]);     // 376 => [5373952]
            map.insert(5836, &[6422528]);     // 5836 => [6422528]
            map.insert(1411, &[1835008]);     // 1411 => [1835008]
            map.insert(4663, &[2883584]);     // 4663 => [2883584]
            map.insert(3650, &[4980736]);     // 3650 => [4980736]
            map.insert(5721, &[3407872]);     // 5721 => [3407872]
            map.insert(2604, &[5505024]);     // 2604 => [5505024]
            map.insert(7576, &[6553600]);     // 7576 => [6553600]
            map.insert(5230, &[3670016]);     // 5230 => [3670016]
            map.insert(2075, &[5767168]);     // 2075 => [5767168]
            map.insert(8111, &[6815744]);     // 8111 => [6815744]
            map.insert(7105, &[7340032]);     // 7105 => [7340032]
            map.insert(15, &[15]);     // 15 => [15]
            map.insert(23, &[23]);     // 23 => [23]
            map.insert(39, &[39]);     // 39 => [39]
            map.insert(71, &[71]);     // 71 => [71]
            map.insert(135, &[135]);     // 135 => [135]
            map.insert(263, &[263]);     // 263 => [263]
            map.insert(519, &[519]);     // 519 => [519]
            map.insert(1031, &[1031]);     // 1031 => [1031]
            map.insert(2055, &[2055]);     // 2055 => [2055]
            map.insert(1176, &[4103]);     // 1176 => [4103]
            map.insert(2361, &[8199]);     // 2361 => [8199]
            map.insert(1764, &[16391]);     // 1764 => [16391]
            map.insert(3521, &[32775]);     // 3521 => [32775]
            map.insert(3860, &[65543]);     // 3860 => [65543]
            map.insert(2750, &[131079]);     // 2750 => [131079]
            map.insert(490, &[262151]);     // 490 => [262151]
            map.insert(989, &[524295]);     // 989 => [524295]
            map.insert(1971, &[1048583]);     // 1971 => [1048583]
            map.insert(4103, &[2097159]);     // 4103 => [2097159]
            map.insert(3186, &[4194311]);     // 3186 => [4194311]
            map.insert(27, &[27]);     // 27 => [27]
            map.insert(43, &[43]);     // 43 => [43]
            map.insert(75, &[75]);     // 75 => [75]
            map.insert(139, &[139]);     // 139 => [139]
            map.insert(267, &[267]);     // 267 => [267]
            map.insert(523, &[523]);     // 523 => [523]
            map.insert(1035, &[1035]);     // 1035 => [1035]
            map.insert(2059, &[2059]);     // 2059 => [2059]
            map.insert(1172, &[4107]);     // 1172 => [4107]
            map.insert(2357, &[8203]);     // 2357 => [8203]
            map.insert(1768, &[16395]);     // 1768 => [16395]
            map.insert(3533, &[32779]);     // 3533 => [32779]
            map.insert(3864, &[65547]);     // 3864 => [65547]
            map.insert(2738, &[131083]);     // 2738 => [131083]
            map.insert(486, &[262155]);     // 486 => [262155]
            map.insert(977, &[524299]);     // 977 => [524299]
            map.insert(1983, &[1048587]);     // 1983 => [1048587]
            map.insert(4107, &[2097163]);     // 4107 => [2097163]
            map.insert(3198, &[4194315]);     // 3198 => [4194315]
            map.insert(51, &[51]);     // 51 => [51]
            map.insert(83, &[83]);     // 83 => [83]
            map.insert(147, &[147]);     // 147 => [147]
            map.insert(275, &[275]);     // 275 => [275]
            map.insert(531, &[531]);     // 531 => [531]
            map.insert(1043, &[1043]);     // 1043 => [1043]
            map.insert(2067, &[2067]);     // 2067 => [2067]
            map.insert(1164, &[4115]);     // 1164 => [4115]
            map.insert(2349, &[8211]);     // 2349 => [8211]
            map.insert(1776, &[16403]);     // 1776 => [16403]
            map.insert(3541, &[32787]);     // 3541 => [32787]
            map.insert(3840, &[65555]);     // 3840 => [65555]
            map.insert(2730, &[131091]);     // 2730 => [131091]
            map.insert(510, &[262163]);     // 510 => [262163]
            map.insert(969, &[524307]);     // 969 => [524307]
            map.insert(1959, &[1048595]);     // 1959 => [1048595]
            map.insert(4115, &[2097171]);     // 4115 => [2097171]
            map.insert(3174, &[4194323]);     // 3174 => [4194323]
            map.insert(99, &[99]);     // 99 => [99]
            map.insert(163, &[163]);     // 163 => [163]
            map.insert(291, &[291]);     // 291 => [291]
            map.insert(547, &[547]);     // 547 => [547]
            map.insert(1059, &[1059]);     // 1059 => [1059]
            map.insert(2083, &[2083]);     // 2083 => [2083]
            map.insert(1212, &[4131]);     // 1212 => [4131]
            map.insert(2333, &[8227]);     // 2333 => [8227]
            map.insert(1728, &[16419]);     // 1728 => [16419]
            map.insert(3557, &[32803]);     // 3557 => [32803]
            map.insert(3888, &[65571]);     // 3888 => [65571]
            map.insert(2714, &[131107]);     // 2714 => [131107]
            map.insert(462, &[262179]);     // 462 => [262179]
            map.insert(1017, &[524323]);     // 1017 => [524323]
            map.insert(1943, &[1048611]);     // 1943 => [1048611]
            map.insert(4131, &[2097187]);     // 4131 => [2097187]
            map.insert(3158, &[4194339]);     // 3158 => [4194339]
            map.insert(195, &[195]);     // 195 => [195]
            map.insert(323, &[323]);     // 323 => [323]
            map.insert(579, &[579]);     // 579 => [579]
            map.insert(1091, &[1091]);     // 1091 => [1091]
            map.insert(2115, &[2115]);     // 2115 => [2115]
            map.insert(1244, &[4163]);     // 1244 => [4163]
            map.insert(2429, &[8259]);     // 2429 => [8259]
            map.insert(1696, &[16451]);     // 1696 => [16451]
            map.insert(3461, &[32835]);     // 3461 => [32835]
            map.insert(3920, &[65603]);     // 3920 => [65603]
            map.insert(2810, &[131139]);     // 2810 => [131139]
            map.insert(430, &[262211]);     // 430 => [262211]
            map.insert(921, &[524355]);     // 921 => [524355]
            map.insert(2039, &[1048643]);     // 2039 => [1048643]
            map.insert(4163, &[2097219]);     // 4163 => [2097219]
            map.insert(3126, &[4194371]);     // 3126 => [4194371]
            map.insert(387, &[387]);     // 387 => [387]
            map.insert(643, &[643]);     // 643 => [643]
            map.insert(1155, &[1155]);     // 1155 => [1155]
            map.insert(2179, &[2179]);     // 2179 => [2179]
            map.insert(1052, &[4227]);     // 1052 => [4227]
            map.insert(2493, &[8323]);     // 2493 => [8323]
            map.insert(1632, &[16515]);     // 1632 => [16515]
            map.insert(3397, &[32899]);     // 3397 => [32899]
            map.insert(3984, &[65667]);     // 3984 => [65667]
            map.insert(2618, &[131203]);     // 2618 => [131203]
            map.insert(366, &[262275]);     // 366 => [262275]
            map.insert(857, &[524419]);     // 857 => [524419]
            map.insert(1847, &[1048707]);     // 1847 => [1048707]
            map.insert(4227, &[2097283]);     // 4227 => [2097283]
            map.insert(3318, &[4194435]);     // 3318 => [4194435]
            map.insert(771, &[771]);     // 771 => [771]
            map.insert(1283, &[1283]);     // 1283 => [1283]
            map.insert(2307, &[2307]);     // 2307 => [2307]
            map.insert(1436, &[4355]);     // 1436 => [4355]
            map.insert(2109, &[8451]);     // 2109 => [8451]
            map.insert(2016, &[16643]);     // 2016 => [16643]
            map.insert(3269, &[33027]);     // 3269 => [33027]
            map.insert(3600, &[65795]);     // 3600 => [65795]
            map.insert(3002, &[131331]);     // 3002 => [131331]
            map.insert(238, &[262403]);     // 238 => [262403]
            map.insert(729, &[524547]);     // 729 => [524547]
            map.insert(1719, &[1048835]);     // 1719 => [1048835]
            map.insert(4355, &[2097411]);     // 4355 => [2097411]
            map.insert(3446, &[4194563]);     // 3446 => [4194563]
            map.insert(1539, &[1539]);     // 1539 => [1539]
            map.insert(2563, &[2563]);     // 2563 => [2563]
            map.insert(1692, &[4611]);     // 1692 => [4611]
            map.insert(2877, &[8707]);     // 2877 => [8707]
            map.insert(1248, &[16899]);     // 1248 => [16899]
            map.insert(4037, &[33283]);     // 4037 => [33283]
            map.insert(3344, &[66051]);     // 3344 => [66051]
            map.insert(2234, &[131587]);     // 2234 => [131587]
            map.insert(1006, &[262659]);     // 1006 => [262659]
            map.insert(473, &[524803]);     // 473 => [524803]
            map.insert(1463, &[1049091]);     // 1463 => [1049091]
            map.insert(4611, &[2097667]);     // 4611 => [2097667]
            map.insert(3702, &[4194819]);     // 3702 => [4194819]
            map.insert(3075, &[3075]);     // 3075 => [3075]
            map.insert(156, &[5123]);     // 156 => [5123]
            map.insert(3389, &[9219]);     // 3389 => [9219]
            map.insert(736, &[17411]);     // 736 => [17411]
            map.insert(2501, &[33795]);     // 2501 => [33795]
            map.insert(2832, &[66563]);     // 2832 => [66563]
            map.insert(3770, &[132099]);     // 3770 => [132099]
            map.insert(1518, &[263171]);     // 1518 => [263171]
            map.insert(2009, &[525315]);     // 2009 => [525315]
            map.insert(951, &[1049603]);     // 951 => [1049603]
            map.insert(5123, &[2098179]);     // 5123 => [2098179]
            map.insert(2166, &[4195331]);     // 2166 => [4195331]
            map.insert(3228, &[6147]);     // 3228 => [6147]
            map.insert(317, &[10243]);     // 317 => [10243]
            map.insert(3808, &[18435]);     // 3808 => [18435]
            map.insert(1477, &[34819]);     // 1477 => [34819]
            map.insert(1808, &[67587]);     // 1808 => [67587]
            map.insert(698, &[133123]);     // 698 => [133123]
            map.insert(2542, &[264195]);     // 2542 => [264195]
            map.insert(3033, &[526339]);     // 3033 => [526339]
            map.insert(4023, &[1050627]);     // 4023 => [1050627]
            map.insert(6147, &[2099203]);     // 6147 => [2099203]
            map.insert(1142, &[4196355]);     // 1142 => [4196355]
            map.insert(3490, &[12291]);     // 3490 => [12291]
            map.insert(639, &[20483]);     // 639 => [20483]
            map.insert(2394, &[36867]);     // 2394 => [36867]
            map.insert(2959, &[69635]);     // 2959 => [69635]
            map.insert(3621, &[135171]);     // 3621 => [135171]
            map.insert(1393, &[266243]);     // 1393 => [266243]
            map.insert(1862, &[528387]);     // 1862 => [528387]
            map.insert(808, &[1052675]);     // 808 => [1052675]
            map.insert(5276, &[2101251]);     // 5276 => [2101251]
            map.insert(2281, &[4198403]);     // 2281 => [4198403]
            map.insert(4062, &[24579]);     // 4062 => [24579]
            map.insert(1275, &[40963]);     // 1275 => [40963]
            map.insert(1582, &[73731]);     // 1582 => [73731]
            map.insert(900, &[139267]);     // 900 => [139267]
            map.insert(2256, &[270339]);     // 2256 => [270339]
            map.insert(2791, &[532483]);     // 2791 => [532483]
            map.insert(3721, &[1056771]);     // 3721 => [1056771]
            map.insert(6461, &[2105347]);     // 6461 => [2105347]
            map.insert(1352, &[4202499]);     // 1352 => [4202499]
            map.insert(2854, &[49155]);     // 2854 => [49155]
            map.insert(2547, &[81923]);     // 2547 => [81923]
            map.insert(3161, &[147459]);     // 3161 => [147459]
            map.insert(1805, &[278531]);     // 1805 => [278531]
            map.insert(1338, &[540675]);     // 1338 => [540675]
            map.insert(340, &[1064963]);     // 340 => [1064963]
            map.insert(5856, &[2113539]);     // 5856 => [2113539]
            map.insert(2709, &[4210691]);     // 2709 => [4210691]
            map.insert(726, &[98307]);     // 726 => [98307]
            map.insert(1916, &[163843]);     // 1916 => [163843]
            map.insert(3112, &[294915]);     // 3112 => [294915]
            map.insert(3615, &[557059]);     // 3615 => [557059]
            map.insert(2673, &[1081347]);     // 2673 => [1081347]
            map.insert(7621, &[2129923]);     // 7621 => [2129923]
            map.insert(432, &[4227075]);     // 432 => [4227075]
            map.insert(1449, &[196611]);     // 1449 => [196611]
            map.insert(3837, &[327683]);     // 3837 => [327683]
            map.insert(3274, &[589827]);     // 3274 => [589827]
            map.insert(2212, &[1114115]);     // 2212 => [1114115]
            map.insert(7952, &[2162691]);     // 7952 => [2162691]
            map.insert(869, &[4259843]);     // 869 => [4259843]
            map.insert(2903, &[393219]);     // 2903 => [393219]
            map.insert(2400, &[655363]);     // 2400 => [655363]
            map.insert(3342, &[1179651]);     // 3342 => [1179651]
            map.insert(6842, &[2228227]);     // 6842 => [2228227]
            map.insert(1743, &[4325379]);     // 1743 => [4325379]
            map.insert(564, &[786435]);     // 564 => [786435]
            map.insert(1626, &[1310723]);     // 1626 => [1310723]
            map.insert(4590, &[2359299]);     // 4590 => [2359299]
            map.insert(3483, &[4456451]);     // 3483 => [4456451]
            map.insert(1133, &[1572867]);     // 1133 => [1572867]
            map.insert(5081, &[2621443]);     // 5081 => [2621443]
            map.insert(4012, &[4718595]);     // 4012 => [4718595]
            map.insert(6071, &[3145731]);     // 6071 => [3145731]
            map.insert(3010, &[5242883]);     // 3010 => [5242883]
            map.insert(7286, &[6291459]);     // 7286 => [6291459]
            map.insert(29, &[29]);     // 29 => [29]
            map.insert(45, &[45]);     // 45 => [45]
            map.insert(77, &[77]);     // 77 => [77]
            map.insert(141, &[141]);     // 141 => [141]
            map.insert(269, &[269]);     // 269 => [269]
            map.insert(525, &[525]);     // 525 => [525]
            map.insert(1037, &[1037]);     // 1037 => [1037]
            map.insert(2061, &[2061]);     // 2061 => [2061]
            map.insert(1170, &[4109]);     // 1170 => [4109]
            map.insert(2355, &[8205]);     // 2355 => [8205]
            map.insert(1774, &[16397]);     // 1774 => [16397]
            map.insert(3531, &[32781]);     // 3531 => [32781]
            map.insert(3870, &[65549]);     // 3870 => [65549]
            map.insert(2740, &[131085]);     // 2740 => [131085]
            map.insert(480, &[262157]);     // 480 => [262157]
            map.insert(983, &[524301]);     // 983 => [524301]
            map.insert(1977, &[1048589]);     // 1977 => [1048589]
            map.insert(4109, &[2097165]);     // 4109 => [2097165]
            map.insert(3192, &[4194317]);     // 3192 => [4194317]
            map.insert(53, &[53]);     // 53 => [53]
            map.insert(85, &[85]);     // 85 => [85]
            map.insert(149, &[149]);     // 149 => [149]
            map.insert(277, &[277]);     // 277 => [277]
            map.insert(533, &[533]);     // 533 => [533]
            map.insert(1045, &[1045]);     // 1045 => [1045]
            map.insert(2069, &[2069]);     // 2069 => [2069]
            map.insert(1162, &[4117]);     // 1162 => [4117]
            map.insert(2347, &[8213]);     // 2347 => [8213]
            map.insert(1782, &[16405]);     // 1782 => [16405]
            map.insert(3539, &[32789]);     // 3539 => [32789]
            map.insert(3846, &[65557]);     // 3846 => [65557]
            map.insert(2732, &[131093]);     // 2732 => [131093]
            map.insert(504, &[262165]);     // 504 => [262165]
            map.insert(975, &[524309]);     // 975 => [524309]
            map.insert(1953, &[1048597]);     // 1953 => [1048597]
            map.insert(4117, &[2097173]);     // 4117 => [2097173]
            map.insert(3168, &[4194325]);     // 3168 => [4194325]
            map.insert(101, &[101]);     // 101 => [101]
            map.insert(165, &[165]);     // 165 => [165]
            map.insert(293, &[293]);     // 293 => [293]
            map.insert(549, &[549]);     // 549 => [549]
            map.insert(1061, &[1061]);     // 1061 => [1061]
            map.insert(2085, &[2085]);     // 2085 => [2085]
            map.insert(1210, &[4133]);     // 1210 => [4133]
            map.insert(2331, &[8229]);     // 2331 => [8229]
            map.insert(1734, &[16421]);     // 1734 => [16421]
            map.insert(3555, &[32805]);     // 3555 => [32805]
            map.insert(3894, &[65573]);     // 3894 => [65573]
            map.insert(2716, &[131109]);     // 2716 => [131109]
            map.insert(456, &[262181]);     // 456 => [262181]
            map.insert(1023, &[524325]);     // 1023 => [524325]
            map.insert(1937, &[1048613]);     // 1937 => [1048613]
            map.insert(4133, &[2097189]);     // 4133 => [2097189]
            map.insert(3152, &[4194341]);     // 3152 => [4194341]
            map.insert(197, &[197]);     // 197 => [197]
            map.insert(325, &[325]);     // 325 => [325]
            map.insert(581, &[581]);     // 581 => [581]
            map.insert(1093, &[1093]);     // 1093 => [1093]
            map.insert(2117, &[2117]);     // 2117 => [2117]
            map.insert(1242, &[4165]);     // 1242 => [4165]
            map.insert(2427, &[8261]);     // 2427 => [8261]
            map.insert(1702, &[16453]);     // 1702 => [16453]
            map.insert(3459, &[32837]);     // 3459 => [32837]
            map.insert(3926, &[65605]);     // 3926 => [65605]
            map.insert(2812, &[131141]);     // 2812 => [131141]
            map.insert(424, &[262213]);     // 424 => [262213]
            map.insert(927, &[524357]);     // 927 => [524357]
            map.insert(2033, &[1048645]);     // 2033 => [1048645]
            map.insert(4165, &[2097221]);     // 4165 => [2097221]
            map.insert(3120, &[4194373]);     // 3120 => [4194373]
            map.insert(389, &[389]);     // 389 => [389]
            map.insert(645, &[645]);     // 645 => [645]
            map.insert(1157, &[1157]);     // 1157 => [1157]
            map.insert(2181, &[2181]);     // 2181 => [2181]
            map.insert(1050, &[4229]);     // 1050 => [4229]
            map.insert(2491, &[8325]);     // 2491 => [8325]
            map.insert(1638, &[16517]);     // 1638 => [16517]
            map.insert(3395, &[32901]);     // 3395 => [32901]
            map.insert(3990, &[65669]);     // 3990 => [65669]
            map.insert(2620, &[131205]);     // 2620 => [131205]
            map.insert(360, &[262277]);     // 360 => [262277]
            map.insert(863, &[524421]);     // 863 => [524421]
            map.insert(1841, &[1048709]);     // 1841 => [1048709]
            map.insert(4229, &[2097285]);     // 4229 => [2097285]
            map.insert(3312, &[4194437]);     // 3312 => [4194437]
            map.insert(773, &[773]);     // 773 => [773]
            map.insert(1285, &[1285]);     // 1285 => [1285]
            map.insert(2309, &[2309]);     // 2309 => [2309]
            map.insert(1434, &[4357]);     // 1434 => [4357]
            map.insert(2107, &[8453]);     // 2107 => [8453]
            map.insert(2022, &[16645]);     // 2022 => [16645]
            map.insert(3267, &[33029]);     // 3267 => [33029]
            map.insert(3606, &[65797]);     // 3606 => [65797]
            map.insert(3004, &[131333]);     // 3004 => [131333]
            map.insert(232, &[262405]);     // 232 => [262405]
            map.insert(735, &[524549]);     // 735 => [524549]
            map.insert(1713, &[1048837]);     // 1713 => [1048837]
            map.insert(4357, &[2097413]);     // 4357 => [2097413]
            map.insert(3440, &[4194565]);     // 3440 => [4194565]
            map.insert(1541, &[1541]);     // 1541 => [1541]
            map.insert(2565, &[2565]);     // 2565 => [2565]
            map.insert(1690, &[4613]);     // 1690 => [4613]
            map.insert(2875, &[8709]);     // 2875 => [8709]
            map.insert(1254, &[16901]);     // 1254 => [16901]
            map.insert(4035, &[33285]);     // 4035 => [33285]
            map.insert(3350, &[66053]);     // 3350 => [66053]
            map.insert(2236, &[131589]);     // 2236 => [131589]
            map.insert(1000, &[262661]);     // 1000 => [262661]
            map.insert(479, &[524805]);     // 479 => [524805]
            map.insert(1457, &[1049093]);     // 1457 => [1049093]
            map.insert(4613, &[2097669]);     // 4613 => [2097669]
            map.insert(3696, &[4194821]);     // 3696 => [4194821]
            map.insert(3077, &[3077]);     // 3077 => [3077]
            map.insert(154, &[5125]);     // 154 => [5125]
            map.insert(3387, &[9221]);     // 3387 => [9221]
            map.insert(742, &[17413]);     // 742 => [17413]
            map.insert(2499, &[33797]);     // 2499 => [33797]
            map.insert(2838, &[66565]);     // 2838 => [66565]
            map.insert(3772, &[132101]);     // 3772 => [132101]
            map.insert(1512, &[263173]);     // 1512 => [263173]
            map.insert(2015, &[525317]);     // 2015 => [525317]
            map.insert(945, &[1049605]);     // 945 => [1049605]
            map.insert(5125, &[2098181]);     // 5125 => [2098181]
            map.insert(2160, &[4195333]);     // 2160 => [4195333]
            map.insert(3226, &[6149]);     // 3226 => [6149]
            map.insert(315, &[10245]);     // 315 => [10245]
            map.insert(3814, &[18437]);     // 3814 => [18437]
            map.insert(1475, &[34821]);     // 1475 => [34821]
            map.insert(1814, &[67589]);     // 1814 => [67589]
            map.insert(700, &[133125]);     // 700 => [133125]
            map.insert(2536, &[264197]);     // 2536 => [264197]
            map.insert(3039, &[526341]);     // 3039 => [526341]
            map.insert(4017, &[1050629]);     // 4017 => [1050629]
            map.insert(6149, &[2099205]);     // 6149 => [2099205]
            map.insert(1136, &[4196357]);     // 1136 => [4196357]
            map.insert(3492, &[12293]);     // 3492 => [12293]
            map.insert(633, &[20485]);     // 633 => [20485]
            map.insert(2396, &[36869]);     // 2396 => [36869]
            map.insert(2953, &[69637]);     // 2953 => [69637]
            map.insert(3619, &[135173]);     // 3619 => [135173]
            map.insert(1399, &[266245]);     // 1399 => [266245]
            map.insert(1856, &[528389]);     // 1856 => [528389]
            map.insert(814, &[1052677]);     // 814 => [1052677]
            map.insert(5274, &[2101253]);     // 5274 => [2101253]
            map.insert(2287, &[4198405]);     // 2287 => [4198405]
            map.insert(4056, &[24581]);     // 4056 => [24581]
            map.insert(1277, &[40965]);     // 1277 => [40965]
            map.insert(1576, &[73733]);     // 1576 => [73733]
            map.insert(898, &[139269]);     // 898 => [139269]
            map.insert(2262, &[270341]);     // 2262 => [270341]
            map.insert(2785, &[532485]);     // 2785 => [532485]
            map.insert(3727, &[1056773]);     // 3727 => [1056773]
            map.insert(6459, &[2105349]);     // 6459 => [2105349]
            map.insert(1358, &[4202501]);     // 1358 => [4202501]
            map.insert(2848, &[49157]);     // 2848 => [49157]
            map.insert(2549, &[81925]);     // 2549 => [81925]
            map.insert(3167, &[147461]);     // 3167 => [147461]
            map.insert(1803, &[278533]);     // 1803 => [278533]
            map.insert(1340, &[540677]);     // 1340 => [540677]
            map.insert(338, &[1064965]);     // 338 => [1064965]
            map.insert(5862, &[2113541]);     // 5862 => [2113541]
            map.insert(2707, &[4210693]);     // 2707 => [4210693]
            map.insert(720, &[98309]);     // 720 => [98309]
            map.insert(1914, &[163845]);     // 1914 => [163845]
            map.insert(3118, &[294917]);     // 3118 => [294917]
            map.insert(3609, &[557061]);     // 3609 => [557061]
            map.insert(2679, &[1081349]);     // 2679 => [1081349]
            map.insert(7619, &[2129925]);     // 7619 => [2129925]
            map.insert(438, &[4227077]);     // 438 => [4227077]
            map.insert(1455, &[196613]);     // 1455 => [196613]
            map.insert(3835, &[327685]);     // 3835 => [327685]
            map.insert(3276, &[589829]);     // 3276 => [589829]
            map.insert(2210, &[1114117]);     // 2210 => [1114117]
            map.insert(7958, &[2162693]);     // 7958 => [2162693]
            map.insert(867, &[4259845]);     // 867 => [4259845]
            map.insert(2897, &[393221]);     // 2897 => [393221]
            map.insert(2406, &[655365]);     // 2406 => [655365]
            map.insert(3336, &[1179653]);     // 3336 => [1179653]
            map.insert(6844, &[2228229]);     // 6844 => [2228229]
            map.insert(1737, &[4325381]);     // 1737 => [4325381]
            map.insert(562, &[786437]);     // 562 => [786437]
            map.insert(1628, &[1310725]);     // 1628 => [1310725]
            map.insert(4584, &[2359301]);     // 4584 => [2359301]
            map.insert(3485, &[4456453]);     // 3485 => [4456453]
            map.insert(1131, &[1572869]);     // 1131 => [1572869]
            map.insert(5087, &[2621445]);     // 5087 => [2621445]
            map.insert(4010, &[4718597]);     // 4010 => [4718597]
            map.insert(6065, &[3145733]);     // 6065 => [3145733]
            map.insert(3012, &[5242885]);     // 3012 => [5242885]
            map.insert(7280, &[6291461]);     // 7280 => [6291461]
            map.insert(57, &[57]);     // 57 => [57]
            map.insert(89, &[89]);     // 89 => [89]
            map.insert(153, &[153]);     // 153 => [153]
            map.insert(281, &[281]);     // 281 => [281]
            map.insert(537, &[537]);     // 537 => [537]
            map.insert(1049, &[1049]);     // 1049 => [1049]
            map.insert(2073, &[2073]);     // 2073 => [2073]
            map.insert(1158, &[4121]);     // 1158 => [4121]
            map.insert(2343, &[8217]);     // 2343 => [8217]
            map.insert(1786, &[16409]);     // 1786 => [16409]
            map.insert(3551, &[32793]);     // 3551 => [32793]
            map.insert(3850, &[65561]);     // 3850 => [65561]
            map.insert(2720, &[131097]);     // 2720 => [131097]
            map.insert(500, &[262169]);     // 500 => [262169]
            map.insert(963, &[524313]);     // 963 => [524313]
            map.insert(1965, &[1048601]);     // 1965 => [1048601]
            map.insert(4121, &[2097177]);     // 4121 => [2097177]
            map.insert(3180, &[4194329]);     // 3180 => [4194329]
            map.insert(105, &[105]);     // 105 => [105]
            map.insert(169, &[169]);     // 169 => [169]
            map.insert(297, &[297]);     // 297 => [297]
            map.insert(553, &[553]);     // 553 => [553]
            map.insert(1065, &[1065]);     // 1065 => [1065]
            map.insert(2089, &[2089]);     // 2089 => [2089]
            map.insert(1206, &[4137]);     // 1206 => [4137]
            map.insert(2327, &[8233]);     // 2327 => [8233]
            map.insert(1738, &[16425]);     // 1738 => [16425]
            map.insert(3567, &[32809]);     // 3567 => [32809]
            map.insert(3898, &[65577]);     // 3898 => [65577]
            map.insert(2704, &[131113]);     // 2704 => [131113]
            map.insert(452, &[262185]);     // 452 => [262185]
            map.insert(1011, &[524329]);     // 1011 => [524329]
            map.insert(1949, &[1048617]);     // 1949 => [1048617]
            map.insert(4137, &[2097193]);     // 4137 => [2097193]
            map.insert(3164, &[4194345]);     // 3164 => [4194345]
            map.insert(201, &[201]);     // 201 => [201]
            map.insert(329, &[329]);     // 329 => [329]
            map.insert(585, &[585]);     // 585 => [585]
            map.insert(1097, &[1097]);     // 1097 => [1097]
            map.insert(2121, &[2121]);     // 2121 => [2121]
            map.insert(1238, &[4169]);     // 1238 => [4169]
            map.insert(2423, &[8265]);     // 2423 => [8265]
            map.insert(1706, &[16457]);     // 1706 => [16457]
            map.insert(3471, &[32841]);     // 3471 => [32841]
            map.insert(3930, &[65609]);     // 3930 => [65609]
            map.insert(2800, &[131145]);     // 2800 => [131145]
            map.insert(420, &[262217]);     // 420 => [262217]
            map.insert(915, &[524361]);     // 915 => [524361]
            map.insert(2045, &[1048649]);     // 2045 => [1048649]
            map.insert(4169, &[2097225]);     // 4169 => [2097225]
            map.insert(3132, &[4194377]);     // 3132 => [4194377]
            map.insert(393, &[393]);     // 393 => [393]
            map.insert(649, &[649]);     // 649 => [649]
            map.insert(1161, &[1161]);     // 1161 => [1161]
            map.insert(2185, &[2185]);     // 2185 => [2185]
            map.insert(1046, &[4233]);     // 1046 => [4233]
            map.insert(2487, &[8329]);     // 2487 => [8329]
            map.insert(1642, &[16521]);     // 1642 => [16521]
            map.insert(3407, &[32905]);     // 3407 => [32905]
            map.insert(3994, &[65673]);     // 3994 => [65673]
            map.insert(2608, &[131209]);     // 2608 => [131209]
            map.insert(356, &[262281]);     // 356 => [262281]
            map.insert(851, &[524425]);     // 851 => [524425]
            map.insert(1853, &[1048713]);     // 1853 => [1048713]
            map.insert(4233, &[2097289]);     // 4233 => [2097289]
            map.insert(3324, &[4194441]);     // 3324 => [4194441]
            map.insert(777, &[777]);     // 777 => [777]
            map.insert(1289, &[1289]);     // 1289 => [1289]
            map.insert(2313, &[2313]);     // 2313 => [2313]
            map.insert(1430, &[4361]);     // 1430 => [4361]
            map.insert(2103, &[8457]);     // 2103 => [8457]
            map.insert(2026, &[16649]);     // 2026 => [16649]
            map.insert(3279, &[33033]);     // 3279 => [33033]
            map.insert(3610, &[65801]);     // 3610 => [65801]
            map.insert(2992, &[131337]);     // 2992 => [131337]
            map.insert(228, &[262409]);     // 228 => [262409]
            map.insert(723, &[524553]);     // 723 => [524553]
            map.insert(1725, &[1048841]);     // 1725 => [1048841]
            map.insert(4361, &[2097417]);     // 4361 => [2097417]
            map.insert(3452, &[4194569]);     // 3452 => [4194569]
            map.insert(1545, &[1545]);     // 1545 => [1545]
            map.insert(2569, &[2569]);     // 2569 => [2569]
            map.insert(1686, &[4617]);     // 1686 => [4617]
            map.insert(2871, &[8713]);     // 2871 => [8713]
            map.insert(1258, &[16905]);     // 1258 => [16905]
            map.insert(4047, &[33289]);     // 4047 => [33289]
            map.insert(3354, &[66057]);     // 3354 => [66057]
            map.insert(2224, &[131593]);     // 2224 => [131593]
            map.insert(996, &[262665]);     // 996 => [262665]
            map.insert(467, &[524809]);     // 467 => [524809]
            map.insert(1469, &[1049097]);     // 1469 => [1049097]
            map.insert(4617, &[2097673]);     // 4617 => [2097673]
            map.insert(3708, &[4194825]);     // 3708 => [4194825]
            map.insert(3081, &[3081]);     // 3081 => [3081]
            map.insert(150, &[5129]);     // 150 => [5129]
            map.insert(3383, &[9225]);     // 3383 => [9225]
            map.insert(746, &[17417]);     // 746 => [17417]
            map.insert(2511, &[33801]);     // 2511 => [33801]
            map.insert(2842, &[66569]);     // 2842 => [66569]
            map.insert(3760, &[132105]);     // 3760 => [132105]
            map.insert(1508, &[263177]);     // 1508 => [263177]
            map.insert(2003, &[525321]);     // 2003 => [525321]
            map.insert(957, &[1049609]);     // 957 => [1049609]
            map.insert(5129, &[2098185]);     // 5129 => [2098185]
            map.insert(2172, &[4195337]);     // 2172 => [4195337]
            map.insert(3222, &[6153]);     // 3222 => [6153]
            map.insert(311, &[10249]);     // 311 => [10249]
            map.insert(3818, &[18441]);     // 3818 => [18441]
            map.insert(1487, &[34825]);     // 1487 => [34825]
            map.insert(1818, &[67593]);     // 1818 => [67593]
            map.insert(688, &[133129]);     // 688 => [133129]
            map.insert(2532, &[264201]);     // 2532 => [264201]
            map.insert(3027, &[526345]);     // 3027 => [526345]
            map.insert(4029, &[1050633]);     // 4029 => [1050633]
            map.insert(6153, &[2099209]);     // 6153 => [2099209]
            map.insert(1148, &[4196361]);     // 1148 => [4196361]
            map.insert(3496, &[12297]);     // 3496 => [12297]
            map.insert(629, &[20489]);     // 629 => [20489]
            map.insert(2384, &[36873]);     // 2384 => [36873]
            map.insert(2949, &[69641]);     // 2949 => [69641]
            map.insert(3631, &[135177]);     // 3631 => [135177]
            map.insert(1403, &[266249]);     // 1403 => [266249]
            map.insert(1868, &[528393]);     // 1868 => [528393]
            map.insert(802, &[1052681]);     // 802 => [1052681]
            map.insert(5270, &[2101257]);     // 5270 => [2101257]
            map.insert(2275, &[4198409]);     // 2275 => [4198409]
            map.insert(4052, &[24585]);     // 4052 => [24585]
            map.insert(1265, &[40969]);     // 1265 => [40969]
            map.insert(1572, &[73737]);     // 1572 => [73737]
            map.insert(910, &[139273]);     // 910 => [139273]
            map.insert(2266, &[270345]);     // 2266 => [270345]
            map.insert(2797, &[532489]);     // 2797 => [532489]
            map.insert(3715, &[1056777]);     // 3715 => [1056777]
            map.insert(6455, &[2105353]);     // 6455 => [2105353]
            map.insert(1346, &[4202505]);     // 1346 => [4202505]
            map.insert(2860, &[49161]);     // 2860 => [49161]
            map.insert(2553, &[81929]);     // 2553 => [81929]
            map.insert(3155, &[147465]);     // 3155 => [147465]
            map.insert(1799, &[278537]);     // 1799 => [278537]
            map.insert(1328, &[540681]);     // 1328 => [540681]
            map.insert(350, &[1064969]);     // 350 => [1064969]
            map.insert(5866, &[2113545]);     // 5866 => [2113545]
            map.insert(2719, &[4210697]);     // 2719 => [4210697]
            map.insert(732, &[98313]);     // 732 => [98313]
            map.insert(1910, &[163849]);     // 1910 => [163849]
            map.insert(3106, &[294921]);     // 3106 => [294921]
            map.insert(3605, &[557065]);     // 3605 => [557065]
            map.insert(2683, &[1081353]);     // 2683 => [1081353]
            map.insert(7631, &[2129929]);     // 7631 => [2129929]
            map.insert(442, &[4227081]);     // 442 => [4227081]
            map.insert(1443, &[196617]);     // 1443 => [196617]
            map.insert(3831, &[327689]);     // 3831 => [327689]
            map.insert(3264, &[589833]);     // 3264 => [589833]
            map.insert(2222, &[1114121]);     // 2222 => [1114121]
            map.insert(7962, &[2162697]);     // 7962 => [2162697]
            map.insert(879, &[4259849]);     // 879 => [4259849]
            map.insert(2909, &[393225]);     // 2909 => [393225]
            map.insert(2410, &[655369]);     // 2410 => [655369]
            map.insert(3332, &[1179657]);     // 3332 => [1179657]
            map.insert(6832, &[2228233]);     // 6832 => [2228233]
            map.insert(1733, &[4325385]);     // 1733 => [4325385]
            map.insert(574, &[786441]);     // 574 => [786441]
            map.insert(1616, &[1310729]);     // 1616 => [1310729]
            map.insert(4580, &[2359305]);     // 4580 => [2359305]
            map.insert(3473, &[4456457]);     // 3473 => [4456457]
            map.insert(1127, &[1572873]);     // 1127 => [1572873]
            map.insert(5075, &[2621449]);     // 5075 => [2621449]
            map.insert(4006, &[4718601]);     // 4006 => [4718601]
            map.insert(6077, &[3145737]);     // 6077 => [3145737]
            map.insert(3016, &[5242889]);     // 3016 => [5242889]
            map.insert(7292, &[6291465]);     // 7292 => [6291465]
            map.insert(113, &[113]);     // 113 => [113]
            map.insert(177, &[177]);     // 177 => [177]
            map.insert(305, &[305]);     // 305 => [305]
            map.insert(561, &[561]);     // 561 => [561]
            map.insert(1073, &[1073]);     // 1073 => [1073]
            map.insert(2097, &[2097]);     // 2097 => [2097]
            map.insert(1198, &[4145]);     // 1198 => [4145]
            map.insert(2319, &[8241]);     // 2319 => [8241]
            map.insert(1746, &[16433]);     // 1746 => [16433]
            map.insert(3575, &[32817]);     // 3575 => [32817]
            map.insert(3874, &[65585]);     // 3874 => [65585]
            map.insert(2696, &[131121]);     // 2696 => [131121]
            map.insert(476, &[262193]);     // 476 => [262193]
            map.insert(1003, &[524337]);     // 1003 => [524337]
            map.insert(1925, &[1048625]);     // 1925 => [1048625]
            map.insert(4145, &[2097201]);     // 4145 => [2097201]
            map.insert(3140, &[4194353]);     // 3140 => [4194353]
            map.insert(209, &[209]);     // 209 => [209]
            map.insert(337, &[337]);     // 337 => [337]
            map.insert(593, &[593]);     // 593 => [593]
            map.insert(1105, &[1105]);     // 1105 => [1105]
            map.insert(2129, &[2129]);     // 2129 => [2129]
            map.insert(1230, &[4177]);     // 1230 => [4177]
            map.insert(2415, &[8273]);     // 2415 => [8273]
            map.insert(1714, &[16465]);     // 1714 => [16465]
            map.insert(3479, &[32849]);     // 3479 => [32849]
            map.insert(3906, &[65617]);     // 3906 => [65617]
            map.insert(2792, &[131153]);     // 2792 => [131153]
            map.insert(444, &[262225]);     // 444 => [262225]
            map.insert(907, &[524369]);     // 907 => [524369]
            map.insert(2021, &[1048657]);     // 2021 => [1048657]
            map.insert(4177, &[2097233]);     // 4177 => [2097233]
            map.insert(3108, &[4194385]);     // 3108 => [4194385]
            map.insert(401, &[401]);     // 401 => [401]
            map.insert(657, &[657]);     // 657 => [657]
            map.insert(1169, &[1169]);     // 1169 => [1169]
            map.insert(2193, &[2193]);     // 2193 => [2193]
            map.insert(1038, &[4241]);     // 1038 => [4241]
            map.insert(2479, &[8337]);     // 2479 => [8337]
            map.insert(1650, &[16529]);     // 1650 => [16529]
            map.insert(3415, &[32913]);     // 3415 => [32913]
            map.insert(3970, &[65681]);     // 3970 => [65681]
            map.insert(2600, &[131217]);     // 2600 => [131217]
            map.insert(380, &[262289]);     // 380 => [262289]
            map.insert(843, &[524433]);     // 843 => [524433]
            map.insert(1829, &[1048721]);     // 1829 => [1048721]
            map.insert(4241, &[2097297]);     // 4241 => [2097297]
            map.insert(3300, &[4194449]);     // 3300 => [4194449]
            map.insert(785, &[785]);     // 785 => [785]
            map.insert(1297, &[1297]);     // 1297 => [1297]
            map.insert(2321, &[2321]);     // 2321 => [2321]
            map.insert(1422, &[4369]);     // 1422 => [4369]
            map.insert(2095, &[8465]);     // 2095 => [8465]
            map.insert(2034, &[16657]);     // 2034 => [16657]
            map.insert(3287, &[33041]);     // 3287 => [33041]
            map.insert(3586, &[65809]);     // 3586 => [65809]
            map.insert(2984, &[131345]);     // 2984 => [131345]
            map.insert(252, &[262417]);     // 252 => [262417]
            map.insert(715, &[524561]);     // 715 => [524561]
            map.insert(1701, &[1048849]);     // 1701 => [1048849]
            map.insert(4369, &[2097425]);     // 4369 => [2097425]
            map.insert(3428, &[4194577]);     // 3428 => [4194577]
            map.insert(1553, &[1553]);     // 1553 => [1553]
            map.insert(2577, &[2577]);     // 2577 => [2577]
            map.insert(1678, &[4625]);     // 1678 => [4625]
            map.insert(2863, &[8721]);     // 2863 => [8721]
            map.insert(1266, &[16913]);     // 1266 => [16913]
            map.insert(4055, &[33297]);     // 4055 => [33297]
            map.insert(3330, &[66065]);     // 3330 => [66065]
            map.insert(2216, &[131601]);     // 2216 => [131601]
            map.insert(1020, &[262673]);     // 1020 => [262673]
            map.insert(459, &[524817]);     // 459 => [524817]
            map.insert(1445, &[1049105]);     // 1445 => [1049105]
            map.insert(4625, &[2097681]);     // 4625 => [2097681]
            map.insert(3684, &[4194833]);     // 3684 => [4194833]
            map.insert(3089, &[3089]);     // 3089 => [3089]
            map.insert(142, &[5137]);     // 142 => [5137]
            map.insert(3375, &[9233]);     // 3375 => [9233]
            map.insert(754, &[17425]);     // 754 => [17425]
            map.insert(2519, &[33809]);     // 2519 => [33809]
            map.insert(2818, &[66577]);     // 2818 => [66577]
            map.insert(3752, &[132113]);     // 3752 => [132113]
            map.insert(1532, &[263185]);     // 1532 => [263185]
            map.insert(1995, &[525329]);     // 1995 => [525329]
            map.insert(933, &[1049617]);     // 933 => [1049617]
            map.insert(5137, &[2098193]);     // 5137 => [2098193]
            map.insert(2148, &[4195345]);     // 2148 => [4195345]
            map.insert(3214, &[6161]);     // 3214 => [6161]
            map.insert(303, &[10257]);     // 303 => [10257]
            map.insert(3826, &[18449]);     // 3826 => [18449]
            map.insert(1495, &[34833]);     // 1495 => [34833]
            map.insert(1794, &[67601]);     // 1794 => [67601]
            map.insert(680, &[133137]);     // 680 => [133137]
            map.insert(2556, &[264209]);     // 2556 => [264209]
            map.insert(3019, &[526353]);     // 3019 => [526353]
            map.insert(4005, &[1050641]);     // 4005 => [1050641]
            map.insert(6161, &[2099217]);     // 6161 => [2099217]
            map.insert(1124, &[4196369]);     // 1124 => [4196369]
            map.insert(3504, &[12305]);     // 3504 => [12305]
            map.insert(621, &[20497]);     // 621 => [20497]
            map.insert(2376, &[36881]);     // 2376 => [36881]
            map.insert(2973, &[69649]);     // 2973 => [69649]
            map.insert(3639, &[135185]);     // 3639 => [135185]
            map.insert(1379, &[266257]);     // 1379 => [266257]
            map.insert(1876, &[528401]);     // 1876 => [528401]
            map.insert(826, &[1052689]);     // 826 => [1052689]
            map.insert(5262, &[2101265]);     // 5262 => [2101265]
            map.insert(2299, &[4198417]);     // 2299 => [4198417]
            map.insert(4044, &[24593]);     // 4044 => [24593]
            map.insert(1257, &[40977]);     // 1257 => [40977]
            map.insert(1596, &[73745]);     // 1596 => [73745]
            map.insert(918, &[139281]);     // 918 => [139281]
            map.insert(2242, &[270353]);     // 2242 => [270353]
            map.insert(2805, &[532497]);     // 2805 => [532497]
            map.insert(3739, &[1056785]);     // 3739 => [1056785]
            map.insert(6447, &[2105361]);     // 6447 => [2105361]
            map.insert(1370, &[4202513]);     // 1370 => [4202513]
            map.insert(2868, &[49169]);     // 2868 => [49169]
            map.insert(2529, &[81937]);     // 2529 => [81937]
            map.insert(3147, &[147473]);     // 3147 => [147473]
            map.insert(1823, &[278545]);     // 1823 => [278545]
            map.insert(1320, &[540689]);     // 1320 => [540689]
            map.insert(326, &[1064977]);     // 326 => [1064977]
            map.insert(5874, &[2113553]);     // 5874 => [2113553]
            map.insert(2695, &[4210705]);     // 2695 => [4210705]
            map.insert(708, &[98321]);     // 708 => [98321]
            map.insert(1902, &[163857]);     // 1902 => [163857]
            map.insert(3130, &[294929]);     // 3130 => [294929]
            map.insert(3597, &[557073]);     // 3597 => [557073]
            map.insert(2659, &[1081361]);     // 2659 => [1081361]
            map.insert(7639, &[2129937]);     // 7639 => [2129937]
            map.insert(418, &[4227089]);     // 418 => [4227089]
            map.insert(1467, &[196625]);     // 1467 => [196625]
            map.insert(3823, &[327697]);     // 3823 => [327697]
            map.insert(3288, &[589841]);     // 3288 => [589841]
            map.insert(2230, &[1114129]);     // 2230 => [1114129]
            map.insert(7938, &[2162705]);     // 7938 => [2162705]
            map.insert(887, &[4259857]);     // 887 => [4259857]
            map.insert(2885, &[393233]);     // 2885 => [393233]
            map.insert(2418, &[655377]);     // 2418 => [655377]
            map.insert(3356, &[1179665]);     // 3356 => [1179665]
            map.insert(6824, &[2228241]);     // 6824 => [2228241]
            map.insert(1757, &[4325393]);     // 1757 => [4325393]
            map.insert(550, &[786449]);     // 550 => [786449]
            map.insert(1608, &[1310737]);     // 1608 => [1310737]
            map.insert(4604, &[2359313]);     // 4604 => [2359313]
            map.insert(3465, &[4456465]);     // 3465 => [4456465]
            map.insert(1151, &[1572881]);     // 1151 => [1572881]
            map.insert(5067, &[2621457]);     // 5067 => [2621457]
            map.insert(4030, &[4718609]);     // 4030 => [4718609]
            map.insert(6053, &[3145745]);     // 6053 => [3145745]
            map.insert(3024, &[5242897]);     // 3024 => [5242897]
            map.insert(7268, &[6291473]);     // 7268 => [6291473]
            map.insert(225, &[225]);     // 225 => [225]
            map.insert(353, &[353]);     // 353 => [353]
            map.insert(609, &[609]);     // 609 => [609]
            map.insert(1121, &[1121]);     // 1121 => [1121]
            map.insert(2145, &[2145]);     // 2145 => [2145]
            map.insert(1278, &[4193]);     // 1278 => [4193]
            map.insert(2399, &[8289]);     // 2399 => [8289]
            map.insert(1666, &[16481]);     // 1666 => [16481]
            map.insert(3495, &[32865]);     // 3495 => [32865]
            map.insert(3954, &[65633]);     // 3954 => [65633]
            map.insert(2776, &[131169]);     // 2776 => [131169]
            map.insert(396, &[262241]);     // 396 => [262241]
            map.insert(955, &[524385]);     // 955 => [524385]
            map.insert(2005, &[1048673]);     // 2005 => [1048673]
            map.insert(4193, &[2097249]);     // 4193 => [2097249]
            map.insert(3092, &[4194401]);     // 3092 => [4194401]
            map.insert(417, &[417]);     // 417 => [417]
            map.insert(673, &[673]);     // 673 => [673]
            map.insert(1185, &[1185]);     // 1185 => [1185]
            map.insert(2209, &[2209]);     // 2209 => [2209]
            map.insert(1086, &[4257]);     // 1086 => [4257]
            map.insert(2463, &[8353]);     // 2463 => [8353]
            map.insert(1602, &[16545]);     // 1602 => [16545]
            map.insert(3431, &[32929]);     // 3431 => [32929]
            map.insert(4018, &[65697]);     // 4018 => [65697]
            map.insert(2584, &[131233]);     // 2584 => [131233]
            map.insert(332, &[262305]);     // 332 => [262305]
            map.insert(891, &[524449]);     // 891 => [524449]
            map.insert(1813, &[1048737]);     // 1813 => [1048737]
            map.insert(4257, &[2097313]);     // 4257 => [2097313]
            map.insert(3284, &[4194465]);     // 3284 => [4194465]
            map.insert(801, &[801]);     // 801 => [801]
            map.insert(1313, &[1313]);     // 1313 => [1313]
            map.insert(2337, &[2337]);     // 2337 => [2337]
            map.insert(1470, &[4385]);     // 1470 => [4385]
            map.insert(2079, &[8481]);     // 2079 => [8481]
            map.insert(1986, &[16673]);     // 1986 => [16673]
            map.insert(3303, &[33057]);     // 3303 => [33057]
            map.insert(3634, &[65825]);     // 3634 => [65825]
            map.insert(2968, &[131361]);     // 2968 => [131361]
            map.insert(204, &[262433]);     // 204 => [262433]
            map.insert(763, &[524577]);     // 763 => [524577]
            map.insert(1685, &[1048865]);     // 1685 => [1048865]
            map.insert(4385, &[2097441]);     // 4385 => [2097441]
            map.insert(3412, &[4194593]);     // 3412 => [4194593]
            map.insert(1569, &[1569]);     // 1569 => [1569]
            map.insert(2593, &[2593]);     // 2593 => [2593]
            map.insert(1726, &[4641]);     // 1726 => [4641]
            map.insert(2847, &[8737]);     // 2847 => [8737]
            map.insert(1218, &[16929]);     // 1218 => [16929]
            map.insert(4071, &[33313]);     // 4071 => [33313]
            map.insert(3378, &[66081]);     // 3378 => [66081]
            map.insert(2200, &[131617]);     // 2200 => [131617]
            map.insert(972, &[262689]);     // 972 => [262689]
            map.insert(507, &[524833]);     // 507 => [524833]
            map.insert(1429, &[1049121]);     // 1429 => [1049121]
            map.insert(4641, &[2097697]);     // 4641 => [2097697]
            map.insert(3668, &[4194849]);     // 3668 => [4194849]
            map.insert(3105, &[3105]);     // 3105 => [3105]
            map.insert(190, &[5153]);     // 190 => [5153]
            map.insert(3359, &[9249]);     // 3359 => [9249]
            map.insert(706, &[17441]);     // 706 => [17441]
            map.insert(2535, &[33825]);     // 2535 => [33825]
            map.insert(2866, &[66593]);     // 2866 => [66593]
            map.insert(3736, &[132129]);     // 3736 => [132129]
            map.insert(1484, &[263201]);     // 1484 => [263201]
            map.insert(2043, &[525345]);     // 2043 => [525345]
            map.insert(917, &[1049633]);     // 917 => [1049633]
            map.insert(5153, &[2098209]);     // 5153 => [2098209]
            map.insert(2132, &[4195361]);     // 2132 => [4195361]
            map.insert(3262, &[6177]);     // 3262 => [6177]
            map.insert(287, &[10273]);     // 287 => [10273]
            map.insert(3778, &[18465]);     // 3778 => [18465]
            map.insert(1511, &[34849]);     // 1511 => [34849]
            map.insert(1842, &[67617]);     // 1842 => [67617]
            map.insert(664, &[133153]);     // 664 => [133153]
            map.insert(2508, &[264225]);     // 2508 => [264225]
            map.insert(3067, &[526369]);     // 3067 => [526369]
            map.insert(3989, &[1050657]);     // 3989 => [1050657]
            map.insert(6177, &[2099233]);     // 6177 => [2099233]
            map.insert(1108, &[4196385]);     // 1108 => [4196385]
            map.insert(3456, &[12321]);     // 3456 => [12321]
            map.insert(605, &[20513]);     // 605 => [20513]
            map.insert(2424, &[36897]);     // 2424 => [36897]
            map.insert(2989, &[69665]);     // 2989 => [69665]
            map.insert(3591, &[135201]);     // 3591 => [135201]
            map.insert(1363, &[266273]);     // 1363 => [266273]
            map.insert(1892, &[528417]);     // 1892 => [528417]
            map.insert(778, &[1052705]);     // 778 => [1052705]
            map.insert(5310, &[2101281]);     // 5310 => [2101281]
            map.insert(2251, &[4198433]);     // 2251 => [4198433]
            map.insert(4092, &[24609]);     // 4092 => [24609]
            map.insert(1241, &[40993]);     // 1241 => [40993]
            map.insert(1548, &[73761]);     // 1548 => [73761]
            map.insert(934, &[139297]);     // 934 => [139297]
            map.insert(2290, &[270369]);     // 2290 => [270369]
            map.insert(2757, &[532513]);     // 2757 => [532513]
            map.insert(3755, &[1056801]);     // 3755 => [1056801]
            map.insert(6431, &[2105377]);     // 6431 => [2105377]
            map.insert(1386, &[4202529]);     // 1386 => [4202529]
            map.insert(2820, &[49185]);     // 2820 => [49185]
            map.insert(2513, &[81953]);     // 2513 => [81953]
            map.insert(3195, &[147489]);     // 3195 => [147489]
            map.insert(1839, &[278561]);     // 1839 => [278561]
            map.insert(1304, &[540705]);     // 1304 => [540705]
            map.insert(374, &[1064993]);     // 374 => [1064993]
            map.insert(5826, &[2113569]);     // 5826 => [2113569]
            map.insert(2743, &[4210721]);     // 2743 => [4210721]
            map.insert(756, &[98337]);     // 756 => [98337]
            map.insert(1886, &[163873]);     // 1886 => [163873]
            map.insert(3082, &[294945]);     // 3082 => [294945]
            map.insert(3645, &[557089]);     // 3645 => [557089]
            map.insert(2643, &[1081377]);     // 2643 => [1081377]
            map.insert(7655, &[2129953]);     // 7655 => [2129953]
            map.insert(402, &[4227105]);     // 402 => [4227105]
            map.insert(1419, &[196641]);     // 1419 => [196641]
            map.insert(3807, &[327713]);     // 3807 => [327713]
            map.insert(3304, &[589857]);     // 3304 => [589857]
            map.insert(2182, &[1114145]);     // 2182 => [1114145]
            map.insert(7986, &[2162721]);     // 7986 => [2162721]
            map.insert(839, &[4259873]);     // 839 => [4259873]
            map.insert(2933, &[393249]);     // 2933 => [393249]
            map.insert(2370, &[655393]);     // 2370 => [655393]
            map.insert(3372, &[1179681]);     // 3372 => [1179681]
            map.insert(6808, &[2228257]);     // 6808 => [2228257]
            map.insert(1773, &[4325409]);     // 1773 => [4325409]
            map.insert(534, &[786465]);     // 534 => [786465]
            map.insert(1656, &[1310753]);     // 1656 => [1310753]
            map.insert(4556, &[2359329]);     // 4556 => [2359329]
            map.insert(3513, &[4456481]);     // 3513 => [4456481]
            map.insert(1103, &[1572897]);     // 1103 => [1572897]
            map.insert(5115, &[2621473]);     // 5115 => [2621473]
            map.insert(3982, &[4718625]);     // 3982 => [4718625]
            map.insert(6037, &[3145761]);     // 6037 => [3145761]
            map.insert(3040, &[5242913]);     // 3040 => [5242913]
            map.insert(7252, &[6291489]);     // 7252 => [6291489]
            map.insert(449, &[449]);     // 449 => [449]
            map.insert(705, &[705]);     // 705 => [705]
            map.insert(1217, &[1217]);     // 1217 => [1217]
            map.insert(2241, &[2241]);     // 2241 => [2241]
            map.insert(1118, &[4289]);     // 1118 => [4289]
            map.insert(2559, &[8385]);     // 2559 => [8385]
            map.insert(1570, &[16577]);     // 1570 => [16577]
            map.insert(3335, &[32961]);     // 3335 => [32961]
            map.insert(4050, &[65729]);     // 4050 => [65729]
            map.insert(2680, &[131265]);     // 2680 => [131265]
            map.insert(300, &[262337]);     // 300 => [262337]
            map.insert(795, &[524481]);     // 795 => [524481]
            map.insert(1909, &[1048769]);     // 1909 => [1048769]
            map.insert(4289, &[2097345]);     // 4289 => [2097345]
            map.insert(3252, &[4194497]);     // 3252 => [4194497]
            map.insert(833, &[833]);     // 833 => [833]
            map.insert(1345, &[1345]);     // 1345 => [1345]
            map.insert(2369, &[2369]);     // 2369 => [2369]
            map.insert(1502, &[4417]);     // 1502 => [4417]
            map.insert(2175, &[8513]);     // 2175 => [8513]
            map.insert(1954, &[16705]);     // 1954 => [16705]
            map.insert(3207, &[33089]);     // 3207 => [33089]
            map.insert(3666, &[65857]);     // 3666 => [65857]
            map.insert(3064, &[131393]);     // 3064 => [131393]
            map.insert(172, &[262465]);     // 172 => [262465]
            map.insert(667, &[524609]);     // 667 => [524609]
            map.insert(1781, &[1048897]);     // 1781 => [1048897]
            map.insert(4417, &[2097473]);     // 4417 => [2097473]
            map.insert(3380, &[4194625]);     // 3380 => [4194625]
            map.insert(1601, &[1601]);     // 1601 => [1601]
            map.insert(2625, &[2625]);     // 2625 => [2625]
            map.insert(1758, &[4673]);     // 1758 => [4673]
            map.insert(2943, &[8769]);     // 2943 => [8769]
            map.insert(1186, &[16961]);     // 1186 => [16961]
            map.insert(3975, &[33345]);     // 3975 => [33345]
            map.insert(3410, &[66113]);     // 3410 => [66113]
            map.insert(2296, &[131649]);     // 2296 => [131649]
            map.insert(940, &[262721]);     // 940 => [262721]
            map.insert(411, &[524865]);     // 411 => [524865]
            map.insert(1525, &[1049153]);     // 1525 => [1049153]
            map.insert(4673, &[2097729]);     // 4673 => [2097729]
            map.insert(3636, &[4194881]);     // 3636 => [4194881]
            map.insert(3137, &[3137]);     // 3137 => [3137]
            map.insert(222, &[5185]);     // 222 => [5185]
            map.insert(3455, &[9281]);     // 3455 => [9281]
            map.insert(674, &[17473]);     // 674 => [17473]
            map.insert(2439, &[33857]);     // 2439 => [33857]
            map.insert(2898, &[66625]);     // 2898 => [66625]
            map.insert(3832, &[132161]);     // 3832 => [132161]
            map.insert(1452, &[263233]);     // 1452 => [263233]
            map.insert(1947, &[525377]);     // 1947 => [525377]
            map.insert(1013, &[1049665]);     // 1013 => [1049665]
            map.insert(5185, &[2098241]);     // 5185 => [2098241]
            map.insert(2100, &[4195393]);     // 2100 => [4195393]
            map.insert(3294, &[6209]);     // 3294 => [6209]
            map.insert(383, &[10305]);     // 383 => [10305]
            map.insert(3746, &[18497]);     // 3746 => [18497]
            map.insert(1415, &[34881]);     // 1415 => [34881]
            map.insert(1874, &[67649]);     // 1874 => [67649]
            map.insert(760, &[133185]);     // 760 => [133185]
            map.insert(2476, &[264257]);     // 2476 => [264257]
            map.insert(2971, &[526401]);     // 2971 => [526401]
            map.insert(4085, &[1050689]);     // 4085 => [1050689]
            map.insert(6209, &[2099265]);     // 6209 => [2099265]
            map.insert(1076, &[4196417]);     // 1076 => [4196417]
            map.insert(3552, &[12353]);     // 3552 => [12353]
            map.insert(573, &[20545]);     // 573 => [20545]
            map.insert(2328, &[36929]);     // 2328 => [36929]
            map.insert(3021, &[69697]);     // 3021 => [69697]
            map.insert(3687, &[135233]);     // 3687 => [135233]
            map.insert(1331, &[266305]);     // 1331 => [266305]
            map.insert(1796, &[528449]);     // 1796 => [528449]
            map.insert(874, &[1052737]);     // 874 => [1052737]
            map.insert(5342, &[2101313]);     // 5342 => [2101313]
            map.insert(2219, &[4198465]);     // 2219 => [4198465]
            map.insert(3996, &[24641]);     // 3996 => [24641]
            map.insert(1209, &[41025]);     // 1209 => [41025]
            map.insert(1644, &[73793]);     // 1644 => [73793]
            map.insert(966, &[139329]);     // 966 => [139329]
            map.insert(2194, &[270401]);     // 2194 => [270401]
            map.insert(2725, &[532545]);     // 2725 => [532545]
            map.insert(3787, &[1056833]);     // 3787 => [1056833]
            map.insert(6527, &[2105409]);     // 6527 => [2105409]
            map.insert(1290, &[4202561]);     // 1290 => [4202561]
            map.insert(2916, &[49217]);     // 2916 => [49217]
            map.insert(2481, &[81985]);     // 2481 => [81985]
            map.insert(3099, &[147521]);     // 3099 => [147521]
            map.insert(1871, &[278593]);     // 1871 => [278593]
            map.insert(1400, &[540737]);     // 1400 => [540737]
            map.insert(278, &[1065025]);     // 278 => [1065025]
            map.insert(5794, &[2113601]);     // 5794 => [2113601]
            map.insert(2775, &[4210753]);     // 2775 => [4210753]
            map.insert(660, &[98369]);     // 660 => [98369]
            map.insert(1854, &[163905]);     // 1854 => [163905]
            map.insert(3178, &[294977]);     // 3178 => [294977]
            map.insert(3677, &[557121]);     // 3677 => [557121]
            map.insert(2611, &[1081409]);     // 2611 => [1081409]
            map.insert(7559, &[2129985]);     // 7559 => [2129985]
            map.insert(498, &[4227137]);     // 498 => [4227137]
            map.insert(1515, &[196673]);     // 1515 => [196673]
            map.insert(3775, &[327745]);     // 3775 => [327745]
            map.insert(3208, &[589889]);     // 3208 => [589889]
            map.insert(2278, &[1114177]);     // 2278 => [1114177]
            map.insert(8018, &[2162753]);     // 8018 => [2162753]
            map.insert(807, &[4259905]);     // 807 => [4259905]
            map.insert(2837, &[393281]);     // 2837 => [393281]
            map.insert(2338, &[655425]);     // 2338 => [655425]
            map.insert(3404, &[1179713]);     // 3404 => [1179713]
            map.insert(6904, &[2228289]);     // 6904 => [2228289]
            map.insert(1677, &[4325441]);     // 1677 => [4325441]
            map.insert(630, &[786497]);     // 630 => [786497]
            map.insert(1560, &[1310785]);     // 1560 => [1310785]
            map.insert(4524, &[2359361]);     // 4524 => [2359361]
            map.insert(3545, &[4456513]);     // 3545 => [4456513]
            map.insert(1071, &[1572929]);     // 1071 => [1572929]
            map.insert(5019, &[2621505]);     // 5019 => [2621505]
            map.insert(4078, &[4718657]);     // 4078 => [4718657]
            map.insert(6133, &[3145793]);     // 6133 => [3145793]
            map.insert(2944, &[5242945]);     // 2944 => [5242945]
            map.insert(7220, &[6291521]);     // 7220 => [6291521]
            map.insert(897, &[897]);     // 897 => [897]
            map.insert(1409, &[1409]);     // 1409 => [1409]
            map.insert(2433, &[2433]);     // 2433 => [2433]
            map.insert(1310, &[4481]);     // 1310 => [4481]
            map.insert(2239, &[8577]);     // 2239 => [8577]
            map.insert(1890, &[16769]);     // 1890 => [16769]
            map.insert(3143, &[33153]);     // 3143 => [33153]
            map.insert(3730, &[65921]);     // 3730 => [65921]
            map.insert(2872, &[131457]);     // 2872 => [131457]
            map.insert(108, &[262529]);     // 108 => [262529]
            map.insert(603, &[524673]);     // 603 => [524673]
            map.insert(1589, &[1048961]);     // 1589 => [1048961]
            map.insert(4481, &[2097537]);     // 4481 => [2097537]
            map.insert(3572, &[4194689]);     // 3572 => [4194689]
            map.insert(1665, &[1665]);     // 1665 => [1665]
            map.insert(2689, &[2689]);     // 2689 => [2689]
            map.insert(1566, &[4737]);     // 1566 => [4737]
            map.insert(3007, &[8833]);     // 3007 => [8833]
            map.insert(1122, &[17025]);     // 1122 => [17025]
            map.insert(3911, &[33409]);     // 3911 => [33409]
            map.insert(3474, &[66177]);     // 3474 => [66177]
            map.insert(2104, &[131713]);     // 2104 => [131713]
            map.insert(876, &[262785]);     // 876 => [262785]
            map.insert(347, &[524929]);     // 347 => [524929]
            map.insert(1333, &[1049217]);     // 1333 => [1049217]
            map.insert(4737, &[2097793]);     // 4737 => [2097793]
            map.insert(3828, &[4194945]);     // 3828 => [4194945]
            map.insert(3201, &[3201]);     // 3201 => [3201]
            map.insert(30, &[5249]);     // 30 => [5249]
            map.insert(3519, &[9345]);     // 3519 => [9345]
            map.insert(610, &[17537]);     // 610 => [17537]
            map.insert(2375, &[33921]);     // 2375 => [33921]
            map.insert(2962, &[66689]);     // 2962 => [66689]
            map.insert(3640, &[132225]);     // 3640 => [132225]
            map.insert(1388, &[263297]);     // 1388 => [263297]
            map.insert(1883, &[525441]);     // 1883 => [525441]
            map.insert(821, &[1049729]);     // 821 => [1049729]
            map.insert(5249, &[2098305]);     // 5249 => [2098305]
            map.insert(2292, &[4195457]);     // 2292 => [4195457]
            map.insert(3102, &[6273]);     // 3102 => [6273]
            map.insert(447, &[10369]);     // 447 => [10369]
            map.insert(3682, &[18561]);     // 3682 => [18561]
            map.insert(1351, &[34945]);     // 1351 => [34945]
            map.insert(1938, &[67713]);     // 1938 => [67713]
            map.insert(568, &[133249]);     // 568 => [133249]
            map.insert(2412, &[264321]);     // 2412 => [264321]
            map.insert(2907, &[526465]);     // 2907 => [526465]
            map.insert(3893, &[1050753]);     // 3893 => [1050753]
            map.insert(6273, &[2099329]);     // 6273 => [2099329]
            map.insert(1268, &[4196481]);     // 1268 => [4196481]
            map.insert(3360, &[12417]);     // 3360 => [12417]
            map.insert(765, &[20609]);     // 765 => [20609]
            map.insert(2520, &[36993]);     // 2520 => [36993]
            map.insert(2829, &[69761]);     // 2829 => [69761]
            map.insert(3751, &[135297]);     // 3751 => [135297]
            map.insert(1523, &[266369]);     // 1523 => [266369]
            map.insert(1988, &[528513]);     // 1988 => [528513]
            map.insert(938, &[1052801]);     // 938 => [1052801]
            map.insert(5150, &[2101377]);     // 5150 => [2101377]
            map.insert(2155, &[4198529]);     // 2155 => [4198529]
            map.insert(3932, &[24705]);     // 3932 => [24705]
            map.insert(1145, &[41089]);     // 1145 => [41089]
            map.insert(1708, &[73857]);     // 1708 => [73857]
            map.insert(774, &[139393]);     // 774 => [139393]
            map.insert(2130, &[270465]);     // 2130 => [270465]
            map.insert(2661, &[532609]);     // 2661 => [532609]
            map.insert(3595, &[1056897]);     // 3595 => [1056897]
            map.insert(6591, &[2105473]);     // 6591 => [2105473]
            map.insert(1482, &[4202625]);     // 1482 => [4202625]
            map.insert(2980, &[49281]);     // 2980 => [49281]
            map.insert(2417, &[82049]);     // 2417 => [82049]
            map.insert(3291, &[147585]);     // 3291 => [147585]
            map.insert(1935, &[278657]);     // 1935 => [278657]
            map.insert(1464, &[540801]);     // 1464 => [540801]
            map.insert(470, &[1065089]);     // 470 => [1065089]
            map.insert(5730, &[2113665]);     // 5730 => [2113665]
            map.insert(2583, &[4210817]);     // 2583 => [4210817]
            map.insert(596, &[98433]);     // 596 => [98433]
            map.insert(2046, &[163969]);     // 2046 => [163969]
            map.insert(3242, &[295041]);     // 3242 => [295041]
            map.insert(3741, &[557185]);     // 3741 => [557185]
            map.insert(2803, &[1081473]);     // 2803 => [1081473]
            map.insert(7495, &[2130049]);     // 7495 => [2130049]
            map.insert(306, &[4227201]);     // 306 => [4227201]
            map.insert(1323, &[196737]);     // 1323 => [196737]
            map.insert(3711, &[327809]);     // 3711 => [327809]
            map.insert(3144, &[589953]);     // 3144 => [589953]
            map.insert(2086, &[1114241]);     // 2086 => [1114241]
            map.insert(8082, &[2162817]);     // 8082 => [2162817]
            map.insert(999, &[4259969]);     // 999 => [4259969]
            map.insert(3029, &[393345]);     // 3029 => [393345]
            map.insert(2530, &[655489]);     // 2530 => [655489]
            map.insert(3468, &[1179777]);     // 3468 => [1179777]
            map.insert(6712, &[2228353]);     // 6712 => [2228353]
            map.insert(1613, &[4325505]);     // 1613 => [4325505]
            map.insert(694, &[786561]);     // 694 => [786561]
            map.insert(1752, &[1310849]);     // 1752 => [1310849]
            map.insert(4460, &[2359425]);     // 4460 => [2359425]
            map.insert(3353, &[4456577]);     // 3353 => [4456577]
            map.insert(1263, &[1572993]);     // 1263 => [1572993]
            map.insert(4955, &[2621569]);     // 4955 => [2621569]
            map.insert(3886, &[4718721]);     // 3886 => [4718721]
            map.insert(5941, &[3145857]);     // 5941 => [3145857]
            map.insert(2880, &[5243009]);     // 2880 => [5243009]
            map.insert(7412, &[6291585]);     // 7412 => [6291585]
            map.insert(1793, &[1793]);     // 1793 => [1793]
            map.insert(2817, &[2817]);     // 2817 => [2817]
            map.insert(1950, &[4865]);     // 1950 => [4865]
            map.insert(2623, &[8961]);     // 2623 => [8961]
            map.insert(1506, &[17153]);     // 1506 => [17153]
            map.insert(3783, &[33537]);     // 3783 => [33537]
            map.insert(3090, &[66305]);     // 3090 => [66305]
            map.insert(2488, &[131841]);     // 2488 => [131841]
            map.insert(748, &[262913]);     // 748 => [262913]
            map.insert(219, &[525057]);     // 219 => [525057]
            map.insert(1205, &[1049345]);     // 1205 => [1049345]
            map.insert(4865, &[2097921]);     // 4865 => [2097921]
            map.insert(3956, &[4195073]);     // 3956 => [4195073]
            map.insert(3329, &[3329]);     // 3329 => [3329]
            map.insert(414, &[5377]);     // 414 => [5377]
            map.insert(3135, &[9473]);     // 3135 => [9473]
            map.insert(994, &[17665]);     // 994 => [17665]
            map.insert(2247, &[34049]);     // 2247 => [34049]
            map.insert(2578, &[66817]);     // 2578 => [66817]
            map.insert(4024, &[132353]);     // 4024 => [132353]
            map.insert(1260, &[263425]);     // 1260 => [263425]
            map.insert(1755, &[525569]);     // 1755 => [525569]
            map.insert(693, &[1049857]);     // 693 => [1049857]
            map.insert(5377, &[2098433]);     // 5377 => [2098433]
            map.insert(2420, &[4195585]);     // 2420 => [4195585]
            map.insert(3486, &[6401]);     // 3486 => [6401]
            map.insert(63, &[10497]);     // 63 => [10497]
            map.insert(4066, &[18689]);     // 4066 => [18689]
            map.insert(1223, &[35073]);     // 1223 => [35073]
            map.insert(1554, &[67841]);     // 1554 => [67841]
            map.insert(952, &[133377]);     // 952 => [133377]
            map.insert(2284, &[264449]);     // 2284 => [264449]
            map.insert(2779, &[526593]);     // 2779 => [526593]
            map.insert(3765, &[1050881]);     // 3765 => [1050881]
            map.insert(6401, &[2099457]);     // 6401 => [2099457]
            map.insert(1396, &[4196609]);     // 1396 => [4196609]
            map.insert(3232, &[12545]);     // 3232 => [12545]
            map.insert(893, &[20737]);     // 893 => [20737]
            map.insert(2136, &[37121]);     // 2136 => [37121]
            map.insert(2701, &[69889]);     // 2701 => [69889]
            map.insert(3879, &[135425]);     // 3879 => [135425]
            map.insert(1139, &[266497]);     // 1139 => [266497]
            map.insert(1604, &[528641]);     // 1604 => [528641]
            map.insert(554, &[1052929]);     // 554 => [1052929]
            map.insert(5534, &[2101505]);     // 5534 => [2101505]
            map.insert(2539, &[4198657]);     // 2539 => [4198657]
            map.insert(3804, &[24833]);     // 3804 => [24833]
            map.insert(1529, &[41217]);     // 1529 => [41217]
            map.insert(1836, &[73985]);     // 1836 => [73985]
            map.insert(646, &[139521]);     // 646 => [139521]
            map.insert(2514, &[270593]);     // 2514 => [270593]
            map.insert(3045, &[532737]);     // 3045 => [532737]
            map.insert(3979, &[1057025]);     // 3979 => [1057025]
            map.insert(6207, &[2105601]);     // 6207 => [2105601]
            map.insert(1098, &[4202753]);     // 1098 => [4202753]
            map.insert(2596, &[49409]);     // 2596 => [49409]
            map.insert(2289, &[82177]);     // 2289 => [82177]
            map.insert(3419, &[147713]);     // 3419 => [147713]
            map.insert(1551, &[278785]);     // 1551 => [278785]
            map.insert(1080, &[540929]);     // 1080 => [540929]
            map.insert(86, &[1065217]);     // 86 => [1065217]
            map.insert(6114, &[2113793]);     // 6114 => [2113793]
            map.insert(2967, &[4210945]);     // 2967 => [4210945]
            map.insert(980, &[98561]);     // 980 => [98561]
            map.insert(1662, &[164097]);     // 1662 => [164097]
            map.insert(3370, &[295169]);     // 3370 => [295169]
            map.insert(3869, &[557313]);     // 3869 => [557313]
            map.insert(2931, &[1081601]);     // 2931 => [1081601]
            map.insert(7367, &[2130177]);     // 7367 => [2130177]
            map.insert(178, &[4227329]);     // 178 => [4227329]
            map.insert(1195, &[196865]);     // 1195 => [196865]
            map.insert(4095, &[327937]);     // 4095 => [327937]
            map.insert(3528, &[590081]);     // 3528 => [590081]
            map.insert(2470, &[1114369]);     // 2470 => [1114369]
            map.insert(7698, &[2162945]);     // 7698 => [2162945]
            map.insert(615, &[4260097]);     // 615 => [4260097]
            map.insert(2645, &[393473]);     // 2645 => [393473]
            map.insert(2146, &[655617]);     // 2146 => [655617]
            map.insert(3084, &[1179905]);     // 3084 => [1179905]
            map.insert(7096, &[2228481]);     // 7096 => [2228481]
            map.insert(1997, &[4325633]);     // 1997 => [4325633]
            map.insert(822, &[786689]);     // 822 => [786689]
            map.insert(1880, &[1310977]);     // 1880 => [1310977]
            map.insert(4332, &[2359553]);     // 4332 => [2359553]
            map.insert(3225, &[4456705]);     // 3225 => [4456705]
            map.insert(1391, &[1573121]);     // 1391 => [1573121]
            map.insert(4827, &[2621697]);     // 4827 => [2621697]
            map.insert(3758, &[4718849]);     // 3758 => [4718849]
            map.insert(5813, &[3145985]);     // 5813 => [3145985]
            map.insert(2752, &[5243137]);     // 2752 => [5243137]
            map.insert(7540, &[6291713]);     // 7540 => [6291713]
            map.insert(3585, &[3585]);     // 3585 => [3585]
            map.insert(670, &[5633]);     // 670 => [5633]
            map.insert(3903, &[9729]);     // 3903 => [9729]
            map.insert(226, &[17921]);     // 226 => [17921]
            map.insert(3015, &[34305]);     // 3015 => [34305]
            map.insert(2322, &[67073]);     // 2322 => [67073]
            map.insert(3256, &[132609]);     // 3256 => [132609]
            map.insert(2028, &[263681]);     // 2028 => [263681]
            map.insert(1499, &[525825]);     // 1499 => [525825]
            map.insert(437, &[1050113]);     // 437 => [1050113]
            map.insert(5633, &[2098689]);     // 5633 => [2098689]
            map.insert(2676, &[4195841]);     // 2676 => [4195841]
            map.insert(3742, &[6657]);     // 3742 => [6657]
            map.insert(831, &[10753]);     // 831 => [10753]
            map.insert(3298, &[18945]);     // 3298 => [18945]
            map.insert(1991, &[35329]);     // 1991 => [35329]
            map.insert(1298, &[68097]);     // 1298 => [68097]
            map.insert(184, &[133633]);     // 184 => [133633]
            map.insert(3052, &[264705]);     // 3052 => [264705]
            map.insert(2523, &[526849]);     // 2523 => [526849]
            map.insert(3509, &[1051137]);     // 3509 => [1051137]
            map.insert(6657, &[2099713]);     // 6657 => [2099713]
            map.insert(1652, &[4196865]);     // 1652 => [4196865]
            map.insert(4000, &[12801]);     // 4000 => [12801]
            map.insert(125, &[20993]);     // 125 => [20993]
            map.insert(2904, &[37377]);     // 2904 => [37377]
            map.insert(2445, &[70145]);     // 2445 => [70145]
            map.insert(3111, &[135681]);     // 3111 => [135681]
            map.insert(1907, &[266753]);     // 1907 => [266753]
            map.insert(1348, &[528897]);     // 1348 => [528897]
            map.insert(298, &[1053185]);     // 298 => [1053185]
            map.insert(5790, &[2101761]);     // 5790 => [2101761]
            map.insert(2795, &[4198913]);     // 2795 => [4198913]
            map.insert(3548, &[25089]);     // 3548 => [25089]
            map.insert(1785, &[41473]);     // 1785 => [41473]
            map.insert(1068, &[74241]);     // 1068 => [74241]
            map.insert(390, &[139777]);     // 390 => [139777]
            map.insert(2770, &[270849]);     // 2770 => [270849]
            map.insert(2277, &[532993]);     // 2277 => [532993]
            map.insert(3211, &[1057281]);     // 3211 => [1057281]
            map.insert(6975, &[2105857]);     // 6975 => [2105857]
            map.insert(1866, &[4203009]);     // 1866 => [4203009]
            map.insert(2340, &[49665]);     // 2340 => [49665]
            map.insert(3057, &[82433]);     // 3057 => [82433]
            map.insert(3675, &[147969]);     // 3675 => [147969]
            map.insert(1295, &[279041]);     // 1295 => [279041]
            map.insert(1848, &[541185]);     // 1848 => [541185]
            map.insert(854, &[1065473]);     // 854 => [1065473]
            map.insert(5346, &[2114049]);     // 5346 => [2114049]
            map.insert(2199, &[4211201]);     // 2199 => [4211201]
            map.insert(212, &[98817]);     // 212 => [98817]
            map.insert(1406, &[164353]);     // 1406 => [164353]
            map.insert(3626, &[295425]);     // 3626 => [295425]
            map.insert(3101, &[557569]);     // 3101 => [557569]
            map.insert(2163, &[1081857]);     // 2163 => [1081857]
            map.insert(8135, &[2130433]);     // 8135 => [2130433]
            map.insert(946, &[4227585]);     // 946 => [4227585]
            map.insert(1963, &[197121]);     // 1963 => [197121]
            map.insert(3327, &[328193]);     // 3327 => [328193]
            map.insert(3784, &[590337]);     // 3784 => [590337]
            map.insert(2726, &[1114625]);     // 2726 => [1114625]
            map.insert(7442, &[2163201]);     // 7442 => [2163201]
            map.insert(359, &[4260353]);     // 359 => [4260353]
            map.insert(2389, &[393729]);     // 2389 => [393729]
            map.insert(2914, &[655873]);     // 2914 => [655873]
            map.insert(3852, &[1180161]);     // 3852 => [1180161]
            map.insert(6328, &[2228737]);     // 6328 => [2228737]
            map.insert(1229, &[4325889]);     // 1229 => [4325889]
            map.insert(54, &[786945]);     // 54 => [786945]
            map.insert(1112, &[1311233]);     // 1112 => [1311233]
            map.insert(5100, &[2359809]);     // 5100 => [2359809]
            map.insert(3993, &[4456961]);     // 3993 => [4456961]
            map.insert(1647, &[1573377]);     // 1647 => [1573377]
            map.insert(4571, &[2621953]);     // 4571 => [2621953]
            map.insert(3502, &[4719105]);     // 3502 => [4719105]
            map.insert(5557, &[3146241]);     // 5557 => [3146241]
            map.insert(2496, &[5243393]);     // 2496 => [5243393]
            map.insert(7796, &[6291969]);     // 7796 => [6291969]
            map.insert(2206, &[7169]);     // 2206 => [7169]
            map.insert(1343, &[11265]);     // 1343 => [11265]
            map.insert(2786, &[19457]);     // 2786 => [19457]
            map.insert(455, &[35841]);     // 455 => [35841]
            map.insert(786, &[68609]);     // 786 => [68609]
            map.insert(1720, &[134145]);     // 1720 => [134145]
            map.insert(3564, &[265217]);     // 3564 => [265217]
            map.insert(4059, &[527361]);     // 4059 => [527361]
            map.insert(2997, &[1051649]);     // 2997 => [1051649]
            map.insert(7169, &[2100225]);     // 7169 => [2100225]
            map.insert(116, &[4197377]);     // 116 => [4197377]
            map.insert(2464, &[13313]);     // 2464 => [13313]
            map.insert(1661, &[21505]);     // 1661 => [21505]
            map.insert(3416, &[37889]);     // 3416 => [37889]
            map.insert(3981, &[70657]);     // 3981 => [70657]
            map.insert(2599, &[136193]);     // 2599 => [136193]
            map.insert(371, &[267265]);     // 371 => [267265]
            map.insert(836, &[529409]);     // 836 => [529409]
            map.insert(1834, &[1053697]);     // 1834 => [1053697]
            map.insert(4254, &[2102273]);     // 4254 => [2102273]
            map.insert(3307, &[4199425]);     // 3307 => [4199425]
            map.insert(3036, &[25601]);     // 3036 => [25601]
            map.insert(249, &[41985]);     // 249 => [41985]
            map.insert(556, &[74753]);     // 556 => [74753]
            map.insert(1926, &[140289]);     // 1926 => [140289]
            map.insert(3282, &[271361]);     // 3282 => [271361]
            map.insert(3813, &[533505]);     // 3813 => [533505]
            map.insert(2699, &[1057793]);     // 2699 => [1057793]
            map.insert(7487, &[2106369]);     // 7487 => [2106369]
            map.insert(330, &[4203521]);     // 330 => [4203521]
            map.insert(3876, &[50177]);     // 3876 => [50177]
            map.insert(3569, &[82945]);     // 3569 => [82945]
            map.insert(2139, &[148481]);     // 2139 => [148481]
            map.insert(783, &[279553]);     // 783 => [279553]
            map.insert(312, &[541697]);     // 312 => [541697]
            map.insert(1366, &[1065985]);     // 1366 => [1065985]
            map.insert(4834, &[2114561]);     // 4834 => [2114561]
            map.insert(3735, &[4211713]);     // 3735 => [4211713]
            map.insert(1748, &[99329]);     // 1748 => [99329]
            map.insert(894, &[164865]);     // 894 => [164865]
            map.insert(2090, &[295937]);     // 2090 => [295937]
            map.insert(2589, &[558081]);     // 2589 => [558081]
            map.insert(3699, &[1082369]);     // 3699 => [1082369]
            map.insert(6599, &[2130945]);     // 6599 => [2130945]
            map.insert(1458, &[4228097]);     // 1458 => [4228097]
            map.insert(427, &[197633]);     // 427 => [197633]
            map.insert(2815, &[328705]);     // 2815 => [328705]
            map.insert(2248, &[590849]);     // 2248 => [590849]
            map.insert(3238, &[1115137]);     // 3238 => [1115137]
            map.insert(6930, &[2163713]);     // 6930 => [2163713]
            map.insert(1895, &[4260865]);     // 1895 => [4260865]
            map.insert(3925, &[394241]);     // 3925 => [394241]
            map.insert(3426, &[656385]);     // 3426 => [656385]
            map.insert(2316, &[1180673]);     // 2316 => [1180673]
            map.insert(7864, &[2229249]);     // 7864 => [2229249]
            map.insert(717, &[4326401]);     // 717 => [4326401]
            map.insert(1590, &[787457]);     // 1590 => [787457]
            map.insert(600, &[1311745]);     // 600 => [1311745]
            map.insert(5612, &[2360321]);     // 5612 => [2360321]
            map.insert(2457, &[4457473]);     // 2457 => [4457473]
            map.insert(111, &[1573889]);     // 111 => [1573889]
            map.insert(6107, &[2622465]);     // 6107 => [2622465]
            map.insert(2990, &[4719617]);     // 2990 => [4719617]
            map.insert(5045, &[3146753]);     // 5045 => [3146753]
            map.insert(4032, &[5243905]);     // 4032 => [5243905]
            map.insert(6260, &[6292481]);     // 6260 => [6292481]
            map.insert(1440, &[14337]);     // 1440 => [14337]
            map.insert(2685, &[22529]);     // 2685 => [22529]
            map.insert(344, &[38913]);     // 344 => [38913]
            map.insert(909, &[71681]);     // 909 => [71681]
            map.insert(1575, &[137217]);     // 1575 => [137217]
            map.insert(3443, &[268289]);     // 3443 => [268289]
            map.insert(3908, &[530433]);     // 3908 => [530433]
            map.insert(2858, &[1054721]);     // 2858 => [1054721]
            map.insert(7326, &[2103297]);     // 7326 => [2103297]
            map.insert(235, &[4200449]);     // 235 => [4200449]
            map.insert(2012, &[26625]);     // 2012 => [26625]
            map.insert(3321, &[43009]);     // 3321 => [43009]
            map.insert(3628, &[75777]);     // 3628 => [75777]
            map.insert(2950, &[141313]);     // 2950 => [141313]
            map.insert(210, &[272385]);     // 210 => [272385]
            map.insert(741, &[534529]);     // 741 => [534529]
            map.insert(1675, &[1058817]);     // 1675 => [1058817]
            map.insert(4415, &[2107393]);     // 4415 => [2107393]
            map.insert(3402, &[4204545]);     // 3402 => [4204545]
            map.insert(804, &[51201]);     // 804 => [51201]
            map.insert(497, &[83969]);     // 497 => [83969]
            map.insert(1115, &[149505]);     // 1115 => [149505]
            map.insert(3855, &[280577]);     // 3855 => [280577]
            map.insert(3384, &[542721]);     // 3384 => [542721]
            map.insert(2390, &[1067009]);     // 2390 => [1067009]
            map.insert(7906, &[2115585]);     // 7906 => [2115585]
            map.insert(663, &[4212737]);     // 663 => [4212737]
            map.insert(2772, &[100353]);     // 2772 => [100353]
            map.insert(3966, &[165889]);     // 3966 => [165889]
            map.insert(1066, &[296961]);     // 1066 => [296961]
            map.insert(1565, &[559105]);     // 1565 => [559105]
            map.insert(627, &[1083393]);     // 627 => [1083393]
            map.insert(5575, &[2131969]);     // 5575 => [2131969]
            map.insert(2482, &[4229121]);     // 2482 => [4229121]
            map.insert(3499, &[198657]);     // 3499 => [198657]
            map.insert(1791, &[329729]);     // 1791 => [329729]
            map.insert(1224, &[591873]);     // 1224 => [591873]
            map.insert(166, &[1116161]);     // 166 => [1116161]
            map.insert(5906, &[2164737]);     // 5906 => [2164737]
            map.insert(2919, &[4261889]);     // 2919 => [4261889]
            map.insert(853, &[395265]);     // 853 => [395265]
            map.insert(354, &[657409]);     // 354 => [657409]
            map.insert(1292, &[1181697]);     // 1292 => [1181697]
            map.insert(4792, &[2230273]);     // 4792 => [2230273]
            map.insert(3789, &[4327425]);     // 3789 => [4327425]
            map.insert(2614, &[788481]);     // 2614 => [788481]
            map.insert(3672, &[1312769]);     // 3672 => [1312769]
            map.insert(6636, &[2361345]);     // 6636 => [2361345]
            map.insert(1433, &[4458497]);     // 1433 => [4458497]
            map.insert(3183, &[1574913]);     // 3183 => [1574913]
            map.insert(7131, &[2623489]);     // 7131 => [2623489]
            map.insert(1966, &[4720641]);     // 1966 => [4720641]
            map.insert(8117, &[3147777]);     // 8117 => [3147777]
            map.insert(960, &[5244929]);     // 960 => [5244929]
            map.insert(5236, &[6293505]);     // 5236 => [6293505]
            map.insert(2883, &[28673]);     // 2883 => [28673]
            map.insert(102, &[45057]);     // 102 => [45057]
            map.insert(691, &[77825]);     // 691 => [77825]
            map.insert(1817, &[143361]);     // 1817 => [143361]
            map.insert(3149, &[274433]);     // 3149 => [274433]
            map.insert(3706, &[536577]);     // 3706 => [536577]
            map.insert(2580, &[1060865]);     // 2580 => [1060865]
            map.insert(7584, &[2109441]);     // 7584 => [2109441]
            map.insert(469, &[4206593]);     // 469 => [4206593]
            map.insert(4027, &[53249]);     // 4027 => [53249]
            map.insert(3438, &[86017]);     // 3438 => [86017]
            map.insert(2244, &[151553]);     // 2244 => [151553]
            map.insert(912, &[282625]);     // 912 => [282625]
            map.insert(423, &[544769]);     // 423 => [544769]
            map.insert(1481, &[1069057]);     // 1481 => [1069057]
            map.insert(4733, &[2117633]);     // 4733 => [2117633]
            map.insert(3592, &[4214785]);     // 3592 => [4214785]
            map.insert(1611, &[102401]);     // 1611 => [102401]
            map.insert(993, &[167937]);     // 993 => [167937]
            map.insert(2229, &[299009]);     // 2229 => [299009]
            map.insert(2690, &[561153]);     // 2690 => [561153]
            map.insert(3820, &[1085441]);     // 3820 => [1085441]
            map.insert(6488, &[2134017]);     // 6488 => [2134017]
            map.insert(1325, &[4231169]);     // 1325 => [4231169]
            map.insert(308, &[200705]);     // 308 => [200705]
            map.insert(2656, &[331777]);     // 2656 => [331777]
            map.insert(2135, &[593921]);     // 2135 => [593921]
            map.insert(3129, &[1118209]);     // 3129 => [1118209]
            map.insert(7053, &[2166785]);     // 7053 => [2166785]
            map.insert(2040, &[4263937]);     // 2040 => [4263937]
            map.insert(4042, &[397313]);     // 4042 => [397313]
            map.insert(3581, &[659457]);     // 3581 => [659457]
            map.insert(2451, &[1183745]);     // 2451 => [1183745]
            map.insert(7719, &[2232321]);     // 7719 => [2232321]
            map.insert(594, &[4329473]);     // 594 => [4329473]
            map.insert(1705, &[790529]);     // 1705 => [790529]
            map.insert(711, &[1314817]);     // 711 => [1314817]
            map.insert(5491, &[2363393]);     // 5491 => [2363393]
            map.insert(2310, &[4460545]);     // 2310 => [4460545]
            map.insert(240, &[1576961]);     // 240 => [1576961]
            map.insert(5956, &[2625537]);     // 5956 => [2625537]
            map.insert(2865, &[4722689]);     // 2865 => [4722689]
            map.insert(4906, &[3149825]);     // 4906 => [3149825]
            map.insert(3935, &[5246977]);     // 3935 => [5246977]
            map.insert(6379, &[6295553]);     // 6379 => [6295553]
            map.insert(538, &[57345]);     // 538 => [57345]
            map.insert(207, &[90113]);     // 207 => [90113]
            map.insert(1381, &[155649]);     // 1381 => [155649]
            map.insert(3633, &[286721]);     // 3633 => [286721]
            map.insert(3078, &[548865]);     // 3078 => [548865]
            map.insert(2152, &[1073153]);     // 2152 => [1073153]
            map.insert(8156, &[2121729]);     // 8156 => [2121729]
            map.insert(937, &[4218881]);     // 937 => [4218881]
            map.insert(3050, &[106497]);     // 3050 => [106497]
            map.insert(3648, &[172033]);     // 3648 => [172033]
            map.insert(1300, &[303105]);     // 1300 => [303105]
            map.insert(1827, &[565249]);     // 1827 => [565249]
            map.insert(845, &[1089537]);     // 845 => [1089537]
            map.insert(5369, &[2138113]);     // 5369 => [2138113]
            map.insert(2188, &[4235265]);     // 2188 => [4235265]
            map.insert(3221, &[204801]);     // 3221 => [204801]
            map.insert(1985, &[335873]);     // 1985 => [335873]
            map.insert(1526, &[598017]);     // 1526 => [598017]
            map.insert(408, &[1122305]);     // 408 => [1122305]
            map.insert(5676, &[2170881]);     // 5676 => [2170881]
            map.insert(2649, &[4268033]);     // 2649 => [4268033]
            map.insert(619, &[401409]);     // 619 => [401409]
            map.insert(92, &[663553]);     // 92 => [663553]
            map.insert(1074, &[1187841]);     // 1074 => [1187841]
            map.insert(4998, &[2236417]);     // 4998 => [2236417]
            map.insert(4083, &[4333569]);     // 4083 => [4333569]
            map.insert(2824, &[794625]);     // 2824 => [794625]
            map.insert(3942, &[1318913]);     // 3942 => [1318913]
            map.insert(6354, &[2367489]);     // 6354 => [2367489]
            map.insert(1191, &[4464641]);     // 1191 => [4464641]
            map.insert(3409, &[1581057]);     // 3409 => [1581057]
            map.insert(6885, &[2629633]);     // 6885 => [2629633]
            map.insert(1680, &[4726785]);     // 1680 => [4726785]
            map.insert(7819, &[3153921]);     // 7819 => [3153921]
            map.insert(766, &[5251073]);     // 766 => [5251073]
            map.insert(5450, &[6299649]);     // 5450 => [6299649]
            map.insert(1079, &[114689]);     // 1079 => [114689]
            map.insert(413, &[180225]);     // 413 => [180225]
            map.insert(2761, &[311297]);     // 2761 => [311297]
            map.insert(2302, &[573441]);     // 2302 => [573441]
            map.insert(3216, &[1097729]);     // 3216 => [1097729]
            map.insert(6948, &[2146305]);     // 6948 => [2146305]
            map.insert(1873, &[4243457]);     // 1873 => [4243457]
            map.insert(840, &[212993]);     // 840 => [212993]
            map.insert(2076, &[344065]);     // 2076 => [344065]
            map.insert(2603, &[606209]);     // 2603 => [606209]
            map.insert(3653, &[1130497]);     // 3653 => [1130497]
            map.insert(6641, &[2179073]);     // 6641 => [2179073]
            map.insert(1412, &[4276225]);     // 1412 => [4276225]
            map.insert(3510, &[409601]);     // 3510 => [409601]
            map.insert(3969, &[671745]);     // 3969 => [671745]
            map.insert(3055, &[1196033]);     // 3055 => [1196033]
            map.insert(7259, &[2244609]);     // 7259 => [2244609]
            map.insert(46, &[4341761]);     // 46 => [4341761]
            map.insert(1237, &[802817]);     // 1237 => [802817]
            map.insert(187, &[1327105]);     // 187 => [1327105]
            map.insert(5903, &[2375681]);     // 5903 => [2375681]
            map.insert(2938, &[4472833]);     // 2938 => [4472833]
            map.insert(652, &[1589249]);     // 652 => [1589249]
            map.insert(5432, &[2637825]);     // 5432 => [2637825]
            map.insert(2381, &[4734977]);     // 2381 => [4734977]
            map.insert(4438, &[3162113]);     // 4438 => [3162113]
            map.insert(3363, &[5259265]);     // 3363 => [5259265]
            map.insert(6807, &[6307841]);     // 6807 => [6307841]
            map.insert(2157, &[229377]);     // 2157 => [229377]
            map.insert(825, &[360449]);     // 825 => [360449]
            map.insert(270, &[622593]);     // 270 => [622593]
            map.insert(1376, &[1146881]);     // 1376 => [1146881]
            map.insert(4820, &[2195457]);     // 4820 => [2195457]
            map.insert(3745, &[4292609]);     // 3745 => [4292609]
            map.insert(1683, &[425985]);     // 1683 => [425985]
            map.insert(1188, &[688129]);     // 1188 => [688129]
            map.insert(202, &[1212417]);     // 202 => [1212417]
            map.insert(6014, &[2260993]);     // 6014 => [2260993]
            map.insert(2827, &[4358145]);     // 2827 => [4358145]
            map.insert(4080, &[819201]);     // 4080 => [819201]
            map.insert(2974, &[1343489]);     // 2974 => [1343489]
            map.insert(7210, &[2392065]);     // 7210 => [2392065]
            map.insert(95, &[4489217]);     // 95 => [4489217]
            map.insert(2473, &[1605633]);     // 2473 => [1605633]
            map.insert(7709, &[2654209]);     // 7709 => [2654209]
            map.insert(616, &[4751361]);     // 616 => [4751361]
            map.insert(6771, &[3178497]);     // 6771 => [3178497]
            map.insert(1542, &[5275649]);     // 1542 => [5275649]
            map.insert(4530, &[6324225]);     // 4530 => [6324225]
            map.insert(1094, &[458753]);     // 1094 => [458753]
            map.insert(1649, &[720897]);     // 1649 => [720897]
            map.insert(543, &[1245185]);     // 543 => [1245185]
            map.insert(5547, &[2293761]);     // 5547 => [2293761]
            map.insert(2526, &[4390913]);     // 2526 => [4390913]
            map.insert(3365, &[851969]);     // 3365 => [851969]
            map.insert(2379, &[1376257]);     // 2379 => [1376257]
            map.insert(7935, &[2424833]);     // 7935 => [2424833]
            map.insert(650, &[4521985]);     // 650 => [4521985]
            map.insert(2940, &[1638401]);     // 2940 => [1638401]
            map.insert(7368, &[2686977]);     // 7368 => [2686977]
            map.insert(189, &[4784129]);     // 189 => [4784129]
            map.insert(6310, &[3211265]);     // 6310 => [3211265]
            map.insert(1235, &[5308417]);     // 1235 => [5308417]
            map.insert(4967, &[6356993]);     // 4967 => [6356993]
            map.insert(2191, &[917505]);     // 2191 => [917505]
            map.insert(3297, &[1441793]);     // 3297 => [1441793]
            map.insert(6997, &[2490369]);     // 6997 => [2490369]
            map.insert(1824, &[4587521]);     // 1824 => [4587521]
            map.insert(3798, &[1703937]);     // 3798 => [1703937]
            map.insert(6498, &[2752513]);     // 6498 => [2752513]
            map.insert(1303, &[4849665]);     // 1303 => [4849665]
            map.insert(7436, &[3276801]);     // 7436 => [3276801]
            map.insert(377, &[5373953]);     // 377 => [5373953]
            map.insert(5837, &[6422529]);     // 5837 => [6422529]
            map.insert(1410, &[1835009]);     // 1410 => [1835009]
            map.insert(4662, &[2883585]);     // 4662 => [2883585]
            map.insert(3651, &[4980737]);     // 3651 => [4980737]
            map.insert(5720, &[3407873]);     // 5720 => [3407873]
            map.insert(2605, &[5505025]);     // 2605 => [5505025]
            map.insert(7577, &[6553601]);     // 7577 => [6553601]
            map.insert(5231, &[3670017]);     // 5231 => [3670017]
            map.insert(2074, &[5767169]);     // 2074 => [5767169]
            map.insert(8110, &[6815745]);     // 8110 => [6815745]
            map.insert(7104, &[7340033]);     // 7104 => [7340033]
            map.insert(78, &[78]);     // 78 => [78]
            map.insert(526, &[526]);     // 526 => [526]
            map.insert(2062, &[2062]);     // 2062 => [2062]
            map.insert(2352, &[8206]);     // 2352 => [8206]
            map.insert(483, &[262158]);     // 483 => [262158]
            map.insert(1978, &[1048590]);     // 1978 => [1048590]
            map.insert(4110, &[2097166]);     // 4110 => [2097166]
            map.insert(2070, &[2070]);     // 2070 => [2070]
            map.insert(2344, &[8214]);     // 2344 => [8214]
            map.insert(3536, &[32790]);     // 3536 => [32790]
            map.insert(3845, &[65558]);     // 3845 => [65558]
            map.insert(2735, &[131094]);     // 2735 => [131094]
            map.insert(4118, &[2097174]);     // 4118 => [2097174]
            map.insert(3171, &[4194326]);     // 3171 => [4194326]
            map.insert(294, &[294]);     // 294 => [294]
            map.insert(1062, &[1062]);     // 1062 => [1062]
            map.insert(4134, &[2097190]);     // 4134 => [2097190]
            map.insert(198, &[198]);     // 198 => [198]
            map.insert(582, &[582]);     // 582 => [582]
            map.insert(2118, &[2118]);     // 2118 => [2118]
            map.insert(924, &[524358]);     // 924 => [524358]
            map.insert(4166, &[2097222]);     // 4166 => [2097222]
            map.insert(3123, &[4194374]);     // 3123 => [4194374]
            map.insert(1637, &[16518]);     // 1637 => [16518]
            map.insert(3392, &[32902]);     // 3392 => [32902]
            map.insert(363, &[262278]);     // 363 => [262278]
            map.insert(860, &[524422]);     // 860 => [524422]
            map.insert(4230, &[2097286]);     // 4230 => [2097286]
            map.insert(3315, &[4194438]);     // 3315 => [4194438]
            map.insert(1286, &[1286]);     // 1286 => [1286]
            map.insert(4358, &[2097414]);     // 4358 => [2097414]
            map.insert(2566, &[2566]);     // 2566 => [2566]
            map.insert(1689, &[4614]);     // 1689 => [4614]
            map.insert(1253, &[16902]);     // 1253 => [16902]
            map.insert(3349, &[66054]);     // 3349 => [66054]
            map.insert(4614, &[2097670]);     // 4614 => [2097670]
            map.insert(5126, &[2098182]);     // 5126 => [2098182]
            map.insert(1472, &[34822]);     // 1472 => [34822]
            map.insert(703, &[133126]);     // 703 => [133126]
            map.insert(6150, &[2099206]);     // 6150 => [2099206]
            map.insert(634, &[20486]);     // 634 => [20486]
            map.insert(2954, &[69638]);     // 2954 => [69638]
            map.insert(3616, &[135174]);     // 3616 => [135174]
            map.insert(1859, &[528390]);     // 1859 => [528390]
            map.insert(813, &[1052678]);     // 813 => [1052678]
            map.insert(5273, &[2101254]);     // 5273 => [2101254]
            map.insert(1579, &[73734]);     // 1579 => [73734]
            map.insert(2261, &[270342]);     // 2261 => [270342]
            map.insert(3724, &[1056774]);     // 3724 => [1056774]
            map.insert(6456, &[2105350]);     // 6456 => [2105350]
            map.insert(1357, &[4202502]);     // 1357 => [4202502]
            map.insert(2851, &[49158]);     // 2851 => [49158]
            map.insert(2550, &[81926]);     // 2550 => [81926]
            map.insert(1800, &[278534]);     // 1800 => [278534]
            map.insert(5861, &[2113542]);     // 5861 => [2113542]
            map.insert(1913, &[163846]);     // 1913 => [163846]
            map.insert(3117, &[294918]);     // 3117 => [294918]
            map.insert(7616, &[2129926]);     // 7616 => [2129926]
            map.insert(7957, &[2162694]);     // 7957 => [2162694]
            map.insert(864, &[4259846]);     // 864 => [4259846]
            map.insert(2405, &[655366]);     // 2405 => [655366]
            map.insert(3339, &[1179654]);     // 3339 => [1179654]
            map.insert(6847, &[2228230]);     // 6847 => [2228230]
            map.insert(1631, &[1310726]);     // 1631 => [1310726]
            map.insert(4587, &[2359302]);     // 4587 => [2359302]
            map.insert(1128, &[1572870]);     // 1128 => [1572870]
            map.insert(5084, &[2621446]);     // 5084 => [2621446]
            map.insert(4009, &[4718598]);     // 4009 => [4718598]
            map.insert(6066, &[3145734]);     // 6066 => [3145734]
            map.insert(7283, &[6291462]);     // 7283 => [6291462]
            map.insert(58, &[58]);     // 58 => [58]
            map.insert(90, &[90]);     // 90 => [90]
            map.insert(282, &[282]);     // 282 => [282]
            map.insert(3849, &[65562]);     // 3849 => [65562]
            map.insert(2723, &[131098]);     // 2723 => [131098]
            map.insert(503, &[262170]);     // 503 => [262170]
            map.insert(4122, &[2097178]);     // 4122 => [2097178]
            map.insert(106, &[106]);     // 106 => [106]
            map.insert(170, &[170]);     // 170 => [170]
            map.insert(2324, &[8234]);     // 2324 => [8234]
            map.insert(3897, &[65578]);     // 3897 => [65578]
            map.insert(1008, &[524330]);     // 1008 => [524330]
            map.insert(4138, &[2097194]);     // 4138 => [2097194]
            map.insert(586, &[586]);     // 586 => [586]
            map.insert(2122, &[2122]);     // 2122 => [2122]
            map.insert(3929, &[65610]);     // 3929 => [65610]
            map.insert(4170, &[2097226]);     // 4170 => [2097226]
            map.insert(394, &[394]);     // 394 => [394]
            map.insert(2186, &[2186]);     // 2186 => [2186]
            map.insert(2484, &[8330]);     // 2484 => [8330]
            map.insert(1641, &[16522]);     // 1641 => [16522]
            map.insert(848, &[524426]);     // 848 => [524426]
            map.insert(4234, &[2097290]);     // 4234 => [2097290]
            map.insert(2314, &[2314]);     // 2314 => [2314]
            map.insert(2025, &[16650]);     // 2025 => [16650]
            map.insert(2995, &[131338]);     // 2995 => [131338]
            map.insert(231, &[262410]);     // 231 => [262410]
            map.insert(4362, &[2097418]);     // 4362 => [2097418]
            map.insert(1546, &[1546]);     // 1546 => [1546]
            map.insert(2570, &[2570]);     // 2570 => [2570]
            map.insert(2227, &[131594]);     // 2227 => [131594]
            map.insert(464, &[524810]);     // 464 => [524810]
            map.insert(4618, &[2097674]);     // 4618 => [2097674]
            map.insert(745, &[17418]);     // 745 => [17418]
            map.insert(2841, &[66570]);     // 2841 => [66570]
            map.insert(3763, &[132106]);     // 3763 => [132106]
            map.insert(2000, &[525322]);     // 2000 => [525322]
            map.insert(958, &[1049610]);     // 958 => [1049610]
            map.insert(5130, &[2098186]);     // 5130 => [2098186]
            map.insert(3817, &[18442]);     // 3817 => [18442]
            map.insert(6154, &[2099210]);     // 6154 => [2099210]
            map.insert(2387, &[36874]);     // 2387 => [36874]
            map.insert(5269, &[2101258]);     // 5269 => [2101258]
            map.insert(2272, &[4198410]);     // 2272 => [4198410]
            map.insert(2265, &[270346]);     // 2265 => [270346]
            map.insert(2798, &[532490]);     // 2798 => [532490]
            map.insert(3712, &[1056778]);     // 3712 => [1056778]
            map.insert(6452, &[2105354]);     // 6452 => [2105354]
            map.insert(2554, &[81930]);     // 2554 => [81930]
            map.insert(349, &[1064970]);     // 349 => [1064970]
            map.insert(5865, &[2113546]);     // 5865 => [2113546]
            map.insert(7628, &[2129930]);     // 7628 => [2129930]
            map.insert(441, &[4227082]);     // 441 => [4227082]
            map.insert(2221, &[1114122]);     // 2221 => [1114122]
            map.insert(7961, &[2162698]);     // 7961 => [2162698]
            map.insert(2910, &[393226]);     // 2910 => [393226]
            map.insert(2409, &[655370]);     // 2409 => [655370]
            map.insert(6835, &[2228234]);     // 6835 => [2228234]
            map.insert(1619, &[1310730]);     // 1619 => [1310730]
            map.insert(4583, &[2359306]);     // 4583 => [2359306]
            map.insert(5072, &[2621450]);     // 5072 => [2621450]
            map.insert(6078, &[3145738]);     // 6078 => [3145738]
            map.insert(7295, &[6291466]);     // 7295 => [6291466]
            map.insert(114, &[114]);     // 114 => [114]
            map.insert(2098, &[2098]);     // 2098 => [2098]
            map.insert(1197, &[4146]);     // 1197 => [4146]
            map.insert(1745, &[16434]);     // 1745 => [16434]
            map.insert(3873, &[65586]);     // 3873 => [65586]
            map.insert(4146, &[2097202]);     // 4146 => [2097202]
            map.insert(1106, &[1106]);     // 1106 => [1106]
            map.insert(3476, &[32850]);     // 3476 => [32850]
            map.insert(3905, &[65618]);     // 3905 => [65618]
            map.insert(904, &[524370]);     // 904 => [524370]
            map.insert(4178, &[2097234]);     // 4178 => [2097234]
            map.insert(658, &[658]);     // 658 => [658]
            map.insert(1830, &[1048722]);     // 1830 => [1048722]
            map.insert(4242, &[2097298]);     // 4242 => [2097298]
            map.insert(1421, &[4370]);     // 1421 => [4370]
            map.insert(2092, &[8466]);     // 2092 => [8466]
            map.insert(2987, &[131346]);     // 2987 => [131346]
            map.insert(255, &[262418]);     // 255 => [262418]
            map.insert(712, &[524562]);     // 712 => [524562]
            map.insert(4370, &[2097426]);     // 4370 => [2097426]
            map.insert(1446, &[1049106]);     // 1446 => [1049106]
            map.insert(4626, &[2097682]);     // 4626 => [2097682]
            map.insert(753, &[17426]);     // 753 => [17426]
            map.insert(2516, &[33810]);     // 2516 => [33810]
            map.insert(1535, &[263186]);     // 1535 => [263186]
            map.insert(1992, &[525330]);     // 1992 => [525330]
            map.insert(5138, &[2098194]);     // 5138 => [2098194]
            map.insert(2151, &[4195346]);     // 2151 => [4195346]
            map.insert(3213, &[6162]);     // 3213 => [6162]
            map.insert(3825, &[18450]);     // 3825 => [18450]
            map.insert(1492, &[34834]);     // 1492 => [34834]
            map.insert(683, &[133138]);     // 683 => [133138]
            map.insert(6162, &[2099218]);     // 6162 => [2099218]
            map.insert(3507, &[12306]);     // 3507 => [12306]
            map.insert(622, &[20498]);     // 622 => [20498]
            map.insert(1879, &[528402]);     // 1879 => [528402]
            map.insert(5261, &[2101266]);     // 5261 => [2101266]
            map.insert(1599, &[73746]);     // 1599 => [73746]
            map.insert(2806, &[532498]);     // 2806 => [532498]
            map.insert(6444, &[2105362]);     // 6444 => [2105362]
            map.insert(1369, &[4202514]);     // 1369 => [4202514]
            map.insert(1820, &[278546]);     // 1820 => [278546]
            map.insert(5873, &[2113554]);     // 5873 => [2113554]
            map.insert(2692, &[4210706]);     // 2692 => [4210706]
            map.insert(1901, &[163858]);     // 1901 => [163858]
            map.insert(3598, &[557074]);     // 3598 => [557074]
            map.insert(7636, &[2129938]);     // 7636 => [2129938]
            map.insert(7937, &[2162706]);     // 7937 => [2162706]
            map.insert(884, &[4259858]);     // 884 => [4259858]
            map.insert(2886, &[393234]);     // 2886 => [393234]
            map.insert(6827, &[2228242]);     // 6827 => [2228242]
            map.insert(4607, &[2359314]);     // 4607 => [2359314]
            map.insert(3466, &[4456466]);     // 3466 => [4456466]
            map.insert(5064, &[2621458]);     // 5064 => [2621458]
            map.insert(6054, &[3145746]);     // 6054 => [3145746]
            map.insert(7271, &[6291474]);     // 7271 => [6291474]
            map.insert(3953, &[65634]);     // 3953 => [65634]
            map.insert(399, &[262242]);     // 399 => [262242]
            map.insert(2006, &[1048674]);     // 2006 => [1048674]
            map.insert(4194, &[2097250]);     // 4194 => [2097250]
            map.insert(3095, &[4194402]);     // 3095 => [4194402]
            map.insert(1085, &[4258]);     // 1085 => [4258]
            map.insert(2460, &[8354]);     // 2460 => [8354]
            map.insert(2587, &[131234]);     // 2587 => [131234]
            map.insert(335, &[262306]);     // 335 => [262306]
            map.insert(888, &[524450]);     // 888 => [524450]
            map.insert(4258, &[2097314]);     // 4258 => [2097314]
            map.insert(1314, &[1314]);     // 1314 => [1314]
            map.insert(4386, &[2097442]);     // 4386 => [2097442]
            map.insert(2594, &[2594]);     // 2594 => [2594]
            map.insert(2844, &[8738]);     // 2844 => [8738]
            map.insert(4068, &[33314]);     // 4068 => [33314]
            map.insert(3377, &[66082]);     // 3377 => [66082]
            map.insert(2203, &[131618]);     // 2203 => [131618]
            map.insert(4642, &[2097698]);     // 4642 => [2097698]
            map.insert(3671, &[4194850]);     // 3671 => [4194850]
            map.insert(5154, &[2098210]);     // 5154 => [2098210]
            map.insert(3261, &[6178]);     // 3261 => [6178]
            map.insert(284, &[10274]);     // 284 => [10274]
            map.insert(3777, &[18466]);     // 3777 => [18466]
            map.insert(6178, &[2099234]);     // 6178 => [2099234]
            map.insert(1111, &[4196386]);     // 1111 => [4196386]
            map.insert(606, &[20514]);     // 606 => [20514]
            map.insert(3588, &[135202]);     // 3588 => [135202]
            map.insert(1360, &[266274]);     // 1360 => [266274]
            map.insert(5309, &[2101282]);     // 5309 => [2101282]
            map.insert(2758, &[532514]);     // 2758 => [532514]
            map.insert(6428, &[2105378]);     // 6428 => [2105378]
            map.insert(1385, &[4202530]);     // 1385 => [4202530]
            map.insert(2823, &[49186]);     // 2823 => [49186]
            map.insert(1307, &[540706]);     // 1307 => [540706]
            map.insert(373, &[1064994]);     // 373 => [1064994]
            map.insert(5825, &[2113570]);     // 5825 => [2113570]
            map.insert(759, &[98338]);     // 759 => [98338]
            map.insert(1885, &[163874]);     // 1885 => [163874]
            map.insert(3646, &[557090]);     // 3646 => [557090]
            map.insert(2640, &[1081378]);     // 2640 => [1081378]
            map.insert(7652, &[2129954]);     // 7652 => [2129954]
            map.insert(1416, &[196642]);     // 1416 => [196642]
            map.insert(7985, &[2162722]);     // 7985 => [2162722]
            map.insert(2934, &[393250]);     // 2934 => [393250]
            map.insert(6811, &[2228258]);     // 6811 => [2228258]
            map.insert(1659, &[1310754]);     // 1659 => [1310754]
            map.insert(4559, &[2359330]);     // 4559 => [2359330]
            map.insert(3514, &[4456482]);     // 3514 => [4456482]
            map.insert(1100, &[1572898]);     // 1100 => [1572898]
            map.insert(5112, &[2621474]);     // 5112 => [2621474]
            map.insert(6038, &[3145762]);     // 6038 => [3145762]
            map.insert(3043, &[5242914]);     // 3043 => [5242914]
            map.insert(7255, &[6291490]);     // 7255 => [6291490]
            map.insert(450, &[450]);     // 450 => [450]
            map.insert(1117, &[4290]);     // 1117 => [4290]
            map.insert(4049, &[65730]);     // 4049 => [65730]
            map.insert(792, &[524482]);     // 792 => [524482]
            map.insert(4290, &[2097346]);     // 4290 => [2097346]
            map.insert(3255, &[4194498]);     // 3255 => [4194498]
            map.insert(834, &[834]);     // 834 => [834]
            map.insert(1501, &[4418]);     // 1501 => [4418]
            map.insert(3204, &[33090]);     // 3204 => [33090]
            map.insert(3665, &[65858]);     // 3665 => [65858]
            map.insert(175, &[262466]);     // 175 => [262466]
            map.insert(4418, &[2097474]);     // 4418 => [2097474]
            map.insert(2626, &[2626]);     // 2626 => [2626]
            map.insert(3972, &[33346]);     // 3972 => [33346]
            map.insert(943, &[262722]);     // 943 => [262722]
            map.insert(4674, &[2097730]);     // 4674 => [2097730]
            map.insert(3138, &[3138]);     // 3138 => [3138]
            map.insert(221, &[5186]);     // 221 => [5186]
            map.insert(2436, &[33858]);     // 2436 => [33858]
            map.insert(1944, &[525378]);     // 1944 => [525378]
            map.insert(1014, &[1049666]);     // 1014 => [1049666]
            map.insert(5186, &[2098242]);     // 5186 => [2098242]
            map.insert(3293, &[6210]);     // 3293 => [6210]
            map.insert(4086, &[1050690]);     // 4086 => [1050690]
            map.insert(6210, &[2099266]);     // 6210 => [2099266]
            map.insert(3022, &[69698]);     // 3022 => [69698]
            map.insert(873, &[1052738]);     // 873 => [1052738]
            map.insert(5341, &[2101314]);     // 5341 => [2101314]
            map.insert(3999, &[24642]);     // 3999 => [24642]
            map.insert(965, &[139330]);     // 965 => [139330]
            map.insert(6524, &[2105410]);     // 6524 => [2105410]
            map.insert(3096, &[147522]);     // 3096 => [147522]
            map.insert(5793, &[2113602]);     // 5793 => [2113602]
            map.insert(3177, &[294978]);     // 3177 => [294978]
            map.insert(3678, &[557122]);     // 3678 => [557122]
            map.insert(7556, &[2129986]);     // 7556 => [2129986]
            map.insert(8017, &[2162754]);     // 8017 => [2162754]
            map.insert(6907, &[2228290]);     // 6907 => [2228290]
            map.insert(1563, &[1310786]);     // 1563 => [1310786]
            map.insert(4527, &[2359362]);     // 4527 => [2359362]
            map.insert(3546, &[4456514]);     // 3546 => [4456514]
            map.insert(5016, &[2621506]);     // 5016 => [2621506]
            map.insert(4077, &[4718658]);     // 4077 => [4718658]
            map.insert(6134, &[3145794]);     // 6134 => [3145794]
            map.insert(2947, &[5242946]);     // 2947 => [5242946]
            map.insert(7223, &[6291522]);     // 7223 => [6291522]
            map.insert(2434, &[2434]);     // 2434 => [2434]
            map.insert(1309, &[4482]);     // 1309 => [4482]
            map.insert(1889, &[16770]);     // 1889 => [16770]
            map.insert(3729, &[65922]);     // 3729 => [65922]
            map.insert(4482, &[2097538]);     // 4482 => [2097538]
            map.insert(1334, &[1049218]);     // 1334 => [1049218]
            map.insert(4738, &[2097794]);     // 4738 => [2097794]
            map.insert(3202, &[3202]);     // 3202 => [3202]
            map.insert(3516, &[9346]);     // 3516 => [9346]
            map.insert(2372, &[33922]);     // 2372 => [33922]
            map.insert(2961, &[66690]);     // 2961 => [66690]
            map.insert(3643, &[132226]);     // 3643 => [132226]
            map.insert(5250, &[2098306]);     // 5250 => [2098306]
            map.insert(2295, &[4195458]);     // 2295 => [4195458]
            map.insert(3681, &[18562]);     // 3681 => [18562]
            map.insert(571, &[133250]);     // 571 => [133250]
            map.insert(6274, &[2099330]);     // 6274 => [2099330]
            map.insert(1271, &[4196482]);     // 1271 => [4196482]
            map.insert(2830, &[69762]);     // 2830 => [69762]
            map.insert(3748, &[135298]);     // 3748 => [135298]
            map.insert(1520, &[266370]);     // 1520 => [266370]
            map.insert(5149, &[2101378]);     // 5149 => [2101378]
            map.insert(1146, &[41090]);     // 1146 => [41090]
            map.insert(1711, &[73858]);     // 1711 => [73858]
            map.insert(2662, &[532610]);     // 2662 => [532610]
            map.insert(6588, &[2105474]);     // 6588 => [2105474]
            map.insert(2983, &[49282]);     // 2983 => [49282]
            map.insert(1932, &[278658]);     // 1932 => [278658]
            map.insert(5729, &[2113666]);     // 5729 => [2113666]
            map.insert(599, &[98434]);     // 599 => [98434]
            map.insert(3241, &[295042]);     // 3241 => [295042]
            map.insert(7492, &[2130050]);     // 7492 => [2130050]
            map.insert(8081, &[2162818]);     // 8081 => [2162818]
            map.insert(3030, &[393346]);     // 3030 => [393346]
            map.insert(6715, &[2228354]);     // 6715 => [2228354]
            map.insert(1614, &[4325506]);     // 1614 => [4325506]
            map.insert(4463, &[2359426]);     // 4463 => [2359426]
            map.insert(4952, &[2621570]);     // 4952 => [2621570]
            map.insert(3885, &[4718722]);     // 3885 => [4718722]
            map.insert(5942, &[3145858]);     // 5942 => [3145858]
            map.insert(7415, &[6291586]);     // 7415 => [6291586]
            map.insert(1505, &[17154]);     // 1505 => [17154]
            map.insert(3780, &[33538]);     // 3780 => [33538]
            map.insert(751, &[262914]);     // 751 => [262914]
            map.insert(216, &[525058]);     // 216 => [525058]
            map.insert(4866, &[2097922]);     // 4866 => [2097922]
            map.insert(3959, &[4195074]);     // 3959 => [4195074]
            map.insert(5378, &[2098434]);     // 5378 => [2098434]
            map.insert(60, &[10498]);     // 60 => [10498]
            map.insert(4065, &[18690]);     // 4065 => [18690]
            map.insert(1220, &[35074]);     // 1220 => [35074]
            map.insert(3766, &[1050882]);     // 3766 => [1050882]
            map.insert(6402, &[2099458]);     // 6402 => [2099458]
            map.insert(3235, &[12546]);     // 3235 => [12546]
            map.insert(2702, &[69890]);     // 2702 => [69890]
            map.insert(1607, &[528642]);     // 1607 => [528642]
            map.insert(5533, &[2101506]);     // 5533 => [2101506]
            map.insert(1530, &[41218]);     // 1530 => [41218]
            map.insert(3046, &[532738]);     // 3046 => [532738]
            map.insert(3976, &[1057026]);     // 3976 => [1057026]
            map.insert(6204, &[2105602]);     // 6204 => [2105602]
            map.insert(1083, &[540930]);     // 1083 => [540930]
            map.insert(6113, &[2113794]);     // 6113 => [2113794]
            map.insert(2964, &[4210946]);     // 2964 => [4210946]
            map.insert(3369, &[295170]);     // 3369 => [295170]
            map.insert(2928, &[1081602]);     // 2928 => [1081602]
            map.insert(7364, &[2130178]);     // 7364 => [2130178]
            map.insert(1192, &[196866]);     // 1192 => [196866]
            map.insert(2469, &[1114370]);     // 2469 => [1114370]
            map.insert(7697, &[2162946]);     // 7697 => [2162946]
            map.insert(612, &[4260098]);     // 612 => [4260098]
            map.insert(2646, &[393474]);     // 2646 => [393474]
            map.insert(3087, &[1179906]);     // 3087 => [1179906]
            map.insert(7099, &[2228482]);     // 7099 => [2228482]
            map.insert(1998, &[4325634]);     // 1998 => [4325634]
            map.insert(4335, &[2359554]);     // 4335 => [2359554]
            map.insert(4824, &[2621698]);     // 4824 => [2621698]
            map.insert(3757, &[4718850]);     // 3757 => [4718850]
            map.insert(5814, &[3145986]);     // 5814 => [3145986]
            map.insert(2755, &[5243138]);     // 2755 => [5243138]
            map.insert(7543, &[6291714]);     // 7543 => [6291714]
            map.insert(669, &[5634]);     // 669 => [5634]
            map.insert(3900, &[9730]);     // 3900 => [9730]
            map.insert(3259, &[132610]);     // 3259 => [132610]
            map.insert(2031, &[263682]);     // 2031 => [263682]
            map.insert(1496, &[525826]);     // 1496 => [525826]
            map.insert(5634, &[2098690]);     // 5634 => [2098690]
            map.insert(828, &[10754]);     // 828 => [10754]
            map.insert(6658, &[2099714]);     // 6658 => [2099714]
            map.insert(1655, &[4196866]);     // 1655 => [4196866]
            map.insert(4003, &[12802]);     // 4003 => [12802]
            map.insert(126, &[20994]);     // 126 => [20994]
            map.insert(2446, &[70146]);     // 2446 => [70146]
            map.insert(1904, &[266754]);     // 1904 => [266754]
            map.insert(5789, &[2101762]);     // 5789 => [2101762]
            map.insert(2769, &[270850]);     // 2769 => [270850]
            map.insert(6972, &[2105858]);     // 6972 => [2105858]
            map.insert(1865, &[4203010]);     // 1865 => [4203010]
            map.insert(3058, &[82434]);     // 3058 => [82434]
            map.insert(1851, &[541186]);     // 1851 => [541186]
            map.insert(5345, &[2114050]);     // 5345 => [2114050]
            map.insert(2196, &[4211202]);     // 2196 => [4211202]
            map.insert(215, &[98818]);     // 215 => [98818]
            map.insert(1405, &[164354]);     // 1405 => [164354]
            map.insert(3625, &[295426]);     // 3625 => [295426]
            map.insert(8132, &[2130434]);     // 8132 => [2130434]
            map.insert(1960, &[197122]);     // 1960 => [197122]
            map.insert(7441, &[2163202]);     // 7441 => [2163202]
            map.insert(2913, &[655874]);     // 2913 => [655874]
            map.insert(6331, &[2228738]);     // 6331 => [2228738]
            map.insert(5103, &[2359810]);     // 5103 => [2359810]
            map.insert(4568, &[2621954]);     // 4568 => [2621954]
            map.insert(3501, &[4719106]);     // 3501 => [4719106]
            map.insert(5558, &[3146242]);     // 5558 => [3146242]
            map.insert(7799, &[6291970]);     // 7799 => [6291970]
            map.insert(2205, &[7170]);     // 2205 => [7170]
            map.insert(1723, &[134146]);     // 1723 => [134146]
            map.insert(2998, &[1051650]);     // 2998 => [1051650]
            map.insert(7170, &[2100226]);     // 7170 => [2100226]
            map.insert(119, &[4197378]);     // 119 => [4197378]
            map.insert(2467, &[13314]);     // 2467 => [13314]
            map.insert(368, &[267266]);     // 368 => [267266]
            map.insert(1833, &[1053698]);     // 1833 => [1053698]
            map.insert(4253, &[2102274]);     // 4253 => [2102274]
            map.insert(250, &[41986]);     // 250 => [41986]
            map.insert(559, &[74754]);     // 559 => [74754]
            map.insert(3281, &[271362]);     // 3281 => [271362]
            map.insert(7484, &[2106370]);     // 7484 => [2106370]
            map.insert(3570, &[82946]);     // 3570 => [82946]
            map.insert(780, &[279554]);     // 780 => [279554]
            map.insert(1365, &[1065986]);     // 1365 => [1065986]
            map.insert(4833, &[2114562]);     // 4833 => [2114562]
            map.insert(3732, &[4211714]);     // 3732 => [4211714]
            map.insert(1751, &[99330]);     // 1751 => [99330]
            map.insert(2590, &[558082]);     // 2590 => [558082]
            map.insert(6596, &[2130946]);     // 6596 => [2130946]
            map.insert(3237, &[1115138]);     // 3237 => [1115138]
            map.insert(6929, &[2163714]);     // 6929 => [2163714]
            map.insert(3425, &[656386]);     // 3425 => [656386]
            map.insert(7867, &[2229250]);     // 7867 => [2229250]
            map.insert(718, &[4326402]);     // 718 => [4326402]
            map.insert(5615, &[2360322]);     // 5615 => [2360322]
            map.insert(2458, &[4457474]);     // 2458 => [4457474]
            map.insert(6104, &[2622466]);     // 6104 => [2622466]
            map.insert(5046, &[3146754]);     // 5046 => [3146754]
            map.insert(6263, &[6292482]);     // 6263 => [6292482]
            map.insert(2686, &[22530]);     // 2686 => [22530]
            map.insert(2857, &[1054722]);     // 2857 => [1054722]
            map.insert(7325, &[2103298]);     // 7325 => [2103298]
            map.insert(3322, &[43010]);     // 3322 => [43010]
            map.insert(1672, &[1058818]);     // 1672 => [1058818]
            map.insert(4412, &[2107394]);     // 4412 => [2107394]
            map.insert(3401, &[4204546]);     // 3401 => [4204546]
            map.insert(7905, &[2115586]);     // 7905 => [2115586]
            map.insert(3965, &[165890]);     // 3965 => [165890]
            map.insert(624, &[1083394]);     // 624 => [1083394]
            map.insert(5572, &[2131970]);     // 5572 => [2131970]
            map.insert(1788, &[329730]);     // 1788 => [329730]
            map.insert(1227, &[591874]);     // 1227 => [591874]
            map.insert(5905, &[2164738]);     // 5905 => [2164738]
            map.insert(4795, &[2230274]);     // 4795 => [2230274]
            map.insert(3790, &[4327426]);     // 3790 => [4327426]
            map.insert(2613, &[788482]);     // 2613 => [788482]
            map.insert(6639, &[2361346]);     // 6639 => [2361346]
            map.insert(7128, &[2623490]);     // 7128 => [2623490]
            map.insert(8118, &[3147778]);     // 8118 => [3147778]
            map.insert(5239, &[6293506]);     // 5239 => [6293506]
            map.insert(3150, &[274434]);     // 3150 => [274434]
            map.insert(3705, &[536578]);     // 3705 => [536578]
            map.insert(7587, &[2109442]);     // 7587 => [2109442]
            map.insert(3437, &[86018]);     // 3437 => [86018]
            map.insert(4734, &[2117634]);     // 4734 => [2117634]
            map.insert(6491, &[2134018]);     // 6491 => [2134018]
            map.insert(1326, &[4231170]);     // 1326 => [4231170]
            map.insert(7054, &[2166786]);     // 7054 => [2166786]
            map.insert(4041, &[397314]);     // 4041 => [397314]
            map.insert(3582, &[659458]);     // 3582 => [659458]
            map.insert(2448, &[1183746]);     // 2448 => [1183746]
            map.insert(7716, &[2232322]);     // 7716 => [2232322]
            map.insert(5488, &[2363394]);     // 5488 => [2363394]
            map.insert(243, &[1576962]);     // 243 => [1576962]
            map.insert(5959, &[2625538]);     // 5959 => [2625538]
            map.insert(4905, &[3149826]);     // 4905 => [3149826]
            map.insert(6376, &[6295554]);     // 6376 => [6295554]
            map.insert(1382, &[155650]);     // 1382 => [155650]
            map.insert(8159, &[2121730]);     // 8159 => [2121730]
            map.insert(3049, &[106498]);     // 3049 => [106498]
            map.insert(846, &[1089538]);     // 846 => [1089538]
            map.insert(5370, &[2138114]);     // 5370 => [2138114]
            map.insert(5679, &[2170882]);     // 5679 => [2170882]
            map.insert(2650, &[4268034]);     // 2650 => [4268034]
            map.insert(4997, &[2236418]);     // 4997 => [2236418]
            map.insert(3941, &[1318914]);     // 3941 => [1318914]
            map.insert(6353, &[2367490]);     // 6353 => [2367490]
            map.insert(6886, &[2629634]);     // 6886 => [2629634]
            map.insert(7816, &[3153922]);     // 7816 => [3153922]
            map.insert(5449, &[6299650]);     // 5449 => [6299650]
            map.insert(2762, &[311298]);     // 2762 => [311298]
            map.insert(2301, &[573442]);     // 2301 => [573442]
            map.insert(3219, &[1097730]);     // 3219 => [1097730]
            map.insert(6951, &[2146306]);     // 6951 => [2146306]
            map.insert(3654, &[1130498]);     // 3654 => [1130498]
            map.insert(6642, &[2179074]);     // 6642 => [2179074]
            map.insert(7256, &[2244610]);     // 7256 => [2244610]
            map.insert(5900, &[2375682]);     // 5900 => [2375682]
            map.insert(2937, &[4472834]);     // 2937 => [4472834]
            map.insert(655, &[1589250]);     // 655 => [1589250]
            map.insert(5435, &[2637826]);     // 5435 => [2637826]
            map.insert(2382, &[4734978]);     // 2382 => [4734978]
            map.insert(4437, &[3162114]);     // 4437 => [3162114]
            map.insert(6804, &[6307842]);     // 6804 => [6307842]
            map.insert(2158, &[229378]);     // 2158 => [229378]
            map.insert(4823, &[2195458]);     // 4823 => [2195458]
            map.insert(6013, &[2260994]);     // 6013 => [2260994]
            map.insert(7209, &[2392066]);     // 7209 => [2392066]
            map.insert(2474, &[1605634]);     // 2474 => [1605634]
            map.insert(7710, &[2654210]);     // 7710 => [2654210]
            map.insert(6768, &[3178498]);     // 6768 => [3178498]
            map.insert(4529, &[6324226]);     // 4529 => [6324226]
            map.insert(540, &[1245186]);     // 540 => [1245186]
            map.insert(5544, &[2293762]);     // 5544 => [2293762]
            map.insert(2525, &[4390914]);     // 2525 => [4390914]
            map.insert(3366, &[851970]);     // 3366 => [851970]
            map.insert(7932, &[2424834]);     // 7932 => [2424834]
            map.insert(7371, &[2686978]);     // 7371 => [2686978]
            map.insert(6309, &[3211266]);     // 6309 => [3211266]
            map.insert(1232, &[5308418]);     // 1232 => [5308418]
            map.insert(4964, &[6356994]);     // 4964 => [6356994]
            map.insert(6998, &[2490370]);     // 6998 => [2490370]
            map.insert(3797, &[1703938]);     // 3797 => [1703938]
            map.insert(6497, &[2752514]);     // 6497 => [2752514]
            map.insert(7439, &[3276802]);     // 7439 => [3276802]
            map.insert(378, &[5373954]);     // 378 => [5373954]
            map.insert(5838, &[6422530]);     // 5838 => [6422530]
            map.insert(4661, &[2883586]);     // 4661 => [2883586]
            map.insert(5723, &[3407874]);     // 5723 => [3407874]
            map.insert(2606, &[5505026]);     // 2606 => [5505026]
            map.insert(7578, &[6553602]);     // 7578 => [6553602]
            map.insert(5228, &[3670018]);     // 5228 => [3670018]
            map.insert(8109, &[6815746]);     // 8109 => [6815746]
            map.insert(7107, &[7340034]);     // 7107 => [7340034]
            map.insert(4124, &[2097180]);     // 4124 => [2097180]
            map.insert(1203, &[4140]);     // 1203 => [4140]
            map.insert(3562, &[32812]);     // 3562 => [32812]
            map.insert(4140, &[2097196]);     // 4140 => [2097196]
            map.insert(588, &[588]);     // 588 => [588]
            map.insert(2124, &[2124]);     // 2124 => [2124]
            map.insert(4172, &[2097228]);     // 4172 => [2097228]
            map.insert(4236, &[2097292]);     // 4236 => [2097292]
            map.insert(1427, &[4364]);     // 1427 => [4364]
            map.insert(4364, &[2097420]);     // 4364 => [2097420]
            map.insert(3449, &[4194572]);     // 3449 => [4194572]
            map.insert(2572, &[2572]);     // 2572 => [2572]
            map.insert(4620, &[2097676]);     // 4620 => [2097676]
            map.insert(2506, &[33804]);     // 2506 => [33804]
            map.insert(5132, &[2098188]);     // 5132 => [2098188]
            map.insert(2169, &[4195340]);     // 2169 => [4195340]
            map.insert(6156, &[2099212]);     // 6156 => [2099212]
            map.insert(5267, &[2101260]);     // 5267 => [2101260]
            map.insert(2271, &[270348]);     // 2271 => [270348]
            map.insert(3718, &[1056780]);     // 3718 => [1056780]
            map.insert(6450, &[2105356]);     // 6450 => [2105356]
            map.insert(5871, &[2113548]);     // 5871 => [2113548]
            map.insert(7626, &[2129932]);     // 7626 => [2129932]
            map.insert(7967, &[2162700]);     // 7967 => [2162700]
            map.insert(6837, &[2228236]);     // 6837 => [2228236]
            map.insert(1621, &[1310732]);     // 1621 => [1310732]
            map.insert(4577, &[2359308]);     // 4577 => [2359308]
            map.insert(5078, &[2621452]);     // 5078 => [2621452]
            map.insert(6072, &[3145740]);     // 6072 => [3145740]
            map.insert(7289, &[6291468]);     // 7289 => [6291468]
            map.insert(180, &[180]);     // 180 => [180]
            map.insert(1920, &[1048628]);     // 1920 => [1048628]
            map.insert(4148, &[2097204]);     // 4148 => [2097204]
            map.insert(4180, &[2097236]);     // 4180 => [2097236]
            map.insert(404, &[404]);     // 404 => [404]
            map.insert(4244, &[2097300]);     // 4244 => [2097300]
            map.insert(788, &[788]);     // 788 => [788]
            map.insert(4372, &[2097428]);     // 4372 => [2097428]
            map.insert(1556, &[1556]);     // 1556 => [1556]
            map.insert(4628, &[2097684]);     // 4628 => [2097684]
            map.insert(928, &[1049620]);     // 928 => [1049620]
            map.insert(5140, &[2098196]);     // 5140 => [2098196]
            map.insert(1490, &[34836]);     // 1490 => [34836]
            map.insert(685, &[133140]);     // 685 => [133140]
            map.insert(6164, &[2099220]);     // 6164 => [2099220]
            map.insert(5259, &[2101268]);     // 5259 => [2101268]
            map.insert(1593, &[73748]);     // 1593 => [73748]
            map.insert(6442, &[2105364]);     // 6442 => [2105364]
            map.insert(1375, &[4202516]);     // 1375 => [4202516]
            map.insert(5879, &[2113556]);     // 5879 => [2113556]
            map.insert(1899, &[163860]);     // 1899 => [163860]
            map.insert(7634, &[2129940]);     // 7634 => [2129940]
            map.insert(7943, &[2162708]);     // 7943 => [2162708]
            map.insert(882, &[4259860]);     // 882 => [4259860]
            map.insert(6829, &[2228244]);     // 6829 => [2228244]
            map.insert(4601, &[2359316]);     // 4601 => [2359316]
            map.insert(5070, &[2621460]);     // 5070 => [2621460]
            map.insert(6048, &[3145748]);     // 6048 => [3145748]
            map.insert(7265, &[6291476]);     // 7265 => [6291476]
            map.insert(1671, &[16484]);     // 1671 => [16484]
            map.insert(2781, &[131172]);     // 2781 => [131172]
            map.insert(4196, &[2097252]);     // 4196 => [2097252]
            map.insert(676, &[676]);     // 676 => [676]
            map.insert(4260, &[2097316]);     // 4260 => [2097316]
            map.insert(1316, &[1316]);     // 1316 => [1316]
            map.insert(4388, &[2097444]);     // 4388 => [2097444]
            map.insert(1424, &[1049124]);     // 1424 => [1049124]
            map.insert(4644, &[2097700]);     // 4644 => [2097700]
            map.insert(5156, &[2098212]);     // 5156 => [2098212]
            map.insert(2505, &[264228]);     // 2505 => [264228]
            map.insert(3070, &[526372]);     // 3070 => [526372]
            map.insert(6180, &[2099236]);     // 6180 => [2099236]
            map.insert(5307, &[2101284]);     // 5307 => [2101284]
            map.insert(2254, &[4198436]);     // 2254 => [4198436]
            map.insert(4089, &[24612]);     // 4089 => [24612]
            map.insert(931, &[139300]);     // 931 => [139300]
            map.insert(6426, &[2105380]);     // 6426 => [2105380]
            map.insert(5831, &[2113572]);     // 5831 => [2113572]
            map.insert(7650, &[2129956]);     // 7650 => [2129956]
            map.insert(407, &[4227108]);     // 407 => [4227108]
            map.insert(3802, &[327716]);     // 3802 => [327716]
            map.insert(3309, &[589860]);     // 3309 => [589860]
            map.insert(7991, &[2162724]);     // 7991 => [2162724]
            map.insert(6813, &[2228260]);     // 6813 => [2228260]
            map.insert(4553, &[2359332]);     // 4553 => [2359332]
            map.insert(5118, &[2621476]);     // 5118 => [2621476]
            map.insert(6032, &[3145764]);     // 6032 => [3145764]
            map.insert(7249, &[6291492]);     // 7249 => [6291492]
            map.insert(798, &[524484]);     // 798 => [524484]
            map.insert(4292, &[2097348]);     // 4292 => [2097348]
            map.insert(3249, &[4194500]);     // 3249 => [4194500]
            map.insert(2170, &[8516]);     // 2170 => [8516]
            map.insert(3069, &[131396]);     // 3069 => [131396]
            map.insert(4420, &[2097476]);     // 4420 => [2097476]
            map.insert(2628, &[2628]);     // 2628 => [2628]
            map.insert(4676, &[2097732]);     // 4676 => [2097732]
            map.insert(3450, &[9284]);     // 3450 => [9284]
            map.insert(679, &[17476]);     // 679 => [17476]
            map.insert(5188, &[2098244]);     // 5188 => [2098244]
            map.insert(6212, &[2099268]);     // 6212 => [2099268]
            map.insert(5339, &[2101316]);     // 5339 => [2101316]
            map.insert(6522, &[2105412]);     // 6522 => [2105412]
            map.insert(5799, &[2113604]);     // 5799 => [2113604]
            map.insert(7554, &[2129988]);     // 7554 => [2129988]
            map.insert(8023, &[2162756]);     // 8023 => [2162756]
            map.insert(6909, &[2228292]);     // 6909 => [2228292]
            map.insert(4521, &[2359364]);     // 4521 => [2359364]
            map.insert(5022, &[2621508]);     // 5022 => [2621508]
            map.insert(4075, &[4718660]);     // 4075 => [4718660]
            map.insert(6128, &[3145796]);     // 6128 => [3145796]
            map.insert(7217, &[6291524]);     // 7217 => [6291524]
            map.insert(1584, &[1048964]);     // 1584 => [1048964]
            map.insert(4484, &[2097540]);     // 4484 => [2097540]
            map.insert(1668, &[1668]);     // 1668 => [1668]
            map.insert(4740, &[2097796]);     // 4740 => [2097796]
            map.insert(816, &[1049732]);     // 816 => [1049732]
            map.insert(5252, &[2098308]);     // 5252 => [2098308]
            map.insert(6276, &[2099332]);     // 6276 => [2099332]
            map.insert(5147, &[2101380]);     // 5147 => [2101380]
            map.insert(6586, &[2105476]);     // 6586 => [2105476]
            map.insert(2977, &[49284]);     // 2977 => [49284]
            map.insert(1930, &[278660]);     // 1930 => [278660]
            map.insert(5735, &[2113668]);     // 5735 => [2113668]
            map.insert(3247, &[295044]);     // 3247 => [295044]
            map.insert(7490, &[2130052]);     // 7490 => [2130052]
            map.insert(8087, &[2162820]);     // 8087 => [2162820]
            map.insert(6717, &[2228356]);     // 6717 => [2228356]
            map.insert(4457, &[2359428]);     // 4457 => [2359428]
            map.insert(4958, &[2621572]);     // 4958 => [2621572]
            map.insert(3883, &[4718724]);     // 3883 => [4718724]
            map.insert(5936, &[3145860]);     // 5936 => [3145860]
            map.insert(7409, &[6291588]);     // 7409 => [6291588]
            map.insert(1200, &[1049348]);     // 1200 => [1049348]
            map.insert(4868, &[2097924]);     // 4868 => [2097924]
            map.insert(5380, &[2098436]);     // 5380 => [2098436]
            map.insert(1559, &[67844]);     // 1559 => [67844]
            map.insert(2782, &[526596]);     // 2782 => [526596]
            map.insert(6404, &[2099460]);     // 6404 => [2099460]
            map.insert(2141, &[37124]);     // 2141 => [37124]
            map.insert(5531, &[2101508]);     // 5531 => [2101508]
            map.insert(3801, &[24836]);     // 3801 => [24836]
            map.insert(6202, &[2105604]);     // 6202 => [2105604]
            map.insert(3422, &[147716]);     // 3422 => [147716]
            map.insert(6119, &[2113796]);     // 6119 => [2113796]
            map.insert(7362, &[2130180]);     // 7362 => [2130180]
            map.insert(183, &[4227332]);     // 183 => [4227332]
            map.insert(4090, &[327940]);     // 4090 => [327940]
            map.insert(7703, &[2162948]);     // 7703 => [2162948]
            map.insert(7101, &[2228484]);     // 7101 => [2228484]
            map.insert(819, &[786692]);     // 819 => [786692]
            map.insert(4329, &[2359556]);     // 4329 => [2359556]
            map.insert(4830, &[2621700]);     // 4830 => [2621700]
            map.insert(5808, &[3145988]);     // 5808 => [3145988]
            map.insert(7537, &[6291716]);     // 7537 => [6291716]
            map.insert(5636, &[2098692]);     // 5636 => [2098692]
            map.insert(6660, &[2099716]);     // 6660 => [2099716]
            map.insert(120, &[20996]);     // 120 => [20996]
            map.insert(2440, &[70148]);     // 2440 => [70148]
            map.insert(5787, &[2101764]);     // 5787 => [2101764]
            map.insert(6970, &[2105860]);     // 6970 => [2105860]
            map.insert(3060, &[82436]);     // 3060 => [82436]
            map.insert(5351, &[2114052]);     // 5351 => [2114052]
            map.insert(8130, &[2130436]);     // 8130 => [2130436]
            map.insert(7447, &[2163204]);     // 7447 => [2163204]
            map.insert(6333, &[2228740]);     // 6333 => [2228740]
            map.insert(5097, &[2359812]);     // 5097 => [2359812]
            map.insert(4574, &[2621956]);     // 4574 => [2621956]
            map.insert(5552, &[3146244]);     // 5552 => [3146244]
            map.insert(7793, &[6291972]);     // 7793 => [6291972]
            map.insert(791, &[68612]);     // 791 => [68612]
            map.insert(3561, &[265220]);     // 3561 => [265220]
            map.insert(7172, &[2100228]);     // 7172 => [2100228]
            map.insert(3421, &[37892]);     // 3421 => [37892]
            map.insert(4251, &[2102276]);     // 4251 => [2102276]
            map.insert(3310, &[4199428]);     // 3310 => [4199428]
            map.insert(1923, &[140292]);     // 1923 => [140292]
            map.insert(7482, &[2106372]);     // 7482 => [2106372]
            map.insert(2142, &[148484]);     // 2142 => [148484]
            map.insert(4839, &[2114564]);     // 4839 => [2114564]
            map.insert(6594, &[2130948]);     // 6594 => [2130948]
            map.insert(2253, &[590852]);     // 2253 => [590852]
            map.insert(6935, &[2163716]);     // 6935 => [2163716]
            map.insert(7869, &[2229252]);     // 7869 => [2229252]
            map.insert(1587, &[787460]);     // 1587 => [787460]
            map.insert(5609, &[2360324]);     // 5609 => [2360324]
            map.insert(6110, &[2622468]);     // 6110 => [2622468]
            map.insert(5040, &[3146756]);     // 5040 => [3146756]
            map.insert(6257, &[6292484]);     // 6257 => [6292484]
            map.insert(7323, &[2103300]);     // 7323 => [2103300]
            map.insert(4410, &[2107396]);     // 4410 => [2107396]
            map.insert(7911, &[2115588]);     // 7911 => [2115588]
            map.insert(3963, &[165892]);     // 3963 => [165892]
            map.insert(5570, &[2131972]);     // 5570 => [2131972]
            map.insert(5911, &[2164740]);     // 5911 => [2164740]
            map.insert(4797, &[2230276]);     // 4797 => [2230276]
            map.insert(6633, &[2361348]);     // 6633 => [2361348]
            map.insert(7134, &[2623492]);     // 7134 => [2623492]
            map.insert(8112, &[3147780]);     // 8112 => [3147780]
            map.insert(5233, &[6293508]);     // 5233 => [6293508]
            map.insert(7589, &[2109444]);     // 7589 => [2109444]
            map.insert(3435, &[86020]);     // 3435 => [86020]
            map.insert(4728, &[2117636]);     // 4728 => [2117636]
            map.insert(6493, &[2134020]);     // 6493 => [2134020]
            map.insert(7048, &[2166788]);     // 7048 => [2166788]
            map.insert(3576, &[659460]);     // 3576 => [659460]
            map.insert(2454, &[1183748]);     // 2454 => [1183748]
            map.insert(7714, &[2232324]);     // 7714 => [2232324]
            map.insert(5494, &[2363396]);     // 5494 => [2363396]
            map.insert(245, &[1576964]);     // 245 => [1576964]
            map.insert(5953, &[2625540]);     // 5953 => [2625540]
            map.insert(4911, &[3149828]);     // 4911 => [3149828]
            map.insert(6382, &[6295556]);     // 6382 => [6295556]
            map.insert(8153, &[2121732]);     // 8153 => [2121732]
            map.insert(5372, &[2138116]);     // 5372 => [2138116]
            map.insert(5673, &[2170884]);     // 5673 => [2170884]
            map.insert(2652, &[4268036]);     // 2652 => [4268036]
            map.insert(4995, &[2236420]);     // 4995 => [2236420]
            map.insert(3939, &[1318916]);     // 3939 => [1318916]
            map.insert(6359, &[2367492]);     // 6359 => [2367492]
            map.insert(6880, &[2629636]);     // 6880 => [2629636]
            map.insert(7822, &[3153924]);     // 7822 => [3153924]
            map.insert(5455, &[6299652]);     // 5455 => [6299652]
            map.insert(2764, &[311300]);     // 2764 => [311300]
            map.insert(6945, &[2146308]);     // 6945 => [2146308]
            map.insert(6644, &[2179076]);     // 6644 => [2179076]
            map.insert(7262, &[2244612]);     // 7262 => [2244612]
            map.insert(5898, &[2375684]);     // 5898 => [2375684]
            map.insert(5437, &[2637828]);     // 5437 => [2637828]
            map.insert(4435, &[3162116]);     // 4435 => [3162116]
            map.insert(6802, &[6307844]);     // 6802 => [6307844]
            map.insert(4817, &[2195460]);     // 4817 => [2195460]
            map.insert(6011, &[2260996]);     // 6011 => [2260996]
            map.insert(7215, &[2392068]);     // 7215 => [2392068]
            map.insert(7704, &[2654212]);     // 7704 => [2654212]
            map.insert(6774, &[3178500]);     // 6774 => [3178500]
            map.insert(4535, &[6324228]);     // 4535 => [6324228]
            map.insert(5550, &[2293764]);     // 5550 => [2293764]
            map.insert(7930, &[2424836]);     // 7930 => [2424836]
            map.insert(7373, &[2686980]);     // 7373 => [2686980]
            map.insert(6307, &[3211268]);     // 6307 => [3211268]
            map.insert(4962, &[6356996]);     // 4962 => [6356996]
            map.insert(6992, &[2490372]);     // 6992 => [2490372]
            map.insert(3795, &[1703940]);     // 3795 => [1703940]
            map.insert(6503, &[2752516]);     // 6503 => [2752516]
            map.insert(7433, &[3276804]);     // 7433 => [3276804]
            map.insert(5832, &[6422532]);     // 5832 => [6422532]
            map.insert(4659, &[2883588]);     // 4659 => [2883588]
            map.insert(5725, &[3407876]);     // 5725 => [3407876]
            map.insert(7580, &[6553604]);     // 7580 => [6553604]
            map.insert(5226, &[3670020]);     // 5226 => [3670020]
            map.insert(8107, &[6815748]);     // 8107 => [6815748]
            map.insert(7109, &[7340036]);     // 7109 => [7340036]
            map.insert(4152, &[2097208]);     // 4152 => [2097208]
            map.insert(3915, &[65624]);     // 3915 => [65624]
            map.insert(4184, &[2097240]);     // 4184 => [2097240]
            map.insert(4248, &[2097304]);     // 4248 => [2097304]
            map.insert(4376, &[2097432]);     // 4376 => [2097432]
            map.insert(4632, &[2097688]);     // 4632 => [2097688]
            map.insert(3693, &[4194840]);     // 3693 => [4194840]
            map.insert(5144, &[2098200]);     // 5144 => [2098200]
            map.insert(6168, &[2099224]);     // 6168 => [2099224]
            map.insert(5255, &[2101272]);     // 5255 => [2101272]
            map.insert(6438, &[2105368]);     // 6438 => [2105368]
            map.insert(5883, &[2113560]);     // 5883 => [2113560]
            map.insert(2666, &[1081368]);     // 2666 => [1081368]
            map.insert(7646, &[2129944]);     // 7646 => [2129944]
            map.insert(7947, &[2162712]);     // 7947 => [2162712]
            map.insert(2892, &[393240]);     // 2892 => [393240]
            map.insert(6817, &[2228248]);     // 6817 => [2228248]
            map.insert(4597, &[2359320]);     // 4597 => [2359320]
            map.insert(5058, &[2621464]);     // 5058 => [2621464]
            map.insert(6060, &[3145752]);     // 6060 => [3145752]
            map.insert(7277, &[6291480]);     // 7277 => [6291480]
            map.insert(4200, &[2097256]);     // 4200 => [2097256]
            map.insert(4264, &[2097320]);     // 4264 => [2097320]
            map.insert(4392, &[2097448]);     // 4392 => [2097448]
            map.insert(4648, &[2097704]);     // 4648 => [2097704]
            map.insert(5160, &[2098216]);     // 5160 => [2098216]
            map.insert(6184, &[2099240]);     // 6184 => [2099240]
            map.insert(5303, &[2101288]);     // 5303 => [2101288]
            map.insert(6422, &[2105384]);     // 6422 => [2105384]
            map.insert(5835, &[2113576]);     // 5835 => [2113576]
            map.insert(7662, &[2129960]);     // 7662 => [2129960]
            map.insert(7995, &[2162728]);     // 7995 => [2162728]
            map.insert(6801, &[2228264]);     // 6801 => [2228264]
            map.insert(4549, &[2359336]);     // 4549 => [2359336]
            map.insert(5106, &[2621480]);     // 5106 => [2621480]
            map.insert(6044, &[3145768]);     // 6044 => [3145768]
            map.insert(7261, &[6291496]);     // 7261 => [6291496]
            map.insert(4296, &[2097352]);     // 4296 => [2097352]
            map.insert(4424, &[2097480]);     // 4424 => [2097480]
            map.insert(2632, &[2632]);     // 2632 => [2632]
            map.insert(4680, &[2097736]);     // 4680 => [2097736]
            map.insert(5192, &[2098248]);     // 5192 => [2098248]
            map.insert(6216, &[2099272]);     // 6216 => [2099272]
            map.insert(3694, &[135240]);     // 3694 => [135240]
            map.insert(5335, &[2101320]);     // 5335 => [2101320]
            map.insert(6518, &[2105416]);     // 6518 => [2105416]
            map.insert(2925, &[49224]);     // 2925 => [49224]
            map.insert(5803, &[2113608]);     // 5803 => [2113608]
            map.insert(7566, &[2129992]);     // 7566 => [2129992]
            map.insert(8027, &[2162760]);     // 8027 => [2162760]
            map.insert(6897, &[2228296]);     // 6897 => [2228296]
            map.insert(4517, &[2359368]);     // 4517 => [2359368]
            map.insert(5010, &[2621512]);     // 5010 => [2621512]
            map.insert(6140, &[3145800]);     // 6140 => [3145800]
            map.insert(7229, &[6291528]);     // 7229 => [6291528]
            map.insert(4488, &[2097544]);     // 4488 => [2097544]
            map.insert(3918, &[33416]);     // 3918 => [33416]
            map.insert(4744, &[2097800]);     // 4744 => [2097800]
            map.insert(5256, &[2098312]);     // 5256 => [2098312]
            map.insert(3691, &[18568]);     // 3691 => [18568]
            map.insert(6280, &[2099336]);     // 6280 => [2099336]
            map.insert(5143, &[2101384]);     // 5143 => [2101384]
            map.insert(2668, &[532616]);     // 2668 => [532616]
            map.insert(6582, &[2105480]);     // 6582 => [2105480]
            map.insert(5739, &[2113672]);     // 5739 => [2113672]
            map.insert(7502, &[2130056]);     // 7502 => [2130056]
            map.insert(8091, &[2162824]);     // 8091 => [2162824]
            map.insert(6705, &[2228360]);     // 6705 => [2228360]
            map.insert(4453, &[2359432]);     // 4453 => [2359432]
            map.insert(4946, &[2621576]);     // 4946 => [2621576]
            map.insert(5948, &[3145864]);     // 5948 => [3145864]
            map.insert(2889, &[5243016]);     // 2889 => [5243016]
            map.insert(7421, &[6291592]);     // 7421 => [6291592]
            map.insert(4872, &[2097928]);     // 4872 => [2097928]
            map.insert(5384, &[2098440]);     // 5384 => [2098440]
            map.insert(6408, &[2099464]);     // 6408 => [2099464]
            map.insert(5527, &[2101512]);     // 5527 => [2101512]
            map.insert(6198, &[2105608]);     // 6198 => [2105608]
            map.insert(6123, &[2113800]);     // 6123 => [2113800]
            map.insert(7374, &[2130184]);     // 7374 => [2130184]
            map.insert(7707, &[2162952]);     // 7707 => [2162952]
            map.insert(7089, &[2228488]);     // 7089 => [2228488]
            map.insert(4325, &[2359560]);     // 4325 => [2359560]
            map.insert(4818, &[2621704]);     // 4818 => [2621704]
            map.insert(5820, &[3145992]);     // 5820 => [3145992]
            map.insert(7549, &[6291720]);     // 7549 => [6291720]
            map.insert(5640, &[2098696]);     // 5640 => [2098696]
            map.insert(6664, &[2099720]);     // 6664 => [2099720]
            map.insert(5783, &[2101768]);     // 5783 => [2101768]
            map.insert(6966, &[2105864]);     // 6966 => [2105864]
            map.insert(5355, &[2114056]);     // 5355 => [2114056]
            map.insert(8142, &[2130440]);     // 8142 => [2130440]
            map.insert(7451, &[2163208]);     // 7451 => [2163208]
            map.insert(2923, &[655880]);     // 2923 => [655880]
            map.insert(6321, &[2228744]);     // 6321 => [2228744]
            map.insert(5093, &[2359816]);     // 5093 => [2359816]
            map.insert(4562, &[2621960]);     // 4562 => [2621960]
            map.insert(5564, &[3146248]);     // 5564 => [3146248]
            map.insert(7805, &[6291976]);     // 7805 => [6291976]
            map.insert(7176, &[2100232]);     // 7176 => [2100232]
            map.insert(4247, &[2102280]);     // 4247 => [2102280]
            map.insert(7478, &[2106376]);     // 7478 => [2106376]
            map.insert(4843, &[2114568]);     // 4843 => [2114568]
            map.insert(6606, &[2130952]);     // 6606 => [2130952]
            map.insert(6939, &[2163720]);     // 6939 => [2163720]
            map.insert(7857, &[2229256]);     // 7857 => [2229256]
            map.insert(5605, &[2360328]);     // 5605 => [2360328]
            map.insert(6098, &[2622472]);     // 6098 => [2622472]
            map.insert(5052, &[3146760]);     // 5052 => [3146760]
            map.insert(6269, &[6292488]);     // 6269 => [6292488]
            map.insert(3917, &[530440]);     // 3917 => [530440]
            map.insert(7319, &[2103304]);     // 7319 => [2103304]
            map.insert(4406, &[2107400]);     // 4406 => [2107400]
            map.insert(7915, &[2115592]);     // 7915 => [2115592]
            map.insert(5582, &[2131976]);     // 5582 => [2131976]
            map.insert(5915, &[2164744]);     // 5915 => [2164744]
            map.insert(2926, &[4261896]);     // 2926 => [4261896]
            map.insert(4785, &[2230280]);     // 4785 => [2230280]
            map.insert(6629, &[2361352]);     // 6629 => [2361352]
            map.insert(7122, &[2623496]);     // 7122 => [2623496]
            map.insert(8124, &[3147784]);     // 8124 => [3147784]
            map.insert(5245, &[6293512]);     // 5245 => [6293512]
            map.insert(2890, &[28680]);     // 2890 => [28680]
            map.insert(7593, &[2109448]);     // 7593 => [2109448]
            map.insert(4724, &[2117640]);     // 4724 => [2117640]
            map.insert(6481, &[2134024]);     // 6481 => [2134024]
            map.insert(2665, &[331784]);     // 2665 => [331784]
            map.insert(7044, &[2166792]);     // 7044 => [2166792]
            map.insert(7726, &[2232328]);     // 7726 => [2232328]
            map.insert(5498, &[2363400]);     // 5498 => [2363400]
            map.insert(5965, &[2625544]);     // 5965 => [2625544]
            map.insert(4899, &[3149832]);     // 4899 => [3149832]
            map.insert(6370, &[6295560]);     // 6370 => [6295560]
            map.insert(8149, &[2121736]);     // 8149 => [2121736]
            map.insert(3657, &[172040]);     // 3657 => [172040]
            map.insert(5360, &[2138120]);     // 5360 => [2138120]
            map.insert(5669, &[2170888]);     // 5669 => [2170888]
            map.insert(5007, &[2236424]);     // 5007 => [2236424]
            map.insert(3951, &[1318920]);     // 3951 => [1318920]
            map.insert(6363, &[2367496]);     // 6363 => [2367496]
            map.insert(6892, &[2629640]);     // 6892 => [2629640]
            map.insert(7810, &[3153928]);     // 7810 => [3153928]
            map.insert(5443, &[6299656]);     // 5443 => [6299656]
            map.insert(6957, &[2146312]);     // 6957 => [2146312]
            map.insert(3660, &[1130504]);     // 3660 => [1130504]
            map.insert(6648, &[2179080]);     // 6648 => [2179080]
            map.insert(7250, &[2244616]);     // 7250 => [2244616]
            map.insert(5894, &[2375688]);     // 5894 => [2375688]
            map.insert(5425, &[2637832]);     // 5425 => [2637832]
            map.insert(4447, &[3162120]);     // 4447 => [3162120]
            map.insert(6814, &[6307848]);     // 6814 => [6307848]
            map.insert(4829, &[2195464]);     // 4829 => [2195464]
            map.insert(6007, &[2261000]);     // 6007 => [2261000]
            map.insert(7203, &[2392072]);     // 7203 => [2392072]
            map.insert(7700, &[2654216]);     // 7700 => [2654216]
            map.insert(6778, &[3178504]);     // 6778 => [3178504]
            map.insert(4539, &[6324232]);     // 4539 => [6324232]
            map.insert(5538, &[2293768]);     // 5538 => [2293768]
            map.insert(7926, &[2424840]);     // 7926 => [2424840]
            map.insert(7361, &[2686984]);     // 7361 => [2686984]
            map.insert(6319, &[3211272]);     // 6319 => [3211272]
            map.insert(4974, &[6357000]);     // 4974 => [6357000]
            map.insert(7004, &[2490376]);     // 7004 => [2490376]
            map.insert(6507, &[2752520]);     // 6507 => [2752520]
            map.insert(7429, &[3276808]);     // 7429 => [3276808]
            map.insert(5828, &[6422536]);     // 5828 => [6422536]
            map.insert(4671, &[2883592]);     // 4671 => [2883592]
            map.insert(3658, &[4980744]);     // 3658 => [4980744]
            map.insert(5713, &[3407880]);     // 5713 => [3407880]
            map.insert(7568, &[6553608]);     // 7568 => [6553608]
            map.insert(5222, &[3670024]);     // 5222 => [3670024]
            map.insert(8103, &[6815752]);     // 8103 => [6815752]
            map.insert(7113, &[7340040]);     // 7113 => [7340040]
            map.insert(4208, &[2097264]);     // 4208 => [2097264]
            map.insert(4272, &[2097328]);     // 4272 => [2097328]
            map.insert(4400, &[2097456]);     // 4400 => [2097456]
            map.insert(4656, &[2097712]);     // 4656 => [2097712]
            map.insert(5168, &[2098224]);     // 5168 => [2098224]
            map.insert(6192, &[2099248]);     // 6192 => [2099248]
            map.insert(5295, &[2101296]);     // 5295 => [2101296]
            map.insert(6414, &[2105392]);     // 6414 => [2105392]
            map.insert(5843, &[2113584]);     // 5843 => [2113584]
            map.insert(7670, &[2129968]);     // 7670 => [2129968]
            map.insert(7971, &[2162736]);     // 7971 => [2162736]
            map.insert(6793, &[2228272]);     // 6793 => [2228272]
            map.insert(4573, &[2359344]);     // 4573 => [2359344]
            map.insert(5098, &[2621488]);     // 5098 => [2621488]
            map.insert(6020, &[3145776]);     // 6020 => [3145776]
            map.insert(7237, &[6291504]);     // 7237 => [6291504]
            map.insert(4304, &[2097360]);     // 4304 => [2097360]
            map.insert(4432, &[2097488]);     // 4432 => [2097488]
            map.insert(4688, &[2097744]);     // 4688 => [2097744]
            map.insert(5200, &[2098256]);     // 5200 => [2098256]
            map.insert(6224, &[2099280]);     // 6224 => [2099280]
            map.insert(5327, &[2101328]);     // 5327 => [2101328]
            map.insert(6510, &[2105424]);     // 6510 => [2105424]
            map.insert(5811, &[2113616]);     // 5811 => [2113616]
            map.insert(7574, &[2130000]);     // 7574 => [2130000]
            map.insert(8003, &[2162768]);     // 8003 => [2162768]
            map.insert(6889, &[2228304]);     // 6889 => [2228304]
            map.insert(4541, &[2359376]);     // 4541 => [2359376]
            map.insert(5002, &[2621520]);     // 5002 => [2621520]
            map.insert(6116, &[3145808]);     // 6116 => [3145808]
            map.insert(7205, &[6291536]);     // 7205 => [6291536]
            map.insert(4496, &[2097552]);     // 4496 => [2097552]
            map.insert(4752, &[2097808]);     // 4752 => [2097808]
            map.insert(5264, &[2098320]);     // 5264 => [2098320]
            map.insert(6288, &[2099344]);     // 6288 => [2099344]
            map.insert(5135, &[2101392]);     // 5135 => [2101392]
            map.insert(6574, &[2105488]);     // 6574 => [2105488]
            map.insert(5747, &[2113680]);     // 5747 => [2113680]
            map.insert(7510, &[2130064]);     // 7510 => [2130064]
            map.insert(8067, &[2162832]);     // 8067 => [2162832]
            map.insert(6697, &[2228368]);     // 6697 => [2228368]
            map.insert(4477, &[2359440]);     // 4477 => [2359440]
            map.insert(4938, &[2621584]);     // 4938 => [2621584]
            map.insert(5924, &[3145872]);     // 5924 => [3145872]
            map.insert(7397, &[6291600]);     // 7397 => [6291600]
            map.insert(4880, &[2097936]);     // 4880 => [2097936]
            map.insert(5392, &[2098448]);     // 5392 => [2098448]
            map.insert(6416, &[2099472]);     // 6416 => [2099472]
            map.insert(5519, &[2101520]);     // 5519 => [2101520]
            map.insert(6190, &[2105616]);     // 6190 => [2105616]
            map.insert(6131, &[2113808]);     // 6131 => [2113808]
            map.insert(7382, &[2130192]);     // 7382 => [2130192]
            map.insert(7683, &[2162960]);     // 7683 => [2162960]
            map.insert(7081, &[2228496]);     // 7081 => [2228496]
            map.insert(4349, &[2359568]);     // 4349 => [2359568]
            map.insert(4810, &[2621712]);     // 4810 => [2621712]
            map.insert(5796, &[3146000]);     // 5796 => [3146000]
            map.insert(7525, &[6291728]);     // 7525 => [6291728]
            map.insert(5648, &[2098704]);     // 5648 => [2098704]
            map.insert(6672, &[2099728]);     // 6672 => [2099728]
            map.insert(5775, &[2101776]);     // 5775 => [2101776]
            map.insert(6958, &[2105872]);     // 6958 => [2105872]
            map.insert(5363, &[2114064]);     // 5363 => [2114064]
            map.insert(8150, &[2130448]);     // 8150 => [2130448]
            map.insert(7427, &[2163216]);     // 7427 => [2163216]
            map.insert(6313, &[2228752]);     // 6313 => [2228752]
            map.insert(5117, &[2359824]);     // 5117 => [2359824]
            map.insert(4554, &[2621968]);     // 4554 => [2621968]
            map.insert(5540, &[3146256]);     // 5540 => [3146256]
            map.insert(7781, &[6291984]);     // 7781 => [6291984]
            map.insert(7184, &[2100240]);     // 7184 => [2100240]
            map.insert(4239, &[2102288]);     // 4239 => [2102288]
            map.insert(7470, &[2106384]);     // 7470 => [2106384]
            map.insert(4851, &[2114576]);     // 4851 => [2114576]
            map.insert(6614, &[2130960]);     // 6614 => [2130960]
            map.insert(6915, &[2163728]);     // 6915 => [2163728]
            map.insert(7849, &[2229264]);     // 7849 => [2229264]
            map.insert(5629, &[2360336]);     // 5629 => [2360336]
            map.insert(6090, &[2622480]);     // 6090 => [2622480]
            map.insert(5028, &[3146768]);     // 5028 => [3146768]
            map.insert(6245, &[6292496]);     // 6245 => [6292496]
            map.insert(7311, &[2103312]);     // 7311 => [2103312]
            map.insert(4398, &[2107408]);     // 4398 => [2107408]
            map.insert(7923, &[2115600]);     // 7923 => [2115600]
            map.insert(5590, &[2131984]);     // 5590 => [2131984]
            map.insert(5891, &[2164752]);     // 5891 => [2164752]
            map.insert(4777, &[2230288]);     // 4777 => [2230288]
            map.insert(6653, &[2361360]);     // 6653 => [2361360]
            map.insert(7114, &[2623504]);     // 7114 => [2623504]
            map.insert(8100, &[3147792]);     // 8100 => [3147792]
            map.insert(5221, &[6293520]);     // 5221 => [6293520]
            map.insert(7601, &[2109456]);     // 7601 => [2109456]
            map.insert(4716, &[2117648]);     // 4716 => [2117648]
            map.insert(6473, &[2134032]);     // 6473 => [2134032]
            map.insert(7068, &[2166800]);     // 7068 => [2166800]
            map.insert(7734, &[2232336]);     // 7734 => [2232336]
            map.insert(5474, &[2363408]);     // 5474 => [2363408]
            map.insert(5973, &[2625552]);     // 5973 => [2625552]
            map.insert(4923, &[3149840]);     // 4923 => [3149840]
            map.insert(6394, &[6295568]);     // 6394 => [6295568]
            map.insert(8141, &[2121744]);     // 8141 => [2121744]
            map.insert(5352, &[2138128]);     // 5352 => [2138128]
            map.insert(5693, &[2170896]);     // 5693 => [2170896]
            map.insert(5015, &[2236432]);     // 5015 => [2236432]
            map.insert(6339, &[2367504]);     // 6339 => [2367504]
            map.insert(6900, &[2629648]);     // 6900 => [2629648]
            map.insert(7834, &[3153936]);     // 7834 => [3153936]
            map.insert(5467, &[6299664]);     // 5467 => [6299664]
            map.insert(6965, &[2146320]);     // 6965 => [2146320]
            map.insert(6624, &[2179088]);     // 6624 => [2179088]
            map.insert(7242, &[2244624]);     // 7242 => [2244624]
            map.insert(5918, &[2375696]);     // 5918 => [2375696]
            map.insert(5417, &[2637840]);     // 5417 => [2637840]
            map.insert(4423, &[3162128]);     // 4423 => [3162128]
            map.insert(6790, &[6307856]);     // 6790 => [6307856]
            map.insert(4805, &[2195472]);     // 4805 => [2195472]
            map.insert(5999, &[2261008]);     // 5999 => [2261008]
            map.insert(7227, &[2392080]);     // 7227 => [2392080]
            map.insert(7692, &[2654224]);     // 7692 => [2654224]
            map.insert(6754, &[3178512]);     // 6754 => [3178512]
            map.insert(4515, &[6324240]);     // 4515 => [6324240]
            map.insert(5562, &[2293776]);     // 5562 => [2293776]
            map.insert(7918, &[2424848]);     // 7918 => [2424848]
            map.insert(7385, &[2686992]);     // 7385 => [2686992]
            map.insert(6327, &[3211280]);     // 6327 => [3211280]
            map.insert(4982, &[6357008]);     // 4982 => [6357008]
            map.insert(6980, &[2490384]);     // 6980 => [2490384]
            map.insert(6515, &[2752528]);     // 6515 => [2752528]
            map.insert(7453, &[3276816]);     // 7453 => [3276816]
            map.insert(5852, &[6422544]);     // 5852 => [6422544]
            map.insert(4647, &[2883600]);     // 4647 => [2883600]
            map.insert(5705, &[3407888]);     // 5705 => [3407888]
            map.insert(7560, &[6553616]);     // 7560 => [6553616]
            map.insert(5246, &[3670032]);     // 5246 => [3670032]
            map.insert(8127, &[6815760]);     // 8127 => [6815760]
            map.insert(7121, &[7340048]);     // 7121 => [7340048]
            map.insert(4320, &[2097376]);     // 4320 => [2097376]
            map.insert(4448, &[2097504]);     // 4448 => [2097504]
            map.insert(4704, &[2097760]);     // 4704 => [2097760]
            map.insert(5216, &[2098272]);     // 5216 => [2098272]
            map.insert(6240, &[2099296]);     // 6240 => [2099296]
            map.insert(5375, &[2101344]);     // 5375 => [2101344]
            map.insert(6494, &[2105440]);     // 6494 => [2105440]
            map.insert(5763, &[2113632]);     // 5763 => [2113632]
            map.insert(7590, &[2130016]);     // 7590 => [2130016]
            map.insert(8051, &[2162784]);     // 8051 => [2162784]
            map.insert(6873, &[2228320]);     // 6873 => [2228320]
            map.insert(4493, &[2359392]);     // 4493 => [2359392]
            map.insert(5050, &[2621536]);     // 5050 => [2621536]
            map.insert(6100, &[3145824]);     // 6100 => [3145824]
            map.insert(7189, &[6291552]);     // 7189 => [6291552]
            map.insert(4512, &[2097568]);     // 4512 => [2097568]
            map.insert(4768, &[2097824]);     // 4768 => [2097824]
            map.insert(5280, &[2098336]);     // 5280 => [2098336]
            map.insert(6304, &[2099360]);     // 6304 => [2099360]
            map.insert(5183, &[2101408]);     // 5183 => [2101408]
            map.insert(6558, &[2105504]);     // 6558 => [2105504]
            map.insert(5699, &[2113696]);     // 5699 => [2113696]
            map.insert(7526, &[2130080]);     // 7526 => [2130080]
            map.insert(8115, &[2162848]);     // 8115 => [2162848]
            map.insert(6681, &[2228384]);     // 6681 => [2228384]
            map.insert(4429, &[2359456]);     // 4429 => [2359456]
            map.insert(4986, &[2621600]);     // 4986 => [2621600]
            map.insert(5908, &[3145888]);     // 5908 => [3145888]
            map.insert(7381, &[6291616]);     // 7381 => [6291616]
            map.insert(4896, &[2097952]);     // 4896 => [2097952]
            map.insert(5408, &[2098464]);     // 5408 => [2098464]
            map.insert(6432, &[2099488]);     // 6432 => [2099488]
            map.insert(5567, &[2101536]);     // 5567 => [2101536]
            map.insert(6174, &[2105632]);     // 6174 => [2105632]
            map.insert(6083, &[2113824]);     // 6083 => [2113824]
            map.insert(7398, &[2130208]);     // 7398 => [2130208]
            map.insert(7731, &[2162976]);     // 7731 => [2162976]
            map.insert(7065, &[2228512]);     // 7065 => [2228512]
            map.insert(4301, &[2359584]);     // 4301 => [2359584]
            map.insert(4858, &[2621728]);     // 4858 => [2621728]
            map.insert(5780, &[3146016]);     // 5780 => [3146016]
            map.insert(7509, &[6291744]);     // 7509 => [6291744]
            map.insert(5664, &[2098720]);     // 5664 => [2098720]
            map.insert(6688, &[2099744]);     // 6688 => [2099744]
            map.insert(5823, &[2101792]);     // 5823 => [2101792]
            map.insert(6942, &[2105888]);     // 6942 => [2105888]
            map.insert(5315, &[2114080]);     // 5315 => [2114080]
            map.insert(8166, &[2130464]);     // 8166 => [2130464]
            map.insert(7475, &[2163232]);     // 7475 => [2163232]
            map.insert(6297, &[2228768]);     // 6297 => [2228768]
            map.insert(5069, &[2359840]);     // 5069 => [2359840]
            map.insert(4602, &[2621984]);     // 4602 => [2621984]
            map.insert(5524, &[3146272]);     // 5524 => [3146272]
            map.insert(7765, &[6292000]);     // 7765 => [6292000]
            map.insert(7200, &[2100256]);     // 7200 => [2100256]
            map.insert(4287, &[2102304]);     // 4287 => [2102304]
            map.insert(7454, &[2106400]);     // 7454 => [2106400]
            map.insert(4803, &[2114592]);     // 4803 => [2114592]
            map.insert(6630, &[2130976]);     // 6630 => [2130976]
            map.insert(6963, &[2163744]);     // 6963 => [2163744]
            map.insert(7833, &[2229280]);     // 7833 => [2229280]
            map.insert(5581, &[2360352]);     // 5581 => [2360352]
            map.insert(6138, &[2622496]);     // 6138 => [2622496]
            map.insert(5012, &[3146784]);     // 5012 => [3146784]
            map.insert(6229, &[6292512]);     // 6229 => [6292512]
            map.insert(7359, &[2103328]);     // 7359 => [2103328]
            map.insert(4382, &[2107424]);     // 4382 => [2107424]
            map.insert(7875, &[2115616]);     // 7875 => [2115616]
            map.insert(5606, &[2132000]);     // 5606 => [2132000]
            map.insert(5939, &[2164768]);     // 5939 => [2164768]
            map.insert(4761, &[2230304]);     // 4761 => [2230304]
            map.insert(6605, &[2361376]);     // 6605 => [2361376]
            map.insert(7162, &[2623520]);     // 7162 => [2623520]
            map.insert(8084, &[3147808]);     // 8084 => [3147808]
            map.insert(5205, &[6293536]);     // 5205 => [6293536]
            map.insert(7553, &[2109472]);     // 7553 => [2109472]
            map.insert(4700, &[2117664]);     // 4700 => [2117664]
            map.insert(6521, &[2134048]);     // 6521 => [2134048]
            map.insert(7084, &[2166816]);     // 7084 => [2166816]
            map.insert(7686, &[2232352]);     // 7686 => [2232352]
            map.insert(5458, &[2363424]);     // 5458 => [2363424]
            map.insert(5989, &[2625568]);     // 5989 => [2625568]
            map.insert(4875, &[3149856]);     // 4875 => [3149856]
            map.insert(6346, &[6295584]);     // 6346 => [6295584]
            map.insert(8189, &[2121760]);     // 8189 => [2121760]
            map.insert(5336, &[2138144]);     // 5336 => [2138144]
            map.insert(5645, &[2170912]);     // 5645 => [2170912]
            map.insert(5031, &[2236448]);     // 5031 => [2236448]
            map.insert(6387, &[2367520]);     // 6387 => [2367520]
            map.insert(6852, &[2629664]);     // 6852 => [2629664]
            map.insert(7850, &[3153952]);     // 7850 => [3153952]
            map.insert(5483, &[6299680]);     // 5483 => [6299680]
            map.insert(6917, &[2146336]);     // 6917 => [2146336]
            map.insert(6608, &[2179104]);     // 6608 => [2179104]
            map.insert(7290, &[2244640]);     // 7290 => [2244640]
            map.insert(5934, &[2375712]);     // 5934 => [2375712]
            map.insert(5401, &[2637856]);     // 5401 => [2637856]
            map.insert(4471, &[3162144]);     // 4471 => [3162144]
            map.insert(6838, &[6307872]);     // 6838 => [6307872]
            map.insert(4853, &[2195488]);     // 4853 => [2195488]
            map.insert(5983, &[2261024]);     // 5983 => [2261024]
            map.insert(7179, &[2392096]);     // 7179 => [2392096]
            map.insert(7740, &[2654240]);     // 7740 => [2654240]
            map.insert(6738, &[3178528]);     // 6738 => [3178528]
            map.insert(4499, &[6324256]);     // 4499 => [6324256]
            map.insert(5514, &[2293792]);     // 5514 => [2293792]
            map.insert(7902, &[2424864]);     // 7902 => [2424864]
            map.insert(7401, &[2687008]);     // 7401 => [2687008]
            map.insert(6279, &[3211296]);     // 6279 => [3211296]
            map.insert(4934, &[6357024]);     // 4934 => [6357024]
            map.insert(7028, &[2490400]);     // 7028 => [2490400]
            map.insert(6467, &[2752544]);     // 6467 => [2752544]
            map.insert(7469, &[3276832]);     // 7469 => [3276832]
            map.insert(5868, &[6422560]);     // 5868 => [6422560]
            map.insert(4631, &[2883616]);     // 4631 => [2883616]
            map.insert(5753, &[3407904]);     // 5753 => [3407904]
            map.insert(7608, &[6553632]);     // 7608 => [6553632]
            map.insert(5198, &[3670048]);     // 5198 => [3670048]
            map.insert(8079, &[6815776]);     // 8079 => [6815776]
            map.insert(7137, &[7340064]);     // 7137 => [7340064]
            map.insert(4544, &[2097600]);     // 4544 => [2097600]
            map.insert(4800, &[2097856]);     // 4800 => [2097856]
            map.insert(5312, &[2098368]);     // 5312 => [2098368]
            map.insert(6336, &[2099392]);     // 6336 => [2099392]
            map.insert(5215, &[2101440]);     // 5215 => [2101440]
            map.insert(6654, &[2105536]);     // 6654 => [2105536]
            map.insert(5667, &[2113728]);     // 5667 => [2113728]
            map.insert(7430, &[2130112]);     // 7430 => [2130112]
            map.insert(8147, &[2162880]);     // 8147 => [2162880]
            map.insert(6777, &[2228416]);     // 6777 => [2228416]
            map.insert(4397, &[2359488]);     // 4397 => [2359488]
            map.insert(4890, &[2621632]);     // 4890 => [2621632]
            map.insert(6004, &[3145920]);     // 6004 => [3145920]
            map.insert(7349, &[6291648]);     // 7349 => [6291648]
            map.insert(4928, &[2097984]);     // 4928 => [2097984]
            map.insert(5440, &[2098496]);     // 5440 => [2098496]
            map.insert(6464, &[2099520]);     // 6464 => [2099520]
            map.insert(5599, &[2101568]);     // 5599 => [2101568]
            map.insert(6270, &[2105664]);     // 6270 => [2105664]
            map.insert(6051, &[2113856]);     // 6051 => [2113856]
            map.insert(7302, &[2130240]);     // 7302 => [2130240]
            map.insert(7763, &[2163008]);     // 7763 => [2163008]
            map.insert(7161, &[2228544]);     // 7161 => [2228544]
            map.insert(4269, &[2359616]);     // 4269 => [2359616]
            map.insert(4762, &[2621760]);     // 4762 => [2621760]
            map.insert(5876, &[3146048]);     // 5876 => [3146048]
            map.insert(7477, &[6291776]);     // 7477 => [6291776]
            map.insert(5696, &[2098752]);     // 5696 => [2098752]
            map.insert(6720, &[2099776]);     // 6720 => [2099776]
            map.insert(5855, &[2101824]);     // 5855 => [2101824]
            map.insert(7038, &[2105920]);     // 7038 => [2105920]
            map.insert(5283, &[2114112]);     // 5283 => [2114112]
            map.insert(8070, &[2130496]);     // 8070 => [2130496]
            map.insert(7507, &[2163264]);     // 7507 => [2163264]
            map.insert(6393, &[2228800]);     // 6393 => [2228800]
            map.insert(5037, &[2359872]);     // 5037 => [2359872]
            map.insert(4506, &[2622016]);     // 4506 => [2622016]
            map.insert(5620, &[3146304]);     // 5620 => [3146304]
            map.insert(7733, &[6292032]);     // 7733 => [6292032]
            map.insert(7232, &[2100288]);     // 7232 => [2100288]
            map.insert(4319, &[2102336]);     // 4319 => [2102336]
            map.insert(7550, &[2106432]);     // 7550 => [2106432]
            map.insert(4771, &[2114624]);     // 4771 => [2114624]
            map.insert(6534, &[2131008]);     // 6534 => [2131008]
            map.insert(6995, &[2163776]);     // 6995 => [2163776]
            map.insert(7929, &[2229312]);     // 7929 => [2229312]
            map.insert(5549, &[2360384]);     // 5549 => [2360384]
            map.insert(6042, &[2622528]);     // 6042 => [2622528]
            map.insert(5108, &[3146816]);     // 5108 => [3146816]
            map.insert(6197, &[6292544]);     // 6197 => [6292544]
            map.insert(7391, &[2103360]);     // 7391 => [2103360]
            map.insert(4478, &[2107456]);     // 4478 => [2107456]
            map.insert(7843, &[2115648]);     // 7843 => [2115648]
            map.insert(5510, &[2132032]);     // 5510 => [2132032]
            map.insert(5971, &[2164800]);     // 5971 => [2164800]
            map.insert(4857, &[2230336]);     // 4857 => [2230336]
            map.insert(6573, &[2361408]);     // 6573 => [2361408]
            map.insert(7066, &[2623552]);     // 7066 => [2623552]
            map.insert(8180, &[3147840]);     // 8180 => [3147840]
            map.insert(5173, &[6293568]);     // 5173 => [6293568]
            map.insert(7649, &[2109504]);     // 7649 => [2109504]
            map.insert(4668, &[2117696]);     // 4668 => [2117696]
            map.insert(6425, &[2134080]);     // 6425 => [2134080]
            map.insert(7116, &[2166848]);     // 7116 => [2166848]
            map.insert(7782, &[2232384]);     // 7782 => [2232384]
            map.insert(5426, &[2363456]);     // 5426 => [2363456]
            map.insert(5893, &[2625600]);     // 5893 => [2625600]
            map.insert(4971, &[3149888]);     // 4971 => [3149888]
            map.insert(6314, &[6295616]);     // 6314 => [6295616]
            map.insert(8093, &[2121792]);     // 8093 => [2121792]
            map.insert(5304, &[2138176]);     // 5304 => [2138176]
            map.insert(5741, &[2170944]);     // 5741 => [2170944]
            map.insert(5063, &[2236480]);     // 5063 => [2236480]
            map.insert(6291, &[2367552]);     // 6291 => [2367552]
            map.insert(6820, &[2629696]);     // 6820 => [2629696]
            map.insert(7882, &[3153984]);     // 7882 => [3153984]
            map.insert(5387, &[6299712]);     // 5387 => [6299712]
            map.insert(7013, &[2146368]);     // 7013 => [2146368]
            map.insert(6576, &[2179136]);     // 6576 => [2179136]
            map.insert(7194, &[2244672]);     // 7194 => [2244672]
            map.insert(5966, &[2375744]);     // 5966 => [2375744]
            map.insert(5497, &[2637888]);     // 5497 => [2637888]
            map.insert(4375, &[3162176]);     // 4375 => [3162176]
            map.insert(6870, &[6307904]);     // 6870 => [6307904]
            map.insert(4757, &[2195520]);     // 4757 => [2195520]
            map.insert(5951, &[2261056]);     // 5951 => [2261056]
            map.insert(7275, &[2392128]);     // 7275 => [2392128]
            map.insert(7772, &[2654272]);     // 7772 => [2654272]
            map.insert(6706, &[3178560]);     // 6706 => [3178560]
            map.insert(4595, &[6324288]);     // 4595 => [6324288]
            map.insert(5610, &[2293824]);     // 5610 => [2293824]
            map.insert(7870, &[2424896]);     // 7870 => [2424896]
            map.insert(7305, &[2687040]);     // 7305 => [2687040]
            map.insert(6375, &[3211328]);     // 6375 => [3211328]
            map.insert(4902, &[6357056]);     // 4902 => [6357056]
            map.insert(6932, &[2490432]);     // 6932 => [2490432]
            map.insert(6435, &[2752576]);     // 6435 => [2752576]
            map.insert(7501, &[3276864]);     // 7501 => [3276864]
            map.insert(5772, &[6422592]);     // 5772 => [6422592]
            map.insert(4727, &[2883648]);     // 4727 => [2883648]
            map.insert(5657, &[3407936]);     // 5657 => [3407936]
            map.insert(7640, &[6553664]);     // 7640 => [6553664]
            map.insert(5166, &[3670080]);     // 5166 => [3670080]
            map.insert(8175, &[6815808]);     // 8175 => [6815808]
            map.insert(7041, &[7340096]);     // 7041 => [7340096]
            map.insert(4992, &[2098048]);     // 4992 => [2098048]
            map.insert(5504, &[2098560]);     // 5504 => [2098560]
            map.insert(6528, &[2099584]);     // 6528 => [2099584]
            map.insert(5407, &[2101632]);     // 5407 => [2101632]
            map.insert(6334, &[2105728]);     // 6334 => [2105728]
            map.insert(5987, &[2113920]);     // 5987 => [2113920]
            map.insert(7238, &[2130304]);     // 7238 => [2130304]
            map.insert(7827, &[2163072]);     // 7827 => [2163072]
            map.insert(6969, &[2228608]);     // 6969 => [2228608]
            map.insert(4205, &[2359680]);     // 4205 => [2359680]
            map.insert(4698, &[2621824]);     // 4698 => [2621824]
            map.insert(5684, &[3146112]);     // 5684 => [3146112]
            map.insert(7669, &[6291840]);     // 7669 => [6291840]
            map.insert(5760, &[2098816]);     // 5760 => [2098816]
            map.insert(6784, &[2099840]);     // 6784 => [2099840]
            map.insert(5663, &[2101888]);     // 5663 => [2101888]
            map.insert(7102, &[2105984]);     // 7102 => [2105984]
            map.insert(5219, &[2114176]);     // 5219 => [2114176]
            map.insert(8006, &[2130560]);     // 8006 => [2130560]
            map.insert(7571, &[2163328]);     // 7571 => [2163328]
            map.insert(6201, &[2228864]);     // 6201 => [2228864]
            map.insert(4973, &[2359936]);     // 4973 => [2359936]
            map.insert(4442, &[2622080]);     // 4442 => [2622080]
            map.insert(5428, &[3146368]);     // 5428 => [3146368]
            map.insert(7925, &[6292096]);     // 7925 => [6292096]
            map.insert(7296, &[2100352]);     // 7296 => [2100352]
            map.insert(4127, &[2102400]);     // 4127 => [2102400]
            map.insert(7614, &[2106496]);     // 7614 => [2106496]
            map.insert(4707, &[2114688]);     // 4707 => [2114688]
            map.insert(6470, &[2131072]);     // 6470 => [2131072]
            map.insert(7059, &[2163840]);     // 7059 => [2163840]
            map.insert(7737, &[2229376]);     // 7737 => [2229376]
            map.insert(5485, &[2360448]);     // 5485 => [2360448]
            map.insert(5978, &[2622592]);     // 5978 => [2622592]
            map.insert(4916, &[3146880]);     // 4916 => [3146880]
            map.insert(6389, &[6292608]);     // 6389 => [6292608]
            map.insert(7199, &[2103424]);     // 7199 => [2103424]
            map.insert(4542, &[2107520]);     // 4542 => [2107520]
            map.insert(7779, &[2115712]);     // 7779 => [2115712]
            map.insert(5446, &[2132096]);     // 5446 => [2132096]
            map.insert(6035, &[2164864]);     // 6035 => [2164864]
            map.insert(4665, &[2230400]);     // 4665 => [2230400]
            map.insert(6509, &[2361472]);     // 6509 => [2361472]
            map.insert(7002, &[2623616]);     // 7002 => [2623616]
            map.insert(7988, &[3147904]);     // 7988 => [3147904]
            map.insert(5365, &[6293632]);     // 5365 => [6293632]
            map.insert(7457, &[2109568]);     // 7457 => [2109568]
            map.insert(4860, &[2117760]);     // 4860 => [2117760]
            map.insert(6617, &[2134144]);     // 6617 => [2134144]
            map.insert(6924, &[2166912]);     // 6924 => [2166912]
            map.insert(7846, &[2232448]);     // 7846 => [2232448]
            map.insert(5618, &[2363520]);     // 5618 => [2363520]
            map.insert(6085, &[2625664]);     // 6085 => [2625664]
            map.insert(5035, &[3149952]);     // 5035 => [3149952]
            map.insert(6250, &[6295680]);     // 6250 => [6295680]
            map.insert(8029, &[2121856]);     // 8029 => [2121856]
            map.insert(5240, &[2138240]);     // 5240 => [2138240]
            map.insert(5805, &[2171008]);     // 5805 => [2171008]
            map.insert(4871, &[2236544]);     // 4871 => [2236544]
            map.insert(6227, &[2367616]);     // 6227 => [2367616]
            map.insert(6756, &[2629760]);     // 6756 => [2629760]
            map.insert(7690, &[3154048]);     // 7690 => [3154048]
            map.insert(5579, &[6299776]);     // 5579 => [6299776]
            map.insert(7077, &[2146432]);     // 7077 => [2146432]
            map.insert(6512, &[2179200]);     // 6512 => [2179200]
            map.insert(7386, &[2244736]);     // 7386 => [2244736]
            map.insert(6030, &[2375808]);     // 6030 => [2375808]
            map.insert(5561, &[2637952]);     // 5561 => [2637952]
            map.insert(4567, &[3162240]);     // 4567 => [3162240]
            map.insert(6678, &[6307968]);     // 6678 => [6307968]
            map.insert(4693, &[2195584]);     // 4693 => [2195584]
            map.insert(6143, &[2261120]);     // 6143 => [2261120]
            map.insert(7339, &[2392192]);     // 7339 => [2392192]
            map.insert(7836, &[2654336]);     // 7836 => [2654336]
            map.insert(6898, &[3178624]);     // 6898 => [3178624]
            map.insert(4403, &[6324352]);     // 4403 => [6324352]
            map.insert(5418, &[2293888]);     // 5418 => [2293888]
            map.insert(7806, &[2424960]);     // 7806 => [2424960]
            map.insert(7241, &[2687104]);     // 7241 => [2687104]
            map.insert(6183, &[3211392]);     // 6183 => [3211392]
            map.insert(5094, &[6357120]);     // 5094 => [6357120]
            map.insert(7124, &[2490496]);     // 7124 => [2490496]
            map.insert(6627, &[2752640]);     // 6627 => [2752640]
            map.insert(7565, &[3276928]);     // 7565 => [3276928]
            map.insert(5708, &[6422656]);     // 5708 => [6422656]
            map.insert(4791, &[2883712]);     // 4791 => [2883712]
            map.insert(5849, &[3408000]);     // 5849 => [3408000]
            map.insert(7448, &[6553728]);     // 7448 => [6553728]
            map.insert(5358, &[3670144]);     // 5358 => [3670144]
            map.insert(7983, &[6815872]);     // 7983 => [6815872]
            map.insert(6977, &[7340160]);     // 6977 => [7340160]
            map.insert(5888, &[2098944]);     // 5888 => [2098944]
            map.insert(6912, &[2099968]);     // 6912 => [2099968]
            map.insert(6047, &[2102016]);     // 6047 => [2102016]
            map.insert(6718, &[2106112]);     // 6718 => [2106112]
            map.insert(5603, &[2114304]);     // 5603 => [2114304]
            map.insert(7878, &[2130688]);     // 7878 => [2130688]
            map.insert(7187, &[2163456]);     // 7187 => [2163456]
            map.insert(6585, &[2228992]);     // 6585 => [2228992]
            map.insert(4845, &[2360064]);     // 4845 => [2360064]
            map.insert(4314, &[2622208]);     // 4314 => [2622208]
            map.insert(5300, &[3146496]);     // 5300 => [3146496]
            map.insert(8053, &[6292224]);     // 8053 => [6292224]
            map.insert(7424, &[2100480]);     // 7424 => [2100480]
            map.insert(4511, &[2102528]);     // 4511 => [2102528]
            map.insert(7230, &[2106624]);     // 7230 => [2106624]
            map.insert(5091, &[2114816]);     // 5091 => [2114816]
            map.insert(6342, &[2131200]);     // 6342 => [2131200]
            map.insert(6675, &[2163968]);     // 6675 => [2163968]
            map.insert(8121, &[2229504]);     // 8121 => [2229504]
            map.insert(5357, &[2360576]);     // 5357 => [2360576]
            map.insert(5850, &[2622720]);     // 5850 => [2622720]
            map.insert(4788, &[3147008]);     // 4788 => [3147008]
            map.insert(6517, &[6292736]);     // 6517 => [6292736]
            map.insert(7583, &[2103552]);     // 7583 => [2103552]
            map.insert(4158, &[2107648]);     // 4158 => [2107648]
            map.insert(8163, &[2115840]);     // 8163 => [2115840]
            map.insert(5318, &[2132224]);     // 5318 => [2132224]
            map.insert(5651, &[2164992]);     // 5651 => [2164992]
            map.insert(5049, &[2230528]);     // 5049 => [2230528]
            map.insert(6381, &[2361600]);     // 6381 => [2361600]
            map.insert(6874, &[2623744]);     // 6874 => [2623744]
            map.insert(7860, &[3148032]);     // 7860 => [3148032]
            map.insert(5493, &[6293760]);     // 5493 => [6293760]
            map.insert(7329, &[2109696]);     // 7329 => [2109696]
            map.insert(4988, &[2117888]);     // 4988 => [2117888]
            map.insert(6233, &[2134272]);     // 6233 => [2134272]
            map.insert(6796, &[2167040]);     // 6796 => [2167040]
            map.insert(7974, &[2232576]);     // 7974 => [2232576]
            map.insert(5234, &[2363648]);     // 5234 => [2363648]
            map.insert(5701, &[2625792]);     // 5701 => [2625792]
            map.insert(4651, &[3150080]);     // 4651 => [3150080]
            map.insert(6634, &[6295808]);     // 6634 => [6295808]
            map.insert(7901, &[2121984]);     // 7901 => [2121984]
            map.insert(5624, &[2138368]);     // 5624 => [2138368]
            map.insert(5933, &[2171136]);     // 5933 => [2171136]
            map.insert(4743, &[2236672]);     // 4743 => [2236672]
            map.insert(6611, &[2367744]);     // 6611 => [2367744]
            map.insert(7140, &[2629888]);     // 7140 => [2629888]
            map.insert(8074, &[3154176]);     // 8074 => [3154176]
            map.insert(5195, &[6299904]);     // 5195 => [6299904]
            map.insert(6693, &[2146560]);     // 6693 => [2146560]
            map.insert(6384, &[2179328]);     // 6384 => [2179328]
            map.insert(7514, &[2244864]);     // 7514 => [2244864]
            map.insert(5646, &[2375936]);     // 5646 => [2375936]
            map.insert(5177, &[2638080]);     // 5177 => [2638080]
            map.insert(4183, &[3162368]);     // 4183 => [3162368]
            map.insert(7062, &[6308096]);     // 7062 => [6308096]
            map.insert(5077, &[2195712]);     // 5077 => [2195712]
            map.insert(5759, &[2261248]);     // 5759 => [2261248]
            map.insert(7467, &[2392320]);     // 7467 => [2392320]
            map.insert(7964, &[2654464]);     // 7964 => [2654464]
            map.insert(7026, &[3178752]);     // 7026 => [3178752]
            map.insert(4275, &[6324480]);     // 4275 => [6324480]
            map.insert(5290, &[2294016]);     // 5290 => [2294016]
            map.insert(8190, &[2425088]);     // 8190 => [2425088]
            map.insert(7625, &[2687232]);     // 7625 => [2687232]
            map.insert(6567, &[3211520]);     // 6567 => [3211520]
            map.insert(4710, &[6357248]);     // 4710 => [6357248]
            map.insert(6740, &[2490624]);     // 6740 => [2490624]
            map.insert(6243, &[2752768]);     // 6243 => [2752768]
            map.insert(7181, &[3277056]);     // 7181 => [3277056]
            map.insert(6092, &[6422784]);     // 6092 => [6422784]
            map.insert(4919, &[2883840]);     // 4919 => [2883840]
            map.insert(5977, &[3408128]);     // 5977 => [3408128]
            map.insert(7320, &[6553856]);     // 7320 => [6553856]
            map.insert(5486, &[3670272]);     // 5486 => [3670272]
            map.insert(7855, &[6816000]);     // 7855 => [6816000]
            map.insert(6849, &[7340288]);     // 6849 => [7340288]
            map.insert(7680, &[2100736]);     // 7680 => [2100736]
            map.insert(4767, &[2102784]);     // 4767 => [2102784]
            map.insert(7998, &[2106880]);     // 7998 => [2106880]
            map.insert(4323, &[2115072]);     // 4323 => [2115072]
            map.insert(7110, &[2131456]);     // 7110 => [2131456]
            map.insert(6419, &[2164224]);     // 6419 => [2164224]
            map.insert(7353, &[2229760]);     // 7353 => [2229760]
            map.insert(6125, &[2360832]);     // 6125 => [2360832]
            map.insert(5594, &[2622976]);     // 5594 => [2622976]
            map.insert(4532, &[3147264]);     // 4532 => [3147264]
            map.insert(6773, &[6292992]);     // 6773 => [6292992]
            map.insert(7839, &[2103808]);     // 7839 => [2103808]
            map.insert(4926, &[2107904]);     // 4926 => [2107904]
            map.insert(7395, &[2116096]);     // 7395 => [2116096]
            map.insert(6086, &[2132480]);     // 6086 => [2132480]
            map.insert(5395, &[2165248]);     // 5395 => [2165248]
            map.insert(4281, &[2230784]);     // 4281 => [2230784]
            map.insert(7149, &[2361856]);     // 7149 => [2361856]
            map.insert(6618, &[2624000]);     // 6618 => [2624000]
            map.insert(7604, &[3148288]);     // 7604 => [3148288]
            map.insert(5749, &[6294016]);     // 5749 => [6294016]
            map.insert(8097, &[2109952]);     // 8097 => [2109952]
            map.insert(4220, &[2118144]);     // 4220 => [2118144]
            map.insert(7001, &[2134528]);     // 7001 => [2134528]
            map.insert(6540, &[2167296]);     // 6540 => [2167296]
            map.insert(7206, &[2232832]);     // 7206 => [2232832]
            map.insert(6002, &[2363904]);     // 6002 => [2363904]
            map.insert(5445, &[2626048]);     // 5445 => [2626048]
            map.insert(4395, &[3150336]);     // 4395 => [3150336]
            map.insert(6890, &[6296064]);     // 6890 => [6296064]
            map.insert(7645, &[2122240]);     // 7645 => [2122240]
            map.insert(5880, &[2138624]);     // 5880 => [2138624]
            map.insert(5165, &[2171392]);     // 5165 => [2171392]
            map.insert(4487, &[2236928]);     // 4487 => [2236928]
            map.insert(6867, &[2368000]);     // 6867 => [2368000]
            map.insert(6372, &[2630144]);     // 6372 => [2630144]
            map.insert(7306, &[3154432]);     // 7306 => [3154432]
            map.insert(5963, &[6300160]);     // 5963 => [6300160]
            map.insert(6437, &[2146816]);     // 6437 => [2146816]
            map.insert(7152, &[2179584]);     // 7152 => [2179584]
            map.insert(7770, &[2245120]);     // 7770 => [2245120]
            map.insert(5390, &[2376192]);     // 5390 => [2376192]
            map.insert(5945, &[2638336]);     // 5945 => [2638336]
            map.insert(4951, &[3162624]);     // 4951 => [3162624]
            map.insert(6294, &[6308352]);     // 6294 => [6308352]
            map.insert(4309, &[2195968]);     // 4309 => [2195968]
            map.insert(5503, &[2261504]);     // 5503 => [2261504]
            map.insert(7723, &[2392576]);     // 7723 => [2392576]
            map.insert(7196, &[2654720]);     // 7196 => [2654720]
            map.insert(6258, &[3179008]);     // 6258 => [3179008]
            map.insert(5043, &[6324736]);     // 5043 => [6324736]
            map.insert(6058, &[2294272]);     // 6058 => [2294272]
            map.insert(7422, &[2425344]);     // 7422 => [2425344]
            map.insert(7881, &[2687488]);     // 7881 => [2687488]
            map.insert(6823, &[3211776]);     // 6823 => [3211776]
            map.insert(4454, &[6357504]);     // 4454 => [6357504]
            map.insert(6484, &[2490880]);     // 6484 => [2490880]
            map.insert(7011, &[2753024]);     // 7011 => [2753024]
            map.insert(7949, &[3277312]);     // 7949 => [3277312]
            map.insert(5324, &[6423040]);     // 5324 => [6423040]
            map.insert(4151, &[2884096]);     // 4151 => [2884096]
            map.insert(5209, &[3408384]);     // 5209 => [3408384]
            map.insert(8088, &[6554112]);     // 8088 => [6554112]
            map.insert(5742, &[3670528]);     // 5742 => [3670528]
            map.insert(7599, &[6816256]);     // 7599 => [6816256]
            map.insert(6593, &[7340544]);     // 6593 => [7340544]
            map.insert(6303, &[2104320]);     // 6303 => [2104320]
            map.insert(5438, &[2108416]);     // 5438 => [2108416]
            map.insert(6883, &[2116608]);     // 6883 => [2116608]
            map.insert(4550, &[2132992]);     // 4550 => [2132992]
            map.insert(4883, &[2165760]);     // 4883 => [2165760]
            map.insert(5817, &[2231296]);     // 5817 => [2231296]
            map.insert(7661, &[2362368]);     // 7661 => [2362368]
            map.insert(8154, &[2624512]);     // 8154 => [2624512]
            map.insert(7092, &[3148800]);     // 7092 => [3148800]
            map.insert(4213, &[6294528]);     // 4213 => [6294528]
            map.insert(6561, &[2110464]);     // 6561 => [2110464]
            map.insert(5756, &[2118656]);     // 5756 => [2118656]
            map.insert(7513, &[2135040]);     // 7513 => [2135040]
            map.insert(8076, &[2167808]);     // 8076 => [2167808]
            map.insert(6694, &[2233344]);     // 6694 => [2233344]
            map.insert(4466, &[2364416]);     // 4466 => [2364416]
            map.insert(4933, &[2626560]);     // 4933 => [2626560]
            map.insert(5931, &[3150848]);     // 5931 => [3150848]
            map.insert(7402, &[6296576]);     // 7402 => [6296576]
            map.insert(7133, &[2122752]);     // 7133 => [2122752]
            map.insert(4344, &[2139136]);     // 4344 => [2139136]
            map.insert(4653, &[2171904]);     // 4653 => [2171904]
            map.insert(6023, &[2237440]);     // 6023 => [2237440]
            map.insert(7379, &[2368512]);     // 7379 => [2368512]
            map.insert(7908, &[2630656]);     // 7908 => [2630656]
            map.insert(6794, &[3154944]);     // 6794 => [3154944]
            map.insert(4427, &[6300672]);     // 4427 => [6300672]
            map.insert(7973, &[2147328]);     // 7973 => [2147328]
            map.insert(7664, &[2180096]);     // 7664 => [2180096]
            map.insert(6234, &[2245632]);     // 6234 => [2245632]
            map.insert(4878, &[2376704]);     // 4878 => [2376704]
            map.insert(4409, &[2638848]);     // 4409 => [2638848]
            map.insert(5463, &[3163136]);     // 5463 => [3163136]
            map.insert(7830, &[6308864]);     // 7830 => [6308864]
            map.insert(5845, &[2196480]);     // 5845 => [2196480]
            map.insert(4991, &[2262016]);     // 4991 => [2262016]
            map.insert(6187, &[2393088]);     // 6187 => [2393088]
            map.insert(6684, &[2655232]);     // 6684 => [2655232]
            map.insert(7794, &[3179520]);     // 7794 => [3179520]
            map.insert(5555, &[6325248]);     // 5555 => [6325248]
            map.insert(4522, &[2294784]);     // 4522 => [2294784]
            map.insert(6910, &[2425856]);     // 6910 => [2425856]
            map.insert(6345, &[2688000]);     // 6345 => [2688000]
            map.insert(7335, &[3212288]);     // 7335 => [3212288]
            map.insert(5990, &[6358016]);     // 5990 => [6358016]
            map.insert(8020, &[2491392]);     // 8020 => [2491392]
            map.insert(7523, &[2753536]);     // 7523 => [2753536]
            map.insert(6413, &[3277824]);     // 6413 => [3277824]
            map.insert(4812, &[6423552]);     // 4812 => [6423552]
            map.insert(5687, &[2884608]);     // 5687 => [2884608]
            map.insert(4697, &[3408896]);     // 4697 => [3408896]
            map.insert(6552, &[6554624]);     // 6552 => [6554624]
            map.insert(4206, &[3671040]);     // 4206 => [3671040]
            map.insert(7087, &[6816768]);     // 7087 => [6816768]
            map.insert(8129, &[7341056]);     // 8129 => [7341056]
            map.insert(5537, &[2111488]);     // 5537 => [2111488]
            map.insert(6780, &[2119680]);     // 6780 => [2119680]
            map.insert(4441, &[2136064]);     // 4441 => [2136064]
            map.insert(5004, &[2168832]);     // 5004 => [2168832]
            map.insert(5670, &[2234368]);     // 5670 => [2234368]
            map.insert(7538, &[2365440]);     // 7538 => [2365440]
            map.insert(8005, &[2627584]);     // 8005 => [2627584]
            map.insert(6955, &[3151872]);     // 6955 => [3151872]
            map.insert(4330, &[6297600]);     // 4330 => [6297600]
            map.insert(6109, &[2123776]);     // 6109 => [2123776]
            map.insert(7416, &[2140160]);     // 7416 => [2140160]
            map.insert(7725, &[2172928]);     // 7725 => [2172928]
            map.insert(7047, &[2238464]);     // 7047 => [2238464]
            map.insert(4307, &[2369536]);     // 4307 => [2369536]
            map.insert(4836, &[2631680]);     // 4836 => [2631680]
            map.insert(5770, &[3155968]);     // 5770 => [3155968]
            map.insert(7499, &[6301696]);     // 7499 => [6301696]
            map.insert(4901, &[2148352]);     // 4901 => [2148352]
            map.insert(4592, &[2181120]);     // 4592 => [2181120]
            map.insert(5210, &[2246656]);     // 5210 => [2246656]
            map.insert(7950, &[2377728]);     // 7950 => [2377728]
            map.insert(7481, &[2639872]);     // 7481 => [2639872]
            map.insert(6487, &[3164160]);     // 6487 => [3164160]
            map.insert(4758, &[6309888]);     // 4758 => [6309888]
            map.insert(6869, &[2197504]);     // 6869 => [2197504]
            map.insert(8063, &[2263040]);     // 8063 => [2263040]
            map.insert(5163, &[2394112]);     // 5163 => [2394112]
            map.insert(5660, &[2656256]);     // 5660 => [2656256]
            map.insert(4722, &[3180544]);     // 4722 => [3180544]
            map.insert(6579, &[6326272]);     // 6579 => [6326272]
            map.insert(7594, &[2295808]);     // 7594 => [2295808]
            map.insert(5886, &[2426880]);     // 5886 => [2426880]
            map.insert(5321, &[2689024]);     // 5321 => [2689024]
            map.insert(4263, &[3213312]);     // 4263 => [3213312]
            map.insert(7014, &[6359040]);     // 7014 => [6359040]
            map.insert(4948, &[2492416]);     // 4948 => [2492416]
            map.insert(4451, &[2754560]);     // 4451 => [2754560]
            map.insert(5389, &[3278848]);     // 5389 => [3278848]
            map.insert(7884, &[6424576]);     // 7884 => [6424576]
            map.insert(6711, &[2885632]);     // 6711 => [2885632]
            map.insert(7769, &[3409920]);     // 7769 => [3409920]
            map.insert(5528, &[6555648]);     // 5528 => [6555648]
            map.insert(7278, &[3672064]);     // 7278 => [3672064]
            map.insert(6063, &[6817792]);     // 6063 => [6817792]
            map.insert(5057, &[7342080]);     // 5057 => [7342080]
            map.insert(6978, &[2125824]);     // 6978 => [2125824]
            map.insert(4199, &[2142208]);     // 4199 => [2142208]
            map.insert(4786, &[2174976]);     // 4786 => [2174976]
            map.insert(5912, &[2240512]);     // 5912 => [2240512]
            map.insert(7244, &[2371584]);     // 7244 => [2371584]
            map.insert(7803, &[2633728]);     // 7803 => [2633728]
            map.insert(6677, &[3158016]);     // 6677 => [3158016]
            map.insert(4564, &[6303744]);     // 4564 => [6303744]
            map.insert(8122, &[2150400]);     // 8122 => [2150400]
            map.insert(7535, &[2183168]);     // 7535 => [2183168]
            map.insert(6341, &[2248704]);     // 6341 => [2248704]
            map.insert(5009, &[2379776]);     // 5009 => [2379776]
            map.insert(4518, &[2641920]);     // 4518 => [2641920]
            map.insert(5576, &[3166208]);     // 5576 => [3166208]
            map.insert(7689, &[6311936]);     // 7689 => [6311936]
            map.insert(5706, &[2199552]);     // 5706 => [2199552]
            map.insert(5088, &[2265088]);     // 5088 => [2265088]
            map.insert(6324, &[2396160]);     // 6324 => [2396160]
            map.insert(6787, &[2658304]);     // 6787 => [2658304]
            map.insert(7917, &[3182592]);     // 7917 => [3182592]
            map.insert(5420, &[6328320]);     // 5420 => [6328320]
            map.insert(4405, &[2297856]);     // 4405 => [2297856]
            map.insert(6753, &[2428928]);     // 6753 => [2428928]
            map.insert(6230, &[2691072]);     // 6230 => [2691072]
            map.insert(7224, &[3215360]);     // 7224 => [3215360]
            map.insert(6137, &[6361088]);     // 6137 => [6361088]
            map.insert(8139, &[2494464]);     // 8139 => [2494464]
            map.insert(7676, &[2756608]);     // 7676 => [2756608]
            map.insert(6546, &[3280896]);     // 6546 => [3280896]
            map.insert(4691, &[6426624]);     // 4691 => [6426624]
            map.insert(5800, &[2887680]);     // 5800 => [2887680]
            map.insert(4806, &[3411968]);     // 4806 => [3411968]
            map.insert(6407, &[6557696]);     // 6407 => [6557696]
            map.insert(4337, &[3674112]);     // 4337 => [3674112]
            map.insert(6960, &[6819840]);     // 6960 => [6819840]
            map.insert(8030, &[7344128]);     // 8030 => [7344128]
            map.insert(4635, &[2154496]);     // 4635 => [2154496]
            map.insert(4302, &[2187264]);     // 4302 => [2187264]
            map.insert(5476, &[2252800]);     // 5476 => [2252800]
            map.insert(7728, &[2383872]);     // 7728 => [2383872]
            map.insert(7175, &[2646016]);     // 7175 => [2646016]
            map.insert(6249, &[3170304]);     // 6249 => [3170304]
            map.insert(5032, &[6316032]);     // 5032 => [6316032]
            map.insert(7147, &[2203648]);     // 7147 => [2203648]
            map.insert(7745, &[2269184]);     // 7745 => [2269184]
            map.insert(5397, &[2400256]);     // 5397 => [2400256]
            map.insert(5922, &[2662400]);     // 5922 => [2662400]
            map.insert(4940, &[3186688]);     // 4940 => [3186688]
            map.insert(6285, &[6332416]);     // 6285 => [6332416]
            map.insert(7316, &[2301952]);     // 7316 => [2301952]
            map.insert(6080, &[2433024]);     // 6080 => [2433024]
            map.insert(5623, &[2695168]);     // 5623 => [2695168]
            map.insert(4505, &[3219456]);     // 4505 => [3219456]
            map.insert(6744, &[6365184]);     // 6744 => [6365184]
            map.insert(4714, &[2498560]);     // 4714 => [2498560]
            map.insert(4189, &[2760704]);     // 4189 => [2760704]
            map.insert(5171, &[3284992]);     // 5171 => [3284992]
            map.insert(8178, &[6430720]);     // 8178 => [6430720]
            map.insert(6921, &[2891776]);     // 6921 => [2891776]
            map.insert(8039, &[3416064]);     // 8039 => [3416064]
            map.insert(5286, &[6561792]);     // 5286 => [6561792]
            map.insert(7504, &[3678208]);     // 7504 => [3678208]
            map.insert(5777, &[6823936]);     // 5777 => [6823936]
            map.insert(4863, &[7348224]);     // 4863 => [7348224]
            map.insert(5174, &[2211840]);     // 5174 => [2211840]
            map.insert(4508, &[2277376]);     // 4508 => [2277376]
            map.insert(6856, &[2408448]);     // 6856 => [2408448]
            map.insert(6399, &[2670592]);     // 6399 => [2670592]
            map.insert(7313, &[3194880]);     // 7313 => [3194880]
            map.insert(5968, &[6340608]);     // 5968 => [6340608]
            map.insert(4937, &[2310144]);     // 4937 => [2310144]
            map.insert(6173, &[2441216]);     // 6173 => [2441216]
            map.insert(6698, &[2703360]);     // 6698 => [2703360]
            map.insert(7748, &[3227648]);     // 7748 => [3227648]
            map.insert(5509, &[6373376]);     // 5509 => [6373376]
            map.insert(7607, &[2506752]);     // 7607 => [2506752]
            map.insert(8064, &[2768896]);     // 8064 => [2768896]
            map.insert(7150, &[3293184]);     // 7150 => [3293184]
            map.insert(4143, &[6438912]);     // 4143 => [6438912]
            map.insert(5332, &[2899968]);     // 5332 => [2899968]
            map.insert(4282, &[3424256]);     // 4282 => [3424256]
            map.insert(7035, &[6569984]);     // 7035 => [6569984]
            map.insert(4749, &[3686400]);     // 4749 => [3686400]
            map.insert(6476, &[6832128]);     // 6476 => [6832128]
            map.insert(7458, &[7356416]);     // 7458 => [7356416]
            map.insert(6252, &[2326528]);     // 6252 => [2326528]
            map.insert(4920, &[2457600]);     // 4920 => [2457600]
            map.insert(4367, &[2719744]);     // 4367 => [2719744]
            map.insert(5473, &[3244032]);     // 5473 => [3244032]
            map.insert(7840, &[6389760]);     // 7840 => [6389760]
            map.insert(5778, &[2523136]);     // 5778 => [2523136]
            map.insert(5285, &[2785280]);     // 5285 => [2785280]
            map.insert(4299, &[3309568]);     // 4299 => [3309568]
            map.insert(6922, &[6455296]);     // 6922 => [6455296]
            map.insert(8177, &[2916352]);     // 8177 => [2916352]
            map.insert(7071, &[3440640]);     // 7071 => [3440640]
            map.insert(4190, &[6586368]);     // 4190 => [6586368]
            map.insert(6568, &[3702784]);     // 6568 => [3702784]
            map.insert(4713, &[6848512]);     // 4713 => [6848512]
            map.insert(5639, &[7372800]);     // 5639 => [7372800]
            map.insert(5191, &[2555904]);     // 5191 => [2555904]
            map.insert(5744, &[2818048]);     // 5744 => [2818048]
            map.insert(4638, &[3342336]);     // 4638 => [3342336]
            map.insert(6623, &[6488064]);     // 6623 => [6488064]
            map.insert(7460, &[2949120]);     // 7460 => [2949120]
            map.insert(6474, &[3473408]);     // 6474 => [3473408]
            map.insert(4747, &[6619136]);     // 4747 => [6619136]
            map.insert(7037, &[3735552]);     // 7037 => [3735552]
            map.insert(4284, &[6881280]);     // 4284 => [6881280]
            map.insert(5330, &[7405568]);     // 5330 => [7405568]
            map.insert(6286, &[3014656]);     // 6286 => [3014656]
            map.insert(7392, &[3538944]);     // 7392 => [3538944]
            map.insert(5921, &[6684672]);     // 5921 => [6684672]
            map.insert(7895, &[3801088]);     // 7895 => [3801088]
            map.insert(5398, &[6946816]);     // 5398 => [6946816]
            map.insert(4472, &[7471104]);     // 4472 => [7471104]
            map.insert(5507, &[3932160]);     // 5507 => [3932160]
            map.insert(7746, &[7077888]);     // 7746 => [7077888]
            map.insert(6700, &[7602176]);     // 6700 => [7602176]
            map.insert(6171, &[7864320]);     // 6171 => [7864320]
            map.insert(79, &[79]);     // 79 => [79]
            map.insert(527, &[527]);     // 527 => [527]
            map.insert(2063, &[2063]);     // 2063 => [2063]
            map.insert(2353, &[8207]);     // 2353 => [8207]
            map.insert(482, &[262159]);     // 482 => [262159]
            map.insert(1979, &[1048591]);     // 1979 => [1048591]
            map.insert(4111, &[2097167]);     // 4111 => [2097167]
            map.insert(2071, &[2071]);     // 2071 => [2071]
            map.insert(2345, &[8215]);     // 2345 => [8215]
            map.insert(3537, &[32791]);     // 3537 => [32791]
            map.insert(3844, &[65559]);     // 3844 => [65559]
            map.insert(2734, &[131095]);     // 2734 => [131095]
            map.insert(4119, &[2097175]);     // 4119 => [2097175]
            map.insert(3170, &[4194327]);     // 3170 => [4194327]
            map.insert(295, &[295]);     // 295 => [295]
            map.insert(1063, &[1063]);     // 1063 => [1063]
            map.insert(4135, &[2097191]);     // 4135 => [2097191]
            map.insert(199, &[199]);     // 199 => [199]
            map.insert(583, &[583]);     // 583 => [583]
            map.insert(2119, &[2119]);     // 2119 => [2119]
            map.insert(925, &[524359]);     // 925 => [524359]
            map.insert(4167, &[2097223]);     // 4167 => [2097223]
            map.insert(3122, &[4194375]);     // 3122 => [4194375]
            map.insert(1636, &[16519]);     // 1636 => [16519]
            map.insert(3393, &[32903]);     // 3393 => [32903]
            map.insert(362, &[262279]);     // 362 => [262279]
            map.insert(861, &[524423]);     // 861 => [524423]
            map.insert(4231, &[2097287]);     // 4231 => [2097287]
            map.insert(3314, &[4194439]);     // 3314 => [4194439]
            map.insert(1287, &[1287]);     // 1287 => [1287]
            map.insert(4359, &[2097415]);     // 4359 => [2097415]
            map.insert(2567, &[2567]);     // 2567 => [2567]
            map.insert(1688, &[4615]);     // 1688 => [4615]
            map.insert(1252, &[16903]);     // 1252 => [16903]
            map.insert(3348, &[66055]);     // 3348 => [66055]
            map.insert(4615, &[2097671]);     // 4615 => [2097671]
            map.insert(5127, &[2098183]);     // 5127 => [2098183]
            map.insert(1473, &[34823]);     // 1473 => [34823]
            map.insert(702, &[133127]);     // 702 => [133127]
            map.insert(6151, &[2099207]);     // 6151 => [2099207]
            map.insert(635, &[20487]);     // 635 => [20487]
            map.insert(2955, &[69639]);     // 2955 => [69639]
            map.insert(3617, &[135175]);     // 3617 => [135175]
            map.insert(1858, &[528391]);     // 1858 => [528391]
            map.insert(812, &[1052679]);     // 812 => [1052679]
            map.insert(5272, &[2101255]);     // 5272 => [2101255]
            map.insert(1578, &[73735]);     // 1578 => [73735]
            map.insert(2260, &[270343]);     // 2260 => [270343]
            map.insert(3725, &[1056775]);     // 3725 => [1056775]
            map.insert(6457, &[2105351]);     // 6457 => [2105351]
            map.insert(1356, &[4202503]);     // 1356 => [4202503]
            map.insert(2850, &[49159]);     // 2850 => [49159]
            map.insert(2551, &[81927]);     // 2551 => [81927]
            map.insert(1801, &[278535]);     // 1801 => [278535]
            map.insert(5860, &[2113543]);     // 5860 => [2113543]
            map.insert(1912, &[163847]);     // 1912 => [163847]
            map.insert(3116, &[294919]);     // 3116 => [294919]
            map.insert(7617, &[2129927]);     // 7617 => [2129927]
            map.insert(7956, &[2162695]);     // 7956 => [2162695]
            map.insert(865, &[4259847]);     // 865 => [4259847]
            map.insert(2404, &[655367]);     // 2404 => [655367]
            map.insert(3338, &[1179655]);     // 3338 => [1179655]
            map.insert(6846, &[2228231]);     // 6846 => [2228231]
            map.insert(1630, &[1310727]);     // 1630 => [1310727]
            map.insert(4586, &[2359303]);     // 4586 => [2359303]
            map.insert(1129, &[1572871]);     // 1129 => [1572871]
            map.insert(5085, &[2621447]);     // 5085 => [2621447]
            map.insert(4008, &[4718599]);     // 4008 => [4718599]
            map.insert(6067, &[3145735]);     // 6067 => [3145735]
            map.insert(7282, &[6291463]);     // 7282 => [6291463]
            map.insert(59, &[59]);     // 59 => [59]
            map.insert(91, &[91]);     // 91 => [91]
            map.insert(283, &[283]);     // 283 => [283]
            map.insert(3848, &[65563]);     // 3848 => [65563]
            map.insert(2722, &[131099]);     // 2722 => [131099]
            map.insert(502, &[262171]);     // 502 => [262171]
            map.insert(4123, &[2097179]);     // 4123 => [2097179]
            map.insert(107, &[107]);     // 107 => [107]
            map.insert(171, &[171]);     // 171 => [171]
            map.insert(2325, &[8235]);     // 2325 => [8235]
            map.insert(3896, &[65579]);     // 3896 => [65579]
            map.insert(1009, &[524331]);     // 1009 => [524331]
            map.insert(4139, &[2097195]);     // 4139 => [2097195]
            map.insert(587, &[587]);     // 587 => [587]
            map.insert(2123, &[2123]);     // 2123 => [2123]
            map.insert(3928, &[65611]);     // 3928 => [65611]
            map.insert(4171, &[2097227]);     // 4171 => [2097227]
            map.insert(395, &[395]);     // 395 => [395]
            map.insert(2187, &[2187]);     // 2187 => [2187]
            map.insert(2485, &[8331]);     // 2485 => [8331]
            map.insert(1640, &[16523]);     // 1640 => [16523]
            map.insert(849, &[524427]);     // 849 => [524427]
            map.insert(4235, &[2097291]);     // 4235 => [2097291]
            map.insert(2315, &[2315]);     // 2315 => [2315]
            map.insert(2024, &[16651]);     // 2024 => [16651]
            map.insert(2994, &[131339]);     // 2994 => [131339]
            map.insert(230, &[262411]);     // 230 => [262411]
            map.insert(4363, &[2097419]);     // 4363 => [2097419]
            map.insert(1547, &[1547]);     // 1547 => [1547]
            map.insert(2571, &[2571]);     // 2571 => [2571]
            map.insert(2226, &[131595]);     // 2226 => [131595]
            map.insert(465, &[524811]);     // 465 => [524811]
            map.insert(4619, &[2097675]);     // 4619 => [2097675]
            map.insert(744, &[17419]);     // 744 => [17419]
            map.insert(2840, &[66571]);     // 2840 => [66571]
            map.insert(3762, &[132107]);     // 3762 => [132107]
            map.insert(2001, &[525323]);     // 2001 => [525323]
            map.insert(959, &[1049611]);     // 959 => [1049611]
            map.insert(5131, &[2098187]);     // 5131 => [2098187]
            map.insert(3816, &[18443]);     // 3816 => [18443]
            map.insert(6155, &[2099211]);     // 6155 => [2099211]
            map.insert(2386, &[36875]);     // 2386 => [36875]
            map.insert(5268, &[2101259]);     // 5268 => [2101259]
            map.insert(2273, &[4198411]);     // 2273 => [4198411]
            map.insert(2264, &[270347]);     // 2264 => [270347]
            map.insert(2799, &[532491]);     // 2799 => [532491]
            map.insert(3713, &[1056779]);     // 3713 => [1056779]
            map.insert(6453, &[2105355]);     // 6453 => [2105355]
            map.insert(2555, &[81931]);     // 2555 => [81931]
            map.insert(348, &[1064971]);     // 348 => [1064971]
            map.insert(5864, &[2113547]);     // 5864 => [2113547]
            map.insert(7629, &[2129931]);     // 7629 => [2129931]
            map.insert(440, &[4227083]);     // 440 => [4227083]
            map.insert(2220, &[1114123]);     // 2220 => [1114123]
            map.insert(7960, &[2162699]);     // 7960 => [2162699]
            map.insert(2911, &[393227]);     // 2911 => [393227]
            map.insert(2408, &[655371]);     // 2408 => [655371]
            map.insert(6834, &[2228235]);     // 6834 => [2228235]
            map.insert(1618, &[1310731]);     // 1618 => [1310731]
            map.insert(4582, &[2359307]);     // 4582 => [2359307]
            map.insert(5073, &[2621451]);     // 5073 => [2621451]
            map.insert(6079, &[3145739]);     // 6079 => [3145739]
            map.insert(7294, &[6291467]);     // 7294 => [6291467]
            map.insert(115, &[115]);     // 115 => [115]
            map.insert(2099, &[2099]);     // 2099 => [2099]
            map.insert(1196, &[4147]);     // 1196 => [4147]
            map.insert(1744, &[16435]);     // 1744 => [16435]
            map.insert(3872, &[65587]);     // 3872 => [65587]
            map.insert(4147, &[2097203]);     // 4147 => [2097203]
            map.insert(1107, &[1107]);     // 1107 => [1107]
            map.insert(3477, &[32851]);     // 3477 => [32851]
            map.insert(3904, &[65619]);     // 3904 => [65619]
            map.insert(905, &[524371]);     // 905 => [524371]
            map.insert(4179, &[2097235]);     // 4179 => [2097235]
            map.insert(659, &[659]);     // 659 => [659]
            map.insert(1831, &[1048723]);     // 1831 => [1048723]
            map.insert(4243, &[2097299]);     // 4243 => [2097299]
            map.insert(1420, &[4371]);     // 1420 => [4371]
            map.insert(2093, &[8467]);     // 2093 => [8467]
            map.insert(2986, &[131347]);     // 2986 => [131347]
            map.insert(254, &[262419]);     // 254 => [262419]
            map.insert(713, &[524563]);     // 713 => [524563]
            map.insert(4371, &[2097427]);     // 4371 => [2097427]
            map.insert(1447, &[1049107]);     // 1447 => [1049107]
            map.insert(4627, &[2097683]);     // 4627 => [2097683]
            map.insert(752, &[17427]);     // 752 => [17427]
            map.insert(2517, &[33811]);     // 2517 => [33811]
            map.insert(1534, &[263187]);     // 1534 => [263187]
            map.insert(1993, &[525331]);     // 1993 => [525331]
            map.insert(5139, &[2098195]);     // 5139 => [2098195]
            map.insert(2150, &[4195347]);     // 2150 => [4195347]
            map.insert(3212, &[6163]);     // 3212 => [6163]
            map.insert(3824, &[18451]);     // 3824 => [18451]
            map.insert(1493, &[34835]);     // 1493 => [34835]
            map.insert(682, &[133139]);     // 682 => [133139]
            map.insert(6163, &[2099219]);     // 6163 => [2099219]
            map.insert(3506, &[12307]);     // 3506 => [12307]
            map.insert(623, &[20499]);     // 623 => [20499]
            map.insert(1878, &[528403]);     // 1878 => [528403]
            map.insert(5260, &[2101267]);     // 5260 => [2101267]
            map.insert(1598, &[73747]);     // 1598 => [73747]
            map.insert(2807, &[532499]);     // 2807 => [532499]
            map.insert(6445, &[2105363]);     // 6445 => [2105363]
            map.insert(1368, &[4202515]);     // 1368 => [4202515]
            map.insert(1821, &[278547]);     // 1821 => [278547]
            map.insert(5872, &[2113555]);     // 5872 => [2113555]
            map.insert(2693, &[4210707]);     // 2693 => [4210707]
            map.insert(1900, &[163859]);     // 1900 => [163859]
            map.insert(3599, &[557075]);     // 3599 => [557075]
            map.insert(7637, &[2129939]);     // 7637 => [2129939]
            map.insert(7936, &[2162707]);     // 7936 => [2162707]
            map.insert(885, &[4259859]);     // 885 => [4259859]
            map.insert(2887, &[393235]);     // 2887 => [393235]
            map.insert(6826, &[2228243]);     // 6826 => [2228243]
            map.insert(4606, &[2359315]);     // 4606 => [2359315]
            map.insert(3467, &[4456467]);     // 3467 => [4456467]
            map.insert(5065, &[2621459]);     // 5065 => [2621459]
            map.insert(6055, &[3145747]);     // 6055 => [3145747]
            map.insert(7270, &[6291475]);     // 7270 => [6291475]
            map.insert(3952, &[65635]);     // 3952 => [65635]
            map.insert(398, &[262243]);     // 398 => [262243]
            map.insert(2007, &[1048675]);     // 2007 => [1048675]
            map.insert(4195, &[2097251]);     // 4195 => [2097251]
            map.insert(3094, &[4194403]);     // 3094 => [4194403]
            map.insert(1084, &[4259]);     // 1084 => [4259]
            map.insert(2461, &[8355]);     // 2461 => [8355]
            map.insert(2586, &[131235]);     // 2586 => [131235]
            map.insert(334, &[262307]);     // 334 => [262307]
            map.insert(889, &[524451]);     // 889 => [524451]
            map.insert(4259, &[2097315]);     // 4259 => [2097315]
            map.insert(1315, &[1315]);     // 1315 => [1315]
            map.insert(4387, &[2097443]);     // 4387 => [2097443]
            map.insert(2595, &[2595]);     // 2595 => [2595]
            map.insert(2845, &[8739]);     // 2845 => [8739]
            map.insert(4069, &[33315]);     // 4069 => [33315]
            map.insert(3376, &[66083]);     // 3376 => [66083]
            map.insert(2202, &[131619]);     // 2202 => [131619]
            map.insert(4643, &[2097699]);     // 4643 => [2097699]
            map.insert(3670, &[4194851]);     // 3670 => [4194851]
            map.insert(5155, &[2098211]);     // 5155 => [2098211]
            map.insert(3260, &[6179]);     // 3260 => [6179]
            map.insert(285, &[10275]);     // 285 => [10275]
            map.insert(3776, &[18467]);     // 3776 => [18467]
            map.insert(6179, &[2099235]);     // 6179 => [2099235]
            map.insert(1110, &[4196387]);     // 1110 => [4196387]
            map.insert(607, &[20515]);     // 607 => [20515]
            map.insert(3589, &[135203]);     // 3589 => [135203]
            map.insert(1361, &[266275]);     // 1361 => [266275]
            map.insert(5308, &[2101283]);     // 5308 => [2101283]
            map.insert(2759, &[532515]);     // 2759 => [532515]
            map.insert(6429, &[2105379]);     // 6429 => [2105379]
            map.insert(1384, &[4202531]);     // 1384 => [4202531]
            map.insert(2822, &[49187]);     // 2822 => [49187]
            map.insert(1306, &[540707]);     // 1306 => [540707]
            map.insert(372, &[1064995]);     // 372 => [1064995]
            map.insert(5824, &[2113571]);     // 5824 => [2113571]
            map.insert(758, &[98339]);     // 758 => [98339]
            map.insert(1884, &[163875]);     // 1884 => [163875]
            map.insert(3647, &[557091]);     // 3647 => [557091]
            map.insert(2641, &[1081379]);     // 2641 => [1081379]
            map.insert(7653, &[2129955]);     // 7653 => [2129955]
            map.insert(1417, &[196643]);     // 1417 => [196643]
            map.insert(7984, &[2162723]);     // 7984 => [2162723]
            map.insert(2935, &[393251]);     // 2935 => [393251]
            map.insert(6810, &[2228259]);     // 6810 => [2228259]
            map.insert(1658, &[1310755]);     // 1658 => [1310755]
            map.insert(4558, &[2359331]);     // 4558 => [2359331]
            map.insert(3515, &[4456483]);     // 3515 => [4456483]
            map.insert(1101, &[1572899]);     // 1101 => [1572899]
            map.insert(5113, &[2621475]);     // 5113 => [2621475]
            map.insert(6039, &[3145763]);     // 6039 => [3145763]
            map.insert(3042, &[5242915]);     // 3042 => [5242915]
            map.insert(7254, &[6291491]);     // 7254 => [6291491]
            map.insert(451, &[451]);     // 451 => [451]
            map.insert(1116, &[4291]);     // 1116 => [4291]
            map.insert(4048, &[65731]);     // 4048 => [65731]
            map.insert(793, &[524483]);     // 793 => [524483]
            map.insert(4291, &[2097347]);     // 4291 => [2097347]
            map.insert(3254, &[4194499]);     // 3254 => [4194499]
            map.insert(835, &[835]);     // 835 => [835]
            map.insert(1500, &[4419]);     // 1500 => [4419]
            map.insert(3205, &[33091]);     // 3205 => [33091]
            map.insert(3664, &[65859]);     // 3664 => [65859]
            map.insert(174, &[262467]);     // 174 => [262467]
            map.insert(4419, &[2097475]);     // 4419 => [2097475]
            map.insert(2627, &[2627]);     // 2627 => [2627]
            map.insert(3973, &[33347]);     // 3973 => [33347]
            map.insert(942, &[262723]);     // 942 => [262723]
            map.insert(4675, &[2097731]);     // 4675 => [2097731]
            map.insert(3139, &[3139]);     // 3139 => [3139]
            map.insert(220, &[5187]);     // 220 => [5187]
            map.insert(2437, &[33859]);     // 2437 => [33859]
            map.insert(1945, &[525379]);     // 1945 => [525379]
            map.insert(1015, &[1049667]);     // 1015 => [1049667]
            map.insert(5187, &[2098243]);     // 5187 => [2098243]
            map.insert(3292, &[6211]);     // 3292 => [6211]
            map.insert(4087, &[1050691]);     // 4087 => [1050691]
            map.insert(6211, &[2099267]);     // 6211 => [2099267]
            map.insert(3023, &[69699]);     // 3023 => [69699]
            map.insert(872, &[1052739]);     // 872 => [1052739]
            map.insert(5340, &[2101315]);     // 5340 => [2101315]
            map.insert(3998, &[24643]);     // 3998 => [24643]
            map.insert(964, &[139331]);     // 964 => [139331]
            map.insert(6525, &[2105411]);     // 6525 => [2105411]
            map.insert(3097, &[147523]);     // 3097 => [147523]
            map.insert(5792, &[2113603]);     // 5792 => [2113603]
            map.insert(3176, &[294979]);     // 3176 => [294979]
            map.insert(3679, &[557123]);     // 3679 => [557123]
            map.insert(7557, &[2129987]);     // 7557 => [2129987]
            map.insert(8016, &[2162755]);     // 8016 => [2162755]
            map.insert(6906, &[2228291]);     // 6906 => [2228291]
            map.insert(1562, &[1310787]);     // 1562 => [1310787]
            map.insert(4526, &[2359363]);     // 4526 => [2359363]
            map.insert(3547, &[4456515]);     // 3547 => [4456515]
            map.insert(5017, &[2621507]);     // 5017 => [2621507]
            map.insert(4076, &[4718659]);     // 4076 => [4718659]
            map.insert(6135, &[3145795]);     // 6135 => [3145795]
            map.insert(2946, &[5242947]);     // 2946 => [5242947]
            map.insert(7222, &[6291523]);     // 7222 => [6291523]
            map.insert(2435, &[2435]);     // 2435 => [2435]
            map.insert(1308, &[4483]);     // 1308 => [4483]
            map.insert(1888, &[16771]);     // 1888 => [16771]
            map.insert(3728, &[65923]);     // 3728 => [65923]
            map.insert(4483, &[2097539]);     // 4483 => [2097539]
            map.insert(1335, &[1049219]);     // 1335 => [1049219]
            map.insert(4739, &[2097795]);     // 4739 => [2097795]
            map.insert(3203, &[3203]);     // 3203 => [3203]
            map.insert(3517, &[9347]);     // 3517 => [9347]
            map.insert(2373, &[33923]);     // 2373 => [33923]
            map.insert(2960, &[66691]);     // 2960 => [66691]
            map.insert(3642, &[132227]);     // 3642 => [132227]
            map.insert(5251, &[2098307]);     // 5251 => [2098307]
            map.insert(2294, &[4195459]);     // 2294 => [4195459]
            map.insert(3680, &[18563]);     // 3680 => [18563]
            map.insert(570, &[133251]);     // 570 => [133251]
            map.insert(6275, &[2099331]);     // 6275 => [2099331]
            map.insert(1270, &[4196483]);     // 1270 => [4196483]
            map.insert(2831, &[69763]);     // 2831 => [69763]
            map.insert(3749, &[135299]);     // 3749 => [135299]
            map.insert(1521, &[266371]);     // 1521 => [266371]
            map.insert(5148, &[2101379]);     // 5148 => [2101379]
            map.insert(1147, &[41091]);     // 1147 => [41091]
            map.insert(1710, &[73859]);     // 1710 => [73859]
            map.insert(2663, &[532611]);     // 2663 => [532611]
            map.insert(6589, &[2105475]);     // 6589 => [2105475]
            map.insert(2982, &[49283]);     // 2982 => [49283]
            map.insert(1933, &[278659]);     // 1933 => [278659]
            map.insert(5728, &[2113667]);     // 5728 => [2113667]
            map.insert(598, &[98435]);     // 598 => [98435]
            map.insert(3240, &[295043]);     // 3240 => [295043]
            map.insert(7493, &[2130051]);     // 7493 => [2130051]
            map.insert(8080, &[2162819]);     // 8080 => [2162819]
            map.insert(3031, &[393347]);     // 3031 => [393347]
            map.insert(6714, &[2228355]);     // 6714 => [2228355]
            map.insert(1615, &[4325507]);     // 1615 => [4325507]
            map.insert(4462, &[2359427]);     // 4462 => [2359427]
            map.insert(4953, &[2621571]);     // 4953 => [2621571]
            map.insert(3884, &[4718723]);     // 3884 => [4718723]
            map.insert(5943, &[3145859]);     // 5943 => [3145859]
            map.insert(7414, &[6291587]);     // 7414 => [6291587]
            map.insert(1504, &[17155]);     // 1504 => [17155]
            map.insert(3781, &[33539]);     // 3781 => [33539]
            map.insert(750, &[262915]);     // 750 => [262915]
            map.insert(217, &[525059]);     // 217 => [525059]
            map.insert(4867, &[2097923]);     // 4867 => [2097923]
            map.insert(3958, &[4195075]);     // 3958 => [4195075]
            map.insert(5379, &[2098435]);     // 5379 => [2098435]
            map.insert(61, &[10499]);     // 61 => [10499]
            map.insert(4064, &[18691]);     // 4064 => [18691]
            map.insert(1221, &[35075]);     // 1221 => [35075]
            map.insert(3767, &[1050883]);     // 3767 => [1050883]
            map.insert(6403, &[2099459]);     // 6403 => [2099459]
            map.insert(3234, &[12547]);     // 3234 => [12547]
            map.insert(2703, &[69891]);     // 2703 => [69891]
            map.insert(1606, &[528643]);     // 1606 => [528643]
            map.insert(5532, &[2101507]);     // 5532 => [2101507]
            map.insert(1531, &[41219]);     // 1531 => [41219]
            map.insert(3047, &[532739]);     // 3047 => [532739]
            map.insert(3977, &[1057027]);     // 3977 => [1057027]
            map.insert(6205, &[2105603]);     // 6205 => [2105603]
            map.insert(1082, &[540931]);     // 1082 => [540931]
            map.insert(6112, &[2113795]);     // 6112 => [2113795]
            map.insert(2965, &[4210947]);     // 2965 => [4210947]
            map.insert(3368, &[295171]);     // 3368 => [295171]
            map.insert(2929, &[1081603]);     // 2929 => [1081603]
            map.insert(7365, &[2130179]);     // 7365 => [2130179]
            map.insert(1193, &[196867]);     // 1193 => [196867]
            map.insert(2468, &[1114371]);     // 2468 => [1114371]
            map.insert(7696, &[2162947]);     // 7696 => [2162947]
            map.insert(613, &[4260099]);     // 613 => [4260099]
            map.insert(2647, &[393475]);     // 2647 => [393475]
            map.insert(3086, &[1179907]);     // 3086 => [1179907]
            map.insert(7098, &[2228483]);     // 7098 => [2228483]
            map.insert(1999, &[4325635]);     // 1999 => [4325635]
            map.insert(4334, &[2359555]);     // 4334 => [2359555]
            map.insert(4825, &[2621699]);     // 4825 => [2621699]
            map.insert(3756, &[4718851]);     // 3756 => [4718851]
            map.insert(5815, &[3145987]);     // 5815 => [3145987]
            map.insert(2754, &[5243139]);     // 2754 => [5243139]
            map.insert(7542, &[6291715]);     // 7542 => [6291715]
            map.insert(668, &[5635]);     // 668 => [5635]
            map.insert(3901, &[9731]);     // 3901 => [9731]
            map.insert(3258, &[132611]);     // 3258 => [132611]
            map.insert(2030, &[263683]);     // 2030 => [263683]
            map.insert(1497, &[525827]);     // 1497 => [525827]
            map.insert(5635, &[2098691]);     // 5635 => [2098691]
            map.insert(829, &[10755]);     // 829 => [10755]
            map.insert(6659, &[2099715]);     // 6659 => [2099715]
            map.insert(1654, &[4196867]);     // 1654 => [4196867]
            map.insert(4002, &[12803]);     // 4002 => [12803]
            map.insert(127, &[20995]);     // 127 => [20995]
            map.insert(2447, &[70147]);     // 2447 => [70147]
            map.insert(1905, &[266755]);     // 1905 => [266755]
            map.insert(5788, &[2101763]);     // 5788 => [2101763]
            map.insert(2768, &[270851]);     // 2768 => [270851]
            map.insert(6973, &[2105859]);     // 6973 => [2105859]
            map.insert(1864, &[4203011]);     // 1864 => [4203011]
            map.insert(3059, &[82435]);     // 3059 => [82435]
            map.insert(1850, &[541187]);     // 1850 => [541187]
            map.insert(5344, &[2114051]);     // 5344 => [2114051]
            map.insert(2197, &[4211203]);     // 2197 => [4211203]
            map.insert(214, &[98819]);     // 214 => [98819]
            map.insert(1404, &[164355]);     // 1404 => [164355]
            map.insert(3624, &[295427]);     // 3624 => [295427]
            map.insert(8133, &[2130435]);     // 8133 => [2130435]
            map.insert(1961, &[197123]);     // 1961 => [197123]
            map.insert(7440, &[2163203]);     // 7440 => [2163203]
            map.insert(2912, &[655875]);     // 2912 => [655875]
            map.insert(6330, &[2228739]);     // 6330 => [2228739]
            map.insert(5102, &[2359811]);     // 5102 => [2359811]
            map.insert(4569, &[2621955]);     // 4569 => [2621955]
            map.insert(3500, &[4719107]);     // 3500 => [4719107]
            map.insert(5559, &[3146243]);     // 5559 => [3146243]
            map.insert(7798, &[6291971]);     // 7798 => [6291971]
            map.insert(2204, &[7171]);     // 2204 => [7171]
            map.insert(1722, &[134147]);     // 1722 => [134147]
            map.insert(2999, &[1051651]);     // 2999 => [1051651]
            map.insert(7171, &[2100227]);     // 7171 => [2100227]
            map.insert(118, &[4197379]);     // 118 => [4197379]
            map.insert(2466, &[13315]);     // 2466 => [13315]
            map.insert(369, &[267267]);     // 369 => [267267]
            map.insert(1832, &[1053699]);     // 1832 => [1053699]
            map.insert(4252, &[2102275]);     // 4252 => [2102275]
            map.insert(251, &[41987]);     // 251 => [41987]
            map.insert(558, &[74755]);     // 558 => [74755]
            map.insert(3280, &[271363]);     // 3280 => [271363]
            map.insert(7485, &[2106371]);     // 7485 => [2106371]
            map.insert(3571, &[82947]);     // 3571 => [82947]
            map.insert(781, &[279555]);     // 781 => [279555]
            map.insert(1364, &[1065987]);     // 1364 => [1065987]
            map.insert(4832, &[2114563]);     // 4832 => [2114563]
            map.insert(3733, &[4211715]);     // 3733 => [4211715]
            map.insert(1750, &[99331]);     // 1750 => [99331]
            map.insert(2591, &[558083]);     // 2591 => [558083]
            map.insert(6597, &[2130947]);     // 6597 => [2130947]
            map.insert(3236, &[1115139]);     // 3236 => [1115139]
            map.insert(6928, &[2163715]);     // 6928 => [2163715]
            map.insert(3424, &[656387]);     // 3424 => [656387]
            map.insert(7866, &[2229251]);     // 7866 => [2229251]
            map.insert(719, &[4326403]);     // 719 => [4326403]
            map.insert(5614, &[2360323]);     // 5614 => [2360323]
            map.insert(2459, &[4457475]);     // 2459 => [4457475]
            map.insert(6105, &[2622467]);     // 6105 => [2622467]
            map.insert(5047, &[3146755]);     // 5047 => [3146755]
            map.insert(6262, &[6292483]);     // 6262 => [6292483]
            map.insert(2687, &[22531]);     // 2687 => [22531]
            map.insert(2856, &[1054723]);     // 2856 => [1054723]
            map.insert(7324, &[2103299]);     // 7324 => [2103299]
            map.insert(3323, &[43011]);     // 3323 => [43011]
            map.insert(1673, &[1058819]);     // 1673 => [1058819]
            map.insert(4413, &[2107395]);     // 4413 => [2107395]
            map.insert(3400, &[4204547]);     // 3400 => [4204547]
            map.insert(7904, &[2115587]);     // 7904 => [2115587]
            map.insert(3964, &[165891]);     // 3964 => [165891]
            map.insert(625, &[1083395]);     // 625 => [1083395]
            map.insert(5573, &[2131971]);     // 5573 => [2131971]
            map.insert(1789, &[329731]);     // 1789 => [329731]
            map.insert(1226, &[591875]);     // 1226 => [591875]
            map.insert(5904, &[2164739]);     // 5904 => [2164739]
            map.insert(4794, &[2230275]);     // 4794 => [2230275]
            map.insert(3791, &[4327427]);     // 3791 => [4327427]
            map.insert(2612, &[788483]);     // 2612 => [788483]
            map.insert(6638, &[2361347]);     // 6638 => [2361347]
            map.insert(7129, &[2623491]);     // 7129 => [2623491]
            map.insert(8119, &[3147779]);     // 8119 => [3147779]
            map.insert(5238, &[6293507]);     // 5238 => [6293507]
            map.insert(3151, &[274435]);     // 3151 => [274435]
            map.insert(3704, &[536579]);     // 3704 => [536579]
            map.insert(7586, &[2109443]);     // 7586 => [2109443]
            map.insert(3436, &[86019]);     // 3436 => [86019]
            map.insert(4735, &[2117635]);     // 4735 => [2117635]
            map.insert(6490, &[2134019]);     // 6490 => [2134019]
            map.insert(1327, &[4231171]);     // 1327 => [4231171]
            map.insert(7055, &[2166787]);     // 7055 => [2166787]
            map.insert(4040, &[397315]);     // 4040 => [397315]
            map.insert(3583, &[659459]);     // 3583 => [659459]
            map.insert(2449, &[1183747]);     // 2449 => [1183747]
            map.insert(7717, &[2232323]);     // 7717 => [2232323]
            map.insert(5489, &[2363395]);     // 5489 => [2363395]
            map.insert(242, &[1576963]);     // 242 => [1576963]
            map.insert(5958, &[2625539]);     // 5958 => [2625539]
            map.insert(4904, &[3149827]);     // 4904 => [3149827]
            map.insert(6377, &[6295555]);     // 6377 => [6295555]
            map.insert(1383, &[155651]);     // 1383 => [155651]
            map.insert(8158, &[2121731]);     // 8158 => [2121731]
            map.insert(3048, &[106499]);     // 3048 => [106499]
            map.insert(847, &[1089539]);     // 847 => [1089539]
            map.insert(5371, &[2138115]);     // 5371 => [2138115]
            map.insert(5678, &[2170883]);     // 5678 => [2170883]
            map.insert(2651, &[4268035]);     // 2651 => [4268035]
            map.insert(4996, &[2236419]);     // 4996 => [2236419]
            map.insert(3940, &[1318915]);     // 3940 => [1318915]
            map.insert(6352, &[2367491]);     // 6352 => [2367491]
            map.insert(6887, &[2629635]);     // 6887 => [2629635]
            map.insert(7817, &[3153923]);     // 7817 => [3153923]
            map.insert(5448, &[6299651]);     // 5448 => [6299651]
            map.insert(2763, &[311299]);     // 2763 => [311299]
            map.insert(2300, &[573443]);     // 2300 => [573443]
            map.insert(3218, &[1097731]);     // 3218 => [1097731]
            map.insert(6950, &[2146307]);     // 6950 => [2146307]
            map.insert(3655, &[1130499]);     // 3655 => [1130499]
            map.insert(6643, &[2179075]);     // 6643 => [2179075]
            map.insert(7257, &[2244611]);     // 7257 => [2244611]
            map.insert(5901, &[2375683]);     // 5901 => [2375683]
            map.insert(2936, &[4472835]);     // 2936 => [4472835]
            map.insert(654, &[1589251]);     // 654 => [1589251]
            map.insert(5434, &[2637827]);     // 5434 => [2637827]
            map.insert(2383, &[4734979]);     // 2383 => [4734979]
            map.insert(4436, &[3162115]);     // 4436 => [3162115]
            map.insert(6805, &[6307843]);     // 6805 => [6307843]
            map.insert(2159, &[229379]);     // 2159 => [229379]
            map.insert(4822, &[2195459]);     // 4822 => [2195459]
            map.insert(6012, &[2260995]);     // 6012 => [2260995]
            map.insert(7208, &[2392067]);     // 7208 => [2392067]
            map.insert(2475, &[1605635]);     // 2475 => [1605635]
            map.insert(7711, &[2654211]);     // 7711 => [2654211]
            map.insert(6769, &[3178499]);     // 6769 => [3178499]
            map.insert(4528, &[6324227]);     // 4528 => [6324227]
            map.insert(541, &[1245187]);     // 541 => [1245187]
            map.insert(5545, &[2293763]);     // 5545 => [2293763]
            map.insert(2524, &[4390915]);     // 2524 => [4390915]
            map.insert(3367, &[851971]);     // 3367 => [851971]
            map.insert(7933, &[2424835]);     // 7933 => [2424835]
            map.insert(7370, &[2686979]);     // 7370 => [2686979]
            map.insert(6308, &[3211267]);     // 6308 => [3211267]
            map.insert(1233, &[5308419]);     // 1233 => [5308419]
            map.insert(4965, &[6356995]);     // 4965 => [6356995]
            map.insert(6999, &[2490371]);     // 6999 => [2490371]
            map.insert(3796, &[1703939]);     // 3796 => [1703939]
            map.insert(6496, &[2752515]);     // 6496 => [2752515]
            map.insert(7438, &[3276803]);     // 7438 => [3276803]
            map.insert(379, &[5373955]);     // 379 => [5373955]
            map.insert(5839, &[6422531]);     // 5839 => [6422531]
            map.insert(4660, &[2883587]);     // 4660 => [2883587]
            map.insert(5722, &[3407875]);     // 5722 => [3407875]
            map.insert(2607, &[5505027]);     // 2607 => [5505027]
            map.insert(7579, &[6553603]);     // 7579 => [6553603]
            map.insert(5229, &[3670019]);     // 5229 => [3670019]
            map.insert(8108, &[6815747]);     // 8108 => [6815747]
            map.insert(7106, &[7340035]);     // 7106 => [7340035]
            map.insert(4125, &[2097181]);     // 4125 => [2097181]
            map.insert(1202, &[4141]);     // 1202 => [4141]
            map.insert(3563, &[32813]);     // 3563 => [32813]
            map.insert(4141, &[2097197]);     // 4141 => [2097197]
            map.insert(589, &[589]);     // 589 => [589]
            map.insert(2125, &[2125]);     // 2125 => [2125]
            map.insert(4173, &[2097229]);     // 4173 => [2097229]
            map.insert(4237, &[2097293]);     // 4237 => [2097293]
            map.insert(1426, &[4365]);     // 1426 => [4365]
            map.insert(4365, &[2097421]);     // 4365 => [2097421]
            map.insert(3448, &[4194573]);     // 3448 => [4194573]
            map.insert(2573, &[2573]);     // 2573 => [2573]
            map.insert(4621, &[2097677]);     // 4621 => [2097677]
            map.insert(2507, &[33805]);     // 2507 => [33805]
            map.insert(5133, &[2098189]);     // 5133 => [2098189]
            map.insert(2168, &[4195341]);     // 2168 => [4195341]
            map.insert(6157, &[2099213]);     // 6157 => [2099213]
            map.insert(5266, &[2101261]);     // 5266 => [2101261]
            map.insert(2270, &[270349]);     // 2270 => [270349]
            map.insert(3719, &[1056781]);     // 3719 => [1056781]
            map.insert(6451, &[2105357]);     // 6451 => [2105357]
            map.insert(5870, &[2113549]);     // 5870 => [2113549]
            map.insert(7627, &[2129933]);     // 7627 => [2129933]
            map.insert(7966, &[2162701]);     // 7966 => [2162701]
            map.insert(6836, &[2228237]);     // 6836 => [2228237]
            map.insert(1620, &[1310733]);     // 1620 => [1310733]
            map.insert(4576, &[2359309]);     // 4576 => [2359309]
            map.insert(5079, &[2621453]);     // 5079 => [2621453]
            map.insert(6073, &[3145741]);     // 6073 => [3145741]
            map.insert(7288, &[6291469]);     // 7288 => [6291469]
            map.insert(181, &[181]);     // 181 => [181]
            map.insert(1921, &[1048629]);     // 1921 => [1048629]
            map.insert(4149, &[2097205]);     // 4149 => [2097205]
            map.insert(4181, &[2097237]);     // 4181 => [2097237]
            map.insert(405, &[405]);     // 405 => [405]
            map.insert(4245, &[2097301]);     // 4245 => [2097301]
            map.insert(789, &[789]);     // 789 => [789]
            map.insert(4373, &[2097429]);     // 4373 => [2097429]
            map.insert(1557, &[1557]);     // 1557 => [1557]
            map.insert(4629, &[2097685]);     // 4629 => [2097685]
            map.insert(929, &[1049621]);     // 929 => [1049621]
            map.insert(5141, &[2098197]);     // 5141 => [2098197]
            map.insert(1491, &[34837]);     // 1491 => [34837]
            map.insert(684, &[133141]);     // 684 => [133141]
            map.insert(6165, &[2099221]);     // 6165 => [2099221]
            map.insert(5258, &[2101269]);     // 5258 => [2101269]
            map.insert(1592, &[73749]);     // 1592 => [73749]
            map.insert(6443, &[2105365]);     // 6443 => [2105365]
            map.insert(1374, &[4202517]);     // 1374 => [4202517]
            map.insert(5878, &[2113557]);     // 5878 => [2113557]
            map.insert(1898, &[163861]);     // 1898 => [163861]
            map.insert(7635, &[2129941]);     // 7635 => [2129941]
            map.insert(7942, &[2162709]);     // 7942 => [2162709]
            map.insert(883, &[4259861]);     // 883 => [4259861]
            map.insert(6828, &[2228245]);     // 6828 => [2228245]
            map.insert(4600, &[2359317]);     // 4600 => [2359317]
            map.insert(5071, &[2621461]);     // 5071 => [2621461]
            map.insert(6049, &[3145749]);     // 6049 => [3145749]
            map.insert(7264, &[6291477]);     // 7264 => [6291477]
            map.insert(1670, &[16485]);     // 1670 => [16485]
            map.insert(2780, &[131173]);     // 2780 => [131173]
            map.insert(4197, &[2097253]);     // 4197 => [2097253]
            map.insert(677, &[677]);     // 677 => [677]
            map.insert(4261, &[2097317]);     // 4261 => [2097317]
            map.insert(1317, &[1317]);     // 1317 => [1317]
            map.insert(4389, &[2097445]);     // 4389 => [2097445]
            map.insert(1425, &[1049125]);     // 1425 => [1049125]
            map.insert(4645, &[2097701]);     // 4645 => [2097701]
            map.insert(5157, &[2098213]);     // 5157 => [2098213]
            map.insert(2504, &[264229]);     // 2504 => [264229]
            map.insert(3071, &[526373]);     // 3071 => [526373]
            map.insert(6181, &[2099237]);     // 6181 => [2099237]
            map.insert(5306, &[2101285]);     // 5306 => [2101285]
            map.insert(2255, &[4198437]);     // 2255 => [4198437]
            map.insert(4088, &[24613]);     // 4088 => [24613]
            map.insert(930, &[139301]);     // 930 => [139301]
            map.insert(6427, &[2105381]);     // 6427 => [2105381]
            map.insert(5830, &[2113573]);     // 5830 => [2113573]
            map.insert(7651, &[2129957]);     // 7651 => [2129957]
            map.insert(406, &[4227109]);     // 406 => [4227109]
            map.insert(3803, &[327717]);     // 3803 => [327717]
            map.insert(3308, &[589861]);     // 3308 => [589861]
            map.insert(7990, &[2162725]);     // 7990 => [2162725]
            map.insert(6812, &[2228261]);     // 6812 => [2228261]
            map.insert(4552, &[2359333]);     // 4552 => [2359333]
            map.insert(5119, &[2621477]);     // 5119 => [2621477]
            map.insert(6033, &[3145765]);     // 6033 => [3145765]
            map.insert(7248, &[6291493]);     // 7248 => [6291493]
            map.insert(799, &[524485]);     // 799 => [524485]
            map.insert(4293, &[2097349]);     // 4293 => [2097349]
            map.insert(3248, &[4194501]);     // 3248 => [4194501]
            map.insert(2171, &[8517]);     // 2171 => [8517]
            map.insert(3068, &[131397]);     // 3068 => [131397]
            map.insert(4421, &[2097477]);     // 4421 => [2097477]
            map.insert(2629, &[2629]);     // 2629 => [2629]
            map.insert(4677, &[2097733]);     // 4677 => [2097733]
            map.insert(3451, &[9285]);     // 3451 => [9285]
            map.insert(678, &[17477]);     // 678 => [17477]
            map.insert(5189, &[2098245]);     // 5189 => [2098245]
            map.insert(6213, &[2099269]);     // 6213 => [2099269]
            map.insert(5338, &[2101317]);     // 5338 => [2101317]
            map.insert(6523, &[2105413]);     // 6523 => [2105413]
            map.insert(5798, &[2113605]);     // 5798 => [2113605]
            map.insert(7555, &[2129989]);     // 7555 => [2129989]
            map.insert(8022, &[2162757]);     // 8022 => [2162757]
            map.insert(6908, &[2228293]);     // 6908 => [2228293]
            map.insert(4520, &[2359365]);     // 4520 => [2359365]
            map.insert(5023, &[2621509]);     // 5023 => [2621509]
            map.insert(4074, &[4718661]);     // 4074 => [4718661]
            map.insert(6129, &[3145797]);     // 6129 => [3145797]
            map.insert(7216, &[6291525]);     // 7216 => [6291525]
            map.insert(1585, &[1048965]);     // 1585 => [1048965]
            map.insert(4485, &[2097541]);     // 4485 => [2097541]
            map.insert(1669, &[1669]);     // 1669 => [1669]
            map.insert(4741, &[2097797]);     // 4741 => [2097797]
            map.insert(817, &[1049733]);     // 817 => [1049733]
            map.insert(5253, &[2098309]);     // 5253 => [2098309]
            map.insert(6277, &[2099333]);     // 6277 => [2099333]
            map.insert(5146, &[2101381]);     // 5146 => [2101381]
            map.insert(6587, &[2105477]);     // 6587 => [2105477]
            map.insert(2976, &[49285]);     // 2976 => [49285]
            map.insert(1931, &[278661]);     // 1931 => [278661]
            map.insert(5734, &[2113669]);     // 5734 => [2113669]
            map.insert(3246, &[295045]);     // 3246 => [295045]
            map.insert(7491, &[2130053]);     // 7491 => [2130053]
            map.insert(8086, &[2162821]);     // 8086 => [2162821]
            map.insert(6716, &[2228357]);     // 6716 => [2228357]
            map.insert(4456, &[2359429]);     // 4456 => [2359429]
            map.insert(4959, &[2621573]);     // 4959 => [2621573]
            map.insert(3882, &[4718725]);     // 3882 => [4718725]
            map.insert(5937, &[3145861]);     // 5937 => [3145861]
            map.insert(7408, &[6291589]);     // 7408 => [6291589]
            map.insert(1201, &[1049349]);     // 1201 => [1049349]
            map.insert(4869, &[2097925]);     // 4869 => [2097925]
            map.insert(5381, &[2098437]);     // 5381 => [2098437]
            map.insert(1558, &[67845]);     // 1558 => [67845]
            map.insert(2783, &[526597]);     // 2783 => [526597]
            map.insert(6405, &[2099461]);     // 6405 => [2099461]
            map.insert(2140, &[37125]);     // 2140 => [37125]
            map.insert(5530, &[2101509]);     // 5530 => [2101509]
            map.insert(3800, &[24837]);     // 3800 => [24837]
            map.insert(6203, &[2105605]);     // 6203 => [2105605]
            map.insert(3423, &[147717]);     // 3423 => [147717]
            map.insert(6118, &[2113797]);     // 6118 => [2113797]
            map.insert(7363, &[2130181]);     // 7363 => [2130181]
            map.insert(182, &[4227333]);     // 182 => [4227333]
            map.insert(4091, &[327941]);     // 4091 => [327941]
            map.insert(7702, &[2162949]);     // 7702 => [2162949]
            map.insert(7100, &[2228485]);     // 7100 => [2228485]
            map.insert(818, &[786693]);     // 818 => [786693]
            map.insert(4328, &[2359557]);     // 4328 => [2359557]
            map.insert(4831, &[2621701]);     // 4831 => [2621701]
            map.insert(5809, &[3145989]);     // 5809 => [3145989]
            map.insert(7536, &[6291717]);     // 7536 => [6291717]
            map.insert(5637, &[2098693]);     // 5637 => [2098693]
            map.insert(6661, &[2099717]);     // 6661 => [2099717]
            map.insert(121, &[20997]);     // 121 => [20997]
            map.insert(2441, &[70149]);     // 2441 => [70149]
            map.insert(5786, &[2101765]);     // 5786 => [2101765]
            map.insert(6971, &[2105861]);     // 6971 => [2105861]
            map.insert(3061, &[82437]);     // 3061 => [82437]
            map.insert(5350, &[2114053]);     // 5350 => [2114053]
            map.insert(8131, &[2130437]);     // 8131 => [2130437]
            map.insert(7446, &[2163205]);     // 7446 => [2163205]
            map.insert(6332, &[2228741]);     // 6332 => [2228741]
            map.insert(5096, &[2359813]);     // 5096 => [2359813]
            map.insert(4575, &[2621957]);     // 4575 => [2621957]
            map.insert(5553, &[3146245]);     // 5553 => [3146245]
            map.insert(7792, &[6291973]);     // 7792 => [6291973]
            map.insert(790, &[68613]);     // 790 => [68613]
            map.insert(3560, &[265221]);     // 3560 => [265221]
            map.insert(7173, &[2100229]);     // 7173 => [2100229]
            map.insert(3420, &[37893]);     // 3420 => [37893]
            map.insert(4250, &[2102277]);     // 4250 => [2102277]
            map.insert(3311, &[4199429]);     // 3311 => [4199429]
            map.insert(1922, &[140293]);     // 1922 => [140293]
            map.insert(7483, &[2106373]);     // 7483 => [2106373]
            map.insert(2143, &[148485]);     // 2143 => [148485]
            map.insert(4838, &[2114565]);     // 4838 => [2114565]
            map.insert(6595, &[2130949]);     // 6595 => [2130949]
            map.insert(2252, &[590853]);     // 2252 => [590853]
            map.insert(6934, &[2163717]);     // 6934 => [2163717]
            map.insert(7868, &[2229253]);     // 7868 => [2229253]
            map.insert(1586, &[787461]);     // 1586 => [787461]
            map.insert(5608, &[2360325]);     // 5608 => [2360325]
            map.insert(6111, &[2622469]);     // 6111 => [2622469]
            map.insert(5041, &[3146757]);     // 5041 => [3146757]
            map.insert(6256, &[6292485]);     // 6256 => [6292485]
            map.insert(7322, &[2103301]);     // 7322 => [2103301]
            map.insert(4411, &[2107397]);     // 4411 => [2107397]
            map.insert(7910, &[2115589]);     // 7910 => [2115589]
            map.insert(3962, &[165893]);     // 3962 => [165893]
            map.insert(5571, &[2131973]);     // 5571 => [2131973]
            map.insert(5910, &[2164741]);     // 5910 => [2164741]
            map.insert(4796, &[2230277]);     // 4796 => [2230277]
            map.insert(6632, &[2361349]);     // 6632 => [2361349]
            map.insert(7135, &[2623493]);     // 7135 => [2623493]
            map.insert(8113, &[3147781]);     // 8113 => [3147781]
            map.insert(5232, &[6293509]);     // 5232 => [6293509]
            map.insert(7588, &[2109445]);     // 7588 => [2109445]
            map.insert(3434, &[86021]);     // 3434 => [86021]
            map.insert(4729, &[2117637]);     // 4729 => [2117637]
            map.insert(6492, &[2134021]);     // 6492 => [2134021]
            map.insert(7049, &[2166789]);     // 7049 => [2166789]
            map.insert(3577, &[659461]);     // 3577 => [659461]
            map.insert(2455, &[1183749]);     // 2455 => [1183749]
            map.insert(7715, &[2232325]);     // 7715 => [2232325]
            map.insert(5495, &[2363397]);     // 5495 => [2363397]
            map.insert(244, &[1576965]);     // 244 => [1576965]
            map.insert(5952, &[2625541]);     // 5952 => [2625541]
            map.insert(4910, &[3149829]);     // 4910 => [3149829]
            map.insert(6383, &[6295557]);     // 6383 => [6295557]
            map.insert(8152, &[2121733]);     // 8152 => [2121733]
            map.insert(5373, &[2138117]);     // 5373 => [2138117]
            map.insert(5672, &[2170885]);     // 5672 => [2170885]
            map.insert(2653, &[4268037]);     // 2653 => [4268037]
            map.insert(4994, &[2236421]);     // 4994 => [2236421]
            map.insert(3938, &[1318917]);     // 3938 => [1318917]
            map.insert(6358, &[2367493]);     // 6358 => [2367493]
            map.insert(6881, &[2629637]);     // 6881 => [2629637]
            map.insert(7823, &[3153925]);     // 7823 => [3153925]
            map.insert(5454, &[6299653]);     // 5454 => [6299653]
            map.insert(2765, &[311301]);     // 2765 => [311301]
            map.insert(6944, &[2146309]);     // 6944 => [2146309]
            map.insert(6645, &[2179077]);     // 6645 => [2179077]
            map.insert(7263, &[2244613]);     // 7263 => [2244613]
            map.insert(5899, &[2375685]);     // 5899 => [2375685]
            map.insert(5436, &[2637829]);     // 5436 => [2637829]
            map.insert(4434, &[3162117]);     // 4434 => [3162117]
            map.insert(6803, &[6307845]);     // 6803 => [6307845]
            map.insert(4816, &[2195461]);     // 4816 => [2195461]
            map.insert(6010, &[2260997]);     // 6010 => [2260997]
            map.insert(7214, &[2392069]);     // 7214 => [2392069]
            map.insert(7705, &[2654213]);     // 7705 => [2654213]
            map.insert(6775, &[3178501]);     // 6775 => [3178501]
            map.insert(4534, &[6324229]);     // 4534 => [6324229]
            map.insert(5551, &[2293765]);     // 5551 => [2293765]
            map.insert(7931, &[2424837]);     // 7931 => [2424837]
            map.insert(7372, &[2686981]);     // 7372 => [2686981]
            map.insert(6306, &[3211269]);     // 6306 => [3211269]
            map.insert(4963, &[6356997]);     // 4963 => [6356997]
            map.insert(6993, &[2490373]);     // 6993 => [2490373]
            map.insert(3794, &[1703941]);     // 3794 => [1703941]
            map.insert(6502, &[2752517]);     // 6502 => [2752517]
            map.insert(7432, &[3276805]);     // 7432 => [3276805]
            map.insert(5833, &[6422533]);     // 5833 => [6422533]
            map.insert(4658, &[2883589]);     // 4658 => [2883589]
            map.insert(5724, &[3407877]);     // 5724 => [3407877]
            map.insert(7581, &[6553605]);     // 7581 => [6553605]
            map.insert(5227, &[3670021]);     // 5227 => [3670021]
            map.insert(8106, &[6815749]);     // 8106 => [6815749]
            map.insert(7108, &[7340037]);     // 7108 => [7340037]
            map.insert(4153, &[2097209]);     // 4153 => [2097209]
            map.insert(3914, &[65625]);     // 3914 => [65625]
            map.insert(4185, &[2097241]);     // 4185 => [2097241]
            map.insert(4249, &[2097305]);     // 4249 => [2097305]
            map.insert(4377, &[2097433]);     // 4377 => [2097433]
            map.insert(4633, &[2097689]);     // 4633 => [2097689]
            map.insert(3692, &[4194841]);     // 3692 => [4194841]
            map.insert(5145, &[2098201]);     // 5145 => [2098201]
            map.insert(6169, &[2099225]);     // 6169 => [2099225]
            map.insert(5254, &[2101273]);     // 5254 => [2101273]
            map.insert(6439, &[2105369]);     // 6439 => [2105369]
            map.insert(5882, &[2113561]);     // 5882 => [2113561]
            map.insert(2667, &[1081369]);     // 2667 => [1081369]
            map.insert(7647, &[2129945]);     // 7647 => [2129945]
            map.insert(7946, &[2162713]);     // 7946 => [2162713]
            map.insert(2893, &[393241]);     // 2893 => [393241]
            map.insert(6816, &[2228249]);     // 6816 => [2228249]
            map.insert(4596, &[2359321]);     // 4596 => [2359321]
            map.insert(5059, &[2621465]);     // 5059 => [2621465]
            map.insert(6061, &[3145753]);     // 6061 => [3145753]
            map.insert(7276, &[6291481]);     // 7276 => [6291481]
            map.insert(4201, &[2097257]);     // 4201 => [2097257]
            map.insert(4265, &[2097321]);     // 4265 => [2097321]
            map.insert(4393, &[2097449]);     // 4393 => [2097449]
            map.insert(4649, &[2097705]);     // 4649 => [2097705]
            map.insert(5161, &[2098217]);     // 5161 => [2098217]
            map.insert(6185, &[2099241]);     // 6185 => [2099241]
            map.insert(5302, &[2101289]);     // 5302 => [2101289]
            map.insert(6423, &[2105385]);     // 6423 => [2105385]
            map.insert(5834, &[2113577]);     // 5834 => [2113577]
            map.insert(7663, &[2129961]);     // 7663 => [2129961]
            map.insert(7994, &[2162729]);     // 7994 => [2162729]
            map.insert(6800, &[2228265]);     // 6800 => [2228265]
            map.insert(4548, &[2359337]);     // 4548 => [2359337]
            map.insert(5107, &[2621481]);     // 5107 => [2621481]
            map.insert(6045, &[3145769]);     // 6045 => [3145769]
            map.insert(7260, &[6291497]);     // 7260 => [6291497]
            map.insert(4297, &[2097353]);     // 4297 => [2097353]
            map.insert(4425, &[2097481]);     // 4425 => [2097481]
            map.insert(2633, &[2633]);     // 2633 => [2633]
            map.insert(4681, &[2097737]);     // 4681 => [2097737]
            map.insert(5193, &[2098249]);     // 5193 => [2098249]
            map.insert(6217, &[2099273]);     // 6217 => [2099273]
            map.insert(3695, &[135241]);     // 3695 => [135241]
            map.insert(5334, &[2101321]);     // 5334 => [2101321]
            map.insert(6519, &[2105417]);     // 6519 => [2105417]
            map.insert(2924, &[49225]);     // 2924 => [49225]
            map.insert(5802, &[2113609]);     // 5802 => [2113609]
            map.insert(7567, &[2129993]);     // 7567 => [2129993]
            map.insert(8026, &[2162761]);     // 8026 => [2162761]
            map.insert(6896, &[2228297]);     // 6896 => [2228297]
            map.insert(4516, &[2359369]);     // 4516 => [2359369]
            map.insert(5011, &[2621513]);     // 5011 => [2621513]
            map.insert(6141, &[3145801]);     // 6141 => [3145801]
            map.insert(7228, &[6291529]);     // 7228 => [6291529]
            map.insert(4489, &[2097545]);     // 4489 => [2097545]
            map.insert(3919, &[33417]);     // 3919 => [33417]
            map.insert(4745, &[2097801]);     // 4745 => [2097801]
            map.insert(5257, &[2098313]);     // 5257 => [2098313]
            map.insert(3690, &[18569]);     // 3690 => [18569]
            map.insert(6281, &[2099337]);     // 6281 => [2099337]
            map.insert(5142, &[2101385]);     // 5142 => [2101385]
            map.insert(2669, &[532617]);     // 2669 => [532617]
            map.insert(6583, &[2105481]);     // 6583 => [2105481]
            map.insert(5738, &[2113673]);     // 5738 => [2113673]
            map.insert(7503, &[2130057]);     // 7503 => [2130057]
            map.insert(8090, &[2162825]);     // 8090 => [2162825]
            map.insert(6704, &[2228361]);     // 6704 => [2228361]
            map.insert(4452, &[2359433]);     // 4452 => [2359433]
            map.insert(4947, &[2621577]);     // 4947 => [2621577]
            map.insert(5949, &[3145865]);     // 5949 => [3145865]
            map.insert(2888, &[5243017]);     // 2888 => [5243017]
            map.insert(7420, &[6291593]);     // 7420 => [6291593]
            map.insert(4873, &[2097929]);     // 4873 => [2097929]
            map.insert(5385, &[2098441]);     // 5385 => [2098441]
            map.insert(6409, &[2099465]);     // 6409 => [2099465]
            map.insert(5526, &[2101513]);     // 5526 => [2101513]
            map.insert(6199, &[2105609]);     // 6199 => [2105609]
            map.insert(6122, &[2113801]);     // 6122 => [2113801]
            map.insert(7375, &[2130185]);     // 7375 => [2130185]
            map.insert(7706, &[2162953]);     // 7706 => [2162953]
            map.insert(7088, &[2228489]);     // 7088 => [2228489]
            map.insert(4324, &[2359561]);     // 4324 => [2359561]
            map.insert(4819, &[2621705]);     // 4819 => [2621705]
            map.insert(5821, &[3145993]);     // 5821 => [3145993]
            map.insert(7548, &[6291721]);     // 7548 => [6291721]
            map.insert(5641, &[2098697]);     // 5641 => [2098697]
            map.insert(6665, &[2099721]);     // 6665 => [2099721]
            map.insert(5782, &[2101769]);     // 5782 => [2101769]
            map.insert(6967, &[2105865]);     // 6967 => [2105865]
            map.insert(5354, &[2114057]);     // 5354 => [2114057]
            map.insert(8143, &[2130441]);     // 8143 => [2130441]
            map.insert(7450, &[2163209]);     // 7450 => [2163209]
            map.insert(2922, &[655881]);     // 2922 => [655881]
            map.insert(6320, &[2228745]);     // 6320 => [2228745]
            map.insert(5092, &[2359817]);     // 5092 => [2359817]
            map.insert(4563, &[2621961]);     // 4563 => [2621961]
            map.insert(5565, &[3146249]);     // 5565 => [3146249]
            map.insert(7804, &[6291977]);     // 7804 => [6291977]
            map.insert(7177, &[2100233]);     // 7177 => [2100233]
            map.insert(4246, &[2102281]);     // 4246 => [2102281]
            map.insert(7479, &[2106377]);     // 7479 => [2106377]
            map.insert(4842, &[2114569]);     // 4842 => [2114569]
            map.insert(6607, &[2130953]);     // 6607 => [2130953]
            map.insert(6938, &[2163721]);     // 6938 => [2163721]
            map.insert(7856, &[2229257]);     // 7856 => [2229257]
            map.insert(5604, &[2360329]);     // 5604 => [2360329]
            map.insert(6099, &[2622473]);     // 6099 => [2622473]
            map.insert(5053, &[3146761]);     // 5053 => [3146761]
            map.insert(6268, &[6292489]);     // 6268 => [6292489]
            map.insert(3916, &[530441]);     // 3916 => [530441]
            map.insert(7318, &[2103305]);     // 7318 => [2103305]
            map.insert(4407, &[2107401]);     // 4407 => [2107401]
            map.insert(7914, &[2115593]);     // 7914 => [2115593]
            map.insert(5583, &[2131977]);     // 5583 => [2131977]
            map.insert(5914, &[2164745]);     // 5914 => [2164745]
            map.insert(2927, &[4261897]);     // 2927 => [4261897]
            map.insert(4784, &[2230281]);     // 4784 => [2230281]
            map.insert(6628, &[2361353]);     // 6628 => [2361353]
            map.insert(7123, &[2623497]);     // 7123 => [2623497]
            map.insert(8125, &[3147785]);     // 8125 => [3147785]
            map.insert(5244, &[6293513]);     // 5244 => [6293513]
            map.insert(2891, &[28681]);     // 2891 => [28681]
            map.insert(7592, &[2109449]);     // 7592 => [2109449]
            map.insert(4725, &[2117641]);     // 4725 => [2117641]
            map.insert(6480, &[2134025]);     // 6480 => [2134025]
            map.insert(2664, &[331785]);     // 2664 => [331785]
            map.insert(7045, &[2166793]);     // 7045 => [2166793]
            map.insert(7727, &[2232329]);     // 7727 => [2232329]
            map.insert(5499, &[2363401]);     // 5499 => [2363401]
            map.insert(5964, &[2625545]);     // 5964 => [2625545]
            map.insert(4898, &[3149833]);     // 4898 => [3149833]
            map.insert(6371, &[6295561]);     // 6371 => [6295561]
            map.insert(8148, &[2121737]);     // 8148 => [2121737]
            map.insert(3656, &[172041]);     // 3656 => [172041]
            map.insert(5361, &[2138121]);     // 5361 => [2138121]
            map.insert(5668, &[2170889]);     // 5668 => [2170889]
            map.insert(5006, &[2236425]);     // 5006 => [2236425]
            map.insert(3950, &[1318921]);     // 3950 => [1318921]
            map.insert(6362, &[2367497]);     // 6362 => [2367497]
            map.insert(6893, &[2629641]);     // 6893 => [2629641]
            map.insert(7811, &[3153929]);     // 7811 => [3153929]
            map.insert(5442, &[6299657]);     // 5442 => [6299657]
            map.insert(6956, &[2146313]);     // 6956 => [2146313]
            map.insert(3661, &[1130505]);     // 3661 => [1130505]
            map.insert(6649, &[2179081]);     // 6649 => [2179081]
            map.insert(7251, &[2244617]);     // 7251 => [2244617]
            map.insert(5895, &[2375689]);     // 5895 => [2375689]
            map.insert(5424, &[2637833]);     // 5424 => [2637833]
            map.insert(4446, &[3162121]);     // 4446 => [3162121]
            map.insert(6815, &[6307849]);     // 6815 => [6307849]
            map.insert(4828, &[2195465]);     // 4828 => [2195465]
            map.insert(6006, &[2261001]);     // 6006 => [2261001]
            map.insert(7202, &[2392073]);     // 7202 => [2392073]
            map.insert(7701, &[2654217]);     // 7701 => [2654217]
            map.insert(6779, &[3178505]);     // 6779 => [3178505]
            map.insert(4538, &[6324233]);     // 4538 => [6324233]
            map.insert(5539, &[2293769]);     // 5539 => [2293769]
            map.insert(7927, &[2424841]);     // 7927 => [2424841]
            map.insert(7360, &[2686985]);     // 7360 => [2686985]
            map.insert(6318, &[3211273]);     // 6318 => [3211273]
            map.insert(4975, &[6357001]);     // 4975 => [6357001]
            map.insert(7005, &[2490377]);     // 7005 => [2490377]
            map.insert(6506, &[2752521]);     // 6506 => [2752521]
            map.insert(7428, &[3276809]);     // 7428 => [3276809]
            map.insert(5829, &[6422537]);     // 5829 => [6422537]
            map.insert(4670, &[2883593]);     // 4670 => [2883593]
            map.insert(3659, &[4980745]);     // 3659 => [4980745]
            map.insert(5712, &[3407881]);     // 5712 => [3407881]
            map.insert(7569, &[6553609]);     // 7569 => [6553609]
            map.insert(5223, &[3670025]);     // 5223 => [3670025]
            map.insert(8102, &[6815753]);     // 8102 => [6815753]
            map.insert(7112, &[7340041]);     // 7112 => [7340041]
            map.insert(4209, &[2097265]);     // 4209 => [2097265]
            map.insert(4273, &[2097329]);     // 4273 => [2097329]
            map.insert(4401, &[2097457]);     // 4401 => [2097457]
            map.insert(4657, &[2097713]);     // 4657 => [2097713]
            map.insert(5169, &[2098225]);     // 5169 => [2098225]
            map.insert(6193, &[2099249]);     // 6193 => [2099249]
            map.insert(5294, &[2101297]);     // 5294 => [2101297]
            map.insert(6415, &[2105393]);     // 6415 => [2105393]
            map.insert(5842, &[2113585]);     // 5842 => [2113585]
            map.insert(7671, &[2129969]);     // 7671 => [2129969]
            map.insert(7970, &[2162737]);     // 7970 => [2162737]
            map.insert(6792, &[2228273]);     // 6792 => [2228273]
            map.insert(4572, &[2359345]);     // 4572 => [2359345]
            map.insert(5099, &[2621489]);     // 5099 => [2621489]
            map.insert(6021, &[3145777]);     // 6021 => [3145777]
            map.insert(7236, &[6291505]);     // 7236 => [6291505]
            map.insert(4305, &[2097361]);     // 4305 => [2097361]
            map.insert(4433, &[2097489]);     // 4433 => [2097489]
            map.insert(4689, &[2097745]);     // 4689 => [2097745]
            map.insert(5201, &[2098257]);     // 5201 => [2098257]
            map.insert(6225, &[2099281]);     // 6225 => [2099281]
            map.insert(5326, &[2101329]);     // 5326 => [2101329]
            map.insert(6511, &[2105425]);     // 6511 => [2105425]
            map.insert(5810, &[2113617]);     // 5810 => [2113617]
            map.insert(7575, &[2130001]);     // 7575 => [2130001]
            map.insert(8002, &[2162769]);     // 8002 => [2162769]
            map.insert(6888, &[2228305]);     // 6888 => [2228305]
            map.insert(4540, &[2359377]);     // 4540 => [2359377]
            map.insert(5003, &[2621521]);     // 5003 => [2621521]
            map.insert(6117, &[3145809]);     // 6117 => [3145809]
            map.insert(7204, &[6291537]);     // 7204 => [6291537]
            map.insert(4497, &[2097553]);     // 4497 => [2097553]
            map.insert(4753, &[2097809]);     // 4753 => [2097809]
            map.insert(5265, &[2098321]);     // 5265 => [2098321]
            map.insert(6289, &[2099345]);     // 6289 => [2099345]
            map.insert(5134, &[2101393]);     // 5134 => [2101393]
            map.insert(6575, &[2105489]);     // 6575 => [2105489]
            map.insert(5746, &[2113681]);     // 5746 => [2113681]
            map.insert(7511, &[2130065]);     // 7511 => [2130065]
            map.insert(8066, &[2162833]);     // 8066 => [2162833]
            map.insert(6696, &[2228369]);     // 6696 => [2228369]
            map.insert(4476, &[2359441]);     // 4476 => [2359441]
            map.insert(4939, &[2621585]);     // 4939 => [2621585]
            map.insert(5925, &[3145873]);     // 5925 => [3145873]
            map.insert(7396, &[6291601]);     // 7396 => [6291601]
            map.insert(4881, &[2097937]);     // 4881 => [2097937]
            map.insert(5393, &[2098449]);     // 5393 => [2098449]
            map.insert(6417, &[2099473]);     // 6417 => [2099473]
            map.insert(5518, &[2101521]);     // 5518 => [2101521]
            map.insert(6191, &[2105617]);     // 6191 => [2105617]
            map.insert(6130, &[2113809]);     // 6130 => [2113809]
            map.insert(7383, &[2130193]);     // 7383 => [2130193]
            map.insert(7682, &[2162961]);     // 7682 => [2162961]
            map.insert(7080, &[2228497]);     // 7080 => [2228497]
            map.insert(4348, &[2359569]);     // 4348 => [2359569]
            map.insert(4811, &[2621713]);     // 4811 => [2621713]
            map.insert(5797, &[3146001]);     // 5797 => [3146001]
            map.insert(7524, &[6291729]);     // 7524 => [6291729]
            map.insert(5649, &[2098705]);     // 5649 => [2098705]
            map.insert(6673, &[2099729]);     // 6673 => [2099729]
            map.insert(5774, &[2101777]);     // 5774 => [2101777]
            map.insert(6959, &[2105873]);     // 6959 => [2105873]
            map.insert(5362, &[2114065]);     // 5362 => [2114065]
            map.insert(8151, &[2130449]);     // 8151 => [2130449]
            map.insert(7426, &[2163217]);     // 7426 => [2163217]
            map.insert(6312, &[2228753]);     // 6312 => [2228753]
            map.insert(5116, &[2359825]);     // 5116 => [2359825]
            map.insert(4555, &[2621969]);     // 4555 => [2621969]
            map.insert(5541, &[3146257]);     // 5541 => [3146257]
            map.insert(7780, &[6291985]);     // 7780 => [6291985]
            map.insert(7185, &[2100241]);     // 7185 => [2100241]
            map.insert(4238, &[2102289]);     // 4238 => [2102289]
            map.insert(7471, &[2106385]);     // 7471 => [2106385]
            map.insert(4850, &[2114577]);     // 4850 => [2114577]
            map.insert(6615, &[2130961]);     // 6615 => [2130961]
            map.insert(6914, &[2163729]);     // 6914 => [2163729]
            map.insert(7848, &[2229265]);     // 7848 => [2229265]
            map.insert(5628, &[2360337]);     // 5628 => [2360337]
            map.insert(6091, &[2622481]);     // 6091 => [2622481]
            map.insert(5029, &[3146769]);     // 5029 => [3146769]
            map.insert(6244, &[6292497]);     // 6244 => [6292497]
            map.insert(7310, &[2103313]);     // 7310 => [2103313]
            map.insert(4399, &[2107409]);     // 4399 => [2107409]
            map.insert(7922, &[2115601]);     // 7922 => [2115601]
            map.insert(5591, &[2131985]);     // 5591 => [2131985]
            map.insert(5890, &[2164753]);     // 5890 => [2164753]
            map.insert(4776, &[2230289]);     // 4776 => [2230289]
            map.insert(6652, &[2361361]);     // 6652 => [2361361]
            map.insert(7115, &[2623505]);     // 7115 => [2623505]
            map.insert(8101, &[3147793]);     // 8101 => [3147793]
            map.insert(5220, &[6293521]);     // 5220 => [6293521]
            map.insert(7600, &[2109457]);     // 7600 => [2109457]
            map.insert(4717, &[2117649]);     // 4717 => [2117649]
            map.insert(6472, &[2134033]);     // 6472 => [2134033]
            map.insert(7069, &[2166801]);     // 7069 => [2166801]
            map.insert(7735, &[2232337]);     // 7735 => [2232337]
            map.insert(5475, &[2363409]);     // 5475 => [2363409]
            map.insert(5972, &[2625553]);     // 5972 => [2625553]
            map.insert(4922, &[3149841]);     // 4922 => [3149841]
            map.insert(6395, &[6295569]);     // 6395 => [6295569]
            map.insert(8140, &[2121745]);     // 8140 => [2121745]
            map.insert(5353, &[2138129]);     // 5353 => [2138129]
            map.insert(5692, &[2170897]);     // 5692 => [2170897]
            map.insert(5014, &[2236433]);     // 5014 => [2236433]
            map.insert(6338, &[2367505]);     // 6338 => [2367505]
            map.insert(6901, &[2629649]);     // 6901 => [2629649]
            map.insert(7835, &[3153937]);     // 7835 => [3153937]
            map.insert(5466, &[6299665]);     // 5466 => [6299665]
            map.insert(6964, &[2146321]);     // 6964 => [2146321]
            map.insert(6625, &[2179089]);     // 6625 => [2179089]
            map.insert(7243, &[2244625]);     // 7243 => [2244625]
            map.insert(5919, &[2375697]);     // 5919 => [2375697]
            map.insert(5416, &[2637841]);     // 5416 => [2637841]
            map.insert(4422, &[3162129]);     // 4422 => [3162129]
            map.insert(6791, &[6307857]);     // 6791 => [6307857]
            map.insert(4804, &[2195473]);     // 4804 => [2195473]
            map.insert(5998, &[2261009]);     // 5998 => [2261009]
            map.insert(7226, &[2392081]);     // 7226 => [2392081]
            map.insert(7693, &[2654225]);     // 7693 => [2654225]
            map.insert(6755, &[3178513]);     // 6755 => [3178513]
            map.insert(4514, &[6324241]);     // 4514 => [6324241]
            map.insert(5563, &[2293777]);     // 5563 => [2293777]
            map.insert(7919, &[2424849]);     // 7919 => [2424849]
            map.insert(7384, &[2686993]);     // 7384 => [2686993]
            map.insert(6326, &[3211281]);     // 6326 => [3211281]
            map.insert(4983, &[6357009]);     // 4983 => [6357009]
            map.insert(6981, &[2490385]);     // 6981 => [2490385]
            map.insert(6514, &[2752529]);     // 6514 => [2752529]
            map.insert(7452, &[3276817]);     // 7452 => [3276817]
            map.insert(5853, &[6422545]);     // 5853 => [6422545]
            map.insert(4646, &[2883601]);     // 4646 => [2883601]
            map.insert(5704, &[3407889]);     // 5704 => [3407889]
            map.insert(7561, &[6553617]);     // 7561 => [6553617]
            map.insert(5247, &[3670033]);     // 5247 => [3670033]
            map.insert(8126, &[6815761]);     // 8126 => [6815761]
            map.insert(7120, &[7340049]);     // 7120 => [7340049]
            map.insert(4321, &[2097377]);     // 4321 => [2097377]
            map.insert(4449, &[2097505]);     // 4449 => [2097505]
            map.insert(4705, &[2097761]);     // 4705 => [2097761]
            map.insert(5217, &[2098273]);     // 5217 => [2098273]
            map.insert(6241, &[2099297]);     // 6241 => [2099297]
            map.insert(5374, &[2101345]);     // 5374 => [2101345]
            map.insert(6495, &[2105441]);     // 6495 => [2105441]
            map.insert(5762, &[2113633]);     // 5762 => [2113633]
            map.insert(7591, &[2130017]);     // 7591 => [2130017]
            map.insert(8050, &[2162785]);     // 8050 => [2162785]
            map.insert(6872, &[2228321]);     // 6872 => [2228321]
            map.insert(4492, &[2359393]);     // 4492 => [2359393]
            map.insert(5051, &[2621537]);     // 5051 => [2621537]
            map.insert(6101, &[3145825]);     // 6101 => [3145825]
            map.insert(7188, &[6291553]);     // 7188 => [6291553]
            map.insert(4513, &[2097569]);     // 4513 => [2097569]
            map.insert(4769, &[2097825]);     // 4769 => [2097825]
            map.insert(5281, &[2098337]);     // 5281 => [2098337]
            map.insert(6305, &[2099361]);     // 6305 => [2099361]
            map.insert(5182, &[2101409]);     // 5182 => [2101409]
            map.insert(6559, &[2105505]);     // 6559 => [2105505]
            map.insert(5698, &[2113697]);     // 5698 => [2113697]
            map.insert(7527, &[2130081]);     // 7527 => [2130081]
            map.insert(8114, &[2162849]);     // 8114 => [2162849]
            map.insert(6680, &[2228385]);     // 6680 => [2228385]
            map.insert(4428, &[2359457]);     // 4428 => [2359457]
            map.insert(4987, &[2621601]);     // 4987 => [2621601]
            map.insert(5909, &[3145889]);     // 5909 => [3145889]
            map.insert(7380, &[6291617]);     // 7380 => [6291617]
            map.insert(4897, &[2097953]);     // 4897 => [2097953]
            map.insert(5409, &[2098465]);     // 5409 => [2098465]
            map.insert(6433, &[2099489]);     // 6433 => [2099489]
            map.insert(5566, &[2101537]);     // 5566 => [2101537]
            map.insert(6175, &[2105633]);     // 6175 => [2105633]
            map.insert(6082, &[2113825]);     // 6082 => [2113825]
            map.insert(7399, &[2130209]);     // 7399 => [2130209]
            map.insert(7730, &[2162977]);     // 7730 => [2162977]
            map.insert(7064, &[2228513]);     // 7064 => [2228513]
            map.insert(4300, &[2359585]);     // 4300 => [2359585]
            map.insert(4859, &[2621729]);     // 4859 => [2621729]
            map.insert(5781, &[3146017]);     // 5781 => [3146017]
            map.insert(7508, &[6291745]);     // 7508 => [6291745]
            map.insert(5665, &[2098721]);     // 5665 => [2098721]
            map.insert(6689, &[2099745]);     // 6689 => [2099745]
            map.insert(5822, &[2101793]);     // 5822 => [2101793]
            map.insert(6943, &[2105889]);     // 6943 => [2105889]
            map.insert(5314, &[2114081]);     // 5314 => [2114081]
            map.insert(8167, &[2130465]);     // 8167 => [2130465]
            map.insert(7474, &[2163233]);     // 7474 => [2163233]
            map.insert(6296, &[2228769]);     // 6296 => [2228769]
            map.insert(5068, &[2359841]);     // 5068 => [2359841]
            map.insert(4603, &[2621985]);     // 4603 => [2621985]
            map.insert(5525, &[3146273]);     // 5525 => [3146273]
            map.insert(7764, &[6292001]);     // 7764 => [6292001]
            map.insert(7201, &[2100257]);     // 7201 => [2100257]
            map.insert(4286, &[2102305]);     // 4286 => [2102305]
            map.insert(7455, &[2106401]);     // 7455 => [2106401]
            map.insert(4802, &[2114593]);     // 4802 => [2114593]
            map.insert(6631, &[2130977]);     // 6631 => [2130977]
            map.insert(6962, &[2163745]);     // 6962 => [2163745]
            map.insert(7832, &[2229281]);     // 7832 => [2229281]
            map.insert(5580, &[2360353]);     // 5580 => [2360353]
            map.insert(6139, &[2622497]);     // 6139 => [2622497]
            map.insert(5013, &[3146785]);     // 5013 => [3146785]
            map.insert(6228, &[6292513]);     // 6228 => [6292513]
            map.insert(7358, &[2103329]);     // 7358 => [2103329]
            map.insert(4383, &[2107425]);     // 4383 => [2107425]
            map.insert(7874, &[2115617]);     // 7874 => [2115617]
            map.insert(5607, &[2132001]);     // 5607 => [2132001]
            map.insert(5938, &[2164769]);     // 5938 => [2164769]
            map.insert(4760, &[2230305]);     // 4760 => [2230305]
            map.insert(6604, &[2361377]);     // 6604 => [2361377]
            map.insert(7163, &[2623521]);     // 7163 => [2623521]
            map.insert(8085, &[3147809]);     // 8085 => [3147809]
            map.insert(5204, &[6293537]);     // 5204 => [6293537]
            map.insert(7552, &[2109473]);     // 7552 => [2109473]
            map.insert(4701, &[2117665]);     // 4701 => [2117665]
            map.insert(6520, &[2134049]);     // 6520 => [2134049]
            map.insert(7085, &[2166817]);     // 7085 => [2166817]
            map.insert(7687, &[2232353]);     // 7687 => [2232353]
            map.insert(5459, &[2363425]);     // 5459 => [2363425]
            map.insert(5988, &[2625569]);     // 5988 => [2625569]
            map.insert(4874, &[3149857]);     // 4874 => [3149857]
            map.insert(6347, &[6295585]);     // 6347 => [6295585]
            map.insert(8188, &[2121761]);     // 8188 => [2121761]
            map.insert(5337, &[2138145]);     // 5337 => [2138145]
            map.insert(5644, &[2170913]);     // 5644 => [2170913]
            map.insert(5030, &[2236449]);     // 5030 => [2236449]
            map.insert(6386, &[2367521]);     // 6386 => [2367521]
            map.insert(6853, &[2629665]);     // 6853 => [2629665]
            map.insert(7851, &[3153953]);     // 7851 => [3153953]
            map.insert(5482, &[6299681]);     // 5482 => [6299681]
            map.insert(6916, &[2146337]);     // 6916 => [2146337]
            map.insert(6609, &[2179105]);     // 6609 => [2179105]
            map.insert(7291, &[2244641]);     // 7291 => [2244641]
            map.insert(5935, &[2375713]);     // 5935 => [2375713]
            map.insert(5400, &[2637857]);     // 5400 => [2637857]
            map.insert(4470, &[3162145]);     // 4470 => [3162145]
            map.insert(6839, &[6307873]);     // 6839 => [6307873]
            map.insert(4852, &[2195489]);     // 4852 => [2195489]
            map.insert(5982, &[2261025]);     // 5982 => [2261025]
            map.insert(7178, &[2392097]);     // 7178 => [2392097]
            map.insert(7741, &[2654241]);     // 7741 => [2654241]
            map.insert(6739, &[3178529]);     // 6739 => [3178529]
            map.insert(4498, &[6324257]);     // 4498 => [6324257]
            map.insert(5515, &[2293793]);     // 5515 => [2293793]
            map.insert(7903, &[2424865]);     // 7903 => [2424865]
            map.insert(7400, &[2687009]);     // 7400 => [2687009]
            map.insert(6278, &[3211297]);     // 6278 => [3211297]
            map.insert(4935, &[6357025]);     // 4935 => [6357025]
            map.insert(7029, &[2490401]);     // 7029 => [2490401]
            map.insert(6466, &[2752545]);     // 6466 => [2752545]
            map.insert(7468, &[3276833]);     // 7468 => [3276833]
            map.insert(5869, &[6422561]);     // 5869 => [6422561]
            map.insert(4630, &[2883617]);     // 4630 => [2883617]
            map.insert(5752, &[3407905]);     // 5752 => [3407905]
            map.insert(7609, &[6553633]);     // 7609 => [6553633]
            map.insert(5199, &[3670049]);     // 5199 => [3670049]
            map.insert(8078, &[6815777]);     // 8078 => [6815777]
            map.insert(7136, &[7340065]);     // 7136 => [7340065]
            map.insert(4545, &[2097601]);     // 4545 => [2097601]
            map.insert(4801, &[2097857]);     // 4801 => [2097857]
            map.insert(5313, &[2098369]);     // 5313 => [2098369]
            map.insert(6337, &[2099393]);     // 6337 => [2099393]
            map.insert(5214, &[2101441]);     // 5214 => [2101441]
            map.insert(6655, &[2105537]);     // 6655 => [2105537]
            map.insert(5666, &[2113729]);     // 5666 => [2113729]
            map.insert(7431, &[2130113]);     // 7431 => [2130113]
            map.insert(8146, &[2162881]);     // 8146 => [2162881]
            map.insert(6776, &[2228417]);     // 6776 => [2228417]
            map.insert(4396, &[2359489]);     // 4396 => [2359489]
            map.insert(4891, &[2621633]);     // 4891 => [2621633]
            map.insert(6005, &[3145921]);     // 6005 => [3145921]
            map.insert(7348, &[6291649]);     // 7348 => [6291649]
            map.insert(4929, &[2097985]);     // 4929 => [2097985]
            map.insert(5441, &[2098497]);     // 5441 => [2098497]
            map.insert(6465, &[2099521]);     // 6465 => [2099521]
            map.insert(5598, &[2101569]);     // 5598 => [2101569]
            map.insert(6271, &[2105665]);     // 6271 => [2105665]
            map.insert(6050, &[2113857]);     // 6050 => [2113857]
            map.insert(7303, &[2130241]);     // 7303 => [2130241]
            map.insert(7762, &[2163009]);     // 7762 => [2163009]
            map.insert(7160, &[2228545]);     // 7160 => [2228545]
            map.insert(4268, &[2359617]);     // 4268 => [2359617]
            map.insert(4763, &[2621761]);     // 4763 => [2621761]
            map.insert(5877, &[3146049]);     // 5877 => [3146049]
            map.insert(7476, &[6291777]);     // 7476 => [6291777]
            map.insert(5697, &[2098753]);     // 5697 => [2098753]
            map.insert(6721, &[2099777]);     // 6721 => [2099777]
            map.insert(5854, &[2101825]);     // 5854 => [2101825]
            map.insert(7039, &[2105921]);     // 7039 => [2105921]
            map.insert(5282, &[2114113]);     // 5282 => [2114113]
            map.insert(8071, &[2130497]);     // 8071 => [2130497]
            map.insert(7506, &[2163265]);     // 7506 => [2163265]
            map.insert(6392, &[2228801]);     // 6392 => [2228801]
            map.insert(5036, &[2359873]);     // 5036 => [2359873]
            map.insert(4507, &[2622017]);     // 4507 => [2622017]
            map.insert(5621, &[3146305]);     // 5621 => [3146305]
            map.insert(7732, &[6292033]);     // 7732 => [6292033]
            map.insert(7233, &[2100289]);     // 7233 => [2100289]
            map.insert(4318, &[2102337]);     // 4318 => [2102337]
            map.insert(7551, &[2106433]);     // 7551 => [2106433]
            map.insert(4770, &[2114625]);     // 4770 => [2114625]
            map.insert(6535, &[2131009]);     // 6535 => [2131009]
            map.insert(6994, &[2163777]);     // 6994 => [2163777]
            map.insert(7928, &[2229313]);     // 7928 => [2229313]
            map.insert(5548, &[2360385]);     // 5548 => [2360385]
            map.insert(6043, &[2622529]);     // 6043 => [2622529]
            map.insert(5109, &[3146817]);     // 5109 => [3146817]
            map.insert(6196, &[6292545]);     // 6196 => [6292545]
            map.insert(7390, &[2103361]);     // 7390 => [2103361]
            map.insert(4479, &[2107457]);     // 4479 => [2107457]
            map.insert(7842, &[2115649]);     // 7842 => [2115649]
            map.insert(5511, &[2132033]);     // 5511 => [2132033]
            map.insert(5970, &[2164801]);     // 5970 => [2164801]
            map.insert(4856, &[2230337]);     // 4856 => [2230337]
            map.insert(6572, &[2361409]);     // 6572 => [2361409]
            map.insert(7067, &[2623553]);     // 7067 => [2623553]
            map.insert(8181, &[3147841]);     // 8181 => [3147841]
            map.insert(5172, &[6293569]);     // 5172 => [6293569]
            map.insert(7648, &[2109505]);     // 7648 => [2109505]
            map.insert(4669, &[2117697]);     // 4669 => [2117697]
            map.insert(6424, &[2134081]);     // 6424 => [2134081]
            map.insert(7117, &[2166849]);     // 7117 => [2166849]
            map.insert(7783, &[2232385]);     // 7783 => [2232385]
            map.insert(5427, &[2363457]);     // 5427 => [2363457]
            map.insert(5892, &[2625601]);     // 5892 => [2625601]
            map.insert(4970, &[3149889]);     // 4970 => [3149889]
            map.insert(6315, &[6295617]);     // 6315 => [6295617]
            map.insert(8092, &[2121793]);     // 8092 => [2121793]
            map.insert(5305, &[2138177]);     // 5305 => [2138177]
            map.insert(5740, &[2170945]);     // 5740 => [2170945]
            map.insert(5062, &[2236481]);     // 5062 => [2236481]
            map.insert(6290, &[2367553]);     // 6290 => [2367553]
            map.insert(6821, &[2629697]);     // 6821 => [2629697]
            map.insert(7883, &[3153985]);     // 7883 => [3153985]
            map.insert(5386, &[6299713]);     // 5386 => [6299713]
            map.insert(7012, &[2146369]);     // 7012 => [2146369]
            map.insert(6577, &[2179137]);     // 6577 => [2179137]
            map.insert(7195, &[2244673]);     // 7195 => [2244673]
            map.insert(5967, &[2375745]);     // 5967 => [2375745]
            map.insert(5496, &[2637889]);     // 5496 => [2637889]
            map.insert(4374, &[3162177]);     // 4374 => [3162177]
            map.insert(6871, &[6307905]);     // 6871 => [6307905]
            map.insert(4756, &[2195521]);     // 4756 => [2195521]
            map.insert(5950, &[2261057]);     // 5950 => [2261057]
            map.insert(7274, &[2392129]);     // 7274 => [2392129]
            map.insert(7773, &[2654273]);     // 7773 => [2654273]
            map.insert(6707, &[3178561]);     // 6707 => [3178561]
            map.insert(4594, &[6324289]);     // 4594 => [6324289]
            map.insert(5611, &[2293825]);     // 5611 => [2293825]
            map.insert(7871, &[2424897]);     // 7871 => [2424897]
            map.insert(7304, &[2687041]);     // 7304 => [2687041]
            map.insert(6374, &[3211329]);     // 6374 => [3211329]
            map.insert(4903, &[6357057]);     // 4903 => [6357057]
            map.insert(6933, &[2490433]);     // 6933 => [2490433]
            map.insert(6434, &[2752577]);     // 6434 => [2752577]
            map.insert(7500, &[3276865]);     // 7500 => [3276865]
            map.insert(5773, &[6422593]);     // 5773 => [6422593]
            map.insert(4726, &[2883649]);     // 4726 => [2883649]
            map.insert(5656, &[3407937]);     // 5656 => [3407937]
            map.insert(7641, &[6553665]);     // 7641 => [6553665]
            map.insert(5167, &[3670081]);     // 5167 => [3670081]
            map.insert(8174, &[6815809]);     // 8174 => [6815809]
            map.insert(7040, &[7340097]);     // 7040 => [7340097]
            map.insert(4993, &[2098049]);     // 4993 => [2098049]
            map.insert(5505, &[2098561]);     // 5505 => [2098561]
            map.insert(6529, &[2099585]);     // 6529 => [2099585]
            map.insert(5406, &[2101633]);     // 5406 => [2101633]
            map.insert(6335, &[2105729]);     // 6335 => [2105729]
            map.insert(5986, &[2113921]);     // 5986 => [2113921]
            map.insert(7239, &[2130305]);     // 7239 => [2130305]
            map.insert(7826, &[2163073]);     // 7826 => [2163073]
            map.insert(6968, &[2228609]);     // 6968 => [2228609]
            map.insert(4204, &[2359681]);     // 4204 => [2359681]
            map.insert(4699, &[2621825]);     // 4699 => [2621825]
            map.insert(5685, &[3146113]);     // 5685 => [3146113]
            map.insert(7668, &[6291841]);     // 7668 => [6291841]
            map.insert(5761, &[2098817]);     // 5761 => [2098817]
            map.insert(6785, &[2099841]);     // 6785 => [2099841]
            map.insert(5662, &[2101889]);     // 5662 => [2101889]
            map.insert(7103, &[2105985]);     // 7103 => [2105985]
            map.insert(5218, &[2114177]);     // 5218 => [2114177]
            map.insert(8007, &[2130561]);     // 8007 => [2130561]
            map.insert(7570, &[2163329]);     // 7570 => [2163329]
            map.insert(6200, &[2228865]);     // 6200 => [2228865]
            map.insert(4972, &[2359937]);     // 4972 => [2359937]
            map.insert(4443, &[2622081]);     // 4443 => [2622081]
            map.insert(5429, &[3146369]);     // 5429 => [3146369]
            map.insert(7924, &[6292097]);     // 7924 => [6292097]
            map.insert(7297, &[2100353]);     // 7297 => [2100353]
            map.insert(4126, &[2102401]);     // 4126 => [2102401]
            map.insert(7615, &[2106497]);     // 7615 => [2106497]
            map.insert(4706, &[2114689]);     // 4706 => [2114689]
            map.insert(6471, &[2131073]);     // 6471 => [2131073]
            map.insert(7058, &[2163841]);     // 7058 => [2163841]
            map.insert(7736, &[2229377]);     // 7736 => [2229377]
            map.insert(5484, &[2360449]);     // 5484 => [2360449]
            map.insert(5979, &[2622593]);     // 5979 => [2622593]
            map.insert(4917, &[3146881]);     // 4917 => [3146881]
            map.insert(6388, &[6292609]);     // 6388 => [6292609]
            map.insert(7198, &[2103425]);     // 7198 => [2103425]
            map.insert(4543, &[2107521]);     // 4543 => [2107521]
            map.insert(7778, &[2115713]);     // 7778 => [2115713]
            map.insert(5447, &[2132097]);     // 5447 => [2132097]
            map.insert(6034, &[2164865]);     // 6034 => [2164865]
            map.insert(4664, &[2230401]);     // 4664 => [2230401]
            map.insert(6508, &[2361473]);     // 6508 => [2361473]
            map.insert(7003, &[2623617]);     // 7003 => [2623617]
            map.insert(7989, &[3147905]);     // 7989 => [3147905]
            map.insert(5364, &[6293633]);     // 5364 => [6293633]
            map.insert(7456, &[2109569]);     // 7456 => [2109569]
            map.insert(4861, &[2117761]);     // 4861 => [2117761]
            map.insert(6616, &[2134145]);     // 6616 => [2134145]
            map.insert(6925, &[2166913]);     // 6925 => [2166913]
            map.insert(7847, &[2232449]);     // 7847 => [2232449]
            map.insert(5619, &[2363521]);     // 5619 => [2363521]
            map.insert(6084, &[2625665]);     // 6084 => [2625665]
            map.insert(5034, &[3149953]);     // 5034 => [3149953]
            map.insert(6251, &[6295681]);     // 6251 => [6295681]
            map.insert(8028, &[2121857]);     // 8028 => [2121857]
            map.insert(5241, &[2138241]);     // 5241 => [2138241]
            map.insert(5804, &[2171009]);     // 5804 => [2171009]
            map.insert(4870, &[2236545]);     // 4870 => [2236545]
            map.insert(6226, &[2367617]);     // 6226 => [2367617]
            map.insert(6757, &[2629761]);     // 6757 => [2629761]
            map.insert(7691, &[3154049]);     // 7691 => [3154049]
            map.insert(5578, &[6299777]);     // 5578 => [6299777]
            map.insert(7076, &[2146433]);     // 7076 => [2146433]
            map.insert(6513, &[2179201]);     // 6513 => [2179201]
            map.insert(7387, &[2244737]);     // 7387 => [2244737]
            map.insert(6031, &[2375809]);     // 6031 => [2375809]
            map.insert(5560, &[2637953]);     // 5560 => [2637953]
            map.insert(4566, &[3162241]);     // 4566 => [3162241]
            map.insert(6679, &[6307969]);     // 6679 => [6307969]
            map.insert(4692, &[2195585]);     // 4692 => [2195585]
            map.insert(6142, &[2261121]);     // 6142 => [2261121]
            map.insert(7338, &[2392193]);     // 7338 => [2392193]
            map.insert(7837, &[2654337]);     // 7837 => [2654337]
            map.insert(6899, &[3178625]);     // 6899 => [3178625]
            map.insert(4402, &[6324353]);     // 4402 => [6324353]
            map.insert(5419, &[2293889]);     // 5419 => [2293889]
            map.insert(7807, &[2424961]);     // 7807 => [2424961]
            map.insert(7240, &[2687105]);     // 7240 => [2687105]
            map.insert(6182, &[3211393]);     // 6182 => [3211393]
            map.insert(5095, &[6357121]);     // 5095 => [6357121]
            map.insert(7125, &[2490497]);     // 7125 => [2490497]
            map.insert(6626, &[2752641]);     // 6626 => [2752641]
            map.insert(7564, &[3276929]);     // 7564 => [3276929]
            map.insert(5709, &[6422657]);     // 5709 => [6422657]
            map.insert(4790, &[2883713]);     // 4790 => [2883713]
            map.insert(5848, &[3408001]);     // 5848 => [3408001]
            map.insert(7449, &[6553729]);     // 7449 => [6553729]
            map.insert(5359, &[3670145]);     // 5359 => [3670145]
            map.insert(7982, &[6815873]);     // 7982 => [6815873]
            map.insert(6976, &[7340161]);     // 6976 => [7340161]
            map.insert(5889, &[2098945]);     // 5889 => [2098945]
            map.insert(6913, &[2099969]);     // 6913 => [2099969]
            map.insert(6046, &[2102017]);     // 6046 => [2102017]
            map.insert(6719, &[2106113]);     // 6719 => [2106113]
            map.insert(5602, &[2114305]);     // 5602 => [2114305]
            map.insert(7879, &[2130689]);     // 7879 => [2130689]
            map.insert(7186, &[2163457]);     // 7186 => [2163457]
            map.insert(6584, &[2228993]);     // 6584 => [2228993]
            map.insert(4844, &[2360065]);     // 4844 => [2360065]
            map.insert(4315, &[2622209]);     // 4315 => [2622209]
            map.insert(5301, &[3146497]);     // 5301 => [3146497]
            map.insert(8052, &[6292225]);     // 8052 => [6292225]
            map.insert(7425, &[2100481]);     // 7425 => [2100481]
            map.insert(4510, &[2102529]);     // 4510 => [2102529]
            map.insert(7231, &[2106625]);     // 7231 => [2106625]
            map.insert(5090, &[2114817]);     // 5090 => [2114817]
            map.insert(6343, &[2131201]);     // 6343 => [2131201]
            map.insert(6674, &[2163969]);     // 6674 => [2163969]
            map.insert(8120, &[2229505]);     // 8120 => [2229505]
            map.insert(5356, &[2360577]);     // 5356 => [2360577]
            map.insert(5851, &[2622721]);     // 5851 => [2622721]
            map.insert(4789, &[3147009]);     // 4789 => [3147009]
            map.insert(6516, &[6292737]);     // 6516 => [6292737]
            map.insert(7582, &[2103553]);     // 7582 => [2103553]
            map.insert(4159, &[2107649]);     // 4159 => [2107649]
            map.insert(8162, &[2115841]);     // 8162 => [2115841]
            map.insert(5319, &[2132225]);     // 5319 => [2132225]
            map.insert(5650, &[2164993]);     // 5650 => [2164993]
            map.insert(5048, &[2230529]);     // 5048 => [2230529]
            map.insert(6380, &[2361601]);     // 6380 => [2361601]
            map.insert(6875, &[2623745]);     // 6875 => [2623745]
            map.insert(7861, &[3148033]);     // 7861 => [3148033]
            map.insert(5492, &[6293761]);     // 5492 => [6293761]
            map.insert(7328, &[2109697]);     // 7328 => [2109697]
            map.insert(4989, &[2117889]);     // 4989 => [2117889]
            map.insert(6232, &[2134273]);     // 6232 => [2134273]
            map.insert(6797, &[2167041]);     // 6797 => [2167041]
            map.insert(7975, &[2232577]);     // 7975 => [2232577]
            map.insert(5235, &[2363649]);     // 5235 => [2363649]
            map.insert(5700, &[2625793]);     // 5700 => [2625793]
            map.insert(4650, &[3150081]);     // 4650 => [3150081]
            map.insert(6635, &[6295809]);     // 6635 => [6295809]
            map.insert(7900, &[2121985]);     // 7900 => [2121985]
            map.insert(5625, &[2138369]);     // 5625 => [2138369]
            map.insert(5932, &[2171137]);     // 5932 => [2171137]
            map.insert(4742, &[2236673]);     // 4742 => [2236673]
            map.insert(6610, &[2367745]);     // 6610 => [2367745]
            map.insert(7141, &[2629889]);     // 7141 => [2629889]
            map.insert(8075, &[3154177]);     // 8075 => [3154177]
            map.insert(5194, &[6299905]);     // 5194 => [6299905]
            map.insert(6692, &[2146561]);     // 6692 => [2146561]
            map.insert(6385, &[2179329]);     // 6385 => [2179329]
            map.insert(7515, &[2244865]);     // 7515 => [2244865]
            map.insert(5647, &[2375937]);     // 5647 => [2375937]
            map.insert(5176, &[2638081]);     // 5176 => [2638081]
            map.insert(4182, &[3162369]);     // 4182 => [3162369]
            map.insert(7063, &[6308097]);     // 7063 => [6308097]
            map.insert(5076, &[2195713]);     // 5076 => [2195713]
            map.insert(5758, &[2261249]);     // 5758 => [2261249]
            map.insert(7466, &[2392321]);     // 7466 => [2392321]
            map.insert(7965, &[2654465]);     // 7965 => [2654465]
            map.insert(7027, &[3178753]);     // 7027 => [3178753]
            map.insert(4274, &[6324481]);     // 4274 => [6324481]
            map.insert(5291, &[2294017]);     // 5291 => [2294017]
            map.insert(8191, &[2425089]);     // 8191 => [2425089]
            map.insert(7624, &[2687233]);     // 7624 => [2687233]
            map.insert(6566, &[3211521]);     // 6566 => [3211521]
            map.insert(4711, &[6357249]);     // 4711 => [6357249]
            map.insert(6741, &[2490625]);     // 6741 => [2490625]
            map.insert(6242, &[2752769]);     // 6242 => [2752769]
            map.insert(7180, &[3277057]);     // 7180 => [3277057]
            map.insert(6093, &[6422785]);     // 6093 => [6422785]
            map.insert(4918, &[2883841]);     // 4918 => [2883841]
            map.insert(5976, &[3408129]);     // 5976 => [3408129]
            map.insert(7321, &[6553857]);     // 7321 => [6553857]
            map.insert(5487, &[3670273]);     // 5487 => [3670273]
            map.insert(7854, &[6816001]);     // 7854 => [6816001]
            map.insert(6848, &[7340289]);     // 6848 => [7340289]
            map.insert(7681, &[2100737]);     // 7681 => [2100737]
            map.insert(4766, &[2102785]);     // 4766 => [2102785]
            map.insert(7999, &[2106881]);     // 7999 => [2106881]
            map.insert(4322, &[2115073]);     // 4322 => [2115073]
            map.insert(7111, &[2131457]);     // 7111 => [2131457]
            map.insert(6418, &[2164225]);     // 6418 => [2164225]
            map.insert(7352, &[2229761]);     // 7352 => [2229761]
            map.insert(6124, &[2360833]);     // 6124 => [2360833]
            map.insert(5595, &[2622977]);     // 5595 => [2622977]
            map.insert(4533, &[3147265]);     // 4533 => [3147265]
            map.insert(6772, &[6292993]);     // 6772 => [6292993]
            map.insert(7838, &[2103809]);     // 7838 => [2103809]
            map.insert(4927, &[2107905]);     // 4927 => [2107905]
            map.insert(7394, &[2116097]);     // 7394 => [2116097]
            map.insert(6087, &[2132481]);     // 6087 => [2132481]
            map.insert(5394, &[2165249]);     // 5394 => [2165249]
            map.insert(4280, &[2230785]);     // 4280 => [2230785]
            map.insert(7148, &[2361857]);     // 7148 => [2361857]
            map.insert(6619, &[2624001]);     // 6619 => [2624001]
            map.insert(7605, &[3148289]);     // 7605 => [3148289]
            map.insert(5748, &[6294017]);     // 5748 => [6294017]
            map.insert(8096, &[2109953]);     // 8096 => [2109953]
            map.insert(4221, &[2118145]);     // 4221 => [2118145]
            map.insert(7000, &[2134529]);     // 7000 => [2134529]
            map.insert(6541, &[2167297]);     // 6541 => [2167297]
            map.insert(7207, &[2232833]);     // 7207 => [2232833]
            map.insert(6003, &[2363905]);     // 6003 => [2363905]
            map.insert(5444, &[2626049]);     // 5444 => [2626049]
            map.insert(4394, &[3150337]);     // 4394 => [3150337]
            map.insert(6891, &[6296065]);     // 6891 => [6296065]
            map.insert(7644, &[2122241]);     // 7644 => [2122241]
            map.insert(5881, &[2138625]);     // 5881 => [2138625]
            map.insert(5164, &[2171393]);     // 5164 => [2171393]
            map.insert(4486, &[2236929]);     // 4486 => [2236929]
            map.insert(6866, &[2368001]);     // 6866 => [2368001]
            map.insert(6373, &[2630145]);     // 6373 => [2630145]
            map.insert(7307, &[3154433]);     // 7307 => [3154433]
            map.insert(5962, &[6300161]);     // 5962 => [6300161]
            map.insert(6436, &[2146817]);     // 6436 => [2146817]
            map.insert(7153, &[2179585]);     // 7153 => [2179585]
            map.insert(7771, &[2245121]);     // 7771 => [2245121]
            map.insert(5391, &[2376193]);     // 5391 => [2376193]
            map.insert(5944, &[2638337]);     // 5944 => [2638337]
            map.insert(4950, &[3162625]);     // 4950 => [3162625]
            map.insert(6295, &[6308353]);     // 6295 => [6308353]
            map.insert(4308, &[2195969]);     // 4308 => [2195969]
            map.insert(5502, &[2261505]);     // 5502 => [2261505]
            map.insert(7722, &[2392577]);     // 7722 => [2392577]
            map.insert(7197, &[2654721]);     // 7197 => [2654721]
            map.insert(6259, &[3179009]);     // 6259 => [3179009]
            map.insert(5042, &[6324737]);     // 5042 => [6324737]
            map.insert(6059, &[2294273]);     // 6059 => [2294273]
            map.insert(7423, &[2425345]);     // 7423 => [2425345]
            map.insert(7880, &[2687489]);     // 7880 => [2687489]
            map.insert(6822, &[3211777]);     // 6822 => [3211777]
            map.insert(4455, &[6357505]);     // 4455 => [6357505]
            map.insert(6485, &[2490881]);     // 6485 => [2490881]
            map.insert(7010, &[2753025]);     // 7010 => [2753025]
            map.insert(7948, &[3277313]);     // 7948 => [3277313]
            map.insert(5325, &[6423041]);     // 5325 => [6423041]
            map.insert(4150, &[2884097]);     // 4150 => [2884097]
            map.insert(5208, &[3408385]);     // 5208 => [3408385]
            map.insert(8089, &[6554113]);     // 8089 => [6554113]
            map.insert(5743, &[3670529]);     // 5743 => [3670529]
            map.insert(7598, &[6816257]);     // 7598 => [6816257]
            map.insert(6592, &[7340545]);     // 6592 => [7340545]
            map.insert(6302, &[2104321]);     // 6302 => [2104321]
            map.insert(5439, &[2108417]);     // 5439 => [2108417]
            map.insert(6882, &[2116609]);     // 6882 => [2116609]
            map.insert(4551, &[2132993]);     // 4551 => [2132993]
            map.insert(4882, &[2165761]);     // 4882 => [2165761]
            map.insert(5816, &[2231297]);     // 5816 => [2231297]
            map.insert(7660, &[2362369]);     // 7660 => [2362369]
            map.insert(8155, &[2624513]);     // 8155 => [2624513]
            map.insert(7093, &[3148801]);     // 7093 => [3148801]
            map.insert(4212, &[6294529]);     // 4212 => [6294529]
            map.insert(6560, &[2110465]);     // 6560 => [2110465]
            map.insert(5757, &[2118657]);     // 5757 => [2118657]
            map.insert(7512, &[2135041]);     // 7512 => [2135041]
            map.insert(8077, &[2167809]);     // 8077 => [2167809]
            map.insert(6695, &[2233345]);     // 6695 => [2233345]
            map.insert(4467, &[2364417]);     // 4467 => [2364417]
            map.insert(4932, &[2626561]);     // 4932 => [2626561]
            map.insert(5930, &[3150849]);     // 5930 => [3150849]
            map.insert(7403, &[6296577]);     // 7403 => [6296577]
            map.insert(7132, &[2122753]);     // 7132 => [2122753]
            map.insert(4345, &[2139137]);     // 4345 => [2139137]
            map.insert(4652, &[2171905]);     // 4652 => [2171905]
            map.insert(6022, &[2237441]);     // 6022 => [2237441]
            map.insert(7378, &[2368513]);     // 7378 => [2368513]
            map.insert(7909, &[2630657]);     // 7909 => [2630657]
            map.insert(6795, &[3154945]);     // 6795 => [3154945]
            map.insert(4426, &[6300673]);     // 4426 => [6300673]
            map.insert(7972, &[2147329]);     // 7972 => [2147329]
            map.insert(7665, &[2180097]);     // 7665 => [2180097]
            map.insert(6235, &[2245633]);     // 6235 => [2245633]
            map.insert(4879, &[2376705]);     // 4879 => [2376705]
            map.insert(4408, &[2638849]);     // 4408 => [2638849]
            map.insert(5462, &[3163137]);     // 5462 => [3163137]
            map.insert(7831, &[6308865]);     // 7831 => [6308865]
            map.insert(5844, &[2196481]);     // 5844 => [2196481]
            map.insert(4990, &[2262017]);     // 4990 => [2262017]
            map.insert(6186, &[2393089]);     // 6186 => [2393089]
            map.insert(6685, &[2655233]);     // 6685 => [2655233]
            map.insert(7795, &[3179521]);     // 7795 => [3179521]
            map.insert(5554, &[6325249]);     // 5554 => [6325249]
            map.insert(4523, &[2294785]);     // 4523 => [2294785]
            map.insert(6911, &[2425857]);     // 6911 => [2425857]
            map.insert(6344, &[2688001]);     // 6344 => [2688001]
            map.insert(7334, &[3212289]);     // 7334 => [3212289]
            map.insert(5991, &[6358017]);     // 5991 => [6358017]
            map.insert(8021, &[2491393]);     // 8021 => [2491393]
            map.insert(7522, &[2753537]);     // 7522 => [2753537]
            map.insert(6412, &[3277825]);     // 6412 => [3277825]
            map.insert(4813, &[6423553]);     // 4813 => [6423553]
            map.insert(5686, &[2884609]);     // 5686 => [2884609]
            map.insert(4696, &[3408897]);     // 4696 => [3408897]
            map.insert(6553, &[6554625]);     // 6553 => [6554625]
            map.insert(4207, &[3671041]);     // 4207 => [3671041]
            map.insert(7086, &[6816769]);     // 7086 => [6816769]
            map.insert(8128, &[7341057]);     // 8128 => [7341057]
            map.insert(5536, &[2111489]);     // 5536 => [2111489]
            map.insert(6781, &[2119681]);     // 6781 => [2119681]
            map.insert(4440, &[2136065]);     // 4440 => [2136065]
            map.insert(5005, &[2168833]);     // 5005 => [2168833]
            map.insert(5671, &[2234369]);     // 5671 => [2234369]
            map.insert(7539, &[2365441]);     // 7539 => [2365441]
            map.insert(8004, &[2627585]);     // 8004 => [2627585]
            map.insert(6954, &[3151873]);     // 6954 => [3151873]
            map.insert(4331, &[6297601]);     // 4331 => [6297601]
            map.insert(6108, &[2123777]);     // 6108 => [2123777]
            map.insert(7417, &[2140161]);     // 7417 => [2140161]
            map.insert(7724, &[2172929]);     // 7724 => [2172929]
            map.insert(7046, &[2238465]);     // 7046 => [2238465]
            map.insert(4306, &[2369537]);     // 4306 => [2369537]
            map.insert(4837, &[2631681]);     // 4837 => [2631681]
            map.insert(5771, &[3155969]);     // 5771 => [3155969]
            map.insert(7498, &[6301697]);     // 7498 => [6301697]
            map.insert(4900, &[2148353]);     // 4900 => [2148353]
            map.insert(4593, &[2181121]);     // 4593 => [2181121]
            map.insert(5211, &[2246657]);     // 5211 => [2246657]
            map.insert(7951, &[2377729]);     // 7951 => [2377729]
            map.insert(7480, &[2639873]);     // 7480 => [2639873]
            map.insert(6486, &[3164161]);     // 6486 => [3164161]
            map.insert(4759, &[6309889]);     // 4759 => [6309889]
            map.insert(6868, &[2197505]);     // 6868 => [2197505]
            map.insert(8062, &[2263041]);     // 8062 => [2263041]
            map.insert(5162, &[2394113]);     // 5162 => [2394113]
            map.insert(5661, &[2656257]);     // 5661 => [2656257]
            map.insert(4723, &[3180545]);     // 4723 => [3180545]
            map.insert(6578, &[6326273]);     // 6578 => [6326273]
            map.insert(7595, &[2295809]);     // 7595 => [2295809]
            map.insert(5887, &[2426881]);     // 5887 => [2426881]
            map.insert(5320, &[2689025]);     // 5320 => [2689025]
            map.insert(4262, &[3213313]);     // 4262 => [3213313]
            map.insert(7015, &[6359041]);     // 7015 => [6359041]
            map.insert(4949, &[2492417]);     // 4949 => [2492417]
            map.insert(4450, &[2754561]);     // 4450 => [2754561]
            map.insert(5388, &[3278849]);     // 5388 => [3278849]
            map.insert(7885, &[6424577]);     // 7885 => [6424577]
            map.insert(6710, &[2885633]);     // 6710 => [2885633]
            map.insert(7768, &[3409921]);     // 7768 => [3409921]
            map.insert(5529, &[6555649]);     // 5529 => [6555649]
            map.insert(7279, &[3672065]);     // 7279 => [3672065]
            map.insert(6062, &[6817793]);     // 6062 => [6817793]
            map.insert(5056, &[7342081]);     // 5056 => [7342081]
            map.insert(6979, &[2125825]);     // 6979 => [2125825]
            map.insert(4198, &[2142209]);     // 4198 => [2142209]
            map.insert(4787, &[2174977]);     // 4787 => [2174977]
            map.insert(5913, &[2240513]);     // 5913 => [2240513]
            map.insert(7245, &[2371585]);     // 7245 => [2371585]
            map.insert(7802, &[2633729]);     // 7802 => [2633729]
            map.insert(6676, &[3158017]);     // 6676 => [3158017]
            map.insert(4565, &[6303745]);     // 4565 => [6303745]
            map.insert(8123, &[2150401]);     // 8123 => [2150401]
            map.insert(7534, &[2183169]);     // 7534 => [2183169]
            map.insert(6340, &[2248705]);     // 6340 => [2248705]
            map.insert(5008, &[2379777]);     // 5008 => [2379777]
            map.insert(4519, &[2641921]);     // 4519 => [2641921]
            map.insert(5577, &[3166209]);     // 5577 => [3166209]
            map.insert(7688, &[6311937]);     // 7688 => [6311937]
            map.insert(5707, &[2199553]);     // 5707 => [2199553]
            map.insert(5089, &[2265089]);     // 5089 => [2265089]
            map.insert(6325, &[2396161]);     // 6325 => [2396161]
            map.insert(6786, &[2658305]);     // 6786 => [2658305]
            map.insert(7916, &[3182593]);     // 7916 => [3182593]
            map.insert(5421, &[6328321]);     // 5421 => [6328321]
            map.insert(4404, &[2297857]);     // 4404 => [2297857]
            map.insert(6752, &[2428929]);     // 6752 => [2428929]
            map.insert(6231, &[2691073]);     // 6231 => [2691073]
            map.insert(7225, &[3215361]);     // 7225 => [3215361]
            map.insert(6136, &[6361089]);     // 6136 => [6361089]
            map.insert(8138, &[2494465]);     // 8138 => [2494465]
            map.insert(7677, &[2756609]);     // 7677 => [2756609]
            map.insert(6547, &[3280897]);     // 6547 => [3280897]
            map.insert(4690, &[6426625]);     // 4690 => [6426625]
            map.insert(5801, &[2887681]);     // 5801 => [2887681]
            map.insert(4807, &[3411969]);     // 4807 => [3411969]
            map.insert(6406, &[6557697]);     // 6406 => [6557697]
            map.insert(4336, &[3674113]);     // 4336 => [3674113]
            map.insert(6961, &[6819841]);     // 6961 => [6819841]
            map.insert(8031, &[7344129]);     // 8031 => [7344129]
            map.insert(4634, &[2154497]);     // 4634 => [2154497]
            map.insert(4303, &[2187265]);     // 4303 => [2187265]
            map.insert(5477, &[2252801]);     // 5477 => [2252801]
            map.insert(7729, &[2383873]);     // 7729 => [2383873]
            map.insert(7174, &[2646017]);     // 7174 => [2646017]
            map.insert(6248, &[3170305]);     // 6248 => [3170305]
            map.insert(5033, &[6316033]);     // 5033 => [6316033]
            map.insert(7146, &[2203649]);     // 7146 => [2203649]
            map.insert(7744, &[2269185]);     // 7744 => [2269185]
            map.insert(5396, &[2400257]);     // 5396 => [2400257]
            map.insert(5923, &[2662401]);     // 5923 => [2662401]
            map.insert(4941, &[3186689]);     // 4941 => [3186689]
            map.insert(6284, &[6332417]);     // 6284 => [6332417]
            map.insert(7317, &[2301953]);     // 7317 => [2301953]
            map.insert(6081, &[2433025]);     // 6081 => [2433025]
            map.insert(5622, &[2695169]);     // 5622 => [2695169]
            map.insert(4504, &[3219457]);     // 4504 => [3219457]
            map.insert(6745, &[6365185]);     // 6745 => [6365185]
            map.insert(4715, &[2498561]);     // 4715 => [2498561]
            map.insert(4188, &[2760705]);     // 4188 => [2760705]
            map.insert(5170, &[3284993]);     // 5170 => [3284993]
            map.insert(8179, &[6430721]);     // 8179 => [6430721]
            map.insert(6920, &[2891777]);     // 6920 => [2891777]
            map.insert(8038, &[3416065]);     // 8038 => [3416065]
            map.insert(5287, &[6561793]);     // 5287 => [6561793]
            map.insert(7505, &[3678209]);     // 7505 => [3678209]
            map.insert(5776, &[6823937]);     // 5776 => [6823937]
            map.insert(4862, &[7348225]);     // 4862 => [7348225]
            map.insert(5175, &[2211841]);     // 5175 => [2211841]
            map.insert(4509, &[2277377]);     // 4509 => [2277377]
            map.insert(6857, &[2408449]);     // 6857 => [2408449]
            map.insert(6398, &[2670593]);     // 6398 => [2670593]
            map.insert(7312, &[3194881]);     // 7312 => [3194881]
            map.insert(5969, &[6340609]);     // 5969 => [6340609]
            map.insert(4936, &[2310145]);     // 4936 => [2310145]
            map.insert(6172, &[2441217]);     // 6172 => [2441217]
            map.insert(6699, &[2703361]);     // 6699 => [2703361]
            map.insert(7749, &[3227649]);     // 7749 => [3227649]
            map.insert(5508, &[6373377]);     // 5508 => [6373377]
            map.insert(7606, &[2506753]);     // 7606 => [2506753]
            map.insert(8065, &[2768897]);     // 8065 => [2768897]
            map.insert(7151, &[3293185]);     // 7151 => [3293185]
            map.insert(4142, &[6438913]);     // 4142 => [6438913]
            map.insert(5333, &[2899969]);     // 5333 => [2899969]
            map.insert(4283, &[3424257]);     // 4283 => [3424257]
            map.insert(7034, &[6569985]);     // 7034 => [6569985]
            map.insert(4748, &[3686401]);     // 4748 => [3686401]
            map.insert(6477, &[6832129]);     // 6477 => [6832129]
            map.insert(7459, &[7356417]);     // 7459 => [7356417]
            map.insert(6253, &[2326529]);     // 6253 => [2326529]
            map.insert(4921, &[2457601]);     // 4921 => [2457601]
            map.insert(4366, &[2719745]);     // 4366 => [2719745]
            map.insert(5472, &[3244033]);     // 5472 => [3244033]
            map.insert(7841, &[6389761]);     // 7841 => [6389761]
            map.insert(5779, &[2523137]);     // 5779 => [2523137]
            map.insert(5284, &[2785281]);     // 5284 => [2785281]
            map.insert(4298, &[3309569]);     // 4298 => [3309569]
            map.insert(6923, &[6455297]);     // 6923 => [6455297]
            map.insert(8176, &[2916353]);     // 8176 => [2916353]
            map.insert(7070, &[3440641]);     // 7070 => [3440641]
            map.insert(4191, &[6586369]);     // 4191 => [6586369]
            map.insert(6569, &[3702785]);     // 6569 => [3702785]
            map.insert(4712, &[6848513]);     // 4712 => [6848513]
            map.insert(5638, &[7372801]);     // 5638 => [7372801]
            map.insert(5190, &[2555905]);     // 5190 => [2555905]
            map.insert(5745, &[2818049]);     // 5745 => [2818049]
            map.insert(4639, &[3342337]);     // 4639 => [3342337]
            map.insert(6622, &[6488065]);     // 6622 => [6488065]
            map.insert(7461, &[2949121]);     // 7461 => [2949121]
            map.insert(6475, &[3473409]);     // 6475 => [3473409]
            map.insert(4746, &[6619137]);     // 4746 => [6619137]
            map.insert(7036, &[3735553]);     // 7036 => [3735553]
            map.insert(4285, &[6881281]);     // 4285 => [6881281]
            map.insert(5331, &[7405569]);     // 5331 => [7405569]
            map.insert(6287, &[3014657]);     // 6287 => [3014657]
            map.insert(7393, &[3538945]);     // 7393 => [3538945]
            map.insert(5920, &[6684673]);     // 5920 => [6684673]
            map.insert(7894, &[3801089]);     // 7894 => [3801089]
            map.insert(5399, &[6946817]);     // 5399 => [6946817]
            map.insert(4473, &[7471105]);     // 4473 => [7471105]
            map.insert(5506, &[3932161]);     // 5506 => [3932161]
            map.insert(7747, &[7077889]);     // 7747 => [7077889]
            map.insert(6701, &[7602177]);     // 6701 => [7602177]
            map.insert(6170, &[7864321]);     // 6170 => [7864321]
            map.insert(590, &[590]);     // 590 => [590]
            map.insert(2126, &[2126]);     // 2126 => [2126]
            map.insert(4174, &[2097230]);     // 4174 => [2097230]
            map.insert(2574, &[2574]);     // 2574 => [2574]
            map.insert(4622, &[2097678]);     // 4622 => [2097678]
            map.insert(6158, &[2099214]);     // 6158 => [2099214]
            map.insert(2269, &[270350]);     // 2269 => [270350]
            map.insert(3716, &[1056782]);     // 3716 => [1056782]
            map.insert(6448, &[2105358]);     // 6448 => [2105358]
            map.insert(1623, &[1310734]);     // 1623 => [1310734]
            map.insert(4579, &[2359310]);     // 4579 => [2359310]
            map.insert(6074, &[3145742]);     // 6074 => [3145742]
            map.insert(1488, &[34838]);     // 1488 => [34838]
            map.insert(687, &[133142]);     // 687 => [133142]
            map.insert(6166, &[2099222]);     // 6166 => [2099222]
            map.insert(1595, &[73750]);     // 1595 => [73750]
            map.insert(6440, &[2105366]);     // 6440 => [2105366]
            map.insert(1373, &[4202518]);     // 1373 => [4202518]
            map.insert(1897, &[163862]);     // 1897 => [163862]
            map.insert(7632, &[2129942]);     // 7632 => [2129942]
            map.insert(7941, &[2162710]);     // 7941 => [2162710]
            map.insert(880, &[4259862]);     // 880 => [4259862]
            map.insert(6831, &[2228246]);     // 6831 => [2228246]
            map.insert(7267, &[6291478]);     // 7267 => [6291478]
            map.insert(1318, &[1318]);     // 1318 => [1318]
            map.insert(4390, &[2097446]);     // 4390 => [2097446]
            map.insert(5158, &[2098214]);     // 5158 => [2098214]
            map.insert(796, &[524486]);     // 796 => [524486]
            map.insert(4294, &[2097350]);     // 4294 => [2097350]
            map.insert(3251, &[4194502]);     // 3251 => [4194502]
            map.insert(2630, &[2630]);     // 2630 => [2630]
            map.insert(4678, &[2097734]);     // 4678 => [2097734]
            map.insert(6214, &[2099270]);     // 6214 => [2099270]
            map.insert(5020, &[2621510]);     // 5020 => [2621510]
            map.insert(4073, &[4718662]);     // 4073 => [4718662]
            map.insert(7219, &[6291526]);     // 7219 => [6291526]
            map.insert(2979, &[49286]);     // 2979 => [49286]
            map.insert(1928, &[278662]);     // 1928 => [278662]
            map.insert(5733, &[2113670]);     // 5733 => [2113670]
            map.insert(3245, &[295046]);     // 3245 => [295046]
            map.insert(7488, &[2130054]);     // 7488 => [2130054]
            map.insert(4459, &[2359430]);     // 4459 => [2359430]
            map.insert(4956, &[2621574]);     // 4956 => [2621574]
            map.insert(3881, &[4718726]);     // 3881 => [4718726]
            map.insert(7411, &[6291590]);     // 7411 => [6291590]
            map.insert(5382, &[2098438]);     // 5382 => [2098438]
            map.insert(6662, &[2099718]);     // 6662 => [2099718]
            map.insert(122, &[20998]);     // 122 => [20998]
            map.insert(2442, &[70150]);     // 2442 => [70150]
            map.insert(5785, &[2101766]);     // 5785 => [2101766]
            map.insert(3062, &[82438]);     // 3062 => [82438]
            map.insert(5349, &[2114054]);     // 5349 => [2114054]
            map.insert(7445, &[2163206]);     // 7445 => [2163206]
            map.insert(3961, &[165894]);     // 3961 => [165894]
            map.insert(5568, &[2131974]);     // 5568 => [2131974]
            map.insert(4799, &[2230278]);     // 4799 => [2230278]
            map.insert(3433, &[86022]);     // 3433 => [86022]
            map.insert(4730, &[2117638]);     // 4730 => [2117638]
            map.insert(7050, &[2166790]);     // 7050 => [2166790]
            map.insert(3578, &[659462]);     // 3578 => [659462]
            map.insert(2452, &[1183750]);     // 2452 => [1183750]
            map.insert(7712, &[2232326]);     // 7712 => [2232326]
            map.insert(247, &[1576966]);     // 247 => [1576966]
            map.insert(5955, &[2625542]);     // 5955 => [2625542]
            map.insert(4909, &[3149830]);     // 4909 => [3149830]
            map.insert(5675, &[2170886]);     // 5675 => [2170886]
            map.insert(2654, &[4268038]);     // 2654 => [4268038]
            map.insert(3937, &[1318918]);     // 3937 => [1318918]
            map.insert(6357, &[2367494]);     // 6357 => [2367494]
            map.insert(7820, &[3153926]);     // 7820 => [3153926]
            map.insert(5453, &[6299654]);     // 5453 => [6299654]
            map.insert(2766, &[311302]);     // 2766 => [311302]
            map.insert(6947, &[2146310]);     // 6947 => [2146310]
            map.insert(6646, &[2179078]);     // 6646 => [2179078]
            map.insert(5896, &[2375686]);     // 5896 => [2375686]
            map.insert(6009, &[2260998]);     // 6009 => [2260998]
            map.insert(7213, &[2392070]);     // 7213 => [2392070]
            map.insert(4960, &[6356998]);     // 4960 => [6356998]
            map.insert(3793, &[1703942]);     // 3793 => [1703942]
            map.insert(6501, &[2752518]);     // 6501 => [2752518]
            map.insert(7435, &[3276806]);     // 7435 => [3276806]
            map.insert(5727, &[3407878]);     // 5727 => [3407878]
            map.insert(5224, &[3670022]);     // 5224 => [3670022]
            map.insert(8105, &[6815750]);     // 8105 => [6815750]
            map.insert(4154, &[2097210]);     // 4154 => [2097210]
            map.insert(3913, &[65626]);     // 3913 => [65626]
            map.insert(4186, &[2097242]);     // 4186 => [2097242]
            map.insert(4378, &[2097434]);     // 4378 => [2097434]
            map.insert(7945, &[2162714]);     // 7945 => [2162714]
            map.insert(2894, &[393242]);     // 2894 => [393242]
            map.insert(6819, &[2228250]);     // 6819 => [2228250]
            map.insert(4599, &[2359322]);     // 4599 => [2359322]
            map.insert(4202, &[2097258]);     // 4202 => [2097258]
            map.insert(4266, &[2097322]);     // 4266 => [2097322]
            map.insert(6420, &[2105386]);     // 6420 => [2105386]
            map.insert(7993, &[2162730]);     // 7993 => [2162730]
            map.insert(5104, &[2621482]);     // 5104 => [2621482]
            map.insert(2634, &[2634]);     // 2634 => [2634]
            map.insert(4682, &[2097738]);     // 4682 => [2097738]
            map.insert(6218, &[2099274]);     // 6218 => [2099274]
            map.insert(8025, &[2162762]);     // 8025 => [2162762]
            map.insert(4490, &[2097546]);     // 4490 => [2097546]
            map.insert(3689, &[18570]);     // 3689 => [18570]
            map.insert(6282, &[2099338]);     // 6282 => [2099338]
            map.insert(2670, &[532618]);     // 2670 => [532618]
            map.insert(6580, &[2105482]);     // 6580 => [2105482]
            map.insert(5737, &[2113674]);     // 5737 => [2113674]
            map.insert(4944, &[2621578]);     // 4944 => [2621578]
            map.insert(6410, &[2099466]);     // 6410 => [2099466]
            map.insert(6121, &[2113802]);     // 6121 => [2113802]
            map.insert(7091, &[2228490]);     // 7091 => [2228490]
            map.insert(4327, &[2359562]);     // 4327 => [2359562]
            map.insert(5642, &[2098698]);     // 5642 => [2098698]
            map.insert(6666, &[2099722]);     // 6666 => [2099722]
            map.insert(2921, &[655882]);     // 2921 => [655882]
            map.insert(6323, &[2228746]);     // 6323 => [2228746]
            map.insert(4560, &[2621962]);     // 4560 => [2621962]
            map.insert(4841, &[2114570]);     // 4841 => [2114570]
            map.insert(6937, &[2163722]);     // 6937 => [2163722]
            map.insert(7859, &[2229258]);     // 7859 => [2229258]
            map.insert(6096, &[2622474]);     // 6096 => [2622474]
            map.insert(5054, &[3146762]);     // 5054 => [3146762]
            map.insert(7913, &[2115594]);     // 7913 => [2115594]
            map.insert(6483, &[2134026]);     // 6483 => [2134026]
            map.insert(6368, &[6295562]);     // 6368 => [6295562]
            map.insert(3949, &[1318922]);     // 3949 => [1318922]
            map.insert(6361, &[2367498]);     // 6361 => [2367498]
            map.insert(6894, &[2629642]);     // 6894 => [2629642]
            map.insert(7808, &[3153930]);     // 7808 => [3153930]
            map.insert(3662, &[1130506]);     // 3662 => [1130506]
            map.insert(6650, &[2179082]);     // 6650 => [2179082]
            map.insert(4445, &[3162122]);     // 4445 => [3162122]
            map.insert(4537, &[6324234]);     // 4537 => [6324234]
            map.insert(6317, &[3211274]);     // 6317 => [3211274]
            map.insert(7006, &[2490378]);     // 7006 => [2490378]
            map.insert(6505, &[2752522]);     // 6505 => [2752522]
            map.insert(5715, &[3407882]);     // 5715 => [3407882]
            map.insert(4210, &[2097266]);     // 4210 => [2097266]
            map.insert(6194, &[2099250]);     // 6194 => [2099250]
            map.insert(5293, &[2101298]);     // 5293 => [2101298]
            map.insert(5841, &[2113586]);     // 5841 => [2113586]
            map.insert(7969, &[2162738]);     // 7969 => [2162738]
            map.insert(5202, &[2098258]);     // 5202 => [2098258]
            map.insert(7572, &[2130002]);     // 7572 => [2130002]
            map.insert(8001, &[2162770]);     // 8001 => [2162770]
            map.insert(5000, &[2621522]);     // 5000 => [2621522]
            map.insert(4754, &[2097810]);     // 4754 => [2097810]
            map.insert(5926, &[3145874]);     // 5926 => [3145874]
            map.insert(5517, &[2101522]);     // 5517 => [2101522]
            map.insert(6188, &[2105618]);     // 6188 => [2105618]
            map.insert(7083, &[2228498]);     // 7083 => [2228498]
            map.insert(4351, &[2359570]);     // 4351 => [2359570]
            map.insert(4808, &[2621714]);     // 4808 => [2621714]
            map.insert(5542, &[3146258]);     // 5542 => [3146258]
            map.insert(4849, &[2114578]);     // 4849 => [2114578]
            map.insert(6612, &[2130962]);     // 6612 => [2130962]
            map.insert(5631, &[2360338]);     // 5631 => [2360338]
            map.insert(6088, &[2622482]);     // 6088 => [2622482]
            map.insert(6247, &[6292498]);     // 6247 => [6292498]
            map.insert(7309, &[2103314]);     // 7309 => [2103314]
            map.insert(7921, &[2115602]);     // 7921 => [2115602]
            map.insert(5588, &[2131986]);     // 5588 => [2131986]
            map.insert(4779, &[2230290]);     // 4779 => [2230290]
            map.insert(7603, &[2109458]);     // 7603 => [2109458]
            map.insert(4718, &[2117650]);     // 4718 => [2117650]
            map.insert(5975, &[2625554]);     // 5975 => [2625554]
            map.insert(5695, &[2170898]);     // 5695 => [2170898]
            map.insert(6902, &[2629650]);     // 6902 => [2629650]
            map.insert(5465, &[6299666]);     // 5465 => [6299666]
            map.insert(5916, &[2375698]);     // 5916 => [2375698]
            map.insert(6788, &[6307858]);     // 6788 => [6307858]
            map.insert(5997, &[2261010]);     // 5997 => [2261010]
            map.insert(7694, &[2654226]);     // 7694 => [2654226]
            map.insert(4980, &[6357010]);     // 4980 => [6357010]
            map.insert(6982, &[2490386]);     // 6982 => [2490386]
            map.insert(7562, &[6553618]);     // 7562 => [6553618]
            map.insert(8049, &[2162786]);     // 8049 => [2162786]
            map.insert(4495, &[2359394]);     // 4495 => [2359394]
            map.insert(6102, &[3145826]);     // 6102 => [3145826]
            map.insert(7191, &[6291554]);     // 7191 => [6291554]
            map.insert(5181, &[2101410]);     // 5181 => [2101410]
            map.insert(6556, &[2105506]);     // 6556 => [2105506]
            map.insert(6683, &[2228386]);     // 6683 => [2228386]
            map.insert(4431, &[2359458]);     // 4431 => [2359458]
            map.insert(4984, &[2621602]);     // 4984 => [2621602]
            map.insert(5410, &[2098466]);     // 5410 => [2098466]
            map.insert(6690, &[2099746]);     // 6690 => [2099746]
            map.insert(6940, &[2105890]);     // 6940 => [2105890]
            map.insert(8164, &[2130466]);     // 8164 => [2130466]
            map.insert(7473, &[2163234]);     // 7473 => [2163234]
            map.insert(6299, &[2228770]);     // 6299 => [2228770]
            map.insert(7767, &[6292002]);     // 7767 => [6292002]
            map.insert(7357, &[2103330]);     // 7357 => [2103330]
            map.insert(4380, &[2107426]);     // 4380 => [2107426]
            map.insert(7873, &[2115618]);     // 7873 => [2115618]
            map.insert(5207, &[6293538]);     // 5207 => [6293538]
            map.insert(4702, &[2117666]);     // 4702 => [2117666]
            map.insert(7684, &[2232354]);     // 7684 => [2232354]
            map.insert(5456, &[2363426]);     // 5456 => [2363426]
            map.insert(6854, &[2629666]);     // 6854 => [2629666]
            map.insert(5481, &[6299682]);     // 5481 => [6299682]
            map.insert(6919, &[2146338]);     // 6919 => [2146338]
            map.insert(5403, &[2637858]);     // 5403 => [2637858]
            map.insert(4469, &[3162146]);     // 4469 => [3162146]
            map.insert(4855, &[2195490]);     // 4855 => [2195490]
            map.insert(5981, &[2261026]);     // 5981 => [2261026]
            map.insert(7742, &[2654242]);     // 7742 => [2654242]
            map.insert(6736, &[3178530]);     // 6736 => [3178530]
            map.insert(5512, &[2293794]);     // 5512 => [2293794]
            map.insert(7030, &[2490402]);     // 7030 => [2490402]
            map.insert(5755, &[3407906]);     // 5755 => [3407906]
            map.insert(7610, &[6553634]);     // 7610 => [6553634]
            map.insert(5196, &[3670050]);     // 5196 => [3670050]
            map.insert(7139, &[7340066]);     // 7139 => [7340066]
            map.insert(4546, &[2097602]);     // 4546 => [2097602]
            map.insert(5213, &[2101442]);     // 5213 => [2101442]
            map.insert(8145, &[2162882]);     // 8145 => [2162882]
            map.insert(4888, &[2621634]);     // 4888 => [2621634]
            map.insert(7351, &[6291650]);     // 7351 => [6291650]
            map.insert(4930, &[2097986]);     // 4930 => [2097986]
            map.insert(5597, &[2101570]);     // 5597 => [2101570]
            map.insert(7300, &[2130242]);     // 7300 => [2130242]
            map.insert(7761, &[2163010]);     // 7761 => [2163010]
            map.insert(4271, &[2359618]);     // 4271 => [2359618]
            map.insert(6722, &[2099778]);     // 6722 => [2099778]
            map.insert(8068, &[2130498]);     // 8068 => [2130498]
            map.insert(5039, &[2359874]);     // 5039 => [2359874]
            map.insert(7234, &[2100290]);     // 7234 => [2100290]
            map.insert(4317, &[2102338]);     // 4317 => [2102338]
            map.insert(6532, &[2131010]);     // 6532 => [2131010]
            map.insert(6040, &[2622530]);     // 6040 => [2622530]
            map.insert(5110, &[3146818]);     // 5110 => [3146818]
            map.insert(7389, &[2103362]);     // 7389 => [2103362]
            map.insert(8182, &[3147842]);     // 8182 => [3147842]
            map.insert(7118, &[2166850]);     // 7118 => [2166850]
            map.insert(4969, &[3149890]);     // 4969 => [3149890]
            map.insert(8095, &[2121794]);     // 8095 => [2121794]
            map.insert(5061, &[2236482]);     // 5061 => [2236482]
            map.insert(7192, &[2244674]);     // 7192 => [2244674]
            map.insert(7273, &[2392130]);     // 7273 => [2392130]
            map.insert(7774, &[2654274]);     // 7774 => [2654274]
            map.insert(5659, &[3407938]);     // 5659 => [3407938]
            map.insert(7642, &[6553666]);     // 7642 => [6553666]
            map.insert(8173, &[6815810]);     // 8173 => [6815810]
            map.insert(7043, &[7340098]);     // 7043 => [7340098]
            map.insert(6530, &[2099586]);     // 6530 => [2099586]
            map.insert(5405, &[2101634]);     // 5405 => [2101634]
            map.insert(5985, &[2113922]);     // 5985 => [2113922]
            map.insert(7825, &[2163074]);     // 7825 => [2163074]
            map.insert(5430, &[3146370]);     // 5430 => [3146370]
            map.insert(7298, &[2100354]);     // 7298 => [2100354]
            map.insert(7612, &[2106498]);     // 7612 => [2106498]
            map.insert(6468, &[2131074]);     // 6468 => [2131074]
            map.insert(7057, &[2163842]);     // 7057 => [2163842]
            map.insert(7739, &[2229378]);     // 7739 => [2229378]
            map.insert(6391, &[6292610]);     // 6391 => [6292610]
            map.insert(7777, &[2115714]);     // 7777 => [2115714]
            map.insert(4667, &[2230402]);     // 4667 => [2230402]
            map.insert(5367, &[6293634]);     // 5367 => [6293634]
            map.insert(6926, &[2166914]);     // 6926 => [2166914]
            map.insert(7844, &[2232450]);     // 7844 => [2232450]
            map.insert(5616, &[2363522]);     // 5616 => [2363522]
            map.insert(5242, &[2138242]);     // 5242 => [2138242]
            map.insert(5807, &[2171010]);     // 5807 => [2171010]
            map.insert(6758, &[2629762]);     // 6758 => [2629762]
            map.insert(7079, &[2146434]);     // 7079 => [2146434]
            map.insert(6028, &[2375810]);     // 6028 => [2375810]
            map.insert(4695, &[2195586]);     // 4695 => [2195586]
            map.insert(7337, &[2392194]);     // 7337 => [2392194]
            map.insert(7126, &[2490498]);     // 7126 => [2490498]
            map.insert(5710, &[6422658]);     // 5710 => [6422658]
            map.insert(7981, &[6815874]);     // 7981 => [6815874]
            map.insert(5601, &[2114306]);     // 5601 => [2114306]
            map.insert(7876, &[2130690]);     // 7876 => [2130690]
            map.insert(4847, &[2360066]);     // 4847 => [2360066]
            map.insert(4312, &[2622210]);     // 4312 => [2622210]
            map.insert(8055, &[6292226]);     // 8055 => [6292226]
            map.insert(4156, &[2107650]);     // 4156 => [2107650]
            map.insert(8161, &[2115842]);     // 8161 => [2115842]
            map.insert(5316, &[2132226]);     // 5316 => [2132226]
            map.insert(7862, &[3148034]);     // 7862 => [3148034]
            map.insert(7331, &[2109698]);     // 7331 => [2109698]
            map.insert(6798, &[2167042]);     // 6798 => [2167042]
            map.insert(5703, &[2625794]);     // 5703 => [2625794]
            map.insert(5626, &[2138370]);     // 5626 => [2138370]
            map.insert(7142, &[2629890]);     // 7142 => [2629890]
            map.insert(8072, &[3154178]);     // 8072 => [3154178]
            map.insert(5179, &[2638082]);     // 5179 => [2638082]
            map.insert(7060, &[6308098]);     // 7060 => [6308098]
            map.insert(7465, &[2392322]);     // 7465 => [2392322]
            map.insert(7024, &[3178754]);     // 7024 => [3178754]
            map.insert(5288, &[2294018]);     // 5288 => [2294018]
            map.insert(6565, &[3211522]);     // 6565 => [3211522]
            map.insert(4708, &[6357250]);     // 4708 => [6357250]
            map.insert(6742, &[2490626]);     // 6742 => [2490626]
            map.insert(7183, &[3277058]);     // 7183 => [3277058]
            map.insert(6094, &[6422786]);     // 6094 => [6422786]
            map.insert(7853, &[6816002]);     // 7853 => [6816002]
            map.insert(6851, &[7340290]);     // 6851 => [7340290]
            map.insert(4765, &[2102786]);     // 4765 => [2102786]
            map.insert(7996, &[2106882]);     // 7996 => [2106882]
            map.insert(7355, &[2229762]);     // 7355 => [2229762]
            map.insert(6127, &[2360834]);     // 6127 => [2360834]
            map.insert(5592, &[2622978]);     // 5592 => [2622978]
            map.insert(4924, &[2107906]);     // 4924 => [2107906]
            map.insert(5751, &[6294018]);     // 5751 => [6294018]
            map.insert(8099, &[2109954]);     // 8099 => [2109954]
            map.insert(4222, &[2118146]);     // 4222 => [2118146]
            map.insert(6542, &[2167298]);     // 6542 => [2167298]
            map.insert(6000, &[2363906]);     // 6000 => [2363906]
            map.insert(6865, &[2368002]);     // 6865 => [2368002]
            map.insert(5961, &[6300162]);     // 5961 => [6300162]
            map.insert(7154, &[2179586]);     // 7154 => [2179586]
            map.insert(5947, &[2638338]);     // 5947 => [2638338]
            map.insert(6292, &[6308354]);     // 6292 => [6308354]
            map.insert(4311, &[2195970]);     // 4311 => [2195970]
            map.insert(5501, &[2261506]);     // 5501 => [2261506]
            map.insert(7721, &[2392578]);     // 7721 => [2392578]
            map.insert(6056, &[2294274]);     // 6056 => [2294274]
            map.insert(7009, &[2753026]);     // 7009 => [2753026]
            map.insert(7597, &[6816258]);     // 7597 => [6816258]
            map.insert(6301, &[2104322]);     // 6301 => [2104322]
            map.insert(5819, &[2231298]);     // 5819 => [2231298]
            map.insert(7094, &[3148802]);     // 7094 => [3148802]
            map.insert(4215, &[6294530]);     // 4215 => [6294530]
            map.insert(6563, &[2110466]);     // 6563 => [2110466]
            map.insert(4464, &[2364418]);     // 4464 => [2364418]
            map.insert(5929, &[3150850]);     // 5929 => [3150850]
            map.insert(4346, &[2139138]);     // 4346 => [2139138]
            map.insert(4655, &[2171906]);     // 4655 => [2171906]
            map.insert(7377, &[2368514]);     // 7377 => [2368514]
            map.insert(7666, &[2180098]);     // 7666 => [2180098]
            map.insert(4876, &[2376706]);     // 4876 => [2376706]
            map.insert(5461, &[3163138]);     // 5461 => [3163138]
            map.insert(7828, &[6308866]);     // 7828 => [6308866]
            map.insert(5847, &[2196482]);     // 5847 => [2196482]
            map.insert(6686, &[2655234]);     // 6686 => [2655234]
            map.insert(7333, &[3212290]);     // 7333 => [3212290]
            map.insert(7521, &[2753538]);     // 7521 => [2753538]
            map.insert(4814, &[6423554]);     // 4814 => [6423554]
            map.insert(6554, &[6554626]);     // 6554 => [6554626]
            map.insert(6782, &[2119682]);     // 6782 => [2119682]
            map.insert(6953, &[3151874]);     // 6953 => [3151874]
            map.insert(7418, &[2140162]);     // 7418 => [2140162]
            map.insert(5768, &[3155970]);     // 5768 => [3155970]
            map.insert(7497, &[6301698]);     // 7497 => [6301698]
            map.insert(8061, &[2263042]);     // 8061 => [2263042]
            map.insert(4720, &[3180546]);     // 4720 => [3180546]
            map.insert(5884, &[2426882]);     // 5884 => [2426882]
            map.insert(5323, &[2689026]);     // 5323 => [2689026]
            map.insert(7886, &[6424578]);     // 7886 => [6424578]
            map.insert(6709, &[2885634]);     // 6709 => [2885634]
            map.insert(7246, &[2371586]);     // 7246 => [2371586]
            map.insert(7801, &[2633730]);     // 7801 => [2633730]
            map.insert(7533, &[2183170]);     // 7533 => [2183170]
            map.insert(5422, &[6328322]);     // 5422 => [6328322]
            map.insert(8137, &[2494466]);     // 8137 => [2494466]
            map.insert(7678, &[2756610]);     // 7678 => [2756610]
            map.insert(6544, &[3280898]);     // 6544 => [3280898]
            map.insert(4339, &[3674114]);     // 4339 => [3674114]
            map.insert(5478, &[2252802]);     // 5478 => [2252802]
            map.insert(7145, &[2203650]);     // 7145 => [2203650]
            map.insert(4942, &[3186690]);     // 4942 => [3186690]
            map.insert(6746, &[6365186]);     // 6746 => [6365186]
            map.insert(8037, &[3416066]);     // 8037 => [3416066]
            map.insert(6858, &[2408450]);     // 6858 => [2408450]
            map.insert(6397, &[2670594]);     // 6397 => [2670594]
            map.insert(7315, &[3194882]);     // 7315 => [3194882]
            map.insert(7750, &[3227650]);     // 7750 => [3227650]
            map.insert(7033, &[6569986]);     // 7033 => [6569986]
            map.insert(4751, &[3686402]);     // 4751 => [3686402]
            map.insert(6478, &[6832130]);     // 6478 => [6832130]
            map.insert(6254, &[2326530]);     // 6254 => [2326530]
            map.insert(6570, &[3702786]);     // 6570 => [3702786]
            map.insert(4636, &[3342338]);     // 4636 => [3342338]
            map.insert(6621, &[6488066]);     // 6621 => [6488066]
            map.insert(7462, &[2949122]);     // 7462 => [2949122]
            map.insert(5328, &[7405570]);     // 5328 => [7405570]
            map.insert(7893, &[3801090]);     // 7893 => [3801090]
            map.insert(4474, &[7471106]);     // 4474 => [7471106]
            map.insert(6702, &[7602178]);     // 6702 => [7602178]
            map.insert(5299, &[2101292]);     // 5299 => [2101292]
            map.insert(7658, &[2129964]);     // 7658 => [2129964]
            map.insert(2636, &[2636]);     // 2636 => [2636]
            map.insert(4684, &[2097740]);     // 4684 => [2097740]
            map.insert(6220, &[2099276]);     // 6220 => [2099276]
            map.insert(5523, &[2101516]);     // 5523 => [2101516]
            map.insert(7545, &[6291724]);     // 7545 => [6291724]
            map.insert(6668, &[2099724]);     // 6668 => [2099724]
            map.insert(6602, &[2130956]);     // 6602 => [2130956]
            map.insert(6265, &[6292492]);     // 6265 => [6292492]
            map.insert(3947, &[1318924]);     // 3947 => [1318924]
            map.insert(6367, &[2367500]);     // 6367 => [2367500]
            map.insert(7814, &[3153932]);     // 7814 => [3153932]
            map.insert(5717, &[3407884]);     // 5717 => [3407884]
            map.insert(4276, &[2097332]);     // 4276 => [2097332]
            map.insert(6016, &[3145780]);     // 6016 => [3145780]
            map.insert(4500, &[2097556]);     // 4500 => [2097556]
            map.insert(4884, &[2097940]);     // 4884 => [2097940]
            map.insert(5652, &[2098708]);     // 5652 => [2098708]
            map.insert(5024, &[3146772]);     // 5024 => [3146772]
            map.insert(5586, &[2131988]);     // 5586 => [2131988]
            map.insert(4781, &[2230292]);     // 4781 => [2230292]
            map.insert(5689, &[2170900]);     // 5689 => [2170900]
            map.insert(5471, &[6299668]);     // 5471 => [6299668]
            map.insert(5995, &[2261012]);     // 5995 => [2261012]
            map.insert(4978, &[6357012]);     // 4978 => [6357012]
            map.insert(5767, &[2113636]);     // 5767 => [2113636]
            map.insert(6877, &[2228324]);     // 6877 => [2228324]
            map.insert(4772, &[2097828]);     // 4772 => [2097828]
            map.insert(5412, &[2098468]);     // 5412 => [2098468]
            map.insert(5520, &[3146276]);     // 5520 => [3146276]
            map.insert(6601, &[2361380]);     // 6601 => [2361380]
            map.insert(7166, &[2623524]);     // 7166 => [2623524]
            map.insert(6350, &[6295588]);     // 6350 => [6295588]
            map.insert(8185, &[2121764]);     // 8185 => [2121764]
            map.insert(5027, &[2236452]);     // 5027 => [2236452]
            map.insert(4503, &[6324260]);     // 4503 => [6324260]
            map.insert(7898, &[2424868]);     // 7898 => [2424868]
            map.insert(7405, &[2687012]);     // 7405 => [2687012]
            map.insert(4894, &[2621636]);     // 4894 => [2621636]
            map.insert(7345, &[6291652]);     // 7345 => [6291652]
            map.insert(6266, &[2105668]);     // 6266 => [2105668]
            map.insert(7165, &[2228548]);     // 7165 => [2228548]
            map.insert(6724, &[2099780]);     // 6724 => [2099780]
            map.insert(7546, &[2106436]);     // 7546 => [2106436]
            map.insert(4775, &[2114628]);     // 4775 => [2114628]
            map.insert(8171, &[6815812]);     // 8171 => [6815812]
            map.insert(5680, &[3146116]);     // 5680 => [3146116]
            map.insert(5764, &[2098820]);     // 5764 => [2098820]
            map.insert(4912, &[3146884]);     // 4912 => [3146884]
            map.insert(7073, &[2146436]);     // 7073 => [2146436]
            map.insert(6026, &[2375812]);     // 6026 => [2375812]
            map.insert(7343, &[2392196]);     // 7343 => [2392196]
            map.insert(7979, &[6815876]);     // 7979 => [6815876]
            map.insert(5296, &[3146500]);     // 5296 => [3146500]
            map.insert(5655, &[2164996]);     // 5655 => [2164996]
            map.insert(6878, &[2623748]);     // 6878 => [2623748]
            map.insert(6237, &[2134276]);     // 6237 => [2134276]
            map.insert(7897, &[2121988]);     // 7897 => [2121988]
            map.insert(7518, &[2244868]);     // 7518 => [2244868]
            map.insert(4279, &[6324484]);     // 4279 => [6324484]
            map.insert(8186, &[2425092]);     // 8186 => [2425092]
            map.insert(4915, &[2883844]);     // 4915 => [2883844]
            map.insert(4216, &[2118148]);     // 4216 => [2118148]
            map.insert(6536, &[2167300]);     // 6536 => [2167300]
            map.insert(7156, &[2179588]);     // 7156 => [2179588]
            map.insert(4887, &[2165764]);     // 4887 => [2165764]
            map.insert(7657, &[2362372]);     // 7657 => [2362372]
            map.insert(7517, &[2135044]);     // 7517 => [2135044]
            map.insert(7406, &[6296580]);     // 7406 => [6296580]
            map.insert(6019, &[2237444]);     // 6019 => [2237444]
            map.insert(6238, &[2245636]);     // 6238 => [2245636]
            map.insert(6349, &[2688004]);     // 6349 => [2688004]
            map.insert(5683, &[2884612]);     // 5683 => [2884612]
            map.insert(8059, &[2263044]);     // 8059 => [2263044]
            map.insert(7531, &[2183172]);     // 7531 => [2183172]
            map.insert(7672, &[2756612]);     // 7672 => [2756612]
            map.insert(6550, &[3280900]);     // 6550 => [3280900]
            map.insert(4341, &[3674116]);     // 4341 => [3674116]
            map.insert(6748, &[6365188]);     // 6748 => [6365188]
            map.insert(8035, &[3416068]);     // 8035 => [3416068]
            map.insert(6860, &[2408452]);     // 6860 => [2408452]
            map.insert(7891, &[3801092]);     // 7891 => [3801092]
            map.insert(8011, &[2162776]);     // 8011 => [2162776]
            map.insert(7789, &[6291992]);     // 7789 => [6291992]
            map.insert(6762, &[3178520]);     // 6762 => [3178520]
            map.insert(6988, &[2490392]);     // 6988 => [2490392]
            map.insert(6728, &[2099784]);     // 6728 => [2099784]
            map.insert(7790, &[2232392]);     // 7790 => [2232392]
            map.insert(7021, &[2146376]);     // 7021 => [2146376]
            map.insert(8014, &[2130568]);     // 8014 => [2130568]
            map.insert(7787, &[2115720]);     // 7787 => [2115720]
            map.insert(6764, &[2629768]);     // 6764 => [2629768]
            map.insert(6985, &[7340168]);     // 6985 => [7340168]
            map.insert(7019, &[2753032]);     // 7019 => [2753032]
            map.insert(8013, &[2627592]);     // 8013 => [2627592]
            map.insert(7022, &[6359048]);     // 7022 => [6359048]
            map.insert(6986, &[2125832]);     // 6986 => [2125832]
            map.insert(6761, &[2428936]);     // 6761 => [2428936]
            map.insert(7753, &[2269192]);     // 7753 => [2269192]
            map.insert(8047, &[3416072]);     // 8047 => [3416072]
            map.insert(7756, &[3227656]);     // 7756 => [3227656]
            map.insert(7754, &[7077896]);     // 7754 => [7077896]
            map.insert(591, &[591]);     // 591 => [591]
            map.insert(2127, &[2127]);     // 2127 => [2127]
            map.insert(4175, &[2097231]);     // 4175 => [2097231]
            map.insert(2575, &[2575]);     // 2575 => [2575]
            map.insert(4623, &[2097679]);     // 4623 => [2097679]
            map.insert(6159, &[2099215]);     // 6159 => [2099215]
            map.insert(2268, &[270351]);     // 2268 => [270351]
            map.insert(3717, &[1056783]);     // 3717 => [1056783]
            map.insert(6449, &[2105359]);     // 6449 => [2105359]
            map.insert(1622, &[1310735]);     // 1622 => [1310735]
            map.insert(4578, &[2359311]);     // 4578 => [2359311]
            map.insert(6075, &[3145743]);     // 6075 => [3145743]
            map.insert(1489, &[34839]);     // 1489 => [34839]
            map.insert(686, &[133143]);     // 686 => [133143]
            map.insert(6167, &[2099223]);     // 6167 => [2099223]
            map.insert(1594, &[73751]);     // 1594 => [73751]
            map.insert(6441, &[2105367]);     // 6441 => [2105367]
            map.insert(1372, &[4202519]);     // 1372 => [4202519]
            map.insert(1896, &[163863]);     // 1896 => [163863]
            map.insert(7633, &[2129943]);     // 7633 => [2129943]
            map.insert(7940, &[2162711]);     // 7940 => [2162711]
            map.insert(881, &[4259863]);     // 881 => [4259863]
            map.insert(6830, &[2228247]);     // 6830 => [2228247]
            map.insert(7266, &[6291479]);     // 7266 => [6291479]
            map.insert(1319, &[1319]);     // 1319 => [1319]
            map.insert(4391, &[2097447]);     // 4391 => [2097447]
            map.insert(5159, &[2098215]);     // 5159 => [2098215]
            map.insert(797, &[524487]);     // 797 => [524487]
            map.insert(4295, &[2097351]);     // 4295 => [2097351]
            map.insert(3250, &[4194503]);     // 3250 => [4194503]
            map.insert(2631, &[2631]);     // 2631 => [2631]
            map.insert(4679, &[2097735]);     // 4679 => [2097735]
            map.insert(6215, &[2099271]);     // 6215 => [2099271]
            map.insert(5021, &[2621511]);     // 5021 => [2621511]
            map.insert(4072, &[4718663]);     // 4072 => [4718663]
            map.insert(7218, &[6291527]);     // 7218 => [6291527]
            map.insert(2978, &[49287]);     // 2978 => [49287]
            map.insert(1929, &[278663]);     // 1929 => [278663]
            map.insert(5732, &[2113671]);     // 5732 => [2113671]
            map.insert(3244, &[295047]);     // 3244 => [295047]
            map.insert(7489, &[2130055]);     // 7489 => [2130055]
            map.insert(4458, &[2359431]);     // 4458 => [2359431]
            map.insert(4957, &[2621575]);     // 4957 => [2621575]
            map.insert(3880, &[4718727]);     // 3880 => [4718727]
            map.insert(7410, &[6291591]);     // 7410 => [6291591]
            map.insert(5383, &[2098439]);     // 5383 => [2098439]
            map.insert(6663, &[2099719]);     // 6663 => [2099719]
            map.insert(123, &[20999]);     // 123 => [20999]
            map.insert(2443, &[70151]);     // 2443 => [70151]
            map.insert(5784, &[2101767]);     // 5784 => [2101767]
            map.insert(3063, &[82439]);     // 3063 => [82439]
            map.insert(5348, &[2114055]);     // 5348 => [2114055]
            map.insert(7444, &[2163207]);     // 7444 => [2163207]
            map.insert(3960, &[165895]);     // 3960 => [165895]
            map.insert(5569, &[2131975]);     // 5569 => [2131975]
            map.insert(4798, &[2230279]);     // 4798 => [2230279]
            map.insert(3432, &[86023]);     // 3432 => [86023]
            map.insert(4731, &[2117639]);     // 4731 => [2117639]
            map.insert(7051, &[2166791]);     // 7051 => [2166791]
            map.insert(3579, &[659463]);     // 3579 => [659463]
            map.insert(2453, &[1183751]);     // 2453 => [1183751]
            map.insert(7713, &[2232327]);     // 7713 => [2232327]
            map.insert(246, &[1576967]);     // 246 => [1576967]
            map.insert(5954, &[2625543]);     // 5954 => [2625543]
            map.insert(4908, &[3149831]);     // 4908 => [3149831]
            map.insert(5674, &[2170887]);     // 5674 => [2170887]
            map.insert(2655, &[4268039]);     // 2655 => [4268039]
            map.insert(3936, &[1318919]);     // 3936 => [1318919]
            map.insert(6356, &[2367495]);     // 6356 => [2367495]
            map.insert(7821, &[3153927]);     // 7821 => [3153927]
            map.insert(5452, &[6299655]);     // 5452 => [6299655]
            map.insert(2767, &[311303]);     // 2767 => [311303]
            map.insert(6946, &[2146311]);     // 6946 => [2146311]
            map.insert(6647, &[2179079]);     // 6647 => [2179079]
            map.insert(5897, &[2375687]);     // 5897 => [2375687]
            map.insert(6008, &[2260999]);     // 6008 => [2260999]
            map.insert(7212, &[2392071]);     // 7212 => [2392071]
            map.insert(4961, &[6356999]);     // 4961 => [6356999]
            map.insert(3792, &[1703943]);     // 3792 => [1703943]
            map.insert(6500, &[2752519]);     // 6500 => [2752519]
            map.insert(7434, &[3276807]);     // 7434 => [3276807]
            map.insert(5726, &[3407879]);     // 5726 => [3407879]
            map.insert(5225, &[3670023]);     // 5225 => [3670023]
            map.insert(8104, &[6815751]);     // 8104 => [6815751]
            map.insert(4155, &[2097211]);     // 4155 => [2097211]
            map.insert(3912, &[65627]);     // 3912 => [65627]
            map.insert(4187, &[2097243]);     // 4187 => [2097243]
            map.insert(4379, &[2097435]);     // 4379 => [2097435]
            map.insert(7944, &[2162715]);     // 7944 => [2162715]
            map.insert(2895, &[393243]);     // 2895 => [393243]
            map.insert(6818, &[2228251]);     // 6818 => [2228251]
            map.insert(4598, &[2359323]);     // 4598 => [2359323]
            map.insert(4203, &[2097259]);     // 4203 => [2097259]
            map.insert(4267, &[2097323]);     // 4267 => [2097323]
            map.insert(6421, &[2105387]);     // 6421 => [2105387]
            map.insert(7992, &[2162731]);     // 7992 => [2162731]
            map.insert(5105, &[2621483]);     // 5105 => [2621483]
            map.insert(2635, &[2635]);     // 2635 => [2635]
            map.insert(4683, &[2097739]);     // 4683 => [2097739]
            map.insert(6219, &[2099275]);     // 6219 => [2099275]
            map.insert(8024, &[2162763]);     // 8024 => [2162763]
            map.insert(4491, &[2097547]);     // 4491 => [2097547]
            map.insert(3688, &[18571]);     // 3688 => [18571]
            map.insert(6283, &[2099339]);     // 6283 => [2099339]
            map.insert(2671, &[532619]);     // 2671 => [532619]
            map.insert(6581, &[2105483]);     // 6581 => [2105483]
            map.insert(5736, &[2113675]);     // 5736 => [2113675]
            map.insert(4945, &[2621579]);     // 4945 => [2621579]
            map.insert(6411, &[2099467]);     // 6411 => [2099467]
            map.insert(6120, &[2113803]);     // 6120 => [2113803]
            map.insert(7090, &[2228491]);     // 7090 => [2228491]
            map.insert(4326, &[2359563]);     // 4326 => [2359563]
            map.insert(5643, &[2098699]);     // 5643 => [2098699]
            map.insert(6667, &[2099723]);     // 6667 => [2099723]
            map.insert(2920, &[655883]);     // 2920 => [655883]
            map.insert(6322, &[2228747]);     // 6322 => [2228747]
            map.insert(4561, &[2621963]);     // 4561 => [2621963]
            map.insert(4840, &[2114571]);     // 4840 => [2114571]
            map.insert(6936, &[2163723]);     // 6936 => [2163723]
            map.insert(7858, &[2229259]);     // 7858 => [2229259]
            map.insert(6097, &[2622475]);     // 6097 => [2622475]
            map.insert(5055, &[3146763]);     // 5055 => [3146763]
            map.insert(7912, &[2115595]);     // 7912 => [2115595]
            map.insert(6482, &[2134027]);     // 6482 => [2134027]
            map.insert(6369, &[6295563]);     // 6369 => [6295563]
            map.insert(3948, &[1318923]);     // 3948 => [1318923]
            map.insert(6360, &[2367499]);     // 6360 => [2367499]
            map.insert(6895, &[2629643]);     // 6895 => [2629643]
            map.insert(7809, &[3153931]);     // 7809 => [3153931]
            map.insert(3663, &[1130507]);     // 3663 => [1130507]
            map.insert(6651, &[2179083]);     // 6651 => [2179083]
            map.insert(4444, &[3162123]);     // 4444 => [3162123]
            map.insert(4536, &[6324235]);     // 4536 => [6324235]
            map.insert(6316, &[3211275]);     // 6316 => [3211275]
            map.insert(7007, &[2490379]);     // 7007 => [2490379]
            map.insert(6504, &[2752523]);     // 6504 => [2752523]
            map.insert(5714, &[3407883]);     // 5714 => [3407883]
            map.insert(4211, &[2097267]);     // 4211 => [2097267]
            map.insert(6195, &[2099251]);     // 6195 => [2099251]
            map.insert(5292, &[2101299]);     // 5292 => [2101299]
            map.insert(5840, &[2113587]);     // 5840 => [2113587]
            map.insert(7968, &[2162739]);     // 7968 => [2162739]
            map.insert(5203, &[2098259]);     // 5203 => [2098259]
            map.insert(7573, &[2130003]);     // 7573 => [2130003]
            map.insert(8000, &[2162771]);     // 8000 => [2162771]
            map.insert(5001, &[2621523]);     // 5001 => [2621523]
            map.insert(4755, &[2097811]);     // 4755 => [2097811]
            map.insert(5927, &[3145875]);     // 5927 => [3145875]
            map.insert(5516, &[2101523]);     // 5516 => [2101523]
            map.insert(6189, &[2105619]);     // 6189 => [2105619]
            map.insert(7082, &[2228499]);     // 7082 => [2228499]
            map.insert(4350, &[2359571]);     // 4350 => [2359571]
            map.insert(4809, &[2621715]);     // 4809 => [2621715]
            map.insert(5543, &[3146259]);     // 5543 => [3146259]
            map.insert(4848, &[2114579]);     // 4848 => [2114579]
            map.insert(6613, &[2130963]);     // 6613 => [2130963]
            map.insert(5630, &[2360339]);     // 5630 => [2360339]
            map.insert(6089, &[2622483]);     // 6089 => [2622483]
            map.insert(6246, &[6292499]);     // 6246 => [6292499]
            map.insert(7308, &[2103315]);     // 7308 => [2103315]
            map.insert(7920, &[2115603]);     // 7920 => [2115603]
            map.insert(5589, &[2131987]);     // 5589 => [2131987]
            map.insert(4778, &[2230291]);     // 4778 => [2230291]
            map.insert(7602, &[2109459]);     // 7602 => [2109459]
            map.insert(4719, &[2117651]);     // 4719 => [2117651]
            map.insert(5974, &[2625555]);     // 5974 => [2625555]
            map.insert(5694, &[2170899]);     // 5694 => [2170899]
            map.insert(6903, &[2629651]);     // 6903 => [2629651]
            map.insert(5464, &[6299667]);     // 5464 => [6299667]
            map.insert(5917, &[2375699]);     // 5917 => [2375699]
            map.insert(6789, &[6307859]);     // 6789 => [6307859]
            map.insert(5996, &[2261011]);     // 5996 => [2261011]
            map.insert(7695, &[2654227]);     // 7695 => [2654227]
            map.insert(4981, &[6357011]);     // 4981 => [6357011]
            map.insert(6983, &[2490387]);     // 6983 => [2490387]
            map.insert(7563, &[6553619]);     // 7563 => [6553619]
            map.insert(8048, &[2162787]);     // 8048 => [2162787]
            map.insert(4494, &[2359395]);     // 4494 => [2359395]
            map.insert(6103, &[3145827]);     // 6103 => [3145827]
            map.insert(7190, &[6291555]);     // 7190 => [6291555]
            map.insert(5180, &[2101411]);     // 5180 => [2101411]
            map.insert(6557, &[2105507]);     // 6557 => [2105507]
            map.insert(6682, &[2228387]);     // 6682 => [2228387]
            map.insert(4430, &[2359459]);     // 4430 => [2359459]
            map.insert(4985, &[2621603]);     // 4985 => [2621603]
            map.insert(5411, &[2098467]);     // 5411 => [2098467]
            map.insert(6691, &[2099747]);     // 6691 => [2099747]
            map.insert(6941, &[2105891]);     // 6941 => [2105891]
            map.insert(8165, &[2130467]);     // 8165 => [2130467]
            map.insert(7472, &[2163235]);     // 7472 => [2163235]
            map.insert(6298, &[2228771]);     // 6298 => [2228771]
            map.insert(7766, &[6292003]);     // 7766 => [6292003]
            map.insert(7356, &[2103331]);     // 7356 => [2103331]
            map.insert(4381, &[2107427]);     // 4381 => [2107427]
            map.insert(7872, &[2115619]);     // 7872 => [2115619]
            map.insert(5206, &[6293539]);     // 5206 => [6293539]
            map.insert(4703, &[2117667]);     // 4703 => [2117667]
            map.insert(7685, &[2232355]);     // 7685 => [2232355]
            map.insert(5457, &[2363427]);     // 5457 => [2363427]
            map.insert(6855, &[2629667]);     // 6855 => [2629667]
            map.insert(5480, &[6299683]);     // 5480 => [6299683]
            map.insert(6918, &[2146339]);     // 6918 => [2146339]
            map.insert(5402, &[2637859]);     // 5402 => [2637859]
            map.insert(4468, &[3162147]);     // 4468 => [3162147]
            map.insert(4854, &[2195491]);     // 4854 => [2195491]
            map.insert(5980, &[2261027]);     // 5980 => [2261027]
            map.insert(7743, &[2654243]);     // 7743 => [2654243]
            map.insert(6737, &[3178531]);     // 6737 => [3178531]
            map.insert(5513, &[2293795]);     // 5513 => [2293795]
            map.insert(7031, &[2490403]);     // 7031 => [2490403]
            map.insert(5754, &[3407907]);     // 5754 => [3407907]
            map.insert(7611, &[6553635]);     // 7611 => [6553635]
            map.insert(5197, &[3670051]);     // 5197 => [3670051]
            map.insert(7138, &[7340067]);     // 7138 => [7340067]
            map.insert(4547, &[2097603]);     // 4547 => [2097603]
            map.insert(5212, &[2101443]);     // 5212 => [2101443]
            map.insert(8144, &[2162883]);     // 8144 => [2162883]
            map.insert(4889, &[2621635]);     // 4889 => [2621635]
            map.insert(7350, &[6291651]);     // 7350 => [6291651]
            map.insert(4931, &[2097987]);     // 4931 => [2097987]
            map.insert(5596, &[2101571]);     // 5596 => [2101571]
            map.insert(7301, &[2130243]);     // 7301 => [2130243]
            map.insert(7760, &[2163011]);     // 7760 => [2163011]
            map.insert(4270, &[2359619]);     // 4270 => [2359619]
            map.insert(6723, &[2099779]);     // 6723 => [2099779]
            map.insert(8069, &[2130499]);     // 8069 => [2130499]
            map.insert(5038, &[2359875]);     // 5038 => [2359875]
            map.insert(7235, &[2100291]);     // 7235 => [2100291]
            map.insert(4316, &[2102339]);     // 4316 => [2102339]
            map.insert(6533, &[2131011]);     // 6533 => [2131011]
            map.insert(6041, &[2622531]);     // 6041 => [2622531]
            map.insert(5111, &[3146819]);     // 5111 => [3146819]
            map.insert(7388, &[2103363]);     // 7388 => [2103363]
            map.insert(8183, &[3147843]);     // 8183 => [3147843]
            map.insert(7119, &[2166851]);     // 7119 => [2166851]
            map.insert(4968, &[3149891]);     // 4968 => [3149891]
            map.insert(8094, &[2121795]);     // 8094 => [2121795]
            map.insert(5060, &[2236483]);     // 5060 => [2236483]
            map.insert(7193, &[2244675]);     // 7193 => [2244675]
            map.insert(7272, &[2392131]);     // 7272 => [2392131]
            map.insert(7775, &[2654275]);     // 7775 => [2654275]
            map.insert(5658, &[3407939]);     // 5658 => [3407939]
            map.insert(7643, &[6553667]);     // 7643 => [6553667]
            map.insert(8172, &[6815811]);     // 8172 => [6815811]
            map.insert(7042, &[7340099]);     // 7042 => [7340099]
            map.insert(6531, &[2099587]);     // 6531 => [2099587]
            map.insert(5404, &[2101635]);     // 5404 => [2101635]
            map.insert(5984, &[2113923]);     // 5984 => [2113923]
            map.insert(7824, &[2163075]);     // 7824 => [2163075]
            map.insert(5431, &[3146371]);     // 5431 => [3146371]
            map.insert(7299, &[2100355]);     // 7299 => [2100355]
            map.insert(7613, &[2106499]);     // 7613 => [2106499]
            map.insert(6469, &[2131075]);     // 6469 => [2131075]
            map.insert(7056, &[2163843]);     // 7056 => [2163843]
            map.insert(7738, &[2229379]);     // 7738 => [2229379]
            map.insert(6390, &[6292611]);     // 6390 => [6292611]
            map.insert(7776, &[2115715]);     // 7776 => [2115715]
            map.insert(4666, &[2230403]);     // 4666 => [2230403]
            map.insert(5366, &[6293635]);     // 5366 => [6293635]
            map.insert(6927, &[2166915]);     // 6927 => [2166915]
            map.insert(7845, &[2232451]);     // 7845 => [2232451]
            map.insert(5617, &[2363523]);     // 5617 => [2363523]
            map.insert(5243, &[2138243]);     // 5243 => [2138243]
            map.insert(5806, &[2171011]);     // 5806 => [2171011]
            map.insert(6759, &[2629763]);     // 6759 => [2629763]
            map.insert(7078, &[2146435]);     // 7078 => [2146435]
            map.insert(6029, &[2375811]);     // 6029 => [2375811]
            map.insert(4694, &[2195587]);     // 4694 => [2195587]
            map.insert(7336, &[2392195]);     // 7336 => [2392195]
            map.insert(7127, &[2490499]);     // 7127 => [2490499]
            map.insert(5711, &[6422659]);     // 5711 => [6422659]
            map.insert(7980, &[6815875]);     // 7980 => [6815875]
            map.insert(5600, &[2114307]);     // 5600 => [2114307]
            map.insert(7877, &[2130691]);     // 7877 => [2130691]
            map.insert(4846, &[2360067]);     // 4846 => [2360067]
            map.insert(4313, &[2622211]);     // 4313 => [2622211]
            map.insert(8054, &[6292227]);     // 8054 => [6292227]
            map.insert(4157, &[2107651]);     // 4157 => [2107651]
            map.insert(8160, &[2115843]);     // 8160 => [2115843]
            map.insert(5317, &[2132227]);     // 5317 => [2132227]
            map.insert(7863, &[3148035]);     // 7863 => [3148035]
            map.insert(7330, &[2109699]);     // 7330 => [2109699]
            map.insert(6799, &[2167043]);     // 6799 => [2167043]
            map.insert(5702, &[2625795]);     // 5702 => [2625795]
            map.insert(5627, &[2138371]);     // 5627 => [2138371]
            map.insert(7143, &[2629891]);     // 7143 => [2629891]
            map.insert(8073, &[3154179]);     // 8073 => [3154179]
            map.insert(5178, &[2638083]);     // 5178 => [2638083]
            map.insert(7061, &[6308099]);     // 7061 => [6308099]
            map.insert(7464, &[2392323]);     // 7464 => [2392323]
            map.insert(7025, &[3178755]);     // 7025 => [3178755]
            map.insert(5289, &[2294019]);     // 5289 => [2294019]
            map.insert(6564, &[3211523]);     // 6564 => [3211523]
            map.insert(4709, &[6357251]);     // 4709 => [6357251]
            map.insert(6743, &[2490627]);     // 6743 => [2490627]
            map.insert(7182, &[3277059]);     // 7182 => [3277059]
            map.insert(6095, &[6422787]);     // 6095 => [6422787]
            map.insert(7852, &[6816003]);     // 7852 => [6816003]
            map.insert(6850, &[7340291]);     // 6850 => [7340291]
            map.insert(4764, &[2102787]);     // 4764 => [2102787]
            map.insert(7997, &[2106883]);     // 7997 => [2106883]
            map.insert(7354, &[2229763]);     // 7354 => [2229763]
            map.insert(6126, &[2360835]);     // 6126 => [2360835]
            map.insert(5593, &[2622979]);     // 5593 => [2622979]
            map.insert(4925, &[2107907]);     // 4925 => [2107907]
            map.insert(5750, &[6294019]);     // 5750 => [6294019]
            map.insert(8098, &[2109955]);     // 8098 => [2109955]
            map.insert(4223, &[2118147]);     // 4223 => [2118147]
            map.insert(6543, &[2167299]);     // 6543 => [2167299]
            map.insert(6001, &[2363907]);     // 6001 => [2363907]
            map.insert(6864, &[2368003]);     // 6864 => [2368003]
            map.insert(5960, &[6300163]);     // 5960 => [6300163]
            map.insert(7155, &[2179587]);     // 7155 => [2179587]
            map.insert(5946, &[2638339]);     // 5946 => [2638339]
            map.insert(6293, &[6308355]);     // 6293 => [6308355]
            map.insert(4310, &[2195971]);     // 4310 => [2195971]
            map.insert(5500, &[2261507]);     // 5500 => [2261507]
            map.insert(7720, &[2392579]);     // 7720 => [2392579]
            map.insert(6057, &[2294275]);     // 6057 => [2294275]
            map.insert(7008, &[2753027]);     // 7008 => [2753027]
            map.insert(7596, &[6816259]);     // 7596 => [6816259]
            map.insert(6300, &[2104323]);     // 6300 => [2104323]
            map.insert(5818, &[2231299]);     // 5818 => [2231299]
            map.insert(7095, &[3148803]);     // 7095 => [3148803]
            map.insert(4214, &[6294531]);     // 4214 => [6294531]
            map.insert(6562, &[2110467]);     // 6562 => [2110467]
            map.insert(4465, &[2364419]);     // 4465 => [2364419]
            map.insert(5928, &[3150851]);     // 5928 => [3150851]
            map.insert(4347, &[2139139]);     // 4347 => [2139139]
            map.insert(4654, &[2171907]);     // 4654 => [2171907]
            map.insert(7376, &[2368515]);     // 7376 => [2368515]
            map.insert(7667, &[2180099]);     // 7667 => [2180099]
            map.insert(4877, &[2376707]);     // 4877 => [2376707]
            map.insert(5460, &[3163139]);     // 5460 => [3163139]
            map.insert(7829, &[6308867]);     // 7829 => [6308867]
            map.insert(5846, &[2196483]);     // 5846 => [2196483]
            map.insert(6687, &[2655235]);     // 6687 => [2655235]
            map.insert(7332, &[3212291]);     // 7332 => [3212291]
            map.insert(7520, &[2753539]);     // 7520 => [2753539]
            map.insert(4815, &[6423555]);     // 4815 => [6423555]
            map.insert(6555, &[6554627]);     // 6555 => [6554627]
            map.insert(6783, &[2119683]);     // 6783 => [2119683]
            map.insert(6952, &[3151875]);     // 6952 => [3151875]
            map.insert(7419, &[2140163]);     // 7419 => [2140163]
            map.insert(5769, &[3155971]);     // 5769 => [3155971]
            map.insert(7496, &[6301699]);     // 7496 => [6301699]
            map.insert(8060, &[2263043]);     // 8060 => [2263043]
            map.insert(4721, &[3180547]);     // 4721 => [3180547]
            map.insert(5885, &[2426883]);     // 5885 => [2426883]
            map.insert(5322, &[2689027]);     // 5322 => [2689027]
            map.insert(7887, &[6424579]);     // 7887 => [6424579]
            map.insert(6708, &[2885635]);     // 6708 => [2885635]
            map.insert(7247, &[2371587]);     // 7247 => [2371587]
            map.insert(7800, &[2633731]);     // 7800 => [2633731]
            map.insert(7532, &[2183171]);     // 7532 => [2183171]
            map.insert(5423, &[6328323]);     // 5423 => [6328323]
            map.insert(8136, &[2494467]);     // 8136 => [2494467]
            map.insert(7679, &[2756611]);     // 7679 => [2756611]
            map.insert(6545, &[3280899]);     // 6545 => [3280899]
            map.insert(4338, &[3674115]);     // 4338 => [3674115]
            map.insert(5479, &[2252803]);     // 5479 => [2252803]
            map.insert(7144, &[2203651]);     // 7144 => [2203651]
            map.insert(4943, &[3186691]);     // 4943 => [3186691]
            map.insert(6747, &[6365187]);     // 6747 => [6365187]
            map.insert(8036, &[3416067]);     // 8036 => [3416067]
            map.insert(6859, &[2408451]);     // 6859 => [2408451]
            map.insert(6396, &[2670595]);     // 6396 => [2670595]
            map.insert(7314, &[3194883]);     // 7314 => [3194883]
            map.insert(7751, &[3227651]);     // 7751 => [3227651]
            map.insert(7032, &[6569987]);     // 7032 => [6569987]
            map.insert(4750, &[3686403]);     // 4750 => [3686403]
            map.insert(6479, &[6832131]);     // 6479 => [6832131]
            map.insert(6255, &[2326531]);     // 6255 => [2326531]
            map.insert(6571, &[3702787]);     // 6571 => [3702787]
            map.insert(4637, &[3342339]);     // 4637 => [3342339]
            map.insert(6620, &[6488067]);     // 6620 => [6488067]
            map.insert(7463, &[2949123]);     // 7463 => [2949123]
            map.insert(5329, &[7405571]);     // 5329 => [7405571]
            map.insert(7892, &[3801091]);     // 7892 => [3801091]
            map.insert(4475, &[7471107]);     // 4475 => [7471107]
            map.insert(6703, &[7602179]);     // 6703 => [7602179]
            map.insert(5298, &[2101293]);     // 5298 => [2101293]
            map.insert(7659, &[2129965]);     // 7659 => [2129965]
            map.insert(2637, &[2637]);     // 2637 => [2637]
            map.insert(4685, &[2097741]);     // 4685 => [2097741]
            map.insert(6221, &[2099277]);     // 6221 => [2099277]
            map.insert(5522, &[2101517]);     // 5522 => [2101517]
            map.insert(7544, &[6291725]);     // 7544 => [6291725]
            map.insert(6669, &[2099725]);     // 6669 => [2099725]
            map.insert(6603, &[2130957]);     // 6603 => [2130957]
            map.insert(6264, &[6292493]);     // 6264 => [6292493]
            map.insert(3946, &[1318925]);     // 3946 => [1318925]
            map.insert(6366, &[2367501]);     // 6366 => [2367501]
            map.insert(7815, &[3153933]);     // 7815 => [3153933]
            map.insert(5716, &[3407885]);     // 5716 => [3407885]
            map.insert(4277, &[2097333]);     // 4277 => [2097333]
            map.insert(6017, &[3145781]);     // 6017 => [3145781]
            map.insert(4501, &[2097557]);     // 4501 => [2097557]
            map.insert(4885, &[2097941]);     // 4885 => [2097941]
            map.insert(5653, &[2098709]);     // 5653 => [2098709]
            map.insert(5025, &[3146773]);     // 5025 => [3146773]
            map.insert(5587, &[2131989]);     // 5587 => [2131989]
            map.insert(4780, &[2230293]);     // 4780 => [2230293]
            map.insert(5688, &[2170901]);     // 5688 => [2170901]
            map.insert(5470, &[6299669]);     // 5470 => [6299669]
            map.insert(5994, &[2261013]);     // 5994 => [2261013]
            map.insert(4979, &[6357013]);     // 4979 => [6357013]
            map.insert(5766, &[2113637]);     // 5766 => [2113637]
            map.insert(6876, &[2228325]);     // 6876 => [2228325]
            map.insert(4773, &[2097829]);     // 4773 => [2097829]
            map.insert(5413, &[2098469]);     // 5413 => [2098469]
            map.insert(5521, &[3146277]);     // 5521 => [3146277]
            map.insert(6600, &[2361381]);     // 6600 => [2361381]
            map.insert(7167, &[2623525]);     // 7167 => [2623525]
            map.insert(6351, &[6295589]);     // 6351 => [6295589]
            map.insert(8184, &[2121765]);     // 8184 => [2121765]
            map.insert(5026, &[2236453]);     // 5026 => [2236453]
            map.insert(4502, &[6324261]);     // 4502 => [6324261]
            map.insert(7899, &[2424869]);     // 7899 => [2424869]
            map.insert(7404, &[2687013]);     // 7404 => [2687013]
            map.insert(4895, &[2621637]);     // 4895 => [2621637]
            map.insert(7344, &[6291653]);     // 7344 => [6291653]
            map.insert(6267, &[2105669]);     // 6267 => [2105669]
            map.insert(7164, &[2228549]);     // 7164 => [2228549]
            map.insert(6725, &[2099781]);     // 6725 => [2099781]
            map.insert(7547, &[2106437]);     // 7547 => [2106437]
            map.insert(4774, &[2114629]);     // 4774 => [2114629]
            map.insert(8170, &[6815813]);     // 8170 => [6815813]
            map.insert(5681, &[3146117]);     // 5681 => [3146117]
            map.insert(5765, &[2098821]);     // 5765 => [2098821]
            map.insert(4913, &[3146885]);     // 4913 => [3146885]
            map.insert(7072, &[2146437]);     // 7072 => [2146437]
            map.insert(6027, &[2375813]);     // 6027 => [2375813]
            map.insert(7342, &[2392197]);     // 7342 => [2392197]
            map.insert(7978, &[6815877]);     // 7978 => [6815877]
            map.insert(5297, &[3146501]);     // 5297 => [3146501]
            map.insert(5654, &[2164997]);     // 5654 => [2164997]
            map.insert(6879, &[2623749]);     // 6879 => [2623749]
            map.insert(6236, &[2134277]);     // 6236 => [2134277]
            map.insert(7896, &[2121989]);     // 7896 => [2121989]
            map.insert(7519, &[2244869]);     // 7519 => [2244869]
            map.insert(4278, &[6324485]);     // 4278 => [6324485]
            map.insert(8187, &[2425093]);     // 8187 => [2425093]
            map.insert(4914, &[2883845]);     // 4914 => [2883845]
            map.insert(4217, &[2118149]);     // 4217 => [2118149]
            map.insert(6537, &[2167301]);     // 6537 => [2167301]
            map.insert(7157, &[2179589]);     // 7157 => [2179589]
            map.insert(4886, &[2165765]);     // 4886 => [2165765]
            map.insert(7656, &[2362373]);     // 7656 => [2362373]
            map.insert(7516, &[2135045]);     // 7516 => [2135045]
            map.insert(7407, &[6296581]);     // 7407 => [6296581]
            map.insert(6018, &[2237445]);     // 6018 => [2237445]
            map.insert(6239, &[2245637]);     // 6239 => [2245637]
            map.insert(6348, &[2688005]);     // 6348 => [2688005]
            map.insert(5682, &[2884613]);     // 5682 => [2884613]
            map.insert(8058, &[2263045]);     // 8058 => [2263045]
            map.insert(7530, &[2183173]);     // 7530 => [2183173]
            map.insert(7673, &[2756613]);     // 7673 => [2756613]
            map.insert(6551, &[3280901]);     // 6551 => [3280901]
            map.insert(4340, &[3674117]);     // 4340 => [3674117]
            map.insert(6749, &[6365189]);     // 6749 => [6365189]
            map.insert(8034, &[3416069]);     // 8034 => [3416069]
            map.insert(6861, &[2408453]);     // 6861 => [2408453]
            map.insert(7890, &[3801093]);     // 7890 => [3801093]
            map.insert(8010, &[2162777]);     // 8010 => [2162777]
            map.insert(7788, &[6291993]);     // 7788 => [6291993]
            map.insert(6763, &[3178521]);     // 6763 => [3178521]
            map.insert(6989, &[2490393]);     // 6989 => [2490393]
            map.insert(6729, &[2099785]);     // 6729 => [2099785]
            map.insert(7791, &[2232393]);     // 7791 => [2232393]
            map.insert(7020, &[2146377]);     // 7020 => [2146377]
            map.insert(8015, &[2130569]);     // 8015 => [2130569]
            map.insert(7786, &[2115721]);     // 7786 => [2115721]
            map.insert(6765, &[2629769]);     // 6765 => [2629769]
            map.insert(6984, &[7340169]);     // 6984 => [7340169]
            map.insert(7018, &[2753033]);     // 7018 => [2753033]
            map.insert(8012, &[2627593]);     // 8012 => [2627593]
            map.insert(7023, &[6359049]);     // 7023 => [6359049]
            map.insert(6987, &[2125833]);     // 6987 => [2125833]
            map.insert(6760, &[2428937]);     // 6760 => [2428937]
            map.insert(7752, &[2269193]);     // 7752 => [2269193]
            map.insert(8046, &[3416073]);     // 8046 => [3416073]
            map.insert(7757, &[3227657]);     // 7757 => [3227657]
            map.insert(7755, &[7077897]);     // 7755 => [7077897]
            map.insert(2638, &[2638]);     // 2638 => [2638]
            map.insert(4686, &[2097742]);     // 4686 => [2097742]
            map.insert(6222, &[2099278]);     // 6222 => [2099278]
            map.insert(6670, &[2099726]);     // 6670 => [2099726]
            map.insert(3945, &[1318926]);     // 3945 => [1318926]
            map.insert(6365, &[2367502]);     // 6365 => [2367502]
            map.insert(7812, &[3153934]);     // 7812 => [3153934]
            map.insert(5719, &[3407886]);     // 5719 => [3407886]
            map.insert(5584, &[2131990]);     // 5584 => [2131990]
            map.insert(4783, &[2230294]);     // 4783 => [2230294]
            map.insert(5691, &[2170902]);     // 5691 => [2170902]
            map.insert(5469, &[6299670]);     // 5469 => [6299670]
            map.insert(5993, &[2261014]);     // 5993 => [2261014]
            map.insert(4976, &[6357014]);     // 4976 => [6357014]
            map.insert(5414, &[2098470]);     // 5414 => [2098470]
            map.insert(4892, &[2621638]);     // 4892 => [2621638]
            map.insert(7347, &[6291654]);     // 7347 => [6291654]
            map.insert(6726, &[2099782]);     // 6726 => [2099782]
            map.insert(8169, &[6815814]);     // 8169 => [6815814]
            map.insert(7075, &[2146438]);     // 7075 => [2146438]
            map.insert(6024, &[2375814]);     // 6024 => [2375814]
            map.insert(7341, &[2392198]);     // 7341 => [2392198]
            map.insert(7977, &[6815878]);     // 7977 => [6815878]
            map.insert(4218, &[2118150]);     // 4218 => [2118150]
            map.insert(6538, &[2167302]);     // 6538 => [2167302]
            map.insert(7158, &[2179590]);     // 7158 => [2179590]
            map.insert(8057, &[2263046]);     // 8057 => [2263046]
            map.insert(7529, &[2183174]);     // 7529 => [2183174]
            map.insert(7674, &[2756614]);     // 7674 => [2756614]
            map.insert(6548, &[3280902]);     // 6548 => [3280902]
            map.insert(4343, &[3674118]);     // 4343 => [3674118]
            map.insert(6750, &[6365190]);     // 6750 => [6365190]
            map.insert(8033, &[3416070]);     // 8033 => [3416070]
            map.insert(6862, &[2408454]);     // 6862 => [2408454]
            map.insert(7889, &[3801094]);     // 7889 => [3801094]
            map.insert(8009, &[2162778]);     // 8009 => [2162778]
            map.insert(6990, &[2490394]);     // 6990 => [2490394]
            map.insert(6730, &[2099786]);     // 6730 => [2099786]
            map.insert(7785, &[2115722]);     // 7785 => [2115722]
            map.insert(6766, &[2629770]);     // 6766 => [2629770]
            map.insert(7017, &[2753034]);     // 7017 => [2753034]
            map.insert(8045, &[3416074]);     // 8045 => [3416074]
            map.insert(7758, &[3227658]);     // 7758 => [3227658]
            map.insert(6732, &[2099788]);     // 6732 => [2099788]
            map.insert(8043, &[3416076]);     // 8043 => [3416076]
            map.insert(2639, &[2639]);     // 2639 => [2639]
            map.insert(4687, &[2097743]);     // 4687 => [2097743]
            map.insert(6223, &[2099279]);     // 6223 => [2099279]
            map.insert(6671, &[2099727]);     // 6671 => [2099727]
            map.insert(3944, &[1318927]);     // 3944 => [1318927]
            map.insert(6364, &[2367503]);     // 6364 => [2367503]
            map.insert(7813, &[3153935]);     // 7813 => [3153935]
            map.insert(5718, &[3407887]);     // 5718 => [3407887]
            map.insert(5585, &[2131991]);     // 5585 => [2131991]
            map.insert(4782, &[2230295]);     // 4782 => [2230295]
            map.insert(5690, &[2170903]);     // 5690 => [2170903]
            map.insert(5468, &[6299671]);     // 5468 => [6299671]
            map.insert(5992, &[2261015]);     // 5992 => [2261015]
            map.insert(4977, &[6357015]);     // 4977 => [6357015]
            map.insert(5415, &[2098471]);     // 5415 => [2098471]
            map.insert(4893, &[2621639]);     // 4893 => [2621639]
            map.insert(7346, &[6291655]);     // 7346 => [6291655]
            map.insert(6727, &[2099783]);     // 6727 => [2099783]
            map.insert(8168, &[6815815]);     // 8168 => [6815815]
            map.insert(7074, &[2146439]);     // 7074 => [2146439]
            map.insert(6025, &[2375815]);     // 6025 => [2375815]
            map.insert(7340, &[2392199]);     // 7340 => [2392199]
            map.insert(7976, &[6815879]);     // 7976 => [6815879]
            map.insert(4219, &[2118151]);     // 4219 => [2118151]
            map.insert(6539, &[2167303]);     // 6539 => [2167303]
            map.insert(7159, &[2179591]);     // 7159 => [2179591]
            map.insert(8056, &[2263047]);     // 8056 => [2263047]
            map.insert(7528, &[2183175]);     // 7528 => [2183175]
            map.insert(7675, &[2756615]);     // 7675 => [2756615]
            map.insert(6549, &[3280903]);     // 6549 => [3280903]
            map.insert(4342, &[3674119]);     // 4342 => [3674119]
            map.insert(6751, &[6365191]);     // 6751 => [6365191]
            map.insert(8032, &[3416071]);     // 8032 => [3416071]
            map.insert(6863, &[2408455]);     // 6863 => [2408455]
            map.insert(7888, &[3801095]);     // 7888 => [3801095]
            map.insert(8008, &[2162779]);     // 8008 => [2162779]
            map.insert(6991, &[2490395]);     // 6991 => [2490395]
            map.insert(6731, &[2099787]);     // 6731 => [2099787]
            map.insert(7784, &[2115723]);     // 7784 => [2115723]
            map.insert(6767, &[2629771]);     // 6767 => [2629771]
            map.insert(7016, &[2753035]);     // 7016 => [2753035]
            map.insert(8044, &[3416075]);     // 8044 => [3416075]
            map.insert(7759, &[3227659]);     // 7759 => [3227659]
            map.insert(6733, &[2099789]);     // 6733 => [2099789]
            map.insert(8042, &[3416077]);     // 8042 => [3416077]
            map.insert(6734, &[2099790]);     // 6734 => [2099790]
            map.insert(8041, &[3416078]);     // 8041 => [3416078]
            map.insert(6735, &[2099791]);     // 6735 => [2099791]
            map.insert(8040, &[3416079]);     // 8040 => [3416079]
            
            SYNDROME_MAP = Box::into_raw(map);
        }
    });
}

impl GuavaCode23_10 {
    fn parity_check_matrix_transposed(&self) -> &BinMatrix {
        init();
        unsafe {
            PARITY_MATRIX_T.as_ref().unwrap()
        }
    }
}

impl BinaryCode for GuavaCode23_10 {
    fn name(&self) -> String {
        "[23, 10] Guava code".to_owned()
    }

    fn length(&self) -> usize {
        23
    }

    fn dimension(&self) -> usize {
        10
    }

    fn generator_matrix(&self) -> &BinMatrix {
        init();
        unsafe {
            GENERATOR_MATRIX.as_ref().unwrap()
        }
    }

    fn parity_check_matrix(&self) -> &BinMatrix {
        init();
        unsafe {
            PARITY_MATRIX.as_ref().unwrap()
        }
    }

    fn decode_to_code(&self, c: &BinVector) -> Result<BinVector, &str> {
        init();
        let map = unsafe {
            SYNDROME_MAP.as_ref().unwrap()
        };
        debug_assert_eq!(c.len(), self.length(), "the length doesn't match the expected length (length of the code)");
        let he = c * self.parity_check_matrix_transposed();
        let mut error = BinVector::with_capacity(23);
        let stor = unsafe { error.get_storage_mut() };
        let errbytes = map[&he.as_u64()];
        debug_assert_eq!(errbytes.len(), 23 / 64 + if 23 % 64 != 0 { 1 } else { 0 });
        stor.clear();
        stor.extend_from_slice(&errbytes[..]);
        unsafe { error.set_len(23) };
        debug_assert_eq!(error.len(), self.length(), "internal: the error vector is of the wrong length");
        let result = c + &error;
        debug_assert_eq!(result.len(), self.length(), "internal: the result vector is of the wrong length");
        debug_assert_eq!((&result * self.parity_check_matrix_transposed()).count_ones(), 0);
        Ok(result)
    }

    fn decode_to_message(&self, c: &BinVector) -> Result<BinVector, &str> {
        
        let mut codeword = self.decode_to_code(c)?;
        codeword.truncate(10);
        Ok(codeword)
        
    }

    fn decode_slice(&self, c: &mut [u64]) {
        init();
        
        debug_assert_eq!(c[23 / 64] & !((1 << 23) - 1), 0, "this message has excess bits");

        let map = unsafe {
            SYNDROME_MAP.as_ref().unwrap()
        };
        let he = &BinMatrix::from_slices(&[&c[..]], self.length()) * self.parity_check_matrix_transposed();
        let error = map[unsafe { &he.get_word_unchecked(0, 0) }];
        c.iter_mut().zip(error.iter().copied()).for_each(|(sample, error)| *sample ^= error as u64);
    }

    
}

#[cfg(test)]
mod tests {
    use super::*;
    use m4ri_rust::friendly::BinVector;
    use crate::oracle::Sample;

    #[test]
    fn size() {
        let code = GuavaCode23_10.generator_matrix();
        assert_eq!(code.ncols(), 23);
        assert_eq!(code.nrows(), 10);
    }

    #[test]
    fn test_decode_sample() {
        let code = GuavaCode23_10;
        for _ in 0..1000 {
            // setup
            let vec = BinVector::random(code.length());
            let mut sample_a = Sample::from_binvector(&vec, false);
            let mut sample_b = Sample::from_binvector(&vec, true);
            
            let decoded_vec = code.decode_to_message(&vec).unwrap();
            println!("decoded_vec: {:?}", decoded_vec);

            // test vectors
            let decoded_vec_sample_a = Sample::from_binvector(&decoded_vec, false);
            let decoded_vec_sample_b = Sample::from_binvector(&decoded_vec, true);

            code.decode_sample(&mut sample_a);
            code.decode_sample(&mut sample_b);
            assert_eq!(sample_a.get_product(), false);
            assert_eq!(sample_b.get_product(), true);
            assert_eq!(sample_a, decoded_vec_sample_a);
            assert_eq!(sample_b, decoded_vec_sample_b);
        }
    }

    #[test]
    fn random_decode_tests() {

        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, true, false, false, true, false, true, false, true]);
            let codeword = BinVector::from_bools(&[true, false, false, true, false, false, false, false, true, false, false, false, false, false, true, true, false, false, true, false, true, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, true, true, false, true, true, true, true, true, true, true, false, false, false, true, true, false, true, true, false, false, false, true]);
            let codeword = BinVector::from_bools(&[false, false, true, false, true, true, true, true, true, false, true, false, false, false, false, true, true, true, true, false, false, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, true, true, true, false, true, false, true, false, true, false, true, true, false, false, false, false, false, true, true, false, false, false]);
            let codeword = BinVector::from_bools(&[true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, false, false, false, true, false, false, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, true, true, true, false, false, true, true, false, true, false, false, true, true, false, false, false, false, true, true, true, true, false]);
            let codeword = BinVector::from_bools(&[false, true, true, false, false, false, true, true, false, true, false, false, true, false, false, false, false, false, true, false, true, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, false, false, false, false, true, false, false, false, false, false, true, false, false, true, true, false, true, false, true, true, false, true]);
            let codeword = BinVector::from_bools(&[true, false, false, false, false, true, false, false, false, false, false, true, true, false, false, true, false, true, false, false, true, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, true, false, true, true, true, true, false, true, false, true, false, false, true, true, false, true, false, true, true, false, false, true]);
            let codeword = BinVector::from_bools(&[false, false, true, true, true, true, true, false, true, true, true, false, false, true, false, false, false, false, true, true, false, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, false, false, true, true, false, false, false, false, false, true, false, false, true, true, true, true, true, true, true, true, true, false]);
            let codeword = BinVector::from_bools(&[true, true, true, true, true, false, false, false, false, false, true, false, false, false, true, true, false, true, true, true, true, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, false, true, false, false, false, true, false, false, true, true, true, true, true, false, true, false, false, false, false, false, true, false]);
            let codeword = BinVector::from_bools(&[true, false, false, false, false, false, true, false, false, true, true, true, false, true, false, true, false, true, false, false, false, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, false, false, false, true, false, true, false, false, false, true, true, false, true, false, false, false, false, true, false, true, true, false]);
            let codeword = BinVector::from_bools(&[false, false, false, false, true, false, true, false, true, false, true, true, false, true, false, false, false, false, false, true, true, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, true, true, false, false, true, false, false, true, true, false, true, true, false, true, false, true, true, true, true, true, true, false]);
            let codeword = BinVector::from_bools(&[false, true, true, false, true, true, false, false, true, true, false, true, true, false, true, false, true, false, true, false, true, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, false, true, true, false, true, true, false, false, true, false, false, true, false, false, true, false, true, true, false, true, false, false]);
            let codeword = BinVector::from_bools(&[true, false, true, true, false, false, false, false, false, true, false, false, true, false, false, true, false, true, true, false, false, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, false, true, true, false, true, true, true, false, false, true, true, true, false, true, false, false, false, true, false, false, false, false]);
            let codeword = BinVector::from_bools(&[false, true, true, true, false, true, true, true, false, false, true, false, true, false, true, true, false, true, true, false, false, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, false, true, true, false, false, false, false, false, true, true, false, false, false, false, true, false, false, true, false, true, true, true]);
            let codeword = BinVector::from_bools(&[true, true, true, false, false, false, false, false, false, true, true, false, false, false, false, true, false, false, false, false, true, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, true, true, false, false, true, false, false, true, false, true, false, true, false, true, true, false, true, true, true, false, true, false]);
            let codeword = BinVector::from_bools(&[false, false, true, false, true, true, false, false, true, true, true, false, true, false, true, true, false, true, true, true, false, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, false, false, false, true, true, true, false, true, false, false, true, false, false, false, true, false, true, false, false, true, true, false]);
            let codeword = BinVector::from_bools(&[true, false, true, false, true, true, true, true, true, false, false, true, false, true, false, true, false, true, false, false, true, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, true, false, false, true, false, true, true, true, true, true, false, false, true, false, false, false, true, false, false, true, false, true]);
            let codeword = BinVector::from_bools(&[false, true, false, false, true, true, true, true, true, true, true, true, false, true, false, false, false, true, false, false, false, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[true, true, true, true, false, true, true, true, false, true, true, true, true, true, true, false, false, true, false, false, false, true, false]);
            let codeword = BinVector::from_bools(&[false, false, false, true, false, true, true, true, false, true, true, true, true, true, true, false, true, true, false, false, false, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, false, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true]);
            let codeword = BinVector::from_bools(&[true, true, false, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, true, true, true, true, true, true, false, false, true, true, true, false, false, true, false, true, true, false, true, true, true, true]);
            let codeword = BinVector::from_bools(&[false, true, true, true, true, true, true, false, false, true, true, true, true, false, true, true, true, true, false, true, true, false, false]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
        {
            let code = GuavaCode23_10;
            let randvec = BinVector::from_bools(&[false, false, false, false, false, false, true, true, false, false, true, true, false, true, true, true, true, true, false, false, false, false, true]);
            let codeword = BinVector::from_bools(&[true, false, false, false, false, false, false, true, false, false, true, true, true, true, true, true, true, true, false, true, false, false, true]);
            assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
        }
        
    }

    #[test]
    fn test_generator_representation() {
        init();
        let generator_matrix = unsafe { GENERATOR_MATRIX.as_ref().unwrap() };
        let first_row = generator_matrix.get_window(0, 0, 1, generator_matrix.ncols());
        let vector = BinVector::from_bools(&[ true, false, false, false, false, false, false, false, false, false, true, true, false, true, false, false, true, false, true, false, true, false, true ]);
        assert_eq!(vector, first_row.as_vector());
    }

}