-
Notifications
You must be signed in to change notification settings - Fork 1
/
a_tables.ino
1641 lines (1627 loc) · 153 KB
/
a_tables.ino
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
// --------------------------------------------------------------------------
// This file is part of the OCS-2 firmware.
//
// OCS-2 firmware is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// OCS-2 firmware is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with OCS-2 firmware. If not, see <http://www.gnu.org/licenses/>.
// --------------------------------------------------------------------------
// todo : add C code for table generation
const uint8_t table_led[] = { // NL table for led display
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
6, 6, 7, 7, 7, 7, 7, 7, 7, 8,
8, 8, 8, 8, 8, 9, 9, 9, 9, 9,
9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
11, 11, 12, 12, 12, 12, 12, 13, 13, 13,
13, 13, 14, 14, 14, 14, 15, 15, 15, 15,
15, 16, 16, 16, 16, 17, 17, 17, 17, 18,
18, 18, 18, 19, 19, 19, 19, 20, 20, 20,
20, 21, 21, 21, 22, 22, 22, 22, 23, 23,
23, 24, 24, 24, 24, 25, 25, 25, 26, 26,
26, 27, 27, 27, 28, 28, 28, 29, 29, 29,
30, 30, 30, 31, 31, 31, 32, 32, 32, 33,
33, 33, 34, 34, 34, 35, 35, 35, 36, 36,
36, 37, 37, 38, 38, 38, 39, 39, 39, 40,
40, 41, 41, 41, 42, 42, 43, 43, 43, 44,
44, 45, 45, 45, 46, 46, 47, 47, 48, 48,
48, 49, 49, 50, 50, 51, 51, 51, 52, 52,
53, 53, 54, 54, 55, 55, 55, 56, 56, 57,
57, 58, 58, 59, 59, 60, 60, 61, 61, 62,
62, 63, 63, 64, 64, 65, 65, 66, 66, 67,
67, 68, 68, 69, 69, 70, 70, 71, 71, 72,
72, 73, 73, 74, 74, 75, 75, 76, 76, 77,
77, 78, 79, 79, 80, 80, 81, 81, 82, 82,
83, 84, 84, 85, 85, 86, 86, 87, 88, 88,
89, 89, 90, 90, 91, 92, 92, 93, 93, 94,
95, 95, 96, 96, 97, 98, 98, 99, 99, 100,
101, 101, 102, 103, 103, 104, 104, 105, 106, 106,
107, 108, 108, 109, 110, 110, 111, 112, 112, 113,
114, 114, 115, 116, 116, 117, 118, 118, 119, 120,
120, 121, 122, 122, 123, 124, 124, 125, 126, 126,
127, 128, 128, 129, 130, 131, 131, 132, 133, 133,
134, 135, 136, 136, 137, 138, 138, 139, 140, 141,
141, 142, 143, 144, 144, 145, 146, 147, 147, 148,
149, 150, 150, 151, 152, 153, 153, 154, 155, 156,
157, 157, 158, 159, 160, 160, 161, 162, 163, 164,
164, 165, 166, 167, 168, 168, 169, 170, 171, 172,
172, 173, 174, 175, 176, 177, 177, 178, 179, 180,
181, 182, 182, 183, 184, 185, 186, 187, 187, 188,
189, 190, 191, 192, 193, 193, 194, 195, 196, 197,
198, 199, 199, 200, 201, 202, 203, 204, 205, 206,
207, 207, 208, 209, 210, 211, 212, 213, 214, 215,
216, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 227, 228, 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, 0
};
const uint32_t table_CV2increment[] = { // 1025 values, 1 step every 1/4 midi note (half tone)
// increment need by a 32bit counter, using a Sample Rate = 48KHz
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 80, 81, 82, 83,
84, 86, 87, 88, 89, 91, 92, 93, 95, 96,
97, 99, 100, 102, 103, 105, 106, 108, 109, 111,
113, 114, 116, 117, 119, 121, 123, 124, 126, 128,
130, 132, 134, 136, 138, 140, 142, 144, 146, 148,
150, 152, 155, 157, 159, 161, 164, 166, 169, 171,
174, 176, 179, 181, 184, 187, 189, 192, 195, 198,
200, 203, 206, 209, 212, 215, 219, 222, 225, 228,
232, 235, 238, 242, 245, 249, 253, 256, 260, 264,
268, 271, 275, 279, 284, 288, 292, 296, 300, 305,
309, 314, 318, 323, 328, 332, 337, 342, 347, 352,
357, 362, 368, 373, 378, 384, 390, 395, 401, 407,
413, 419, 425, 431, 437, 444, 450, 457, 463, 470,
477, 484, 491, 498, 505, 513, 520, 528, 535, 543,
551, 559, 567, 575, 584, 592, 601, 609, 618, 627,
636, 646, 655, 665, 674, 684, 694, 704, 714, 725,
735, 746, 757, 768, 779, 790, 802, 814, 825, 837,
850, 862, 874, 887, 900, 913, 926, 940, 954, 967,
982, 996, 1010, 1025, 1040, 1055, 1070, 1086, 1102, 1118,
1134, 1151, 1167, 1184, 1201, 1219, 1237, 1255, 1273, 1291,
1310, 1329, 1349, 1368, 1388, 1408, 1429, 1450, 1471, 1492,
1514, 1536, 1558, 1581, 1604, 1627, 1651, 1675, 1699, 1724,
1749, 1774, 1800, 1826, 1853, 1880, 1907, 1935, 1963, 1992,
2021, 2050, 2080, 2110, 2141, 2172, 2204, 2236, 2268, 2301,
2335, 2369, 2403, 2438, 2473, 2509, 2546, 2583, 2620, 2659,
2697, 2736, 2776, 2817, 2858, 2899, 2941, 2984, 3028, 3072,
3116, 3162, 3208, 3254, 3302, 3350, 3398, 3448, 3498, 3549,
3600, 3653, 3706, 3760, 3815, 3870, 3926, 3983, 4041, 4100,
4160, 4220, 4282, 4344, 4407, 4471, 4536, 4602, 4669, 4737,
4806, 4876, 4947, 5019, 5092, 5166, 5241, 5317, 5395, 5473,
5553, 5633, 5715, 5798, 5883, 5968, 6055, 6143, 6233, 6323,
6415, 6509, 6603, 6699, 6797, 6896, 6996, 7098, 7201, 7306,
7412, 7520, 7629, 7740, 7853, 7967, 8083, 8200, 8319, 8441,
8563, 8688, 8814, 8942, 9072, 9204, 9338, 9474, 9612, 9752,
9894, 10038, 10184, 10332, 10482, 10634, 10789, 10946, 11105, 11267,
11431, 11597, 11766, 11937, 12110, 12286, 12465, 12646, 12830, 13017,
13206, 13398, 13593, 13791, 13992, 14195, 14402, 14611, 14824, 15039,
15258, 15480, 15705, 15934, 16165, 16400, 16639, 16881, 17127, 17376,
17628, 17885, 18145, 18409, 18677, 18948, 19224, 19504, 19787, 20075,
20367, 20663, 20964, 21269, 21578, 21892, 22210, 22533, 22861, 23194,
23531, 23873, 24221, 24573, 24930, 25293, 25661, 26034, 26413, 26797,
27187, 27582, 27983, 28390, 28803, 29222, 29647, 30079, 30516, 30960,
31410, 31867, 32331, 32801, 33278, 33762, 34253, 34751, 35257, 35770,
36290, 36818, 37353, 37897, 38448, 39007, 39574, 40150, 40734, 41327,
41928, 42537, 43156, 43784, 44421, 45067, 45722, 46387, 47062, 47747,
48441, 49146, 49861, 50586, 51322, 52068, 52825, 53594, 54373, 55164,
55967, 56781, 57607, 58444, 59295, 60157, 61032, 61920, 62820, 63734,
64661, 65602, 66556, 67524, 68506, 69503, 70514, 71539, 72580, 73635,
74707, 75793, 76896, 78014, 79149, 80300, 81468, 82653, 83855, 85075,
86312, 87568, 88842, 90134, 91445, 92775, 94124, 95493, 96882, 98292,
99721, 101172, 102643, 104136, 105651, 107188, 108747, 110329, 111933, 113561,
115213, 116889, 118589, 120314, 122064, 123840, 125641, 127468, 129322, 131203,
133112, 135048, 137012, 139005, 141027, 143078, 145160, 147271, 149413, 151586,
153791, 156028, 158298, 160600, 162936, 165306, 167710, 170150, 172625, 175136,
177683, 180267, 182890, 185550, 188249, 190987, 193765, 196583, 199442, 202343,
205287, 208273, 211302, 214375, 217494, 220657, 223867, 227123, 230426, 233778,
237178, 240628, 244128, 247679, 251282, 254937, 258645, 262407, 266224, 270096,
274025, 278010, 282054, 286157, 290319, 294542, 298826, 303173, 307582, 312056,
316595, 321200, 325872, 330612, 335421, 340300, 345249, 350271, 355366, 360535,
365779, 371099, 376497, 381973, 387529, 393166, 398885, 404687, 410573, 416545,
422604, 428751, 434987, 441314, 447733, 454246, 460853, 467556, 474357, 481256,
488256, 495358, 502563, 509873, 517290, 524814, 532447, 540192, 548049, 556021,
564108, 572314, 580638, 589084, 597652, 606345, 615165, 624112, 633190, 642400,
651744, 661224, 670842, 680599, 690499, 700542, 710732, 721070, 731558, 742199,
752994, 763947, 775059, 786332, 797770, 809374, 821146, 833090, 845208, 857501,
869974, 882628, 895466, 908491, 921705, 935112, 948713, 962513, 976513, 990717,
1005127, 1019747, 1034579, 1049628, 1064895, 1080384, 1096099, 1112042, 1128217, 1144627,
1161276, 1178167, 1195304, 1212690, 1230329, 1248225, 1266381, 1284800, 1303488, 1322448,
1341683, 1361199, 1380998, 1401085, 1421464, 1442140, 1463116, 1484398, 1505989, 1527894,
1550118, 1572665, 1595540, 1618747, 1642292, 1666180, 1690415, 1715003, 1739948, 1765256,
1790933, 1816982, 1843411, 1870224, 1897427, 1925026, 1953026, 1981433, 2010254, 2039494,
2069159, 2099255, 2129790, 2160768, 2192197, 2224084, 2256434, 2289254, 2322552, 2356335,
2390608, 2425380, 2460658, 2496449, 2532761, 2569601, 2606977, 2644896, 2683367, 2722397,
2761996, 2802170, 2842928, 2884280, 2926232, 2968795, 3011978, 3055788, 3100235, 3145329,
3191079, 3237494, 3284585, 3332360, 3380831, 3430006, 3479896, 3530513, 3581865, 3633965,
3686822, 3740448, 3794854, 3850051, 3906052, 3962866, 4020508, 4078987, 4138318, 4198511,
4259580, 4321537, 4384395, 4448167, 4512867, 4578508, 4645104, 4712669, 4781216, 4850761,
4921317, 4992899, 5065522, 5139202, 5213953, 5289792, 5366734, 5444795, 5523991, 5604340,
5685857, 5768559, 5852465, 5937591, 6023955, 6111576, 6200470, 6290658, 6382158, 6474989,
6569170, 6664720, 6761661, 6860012, 6959793, 7061025, 7163730, 7267929, 7373644, 7480896,
7589708, 7700103, 7812103, 7925733, 8041015, 8157975, 8276635, 8397022, 8519159, 8643073,
8768789, 8896334, 9025735, 9157017, 9290209, 9425338, 9562433, 9701522, 9842633, 9985798,
10131045, 10278404, 10427907, 10579584, 10733468, 10889590, 11047982, 11208679, 11371713, 11537118,
11704930, 11875182, 12047910, 12223151, 12400941, 12581317, 12764316, 12949978, 13138339, 13329441,
13523322, 13720023, 13919586, 14122051, 14327461, 14535858, 14747287, 14961791, 15179416, 15400205,
15624207, 15851466, 16082031, 16315949, 16553270, 16794043, 17038318, 17286146, 17537579, 17792669,
18051469, 18314034, 18580418, 18850676, 19124865, 19403043, 19685267, 19971596, 20262089, 20556808,
20855814, 21159168, 21466936, 21779179, 22095965, 22417358, 22743426, 23074237, 23409859, 23750364,
24095821, 24446302, 24801882, 25162634, 25528633, 25899955, 26276679, 26658882, 27046644, 27440047,
27839171, 28244101, 28654921, 29071717, 29494575, 29923583, 30358832, 30800411, 31248413, 31702932,
32164062, 32631899, 33106541, 33588086, 34076636, 34572292, 35075158, 35585338, 36102938, 36628068,
37160835, 37701352, 38249731, 38806086, 39370534, 39943191, 40524178, 41113616, 41711627, 42318337,
42933871, 43558359, 44191930, 44834716, 45486852, 46148474, 46819719, 47500727, 48191641, 48892605,
49603764, 50325267, 51057265, 51799910, 52553357, 53317763, 54093288, 54880093, 55678342, 56488203,
57309842, 58143433, 58989149, 59847166, 60717663, 61600822, 62496826, 63405864, 64328123, 65263797,
66213081, 67176172, 68153272, 69144585, 70150316, 71170676, 72205877, 73256136, 74321671, 75402704,
76499462, 77612172, 78741067, 79886382, 81048356, 82227232, 83423255, 84636674, 85867743, 87116718,
88383859, 89669432, 90973704, 92296947, 93639437, 95001454, 96383282, 97785209, 99207528, 100650535,
102114530, 103599820, 105106714, 106635527, 108186576, 109760186, 111356685, 112976405, 114619685, 116286867,
117978298, 119694332, 121435326, 123201644, 124993653, 126811727, 128656246, 130527594, 132426162, 134352345,
136306545, 138289169, 140300631, 142341351, 144411754, 146512271, 148643341, 150805408, 152998923, 155224344,
157482134, 159772765, 162096713, 164454464, 166846509, 169273348
};
uint32_t table_CV2cutof[] = { // 1025 values from about 0.005Hz to 15KHz relative to sample rate (48000 Hz)
// 2^32-1 represent the samplerate
// 1 step every 1/4 midi note (half tone)
// table is adjusted for the filter, since it correct non linearities in the control due to digital implementation
500, 507, 514, 522, 529, 537, 545, 553, 561, 569,
577, 586, 594, 603, 612, 621, 630, 639, 648, 657,
667, 677, 687, 697, 707, 717, 727, 738, 749, 760,
771, 782, 793, 805, 816, 828, 840, 853, 865, 878,
890, 903, 916, 930, 943, 957, 971, 985, 999, 1014,
1029, 1044, 1059, 1074, 1090, 1106, 1122, 1138, 1155, 1171,
1189, 1206, 1223, 1241, 1259, 1278, 1296, 1315, 1334, 1353,
1373, 1393, 1413, 1434, 1455, 1476, 1497, 1519, 1541, 1564,
1586, 1610, 1633, 1657, 1681, 1705, 1730, 1755, 1781, 1807,
1833, 1860, 1887, 1914, 1942, 1970, 1999, 2028, 2057, 2087,
2118, 2148, 2180, 2211, 2244, 2276, 2309, 2343, 2377, 2412,
2447, 2482, 2518, 2555, 2592, 2630, 2668, 2707, 2746, 2786,
2827, 2868, 2910, 2952, 2995, 3038, 3083, 3127, 3173, 3219,
3266, 3313, 3362, 3411, 3460, 3510, 3562, 3613, 3666, 3719,
3773, 3828, 3884, 3940, 3998, 4056, 4115, 4175, 4235, 4297,
4359, 4423, 4487, 4553, 4619, 4686, 4754, 4823, 4893, 4965,
5037, 5110, 5184, 5260, 5336, 5414, 5493, 5573, 5654, 5736,
5819, 5904, 5990, 6077, 6165, 6255, 6346, 6438, 6532, 6627,
6723, 6821, 6920, 7021, 7123, 7227, 7332, 7438, 7547, 7656,
7768, 7881, 7995, 8112, 8230, 8349, 8471, 8594, 8719, 8846,
8974, 9105, 9237, 9372, 9508, 9646, 9787, 9929, 10074, 10220,
10369, 10520, 10673, 10828, 10985, 11145, 11307, 11472, 11638, 11808,
11979, 12154, 12331, 12510, 12692, 12876, 13064, 13254, 13447, 13642,
13841, 14042, 14246, 14453, 14664, 14877, 15093, 15313, 15535, 15761,
15991, 16223, 16459, 16699, 16942, 17188, 17438, 17692, 17949, 18210,
18475, 18744, 19016, 19293, 19573, 19858, 20147, 20440, 20737, 21039,
21345, 21655, 21970, 22290, 22614, 22943, 23277, 23615, 23959, 24307,
24661, 25020, 25384, 25753, 26127, 26507, 26893, 27284, 27681, 28084,
28492, 28907, 29327, 29754, 30186, 30625, 31071, 31523, 31981, 32447,
32918, 33397, 33883, 34376, 34876, 35383, 35898, 36420, 36950, 37487,
38032, 38586, 39147, 39716, 40294, 40880, 41475, 42078, 42690, 43311,
43941, 44580, 45228, 45886, 46554, 47231, 47918, 48615, 49322, 50039,
50767, 51506, 52255, 53015, 53786, 54568, 55362, 56167, 56984, 57813,
58654, 59507, 60373, 61251, 62142, 63045, 63962, 64893, 65837, 66794,
67766, 68751, 69752, 70766, 71795, 72840, 73899, 74974, 76065, 77171,
78293, 79432, 80587, 81760, 82949, 84155, 85379, 86621, 87881, 89159,
90456, 91772, 93107, 94461, 95835, 97229, 98643, 100078, 101534, 103010,
104509, 106029, 107571, 109136, 110723, 112334, 113968, 115625, 117307, 119013,
120744, 122501, 124282, 126090, 127924, 129785, 131672, 133588, 135531, 137502,
139502, 141531, 143590, 145678, 147797, 149947, 152128, 154341, 156585, 158863,
161174, 163518, 165896, 168309, 170757, 173241, 175761, 178317, 180911, 183542,
186212, 188920, 191668, 194456, 197284, 200154, 203065, 206019, 209015, 212055,
215140, 218269, 221444, 224665, 227932, 231248, 234611, 238024, 241486, 244998,
248562, 252177, 255845, 259566, 263341, 267172, 271058, 275000, 279000, 283058,
287175, 291352, 295590, 299889, 304251, 308676, 313166, 317721, 322342, 327030,
331787, 336613, 341509, 346476, 351515, 356628, 361815, 367078, 372417, 377833,
383329, 388904, 394561, 400300, 406122, 412029, 418022, 424102, 430270, 436528,
442877, 449319, 455854, 462484, 469211, 476035, 482959, 489984, 497110, 504341,
511676, 519118, 526668, 534328, 542100, 549985, 557984, 566099, 574333, 582686,
591161, 599759, 608483, 617333, 626311, 635421, 644662, 654039, 663551, 673202,
682993, 692927, 703005, 713230, 723603, 734127, 744805, 755637, 766627, 777777,
789090, 800566, 812210, 824023, 836007, 848166, 860502, 873017, 885714, 898596,
911665, 924924, 938376, 952024, 965870, 979918, 994169, 1008628, 1023298, 1038180,
1053279, 1068598, 1084139, 1099907, 1115903, 1132133, 1148598, 1165303, 1182250, 1199444,
1216889, 1234586, 1252542, 1270758, 1289239, 1307989, 1327011, 1346310, 1365890, 1385755,
1405908, 1426354, 1447098, 1468143, 1489495, 1511157, 1533133, 1555430, 1578050, 1601000,
1624283, 1647905, 1671870, 1696184, 1720851, 1745877, 1771266, 1797025, 1823159, 1849672,
1876571, 1903861, 1931548, 1959637, 1988135, 2017047, 2046379, 2076138, 2106330, 2136960,
2168036, 2199564, 2231550, 2264001, 2296923, 2330325, 2364212, 2398592, 2433471, 2468858,
2504759, 2541182, 2578134, 2615624, 2653659, 2692246, 2731395, 2771113, 2811408, 2852289,
2893764, 2935842, 2978531, 3021841, 3065781, 3110360, 3155586, 3201470, 3248021, 3295248,
3343162, 3391773, 3441090, 3491123, 3541884, 3593383, 3645630, 3698637, 3752414, 3806973,
3862324, 3918480, 3975453, 4033253, 4091893, 4151385, 4211742, 4272977, 4335101, 4398127,
4462070, 4526942, 4592757, 4659528, 4727269, 4795995, 4865719, 4936456, 5008222, 5081030,
5154895, 5229835, 5305863, 5382995, 5461249, 5540639, 5621182, 5702896, 5785797, 5869902,
5955230, 6041796, 6129621, 6218721, 6309115, 6400822, 6493862, 6588253, 6684015, 6781168,
6879733, 6979728, 7081177, 7184098, 7288515, 7394448, 7501919, 7610951, 7721566, 7833788,
7947640, 8063144, 8180326, 8299210, 8419820, 8542181, 8666318, 8792258, 8920027, 9049650,
9181155, 9314570, 9449921, 9587237, 9726546, 9867878, 10011261, 10156725, 10304301, 10454018,
10605909, 10760004, 10916335, 11074935, 11235836, 11399073, 11564678, 11732686, 11903132, 12076051,
12251478, 12429451, 12610006, 12793180, 12979012, 13167539, 13358800, 13552836, 13749687, 13949392,
14151994, 14357534, 14566054, 14777599, 14992210, 15209934, 15430815, 15654898, 15882230, 16112857,
16346828, 16584190, 16824993, 17069286, 17317120, 17568546, 17823615, 18082381, 18344896, 18611215,
18881393, 19155485, 19433548, 19715639, 20001816, 20292138, 20586666, 20885459, 21188579, 21496089,
21808051, 22124531, 22445592, 22771302, 23101727, 23436934, 23776994, 24121975, 24471949, 24826987,
25187163, 25552550, 25923224, 26299260, 26680735, 27067728, 27460319, 27858587, 28262614, 28672484,
29088279, 29510086, 29937990, 30372080, 30812443, 31259170, 31712353, 32172084, 32638457, 33111567,
33591511, 34078387, 34572295, 35073335, 35581609, 36097221, 36620277, 37150882, 37689146, 38235177,
38789087, 39350988, 39920995, 40499225, 41085793, 41680820, 42284427, 42896736, 43517871, 44147958,
44787126, 45435504, 46093224, 46760418, 47437221, 48123772, 48820208, 49526670, 50243302, 50970248,
51707656, 52455673, 53214451, 53984143, 54764904, 55556891, 56360264, 57175185, 58001817, 58840328,
59690884, 60553658, 61428822, 62316552, 63217026, 64130424, 65056930, 65996729, 66950008, 67916959,
68897775, 69892651, 70901787, 71925382, 72963642, 74016773, 75084985, 76168490, 77267504, 78382244,
79512932, 80659793, 81823053, 83002942, 84199696, 85413549, 86644742, 87893518, 89160123, 90444807,
91747822, 93069426, 94409877, 95769440, 97148381, 98546970, 99965481, 101404192, 102863384, 104343342,
105844356, 107366716, 108910721, 110476670, 112064868, 113675623, 115309247, 116966057, 118646373, 120350521,
122078829, 123831630, 125609263, 127412069, 129240394, 131094590, 132975012, 134882020, 136815979, 138777257,
140766230, 142783275, 144828776, 146903122, 149006707, 151139928, 153303189, 155496899, 157721470, 159977323,
162264881, 164584573, 166936834, 169322104, 171740829, 174193460, 176680452, 179202269, 181759378, 184352253,
186981372, 189647222, 192350292, 195091080, 197870089, 200687828, 203544810, 206441558, 209378599, 212356466,
215375699, 218436843, 221540452, 224687084, 227877304, 231111684, 234390803, 237715246, 241085604, 244502476,
247966467, 251478189, 255038260, 258647307, 262305962, 266014865, 269774662, 273586007, 277449561, 281365992,
285335974, 289360191, 293439331, 297574092, 301765178, 306013299, 310319176, 314683533, 319107106, 323590634,
328134867, 332740560, 337408478, 342139390, 346934076, 351793322, 356717922, 361708676, 366766395, 371891893,
377085995, 382349534, 387683347, 393088281, 398565192, 404114940, 409738395, 415436434, 421209941, 427059808,
432986935, 438992226, 445076598, 451240970, 457486272, 463813438, 470223413, 476717146, 483295593, 489959719,
496710496, 503548899, 510475915, 517492534, 524599754, 531798579, 539090020, 546475093, 553954821, 561530233,
569202364, 576972256, 584840953, 592809508, 600878977, 609050424, 617324914, 625703521, 634187321, 642777395,
651474828, 660280711, 669196136, 678222200, 687360005, 696610653, 705975251, 715454909, 725050737, 734763851,
744595365, 754546398, 764618067, 774811492, 785127794, 795568094, 806133511, 816825168, 827644183, 838591675,
849668762, 860876560, 872216182, 883688739, 895295339, 907037087, 918915083, 930930425, 943084205, 955377509,
967811418, 980387008, 993105348, 1005967499, 1018974515, 1032127442, 1045427318, 1058875170, 1072472018, 1086218870,
1100116724, 1114166566, 1128369370, 1142726100, 1157237703, 1171905115
};
const uint32_t table_CV2freq[] = { // 1025 values from about 0.005Hz to 15KHz relative to sample rate (96000 Hz)
// 2^32-1 represent the samplerate
// 1 step every 1/4 midi note (half tone)
// need for the LFO
253, 256, 260, 264, 268, 271, 275, 279, 284, 288,
292, 296, 300, 305, 309, 314, 318, 323, 328, 332,
337, 342, 347, 352, 357, 362, 368, 373, 378, 384,
390, 395, 401, 407, 413, 419, 425, 431, 437, 444,
450, 457, 463, 470, 477, 484, 491, 498, 505, 513,
520, 528, 535, 543, 551, 559, 567, 575, 584, 592,
601, 609, 618, 627, 636, 646, 655, 665, 674, 684,
694, 704, 714, 725, 735, 746, 757, 768, 779, 790,
802, 814, 825, 837, 850, 862, 874, 887, 900, 913,
926, 940, 954, 967, 982, 996, 1010, 1025, 1040, 1055,
1070, 1086, 1102, 1118, 1134, 1151, 1167, 1184, 1201, 1219,
1237, 1255, 1273, 1291, 1310, 1329, 1349, 1368, 1388, 1408,
1429, 1450, 1471, 1492, 1514, 1536, 1558, 1581, 1604, 1627,
1651, 1675, 1699, 1724, 1749, 1774, 1800, 1826, 1853, 1880,
1907, 1935, 1963, 1992, 2021, 2050, 2080, 2110, 2141, 2172,
2204, 2236, 2268, 2301, 2335, 2369, 2403, 2438, 2473, 2509,
2546, 2583, 2620, 2659, 2697, 2736, 2776, 2817, 2858, 2899,
2941, 2984, 3028, 3072, 3116, 3162, 3208, 3254, 3302, 3350,
3398, 3448, 3498, 3549, 3600, 3653, 3706, 3760, 3815, 3870,
3926, 3983, 4041, 4100, 4160, 4220, 4282, 4344, 4407, 4471,
4536, 4602, 4669, 4737, 4806, 4876, 4947, 5019, 5092, 5166,
5241, 5317, 5395, 5473, 5553, 5633, 5715, 5798, 5883, 5968,
6055, 6143, 6233, 6323, 6415, 6509, 6603, 6699, 6797, 6896,
6996, 7098, 7201, 7306, 7412, 7520, 7629, 7740, 7853, 7967,
8083, 8200, 8319, 8441, 8563, 8688, 8814, 8942, 9072, 9204,
9338, 9474, 9612, 9752, 9894, 10038, 10184, 10332, 10482, 10634,
10789, 10946, 11105, 11267, 11431, 11597, 11766, 11937, 12110, 12286,
12465, 12646, 12830, 13017, 13206, 13398, 13593, 13791, 13992, 14195,
14402, 14611, 14824, 15039, 15258, 15480, 15705, 15934, 16165, 16400,
16639, 16881, 17127, 17376, 17628, 17885, 18145, 18409, 18677, 18948,
19224, 19504, 19787, 20075, 20367, 20663, 20964, 21269, 21578, 21892,
22210, 22533, 22861, 23194, 23531, 23873, 24221, 24573, 24930, 25293,
25661, 26034, 26413, 26797, 27187, 27582, 27983, 28390, 28803, 29222,
29647, 30079, 30516, 30960, 31410, 31867, 32331, 32801, 33278, 33762,
34253, 34751, 35257, 35770, 36290, 36818, 37353, 37897, 38448, 39007,
39574, 40150, 40734, 41327, 41928, 42537, 43156, 43784, 44421, 45067,
45722, 46387, 47062, 47747, 48441, 49146, 49861, 50586, 51322, 52068,
52825, 53594, 54373, 55164, 55967, 56781, 57607, 58444, 59295, 60157,
61032, 61920, 62820, 63734, 64661, 65602, 66556, 67524, 68506, 69503,
70514, 71539, 72580, 73635, 74707, 75793, 76896, 78014, 79149, 80300,
81468, 82653, 83855, 85075, 86312, 87568, 88842, 90134, 91445, 92775,
94124, 95493, 96882, 98292, 99721, 101172, 102643, 104136, 105651, 107188,
108747, 110329, 111933, 113561, 115213, 116889, 118589, 120314, 122064, 123840,
125641, 127468, 129322, 131203, 133112, 135048, 137012, 139005, 141027, 143078,
145160, 147271, 149413, 151586, 153791, 156028, 158298, 160600, 162936, 165306,
167710, 170150, 172625, 175136, 177683, 180267, 182890, 185550, 188249, 190987,
193765, 196583, 199442, 202343, 205287, 208273, 211302, 214375, 217494, 220657,
223867, 227123, 230426, 233778, 237178, 240628, 244128, 247679, 251282, 254937,
258645, 262407, 266224, 270096, 274025, 278010, 282054, 286157, 290319, 294542,
298826, 303173, 307582, 312056, 316595, 321200, 325872, 330612, 335421, 340300,
345249, 350271, 355366, 360535, 365779, 371099, 376497, 381973, 387529, 393166,
398885, 404687, 410573, 416545, 422604, 428751, 434987, 441314, 447733, 454246,
460853, 467556, 474357, 481256, 488256, 495358, 502563, 509873, 517290, 524814,
532447, 540192, 548049, 556021, 564108, 572314, 580638, 589084, 597652, 606345,
615165, 624112, 633190, 642400, 651744, 661224, 670842, 680599, 690499, 700542,
710732, 721070, 731558, 742199, 752994, 763947, 775059, 786332, 797770, 809374,
821146, 833090, 845208, 857501, 869974, 882628, 895466, 908491, 921705, 935112,
948713, 962513, 976513, 990717, 1005127, 1019747, 1034579, 1049628, 1064895, 1080384,
1096099, 1112042, 1128217, 1144627, 1161276, 1178167, 1195304, 1212690, 1230329, 1248225,
1266381, 1284800, 1303488, 1322448, 1341683, 1361199, 1380998, 1401085, 1421464, 1442140,
1463116, 1484398, 1505989, 1527894, 1550118, 1572665, 1595540, 1618747, 1642292, 1666180,
1690415, 1715003, 1739948, 1765256, 1790933, 1816982, 1843411, 1870224, 1897427, 1925026,
1953026, 1981433, 2010254, 2039494, 2069159, 2099255, 2129790, 2160768, 2192197, 2224084,
2256434, 2289254, 2322552, 2356335, 2390608, 2425380, 2460658, 2496449, 2532761, 2569601,
2606977, 2644896, 2683367, 2722397, 2761996, 2802170, 2842928, 2884280, 2926232, 2968795,
3011978, 3055788, 3100235, 3145329, 3191079, 3237494, 3284585, 3332360, 3380831, 3430006,
3479896, 3530513, 3581865, 3633965, 3686822, 3740448, 3794854, 3850051, 3906052, 3962866,
4020508, 4078987, 4138318, 4198511, 4259580, 4321537, 4384395, 4448167, 4512867, 4578508,
4645104, 4712669, 4781216, 4850761, 4921317, 4992899, 5065522, 5139202, 5213953, 5289792,
5366734, 5444795, 5523991, 5604340, 5685857, 5768559, 5852465, 5937591, 6023955, 6111576,
6200470, 6290658, 6382158, 6474989, 6569170, 6664720, 6761661, 6860012, 6959793, 7061025,
7163730, 7267929, 7373644, 7480896, 7589708, 7700103, 7812103, 7925733, 8041015, 8157975,
8276635, 8397022, 8519159, 8643073, 8768789, 8896334, 9025735, 9157017, 9290209, 9425338,
9562433, 9701522, 9842633, 9985798, 10131045, 10278404, 10427907, 10579584, 10733468, 10889590,
11047982, 11208679, 11371713, 11537118, 11704930, 11875182, 12047910, 12223151, 12400941, 12581317,
12764316, 12949978, 13138339, 13329441, 13523322, 13720023, 13919586, 14122051, 14327461, 14535858,
14747287, 14961791, 15179416, 15400205, 15624207, 15851466, 16082031, 16315949, 16553270, 16794043,
17038318, 17286146, 17537579, 17792669, 18051469, 18314034, 18580418, 18850676, 19124865, 19403043,
19685267, 19971596, 20262089, 20556808, 20855814, 21159168, 21466936, 21779179, 22095965, 22417358,
22743426, 23074237, 23409859, 23750364, 24095821, 24446302, 24801882, 25162634, 25528633, 25899955,
26276679, 26658882, 27046644, 27440047, 27839171, 28244101, 28654921, 29071717, 29494575, 29923583,
30358832, 30800411, 31248413, 31702932, 32164062, 32631899, 33106541, 33588086, 34076636, 34572292,
35075158, 35585338, 36102938, 36628068, 37160835, 37701352, 38249731, 38806086, 39370534, 39943191,
40524178, 41113616, 41711627, 42318337, 42933871, 43558359, 44191930, 44834716, 45486852, 46148474,
46819719, 47500727, 48191641, 48892605, 49603764, 50325267, 51057265, 51799910, 52553357, 53317763,
54093288, 54880093, 55678342, 56488203, 57309842, 58143433, 58989149, 59847166, 60717663, 61600822,
62496826, 63405864, 64328123, 65263797, 66213081, 67176172, 68153272, 69144585, 70150316, 71170676,
72205877, 73256136, 74321671, 75402704, 76499462, 77612172, 78741067, 79886382, 81048356, 82227232,
83423255, 84636674, 85867743, 87116718, 88383859, 89669432, 90973704, 92296947, 93639437, 95001454,
96383282, 97785209, 99207528, 100650535, 102114530, 103599820, 105106714, 106635527, 108186576, 109760186,
111356685, 112976405, 114619685, 116286867, 117978298, 119694332, 121435326, 123201644, 124993653, 126811727,
128656246, 130527594, 132426162, 134352345, 136306545, 138289169, 140300631, 142341351, 144411754, 146512271,
148643341, 150805408, 152998923, 155224344, 157482134, 159772765, 162096713, 164454464, 166846509, 169273348,
171735485, 174233435, 176767719, 179338865, 181947408, 184593894, 187278874, 190002908, 192766564, 195570419,
198415056, 201301069, 204229061, 207199641, 210213429, 213271054, 216373153, 219520373, 222713370, 225952811,
229239370, 232573733, 235956596, 239388664, 242870652, 246403287, 249987305, 253623455, 257312493, 261055189,
264852324, 268704690, 272613090, 276578338, 280601263, 284682702, 288823507, 293024542, 297286682, 301610817,
305997847, 310448688, 314964268, 319545529, 324193426, 328908928, 333693018, 338546695, 343470970, 348466870,
353535438, 358677729, 363894817, 369187789, 374557749, 380005817, 385533129, 391140837, 396830112, 402602138,
408458121, 414399282, 420426858, 426542107, 432746305, 439040745, 445426740, 451905621, 458478740, 465147466,
471913192, 478777328, 485741304, 492806574, 499974611, 507246909, 514624985, 522110378, 529704648, 537409380,
545226179, 553156677, 561202526, 569365404, 577647015, 586049084, 594573365, 603221633, 611995694, 620897376,
629928537, 639091058, 648386852, 657817856, 667386037, 677093390
};
const uint32_t table_cos[] = { //8192 values (13 bits), result in 32 bits
4289967296, 4289966666, 4289964775, 4289961624, 4289957213, 4289951541, 4289944609, 4289936417, 4289926964, 4289916251,
4289904278, 4289891044, 4289876550, 4289860796, 4289843781, 4289825506, 4289805971, 4289785175, 4289763120, 4289739804,
4289715227, 4289689391, 4289662294, 4289633937, 4289604320, 4289573443, 4289541306, 4289507908, 4289473251, 4289437333,
4289400155, 4289361718, 4289322020, 4289281062, 4289238845, 4289195367, 4289150629, 4289104632, 4289057375, 4289008858,
4288959081, 4288908044, 4288855748, 4288802191, 4288747376, 4288691300, 4288633965, 4288575370, 4288515516, 4288454402,
4288392029, 4288328396, 4288263504, 4288197353, 4288129942, 4288061272, 4287991343, 4287920154, 4287847707, 4287774000,
4287699034, 4287622809, 4287545325, 4287466582, 4287386581, 4287305320, 4287222801, 4287139023, 4287053986, 4286967690,
4286880136, 4286791323, 4286701252, 4286609923, 4286517335, 4286423488, 4286328384, 4286232021, 4286134400, 4286035521,
4285935384, 4285833988, 4285731335, 4285627424, 4285522256, 4285415829, 4285308145, 4285199203, 4285089004, 4284977547,
4284864832, 4284750861, 4284635631, 4284519145, 4284401402, 4284282401, 4284162144, 4284040629, 4283917858, 4283793830,
4283668545, 4283542003, 4283414205, 4283285150, 4283154839, 4283023272, 4282890448, 4282756368, 4282621032, 4282484440,
4282346592, 4282207488, 4282067128, 4281925512, 4281782641, 4281638515, 4281493132, 4281346495, 4281198602, 4281049454,
4280899051, 4280747392, 4280594479, 4280440311, 4280284889, 4280128211, 4279970279, 4279811093, 4279650652, 4279488956,
4279326007, 4279161803, 4278996346, 4278829635, 4278661669, 4278492450, 4278321978, 4278150252, 4277977272, 4277803039,
4277627553, 4277450814, 4277272822, 4277093577, 4276913079, 4276731328, 4276548325, 4276364070, 4276178562, 4275991801,
4275803789, 4275614525, 4275424008, 4275232240, 4275039220, 4274844949, 4274649426, 4274452652, 4274254626, 4274055349,
4273854822, 4273653043, 4273450014, 4273245734, 4273040204, 4272833423, 4272625392, 4272416110, 4272205579, 4271993797,
4271780766, 4271566486, 4271350955, 4271134176, 4270916147, 4270696868, 4270476341, 4270254565, 4270031540, 4269807267,
4269581745, 4269354974, 4269126956, 4268897689, 4268667174, 4268435411, 4268202401, 4267968143, 4267732638, 4267495886,
4267257886, 4267018639, 4266778146, 4266536405, 4266293418, 4266049185, 4265803705, 4265556980, 4265309008, 4265059790,
4264809327, 4264557618, 4264304664, 4264050464, 4263795019, 4263538330, 4263280395, 4263021216, 4262760792, 4262499124,
4262236212, 4261972055, 4261706655, 4261440011, 4261172124, 4260902993, 4260632618, 4260361001, 4260088141, 4259814037,
4259538692, 4259262103, 4258984273, 4258705200, 4258424886, 4258143329, 4257860531, 4257576491, 4257291211, 4257004688,
4256716925, 4256427922, 4256137677, 4255846192, 4255553467, 4255259502, 4254964296, 4254667851, 4254370167, 4254071242,
4253771079, 4253469677, 4253167035, 4252863155, 4252558037, 4252251680, 4251944085, 4251635251, 4251325180, 4251013872,
4250701326, 4250387543, 4250072522, 4249756265, 4249438771, 4249120040, 4248800073, 4248478870, 4248156431, 4247832757,
4247507846, 4247181701, 4246854320, 4246525704, 4246195853, 4245864768, 4245532448, 4245198894, 4244864106, 4244528084,
4244190828, 4243852340, 4243512617, 4243171662, 4242829474, 4242486053, 4242141400, 4241795515, 4241448397, 4241100048,
4240750467, 4240399655, 4240047612, 4239694337, 4239339832, 4238984096, 4238627130, 4238268933, 4237909507, 4237548851,
4237186965, 4236823850, 4236459506, 4236093933, 4235727132, 4235359102, 4234989843, 4234619357, 4234247643, 4233874701,
4233500532, 4233125136, 4232748512, 4232370662, 4231991586, 4231611283, 4231229755, 4230847000, 4230463020, 4230077815,
4229691384, 4229303729, 4228914848, 4228524744, 4228133415, 4227740862, 4227347085, 4226952085, 4226555862, 4226158415,
4225759746, 4225359854, 4224958740, 4224556403, 4224152845, 4223748065, 4223342064, 4222934841, 4222526398, 4222116734,
4221705849, 4221293744, 4220880419, 4220465875, 4220050111, 4219633127, 4219214925, 4218795504, 4218374865, 4217953007,
4217529931, 4217105638, 4216680127, 4216253398, 4215825453, 4215396291, 4214965913, 4214534318, 4214101507, 4213667481,
4213232239, 4212795781, 4212358109, 4211919222, 4211479121, 4211037806, 4210595276, 4210151533, 4209706576, 4209260407,
4208813024, 4208364429, 4207914621, 4207463602, 4207011370, 4206557927, 4206103273, 4205647407, 4205190331, 4204732044,
4204272547, 4203811840, 4203349924, 4202886798, 4202422463, 4201956919, 4201490166, 4201022205, 4200553036, 4200082660,
4199611076, 4199138284, 4198664286, 4198189081, 4197712669, 4197235052, 4196756229, 4196276200, 4195794966, 4195312527,
4194828883, 4194344035, 4193857983, 4193370727, 4192882267, 4192392604, 4191901738, 4191409670, 4190916399, 4190421926,
4189926251, 4189429375, 4188931297, 4188432019, 4187931540, 4187429860, 4186926981, 4186422901, 4185917623, 4185411145,
4184903468, 4184394593, 4183884519, 4183373248, 4182860778, 4182347112, 4181832248, 4181316188, 4180798931, 4180280478,
4179760829, 4179239985, 4178717945, 4178194711, 4177670282, 4177144658, 4176617841, 4176089830, 4175560625, 4175030228,
4174498638, 4173965855, 4173431880, 4172896713, 4172360355, 4171822806, 4171284066, 4170744135, 4170203014, 4169660703,
4169117202, 4168572513, 4168026634, 4167479567, 4166931311, 4166381867, 4165831236, 4165279417, 4164726412, 4164172219,
4163616840, 4163060276, 4162502525, 4161943589, 4161383468, 4160822163, 4160259673, 4159695998, 4159131141, 4158565099,
4157997875, 4157429468, 4156859878, 4156289107, 4155717154, 4155144019, 4154569703, 4153994207, 4153417530, 4152839673,
4152260637, 4151680421, 4151099026, 4150516452, 4149932700, 4149347771, 4148761663, 4148174378, 4147585916, 4146996278,
4146405463, 4145813473, 4145220306, 4144625965, 4144030449, 4143433758, 4142835893, 4142236854, 4141636642, 4141035257,
4140432699, 4139828968, 4139224066, 4138617992, 4138010746, 4137402330, 4136792742, 4136181985, 4135570058, 4134956961,
4134342695, 4133727260, 4133110657, 4132492885, 4131873946, 4131253840, 4130632566, 4130010126, 4129386520, 4128761748,
4128135810, 4127508707, 4126880439, 4126251007, 4125620411, 4124988651, 4124355727, 4123721641, 4123086392, 4122449981,
4121812409, 4121173674, 4120533779, 4119892723, 4119250507, 4118607131, 4117962595, 4117316900, 4116670046, 4116022034,
4115372863, 4114722535, 4114071050, 4113418408, 4112764610, 4112109655, 4111453544, 4110796279, 4110137858, 4109478282,
4108817553, 4108155669, 4107492633, 4106828443, 4106163100, 4105496606, 4104828959, 4104160161, 4103490212, 4102819113,
4102146863, 4101473463, 4100798913, 4100123215, 4099446368, 4098768372, 4098089229, 4097408938, 4096727500, 4096044916,
4095361185, 4094676308, 4093990286, 4093303119, 4092614807, 4091925351, 4091234750, 4090543007, 4089850120, 4089156091,
4088460920, 4087764606, 4087067151, 4086368556, 4085668819, 4084967943, 4084265926, 4083562771, 4082858476, 4082153043,
4081446472, 4080738763, 4080029917, 4079319933, 4078608814, 4077896558, 4077183167, 4076468641, 4075752980, 4075036184,
4074318255, 4073599192, 4072878996, 4072157667, 4071435206, 4070711613, 4069986889, 4069261034, 4068534048, 4067805933,
4067076687, 4066346313, 4065614809, 4064882177, 4064148417, 4063413530, 4062677516, 4061940375, 4061202107, 4060462714,
4059722196, 4058980552, 4058237784, 4057493893, 4056748877, 4056002738, 4055255477, 4054507093, 4053757588, 4053006961,
4052255213, 4051502344, 4050748356, 4049993247, 4049237020, 4048479674, 4047721209, 4046961627, 4046200927, 4045439111,
4044676177, 4043912128, 4043146963, 4042380683, 4041613288, 4040844779, 4040075156, 4039304420, 4038532571, 4037759609,
4036985536, 4036210351, 4035434054, 4034656647, 4033878130, 4033098504, 4032317768, 4031535923, 4030752970, 4029968908,
4029183740, 4028397465, 4027610083, 4026821595, 4026032001, 4025241303, 4024449499, 4023656592, 4022862581, 4022067466,
4021271249, 4020473930, 4019675509, 4018875986, 4018075362, 4017273638, 4016470815, 4015666891, 4014861869, 4014055748,
4013248529, 4012440212, 4011630799, 4010820289, 4010008682, 4009195980, 4008382183, 4007567291, 4006751304, 4005934224,
4005116051, 4004296785, 4003476427, 4002654976, 4001832435, 4001008802, 4000184079, 3999358267, 3998531365, 3997703373,
3996874294, 3996044127, 3995212872, 3994380530, 3993547101, 3992712587, 3991876987, 3991040302, 3990202533, 3989363679,
3988523743, 3987682723, 3986840620, 3985997435, 3985153169, 3984307822, 3983461394, 3982613887, 3981765299, 3980915633,
3980064888, 3979213065, 3978360164, 3977506187, 3976651132, 3975795002, 3974937796, 3974079516, 3973220160, 3972359731,
3971498228, 3970635652, 3969772003, 3968907283, 3968041491, 3967174628, 3966306695, 3965437691, 3964567618, 3963696476,
3962824266, 3961950988, 3961076643, 3960201230, 3959324751, 3958447207, 3957568597, 3956688922, 3955808182, 3954926380,
3954043513, 3953159584, 3952274593, 3951388540, 3950501426, 3949613251, 3948724016, 3947833722, 3946942368, 3946049956,
3945156486, 3944261958, 3943366373, 3942469732, 3941572035, 3940673282, 3939773474, 3938872612, 3937970697, 3937067728,
3936163706, 3935258632, 3934352506, 3933445329, 3932537102, 3931627824, 3930717497, 3929806121, 3928893696, 3927980224,
3927065703, 3926150136, 3925233523, 3924315864, 3923397160, 3922477411, 3921556617, 3920634780, 3919711900, 3918787978,
3917863013, 3916937007, 3916009960, 3915081873, 3914152746, 3913222579, 3912291374, 3911359130, 3910425849, 3909491531,
3908556177, 3907619786, 3906682360, 3905743899, 3904804403, 3903863874, 3902922312, 3901979717, 3901036090, 3900091431,
3899145741, 3898199021, 3897251271, 3896302491, 3895352683, 3894401846, 3893449982, 3892497091, 3891543173, 3890588229,
3889632260, 3888675266, 3887717248, 3886758206, 3885798140, 3884837053, 3883874943, 3882911811, 3881947659, 3880982486,
3880016294, 3879049082, 3878080852, 3877111604, 3876141338, 3875170055, 3874197756, 3873224441, 3872250111, 3871274766,
3870298408, 3869321035, 3868342650, 3867363253, 3866382843, 3865401423, 3864418992, 3863435551, 3862451100, 3861465641,
3860479173, 3859491698, 3858503215, 3857513726, 3856523231, 3855531730, 3854539225, 3853545716, 3852551203, 3851555686,
3850559168, 3849561647, 3848563126, 3847563603, 3846563081, 3845561558, 3844559037, 3843555518, 3842551001, 3841545486,
3840538976, 3839531469, 3838522966, 3837513469, 3836502978, 3835491493, 3834479015, 3833465545, 3832451083, 3831435630,
3830419186, 3829401752, 3828383328, 3827363916, 3826343516, 3825322128, 3824299752, 3823276391, 3822252043, 3821226711,
3820200394, 3819173092, 3818144808, 3817115540, 3816085291, 3815054059, 3814021847, 3812988654, 3811954482, 3810919330,
3809883200, 3808846092, 3807808007, 3806768945, 3805728906, 3804687893, 3803645904, 3802602941, 3801559005, 3800514095,
3799468213, 3798421359, 3797373534, 3796324738, 3795274973, 3794224238, 3793172534, 3792119862, 3791066223, 3790011616,
3788956044, 3787899506, 3786842003, 3785783535, 3784724104, 3783663709, 3782602352, 3781540033, 3780476753, 3779412513,
3778347312, 3777281152, 3776214033, 3775145955, 3774076921, 3773006929, 3771935982, 3770864078, 3769791220, 3768717407,
3767642641, 3766566921, 3765490249, 3764412625, 3763334050, 3762254524, 3761174049, 3760092624, 3759010250, 3757926929,
3756842660, 3755757444, 3754671283, 3753584175, 3752496123, 3751407127, 3750317187, 3749226305, 3748134480, 3747041713,
3745948006, 3744853358, 3743757770, 3742661243, 3741563778, 3740465376, 3739366036, 3738265759, 3737164547, 3736062400,
3734959318, 3733855302, 3732750353, 3731644472, 3730537658, 3729429914, 3728321238, 3727211633, 3726101098, 3724989635,
3723877244, 3722763925, 3721649680, 3720534508, 3719418412, 3718301390, 3717183445, 3716064576, 3714944784, 3713824070,
3712702435, 3711579879, 3710456403, 3709332007, 3708206693, 3707080460, 3705953310, 3704825243, 3703696260, 3702566362,
3701435549, 3700303821, 3699171180, 3698037627, 3696903161, 3695767783, 3694631495, 3693494297, 3692356189, 3691217173,
3690077248, 3688936416, 3687794677, 3686652031, 3685508481, 3684364026, 3683218666, 3682072403, 3680925238, 3679777170,
3678628201, 3677478331, 3676327561, 3675175892, 3674023323, 3672869857, 3671715494, 3670560234, 3669404078, 3668247027,
3667089081, 3665930241, 3664770508, 3663609882, 3662448364, 3661285955, 3660122656, 3658958467, 3657793388, 3656627421,
3655460567, 3654292825, 3653124197, 3651954683, 3650784284, 3649613000, 3648440833, 3647267783, 3646093851, 3644919037,
3643743343, 3642566768, 3641389313, 3640210980, 3639031768, 3637851679, 3636670714, 3635488872, 3634306155, 3633122563,
3631938098, 3630752759, 3629566547, 3628379464, 3627191510, 3626002685, 3624812990, 3623622426, 3622430994, 3621238694,
3620045527, 3618851494, 3617656595, 3616460831, 3615264204, 3614066713, 3612868359, 3611669143, 3610469065, 3609268127,
3608066329, 3606863672, 3605660157, 3604455783, 3603250553, 3602044466, 3600837523, 3599629725, 3598421074, 3597211568,
3596001210, 3594790000, 3593577938, 3592365025, 3591151263, 3589936651, 3588721191, 3587504883, 3586287727, 3585069726,
3583850878, 3582631186, 3581410649, 3580189269, 3578967046, 3577743981, 3576520075, 3575295328, 3574069741, 3572843314,
3571616049, 3570387947, 3569159007, 3567929231, 3566698620, 3565467173, 3564234893, 3563001778, 3561767832, 3560533053,
3559297443, 3558061002, 3556823732, 3555585632, 3554346705, 3553106949, 3551866367, 3550624958, 3549382725, 3548139666,
3546895783, 3545651078, 3544405549, 3543159199, 3541912028, 3540664037, 3539415225, 3538165596, 3536915148, 3535663882,
3534411800, 3533158903, 3531905190, 3530650662, 3529395321, 3528139167, 3526882201, 3525624423, 3524365835, 3523106436,
3521846228, 3520585212, 3519323388, 3518060757, 3516797320, 3515533077, 3514268030, 3513002178, 3511735523, 3510468066,
3509199807, 3507930746, 3506660886, 3505390226, 3504118766, 3502846509, 3501573455, 3500299604, 3499024957, 3497749515,
3496473279, 3495196249, 3493918427, 3492639812, 3491360406, 3490080209, 3488799223, 3487517447, 3486234884, 3484951532,
3483667394, 3482382470, 3481096761, 3479810267, 3478522989, 3477234928, 3475946085, 3474656460, 3473366055, 3472074870,
3470782905, 3469490163, 3468196642, 3466902344, 3465607271, 3464311421, 3463014798, 3461717400, 3460419229, 3459120286,
3457820571, 3456520085, 3455218829, 3453916804, 3452614011, 3451310449, 3450006121, 3448701026, 3447395166, 3446088542,
3444781153, 3443473001, 3442164087, 3440854411, 3439543974, 3438232777, 3436920821, 3435608106, 3434294634, 3432980404,
3431665419, 3430349677, 3429033182, 3427715932, 3426397929, 3425079174, 3423759667, 3422439409, 3421118402, 3419796645,
3418474140, 3417150887, 3415826887, 3414502141, 3413176649, 3411850413, 3410523433, 3409195711, 3407867245, 3406538039,
3405208092, 3403877405, 3402545979, 3401213814, 3399880912, 3398547273, 3397212899, 3395877789, 3394541944, 3393205367,
3391868056, 3390530013, 3389191239, 3387851734, 3386511500, 3385170537, 3383828846, 3382486427, 3381143282, 3379799412,
3378454816, 3377109496, 3375763453, 3374416687, 3373069200, 3371720991, 3370372063, 3369022415, 3367672048, 3366320963,
3364969162, 3363616644, 3362263411, 3360909463, 3359554802, 3358199427, 3356843340, 3355486542, 3354129033, 3352770814,
3351411887, 3350052251, 3348691907, 3347330857, 3345969101, 3344606640, 3343243475, 3341879606, 3340515035, 3339149762,
3337783788, 3336417113, 3335049739, 3333681667, 3332312897, 3330943430, 3329573266, 3328202407, 3326830854, 3325458607,
3324085667, 3322712034, 3321337711, 3319962696, 3318586992, 3317210600, 3315833519, 3314455750, 3313077295, 3311698155,
3310318330, 3308937820, 3307556627, 3306174752, 3304792195, 3303408958, 3302025040, 3300640443, 3299255168, 3297869216,
3296482586, 3295095281, 3293707300, 3292318646, 3290929317, 3289539316, 3288148644, 3286757300, 3285365286, 3283972602,
3282579251, 3281185231, 3279790544, 3278395192, 3276999174, 3275602491, 3274205145, 3272807136, 3271408465, 3270009133,
3268609140, 3267208488, 3265807178, 3264405209, 3263002584, 3261599302, 3260195364, 3258790773, 3257385527, 3255979628,
3254573078, 3253165876, 3251758024, 3250349522, 3248940371, 3247530572, 3246120126, 3244709034, 3243297297, 3241884914,
3240471888, 3239058219, 3237643908, 3236228956, 3234813363, 3233397130, 3231980258, 3230562749, 3229144603, 3227725820,
3226306401, 3224886348, 3223465661, 3222044342, 3220622390, 3219199807, 3217776593, 3216352750, 3214928277, 3213503177,
3212077450, 3210651097, 3209224118, 3207796515, 3206368287, 3204939437, 3203509965, 3202079872, 3200649158, 3199217824,
3197785872, 3196353302, 3194920115, 3193486312, 3192051894, 3190616861, 3189181214, 3187744955, 3186308083, 3184870601,
3183432508, 3181993806, 3180554495, 3179114577, 3177674051, 3176232920, 3174791183, 3173348842, 3171905898, 3170462351,
3169018202, 3167573452, 3166128102, 3164682153, 3163235605, 3161788460, 3160340719, 3158892381, 3157443448, 3155993922,
3154543802, 3153093089, 3151641785, 3150189890, 3148737406, 3147284332, 3145830671, 3144376421, 3142921586, 3141466165,
3140010159, 3138553569, 3137096397, 3135638642, 3134180305, 3132721389, 3131261893, 3129801818, 3128341165, 3126879935,
3125418129, 3123955748, 3122492792, 3121029263, 3119565161, 3118100487, 3116635242, 3115169427, 3113703043, 3112236090,
3110768570, 3109300483, 3107831830, 3106362613, 3104892831, 3103422486, 3101951579, 3100480110, 3099008080, 3097535491,
3096062343, 3094588637, 3093114374, 3091639554, 3090164179, 3088688250, 3087211767, 3085734731, 3084257143, 3082779004,
3081300315, 3079821076, 3078341289, 3076860954, 3075380073, 3073898646, 3072416673, 3070934157, 3069451098, 3067967496,
3066483352, 3064998668, 3063513444, 3062027682, 3060541381, 3059054543, 3057567169, 3056079260, 3054590816, 3053101838,
3051612328, 3050122285, 3048631712, 3047140609, 3045648976, 3044156815, 3042664127, 3041170912, 3039677171, 3038182905,
3036688116, 3035192803, 3033696968, 3032200612, 3030703735, 3029206339, 3027708424, 3026209991, 3024711041, 3023211576,
3021711595, 3020211099, 3018710091, 3017208570, 3015706537, 3014203993, 3012700940, 3011197377, 3009693307, 3008188729,
3006683645, 3005178056, 3003671962, 3002165364, 3000658263, 2999150661, 2997642557, 2996133954, 2994624851, 2993115250,
2991605151, 2990094556, 2988583465, 2987071880, 2985559800, 2984047227, 2982534163, 2981020607, 2979506560, 2977992025,
2976477000, 2974961488, 2973445489, 2971929005, 2970412035, 2968894581, 2967376644, 2965858225, 2964339324, 2962819943,
2961300082, 2959779742, 2958258925, 2956737630, 2955215860, 2953693614, 2952170894, 2950647700, 2949124035, 2947599897,
2946075289, 2944550211, 2943024664, 2941498649, 2939972168, 2938445219, 2936917806, 2935389928, 2933861587, 2932332783,
2930803517, 2929273791, 2927743604, 2926212959, 2924681856, 2923150295, 2921618278, 2920085806, 2918552879, 2917019498,
2915485665, 2913951380, 2912416644, 2910881458, 2909345823, 2907809740, 2906273210, 2904736233, 2903198811, 2901660944,
2900122634, 2898583880, 2897044685, 2895505049, 2893964973, 2892424458, 2890883504, 2889342114, 2887800286, 2886258024,
2884715326, 2883172195, 2881628632, 2880084636, 2878540209, 2876995353, 2875450067, 2873904353, 2872358211, 2870811643,
2869264650, 2867717232, 2866169390, 2864621126, 2863072440, 2861523332, 2859973805, 2858423859, 2856873494, 2855322712,
2853771513, 2852219899, 2850667871, 2849115429, 2847562574, 2846009307, 2844455629, 2842901542, 2841347045, 2839792140,
2838236828, 2836681109, 2835124985, 2833568457, 2832011525, 2830454190, 2828896453, 2827338316, 2825779778, 2824220842,
2822661507, 2821101775, 2819541647, 2817981124, 2816420206, 2814858895, 2813297191, 2811735096, 2810172609, 2808609733,
2807046468, 2805482815, 2803918774, 2802354348, 2800789537, 2799224341, 2797658761, 2796092799, 2794526456, 2792959732,
2791392628, 2789825146, 2788257285, 2786689048, 2785120435, 2783551446, 2781982083, 2780412347, 2778842239, 2777271760,
2775700909, 2774129690, 2772558101, 2770986145, 2769413822, 2767841134, 2766268080, 2764694662, 2763120881, 2761546738,
2759972234, 2758397370, 2756822146, 2755246563, 2753670624, 2752094327, 2750517675, 2748940668, 2747363307, 2745785594,
2744207528, 2742629112, 2741050345, 2739471229, 2737891765, 2736311953, 2734731795, 2733151292, 2731570444, 2729989253,
2728407719, 2726825843, 2725243626, 2723661069, 2722078174, 2720494940, 2718911370, 2717327463, 2715743221, 2714158644,
2712573735, 2710988493, 2709402919, 2707817015, 2706230781, 2704644219, 2703057328, 2701470111, 2699882568, 2698294700,
2696706508, 2695117993, 2693529156, 2691939998, 2690350519, 2688760721, 2687170604, 2685580170, 2683989420, 2682398354,
2680806973, 2679215278, 2677623271, 2676030952, 2674438321, 2672845381, 2671252132, 2669658575, 2668064710, 2666470539,
2664876063, 2663281283, 2661686199, 2660090813, 2658495125, 2656899136, 2655302848, 2653706261, 2652109376, 2650512195,
2648914717, 2647316945, 2645718878, 2644120519, 2642521867, 2640922924, 2639323690, 2637724168, 2636124357, 2634524258,
2632923873, 2631323203, 2629722248, 2628121009, 2626519487, 2624917684, 2623315599, 2621713235, 2620110592, 2618507671,
2616904472, 2615300998, 2613697248, 2612093224, 2610488927, 2608884357, 2607279516, 2605674405, 2604069024, 2602463374,
2600857457, 2599251273, 2597644823, 2596038108, 2594431130, 2592823888, 2591216385, 2589608620, 2588000596, 2586392312,
2584783770, 2583174971, 2581565916, 2579956605, 2578347040, 2576737221, 2575127150, 2573516827, 2571906254, 2570295431,
2568684359, 2567073039, 2565461473, 2563849661, 2562237603, 2560625302, 2559012758, 2557399971, 2555786944, 2554173676,
2552560169, 2550946424, 2549332441, 2547718222, 2546103768, 2544489079, 2542874157, 2541259002, 2539643615, 2538027997,
2536412150, 2534796074, 2533179771, 2531563240, 2529946483, 2528329502, 2526712296, 2525094867, 2523477216, 2521859344,
2520241252, 2518622940, 2517004410, 2515385663, 2513766699, 2512147520, 2510528126, 2508908519, 2507288699, 2505668667,
2504048425, 2502427973, 2500807312, 2499186443, 2497565368, 2495944086, 2494322600, 2492700909, 2491079015, 2489456919,
2487834622, 2486212125, 2484589429, 2482966534, 2481343442, 2479720153, 2478096669, 2476472991, 2474849119, 2473225054,
2471600798, 2469976351, 2468351715, 2466726889, 2465101876, 2463476676, 2461851290, 2460225719, 2458599965, 2456974027,
2455347907, 2453721606, 2452095125, 2450468464, 2448841626, 2447214610, 2445587418, 2443960050, 2442332508, 2440704793,
2439076905, 2437448845, 2435820615, 2434192216, 2432563647, 2430934911, 2429306009, 2427676940, 2426047707, 2424418309,
2422788749, 2421159027, 2419529144, 2417899101, 2416268899, 2414638538, 2413008021, 2411377347, 2409746518, 2408115535,
2406484398, 2404853109, 2403221669, 2401590078, 2399958338, 2398326449, 2396694413, 2395062230, 2393429901, 2391797428,
2390164811, 2388532051, 2386899149, 2385266107, 2383632925, 2381999604, 2380366144, 2378732548, 2377098816, 2375464949,
2373830947, 2372196813, 2370562546, 2368928148, 2367293620, 2365658962, 2364024176, 2362389263, 2360754223, 2359119058,
2357483768, 2355848355, 2354212819, 2352577162, 2350941384, 2349305486, 2347669470, 2346033335, 2344397084, 2342760718,
2341124236, 2339487640, 2337850931, 2336214111, 2334577179, 2332940138, 2331302987, 2329665728, 2328028362, 2326390889,
2324753312, 2323115630, 2321477845, 2319839957, 2318201968, 2316563879, 2314925690, 2313287403, 2311649018, 2310010537,
2308371960, 2306733288, 2305094523, 2303455665, 2301816715, 2300177674, 2298538544, 2296899324, 2295260017, 2293620623,
2291981143, 2290341578, 2288701929, 2287062196, 2285422382, 2283782486, 2282142511, 2280502456, 2278862323, 2277222112,
2275581826, 2273941464, 2272301027, 2270660517, 2269019935, 2267379281, 2265738556, 2264097762, 2262456900, 2260815970,
2259174973, 2257533910, 2255892783, 2254251592, 2252610338, 2250969022, 2249327646, 2247686209, 2246044713, 2244403160,
2242761550, 2241119883, 2239478161, 2237836386, 2236194557, 2234552676, 2232910743, 2231268761, 2229626729, 2227984649,
2226342521, 2224700347, 2223058128, 2221415864, 2219773557, 2218131207, 2216488816, 2214846384, 2213203912, 2211561402,
2209918854, 2208276269, 2206633649, 2204990994, 2203348305, 2201705583, 2200062829, 2198420044, 2196777229, 2195134386,
2193491514, 2191848615, 2190205690, 2188562740, 2186919766, 2185276768, 2183633749, 2181990708, 2180347647, 2178704566,
2177061467, 2175418351, 2173775218, 2172132070, 2170488907, 2168845731, 2167202542, 2165559342, 2163916131, 2162272910,
2160629681, 2158986443, 2157343199, 2155699950, 2154056695, 2152413437, 2150770175, 2149126912, 2147483648, 2145840384,
2144197121, 2142553859, 2140910601, 2139267346, 2137624097, 2135980853, 2134337615, 2132694386, 2131051165, 2129407954,
2127764754, 2126121565, 2124478389, 2122835226, 2121192078, 2119548945, 2117905829, 2116262730, 2114619649, 2112976588,
2111333547, 2109690528, 2108047530, 2106404556, 2104761606, 2103118681, 2101475782, 2099832910, 2098190067, 2096547252,
2094904467, 2093261713, 2091618991, 2089976302, 2088333647, 2086691027, 2085048442, 2083405894, 2081763384, 2080120912,
2078478480, 2076836089, 2075193739, 2073551432, 2071909168, 2070266949, 2068624775, 2066982647, 2065340567, 2063698535,
2062056553, 2060414620, 2058772739, 2057130910, 2055489135, 2053847413, 2052205746, 2050564136, 2048922583, 2047281087,
2045639650, 2043998274, 2042356958, 2040715704, 2039074513, 2037433386, 2035792323, 2034151326, 2032510396, 2030869534,
2029228740, 2027588015, 2025947361, 2024306779, 2022666269, 2021025832, 2019385470, 2017745184, 2016104973, 2014464840,
2012824785, 2011184810, 2009544914, 2007905100, 2006265367, 2004625718, 2002986153, 2001346673, 1999707279, 1998067972,
1996428752, 1994789622, 1993150581, 1991511631, 1989872773, 1988234008, 1986595336, 1984956759, 1983318278, 1981679893,
1980041606, 1978403417, 1976765328, 1975127339, 1973489451, 1971851666, 1970213984, 1968576407, 1966938934, 1965301568,
1963664309, 1962027158, 1960390117, 1958753185, 1957116365, 1955479656, 1953843060, 1952206578, 1950570212, 1948933961,
1947297826, 1945661810, 1944025912, 1942390134, 1940754477, 1939118941, 1937483528, 1935848238, 1934213073, 1932578033,
1930943120, 1929308334, 1927673676, 1926039148, 1924404750, 1922770483, 1921136349, 1919502347, 1917868480, 1916234748,
1914601152, 1912967692, 1911334371, 1909701189, 1908068147, 1906435245, 1904802485, 1903169868, 1901537395, 1899905066,
1898272883, 1896640847, 1895008958, 1893377218, 1891745627, 1890114187, 1888482898, 1886851761, 1885220778, 1883589949,
1881959275, 1880328758, 1878698397, 1877068195, 1875438152, 1873808269, 1872178547, 1870548987, 1868919589, 1867290356,
1865661287, 1864032385, 1862403649, 1860775080, 1859146681, 1857518451, 1855890391, 1854262503, 1852634788, 1851007246,
1849379878, 1847752686, 1846125670, 1844498832, 1842872171, 1841245690, 1839619389, 1837993269, 1836367331, 1834741577,
1833116006, 1831490620, 1829865420, 1828240407, 1826615581, 1824990945, 1823366498, 1821742242, 1820118177, 1818494305,
1816870627, 1815247143, 1813623854, 1812000762, 1810377867, 1808755171, 1807132674, 1805510377, 1803888281, 1802266387,
1800644696, 1799023210, 1797401928, 1795780853, 1794159984, 1792539323, 1790918871, 1789298629, 1787678597, 1786058777,
1784439170, 1782819776, 1781200597, 1779581633, 1777962886, 1776344356, 1774726044, 1773107952, 1771490080, 1769872429,
1768255000, 1766637794, 1765020813, 1763404056, 1761787525, 1760171222, 1758555146, 1756939299, 1755323681, 1753708294,
1752093139, 1750478217, 1748863528, 1747249074, 1745634855, 1744020872, 1742407127, 1740793620, 1739180352, 1737567325,
1735954538, 1734341994, 1732729693, 1731117635, 1729505823, 1727894257, 1726282937, 1724671865, 1723061042, 1721450469,
1719840146, 1718230075, 1716620256, 1715010691, 1713401380, 1711792325, 1710183526, 1708574984, 1706966700, 1705358676,
1703750911, 1702143408, 1700536166, 1698929188, 1697322473, 1695716023, 1694109839, 1692503922, 1690898272, 1689292891,
1687687780, 1686082939, 1684478369, 1682874072, 1681270048, 1679666298, 1678062824, 1676459625, 1674856704, 1673254061,
1671651697, 1670049612, 1668447809, 1666846287, 1665245048, 1663644093, 1662043423, 1660443038, 1658842939, 1657243128,
1655643606, 1654044372, 1652445429, 1650846777, 1649248418, 1647650351, 1646052579, 1644455101, 1642857920, 1641261035,
1639664448, 1638068160, 1636472171, 1634876483, 1633281097, 1631686013, 1630091233, 1628496757, 1626902586, 1625308721,
1623715164, 1622121915, 1620528975, 1618936344, 1617344025, 1615752018, 1614160323, 1612568942, 1610977876, 1609387126,
1607796692, 1606206575, 1604616777, 1603027298, 1601438140, 1599849303, 1598260788, 1596672596, 1595084728, 1593497185,
1591909968, 1590323077, 1588736515, 1587150281, 1585564377, 1583978803, 1582393561, 1580808652, 1579224075, 1577639833,
1576055926, 1574472356, 1572889122, 1571306227, 1569723670, 1568141453, 1566559577, 1564978043, 1563396852, 1561816004,
1560235501, 1558655343, 1557075531, 1555496067, 1553916951, 1552338184, 1550759768, 1549181702, 1547603989, 1546026628,
1544449621, 1542872969, 1541296672, 1539720733, 1538145150, 1536569926, 1534995062, 1533420558, 1531846415, 1530272634,
1528699216, 1527126162, 1525553474, 1523981151, 1522409195, 1520837606, 1519266387, 1517695536, 1516125057, 1514554949,
1512985213, 1511415850, 1509846861, 1508278248, 1506710011, 1505142150, 1503574668, 1502007564, 1500440840, 1498874497,
1497308535, 1495742955, 1494177759, 1492612948, 1491048522, 1489484481, 1487920828, 1486357563, 1484794687, 1483232200,
1481670105, 1480108401, 1478547090, 1476986172, 1475425649, 1473865521, 1472305789, 1470746454, 1469187518, 1467628980,
1466070843, 1464513106, 1462955771, 1461398839, 1459842311, 1458286187, 1456730468, 1455175156, 1453620251, 1452065754,
1450511667, 1448957989, 1447404722, 1445851867, 1444299425, 1442747397, 1441195783, 1439644584, 1438093802, 1436543437,
1434993491, 1433443964, 1431894856, 1430346170, 1428797906, 1427250064, 1425702646, 1424155653, 1422609085, 1421062943,
1419517229, 1417971943, 1416427087, 1414882660, 1413338664, 1411795101, 1410251970, 1408709272, 1407167010, 1405625182,
1404083792, 1402542838, 1401002323, 1399462247, 1397922611, 1396383416, 1394844662, 1393306352, 1391768485, 1390231063,
1388694086, 1387157556, 1385621473, 1384085838, 1382550652, 1381015916, 1379481631, 1377947798, 1376414417, 1374881490,
1373349018, 1371817001, 1370285440, 1368754337, 1367223692, 1365693505, 1364163779, 1362634513, 1361105709, 1359577368,
1358049490, 1356522077, 1354995128, 1353468647, 1351942632, 1350417085, 1348892007, 1347367399, 1345843261, 1344319596,
1342796402, 1341273682, 1339751436, 1338229666, 1336708371, 1335187554, 1333667214, 1332147353, 1330627972, 1329109071,
1327590652, 1326072715, 1324555261, 1323038291, 1321521807, 1320005808, 1318490296, 1316975271, 1315460736, 1313946689,
1312433133, 1310920069, 1309407496, 1307895416, 1306383831, 1304872740, 1303362145, 1301852046, 1300342445, 1298833342,
1297324739, 1295816635, 1294309033, 1292801932, 1291295334, 1289789240, 1288283651, 1286778567, 1285273989, 1283769919,
1282266356, 1280763303, 1279260759, 1277758726, 1276257205, 1274756197, 1273255701, 1271755720, 1270256255, 1268757305,
1267258872, 1265760957, 1264263561, 1262766684, 1261270328, 1259774493, 1258279180, 1256784391, 1255290125, 1253796384,
1252303169, 1250810481, 1249318320, 1247826687, 1246335584, 1244845011, 1243354968, 1241865458, 1240376480, 1238888036,
1237400127, 1235912753, 1234425915, 1232939614, 1231453852, 1229968628, 1228483944, 1226999800, 1225516198, 1224033139,
1222550623, 1221068650, 1219587223, 1218106342, 1216626007, 1215146220, 1213666981, 1212188292, 1210710153, 1209232565,
1207755529, 1206279046, 1204803117, 1203327742, 1201852922, 1200378659, 1198904953, 1197431805, 1195959216, 1194487186,
1193015717, 1191544810, 1190074465, 1188604683, 1187135466, 1185666813, 1184198726, 1182731206, 1181264253, 1179797869,
1178332054, 1176866809, 1175402135, 1173938033, 1172474504, 1171011548, 1169549167, 1168087361, 1166626131, 1165165478,
1163705403, 1162245907, 1160786991, 1159328654, 1157870899, 1156413727, 1154957137, 1153501131, 1152045710, 1150590875,
1149136625, 1147682964, 1146229890, 1144777406, 1143325511, 1141874207, 1140423494, 1138973374, 1137523848, 1136074915,
1134626577, 1133178836, 1131731691, 1130285143, 1128839194, 1127393844, 1125949094, 1124504945, 1123061398, 1121618454,
1120176113, 1118734376, 1117293245, 1115852719, 1114412801, 1112973490, 1111534788, 1110096695, 1108659213, 1107222341,
1105786082, 1104350435, 1102915402, 1101480984, 1100047181, 1098613994, 1097181424, 1095749472, 1094318138, 1092887424,
1091457331, 1090027859, 1088599009, 1087170781, 1085743178, 1084316199, 1082889846, 1081464119, 1080039019, 1078614546,
1077190703, 1075767489, 1074344906, 1072922954, 1071501635, 1070080948, 1068660895, 1067241476, 1065822693, 1064404547,
1062987038, 1061570166, 1060153933, 1058738340, 1057323388, 1055909077, 1054495408, 1053082382, 1051669999, 1050258262,
1048847170, 1047436724, 1046026925, 1044617774, 1043209272, 1041801420, 1040394218, 1038987668, 1037581769, 1036176523,
1034771932, 1033367994, 1031964712, 1030562087, 1029160118, 1027758808, 1026358156, 1024958163, 1023558831, 1022160160,
1020762151, 1019364805, 1017968122, 1016572104, 1015176752, 1013782065, 1012388045, 1010994694, 1009602010, 1008209996,
1006818652, 1005427980, 1004037979, 1002648650, 1001259996, 999872015, 998484710, 997098080, 995712128, 994326853,
992942256, 991558338, 990175101, 988792544, 987410669, 986029476, 984648966, 983269141, 981890001, 980511546,
979133777, 977756696, 976380304, 975004600, 973629585, 972255262, 970881629, 969508689, 968136442, 966764889,
965394030, 964023866, 962654399, 961285629, 959917557, 958550183, 957183508, 955817534, 954452261, 953087690,
951723821, 950360656, 948998195, 947636439, 946275389, 944915045, 943555409, 942196482, 940838263, 939480754,
938123956, 936767869, 935412494, 934057833, 932703885, 931350652, 929998134, 928646333, 927295248, 925944881,
924595233, 923246305, 921898096, 920550609, 919203843, 917857800, 916512480, 915167884, 913824014, 912480869,
911138450, 909796759, 908455796, 907115562, 905776057, 904437283, 903099240, 901761929, 900425352, 899089507,
897754397, 896420023, 895086384, 893753482, 892421317, 891089891, 889759204, 888429257, 887100051, 885771585,
884443863, 883116883, 881790647, 880465155, 879140409, 877816409, 876493156, 875170651, 873848894, 872527887,
871207629, 869888122, 868569367, 867251364, 865934114, 864617619, 863301877, 861986892, 860672662, 859359190,
858046475, 856734519, 855423322, 854112885, 852803209, 851494295, 850186143, 848878754, 847572130, 846266270,
844961175, 843656847, 842353285, 841050492, 839748467, 838447211, 837146725, 835847010, 834548067, 833249896,
831952498, 830655875, 829360025, 828064952, 826770654, 825477133, 824184391, 822892426, 821601241, 820310836,
819021211, 817732368, 816444307, 815157029, 813870535, 812584826, 811299902, 810015764, 808732412, 807449849,
806168073, 804887087, 803606890, 802327484, 801048869, 799771047, 798494017, 797217781, 795942339, 794667692,
793393841, 792120787, 790848530, 789577070, 788306410, 787036550, 785767489, 784499230, 783231773, 781965118,
780699266, 779434219, 778169976, 776906539, 775643908, 774382084, 773121068, 771860860, 770601461, 769342873,
768085095, 766828129, 765571975, 764316634, 763062106, 761808393, 760555496, 759303414, 758052148, 756801700,
755552071, 754303259, 753055268, 751808097, 750561747, 749316218, 748071513, 746827630, 745584571, 744342338,
743100929, 741860347, 740620591, 739381664, 738143564, 736906294, 735669853, 734434243, 733199464, 731965518,
730732403, 729500123, 728268676, 727038065, 725808289, 724579349, 723351247, 722123982, 720897555, 719671968,
718447221, 717223315, 716000250, 714778027, 713556647, 712336110, 711116418, 709897570, 708679569, 707462413,
706246105, 705030645, 703816033, 702602271, 701389358, 700177296, 698966086, 697755728, 696546222, 695337571,
694129773, 692922830, 691716743, 690511513, 689307139, 688103624, 686900967, 685699169, 684498231, 683298153,
682098937, 680900583, 679703092, 678506465, 677310701, 676115802, 674921769, 673728602, 672536302, 671344870,
670154306, 668964611, 667775786, 666587832, 665400749, 664214537, 663029198, 661844733, 660661141, 659478424,
658296582, 657115617, 655935528, 654756316, 653577983, 652400528, 651223953, 650048259, 648873445, 647699513,
646526463, 645354296, 644183012, 643012613, 641843099, 640674471, 639506729, 638339875, 637173908, 636008829,
634844640, 633681341, 632518932, 631357414, 630196788, 629037055, 627878215, 626720269, 625563218, 624407062,
623251802, 622097439, 620943973, 619791404, 618639735, 617488965, 616339095, 615190126, 614042058, 612894893,
611748630, 610603270, 609458815, 608315265, 607172619, 606030880, 604890048, 603750123, 602611107, 601472999,
600335801, 599199513, 598064135, 596929669, 595796116, 594663475, 593531747, 592400934, 591271036, 590142053,
589013986, 587886836, 586760603, 585635289, 584510893, 583387417, 582264861, 581143226, 580022512, 578902720,
577783851, 576665906, 575548884, 574432788, 573317616, 572203371, 571090052, 569977661, 568866198, 567755663,
566646058, 565537382, 564429638, 563322824, 562216943, 561111994, 560007978, 558904896, 557802749, 556701537,
555601260, 554501920, 553403518, 552306053, 551209526, 550113938, 549019290, 547925583, 546832816, 545740991,
544650109, 543560169, 542471173, 541383121, 540296013, 539209852, 538124636, 537040367, 535957046, 534874672,
533793247, 532712772, 531633246, 530554671, 529477047, 528400375, 527324655, 526249889, 525176076, 524103218,
523031314, 521960367, 520890375, 519821341, 518753263, 517686144, 516619984, 515554783, 514490543, 513427263,
512364944, 511303587, 510243192, 509183761, 508125293, 507067790, 506011252, 504955680, 503901073, 502847434,
501794762, 500743058, 499692323, 498642558, 497593762, 496545937, 495499083, 494453201, 493408291, 492364355,
491321392, 490279403, 489238390, 488198351, 487159289, 486121204, 485084096, 484047966, 483012814, 481978642,
480945449, 479913237, 478882005, 477851756, 476822488, 475794204, 474766902, 473740585, 472715253, 471690905,
470667544, 469645168, 468623780, 467603380, 466583968, 465565544, 464548110, 463531666, 462516213, 461501751,
460488281, 459475803, 458464318, 457453827, 456444330, 455435827, 454428320, 453421810, 452416295, 451411778,
450408259, 449405738, 448404215, 447403693, 446404170, 445405649, 444408128, 443411610, 442416093, 441421580,
440428071, 439435566, 438444065, 437453570, 436464081, 435475598, 434488123, 433501655, 432516196, 431531745,
430548304, 429565873, 428584453, 427604043, 426624646, 425646261, 424668888, 423692530, 422717185, 421742855,
420769540, 419797241, 418825958, 417855692, 416886444, 415918214, 414951002, 413984810, 413019637, 412055485,
411092353, 410130243, 409169156, 408209090, 407250048, 406292030, 405335036, 404379067, 403424123, 402470205,
401517314, 400565450, 399614613, 398664805, 397716025, 396768275, 395821555, 394875865, 393931206, 392987579,
392044984, 391103422, 390162893, 389223397, 388284936, 387347510, 386411119, 385475765, 384541447, 383608166,
382675922, 381744717, 380814550, 379885423, 378957336, 378030289, 377104283, 376179318, 375255396, 374332516,
373410679, 372489885, 371570136, 370651432, 369733773, 368817160, 367901593, 366987072, 366073600, 365161175,
364249799, 363339472, 362430194, 361521967, 360614790, 359708664, 358803590, 357899568, 356996599, 356094684,
355193822, 354294014, 353395261, 352497564, 351600923, 350705338, 349810810, 348917340, 348024928, 347133574,
346243280, 345354045, 344465870, 343578756, 342692703, 341807712, 340923783, 340040916, 339159114, 338278374,
337398699, 336520089, 335642545, 334766066, 333890653, 333016308, 332143030, 331270820, 330399678, 329529605,
328660601, 327792668, 326925805, 326060013, 325195293, 324331644, 323469068, 322607565, 321747136, 320887780,
320029500, 319172294, 318316164, 317461109, 316607132, 315754231, 314902408, 314051663, 313201997, 312353409,
311505902, 310659474, 309814127, 308969861, 308126676, 307284573, 306443553, 305603617, 304764763, 303926994,
303090309, 302254709, 301420195, 300586766, 299754424, 298923169, 298093002, 297263923, 296435931, 295609029,
294783217, 293958494, 293134861, 292312320, 291490869, 290670511, 289851245, 289033072, 288215992, 287400005,
286585113, 285771316, 284958614, 284147007, 283336497, 282527084, 281718767, 280911548, 280105427, 279300405,
278496481, 277693658, 276891934, 276091310, 275291787, 274493366, 273696047, 272899830, 272104715, 271310704,
270517797, 269725993, 268935295, 268145701, 267357213, 266569831, 265783556, 264998388, 264214326, 263431373,
262649528, 261868792, 261089166, 260310649, 259533242, 258756945, 257981760, 257207687, 256434725, 255662876,
254892140, 254122517, 253354008, 252586613, 251820333, 251055168, 250291119, 249528185, 248766369, 248005669,
247246087, 246487622, 245730276, 244974049, 244218940, 243464952, 242712083, 241960335, 241209708, 240460203,
239711819, 238964558, 238218419, 237473403, 236729512, 235986744, 235245100, 234504582, 233765189, 233026921,
232289780, 231553766, 230818879, 230085119, 229352487, 228620983, 227890609, 227161363, 226433248, 225706262,
224980407, 224255683, 223532090, 222809629, 222088300, 221368104, 220649041, 219931112, 219214316, 218498655,
217784129, 217070738, 216358482, 215647363, 214937379, 214228533, 213520824, 212814253, 212108820, 211404525,
210701370, 209999353, 209298477, 208598740, 207900145, 207202690, 206506376, 205811205, 205117176, 204424289,
203732546, 203041945, 202352489, 201664177, 200977010, 200290988, 199606111, 198922380, 198239796, 197558358,
196878067, 196198924, 195520928, 194844081, 194168383, 193493833, 192820433, 192148183, 191477084, 190807135,
190138337, 189470690, 188804196, 188138853, 187474663, 186811627, 186149743, 185489014, 184829438, 184171017,
183513752, 182857641, 182202686, 181548888, 180896246, 180244761, 179594433, 178945262, 178297250, 177650396,
177004701, 176360165, 175716789, 175074573, 174433517, 173793622, 173154887, 172517315, 171880904, 171245655,
170611569, 169978645, 169346885, 168716289, 168086857, 167458589, 166831486, 166205548, 165580776, 164957170,
164334730, 163713456, 163093350, 162474411, 161856639, 161240036, 160624601, 160010335, 159397238, 158785311,
158174554, 157564966, 156956550, 156349304, 155743230, 155138328, 154534597, 153932039, 153330654, 152730442,
152131403, 151533538, 150936847, 150341331, 149746990, 149153823, 148561833, 147971018, 147381380, 146792918,
146205633, 145619525, 145034596, 144450844, 143868270, 143286875, 142706659, 142127623, 141549766, 140973089,
140397593, 139823277, 139250142, 138678189, 138107418, 137537828, 136969421, 136402197, 135836155, 135271298,
134707623, 134145133, 133583828, 133023707, 132464771, 131907020, 131350456, 130795077, 130240884, 129687879,
129136060, 128585429, 128035985, 127487729, 126940662, 126394783, 125850094, 125306593, 124764282, 124223161,
123683230, 123144490, 122606941, 122070583, 121535416, 121001441, 120468658, 119937068, 119406671, 118877466,
118349455, 117822638, 117297014, 116772585, 116249351, 115727311, 115206467, 114686818, 114168365, 113651108,
113135048, 112620184, 112106518, 111594048, 111082777, 110572703, 110063828, 109556151, 109049673, 108544395,
108040315, 107537436, 107035756, 106535277, 106035999, 105537921, 105041045, 104545370, 104050897, 103557626,
103065558, 102574692, 102085029, 101596569, 101109313, 100623261, 100138413, 99654769, 99172330, 98691096,
98211067, 97732244, 97254627, 96778215, 96303010, 95829012, 95356220, 94884636, 94414260, 93945091,
93477130, 93010377, 92544833, 92080498, 91617372, 91155456, 90694749, 90235252, 89776965, 89319889,
88864023, 88409369, 87955926, 87503694, 87052675, 86602867, 86154272, 85706889, 85260720, 84815763,
84372020, 83929490, 83488175, 83048074, 82609187, 82171515, 81735057, 81299815, 80865789, 80432978,
80001383, 79571005, 79141843, 78713898, 78287169, 77861658, 77437365, 77014289, 76592431, 76171792,
75752371, 75334169, 74917185, 74501421, 74086877, 73673552, 73261447, 72850562, 72440898, 72032455,
71625232, 71219231, 70814451, 70410893, 70008556, 69607442, 69207550, 68808881, 68411434, 68015211,
67620211, 67226434, 66833881, 66442552, 66052448, 65663567, 65275912, 64889481, 64504276, 64120296,
63737541, 63356013, 62975710, 62596634, 62218784, 61842160, 61466764, 61092595, 60719653, 60347939,
59977453, 59608194, 59240164, 58873363, 58507790, 58143446, 57780331, 57418445, 57057789, 56698363,
56340166, 55983200, 55627464, 55272959, 54919684, 54567641, 54216829, 53867248, 53518899, 53171781,
52825896, 52481243, 52137822, 51795634, 51454679, 51114956, 50776468, 50439212, 50103190, 49768402,
49434848, 49102528, 48771443, 48441592, 48112976, 47785595, 47459450, 47134539, 46810865, 46488426,
46167223, 45847256, 45528525, 45211031, 44894774, 44579753, 44265970, 43953424, 43642116, 43332045,
43023211, 42715616, 42409259, 42104141, 41800261, 41497619, 41196217, 40896054, 40597129, 40299445,
40003000, 39707794, 39413829, 39121104, 38829619, 38539374, 38250371, 37962608, 37676085, 37390805,
37106765, 36823967, 36542410, 36262096, 35983023, 35705193, 35428604, 35153259, 34879155, 34606295,
34334678, 34064303, 33795172, 33527285, 33260641, 32995241, 32731084, 32468172, 32206504, 31946080,
31686901, 31428966, 31172277, 30916832, 30662632, 30409678, 30157969, 29907506, 29658288, 29410316,
29163591, 28918111, 28673878, 28430891, 28189150, 27948657, 27709410, 27471410, 27234658, 26999153,
26764895, 26531885, 26300122, 26069607, 25840340, 25612322, 25385551, 25160029, 24935756, 24712731,
24490955, 24270428, 24051149, 23833120, 23616341, 23400810, 23186530, 22973499, 22761717, 22551186,
22341904, 22133873, 21927092, 21721562, 21517282, 21314253, 21112474, 20911947, 20712670, 20514644,
20317870, 20122347, 19928076, 19735056, 19543288, 19352771, 19163507, 18975495, 18788734, 18603226,
18418971, 18235968, 18054217, 17873719, 17694474, 17516482, 17339743, 17164257, 16990024, 16817044,
16645318, 16474846, 16305627, 16137661, 15970950, 15805493, 15641289, 15478340, 15316644, 15156203,
14997017, 14839085, 14682407, 14526985, 14372817, 14219904, 14068245, 13917842, 13768694, 13620801,
13474164, 13328781, 13184655, 13041784, 12900168, 12759808, 12620704, 12482856, 12346264, 12210928,
12076848, 11944024, 11812457, 11682146, 11553091, 11425293, 11298751, 11173466, 11049438, 10926667,
10805152, 10684895, 10565894, 10448151, 10331665, 10216435, 10102464, 9989749, 9878292, 9768093,
9659151, 9551467, 9445040, 9339872, 9235961, 9133308, 9031912, 8931775, 8832896, 8735275,
8638912, 8543808, 8449961, 8357373, 8266044, 8175973, 8087160, 7999606, 7913310, 7828273,
7744495, 7661976, 7580715, 7500714, 7421971, 7344487, 7268262, 7193296, 7119589, 7047142,
6975953, 6906024, 6837354, 6769943, 6703792, 6638900, 6575267, 6512894, 6451780, 6391926,
6333331, 6275996, 6219920, 6165105, 6111548, 6059252, 6008215, 5958438, 5909921, 5862664,
5816667, 5771929, 5728451, 5686234, 5645276, 5605578, 5567141, 5529963, 5494045, 5459388,
5425990, 5393853, 5362976, 5333359, 5305002, 5277905, 5252069, 5227492, 5204176, 5182121,
5161325, 5141790, 5123515, 5106500, 5090746, 5076252, 5063018, 5051045, 5040332, 5030879,
5022687, 5015755, 5010083, 5005672, 5002521, 5000630, 5000000, 5000630, 5002521, 5005672,
5010083, 5015755, 5022687, 5030879, 5040332, 5051045, 5063018, 5076252, 5090746, 5106500,
5123515, 5141790, 5161325, 5182121, 5204176, 5227492, 5252069, 5277905, 5305002, 5333359,
5362976, 5393853, 5425990, 5459388, 5494045, 5529963, 5567141, 5605578, 5645276, 5686234,
5728451, 5771929, 5816667, 5862664, 5909921, 5958438, 6008215, 6059252, 6111548, 6165105,
6219920, 6275996, 6333331, 6391926, 6451780, 6512894, 6575267, 6638900, 6703792, 6769943,
6837354, 6906024, 6975953, 7047142, 7119589, 7193296, 7268262, 7344487, 7421971, 7500714,
7580715, 7661976, 7744495, 7828273, 7913310, 7999606, 8087160, 8175973, 8266044, 8357373,
8449961, 8543808, 8638912, 8735275, 8832896, 8931775, 9031912, 9133308, 9235961, 9339872,
9445040, 9551467, 9659151, 9768093, 9878292, 9989749, 10102464, 10216435, 10331665, 10448151,
10565894, 10684895, 10805152, 10926667, 11049438, 11173466, 11298751, 11425293, 11553091, 11682146,
11812457, 11944024, 12076848, 12210928, 12346264, 12482856, 12620704, 12759808, 12900168, 13041784,
13184655, 13328781, 13474164, 13620801, 13768694, 13917842, 14068245, 14219904, 14372817, 14526985,
14682407, 14839085, 14997017, 15156203, 15316644, 15478340, 15641289, 15805493, 15970950, 16137661,
16305627, 16474846, 16645318, 16817044, 16990024, 17164257, 17339743, 17516482, 17694474, 17873719,
18054217, 18235968, 18418971, 18603226, 18788734, 18975495, 19163507, 19352771, 19543288, 19735056,
19928076, 20122347, 20317870, 20514644, 20712670, 20911947, 21112474, 21314253, 21517282, 21721562,
21927092, 22133873, 22341904, 22551186, 22761717, 22973499, 23186530, 23400810, 23616341, 23833120,
24051149, 24270428, 24490955, 24712731, 24935756, 25160029, 25385551, 25612322, 25840340, 26069607,
26300122, 26531885, 26764895, 26999153, 27234658, 27471410, 27709410, 27948657, 28189150, 28430891,
28673878, 28918111, 29163591, 29410316, 29658288, 29907506, 30157969, 30409678, 30662632, 30916832,
31172277, 31428966, 31686901, 31946080, 32206504, 32468172, 32731084, 32995241, 33260641, 33527285,
33795172, 34064303, 34334678, 34606295, 34879155, 35153259, 35428604, 35705193, 35983023, 36262096,
36542410, 36823967, 37106765, 37390805, 37676085, 37962608, 38250371, 38539374, 38829619, 39121104,
39413829, 39707794, 40003000, 40299445, 40597129, 40896054, 41196217, 41497619, 41800261, 42104141,
42409259, 42715616, 43023211, 43332045, 43642116, 43953424, 44265970, 44579753, 44894774, 45211031,
45528525, 45847256, 46167223, 46488426, 46810865, 47134539, 47459450, 47785595, 48112976, 48441592,
48771443, 49102528, 49434848, 49768402, 50103190, 50439212, 50776468, 51114956, 51454679, 51795634,
52137822, 52481243, 52825896, 53171781, 53518899, 53867248, 54216829, 54567641, 54919684, 55272959,
55627464, 55983200, 56340166, 56698363, 57057789, 57418445, 57780331, 58143446, 58507790, 58873363,
59240164, 59608194, 59977453, 60347939, 60719653, 61092595, 61466764, 61842160, 62218784, 62596634,
62975710, 63356013, 63737541, 64120296, 64504276, 64889481, 65275912, 65663567, 66052448, 66442552,
66833881, 67226434, 67620211, 68015211, 68411434, 68808881, 69207550, 69607442, 70008556, 70410893,
70814451, 71219231, 71625232, 72032455, 72440898, 72850562, 73261447, 73673552, 74086877, 74501421,
74917185, 75334169, 75752371, 76171792, 76592431, 77014289, 77437365, 77861658, 78287169, 78713898,
79141843, 79571005, 80001383, 80432978, 80865789, 81299815, 81735057, 82171515, 82609187, 83048074,
83488175, 83929490, 84372020, 84815763, 85260720, 85706889, 86154272, 86602867, 87052675, 87503694,
87955926, 88409369, 88864023, 89319889, 89776965, 90235252, 90694749, 91155456, 91617372, 92080498,
92544833, 93010377, 93477130, 93945091, 94414260, 94884636, 95356220, 95829012, 96303010, 96778215,
97254627, 97732244, 98211067, 98691096, 99172330, 99654769, 100138413, 100623261, 101109313, 101596569,
102085029, 102574692, 103065558, 103557626, 104050897, 104545370, 105041045, 105537921, 106035999, 106535277,
107035756, 107537436, 108040315, 108544395, 109049673, 109556151, 110063828, 110572703, 111082777, 111594048,
112106518, 112620184, 113135048, 113651108, 114168365, 114686818, 115206467, 115727311, 116249351, 116772585,
117297014, 117822638, 118349455, 118877466, 119406671, 119937068, 120468658, 121001441, 121535416, 122070583,
122606941, 123144490, 123683230, 124223161, 124764282, 125306593, 125850094, 126394783, 126940662, 127487729,
128035985, 128585429, 129136060, 129687879, 130240884, 130795077, 131350456, 131907020, 132464771, 133023707,
133583828, 134145133, 134707623, 135271298, 135836155, 136402197, 136969421, 137537828, 138107418, 138678189,
139250142, 139823277, 140397593, 140973089, 141549766, 142127623, 142706659, 143286875, 143868270, 144450844,
145034596, 145619525, 146205633, 146792918, 147381380, 147971018, 148561833, 149153823, 149746990, 150341331,
150936847, 151533538, 152131403, 152730442, 153330654, 153932039, 154534597, 155138328, 155743230, 156349304,
156956550, 157564966, 158174554, 158785311, 159397238, 160010335, 160624601, 161240036, 161856639, 162474411,
163093350, 163713456, 164334730, 164957170, 165580776, 166205548, 166831486, 167458589, 168086857, 168716289,
169346885, 169978645, 170611569, 171245655, 171880904, 172517315, 173154887, 173793622, 174433517, 175074573,
175716789, 176360165, 177004701, 177650396, 178297250, 178945262, 179594433, 180244761, 180896246, 181548888,
182202686, 182857641, 183513752, 184171017, 184829438, 185489014, 186149743, 186811627, 187474663, 188138853,
188804196, 189470690, 190138337, 190807135, 191477084, 192148183, 192820433, 193493833, 194168383, 194844081,
195520928, 196198924, 196878067, 197558358, 198239796, 198922380, 199606111, 200290988, 200977010, 201664177,
202352489, 203041945, 203732546, 204424289, 205117176, 205811205, 206506376, 207202690, 207900145, 208598740,
209298477, 209999353, 210701370, 211404525, 212108820, 212814253, 213520824, 214228533, 214937379, 215647363,
216358482, 217070738, 217784129, 218498655, 219214316, 219931112, 220649041, 221368104, 222088300, 222809629,
223532090, 224255683, 224980407, 225706262, 226433248, 227161363, 227890609, 228620983, 229352487, 230085119,
230818879, 231553766, 232289780, 233026921, 233765189, 234504582, 235245100, 235986744, 236729512, 237473403,
238218419, 238964558, 239711819, 240460203, 241209708, 241960335, 242712083, 243464952, 244218940, 244974049,
245730276, 246487622, 247246087, 248005669, 248766369, 249528185, 250291119, 251055168, 251820333, 252586613,
253354008, 254122517, 254892140, 255662876, 256434725, 257207687, 257981760, 258756945, 259533242, 260310649,
261089166, 261868792, 262649528, 263431373, 264214326, 264998388, 265783556, 266569831, 267357213, 268145701,
268935295, 269725993, 270517797, 271310704, 272104715, 272899830, 273696047, 274493366, 275291787, 276091310,
276891934, 277693658, 278496481, 279300405, 280105427, 280911548, 281718767, 282527084, 283336497, 284147007,
284958614, 285771316, 286585113, 287400005, 288215992, 289033072, 289851245, 290670511, 291490869, 292312320,
293134861, 293958494, 294783217, 295609029, 296435931, 297263923, 298093002, 298923169, 299754424, 300586766,
301420195, 302254709, 303090309, 303926994, 304764763, 305603617, 306443553, 307284573, 308126676, 308969861,
309814127, 310659474, 311505902, 312353409, 313201997, 314051663, 314902408, 315754231, 316607132, 317461109,
318316164, 319172294, 320029500, 320887780, 321747136, 322607565, 323469068, 324331644, 325195293, 326060013,
326925805, 327792668, 328660601, 329529605, 330399678, 331270820, 332143030, 333016308, 333890653, 334766066,
335642545, 336520089, 337398699, 338278374, 339159114, 340040916, 340923783, 341807712, 342692703, 343578756,
344465870, 345354045, 346243280, 347133574, 348024928, 348917340, 349810810, 350705338, 351600923, 352497564,
353395261, 354294014, 355193822, 356094684, 356996599, 357899568, 358803590, 359708664, 360614790, 361521967,
362430194, 363339472, 364249799, 365161175, 366073600, 366987072, 367901593, 368817160, 369733773, 370651432,
371570136, 372489885, 373410679, 374332516, 375255396, 376179318, 377104283, 378030289, 378957336, 379885423,
380814550, 381744717, 382675922, 383608166, 384541447, 385475765, 386411119, 387347510, 388284936, 389223397,
390162893, 391103422, 392044984, 392987579, 393931206, 394875865, 395821555, 396768275, 397716025, 398664805,
399614613, 400565450, 401517314, 402470205, 403424123, 404379067, 405335036, 406292030, 407250048, 408209090,
409169156, 410130243, 411092353, 412055485, 413019637, 413984810, 414951002, 415918214, 416886444, 417855692,
418825958, 419797241, 420769540, 421742855, 422717185, 423692530, 424668888, 425646261, 426624646, 427604043,
428584453, 429565873, 430548304, 431531745, 432516196, 433501655, 434488123, 435475598, 436464081, 437453570,
438444065, 439435566, 440428071, 441421580, 442416093, 443411610, 444408128, 445405649, 446404170, 447403693,
448404215, 449405738, 450408259, 451411778, 452416295, 453421810, 454428320, 455435827, 456444330, 457453827,
458464318, 459475803, 460488281, 461501751, 462516213, 463531666, 464548110, 465565544, 466583968, 467603380,
468623780, 469645168, 470667544, 471690905, 472715253, 473740585, 474766902, 475794204, 476822488, 477851756,
478882005, 479913237, 480945449, 481978642, 483012814, 484047966, 485084096, 486121204, 487159289, 488198351,
489238390, 490279403, 491321392, 492364355, 493408291, 494453201, 495499083, 496545937, 497593762, 498642558,
499692323, 500743058, 501794762, 502847434, 503901073, 504955680, 506011252, 507067790, 508125293, 509183761,
510243192, 511303587, 512364944, 513427263, 514490543, 515554783, 516619984, 517686144, 518753263, 519821341,
520890375, 521960367, 523031314, 524103218, 525176076, 526249889, 527324655, 528400375, 529477047, 530554671,
531633246, 532712772, 533793247, 534874672, 535957046, 537040367, 538124636, 539209852, 540296013, 541383121,
542471173, 543560169, 544650109, 545740991, 546832816, 547925583, 549019290, 550113938, 551209526, 552306053,
553403518, 554501920, 555601260, 556701537, 557802749, 558904896, 560007978, 561111994, 562216943, 563322824,
564429638, 565537382, 566646058, 567755663, 568866198, 569977661, 571090052, 572203371, 573317616, 574432788,
575548884, 576665906, 577783851, 578902720, 580022512, 581143226, 582264861, 583387417, 584510893, 585635289,
586760603, 587886836, 589013986, 590142053, 591271036, 592400934, 593531747, 594663475, 595796116, 596929669,
598064135, 599199513, 600335801, 601472999, 602611107, 603750123, 604890048, 606030880, 607172619, 608315265,
609458815, 610603270, 611748630, 612894893, 614042058, 615190126, 616339095, 617488965, 618639735, 619791404,
620943973, 622097439, 623251802, 624407062, 625563218, 626720269, 627878215, 629037055, 630196788, 631357414,
632518932, 633681341, 634844640, 636008829, 637173908, 638339875, 639506729, 640674471, 641843099, 643012613,
644183012, 645354296, 646526463, 647699513, 648873445, 650048259, 651223953, 652400528, 653577983, 654756316,
655935528, 657115617, 658296582, 659478424, 660661141, 661844733, 663029198, 664214537, 665400749, 666587832,
667775786, 668964611, 670154306, 671344870, 672536302, 673728602, 674921769, 676115802, 677310701, 678506465,
679703092, 680900583, 682098937, 683298153, 684498231, 685699169, 686900967, 688103624, 689307139, 690511513,
691716743, 692922830, 694129773, 695337571, 696546222, 697755728, 698966086, 700177296, 701389358, 702602271,
703816033, 705030645, 706246105, 707462413, 708679569, 709897570, 711116418, 712336110, 713556647, 714778027,
716000250, 717223315, 718447221, 719671968, 720897555, 722123982, 723351247, 724579349, 725808289, 727038065,
728268676, 729500123, 730732403, 731965518, 733199464, 734434243, 735669853, 736906294, 738143564, 739381664,
740620591, 741860347, 743100929, 744342338, 745584571, 746827630, 748071513, 749316218, 750561747, 751808097,
753055268, 754303259, 755552071, 756801700, 758052148, 759303414, 760555496, 761808393, 763062106, 764316634,
765571975, 766828129, 768085095, 769342873, 770601461, 771860860, 773121068, 774382084, 775643908, 776906539,
778169976, 779434219, 780699266, 781965118, 783231773, 784499230, 785767489, 787036550, 788306410, 789577070,
790848530, 792120787, 793393841, 794667692, 795942339, 797217781, 798494017, 799771047, 801048869, 802327484,
803606890, 804887087, 806168073, 807449849, 808732412, 810015764, 811299902, 812584826, 813870535, 815157029,
816444307, 817732368, 819021211, 820310836, 821601241, 822892426, 824184391, 825477133, 826770654, 828064952,
829360025, 830655875, 831952498, 833249896, 834548067, 835847010, 837146725, 838447211, 839748467, 841050492,
842353285, 843656847, 844961175, 846266270, 847572130, 848878754, 850186143, 851494295, 852803209, 854112885,
855423322, 856734519, 858046475, 859359190, 860672662, 861986892, 863301877, 864617619, 865934114, 867251364,
868569367, 869888122, 871207629, 872527887, 873848894, 875170651, 876493156, 877816409, 879140409, 880465155,
881790647, 883116883, 884443863, 885771585, 887100051, 888429257, 889759204, 891089891, 892421317, 893753482,
895086384, 896420023, 897754397, 899089507, 900425352, 901761929, 903099240, 904437283, 905776057, 907115562,
908455796, 909796759, 911138450, 912480869, 913824014, 915167884, 916512480, 917857800, 919203843, 920550609,
921898096, 923246305, 924595233, 925944881, 927295248, 928646333, 929998134, 931350652, 932703885, 934057833,
935412494, 936767869, 938123956, 939480754, 940838263, 942196482, 943555409, 944915045, 946275389, 947636439,
948998195, 950360656, 951723821, 953087690, 954452261, 955817534, 957183508, 958550183, 959917557, 961285629,
962654399, 964023866, 965394030, 966764889, 968136442, 969508689, 970881629, 972255262, 973629585, 975004600,
976380304, 977756696, 979133777, 980511546, 981890001, 983269141, 984648966, 986029476, 987410669, 988792544,
990175101, 991558338, 992942256, 994326853, 995712128, 997098080, 998484710, 999872015, 1001259996, 1002648650,
1004037979, 1005427980, 1006818652, 1008209996, 1009602010, 1010994694, 1012388045, 1013782065, 1015176752, 1016572104,
1017968122, 1019364805, 1020762151, 1022160160, 1023558831, 1024958163, 1026358156, 1027758808, 1029160118, 1030562087,
1031964712, 1033367994, 1034771932, 1036176523, 1037581769, 1038987668, 1040394218, 1041801420, 1043209272, 1044617774,
1046026925, 1047436724, 1048847170, 1050258262, 1051669999, 1053082382, 1054495408, 1055909077, 1057323388, 1058738340,
1060153933, 1061570166, 1062987038, 1064404547, 1065822693, 1067241476, 1068660895, 1070080948, 1071501635, 1072922954,
1074344906, 1075767489, 1077190703, 1078614546, 1080039019, 1081464119, 1082889846, 1084316199, 1085743178, 1087170781,
1088599009, 1090027859, 1091457331, 1092887424, 1094318138, 1095749472, 1097181424, 1098613994, 1100047181, 1101480984,
1102915402, 1104350435, 1105786082, 1107222341, 1108659213, 1110096695, 1111534788, 1112973490, 1114412801, 1115852719,
1117293245, 1118734376, 1120176113, 1121618454, 1123061398, 1124504945, 1125949094, 1127393844, 1128839194, 1130285143,
1131731691, 1133178836, 1134626577, 1136074915, 1137523848, 1138973374, 1140423494, 1141874207, 1143325511, 1144777406,
1146229890, 1147682964, 1149136625, 1150590875, 1152045710, 1153501131, 1154957137, 1156413727, 1157870899, 1159328654,
1160786991, 1162245907, 1163705403, 1165165478, 1166626131, 1168087361, 1169549167, 1171011548, 1172474504, 1173938033,
1175402135, 1176866809, 1178332054, 1179797869, 1181264253, 1182731206, 1184198726, 1185666813, 1187135466, 1188604683,
1190074465, 1191544810, 1193015717, 1194487186, 1195959216, 1197431805, 1198904953, 1200378659, 1201852922, 1203327742,
1204803117, 1206279046, 1207755529, 1209232565, 1210710153, 1212188292, 1213666981, 1215146220, 1216626007, 1218106342,
1219587223, 1221068650, 1222550623, 1224033139, 1225516198, 1226999800, 1228483944, 1229968628, 1231453852, 1232939614,
1234425915, 1235912753, 1237400127, 1238888036, 1240376480, 1241865458, 1243354968, 1244845011, 1246335584, 1247826687,
1249318320, 1250810481, 1252303169, 1253796384, 1255290125, 1256784391, 1258279180, 1259774493, 1261270328, 1262766684,
1264263561, 1265760957, 1267258872, 1268757305, 1270256255, 1271755720, 1273255701, 1274756197, 1276257205, 1277758726,
1279260759, 1280763303, 1282266356, 1283769919, 1285273989, 1286778567, 1288283651, 1289789240, 1291295334, 1292801932,
1294309033, 1295816635, 1297324739, 1298833342, 1300342445, 1301852046, 1303362145, 1304872740, 1306383831, 1307895416,
1309407496, 1310920069, 1312433133, 1313946689, 1315460736, 1316975271, 1318490296, 1320005808, 1321521807, 1323038291,
1324555261, 1326072715, 1327590652, 1329109071, 1330627972, 1332147353, 1333667214, 1335187554, 1336708371, 1338229666,
1339751436, 1341273682, 1342796402, 1344319596, 1345843261, 1347367399, 1348892007, 1350417085, 1351942632, 1353468647,
1354995128, 1356522077, 1358049490, 1359577368, 1361105709, 1362634513, 1364163779, 1365693505, 1367223692, 1368754337,
1370285440, 1371817001, 1373349018, 1374881490, 1376414417, 1377947798, 1379481631, 1381015916, 1382550652, 1384085838,
1385621473, 1387157556, 1388694086, 1390231063, 1391768485, 1393306352, 1394844662, 1396383416, 1397922611, 1399462247,
1401002323, 1402542838, 1404083792, 1405625182, 1407167010, 1408709272, 1410251970, 1411795101, 1413338664, 1414882660,
1416427087, 1417971943, 1419517229, 1421062943, 1422609085, 1424155653, 1425702646, 1427250064, 1428797906, 1430346170,
1431894856, 1433443964, 1434993491, 1436543437, 1438093802, 1439644584, 1441195783, 1442747397, 1444299425, 1445851867,
1447404722, 1448957989, 1450511667, 1452065754, 1453620251, 1455175156, 1456730468, 1458286187, 1459842311, 1461398839,
1462955771, 1464513106, 1466070843, 1467628980, 1469187518, 1470746454, 1472305789, 1473865521, 1475425649, 1476986172,
1478547090, 1480108401, 1481670105, 1483232200, 1484794687, 1486357563, 1487920828, 1489484481, 1491048522, 1492612948,
1494177759, 1495742955, 1497308535, 1498874497, 1500440840, 1502007564, 1503574668, 1505142150, 1506710011, 1508278248,
1509846861, 1511415850, 1512985213, 1514554949, 1516125057, 1517695536, 1519266387, 1520837606, 1522409195, 1523981151,
1525553474, 1527126162, 1528699216, 1530272634, 1531846415, 1533420558, 1534995062, 1536569926, 1538145150, 1539720733,
1541296672, 1542872969, 1544449621, 1546026628, 1547603989, 1549181702, 1550759768, 1552338184, 1553916951, 1555496067,
1557075531, 1558655343, 1560235501, 1561816004, 1563396852, 1564978043, 1566559577, 1568141453, 1569723670, 1571306227,
1572889122, 1574472356, 1576055926, 1577639833, 1579224075, 1580808652, 1582393561, 1583978803, 1585564377, 1587150281,
1588736515, 1590323077, 1591909968, 1593497185, 1595084728, 1596672596, 1598260788, 1599849303, 1601438140, 1603027298,
1604616777, 1606206575, 1607796692, 1609387126, 1610977876, 1612568942, 1614160323, 1615752018, 1617344025, 1618936344,
1620528975, 1622121915, 1623715164, 1625308721, 1626902586, 1628496757, 1630091233, 1631686013, 1633281097, 1634876483,
1636472171, 1638068160, 1639664448, 1641261035, 1642857920, 1644455101, 1646052579, 1647650351, 1649248418, 1650846777,
1652445429, 1654044372, 1655643606, 1657243128, 1658842939, 1660443038, 1662043423, 1663644093, 1665245048, 1666846287,
1668447809, 1670049612, 1671651697, 1673254061, 1674856704, 1676459625, 1678062824, 1679666298, 1681270048, 1682874072,
1684478369, 1686082939, 1687687780, 1689292891, 1690898272, 1692503922, 1694109839, 1695716023, 1697322473, 1698929188,
1700536166, 1702143408, 1703750911, 1705358676, 1706966700, 1708574984, 1710183526, 1711792325, 1713401380, 1715010691,
1716620256, 1718230075, 1719840146, 1721450469, 1723061042, 1724671865, 1726282937, 1727894257, 1729505823, 1731117635,
1732729693, 1734341994, 1735954538, 1737567325, 1739180352, 1740793620, 1742407127, 1744020872, 1745634855, 1747249074,
1748863528, 1750478217, 1752093139, 1753708294, 1755323681, 1756939299, 1758555146, 1760171222, 1761787525, 1763404056,
1765020813, 1766637794, 1768255000, 1769872429, 1771490080, 1773107952, 1774726044, 1776344356, 1777962886, 1779581633,
1781200597, 1782819776, 1784439170, 1786058777, 1787678597, 1789298629, 1790918871, 1792539323, 1794159984, 1795780853,
1797401928, 1799023210, 1800644696, 1802266387, 1803888281, 1805510377, 1807132674, 1808755171, 1810377867, 1812000762,