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
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, 11]`` Guava code
///
/// Best code found from the GUAVA database version 3.15
///
/// Decodes using Syndrome decoding
#[derive(Clone, Serialize)]
pub struct GuavaCode23_11;
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(&[
&[ 2422785 ],
&[ 6969346 ],
&[ 3610628 ],
&[ 5085192 ],
&[ 5976080 ],
&[ 7757856 ],
&[ 1009728 ],
&[ 2019456 ],
&[ 4038912 ],
&[ 5827072 ],
&[ 7459840 ],
], 23));
GENERATOR_MATRIX = Box::into_raw(matrix);
let matrix = Box::new(BinMatrix::from_slices(&[
&[ 4673537 ],
&[ 651266 ],
&[ 5550084 ],
&[ 3026952 ],
&[ 5976080 ],
&[ 7757856 ],
&[ 7127104 ],
&[ 2019456 ],
&[ 4038912 ],
&[ 3883520 ],
&[ 7459840 ],
&[ 6531072 ],
], 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(4096, 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(3944, &[2097152]); // 3944 => [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(3945, &[2097153]); // 3945 => [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(3946, &[2097154]); // 3946 => [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(3948, &[2097156]); // 3948 => [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(3936, &[2097160]); // 3936 => [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(3960, &[2097168]); // 3960 => [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(3912, &[2097184]); // 3912 => [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(3880, &[2097216]); // 3880 => [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(4072, &[2097280]); // 4072 => [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(3688, &[2097408]); // 3688 => [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(3432, &[2097664]); // 3432 => [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(2920, &[2098176]); // 2920 => [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(1896, &[2099200]); // 1896 => [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(3063, &[2101248]); // 3063 => [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(1622, &[2105344]); // 1622 => [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(2443, &[2113536]); // 2443 => [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(686, &[2129920]); // 686 => [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(123, &[2162688]); // 123 => [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(1489, &[2228224]); // 1489 => [2228224]
map.insert(1740, &[4325376]); // 1740 => [4325376]
map.insert(567, &[786432]); // 567 => [786432]
map.insert(1625, &[1310720]); // 1625 => [1310720]
map.insert(3717, &[2359296]); // 3717 => [2359296]
map.insert(3480, &[4456448]); // 3480 => [4456448]
map.insert(1134, &[1572864]); // 1134 => [1572864]
map.insert(3250, &[2621440]); // 3250 => [2621440]
map.insert(4015, &[4718592]); // 4015 => [4718592]
map.insert(2268, &[3145728]); // 2268 => [3145728]
map.insert(3009, &[5242880]); // 3009 => [5242880]
map.insert(797, &[6291456]); // 797 => [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(3947, &[2097155]); // 3947 => [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(3949, &[2097157]); // 3949 => [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(3937, &[2097161]); // 3937 => [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(3961, &[2097169]); // 3961 => [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(3913, &[2097185]); // 3913 => [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(3881, &[2097217]); // 3881 => [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(4073, &[2097281]); // 4073 => [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(3689, &[2097409]); // 3689 => [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(3433, &[2097665]); // 3433 => [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(2921, &[2098177]); // 2921 => [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(1897, &[2099201]); // 1897 => [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(3062, &[2101249]); // 3062 => [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(1623, &[2105345]); // 1623 => [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(2442, &[2113537]); // 2442 => [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(687, &[2129921]); // 687 => [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(122, &[2162689]); // 122 => [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(1488, &[2228225]); // 1488 => [2228225]
map.insert(1741, &[4325377]); // 1741 => [4325377]
map.insert(566, &[786433]); // 566 => [786433]
map.insert(1624, &[1310721]); // 1624 => [1310721]
map.insert(3716, &[2359297]); // 3716 => [2359297]
map.insert(3481, &[4456449]); // 3481 => [4456449]
map.insert(1135, &[1572865]); // 1135 => [1572865]
map.insert(3251, &[2621441]); // 3251 => [2621441]
map.insert(4014, &[4718593]); // 4014 => [4718593]
map.insert(2269, &[3145729]); // 2269 => [3145729]
map.insert(3008, &[5242881]); // 3008 => [5242881]
map.insert(796, &[6291457]); // 796 => [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(3950, &[2097158]); // 3950 => [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(3938, &[2097162]); // 3938 => [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(3962, &[2097170]); // 3962 => [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(3914, &[2097186]); // 3914 => [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(3882, &[2097218]); // 3882 => [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(4074, &[2097282]); // 4074 => [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(3690, &[2097410]); // 3690 => [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(3434, &[2097666]); // 3434 => [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(2922, &[2098178]); // 2922 => [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(1898, &[2099202]); // 1898 => [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(3061, &[2101250]); // 3061 => [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(1620, &[2105346]); // 1620 => [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(2441, &[2113538]); // 2441 => [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(684, &[2129922]); // 684 => [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(121, &[2162690]); // 121 => [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(1491, &[2228226]); // 1491 => [2228226]
map.insert(1742, &[4325378]); // 1742 => [4325378]
map.insert(565, &[786434]); // 565 => [786434]
map.insert(1627, &[1310722]); // 1627 => [1310722]
map.insert(3719, &[2359298]); // 3719 => [2359298]
map.insert(3482, &[4456450]); // 3482 => [4456450]
map.insert(1132, &[1572866]); // 1132 => [1572866]
map.insert(3248, &[2621442]); // 3248 => [2621442]
map.insert(4013, &[4718594]); // 4013 => [4718594]
map.insert(2270, &[3145730]); // 2270 => [3145730]
map.insert(3011, &[5242882]); // 3011 => [5242882]
map.insert(799, &[6291458]); // 799 => [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(3940, &[2097164]); // 3940 => [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(3964, &[2097172]); // 3964 => [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(3916, &[2097188]); // 3916 => [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(3884, &[2097220]); // 3884 => [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(4076, &[2097284]); // 4076 => [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(3692, &[2097412]); // 3692 => [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(3436, &[2097668]); // 3436 => [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(2924, &[2098180]); // 2924 => [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(1900, &[2099204]); // 1900 => [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(3059, &[2101252]); // 3059 => [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(1618, &[2105348]); // 1618 => [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(2447, &[2113540]); // 2447 => [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(682, &[2129924]); // 682 => [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(127, &[2162692]); // 127 => [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(1493, &[2228228]); // 1493 => [2228228]
map.insert(1736, &[4325380]); // 1736 => [4325380]
map.insert(563, &[786436]); // 563 => [786436]
map.insert(1629, &[1310724]); // 1629 => [1310724]
map.insert(3713, &[2359300]); // 3713 => [2359300]
map.insert(3484, &[4456452]); // 3484 => [4456452]
map.insert(1130, &[1572868]); // 1130 => [1572868]
map.insert(3254, &[2621444]); // 3254 => [2621444]
map.insert(4011, &[4718596]); // 4011 => [4718596]
map.insert(2264, &[3145732]); // 2264 => [3145732]
map.insert(3013, &[5242884]); // 3013 => [5242884]
map.insert(793, &[6291460]); // 793 => [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(3952, &[2097176]); // 3952 => [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(3904, &[2097192]); // 3904 => [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(3872, &[2097224]); // 3872 => [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(4064, &[2097288]); // 4064 => [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(3680, &[2097416]); // 3680 => [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(3424, &[2097672]); // 3424 => [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(2912, &[2098184]); // 2912 => [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(1888, &[2099208]); // 1888 => [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(3071, &[2101256]); // 3071 => [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(1630, &[2105352]); // 1630 => [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(2435, &[2113544]); // 2435 => [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(678, &[2129928]); // 678 => [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(115, &[2162696]); // 115 => [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(1497, &[2228232]); // 1497 => [2228232]
map.insert(1732, &[4325384]); // 1732 => [4325384]
map.insert(575, &[786440]); // 575 => [786440]
map.insert(1617, &[1310728]); // 1617 => [1310728]
map.insert(3725, &[2359304]); // 3725 => [2359304]
map.insert(3472, &[4456456]); // 3472 => [4456456]
map.insert(1126, &[1572872]); // 1126 => [1572872]
map.insert(3258, &[2621448]); // 3258 => [2621448]
map.insert(4007, &[4718600]); // 4007 => [4718600]
map.insert(2260, &[3145736]); // 2260 => [3145736]
map.insert(3017, &[5242888]); // 3017 => [5242888]
map.insert(789, &[6291464]); // 789 => [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(3928, &[2097200]); // 3928 => [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(3896, &[2097232]); // 3896 => [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(4088, &[2097296]); // 4088 => [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(3704, &[2097424]); // 3704 => [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(3448, &[2097680]); // 3448 => [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(2936, &[2098192]); // 2936 => [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(1912, &[2099216]); // 1912 => [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(3047, &[2101264]); // 3047 => [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(1606, &[2105360]); // 1606 => [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(2459, &[2113552]); // 2459 => [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(702, &[2129936]); // 702 => [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(107, &[2162704]); // 107 => [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(1473, &[2228240]); // 1473 => [2228240]
map.insert(1756, &[4325392]); // 1756 => [4325392]
map.insert(551, &[786448]); // 551 => [786448]
map.insert(1609, &[1310736]); // 1609 => [1310736]
map.insert(3733, &[2359312]); // 3733 => [2359312]
map.insert(3464, &[4456464]); // 3464 => [4456464]
map.insert(1150, &[1572880]); // 1150 => [1572880]
map.insert(3234, &[2621456]); // 3234 => [2621456]
map.insert(4031, &[4718608]); // 4031 => [4718608]
map.insert(2252, &[3145744]); // 2252 => [3145744]
map.insert(3025, &[5242896]); // 3025 => [5242896]
map.insert(781, &[6291472]); // 781 => [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(3848, &[2097248]); // 3848 => [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(4040, &[2097312]); // 4040 => [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(3656, &[2097440]); // 3656 => [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(3400, &[2097696]); // 3400 => [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(2888, &[2098208]); // 2888 => [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(1864, &[2099232]); // 1864 => [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(3031, &[2101280]); // 3031 => [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(1654, &[2105376]); // 1654 => [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(2475, &[2113568]); // 2475 => [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(654, &[2129952]); // 654 => [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(91, &[2162720]); // 91 => [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(1521, &[2228256]); // 1521 => [2228256]
map.insert(1772, &[4325408]); // 1772 => [4325408]
map.insert(535, &[786464]); // 535 => [786464]
map.insert(1657, &[1310752]); // 1657 => [1310752]
map.insert(3749, &[2359328]); // 3749 => [2359328]
map.insert(3512, &[4456480]); // 3512 => [4456480]
map.insert(1102, &[1572896]); // 1102 => [1572896]
map.insert(3218, &[2621472]); // 3218 => [2621472]
map.insert(3983, &[4718624]); // 3983 => [4718624]
map.insert(2300, &[3145760]); // 2300 => [3145760]
map.insert(3041, &[5242912]); // 3041 => [5242912]
map.insert(829, &[6291488]); // 829 => [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(4008, &[2097344]); // 4008 => [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(3624, &[2097472]); // 3624 => [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(3368, &[2097728]); // 3368 => [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(2856, &[2098240]); // 2856 => [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(1832, &[2099264]); // 1832 => [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(2999, &[2101312]); // 2999 => [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(1558, &[2105408]); // 1558 => [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(2507, &[2113600]); // 2507 => [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(750, &[2129984]); // 750 => [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(59, &[2162752]); // 59 => [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(1425, &[2228288]); // 1425 => [2228288]
map.insert(1676, &[4325440]); // 1676 => [4325440]
map.insert(631, &[786496]); // 631 => [786496]
map.insert(1561, &[1310784]); // 1561 => [1310784]
map.insert(3781, &[2359360]); // 3781 => [2359360]
map.insert(3544, &[4456512]); // 3544 => [4456512]
map.insert(1070, &[1572928]); // 1070 => [1572928]
map.insert(3314, &[2621504]); // 3314 => [2621504]
map.insert(4079, &[4718656]); // 4079 => [4718656]
map.insert(2204, &[3145792]); // 2204 => [3145792]
map.insert(2945, &[5242944]); // 2945 => [5242944]
map.insert(861, &[6291520]); // 861 => [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(3816, &[2097536]); // 3816 => [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(3560, &[2097792]); // 3560 => [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(3048, &[2098304]); // 3048 => [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(2024, &[2099328]); // 2024 => [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(2935, &[2101376]); // 2935 => [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(1750, &[2105472]); // 1750 => [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(2315, &[2113664]); // 2315 => [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(558, &[2130048]); // 558 => [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(251, &[2162816]); // 251 => [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(1361, &[2228352]); // 1361 => [2228352]
map.insert(1612, &[4325504]); // 1612 => [4325504]
map.insert(695, &[786560]); // 695 => [786560]
map.insert(1753, &[1310848]); // 1753 => [1310848]
map.insert(3589, &[2359424]); // 3589 => [2359424]
map.insert(3352, &[4456576]); // 3352 => [4456576]
map.insert(1262, &[1572992]); // 1262 => [1572992]
map.insert(3122, &[2621568]); // 3122 => [2621568]
map.insert(3887, &[4718720]); // 3887 => [4718720]
map.insert(2140, &[3145856]); // 2140 => [3145856]
map.insert(2881, &[5243008]); // 2881 => [5243008]
map.insert(925, &[6291584]); // 925 => [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(3176, &[2097920]); // 3176 => [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(2664, &[2098432]); // 2664 => [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(1640, &[2099456]); // 1640 => [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(2807, &[2101504]); // 2807 => [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(1878, &[2105600]); // 1878 => [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(2187, &[2113792]); // 2187 => [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(942, &[2130176]); // 942 => [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(379, &[2162944]); // 379 => [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(1233, &[2228480]); // 1233 => [2228480]
map.insert(1996, &[4325632]); // 1996 => [4325632]
map.insert(823, &[786688]); // 823 => [786688]
map.insert(1881, &[1310976]); // 1881 => [1310976]
map.insert(3973, &[2359552]); // 3973 => [2359552]
map.insert(3224, &[4456704]); // 3224 => [4456704]
map.insert(1390, &[1573120]); // 1390 => [1573120]
map.insert(3506, &[2621696]); // 3506 => [2621696]
map.insert(3759, &[4718848]); // 3759 => [4718848]
map.insert(2524, &[3145984]); // 2524 => [3145984]
map.insert(2753, &[5243136]); // 2753 => [5243136]
map.insert(541, &[6291712]); // 541 => [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(2408, &[2098688]); // 2408 => [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(1384, &[2099712]); // 1384 => [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(2551, &[2101760]); // 2551 => [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(1110, &[2105856]); // 1110 => [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(2955, &[2114048]); // 2955 => [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(174, &[2130432]); // 174 => [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(635, &[2163200]); // 635 => [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(2001, &[2228736]); // 2001 => [2228736]
map.insert(1228, &[4325888]); // 1228 => [4325888]
map.insert(55, &[786944]); // 55 => [786944]
map.insert(1113, &[1311232]); // 1113 => [1311232]
map.insert(3205, &[2359808]); // 3205 => [2359808]
map.insert(3992, &[4456960]); // 3992 => [4456960]
map.insert(1646, &[1573376]); // 1646 => [1573376]
map.insert(3762, &[2621952]); // 3762 => [2621952]
map.insert(3503, &[4719104]); // 3503 => [4719104]
map.insert(2780, &[3146240]); // 2780 => [3146240]
map.insert(2497, &[5243392]); // 2497 => [5243392]
map.insert(285, &[6291968]); // 285 => [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(872, &[2100224]); // 872 => [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(4087, &[2102272]); // 4087 => [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(598, &[2106368]); // 598 => [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(3467, &[2114560]); // 3467 => [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(1710, &[2130944]); // 1710 => [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(1147, &[2163712]); // 1147 => [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(465, &[2229248]); // 465 => [2229248]
map.insert(716, &[4326400]); // 716 => [4326400]
map.insert(1591, &[787456]); // 1591 => [787456]
map.insert(601, &[1311744]); // 601 => [1311744]
map.insert(2693, &[2360320]); // 2693 => [2360320]
map.insert(2456, &[4457472]); // 2456 => [4457472]
map.insert(110, &[1573888]); // 110 => [1573888]
map.insert(2226, &[2622464]); // 2226 => [2622464]
map.insert(2991, &[4719616]); // 2991 => [4719616]
map.insert(3292, &[3146752]); // 3292 => [3146752]
map.insert(4033, &[5243904]); // 4033 => [5243904]
map.insert(1821, &[6292480]); // 1821 => [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(1015, &[2103296]); // 1015 => [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(3670, &[2107392]); // 3670 => [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(395, &[2115584]); // 395 => [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(2734, &[2131968]); // 2734 => [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(2171, &[2164736]); // 2171 => [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(3537, &[2230272]); // 3537 => [2230272]
map.insert(3788, &[4327424]); // 3788 => [4327424]
map.insert(2615, &[788480]); // 2615 => [788480]
map.insert(3673, &[1312768]); // 3673 => [1312768]
map.insert(1669, &[2361344]); // 1669 => [2361344]
map.insert(1432, &[4458496]); // 1432 => [4458496]
map.insert(3182, &[1574912]); // 3182 => [1574912]
map.insert(1202, &[2623488]); // 1202 => [2623488]
map.insert(1967, &[4720640]); // 1967 => [4720640]
map.insert(220, &[3147776]); // 220 => [3147776]
map.insert(961, &[5244928]); // 961 => [5244928]
map.insert(2845, &[6293504]); // 2845 => [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(713, &[2109440]); // 713 => [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(3348, &[2117632]); // 3348 => [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(1585, &[2134016]); // 1585 => [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(1252, &[2166784]); // 1252 => [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(334, &[2232320]); // 334 => [2232320]
map.insert(595, &[4329472]); // 595 => [4329472]
map.insert(1704, &[790528]); // 1704 => [790528]
map.insert(710, &[1314816]); // 710 => [1314816]
map.insert(2586, &[2363392]); // 2586 => [2363392]
map.insert(2311, &[4460544]); // 2311 => [4460544]
map.insert(241, &[1576960]); // 241 => [1576960]
map.insert(2093, &[2625536]); // 2093 => [2625536]
map.insert(2864, &[4722688]); // 2864 => [4722688]
map.insert(3139, &[3149824]); // 3139 => [3149824]
map.insert(3934, &[5246976]); // 3934 => [5246976]
map.insert(1922, &[6295552]); // 1922 => [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(181, &[2121728]); // 181 => [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(2960, &[2138112]); // 2960 => [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(2373, &[2170880]); // 2373 => [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(3311, &[2236416]); // 3311 => [2236416]
map.insert(4082, &[4333568]); // 4082 => [4333568]
map.insert(2825, &[794624]); // 2825 => [794624]
map.insert(3943, &[1318912]); // 3943 => [1318912]
map.insert(1979, &[2367488]); // 1979 => [2367488]
map.insert(1190, &[4464640]); // 1190 => [4464640]
map.insert(3408, &[1581056]); // 3408 => [1581056]
map.insert(1420, &[2629632]); // 1420 => [2629632]
map.insert(1681, &[4726784]); // 1681 => [4726784]
map.insert(482, &[3153920]); // 482 => [3153920]
map.insert(767, &[5251072]); // 767 => [5251072]
map.insert(2595, &[6299648]); // 2595 => [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(1101, &[2146304]); // 1101 => [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(1688, &[2179072]); // 1688 => [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(818, &[2244608]); // 818 => [2244608]
map.insert(47, &[4341760]); // 47 => [4341760]
map.insert(1236, &[802816]); // 1236 => [802816]
map.insert(186, &[1327104]); // 186 => [1327104]
map.insert(2150, &[2375680]); // 2150 => [2375680]
map.insert(2939, &[4472832]); // 2939 => [4472832]
map.insert(653, &[1589248]); // 653 => [1589248]
map.insert(2641, &[2637824]); // 2641 => [2637824]
map.insert(2380, &[4734976]); // 2380 => [4734976]
map.insert(3647, &[3162112]); // 3647 => [3162112]
map.insert(3362, &[5259264]); // 3362 => [5259264]
map.insert(1534, &[6307840]); // 1534 => [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(3517, &[2195456]); // 3517 => [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(2071, &[2260992]); // 2071 => [2260992]
map.insert(2826, &[4358144]); // 2826 => [4358144]
map.insert(4081, &[819200]); // 4081 => [819200]
map.insert(2975, &[1343488]); // 2975 => [1343488]
map.insert(835, &[2392064]); // 835 => [2392064]
map.insert(94, &[4489216]); // 94 => [4489216]
map.insert(2472, &[1605632]); // 2472 => [1605632]
map.insert(372, &[2654208]); // 372 => [2654208]
map.insert(617, &[4751360]); // 617 => [4751360]
map.insert(1306, &[3178496]); // 1306 => [3178496]
map.insert(1543, &[5275648]); // 1543 => [5275648]
map.insert(3803, &[6324224]); // 3803 => [6324224]
map.insert(1095, &[458752]); // 1095 => [458752]
map.insert(1648, &[720896]); // 1648 => [720896]
map.insert(542, &[1245184]); // 542 => [1245184]
map.insert(2754, &[2293760]); // 2754 => [2293760]
map.insert(2527, &[4390912]); // 2527 => [4390912]
map.insert(3364, &[851968]); // 3364 => [851968]
map.insert(2378, &[1376256]); // 2378 => [1376256]
map.insert(406, &[2424832]); // 406 => [2424832]
map.insert(651, &[4521984]); // 651 => [4521984]
map.insert(2941, &[1638400]); // 2941 => [1638400]
map.insert(929, &[2686976]); // 929 => [2686976]
map.insert(188, &[4784128]); // 188 => [4784128]
map.insert(1999, &[3211264]); // 1999 => [3211264]
map.insert(1234, &[5308416]); // 1234 => [5308416]
map.insert(3086, &[6356992]); // 3086 => [6356992]
map.insert(2190, &[917504]); // 2190 => [917504]
map.insert(3296, &[1441792]); // 3296 => [1441792]
map.insert(1084, &[2490368]); // 1084 => [2490368]
map.insert(1825, &[4587520]); // 1825 => [4587520]
map.insert(3799, &[1703936]); // 3799 => [1703936]
map.insert(1547, &[2752512]); // 1547 => [2752512]
map.insert(1302, &[4849664]); // 1302 => [4849664]
map.insert(613, &[3276800]); // 613 => [3276800]
map.insert(376, &[5373952]); // 376 => [5373952]
map.insert(2468, &[6422528]); // 2468 => [6422528]
map.insert(1411, &[1835008]); // 1411 => [1835008]
map.insert(3423, &[2883584]); // 3423 => [2883584]
map.insert(3650, &[4980736]); // 3650 => [4980736]
map.insert(2353, &[3407872]); // 2353 => [3407872]
map.insert(2604, &[5505024]); // 2604 => [5505024]
map.insert(752, &[6553600]); // 752 => [6553600]
map.insert(2822, &[3670016]); // 2822 => [3670016]
map.insert(2075, &[5767168]); // 2075 => [5767168]
map.insert(199, &[6815744]); // 199 => [6815744]
map.insert(1193, &[7340032]); // 1193 => [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(3951, &[2097159]); // 3951 => [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(3939, &[2097163]); // 3939 => [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(3963, &[2097171]); // 3963 => [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(3915, &[2097187]); // 3915 => [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(3883, &[2097219]); // 3883 => [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(4075, &[2097283]); // 4075 => [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(3691, &[2097411]); // 3691 => [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(3435, &[2097667]); // 3435 => [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(2923, &[2098179]); // 2923 => [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(1899, &[2099203]); // 1899 => [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(3060, &[2101251]); // 3060 => [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(1621, &[2105347]); // 1621 => [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(2440, &[2113539]); // 2440 => [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(685, &[2129923]); // 685 => [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(120, &[2162691]); // 120 => [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(1490, &[2228227]); // 1490 => [2228227]
map.insert(1743, &[4325379]); // 1743 => [4325379]
map.insert(564, &[786435]); // 564 => [786435]
map.insert(1626, &[1310723]); // 1626 => [1310723]
map.insert(3718, &[2359299]); // 3718 => [2359299]
map.insert(3483, &[4456451]); // 3483 => [4456451]
map.insert(1133, &[1572867]); // 1133 => [1572867]
map.insert(3249, &[2621443]); // 3249 => [2621443]
map.insert(4012, &[4718595]); // 4012 => [4718595]
map.insert(2271, &[3145731]); // 2271 => [3145731]
map.insert(3010, &[5242883]); // 3010 => [5242883]
map.insert(798, &[6291459]); // 798 => [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(3941, &[2097165]); // 3941 => [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(3965, &[2097173]); // 3965 => [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(3917, &[2097189]); // 3917 => [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(3885, &[2097221]); // 3885 => [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(4077, &[2097285]); // 4077 => [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(3693, &[2097413]); // 3693 => [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(3437, &[2097669]); // 3437 => [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(2925, &[2098181]); // 2925 => [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(1901, &[2099205]); // 1901 => [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(3058, &[2101253]); // 3058 => [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(1619, &[2105349]); // 1619 => [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(2446, &[2113541]); // 2446 => [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(683, &[2129925]); // 683 => [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(126, &[2162693]); // 126 => [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(1492, &[2228229]); // 1492 => [2228229]
map.insert(1737, &[4325381]); // 1737 => [4325381]
map.insert(562, &[786437]); // 562 => [786437]
map.insert(1628, &[1310725]); // 1628 => [1310725]
map.insert(3712, &[2359301]); // 3712 => [2359301]
map.insert(3485, &[4456453]); // 3485 => [4456453]
map.insert(1131, &[1572869]); // 1131 => [1572869]
map.insert(3255, &[2621445]); // 3255 => [2621445]
map.insert(4010, &[4718597]); // 4010 => [4718597]
map.insert(2265, &[3145733]); // 2265 => [3145733]
map.insert(3012, &[5242885]); // 3012 => [5242885]
map.insert(792, &[6291461]); // 792 => [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(3953, &[2097177]); // 3953 => [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(3905, &[2097193]); // 3905 => [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(3873, &[2097225]); // 3873 => [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(4065, &[2097289]); // 4065 => [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(3681, &[2097417]); // 3681 => [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(3425, &[2097673]); // 3425 => [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(2913, &[2098185]); // 2913 => [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(1889, &[2099209]); // 1889 => [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(3070, &[2101257]); // 3070 => [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(1631, &[2105353]); // 1631 => [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(2434, &[2113545]); // 2434 => [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(679, &[2129929]); // 679 => [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(114, &[2162697]); // 114 => [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(1496, &[2228233]); // 1496 => [2228233]
map.insert(1733, &[4325385]); // 1733 => [4325385]
map.insert(574, &[786441]); // 574 => [786441]
map.insert(1616, &[1310729]); // 1616 => [1310729]
map.insert(3724, &[2359305]); // 3724 => [2359305]
map.insert(3473, &[4456457]); // 3473 => [4456457]
map.insert(1127, &[1572873]); // 1127 => [1572873]
map.insert(3259, &[2621449]); // 3259 => [2621449]
map.insert(4006, &[4718601]); // 4006 => [4718601]
map.insert(2261, &[3145737]); // 2261 => [3145737]
map.insert(3016, &[5242889]); // 3016 => [5242889]
map.insert(788, &[6291465]); // 788 => [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(3929, &[2097201]); // 3929 => [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(3897, &[2097233]); // 3897 => [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(4089, &[2097297]); // 4089 => [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(3705, &[2097425]); // 3705 => [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(3449, &[2097681]); // 3449 => [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(2937, &[2098193]); // 2937 => [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(1913, &[2099217]); // 1913 => [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(3046, &[2101265]); // 3046 => [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(1607, &[2105361]); // 1607 => [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(2458, &[2113553]); // 2458 => [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(703, &[2129937]); // 703 => [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(106, &[2162705]); // 106 => [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(1472, &[2228241]); // 1472 => [2228241]
map.insert(1757, &[4325393]); // 1757 => [4325393]
map.insert(550, &[786449]); // 550 => [786449]
map.insert(1608, &[1310737]); // 1608 => [1310737]
map.insert(3732, &[2359313]); // 3732 => [2359313]
map.insert(3465, &[4456465]); // 3465 => [4456465]
map.insert(1151, &[1572881]); // 1151 => [1572881]
map.insert(3235, &[2621457]); // 3235 => [2621457]
map.insert(4030, &[4718609]); // 4030 => [4718609]
map.insert(2253, &[3145745]); // 2253 => [3145745]
map.insert(3024, &[5242897]); // 3024 => [5242897]
map.insert(780, &[6291473]); // 780 => [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(3849, &[2097249]); // 3849 => [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(4041, &[2097313]); // 4041 => [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(3657, &[2097441]); // 3657 => [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(3401, &[2097697]); // 3401 => [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(2889, &[2098209]); // 2889 => [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(1865, &[2099233]); // 1865 => [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(3030, &[2101281]); // 3030 => [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(1655, &[2105377]); // 1655 => [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(2474, &[2113569]); // 2474 => [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(655, &[2129953]); // 655 => [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(90, &[2162721]); // 90 => [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(1520, &[2228257]); // 1520 => [2228257]
map.insert(1773, &[4325409]); // 1773 => [4325409]
map.insert(534, &[786465]); // 534 => [786465]
map.insert(1656, &[1310753]); // 1656 => [1310753]
map.insert(3748, &[2359329]); // 3748 => [2359329]
map.insert(3513, &[4456481]); // 3513 => [4456481]
map.insert(1103, &[1572897]); // 1103 => [1572897]
map.insert(3219, &[2621473]); // 3219 => [2621473]
map.insert(3982, &[4718625]); // 3982 => [4718625]
map.insert(2301, &[3145761]); // 2301 => [3145761]
map.insert(3040, &[5242913]); // 3040 => [5242913]
map.insert(828, &[6291489]); // 828 => [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(4009, &[2097345]); // 4009 => [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(3625, &[2097473]); // 3625 => [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(3369, &[2097729]); // 3369 => [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(2857, &[2098241]); // 2857 => [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(1833, &[2099265]); // 1833 => [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(2998, &[2101313]); // 2998 => [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(1559, &[2105409]); // 1559 => [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(2506, &[2113601]); // 2506 => [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(751, &[2129985]); // 751 => [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(58, &[2162753]); // 58 => [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(1424, &[2228289]); // 1424 => [2228289]
map.insert(1677, &[4325441]); // 1677 => [4325441]
map.insert(630, &[786497]); // 630 => [786497]
map.insert(1560, &[1310785]); // 1560 => [1310785]
map.insert(3780, &[2359361]); // 3780 => [2359361]
map.insert(3545, &[4456513]); // 3545 => [4456513]
map.insert(1071, &[1572929]); // 1071 => [1572929]
map.insert(3315, &[2621505]); // 3315 => [2621505]
map.insert(4078, &[4718657]); // 4078 => [4718657]
map.insert(2205, &[3145793]); // 2205 => [3145793]
map.insert(2944, &[5242945]); // 2944 => [5242945]
map.insert(860, &[6291521]); // 860 => [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(3817, &[2097537]); // 3817 => [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(3561, &[2097793]); // 3561 => [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(3049, &[2098305]); // 3049 => [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(2025, &[2099329]); // 2025 => [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(2934, &[2101377]); // 2934 => [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(1751, &[2105473]); // 1751 => [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(2314, &[2113665]); // 2314 => [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(559, &[2130049]); // 559 => [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(250, &[2162817]); // 250 => [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(1360, &[2228353]); // 1360 => [2228353]
map.insert(1613, &[4325505]); // 1613 => [4325505]
map.insert(694, &[786561]); // 694 => [786561]
map.insert(1752, &[1310849]); // 1752 => [1310849]
map.insert(3588, &[2359425]); // 3588 => [2359425]
map.insert(3353, &[4456577]); // 3353 => [4456577]
map.insert(1263, &[1572993]); // 1263 => [1572993]
map.insert(3123, &[2621569]); // 3123 => [2621569]
map.insert(3886, &[4718721]); // 3886 => [4718721]
map.insert(2141, &[3145857]); // 2141 => [3145857]
map.insert(2880, &[5243009]); // 2880 => [5243009]
map.insert(924, &[6291585]); // 924 => [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(3177, &[2097921]); // 3177 => [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(2665, &[2098433]); // 2665 => [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(1641, &[2099457]); // 1641 => [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(2806, &[2101505]); // 2806 => [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(1879, &[2105601]); // 1879 => [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(2186, &[2113793]); // 2186 => [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(943, &[2130177]); // 943 => [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(378, &[2162945]); // 378 => [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(1232, &[2228481]); // 1232 => [2228481]
map.insert(1997, &[4325633]); // 1997 => [4325633]
map.insert(822, &[786689]); // 822 => [786689]
map.insert(1880, &[1310977]); // 1880 => [1310977]
map.insert(3972, &[2359553]); // 3972 => [2359553]
map.insert(3225, &[4456705]); // 3225 => [4456705]
map.insert(1391, &[1573121]); // 1391 => [1573121]
map.insert(3507, &[2621697]); // 3507 => [2621697]
map.insert(3758, &[4718849]); // 3758 => [4718849]
map.insert(2525, &[3145985]); // 2525 => [3145985]
map.insert(2752, &[5243137]); // 2752 => [5243137]
map.insert(540, &[6291713]); // 540 => [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(2409, &[2098689]); // 2409 => [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(1385, &[2099713]); // 1385 => [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(2550, &[2101761]); // 2550 => [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(1111, &[2105857]); // 1111 => [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(2954, &[2114049]); // 2954 => [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(175, &[2130433]); // 175 => [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(634, &[2163201]); // 634 => [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(2000, &[2228737]); // 2000 => [2228737]
map.insert(1229, &[4325889]); // 1229 => [4325889]
map.insert(54, &[786945]); // 54 => [786945]
map.insert(1112, &[1311233]); // 1112 => [1311233]
map.insert(3204, &[2359809]); // 3204 => [2359809]
map.insert(3993, &[4456961]); // 3993 => [4456961]
map.insert(1647, &[1573377]); // 1647 => [1573377]
map.insert(3763, &[2621953]); // 3763 => [2621953]
map.insert(3502, &[4719105]); // 3502 => [4719105]
map.insert(2781, &[3146241]); // 2781 => [3146241]
map.insert(2496, &[5243393]); // 2496 => [5243393]
map.insert(284, &[6291969]); // 284 => [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(873, &[2100225]); // 873 => [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(4086, &[2102273]); // 4086 => [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(599, &[2106369]); // 599 => [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(3466, &[2114561]); // 3466 => [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(1711, &[2130945]); // 1711 => [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(1146, &[2163713]); // 1146 => [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(464, &[2229249]); // 464 => [2229249]
map.insert(717, &[4326401]); // 717 => [4326401]
map.insert(1590, &[787457]); // 1590 => [787457]
map.insert(600, &[1311745]); // 600 => [1311745]
map.insert(2692, &[2360321]); // 2692 => [2360321]
map.insert(2457, &[4457473]); // 2457 => [4457473]
map.insert(111, &[1573889]); // 111 => [1573889]
map.insert(2227, &[2622465]); // 2227 => [2622465]
map.insert(2990, &[4719617]); // 2990 => [4719617]
map.insert(3293, &[3146753]); // 3293 => [3146753]
map.insert(4032, &[5243905]); // 4032 => [5243905]
map.insert(1820, &[6292481]); // 1820 => [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(1014, &[2103297]); // 1014 => [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(3671, &[2107393]); // 3671 => [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(394, &[2115585]); // 394 => [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(2735, &[2131969]); // 2735 => [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(2170, &[2164737]); // 2170 => [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(3536, &[2230273]); // 3536 => [2230273]
map.insert(3789, &[4327425]); // 3789 => [4327425]
map.insert(2614, &[788481]); // 2614 => [788481]
map.insert(3672, &[1312769]); // 3672 => [1312769]
map.insert(1668, &[2361345]); // 1668 => [2361345]
map.insert(1433, &[4458497]); // 1433 => [4458497]
map.insert(3183, &[1574913]); // 3183 => [1574913]
map.insert(1203, &[2623489]); // 1203 => [2623489]
map.insert(1966, &[4720641]); // 1966 => [4720641]
map.insert(221, &[3147777]); // 221 => [3147777]
map.insert(960, &[5244929]); // 960 => [5244929]
map.insert(2844, &[6293505]); // 2844 => [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(712, &[2109441]); // 712 => [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(3349, &[2117633]); // 3349 => [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(1584, &[2134017]); // 1584 => [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(1253, &[2166785]); // 1253 => [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(335, &[2232321]); // 335 => [2232321]
map.insert(594, &[4329473]); // 594 => [4329473]
map.insert(1705, &[790529]); // 1705 => [790529]
map.insert(711, &[1314817]); // 711 => [1314817]
map.insert(2587, &[2363393]); // 2587 => [2363393]
map.insert(2310, &[4460545]); // 2310 => [4460545]
map.insert(240, &[1576961]); // 240 => [1576961]
map.insert(2092, &[2625537]); // 2092 => [2625537]
map.insert(2865, &[4722689]); // 2865 => [4722689]
map.insert(3138, &[3149825]); // 3138 => [3149825]
map.insert(3935, &[5246977]); // 3935 => [5246977]
map.insert(1923, &[6295553]); // 1923 => [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(180, &[2121729]); // 180 => [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(2961, &[2138113]); // 2961 => [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(2372, &[2170881]); // 2372 => [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(3310, &[2236417]); // 3310 => [2236417]
map.insert(4083, &[4333569]); // 4083 => [4333569]
map.insert(2824, &[794625]); // 2824 => [794625]
map.insert(3942, &[1318913]); // 3942 => [1318913]
map.insert(1978, &[2367489]); // 1978 => [2367489]
map.insert(1191, &[4464641]); // 1191 => [4464641]
map.insert(3409, &[1581057]); // 3409 => [1581057]
map.insert(1421, &[2629633]); // 1421 => [2629633]
map.insert(1680, &[4726785]); // 1680 => [4726785]
map.insert(483, &[3153921]); // 483 => [3153921]
map.insert(766, &[5251073]); // 766 => [5251073]
map.insert(2594, &[6299649]); // 2594 => [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(1100, &[2146305]); // 1100 => [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(1689, &[2179073]); // 1689 => [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(819, &[2244609]); // 819 => [2244609]
map.insert(46, &[4341761]); // 46 => [4341761]
map.insert(1237, &[802817]); // 1237 => [802817]
map.insert(187, &[1327105]); // 187 => [1327105]
map.insert(2151, &[2375681]); // 2151 => [2375681]
map.insert(2938, &[4472833]); // 2938 => [4472833]
map.insert(652, &[1589249]); // 652 => [1589249]
map.insert(2640, &[2637825]); // 2640 => [2637825]
map.insert(2381, &[4734977]); // 2381 => [4734977]
map.insert(3646, &[3162113]); // 3646 => [3162113]
map.insert(3363, &[5259265]); // 3363 => [5259265]
map.insert(1535, &[6307841]); // 1535 => [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(3516, &[2195457]); // 3516 => [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(2070, &[2260993]); // 2070 => [2260993]
map.insert(2827, &[4358145]); // 2827 => [4358145]
map.insert(4080, &[819201]); // 4080 => [819201]
map.insert(2974, &[1343489]); // 2974 => [1343489]
map.insert(834, &[2392065]); // 834 => [2392065]
map.insert(95, &[4489217]); // 95 => [4489217]
map.insert(2473, &[1605633]); // 2473 => [1605633]
map.insert(373, &[2654209]); // 373 => [2654209]
map.insert(616, &[4751361]); // 616 => [4751361]
map.insert(1307, &[3178497]); // 1307 => [3178497]
map.insert(1542, &[5275649]); // 1542 => [5275649]
map.insert(3802, &[6324225]); // 3802 => [6324225]
map.insert(1094, &[458753]); // 1094 => [458753]
map.insert(1649, &[720897]); // 1649 => [720897]
map.insert(543, &[1245185]); // 543 => [1245185]
map.insert(2755, &[2293761]); // 2755 => [2293761]
map.insert(2526, &[4390913]); // 2526 => [4390913]
map.insert(3365, &[851969]); // 3365 => [851969]
map.insert(2379, &[1376257]); // 2379 => [1376257]
map.insert(407, &[2424833]); // 407 => [2424833]
map.insert(650, &[4521985]); // 650 => [4521985]
map.insert(2940, &[1638401]); // 2940 => [1638401]
map.insert(928, &[2686977]); // 928 => [2686977]
map.insert(189, &[4784129]); // 189 => [4784129]
map.insert(1998, &[3211265]); // 1998 => [3211265]
map.insert(1235, &[5308417]); // 1235 => [5308417]
map.insert(3087, &[6356993]); // 3087 => [6356993]
map.insert(2191, &[917505]); // 2191 => [917505]
map.insert(3297, &[1441793]); // 3297 => [1441793]
map.insert(1085, &[2490369]); // 1085 => [2490369]
map.insert(1824, &[4587521]); // 1824 => [4587521]
map.insert(3798, &[1703937]); // 3798 => [1703937]
map.insert(1546, &[2752513]); // 1546 => [2752513]
map.insert(1303, &[4849665]); // 1303 => [4849665]
map.insert(612, &[3276801]); // 612 => [3276801]
map.insert(377, &[5373953]); // 377 => [5373953]
map.insert(2469, &[6422529]); // 2469 => [6422529]
map.insert(1410, &[1835009]); // 1410 => [1835009]
map.insert(3422, &[2883585]); // 3422 => [2883585]
map.insert(3651, &[4980737]); // 3651 => [4980737]
map.insert(2352, &[3407873]); // 2352 => [3407873]
map.insert(2605, &[5505025]); // 2605 => [5505025]
map.insert(753, &[6553601]); // 753 => [6553601]
map.insert(2823, &[3670017]); // 2823 => [3670017]
map.insert(2074, &[5767169]); // 2074 => [5767169]
map.insert(198, &[6815745]); // 198 => [6815745]
map.insert(1192, &[7340033]); // 1192 => [7340033]
map.insert(78, &[78]); // 78 => [78]
map.insert(526, &[526]); // 526 => [526]
map.insert(2062, &[2062]); // 2062 => [2062]
map.insert(2344, &[8214]); // 2344 => [8214]
map.insert(3845, &[65558]); // 3845 => [65558]
map.insert(3171, &[4194326]); // 3171 => [4194326]
map.insert(294, &[294]); // 294 => [294]
map.insert(1062, &[1062]); // 1062 => [1062]
map.insert(3918, &[2097190]); // 3918 => [2097190]
map.insert(582, &[582]); // 582 => [582]
map.insert(2118, &[2118]); // 2118 => [2118]
map.insert(1637, &[16518]); // 1637 => [16518]
map.insert(3392, &[32902]); // 3392 => [32902]
map.insert(363, &[262278]); // 363 => [262278]
map.insert(1286, &[1286]); // 1286 => [1286]
map.insert(3694, &[2097414]); // 3694 => [2097414]
map.insert(2566, &[2566]); // 2566 => [2566]
map.insert(2926, &[2098182]); // 2926 => [2098182]
map.insert(3616, &[135174]); // 3616 => [135174]
map.insert(1859, &[528390]); // 1859 => [528390]
map.insert(813, &[1052678]); // 813 => [1052678]
map.insert(1579, &[73734]); // 1579 => [73734]
map.insert(1357, &[4202502]); // 1357 => [4202502]
map.insert(2851, &[49158]); // 2851 => [49158]
map.insert(1800, &[278534]); // 1800 => [278534]
map.insert(3117, &[294918]); // 3117 => [294918]
map.insert(864, &[4259846]); // 864 => [4259846]
map.insert(2405, &[655366]); // 2405 => [655366]
map.insert(3339, &[1179654]); // 3339 => [1179654]
map.insert(1128, &[1572870]); // 1128 => [1572870]
map.insert(282, &[282]); // 282 => [282]
map.insert(2723, &[131098]); // 2723 => [131098]
map.insert(503, &[262170]); // 503 => [262170]
map.insert(170, &[170]); // 170 => [170]
map.insert(2324, &[8234]); // 2324 => [8234]
map.insert(1008, &[524330]); // 1008 => [524330]
map.insert(586, &[586]); // 586 => [586]
map.insert(2122, &[2122]); // 2122 => [2122]
map.insert(2484, &[8330]); // 2484 => [8330]
map.insert(848, &[524426]); // 848 => [524426]
map.insert(2995, &[131338]); // 2995 => [131338]
map.insert(231, &[262410]); // 231 => [262410]
map.insert(2570, &[2570]); // 2570 => [2570]
map.insert(745, &[17418]); // 745 => [17418]
map.insert(2841, &[66570]); // 2841 => [66570]
map.insert(958, &[1049610]); // 958 => [1049610]
map.insert(2387, &[36874]); // 2387 => [36874]
map.insert(3069, &[2101258]); // 3069 => [2101258]
map.insert(2272, &[4198410]); // 2272 => [4198410]
map.insert(2798, &[532490]); // 2798 => [532490]
map.insert(2554, &[81930]); // 2554 => [81930]
map.insert(349, &[1064970]); // 349 => [1064970]
map.insert(676, &[2129930]); // 676 => [2129930]
map.insert(441, &[4227082]); // 441 => [4227082]
map.insert(2221, &[1114122]); // 2221 => [1114122]
map.insert(2910, &[393226]); // 2910 => [393226]
map.insert(791, &[6291466]); // 791 => [6291466]
map.insert(2098, &[2098]); // 2098 => [2098]
map.insert(1197, &[4146]); // 1197 => [4146]
map.insert(1745, &[16434]); // 1745 => [16434]
map.insert(1106, &[1106]); // 1106 => [1106]
map.insert(3476, &[32850]); // 3476 => [32850]
map.insert(904, &[524370]); // 904 => [524370]
map.insert(658, &[658]); // 658 => [658]
map.insert(1830, &[1048722]); // 1830 => [1048722]
map.insert(4090, &[2097298]); // 4090 => [2097298]
map.insert(2987, &[131346]); // 2987 => [131346]
map.insert(255, &[262418]); // 255 => [262418]
map.insert(1446, &[1049106]); // 1446 => [1049106]
map.insert(3450, &[2097682]); // 3450 => [2097682]
map.insert(2516, &[33810]); // 2516 => [33810]
map.insert(1992, &[525330]); // 1992 => [525330]
map.insert(3213, &[6162]); // 3213 => [6162]
map.insert(3825, &[18450]); // 3825 => [18450]
map.insert(622, &[20498]); // 622 => [20498]
map.insert(1599, &[73746]); // 1599 => [73746]
map.insert(1369, &[4202514]); // 1369 => [4202514]
map.insert(3598, &[557074]); // 3598 => [557074]
map.insert(884, &[4259858]); // 884 => [4259858]
map.insert(2886, &[393234]); // 2886 => [393234]
map.insert(2254, &[3145746]); // 2254 => [3145746]
map.insert(399, &[262242]); // 399 => [262242]
map.insert(2006, &[1048674]); // 2006 => [1048674]
map.insert(3095, &[4194402]); // 3095 => [4194402]
map.insert(2460, &[8354]); // 2460 => [8354]
map.insert(888, &[524450]); // 888 => [524450]
map.insert(1314, &[1314]); // 1314 => [1314]
map.insert(3658, &[2097442]); // 3658 => [2097442]
map.insert(4068, &[33314]); // 4068 => [33314]
map.insert(3377, &[66082]); // 3377 => [66082]
map.insert(2203, &[131618]); // 2203 => [131618]
map.insert(2890, &[2098210]); // 2890 => [2098210]
map.insert(3261, &[6178]); // 3261 => [6178]
map.insert(3777, &[18466]); // 3777 => [18466]
map.insert(606, &[20514]); // 606 => [20514]
map.insert(2758, &[532514]); // 2758 => [532514]
map.insert(759, &[98338]); // 759 => [98338]
map.insert(1885, &[163874]); // 1885 => [163874]
map.insert(1416, &[196642]); // 1416 => [196642]
map.insert(1659, &[1310754]); // 1659 => [1310754]
map.insert(3514, &[4456482]); // 3514 => [4456482]
map.insert(3043, &[5242914]); // 3043 => [5242914]
map.insert(450, &[450]); // 450 => [450]
map.insert(1117, &[4290]); // 1117 => [4290]
map.insert(4049, &[65730]); // 4049 => [65730]
map.insert(1501, &[4418]); // 1501 => [4418]
map.insert(3665, &[65858]); // 3665 => [65858]
map.insert(2626, &[2626]); // 2626 => [2626]
map.insert(2436, &[33858]); // 2436 => [33858]
map.insert(1944, &[525378]); // 1944 => [525378]
map.insert(3022, &[69698]); // 3022 => [69698]
map.insert(3999, &[24642]); // 3999 => [24642]
map.insert(965, &[139330]); // 965 => [139330]
map.insert(1556, &[2105410]); // 1556 => [2105410]
map.insert(3096, &[147522]); // 3096 => [147522]
map.insert(2505, &[2113602]); // 2505 => [2113602]
map.insert(3678, &[557122]); // 3678 => [557122]
map.insert(1427, &[2228290]); // 1427 => [2228290]
map.insert(1563, &[1310786]); // 1563 => [1310786]
map.insert(3546, &[4456514]); // 3546 => [4456514]
map.insert(2947, &[5242946]); // 2947 => [5242946]
map.insert(1309, &[4482]); // 1309 => [4482]
map.insert(3729, &[65922]); // 3729 => [65922]
map.insert(1334, &[1049218]); // 1334 => [1049218]
map.insert(3562, &[2097794]); // 3562 => [2097794]
map.insert(3202, &[3202]); // 3202 => [3202]
map.insert(3643, &[132226]); // 3643 => [132226]
map.insert(2295, &[4195458]); // 2295 => [4195458]
map.insert(571, &[133250]); // 571 => [133250]
map.insert(1271, &[4196482]); // 1271 => [4196482]
map.insert(2830, &[69762]); // 2830 => [69762]
map.insert(2662, &[532610]); // 2662 => [532610]
map.insert(2983, &[49282]); // 2983 => [49282]
map.insert(1932, &[278658]); // 1932 => [278658]
map.insert(3241, &[295042]); // 3241 => [295042]
map.insert(1614, &[4325506]); // 1614 => [4325506]
map.insert(2142, &[3145858]); // 2142 => [3145858]
map.insert(1505, &[17154]); // 1505 => [17154]
map.insert(216, &[525058]); // 216 => [525058]
map.insert(3959, &[4195074]); // 3959 => [4195074]
map.insert(2666, &[2098434]); // 2666 => [2098434]
map.insert(60, &[10498]); // 60 => [10498]
map.insert(1220, &[35074]); // 1220 => [35074]
map.insert(3766, &[1050882]); // 3766 => [1050882]
map.insert(2702, &[69890]); // 2702 => [69890]
map.insert(1530, &[41218]); // 1530 => [41218]
map.insert(3976, &[1057026]); // 3976 => [1057026]
map.insert(1083, &[540930]); // 1083 => [540930]
map.insert(2964, &[4210946]); // 2964 => [4210946]
map.insert(2928, &[1081602]); // 2928 => [1081602]
map.insert(2646, &[393474]); // 2646 => [393474]
map.insert(3757, &[4718850]); // 3757 => [4718850]
map.insert(669, &[5634]); // 669 => [5634]
map.insert(3900, &[9730]); // 3900 => [9730]
map.insert(2031, &[263682]); // 2031 => [263682]
map.insert(4003, &[12802]); // 4003 => [12802]
map.insert(1904, &[266754]); // 1904 => [266754]
map.insert(2769, &[270850]); // 2769 => [270850]
map.insert(1851, &[541186]); // 1851 => [541186]
map.insert(2196, &[4211202]); // 2196 => [4211202]
map.insert(215, &[98818]); // 215 => [98818]
map.insert(1405, &[164354]); // 1405 => [164354]
map.insert(1960, &[197122]); // 1960 => [197122]
map.insert(3501, &[4719106]); // 3501 => [4719106]
map.insert(2782, &[3146242]); // 2782 => [3146242]
map.insert(1723, &[134146]); // 1723 => [134146]
map.insert(119, &[4197378]); // 119 => [4197378]
map.insert(2467, &[13314]); // 2467 => [13314]
map.insert(368, &[267266]); // 368 => [267266]
map.insert(3281, &[271362]); // 3281 => [271362]
map.insert(3570, &[82946]); // 3570 => [82946]
map.insert(1365, &[1065986]); // 1365 => [1065986]
map.insert(2590, &[558082]); // 2590 => [558082]
map.insert(3237, &[1115138]); // 3237 => [1115138]
map.insert(718, &[4326402]); // 718 => [4326402]
map.insert(2686, &[22530]); // 2686 => [22530]
map.insert(3322, &[43010]); // 3322 => [43010]
map.insert(1672, &[1058818]); // 1672 => [1058818]
map.insert(624, &[1083394]); // 624 => [1083394]
map.insert(1788, &[329730]); // 1788 => [329730]
map.insert(1227, &[591874]); // 1227 => [591874]
map.insert(2169, &[2164738]); // 2169 => [2164738]
map.insert(3790, &[4327426]); // 3790 => [4327426]
map.insert(2613, &[788482]); // 2613 => [788482]
map.insert(1671, &[2361346]); // 1671 => [2361346]
map.insert(1200, &[2623490]); // 1200 => [2623490]
map.insert(3150, &[274434]); // 3150 => [274434]
map.insert(1587, &[2134018]); // 1587 => [2134018]
map.insert(1326, &[4231170]); // 1326 => [4231170]
map.insert(3582, &[659458]); // 3582 => [659458]
map.insert(2448, &[1183746]); // 2448 => [1183746]
map.insert(243, &[1576962]); // 243 => [1576962]
map.insert(1920, &[6295554]); // 1920 => [6295554]
map.insert(1382, &[155650]); // 1382 => [155650]
map.insert(183, &[2121730]); // 183 => [2121730]
map.insert(846, &[1089538]); // 846 => [1089538]
map.insert(2650, &[4268034]); // 2650 => [4268034]
map.insert(3309, &[2236418]); // 3309 => [2236418]
map.insert(2762, &[311298]); // 2762 => [311298]
map.insert(3654, &[1130498]); // 3654 => [1130498]
map.insert(816, &[2244610]); // 816 => [2244610]
map.insert(2382, &[4734978]); // 2382 => [4734978]
map.insert(2158, &[229378]); // 2158 => [229378]
map.insert(3801, &[6324226]); // 3801 => [6324226]
map.insert(3366, &[851970]); // 3366 => [851970]
map.insert(404, &[2424834]); // 404 => [2424834]
map.insert(931, &[2686978]); // 931 => [2686978]
map.insert(3797, &[1703938]); // 3797 => [1703938]
map.insert(3421, &[2883586]); // 3421 => [2883586]
map.insert(2606, &[5505026]); // 2606 => [5505026]
map.insert(588, &[588]); // 588 => [588]
map.insert(2124, &[2124]); // 2124 => [2124]
map.insert(2572, &[2572]); // 2572 => [2572]
map.insert(1593, &[73748]); // 1593 => [73748]
map.insert(1375, &[4202516]); // 1375 => [4202516]
map.insert(882, &[4259860]); // 882 => [4259860]
map.insert(1316, &[1316]); // 1316 => [1316]
map.insert(3660, &[2097444]); // 3660 => [2097444]
map.insert(2892, &[2098212]); // 2892 => [2098212]
map.insert(2628, &[2628]); // 2628 => [2628]
map.insert(2977, &[49284]); // 2977 => [49284]
map.insert(1930, &[278660]); // 1930 => [278660]
map.insert(3247, &[295044]); // 3247 => [295044]
map.insert(2668, &[2098436]); // 2668 => [2098436]
map.insert(3576, &[659460]); // 3576 => [659460]
map.insert(2454, &[1183748]); // 2454 => [1183748]
map.insert(245, &[1576964]); // 245 => [1576964]
map.insert(2652, &[4268036]); // 2652 => [4268036]
map.insert(2764, &[311300]); // 2764 => [311300]
map.insert(3795, &[1703940]); // 3795 => [1703940]
map.insert(2632, &[2632]); // 2632 => [2632]
map.insert(79, &[79]); // 79 => [79]
map.insert(527, &[527]); // 527 => [527]
map.insert(2063, &[2063]); // 2063 => [2063]
map.insert(2345, &[8215]); // 2345 => [8215]
map.insert(3844, &[65559]); // 3844 => [65559]
map.insert(3170, &[4194327]); // 3170 => [4194327]
map.insert(295, &[295]); // 295 => [295]
map.insert(1063, &[1063]); // 1063 => [1063]
map.insert(3919, &[2097191]); // 3919 => [2097191]
map.insert(583, &[583]); // 583 => [583]
map.insert(2119, &[2119]); // 2119 => [2119]
map.insert(1636, &[16519]); // 1636 => [16519]
map.insert(3393, &[32903]); // 3393 => [32903]
map.insert(362, &[262279]); // 362 => [262279]
map.insert(1287, &[1287]); // 1287 => [1287]
map.insert(3695, &[2097415]); // 3695 => [2097415]
map.insert(2567, &[2567]); // 2567 => [2567]
map.insert(2927, &[2098183]); // 2927 => [2098183]
map.insert(3617, &[135175]); // 3617 => [135175]
map.insert(1858, &[528391]); // 1858 => [528391]
map.insert(812, &[1052679]); // 812 => [1052679]
map.insert(1578, &[73735]); // 1578 => [73735]
map.insert(1356, &[4202503]); // 1356 => [4202503]
map.insert(2850, &[49159]); // 2850 => [49159]
map.insert(1801, &[278535]); // 1801 => [278535]
map.insert(3116, &[294919]); // 3116 => [294919]
map.insert(865, &[4259847]); // 865 => [4259847]
map.insert(2404, &[655367]); // 2404 => [655367]
map.insert(3338, &[1179655]); // 3338 => [1179655]
map.insert(1129, &[1572871]); // 1129 => [1572871]
map.insert(283, &[283]); // 283 => [283]
map.insert(2722, &[131099]); // 2722 => [131099]
map.insert(502, &[262171]); // 502 => [262171]
map.insert(171, &[171]); // 171 => [171]
map.insert(2325, &[8235]); // 2325 => [8235]
map.insert(1009, &[524331]); // 1009 => [524331]
map.insert(587, &[587]); // 587 => [587]
map.insert(2123, &[2123]); // 2123 => [2123]
map.insert(2485, &[8331]); // 2485 => [8331]
map.insert(849, &[524427]); // 849 => [524427]
map.insert(2994, &[131339]); // 2994 => [131339]
map.insert(230, &[262411]); // 230 => [262411]
map.insert(2571, &[2571]); // 2571 => [2571]
map.insert(744, &[17419]); // 744 => [17419]
map.insert(2840, &[66571]); // 2840 => [66571]
map.insert(959, &[1049611]); // 959 => [1049611]
map.insert(2386, &[36875]); // 2386 => [36875]
map.insert(3068, &[2101259]); // 3068 => [2101259]
map.insert(2273, &[4198411]); // 2273 => [4198411]
map.insert(2799, &[532491]); // 2799 => [532491]
map.insert(2555, &[81931]); // 2555 => [81931]
map.insert(348, &[1064971]); // 348 => [1064971]
map.insert(677, &[2129931]); // 677 => [2129931]
map.insert(440, &[4227083]); // 440 => [4227083]
map.insert(2220, &[1114123]); // 2220 => [1114123]
map.insert(2911, &[393227]); // 2911 => [393227]
map.insert(790, &[6291467]); // 790 => [6291467]
map.insert(2099, &[2099]); // 2099 => [2099]
map.insert(1196, &[4147]); // 1196 => [4147]
map.insert(1744, &[16435]); // 1744 => [16435]
map.insert(1107, &[1107]); // 1107 => [1107]
map.insert(3477, &[32851]); // 3477 => [32851]
map.insert(905, &[524371]); // 905 => [524371]
map.insert(659, &[659]); // 659 => [659]
map.insert(1831, &[1048723]); // 1831 => [1048723]
map.insert(4091, &[2097299]); // 4091 => [2097299]
map.insert(2986, &[131347]); // 2986 => [131347]
map.insert(254, &[262419]); // 254 => [262419]
map.insert(1447, &[1049107]); // 1447 => [1049107]
map.insert(3451, &[2097683]); // 3451 => [2097683]
map.insert(2517, &[33811]); // 2517 => [33811]
map.insert(1993, &[525331]); // 1993 => [525331]
map.insert(3212, &[6163]); // 3212 => [6163]
map.insert(3824, &[18451]); // 3824 => [18451]
map.insert(623, &[20499]); // 623 => [20499]
map.insert(1598, &[73747]); // 1598 => [73747]
map.insert(1368, &[4202515]); // 1368 => [4202515]
map.insert(3599, &[557075]); // 3599 => [557075]
map.insert(885, &[4259859]); // 885 => [4259859]
map.insert(2887, &[393235]); // 2887 => [393235]
map.insert(2255, &[3145747]); // 2255 => [3145747]
map.insert(398, &[262243]); // 398 => [262243]
map.insert(2007, &[1048675]); // 2007 => [1048675]
map.insert(3094, &[4194403]); // 3094 => [4194403]
map.insert(2461, &[8355]); // 2461 => [8355]
map.insert(889, &[524451]); // 889 => [524451]
map.insert(1315, &[1315]); // 1315 => [1315]
map.insert(3659, &[2097443]); // 3659 => [2097443]
map.insert(4069, &[33315]); // 4069 => [33315]
map.insert(3376, &[66083]); // 3376 => [66083]
map.insert(2202, &[131619]); // 2202 => [131619]
map.insert(2891, &[2098211]); // 2891 => [2098211]
map.insert(3260, &[6179]); // 3260 => [6179]
map.insert(3776, &[18467]); // 3776 => [18467]
map.insert(607, &[20515]); // 607 => [20515]
map.insert(2759, &[532515]); // 2759 => [532515]
map.insert(758, &[98339]); // 758 => [98339]
map.insert(1884, &[163875]); // 1884 => [163875]
map.insert(1417, &[196643]); // 1417 => [196643]
map.insert(1658, &[1310755]); // 1658 => [1310755]
map.insert(3515, &[4456483]); // 3515 => [4456483]
map.insert(3042, &[5242915]); // 3042 => [5242915]
map.insert(451, &[451]); // 451 => [451]
map.insert(1116, &[4291]); // 1116 => [4291]
map.insert(4048, &[65731]); // 4048 => [65731]
map.insert(1500, &[4419]); // 1500 => [4419]
map.insert(3664, &[65859]); // 3664 => [65859]
map.insert(2627, &[2627]); // 2627 => [2627]
map.insert(2437, &[33859]); // 2437 => [33859]
map.insert(1945, &[525379]); // 1945 => [525379]
map.insert(3023, &[69699]); // 3023 => [69699]
map.insert(3998, &[24643]); // 3998 => [24643]
map.insert(964, &[139331]); // 964 => [139331]
map.insert(1557, &[2105411]); // 1557 => [2105411]
map.insert(3097, &[147523]); // 3097 => [147523]
map.insert(2504, &[2113603]); // 2504 => [2113603]
map.insert(3679, &[557123]); // 3679 => [557123]
map.insert(1426, &[2228291]); // 1426 => [2228291]
map.insert(1562, &[1310787]); // 1562 => [1310787]
map.insert(3547, &[4456515]); // 3547 => [4456515]
map.insert(2946, &[5242947]); // 2946 => [5242947]
map.insert(1308, &[4483]); // 1308 => [4483]
map.insert(3728, &[65923]); // 3728 => [65923]
map.insert(1335, &[1049219]); // 1335 => [1049219]
map.insert(3563, &[2097795]); // 3563 => [2097795]
map.insert(3203, &[3203]); // 3203 => [3203]
map.insert(3642, &[132227]); // 3642 => [132227]
map.insert(2294, &[4195459]); // 2294 => [4195459]
map.insert(570, &[133251]); // 570 => [133251]
map.insert(1270, &[4196483]); // 1270 => [4196483]
map.insert(2831, &[69763]); // 2831 => [69763]
map.insert(2663, &[532611]); // 2663 => [532611]
map.insert(2982, &[49283]); // 2982 => [49283]
map.insert(1933, &[278659]); // 1933 => [278659]
map.insert(3240, &[295043]); // 3240 => [295043]
map.insert(1615, &[4325507]); // 1615 => [4325507]
map.insert(2143, &[3145859]); // 2143 => [3145859]
map.insert(1504, &[17155]); // 1504 => [17155]
map.insert(217, &[525059]); // 217 => [525059]
map.insert(3958, &[4195075]); // 3958 => [4195075]
map.insert(2667, &[2098435]); // 2667 => [2098435]
map.insert(61, &[10499]); // 61 => [10499]
map.insert(1221, &[35075]); // 1221 => [35075]
map.insert(3767, &[1050883]); // 3767 => [1050883]
map.insert(2703, &[69891]); // 2703 => [69891]
map.insert(1531, &[41219]); // 1531 => [41219]
map.insert(3977, &[1057027]); // 3977 => [1057027]
map.insert(1082, &[540931]); // 1082 => [540931]
map.insert(2965, &[4210947]); // 2965 => [4210947]
map.insert(2929, &[1081603]); // 2929 => [1081603]
map.insert(2647, &[393475]); // 2647 => [393475]
map.insert(3756, &[4718851]); // 3756 => [4718851]
map.insert(668, &[5635]); // 668 => [5635]
map.insert(3901, &[9731]); // 3901 => [9731]
map.insert(2030, &[263683]); // 2030 => [263683]
map.insert(4002, &[12803]); // 4002 => [12803]
map.insert(1905, &[266755]); // 1905 => [266755]
map.insert(2768, &[270851]); // 2768 => [270851]
map.insert(1850, &[541187]); // 1850 => [541187]
map.insert(2197, &[4211203]); // 2197 => [4211203]
map.insert(214, &[98819]); // 214 => [98819]
map.insert(1404, &[164355]); // 1404 => [164355]
map.insert(1961, &[197123]); // 1961 => [197123]
map.insert(3500, &[4719107]); // 3500 => [4719107]
map.insert(2783, &[3146243]); // 2783 => [3146243]
map.insert(1722, &[134147]); // 1722 => [134147]
map.insert(118, &[4197379]); // 118 => [4197379]
map.insert(2466, &[13315]); // 2466 => [13315]
map.insert(369, &[267267]); // 369 => [267267]
map.insert(3280, &[271363]); // 3280 => [271363]
map.insert(3571, &[82947]); // 3571 => [82947]
map.insert(1364, &[1065987]); // 1364 => [1065987]
map.insert(2591, &[558083]); // 2591 => [558083]
map.insert(3236, &[1115139]); // 3236 => [1115139]
map.insert(719, &[4326403]); // 719 => [4326403]
map.insert(2687, &[22531]); // 2687 => [22531]
map.insert(3323, &[43011]); // 3323 => [43011]
map.insert(1673, &[1058819]); // 1673 => [1058819]
map.insert(625, &[1083395]); // 625 => [1083395]
map.insert(1789, &[329731]); // 1789 => [329731]
map.insert(1226, &[591875]); // 1226 => [591875]
map.insert(2168, &[2164739]); // 2168 => [2164739]
map.insert(3791, &[4327427]); // 3791 => [4327427]
map.insert(2612, &[788483]); // 2612 => [788483]
map.insert(1670, &[2361347]); // 1670 => [2361347]
map.insert(1201, &[2623491]); // 1201 => [2623491]
map.insert(3151, &[274435]); // 3151 => [274435]
map.insert(1586, &[2134019]); // 1586 => [2134019]
map.insert(1327, &[4231171]); // 1327 => [4231171]
map.insert(3583, &[659459]); // 3583 => [659459]
map.insert(2449, &[1183747]); // 2449 => [1183747]
map.insert(242, &[1576963]); // 242 => [1576963]
map.insert(1921, &[6295555]); // 1921 => [6295555]
map.insert(1383, &[155651]); // 1383 => [155651]
map.insert(182, &[2121731]); // 182 => [2121731]
map.insert(847, &[1089539]); // 847 => [1089539]
map.insert(2651, &[4268035]); // 2651 => [4268035]
map.insert(3308, &[2236419]); // 3308 => [2236419]
map.insert(2763, &[311299]); // 2763 => [311299]
map.insert(3655, &[1130499]); // 3655 => [1130499]
map.insert(817, &[2244611]); // 817 => [2244611]
map.insert(2383, &[4734979]); // 2383 => [4734979]
map.insert(2159, &[229379]); // 2159 => [229379]
map.insert(3800, &[6324227]); // 3800 => [6324227]
map.insert(3367, &[851971]); // 3367 => [851971]
map.insert(405, &[2424835]); // 405 => [2424835]
map.insert(930, &[2686979]); // 930 => [2686979]
map.insert(3796, &[1703939]); // 3796 => [1703939]
map.insert(3420, &[2883587]); // 3420 => [2883587]
map.insert(2607, &[5505027]); // 2607 => [5505027]
map.insert(589, &[589]); // 589 => [589]
map.insert(2125, &[2125]); // 2125 => [2125]
map.insert(2573, &[2573]); // 2573 => [2573]
map.insert(1592, &[73749]); // 1592 => [73749]
map.insert(1374, &[4202517]); // 1374 => [4202517]
map.insert(883, &[4259861]); // 883 => [4259861]
map.insert(1317, &[1317]); // 1317 => [1317]
map.insert(3661, &[2097445]); // 3661 => [2097445]
map.insert(2893, &[2098213]); // 2893 => [2098213]
map.insert(2629, &[2629]); // 2629 => [2629]
map.insert(2976, &[49285]); // 2976 => [49285]
map.insert(1931, &[278661]); // 1931 => [278661]
map.insert(3246, &[295045]); // 3246 => [295045]
map.insert(2669, &[2098437]); // 2669 => [2098437]
map.insert(3577, &[659461]); // 3577 => [659461]
map.insert(2455, &[1183749]); // 2455 => [1183749]
map.insert(244, &[1576965]); // 244 => [1576965]
map.insert(2653, &[4268037]); // 2653 => [4268037]
map.insert(2765, &[311301]); // 2765 => [311301]
map.insert(3794, &[1703941]); // 3794 => [1703941]
map.insert(2633, &[2633]); // 2633 => [2633]
map.insert(590, &[590]); // 590 => [590]
map.insert(2126, &[2126]); // 2126 => [2126]
map.insert(2574, &[2574]); // 2574 => [2574]
map.insert(1595, &[73750]); // 1595 => [73750]
map.insert(1373, &[4202518]); // 1373 => [4202518]
map.insert(880, &[4259862]); // 880 => [4259862]
map.insert(1318, &[1318]); // 1318 => [1318]
map.insert(3662, &[2097446]); // 3662 => [2097446]
map.insert(2894, &[2098214]); // 2894 => [2098214]
map.insert(2630, &[2630]); // 2630 => [2630]
map.insert(2979, &[49286]); // 2979 => [49286]
map.insert(1928, &[278662]); // 1928 => [278662]
map.insert(3245, &[295046]); // 3245 => [295046]
map.insert(2670, &[2098438]); // 2670 => [2098438]
map.insert(3578, &[659462]); // 3578 => [659462]
map.insert(2452, &[1183750]); // 2452 => [1183750]
map.insert(247, &[1576966]); // 247 => [1576966]
map.insert(2654, &[4268038]); // 2654 => [4268038]
map.insert(2766, &[311302]); // 2766 => [311302]
map.insert(3793, &[1703942]); // 3793 => [1703942]
map.insert(2634, &[2634]); // 2634 => [2634]
map.insert(2636, &[2636]); // 2636 => [2636]
map.insert(591, &[591]); // 591 => [591]
map.insert(2127, &[2127]); // 2127 => [2127]
map.insert(2575, &[2575]); // 2575 => [2575]
map.insert(1594, &[73751]); // 1594 => [73751]
map.insert(1372, &[4202519]); // 1372 => [4202519]
map.insert(881, &[4259863]); // 881 => [4259863]
map.insert(1319, &[1319]); // 1319 => [1319]
map.insert(3663, &[2097447]); // 3663 => [2097447]
map.insert(2895, &[2098215]); // 2895 => [2098215]
map.insert(2631, &[2631]); // 2631 => [2631]
map.insert(2978, &[49287]); // 2978 => [49287]
map.insert(1929, &[278663]); // 1929 => [278663]
map.insert(3244, &[295047]); // 3244 => [295047]
map.insert(2671, &[2098439]); // 2671 => [2098439]
map.insert(3579, &[659463]); // 3579 => [659463]
map.insert(2453, &[1183751]); // 2453 => [1183751]
map.insert(246, &[1576967]); // 246 => [1576967]
map.insert(2655, &[4268039]); // 2655 => [4268039]
map.insert(2767, &[311303]); // 2767 => [311303]
map.insert(3792, &[1703943]); // 3792 => [1703943]
map.insert(2635, &[2635]); // 2635 => [2635]
map.insert(2637, &[2637]); // 2637 => [2637]
map.insert(2638, &[2638]); // 2638 => [2638]
map.insert(2639, &[2639]); // 2639 => [2639]
SYNDROME_MAP = Box::into_raw(map);
}
});
}
impl GuavaCode23_11 {
fn parity_check_matrix_transposed(&self) -> &BinMatrix {
init();
unsafe {
PARITY_MATRIX_T.as_ref().unwrap()
}
}
}
impl BinaryCode for GuavaCode23_11 {
fn name(&self) -> String {
"[23, 11] Guava code".to_owned()
}
fn length(&self) -> usize {
23
}
fn dimension(&self) -> usize {
11
}
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(11);
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_11.generator_matrix();
assert_eq!(code.ncols(), 23);
assert_eq!(code.nrows(), 11);
}
#[test]
fn test_decode_sample() {
let code = GuavaCode23_11;
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_11;
let randvec = BinVector::from_bools(&[true, false, true, false, false, false, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, false, false]);
let codeword = BinVector::from_bools(&[true, true, true, false, false, false, true, true, false, false, true, false, true, false, true, true, true, false, false, true, true, false, false]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, true, false, true, true, false, true, false, false, false, true, false, true, true, false, true, false, false, true, true, true, false, true]);
let codeword = BinVector::from_bools(&[true, true, true, false, true, false, true, false, false, false, true, false, true, true, false, false, false, false, true, true, true, false, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, false, false, false, true, true, false, true, true, false, true, true, true, false, false, true, true, false, true, true, true, false, false]);
let codeword = BinVector::from_bools(&[true, false, false, false, false, true, false, true, false, false, true, true, true, false, false, true, true, false, true, true, true, true, false]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, false, true, false, true, true, false, true, false, true, false, false, false, false, true, false, false, true, false, false, false, true, true]);
let codeword = BinVector::from_bools(&[true, true, true, false, true, true, false, true, false, true, true, false, false, false, false, false, true, true, false, false, false, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, false, false, false, false, false, false, false, true, true, false, true, false, false, true, true, true, false, true, true, true, true, true]);
let codeword = BinVector::from_bools(&[false, false, false, false, false, false, false, false, true, true, false, true, false, false, true, false, true, false, true, false, false, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, false, false, false, true, true, true, false, true, true, false, true, false, false, false, true, true, true, false, false, false, false, false]);
let codeword = BinVector::from_bools(&[true, false, false, false, true, true, true, false, true, true, false, true, false, false, false, true, true, true, false, false, false, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, false, true, false, true, false, false, false, true, false, true, true, false, true, false, false, true, true, false, false, true, false, true]);
let codeword = BinVector::from_bools(&[true, false, true, false, true, false, true, false, true, true, true, false, false, true, false, false, true, true, false, false, true, false, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, true, true, false, true, true, false, true, false, true, false, true, true, true, false, false, false, false, true, false, 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_11;
let randvec = BinVector::from_bools(&[true, true, false, true, false, true, true, true, true, false, true, false, true, true, true, true, false, false, true, true, true, true, false]);
let codeword = BinVector::from_bools(&[true, false, false, true, false, true, false, true, true, false, false, false, true, true, true, false, false, false, true, true, true, true, false]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, false, true, false, false, false, false, true, true, false, false, true, true, true, false, true, true, false, false, true, false, false, true]);
let codeword = BinVector::from_bools(&[true, false, true, false, false, true, true, true, true, false, false, true, true, false, false, true, true, false, false, true, false, false, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, true, false, false, true, false, false, true, true, false, false, true, false, true, true, false, false, true, false, true, true, true, false]);
let codeword = BinVector::from_bools(&[false, true, true, false, true, false, true, true, true, false, false, true, false, true, true, false, false, true, false, true, false, true, false]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, false, true, false, false, true, true, false, false, false, false, false, true, true, true, false, false, false, true, false, true, true, true]);
let codeword = BinVector::from_bools(&[true, false, true, false, false, true, true, true, false, false, false, true, true, true, false, false, false, false, true, false, true, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, true, true, true, true, false, false, true, true, false, false, true, true, true, false, true, true, false, false, false, false, true, true]);
let codeword = BinVector::from_bools(&[false, true, true, true, true, false, false, true, true, false, false, true, true, false, false, true, false, false, false, true, false, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, true, true, false, false, false, false, true, true, false, true, false, false, false, true, true, true, true, false, true, true, false, true]);
let codeword = BinVector::from_bools(&[true, true, true, false, false, false, false, true, true, false, false, true, false, false, true, true, false, true, false, true, true, false, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, false, false, false, true, false, false, true, true, false, false, false, true, false, false, false, true, true, true, false, true, false, true]);
let codeword = BinVector::from_bools(&[false, false, false, false, false, true, false, true, true, false, false, false, true, false, false, false, true, false, true, false, true, false, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, false, true, false, false, true, true, true, true, false, false, true, true, true, true, false, false, false, true, true, true, true, true]);
let codeword = BinVector::from_bools(&[true, false, true, false, false, true, true, true, false, false, false, true, true, true, false, false, false, false, true, false, true, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, true, false, false, true, true, false, false, false, true, false, false, false, true, false, false, true, true, false, true, false, false, true]);
let codeword = BinVector::from_bools(&[true, true, false, true, true, true, false, false, true, true, false, false, false, true, false, false, true, true, false, true, false, false, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[true, false, false, false, true, true, true, false, true, true, true, true, false, false, false, false, false, true, true, false, true, true, true]);
let codeword = BinVector::from_bools(&[true, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, true, true, false, true, true, true]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, false, true, true, false, true, false, true, true, false, true, false, true, true, false, true, true, false, false, false, true, false, false]);
let codeword = BinVector::from_bools(&[false, false, false, true, false, true, false, true, true, true, true, false, true, true, false, true, true, false, false, false, true, true, false]);
assert_eq!(code.decode_to_code(&randvec), Ok(codeword));
}
{
let code = GuavaCode23_11;
let randvec = BinVector::from_bools(&[false, false, true, false, false, false, true, false, false, true, false, true, false, false, true, true, false, true, true, false, true, false, true]);
let codeword = BinVector::from_bools(&[true, false, true, true, true, false, true, false, false, true, false, true, false, false, true, true, false, true, false, false, true, 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, false, true, true, true, true, true, false, false, true, false, false, true, false ]);
assert_eq!(vector, first_row.as_vector());
}
}