blob: 9b7e9f6d982d8eee75dc9e51aba6c3b077282459 [file] [log] [blame]
// See file LICENSE for more information.
library impl.digest.whirlpool;
import 'dart:typed_data';
import 'package:pointycastle/api.dart';
import 'package:pointycastle/src/impl/base_digest.dart';
import 'package:pointycastle/src/registry/registry.dart';
import 'package:pointycastle/src/ufixnum.dart';
/// Implementation of Whirlpool digest.
class WhirlpoolDigest extends BaseDigest implements Digest {
static final FactoryConfig factoryConfig =
StaticFactoryConfig(Digest, 'Whirlpool', () => WhirlpoolDigest());
static const _DIGEST_lENGTH_BYTES = 512 ~/ 8;
static const _BUFFER_SIZE = 64;
static const _ROUNDS = 10;
static final _r64Zero = Register64(0);
static final _zerosList = Uint8List(_BUFFER_SIZE);
final _buffer = Uint8List(_BUFFER_SIZE);
int _bufferPos = 0;
final _bitCount = Register64List(4);
final _hash = Register64List(8);
final _k = Register64List(8);
final _l = Register64List(8);
final _block = Register64List(8);
final _state = Register64List(8);
WhirlpoolDigest() {
reset();
}
@override
final algorithmName = 'Whirlpool';
@override
final digestSize = _DIGEST_lENGTH_BYTES;
@override
void reset() {
_bufferPos = 0;
_buffer.fillRange(0, _buffer.length, 0);
_bitCount.fillRange(0, _bitCount.length, 0);
_hash.fillRange(0, _hash.length, 0);
_k.fillRange(0, _k.length, 0);
_l.fillRange(0, _l.length, 0);
_block.fillRange(0, _block.length, 0);
_state.fillRange(0, _state.length, 0);
}
@override
void updateByte(int inp) {
_buffer[_bufferPos++] = inp;
if (_bufferPos == _buffer.length) {
_processFilledBuffer(_buffer, 0);
}
_increment();
}
@override
void update(Uint8List inp, int inpOff, int len) {
for (var i = 0; i < len; i++) {
_buffer[_bufferPos++] = inp[inpOff + i];
if (_bufferPos == _buffer.length) {
_processFilledBuffer(_buffer, 0);
}
}
_increment(len * 8);
}
@override
int doFinal(Uint8List out, int outOff) {
_finish();
for (var i = 0; i < 8; i++) {
_hash[i].pack(out, outOff + (i * 8), Endian.big);
}
reset();
return digestSize;
}
void _processFilledBuffer(Uint8List inp, int inpOff) {
for (var i = 0; i < _state.length; i++) {
_block[i].unpack(_buffer, i * 8, Endian.big);
}
_processBlock();
_bufferPos = 0;
_buffer.fillRange(0, _buffer.length, 0);
}
void _processBlock() {
// compute and apply K^0
for (var i = 0; i < 8; i++) {
_k[i].set(_hash[i]);
_state[i]
..set(_block[i])
..xor(_k[i]);
}
// iterate over the rounds
for (var round = 1; round <= _ROUNDS; round++) {
for (var i = 0; i < 8; i++) {
_l[i].set(0);
_l[i].xor(_c0[clip8(_k[(i - 0) & 7].hi32 >> 24)]);
_l[i].xor(_c1[clip8(_k[(i - 1) & 7].hi32 >> 16)]);
_l[i].xor(_c2[clip8(_k[(i - 2) & 7].hi32 >> 8)]);
_l[i].xor(_c3[clip8(_k[(i - 3) & 7].hi32)]);
_l[i].xor(_c4[clip8(_k[(i - 4) & 7].lo32 >> 24)]);
_l[i].xor(_c5[clip8(_k[(i - 5) & 7].lo32 >> 16)]);
_l[i].xor(_c6[clip8(_k[(i - 6) & 7].lo32 >> 8)]);
_l[i].xor(_c7[clip8(_k[(i - 7) & 7].lo32)]);
}
_k.setRange(0, _k.length, _l);
_k[0].xor(_rc[round]);
// apply the round transformation
for (var i = 0; i < 8; i++) {
_l[i].set(_k[i]);
_l[i].xor(_c0[clip8(_state[(i - 0) & 7].hi32 >> 24)]);
_l[i].xor(_c1[clip8(_state[(i - 1) & 7].hi32 >> 16)]);
_l[i].xor(_c2[clip8(_state[(i - 2) & 7].hi32 >> 8)]);
_l[i].xor(_c3[clip8(_state[(i - 3) & 7].hi32)]);
_l[i].xor(_c4[clip8(_state[(i - 4) & 7].lo32 >> 24)]);
_l[i].xor(_c5[clip8(_state[(i - 5) & 7].lo32 >> 16)]);
_l[i].xor(_c6[clip8(_state[(i - 6) & 7].lo32 >> 8)]);
_l[i].xor(_c7[clip8(_state[(i - 7) & 7].lo32)]);
}
// save the current state
_state.setRange(0, _state.length, _l);
}
// apply Miuaguchi-Preneel compression
final r = Register64();
for (var i = 0; i < 8; i++) {
_hash[i].xor(r
..set(_state[i])
..xor(_block[i]));
}
}
void _increment([int bits = 8]) {
assert(bits <= 0xFFFFFFFF);
var i = (_bitCount.length - 1);
_bitCount[i].sum(bits);
while (_bitCount[i] == _r64Zero) {
i--;
_bitCount[i].sum(1);
}
}
void _finish() {
/*
* this makes a copy of the current bit length. at the expense of an
* object creation of 32 bytes rather than providing a _stopCounting
* boolean which was the alternative I could think of.
*/
final bitLength = _copyBitLength();
// Add padding
_buffer[_bufferPos++] |= 0x80;
if (_bufferPos == _buffer.length) {
_processFilledBuffer(_buffer, 0);
}
if (_bufferPos > 32) {
final padCount = (_buffer.length - _bufferPos);
update(_zerosList, 0, padCount);
} else {
final padCount = (32 - _bufferPos);
update(_zerosList, 0, padCount);
}
// Add the length information to the final 32 bytes of the 64 byte block
_buffer.setRange(32, 32 + bitLength.length, bitLength);
// Process final block
_processFilledBuffer(_buffer, 0);
}
Uint8List _copyBitLength() {
final rv = Uint8List(_bitCount.length * 8);
for (var i = 0; i < _bitCount.length; i++) {
_bitCount[i].pack(rv, i * 8, Endian.big);
}
return rv;
}
@override
int get byteLength => 64;
}
final _c0 = Register64List.from([
[0x18186018, 0xc07830d8],
[0x23238c23, 0x05af4626],
[0xc6c63fc6, 0x7ef991b8],
[0xe8e887e8, 0x136fcdfb],
[0x87872687, 0x4ca113cb],
[0xb8b8dab8, 0xa9626d11],
[0x01010401, 0x08050209],
[0x4f4f214f, 0x426e9e0d],
[0x3636d836, 0xadee6c9b],
[0xa6a6a2a6, 0x590451ff],
[0xd2d26fd2, 0xdebdb90c],
[0xf5f5f3f5, 0xfb06f70e],
[0x7979f979, 0xef80f296],
[0x6f6fa16f, 0x5fcede30],
[0x91917e91, 0xfcef3f6d],
[0x52525552, 0xaa07a4f8],
[0x60609d60, 0x27fdc047],
[0xbcbccabc, 0x89766535],
[0x9b9b569b, 0xaccd2b37],
[0x8e8e028e, 0x048c018a],
[0xa3a3b6a3, 0x71155bd2],
[0x0c0c300c, 0x603c186c],
[0x7b7bf17b, 0xff8af684],
[0x3535d435, 0xb5e16a80],
[0x1d1d741d, 0xe8693af5],
[0xe0e0a7e0, 0x5347ddb3],
[0xd7d77bd7, 0xf6acb321],
[0xc2c22fc2, 0x5eed999c],
[0x2e2eb82e, 0x6d965c43],
[0x4b4b314b, 0x627a9629],
[0xfefedffe, 0xa321e15d],
[0x57574157, 0x8216aed5],
[0x15155415, 0xa8412abd],
[0x7777c177, 0x9fb6eee8],
[0x3737dc37, 0xa5eb6e92],
[0xe5e5b3e5, 0x7b56d79e],
[0x9f9f469f, 0x8cd92313],
[0xf0f0e7f0, 0xd317fd23],
[0x4a4a354a, 0x6a7f9420],
[0xdada4fda, 0x9e95a944],
[0x58587d58, 0xfa25b0a2],
[0xc9c903c9, 0x06ca8fcf],
[0x2929a429, 0x558d527c],
[0x0a0a280a, 0x5022145a],
[0xb1b1feb1, 0xe14f7f50],
[0xa0a0baa0, 0x691a5dc9],
[0x6b6bb16b, 0x7fdad614],
[0x85852e85, 0x5cab17d9],
[0xbdbdcebd, 0x8173673c],
[0x5d5d695d, 0xd234ba8f],
[0x10104010, 0x80502090],
[0xf4f4f7f4, 0xf303f507],
[0xcbcb0bcb, 0x16c08bdd],
[0x3e3ef83e, 0xedc67cd3],
[0x05051405, 0x28110a2d],
[0x67678167, 0x1fe6ce78],
[0xe4e4b7e4, 0x7353d597],
[0x27279c27, 0x25bb4e02],
[0x41411941, 0x32588273],
[0x8b8b168b, 0x2c9d0ba7],
[0xa7a7a6a7, 0x510153f6],
[0x7d7de97d, 0xcf94fab2],
[0x95956e95, 0xdcfb3749],
[0xd8d847d8, 0x8e9fad56],
[0xfbfbcbfb, 0x8b30eb70],
[0xeeee9fee, 0x2371c1cd],
[0x7c7ced7c, 0xc791f8bb],
[0x66668566, 0x17e3cc71],
[0xdddd53dd, 0xa68ea77b],
[0x17175c17, 0xb84b2eaf],
[0x47470147, 0x02468e45],
[0x9e9e429e, 0x84dc211a],
[0xcaca0fca, 0x1ec589d4],
[0x2d2db42d, 0x75995a58],
[0xbfbfc6bf, 0x9179632e],
[0x07071c07, 0x381b0e3f],
[0xadad8ead, 0x012347ac],
[0x5a5a755a, 0xea2fb4b0],
[0x83833683, 0x6cb51bef],
[0x3333cc33, 0x85ff66b6],
[0x63639163, 0x3ff2c65c],
[0x02020802, 0x100a0412],
[0xaaaa92aa, 0x39384993],
[0x7171d971, 0xafa8e2de],
[0xc8c807c8, 0x0ecf8dc6],
[0x19196419, 0xc87d32d1],
[0x49493949, 0x7270923b],
[0xd9d943d9, 0x869aaf5f],
[0xf2f2eff2, 0xc31df931],
[0xe3e3abe3, 0x4b48dba8],
[0x5b5b715b, 0xe22ab6b9],
[0x88881a88, 0x34920dbc],
[0x9a9a529a, 0xa4c8293e],
[0x26269826, 0x2dbe4c0b],
[0x3232c832, 0x8dfa64bf],
[0xb0b0fab0, 0xe94a7d59],
[0xe9e983e9, 0x1b6acff2],
[0x0f0f3c0f, 0x78331e77],
[0xd5d573d5, 0xe6a6b733],
[0x80803a80, 0x74ba1df4],
[0xbebec2be, 0x997c6127],
[0xcdcd13cd, 0x26de87eb],
[0x3434d034, 0xbde46889],
[0x48483d48, 0x7a759032],
[0xffffdbff, 0xab24e354],
[0x7a7af57a, 0xf78ff48d],
[0x90907a90, 0xf4ea3d64],
[0x5f5f615f, 0xc23ebe9d],
[0x20208020, 0x1da0403d],
[0x6868bd68, 0x67d5d00f],
[0x1a1a681a, 0xd07234ca],
[0xaeae82ae, 0x192c41b7],
[0xb4b4eab4, 0xc95e757d],
[0x54544d54, 0x9a19a8ce],
[0x93937693, 0xece53b7f],
[0x22228822, 0x0daa442f],
[0x64648d64, 0x07e9c863],
[0xf1f1e3f1, 0xdb12ff2a],
[0x7373d173, 0xbfa2e6cc],
[0x12124812, 0x905a2482],
[0x40401d40, 0x3a5d807a],
[0x08082008, 0x40281048],
[0xc3c32bc3, 0x56e89b95],
[0xecec97ec, 0x337bc5df],
[0xdbdb4bdb, 0x9690ab4d],
[0xa1a1bea1, 0x611f5fc0],
[0x8d8d0e8d, 0x1c830791],
[0x3d3df43d, 0xf5c97ac8],
[0x97976697, 0xccf1335b],
[0x00000000, 0x00000000],
[0xcfcf1bcf, 0x36d483f9],
[0x2b2bac2b, 0x4587566e],
[0x7676c576, 0x97b3ece1],
[0x82823282, 0x64b019e6],
[0xd6d67fd6, 0xfea9b128],
[0x1b1b6c1b, 0xd87736c3],
[0xb5b5eeb5, 0xc15b7774],
[0xafaf86af, 0x112943be],
[0x6a6ab56a, 0x77dfd41d],
[0x50505d50, 0xba0da0ea],
[0x45450945, 0x124c8a57],
[0xf3f3ebf3, 0xcb18fb38],
[0x3030c030, 0x9df060ad],
[0xefef9bef, 0x2b74c3c4],
[0x3f3ffc3f, 0xe5c37eda],
[0x55554955, 0x921caac7],
[0xa2a2b2a2, 0x791059db],
[0xeaea8fea, 0x0365c9e9],
[0x65658965, 0x0fecca6a],
[0xbabad2ba, 0xb9686903],
[0x2f2fbc2f, 0x65935e4a],
[0xc0c027c0, 0x4ee79d8e],
[0xdede5fde, 0xbe81a160],
[0x1c1c701c, 0xe06c38fc],
[0xfdfdd3fd, 0xbb2ee746],
[0x4d4d294d, 0x52649a1f],
[0x92927292, 0xe4e03976],
[0x7575c975, 0x8fbceafa],
[0x06061806, 0x301e0c36],
[0x8a8a128a, 0x249809ae],
[0xb2b2f2b2, 0xf940794b],
[0xe6e6bfe6, 0x6359d185],
[0x0e0e380e, 0x70361c7e],
[0x1f1f7c1f, 0xf8633ee7],
[0x62629562, 0x37f7c455],
[0xd4d477d4, 0xeea3b53a],
[0xa8a89aa8, 0x29324d81],
[0x96966296, 0xc4f43152],
[0xf9f9c3f9, 0x9b3aef62],
[0xc5c533c5, 0x66f697a3],
[0x25259425, 0x35b14a10],
[0x59597959, 0xf220b2ab],
[0x84842a84, 0x54ae15d0],
[0x7272d572, 0xb7a7e4c5],
[0x3939e439, 0xd5dd72ec],
[0x4c4c2d4c, 0x5a619816],
[0x5e5e655e, 0xca3bbc94],
[0x7878fd78, 0xe785f09f],
[0x3838e038, 0xddd870e5],
[0x8c8c0a8c, 0x14860598],
[0xd1d163d1, 0xc6b2bf17],
[0xa5a5aea5, 0x410b57e4],
[0xe2e2afe2, 0x434dd9a1],
[0x61619961, 0x2ff8c24e],
[0xb3b3f6b3, 0xf1457b42],
[0x21218421, 0x15a54234],
[0x9c9c4a9c, 0x94d62508],
[0x1e1e781e, 0xf0663cee],
[0x43431143, 0x22528661],
[0xc7c73bc7, 0x76fc93b1],
[0xfcfcd7fc, 0xb32be54f],
[0x04041004, 0x20140824],
[0x51515951, 0xb208a2e3],
[0x99995e99, 0xbcc72f25],
[0x6d6da96d, 0x4fc4da22],
[0x0d0d340d, 0x68391a65],
[0xfafacffa, 0x8335e979],
[0xdfdf5bdf, 0xb684a369],
[0x7e7ee57e, 0xd79bfca9],
[0x24249024, 0x3db44819],
[0x3b3bec3b, 0xc5d776fe],
[0xabab96ab, 0x313d4b9a],
[0xcece1fce, 0x3ed181f0],
[0x11114411, 0x88552299],
[0x8f8f068f, 0x0c890383],
[0x4e4e254e, 0x4a6b9c04],
[0xb7b7e6b7, 0xd1517366],
[0xebeb8beb, 0x0b60cbe0],
[0x3c3cf03c, 0xfdcc78c1],
[0x81813e81, 0x7cbf1ffd],
[0x94946a94, 0xd4fe3540],
[0xf7f7fbf7, 0xeb0cf31c],
[0xb9b9deb9, 0xa1676f18],
[0x13134c13, 0x985f268b],
[0x2c2cb02c, 0x7d9c5851],
[0xd3d36bd3, 0xd6b8bb05],
[0xe7e7bbe7, 0x6b5cd38c],
[0x6e6ea56e, 0x57cbdc39],
[0xc4c437c4, 0x6ef395aa],
[0x03030c03, 0x180f061b],
[0x56564556, 0x8a13acdc],
[0x44440d44, 0x1a49885e],
[0x7f7fe17f, 0xdf9efea0],
[0xa9a99ea9, 0x21374f88],
[0x2a2aa82a, 0x4d825467],
[0xbbbbd6bb, 0xb16d6b0a],
[0xc1c123c1, 0x46e29f87],
[0x53535153, 0xa202a6f1],
[0xdcdc57dc, 0xae8ba572],
[0x0b0b2c0b, 0x58271653],
[0x9d9d4e9d, 0x9cd32701],
[0x6c6cad6c, 0x47c1d82b],
[0x3131c431, 0x95f562a4],
[0x7474cd74, 0x87b9e8f3],
[0xf6f6fff6, 0xe309f115],
[0x46460546, 0x0a438c4c],
[0xacac8aac, 0x092645a5],
[0x89891e89, 0x3c970fb5],
[0x14145014, 0xa04428b4],
[0xe1e1a3e1, 0x5b42dfba],
[0x16165816, 0xb04e2ca6],
[0x3a3ae83a, 0xcdd274f7],
[0x6969b969, 0x6fd0d206],
[0x09092409, 0x482d1241],
[0x7070dd70, 0xa7ade0d7],
[0xb6b6e2b6, 0xd954716f],
[0xd0d067d0, 0xceb7bd1e],
[0xeded93ed, 0x3b7ec7d6],
[0xcccc17cc, 0x2edb85e2],
[0x42421542, 0x2a578468],
[0x98985a98, 0xb4c22d2c],
[0xa4a4aaa4, 0x490e55ed],
[0x2828a028, 0x5d885075],
[0x5c5c6d5c, 0xda31b886],
[0xf8f8c7f8, 0x933fed6b],
[0x86862286, 0x44a411c2]
]);
final _c1 = Register64List.from([
[0xd8181860, 0x18c07830],
[0x2623238c, 0x2305af46],
[0xb8c6c63f, 0xc67ef991],
[0xfbe8e887, 0xe8136fcd],
[0xcb878726, 0x874ca113],
[0x11b8b8da, 0xb8a9626d],
[0x09010104, 0x01080502],
[0x0d4f4f21, 0x4f426e9e],
[0x9b3636d8, 0x36adee6c],
[0xffa6a6a2, 0xa6590451],
[0x0cd2d26f, 0xd2debdb9],
[0x0ef5f5f3, 0xf5fb06f7],
[0x967979f9, 0x79ef80f2],
[0x306f6fa1, 0x6f5fcede],
[0x6d91917e, 0x91fcef3f],
[0xf8525255, 0x52aa07a4],
[0x4760609d, 0x6027fdc0],
[0x35bcbcca, 0xbc897665],
[0x379b9b56, 0x9baccd2b],
[0x8a8e8e02, 0x8e048c01],
[0xd2a3a3b6, 0xa371155b],
[0x6c0c0c30, 0x0c603c18],
[0x847b7bf1, 0x7bff8af6],
[0x803535d4, 0x35b5e16a],
[0xf51d1d74, 0x1de8693a],
[0xb3e0e0a7, 0xe05347dd],
[0x21d7d77b, 0xd7f6acb3],
[0x9cc2c22f, 0xc25eed99],
[0x432e2eb8, 0x2e6d965c],
[0x294b4b31, 0x4b627a96],
[0x5dfefedf, 0xfea321e1],
[0xd5575741, 0x578216ae],
[0xbd151554, 0x15a8412a],
[0xe87777c1, 0x779fb6ee],
[0x923737dc, 0x37a5eb6e],
[0x9ee5e5b3, 0xe57b56d7],
[0x139f9f46, 0x9f8cd923],
[0x23f0f0e7, 0xf0d317fd],
[0x204a4a35, 0x4a6a7f94],
[0x44dada4f, 0xda9e95a9],
[0xa258587d, 0x58fa25b0],
[0xcfc9c903, 0xc906ca8f],
[0x7c2929a4, 0x29558d52],
[0x5a0a0a28, 0x0a502214],
[0x50b1b1fe, 0xb1e14f7f],
[0xc9a0a0ba, 0xa0691a5d],
[0x146b6bb1, 0x6b7fdad6],
[0xd985852e, 0x855cab17],
[0x3cbdbdce, 0xbd817367],
[0x8f5d5d69, 0x5dd234ba],
[0x90101040, 0x10805020],
[0x07f4f4f7, 0xf4f303f5],
[0xddcbcb0b, 0xcb16c08b],
[0xd33e3ef8, 0x3eedc67c],
[0x2d050514, 0x0528110a],
[0x78676781, 0x671fe6ce],
[0x97e4e4b7, 0xe47353d5],
[0x0227279c, 0x2725bb4e],
[0x73414119, 0x41325882],
[0xa78b8b16, 0x8b2c9d0b],
[0xf6a7a7a6, 0xa7510153],
[0xb27d7de9, 0x7dcf94fa],
[0x4995956e, 0x95dcfb37],
[0x56d8d847, 0xd88e9fad],
[0x70fbfbcb, 0xfb8b30eb],
[0xcdeeee9f, 0xee2371c1],
[0xbb7c7ced, 0x7cc791f8],
[0x71666685, 0x6617e3cc],
[0x7bdddd53, 0xdda68ea7],
[0xaf17175c, 0x17b84b2e],
[0x45474701, 0x4702468e],
[0x1a9e9e42, 0x9e84dc21],
[0xd4caca0f, 0xca1ec589],
[0x582d2db4, 0x2d75995a],
[0x2ebfbfc6, 0xbf917963],
[0x3f07071c, 0x07381b0e],
[0xacadad8e, 0xad012347],
[0xb05a5a75, 0x5aea2fb4],
[0xef838336, 0x836cb51b],
[0xb63333cc, 0x3385ff66],
[0x5c636391, 0x633ff2c6],
[0x12020208, 0x02100a04],
[0x93aaaa92, 0xaa393849],
[0xde7171d9, 0x71afa8e2],
[0xc6c8c807, 0xc80ecf8d],
[0xd1191964, 0x19c87d32],
[0x3b494939, 0x49727092],
[0x5fd9d943, 0xd9869aaf],
[0x31f2f2ef, 0xf2c31df9],
[0xa8e3e3ab, 0xe34b48db],
[0xb95b5b71, 0x5be22ab6],
[0xbc88881a, 0x8834920d],
[0x3e9a9a52, 0x9aa4c829],
[0x0b262698, 0x262dbe4c],
[0xbf3232c8, 0x328dfa64],
[0x59b0b0fa, 0xb0e94a7d],
[0xf2e9e983, 0xe91b6acf],
[0x770f0f3c, 0x0f78331e],
[0x33d5d573, 0xd5e6a6b7],
[0xf480803a, 0x8074ba1d],
[0x27bebec2, 0xbe997c61],
[0xebcdcd13, 0xcd26de87],
[0x893434d0, 0x34bde468],
[0x3248483d, 0x487a7590],
[0x54ffffdb, 0xffab24e3],
[0x8d7a7af5, 0x7af78ff4],
[0x6490907a, 0x90f4ea3d],
[0x9d5f5f61, 0x5fc23ebe],
[0x3d202080, 0x201da040],
[0x0f6868bd, 0x6867d5d0],
[0xca1a1a68, 0x1ad07234],
[0xb7aeae82, 0xae192c41],
[0x7db4b4ea, 0xb4c95e75],
[0xce54544d, 0x549a19a8],
[0x7f939376, 0x93ece53b],
[0x2f222288, 0x220daa44],
[0x6364648d, 0x6407e9c8],
[0x2af1f1e3, 0xf1db12ff],
[0xcc7373d1, 0x73bfa2e6],
[0x82121248, 0x12905a24],
[0x7a40401d, 0x403a5d80],
[0x48080820, 0x08402810],
[0x95c3c32b, 0xc356e89b],
[0xdfecec97, 0xec337bc5],
[0x4ddbdb4b, 0xdb9690ab],
[0xc0a1a1be, 0xa1611f5f],
[0x918d8d0e, 0x8d1c8307],
[0xc83d3df4, 0x3df5c97a],
[0x5b979766, 0x97ccf133],
[0x00000000, 0x00000000],
[0xf9cfcf1b, 0xcf36d483],
[0x6e2b2bac, 0x2b458756],
[0xe17676c5, 0x7697b3ec],
[0xe6828232, 0x8264b019],
[0x28d6d67f, 0xd6fea9b1],
[0xc31b1b6c, 0x1bd87736],
[0x74b5b5ee, 0xb5c15b77],
[0xbeafaf86, 0xaf112943],
[0x1d6a6ab5, 0x6a77dfd4],
[0xea50505d, 0x50ba0da0],
[0x57454509, 0x45124c8a],
[0x38f3f3eb, 0xf3cb18fb],
[0xad3030c0, 0x309df060],
[0xc4efef9b, 0xef2b74c3],
[0xda3f3ffc, 0x3fe5c37e],
[0xc7555549, 0x55921caa],
[0xdba2a2b2, 0xa2791059],
[0xe9eaea8f, 0xea0365c9],
[0x6a656589, 0x650fecca],
[0x03babad2, 0xbab96869],
[0x4a2f2fbc, 0x2f65935e],
[0x8ec0c027, 0xc04ee79d],
[0x60dede5f, 0xdebe81a1],
[0xfc1c1c70, 0x1ce06c38],
[0x46fdfdd3, 0xfdbb2ee7],
[0x1f4d4d29, 0x4d52649a],
[0x76929272, 0x92e4e039],
[0xfa7575c9, 0x758fbcea],
[0x36060618, 0x06301e0c],
[0xae8a8a12, 0x8a249809],
[0x4bb2b2f2, 0xb2f94079],
[0x85e6e6bf, 0xe66359d1],
[0x7e0e0e38, 0x0e70361c],
[0xe71f1f7c, 0x1ff8633e],
[0x55626295, 0x6237f7c4],
[0x3ad4d477, 0xd4eea3b5],
[0x81a8a89a, 0xa829324d],
[0x52969662, 0x96c4f431],
[0x62f9f9c3, 0xf99b3aef],
[0xa3c5c533, 0xc566f697],
[0x10252594, 0x2535b14a],
[0xab595979, 0x59f220b2],
[0xd084842a, 0x8454ae15],
[0xc57272d5, 0x72b7a7e4],
[0xec3939e4, 0x39d5dd72],
[0x164c4c2d, 0x4c5a6198],
[0x945e5e65, 0x5eca3bbc],
[0x9f7878fd, 0x78e785f0],
[0xe53838e0, 0x38ddd870],
[0x988c8c0a, 0x8c148605],
[0x17d1d163, 0xd1c6b2bf],
[0xe4a5a5ae, 0xa5410b57],
[0xa1e2e2af, 0xe2434dd9],
[0x4e616199, 0x612ff8c2],
[0x42b3b3f6, 0xb3f1457b],
[0x34212184, 0x2115a542],
[0x089c9c4a, 0x9c94d625],
[0xee1e1e78, 0x1ef0663c],
[0x61434311, 0x43225286],
[0xb1c7c73b, 0xc776fc93],
[0x4ffcfcd7, 0xfcb32be5],
[0x24040410, 0x04201408],
[0xe3515159, 0x51b208a2],
[0x2599995e, 0x99bcc72f],
[0x226d6da9, 0x6d4fc4da],
[0x650d0d34, 0x0d68391a],
[0x79fafacf, 0xfa8335e9],
[0x69dfdf5b, 0xdfb684a3],
[0xa97e7ee5, 0x7ed79bfc],
[0x19242490, 0x243db448],
[0xfe3b3bec, 0x3bc5d776],
[0x9aabab96, 0xab313d4b],
[0xf0cece1f, 0xce3ed181],
[0x99111144, 0x11885522],
[0x838f8f06, 0x8f0c8903],
[0x044e4e25, 0x4e4a6b9c],
[0x66b7b7e6, 0xb7d15173],
[0xe0ebeb8b, 0xeb0b60cb],
[0xc13c3cf0, 0x3cfdcc78],
[0xfd81813e, 0x817cbf1f],
[0x4094946a, 0x94d4fe35],
[0x1cf7f7fb, 0xf7eb0cf3],
[0x18b9b9de, 0xb9a1676f],
[0x8b13134c, 0x13985f26],
[0x512c2cb0, 0x2c7d9c58],
[0x05d3d36b, 0xd3d6b8bb],
[0x8ce7e7bb, 0xe76b5cd3],
[0x396e6ea5, 0x6e57cbdc],
[0xaac4c437, 0xc46ef395],
[0x1b03030c, 0x03180f06],
[0xdc565645, 0x568a13ac],
[0x5e44440d, 0x441a4988],
[0xa07f7fe1, 0x7fdf9efe],
[0x88a9a99e, 0xa921374f],
[0x672a2aa8, 0x2a4d8254],
[0x0abbbbd6, 0xbbb16d6b],
[0x87c1c123, 0xc146e29f],
[0xf1535351, 0x53a202a6],
[0x72dcdc57, 0xdcae8ba5],
[0x530b0b2c, 0x0b582716],
[0x019d9d4e, 0x9d9cd327],
[0x2b6c6cad, 0x6c47c1d8],
[0xa43131c4, 0x3195f562],
[0xf37474cd, 0x7487b9e8],
[0x15f6f6ff, 0xf6e309f1],
[0x4c464605, 0x460a438c],
[0xa5acac8a, 0xac092645],
[0xb589891e, 0x893c970f],
[0xb4141450, 0x14a04428],
[0xbae1e1a3, 0xe15b42df],
[0xa6161658, 0x16b04e2c],
[0xf73a3ae8, 0x3acdd274],
[0x066969b9, 0x696fd0d2],
[0x41090924, 0x09482d12],
[0xd77070dd, 0x70a7ade0],
[0x6fb6b6e2, 0xb6d95471],
[0x1ed0d067, 0xd0ceb7bd],
[0xd6eded93, 0xed3b7ec7],
[0xe2cccc17, 0xcc2edb85],
[0x68424215, 0x422a5784],
[0x2c98985a, 0x98b4c22d],
[0xeda4a4aa, 0xa4490e55],
[0x752828a0, 0x285d8850],
[0x865c5c6d, 0x5cda31b8],
[0x6bf8f8c7, 0xf8933fed],
[0xc2868622, 0x8644a411]
]);
final _c2 = Register64List.from([
[0x30d81818, 0x6018c078],
[0x46262323, 0x8c2305af],
[0x91b8c6c6, 0x3fc67ef9],
[0xcdfbe8e8, 0x87e8136f],
[0x13cb8787, 0x26874ca1],
[0x6d11b8b8, 0xdab8a962],
[0x02090101, 0x04010805],
[0x9e0d4f4f, 0x214f426e],
[0x6c9b3636, 0xd836adee],
[0x51ffa6a6, 0xa2a65904],
[0xb90cd2d2, 0x6fd2debd],
[0xf70ef5f5, 0xf3f5fb06],
[0xf2967979, 0xf979ef80],
[0xde306f6f, 0xa16f5fce],
[0x3f6d9191, 0x7e91fcef],
[0xa4f85252, 0x5552aa07],
[0xc0476060, 0x9d6027fd],
[0x6535bcbc, 0xcabc8976],
[0x2b379b9b, 0x569baccd],
[0x018a8e8e, 0x028e048c],
[0x5bd2a3a3, 0xb6a37115],
[0x186c0c0c, 0x300c603c],
[0xf6847b7b, 0xf17bff8a],
[0x6a803535, 0xd435b5e1],
[0x3af51d1d, 0x741de869],
[0xddb3e0e0, 0xa7e05347],
[0xb321d7d7, 0x7bd7f6ac],
[0x999cc2c2, 0x2fc25eed],
[0x5c432e2e, 0xb82e6d96],
[0x96294b4b, 0x314b627a],
[0xe15dfefe, 0xdffea321],
[0xaed55757, 0x41578216],
[0x2abd1515, 0x5415a841],
[0xeee87777, 0xc1779fb6],
[0x6e923737, 0xdc37a5eb],
[0xd79ee5e5, 0xb3e57b56],
[0x23139f9f, 0x469f8cd9],
[0xfd23f0f0, 0xe7f0d317],
[0x94204a4a, 0x354a6a7f],
[0xa944dada, 0x4fda9e95],
[0xb0a25858, 0x7d58fa25],
[0x8fcfc9c9, 0x03c906ca],
[0x527c2929, 0xa429558d],
[0x145a0a0a, 0x280a5022],
[0x7f50b1b1, 0xfeb1e14f],
[0x5dc9a0a0, 0xbaa0691a],
[0xd6146b6b, 0xb16b7fda],
[0x17d98585, 0x2e855cab],
[0x673cbdbd, 0xcebd8173],
[0xba8f5d5d, 0x695dd234],
[0x20901010, 0x40108050],
[0xf507f4f4, 0xf7f4f303],
[0x8bddcbcb, 0x0bcb16c0],
[0x7cd33e3e, 0xf83eedc6],
[0x0a2d0505, 0x14052811],
[0xce786767, 0x81671fe6],
[0xd597e4e4, 0xb7e47353],
[0x4e022727, 0x9c2725bb],
[0x82734141, 0x19413258],
[0x0ba78b8b, 0x168b2c9d],
[0x53f6a7a7, 0xa6a75101],
[0xfab27d7d, 0xe97dcf94],
[0x37499595, 0x6e95dcfb],
[0xad56d8d8, 0x47d88e9f],
[0xeb70fbfb, 0xcbfb8b30],
[0xc1cdeeee, 0x9fee2371],
[0xf8bb7c7c, 0xed7cc791],
[0xcc716666, 0x856617e3],
[0xa77bdddd, 0x53dda68e],
[0x2eaf1717, 0x5c17b84b],
[0x8e454747, 0x01470246],
[0x211a9e9e, 0x429e84dc],
[0x89d4caca, 0x0fca1ec5],
[0x5a582d2d, 0xb42d7599],
[0x632ebfbf, 0xc6bf9179],
[0x0e3f0707, 0x1c07381b],
[0x47acadad, 0x8ead0123],
[0xb4b05a5a, 0x755aea2f],
[0x1bef8383, 0x36836cb5],
[0x66b63333, 0xcc3385ff],
[0xc65c6363, 0x91633ff2],
[0x04120202, 0x0802100a],
[0x4993aaaa, 0x92aa3938],
[0xe2de7171, 0xd971afa8],
[0x8dc6c8c8, 0x07c80ecf],
[0x32d11919, 0x6419c87d],
[0x923b4949, 0x39497270],
[0xaf5fd9d9, 0x43d9869a],
[0xf931f2f2, 0xeff2c31d],
[0xdba8e3e3, 0xabe34b48],
[0xb6b95b5b, 0x715be22a],
[0x0dbc8888, 0x1a883492],
[0x293e9a9a, 0x529aa4c8],
[0x4c0b2626, 0x98262dbe],
[0x64bf3232, 0xc8328dfa],
[0x7d59b0b0, 0xfab0e94a],
[0xcff2e9e9, 0x83e91b6a],
[0x1e770f0f, 0x3c0f7833],
[0xb733d5d5, 0x73d5e6a6],
[0x1df48080, 0x3a8074ba],
[0x6127bebe, 0xc2be997c],
[0x87ebcdcd, 0x13cd26de],
[0x68893434, 0xd034bde4],
[0x90324848, 0x3d487a75],
[0xe354ffff, 0xdbffab24],
[0xf48d7a7a, 0xf57af78f],
[0x3d649090, 0x7a90f4ea],
[0xbe9d5f5f, 0x615fc23e],
[0x403d2020, 0x80201da0],
[0xd00f6868, 0xbd6867d5],
[0x34ca1a1a, 0x681ad072],
[0x41b7aeae, 0x82ae192c],
[0x757db4b4, 0xeab4c95e],
[0xa8ce5454, 0x4d549a19],
[0x3b7f9393, 0x7693ece5],
[0x442f2222, 0x88220daa],
[0xc8636464, 0x8d6407e9],
[0xff2af1f1, 0xe3f1db12],
[0xe6cc7373, 0xd173bfa2],
[0x24821212, 0x4812905a],
[0x807a4040, 0x1d403a5d],
[0x10480808, 0x20084028],
[0x9b95c3c3, 0x2bc356e8],
[0xc5dfecec, 0x97ec337b],
[0xab4ddbdb, 0x4bdb9690],
[0x5fc0a1a1, 0xbea1611f],
[0x07918d8d, 0x0e8d1c83],
[0x7ac83d3d, 0xf43df5c9],
[0x335b9797, 0x6697ccf1],
[0x00000000, 0x00000000],
[0x83f9cfcf, 0x1bcf36d4],
[0x566e2b2b, 0xac2b4587],
[0xece17676, 0xc57697b3],
[0x19e68282, 0x328264b0],
[0xb128d6d6, 0x7fd6fea9],
[0x36c31b1b, 0x6c1bd877],
[0x7774b5b5, 0xeeb5c15b],
[0x43beafaf, 0x86af1129],
[0xd41d6a6a, 0xb56a77df],
[0xa0ea5050, 0x5d50ba0d],
[0x8a574545, 0x0945124c],
[0xfb38f3f3, 0xebf3cb18],
[0x60ad3030, 0xc0309df0],
[0xc3c4efef, 0x9bef2b74],
[0x7eda3f3f, 0xfc3fe5c3],
[0xaac75555, 0x4955921c],
[0x59dba2a2, 0xb2a27910],
[0xc9e9eaea, 0x8fea0365],
[0xca6a6565, 0x89650fec],
[0x6903baba, 0xd2bab968],
[0x5e4a2f2f, 0xbc2f6593],
[0x9d8ec0c0, 0x27c04ee7],
[0xa160dede, 0x5fdebe81],
[0x38fc1c1c, 0x701ce06c],
[0xe746fdfd, 0xd3fdbb2e],
[0x9a1f4d4d, 0x294d5264],
[0x39769292, 0x7292e4e0],
[0xeafa7575, 0xc9758fbc],
[0x0c360606, 0x1806301e],
[0x09ae8a8a, 0x128a2498],
[0x794bb2b2, 0xf2b2f940],
[0xd185e6e6, 0xbfe66359],
[0x1c7e0e0e, 0x380e7036],
[0x3ee71f1f, 0x7c1ff863],
[0xc4556262, 0x956237f7],
[0xb53ad4d4, 0x77d4eea3],
[0x4d81a8a8, 0x9aa82932],
[0x31529696, 0x6296c4f4],
[0xef62f9f9, 0xc3f99b3a],
[0x97a3c5c5, 0x33c566f6],
[0x4a102525, 0x942535b1],
[0xb2ab5959, 0x7959f220],
[0x15d08484, 0x2a8454ae],
[0xe4c57272, 0xd572b7a7],
[0x72ec3939, 0xe439d5dd],
[0x98164c4c, 0x2d4c5a61],
[0xbc945e5e, 0x655eca3b],
[0xf09f7878, 0xfd78e785],
[0x70e53838, 0xe038ddd8],
[0x05988c8c, 0x0a8c1486],
[0xbf17d1d1, 0x63d1c6b2],
[0x57e4a5a5, 0xaea5410b],
[0xd9a1e2e2, 0xafe2434d],
[0xc24e6161, 0x99612ff8],
[0x7b42b3b3, 0xf6b3f145],
[0x42342121, 0x842115a5],
[0x25089c9c, 0x4a9c94d6],
[0x3cee1e1e, 0x781ef066],
[0x86614343, 0x11432252],
[0x93b1c7c7, 0x3bc776fc],
[0xe54ffcfc, 0xd7fcb32b],
[0x08240404, 0x10042014],
[0xa2e35151, 0x5951b208],
[0x2f259999, 0x5e99bcc7],
[0xda226d6d, 0xa96d4fc4],
[0x1a650d0d, 0x340d6839],
[0xe979fafa, 0xcffa8335],
[0xa369dfdf, 0x5bdfb684],
[0xfca97e7e, 0xe57ed79b],
[0x48192424, 0x90243db4],
[0x76fe3b3b, 0xec3bc5d7],
[0x4b9aabab, 0x96ab313d],
[0x81f0cece, 0x1fce3ed1],
[0x22991111, 0x44118855],
[0x03838f8f, 0x068f0c89],
[0x9c044e4e, 0x254e4a6b],
[0x7366b7b7, 0xe6b7d151],
[0xcbe0ebeb, 0x8beb0b60],
[0x78c13c3c, 0xf03cfdcc],
[0x1ffd8181, 0x3e817cbf],
[0x35409494, 0x6a94d4fe],
[0xf31cf7f7, 0xfbf7eb0c],
[0x6f18b9b9, 0xdeb9a167],
[0x268b1313, 0x4c13985f],
[0x58512c2c, 0xb02c7d9c],
[0xbb05d3d3, 0x6bd3d6b8],
[0xd38ce7e7, 0xbbe76b5c],
[0xdc396e6e, 0xa56e57cb],
[0x95aac4c4, 0x37c46ef3],
[0x061b0303, 0x0c03180f],
[0xacdc5656, 0x45568a13],
[0x885e4444, 0x0d441a49],
[0xfea07f7f, 0xe17fdf9e],
[0x4f88a9a9, 0x9ea92137],
[0x54672a2a, 0xa82a4d82],
[0x6b0abbbb, 0xd6bbb16d],
[0x9f87c1c1, 0x23c146e2],
[0xa6f15353, 0x5153a202],
[0xa572dcdc, 0x57dcae8b],
[0x16530b0b, 0x2c0b5827],
[0x27019d9d, 0x4e9d9cd3],
[0xd82b6c6c, 0xad6c47c1],
[0x62a43131, 0xc43195f5],
[0xe8f37474, 0xcd7487b9],
[0xf115f6f6, 0xfff6e309],
[0x8c4c4646, 0x05460a43],
[0x45a5acac, 0x8aac0926],
[0x0fb58989, 0x1e893c97],
[0x28b41414, 0x5014a044],
[0xdfbae1e1, 0xa3e15b42],
[0x2ca61616, 0x5816b04e],
[0x74f73a3a, 0xe83acdd2],
[0xd2066969, 0xb9696fd0],
[0x12410909, 0x2409482d],
[0xe0d77070, 0xdd70a7ad],
[0x716fb6b6, 0xe2b6d954],
[0xbd1ed0d0, 0x67d0ceb7],
[0xc7d6eded, 0x93ed3b7e],
[0x85e2cccc, 0x17cc2edb],
[0x84684242, 0x15422a57],
[0x2d2c9898, 0x5a98b4c2],
[0x55eda4a4, 0xaaa4490e],
[0x50752828, 0xa0285d88],
[0xb8865c5c, 0x6d5cda31],
[0xed6bf8f8, 0xc7f8933f],
[0x11c28686, 0x228644a4]
]);
final _c3 = Register64List.from([
[0x7830d818, 0x186018c0],
[0xaf462623, 0x238c2305],
[0xf991b8c6, 0xc63fc67e],
[0x6fcdfbe8, 0xe887e813],
[0xa113cb87, 0x8726874c],
[0x626d11b8, 0xb8dab8a9],
[0x05020901, 0x01040108],
[0x6e9e0d4f, 0x4f214f42],
[0xee6c9b36, 0x36d836ad],
[0x0451ffa6, 0xa6a2a659],
[0xbdb90cd2, 0xd26fd2de],
[0x06f70ef5, 0xf5f3f5fb],
[0x80f29679, 0x79f979ef],
[0xcede306f, 0x6fa16f5f],
[0xef3f6d91, 0x917e91fc],
[0x07a4f852, 0x525552aa],
[0xfdc04760, 0x609d6027],
[0x766535bc, 0xbccabc89],
[0xcd2b379b, 0x9b569bac],
[0x8c018a8e, 0x8e028e04],
[0x155bd2a3, 0xa3b6a371],
[0x3c186c0c, 0x0c300c60],
[0x8af6847b, 0x7bf17bff],
[0xe16a8035, 0x35d435b5],
[0x693af51d, 0x1d741de8],
[0x47ddb3e0, 0xe0a7e053],
[0xacb321d7, 0xd77bd7f6],
[0xed999cc2, 0xc22fc25e],
[0x965c432e, 0x2eb82e6d],
[0x7a96294b, 0x4b314b62],
[0x21e15dfe, 0xfedffea3],
[0x16aed557, 0x57415782],
[0x412abd15, 0x155415a8],
[0xb6eee877, 0x77c1779f],
[0xeb6e9237, 0x37dc37a5],
[0x56d79ee5, 0xe5b3e57b],
[0xd923139f, 0x9f469f8c],
[0x17fd23f0, 0xf0e7f0d3],
[0x7f94204a, 0x4a354a6a],
[0x95a944da, 0xda4fda9e],
[0x25b0a258, 0x587d58fa],
[0xca8fcfc9, 0xc903c906],
[0x8d527c29, 0x29a42955],
[0x22145a0a, 0x0a280a50],
[0x4f7f50b1, 0xb1feb1e1],
[0x1a5dc9a0, 0xa0baa069],
[0xdad6146b, 0x6bb16b7f],
[0xab17d985, 0x852e855c],
[0x73673cbd, 0xbdcebd81],
[0x34ba8f5d, 0x5d695dd2],
[0x50209010, 0x10401080],
[0x03f507f4, 0xf4f7f4f3],
[0xc08bddcb, 0xcb0bcb16],
[0xc67cd33e, 0x3ef83eed],
[0x110a2d05, 0x05140528],
[0xe6ce7867, 0x6781671f],
[0x53d597e4, 0xe4b7e473],
[0xbb4e0227, 0x279c2725],
[0x58827341, 0x41194132],
[0x9d0ba78b, 0x8b168b2c],
[0x0153f6a7, 0xa7a6a751],
[0x94fab27d, 0x7de97dcf],
[0xfb374995, 0x956e95dc],
[0x9fad56d8, 0xd847d88e],
[0x30eb70fb, 0xfbcbfb8b],
[0x71c1cdee, 0xee9fee23],
[0x91f8bb7c, 0x7ced7cc7],
[0xe3cc7166, 0x66856617],
[0x8ea77bdd, 0xdd53dda6],
[0x4b2eaf17, 0x175c17b8],
[0x468e4547, 0x47014702],
[0xdc211a9e, 0x9e429e84],
[0xc589d4ca, 0xca0fca1e],
[0x995a582d, 0x2db42d75],
[0x79632ebf, 0xbfc6bf91],
[0x1b0e3f07, 0x071c0738],
[0x2347acad, 0xad8ead01],
[0x2fb4b05a, 0x5a755aea],
[0xb51bef83, 0x8336836c],
[0xff66b633, 0x33cc3385],
[0xf2c65c63, 0x6391633f],
[0x0a041202, 0x02080210],
[0x384993aa, 0xaa92aa39],
[0xa8e2de71, 0x71d971af],
[0xcf8dc6c8, 0xc807c80e],
[0x7d32d119, 0x196419c8],
[0x70923b49, 0x49394972],
[0x9aaf5fd9, 0xd943d986],
[0x1df931f2, 0xf2eff2c3],
[0x48dba8e3, 0xe3abe34b],
[0x2ab6b95b, 0x5b715be2],
[0x920dbc88, 0x881a8834],
[0xc8293e9a, 0x9a529aa4],
[0xbe4c0b26, 0x2698262d],
[0xfa64bf32, 0x32c8328d],
[0x4a7d59b0, 0xb0fab0e9],
[0x6acff2e9, 0xe983e91b],
[0x331e770f, 0x0f3c0f78],
[0xa6b733d5, 0xd573d5e6],
[0xba1df480, 0x803a8074],
[0x7c6127be, 0xbec2be99],
[0xde87ebcd, 0xcd13cd26],
[0xe4688934, 0x34d034bd],
[0x75903248, 0x483d487a],
[0x24e354ff, 0xffdbffab],
[0x8ff48d7a, 0x7af57af7],
[0xea3d6490, 0x907a90f4],
[0x3ebe9d5f, 0x5f615fc2],
[0xa0403d20, 0x2080201d],
[0xd5d00f68, 0x68bd6867],
[0x7234ca1a, 0x1a681ad0],
[0x2c41b7ae, 0xae82ae19],
[0x5e757db4, 0xb4eab4c9],
[0x19a8ce54, 0x544d549a],
[0xe53b7f93, 0x937693ec],
[0xaa442f22, 0x2288220d],
[0xe9c86364, 0x648d6407],
[0x12ff2af1, 0xf1e3f1db],
[0xa2e6cc73, 0x73d173bf],
[0x5a248212, 0x12481290],
[0x5d807a40, 0x401d403a],
[0x28104808, 0x08200840],
[0xe89b95c3, 0xc32bc356],
[0x7bc5dfec, 0xec97ec33],
[0x90ab4ddb, 0xdb4bdb96],
[0x1f5fc0a1, 0xa1bea161],
[0x8307918d, 0x8d0e8d1c],
[0xc97ac83d, 0x3df43df5],
[0xf1335b97, 0x976697cc],
[0x00000000, 0x00000000],
[0xd483f9cf, 0xcf1bcf36],
[0x87566e2b, 0x2bac2b45],
[0xb3ece176, 0x76c57697],
[0xb019e682, 0x82328264],
[0xa9b128d6, 0xd67fd6fe],
[0x7736c31b, 0x1b6c1bd8],
[0x5b7774b5, 0xb5eeb5c1],
[0x2943beaf, 0xaf86af11],
[0xdfd41d6a, 0x6ab56a77],
[0x0da0ea50, 0x505d50ba],
[0x4c8a5745, 0x45094512],
[0x18fb38f3, 0xf3ebf3cb],
[0xf060ad30, 0x30c0309d],
[0x74c3c4ef, 0xef9bef2b],
[0xc37eda3f, 0x3ffc3fe5],
[0x1caac755, 0x55495592],
[0x1059dba2, 0xa2b2a279],
[0x65c9e9ea, 0xea8fea03],
[0xecca6a65, 0x6589650f],
[0x686903ba, 0xbad2bab9],
[0x935e4a2f, 0x2fbc2f65],
[0xe79d8ec0, 0xc027c04e],
[0x81a160de, 0xde5fdebe],
[0x6c38fc1c, 0x1c701ce0],
[0x2ee746fd, 0xfdd3fdbb],
[0x649a1f4d, 0x4d294d52],
[0xe0397692, 0x927292e4],
[0xbceafa75, 0x75c9758f],
[0x1e0c3606, 0x06180630],
[0x9809ae8a, 0x8a128a24],
[0x40794bb2, 0xb2f2b2f9],
[0x59d185e6, 0xe6bfe663],
[0x361c7e0e, 0x0e380e70],
[0x633ee71f, 0x1f7c1ff8],
[0xf7c45562, 0x62956237],
[0xa3b53ad4, 0xd477d4ee],
[0x324d81a8, 0xa89aa829],
[0xf4315296, 0x966296c4],
[0x3aef62f9, 0xf9c3f99b],
[0xf697a3c5, 0xc533c566],
[0xb14a1025, 0x25942535],
[0x20b2ab59, 0x597959f2],
[0xae15d084, 0x842a8454],
[0xa7e4c572, 0x72d572b7],
[0xdd72ec39, 0x39e439d5],
[0x6198164c, 0x4c2d4c5a],
[0x3bbc945e, 0x5e655eca],
[0x85f09f78, 0x78fd78e7],
[0xd870e538, 0x38e038dd],
[0x8605988c, 0x8c0a8c14],
[0xb2bf17d1, 0xd163d1c6],
[0x0b57e4a5, 0xa5aea541],
[0x4dd9a1e2, 0xe2afe243],
[0xf8c24e61, 0x6199612f],
[0x457b42b3, 0xb3f6b3f1],
[0xa5423421, 0x21842115],
[0xd625089c, 0x9c4a9c94],
[0x663cee1e, 0x1e781ef0],
[0x52866143, 0x43114322],
[0xfc93b1c7, 0xc73bc776],
[0x2be54ffc, 0xfcd7fcb3],
[0x14082404, 0x04100420],
[0x08a2e351, 0x515951b2],
[0xc72f2599, 0x995e99bc],
[0xc4da226d, 0x6da96d4f],
[0x391a650d, 0x0d340d68],
[0x35e979fa, 0xfacffa83],
[0x84a369df, 0xdf5bdfb6],
[0x9bfca97e, 0x7ee57ed7],
[0xb4481924, 0x2490243d],
[0xd776fe3b, 0x3bec3bc5],
[0x3d4b9aab, 0xab96ab31],
[0xd181f0ce, 0xce1fce3e],
[0x55229911, 0x11441188],
[0x8903838f, 0x8f068f0c],
[0x6b9c044e, 0x4e254e4a],
[0x517366b7, 0xb7e6b7d1],
[0x60cbe0eb, 0xeb8beb0b],
[0xcc78c13c, 0x3cf03cfd],
[0xbf1ffd81, 0x813e817c],
[0xfe354094, 0x946a94d4],
[0x0cf31cf7, 0xf7fbf7eb],
[0x676f18b9, 0xb9deb9a1],
[0x5f268b13, 0x134c1398],
[0x9c58512c, 0x2cb02c7d],
[0xb8bb05d3, 0xd36bd3d6],
[0x5cd38ce7, 0xe7bbe76b],
[0xcbdc396e, 0x6ea56e57],
[0xf395aac4, 0xc437c46e],
[0x0f061b03, 0x030c0318],
[0x13acdc56, 0x5645568a],
[0x49885e44, 0x440d441a],
[0x9efea07f, 0x7fe17fdf],
[0x374f88a9, 0xa99ea921],
[0x8254672a, 0x2aa82a4d],
[0x6d6b0abb, 0xbbd6bbb1],
[0xe29f87c1, 0xc123c146],
[0x02a6f153, 0x535153a2],
[0x8ba572dc, 0xdc57dcae],
[0x2716530b, 0x0b2c0b58],
[0xd327019d, 0x9d4e9d9c],
[0xc1d82b6c, 0x6cad6c47],
[0xf562a431, 0x31c43195],
[0xb9e8f374, 0x74cd7487],
[0x09f115f6, 0xf6fff6e3],
[0x438c4c46, 0x4605460a],
[0x2645a5ac, 0xac8aac09],
[0x970fb589, 0x891e893c],
[0x4428b414, 0x145014a0],
[0x42dfbae1, 0xe1a3e15b],
[0x4e2ca616, 0x165816b0],
[0xd274f73a, 0x3ae83acd],
[0xd0d20669, 0x69b9696f],
[0x2d124109, 0x09240948],
[0xade0d770, 0x70dd70a7],
[0x54716fb6, 0xb6e2b6d9],
[0xb7bd1ed0, 0xd067d0ce],
[0x7ec7d6ed, 0xed93ed3b],
[0xdb85e2cc, 0xcc17cc2e],
[0x57846842, 0x4215422a],
[0xc22d2c98, 0x985a98b4],
[0x0e55eda4, 0xa4aaa449],
[0x88507528, 0x28a0285d],
[0x31b8865c, 0x5c6d5cda],
[0x3fed6bf8, 0xf8c7f893],
[0xa411c286, 0x86228644]
]);
final _c4 = Register64List.from([
[0xc07830d8, 0x18186018],
[0x05af4626, 0x23238c23],
[0x7ef991b8, 0xc6c63fc6],
[0x136fcdfb, 0xe8e887e8],
[0x4ca113cb, 0x87872687],
[0xa9626d11, 0xb8b8dab8],
[0x08050209, 0x01010401],
[0x426e9e0d, 0x4f4f214f],
[0xadee6c9b, 0x3636d836],
[0x590451ff, 0xa6a6a2a6],
[0xdebdb90c, 0xd2d26fd2],
[0xfb06f70e, 0xf5f5f3f5],
[0xef80f296, 0x7979f979],
[0x5fcede30, 0x6f6fa16f],
[0xfcef3f6d, 0x91917e91],
[0xaa07a4f8, 0x52525552],
[0x27fdc047, 0x60609d60],
[0x89766535, 0xbcbccabc],
[0xaccd2b37, 0x9b9b569b],
[0x048c018a, 0x8e8e028e],
[0x71155bd2, 0xa3a3b6a3],
[0x603c186c, 0x0c0c300c],
[0xff8af684, 0x7b7bf17b],
[0xb5e16a80, 0x3535d435],
[0xe8693af5, 0x1d1d741d],
[0x5347ddb3, 0xe0e0a7e0],
[0xf6acb321, 0xd7d77bd7],
[0x5eed999c, 0xc2c22fc2],
[0x6d965c43, 0x2e2eb82e],
[0x627a9629, 0x4b4b314b],
[0xa321e15d, 0xfefedffe],
[0x8216aed5, 0x57574157],
[0xa8412abd, 0x15155415],
[0x9fb6eee8, 0x7777c177],
[0xa5eb6e92, 0x3737dc37],
[0x7b56d79e, 0xe5e5b3e5],
[0x8cd92313, 0x9f9f469f],
[0xd317fd23, 0xf0f0e7f0],
[0x6a7f9420, 0x4a4a354a],
[0x9e95a944, 0xdada4fda],
[0xfa25b0a2, 0x58587d58],
[0x06ca8fcf, 0xc9c903c9],
[0x558d527c, 0x2929a429],
[0x5022145a, 0x0a0a280a],
[0xe14f7f50, 0xb1b1feb1],
[0x691a5dc9, 0xa0a0baa0],
[0x7fdad614, 0x6b6bb16b],
[0x5cab17d9, 0x85852e85],
[0x8173673c, 0xbdbdcebd],
[0xd234ba8f, 0x5d5d695d],
[0x80502090, 0x10104010],
[0xf303f507, 0xf4f4f7f4],
[0x16c08bdd, 0xcbcb0bcb],
[0xedc67cd3, 0x3e3ef83e],
[0x28110a2d, 0x05051405],
[0x1fe6ce78, 0x67678167],
[0x7353d597, 0xe4e4b7e4],
[0x25bb4e02, 0x27279c27],
[0x32588273, 0x41411941],
[0x2c9d0ba7, 0x8b8b168b],
[0x510153f6, 0xa7a7a6a7],
[0xcf94fab2, 0x7d7de97d],
[0xdcfb3749, 0x95956e95],
[0x8e9fad56, 0xd8d847d8],
[0x8b30eb70, 0xfbfbcbfb],
[0x2371c1cd, 0xeeee9fee],
[0xc791f8bb, 0x7c7ced7c],
[0x17e3cc71, 0x66668566],
[0xa68ea77b, 0xdddd53dd],
[0xb84b2eaf, 0x17175c17],
[0x02468e45, 0x47470147],
[0x84dc211a, 0x9e9e429e],
[0x1ec589d4, 0xcaca0fca],
[0x75995a58, 0x2d2db42d],
[0x9179632e, 0xbfbfc6bf],
[0x381b0e3f, 0x07071c07],
[0x012347ac, 0xadad8ead],
[0xea2fb4b0, 0x5a5a755a],
[0x6cb51bef, 0x83833683],
[0x85ff66b6, 0x3333cc33],
[0x3ff2c65c, 0x63639163],
[0x100a0412, 0x02020802],
[0x39384993, 0xaaaa92aa],
[0xafa8e2de, 0x7171d971],
[0x0ecf8dc6, 0xc8c807c8],
[0xc87d32d1, 0x19196419],
[0x7270923b, 0x49493949],
[0x869aaf5f, 0xd9d943d9],
[0xc31df931, 0xf2f2eff2],
[0x4b48dba8, 0xe3e3abe3],
[0xe22ab6b9, 0x5b5b715b],
[0x34920dbc, 0x88881a88],
[0xa4c8293e, 0x9a9a529a],
[0x2dbe4c0b, 0x26269826],
[0x8dfa64bf, 0x3232c832],
[0xe94a7d59, 0xb0b0fab0],
[0x1b6acff2, 0xe9e983e9],
[0x78331e77, 0x0f0f3c0f],
[0xe6a6b733, 0xd5d573d5],
[0x74ba1df4, 0x80803a80],
[0x997c6127, 0xbebec2be],
[0x26de87eb, 0xcdcd13cd],
[0xbde46889, 0x3434d034],
[0x7a759032, 0x48483d48],
[0xab24e354, 0xffffdbff],
[0xf78ff48d, 0x7a7af57a],
[0xf4ea3d64, 0x90907a90],
[0xc23ebe9d, 0x5f5f615f],
[0x1da0403d, 0x20208020],
[0x67d5d00f, 0x6868bd68],
[0xd07234ca, 0x1a1a681a],
[0x192c41b7, 0xaeae82ae],
[0xc95e757d, 0xb4b4eab4],
[0x9a19a8ce, 0x54544d54],
[0xece53b7f, 0x93937693],
[0x0daa442f, 0x22228822],
[0x07e9c863, 0x64648d64],
[0xdb12ff2a, 0xf1f1e3f1],
[0xbfa2e6cc, 0x7373d173],
[0x905a2482, 0x12124812],
[0x3a5d807a, 0x40401d40],
[0x40281048, 0x08082008],
[0x56e89b95, 0xc3c32bc3],
[0x337bc5df, 0xecec97ec],
[0x9690ab4d, 0xdbdb4bdb],
[0x611f5fc0, 0xa1a1bea1],
[0x1c830791, 0x8d8d0e8d],
[0xf5c97ac8, 0x3d3df43d],
[0xccf1335b, 0x97976697],
[0x00000000, 0x00000000],
[0x36d483f9, 0xcfcf1bcf],
[0x4587566e, 0x2b2bac2b],
[0x97b3ece1, 0x7676c576],
[0x64b019e6, 0x82823282],
[0xfea9b128, 0xd6d67fd6],
[0xd87736c3, 0x1b1b6c1b],
[0xc15b7774, 0xb5b5eeb5],
[0x112943be, 0xafaf86af],
[0x77dfd41d, 0x6a6ab56a],
[0xba0da0ea, 0x50505d50],
[0x124c8a57, 0x45450945],
[0xcb18fb38, 0xf3f3ebf3],
[0x9df060ad, 0x3030c030],
[0x2b74c3c4, 0xefef9bef],
[0xe5c37eda, 0x3f3ffc3f],
[0x921caac7, 0x55554955],
[0x791059db, 0xa2a2b2a2],
[0x0365c9e9, 0xeaea8fea],
[0x0fecca6a, 0x65658965],
[0xb9686903, 0xbabad2ba],
[0x65935e4a, 0x2f2fbc2f],
[0x4ee79d8e, 0xc0c027c0],
[0xbe81a160, 0xdede5fde],
[0xe06c38fc, 0x1c1c701c],
[0xbb2ee746, 0xfdfdd3fd],
[0x52649a1f, 0x4d4d294d],
[0xe4e03976, 0x92927292],
[0x8fbceafa, 0x7575c975],
[0x301e0c36, 0x06061806],
[0x249809ae, 0x8a8a128a],
[0xf940794b, 0xb2b2f2b2],
[0x6359d185, 0xe6e6bfe6],
[0x70361c7e, 0x0e0e380e],
[0xf8633ee7, 0x1f1f7c1f],
[0x37f7c455, 0x62629562],
[0xeea3b53a, 0xd4d477d4],
[0x29324d81, 0xa8a89aa8],
[0xc4f43152, 0x96966296],
[0x9b3aef62, 0xf9f9c3f9],
[0x66f697a3, 0xc5c533c5],
[0x35b14a10, 0x25259425],
[0xf220b2ab, 0x59597959],
[0x54ae15d0, 0x84842a84],
[0xb7a7e4c5, 0x7272d572],
[0xd5dd72ec, 0x3939e439],
[0x5a619816, 0x4c4c2d4c],
[0xca3bbc94, 0x5e5e655e],
[0xe785f09f, 0x7878fd78],
[0xddd870e5, 0x3838e038],
[0x14860598, 0x8c8c0a8c],
[0xc6b2bf17, 0xd1d163d1],
[0x410b57e4, 0xa5a5aea5],
[0x434dd9a1, 0xe2e2afe2],
[0x2ff8c24e, 0x61619961],
[0xf1457b42, 0xb3b3f6b3],
[0x15a54234, 0x21218421],
[0x94d62508, 0x9c9c4a9c],
[0xf0663cee, 0x1e1e781e],
[0x22528661, 0x43431143],
[0x76fc93b1, 0xc7c73bc7],
[0xb32be54f, 0xfcfcd7fc],
[0x20140824, 0x04041004],
[0xb208a2e3, 0x51515951],
[0xbcc72f25, 0x99995e99],
[0x4fc4da22, 0x6d6da96d],
[0x68391a65, 0x0d0d340d],
[0x8335e979, 0xfafacffa],
[0xb684a369, 0xdfdf5bdf],
[0xd79bfca9, 0x7e7ee57e],
[0x3db44819, 0x24249024],
[0xc5d776fe, 0x3b3bec3b],
[0x313d4b9a, 0xabab96ab],
[0x3ed181f0, 0xcece1fce],
[0x88552299, 0x11114411],
[0x0c890383, 0x8f8f068f],
[0x4a6b9c04, 0x4e4e254e],
[0xd1517366, 0xb7b7e6b7],
[0x0b60cbe0, 0xebeb8beb],
[0xfdcc78c1, 0x3c3cf03c],
[0x7cbf1ffd, 0x81813e81],
[0xd4fe3540, 0x94946a94],
[0xeb0cf31c, 0xf7f7fbf7],
[0xa1676f18, 0xb9b9deb9],
[0x985f268b, 0x13134c13],
[0x7d9c5851, 0x2c2cb02c],
[0xd6b8bb05, 0xd3d36bd3],
[0x6b5cd38c, 0xe7e7bbe7],
[0x57cbdc39, 0x6e6ea56e],
[0x6ef395aa, 0xc4c437c4],
[0x180f061b, 0x03030c03],
[0x8a13acdc, 0x56564556],
[0x1a49885e, 0x44440d44],
[0xdf9efea0, 0x7f7fe17f],
[0x21374f88, 0xa9a99ea9],
[0x4d825467, 0x2a2aa82a],
[0xb16d6b0a, 0xbbbbd6bb],
[0x46e29f87, 0xc1c123c1],
[0xa202a6f1, 0x53535153],
[0xae8ba572, 0xdcdc57dc],
[0x58271653, 0x0b0b2c0b],
[0x9cd32701, 0x9d9d4e9d],
[0x47c1d82b, 0x6c6cad6c],
[0x95f562a4, 0x3131c431],
[0x87b9e8f3, 0x7474cd74],
[0xe309f115, 0xf6f6fff6],
[0x0a438c4c, 0x46460546],
[0x092645a5, 0xacac8aac],
[0x3c970fb5, 0x89891e89],
[0xa04428b4, 0x14145014],
[0x5b42dfba, 0xe1e1a3e1],
[0xb04e2ca6, 0x16165816],
[0xcdd274f7, 0x3a3ae83a],
[0x6fd0d206, 0x6969b969],
[0x482d1241, 0x09092409],
[0xa7ade0d7, 0x7070dd70],
[0xd954716f, 0xb6b6e2b6],
[0xceb7bd1e, 0xd0d067d0],
[0x3b7ec7d6, 0xeded93ed],
[0x2edb85e2, 0xcccc17cc],
[0x2a578468, 0x42421542],
[0xb4c22d2c, 0x98985a98],
[0x490e55ed, 0xa4a4aaa4],
[0x5d885075, 0x2828a028],
[0xda31b886, 0x5c5c6d5c],
[0x933fed6b, 0xf8f8c7f8],
[0x44a411c2, 0x86862286]
]);
final _c5 = Register64List.from([
[0x18c07830, 0xd8181860],
[0x2305af46, 0x2623238c],
[0xc67ef991, 0xb8c6c63f],
[0xe8136fcd, 0xfbe8e887],
[0x874ca113, 0xcb878726],
[0xb8a9626d, 0x11b8b8da],
[0x01080502, 0x09010104],
[0x4f426e9e, 0x0d4f4f21],
[0x36adee6c, 0x9b3636d8],
[0xa6590451, 0xffa6a6a2],
[0xd2debdb9, 0x0cd2d26f],
[0xf5fb06f7, 0x0ef5f5f3],
[0x79ef80f2, 0x967979f9],
[0x6f5fcede, 0x306f6fa1],
[0x91fcef3f, 0x6d91917e],
[0x52aa07a4, 0xf8525255],
[0x6027fdc0, 0x4760609d],
[0xbc897665, 0x35bcbcca],
[0x9baccd2b, 0x379b9b56],
[0x8e048c01, 0x8a8e8e02],
[0xa371155b, 0xd2a3a3b6],
[0x0c603c18, 0x6c0c0c30],
[0x7bff8af6, 0x847b7bf1],
[0x35b5e16a, 0x803535d4],
[0x1de8693a, 0xf51d1d74],
[0xe05347dd, 0xb3e0e0a7],
[0xd7f6acb3, 0x21d7d77b],
[0xc25eed99, 0x9cc2c22f],
[0x2e6d965c, 0x432e2eb8],
[0x4b627a96, 0x294b4b31],
[0xfea321e1, 0x5dfefedf],
[0x578216ae, 0xd5575741],
[0x15a8412a, 0xbd151554],
[0x779fb6ee, 0xe87777c1],
[0x37a5eb6e, 0x923737dc],
[0xe57b56d7, 0x9ee5e5b3],
[0x9f8cd923, 0x139f9f46],
[0xf0d317fd, 0x23f0f0e7],
[0x4a6a7f94, 0x204a4a35],
[0xda9e95a9, 0x44dada4f],
[0x58fa25b0, 0xa258587d],
[0xc906ca8f, 0xcfc9c903],
[0x29558d52, 0x7c2929a4],
[0x0a502214, 0x5a0a0a28],
[0xb1e14f7f, 0x50b1b1fe],
[0xa0691a5d, 0xc9a0a0ba],
[0x6b7fdad6, 0x146b6bb1],
[0x855cab17, 0xd985852e],
[0xbd817367, 0x3cbdbdce],
[0x5dd234ba, 0x8f5d5d69],
[0x10805020, 0x90101040],
[0xf4f303f5, 0x07f4f4f7],
[0xcb16c08b, 0xddcbcb0b],
[0x3eedc67c, 0xd33e3ef8],
[0x0528110a, 0x2d050514],
[0x671fe6ce, 0x78676781],
[0xe47353d5, 0x97e4e4b7],
[0x2725bb4e, 0x0227279c],
[0x41325882, 0x73414119],
[0x8b2c9d0b, 0xa78b8b16],
[0xa7510153, 0xf6a7a7a6],
[0x7dcf94fa, 0xb27d7de9],
[0x95dcfb37, 0x4995956e],
[0xd88e9fad, 0x56d8d847],
[0xfb8b30eb, 0x70fbfbcb],
[0xee2371c1, 0xcdeeee9f],
[0x7cc791f8, 0xbb7c7ced],
[0x6617e3cc, 0x71666685],
[0xdda68ea7, 0x7bdddd53],
[0x17b84b2e, 0xaf17175c],
[0x4702468e, 0x45474701],
[0x9e84dc21, 0x1a9e9e42],
[0xca1ec589, 0xd4caca0f],
[0x2d75995a, 0x582d2db4],
[0xbf917963, 0x2ebfbfc6],
[0x07381b0e, 0x3f07071c],
[0xad012347, 0xacadad8e],
[0x5aea2fb4, 0xb05a5a75],
[0x836cb51b, 0xef838336],
[0x3385ff66, 0xb63333cc],
[0x633ff2c6, 0x5c636391],
[0x02100a04, 0x12020208],
[0xaa393849, 0x93aaaa92],
[0x71afa8e2, 0xde7171d9],
[0xc80ecf8d, 0xc6c8c807],
[0x19c87d32, 0xd1191964],
[0x49727092, 0x3b494939],
[0xd9869aaf, 0x5fd9d943],
[0xf2c31df9, 0x31f2f2ef],
[0xe34b48db, 0xa8e3e3ab],
[0x5be22ab6, 0xb95b5b71],
[0x8834920d, 0xbc88881a],
[0x9aa4c829, 0x3e9a9a52],
[0x262dbe4c, 0x0b262698],
[0x328dfa64, 0xbf3232c8],
[0xb0e94a7d, 0x59b0b0fa],
[0xe91b6acf, 0xf2e9e983],
[0x0f78331e, 0x770f0f3c],
[0xd5e6a6b7, 0x33d5d573],
[0x8074ba1d, 0xf480803a],
[0xbe997c61, 0x27bebec2],
[0xcd26de87, 0xebcdcd13],
[0x34bde468, 0x893434d0],
[0x487a7590, 0x3248483d],
[0xffab24e3, 0x54ffffdb],
[0x7af78ff4, 0x8d7a7af5],
[0x90f4ea3d, 0x6490907a],
[0x5fc23ebe, 0x9d5f5f61],
[0x201da040, 0x3d202080],
[0x6867d5d0, 0x0f6868bd],
[0x1ad07234, 0xca1a1a68],
[0xae192c41, 0xb7aeae82],
[0xb4c95e75, 0x7db4b4ea],
[0x549a19a8, 0xce54544d],
[0x93ece53b, 0x7f939376],
[0x220daa44, 0x2f222288],
[0x6407e9c8, 0x6364648d],
[0xf1db12ff, 0x2af1f1e3],
[0x73bfa2e6, 0xcc7373d1],
[0x12905a24, 0x82121248],
[0x403a5d80, 0x7a40401d],
[0x08402810, 0x48080820],
[0xc356e89b, 0x95c3c32b],
[0xec337bc5, 0xdfecec97],
[0xdb9690ab, 0x4ddbdb4b],
[0xa1611f5f, 0xc0a1a1be],
[0x8d1c8307, 0x918d8d0e],
[0x3df5c97a, 0xc83d3df4],
[0x97ccf133, 0x5b979766],
[0x00000000, 0x00000000],
[0xcf36d483, 0xf9cfcf1b],
[0x2b458756, 0x6e2b2bac],
[0x7697b3ec, 0xe17676c5],
[0x8264b019, 0xe6828232],
[0xd6fea9b1, 0x28d6d67f],
[0x1bd87736, 0xc31b1b6c],
[0xb5c15b77, 0x74b5b5ee],
[0xaf112943, 0xbeafaf86],
[0x6a77dfd4, 0x1d6a6ab5],
[0x50ba0da0, 0xea50505d],
[0x45124c8a, 0x57454509],
[0xf3cb18fb, 0x38f3f3eb],
[0x309df060, 0xad3030c0],
[0xef2b74c3, 0xc4efef9b],
[0x3fe5c37e, 0xda3f3ffc],
[0x55921caa, 0xc7555549],
[0xa2791059, 0xdba2a2b2],
[0xea0365c9, 0xe9eaea8f],
[0x650fecca, 0x6a656589],
[0xbab96869, 0x03babad2],
[0x2f65935e, 0x4a2f2fbc],
[0xc04ee79d, 0x8ec0c027],
[0xdebe81a1, 0x60dede5f],
[0x1ce06c38, 0xfc1c1c70],
[0xfdbb2ee7, 0x46fdfdd3],
[0x4d52649a, 0x1f4d4d29],
[0x92e4e039, 0x76929272],
[0x758fbcea, 0xfa7575c9],
[0x06301e0c, 0x36060618],
[0x8a249809, 0xae8a8a12],
[0xb2f94079, 0x4bb2b2f2],
[0xe66359d1, 0x85e6e6bf],
[0x0e70361c, 0x7e0e0e38],
[0x1ff8633e, 0xe71f1f7c],
[0x6237f7c4, 0x55626295],
[0xd4eea3b5, 0x3ad4d477],
[0xa829324d, 0x81a8a89a],
[0x96c4f431, 0x52969662],
[0xf99b3aef, 0x62f9f9c3],
[0xc566f697, 0xa3c5c533],
[0x2535b14a, 0x10252594],
[0x59f220b2, 0xab595979],
[0x8454ae15, 0xd084842a],
[0x72b7a7e4, 0xc57272d5],
[0x39d5dd72, 0xec3939e4],
[0x4c5a6198, 0x164c4c2d],
[0x5eca3bbc, 0x945e5e65],
[0x78e785f0, 0x9f7878fd],
[0x38ddd870, 0xe53838e0],
[0x8c148605, 0x988c8c0a],
[0xd1c6b2bf, 0x17d1d163],
[0xa5410b57, 0xe4a5a5ae],
[0xe2434dd9, 0xa1e2e2af],
[0x612ff8c2, 0x4e616199],
[0xb3f1457b, 0x42b3b3f6],
[0x2115a542, 0x34212184],
[0x9c94d625, 0x089c9c4a],
[0x1ef0663c, 0xee1e1e78],
[0x43225286, 0x61434311],
[0xc776fc93, 0xb1c7c73b],
[0xfcb32be5, 0x4ffcfcd7],
[0x04201408, 0x24040410],
[0x51b208a2, 0xe3515159],
[0x99bcc72f, 0x2599995e],
[0x6d4fc4da, 0x226d6da9],
[0x0d68391a, 0x650d0d34],
[0xfa8335e9, 0x79fafacf],
[0xdfb684a3, 0x69dfdf5b],
[0x7ed79bfc, 0xa97e7ee5],
[0x243db448, 0x19242490],
[0x3bc5d776, 0xfe3b3bec],
[0xab313d4b, 0x9aabab96],
[0xce3ed181, 0xf0cece1f],
[0x11885522, 0x99111144],
[0x8f0c8903, 0x838f8f06],
[0x4e4a6b9c, 0x044e4e25],
[0xb7d15173, 0x66b7b7e6],
[0xeb0b60cb, 0xe0ebeb8b],
[0x3cfdcc78, 0xc13c3cf0],
[0x817cbf1f, 0xfd81813e],
[0x94d4fe35, 0x4094946a],
[0xf7eb0cf3, 0x1cf7f7fb],
[0xb9a1676f, 0x18b9b9de],
[0x13985f26, 0x8b13134c],
[0x2c7d9c58, 0x512c2cb0],
[0xd3d6b8bb, 0x05d3d36b],
[0xe76b5cd3, 0x8ce7e7bb],
[0x6e57cbdc, 0x396e6ea5],
[0xc46ef395, 0xaac4c437],
[0x03180f06, 0x1b03030c],
[0x568a13ac, 0xdc565645],
[0x441a4988, 0x5e44440d],
[0x7fdf9efe, 0xa07f7fe1],
[0xa921374f, 0x88a9a99e],
[0x2a4d8254, 0x672a2aa8],
[0xbbb16d6b, 0x0abbbbd6],
[0xc146e29f, 0x87c1c123],
[0x53a202a6, 0xf1535351],
[0xdcae8ba5, 0x72dcdc57],
[0x0b582716, 0x530b0b2c],
[0x9d9cd327, 0x019d9d4e],
[0x6c47c1d8, 0x2b6c6cad],
[0x3195f562, 0xa43131c4],
[0x7487b9e8, 0xf37474cd],
[0xf6e309f1, 0x15f6f6ff],
[0x460a438c, 0x4c464605],
[0xac092645, 0xa5acac8a],
[0x893c970f, 0xb589891e],
[0x14a04428, 0xb4141450],
[0xe15b42df, 0xbae1e1a3],
[0x16b04e2c, 0xa6161658],
[0x3acdd274, 0xf73a3ae8],
[0x696fd0d2, 0x066969b9],
[0x09482d12, 0x41090924],
[0x70a7ade0, 0xd77070dd],
[0xb6d95471, 0x6fb6b6e2],
[0xd0ceb7bd, 0x1ed0d067],
[0xed3b7ec7, 0xd6eded93],
[0xcc2edb85, 0xe2cccc17],
[0x422a5784, 0x68424215],
[0x98b4c22d, 0x2c98985a],
[0xa4490e55, 0xeda4a4aa],
[0x285d8850, 0x752828a0],
[0x5cda31b8, 0x865c5c6d],
[0xf8933fed, 0x6bf8f8c7],
[0x8644a411, 0xc2868622]
]);
final _c6 = Register64List.from([
[0x6018c078, 0x30d81818],
[0x8c2305af, 0x46262323],
[0x3fc67ef9, 0x91b8c6c6],
[0x87e8136f, 0xcdfbe8e8],
[0x26874ca1, 0x13cb8787],
[0xdab8a962, 0x6d11b8b8],
[0x04010805, 0x02090101],
[0x214f426e, 0x9e0d4f4f],
[0xd836adee, 0x6c9b3636],
[0xa2a65904, 0x51ffa6a6],
[0x6fd2debd, 0xb90cd2d2],
[0xf3f5fb06, 0xf70ef5f5],
[0xf979ef80, 0xf2967979],
[0xa16f5fce, 0xde306f6f],
[0x7e91fcef, 0x3f6d9191],
[0x5552aa07, 0xa4f85252],
[0x9d6027fd, 0xc0476060],
[0xcabc8976, 0x6535bcbc],
[0x569baccd, 0x2b379b9b],
[0x028e048c, 0x018a8e8e],
[0xb6a37115, 0x5bd2a3a3],
[0x300c603c, 0x186c0c0c],
[0xf17bff8a, 0xf6847b7b],
[0xd435b5e1, 0x6a803535],
[0x741de869, 0x3af51d1d],
[0xa7e05347, 0xddb3e0e0],
[0x7bd7f6ac, 0xb321d7d7],
[0x2fc25eed, 0x999cc2c2],
[0xb82e6d96, 0x5c432e2e],
[0x314b627a, 0x96294b4b],
[0xdffea321, 0xe15dfefe],
[0x41578216, 0xaed55757],
[0x5415a841, 0x2abd1515],
[0xc1779fb6, 0xeee87777],
[0xdc37a5eb, 0x6e923737],
[0xb3e57b56, 0xd79ee5e5],
[0x469f8cd9, 0x23139f9f],
[0xe7f0d317, 0xfd23f0f0],
[0x354a6a7f, 0x94204a4a],
[0x4fda9e95, 0xa944dada],
[0x7d58fa25, 0xb0a25858],
[0x03c906ca, 0x8fcfc9c9],
[0xa429558d, 0x527c2929],
[0x280a5022, 0x145a0a0a],
[0xfeb1e14f, 0x7f50b1b1],
[0xbaa0691a, 0x5dc9a0a0],
[0xb16b7fda, 0xd6146b6b],
[0x2e855cab, 0x17d98585],
[0xcebd8173, 0x673cbdbd],
[0x695dd234, 0xba8f5d5d],
[0x40108050, 0x20901010],
[0xf7f4f303, 0xf507f4f4],
[0x0bcb16c0, 0x8bddcbcb],
[0xf83eedc6, 0x7cd33e3e],
[0x14052811, 0x0a2d0505],
[0x81671fe6, 0xce786767],
[0xb7e47353, 0xd597e4e4],
[0x9c2725bb, 0x4e022727],
[0x19413258, 0x82734141],
[0x168b2c9d, 0x0ba78b8b],
[0xa6a75101, 0x53f6a7a7],
[0xe97dcf94, 0xfab27d7d],
[0x6e95dcfb, 0x37499595],
[0x47d88e9f, 0xad56d8d8],
[0xcbfb8b30, 0xeb70fbfb],
[0x9fee2371, 0xc1cdeeee],
[0xed7cc791, 0xf8bb7c7c],
[0x856617e3, 0xcc716666],
[0x53dda68e, 0xa77bdddd],
[0x5c17b84b, 0x2eaf1717],
[0x01470246, 0x8e454747],
[0x429e84dc, 0x211a9e9e],
[0x0fca1ec5, 0x89d4caca],
[0xb42d7599, 0x5a582d2d],
[0xc6bf9179, 0x632ebfbf],
[0x1c07381b, 0x0e3f0707],
[0x8ead0123, 0x47acadad],
[0x755aea2f, 0xb4b05a5a],
[0x36836cb5, 0x1bef8383],
[0xcc3385ff, 0x66b63333],
[0x91633ff2, 0xc65c6363],
[0x0802100a, 0x04120202],
[0x92aa3938, 0x4993aaaa],
[0xd971afa8, 0xe2de7171],
[0x07c80ecf, 0x8dc6c8c8],
[0x6419c87d, 0x32d11919],
[0x39497270, 0x923b4949],
[0x43d9869a, 0xaf5fd9d9],
[0xeff2c31d, 0xf931f2f2],
[0xabe34b48, 0xdba8e3e3],
[0x715be22a, 0xb6b95b5b],
[0x1a883492, 0x0dbc8888],
[0x529aa4c8, 0x293e9a9a],
[0x98262dbe, 0x4c0b2626],
[0xc8328dfa, 0x64bf3232],
[0xfab0e94a, 0x7d59b0b0],
[0x83e91b6a, 0xcff2e9e9],
[0x3c0f7833, 0x1e770f0f],
[0x73d5e6a6, 0xb733d5d5],
[0x3a8074ba, 0x1df48080],
[0xc2be997c, 0x6127bebe],
[0x13cd26de, 0x87ebcdcd],
[0xd034bde4, 0x68893434],
[0x3d487a75, 0x90324848],
[0xdbffab24, 0xe354ffff],
[0xf57af78f, 0xf48d7a7a],
[0x7a90f4ea, 0x3d649090],
[0x615fc23e, 0xbe9d5f5f],
[0x80201da0, 0x403d2020],
[0xbd6867d5, 0xd00f6868],
[0x681ad072, 0x34ca1a1a],
[0x82ae192c, 0x41b7aeae],
[0xeab4c95e, 0x757db4b4],
[0x4d549a19, 0xa8ce5454],
[0x7693ece5, 0x3b7f9393],
[0x88220daa, 0x442f2222],
[0x8d6407e9, 0xc8636464],
[0xe3f1db12, 0xff2af1f1],
[0xd173bfa2, 0xe6cc7373],
[0x4812905a, 0x24821212],
[0x1d403a5d, 0x807a4040],
[0x20084028, 0x10480808],
[0x2bc356e8, 0x9b95c3c3],
[0x97ec337b, 0xc5dfecec],
[0x4bdb9690, 0xab4ddbdb],
[0xbea1611f, 0x5fc0a1a1],
[0x0e8d1c83, 0x07918d8d],
[0xf43df5c9, 0x7ac83d3d],
[0x6697ccf1, 0x335b9797],
[0x00000000, 0x00000000],
[0x1bcf36d4, 0x83f9cfcf],
[0xac2b4587, 0x566e2b2b],
[0xc57697b3, 0xece17676],
[0x328264b0, 0x19e68282],
[0x7fd6fea9, 0xb128d6d6],
[0x6c1bd877, 0x36c31b1b],
[0xeeb5c15b, 0x7774b5b5],
[0x86af1129, 0x43beafaf],
[0xb56a77df, 0xd41d6a6a],
[0x5d50ba0d, 0xa0ea5050],
[0x0945124c, 0x8a574545],
[0xebf3cb18, 0xfb38f3f3],
[0xc0309df0, 0x60ad3030],
[0x9bef2b74, 0xc3c4efef],
[0xfc3fe5c3, 0x7eda3f3f],
[0x4955921c, 0xaac75555],
[0xb2a27910, 0x59dba2a2],
[0x8fea0365, 0xc9e9eaea],
[0x89650fec, 0xca6a6565],
[0xd2bab968, 0x6903baba],
[0xbc2f6593, 0x5e4a2f2f],
[0x27c04ee7, 0x9d8ec0c0],
[0x5fdebe81, 0xa160dede],
[0x701ce06c, 0x38fc1c1c],
[0xd3fdbb2e, 0xe746fdfd],
[0x294d5264, 0x9a1f4d4d],
[0x7292e4e0, 0x39769292],
[0xc9758fbc, 0xeafa7575],
[0x1806301e, 0x0c360606],
[0x128a2498, 0x09ae8a8a],
[0xf2b2f940, 0x794bb2b2],
[0xbfe66359, 0xd185e6e6],
[0x380e7036, 0x1c7e0e0e],
[0x7c1ff863, 0x3ee71f1f],
[0x956237f7, 0xc4556262],
[0x77d4eea3, 0xb53ad4d4],
[0x9aa82932, 0x4d81a8a8],
[0x6296c4f4, 0x31529696],
[0xc3f99b3a, 0xef62f9f9],
[0x33c566f6, 0x97a3c5c5],
[0x942535b1, 0x4a102525],
[0x7959f220, 0xb2ab5959],
[0x2a8454ae, 0x15d08484],
[0xd572b7a7, 0xe4c57272],
[0xe439d5dd, 0x72ec3939],
[0x2d4c5a61, 0x98164c4c],
[0x655eca3b, 0xbc945e5e],
[0xfd78e785, 0xf09f7878],
[0xe038ddd8, 0x70e53838],
[0x0a8c1486, 0x05988c8c],
[0x63d1c6b2, 0xbf17d1d1],
[0xaea5410b, 0x57e4a5a5],
[0xafe2434d, 0xd9a1e2e2],
[0x99612ff8, 0xc24e6161],
[0xf6b3f145, 0x7b42b3b3],
[0x842115a5, 0x42342121],
[0x4a9c94d6, 0x25089c9c],
[0x781ef066, 0x3cee1e1e],
[0x11432252, 0x86614343],
[0x3bc776fc, 0x93b1c7c7],
[0xd7fcb32b, 0xe54ffcfc],
[0x10042014, 0x08240404],
[0x5951b208, 0xa2e35151],
[0x5e99bcc7, 0x2f259999],
[0xa96d4fc4, 0xda226d6d],
[0x340d6839, 0x1a650d0d],
[0xcffa8335, 0xe979fafa],
[0x5bdfb684, 0xa369dfdf],
[0xe57ed79b, 0xfca97e7e],
[0x90243db4, 0x48192424],
[0xec3bc5d7, 0x76fe3b3b],
[0x96ab313d, 0x4b9aabab],
[0x1fce3ed1, 0x81f0cece],
[0x44118855, 0x22991111],
[0x068f0c89, 0x03838f8f],
[0x254e4a6b, 0x9c044e4e],
[0xe6b7d151, 0x7366b7b7],
[0x8beb0b60, 0xcbe0ebeb],
[0xf03cfdcc, 0x78c13c3c],
[0x3e817cbf, 0x1ffd8181],
[0x6a94d4fe, 0x35409494],
[0xfbf7eb0c, 0xf31cf7f7],
[0xdeb9a167, 0x6f18b9b9],
[0x4c13985f, 0x268b1313],
[0xb02c7d9c, 0x58512c2c],
[0x6bd3d6b8, 0xbb05d3d3],
[0xbbe76b5c, 0xd38ce7e7],
[0xa56e57cb, 0xdc396e6e],
[0x37c46ef3, 0x95aac4c4],
[0x0c03180f, 0x061b0303],
[0x45568a13, 0xacdc5656],
[0x0d441a49, 0x885e4444],
[0xe17fdf9e, 0xfea07f7f],
[0x9ea92137, 0x4f88a9a9],
[0xa82a4d82, 0x54672a2a],
[0xd6bbb16d, 0x6b0abbbb],
[0x23c146e2, 0x9f87c1c1],
[0x5153a202, 0xa6f15353],
[0x57dcae8b, 0xa572dcdc],
[0x2c0b5827, 0x16530b0b],
[0x4e9d9cd3, 0x27019d9d],
[0xad6c47c1, 0xd82b6c6c],
[0xc43195f5, 0x62a43131],
[0xcd7487b9, 0xe8f37474],
[0xfff6e309, 0xf115f6f6],
[0x05460a43, 0x8c4c4646],
[0x8aac0926, 0x45a5acac],
[0x1e893c97, 0x0fb58989],
[0x5014a044, 0x28b41414],
[0xa3e15b42, 0xdfbae1e1],
[0x5816b04e, 0x2ca61616],
[0xe83acdd2, 0x74f73a3a],
[0xb9696fd0, 0xd2066969],
[0x2409482d, 0x12410909],
[0xdd70a7ad, 0xe0d77070],
[0xe2b6d954, 0x716fb6b6],
[0x67d0ceb7, 0xbd1ed0d0],
[0x93ed3b7e, 0xc7d6eded],
[0x17cc2edb, 0x85e2cccc],
[0x15422a57, 0x84684242],
[0x5a98b4c2, 0x2d2c9898],
[0xaaa4490e, 0x55eda4a4],
[0xa0285d88, 0x50752828],
[0x6d5cda31, 0xb8865c5c],
[0xc7f8933f, 0xed6bf8f8],
[0x228644a4, 0x11c28686]
]);
final _c7 = Register64List.from([
[0x186018c0, 0x7830d818],
[0x238c2305, 0xaf462623],
[0xc63fc67e, 0xf991b8c6],
[0xe887e813, 0x6fcdfbe8],
[0x8726874c, 0xa113cb87],
[0xb8dab8a9, 0x626d11b8],
[0x01040108, 0x05020901],
[0x4f214f42, 0x6e9e0d4f],
[0x36d836ad, 0xee6c9b36],
[0xa6a2a659, 0x0451ffa6],
[0xd26fd2de, 0xbdb90cd2],
[0xf5f3f5fb, 0x06f70ef5],
[0x79f979ef, 0x80f29679],
[0x6fa16f5f, 0xcede306f],
[0x917e91fc, 0xef3f6d91],
[0x525552aa, 0x07a4f852],
[0x609d6027, 0xfdc04760],
[0xbccabc89, 0x766535bc],
[0x9b569bac, 0xcd2b379b],
[0x8e028e04, 0x8c018a8e],
[0xa3b6a371, 0x155bd2a3],
[0x0c300c60, 0x3c186c0c],
[0x7bf17bff, 0x8af6847b],
[0x35d435b5, 0xe16a8035],
[0x1d741de8, 0x693af51d],
[0xe0a7e053, 0x47ddb3e0],
[0xd77bd7f6, 0xacb321d7],
[0xc22fc25e, 0xed999cc2],
[0x2eb82e6d, 0x965c432e],
[0x4b314b62, 0x7a96294b],
[0xfedffea3, 0x21e15dfe],
[0x57415782, 0x16aed557],
[0x155415a8, 0x412abd15],
[0x77c1779f, 0xb6eee877],
[0x37dc37a5, 0xeb6e9237],
[0xe5b3e57b, 0x56d79ee5],
[0x9f469f8c, 0xd923139f],
[0xf0e7f0d3, 0x17fd23f0],
[0x4a354a6a, 0x7f94204a],
[0xda4fda9e, 0x95a944da],
[0x587d58fa, 0x25b0a258],
[0xc903c906, 0xca8fcfc9],
[0x29a42955, 0x8d527c29],
[0x0a280a50, 0x22145a0a],
[0xb1feb1e1, 0x4f7f50b1],
[0xa0baa069, 0x1a5dc9a0],
[0x6bb16b7f, 0xdad6146b],
[0x852e855c, 0xab17d985],
[0xbdcebd81, 0x73673cbd],
[0x5d695dd2, 0x34ba8f5d],
[0x10401080, 0x50209010],
[0xf4f7f4f3, 0x03f507f4],
[0xcb0bcb16, 0xc08bddcb],
[0x3ef83eed, 0xc67cd33e],
[0x05140528, 0x110a2d05],
[0x6781671f, 0xe6ce7867],
[0xe4b7e473, 0x53d597e4],
[0x279c2725, 0xbb4e0227],
[0x41194132, 0x58827341],
[0x8b168b2c, 0x9d0ba78b],
[0xa7a6a751, 0x0153f6a7],
[0x7de97dcf, 0x94fab27d],
[0x956e95dc, 0xfb374995],
[0xd847d88e, 0x9fad56d8],
[0xfbcbfb8b, 0x30eb70fb],
[0xee9fee23, 0x71c1cdee],
[0x7ced7cc7, 0x91f8bb7c],
[0x66856617, 0xe3cc7166],
[0xdd53dda6, 0x8ea77bdd],
[0x175c17b8, 0x4b2eaf17],
[0x47014702, 0x468e4547],
[0x9e429e84, 0xdc211a9e],
[0xca0fca1e, 0xc589d4ca],
[0x2db42d75, 0x995a582d],
[0xbfc6bf91, 0x79632ebf],
[0x071c0738, 0x1b0e3f07],
[0xad8ead01, 0x2347acad],
[0x5a755aea, 0x2fb4b05a],
[0x8336836c, 0xb51bef83],
[0x33cc3385, 0xff66b633],
[0x6391633f, 0xf2c65c63],
[0x02080210, 0x0a041202],
[0xaa92aa39, 0x384993aa],
[0x71d971af, 0xa8e2de71],
[0xc807c80e, 0xcf8dc6c8],
[0x196419c8, 0x7d32d119],
[0x49394972, 0x70923b49],
[0xd943d986, 0x9aaf5fd9],
[0xf2eff2c3, 0x1df931f2],
[0xe3abe34b, 0x48dba8e3],
[0x5b715be2, 0x2ab6b95b],
[0x881a8834, 0x920dbc88],
[0x9a529aa4, 0xc8293e9a],
[0x2698262d, 0xbe4c0b26],
[0x32c8328d, 0xfa64bf32],
[0xb0fab0e9, 0x4a7d59b0],
[0xe983e91b, 0x6acff2e9],
[0x0f3c0f78, 0x331e770f],
[0xd573d5e6, 0xa6b733d5],
[0x803a8074, 0xba1df480],
[0xbec2be99, 0x7c6127be],
[0xcd13cd26, 0xde87ebcd],
[0x34d034bd, 0xe4688934],
[0x483d487a, 0x75903248],
[0xffdbffab, 0x24e354ff],
[0x7af57af7, 0x8ff48d7a],
[0x907a90f4, 0xea3d6490],
[0x5f615fc2, 0x3ebe9d5f],
[0x2080201d, 0xa0403d20],
[0x68bd6867, 0xd5d00f68],
[0x1a681ad0, 0x7234ca1a],
[0xae82ae19, 0x2c41b7ae],
[0xb4eab4c9, 0x5e757db4],
[0x544d549a, 0x19a8ce54],
[0x937693ec, 0xe53b7f93],
[0x2288220d, 0xaa442f22],
[0x648d6407, 0xe9c86364],
[0xf1e3f1db, 0x12ff2af1],
[0x73d173bf, 0xa2e6cc73],
[0x12481290, 0x5a248212],
[0x401d403a, 0x5d807a40],
[0x08200840, 0x28104808],
[0xc32bc356, 0xe89b95c3],
[0xec97ec33, 0x7bc5dfec],
[0xdb4bdb96, 0x90ab4ddb],
[0xa1bea161, 0x1f5fc0a1],
[0x8d0e8d1c, 0x8307918d],
[0x3df43df5, 0xc97ac83d],
[0x976697cc, 0xf1335b97],
[0x00000000, 0x00000000],
[0xcf1bcf36, 0xd483f9cf],
[0x2bac2b45, 0x87566e2b],
[0x76c57697, 0xb3ece176],
[0x82328264, 0xb019e682],
[0xd67fd6fe, 0xa9b128d6],
[0x1b6c1bd8, 0x7736c31b],
[0xb5eeb5c1, 0x5b7774b5],
[0xaf86af11, 0x2943beaf],
[0x6ab56a77, 0xdfd41d6a],
[0x505d50ba, 0x0da0ea50],
[0x45094512, 0x4c8a5745],
[0xf3ebf3cb, 0x18fb38f3],
[0x30c0309d, 0xf060ad30],
[0xef9bef2b, 0x74c3c4ef],
[0x3ffc3fe5, 0xc37eda3f],
[0x55495592, 0x1caac755],
[0xa2b2a279, 0x1059dba2],
[0xea8fea03, 0x65c9e9ea],
[0x6589650f, 0xecca6a65],
[0xbad2bab9, 0x686903ba],
[0x2fbc2f65, 0x935e4a2f],
[0xc027c04e, 0xe79d8ec0],
[0xde5fdebe, 0x81a160de],
[0x1c701ce0, 0x6c38fc1c],
[0xfdd3fdbb, 0x2ee746fd],
[0x4d294d52, 0x649a1f4d],
[0x927292e4, 0xe0397692],
[0x75c9758f, 0xbceafa75],
[0x06180630, 0x1e0c3606],
[0x8a128a24, 0x9809ae8a],
[0xb2f2b2f9, 0x40794bb2],
[0xe6bfe663, 0x59d185e6],
[0x0e380e70, 0x361c7e0e],
[0x1f7c1ff8, 0x633ee71f],
[0x62956237, 0xf7c45562],
[0xd477d4ee, 0xa3b53ad4],
[0xa89aa829, 0x324d81a8],
[0x966296c4, 0xf4315296],
[0xf9c3f99b, 0x3aef62f9],
[0xc533c566, 0xf697a3c5],
[0x25942535, 0xb14a1025],
[0x597959f2, 0x20b2ab59],
[0x842a8454, 0xae15d084],
[0x72d572b7, 0xa7e4c572],
[0x39e439d5, 0xdd72ec39],
[0x4c2d4c5a, 0x6198164c],
[0x5e655eca, 0x3bbc945e],
[0x78fd78e7, 0x85f09f78],
[0x38e038dd, 0xd870e538],
[0x8c0a8c14, 0x8605988c],
[0xd163d1c6, 0xb2bf17d1],
[0xa5aea541, 0x0b57e4a5],
[0xe2afe243, 0x4dd9a1e2],
[0x6199612f, 0xf8c24e61],
[0xb3f6b3f1, 0x457b42b3],
[0x21842115, 0xa5423421],
[0x9c4a9c94, 0xd625089c],
[0x1e781ef0, 0x663cee1e],
[0x43114322, 0x52866143],
[0xc73bc776, 0xfc93b1c7],
[0xfcd7fcb3, 0x2be54ffc],
[0x04100420, 0x14082404],
[0x515951b2, 0x08a2e351],
[0x995e99bc, 0xc72f2599],
[0x6da96d4f, 0xc4da226d],
[0x0d340d68, 0x391a650d],
[0xfacffa83, 0x35e979fa],
[0xdf5bdfb6, 0x84a369df],
[0x7ee57ed7, 0x9bfca97e],
[0x2490243d, 0xb4481924],
[0x3bec3bc5, 0xd776fe3b],
[0xab96ab31, 0x3d4b9aab],
[0xce1fce3e, 0xd181f0ce],
[0x11441188, 0x55229911],
[0x8f068f0c, 0x8903838f],
[0x4e254e4a, 0x6b9c044e],
[0xb7e6b7d1, 0x517366b7],
[0xeb8beb0b, 0x60cbe0eb],
[0x3cf03cfd, 0xcc78c13c],
[0x813e817c, 0xbf1ffd81],
[0x946a94d4, 0xfe354094],
[0xf7fbf7eb, 0x0cf31cf7],
[0xb9deb9a1, 0x676f18b9],
[0x134c1398, 0x5f268b13],
[0x2cb02c7d, 0x9c58512c],
[0xd36bd3d6, 0xb8bb05d3],
[0xe7bbe76b, 0x5cd38ce7],
[0x6ea56e57, 0xcbdc396e],
[0xc437c46e, 0xf395aac4],
[0x030c0318, 0x0f061b03],
[0x5645568a, 0x13acdc56],
[0x440d441a, 0x49885e44],
[0x7fe17fdf, 0x9efea07f],
[0xa99ea921, 0x374f88a9],
[0x2aa82a4d, 0x8254672a],
[0xbbd6bbb1, 0x6d6b0abb],
[0xc123c146, 0xe29f87c1],
[0x535153a2, 0x02a6f153],
[0xdc57dcae, 0x8ba572dc],
[0x0b2c0b58, 0x2716530b],
[0x9d4e9d9c, 0xd327019d],
[0x6cad6c47, 0xc1d82b6c],
[0x31c43195, 0xf562a431],
[0x74cd7487, 0xb9e8f374],
[0xf6fff6e3, 0x09f115f6],
[0x4605460a, 0x438c4c46],
[0xac8aac09, 0x2645a5ac],
[0x891e893c, 0x970fb589],
[0x145014a0, 0x4428b414],
[0xe1a3e15b, 0x42dfbae1],
[0x165816b0, 0x4e2ca616],
[0x3ae83acd, 0xd274f73a],
[0x69b9696f, 0xd0d20669],
[0x09240948, 0x2d124109],
[0x70dd70a7, 0xade0d770],
[0xb6e2b6d9, 0x54716fb6],
[0xd067d0ce, 0xb7bd1ed0],
[0xed93ed3b, 0x7ec7d6ed],
[0xcc17cc2e, 0xdb85e2cc],
[0x4215422a, 0x57846842],
[0x985a98b4, 0xc22d2c98],
[0xa4aaa449, 0x0e55eda4],
[0x28a0285d, 0x88507528],
[0x5c6d5cda, 0x31b8865c],
[0xf8c7f893, 0x3fed6bf8],
[0x86228644, 0xa411c286]
]);
final _rc = Register64List.from([
[0x00000000, 0x00000000],
[0x1823c6e8, 0x87b8014f],
[0x36a6d2f5, 0x796f9152],
[0x60bc9b8e, 0xa30c7b35],
[0x1de0d7c2, 0x2e4bfe57],
[0x157737e5, 0x9ff04ada],
[0x58c9290a, 0xb1a06b85],
[0xbd5d10f4, 0xcb3e0567],
[0xe427418b, 0xa77d95d8],
[0xfbee7c66, 0xdd17479e],
[0xca2dbf07, 0xad5a8333]
]);