pub const INTERMEDIATE_SZ_32: usize = 9; pub const BINARY_SZ_32: usize = 8; pub const RAW58_SZ_32: usize = 45;
pub const BYTE_COUNT_32: usize = 32;
pub const BASE58_ENCODED_32_LEN: u64 = 44;
pub const INTERMEDIATE_SZ_64: usize = 18; pub const BINARY_SZ_64: usize = 16; pub const RAW58_SZ_64: usize = 90;
pub const BYTE_COUNT_64: usize = 64;
pub const BASE58_ENCODED_64_LEN: u64 = 88;
pub const R1_DIV: u64 = 656_356_768;
pub const BASE58_INVALID_CHAR: u8 = 255;
pub const BASE58_INVERSE_TABLE_OFFSET: u8 = b'1';
pub const BASE58_INVERSE_TABLE_SENTINEL: u8 = 1 + b'z' - BASE58_INVERSE_TABLE_OFFSET;
pub const BASE58_CHARS: &[char] = &[
'1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K',
'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e',
'f', 'g', 'h', 'i', 'j', 'k', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
'z',
];
pub const BASE58_INVERSE: [u8; 75] = [
0, 1, 2, 3, 4, 5, 6, 7, 8, 255, 255, 255, 255, 255, 255, 255, 9, 10, 11, 12, 13, 14, 15, 16,
255, 17, 18, 19, 20, 21, 255, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 255, 255, 255, 255,
255, 255, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 255, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 255,
];
pub const ENC_TABLE_32: [[u64; INTERMEDIATE_SZ_32 - 1]; BINARY_SZ_32] = [
[
513_735,
77_223_048,
437_087_610,
300_156_666,
605_448_490,
214_625_350,
141_436_834,
379_377_856,
],
[
0,
78_508,
646_269_101,
118_408_823,
91_512_303,
209_184_527,
413_102_373,
153_715_680,
],
[
0,
0,
11_997,
486_083_817,
3_737_691,
294_005_210,
247_894_721,
289_024_608,
],
[
0,
0,
0,
1_833,
324_463_681,
385_795_061,
551_597_588,
21_339_008,
],
[0, 0, 0, 0, 280, 127_692_781, 389_432_875, 357_132_832],
[0, 0, 0, 0, 0, 42, 537_767_569, 410_450_016],
[0, 0, 0, 0, 0, 0, 6, 356_826_688],
[0, 0, 0, 0, 0, 0, 0, 1],
];
pub const DEC_TABLE_32: [[u64; BINARY_SZ_32]; INTERMEDIATE_SZ_32] = [
[
1_277,
2_650_397_687,
3_801_011_509,
2_074_386_530,
3_248_244_966,
687_255_411,
2_959_155_456,
0,
],
[
0,
8_360,
1_184_754_854,
3_047_609_191,
3_418_394_749,
132_556_120,
1_199_103_528,
0,
],
[
0,
0,
54_706,
2_996_985_344,
1_834_629_191,
3_964_963_911,
485_140_318,
1_073_741_824,
],
[
0,
0,
0,
357_981,
1_476_998_812,
3_337_178_590,
1_483_338_760,
4_194_304_000,
],
[
0,
0,
0,
0,
2_342_503,
3_052_466_824,
2_595_180_627,
17_825_792,
],
[0, 0, 0, 0, 0, 15_328_518, 1_933_902_296, 4_063_920_128],
[0, 0, 0, 0, 0, 0, 100_304_420, 3_355_157_504],
[0, 0, 0, 0, 0, 0, 0, 656_356_768],
[0, 0, 0, 0, 0, 0, 0, 1],
];
pub const ENC_TABLE_64: [[u32; INTERMEDIATE_SZ_64 - 1]; BINARY_SZ_64] = [
[
2_631,
149_457_141,
577_092_685,
632_289_089,
81_912_456,
221_591_423,
502_967_496,
403_284_731,
377_738_089,
492_128_779,
746_799,
366_351_977,
190_199_623,
38_066_284,
526_403_762,
650_603_058,
454_901_440,
],
[
0,
402,
68_350_375,
30_641_941,
266_024_478,
208_884_256,
571_208_415,
337_765_723,
215_140_626,
129_419_325,
480_359_048,
398_051_646,
635_841_659,
214_020_719,
136_986_618,
626_219_915,
49_699_360,
],
[
0,
0,
61,
295_059_608,
141_201_404,
517_024_870,
239_296_485,
527_697_587,
212_906_911,
453_637_228,
467_589_845,
144_614_682,
45_134_568,
184_514_320,
644_355_351,
104_784_612,
308_625_792,
],
[
0,
0,
0,
9,
256_449_755,
500_124_311,
479_690_581,
372_802_935,
413_254_725,
487_877_412,
520_263_169,
176_791_855,
78_190_744,
291_820_402,
74_998_585,
496_097_732,
59_100_544,
],
[
0,
0,
0,
0,
1,
285_573_662,
455_976_778,
379_818_553,
100_001_224,
448_949_512,
109_507_367,
117_185_012,
347_328_982,
522_665_809,
36_908_802,
577_276_849,
64_504_928,
],
[
0,
0,
0,
0,
0,
0,
143_945_778,
651_677_945,
281_429_047,
535_878_743,
264_290_972,
526_964_023,
199_595_821,
597_442_702,
499_113_091,
424_550_935,
458_949_280,
],
[
0,
0,
0,
0,
0,
0,
0,
21_997_789,
294_590_275,
148_640_294,
595_017_589,
210_481_832,
404_203_788,
574_729_546,
160_126_051,
430_102_516,
44_963_712,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
3_361_701,
325_788_598,
30_977_630,
513_969_330,
194_569_730,
164_019_635,
136_596_846,
626_087_230,
503_769_920,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
513_735,
77_223_048,
437_087_610,
300_156_666,
605_448_490,
214_625_350,
141_436_834,
379_377_856,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
78_508,
646_269_101,
118_408_823,
91_512_303,
209_184_527,
413_102_373,
153_715_680,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
11_997,
486_083_817,
3_737_691,
294_005_210,
247_894_721,
289_024_608,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1_833,
324_463_681,
385_795_061,
551_597_588,
21_339_008,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
280,
127_692_781,
389_432_875,
357_132_832,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
42,
537_767_569,
410_450_016,
],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 356_826_688],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
];
pub const DEC_TABLE_64: [[u64; BINARY_SZ_64]; INTERMEDIATE_SZ_64] = [
[
249_448,
3_719_864_065,
173_911_550,
4_021_557_284,
3_115_810_883,
2_498_525_019,
1_035_889_824,
627_529_458,
3_840_888_383,
3_728_167_192,
2_901_437_456,
3_863_405_776,
1_540_739_182,
1_570_766_848,
0,
0,
],
[
0,
1_632_305,
1_882_780_341,
4_128_706_713,
1_023_671_068,
2_618_421_812,
2_005_415_586,
1_062_993_857,
3_577_221_846,
3_960_476_767,
1_695_615_427,
2_597_060_712,
669_472_826,
104_923_136,
0,
0,
],
[
0,
0,
10_681_231,
1_422_956_801,
2_406_345_166,
4_058_671_871,
2_143_913_881,
4_169_135_587,
2_414_104_418,
2_549_553_452,
997_594_232,
713_340_517,
2_290_070_198,
1_103_833_088,
0,
0,
],
[
0,
0,
0,
69_894_212,
1_038_812_943,
1_785_020_643,
1_285_619_000,
2_301_468_615,
3_492_037_905,
314_610_629,
2_761_740_102,
3_410_618_104,
1_699_516_363,
910_779_968,
0,
0,
],
[
0,
0,
0,
0,
457_363_084,
927_569_770,
3_976_106_370,
1_389_513_021,
2_107_865_525,
3_716_679_421,
1_828_091_393,
2_088_408_376,
439_156_799,
2_579_227_194,
0,
0,
],
[
0,
0,
0,
0,
0,
2_992_822_783,
383_623_235,
3_862_831_115,
112_778_334,
339_767_049,
1_447_250_220,
486_575_164,
3_495_303_162,
2_209_946_163,
268_435_456,
0,
],
[
0,
0,
0,
0,
0,
4,
2_404_108_010,
2_962_826_229,
3_998_086_794,
1_893_006_839,
2_266_258_239,
1_429_430_446,
307_953_032,
2_361_423_716,
176_160_768,
0,
],
[
0,
0,
0,
0,
0,
0,
29,
3_596_590_989,
3_044_036_677,
1_332_209_423,
1_014_420_882,
868_688_145,
4_264_082_837,
3_688_771_808,
2_485_387_264,
0,
],
[
0,
0,
0,
0,
0,
0,
0,
195,
1_054_003_707,
3_711_696_540,
582_574_436,
3_549_229_270,
1_088_536_814,
2_338_440_092,
1_468_637_184,
0,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
1_277,
2_650_397_687,
3_801_011_509,
2_074_386_530,
3_248_244_966,
687_255_411,
2_959_155_456,
0,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
8_360,
1_184_754_854,
3_047_609_191,
3_418_394_749,
132_556_120,
1_199_103_528,
0,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
54_706,
2_996_985_344,
1_834_629_191,
3_964_963_911,
485_140_318,
1_073_741_824,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
357_981,
1_476_998_812,
3_337_178_590,
1_483_338_760,
4_194_304_000,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2_342_503,
3_052_466_824,
2_595_180_627,
17_825_792,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
15_328_518,
1_933_902_296,
4_063_920_128,
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
100_304_420,
3_355_157_504,
],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 656_356_768],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
];