1pub(crate) const TABLE_SIZE: usize = 3;
2
3pub(crate) const POW10_OFFSET: [u8; TABLE_SIZE] = [0, 2, 5];
4
5#[rustfmt::skip]
6pub(crate) const POW10_SPLIT: [[u64; 3]; 8] = [
7 [ 1, 72057594037927936, 0], [ 699646928636035157, 72057594, 0], [ 1, 0, 256], [11902091922964236229, 4722366482869, 0], [ 6760415703743915872, 4722, 0], [ 1, 0, 16777216], [13369850649504950658, 309485009821345068, 0], [15151142278969419334, 309485009, 0], ];
17
18pub(crate) const TABLE_SIZE_2: usize = 27;
19pub(crate) const ADDITIONAL_BITS_2: usize = 120;
20
21#[rustfmt::skip]
22pub(crate) const POW10_OFFSET_2: [u16; TABLE_SIZE_2] = [
23 0,
24 2,
25 6,
26 12,
27 20,
28 29,
29 40,
30 52,
31 66,
32 80,
33 95,
34 112,
35 130,
36 150,
37 170,
38 192,
39 215,
40 240,
41 265,
42 292,
43 320,
44 350,
45 381,
46 413,
47 446,
48 480,
49 516,
50];
51
52#[rustfmt::skip]
53pub(crate) const MIN_BLOCK_2: [u8; TABLE_SIZE_2] = [
54 0,
55 0,
56 0,
57 0,
58 0,
59 0,
60 1,
61 1,
62 2,
63 3,
64 3,
65 4,
66 4,
67 5,
68 5,
69 6,
70 6,
71 7,
72 7,
73 8,
74 8,
75 9,
76 9,
77 10,
78 11,
79 11,
80 12,
81];
82
83#[rustfmt::skip]
84pub(crate) const POW10_SPLIT_2: [[u64; 3]; 480 + 1] = [
85 [0, 0, 3906250],
86 [0, 0, 202000000000],
87 [0, 11153727427136454656, 59],
88 [0, 7205759403792793600, 59604644775],
89 [0, 0, 167390625000],
90 [0, 0, 232000000000],
91 [0, 16777216000000000, 0],
92 [0, 12945425605062557696, 909494],
93 [0, 4388757836872548352, 182701772928],
94 [0, 1152921504606846976, 128237915039],
95 [0, 0, 159062500000],
96 [0, 0, 160000000000],
97 [0, 256000000000, 0],
98 [0, 16192327041775828992, 13],
99 [0, 15024075324038053888, 13877787807],
100 [0, 5449091666327633920, 159814456755],
101 [0, 2494994193563254784, 179295395851],
102 [0, 4611686018427387904, 11135253906],
103 [0, 0, 146250000000],
104 [0, 0, 128000000000],
105 [0, 3906250, 0],
106 [0, 3906250000000000, 0],
107 [0, 4368439412768899072, 211758],
108 [0, 1563676642168012800, 46236813575],
109 [0, 11532349341402398720, 7084767080],
110 [0, 9048364970084925440, 104625169910],
111 [0, 16609275425742389248, 246490512847],
112 [0, 0, 207900390625],
113 [0, 0, 225000000000],
114 [11153727427136454656, 59, 0],
115 [7205759403792793600, 59604644775, 0],
116 [0, 4264412554261970152, 3],
117 [0, 14485570586272534528, 3231174267],
118 [0, 17827675094632103936, 123785264354],
119 [0, 7347197909193981952, 226966440203],
120 [0, 13677404030777688064, 11398292396],
121 [0, 3810326759732150272, 172741453558],
122 [0, 9943947977234055168, 246206558227],
123 [0, 0, 19539062500],
124 [0, 0, 228000000000],
125 [12945425605062557696, 909494, 0],
126 [4388757836872548352, 909494701772928, 0],
127 [1152921504606846976, 14878706826214591391, 49303],
128 [0, 4387341015746028192, 151806576313],
129 [0, 651726680428265472, 185237838233],
130 [0, 2570638187944738816, 153035330174],
131 [0, 7419175577111756800, 126139354575],
132 [0, 17299322326264840192, 207402194313],
133 [0, 7990511638862102528, 137937798142],
134 [0, 16717361816799281152, 254433166503],
135 [0, 0, 167906250000],
136 [0, 0, 16000000000],
137 [16192327041775828992, 13, 0],
138 [15024075324038053888, 13877787807, 0],
139 [5449091666327633920, 13877787807814456755, 0],
140 [2494994193563254784, 9707857417284919307, 752316384],
141 [4611686018427387904, 1844515466944871826, 224526264005],
142 [0, 15167599819856275072, 197099991383],
143 [0, 14830185305589481472, 87822237233],
144 [0, 6163721531743535104, 49803945956],
145 [0, 14122847407012052992, 228334136013],
146 [0, 335491783960035328, 205765601092],
147 [0, 941252322120433664, 68018187046],
148 [0, 11529215046068469760, 38051025390],
149 [0, 0, 238625000000],
150 [0, 0, 64000000000],
151 [4368439412768899072, 211758, 0],
152 [1563676642168012800, 211758236813575, 0],
153 [11532349341402398720, 8061591463141767016, 11479],
154 [9048364970084925440, 16628725344207857142, 215437019748],
155 [16609275425742389248, 3555541870038531535, 100901445007],
156 [0, 18316647450161853665, 143192746310],
157 [0, 16709574568378075648, 70992947447],
158 [0, 7696022835795591168, 247905827852],
159 [0, 16664449640376041472, 12417202233],
160 [0, 3109186955116544000, 57903381625],
161 [0, 10515518101817131008, 121168549362],
162 [0, 9961962375743537152, 242570047378],
163 [0, 9223372036854775808, 146540039062],
164 [0, 0, 150500000000],
165 [14485570586272534528, 3231174267, 0],
166 [17827675094632103936, 3231174267785264354, 0],
167 [7347197909193981952, 748977172262750475, 175162308],
168 [13677404030777688064, 15965033457315095468, 196040602133],
169 [3810326759732150272, 16809402149066729206, 21865466197],
170 [9943947977234055168, 7563769067065700371, 85911239516],
171 [0, 13550322810840051428, 92410032742],
172 [0, 8663209637545764864, 102734564471],
173 [0, 8969247575312957440, 119469633535],
174 [0, 6193172891660451840, 255486223885],
175 [0, 3427954273864908800, 13335732575],
176 [0, 10058367555266936832, 95185829773],
177 [0, 13907115649320091648, 141545265197],
178 [0, 0, 45753906250],
179 [0, 0, 74000000000],
180 [14878706826214591391, 49303, 0],
181 [4387341015746028192, 49303806576313, 0],
182 [651726680428265472, 14106411361315920281, 2672],
183 [2570638187944738816, 3609034283485221502, 112764710092],
184 [7419175577111756800, 9896072247338192335, 204195646140],
185 [17299322326264840192, 8889095178479228297, 188536467151],
186 [7990511638862102528, 3631796911038383102, 207481878815],
187 [16717361816799281152, 898318840772166823, 31196880105],
188 [0, 17293677953982795024, 233048697961],
189 [0, 7353628266884669440, 105937492160],
190 [0, 2404693032470315008, 192398640987],
191 [0, 9191155893041889280, 91130358670],
192 [0, 6353946855033798656, 142498253559],
193 [0, 3767824038248841216, 247344448149],
194 [0, 7205759403792793600, 149204254150],
195 [0, 0, 198390625000],
196 [0, 0, 232000000000],
197 [9707857417284919307, 752316384, 0],
198 [1844515466944871826, 752316384526264005, 0],
199 [15167599819856275072, 17063068157692817751, 40783152],
200 [14830185305589481472, 5385330256507239985, 48924990778],
201 [6163721531743535104, 3373050282752075748, 58291939338],
202 [14122847407012052992, 4116064001262906061, 10182853422],
203 [335491783960035328, 11306582046748043076, 46223132276],
204 [941252322120433664, 17035410946089626406, 116612931040],
205 [11529215046068469760, 15618595715183448558, 224923491477],
206 [0, 5141740092277295680, 149846685770],
207 [0, 16973644291514990592, 74278734288],
208 [0, 14625255268443750400, 208920143100],
209 [0, 14021170507320131584, 252792836676],
210 [0, 4451355232865091584, 68760089176],
211 [0, 12891553933348044800, 88241308450],
212 [0, 1152921504606846976, 34698852539],
213 [0, 0, 187062500000],
214 [0, 0, 160000000000],
215 [8061591463141767016, 11479, 0],
216 [16628725344207857142, 11479437019748, 0],
217 [3555541870038531535, 5562205901560339855, 622],
218 [18316647450161853665, 2106077949367544134, 110301527786],
219 [16709574568378075648, 7496855998374373623, 234114170714],
220 [7696022835795591168, 229183437194837004, 90406405378],
221 [16664449640376041472, 465169186276472889, 2012424059],
222 [3109186955116544000, 2152980561625316473, 123025216872],
223 [10515518101817131008, 2059790725449340402, 104116713310],
224 [9961962375743537152, 17891190926410198930, 94111661478],
225 [9223372036854775808, 9930696175609809814, 166969883403],
226 [0, 7276914261609005312, 11538344118],
227 [0, 10539762974036983808, 182394482312],
228 [0, 12851089458992250880, 136571361695],
229 [0, 9449311677678878720, 159696658955],
230 [0, 8699564697382289408, 11512248212],
231 [0, 4224376450473525248, 148471604347],
232 [0, 4611686018427387904, 123229003906],
233 [0, 0, 130250000000],
234 [0, 0, 128000000000],
235 [748977172262750475, 175162308, 0],
236 [15965033457315095468, 175162308040602133, 0],
237 [16809402149066729206, 13756840147955779925, 9495567],
238 [7563769067065700371, 13788447602092505948, 15745759798],
239 [13550322810840051428, 4972540435632173670, 54747473242],
240 [8663209637545764864, 2844874687533091959, 90269561957],
241 [8969247575312957440, 15377573779532804095, 101154220965],
242 [6193172891660451840, 17824715805091194381, 165833619944],
243 [3427954273864908800, 18277569135638159711, 232966279779],
244 [10058367555266936832, 4254645803379752845, 99990829008],
245 [13907115649320091648, 2933643244178200621, 208230644811],
246 [0, 17188148801879487562, 75159033118],
247 [0, 11069762501163246592, 30931771413],
248 [0, 11676570643941818368, 21600093027],
249 [0, 17840016768744030208, 99632988162],
250 [0, 16463817321652158464, 2967109246],
251 [0, 6954191143357644800, 126892505325],
252 [0, 5080060379673919488, 237376987457],
253 [0, 0, 65275390625],
254 [0, 0, 161000000000],
255 [14106411361315920281, 2672, 0],
256 [3609034283485221502, 2672764710092, 0],
257 [9896072247338192335, 16433563478020213436, 144],
258 [8889095178479228297, 4194750497955655375, 144890865261],
259 [3631796911038383102, 2691539602252904735, 109227397880],
260 [898318840772166823, 3775467271962795241, 248145908654],
261 [17293677953982795024, 16980212613224918121, 174204668490],
262 [7353628266884669440, 4172857038337333440, 74920499170],
263 [2404693032470315008, 5936867627376461659, 226226211033],
264 [9191155893041889280, 17856837443266866062, 217321838238],
265 [6353946855033798656, 8956297047799810807, 158968021097],
266 [3767824038248841216, 15356974049716912789, 105485521835],
267 [7205759403792793600, 6923608913322982854, 171832503231],
268 [0, 4855902993563955944, 191375329591],
269 [0, 13835893222288330752, 55263239028],
270 [0, 9114973913760137216, 116750045274],
271 [0, 17937099003422310400, 90494123725],
272 [0, 7007960010734960640, 205972372085],
273 [0, 7683422439270776832, 117379902273],
274 [0, 720575940379279360, 65416519165],
275 [0, 0, 253039062500],
276 [0, 0, 228000000000],
277 [17063068157692817751, 40783152, 0],
278 [5385330256507239985, 40783152924990778, 0],
279 [3373050282752075748, 2768933352715741194, 2210859],
280 [4116064001262906061, 15201941611824153390, 43150104177],
281 [11306582046748043076, 1418128541727000180, 113824098906],
282 [17035410946089626406, 5353350204565757408, 90076876902],
283 [15618595715183448558, 1721001680354286741, 102290205696],
284 [5141740092277295680, 637631411660453962, 93295688],
285 [16973644291514990592, 1630012588870568400, 72034566068],
286 [14625255268443750400, 9253063571656828156, 180088363159],
287 [14021170507320131584, 6029146854993203780, 151501609581],
288 [4451355232865091584, 16987401965352759896, 109326840705],
289 [12891553933348044800, 14499131620542087970, 129920888905],
290 [1152921504606846976, 1978417255298660539, 73785999500],
291 [0, 5790079354402454176, 140107250214],
292 [0, 13748918935842078720, 38313880830],
293 [0, 18047438014740692992, 254745330388],
294 [0, 3116889656839372800, 212978353575],
295 [0, 15995952446606147584, 167168966926],
296 [0, 12530140063251562496, 14867142319],
297 [0, 16717361816799281152, 175679260253],
298 [0, 0, 93906250000],
299 [0, 0, 16000000000],
300 [5562205901560339855, 622, 0],
301 [2106077949367544134, 622301527786, 0],
302 [7496855998374373623, 13558973353698967386, 33],
303 [229183437194837004, 6228991722850501890, 33735033418],
304 [465169186276472889, 16886831391703377787, 74337674317],
305 [2152980561625316473, 1181713637872883048, 77915436964],
306 [2059790725449340402, 12393932434925221726, 164064060824],
307 [17891190926410198930, 10684799845419711910, 152671876423],
308 [9930696175609809814, 4590318792215640843, 71579224160],
309 [7276914261609005312, 6383712187366189238, 96248841680],
310 [10539762974036983808, 1904270214927675016, 208346061731],
311 [12851089458992250880, 3711506775113308575, 163103230695],
312 [9449311677678878720, 8091219444738793995, 231201201185],
313 [8699564697382289408, 39436684991068052, 33438625885],
314 [4224376450473525248, 18025182908196512891, 93002137866],
315 [4611686018427387904, 7853924592034603138, 10977147123],
316 [0, 4815749283615688320, 243425762105],
317 [0, 14242399906544287744, 57261062291],
318 [0, 76242322576113664, 147772082046],
319 [0, 10858088421377703936, 126004133104],
320 [0, 14293835879041466368, 240588618152],
321 [0, 12182236992037191680, 168774870395],
322 [0, 11529215046068469760, 123660400390],
323 [0, 0, 6625000000],
324 [0, 0, 64000000000],
325 [13756840147955779925, 9495567, 0],
326 [13788447602092505948, 9495567745759798, 0],
327 [4972540435632173670, 14000097438505379162, 514755],
328 [2844874687533091959, 16451062686452429925, 195758946802],
329 [15377573779532804095, 4009347599785716645, 242891813895],
330 [17824715805091194381, 16544162347546196456, 7217347168],
331 [18277569135638159711, 17674258299745817187, 96896860837],
332 [4254645803379752845, 5215238411201214416, 165958123462],
333 [2933643244178200621, 14253990228345322571, 198282718640],
334 [17188148801879487562, 11214836553940194590, 176772710358],
335 [11069762501163246592, 14620711348380590101, 214607957507],
336 [11676570643941818368, 6638710787931587427, 3792590350],
337 [17840016768744030208, 17320000343692853250, 14359885232],
338 [16463817321652158464, 75147386268843646, 176938919100],
339 [6954191143357644800, 17938801582125480173, 188004073747],
340 [5080060379673919488, 6573358613626446145, 19972464382],
341 [0, 8688505427903736481, 254356342484],
342 [0, 539870168696556032, 212471004823],
343 [0, 9002861336394465280, 151029266420],
344 [0, 17989846818158018560, 244488046090],
345 [0, 2700938287723315200, 10975231550],
346 [0, 17800090499088908288, 62146418157],
347 [0, 8809040871136690176, 237964944839],
348 [0, 9223372036854775808, 199477539062],
349 [0, 0, 246500000000],
350 [16433563478020213436, 144, 0],
351 [4194750497955655375, 144890865261, 0],
352 [2691539602252904735, 15763656745260536568, 7],
353 [3775467271962795241, 8787336846248645550, 7854549544],
354 [16980212613224918121, 17584084447880694346, 40476362484],
355 [4172857038337333440, 18041672551129683938, 244953235127],
356 [5936867627376461659, 14025886302294509785, 183978041028],
357 [17856837443266866062, 18430498103283160734, 196760344819],
358 [8956297047799810807, 3292348826238025833, 243999119304],
359 [15356974049716912789, 9211721212658275243, 200178478587],
360 [6923608913322982854, 10233245872666307519, 251499368407],
361 [4855902993563955944, 6200995035623311671, 215554745370],
362 [13835893222288330752, 8480542380570450804, 26336156614],
363 [9114973913760137216, 11870363864499900506, 198459731123],
364 [17937099003422310400, 9301051379839581901, 179643493714],
365 [7007960010734960640, 11456694803569638005, 82504211005],
366 [7683422439270776832, 14327208890643983169, 61621068669],
367 [720575940379279360, 4510081789599866365, 125776679550],
368 [0, 13255356976020303332, 126244492023],
369 [0, 9658806854127314944, 247718574341],
370 [0, 13708435528809971712, 5523604968],
371 [0, 1580190652103131136, 232743135779],
372 [0, 16557336970347413504, 35085662306],
373 [0, 12751520132434493440, 98897575035],
374 [0, 9295429630892703744, 123691261291],
375 [0, 0, 107503906250],
376 [0, 0, 202000000000],
377 [2768933352715741194, 2210859, 0],
378 [15201941611824153390, 2210859150104177, 0],
379 [1418128541727000180, 16872870088062921306, 119850],
380 [5353350204565757408, 5112979788807802982, 42914680120],
381 [1721001680354286741, 13742728082020150272, 56277175189],
382 [637631411660453962, 2217110934613627976, 149744994782],
383 [1630012588870568400, 11021433940188610484, 222120189824],
384 [9253063571656828156, 1713669895470733463, 128597473131],
385 [6029146854993203780, 3313382510572018285, 107092898231],
386 [16987401965352759896, 14976595232784069505, 183179618825],
387 [14499131620542087970, 7213172372862496841, 9811882854],
388 [1978417255298660539, 15836474542502248588, 102391026857],
389 [5790079354402454176, 3221099285878340134, 169858497005],
390 [13748918935842078720, 3265814602578095358, 237174616142],
391 [18047438014740692992, 6502528252282225364, 78177040164],
392 [3116889656839372800, 16392476834556790183, 36352502762],
393 [15995952446606147584, 15167629413417091342, 234888637949],
394 [12530140063251562496, 1366763272626280111, 253822238838],
395 [16717361816799281152, 8720523635169216093, 118074092385],
396 [0, 9649171375767398672, 97472740533],
397 [0, 7647980704001073152, 181523082628],
398 [0, 13286434495608651776, 132414597864],
399 [0, 4358271637167013888, 232720259057],
400 [0, 15954987941890097152, 241236262378],
401 [0, 7911135695429697536, 234864921629],
402 [0, 7205759403792793600, 29428863525],
403 [0, 0, 37390625000],
404 [0, 0, 232000000000],
405 [13558973353698967386, 33, 0],
406 [6228991722850501890, 33735033418, 0],
407 [16886831391703377787, 15288289344628122701, 1],
408 [1181713637872883048, 952589339068938148, 1828779826],
409 [12393932434925221726, 10058155040190817688, 50051639971],
410 [10684799845419711910, 5322725640026584391, 163545253677],
411 [4590318792215640843, 2269982385930389600, 45288545535],
412 [6383712187366189238, 13216683679976310224, 255123055991],
413 [1904270214927675016, 17417440642083494819, 119716477857],
414 [3711506775113308575, 3029180749090900711, 161944201349],
415 [8091219444738793995, 8315443826261908513, 133164212217],
416 [39436684991068052, 1488962797247197277, 249450781113],
417 [18025182908196512891, 18009099634999034122, 185080716834],
418 [7853924592034603138, 8092455412807497971, 34976275247],
419 [4815749283615688320, 17808458047236758329, 47438692886],
420 [14242399906544287744, 3164591817527425171, 22965398445],
421 [76242322576113664, 3314036340472350590, 173171552866],
422 [10858088421377703936, 33234902404332784, 98179654270],
423 [14293835879041466368, 12349284717857274280, 126001801667],
424 [12182236992037191680, 18209607903013119355, 195669456065],
425 [11529215046068469760, 7891549145984268038, 193987144822],
426 [0, 7703609897518594624, 118427801736],
427 [0, 6336912652634587136, 136417613529],
428 [0, 4461621834659397632, 217343524723],
429 [0, 5484660635557953536, 115241865004],
430 [0, 15142619273265938432, 44297324048],
431 [0, 12170977992968765440, 16820883035],
432 [0, 1152921504606846976, 91659790039],
433 [0, 0, 215062500000],
434 [0, 0, 160000000000],
435 [14000097438505379162, 514755, 0],
436 [16451062686452429925, 514755758946802, 0],
437 [4009347599785716645, 17812314011563521031, 27904],
438 [16544162347546196456, 7684138864490314336, 965607477],
439 [17674258299745817187, 9740522787420029605, 53416558002],
440 [5215238411201214416, 6701109407732989894, 178528034798],
441 [14253990228345322571, 16534886227502443952, 238363267868],
442 [11214836553940194590, 8908667306968317910, 28896357978],
443 [14620711348380590101, 7531472173477105155, 90482939822],
444 [6638710787931587427, 11527371604834801166, 174408281924],
445 [17320000343692853250, 15688593496691078576, 68624900066],
446 [75147386268843646, 11394944804253312188, 226850480357],
447 [17938801582125480173, 11182279880854372627, 229617721195],
448 [6573358613626446145, 150579373068361470, 107606192607],
449 [8688505427903736481, 3147220002440857300, 223008162924],
450 [539870168696556032, 3630514817795505815, 108170611138],
451 [9002861336394465280, 11708796588334233588, 194196810602],
452 [17989846818158018560, 16844495466426369546, 106634735134],
453 [2700938287723315200, 17636655472325475902, 30913141928],
454 [17800090499088908288, 17038926655686645229, 168956085008],
455 [8809040871136690176, 15602838456783529415, 16923682064],
456 [9223372036854775808, 10869815869248876790, 16845831567],
457 [0, 18407124180939800832, 143589253898],
458 [0, 5705018517251293184, 10997852201],
459 [0, 9660452258743058432, 41309269673],
460 [0, 5646292272224927744, 169523694166],
461 [0, 7410409304047484928, 86306086117],
462 [0, 5953758707383795712, 229401719093],
463 [0, 4611686018427387904, 53322753906],
464 [0, 0, 114250000000],
465 [0, 0, 128000000000],
466 [15763656745260536568, 7, 0],
467 [8787336846248645550, 7854549544, 0],
468 [17584084447880694346, 7854549544476362484, 0],
469 [18041672551129683938, 15035424419724983, 425795984],
470 [14025886302294509785, 18280822466032836292, 144000815071],
471 [18430498103283160734, 11524250747302615283, 223991005371],
472 [3292348826238025833, 15212285943691810760, 187624730884],
473 [9211721212658275243, 7951804027551297019, 4824659673],
474 [10233245872666307519, 1706416229965221847, 217431068160],
475 [6200995035623311671, 3406023111930700826, 92505009],
476 [8480542380570450804, 16132696204133391302, 177184640882],
477 [11870363864499900506, 11593846688794356915, 114874555213],
478 [9301051379839581901, 6875759884161133906, 77628503688],
479 [11456694803569638005, 3593593325323835965, 136372735690],
480 [14327208890643983169, 9542049733257388925, 202194809084],
481 [4510081789599866365, 9926551925937787518, 252517275552],
482 [13255356976020303332, 3128491553219547895, 160538119458],
483 [9658806854127314944, 17158408656931354885, 34169595866],
484 [13708435528809971712, 2065169543154992616, 218930159197],
485 [1580190652103131136, 4832622393556232739, 93111953065],
486 [16557336970347413504, 16505930714733656162, 169261976984],
487 [12751520132434493440, 18270988073492888699, 152894788296],
488 [9295429630892703744, 2525111411519708523, 200990472248],
489 [0, 16728989342518570442, 56136886563],
490 [0, 7974052022039438336, 35906880329],
491 [0, 5356554962386550784, 73432274226],
492 [0, 6693869495028547584, 50290379426],
493 [0, 8157517147199766528, 162362875392],
494 [0, 12065776720423157760, 442219890],
495 [0, 11997589407315001344, 114654087066],
496 [0, 0, 154650390625],
497 [0, 0, 97000000000],
498 [16872870088062921306, 119850, 0],
499 [5112979788807802982, 119850914680120, 0],
500 [13742728082020150272, 2418433229320326037, 6497],
501 [2217110934613627976, 1143911773589293534, 97131103528],
502 [11021433940188610484, 9276183703610924928, 40062011581],
503 [1713669895470733463, 3532180128827684715, 189502862926],
504 [3313382510572018285, 8563997501322031543, 78191479868],
505 [14976595232784069505, 14843890409658460681, 60464255234],
506 [7213172372862496841, 9489417861634552678, 2804688911],
507 [15836474542502248588, 1113198223322322089, 15514422373],
508 [3221099285878340134, 11190777557146597869, 101060346596],
509 [3265814602578095358, 17764553645932638286, 228606653266],
510 [6502528252282225364, 14900777150991234852, 82963018382],
511 [16392476834556790183, 17364899863357893610, 142807772747],
512 [15167629413417091342, 15537570181590167037, 75941353107],
513 [1366763272626280111, 5558052627121307766, 147842293367],
514 [8720523635169216093, 12095241565795232609, 119301302636],
515 [9649171375767398672, 2187936505958366389, 108655684359],
516 [7647980704001073152, 12009203621325860228, 7118608275],
517 [13286434495608651776, 14814842834750302952, 147651020232],
518 [4358271637167013888, 5965296499605198833, 200803114239],
519 [15954987941890097152, 4051026394962148842, 255323379371],
520 [7911135695429697536, 16799526299141688349, 171219606580],
521 [7205759403792793600, 9460214166646215205, 52910704145],
522 [0, 10750736995029068008, 17512839237],
523 [0, 5377963045376430080, 69582798620],
524 [0, 15996910350253424640, 28291539960],
525 [0, 13651157529655246848, 248867194247],
526 [0, 9771305410219737088, 135740030732],
527 [0, 12709439623416250368, 12529703527],
528 [0, 9943947977234055168, 103688980102],
529 [0, 0, 134539062500],
530 [0, 0, 228000000000],
531 [952589339068938148, 1828779826, 0],
532 [10058155040190817688, 1828779826051639971, 0],
533 [5322725640026584391, 371564423966525229, 99138353],
534 [2269982385930389600, 14464859121514339583, 49020142547],
535 [13216683679976310224, 3913119023023056247, 211784141584],
536 [17417440642083494819, 5493396321716566945, 16212130607],
537 [3029180749090900711, 5837454566818211973, 47297797611],
538 [8315443826261908513, 2886670683193253881, 235316449046],
539 [1488962797247197277, 5504823105587173817, 22156486731],
540 [18009099634999034122, 9431834277334851106, 75298417058],
541 [8092455412807497971, 12921661346456247087, 162511300760],
542 [17808458047236758329, 3643076516404724246, 152700484665],
543 [3164591817527425171, 12559396953196866477, 57197491573],
544 [3314036340472350590, 1626880974916825698, 117680846273],
545 [33234902404332784, 6806994170946429566, 193088193394],
546 [12349284717857274280, 7596631230206896579, 114369007893],
547 [18209607903013119355, 3100480253729502401, 21411814204],
548 [7891549145984268038, 6310570748781063286, 60168077371],
549 [7703609897518594624, 14251867077375744136, 59342096725],
550 [6336912652634587136, 6701165793751570137, 85772595262],
551 [4461621834659397632, 10856833140463959923, 62363270925],
552 [5484660635557953536, 15867563727561248556, 13588550103],
553 [15142619273265938432, 5048961008671491600, 215860182353],
554 [12170977992968765440, 13278183119599849051, 81273704724],
555 [1152921504606846976, 4547591784941053655, 20719811749],
556 [0, 11815437715887182496, 165246525444],
557 [0, 398495392178782208, 4640516162],
558 [0, 9154841240825495552, 66021602478],
559 [0, 1902683298245640192, 174496284938],
560 [0, 5081900962138816512, 10103144668],
561 [0, 3234710432358858752, 220275490403],
562 [0, 16717361816799281152, 99175354003],
563 [0, 0, 147906250000],
564 [0, 0, 16000000000],
565 [17812314011563521031, 27904, 0],
566];