1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-15 12:08:59 +00:00

add more precomputation to ecdsa signing

This commit is contained in:
Pavol Rusnak 2014-05-15 17:11:26 +02:00
parent 94d4a3733e
commit 06dd166a82
4 changed files with 614 additions and 77 deletions

130
bignum.c
View File

@ -303,14 +303,20 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
void bn_inverse(bignum256 *x, const bignum256 *prime)
{
int i, j, k, len1, len2, mask;
uint32_t u[9], v[9], s[10], r[10], temp, temp2;
uint8_t buf[32];
uint32_t u[8], v[8], s[9], r[10], temp32;
uint64_t temp, temp2;
bn_fast_mod(x, prime);
bn_mod(x, prime);
for (i = 0; i < 9; i++) {
u[i] = prime->val[i];
v[i] = x->val[i];
bn_write_be(prime, buf);
for (i = 0; i < 8; i++) {
u[i] = read_be(buf + 28 - i * 4);
}
len1 = 9;
bn_write_be(x, buf);
for (i = 0; i < 8; i++) {
v[i] = read_be(buf + 28 - i * 4);
}
len1 = 8;
s[0] = 1;
r[0] = 0;
len2 = 1;
@ -327,13 +333,13 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
if (i == 0) break;
mask = (1 << i) - 1;
for (j = 0; j + 1 < len1; j++) {
u[j] = (u[j] >> i) | ((u[j + 1] & mask) << (30 - i));
u[j] = (u[j] >> i) | ((u[j + 1] & mask) << (32 - i));
}
u[j] = (u[j] >> i);
mask = (1 << (30 - i)) - 1;
s[len2] = s[len2 - 1] >> (30 - i);
mask = (1 << (32 - i)) - 1;
s[len2] = s[len2 - 1] >> (32 - i);
for (j = len2 - 1; j > 0; j--) {
s[j] = (s[j - 1] >> (30 - i)) | ((s[j] & mask) << i);
s[j] = (s[j - 1] >> (32 - i)) | ((s[j] & mask) << i);
}
s[0] = (s[0] & mask) << i;
if (s[len2]) {
@ -349,13 +355,13 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
if (i == 0) break;
mask = (1 << i) - 1;
for (j = 0; j + 1 < len1; j++) {
v[j] = (v[j] >> i) | ((v[j + 1] & mask) << (30 - i));
v[j] = (v[j] >> i) | ((v[j + 1] & mask) << (32 - i));
}
v[j] = (v[j] >> i);
mask = (1 << (30 - i)) - 1;
r[len2] = r[len2 - 1] >> (30 - i);
mask = (1 << (32 - i)) - 1;
r[len2] = r[len2 - 1] >> (32 - i);
for (j = len2 - 1; j > 0; j--) {
r[j] = (r[j - 1] >> (30 - i)) | ((r[j] & mask) << i);
r[j] = (r[j - 1] >> (32 - i)) | ((r[j] & mask) << i);
}
r[0] = (r[0] & mask) << i;
if (r[len2]) {
@ -368,23 +374,25 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
i = len1 - 1;
while (i > 0 && u[i] == v[i]) i--;
if (u[i] > v[i]) {
temp = 0x40000000u + u[0] - v[0];
u[0] = (temp >> 1) & 0x1FFFFFFF;
temp >>= 30;
temp = 0x100000000ull + u[0] - v[0];
u[0] = (temp >> 1) & 0x7FFFFFFF;
temp >>= 32;
for (i = 1; i < len1; i++) {
temp += 0x3FFFFFFFu + u[i] - v[i];
u[i - 1] += (temp & 1) << 29;
u[i] = (temp >> 1) & 0x1FFFFFFF;
temp >>= 30;
temp += 0xFFFFFFFFull + u[i] - v[i];
u[i - 1] += (temp & 1) << 31;
u[i] = (temp >> 1) & 0x7FFFFFFF;
temp >>= 32;
}
temp = temp2 = 0;
for (i = 0; i < len2; i++) {
temp += s[i] + r[i];
temp2 += s[i] << 1;
r[i] = temp & 0x3FFFFFFF;
s[i] = temp2 & 0x3FFFFFFF;
temp >>= 30;
temp2 >>= 30;
temp += s[i];
temp += r[i];
temp2 += s[i];
temp2 += s[i];
r[i] = temp;
s[i] = temp2;
temp >>= 32;
temp2 >>= 32;
}
if (temp != 0 || temp2 != 0) {
r[len2] = temp;
@ -392,23 +400,25 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
len2++;
}
} else {
temp = 0x40000000u + v[0] - u[0];
v[0] = (temp >> 1) & 0x1FFFFFFF;
temp >>= 30;
temp = 0x100000000ull + v[0] - u[0];
v[0] = (temp >> 1) & 0x7FFFFFFF;
temp >>= 32;
for (i = 1; i < len1; i++) {
temp += 0x3FFFFFFFu + v[i] - u[i];
v[i - 1] += (temp & 1) << 29;
v[i] = (temp >> 1) & 0x1FFFFFFF;
temp >>= 30;
temp += 0xFFFFFFFFull + v[i] - u[i];
v[i - 1] += (temp & 1) << 31;
v[i] = (temp >> 1) & 0x7FFFFFFF;
temp >>= 32;
}
temp = temp2 = 0;
for (i = 0; i < len2; i++) {
temp += s[i] + r[i];
temp2 += r[i] << 1;
s[i] = temp & 0x3FFFFFFF;
r[i] = temp2 & 0x3FFFFFFF;
temp >>= 30;
temp2 >>= 30;
temp += s[i];
temp += r[i];
temp2 += r[i];
temp2 += r[i];
s[i] = temp;
r[i] = temp2;
temp >>= 32;
temp2 >>= 32;
}
if (temp != 0 || temp2 != 0) {
s[len2] = temp;
@ -419,21 +429,33 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
if (u[len1 - 1] == 0 && v[len1 - 1] == 0) len1--;
k++;
}
j = r[0] >> 30;
r[0] = r[0] & 0x3FFFFFFFu;
for (i = 1; i < len2; i++) {
uint32_t q = r[i] >> (30 - 2 * i);
r[i] = ((r[i] << (2 * i)) & 0x3FFFFFFFu) + j;
j=q;
}
r[i] = j;
i++;
for (; i < 9; i++) r[i] = 0;
i = 8;
while (i > 0 && r[i] == prime->val[i]) i--;
if (r[i] >= prime->val[i]) {
temp = 1;
temp32 = 1;
for (i = 0; i < 9; i++) {
temp += 0x3FFFFFFF + r[i] - prime->val[i];
r[i] = temp & 0x3FFFFFFF;
temp >>= 30;
temp32 += 0x3FFFFFFF + r[i] - prime->val[i];
r[i] = temp32 & 0x3FFFFFFF;
temp32 >>= 30;
}
}
temp = 1;
temp32 = 1;
for (i = 0; i < 9; i++) {
temp += 0x3FFFFFFF + prime->val[i] - r[i];
r[i] = temp & 0x3FFFFFFF;
temp >>= 30;
temp32 += 0x3FFFFFFF + prime->val[i] - r[i];
r[i] = temp32 & 0x3FFFFFFF;
temp32 >>= 30;
}
int done = 0;
#if USE_PRECOMPUTED_IV
@ -449,14 +471,14 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
if (!done) {
for (j = 0; j < k; j++) {
if (r[0] & 1) {
temp = r[0] + prime->val[0];
r[0] = (temp >> 1) & 0x1FFFFFFF;
temp >>= 30;
temp32 = r[0] + prime->val[0];
r[0] = (temp32 >> 1) & 0x1FFFFFFF;
temp32 >>= 30;
for (i = 1; i < 9; i++) {
temp += r[i] + prime->val[i];
r[i - 1] += (temp & 1) << 29;
r[i] = (temp >> 1) & 0x1FFFFFFF;
temp >>= 30;
temp32 += r[i] + prime->val[i];
r[i - 1] += (temp32 & 1) << 29;
r[i] = (temp32 >> 1) & 0x1FFFFFFF;
temp32 >>= 30;
}
} else {
for (i = 0; i < 8; i++) {

47
ecdsa.c
View File

@ -122,38 +122,39 @@ void point_multiply(const bignum256 *k, const curve_point *p, curve_point *res)
// res = k * G
void scalar_multiply(const bignum256 *k, curve_point *res)
{
int i, j;
int i;
// result is zero
int is_zero = 1;
#if USE_PRECOMPUTED_CP
int exp = 0;
#else
curve_point curr;
// initial res
memcpy(&curr, &G256k1, sizeof(curve_point));
#endif
for (i = 0; i < 9; i++) {
for (j = 0; j < 30; j++) {
if (i == 8 && (k->val[i] >> j) == 0) break;
if (k->val[i] & (1u << j)) {
if (is_zero) {
for (i = 0; i < 256; i++) {
if (k->val[i / 30] & (1u << (i % 30))) {
if (is_zero) {
#if USE_PRECOMPUTED_CP
memcpy(res, secp256k1_cp + exp, sizeof(curve_point));
#else
memcpy(res, &curr, sizeof(curve_point));
#endif
is_zero = 0;
if (i < 255 && (k->val[(i + 1) / 30] & (1u << ((i + 1) % 30)))) {
memcpy(res, secp256k1_cp2 + i, sizeof(curve_point));
i++;
} else {
#if USE_PRECOMPUTED_CP
point_add(secp256k1_cp + exp, res);
#else
point_add(&curr, res);
#endif
memcpy(res, secp256k1_cp + i, sizeof(curve_point));
}
}
#if USE_PRECOMPUTED_CP
exp++;
#else
memcpy(res, &curr, sizeof(curve_point));
#endif
is_zero = 0;
} else {
#if USE_PRECOMPUTED_CP
if (i < 255 && (k->val[(i + 1) / 30] & (1u << ((i + 1) % 30)))) {
point_add(secp256k1_cp2 + i, res);
i++;
} else {
point_add(secp256k1_cp + i, res);
}
#else
point_add(&curr, res);
#endif
}
#if ! USE_PRECOMPUTED_CP
point_double(&curr);
#endif
}

View File

@ -815,4 +815,517 @@ const curve_point secp256k1_cp[256] = {
{/*.x =*/{/*.val =*/{0x3f8be384, 0x22f4c810, 0x31db6c3e, 0x3b02ab68, 0x1ef07271, 0x2b5b253f, 0x23e1b251, 0x24290af9, 0xb237}},
/*.y =*/{/*.val =*/{0x2b19880e, 0x4291cf7, 0x9ecb58d, 0x3c013d05, 0x1f94517, 0x143e22aa, 0x15edbe8d, 0x1a524675, 0xfc6b}}},
};
const curve_point secp256k1_cp2[255] = {
{/*.x =*/{/*.val =*/{0x3ce036f9, 0x1807c44e, 0x36f99b08, 0xc721160, 0x1d5229b5, 0x113e17e2, 0xc310493, 0x22806496, 0xf930}},
/*.y =*/{/*.val =*/{0x4b8e672, 0x32e7f5d6, 0xc2231b6, 0x2a664d, 0x37f35665, 0xcdf98a8, 0x1e8140fe, 0x1ec3d8cb, 0x388f}}},
{/*.x =*/{/*.val =*/{0x20297556, 0x3c15e851, 0x168a18b2, 0x3d91cbe1, 0x1235d382, 0x14e850d5, 0x2eea4204, 0x1ef55d57, 0xfff9}},
/*.y =*/{/*.val =*/{0x3075f297, 0x321c30da, 0x18fe4a03, 0x203c3d94, 0x5c560de, 0x3a5805fd, 0x3b620f3b, 0x1ddeab3e, 0xae12}}},
{/*.x =*/{/*.val =*/{0x30afe85a, 0x16c3d1c1, 0x220095bc, 0x1f3d1065, 0x33463368, 0xe3c0135, 0x3561b15c, 0x5755239, 0xd011}},
/*.y =*/{/*.val =*/{0x34062327, 0x2c146c4f, 0x1a86d526, 0x8e31776, 0x3bd81579, 0x1914df85, 0x1e0d7a8b, 0x13ff7205, 0xa9f3}}},
{/*.x =*/{/*.val =*/{0x3202e6ce, 0x140af6a2, 0x162b7940, 0xc8550e7, 0x3a8b0968, 0x2724586, 0x133d48ac, 0x310d504f, 0xfe72}},
/*.y =*/{/*.val =*/{0xf58c5bf, 0x1e3b4bef, 0x34a9d229, 0x372238da, 0x32998101, 0x2d1f8275, 0x24a68d3a, 0x37819ffc, 0x6851}}},
{/*.x =*/{/*.val =*/{0x1118e5c3, 0x2f61c2a8, 0x12bebc19, 0x15e6c9d1, 0x265b4bfc, 0x595bbd3, 0x1307db44, 0xcd76591, 0x6eca}},
/*.y =*/{/*.val =*/{0x5a08668, 0x2628bde0, 0x3f8ec344, 0x125a8e8e, 0x3875a03a, 0x3d5e41d2, 0x20710592, 0x8ed5e9e, 0xd501}}},
{/*.x =*/{/*.val =*/{0x3f8cb0e3, 0xe4ceb29, 0x1efe3a44, 0xbad4ff8, 0x2eb72ea2, 0x1938112c, 0x16d8f8fa, 0x20395d11, 0x3f0e}},
/*.y =*/{/*.val =*/{0x2a5f404f, 0x2c0a278b, 0x25b53a4c, 0x494ea9, 0x1d01b395, 0x2e702121, 0xbc91e90, 0x35f5ca5b, 0xcb66}}},
{/*.x =*/{/*.val =*/{0x33ce1752, 0x1edd43dc, 0x3cd204ec, 0x20f1e5f5, 0x1c9aeae7, 0x377d9366, 0x1c635812, 0x36963407, 0xd7a0}},
/*.y =*/{/*.val =*/{0x762cef4, 0x2f009ce0, 0x62b742b, 0x38102a30, 0x2284650b, 0xa4a0d03, 0x8032f6f, 0x1c381a00, 0x9127}}},
{/*.x =*/{/*.val =*/{0x35476085, 0x2422dc06, 0x2eb9f84a, 0x1c539de5, 0xed1afb5, 0xeab5a9e, 0xcd3e10d, 0x29c19e82, 0x3443}},
/*.y =*/{/*.val =*/{0xb8f52d8, 0x34d212f6, 0xc2b67f6, 0x2292c9f4, 0x3e1da901, 0x3a312e31, 0x36f854f6, 0x1e97e0a6, 0x661a}}},
{/*.x =*/{/*.val =*/{0x257e8dfa, 0x33f032e7, 0x3c7e184f, 0x20246468, 0x298ca009, 0x28c3e2b2, 0x19c4c0d9, 0x33cbfc1e, 0x8262}},
/*.y =*/{/*.val =*/{0x3bac376a, 0x173fe363, 0x314c4783, 0x2dbb4cca, 0x334f3457, 0x3b88bb16, 0x9e4e66f, 0x25788244, 0x83fd}}},
{/*.x =*/{/*.val =*/{0x3c70620c, 0x5f307c9, 0x3c288d9d, 0x26312faa, 0x27178049, 0x374c68ad, 0x236dc60, 0x2a29234b, 0x1653}},
/*.y =*/{/*.val =*/{0x315b32cd, 0x328ba074, 0x3d3dc526, 0xabdd237, 0x3a701c01, 0x2a651d3b, 0x37f7aeaf, 0xa424d6b, 0x338}}},
{/*.x =*/{/*.val =*/{0x271dabcd, 0x1f50ae9b, 0x1e5cb4f4, 0x34ff9262, 0x35373f54, 0x22b8c982, 0x3f43c609, 0x393edad8, 0xd49e}},
/*.y =*/{/*.val =*/{0x16603c2, 0x19aa433c, 0x2ff7031e, 0x271424c4, 0x1bf35612, 0x21fa9e98, 0x1490dd7c, 0x38e48269, 0x531}}},
{/*.x =*/{/*.val =*/{0xc8c828a, 0xfcc2ae4, 0x16ae41f5, 0xbac90b2, 0x281c7513, 0x1283605f, 0x9e750e4, 0x21472905, 0x5f94}},
/*.y =*/{/*.val =*/{0x37344d80, 0x3fac28fc, 0x3c68b04b, 0x19b7dd53, 0x2f35e8c, 0x1e5f622, 0x1fee8e5f, 0x30ee2be8, 0x26b8}}},
{/*.x =*/{/*.val =*/{0x5041216, 0x16dfe3c7, 0x2b836a6, 0x1ccd7da1, 0x2fed523f, 0x2d67bf70, 0x3acf4128, 0xc5ec87d, 0xda75}},
/*.y =*/{/*.val =*/{0x2e708572, 0x2bb4ca61, 0x37acedad, 0x2ab01eb9, 0x2d7fc6e9, 0x27886cd0, 0x2d5f0df1, 0x2811afdc, 0x73f8}}},
{/*.x =*/{/*.val =*/{0x3c62bac0, 0x1414c93c, 0x1f0ab069, 0x54377d4, 0x28b70e19, 0x12df4b0f, 0x3469c136, 0x3c3e408f, 0x9530}},
/*.y =*/{/*.val =*/{0x3618e309, 0x1e2af6a5, 0x31fdc684, 0x16cca14b, 0x3333e0e2, 0x34bdfd66, 0x321e234d, 0xc16a3e7, 0x8f3c}}},
{/*.x =*/{/*.val =*/{0x1c3c9c8f, 0x19c10e17, 0x24367b20, 0x205bfb8f, 0x2332b0f2, 0x27fd0eaa, 0x298fd6f0, 0xb72f90, 0x67be}},
/*.y =*/{/*.val =*/{0x193652d9, 0x14e12661, 0x388c2be5, 0x264efd82, 0x291693cd, 0x2516d820, 0x1ef84a2c, 0x1569cf93, 0x7a9b}}},
{/*.x =*/{/*.val =*/{0x10aaa33a, 0x7e6f2f8, 0x17b9ca51, 0x24b74a70, 0x1718368c, 0x1a404ef1, 0x3876adf5, 0x924bd3b, 0x893b}},
/*.y =*/{/*.val =*/{0x11af3445, 0x1ee02e2b, 0x3ceeb426, 0xe7a2884, 0x107f32a4, 0xe801d99, 0x1c89ef41, 0x14ad9cb4, 0xcdb1}}},
{/*.x =*/{/*.val =*/{0x36e55dc8, 0x2e24485b, 0x2ca04394, 0x3e56adba, 0x1094426f, 0x12910301, 0x1ffb2ba8, 0x1011e431, 0x4431}},
/*.y =*/{/*.val =*/{0x1be323b3, 0x76512bb, 0x2aa2e503, 0x1a8a6de7, 0x2fed7a6, 0x260dfd59, 0x366f8fe9, 0x3050b994, 0x96b0}}},
{/*.x =*/{/*.val =*/{0x33f0e9aa, 0x3ad78658, 0x11bd34b3, 0x449ddac, 0x138d268, 0x92b8356, 0x326adb79, 0x3fa15d7, 0xe538}},
/*.y =*/{/*.val =*/{0x82720f, 0x12e904d9, 0x68318ec, 0x2e53977d, 0xc8e016f, 0x244d8e49, 0x3b41d5b6, 0x361ce421, 0xb97f}}},
{/*.x =*/{/*.val =*/{0x2ebc61d6, 0x2bb4d86f, 0x1ff42de1, 0x23f4e9f6, 0x2b1f518a, 0x17c34575, 0x19af0c39, 0x3cf928fb, 0x939f}},
/*.y =*/{/*.val =*/{0x23f5cb70, 0x1d7a919a, 0x38c7f82e, 0x2fc9bad, 0x16c0498, 0x1bf13bbc, 0x3a90e9d4, 0xef3c22d, 0xdeab}}},
{/*.x =*/{/*.val =*/{0x497e0df, 0x5b84d37, 0xf76f530, 0xeed0dbb, 0x2029a04c, 0x161e17f9, 0x3293078, 0xf94ab8e, 0xfdc6}},
/*.y =*/{/*.val =*/{0x1b9eb19f, 0x1811127, 0x335d9d5f, 0x2fac8bef, 0x22e8b87b, 0x3dc50a2b, 0x3bb52e3d, 0x2b59eb3a, 0x292d}}},
{/*.x =*/{/*.val =*/{0x355812dd, 0x28a960b, 0x12d30e2a, 0x1119c8d5, 0x18f78e3d, 0x2afb5b01, 0x3352f0b6, 0x2f5ea4bf, 0x7029}},
/*.y =*/{/*.val =*/{0x1a2d2927, 0x87319ac, 0x3b2c73c7, 0x36ba1090, 0x683ac47, 0x19512b8c, 0xb3d27dd, 0x3eb6bf7a, 0xb0ee}}},
{/*.x =*/{/*.val =*/{0x3181fdc2, 0x336affe6, 0xc62364d, 0xbd8aed7, 0x234e7edd, 0x992e062, 0x26e474aa, 0x40abd1f, 0xf42c}},
/*.y =*/{/*.val =*/{0x2485d7fd, 0x7c0024e, 0x22acf268, 0x5540b66, 0x2fe22a4c, 0x2b4172e1, 0x2806c78f, 0xead1b3f, 0x5750}}},
{/*.x =*/{/*.val =*/{0x2edd7dd6, 0x219b51f7, 0x1e1968c3, 0xddbf899, 0x3cfdec49, 0x29e103b9, 0x3524bca5, 0x33da8931, 0x32cf}},
/*.y =*/{/*.val =*/{0x3e08e330, 0x17f512bb, 0x349a08b2, 0x3633480, 0x1f561e7a, 0x2025a902, 0x27748620, 0x1a8d25da, 0x2184}}},
{/*.x =*/{/*.val =*/{0x21231d11, 0x399d20c4, 0x2aaad7c, 0x2acdb18f, 0x37c39822, 0x455731d, 0x388e433d, 0x3507a2e4, 0x3514}},
/*.y =*/{/*.val =*/{0x23855df5, 0xf5bed03, 0x2f79ebe5, 0x213cc742, 0x39eff93, 0x1344795a, 0x17eb8ef4, 0xc940580, 0x89a8}}},
{/*.x =*/{/*.val =*/{0x633cb1, 0x159f827a, 0x1d021132, 0x168892da, 0x181fcb57, 0x189cc848, 0x2cad400c, 0x273cc5ea, 0x6dde}},
/*.y =*/{/*.val =*/{0x27ce6b34, 0x1f7526a9, 0x3859ef35, 0x2c9ff6b3, 0x3a66a880, 0x27be1a86, 0x3e41d5c9, 0x3ef9e9c1, 0x9188}}},
{/*.x =*/{/*.val =*/{0x4e5467d, 0x342f5da9, 0x1bbface4, 0x2422ae06, 0x970e940, 0x7d8b83b, 0x1a1222c2, 0x193c3f1a, 0x97d0}},
/*.y =*/{/*.val =*/{0x1e9cb3fa, 0x25cc03f4, 0xf17ccd7, 0x17ecee15, 0x10861fda, 0x1f19bea1, 0x2cc03f, 0x13cbb4cd, 0x8997}}},
{/*.x =*/{/*.val =*/{0x13613bec, 0x32a072e4, 0x1cfe67c, 0x2d7f2744, 0xf972a8b, 0x6ccf71d, 0x137bdedf, 0x32ae324e, 0x2dcf}},
/*.y =*/{/*.val =*/{0x1a039215, 0x39cc2492, 0x33f5f383, 0xcb3eeb4, 0x36c6f437, 0x222df5b, 0xa41265f, 0x3137651d, 0x46db}}},
{/*.x =*/{/*.val =*/{0x7fb9e1a, 0x1f345c21, 0x22a32961, 0x39d2dd37, 0x2b0e767f, 0xaf26ee, 0x2c5a8f1a, 0x1052a923, 0x1bec}},
/*.y =*/{/*.val =*/{0x349c0443, 0x1fdb845d, 0xc9796e5, 0x4e176ba, 0x54b0f68, 0x26f15cc3, 0x266678a7, 0x19c11c04, 0xe358}}},
{/*.x =*/{/*.val =*/{0x3b7ceceb, 0xfd9e3fe, 0x97faf0f, 0x2967e4e2, 0x2e681473, 0x3ee049bd, 0x2d45036f, 0x2188109d, 0x437a}},
/*.y =*/{/*.val =*/{0x16c181e1, 0xd8ef30d, 0x8f97827, 0x883f3f7, 0x1297ff87, 0x23fada67, 0x2c32f69b, 0x1ae84fba, 0xb91}}},
{/*.x =*/{/*.val =*/{0x1cbf00eb, 0x3276761f, 0x18d02274, 0x2d3a62f0, 0x230bc241, 0x385bda86, 0x2d4dc49b, 0x1c2ba5ba, 0xb890}},
/*.y =*/{/*.val =*/{0x1b0e664e, 0x2dfc6f34, 0x2b96a671, 0x362c1ad, 0x4a766cb, 0xa539307, 0x2d88f472, 0x3230b228, 0x6f24}}},
{/*.x =*/{/*.val =*/{0x36fbe7b2, 0x275bfe6a, 0x18d65a3b, 0x2b7b7051, 0x2884605e, 0x1aeec6ca, 0x41f8f33, 0x21d9a72d, 0x2648}},
/*.y =*/{/*.val =*/{0x21bc2a34, 0xca9e2f0, 0x20eb6039, 0xe36605a, 0x2ddf1856, 0x3cb72b40, 0x144988f2, 0x36ad2c80, 0x9e15}}},
{/*.x =*/{/*.val =*/{0x2b038315, 0x1a434c18, 0x1310e6f9, 0x2b310cda, 0x14b8629c, 0x1a038e5e, 0x312221e4, 0x15a1d59d, 0xaba5}},
/*.y =*/{/*.val =*/{0x2e25fc0a, 0x26800fe6, 0xb63338f, 0x2fed4cb6, 0x130d6f3f, 0x15c3d894, 0x25edb63d, 0x1761ea8d, 0xa0e7}}},
{/*.x =*/{/*.val =*/{0x15bc15b4, 0x32e684d2, 0x25a2ee69, 0x1d40a391, 0x17ca8d92, 0x163ba73b, 0x2adc9ed8, 0x38b947b, 0x10e9}},
/*.y =*/{/*.val =*/{0x18aa258d, 0x13af9825, 0x2bb6a883, 0x296258c0, 0x2d1f754c, 0x1ea3185a, 0x1e0424d5, 0xdc0e035, 0xc68a}}},
{/*.x =*/{/*.val =*/{0x3a1c0a80, 0x3d8aaf21, 0x25a9c740, 0x18945631, 0x2ff9c34d, 0x326f9c00, 0xcca5b17, 0x169a2985, 0xb6b1}},
/*.y =*/{/*.val =*/{0x1ce0a03, 0x1b340441, 0x2e16eeb, 0x2684acc2, 0x2536d49c, 0x3888fbbd, 0x1b61ea54, 0xb8535b3, 0xfae6}}},
{/*.x =*/{/*.val =*/{0x12b062d4, 0x1f2a942a, 0x3b6a141a, 0x1739f966, 0x2a227a7a, 0x2c5c4a0f, 0x2eaca06f, 0xfa90c95, 0x3596}},
/*.y =*/{/*.val =*/{0x3bb25302, 0x42a9346, 0xde59b1a, 0x1020ae59, 0x8a96d0, 0x33865be7, 0x1e5c9bfc, 0x38515254, 0xf65b}}},
{/*.x =*/{/*.val =*/{0x1d33fd27, 0x282fd714, 0x246cc62f, 0x17d5cf6d, 0x2361b44, 0x8e23b6a, 0x3e84cd02, 0xfc24898, 0x9ed7}},
/*.y =*/{/*.val =*/{0x2716c458, 0x25cacb78, 0x2e449345, 0x2a08f96c, 0x6725494, 0x16d3cd09, 0x1eeeaee7, 0x2259faec, 0xb631}}},
{/*.x =*/{/*.val =*/{0x2f028d83, 0x1e588ebb, 0x27439615, 0x25649b6e, 0x1e69db61, 0x2af96857, 0x385ec6a5, 0x3df138f1, 0xa7eb}},
/*.y =*/{/*.val =*/{0x19d0bed1, 0x1900e4ae, 0x30539199, 0x28e249d2, 0x4804b47, 0x271cddc1, 0x362d5cfd, 0x54beff8, 0x6205}}},
{/*.x =*/{/*.val =*/{0x3bb61ee5, 0xa21104d, 0x31f0c13f, 0x13c138be, 0x34ae6eda, 0x18e33625, 0x321b8662, 0xc8c3321, 0xd493}},
/*.y =*/{/*.val =*/{0x25d694a8, 0x18b69343, 0x2438ddc6, 0x344b2316, 0xafb5e1a, 0x317a747b, 0x29d23edc, 0x26afd46, 0x21c}}},
{/*.x =*/{/*.val =*/{0x2c04554a, 0xc3772f3, 0x288cffe5, 0x373feed1, 0x10a2ecaa, 0x194b09e8, 0x3d1a0474, 0xdf2261c, 0x896f}},
/*.y =*/{/*.val =*/{0x129138df, 0x1a3e7f86, 0xc417dcd, 0x216d86b, 0x11bf1e6, 0x8aec13a, 0x2c4acda6, 0x8f9c892, 0x3804}}},
{/*.x =*/{/*.val =*/{0x343fca26, 0x101df46a, 0x3bc23678, 0x3ee10768, 0x3578a27d, 0x308276fc, 0x36d6cca6, 0x2e5fddd2, 0x11b3}},
/*.y =*/{/*.val =*/{0x1b679d58, 0xec9fabd, 0x39f9d42d, 0x2b88c712, 0x36d3bb3b, 0x159430bc, 0xc508cd, 0x7e7eb98, 0x6533}}},
{/*.x =*/{/*.val =*/{0x8dfd587, 0x1e4d86ed, 0x1b026560, 0x312e8e32, 0x35a12d5e, 0x19eaa8b3, 0x508b348, 0x2d06eb3d, 0x5084}},
/*.y =*/{/*.val =*/{0x11470e89, 0x39e7a5fe, 0x91f5606, 0x2dbd581a, 0x2927475d, 0x2a9b2154, 0xd31619, 0x18c68766, 0x34a9}}},
{/*.x =*/{/*.val =*/{0x2c953fa9, 0x341655b5, 0xb8c3db4, 0x2ac98a7c, 0x118c0628, 0x3d21752f, 0x393233a5, 0x3443aaaa, 0xa49e}},
/*.y =*/{/*.val =*/{0x6fb4c72, 0x1ecaf489, 0x28e181b6, 0x3a1d4d25, 0x1fddfb5a, 0x11db0283, 0x35398e03, 0x2e251983, 0xcc72}}},
{/*.x =*/{/*.val =*/{0x27a1d916, 0x3025b4ff, 0x11f1f3a3, 0x16c28e57, 0x1bb07031, 0x18562997, 0x19d0cbac, 0x3e6b2db5, 0x650e}},
/*.y =*/{/*.val =*/{0x3068387b, 0x16127299, 0x36c26ba8, 0x2ed18229, 0x1b82c558, 0x2702e49e, 0x2b11870e, 0x47c8458, 0x85d}}},
{/*.x =*/{/*.val =*/{0x36fb2940, 0x37f07501, 0x2534042f, 0x7f01a6c, 0x2b8fbd71, 0x1d04e10a, 0x1c82fecb, 0x283bf680, 0x5083}},
/*.y =*/{/*.val =*/{0x36ceee44, 0x378c0ed9, 0x2cdddf3b, 0x1a849b87, 0xdf19b08, 0x3ef7e189, 0x782bba8, 0x2bbe3ff9, 0xf064}}},
{/*.x =*/{/*.val =*/{0x15bc8a44, 0x3bf74194, 0x3e151a19, 0x10405df2, 0x1a5fc768, 0x159692e9, 0xeda3d38, 0x20160f3f, 0x4d01}},
/*.y =*/{/*.val =*/{0x1adbc09e, 0x3c7e5324, 0x182da362, 0x250811a1, 0x16381396, 0x26ea001f, 0xf5d367e, 0x31b0632d, 0x3a33}}},
{/*.x =*/{/*.val =*/{0x135b4eb8, 0x14884f92, 0x38b5a3cf, 0x3d55fc6a, 0x2f2dce07, 0x3d528f32, 0x32256f0f, 0x1a390eb7, 0xc119}},
/*.y =*/{/*.val =*/{0x2f911add, 0x11265b5, 0x2a7149b7, 0x3e2d2504, 0x366f8242, 0x27607f99, 0x2458f837, 0x39a4dde1, 0xbff5}}},
{/*.x =*/{/*.val =*/{0x19dffc96, 0x256e8425, 0x3ac58572, 0xa33696b, 0x17eb0192, 0x26ce5720, 0x3deaf6f, 0x1b2fb852, 0x161c}},
/*.y =*/{/*.val =*/{0x1b492de4, 0x24ef3d84, 0x2af8621c, 0x258d324b, 0x3183059b, 0x964e472, 0x1ff985bd, 0x32a4a9ae, 0x8a26}}},
{/*.x =*/{/*.val =*/{0x369671d5, 0x35f9c967, 0x14eb83e3, 0xbbabd6d, 0x2bc96056, 0x7906af5, 0x39596d76, 0x3b1580f3, 0xa8c1}},
/*.y =*/{/*.val =*/{0x333db746, 0xf22a034, 0x18f8b182, 0x2997eccc, 0x141c5924, 0x31cc9a4, 0x345ac755, 0x181447a7, 0x5fc3}}},
{/*.x =*/{/*.val =*/{0x8a2050e, 0x6b10bf9, 0x15f8a677, 0xbbd55d8, 0x79b8974, 0x1da731b9, 0x731896b, 0x93f492f, 0x6737}},
/*.y =*/{/*.val =*/{0x61d3d70, 0x24326924, 0x3349cc2b, 0x1aeb3f50, 0x86b6dbe, 0x120b026a, 0x24a20203, 0x2095e25a, 0xe4cf}}},
{/*.x =*/{/*.val =*/{0x29a78179, 0x133d807e, 0x20d6afe3, 0x143a4149, 0x9ed9f6b, 0x291ccd88, 0x1b8dc905, 0x29fcdc20, 0x995c}},
/*.y =*/{/*.val =*/{0x2fec1f47, 0xc7eed32, 0x2b64e529, 0x332155a6, 0x12863abb, 0xd362012, 0x3573ab5e, 0x167a5554, 0xd9a0}}},
{/*.x =*/{/*.val =*/{0x49135d3, 0xf636176, 0x2e431fc1, 0x80f3404, 0x30b16a74, 0x4d0a504, 0x2a85a65c, 0x2f1fbe0, 0x594}},
/*.y =*/{/*.val =*/{0x162255d2, 0xb5d146, 0x1902391d, 0xa18ca32, 0x36687af1, 0x16c31eaa, 0x3ab612f7, 0x1e617ad3, 0x9053}}},
{/*.x =*/{/*.val =*/{0x39e68f51, 0x3de3a89e, 0x16b6e1d0, 0x1b87f2ae, 0xd870cf5, 0x301895ca, 0x26fcb74d, 0x116b276e, 0xc755}},
/*.y =*/{/*.val =*/{0x38cfbbc1, 0x7120e25, 0x22ddf68d, 0x7246272, 0x168bf725, 0x163b6ca8, 0x855c2a7, 0xf11a8ef, 0x7c80}}},
{/*.x =*/{/*.val =*/{0x41ead4b, 0x3fa21e68, 0x11b03c1f, 0x1d7b7eda, 0x3e76be3a, 0x11cd3beb, 0x3337ec71, 0x3032323, 0xbfc9}},
/*.y =*/{/*.val =*/{0x6fedaed, 0x114b1bc2, 0x2e0ae3e7, 0x11a3bfcc, 0x42d36fb, 0x29c63754, 0xded24db, 0x206c7827, 0x7a94}}},
{/*.x =*/{/*.val =*/{0x25b7ad0d, 0x253215bb, 0x1d0d1d36, 0x3b9d9f2a, 0x116c4476, 0x362925b, 0x1e00dc2d, 0x1a436aed, 0x3a55}},
/*.y =*/{/*.val =*/{0x32e8c407, 0x1b261e42, 0x2c31218d, 0x32b2e2b2, 0x2f99f301, 0x7eeb25f, 0x657bfb2, 0x23865d68, 0xc3e2}}},
{/*.x =*/{/*.val =*/{0x19b2df82, 0x9e91ec2, 0x3104fb19, 0x179e8591, 0x232c04ec, 0xb463b33, 0x3b92ccc9, 0x191718af, 0x405a}},
/*.y =*/{/*.val =*/{0x9307dbf, 0x368a0d28, 0x2dc462b5, 0x3ea76cb3, 0x37e7122f, 0x2b298788, 0x196e0f5c, 0x2d053d13, 0xbc3c}}},
{/*.x =*/{/*.val =*/{0x18f4033f, 0x9f0f311, 0x20ab6d3a, 0x12b3c96c, 0x28f817cc, 0x2c835e83, 0x3cfb3d2a, 0x51ad0e6, 0x10ba}},
/*.y =*/{/*.val =*/{0x76d1fbf, 0x173dae53, 0x1c78b4ea, 0x6dacdfa, 0x129f3677, 0x283c19a8, 0xaef4b2a, 0x19b9747, 0xade1}}},
{/*.x =*/{/*.val =*/{0x36e2d9b3, 0x12f4c1aa, 0x338d6351, 0x36e4a0c6, 0xf845641, 0xba984e7, 0x305e75e1, 0x53ce5f1, 0x19a3}},
/*.y =*/{/*.val =*/{0xbaaaf33, 0x154bb897, 0x4be56d, 0x874749, 0x3528b3a5, 0x2597e21f, 0x328dd234, 0x363d76b1, 0x6cac}}},
{/*.x =*/{/*.val =*/{0x23a52264, 0xb9cdf65, 0x1400b375, 0x2b7f00c5, 0x251cffd0, 0x1b8aa6ab, 0x7fe9a80, 0x37037a06, 0x85ff}},
/*.y =*/{/*.val =*/{0x2da2082, 0x231f4a6a, 0x3179d049, 0x2060b24a, 0x14706c67, 0x15a3d415, 0x2948d0be, 0xc061eb8, 0x3fee}}},
{/*.x =*/{/*.val =*/{0x36a88c9c, 0x307fd692, 0x149df069, 0x1eda198c, 0x2caa2aa3, 0x766b25c, 0x391398b2, 0x24207951, 0x7865}},
/*.y =*/{/*.val =*/{0x35a7d19b, 0x38164d15, 0x3ab6a155, 0x33e466c0, 0x28196112, 0x23e9c897, 0x30d2b69e, 0xc1de4a8, 0x59a2}}},
{/*.x =*/{/*.val =*/{0x1e8f7605, 0x374b71e3, 0x3ed2d35b, 0x13bde7d7, 0xff48bd4, 0x2ce44ba2, 0x159def16, 0x1100533a, 0x21ce}},
/*.y =*/{/*.val =*/{0x955155f, 0xd791446, 0x46602c1, 0x38cd259a, 0x1da46ef4, 0x1bf5987c, 0xfaf75d9, 0x19c08e8b, 0x323a}}},
{/*.x =*/{/*.val =*/{0x121ce204, 0x13b5d7a3, 0x26763d52, 0x29c96390, 0x26f72fb2, 0x1d361672, 0x3c64fb83, 0x107458ac, 0x43ca}},
/*.y =*/{/*.val =*/{0x134a8f6b, 0x1494113a, 0x2a4a468e, 0x2db1eccf, 0x1ba31f9a, 0x143e4863, 0x23fa1c6, 0x16a0b8dc, 0xdcea}}},
{/*.x =*/{/*.val =*/{0x14978583, 0x2ce90c80, 0x61613f5, 0x35ba6bbc, 0x392214cd, 0x21066643, 0x23137497, 0x3e26e73c, 0x30ab}},
/*.y =*/{/*.val =*/{0x1dc75777, 0x118600d4, 0x3b584ac4, 0x483a88e, 0x21ab8063, 0x1ed3cb43, 0x37498cdf, 0x144551df, 0x4b03}}},
{/*.x =*/{/*.val =*/{0x2c288015, 0x268df98f, 0x2dc99cc3, 0x1cfe14fb, 0x1b6aa646, 0x3eb18681, 0x2de6f681, 0x13aab64d, 0xaa01}},
/*.y =*/{/*.val =*/{0x6c1006f, 0x3e053999, 0x3cecad9d, 0x12e6c1d0, 0x3b0f63ef, 0xa9f90fd, 0x2be9ac3f, 0x4f0118d, 0x3de9}}},
{/*.x =*/{/*.val =*/{0x185bfe2, 0x34231245, 0xe5e42d3, 0x37e8ab9e, 0x2679cb5e, 0x2a82a0b3, 0xa0b0b56, 0x576fcdf, 0xe526}},
/*.y =*/{/*.val =*/{0x2a0e5888, 0x33c042f, 0x245a9c44, 0x1dbfcb72, 0x32c1a284, 0x7e54a27, 0x488520f, 0xcd459b4, 0x5403}}},
{/*.x =*/{/*.val =*/{0x59ab499, 0x2f674fc8, 0x273c330a, 0x4ca671b, 0x3f01bc0b, 0x65acf19, 0x5ba5d2, 0x2bfcc057, 0x78ba}},
/*.y =*/{/*.val =*/{0x3ee097fd, 0x20748c63, 0x11251996, 0x18cbbba3, 0x2082e91, 0x2a1383b6, 0x2c0afafc, 0x3736f6c1, 0xad4b}}},
{/*.x =*/{/*.val =*/{0x25cd5379, 0xc18ccc2, 0x70bcadc, 0x2de50e16, 0x24d2232d, 0x9206e2a, 0x11382a78, 0x1cb55af7, 0x17c0}},
/*.y =*/{/*.val =*/{0x3108cd25, 0x1f2b8146, 0x25bad0df, 0x166b1d89, 0x1d034f89, 0x30491ebc, 0x1a064e77, 0x2f7d0a0f, 0xd901}}},
{/*.x =*/{/*.val =*/{0xa2d8dae, 0x1e4f0063, 0x3d25ea95, 0xca97e47, 0x32256eac, 0x2c97be72, 0x192f9ba6, 0x7009884, 0x8827}},
/*.y =*/{/*.val =*/{0x3e1e77d9, 0x2d09b03c, 0x317d099f, 0x21db71, 0x2bf5acc3, 0x322ceb96, 0x176aa401, 0x3754d41c, 0xd719}}},
{/*.x =*/{/*.val =*/{0x1ee503a6, 0x2543ebf4, 0x124e1fba, 0x7a1493c, 0x2ec5ab43, 0x2a0c4661, 0x24a29aa6, 0x1fa04b8f, 0xceb6}},
/*.y =*/{/*.val =*/{0xe98c4d1, 0x3ff50365, 0x269e2f31, 0x225b657b, 0x1cd86b4b, 0xf7de042, 0x10613b82, 0x21516b0e, 0x5e6a}}},
{/*.x =*/{/*.val =*/{0x3ba9000, 0x37c1c8ea, 0x25e8b6f, 0x21cbe71a, 0x143dc4, 0x21d81d61, 0x1d8c1684, 0x1d3e7ffc, 0xac38}},
/*.y =*/{/*.val =*/{0x2f10cf0a, 0x368f1f65, 0x366e9fa4, 0x178d435f, 0x117f9308, 0xb77a250, 0x1c069b86, 0x3a48c228, 0xaa65}}},
{/*.x =*/{/*.val =*/{0x17ba402e, 0x39758c2c, 0x1042989a, 0x2e06970b, 0x8e3c3c3, 0x3ab43121, 0x3a02a58b, 0x6d73463, 0x8e89}},
/*.y =*/{/*.val =*/{0x4fad9e0, 0x386d89e7, 0x157a7ee8, 0x19430908, 0x32a306af, 0x23439013, 0x2c6680b3, 0x3839aa7, 0xe5d3}}},
{/*.x =*/{/*.val =*/{0x136bcfe8, 0x187b5879, 0x29b7bb3e, 0x305e7b5, 0x2b319a0e, 0x32a3c8c1, 0x2999b472, 0x3e2f0731, 0x1332}},
/*.y =*/{/*.val =*/{0x1ae78402, 0x6c374b3, 0x1a8c2145, 0x24ed0935, 0x1c0681ba, 0x19f114d7, 0x2ed713f, 0x31fb8a58, 0xc39d}}},
{/*.x =*/{/*.val =*/{0x2fddec6, 0x3fffb0cd, 0x111222c7, 0xb00f7df, 0x3f461492, 0x3678cde4, 0x220b4e9c, 0x7fead4f, 0x9f13}},
/*.y =*/{/*.val =*/{0x9df8052, 0x3855dbc6, 0x3918eac6, 0x28c8d510, 0xec8d7d3, 0x34d25302, 0x326f4fef, 0x5302c, 0x3b21}}},
{/*.x =*/{/*.val =*/{0x38c8ac7f, 0xa0bf97e, 0x1e2aa527, 0x490bb99, 0x16f84964, 0xce5b481, 0x22bbcb5c, 0x2cbef8e0, 0x9945}},
/*.y =*/{/*.val =*/{0x29aea3b0, 0x1b650e85, 0x2dacdfa9, 0xbde88fb, 0x28eff528, 0x36d13fec, 0x3282d607, 0x3b6092c3, 0x3eef}}},
{/*.x =*/{/*.val =*/{0x12fccf64, 0x2ea92662, 0x181318e3, 0x349e3789, 0x95dbf3b, 0x21dcb1df, 0x637db06, 0x45703ad, 0xc7d}},
/*.y =*/{/*.val =*/{0x2878fee0, 0xfdb4ecc, 0x19ae68d5, 0x1e1760e5, 0xaf14548, 0x1092e11e, 0x1b0447aa, 0x1d1ec649, 0x4aa8}}},
{/*.x =*/{/*.val =*/{0x148d5622, 0x2d6baeb1, 0x251bd2e8, 0x36c1fbde, 0x33381be1, 0x161aa06f, 0x9535a39, 0x3047985a, 0x5fc6}},
/*.y =*/{/*.val =*/{0x1ac1683, 0x34361004, 0x2c7bf300, 0x16b4239, 0x367acb0e, 0x26e8b6c0, 0x1d9db9c1, 0x39526a8, 0x10e8}}},
{/*.x =*/{/*.val =*/{0x33c85ecf, 0x1a5916ce, 0x15dacd7, 0x6e08398, 0xff0807d, 0xbd69fa, 0x23e20844, 0x22f56a48, 0x23dd}},
/*.y =*/{/*.val =*/{0x274504ad, 0x1c2702ae, 0xec98f6f, 0x274c6013, 0x10d4b7fc, 0x7b4bf9c, 0x3d26f710, 0x26ef0094, 0x52d}}},
{/*.x =*/{/*.val =*/{0x1136602, 0x2c2e9195, 0x19e3a5bb, 0x311bd203, 0x333b3d38, 0x1624dfc8, 0x2dfc33d0, 0x9ca0120, 0x87d1}},
/*.y =*/{/*.val =*/{0x18af6aac, 0x3da0f107, 0x3d3bf7c4, 0x2a211d1b, 0x27745387, 0x289db3fd, 0x203de926, 0x921c296, 0x71ce}}},
{/*.x =*/{/*.val =*/{0x30e74459, 0x1d28d722, 0x3ddb6dd6, 0x3c8dd8e1, 0x3c8a91fe, 0x3d1961c4, 0x5680590, 0x1e0753b0, 0x28df}},
/*.y =*/{/*.val =*/{0x2f5e656f, 0x3781f303, 0x1ae6f0a8, 0x1e56e940, 0x322794a3, 0x36c5e243, 0x30f17cb0, 0x27a99a84, 0xf149}}},
{/*.x =*/{/*.val =*/{0x29c71143, 0x11b67714, 0xf057ea3, 0x1fab6b11, 0x23fa352e, 0x1f33e400, 0x3ea103ca, 0x17e588ae, 0xeb4}},
/*.y =*/{/*.val =*/{0xb70b136, 0x22a33688, 0x22b1bf4c, 0x165a7a9a, 0x1e2857d6, 0x1807d640, 0xbd0f573, 0xbd6160e, 0x52c4}}},
{/*.x =*/{/*.val =*/{0x1507a7e6, 0x37cdaf22, 0x305f129b, 0x25896ebd, 0x310c41c0, 0xa1458cd, 0x1ad0d5f4, 0x142c15d1, 0x232d}},
/*.y =*/{/*.val =*/{0x152b5892, 0x1c202084, 0x6459ccb, 0x18303bed, 0x2257f712, 0xe22b7c1, 0x33f6b086, 0xeb14d79, 0x780f}}},
{/*.x =*/{/*.val =*/{0x177e7775, 0x222a29b8, 0xed95f63, 0x385564e2, 0x1291aeb5, 0x150eeb3d, 0x233cee58, 0x1a8ebfe5, 0x9d89}},
/*.y =*/{/*.val =*/{0x3a056691, 0x3f3db4ea, 0x299253be, 0x26735fb8, 0x10927de8, 0x2593b5c9, 0x1bf0b94e, 0x2a790fd2, 0xdd91}}},
{/*.x =*/{/*.val =*/{0xc904ed3, 0x1655fc7a, 0x5857841, 0xa9d1624, 0x272384df, 0x3e3990c4, 0x18dff97, 0x230b4b6e, 0xcf}},
/*.y =*/{/*.val =*/{0x396f77c1, 0x2658ed, 0x32f6827b, 0x26475e74, 0x1bd81122, 0x35706f54, 0x1d44119d, 0x3a9e0, 0xaaad}}},
{/*.x =*/{/*.val =*/{0xcf8cffd, 0x2cad6622, 0x3a45ae61, 0xb9ac56d, 0x1bdd8943, 0x2bee23de, 0x38c1bd45, 0x26dfc7f9, 0x80}},
/*.y =*/{/*.val =*/{0xdb5f32f, 0x24751686, 0x12b9f93d, 0x28d03eb6, 0x12fdc912, 0x2320db79, 0x1a863028, 0x3808afd0, 0xf817}}},
{/*.x =*/{/*.val =*/{0x2dc7a626, 0x11f741e6, 0x33cdcc02, 0x1772ade, 0x46b0734, 0x32bc48c9, 0x806bce4, 0x1b28b13e, 0x2f45}},
/*.y =*/{/*.val =*/{0x25279532, 0x2b3ac002, 0x16eaea9e, 0x13236f70, 0x9f5302, 0x47ed991, 0x50544d2, 0x1c69e919, 0xf8cf}}},
{/*.x =*/{/*.val =*/{0x1a328d6a, 0x2eaa0623, 0x1adc18bd, 0x135dcea5, 0x308fa7b2, 0x1a264616, 0x34e00a34, 0x3016e988, 0xc663}},
/*.y =*/{/*.val =*/{0x3ec9b8c0, 0xec2edaa, 0x12bf9cc2, 0x21547a94, 0x171317dd, 0x2bf73c9d, 0x21c38d39, 0x3a6357dc, 0x3331}}},
{/*.x =*/{/*.val =*/{0x22143fb0, 0x370d6995, 0x3c205dd6, 0x3ee4a0c2, 0x399597a9, 0x2bfcce51, 0x383790cf, 0x37070ceb, 0x292a}},
/*.y =*/{/*.val =*/{0x236ad01c, 0x2a76d8f3, 0x35e9d4d8, 0xf998b5c, 0x4ecf6d8, 0x65a2833, 0xb647f3f, 0x1986f3b8, 0xa072}}},
{/*.x =*/{/*.val =*/{0x30b90e0b, 0x27b079b0, 0x3094a458, 0x3fc74e7e, 0x675b3d6, 0x32012967, 0x67d3fed, 0x1fe6b55, 0xa435}},
/*.y =*/{/*.val =*/{0x3a1fdc20, 0x3c002e64, 0x3599b5a3, 0xa880d94, 0xbe8c0dc, 0x341f32d0, 0x3d71a142, 0xb72530f, 0x7c8f}}},
{/*.x =*/{/*.val =*/{0x188f4d82, 0x2e7474ad, 0x159204ac, 0x9937676, 0x21d6fcaf, 0x170c09b0, 0x1c515b0e, 0x1665c1b9, 0x6dd5}},
/*.y =*/{/*.val =*/{0x14132ad3, 0x287aadab, 0x15927be5, 0x3db9c11b, 0x2d0f9478, 0x3346376d, 0x1233dd46, 0x109ff54d, 0xbc92}}},
{/*.x =*/{/*.val =*/{0x1e05dccc, 0xcb60046, 0x19a93e5, 0xfe8fb53, 0x13d172ae, 0x1b825ae5, 0x1a030954, 0x3db85d4f, 0xb8ce}},
/*.y =*/{/*.val =*/{0xc6d5750, 0x52833f, 0x26b68133, 0x1d5ff0da, 0x12bd99df, 0x3529d393, 0x9bbf6a4, 0x229829b3, 0x302b}}},
{/*.x =*/{/*.val =*/{0x286df50d, 0x313bb405, 0x6f92bd0, 0x179e4a87, 0x82060cd, 0x361d10b0, 0x1f02d6f, 0x58c24d7, 0x3a57}},
/*.y =*/{/*.val =*/{0x2859679b, 0x8562ca3, 0x3781a11d, 0x2abe07ae, 0x30a0dde0, 0x3cffcb95, 0x1f32f516, 0xe1ced66, 0x85e1}}},
{/*.x =*/{/*.val =*/{0x388f7e09, 0xaa8ad9f, 0x27d92cde, 0x280dde6e, 0x1dc0beb3, 0x384b9691, 0x5fcbbd8, 0x218f53c8, 0x5e6a}},
/*.y =*/{/*.val =*/{0x8dfca97, 0x2f58a19d, 0x3b4cfe3b, 0x23940dc8, 0x140234a6, 0x12a347da, 0x8edfc44, 0x681e28e, 0xc257}}},
{/*.x =*/{/*.val =*/{0x1df66583, 0x3b2a229b, 0x25580609, 0x6433e68, 0x1ea87603, 0x38bdfbf, 0x2fd019c1, 0x1c6d48f0, 0x5281}},
/*.y =*/{/*.val =*/{0x3f480c26, 0x3407b39, 0x3de01414, 0x8104f71, 0x1e8fb495, 0x2f3a351a, 0x27a6598, 0xe575ec3, 0x7b2c}}},
{/*.x =*/{/*.val =*/{0x2521b3ff, 0x38a61193, 0x1aa750ce, 0xf01c5fa, 0x2e24a523, 0x1134afa6, 0x1455c75e, 0x138c0432, 0x248}},
/*.y =*/{/*.val =*/{0x269da7e, 0x306b92e4, 0x23ac8bbc, 0x1c01b7a4, 0x2d0eebad, 0x30acf0ac, 0x3e30d07e, 0x34282a88, 0x9619}}},
{/*.x =*/{/*.val =*/{0x692fd1, 0x2c982585, 0x3d90dfe2, 0x3d0f1b32, 0x1f190edc, 0x2ab7bd2c, 0x1ff800e0, 0x322d2640, 0x4e53}},
/*.y =*/{/*.val =*/{0x328625e0, 0xd24c39c, 0x3fc97539, 0x1e943695, 0x219da1a8, 0x335c269c, 0x1a01e186, 0xf93d350, 0xdd6e}}},
{/*.x =*/{/*.val =*/{0x3549827b, 0x2338d5f6, 0x121bd614, 0x313dfcf8, 0x2ce311fc, 0x4b81b78, 0x375f3a82, 0x343d7834, 0xce47}},
/*.y =*/{/*.val =*/{0x2faed097, 0xf32697f, 0x5769df4, 0x39964bfc, 0x39ad0f29, 0x244e7f96, 0x30d49d58, 0x263ee658, 0x15c6}}},
{/*.x =*/{/*.val =*/{0xc43da59, 0x3747b53a, 0x3a48ca2f, 0x6911b8a, 0x6cf9bc9, 0x1c4ebfe0, 0x21a3319b, 0x1f592302, 0x7115}},
/*.y =*/{/*.val =*/{0x248d28ac, 0x1f7884ad, 0xcb6ad56, 0x33c28fe9, 0x11ab13fc, 0x28440e45, 0x303053f2, 0x35451759, 0x3d53}}},
{/*.x =*/{/*.val =*/{0x3e889756, 0x37606ba6, 0x3004bb25, 0x1ed9265e, 0x1899f3f2, 0x3365ec9c, 0x1fea8226, 0x22f0cc84, 0x762e}},
/*.y =*/{/*.val =*/{0x3ca6b774, 0x17896781, 0x84fa5e2, 0x1cb6cc52, 0x2e34719, 0x3313c526, 0x3e97c3c7, 0x250982bc, 0xc028}}},
{/*.x =*/{/*.val =*/{0x26714560, 0x1d560296, 0x256c6c28, 0x1fc8409f, 0x25a85c24, 0x1fbd93c6, 0x2d36b9d4, 0xa9d55e6, 0x38b8}},
/*.y =*/{/*.val =*/{0x2774299e, 0x36a1ccd2, 0x3716284a, 0x253c8efb, 0x2434597d, 0x3d58d185, 0x21ef428b, 0x29a5dbc9, 0xf9d8}}},
{/*.x =*/{/*.val =*/{0x1b720b26, 0x188bac12, 0xccfcd07, 0x3ca0d7e6, 0x39062026, 0x1aefb504, 0x168ee1f4, 0x316ba6b2, 0x3e10}},
/*.y =*/{/*.val =*/{0x2dd92db5, 0x11ba631e, 0x3e09e433, 0x3fde6936, 0x215e28e2, 0x1996ca1c, 0x288915a8, 0x31b3ff90, 0xc735}}},
{/*.x =*/{/*.val =*/{0xc15cf94, 0x3710a097, 0x12082845, 0xff5aa0, 0x3569f8bd, 0x1bdc4615, 0xd97eb79, 0x2979dbec, 0x1dc5}},
/*.y =*/{/*.val =*/{0x140ef8a2, 0x3e95399e, 0x25d97f94, 0xb6f12d6, 0x72d0c65, 0x1ccc46a4, 0x367d6019, 0x22b89d5f, 0x855b}}},
{/*.x =*/{/*.val =*/{0x78ee8d, 0x3c142473, 0x6919442, 0x2fc83394, 0x1b4ff64e, 0x3dc98eaa, 0x1a9be25f, 0x15eb6167, 0xd08e}},
/*.y =*/{/*.val =*/{0x2da63e86, 0x265fd370, 0x22ed9de, 0xfbdf3e5, 0x3e6df412, 0x5cbb9d5, 0x88d72d6, 0x25e612ad, 0x852e}}},
{/*.x =*/{/*.val =*/{0xe9c22bc, 0x10eb950c, 0x1bcc42fd, 0x3699f5a4, 0x3c7be601, 0x2cd11366, 0x2eb23765, 0x33a97a67, 0x5335}},
/*.y =*/{/*.val =*/{0xbdacb60, 0x30b099cb, 0xa1f19b3, 0x30c308db, 0xeb86ac8, 0x1fc203c3, 0x5224a06, 0x34081da7, 0x3bf8}}},
{/*.x =*/{/*.val =*/{0xff4de54, 0x2f079885, 0x1d3c2be5, 0x32af647a, 0xa2858a5, 0x100c73c5, 0x202a2c3b, 0x370d577c, 0x5716}},
/*.y =*/{/*.val =*/{0x10100fa5, 0xfa93f55, 0x47e417d, 0x3cffb334, 0x1324c5eb, 0x2a9986a6, 0x383f391e, 0x1b100296, 0x985f}}},
{/*.x =*/{/*.val =*/{0x2336a875, 0x108cff13, 0x19d064c1, 0x3b71c748, 0x2f1b5099, 0x15be606, 0x2d4dd947, 0x16786af8, 0x24a6}},
/*.y =*/{/*.val =*/{0x1112057c, 0x3cffa170, 0x1e0b96ab, 0x2911927a, 0x1cf34f69, 0xcc6f51f, 0x27240468, 0x2beb142f, 0xd3e1}}},
{/*.x =*/{/*.val =*/{0x761d58d, 0x12eabcce, 0xd60e2f3, 0x1326f902, 0x20df7aca, 0x9028d5c, 0x3614610a, 0x1849e08f, 0xb8c4}},
/*.y =*/{/*.val =*/{0x1d1051a4, 0xe3a82ea, 0x2107c5b6, 0x1d411e17, 0x33c5053f, 0x1163da5f, 0xe37d14a, 0x365b145c, 0x8f9e}}},
{/*.x =*/{/*.val =*/{0x1166ff40, 0x537a868, 0x1fff36da, 0x3bafd290, 0x80a2eca, 0x20497639, 0x18d2b7c7, 0x100cc620, 0x6b00}},
/*.y =*/{/*.val =*/{0x1d71b847, 0x2dd04c3a, 0x3f3ede9e, 0x1a20fdb9, 0xbf2f007, 0x250e8164, 0x2fac9968, 0x6ceba2a, 0x41cd}}},
{/*.x =*/{/*.val =*/{0xd6bf1f, 0x114841ae, 0x24fcbb0, 0x2f40cfa6, 0x3346b946, 0x87a49da, 0xb83ca35, 0x1cd0d147, 0xc333}},
/*.y =*/{/*.val =*/{0x3cb01f48, 0x25796108, 0x2266162f, 0x2e8d9083, 0x2c315598, 0x3fcc6bdc, 0x12cda13d, 0x3a4e46e0, 0x2eef}}},
{/*.x =*/{/*.val =*/{0x34d9279c, 0x12d43f2a, 0x99a0075, 0x1e171e64, 0x3a845c28, 0x15c0bb20, 0x22c5776b, 0x38539f8a, 0x7121}},
/*.y =*/{/*.val =*/{0x2f97b82e, 0x1c80a5f8, 0x1100d1ec, 0x3e8a0cd2, 0x35046e47, 0x2e865b4c, 0x105ca520, 0x30028c67, 0xf194}}},
{/*.x =*/{/*.val =*/{0x2127b756, 0x2ea1ffd, 0x3a097048, 0x10a2f92a, 0x20b41603, 0xd8b6941, 0x1f12672d, 0x1e0bdc5b, 0x6d8c}},
/*.y =*/{/*.val =*/{0x3f172571, 0x1547dd2a, 0x17cdcca6, 0xea9b68b, 0x134daf4e, 0x26a0b4db, 0x1b911145, 0x37c225bf, 0x99ae}}},
{/*.x =*/{/*.val =*/{0x11a3c43c, 0x1312cb15, 0x2cee258e, 0x3dc072a3, 0x2e67140d, 0x307cad2a, 0x2cd5b48c, 0x36a519f2, 0x56c9}},
/*.y =*/{/*.val =*/{0x20d7c9ed, 0x9362df4, 0x2edcaa18, 0x3503fe4c, 0xb685241, 0x31e59377, 0x39ec2f33, 0x1ab2d0b1, 0x38d4}}},
{/*.x =*/{/*.val =*/{0x2df771c8, 0x27892740, 0x2094c87b, 0x1694847b, 0x1f875033, 0xb0acf00, 0x1c9029d3, 0x151b648b, 0xb71e}},
/*.y =*/{/*.val =*/{0x13f48c51, 0x114e89be, 0x1bba2862, 0x2f548ad5, 0x2288f426, 0x4a93333, 0x1f900789, 0x3bea33b2, 0xe7cc}}},
{/*.x =*/{/*.val =*/{0x2ee40896, 0x27f5e5b0, 0x1177f5bf, 0x2b8dea49, 0x261e6aa1, 0x1b819399, 0x36de46bb, 0x3c06c124, 0x7a0d}},
/*.y =*/{/*.val =*/{0x44a7569, 0xb6393bc, 0x117da7f2, 0x8a28a35, 0x290e9aaa, 0x35abfd7a, 0x2fcd1b2a, 0x1d6038d5, 0xb446}}},
{/*.x =*/{/*.val =*/{0x6e1346b, 0x28661277, 0x5af1c5e, 0x2f9ec40e, 0x1152c05a, 0x31d87c53, 0x2d10be54, 0x1a3fc260, 0x690}},
/*.y =*/{/*.val =*/{0x17226c13, 0x2ed62953, 0xc6026e7, 0x3da24e65, 0x6442aa4, 0x176caf42, 0x3de26da8, 0x38f8242f, 0xb863}}},
{/*.x =*/{/*.val =*/{0x3235c795, 0x2138aef1, 0x3d541d75, 0x362563a, 0x1c89d70b, 0x2c16cdf4, 0x3974b393, 0x11890d7b, 0x63c}},
/*.y =*/{/*.val =*/{0x1b110258, 0x3ccb7025, 0x249a9bd3, 0x12b2eb3e, 0x1c85b69e, 0x3d98364c, 0x38404431, 0x26ee44c0, 0xe27f}}},
{/*.x =*/{/*.val =*/{0x2c1cbaab, 0x34de9fc5, 0x33d564cf, 0x32ae1e40, 0x30635c1a, 0x2adb0629, 0x16071598, 0x2ba63ecd, 0xd031}},
/*.y =*/{/*.val =*/{0x5116b26, 0x30e411fe, 0x3d65fdc4, 0x3ed293f6, 0xb4dcf6d, 0x39301ab7, 0x584e8e6, 0x25ad3a55, 0x4151}}},
{/*.x =*/{/*.val =*/{0x1affca70, 0x3f44d85f, 0x14ce5fd1, 0x1addc21d, 0x12d1f999, 0x3565346a, 0x3861d3ff, 0x47bce91, 0xd4c0}},
/*.y =*/{/*.val =*/{0x3d9c4777, 0x31fcb8a5, 0x256ebb09, 0xbd1ec15, 0x2b2906b2, 0x1d086400, 0x21566287, 0x12e620e9, 0x90b2}}},
{/*.x =*/{/*.val =*/{0x17592d55, 0x300d67b3, 0xe350192, 0x356e51d0, 0x3ce3b106, 0x3fbda58c, 0x1052608a, 0x31b6f128, 0x5d2e}},
/*.y =*/{/*.val =*/{0x2f5183a7, 0x19b9743a, 0x11151742, 0xa9ef36b, 0xcd6950e, 0x1c43e89a, 0x245eb58f, 0x337e271b, 0xa92}}},
{/*.x =*/{/*.val =*/{0x255bf84c, 0x1d12e3e3, 0x30d9027a, 0x1931bb55, 0x3cae4fd9, 0x34f09488, 0x16cc8e5d, 0xa2673ae, 0x6278}},
/*.y =*/{/*.val =*/{0x1f15fa2a, 0x3d473ead, 0x1d176ed6, 0x8379f7, 0x3267839a, 0x1525c8a5, 0x1a28901c, 0x2b290244, 0xd670}}},
{/*.x =*/{/*.val =*/{0x339715c2, 0x2651c743, 0x18a529a3, 0x19487e, 0x33fedd69, 0x7de33a8, 0x23d85b41, 0x27a23c66, 0x2f18}},
/*.y =*/{/*.val =*/{0x171dfea, 0x1a98d611, 0x36854f06, 0xcccf8b0, 0x10f9f7eb, 0x211d7b4, 0x1d7cfdf7, 0xe7e3cf1, 0xc91a}}},
{/*.x =*/{/*.val =*/{0xa222636, 0xd7de0d8, 0x299b9d3, 0x1e81212d, 0x2f88e93a, 0x3ac63cd9, 0x8f0e572, 0x2fb8c76f, 0xe583}},
/*.y =*/{/*.val =*/{0x36b01c43, 0x3ac98e19, 0x18800b01, 0xfa7944d, 0x1dc3ac25, 0x9d40507, 0x1ddd7416, 0x1479107b, 0x75b0}}},
{/*.x =*/{/*.val =*/{0x138011fc, 0x1c049c00, 0x17285626, 0x165a99eb, 0x200a4d83, 0x2c4cc208, 0x1eb11156, 0x4e8c205, 0x6e83}},
/*.y =*/{/*.val =*/{0x3f15ab7d, 0x2b2da7e8, 0x1c51f9a6, 0x2be456ba, 0x1ac30426, 0x4b6c807, 0xf204c1a, 0x2062f709, 0xc147}}},
{/*.x =*/{/*.val =*/{0x195b6f7e, 0x25527d71, 0x38b2021f, 0x2ccad4f4, 0x1876cdbe, 0x14eab42, 0x1a30c83a, 0x1f474133, 0xa5ac}},
/*.y =*/{/*.val =*/{0xab19c84, 0x236edcc2, 0x1818a484, 0x38e4583d, 0x19ee1b99, 0x30f2491f, 0xf55b36c, 0x2282ad50, 0xdf0b}}},
{/*.x =*/{/*.val =*/{0xe81c1bc, 0x24e92b93, 0x2bb5b33b, 0x14d97962, 0xce767d2, 0x2056e35a, 0x4635ad, 0x3c15197, 0x336}},
/*.y =*/{/*.val =*/{0x166cbedd, 0x1b74a259, 0x8115017, 0x5ca3ad7, 0x30675323, 0x1a710944, 0x350014ff, 0x2d7e4315, 0x7e48}}},
{/*.x =*/{/*.val =*/{0x14bc0324, 0x2a208b00, 0x24d2cfc5, 0x21fc0a35, 0x2f119155, 0x198968d9, 0xe7c338e, 0x299908fa, 0xb96b}},
/*.y =*/{/*.val =*/{0x36c2ee15, 0x2d3afff6, 0x25ba8374, 0x33948a51, 0x1876b383, 0x3119268a, 0x285dfbea, 0xb336cee, 0xe83c}}},
{/*.x =*/{/*.val =*/{0x30b7b678, 0x9d76cce, 0xf638166, 0xf10c46f, 0x2b6c76f1, 0x21af2909, 0x231ba19, 0x125ccd39, 0x186e}},
/*.y =*/{/*.val =*/{0x38d91fc1, 0x1e81dbcb, 0x9535dca, 0x1dc8951, 0x37e67e11, 0x3f209702, 0x3bd84aa7, 0x18392601, 0xc0d4}}},
{/*.x =*/{/*.val =*/{0xbb9dc8f, 0x23226e1, 0x1edd333d, 0x2a7a4fbd, 0x2787d1ab, 0x3dc0d4d4, 0x26864248, 0x1073b870, 0xfd99}},
/*.y =*/{/*.val =*/{0x259780d5, 0x10fab94f, 0x2fe938d7, 0x1cacbf7b, 0x859e678, 0x25f815e2, 0xe6f46de, 0x3b1d6f50, 0x7a41}}},
{/*.x =*/{/*.val =*/{0x3b963645, 0xfa50cb0, 0x271f1f8e, 0x336ca01f, 0x3132fb2d, 0x11e068b8, 0xa63e6e7, 0x2553ec6e, 0xc5f0}},
/*.y =*/{/*.val =*/{0x8be2dd, 0x2fe21d3c, 0x47be4ed, 0xc140ac0, 0x20d7e6a3, 0xf2d1009, 0xb6fb18a, 0x34c4086c, 0xd552}}},
{/*.x =*/{/*.val =*/{0x3b6aa206, 0x370ed72e, 0x31c19bce, 0xd5807fd, 0x1ac744bd, 0x4e3fc55, 0x1f7d2ec7, 0x215da31f, 0x9dac}},
/*.y =*/{/*.val =*/{0x13b30b86, 0x235f518a, 0x23ff64cc, 0x1aaae446, 0x3bde77fa, 0x90ceda, 0x37bba791, 0x32b82b93, 0xb23c}}},
{/*.x =*/{/*.val =*/{0x123809fa, 0x238ae3b7, 0x1d954be1, 0x21172cd4, 0x51f08fd, 0x24cd8fc9, 0x9f228ba, 0x76f8b94, 0x3838}},
/*.y =*/{/*.val =*/{0x331fed52, 0x35c1d460, 0x2d8f24db, 0x207f32cc, 0xeb1cc36, 0x10169548, 0x117dcb09, 0xb4283ee, 0xe4a3}}},
{/*.x =*/{/*.val =*/{0x3663da4, 0x2059b064, 0x35d0b81f, 0x28d8a467, 0x4aa2ba5, 0x229bb5f1, 0x1705e680, 0x128d5aa9, 0x6a66}},
/*.y =*/{/*.val =*/{0x33fc22c4, 0xa0c4fec, 0x26c04c9c, 0x2645849f, 0x3f0cd508, 0x21bb065a, 0x1e98b29f, 0x496553f, 0x449a}}},
{/*.x =*/{/*.val =*/{0x5ed815e, 0x3dc0b54, 0x1c017b47, 0x3d102af0, 0x147ad166, 0x17eb4865, 0x34a32ebb, 0x36b19e7d, 0x5568}},
/*.y =*/{/*.val =*/{0x602df0, 0x26efd930, 0x2582151d, 0x17dfbb8, 0x73f2beb, 0x35bf8074, 0xba64580, 0x3e1d09e2, 0x7a85}}},
{/*.x =*/{/*.val =*/{0x1ee840f8, 0x105d4ebc, 0x13c98f26, 0x4070980, 0x325cbe11, 0x2752e0a5, 0x3be4ecfc, 0x16a03720, 0x8719}},
/*.y =*/{/*.val =*/{0x27eed395, 0x8a09a41, 0xa8dfa80, 0x22709c24, 0x1a2138dd, 0x3db76d2a, 0xe3aeb15, 0x773265b, 0x603}}},
{/*.x =*/{/*.val =*/{0x2bf05bd6, 0xe67c139, 0x12a99465, 0x3d5b80c8, 0x70deca2, 0xbd47fad, 0x4fe9083, 0xc906fb9, 0x900c}},
/*.y =*/{/*.val =*/{0x300d358b, 0x394ab4ef, 0x4efb15d, 0x2614d60f, 0xb2439d6, 0x31c8115c, 0x1f0f5f95, 0x3e7a3a2c, 0x6c31}}},
{/*.x =*/{/*.val =*/{0x272e294d, 0x39becbde, 0xd0dd5b, 0x163ae8fc, 0x37edc6f1, 0xa27abb7, 0x134b91a6, 0x39201735, 0x29df}},
/*.y =*/{/*.val =*/{0x2c469b52, 0x104dc983, 0x129ee694, 0x3c65870e, 0x205e4dd1, 0xd39d622, 0x272e19b4, 0x3609b401, 0xbf66}}},
{/*.x =*/{/*.val =*/{0x33773f7, 0x31fc011b, 0x1b599953, 0x3513f4d1, 0x2372a150, 0x10430027, 0x1236d3e1, 0xc89bd77, 0x355b}},
/*.y =*/{/*.val =*/{0x1887c182, 0x14f0ffc, 0xe251090, 0x977de33, 0x21fcb81e, 0x43bb774, 0x303ad49f, 0x29201c11, 0x8ec}}},
{/*.x =*/{/*.val =*/{0x141fcc76, 0x10109c92, 0x227146b3, 0x34d666d9, 0x278a558d, 0x2ca70c2, 0x2d4ad848, 0x30c91061, 0x2a1e}},
/*.y =*/{/*.val =*/{0x2451553f, 0x2837c990, 0x382a3120, 0x1549d580, 0x3e3b61b2, 0x2fb05054, 0x1cacf4c1, 0x20b9a3d9, 0xe01e}}},
{/*.x =*/{/*.val =*/{0x2bfd913d, 0xfe5580f, 0x254c9eac, 0x29a039bb, 0x2a8d2050, 0x1e82130, 0x3ddf874d, 0xaa9fa41, 0x3636}},
/*.y =*/{/*.val =*/{0x52e243d, 0x113e6bab, 0x2b2faafc, 0xc2ec435, 0x1a2a82d8, 0x18910dc3, 0xafd5341, 0x1e19db2e, 0x48f2}}},
{/*.x =*/{/*.val =*/{0x375732c0, 0x1661934d, 0x33777aa8, 0xbf979c8, 0x31096e20, 0x29746df2, 0x34b9b624, 0x33cc7e2d, 0x8f3c}},
/*.y =*/{/*.val =*/{0x25b9415b, 0x1cef7979, 0x858825e, 0x39a1dd5, 0xe53d8a9, 0x3d1b665f, 0x1e53189e, 0x334f8b4e, 0x67f1}}},
{/*.x =*/{/*.val =*/{0x34889f3f, 0xa87e0e4, 0x1095da7f, 0x3faca2d1, 0x29b0ebc4, 0x28d1a6c5, 0x2119621e, 0x409bc6c, 0x8799}},
/*.y =*/{/*.val =*/{0x3bb792b, 0x278b7e6f, 0x286037b4, 0xcbd86fc, 0x3f279de9, 0xbcb2dc5, 0x11d96213, 0x2e53296a, 0xddea}}},
{/*.x =*/{/*.val =*/{0x2fa4e07e, 0x37614061, 0x3423bec4, 0xb29d215, 0x337d9a49, 0x7040ffe, 0x35718422, 0x2be545f7, 0x37d7}},
/*.y =*/{/*.val =*/{0x2e020165, 0x24db61da, 0x18a65a4c, 0x8faa25e, 0x19c556c4, 0xecd4b18, 0x133c8f47, 0x1ea4a06a, 0x35bc}}},
{/*.x =*/{/*.val =*/{0x3aee42db, 0x3e7f4af, 0x330714a7, 0x2eef16d1, 0x2cbfc1d9, 0x2dbb6e47, 0x19150fc7, 0x9f9f66d, 0xcc34}},
/*.y =*/{/*.val =*/{0x15d87bdb, 0x188a7004, 0x272422dc, 0x3972eb63, 0x21520010, 0x38ff4fec, 0x1c6a1885, 0x26106948, 0xea24}}},
{/*.x =*/{/*.val =*/{0x2e96e4f1, 0x2c29c594, 0x2e80030c, 0x17c05802, 0x1efccaff, 0x1ddc20cd, 0x197e201, 0x523c066, 0x56bb}},
/*.y =*/{/*.val =*/{0x2eb0582e, 0x2227c067, 0x4af0eb5, 0x4f47480, 0x30ea9f73, 0xfb62f8, 0xa33beb, 0x2129584c, 0xa095}}},
{/*.x =*/{/*.val =*/{0x1f23d1f, 0x1315fd66, 0xc036d8a, 0x2c97f5c8, 0x18a0a6b6, 0x3522787f, 0x30bbbbd3, 0x3a054f59, 0xb398}},
/*.y =*/{/*.val =*/{0x32ff3fc, 0x160faffe, 0x26156cd1, 0x1e4762b4, 0xba52ea, 0x1ffacbec, 0x1f47f07f, 0x270895cb, 0x69f5}}},
{/*.x =*/{/*.val =*/{0x34fb6a39, 0x9f576c6, 0x2ac90ecd, 0x235ab493, 0x1e119b8b, 0x3f4a59c, 0x1ea6e43e, 0x25abd5e5, 0x459}},
/*.y =*/{/*.val =*/{0x725bb62, 0x30ab6de8, 0x20010535, 0x388a2d03, 0x2eef0373, 0x218a0837, 0x26c33672, 0x2b8338e0, 0xd3f9}}},
{/*.x =*/{/*.val =*/{0x319888e9, 0xe73c9e4, 0x2448a8b4, 0x4ae9afc, 0x2681673d, 0x1834c0a5, 0x3a6e2dde, 0x3a9dceb0, 0x1f90}},
/*.y =*/{/*.val =*/{0x2f113b79, 0x1bf7f25f, 0x19522e65, 0xdd47fb9, 0x2b96a821, 0x54f49c7, 0x2a10e958, 0xd9f0576, 0x89be}}},
{/*.x =*/{/*.val =*/{0x1bf6c42, 0xfaacf77, 0x19887539, 0x1e4f66c4, 0xee74ef7, 0x1195205b, 0x105c7ee7, 0x6cf35b0, 0xd02e}},
/*.y =*/{/*.val =*/{0x7bc54cc, 0xcd8ca3e, 0x31b6aac1, 0x2961e6e4, 0x124526bc, 0xc89c343, 0x22258127, 0x1d3cf2a3, 0x9a0b}}},
{/*.x =*/{/*.val =*/{0xf6c15c2, 0x7bd1fc6, 0xf38f1ca, 0x39d90532, 0x1143483d, 0x1ce604e7, 0x1757fea1, 0x2a14af28, 0x8456}},
/*.y =*/{/*.val =*/{0xb174134, 0x3c7bf0ca, 0x16fb671f, 0x3243c261, 0x79e7f4c, 0x127b0dc4, 0x2cdefd3, 0x3691b521, 0xe1b9}}},
{/*.x =*/{/*.val =*/{0x27df614a, 0x1d47ebb3, 0x24705eb2, 0x27f39a4c, 0x3e1804d7, 0x91aa7fa, 0x33049180, 0x3966340b, 0xa7d2}},
/*.y =*/{/*.val =*/{0x159b4c8d, 0x3c32f0e5, 0x19bc8656, 0x3c01de54, 0x3fa2de53, 0x207bb042, 0x10172c79, 0x33512f0, 0x62a2}}},
{/*.x =*/{/*.val =*/{0xca1c4f9, 0x16d0aa86, 0x2b7e2823, 0x13bf8d32, 0x1f16f44f, 0x2e0f698, 0x1728c4c4, 0x3de3c8af, 0x7815}},
/*.y =*/{/*.val =*/{0x3778bc15, 0x2ac7a8da, 0x177d1e19, 0x2d0b7985, 0x18c35d5c, 0x24f3cc51, 0x1af6a7dd, 0x7a334e, 0xc1c6}}},
{/*.x =*/{/*.val =*/{0x3ed5996, 0x37933a2d, 0x360af53b, 0xc7f9664, 0x1b92468, 0x3ef240ca, 0x1a4ea492, 0x2dfa7fa6, 0x1a46}},
/*.y =*/{/*.val =*/{0x28c85cae, 0x3b93b447, 0x352745c2, 0x21e52a7b, 0x23ebf550, 0x3b821281, 0x1dc570e3, 0x3a07a8fc, 0x683c}}},
{/*.x =*/{/*.val =*/{0x2e2e607b, 0x3d34d673, 0xf36aa1, 0x2a87bb1b, 0x3fdd2b88, 0x447d595, 0x1772c20d, 0xfd9ff4c, 0x773}},
/*.y =*/{/*.val =*/{0xc614763, 0x28bcc477, 0x3e017d26, 0x38ef7816, 0x3156f489, 0x18ea316e, 0x38285eae, 0x3a3eeb05, 0xfd9f}}},
{/*.x =*/{/*.val =*/{0x354d61d1, 0x3ecb8807, 0x30b99baf, 0x549d76f, 0x1bf21517, 0x23e67901, 0x3ed8b9c5, 0x4f91d89, 0x875e}},
/*.y =*/{/*.val =*/{0x945747, 0x12a27470, 0x273c5309, 0x277543a5, 0x399e3601, 0x1b784f4d, 0x56e8f64, 0x37712a59, 0x2d8f}}},
{/*.x =*/{/*.val =*/{0x2fd53ed3, 0x17245d60, 0x1a56ccef, 0xfdd3ee7, 0x1f7c4916, 0x3d82e4c7, 0x372ad5b8, 0x2f56659, 0x2084}},
/*.y =*/{/*.val =*/{0x1a7a7132, 0x1c50ff94, 0xe708998, 0x21f11ce5, 0x3afac254, 0x2f51da9a, 0x18243487, 0xd25f3b0, 0xf299}}},
{/*.x =*/{/*.val =*/{0x2032f9a2, 0x122e38a4, 0x21fc6ccc, 0x159bd43e, 0x3f8f63ce, 0xdd32cc7, 0x32640ed2, 0x31af669a, 0x25aa}},
/*.y =*/{/*.val =*/{0x2b51d4f0, 0x1d88c284, 0x19f3d9e, 0x2620eef1, 0x3190f655, 0xcbd53d3, 0x546c16f, 0x318ee991, 0xf5a6}}},
{/*.x =*/{/*.val =*/{0x14445a7a, 0x4c72ea, 0x1cf1ec59, 0x254d7c20, 0x1c8d5df, 0x3c46db18, 0x2c6bfb12, 0x3bef27c1, 0xf82f}},
/*.y =*/{/*.val =*/{0x242a7a98, 0x18eb3861, 0x240d1e59, 0x720ed91, 0xb4a4b5, 0xe50b065, 0x36b67550, 0xdef71be, 0x94bb}}},
{/*.x =*/{/*.val =*/{0x362b8df9, 0xcb7ede8, 0x1da21c57, 0x7f6d47d, 0x11c8bd49, 0xcb74b72, 0x1c0cd9a8, 0x37634fb7, 0x11c4}},
/*.y =*/{/*.val =*/{0x296edd30, 0x60c9e79, 0x2ec5448f, 0x2df9f498, 0x10fb6417, 0xd810e22, 0xac2aae4, 0x361da2fd, 0x45b3}}},
{/*.x =*/{/*.val =*/{0x1def001d, 0x13c89769, 0x9ba27ef, 0x3e6ef5a6, 0x23b64b21, 0x2f47027, 0x22caf20e, 0x28cb6c9f, 0xa549}},
/*.y =*/{/*.val =*/{0x30624783, 0x3576c69f, 0x2c9705ad, 0x5078a98, 0x259456eb, 0x330c3b62, 0x166cbdf4, 0x1e9e41b6, 0x799b}}},
{/*.x =*/{/*.val =*/{0x206e37a, 0x91de2b1, 0x504731a, 0x23062523, 0x1a274f4d, 0x3a0fd1ad, 0x28002cf4, 0x2ae1fca1, 0xb526}},
/*.y =*/{/*.val =*/{0x30c5ccab, 0x3cd9e3ff, 0xfa392ab, 0x3394e6c0, 0x26f18d28, 0x2ab3b582, 0xd8ed5c, 0xd75de04, 0x641f}}},
{/*.x =*/{/*.val =*/{0x39d9123f, 0x3a4e0c7a, 0x388ba7d7, 0x3f1e46c7, 0x3d1e9129, 0x17e3b2be, 0x26a6f2f9, 0x14e3dcaa, 0x341b}},
/*.y =*/{/*.val =*/{0x18bb9a40, 0x27a82abc, 0x12a26ed1, 0x37b9a9c1, 0x24d9ac72, 0x3cbc1044, 0x1c59eba6, 0x491c670, 0x5858}}},
{/*.x =*/{/*.val =*/{0x760cb4d, 0x25763239, 0x33a69b68, 0x21f81500, 0x30673803, 0x154bafb0, 0x9df521a, 0x1fb94e37, 0xbca3}},
/*.y =*/{/*.val =*/{0x24e10d88, 0x29dc18da, 0x8df9cf3, 0x5d5563c, 0x2ffbad9f, 0x22e020ee, 0x2d4b2263, 0xec707ef, 0x3ce0}}},
{/*.x =*/{/*.val =*/{0xfb64db3, 0x1ee6354e, 0x1dd53841, 0x3b79328e, 0x13b8d6a7, 0x2ee0fef9, 0x1ccb740b, 0x8e48a6f, 0xc114}},
/*.y =*/{/*.val =*/{0x3c0259be, 0x8c33a7f, 0x14567d1e, 0x1d602413, 0x178bd1a8, 0x3b3793fa, 0x6fc2a5c, 0x3db716d2, 0x1237}}},
{/*.x =*/{/*.val =*/{0x311349e2, 0x20cab77, 0x3524c058, 0x38fb3d05, 0x1ad78d60, 0x51fa690, 0x1c2e7e62, 0x20c931ae, 0xf805}},
/*.y =*/{/*.val =*/{0x1b2025fc, 0x3eb11a79, 0x26de88d5, 0x25262d58, 0x21122350, 0x206a983a, 0x56cdcde, 0x39682a2, 0x95c6}}},
{/*.x =*/{/*.val =*/{0x2e548418, 0x1cdc7446, 0x9839231, 0x39221f62, 0x3a341adc, 0x1cac14d, 0x17e292fb, 0x2c327920, 0x2e6d}},
/*.y =*/{/*.val =*/{0x10a2b918, 0x1a5e4b00, 0x1c3f5f1e, 0x23875cf8, 0x2911644b, 0xc5225e2, 0x36fbfa21, 0x1a90475d, 0x74eb}}},
{/*.x =*/{/*.val =*/{0x3ccbdf95, 0x2b8fa3b1, 0xa5853b4, 0x8ac7291, 0x22f5494, 0x360c0ab2, 0x313050f, 0xbb60387, 0xcea0}},
/*.y =*/{/*.val =*/{0x324a006c, 0x39954baa, 0x2ecc53d9, 0x2e8a1483, 0x10b433b2, 0x3301f5b, 0x34a6f04e, 0x1b1b61df, 0xfc00}}},
{/*.x =*/{/*.val =*/{0x171c032b, 0x3536858a, 0x3afdc980, 0x1ad9a285, 0x766c5ff, 0x46d7f7f, 0x2603dd, 0x2a3f35b8, 0x71eb}},
/*.y =*/{/*.val =*/{0x1668359f, 0x1ead6a38, 0x34b4755e, 0x24c6b45d, 0xcbb7f71, 0x18145bd5, 0x1d39def6, 0x49892d8, 0xd2ff}}},
{/*.x =*/{/*.val =*/{0x3aaa138b, 0x37c367dc, 0x3786cd66, 0x3bee82fb, 0x671ff63, 0xfaf0631, 0x3ae28794, 0x389274f0, 0x417f}},
/*.y =*/{/*.val =*/{0xa1ae869, 0x7246ccd, 0x5566afd, 0x276bf7b0, 0x3a9e57c1, 0x2974a7c3, 0x23e38c20, 0x2275ef34, 0x235}}},
{/*.x =*/{/*.val =*/{0x307e636, 0x38562d04, 0x21611d97, 0x29df79cc, 0x2112c8b4, 0x2f0a6f68, 0x76443dd, 0x3c58058e, 0x2219}},
/*.y =*/{/*.val =*/{0x31f15109, 0x1e86cb5, 0x373af55e, 0x35c8c34f, 0x230bd6d, 0x1b53c6e, 0x2a2f61b8, 0x212b172d, 0x4a9}}},
{/*.x =*/{/*.val =*/{0x377220dc, 0x14ca7db7, 0x16023891, 0x27c96229, 0xe83bbd4, 0x27b40409, 0x2a8ad6a5, 0x3e507c9e, 0xffb2}},
/*.y =*/{/*.val =*/{0x1b32b3bc, 0x26083b0c, 0x35e5f9f3, 0x3948efcf, 0x59d2f2c, 0x3e5e242, 0x3be7a03c, 0x34ffe08a, 0xf97e}}},
{/*.x =*/{/*.val =*/{0xd9ed6c1, 0x1a2bad63, 0x3d593d6b, 0x139d16f0, 0x1edd0ec2, 0x3f061dc1, 0xf53e80b, 0xcdb72dd, 0x328}},
/*.y =*/{/*.val =*/{0x38fafeee, 0x3b1baf9b, 0x1cb494ad, 0x16fd37c9, 0xd7c8c26, 0x35650e88, 0x19f28c46, 0x260e04bf, 0x71a8}}},
{/*.x =*/{/*.val =*/{0x26da57e4, 0x2dd59229, 0x1cdd9f86, 0x31265bbf, 0x31bc1e98, 0x3a8a9d18, 0x118b9dbd, 0x36b8e60e, 0x690c}},
/*.y =*/{/*.val =*/{0x133f33bb, 0x2d8656d2, 0x295a3d42, 0x18f63ef3, 0x15894df8, 0x3f646fd6, 0x379a47a9, 0x371e59de, 0x840a}}},
{/*.x =*/{/*.val =*/{0x1cfb8036, 0x3e6262a9, 0xda35085, 0x3426a4b0, 0x167e833a, 0x45f747f, 0x247b48ae, 0x9d47ec5, 0xcff6}},
/*.y =*/{/*.val =*/{0x24f59de0, 0x10fced68, 0x20328258, 0x2962763d, 0x2143c678, 0x38d2d621, 0x2d1ac5f, 0x3b49af55, 0xcdf4}}},
{/*.x =*/{/*.val =*/{0x20ebec47, 0x1da4a12b, 0x142ca23d, 0x381398c4, 0x3b4ea72e, 0x10de9936, 0x27df9761, 0xe5dc744, 0xe8b6}},
/*.y =*/{/*.val =*/{0x2eb3d8a7, 0x32a7875c, 0x15fe035, 0x398b696, 0x3ff204be, 0x6555e5f, 0x32e11ae7, 0xb7e8107, 0x5f38}}},
{/*.x =*/{/*.val =*/{0x3319c869, 0x3df1bab8, 0x21eb2702, 0x2a7e575d, 0xcacdc18, 0x20e408bf, 0x33fc8d01, 0x1176605, 0x3018}},
/*.y =*/{/*.val =*/{0x12b856f0, 0x3031db27, 0x23d9a7bf, 0xaa13292, 0x222e3bca, 0x1890c835, 0x3b7b6f86, 0x315e0940, 0xac5f}}},
{/*.x =*/{/*.val =*/{0x18953133, 0x11df726c, 0x8721ae6, 0x2ced0a9d, 0xcdfa97f, 0xa01b03f, 0x1dd23881, 0xad3fb43, 0xa0b}},
/*.y =*/{/*.val =*/{0x34af0fc9, 0x2f0928dc, 0xed4ba94, 0x28e13a2c, 0x58c8d6f, 0x71b2a19, 0x2bf2f03c, 0x60b3ed6, 0xcda1}}},
{/*.x =*/{/*.val =*/{0x1f0a2a53, 0x3abc3b03, 0x16611e7, 0x772acfe, 0x29b892d5, 0xe515d0e, 0x3997c3a8, 0x146341f0, 0x6f86}},
/*.y =*/{/*.val =*/{0x333bfeb2, 0x4e695d1, 0x2a05f351, 0x153ddcba, 0x309968bf, 0x1dbaa569, 0x182f29b7, 0x3d85bf51, 0xd50a}}},
{/*.x =*/{/*.val =*/{0x278b4a0d, 0x1e78672f, 0x8c9be06, 0x3ed83c9f, 0x1c73ace4, 0xf5d6ed2, 0x3db4e1cb, 0x10bae9a8, 0x2f98}},
/*.y =*/{/*.val =*/{0x33f39758, 0xd4cafba, 0x3d54f320, 0x23bab9da, 0xbb8f48b, 0x32489c59, 0x355552a1, 0x35a4c2f7, 0x4774}}},
{/*.x =*/{/*.val =*/{0x3874b839, 0x444a1d5, 0x13d2b418, 0x10456ce5, 0x30b6aebe, 0x37c37ec8, 0x1e5a8053, 0x2e07f038, 0x3e03}},
/*.y =*/{/*.val =*/{0x3c0594ba, 0x3073959, 0x1ab5b8da, 0x39717c3f, 0x198f667d, 0x3d981d5c, 0x7f42c44, 0x3858f7fc, 0xd13a}}},
{/*.x =*/{/*.val =*/{0x39a7d197, 0x2eba434e, 0xea59459, 0x20ea3062, 0x2c234b5e, 0x23ff8288, 0x1f639477, 0x22950a03, 0xc2c5}},
/*.y =*/{/*.val =*/{0x9eeb5e9, 0x390732fe, 0x1ad82484, 0x11fb1151, 0x2d39a60a, 0x106ad8b, 0x20927573, 0xca20d9b, 0x72ea}}},
{/*.x =*/{/*.val =*/{0x23369217, 0x1d379b65, 0x6611ead, 0x70e5a40, 0x4eacdca, 0x289e3d50, 0xd624a21, 0x143ff2e9, 0x42dc}},
/*.y =*/{/*.val =*/{0x3e2dbc57, 0x30c25f88, 0xe01e841, 0x284e7b2a, 0xba853a7, 0x1e3d7c58, 0x5b1d7ed, 0x2687d98e, 0xa5ba}}},
{/*.x =*/{/*.val =*/{0x19251fa2, 0x1e7e8b49, 0x3c26cc92, 0x337ea0ae, 0x13d5e1bb, 0x1d1678dc, 0x1a1202b0, 0x31d972a4, 0x417}},
/*.y =*/{/*.val =*/{0x3ebc52fa, 0x24c1240a, 0x161ee899, 0x292c61dd, 0x6283ad9, 0x1a19d99f, 0x357f5349, 0x397544b1, 0x72d7}}},
{/*.x =*/{/*.val =*/{0x2cde4cf3, 0x26554187, 0x38a066ab, 0x10394d51, 0x1d9ae793, 0x30b49b45, 0x22c3be7, 0x2ad2b045, 0x384d}},
/*.y =*/{/*.val =*/{0x252d0566, 0x1f1e5ac8, 0x351ba73b, 0x10c28ce5, 0x34c6f01f, 0x13b5b68a, 0x1ca43bfb, 0x316f346e, 0xd6e3}}},
{/*.x =*/{/*.val =*/{0xa972627, 0x290d9a82, 0x2521e1f8, 0x24858100, 0x441a0e1, 0x2307bf2f, 0x3e15c819, 0x21c2526f, 0x8a31}},
/*.y =*/{/*.val =*/{0x6bb8af9, 0x1ed1ed59, 0x3efcbcce, 0x110d96b0, 0x7baa417, 0x1dfb4a16, 0x3a64d095, 0x1f21da3d, 0x64bb}}},
{/*.x =*/{/*.val =*/{0xa3a1550, 0x2951319f, 0x2ffdf279, 0x76a67e3, 0x38b75180, 0xc25db87, 0x157412dd, 0x1a6acd01, 0xebfc}},
/*.y =*/{/*.val =*/{0x1362f6e, 0x7d0afd9, 0x28c0b195, 0x20f20639, 0x34fd0779, 0x3c6676df, 0xb540a3d, 0x3a336e67, 0xe2ff}}},
{/*.x =*/{/*.val =*/{0x14f24bf1, 0x3e2ba88c, 0x2c500d25, 0x15500782, 0xe78708e, 0x1cdd2f0d, 0x2d024ec7, 0xeaf6dad, 0x6299}},
/*.y =*/{/*.val =*/{0x108d1b1d, 0x34eb50c5, 0x148c6775, 0x24d4c0b2, 0x3c429b1d, 0x34b2bf8c, 0x29b93a00, 0x1cac2bab, 0x86fb}}},
{/*.x =*/{/*.val =*/{0x39d681f9, 0x164153f9, 0x8feb9fc, 0x3383bbeb, 0x2c94b066, 0x1ffc9780, 0x3230888b, 0x3f7c9dd7, 0xc745}},
/*.y =*/{/*.val =*/{0x3bbb1247, 0xc5cd0d, 0x27d45c76, 0x36f4cd71, 0x2818678c, 0x4e531c3, 0x1e5e78a7, 0x8bcbdae, 0x5902}}},
{/*.x =*/{/*.val =*/{0x249a2115, 0x1dff54d1, 0x3a565ebe, 0x1e580245, 0x981aec, 0x1ab2a759, 0xc6c6dd4, 0x3014ac65, 0xfd73}},
/*.y =*/{/*.val =*/{0x26ba6cda, 0x1272adee, 0x29d421f0, 0x3d80558b, 0x37d6d904, 0x2aeac09b, 0x38844020, 0x1a307205, 0x6207}}},
{/*.x =*/{/*.val =*/{0x1b816b2f, 0x36e1b0d4, 0x228ee11f, 0x32de104, 0x2c5d5dee, 0x597f849, 0x11a676e8, 0x11b75965, 0x5a4d}},
/*.y =*/{/*.val =*/{0x33e86c60, 0x3e5ebae1, 0x33ecceba, 0x39b317e, 0x3dfcd6b5, 0xf89fe3c, 0x260ab028, 0x8e5b283, 0x77c9}}},
{/*.x =*/{/*.val =*/{0x31ce59e7, 0x110131b, 0x2d9919f3, 0x1db4e753, 0x324e6906, 0x359f05b6, 0x1f964c25, 0xbde79a8, 0x1bbc}},
/*.y =*/{/*.val =*/{0x379aa297, 0x14c8648, 0x3839618d, 0x2265bd03, 0x1bc5a36c, 0x36c5beb4, 0x1f1a8781, 0x32d32375, 0x281f}}},
{/*.x =*/{/*.val =*/{0x3bb80fa7, 0xd12172c, 0x30413886, 0x29f69aed, 0x20819f3a, 0x681af4c, 0xc2fbc0d, 0x38c7d8c2, 0x857}},
/*.y =*/{/*.val =*/{0x9366b2d, 0x3660847c, 0xd7016ab, 0xb8dc10f, 0xb714717, 0x1f327477, 0x172092d, 0x24d08eb8, 0xf643}}},
{/*.x =*/{/*.val =*/{0x3b6d6cd3, 0xe802af9, 0x38937883, 0x5984740, 0x25239734, 0x1a6e1c15, 0x3818481a, 0x19859fca, 0xea12}},
/*.y =*/{/*.val =*/{0x34f450be, 0x2b98a497, 0x3be1a88a, 0x325d4b7a, 0x145e25b1, 0x3844afc4, 0x2e3fdaac, 0x38b941e3, 0x21a4}}},
{/*.x =*/{/*.val =*/{0x1cff55c5, 0x1c48f509, 0x2275ec97, 0x13bf4a06, 0x2b4b635f, 0x4b079e0, 0x1442ca6c, 0x2b7f7ec9, 0xcf36}},
/*.y =*/{/*.val =*/{0x21a0228e, 0x3289e214, 0xd2706a, 0x151fb097, 0x19f207a7, 0xbd62cef, 0x768649c, 0x4859ab8, 0xd16a}}},
{/*.x =*/{/*.val =*/{0x125cb53b, 0x17a9e02b, 0x365eb3d0, 0x23f15763, 0x6272dab, 0x994c755, 0x25414494, 0x728acf7, 0xf474}},
/*.y =*/{/*.val =*/{0x295a4b7e, 0x39769e65, 0x1f86e5c1, 0x5aa3ad, 0x2c8f9c0d, 0x3ec3609e, 0x1f2f01c8, 0x1bd03c89, 0xc48d}}},
{/*.x =*/{/*.val =*/{0x3f2e070d, 0x160ff4e8, 0x12a6a98f, 0x2aadc731, 0x1047e229, 0x1cc70ee1, 0x34abff48, 0x297a410b, 0x4b72}},
/*.y =*/{/*.val =*/{0x296dd780, 0x112ea0bb, 0x2948c3de, 0x2d197774, 0xf3c10b0, 0x1deecdb4, 0x2e1cf602, 0x753875a, 0x599e}}},
{/*.x =*/{/*.val =*/{0x385912ec, 0xa1c0283, 0x6091134, 0x3e728139, 0x2f054327, 0x1265a52a, 0x35b786ab, 0x87538fe, 0xaa71}},
/*.y =*/{/*.val =*/{0xae35978, 0x4532c99, 0x2056cbdb, 0x384d2a33, 0x22edebfe, 0x1499ae5a, 0x9509c50, 0x3c1df6b4, 0xc690}}},
{/*.x =*/{/*.val =*/{0x3fd292dc, 0x2e01a893, 0x17714ce1, 0x1789a02c, 0x3d79d977, 0x201c34de, 0xf934ba4, 0x554cdc8, 0x4b99}},
/*.y =*/{/*.val =*/{0x17095ca6, 0xce97ff9, 0x3376afd4, 0x20c8f116, 0x301f5793, 0x3029d2d7, 0x3a226df, 0x1d525844, 0xe327}}},
{/*.x =*/{/*.val =*/{0x384da233, 0x2a560e3a, 0x1f362cd4, 0x13c36a04, 0x336ed9cf, 0x26f4ce3f, 0x25316a20, 0x32d365c7, 0x1eb7}},
/*.y =*/{/*.val =*/{0x17c43f18, 0x2e3a954c, 0x1cf0ae9c, 0xdb26660, 0x1ed0aba3, 0x3cef342f, 0x84ff826, 0xca2b91f, 0xd984}}},
{/*.x =*/{/*.val =*/{0x3bea0c68, 0x321042bc, 0x37b392b5, 0x10c048d9, 0x396faf09, 0x26f23a34, 0x2a3a2494, 0x258d3855, 0x3e41}},
/*.y =*/{/*.val =*/{0x1a45edb6, 0x32edbfdc, 0x3cda1ab, 0x2846518c, 0x693062f, 0xf2ff8dc, 0x321f7f37, 0x31676492, 0x123}}},
{/*.x =*/{/*.val =*/{0x17d4b84a, 0x2a605310, 0x1f433e69, 0x777d23c, 0x5070462, 0xa924b4a, 0x32fcb0c6, 0x26796371, 0xf13a}},
/*.y =*/{/*.val =*/{0x13fd1c81, 0x16643f15, 0xf2d9628, 0x38df51c4, 0x3fe06eb6, 0x2e473478, 0x3e995aa6, 0x323343c2, 0x33c2}}},
{/*.x =*/{/*.val =*/{0xe735a1e, 0x3c30ec51, 0x3e61fa05, 0xf8259a, 0x1202fc40, 0x23376b58, 0x356cb46b, 0x31f01e66, 0x678a}},
/*.y =*/{/*.val =*/{0x12f7c055, 0xd8e97dc, 0x1371457a, 0x1fffeccf, 0x105e8e59, 0x3fcf55c, 0x1285b7a7, 0x138cf669, 0x851}}},
{/*.x =*/{/*.val =*/{0x14c426d5, 0x30e07974, 0x22adf265, 0x29543e1e, 0x1fa93ab7, 0x1210c7e3, 0x2b66bd4c, 0x1d467823, 0x364c}},
/*.y =*/{/*.val =*/{0x1a5876c0, 0x21b51ca9, 0x7db7191, 0x231357c5, 0x2d95be16, 0x2c62c634, 0x1fa52f1e, 0x2d65d0b2, 0xfaa8}}},
{/*.x =*/{/*.val =*/{0x12fea1f9, 0x2c5f2ef1, 0x452b94, 0x3fc2d423, 0x106531c4, 0x3f76ad9c, 0x1f2e83bc, 0x22029574, 0xa6dc}},
/*.y =*/{/*.val =*/{0x3bc345e9, 0x2c705391, 0x268f7e63, 0x1ee276df, 0x2cbc5005, 0x1a0e845a, 0x367c3038, 0x2a151f70, 0x7ef1}}},
{/*.x =*/{/*.val =*/{0x1c7985c4, 0x2d84f9dc, 0x39e2b108, 0x12ff1256, 0x374c3413, 0xa10a00b, 0x19b7ce54, 0x2d72bded, 0x2320}},
/*.y =*/{/*.val =*/{0xc2c6d44, 0x3fd3c77d, 0xd9eb8d4, 0x1bc40847, 0x1bca93d9, 0x1c86e07e, 0x3e94318c, 0x250f7222, 0xc79f}}},
{/*.x =*/{/*.val =*/{0xa3a809c, 0x27f82c2f, 0x398346d7, 0x2d98bd75, 0x14a89eda, 0x33e5f909, 0x3df56bfb, 0x1fb20e4c, 0x125e}},
/*.y =*/{/*.val =*/{0x149e70d9, 0x2a32402a, 0x7fca3dd, 0x138ecbbc, 0x321a371e, 0x1d1f2bd5, 0xcb38887, 0x3dbb7895, 0xe0d3}}},
{/*.x =*/{/*.val =*/{0x208a7b1f, 0x3215fe35, 0x2a1ee514, 0x162bea6d, 0x3bc587f7, 0x141eb357, 0x37eb0079, 0x20efd263, 0x5ac}},
/*.y =*/{/*.val =*/{0x165ccb98, 0x2198dd7e, 0x75d0f82, 0x3bc0ecc4, 0x2ac6f5b3, 0x33d08917, 0x2e6fb0fa, 0x271b3dd5, 0xe379}}},
{/*.x =*/{/*.val =*/{0x27315443, 0x364e1ce0, 0x2e867299, 0x1e6ef552, 0x2142a13d, 0x32266082, 0x935ff42, 0x1b010198, 0xfc69}},
/*.y =*/{/*.val =*/{0x17d28960, 0x1243582d, 0x9bd1b17, 0x1ffd2184, 0x1677b548, 0x387375a, 0x35892bbf, 0x9fafe0e, 0xe0ce}}},
{/*.x =*/{/*.val =*/{0x3c6b5b56, 0x3cd857f5, 0x1888b607, 0x21722abb, 0x3200e541, 0x161fb4ef, 0x34338cdf, 0x2195c03b, 0xa0e8}},
/*.y =*/{/*.val =*/{0x3a1d7518, 0x5af7944, 0x858a51a, 0x1ae1c75c, 0x13dead52, 0x29ae26e1, 0x1ad50b99, 0x11a0e7ea, 0xf5ba}}},
{/*.x =*/{/*.val =*/{0x10cedd26, 0x35d977dd, 0x25715541, 0x322e677a, 0x239e2a3c, 0x360403e5, 0x1ebb2611, 0x120dca58, 0xaf88}},
/*.y =*/{/*.val =*/{0x30e43f7f, 0x2db9eb4e, 0x3aa41708, 0x15279219, 0x2d2f9654, 0x32ee23af, 0x27030d28, 0x3efe5ec5, 0xdc57}}},
{/*.x =*/{/*.val =*/{0x10b36a01, 0x1d9fddfc, 0x320812b5, 0x11e9ec5f, 0x2ec63cfc, 0x39ea5901, 0x3177a68a, 0x25375386, 0x853c}},
/*.y =*/{/*.val =*/{0x27fe4ebe, 0x1f971fa3, 0x72f4fcc, 0x2fe60a00, 0x25123a28, 0x274080f7, 0x1b19530e, 0x33a53b26, 0xa328}}},
{/*.x =*/{/*.val =*/{0x11da5e12, 0x7b838ce, 0x1cacb297, 0x31829005, 0x1ca2b6a9, 0xca7e4e8, 0x1e31bcda, 0xb8f10de, 0xf750}},
/*.y =*/{/*.val =*/{0x385f4eb, 0x292e717a, 0x325cebc7, 0x21b4cbbd, 0x1672047b, 0x1c25170f, 0xfafd599, 0x3d7b759f, 0x3c57}}},
{/*.x =*/{/*.val =*/{0x3e32478e, 0xdcc481c, 0x29ba7ed2, 0x2acc63ca, 0x332b2024, 0x31adfcfc, 0x213880fe, 0x4758041, 0xd420}},
/*.y =*/{/*.val =*/{0x104e88d4, 0x33815a07, 0x1508cc31, 0x2c92cbcd, 0x3f847b6f, 0x357d7d12, 0x14e0c1b2, 0x353a68df, 0xbae5}}},
{/*.x =*/{/*.val =*/{0x216ddcd3, 0x1a9c8dee, 0x1ea00355, 0x12c44008, 0x761af04, 0x16fadb2e, 0x299edf7b, 0x2b4dbd93, 0x1ae1}},
/*.y =*/{/*.val =*/{0x2e7eb2b7, 0x33118674, 0xbb613c7, 0x185ab77f, 0x10448959, 0x1d3ddd48, 0x922059c, 0x15261e8, 0x7016}}},
{/*.x =*/{/*.val =*/{0x19158bab, 0x264fc10e, 0x12d06caa, 0x4c9b0c6, 0x5a0674c, 0x1f3cf7cb, 0x39b3c419, 0x3d2ec203, 0xe2c6}},
/*.y =*/{/*.val =*/{0x2d7a27f2, 0x214f3c9e, 0x49fd3f5, 0x6d622e4, 0x3ef5c641, 0xaecd847, 0xb1eabd1, 0x1e18b4f0, 0xfa92}}},
{/*.x =*/{/*.val =*/{0x3a95a8db, 0x1761dccb, 0x39d36f61, 0xfb03111, 0x1b1723b8, 0x25991a64, 0x3dd0419e, 0x36918c0, 0xe3e9}},
/*.y =*/{/*.val =*/{0x1b0d1cf9, 0x5b3dfc, 0x984d3d1, 0x2c7be5f3, 0x2e76afb, 0x3eaa431c, 0x178bb00, 0xef0015b, 0xfbe5}}},
{/*.x =*/{/*.val =*/{0x141d0ce6, 0x13f0f72d, 0x3598d41f, 0x2264a8b3, 0x205fb274, 0x53338ce, 0x1a9412ee, 0x168a4dfc, 0x1429}},
/*.y =*/{/*.val =*/{0x1738bb86, 0xaa06a2b, 0x35d241a5, 0x2255806, 0x83b131, 0xc711211, 0x150711b0, 0x14d8f7c4, 0xfea7}}},
{/*.x =*/{/*.val =*/{0xb344f7f, 0x1c633e71, 0xce60c4c, 0x22e27f52, 0x26d410ee, 0x1f8cb2f4, 0x2e0ae0e9, 0x3212f65c, 0x354c}},
/*.y =*/{/*.val =*/{0x25db82d6, 0x392c46ba, 0x202e0ec7, 0xdb18061, 0x3a88558e, 0x2d24fe6, 0x6b5d675, 0x2fca4a47, 0x9c04}}},
{/*.x =*/{/*.val =*/{0x1983ce4e, 0x2ecf54dc, 0x1578253f, 0x40f6279, 0x23024a60, 0xeee0d6a, 0x35975f0e, 0x3da7674c, 0x8704}},
/*.y =*/{/*.val =*/{0x16572c0a, 0x1c256368, 0x302df498, 0x16e840b8, 0x296bac34, 0x231d35d6, 0x2ec26a3, 0x14817389, 0x6b0b}}},
{/*.x =*/{/*.val =*/{0x3a3979b5, 0xa8666c2, 0x27e829e2, 0xa23e379, 0x240e50ba, 0xdfc2c7b, 0x1e26327f, 0x1f1736b, 0xae22}},
/*.y =*/{/*.val =*/{0x450fa6f, 0x23cf359a, 0x3d4f8896, 0x2a1edf4d, 0x2d7060fc, 0x3249148e, 0x39f71ad4, 0x3f944301, 0xea91}}},
{/*.x =*/{/*.val =*/{0x2ce4dd6a, 0x16784787, 0x3221cef5, 0x392728, 0x164c460a, 0x3b28dfa3, 0x12b64bc9, 0x393dec9e, 0x49db}},
/*.y =*/{/*.val =*/{0x2a9e3eae, 0x4edca90, 0x205bb69b, 0xe154bf2, 0x12255a1c, 0x3f8cf6da, 0x81c72c5, 0x1ca611c1, 0xb8b5}}},
{/*.x =*/{/*.val =*/{0x34e5f03a, 0x3fa2d6f7, 0x21606d54, 0x1597fac7, 0x3dfe3596, 0x373eccf5, 0x1be33737, 0x13f740a2, 0x80c3}},
/*.y =*/{/*.val =*/{0x3e3ca504, 0x5fd151b, 0x33245cb1, 0x2cabbc7, 0x1c9a03d3, 0x36d5c01f, 0x1ecd55e, 0x215a9e3, 0x247e}}},
{/*.x =*/{/*.val =*/{0x29565331, 0x20617fbe, 0x1a915abf, 0x17a2498b, 0xcf1ce93, 0xe7bed50, 0x30c22611, 0x1493240d, 0x9d32}},
/*.y =*/{/*.val =*/{0x26f06930, 0x758c2a, 0x236934f9, 0x32544bb0, 0x6d2ae5c, 0x3b130b2f, 0x22ebfd7f, 0x15cf49df, 0x3766}}},
{/*.x =*/{/*.val =*/{0x354b8367, 0x25201cf5, 0x3d506bfe, 0x1d6ddf59, 0x36a5db7, 0x2a975161, 0x2526e40c, 0x252b911, 0x5e5a}},
/*.y =*/{/*.val =*/{0x11ce85ca, 0x14ca6a76, 0x1e5ffa44, 0x1aaa7bcf, 0x2a4b7a79, 0x2407c55c, 0x15e05c2c, 0x3e32691e, 0xae8a}}},
{/*.x =*/{/*.val =*/{0xcbcad59, 0x2c17a0d8, 0xe0aaa07, 0x21168169, 0x3902f17c, 0x5f21697, 0x36007aa, 0x1b0454ab, 0x2ed7}},
/*.y =*/{/*.val =*/{0x4ea66fe, 0x12b1ea27, 0xa7f9411, 0x1cb1804c, 0x1767ed5f, 0x29babb20, 0x5f222cd, 0x135010ee, 0x639f}}},
{/*.x =*/{/*.val =*/{0x24b84b48, 0xc3d15c7, 0x1e817ea8, 0x2b7d31e6, 0x17f7091, 0x43d5df5, 0x1a4f5419, 0x37c39f51, 0x5fb1}},
/*.y =*/{/*.val =*/{0x37be8eb8, 0x1fb7a9a8, 0x33f21ad7, 0xa70e421, 0x2d258206, 0x3d191bf9, 0x4d49fbc, 0x3eef2f0f, 0x2152}}},
{/*.x =*/{/*.val =*/{0x2aa2a748, 0x15d87054, 0x378c403d, 0x2c99f85, 0x2835d8c9, 0x337e7d1a, 0x141486c5, 0x27edac70, 0x135a}},
/*.y =*/{/*.val =*/{0x38a6cf84, 0xc41675b, 0x3f91ab2d, 0x19b84fa2, 0x9453a65, 0x18b97f9c, 0x15938e7, 0x778b2a8, 0xa869}}},
{/*.x =*/{/*.val =*/{0xfd69985, 0x2717764, 0x1df72aea, 0xc2732db, 0xccf149f, 0x3da437ef, 0x32f7e788, 0x1d9d73ad, 0xae9}},
/*.y =*/{/*.val =*/{0x1409a003, 0x2723ad04, 0x2ee1aff8, 0x2e67505e, 0x1a54c5d0, 0x237fb814, 0x8d14e9b, 0x265cfdb9, 0x9121}}},
{/*.x =*/{/*.val =*/{0x2078afb0, 0x39d6b9e5, 0x1261974, 0x3fc4b1b1, 0x2d170714, 0x3511a319, 0x163b5248, 0x1af35d98, 0x209d}},
/*.y =*/{/*.val =*/{0x2740b310, 0x1746ddd6, 0x1f4e3e38, 0x3b6de4ce, 0x98a5b01, 0x196eaea6, 0x33280a09, 0x4d0a79e, 0x1a2f}}},
{/*.x =*/{/*.val =*/{0x1f55a9bf, 0x2f2c0a63, 0x1ea5bf8e, 0x2c057bca, 0x17c578f6, 0xc1fd807, 0x23181810, 0x263ae71b, 0x7262}},
/*.y =*/{/*.val =*/{0x3c3accae, 0x45be2c2, 0x673b4e, 0x1e5ef2f0, 0x1099e0be, 0xd68bbcf, 0x29bfda98, 0x22006a77, 0x38d4}}},
{/*.x =*/{/*.val =*/{0x3dbb04fa, 0x5c195a8, 0x118911f9, 0x29c145ac, 0x26b5e114, 0x2e090979, 0x26ed4d7c, 0xb7eecd1, 0x7fe4}},
/*.y =*/{/*.val =*/{0x21908c89, 0x359d2447, 0x2c1b9c55, 0x3a28a234, 0x334cf0aa, 0x1b22c1e5, 0x5f4330f, 0x1e82d3d7, 0x2eec}}},
{/*.x =*/{/*.val =*/{0x2e4b3ba0, 0x2167d8d7, 0x18bf1f17, 0xaafbd7c, 0x3f245f5c, 0x385c3cc6, 0x3fb73bef, 0x4414887, 0x4108}},
/*.y =*/{/*.val =*/{0x17525595, 0x21a58770, 0x1a064554, 0xd926159, 0x2b849813, 0x2996b875, 0x35668f2c, 0x3cda5dbf, 0xdc37}}},
{/*.x =*/{/*.val =*/{0xe5485, 0x22799a8, 0x1da5df02, 0x4c1a2fd, 0x320f1245, 0x31c2189c, 0x2bdff8e2, 0x1db5e4e8, 0x1cd2}},
/*.y =*/{/*.val =*/{0x85fbd7f, 0x2973c146, 0x209a4ecc, 0x34389c2c, 0x2e977f99, 0x2cd35154, 0x2af738d4, 0x2f7462cb, 0x6615}}},
{/*.x =*/{/*.val =*/{0x290bc03e, 0x31d4f566, 0x1e015e33, 0x2c3ce4d4, 0x50f8084, 0x2a497dd1, 0x2072e9e5, 0x363b4b20, 0x2cee}},
/*.y =*/{/*.val =*/{0x3ab82adc, 0x32dcae2d, 0xd53cd01, 0x77e73c8, 0x7daeb4a, 0x143adebf, 0x1de3ecd8, 0x1ae03a6e, 0xa427}}},
{/*.x =*/{/*.val =*/{0x3009ee3e, 0x2e71352e, 0x729ead5, 0x9a8799e, 0x272de237, 0x273af1, 0x22ac92b7, 0x216c0cba, 0xb17a}},
/*.y =*/{/*.val =*/{0x296b911d, 0x18f947b, 0x446fa38, 0x85b29f2, 0x26eda65, 0x63f703, 0x29a65f5c, 0x9a749ac, 0x966e}}},
{/*.x =*/{/*.val =*/{0xe103dd6, 0x37dc51c8, 0x4859a, 0x1181301f, 0x12a17ac3, 0x84f3f16, 0x203f836a, 0x1ef55690, 0xbc47}},
/*.y =*/{/*.val =*/{0x16f7c343, 0xe420b63, 0x23b44ac6, 0xa4d5cb1, 0x1ea6395d, 0x2b154b1b, 0xdd526cb, 0x7890a6a, 0xe31e}}},
{/*.x =*/{/*.val =*/{0x36695f94, 0xb602c60, 0x1627fa59, 0x285a71a4, 0x39a9cf62, 0x32e1a0eb, 0x18f5fd0c, 0x17546d15, 0xb1d2}},
/*.y =*/{/*.val =*/{0x1ee32736, 0x16dfae69, 0x3863edca, 0x3dbc636a, 0x2ba81760, 0x3a82b066, 0x290b1f7b, 0x369c80c3, 0x706d}}},
{/*.x =*/{/*.val =*/{0x36f83231, 0x265c4062, 0x20425e34, 0x30c3639d, 0x33fdd0b7, 0x5609d96, 0x2ba26a8d, 0x23314d40, 0x850f}},
/*.y =*/{/*.val =*/{0x1f2e8373, 0x280c6a75, 0x322d77f4, 0x216fe85d, 0x2cc7890a, 0x3dc21ae0, 0x39053d0b, 0x276f80a9, 0xbc4a}}},
{/*.x =*/{/*.val =*/{0x39343959, 0xb882f6f, 0x2c9ce78a, 0x28673cbe, 0x1bc1f617, 0x2bfa4c24, 0x651465d, 0x6e01743, 0x2d38}},
/*.y =*/{/*.val =*/{0x1442fb00, 0x1c432ba8, 0x31e45a43, 0x14b57589, 0x31025f43, 0x2bcbce90, 0x361bf59a, 0x3782534a, 0x5451}}},
{/*.x =*/{/*.val =*/{0x152da17d, 0x18283e90, 0xd0646b1, 0x3704f6c2, 0x200bc811, 0x139ac17f, 0x18c5f089, 0x3b4783d4, 0x3bea}},
/*.y =*/{/*.val =*/{0x2cc768d2, 0x39c12617, 0x1fec416c, 0x3379dee3, 0xe1b554, 0x12a2fafa, 0x37acdfef, 0x35fd56bf, 0xc3b0}}},
{/*.x =*/{/*.val =*/{0x1063e1be, 0x6e6b413, 0x3e39a75c, 0x90a68bd, 0x3cf027a9, 0x185494f6, 0x2b14722, 0x10744758, 0x1316}},
/*.y =*/{/*.val =*/{0x21fec890, 0x3747fcf8, 0x1745b77f, 0x3ebb03e, 0x3d2bebbd, 0xb8c3f36, 0x39f06a4, 0x36985e58, 0x4c3b}}},
{/*.x =*/{/*.val =*/{0x3c46e079, 0x4a80d49, 0x1e9c78dd, 0x19a4c2e1, 0x2ba374ab, 0x3dd6b6c0, 0x3ac530fe, 0x30ab4ab3, 0xab86}},
/*.y =*/{/*.val =*/{0x3636ffe1, 0x310a2f05, 0x50d7c0e, 0x1dca3a12, 0x3200c9ce, 0x311b535c, 0x329abcf5, 0x30a18067, 0x1209}}},
{/*.x =*/{/*.val =*/{0x17d37248, 0x227c6075, 0x117ceae4, 0x20d6d947, 0x2b2787bc, 0x1bac891a, 0x36d5aa4d, 0x946f0fb, 0xadc4}},
/*.y =*/{/*.val =*/{0x2adcbc1b, 0x1811f2b3, 0x50bebc8, 0x37156ec5, 0x16f70b9, 0x18f8d8a4, 0x1e7eb5d0, 0x2dd8b8f1, 0xb0f3}}},
{/*.x =*/{/*.val =*/{0xeca5f51, 0x85ac826, 0xfc9aebf, 0x3a85c6e5, 0x5b5cfdd, 0x3b5acafc, 0x2e6962c6, 0x35453767, 0xdde9}},
/*.y =*/{/*.val =*/{0x10c638f7, 0x2b5a69cf, 0x289571f9, 0x3fbafa37, 0x3f8f0950, 0x7cd2c29, 0x28111d89, 0x1a44cf38, 0xb84e}}},
{/*.x =*/{/*.val =*/{0x209b0cca, 0x3331a956, 0xa4d6f01, 0x115d6249, 0x28da59a3, 0x1153da28, 0xf4c8d5c, 0x232c76ec, 0xd53}},
/*.y =*/{/*.val =*/{0xc929e05, 0xc6c51f8, 0x9134c97, 0xd336676, 0x2ed7cf85, 0x2a357103, 0x2c110cb0, 0x1aeb1e8f, 0xc819}}},
{/*.x =*/{/*.val =*/{0x2dd7e577, 0x2b8c0f3b, 0x136c4d56, 0x283c95a1, 0x2a2107d3, 0x1811c9c3, 0xf7b25ac, 0x3543e20a, 0xc352}},
/*.y =*/{/*.val =*/{0x38d9b570, 0x3293fe23, 0x21217063, 0x2a2aecad, 0xe79fb00, 0x354c516f, 0x2b9b96ab, 0xa0e2e9d, 0xbe77}}},
{/*.x =*/{/*.val =*/{0x23868246, 0x22fcdeb0, 0x6dd2ded, 0x27db62bd, 0x2248ba8, 0x17641f4b, 0x11d600b5, 0x1f82acce, 0xfb9d}},
/*.y =*/{/*.val =*/{0x2969605a, 0x2760f82b, 0x2a2606d2, 0x34ab4c16, 0x1475f4a6, 0x2a2e05a8, 0x3680cff2, 0x26f807d2, 0xb038}}},
{/*.x =*/{/*.val =*/{0x3712be3c, 0x1a8b8cb, 0x2146a66b, 0x257c63b6, 0x153472, 0x1c976eac, 0x1b378d3c, 0xd2764cc, 0x39d7}},
/*.y =*/{/*.val =*/{0x1c6ff65c, 0x30c067d0, 0xa41644c, 0x17bde97b, 0x2812e8ef, 0x9d55319, 0x33bf7fb1, 0x26d3d5bb, 0x8f92}}},
{/*.x =*/{/*.val =*/{0x37829372, 0x3b02a929, 0xba4553d, 0x26cc0322, 0x5796bc4, 0x189ab94e, 0x20d3b313, 0x273243cf, 0xb431}},
/*.y =*/{/*.val =*/{0xadd5427, 0x1ca73300, 0x23e11bb7, 0x1ec48572, 0x21c5a270, 0x1ebf8270, 0x3502bffb, 0x3512669b, 0x4707}}},
{/*.x =*/{/*.val =*/{0xdcbcb9e, 0x12fc449b, 0xd83c3df, 0x3e95a277, 0x143761d6, 0x30c911ff, 0x1337a9ec, 0x4b5c467, 0xcdcb}},
/*.y =*/{/*.val =*/{0x961cfd1, 0x229616b, 0x18df340a, 0x266bc90d, 0x1e9949a1, 0x3efa825b, 0x1f11fbfe, 0x38b85eee, 0xe699}}},
{/*.x =*/{/*.val =*/{0xe90bc26, 0x1e074991, 0x364d3aa0, 0x22880f84, 0xacd88a9, 0xf195b1d, 0x27275f3d, 0x385bd96d, 0x5e4d}},
/*.y =*/{/*.val =*/{0x252f79e, 0x5f546a, 0x1127f9c7, 0x194f732b, 0x3ad55207, 0xebea5e0, 0x1432904e, 0x3cb90d4f, 0x5ac5}}},
{/*.x =*/{/*.val =*/{0x754dd40, 0x18fa1c55, 0x3466cf8, 0x10898c7f, 0x32f6e9a2, 0x12107f35, 0xdfcf45b, 0x91c0cb0, 0x9729}},
/*.y =*/{/*.val =*/{0x2aa36143, 0x212d24bc, 0x1acaf493, 0x36ba1495, 0x14df3690, 0x171d772f, 0x3ea1dcd1, 0x28910997, 0x91d1}}},
{/*.x =*/{/*.val =*/{0xc7a89ee, 0x15f0d4cc, 0x2b6d4f80, 0x36f1671e, 0x18658a4b, 0x182e23f2, 0x179e1128, 0x29389a90, 0x71ef}},
/*.y =*/{/*.val =*/{0x1366a2e, 0x3d224ca7, 0x25e9a0b4, 0x2abeae23, 0x3294a22a, 0x2cb0cac5, 0x224ae9ef, 0x2a07e2ed, 0x145f}}},
{/*.x =*/{/*.val =*/{0xde0545f, 0x32c08d26, 0x106c74f5, 0x39897688, 0x3508ac80, 0x17a8012c, 0x7124a37, 0x16f31638, 0x5204}},
/*.y =*/{/*.val =*/{0x106c3d91, 0x1ba8d301, 0x28fdaf23, 0xee743ca, 0xe312b79, 0x3b67083, 0x3123ad43, 0xc7f3af8, 0x1b3f}}},
{/*.x =*/{/*.val =*/{0x3ddaa5d5, 0x1873f311, 0x14d4b7ab, 0x27a034e9, 0x16607331, 0x3bf9159a, 0x28c4e4e8, 0x2646e4be, 0x4e9}},
/*.y =*/{/*.val =*/{0x2cba1c91, 0x35f800ff, 0x255f570d, 0x3827db86, 0x957303c, 0x1ab47630, 0x327f1d9e, 0x577778a, 0x62fc}}},
{/*.x =*/{/*.val =*/{0x26a06f5e, 0x6902d65, 0x2a083702, 0x1064945b, 0x23b716a3, 0x2c350849, 0x253ac37, 0x93efa85, 0x383b}},
/*.y =*/{/*.val =*/{0x13c6e772, 0x227d1e1b, 0x38c2b040, 0x3dab9d2e, 0x2a5a19e8, 0x3d59b553, 0x1ba2044c, 0x1c1ab13b, 0x54cf}}},
{/*.x =*/{/*.val =*/{0x1bcf2dce, 0x4e6d023, 0x1dc6c02, 0x4528417, 0x3f998068, 0x2793264b, 0x6218bd4, 0xb50a4b9, 0x95e6}},
/*.y =*/{/*.val =*/{0x18c86594, 0xaf77f7d, 0x304d20e6, 0x1ecc180d, 0x28d52e5e, 0x289b8ad0, 0x2875183, 0x20610a5b, 0x6b6}}},
{/*.x =*/{/*.val =*/{0x17a6257f, 0x20149916, 0x27a6c40b, 0x1cf0ec68, 0x7e78918, 0x909d2ac, 0x14f25a64, 0xd72387d, 0x71e9}},
/*.y =*/{/*.val =*/{0x11b1e582, 0x2c85d187, 0xf70f7a5, 0x948d503, 0x2e2a52ef, 0x361ae91e, 0x22513de, 0xf967d1f, 0x78d9}}},
};
#endif

View File

@ -54,6 +54,7 @@ extern const bignum256 secp256k1_iv[256];
#if USE_PRECOMPUTED_CP
extern const curve_point secp256k1_cp[256];
extern const curve_point secp256k1_cp2[255];
#endif
#endif