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