gcc/libgcc/config/libbid/bid_convert_data.c
H.J. Lu b2a00c8984 Makefile.in (dfp-filenames): Replace decimal_globals...
libgcc/

2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (dfp-filenames): Replace decimal_globals,
	decimal_data, binarydecimal and convert_data with
	bid_decimal_globals, bid_decimal_data, bid_binarydecimal
	and bid_convert_data, respectively.

libgcc/config/libbid/

2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>

	* bid128_fromstring.c: Removed.

	* bid_dpd.c: New from libbid 2007-09-26.
	* bid128_to_int16.c: Likewise.
	* bid128_to_int8.c: Likewise.
	* bid128_to_uint8.c: Likewise.
	* bid128_to_uint16.c: Likewise.
	* bid64_to_int16.c: Likewise.
	* bid64_to_int8.c: Likewise.
	* bid64_to_uint16.c: Likewise.
	* bid64_to_uint8.c: Likewise.

	* bid128_2_str.h: Updated from libbid 2007-09-26.
	* bid128_2_str_macros.h: Likewise.
	* bid128_2_str_tables.c: Likewise.
	* bid128_add.c: Likewise.
	* bid128.c: Likewise.
	* bid128_compare.c: Likewise.
	* bid128_div.c: Likewise.
	* bid128_fma.c: Likewise.
	* bid128_logb.c: Likewise.
	* bid128_minmax.c: Likewise.
	* bid128_mul.c: Likewise.
	* bid128_next.c: Likewise.
	* bid128_noncomp.c: Likewise.
	* bid128_quantize.c: Likewise.
	* bid128_rem.c: Likewise.
	* bid128_round_integral.c: Likewise.
	* bid128_scalb.c: Likewise.
	* bid128_sqrt.c: Likewise.
	* bid128_string.c: Likewise.
	* bid128_to_int32.c: Likewise.
	* bid128_to_int64.c: Likewise.
	* bid128_to_uint32.c: Likewise.
	* bid128_to_uint64.c: Likewise.
	* bid32_to_bid128.c: Likewise.
	* bid32_to_bid64.c: Likewise.
	* bid64_add.c: Likewise.
	* bid64_compare.c: Likewise.
	* bid64_div.c: Likewise.
	* bid64_fma.c: Likewise.
	* bid64_logb.c: Likewise.
	* bid64_minmax.c: Likewise.
	* bid64_mul.c: Likewise.
	* bid64_next.c: Likewise.
	* bid64_noncomp.c: Likewise.
	* bid64_quantize.c: Likewise.
	* bid64_rem.c: Likewise.
	* bid64_round_integral.c: Likewise.
	* bid64_scalb.c: Likewise.
	* bid64_sqrt.c: Likewise.
	* bid64_string.c: Likewise.
	* bid64_to_bid128.c: Likewise.
	* bid64_to_int32.c: Likewise.
	* bid64_to_int64.c: Likewise.
	* bid64_to_uint32.c: Likewise.
	* bid64_to_uint64.c: Likewise.
	* bid_b2d.h: Likewise.
	* bid_binarydecimal.c: Likewise.
	* bid_conf.h: Likewise.
	* bid_convert_data.c: Likewise.
	* bid_decimal_data.c: Likewise.
	* bid_decimal_globals.c: Likewise.
	* bid_div_macros.h: Likewise.
	* bid_flag_operations.c: Likewise.
	* bid_from_int.c: Likewise.
	* bid_functions.h: Likewise.
	* bid_gcc_intrinsics.h: Likewise.
	* bid_inline_add.h: Likewise.
	* bid_internal.h: Likewise.
	* bid_round.c: Likewise.
	* bid_sqrt_macros.h: Likewise.
	* _addsub_dd.c: Likewise.
	* _addsub_sd.c: Likewise.
	* _addsub_td.c: Likewise.
	* _dd_to_df.c: Likewise.
	* _dd_to_di.c: Likewise.
	* _dd_to_sd.c: Likewise.
	* _dd_to_sf.c: Likewise.
	* _dd_to_si.c: Likewise.
	* _dd_to_td.c: Likewise.
	* _dd_to_tf.c: Likewise.
	* _dd_to_udi.c: Likewise.
	* _dd_to_usi.c: Likewise.
	* _dd_to_xf.c: Likewise.
	* _df_to_dd.c: Likewise.
	* _df_to_sd.c: Likewise.
	* _df_to_td.c: Likewise.
	* _di_to_dd.c: Likewise.
	* _di_to_sd.c: Likewise.
	* _di_to_td.c: Likewise.
	* _div_dd.c: Likewise.
	* _div_sd.c: Likewise.
	* _div_td.c: Likewise.
	* _eq_dd.c: Likewise.
	* _eq_sd.c: Likewise.
	* _eq_td.c: Likewise.
	* _ge_dd.c: Likewise.
	* _ge_sd.c: Likewise.
	* _ge_td.c: Likewise.
	* _gt_dd.c: Likewise.
	* _gt_sd.c: Likewise.
	* _gt_td.c: Likewise.
	* _isinfd128.c: Likewise.
	* _isinfd32.c: Likewise.
	* _isinfd64.c: Likewise.
	* _le_dd.c: Likewise.
	* _le_sd.c: Likewise.
	* _le_td.c: Likewise.
	* _lt_dd.c: Likewise.
	* _lt_sd.c: Likewise.
	* _lt_td.c: Likewise.
	* _mul_dd.c: Likewise.
	* _mul_sd.c: Likewise.
	* _mul_td.c: Likewise.
	* _ne_dd.c: Likewise.
	* _ne_sd.c: Likewise.
	* _ne_td.c: Likewise.
	* _sd_to_dd.c: Likewise.
	* _sd_to_df.c: Likewise.
	* _sd_to_di.c: Likewise.
	* _sd_to_sf.c: Likewise.
	* _sd_to_si.c: Likewise.
	* _sd_to_td.c: Likewise.
	* _sd_to_tf.c: Likewise.
	* _sd_to_udi.c: Likewise.
	* _sd_to_usi.c: Likewise.
	* _sd_to_xf.c: Likewise.
	* _sf_to_dd.c: Likewise.
	* _sf_to_sd.c: Likewise.
	* _sf_to_td.c: Likewise.
	* _si_to_dd.c: Likewise.
	* _si_to_sd.c: Likewise.
	* _si_to_td.c: Likewise.
	* _td_to_dd.c: Likewise.
	* _td_to_df.c: Likewise.
	* _td_to_di.c: Likewise.
	* _td_to_sd.c: Likewise.
	* _td_to_sf.c: Likewise.
	* _td_to_si.c: Likewise.
	* _td_to_tf.c: Likewise.
	* _td_to_udi.c: Likewise.
	* _td_to_usi.c: Likewise.
	* _td_to_xf.c: Likewise.
	* _tf_to_dd.c: Likewise.
	* _tf_to_sd.c: Likewise.
	* _tf_to_td.c: Likewise.
	* _udi_to_dd.c: Likewise.
	* _udi_to_sd.c: Likewise.
	* _udi_to_td.c: Likewise.
	* _unord_dd.c: Likewise.
	* _unord_sd.c: Likewise.
	* _unord_td.c: Likewise.
	* _usi_to_dd.c: Likewise.
	* _usi_to_sd.c: Likewise.
	* _usi_to_td.c: Likewise.
	* _xf_to_dd.c: Likewise.
	* _xf_to_sd.c: Likewise.
	* _xf_to_td.c: Likewise.

