OSDN Git Service

2007-12-19 Etsushi Kato <ek.kato@gmail.com>
[pf3gnuchains/gcc-fork.git] / libgcc / config / libbid / bid_convert_data.c
1 /* Copyright (C) 2007  Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version.
9
10 In addition to the permissions in the GNU General Public License, the
11 Free Software Foundation gives you unlimited permission to link the
12 compiled version of this file into combinations with other programs,
13 and to distribute those combinations without any restriction coming
14 from the use of this file.  (The General Public License restrictions
15 do apply in other respects; for example, they cover modification of
16 the file, and distribution when not linked into a combine
17 executable.)
18
19 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
20 WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with GCC; see the file COPYING.  If not, write to the Free
26 Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
27 02110-1301, USA.  */
28
29 #include "bid_internal.h"
30
31 // convert_table[j][k][i] = digit i (base 10^8) of k*2^(26+7*j)
32 const UINT32 convert_table[5][128][2] = {
33   {{0, 0}
34    , {67108864, 0}
35    , {34217728, 1}
36    , {1326592, 2}
37    , {68435456, 2}
38    ,
39    {35544320, 3}
40    , {2653184, 4}
41    , {69762048, 4}
42    , {36870912, 5}
43    , {3979776, 6}
44    ,
45    {71088640, 6}
46    , {38197504, 7}
47    , {5306368, 8}
48    , {72415232, 8}
49    , {39524096, 9}
50    ,
51    {6632960, 10}
52    , {73741824, 10}
53    , {40850688, 11}
54    , {7959552, 12}
55    , {75068416, 12}
56    ,
57    {42177280, 13}
58    , {9286144, 14}
59    , {76395008, 14}
60    , {43503872, 15}
61    , {10612736, 16}
62    ,
63    {77721600, 16}
64    , {44830464, 17}
65    , {11939328, 18}
66    , {79048192, 18}
67    , {46157056, 19}
68    ,
69    {13265920, 20}
70    , {80374784, 20}
71    , {47483648, 21}
72    , {14592512, 22}
73    , {81701376, 22}
74    ,
75    {48810240, 23}
76    , {15919104, 24}
77    , {83027968, 24}
78    , {50136832, 25}
79    , {17245696, 26}
80    ,
81    {84354560, 26}
82    , {51463424, 27}
83    , {18572288, 28}
84    , {85681152, 28}
85    , {52790016, 29}
86    ,
87    {19898880, 30}
88    , {87007744, 30}
89    , {54116608, 31}
90    , {21225472, 32}
91    , {88334336, 32}
92    ,
93    {55443200, 33}
94    , {22552064, 34}
95    , {89660928, 34}
96    , {56769792, 35}
97    , {23878656, 36}
98    ,
99    {90987520, 36}
100    , {58096384, 37}
101    , {25205248, 38}
102    , {92314112, 38}
103    , {59422976, 39}
104    ,
105    {26531840, 40}
106    , {93640704, 40}
107    , {60749568, 41}
108    , {27858432, 42}
109    , {94967296, 42}
110    ,
111    {62076160, 43}
112    , {29185024, 44}
113    , {96293888, 44}
114    , {63402752, 45}
115    , {30511616, 46}
116    ,
117    {97620480, 46}
118    , {64729344, 47}
119    , {31838208, 48}
120    , {98947072, 48}
121    , {66055936, 49}
122    ,
123    {33164800, 50}
124    , {273664, 51}
125    , {67382528, 51}
126    , {34491392, 52}
127    , {1600256, 53}
128    ,
129    {68709120, 53}
130    , {35817984, 54}
131    , {2926848, 55}
132    , {70035712, 55}
133    , {37144576, 56}
134    ,
135    {4253440, 57}
136    , {71362304, 57}
137    , {38471168, 58}
138    , {5580032, 59}
139    , {72688896, 59}
140    ,
141    {39797760, 60}
142    , {6906624, 61}
143    , {74015488, 61}
144    , {41124352, 62}
145    , {8233216, 63}
146    ,
147    {75342080, 63}
148    , {42450944, 64}
149    , {9559808, 65}
150    , {76668672, 65}
151    , {43777536, 66}
152    ,
153    {10886400, 67}
154    , {77995264, 67}
155    , {45104128, 68}
156    , {12212992, 69}
157    , {79321856, 69}
158    ,
159    {46430720, 70}
160    , {13539584, 71}
161    , {80648448, 71}
162    , {47757312, 72}
163    , {14866176, 73}
164    ,
165    {81975040, 73}
166    , {49083904, 74}
167    , {16192768, 75}
168    , {83301632, 75}
169    , {50410496, 76}
170    ,
171    {17519360, 77}
172    , {84628224, 77}
173    , {51737088, 78}
174    , {18845952, 79}
175    , {85954816, 79}
176    ,
177    {53063680, 80}
178    , {20172544, 81}
179    , {87281408, 81}
180    , {54390272, 82}
181    , {21499136, 83}
182    ,
183    {88608000, 83}
184    , {55716864, 84}
185    , {22825728, 85}
186    ,
187    }
188   ,
189
190   {{0, 0}
191    , {89934592, 85}
192    , {79869184, 171}
193    , {69803776, 257}
194    , {59738368, 343}
195    ,
196    {49672960, 429}
197    , {39607552, 515}
198    , {29542144, 601}
199    , {19476736, 687}
200    , {9411328, 773}
201    ,
202    {99345920, 858}
203    , {89280512, 944}
204    , {79215104, 1030}
205    , {69149696, 1116}
206    , {59084288, 1202}
207    ,
208    {49018880, 1288}
209    , {38953472, 1374}
210    , {28888064, 1460}
211    , {18822656, 1546}
212    , {8757248, 1632}
213    ,
214    {98691840, 1717}
215    , {88626432, 1803}
216    , {78561024, 1889}
217    , {68495616, 1975}
218    , {58430208, 2061}
219    ,
220    {48364800, 2147}
221    , {38299392, 2233}
222    , {28233984, 2319}
223    , {18168576, 2405}
224    , {8103168, 2491}
225    ,
226    {98037760, 2576}
227    , {87972352, 2662}
228    , {77906944, 2748}
229    , {67841536, 2834}
230    , {57776128, 2920}
231    ,
232    {47710720, 3006}
233    , {37645312, 3092}
234    , {27579904, 3178}
235    , {17514496, 3264}
236    , {7449088, 3350}
237    ,
238    {97383680, 3435}
239    , {87318272, 3521}
240    , {77252864, 3607}
241    , {67187456, 3693}
242    , {57122048, 3779}
243    ,
244    {47056640, 3865}
245    , {36991232, 3951}
246    , {26925824, 4037}
247    , {16860416, 4123}
248    , {6795008, 4209}
249    ,
250    {96729600, 4294}
251    , {86664192, 4380}
252    , {76598784, 4466}
253    , {66533376, 4552}
254    , {56467968, 4638}
255    ,
256    {46402560, 4724}
257    , {36337152, 4810}
258    , {26271744, 4896}
259    , {16206336, 4982}
260    , {6140928, 5068}
261    ,
262    {96075520, 5153}
263    , {86010112, 5239}
264    , {75944704, 5325}
265    , {65879296, 5411}
266    , {55813888, 5497}
267    ,
268    {45748480, 5583}
269    , {35683072, 5669}
270    , {25617664, 5755}
271    , {15552256, 5841}
272    , {5486848, 5927}
273    ,
274    {95421440, 6012}
275    , {85356032, 6098}
276    , {75290624, 6184}
277    , {65225216, 6270}
278    , {55159808, 6356}
279    ,
280    {45094400, 6442}
281    , {35028992, 6528}
282    , {24963584, 6614}
283    , {14898176, 6700}
284    , {4832768, 6786}
285    ,
286    {94767360, 6871}
287    , {84701952, 6957}
288    , {74636544, 7043}
289    , {64571136, 7129}
290    , {54505728, 7215}
291    ,
292    {44440320, 7301}
293    , {34374912, 7387}
294    , {24309504, 7473}
295    , {14244096, 7559}
296    , {4178688, 7645}
297    ,
298    {94113280, 7730}
299    , {84047872, 7816}
300    , {73982464, 7902}
301    , {63917056, 7988}
302    , {53851648, 8074}
303    ,
304    {43786240, 8160}
305    , {33720832, 8246}
306    , {23655424, 8332}
307    , {13590016, 8418}
308    , {3524608, 8504}
309    ,
310    {93459200, 8589}
311    , {83393792, 8675}
312    , {73328384, 8761}
313    , {63262976, 8847}
314    , {53197568, 8933}
315    ,
316    {43132160, 9019}
317    , {33066752, 9105}
318    , {23001344, 9191}
319    , {12935936, 9277}
320    , {2870528, 9363}
321    ,
322    {92805120, 9448}
323    , {82739712, 9534}
324    , {72674304, 9620}
325    , {62608896, 9706}
326    , {52543488, 9792}
327    ,
328    {42478080, 9878}
329    , {32412672, 9964}
330    , {22347264, 10050}
331    , {12281856, 10136}
332    , {2216448, 10222}
333    ,
334    {92151040, 10307}
335    , {82085632, 10393}
336    , {72020224, 10479}
337    , {61954816, 10565}
338    , {51889408, 10651}
339    ,
340    {41824000, 10737}
341    , {31758592, 10823}
342    , {21693184, 10909}
343    ,
344    }
345   ,
346
347   {{0, 0}
348    , {11627776, 10995}
349    , {23255552, 21990}
350    , {34883328, 32985}
351    , {46511104, 43980}
352    ,
353    {58138880, 54975}
354    , {69766656, 65970}
355    , {81394432, 76965}
356    , {93022208, 87960}
357    , {4649984, 98956}
358    ,
359    {16277760, 109951}
360    , {27905536, 120946}
361    , {39533312, 131941}
362    , {51161088, 142936}
363    , {62788864, 153931}
364    ,
365    {74416640, 164926}
366    , {86044416, 175921}
367    , {97672192, 186916}
368    , {9299968, 197912}
369    , {20927744, 208907}
370    ,
371    {32555520, 219902}
372    , {44183296, 230897}
373    , {55811072, 241892}
374    , {67438848, 252887}
375    , {79066624, 263882}
376    ,
377    {90694400, 274877}
378    , {2322176, 285873}
379    , {13949952, 296868}
380    , {25577728, 307863}
381    , {37205504, 318858}
382    ,
383    {48833280, 329853}
384    , {60461056, 340848}
385    , {72088832, 351843}
386    , {83716608, 362838}
387    , {95344384, 373833}
388    ,
389    {6972160, 384829}
390    , {18599936, 395824}
391    , {30227712, 406819}
392    , {41855488, 417814}
393    , {53483264, 428809}
394    ,
395    {65111040, 439804}
396    , {76738816, 450799}
397    , {88366592, 461794}
398    , {99994368, 472789}
399    , {11622144, 483785}
400    ,
401    {23249920, 494780}
402    , {34877696, 505775}
403    , {46505472, 516770}
404    , {58133248, 527765}
405    , {69761024, 538760}
406    ,
407    {81388800, 549755}
408    , {93016576, 560750}
409    , {4644352, 571746}
410    , {16272128, 582741}
411    , {27899904, 593736}
412    ,
413    {39527680, 604731}
414    , {51155456, 615726}
415    , {62783232, 626721}
416    , {74411008, 637716}
417    , {86038784, 648711}
418    ,
419    {97666560, 659706}
420    , {9294336, 670702}
421    , {20922112, 681697}
422    , {32549888, 692692}
423    , {44177664, 703687}
424    ,
425    {55805440, 714682}
426    , {67433216, 725677}
427    , {79060992, 736672}
428    , {90688768, 747667}
429    , {2316544, 758663}
430    ,
431    {13944320, 769658}
432    , {25572096, 780653}
433    , {37199872, 791648}
434    , {48827648, 802643}
435    , {60455424, 813638}
436    ,
437    {72083200, 824633}
438    , {83710976, 835628}
439    , {95338752, 846623}
440    , {6966528, 857619}
441    , {18594304, 868614}
442    ,
443    {30222080, 879609}
444    , {41849856, 890604}
445    , {53477632, 901599}
446    , {65105408, 912594}
447    , {76733184, 923589}
448    ,
449    {88360960, 934584}
450    , {99988736, 945579}
451    , {11616512, 956575}
452    , {23244288, 967570}
453    , {34872064, 978565}
454    ,
455    {46499840, 989560}
456    , {58127616, 1000555}
457    , {69755392, 1011550}
458    , {81383168, 1022545}
459    , {93010944, 1033540}
460    ,
461    {4638720, 1044536}
462    , {16266496, 1055531}
463    , {27894272, 1066526}
464    , {39522048, 1077521}
465    , {51149824, 1088516}
466    ,
467    {62777600, 1099511}
468    , {74405376, 1110506}
469    , {86033152, 1121501}
470    , {97660928, 1132496}
471    , {9288704, 1143492}
472    ,
473    {20916480, 1154487}
474    , {32544256, 1165482}
475    , {44172032, 1176477}
476    , {55799808, 1187472}
477    , {67427584, 1198467}
478    ,
479    {79055360, 1209462}
480    , {90683136, 1220457}
481    , {2310912, 1231453}
482    , {13938688, 1242448}
483    , {25566464, 1253443}
484    ,
485    {37194240, 1264438}
486    , {48822016, 1275433}
487    , {60449792, 1286428}
488    , {72077568, 1297423}
489    , {83705344, 1308418}
490    ,
491    {95333120, 1319413}
492    , {6960896, 1330409}
493    , {18588672, 1341404}
494    , {30216448, 1352399}
495    , {41844224, 1363394}
496    ,
497    {53472000, 1374389}
498    , {65099776, 1385384}
499    , {76727552, 1396379}
500    ,
501    }
502   ,
503
504   {{0, 0}
505    , {88355328, 1407374}
506    , {76710656, 2814749}
507    , {65065984, 4222124}
508    , {53421312, 5629499}
509    ,
510    {41776640, 7036874}
511    , {30131968, 8444249}
512    , {18487296, 9851624}
513    , {6842624, 11258999}
514    , {95197952, 12666373}
515    ,
516    {83553280, 14073748}
517    , {71908608, 15481123}
518    , {60263936, 16888498}
519    , {48619264, 18295873}
520    , {36974592, 19703248}
521    ,
522    {25329920, 21110623}
523    , {13685248, 22517998}
524    , {2040576, 23925373}
525    , {90395904, 25332747}
526    , {78751232, 26740122}
527    ,
528    {67106560, 28147497}
529    , {55461888, 29554872}
530    , {43817216, 30962247}
531    , {32172544, 32369622}
532    , {20527872, 33776997}
533    ,
534    {8883200, 35184372}
535    , {97238528, 36591746}
536    , {85593856, 37999121}
537    , {73949184, 39406496}
538    , {62304512, 40813871}
539    ,
540    {50659840, 42221246}
541    , {39015168, 43628621}
542    , {27370496, 45035996}
543    , {15725824, 46443371}
544    , {4081152, 47850746}
545    ,
546    {92436480, 49258120}
547    , {80791808, 50665495}
548    , {69147136, 52072870}
549    , {57502464, 53480245}
550    , {45857792, 54887620}
551    ,
552    {34213120, 56294995}
553    , {22568448, 57702370}
554    , {10923776, 59109745}
555    , {99279104, 60517119}
556    , {87634432, 61924494}
557    ,
558    {75989760, 63331869}
559    , {64345088, 64739244}
560    , {52700416, 66146619}
561    , {41055744, 67553994}
562    , {29411072, 68961369}
563    ,
564    {17766400, 70368744}
565    , {6121728, 71776119}
566    , {94477056, 73183493}
567    , {82832384, 74590868}
568    , {71187712, 75998243}
569    ,
570    {59543040, 77405618}
571    , {47898368, 78812993}
572    , {36253696, 80220368}
573    , {24609024, 81627743}
574    , {12964352, 83035118}
575    ,
576    {1319680, 84442493}
577    , {89675008, 85849867}
578    , {78030336, 87257242}
579    , {66385664, 88664617}
580    , {54740992, 90071992}
581    ,
582    {43096320, 91479367}
583    , {31451648, 92886742}
584    , {19806976, 94294117}
585    , {8162304, 95701492}
586    , {96517632, 97108866}
587    ,
588    {84872960, 98516241}
589    , {73228288, 99923616}
590    , {61583616, 1330991}
591    , {49938944, 2738366}
592    , {38294272, 4145741}
593    ,
594    {26649600, 5553116}
595    , {15004928, 6960491}
596    , {3360256, 8367866}
597    , {91715584, 9775240}
598    , {80070912, 11182615}
599    ,
600    {68426240, 12589990}
601    , {56781568, 13997365}
602    , {45136896, 15404740}
603    , {33492224, 16812115}
604    , {21847552, 18219490}
605    ,
606    {10202880, 19626865}
607    , {98558208, 21034239}
608    , {86913536, 22441614}
609    , {75268864, 23848989}
610    , {63624192, 25256364}
611    ,
612    {51979520, 26663739}
613    , {40334848, 28071114}
614    , {28690176, 29478489}
615    , {17045504, 30885864}
616    , {5400832, 32293239}
617    ,
618    {93756160, 33700613}
619    , {82111488, 35107988}
620    , {70466816, 36515363}
621    , {58822144, 37922738}
622    , {47177472, 39330113}
623    ,
624    {35532800, 40737488}
625    , {23888128, 42144863}
626    , {12243456, 43552238}
627    , {598784, 44959613}
628    , {88954112, 46366987}
629    ,
630    {77309440, 47774362}
631    , {65664768, 49181737}
632    , {54020096, 50589112}
633    , {42375424, 51996487}
634    , {30730752, 53403862}
635    ,
636    {19086080, 54811237}
637    , {7441408, 56218612}
638    , {95796736, 57625986}
639    , {84152064, 59033361}
640    , {72507392, 60440736}
641    ,
642    {60862720, 61848111}
643    , {49218048, 63255486}
644    , {37573376, 64662861}
645    , {25928704, 66070236}
646    , {14284032, 67477611}
647    ,
648    {2639360, 68884986}
649    , {90994688, 70292360}
650    , {79350016, 71699735}
651    , {67705344, 73107110}
652    , {56060672, 74514485}
653    ,
654    {44416000, 75921860}
655    , {32771328, 77329235}
656    , {21126656, 78736610}
657    ,
658    }
659   ,
660
661   {{0, 0}
662    , {9481984, 80143985}
663    , {18963968, 60287970}
664    , {28445952, 40431955}
665    , {37927936, 20575940}
666    ,
667    {47409920, 719925}
668    , {56891904, 80863910}
669    , {66373888, 61007895}
670    , {75855872, 41151880}
671    , {85337856, 21295865}
672    ,
673    {94819840, 1439850}
674    , {4301824, 81583836}
675    , {13783808, 61727821}
676    , {23265792, 41871806}
677    , {32747776, 22015791}
678    ,
679    {42229760, 2159776}
680    , {51711744, 82303761}
681    , {61193728, 62447746}
682    , {70675712, 42591731}
683    , {80157696, 22735716}
684    ,
685    {89639680, 2879701}
686    , {99121664, 83023686}
687    , {8603648, 63167672}
688    , {18085632, 43311657}
689    , {27567616, 23455642}
690    ,
691    {37049600, 3599627}
692    , {46531584, 83743612}
693    , {56013568, 63887597}
694    , {65495552, 44031582}
695    , {74977536, 24175567}
696    ,
697    {84459520, 4319552}
698    , {93941504, 84463537}
699    , {3423488, 64607523}
700    , {12905472, 44751508}
701    , {22387456, 24895493}
702    ,
703    {31869440, 5039478}
704    , {41351424, 85183463}
705    , {50833408, 65327448}
706    , {60315392, 45471433}
707    , {69797376, 25615418}
708    ,
709    {79279360, 5759403}
710    , {88761344, 85903388}
711    , {98243328, 66047373}
712    , {7725312, 46191359}
713    , {17207296, 26335344}
714    ,
715    {26689280, 6479329}
716    , {36171264, 86623314}
717    , {45653248, 66767299}
718    , {55135232, 46911284}
719    , {64617216, 27055269}
720    ,
721    {74099200, 7199254}
722    , {83581184, 87343239}
723    , {93063168, 67487224}
724    , {2545152, 47631210}
725    , {12027136, 27775195}
726    ,
727    {21509120, 7919180}
728    , {30991104, 88063165}
729    , {40473088, 68207150}
730    , {49955072, 48351135}
731    , {59437056, 28495120}
732    ,
733    {68919040, 8639105}
734    , {78401024, 88783090}
735    , {87883008, 68927075}
736    , {97364992, 49071060}
737    , {6846976, 29215046}
738    ,
739    {16328960, 9359031}
740    , {25810944, 89503016}
741    , {35292928, 69647001}
742    , {44774912, 49790986}
743    , {54256896, 29934971}
744    ,
745    {63738880, 10078956}
746    , {73220864, 90222941}
747    , {82702848, 70366926}
748    , {92184832, 50510911}
749    , {1666816, 30654897}
750    ,
751    {11148800, 10798882}
752    , {20630784, 90942867}
753    , {30112768, 71086852}
754    , {39594752, 51230837}
755    , {49076736, 31374822}
756    ,
757    {58558720, 11518807}
758    , {68040704, 91662792}
759    , {77522688, 71806777}
760    , {87004672, 51950762}
761    , {96486656, 32094747}
762    ,
763    {5968640, 12238733}
764    , {15450624, 92382718}
765    , {24932608, 72526703}
766    , {34414592, 52670688}
767    , {43896576, 32814673}
768    ,
769    {53378560, 12958658}
770    , {62860544, 93102643}
771    , {72342528, 73246628}
772    , {81824512, 53390613}
773    , {91306496, 33534598}
774    ,
775    {788480, 13678584}
776    , {10270464, 93822569}
777    , {19752448, 73966554}
778    , {29234432, 54110539}
779    , {38716416, 34254524}
780    ,
781    {48198400, 14398509}
782    , {57680384, 94542494}
783    , {67162368, 74686479}
784    , {76644352, 54830464}
785    , {86126336, 34974449}
786    ,
787    {95608320, 15118434}
788    , {5090304, 95262420}
789    , {14572288, 75406405}
790    , {24054272, 55550390}
791    , {33536256, 35694375}
792    ,
793    {43018240, 15838360}
794    , {52500224, 95982345}
795    , {61982208, 76126330}
796    , {71464192, 56270315}
797    , {80946176, 36414300}
798    ,
799    {90428160, 16558285}
800    , {99910144, 96702270}
801    , {9392128, 76846256}
802    , {18874112, 56990241}
803    , {28356096, 37134226}
804    ,
805    {37838080, 17278211}
806    , {47320064, 97422196}
807    , {56802048, 77566181}
808    , {66284032, 57710166}
809    , {75766016, 37854151}
810    ,
811    {85248000, 17998136}
812    , {94729984, 98142121}
813    , {4211968, 78286107}
814    ,
815    }
816   ,
817 };
818
819 // for j>=min_j[i+1], there is k s.t. convert_table[i][j][k]>0
820 // int min_j[] = { 0, 0, 0, 3 };
821
822 // for even k, ((packed_10000_zeros[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k
823 const UINT8 packed_10000_zeros[] = {
824
825   0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
826   0x40, 0x0, 0x1,
827   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
828   0x0, 0x1, 0x4,
829   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
830   0x1, 0x4, 0x10,
831   0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
832   0x4, 0x20, 0x40,
833   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4,
834   0x10, 0x40, 0x0,
835   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
836   0x40, 0x0, 0x1,
837   0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
838   0x0, 0x1, 0x4,
839   0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
840   0x3, 0x4, 0x10,
841   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
842   0x4, 0x10, 0x40,
843   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
844   0x10, 0x40, 0x0,
845   0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
846   0x40, 0x0, 0x2,
847   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
848   0x0, 0x1, 0x4,
849   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0,
850   0x1, 0x4, 0x10,
851   0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
852   0x4, 0x10, 0x40,
853   0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
854   0x20, 0x40, 0x0,
855   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10,
856   0x40, 0x0, 0x1,
857   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
858   0x0, 0x1, 0x4,
859   0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
860   0x1, 0x4, 0x20,
861   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
862   0x4, 0x10, 0x40,
863   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
864   0x10, 0x40, 0x0,
865   0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
866   0x40, 0x0, 0x1,
867   0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
868   0x0, 0x2, 0x4,
869   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
870   0x1, 0x4, 0x10,
871   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1,
872   0x4, 0x10, 0x40,
873   0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
874   0x10, 0x40, 0x0,
875   0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
876   0x40, 0x0, 0x1,
877   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
878   0x0, 0x1, 0x4,
879   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
880   0x1, 0x4, 0x10,
881   0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
882   0x4, 0x20, 0x40,
883   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4,
884   0x10, 0x40, 0x0,
885   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
886   0x40, 0x0, 0x1,
887   0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
888   0x0, 0x1, 0x4,
889   0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
890   0x2, 0x4, 0x10,
891   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
892   0x4, 0x10, 0x40,
893   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
894   0x10, 0x40, 0x0,
895   0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
896   0x40, 0x0, 0x2,
897   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
898   0x0, 0x1, 0x4,
899   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0,
900   0x1, 0x4, 0x10,
901   0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
902   0x4, 0x10, 0x40,
903   0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
904   0x20, 0x40, 0x0,
905   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10,
906   0x40, 0x0, 0x1,
907   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
908   0x0, 0x1, 0x4,
909   0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
910   0x1, 0x4, 0x20,
911   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
912   0x4, 0x10, 0x40,
913   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
914   0x10, 0x40, 0x0,
915   0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
916   0x40, 0x0, 0x1,
917   0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
918   0x0, 0x3, 0x4,
919   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
920   0x1, 0x4, 0x10,
921   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1,
922   0x4, 0x10, 0x40,
923   0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
924   0x10, 0x40, 0x0,
925   0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
926   0x40, 0x0, 0x1,
927   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
928   0x0, 0x1, 0x4,
929   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
930   0x1, 0x4, 0x10,
931   0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
932   0x4, 0x20, 0x40,
933   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4,
934   0x10, 0x40, 0x0,
935   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
936   0x40, 0x0, 0x1,
937   0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
938   0x0, 0x1, 0x4,
939   0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
940   0x2, 0x4, 0x10,
941   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
942   0x4, 0x10, 0x40,
943   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
944   0x10, 0x40, 0x0,
945   0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
946   0x40, 0x0, 0x2,
947   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
948   0x0, 0x1, 0x4,
949   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0,
950   0x1, 0x4, 0x10,
951   0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
952   0x4, 0x10, 0x40,
953   0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
954   0x20, 0x40, 0x0,
955   0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10,
956   0x40, 0x0, 0x1,
957   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
958   0x0, 0x1, 0x4,
959   0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
960   0x1, 0x4, 0x20,
961   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
962   0x4, 0x10, 0x40,
963   0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
964   0x10, 0x40, 0x0,
965   0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
966   0x40, 0x0, 0x1,
967   0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
968   0x0, 0x2, 0x4,
969   0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
970   0x1, 0x4, 0x10,
971   0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1,
972   0x4, 0x10, 0x40,
973   0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
974   0x10, 0x40, 0x0,
975   0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
976   0x40, 0x0, 0x1,
977   0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
978   0x0, 0x1, 0x4,
979   0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
980   0x1, 0x4, 0x10,
981   0x40, 0x0,
982 };
983
984
985 const SINT8 factors[1024][2] = {
986   {0, 0}
987   , {1, 0}
988   , {0, 0}
989   , {2, 0}
990   , {0, 1}
991   , {1, 0}
992   , {0, 0}
993   , {3, 0}
994   , {0, 0}
995   , {1, 1}
996   ,
997   {0, 0}
998   , {2, 0}
999   , {0, 0}
1000   , {1, 0}
1001   , {0, 1}
1002   , {4, 0}
1003   , {0, 0}
1004   , {1, 0}
1005   , {0, 0}
1006   , {2, 1}
1007   ,
1008   {0, 0}
1009   , {1, 0}
1010   , {0, 0}
1011   , {3, 0}
1012   , {0, 2}
1013   , {1, 0}
1014   , {0, 0}
1015   , {2, 0}
1016   , {0, 0}
1017   , {1, 1}
1018   ,
1019   {0, 0}
1020   , {5, 0}
1021   , {0, 0}
1022   , {1, 0}
1023   , {0, 1}
1024   , {2, 0}
1025   , {0, 0}
1026   , {1, 0}
1027   , {0, 0}
1028   , {3, 1}
1029   ,
1030   {0, 0}
1031   , {1, 0}
1032   , {0, 0}
1033   , {2, 0}
1034   , {0, 1}
1035   , {1, 0}
1036   , {0, 0}
1037   , {4, 0}
1038   , {0, 0}
1039   , {1, 2}
1040   ,
1041   {0, 0}
1042   , {2, 0}
1043   , {0, 0}
1044   , {1, 0}
1045   , {0, 1}
1046   , {3, 0}
1047   , {0, 0}
1048   , {1, 0}
1049   , {0, 0}
1050   , {2, 1}
1051   ,
1052   {0, 0}
1053   , {1, 0}
1054   , {0, 0}
1055   , {6, 0}
1056   , {0, 1}
1057   , {1, 0}
1058   , {0, 0}
1059   , {2, 0}
1060   , {0, 0}
1061   , {1, 1}
1062   ,
1063   {0, 0}
1064   , {3, 0}
1065   , {0, 0}
1066   , {1, 0}
1067   , {0, 2}
1068   , {2, 0}
1069   , {0, 0}
1070   , {1, 0}
1071   , {0, 0}
1072   , {4, 1}
1073   ,
1074   {0, 0}
1075   , {1, 0}
1076   , {0, 0}
1077   , {2, 0}
1078   , {0, 1}
1079   , {1, 0}
1080   , {0, 0}
1081   , {3, 0}
1082   , {0, 0}
1083   , {1, 1}
1084   ,
1085   {0, 0}
1086   , {2, 0}
1087   , {0, 0}
1088   , {1, 0}
1089   , {0, 1}
1090   , {5, 0}
1091   , {0, 0}
1092   , {1, 0}
1093   , {0, 0}
1094   , {2, 2}
1095   ,
1096   {0, 0}
1097   , {1, 0}
1098   , {0, 0}
1099   , {3, 0}
1100   , {0, 1}
1101   , {1, 0}
1102   , {0, 0}
1103   , {2, 0}
1104   , {0, 0}
1105   , {1, 1}
1106   ,
1107   {0, 0}
1108   , {4, 0}
1109   , {0, 0}
1110   , {1, 0}
1111   , {0, 1}
1112   , {2, 0}
1113   , {0, 0}
1114   , {1, 0}
1115   , {0, 0}
1116   , {3, 1}
1117   ,
1118   {0, 0}
1119   , {1, 0}
1120   , {0, 0}
1121   , {2, 0}
1122   , {0, 3}
1123   , {1, 0}
1124   , {0, 0}
1125   , {7, 0}
1126   , {0, 0}
1127   , {1, 1}
1128   ,
1129   {0, 0}
1130   , {2, 0}
1131   , {0, 0}
1132   , {1, 0}
1133   , {0, 1}
1134   , {3, 0}
1135   , {0, 0}
1136   , {1, 0}
1137   , {0, 0}
1138   , {2, 1}
1139   ,
1140   {0, 0}
1141   , {1, 0}
1142   , {0, 0}
1143   , {4, 0}
1144   , {0, 1}
1145   , {1, 0}
1146   , {0, 0}
1147   , {2, 0}
1148   , {0, 0}
1149   , {1, 2}
1150   ,
1151   {0, 0}
1152   , {3, 0}
1153   , {0, 0}
1154   , {1, 0}
1155   , {0, 1}
1156   , {2, 0}
1157   , {0, 0}
1158   , {1, 0}
1159   , {0, 0}
1160   , {5, 1}
1161   ,
1162   {0, 0}
1163   , {1, 0}
1164   , {0, 0}
1165   , {2, 0}
1166   , {0, 1}
1167   , {1, 0}
1168   , {0, 0}
1169   , {3, 0}
1170   , {0, 0}
1171   , {1, 1}
1172   ,
1173   {0, 0}
1174   , {2, 0}
1175   , {0, 0}
1176   , {1, 0}
1177   , {0, 2}
1178   , {4, 0}
1179   , {0, 0}
1180   , {1, 0}
1181   , {0, 0}
1182   , {2, 1}
1183   ,
1184   {0, 0}
1185   , {1, 0}
1186   , {0, 0}
1187   , {3, 0}
1188   , {0, 1}
1189   , {1, 0}
1190   , {0, 0}
1191   , {2, 0}
1192   , {0, 0}
1193   , {1, 1}
1194   ,
1195   {0, 0}
1196   , {6, 0}
1197   , {0, 0}
1198   , {1, 0}
1199   , {0, 1}
1200   , {2, 0}
1201   , {0, 0}
1202   , {1, 0}
1203   , {0, 0}
1204   , {3, 2}
1205   ,
1206   {0, 0}
1207   , {1, 0}
1208   , {0, 0}
1209   , {2, 0}
1210   , {0, 1}
1211   , {1, 0}
1212   , {0, 0}
1213   , {4, 0}
1214   , {0, 0}
1215   , {1, 1}
1216   ,
1217   {0, 0}
1218   , {2, 0}
1219   , {0, 0}
1220   , {1, 0}
1221   , {0, 1}
1222   , {3, 0}
1223   , {0, 0}
1224   , {1, 0}
1225   , {0, 0}
1226   , {2, 1}
1227   ,
1228   {0, 0}
1229   , {1, 0}
1230   , {0, 0}
1231   , {5, 0}
1232   , {0, 2}
1233   , {1, 0}
1234   , {0, 0}
1235   , {2, 0}
1236   , {0, 0}
1237   , {1, 1}
1238   ,
1239   {0, 0}
1240   , {3, 0}
1241   , {0, 0}
1242   , {1, 0}
1243   , {0, 1}
1244   , {2, 0}
1245   , {0, 0}
1246   , {1, 0}
1247   , {0, 0}
1248   , {4, 1}
1249   ,
1250   {0, 0}
1251   , {1, 0}
1252   , {0, 0}
1253   , {2, 0}
1254   , {0, 1}
1255   , {1, 0}
1256   , {0, 0}
1257   , {3, 0}
1258   , {0, 0}
1259   , {1, 3}
1260   ,
1261   {0, 0}
1262   , {2, 0}
1263   , {0, 0}
1264   , {1, 0}
1265   , {0, 1}
1266   , {8, 0}
1267   , {0, 0}
1268   , {1, 0}
1269   , {0, 0}
1270   , {2, 1}
1271   ,
1272   {0, 0}
1273   , {1, 0}
1274   , {0, 0}
1275   , {3, 0}
1276   , {0, 1}
1277   , {1, 0}
1278   , {0, 0}
1279   , {2, 0}
1280   , {0, 0}
1281   , {1, 1}
1282   ,
1283   {0, 0}
1284   , {4, 0}
1285   , {0, 0}
1286   , {1, 0}
1287   , {0, 2}
1288   , {2, 0}
1289   , {0, 0}
1290   , {1, 0}
1291   , {0, 0}
1292   , {3, 1}
1293   ,
1294   {0, 0}
1295   , {1, 0}
1296   , {0, 0}
1297   , {2, 0}
1298   , {0, 1}
1299   , {1, 0}
1300   , {0, 0}
1301   , {5, 0}
1302   , {0, 0}
1303   , {1, 1}
1304   ,
1305   {0, 0}
1306   , {2, 0}
1307   , {0, 0}
1308   , {1, 0}
1309   , {0, 1}
1310   , {3, 0}
1311   , {0, 0}
1312   , {1, 0}
1313   , {0, 0}
1314   , {2, 2}
1315   ,
1316   {0, 0}
1317   , {1, 0}
1318   , {0, 0}
1319   , {4, 0}
1320   , {0, 1}
1321   , {1, 0}
1322   , {0, 0}
1323   , {2, 0}
1324   , {0, 0}
1325   , {1, 1}
1326   ,
1327   {0, 0}
1328   , {3, 0}
1329   , {0, 0}
1330   , {1, 0}
1331   , {0, 1}
1332   , {2, 0}
1333   , {0, 0}
1334   , {1, 0}
1335   , {0, 0}
1336   , {6, 1}
1337   ,
1338   {0, 0}
1339   , {1, 0}
1340   , {0, 0}
1341   , {2, 0}
1342   , {0, 2}
1343   , {1, 0}
1344   , {0, 0}
1345   , {3, 0}
1346   , {0, 0}
1347   , {1, 1}
1348   ,
1349   {0, 0}
1350   , {2, 0}
1351   , {0, 0}
1352   , {1, 0}
1353   , {0, 1}
1354   , {4, 0}
1355   , {0, 0}
1356   , {1, 0}
1357   , {0, 0}
1358   , {2, 1}
1359   ,
1360   {0, 0}
1361   , {1, 0}
1362   , {0, 0}
1363   , {3, 0}
1364   , {0, 1}
1365   , {1, 0}
1366   , {0, 0}
1367   , {2, 0}
1368   , {0, 0}
1369   , {1, 2}
1370   ,
1371   {0, 0}
1372   , {5, 0}
1373   , {0, 0}
1374   , {1, 0}
1375   , {0, 1}
1376   , {2, 0}
1377   , {0, 0}
1378   , {1, 0}
1379   , {0, 0}
1380   , {3, 1}
1381   ,
1382   {0, 0}
1383   , {1, 0}
1384   , {0, 0}
1385   , {2, 0}
1386   , {0, 1}
1387   , {1, 0}
1388   , {0, 0}
1389   , {4, 0}
1390   , {0, 0}
1391   , {1, 1}
1392   ,
1393   {0, 0}
1394   , {2, 0}
1395   , {0, 0}
1396   , {1, 0}
1397   , {0, 3}
1398   , {3, 0}
1399   , {0, 0}
1400   , {1, 0}
1401   , {0, 0}
1402   , {2, 1}
1403   ,
1404   {0, 0}
1405   , {1, 0}
1406   , {0, 0}
1407   , {7, 0}
1408   , {0, 1}
1409   , {1, 0}
1410   , {0, 0}
1411   , {2, 0}
1412   , {0, 0}
1413   , {1, 1}
1414   ,
1415   {0, 0}
1416   , {3, 0}
1417   , {0, 0}
1418   , {1, 0}
1419   , {0, 1}
1420   , {2, 0}
1421   , {0, 0}
1422   , {1, 0}
1423   , {0, 0}
1424   , {4, 2}
1425   ,
1426   {0, 0}
1427   , {1, 0}
1428   , {0, 0}
1429   , {2, 0}
1430   , {0, 1}
1431   , {1, 0}
1432   , {0, 0}
1433   , {3, 0}
1434   , {0, 0}
1435   , {1, 1}
1436   ,
1437   {0, 0}
1438   , {2, 0}
1439   , {0, 0}
1440   , {1, 0}
1441   , {0, 1}
1442   , {5, 0}
1443   , {0, 0}
1444   , {1, 0}
1445   , {0, 0}
1446   , {2, 1}
1447   ,
1448   {0, 0}
1449   , {1, 0}
1450   , {0, 0}
1451   , {3, 0}
1452   , {0, 2}
1453   , {1, 0}
1454   , {0, 0}
1455   , {2, 0}
1456   , {0, 0}
1457   , {1, 1}
1458   ,
1459   {0, 0}
1460   , {4, 0}
1461   , {0, 0}
1462   , {1, 0}
1463   , {0, 1}
1464   , {2, 0}
1465   , {0, 0}
1466   , {1, 0}
1467   , {0, 0}
1468   , {3, 1}
1469   ,
1470   {0, 0}
1471   , {1, 0}
1472   , {0, 0}
1473   , {2, 0}
1474   , {0, 1}
1475   , {1, 0}
1476   , {0, 0}
1477   , {6, 0}
1478   , {0, 0}
1479   , {1, 2}
1480   ,
1481   {0, 0}
1482   , {2, 0}
1483   , {0, 0}
1484   , {1, 0}
1485   , {0, 1}
1486   , {3, 0}
1487   , {0, 0}
1488   , {1, 0}
1489   , {0, 0}
1490   , {2, 1}
1491   ,
1492   {0, 0}
1493   , {1, 0}
1494   , {0, 0}
1495   , {4, 0}
1496   , {0, 1}
1497   , {1, 0}
1498   , {0, 0}
1499   , {2, 0}
1500   , {0, 0}
1501   , {1, 1}
1502   ,
1503   {0, 0}
1504   , {3, 0}
1505   , {0, 0}
1506   , {1, 0}
1507   , {0, 2}
1508   , {2, 0}
1509   , {0, 0}
1510   , {1, 0}
1511   , {0, 0}
1512   , {5, 1}
1513   ,
1514   {0, 0}
1515   , {1, 0}
1516   , {0, 0}
1517   , {2, 0}
1518   , {0, 1}
1519   , {1, 0}
1520   , {0, 0}
1521   , {3, 0}
1522   , {0, 0}
1523   , {1, 1}
1524   ,
1525   {0, 0}
1526   , {2, 0}
1527   , {0, 0}
1528   , {1, 0}
1529   , {0, 1}
1530   , {4, 0}
1531   , {0, 0}
1532   , {1, 0}
1533   , {0, 0}
1534   , {2, 3}
1535   ,
1536   {0, 0}
1537   , {1, 0}
1538   , {0, 0}
1539   , {3, 0}
1540   , {0, 1}
1541   , {1, 0}
1542   , {0, 0}
1543   , {2, 0}
1544   , {0, 0}
1545   , {1, 1}
1546   ,
1547   {0, 0}
1548   , {9, 0}
1549   , {0, 0}
1550   , {1, 0}
1551   , {0, 1}
1552   , {2, 0}
1553   , {0, 0}
1554   , {1, 0}
1555   , {0, 0}
1556   , {3, 1}
1557   ,
1558   {0, 0}
1559   , {1, 0}
1560   , {0, 0}
1561   , {2, 0}
1562   , {0, 2}
1563   , {1, 0}
1564   , {0, 0}
1565   , {4, 0}
1566   , {0, 0}
1567   , {1, 1}
1568   ,
1569   {0, 0}
1570   , {2, 0}
1571   , {0, 0}
1572   , {1, 0}
1573   , {0, 1}
1574   , {3, 0}
1575   , {0, 0}
1576   , {1, 0}
1577   , {0, 0}
1578   , {2, 1}
1579   ,
1580   {0, 0}
1581   , {1, 0}
1582   , {0, 0}
1583   , {5, 0}
1584   , {0, 1}
1585   , {1, 0}
1586   , {0, 0}
1587   , {2, 0}
1588   , {0, 0}
1589   , {1, 2}
1590   ,
1591   {0, 0}
1592   , {3, 0}
1593   , {0, 0}
1594   , {1, 0}
1595   , {0, 1}
1596   , {2, 0}
1597   , {0, 0}
1598   , {1, 0}
1599   , {0, 0}
1600   , {4, 1}
1601   ,
1602   {0, 0}
1603   , {1, 0}
1604   , {0, 0}
1605   , {2, 0}
1606   , {0, 1}
1607   , {1, 0}
1608   , {0, 0}
1609   , {3, 0}
1610   , {0, 0}
1611   , {1, 1}
1612   ,
1613   {0, 0}
1614   , {2, 0}
1615   , {0, 0}
1616   , {1, 0}
1617   , {0, 2}
1618   , {6, 0}
1619   , {0, 0}
1620   , {1, 0}
1621   , {0, 0}
1622   , {2, 1}
1623   ,
1624   {0, 0}
1625   , {1, 0}
1626   , {0, 0}
1627   , {3, 0}
1628   , {0, 1}
1629   , {1, 0}
1630   , {0, 0}
1631   , {2, 0}
1632   , {0, 0}
1633   , {1, 1}
1634   ,
1635   {0, 0}
1636   , {4, 0}
1637   , {0, 0}
1638   , {1, 0}
1639   , {0, 1}
1640   , {2, 0}
1641   , {0, 0}
1642   , {1, 0}
1643   , {0, 0}
1644   , {3, 2}
1645   ,
1646   {0, 0}
1647   , {1, 0}
1648   , {0, 0}
1649   , {2, 0}
1650   , {0, 1}
1651   , {1, 0}
1652   , {0, 0}
1653   , {5, 0}
1654   , {0, 0}
1655   , {1, 1}
1656   ,
1657   {0, 0}
1658   , {2, 0}
1659   , {0, 0}
1660   , {1, 0}
1661   , {0, 1}
1662   , {3, 0}
1663   , {0, 0}
1664   , {1, 0}
1665   , {0, 0}
1666   , {2, 1}
1667   ,
1668   {0, 0}
1669   , {1, 0}
1670   , {0, 0}
1671   , {4, 0}
1672   , {0, 4}
1673   , {1, 0}
1674   , {0, 0}
1675   , {2, 0}
1676   , {0, 0}
1677   , {1, 1}
1678   ,
1679   {0, 0}
1680   , {3, 0}
1681   , {0, 0}
1682   , {1, 0}
1683   , {0, 1}
1684   , {2, 0}
1685   , {0, 0}
1686   , {1, 0}
1687   , {0, 0}
1688   , {7, 1}
1689   ,
1690   {0, 0}
1691   , {1, 0}
1692   , {0, 0}
1693   , {2, 0}
1694   , {0, 1}
1695   , {1, 0}
1696   , {0, 0}
1697   , {3, 0}
1698   , {0, 0}
1699   , {1, 2}
1700   ,
1701   {0, 0}
1702   , {2, 0}
1703   , {0, 0}
1704   , {1, 0}
1705   , {0, 1}
1706   , {4, 0}
1707   , {0, 0}
1708   , {1, 0}
1709   , {0, 0}
1710   , {2, 1}
1711   ,
1712   {0, 0}
1713   , {1, 0}
1714   , {0, 0}
1715   , {3, 0}
1716   , {0, 1}
1717   , {1, 0}
1718   , {0, 0}
1719   , {2, 0}
1720   , {0, 0}
1721   , {1, 1}
1722   ,
1723   {0, 0}
1724   , {5, 0}
1725   , {0, 0}
1726   , {1, 0}
1727   , {0, 2}
1728   , {2, 0}
1729   , {0, 0}
1730   , {1, 0}
1731   , {0, 0}
1732   , {3, 1}
1733   ,
1734   {0, 0}
1735   , {1, 0}
1736   , {0, 0}
1737   , {2, 0}
1738   , {0, 1}
1739   , {1, 0}
1740   , {0, 0}
1741   , {4, 0}
1742   , {0, 0}
1743   , {1, 1}
1744   ,
1745   {0, 0}
1746   , {2, 0}
1747   , {0, 0}
1748   , {1, 0}
1749   , {0, 1}
1750   , {3, 0}
1751   , {0, 0}
1752   , {1, 0}
1753   , {0, 0}
1754   , {2, 2}
1755   ,
1756   {0, 0}
1757   , {1, 0}
1758   , {0, 0}
1759   , {6, 0}
1760   , {0, 1}
1761   , {1, 0}
1762   , {0, 0}
1763   , {2, 0}
1764   , {0, 0}
1765   , {1, 1}
1766   ,
1767   {0, 0}
1768   , {3, 0}
1769   , {0, 0}
1770   , {1, 0}
1771   , {0, 1}
1772   , {2, 0}
1773   , {0, 0}
1774   , {1, 0}
1775   , {0, 0}
1776   , {4, 1}
1777   ,
1778   {0, 0}
1779   , {1, 0}
1780   , {0, 0}
1781   , {2, 0}
1782   , {0, 2}
1783   , {1, 0}
1784   , {0, 0}
1785   , {3, 0}
1786   , {0, 0}
1787   , {1, 1}
1788   ,
1789   {0, 0}
1790   , {2, 0}
1791   , {0, 0}
1792   , {1, 0}
1793   , {0, 1}
1794   , {5, 0}
1795   , {0, 0}
1796   , {1, 0}
1797   , {0, 0}
1798   , {2, 1}
1799   ,
1800   {0, 0}
1801   , {1, 0}
1802   , {0, 0}
1803   , {3, 0}
1804   , {0, 1}
1805   , {1, 0}
1806   , {0, 0}
1807   , {2, 0}
1808   , {0, 0}
1809   , {1, 3}
1810   ,
1811   {0, 0}
1812   , {4, 0}
1813   , {0, 0}
1814   , {1, 0}
1815   , {0, 1}
1816   , {2, 0}
1817   , {0, 0}
1818   , {1, 0}
1819   , {0, 0}
1820   , {3, 1}
1821   ,
1822   {0, 0}
1823   , {1, 0}
1824   , {0, 0}
1825   , {2, 0}
1826   , {0, 1}
1827   , {1, 0}
1828   , {0, 0}
1829   , {8, 0}
1830   , {0, 0}
1831   , {1, 1}
1832   ,
1833   {0, 0}
1834   , {2, 0}
1835   , {0, 0}
1836   , {1, 0}
1837   , {0, 2}
1838   , {3, 0}
1839   , {0, 0}
1840   , {1, 0}
1841   , {0, 0}
1842   , {2, 1}
1843   ,
1844   {0, 0}
1845   , {1, 0}
1846   , {0, 0}
1847   , {4, 0}
1848   , {0, 1}
1849   , {1, 0}
1850   , {0, 0}
1851   , {2, 0}
1852   , {0, 0}
1853   , {1, 1}
1854   ,
1855   {0, 0}
1856   , {3, 0}
1857   , {0, 0}
1858   , {1, 0}
1859   , {0, 1}
1860   , {2, 0}
1861   , {0, 0}
1862   , {1, 0}
1863   , {0, 0}
1864   , {5, 2}
1865   ,
1866   {0, 0}
1867   , {1, 0}
1868   , {0, 0}
1869   , {2, 0}
1870   , {0, 1}
1871   , {1, 0}
1872   , {0, 0}
1873   , {3, 0}
1874   , {0, 0}
1875   , {1, 1}
1876   ,
1877   {0, 0}
1878   , {2, 0}
1879   , {0, 0}
1880   , {1, 0}
1881   , {0, 1}
1882   , {4, 0}
1883   , {0, 0}
1884   , {1, 0}
1885   , {0, 0}
1886   , {2, 1}
1887   ,
1888   {0, 0}
1889   , {1, 0}
1890   , {0, 0}
1891   , {3, 0}
1892   , {0, 2}
1893   , {1, 0}
1894   , {0, 0}
1895   , {2, 0}
1896   , {0, 0}
1897   , {1, 1}
1898   ,
1899   {0, 0}
1900   , {6, 0}
1901   , {0, 0}
1902   , {1, 0}
1903   , {0, 1}
1904   , {2, 0}
1905   , {0, 0}
1906   , {1, 0}
1907   , {0, 0}
1908   , {3, 1}
1909   ,
1910   {0, 0}
1911   , {1, 0}
1912   , {0, 0}
1913   , {2, 0}
1914   , {0, 1}
1915   , {1, 0}
1916   , {0, 0}
1917   , {4, 0}
1918   , {0, 0}
1919   , {1, 2}
1920   ,
1921   {0, 0}
1922   , {2, 0}
1923   , {0, 0}
1924   , {1, 0}
1925   , {0, 1}
1926   , {3, 0}
1927   , {0, 0}
1928   , {1, 0}
1929   , {0, 0}
1930   , {2, 1}
1931   ,
1932   {0, 0}
1933   , {1, 0}
1934   , {0, 0}
1935   , {5, 0}
1936   , {0, 1}
1937   , {1, 0}
1938   , {0, 0}
1939   , {2, 0}
1940   , {0, 0}
1941   , {1, 1}
1942   ,
1943   {0, 0}
1944   , {3, 0}
1945   , {0, 0}
1946   , {1, 0}
1947   , {0, 3}
1948   , {2, 0}
1949   , {0, 0}
1950   , {1, 0}
1951   , {0, 0}
1952   , {4, 1}
1953   ,
1954   {0, 0}
1955   , {1, 0}
1956   , {0, 0}
1957   , {2, 0}
1958   , {0, 1}
1959   , {1, 0}
1960   , {0, 0}
1961   , {3, 0}
1962   , {0, 0}
1963   , {1, 1}
1964   ,
1965   {0, 0}
1966   , {2, 0}
1967   , {0, 0}
1968   , {1, 0}
1969   , {0, 1}
1970   , {7, 0}
1971   , {0, 0}
1972   , {1, 0}
1973   , {0, 0}
1974   , {2, 2}
1975   ,
1976   {0, 0}
1977   , {1, 0}
1978   , {0, 0}
1979   , {3, 0}
1980   , {0, 1}
1981   , {1, 0}
1982   , {0, 0}
1983   , {2, 0}
1984   , {0, 0}
1985   , {1, 1}
1986   ,
1987   {0, 0}
1988   , {4, 0}
1989   , {0, 0}
1990   , {1, 0}
1991   , {0, 1}
1992   , {2, 0}
1993   , {0, 0}
1994   , {1, 0}
1995   , {0, 0}
1996   , {3, 1}
1997   ,
1998   {0, 0}
1999   , {1, 0}
2000   , {0, 0}
2001   , {2, 0}
2002   , {0, 2}
2003   , {1, 0}
2004   , {0, 0}
2005   , {5, 0}
2006   , {0, 0}
2007   , {1, 1}
2008   ,
2009   {0, 0}
2010   , {2, 0}
2011   , {0, 0}
2012   , {1, 0}
2013   , {0, 1}
2014   , {3, 0}
2015   , {0, 0}
2016   , {1, 0}
2017   , {0, 0}
2018   , {2, 1}
2019   ,
2020   {0, 0}
2021   , {1, 0}
2022   , {0, 0}
2023   , {4, 0}
2024   , {0, 1}
2025   , {1, 0}
2026   , {0, 0}
2027   , {2, 0}
2028   , {0, 0}
2029   , {1, 2}
2030   ,
2031   {0, 0}
2032   , {3, 0}
2033   , {0, 0}
2034   , {1, 0}
2035   , {0, 1}
2036   , {2, 0}
2037   , {0, 0}
2038   , {1, 0}
2039   , {0, 0}
2040   , {6, 1}
2041   ,
2042   {0, 0}
2043   , {1, 0}
2044   , {0, 0}
2045   , {2, 0}
2046   , {0, 1}
2047   , {1, 0}
2048   , {0, 0}
2049   , {3, 0}
2050   , {0, 0}
2051   , {1, 1}
2052   ,
2053   {0, 0}
2054   , {2, 0}
2055   , {0, 0}
2056   , {1, 0}
2057   , {0, 2}
2058   , {4, 0}
2059   , {0, 0}
2060   , {1, 0}
2061   , {0, 0}
2062   , {2, 1}
2063   ,
2064   {0, 0}
2065   , {1, 0}
2066   , {0, 0}
2067   , {3, 0}
2068   , {0, 1}
2069   , {1, 0}
2070   , {0, 0}
2071   , {2, 0}
2072   , {0, 0}
2073   , {1, 1}
2074   ,
2075   {0, 0}
2076   , {5, 0}
2077   , {0, 0}
2078   , {1, 0}
2079   , {0, 1}
2080   , {2, 0}
2081   , {0, 0}
2082   , {1, 0}
2083   , {0, 0}
2084   , {3, 3}
2085   ,
2086   {0, 0}
2087   , {1, 0}
2088   , {0, 0}
2089   , {2, 0}
2090   , {0, 1}
2091   , {1, 0}
2092   , {0, 0}
2093   , {4, 0}
2094   , {0, 0}
2095   , {1, 1}
2096   ,
2097   {0, 0}
2098   , {2, 0}
2099   , {0, 0}
2100   , {1, 0}
2101   , {0, 1}
2102   , {3, 0}
2103   , {0, 0}
2104   , {1, 0}
2105   , {0, 0}
2106   , {2, 1}
2107   ,
2108   {0, 0}
2109   , {1, 0}
2110   , {0, 0}
2111   , {10, 0}
2112   ,
2113 };