-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfast_convert.c
6432 lines (6246 loc) · 277 KB
/
fast_convert.c
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
/* Copyright 2019 Herman ten Brugge
*
* Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
* http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
* <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
* option. This file may not be copied, modified, or distributed
* except according to those terms.
*/
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <locale.h>
#include "fast_convert.h"
#ifndef __WORDSIZE
#define __WORDSIZE 64
#endif
#ifdef __GNUC__
#define LIKELY(x) __builtin_expect ((x), 1)
#define UNLIKELY(x) __builtin_expect ((x), 0)
#else
#define LIKELY(x) (x)
#define UNLIKELY(x) (x)
#endif
#define DO_BASE(b) case b: do { *--p = d[u % b]; u /= b; } while (u); break
#ifdef __attribute__
#undef __attribute__
#endif
#if 0
/* gcc -g -O3 -Wall a.c -o a -lmpfr -lgmp */
#include <stdio.h>
#include <mpfr.h>
#define PRINT_VALUE 0
int
main (void)
{
int i;
int cmp;
unsigned long value;
unsigned long value1;
unsigned long value2;
long exp;
mpfr_t p64;
mpfr_t p32e;
mpfr_t p32;
mpfr_t p24;
mpfr_t t1;
mpfr_t t2;
mpfr_t t3;
mpfr_t t4;
mpfr_init2 (p64, 128);
mpfr_init2 (p32e, 128);
mpfr_init2 (p32, 128);
mpfr_init2 (p24, 128);
mpfr_init2 (t1, 128);
mpfr_init2 (t2, 128);
mpfr_init2 (t3, 128);
mpfr_init2 (t4, 128);
mpfr_ui_pow_ui (p64, 2, 64, MPFR_RNDN);
mpfr_ui_pow_ui (p32e, 10, 12, MPFR_RNDN);
mpfr_ui_pow_ui (p32, 2, 32, MPFR_RNDN);
mpfr_ui_pow_ui (p24, 2, 24, MPFR_RNDN);
printf ("static const struct\n");
printf ("{\n");
printf (" uint64_t mul1;\n");
printf (" uint32_t mul2;\n");
printf (" int32_t exp;\n");
printf ("} dpowers2[] = {\n");
for (i = -1022 - 53 + 64 - 11 - 54; i <= 1025 - 53 + 64 - 11; i++) {
/* t1 = powl (2.0, i); */
mpfr_set_ui (t3, 2, MPFR_RNDN);
mpfr_pow_si (t1, t3, i, MPFR_RNDN);
if (i < 0) {
/* t2 = log10l (1.0 / t1); */
mpfr_set_ui (t3, 1, MPFR_RNDN);
mpfr_div (t3, t3, t1, MPFR_RNDN);
mpfr_log10 (t2, t3, MPFR_RNDN);
/* t2 = floorl (t2 + 22); */
mpfr_add_ui (t3, t2, 22, MPFR_RNDN);
mpfr_rint_floor (t2, t3, MPFR_RNDN);
/* while (powl (10.0, t2) * t1 >= p64) */
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_mul (t3, t3, t1, MPFR_RNDN);
cmp = mpfr_cmp (t3, p64);
while (cmp >= 0) {
/* t2 -= 1.0; */
mpfr_sub_ui (t2, t2, 1, MPFR_RNDN);
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_mul (t3, t3, t1, MPFR_RNDN);
cmp = mpfr_cmp (t3, p64);
}
mpfr_mul (t3, t3, p32, MPFR_RNDN);
mpfr_round (t3, t3);
mpfr_div (t4, t3, p32, MPFR_RNDN);
mpfr_floor (t4, t4);
value1 = mpfr_get_ui (t4, MPFR_RNDN);
mpfr_mul (t4, t4, p32, MPFR_RNDN);
mpfr_sub (t4, t3, t4, MPFR_RNDN);
value2 = mpfr_get_ui (t4, MPFR_RNDN);
exp = mpfr_get_si (t2, MPFR_RNDN);
#if PRINT_VALUE
mpfr_printf (" /* %40.16Rf */ ", t3);
#endif
printf (" { /* %5d */ UINT64_C (0x%016lX), 0x%08lX, %4ld },\n", i,
value1, value2, -exp);
}
else {
/* t2 = log10l (t1); */
mpfr_log10 (t2, t1, MPFR_RNDN);
/* t2 = floorl (t2 - 22); */
mpfr_sub_ui (t3, t2, 22, MPFR_RNDN);
mpfr_rint_floor (t2, t3, MPFR_RNDN);
/* while (t1 / powl (10.0, t2) >= p64) */
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_div (t3, t1, t3, MPFR_RNDN);
cmp = mpfr_cmp (t3, p64);
while (cmp >= 0) {
/* t2 += 1.0; */
mpfr_add_ui (t2, t2, 1, MPFR_RNDN);
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_div (t3, t1, t3, MPFR_RNDN);
cmp = mpfr_cmp (t3, p64);
}
mpfr_mul (t3, t3, p32, MPFR_RNDN);
mpfr_round (t3, t3);
mpfr_div (t4, t3, p32, MPFR_RNDN);
mpfr_floor (t4, t4);
value1 = mpfr_get_ui (t4, MPFR_RNDN);
mpfr_mul (t4, t4, p32, MPFR_RNDN);
mpfr_sub (t4, t3, t4, MPFR_RNDN);
value2 = mpfr_get_ui (t4, MPFR_RNDN);
exp = mpfr_get_si (t2, MPFR_RNDN);
#if PRINT_VALUE
mpfr_printf (" /* %40.16Rf */ ", t3);
#endif
printf (" { /* %5d */ UINT64_C (0x%016lX), 0x%08lX, %4ld },\n", i,
value1, value2, exp);
}
}
printf ("};\n\n");
printf ("static const struct\n");
printf ("{\n");
printf (" uint64_t mul;\n");
printf (" int32_t exp;\n");
printf ("} fpowers2[] = {\n");
for (i = -126 - 24 + 32 - 8 - 25; i <= 129 - 24 + 32 - 8; i++) {
/* t1 = powl (2.0, i); */
mpfr_set_ui (t3, 2, MPFR_RNDN);
mpfr_pow_si (t1, t3, i, MPFR_RNDN);
if (i < 0) {
/* t2 = log10l (1.0 / t1); */
mpfr_set_ui (t3, 1, MPFR_RNDN);
mpfr_div (t3, t3, t1, MPFR_RNDN);
mpfr_log10 (t2, t3, MPFR_RNDN);
/* t2 = floorl (t2 + 16); */
mpfr_add_ui (t3, t2, 16, MPFR_RNDN);
mpfr_rint_floor (t2, t3, MPFR_RNDN);
/* while (powl (10.0, t2) * t1 >= p32e) */
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_mul (t3, t3, t1, MPFR_RNDN);
cmp = mpfr_cmp (t3, p32e);
while (cmp >= 0) {
/* t2 -= 1.0; */
mpfr_sub_ui (t2, t2, 1, MPFR_RNDN);
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_mul (t3, t3, t1, MPFR_RNDN);
cmp = mpfr_cmp (t3, p32e);
}
mpfr_mul (t3, t3, p24, MPFR_RNDN);
mpfr_round (t3, t3);
value = mpfr_get_ui (t3, MPFR_RNDN);
exp = mpfr_get_si (t2, MPFR_RNDN);
#if PRINT_VALUE
mpfr_printf (" /* %40.16Rf */ ", t3);
#endif
printf (" { /* %5d */ UINT64_C (0x%016lX), %4ld },\n", i, value, -exp);
}
else {
/* t2 = log10l (t1); */
mpfr_log10 (t2, t1, MPFR_RNDN);
/* t2 = floorl (t2 - 16); */
mpfr_sub_ui (t3, t2, 16, MPFR_RNDN);
mpfr_rint_floor (t2, t3, MPFR_RNDN);
/* while (t1 / powl (10.0, t2) >= p32e) */
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_div (t3, t1, t3, MPFR_RNDN);
cmp = mpfr_cmp (t3, p32e);
while (cmp >= 0) {
/* t2 += 1.0; */
mpfr_add_ui (t2, t2, 1, MPFR_RNDN);
mpfr_set_ui (t3, 10, MPFR_RNDN);
mpfr_pow (t3, t3, t2, MPFR_RNDN);
mpfr_div (t3, t1, t3, MPFR_RNDN);
cmp = mpfr_cmp (t3, p32e);
}
mpfr_mul (t3, t3, p24, MPFR_RNDN);
mpfr_round (t3, t3);
value = mpfr_get_ui (t3, MPFR_RNDN);
exp = mpfr_get_si (t2, MPFR_RNDN);
#if PRINT_VALUE
mpfr_printf (" /* %40.16Rf */ ", t3);
#endif
printf (" { /* %5d */ UINT64_C (0x%016lX), %4ld },\n", i, value, exp);
}
}
printf ("};\n");
mpfr_clear (p64);
mpfr_clear (p32e);
mpfr_clear (p32);
mpfr_clear (p24);
mpfr_clear (t1);
mpfr_clear (t2);
mpfr_clear (t3);
mpfr_clear (t4);
mpfr_free_cache ();
return 0;
}
#endif
static const struct
{
uint64_t mul1;
uint32_t mul2;
int32_t exp;
} dpowers2[] = {
{ /* -1076 */ UINT64_C (0xAB69D82E364948D4), 0x6A0A4F6C, -343},
{ /* -1075 */ UINT64_C (0x22485E6FA4750E90), 0xE2020FE2, -342},
{ /* -1074 */ UINT64_C (0x4490BCDF48EA1D21), 0xC4041FC5, -342},
{ /* -1073 */ UINT64_C (0x892179BE91D43A43), 0x88083F89, -342},
{ /* -1072 */ UINT64_C (0x1B6D1859505DA540), 0xB4CE731B, -341},
{ /* -1071 */ UINT64_C (0x36DA30B2A0BB4A81), 0x699CE637, -341},
{ /* -1070 */ UINT64_C (0x6DB4616541769502), 0xD339CC6E, -341},
{ /* -1069 */ UINT64_C (0xDB68C2CA82ED2A05), 0xA67398DC, -341},
{ /* -1068 */ UINT64_C (0x2BE1C08EE6FC3B9A), 0xBAE3EB5F, -340},
{ /* -1067 */ UINT64_C (0x57C3811DCDF87735), 0x75C7D6BE, -340},
{ /* -1066 */ UINT64_C (0xAF87023B9BF0EE6A), 0xEB8FAD7C, -340},
{ /* -1065 */ UINT64_C (0x231B0072526362E2), 0x2F1CBC4C, -339},
{ /* -1064 */ UINT64_C (0x463600E4A4C6C5C4), 0x5E397898, -339},
{ /* -1063 */ UINT64_C (0x8C6C01C9498D8B88), 0xBC72F130, -339},
{ /* -1062 */ UINT64_C (0x1C1599F50EB5E8B4), 0xF27D6370, -338},
{ /* -1061 */ UINT64_C (0x382B33EA1D6BD169), 0xE4FAC6E0, -338},
{ /* -1060 */ UINT64_C (0x705667D43AD7A2D3), 0xC9F58DC0, -338},
{ /* -1059 */ UINT64_C (0xE0ACCFA875AF45A7), 0x93EB1B81, -338},
{ /* -1058 */ UINT64_C (0x2CEF5CBB4ABCA787), 0xEA6238B3, -337},
{ /* -1057 */ UINT64_C (0x59DEB97695794F0F), 0xD4C47167, -337},
{ /* -1056 */ UINT64_C (0xB3BD72ED2AF29E1F), 0xA988E2CD, -337},
{ /* -1055 */ UINT64_C (0x23F2B095D563B939), 0x884E93C3, -336},
{ /* -1054 */ UINT64_C (0x47E5612BAAC77273), 0x109D2785, -336},
{ /* -1053 */ UINT64_C (0x8FCAC257558EE4E6), 0x213A4F0B, -336},
{ /* -1052 */ UINT64_C (0x1CC226DE444FC761), 0x39D87635, -335},
{ /* -1051 */ UINT64_C (0x39844DBC889F8EC2), 0x73B0EC6B, -335},
{ /* -1050 */ UINT64_C (0x73089B79113F1D84), 0xE761D8D5, -335},
{ /* -1049 */ UINT64_C (0xE61136F2227E3B09), 0xCEC3B1AB, -335},
{ /* -1048 */ UINT64_C (0x2E037163A07FA568), 0x5C8D89EF, -334},
{ /* -1047 */ UINT64_C (0x5C06E2C740FF4AD0), 0xB91B13DE, -334},
{ /* -1046 */ UINT64_C (0xB80DC58E81FE95A1), 0x723627BC, -334},
{ /* -1045 */ UINT64_C (0x24CF8DE94D32EAB9), 0xE3A46E59, -333},
{ /* -1044 */ UINT64_C (0x499F1BD29A65D573), 0xC748DCB1, -333},
{ /* -1043 */ UINT64_C (0x933E37A534CBAAE7), 0x8E91B963, -333},
{ /* -1042 */ UINT64_C (0x1D72D7EDD75BEEFB), 0x1C838B7A, -332},
{ /* -1041 */ UINT64_C (0x3AE5AFDBAEB7DDF6), 0x390716F4, -332},
{ /* -1040 */ UINT64_C (0x75CB5FB75D6FBBEC), 0x720E2DE9, -332},
{ /* -1039 */ UINT64_C (0xEB96BF6EBADF77D8), 0xE41C5BD2, -332},
{ /* -1038 */ UINT64_C (0x2F1E2649589317F8), 0x2D9F4590, -331},
{ /* -1037 */ UINT64_C (0x5E3C4C92B1262FF0), 0x5B3E8B21, -331},
{ /* -1036 */ UINT64_C (0xBC789925624C5FE0), 0xB67D1641, -331},
{ /* -1035 */ UINT64_C (0x25B1B83AAD427993), 0x57B29E0D, -330},
{ /* -1034 */ UINT64_C (0x4B6370755A84F326), 0xAF653C1A, -330},
{ /* -1033 */ UINT64_C (0x96C6E0EAB509E64D), 0x5ECA7834, -330},
{ /* -1032 */ UINT64_C (0x1E27C69557686142), 0xAC8EE4D7, -329},
{ /* -1031 */ UINT64_C (0x3C4F8D2AAED0C285), 0x591DC9AE, -329},
{ /* -1030 */ UINT64_C (0x789F1A555DA1850A), 0xB23B935D, -329},
{ /* -1029 */ UINT64_C (0xF13E34AABB430A15), 0x647726BA, -329},
{ /* -1028 */ UINT64_C (0x303FA4222573CED1), 0x1417D48C, -328},
{ /* -1027 */ UINT64_C (0x607F48444AE79DA2), 0x282FA917, -328},
{ /* -1026 */ UINT64_C (0xC0FE908895CF3B44), 0x505F522E, -328},
{ /* -1025 */ UINT64_C (0x2699501B51297240), 0xDCDFDD3C, -327},
{ /* -1024 */ UINT64_C (0x4D32A036A252E481), 0xB9BFBA79, -327},
{ /* -1023 */ UINT64_C (0x9A65406D44A5C903), 0x737F74F2, -327},
{ /* -1022 */ UINT64_C (0x1EE10CE2A7545B67), 0x17197DCA, -326},
{ /* -1021 */ UINT64_C (0x3DC219C54EA8B6CE), 0x2E32FB94, -326},
{ /* -1020 */ UINT64_C (0x7B84338A9D516D9C), 0x5C65F728, -326},
{ /* -1019 */ UINT64_C (0xF70867153AA2DB38), 0xB8CBEE50, -326},
{ /* -1018 */ UINT64_C (0x3168149DD886F8A4), 0xF1C262DD, -325},
{ /* -1017 */ UINT64_C (0x62D0293BB10DF149), 0xE384C5BA, -325},
{ /* -1016 */ UINT64_C (0xC5A05277621BE293), 0xC7098B73, -325},
{ /* -1015 */ UINT64_C (0x278676E4AD38C6EA), 0x5B01E8B1, -324},
{ /* -1014 */ UINT64_C (0x4F0CEDC95A718DD4), 0xB603D161, -324},
{ /* -1013 */ UINT64_C (0x9E19DB92B4E31BA9), 0x6C07A2C2, -324},
{ /* -1012 */ UINT64_C (0x1F9EC583BDC70588), 0x48CE53C0, -323},
{ /* -1011 */ UINT64_C (0x3F3D8B077B8E0B10), 0x919CA781, -323},
{ /* -1010 */ UINT64_C (0x7E7B160EF71C1621), 0x23394F02, -323},
{ /* -1009 */ UINT64_C (0xFCF62C1DEE382C42), 0x46729E04, -323},
{ /* -1008 */ UINT64_C (0x3297A26C62D808DA), 0x0E16EC67, -322},
{ /* -1007 */ UINT64_C (0x652F44D8C5B011B4), 0x1C2DD8CE, -322},
{ /* -1006 */ UINT64_C (0xCA5E89B18B602368), 0x385BB19D, -322},
{ /* -1005 */ UINT64_C (0x28794EBD1BE00714), 0xD81256B9, -321},
{ /* -1004 */ UINT64_C (0x50F29D7A37C00E29), 0xB024AD72, -321},
{ /* -1003 */ UINT64_C (0xA1E53AF46F801C53), 0x60495AE4, -321},
{ /* -1002 */ UINT64_C (0x20610BCA7CB338DD), 0x79A84561, -320},
{ /* -1001 */ UINT64_C (0x40C21794F96671BA), 0xF3508AC2, -320},
{ /* -1000 */ UINT64_C (0x81842F29F2CCE375), 0xE6A11583, -320},
{ /* -999 */ UINT64_C (0x19E73CA1FD5C2D7D), 0xFAED044D, -319},
{ /* -998 */ UINT64_C (0x33CE7943FAB85AFB), 0xF5DA089B, -319},
{ /* -997 */ UINT64_C (0x679CF287F570B5F7), 0xEBB41136, -319},
{ /* -996 */ UINT64_C (0xCF39E50FEAE16BEF), 0xD768226B, -319},
{ /* -995 */ UINT64_C (0x2971FA9CC8937BFC), 0xC4AE6D49, -318},
{ /* -994 */ UINT64_C (0x52E3F5399126F7F9), 0x895CDA91, -318},
{ /* -993 */ UINT64_C (0xA5C7EA73224DEFF3), 0x12B9B523, -318},
{ /* -992 */ UINT64_C (0x2127FBB0A075FCCA), 0x36F1F107, -317},
{ /* -991 */ UINT64_C (0x424FF76140EBF994), 0x6DE3E20E, -317},
{ /* -990 */ UINT64_C (0x849FEEC281D7F328), 0xDBC7C41C, -317},
{ /* -989 */ UINT64_C (0x1A8662F3B3919708), 0x2BF4C0D2, -316},
{ /* -988 */ UINT64_C (0x350CC5E767232E10), 0x57E981A5, -316},
{ /* -987 */ UINT64_C (0x6A198BCECE465C20), 0xAFD30349, -316},
{ /* -986 */ UINT64_C (0xD433179D9C8CB841), 0x5FA60693, -316},
{ /* -985 */ UINT64_C (0x2A709E52B8E8F1A6), 0xACBACE1D, -315},
{ /* -984 */ UINT64_C (0x54E13CA571D1E34D), 0x59759C3B, -315},
{ /* -983 */ UINT64_C (0xA9C2794AE3A3C69A), 0xB2EB3875, -315},
{ /* -982 */ UINT64_C (0x21F3B1DBC720C152), 0x23C8A4E4, -314},
{ /* -981 */ UINT64_C (0x43E763B78E4182A4), 0x479149C9, -314},
{ /* -980 */ UINT64_C (0x87CEC76F1C830548), 0x8F229391, -314},
{ /* -979 */ UINT64_C (0x1B295B1638E7010E), 0x8306EA50, -313},
{ /* -978 */ UINT64_C (0x3652B62C71CE021D), 0x060DD4A0, -313},
{ /* -977 */ UINT64_C (0x6CA56C58E39C043A), 0x0C1BA941, -313},
{ /* -976 */ UINT64_C (0xD94AD8B1C7380874), 0x18375282, -313},
{ /* -975 */ UINT64_C (0x2B755E89F4A4CE7D), 0x9E7176E7, -312},
{ /* -974 */ UINT64_C (0x56EABD13E9499CFB), 0x3CE2EDCD, -312},
{ /* -973 */ UINT64_C (0xADD57A27D29339F6), 0x79C5DB9B, -312},
{ /* -972 */ UINT64_C (0x22C44BA19083D864), 0x7EC12BEC, -311},
{ /* -971 */ UINT64_C (0x458897432107B0C8), 0xFD8257D8, -311},
{ /* -970 */ UINT64_C (0x8B112E86420F6191), 0xFB04AFAF, -311},
{ /* -969 */ UINT64_C (0x1BD03C81406979E9), 0xFF00EFF0, -310},
{ /* -968 */ UINT64_C (0x37A0790280D2F3D3), 0xFE01DFE0, -310},
{ /* -967 */ UINT64_C (0x6F40F20501A5E7A7), 0xFC03BFBF, -310},
{ /* -966 */ UINT64_C (0xDE81E40A034BCF4F), 0xF8077F7F, -310},
{ /* -965 */ UINT64_C (0x2C8060CECD758FDC), 0xCB34B319, -309},
{ /* -964 */ UINT64_C (0x5900C19D9AEB1FB9), 0x96696633, -309},
{ /* -963 */ UINT64_C (0xB201833B35D63F73), 0x2CD2CC65, -309},
{ /* -962 */ UINT64_C (0x2399E70BD7913FE3), 0xD5C3C27B, -308},
{ /* -961 */ UINT64_C (0x4733CE17AF227FC7), 0xAB8784F5, -308},
{ /* -960 */ UINT64_C (0x8E679C2F5E44FF8F), 0x570F09EB, -308},
{ /* -959 */ UINT64_C (0x1C7B1F3CAC74331C), 0xAB0301FC, -307},
{ /* -958 */ UINT64_C (0x38F63E7958E86639), 0x560603F7, -307},
{ /* -957 */ UINT64_C (0x71EC7CF2B1D0CC72), 0xAC0C07EF, -307},
{ /* -956 */ UINT64_C (0xE3D8F9E563A198E5), 0x58180FDE, -307},
{ /* -955 */ UINT64_C (0x2D91CB94472051C7), 0x7804CFF9, -306},
{ /* -954 */ UINT64_C (0x5B2397288E40A38E), 0xF0099FF2, -306},
{ /* -953 */ UINT64_C (0xB6472E511C81471D), 0xE0133FE5, -306},
{ /* -952 */ UINT64_C (0x2474A2DD05B3749F), 0x93370CC7, -305},
{ /* -951 */ UINT64_C (0x48E945BA0B66E93F), 0x266E198F, -305},
{ /* -950 */ UINT64_C (0x91D28B7416CDD27E), 0x4CDC331D, -305},
{ /* -949 */ UINT64_C (0x1D2A1BE4048F907F), 0xA8F8D706, -304},
{ /* -948 */ UINT64_C (0x3A5437C8091F20FF), 0x51F1AE0C, -304},
{ /* -947 */ UINT64_C (0x74A86F90123E41FE), 0xA3E35C17, -304},
{ /* -946 */ UINT64_C (0xE950DF20247C83FD), 0x47C6B82F, -304},
{ /* -945 */ UINT64_C (0x2EA9C639A0E5B3FF), 0x74C15809, -303},
{ /* -944 */ UINT64_C (0x5D538C7341CB67FE), 0xE982B013, -303},
{ /* -943 */ UINT64_C (0xBAA718E68396CFFD), 0xD3056026, -303},
{ /* -942 */ UINT64_C (0x25549E9480B7C332), 0xC3CDE008, -302},
{ /* -941 */ UINT64_C (0x4AA93D29016F8665), 0x879BC00F, -302},
{ /* -940 */ UINT64_C (0x95527A5202DF0CCB), 0x0F37801E, -302},
{ /* -939 */ UINT64_C (0x1DDD4BAA0093028F), 0x030B19A0, -301},
{ /* -938 */ UINT64_C (0x3BBA97540126051E), 0x0616333F, -301},
{ /* -937 */ UINT64_C (0x77752EA8024C0A3C), 0x0C2C667E, -301},
{ /* -936 */ UINT64_C (0xEEEA5D5004981478), 0x1858CCFD, -301},
{ /* -935 */ UINT64_C (0x2FC8791000EB374B), 0x3811C299, -300},
{ /* -934 */ UINT64_C (0x5F90F22001D66E96), 0x70238532, -300},
{ /* -933 */ UINT64_C (0xBF21E44003ACDD2C), 0xE0470A64, -300},
{ /* -932 */ UINT64_C (0x2639FA7333EF5F6F), 0x600E3547, -299},
{ /* -931 */ UINT64_C (0x4C73F4E667DEBEDE), 0xC01C6A8E, -299},
{ /* -930 */ UINT64_C (0x98E7E9CCCFBD7DBD), 0x8038D51D, -299},
{ /* -929 */ UINT64_C (0x1E94C85C298C4C59), 0x19A4F76C, -298},
{ /* -928 */ UINT64_C (0x3D2990B8531898B2), 0x3349EED8, -298},
{ /* -927 */ UINT64_C (0x7A532170A6313164), 0x6693DDB1, -298},
{ /* -926 */ UINT64_C (0xF4A642E14C6262C8), 0xCD27BB61, -298},
{ /* -925 */ UINT64_C (0x30EE0D60427A13C1), 0xC2A18BE0, -297},
{ /* -924 */ UINT64_C (0x61DC1AC084F42783), 0x854317C0, -297},
{ /* -923 */ UINT64_C (0xC3B8358109E84F07), 0x0A862F81, -297},
{ /* -922 */ UINT64_C (0x2724D780352E7634), 0x9BB46FE7, -296},
{ /* -921 */ UINT64_C (0x4E49AF006A5CEC69), 0x3768DFCD, -296},
{ /* -920 */ UINT64_C (0x9C935E00D4B9D8D2), 0x6ED1BF9A, -296},
{ /* -919 */ UINT64_C (0x1F50AC6690F1F82A), 0x1629F31F, -295},
{ /* -918 */ UINT64_C (0x3EA158CD21E3F054), 0x2C53E63E, -295},
{ /* -917 */ UINT64_C (0x7D42B19A43C7E0A8), 0x58A7CC7B, -295},
{ /* -916 */ UINT64_C (0xFA856334878FC150), 0xB14F98F7, -295},
{ /* -915 */ UINT64_C (0x321AAD70E7E98D10), 0x237651CB, -294},
{ /* -914 */ UINT64_C (0x64355AE1CFD31A20), 0x46ECA396, -294},
{ /* -913 */ UINT64_C (0xC86AB5C39FA63440), 0x8DD9472C, -294},
{ /* -912 */ UINT64_C (0x2815578D865470D9), 0xB5F8416F, -293},
{ /* -911 */ UINT64_C (0x502AAF1B0CA8E1B3), 0x6BF082DE, -293},
{ /* -910 */ UINT64_C (0xA0555E361951C366), 0xD7E105BD, -293},
{ /* -909 */ UINT64_C (0x201112D79EA9F3E1), 0x5E603459, -292},
{ /* -908 */ UINT64_C (0x402225AF3D53E7C2), 0xBCC068B2, -292},
{ /* -907 */ UINT64_C (0x80444B5E7AA7CF85), 0x7980D164, -292},
{ /* -906 */ UINT64_C (0x19A742461887F64D), 0xE519C37A, -291},
{ /* -905 */ UINT64_C (0x334E848C310FEC9B), 0xCA3386F5, -291},
{ /* -904 */ UINT64_C (0x669D0918621FD937), 0x94670DE9, -291},
{ /* -903 */ UINT64_C (0xCD3A1230C43FB26F), 0x28CE1BD3, -291},
{ /* -902 */ UINT64_C (0x290B9D3CF40CBD49), 0x6E8F9F2A, -290},
{ /* -901 */ UINT64_C (0x52173A79E8197A92), 0xDD1F3E54, -290},
{ /* -900 */ UINT64_C (0xA42E74F3D032F525), 0xBA3E7CA9, -290},
{ /* -899 */ UINT64_C (0x20D61763F670976D), 0xF20C7F55, -289},
{ /* -898 */ UINT64_C (0x41AC2EC7ECE12EDB), 0xE418FEAA, -289},
{ /* -897 */ UINT64_C (0x83585D8FD9C25DB7), 0xC831FD54, -289},
{ /* -896 */ UINT64_C (0x1A44DF832B8D45F1), 0x8E7065DE, -288},
{ /* -895 */ UINT64_C (0x3489BF06571A8BE3), 0x1CE0CBBB, -288},
{ /* -894 */ UINT64_C (0x69137E0CAE3517C6), 0x39C19776, -288},
{ /* -893 */ UINT64_C (0xD226FC195C6A2F8C), 0x73832EEC, -288},
{ /* -892 */ UINT64_C (0x2A07CC05127BA31C), 0x171A3C96, -287},
{ /* -891 */ UINT64_C (0x540F980A24F74638), 0x2E34792B, -287},
{ /* -890 */ UINT64_C (0xA81F301449EE8C70), 0x5C68F257, -287},
{ /* -889 */ UINT64_C (0x219FD66A752FB5B0), 0x127B63AB, -286},
{ /* -888 */ UINT64_C (0x433FACD4EA5F6B60), 0x24F6C756, -286},
{ /* -887 */ UINT64_C (0x867F59A9D4BED6C0), 0x49ED8EAC, -286},
{ /* -886 */ UINT64_C (0x1AE64521F7595E26), 0x752F82EF, -285},
{ /* -885 */ UINT64_C (0x35CC8A43EEB2BC4C), 0xEA5F05DE, -285},
{ /* -884 */ UINT64_C (0x6B991487DD657899), 0xD4BE0BBD, -285},
{ /* -883 */ UINT64_C (0xD732290FBACAF133), 0xA97C1779, -285},
{ /* -882 */ UINT64_C (0x2B0A0836588EFD0A), 0x5518D17F, -284},
{ /* -881 */ UINT64_C (0x5614106CB11DFA14), 0xAA31A2FD, -284},
{ /* -880 */ UINT64_C (0xAC2820D9623BF429), 0x546345FB, -284},
{ /* -879 */ UINT64_C (0x226E6CF846D8CA6E), 0xAA7A4132, -283},
{ /* -878 */ UINT64_C (0x44DCD9F08DB194DD), 0x54F48264, -283},
{ /* -877 */ UINT64_C (0x89B9B3E11B6329BA), 0xA9E904C8, -283},
{ /* -876 */ UINT64_C (0x1B8B8A6038AD6EBE), 0xEEC83428, -282},
{ /* -875 */ UINT64_C (0x371714C0715ADD7D), 0xDD906850, -282},
{ /* -874 */ UINT64_C (0x6E2E2980E2B5BAFB), 0xBB20D0A0, -282},
{ /* -873 */ UINT64_C (0xDC5C5301C56B75F7), 0x7641A141, -282},
{ /* -872 */ UINT64_C (0x2C1277005AAF1797), 0xE47386A7, -281},
{ /* -871 */ UINT64_C (0x5824EE00B55E2F2F), 0xC8E70D4D, -281},
{ /* -870 */ UINT64_C (0xB049DC016ABC5E5F), 0x91CE1A9A, -281},
{ /* -869 */ UINT64_C (0x2341F8CD1558DFAC), 0xB6C2D21F, -280},
{ /* -868 */ UINT64_C (0x4683F19A2AB1BF59), 0x6D85A43E, -280},
{ /* -867 */ UINT64_C (0x8D07E33455637EB2), 0xDB0B487B, -280},
{ /* -866 */ UINT64_C (0x1C34C70A777A4C8A), 0x2BCF0E7F, -279},
{ /* -865 */ UINT64_C (0x38698E14EEF49914), 0x579E1CFE, -279},
{ /* -864 */ UINT64_C (0x70D31C29DDE93228), 0xAF3C39FC, -279},
{ /* -863 */ UINT64_C (0xE1A63853BBD26451), 0x5E7873F9, -279},
{ /* -862 */ UINT64_C (0x2D213E7725907A76), 0xAC7E7D98, -278},
{ /* -861 */ UINT64_C (0x5A427CEE4B20F4ED), 0x58FCFB30, -278},
{ /* -860 */ UINT64_C (0xB484F9DC9641E9DA), 0xB1F9F661, -278},
{ /* -859 */ UINT64_C (0x241A985F514061F8), 0x89FECAE0, -277},
{ /* -858 */ UINT64_C (0x483530BEA280C3F1), 0x13FD95C0, -277},
{ /* -857 */ UINT64_C (0x906A617D450187E2), 0x27FB2B80, -277},
{ /* -856 */ UINT64_C (0x1CE2137F74338193), 0xA198A24D, -276},
{ /* -855 */ UINT64_C (0x39C426FEE8670327), 0x4331449A, -276},
{ /* -854 */ UINT64_C (0x73884DFDD0CE064E), 0x86628934, -276},
{ /* -853 */ UINT64_C (0xE7109BFBA19C0C9D), 0x0CC51267, -276},
{ /* -852 */ UINT64_C (0x2E368598B9EC0285), 0xCF5A9D48, -275},
{ /* -851 */ UINT64_C (0x5C6D0B3173D8050B), 0x9EB53A90, -275},
{ /* -850 */ UINT64_C (0xB8DA1662E7B00A17), 0x3D6A751F, -275},
{ /* -849 */ UINT64_C (0x24F86AE094BCCED1), 0x72AEE439, -274},
{ /* -848 */ UINT64_C (0x49F0D5C129799DA2), 0xE55DC873, -274},
{ /* -847 */ UINT64_C (0x93E1AB8252F33B45), 0xCABB90E6, -274},
{ /* -846 */ UINT64_C (0x1D9388B3AA30A574), 0x5BBF1CFB, -273},
{ /* -845 */ UINT64_C (0x3B27116754614AE8), 0xB77E39F6, -273},
{ /* -844 */ UINT64_C (0x764E22CEA8C295D1), 0x6EFC73EB, -273},
{ /* -843 */ UINT64_C (0xEC9C459D51852BA2), 0xDDF8E7D6, -273},
{ /* -842 */ UINT64_C (0x2F527452A9E76F20), 0x92CB6191, -272},
{ /* -841 */ UINT64_C (0x5EA4E8A553CEDE41), 0x2596C322, -272},
{ /* -840 */ UINT64_C (0xBD49D14AA79DBC82), 0x4B2D8645, -272},
{ /* -839 */ UINT64_C (0x25DB90422185F280), 0x756F8141, -271},
{ /* -838 */ UINT64_C (0x4BB72084430BE500), 0xEADF0282, -271},
{ /* -837 */ UINT64_C (0x976E41088617CA01), 0xD5BE0504, -271},
{ /* -836 */ UINT64_C (0x1E494034E79E5B99), 0xF78C6767, -270},
{ /* -835 */ UINT64_C (0x3C928069CF3CB733), 0xEF18CECE, -270},
{ /* -834 */ UINT64_C (0x792500D39E796E67), 0xDE319D9D, -270},
{ /* -833 */ UINT64_C (0xF24A01A73CF2DCCF), 0xBC633B39, -270},
{ /* -832 */ UINT64_C (0x30753387D8FD5F5C), 0xBF470BD8, -269},
{ /* -831 */ UINT64_C (0x60EA670FB1FABEB9), 0x7E8E17B1, -269},
{ /* -830 */ UINT64_C (0xC1D4CE1F63F57D72), 0xFD1C2F61, -269},
{ /* -829 */ UINT64_C (0x26C429397A644C4A), 0x329F3CAD, -268},
{ /* -828 */ UINT64_C (0x4D885272F4C89894), 0x653E795A, -268},
{ /* -827 */ UINT64_C (0x9B10A4E5E9913128), 0xCA7CF2B4, -268},
{ /* -826 */ UINT64_C (0x1F03542DFB83703B), 0x5BB296F1, -267},
{ /* -825 */ UINT64_C (0x3E06A85BF706E076), 0xB7652DE2, -267},
{ /* -824 */ UINT64_C (0x7C0D50B7EE0DC0ED), 0x6ECA5BC3, -267},
{ /* -823 */ UINT64_C (0xF81AA16FDC1B81DA), 0xDD94B787, -267},
{ /* -822 */ UINT64_C (0x319EED165F38B392), 0x2C50F181, -266},
{ /* -821 */ UINT64_C (0x633DDA2CBE716724), 0x58A1E303, -266},
{ /* -820 */ UINT64_C (0xC67BB4597CE2CE48), 0xB143C605, -266},
{ /* -819 */ UINT64_C (0x27B2574518FA2941), 0xBD0D8E01, -265},
{ /* -818 */ UINT64_C (0x4F64AE8A31F45283), 0x7A1B1C02, -265},
{ /* -817 */ UINT64_C (0x9EC95D1463E8A506), 0xF4363804, -265},
{ /* -816 */ UINT64_C (0x1FC1DF6A7A61BA9A), 0xFDA4719A, -264},
{ /* -815 */ UINT64_C (0x3F83BED4F4C37535), 0xFB48E335, -264},
{ /* -814 */ UINT64_C (0x7F077DA9E986EA6B), 0xF691C66A, -264},
{ /* -813 */ UINT64_C (0xFE0EFB53D30DD4D7), 0xED238CD4, -264},
{ /* -812 */ UINT64_C (0x32CFCBDD909C5DC4), 0xC9071C2A, -263},
{ /* -811 */ UINT64_C (0x659F97BB2138BB89), 0x920E3855, -263},
{ /* -810 */ UINT64_C (0xCB3F2F7642717713), 0x241C70A9, -263},
{ /* -809 */ UINT64_C (0x28A63CB1407D17D0), 0xA0D27CEF, -262},
{ /* -808 */ UINT64_C (0x514C796280FA2FA1), 0x41A4F9DD, -262},
{ /* -807 */ UINT64_C (0xA298F2C501F45F42), 0x8349F3BB, -262},
{ /* -806 */ UINT64_C (0x2084FD5A99FDACA6), 0xE70ECA59, -261},
{ /* -805 */ UINT64_C (0x4109FAB533FB594D), 0xCE1D94B1, -261},
{ /* -804 */ UINT64_C (0x8213F56A67F6B29B), 0x9C3B2962, -261},
{ /* -803 */ UINT64_C (0x1A03FDE214CAF085), 0x85A56EAD, -260},
{ /* -802 */ UINT64_C (0x3407FBC42995E10B), 0x0B4ADD5A, -260},
{ /* -801 */ UINT64_C (0x680FF788532BC216), 0x1695BAB5, -260},
{ /* -800 */ UINT64_C (0xD01FEF10A657842C), 0x2D2B756A, -260},
{ /* -799 */ UINT64_C (0x299FFC9CEE1180D5), 0xA2A24AAF, -259},
{ /* -798 */ UINT64_C (0x533FF939DC2301AB), 0x4544955D, -259},
{ /* -797 */ UINT64_C (0xA67FF273B8460356), 0x8A892ABB, -259},
{ /* -796 */ UINT64_C (0x214CCA1724DACD77), 0xB54EA225, -258},
{ /* -795 */ UINT64_C (0x4299942E49B59AEF), 0x6A9D444B, -258},
{ /* -794 */ UINT64_C (0x8533285C936B35DE), 0xD53A8896, -258},
{ /* -793 */ UINT64_C (0x1AA3D4DF50AF0AC6), 0x2AA54E84, -257},
{ /* -792 */ UINT64_C (0x3547A9BEA15E158C), 0x554A9D09, -257},
{ /* -791 */ UINT64_C (0x6A8F537D42BC2B18), 0xAA953A11, -257},
{ /* -790 */ UINT64_C (0xD51EA6FA85785631), 0x552A7422, -257},
{ /* -789 */ UINT64_C (0x2A9FBAFEE77E77A3), 0x776EE407, -256},
{ /* -788 */ UINT64_C (0x553F75FDCEFCEF46), 0xEEDDC80E, -256},
{ /* -787 */ UINT64_C (0xAA7EEBFB9DF9DE8D), 0xDDBB901C, -256},
{ /* -786 */ UINT64_C (0x2219626585FEC61C), 0x5F8BE99F, -255},
{ /* -785 */ UINT64_C (0x4432C4CB0BFD8C38), 0xBF17D33E, -255},
{ /* -784 */ UINT64_C (0x8865899617FB1871), 0x7E2FA67C, -255},
{ /* -783 */ UINT64_C (0x1B4781EAD1989E7D), 0x193CBAE6, -254},
{ /* -782 */ UINT64_C (0x368F03D5A3313CFA), 0x327975CB, -254},
{ /* -781 */ UINT64_C (0x6D1E07AB466279F4), 0x64F2EB97, -254},
{ /* -780 */ UINT64_C (0xDA3C0F568CC4F3E8), 0xC9E5D72E, -254},
{ /* -779 */ UINT64_C (0x2BA59CAAE8F430C8), 0x28612B09, -253},
{ /* -778 */ UINT64_C (0x574B3955D1E86190), 0x50C25612, -253},
{ /* -777 */ UINT64_C (0xAE9672ABA3D0C320), 0xA184AC24, -253},
{ /* -776 */ UINT64_C (0x22EAE3BBED902706), 0x86B4226E, -252},
{ /* -775 */ UINT64_C (0x45D5C777DB204E0D), 0x0D6844DB, -252},
{ /* -774 */ UINT64_C (0x8BAB8EEFB6409C1A), 0x1AD089B7, -252},
{ /* -773 */ UINT64_C (0x1BEF1C9657A6859E), 0xD229B525, -251},
{ /* -772 */ UINT64_C (0x37DE392CAF4D0B3D), 0xA4536A49, -251},
{ /* -771 */ UINT64_C (0x6FBC72595E9A167B), 0x48A6D492, -251},
{ /* -770 */ UINT64_C (0xDF78E4B2BD342CF6), 0x914DA924, -251},
{ /* -769 */ UINT64_C (0x2CB1C756F2A408FE), 0x1D0F883A, -250},
{ /* -768 */ UINT64_C (0x59638EADE54811FC), 0x3A1F1075, -250},
{ /* -767 */ UINT64_C (0xB2C71D5BCA9023F8), 0x743E20EA, -250},
{ /* -766 */ UINT64_C (0x23C16C458EE9A0CB), 0x4A72D362, -249},
{ /* -765 */ UINT64_C (0x4782D88B1DD34196), 0x94E5A6C4, -249},
{ /* -764 */ UINT64_C (0x8F05B1163BA6832D), 0x29CB4D88, -249},
{ /* -763 */ UINT64_C (0x1C9ABD04725480A2), 0xA1F575E8, -248},
{ /* -762 */ UINT64_C (0x39357A08E4A90145), 0x43EAEBD0, -248},
{ /* -761 */ UINT64_C (0x726AF411C952028A), 0x87D5D7A0, -248},
{ /* -760 */ UINT64_C (0xE4D5E82392A40515), 0x0FABAF40, -248},
{ /* -759 */ UINT64_C (0x2DC461A0B6ED9A9D), 0xCFEF230D, -247},
{ /* -758 */ UINT64_C (0x5B88C3416DDB353B), 0x9FDE461A, -247},
{ /* -757 */ UINT64_C (0xB7118682DBB66A77), 0x3FBC8C33, -247},
{ /* -756 */ UINT64_C (0x249D1AE6F8BE154B), 0x0CBF4F3D, -246},
{ /* -755 */ UINT64_C (0x493A35CDF17C2A96), 0x197E9E7B, -246},
{ /* -754 */ UINT64_C (0x92746B9BE2F8552C), 0x32FD3CF6, -246},
{ /* -753 */ UINT64_C (0x1D4A7BEBFA31AAA2), 0x70990C31, -245},
{ /* -752 */ UINT64_C (0x3A94F7D7F4635544), 0xE1321862, -245},
{ /* -751 */ UINT64_C (0x7529EFAFE8C6AA89), 0xC26430C5, -245},
{ /* -750 */ UINT64_C (0xEA53DF5FD18D5513), 0x84C86189, -245},
{ /* -749 */ UINT64_C (0x2EDD931329E91103), 0xE75B46B5, -244},
{ /* -748 */ UINT64_C (0x5DBB262653D22207), 0xCEB68D6A, -244},
{ /* -747 */ UINT64_C (0xBB764C4CA7A4440F), 0x9D6D1AD4, -244},
{ /* -746 */ UINT64_C (0x257E0F4287EDA736), 0x52AF6BC4, -243},
{ /* -745 */ UINT64_C (0x4AFC1E850FDB4E6C), 0xA55ED788, -243},
{ /* -744 */ UINT64_C (0x95F83D0A1FB69CD9), 0x4ABDAF10, -243},
{ /* -743 */ UINT64_C (0x1DFE729B9FF15291), 0xDBBF896A, -242},
{ /* -742 */ UINT64_C (0x3BFCE5373FE2A523), 0xB77F12D3, -242},
{ /* -741 */ UINT64_C (0x77F9CA6E7FC54A47), 0x6EFE25A6, -242},
{ /* -740 */ UINT64_C (0xEFF394DCFF8A948E), 0xDDFC4B4D, -242},
{ /* -739 */ UINT64_C (0x2FFD842C331BB74F), 0xC5FF4243, -241},
{ /* -738 */ UINT64_C (0x5FFB085866376E9F), 0x8BFE8485, -241},
{ /* -737 */ UINT64_C (0xBFF610B0CC6EDD3F), 0x17FD090A, -241},
{ /* -736 */ UINT64_C (0x266469BCF5AFC5D9), 0x6B329B68, -240},
{ /* -735 */ UINT64_C (0x4CC8D379EB5F8BB2), 0xD66536D1, -240},
{ /* -734 */ UINT64_C (0x9991A6F3D6BF1765), 0xACCA6DA2, -240},
{ /* -733 */ UINT64_C (0x1EB6BAFD91596B14), 0x55C215ED, -239},
{ /* -732 */ UINT64_C (0x3D6D75FB22B2D628), 0xAB842BDA, -239},
{ /* -731 */ UINT64_C (0x7ADAEBF64565AC51), 0x570857B5, -239},
{ /* -730 */ UINT64_C (0xF5B5D7EC8ACB58A2), 0xAE10AF69, -239},
{ /* -729 */ UINT64_C (0x31245E628228AB53), 0xBC69BCAF, -238},
{ /* -728 */ UINT64_C (0x6248BCC5045156A7), 0x78D3795D, -238},
{ /* -727 */ UINT64_C (0xC491798A08A2AD4E), 0xF1A6F2BB, -238},
{ /* -726 */ UINT64_C (0x27504B8201BA22A9), 0x6387CA25, -237},
{ /* -725 */ UINT64_C (0x4EA0970403744552), 0xC70F944B, -237},
{ /* -724 */ UINT64_C (0x9D412E0806E88AA5), 0x8E1F2895, -237},
{ /* -723 */ UINT64_C (0x1F736F9B3494E887), 0x82D3081E, -236},
{ /* -722 */ UINT64_C (0x3EE6DF366929D10F), 0x05A6103C, -236},
{ /* -721 */ UINT64_C (0x7DCDBE6CD253A21E), 0x0B4C2078, -236},
{ /* -720 */ UINT64_C (0xFB9B7CD9A4A7443C), 0x169840EF, -236},
{ /* -719 */ UINT64_C (0x32524C2B8754A73F), 0x37B80CFD, -235},
{ /* -718 */ UINT64_C (0x64A498570EA94E7E), 0x6F7019F9, -235},
{ /* -717 */ UINT64_C (0xC94930AE1D529CFC), 0xDEE033F2, -235},
{ /* -716 */ UINT64_C (0x2841D689391085CC), 0x2C933D97, -234},
{ /* -715 */ UINT64_C (0x5083AD1272210B98), 0x59267B2E, -234},
{ /* -714 */ UINT64_C (0xA1075A24E4421730), 0xB24CF65C, -234},
{ /* -713 */ UINT64_C (0x2034ABA0FA739E3C), 0xF075CADF, -233},
{ /* -712 */ UINT64_C (0x40695741F4E73C79), 0xE0EB95BE, -233},
{ /* -711 */ UINT64_C (0x80D2AE83E9CE78F3), 0xC1D72B7C, -233},
{ /* -710 */ UINT64_C (0x19C3BC80C85C7E97), 0x26C4A24C, -232},
{ /* -709 */ UINT64_C (0x3387790190B8FD2E), 0x4D894498, -232},
{ /* -708 */ UINT64_C (0x670EF2032171FA5C), 0x9B128930, -232},
{ /* -707 */ UINT64_C (0xCE1DE40642E3F4B9), 0x36251261, -232},
{ /* -706 */ UINT64_C (0x29392D9ADA2D9758), 0x3E076A13, -231},
{ /* -705 */ UINT64_C (0x52725B35B45B2EB0), 0x7C0ED427, -231},
{ /* -704 */ UINT64_C (0xA4E4B66B68B65D60), 0xF81DA84D, -231},
{ /* -703 */ UINT64_C (0x20FA8AE248247913), 0x64D2BB43, -230},
{ /* -702 */ UINT64_C (0x41F515C49048F226), 0xC9A57685, -230},
{ /* -701 */ UINT64_C (0x83EA2B892091E44D), 0x934AED0B, -230},
{ /* -700 */ UINT64_C (0x1A6208B50683940F), 0x83DBC902, -229},
{ /* -699 */ UINT64_C (0x34C4116A0D07281F), 0x07B79204, -229},
{ /* -698 */ UINT64_C (0x698822D41A0E503E), 0x0F6F2409, -229},
{ /* -697 */ UINT64_C (0xD31045A8341CA07C), 0x1EDE4811, -229},
{ /* -696 */ UINT64_C (0x2A367454D738ECE5), 0x9FC60E6A, -228},
{ /* -695 */ UINT64_C (0x546CE8A9AE71D9CB), 0x3F8C1CD4, -228},
{ /* -694 */ UINT64_C (0xA8D9D1535CE3B396), 0x7F1839A7, -228},
{ /* -693 */ UINT64_C (0x21C529DD78FA571E), 0x196B3EBB, -227},
{ /* -692 */ UINT64_C (0x438A53BAF1F4AE3C), 0x32D67D76, -227},
{ /* -691 */ UINT64_C (0x8714A775E3E95C78), 0x65ACFAEC, -227},
{ /* -690 */ UINT64_C (0x1B04217DFA61DF4B), 0x4788FEFC, -226},
{ /* -689 */ UINT64_C (0x360842FBF4C3BE96), 0x8F11FDF8, -226},
{ /* -688 */ UINT64_C (0x6C1085F7E9877D2D), 0x1E23FBF0, -226},
{ /* -687 */ UINT64_C (0xD8210BEFD30EFA5A), 0x3C47F7E0, -226},
{ /* -686 */ UINT64_C (0x2B39CF2FF702FEDE), 0xD8DB3193, -225},
{ /* -685 */ UINT64_C (0x56739E5FEE05FDBD), 0xB1B66327, -225},
{ /* -684 */ UINT64_C (0xACE73CBFDC0BFB7B), 0x636CC64D, -225},
{ /* -683 */ UINT64_C (0x2294A5BFF8CF324B), 0xE0AF5ADC, -224},
{ /* -682 */ UINT64_C (0x45294B7FF19E6497), 0xC15EB5B8, -224},
{ /* -681 */ UINT64_C (0x8A5296FFE33CC92F), 0x82BD6B71, -224},
{ /* -680 */ UINT64_C (0x1BAA1E332D728EA3), 0x1A25E24A, -223},
{ /* -679 */ UINT64_C (0x37543C665AE51D46), 0x344BC494, -223},
{ /* -678 */ UINT64_C (0x6EA878CCB5CA3A8C), 0x68978927, -223},
{ /* -677 */ UINT64_C (0xDD50F1996B947518), 0xD12F124E, -223},
{ /* -676 */ UINT64_C (0x2C4363851584176B), 0x5D096A10, -222},
{ /* -675 */ UINT64_C (0x5886C70A2B082ED6), 0xBA12D41F, -222},
{ /* -674 */ UINT64_C (0xB10D8E1456105DAD), 0x7425A83F, -222},
{ /* -673 */ UINT64_C (0x23691C6A779CDF89), 0x173ABB40, -221},
{ /* -672 */ UINT64_C (0x46D238D4EF39BF12), 0x2E75767F, -221},
{ /* -671 */ UINT64_C (0x8DA471A9DE737E24), 0x5CEAECFF, -221},
{ /* -670 */ UINT64_C (0x1C5416BB92E3E607), 0x45C895CD, -220},
{ /* -669 */ UINT64_C (0x38A82D7725C7CC0E), 0x8B912B99, -220},
{ /* -668 */ UINT64_C (0x71505AEE4B8F981D), 0x17225732, -220},
{ /* -667 */ UINT64_C (0xE2A0B5DC971F303A), 0x2E44AE65, -220},
{ /* -666 */ UINT64_C (0x2D535792849FD672), 0x0940EFAE, -219},
{ /* -665 */ UINT64_C (0x5AA6AF25093FACE4), 0x1281DF5B, -219},
{ /* -664 */ UINT64_C (0xB54D5E4A127F59C8), 0x2503BEB7, -219},
{ /* -663 */ UINT64_C (0x2442AC7536E64528), 0x07672625, -218},
{ /* -662 */ UINT64_C (0x488558EA6DCC8A50), 0x0ECE4C49, -218},
{ /* -661 */ UINT64_C (0x910AB1D4DB9914A0), 0x1D9C9892, -218},
{ /* -660 */ UINT64_C (0x1D022390F8B83753), 0x391F51B7, -217},
{ /* -659 */ UINT64_C (0x3A044721F1706EA6), 0x723EA36E, -217},
{ /* -658 */ UINT64_C (0x74088E43E2E0DD4C), 0xE47D46DB, -217},
{ /* -657 */ UINT64_C (0xE8111C87C5C1BA99), 0xC8FA8DB7, -217},
{ /* -656 */ UINT64_C (0x2E69D2818DF38BB8), 0x5B654F8B, -216},
{ /* -655 */ UINT64_C (0x5CD3A5031BE71770), 0xB6CA9F16, -216},
{ /* -654 */ UINT64_C (0xB9A74A0637CE2EE1), 0x6D953E2C, -216},
{ /* -653 */ UINT64_C (0x25217534718FA2F9), 0xE2B772D6, -215},
{ /* -652 */ UINT64_C (0x4A42EA68E31F45F3), 0xC56EE5AB, -215},
{ /* -651 */ UINT64_C (0x9485D4D1C63E8BE7), 0x8ADDCB56, -215},
{ /* -650 */ UINT64_C (0x1DB45DC38E0C8261), 0x822C5BDE, -214},
{ /* -649 */ UINT64_C (0x3B68BB871C1904C3), 0x0458B7BC, -214},
{ /* -648 */ UINT64_C (0x76D1770E38320986), 0x08B16F78, -214},
{ /* -647 */ UINT64_C (0xEDA2EE1C7064130C), 0x1162DEF0, -214},
{ /* -646 */ UINT64_C (0x2F86FC6C167A6A35), 0x9D13C630, -213},
{ /* -645 */ UINT64_C (0x5F0DF8D82CF4D46B), 0x3A278C60, -213},
{ /* -644 */ UINT64_C (0xBE1BF1B059E9A8D6), 0x744F18C0, -213},
{ /* -643 */ UINT64_C (0x260596BCDEC854F7), 0xB0DC9E8D, -212},
{ /* -642 */ UINT64_C (0x4C0B2D79BD90A9EF), 0x61B93D1A, -212},
{ /* -641 */ UINT64_C (0x98165AF37B2153DE), 0xC3727A33, -212},
{ /* -640 */ UINT64_C (0x1E6ADEFD7F06AA5F), 0xC0B07ED7, -211},
{ /* -639 */ UINT64_C (0x3CD5BDFAFE0D54BF), 0x8160FDAE, -211},
{ /* -638 */ UINT64_C (0x79AB7BF5FC1AA97F), 0x02C1FB5C, -211},
{ /* -637 */ UINT64_C (0xF356F7EBF83552FE), 0x0583F6B9, -211},
{ /* -636 */ UINT64_C (0x30AAFE6264D776FF), 0x9AB3FE25, -210},
{ /* -635 */ UINT64_C (0x6155FCC4C9AEEDFF), 0x3567FC4A, -210},
{ /* -634 */ UINT64_C (0xC2ABF989935DDBFE), 0x6ACFF894, -210},
{ /* -633 */ UINT64_C (0x26EF31E850AC5F32), 0xE229981E, -209},
{ /* -632 */ UINT64_C (0x4DDE63D0A158BE65), 0xC453303B, -209},
{ /* -631 */ UINT64_C (0x9BBCC7A142B17CCB), 0x88A66076, -209},
{ /* -630 */ UINT64_C (0x1F25C186A6F04C28), 0xB4EE134B, -208},
{ /* -629 */ UINT64_C (0x3E4B830D4DE09851), 0x69DC2696, -208},
{ /* -628 */ UINT64_C (0x7C97061A9BC130A2), 0xD3B84D2B, -208},
{ /* -627 */ UINT64_C (0xF92E0C3537826145), 0xA7709A57, -208},
{ /* -626 */ UINT64_C (0x31D602710B1A1374), 0x54B01EDE, -207},
{ /* -625 */ UINT64_C (0x63AC04E2163426E8), 0xA9603DBC, -207},
{ /* -624 */ UINT64_C (0xC75809C42C684DD1), 0x52C07B79, -207},
{ /* -623 */ UINT64_C (0x27DE685A6F480F90), 0x43C018B2, -206},
{ /* -622 */ UINT64_C (0x4FBCD0B4DE901F20), 0x87803163, -206},
{ /* -621 */ UINT64_C (0x9F79A169BD203E41), 0x0F0062C7, -206},
{ /* -620 */ UINT64_C (0x1FE52048590672D9), 0xCFCCE08E, -205},
{ /* -619 */ UINT64_C (0x3FCA4090B20CE5B3), 0x9F99C11C, -205},
{ /* -618 */ UINT64_C (0x7F9481216419CB67), 0x3F338239, -205},
{ /* -617 */ UINT64_C (0xFF290242C83396CE), 0x7E670471, -205},
{ /* -616 */ UINT64_C (0x330833A6F4D71E29), 0x4C7B00E3, -204},
{ /* -615 */ UINT64_C (0x6610674DE9AE3C52), 0x98F601C7, -204},
{ /* -614 */ UINT64_C (0xCC20CE9BD35C78A5), 0x31EC038E, -204},
{ /* -613 */ UINT64_C (0x28D35C8590AC1821), 0x09FC00B6, -203},
{ /* -612 */ UINT64_C (0x51A6B90B21583042), 0x13F8016C, -203},
{ /* -611 */ UINT64_C (0xA34D721642B06084), 0x27F002D8, -203},
{ /* -610 */ UINT64_C (0x20A916D14089ACE7), 0x3B300092, -202},
{ /* -609 */ UINT64_C (0x41522DA2811359CE), 0x76600123, -202},
{ /* -608 */ UINT64_C (0x82A45B450226B39C), 0xECC00246, -202},
{ /* -607 */ UINT64_C (0x1A20DF0DCD3AF0B8), 0xFC2666DB, -201},
{ /* -606 */ UINT64_C (0x3441BE1B9A75E171), 0xF84CCDB6, -201},
{ /* -605 */ UINT64_C (0x68837C3734EBC2E3), 0xF0999B6C, -201},
{ /* -604 */ UINT64_C (0xD106F86E69D785C7), 0xE13336D7, -201},
{ /* -603 */ UINT64_C (0x29CE31AFAEC4B45B), 0x2D0A3E2B, -200},
{ /* -602 */ UINT64_C (0x539C635F5D8968B6), 0x5A147C56, -200},
{ /* -601 */ UINT64_C (0xA738C6BEBB12D16C), 0xB428F8AC, -200},
{ /* -600 */ UINT64_C (0x2171C159589D5D15), 0xBDA1CB56, -199},
{ /* -599 */ UINT64_C (0x42E382B2B13ABA2B), 0x7B4396AB, -199},
{ /* -598 */ UINT64_C (0x85C7056562757456), 0xF6872D56, -199},
{ /* -597 */ UINT64_C (0x1AC1677AAD4AB0DE), 0x314E3C44, -198},
{ /* -596 */ UINT64_C (0x3582CEF55A9561BC), 0x629C7889, -198},
{ /* -595 */ UINT64_C (0x6B059DEAB52AC378), 0xC538F112, -198},
{ /* -594 */ UINT64_C (0xD60B3BD56A5586F1), 0x8A71E224, -198},
{ /* -593 */ UINT64_C (0x2ACF0BF77BAAB496), 0xB549FA07, -197},
{ /* -592 */ UINT64_C (0x559E17EEF755692D), 0x6A93F40E, -197},
{ /* -591 */ UINT64_C (0xAB3C2FDDEEAAD25A), 0xD527E81D, -197},
{ /* -590 */ UINT64_C (0x223F3CC5FC889078), 0x9107FB39, -196},
{ /* -589 */ UINT64_C (0x447E798BF91120F1), 0x220FF672, -196},
{ /* -588 */ UINT64_C (0x88FCF317F22241E2), 0x441FECE4, -196},
{ /* -587 */ UINT64_C (0x1B65CA37FD3A0D2D), 0x40D32F61, -195},
{ /* -586 */ UINT64_C (0x36CB946FFA741A5A), 0x81A65EC1, -195},
{ /* -585 */ UINT64_C (0x6D9728DFF4E834B5), 0x034CBD83, -195},
{ /* -584 */ UINT64_C (0xDB2E51BFE9D0696A), 0x06997B06, -195},
{ /* -583 */ UINT64_C (0x2BD610599529AEAE), 0xCE1EB234, -194},
{ /* -582 */ UINT64_C (0x57AC20B32A535D5D), 0x9C3D6469, -194},
{ /* -581 */ UINT64_C (0xAF58416654A6BABB), 0x387AC8D2, -194},
{ /* -580 */ UINT64_C (0x2311A6AE10EE2558), 0xA4E55B5D, -193},
{ /* -579 */ UINT64_C (0x46234D5C21DC4AB1), 0x49CAB6BA, -193},
{ /* -578 */ UINT64_C (0x8C469AB843B89562), 0x93956D74, -193},
{ /* -577 */ UINT64_C (0x1C0E1EF1A724EAAD), 0x50B77C4A, -192},
{ /* -576 */ UINT64_C (0x381C3DE34E49D55A), 0xA16EF895, -192},
{ /* -575 */ UINT64_C (0x70387BC69C93AAB5), 0x42DDF12A, -192},
{ /* -574 */ UINT64_C (0xE070F78D3927556A), 0x85BBE254, -192},
{ /* -573 */ UINT64_C (0x2CE364B5D83B1115), 0x4DF26077, -191},
{ /* -572 */ UINT64_C (0x59C6C96BB076222A), 0x9BE4C0EE, -191},
{ /* -571 */ UINT64_C (0xB38D92D760EC4455), 0x37C981DD, -191},
{ /* -570 */ UINT64_C (0x23E91D5E4695A744), 0x3E5B805F, -190},
{ /* -569 */ UINT64_C (0x47D23ABC8D2B4E88), 0x7CB700BF, -190},
{ /* -568 */ UINT64_C (0x8FA475791A569D10), 0xF96E017D, -190},
{ /* -567 */ UINT64_C (0x1CBA7DE5054485D0), 0x31E2CD19, -189},
{ /* -566 */ UINT64_C (0x3974FBCA0A890BA0), 0x63C59A32, -189},
{ /* -565 */ UINT64_C (0x72E9F79415121740), 0xC78B3464, -189},
{ /* -564 */ UINT64_C (0xE5D3EF282A242E81), 0x8F1668C9, -189},
{ /* -563 */ UINT64_C (0x2DF72FD4D53A6FB3), 0x83047B5B, -188},
{ /* -562 */ UINT64_C (0x5BEE5FA9AA74DF67), 0x0608F6B7, -188},
{ /* -561 */ UINT64_C (0xB7DCBF5354E9BECE), 0x0C11ED6D, -188},
{ /* -560 */ UINT64_C (0x24C5BFDD7761F2F6), 0x0269FC49, -187},
{ /* -559 */ UINT64_C (0x498B7FBAEEC3E5EC), 0x04D3F892, -187},
{ /* -558 */ UINT64_C (0x9316FF75DD87CBD8), 0x09A7F124, -187},
{ /* -557 */ UINT64_C (0x1D6AFFE45F818F2B), 0x352196A1, -186},
{ /* -556 */ UINT64_C (0x3AD5FFC8BF031E56), 0x6A432D42, -186},
{ /* -555 */ UINT64_C (0x75ABFF917E063CAC), 0xD4865A83, -186},
{ /* -554 */ UINT64_C (0xEB57FF22FC0C7959), 0xA90CB507, -186},
{ /* -553 */ UINT64_C (0x2F11996D659C1845), 0x21CF5768, -185},
{ /* -552 */ UINT64_C (0x5E2332DACB38308A), 0x439EAED0, -185},
{ /* -551 */ UINT64_C (0xBC4665B596706114), 0x873D5D9F, -185},
{ /* -550 */ UINT64_C (0x25A7ADF11E1679D0), 0xE7D912B9, -184},
{ /* -549 */ UINT64_C (0x4B4F5BE23C2CF3A1), 0xCFB22573, -184},
{ /* -548 */ UINT64_C (0x969EB7C47859E743), 0x9F644AE6, -184},
{ /* -547 */ UINT64_C (0x1E1FBE5A7E786173), 0xECADA894, -183},
{ /* -546 */ UINT64_C (0x3C3F7CB4FCF0C2E7), 0xD95B5129, -183},
{ /* -545 */ UINT64_C (0x787EF969F9E185CF), 0xB2B6A251, -183},
{ /* -544 */ UINT64_C (0xF0FDF2D3F3C30B9F), 0x656D44A3, -183},
{ /* -543 */ UINT64_C (0x3032CA2A63F3CF1F), 0xE115DA87, -182},
{ /* -542 */ UINT64_C (0x60659454C7E79E3F), 0xC22BB50E, -182},
{ /* -541 */ UINT64_C (0xC0CB28A98FCF3C7F), 0x84576A1C, -182},
{ /* -540 */ UINT64_C (0x268F0821E98FD8E6), 0x4DAB1539, -181},
{ /* -539 */ UINT64_C (0x4D1E1043D31FB1CC), 0x9B562A71, -181},
{ /* -538 */ UINT64_C (0x9A3C2087A63F6399), 0x36AC54E3, -181},
{ /* -537 */ UINT64_C (0x1ED8D34E547313EB), 0x7155AA94, -180},
{ /* -536 */ UINT64_C (0x3DB1A69CA8E627D6), 0xE2AB5528, -180},
{ /* -535 */ UINT64_C (0x7B634D3951CC4FAD), 0xC556AA4F, -180},
{ /* -534 */ UINT64_C (0xF6C69A72A3989F5B), 0x8AAD549E, -180},
{ /* -533 */ UINT64_C (0x315AEBB0871E8645), 0x8222AA86, -179},
{ /* -532 */ UINT64_C (0x62B5D7610E3D0C8B), 0x0445550C, -179},
{ /* -531 */ UINT64_C (0xC56BAEC21C7A1916), 0x088AAA18, -179},
{ /* -530 */ UINT64_C (0x277BEFC06C186B6A), 0xCE822205, -178},
{ /* -529 */ UINT64_C (0x4EF7DF80D830D6D5), 0x9D04440A, -178},
{ /* -528 */ UINT64_C (0x9DEFBF01B061ADAB), 0x3A088813, -178},
{ /* -527 */ UINT64_C (0x1F965966BCE055EF), 0x0B9B4E6A, -177},
{ /* -526 */ UINT64_C (0x3F2CB2CD79C0ABDE), 0x17369CD5, -177},
{ /* -525 */ UINT64_C (0x7E59659AF38157BC), 0x2E6D39A9, -177},
{ /* -524 */ UINT64_C (0xFCB2CB35E702AF78), 0x5CDA7352, -177},
{ /* -523 */ UINT64_C (0x328A28A46166EFE4), 0xDF5EE3DD, -176},
{ /* -522 */ UINT64_C (0x65145148C2CDDFC9), 0xBEBDC7BB, -176},
{ /* -521 */ UINT64_C (0xCA28A291859BBF93), 0x7D7B8F75, -176},
{ /* -520 */ UINT64_C (0x286E86E9E7858CB7), 0x1918B64B, -175},
{ /* -519 */ UINT64_C (0x50DD0DD3CF0B196E), 0x32316C95, -175},
{ /* -518 */ UINT64_C (0xA1BA1BA79E1632DC), 0x6462D92A, -175},
{ /* -517 */ UINT64_C (0x20586BEE52D13D5F), 0x4746F83C, -174},
{ /* -516 */ UINT64_C (0x40B0D7DCA5A27ABE), 0x8E8DF077, -174},
{ /* -515 */ UINT64_C (0x8161AFB94B44F57D), 0x1D1BE0EF, -174},
{ /* -514 */ UINT64_C (0x19E056584240FDE5), 0xD29F2CFD, -173},
{ /* -513 */ UINT64_C (0x33C0ACB08481FBCB), 0xA53E59F9, -173},
{ /* -512 */ UINT64_C (0x678159610903F797), 0x4A7CB3F2, -173},
{ /* -511 */ UINT64_C (0xCF02B2C21207EF2E), 0x94F967E4, -173},
{ /* -510 */ UINT64_C (0x2966F08D36CE6309), 0x50FEAE61, -172},
{ /* -509 */ UINT64_C (0x52CDE11A6D9CC612), 0xA1FD5CC2, -172},
{ /* -508 */ UINT64_C (0xA59BC234DB398C25), 0x43FAB983, -172},
{ /* -507 */ UINT64_C (0x211F26D75F0B826D), 0xDA65584D, -171},
{ /* -506 */ UINT64_C (0x423E4DAEBE1704DB), 0xB4CAB09B, -171},
{ /* -505 */ UINT64_C (0x847C9B5D7C2E09B7), 0x69956136, -171},
{ /* -504 */ UINT64_C (0x1A7F5245E5A2CEBE), 0x48511371, -170},
{ /* -503 */ UINT64_C (0x34FEA48BCB459D7C), 0x90A226E2, -170},
{ /* -502 */ UINT64_C (0x69FD4917968B3AF9), 0x21444DC5, -170},
{ /* -501 */ UINT64_C (0xD3FA922F2D1675F2), 0x42889B8A, -170},
{ /* -500 */ UINT64_C (0x2A65506FD5D14ACA), 0x0D4E8582, -169},
{ /* -499 */ UINT64_C (0x54CAA0DFABA29594), 0x1A9D0B04, -169},
{ /* -498 */ UINT64_C (0xA99541BF57452B28), 0x353A1608, -169},
{ /* -497 */ UINT64_C (0x21EAA6BFDE4108A1), 0xA43ED135, -168},
{ /* -496 */ UINT64_C (0x43D54D7FBC821143), 0x487DA269, -168},
{ /* -495 */ UINT64_C (0x87AA9AFF79042286), 0x90FB44D3, -168},
{ /* -494 */ UINT64_C (0x1B221EFFE500D3B4), 0x8365742A, -167},
{ /* -493 */ UINT64_C (0x36443DFFCA01A769), 0x06CAE854, -167},
{ /* -492 */ UINT64_C (0x6C887BFF94034ED2), 0x0D95D0A9, -167},
{ /* -491 */ UINT64_C (0xD910F7FF28069DA4), 0x1B2BA152, -167},
{ /* -490 */ UINT64_C (0x2B69CB33080152BA), 0x6BD586AA, -166},
{ /* -489 */ UINT64_C (0x56D396661002A574), 0xD7AB0D54, -166},
{ /* -488 */ UINT64_C (0xADA72CCC20054AE9), 0xAF561AA8, -166},
{ /* -487 */ UINT64_C (0x22BB08F5A0010EFB), 0x89779EEE, -165},
{ /* -486 */ UINT64_C (0x457611EB40021DF7), 0x12EF3DDD, -165},
{ /* -485 */ UINT64_C (0x8AEC23D680043BEE), 0x25DE7BB9, -165},
{ /* -484 */ UINT64_C (0x1BC8D3F7B3340BFC), 0x6DF94BF2, -164},
{ /* -483 */ UINT64_C (0x3791A7EF666817F8), 0xDBF297E4, -164},
{ /* -482 */ UINT64_C (0x6F234FDECCD02FF1), 0xB7E52FC7, -164},
{ /* -481 */ UINT64_C (0xDE469FBD99A05FE3), 0x6FCA5F8F, -164},
{ /* -480 */ UINT64_C (0x2C7486591EB9ACC7), 0x165BACB6, -163},
{ /* -479 */ UINT64_C (0x58E90CB23D73598E), 0x2CB7596C, -163},
{ /* -478 */ UINT64_C (0xB1D219647AE6B31C), 0x596EB2D9, -163},
{ /* -477 */ UINT64_C (0x23906B7A7EFAF09F), 0x451623C5, -162},
{ /* -476 */ UINT64_C (0x4720D6F4FDF5E13E), 0x8A2C478A, -162},
{ /* -475 */ UINT64_C (0x8E41ADE9FBEBC27D), 0x14588F14, -162},
{ /* -474 */ UINT64_C (0x1C73892ECBFBF3B2), 0x9DAB4FD1, -161},
{ /* -473 */ UINT64_C (0x38E7125D97F7E765), 0x3B569FA1, -161},
{ /* -472 */ UINT64_C (0x71CE24BB2FEFCECA), 0x76AD3F43, -161},
{ /* -471 */ UINT64_C (0xE39C49765FDF9D94), 0xED5A7E86, -161},
{ /* -470 */ UINT64_C (0x2D85A84ADFF985EA), 0x95DEE61B, -160},
{ /* -469 */ UINT64_C (0x5B0B5095BFF30BD5), 0x2BBDCC36, -160},
{ /* -468 */ UINT64_C (0xB616A12B7FE617AA), 0x577B986B, -160},
{ /* -467 */ UINT64_C (0x246AED08B32E04BB), 0xAB18B815, -159},
{ /* -466 */ UINT64_C (0x48D5DA11665C0977), 0x5631702B, -159},
{ /* -465 */ UINT64_C (0x91ABB422CCB812EE), 0xAC62E056, -159},
{ /* -464 */ UINT64_C (0x1D22573A28F19D62), 0xEF46F9AB, -158},
{ /* -463 */ UINT64_C (0x3A44AE7451E33AC5), 0xDE8DF356, -158},
{ /* -462 */ UINT64_C (0x74895CE8A3C6758B), 0xBD1BE6AB, -158},
{ /* -461 */ UINT64_C (0xE912B9D1478CEB17), 0x7A37CD56, -158},
{ /* -460 */ UINT64_C (0x2E9D585D0E4F6237), 0xE53E5C44, -157},
{ /* -459 */ UINT64_C (0x5D3AB0BA1C9EC46F), 0xCA7CB889, -157},
{ /* -458 */ UINT64_C (0xBA756174393D88DF), 0x94F97112, -157},
{ /* -457 */ UINT64_C (0x254AAD173EA5E82C), 0xB765169D, -156},
{ /* -456 */ UINT64_C (0x4A955A2E7D4BD059), 0x6ECA2D3A, -156},
{ /* -455 */ UINT64_C (0x952AB45CFA97A0B2), 0xDD945A74, -156},
{ /* -454 */ UINT64_C (0x1DD55745CBB7ECF0), 0x92B7454A, -155},
{ /* -453 */ UINT64_C (0x3BAAAE8B976FD9E1), 0x256E8A95, -155},
{ /* -452 */ UINT64_C (0x77555D172EDFB3C2), 0x4ADD152A, -155},
{ /* -451 */ UINT64_C (0xEEAABA2E5DBF6784), 0x95BA2A54, -155},
{ /* -450 */ UINT64_C (0x2FBBBED612BFE180), 0xEABED544, -154},
{ /* -449 */ UINT64_C (0x5F777DAC257FC301), 0xD57DAA88, -154},
{ /* -448 */ UINT64_C (0xBEEEFB584AFF8603), 0xAAFB5510, -154},
{ /* -447 */ UINT64_C (0x262FCBDE75664E00), 0xBBCBDDD0, -153},
{ /* -446 */ UINT64_C (0x4C5F97BCEACC9C01), 0x7797BBA0, -153},
{ /* -445 */ UINT64_C (0x98BF2F79D5993802), 0xEF2F7740, -153},
{ /* -444 */ UINT64_C (0x1E8CA3185DEB719A), 0x2FD64B0D, -152},
{ /* -443 */ UINT64_C (0x3D194630BBD6E334), 0x5FAC961A, -152},
{ /* -442 */ UINT64_C (0x7A328C6177ADC668), 0xBF592C33, -152},
{ /* -441 */ UINT64_C (0xF46518C2EF5B8CD1), 0x7EB25866, -152},
{ /* -440 */ UINT64_C (0x30E104F3C978B5C3), 0x7FBD44E1, -151},
{ /* -439 */ UINT64_C (0x61C209E792F16B86), 0xFF7A89C3, -151},
{ /* -438 */ UINT64_C (0xC38413CF25E2D70D), 0xFEF51385, -151},
{ /* -437 */ UINT64_C (0x271A6A5CA12D5E35), 0xFFCA9D81, -150},
{ /* -436 */ UINT64_C (0x4E34D4B9425ABC6B), 0xFF953B02, -150},
{ /* -435 */ UINT64_C (0x9C69A97284B578D7), 0xFF2A7604, -150},
{ /* -434 */ UINT64_C (0x1F485516E7577E91), 0x996EE467, -149},
{ /* -433 */ UINT64_C (0x3E90AA2DCEAEFD23), 0x32DDC8CE, -149},
{ /* -432 */ UINT64_C (0x7D21545B9D5DFA46), 0x65BB919D, -149},
{ /* -431 */ UINT64_C (0xFA42A8B73ABBF48C), 0xCB77233A, -149},
{ /* -430 */ UINT64_C (0x320D54F17225974F), 0x5BE4A0A5, -148},
{ /* -429 */ UINT64_C (0x641AA9E2E44B2E9E), 0xB7C9414A, -148},
{ /* -428 */ UINT64_C (0xC83553C5C8965D3D), 0x6F928295, -148},
{ /* -427 */ UINT64_C (0x280AAA5AC1B7AC3F), 0x7CB6E6EB, -147},
{ /* -426 */ UINT64_C (0x501554B5836F587E), 0xF96DCDD5, -147},
{ /* -425 */ UINT64_C (0xA02AA96B06DEB0FD), 0xF2DB9BAA, -147},
{ /* -424 */ UINT64_C (0x200888489AF95699), 0x30925255, -146},
{ /* -423 */ UINT64_C (0x4011109135F2AD32), 0x6124A4AA, -146},
{ /* -422 */ UINT64_C (0x802221226BE55A64), 0xC2494955, -146},
{ /* -421 */ UINT64_C (0x19A06D06E2611214), 0x26DB7511, -145},
{ /* -420 */ UINT64_C (0x3340DA0DC4C22428), 0x4DB6EA22, -145},
{ /* -419 */ UINT64_C (0x6681B41B89844850), 0x9B6DD444, -145},
{ /* -418 */ UINT64_C (0xCD036837130890A1), 0x36DBA888, -145},
{ /* -417 */ UINT64_C (0x2900AE716A34E9B9), 0xD7C5881B, -144},
{ /* -416 */ UINT64_C (0x52015CE2D469D373), 0xAF8B1036, -144},
{ /* -415 */ UINT64_C (0xA402B9C5A8D3A6E7), 0x5F16206D, -144},
{ /* -414 */ UINT64_C (0x20CD585ABB5D87C7), 0xDFD139AF, -143},
{ /* -413 */ UINT64_C (0x419AB0B576BB0F8F), 0xBFA2735F, -143},
{ /* -412 */ UINT64_C (0x8335616AED761F1F), 0x7F44E6BD, -143},
{ /* -411 */ UINT64_C (0x1A3DE04895E46C9F), 0xE640FAF3, -142},
{ /* -410 */ UINT64_C (0x347BC0912BC8D93F), 0xCC81F5E5, -142},
{ /* -409 */ UINT64_C (0x68F781225791B27F), 0x9903EBCB, -142},
{ /* -408 */ UINT64_C (0xD1EF0244AF2364FF), 0x3207D795, -142},
{ /* -407 */ UINT64_C (0x29FC9A0DBCA0ADCC), 0xA39B2B1E, -141},
{ /* -406 */ UINT64_C (0x53F9341B79415B99), 0x4736563C, -141},
{ /* -405 */ UINT64_C (0xA7F26836F282B732), 0x8E6CAC77, -141},
{ /* -404 */ UINT64_C (0x2196E1A496E6F170), 0x82E288E5, -140},
{ /* -403 */ UINT64_C (0x432DC3492DCDE2E1), 0x05C511C9, -140},
{ /* -402 */ UINT64_C (0x865B86925B9BC5C2), 0x0B8A2393, -140},
{ /* -401 */ UINT64_C (0x1ADF1AEA12525AC0), 0x68B53A51, -139},
{ /* -400 */ UINT64_C (0x35BE35D424A4B580), 0xD16A74A1, -139},
{ /* -399 */ UINT64_C (0x6B7C6BA849496B01), 0xA2D4E942, -139},
{ /* -398 */ UINT64_C (0xD6F8D7509292D603), 0x45A9D284, -139},
{ /* -397 */ UINT64_C (0x2AFE917683B6F79A), 0x4121F6E7, -138},
{ /* -396 */ UINT64_C (0x55FD22ED076DEF34), 0x8243EDCF, -138},
{ /* -395 */ UINT64_C (0xABFA45DA0EDBDE69), 0x0487DB9D, -138},
{ /* -394 */ UINT64_C (0x2265412B9C925FAE), 0x9A819253, -137},
{ /* -393 */ UINT64_C (0x44CA82573924BF5D), 0x350324A5, -137},
{ /* -392 */ UINT64_C (0x899504AE72497EBA), 0x6A06494A, -137},
{ /* -391 */ UINT64_C (0x1B843422E3A84C8B), 0xAECE0EA8, -136},
{ /* -390 */ UINT64_C (0x37086845C7509917), 0x5D9C1D51, -136},
{ /* -389 */ UINT64_C (0x6E10D08B8EA1322E), 0xBB383AA2, -136},
{ /* -388 */ UINT64_C (0xDC21A1171D42645D), 0x76707544, -136},
{ /* -387 */ UINT64_C (0x2C06B9D16C407A79), 0x17B01774, -135},
{ /* -386 */ UINT64_C (0x580D73A2D880F4F2), 0x2F602EE8, -135},
{ /* -385 */ UINT64_C (0xB01AE745B101E9E4), 0x5EC05DD0, -135},
{ /* -384 */ UINT64_C (0x233894A789CD2EC7), 0x4626792A, -134},
{ /* -383 */ UINT64_C (0x4671294F139A5D8E), 0x8C4CF253, -134},
{ /* -382 */ UINT64_C (0x8CE2529E2734BB1D), 0x1899E4A6, -134},
{ /* -381 */ UINT64_C (0x1C2D43B93B0A8BD2), 0x9E852DBB, -133},
{ /* -380 */ UINT64_C (0x385A8772761517A5), 0x3D0A5B76, -133},
{ /* -379 */ UINT64_C (0x70B50EE4EC2A2F4A), 0x7A14B6EB, -133},
{ /* -378 */ UINT64_C (0xE16A1DC9D8545E94), 0xF4296DD7, -133},
{ /* -377 */ UINT64_C (0x2D1539285E77461D), 0xCA6EAF91, -132},
{ /* -376 */ UINT64_C (0x5A2A7250BCEE8C3B), 0x94DD5F23, -132},
{ /* -375 */ UINT64_C (0xB454E4A179DD1877), 0x29BABE46, -132},
{ /* -374 */ UINT64_C (0x2410FA86B1F904E4), 0xA1F2260E, -131},
{ /* -373 */ UINT64_C (0x4821F50D63F209C9), 0x43E44C1C, -131},
{ /* -372 */ UINT64_C (0x9043EA1AC7E41392), 0x87C89838, -131},
{ /* -371 */ UINT64_C (0x1CDA62055B2D9D83), 0xB4C1B80B, -130},
{ /* -370 */ UINT64_C (0x39B4C40AB65B3B07), 0x69837016, -130},
{ /* -369 */ UINT64_C (0x736988156CB6760E), 0xD306E02D, -130},
{ /* -368 */ UINT64_C (0xE6D3102AD96CEC1D), 0xA60DC059, -130},
{ /* -367 */ UINT64_C (0x2E2A366EF848FC05), 0xEE02C012, -129},
{ /* -366 */ UINT64_C (0x5C546CDDF091F80B), 0xDC058024, -129},
{ /* -365 */ UINT64_C (0xB8A8D9BBE123F017), 0xB80B0047, -129},
{ /* -364 */ UINT64_C (0x24EE91F2603A6337), 0xF19BCCDB, -128},
{ /* -363 */ UINT64_C (0x49DD23E4C074C66F), 0xE33799B6, -128},
{ /* -362 */ UINT64_C (0x93BA47C980E98CDF), 0xC66F336C, -128},
{ /* -361 */ UINT64_C (0x1D8BA7F519C84F5F), 0xF47CA3E2, -127},
{ /* -360 */ UINT64_C (0x3B174FEA33909EBF), 0xE8F947C5, -127},
{ /* -359 */ UINT64_C (0x762E9FD467213D7F), 0xD1F28F8A, -127},
{ /* -358 */ UINT64_C (0xEC5D3FA8CE427AFF), 0xA3E51F14, -127},
{ /* -357 */ UINT64_C (0x2F45D98829407EFF), 0xED94396A, -126},
{ /* -356 */ UINT64_C (0x5E8BB3105280FDFF), 0xDB2872D5, -126},
{ /* -355 */ UINT64_C (0xBD176620A501FBFF), 0xB650E5A9, -126},
{ /* -354 */ UINT64_C (0x25D17AD3543398CC), 0xBE102DEF, -125},
{ /* -353 */ UINT64_C (0x4BA2F5A6A8673199), 0x7C205BDD, -125},
{ /* -352 */ UINT64_C (0x9745EB4D50CE6332), 0xF840B7BB, -125},
{ /* -351 */ UINT64_C (0x1E412F0F768FAD70), 0x980CF18C, -124},
{ /* -350 */ UINT64_C (0x3C825E1EED1F5AE1), 0x3019E317, -124},
{ /* -349 */ UINT64_C (0x7904BC3DDA3EB5C2), 0x6033C62F, -124},
{ /* -348 */ UINT64_C (0xF209787BB47D6B84), 0xC0678C5E, -124},
{ /* -347 */ UINT64_C (0x30684B4BF0E5E24D), 0xC014B5AC, -123},
{ /* -346 */ UINT64_C (0x60D09697E1CBC49B), 0x80296B59, -123},
{ /* -345 */ UINT64_C (0xC1A12D2FC3978937), 0x0052D6B1, -123},
{ /* -344 */ UINT64_C (0x26B9D5D65A5181D7), 0xCCDD5E23, -122},
{ /* -343 */ UINT64_C (0x4D73ABACB4A303AF), 0x99BABC47, -122},
{ /* -342 */ UINT64_C (0x9AE757596946075F), 0x3375788E, -122},
{ /* -341 */ UINT64_C (0x1EFB1178484134AC), 0xA3E44B50, -121},
{ /* -340 */ UINT64_C (0x3DF622F090826959), 0x47C8969F, -121},
{ /* -339 */ UINT64_C (0x7BEC45E12104D2B2), 0x8F912D3E, -121},
{ /* -338 */ UINT64_C (0xF7D88BC24209A565), 0x1F225A7D, -121},
{ /* -337 */ UINT64_C (0x3191B58D40685447), 0x6CA0787F, -120},
{ /* -336 */ UINT64_C (0x63236B1A80D0A88E), 0xD940F0FF, -120},
{ /* -335 */ UINT64_C (0xC646D63501A1511D), 0xB281E1FD, -120},
{ /* -334 */ UINT64_C (0x27A7C4710053769F), 0x8A19F9FF, -119},
{ /* -333 */ UINT64_C (0x4F4F88E200A6ED3F), 0x1433F3FF, -119},
{ /* -332 */ UINT64_C (0x9E9F11C4014DDA7E), 0x2867E7FE, -119},
{ /* -331 */ UINT64_C (0x1FB969F40042C54C), 0x6E7B2E66, -118},
{ /* -330 */ UINT64_C (0x3F72D3E800858A98), 0xDCF65CCC, -118},
{ /* -329 */ UINT64_C (0x7EE5A7D0010B1531), 0xB9ECB998, -118},
{ /* -328 */ UINT64_C (0xFDCB4FA002162A63), 0x73D97330, -118},
{ /* -327 */ UINT64_C (0x32C24320006AD547), 0x172B7D70, -117},
{ /* -326 */ UINT64_C (0x6584864000D5AA8E), 0x2E56FAE0, -117},
{ /* -325 */ UINT64_C (0xCB090C8001AB551C), 0x5CADF5C0, -117},
{ /* -324 */ UINT64_C (0x289B68E666BBDDD2), 0x78EF978D, -116},
{ /* -323 */ UINT64_C (0x5136D1CCCD77BBA4), 0xF1DF2F1A, -116},
{ /* -322 */ UINT64_C (0xA26DA3999AEF7749), 0xE3BE5E33, -116},
{ /* -321 */ UINT64_C (0x207C53EB856317DB), 0x93F2DFA4, -115},
{ /* -320 */ UINT64_C (0x40F8A7D70AC62FB7), 0x27E5BF48, -115},
{ /* -319 */ UINT64_C (0x81F14FAE158C5F6E), 0x4FCB7E8F, -115},
{ /* -318 */ UINT64_C (0x19FD0FEF9DE8DFE2), 0xDCC24C83, -114},