2007-09-27  H.J. Lu  <hongjiu.lu@intel.com>

	* b2d.h: Renamed to ...
	* bid_b2d.h: This.

	* bid128_to_string.c: Renamed to ...
	* bid128_string.c: This.

	* bid_intrinsics.h: Renamed to ...
	* bid_gcc_intrinsics.h: This.

	* bid_string.c: Renamed to ...
	* bid64_string.c: This.

	* binarydecimal.c: Renamed to ...
	* bid_decimal_globals.c: This.

	* convert_data.c: Renamed to ...
	* bid_convert_data.c: This.

	* decimal_data.c: Renamed to ...
	* bid_decimal_data.c: This.

	* decimal_globals.c: Renamed to ...
	* bid_decimal_globals.c: This.

	* div_macros.h: Renamed to ...
	* bid_div_macros.h: This.

	* inline_bid_add.h: Renamed to ...
	* bid_inline_add.h: This.

	* sqrt_macros.h: Renamed to ...
	* bid_sqrt_macros.h: This.

From-SVN: r128841
2007-09-27 10:47:23 -07:00

2114 lines
35 KiB
C

/* Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA. */
#include "bid_internal.h"
// convert_table[j][k][i] = digit i (base 10^8) of k*2^(26+7*j)
const UINT32 convert_table[5][128][2] = {
{{0, 0}
, {67108864, 0}
, {34217728, 1}
, {1326592, 2}
, {68435456, 2}
,
{35544320, 3}
, {2653184, 4}
, {69762048, 4}
, {36870912, 5}
, {3979776, 6}
,
{71088640, 6}
, {38197504, 7}
, {5306368, 8}
, {72415232, 8}
, {39524096, 9}
,
{6632960, 10}
, {73741824, 10}
, {40850688, 11}
, {7959552, 12}
, {75068416, 12}
,
{42177280, 13}
, {9286144, 14}
, {76395008, 14}
, {43503872, 15}
, {10612736, 16}
,
{77721600, 16}
, {44830464, 17}
, {11939328, 18}
, {79048192, 18}
, {46157056, 19}
,
{13265920, 20}
, {80374784, 20}
, {47483648, 21}
, {14592512, 22}
, {81701376, 22}
,
{48810240, 23}
, {15919104, 24}
, {83027968, 24}
, {50136832, 25}
, {17245696, 26}
,
{84354560, 26}
, {51463424, 27}
, {18572288, 28}
, {85681152, 28}
, {52790016, 29}
,
{19898880, 30}
, {87007744, 30}
, {54116608, 31}
, {21225472, 32}
, {88334336, 32}
,
{55443200, 33}
, {22552064, 34}
, {89660928, 34}
, {56769792, 35}
, {23878656, 36}
,
{90987520, 36}
, {58096384, 37}
, {25205248, 38}
, {92314112, 38}
, {59422976, 39}
,
{26531840, 40}
, {93640704, 40}
, {60749568, 41}
, {27858432, 42}
, {94967296, 42}
,
{62076160, 43}
, {29185024, 44}
, {96293888, 44}
, {63402752, 45}
, {30511616, 46}
,
{97620480, 46}
, {64729344, 47}
, {31838208, 48}
, {98947072, 48}
, {66055936, 49}
,
{33164800, 50}
, {273664, 51}
, {67382528, 51}
, {34491392, 52}
, {1600256, 53}
,
{68709120, 53}
, {35817984, 54}
, {2926848, 55}
, {70035712, 55}
, {37144576, 56}
,
{4253440, 57}
, {71362304, 57}
, {38471168, 58}
, {5580032, 59}
, {72688896, 59}
,
{39797760, 60}
, {6906624, 61}
, {74015488, 61}
, {41124352, 62}
, {8233216, 63}
,
{75342080, 63}
, {42450944, 64}
, {9559808, 65}
, {76668672, 65}
, {43777536, 66}
,
{10886400, 67}
, {77995264, 67}
, {45104128, 68}
, {12212992, 69}
, {79321856, 69}
,
{46430720, 70}
, {13539584, 71}
, {80648448, 71}
, {47757312, 72}
, {14866176, 73}
,
{81975040, 73}
, {49083904, 74}
, {16192768, 75}
, {83301632, 75}
, {50410496, 76}
,
{17519360, 77}
, {84628224, 77}
, {51737088, 78}
, {18845952, 79}
, {85954816, 79}
,
{53063680, 80}
, {20172544, 81}
, {87281408, 81}
, {54390272, 82}
, {21499136, 83}
,
{88608000, 83}
, {55716864, 84}
, {22825728, 85}
,
}
,
{{0, 0}
, {89934592, 85}
, {79869184, 171}
, {69803776, 257}
, {59738368, 343}
,
{49672960, 429}
, {39607552, 515}
, {29542144, 601}
, {19476736, 687}
, {9411328, 773}
,
{99345920, 858}
, {89280512, 944}
, {79215104, 1030}
, {69149696, 1116}
, {59084288, 1202}
,
{49018880, 1288}
, {38953472, 1374}
, {28888064, 1460}
, {18822656, 1546}
, {8757248, 1632}
,
{98691840, 1717}
, {88626432, 1803}
, {78561024, 1889}
, {68495616, 1975}
, {58430208, 2061}
,
{48364800, 2147}
, {38299392, 2233}
, {28233984, 2319}
, {18168576, 2405}
, {8103168, 2491}
,
{98037760, 2576}
, {87972352, 2662}
, {77906944, 2748}
, {67841536, 2834}
, {57776128, 2920}
,
{47710720, 3006}
, {37645312, 3092}
, {27579904, 3178}
, {17514496, 3264}
, {7449088, 3350}
,
{97383680, 3435}
, {87318272, 3521}
, {77252864, 3607}
, {67187456, 3693}
, {57122048, 3779}
,
{47056640, 3865}
, {36991232, 3951}
, {26925824, 4037}
, {16860416, 4123}
, {6795008, 4209}
,
{96729600, 4294}
, {86664192, 4380}
, {76598784, 4466}
, {66533376, 4552}
, {56467968, 4638}
,
{46402560, 4724}
, {36337152, 4810}
, {26271744, 4896}
, {16206336, 4982}
, {6140928, 5068}
,
{96075520, 5153}
, {86010112, 5239}
, {75944704, 5325}
, {65879296, 5411}
, {55813888, 5497}
,
{45748480, 5583}
, {35683072, 5669}
, {25617664, 5755}
, {15552256, 5841}
, {5486848, 5927}
,
{95421440, 6012}
, {85356032, 6098}
, {75290624, 6184}
, {65225216, 6270}
, {55159808, 6356}
,
{45094400, 6442}
, {35028992, 6528}
, {24963584, 6614}
, {14898176, 6700}
, {4832768, 6786}
,
{94767360, 6871}
, {84701952, 6957}
, {74636544, 7043}
, {64571136, 7129}
, {54505728, 7215}
,
{44440320, 7301}
, {34374912, 7387}
, {24309504, 7473}
, {14244096, 7559}
, {4178688, 7645}
,
{94113280, 7730}
, {84047872, 7816}
, {73982464, 7902}
, {63917056, 7988}
, {53851648, 8074}
,
{43786240, 8160}
, {33720832, 8246}
, {23655424, 8332}
, {13590016, 8418}
, {3524608, 8504}
,
{93459200, 8589}
, {83393792, 8675}
, {73328384, 8761}
, {63262976, 8847}
, {53197568, 8933}
,
{43132160, 9019}
, {33066752, 9105}
, {23001344, 9191}
, {12935936, 9277}
, {2870528, 9363}
,
{92805120, 9448}
, {82739712, 9534}
, {72674304, 9620}
, {62608896, 9706}
, {52543488, 9792}
,
{42478080, 9878}
, {32412672, 9964}
, {22347264, 10050}
, {12281856, 10136}
, {2216448, 10222}
,
{92151040, 10307}
, {82085632, 10393}
, {72020224, 10479}
, {61954816, 10565}
, {51889408, 10651}
,
{41824000, 10737}
, {31758592, 10823}
, {21693184, 10909}
,
}
,
{{0, 0}
, {11627776, 10995}
, {23255552, 21990}
, {34883328, 32985}
, {46511104, 43980}
,
{58138880, 54975}
, {69766656, 65970}
, {81394432, 76965}
, {93022208, 87960}
, {4649984, 98956}
,
{16277760, 109951}
, {27905536, 120946}
, {39533312, 131941}
, {51161088, 142936}
, {62788864, 153931}
,
{74416640, 164926}
, {86044416, 175921}
, {97672192, 186916}
, {9299968, 197912}
, {20927744, 208907}
,
{32555520, 219902}
, {44183296, 230897}
, {55811072, 241892}
, {67438848, 252887}
, {79066624, 263882}
,
{90694400, 274877}
, {2322176, 285873}
, {13949952, 296868}
, {25577728, 307863}
, {37205504, 318858}
,
{48833280, 329853}
, {60461056, 340848}
, {72088832, 351843}
, {83716608, 362838}
, {95344384, 373833}
,
{6972160, 384829}
, {18599936, 395824}
, {30227712, 406819}
, {41855488, 417814}
, {53483264, 428809}
,
{65111040, 439804}
, {76738816, 450799}
, {88366592, 461794}
, {99994368, 472789}
, {11622144, 483785}
,
{23249920, 494780}
, {34877696, 505775}
, {46505472, 516770}
, {58133248, 527765}
, {69761024, 538760}
,
{81388800, 549755}
, {93016576, 560750}
, {4644352, 571746}
, {16272128, 582741}
, {27899904, 593736}
,
{39527680, 604731}
, {51155456, 615726}
, {62783232, 626721}
, {74411008, 637716}
, {86038784, 648711}
,
{97666560, 659706}
, {9294336, 670702}
, {20922112, 681697}
, {32549888, 692692}
, {44177664, 703687}
,
{55805440, 714682}
, {67433216, 725677}
, {79060992, 736672}
, {90688768, 747667}
, {2316544, 758663}
,
{13944320, 769658}
, {25572096, 780653}
, {37199872, 791648}
, {48827648, 802643}
, {60455424, 813638}
,
{72083200, 824633}
, {83710976, 835628}
, {95338752, 846623}
, {6966528, 857619}
, {18594304, 868614}
,
{30222080, 879609}
, {41849856, 890604}
, {53477632, 901599}
, {65105408, 912594}
, {76733184, 923589}
,
{88360960, 934584}
, {99988736, 945579}
, {11616512, 956575}
, {23244288, 967570}
, {34872064, 978565}
,
{46499840, 989560}
, {58127616, 1000555}
, {69755392, 1011550}
, {81383168, 1022545}
, {93010944, 1033540}
,
{4638720, 1044536}
, {16266496, 1055531}
, {27894272, 1066526}
, {39522048, 1077521}
, {51149824, 1088516}
,
{62777600, 1099511}
, {74405376, 1110506}
, {86033152, 1121501}
, {97660928, 1132496}
, {9288704, 1143492}
,
{20916480, 1154487}
, {32544256, 1165482}
, {44172032, 1176477}
, {55799808, 1187472}
, {67427584, 1198467}
,
{79055360, 1209462}
, {90683136, 1220457}
, {2310912, 1231453}
, {13938688, 1242448}
, {25566464, 1253443}
,
{37194240, 1264438}
, {48822016, 1275433}
, {60449792, 1286428}
, {72077568, 1297423}
, {83705344, 1308418}
,
{95333120, 1319413}
, {6960896, 1330409}
, {18588672, 1341404}
, {30216448, 1352399}
, {41844224, 1363394}
,
{53472000, 1374389}
, {65099776, 1385384}
, {76727552, 1396379}
,
}
,
{{0, 0}
, {88355328, 1407374}
, {76710656, 2814749}
, {65065984, 4222124}
, {53421312, 5629499}
,
{41776640, 7036874}
, {30131968, 8444249}
, {18487296, 9851624}
, {6842624, 11258999}
, {95197952, 12666373}
,
{83553280, 14073748}
, {71908608, 15481123}
, {60263936, 16888498}
, {48619264, 18295873}
, {36974592, 19703248}
,
{25329920, 21110623}
, {13685248, 22517998}
, {2040576, 23925373}
, {90395904, 25332747}
, {78751232, 26740122}
,
{67106560, 28147497}
, {55461888, 29554872}
, {43817216, 30962247}
, {32172544, 32369622}
, {20527872, 33776997}
,
{8883200, 35184372}
, {97238528, 36591746}
, {85593856, 37999121}
, {73949184, 39406496}
, {62304512, 40813871}
,
{50659840, 42221246}
, {39015168, 43628621}
, {27370496, 45035996}
, {15725824, 46443371}
, {4081152, 47850746}
,
{92436480, 49258120}
, {80791808, 50665495}
, {69147136, 52072870}
, {57502464, 53480245}
, {45857792, 54887620}
,
{34213120, 56294995}
, {22568448, 57702370}
, {10923776, 59109745}
, {99279104, 60517119}
, {87634432, 61924494}
,
{75989760, 63331869}
, {64345088, 64739244}
, {52700416, 66146619}
, {41055744, 67553994}
, {29411072, 68961369}
,
{17766400, 70368744}
, {6121728, 71776119}
, {94477056, 73183493}
, {82832384, 74590868}
, {71187712, 75998243}
,
{59543040, 77405618}
, {47898368, 78812993}
, {36253696, 80220368}
, {24609024, 81627743}
, {12964352, 83035118}
,
{1319680, 84442493}
, {89675008, 85849867}
, {78030336, 87257242}
, {66385664, 88664617}
, {54740992, 90071992}
,
{43096320, 91479367}
, {31451648, 92886742}
, {19806976, 94294117}
, {8162304, 95701492}
, {96517632, 97108866}
,
{84872960, 98516241}
, {73228288, 99923616}
, {61583616, 1330991}
, {49938944, 2738366}
, {38294272, 4145741}
,
{26649600, 5553116}
, {15004928, 6960491}
, {3360256, 8367866}
, {91715584, 9775240}
, {80070912, 11182615}
,
{68426240, 12589990}
, {56781568, 13997365}
, {45136896, 15404740}
, {33492224, 16812115}
, {21847552, 18219490}
,
{10202880, 19626865}
, {98558208, 21034239}
, {86913536, 22441614}
, {75268864, 23848989}
, {63624192, 25256364}
,
{51979520, 26663739}
, {40334848, 28071114}
, {28690176, 29478489}
, {17045504, 30885864}
, {5400832, 32293239}
,
{93756160, 33700613}
, {82111488, 35107988}
, {70466816, 36515363}
, {58822144, 37922738}
, {47177472, 39330113}
,
{35532800, 40737488}
, {23888128, 42144863}
, {12243456, 43552238}
, {598784, 44959613}
, {88954112, 46366987}
,
{77309440, 47774362}
, {65664768, 49181737}
, {54020096, 50589112}
, {42375424, 51996487}
, {30730752, 53403862}
,
{19086080, 54811237}
, {7441408, 56218612}
, {95796736, 57625986}
, {84152064, 59033361}
, {72507392, 60440736}
,
{60862720, 61848111}
, {49218048, 63255486}
, {37573376, 64662861}
, {25928704, 66070236}
, {14284032, 67477611}
,
{2639360, 68884986}
, {90994688, 70292360}
, {79350016, 71699735}
, {67705344, 73107110}
, {56060672, 74514485}
,
{44416000, 75921860}
, {32771328, 77329235}
, {21126656, 78736610}
,
}
,
{{0, 0}
, {9481984, 80143985}
, {18963968, 60287970}
, {28445952, 40431955}
, {37927936, 20575940}
,
{47409920, 719925}
, {56891904, 80863910}
, {66373888, 61007895}
, {75855872, 41151880}
, {85337856, 21295865}
,
{94819840, 1439850}
, {4301824, 81583836}
, {13783808, 61727821}
, {23265792, 41871806}
, {32747776, 22015791}
,
{42229760, 2159776}
, {51711744, 82303761}
, {61193728, 62447746}
, {70675712, 42591731}
, {80157696, 22735716}
,
{89639680, 2879701}
, {99121664, 83023686}
, {8603648, 63167672}
, {18085632, 43311657}
, {27567616, 23455642}
,
{37049600, 3599627}
, {46531584, 83743612}
, {56013568, 63887597}
, {65495552, 44031582}
, {74977536, 24175567}
,
{84459520, 4319552}
, {93941504, 84463537}
, {3423488, 64607523}
, {12905472, 44751508}
, {22387456, 24895493}
,
{31869440, 5039478}
, {41351424, 85183463}
, {50833408, 65327448}
, {60315392, 45471433}
, {69797376, 25615418}
,
{79279360, 5759403}
, {88761344, 85903388}
, {98243328, 66047373}
, {7725312, 46191359}
, {17207296, 26335344}
,
{26689280, 6479329}
, {36171264, 86623314}
, {45653248, 66767299}
, {55135232, 46911284}
, {64617216, 27055269}
,
{74099200, 7199254}
, {83581184, 87343239}
, {93063168, 67487224}
, {2545152, 47631210}
, {12027136, 27775195}
,
{21509120, 7919180}
, {30991104, 88063165}
, {40473088, 68207150}
, {49955072, 48351135}
, {59437056, 28495120}
,
{68919040, 8639105}
, {78401024, 88783090}
, {87883008, 68927075}
, {97364992, 49071060}
, {6846976, 29215046}
,
{16328960, 9359031}
, {25810944, 89503016}
, {35292928, 69647001}
, {44774912, 49790986}
, {54256896, 29934971}
,
{63738880, 10078956}
, {73220864, 90222941}
, {82702848, 70366926}
, {92184832, 50510911}
, {1666816, 30654897}
,
{11148800, 10798882}
, {20630784, 90942867}
, {30112768, 71086852}
, {39594752, 51230837}
, {49076736, 31374822}
,
{58558720, 11518807}
, {68040704, 91662792}
, {77522688, 71806777}
, {87004672, 51950762}
, {96486656, 32094747}
,
{5968640, 12238733}
, {15450624, 92382718}
, {24932608, 72526703}
, {34414592, 52670688}
, {43896576, 32814673}
,
{53378560, 12958658}
, {62860544, 93102643}
, {72342528, 73246628}
, {81824512, 53390613}
, {91306496, 33534598}
,
{788480, 13678584}
, {10270464, 93822569}
, {19752448, 73966554}
, {29234432, 54110539}
, {38716416, 34254524}
,
{48198400, 14398509}
, {57680384, 94542494}
, {67162368, 74686479}
, {76644352, 54830464}
, {86126336, 34974449}
,
{95608320, 15118434}
, {5090304, 95262420}
, {14572288, 75406405}
, {24054272, 55550390}
, {33536256, 35694375}
,
{43018240, 15838360}
, {52500224, 95982345}
, {61982208, 76126330}
, {71464192, 56270315}
, {80946176, 36414300}
,
{90428160, 16558285}
, {99910144, 96702270}
, {9392128, 76846256}
, {18874112, 56990241}
, {28356096, 37134226}
,
{37838080, 17278211}
, {47320064, 97422196}
, {56802048, 77566181}
, {66284032, 57710166}
, {75766016, 37854151}
,
{85248000, 17998136}
, {94729984, 98142121}
, {4211968, 78286107}
,
}
,
};
// for j>=min_j[i+1], there is k s.t. convert_table[i][j][k]>0
// int min_j[] = { 0, 0, 0, 3 };
// for even k, ((packed_10000_zeros[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k
const UINT8 packed_10000_zeros[] = {
0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x20, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x3, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x2,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x20, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x20,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x2, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x20, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x2, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x2,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x20, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x20,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x3, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x20, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x2, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x2,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x20, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x20,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10,
0x40, 0x0, 0x1,
0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40,
0x0, 0x2, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1,
0x4, 0x10, 0x40,
0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4,
0x10, 0x40, 0x0,
0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20,
0x40, 0x0, 0x1,
0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40,
0x0, 0x1, 0x4,
0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0,
0x1, 0x4, 0x10,
0x40, 0x0,
};
const SINT8 factors[1024][2] = {
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {6, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {4, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 3}
, {1, 0}
, {0, 0}
, {7, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {5, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {6, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {5, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {4, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 3}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {8, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {5, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {6, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 3}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {7, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {4, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {6, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {5, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 3}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {9, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {5, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {4, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {6, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {5, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 4}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {7, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {6, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {4, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 3}
,
{0, 0}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {8, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {5, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {6, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {5, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 3}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {4, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {7, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 2}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 2}
, {1, 0}
, {0, 0}
, {5, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 2}
,
{0, 0}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {6, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 2}
, {4, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {3, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {5, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {3, 3}
,
{0, 0}
, {1, 0}
, {0, 0}
, {2, 0}
, {0, 1}
, {1, 0}
, {0, 0}
, {4, 0}
, {0, 0}
, {1, 1}
,
{0, 0}
, {2, 0}
, {0, 0}
, {1, 0}
, {0, 1}
, {3, 0}
, {0, 0}
, {1, 0}
, {0, 0}
, {2, 1}
,
{0, 0}
, {1, 0}
, {0, 0}
, {10, 0}
,
};