diff --git a/Crypto/Error/Types.hs b/Crypto/Error/Types.hs index cb512d2..fd0e9c4 100644 --- a/Crypto/Error/Types.hs +++ b/Crypto/Error/Types.hs @@ -45,6 +45,10 @@ data CryptoError = | CryptoError_AuthenticationTagSizeInvalid -- Prime generation error | CryptoError_PrimeSizeInvalid + -- Parameter errors + | CryptoError_SaltTooSmall + | CryptoError_OutputLengthTooSmall + | CryptoError_OutputLengthTooBig deriving (Show,Eq,Enum,Data,Typeable) instance E.Exception CryptoError diff --git a/Crypto/KDF/Argon2.hs b/Crypto/KDF/Argon2.hs new file mode 100644 index 0000000..089fb97 --- /dev/null +++ b/Crypto/KDF/Argon2.hs @@ -0,0 +1,155 @@ +-- | +-- Module : Crypto.KDF.Argon2 +-- License : BSD-style +-- Maintainer : Vincent Hanquez +-- Stability : experimental +-- Portability : unknown +-- +-- Argon2 hashing function (P-H-C winner) +-- +-- Recommended to use this module qualified +-- +-- File started from Argon2.hs, from Oliver Charles +-- at https://github.com/ocharles/argon2 +-- +module Crypto.KDF.Argon2 + ( + Options(..) + , TimeCost + , MemoryCost + , Parallelism + , Variant(..) + , Version(..) + , defaultOptions + -- * Hashing function + , hash + ) where + +import Crypto.Internal.ByteArray (ScrubbedBytes, ByteArray, ByteArrayAccess) +import qualified Crypto.Internal.ByteArray as B +import Crypto.Error +import Control.Monad (when) +import Data.Word +import Foreign.C +import Foreign.Ptr + +-- | Which variant of Argon2 to use. You should choose the variant that is most +-- applicable to your intention to hash inputs. +data Variant = + Argon2d -- ^ Argon2i uses data-independent memory access, which is preferred + -- for password hashing and password-based key derivation. Argon2i + -- is slower as it makes more passes over the memory to protect from + -- tradeoff attacks. + | Argon2i -- ^ Argon2d is faster and uses data-depending memory access, which + -- makes it suitable for cryptocurrencies and applications with no + -- threats from side-channel timing attacks. + | Argon2id -- ^ Argon2id is a hybrid of Argon2i and Argon2d, using a combination + -- of data-depending and data-independent memory accesses, which gives + -- some of Argon2i's resistance to side-channel cache timing attacks + -- and much of Argon2d's resistance to GPU cracking attacks + deriving (Eq,Ord,Read,Show,Enum,Bounded) + +-- | Which version of Argon2 to use +data Version = Version10 | Version13 + deriving (Eq,Ord,Read,Show,Enum,Bounded) + +-- | The time cost, which defines the amount of computation realized and therefore the execution time, given in number of iterations. +-- +-- 'FFI.ARGON2_MIN_TIME' <= 'hashIterations' <= 'FFI.ARGON2_MAX_TIME' +type TimeCost = Word32 + +-- | The memory cost, which defines the memory usage, given in kibibytes. +-- +-- max 'FFI.ARGON2_MIN_MEMORY' (8 * 'hashParallelism') <= 'hashMemory' <= 'FFI.ARGON2_MAX_MEMORY' +type MemoryCost = Word32 + +-- \ A parallelism degree, which defines the number of parallel threads. +-- +-- 'FFI.ARGON2_MIN_LANES' <= 'hashParallelism' <= 'FFI.ARGON2_MAX_LANES' && 'FFI.ARGON_MIN_THREADS' <= 'hashParallelism' <= 'FFI.ARGON2_MAX_THREADS' +type Parallelism = Word32 + +-- | Parameters that can be adjusted to change the runtime performance of the +-- hashing. +data Options = Options + { iterations :: !TimeCost + , memory :: !MemoryCost + , parallelism :: !Parallelism + , variant :: !Variant -- ^ Which variant of Argon2 to use. + , version :: !Version -- ^ Which version of Argon2 to use. + } + deriving (Eq,Ord,Read,Show) + +saltMinLength :: Int +saltMinLength = 8 + +outputMinLength :: Int +outputMinLength = 4 + +outputMaxLength :: Int +outputMaxLength = 0xffffffff + +defaultOptions :: Options +defaultOptions = + Options { iterations = 1 + , memory = 2 ^ (17 :: Int) + , parallelism = 4 + , variant = Argon2i + , version = Version13 + } + +hash :: (ByteArrayAccess password, ByteArrayAccess salt, ByteArray out) + => Options + -> password + -> salt + -> Int + -> CryptoFailable out +hash options password salt outLen + | saltLen < saltMinLength = CryptoFailed CryptoError_SaltTooSmall + | outLen < outputMinLength = CryptoFailed CryptoError_OutputLengthTooSmall + | outLen > outputMaxLength = CryptoFailed CryptoError_OutputLengthTooBig + | otherwise = CryptoPassed $ B.allocAndFreeze outLen $ \out -> do + res <- B.withByteArray password $ \pPass -> + B.withByteArray salt $ \pSalt -> + argon2_hash (iterations options) + (memory options) + (parallelism options) + pPass + (csizeOfInt passwordLen) + pSalt + (csizeOfInt saltLen) + out + (csizeOfInt outLen) + (cOfVariant $ variant options) + (cOfVersion $ version options) + when (res /= 0) $ error "argon2: hash: internal error" + where + saltLen = B.length salt + passwordLen = B.length password + +data Pass +data Salt +data HashOut + +type CVariant = CInt -- valid value is 0 (Argon2d), 1 (Argon2i) and 2 (Argon2id) +type CVersion = CInt -- valid value is 0x10, 0x13 + +cOfVersion :: Version -> CVersion +cOfVersion Version10 = 0x10 +cOfVersion Version13 = 0x13 + +cOfVariant :: Variant -> CVariant +cOfVariant Argon2d = 0 +cOfVariant Argon2i = 1 +cOfVariant Argon2id = 2 + +csizeOfInt :: Int -> CSize +csizeOfInt = fromIntegral + +foreign import ccall unsafe "cryptonite_argon2_hash" + argon2_hash :: Word32 -> Word32 -> Word32 + -> Ptr Pass -> CSize + -> Ptr Salt -> CSize + -> Ptr HashOut -> CSize + -> CVariant + -> CVersion + -> IO CInt diff --git a/cbits/argon2/argon2.c b/cbits/argon2/argon2.c new file mode 100644 index 0000000..717522e --- /dev/null +++ b/cbits/argon2/argon2.c @@ -0,0 +1,142 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#include +#include +#include + +#include "argon2.h" +#include "core.c" + +int cryptonite_argon2_ctx(argon2_context *context, argon2_type type) { + /* 1. Validate all inputs */ + int result = validate_inputs(context); + uint32_t memory_blocks, segment_length; + argon2_instance_t instance; + + if (ARGON2_OK != result) { + return result; + } + + if (Argon2_d != type && Argon2_i != type && Argon2_id != type) { + return ARGON2_INCORRECT_TYPE; + } + + /* 2. Align memory size */ + /* Minimum memory_blocks = 8L blocks, where L is the number of lanes */ + memory_blocks = context->m_cost; + + if (memory_blocks < 2 * ARGON2_SYNC_POINTS * context->lanes) { + memory_blocks = 2 * ARGON2_SYNC_POINTS * context->lanes; + } + + segment_length = memory_blocks / (context->lanes * ARGON2_SYNC_POINTS); + /* Ensure that all segments have equal length */ + memory_blocks = segment_length * (context->lanes * ARGON2_SYNC_POINTS); + + instance.version = context->version; + instance.memory = NULL; + instance.passes = context->t_cost; + instance.memory_blocks = memory_blocks; + instance.segment_length = segment_length; + instance.lane_length = segment_length * ARGON2_SYNC_POINTS; + instance.lanes = context->lanes; + instance.threads = context->threads; + instance.type = type; + + /* 3. Initialization: Hashing inputs, allocating memory, filling first + * blocks + */ + result = initialize(&instance, context); + + if (ARGON2_OK != result) { + return result; + } + + /* 4. Filling memory */ + result = fill_memory_blocks(&instance); + + if (ARGON2_OK != result) { + return result; + } + /* 5. Finalization */ + finalize(context, &instance); + + return ARGON2_OK; +} + +int cryptonite_argon2_hash(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, const size_t saltlen, + void *hash, const size_t hashlen, argon2_type type, + const uint32_t version){ + + argon2_context context; + int result; + uint8_t *out; + + if (hashlen > ARGON2_MAX_OUTLEN) { + return ARGON2_OUTPUT_TOO_LONG; + } + + if (hashlen < ARGON2_MIN_OUTLEN) { + return ARGON2_OUTPUT_TOO_SHORT; + } + + out = malloc(hashlen); + if (!out) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + context.out = (uint8_t *)out; + context.outlen = (uint32_t)hashlen; + context.pwd = CONST_CAST(uint8_t *)pwd; + context.pwdlen = (uint32_t)pwdlen; + context.salt = CONST_CAST(uint8_t *)salt; + context.saltlen = (uint32_t)saltlen; + context.secret = NULL; + context.secretlen = 0; + context.ad = NULL; + context.adlen = 0; + context.t_cost = t_cost; + context.m_cost = m_cost; + context.lanes = parallelism; + context.threads = parallelism; + context.allocate_cbk = NULL; + context.free_cbk = NULL; + context.flags = ARGON2_DEFAULT_FLAGS; + context.version = version; + + result = cryptonite_argon2_ctx(&context, type); + + if (result != ARGON2_OK) { + clear_internal_memory(out, hashlen); + free(out); + return result; + } + + /* if raw hash requested, write it */ + if (hash) { + memcpy(hash, out, hashlen); + } + + clear_internal_memory(out, hashlen); + free(out); + + return ARGON2_OK; +} + diff --git a/cbits/argon2/argon2.h b/cbits/argon2/argon2.h new file mode 100644 index 0000000..a4a088f --- /dev/null +++ b/cbits/argon2/argon2.h @@ -0,0 +1,267 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef ARGON2_H +#define ARGON2_H + +#include +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/* Symbols visibility control */ +#ifdef A2_VISCTL +#define ARGON2_PUBLIC __attribute__((visibility("default"))) +#elif _MSC_VER +#define ARGON2_PUBLIC __declspec(dllexport) +#else +#define ARGON2_PUBLIC +#endif + +/* + * Argon2 input parameter restrictions + */ + +/* Minimum and maximum number of lanes (degree of parallelism) */ +#define ARGON2_MIN_LANES UINT32_C(1) +#define ARGON2_MAX_LANES UINT32_C(0xFFFFFF) + +/* Minimum and maximum number of threads */ +#define ARGON2_MIN_THREADS UINT32_C(1) +#define ARGON2_MAX_THREADS UINT32_C(0xFFFFFF) + +/* Number of synchronization points between lanes per pass */ +#define ARGON2_SYNC_POINTS UINT32_C(4) + +/* Minimum and maximum digest size in bytes */ +#define ARGON2_MIN_OUTLEN UINT32_C(4) +#define ARGON2_MAX_OUTLEN UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum number of memory blocks (each of BLOCK_SIZE bytes) */ +#define ARGON2_MIN_MEMORY (2 * ARGON2_SYNC_POINTS) /* 2 blocks per slice */ + +#define ARGON2_MIN(a, b) ((a) < (b) ? (a) : (b)) +/* Max memory size is addressing-space/2, topping at 2^32 blocks (4 TB) */ +#define ARGON2_MAX_MEMORY_BITS \ + ARGON2_MIN(UINT32_C(32), (sizeof(void *) * CHAR_BIT - 10 - 1)) +#define ARGON2_MAX_MEMORY \ + ARGON2_MIN(UINT32_C(0xFFFFFFFF), UINT64_C(1) << ARGON2_MAX_MEMORY_BITS) + +/* Minimum and maximum number of passes */ +#define ARGON2_MIN_TIME UINT32_C(1) +#define ARGON2_MAX_TIME UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum password length in bytes */ +#define ARGON2_MIN_PWD_LENGTH UINT32_C(0) +#define ARGON2_MAX_PWD_LENGTH UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum associated data length in bytes */ +#define ARGON2_MIN_AD_LENGTH UINT32_C(0) +#define ARGON2_MAX_AD_LENGTH UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum salt length in bytes */ +#define ARGON2_MIN_SALT_LENGTH UINT32_C(8) +#define ARGON2_MAX_SALT_LENGTH UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum key length in bytes */ +#define ARGON2_MIN_SECRET UINT32_C(0) +#define ARGON2_MAX_SECRET UINT32_C(0xFFFFFFFF) + +/* Flags to determine which fields are securely wiped (default = no wipe). */ +#define ARGON2_DEFAULT_FLAGS UINT32_C(0) +#define ARGON2_FLAG_CLEAR_PASSWORD (UINT32_C(1) << 0) +#define ARGON2_FLAG_CLEAR_SECRET (UINT32_C(1) << 1) + +/* Global flag to determine if we are wiping internal memory buffers. This flag + * is defined in core.c and deafults to 1 (wipe internal memory). */ +//extern int FLAG_clear_internal_memory; + +/* Error codes */ +typedef enum Argon2_ErrorCodes { + ARGON2_OK = 0, + + ARGON2_OUTPUT_PTR_NULL = -1, + + ARGON2_OUTPUT_TOO_SHORT = -2, + ARGON2_OUTPUT_TOO_LONG = -3, + + ARGON2_PWD_TOO_SHORT = -4, + ARGON2_PWD_TOO_LONG = -5, + + ARGON2_SALT_TOO_SHORT = -6, + ARGON2_SALT_TOO_LONG = -7, + + ARGON2_AD_TOO_SHORT = -8, + ARGON2_AD_TOO_LONG = -9, + + ARGON2_SECRET_TOO_SHORT = -10, + ARGON2_SECRET_TOO_LONG = -11, + + ARGON2_TIME_TOO_SMALL = -12, + ARGON2_TIME_TOO_LARGE = -13, + + ARGON2_MEMORY_TOO_LITTLE = -14, + ARGON2_MEMORY_TOO_MUCH = -15, + + ARGON2_LANES_TOO_FEW = -16, + ARGON2_LANES_TOO_MANY = -17, + + ARGON2_PWD_PTR_MISMATCH = -18, /* NULL ptr with non-zero length */ + ARGON2_SALT_PTR_MISMATCH = -19, /* NULL ptr with non-zero length */ + ARGON2_SECRET_PTR_MISMATCH = -20, /* NULL ptr with non-zero length */ + ARGON2_AD_PTR_MISMATCH = -21, /* NULL ptr with non-zero length */ + + ARGON2_MEMORY_ALLOCATION_ERROR = -22, + + ARGON2_FREE_MEMORY_CBK_NULL = -23, + ARGON2_ALLOCATE_MEMORY_CBK_NULL = -24, + + ARGON2_INCORRECT_PARAMETER = -25, + ARGON2_INCORRECT_TYPE = -26, + + ARGON2_OUT_PTR_MISMATCH = -27, + + ARGON2_THREADS_TOO_FEW = -28, + ARGON2_THREADS_TOO_MANY = -29, + + ARGON2_MISSING_ARGS = -30, + + ARGON2_ENCODING_FAIL = -31, + + ARGON2_DECODING_FAIL = -32, + + ARGON2_THREAD_FAIL = -33, + + ARGON2_DECODING_LENGTH_FAIL = -34, + + ARGON2_VERIFY_MISMATCH = -35 +} argon2_error_codes; + +/* Memory allocator types --- for external allocation */ +typedef int (*allocate_fptr)(uint8_t **memory, size_t bytes_to_allocate); +typedef void (*deallocate_fptr)(uint8_t *memory, size_t bytes_to_allocate); + +/* Argon2 external data structures */ + +/* + ***** + * Context: structure to hold Argon2 inputs: + * output array and its length, + * password and its length, + * salt and its length, + * secret and its length, + * associated data and its length, + * number of passes, amount of used memory (in KBytes, can be rounded up a bit) + * number of parallel threads that will be run. + * All the parameters above affect the output hash value. + * Additionally, two function pointers can be provided to allocate and + * deallocate the memory (if NULL, memory will be allocated internally). + * Also, three flags indicate whether to erase password, secret as soon as they + * are pre-hashed (and thus not needed anymore), and the entire memory + ***** + * Simplest situation: you have output array out[8], password is stored in + * pwd[32], salt is stored in salt[16], you do not have keys nor associated + * data. You need to spend 1 GB of RAM and you run 5 passes of Argon2d with + * 4 parallel lanes. + * You want to erase the password, but you're OK with last pass not being + * erased. You want to use the default memory allocator. + * Then you initialize: + Argon2_Context(out,8,pwd,32,salt,16,NULL,0,NULL,0,5,1<<20,4,4,NULL,NULL,true,false,false,false) + */ +typedef struct Argon2_Context { + uint8_t *out; /* output array */ + uint32_t outlen; /* digest length */ + + uint8_t *pwd; /* password array */ + uint32_t pwdlen; /* password length */ + + uint8_t *salt; /* salt array */ + uint32_t saltlen; /* salt length */ + + uint8_t *secret; /* key array */ + uint32_t secretlen; /* key length */ + + uint8_t *ad; /* associated data array */ + uint32_t adlen; /* associated data length */ + + uint32_t t_cost; /* number of passes */ + uint32_t m_cost; /* amount of memory requested (KB) */ + uint32_t lanes; /* number of lanes */ + uint32_t threads; /* maximum number of threads */ + + uint32_t version; /* version number */ + + allocate_fptr allocate_cbk; /* pointer to memory allocator */ + deallocate_fptr free_cbk; /* pointer to memory deallocator */ + + uint32_t flags; /* array of bool options */ +} argon2_context; + +/* Argon2 primitive type */ +typedef enum Argon2_type { + Argon2_d = 0, + Argon2_i = 1, + Argon2_id = 2 +} argon2_type; + +/* Version of the algorithm */ +typedef enum Argon2_version { + ARGON2_VERSION_10 = 0x10, + ARGON2_VERSION_13 = 0x13, + ARGON2_VERSION_NUMBER = ARGON2_VERSION_13 +} argon2_version; + +/* + * Function that performs memory-hard hashing with certain degree of parallelism + * @param context Pointer to the Argon2 internal structure + * @return Error code if smth is wrong, ARGON2_OK otherwise + */ +ARGON2_PUBLIC int cryptonite_argon2_ctx(argon2_context *context, argon2_type type); + +/** + * Hashes a password with Argon2i, producing a raw hash by allocating memory at + * @hash + * @param t_cost Number of iterations + * @param m_cost Sets memory usage to m_cost kibibytes + * @param parallelism Number of threads and compute lanes + * @param pwd Pointer to password + * @param pwdlen Password size in bytes + * @param salt Pointer to salt + * @param saltlen Salt size in bytes + * @param hash Buffer where to write the raw hash - updated by the function + * @param hashlen Desired length of the hash in bytes + * @pre Different parallelism levels will give different results + * @pre Returns ARGON2_OK if successful + */ + +/* generic function underlying the above ones */ +ARGON2_PUBLIC int cryptonite_argon2_hash(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, + const size_t saltlen, void *hash, + const size_t hashlen, argon2_type type, + const uint32_t version); + + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/cbits/argon2/blamka-round-opt.h b/cbits/argon2/blamka-round-opt.h new file mode 100644 index 0000000..577e1d0 --- /dev/null +++ b/cbits/argon2/blamka-round-opt.h @@ -0,0 +1,180 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef BLAKE_ROUND_MKA_OPT_H +#define BLAKE_ROUND_MKA_OPT_H + +#include "blake2-impl.h" + +#include +#if defined(__SSSE3__) +#include /* for _mm_shuffle_epi8 and _mm_alignr_epi8 */ +#endif + +#if defined(__XOP__) && (defined(__GNUC__) || defined(__clang__)) +#include +#endif + +#if !defined(__XOP__) +#if defined(__SSSE3__) +#define r16 \ + (_mm_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9)) +#define r24 \ + (_mm_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10)) +#define _mm_roti_epi64(x, c) \ + (-(c) == 32) \ + ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1)) \ + : (-(c) == 24) \ + ? _mm_shuffle_epi8((x), r24) \ + : (-(c) == 16) \ + ? _mm_shuffle_epi8((x), r16) \ + : (-(c) == 63) \ + ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), \ + _mm_add_epi64((x), (x))) \ + : _mm_xor_si128(_mm_srli_epi64((x), -(c)), \ + _mm_slli_epi64((x), 64 - (-(c)))) +#else /* defined(__SSE2__) */ +#define _mm_roti_epi64(r, c) \ + _mm_xor_si128(_mm_srli_epi64((r), -(c)), _mm_slli_epi64((r), 64 - (-(c)))) +#endif +#else +#endif + +static BLAKE2_INLINE __m128i fBlaMka(__m128i x, __m128i y) { + const __m128i z = _mm_mul_epu32(x, y); + return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); +} + +#define G1(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + A0 = fBlaMka(A0, B0); \ + A1 = fBlaMka(A1, B1); \ + \ + D0 = _mm_xor_si128(D0, A0); \ + D1 = _mm_xor_si128(D1, A1); \ + \ + D0 = _mm_roti_epi64(D0, -32); \ + D1 = _mm_roti_epi64(D1, -32); \ + \ + C0 = fBlaMka(C0, D0); \ + C1 = fBlaMka(C1, D1); \ + \ + B0 = _mm_xor_si128(B0, C0); \ + B1 = _mm_xor_si128(B1, C1); \ + \ + B0 = _mm_roti_epi64(B0, -24); \ + B1 = _mm_roti_epi64(B1, -24); \ + } while ((void)0, 0) + +#define G2(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + A0 = fBlaMka(A0, B0); \ + A1 = fBlaMka(A1, B1); \ + \ + D0 = _mm_xor_si128(D0, A0); \ + D1 = _mm_xor_si128(D1, A1); \ + \ + D0 = _mm_roti_epi64(D0, -16); \ + D1 = _mm_roti_epi64(D1, -16); \ + \ + C0 = fBlaMka(C0, D0); \ + C1 = fBlaMka(C1, D1); \ + \ + B0 = _mm_xor_si128(B0, C0); \ + B1 = _mm_xor_si128(B1, C1); \ + \ + B0 = _mm_roti_epi64(B0, -63); \ + B1 = _mm_roti_epi64(B1, -63); \ + } while ((void)0, 0) + +#if defined(__SSSE3__) +#define DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + __m128i t0 = _mm_alignr_epi8(B1, B0, 8); \ + __m128i t1 = _mm_alignr_epi8(B0, B1, 8); \ + B0 = t0; \ + B1 = t1; \ + \ + t0 = C0; \ + C0 = C1; \ + C1 = t0; \ + \ + t0 = _mm_alignr_epi8(D1, D0, 8); \ + t1 = _mm_alignr_epi8(D0, D1, 8); \ + D0 = t1; \ + D1 = t0; \ + } while ((void)0, 0) + +#define UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + __m128i t0 = _mm_alignr_epi8(B0, B1, 8); \ + __m128i t1 = _mm_alignr_epi8(B1, B0, 8); \ + B0 = t0; \ + B1 = t1; \ + \ + t0 = C0; \ + C0 = C1; \ + C1 = t0; \ + \ + t0 = _mm_alignr_epi8(D0, D1, 8); \ + t1 = _mm_alignr_epi8(D1, D0, 8); \ + D0 = t1; \ + D1 = t0; \ + } while ((void)0, 0) +#else /* SSE2 */ +#define DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + __m128i t0 = D0; \ + __m128i t1 = B0; \ + D0 = C0; \ + C0 = C1; \ + C1 = D0; \ + D0 = _mm_unpackhi_epi64(D1, _mm_unpacklo_epi64(t0, t0)); \ + D1 = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(D1, D1)); \ + B0 = _mm_unpackhi_epi64(B0, _mm_unpacklo_epi64(B1, B1)); \ + B1 = _mm_unpackhi_epi64(B1, _mm_unpacklo_epi64(t1, t1)); \ + } while ((void)0, 0) + +#define UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + __m128i t0, t1; \ + t0 = C0; \ + C0 = C1; \ + C1 = t0; \ + t0 = B0; \ + t1 = D0; \ + B0 = _mm_unpackhi_epi64(B1, _mm_unpacklo_epi64(B0, B0)); \ + B1 = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(B1, B1)); \ + D0 = _mm_unpackhi_epi64(D0, _mm_unpacklo_epi64(D1, D1)); \ + D1 = _mm_unpackhi_epi64(D1, _mm_unpacklo_epi64(t1, t1)); \ + } while ((void)0, 0) +#endif + +#define BLAKE2_ROUND(A0, A1, B0, B1, C0, C1, D0, D1) \ + do { \ + G1(A0, B0, C0, D0, A1, B1, C1, D1); \ + G2(A0, B0, C0, D0, A1, B1, C1, D1); \ + \ + DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \ + \ + G1(A0, B0, C0, D0, A1, B1, C1, D1); \ + G2(A0, B0, C0, D0, A1, B1, C1, D1); \ + \ + UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \ + } while ((void)0, 0) + +#endif diff --git a/cbits/argon2/blamka-round-ref.h b/cbits/argon2/blamka-round-ref.h new file mode 100644 index 0000000..db9864d --- /dev/null +++ b/cbits/argon2/blamka-round-ref.h @@ -0,0 +1,56 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef BLAKE_ROUND_MKA_H +#define BLAKE_ROUND_MKA_H + +#include "blake2.h" +#include "blake2-impl.h" + +/*designed by the Lyra PHC team */ +static BLAKE2_INLINE uint64_t fBlaMka(uint64_t x, uint64_t y) { + const uint64_t m = UINT64_C(0xFFFFFFFF); + const uint64_t xy = (x & m) * (y & m); + return x + y + 2 * xy; +} + +#define G(a, b, c, d) \ + do { \ + a = fBlaMka(a, b); \ + d = rotr64(d ^ a, 32); \ + c = fBlaMka(c, d); \ + b = rotr64(b ^ c, 24); \ + a = fBlaMka(a, b); \ + d = rotr64(d ^ a, 16); \ + c = fBlaMka(c, d); \ + b = rotr64(b ^ c, 63); \ + } while ((void)0, 0) + +#define BLAKE2_ROUND_NOMSG(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, \ + v12, v13, v14, v15) \ + do { \ + G(v0, v4, v8, v12); \ + G(v1, v5, v9, v13); \ + G(v2, v6, v10, v14); \ + G(v3, v7, v11, v15); \ + G(v0, v5, v10, v15); \ + G(v1, v6, v11, v12); \ + G(v2, v7, v8, v13); \ + G(v3, v4, v9, v14); \ + } while ((void)0, 0) + +#endif diff --git a/cbits/argon2/core.c b/cbits/argon2/core.c new file mode 100644 index 0000000..fb5233e --- /dev/null +++ b/cbits/argon2/core.c @@ -0,0 +1,701 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +/*For memory wiping*/ +#ifdef _MSC_VER +#include +#include /* For SecureZeroMemory */ +#endif +#if defined __STDC_LIB_EXT1__ +#define __STDC_WANT_LIB_EXT1__ 1 +#endif +#define VC_GE_2005(version) (version >= 1400) + +#include +#include +#include +#include + +#include "core.h" +#include "thread.c" +#include "blake2.h" +#include "blake2-impl.h" + +#ifdef GENKAT +#include "genkat.h" +#endif + +#ifdef SUPPORT_SSE +#include "opt.c" +#else +#include "ref.c" +#endif + +#if defined(__clang__) +#if __has_attribute(optnone) +#define NOT_OPTIMIZED __attribute__((optnone)) +#endif +#elif defined(__GNUC__) +#define GCC_VERSION \ + (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#if GCC_VERSION >= 40400 +#define NOT_OPTIMIZED __attribute__((optimize("O0"))) +#endif +#endif +#ifndef NOT_OPTIMIZED +#define NOT_OPTIMIZED +#endif + +/* Argon2 Team - Begin Code */ +static int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { + uint8_t *out = (uint8_t *)pout; + blake2b_state blake_state; + uint8_t outlen_bytes[sizeof(uint32_t)] = {0}; + int ret = -1; + + if (outlen > UINT32_MAX) { + goto fail; + } + + /* Ensure little-endian byte order! */ + store32(outlen_bytes, (uint32_t)outlen); + +#define TRY(statement) \ + do { \ + ret = statement; \ + if (ret < 0) { \ + goto fail; \ + } \ + } while ((void)0, 0) + + if (outlen <= BLAKE2B_OUTBYTES) { + TRY(blake2b_init(&blake_state, outlen)); + TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); + TRY(blake2b_update(&blake_state, in, inlen)); + TRY(blake2b_final(&blake_state, out, outlen)); + } else { + uint32_t toproduce; + uint8_t out_buffer[BLAKE2B_OUTBYTES]; + uint8_t in_buffer[BLAKE2B_OUTBYTES]; + TRY(blake2b_init(&blake_state, BLAKE2B_OUTBYTES)); + TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes))); + TRY(blake2b_update(&blake_state, in, inlen)); + TRY(blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES)); + memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); + out += BLAKE2B_OUTBYTES / 2; + toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2; + + while (toproduce > BLAKE2B_OUTBYTES) { + memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); + TRY(blake2b(out_buffer, BLAKE2B_OUTBYTES, in_buffer, + BLAKE2B_OUTBYTES, NULL, 0)); + memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2); + out += BLAKE2B_OUTBYTES / 2; + toproduce -= BLAKE2B_OUTBYTES / 2; + } + + memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES); + TRY(blake2b(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL, + 0)); + memcpy(out, out_buffer, toproduce); + } +fail: + clear_internal_memory(&blake_state, sizeof(blake_state)); + return ret; +#undef TRY +} +/* Argon2 Team - End Code */ + +/***************Instance and Position constructors**********/ +static void init_block_value(block *b, uint8_t in) { memset(b->v, in, sizeof(b->v)); } + +static void copy_block(block *dst, const block *src) { + memcpy(dst->v, src->v, sizeof(uint64_t) * ARGON2_QWORDS_IN_BLOCK); +} + +static void xor_block(block *dst, const block *src) { + int i; + for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) { + dst->v[i] ^= src->v[i]; + } +} + +static void load_block(block *dst, const void *input) { + unsigned i; + for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) { + dst->v[i] = load64((const uint8_t *)input + i * sizeof(dst->v[i])); + } +} + +static void store_block(void *output, const block *src) { + unsigned i; + for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) { + store64((uint8_t *)output + i * sizeof(src->v[i]), src->v[i]); + } +} + +/***************Memory functions*****************/ +static +int allocate_memory(const argon2_context *context, uint8_t **memory, + size_t num, size_t size) { + size_t memory_size = num*size; + if (memory == NULL) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + /* 1. Check for multiplication overflow */ + if (size != 0 && memory_size / size != num) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + /* 2. Try to allocate with appropriate allocator */ + if (context->allocate_cbk) { + (context->allocate_cbk)(memory, memory_size); + } else { + *memory = malloc(memory_size); + } + + if (*memory == NULL) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + return ARGON2_OK; +} +static +void free_memory(const argon2_context *context, uint8_t *memory, + size_t num, size_t size) { + size_t memory_size = num*size; + clear_internal_memory(memory, memory_size); + if (context->free_cbk) { + (context->free_cbk)(memory, memory_size); + } else { + free(memory); + } +} + +void NOT_OPTIMIZED secure_wipe_memory(void *v, size_t n) { +#if defined(_MSC_VER) && VC_GE_2005(_MSC_VER) + SecureZeroMemory(v, n); +#elif defined memset_s + memset_s(v, n, 0, n); +#elif defined(__OpenBSD__) + explicit_bzero(v, n); +#else + static void *(*const volatile memset_sec)(void *, int, size_t) = &memset; + memset_sec(v, 0, n); +#endif +} + +/* Memory clear flag defaults to true. */ +static int FLAG_clear_internal_memory = 1; +static void clear_internal_memory(void *v, size_t n) { + if (FLAG_clear_internal_memory && v) { + secure_wipe_memory(v, n); + } +} + +static void finalize(const argon2_context *context, argon2_instance_t *instance) { + if (context != NULL && instance != NULL) { + block blockhash; + uint32_t l; + + copy_block(&blockhash, instance->memory + instance->lane_length - 1); + + /* XOR the last blocks */ + for (l = 1; l < instance->lanes; ++l) { + uint32_t last_block_in_lane = + l * instance->lane_length + (instance->lane_length - 1); + xor_block(&blockhash, instance->memory + last_block_in_lane); + } + + /* Hash the result */ + { + uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE]; + store_block(blockhash_bytes, &blockhash); + blake2b_long(context->out, context->outlen, blockhash_bytes, + ARGON2_BLOCK_SIZE); + /* clear blockhash and blockhash_bytes */ + clear_internal_memory(blockhash.v, ARGON2_BLOCK_SIZE); + clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE); + } + +#ifdef GENKAT + print_tag(context->out, context->outlen); +#endif + + free_memory(context, (uint8_t *)instance->memory, + instance->memory_blocks, sizeof(block)); + } +} + +static uint32_t index_alpha(const argon2_instance_t *instance, + const argon2_position_t *position, uint32_t pseudo_rand, + int same_lane) { + /* + * Pass 0: + * This lane : all already finished segments plus already constructed + * blocks in this segment + * Other lanes : all already finished segments + * Pass 1+: + * This lane : (SYNC_POINTS - 1) last segments plus already constructed + * blocks in this segment + * Other lanes : (SYNC_POINTS - 1) last segments + */ + uint32_t reference_area_size; + uint64_t relative_position; + uint32_t start_position, absolute_position; + + if (0 == position->pass) { + /* First pass */ + if (0 == position->slice) { + /* First slice */ + reference_area_size = + position->index - 1; /* all but the previous */ + } else { + if (same_lane) { + /* The same lane => add current segment */ + reference_area_size = + position->slice * instance->segment_length + + position->index - 1; + } else { + reference_area_size = + position->slice * instance->segment_length + + ((position->index == 0) ? (-1) : 0); + } + } + } else { + /* Second pass */ + if (same_lane) { + reference_area_size = instance->lane_length - + instance->segment_length + position->index - + 1; + } else { + reference_area_size = instance->lane_length - + instance->segment_length + + ((position->index == 0) ? (-1) : 0); + } + } + + /* 1.2.4. Mapping pseudo_rand to 0.. and produce + * relative position */ + relative_position = pseudo_rand; + relative_position = relative_position * relative_position >> 32; + relative_position = reference_area_size - 1 - + (reference_area_size * relative_position >> 32); + + /* 1.2.5 Computing starting position */ + start_position = 0; + + if (0 != position->pass) { + start_position = (position->slice == ARGON2_SYNC_POINTS - 1) + ? 0 + : (position->slice + 1) * instance->segment_length; + } + + /* 1.2.6. Computing absolute position */ + absolute_position = (start_position + relative_position) % + instance->lane_length; /* absolute position */ + return absolute_position; +} + +/* Single-threaded version for p=1 case */ +static int fill_memory_blocks_st(argon2_instance_t *instance) { + uint32_t r, s, l; + + for (r = 0; r < instance->passes; ++r) { + for (s = 0; s < ARGON2_SYNC_POINTS; ++s) { + for (l = 0; l < instance->lanes; ++l) { + argon2_position_t position = {r, l, (uint8_t)s, 0}; + fill_segment(instance, position); + } + } +#ifdef GENKAT + internal_kat(instance, r); /* Print all memory blocks */ +#endif + } + return ARGON2_OK; +} + +#if !defined(ARGON2_NO_THREADS) + +#ifdef _WIN32 +static unsigned __stdcall fill_segment_thr(void *thread_data) +#else +static void *fill_segment_thr(void *thread_data) +#endif +{ + argon2_thread_data *my_data = thread_data; + fill_segment(my_data->instance_ptr, my_data->pos); + argon2_thread_exit(); + return 0; +} + +/* Multi-threaded version for p > 1 case */ +static int fill_memory_blocks_mt(argon2_instance_t *instance) { + uint32_t r, s; + argon2_thread_handle_t *thread = NULL; + argon2_thread_data *thr_data = NULL; + int rc = ARGON2_OK; + + /* 1. Allocating space for threads */ + thread = calloc(instance->lanes, sizeof(argon2_thread_handle_t)); + if (thread == NULL) { + rc = ARGON2_MEMORY_ALLOCATION_ERROR; + goto fail; + } + + thr_data = calloc(instance->lanes, sizeof(argon2_thread_data)); + if (thr_data == NULL) { + rc = ARGON2_MEMORY_ALLOCATION_ERROR; + goto fail; + } + + for (r = 0; r < instance->passes; ++r) { + for (s = 0; s < ARGON2_SYNC_POINTS; ++s) { + uint32_t l; + + /* 2. Calling threads */ + for (l = 0; l < instance->lanes; ++l) { + argon2_position_t position; + + /* 2.1 Join a thread if limit is exceeded */ + if (l >= instance->threads) { + if (argon2_thread_join(thread[l - instance->threads])) { + rc = ARGON2_THREAD_FAIL; + goto fail; + } + } + + /* 2.2 Create thread */ + position.pass = r; + position.lane = l; + position.slice = (uint8_t)s; + position.index = 0; + thr_data[l].instance_ptr = + instance; /* preparing the thread input */ + memcpy(&(thr_data[l].pos), &position, + sizeof(argon2_position_t)); + if (argon2_thread_create(&thread[l], &fill_segment_thr, + (void *)&thr_data[l])) { + rc = ARGON2_THREAD_FAIL; + goto fail; + } + + /* fill_segment(instance, position); */ + /*Non-thread equivalent of the lines above */ + } + + /* 3. Joining remaining threads */ + for (l = instance->lanes - instance->threads; l < instance->lanes; + ++l) { + if (argon2_thread_join(thread[l])) { + rc = ARGON2_THREAD_FAIL; + goto fail; + } + } + } + +#ifdef GENKAT + internal_kat(instance, r); /* Print all memory blocks */ +#endif + } + +fail: + if (thread != NULL) { + free(thread); + } + if (thr_data != NULL) { + free(thr_data); + } + return rc; +} + +#endif /* ARGON2_NO_THREADS */ +static +int fill_memory_blocks(argon2_instance_t *instance) { + if (instance == NULL || instance->lanes == 0) { + return ARGON2_INCORRECT_PARAMETER; + } +#if defined(ARGON2_NO_THREADS) + return fill_memory_blocks_st(instance); +#else + return instance->threads == 1 ? + fill_memory_blocks_st(instance) : fill_memory_blocks_mt(instance); +#endif +} +static +int validate_inputs(const argon2_context *context) { + if (NULL == context) { + return ARGON2_INCORRECT_PARAMETER; + } + + if (NULL == context->out) { + return ARGON2_OUTPUT_PTR_NULL; + } + + /* Validate output length */ + if (ARGON2_MIN_OUTLEN > context->outlen) { + return ARGON2_OUTPUT_TOO_SHORT; + } + + if (ARGON2_MAX_OUTLEN < context->outlen) { + return ARGON2_OUTPUT_TOO_LONG; + } + + /* Validate password (required param) */ + if (NULL == context->pwd) { + if (0 != context->pwdlen) { + return ARGON2_PWD_PTR_MISMATCH; + } + } + + if (ARGON2_MIN_PWD_LENGTH > context->pwdlen) { + return ARGON2_PWD_TOO_SHORT; + } + + if (ARGON2_MAX_PWD_LENGTH < context->pwdlen) { + return ARGON2_PWD_TOO_LONG; + } + + /* Validate salt (required param) */ + if (NULL == context->salt) { + if (0 != context->saltlen) { + return ARGON2_SALT_PTR_MISMATCH; + } + } + + if (ARGON2_MIN_SALT_LENGTH > context->saltlen) { + return ARGON2_SALT_TOO_SHORT; + } + + if (ARGON2_MAX_SALT_LENGTH < context->saltlen) { + return ARGON2_SALT_TOO_LONG; + } + + /* Validate secret (optional param) */ + if (NULL == context->secret) { + if (0 != context->secretlen) { + return ARGON2_SECRET_PTR_MISMATCH; + } + } else { + if (ARGON2_MIN_SECRET > context->secretlen) { + return ARGON2_SECRET_TOO_SHORT; + } + if (ARGON2_MAX_SECRET < context->secretlen) { + return ARGON2_SECRET_TOO_LONG; + } + } + + /* Validate associated data (optional param) */ + if (NULL == context->ad) { + if (0 != context->adlen) { + return ARGON2_AD_PTR_MISMATCH; + } + } else { + if (ARGON2_MIN_AD_LENGTH > context->adlen) { + return ARGON2_AD_TOO_SHORT; + } + if (ARGON2_MAX_AD_LENGTH < context->adlen) { + return ARGON2_AD_TOO_LONG; + } + } + + /* Validate memory cost */ + if (ARGON2_MIN_MEMORY > context->m_cost) { + return ARGON2_MEMORY_TOO_LITTLE; + } + + if (ARGON2_MAX_MEMORY < context->m_cost) { + return ARGON2_MEMORY_TOO_MUCH; + } + + if (context->m_cost < 8 * context->lanes) { + return ARGON2_MEMORY_TOO_LITTLE; + } + + /* Validate time cost */ + if (ARGON2_MIN_TIME > context->t_cost) { + return ARGON2_TIME_TOO_SMALL; + } + + if (ARGON2_MAX_TIME < context->t_cost) { + return ARGON2_TIME_TOO_LARGE; + } + + /* Validate lanes */ + if (ARGON2_MIN_LANES > context->lanes) { + return ARGON2_LANES_TOO_FEW; + } + + if (ARGON2_MAX_LANES < context->lanes) { + return ARGON2_LANES_TOO_MANY; + } + + /* Validate threads */ + if (ARGON2_MIN_THREADS > context->threads) { + return ARGON2_THREADS_TOO_FEW; + } + + if (ARGON2_MAX_THREADS < context->threads) { + return ARGON2_THREADS_TOO_MANY; + } + + if (NULL != context->allocate_cbk && NULL == context->free_cbk) { + return ARGON2_FREE_MEMORY_CBK_NULL; + } + + if (NULL == context->allocate_cbk && NULL != context->free_cbk) { + return ARGON2_ALLOCATE_MEMORY_CBK_NULL; + } + + return ARGON2_OK; +} +static +void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) { + uint32_t l; + /* Make the first and second block in each lane as G(H0||i||0) or + G(H0||i||1) */ + uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE]; + for (l = 0; l < instance->lanes; ++l) { + + store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 0); + store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH + 4, l); + blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, + ARGON2_PREHASH_SEED_LENGTH); + load_block(&instance->memory[l * instance->lane_length + 0], + blockhash_bytes); + + store32(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 1); + blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, + ARGON2_PREHASH_SEED_LENGTH); + load_block(&instance->memory[l * instance->lane_length + 1], + blockhash_bytes); + } + clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE); +} +static +void initial_hash(uint8_t *blockhash, argon2_context *context, + argon2_type type) { + blake2b_state BlakeHash; + uint8_t value[sizeof(uint32_t)]; + + if (NULL == context || NULL == blockhash) { + return; + } + + blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH); + + store32(&value, context->lanes); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + store32(&value, context->outlen); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + store32(&value, context->m_cost); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + store32(&value, context->t_cost); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + store32(&value, context->version); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + store32(&value, (uint32_t)type); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + store32(&value, context->pwdlen); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + if (context->pwd != NULL) { + blake2b_update(&BlakeHash, (const uint8_t *)context->pwd, + context->pwdlen); + + if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) { + secure_wipe_memory(context->pwd, context->pwdlen); + context->pwdlen = 0; + } + } + + store32(&value, context->saltlen); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + if (context->salt != NULL) { + blake2b_update(&BlakeHash, (const uint8_t *)context->salt, + context->saltlen); + } + + store32(&value, context->secretlen); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + if (context->secret != NULL) { + blake2b_update(&BlakeHash, (const uint8_t *)context->secret, + context->secretlen); + + if (context->flags & ARGON2_FLAG_CLEAR_SECRET) { + secure_wipe_memory(context->secret, context->secretlen); + context->secretlen = 0; + } + } + + store32(&value, context->adlen); + blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value)); + + if (context->ad != NULL) { + blake2b_update(&BlakeHash, (const uint8_t *)context->ad, + context->adlen); + } + + blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); +} +static +int initialize(argon2_instance_t *instance, argon2_context *context) { + uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; + int result = ARGON2_OK; + + if (instance == NULL || context == NULL) + return ARGON2_INCORRECT_PARAMETER; + instance->context_ptr = context; + + /* 1. Memory allocation */ + result = allocate_memory(context, (uint8_t **)&(instance->memory), + instance->memory_blocks, sizeof(block)); + if (result != ARGON2_OK) { + return result; + } + + /* 2. Initial hashing */ + /* H_0 + 8 extra bytes to produce the first blocks */ + /* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */ + /* Hashing all inputs */ + initial_hash(blockhash, context, instance->type); + /* Zeroing 8 extra bytes */ + clear_internal_memory(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, + ARGON2_PREHASH_SEED_LENGTH - + ARGON2_PREHASH_DIGEST_LENGTH); + +#ifdef GENKAT + initial_kat(blockhash, context, instance->type); +#endif + + /* 3. Creating first blocks, we always have at least two blocks in a slice + */ + fill_first_blocks(blockhash, instance); + /* Clearing the hash */ + clear_internal_memory(blockhash, ARGON2_PREHASH_SEED_LENGTH); + + return ARGON2_OK; +} diff --git a/cbits/argon2/core.h b/cbits/argon2/core.h new file mode 100644 index 0000000..888cc3c --- /dev/null +++ b/cbits/argon2/core.h @@ -0,0 +1,234 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef ARGON2_CORE_H +#define ARGON2_CORE_H + +#include "argon2.h" + +#if defined(_MSC_VER) +#define ALIGN(n) __declspec(align(16)) +#elif defined(__GNUC__) || defined(__clang) +#define ALIGN(x) __attribute__((__aligned__(x))) +#else +#define ALIGN(x) +#endif + +#define CONST_CAST(x) (x)(uintptr_t) + +/**********************Argon2 internal constants*******************************/ + +enum argon2_core_constants { + /* Memory block size in bytes */ + ARGON2_BLOCK_SIZE = 1024, + ARGON2_QWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 8, + ARGON2_OWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 16, + + /* Number of pseudo-random values generated by one call to Blake in Argon2i + to + generate reference block positions */ + ARGON2_ADDRESSES_IN_BLOCK = 128, + + /* Pre-hashing digest length and its extension*/ + ARGON2_PREHASH_DIGEST_LENGTH = 64, + ARGON2_PREHASH_SEED_LENGTH = 72 +}; + +/*************************Argon2 internal data types***********************/ + +/* + * Structure for the (1KB) memory block implemented as 128 64-bit words. + * Memory blocks can be copied, XORed. Internal words can be accessed by [] (no + * bounds checking). + */ +typedef struct block_ { uint64_t v[ARGON2_QWORDS_IN_BLOCK]; } block; + +/*****************Functions that work with the block******************/ + +/* Initialize each byte of the block with @in */ +static void init_block_value(block *b, uint8_t in); + +/* Copy block @src to block @dst */ +static void copy_block(block *dst, const block *src); + +/* XOR @src onto @dst bytewise */ +static void xor_block(block *dst, const block *src); + +/* + * Argon2 instance: memory pointer, number of passes, amount of memory, type, + * and derived values. + * Used to evaluate the number and location of blocks to construct in each + * thread + */ +typedef struct Argon2_instance_t { + block *memory; /* Memory pointer */ + uint32_t version; + uint32_t passes; /* Number of passes */ + uint32_t memory_blocks; /* Number of blocks in memory */ + uint32_t segment_length; + uint32_t lane_length; + uint32_t lanes; + uint32_t threads; + argon2_type type; + int print_internals; /* whether to print the memory blocks */ + argon2_context *context_ptr; /* points back to original context */ +} argon2_instance_t; + +/* + * Argon2 position: where we construct the block right now. Used to distribute + * work between threads. + */ +typedef struct Argon2_position_t { + uint32_t pass; + uint32_t lane; + uint8_t slice; + uint32_t index; +} argon2_position_t; + +/*Struct that holds the inputs for thread handling FillSegment*/ +typedef struct Argon2_thread_data { + argon2_instance_t *instance_ptr; + argon2_position_t pos; +} argon2_thread_data; + +/*************************Argon2 core functions********************************/ + +/* Allocates memory to the given pointer, uses the appropriate allocator as + * specified in the context. Total allocated memory is num*size. + * @param context argon2_context which specifies the allocator + * @param memory pointer to the pointer to the memory + * @param size the size in bytes for each element to be allocated + * @param num the number of elements to be allocated + * @return ARGON2_OK if @memory is a valid pointer and memory is allocated + */ +static int allocate_memory(const argon2_context *context, uint8_t **memory, + size_t num, size_t size); + +/* + * Frees memory at the given pointer, uses the appropriate deallocator as + * specified in the context. Also cleans the memory using clear_internal_memory. + * @param context argon2_context which specifies the deallocator + * @param memory pointer to buffer to be freed + * @param size the size in bytes for each element to be deallocated + * @param num the number of elements to be deallocated + */ +static void free_memory(const argon2_context *context, uint8_t *memory, + size_t num, size_t size); + +/* Function that securely cleans the memory. This ignores any flags set + * regarding clearing memory. Usually one just calls clear_internal_memory. + * @param mem Pointer to the memory + * @param s Memory size in bytes + */ +static void secure_wipe_memory(void *v, size_t n); + +/* Function that securely clears the memory if FLAG_clear_internal_memory is + * set. If the flag isn't set, this function does nothing. + * @param mem Pointer to the memory + * @param s Memory size in bytes + */ +static void clear_internal_memory(void *v, size_t n); + +/* + * Computes absolute position of reference block in the lane following a skewed + * distribution and using a pseudo-random value as input + * @param instance Pointer to the current instance + * @param position Pointer to the current position + * @param pseudo_rand 32-bit pseudo-random value used to determine the position + * @param same_lane Indicates if the block will be taken from the current lane. + * If so we can reference the current segment + * @pre All pointers must be valid + */ +static uint32_t index_alpha(const argon2_instance_t *instance, + const argon2_position_t *position, uint32_t pseudo_rand, + int same_lane); + +/* + * Function that validates all inputs against predefined restrictions and return + * an error code + * @param context Pointer to current Argon2 context + * @return ARGON2_OK if everything is all right, otherwise one of error codes + * (all defined in + */ +static int validate_inputs(const argon2_context *context); + +/* + * Hashes all the inputs into @a blockhash[PREHASH_DIGEST_LENGTH], clears + * password and secret if needed + * @param context Pointer to the Argon2 internal structure containing memory + * pointer, and parameters for time and space requirements. + * @param blockhash Buffer for pre-hashing digest + * @param type Argon2 type + * @pre @a blockhash must have at least @a PREHASH_DIGEST_LENGTH bytes + * allocated + */ +static void initial_hash(uint8_t *blockhash, argon2_context *context, + argon2_type type); + +/* + * Function creates first 2 blocks per lane + * @param instance Pointer to the current instance + * @param blockhash Pointer to the pre-hashing digest + * @pre blockhash must point to @a PREHASH_SEED_LENGTH allocated values + */ +static void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance); + +/* + * Function allocates memory, hashes the inputs with Blake, and creates first + * two blocks. Returns the pointer to the main memory with 2 blocks per lane + * initialized + * @param context Pointer to the Argon2 internal structure containing memory + * pointer, and parameters for time and space requirements. + * @param instance Current Argon2 instance + * @return Zero if successful, -1 if memory failed to allocate. @context->state + * will be modified if successful. + */ +static int initialize(argon2_instance_t *instance, argon2_context *context); + +/* + * XORing the last block of each lane, hashing it, making the tag. Deallocates + * the memory. + * @param context Pointer to current Argon2 context (use only the out parameters + * from it) + * @param instance Pointer to current instance of Argon2 + * @pre instance->state must point to necessary amount of memory + * @pre context->out must point to outlen bytes of memory + * @pre if context->free_cbk is not NULL, it should point to a function that + * deallocates memory + */ +static void finalize(const argon2_context *context, argon2_instance_t *instance); + +/* + * Function that fills the segment using previous segments also from other + * threads + * @param context current context + * @param instance Pointer to the current instance + * @param position Current position + * @pre all block pointers must be valid + */ +static void fill_segment(const argon2_instance_t *instance, + argon2_position_t position); + +/* + * Function that fills the entire memory t_cost times based on the first two + * blocks in each lane + * @param instance Pointer to the current instance + * @return ARGON2_OK if successful, @context->state + */ +static int fill_memory_blocks(argon2_instance_t *instance); + +#endif diff --git a/cbits/argon2/opt.c b/cbits/argon2/opt.c new file mode 100644 index 0000000..0102bdc --- /dev/null +++ b/cbits/argon2/opt.c @@ -0,0 +1,186 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#include +#include +#include + +#include "argon2.h" +#include "opt.h" + +#include "blake2/blake2.h" +#include "blake2/blamka-round-opt.h" + +static void fill_block(__m128i *state, const block *ref_block, block *next_block, + int with_xor) { + __m128i block_XY[ARGON2_OWORDS_IN_BLOCK]; + unsigned int i; + + if (with_xor) { + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + state[i] = _mm_xor_si128( + state[i], _mm_loadu_si128((const __m128i *)ref_block->v + i)); + block_XY[i] = _mm_xor_si128( + state[i], _mm_loadu_si128((const __m128i *)next_block->v + i)); + } + } else { + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + block_XY[i] = state[i] = _mm_xor_si128( + state[i], _mm_loadu_si128((const __m128i *)ref_block->v + i)); + } + } + + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2], + state[8 * i + 3], state[8 * i + 4], state[8 * i + 5], + state[8 * i + 6], state[8 * i + 7]); + } + + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i], + state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i], + state[8 * 6 + i], state[8 * 7 + i]); + } + + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + state[i] = _mm_xor_si128(state[i], block_XY[i]); + _mm_storeu_si128((__m128i *)next_block->v + i, state[i]); + } +} + +static void next_addresses(block *address_block, block *input_block) { + /*Temporary zero-initialized blocks*/ + __m128i zero_block[ARGON2_OWORDS_IN_BLOCK]; + __m128i zero2_block[ARGON2_OWORDS_IN_BLOCK]; + + memset(zero_block, 0, sizeof(zero_block)); + memset(zero2_block, 0, sizeof(zero2_block)); + + /*Increasing index counter*/ + input_block->v[6]++; + + /*First iteration of G*/ + fill_block(zero_block, input_block, address_block, 0); + + /*Second iteration of G*/ + fill_block(zero2_block, address_block, address_block, 0); +} + +static void fill_segment(const argon2_instance_t *instance, + argon2_position_t position) { + block *ref_block = NULL, *curr_block = NULL; + block address_block, input_block; + uint64_t pseudo_rand, ref_index, ref_lane; + uint32_t prev_offset, curr_offset; + uint32_t starting_index, i; + __m128i state[64]; + int data_independent_addressing; + + if (instance == NULL) { + return; + } + + data_independent_addressing = + (instance->type == Argon2_i) || + (instance->type == Argon2_id && (position.pass == 0) && + (position.slice < ARGON2_SYNC_POINTS / 2)); + + if (data_independent_addressing) { + init_block_value(&input_block, 0); + + input_block.v[0] = position.pass; + input_block.v[1] = position.lane; + input_block.v[2] = position.slice; + input_block.v[3] = instance->memory_blocks; + input_block.v[4] = instance->passes; + input_block.v[5] = instance->type; + } + + starting_index = 0; + + if ((0 == position.pass) && (0 == position.slice)) { + starting_index = 2; /* we have already generated the first two blocks */ + + /* Don't forget to generate the first block of addresses: */ + if (data_independent_addressing) { + next_addresses(&address_block, &input_block); + } + } + + /* Offset of the current block */ + curr_offset = position.lane * instance->lane_length + + position.slice * instance->segment_length + starting_index; + + if (0 == curr_offset % instance->lane_length) { + /* Last block in this lane */ + prev_offset = curr_offset + instance->lane_length - 1; + } else { + /* Previous block */ + prev_offset = curr_offset - 1; + } + + memcpy(state, ((instance->memory + prev_offset)->v), ARGON2_BLOCK_SIZE); + + for (i = starting_index; i < instance->segment_length; + ++i, ++curr_offset, ++prev_offset) { + /*1.1 Rotating prev_offset if needed */ + if (curr_offset % instance->lane_length == 1) { + prev_offset = curr_offset - 1; + } + + /* 1.2 Computing the index of the reference block */ + /* 1.2.1 Taking pseudo-random value from the previous block */ + if (data_independent_addressing) { + if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) { + next_addresses(&address_block, &input_block); + } + pseudo_rand = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK]; + } else { + pseudo_rand = instance->memory[prev_offset].v[0]; + } + + /* 1.2.2 Computing the lane of the reference block */ + ref_lane = ((pseudo_rand >> 32)) % instance->lanes; + + if ((position.pass == 0) && (position.slice == 0)) { + /* Can not reference other lanes yet */ + ref_lane = position.lane; + } + + /* 1.2.3 Computing the number of possible reference block within the + * lane. + */ + position.index = i; + ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, + ref_lane == position.lane); + + /* 2 Creating a new block */ + ref_block = + instance->memory + instance->lane_length * ref_lane + ref_index; + curr_block = instance->memory + curr_offset; + if (ARGON2_VERSION_10 == instance->version) { + /* version 1.2.1 and earlier: overwrite, not XOR */ + fill_block(state, ref_block, curr_block, 0); + } else { + if(0 == position.pass) { + fill_block(state, ref_block, curr_block, 0); + } else { + fill_block(state, ref_block, curr_block, 1); + } + } + } +} diff --git a/cbits/argon2/opt.h b/cbits/argon2/opt.h new file mode 100644 index 0000000..825bbfc --- /dev/null +++ b/cbits/argon2/opt.h @@ -0,0 +1,35 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef ARGON2_OPT_H +#define ARGON2_OPT_H + +#include "core.h" +#include + +/* + * Function fills a new memory block and optionally XORs the old block over the new one. + * Memory must be initialized. + * @param state Pointer to the just produced block. Content will be updated(!) + * @param ref_block Pointer to the reference block + * @param next_block Pointer to the block to be XORed over. May coincide with @ref_block + * @param with_xor Whether to XOR into the new block (1) or just overwrite (0) + * @pre all block pointers must be valid + */ +static void fill_block(__m128i *s, const block *ref_block, block *next_block, int with_xor); + +#endif /* ARGON2_OPT_H */ diff --git a/cbits/argon2/ref.c b/cbits/argon2/ref.c new file mode 100644 index 0000000..f30e294 --- /dev/null +++ b/cbits/argon2/ref.c @@ -0,0 +1,185 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#include +#include +#include + +#include "argon2.h" +#include "ref.h" + +#include "blamka-round-ref.h" +#include "blake2-impl.h" +#include "blake2.h" + + +static void fill_block(const block *prev_block, const block *ref_block, + block *next_block, int with_xor) { + block blockR, block_tmp; + unsigned i; + + copy_block(&blockR, ref_block); + xor_block(&blockR, prev_block); + copy_block(&block_tmp, &blockR); + /* Now blockR = ref_block + prev_block and block_tmp = ref_block + prev_block */ + if (with_xor) { + /* Saving the next block contents for XOR over: */ + xor_block(&block_tmp, next_block); + /* Now blockR = ref_block + prev_block and + block_tmp = ref_block + prev_block + next_block */ + } + + /* Apply Blake2 on columns of 64-bit words: (0,1,...,15) , then + (16,17,..31)... finally (112,113,...127) */ + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND_NOMSG( + blockR.v[16 * i], blockR.v[16 * i + 1], blockR.v[16 * i + 2], + blockR.v[16 * i + 3], blockR.v[16 * i + 4], blockR.v[16 * i + 5], + blockR.v[16 * i + 6], blockR.v[16 * i + 7], blockR.v[16 * i + 8], + blockR.v[16 * i + 9], blockR.v[16 * i + 10], blockR.v[16 * i + 11], + blockR.v[16 * i + 12], blockR.v[16 * i + 13], blockR.v[16 * i + 14], + blockR.v[16 * i + 15]); + } + + /* Apply Blake2 on rows of 64-bit words: (0,1,16,17,...112,113), then + (2,3,18,19,...,114,115).. finally (14,15,30,31,...,126,127) */ + for (i = 0; i < 8; i++) { + BLAKE2_ROUND_NOMSG( + blockR.v[2 * i], blockR.v[2 * i + 1], blockR.v[2 * i + 16], + blockR.v[2 * i + 17], blockR.v[2 * i + 32], blockR.v[2 * i + 33], + blockR.v[2 * i + 48], blockR.v[2 * i + 49], blockR.v[2 * i + 64], + blockR.v[2 * i + 65], blockR.v[2 * i + 80], blockR.v[2 * i + 81], + blockR.v[2 * i + 96], blockR.v[2 * i + 97], blockR.v[2 * i + 112], + blockR.v[2 * i + 113]); + } + + copy_block(next_block, &block_tmp); + xor_block(next_block, &blockR); +} + +static void next_addresses(block *address_block, block *input_block, + const block *zero_block) { + input_block->v[6]++; + fill_block(zero_block, input_block, address_block, 0); + fill_block(zero_block, address_block, address_block, 0); +} + +static void fill_segment(const argon2_instance_t *instance, + argon2_position_t position) { + block *ref_block = NULL, *curr_block = NULL; + block address_block, input_block, zero_block; + uint64_t pseudo_rand, ref_index, ref_lane; + uint32_t prev_offset, curr_offset; + uint32_t starting_index; + uint32_t i; + int data_independent_addressing; + + if (instance == NULL) { + return; + } + + data_independent_addressing = + (instance->type == Argon2_i) || + (instance->type == Argon2_id && (position.pass == 0) && + (position.slice < ARGON2_SYNC_POINTS / 2)); + + if (data_independent_addressing) { + init_block_value(&zero_block, 0); + init_block_value(&input_block, 0); + + input_block.v[0] = position.pass; + input_block.v[1] = position.lane; + input_block.v[2] = position.slice; + input_block.v[3] = instance->memory_blocks; + input_block.v[4] = instance->passes; + input_block.v[5] = instance->type; + } + + starting_index = 0; + + if ((0 == position.pass) && (0 == position.slice)) { + starting_index = 2; /* we have already generated the first two blocks */ + + /* Don't forget to generate the first block of addresses: */ + if (data_independent_addressing) { + next_addresses(&address_block, &input_block, &zero_block); + } + } + + /* Offset of the current block */ + curr_offset = position.lane * instance->lane_length + + position.slice * instance->segment_length + starting_index; + + if (0 == curr_offset % instance->lane_length) { + /* Last block in this lane */ + prev_offset = curr_offset + instance->lane_length - 1; + } else { + /* Previous block */ + prev_offset = curr_offset - 1; + } + + for (i = starting_index; i < instance->segment_length; + ++i, ++curr_offset, ++prev_offset) { + /*1.1 Rotating prev_offset if needed */ + if (curr_offset % instance->lane_length == 1) { + prev_offset = curr_offset - 1; + } + + /* 1.2 Computing the index of the reference block */ + /* 1.2.1 Taking pseudo-random value from the previous block */ + if (data_independent_addressing) { + if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) { + next_addresses(&address_block, &input_block, &zero_block); + } + pseudo_rand = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK]; + } else { + pseudo_rand = instance->memory[prev_offset].v[0]; + } + + /* 1.2.2 Computing the lane of the reference block */ + ref_lane = ((pseudo_rand >> 32)) % instance->lanes; + + if ((position.pass == 0) && (position.slice == 0)) { + /* Can not reference other lanes yet */ + ref_lane = position.lane; + } + + /* 1.2.3 Computing the number of possible reference block within the + * lane. + */ + position.index = i; + ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, + ref_lane == position.lane); + + /* 2 Creating a new block */ + ref_block = + instance->memory + instance->lane_length * ref_lane + ref_index; + curr_block = instance->memory + curr_offset; + if (ARGON2_VERSION_10 == instance->version) { + /* version 1.2.1 and earlier: overwrite, not XOR */ + fill_block(instance->memory + prev_offset, ref_block, curr_block, 0); + } else { + if(0 == position.pass) { + fill_block(instance->memory + prev_offset, ref_block, + curr_block, 0); + } else { + fill_block(instance->memory + prev_offset, ref_block, + curr_block, 1); + } + } + } +} diff --git a/cbits/argon2/ref.h b/cbits/argon2/ref.h new file mode 100644 index 0000000..676b454 --- /dev/null +++ b/cbits/argon2/ref.h @@ -0,0 +1,35 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef ARGON2_REF_H +#define ARGON2_REF_H + +#include "core.h" + +/* + * Function fills a new memory block and optionally XORs the old block over the new one. + * @next_block must be initialized. + * @param prev_block Pointer to the previous block + * @param ref_block Pointer to the reference block + * @param next_block Pointer to the block to be constructed + * @param with_xor Whether to XOR into the new block (1) or just overwrite (0) + * @pre all block pointers must be valid + */ +static void fill_block(const block *prev_block, const block *ref_block, + block *next_block, int with_xor); + +#endif /* ARGON2_REF_H */ diff --git a/cbits/argon2/thread.c b/cbits/argon2/thread.c new file mode 100644 index 0000000..1686481 --- /dev/null +++ b/cbits/argon2/thread.c @@ -0,0 +1,57 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#if !defined(ARGON2_NO_THREADS) + +#include "thread.h" +#if defined(_WIN32) +#include +#endif + +static int argon2_thread_create(argon2_thread_handle_t *handle, + argon2_thread_func_t func, void *args) { + if (NULL == handle || func == NULL) { + return -1; + } +#if defined(_WIN32) + *handle = _beginthreadex(NULL, 0, func, args, 0, NULL); + return *handle != 0 ? 0 : -1; +#else + return pthread_create(handle, NULL, func, args); +#endif +} + +static int argon2_thread_join(argon2_thread_handle_t handle) { +#if defined(_WIN32) + if (WaitForSingleObject((HANDLE)handle, INFINITE) == WAIT_OBJECT_0) { + return CloseHandle((HANDLE)handle) != 0 ? 0 : -1; + } + return -1; +#else + return pthread_join(handle, NULL); +#endif +} + +static void argon2_thread_exit(void) { +#if defined(_WIN32) + _endthreadex(0); +#else + pthread_exit(NULL); +#endif +} + +#endif /* ARGON2_NO_THREADS */ diff --git a/cbits/argon2/thread.h b/cbits/argon2/thread.h new file mode 100644 index 0000000..d91882c --- /dev/null +++ b/cbits/argon2/thread.h @@ -0,0 +1,67 @@ +/* + * Argon2 reference source code package - reference C implementations + * + * Copyright 2015 + * Daniel Dinu, Dmitry Khovratovich, Jean-Philippe Aumasson, and Samuel Neves + * + * You may use this work under the terms of a Creative Commons CC0 1.0 + * License/Waiver or the Apache Public License 2.0, at your option. The terms of + * these licenses can be found at: + * + * - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + * - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + * + * You should have received a copy of both of these licenses along with this + * software. If not, they may be obtained at the above URLs. + */ + +#ifndef ARGON2_THREAD_H +#define ARGON2_THREAD_H + +#if !defined(ARGON2_NO_THREADS) + +/* + Here we implement an abstraction layer for the simpĺe requirements + of the Argon2 code. We only require 3 primitives---thread creation, + joining, and termination---so full emulation of the pthreads API + is unwarranted. Currently we wrap pthreads and Win32 threads. + + The API defines 2 types: the function pointer type, + argon2_thread_func_t, + and the type of the thread handle---argon2_thread_handle_t. +*/ +#if defined(_WIN32) +#include +typedef unsigned(__stdcall *argon2_thread_func_t)(void *); +typedef uintptr_t argon2_thread_handle_t; +#else +#include +typedef void *(*argon2_thread_func_t)(void *); +typedef pthread_t argon2_thread_handle_t; +#endif + +/* Creates a thread + * @param handle pointer to a thread handle, which is the output of this + * function. Must not be NULL. + * @param func A function pointer for the thread's entry point. Must not be + * NULL. + * @param args Pointer that is passed as an argument to @func. May be NULL. + * @return 0 if @handle and @func are valid pointers and a thread is successfuly + * created. + */ +static int argon2_thread_create(argon2_thread_handle_t *handle, + argon2_thread_func_t func, void *args); + +/* Waits for a thread to terminate + * @param handle Handle to a thread created with argon2_thread_create. + * @return 0 if @handle is a valid handle, and joining completed successfully. +*/ +static int argon2_thread_join(argon2_thread_handle_t handle); + +/* Terminate the current thread. Must be run inside a thread created by + * argon2_thread_create. +*/ +static void argon2_thread_exit(void); + +#endif /* ARGON2_NO_THREADS */ +#endif diff --git a/cbits/blake2/ref/blake2-impl.h b/cbits/blake2/ref/blake2-impl.h index ae582a5..5dff7fc 100644 --- a/cbits/blake2/ref/blake2-impl.h +++ b/cbits/blake2/ref/blake2-impl.h @@ -1,23 +1,36 @@ /* BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2_IMPL_H__ -#define __BLAKE2_IMPL_H__ +#ifndef BLAKE2_IMPL_H +#define BLAKE2_IMPL_H #include #include -static inline uint32_t load32( const void *src ) +#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) + #if defined(_MSC_VER) + #define BLAKE2_INLINE __inline + #elif defined(__GNUC__) + #define BLAKE2_INLINE __inline__ + #else + #define BLAKE2_INLINE + #endif +#else + #define BLAKE2_INLINE inline +#endif + +static BLAKE2_INLINE uint32_t load32( const void *src ) { #if defined(NATIVE_LITTLE_ENDIAN) uint32_t w; @@ -25,15 +38,14 @@ static inline uint32_t load32( const void *src ) return w; #else const uint8_t *p = ( const uint8_t * )src; - uint32_t w = *p++; - w |= ( uint32_t )( *p++ ) << 8; - w |= ( uint32_t )( *p++ ) << 16; - w |= ( uint32_t )( *p++ ) << 24; - return w; + return (( uint32_t )( p[0] ) << 0) | + (( uint32_t )( p[1] ) << 8) | + (( uint32_t )( p[2] ) << 16) | + (( uint32_t )( p[3] ) << 24) ; #endif } -static inline uint64_t load64( const void *src ) +static BLAKE2_INLINE uint64_t load64( const void *src ) { #if defined(NATIVE_LITTLE_ENDIAN) uint64_t w; @@ -41,97 +53,108 @@ static inline uint64_t load64( const void *src ) return w; #else const uint8_t *p = ( const uint8_t * )src; - uint64_t w = *p++; - w |= ( uint64_t )( *p++ ) << 8; - w |= ( uint64_t )( *p++ ) << 16; - w |= ( uint64_t )( *p++ ) << 24; - w |= ( uint64_t )( *p++ ) << 32; - w |= ( uint64_t )( *p++ ) << 40; - w |= ( uint64_t )( *p++ ) << 48; - w |= ( uint64_t )( *p++ ) << 56; + return (( uint64_t )( p[0] ) << 0) | + (( uint64_t )( p[1] ) << 8) | + (( uint64_t )( p[2] ) << 16) | + (( uint64_t )( p[3] ) << 24) | + (( uint64_t )( p[4] ) << 32) | + (( uint64_t )( p[5] ) << 40) | + (( uint64_t )( p[6] ) << 48) | + (( uint64_t )( p[7] ) << 56) ; +#endif +} + +static BLAKE2_INLINE uint16_t load16( const void *src ) +{ +#if defined(NATIVE_LITTLE_ENDIAN) + uint16_t w; + memcpy(&w, src, sizeof w); return w; +#else + const uint8_t *p = ( const uint8_t * )src; + return (( uint16_t )( p[0] ) << 0) | + (( uint16_t )( p[1] ) << 8) ; #endif } -static inline void store32( void *dst, uint32_t w ) +static BLAKE2_INLINE void store16( void *dst, uint16_t w ) { #if defined(NATIVE_LITTLE_ENDIAN) memcpy(dst, &w, sizeof w); #else uint8_t *p = ( uint8_t * )dst; *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; *p++ = ( uint8_t )w; #endif } -static inline void store64( void *dst, uint64_t w ) +static BLAKE2_INLINE void store32( void *dst, uint32_t w ) { #if defined(NATIVE_LITTLE_ENDIAN) memcpy(dst, &w, sizeof w); #else uint8_t *p = ( uint8_t * )dst; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; + p[0] = (uint8_t)(w >> 0); + p[1] = (uint8_t)(w >> 8); + p[2] = (uint8_t)(w >> 16); + p[3] = (uint8_t)(w >> 24); #endif } -static inline uint64_t load48( const void *src ) +static BLAKE2_INLINE void store64( void *dst, uint64_t w ) +{ +#if defined(NATIVE_LITTLE_ENDIAN) + memcpy(dst, &w, sizeof w); +#else + uint8_t *p = ( uint8_t * )dst; + p[0] = (uint8_t)(w >> 0); + p[1] = (uint8_t)(w >> 8); + p[2] = (uint8_t)(w >> 16); + p[3] = (uint8_t)(w >> 24); + p[4] = (uint8_t)(w >> 32); + p[5] = (uint8_t)(w >> 40); + p[6] = (uint8_t)(w >> 48); + p[7] = (uint8_t)(w >> 56); +#endif +} + +static BLAKE2_INLINE uint64_t load48( const void *src ) { const uint8_t *p = ( const uint8_t * )src; - uint64_t w = *p++; - w |= ( uint64_t )( *p++ ) << 8; - w |= ( uint64_t )( *p++ ) << 16; - w |= ( uint64_t )( *p++ ) << 24; - w |= ( uint64_t )( *p++ ) << 32; - w |= ( uint64_t )( *p++ ) << 40; - return w; + return (( uint64_t )( p[0] ) << 0) | + (( uint64_t )( p[1] ) << 8) | + (( uint64_t )( p[2] ) << 16) | + (( uint64_t )( p[3] ) << 24) | + (( uint64_t )( p[4] ) << 32) | + (( uint64_t )( p[5] ) << 40) ; } -static inline void store48( void *dst, uint64_t w ) +static BLAKE2_INLINE void store48( void *dst, uint64_t w ) { uint8_t *p = ( uint8_t * )dst; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; + p[0] = (uint8_t)(w >> 0); + p[1] = (uint8_t)(w >> 8); + p[2] = (uint8_t)(w >> 16); + p[3] = (uint8_t)(w >> 24); + p[4] = (uint8_t)(w >> 32); + p[5] = (uint8_t)(w >> 40); } -static inline uint32_t rotl32( const uint32_t w, const unsigned c ) -{ - return ( w << c ) | ( w >> ( 32 - c ) ); -} - -static inline uint64_t rotl64( const uint64_t w, const unsigned c ) -{ - return ( w << c ) | ( w >> ( 64 - c ) ); -} - -static inline uint32_t rotr32( const uint32_t w, const unsigned c ) +static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c ) { return ( w >> c ) | ( w << ( 32 - c ) ); } -static inline uint64_t rotr64( const uint64_t w, const unsigned c ) +static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c ) { return ( w >> c ) | ( w << ( 64 - c ) ); } /* prevents compiler optimizing out memset() */ -static inline void secure_zero_memory(void *v, size_t n) +static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n) { static void *(*const volatile memset_v)(void *, int, size_t) = &memset; memset_v(v, 0, n); } #endif - diff --git a/cbits/blake2/ref/blake2-kat.h b/cbits/blake2/ref/blake2-kat.h deleted file mode 100644 index 1823f00..0000000 --- a/cbits/blake2/ref/blake2-kat.h +++ /dev/null @@ -1,16467 +0,0 @@ -/* - BLAKE2 reference source code package - reference C implementations - - Written in 2012 by Samuel Neves - - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. - - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . -*/ -#pragma once -#ifndef __BLAKE2_KAT_H__ -#define __BLAKE2_KAT_H__ - - -#include - -#define KAT_LENGTH 256 - - - -static const uint8_t blake2s_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] = -{ - { - 0x69, 0x21, 0x7A, 0x30, 0x79, 0x90, 0x80, 0x94, - 0xE1, 0x11, 0x21, 0xD0, 0x42, 0x35, 0x4A, 0x7C, - 0x1F, 0x55, 0xB6, 0x48, 0x2C, 0xA1, 0xA5, 0x1E, - 0x1B, 0x25, 0x0D, 0xFD, 0x1E, 0xD0, 0xEE, 0xF9 - }, - { - 0xE3, 0x4D, 0x74, 0xDB, 0xAF, 0x4F, 0xF4, 0xC6, - 0xAB, 0xD8, 0x71, 0xCC, 0x22, 0x04, 0x51, 0xD2, - 0xEA, 0x26, 0x48, 0x84, 0x6C, 0x77, 0x57, 0xFB, - 0xAA, 0xC8, 0x2F, 0xE5, 0x1A, 0xD6, 0x4B, 0xEA - }, - { - 0xDD, 0xAD, 0x9A, 0xB1, 0x5D, 0xAC, 0x45, 0x49, - 0xBA, 0x42, 0xF4, 0x9D, 0x26, 0x24, 0x96, 0xBE, - 0xF6, 0xC0, 0xBA, 0xE1, 0xDD, 0x34, 0x2A, 0x88, - 0x08, 0xF8, 0xEA, 0x26, 0x7C, 0x6E, 0x21, 0x0C - }, - { - 0xE8, 0xF9, 0x1C, 0x6E, 0xF2, 0x32, 0xA0, 0x41, - 0x45, 0x2A, 0xB0, 0xE1, 0x49, 0x07, 0x0C, 0xDD, - 0x7D, 0xD1, 0x76, 0x9E, 0x75, 0xB3, 0xA5, 0x92, - 0x1B, 0xE3, 0x78, 0x76, 0xC4, 0x5C, 0x99, 0x00 - }, - { - 0x0C, 0xC7, 0x0E, 0x00, 0x34, 0x8B, 0x86, 0xBA, - 0x29, 0x44, 0xD0, 0xC3, 0x20, 0x38, 0xB2, 0x5C, - 0x55, 0x58, 0x4F, 0x90, 0xDF, 0x23, 0x04, 0xF5, - 0x5F, 0xA3, 0x32, 0xAF, 0x5F, 0xB0, 0x1E, 0x20 - }, - { - 0xEC, 0x19, 0x64, 0x19, 0x10, 0x87, 0xA4, 0xFE, - 0x9D, 0xF1, 0xC7, 0x95, 0x34, 0x2A, 0x02, 0xFF, - 0xC1, 0x91, 0xA5, 0xB2, 0x51, 0x76, 0x48, 0x56, - 0xAE, 0x5B, 0x8B, 0x57, 0x69, 0xF0, 0xC6, 0xCD - }, - { - 0xE1, 0xFA, 0x51, 0x61, 0x8D, 0x7D, 0xF4, 0xEB, - 0x70, 0xCF, 0x0D, 0x5A, 0x9E, 0x90, 0x6F, 0x80, - 0x6E, 0x9D, 0x19, 0xF7, 0xF4, 0xF0, 0x1E, 0x3B, - 0x62, 0x12, 0x88, 0xE4, 0x12, 0x04, 0x05, 0xD6 - }, - { - 0x59, 0x80, 0x01, 0xFA, 0xFB, 0xE8, 0xF9, 0x4E, - 0xC6, 0x6D, 0xC8, 0x27, 0xD0, 0x12, 0xCF, 0xCB, - 0xBA, 0x22, 0x28, 0x56, 0x9F, 0x44, 0x8E, 0x89, - 0xEA, 0x22, 0x08, 0xC8, 0xBF, 0x76, 0x92, 0x93 - }, - { - 0xC7, 0xE8, 0x87, 0xB5, 0x46, 0x62, 0x36, 0x35, - 0xE9, 0x3E, 0x04, 0x95, 0x59, 0x8F, 0x17, 0x26, - 0x82, 0x19, 0x96, 0xC2, 0x37, 0x77, 0x05, 0xB9, - 0x3A, 0x1F, 0x63, 0x6F, 0x87, 0x2B, 0xFA, 0x2D - }, - { - 0xC3, 0x15, 0xA4, 0x37, 0xDD, 0x28, 0x06, 0x2A, - 0x77, 0x0D, 0x48, 0x19, 0x67, 0x13, 0x6B, 0x1B, - 0x5E, 0xB8, 0x8B, 0x21, 0xEE, 0x53, 0xD0, 0x32, - 0x9C, 0x58, 0x97, 0x12, 0x6E, 0x9D, 0xB0, 0x2C - }, - { - 0xBB, 0x47, 0x3D, 0xED, 0xDC, 0x05, 0x5F, 0xEA, - 0x62, 0x28, 0xF2, 0x07, 0xDA, 0x57, 0x53, 0x47, - 0xBB, 0x00, 0x40, 0x4C, 0xD3, 0x49, 0xD3, 0x8C, - 0x18, 0x02, 0x63, 0x07, 0xA2, 0x24, 0xCB, 0xFF - }, - { - 0x68, 0x7E, 0x18, 0x73, 0xA8, 0x27, 0x75, 0x91, - 0xBB, 0x33, 0xD9, 0xAD, 0xF9, 0xA1, 0x39, 0x12, - 0xEF, 0xEF, 0xE5, 0x57, 0xCA, 0xFC, 0x39, 0xA7, - 0x95, 0x26, 0x23, 0xE4, 0x72, 0x55, 0xF1, 0x6D - }, - { - 0x1A, 0xC7, 0xBA, 0x75, 0x4D, 0x6E, 0x2F, 0x94, - 0xE0, 0xE8, 0x6C, 0x46, 0xBF, 0xB2, 0x62, 0xAB, - 0xBB, 0x74, 0xF4, 0x50, 0xEF, 0x45, 0x6D, 0x6B, - 0x4D, 0x97, 0xAA, 0x80, 0xCE, 0x6D, 0xA7, 0x67 - }, - { - 0x01, 0x2C, 0x97, 0x80, 0x96, 0x14, 0x81, 0x6B, - 0x5D, 0x94, 0x94, 0x47, 0x7D, 0x4B, 0x68, 0x7D, - 0x15, 0xB9, 0x6E, 0xB6, 0x9C, 0x0E, 0x80, 0x74, - 0xA8, 0x51, 0x6F, 0x31, 0x22, 0x4B, 0x5C, 0x98 - }, - { - 0x91, 0xFF, 0xD2, 0x6C, 0xFA, 0x4D, 0xA5, 0x13, - 0x4C, 0x7E, 0xA2, 0x62, 0xF7, 0x88, 0x9C, 0x32, - 0x9F, 0x61, 0xF6, 0xA6, 0x57, 0x22, 0x5C, 0xC2, - 0x12, 0xF4, 0x00, 0x56, 0xD9, 0x86, 0xB3, 0xF4 - }, - { - 0xD9, 0x7C, 0x82, 0x8D, 0x81, 0x82, 0xA7, 0x21, - 0x80, 0xA0, 0x6A, 0x78, 0x26, 0x83, 0x30, 0x67, - 0x3F, 0x7C, 0x4E, 0x06, 0x35, 0x94, 0x7C, 0x04, - 0xC0, 0x23, 0x23, 0xFD, 0x45, 0xC0, 0xA5, 0x2D - }, - { - 0xEF, 0xC0, 0x4C, 0xDC, 0x39, 0x1C, 0x7E, 0x91, - 0x19, 0xBD, 0x38, 0x66, 0x8A, 0x53, 0x4E, 0x65, - 0xFE, 0x31, 0x03, 0x6D, 0x6A, 0x62, 0x11, 0x2E, - 0x44, 0xEB, 0xEB, 0x11, 0xF9, 0xC5, 0x70, 0x80 - }, - { - 0x99, 0x2C, 0xF5, 0xC0, 0x53, 0x44, 0x2A, 0x5F, - 0xBC, 0x4F, 0xAF, 0x58, 0x3E, 0x04, 0xE5, 0x0B, - 0xB7, 0x0D, 0x2F, 0x39, 0xFB, 0xB6, 0xA5, 0x03, - 0xF8, 0x9E, 0x56, 0xA6, 0x3E, 0x18, 0x57, 0x8A - }, - { - 0x38, 0x64, 0x0E, 0x9F, 0x21, 0x98, 0x3E, 0x67, - 0xB5, 0x39, 0xCA, 0xCC, 0xAE, 0x5E, 0xCF, 0x61, - 0x5A, 0xE2, 0x76, 0x4F, 0x75, 0xA0, 0x9C, 0x9C, - 0x59, 0xB7, 0x64, 0x83, 0xC1, 0xFB, 0xC7, 0x35 - }, - { - 0x21, 0x3D, 0xD3, 0x4C, 0x7E, 0xFE, 0x4F, 0xB2, - 0x7A, 0x6B, 0x35, 0xF6, 0xB4, 0x00, 0x0D, 0x1F, - 0xE0, 0x32, 0x81, 0xAF, 0x3C, 0x72, 0x3E, 0x5C, - 0x9F, 0x94, 0x74, 0x7A, 0x5F, 0x31, 0xCD, 0x3B - }, - { - 0xEC, 0x24, 0x6E, 0xEE, 0xB9, 0xCE, 0xD3, 0xF7, - 0xAD, 0x33, 0xED, 0x28, 0x66, 0x0D, 0xD9, 0xBB, - 0x07, 0x32, 0x51, 0x3D, 0xB4, 0xE2, 0xFA, 0x27, - 0x8B, 0x60, 0xCD, 0xE3, 0x68, 0x2A, 0x4C, 0xCD - }, - { - 0xAC, 0x9B, 0x61, 0xD4, 0x46, 0x64, 0x8C, 0x30, - 0x05, 0xD7, 0x89, 0x2B, 0xF3, 0xA8, 0x71, 0x9F, - 0x4C, 0x81, 0x81, 0xCF, 0xDC, 0xBC, 0x2B, 0x79, - 0xFE, 0xF1, 0x0A, 0x27, 0x9B, 0x91, 0x10, 0x95 - }, - { - 0x7B, 0xF8, 0xB2, 0x29, 0x59, 0xE3, 0x4E, 0x3A, - 0x43, 0xF7, 0x07, 0x92, 0x23, 0xE8, 0x3A, 0x97, - 0x54, 0x61, 0x7D, 0x39, 0x1E, 0x21, 0x3D, 0xFD, - 0x80, 0x8E, 0x41, 0xB9, 0xBE, 0xAD, 0x4C, 0xE7 - }, - { - 0x68, 0xD4, 0xB5, 0xD4, 0xFA, 0x0E, 0x30, 0x2B, - 0x64, 0xCC, 0xC5, 0xAF, 0x79, 0x29, 0x13, 0xAC, - 0x4C, 0x88, 0xEC, 0x95, 0xC0, 0x7D, 0xDF, 0x40, - 0x69, 0x42, 0x56, 0xEB, 0x88, 0xCE, 0x9F, 0x3D - }, - { - 0xB2, 0xC2, 0x42, 0x0F, 0x05, 0xF9, 0xAB, 0xE3, - 0x63, 0x15, 0x91, 0x93, 0x36, 0xB3, 0x7E, 0x4E, - 0x0F, 0xA3, 0x3F, 0xF7, 0xE7, 0x6A, 0x49, 0x27, - 0x67, 0x00, 0x6F, 0xDB, 0x5D, 0x93, 0x54, 0x62 - }, - { - 0x13, 0x4F, 0x61, 0xBB, 0xD0, 0xBB, 0xB6, 0x9A, - 0xED, 0x53, 0x43, 0x90, 0x45, 0x51, 0xA3, 0xE6, - 0xC1, 0xAA, 0x7D, 0xCD, 0xD7, 0x7E, 0x90, 0x3E, - 0x70, 0x23, 0xEB, 0x7C, 0x60, 0x32, 0x0A, 0xA7 - }, - { - 0x46, 0x93, 0xF9, 0xBF, 0xF7, 0xD4, 0xF3, 0x98, - 0x6A, 0x7D, 0x17, 0x6E, 0x6E, 0x06, 0xF7, 0x2A, - 0xD1, 0x49, 0x0D, 0x80, 0x5C, 0x99, 0xE2, 0x53, - 0x47, 0xB8, 0xDE, 0x77, 0xB4, 0xDB, 0x6D, 0x9B - }, - { - 0x85, 0x3E, 0x26, 0xF7, 0x41, 0x95, 0x3B, 0x0F, - 0xD5, 0xBD, 0xB4, 0x24, 0xE8, 0xAB, 0x9E, 0x8B, - 0x37, 0x50, 0xEA, 0xA8, 0xEF, 0x61, 0xE4, 0x79, - 0x02, 0xC9, 0x1E, 0x55, 0x4E, 0x9C, 0x73, 0xB9 - }, - { - 0xF7, 0xDE, 0x53, 0x63, 0x61, 0xAB, 0xAA, 0x0E, - 0x15, 0x81, 0x56, 0xCF, 0x0E, 0xA4, 0xF6, 0x3A, - 0x99, 0xB5, 0xE4, 0x05, 0x4F, 0x8F, 0xA4, 0xC9, - 0xD4, 0x5F, 0x62, 0x85, 0xCA, 0xD5, 0x56, 0x94 - }, - { - 0x4C, 0x23, 0x06, 0x08, 0x86, 0x0A, 0x99, 0xAE, - 0x8D, 0x7B, 0xD5, 0xC2, 0xCC, 0x17, 0xFA, 0x52, - 0x09, 0x6B, 0x9A, 0x61, 0xBE, 0xDB, 0x17, 0xCB, - 0x76, 0x17, 0x86, 0x4A, 0xD2, 0x9C, 0xA7, 0xA6 - }, - { - 0xAE, 0xB9, 0x20, 0xEA, 0x87, 0x95, 0x2D, 0xAD, - 0xB1, 0xFB, 0x75, 0x92, 0x91, 0xE3, 0x38, 0x81, - 0x39, 0xA8, 0x72, 0x86, 0x50, 0x01, 0x88, 0x6E, - 0xD8, 0x47, 0x52, 0xE9, 0x3C, 0x25, 0x0C, 0x2A - }, - { - 0xAB, 0xA4, 0xAD, 0x9B, 0x48, 0x0B, 0x9D, 0xF3, - 0xD0, 0x8C, 0xA5, 0xE8, 0x7B, 0x0C, 0x24, 0x40, - 0xD4, 0xE4, 0xEA, 0x21, 0x22, 0x4C, 0x2E, 0xB4, - 0x2C, 0xBA, 0xE4, 0x69, 0xD0, 0x89, 0xB9, 0x31 - }, - { - 0x05, 0x82, 0x56, 0x07, 0xD7, 0xFD, 0xF2, 0xD8, - 0x2E, 0xF4, 0xC3, 0xC8, 0xC2, 0xAE, 0xA9, 0x61, - 0xAD, 0x98, 0xD6, 0x0E, 0xDF, 0xF7, 0xD0, 0x18, - 0x98, 0x3E, 0x21, 0x20, 0x4C, 0x0D, 0x93, 0xD1 - }, - { - 0xA7, 0x42, 0xF8, 0xB6, 0xAF, 0x82, 0xD8, 0xA6, - 0xCA, 0x23, 0x57, 0xC5, 0xF1, 0xCF, 0x91, 0xDE, - 0xFB, 0xD0, 0x66, 0x26, 0x7D, 0x75, 0xC0, 0x48, - 0xB3, 0x52, 0x36, 0x65, 0x85, 0x02, 0x59, 0x62 - }, - { - 0x2B, 0xCA, 0xC8, 0x95, 0x99, 0x00, 0x0B, 0x42, - 0xC9, 0x5A, 0xE2, 0x38, 0x35, 0xA7, 0x13, 0x70, - 0x4E, 0xD7, 0x97, 0x89, 0xC8, 0x4F, 0xEF, 0x14, - 0x9A, 0x87, 0x4F, 0xF7, 0x33, 0xF0, 0x17, 0xA2 - }, - { - 0xAC, 0x1E, 0xD0, 0x7D, 0x04, 0x8F, 0x10, 0x5A, - 0x9E, 0x5B, 0x7A, 0xB8, 0x5B, 0x09, 0xA4, 0x92, - 0xD5, 0xBA, 0xFF, 0x14, 0xB8, 0xBF, 0xB0, 0xE9, - 0xFD, 0x78, 0x94, 0x86, 0xEE, 0xA2, 0xB9, 0x74 - }, - { - 0xE4, 0x8D, 0x0E, 0xCF, 0xAF, 0x49, 0x7D, 0x5B, - 0x27, 0xC2, 0x5D, 0x99, 0xE1, 0x56, 0xCB, 0x05, - 0x79, 0xD4, 0x40, 0xD6, 0xE3, 0x1F, 0xB6, 0x24, - 0x73, 0x69, 0x6D, 0xBF, 0x95, 0xE0, 0x10, 0xE4 - }, - { - 0x12, 0xA9, 0x1F, 0xAD, 0xF8, 0xB2, 0x16, 0x44, - 0xFD, 0x0F, 0x93, 0x4F, 0x3C, 0x4A, 0x8F, 0x62, - 0xBA, 0x86, 0x2F, 0xFD, 0x20, 0xE8, 0xE9, 0x61, - 0x15, 0x4C, 0x15, 0xC1, 0x38, 0x84, 0xED, 0x3D - }, - { - 0x7C, 0xBE, 0xE9, 0x6E, 0x13, 0x98, 0x97, 0xDC, - 0x98, 0xFB, 0xEF, 0x3B, 0xE8, 0x1A, 0xD4, 0xD9, - 0x64, 0xD2, 0x35, 0xCB, 0x12, 0x14, 0x1F, 0xB6, - 0x67, 0x27, 0xE6, 0xE5, 0xDF, 0x73, 0xA8, 0x78 - }, - { - 0xEB, 0xF6, 0x6A, 0xBB, 0x59, 0x7A, 0xE5, 0x72, - 0xA7, 0x29, 0x7C, 0xB0, 0x87, 0x1E, 0x35, 0x5A, - 0xCC, 0xAF, 0xAD, 0x83, 0x77, 0xB8, 0xE7, 0x8B, - 0xF1, 0x64, 0xCE, 0x2A, 0x18, 0xDE, 0x4B, 0xAF - }, - { - 0x71, 0xB9, 0x33, 0xB0, 0x7E, 0x4F, 0xF7, 0x81, - 0x8C, 0xE0, 0x59, 0xD0, 0x08, 0x82, 0x9E, 0x45, - 0x3C, 0x6F, 0xF0, 0x2E, 0xC0, 0xA7, 0xDB, 0x39, - 0x3F, 0xC2, 0xD8, 0x70, 0xF3, 0x7A, 0x72, 0x86 - }, - { - 0x7C, 0xF7, 0xC5, 0x13, 0x31, 0x22, 0x0B, 0x8D, - 0x3E, 0xBA, 0xED, 0x9C, 0x29, 0x39, 0x8A, 0x16, - 0xD9, 0x81, 0x56, 0xE2, 0x61, 0x3C, 0xB0, 0x88, - 0xF2, 0xB0, 0xE0, 0x8A, 0x1B, 0xE4, 0xCF, 0x4F - }, - { - 0x3E, 0x41, 0xA1, 0x08, 0xE0, 0xF6, 0x4A, 0xD2, - 0x76, 0xB9, 0x79, 0xE1, 0xCE, 0x06, 0x82, 0x79, - 0xE1, 0x6F, 0x7B, 0xC7, 0xE4, 0xAA, 0x1D, 0x21, - 0x1E, 0x17, 0xB8, 0x11, 0x61, 0xDF, 0x16, 0x02 - }, - { - 0x88, 0x65, 0x02, 0xA8, 0x2A, 0xB4, 0x7B, 0xA8, - 0xD8, 0x67, 0x10, 0xAA, 0x9D, 0xE3, 0xD4, 0x6E, - 0xA6, 0x5C, 0x47, 0xAF, 0x6E, 0xE8, 0xDE, 0x45, - 0x0C, 0xCE, 0xB8, 0xB1, 0x1B, 0x04, 0x5F, 0x50 - }, - { - 0xC0, 0x21, 0xBC, 0x5F, 0x09, 0x54, 0xFE, 0xE9, - 0x4F, 0x46, 0xEA, 0x09, 0x48, 0x7E, 0x10, 0xA8, - 0x48, 0x40, 0xD0, 0x2F, 0x64, 0x81, 0x0B, 0xC0, - 0x8D, 0x9E, 0x55, 0x1F, 0x7D, 0x41, 0x68, 0x14 - }, - { - 0x20, 0x30, 0x51, 0x6E, 0x8A, 0x5F, 0xE1, 0x9A, - 0xE7, 0x9C, 0x33, 0x6F, 0xCE, 0x26, 0x38, 0x2A, - 0x74, 0x9D, 0x3F, 0xD0, 0xEC, 0x91, 0xE5, 0x37, - 0xD4, 0xBD, 0x23, 0x58, 0xC1, 0x2D, 0xFB, 0x22 - }, - { - 0x55, 0x66, 0x98, 0xDA, 0xC8, 0x31, 0x7F, 0xD3, - 0x6D, 0xFB, 0xDF, 0x25, 0xA7, 0x9C, 0xB1, 0x12, - 0xD5, 0x42, 0x58, 0x60, 0x60, 0x5C, 0xBA, 0xF5, - 0x07, 0xF2, 0x3B, 0xF7, 0xE9, 0xF4, 0x2A, 0xFE - }, - { - 0x2F, 0x86, 0x7B, 0xA6, 0x77, 0x73, 0xFD, 0xC3, - 0xE9, 0x2F, 0xCE, 0xD9, 0x9A, 0x64, 0x09, 0xAD, - 0x39, 0xD0, 0xB8, 0x80, 0xFD, 0xE8, 0xF1, 0x09, - 0xA8, 0x17, 0x30, 0xC4, 0x45, 0x1D, 0x01, 0x78 - }, - { - 0x17, 0x2E, 0xC2, 0x18, 0xF1, 0x19, 0xDF, 0xAE, - 0x98, 0x89, 0x6D, 0xFF, 0x29, 0xDD, 0x98, 0x76, - 0xC9, 0x4A, 0xF8, 0x74, 0x17, 0xF9, 0xAE, 0x4C, - 0x70, 0x14, 0xBB, 0x4E, 0x4B, 0x96, 0xAF, 0xC7 - }, - { - 0x3F, 0x85, 0x81, 0x4A, 0x18, 0x19, 0x5F, 0x87, - 0x9A, 0xA9, 0x62, 0xF9, 0x5D, 0x26, 0xBD, 0x82, - 0xA2, 0x78, 0xF2, 0xB8, 0x23, 0x20, 0x21, 0x8F, - 0x6B, 0x3B, 0xD6, 0xF7, 0xF6, 0x67, 0xA6, 0xD9 - }, - { - 0x1B, 0x61, 0x8F, 0xBA, 0xA5, 0x66, 0xB3, 0xD4, - 0x98, 0xC1, 0x2E, 0x98, 0x2C, 0x9E, 0xC5, 0x2E, - 0x4D, 0xA8, 0x5A, 0x8C, 0x54, 0xF3, 0x8F, 0x34, - 0xC0, 0x90, 0x39, 0x4F, 0x23, 0xC1, 0x84, 0xC1 - }, - { - 0x0C, 0x75, 0x8F, 0xB5, 0x69, 0x2F, 0xFD, 0x41, - 0xA3, 0x57, 0x5D, 0x0A, 0xF0, 0x0C, 0xC7, 0xFB, - 0xF2, 0xCB, 0xE5, 0x90, 0x5A, 0x58, 0x32, 0x3A, - 0x88, 0xAE, 0x42, 0x44, 0xF6, 0xE4, 0xC9, 0x93 - }, - { - 0xA9, 0x31, 0x36, 0x0C, 0xAD, 0x62, 0x8C, 0x7F, - 0x12, 0xA6, 0xC1, 0xC4, 0xB7, 0x53, 0xB0, 0xF4, - 0x06, 0x2A, 0xEF, 0x3C, 0xE6, 0x5A, 0x1A, 0xE3, - 0xF1, 0x93, 0x69, 0xDA, 0xDF, 0x3A, 0xE2, 0x3D - }, - { - 0xCB, 0xAC, 0x7D, 0x77, 0x3B, 0x1E, 0x3B, 0x3C, - 0x66, 0x91, 0xD7, 0xAB, 0xB7, 0xE9, 0xDF, 0x04, - 0x5C, 0x8B, 0xA1, 0x92, 0x68, 0xDE, 0xD1, 0x53, - 0x20, 0x7F, 0x5E, 0x80, 0x43, 0x52, 0xEC, 0x5D - }, - { - 0x23, 0xA1, 0x96, 0xD3, 0x80, 0x2E, 0xD3, 0xC1, - 0xB3, 0x84, 0x01, 0x9A, 0x82, 0x32, 0x58, 0x40, - 0xD3, 0x2F, 0x71, 0x95, 0x0C, 0x45, 0x80, 0xB0, - 0x34, 0x45, 0xE0, 0x89, 0x8E, 0x14, 0x05, 0x3C - }, - { - 0xF4, 0x49, 0x54, 0x70, 0xF2, 0x26, 0xC8, 0xC2, - 0x14, 0xBE, 0x08, 0xFD, 0xFA, 0xD4, 0xBC, 0x4A, - 0x2A, 0x9D, 0xBE, 0xA9, 0x13, 0x6A, 0x21, 0x0D, - 0xF0, 0xD4, 0xB6, 0x49, 0x29, 0xE6, 0xFC, 0x14 - }, - { - 0xE2, 0x90, 0xDD, 0x27, 0x0B, 0x46, 0x7F, 0x34, - 0xAB, 0x1C, 0x00, 0x2D, 0x34, 0x0F, 0xA0, 0x16, - 0x25, 0x7F, 0xF1, 0x9E, 0x58, 0x33, 0xFD, 0xBB, - 0xF2, 0xCB, 0x40, 0x1C, 0x3B, 0x28, 0x17, 0xDE - }, - { - 0x9F, 0xC7, 0xB5, 0xDE, 0xD3, 0xC1, 0x50, 0x42, - 0xB2, 0xA6, 0x58, 0x2D, 0xC3, 0x9B, 0xE0, 0x16, - 0xD2, 0x4A, 0x68, 0x2D, 0x5E, 0x61, 0xAD, 0x1E, - 0xFF, 0x9C, 0x63, 0x30, 0x98, 0x48, 0xF7, 0x06 - }, - { - 0x8C, 0xCA, 0x67, 0xA3, 0x6D, 0x17, 0xD5, 0xE6, - 0x34, 0x1C, 0xB5, 0x92, 0xFD, 0x7B, 0xEF, 0x99, - 0x26, 0xC9, 0xE3, 0xAA, 0x10, 0x27, 0xEA, 0x11, - 0xA7, 0xD8, 0xBD, 0x26, 0x0B, 0x57, 0x6E, 0x04 - }, - { - 0x40, 0x93, 0x92, 0xF5, 0x60, 0xF8, 0x68, 0x31, - 0xDA, 0x43, 0x73, 0xEE, 0x5E, 0x00, 0x74, 0x26, - 0x05, 0x95, 0xD7, 0xBC, 0x24, 0x18, 0x3B, 0x60, - 0xED, 0x70, 0x0D, 0x45, 0x83, 0xD3, 0xF6, 0xF0 - }, - { - 0x28, 0x02, 0x16, 0x5D, 0xE0, 0x90, 0x91, 0x55, - 0x46, 0xF3, 0x39, 0x8C, 0xD8, 0x49, 0x16, 0x4A, - 0x19, 0xF9, 0x2A, 0xDB, 0xC3, 0x61, 0xAD, 0xC9, - 0x9B, 0x0F, 0x20, 0xC8, 0xEA, 0x07, 0x10, 0x54 - }, - { - 0xAD, 0x83, 0x91, 0x68, 0xD9, 0xF8, 0xA4, 0xBE, - 0x95, 0xBA, 0x9E, 0xF9, 0xA6, 0x92, 0xF0, 0x72, - 0x56, 0xAE, 0x43, 0xFE, 0x6F, 0x98, 0x64, 0xE2, - 0x90, 0x69, 0x1B, 0x02, 0x56, 0xCE, 0x50, 0xA9 - }, - { - 0x75, 0xFD, 0xAA, 0x50, 0x38, 0xC2, 0x84, 0xB8, - 0x6D, 0x6E, 0x8A, 0xFF, 0xE8, 0xB2, 0x80, 0x7E, - 0x46, 0x7B, 0x86, 0x60, 0x0E, 0x79, 0xAF, 0x36, - 0x89, 0xFB, 0xC0, 0x63, 0x28, 0xCB, 0xF8, 0x94 - }, - { - 0xE5, 0x7C, 0xB7, 0x94, 0x87, 0xDD, 0x57, 0x90, - 0x24, 0x32, 0xB2, 0x50, 0x73, 0x38, 0x13, 0xBD, - 0x96, 0xA8, 0x4E, 0xFC, 0xE5, 0x9F, 0x65, 0x0F, - 0xAC, 0x26, 0xE6, 0x69, 0x6A, 0xEF, 0xAF, 0xC3 - }, - { - 0x56, 0xF3, 0x4E, 0x8B, 0x96, 0x55, 0x7E, 0x90, - 0xC1, 0xF2, 0x4B, 0x52, 0xD0, 0xC8, 0x9D, 0x51, - 0x08, 0x6A, 0xCF, 0x1B, 0x00, 0xF6, 0x34, 0xCF, - 0x1D, 0xDE, 0x92, 0x33, 0xB8, 0xEA, 0xAA, 0x3E - }, - { - 0x1B, 0x53, 0xEE, 0x94, 0xAA, 0xF3, 0x4E, 0x4B, - 0x15, 0x9D, 0x48, 0xDE, 0x35, 0x2C, 0x7F, 0x06, - 0x61, 0xD0, 0xA4, 0x0E, 0xDF, 0xF9, 0x5A, 0x0B, - 0x16, 0x39, 0xB4, 0x09, 0x0E, 0x97, 0x44, 0x72 - }, - { - 0x05, 0x70, 0x5E, 0x2A, 0x81, 0x75, 0x7C, 0x14, - 0xBD, 0x38, 0x3E, 0xA9, 0x8D, 0xDA, 0x54, 0x4E, - 0xB1, 0x0E, 0x6B, 0xC0, 0x7B, 0xAE, 0x43, 0x5E, - 0x25, 0x18, 0xDB, 0xE1, 0x33, 0x52, 0x53, 0x75 - }, - { - 0xD8, 0xB2, 0x86, 0x6E, 0x8A, 0x30, 0x9D, 0xB5, - 0x3E, 0x52, 0x9E, 0xC3, 0x29, 0x11, 0xD8, 0x2F, - 0x5C, 0xA1, 0x6C, 0xFF, 0x76, 0x21, 0x68, 0x91, - 0xA9, 0x67, 0x6A, 0xA3, 0x1A, 0xAA, 0x6C, 0x42 - }, - { - 0xF5, 0x04, 0x1C, 0x24, 0x12, 0x70, 0xEB, 0x04, - 0xC7, 0x1E, 0xC2, 0xC9, 0x5D, 0x4C, 0x38, 0xD8, - 0x03, 0xB1, 0x23, 0x7B, 0x0F, 0x29, 0xFD, 0x4D, - 0xB3, 0xEB, 0x39, 0x76, 0x69, 0xE8, 0x86, 0x99 - }, - { - 0x9A, 0x4C, 0xE0, 0x77, 0xC3, 0x49, 0x32, 0x2F, - 0x59, 0x5E, 0x0E, 0xE7, 0x9E, 0xD0, 0xDA, 0x5F, - 0xAB, 0x66, 0x75, 0x2C, 0xBF, 0xEF, 0x8F, 0x87, - 0xD0, 0xE9, 0xD0, 0x72, 0x3C, 0x75, 0x30, 0xDD - }, - { - 0x65, 0x7B, 0x09, 0xF3, 0xD0, 0xF5, 0x2B, 0x5B, - 0x8F, 0x2F, 0x97, 0x16, 0x3A, 0x0E, 0xDF, 0x0C, - 0x04, 0xF0, 0x75, 0x40, 0x8A, 0x07, 0xBB, 0xEB, - 0x3A, 0x41, 0x01, 0xA8, 0x91, 0x99, 0x0D, 0x62 - }, - { - 0x1E, 0x3F, 0x7B, 0xD5, 0xA5, 0x8F, 0xA5, 0x33, - 0x34, 0x4A, 0xA8, 0xED, 0x3A, 0xC1, 0x22, 0xBB, - 0x9E, 0x70, 0xD4, 0xEF, 0x50, 0xD0, 0x04, 0x53, - 0x08, 0x21, 0x94, 0x8F, 0x5F, 0xE6, 0x31, 0x5A - }, - { - 0x80, 0xDC, 0xCF, 0x3F, 0xD8, 0x3D, 0xFD, 0x0D, - 0x35, 0xAA, 0x28, 0x58, 0x59, 0x22, 0xAB, 0x89, - 0xD5, 0x31, 0x39, 0x97, 0x67, 0x3E, 0xAF, 0x90, - 0x5C, 0xEA, 0x9C, 0x0B, 0x22, 0x5C, 0x7B, 0x5F - }, - { - 0x8A, 0x0D, 0x0F, 0xBF, 0x63, 0x77, 0xD8, 0x3B, - 0xB0, 0x8B, 0x51, 0x4B, 0x4B, 0x1C, 0x43, 0xAC, - 0xC9, 0x5D, 0x75, 0x17, 0x14, 0xF8, 0x92, 0x56, - 0x45, 0xCB, 0x6B, 0xC8, 0x56, 0xCA, 0x15, 0x0A - }, - { - 0x9F, 0xA5, 0xB4, 0x87, 0x73, 0x8A, 0xD2, 0x84, - 0x4C, 0xC6, 0x34, 0x8A, 0x90, 0x19, 0x18, 0xF6, - 0x59, 0xA3, 0xB8, 0x9E, 0x9C, 0x0D, 0xFE, 0xEA, - 0xD3, 0x0D, 0xD9, 0x4B, 0xCF, 0x42, 0xEF, 0x8E - }, - { - 0x80, 0x83, 0x2C, 0x4A, 0x16, 0x77, 0xF5, 0xEA, - 0x25, 0x60, 0xF6, 0x68, 0xE9, 0x35, 0x4D, 0xD3, - 0x69, 0x97, 0xF0, 0x37, 0x28, 0xCF, 0xA5, 0x5E, - 0x1B, 0x38, 0x33, 0x7C, 0x0C, 0x9E, 0xF8, 0x18 - }, - { - 0xAB, 0x37, 0xDD, 0xB6, 0x83, 0x13, 0x7E, 0x74, - 0x08, 0x0D, 0x02, 0x6B, 0x59, 0x0B, 0x96, 0xAE, - 0x9B, 0xB4, 0x47, 0x72, 0x2F, 0x30, 0x5A, 0x5A, - 0xC5, 0x70, 0xEC, 0x1D, 0xF9, 0xB1, 0x74, 0x3C - }, - { - 0x3E, 0xE7, 0x35, 0xA6, 0x94, 0xC2, 0x55, 0x9B, - 0x69, 0x3A, 0xA6, 0x86, 0x29, 0x36, 0x1E, 0x15, - 0xD1, 0x22, 0x65, 0xAD, 0x6A, 0x3D, 0xED, 0xF4, - 0x88, 0xB0, 0xB0, 0x0F, 0xAC, 0x97, 0x54, 0xBA - }, - { - 0xD6, 0xFC, 0xD2, 0x32, 0x19, 0xB6, 0x47, 0xE4, - 0xCB, 0xD5, 0xEB, 0x2D, 0x0A, 0xD0, 0x1E, 0xC8, - 0x83, 0x8A, 0x4B, 0x29, 0x01, 0xFC, 0x32, 0x5C, - 0xC3, 0x70, 0x19, 0x81, 0xCA, 0x6C, 0x88, 0x8B - }, - { - 0x05, 0x20, 0xEC, 0x2F, 0x5B, 0xF7, 0xA7, 0x55, - 0xDA, 0xCB, 0x50, 0xC6, 0xBF, 0x23, 0x3E, 0x35, - 0x15, 0x43, 0x47, 0x63, 0xDB, 0x01, 0x39, 0xCC, - 0xD9, 0xFA, 0xEF, 0xBB, 0x82, 0x07, 0x61, 0x2D - }, - { - 0xAF, 0xF3, 0xB7, 0x5F, 0x3F, 0x58, 0x12, 0x64, - 0xD7, 0x66, 0x16, 0x62, 0xB9, 0x2F, 0x5A, 0xD3, - 0x7C, 0x1D, 0x32, 0xBD, 0x45, 0xFF, 0x81, 0xA4, - 0xED, 0x8A, 0xDC, 0x9E, 0xF3, 0x0D, 0xD9, 0x89 - }, - { - 0xD0, 0xDD, 0x65, 0x0B, 0xEF, 0xD3, 0xBA, 0x63, - 0xDC, 0x25, 0x10, 0x2C, 0x62, 0x7C, 0x92, 0x1B, - 0x9C, 0xBE, 0xB0, 0xB1, 0x30, 0x68, 0x69, 0x35, - 0xB5, 0xC9, 0x27, 0xCB, 0x7C, 0xCD, 0x5E, 0x3B - }, - { - 0xE1, 0x14, 0x98, 0x16, 0xB1, 0x0A, 0x85, 0x14, - 0xFB, 0x3E, 0x2C, 0xAB, 0x2C, 0x08, 0xBE, 0xE9, - 0xF7, 0x3C, 0xE7, 0x62, 0x21, 0x70, 0x12, 0x46, - 0xA5, 0x89, 0xBB, 0xB6, 0x73, 0x02, 0xD8, 0xA9 - }, - { - 0x7D, 0xA3, 0xF4, 0x41, 0xDE, 0x90, 0x54, 0x31, - 0x7E, 0x72, 0xB5, 0xDB, 0xF9, 0x79, 0xDA, 0x01, - 0xE6, 0xBC, 0xEE, 0xBB, 0x84, 0x78, 0xEA, 0xE6, - 0xA2, 0x28, 0x49, 0xD9, 0x02, 0x92, 0x63, 0x5C - }, - { - 0x12, 0x30, 0xB1, 0xFC, 0x8A, 0x7D, 0x92, 0x15, - 0xED, 0xC2, 0xD4, 0xA2, 0xDE, 0xCB, 0xDD, 0x0A, - 0x6E, 0x21, 0x6C, 0x92, 0x42, 0x78, 0xC9, 0x1F, - 0xC5, 0xD1, 0x0E, 0x7D, 0x60, 0x19, 0x2D, 0x94 - }, - { - 0x57, 0x50, 0xD7, 0x16, 0xB4, 0x80, 0x8F, 0x75, - 0x1F, 0xEB, 0xC3, 0x88, 0x06, 0xBA, 0x17, 0x0B, - 0xF6, 0xD5, 0x19, 0x9A, 0x78, 0x16, 0xBE, 0x51, - 0x4E, 0x3F, 0x93, 0x2F, 0xBE, 0x0C, 0xB8, 0x71 - }, - { - 0x6F, 0xC5, 0x9B, 0x2F, 0x10, 0xFE, 0xBA, 0x95, - 0x4A, 0xA6, 0x82, 0x0B, 0x3C, 0xA9, 0x87, 0xEE, - 0x81, 0xD5, 0xCC, 0x1D, 0xA3, 0xC6, 0x3C, 0xE8, - 0x27, 0x30, 0x1C, 0x56, 0x9D, 0xFB, 0x39, 0xCE - }, - { - 0xC7, 0xC3, 0xFE, 0x1E, 0xEB, 0xDC, 0x7B, 0x5A, - 0x93, 0x93, 0x26, 0xE8, 0xDD, 0xB8, 0x3E, 0x8B, - 0xF2, 0xB7, 0x80, 0xB6, 0x56, 0x78, 0xCB, 0x62, - 0xF2, 0x08, 0xB0, 0x40, 0xAB, 0xDD, 0x35, 0xE2 - }, - { - 0x0C, 0x75, 0xC1, 0xA1, 0x5C, 0xF3, 0x4A, 0x31, - 0x4E, 0xE4, 0x78, 0xF4, 0xA5, 0xCE, 0x0B, 0x8A, - 0x6B, 0x36, 0x52, 0x8E, 0xF7, 0xA8, 0x20, 0x69, - 0x6C, 0x3E, 0x42, 0x46, 0xC5, 0xA1, 0x58, 0x64 - }, - { - 0x21, 0x6D, 0xC1, 0x2A, 0x10, 0x85, 0x69, 0xA3, - 0xC7, 0xCD, 0xDE, 0x4A, 0xED, 0x43, 0xA6, 0xC3, - 0x30, 0x13, 0x9D, 0xDA, 0x3C, 0xCC, 0x4A, 0x10, - 0x89, 0x05, 0xDB, 0x38, 0x61, 0x89, 0x90, 0x50 - }, - { - 0xA5, 0x7B, 0xE6, 0xAE, 0x67, 0x56, 0xF2, 0x8B, - 0x02, 0xF5, 0x9D, 0xAD, 0xF7, 0xE0, 0xD7, 0xD8, - 0x80, 0x7F, 0x10, 0xFA, 0x15, 0xCE, 0xD1, 0xAD, - 0x35, 0x85, 0x52, 0x1A, 0x1D, 0x99, 0x5A, 0x89 - }, - { - 0x81, 0x6A, 0xEF, 0x87, 0x59, 0x53, 0x71, 0x6C, - 0xD7, 0xA5, 0x81, 0xF7, 0x32, 0xF5, 0x3D, 0xD4, - 0x35, 0xDA, 0xB6, 0x6D, 0x09, 0xC3, 0x61, 0xD2, - 0xD6, 0x59, 0x2D, 0xE1, 0x77, 0x55, 0xD8, 0xA8 - }, - { - 0x9A, 0x76, 0x89, 0x32, 0x26, 0x69, 0x3B, 0x6E, - 0xA9, 0x7E, 0x6A, 0x73, 0x8F, 0x9D, 0x10, 0xFB, - 0x3D, 0x0B, 0x43, 0xAE, 0x0E, 0x8B, 0x7D, 0x81, - 0x23, 0xEA, 0x76, 0xCE, 0x97, 0x98, 0x9C, 0x7E - }, - { - 0x8D, 0xAE, 0xDB, 0x9A, 0x27, 0x15, 0x29, 0xDB, - 0xB7, 0xDC, 0x3B, 0x60, 0x7F, 0xE5, 0xEB, 0x2D, - 0x32, 0x11, 0x77, 0x07, 0x58, 0xDD, 0x3B, 0x0A, - 0x35, 0x93, 0xD2, 0xD7, 0x95, 0x4E, 0x2D, 0x5B - }, - { - 0x16, 0xDB, 0xC0, 0xAA, 0x5D, 0xD2, 0xC7, 0x74, - 0xF5, 0x05, 0x10, 0x0F, 0x73, 0x37, 0x86, 0xD8, - 0xA1, 0x75, 0xFC, 0xBB, 0xB5, 0x9C, 0x43, 0xE1, - 0xFB, 0xFF, 0x3E, 0x1E, 0xAF, 0x31, 0xCB, 0x4A - }, - { - 0x86, 0x06, 0xCB, 0x89, 0x9C, 0x6A, 0xEA, 0xF5, - 0x1B, 0x9D, 0xB0, 0xFE, 0x49, 0x24, 0xA9, 0xFD, - 0x5D, 0xAB, 0xC1, 0x9F, 0x88, 0x26, 0xF2, 0xBC, - 0x1C, 0x1D, 0x7D, 0xA1, 0x4D, 0x2C, 0x2C, 0x99 - }, - { - 0x84, 0x79, 0x73, 0x1A, 0xED, 0xA5, 0x7B, 0xD3, - 0x7E, 0xAD, 0xB5, 0x1A, 0x50, 0x7E, 0x30, 0x7F, - 0x3B, 0xD9, 0x5E, 0x69, 0xDB, 0xCA, 0x94, 0xF3, - 0xBC, 0x21, 0x72, 0x60, 0x66, 0xAD, 0x6D, 0xFD - }, - { - 0x58, 0x47, 0x3A, 0x9E, 0xA8, 0x2E, 0xFA, 0x3F, - 0x3B, 0x3D, 0x8F, 0xC8, 0x3E, 0xD8, 0x86, 0x31, - 0x27, 0xB3, 0x3A, 0xE8, 0xDE, 0xAE, 0x63, 0x07, - 0x20, 0x1E, 0xDB, 0x6D, 0xDE, 0x61, 0xDE, 0x29 - }, - { - 0x9A, 0x92, 0x55, 0xD5, 0x3A, 0xF1, 0x16, 0xDE, - 0x8B, 0xA2, 0x7C, 0xE3, 0x5B, 0x4C, 0x7E, 0x15, - 0x64, 0x06, 0x57, 0xA0, 0xFC, 0xB8, 0x88, 0xC7, - 0x0D, 0x95, 0x43, 0x1D, 0xAC, 0xD8, 0xF8, 0x30 - }, - { - 0x9E, 0xB0, 0x5F, 0xFB, 0xA3, 0x9F, 0xD8, 0x59, - 0x6A, 0x45, 0x49, 0x3E, 0x18, 0xD2, 0x51, 0x0B, - 0xF3, 0xEF, 0x06, 0x5C, 0x51, 0xD6, 0xE1, 0x3A, - 0xBE, 0x66, 0xAA, 0x57, 0xE0, 0x5C, 0xFD, 0xB7 - }, - { - 0x81, 0xDC, 0xC3, 0xA5, 0x05, 0xEA, 0xCE, 0x3F, - 0x87, 0x9D, 0x8F, 0x70, 0x27, 0x76, 0x77, 0x0F, - 0x9D, 0xF5, 0x0E, 0x52, 0x1D, 0x14, 0x28, 0xA8, - 0x5D, 0xAF, 0x04, 0xF9, 0xAD, 0x21, 0x50, 0xE0 - }, - { - 0xE3, 0xE3, 0xC4, 0xAA, 0x3A, 0xCB, 0xBC, 0x85, - 0x33, 0x2A, 0xF9, 0xD5, 0x64, 0xBC, 0x24, 0x16, - 0x5E, 0x16, 0x87, 0xF6, 0xB1, 0xAD, 0xCB, 0xFA, - 0xE7, 0x7A, 0x8F, 0x03, 0xC7, 0x2A, 0xC2, 0x8C - }, - { - 0x67, 0x46, 0xC8, 0x0B, 0x4E, 0xB5, 0x6A, 0xEA, - 0x45, 0xE6, 0x4E, 0x72, 0x89, 0xBB, 0xA3, 0xED, - 0xBF, 0x45, 0xEC, 0xF8, 0x20, 0x64, 0x81, 0xFF, - 0x63, 0x02, 0x12, 0x29, 0x84, 0xCD, 0x52, 0x6A - }, - { - 0x2B, 0x62, 0x8E, 0x52, 0x76, 0x4D, 0x7D, 0x62, - 0xC0, 0x86, 0x8B, 0x21, 0x23, 0x57, 0xCD, 0xD1, - 0x2D, 0x91, 0x49, 0x82, 0x2F, 0x4E, 0x98, 0x45, - 0xD9, 0x18, 0xA0, 0x8D, 0x1A, 0xE9, 0x90, 0xC0 - }, - { - 0xE4, 0xBF, 0xE8, 0x0D, 0x58, 0xC9, 0x19, 0x94, - 0x61, 0x39, 0x09, 0xDC, 0x4B, 0x1A, 0x12, 0x49, - 0x68, 0x96, 0xC0, 0x04, 0xAF, 0x7B, 0x57, 0x01, - 0x48, 0x3D, 0xE4, 0x5D, 0x28, 0x23, 0xD7, 0x8E - }, - { - 0xEB, 0xB4, 0xBA, 0x15, 0x0C, 0xEF, 0x27, 0x34, - 0x34, 0x5B, 0x5D, 0x64, 0x1B, 0xBE, 0xD0, 0x3A, - 0x21, 0xEA, 0xFA, 0xE9, 0x33, 0xC9, 0x9E, 0x00, - 0x92, 0x12, 0xEF, 0x04, 0x57, 0x4A, 0x85, 0x30 - }, - { - 0x39, 0x66, 0xEC, 0x73, 0xB1, 0x54, 0xAC, 0xC6, - 0x97, 0xAC, 0x5C, 0xF5, 0xB2, 0x4B, 0x40, 0xBD, - 0xB0, 0xDB, 0x9E, 0x39, 0x88, 0x36, 0xD7, 0x6D, - 0x4B, 0x88, 0x0E, 0x3B, 0x2A, 0xF1, 0xAA, 0x27 - }, - { - 0xEF, 0x7E, 0x48, 0x31, 0xB3, 0xA8, 0x46, 0x36, - 0x51, 0x8D, 0x6E, 0x4B, 0xFC, 0xE6, 0x4A, 0x43, - 0xDB, 0x2A, 0x5D, 0xDA, 0x9C, 0xCA, 0x2B, 0x44, - 0xF3, 0x90, 0x33, 0xBD, 0xC4, 0x0D, 0x62, 0x43 - }, - { - 0x7A, 0xBF, 0x6A, 0xCF, 0x5C, 0x8E, 0x54, 0x9D, - 0xDB, 0xB1, 0x5A, 0xE8, 0xD8, 0xB3, 0x88, 0xC1, - 0xC1, 0x97, 0xE6, 0x98, 0x73, 0x7C, 0x97, 0x85, - 0x50, 0x1E, 0xD1, 0xF9, 0x49, 0x30, 0xB7, 0xD9 - }, - { - 0x88, 0x01, 0x8D, 0xED, 0x66, 0x81, 0x3F, 0x0C, - 0xA9, 0x5D, 0xEF, 0x47, 0x4C, 0x63, 0x06, 0x92, - 0x01, 0x99, 0x67, 0xB9, 0xE3, 0x68, 0x88, 0xDA, - 0xDD, 0x94, 0x12, 0x47, 0x19, 0xB6, 0x82, 0xF6 - }, - { - 0x39, 0x30, 0x87, 0x6B, 0x9F, 0xC7, 0x52, 0x90, - 0x36, 0xB0, 0x08, 0xB1, 0xB8, 0xBB, 0x99, 0x75, - 0x22, 0xA4, 0x41, 0x63, 0x5A, 0x0C, 0x25, 0xEC, - 0x02, 0xFB, 0x6D, 0x90, 0x26, 0xE5, 0x5A, 0x97 - }, - { - 0x0A, 0x40, 0x49, 0xD5, 0x7E, 0x83, 0x3B, 0x56, - 0x95, 0xFA, 0xC9, 0x3D, 0xD1, 0xFB, 0xEF, 0x31, - 0x66, 0xB4, 0x4B, 0x12, 0xAD, 0x11, 0x24, 0x86, - 0x62, 0x38, 0x3A, 0xE0, 0x51, 0xE1, 0x58, 0x27 - }, - { - 0x81, 0xDC, 0xC0, 0x67, 0x8B, 0xB6, 0xA7, 0x65, - 0xE4, 0x8C, 0x32, 0x09, 0x65, 0x4F, 0xE9, 0x00, - 0x89, 0xCE, 0x44, 0xFF, 0x56, 0x18, 0x47, 0x7E, - 0x39, 0xAB, 0x28, 0x64, 0x76, 0xDF, 0x05, 0x2B - }, - { - 0xE6, 0x9B, 0x3A, 0x36, 0xA4, 0x46, 0x19, 0x12, - 0xDC, 0x08, 0x34, 0x6B, 0x11, 0xDD, 0xCB, 0x9D, - 0xB7, 0x96, 0xF8, 0x85, 0xFD, 0x01, 0x93, 0x6E, - 0x66, 0x2F, 0xE2, 0x92, 0x97, 0xB0, 0x99, 0xA4 - }, - { - 0x5A, 0xC6, 0x50, 0x3B, 0x0D, 0x8D, 0xA6, 0x91, - 0x76, 0x46, 0xE6, 0xDC, 0xC8, 0x7E, 0xDC, 0x58, - 0xE9, 0x42, 0x45, 0x32, 0x4C, 0xC2, 0x04, 0xF4, - 0xDD, 0x4A, 0xF0, 0x15, 0x63, 0xAC, 0xD4, 0x27 - }, - { - 0xDF, 0x6D, 0xDA, 0x21, 0x35, 0x9A, 0x30, 0xBC, - 0x27, 0x17, 0x80, 0x97, 0x1C, 0x1A, 0xBD, 0x56, - 0xA6, 0xEF, 0x16, 0x7E, 0x48, 0x08, 0x87, 0x88, - 0x8E, 0x73, 0xA8, 0x6D, 0x3B, 0xF6, 0x05, 0xE9 - }, - { - 0xE8, 0xE6, 0xE4, 0x70, 0x71, 0xE7, 0xB7, 0xDF, - 0x25, 0x80, 0xF2, 0x25, 0xCF, 0xBB, 0xED, 0xF8, - 0x4C, 0xE6, 0x77, 0x46, 0x62, 0x66, 0x28, 0xD3, - 0x30, 0x97, 0xE4, 0xB7, 0xDC, 0x57, 0x11, 0x07 - }, - { - 0x53, 0xE4, 0x0E, 0xAD, 0x62, 0x05, 0x1E, 0x19, - 0xCB, 0x9B, 0xA8, 0x13, 0x3E, 0x3E, 0x5C, 0x1C, - 0xE0, 0x0D, 0xDC, 0xAD, 0x8A, 0xCF, 0x34, 0x2A, - 0x22, 0x43, 0x60, 0xB0, 0xAC, 0xC1, 0x47, 0x77 - }, - { - 0x9C, 0xCD, 0x53, 0xFE, 0x80, 0xBE, 0x78, 0x6A, - 0xA9, 0x84, 0x63, 0x84, 0x62, 0xFB, 0x28, 0xAF, - 0xDF, 0x12, 0x2B, 0x34, 0xD7, 0x8F, 0x46, 0x87, - 0xEC, 0x63, 0x2B, 0xB1, 0x9D, 0xE2, 0x37, 0x1A - }, - { - 0xCB, 0xD4, 0x80, 0x52, 0xC4, 0x8D, 0x78, 0x84, - 0x66, 0xA3, 0xE8, 0x11, 0x8C, 0x56, 0xC9, 0x7F, - 0xE1, 0x46, 0xE5, 0x54, 0x6F, 0xAA, 0xF9, 0x3E, - 0x2B, 0xC3, 0xC4, 0x7E, 0x45, 0x93, 0x97, 0x53 - }, - { - 0x25, 0x68, 0x83, 0xB1, 0x4E, 0x2A, 0xF4, 0x4D, - 0xAD, 0xB2, 0x8E, 0x1B, 0x34, 0xB2, 0xAC, 0x0F, - 0x0F, 0x4C, 0x91, 0xC3, 0x4E, 0xC9, 0x16, 0x9E, - 0x29, 0x03, 0x61, 0x58, 0xAC, 0xAA, 0x95, 0xB9 - }, - { - 0x44, 0x71, 0xB9, 0x1A, 0xB4, 0x2D, 0xB7, 0xC4, - 0xDD, 0x84, 0x90, 0xAB, 0x95, 0xA2, 0xEE, 0x8D, - 0x04, 0xE3, 0xEF, 0x5C, 0x3D, 0x6F, 0xC7, 0x1A, - 0xC7, 0x4B, 0x2B, 0x26, 0x91, 0x4D, 0x16, 0x41 - }, - { - 0xA5, 0xEB, 0x08, 0x03, 0x8F, 0x8F, 0x11, 0x55, - 0xED, 0x86, 0xE6, 0x31, 0x90, 0x6F, 0xC1, 0x30, - 0x95, 0xF6, 0xBB, 0xA4, 0x1D, 0xE5, 0xD4, 0xE7, - 0x95, 0x75, 0x8E, 0xC8, 0xC8, 0xDF, 0x8A, 0xF1 - }, - { - 0xDC, 0x1D, 0xB6, 0x4E, 0xD8, 0xB4, 0x8A, 0x91, - 0x0E, 0x06, 0x0A, 0x6B, 0x86, 0x63, 0x74, 0xC5, - 0x78, 0x78, 0x4E, 0x9A, 0xC4, 0x9A, 0xB2, 0x77, - 0x40, 0x92, 0xAC, 0x71, 0x50, 0x19, 0x34, 0xAC - }, - { - 0x28, 0x54, 0x13, 0xB2, 0xF2, 0xEE, 0x87, 0x3D, - 0x34, 0x31, 0x9E, 0xE0, 0xBB, 0xFB, 0xB9, 0x0F, - 0x32, 0xDA, 0x43, 0x4C, 0xC8, 0x7E, 0x3D, 0xB5, - 0xED, 0x12, 0x1B, 0xB3, 0x98, 0xED, 0x96, 0x4B - }, - { - 0x02, 0x16, 0xE0, 0xF8, 0x1F, 0x75, 0x0F, 0x26, - 0xF1, 0x99, 0x8B, 0xC3, 0x93, 0x4E, 0x3E, 0x12, - 0x4C, 0x99, 0x45, 0xE6, 0x85, 0xA6, 0x0B, 0x25, - 0xE8, 0xFB, 0xD9, 0x62, 0x5A, 0xB6, 0xB5, 0x99 - }, - { - 0x38, 0xC4, 0x10, 0xF5, 0xB9, 0xD4, 0x07, 0x20, - 0x50, 0x75, 0x5B, 0x31, 0xDC, 0xA8, 0x9F, 0xD5, - 0x39, 0x5C, 0x67, 0x85, 0xEE, 0xB3, 0xD7, 0x90, - 0xF3, 0x20, 0xFF, 0x94, 0x1C, 0x5A, 0x93, 0xBF - }, - { - 0xF1, 0x84, 0x17, 0xB3, 0x9D, 0x61, 0x7A, 0xB1, - 0xC1, 0x8F, 0xDF, 0x91, 0xEB, 0xD0, 0xFC, 0x6D, - 0x55, 0x16, 0xBB, 0x34, 0xCF, 0x39, 0x36, 0x40, - 0x37, 0xBC, 0xE8, 0x1F, 0xA0, 0x4C, 0xEC, 0xB1 - }, - { - 0x1F, 0xA8, 0x77, 0xDE, 0x67, 0x25, 0x9D, 0x19, - 0x86, 0x3A, 0x2A, 0x34, 0xBC, 0xC6, 0x96, 0x2A, - 0x2B, 0x25, 0xFC, 0xBF, 0x5C, 0xBE, 0xCD, 0x7E, - 0xDE, 0x8F, 0x1F, 0xA3, 0x66, 0x88, 0xA7, 0x96 - }, - { - 0x5B, 0xD1, 0x69, 0xE6, 0x7C, 0x82, 0xC2, 0xC2, - 0xE9, 0x8E, 0xF7, 0x00, 0x8B, 0xDF, 0x26, 0x1F, - 0x2D, 0xDF, 0x30, 0xB1, 0xC0, 0x0F, 0x9E, 0x7F, - 0x27, 0x5B, 0xB3, 0xE8, 0xA2, 0x8D, 0xC9, 0xA2 - }, - { - 0xC8, 0x0A, 0xBE, 0xEB, 0xB6, 0x69, 0xAD, 0x5D, - 0xEE, 0xB5, 0xF5, 0xEC, 0x8E, 0xA6, 0xB7, 0xA0, - 0x5D, 0xDF, 0x7D, 0x31, 0xEC, 0x4C, 0x0A, 0x2E, - 0xE2, 0x0B, 0x0B, 0x98, 0xCA, 0xEC, 0x67, 0x46 - }, - { - 0xE7, 0x6D, 0x3F, 0xBD, 0xA5, 0xBA, 0x37, 0x4E, - 0x6B, 0xF8, 0xE5, 0x0F, 0xAD, 0xC3, 0xBB, 0xB9, - 0xBA, 0x5C, 0x20, 0x6E, 0xBD, 0xEC, 0x89, 0xA3, - 0xA5, 0x4C, 0xF3, 0xDD, 0x84, 0xA0, 0x70, 0x16 - }, - { - 0x7B, 0xBA, 0x9D, 0xC5, 0xB5, 0xDB, 0x20, 0x71, - 0xD1, 0x77, 0x52, 0xB1, 0x04, 0x4C, 0x1E, 0xCE, - 0xD9, 0x6A, 0xAF, 0x2D, 0xD4, 0x6E, 0x9B, 0x43, - 0x37, 0x50, 0xE8, 0xEA, 0x0D, 0xCC, 0x18, 0x70 - }, - { - 0xF2, 0x9B, 0x1B, 0x1A, 0xB9, 0xBA, 0xB1, 0x63, - 0x01, 0x8E, 0xE3, 0xDA, 0x15, 0x23, 0x2C, 0xCA, - 0x78, 0xEC, 0x52, 0xDB, 0xC3, 0x4E, 0xDA, 0x5B, - 0x82, 0x2E, 0xC1, 0xD8, 0x0F, 0xC2, 0x1B, 0xD0 - }, - { - 0x9E, 0xE3, 0xE3, 0xE7, 0xE9, 0x00, 0xF1, 0xE1, - 0x1D, 0x30, 0x8C, 0x4B, 0x2B, 0x30, 0x76, 0xD2, - 0x72, 0xCF, 0x70, 0x12, 0x4F, 0x9F, 0x51, 0xE1, - 0xDA, 0x60, 0xF3, 0x78, 0x46, 0xCD, 0xD2, 0xF4 - }, - { - 0x70, 0xEA, 0x3B, 0x01, 0x76, 0x92, 0x7D, 0x90, - 0x96, 0xA1, 0x85, 0x08, 0xCD, 0x12, 0x3A, 0x29, - 0x03, 0x25, 0x92, 0x0A, 0x9D, 0x00, 0xA8, 0x9B, - 0x5D, 0xE0, 0x42, 0x73, 0xFB, 0xC7, 0x6B, 0x85 - }, - { - 0x67, 0xDE, 0x25, 0xC0, 0x2A, 0x4A, 0xAB, 0xA2, - 0x3B, 0xDC, 0x97, 0x3C, 0x8B, 0xB0, 0xB5, 0x79, - 0x6D, 0x47, 0xCC, 0x06, 0x59, 0xD4, 0x3D, 0xFF, - 0x1F, 0x97, 0xDE, 0x17, 0x49, 0x63, 0xB6, 0x8E - }, - { - 0xB2, 0x16, 0x8E, 0x4E, 0x0F, 0x18, 0xB0, 0xE6, - 0x41, 0x00, 0xB5, 0x17, 0xED, 0x95, 0x25, 0x7D, - 0x73, 0xF0, 0x62, 0x0D, 0xF8, 0x85, 0xC1, 0x3D, - 0x2E, 0xCF, 0x79, 0x36, 0x7B, 0x38, 0x4C, 0xEE - }, - { - 0x2E, 0x7D, 0xEC, 0x24, 0x28, 0x85, 0x3B, 0x2C, - 0x71, 0x76, 0x07, 0x45, 0x54, 0x1F, 0x7A, 0xFE, - 0x98, 0x25, 0xB5, 0xDD, 0x77, 0xDF, 0x06, 0x51, - 0x1D, 0x84, 0x41, 0xA9, 0x4B, 0xAC, 0xC9, 0x27 - }, - { - 0xCA, 0x9F, 0xFA, 0xC4, 0xC4, 0x3F, 0x0B, 0x48, - 0x46, 0x1D, 0xC5, 0xC2, 0x63, 0xBE, 0xA3, 0xF6, - 0xF0, 0x06, 0x11, 0xCE, 0xAC, 0xAB, 0xF6, 0xF8, - 0x95, 0xBA, 0x2B, 0x01, 0x01, 0xDB, 0xB6, 0x8D - }, - { - 0x74, 0x10, 0xD4, 0x2D, 0x8F, 0xD1, 0xD5, 0xE9, - 0xD2, 0xF5, 0x81, 0x5C, 0xB9, 0x34, 0x17, 0x99, - 0x88, 0x28, 0xEF, 0x3C, 0x42, 0x30, 0xBF, 0xBD, - 0x41, 0x2D, 0xF0, 0xA4, 0xA7, 0xA2, 0x50, 0x7A - }, - { - 0x50, 0x10, 0xF6, 0x84, 0x51, 0x6D, 0xCC, 0xD0, - 0xB6, 0xEE, 0x08, 0x52, 0xC2, 0x51, 0x2B, 0x4D, - 0xC0, 0x06, 0x6C, 0xF0, 0xD5, 0x6F, 0x35, 0x30, - 0x29, 0x78, 0xDB, 0x8A, 0xE3, 0x2C, 0x6A, 0x81 - }, - { - 0xAC, 0xAA, 0xB5, 0x85, 0xF7, 0xB7, 0x9B, 0x71, - 0x99, 0x35, 0xCE, 0xB8, 0x95, 0x23, 0xDD, 0xC5, - 0x48, 0x27, 0xF7, 0x5C, 0x56, 0x88, 0x38, 0x56, - 0x15, 0x4A, 0x56, 0xCD, 0xCD, 0x5E, 0xE9, 0x88 - }, - { - 0x66, 0x6D, 0xE5, 0xD1, 0x44, 0x0F, 0xEE, 0x73, - 0x31, 0xAA, 0xF0, 0x12, 0x3A, 0x62, 0xEF, 0x2D, - 0x8B, 0xA5, 0x74, 0x53, 0xA0, 0x76, 0x96, 0x35, - 0xAC, 0x6C, 0xD0, 0x1E, 0x63, 0x3F, 0x77, 0x12 - }, - { - 0xA6, 0xF9, 0x86, 0x58, 0xF6, 0xEA, 0xBA, 0xF9, - 0x02, 0xD8, 0xB3, 0x87, 0x1A, 0x4B, 0x10, 0x1D, - 0x16, 0x19, 0x6E, 0x8A, 0x4B, 0x24, 0x1E, 0x15, - 0x58, 0xFE, 0x29, 0x96, 0x6E, 0x10, 0x3E, 0x8D - }, - { - 0x89, 0x15, 0x46, 0xA8, 0xB2, 0x9F, 0x30, 0x47, - 0xDD, 0xCF, 0xE5, 0xB0, 0x0E, 0x45, 0xFD, 0x55, - 0x75, 0x63, 0x73, 0x10, 0x5E, 0xA8, 0x63, 0x7D, - 0xFC, 0xFF, 0x54, 0x7B, 0x6E, 0xA9, 0x53, 0x5F - }, - { - 0x18, 0xDF, 0xBC, 0x1A, 0xC5, 0xD2, 0x5B, 0x07, - 0x61, 0x13, 0x7D, 0xBD, 0x22, 0xC1, 0x7C, 0x82, - 0x9D, 0x0F, 0x0E, 0xF1, 0xD8, 0x23, 0x44, 0xE9, - 0xC8, 0x9C, 0x28, 0x66, 0x94, 0xDA, 0x24, 0xE8 - }, - { - 0xB5, 0x4B, 0x9B, 0x67, 0xF8, 0xFE, 0xD5, 0x4B, - 0xBF, 0x5A, 0x26, 0x66, 0xDB, 0xDF, 0x4B, 0x23, - 0xCF, 0xF1, 0xD1, 0xB6, 0xF4, 0xAF, 0xC9, 0x85, - 0xB2, 0xE6, 0xD3, 0x30, 0x5A, 0x9F, 0xF8, 0x0F - }, - { - 0x7D, 0xB4, 0x42, 0xE1, 0x32, 0xBA, 0x59, 0xBC, - 0x12, 0x89, 0xAA, 0x98, 0xB0, 0xD3, 0xE8, 0x06, - 0x00, 0x4F, 0x8E, 0xC1, 0x28, 0x11, 0xAF, 0x1E, - 0x2E, 0x33, 0xC6, 0x9B, 0xFD, 0xE7, 0x29, 0xE1 - }, - { - 0x25, 0x0F, 0x37, 0xCD, 0xC1, 0x5E, 0x81, 0x7D, - 0x2F, 0x16, 0x0D, 0x99, 0x56, 0xC7, 0x1F, 0xE3, - 0xEB, 0x5D, 0xB7, 0x45, 0x56, 0xE4, 0xAD, 0xF9, - 0xA4, 0xFF, 0xAF, 0xBA, 0x74, 0x01, 0x03, 0x96 - }, - { - 0x4A, 0xB8, 0xA3, 0xDD, 0x1D, 0xDF, 0x8A, 0xD4, - 0x3D, 0xAB, 0x13, 0xA2, 0x7F, 0x66, 0xA6, 0x54, - 0x4F, 0x29, 0x05, 0x97, 0xFA, 0x96, 0x04, 0x0E, - 0x0E, 0x1D, 0xB9, 0x26, 0x3A, 0xA4, 0x79, 0xF8 - }, - { - 0xEE, 0x61, 0x72, 0x7A, 0x07, 0x66, 0xDF, 0x93, - 0x9C, 0xCD, 0xC8, 0x60, 0x33, 0x40, 0x44, 0xC7, - 0x9A, 0x3C, 0x9B, 0x15, 0x62, 0x00, 0xBC, 0x3A, - 0xA3, 0x29, 0x73, 0x48, 0x3D, 0x83, 0x41, 0xAE - }, - { - 0x3F, 0x68, 0xC7, 0xEC, 0x63, 0xAC, 0x11, 0xEB, - 0xB9, 0x8F, 0x94, 0xB3, 0x39, 0xB0, 0x5C, 0x10, - 0x49, 0x84, 0xFD, 0xA5, 0x01, 0x03, 0x06, 0x01, - 0x44, 0xE5, 0xA2, 0xBF, 0xCC, 0xC9, 0xDA, 0x95 - }, - { - 0x05, 0x6F, 0x29, 0x81, 0x6B, 0x8A, 0xF8, 0xF5, - 0x66, 0x82, 0xBC, 0x4D, 0x7C, 0xF0, 0x94, 0x11, - 0x1D, 0xA7, 0x73, 0x3E, 0x72, 0x6C, 0xD1, 0x3D, - 0x6B, 0x3E, 0x8E, 0xA0, 0x3E, 0x92, 0xA0, 0xD5 - }, - { - 0xF5, 0xEC, 0x43, 0xA2, 0x8A, 0xCB, 0xEF, 0xF1, - 0xF3, 0x31, 0x8A, 0x5B, 0xCA, 0xC7, 0xC6, 0x6D, - 0xDB, 0x52, 0x30, 0xB7, 0x9D, 0xB2, 0xD1, 0x05, - 0xBC, 0xBE, 0x15, 0xF3, 0xC1, 0x14, 0x8D, 0x69 - }, - { - 0x2A, 0x69, 0x60, 0xAD, 0x1D, 0x8D, 0xD5, 0x47, - 0x55, 0x5C, 0xFB, 0xD5, 0xE4, 0x60, 0x0F, 0x1E, - 0xAA, 0x1C, 0x8E, 0xDA, 0x34, 0xDE, 0x03, 0x74, - 0xEC, 0x4A, 0x26, 0xEA, 0xAA, 0xA3, 0x3B, 0x4E - }, - { - 0xDC, 0xC1, 0xEA, 0x7B, 0xAA, 0xB9, 0x33, 0x84, - 0xF7, 0x6B, 0x79, 0x68, 0x66, 0x19, 0x97, 0x54, - 0x74, 0x2F, 0x7B, 0x96, 0xD6, 0xB4, 0xC1, 0x20, - 0x16, 0x5C, 0x04, 0xA6, 0xC4, 0xF5, 0xCE, 0x10 - }, - { - 0x13, 0xD5, 0xDF, 0x17, 0x92, 0x21, 0x37, 0x9C, - 0x6A, 0x78, 0xC0, 0x7C, 0x79, 0x3F, 0xF5, 0x34, - 0x87, 0xCA, 0xE6, 0xBF, 0x9F, 0xE8, 0x82, 0x54, - 0x1A, 0xB0, 0xE7, 0x35, 0xE3, 0xEA, 0xDA, 0x3B - }, - { - 0x8C, 0x59, 0xE4, 0x40, 0x76, 0x41, 0xA0, 0x1E, - 0x8F, 0xF9, 0x1F, 0x99, 0x80, 0xDC, 0x23, 0x6F, - 0x4E, 0xCD, 0x6F, 0xCF, 0x52, 0x58, 0x9A, 0x09, - 0x9A, 0x96, 0x16, 0x33, 0x96, 0x77, 0x14, 0xE1 - }, - { - 0x83, 0x3B, 0x1A, 0xC6, 0xA2, 0x51, 0xFD, 0x08, - 0xFD, 0x6D, 0x90, 0x8F, 0xEA, 0x2A, 0x4E, 0xE1, - 0xE0, 0x40, 0xBC, 0xA9, 0x3F, 0xC1, 0xA3, 0x8E, - 0xC3, 0x82, 0x0E, 0x0C, 0x10, 0xBD, 0x82, 0xEA - }, - { - 0xA2, 0x44, 0xF9, 0x27, 0xF3, 0xB4, 0x0B, 0x8F, - 0x6C, 0x39, 0x15, 0x70, 0xC7, 0x65, 0x41, 0x8F, - 0x2F, 0x6E, 0x70, 0x8E, 0xAC, 0x90, 0x06, 0xC5, - 0x1A, 0x7F, 0xEF, 0xF4, 0xAF, 0x3B, 0x2B, 0x9E - }, - { - 0x3D, 0x99, 0xED, 0x95, 0x50, 0xCF, 0x11, 0x96, - 0xE6, 0xC4, 0xD2, 0x0C, 0x25, 0x96, 0x20, 0xF8, - 0x58, 0xC3, 0xD7, 0x03, 0x37, 0x4C, 0x12, 0x8C, - 0xE7, 0xB5, 0x90, 0x31, 0x0C, 0x83, 0x04, 0x6D - }, - { - 0x2B, 0x35, 0xC4, 0x7D, 0x7B, 0x87, 0x76, 0x1F, - 0x0A, 0xE4, 0x3A, 0xC5, 0x6A, 0xC2, 0x7B, 0x9F, - 0x25, 0x83, 0x03, 0x67, 0xB5, 0x95, 0xBE, 0x8C, - 0x24, 0x0E, 0x94, 0x60, 0x0C, 0x6E, 0x33, 0x12 - }, - { - 0x5D, 0x11, 0xED, 0x37, 0xD2, 0x4D, 0xC7, 0x67, - 0x30, 0x5C, 0xB7, 0xE1, 0x46, 0x7D, 0x87, 0xC0, - 0x65, 0xAC, 0x4B, 0xC8, 0xA4, 0x26, 0xDE, 0x38, - 0x99, 0x1F, 0xF5, 0x9A, 0xA8, 0x73, 0x5D, 0x02 - }, - { - 0xB8, 0x36, 0x47, 0x8E, 0x1C, 0xA0, 0x64, 0x0D, - 0xCE, 0x6F, 0xD9, 0x10, 0xA5, 0x09, 0x62, 0x72, - 0xC8, 0x33, 0x09, 0x90, 0xCD, 0x97, 0x86, 0x4A, - 0xC2, 0xBF, 0x14, 0xEF, 0x6B, 0x23, 0x91, 0x4A - }, - { - 0x91, 0x00, 0xF9, 0x46, 0xD6, 0xCC, 0xDE, 0x3A, - 0x59, 0x7F, 0x90, 0xD3, 0x9F, 0xC1, 0x21, 0x5B, - 0xAD, 0xDC, 0x74, 0x13, 0x64, 0x3D, 0x85, 0xC2, - 0x1C, 0x3E, 0xEE, 0x5D, 0x2D, 0xD3, 0x28, 0x94 - }, - { - 0xDA, 0x70, 0xEE, 0xDD, 0x23, 0xE6, 0x63, 0xAA, - 0x1A, 0x74, 0xB9, 0x76, 0x69, 0x35, 0xB4, 0x79, - 0x22, 0x2A, 0x72, 0xAF, 0xBA, 0x5C, 0x79, 0x51, - 0x58, 0xDA, 0xD4, 0x1A, 0x3B, 0xD7, 0x7E, 0x40 - }, - { - 0xF0, 0x67, 0xED, 0x6A, 0x0D, 0xBD, 0x43, 0xAA, - 0x0A, 0x92, 0x54, 0xE6, 0x9F, 0xD6, 0x6B, 0xDD, - 0x8A, 0xCB, 0x87, 0xDE, 0x93, 0x6C, 0x25, 0x8C, - 0xFB, 0x02, 0x28, 0x5F, 0x2C, 0x11, 0xFA, 0x79 - }, - { - 0x71, 0x5C, 0x99, 0xC7, 0xD5, 0x75, 0x80, 0xCF, - 0x97, 0x53, 0xB4, 0xC1, 0xD7, 0x95, 0xE4, 0x5A, - 0x83, 0xFB, 0xB2, 0x28, 0xC0, 0xD3, 0x6F, 0xBE, - 0x20, 0xFA, 0xF3, 0x9B, 0xDD, 0x6D, 0x4E, 0x85 - }, - { - 0xE4, 0x57, 0xD6, 0xAD, 0x1E, 0x67, 0xCB, 0x9B, - 0xBD, 0x17, 0xCB, 0xD6, 0x98, 0xFA, 0x6D, 0x7D, - 0xAE, 0x0C, 0x9B, 0x7A, 0xD6, 0xCB, 0xD6, 0x53, - 0x96, 0x34, 0xE3, 0x2A, 0x71, 0x9C, 0x84, 0x92 - }, - { - 0xEC, 0xE3, 0xEA, 0x81, 0x03, 0xE0, 0x24, 0x83, - 0xC6, 0x4A, 0x70, 0xA4, 0xBD, 0xCE, 0xE8, 0xCE, - 0xB6, 0x27, 0x8F, 0x25, 0x33, 0xF3, 0xF4, 0x8D, - 0xBE, 0xED, 0xFB, 0xA9, 0x45, 0x31, 0xD4, 0xAE - }, - { - 0x38, 0x8A, 0xA5, 0xD3, 0x66, 0x7A, 0x97, 0xC6, - 0x8D, 0x3D, 0x56, 0xF8, 0xF3, 0xEE, 0x8D, 0x3D, - 0x36, 0x09, 0x1F, 0x17, 0xFE, 0x5D, 0x1B, 0x0D, - 0x5D, 0x84, 0xC9, 0x3B, 0x2F, 0xFE, 0x40, 0xBD - }, - { - 0x8B, 0x6B, 0x31, 0xB9, 0xAD, 0x7C, 0x3D, 0x5C, - 0xD8, 0x4B, 0xF9, 0x89, 0x47, 0xB9, 0xCD, 0xB5, - 0x9D, 0xF8, 0xA2, 0x5F, 0xF7, 0x38, 0x10, 0x10, - 0x13, 0xBE, 0x4F, 0xD6, 0x5E, 0x1D, 0xD1, 0xA3 - }, - { - 0x06, 0x62, 0x91, 0xF6, 0xBB, 0xD2, 0x5F, 0x3C, - 0x85, 0x3D, 0xB7, 0xD8, 0xB9, 0x5C, 0x9A, 0x1C, - 0xFB, 0x9B, 0xF1, 0xC1, 0xC9, 0x9F, 0xB9, 0x5A, - 0x9B, 0x78, 0x69, 0xD9, 0x0F, 0x1C, 0x29, 0x03 - }, - { - 0xA7, 0x07, 0xEF, 0xBC, 0xCD, 0xCE, 0xED, 0x42, - 0x96, 0x7A, 0x66, 0xF5, 0x53, 0x9B, 0x93, 0xED, - 0x75, 0x60, 0xD4, 0x67, 0x30, 0x40, 0x16, 0xC4, - 0x78, 0x0D, 0x77, 0x55, 0xA5, 0x65, 0xD4, 0xC4 - }, - { - 0x38, 0xC5, 0x3D, 0xFB, 0x70, 0xBE, 0x7E, 0x79, - 0x2B, 0x07, 0xA6, 0xA3, 0x5B, 0x8A, 0x6A, 0x0A, - 0xBA, 0x02, 0xC5, 0xC5, 0xF3, 0x8B, 0xAF, 0x5C, - 0x82, 0x3F, 0xDF, 0xD9, 0xE4, 0x2D, 0x65, 0x7E - }, - { - 0xF2, 0x91, 0x13, 0x86, 0x50, 0x1D, 0x9A, 0xB9, - 0xD7, 0x20, 0xCF, 0x8A, 0xD1, 0x05, 0x03, 0xD5, - 0x63, 0x4B, 0xF4, 0xB7, 0xD1, 0x2B, 0x56, 0xDF, - 0xB7, 0x4F, 0xEC, 0xC6, 0xE4, 0x09, 0x3F, 0x68 - }, - { - 0xC6, 0xF2, 0xBD, 0xD5, 0x2B, 0x81, 0xE6, 0xE4, - 0xF6, 0x59, 0x5A, 0xBD, 0x4D, 0x7F, 0xB3, 0x1F, - 0x65, 0x11, 0x69, 0xD0, 0x0F, 0xF3, 0x26, 0x92, - 0x6B, 0x34, 0x94, 0x7B, 0x28, 0xA8, 0x39, 0x59 - }, - { - 0x29, 0x3D, 0x94, 0xB1, 0x8C, 0x98, 0xBB, 0x32, - 0x23, 0x36, 0x6B, 0x8C, 0xE7, 0x4C, 0x28, 0xFB, - 0xDF, 0x28, 0xE1, 0xF8, 0x4A, 0x33, 0x50, 0xB0, - 0xEB, 0x2D, 0x18, 0x04, 0xA5, 0x77, 0x57, 0x9B - }, - { - 0x2C, 0x2F, 0xA5, 0xC0, 0xB5, 0x15, 0x33, 0x16, - 0x5B, 0xC3, 0x75, 0xC2, 0x2E, 0x27, 0x81, 0x76, - 0x82, 0x70, 0xA3, 0x83, 0x98, 0x5D, 0x13, 0xBD, - 0x6B, 0x67, 0xB6, 0xFD, 0x67, 0xF8, 0x89, 0xEB - }, - { - 0xCA, 0xA0, 0x9B, 0x82, 0xB7, 0x25, 0x62, 0xE4, - 0x3F, 0x4B, 0x22, 0x75, 0xC0, 0x91, 0x91, 0x8E, - 0x62, 0x4D, 0x91, 0x16, 0x61, 0xCC, 0x81, 0x1B, - 0xB5, 0xFA, 0xEC, 0x51, 0xF6, 0x08, 0x8E, 0xF7 - }, - { - 0x24, 0x76, 0x1E, 0x45, 0xE6, 0x74, 0x39, 0x53, - 0x79, 0xFB, 0x17, 0x72, 0x9C, 0x78, 0xCB, 0x93, - 0x9E, 0x6F, 0x74, 0xC5, 0xDF, 0xFB, 0x9C, 0x96, - 0x1F, 0x49, 0x59, 0x82, 0xC3, 0xED, 0x1F, 0xE3 - }, - { - 0x55, 0xB7, 0x0A, 0x82, 0x13, 0x1E, 0xC9, 0x48, - 0x88, 0xD7, 0xAB, 0x54, 0xA7, 0xC5, 0x15, 0x25, - 0x5C, 0x39, 0x38, 0xBB, 0x10, 0xBC, 0x78, 0x4D, - 0xC9, 0xB6, 0x7F, 0x07, 0x6E, 0x34, 0x1A, 0x73 - }, - { - 0x6A, 0xB9, 0x05, 0x7B, 0x97, 0x7E, 0xBC, 0x3C, - 0xA4, 0xD4, 0xCE, 0x74, 0x50, 0x6C, 0x25, 0xCC, - 0xCD, 0xC5, 0x66, 0x49, 0x7C, 0x45, 0x0B, 0x54, - 0x15, 0xA3, 0x94, 0x86, 0xF8, 0x65, 0x7A, 0x03 - }, - { - 0x24, 0x06, 0x6D, 0xEE, 0xE0, 0xEC, 0xEE, 0x15, - 0xA4, 0x5F, 0x0A, 0x32, 0x6D, 0x0F, 0x8D, 0xBC, - 0x79, 0x76, 0x1E, 0xBB, 0x93, 0xCF, 0x8C, 0x03, - 0x77, 0xAF, 0x44, 0x09, 0x78, 0xFC, 0xF9, 0x94 - }, - { - 0x20, 0x00, 0x0D, 0x3F, 0x66, 0xBA, 0x76, 0x86, - 0x0D, 0x5A, 0x95, 0x06, 0x88, 0xB9, 0xAA, 0x0D, - 0x76, 0xCF, 0xEA, 0x59, 0xB0, 0x05, 0xD8, 0x59, - 0x91, 0x4B, 0x1A, 0x46, 0x65, 0x3A, 0x93, 0x9B - }, - { - 0xB9, 0x2D, 0xAA, 0x79, 0x60, 0x3E, 0x3B, 0xDB, - 0xC3, 0xBF, 0xE0, 0xF4, 0x19, 0xE4, 0x09, 0xB2, - 0xEA, 0x10, 0xDC, 0x43, 0x5B, 0xEE, 0xFE, 0x29, - 0x59, 0xDA, 0x16, 0x89, 0x5D, 0x5D, 0xCA, 0x1C - }, - { - 0xE9, 0x47, 0x94, 0x87, 0x05, 0xB2, 0x06, 0xD5, - 0x72, 0xB0, 0xE8, 0xF6, 0x2F, 0x66, 0xA6, 0x55, - 0x1C, 0xBD, 0x6B, 0xC3, 0x05, 0xD2, 0x6C, 0xE7, - 0x53, 0x9A, 0x12, 0xF9, 0xAA, 0xDF, 0x75, 0x71 - }, - { - 0x3D, 0x67, 0xC1, 0xB3, 0xF9, 0xB2, 0x39, 0x10, - 0xE3, 0xD3, 0x5E, 0x6B, 0x0F, 0x2C, 0xCF, 0x44, - 0xA0, 0xB5, 0x40, 0xA4, 0x5C, 0x18, 0xBA, 0x3C, - 0x36, 0x26, 0x4D, 0xD4, 0x8E, 0x96, 0xAF, 0x6A - }, - { - 0xC7, 0x55, 0x8B, 0xAB, 0xDA, 0x04, 0xBC, 0xCB, - 0x76, 0x4D, 0x0B, 0xBF, 0x33, 0x58, 0x42, 0x51, - 0x41, 0x90, 0x2D, 0x22, 0x39, 0x1D, 0x9F, 0x8C, - 0x59, 0x15, 0x9F, 0xEC, 0x9E, 0x49, 0xB1, 0x51 - }, - { - 0x0B, 0x73, 0x2B, 0xB0, 0x35, 0x67, 0x5A, 0x50, - 0xFF, 0x58, 0xF2, 0xC2, 0x42, 0xE4, 0x71, 0x0A, - 0xEC, 0xE6, 0x46, 0x70, 0x07, 0x9C, 0x13, 0x04, - 0x4C, 0x79, 0xC9, 0xB7, 0x49, 0x1F, 0x70, 0x00 - }, - { - 0xD1, 0x20, 0xB5, 0xEF, 0x6D, 0x57, 0xEB, 0xF0, - 0x6E, 0xAF, 0x96, 0xBC, 0x93, 0x3C, 0x96, 0x7B, - 0x16, 0xCB, 0xE6, 0xE2, 0xBF, 0x00, 0x74, 0x1C, - 0x30, 0xAA, 0x1C, 0x54, 0xBA, 0x64, 0x80, 0x1F - }, - { - 0x58, 0xD2, 0x12, 0xAD, 0x6F, 0x58, 0xAE, 0xF0, - 0xF8, 0x01, 0x16, 0xB4, 0x41, 0xE5, 0x7F, 0x61, - 0x95, 0xBF, 0xEF, 0x26, 0xB6, 0x14, 0x63, 0xED, - 0xEC, 0x11, 0x83, 0xCD, 0xB0, 0x4F, 0xE7, 0x6D - }, - { - 0xB8, 0x83, 0x6F, 0x51, 0xD1, 0xE2, 0x9B, 0xDF, - 0xDB, 0xA3, 0x25, 0x56, 0x53, 0x60, 0x26, 0x8B, - 0x8F, 0xAD, 0x62, 0x74, 0x73, 0xED, 0xEC, 0xEF, - 0x7E, 0xAE, 0xFE, 0xE8, 0x37, 0xC7, 0x40, 0x03 - }, - { - 0xC5, 0x47, 0xA3, 0xC1, 0x24, 0xAE, 0x56, 0x85, - 0xFF, 0xA7, 0xB8, 0xED, 0xAF, 0x96, 0xEC, 0x86, - 0xF8, 0xB2, 0xD0, 0xD5, 0x0C, 0xEE, 0x8B, 0xE3, - 0xB1, 0xF0, 0xC7, 0x67, 0x63, 0x06, 0x9D, 0x9C - }, - { - 0x5D, 0x16, 0x8B, 0x76, 0x9A, 0x2F, 0x67, 0x85, - 0x3D, 0x62, 0x95, 0xF7, 0x56, 0x8B, 0xE4, 0x0B, - 0xB7, 0xA1, 0x6B, 0x8D, 0x65, 0xBA, 0x87, 0x63, - 0x5D, 0x19, 0x78, 0xD2, 0xAB, 0x11, 0xBA, 0x2A - }, - { - 0xA2, 0xF6, 0x75, 0xDC, 0x73, 0x02, 0x63, 0x8C, - 0xB6, 0x02, 0x01, 0x06, 0x4C, 0xA5, 0x50, 0x77, - 0x71, 0x4D, 0x71, 0xFE, 0x09, 0x6A, 0x31, 0x5F, - 0x2F, 0xE7, 0x40, 0x12, 0x77, 0xCA, 0xA5, 0xAF - }, - { - 0xC8, 0xAA, 0xB5, 0xCD, 0x01, 0x60, 0xAE, 0x78, - 0xCD, 0x2E, 0x8A, 0xC5, 0xFB, 0x0E, 0x09, 0x3C, - 0xDB, 0x5C, 0x4B, 0x60, 0x52, 0xA0, 0xA9, 0x7B, - 0xB0, 0x42, 0x16, 0x82, 0x6F, 0xA7, 0xA4, 0x37 - }, - { - 0xFF, 0x68, 0xCA, 0x40, 0x35, 0xBF, 0xEB, 0x43, - 0xFB, 0xF1, 0x45, 0xFD, 0xDD, 0x5E, 0x43, 0xF1, - 0xCE, 0xA5, 0x4F, 0x11, 0xF7, 0xBE, 0xE1, 0x30, - 0x58, 0xF0, 0x27, 0x32, 0x9A, 0x4A, 0x5F, 0xA4 - }, - { - 0x1D, 0x4E, 0x54, 0x87, 0xAE, 0x3C, 0x74, 0x0F, - 0x2B, 0xA6, 0xE5, 0x41, 0xAC, 0x91, 0xBC, 0x2B, - 0xFC, 0xD2, 0x99, 0x9C, 0x51, 0x8D, 0x80, 0x7B, - 0x42, 0x67, 0x48, 0x80, 0x3A, 0x35, 0x0F, 0xD4 - }, - { - 0x6D, 0x24, 0x4E, 0x1A, 0x06, 0xCE, 0x4E, 0xF5, - 0x78, 0xDD, 0x0F, 0x63, 0xAF, 0xF0, 0x93, 0x67, - 0x06, 0x73, 0x51, 0x19, 0xCA, 0x9C, 0x8D, 0x22, - 0xD8, 0x6C, 0x80, 0x14, 0x14, 0xAB, 0x97, 0x41 - }, - { - 0xDE, 0xCF, 0x73, 0x29, 0xDB, 0xCC, 0x82, 0x7B, - 0x8F, 0xC5, 0x24, 0xC9, 0x43, 0x1E, 0x89, 0x98, - 0x02, 0x9E, 0xCE, 0x12, 0xCE, 0x93, 0xB7, 0xB2, - 0xF3, 0xE7, 0x69, 0xA9, 0x41, 0xFB, 0x8C, 0xEA - }, - { - 0x2F, 0xAF, 0xCC, 0x0F, 0x2E, 0x63, 0xCB, 0xD0, - 0x77, 0x55, 0xBE, 0x7B, 0x75, 0xEC, 0xEA, 0x0A, - 0xDF, 0xF9, 0xAA, 0x5E, 0xDE, 0x2A, 0x52, 0xFD, - 0xAB, 0x4D, 0xFD, 0x03, 0x74, 0xCD, 0x48, 0x3F - }, - { - 0xAA, 0x85, 0x01, 0x0D, 0xD4, 0x6A, 0x54, 0x6B, - 0x53, 0x5E, 0xF4, 0xCF, 0x5F, 0x07, 0xD6, 0x51, - 0x61, 0xE8, 0x98, 0x28, 0xF3, 0xA7, 0x7D, 0xB7, - 0xB9, 0xB5, 0x6F, 0x0D, 0xF5, 0x9A, 0xAE, 0x45 - }, - { - 0x07, 0xE8, 0xE1, 0xEE, 0x73, 0x2C, 0xB0, 0xD3, - 0x56, 0xC9, 0xC0, 0xD1, 0x06, 0x9C, 0x89, 0xD1, - 0x7A, 0xDF, 0x6A, 0x9A, 0x33, 0x4F, 0x74, 0x5E, - 0xC7, 0x86, 0x73, 0x32, 0x54, 0x8C, 0xA8, 0xE9 - }, - { - 0x0E, 0x01, 0xE8, 0x1C, 0xAD, 0xA8, 0x16, 0x2B, - 0xFD, 0x5F, 0x8A, 0x8C, 0x81, 0x8A, 0x6C, 0x69, - 0xFE, 0xDF, 0x02, 0xCE, 0xB5, 0x20, 0x85, 0x23, - 0xCB, 0xE5, 0x31, 0x3B, 0x89, 0xCA, 0x10, 0x53 - }, - { - 0x6B, 0xB6, 0xC6, 0x47, 0x26, 0x55, 0x08, 0x43, - 0x99, 0x85, 0x2E, 0x00, 0x24, 0x9F, 0x8C, 0xB2, - 0x47, 0x89, 0x6D, 0x39, 0x2B, 0x02, 0xD7, 0x3B, - 0x7F, 0x0D, 0xD8, 0x18, 0xE1, 0xE2, 0x9B, 0x07 - }, - { - 0x42, 0xD4, 0x63, 0x6E, 0x20, 0x60, 0xF0, 0x8F, - 0x41, 0xC8, 0x82, 0xE7, 0x6B, 0x39, 0x6B, 0x11, - 0x2E, 0xF6, 0x27, 0xCC, 0x24, 0xC4, 0x3D, 0xD5, - 0xF8, 0x3A, 0x1D, 0x1A, 0x7E, 0xAD, 0x71, 0x1A - }, - { - 0x48, 0x58, 0xC9, 0xA1, 0x88, 0xB0, 0x23, 0x4F, - 0xB9, 0xA8, 0xD4, 0x7D, 0x0B, 0x41, 0x33, 0x65, - 0x0A, 0x03, 0x0B, 0xD0, 0x61, 0x1B, 0x87, 0xC3, - 0x89, 0x2E, 0x94, 0x95, 0x1F, 0x8D, 0xF8, 0x52 - }, - { - 0x3F, 0xAB, 0x3E, 0x36, 0x98, 0x8D, 0x44, 0x5A, - 0x51, 0xC8, 0x78, 0x3E, 0x53, 0x1B, 0xE3, 0xA0, - 0x2B, 0xE4, 0x0C, 0xD0, 0x47, 0x96, 0xCF, 0xB6, - 0x1D, 0x40, 0x34, 0x74, 0x42, 0xD3, 0xF7, 0x94 - }, - { - 0xEB, 0xAB, 0xC4, 0x96, 0x36, 0xBD, 0x43, 0x3D, - 0x2E, 0xC8, 0xF0, 0xE5, 0x18, 0x73, 0x2E, 0xF8, - 0xFA, 0x21, 0xD4, 0xD0, 0x71, 0xCC, 0x3B, 0xC4, - 0x6C, 0xD7, 0x9F, 0xA3, 0x8A, 0x28, 0xB8, 0x10 - }, - { - 0xA1, 0xD0, 0x34, 0x35, 0x23, 0xB8, 0x93, 0xFC, - 0xA8, 0x4F, 0x47, 0xFE, 0xB4, 0xA6, 0x4D, 0x35, - 0x0A, 0x17, 0xD8, 0xEE, 0xF5, 0x49, 0x7E, 0xCE, - 0x69, 0x7D, 0x02, 0xD7, 0x91, 0x78, 0xB5, 0x91 - }, - { - 0x26, 0x2E, 0xBF, 0xD9, 0x13, 0x0B, 0x7D, 0x28, - 0x76, 0x0D, 0x08, 0xEF, 0x8B, 0xFD, 0x3B, 0x86, - 0xCD, 0xD3, 0xB2, 0x11, 0x3D, 0x2C, 0xAE, 0xF7, - 0xEA, 0x95, 0x1A, 0x30, 0x3D, 0xFA, 0x38, 0x46 - }, - { - 0xF7, 0x61, 0x58, 0xED, 0xD5, 0x0A, 0x15, 0x4F, - 0xA7, 0x82, 0x03, 0xED, 0x23, 0x62, 0x93, 0x2F, - 0xCB, 0x82, 0x53, 0xAA, 0xE3, 0x78, 0x90, 0x3E, - 0xDE, 0xD1, 0xE0, 0x3F, 0x70, 0x21, 0xA2, 0x57 - }, - { - 0x26, 0x17, 0x8E, 0x95, 0x0A, 0xC7, 0x22, 0xF6, - 0x7A, 0xE5, 0x6E, 0x57, 0x1B, 0x28, 0x4C, 0x02, - 0x07, 0x68, 0x4A, 0x63, 0x34, 0xA1, 0x77, 0x48, - 0xA9, 0x4D, 0x26, 0x0B, 0xC5, 0xF5, 0x52, 0x74 - }, - { - 0xC3, 0x78, 0xD1, 0xE4, 0x93, 0xB4, 0x0E, 0xF1, - 0x1F, 0xE6, 0xA1, 0x5D, 0x9C, 0x27, 0x37, 0xA3, - 0x78, 0x09, 0x63, 0x4C, 0x5A, 0xBA, 0xD5, 0xB3, - 0x3D, 0x7E, 0x39, 0x3B, 0x4A, 0xE0, 0x5D, 0x03 - }, - { - 0x98, 0x4B, 0xD8, 0x37, 0x91, 0x01, 0xBE, 0x8F, - 0xD8, 0x06, 0x12, 0xD8, 0xEA, 0x29, 0x59, 0xA7, - 0x86, 0x5E, 0xC9, 0x71, 0x85, 0x23, 0x55, 0x01, - 0x07, 0xAE, 0x39, 0x38, 0xDF, 0x32, 0x01, 0x1B - }, - { - 0xC6, 0xF2, 0x5A, 0x81, 0x2A, 0x14, 0x48, 0x58, - 0xAC, 0x5C, 0xED, 0x37, 0xA9, 0x3A, 0x9F, 0x47, - 0x59, 0xBA, 0x0B, 0x1C, 0x0F, 0xDC, 0x43, 0x1D, - 0xCE, 0x35, 0xF9, 0xEC, 0x1F, 0x1F, 0x4A, 0x99 - }, - { - 0x92, 0x4C, 0x75, 0xC9, 0x44, 0x24, 0xFF, 0x75, - 0xE7, 0x4B, 0x8B, 0x4E, 0x94, 0x35, 0x89, 0x58, - 0xB0, 0x27, 0xB1, 0x71, 0xDF, 0x5E, 0x57, 0x89, - 0x9A, 0xD0, 0xD4, 0xDA, 0xC3, 0x73, 0x53, 0xB6 - }, - { - 0x0A, 0xF3, 0x58, 0x92, 0xA6, 0x3F, 0x45, 0x93, - 0x1F, 0x68, 0x46, 0xED, 0x19, 0x03, 0x61, 0xCD, - 0x07, 0x30, 0x89, 0xE0, 0x77, 0x16, 0x57, 0x14, - 0xB5, 0x0B, 0x81, 0xA2, 0xE3, 0xDD, 0x9B, 0xA1 - }, - { - 0xCC, 0x80, 0xCE, 0xFB, 0x26, 0xC3, 0xB2, 0xB0, - 0xDA, 0xEF, 0x23, 0x3E, 0x60, 0x6D, 0x5F, 0xFC, - 0x80, 0xFA, 0x17, 0x42, 0x7D, 0x18, 0xE3, 0x04, - 0x89, 0x67, 0x3E, 0x06, 0xEF, 0x4B, 0x87, 0xF7 - }, - { - 0xC2, 0xF8, 0xC8, 0x11, 0x74, 0x47, 0xF3, 0x97, - 0x8B, 0x08, 0x18, 0xDC, 0xF6, 0xF7, 0x01, 0x16, - 0xAC, 0x56, 0xFD, 0x18, 0x4D, 0xD1, 0x27, 0x84, - 0x94, 0xE1, 0x03, 0xFC, 0x6D, 0x74, 0xA8, 0x87 - }, - { - 0xBD, 0xEC, 0xF6, 0xBF, 0xC1, 0xBA, 0x0D, 0xF6, - 0xE8, 0x62, 0xC8, 0x31, 0x99, 0x22, 0x07, 0x79, - 0x6A, 0xCC, 0x79, 0x79, 0x68, 0x35, 0x88, 0x28, - 0xC0, 0x6E, 0x7A, 0x51, 0xE0, 0x90, 0x09, 0x8F - }, - { - 0x24, 0xD1, 0xA2, 0x6E, 0x3D, 0xAB, 0x02, 0xFE, - 0x45, 0x72, 0xD2, 0xAA, 0x7D, 0xBD, 0x3E, 0xC3, - 0x0F, 0x06, 0x93, 0xDB, 0x26, 0xF2, 0x73, 0xD0, - 0xAB, 0x2C, 0xB0, 0xC1, 0x3B, 0x5E, 0x64, 0x51 - }, - { - 0xEC, 0x56, 0xF5, 0x8B, 0x09, 0x29, 0x9A, 0x30, - 0x0B, 0x14, 0x05, 0x65, 0xD7, 0xD3, 0xE6, 0x87, - 0x82, 0xB6, 0xE2, 0xFB, 0xEB, 0x4B, 0x7E, 0xA9, - 0x7A, 0xC0, 0x57, 0x98, 0x90, 0x61, 0xDD, 0x3F - }, - { - 0x11, 0xA4, 0x37, 0xC1, 0xAB, 0xA3, 0xC1, 0x19, - 0xDD, 0xFA, 0xB3, 0x1B, 0x3E, 0x8C, 0x84, 0x1D, - 0xEE, 0xEB, 0x91, 0x3E, 0xF5, 0x7F, 0x7E, 0x48, - 0xF2, 0xC9, 0xCF, 0x5A, 0x28, 0xFA, 0x42, 0xBC - }, - { - 0x53, 0xC7, 0xE6, 0x11, 0x4B, 0x85, 0x0A, 0x2C, - 0xB4, 0x96, 0xC9, 0xB3, 0xC6, 0x9A, 0x62, 0x3E, - 0xAE, 0xA2, 0xCB, 0x1D, 0x33, 0xDD, 0x81, 0x7E, - 0x47, 0x65, 0xED, 0xAA, 0x68, 0x23, 0xC2, 0x28 - }, - { - 0x15, 0x4C, 0x3E, 0x96, 0xFE, 0xE5, 0xDB, 0x14, - 0xF8, 0x77, 0x3E, 0x18, 0xAF, 0x14, 0x85, 0x79, - 0x13, 0x50, 0x9D, 0xA9, 0x99, 0xB4, 0x6C, 0xDD, - 0x3D, 0x4C, 0x16, 0x97, 0x60, 0xC8, 0x3A, 0xD2 - }, - { - 0x40, 0xB9, 0x91, 0x6F, 0x09, 0x3E, 0x02, 0x7A, - 0x87, 0x86, 0x64, 0x18, 0x18, 0x92, 0x06, 0x20, - 0x47, 0x2F, 0xBC, 0xF6, 0x8F, 0x70, 0x1D, 0x1B, - 0x68, 0x06, 0x32, 0xE6, 0x99, 0x6B, 0xDE, 0xD3 - }, - { - 0x24, 0xC4, 0xCB, 0xBA, 0x07, 0x11, 0x98, 0x31, - 0xA7, 0x26, 0xB0, 0x53, 0x05, 0xD9, 0x6D, 0xA0, - 0x2F, 0xF8, 0xB1, 0x48, 0xF0, 0xDA, 0x44, 0x0F, - 0xE2, 0x33, 0xBC, 0xAA, 0x32, 0xC7, 0x2F, 0x6F - }, - { - 0x5D, 0x20, 0x15, 0x10, 0x25, 0x00, 0x20, 0xB7, - 0x83, 0x68, 0x96, 0x88, 0xAB, 0xBF, 0x8E, 0xCF, - 0x25, 0x94, 0xA9, 0x6A, 0x08, 0xF2, 0xBF, 0xEC, - 0x6C, 0xE0, 0x57, 0x44, 0x65, 0xDD, 0xED, 0x71 - }, - { - 0x04, 0x3B, 0x97, 0xE3, 0x36, 0xEE, 0x6F, 0xDB, - 0xBE, 0x2B, 0x50, 0xF2, 0x2A, 0xF8, 0x32, 0x75, - 0xA4, 0x08, 0x48, 0x05, 0xD2, 0xD5, 0x64, 0x59, - 0x62, 0x45, 0x4B, 0x6C, 0x9B, 0x80, 0x53, 0xA0 - }, - { - 0x56, 0x48, 0x35, 0xCB, 0xAE, 0xA7, 0x74, 0x94, - 0x85, 0x68, 0xBE, 0x36, 0xCF, 0x52, 0xFC, 0xDD, - 0x83, 0x93, 0x4E, 0xB0, 0xA2, 0x75, 0x12, 0xDB, - 0xE3, 0xE2, 0xDB, 0x47, 0xB9, 0xE6, 0x63, 0x5A - }, - { - 0xF2, 0x1C, 0x33, 0xF4, 0x7B, 0xDE, 0x40, 0xA2, - 0xA1, 0x01, 0xC9, 0xCD, 0xE8, 0x02, 0x7A, 0xAF, - 0x61, 0xA3, 0x13, 0x7D, 0xE2, 0x42, 0x2B, 0x30, - 0x03, 0x5A, 0x04, 0xC2, 0x70, 0x89, 0x41, 0x83 - }, - { - 0x9D, 0xB0, 0xEF, 0x74, 0xE6, 0x6C, 0xBB, 0x84, - 0x2E, 0xB0, 0xE0, 0x73, 0x43, 0xA0, 0x3C, 0x5C, - 0x56, 0x7E, 0x37, 0x2B, 0x3F, 0x23, 0xB9, 0x43, - 0xC7, 0x88, 0xA4, 0xF2, 0x50, 0xF6, 0x78, 0x91 - }, - { - 0xAB, 0x8D, 0x08, 0x65, 0x5F, 0xF1, 0xD3, 0xFE, - 0x87, 0x58, 0xD5, 0x62, 0x23, 0x5F, 0xD2, 0x3E, - 0x7C, 0xF9, 0xDC, 0xAA, 0xD6, 0x58, 0x87, 0x2A, - 0x49, 0xE5, 0xD3, 0x18, 0x3B, 0x6C, 0xCE, 0xBD - }, - { - 0x6F, 0x27, 0xF7, 0x7E, 0x7B, 0xCF, 0x46, 0xA1, - 0xE9, 0x63, 0xAD, 0xE0, 0x30, 0x97, 0x33, 0x54, - 0x30, 0x31, 0xDC, 0xCD, 0xD4, 0x7C, 0xAA, 0xC1, - 0x74, 0xD7, 0xD2, 0x7C, 0xE8, 0x07, 0x7E, 0x8B - }, - { - 0xE3, 0xCD, 0x54, 0xDA, 0x7E, 0x44, 0x4C, 0xAA, - 0x62, 0x07, 0x56, 0x95, 0x25, 0xA6, 0x70, 0xEB, - 0xAE, 0x12, 0x78, 0xDE, 0x4E, 0x3F, 0xE2, 0x68, - 0x4B, 0x3E, 0x33, 0xF5, 0xEF, 0x90, 0xCC, 0x1B - }, - { - 0xB2, 0xC3, 0xE3, 0x3A, 0x51, 0xD2, 0x2C, 0x4C, - 0x08, 0xFC, 0x09, 0x89, 0xC8, 0x73, 0xC9, 0xCC, - 0x41, 0x50, 0x57, 0x9B, 0x1E, 0x61, 0x63, 0xFA, - 0x69, 0x4A, 0xD5, 0x1D, 0x53, 0xD7, 0x12, 0xDC - }, - { - 0xBE, 0x7F, 0xDA, 0x98, 0x3E, 0x13, 0x18, 0x9B, - 0x4C, 0x77, 0xE0, 0xA8, 0x09, 0x20, 0xB6, 0xE0, - 0xE0, 0xEA, 0x80, 0xC3, 0xB8, 0x4D, 0xBE, 0x7E, - 0x71, 0x17, 0xD2, 0x53, 0xF4, 0x81, 0x12, 0xF4 - }, - { - 0xB6, 0x00, 0x8C, 0x28, 0xFA, 0xE0, 0x8A, 0xA4, - 0x27, 0xE5, 0xBD, 0x3A, 0xAD, 0x36, 0xF1, 0x00, - 0x21, 0xF1, 0x6C, 0x77, 0xCF, 0xEA, 0xBE, 0xD0, - 0x7F, 0x97, 0xCC, 0x7D, 0xC1, 0xF1, 0x28, 0x4A - }, - { - 0x6E, 0x4E, 0x67, 0x60, 0xC5, 0x38, 0xF2, 0xE9, - 0x7B, 0x3A, 0xDB, 0xFB, 0xBC, 0xDE, 0x57, 0xF8, - 0x96, 0x6B, 0x7E, 0xA8, 0xFC, 0xB5, 0xBF, 0x7E, - 0xFE, 0xC9, 0x13, 0xFD, 0x2A, 0x2B, 0x0C, 0x55 - }, - { - 0x4A, 0xE5, 0x1F, 0xD1, 0x83, 0x4A, 0xA5, 0xBD, - 0x9A, 0x6F, 0x7E, 0xC3, 0x9F, 0xC6, 0x63, 0x33, - 0x8D, 0xC5, 0xD2, 0xE2, 0x07, 0x61, 0x56, 0x6D, - 0x90, 0xCC, 0x68, 0xB1, 0xCB, 0x87, 0x5E, 0xD8 - }, - { - 0xB6, 0x73, 0xAA, 0xD7, 0x5A, 0xB1, 0xFD, 0xB5, - 0x40, 0x1A, 0xBF, 0xA1, 0xBF, 0x89, 0xF3, 0xAD, - 0xD2, 0xEB, 0xC4, 0x68, 0xDF, 0x36, 0x24, 0xA4, - 0x78, 0xF4, 0xFE, 0x85, 0x9D, 0x8D, 0x55, 0xE2 - }, - { - 0x13, 0xC9, 0x47, 0x1A, 0x98, 0x55, 0x91, 0x35, - 0x39, 0x83, 0x66, 0x60, 0x39, 0x8D, 0xA0, 0xF3, - 0xF9, 0x9A, 0xDA, 0x08, 0x47, 0x9C, 0x69, 0xD1, - 0xB7, 0xFC, 0xAA, 0x34, 0x61, 0xDD, 0x7E, 0x59 - }, - { - 0x2C, 0x11, 0xF4, 0xA7, 0xF9, 0x9A, 0x1D, 0x23, - 0xA5, 0x8B, 0xB6, 0x36, 0x35, 0x0F, 0xE8, 0x49, - 0xF2, 0x9C, 0xBA, 0xC1, 0xB2, 0xA1, 0x11, 0x2D, - 0x9F, 0x1E, 0xD5, 0xBC, 0x5B, 0x31, 0x3C, 0xCD - }, - { - 0xC7, 0xD3, 0xC0, 0x70, 0x6B, 0x11, 0xAE, 0x74, - 0x1C, 0x05, 0xA1, 0xEF, 0x15, 0x0D, 0xD6, 0x5B, - 0x54, 0x94, 0xD6, 0xD5, 0x4C, 0x9A, 0x86, 0xE2, - 0x61, 0x78, 0x54, 0xE6, 0xAE, 0xEE, 0xBB, 0xD9 - }, - { - 0x19, 0x4E, 0x10, 0xC9, 0x38, 0x93, 0xAF, 0xA0, - 0x64, 0xC3, 0xAC, 0x04, 0xC0, 0xDD, 0x80, 0x8D, - 0x79, 0x1C, 0x3D, 0x4B, 0x75, 0x56, 0xE8, 0x9D, - 0x8D, 0x9C, 0xB2, 0x25, 0xC4, 0xB3, 0x33, 0x39 - }, - { - 0x6F, 0xC4, 0x98, 0x8B, 0x8F, 0x78, 0x54, 0x6B, - 0x16, 0x88, 0x99, 0x18, 0x45, 0x90, 0x8F, 0x13, - 0x4B, 0x6A, 0x48, 0x2E, 0x69, 0x94, 0xB3, 0xD4, - 0x83, 0x17, 0xBF, 0x08, 0xDB, 0x29, 0x21, 0x85 - }, - { - 0x56, 0x65, 0xBE, 0xB8, 0xB0, 0x95, 0x55, 0x25, - 0x81, 0x3B, 0x59, 0x81, 0xCD, 0x14, 0x2E, 0xD4, - 0xD0, 0x3F, 0xBA, 0x38, 0xA6, 0xF3, 0xE5, 0xAD, - 0x26, 0x8E, 0x0C, 0xC2, 0x70, 0xD1, 0xCD, 0x11 - }, - { - 0xB8, 0x83, 0xD6, 0x8F, 0x5F, 0xE5, 0x19, 0x36, - 0x43, 0x1B, 0xA4, 0x25, 0x67, 0x38, 0x05, 0x3B, - 0x1D, 0x04, 0x26, 0xD4, 0xCB, 0x64, 0xB1, 0x6E, - 0x83, 0xBA, 0xDC, 0x5E, 0x9F, 0xBE, 0x3B, 0x81 - }, - { - 0x53, 0xE7, 0xB2, 0x7E, 0xA5, 0x9C, 0x2F, 0x6D, - 0xBB, 0x50, 0x76, 0x9E, 0x43, 0x55, 0x4D, 0xF3, - 0x5A, 0xF8, 0x9F, 0x48, 0x22, 0xD0, 0x46, 0x6B, - 0x00, 0x7D, 0xD6, 0xF6, 0xDE, 0xAF, 0xFF, 0x02 - }, - { - 0x1F, 0x1A, 0x02, 0x29, 0xD4, 0x64, 0x0F, 0x01, - 0x90, 0x15, 0x88, 0xD9, 0xDE, 0xC2, 0x2D, 0x13, - 0xFC, 0x3E, 0xB3, 0x4A, 0x61, 0xB3, 0x29, 0x38, - 0xEF, 0xBF, 0x53, 0x34, 0xB2, 0x80, 0x0A, 0xFA - }, - { - 0xC2, 0xB4, 0x05, 0xAF, 0xA0, 0xFA, 0x66, 0x68, - 0x85, 0x2A, 0xEE, 0x4D, 0x88, 0x04, 0x08, 0x53, - 0xFA, 0xB8, 0x00, 0xE7, 0x2B, 0x57, 0x58, 0x14, - 0x18, 0xE5, 0x50, 0x6F, 0x21, 0x4C, 0x7D, 0x1F - }, - { - 0xC0, 0x8A, 0xA1, 0xC2, 0x86, 0xD7, 0x09, 0xFD, - 0xC7, 0x47, 0x37, 0x44, 0x97, 0x71, 0x88, 0xC8, - 0x95, 0xBA, 0x01, 0x10, 0x14, 0x24, 0x7E, 0x4E, - 0xFA, 0x8D, 0x07, 0xE7, 0x8F, 0xEC, 0x69, 0x5C - }, - { - 0xF0, 0x3F, 0x57, 0x89, 0xD3, 0x33, 0x6B, 0x80, - 0xD0, 0x02, 0xD5, 0x9F, 0xDF, 0x91, 0x8B, 0xDB, - 0x77, 0x5B, 0x00, 0x95, 0x6E, 0xD5, 0x52, 0x8E, - 0x86, 0xAA, 0x99, 0x4A, 0xCB, 0x38, 0xFE, 0x2D - }, -}; - - - - -static const uint8_t blake2s_keyed_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] = -{ - { - 0x48, 0xA8, 0x99, 0x7D, 0xA4, 0x07, 0x87, 0x6B, - 0x3D, 0x79, 0xC0, 0xD9, 0x23, 0x25, 0xAD, 0x3B, - 0x89, 0xCB, 0xB7, 0x54, 0xD8, 0x6A, 0xB7, 0x1A, - 0xEE, 0x04, 0x7A, 0xD3, 0x45, 0xFD, 0x2C, 0x49 - }, - { - 0x40, 0xD1, 0x5F, 0xEE, 0x7C, 0x32, 0x88, 0x30, - 0x16, 0x6A, 0xC3, 0xF9, 0x18, 0x65, 0x0F, 0x80, - 0x7E, 0x7E, 0x01, 0xE1, 0x77, 0x25, 0x8C, 0xDC, - 0x0A, 0x39, 0xB1, 0x1F, 0x59, 0x80, 0x66, 0xF1 - }, - { - 0x6B, 0xB7, 0x13, 0x00, 0x64, 0x4C, 0xD3, 0x99, - 0x1B, 0x26, 0xCC, 0xD4, 0xD2, 0x74, 0xAC, 0xD1, - 0xAD, 0xEA, 0xB8, 0xB1, 0xD7, 0x91, 0x45, 0x46, - 0xC1, 0x19, 0x8B, 0xBE, 0x9F, 0xC9, 0xD8, 0x03 - }, - { - 0x1D, 0x22, 0x0D, 0xBE, 0x2E, 0xE1, 0x34, 0x66, - 0x1F, 0xDF, 0x6D, 0x9E, 0x74, 0xB4, 0x17, 0x04, - 0x71, 0x05, 0x56, 0xF2, 0xF6, 0xE5, 0xA0, 0x91, - 0xB2, 0x27, 0x69, 0x74, 0x45, 0xDB, 0xEA, 0x6B - }, - { - 0xF6, 0xC3, 0xFB, 0xAD, 0xB4, 0xCC, 0x68, 0x7A, - 0x00, 0x64, 0xA5, 0xBE, 0x6E, 0x79, 0x1B, 0xEC, - 0x63, 0xB8, 0x68, 0xAD, 0x62, 0xFB, 0xA6, 0x1B, - 0x37, 0x57, 0xEF, 0x9C, 0xA5, 0x2E, 0x05, 0xB2 - }, - { - 0x49, 0xC1, 0xF2, 0x11, 0x88, 0xDF, 0xD7, 0x69, - 0xAE, 0xA0, 0xE9, 0x11, 0xDD, 0x6B, 0x41, 0xF1, - 0x4D, 0xAB, 0x10, 0x9D, 0x2B, 0x85, 0x97, 0x7A, - 0xA3, 0x08, 0x8B, 0x5C, 0x70, 0x7E, 0x85, 0x98 - }, - { - 0xFD, 0xD8, 0x99, 0x3D, 0xCD, 0x43, 0xF6, 0x96, - 0xD4, 0x4F, 0x3C, 0xEA, 0x0F, 0xF3, 0x53, 0x45, - 0x23, 0x4E, 0xC8, 0xEE, 0x08, 0x3E, 0xB3, 0xCA, - 0xDA, 0x01, 0x7C, 0x7F, 0x78, 0xC1, 0x71, 0x43 - }, - { - 0xE6, 0xC8, 0x12, 0x56, 0x37, 0x43, 0x8D, 0x09, - 0x05, 0xB7, 0x49, 0xF4, 0x65, 0x60, 0xAC, 0x89, - 0xFD, 0x47, 0x1C, 0xF8, 0x69, 0x2E, 0x28, 0xFA, - 0xB9, 0x82, 0xF7, 0x3F, 0x01, 0x9B, 0x83, 0xA9 - }, - { - 0x19, 0xFC, 0x8C, 0xA6, 0x97, 0x9D, 0x60, 0xE6, - 0xED, 0xD3, 0xB4, 0x54, 0x1E, 0x2F, 0x96, 0x7C, - 0xED, 0x74, 0x0D, 0xF6, 0xEC, 0x1E, 0xAE, 0xBB, - 0xFE, 0x81, 0x38, 0x32, 0xE9, 0x6B, 0x29, 0x74 - }, - { - 0xA6, 0xAD, 0x77, 0x7C, 0xE8, 0x81, 0xB5, 0x2B, - 0xB5, 0xA4, 0x42, 0x1A, 0xB6, 0xCD, 0xD2, 0xDF, - 0xBA, 0x13, 0xE9, 0x63, 0x65, 0x2D, 0x4D, 0x6D, - 0x12, 0x2A, 0xEE, 0x46, 0x54, 0x8C, 0x14, 0xA7 - }, - { - 0xF5, 0xC4, 0xB2, 0xBA, 0x1A, 0x00, 0x78, 0x1B, - 0x13, 0xAB, 0xA0, 0x42, 0x52, 0x42, 0xC6, 0x9C, - 0xB1, 0x55, 0x2F, 0x3F, 0x71, 0xA9, 0xA3, 0xBB, - 0x22, 0xB4, 0xA6, 0xB4, 0x27, 0x7B, 0x46, 0xDD - }, - { - 0xE3, 0x3C, 0x4C, 0x9B, 0xD0, 0xCC, 0x7E, 0x45, - 0xC8, 0x0E, 0x65, 0xC7, 0x7F, 0xA5, 0x99, 0x7F, - 0xEC, 0x70, 0x02, 0x73, 0x85, 0x41, 0x50, 0x9E, - 0x68, 0xA9, 0x42, 0x38, 0x91, 0xE8, 0x22, 0xA3 - }, - { - 0xFB, 0xA1, 0x61, 0x69, 0xB2, 0xC3, 0xEE, 0x10, - 0x5B, 0xE6, 0xE1, 0xE6, 0x50, 0xE5, 0xCB, 0xF4, - 0x07, 0x46, 0xB6, 0x75, 0x3D, 0x03, 0x6A, 0xB5, - 0x51, 0x79, 0x01, 0x4A, 0xD7, 0xEF, 0x66, 0x51 - }, - { - 0xF5, 0xC4, 0xBE, 0xC6, 0xD6, 0x2F, 0xC6, 0x08, - 0xBF, 0x41, 0xCC, 0x11, 0x5F, 0x16, 0xD6, 0x1C, - 0x7E, 0xFD, 0x3F, 0xF6, 0xC6, 0x56, 0x92, 0xBB, - 0xE0, 0xAF, 0xFF, 0xB1, 0xFE, 0xDE, 0x74, 0x75 - }, - { - 0xA4, 0x86, 0x2E, 0x76, 0xDB, 0x84, 0x7F, 0x05, - 0xBA, 0x17, 0xED, 0xE5, 0xDA, 0x4E, 0x7F, 0x91, - 0xB5, 0x92, 0x5C, 0xF1, 0xAD, 0x4B, 0xA1, 0x27, - 0x32, 0xC3, 0x99, 0x57, 0x42, 0xA5, 0xCD, 0x6E - }, - { - 0x65, 0xF4, 0xB8, 0x60, 0xCD, 0x15, 0xB3, 0x8E, - 0xF8, 0x14, 0xA1, 0xA8, 0x04, 0x31, 0x4A, 0x55, - 0xBE, 0x95, 0x3C, 0xAA, 0x65, 0xFD, 0x75, 0x8A, - 0xD9, 0x89, 0xFF, 0x34, 0xA4, 0x1C, 0x1E, 0xEA - }, - { - 0x19, 0xBA, 0x23, 0x4F, 0x0A, 0x4F, 0x38, 0x63, - 0x7D, 0x18, 0x39, 0xF9, 0xD9, 0xF7, 0x6A, 0xD9, - 0x1C, 0x85, 0x22, 0x30, 0x71, 0x43, 0xC9, 0x7D, - 0x5F, 0x93, 0xF6, 0x92, 0x74, 0xCE, 0xC9, 0xA7 - }, - { - 0x1A, 0x67, 0x18, 0x6C, 0xA4, 0xA5, 0xCB, 0x8E, - 0x65, 0xFC, 0xA0, 0xE2, 0xEC, 0xBC, 0x5D, 0xDC, - 0x14, 0xAE, 0x38, 0x1B, 0xB8, 0xBF, 0xFE, 0xB9, - 0xE0, 0xA1, 0x03, 0x44, 0x9E, 0x3E, 0xF0, 0x3C - }, - { - 0xAF, 0xBE, 0xA3, 0x17, 0xB5, 0xA2, 0xE8, 0x9C, - 0x0B, 0xD9, 0x0C, 0xCF, 0x5D, 0x7F, 0xD0, 0xED, - 0x57, 0xFE, 0x58, 0x5E, 0x4B, 0xE3, 0x27, 0x1B, - 0x0A, 0x6B, 0xF0, 0xF5, 0x78, 0x6B, 0x0F, 0x26 - }, - { - 0xF1, 0xB0, 0x15, 0x58, 0xCE, 0x54, 0x12, 0x62, - 0xF5, 0xEC, 0x34, 0x29, 0x9D, 0x6F, 0xB4, 0x09, - 0x00, 0x09, 0xE3, 0x43, 0x4B, 0xE2, 0xF4, 0x91, - 0x05, 0xCF, 0x46, 0xAF, 0x4D, 0x2D, 0x41, 0x24 - }, - { - 0x13, 0xA0, 0xA0, 0xC8, 0x63, 0x35, 0x63, 0x5E, - 0xAA, 0x74, 0xCA, 0x2D, 0x5D, 0x48, 0x8C, 0x79, - 0x7B, 0xBB, 0x4F, 0x47, 0xDC, 0x07, 0x10, 0x50, - 0x15, 0xED, 0x6A, 0x1F, 0x33, 0x09, 0xEF, 0xCE - }, - { - 0x15, 0x80, 0xAF, 0xEE, 0xBE, 0xBB, 0x34, 0x6F, - 0x94, 0xD5, 0x9F, 0xE6, 0x2D, 0xA0, 0xB7, 0x92, - 0x37, 0xEA, 0xD7, 0xB1, 0x49, 0x1F, 0x56, 0x67, - 0xA9, 0x0E, 0x45, 0xED, 0xF6, 0xCA, 0x8B, 0x03 - }, - { - 0x20, 0xBE, 0x1A, 0x87, 0x5B, 0x38, 0xC5, 0x73, - 0xDD, 0x7F, 0xAA, 0xA0, 0xDE, 0x48, 0x9D, 0x65, - 0x5C, 0x11, 0xEF, 0xB6, 0xA5, 0x52, 0x69, 0x8E, - 0x07, 0xA2, 0xD3, 0x31, 0xB5, 0xF6, 0x55, 0xC3 - }, - { - 0xBE, 0x1F, 0xE3, 0xC4, 0xC0, 0x40, 0x18, 0xC5, - 0x4C, 0x4A, 0x0F, 0x6B, 0x9A, 0x2E, 0xD3, 0xC5, - 0x3A, 0xBE, 0x3A, 0x9F, 0x76, 0xB4, 0xD2, 0x6D, - 0xE5, 0x6F, 0xC9, 0xAE, 0x95, 0x05, 0x9A, 0x99 - }, - { - 0xE3, 0xE3, 0xAC, 0xE5, 0x37, 0xEB, 0x3E, 0xDD, - 0x84, 0x63, 0xD9, 0xAD, 0x35, 0x82, 0xE1, 0x3C, - 0xF8, 0x65, 0x33, 0xFF, 0xDE, 0x43, 0xD6, 0x68, - 0xDD, 0x2E, 0x93, 0xBB, 0xDB, 0xD7, 0x19, 0x5A - }, - { - 0x11, 0x0C, 0x50, 0xC0, 0xBF, 0x2C, 0x6E, 0x7A, - 0xEB, 0x7E, 0x43, 0x5D, 0x92, 0xD1, 0x32, 0xAB, - 0x66, 0x55, 0x16, 0x8E, 0x78, 0xA2, 0xDE, 0xCD, - 0xEC, 0x33, 0x30, 0x77, 0x76, 0x84, 0xD9, 0xC1 - }, - { - 0xE9, 0xBA, 0x8F, 0x50, 0x5C, 0x9C, 0x80, 0xC0, - 0x86, 0x66, 0xA7, 0x01, 0xF3, 0x36, 0x7E, 0x6C, - 0xC6, 0x65, 0xF3, 0x4B, 0x22, 0xE7, 0x3C, 0x3C, - 0x04, 0x17, 0xEB, 0x1C, 0x22, 0x06, 0x08, 0x2F - }, - { - 0x26, 0xCD, 0x66, 0xFC, 0xA0, 0x23, 0x79, 0xC7, - 0x6D, 0xF1, 0x23, 0x17, 0x05, 0x2B, 0xCA, 0xFD, - 0x6C, 0xD8, 0xC3, 0xA7, 0xB8, 0x90, 0xD8, 0x05, - 0xF3, 0x6C, 0x49, 0x98, 0x97, 0x82, 0x43, 0x3A - }, - { - 0x21, 0x3F, 0x35, 0x96, 0xD6, 0xE3, 0xA5, 0xD0, - 0xE9, 0x93, 0x2C, 0xD2, 0x15, 0x91, 0x46, 0x01, - 0x5E, 0x2A, 0xBC, 0x94, 0x9F, 0x47, 0x29, 0xEE, - 0x26, 0x32, 0xFE, 0x1E, 0xDB, 0x78, 0xD3, 0x37 - }, - { - 0x10, 0x15, 0xD7, 0x01, 0x08, 0xE0, 0x3B, 0xE1, - 0xC7, 0x02, 0xFE, 0x97, 0x25, 0x36, 0x07, 0xD1, - 0x4A, 0xEE, 0x59, 0x1F, 0x24, 0x13, 0xEA, 0x67, - 0x87, 0x42, 0x7B, 0x64, 0x59, 0xFF, 0x21, 0x9A - }, - { - 0x3C, 0xA9, 0x89, 0xDE, 0x10, 0xCF, 0xE6, 0x09, - 0x90, 0x94, 0x72, 0xC8, 0xD3, 0x56, 0x10, 0x80, - 0x5B, 0x2F, 0x97, 0x77, 0x34, 0xCF, 0x65, 0x2C, - 0xC6, 0x4B, 0x3B, 0xFC, 0x88, 0x2D, 0x5D, 0x89 - }, - { - 0xB6, 0x15, 0x6F, 0x72, 0xD3, 0x80, 0xEE, 0x9E, - 0xA6, 0xAC, 0xD1, 0x90, 0x46, 0x4F, 0x23, 0x07, - 0xA5, 0xC1, 0x79, 0xEF, 0x01, 0xFD, 0x71, 0xF9, - 0x9F, 0x2D, 0x0F, 0x7A, 0x57, 0x36, 0x0A, 0xEA - }, - { - 0xC0, 0x3B, 0xC6, 0x42, 0xB2, 0x09, 0x59, 0xCB, - 0xE1, 0x33, 0xA0, 0x30, 0x3E, 0x0C, 0x1A, 0xBF, - 0xF3, 0xE3, 0x1E, 0xC8, 0xE1, 0xA3, 0x28, 0xEC, - 0x85, 0x65, 0xC3, 0x6D, 0xEC, 0xFF, 0x52, 0x65 - }, - { - 0x2C, 0x3E, 0x08, 0x17, 0x6F, 0x76, 0x0C, 0x62, - 0x64, 0xC3, 0xA2, 0xCD, 0x66, 0xFE, 0xC6, 0xC3, - 0xD7, 0x8D, 0xE4, 0x3F, 0xC1, 0x92, 0x45, 0x7B, - 0x2A, 0x4A, 0x66, 0x0A, 0x1E, 0x0E, 0xB2, 0x2B - }, - { - 0xF7, 0x38, 0xC0, 0x2F, 0x3C, 0x1B, 0x19, 0x0C, - 0x51, 0x2B, 0x1A, 0x32, 0xDE, 0xAB, 0xF3, 0x53, - 0x72, 0x8E, 0x0E, 0x9A, 0xB0, 0x34, 0x49, 0x0E, - 0x3C, 0x34, 0x09, 0x94, 0x6A, 0x97, 0xAE, 0xEC - }, - { - 0x8B, 0x18, 0x80, 0xDF, 0x30, 0x1C, 0xC9, 0x63, - 0x41, 0x88, 0x11, 0x08, 0x89, 0x64, 0x83, 0x92, - 0x87, 0xFF, 0x7F, 0xE3, 0x1C, 0x49, 0xEA, 0x6E, - 0xBD, 0x9E, 0x48, 0xBD, 0xEE, 0xE4, 0x97, 0xC5 - }, - { - 0x1E, 0x75, 0xCB, 0x21, 0xC6, 0x09, 0x89, 0x02, - 0x03, 0x75, 0xF1, 0xA7, 0xA2, 0x42, 0x83, 0x9F, - 0x0B, 0x0B, 0x68, 0x97, 0x3A, 0x4C, 0x2A, 0x05, - 0xCF, 0x75, 0x55, 0xED, 0x5A, 0xAE, 0xC4, 0xC1 - }, - { - 0x62, 0xBF, 0x8A, 0x9C, 0x32, 0xA5, 0xBC, 0xCF, - 0x29, 0x0B, 0x6C, 0x47, 0x4D, 0x75, 0xB2, 0xA2, - 0xA4, 0x09, 0x3F, 0x1A, 0x9E, 0x27, 0x13, 0x94, - 0x33, 0xA8, 0xF2, 0xB3, 0xBC, 0xE7, 0xB8, 0xD7 - }, - { - 0x16, 0x6C, 0x83, 0x50, 0xD3, 0x17, 0x3B, 0x5E, - 0x70, 0x2B, 0x78, 0x3D, 0xFD, 0x33, 0xC6, 0x6E, - 0xE0, 0x43, 0x27, 0x42, 0xE9, 0xB9, 0x2B, 0x99, - 0x7F, 0xD2, 0x3C, 0x60, 0xDC, 0x67, 0x56, 0xCA - }, - { - 0x04, 0x4A, 0x14, 0xD8, 0x22, 0xA9, 0x0C, 0xAC, - 0xF2, 0xF5, 0xA1, 0x01, 0x42, 0x8A, 0xDC, 0x8F, - 0x41, 0x09, 0x38, 0x6C, 0xCB, 0x15, 0x8B, 0xF9, - 0x05, 0xC8, 0x61, 0x8B, 0x8E, 0xE2, 0x4E, 0xC3 - }, - { - 0x38, 0x7D, 0x39, 0x7E, 0xA4, 0x3A, 0x99, 0x4B, - 0xE8, 0x4D, 0x2D, 0x54, 0x4A, 0xFB, 0xE4, 0x81, - 0xA2, 0x00, 0x0F, 0x55, 0x25, 0x26, 0x96, 0xBB, - 0xA2, 0xC5, 0x0C, 0x8E, 0xBD, 0x10, 0x13, 0x47 - }, - { - 0x56, 0xF8, 0xCC, 0xF1, 0xF8, 0x64, 0x09, 0xB4, - 0x6C, 0xE3, 0x61, 0x66, 0xAE, 0x91, 0x65, 0x13, - 0x84, 0x41, 0x57, 0x75, 0x89, 0xDB, 0x08, 0xCB, - 0xC5, 0xF6, 0x6C, 0xA2, 0x97, 0x43, 0xB9, 0xFD - }, - { - 0x97, 0x06, 0xC0, 0x92, 0xB0, 0x4D, 0x91, 0xF5, - 0x3D, 0xFF, 0x91, 0xFA, 0x37, 0xB7, 0x49, 0x3D, - 0x28, 0xB5, 0x76, 0xB5, 0xD7, 0x10, 0x46, 0x9D, - 0xF7, 0x94, 0x01, 0x66, 0x22, 0x36, 0xFC, 0x03 - }, - { - 0x87, 0x79, 0x68, 0x68, 0x6C, 0x06, 0x8C, 0xE2, - 0xF7, 0xE2, 0xAD, 0xCF, 0xF6, 0x8B, 0xF8, 0x74, - 0x8E, 0xDF, 0x3C, 0xF8, 0x62, 0xCF, 0xB4, 0xD3, - 0x94, 0x7A, 0x31, 0x06, 0x95, 0x80, 0x54, 0xE3 - }, - { - 0x88, 0x17, 0xE5, 0x71, 0x98, 0x79, 0xAC, 0xF7, - 0x02, 0x47, 0x87, 0xEC, 0xCD, 0xB2, 0x71, 0x03, - 0x55, 0x66, 0xCF, 0xA3, 0x33, 0xE0, 0x49, 0x40, - 0x7C, 0x01, 0x78, 0xCC, 0xC5, 0x7A, 0x5B, 0x9F - }, - { - 0x89, 0x38, 0x24, 0x9E, 0x4B, 0x50, 0xCA, 0xDA, - 0xCC, 0xDF, 0x5B, 0x18, 0x62, 0x13, 0x26, 0xCB, - 0xB1, 0x52, 0x53, 0xE3, 0x3A, 0x20, 0xF5, 0x63, - 0x6E, 0x99, 0x5D, 0x72, 0x47, 0x8D, 0xE4, 0x72 - }, - { - 0xF1, 0x64, 0xAB, 0xBA, 0x49, 0x63, 0xA4, 0x4D, - 0x10, 0x72, 0x57, 0xE3, 0x23, 0x2D, 0x90, 0xAC, - 0xA5, 0xE6, 0x6A, 0x14, 0x08, 0x24, 0x8C, 0x51, - 0x74, 0x1E, 0x99, 0x1D, 0xB5, 0x22, 0x77, 0x56 - }, - { - 0xD0, 0x55, 0x63, 0xE2, 0xB1, 0xCB, 0xA0, 0xC4, - 0xA2, 0xA1, 0xE8, 0xBD, 0xE3, 0xA1, 0xA0, 0xD9, - 0xF5, 0xB4, 0x0C, 0x85, 0xA0, 0x70, 0xD6, 0xF5, - 0xFB, 0x21, 0x06, 0x6E, 0xAD, 0x5D, 0x06, 0x01 - }, - { - 0x03, 0xFB, 0xB1, 0x63, 0x84, 0xF0, 0xA3, 0x86, - 0x6F, 0x4C, 0x31, 0x17, 0x87, 0x76, 0x66, 0xEF, - 0xBF, 0x12, 0x45, 0x97, 0x56, 0x4B, 0x29, 0x3D, - 0x4A, 0xAB, 0x0D, 0x26, 0x9F, 0xAB, 0xDD, 0xFA - }, - { - 0x5F, 0xA8, 0x48, 0x6A, 0xC0, 0xE5, 0x29, 0x64, - 0xD1, 0x88, 0x1B, 0xBE, 0x33, 0x8E, 0xB5, 0x4B, - 0xE2, 0xF7, 0x19, 0x54, 0x92, 0x24, 0x89, 0x20, - 0x57, 0xB4, 0xDA, 0x04, 0xBA, 0x8B, 0x34, 0x75 - }, - { - 0xCD, 0xFA, 0xBC, 0xEE, 0x46, 0x91, 0x11, 0x11, - 0x23, 0x6A, 0x31, 0x70, 0x8B, 0x25, 0x39, 0xD7, - 0x1F, 0xC2, 0x11, 0xD9, 0xB0, 0x9C, 0x0D, 0x85, - 0x30, 0xA1, 0x1E, 0x1D, 0xBF, 0x6E, 0xED, 0x01 - }, - { - 0x4F, 0x82, 0xDE, 0x03, 0xB9, 0x50, 0x47, 0x93, - 0xB8, 0x2A, 0x07, 0xA0, 0xBD, 0xCD, 0xFF, 0x31, - 0x4D, 0x75, 0x9E, 0x7B, 0x62, 0xD2, 0x6B, 0x78, - 0x49, 0x46, 0xB0, 0xD3, 0x6F, 0x91, 0x6F, 0x52 - }, - { - 0x25, 0x9E, 0xC7, 0xF1, 0x73, 0xBC, 0xC7, 0x6A, - 0x09, 0x94, 0xC9, 0x67, 0xB4, 0xF5, 0xF0, 0x24, - 0xC5, 0x60, 0x57, 0xFB, 0x79, 0xC9, 0x65, 0xC4, - 0xFA, 0xE4, 0x18, 0x75, 0xF0, 0x6A, 0x0E, 0x4C - }, - { - 0x19, 0x3C, 0xC8, 0xE7, 0xC3, 0xE0, 0x8B, 0xB3, - 0x0F, 0x54, 0x37, 0xAA, 0x27, 0xAD, 0xE1, 0xF1, - 0x42, 0x36, 0x9B, 0x24, 0x6A, 0x67, 0x5B, 0x23, - 0x83, 0xE6, 0xDA, 0x9B, 0x49, 0xA9, 0x80, 0x9E - }, - { - 0x5C, 0x10, 0x89, 0x6F, 0x0E, 0x28, 0x56, 0xB2, - 0xA2, 0xEE, 0xE0, 0xFE, 0x4A, 0x2C, 0x16, 0x33, - 0x56, 0x5D, 0x18, 0xF0, 0xE9, 0x3E, 0x1F, 0xAB, - 0x26, 0xC3, 0x73, 0xE8, 0xF8, 0x29, 0x65, 0x4D - }, - { - 0xF1, 0x60, 0x12, 0xD9, 0x3F, 0x28, 0x85, 0x1A, - 0x1E, 0xB9, 0x89, 0xF5, 0xD0, 0xB4, 0x3F, 0x3F, - 0x39, 0xCA, 0x73, 0xC9, 0xA6, 0x2D, 0x51, 0x81, - 0xBF, 0xF2, 0x37, 0x53, 0x6B, 0xD3, 0x48, 0xC3 - }, - { - 0x29, 0x66, 0xB3, 0xCF, 0xAE, 0x1E, 0x44, 0xEA, - 0x99, 0x6D, 0xC5, 0xD6, 0x86, 0xCF, 0x25, 0xFA, - 0x05, 0x3F, 0xB6, 0xF6, 0x72, 0x01, 0xB9, 0xE4, - 0x6E, 0xAD, 0xE8, 0x5D, 0x0A, 0xD6, 0xB8, 0x06 - }, - { - 0xDD, 0xB8, 0x78, 0x24, 0x85, 0xE9, 0x00, 0xBC, - 0x60, 0xBC, 0xF4, 0xC3, 0x3A, 0x6F, 0xD5, 0x85, - 0x68, 0x0C, 0xC6, 0x83, 0xD5, 0x16, 0xEF, 0xA0, - 0x3E, 0xB9, 0x98, 0x5F, 0xAD, 0x87, 0x15, 0xFB - }, - { - 0x4C, 0x4D, 0x6E, 0x71, 0xAE, 0xA0, 0x57, 0x86, - 0x41, 0x31, 0x48, 0xFC, 0x7A, 0x78, 0x6B, 0x0E, - 0xCA, 0xF5, 0x82, 0xCF, 0xF1, 0x20, 0x9F, 0x5A, - 0x80, 0x9F, 0xBA, 0x85, 0x04, 0xCE, 0x66, 0x2C - }, - { - 0xFB, 0x4C, 0x5E, 0x86, 0xD7, 0xB2, 0x22, 0x9B, - 0x99, 0xB8, 0xBA, 0x6D, 0x94, 0xC2, 0x47, 0xEF, - 0x96, 0x4A, 0xA3, 0xA2, 0xBA, 0xE8, 0xED, 0xC7, - 0x75, 0x69, 0xF2, 0x8D, 0xBB, 0xFF, 0x2D, 0x4E - }, - { - 0xE9, 0x4F, 0x52, 0x6D, 0xE9, 0x01, 0x96, 0x33, - 0xEC, 0xD5, 0x4A, 0xC6, 0x12, 0x0F, 0x23, 0x95, - 0x8D, 0x77, 0x18, 0xF1, 0xE7, 0x71, 0x7B, 0xF3, - 0x29, 0x21, 0x1A, 0x4F, 0xAE, 0xED, 0x4E, 0x6D - }, - { - 0xCB, 0xD6, 0x66, 0x0A, 0x10, 0xDB, 0x3F, 0x23, - 0xF7, 0xA0, 0x3D, 0x4B, 0x9D, 0x40, 0x44, 0xC7, - 0x93, 0x2B, 0x28, 0x01, 0xAC, 0x89, 0xD6, 0x0B, - 0xC9, 0xEB, 0x92, 0xD6, 0x5A, 0x46, 0xC2, 0xA0 - }, - { - 0x88, 0x18, 0xBB, 0xD3, 0xDB, 0x4D, 0xC1, 0x23, - 0xB2, 0x5C, 0xBB, 0xA5, 0xF5, 0x4C, 0x2B, 0xC4, - 0xB3, 0xFC, 0xF9, 0xBF, 0x7D, 0x7A, 0x77, 0x09, - 0xF4, 0xAE, 0x58, 0x8B, 0x26, 0x7C, 0x4E, 0xCE - }, - { - 0xC6, 0x53, 0x82, 0x51, 0x3F, 0x07, 0x46, 0x0D, - 0xA3, 0x98, 0x33, 0xCB, 0x66, 0x6C, 0x5E, 0xD8, - 0x2E, 0x61, 0xB9, 0xE9, 0x98, 0xF4, 0xB0, 0xC4, - 0x28, 0x7C, 0xEE, 0x56, 0xC3, 0xCC, 0x9B, 0xCD - }, - { - 0x89, 0x75, 0xB0, 0x57, 0x7F, 0xD3, 0x55, 0x66, - 0xD7, 0x50, 0xB3, 0x62, 0xB0, 0x89, 0x7A, 0x26, - 0xC3, 0x99, 0x13, 0x6D, 0xF0, 0x7B, 0xAB, 0xAB, - 0xBD, 0xE6, 0x20, 0x3F, 0xF2, 0x95, 0x4E, 0xD4 - }, - { - 0x21, 0xFE, 0x0C, 0xEB, 0x00, 0x52, 0xBE, 0x7F, - 0xB0, 0xF0, 0x04, 0x18, 0x7C, 0xAC, 0xD7, 0xDE, - 0x67, 0xFA, 0x6E, 0xB0, 0x93, 0x8D, 0x92, 0x76, - 0x77, 0xF2, 0x39, 0x8C, 0x13, 0x23, 0x17, 0xA8 - }, - { - 0x2E, 0xF7, 0x3F, 0x3C, 0x26, 0xF1, 0x2D, 0x93, - 0x88, 0x9F, 0x3C, 0x78, 0xB6, 0xA6, 0x6C, 0x1D, - 0x52, 0xB6, 0x49, 0xDC, 0x9E, 0x85, 0x6E, 0x2C, - 0x17, 0x2E, 0xA7, 0xC5, 0x8A, 0xC2, 0xB5, 0xE3 - }, - { - 0x38, 0x8A, 0x3C, 0xD5, 0x6D, 0x73, 0x86, 0x7A, - 0xBB, 0x5F, 0x84, 0x01, 0x49, 0x2B, 0x6E, 0x26, - 0x81, 0xEB, 0x69, 0x85, 0x1E, 0x76, 0x7F, 0xD8, - 0x42, 0x10, 0xA5, 0x60, 0x76, 0xFB, 0x3D, 0xD3 - }, - { - 0xAF, 0x53, 0x3E, 0x02, 0x2F, 0xC9, 0x43, 0x9E, - 0x4E, 0x3C, 0xB8, 0x38, 0xEC, 0xD1, 0x86, 0x92, - 0x23, 0x2A, 0xDF, 0x6F, 0xE9, 0x83, 0x95, 0x26, - 0xD3, 0xC3, 0xDD, 0x1B, 0x71, 0x91, 0x0B, 0x1A - }, - { - 0x75, 0x1C, 0x09, 0xD4, 0x1A, 0x93, 0x43, 0x88, - 0x2A, 0x81, 0xCD, 0x13, 0xEE, 0x40, 0x81, 0x8D, - 0x12, 0xEB, 0x44, 0xC6, 0xC7, 0xF4, 0x0D, 0xF1, - 0x6E, 0x4A, 0xEA, 0x8F, 0xAB, 0x91, 0x97, 0x2A - }, - { - 0x5B, 0x73, 0xDD, 0xB6, 0x8D, 0x9D, 0x2B, 0x0A, - 0xA2, 0x65, 0xA0, 0x79, 0x88, 0xD6, 0xB8, 0x8A, - 0xE9, 0xAA, 0xC5, 0x82, 0xAF, 0x83, 0x03, 0x2F, - 0x8A, 0x9B, 0x21, 0xA2, 0xE1, 0xB7, 0xBF, 0x18 - }, - { - 0x3D, 0xA2, 0x91, 0x26, 0xC7, 0xC5, 0xD7, 0xF4, - 0x3E, 0x64, 0x24, 0x2A, 0x79, 0xFE, 0xAA, 0x4E, - 0xF3, 0x45, 0x9C, 0xDE, 0xCC, 0xC8, 0x98, 0xED, - 0x59, 0xA9, 0x7F, 0x6E, 0xC9, 0x3B, 0x9D, 0xAB - }, - { - 0x56, 0x6D, 0xC9, 0x20, 0x29, 0x3D, 0xA5, 0xCB, - 0x4F, 0xE0, 0xAA, 0x8A, 0xBD, 0xA8, 0xBB, 0xF5, - 0x6F, 0x55, 0x23, 0x13, 0xBF, 0xF1, 0x90, 0x46, - 0x64, 0x1E, 0x36, 0x15, 0xC1, 0xE3, 0xED, 0x3F - }, - { - 0x41, 0x15, 0xBE, 0xA0, 0x2F, 0x73, 0xF9, 0x7F, - 0x62, 0x9E, 0x5C, 0x55, 0x90, 0x72, 0x0C, 0x01, - 0xE7, 0xE4, 0x49, 0xAE, 0x2A, 0x66, 0x97, 0xD4, - 0xD2, 0x78, 0x33, 0x21, 0x30, 0x36, 0x92, 0xF9 - }, - { - 0x4C, 0xE0, 0x8F, 0x47, 0x62, 0x46, 0x8A, 0x76, - 0x70, 0x01, 0x21, 0x64, 0x87, 0x8D, 0x68, 0x34, - 0x0C, 0x52, 0xA3, 0x5E, 0x66, 0xC1, 0x88, 0x4D, - 0x5C, 0x86, 0x48, 0x89, 0xAB, 0xC9, 0x66, 0x77 - }, - { - 0x81, 0xEA, 0x0B, 0x78, 0x04, 0x12, 0x4E, 0x0C, - 0x22, 0xEA, 0x5F, 0xC7, 0x11, 0x04, 0xA2, 0xAF, - 0xCB, 0x52, 0xA1, 0xFA, 0x81, 0x6F, 0x3E, 0xCB, - 0x7D, 0xCB, 0x5D, 0x9D, 0xEA, 0x17, 0x86, 0xD0 - }, - { - 0xFE, 0x36, 0x27, 0x33, 0xB0, 0x5F, 0x6B, 0xED, - 0xAF, 0x93, 0x79, 0xD7, 0xF7, 0x93, 0x6E, 0xDE, - 0x20, 0x9B, 0x1F, 0x83, 0x23, 0xC3, 0x92, 0x25, - 0x49, 0xD9, 0xE7, 0x36, 0x81, 0xB5, 0xDB, 0x7B - }, - { - 0xEF, 0xF3, 0x7D, 0x30, 0xDF, 0xD2, 0x03, 0x59, - 0xBE, 0x4E, 0x73, 0xFD, 0xF4, 0x0D, 0x27, 0x73, - 0x4B, 0x3D, 0xF9, 0x0A, 0x97, 0xA5, 0x5E, 0xD7, - 0x45, 0x29, 0x72, 0x94, 0xCA, 0x85, 0xD0, 0x9F - }, - { - 0x17, 0x2F, 0xFC, 0x67, 0x15, 0x3D, 0x12, 0xE0, - 0xCA, 0x76, 0xA8, 0xB6, 0xCD, 0x5D, 0x47, 0x31, - 0x88, 0x5B, 0x39, 0xCE, 0x0C, 0xAC, 0x93, 0xA8, - 0x97, 0x2A, 0x18, 0x00, 0x6C, 0x8B, 0x8B, 0xAF - }, - { - 0xC4, 0x79, 0x57, 0xF1, 0xCC, 0x88, 0xE8, 0x3E, - 0xF9, 0x44, 0x58, 0x39, 0x70, 0x9A, 0x48, 0x0A, - 0x03, 0x6B, 0xED, 0x5F, 0x88, 0xAC, 0x0F, 0xCC, - 0x8E, 0x1E, 0x70, 0x3F, 0xFA, 0xAC, 0x13, 0x2C - }, - { - 0x30, 0xF3, 0x54, 0x83, 0x70, 0xCF, 0xDC, 0xED, - 0xA5, 0xC3, 0x7B, 0x56, 0x9B, 0x61, 0x75, 0xE7, - 0x99, 0xEE, 0xF1, 0xA6, 0x2A, 0xAA, 0x94, 0x32, - 0x45, 0xAE, 0x76, 0x69, 0xC2, 0x27, 0xA7, 0xB5 - }, - { - 0xC9, 0x5D, 0xCB, 0x3C, 0xF1, 0xF2, 0x7D, 0x0E, - 0xEF, 0x2F, 0x25, 0xD2, 0x41, 0x38, 0x70, 0x90, - 0x4A, 0x87, 0x7C, 0x4A, 0x56, 0xC2, 0xDE, 0x1E, - 0x83, 0xE2, 0xBC, 0x2A, 0xE2, 0xE4, 0x68, 0x21 - }, - { - 0xD5, 0xD0, 0xB5, 0xD7, 0x05, 0x43, 0x4C, 0xD4, - 0x6B, 0x18, 0x57, 0x49, 0xF6, 0x6B, 0xFB, 0x58, - 0x36, 0xDC, 0xDF, 0x6E, 0xE5, 0x49, 0xA2, 0xB7, - 0xA4, 0xAE, 0xE7, 0xF5, 0x80, 0x07, 0xCA, 0xAF - }, - { - 0xBB, 0xC1, 0x24, 0xA7, 0x12, 0xF1, 0x5D, 0x07, - 0xC3, 0x00, 0xE0, 0x5B, 0x66, 0x83, 0x89, 0xA4, - 0x39, 0xC9, 0x17, 0x77, 0xF7, 0x21, 0xF8, 0x32, - 0x0C, 0x1C, 0x90, 0x78, 0x06, 0x6D, 0x2C, 0x7E - }, - { - 0xA4, 0x51, 0xB4, 0x8C, 0x35, 0xA6, 0xC7, 0x85, - 0x4C, 0xFA, 0xAE, 0x60, 0x26, 0x2E, 0x76, 0x99, - 0x08, 0x16, 0x38, 0x2A, 0xC0, 0x66, 0x7E, 0x5A, - 0x5C, 0x9E, 0x1B, 0x46, 0xC4, 0x34, 0x2D, 0xDF - }, - { - 0xB0, 0xD1, 0x50, 0xFB, 0x55, 0xE7, 0x78, 0xD0, - 0x11, 0x47, 0xF0, 0xB5, 0xD8, 0x9D, 0x99, 0xEC, - 0xB2, 0x0F, 0xF0, 0x7E, 0x5E, 0x67, 0x60, 0xD6, - 0xB6, 0x45, 0xEB, 0x5B, 0x65, 0x4C, 0x62, 0x2B - }, - { - 0x34, 0xF7, 0x37, 0xC0, 0xAB, 0x21, 0x99, 0x51, - 0xEE, 0xE8, 0x9A, 0x9F, 0x8D, 0xAC, 0x29, 0x9C, - 0x9D, 0x4C, 0x38, 0xF3, 0x3F, 0xA4, 0x94, 0xC5, - 0xC6, 0xEE, 0xFC, 0x92, 0xB6, 0xDB, 0x08, 0xBC - }, - { - 0x1A, 0x62, 0xCC, 0x3A, 0x00, 0x80, 0x0D, 0xCB, - 0xD9, 0x98, 0x91, 0x08, 0x0C, 0x1E, 0x09, 0x84, - 0x58, 0x19, 0x3A, 0x8C, 0xC9, 0xF9, 0x70, 0xEA, - 0x99, 0xFB, 0xEF, 0xF0, 0x03, 0x18, 0xC2, 0x89 - }, - { - 0xCF, 0xCE, 0x55, 0xEB, 0xAF, 0xC8, 0x40, 0xD7, - 0xAE, 0x48, 0x28, 0x1C, 0x7F, 0xD5, 0x7E, 0xC8, - 0xB4, 0x82, 0xD4, 0xB7, 0x04, 0x43, 0x74, 0x95, - 0x49, 0x5A, 0xC4, 0x14, 0xCF, 0x4A, 0x37, 0x4B - }, - { - 0x67, 0x46, 0xFA, 0xCF, 0x71, 0x14, 0x6D, 0x99, - 0x9D, 0xAB, 0xD0, 0x5D, 0x09, 0x3A, 0xE5, 0x86, - 0x64, 0x8D, 0x1E, 0xE2, 0x8E, 0x72, 0x61, 0x7B, - 0x99, 0xD0, 0xF0, 0x08, 0x6E, 0x1E, 0x45, 0xBF - }, - { - 0x57, 0x1C, 0xED, 0x28, 0x3B, 0x3F, 0x23, 0xB4, - 0xE7, 0x50, 0xBF, 0x12, 0xA2, 0xCA, 0xF1, 0x78, - 0x18, 0x47, 0xBD, 0x89, 0x0E, 0x43, 0x60, 0x3C, - 0xDC, 0x59, 0x76, 0x10, 0x2B, 0x7B, 0xB1, 0x1B - }, - { - 0xCF, 0xCB, 0x76, 0x5B, 0x04, 0x8E, 0x35, 0x02, - 0x2C, 0x5D, 0x08, 0x9D, 0x26, 0xE8, 0x5A, 0x36, - 0xB0, 0x05, 0xA2, 0xB8, 0x04, 0x93, 0xD0, 0x3A, - 0x14, 0x4E, 0x09, 0xF4, 0x09, 0xB6, 0xAF, 0xD1 - }, - { - 0x40, 0x50, 0xC7, 0xA2, 0x77, 0x05, 0xBB, 0x27, - 0xF4, 0x20, 0x89, 0xB2, 0x99, 0xF3, 0xCB, 0xE5, - 0x05, 0x4E, 0xAD, 0x68, 0x72, 0x7E, 0x8E, 0xF9, - 0x31, 0x8C, 0xE6, 0xF2, 0x5C, 0xD6, 0xF3, 0x1D - }, - { - 0x18, 0x40, 0x70, 0xBD, 0x5D, 0x26, 0x5F, 0xBD, - 0xC1, 0x42, 0xCD, 0x1C, 0x5C, 0xD0, 0xD7, 0xE4, - 0x14, 0xE7, 0x03, 0x69, 0xA2, 0x66, 0xD6, 0x27, - 0xC8, 0xFB, 0xA8, 0x4F, 0xA5, 0xE8, 0x4C, 0x34 - }, - { - 0x9E, 0xDD, 0xA9, 0xA4, 0x44, 0x39, 0x02, 0xA9, - 0x58, 0x8C, 0x0D, 0x0C, 0xCC, 0x62, 0xB9, 0x30, - 0x21, 0x84, 0x79, 0xA6, 0x84, 0x1E, 0x6F, 0xE7, - 0xD4, 0x30, 0x03, 0xF0, 0x4B, 0x1F, 0xD6, 0x43 - }, - { - 0xE4, 0x12, 0xFE, 0xEF, 0x79, 0x08, 0x32, 0x4A, - 0x6D, 0xA1, 0x84, 0x16, 0x29, 0xF3, 0x5D, 0x3D, - 0x35, 0x86, 0x42, 0x01, 0x93, 0x10, 0xEC, 0x57, - 0xC6, 0x14, 0x83, 0x6B, 0x63, 0xD3, 0x07, 0x63 - }, - { - 0x1A, 0x2B, 0x8E, 0xDF, 0xF3, 0xF9, 0xAC, 0xC1, - 0x55, 0x4F, 0xCB, 0xAE, 0x3C, 0xF1, 0xD6, 0x29, - 0x8C, 0x64, 0x62, 0xE2, 0x2E, 0x5E, 0xB0, 0x25, - 0x96, 0x84, 0xF8, 0x35, 0x01, 0x2B, 0xD1, 0x3F - }, - { - 0x28, 0x8C, 0x4A, 0xD9, 0xB9, 0x40, 0x97, 0x62, - 0xEA, 0x07, 0xC2, 0x4A, 0x41, 0xF0, 0x4F, 0x69, - 0xA7, 0xD7, 0x4B, 0xEE, 0x2D, 0x95, 0x43, 0x53, - 0x74, 0xBD, 0xE9, 0x46, 0xD7, 0x24, 0x1C, 0x7B - }, - { - 0x80, 0x56, 0x91, 0xBB, 0x28, 0x67, 0x48, 0xCF, - 0xB5, 0x91, 0xD3, 0xAE, 0xBE, 0x7E, 0x6F, 0x4E, - 0x4D, 0xC6, 0xE2, 0x80, 0x8C, 0x65, 0x14, 0x3C, - 0xC0, 0x04, 0xE4, 0xEB, 0x6F, 0xD0, 0x9D, 0x43 - }, - { - 0xD4, 0xAC, 0x8D, 0x3A, 0x0A, 0xFC, 0x6C, 0xFA, - 0x7B, 0x46, 0x0A, 0xE3, 0x00, 0x1B, 0xAE, 0xB3, - 0x6D, 0xAD, 0xB3, 0x7D, 0xA0, 0x7D, 0x2E, 0x8A, - 0xC9, 0x18, 0x22, 0xDF, 0x34, 0x8A, 0xED, 0x3D - }, - { - 0xC3, 0x76, 0x61, 0x70, 0x14, 0xD2, 0x01, 0x58, - 0xBC, 0xED, 0x3D, 0x3B, 0xA5, 0x52, 0xB6, 0xEC, - 0xCF, 0x84, 0xE6, 0x2A, 0xA3, 0xEB, 0x65, 0x0E, - 0x90, 0x02, 0x9C, 0x84, 0xD1, 0x3E, 0xEA, 0x69 - }, - { - 0xC4, 0x1F, 0x09, 0xF4, 0x3C, 0xEC, 0xAE, 0x72, - 0x93, 0xD6, 0x00, 0x7C, 0xA0, 0xA3, 0x57, 0x08, - 0x7D, 0x5A, 0xE5, 0x9B, 0xE5, 0x00, 0xC1, 0xCD, - 0x5B, 0x28, 0x9E, 0xE8, 0x10, 0xC7, 0xB0, 0x82 - }, - { - 0x03, 0xD1, 0xCE, 0xD1, 0xFB, 0xA5, 0xC3, 0x91, - 0x55, 0xC4, 0x4B, 0x77, 0x65, 0xCB, 0x76, 0x0C, - 0x78, 0x70, 0x8D, 0xCF, 0xC8, 0x0B, 0x0B, 0xD8, - 0xAD, 0xE3, 0xA5, 0x6D, 0xA8, 0x83, 0x0B, 0x29 - }, - { - 0x09, 0xBD, 0xE6, 0xF1, 0x52, 0x21, 0x8D, 0xC9, - 0x2C, 0x41, 0xD7, 0xF4, 0x53, 0x87, 0xE6, 0x3E, - 0x58, 0x69, 0xD8, 0x07, 0xEC, 0x70, 0xB8, 0x21, - 0x40, 0x5D, 0xBD, 0x88, 0x4B, 0x7F, 0xCF, 0x4B - }, - { - 0x71, 0xC9, 0x03, 0x6E, 0x18, 0x17, 0x9B, 0x90, - 0xB3, 0x7D, 0x39, 0xE9, 0xF0, 0x5E, 0xB8, 0x9C, - 0xC5, 0xFC, 0x34, 0x1F, 0xD7, 0xC4, 0x77, 0xD0, - 0xD7, 0x49, 0x32, 0x85, 0xFA, 0xCA, 0x08, 0xA4 - }, - { - 0x59, 0x16, 0x83, 0x3E, 0xBB, 0x05, 0xCD, 0x91, - 0x9C, 0xA7, 0xFE, 0x83, 0xB6, 0x92, 0xD3, 0x20, - 0x5B, 0xEF, 0x72, 0x39, 0x2B, 0x2C, 0xF6, 0xBB, - 0x0A, 0x6D, 0x43, 0xF9, 0x94, 0xF9, 0x5F, 0x11 - }, - { - 0xF6, 0x3A, 0xAB, 0x3E, 0xC6, 0x41, 0xB3, 0xB0, - 0x24, 0x96, 0x4C, 0x2B, 0x43, 0x7C, 0x04, 0xF6, - 0x04, 0x3C, 0x4C, 0x7E, 0x02, 0x79, 0x23, 0x99, - 0x95, 0x40, 0x19, 0x58, 0xF8, 0x6B, 0xBE, 0x54 - }, - { - 0xF1, 0x72, 0xB1, 0x80, 0xBF, 0xB0, 0x97, 0x40, - 0x49, 0x31, 0x20, 0xB6, 0x32, 0x6C, 0xBD, 0xC5, - 0x61, 0xE4, 0x77, 0xDE, 0xF9, 0xBB, 0xCF, 0xD2, - 0x8C, 0xC8, 0xC1, 0xC5, 0xE3, 0x37, 0x9A, 0x31 - }, - { - 0xCB, 0x9B, 0x89, 0xCC, 0x18, 0x38, 0x1D, 0xD9, - 0x14, 0x1A, 0xDE, 0x58, 0x86, 0x54, 0xD4, 0xE6, - 0xA2, 0x31, 0xD5, 0xBF, 0x49, 0xD4, 0xD5, 0x9A, - 0xC2, 0x7D, 0x86, 0x9C, 0xBE, 0x10, 0x0C, 0xF3 - }, - { - 0x7B, 0xD8, 0x81, 0x50, 0x46, 0xFD, 0xD8, 0x10, - 0xA9, 0x23, 0xE1, 0x98, 0x4A, 0xAE, 0xBD, 0xCD, - 0xF8, 0x4D, 0x87, 0xC8, 0x99, 0x2D, 0x68, 0xB5, - 0xEE, 0xB4, 0x60, 0xF9, 0x3E, 0xB3, 0xC8, 0xD7 - }, - { - 0x60, 0x7B, 0xE6, 0x68, 0x62, 0xFD, 0x08, 0xEE, - 0x5B, 0x19, 0xFA, 0xCA, 0xC0, 0x9D, 0xFD, 0xBC, - 0xD4, 0x0C, 0x31, 0x21, 0x01, 0xD6, 0x6E, 0x6E, - 0xBD, 0x2B, 0x84, 0x1F, 0x1B, 0x9A, 0x93, 0x25 - }, - { - 0x9F, 0xE0, 0x3B, 0xBE, 0x69, 0xAB, 0x18, 0x34, - 0xF5, 0x21, 0x9B, 0x0D, 0xA8, 0x8A, 0x08, 0xB3, - 0x0A, 0x66, 0xC5, 0x91, 0x3F, 0x01, 0x51, 0x96, - 0x3C, 0x36, 0x05, 0x60, 0xDB, 0x03, 0x87, 0xB3 - }, - { - 0x90, 0xA8, 0x35, 0x85, 0x71, 0x7B, 0x75, 0xF0, - 0xE9, 0xB7, 0x25, 0xE0, 0x55, 0xEE, 0xEE, 0xB9, - 0xE7, 0xA0, 0x28, 0xEA, 0x7E, 0x6C, 0xBC, 0x07, - 0xB2, 0x09, 0x17, 0xEC, 0x03, 0x63, 0xE3, 0x8C - }, - { - 0x33, 0x6E, 0xA0, 0x53, 0x0F, 0x4A, 0x74, 0x69, - 0x12, 0x6E, 0x02, 0x18, 0x58, 0x7E, 0xBB, 0xDE, - 0x33, 0x58, 0xA0, 0xB3, 0x1C, 0x29, 0xD2, 0x00, - 0xF7, 0xDC, 0x7E, 0xB1, 0x5C, 0x6A, 0xAD, 0xD8 - }, - { - 0xA7, 0x9E, 0x76, 0xDC, 0x0A, 0xBC, 0xA4, 0x39, - 0x6F, 0x07, 0x47, 0xCD, 0x7B, 0x74, 0x8D, 0xF9, - 0x13, 0x00, 0x76, 0x26, 0xB1, 0xD6, 0x59, 0xDA, - 0x0C, 0x1F, 0x78, 0xB9, 0x30, 0x3D, 0x01, 0xA3 - }, - { - 0x44, 0xE7, 0x8A, 0x77, 0x37, 0x56, 0xE0, 0x95, - 0x15, 0x19, 0x50, 0x4D, 0x70, 0x38, 0xD2, 0x8D, - 0x02, 0x13, 0xA3, 0x7E, 0x0C, 0xE3, 0x75, 0x37, - 0x17, 0x57, 0xBC, 0x99, 0x63, 0x11, 0xE3, 0xB8 - }, - { - 0x77, 0xAC, 0x01, 0x2A, 0x3F, 0x75, 0x4D, 0xCF, - 0xEA, 0xB5, 0xEB, 0x99, 0x6B, 0xE9, 0xCD, 0x2D, - 0x1F, 0x96, 0x11, 0x1B, 0x6E, 0x49, 0xF3, 0x99, - 0x4D, 0xF1, 0x81, 0xF2, 0x85, 0x69, 0xD8, 0x25 - }, - { - 0xCE, 0x5A, 0x10, 0xDB, 0x6F, 0xCC, 0xDA, 0xF1, - 0x40, 0xAA, 0xA4, 0xDE, 0xD6, 0x25, 0x0A, 0x9C, - 0x06, 0xE9, 0x22, 0x2B, 0xC9, 0xF9, 0xF3, 0x65, - 0x8A, 0x4A, 0xFF, 0x93, 0x5F, 0x2B, 0x9F, 0x3A - }, - { - 0xEC, 0xC2, 0x03, 0xA7, 0xFE, 0x2B, 0xE4, 0xAB, - 0xD5, 0x5B, 0xB5, 0x3E, 0x6E, 0x67, 0x35, 0x72, - 0xE0, 0x07, 0x8D, 0xA8, 0xCD, 0x37, 0x5E, 0xF4, - 0x30, 0xCC, 0x97, 0xF9, 0xF8, 0x00, 0x83, 0xAF - }, - { - 0x14, 0xA5, 0x18, 0x6D, 0xE9, 0xD7, 0xA1, 0x8B, - 0x04, 0x12, 0xB8, 0x56, 0x3E, 0x51, 0xCC, 0x54, - 0x33, 0x84, 0x0B, 0x4A, 0x12, 0x9A, 0x8F, 0xF9, - 0x63, 0xB3, 0x3A, 0x3C, 0x4A, 0xFE, 0x8E, 0xBB - }, - { - 0x13, 0xF8, 0xEF, 0x95, 0xCB, 0x86, 0xE6, 0xA6, - 0x38, 0x93, 0x1C, 0x8E, 0x10, 0x76, 0x73, 0xEB, - 0x76, 0xBA, 0x10, 0xD7, 0xC2, 0xCD, 0x70, 0xB9, - 0xD9, 0x92, 0x0B, 0xBE, 0xED, 0x92, 0x94, 0x09 - }, - { - 0x0B, 0x33, 0x8F, 0x4E, 0xE1, 0x2F, 0x2D, 0xFC, - 0xB7, 0x87, 0x13, 0x37, 0x79, 0x41, 0xE0, 0xB0, - 0x63, 0x21, 0x52, 0x58, 0x1D, 0x13, 0x32, 0x51, - 0x6E, 0x4A, 0x2C, 0xAB, 0x19, 0x42, 0xCC, 0xA4 - }, - { - 0xEA, 0xAB, 0x0E, 0xC3, 0x7B, 0x3B, 0x8A, 0xB7, - 0x96, 0xE9, 0xF5, 0x72, 0x38, 0xDE, 0x14, 0xA2, - 0x64, 0xA0, 0x76, 0xF3, 0x88, 0x7D, 0x86, 0xE2, - 0x9B, 0xB5, 0x90, 0x6D, 0xB5, 0xA0, 0x0E, 0x02 - }, - { - 0x23, 0xCB, 0x68, 0xB8, 0xC0, 0xE6, 0xDC, 0x26, - 0xDC, 0x27, 0x76, 0x6D, 0xDC, 0x0A, 0x13, 0xA9, - 0x94, 0x38, 0xFD, 0x55, 0x61, 0x7A, 0xA4, 0x09, - 0x5D, 0x8F, 0x96, 0x97, 0x20, 0xC8, 0x72, 0xDF - }, - { - 0x09, 0x1D, 0x8E, 0xE3, 0x0D, 0x6F, 0x29, 0x68, - 0xD4, 0x6B, 0x68, 0x7D, 0xD6, 0x52, 0x92, 0x66, - 0x57, 0x42, 0xDE, 0x0B, 0xB8, 0x3D, 0xCC, 0x00, - 0x04, 0xC7, 0x2C, 0xE1, 0x00, 0x07, 0xA5, 0x49 - }, - { - 0x7F, 0x50, 0x7A, 0xBC, 0x6D, 0x19, 0xBA, 0x00, - 0xC0, 0x65, 0xA8, 0x76, 0xEC, 0x56, 0x57, 0x86, - 0x88, 0x82, 0xD1, 0x8A, 0x22, 0x1B, 0xC4, 0x6C, - 0x7A, 0x69, 0x12, 0x54, 0x1F, 0x5B, 0xC7, 0xBA - }, - { - 0xA0, 0x60, 0x7C, 0x24, 0xE1, 0x4E, 0x8C, 0x22, - 0x3D, 0xB0, 0xD7, 0x0B, 0x4D, 0x30, 0xEE, 0x88, - 0x01, 0x4D, 0x60, 0x3F, 0x43, 0x7E, 0x9E, 0x02, - 0xAA, 0x7D, 0xAF, 0xA3, 0xCD, 0xFB, 0xAD, 0x94 - }, - { - 0xDD, 0xBF, 0xEA, 0x75, 0xCC, 0x46, 0x78, 0x82, - 0xEB, 0x34, 0x83, 0xCE, 0x5E, 0x2E, 0x75, 0x6A, - 0x4F, 0x47, 0x01, 0xB7, 0x6B, 0x44, 0x55, 0x19, - 0xE8, 0x9F, 0x22, 0xD6, 0x0F, 0xA8, 0x6E, 0x06 - }, - { - 0x0C, 0x31, 0x1F, 0x38, 0xC3, 0x5A, 0x4F, 0xB9, - 0x0D, 0x65, 0x1C, 0x28, 0x9D, 0x48, 0x68, 0x56, - 0xCD, 0x14, 0x13, 0xDF, 0x9B, 0x06, 0x77, 0xF5, - 0x3E, 0xCE, 0x2C, 0xD9, 0xE4, 0x77, 0xC6, 0x0A - }, - { - 0x46, 0xA7, 0x3A, 0x8D, 0xD3, 0xE7, 0x0F, 0x59, - 0xD3, 0x94, 0x2C, 0x01, 0xDF, 0x59, 0x9D, 0xEF, - 0x78, 0x3C, 0x9D, 0xA8, 0x2F, 0xD8, 0x32, 0x22, - 0xCD, 0x66, 0x2B, 0x53, 0xDC, 0xE7, 0xDB, 0xDF - }, - { - 0xAD, 0x03, 0x8F, 0xF9, 0xB1, 0x4D, 0xE8, 0x4A, - 0x80, 0x1E, 0x4E, 0x62, 0x1C, 0xE5, 0xDF, 0x02, - 0x9D, 0xD9, 0x35, 0x20, 0xD0, 0xC2, 0xFA, 0x38, - 0xBF, 0xF1, 0x76, 0xA8, 0xB1, 0xD1, 0x69, 0x8C - }, - { - 0xAB, 0x70, 0xC5, 0xDF, 0xBD, 0x1E, 0xA8, 0x17, - 0xFE, 0xD0, 0xCD, 0x06, 0x72, 0x93, 0xAB, 0xF3, - 0x19, 0xE5, 0xD7, 0x90, 0x1C, 0x21, 0x41, 0xD5, - 0xD9, 0x9B, 0x23, 0xF0, 0x3A, 0x38, 0xE7, 0x48 - }, - { - 0x1F, 0xFF, 0xDA, 0x67, 0x93, 0x2B, 0x73, 0xC8, - 0xEC, 0xAF, 0x00, 0x9A, 0x34, 0x91, 0xA0, 0x26, - 0x95, 0x3B, 0xAB, 0xFE, 0x1F, 0x66, 0x3B, 0x06, - 0x97, 0xC3, 0xC4, 0xAE, 0x8B, 0x2E, 0x7D, 0xCB - }, - { - 0xB0, 0xD2, 0xCC, 0x19, 0x47, 0x2D, 0xD5, 0x7F, - 0x2B, 0x17, 0xEF, 0xC0, 0x3C, 0x8D, 0x58, 0xC2, - 0x28, 0x3D, 0xBB, 0x19, 0xDA, 0x57, 0x2F, 0x77, - 0x55, 0x85, 0x5A, 0xA9, 0x79, 0x43, 0x17, 0xA0 - }, - { - 0xA0, 0xD1, 0x9A, 0x6E, 0xE3, 0x39, 0x79, 0xC3, - 0x25, 0x51, 0x0E, 0x27, 0x66, 0x22, 0xDF, 0x41, - 0xF7, 0x15, 0x83, 0xD0, 0x75, 0x01, 0xB8, 0x70, - 0x71, 0x12, 0x9A, 0x0A, 0xD9, 0x47, 0x32, 0xA5 - }, - { - 0x72, 0x46, 0x42, 0xA7, 0x03, 0x2D, 0x10, 0x62, - 0xB8, 0x9E, 0x52, 0xBE, 0xA3, 0x4B, 0x75, 0xDF, - 0x7D, 0x8F, 0xE7, 0x72, 0xD9, 0xFE, 0x3C, 0x93, - 0xDD, 0xF3, 0xC4, 0x54, 0x5A, 0xB5, 0xA9, 0x9B - }, - { - 0xAD, 0xE5, 0xEA, 0xA7, 0xE6, 0x1F, 0x67, 0x2D, - 0x58, 0x7E, 0xA0, 0x3D, 0xAE, 0x7D, 0x7B, 0x55, - 0x22, 0x9C, 0x01, 0xD0, 0x6B, 0xC0, 0xA5, 0x70, - 0x14, 0x36, 0xCB, 0xD1, 0x83, 0x66, 0xA6, 0x26 - }, - { - 0x01, 0x3B, 0x31, 0xEB, 0xD2, 0x28, 0xFC, 0xDD, - 0xA5, 0x1F, 0xAB, 0xB0, 0x3B, 0xB0, 0x2D, 0x60, - 0xAC, 0x20, 0xCA, 0x21, 0x5A, 0xAF, 0xA8, 0x3B, - 0xDD, 0x85, 0x5E, 0x37, 0x55, 0xA3, 0x5F, 0x0B - }, - { - 0x33, 0x2E, 0xD4, 0x0B, 0xB1, 0x0D, 0xDE, 0x3C, - 0x95, 0x4A, 0x75, 0xD7, 0xB8, 0x99, 0x9D, 0x4B, - 0x26, 0xA1, 0xC0, 0x63, 0xC1, 0xDC, 0x6E, 0x32, - 0xC1, 0xD9, 0x1B, 0xAB, 0x7B, 0xBB, 0x7D, 0x16 - }, - { - 0xC7, 0xA1, 0x97, 0xB3, 0xA0, 0x5B, 0x56, 0x6B, - 0xCC, 0x9F, 0xAC, 0xD2, 0x0E, 0x44, 0x1D, 0x6F, - 0x6C, 0x28, 0x60, 0xAC, 0x96, 0x51, 0xCD, 0x51, - 0xD6, 0xB9, 0xD2, 0xCD, 0xEE, 0xEA, 0x03, 0x90 - }, - { - 0xBD, 0x9C, 0xF6, 0x4E, 0xA8, 0x95, 0x3C, 0x03, - 0x71, 0x08, 0xE6, 0xF6, 0x54, 0x91, 0x4F, 0x39, - 0x58, 0xB6, 0x8E, 0x29, 0xC1, 0x67, 0x00, 0xDC, - 0x18, 0x4D, 0x94, 0xA2, 0x17, 0x08, 0xFF, 0x60 - }, - { - 0x88, 0x35, 0xB0, 0xAC, 0x02, 0x11, 0x51, 0xDF, - 0x71, 0x64, 0x74, 0xCE, 0x27, 0xCE, 0x4D, 0x3C, - 0x15, 0xF0, 0xB2, 0xDA, 0xB4, 0x80, 0x03, 0xCF, - 0x3F, 0x3E, 0xFD, 0x09, 0x45, 0x10, 0x6B, 0x9A - }, - { - 0x3B, 0xFE, 0xFA, 0x33, 0x01, 0xAA, 0x55, 0xC0, - 0x80, 0x19, 0x0C, 0xFF, 0xDA, 0x8E, 0xAE, 0x51, - 0xD9, 0xAF, 0x48, 0x8B, 0x4C, 0x1F, 0x24, 0xC3, - 0xD9, 0xA7, 0x52, 0x42, 0xFD, 0x8E, 0xA0, 0x1D - }, - { - 0x08, 0x28, 0x4D, 0x14, 0x99, 0x3C, 0xD4, 0x7D, - 0x53, 0xEB, 0xAE, 0xCF, 0x0D, 0xF0, 0x47, 0x8C, - 0xC1, 0x82, 0xC8, 0x9C, 0x00, 0xE1, 0x85, 0x9C, - 0x84, 0x85, 0x16, 0x86, 0xDD, 0xF2, 0xC1, 0xB7 - }, - { - 0x1E, 0xD7, 0xEF, 0x9F, 0x04, 0xC2, 0xAC, 0x8D, - 0xB6, 0xA8, 0x64, 0xDB, 0x13, 0x10, 0x87, 0xF2, - 0x70, 0x65, 0x09, 0x8E, 0x69, 0xC3, 0xFE, 0x78, - 0x71, 0x8D, 0x9B, 0x94, 0x7F, 0x4A, 0x39, 0xD0 - }, - { - 0xC1, 0x61, 0xF2, 0xDC, 0xD5, 0x7E, 0x9C, 0x14, - 0x39, 0xB3, 0x1A, 0x9D, 0xD4, 0x3D, 0x8F, 0x3D, - 0x7D, 0xD8, 0xF0, 0xEB, 0x7C, 0xFA, 0xC6, 0xFB, - 0x25, 0xA0, 0xF2, 0x8E, 0x30, 0x6F, 0x06, 0x61 - }, - { - 0xC0, 0x19, 0x69, 0xAD, 0x34, 0xC5, 0x2C, 0xAF, - 0x3D, 0xC4, 0xD8, 0x0D, 0x19, 0x73, 0x5C, 0x29, - 0x73, 0x1A, 0xC6, 0xE7, 0xA9, 0x20, 0x85, 0xAB, - 0x92, 0x50, 0xC4, 0x8D, 0xEA, 0x48, 0xA3, 0xFC - }, - { - 0x17, 0x20, 0xB3, 0x65, 0x56, 0x19, 0xD2, 0xA5, - 0x2B, 0x35, 0x21, 0xAE, 0x0E, 0x49, 0xE3, 0x45, - 0xCB, 0x33, 0x89, 0xEB, 0xD6, 0x20, 0x8A, 0xCA, - 0xF9, 0xF1, 0x3F, 0xDA, 0xCC, 0xA8, 0xBE, 0x49 - }, - { - 0x75, 0x62, 0x88, 0x36, 0x1C, 0x83, 0xE2, 0x4C, - 0x61, 0x7C, 0xF9, 0x5C, 0x90, 0x5B, 0x22, 0xD0, - 0x17, 0xCD, 0xC8, 0x6F, 0x0B, 0xF1, 0xD6, 0x58, - 0xF4, 0x75, 0x6C, 0x73, 0x79, 0x87, 0x3B, 0x7F - }, - { - 0xE7, 0xD0, 0xED, 0xA3, 0x45, 0x26, 0x93, 0xB7, - 0x52, 0xAB, 0xCD, 0xA1, 0xB5, 0x5E, 0x27, 0x6F, - 0x82, 0x69, 0x8F, 0x5F, 0x16, 0x05, 0x40, 0x3E, - 0xFF, 0x83, 0x0B, 0xEA, 0x00, 0x71, 0xA3, 0x94 - }, - { - 0x2C, 0x82, 0xEC, 0xAA, 0x6B, 0x84, 0x80, 0x3E, - 0x04, 0x4A, 0xF6, 0x31, 0x18, 0xAF, 0xE5, 0x44, - 0x68, 0x7C, 0xB6, 0xE6, 0xC7, 0xDF, 0x49, 0xED, - 0x76, 0x2D, 0xFD, 0x7C, 0x86, 0x93, 0xA1, 0xBC - }, - { - 0x61, 0x36, 0xCB, 0xF4, 0xB4, 0x41, 0x05, 0x6F, - 0xA1, 0xE2, 0x72, 0x24, 0x98, 0x12, 0x5D, 0x6D, - 0xED, 0x45, 0xE1, 0x7B, 0x52, 0x14, 0x39, 0x59, - 0xC7, 0xF4, 0xD4, 0xE3, 0x95, 0x21, 0x8A, 0xC2 - }, - { - 0x72, 0x1D, 0x32, 0x45, 0xAA, 0xFE, 0xF2, 0x7F, - 0x6A, 0x62, 0x4F, 0x47, 0x95, 0x4B, 0x6C, 0x25, - 0x50, 0x79, 0x52, 0x6F, 0xFA, 0x25, 0xE9, 0xFF, - 0x77, 0xE5, 0xDC, 0xFF, 0x47, 0x3B, 0x15, 0x97 - }, - { - 0x9D, 0xD2, 0xFB, 0xD8, 0xCE, 0xF1, 0x6C, 0x35, - 0x3C, 0x0A, 0xC2, 0x11, 0x91, 0xD5, 0x09, 0xEB, - 0x28, 0xDD, 0x9E, 0x3E, 0x0D, 0x8C, 0xEA, 0x5D, - 0x26, 0xCA, 0x83, 0x93, 0x93, 0x85, 0x1C, 0x3A - }, - { - 0xB2, 0x39, 0x4C, 0xEA, 0xCD, 0xEB, 0xF2, 0x1B, - 0xF9, 0xDF, 0x2C, 0xED, 0x98, 0xE5, 0x8F, 0x1C, - 0x3A, 0x4B, 0xBB, 0xFF, 0x66, 0x0D, 0xD9, 0x00, - 0xF6, 0x22, 0x02, 0xD6, 0x78, 0x5C, 0xC4, 0x6E - }, - { - 0x57, 0x08, 0x9F, 0x22, 0x27, 0x49, 0xAD, 0x78, - 0x71, 0x76, 0x5F, 0x06, 0x2B, 0x11, 0x4F, 0x43, - 0xBA, 0x20, 0xEC, 0x56, 0x42, 0x2A, 0x8B, 0x1E, - 0x3F, 0x87, 0x19, 0x2C, 0x0E, 0xA7, 0x18, 0xC6 - }, - { - 0xE4, 0x9A, 0x94, 0x59, 0x96, 0x1C, 0xD3, 0x3C, - 0xDF, 0x4A, 0xAE, 0x1B, 0x10, 0x78, 0xA5, 0xDE, - 0xA7, 0xC0, 0x40, 0xE0, 0xFE, 0xA3, 0x40, 0xC9, - 0x3A, 0x72, 0x48, 0x72, 0xFC, 0x4A, 0xF8, 0x06 - }, - { - 0xED, 0xE6, 0x7F, 0x72, 0x0E, 0xFF, 0xD2, 0xCA, - 0x9C, 0x88, 0x99, 0x41, 0x52, 0xD0, 0x20, 0x1D, - 0xEE, 0x6B, 0x0A, 0x2D, 0x2C, 0x07, 0x7A, 0xCA, - 0x6D, 0xAE, 0x29, 0xF7, 0x3F, 0x8B, 0x63, 0x09 - }, - { - 0xE0, 0xF4, 0x34, 0xBF, 0x22, 0xE3, 0x08, 0x80, - 0x39, 0xC2, 0x1F, 0x71, 0x9F, 0xFC, 0x67, 0xF0, - 0xF2, 0xCB, 0x5E, 0x98, 0xA7, 0xA0, 0x19, 0x4C, - 0x76, 0xE9, 0x6B, 0xF4, 0xE8, 0xE1, 0x7E, 0x61 - }, - { - 0x27, 0x7C, 0x04, 0xE2, 0x85, 0x34, 0x84, 0xA4, - 0xEB, 0xA9, 0x10, 0xAD, 0x33, 0x6D, 0x01, 0xB4, - 0x77, 0xB6, 0x7C, 0xC2, 0x00, 0xC5, 0x9F, 0x3C, - 0x8D, 0x77, 0xEE, 0xF8, 0x49, 0x4F, 0x29, 0xCD - }, - { - 0x15, 0x6D, 0x57, 0x47, 0xD0, 0xC9, 0x9C, 0x7F, - 0x27, 0x09, 0x7D, 0x7B, 0x7E, 0x00, 0x2B, 0x2E, - 0x18, 0x5C, 0xB7, 0x2D, 0x8D, 0xD7, 0xEB, 0x42, - 0x4A, 0x03, 0x21, 0x52, 0x81, 0x61, 0x21, 0x9F - }, - { - 0x20, 0xDD, 0xD1, 0xED, 0x9B, 0x1C, 0xA8, 0x03, - 0x94, 0x6D, 0x64, 0xA8, 0x3A, 0xE4, 0x65, 0x9D, - 0xA6, 0x7F, 0xBA, 0x7A, 0x1A, 0x3E, 0xDD, 0xB1, - 0xE1, 0x03, 0xC0, 0xF5, 0xE0, 0x3E, 0x3A, 0x2C - }, - { - 0xF0, 0xAF, 0x60, 0x4D, 0x3D, 0xAB, 0xBF, 0x9A, - 0x0F, 0x2A, 0x7D, 0x3D, 0xDA, 0x6B, 0xD3, 0x8B, - 0xBA, 0x72, 0xC6, 0xD0, 0x9B, 0xE4, 0x94, 0xFC, - 0xEF, 0x71, 0x3F, 0xF1, 0x01, 0x89, 0xB6, 0xE6 - }, - { - 0x98, 0x02, 0xBB, 0x87, 0xDE, 0xF4, 0xCC, 0x10, - 0xC4, 0xA5, 0xFD, 0x49, 0xAA, 0x58, 0xDF, 0xE2, - 0xF3, 0xFD, 0xDB, 0x46, 0xB4, 0x70, 0x88, 0x14, - 0xEA, 0xD8, 0x1D, 0x23, 0xBA, 0x95, 0x13, 0x9B - }, - { - 0x4F, 0x8C, 0xE1, 0xE5, 0x1D, 0x2F, 0xE7, 0xF2, - 0x40, 0x43, 0xA9, 0x04, 0xD8, 0x98, 0xEB, 0xFC, - 0x91, 0x97, 0x54, 0x18, 0x75, 0x34, 0x13, 0xAA, - 0x09, 0x9B, 0x79, 0x5E, 0xCB, 0x35, 0xCE, 0xDB - }, - { - 0xBD, 0xDC, 0x65, 0x14, 0xD7, 0xEE, 0x6A, 0xCE, - 0x0A, 0x4A, 0xC1, 0xD0, 0xE0, 0x68, 0x11, 0x22, - 0x88, 0xCB, 0xCF, 0x56, 0x04, 0x54, 0x64, 0x27, - 0x05, 0x63, 0x01, 0x77, 0xCB, 0xA6, 0x08, 0xBD - }, - { - 0xD6, 0x35, 0x99, 0x4F, 0x62, 0x91, 0x51, 0x7B, - 0x02, 0x81, 0xFF, 0xDD, 0x49, 0x6A, 0xFA, 0x86, - 0x27, 0x12, 0xE5, 0xB3, 0xC4, 0xE5, 0x2E, 0x4C, - 0xD5, 0xFD, 0xAE, 0x8C, 0x0E, 0x72, 0xFB, 0x08 - }, - { - 0x87, 0x8D, 0x9C, 0xA6, 0x00, 0xCF, 0x87, 0xE7, - 0x69, 0xCC, 0x30, 0x5C, 0x1B, 0x35, 0x25, 0x51, - 0x86, 0x61, 0x5A, 0x73, 0xA0, 0xDA, 0x61, 0x3B, - 0x5F, 0x1C, 0x98, 0xDB, 0xF8, 0x12, 0x83, 0xEA - }, - { - 0xA6, 0x4E, 0xBE, 0x5D, 0xC1, 0x85, 0xDE, 0x9F, - 0xDD, 0xE7, 0x60, 0x7B, 0x69, 0x98, 0x70, 0x2E, - 0xB2, 0x34, 0x56, 0x18, 0x49, 0x57, 0x30, 0x7D, - 0x2F, 0xA7, 0x2E, 0x87, 0xA4, 0x77, 0x02, 0xD6 - }, - { - 0xCE, 0x50, 0xEA, 0xB7, 0xB5, 0xEB, 0x52, 0xBD, - 0xC9, 0xAD, 0x8E, 0x5A, 0x48, 0x0A, 0xB7, 0x80, - 0xCA, 0x93, 0x20, 0xE4, 0x43, 0x60, 0xB1, 0xFE, - 0x37, 0xE0, 0x3F, 0x2F, 0x7A, 0xD7, 0xDE, 0x01 - }, - { - 0xEE, 0xDD, 0xB7, 0xC0, 0xDB, 0x6E, 0x30, 0xAB, - 0xE6, 0x6D, 0x79, 0xE3, 0x27, 0x51, 0x1E, 0x61, - 0xFC, 0xEB, 0xBC, 0x29, 0xF1, 0x59, 0xB4, 0x0A, - 0x86, 0xB0, 0x46, 0xEC, 0xF0, 0x51, 0x38, 0x23 - }, - { - 0x78, 0x7F, 0xC9, 0x34, 0x40, 0xC1, 0xEC, 0x96, - 0xB5, 0xAD, 0x01, 0xC1, 0x6C, 0xF7, 0x79, 0x16, - 0xA1, 0x40, 0x5F, 0x94, 0x26, 0x35, 0x6E, 0xC9, - 0x21, 0xD8, 0xDF, 0xF3, 0xEA, 0x63, 0xB7, 0xE0 - }, - { - 0x7F, 0x0D, 0x5E, 0xAB, 0x47, 0xEE, 0xFD, 0xA6, - 0x96, 0xC0, 0xBF, 0x0F, 0xBF, 0x86, 0xAB, 0x21, - 0x6F, 0xCE, 0x46, 0x1E, 0x93, 0x03, 0xAB, 0xA6, - 0xAC, 0x37, 0x41, 0x20, 0xE8, 0x90, 0xE8, 0xDF - }, - { - 0xB6, 0x80, 0x04, 0xB4, 0x2F, 0x14, 0xAD, 0x02, - 0x9F, 0x4C, 0x2E, 0x03, 0xB1, 0xD5, 0xEB, 0x76, - 0xD5, 0x71, 0x60, 0xE2, 0x64, 0x76, 0xD2, 0x11, - 0x31, 0xBE, 0xF2, 0x0A, 0xDA, 0x7D, 0x27, 0xF4 - }, - { - 0xB0, 0xC4, 0xEB, 0x18, 0xAE, 0x25, 0x0B, 0x51, - 0xA4, 0x13, 0x82, 0xEA, 0xD9, 0x2D, 0x0D, 0xC7, - 0x45, 0x5F, 0x93, 0x79, 0xFC, 0x98, 0x84, 0x42, - 0x8E, 0x47, 0x70, 0x60, 0x8D, 0xB0, 0xFA, 0xEC - }, - { - 0xF9, 0x2B, 0x7A, 0x87, 0x0C, 0x05, 0x9F, 0x4D, - 0x46, 0x46, 0x4C, 0x82, 0x4E, 0xC9, 0x63, 0x55, - 0x14, 0x0B, 0xDC, 0xE6, 0x81, 0x32, 0x2C, 0xC3, - 0xA9, 0x92, 0xFF, 0x10, 0x3E, 0x3F, 0xEA, 0x52 - }, - { - 0x53, 0x64, 0x31, 0x26, 0x14, 0x81, 0x33, 0x98, - 0xCC, 0x52, 0x5D, 0x4C, 0x4E, 0x14, 0x6E, 0xDE, - 0xB3, 0x71, 0x26, 0x5F, 0xBA, 0x19, 0x13, 0x3A, - 0x2C, 0x3D, 0x21, 0x59, 0x29, 0x8A, 0x17, 0x42 - }, - { - 0xF6, 0x62, 0x0E, 0x68, 0xD3, 0x7F, 0xB2, 0xAF, - 0x50, 0x00, 0xFC, 0x28, 0xE2, 0x3B, 0x83, 0x22, - 0x97, 0xEC, 0xD8, 0xBC, 0xE9, 0x9E, 0x8B, 0xE4, - 0xD0, 0x4E, 0x85, 0x30, 0x9E, 0x3D, 0x33, 0x74 - }, - { - 0x53, 0x16, 0xA2, 0x79, 0x69, 0xD7, 0xFE, 0x04, - 0xFF, 0x27, 0xB2, 0x83, 0x96, 0x1B, 0xFF, 0xC3, - 0xBF, 0x5D, 0xFB, 0x32, 0xFB, 0x6A, 0x89, 0xD1, - 0x01, 0xC6, 0xC3, 0xB1, 0x93, 0x7C, 0x28, 0x71 - }, - { - 0x81, 0xD1, 0x66, 0x4F, 0xDF, 0x3C, 0xB3, 0x3C, - 0x24, 0xEE, 0xBA, 0xC0, 0xBD, 0x64, 0x24, 0x4B, - 0x77, 0xC4, 0xAB, 0xEA, 0x90, 0xBB, 0xE8, 0xB5, - 0xEE, 0x0B, 0x2A, 0xAF, 0xCF, 0x2D, 0x6A, 0x53 - }, - { - 0x34, 0x57, 0x82, 0xF2, 0x95, 0xB0, 0x88, 0x03, - 0x52, 0xE9, 0x24, 0xA0, 0x46, 0x7B, 0x5F, 0xBC, - 0x3E, 0x8F, 0x3B, 0xFB, 0xC3, 0xC7, 0xE4, 0x8B, - 0x67, 0x09, 0x1F, 0xB5, 0xE8, 0x0A, 0x94, 0x42 - }, - { - 0x79, 0x41, 0x11, 0xEA, 0x6C, 0xD6, 0x5E, 0x31, - 0x1F, 0x74, 0xEE, 0x41, 0xD4, 0x76, 0xCB, 0x63, - 0x2C, 0xE1, 0xE4, 0xB0, 0x51, 0xDC, 0x1D, 0x9E, - 0x9D, 0x06, 0x1A, 0x19, 0xE1, 0xD0, 0xBB, 0x49 - }, - { - 0x2A, 0x85, 0xDA, 0xF6, 0x13, 0x88, 0x16, 0xB9, - 0x9B, 0xF8, 0xD0, 0x8B, 0xA2, 0x11, 0x4B, 0x7A, - 0xB0, 0x79, 0x75, 0xA7, 0x84, 0x20, 0xC1, 0xA3, - 0xB0, 0x6A, 0x77, 0x7C, 0x22, 0xDD, 0x8B, 0xCB - }, - { - 0x89, 0xB0, 0xD5, 0xF2, 0x89, 0xEC, 0x16, 0x40, - 0x1A, 0x06, 0x9A, 0x96, 0x0D, 0x0B, 0x09, 0x3E, - 0x62, 0x5D, 0xA3, 0xCF, 0x41, 0xEE, 0x29, 0xB5, - 0x9B, 0x93, 0x0C, 0x58, 0x20, 0x14, 0x54, 0x55 - }, - { - 0xD0, 0xFD, 0xCB, 0x54, 0x39, 0x43, 0xFC, 0x27, - 0xD2, 0x08, 0x64, 0xF5, 0x21, 0x81, 0x47, 0x1B, - 0x94, 0x2C, 0xC7, 0x7C, 0xA6, 0x75, 0xBC, 0xB3, - 0x0D, 0xF3, 0x1D, 0x35, 0x8E, 0xF7, 0xB1, 0xEB - }, - { - 0xB1, 0x7E, 0xA8, 0xD7, 0x70, 0x63, 0xC7, 0x09, - 0xD4, 0xDC, 0x6B, 0x87, 0x94, 0x13, 0xC3, 0x43, - 0xE3, 0x79, 0x0E, 0x9E, 0x62, 0xCA, 0x85, 0xB7, - 0x90, 0x0B, 0x08, 0x6F, 0x6B, 0x75, 0xC6, 0x72 - }, - { - 0xE7, 0x1A, 0x3E, 0x2C, 0x27, 0x4D, 0xB8, 0x42, - 0xD9, 0x21, 0x14, 0xF2, 0x17, 0xE2, 0xC0, 0xEA, - 0xC8, 0xB4, 0x50, 0x93, 0xFD, 0xFD, 0x9D, 0xF4, - 0xCA, 0x71, 0x62, 0x39, 0x48, 0x62, 0xD5, 0x01 - }, - { - 0xC0, 0x47, 0x67, 0x59, 0xAB, 0x7A, 0xA3, 0x33, - 0x23, 0x4F, 0x6B, 0x44, 0xF5, 0xFD, 0x85, 0x83, - 0x90, 0xEC, 0x23, 0x69, 0x4C, 0x62, 0x2C, 0xB9, - 0x86, 0xE7, 0x69, 0xC7, 0x8E, 0xDD, 0x73, 0x3E - }, - { - 0x9A, 0xB8, 0xEA, 0xBB, 0x14, 0x16, 0x43, 0x4D, - 0x85, 0x39, 0x13, 0x41, 0xD5, 0x69, 0x93, 0xC5, - 0x54, 0x58, 0x16, 0x7D, 0x44, 0x18, 0xB1, 0x9A, - 0x0F, 0x2A, 0xD8, 0xB7, 0x9A, 0x83, 0xA7, 0x5B - }, - { - 0x79, 0x92, 0xD0, 0xBB, 0xB1, 0x5E, 0x23, 0x82, - 0x6F, 0x44, 0x3E, 0x00, 0x50, 0x5D, 0x68, 0xD3, - 0xED, 0x73, 0x72, 0x99, 0x5A, 0x5C, 0x3E, 0x49, - 0x86, 0x54, 0x10, 0x2F, 0xBC, 0xD0, 0x96, 0x4E - }, - { - 0xC0, 0x21, 0xB3, 0x00, 0x85, 0x15, 0x14, 0x35, - 0xDF, 0x33, 0xB0, 0x07, 0xCC, 0xEC, 0xC6, 0x9D, - 0xF1, 0x26, 0x9F, 0x39, 0xBA, 0x25, 0x09, 0x2B, - 0xED, 0x59, 0xD9, 0x32, 0xAC, 0x0F, 0xDC, 0x28 - }, - { - 0x91, 0xA2, 0x5E, 0xC0, 0xEC, 0x0D, 0x9A, 0x56, - 0x7F, 0x89, 0xC4, 0xBF, 0xE1, 0xA6, 0x5A, 0x0E, - 0x43, 0x2D, 0x07, 0x06, 0x4B, 0x41, 0x90, 0xE2, - 0x7D, 0xFB, 0x81, 0x90, 0x1F, 0xD3, 0x13, 0x9B - }, - { - 0x59, 0x50, 0xD3, 0x9A, 0x23, 0xE1, 0x54, 0x5F, - 0x30, 0x12, 0x70, 0xAA, 0x1A, 0x12, 0xF2, 0xE6, - 0xC4, 0x53, 0x77, 0x6E, 0x4D, 0x63, 0x55, 0xDE, - 0x42, 0x5C, 0xC1, 0x53, 0xF9, 0x81, 0x88, 0x67 - }, - { - 0xD7, 0x9F, 0x14, 0x72, 0x0C, 0x61, 0x0A, 0xF1, - 0x79, 0xA3, 0x76, 0x5D, 0x4B, 0x7C, 0x09, 0x68, - 0xF9, 0x77, 0x96, 0x2D, 0xBF, 0x65, 0x5B, 0x52, - 0x12, 0x72, 0xB6, 0xF1, 0xE1, 0x94, 0x48, 0x8E - }, - { - 0xE9, 0x53, 0x1B, 0xFC, 0x8B, 0x02, 0x99, 0x5A, - 0xEA, 0xA7, 0x5B, 0xA2, 0x70, 0x31, 0xFA, 0xDB, - 0xCB, 0xF4, 0xA0, 0xDA, 0xB8, 0x96, 0x1D, 0x92, - 0x96, 0xCD, 0x7E, 0x84, 0xD2, 0x5D, 0x60, 0x06 - }, - { - 0x34, 0xE9, 0xC2, 0x6A, 0x01, 0xD7, 0xF1, 0x61, - 0x81, 0xB4, 0x54, 0xA9, 0xD1, 0x62, 0x3C, 0x23, - 0x3C, 0xB9, 0x9D, 0x31, 0xC6, 0x94, 0x65, 0x6E, - 0x94, 0x13, 0xAC, 0xA3, 0xE9, 0x18, 0x69, 0x2F - }, - { - 0xD9, 0xD7, 0x42, 0x2F, 0x43, 0x7B, 0xD4, 0x39, - 0xDD, 0xD4, 0xD8, 0x83, 0xDA, 0xE2, 0xA0, 0x83, - 0x50, 0x17, 0x34, 0x14, 0xBE, 0x78, 0x15, 0x51, - 0x33, 0xFF, 0xF1, 0x96, 0x4C, 0x3D, 0x79, 0x72 - }, - { - 0x4A, 0xEE, 0x0C, 0x7A, 0xAF, 0x07, 0x54, 0x14, - 0xFF, 0x17, 0x93, 0xEA, 0xD7, 0xEA, 0xCA, 0x60, - 0x17, 0x75, 0xC6, 0x15, 0xDB, 0xD6, 0x0B, 0x64, - 0x0B, 0x0A, 0x9F, 0x0C, 0xE5, 0x05, 0xD4, 0x35 - }, - { - 0x6B, 0xFD, 0xD1, 0x54, 0x59, 0xC8, 0x3B, 0x99, - 0xF0, 0x96, 0xBF, 0xB4, 0x9E, 0xE8, 0x7B, 0x06, - 0x3D, 0x69, 0xC1, 0x97, 0x4C, 0x69, 0x28, 0xAC, - 0xFC, 0xFB, 0x40, 0x99, 0xF8, 0xC4, 0xEF, 0x67 - }, - { - 0x9F, 0xD1, 0xC4, 0x08, 0xFD, 0x75, 0xC3, 0x36, - 0x19, 0x3A, 0x2A, 0x14, 0xD9, 0x4F, 0x6A, 0xF5, - 0xAD, 0xF0, 0x50, 0xB8, 0x03, 0x87, 0xB4, 0xB0, - 0x10, 0xFB, 0x29, 0xF4, 0xCC, 0x72, 0x70, 0x7C - }, - { - 0x13, 0xC8, 0x84, 0x80, 0xA5, 0xD0, 0x0D, 0x6C, - 0x8C, 0x7A, 0xD2, 0x11, 0x0D, 0x76, 0xA8, 0x2D, - 0x9B, 0x70, 0xF4, 0xFA, 0x66, 0x96, 0xD4, 0xE5, - 0xDD, 0x42, 0xA0, 0x66, 0xDC, 0xAF, 0x99, 0x20 - }, - { - 0x82, 0x0E, 0x72, 0x5E, 0xE2, 0x5F, 0xE8, 0xFD, - 0x3A, 0x8D, 0x5A, 0xBE, 0x4C, 0x46, 0xC3, 0xBA, - 0x88, 0x9D, 0xE6, 0xFA, 0x91, 0x91, 0xAA, 0x22, - 0xBA, 0x67, 0xD5, 0x70, 0x54, 0x21, 0x54, 0x2B - }, - { - 0x32, 0xD9, 0x3A, 0x0E, 0xB0, 0x2F, 0x42, 0xFB, - 0xBC, 0xAF, 0x2B, 0xAD, 0x00, 0x85, 0xB2, 0x82, - 0xE4, 0x60, 0x46, 0xA4, 0xDF, 0x7A, 0xD1, 0x06, - 0x57, 0xC9, 0xD6, 0x47, 0x63, 0x75, 0xB9, 0x3E - }, - { - 0xAD, 0xC5, 0x18, 0x79, 0x05, 0xB1, 0x66, 0x9C, - 0xD8, 0xEC, 0x9C, 0x72, 0x1E, 0x19, 0x53, 0x78, - 0x6B, 0x9D, 0x89, 0xA9, 0xBA, 0xE3, 0x07, 0x80, - 0xF1, 0xE1, 0xEA, 0xB2, 0x4A, 0x00, 0x52, 0x3C - }, - { - 0xE9, 0x07, 0x56, 0xFF, 0x7F, 0x9A, 0xD8, 0x10, - 0xB2, 0x39, 0xA1, 0x0C, 0xED, 0x2C, 0xF9, 0xB2, - 0x28, 0x43, 0x54, 0xC1, 0xF8, 0xC7, 0xE0, 0xAC, - 0xCC, 0x24, 0x61, 0xDC, 0x79, 0x6D, 0x6E, 0x89 - }, - { - 0x12, 0x51, 0xF7, 0x6E, 0x56, 0x97, 0x84, 0x81, - 0x87, 0x53, 0x59, 0x80, 0x1D, 0xB5, 0x89, 0xA0, - 0xB2, 0x2F, 0x86, 0xD8, 0xD6, 0x34, 0xDC, 0x04, - 0x50, 0x6F, 0x32, 0x2E, 0xD7, 0x8F, 0x17, 0xE8 - }, - { - 0x3A, 0xFA, 0x89, 0x9F, 0xD9, 0x80, 0xE7, 0x3E, - 0xCB, 0x7F, 0x4D, 0x8B, 0x8F, 0x29, 0x1D, 0xC9, - 0xAF, 0x79, 0x6B, 0xC6, 0x5D, 0x27, 0xF9, 0x74, - 0xC6, 0xF1, 0x93, 0xC9, 0x19, 0x1A, 0x09, 0xFD - }, - { - 0xAA, 0x30, 0x5B, 0xE2, 0x6E, 0x5D, 0xED, 0xDC, - 0x3C, 0x10, 0x10, 0xCB, 0xC2, 0x13, 0xF9, 0x5F, - 0x05, 0x1C, 0x78, 0x5C, 0x5B, 0x43, 0x1E, 0x6A, - 0x7C, 0xD0, 0x48, 0xF1, 0x61, 0x78, 0x75, 0x28 - }, - { - 0x8E, 0xA1, 0x88, 0x4F, 0xF3, 0x2E, 0x9D, 0x10, - 0xF0, 0x39, 0xB4, 0x07, 0xD0, 0xD4, 0x4E, 0x7E, - 0x67, 0x0A, 0xBD, 0x88, 0x4A, 0xEE, 0xE0, 0xFB, - 0x75, 0x7A, 0xE9, 0x4E, 0xAA, 0x97, 0x37, 0x3D - }, - { - 0xD4, 0x82, 0xB2, 0x15, 0x5D, 0x4D, 0xEC, 0x6B, - 0x47, 0x36, 0xA1, 0xF1, 0x61, 0x7B, 0x53, 0xAA, - 0xA3, 0x73, 0x10, 0x27, 0x7D, 0x3F, 0xEF, 0x0C, - 0x37, 0xAD, 0x41, 0x76, 0x8F, 0xC2, 0x35, 0xB4 - }, - { - 0x4D, 0x41, 0x39, 0x71, 0x38, 0x7E, 0x7A, 0x88, - 0x98, 0xA8, 0xDC, 0x2A, 0x27, 0x50, 0x07, 0x78, - 0x53, 0x9E, 0xA2, 0x14, 0xA2, 0xDF, 0xE9, 0xB3, - 0xD7, 0xE8, 0xEB, 0xDC, 0xE5, 0xCF, 0x3D, 0xB3 - }, - { - 0x69, 0x6E, 0x5D, 0x46, 0xE6, 0xC5, 0x7E, 0x87, - 0x96, 0xE4, 0x73, 0x5D, 0x08, 0x91, 0x6E, 0x0B, - 0x79, 0x29, 0xB3, 0xCF, 0x29, 0x8C, 0x29, 0x6D, - 0x22, 0xE9, 0xD3, 0x01, 0x96, 0x53, 0x37, 0x1C - }, - { - 0x1F, 0x56, 0x47, 0xC1, 0xD3, 0xB0, 0x88, 0x22, - 0x88, 0x85, 0x86, 0x5C, 0x89, 0x40, 0x90, 0x8B, - 0xF4, 0x0D, 0x1A, 0x82, 0x72, 0x82, 0x19, 0x73, - 0xB1, 0x60, 0x00, 0x8E, 0x7A, 0x3C, 0xE2, 0xEB - }, - { - 0xB6, 0xE7, 0x6C, 0x33, 0x0F, 0x02, 0x1A, 0x5B, - 0xDA, 0x65, 0x87, 0x50, 0x10, 0xB0, 0xED, 0xF0, - 0x91, 0x26, 0xC0, 0xF5, 0x10, 0xEA, 0x84, 0x90, - 0x48, 0x19, 0x20, 0x03, 0xAE, 0xF4, 0xC6, 0x1C - }, - { - 0x3C, 0xD9, 0x52, 0xA0, 0xBE, 0xAD, 0xA4, 0x1A, - 0xBB, 0x42, 0x4C, 0xE4, 0x7F, 0x94, 0xB4, 0x2B, - 0xE6, 0x4E, 0x1F, 0xFB, 0x0F, 0xD0, 0x78, 0x22, - 0x76, 0x80, 0x79, 0x46, 0xD0, 0xD0, 0xBC, 0x55 - }, - { - 0x98, 0xD9, 0x26, 0x77, 0x43, 0x9B, 0x41, 0xB7, - 0xBB, 0x51, 0x33, 0x12, 0xAF, 0xB9, 0x2B, 0xCC, - 0x8E, 0xE9, 0x68, 0xB2, 0xE3, 0xB2, 0x38, 0xCE, - 0xCB, 0x9B, 0x0F, 0x34, 0xC9, 0xBB, 0x63, 0xD0 - }, - { - 0xEC, 0xBC, 0xA2, 0xCF, 0x08, 0xAE, 0x57, 0xD5, - 0x17, 0xAD, 0x16, 0x15, 0x8A, 0x32, 0xBF, 0xA7, - 0xDC, 0x03, 0x82, 0xEA, 0xED, 0xA1, 0x28, 0xE9, - 0x18, 0x86, 0x73, 0x4C, 0x24, 0xA0, 0xB2, 0x9D - }, - { - 0x94, 0x2C, 0xC7, 0xC0, 0xB5, 0x2E, 0x2B, 0x16, - 0xA4, 0xB8, 0x9F, 0xA4, 0xFC, 0x7E, 0x0B, 0xF6, - 0x09, 0xE2, 0x9A, 0x08, 0xC1, 0xA8, 0x54, 0x34, - 0x52, 0xB7, 0x7C, 0x7B, 0xFD, 0x11, 0xBB, 0x28 - }, - { - 0x8A, 0x06, 0x5D, 0x8B, 0x61, 0xA0, 0xDF, 0xFB, - 0x17, 0x0D, 0x56, 0x27, 0x73, 0x5A, 0x76, 0xB0, - 0xE9, 0x50, 0x60, 0x37, 0x80, 0x8C, 0xBA, 0x16, - 0xC3, 0x45, 0x00, 0x7C, 0x9F, 0x79, 0xCF, 0x8F - }, - { - 0x1B, 0x9F, 0xA1, 0x97, 0x14, 0x65, 0x9C, 0x78, - 0xFF, 0x41, 0x38, 0x71, 0x84, 0x92, 0x15, 0x36, - 0x10, 0x29, 0xAC, 0x80, 0x2B, 0x1C, 0xBC, 0xD5, - 0x4E, 0x40, 0x8B, 0xD8, 0x72, 0x87, 0xF8, 0x1F - }, - { - 0x8D, 0xAB, 0x07, 0x1B, 0xCD, 0x6C, 0x72, 0x92, - 0xA9, 0xEF, 0x72, 0x7B, 0x4A, 0xE0, 0xD8, 0x67, - 0x13, 0x30, 0x1D, 0xA8, 0x61, 0x8D, 0x9A, 0x48, - 0xAD, 0xCE, 0x55, 0xF3, 0x03, 0xA8, 0x69, 0xA1 - }, - { - 0x82, 0x53, 0xE3, 0xE7, 0xC7, 0xB6, 0x84, 0xB9, - 0xCB, 0x2B, 0xEB, 0x01, 0x4C, 0xE3, 0x30, 0xFF, - 0x3D, 0x99, 0xD1, 0x7A, 0xBB, 0xDB, 0xAB, 0xE4, - 0xF4, 0xD6, 0x74, 0xDE, 0xD5, 0x3F, 0xFC, 0x6B - }, - { - 0xF1, 0x95, 0xF3, 0x21, 0xE9, 0xE3, 0xD6, 0xBD, - 0x7D, 0x07, 0x45, 0x04, 0xDD, 0x2A, 0xB0, 0xE6, - 0x24, 0x1F, 0x92, 0xE7, 0x84, 0xB1, 0xAA, 0x27, - 0x1F, 0xF6, 0x48, 0xB1, 0xCA, 0xB6, 0xD7, 0xF6 - }, - { - 0x27, 0xE4, 0xCC, 0x72, 0x09, 0x0F, 0x24, 0x12, - 0x66, 0x47, 0x6A, 0x7C, 0x09, 0x49, 0x5F, 0x2D, - 0xB1, 0x53, 0xD5, 0xBC, 0xBD, 0x76, 0x19, 0x03, - 0xEF, 0x79, 0x27, 0x5E, 0xC5, 0x6B, 0x2E, 0xD8 - }, - { - 0x89, 0x9C, 0x24, 0x05, 0x78, 0x8E, 0x25, 0xB9, - 0x9A, 0x18, 0x46, 0x35, 0x5E, 0x64, 0x6D, 0x77, - 0xCF, 0x40, 0x00, 0x83, 0x41, 0x5F, 0x7D, 0xC5, - 0xAF, 0xE6, 0x9D, 0x6E, 0x17, 0xC0, 0x00, 0x23 - }, - { - 0xA5, 0x9B, 0x78, 0xC4, 0x90, 0x57, 0x44, 0x07, - 0x6B, 0xFE, 0xE8, 0x94, 0xDE, 0x70, 0x7D, 0x4F, - 0x12, 0x0B, 0x5C, 0x68, 0x93, 0xEA, 0x04, 0x00, - 0x29, 0x7D, 0x0B, 0xB8, 0x34, 0x72, 0x76, 0x32 - }, - { - 0x59, 0xDC, 0x78, 0xB1, 0x05, 0x64, 0x97, 0x07, - 0xA2, 0xBB, 0x44, 0x19, 0xC4, 0x8F, 0x00, 0x54, - 0x00, 0xD3, 0x97, 0x3D, 0xE3, 0x73, 0x66, 0x10, - 0x23, 0x04, 0x35, 0xB1, 0x04, 0x24, 0xB2, 0x4F - }, - { - 0xC0, 0x14, 0x9D, 0x1D, 0x7E, 0x7A, 0x63, 0x53, - 0xA6, 0xD9, 0x06, 0xEF, 0xE7, 0x28, 0xF2, 0xF3, - 0x29, 0xFE, 0x14, 0xA4, 0x14, 0x9A, 0x3E, 0xA7, - 0x76, 0x09, 0xBC, 0x42, 0xB9, 0x75, 0xDD, 0xFA - }, - { - 0xA3, 0x2F, 0x24, 0x14, 0x74, 0xA6, 0xC1, 0x69, - 0x32, 0xE9, 0x24, 0x3B, 0xE0, 0xCF, 0x09, 0xBC, - 0xDC, 0x7E, 0x0C, 0xA0, 0xE7, 0xA6, 0xA1, 0xB9, - 0xB1, 0xA0, 0xF0, 0x1E, 0x41, 0x50, 0x23, 0x77 - }, - { - 0xB2, 0x39, 0xB2, 0xE4, 0xF8, 0x18, 0x41, 0x36, - 0x1C, 0x13, 0x39, 0xF6, 0x8E, 0x2C, 0x35, 0x9F, - 0x92, 0x9A, 0xF9, 0xAD, 0x9F, 0x34, 0xE0, 0x1A, - 0xAB, 0x46, 0x31, 0xAD, 0x6D, 0x55, 0x00, 0xB0 - }, - { - 0x85, 0xFB, 0x41, 0x9C, 0x70, 0x02, 0xA3, 0xE0, - 0xB4, 0xB6, 0xEA, 0x09, 0x3B, 0x4C, 0x1A, 0xC6, - 0x93, 0x66, 0x45, 0xB6, 0x5D, 0xAC, 0x5A, 0xC1, - 0x5A, 0x85, 0x28, 0xB7, 0xB9, 0x4C, 0x17, 0x54 - }, - { - 0x96, 0x19, 0x72, 0x06, 0x25, 0xF1, 0x90, 0xB9, - 0x3A, 0x3F, 0xAD, 0x18, 0x6A, 0xB3, 0x14, 0x18, - 0x96, 0x33, 0xC0, 0xD3, 0xA0, 0x1E, 0x6F, 0x9B, - 0xC8, 0xC4, 0xA8, 0xF8, 0x2F, 0x38, 0x3D, 0xBF - }, - { - 0x7D, 0x62, 0x0D, 0x90, 0xFE, 0x69, 0xFA, 0x46, - 0x9A, 0x65, 0x38, 0x38, 0x89, 0x70, 0xA1, 0xAA, - 0x09, 0xBB, 0x48, 0xA2, 0xD5, 0x9B, 0x34, 0x7B, - 0x97, 0xE8, 0xCE, 0x71, 0xF4, 0x8C, 0x7F, 0x46 - }, - { - 0x29, 0x43, 0x83, 0x56, 0x85, 0x96, 0xFB, 0x37, - 0xC7, 0x5B, 0xBA, 0xCD, 0x97, 0x9C, 0x5F, 0xF6, - 0xF2, 0x0A, 0x55, 0x6B, 0xF8, 0x87, 0x9C, 0xC7, - 0x29, 0x24, 0x85, 0x5D, 0xF9, 0xB8, 0x24, 0x0E - }, - { - 0x16, 0xB1, 0x8A, 0xB3, 0x14, 0x35, 0x9C, 0x2B, - 0x83, 0x3C, 0x1C, 0x69, 0x86, 0xD4, 0x8C, 0x55, - 0xA9, 0xFC, 0x97, 0xCD, 0xE9, 0xA3, 0xC1, 0xF1, - 0x0A, 0x31, 0x77, 0x14, 0x0F, 0x73, 0xF7, 0x38 - }, - { - 0x8C, 0xBB, 0xDD, 0x14, 0xBC, 0x33, 0xF0, 0x4C, - 0xF4, 0x58, 0x13, 0xE4, 0xA1, 0x53, 0xA2, 0x73, - 0xD3, 0x6A, 0xDA, 0xD5, 0xCE, 0x71, 0xF4, 0x99, - 0xEE, 0xB8, 0x7F, 0xB8, 0xAC, 0x63, 0xB7, 0x29 - }, - { - 0x69, 0xC9, 0xA4, 0x98, 0xDB, 0x17, 0x4E, 0xCA, - 0xEF, 0xCC, 0x5A, 0x3A, 0xC9, 0xFD, 0xED, 0xF0, - 0xF8, 0x13, 0xA5, 0xBE, 0xC7, 0x27, 0xF1, 0xE7, - 0x75, 0xBA, 0xBD, 0xEC, 0x77, 0x18, 0x81, 0x6E - }, - { - 0xB4, 0x62, 0xC3, 0xBE, 0x40, 0x44, 0x8F, 0x1D, - 0x4F, 0x80, 0x62, 0x62, 0x54, 0xE5, 0x35, 0xB0, - 0x8B, 0xC9, 0xCD, 0xCF, 0xF5, 0x99, 0xA7, 0x68, - 0x57, 0x8D, 0x4B, 0x28, 0x81, 0xA8, 0xE3, 0xF0 - }, - { - 0x55, 0x3E, 0x9D, 0x9C, 0x5F, 0x36, 0x0A, 0xC0, - 0xB7, 0x4A, 0x7D, 0x44, 0xE5, 0xA3, 0x91, 0xDA, - 0xD4, 0xCE, 0xD0, 0x3E, 0x0C, 0x24, 0x18, 0x3B, - 0x7E, 0x8E, 0xCA, 0xBD, 0xF1, 0x71, 0x5A, 0x64 - }, - { - 0x7A, 0x7C, 0x55, 0xA5, 0x6F, 0xA9, 0xAE, 0x51, - 0xE6, 0x55, 0xE0, 0x19, 0x75, 0xD8, 0xA6, 0xFF, - 0x4A, 0xE9, 0xE4, 0xB4, 0x86, 0xFC, 0xBE, 0x4E, - 0xAC, 0x04, 0x45, 0x88, 0xF2, 0x45, 0xEB, 0xEA - }, - { - 0x2A, 0xFD, 0xF3, 0xC8, 0x2A, 0xBC, 0x48, 0x67, - 0xF5, 0xDE, 0x11, 0x12, 0x86, 0xC2, 0xB3, 0xBE, - 0x7D, 0x6E, 0x48, 0x65, 0x7B, 0xA9, 0x23, 0xCF, - 0xBF, 0x10, 0x1A, 0x6D, 0xFC, 0xF9, 0xDB, 0x9A - }, - { - 0x41, 0x03, 0x7D, 0x2E, 0xDC, 0xDC, 0xE0, 0xC4, - 0x9B, 0x7F, 0xB4, 0xA6, 0xAA, 0x09, 0x99, 0xCA, - 0x66, 0x97, 0x6C, 0x74, 0x83, 0xAF, 0xE6, 0x31, - 0xD4, 0xED, 0xA2, 0x83, 0x14, 0x4F, 0x6D, 0xFC - }, - { - 0xC4, 0x46, 0x6F, 0x84, 0x97, 0xCA, 0x2E, 0xEB, - 0x45, 0x83, 0xA0, 0xB0, 0x8E, 0x9D, 0x9A, 0xC7, - 0x43, 0x95, 0x70, 0x9F, 0xDA, 0x10, 0x9D, 0x24, - 0xF2, 0xE4, 0x46, 0x21, 0x96, 0x77, 0x9C, 0x5D - }, - { - 0x75, 0xF6, 0x09, 0x33, 0x8A, 0xA6, 0x7D, 0x96, - 0x9A, 0x2A, 0xE2, 0xA2, 0x36, 0x2B, 0x2D, 0xA9, - 0xD7, 0x7C, 0x69, 0x5D, 0xFD, 0x1D, 0xF7, 0x22, - 0x4A, 0x69, 0x01, 0xDB, 0x93, 0x2C, 0x33, 0x64 - }, - { - 0x68, 0x60, 0x6C, 0xEB, 0x98, 0x9D, 0x54, 0x88, - 0xFC, 0x7C, 0xF6, 0x49, 0xF3, 0xD7, 0xC2, 0x72, - 0xEF, 0x05, 0x5D, 0xA1, 0xA9, 0x3F, 0xAE, 0xCD, - 0x55, 0xFE, 0x06, 0xF6, 0x96, 0x70, 0x98, 0xCA - }, - { - 0x44, 0x34, 0x6B, 0xDE, 0xB7, 0xE0, 0x52, 0xF6, - 0x25, 0x50, 0x48, 0xF0, 0xD9, 0xB4, 0x2C, 0x42, - 0x5B, 0xAB, 0x9C, 0x3D, 0xD2, 0x41, 0x68, 0x21, - 0x2C, 0x3E, 0xCF, 0x1E, 0xBF, 0x34, 0xE6, 0xAE - }, - { - 0x8E, 0x9C, 0xF6, 0xE1, 0xF3, 0x66, 0x47, 0x1F, - 0x2A, 0xC7, 0xD2, 0xEE, 0x9B, 0x5E, 0x62, 0x66, - 0xFD, 0xA7, 0x1F, 0x8F, 0x2E, 0x41, 0x09, 0xF2, - 0x23, 0x7E, 0xD5, 0xF8, 0x81, 0x3F, 0xC7, 0x18 - }, - { - 0x84, 0xBB, 0xEB, 0x84, 0x06, 0xD2, 0x50, 0x95, - 0x1F, 0x8C, 0x1B, 0x3E, 0x86, 0xA7, 0xC0, 0x10, - 0x08, 0x29, 0x21, 0x83, 0x3D, 0xFD, 0x95, 0x55, - 0xA2, 0xF9, 0x09, 0xB1, 0x08, 0x6E, 0xB4, 0xB8 - }, - { - 0xEE, 0x66, 0x6F, 0x3E, 0xEF, 0x0F, 0x7E, 0x2A, - 0x9C, 0x22, 0x29, 0x58, 0xC9, 0x7E, 0xAF, 0x35, - 0xF5, 0x1C, 0xED, 0x39, 0x3D, 0x71, 0x44, 0x85, - 0xAB, 0x09, 0xA0, 0x69, 0x34, 0x0F, 0xDF, 0x88 - }, - { - 0xC1, 0x53, 0xD3, 0x4A, 0x65, 0xC4, 0x7B, 0x4A, - 0x62, 0xC5, 0xCA, 0xCF, 0x24, 0x01, 0x09, 0x75, - 0xD0, 0x35, 0x6B, 0x2F, 0x32, 0xC8, 0xF5, 0xDA, - 0x53, 0x0D, 0x33, 0x88, 0x16, 0xAD, 0x5D, 0xE6 - }, - { - 0x9F, 0xC5, 0x45, 0x01, 0x09, 0xE1, 0xB7, 0x79, - 0xF6, 0xC7, 0xAE, 0x79, 0xD5, 0x6C, 0x27, 0x63, - 0x5C, 0x8D, 0xD4, 0x26, 0xC5, 0xA9, 0xD5, 0x4E, - 0x25, 0x78, 0xDB, 0x98, 0x9B, 0x8C, 0x3B, 0x4E - }, - { - 0xD1, 0x2B, 0xF3, 0x73, 0x2E, 0xF4, 0xAF, 0x5C, - 0x22, 0xFA, 0x90, 0x35, 0x6A, 0xF8, 0xFC, 0x50, - 0xFC, 0xB4, 0x0F, 0x8F, 0x2E, 0xA5, 0xC8, 0x59, - 0x47, 0x37, 0xA3, 0xB3, 0xD5, 0xAB, 0xDB, 0xD7 - }, - { - 0x11, 0x03, 0x0B, 0x92, 0x89, 0xBB, 0xA5, 0xAF, - 0x65, 0x26, 0x06, 0x72, 0xAB, 0x6F, 0xEE, 0x88, - 0xB8, 0x74, 0x20, 0xAC, 0xEF, 0x4A, 0x17, 0x89, - 0xA2, 0x07, 0x3B, 0x7E, 0xC2, 0xF2, 0xA0, 0x9E - }, - { - 0x69, 0xCB, 0x19, 0x2B, 0x84, 0x44, 0x00, 0x5C, - 0x8C, 0x0C, 0xEB, 0x12, 0xC8, 0x46, 0x86, 0x07, - 0x68, 0x18, 0x8C, 0xDA, 0x0A, 0xEC, 0x27, 0xA9, - 0xC8, 0xA5, 0x5C, 0xDE, 0xE2, 0x12, 0x36, 0x32 - }, - { - 0xDB, 0x44, 0x4C, 0x15, 0x59, 0x7B, 0x5F, 0x1A, - 0x03, 0xD1, 0xF9, 0xED, 0xD1, 0x6E, 0x4A, 0x9F, - 0x43, 0xA6, 0x67, 0xCC, 0x27, 0x51, 0x75, 0xDF, - 0xA2, 0xB7, 0x04, 0xE3, 0xBB, 0x1A, 0x9B, 0x83 - }, - { - 0x3F, 0xB7, 0x35, 0x06, 0x1A, 0xBC, 0x51, 0x9D, - 0xFE, 0x97, 0x9E, 0x54, 0xC1, 0xEE, 0x5B, 0xFA, - 0xD0, 0xA9, 0xD8, 0x58, 0xB3, 0x31, 0x5B, 0xAD, - 0x34, 0xBD, 0xE9, 0x99, 0xEF, 0xD7, 0x24, 0xDD - }, -}; - - - - -static const uint8_t blake2b_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] = -{ - { - 0x78, 0x6A, 0x02, 0xF7, 0x42, 0x01, 0x59, 0x03, - 0xC6, 0xC6, 0xFD, 0x85, 0x25, 0x52, 0xD2, 0x72, - 0x91, 0x2F, 0x47, 0x40, 0xE1, 0x58, 0x47, 0x61, - 0x8A, 0x86, 0xE2, 0x17, 0xF7, 0x1F, 0x54, 0x19, - 0xD2, 0x5E, 0x10, 0x31, 0xAF, 0xEE, 0x58, 0x53, - 0x13, 0x89, 0x64, 0x44, 0x93, 0x4E, 0xB0, 0x4B, - 0x90, 0x3A, 0x68, 0x5B, 0x14, 0x48, 0xB7, 0x55, - 0xD5, 0x6F, 0x70, 0x1A, 0xFE, 0x9B, 0xE2, 0xCE - }, - { - 0x2F, 0xA3, 0xF6, 0x86, 0xDF, 0x87, 0x69, 0x95, - 0x16, 0x7E, 0x7C, 0x2E, 0x5D, 0x74, 0xC4, 0xC7, - 0xB6, 0xE4, 0x8F, 0x80, 0x68, 0xFE, 0x0E, 0x44, - 0x20, 0x83, 0x44, 0xD4, 0x80, 0xF7, 0x90, 0x4C, - 0x36, 0x96, 0x3E, 0x44, 0x11, 0x5F, 0xE3, 0xEB, - 0x2A, 0x3A, 0xC8, 0x69, 0x4C, 0x28, 0xBC, 0xB4, - 0xF5, 0xA0, 0xF3, 0x27, 0x6F, 0x2E, 0x79, 0x48, - 0x7D, 0x82, 0x19, 0x05, 0x7A, 0x50, 0x6E, 0x4B - }, - { - 0x1C, 0x08, 0x79, 0x8D, 0xC6, 0x41, 0xAB, 0xA9, - 0xDE, 0xE4, 0x35, 0xE2, 0x25, 0x19, 0xA4, 0x72, - 0x9A, 0x09, 0xB2, 0xBF, 0xE0, 0xFF, 0x00, 0xEF, - 0x2D, 0xCD, 0x8E, 0xD6, 0xF8, 0xA0, 0x7D, 0x15, - 0xEA, 0xF4, 0xAE, 0xE5, 0x2B, 0xBF, 0x18, 0xAB, - 0x56, 0x08, 0xA6, 0x19, 0x0F, 0x70, 0xB9, 0x04, - 0x86, 0xC8, 0xA7, 0xD4, 0x87, 0x37, 0x10, 0xB1, - 0x11, 0x5D, 0x3D, 0xEB, 0xBB, 0x43, 0x27, 0xB5 - }, - { - 0x40, 0xA3, 0x74, 0x72, 0x73, 0x02, 0xD9, 0xA4, - 0x76, 0x9C, 0x17, 0xB5, 0xF4, 0x09, 0xFF, 0x32, - 0xF5, 0x8A, 0xA2, 0x4F, 0xF1, 0x22, 0xD7, 0x60, - 0x3E, 0x4F, 0xDA, 0x15, 0x09, 0xE9, 0x19, 0xD4, - 0x10, 0x7A, 0x52, 0xC5, 0x75, 0x70, 0xA6, 0xD9, - 0x4E, 0x50, 0x96, 0x7A, 0xEA, 0x57, 0x3B, 0x11, - 0xF8, 0x6F, 0x47, 0x3F, 0x53, 0x75, 0x65, 0xC6, - 0x6F, 0x70, 0x39, 0x83, 0x0A, 0x85, 0xD1, 0x86 - }, - { - 0x77, 0xDD, 0xF4, 0xB1, 0x44, 0x25, 0xEB, 0x3D, - 0x05, 0x3C, 0x1E, 0x84, 0xE3, 0x46, 0x9D, 0x92, - 0xC4, 0xCD, 0x91, 0x0E, 0xD2, 0x0F, 0x92, 0x03, - 0x5E, 0x0C, 0x99, 0xD8, 0xA7, 0xA8, 0x6C, 0xEC, - 0xAF, 0x69, 0xF9, 0x66, 0x3C, 0x20, 0xA7, 0xAA, - 0x23, 0x0B, 0xC8, 0x2F, 0x60, 0xD2, 0x2F, 0xB4, - 0xA0, 0x0B, 0x09, 0xD3, 0xEB, 0x8F, 0xC6, 0x5E, - 0xF5, 0x47, 0xFE, 0x63, 0xC8, 0xD3, 0xDD, 0xCE - }, - { - 0xCB, 0xAA, 0x0B, 0xA7, 0xD4, 0x82, 0xB1, 0xF3, - 0x01, 0x10, 0x9A, 0xE4, 0x10, 0x51, 0x99, 0x1A, - 0x32, 0x89, 0xBC, 0x11, 0x98, 0x00, 0x5A, 0xF2, - 0x26, 0xC5, 0xE4, 0xF1, 0x03, 0xB6, 0x65, 0x79, - 0xF4, 0x61, 0x36, 0x10, 0x44, 0xC8, 0xBA, 0x34, - 0x39, 0xFF, 0x12, 0xC5, 0x15, 0xFB, 0x29, 0xC5, - 0x21, 0x61, 0xB7, 0xEB, 0x9C, 0x28, 0x37, 0xB7, - 0x6A, 0x5D, 0xC3, 0x3F, 0x7C, 0xB2, 0xE2, 0xE8 - }, - { - 0xF9, 0x5D, 0x45, 0xCF, 0x69, 0xAF, 0x5C, 0x20, - 0x23, 0xBD, 0xB5, 0x05, 0x82, 0x1E, 0x62, 0xE8, - 0x5D, 0x7C, 0xAE, 0xDF, 0x7B, 0xED, 0xA1, 0x2C, - 0x02, 0x48, 0x77, 0x5B, 0x0C, 0x88, 0x20, 0x5E, - 0xEB, 0x35, 0xAF, 0x3A, 0x90, 0x81, 0x6F, 0x66, - 0x08, 0xCE, 0x7D, 0xD4, 0x4E, 0xC2, 0x8D, 0xB1, - 0x14, 0x06, 0x14, 0xE1, 0xDD, 0xEB, 0xF3, 0xAA, - 0x9C, 0xD1, 0x84, 0x3E, 0x0F, 0xAD, 0x2C, 0x36 - }, - { - 0x8F, 0x94, 0x5B, 0xA7, 0x00, 0xF2, 0x53, 0x0E, - 0x5C, 0x2A, 0x7D, 0xF7, 0xD5, 0xDC, 0xE0, 0xF8, - 0x3F, 0x9E, 0xFC, 0x78, 0xC0, 0x73, 0xFE, 0x71, - 0xAE, 0x1F, 0x88, 0x20, 0x4A, 0x4F, 0xD1, 0xCF, - 0x70, 0xA0, 0x73, 0xF5, 0xD1, 0xF9, 0x42, 0xED, - 0x62, 0x3A, 0xA1, 0x6E, 0x90, 0xA8, 0x71, 0x24, - 0x6C, 0x90, 0xC4, 0x5B, 0x62, 0x1B, 0x34, 0x01, - 0xA5, 0xDD, 0xBD, 0x9D, 0xF6, 0x26, 0x41, 0x65 - }, - { - 0xE9, 0x98, 0xE0, 0xDC, 0x03, 0xEC, 0x30, 0xEB, - 0x99, 0xBB, 0x6B, 0xFA, 0xAF, 0x66, 0x18, 0xAC, - 0xC6, 0x20, 0x32, 0x0D, 0x72, 0x20, 0xB3, 0xAF, - 0x2B, 0x23, 0xD1, 0x12, 0xD8, 0xE9, 0xCB, 0x12, - 0x62, 0xF3, 0xC0, 0xD6, 0x0D, 0x18, 0x3B, 0x1E, - 0xE7, 0xF0, 0x96, 0xD1, 0x2D, 0xAE, 0x42, 0xC9, - 0x58, 0x41, 0x86, 0x00, 0x21, 0x4D, 0x04, 0xF5, - 0xED, 0x6F, 0x5E, 0x71, 0x8B, 0xE3, 0x55, 0x66 - }, - { - 0x6A, 0x9A, 0x09, 0x0C, 0x61, 0xB3, 0x41, 0x0A, - 0xED, 0xE7, 0xEC, 0x91, 0x38, 0x14, 0x6C, 0xEB, - 0x2C, 0x69, 0x66, 0x2F, 0x46, 0x0C, 0x3D, 0xA5, - 0x3C, 0x65, 0x15, 0xC1, 0xEB, 0x31, 0xF4, 0x1C, - 0xA3, 0xD2, 0x80, 0xE5, 0x67, 0x88, 0x2F, 0x95, - 0xCF, 0x66, 0x4A, 0x94, 0x14, 0x7D, 0x78, 0xF4, - 0x2C, 0xFC, 0x71, 0x4A, 0x40, 0xD2, 0x2E, 0xF1, - 0x94, 0x70, 0xE0, 0x53, 0x49, 0x35, 0x08, 0xA2 - }, - { - 0x29, 0x10, 0x25, 0x11, 0xD7, 0x49, 0xDB, 0x3C, - 0xC9, 0xB4, 0xE3, 0x35, 0xFA, 0x1F, 0x5E, 0x8F, - 0xAC, 0xA8, 0x42, 0x1D, 0x55, 0x8F, 0x6A, 0x3F, - 0x33, 0x21, 0xD5, 0x0D, 0x04, 0x4A, 0x24, 0x8B, - 0xA5, 0x95, 0xCF, 0xC3, 0xEF, 0xD3, 0xD2, 0xAD, - 0xC9, 0x73, 0x34, 0xDA, 0x73, 0x24, 0x13, 0xF5, - 0xCB, 0xF4, 0x75, 0x1C, 0x36, 0x2B, 0xA1, 0xD5, - 0x38, 0x62, 0xAC, 0x1E, 0x8D, 0xAB, 0xEE, 0xE8 - }, - { - 0xC9, 0x7A, 0x47, 0x79, 0xD4, 0x7E, 0x6F, 0x77, - 0x72, 0x9B, 0x59, 0x17, 0xD0, 0x13, 0x8A, 0xBB, - 0x35, 0x98, 0x0A, 0xB6, 0x41, 0xBD, 0x73, 0xA8, - 0x85, 0x9E, 0xB1, 0xAC, 0x98, 0xC0, 0x53, 0x62, - 0xED, 0x7D, 0x60, 0x8F, 0x2E, 0x95, 0x87, 0xD6, - 0xBA, 0x9E, 0x27, 0x1D, 0x34, 0x31, 0x25, 0xD4, - 0x0D, 0x93, 0x3A, 0x8E, 0xD0, 0x4E, 0xC1, 0xFE, - 0x75, 0xEC, 0x40, 0x7C, 0x7A, 0x53, 0xC3, 0x4E - }, - { - 0x10, 0xF0, 0xDC, 0x91, 0xB9, 0xF8, 0x45, 0xFB, - 0x95, 0xFA, 0xD6, 0x86, 0x0E, 0x6C, 0xE1, 0xAD, - 0xFA, 0x00, 0x2C, 0x7F, 0xC3, 0x27, 0x11, 0x6D, - 0x44, 0xD0, 0x47, 0xCD, 0x7D, 0x58, 0x70, 0xD7, - 0x72, 0xBB, 0x12, 0xB5, 0xFA, 0xC0, 0x0E, 0x02, - 0xB0, 0x8A, 0xC2, 0xA0, 0x17, 0x4D, 0x04, 0x46, - 0xC3, 0x6A, 0xB3, 0x5F, 0x14, 0xCA, 0x31, 0x89, - 0x4C, 0xD6, 0x1C, 0x78, 0xC8, 0x49, 0xB4, 0x8A - }, - { - 0xDE, 0xA9, 0x10, 0x1C, 0xAC, 0x62, 0xB8, 0xF6, - 0xA3, 0xC6, 0x50, 0xF9, 0x0E, 0xEA, 0x5B, 0xFA, - 0xE2, 0x65, 0x3A, 0x4E, 0xAF, 0xD6, 0x3A, 0x6D, - 0x1F, 0x0F, 0x13, 0x2D, 0xB9, 0xE4, 0xF2, 0xB1, - 0xB6, 0x62, 0x43, 0x2E, 0xC8, 0x5B, 0x17, 0xBC, - 0xAC, 0x41, 0xE7, 0x75, 0x63, 0x78, 0x81, 0xF6, - 0xAA, 0xB3, 0x8D, 0xD6, 0x6D, 0xCB, 0xD0, 0x80, - 0xF0, 0x99, 0x0A, 0x7A, 0x6E, 0x98, 0x54, 0xFE - }, - { - 0x44, 0x1F, 0xFA, 0xA0, 0x8C, 0xD7, 0x9D, 0xFF, - 0x4A, 0xFC, 0x9B, 0x9E, 0x5B, 0x56, 0x20, 0xEE, - 0xC0, 0x86, 0x73, 0x0C, 0x25, 0xF6, 0x61, 0xB1, - 0xD6, 0xFB, 0xFB, 0xD1, 0xCE, 0xC3, 0x14, 0x8D, - 0xD7, 0x22, 0x58, 0xC6, 0x56, 0x41, 0xF2, 0xFC, - 0xA5, 0xEB, 0x15, 0x5F, 0xAD, 0xBC, 0xAB, 0xB1, - 0x3C, 0x6E, 0x21, 0xDC, 0x11, 0xFA, 0xF7, 0x2C, - 0x2A, 0x28, 0x1B, 0x7D, 0x56, 0x14, 0x5F, 0x19 - }, - { - 0x44, 0x4B, 0x24, 0x0F, 0xE3, 0xED, 0x86, 0xD0, - 0xE2, 0xEF, 0x4C, 0xE7, 0xD8, 0x51, 0xED, 0xDE, - 0x22, 0x15, 0x55, 0x82, 0xAA, 0x09, 0x14, 0x79, - 0x7B, 0x72, 0x6C, 0xD0, 0x58, 0xB6, 0xF4, 0x59, - 0x32, 0xE0, 0xE1, 0x29, 0x51, 0x68, 0x76, 0x52, - 0x7B, 0x1D, 0xD8, 0x8F, 0xC6, 0x6D, 0x71, 0x19, - 0xF4, 0xAB, 0x3B, 0xED, 0x93, 0xA6, 0x1A, 0x0E, - 0x2D, 0x2D, 0x2A, 0xEA, 0xC3, 0x36, 0xD9, 0x58 - }, - { - 0xBF, 0xBA, 0xBB, 0xEF, 0x45, 0x55, 0x4C, 0xCF, - 0xA0, 0xDC, 0x83, 0x75, 0x2A, 0x19, 0xCC, 0x35, - 0xD5, 0x92, 0x09, 0x56, 0xB3, 0x01, 0xD5, 0x58, - 0xD7, 0x72, 0x28, 0x2B, 0xC8, 0x67, 0x00, 0x91, - 0x68, 0xE9, 0xE9, 0x86, 0x06, 0xBB, 0x5B, 0xA7, - 0x3A, 0x38, 0x5D, 0xE5, 0x74, 0x92, 0x28, 0xC9, - 0x25, 0xA8, 0x50, 0x19, 0xB7, 0x1F, 0x72, 0xFE, - 0x29, 0xB3, 0xCD, 0x37, 0xCA, 0x52, 0xEF, 0xE6 - }, - { - 0x9C, 0x4D, 0x0C, 0x3E, 0x1C, 0xDB, 0xBF, 0x48, - 0x5B, 0xEC, 0x86, 0xF4, 0x1C, 0xEC, 0x7C, 0x98, - 0x37, 0x3F, 0x0E, 0x09, 0xF3, 0x92, 0x84, 0x9A, - 0xAA, 0x22, 0x9E, 0xBF, 0xBF, 0x39, 0x7B, 0x22, - 0x08, 0x55, 0x29, 0xCB, 0x7E, 0xF3, 0x9F, 0x9C, - 0x7C, 0x22, 0x22, 0xA5, 0x14, 0x18, 0x2B, 0x1E, - 0xFF, 0xAA, 0x17, 0x8C, 0xC3, 0x68, 0x7B, 0x1B, - 0x2B, 0x6C, 0xBC, 0xB6, 0xFD, 0xEB, 0x96, 0xF8 - }, - { - 0x47, 0x71, 0x76, 0xB3, 0xBF, 0xCB, 0xAD, 0xD7, - 0x65, 0x7C, 0x23, 0xC2, 0x46, 0x25, 0xE4, 0xD0, - 0xD6, 0x74, 0xD1, 0x86, 0x8F, 0x00, 0x60, 0x06, - 0x39, 0x8A, 0xF9, 0x7A, 0xA4, 0x18, 0x77, 0xC8, - 0xE7, 0x0D, 0x3D, 0x14, 0xC3, 0xBB, 0xC9, 0xBB, - 0xCD, 0xCE, 0xA8, 0x01, 0xBD, 0x0E, 0x15, 0x99, - 0xAF, 0x1F, 0x3E, 0xEC, 0x67, 0x40, 0x51, 0x70, - 0xF4, 0xE2, 0x6C, 0x96, 0x4A, 0x57, 0xA8, 0xB7 - }, - { - 0xA7, 0x8C, 0x49, 0x0E, 0xDA, 0x31, 0x73, 0xBB, - 0x3F, 0x10, 0xDE, 0xE5, 0x2F, 0x11, 0x0F, 0xB1, - 0xC0, 0x8E, 0x03, 0x02, 0x23, 0x0B, 0x85, 0xDD, - 0xD7, 0xC1, 0x12, 0x57, 0xD9, 0x2D, 0xE1, 0x48, - 0x78, 0x5E, 0xF0, 0x0C, 0x03, 0x9C, 0x0B, 0xB8, - 0xEB, 0x98, 0x08, 0xA3, 0x5B, 0x2D, 0x8C, 0x08, - 0x0F, 0x57, 0x28, 0x59, 0x71, 0x4C, 0x9D, 0x40, - 0x69, 0xC5, 0xBC, 0xAF, 0x09, 0x0E, 0x89, 0x8E - }, - { - 0x58, 0xD0, 0x23, 0x39, 0x7B, 0xEB, 0x5B, 0x41, - 0x45, 0xCB, 0x22, 0x55, 0xB0, 0x7D, 0x74, 0x29, - 0x0B, 0x36, 0xD9, 0xFD, 0x1E, 0x59, 0x4A, 0xFB, - 0xD8, 0xEE, 0xA4, 0x7C, 0x20, 0x5B, 0x2E, 0xFB, - 0xFE, 0x6F, 0x46, 0x19, 0x0F, 0xAF, 0x95, 0xAF, - 0x50, 0x4A, 0xB0, 0x72, 0xE3, 0x6F, 0x6C, 0x85, - 0xD7, 0x67, 0xA3, 0x21, 0xBF, 0xD7, 0xF2, 0x26, - 0x87, 0xA4, 0xAB, 0xBF, 0x49, 0x4A, 0x68, 0x9C - }, - { - 0x40, 0x01, 0xEC, 0x74, 0xD5, 0xA4, 0x6F, 0xD2, - 0x9C, 0x2C, 0x3C, 0xDB, 0xE5, 0xD1, 0xB9, 0xF2, - 0x0E, 0x51, 0xA9, 0x41, 0xBE, 0x98, 0xD2, 0xA4, - 0xE1, 0xE2, 0xFB, 0xF8, 0x66, 0xA6, 0x72, 0x12, - 0x1D, 0xB6, 0xF8, 0x1A, 0x51, 0x4C, 0xFD, 0x10, - 0xE7, 0x35, 0x8D, 0x57, 0x1B, 0xDB, 0xA4, 0x8E, - 0x4C, 0xE7, 0x08, 0xB9, 0xD1, 0x24, 0x89, 0x4B, - 0xC0, 0xB5, 0xED, 0x55, 0x49, 0x35, 0xF7, 0x3A - }, - { - 0xCC, 0xD1, 0xB2, 0x2D, 0xAB, 0x65, 0x11, 0x22, - 0x5D, 0x24, 0x01, 0xEA, 0x2D, 0x86, 0x25, 0xD2, - 0x06, 0xA1, 0x24, 0x73, 0xCC, 0x73, 0x2B, 0x61, - 0x5E, 0x56, 0x40, 0xCE, 0xFF, 0xF0, 0xA4, 0xAD, - 0xF9, 0x71, 0xB0, 0xE8, 0x27, 0xA6, 0x19, 0xE0, - 0xA8, 0x0F, 0x5D, 0xB9, 0xCC, 0xD0, 0x96, 0x23, - 0x29, 0x01, 0x0D, 0x07, 0xE3, 0x4A, 0x20, 0x64, - 0xE7, 0x31, 0xC5, 0x20, 0x81, 0x7B, 0x21, 0x83 - }, - { - 0xB4, 0xA0, 0xA9, 0xE3, 0x57, 0x4E, 0xDB, 0x9E, - 0x1E, 0x72, 0xAA, 0x31, 0xE3, 0x9C, 0xC5, 0xF3, - 0x0D, 0xBF, 0x94, 0x3F, 0x8C, 0xAB, 0xC4, 0x08, - 0x44, 0x96, 0x54, 0xA3, 0x91, 0x31, 0xE6, 0x6D, - 0x71, 0x8A, 0x18, 0x81, 0x91, 0x43, 0xE3, 0xEA, - 0x96, 0xB4, 0xA1, 0x89, 0x59, 0x88, 0xA1, 0xC0, - 0x05, 0x6C, 0xF2, 0xB6, 0xE0, 0x4F, 0x9A, 0xC1, - 0x9D, 0x65, 0x73, 0x83, 0xC2, 0x91, 0x0C, 0x44 - }, - { - 0x44, 0x7B, 0xEC, 0xAB, 0x16, 0x63, 0x06, 0x08, - 0xD3, 0x9F, 0x4F, 0x05, 0x8B, 0x16, 0xF7, 0xAF, - 0x95, 0xB8, 0x5A, 0x76, 0xAA, 0x0F, 0xA7, 0xCE, - 0xA2, 0xB8, 0x07, 0x55, 0xFB, 0x76, 0xE9, 0xC8, - 0x04, 0xF2, 0xCA, 0x78, 0xF0, 0x26, 0x43, 0xC9, - 0x15, 0xFB, 0xF2, 0xFC, 0xE5, 0xE1, 0x9D, 0xE8, - 0x60, 0x00, 0xDE, 0x03, 0xB1, 0x88, 0x61, 0x81, - 0x5A, 0x83, 0x12, 0x60, 0x71, 0xF8, 0xA3, 0x7B - }, - { - 0x54, 0xE6, 0xDA, 0xB9, 0x97, 0x73, 0x80, 0xA5, - 0x66, 0x58, 0x22, 0xDB, 0x93, 0x37, 0x4E, 0xDA, - 0x52, 0x8D, 0x9B, 0xEB, 0x62, 0x6F, 0x9B, 0x94, - 0x02, 0x70, 0x71, 0xCB, 0x26, 0x67, 0x5E, 0x11, - 0x2B, 0x4A, 0x7F, 0xEC, 0x94, 0x1E, 0xE6, 0x0A, - 0x81, 0xE4, 0xD2, 0xEA, 0x3F, 0xF7, 0xBC, 0x52, - 0xCF, 0xC4, 0x5D, 0xFB, 0xFE, 0x73, 0x5A, 0x1C, - 0x64, 0x6B, 0x2C, 0xF6, 0xD6, 0xA4, 0x9B, 0x62 - }, - { - 0x3E, 0xA6, 0x26, 0x25, 0x94, 0x9E, 0x36, 0x46, - 0x70, 0x4D, 0x7E, 0x3C, 0x90, 0x6F, 0x82, 0xF6, - 0xC0, 0x28, 0xF5, 0x40, 0xF5, 0xF7, 0x2A, 0x79, - 0x4B, 0x0C, 0x57, 0xBF, 0x97, 0xB7, 0x64, 0x9B, - 0xFE, 0xB9, 0x0B, 0x01, 0xD3, 0xCA, 0x3E, 0x82, - 0x9D, 0xE2, 0x1B, 0x38, 0x26, 0xE6, 0xF8, 0x70, - 0x14, 0xD3, 0xC7, 0x73, 0x50, 0xCB, 0x5A, 0x15, - 0xFF, 0x5D, 0x46, 0x8A, 0x81, 0xBE, 0xC1, 0x60 - }, - { - 0x21, 0x3C, 0xFE, 0x14, 0x5C, 0x54, 0xA3, 0x36, - 0x91, 0x56, 0x99, 0x80, 0xE5, 0x93, 0x8C, 0x88, - 0x83, 0xA4, 0x6D, 0x84, 0xD1, 0x49, 0xC8, 0xFF, - 0x1A, 0x67, 0xCD, 0x28, 0x7B, 0x4D, 0x49, 0xC6, - 0xDA, 0x69, 0xD3, 0xA0, 0x35, 0x44, 0x3D, 0xB0, - 0x85, 0x98, 0x3D, 0x0E, 0xFE, 0x63, 0x70, 0x6B, - 0xD5, 0xB6, 0xF1, 0x5A, 0x7D, 0xA4, 0x59, 0xE8, - 0xD5, 0x0A, 0x19, 0x09, 0x3D, 0xB5, 0x5E, 0x80 - }, - { - 0x57, 0x16, 0xC4, 0xA3, 0x8F, 0x38, 0xDB, 0x10, - 0x4E, 0x49, 0x4A, 0x0A, 0x27, 0xCB, 0xE8, 0x9A, - 0x26, 0xA6, 0xBB, 0x6F, 0x49, 0x9E, 0xC0, 0x1C, - 0x8C, 0x01, 0xAA, 0x7C, 0xB8, 0x84, 0x97, 0xE7, - 0x51, 0x48, 0xCD, 0x6E, 0xEE, 0x12, 0xA7, 0x16, - 0x8B, 0x6F, 0x78, 0xAB, 0x74, 0xE4, 0xBE, 0x74, - 0x92, 0x51, 0xA1, 0xA7, 0x4C, 0x38, 0xC8, 0x6D, - 0x61, 0x29, 0x17, 0x7E, 0x28, 0x89, 0xE0, 0xB6 - }, - { - 0x03, 0x04, 0x60, 0xA9, 0x8B, 0xDF, 0x9F, 0xF1, - 0x7C, 0xD9, 0x64, 0x04, 0xF2, 0x8F, 0xC3, 0x04, - 0xF2, 0xB7, 0xC0, 0x4E, 0xAA, 0xDE, 0x53, 0x67, - 0x7F, 0xD2, 0x8F, 0x78, 0x8C, 0xA2, 0x21, 0x86, - 0xB8, 0xBC, 0x80, 0xDD, 0x21, 0xD1, 0x7F, 0x85, - 0x49, 0xC7, 0x11, 0xAF, 0xF0, 0xE5, 0x14, 0xE1, - 0x9D, 0x4E, 0x15, 0xF5, 0x99, 0x02, 0x52, 0xA0, - 0x3E, 0x08, 0x2F, 0x28, 0xDC, 0x20, 0x52, 0xF6 - }, - { - 0x19, 0xE7, 0xF1, 0xCC, 0xEE, 0x88, 0xA1, 0x06, - 0x72, 0x33, 0x3E, 0x39, 0x0C, 0xF2, 0x20, 0x13, - 0xA8, 0xC7, 0x34, 0xC6, 0xCB, 0x9E, 0xAB, 0x41, - 0xF1, 0x7C, 0x3C, 0x80, 0x32, 0xA2, 0xE4, 0xAC, - 0xA0, 0x56, 0x9E, 0xA3, 0x6F, 0x08, 0x60, 0xC7, - 0xA1, 0xAF, 0x28, 0xFA, 0x47, 0x68, 0x40, 0xD6, - 0x60, 0x11, 0x16, 0x88, 0x59, 0x33, 0x4A, 0x9E, - 0x4E, 0xF9, 0xCC, 0x2E, 0x61, 0xA0, 0xE2, 0x9E - }, - { - 0x29, 0xF8, 0xB8, 0xC7, 0x8C, 0x80, 0xF2, 0xFC, - 0xB4, 0xBD, 0xF7, 0x82, 0x5E, 0xD9, 0x0A, 0x70, - 0xD6, 0x25, 0xFF, 0x78, 0x5D, 0x26, 0x26, 0x77, - 0xE2, 0x50, 0xC0, 0x4F, 0x37, 0x20, 0xC8, 0x88, - 0xD0, 0x3F, 0x80, 0x45, 0xE4, 0xED, 0xF3, 0xF5, - 0x28, 0x5B, 0xD3, 0x9D, 0x92, 0x8A, 0x10, 0xA7, - 0xD0, 0xA5, 0xDF, 0x00, 0xB8, 0x48, 0x4A, 0xC2, - 0x86, 0x81, 0x42, 0xA1, 0xE8, 0xBE, 0xA3, 0x51 - }, - { - 0x5C, 0x52, 0x92, 0x0A, 0x72, 0x63, 0xE3, 0x9D, - 0x57, 0x92, 0x0C, 0xA0, 0xCB, 0x75, 0x2A, 0xC6, - 0xD7, 0x9A, 0x04, 0xFE, 0xF8, 0xA7, 0xA2, 0x16, - 0xA1, 0xEC, 0xB7, 0x11, 0x5C, 0xE0, 0x6D, 0x89, - 0xFD, 0x7D, 0x73, 0x5B, 0xD6, 0xF4, 0x27, 0x25, - 0x55, 0xDB, 0xA2, 0x2C, 0x2D, 0x1C, 0x96, 0xE6, - 0x35, 0x23, 0x22, 0xC6, 0x2C, 0x56, 0x30, 0xFD, - 0xE0, 0xF4, 0x77, 0x7A, 0x76, 0xC3, 0xDE, 0x2C - }, - { - 0x83, 0xB0, 0x98, 0xF2, 0x62, 0x25, 0x1B, 0xF6, - 0x60, 0x06, 0x4A, 0x9D, 0x35, 0x11, 0xCE, 0x76, - 0x87, 0xA0, 0x9E, 0x6D, 0xFB, 0xB8, 0x78, 0x29, - 0x9C, 0x30, 0xE9, 0x3D, 0xFB, 0x43, 0xA9, 0x31, - 0x4D, 0xB9, 0xA6, 0x00, 0x33, 0x7D, 0xB2, 0x6E, - 0xBE, 0xED, 0xAF, 0x22, 0x56, 0xA9, 0x6D, 0xAB, - 0xE9, 0xB2, 0x9E, 0x75, 0x73, 0xAD, 0x11, 0xC3, - 0x52, 0x3D, 0x87, 0x4D, 0xDE, 0x5B, 0xE7, 0xED - }, - { - 0x94, 0x47, 0xD9, 0x8A, 0xA5, 0xC9, 0x33, 0x13, - 0x52, 0xF4, 0x3D, 0x3E, 0x56, 0xD0, 0xA9, 0xA9, - 0xF9, 0x58, 0x18, 0x65, 0x99, 0x8E, 0x28, 0x85, - 0xCC, 0x56, 0xDD, 0x0A, 0x0B, 0xD5, 0xA7, 0xB5, - 0x05, 0x95, 0xBD, 0x10, 0xF7, 0x52, 0x9B, 0xCD, - 0x31, 0xF3, 0x7D, 0xC1, 0x6A, 0x14, 0x65, 0xD5, - 0x94, 0x07, 0x96, 0x67, 0xDA, 0x2A, 0x3F, 0xCB, - 0x70, 0x40, 0x14, 0x98, 0x83, 0x7C, 0xED, 0xEB - }, - { - 0x86, 0x77, 0x32, 0xF2, 0xFE, 0xEB, 0x23, 0x89, - 0x30, 0x97, 0x56, 0x1A, 0xC7, 0x10, 0xA4, 0xBF, - 0xF4, 0x53, 0xBE, 0x9C, 0xFB, 0xED, 0xBA, 0x8B, - 0xA3, 0x24, 0xF9, 0xD3, 0x12, 0xA8, 0x2D, 0x73, - 0x2E, 0x1B, 0x83, 0xB8, 0x29, 0xFD, 0xCD, 0x17, - 0x7B, 0x88, 0x2C, 0xA0, 0xC1, 0xBF, 0x54, 0x4B, - 0x22, 0x3B, 0xE5, 0x29, 0x92, 0x4A, 0x24, 0x6A, - 0x63, 0xCF, 0x05, 0x9B, 0xFD, 0xC5, 0x0A, 0x1B - }, - { - 0xF1, 0x5A, 0xB2, 0x6D, 0x4C, 0xDF, 0xCF, 0x56, - 0xE1, 0x96, 0xBB, 0x6B, 0xA1, 0x70, 0xA8, 0xFC, - 0xCC, 0x41, 0x4D, 0xE9, 0x28, 0x5A, 0xFD, 0x98, - 0xA3, 0xD3, 0xCF, 0x2F, 0xB8, 0x8F, 0xCB, 0xC0, - 0xF1, 0x98, 0x32, 0xAC, 0x43, 0x3A, 0x5B, 0x2C, - 0xC2, 0x39, 0x2A, 0x4C, 0xE3, 0x43, 0x32, 0x98, - 0x7D, 0x8D, 0x2C, 0x2B, 0xEF, 0x6C, 0x34, 0x66, - 0x13, 0x8D, 0xB0, 0xC6, 0xE4, 0x2F, 0xA4, 0x7B - }, - { - 0x28, 0x13, 0x51, 0x6D, 0x68, 0xED, 0x4A, 0x08, - 0xB3, 0x9D, 0x64, 0x8A, 0xA6, 0xAA, 0xCD, 0x81, - 0xE9, 0xD6, 0x55, 0xEC, 0xD5, 0xF0, 0xC1, 0x35, - 0x56, 0xC6, 0x0F, 0xDF, 0x0D, 0x33, 0x3E, 0xA3, - 0x84, 0x64, 0xB3, 0x6C, 0x02, 0xBA, 0xCC, 0xD7, - 0x46, 0xE9, 0x57, 0x5E, 0x96, 0xC6, 0x30, 0x14, - 0xF0, 0x74, 0xAE, 0x34, 0xA0, 0xA2, 0x5B, 0x32, - 0x0F, 0x0F, 0xBE, 0xDD, 0x6A, 0xCF, 0x76, 0x65 - }, - { - 0xD3, 0x25, 0x9A, 0xFC, 0xA8, 0xA4, 0x89, 0x62, - 0xFA, 0x89, 0x2E, 0x14, 0x5A, 0xCF, 0x54, 0x7F, - 0x26, 0x92, 0x3A, 0xE8, 0xD4, 0x92, 0x4C, 0x8A, - 0x53, 0x15, 0x81, 0x52, 0x6B, 0x04, 0xB4, 0x4C, - 0x7A, 0xF8, 0x3C, 0x64, 0x3E, 0xF5, 0xA0, 0xBC, - 0x28, 0x2D, 0x36, 0xF3, 0xFB, 0x04, 0xC8, 0x4E, - 0x28, 0xB3, 0x51, 0xF4, 0x0C, 0x74, 0xB6, 0x9D, - 0xC7, 0x84, 0x0B, 0xC7, 0x17, 0xB6, 0xF1, 0x5F - }, - { - 0xF1, 0x4B, 0x06, 0x1A, 0xE3, 0x59, 0xFA, 0x31, - 0xB9, 0x89, 0xE3, 0x03, 0x32, 0xBF, 0xE8, 0xDE, - 0x8C, 0xC8, 0xCD, 0xB5, 0x68, 0xE1, 0x4B, 0xE2, - 0x14, 0xA2, 0x22, 0x3B, 0x84, 0xCA, 0xAB, 0x74, - 0x19, 0x54, 0x9E, 0xCF, 0xCC, 0x96, 0xCE, 0x2A, - 0xCE, 0xC1, 0x19, 0x48, 0x5D, 0x87, 0xD1, 0x57, - 0xD3, 0xA8, 0x73, 0x4F, 0xC4, 0x26, 0x59, 0x7D, - 0x64, 0xF3, 0x65, 0x70, 0xCE, 0xAF, 0x22, 0x4D - }, - { - 0x55, 0xE7, 0x0B, 0x01, 0xD1, 0xFB, 0xF8, 0xB2, - 0x3B, 0x57, 0xFB, 0x62, 0xE2, 0x6C, 0x2C, 0xE5, - 0x4F, 0x13, 0xF8, 0xFA, 0x24, 0x64, 0xE6, 0xEB, - 0x98, 0xD1, 0x6A, 0x61, 0x17, 0x02, 0x6D, 0x8B, - 0x90, 0x81, 0x90, 0x12, 0x49, 0x6D, 0x40, 0x71, - 0xEB, 0xE2, 0xE5, 0x95, 0x57, 0xEC, 0xE3, 0x51, - 0x9A, 0x7A, 0xA4, 0x58, 0x02, 0xF9, 0x61, 0x53, - 0x74, 0x87, 0x73, 0x32, 0xB7, 0x34, 0x90, 0xB3 - }, - { - 0x25, 0x26, 0x1E, 0xB2, 0x96, 0x97, 0x1D, 0x6E, - 0x4A, 0x71, 0xB2, 0x92, 0x8E, 0x64, 0x83, 0x9C, - 0x67, 0xD4, 0x22, 0x87, 0x2B, 0xF9, 0xF3, 0xC3, - 0x19, 0x93, 0x61, 0x52, 0x22, 0xDE, 0x9F, 0x8F, - 0x0B, 0x2C, 0x4B, 0xE8, 0x54, 0x85, 0x59, 0xB4, - 0xB3, 0x54, 0xE7, 0x36, 0x41, 0x6E, 0x32, 0x18, - 0xD4, 0xE8, 0xA1, 0xE2, 0x19, 0xA4, 0xA6, 0xD4, - 0x3E, 0x1A, 0x9A, 0x52, 0x1D, 0x0E, 0x75, 0xFC - }, - { - 0x08, 0x30, 0x7F, 0x34, 0x7C, 0x41, 0x29, 0x4E, - 0x34, 0xBB, 0x54, 0xCB, 0x42, 0xB1, 0x52, 0x2D, - 0x22, 0xF8, 0x24, 0xF7, 0xB6, 0xE5, 0xDB, 0x50, - 0xFD, 0xA0, 0x96, 0x79, 0x8E, 0x18, 0x1A, 0x8F, - 0x02, 0x6F, 0xA2, 0x7B, 0x4A, 0xE4, 0x5D, 0x52, - 0xA6, 0x2C, 0xAF, 0x9D, 0x51, 0x98, 0xE2, 0x4A, - 0x49, 0x13, 0xC6, 0x67, 0x17, 0x75, 0xB2, 0xD7, - 0x23, 0xC1, 0x23, 0x9B, 0xFB, 0xF0, 0x16, 0xD7 - }, - { - 0x1E, 0x5C, 0x62, 0xE7, 0xE9, 0xBF, 0xA1, 0xB1, - 0x18, 0x74, 0x7A, 0x2D, 0xE0, 0x8B, 0x3C, 0xA1, - 0x01, 0x12, 0xAF, 0x96, 0xA4, 0x6E, 0x4B, 0x22, - 0xC3, 0xFC, 0x06, 0xF9, 0xBF, 0xEE, 0x4E, 0xB5, - 0xC4, 0x9E, 0x05, 0x7A, 0x4A, 0x48, 0x86, 0x23, - 0x43, 0x24, 0x57, 0x25, 0x76, 0xBB, 0x9B, 0x5E, - 0xCF, 0xDE, 0x0D, 0x99, 0xB0, 0xDE, 0x4F, 0x98, - 0xEC, 0x16, 0xE4, 0xD1, 0xB8, 0x5F, 0xA9, 0x47 - }, - { - 0xC7, 0x4A, 0x77, 0x39, 0x5F, 0xB8, 0xBC, 0x12, - 0x64, 0x47, 0x45, 0x48, 0x38, 0xE5, 0x61, 0xE9, - 0x62, 0x85, 0x3D, 0xC7, 0xEB, 0x49, 0xA1, 0xE3, - 0xCB, 0x67, 0xC3, 0xD0, 0x85, 0x1F, 0x3E, 0x39, - 0x51, 0x7B, 0xE8, 0xC3, 0x50, 0xAC, 0x91, 0x09, - 0x03, 0xD4, 0x9C, 0xD2, 0xBF, 0xDF, 0x54, 0x5C, - 0x99, 0x31, 0x6D, 0x03, 0x46, 0x17, 0x0B, 0x73, - 0x9F, 0x0A, 0xDD, 0x5D, 0x53, 0x3C, 0x2C, 0xFC - }, - { - 0x0D, 0xD5, 0x7B, 0x42, 0x3C, 0xC0, 0x1E, 0xB2, - 0x86, 0x13, 0x91, 0xEB, 0x88, 0x6A, 0x0D, 0x17, - 0x07, 0x9B, 0x93, 0x3F, 0xC7, 0x6E, 0xB3, 0xFC, - 0x08, 0xA1, 0x9F, 0x8A, 0x74, 0x95, 0x2C, 0xB6, - 0x8F, 0x6B, 0xCD, 0xC6, 0x44, 0xF7, 0x73, 0x70, - 0x96, 0x6E, 0x4D, 0x13, 0xE8, 0x05, 0x60, 0xBC, - 0xF0, 0x82, 0xEF, 0x04, 0x79, 0xD4, 0x8F, 0xBB, - 0xAB, 0x4D, 0xF0, 0x3B, 0x53, 0xA4, 0xE1, 0x78 - }, - { - 0x4D, 0x8D, 0xC3, 0x92, 0x3E, 0xDC, 0xCD, 0xFC, - 0xE7, 0x00, 0x72, 0x39, 0x8B, 0x8A, 0x3D, 0xA5, - 0xC3, 0x1F, 0xCB, 0x3E, 0xE3, 0xB6, 0x45, 0xC8, - 0x5F, 0x71, 0x7C, 0xBA, 0xEB, 0x4B, 0x67, 0x3A, - 0x19, 0x39, 0x44, 0x25, 0xA5, 0x85, 0xBF, 0xB4, - 0x64, 0xD9, 0x2F, 0x15, 0x97, 0xD0, 0xB7, 0x54, - 0xD1, 0x63, 0xF9, 0x7C, 0xED, 0x34, 0x3B, 0x25, - 0xDB, 0x5A, 0x70, 0xEF, 0x48, 0xEB, 0xB3, 0x4F - }, - { - 0xF0, 0xA5, 0x05, 0x53, 0xE4, 0xDF, 0xB0, 0xC4, - 0xE3, 0xE3, 0xD3, 0xBA, 0x82, 0x03, 0x48, 0x57, - 0xE3, 0xB1, 0xE5, 0x09, 0x18, 0xF5, 0xB8, 0xA7, - 0xD6, 0x98, 0xE1, 0x0D, 0x24, 0x2B, 0x0F, 0xB5, - 0x44, 0xAF, 0x6C, 0x92, 0xD0, 0xC3, 0xAA, 0xF9, - 0x93, 0x22, 0x20, 0x41, 0x61, 0x17, 0xB4, 0xE7, - 0x8E, 0xCB, 0x8A, 0x8F, 0x43, 0x0E, 0x13, 0xB8, - 0x2A, 0x59, 0x15, 0x29, 0x0A, 0x58, 0x19, 0xC5 - }, - { - 0xB1, 0x55, 0x43, 0xF3, 0xF7, 0x36, 0x08, 0x66, - 0x27, 0xCC, 0x53, 0x65, 0xE7, 0xE8, 0x98, 0x8C, - 0x2E, 0xF1, 0x55, 0xC0, 0xFD, 0x4F, 0x42, 0x89, - 0x61, 0xB0, 0x0D, 0x15, 0x26, 0xF0, 0x4D, 0x6D, - 0x6A, 0x65, 0x8B, 0x4B, 0x8E, 0xD3, 0x2C, 0x5D, - 0x86, 0x21, 0xE7, 0xF4, 0xF8, 0xE8, 0xA9, 0x33, - 0xD9, 0xEC, 0xC9, 0xDD, 0x1B, 0x83, 0x33, 0xCB, - 0xE2, 0x8C, 0xFC, 0x37, 0xD9, 0x71, 0x9E, 0x1C - }, - { - 0x7B, 0x4F, 0xA1, 0x58, 0xE4, 0x15, 0xFE, 0xF0, - 0x23, 0x24, 0x72, 0x64, 0xCB, 0xBE, 0x15, 0xD1, - 0x6D, 0x91, 0xA4, 0x44, 0x24, 0xA8, 0xDB, 0x70, - 0x7E, 0xB1, 0xE2, 0x03, 0x3C, 0x30, 0xE9, 0xE1, - 0xE7, 0xC8, 0xC0, 0x86, 0x45, 0x95, 0xD2, 0xCB, - 0x8C, 0x58, 0x0E, 0xB4, 0x7E, 0x9D, 0x16, 0xAB, - 0xBD, 0x7E, 0x44, 0xE8, 0x24, 0xF7, 0xCE, 0xDB, - 0x7D, 0xEF, 0x57, 0x13, 0x0E, 0x52, 0xCF, 0xE9 - }, - { - 0x60, 0x42, 0x4F, 0xF2, 0x32, 0x34, 0xC3, 0x4D, - 0xC9, 0x68, 0x7A, 0xD5, 0x02, 0x86, 0x93, 0x72, - 0xCC, 0x31, 0xA5, 0x93, 0x80, 0x18, 0x6B, 0xC2, - 0x36, 0x1C, 0x83, 0x5D, 0x97, 0x2F, 0x49, 0x66, - 0x6E, 0xB1, 0xAC, 0x69, 0x62, 0x9D, 0xE6, 0x46, - 0xF0, 0x3F, 0x9B, 0x4D, 0xB9, 0xE2, 0xAC, 0xE0, - 0x93, 0xFB, 0xFD, 0xF8, 0xF2, 0x0A, 0xB5, 0xF9, - 0x85, 0x41, 0x97, 0x8B, 0xE8, 0xEF, 0x54, 0x9F - }, - { - 0x74, 0x06, 0x01, 0x8C, 0xE7, 0x04, 0xD8, 0x4F, - 0x5E, 0xB9, 0xC7, 0x9F, 0xEA, 0x97, 0xDA, 0x34, - 0x56, 0x99, 0x46, 0x8A, 0x35, 0x0E, 0xE0, 0xB2, - 0xD0, 0xF3, 0xA4, 0xBF, 0x20, 0x70, 0x30, 0x4E, - 0xA8, 0x62, 0xD7, 0x2A, 0x51, 0xC5, 0x7D, 0x30, - 0x64, 0x94, 0x72, 0x86, 0xF5, 0x31, 0xE0, 0xEA, - 0xF7, 0x56, 0x37, 0x02, 0x26, 0x2E, 0x6C, 0x72, - 0x4A, 0xBF, 0x5E, 0xD8, 0xC8, 0x39, 0x8D, 0x17 - }, - { - 0x14, 0xEF, 0x5C, 0x6D, 0x64, 0x7B, 0x3B, 0xD1, - 0xE6, 0xE3, 0x20, 0x06, 0xC2, 0x31, 0x19, 0x98, - 0x10, 0xDE, 0x5C, 0x4D, 0xC8, 0x8E, 0x70, 0x24, - 0x02, 0x73, 0xB0, 0xEA, 0x18, 0xE6, 0x51, 0xA3, - 0xEB, 0x4F, 0x5C, 0xA3, 0x11, 0x4B, 0x8A, 0x56, - 0x71, 0x69, 0x69, 0xC7, 0xCD, 0xA2, 0x7E, 0x0C, - 0x8D, 0xB8, 0x32, 0xAD, 0x5E, 0x89, 0xA2, 0xDC, - 0x6C, 0xB0, 0xAD, 0xBE, 0x7D, 0x93, 0xAB, 0xD1 - }, - { - 0x38, 0xCF, 0x6C, 0x24, 0xE3, 0xE0, 0x8B, 0xCF, - 0x1F, 0x6C, 0xF3, 0xD1, 0xB1, 0xF6, 0x5B, 0x90, - 0x52, 0x39, 0xA3, 0x11, 0x80, 0x33, 0x24, 0x9E, - 0x44, 0x81, 0x13, 0xEC, 0x63, 0x2E, 0xA6, 0xDC, - 0x34, 0x6F, 0xEE, 0xB2, 0x57, 0x1C, 0x38, 0xBD, - 0x9A, 0x73, 0x98, 0xB2, 0x22, 0x12, 0x80, 0x32, - 0x80, 0x02, 0xB2, 0x3E, 0x1A, 0x45, 0xAD, 0xAF, - 0xFE, 0x66, 0xD9, 0x3F, 0x65, 0x64, 0xEA, 0xA2 - }, - { - 0x6C, 0xD7, 0x20, 0x8A, 0x4B, 0xC7, 0xE7, 0xE5, - 0x62, 0x01, 0xBB, 0xBA, 0x02, 0xA0, 0xF4, 0x89, - 0xCD, 0x38, 0x4A, 0xBE, 0x40, 0xAF, 0xD4, 0x22, - 0x2F, 0x15, 0x8B, 0x3D, 0x98, 0x6E, 0xE7, 0x2A, - 0x54, 0xC5, 0x0F, 0xB6, 0x4F, 0xD4, 0xED, 0x25, - 0x30, 0xED, 0xA2, 0xC8, 0xAF, 0x29, 0x28, 0xA0, - 0xDA, 0x6D, 0x4F, 0x83, 0x0A, 0xE1, 0xC9, 0xDB, - 0x46, 0x9D, 0xFD, 0x97, 0x0F, 0x12, 0xA5, 0x6F - }, - { - 0x65, 0x98, 0x58, 0xF0, 0xB5, 0xC9, 0xED, 0xAB, - 0x5B, 0x94, 0xFD, 0x73, 0x2F, 0x6E, 0x6B, 0x17, - 0xC5, 0x1C, 0xC0, 0x96, 0x10, 0x4F, 0x09, 0xBE, - 0xB3, 0xAF, 0xC3, 0xAA, 0x46, 0x7C, 0x2E, 0xCF, - 0x88, 0x5C, 0x4C, 0x65, 0x41, 0xEF, 0xFA, 0x90, - 0x23, 0xD3, 0xB5, 0x73, 0x8A, 0xE5, 0xA1, 0x4D, - 0x86, 0x7E, 0x15, 0xDB, 0x06, 0xFE, 0x1F, 0x9D, - 0x11, 0x27, 0xB7, 0x7E, 0x1A, 0xAB, 0xB5, 0x16 - }, - { - 0x26, 0xCC, 0xA0, 0x12, 0x6F, 0x5D, 0x1A, 0x81, - 0x3C, 0x62, 0xE5, 0xC7, 0x10, 0x01, 0xC0, 0x46, - 0xF9, 0xC9, 0x20, 0x95, 0x70, 0x45, 0x50, 0xBE, - 0x58, 0x73, 0xA4, 0x95, 0xA9, 0x99, 0xAD, 0x01, - 0x0A, 0x4F, 0x79, 0x49, 0x1F, 0x24, 0xF2, 0x86, - 0x50, 0x0A, 0xDC, 0xE1, 0xA1, 0x37, 0xBC, 0x20, - 0x84, 0xE4, 0x94, 0x9F, 0x5B, 0x72, 0x94, 0xCE, - 0xFE, 0x51, 0xEC, 0xAF, 0xF8, 0xE9, 0x5C, 0xBA - }, - { - 0x41, 0x47, 0xC1, 0xF5, 0x51, 0x72, 0x78, 0x8C, - 0x55, 0x67, 0xC5, 0x61, 0xFE, 0xEF, 0x87, 0x6F, - 0x62, 0x1F, 0xFF, 0x1C, 0xE8, 0x77, 0x86, 0xB8, - 0x46, 0x76, 0x37, 0xE7, 0x0D, 0xFB, 0xCD, 0x0D, - 0xBD, 0xB6, 0x41, 0x5C, 0xB6, 0x00, 0x95, 0x4A, - 0xB9, 0xC0, 0x4C, 0x0E, 0x45, 0x7E, 0x62, 0x5B, - 0x40, 0x72, 0x22, 0xC0, 0xFE, 0x1A, 0xE2, 0x1B, - 0x21, 0x43, 0x68, 0x8A, 0xDA, 0x94, 0xDC, 0x58 - }, - { - 0x5B, 0x1B, 0xF1, 0x54, 0xC6, 0x2A, 0x8A, 0xF6, - 0xE9, 0x3D, 0x35, 0xF1, 0x8F, 0x7F, 0x90, 0xAB, - 0xB1, 0x6A, 0x6E, 0xF0, 0xE8, 0xD1, 0xAE, 0xCD, - 0x11, 0x8B, 0xF7, 0x01, 0x67, 0xBA, 0xB2, 0xAF, - 0x08, 0x93, 0x5C, 0x6F, 0xDC, 0x06, 0x63, 0xCE, - 0x74, 0x48, 0x2D, 0x17, 0xA8, 0xE5, 0x4B, 0x54, - 0x6D, 0x1C, 0x29, 0x66, 0x31, 0xC6, 0x5F, 0x3B, - 0x52, 0x2A, 0x51, 0x58, 0x39, 0xD4, 0x3D, 0x71 - }, - { - 0x9F, 0x60, 0x04, 0x19, 0xA4, 0xE8, 0xF4, 0xFB, - 0x83, 0x4C, 0x24, 0xB0, 0xF7, 0xFC, 0x13, 0xBF, - 0x4E, 0x27, 0x9D, 0x98, 0xE8, 0xA3, 0xC7, 0x65, - 0xEE, 0x93, 0x49, 0x17, 0x40, 0x3E, 0x3A, 0x66, - 0x09, 0x71, 0x82, 0xEA, 0x21, 0x45, 0x3C, 0xB6, - 0x3E, 0xBB, 0xE8, 0xB7, 0x3A, 0x9C, 0x21, 0x67, - 0x59, 0x64, 0x46, 0x43, 0x8C, 0x57, 0x62, 0x7F, - 0x33, 0x0B, 0xAD, 0xD4, 0xF5, 0x69, 0xF7, 0xD6 - }, - { - 0x45, 0x7E, 0xF6, 0x46, 0x6A, 0x89, 0x24, 0xFD, - 0x80, 0x11, 0xA3, 0x44, 0x71, 0xA5, 0xA1, 0xAC, - 0x8C, 0xCD, 0x9B, 0xD0, 0xD0, 0x7A, 0x97, 0x41, - 0x4A, 0xC9, 0x43, 0x02, 0x1C, 0xE4, 0xB9, 0xE4, - 0xB9, 0xC8, 0xDB, 0x0A, 0x28, 0xF0, 0x16, 0xED, - 0x43, 0xB1, 0x54, 0x24, 0x81, 0x99, 0x00, 0x22, - 0x14, 0x7B, 0x31, 0x3E, 0x19, 0x46, 0x71, 0x13, - 0x1E, 0x70, 0x8D, 0xD4, 0x3A, 0x3E, 0xD7, 0xDC - }, - { - 0x99, 0x97, 0xB2, 0x19, 0x4D, 0x9A, 0xF6, 0xDF, - 0xCB, 0x91, 0x43, 0xF4, 0x1C, 0x0E, 0xD8, 0x3D, - 0x3A, 0x3F, 0x43, 0x88, 0x36, 0x11, 0x03, 0xD3, - 0x8C, 0x2A, 0x49, 0xB2, 0x80, 0xA5, 0x81, 0x21, - 0x27, 0x15, 0xFD, 0x90, 0x8D, 0x41, 0xC6, 0x51, - 0xF5, 0xC7, 0x15, 0xCA, 0x38, 0xC0, 0xCE, 0x28, - 0x30, 0xA3, 0x7E, 0x00, 0xE5, 0x08, 0xCE, 0xD1, - 0xBC, 0xDC, 0x32, 0x0E, 0x5E, 0x4D, 0x1E, 0x2E - }, - { - 0x5C, 0x6B, 0xBF, 0x16, 0xBA, 0xA1, 0x80, 0xF9, - 0x86, 0xBD, 0x40, 0xA1, 0x28, 0x7E, 0xD4, 0xC5, - 0x49, 0x77, 0x0E, 0x72, 0x84, 0x85, 0x8F, 0xC4, - 0x7B, 0xC2, 0x1A, 0xB9, 0x5E, 0xBB, 0xF3, 0x37, - 0x4B, 0x4E, 0xE3, 0xFD, 0x9F, 0x2A, 0xF6, 0x0F, - 0x33, 0x95, 0x22, 0x1B, 0x2A, 0xCC, 0x76, 0xF2, - 0xD3, 0x4C, 0x13, 0x29, 0x54, 0x04, 0x9F, 0x8A, - 0x3A, 0x99, 0x6F, 0x1E, 0x32, 0xEC, 0x84, 0xE5 - }, - { - 0xD1, 0x0B, 0xF9, 0xA1, 0x5B, 0x1C, 0x9F, 0xC8, - 0xD4, 0x1F, 0x89, 0xBB, 0x14, 0x0B, 0xF0, 0xBE, - 0x08, 0xD2, 0xF3, 0x66, 0x61, 0x76, 0xD1, 0x3B, - 0xAA, 0xC4, 0xD3, 0x81, 0x35, 0x8A, 0xD0, 0x74, - 0xC9, 0xD4, 0x74, 0x8C, 0x30, 0x05, 0x20, 0xEB, - 0x02, 0x6D, 0xAE, 0xAE, 0xA7, 0xC5, 0xB1, 0x58, - 0x89, 0x2F, 0xDE, 0x4E, 0x8E, 0xC1, 0x7D, 0xC9, - 0x98, 0xDC, 0xD5, 0x07, 0xDF, 0x26, 0xEB, 0x63 - }, - { - 0x2F, 0xC6, 0xE6, 0x9F, 0xA2, 0x6A, 0x89, 0xA5, - 0xED, 0x26, 0x90, 0x92, 0xCB, 0x9B, 0x2A, 0x44, - 0x9A, 0x44, 0x09, 0xA7, 0xA4, 0x40, 0x11, 0xEE, - 0xCA, 0xD1, 0x3D, 0x7C, 0x4B, 0x04, 0x56, 0x60, - 0x2D, 0x40, 0x2F, 0xA5, 0x84, 0x4F, 0x1A, 0x7A, - 0x75, 0x81, 0x36, 0xCE, 0x3D, 0x5D, 0x8D, 0x0E, - 0x8B, 0x86, 0x92, 0x1F, 0xFF, 0xF4, 0xF6, 0x92, - 0xDD, 0x95, 0xBD, 0xC8, 0xE5, 0xFF, 0x00, 0x52 - }, - { - 0xFC, 0xBE, 0x8B, 0xE7, 0xDC, 0xB4, 0x9A, 0x32, - 0xDB, 0xDF, 0x23, 0x94, 0x59, 0xE2, 0x63, 0x08, - 0xB8, 0x4D, 0xFF, 0x1E, 0xA4, 0x80, 0xDF, 0x8D, - 0x10, 0x4E, 0xEF, 0xF3, 0x4B, 0x46, 0xFA, 0xE9, - 0x86, 0x27, 0xB4, 0x50, 0xC2, 0x26, 0x7D, 0x48, - 0xC0, 0x94, 0x6A, 0x69, 0x7C, 0x5B, 0x59, 0x53, - 0x14, 0x52, 0xAC, 0x04, 0x84, 0xF1, 0xC8, 0x4E, - 0x3A, 0x33, 0xD0, 0xC3, 0x39, 0xBB, 0x2E, 0x28 - }, - { - 0xA1, 0x90, 0x93, 0xA6, 0xE3, 0xBC, 0xF5, 0x95, - 0x2F, 0x85, 0x0F, 0x20, 0x30, 0xF6, 0x9B, 0x96, - 0x06, 0xF1, 0x47, 0xF9, 0x0B, 0x8B, 0xAE, 0xE3, - 0x36, 0x2D, 0xA7, 0x1D, 0x9F, 0x35, 0xB4, 0x4E, - 0xF9, 0xD8, 0xF0, 0xA7, 0x71, 0x2B, 0xA1, 0x87, - 0x7F, 0xDD, 0xCD, 0x2D, 0x8E, 0xA8, 0xF1, 0xE5, - 0xA7, 0x73, 0xD0, 0xB7, 0x45, 0xD4, 0x72, 0x56, - 0x05, 0x98, 0x3A, 0x2D, 0xE9, 0x01, 0xF8, 0x03 - }, - { - 0x3C, 0x20, 0x06, 0x42, 0x3F, 0x73, 0xE2, 0x68, - 0xFA, 0x59, 0xD2, 0x92, 0x03, 0x77, 0xEB, 0x29, - 0xA4, 0xF9, 0xA8, 0xB4, 0x62, 0xBE, 0x15, 0x98, - 0x3E, 0xE3, 0xB8, 0x5A, 0xE8, 0xA7, 0x8E, 0x99, - 0x26, 0x33, 0x58, 0x1A, 0x90, 0x99, 0x89, 0x3B, - 0x63, 0xDB, 0x30, 0x24, 0x1C, 0x34, 0xF6, 0x43, - 0x02, 0x7D, 0xC8, 0x78, 0x27, 0x9A, 0xF5, 0x85, - 0x0D, 0x7E, 0x2D, 0x4A, 0x26, 0x53, 0x07, 0x3A - }, - { - 0xD0, 0xF2, 0xF2, 0xE3, 0x78, 0x76, 0x53, 0xF7, - 0x7C, 0xCE, 0x2F, 0xA2, 0x48, 0x35, 0x78, 0x5B, - 0xBD, 0x0C, 0x43, 0x3F, 0xC7, 0x79, 0x46, 0x5A, - 0x11, 0x51, 0x49, 0x90, 0x5A, 0x9D, 0xD1, 0xCB, - 0x82, 0x7A, 0x62, 0x85, 0x06, 0xD4, 0x57, 0xFC, - 0xF1, 0x24, 0xA0, 0xC2, 0xAE, 0xF9, 0xCE, 0x2D, - 0x2A, 0x0A, 0x0F, 0x63, 0x54, 0x55, 0x70, 0xD8, - 0x66, 0x7F, 0xF9, 0xE2, 0xEB, 0xA0, 0x73, 0x34 - }, - { - 0x78, 0xA9, 0xFC, 0x04, 0x8E, 0x25, 0xC6, 0xDC, - 0xB5, 0xDE, 0x45, 0x66, 0x7D, 0xE8, 0xFF, 0xDD, - 0x3A, 0x93, 0x71, 0x11, 0x41, 0xD5, 0x94, 0xE9, - 0xFA, 0x62, 0xA9, 0x59, 0x47, 0x5D, 0xA6, 0x07, - 0x5E, 0xA8, 0xF0, 0x91, 0x6E, 0x84, 0xE4, 0x5A, - 0xD9, 0x11, 0xB7, 0x54, 0x67, 0x07, 0x7E, 0xE5, - 0x2D, 0x2C, 0x9A, 0xEB, 0xF4, 0xD5, 0x8F, 0x20, - 0xCE, 0x4A, 0x3A, 0x00, 0x45, 0x8B, 0x05, 0xD4 - }, - { - 0x45, 0x81, 0x3F, 0x44, 0x17, 0x69, 0xAB, 0x6E, - 0xD3, 0x7D, 0x34, 0x9F, 0xF6, 0xE7, 0x22, 0x67, - 0xD7, 0x6A, 0xE6, 0xBB, 0x3E, 0x3C, 0x61, 0x2E, - 0xC0, 0x5C, 0x6E, 0x02, 0xA1, 0x2A, 0xF5, 0xA3, - 0x7C, 0x91, 0x8B, 0x52, 0xBF, 0x74, 0x26, 0x7C, - 0x3F, 0x6A, 0x3F, 0x18, 0x3A, 0x80, 0x64, 0xFF, - 0x84, 0xC0, 0x7B, 0x19, 0x3D, 0x08, 0x06, 0x67, - 0x89, 0xA0, 0x1A, 0xCC, 0xDB, 0x6F, 0x93, 0x40 - }, - { - 0x95, 0x6D, 0xA1, 0xC6, 0x8D, 0x83, 0xA7, 0xB8, - 0x81, 0xE0, 0x1B, 0x9A, 0x96, 0x6C, 0x3C, 0x0B, - 0xF2, 0x7F, 0x68, 0x60, 0x6A, 0x8B, 0x71, 0xD4, - 0x57, 0xBD, 0x01, 0x6D, 0x4C, 0x41, 0xDD, 0x8A, - 0x38, 0x0C, 0x70, 0x9A, 0x29, 0x6C, 0xB4, 0xC6, - 0x54, 0x47, 0x92, 0x92, 0x0F, 0xD7, 0x88, 0x83, - 0x57, 0x71, 0xA0, 0x7D, 0x4A, 0x16, 0xFB, 0x52, - 0xED, 0x48, 0x05, 0x03, 0x31, 0xDC, 0x4C, 0x8B - }, - { - 0xDF, 0x18, 0x6C, 0x2D, 0xC0, 0x9C, 0xAA, 0x48, - 0xE1, 0x4E, 0x94, 0x2F, 0x75, 0xDE, 0x5A, 0xC1, - 0xB7, 0xA2, 0x1E, 0x4F, 0x9F, 0x07, 0x2A, 0x5B, - 0x37, 0x1E, 0x09, 0xE0, 0x73, 0x45, 0xB0, 0x74, - 0x0C, 0x76, 0x17, 0x7B, 0x01, 0x27, 0x88, 0x08, - 0xFE, 0xC0, 0x25, 0xED, 0xED, 0x98, 0x22, 0xC1, - 0x22, 0xAF, 0xD1, 0xC6, 0x3E, 0x6F, 0x0C, 0xE2, - 0xE3, 0x26, 0x31, 0x04, 0x10, 0x63, 0x14, 0x5C - }, - { - 0x87, 0x47, 0x56, 0x40, 0x96, 0x6A, 0x9F, 0xDC, - 0xD6, 0xD3, 0xA3, 0xB5, 0xA2, 0xCC, 0xA5, 0xC0, - 0x8F, 0x0D, 0x88, 0x2B, 0x10, 0x24, 0x3C, 0x0E, - 0xC1, 0xBF, 0x3C, 0x6B, 0x1C, 0x37, 0xF2, 0xCD, - 0x32, 0x12, 0xF1, 0x9A, 0x05, 0x78, 0x64, 0x47, - 0x7D, 0x5E, 0xAF, 0x8F, 0xAE, 0xD7, 0x3F, 0x29, - 0x37, 0xC7, 0x68, 0xA0, 0xAF, 0x41, 0x5E, 0x84, - 0xBB, 0xCE, 0x6B, 0xD7, 0xDE, 0x23, 0xB6, 0x60 - }, - { - 0xC3, 0xB5, 0x73, 0xBB, 0xE1, 0x09, 0x49, 0xA0, - 0xFB, 0xD4, 0xFF, 0x88, 0x4C, 0x44, 0x6F, 0x22, - 0x29, 0xB7, 0x69, 0x02, 0xF9, 0xDF, 0xDB, 0xB8, - 0xA0, 0x35, 0x3D, 0xA5, 0xC8, 0x3C, 0xA1, 0x4E, - 0x81, 0x51, 0xBB, 0xAA, 0xC8, 0x2F, 0xD1, 0x57, - 0x6A, 0x00, 0x9A, 0xDC, 0x6F, 0x19, 0x35, 0xCF, - 0x26, 0xED, 0xD4, 0xF1, 0xFB, 0x8D, 0xA4, 0x83, - 0xE6, 0xC5, 0xCD, 0x9D, 0x89, 0x23, 0xAD, 0xC3 - }, - { - 0xB0, 0x9D, 0x8D, 0x0B, 0xBA, 0x8A, 0x72, 0x86, - 0xE4, 0x35, 0x68, 0xF7, 0x90, 0x75, 0x50, 0xE4, - 0x20, 0x36, 0xD6, 0x74, 0xE3, 0xC8, 0xFC, 0x34, - 0xD8, 0xCA, 0x46, 0xF7, 0x71, 0xD6, 0x46, 0x6B, - 0x70, 0xFB, 0x60, 0x58, 0x75, 0xF6, 0xA8, 0x63, - 0xC8, 0x77, 0xD1, 0x2F, 0x07, 0x06, 0x3F, 0xDC, - 0x2E, 0x90, 0xCC, 0xD4, 0x59, 0xB1, 0x91, 0x0D, - 0xCD, 0x52, 0xD8, 0xF1, 0x0B, 0x2B, 0x0A, 0x15 - }, - { - 0xAF, 0x3A, 0x22, 0xBF, 0x75, 0xB2, 0x1A, 0xBF, - 0xB0, 0xAC, 0xD5, 0x44, 0x22, 0xBA, 0x1B, 0x73, - 0x00, 0xA9, 0x52, 0xEF, 0xF0, 0x2E, 0xBE, 0xB6, - 0x5B, 0x5C, 0x23, 0x44, 0x71, 0xA9, 0x8D, 0xF3, - 0x2F, 0x4F, 0x96, 0x43, 0xCE, 0x19, 0x04, 0x10, - 0x8A, 0x16, 0x87, 0x67, 0x92, 0x42, 0x80, 0xBD, - 0x76, 0xC8, 0x3F, 0x8C, 0x82, 0xD9, 0xA7, 0x9D, - 0x92, 0x59, 0xB1, 0x95, 0x36, 0x2A, 0x2A, 0x04 - }, - { - 0xBF, 0x4F, 0xF2, 0x22, 0x1B, 0x7E, 0x69, 0x57, - 0xA7, 0x24, 0xCD, 0x96, 0x4A, 0xA3, 0xD5, 0xD0, - 0xD9, 0x94, 0x1F, 0x54, 0x04, 0x13, 0x75, 0x2F, - 0x46, 0x99, 0xD8, 0x10, 0x1B, 0x3E, 0x53, 0x75, - 0x08, 0xBF, 0x09, 0xF8, 0x50, 0x8B, 0x31, 0x77, - 0x36, 0xFF, 0xD2, 0x65, 0xF2, 0x84, 0x7A, 0xA7, - 0xD8, 0x4B, 0xD2, 0xD9, 0x75, 0x69, 0xC4, 0x9D, - 0x63, 0x2A, 0xED, 0x99, 0x45, 0xE5, 0xFA, 0x5E - }, - { - 0x9C, 0x6B, 0x6B, 0x78, 0x19, 0x9B, 0x1B, 0xDA, - 0xCB, 0x43, 0x00, 0xE3, 0x14, 0x79, 0xFA, 0x62, - 0x2A, 0x6B, 0x5B, 0xC8, 0x0D, 0x46, 0x78, 0xA6, - 0x07, 0x8F, 0x88, 0xA8, 0x26, 0x8C, 0xD7, 0x20, - 0x6A, 0x27, 0x99, 0xE8, 0xD4, 0x62, 0x1A, 0x46, - 0x4E, 0xF6, 0xB4, 0x3D, 0xD8, 0xAD, 0xFF, 0xE9, - 0x7C, 0xAF, 0x22, 0x1B, 0x22, 0xB6, 0xB8, 0x77, - 0x8B, 0x14, 0x9A, 0x82, 0x2A, 0xEF, 0xBB, 0x09 - }, - { - 0x89, 0x06, 0x56, 0xF0, 0x9C, 0x99, 0xD2, 0x80, - 0xB5, 0xEC, 0xB3, 0x81, 0xF5, 0x64, 0x27, 0xB8, - 0x13, 0x75, 0x1B, 0xC6, 0x52, 0xC7, 0x82, 0x80, - 0x78, 0xB2, 0x3A, 0x4A, 0xF8, 0x3B, 0x4E, 0x3A, - 0x61, 0xFD, 0xBA, 0xC6, 0x1F, 0x89, 0xBE, 0xE8, - 0x4E, 0xA6, 0xBE, 0xE7, 0x60, 0xC0, 0x47, 0xF2, - 0x5C, 0x6B, 0x0A, 0x20, 0x1C, 0x69, 0xA3, 0x8F, - 0xD6, 0xFD, 0x97, 0x1A, 0xF1, 0x85, 0x88, 0xBB - }, - { - 0x31, 0xA0, 0x46, 0xF7, 0x88, 0x2F, 0xFE, 0x6F, - 0x83, 0xCE, 0x47, 0x2E, 0x9A, 0x07, 0x01, 0x83, - 0x2E, 0xC7, 0xB3, 0xF7, 0x6F, 0xBC, 0xFD, 0x1D, - 0xF6, 0x0F, 0xE3, 0xEA, 0x48, 0xFD, 0xE1, 0x65, - 0x12, 0x54, 0x24, 0x7C, 0x3F, 0xD9, 0x5E, 0x10, - 0x0F, 0x91, 0x72, 0x73, 0x1E, 0x17, 0xFD, 0x52, - 0x97, 0xC1, 0x1F, 0x4B, 0xB3, 0x28, 0x36, 0x3C, - 0xA3, 0x61, 0x62, 0x4A, 0x81, 0xAF, 0x79, 0x7C - }, - { - 0x27, 0xA6, 0x0B, 0x2D, 0x00, 0xE7, 0xA6, 0x71, - 0xD4, 0x7D, 0x0A, 0xEC, 0x2A, 0x68, 0x6A, 0x0A, - 0xC0, 0x4B, 0x52, 0xF4, 0x0A, 0xB6, 0x62, 0x90, - 0x28, 0xEB, 0x7D, 0x13, 0xF4, 0xBA, 0xA9, 0x9A, - 0xC0, 0xFE, 0x46, 0xEE, 0x6C, 0x81, 0x49, 0x44, - 0xF2, 0xF4, 0xB4, 0xD2, 0x0E, 0x93, 0x78, 0xE4, - 0x84, 0x7E, 0xA4, 0x4C, 0x13, 0x17, 0x80, 0x91, - 0xE2, 0x77, 0xB8, 0x7E, 0xA7, 0xA5, 0x57, 0x11 - }, - { - 0x8B, 0x5C, 0xCE, 0xF1, 0x94, 0x16, 0x2C, 0x1F, - 0x19, 0xD6, 0x8F, 0x91, 0xE0, 0xB0, 0x92, 0x8F, - 0x28, 0x9E, 0xC5, 0x28, 0x37, 0x20, 0x84, 0x0C, - 0x2F, 0x73, 0xD2, 0x53, 0x11, 0x12, 0x38, 0xDC, - 0xFE, 0x94, 0xAF, 0x2B, 0x59, 0xC2, 0xC1, 0xCA, - 0x25, 0x91, 0x90, 0x1A, 0x7B, 0xC0, 0x60, 0xE7, - 0x45, 0x9B, 0x6C, 0x47, 0xDF, 0x0F, 0x71, 0x70, - 0x1A, 0x35, 0xCC, 0x0A, 0xA8, 0x31, 0xB5, 0xB6 - }, - { - 0x57, 0xAB, 0x6C, 0x4B, 0x22, 0x29, 0xAE, 0xB3, - 0xB7, 0x04, 0x76, 0xD8, 0x03, 0xCD, 0x63, 0x81, - 0x2F, 0x10, 0x7C, 0xE6, 0xDA, 0x17, 0xFE, 0xD9, - 0xB1, 0x78, 0x75, 0xE8, 0xF8, 0x6C, 0x72, 0x4F, - 0x49, 0xE0, 0x24, 0xCB, 0xF3, 0xA1, 0xB8, 0xB1, - 0x19, 0xC5, 0x03, 0x57, 0x65, 0x2B, 0x81, 0x87, - 0x9D, 0x2A, 0xDE, 0x2D, 0x58, 0x8B, 0x9E, 0x4F, - 0x7C, 0xED, 0xBA, 0x0E, 0x46, 0x44, 0xC9, 0xEE - }, - { - 0x01, 0x90, 0xA8, 0xDA, 0xC3, 0x20, 0xA7, 0x39, - 0xF3, 0x22, 0xE1, 0x57, 0x31, 0xAA, 0x14, 0x0D, - 0xDA, 0xF5, 0xBE, 0xD2, 0x94, 0xD5, 0xC8, 0x2E, - 0x54, 0xFE, 0xF2, 0x9F, 0x21, 0x4E, 0x18, 0xAA, - 0xFA, 0xA8, 0x4F, 0x8B, 0xE9, 0x9A, 0xF6, 0x29, - 0x50, 0x26, 0x6B, 0x8F, 0x90, 0x1F, 0x15, 0xDD, - 0x4C, 0x5D, 0x35, 0x51, 0x6F, 0xC3, 0x5B, 0x4C, - 0xAB, 0x2E, 0x96, 0xE4, 0x69, 0x5B, 0xBE, 0x1C - }, - { - 0xD1, 0x4D, 0x7C, 0x4C, 0x41, 0x5E, 0xEB, 0x0E, - 0x10, 0xB1, 0x59, 0x22, 0x4B, 0xEA, 0x12, 0x7E, - 0xBD, 0x84, 0xF9, 0x59, 0x1C, 0x70, 0x2A, 0x33, - 0x0F, 0x5B, 0xB7, 0xBB, 0x7A, 0xA4, 0x4E, 0xA3, - 0x9D, 0xE6, 0xED, 0x01, 0xF1, 0x8D, 0xA7, 0xAD, - 0xF4, 0x0C, 0xFB, 0x97, 0xC5, 0xD1, 0x52, 0xC2, - 0x75, 0x28, 0x82, 0x4B, 0x21, 0xE2, 0x39, 0x52, - 0x6A, 0xF8, 0xF3, 0x6B, 0x21, 0x4E, 0x0C, 0xFB - }, - { - 0xBE, 0x28, 0xC4, 0xBE, 0x70, 0x69, 0x70, 0x48, - 0x8F, 0xAC, 0x7D, 0x29, 0xC3, 0xBD, 0x5C, 0x4E, - 0x98, 0x60, 0x85, 0xC4, 0xC3, 0x33, 0x2F, 0x1F, - 0x3F, 0xD3, 0x09, 0x73, 0xDB, 0x61, 0x41, 0x64, - 0xBA, 0x2F, 0x31, 0xA7, 0x88, 0x75, 0xFF, 0xDC, - 0x15, 0x03, 0x25, 0xC8, 0x83, 0x27, 0xA9, 0x44, - 0x3E, 0xD0, 0x4F, 0xDF, 0xE5, 0xBE, 0x93, 0x87, - 0x6D, 0x16, 0x28, 0x56, 0x0C, 0x76, 0x4A, 0x80 - }, - { - 0x03, 0x1D, 0xA1, 0x06, 0x9E, 0x3A, 0x2E, 0x9C, - 0x33, 0x82, 0xE4, 0x36, 0xFF, 0xD7, 0x9D, 0xF7, - 0x4B, 0x1C, 0xA6, 0xA8, 0xAD, 0xB2, 0xDE, 0xAB, - 0xE6, 0x76, 0xAB, 0x45, 0x99, 0x4C, 0xBC, 0x05, - 0x4F, 0x03, 0x7D, 0x2F, 0x0E, 0xAC, 0xE8, 0x58, - 0xD3, 0x2C, 0x14, 0xE2, 0xD1, 0xC8, 0xB4, 0x60, - 0x77, 0x30, 0x8E, 0x3B, 0xDC, 0x2C, 0x1B, 0x53, - 0x17, 0x2E, 0xCF, 0x7A, 0x8C, 0x14, 0xE3, 0x49 - }, - { - 0x46, 0x65, 0xCE, 0xF8, 0xBA, 0x4D, 0xB4, 0xD0, - 0xAC, 0xB1, 0x18, 0xF2, 0x98, 0x7F, 0x0B, 0xB0, - 0x9F, 0x8F, 0x86, 0xAA, 0x44, 0x5A, 0xA3, 0xD5, - 0xFC, 0x9A, 0x8B, 0x34, 0x68, 0x64, 0x78, 0x74, - 0x89, 0xE8, 0xFC, 0xEC, 0xC1, 0x25, 0xD1, 0x7E, - 0x9B, 0x56, 0xE1, 0x29, 0x88, 0xEA, 0xC5, 0xEC, - 0xC7, 0x28, 0x68, 0x83, 0xDB, 0x06, 0x61, 0xB8, - 0xFF, 0x05, 0xDA, 0x2A, 0xFF, 0xF3, 0x0F, 0xE4 - }, - { - 0x63, 0xB7, 0x03, 0x2E, 0x5F, 0x93, 0x0C, 0xC9, - 0x93, 0x95, 0x17, 0xF9, 0xE9, 0x86, 0x81, 0x6C, - 0xFB, 0xEC, 0x2B, 0xE5, 0x9B, 0x95, 0x68, 0xB1, - 0x3F, 0x2E, 0xAD, 0x05, 0xBA, 0xE7, 0x77, 0x7C, - 0xAB, 0x62, 0x0C, 0x66, 0x59, 0x40, 0x4F, 0x74, - 0x09, 0xE4, 0x19, 0x9A, 0x3B, 0xE5, 0xF7, 0x86, - 0x5A, 0xA7, 0xCB, 0xDF, 0x8C, 0x42, 0x53, 0xF7, - 0xE8, 0x21, 0x9B, 0x1B, 0xD5, 0xF4, 0x6F, 0xEA - }, - { - 0x9F, 0x09, 0xBF, 0x09, 0x3A, 0x2B, 0x0F, 0xF8, - 0xC2, 0x63, 0x4B, 0x49, 0xE3, 0x7F, 0x1B, 0x21, - 0x35, 0xB4, 0x47, 0xAA, 0x91, 0x44, 0xC9, 0x78, - 0x7D, 0xBF, 0xD9, 0x21, 0x29, 0x31, 0x6C, 0x99, - 0xE8, 0x8A, 0xAB, 0x8A, 0x21, 0xFD, 0xEF, 0x23, - 0x72, 0xD1, 0x18, 0x9A, 0xEC, 0x50, 0x0F, 0x95, - 0x77, 0x5F, 0x1F, 0x92, 0xBF, 0xB4, 0x55, 0x45, - 0xE4, 0x25, 0x9F, 0xB9, 0xB7, 0xB0, 0x2D, 0x14 - }, - { - 0xF9, 0xF8, 0x49, 0x3C, 0x68, 0x08, 0x88, 0x07, - 0xDF, 0x7F, 0x6A, 0x26, 0x93, 0xD6, 0x4E, 0xA5, - 0x9F, 0x03, 0xE9, 0xE0, 0x5A, 0x22, 0x3E, 0x68, - 0x52, 0x4C, 0xA3, 0x21, 0x95, 0xA4, 0x73, 0x4B, - 0x65, 0x4F, 0xCE, 0xA4, 0xD2, 0x73, 0x4C, 0x86, - 0x6C, 0xF9, 0x5C, 0x88, 0x9F, 0xB1, 0x0C, 0x49, - 0x15, 0x9B, 0xE2, 0xF5, 0x04, 0x3D, 0xC9, 0x8B, - 0xB5, 0x5E, 0x02, 0xEF, 0x7B, 0xDC, 0xB0, 0x82 - }, - { - 0x3C, 0x9A, 0x73, 0x59, 0xAB, 0x4F, 0xEB, 0xCE, - 0x07, 0xB2, 0x0A, 0xC4, 0x47, 0xB0, 0x6A, 0x24, - 0x0B, 0x7F, 0xE1, 0xDA, 0xE5, 0x43, 0x9C, 0x49, - 0xB6, 0x0B, 0x58, 0x19, 0xF7, 0x81, 0x2E, 0x4C, - 0x17, 0x24, 0x06, 0xC1, 0xAA, 0xC3, 0x16, 0x71, - 0x3C, 0xF0, 0xDD, 0xED, 0x10, 0x38, 0x07, 0x72, - 0x58, 0xE2, 0xEF, 0xF5, 0xB3, 0x39, 0x13, 0xD9, - 0xD9, 0x5C, 0xAE, 0xB4, 0xE6, 0xC6, 0xB9, 0x70 - }, - { - 0xAD, 0x6A, 0xAB, 0x80, 0x84, 0x51, 0x0E, 0x82, - 0x2C, 0xFC, 0xE8, 0x62, 0x5D, 0x62, 0xCF, 0x4D, - 0xE6, 0x55, 0xF4, 0x76, 0x38, 0x84, 0xC7, 0x1E, - 0x80, 0xBA, 0xB9, 0xAC, 0x9D, 0x53, 0x18, 0xDB, - 0xA4, 0xA6, 0x03, 0x3E, 0xD2, 0x90, 0x84, 0xE6, - 0x52, 0x16, 0xC0, 0x31, 0x60, 0x6C, 0xA1, 0x76, - 0x15, 0xDC, 0xFE, 0x3B, 0xA1, 0x1D, 0x26, 0x85, - 0x1A, 0xE0, 0x99, 0x9C, 0xA6, 0xE2, 0x32, 0xCF - }, - { - 0x15, 0x6E, 0x9E, 0x62, 0x61, 0x37, 0x4C, 0x9D, - 0xC8, 0x84, 0xF3, 0x6E, 0x70, 0xF0, 0xFE, 0x1A, - 0xB9, 0x29, 0x79, 0x97, 0xB8, 0x36, 0xFA, 0x7D, - 0x17, 0x0A, 0x9C, 0x9E, 0xBF, 0x57, 0x5B, 0x88, - 0x1E, 0x7B, 0xCE, 0xA4, 0x4D, 0x6C, 0x02, 0x48, - 0xD3, 0x55, 0x97, 0x90, 0x71, 0x54, 0x82, 0x89, - 0x55, 0xBE, 0x19, 0x13, 0x58, 0x52, 0xF9, 0x22, - 0x88, 0x15, 0xEC, 0xA0, 0x24, 0xA8, 0xAD, 0xFB - }, - { - 0x42, 0x15, 0x40, 0x76, 0x33, 0xF4, 0xCC, 0xA9, - 0xB6, 0x78, 0x8B, 0xE9, 0x3E, 0x6A, 0xA3, 0xD9, - 0x63, 0xC7, 0xD6, 0xCE, 0x4B, 0x14, 0x72, 0x47, - 0x09, 0x9F, 0x46, 0xA3, 0xAC, 0xB5, 0x00, 0xA3, - 0x00, 0x38, 0xCB, 0x3E, 0x78, 0x8C, 0x3D, 0x29, - 0xF1, 0x32, 0xAD, 0x84, 0x4E, 0x80, 0xE9, 0xE9, - 0x92, 0x51, 0xF6, 0xDB, 0x96, 0xAC, 0xD8, 0xA0, - 0x91, 0xCF, 0xC7, 0x70, 0xAF, 0x53, 0x84, 0x7B - }, - { - 0x1C, 0x07, 0x7E, 0x27, 0x9D, 0xE6, 0x54, 0x85, - 0x23, 0x50, 0x2B, 0x6D, 0xF8, 0x00, 0xFF, 0xDA, - 0xB5, 0xE2, 0xC3, 0xE9, 0x44, 0x2E, 0xB8, 0x38, - 0xF5, 0x8C, 0x29, 0x5F, 0x3B, 0x14, 0x7C, 0xEF, - 0x9D, 0x70, 0x1C, 0x41, 0xC3, 0x21, 0x28, 0x3F, - 0x00, 0xC7, 0x1A, 0xFF, 0xA0, 0x61, 0x93, 0x10, - 0x39, 0x91, 0x26, 0x29, 0x5B, 0x78, 0xDD, 0x4D, - 0x1A, 0x74, 0x57, 0x2E, 0xF9, 0xED, 0x51, 0x35 - }, - { - 0xF0, 0x7A, 0x55, 0x5F, 0x49, 0xFE, 0x48, 0x1C, - 0xF4, 0xCD, 0x0A, 0x87, 0xB7, 0x1B, 0x82, 0xE4, - 0xA9, 0x50, 0x64, 0xD0, 0x66, 0x77, 0xFD, 0xD9, - 0x0A, 0x0E, 0xB5, 0x98, 0x87, 0x7B, 0xA1, 0xC8, - 0x3D, 0x46, 0x77, 0xB3, 0x93, 0xC3, 0xA3, 0xB6, - 0x66, 0x1C, 0x42, 0x1F, 0x5B, 0x12, 0xCB, 0x99, - 0xD2, 0x03, 0x76, 0xBA, 0x72, 0x75, 0xC2, 0xF3, - 0xA8, 0xF5, 0xA9, 0xB7, 0x82, 0x17, 0x20, 0xDA - }, - { - 0xB5, 0x91, 0x1B, 0x38, 0x0D, 0x20, 0xC7, 0xB0, - 0x43, 0x23, 0xE4, 0x02, 0x6B, 0x38, 0xE2, 0x00, - 0xF5, 0x34, 0x25, 0x92, 0x33, 0xB5, 0x81, 0xE0, - 0x2C, 0x1E, 0x3E, 0x2D, 0x84, 0x38, 0xD6, 0xC6, - 0x6D, 0x5A, 0x4E, 0xB2, 0x01, 0xD5, 0xA8, 0xB7, - 0x50, 0x72, 0xC4, 0xEC, 0x29, 0x10, 0x63, 0x34, - 0xDA, 0x70, 0xBC, 0x79, 0x52, 0x1B, 0x0C, 0xED, - 0x2C, 0xFD, 0x53, 0x3F, 0x5F, 0xF8, 0x4F, 0x95 - }, - { - 0x01, 0xF0, 0x70, 0xA0, 0x9B, 0xAE, 0x91, 0x12, - 0x96, 0x36, 0x1F, 0x91, 0xAA, 0x0E, 0x8E, 0x0D, - 0x09, 0xA7, 0x72, 0x54, 0x78, 0x53, 0x6D, 0x9D, - 0x48, 0xC5, 0xFE, 0x1E, 0x5E, 0x7C, 0x3C, 0x5B, - 0x9B, 0x9D, 0x6E, 0xB0, 0x77, 0x96, 0xF6, 0xDA, - 0x57, 0xAE, 0x56, 0x2A, 0x7D, 0x70, 0xE8, 0x82, - 0xE3, 0x7A, 0xDF, 0xDE, 0x83, 0xF0, 0xC4, 0x33, - 0xC2, 0xCD, 0x36, 0x35, 0x36, 0xBB, 0x22, 0xC8 - }, - { - 0x6F, 0x79, 0x3E, 0xB4, 0x37, 0x4A, 0x48, 0xB0, - 0x77, 0x5A, 0xCA, 0xF9, 0xAD, 0xCF, 0x8E, 0x45, - 0xE5, 0x42, 0x70, 0xC9, 0x47, 0x5F, 0x00, 0x4A, - 0xD8, 0xD5, 0x97, 0x3E, 0x2A, 0xCA, 0x52, 0x74, - 0x7F, 0xF4, 0xED, 0x04, 0xAE, 0x96, 0x72, 0x75, - 0xB9, 0xF9, 0xEB, 0x0E, 0x1F, 0xF7, 0x5F, 0xB4, - 0xF7, 0x94, 0xFA, 0x8B, 0xE9, 0xAD, 0xD7, 0xA4, - 0x13, 0x04, 0x86, 0x8D, 0x10, 0x3F, 0xAB, 0x10 - }, - { - 0x96, 0x5F, 0x20, 0xF1, 0x39, 0x76, 0x5F, 0xCC, - 0x4C, 0xE4, 0xBA, 0x37, 0x94, 0x67, 0x58, 0x63, - 0xCA, 0xC2, 0x4D, 0xB4, 0x72, 0xCD, 0x2B, 0x79, - 0x9D, 0x03, 0x5B, 0xCE, 0x3D, 0xBE, 0xA5, 0x02, - 0xDA, 0x7B, 0x52, 0x48, 0x65, 0xF6, 0xB8, 0x11, - 0xD8, 0xC5, 0x82, 0x8D, 0x3A, 0x88, 0x96, 0x46, - 0xFE, 0x64, 0xA3, 0x80, 0xDA, 0x1A, 0xA7, 0xC7, - 0x04, 0x4E, 0x9F, 0x24, 0x5D, 0xCE, 0xD1, 0x28 - }, - { - 0xEC, 0x29, 0x5B, 0x57, 0x83, 0x60, 0x12, 0x44, - 0xC3, 0x0E, 0x46, 0x41, 0xE3, 0xB4, 0x5B, 0xE2, - 0x22, 0xC4, 0xDC, 0xE7, 0x7A, 0x58, 0x70, 0x0F, - 0x53, 0xBC, 0x8E, 0xC5, 0x2A, 0x94, 0x16, 0x90, - 0xB4, 0xD0, 0xB0, 0x87, 0xFB, 0x6F, 0xCB, 0x3F, - 0x39, 0x83, 0x2B, 0x9D, 0xE8, 0xF7, 0x5E, 0xC2, - 0x0B, 0xD4, 0x30, 0x79, 0x81, 0x17, 0x49, 0xCD, - 0xC9, 0x07, 0xED, 0xB9, 0x41, 0x57, 0xD1, 0x80 - }, - { - 0x61, 0xC7, 0x2F, 0x8C, 0xCC, 0x91, 0xDB, 0xB5, - 0x4C, 0xA6, 0x75, 0x0B, 0xC4, 0x89, 0x67, 0x2D, - 0xE0, 0x9F, 0xAE, 0xDB, 0x8F, 0xDD, 0x4F, 0x94, - 0xFF, 0x23, 0x20, 0x90, 0x9A, 0x30, 0x3F, 0x5D, - 0x5A, 0x98, 0x48, 0x1C, 0x0B, 0xC1, 0xA6, 0x25, - 0x41, 0x9F, 0xB4, 0xDE, 0xBF, 0xBF, 0x7F, 0x8A, - 0x53, 0xBB, 0x07, 0xEC, 0x3D, 0x98, 0x5E, 0x8E, - 0xA1, 0x1E, 0x72, 0xD5, 0x59, 0x94, 0x07, 0x80 - }, - { - 0xAF, 0xD8, 0x14, 0x5B, 0x25, 0x9E, 0xEF, 0xC8, - 0xD1, 0x26, 0x20, 0xC3, 0xC5, 0xB0, 0x3E, 0x1E, - 0xD8, 0xFD, 0x2C, 0xCE, 0xFE, 0x03, 0x65, 0x07, - 0x8C, 0x80, 0xFD, 0x42, 0xC1, 0x77, 0x0E, 0x28, - 0xB4, 0x49, 0x48, 0xF2, 0x7E, 0x65, 0xA1, 0x88, - 0x66, 0x90, 0x11, 0x0D, 0xB8, 0x14, 0x39, 0x7B, - 0x68, 0xE4, 0x3D, 0x80, 0xD1, 0xBA, 0x16, 0xDF, - 0xA3, 0x58, 0xE7, 0x39, 0xC8, 0x98, 0xCF, 0xA3 - }, - { - 0x55, 0x2F, 0xC7, 0x89, 0x3C, 0xF1, 0xCE, 0x93, - 0x3A, 0xDA, 0x35, 0xC0, 0xDA, 0x98, 0x84, 0x4E, - 0x41, 0x54, 0x5E, 0x24, 0x4C, 0x31, 0x57, 0xA1, - 0x42, 0x8D, 0x7B, 0x4C, 0x21, 0xF9, 0xCD, 0x7E, - 0x40, 0x71, 0xAE, 0xD7, 0x7B, 0x7C, 0xA9, 0xF1, - 0xC3, 0x8F, 0xBA, 0x32, 0x23, 0x74, 0x12, 0xEF, - 0x21, 0xA3, 0x42, 0x74, 0x2E, 0xC8, 0x32, 0x43, - 0x78, 0xF2, 0x1E, 0x50, 0x7F, 0xAF, 0xDD, 0x88 - }, - { - 0x46, 0x7A, 0x33, 0xFB, 0xAD, 0xF5, 0xEB, 0xC5, - 0x25, 0x96, 0xEF, 0x86, 0xAA, 0xAE, 0xFC, 0x6F, - 0xAB, 0xA8, 0xEE, 0x65, 0x1B, 0x1C, 0xE0, 0x4D, - 0xE3, 0x68, 0xA0, 0x3A, 0x5A, 0x90, 0x40, 0xEF, - 0x28, 0x35, 0xE0, 0x0A, 0xDB, 0x09, 0xAB, 0xB3, - 0xFB, 0xD2, 0xBC, 0xE8, 0x18, 0xA2, 0x41, 0x3D, - 0x0B, 0x02, 0x53, 0xB5, 0xBD, 0xA4, 0xFC, 0x5B, - 0x2F, 0x6F, 0x85, 0xF3, 0xFD, 0x5B, 0x55, 0xF2 - }, - { - 0x22, 0xEF, 0xF8, 0xE6, 0xDD, 0x52, 0x36, 0xF5, - 0xF5, 0x7D, 0x94, 0xED, 0xE8, 0x74, 0xD6, 0xC9, - 0x42, 0x8E, 0x8F, 0x5D, 0x56, 0x6F, 0x17, 0xCD, - 0x6D, 0x18, 0x48, 0xCD, 0x75, 0x2F, 0xE1, 0x3C, - 0x65, 0x5C, 0xB1, 0x0F, 0xBA, 0xAF, 0xF7, 0x68, - 0x72, 0xF2, 0xBF, 0x2D, 0xA9, 0x9E, 0x15, 0xDC, - 0x62, 0x40, 0x75, 0xE1, 0xEC, 0x2F, 0x58, 0xA3, - 0xF6, 0x40, 0x72, 0x12, 0x18, 0x38, 0x56, 0x9E - }, - { - 0x9C, 0xEC, 0x6B, 0xBF, 0x62, 0xC4, 0xBC, 0xE4, - 0x13, 0x8A, 0xBA, 0xE1, 0xCB, 0xEC, 0x8D, 0xAD, - 0x31, 0x95, 0x04, 0x44, 0xE9, 0x03, 0x21, 0xB1, - 0x34, 0x71, 0x96, 0x83, 0x4C, 0x11, 0x4B, 0x86, - 0x4A, 0xF3, 0xF3, 0xCC, 0x35, 0x08, 0xF8, 0x37, - 0x51, 0xFF, 0xB4, 0xED, 0xA7, 0xC8, 0x4D, 0x14, - 0x07, 0x34, 0xBB, 0x42, 0x63, 0xC3, 0x62, 0x5C, - 0x00, 0xF0, 0x4F, 0x4C, 0x80, 0x68, 0x98, 0x1B - }, - { - 0xA8, 0xB6, 0x0F, 0xA4, 0xFC, 0x24, 0x42, 0xF6, - 0xF1, 0x51, 0x4A, 0xD7, 0x40, 0x26, 0x26, 0x92, - 0x0C, 0xC7, 0xC2, 0xC9, 0xF7, 0x21, 0x24, 0xB8, - 0xCB, 0xA8, 0xEE, 0x2C, 0xB7, 0xC4, 0x58, 0x6F, - 0x65, 0x8A, 0x44, 0x10, 0xCF, 0xFC, 0xC0, 0xAB, - 0x88, 0x34, 0x39, 0x55, 0xE0, 0x94, 0xC6, 0xAF, - 0x0D, 0x20, 0xD0, 0xC7, 0x14, 0xFB, 0x0A, 0x98, - 0x8F, 0x54, 0x3F, 0x30, 0x0F, 0x58, 0xD3, 0x89 - }, - { - 0x82, 0x71, 0xCC, 0x45, 0xDF, 0xA5, 0xE4, 0x17, - 0x0E, 0x84, 0x7E, 0x86, 0x30, 0xB9, 0x52, 0xCF, - 0x9C, 0x2A, 0xA7, 0x77, 0xD0, 0x6F, 0x26, 0xA7, - 0x58, 0x5B, 0x83, 0x81, 0xF1, 0x88, 0xDA, 0xCC, - 0x73, 0x37, 0x39, 0x1C, 0xFC, 0xC9, 0x4B, 0x05, - 0x3D, 0xC4, 0xEC, 0x29, 0xCC, 0x17, 0xF0, 0x77, - 0x87, 0x04, 0x28, 0xF1, 0xAC, 0x23, 0xFD, 0xDD, - 0xA1, 0x65, 0xEF, 0x5A, 0x3F, 0x15, 0x5F, 0x39 - }, - { - 0xBF, 0x23, 0xC0, 0xC2, 0x5C, 0x80, 0x60, 0xE4, - 0xF6, 0x99, 0x5F, 0x16, 0x23, 0xA3, 0xBE, 0xBE, - 0xCA, 0xA9, 0x6E, 0x30, 0x86, 0x80, 0x00, 0x0A, - 0x8A, 0xA3, 0xCD, 0x56, 0xBB, 0x1A, 0x6D, 0xA0, - 0x99, 0xE1, 0x0D, 0x92, 0x31, 0xB3, 0x7F, 0x45, - 0x19, 0xB2, 0xEF, 0xD2, 0xC2, 0x4D, 0xE7, 0x2F, - 0x31, 0xA5, 0xF1, 0x95, 0x35, 0x24, 0x1B, 0x4A, - 0x59, 0xFA, 0x3C, 0x03, 0xCE, 0xB7, 0x90, 0xE7 - }, - { - 0x87, 0x7F, 0xD6, 0x52, 0xC0, 0x52, 0x81, 0x00, - 0x9C, 0x0A, 0x52, 0x50, 0xE7, 0xA3, 0xA6, 0x71, - 0xF8, 0xB1, 0x8C, 0x10, 0x88, 0x17, 0xFE, 0x4A, - 0x87, 0x4D, 0xE2, 0x2D, 0xA8, 0xE4, 0x5D, 0xB1, - 0x19, 0x58, 0xA6, 0x00, 0xC5, 0xF6, 0x2E, 0x67, - 0xD3, 0x6C, 0xBF, 0x84, 0x47, 0x4C, 0xF2, 0x44, - 0xA9, 0xC2, 0xB0, 0x3A, 0x9F, 0xB9, 0xDC, 0x71, - 0x1C, 0xD1, 0xA2, 0xCA, 0xB6, 0xF3, 0xFA, 0xE0 - }, - { - 0x29, 0xDF, 0x4D, 0x87, 0xEA, 0x44, 0x4B, 0xAF, - 0x5B, 0xCD, 0xF5, 0xF4, 0xE4, 0x15, 0x79, 0xE2, - 0x8A, 0x67, 0xDE, 0x84, 0x14, 0x9F, 0x06, 0xC0, - 0x3F, 0x11, 0x0E, 0xA8, 0x4F, 0x57, 0x2A, 0x9F, - 0x67, 0x6A, 0xDD, 0xD0, 0x4C, 0x48, 0x78, 0xF4, - 0x9C, 0x5C, 0x00, 0xAC, 0xCD, 0xA4, 0x41, 0xB1, - 0xA3, 0x87, 0xCA, 0xCE, 0xB2, 0xE9, 0x93, 0xBB, - 0x7A, 0x10, 0xCD, 0x8C, 0x2D, 0x67, 0x17, 0xE1 - }, - { - 0x71, 0x0D, 0xAC, 0xB1, 0x66, 0x84, 0x46, 0x39, - 0xCD, 0x7B, 0x63, 0x7C, 0x27, 0x42, 0x09, 0x42, - 0x4E, 0x24, 0x49, 0xDC, 0x35, 0xD7, 0x90, 0xBB, - 0xFA, 0x4F, 0x76, 0x17, 0x70, 0x54, 0xA3, 0x6B, - 0x3B, 0x76, 0xFA, 0xC0, 0xCA, 0x6E, 0x61, 0xDF, - 0x1E, 0x68, 0x70, 0x00, 0x67, 0x8A, 0xC0, 0x74, - 0x6D, 0xF7, 0x5D, 0x0A, 0x39, 0x54, 0x89, 0x76, - 0x81, 0xFD, 0x39, 0x3A, 0x15, 0x5A, 0x1B, 0xB4 - }, - { - 0xC1, 0xD5, 0xF9, 0x3B, 0x8D, 0xEA, 0x1F, 0x25, - 0x71, 0xBA, 0xBC, 0xCB, 0xC0, 0x17, 0x64, 0x54, - 0x1A, 0x0C, 0xDA, 0x87, 0xE4, 0x44, 0xD6, 0x73, - 0xC5, 0x09, 0x66, 0xCA, 0x55, 0x9C, 0x33, 0x35, - 0x4B, 0x3A, 0xCB, 0x26, 0xE5, 0xD5, 0x78, 0x1F, - 0xFB, 0x28, 0x84, 0x7A, 0x4B, 0x47, 0x54, 0xD7, - 0x70, 0x08, 0xC6, 0x2A, 0x83, 0x58, 0x35, 0xF5, - 0x00, 0xDE, 0xA7, 0xC3, 0xB5, 0x8B, 0xDA, 0xE2 - }, - { - 0xA4, 0x1E, 0x41, 0x27, 0x1C, 0xDA, 0xB8, 0xAF, - 0x4D, 0x72, 0xB1, 0x04, 0xBF, 0xB2, 0xAD, 0x04, - 0x1A, 0xC4, 0xDF, 0x14, 0x67, 0x7D, 0xA6, 0x71, - 0xD8, 0x56, 0x40, 0xC4, 0xB1, 0x87, 0xF5, 0x0C, - 0x2B, 0x66, 0x51, 0x3C, 0x46, 0x19, 0xFB, 0xD5, - 0xD5, 0xDC, 0x4F, 0xE6, 0x5D, 0xD3, 0x7B, 0x90, - 0x42, 0xE9, 0x84, 0x8D, 0xDA, 0x55, 0x6A, 0x50, - 0x4C, 0xAA, 0x2B, 0x1C, 0x6A, 0xFE, 0x47, 0x30 - }, - { - 0xE7, 0xBC, 0xBA, 0xCD, 0xC3, 0x79, 0xC4, 0x3D, - 0x81, 0xEB, 0xAD, 0xCB, 0x37, 0x78, 0x15, 0x52, - 0xFC, 0x1D, 0x75, 0x3E, 0x8C, 0xF3, 0x10, 0xD9, - 0x68, 0x39, 0x2D, 0x06, 0xC9, 0x1F, 0x1D, 0x64, - 0xCC, 0x9E, 0x90, 0xCE, 0x1D, 0x22, 0xC3, 0x2D, - 0x27, 0x7F, 0xC6, 0xCD, 0xA4, 0x33, 0xA4, 0xD4, - 0x42, 0xC7, 0x62, 0xE9, 0xEA, 0xCF, 0x2C, 0x25, - 0x9F, 0x32, 0xD6, 0x4C, 0xF9, 0xDA, 0x3A, 0x22 - }, - { - 0x51, 0x75, 0x5B, 0x4A, 0xC5, 0x45, 0x6B, 0x13, - 0x21, 0x8A, 0x19, 0xC5, 0xB9, 0x24, 0x2F, 0x57, - 0xC4, 0xA9, 0x81, 0xE4, 0xD4, 0xEC, 0xDC, 0xE0, - 0x9A, 0x31, 0x93, 0x36, 0x2B, 0x80, 0x8A, 0x57, - 0x93, 0x45, 0xD4, 0x88, 0x1C, 0x26, 0x07, 0xA5, - 0x65, 0x34, 0xDD, 0x7F, 0x21, 0x95, 0x6A, 0xFF, - 0x72, 0xC2, 0xF4, 0x17, 0x3A, 0x6E, 0x7B, 0x6C, - 0xC2, 0x21, 0x2B, 0xA0, 0xE3, 0xDA, 0xEE, 0x1F - }, - { - 0xDC, 0xC2, 0xC4, 0xBE, 0xB9, 0xC1, 0xF2, 0x60, - 0x7B, 0x78, 0x6C, 0x20, 0xC6, 0x31, 0x97, 0x23, - 0x47, 0x03, 0x4C, 0x1C, 0xC0, 0x2F, 0xCC, 0x7D, - 0x02, 0xFF, 0x01, 0x09, 0x9C, 0xFE, 0x1C, 0x69, - 0x89, 0x84, 0x0A, 0xC2, 0x13, 0x92, 0x36, 0x29, - 0x11, 0x3A, 0xA8, 0xBA, 0xD7, 0x13, 0xCC, 0xF0, - 0xFE, 0x4C, 0xE1, 0x32, 0x64, 0xFB, 0x32, 0xB8, - 0xB0, 0xFE, 0x37, 0x2D, 0xA3, 0x82, 0x54, 0x4A - }, - { - 0x3D, 0x55, 0x17, 0x6A, 0xCE, 0xA4, 0xA7, 0xE3, - 0xA6, 0x5F, 0xFA, 0x9F, 0xB1, 0x0A, 0x7A, 0x17, - 0x67, 0x19, 0x9C, 0xF0, 0x77, 0xCE, 0xE9, 0xF7, - 0x15, 0x32, 0xD6, 0x7C, 0xD7, 0xC7, 0x3C, 0x9F, - 0x93, 0xCF, 0xC3, 0x7C, 0xCD, 0xCC, 0x1F, 0xDE, - 0xF5, 0x0A, 0xAD, 0x46, 0xA5, 0x04, 0xA6, 0x50, - 0xD2, 0x98, 0xD5, 0x97, 0xA3, 0xA9, 0xFA, 0x95, - 0xC6, 0xC4, 0x0C, 0xB7, 0x1F, 0xA5, 0xE7, 0x25 - }, - { - 0xD0, 0x77, 0x13, 0xC0, 0x05, 0xDE, 0x96, 0xDD, - 0x21, 0xD2, 0xEB, 0x8B, 0xBE, 0xCA, 0x66, 0x74, - 0x6E, 0xA5, 0x1A, 0x31, 0xAE, 0x92, 0x2A, 0x3E, - 0x74, 0x86, 0x48, 0x89, 0x54, 0x0A, 0x48, 0xDB, - 0x27, 0xD7, 0xE4, 0xC9, 0x03, 0x11, 0x63, 0x8B, - 0x22, 0x4B, 0xF0, 0x20, 0x1B, 0x50, 0x18, 0x91, - 0x75, 0x48, 0x48, 0x11, 0x3C, 0x26, 0x61, 0x08, - 0xD0, 0xAD, 0xB1, 0x3D, 0xB7, 0x19, 0x09, 0xC7 - }, - { - 0x58, 0x98, 0x3C, 0x21, 0x43, 0x3D, 0x95, 0x0C, - 0xAA, 0x23, 0xE4, 0xBC, 0x18, 0x54, 0x3B, 0x8E, - 0x60, 0x1C, 0x20, 0x43, 0x18, 0x53, 0x21, 0x52, - 0xDA, 0xF5, 0xE1, 0x59, 0xA0, 0xCD, 0x14, 0x80, - 0x18, 0x3D, 0x29, 0x28, 0x5C, 0x05, 0xF1, 0x29, - 0xCB, 0x0C, 0xC3, 0x16, 0x46, 0x87, 0x92, 0x80, - 0x86, 0xFF, 0xE3, 0x80, 0x15, 0x8D, 0xF1, 0xD3, - 0x94, 0xC6, 0xAC, 0x0D, 0x42, 0x88, 0xBC, 0xA8 - }, - { - 0x81, 0x00, 0xA8, 0xDC, 0x52, 0x8D, 0x2B, 0x68, - 0x2A, 0xB4, 0x25, 0x08, 0x01, 0xBA, 0x33, 0xF0, - 0x2A, 0x3E, 0x94, 0xC5, 0x4D, 0xAC, 0x0A, 0xE1, - 0x48, 0x2A, 0xA2, 0x1F, 0x51, 0xEF, 0x3A, 0x82, - 0xF3, 0x80, 0x7E, 0x6F, 0xAC, 0xB0, 0xAE, 0xB0, - 0x59, 0x47, 0xBF, 0x7A, 0xA2, 0xAD, 0xCB, 0x03, - 0x43, 0x56, 0xF9, 0x0F, 0xA4, 0x56, 0x0E, 0xDE, - 0x02, 0x20, 0x1A, 0x37, 0xE4, 0x11, 0xEC, 0x1A - }, - { - 0x07, 0x02, 0x5F, 0x1B, 0xB6, 0xC7, 0x84, 0xF3, - 0xFE, 0x49, 0xDE, 0x5C, 0x14, 0xB9, 0x36, 0xA5, - 0xAC, 0xAC, 0xAC, 0xAA, 0xB3, 0x3F, 0x6A, 0xC4, - 0xD0, 0xE0, 0x0A, 0xB6, 0xA1, 0x24, 0x83, 0xD6, - 0xBE, 0xC0, 0x0B, 0x4F, 0xE6, 0x7C, 0x7C, 0xA5, - 0xCC, 0x50, 0x8C, 0x2A, 0x53, 0xEF, 0xB5, 0xBF, - 0xA5, 0x39, 0x87, 0x69, 0xD8, 0x43, 0xFF, 0x0D, - 0x9E, 0x8B, 0x14, 0xD3, 0x6A, 0x01, 0xA7, 0x7F - }, - { - 0xBA, 0x6A, 0xEF, 0xD9, 0x72, 0xB6, 0x18, 0x6E, - 0x02, 0x7A, 0x76, 0x27, 0x3A, 0x4A, 0x72, 0x33, - 0x21, 0xA3, 0xF5, 0x80, 0xCF, 0xA8, 0x94, 0xDA, - 0x5A, 0x9C, 0xE8, 0xE7, 0x21, 0xC8, 0x28, 0x55, - 0x2C, 0x64, 0xDA, 0xCE, 0xE3, 0xA7, 0xFD, 0x2D, - 0x74, 0x3B, 0x5C, 0x35, 0xAD, 0x0C, 0x8E, 0xFA, - 0x71, 0xF8, 0xCE, 0x99, 0xBF, 0x96, 0x33, 0x47, - 0x10, 0xE2, 0xC2, 0x34, 0x6E, 0x8F, 0x3C, 0x52 - }, - { - 0xE0, 0x72, 0x1E, 0x02, 0x51, 0x7A, 0xED, 0xFA, - 0x4E, 0x7E, 0x9B, 0xA5, 0x03, 0xE0, 0x25, 0xFD, - 0x46, 0xE7, 0x14, 0x56, 0x6D, 0xC8, 0x89, 0xA8, - 0x4C, 0xBF, 0xE5, 0x6A, 0x55, 0xDF, 0xBE, 0x2F, - 0xC4, 0x93, 0x8A, 0xC4, 0x12, 0x05, 0x88, 0x33, - 0x5D, 0xEA, 0xC8, 0xEF, 0x3F, 0xA2, 0x29, 0xAD, - 0xC9, 0x64, 0x7F, 0x54, 0xAD, 0x2E, 0x34, 0x72, - 0x23, 0x4F, 0x9B, 0x34, 0xEF, 0xC4, 0x65, 0x43 - }, - { - 0xB6, 0x29, 0x26, 0x69, 0xCC, 0xD3, 0x8D, 0x5F, - 0x01, 0xCA, 0xAE, 0x96, 0xBA, 0x27, 0x2C, 0x76, - 0xA8, 0x79, 0xA4, 0x57, 0x43, 0xAF, 0xA0, 0x72, - 0x5D, 0x83, 0xB9, 0xEB, 0xB2, 0x66, 0x65, 0xB7, - 0x31, 0xF1, 0x84, 0x8C, 0x52, 0xF1, 0x19, 0x72, - 0xB6, 0x64, 0x4F, 0x55, 0x4C, 0x06, 0x4F, 0xA9, - 0x07, 0x80, 0xDB, 0xBB, 0xF3, 0xA8, 0x9D, 0x4F, - 0xC3, 0x1F, 0x67, 0xDF, 0x3E, 0x58, 0x57, 0xEF - }, - { - 0x23, 0x19, 0xE3, 0x78, 0x9C, 0x47, 0xE2, 0xDA, - 0xA5, 0xFE, 0x80, 0x7F, 0x61, 0xBE, 0xC2, 0xA1, - 0xA6, 0x53, 0x7F, 0xA0, 0x3F, 0x19, 0xFF, 0x32, - 0xE8, 0x7E, 0xEC, 0xBF, 0xD6, 0x4B, 0x7E, 0x0E, - 0x8C, 0xCF, 0xF4, 0x39, 0xAC, 0x33, 0x3B, 0x04, - 0x0F, 0x19, 0xB0, 0xC4, 0xDD, 0xD1, 0x1A, 0x61, - 0xE2, 0x4A, 0xC1, 0xFE, 0x0F, 0x10, 0xA0, 0x39, - 0x80, 0x6C, 0x5D, 0xCC, 0x0D, 0xA3, 0xD1, 0x15 - }, - { - 0xF5, 0x97, 0x11, 0xD4, 0x4A, 0x03, 0x1D, 0x5F, - 0x97, 0xA9, 0x41, 0x3C, 0x06, 0x5D, 0x1E, 0x61, - 0x4C, 0x41, 0x7E, 0xDE, 0x99, 0x85, 0x90, 0x32, - 0x5F, 0x49, 0xBA, 0xD2, 0xFD, 0x44, 0x4D, 0x3E, - 0x44, 0x18, 0xBE, 0x19, 0xAE, 0xC4, 0xE1, 0x14, - 0x49, 0xAC, 0x1A, 0x57, 0x20, 0x78, 0x98, 0xBC, - 0x57, 0xD7, 0x6A, 0x1B, 0xCF, 0x35, 0x66, 0x29, - 0x2C, 0x20, 0xC6, 0x83, 0xA5, 0xC4, 0x64, 0x8F - }, - { - 0xDF, 0x0A, 0x9D, 0x0C, 0x21, 0x28, 0x43, 0xA6, - 0xA9, 0x34, 0xE3, 0x90, 0x2B, 0x2D, 0xD3, 0x0D, - 0x17, 0xFB, 0xA5, 0xF9, 0x69, 0xD2, 0x03, 0x0B, - 0x12, 0xA5, 0x46, 0xD8, 0xA6, 0xA4, 0x5E, 0x80, - 0xCF, 0x56, 0x35, 0xF0, 0x71, 0xF0, 0x45, 0x2E, - 0x9C, 0x91, 0x92, 0x75, 0xDA, 0x99, 0xBE, 0xD5, - 0x1E, 0xB1, 0x17, 0x3C, 0x1A, 0xF0, 0x51, 0x87, - 0x26, 0xB7, 0x5B, 0x0E, 0xC3, 0xBA, 0xE2, 0xB5 - }, - { - 0xA3, 0xEB, 0x6E, 0x6C, 0x7B, 0xF2, 0xFB, 0x8B, - 0x28, 0xBF, 0xE8, 0xB1, 0x5E, 0x15, 0xBB, 0x50, - 0x0F, 0x78, 0x1E, 0xCC, 0x86, 0xF7, 0x78, 0xC3, - 0xA4, 0xE6, 0x55, 0xFC, 0x58, 0x69, 0xBF, 0x28, - 0x46, 0xA2, 0x45, 0xD4, 0xE3, 0x3B, 0x7B, 0x14, - 0x43, 0x6A, 0x17, 0xE6, 0x3B, 0xE7, 0x9B, 0x36, - 0x65, 0x5C, 0x22, 0x6A, 0x50, 0xFF, 0xBC, 0x71, - 0x24, 0x20, 0x7B, 0x02, 0x02, 0x34, 0x2D, 0xB5 - }, - { - 0x56, 0xD4, 0xCB, 0xCD, 0x07, 0x05, 0x63, 0x42, - 0x6A, 0x01, 0x70, 0x69, 0x42, 0x5C, 0x2C, 0xD2, - 0xAE, 0x54, 0x06, 0x68, 0x28, 0x7A, 0x5F, 0xB9, - 0xDA, 0xC4, 0x32, 0xEB, 0x8A, 0xB1, 0xA3, 0x53, - 0xA3, 0x0F, 0x2F, 0xE1, 0xF4, 0x0D, 0x83, 0x33, - 0x3A, 0xFE, 0x69, 0x6A, 0x26, 0x77, 0x95, 0x40, - 0x8A, 0x92, 0xFE, 0x7D, 0xA0, 0x7A, 0x0C, 0x18, - 0x14, 0xCF, 0x77, 0xF3, 0x6E, 0x10, 0x5E, 0xE8 - }, - { - 0xE5, 0x9B, 0x99, 0x87, 0xD4, 0x28, 0xB3, 0xED, - 0xA3, 0x7D, 0x80, 0xAB, 0xDB, 0x16, 0xCD, 0x2B, - 0x0A, 0xEF, 0x67, 0x4C, 0x2B, 0x1D, 0xDA, 0x44, - 0x32, 0xEA, 0x91, 0xEE, 0x6C, 0x93, 0x5C, 0x68, - 0x4B, 0x48, 0xB4, 0x42, 0x8A, 0x8C, 0xC7, 0x40, - 0xE5, 0x79, 0xA3, 0x0D, 0xEF, 0xF3, 0x5A, 0x80, - 0x30, 0x13, 0x82, 0x0D, 0xD2, 0x3F, 0x14, 0xAE, - 0x1D, 0x84, 0x13, 0xB5, 0xC8, 0x67, 0x2A, 0xEC - }, - { - 0xCD, 0x9F, 0xCC, 0x99, 0xF9, 0x9D, 0x4C, 0xC1, - 0x6D, 0x03, 0x19, 0x00, 0xB2, 0xA7, 0x36, 0xE1, - 0x50, 0x8D, 0xB4, 0xB5, 0x86, 0x81, 0x4E, 0x63, - 0x45, 0x85, 0x7F, 0x35, 0x4A, 0x70, 0xCC, 0xEC, - 0xB1, 0xDF, 0x3B, 0x50, 0xA1, 0x9A, 0xDA, 0xF4, - 0x3C, 0x27, 0x8E, 0xFA, 0x42, 0x3F, 0xF4, 0xBB, - 0x6C, 0x52, 0x3E, 0xC7, 0xFD, 0x78, 0x59, 0xB9, - 0x7B, 0x16, 0x8A, 0x7E, 0xBF, 0xF8, 0x46, 0x7C - }, - { - 0x06, 0x02, 0x18, 0x5D, 0x8C, 0x3A, 0x78, 0x73, - 0x8B, 0x99, 0x16, 0x4B, 0x8B, 0xC6, 0xFF, 0xB2, - 0x1C, 0x7D, 0xEB, 0xEB, 0xBF, 0x80, 0x63, 0x72, - 0xE0, 0xDA, 0x44, 0xD1, 0x21, 0x54, 0x55, 0x97, - 0xB9, 0xC6, 0x62, 0xA2, 0x55, 0xDC, 0x31, 0x54, - 0x2C, 0xF9, 0x95, 0xEC, 0xBE, 0x6A, 0x50, 0xFB, - 0x5E, 0x6E, 0x0E, 0xE4, 0xEF, 0x24, 0x0F, 0xE5, - 0x57, 0xED, 0xED, 0x11, 0x88, 0x08, 0x7E, 0x86 - }, - { - 0xC0, 0x8A, 0xFA, 0x5B, 0x92, 0x7B, 0xF0, 0x80, - 0x97, 0xAF, 0xC5, 0xFF, 0xF9, 0xCA, 0x4E, 0x78, - 0x00, 0x12, 0x5C, 0x1F, 0x52, 0xF2, 0xAF, 0x35, - 0x53, 0xFA, 0x2B, 0x89, 0xE1, 0xE3, 0x01, 0x5C, - 0x4F, 0x87, 0xD5, 0xE0, 0xA4, 0x89, 0x56, 0xAD, - 0x31, 0x45, 0x0B, 0x08, 0x3D, 0xAD, 0x14, 0x7F, - 0xFB, 0x5E, 0xC0, 0x34, 0x34, 0xA2, 0x68, 0x30, - 0xCF, 0x37, 0xD1, 0x03, 0xAB, 0x50, 0xC5, 0xDA - }, - { - 0x36, 0xF1, 0xE1, 0xC1, 0x1D, 0x6E, 0xF6, 0xBC, - 0x3B, 0x53, 0x6D, 0x50, 0x5D, 0x54, 0x4A, 0x87, - 0x15, 0x22, 0xC5, 0xC2, 0xA2, 0x53, 0x06, 0x7E, - 0xC9, 0x93, 0x3B, 0x6E, 0xC2, 0x54, 0x64, 0xDA, - 0xF9, 0x85, 0x52, 0x5F, 0x5B, 0x95, 0x60, 0xA1, - 0x6D, 0x89, 0x02, 0x59, 0xAC, 0x1B, 0xB5, 0xCC, - 0x67, 0xC0, 0xC4, 0x69, 0xCD, 0xE1, 0x33, 0xDE, - 0xF0, 0x00, 0xEA, 0x1D, 0x68, 0x6F, 0x4F, 0x5D - }, - { - 0xBF, 0x2A, 0xB2, 0xE2, 0x47, 0x0F, 0x54, 0x38, - 0xC3, 0xB6, 0x89, 0xE6, 0x6E, 0x76, 0x86, 0xFF, - 0xFA, 0x0C, 0xB1, 0xE1, 0x79, 0x8A, 0xD3, 0xA8, - 0x6F, 0xF9, 0x90, 0x75, 0xBF, 0x61, 0x38, 0xE3, - 0x3D, 0x9C, 0x0C, 0xE5, 0x9A, 0xFB, 0x24, 0xAC, - 0x67, 0xA0, 0x2A, 0xF3, 0x44, 0x28, 0x19, 0x1A, - 0x9A, 0x0A, 0x60, 0x41, 0xC0, 0x74, 0x71, 0xB7, - 0xC3, 0xB1, 0xA7, 0x52, 0xD6, 0xFC, 0x0B, 0x8B - }, - { - 0xD4, 0x00, 0x60, 0x1F, 0x97, 0x28, 0xCC, 0xC4, - 0xC9, 0x23, 0x42, 0xD9, 0x78, 0x7D, 0x8D, 0x28, - 0xAB, 0x32, 0x3A, 0xF3, 0x75, 0xCA, 0x56, 0x24, - 0xB4, 0xBB, 0x91, 0xD1, 0x72, 0x71, 0xFB, 0xAE, - 0x86, 0x2E, 0x41, 0x3B, 0xE7, 0x3F, 0x1F, 0x68, - 0xE6, 0x15, 0xB8, 0xC5, 0xC3, 0x91, 0xBE, 0x0D, - 0xBD, 0x91, 0x44, 0x74, 0x6E, 0xB3, 0x39, 0xAD, - 0x54, 0x15, 0x47, 0xBA, 0x9C, 0x46, 0x8A, 0x17 - }, - { - 0x79, 0xFE, 0x2F, 0xE1, 0x57, 0xEB, 0x85, 0xA0, - 0x38, 0xAB, 0xB8, 0xEB, 0xBC, 0x64, 0x77, 0x31, - 0xD2, 0xC8, 0x3F, 0x51, 0xB0, 0xAC, 0x6E, 0xE1, - 0x4A, 0xA2, 0x84, 0xCB, 0x6A, 0x35, 0x49, 0xA4, - 0xDC, 0xCE, 0xB3, 0x00, 0x74, 0x0A, 0x82, 0x5F, - 0x52, 0xF5, 0xFB, 0x30, 0xB0, 0x3B, 0x8C, 0x4D, - 0x8B, 0x0F, 0x4A, 0xA6, 0x7A, 0x63, 0xF4, 0xA9, - 0x4E, 0x33, 0x03, 0xC4, 0xED, 0xA4, 0xC0, 0x2B - }, - { - 0x75, 0x35, 0x13, 0x13, 0xB5, 0x2A, 0x85, 0x29, - 0x29, 0x8D, 0x8C, 0x18, 0x6B, 0x17, 0x68, 0x66, - 0x6D, 0xCC, 0xA8, 0x59, 0x53, 0x17, 0xD7, 0xA4, - 0x81, 0x6E, 0xB8, 0x8C, 0x06, 0x20, 0x20, 0xC0, - 0xC8, 0xEF, 0xC5, 0x54, 0xBB, 0x34, 0x1B, 0x64, - 0x68, 0x8D, 0xB5, 0xCC, 0xAF, 0xC3, 0x5F, 0x3C, - 0x3C, 0xD0, 0x9D, 0x65, 0x64, 0xB3, 0x6D, 0x7B, - 0x04, 0xA2, 0x48, 0xE1, 0x46, 0x98, 0x0D, 0x4B - }, - { - 0xE3, 0x12, 0x8B, 0x1D, 0x31, 0x1D, 0x02, 0x17, - 0x9D, 0x7F, 0x25, 0xF9, 0x7A, 0x5A, 0x8B, 0xEE, - 0x2C, 0xC8, 0xC8, 0x63, 0x03, 0x64, 0x4F, 0xCD, - 0x66, 0x4E, 0x15, 0x7D, 0x1F, 0xEF, 0x00, 0xF2, - 0x3E, 0x46, 0xF9, 0xA5, 0xE8, 0xE5, 0xC8, 0x90, - 0xCE, 0x56, 0x5B, 0xB6, 0xAB, 0xD4, 0x30, 0x2C, - 0xE0, 0x64, 0x69, 0xD5, 0x2A, 0x5B, 0xD5, 0x3E, - 0x1C, 0x5A, 0x54, 0xD0, 0x46, 0x49, 0xDC, 0x03 - }, - { - 0xC2, 0x38, 0x2A, 0x72, 0xD2, 0xD3, 0xAC, 0xE9, - 0xD5, 0x93, 0x3D, 0x00, 0xB6, 0x08, 0x27, 0xED, - 0x38, 0x0C, 0xDA, 0x08, 0xD0, 0xBA, 0x5F, 0x6D, - 0xD4, 0x1E, 0x29, 0xEE, 0x6D, 0xBE, 0x8E, 0xCB, - 0x92, 0x35, 0xF0, 0x6B, 0xE9, 0x5D, 0x83, 0xB6, - 0x81, 0x6A, 0x2F, 0xB7, 0xA5, 0xAD, 0x47, 0x03, - 0x5E, 0x8A, 0x4B, 0x69, 0xA4, 0x88, 0x4B, 0x99, - 0xE4, 0xBE, 0xCE, 0x58, 0xCA, 0xB2, 0x5D, 0x44 - }, - { - 0x6B, 0x1C, 0x69, 0x46, 0x0B, 0xBD, 0x50, 0xAC, - 0x2E, 0xD6, 0xF3, 0x2E, 0x6E, 0x88, 0x7C, 0xFE, - 0xD4, 0x07, 0xD4, 0x7D, 0xCF, 0x0A, 0xAA, 0x60, - 0x38, 0x7F, 0xE3, 0x20, 0xD7, 0x80, 0xBD, 0x03, - 0xEA, 0xB6, 0xD7, 0xBA, 0xEB, 0x2A, 0x07, 0xD1, - 0x0C, 0xD5, 0x52, 0xA3, 0x00, 0x34, 0x13, 0x54, - 0xEA, 0x9A, 0x5F, 0x03, 0x18, 0x3A, 0x62, 0x3F, - 0x92, 0xA2, 0xD4, 0xD9, 0xF0, 0x09, 0x26, 0xAF - }, - { - 0x6C, 0xDA, 0x20, 0x6C, 0x80, 0xCD, 0xC9, 0xC4, - 0x4B, 0xA9, 0x90, 0xE0, 0x32, 0x8C, 0x31, 0x4F, - 0x81, 0x9B, 0x14, 0x2D, 0x00, 0x63, 0x04, 0x04, - 0xC4, 0x8C, 0x05, 0xDC, 0x76, 0xD1, 0xB0, 0x0C, - 0xE4, 0xD7, 0x2F, 0xC6, 0xA4, 0x8E, 0x14, 0x69, - 0xDD, 0xEF, 0x60, 0x94, 0x12, 0xC3, 0x64, 0x82, - 0x08, 0x54, 0x21, 0x4B, 0x48, 0x69, 0xAF, 0x09, - 0x0F, 0x00, 0xD3, 0xC1, 0xBA, 0x44, 0x3E, 0x1B - }, - { - 0x7F, 0xFC, 0x8C, 0x26, 0xFB, 0xD6, 0xA0, 0xF7, - 0xA6, 0x09, 0xE6, 0xE1, 0x93, 0x9F, 0x6A, 0x9E, - 0xDF, 0x1B, 0x0B, 0x06, 0x66, 0x41, 0xFB, 0x76, - 0xC4, 0xF9, 0x60, 0x2E, 0xD7, 0x48, 0xD1, 0x16, - 0x02, 0x49, 0x6B, 0x35, 0x35, 0x5B, 0x1A, 0xA2, - 0x55, 0x85, 0x0A, 0x50, 0x9D, 0x2F, 0x8E, 0xE1, - 0x8C, 0x8F, 0x3E, 0x1D, 0x7D, 0xCB, 0xC3, 0x7A, - 0x13, 0x65, 0x98, 0xF5, 0x6A, 0x59, 0xED, 0x17 - }, - { - 0x70, 0xDE, 0x1F, 0x08, 0xDD, 0x4E, 0x09, 0xD5, - 0xFC, 0x15, 0x1F, 0x17, 0xFC, 0x99, 0x1A, 0x23, - 0xAB, 0xFC, 0x05, 0x10, 0x42, 0x90, 0xD5, 0x04, - 0x68, 0x88, 0x2E, 0xFA, 0xF5, 0x82, 0xB6, 0xEC, - 0x2F, 0x14, 0xF5, 0x77, 0xC0, 0xD6, 0x8C, 0x3A, - 0xD0, 0x66, 0x26, 0x91, 0x6E, 0x3C, 0x86, 0xE6, - 0xDA, 0xAB, 0x6C, 0x53, 0xE5, 0x16, 0x3E, 0x82, - 0xB6, 0xBD, 0x0C, 0xE4, 0x9F, 0xC0, 0xD8, 0xDF - }, - { - 0x4F, 0x81, 0x93, 0x57, 0x56, 0xED, 0x35, 0xEE, - 0x20, 0x58, 0xEE, 0x0C, 0x6A, 0x61, 0x10, 0xD6, - 0xFA, 0xC5, 0xCB, 0x6A, 0x4F, 0x46, 0xAA, 0x94, - 0x11, 0x60, 0x3F, 0x99, 0x96, 0x58, 0x23, 0xB6, - 0xDA, 0x48, 0x38, 0x27, 0x6C, 0x5C, 0x06, 0xBC, - 0x78, 0x80, 0xE3, 0x76, 0xD9, 0x27, 0x58, 0x36, - 0x9E, 0xE7, 0x30, 0x5B, 0xCE, 0xC8, 0xD3, 0xCF, - 0xD2, 0x8C, 0xCA, 0xBB, 0x7B, 0x4F, 0x05, 0x79 - }, - { - 0xAB, 0xCB, 0x61, 0xCB, 0x36, 0x83, 0xD1, 0x8F, - 0x27, 0xAD, 0x52, 0x79, 0x08, 0xED, 0x2D, 0x32, - 0xA0, 0x42, 0x6C, 0xB7, 0xBB, 0x4B, 0xF1, 0x80, - 0x61, 0x90, 0x3A, 0x7D, 0xC4, 0x2E, 0x7E, 0x76, - 0xF9, 0x82, 0x38, 0x23, 0x04, 0xD1, 0x8A, 0xF8, - 0xC8, 0x0D, 0x91, 0xDD, 0x58, 0xDD, 0x47, 0xAF, - 0x76, 0xF8, 0xE2, 0xC3, 0x6E, 0x28, 0xAF, 0x24, - 0x76, 0xB4, 0xBC, 0xCF, 0x82, 0xE8, 0x9F, 0xDF - }, - { - 0x02, 0xD2, 0x61, 0xAD, 0x56, 0xA5, 0x26, 0x33, - 0x1B, 0x64, 0x3D, 0xD2, 0x18, 0x6D, 0xE9, 0xA8, - 0x2E, 0x72, 0xA5, 0x82, 0x23, 0xCD, 0x1E, 0x72, - 0x36, 0x86, 0xC5, 0x3D, 0x86, 0x9B, 0x83, 0xB9, - 0x46, 0x32, 0xB7, 0xB6, 0x47, 0xAB, 0x2A, 0xFC, - 0x0D, 0x52, 0x2E, 0x29, 0xDA, 0x3A, 0x56, 0x15, - 0xB7, 0x41, 0xD8, 0x28, 0x52, 0xE0, 0xDF, 0x41, - 0xB6, 0x60, 0x07, 0xDB, 0xCB, 0xA9, 0x05, 0x43 - }, - { - 0xC5, 0x83, 0x27, 0x41, 0xFA, 0x30, 0xC5, 0x43, - 0x68, 0x23, 0x01, 0x53, 0x83, 0xD2, 0x97, 0xFF, - 0x4C, 0x4A, 0x5D, 0x72, 0x76, 0xC3, 0xF9, 0x02, - 0x12, 0x20, 0x66, 0xE0, 0x4B, 0xE5, 0x43, 0x1B, - 0x1A, 0x85, 0xFA, 0xF7, 0x3B, 0x91, 0x84, 0x34, - 0xF9, 0x30, 0x09, 0x63, 0xD1, 0xDE, 0xA9, 0xE8, - 0xAC, 0x39, 0x24, 0xEF, 0x49, 0x02, 0x26, 0xED, - 0xEE, 0xA5, 0xF7, 0x43, 0xE4, 0x10, 0x66, 0x9F - }, - { - 0xCF, 0xAE, 0xAB, 0x26, 0x8C, 0xD0, 0x75, 0xA5, - 0xA6, 0xAE, 0xD5, 0x15, 0x02, 0x3A, 0x03, 0x2D, - 0x54, 0xF2, 0xF2, 0xFF, 0x73, 0x3C, 0xE0, 0xCB, - 0xC7, 0x8D, 0xB5, 0x1D, 0xB4, 0x50, 0x4D, 0x67, - 0x59, 0x23, 0xF8, 0x27, 0x46, 0xD6, 0x59, 0x46, - 0x06, 0xAD, 0x5D, 0x67, 0x73, 0x4B, 0x11, 0xA6, - 0x7C, 0xC6, 0xA4, 0x68, 0xC2, 0x03, 0x2E, 0x43, - 0xCA, 0x1A, 0x94, 0xC6, 0x27, 0x3A, 0x98, 0x5E - }, - { - 0x86, 0x08, 0x50, 0xF9, 0x2E, 0xB2, 0x68, 0x27, - 0x2B, 0x67, 0xD1, 0x33, 0x60, 0x9B, 0xD6, 0x4E, - 0x34, 0xF6, 0x1B, 0xF0, 0x3F, 0x4C, 0x17, 0x38, - 0x64, 0x5C, 0x17, 0xFE, 0xC8, 0x18, 0x46, 0x5D, - 0x7E, 0xCD, 0x2B, 0xE2, 0x90, 0x76, 0x41, 0x13, - 0x00, 0x25, 0xFD, 0xA7, 0x94, 0x70, 0xAB, 0x73, - 0x16, 0x46, 0xE7, 0xF6, 0x94, 0x40, 0xE8, 0x36, - 0x7E, 0xA7, 0x6A, 0xC4, 0xCE, 0xE8, 0xA1, 0xDF - }, - { - 0x84, 0xB1, 0x54, 0xED, 0x29, 0xBB, 0xED, 0xEF, - 0xA6, 0x48, 0x28, 0x68, 0x39, 0x04, 0x6F, 0x4B, - 0x5A, 0xA3, 0x44, 0x30, 0xE2, 0xD6, 0x7F, 0x74, - 0x96, 0xE4, 0xC3, 0x9F, 0x2C, 0x7E, 0xA7, 0x89, - 0x95, 0xF6, 0x9E, 0x12, 0x92, 0x20, 0x00, 0x16, - 0xF1, 0x6A, 0xC3, 0xB3, 0x77, 0x00, 0xE6, 0xC7, - 0xE7, 0x86, 0x1A, 0xFC, 0x39, 0x6B, 0x64, 0xA5, - 0x9A, 0x1D, 0xBF, 0x47, 0xA5, 0x5C, 0x4B, 0xBC - }, - { - 0xAE, 0xEE, 0xC2, 0x60, 0xA5, 0xD8, 0xEF, 0xF5, - 0xCC, 0xAB, 0x8B, 0x95, 0xDA, 0x43, 0x5A, 0x63, - 0xED, 0x7A, 0x21, 0xEA, 0x7F, 0xC7, 0x55, 0x94, - 0x13, 0xFD, 0x61, 0x7E, 0x33, 0x60, 0x9F, 0x8C, - 0x29, 0x0E, 0x64, 0xBB, 0xAC, 0xC5, 0x28, 0xF6, - 0xC0, 0x80, 0x26, 0x22, 0x88, 0xB0, 0xF0, 0xA3, - 0x21, 0x9B, 0xE2, 0x23, 0xC9, 0x91, 0xBE, 0xE9, - 0x2E, 0x72, 0x34, 0x95, 0x93, 0xE6, 0x76, 0x38 - }, - { - 0x8A, 0xD7, 0x8A, 0x9F, 0x26, 0x60, 0x1D, 0x12, - 0x7E, 0x8D, 0x2F, 0x2F, 0x97, 0x6E, 0x63, 0xD1, - 0x9A, 0x05, 0x4A, 0x17, 0xDC, 0xF5, 0x9E, 0x0F, - 0x01, 0x3A, 0xB5, 0x4A, 0x68, 0x87, 0xBB, 0xDF, - 0xFD, 0xE7, 0xAA, 0xAE, 0x11, 0x7E, 0x0F, 0xBF, - 0x32, 0x71, 0x01, 0x65, 0x95, 0xB9, 0xD9, 0xC7, - 0x12, 0xC0, 0x1B, 0x2C, 0x53, 0xE9, 0x65, 0x5A, - 0x38, 0x2B, 0xC4, 0x52, 0x2E, 0x61, 0x66, 0x45 - }, - { - 0x89, 0x34, 0x15, 0x9D, 0xAD, 0xE1, 0xAC, 0x74, - 0x14, 0x7D, 0xFA, 0x28, 0x2C, 0x75, 0x95, 0x4F, - 0xCE, 0xF4, 0x43, 0xEF, 0x25, 0xF8, 0x0D, 0xFE, - 0x9F, 0xB6, 0xEA, 0x63, 0x3B, 0x85, 0x45, 0x11, - 0x1D, 0x08, 0xB3, 0x4E, 0xF4, 0x3F, 0xFF, 0x17, - 0x02, 0x6C, 0x79, 0x64, 0xF5, 0xDE, 0xAC, 0x6D, - 0x2B, 0x3C, 0x29, 0xDA, 0xCF, 0x27, 0x47, 0xF0, - 0x22, 0xDF, 0x59, 0x67, 0xDF, 0xDC, 0x1A, 0x0A - }, - { - 0xCD, 0x36, 0xDD, 0x0B, 0x24, 0x06, 0x14, 0xCF, - 0x2F, 0xA2, 0xB9, 0xE9, 0x59, 0x67, 0x9D, 0xCD, - 0xD7, 0x2E, 0xC0, 0xCD, 0x58, 0xA4, 0x3D, 0xA3, - 0x79, 0x0A, 0x92, 0xF6, 0xCD, 0xEB, 0x9E, 0x1E, - 0x79, 0x5E, 0x47, 0x8A, 0x0A, 0x47, 0xD3, 0x71, - 0x10, 0x0D, 0x34, 0x0C, 0x5C, 0xED, 0xCD, 0xBB, - 0xC9, 0xE6, 0x8B, 0x3F, 0x46, 0x08, 0x18, 0xE5, - 0xBD, 0xFF, 0x7B, 0x4C, 0xDA, 0x4C, 0x27, 0x44 - }, - { - 0x00, 0xDF, 0x4E, 0x09, 0x9B, 0x80, 0x71, 0x37, - 0xA8, 0x59, 0x90, 0xF4, 0x9D, 0x3A, 0x94, 0x31, - 0x5E, 0x5A, 0x5F, 0x7F, 0x7A, 0x60, 0x76, 0xB3, - 0x03, 0xE9, 0x6B, 0x05, 0x6F, 0xB9, 0x38, 0x00, - 0x11, 0x1F, 0x47, 0x96, 0x28, 0xE2, 0xF8, 0xDB, - 0x59, 0xAE, 0xB6, 0xAC, 0x70, 0xC3, 0xB6, 0x1F, - 0x51, 0xF9, 0xB4, 0x6E, 0x80, 0xFF, 0xDE, 0xAE, - 0x25, 0xEB, 0xDD, 0xB4, 0xAF, 0x6C, 0xB4, 0xEE - }, - { - 0x2B, 0x9C, 0x95, 0x5E, 0x6C, 0xAE, 0xD4, 0xB7, - 0xC9, 0xE2, 0x46, 0xB8, 0x6F, 0x9A, 0x17, 0x26, - 0xE8, 0x10, 0xC5, 0x9D, 0x12, 0x6C, 0xEE, 0x66, - 0xED, 0x71, 0xBF, 0x01, 0x5B, 0x83, 0x55, 0x8A, - 0x4B, 0x6D, 0x84, 0xD1, 0x8D, 0xC3, 0xFF, 0x46, - 0x20, 0xC2, 0xFF, 0xB7, 0x22, 0x35, 0x9F, 0xDE, - 0xF8, 0x5B, 0xA0, 0xD4, 0xE2, 0xD2, 0x2E, 0xCB, - 0xE0, 0xED, 0x78, 0x4F, 0x99, 0xAF, 0xE5, 0x87 - }, - { - 0x18, 0x1D, 0xF0, 0xA2, 0x61, 0xA2, 0xF7, 0xD2, - 0x9E, 0xA5, 0xA1, 0x57, 0x72, 0x71, 0x51, 0x05, - 0xD4, 0x50, 0xA4, 0xB6, 0xC2, 0x36, 0xF6, 0x99, - 0xF4, 0x62, 0xD6, 0x0C, 0xA7, 0x64, 0x87, 0xFE, - 0xED, 0xFC, 0x9F, 0x5E, 0xB9, 0x2D, 0xF8, 0x38, - 0xE8, 0xFB, 0x5D, 0xC3, 0x69, 0x4E, 0x84, 0xC5, - 0xE0, 0xF4, 0xA1, 0x0B, 0x76, 0x1F, 0x50, 0x67, - 0x62, 0xBE, 0x05, 0x2C, 0x74, 0x5A, 0x6E, 0xE8 - }, - { - 0x21, 0xFB, 0x20, 0x34, 0x58, 0xBF, 0x3A, 0x7E, - 0x9A, 0x80, 0x43, 0x9F, 0x9A, 0x90, 0x28, 0x99, - 0xCD, 0x5D, 0xE0, 0x13, 0x9D, 0xFD, 0x56, 0xF7, - 0x11, 0x0C, 0x9D, 0xEC, 0x84, 0x37, 0xB2, 0x6B, - 0xDA, 0x63, 0xDE, 0x2F, 0x56, 0x59, 0x26, 0xD8, - 0x5E, 0xDB, 0x1D, 0x6C, 0x68, 0x25, 0x66, 0x97, - 0x43, 0xDD, 0x99, 0x92, 0x65, 0x3D, 0x13, 0x97, - 0x95, 0x44, 0xD5, 0xDC, 0x82, 0x28, 0xBF, 0xAA - }, - { - 0xEF, 0x02, 0x1F, 0x29, 0xC5, 0xFF, 0xB8, 0x30, - 0xE6, 0x4B, 0x9A, 0xA9, 0x05, 0x8D, 0xD6, 0x60, - 0xFD, 0x2F, 0xCB, 0x81, 0xC4, 0x97, 0xA7, 0xE6, - 0x98, 0xBC, 0xFB, 0xF5, 0x9D, 0xE5, 0xAD, 0x4A, - 0x86, 0xFF, 0x93, 0xC1, 0x0A, 0x4B, 0x9D, 0x1A, - 0xE5, 0x77, 0x47, 0x25, 0xF9, 0x07, 0x2D, 0xCD, - 0xE9, 0xE1, 0xF1, 0x99, 0xBA, 0xB9, 0x1F, 0x8B, - 0xFF, 0x92, 0x18, 0x64, 0xAA, 0x50, 0x2E, 0xEE - }, - { - 0xB3, 0xCF, 0xDA, 0x40, 0x52, 0x6B, 0x7F, 0x1D, - 0x37, 0x56, 0x9B, 0xDF, 0xCD, 0xF9, 0x11, 0xE5, - 0xA6, 0xEF, 0xE6, 0xB2, 0xEC, 0x90, 0xA0, 0x45, - 0x4C, 0x47, 0xB2, 0xC0, 0x46, 0xBF, 0x13, 0x0F, - 0xC3, 0xB3, 0x52, 0xB3, 0x4D, 0xF4, 0x81, 0x3D, - 0x48, 0xD3, 0x3A, 0xB8, 0xE2, 0x69, 0xB6, 0x9B, - 0x07, 0x56, 0x76, 0xCB, 0x6D, 0x00, 0xA8, 0xDC, - 0xF9, 0xE1, 0xF9, 0x67, 0xEC, 0x19, 0x1B, 0x2C - }, - { - 0xB4, 0xC6, 0xC3, 0xB2, 0x67, 0x07, 0x1E, 0xEF, - 0xB9, 0xC8, 0xC7, 0x2E, 0x0E, 0x2B, 0x94, 0x12, - 0x93, 0x64, 0x1F, 0x86, 0x73, 0xCB, 0x70, 0xC1, - 0xCC, 0x26, 0xAD, 0x1E, 0x73, 0xCF, 0x14, 0x17, - 0x55, 0x86, 0x0A, 0xD1, 0x9B, 0x34, 0xC2, 0xF3, - 0x4E, 0xD3, 0x5B, 0xB5, 0x2E, 0xC4, 0x50, 0x7C, - 0xC1, 0xFE, 0x59, 0x04, 0x77, 0x43, 0xA5, 0xF0, - 0xC6, 0xFE, 0xBD, 0xE6, 0x25, 0xE2, 0x60, 0x91 - }, - { - 0x57, 0xA3, 0x4F, 0x2B, 0xCC, 0xA6, 0x0D, 0x4B, - 0x85, 0x10, 0x3B, 0x83, 0x0C, 0x9D, 0x79, 0x52, - 0xA4, 0x16, 0xBE, 0x52, 0x63, 0xAE, 0x42, 0x9C, - 0x9E, 0x5E, 0x53, 0xFE, 0x85, 0x90, 0xA8, 0xF7, - 0x8E, 0xC6, 0x5A, 0x51, 0x10, 0x9E, 0xA8, 0x5D, - 0xCD, 0xF7, 0xB6, 0x22, 0x3F, 0x9F, 0x2B, 0x34, - 0x05, 0x39, 0xFA, 0xD8, 0x19, 0x23, 0xDB, 0xF8, - 0xED, 0xAB, 0xF9, 0x51, 0x29, 0xE4, 0xDF, 0xF6 - }, - { - 0x9C, 0xF4, 0x66, 0x62, 0xFC, 0xD6, 0x1A, 0x23, - 0x22, 0x77, 0xB6, 0x85, 0x66, 0x3B, 0x8B, 0x5D, - 0xA8, 0x32, 0xDF, 0xD9, 0xA3, 0xB8, 0xCC, 0xFE, - 0xEC, 0x99, 0x3E, 0xC6, 0xAC, 0x41, 0x5A, 0xD0, - 0x7E, 0x04, 0x8A, 0xDF, 0xE4, 0x14, 0xDF, 0x27, - 0x27, 0x70, 0xDB, 0xA8, 0x67, 0xDA, 0x5C, 0x12, - 0x24, 0xC6, 0xFD, 0x0A, 0xA0, 0xC2, 0x18, 0x7D, - 0x42, 0x6A, 0xC6, 0x47, 0xE9, 0x88, 0x73, 0x61 - }, - { - 0x5C, 0xE1, 0x04, 0x2A, 0xB4, 0xD5, 0x42, 0xC2, - 0xF9, 0xEE, 0x9D, 0x17, 0x26, 0x2A, 0xF8, 0x16, - 0x40, 0x98, 0x93, 0x5B, 0xEF, 0x17, 0x3D, 0x0E, - 0x18, 0x48, 0x9B, 0x04, 0x84, 0x17, 0x46, 0xCD, - 0x2F, 0x2D, 0xF8, 0x66, 0xBD, 0x7D, 0xA6, 0xE5, - 0xEF, 0x90, 0x24, 0xC6, 0x48, 0x02, 0x3E, 0xC7, - 0x23, 0xAB, 0x9C, 0x62, 0xFD, 0x80, 0x28, 0x57, - 0x39, 0xD8, 0x4F, 0x15, 0xD2, 0xAB, 0x51, 0x5A - }, - { - 0x84, 0x88, 0x39, 0x6B, 0xD4, 0xA8, 0x72, 0x9B, - 0x7A, 0x47, 0x31, 0x78, 0xF2, 0x32, 0xDA, 0xDF, - 0x3F, 0x0F, 0x8E, 0x22, 0x67, 0x8B, 0xA5, 0xA4, - 0x3E, 0x04, 0x1E, 0x72, 0xDA, 0x1E, 0x2C, 0xF8, - 0x21, 0x94, 0xC3, 0x07, 0x20, 0x7A, 0x54, 0xCB, - 0x81, 0x56, 0x29, 0x33, 0x39, 0xEA, 0xEC, 0x69, - 0x3F, 0xF6, 0x6B, 0xFC, 0xD5, 0xEF, 0xC6, 0x5E, - 0x95, 0xE4, 0xEC, 0xAF, 0x54, 0x53, 0x0A, 0xBD - }, - { - 0xF5, 0x98, 0xDA, 0x90, 0x1C, 0x38, 0x35, 0xBC, - 0xA5, 0x60, 0x77, 0x90, 0x37, 0xDF, 0xDE, 0x9F, - 0x0C, 0x51, 0xDC, 0x61, 0xC0, 0xB7, 0x60, 0xFC, - 0x15, 0x22, 0xD7, 0xB4, 0x70, 0xEE, 0x63, 0xF5, - 0xBD, 0xC6, 0x49, 0x84, 0x76, 0xE8, 0x60, 0x49, - 0xAD, 0x86, 0xE4, 0xE2, 0x1A, 0xF2, 0x85, 0x4A, - 0x98, 0x4C, 0xC9, 0x05, 0x42, 0x7D, 0x2F, 0x17, - 0xF6, 0x6B, 0x1F, 0x41, 0xC3, 0xDA, 0x6F, 0x61 - }, - { - 0x5F, 0x93, 0x26, 0x97, 0x98, 0xCF, 0x02, 0x13, - 0x21, 0x07, 0x33, 0x76, 0x60, 0xA8, 0xD7, 0xA1, - 0x77, 0x35, 0x4C, 0x02, 0x12, 0xEB, 0x93, 0xE5, - 0x55, 0xE7, 0xC3, 0x7A, 0x08, 0xAE, 0xF3, 0xD8, - 0xDC, 0xE0, 0x12, 0x17, 0x01, 0x1C, 0xD9, 0x65, - 0xC0, 0x4D, 0xD2, 0xC1, 0x05, 0xF2, 0xE2, 0xB6, - 0xCA, 0xE5, 0xE4, 0xE6, 0xBC, 0xAF, 0x09, 0xDF, - 0xBE, 0xE3, 0xE0, 0xA6, 0xA6, 0x35, 0x7C, 0x37 - }, - { - 0x0E, 0xCF, 0x58, 0x1D, 0x47, 0xBA, 0xC9, 0x23, - 0x09, 0x86, 0xFA, 0xAB, 0xD7, 0x0C, 0x2F, 0x5B, - 0x80, 0xE9, 0x10, 0x66, 0xF0, 0xEC, 0x55, 0xA8, - 0x42, 0x93, 0x78, 0x82, 0x28, 0x6D, 0x2C, 0xA0, - 0x07, 0xBB, 0x4E, 0x97, 0x3B, 0x0B, 0x09, 0x1D, - 0x52, 0x16, 0x7F, 0xF7, 0xC4, 0x00, 0x9C, 0x7A, - 0xB4, 0xAD, 0x38, 0xFF, 0xF1, 0xDC, 0xEA, 0xCD, - 0xB7, 0xBE, 0x81, 0xEF, 0x4A, 0x45, 0x29, 0x52 - }, - { - 0x5A, 0xEC, 0xA8, 0xAB, 0xE1, 0x52, 0x85, 0x82, - 0xB2, 0xA3, 0x07, 0xB4, 0x00, 0x95, 0x85, 0x49, - 0x8A, 0x3D, 0x46, 0x7C, 0xA6, 0x10, 0x1C, 0xB0, - 0xC5, 0x12, 0x6F, 0x99, 0x76, 0x05, 0x6E, 0x9F, - 0xFC, 0x12, 0x3C, 0xC2, 0x0C, 0x30, 0x2B, 0x2A, - 0x73, 0x7F, 0x49, 0x2C, 0x75, 0xD2, 0x1F, 0x01, - 0x51, 0x2C, 0x90, 0xCA, 0x05, 0x41, 0xDF, 0xA5, - 0x6E, 0x95, 0x0A, 0x32, 0x1D, 0xCB, 0x28, 0xD8 - }, - { - 0x73, 0x2F, 0xBF, 0x8F, 0x1C, 0xB2, 0xB8, 0x32, - 0x92, 0x63, 0xED, 0xE2, 0x78, 0x58, 0xFE, 0x46, - 0xF8, 0xD3, 0x35, 0x4D, 0x37, 0x6B, 0xCD, 0xA0, - 0x54, 0x8E, 0x7C, 0xE1, 0xFA, 0x9D, 0xD1, 0x1F, - 0x85, 0xEB, 0x66, 0x1F, 0xE9, 0x50, 0xB5, 0x43, - 0xAA, 0x63, 0x5C, 0xA4, 0xD3, 0xF0, 0x4E, 0xDE, - 0x5B, 0x32, 0xD6, 0xB6, 0x56, 0xE5, 0xCE, 0x1C, - 0x44, 0xD3, 0x5C, 0x4A, 0x6C, 0x56, 0xCF, 0xF8 - }, - { - 0xD5, 0xE9, 0x38, 0x73, 0x5D, 0x63, 0x78, 0x8C, - 0x80, 0x10, 0x0A, 0xEF, 0xD1, 0x86, 0x48, 0xD1, - 0x8C, 0xF2, 0x72, 0xF6, 0x9F, 0x20, 0xFF, 0x24, - 0xCF, 0xE2, 0x89, 0x5C, 0x08, 0x8A, 0xD0, 0x8B, - 0x01, 0x04, 0xDA, 0x16, 0x72, 0xA4, 0xEB, 0x26, - 0xFC, 0x52, 0x54, 0x5C, 0xC7, 0xD7, 0xA0, 0x1B, - 0x26, 0x6C, 0xF5, 0x46, 0xC4, 0x03, 0xC4, 0x5B, - 0xD1, 0x29, 0xEB, 0x41, 0xBD, 0xD9, 0x20, 0x0B - }, - { - 0x65, 0xA2, 0x45, 0xB4, 0x93, 0x52, 0xEE, 0x29, - 0x7D, 0x91, 0xAF, 0x8C, 0x8B, 0xE0, 0x05, 0x28, - 0xAC, 0x6E, 0x04, 0x6D, 0xD8, 0x3A, 0xC7, 0xBD, - 0x46, 0x5A, 0x98, 0x81, 0x6D, 0xD6, 0x8F, 0x3E, - 0x00, 0xE1, 0xAE, 0x8F, 0x89, 0x53, 0x27, 0xA7, - 0xE9, 0xA8, 0xC9, 0x32, 0x65, 0x98, 0x37, 0x9A, - 0x29, 0xC9, 0xFC, 0x91, 0xEC, 0x0C, 0x6E, 0xEF, - 0x08, 0xF3, 0xE2, 0xB2, 0x16, 0xC1, 0x10, 0x08 - }, - { - 0xC9, 0x56, 0x54, 0xB6, 0x30, 0x19, 0x13, 0x0A, - 0xB4, 0x5D, 0xD0, 0xFB, 0x49, 0x41, 0xB9, 0x8A, - 0xEB, 0x3A, 0xF2, 0xA1, 0x23, 0x91, 0x3E, 0xCA, - 0x2C, 0xE9, 0x9B, 0x3E, 0x97, 0x41, 0x0A, 0x7B, - 0xF8, 0x66, 0x1C, 0xC7, 0xFB, 0xAA, 0x2B, 0xC1, - 0xCF, 0x2B, 0x13, 0x11, 0x3B, 0x1E, 0xD4, 0x0A, - 0x01, 0x18, 0xB8, 0x8E, 0x5F, 0xFF, 0xC3, 0x54, - 0x27, 0x59, 0xEA, 0x00, 0x7E, 0xD4, 0xC5, 0x8D - }, - { - 0x1E, 0xB2, 0x62, 0xF3, 0x8F, 0xA4, 0x94, 0x43, - 0x1F, 0x01, 0x7D, 0xAD, 0x44, 0xC0, 0xDF, 0xB6, - 0x93, 0x24, 0xAC, 0x03, 0x2F, 0x04, 0xB6, 0x57, - 0xFC, 0x91, 0xA8, 0x86, 0x47, 0xBB, 0x74, 0x76, - 0x0F, 0x24, 0xE7, 0xC9, 0x56, 0x51, 0x4F, 0x0C, - 0xF0, 0x02, 0x99, 0x0B, 0x18, 0x2C, 0x16, 0x42, - 0xB9, 0xB2, 0x42, 0x6E, 0x96, 0xA6, 0x11, 0x87, - 0xE4, 0xE0, 0x12, 0xF0, 0x0E, 0x21, 0x7D, 0x84 - }, - { - 0x3B, 0x95, 0x5A, 0xEE, 0xBF, 0xA5, 0x15, 0x1A, - 0xC1, 0xAB, 0x8E, 0x3F, 0x5C, 0xC1, 0xE3, 0x76, - 0x70, 0x84, 0xC8, 0x42, 0xA5, 0x75, 0xD3, 0x62, - 0x69, 0x83, 0x6E, 0x97, 0x35, 0x3D, 0x41, 0x62, - 0x2B, 0x73, 0x1D, 0xDD, 0xCD, 0x5F, 0x26, 0x95, - 0x50, 0xA3, 0xA5, 0xB8, 0x7B, 0xE1, 0xE9, 0x03, - 0x26, 0x34, 0x0B, 0x6E, 0x0E, 0x62, 0x55, 0x58, - 0x15, 0xD9, 0x60, 0x05, 0x97, 0xAC, 0x6E, 0xF9 - }, - { - 0x68, 0x28, 0x9F, 0x66, 0x05, 0x47, 0x3B, 0xA0, - 0xE4, 0xF2, 0x41, 0xBA, 0xF7, 0x47, 0x7A, 0x98, - 0x85, 0x42, 0x6A, 0x85, 0x8F, 0x19, 0xEF, 0x2A, - 0x18, 0xB0, 0xD4, 0x0E, 0xF8, 0xE4, 0x12, 0x82, - 0xED, 0x55, 0x26, 0xB5, 0x19, 0x79, 0x9E, 0x27, - 0x0F, 0x13, 0x88, 0x13, 0x27, 0x91, 0x82, 0x78, - 0x75, 0x57, 0x11, 0x07, 0x1D, 0x85, 0x11, 0xFE, - 0x96, 0x3E, 0x3B, 0x56, 0x06, 0xAA, 0x37, 0x16 - }, - { - 0x80, 0xA3, 0x37, 0x87, 0x54, 0x26, 0x12, 0xC3, - 0x8F, 0x6B, 0xCD, 0x7C, 0xD8, 0x6C, 0xAB, 0x46, - 0x02, 0x27, 0x50, 0x9B, 0x1C, 0xBA, 0xD5, 0xEC, - 0x40, 0x8A, 0x91, 0x41, 0x3D, 0x51, 0x15, 0x5A, - 0x04, 0x76, 0xDA, 0xDB, 0xF3, 0xA2, 0x51, 0x8E, - 0x4A, 0x6E, 0x77, 0xCC, 0x34, 0x66, 0x22, 0xE3, - 0x47, 0xA4, 0x69, 0xBF, 0x8B, 0xAA, 0x5F, 0x04, - 0xEB, 0x2D, 0x98, 0x70, 0x53, 0x55, 0xD0, 0x63 - }, - { - 0x34, 0x62, 0x9B, 0xC6, 0xD8, 0x31, 0x39, 0x1C, - 0x4C, 0xDF, 0x8A, 0xF1, 0xB4, 0xB7, 0xB6, 0xB8, - 0xE8, 0xEE, 0x17, 0xCF, 0x98, 0xC7, 0x0E, 0x5D, - 0xD5, 0x86, 0xCD, 0x99, 0xF1, 0x4B, 0x11, 0xDF, - 0x94, 0x51, 0x66, 0x23, 0x6A, 0x95, 0x71, 0xE6, - 0xD5, 0x91, 0xBB, 0x83, 0xEE, 0x4D, 0x16, 0x4D, - 0x46, 0xF6, 0xB9, 0xD8, 0xEF, 0x86, 0xFF, 0x86, - 0x5A, 0x81, 0xBF, 0xB9, 0x1B, 0x00, 0x42, 0x4B - }, - { - 0x8B, 0x7C, 0xC3, 0x39, 0x16, 0x38, 0x63, 0xBB, - 0x43, 0x83, 0xE5, 0x42, 0xB0, 0xEF, 0x0E, 0x7C, - 0xF3, 0x6B, 0x84, 0xAD, 0x93, 0x2C, 0xDF, 0x5A, - 0x80, 0x41, 0x9E, 0xC9, 0xAD, 0x69, 0x2E, 0x7A, - 0x7E, 0x78, 0x4D, 0x2C, 0x7C, 0xB3, 0x79, 0x6A, - 0x18, 0xB8, 0xF8, 0x00, 0x03, 0x5F, 0x3A, 0xA0, - 0x6C, 0x82, 0x41, 0x00, 0x61, 0x11, 0x20, 0xA7, - 0xBD, 0xEB, 0x35, 0x61, 0x8C, 0xCB, 0x81, 0xB7 - }, - { - 0x4F, 0x08, 0x4E, 0x49, 0x39, 0xDD, 0x5A, 0x7F, - 0x5A, 0x65, 0x8F, 0xAD, 0x58, 0xA1, 0x8A, 0x15, - 0xC2, 0x5C, 0x32, 0xEC, 0x1C, 0x7F, 0xD5, 0xC5, - 0xC6, 0xC3, 0xE8, 0x92, 0xB3, 0x97, 0x1A, 0xEA, - 0xAC, 0x30, 0x83, 0x04, 0xEF, 0x17, 0xB1, 0xC4, - 0x72, 0x39, 0xEA, 0x4B, 0xB3, 0x98, 0xB3, 0xFD, - 0x6D, 0x45, 0x28, 0xD8, 0xDE, 0x8E, 0x76, 0x8A, - 0xE0, 0xF1, 0xA5, 0xA5, 0xC6, 0xB5, 0xC2, 0x97 - }, - { - 0x48, 0xF4, 0x07, 0xA1, 0xAF, 0x5B, 0x80, 0x09, - 0xB2, 0x05, 0x17, 0x42, 0xE8, 0xCF, 0x5C, 0xD5, - 0x65, 0x66, 0x69, 0xE7, 0xD7, 0x22, 0xEE, 0x8E, - 0x7B, 0xD2, 0x02, 0x06, 0x08, 0x49, 0x44, 0x21, - 0x68, 0xD8, 0xFA, 0xCC, 0x11, 0x7C, 0x01, 0x2B, - 0xFB, 0x7B, 0xF4, 0x49, 0xD9, 0x9B, 0xEF, 0xFF, - 0x6A, 0x34, 0xAE, 0xA2, 0x03, 0xF1, 0xD8, 0xD3, - 0x52, 0x72, 0x2B, 0xE5, 0x01, 0x4E, 0xC8, 0x18 - }, - { - 0xA6, 0xAA, 0x82, 0xCD, 0x1E, 0x42, 0x6F, 0x9A, - 0x73, 0xBF, 0xA3, 0x9A, 0x29, 0x03, 0x78, 0x76, - 0x11, 0x46, 0x55, 0xB8, 0xC2, 0x2D, 0x6D, 0x3F, - 0xF8, 0xB6, 0x38, 0xAE, 0x7D, 0xEA, 0x6B, 0x17, - 0x84, 0x3E, 0x09, 0xE5, 0x2E, 0xB6, 0x6F, 0xA1, - 0xE4, 0x75, 0xE4, 0xA8, 0xA3, 0xDE, 0x42, 0x9B, - 0x7D, 0x0F, 0x4A, 0x77, 0x6F, 0xCB, 0x8B, 0xDC, - 0x9B, 0x9F, 0xED, 0xE7, 0xD5, 0x2E, 0x81, 0x5F - }, - { - 0x58, 0x17, 0x02, 0x7D, 0x6B, 0xDD, 0x00, 0xC5, - 0xDD, 0x10, 0xAC, 0x59, 0x3C, 0xD5, 0x60, 0x37, - 0x22, 0x70, 0x77, 0x5A, 0x18, 0x52, 0x6D, 0x7E, - 0x6F, 0x13, 0x87, 0x2A, 0x2E, 0x20, 0xEA, 0xB6, - 0x64, 0x62, 0x5B, 0xE7, 0x16, 0x8A, 0xC4, 0xBD, - 0x7C, 0x9E, 0x0C, 0xE7, 0xFC, 0x40, 0x99, 0xE0, - 0xF4, 0x84, 0x42, 0xE2, 0xC7, 0x67, 0x19, 0x1C, - 0x6E, 0x12, 0x84, 0xE9, 0xB2, 0xCC, 0xEA, 0x8C - }, - { - 0x08, 0xE4, 0x10, 0x28, 0x34, 0x0A, 0x45, 0xC7, - 0x4E, 0x40, 0x52, 0xB3, 0xA8, 0xD6, 0x38, 0x9E, - 0x22, 0xE0, 0x43, 0xA1, 0xAD, 0xAB, 0x5E, 0x28, - 0xD9, 0x76, 0x19, 0x45, 0x0D, 0x72, 0x34, 0x69, - 0xB6, 0x20, 0xCA, 0xA5, 0x19, 0xB8, 0x1C, 0x14, - 0x52, 0x38, 0x54, 0xF6, 0x19, 0xFD, 0x30, 0x27, - 0xE3, 0x84, 0x7B, 0xD0, 0x32, 0x76, 0xE6, 0x06, - 0x04, 0xA8, 0x0D, 0xDB, 0x4D, 0xE8, 0x76, 0xD6 - }, - { - 0x13, 0x0B, 0x84, 0x20, 0x53, 0x7E, 0xB0, 0x7D, - 0x72, 0xAB, 0xDA, 0x07, 0xC8, 0x5A, 0xCB, 0xD8, - 0xB9, 0xA4, 0x4F, 0x16, 0x32, 0x1D, 0xD0, 0x42, - 0x21, 0x45, 0xF8, 0x09, 0x67, 0x3D, 0x30, 0xF2, - 0xB5, 0x32, 0x13, 0x26, 0xE2, 0xBF, 0xF3, 0x17, - 0xEF, 0x3F, 0xEF, 0x98, 0x3C, 0x51, 0xC4, 0xF8, - 0xAB, 0x24, 0xA3, 0x25, 0xD2, 0x98, 0xE3, 0x4A, - 0xFC, 0xE5, 0x69, 0xA8, 0x25, 0x55, 0x77, 0x4C - }, - { - 0xAC, 0x49, 0xB8, 0x44, 0xAF, 0xAA, 0x01, 0x2E, - 0x31, 0xC4, 0x74, 0xCA, 0x26, 0x36, 0x48, 0x84, - 0x4F, 0xD2, 0xF6, 0x30, 0x79, 0x92, 0xC2, 0xF7, - 0x52, 0xAC, 0xA0, 0x2C, 0x38, 0x28, 0x96, 0x51, - 0x75, 0x79, 0x4D, 0xEE, 0xE2, 0xD2, 0xEE, 0x95, - 0xC6, 0x1C, 0xD2, 0x84, 0xF6, 0xB5, 0xA2, 0xD7, - 0x5E, 0x2E, 0xF2, 0xB2, 0x9E, 0xE8, 0x14, 0x9E, - 0x77, 0xFB, 0x81, 0x44, 0x7B, 0x2F, 0xD0, 0x4B - }, - { - 0xB9, 0xD7, 0xCA, 0x81, 0xCC, 0x60, 0xBB, 0x95, - 0x78, 0xE4, 0x40, 0x24, 0xE5, 0xA0, 0xA0, 0xBE, - 0x80, 0xF2, 0x73, 0x36, 0xA6, 0xA9, 0xF4, 0xE5, - 0x3D, 0xF3, 0x99, 0x9C, 0xB1, 0x91, 0x28, 0x0B, - 0x09, 0x0E, 0x2A, 0xC2, 0xD2, 0x9C, 0x5B, 0xAA, - 0xD9, 0xD7, 0x14, 0x15, 0xBD, 0xC1, 0x29, 0xE6, - 0x9A, 0xA2, 0x66, 0x7A, 0xF6, 0xA7, 0xFD, 0x5E, - 0x18, 0x9F, 0xCC, 0xDC, 0xEE, 0x81, 0x73, 0x40 - }, - { - 0xA7, 0x55, 0xE1, 0x13, 0x38, 0x65, 0x72, 0xC7, - 0x5C, 0xED, 0x61, 0xD7, 0x19, 0x70, 0x60, 0x70, - 0xB9, 0x14, 0x60, 0x48, 0xE4, 0x2A, 0x9F, 0x8C, - 0xD3, 0x56, 0x67, 0xA0, 0x88, 0xB4, 0x2F, 0x08, - 0x80, 0x8A, 0xBD, 0xF7, 0x7E, 0x61, 0x8A, 0xBD, - 0x95, 0x9A, 0xFC, 0x75, 0x73, 0x79, 0xCA, 0x2C, - 0x00, 0xBC, 0xC1, 0xA4, 0x83, 0x90, 0xFA, 0x2B, - 0xFF, 0x61, 0x8B, 0x1E, 0x00, 0x78, 0xA6, 0x13 - }, - { - 0xA7, 0x3C, 0x7D, 0xEB, 0xED, 0x32, 0x6F, 0x1C, - 0x0D, 0xB0, 0x79, 0x5E, 0xE7, 0xD6, 0xE3, 0x94, - 0x68, 0x94, 0xB8, 0x26, 0xB1, 0xF8, 0x10, 0x1C, - 0x56, 0xC8, 0x23, 0xBA, 0x17, 0x16, 0x83, 0x12, - 0xE7, 0xF5, 0x3F, 0xC7, 0xDB, 0xE5, 0x2C, 0x3E, - 0x11, 0xE6, 0x98, 0x52, 0xC4, 0x04, 0x85, 0xE2, - 0xEF, 0x18, 0x24, 0x77, 0x86, 0x2E, 0xA6, 0xA3, - 0x4E, 0xC1, 0x36, 0xE2, 0xDF, 0xEE, 0xA6, 0xF4 - }, - { - 0x6C, 0xB8, 0xF9, 0xD5, 0x2C, 0x56, 0xD8, 0x2C, - 0xAC, 0x28, 0xF3, 0x9E, 0xA1, 0x59, 0x3E, 0x8B, - 0xB2, 0x50, 0x62, 0x93, 0xAC, 0x0D, 0x68, 0x37, - 0x6A, 0x17, 0x09, 0xB6, 0x2A, 0x46, 0xDF, 0x14, - 0xA4, 0xAE, 0x64, 0xB2, 0xD8, 0xFA, 0xB7, 0x67, - 0x33, 0xA1, 0xCE, 0xD2, 0xD5, 0x48, 0xE3, 0xF3, - 0xC6, 0xFC, 0xB4, 0x9D, 0x40, 0xC3, 0xD5, 0x80, - 0x8E, 0x44, 0x9C, 0xD8, 0x3D, 0x1C, 0x2A, 0xA2 - }, - { - 0x68, 0x3F, 0xA2, 0xB2, 0x36, 0x9A, 0x10, 0x16, - 0x2C, 0x1C, 0x1C, 0x7B, 0x24, 0xBC, 0x97, 0x0E, - 0xE6, 0x7D, 0xA2, 0x20, 0x56, 0x4F, 0x32, 0x20, - 0x3F, 0x62, 0x56, 0x96, 0xC0, 0x35, 0x2A, 0x0B, - 0x9A, 0xD9, 0x66, 0x24, 0x36, 0x2D, 0x95, 0x2D, - 0x84, 0x46, 0x3C, 0x11, 0x06, 0xA2, 0xDB, 0xA7, - 0xA0, 0x92, 0x59, 0x98, 0x84, 0xB3, 0x5A, 0x0B, - 0x89, 0xC8, 0xF1, 0xB6, 0xA9, 0xB5, 0xA6, 0x1E - }, - { - 0xAA, 0xD9, 0xAD, 0x44, 0x61, 0x01, 0x18, 0xB7, - 0x7D, 0x50, 0x8A, 0xEB, 0x1B, 0xBC, 0xD1, 0xC1, - 0xB7, 0xD0, 0x17, 0x13, 0x97, 0xFB, 0x51, 0x0A, - 0x40, 0x1B, 0xBC, 0x0E, 0xC3, 0x46, 0x23, 0x67, - 0x0D, 0x86, 0xA2, 0xDC, 0x3C, 0x8F, 0x3A, 0xB5, - 0xA2, 0x04, 0x4D, 0xF7, 0x30, 0x25, 0x67, 0x27, - 0x54, 0x5F, 0x08, 0x60, 0xCE, 0x21, 0xA1, 0xEA, - 0xC7, 0x17, 0xDF, 0xC4, 0x8F, 0x5D, 0x22, 0x8E - }, - { - 0xC4, 0x25, 0x78, 0xDE, 0x23, 0xB4, 0xC9, 0x87, - 0xD5, 0xE1, 0xAC, 0x4D, 0x68, 0x9E, 0xD5, 0xDE, - 0x4B, 0x04, 0x17, 0xF9, 0x70, 0x4B, 0xC6, 0xBC, - 0xE9, 0x69, 0xFA, 0x13, 0x47, 0x15, 0x85, 0xD6, - 0x2C, 0x2C, 0xB1, 0x21, 0x2A, 0x94, 0x4F, 0x39, - 0x7F, 0xC9, 0xCA, 0x2C, 0x37, 0x47, 0xC3, 0xBE, - 0xB6, 0x94, 0xEC, 0x4C, 0x5B, 0xE6, 0x88, 0x28, - 0xDD, 0xA5, 0x3E, 0xF4, 0x3F, 0xAE, 0xC6, 0xC0 - }, - { - 0x47, 0x0F, 0x00, 0x84, 0x1E, 0xE8, 0x24, 0x4E, - 0x63, 0xED, 0x2C, 0x7E, 0xA3, 0x0E, 0x2E, 0x41, - 0x98, 0x97, 0xC1, 0x97, 0x46, 0x2E, 0xCC, 0xCE, - 0xCF, 0x71, 0x3B, 0x42, 0xA5, 0x06, 0x5F, 0xFF, - 0x59, 0x14, 0xBC, 0x9B, 0x79, 0xAF, 0xFE, 0x8F, - 0x6B, 0x65, 0x78, 0x75, 0xE7, 0x89, 0xAE, 0x21, - 0x3B, 0xD9, 0x14, 0xCD, 0x35, 0xBD, 0x17, 0x4D, - 0x46, 0xE9, 0xD1, 0x8B, 0xD8, 0x43, 0x77, 0x3D - }, - { - 0x34, 0xFC, 0x42, 0x13, 0x73, 0x0F, 0x47, 0xA5, - 0xE9, 0xA3, 0x58, 0x0F, 0x64, 0x3E, 0x12, 0x94, - 0x5C, 0xFC, 0xB3, 0x1B, 0xF2, 0x06, 0xF6, 0xAD, - 0x45, 0x0C, 0xE5, 0x28, 0xDA, 0x3F, 0xA4, 0x32, - 0xE0, 0x05, 0xD6, 0xB0, 0xEC, 0xCE, 0x10, 0xDC, - 0xA7, 0xC5, 0x99, 0x5F, 0x6A, 0xAC, 0xC5, 0x15, - 0x0E, 0x1B, 0x00, 0x9E, 0x19, 0x75, 0x1E, 0x83, - 0x09, 0xF8, 0x85, 0x95, 0x31, 0x84, 0x43, 0x74 - }, - { - 0xFB, 0x3C, 0x1F, 0x0F, 0x56, 0xA5, 0x6F, 0x8E, - 0x31, 0x6F, 0xDF, 0x5D, 0x85, 0x3C, 0x8C, 0x87, - 0x2C, 0x39, 0x63, 0x5D, 0x08, 0x36, 0x34, 0xC3, - 0x90, 0x4F, 0xC3, 0xAC, 0x07, 0xD1, 0xB5, 0x78, - 0xE8, 0x5F, 0xF0, 0xE4, 0x80, 0xE9, 0x2D, 0x44, - 0xAD, 0xE3, 0x3B, 0x62, 0xE8, 0x93, 0xEE, 0x32, - 0x34, 0x3E, 0x79, 0xDD, 0xF6, 0xEF, 0x29, 0x2E, - 0x89, 0xB5, 0x82, 0xD3, 0x12, 0x50, 0x23, 0x14 - }, - { - 0xC7, 0xC9, 0x7F, 0xC6, 0x5D, 0xD2, 0xB9, 0xE3, - 0xD3, 0xD6, 0x07, 0xD3, 0x15, 0x98, 0xD3, 0xF8, - 0x42, 0x61, 0xE9, 0x91, 0x92, 0x51, 0xE9, 0xC8, - 0xE5, 0x7B, 0xB5, 0xF8, 0x29, 0x37, 0x7D, 0x5F, - 0x73, 0xEA, 0xBB, 0xED, 0x55, 0xC6, 0xC3, 0x81, - 0x18, 0x0F, 0x29, 0xAD, 0x02, 0xE5, 0xBE, 0x79, - 0x7F, 0xFE, 0xC7, 0xE5, 0x7B, 0xDE, 0xCB, 0xC5, - 0x0A, 0xD3, 0xD0, 0x62, 0xF0, 0x99, 0x3A, 0xB0 - }, - { - 0xA5, 0x7A, 0x49, 0xCD, 0xBE, 0x67, 0xAE, 0x7D, - 0x9F, 0x79, 0x7B, 0xB5, 0xCC, 0x7E, 0xFC, 0x2D, - 0xF0, 0x7F, 0x4E, 0x1B, 0x15, 0x95, 0x5F, 0x85, - 0xDA, 0xE7, 0x4B, 0x76, 0xE2, 0xEC, 0xB8, 0x5A, - 0xFB, 0x6C, 0xD9, 0xEE, 0xED, 0x88, 0x88, 0xD5, - 0xCA, 0x3E, 0xC5, 0xAB, 0x65, 0xD2, 0x7A, 0x7B, - 0x19, 0xE5, 0x78, 0x47, 0x57, 0x60, 0xA0, 0x45, - 0xAC, 0x3C, 0x92, 0xE1, 0x3A, 0x93, 0x8E, 0x77 - }, - { - 0xC7, 0x14, 0x3F, 0xCE, 0x96, 0x14, 0xA1, 0x7F, - 0xD6, 0x53, 0xAE, 0xB1, 0x40, 0x72, 0x6D, 0xC9, - 0xC3, 0xDB, 0xB1, 0xDE, 0x6C, 0xC5, 0x81, 0xB2, - 0x72, 0x68, 0x97, 0xEC, 0x24, 0xB7, 0xA5, 0x03, - 0x59, 0xAD, 0x49, 0x22, 0x43, 0xBE, 0x66, 0xD9, - 0xED, 0xD8, 0xC9, 0x33, 0xB5, 0xB8, 0x0E, 0x0B, - 0x91, 0xBB, 0x61, 0xEA, 0x98, 0x05, 0x60, 0x06, - 0x51, 0x69, 0x76, 0xFA, 0xE8, 0xD9, 0x9A, 0x35 - }, - { - 0x65, 0xBB, 0x58, 0xD0, 0x7F, 0x93, 0x7E, 0x2D, - 0x3C, 0x7E, 0x65, 0x38, 0x5F, 0x9C, 0x54, 0x73, - 0x0B, 0x70, 0x41, 0x05, 0xCC, 0xDB, 0x69, 0x1F, - 0x6E, 0x14, 0x6D, 0x4E, 0xE8, 0xF6, 0xC0, 0x86, - 0xF4, 0x95, 0x11, 0x03, 0x51, 0x10, 0xA9, 0xAD, - 0x60, 0x31, 0xFD, 0xCE, 0xB9, 0x43, 0xE0, 0xF9, - 0x61, 0x3B, 0xCB, 0x27, 0x6D, 0xD4, 0x0F, 0x06, - 0x24, 0xEF, 0x0F, 0x92, 0x4F, 0x80, 0x97, 0x83 - }, - { - 0xE5, 0x40, 0x27, 0x7F, 0x68, 0x3B, 0x11, 0x86, - 0xDD, 0x3B, 0x5B, 0x3F, 0x61, 0x43, 0x33, 0x96, - 0x58, 0x1A, 0x35, 0xFE, 0xB1, 0x20, 0x02, 0xBE, - 0x8C, 0x6A, 0x62, 0x31, 0xFC, 0x40, 0xFF, 0xA7, - 0x0F, 0x08, 0x08, 0x1B, 0xC5, 0x8B, 0x2D, 0x94, - 0xF7, 0x64, 0x95, 0x43, 0x61, 0x4A, 0x43, 0x5F, - 0xAA, 0x2D, 0x62, 0x11, 0x0E, 0x13, 0xDA, 0xBC, - 0x7B, 0x86, 0x62, 0x9B, 0x63, 0xAF, 0x9C, 0x24 - }, - { - 0x41, 0x85, 0x00, 0x87, 0x8C, 0x5F, 0xBC, 0xB5, - 0x84, 0xC4, 0x32, 0xF4, 0x28, 0x5E, 0x05, 0xE4, - 0x9F, 0x2E, 0x3E, 0x07, 0x53, 0x99, 0xA0, 0xDB, - 0xFC, 0xF8, 0x74, 0xEB, 0xF8, 0xC0, 0x3D, 0x02, - 0xBF, 0x16, 0xBC, 0x69, 0x89, 0xD1, 0x61, 0xC7, - 0x7C, 0xA0, 0x78, 0x6B, 0x05, 0x05, 0x3C, 0x6C, - 0x70, 0x94, 0x33, 0x71, 0x23, 0x19, 0x19, 0x21, - 0x28, 0x83, 0x5C, 0xF0, 0xB6, 0x60, 0x59, 0x5B - }, - { - 0x88, 0x90, 0x90, 0xDB, 0xB1, 0x94, 0x4B, 0xDC, - 0x94, 0x33, 0xEE, 0x5E, 0xF1, 0x01, 0x0C, 0x7A, - 0x4A, 0x24, 0xA8, 0xE7, 0x1E, 0xCE, 0xA8, 0xE1, - 0x2A, 0x31, 0x31, 0x8C, 0xE4, 0x9D, 0xCA, 0xB0, - 0xAC, 0xA5, 0xC3, 0x80, 0x23, 0x34, 0xAA, 0xB2, - 0xCC, 0x84, 0xB1, 0x4C, 0x6B, 0x93, 0x21, 0xFE, - 0x58, 0x6B, 0xF3, 0xF8, 0x76, 0xF1, 0x9C, 0xD4, - 0x06, 0xEB, 0x11, 0x27, 0xFB, 0x94, 0x48, 0x01 - }, - { - 0x53, 0xB6, 0xA2, 0x89, 0x10, 0xAA, 0x92, 0xE2, - 0x7E, 0x53, 0x6F, 0xB5, 0x49, 0xCF, 0x9B, 0x99, - 0x18, 0x79, 0x10, 0x60, 0x89, 0x8E, 0x0B, 0x9F, - 0xE1, 0x83, 0x57, 0x7F, 0xF4, 0x3B, 0x5E, 0x9C, - 0x76, 0x89, 0xC7, 0x45, 0xB3, 0x2E, 0x41, 0x22, - 0x69, 0x83, 0x7C, 0x31, 0xB8, 0x9E, 0x6C, 0xC1, - 0x2B, 0xF7, 0x6E, 0x13, 0xCA, 0xD3, 0x66, 0xB7, - 0x4E, 0xCE, 0x48, 0xBB, 0x85, 0xFD, 0x09, 0xE9 - }, - { - 0x7C, 0x09, 0x20, 0x80, 0xC6, 0xA8, 0x0D, 0x67, - 0x24, 0x09, 0xD0, 0x81, 0xD3, 0xD1, 0x77, 0x10, - 0x6B, 0xCD, 0x63, 0x56, 0x77, 0x85, 0x14, 0x07, - 0x19, 0x49, 0x09, 0x50, 0xAE, 0x07, 0xAE, 0x8F, - 0xCA, 0xAB, 0xBA, 0xAA, 0xB3, 0x30, 0xCF, 0xBC, - 0xF7, 0x37, 0x44, 0x82, 0xC2, 0x20, 0xAF, 0x2E, - 0xAD, 0xEE, 0xB7, 0x3D, 0xCB, 0xB3, 0x5E, 0xD8, - 0x23, 0x34, 0x4E, 0x14, 0x4E, 0x7D, 0x48, 0x99 - }, - { - 0x9C, 0xCD, 0xE5, 0x66, 0xD2, 0x40, 0x05, 0x09, - 0x18, 0x11, 0x11, 0xF3, 0x2D, 0xDE, 0x4C, 0xD6, - 0x32, 0x09, 0xFE, 0x59, 0xA3, 0x0C, 0x11, 0x45, - 0x46, 0xAD, 0x27, 0x76, 0xD8, 0x89, 0xA4, 0x1B, - 0xAD, 0x8F, 0xA1, 0xBB, 0x46, 0x8C, 0xB2, 0xF9, - 0xD4, 0x2C, 0xA9, 0x92, 0x8A, 0x77, 0x70, 0xFE, - 0xF8, 0xE8, 0xBA, 0x4D, 0x0C, 0x81, 0x2D, 0x9A, - 0x1E, 0x75, 0xC3, 0xD8, 0xD2, 0xCC, 0xD7, 0x5A - }, - { - 0x6E, 0x29, 0x3B, 0xF5, 0xD0, 0x3F, 0xE4, 0x39, - 0x77, 0xCF, 0xE3, 0xF5, 0x7C, 0xCD, 0xB3, 0xAE, - 0x28, 0x2A, 0x85, 0x45, 0x5D, 0xCA, 0x33, 0xF3, - 0x7F, 0x4B, 0x74, 0xF8, 0x39, 0x8C, 0xC6, 0x12, - 0x43, 0x3D, 0x75, 0x5C, 0xBE, 0xC4, 0x12, 0xF8, - 0xF8, 0x2A, 0x3B, 0xD3, 0xBC, 0x4A, 0x27, 0x8F, - 0x7E, 0xCD, 0x0D, 0xFA, 0x9B, 0xBD, 0xC4, 0x0B, - 0xE7, 0xA7, 0x87, 0xC8, 0xF1, 0x59, 0xB2, 0xDF - }, - { - 0xC5, 0x65, 0x46, 0xFB, 0x21, 0x78, 0x45, 0x6F, - 0x33, 0x61, 0x64, 0xC1, 0x8B, 0x90, 0xDE, 0xFF, - 0xC8, 0x3A, 0xE2, 0xB5, 0xA3, 0xAC, 0xA7, 0x7B, - 0x68, 0x84, 0xD3, 0x6D, 0x2C, 0x1D, 0xB3, 0x95, - 0x01, 0xB3, 0xE6, 0x5E, 0x36, 0xC7, 0x58, 0xC6, - 0x6E, 0x31, 0x88, 0x45, 0x1F, 0xDB, 0x35, 0x15, - 0xEE, 0x16, 0x2C, 0x00, 0x1F, 0x06, 0xC3, 0xE8, - 0xCB, 0x57, 0x3A, 0xDF, 0x30, 0xF7, 0xA1, 0x01 - }, - { - 0x6F, 0x82, 0xF8, 0x9F, 0x29, 0x9E, 0xBC, 0xA2, - 0xFE, 0x01, 0x4B, 0x59, 0xBF, 0xFE, 0x1A, 0xA8, - 0x4E, 0x88, 0xB1, 0x91, 0x5F, 0xE2, 0x56, 0xAF, - 0xB6, 0x46, 0xFD, 0x84, 0x48, 0xAF, 0x2B, 0x88, - 0x91, 0xA7, 0xFA, 0xB3, 0x7A, 0x4E, 0xA6, 0xF9, - 0xA5, 0x0E, 0x6C, 0x31, 0x70, 0x39, 0xD8, 0xCF, - 0x87, 0x8F, 0x4C, 0x8E, 0x1A, 0x0D, 0xD4, 0x64, - 0xF0, 0xB4, 0xD6, 0xFF, 0x1C, 0x7E, 0xA8, 0x53 - }, - { - 0x2B, 0x85, 0x99, 0xFF, 0x9C, 0x3D, 0x61, 0x98, - 0x63, 0x7A, 0xD5, 0x1E, 0x57, 0xD1, 0x99, 0x8B, - 0x0D, 0x75, 0x31, 0x3F, 0xE2, 0xDD, 0x61, 0xA5, - 0x33, 0xC9, 0x64, 0xA6, 0xDD, 0x96, 0x07, 0xC6, - 0xF7, 0x23, 0xE9, 0x45, 0x2C, 0xE4, 0x6E, 0x01, - 0x4B, 0x1C, 0x1D, 0x6D, 0xE7, 0x7B, 0xA5, 0xB8, - 0x8C, 0x91, 0x4D, 0x1C, 0x59, 0x7B, 0xF1, 0xEA, - 0xE1, 0x34, 0x74, 0xB4, 0x29, 0x0E, 0x89, 0xB2 - }, - { - 0x08, 0xBF, 0x34, 0x6D, 0x38, 0xE1, 0xDF, 0x06, - 0xC8, 0x26, 0x0E, 0xDB, 0x1D, 0xA7, 0x55, 0x79, - 0x27, 0x59, 0x48, 0xD5, 0xC0, 0xA0, 0xAA, 0x9E, - 0xD2, 0x88, 0x6F, 0x88, 0x56, 0xDE, 0x54, 0x17, - 0xA1, 0x56, 0x99, 0x87, 0x58, 0xF5, 0xB1, 0x7E, - 0x52, 0xF1, 0x01, 0xCA, 0x95, 0x7A, 0x71, 0x13, - 0x74, 0x73, 0xDF, 0xD1, 0x8D, 0x7D, 0x20, 0x9C, - 0x4C, 0x10, 0xD9, 0x23, 0x3C, 0x93, 0x69, 0x1D - }, - { - 0x6D, 0xF2, 0x15, 0x6D, 0x77, 0x31, 0x14, 0xD3, - 0x10, 0xB6, 0x3D, 0xB9, 0xEE, 0x53, 0x50, 0xD7, - 0x7E, 0x6B, 0xCF, 0x25, 0xB0, 0x5F, 0xCD, 0x91, - 0x0F, 0x9B, 0x31, 0xBC, 0x42, 0xBB, 0x13, 0xFE, - 0x82, 0x25, 0xEB, 0xCB, 0x2A, 0x23, 0xA6, 0x22, - 0x80, 0x77, 0x7B, 0x6B, 0xF7, 0x4E, 0x2C, 0xD0, - 0x91, 0x7C, 0x76, 0x40, 0xB4, 0x3D, 0xEF, 0xE4, - 0x68, 0xCD, 0x1E, 0x18, 0xC9, 0x43, 0xC6, 0x6A - }, - { - 0x7C, 0x70, 0x38, 0xBC, 0x13, 0xA9, 0x11, 0x51, - 0x82, 0x8A, 0x5B, 0xA8, 0x2B, 0x4A, 0x96, 0x04, - 0x0F, 0x25, 0x8A, 0x4D, 0xFB, 0x1B, 0x13, 0x73, - 0xF0, 0xD3, 0x59, 0x16, 0x8A, 0xFB, 0x05, 0x17, - 0xA2, 0x0B, 0x28, 0xA1, 0x2D, 0x36, 0x44, 0x04, - 0x6B, 0xE6, 0x6B, 0x8D, 0x08, 0xD8, 0xAE, 0x7F, - 0x6A, 0x92, 0x3E, 0xA1, 0xC0, 0x01, 0x87, 0xC6, - 0xD1, 0x1D, 0xC5, 0x02, 0xBA, 0xC7, 0x13, 0x05 - }, - { - 0xBC, 0xD1, 0xB3, 0x0D, 0x80, 0x8F, 0xB7, 0x39, - 0xB9, 0x87, 0xCB, 0xF1, 0x54, 0xBE, 0xA0, 0x0D, - 0xA9, 0xD4, 0x03, 0x80, 0xB8, 0x61, 0xD4, 0xC1, - 0xD6, 0x37, 0x71, 0x22, 0xDA, 0xDD, 0x61, 0xC0, - 0xE5, 0x90, 0x18, 0xB7, 0x19, 0x41, 0xCF, 0xB6, - 0x2E, 0x00, 0xDC, 0xD7, 0x0A, 0xEB, 0x9A, 0xBF, - 0x04, 0x73, 0xE8, 0x0F, 0x0A, 0x7E, 0xCA, 0x6B, - 0x6D, 0xEA, 0x24, 0x6A, 0xB2, 0x29, 0xDD, 0x2B - }, - { - 0x7E, 0xD4, 0x46, 0x8D, 0x96, 0x85, 0x30, 0xFE, - 0x7A, 0xB2, 0xC3, 0x35, 0x40, 0xB2, 0x6D, 0x8C, - 0x3B, 0xD3, 0xED, 0x44, 0xB3, 0x4F, 0xBE, 0x8C, - 0x2A, 0x9D, 0x7F, 0x80, 0x5B, 0x5A, 0xDA, 0x0E, - 0xA2, 0x52, 0xEE, 0xAD, 0xE4, 0xFC, 0xE9, 0x7F, - 0x89, 0x72, 0x8A, 0xD8, 0x5B, 0xC8, 0xBB, 0x24, - 0x30, 0xB1, 0xBE, 0xF2, 0xCD, 0xDD, 0x32, 0xC8, - 0x44, 0x6E, 0x59, 0xB8, 0xE8, 0xBA, 0x3C, 0x67 - }, - { - 0x6D, 0x30, 0xB7, 0xC6, 0xCE, 0x8A, 0x32, 0x36, - 0xC0, 0xCA, 0x2F, 0x8D, 0x72, 0x8B, 0x10, 0x88, - 0xCA, 0x06, 0x98, 0x3A, 0x80, 0x43, 0xE6, 0x21, - 0xD5, 0xDC, 0xF0, 0xC5, 0x37, 0xD1, 0x3B, 0x08, - 0x79, 0x1E, 0xDE, 0xB0, 0x1A, 0x3C, 0xF0, 0x94, - 0x3E, 0xC1, 0xC8, 0x90, 0xAB, 0x6E, 0x29, 0xB1, - 0x46, 0xA2, 0x36, 0xCD, 0x46, 0xBC, 0xB9, 0xD9, - 0x3B, 0xF5, 0x16, 0xFB, 0x67, 0xC6, 0x3F, 0xE5 - }, - { - 0x97, 0xFE, 0x03, 0xCE, 0xF3, 0x14, 0x38, 0x50, - 0x89, 0x11, 0xBD, 0xED, 0x97, 0x59, 0x80, 0xA6, - 0x60, 0x29, 0x30, 0x5D, 0xC5, 0xE3, 0xFA, 0x8A, - 0xD1, 0xB4, 0xFB, 0x22, 0xFC, 0xDF, 0x5A, 0x19, - 0xA7, 0x33, 0x32, 0x03, 0x27, 0xD8, 0xF7, 0x1C, - 0xCF, 0x49, 0x6C, 0xB3, 0xA4, 0x4A, 0x77, 0xAF, - 0x56, 0xE3, 0xDD, 0xE7, 0x3D, 0x3A, 0x5F, 0x17, - 0x68, 0x96, 0xCC, 0x57, 0xC9, 0xA5, 0xAD, 0x99 - }, - { - 0x78, 0x5A, 0x9D, 0x0F, 0xBD, 0x21, 0x13, 0x6D, - 0xBC, 0xE8, 0xFA, 0x7E, 0xAF, 0xD6, 0x3C, 0x9D, - 0xAD, 0x22, 0x00, 0x52, 0x97, 0x84, 0x16, 0xB3, - 0x1D, 0x97, 0x53, 0xEA, 0xA1, 0x49, 0x09, 0x78, - 0x47, 0xED, 0x9B, 0x30, 0xA6, 0x5C, 0x70, 0x50, - 0x7E, 0xFF, 0x01, 0x87, 0x91, 0x49, 0xED, 0x5C, - 0xF0, 0x47, 0x1D, 0x37, 0x79, 0x8E, 0xDC, 0x05, - 0xAB, 0xD5, 0x6A, 0xD4, 0xA2, 0xCC, 0xCB, 0x1D - }, - { - 0xAD, 0x40, 0x8D, 0x2A, 0xBD, 0xDF, 0xD3, 0x7B, - 0x3B, 0xF3, 0x47, 0x94, 0xC1, 0xA3, 0x37, 0x1D, - 0x92, 0x8E, 0xD7, 0xFC, 0x8D, 0x96, 0x62, 0x25, - 0x33, 0x35, 0x84, 0xC5, 0x66, 0x58, 0x17, 0x83, - 0x2A, 0x37, 0xC0, 0x7F, 0x0D, 0xC7, 0xCB, 0x5A, - 0xA8, 0x74, 0xCD, 0x7D, 0x20, 0xFE, 0x8F, 0xAB, - 0x8E, 0xAB, 0xCB, 0x9B, 0x33, 0xD2, 0xE0, 0x84, - 0x1F, 0x6E, 0x20, 0x09, 0x60, 0x89, 0x9D, 0x95 - }, - { - 0x97, 0x66, 0x8F, 0x74, 0x5B, 0x60, 0x32, 0xFC, - 0x81, 0x5D, 0x95, 0x79, 0x32, 0x27, 0x69, 0xDC, - 0xCD, 0x95, 0x01, 0xA5, 0x08, 0x00, 0x29, 0xB8, - 0xAE, 0x82, 0x6B, 0xEF, 0xB6, 0x74, 0x23, 0x31, - 0xBD, 0x9F, 0x76, 0xEF, 0xEB, 0x3E, 0x2B, 0x8E, - 0x81, 0xA9, 0x78, 0x6B, 0x28, 0x2F, 0x50, 0x68, - 0xA3, 0xA2, 0x42, 0x46, 0x97, 0xA7, 0x7C, 0x41, - 0x87, 0x6B, 0x7E, 0x75, 0x3F, 0x4C, 0x77, 0x67 - }, - { - 0x26, 0xBB, 0x98, 0x5F, 0x47, 0xE7, 0xFE, 0xE0, - 0xCF, 0xD2, 0x52, 0xD4, 0xEF, 0x96, 0xBE, 0xD4, - 0x2B, 0x9C, 0x37, 0x0C, 0x1C, 0x6A, 0x3E, 0x8C, - 0x9E, 0xB0, 0x4E, 0xF7, 0xF7, 0x81, 0x8B, 0x83, - 0x3A, 0x0D, 0x1F, 0x04, 0x3E, 0xBA, 0xFB, 0x91, - 0x1D, 0xC7, 0x79, 0xE0, 0x27, 0x40, 0xA0, 0x2A, - 0x44, 0xD3, 0xA1, 0xEA, 0x45, 0xED, 0x4A, 0xD5, - 0x5E, 0x68, 0x6C, 0x92, 0x7C, 0xAF, 0xE9, 0x7E - }, - { - 0x5B, 0xFE, 0x2B, 0x1D, 0xCF, 0x7F, 0xE9, 0xB9, - 0x50, 0x88, 0xAC, 0xED, 0xB5, 0x75, 0xC1, 0x90, - 0x16, 0xC7, 0x43, 0xB2, 0xE7, 0x63, 0xBF, 0x58, - 0x51, 0xAC, 0x40, 0x7C, 0x9E, 0xDA, 0x43, 0x71, - 0x5E, 0xDF, 0xA4, 0x8B, 0x48, 0x25, 0x49, 0x2C, - 0x51, 0x79, 0x59, 0x3F, 0xFF, 0x21, 0x35, 0x1B, - 0x76, 0xE8, 0xB7, 0xE0, 0x34, 0xE4, 0xC5, 0x3C, - 0x79, 0xF6, 0x1F, 0x29, 0xC4, 0x79, 0xBD, 0x08 - }, - { - 0xC7, 0x65, 0x09, 0xEF, 0x72, 0xF4, 0xA6, 0xF9, - 0xC9, 0xC4, 0x06, 0x18, 0xED, 0x52, 0xB2, 0x08, - 0x4F, 0x83, 0x50, 0x22, 0x32, 0xE0, 0xAC, 0x8B, - 0xDA, 0xF3, 0x26, 0x43, 0x68, 0xE4, 0xD0, 0x18, - 0x0F, 0x68, 0x54, 0xC4, 0xAB, 0xF4, 0xF6, 0x50, - 0x9C, 0x79, 0xCA, 0xAF, 0xC4, 0x4C, 0xF3, 0x19, - 0x4A, 0xFC, 0x57, 0xBD, 0x07, 0x7B, 0xD7, 0xB3, - 0xC9, 0xBD, 0xA3, 0xD4, 0xB8, 0x77, 0x58, 0x16 - }, - { - 0xD6, 0x6F, 0x2B, 0xEA, 0xB9, 0x90, 0xE3, 0x54, - 0xCC, 0xB9, 0x10, 0xE4, 0xE9, 0xC7, 0xAC, 0x61, - 0x8C, 0x7B, 0x63, 0xEF, 0x29, 0x2A, 0x96, 0xB5, - 0x52, 0x34, 0x1D, 0xE7, 0x8D, 0xC4, 0x6D, 0x3E, - 0xC8, 0xCF, 0xAB, 0xC6, 0x99, 0xB5, 0x0A, 0xF4, - 0x1F, 0xDA, 0x39, 0xCF, 0x1B, 0x01, 0x73, 0x66, - 0x09, 0x23, 0x51, 0x0A, 0xD6, 0x7F, 0xAE, 0xDE, - 0xF5, 0x20, 0x7C, 0xFF, 0xE8, 0x64, 0x1D, 0x20 - }, - { - 0x7D, 0x8F, 0x06, 0x72, 0x99, 0x2B, 0x79, 0xBE, - 0x3A, 0x36, 0x4D, 0x8E, 0x59, 0x04, 0xF4, 0xAB, - 0x71, 0x3B, 0xBC, 0x8A, 0xB0, 0x1B, 0x4F, 0x30, - 0x9A, 0xD8, 0xCC, 0xF2, 0x23, 0xCE, 0x10, 0x34, - 0xA8, 0x60, 0xDC, 0xB0, 0xB0, 0x05, 0x50, 0x61, - 0x2C, 0xC2, 0xFA, 0x17, 0xF2, 0x96, 0x9E, 0x18, - 0xF2, 0x2E, 0x14, 0x27, 0xD2, 0x54, 0xB4, 0xA8, - 0x2B, 0x3A, 0x03, 0xA3, 0xEB, 0x39, 0x4A, 0xDF - }, - { - 0xA5, 0x6D, 0x67, 0x25, 0xBF, 0xB3, 0xDE, 0x47, - 0xC1, 0x41, 0x4A, 0xDF, 0x25, 0xFC, 0x8F, 0x0F, - 0xC9, 0x84, 0x6F, 0x69, 0x87, 0x72, 0x2B, 0xC0, - 0x63, 0x66, 0xD5, 0xCA, 0x4E, 0x89, 0x72, 0x29, - 0x25, 0xEB, 0xBC, 0x88, 0x14, 0x18, 0x84, 0x40, - 0x75, 0x39, 0x7A, 0x0C, 0xA8, 0x98, 0x42, 0xC7, - 0xB9, 0xE9, 0xE0, 0x7E, 0x1D, 0x9D, 0x18, 0x3E, - 0xBE, 0xB3, 0x9E, 0x12, 0x0B, 0x48, 0x3B, 0xF7 - }, - { - 0xAF, 0x5E, 0x03, 0xD7, 0xFE, 0x60, 0xC6, 0x7E, - 0x10, 0x31, 0x33, 0x44, 0x43, 0x4E, 0x79, 0x48, - 0x5A, 0x03, 0xA7, 0x58, 0xD6, 0xDC, 0xE9, 0x85, - 0x57, 0x47, 0x45, 0x76, 0x3C, 0x1C, 0x5C, 0x77, - 0xD4, 0xFB, 0x3E, 0x6F, 0xB1, 0x22, 0x30, 0x36, - 0x83, 0x70, 0x99, 0x3B, 0xF9, 0x0F, 0xEE, 0xD0, - 0xC5, 0xD1, 0x60, 0x75, 0x24, 0x56, 0x2D, 0x7C, - 0x09, 0xC0, 0xC2, 0x10, 0xED, 0x39, 0x3D, 0x7C - }, - { - 0x7A, 0x20, 0x54, 0x0C, 0xC0, 0x7B, 0xF7, 0x2B, - 0x58, 0x24, 0x21, 0xFC, 0x34, 0x2E, 0x82, 0xF5, - 0x21, 0x34, 0xB6, 0x98, 0x41, 0xEC, 0x28, 0xED, - 0x18, 0x9E, 0x2E, 0xA6, 0xA2, 0x9D, 0xD2, 0xF8, - 0x2A, 0x64, 0x03, 0x52, 0xD2, 0x22, 0xB5, 0x2F, - 0x29, 0x11, 0xDC, 0x72, 0xA7, 0xDA, 0xB3, 0x1C, - 0xAA, 0xDD, 0x80, 0xC6, 0x11, 0x8F, 0x13, 0xC5, - 0x6B, 0x2A, 0x1E, 0x43, 0x73, 0xBE, 0x0E, 0xA3 - }, - { - 0x48, 0x6F, 0x02, 0xC6, 0x3E, 0x54, 0x67, 0xEA, - 0x1F, 0xDD, 0xE7, 0xE8, 0x2B, 0xFA, 0xCC, 0x2C, - 0x1B, 0xA5, 0xD6, 0x36, 0xD9, 0xF3, 0xD0, 0x8B, - 0x21, 0x0D, 0xA3, 0xF3, 0x72, 0xF7, 0x06, 0xEC, - 0x21, 0x8C, 0xC1, 0x7F, 0xF6, 0x0A, 0xEF, 0x70, - 0x3B, 0xBE, 0x0C, 0x15, 0xC3, 0x8A, 0xE5, 0x5D, - 0x28, 0x6A, 0x68, 0x4F, 0x86, 0x4C, 0x78, 0x21, - 0x1C, 0xCA, 0xB4, 0x17, 0x8C, 0x92, 0xAD, 0xBA - }, - { - 0x1C, 0x7A, 0x5C, 0x1D, 0xED, 0xCD, 0x04, 0xA9, - 0x21, 0x78, 0x8F, 0x7E, 0xB2, 0x33, 0x61, 0xCA, - 0x19, 0x53, 0xB0, 0x4B, 0x9C, 0x7A, 0xEC, 0x35, - 0xD6, 0x5E, 0xA3, 0xE4, 0x99, 0x6D, 0xB2, 0x6F, - 0x28, 0x12, 0x78, 0xEA, 0x4A, 0xE6, 0x66, 0xAD, - 0x81, 0x02, 0x7D, 0x98, 0xAF, 0x57, 0x26, 0x2C, - 0xDB, 0xFA, 0x4C, 0x08, 0x5F, 0x42, 0x10, 0x56, - 0x8C, 0x7E, 0x15, 0xEE, 0xC7, 0x80, 0x51, 0x14 - }, - { - 0x9C, 0xE3, 0xFA, 0x9A, 0x86, 0x0B, 0xDB, 0xD5, - 0x37, 0x8F, 0xD6, 0xD7, 0xB8, 0xB6, 0x71, 0xC6, - 0xCB, 0x76, 0x92, 0x91, 0x0C, 0xE8, 0xF9, 0xB6, - 0xCB, 0x41, 0x22, 0xCB, 0xCB, 0xE6, 0xAC, 0x06, - 0xCA, 0x04, 0x22, 0xCE, 0xF1, 0x22, 0x59, 0x35, - 0x05, 0x3B, 0x7D, 0x19, 0x3A, 0x81, 0xB9, 0xE9, - 0x72, 0xEB, 0x85, 0xA1, 0xD3, 0x07, 0x4F, 0x14, - 0xCB, 0xB5, 0xEC, 0x9F, 0x05, 0x73, 0x89, 0x2D - }, - { - 0xA9, 0x11, 0x87, 0xBE, 0x5C, 0x37, 0x1C, 0x42, - 0x65, 0xC1, 0x74, 0xFD, 0x46, 0x53, 0xB8, 0xAB, - 0x70, 0x85, 0x51, 0xF8, 0x3D, 0x1F, 0xEE, 0x1C, - 0xC1, 0x47, 0x95, 0x81, 0xBC, 0x00, 0x6D, 0x6F, - 0xB7, 0x8F, 0xCC, 0x9A, 0x5D, 0xEE, 0x1D, 0xB3, - 0x66, 0x6F, 0x50, 0x8F, 0x97, 0x80, 0xA3, 0x75, - 0x93, 0xEB, 0xCC, 0xCF, 0x5F, 0xBE, 0xD3, 0x96, - 0x67, 0xDC, 0x63, 0x61, 0xE9, 0x21, 0xF7, 0x79 - }, - { - 0x46, 0x25, 0x76, 0x7D, 0x7B, 0x1D, 0x3D, 0x3E, - 0xD2, 0xFB, 0xC6, 0x74, 0xAF, 0x14, 0xE0, 0x24, - 0x41, 0x52, 0xF2, 0xA4, 0x02, 0x1F, 0xCF, 0x33, - 0x11, 0x50, 0x5D, 0x89, 0xBD, 0x81, 0xE2, 0xF9, - 0xF9, 0xA5, 0x00, 0xC3, 0xB1, 0x99, 0x91, 0x4D, - 0xB4, 0x95, 0x00, 0xB3, 0xC9, 0x8D, 0x03, 0xEA, - 0x93, 0x28, 0x67, 0x51, 0xA6, 0x86, 0xA3, 0xB8, - 0x75, 0xDA, 0xAB, 0x0C, 0xCD, 0x63, 0xB4, 0x4F - }, - { - 0x43, 0xDF, 0xDF, 0xE1, 0xB0, 0x14, 0xFE, 0xD3, - 0xA2, 0xAC, 0xAB, 0xB7, 0xF3, 0xE9, 0xA1, 0x82, - 0xF2, 0xAA, 0x18, 0x01, 0x9D, 0x27, 0xE3, 0xE6, - 0xCD, 0xCF, 0x31, 0xA1, 0x5B, 0x42, 0x8E, 0x91, - 0xE7, 0xB0, 0x8C, 0xF5, 0xE5, 0xC3, 0x76, 0xFC, - 0xE2, 0xD8, 0xA2, 0x8F, 0xF8, 0x5A, 0xB0, 0xA0, - 0xA1, 0x65, 0x6E, 0xDB, 0x4A, 0x0A, 0x91, 0x53, - 0x26, 0x20, 0x09, 0x6D, 0x9A, 0x5A, 0x65, 0x2D - }, - { - 0x27, 0x9E, 0x32, 0x02, 0xBE, 0x39, 0x89, 0xBA, - 0x31, 0x12, 0x77, 0x25, 0x85, 0x17, 0x74, 0x87, - 0xE4, 0xFE, 0x3E, 0xE3, 0xEA, 0xB4, 0x9C, 0x2F, - 0x7F, 0xA7, 0xFE, 0x87, 0xCF, 0xE7, 0xB8, 0x0D, - 0x3E, 0x03, 0x55, 0xED, 0xFF, 0x6D, 0x03, 0x1E, - 0x6C, 0x96, 0xC7, 0x95, 0xDB, 0x1C, 0x6F, 0x04, - 0x18, 0x80, 0xEC, 0x38, 0x24, 0xDE, 0xFA, 0xCF, - 0x92, 0x63, 0x82, 0x0A, 0x8E, 0x73, 0x27, 0xDE - }, - { - 0xEA, 0x2D, 0x06, 0x6A, 0xC2, 0x29, 0xD4, 0xD4, - 0xB6, 0x16, 0xA8, 0xBE, 0xDE, 0xC7, 0x34, 0x32, - 0x52, 0x24, 0xE4, 0xB4, 0xE5, 0x8F, 0x1A, 0xE6, - 0xDA, 0xD7, 0xE4, 0x0C, 0x2D, 0xA2, 0x91, 0x96, - 0xC3, 0xB1, 0xEA, 0x95, 0x71, 0xDA, 0xCC, 0x81, - 0xE8, 0x73, 0x28, 0xCA, 0xA0, 0x21, 0x1E, 0x09, - 0x02, 0x7B, 0x05, 0x24, 0xAA, 0x3F, 0x4A, 0x84, - 0x99, 0x17, 0xB3, 0x58, 0x67, 0x47, 0xEB, 0xBB - }, - { - 0x49, 0xF0, 0x14, 0xF5, 0xC6, 0x18, 0x22, 0xC8, - 0x99, 0xAB, 0x5C, 0xAE, 0x51, 0xBE, 0x40, 0x44, - 0xA4, 0x49, 0x5E, 0x77, 0x7D, 0xEB, 0x7D, 0xA9, - 0xB6, 0xD8, 0x49, 0x0E, 0xFB, 0xB8, 0x75, 0x30, - 0xAD, 0xF2, 0x93, 0xDA, 0xF0, 0x79, 0xF9, 0x4C, - 0x33, 0xB7, 0x04, 0x4E, 0xF6, 0x2E, 0x2E, 0x5B, - 0xB3, 0xEB, 0x11, 0xE1, 0x73, 0x04, 0xF8, 0x45, - 0x3E, 0xE6, 0xCE, 0x24, 0xF0, 0x33, 0xDD, 0xB0 - }, - { - 0x92, 0x33, 0x49, 0x03, 0x44, 0xE5, 0xB0, 0xDC, - 0x59, 0x12, 0x67, 0x1B, 0x7A, 0xE5, 0x4C, 0xEE, - 0x77, 0x30, 0xDB, 0xE1, 0xF4, 0xC7, 0xD9, 0x2A, - 0x4D, 0x3E, 0x3A, 0xAB, 0x50, 0x57, 0x17, 0x08, - 0xDB, 0x51, 0xDC, 0xF9, 0xC2, 0x94, 0x45, 0x91, - 0xDB, 0x65, 0x1D, 0xB3, 0x2D, 0x22, 0x93, 0x5B, - 0x86, 0x94, 0x49, 0x69, 0xBE, 0x77, 0xD5, 0xB5, - 0xFE, 0xAE, 0x6C, 0x38, 0x40, 0xA8, 0xDB, 0x26 - }, - { - 0xB6, 0xE7, 0x5E, 0x6F, 0x4C, 0x7F, 0x45, 0x3B, - 0x74, 0x65, 0xD2, 0x5B, 0x5A, 0xC8, 0xC7, 0x19, - 0x69, 0x02, 0xEA, 0xA9, 0x53, 0x87, 0x52, 0x28, - 0xC8, 0x63, 0x4E, 0x16, 0xE2, 0xAE, 0x1F, 0x38, - 0xBC, 0x32, 0x75, 0x30, 0x43, 0x35, 0xF5, 0x98, - 0x9E, 0xCC, 0xC1, 0xE3, 0x41, 0x67, 0xD4, 0xE6, - 0x8D, 0x77, 0x19, 0x96, 0x8F, 0xBA, 0x8E, 0x2F, - 0xE6, 0x79, 0x47, 0xC3, 0x5C, 0x48, 0xE8, 0x06 - }, - { - 0xCC, 0x14, 0xCA, 0x66, 0x5A, 0xF1, 0x48, 0x3E, - 0xFB, 0xC3, 0xAF, 0x80, 0x08, 0x0E, 0x65, 0x0D, - 0x50, 0x46, 0xA3, 0x93, 0x2F, 0x4F, 0x51, 0xF3, - 0xFE, 0x90, 0xA0, 0x70, 0x5E, 0xC2, 0x51, 0x04, - 0xAD, 0xF0, 0x78, 0x39, 0x26, 0x5D, 0xC5, 0x1D, - 0x43, 0x40, 0x14, 0x11, 0x24, 0x6E, 0x47, 0x4F, - 0x0D, 0x5E, 0x56, 0x37, 0xAF, 0x94, 0x76, 0x72, - 0x83, 0xD5, 0x3E, 0x06, 0x17, 0xE9, 0x81, 0xF4 - }, - { - 0x23, 0x0A, 0x1C, 0x85, 0x7C, 0xB2, 0xE7, 0x85, - 0x2E, 0x41, 0xB6, 0x47, 0xE9, 0x0E, 0x45, 0x85, - 0xD2, 0xD8, 0x81, 0xE1, 0x73, 0x4D, 0xC3, 0x89, - 0x55, 0x35, 0x6E, 0x8D, 0xD7, 0xBF, 0xF3, 0x90, - 0x53, 0x09, 0x2C, 0x6B, 0x38, 0xE2, 0x36, 0xE1, - 0x89, 0x95, 0x25, 0x64, 0x70, 0x73, 0xDD, 0xDF, - 0x68, 0x95, 0xD6, 0x42, 0x06, 0x32, 0x5E, 0x76, - 0x47, 0xF2, 0x75, 0x56, 0x7B, 0x25, 0x59, 0x09 - }, - { - 0xCB, 0xB6, 0x53, 0x21, 0xAC, 0x43, 0x6E, 0x2F, - 0xFD, 0xAB, 0x29, 0x36, 0x35, 0x9C, 0xE4, 0x90, - 0x23, 0xF7, 0xDE, 0xE7, 0x61, 0x4E, 0xF2, 0x8D, - 0x17, 0x3C, 0x3D, 0x27, 0xC5, 0xD1, 0xBF, 0xFA, - 0x51, 0x55, 0x3D, 0x43, 0x3F, 0x8E, 0xE3, 0xC9, - 0xE4, 0x9C, 0x05, 0xA2, 0xB8, 0x83, 0xCC, 0xE9, - 0x54, 0xC9, 0xA8, 0x09, 0x3B, 0x80, 0x61, 0x2A, - 0x0C, 0xDD, 0x47, 0x32, 0xE0, 0x41, 0xF9, 0x95 - }, - { - 0x3E, 0x7E, 0x57, 0x00, 0x74, 0x33, 0x72, 0x75, - 0xEF, 0xB5, 0x13, 0x15, 0x58, 0x80, 0x34, 0xC3, - 0xCF, 0x0D, 0xDD, 0xCA, 0x20, 0xB4, 0x61, 0x2E, - 0x0B, 0xD5, 0xB8, 0x81, 0xE7, 0xE5, 0x47, 0x6D, - 0x31, 0x9C, 0xE4, 0xFE, 0x9F, 0x19, 0x18, 0x6E, - 0x4C, 0x08, 0x26, 0xF4, 0x4F, 0x13, 0x1E, 0xB0, - 0x48, 0xE6, 0x5B, 0xE2, 0x42, 0xB1, 0x17, 0x2C, - 0x63, 0xBA, 0xDB, 0x12, 0x3A, 0xB0, 0xCB, 0xE8 - }, - { - 0xD3, 0x2E, 0x9E, 0xC0, 0x2D, 0x38, 0xD4, 0xE1, - 0xB8, 0x24, 0x9D, 0xF8, 0xDC, 0xB0, 0x0C, 0x5B, - 0x9C, 0x68, 0xEB, 0x89, 0x22, 0x67, 0x2E, 0x35, - 0x05, 0x39, 0x3B, 0x6A, 0x21, 0x0B, 0xA5, 0x6F, - 0x94, 0x96, 0xE5, 0xEE, 0x04, 0x90, 0xEF, 0x38, - 0x7C, 0x3C, 0xDE, 0xC0, 0x61, 0xF0, 0x6B, 0xC0, - 0x38, 0x2D, 0x93, 0x04, 0xCA, 0xFB, 0xB8, 0xE0, - 0xCD, 0x33, 0xD5, 0x70, 0x29, 0xE6, 0x2D, 0xF2 - }, - { - 0x8C, 0x15, 0x12, 0x46, 0x60, 0x89, 0xF0, 0x5B, - 0x37, 0x75, 0xC2, 0x62, 0xB6, 0x2D, 0x22, 0xB8, - 0x38, 0x54, 0xA8, 0x32, 0x18, 0x13, 0x0B, 0x4E, - 0xC9, 0x1B, 0x3C, 0xCB, 0xD2, 0x93, 0xD2, 0xA5, - 0x43, 0x02, 0xCE, 0xCA, 0xAB, 0x9B, 0x10, 0x0C, - 0x68, 0xD1, 0xE6, 0xDD, 0xC8, 0xF0, 0x7C, 0xDD, - 0xBD, 0xFE, 0x6F, 0xDA, 0xAA, 0xF0, 0x99, 0xCC, - 0x09, 0xD6, 0xB7, 0x25, 0x87, 0x9C, 0x63, 0x69 - }, - { - 0x91, 0xA7, 0xF6, 0x1C, 0x97, 0xC2, 0x91, 0x1E, - 0x4C, 0x81, 0x2E, 0xF7, 0x1D, 0x78, 0x0A, 0xD8, - 0xFA, 0x78, 0x87, 0x94, 0x56, 0x1D, 0x08, 0x30, - 0x3F, 0xD1, 0xC1, 0xCB, 0x60, 0x8A, 0x46, 0xA1, - 0x25, 0x63, 0x08, 0x6E, 0xC5, 0xB3, 0x9D, 0x47, - 0x1A, 0xED, 0x94, 0xFB, 0x0F, 0x6C, 0x67, 0x8A, - 0x43, 0xB8, 0x79, 0x29, 0x32, 0xF9, 0x02, 0x8D, - 0x77, 0x2A, 0x22, 0x76, 0x8E, 0xA2, 0x3A, 0x9B - }, - { - 0x4F, 0x6B, 0xB2, 0x22, 0xA3, 0x95, 0xE8, 0xB1, - 0x8F, 0x6B, 0xA1, 0x55, 0x47, 0x7A, 0xED, 0x3F, - 0x07, 0x29, 0xAC, 0x9E, 0x83, 0xE1, 0x6D, 0x31, - 0xA2, 0xA8, 0xBC, 0x65, 0x54, 0x22, 0xB8, 0x37, - 0xC8, 0x91, 0xC6, 0x19, 0x9E, 0x6F, 0x0D, 0x75, - 0x79, 0x9E, 0x3B, 0x69, 0x15, 0x25, 0xC5, 0x81, - 0x95, 0x35, 0x17, 0xF2, 0x52, 0xC4, 0xB9, 0xE3, - 0xA2, 0x7A, 0x28, 0xFB, 0xAF, 0x49, 0x64, 0x4C - }, - { - 0x5D, 0x06, 0xC0, 0x7E, 0x7A, 0x64, 0x6C, 0x41, - 0x3A, 0x50, 0x1C, 0x3F, 0x4B, 0xB2, 0xFC, 0x38, - 0x12, 0x7D, 0xE7, 0x50, 0x9B, 0x70, 0x77, 0xC4, - 0xD9, 0xB5, 0x61, 0x32, 0x01, 0xC1, 0xAA, 0x02, - 0xFD, 0x5F, 0x79, 0xD2, 0x74, 0x59, 0x15, 0xDD, - 0x57, 0xFB, 0xCB, 0x4C, 0xE0, 0x86, 0x95, 0xF6, - 0xEF, 0xC0, 0xCB, 0x3D, 0x2D, 0x33, 0x0E, 0x19, - 0xB4, 0xB0, 0xE6, 0x00, 0x4E, 0xA6, 0x47, 0x1E - }, - { - 0xB9, 0x67, 0x56, 0xE5, 0x79, 0x09, 0x96, 0x8F, - 0x14, 0xB7, 0x96, 0xA5, 0xD3, 0x0F, 0x4C, 0x9D, - 0x67, 0x14, 0x72, 0xCF, 0x82, 0xC8, 0xCF, 0xB2, - 0xCA, 0xCA, 0x7A, 0xC7, 0xA4, 0x4C, 0xA0, 0xA1, - 0x4C, 0x98, 0x42, 0xD0, 0x0C, 0x82, 0xE3, 0x37, - 0x50, 0x2C, 0x94, 0xD5, 0x96, 0x0A, 0xCA, 0x4C, - 0x49, 0x2E, 0xA7, 0xB0, 0xDF, 0x91, 0x9D, 0xDF, - 0x1A, 0xAD, 0xA2, 0xA2, 0x75, 0xBB, 0x10, 0xD4 - }, - { - 0xFF, 0x0A, 0x01, 0x5E, 0x98, 0xDB, 0x9C, 0x99, - 0xF0, 0x39, 0x77, 0x71, 0x0A, 0xAC, 0x3E, 0x65, - 0x8C, 0x0D, 0x89, 0x6F, 0x6D, 0x71, 0xD6, 0x18, - 0xBA, 0x79, 0xDC, 0x6C, 0xF7, 0x2A, 0xC7, 0x5B, - 0x7C, 0x03, 0x8E, 0xB6, 0x86, 0x2D, 0xED, 0xE4, - 0x54, 0x3E, 0x14, 0x54, 0x13, 0xA6, 0x36, 0x8D, - 0x69, 0xF5, 0x72, 0x2C, 0x82, 0x7B, 0xA3, 0xEF, - 0x25, 0xB6, 0xAE, 0x64, 0x40, 0xD3, 0x92, 0x76 - }, - { - 0x5B, 0x21, 0xC5, 0xFD, 0x88, 0x68, 0x36, 0x76, - 0x12, 0x47, 0x4F, 0xA2, 0xE7, 0x0E, 0x9C, 0xFA, - 0x22, 0x01, 0xFF, 0xEE, 0xE8, 0xFA, 0xFA, 0xB5, - 0x79, 0x7A, 0xD5, 0x8F, 0xEF, 0xA1, 0x7C, 0x9B, - 0x5B, 0x10, 0x7D, 0xA4, 0xA3, 0xDB, 0x63, 0x20, - 0xBA, 0xAF, 0x2C, 0x86, 0x17, 0xD5, 0xA5, 0x1D, - 0xF9, 0x14, 0xAE, 0x88, 0xDA, 0x38, 0x67, 0xC2, - 0xD4, 0x1F, 0x0C, 0xC1, 0x4F, 0xA6, 0x79, 0x28 - }, -}; - - - - -static const uint8_t blake2b_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] = -{ - { - 0x10, 0xEB, 0xB6, 0x77, 0x00, 0xB1, 0x86, 0x8E, - 0xFB, 0x44, 0x17, 0x98, 0x7A, 0xCF, 0x46, 0x90, - 0xAE, 0x9D, 0x97, 0x2F, 0xB7, 0xA5, 0x90, 0xC2, - 0xF0, 0x28, 0x71, 0x79, 0x9A, 0xAA, 0x47, 0x86, - 0xB5, 0xE9, 0x96, 0xE8, 0xF0, 0xF4, 0xEB, 0x98, - 0x1F, 0xC2, 0x14, 0xB0, 0x05, 0xF4, 0x2D, 0x2F, - 0xF4, 0x23, 0x34, 0x99, 0x39, 0x16, 0x53, 0xDF, - 0x7A, 0xEF, 0xCB, 0xC1, 0x3F, 0xC5, 0x15, 0x68 - }, - { - 0x96, 0x1F, 0x6D, 0xD1, 0xE4, 0xDD, 0x30, 0xF6, - 0x39, 0x01, 0x69, 0x0C, 0x51, 0x2E, 0x78, 0xE4, - 0xB4, 0x5E, 0x47, 0x42, 0xED, 0x19, 0x7C, 0x3C, - 0x5E, 0x45, 0xC5, 0x49, 0xFD, 0x25, 0xF2, 0xE4, - 0x18, 0x7B, 0x0B, 0xC9, 0xFE, 0x30, 0x49, 0x2B, - 0x16, 0xB0, 0xD0, 0xBC, 0x4E, 0xF9, 0xB0, 0xF3, - 0x4C, 0x70, 0x03, 0xFA, 0xC0, 0x9A, 0x5E, 0xF1, - 0x53, 0x2E, 0x69, 0x43, 0x02, 0x34, 0xCE, 0xBD - }, - { - 0xDA, 0x2C, 0xFB, 0xE2, 0xD8, 0x40, 0x9A, 0x0F, - 0x38, 0x02, 0x61, 0x13, 0x88, 0x4F, 0x84, 0xB5, - 0x01, 0x56, 0x37, 0x1A, 0xE3, 0x04, 0xC4, 0x43, - 0x01, 0x73, 0xD0, 0x8A, 0x99, 0xD9, 0xFB, 0x1B, - 0x98, 0x31, 0x64, 0xA3, 0x77, 0x07, 0x06, 0xD5, - 0x37, 0xF4, 0x9E, 0x0C, 0x91, 0x6D, 0x9F, 0x32, - 0xB9, 0x5C, 0xC3, 0x7A, 0x95, 0xB9, 0x9D, 0x85, - 0x74, 0x36, 0xF0, 0x23, 0x2C, 0x88, 0xA9, 0x65 - }, - { - 0x33, 0xD0, 0x82, 0x5D, 0xDD, 0xF7, 0xAD, 0xA9, - 0x9B, 0x0E, 0x7E, 0x30, 0x71, 0x04, 0xAD, 0x07, - 0xCA, 0x9C, 0xFD, 0x96, 0x92, 0x21, 0x4F, 0x15, - 0x61, 0x35, 0x63, 0x15, 0xE7, 0x84, 0xF3, 0xE5, - 0xA1, 0x7E, 0x36, 0x4A, 0xE9, 0xDB, 0xB1, 0x4C, - 0xB2, 0x03, 0x6D, 0xF9, 0x32, 0xB7, 0x7F, 0x4B, - 0x29, 0x27, 0x61, 0x36, 0x5F, 0xB3, 0x28, 0xDE, - 0x7A, 0xFD, 0xC6, 0xD8, 0x99, 0x8F, 0x5F, 0xC1 - }, - { - 0xBE, 0xAA, 0x5A, 0x3D, 0x08, 0xF3, 0x80, 0x71, - 0x43, 0xCF, 0x62, 0x1D, 0x95, 0xCD, 0x69, 0x05, - 0x14, 0xD0, 0xB4, 0x9E, 0xFF, 0xF9, 0xC9, 0x1D, - 0x24, 0xB5, 0x92, 0x41, 0xEC, 0x0E, 0xEF, 0xA5, - 0xF6, 0x01, 0x96, 0xD4, 0x07, 0x04, 0x8B, 0xBA, - 0x8D, 0x21, 0x46, 0x82, 0x8E, 0xBC, 0xB0, 0x48, - 0x8D, 0x88, 0x42, 0xFD, 0x56, 0xBB, 0x4F, 0x6D, - 0xF8, 0xE1, 0x9C, 0x4B, 0x4D, 0xAA, 0xB8, 0xAC - }, - { - 0x09, 0x80, 0x84, 0xB5, 0x1F, 0xD1, 0x3D, 0xEA, - 0xE5, 0xF4, 0x32, 0x0D, 0xE9, 0x4A, 0x68, 0x8E, - 0xE0, 0x7B, 0xAE, 0xA2, 0x80, 0x04, 0x86, 0x68, - 0x9A, 0x86, 0x36, 0x11, 0x7B, 0x46, 0xC1, 0xF4, - 0xC1, 0xF6, 0xAF, 0x7F, 0x74, 0xAE, 0x7C, 0x85, - 0x76, 0x00, 0x45, 0x6A, 0x58, 0xA3, 0xAF, 0x25, - 0x1D, 0xC4, 0x72, 0x3A, 0x64, 0xCC, 0x7C, 0x0A, - 0x5A, 0xB6, 0xD9, 0xCA, 0xC9, 0x1C, 0x20, 0xBB - }, - { - 0x60, 0x44, 0x54, 0x0D, 0x56, 0x08, 0x53, 0xEB, - 0x1C, 0x57, 0xDF, 0x00, 0x77, 0xDD, 0x38, 0x10, - 0x94, 0x78, 0x1C, 0xDB, 0x90, 0x73, 0xE5, 0xB1, - 0xB3, 0xD3, 0xF6, 0xC7, 0x82, 0x9E, 0x12, 0x06, - 0x6B, 0xBA, 0xCA, 0x96, 0xD9, 0x89, 0xA6, 0x90, - 0xDE, 0x72, 0xCA, 0x31, 0x33, 0xA8, 0x36, 0x52, - 0xBA, 0x28, 0x4A, 0x6D, 0x62, 0x94, 0x2B, 0x27, - 0x1F, 0xFA, 0x26, 0x20, 0xC9, 0xE7, 0x5B, 0x1F - }, - { - 0x7A, 0x8C, 0xFE, 0x9B, 0x90, 0xF7, 0x5F, 0x7E, - 0xCB, 0x3A, 0xCC, 0x05, 0x3A, 0xAE, 0xD6, 0x19, - 0x31, 0x12, 0xB6, 0xF6, 0xA4, 0xAE, 0xEB, 0x3F, - 0x65, 0xD3, 0xDE, 0x54, 0x19, 0x42, 0xDE, 0xB9, - 0xE2, 0x22, 0x81, 0x52, 0xA3, 0xC4, 0xBB, 0xBE, - 0x72, 0xFC, 0x3B, 0x12, 0x62, 0x95, 0x28, 0xCF, - 0xBB, 0x09, 0xFE, 0x63, 0x0F, 0x04, 0x74, 0x33, - 0x9F, 0x54, 0xAB, 0xF4, 0x53, 0xE2, 0xED, 0x52 - }, - { - 0x38, 0x0B, 0xEA, 0xF6, 0xEA, 0x7C, 0xC9, 0x36, - 0x5E, 0x27, 0x0E, 0xF0, 0xE6, 0xF3, 0xA6, 0x4F, - 0xB9, 0x02, 0xAC, 0xAE, 0x51, 0xDD, 0x55, 0x12, - 0xF8, 0x42, 0x59, 0xAD, 0x2C, 0x91, 0xF4, 0xBC, - 0x41, 0x08, 0xDB, 0x73, 0x19, 0x2A, 0x5B, 0xBF, - 0xB0, 0xCB, 0xCF, 0x71, 0xE4, 0x6C, 0x3E, 0x21, - 0xAE, 0xE1, 0xC5, 0xE8, 0x60, 0xDC, 0x96, 0xE8, - 0xEB, 0x0B, 0x7B, 0x84, 0x26, 0xE6, 0xAB, 0xE9 - }, - { - 0x60, 0xFE, 0x3C, 0x45, 0x35, 0xE1, 0xB5, 0x9D, - 0x9A, 0x61, 0xEA, 0x85, 0x00, 0xBF, 0xAC, 0x41, - 0xA6, 0x9D, 0xFF, 0xB1, 0xCE, 0xAD, 0xD9, 0xAC, - 0xA3, 0x23, 0xE9, 0xA6, 0x25, 0xB6, 0x4D, 0xA5, - 0x76, 0x3B, 0xAD, 0x72, 0x26, 0xDA, 0x02, 0xB9, - 0xC8, 0xC4, 0xF1, 0xA5, 0xDE, 0x14, 0x0A, 0xC5, - 0xA6, 0xC1, 0x12, 0x4E, 0x4F, 0x71, 0x8C, 0xE0, - 0xB2, 0x8E, 0xA4, 0x73, 0x93, 0xAA, 0x66, 0x37 - }, - { - 0x4F, 0xE1, 0x81, 0xF5, 0x4A, 0xD6, 0x3A, 0x29, - 0x83, 0xFE, 0xAA, 0xF7, 0x7D, 0x1E, 0x72, 0x35, - 0xC2, 0xBE, 0xB1, 0x7F, 0xA3, 0x28, 0xB6, 0xD9, - 0x50, 0x5B, 0xDA, 0x32, 0x7D, 0xF1, 0x9F, 0xC3, - 0x7F, 0x02, 0xC4, 0xB6, 0xF0, 0x36, 0x8C, 0xE2, - 0x31, 0x47, 0x31, 0x3A, 0x8E, 0x57, 0x38, 0xB5, - 0xFA, 0x2A, 0x95, 0xB2, 0x9D, 0xE1, 0xC7, 0xF8, - 0x26, 0x4E, 0xB7, 0x7B, 0x69, 0xF5, 0x85, 0xCD - }, - { - 0xF2, 0x28, 0x77, 0x3C, 0xE3, 0xF3, 0xA4, 0x2B, - 0x5F, 0x14, 0x4D, 0x63, 0x23, 0x7A, 0x72, 0xD9, - 0x96, 0x93, 0xAD, 0xB8, 0x83, 0x7D, 0x0E, 0x11, - 0x2A, 0x8A, 0x0F, 0x8F, 0xFF, 0xF2, 0xC3, 0x62, - 0x85, 0x7A, 0xC4, 0x9C, 0x11, 0xEC, 0x74, 0x0D, - 0x15, 0x00, 0x74, 0x9D, 0xAC, 0x9B, 0x1F, 0x45, - 0x48, 0x10, 0x8B, 0xF3, 0x15, 0x57, 0x94, 0xDC, - 0xC9, 0xE4, 0x08, 0x28, 0x49, 0xE2, 0xB8, 0x5B - }, - { - 0x96, 0x24, 0x52, 0xA8, 0x45, 0x5C, 0xC5, 0x6C, - 0x85, 0x11, 0x31, 0x7E, 0x3B, 0x1F, 0x3B, 0x2C, - 0x37, 0xDF, 0x75, 0xF5, 0x88, 0xE9, 0x43, 0x25, - 0xFD, 0xD7, 0x70, 0x70, 0x35, 0x9C, 0xF6, 0x3A, - 0x9A, 0xE6, 0xE9, 0x30, 0x93, 0x6F, 0xDF, 0x8E, - 0x1E, 0x08, 0xFF, 0xCA, 0x44, 0x0C, 0xFB, 0x72, - 0xC2, 0x8F, 0x06, 0xD8, 0x9A, 0x21, 0x51, 0xD1, - 0xC4, 0x6C, 0xD5, 0xB2, 0x68, 0xEF, 0x85, 0x63 - }, - { - 0x43, 0xD4, 0x4B, 0xFA, 0x18, 0x76, 0x8C, 0x59, - 0x89, 0x6B, 0xF7, 0xED, 0x17, 0x65, 0xCB, 0x2D, - 0x14, 0xAF, 0x8C, 0x26, 0x02, 0x66, 0x03, 0x90, - 0x99, 0xB2, 0x5A, 0x60, 0x3E, 0x4D, 0xDC, 0x50, - 0x39, 0xD6, 0xEF, 0x3A, 0x91, 0x84, 0x7D, 0x10, - 0x88, 0xD4, 0x01, 0xC0, 0xC7, 0xE8, 0x47, 0x78, - 0x1A, 0x8A, 0x59, 0x0D, 0x33, 0xA3, 0xC6, 0xCB, - 0x4D, 0xF0, 0xFA, 0xB1, 0xC2, 0xF2, 0x23, 0x55 - }, - { - 0xDC, 0xFF, 0xA9, 0xD5, 0x8C, 0x2A, 0x4C, 0xA2, - 0xCD, 0xBB, 0x0C, 0x7A, 0xA4, 0xC4, 0xC1, 0xD4, - 0x51, 0x65, 0x19, 0x00, 0x89, 0xF4, 0xE9, 0x83, - 0xBB, 0x1C, 0x2C, 0xAB, 0x4A, 0xAE, 0xFF, 0x1F, - 0xA2, 0xB5, 0xEE, 0x51, 0x6F, 0xEC, 0xD7, 0x80, - 0x54, 0x02, 0x40, 0xBF, 0x37, 0xE5, 0x6C, 0x8B, - 0xCC, 0xA7, 0xFA, 0xB9, 0x80, 0xE1, 0xE6, 0x1C, - 0x94, 0x00, 0xD8, 0xA9, 0xA5, 0xB1, 0x4A, 0xC6 - }, - { - 0x6F, 0xBF, 0x31, 0xB4, 0x5A, 0xB0, 0xC0, 0xB8, - 0xDA, 0xD1, 0xC0, 0xF5, 0xF4, 0x06, 0x13, 0x79, - 0x91, 0x2D, 0xDE, 0x5A, 0xA9, 0x22, 0x09, 0x9A, - 0x03, 0x0B, 0x72, 0x5C, 0x73, 0x34, 0x6C, 0x52, - 0x42, 0x91, 0xAD, 0xEF, 0x89, 0xD2, 0xF6, 0xFD, - 0x8D, 0xFC, 0xDA, 0x6D, 0x07, 0xDA, 0xD8, 0x11, - 0xA9, 0x31, 0x45, 0x36, 0xC2, 0x91, 0x5E, 0xD4, - 0x5D, 0xA3, 0x49, 0x47, 0xE8, 0x3D, 0xE3, 0x4E - }, - { - 0xA0, 0xC6, 0x5B, 0xDD, 0xDE, 0x8A, 0xDE, 0xF5, - 0x72, 0x82, 0xB0, 0x4B, 0x11, 0xE7, 0xBC, 0x8A, - 0xAB, 0x10, 0x5B, 0x99, 0x23, 0x1B, 0x75, 0x0C, - 0x02, 0x1F, 0x4A, 0x73, 0x5C, 0xB1, 0xBC, 0xFA, - 0xB8, 0x75, 0x53, 0xBB, 0xA3, 0xAB, 0xB0, 0xC3, - 0xE6, 0x4A, 0x0B, 0x69, 0x55, 0x28, 0x51, 0x85, - 0xA0, 0xBD, 0x35, 0xFB, 0x8C, 0xFD, 0xE5, 0x57, - 0x32, 0x9B, 0xEB, 0xB1, 0xF6, 0x29, 0xEE, 0x93 - }, - { - 0xF9, 0x9D, 0x81, 0x55, 0x50, 0x55, 0x8E, 0x81, - 0xEC, 0xA2, 0xF9, 0x67, 0x18, 0xAE, 0xD1, 0x0D, - 0x86, 0xF3, 0xF1, 0xCF, 0xB6, 0x75, 0xCC, 0xE0, - 0x6B, 0x0E, 0xFF, 0x02, 0xF6, 0x17, 0xC5, 0xA4, - 0x2C, 0x5A, 0xA7, 0x60, 0x27, 0x0F, 0x26, 0x79, - 0xDA, 0x26, 0x77, 0xC5, 0xAE, 0xB9, 0x4F, 0x11, - 0x42, 0x27, 0x7F, 0x21, 0xC7, 0xF7, 0x9F, 0x3C, - 0x4F, 0x0C, 0xCE, 0x4E, 0xD8, 0xEE, 0x62, 0xB1 - }, - { - 0x95, 0x39, 0x1D, 0xA8, 0xFC, 0x7B, 0x91, 0x7A, - 0x20, 0x44, 0xB3, 0xD6, 0xF5, 0x37, 0x4E, 0x1C, - 0xA0, 0x72, 0xB4, 0x14, 0x54, 0xD5, 0x72, 0xC7, - 0x35, 0x6C, 0x05, 0xFD, 0x4B, 0xC1, 0xE0, 0xF4, - 0x0B, 0x8B, 0xB8, 0xB4, 0xA9, 0xF6, 0xBC, 0xE9, - 0xBE, 0x2C, 0x46, 0x23, 0xC3, 0x99, 0xB0, 0xDC, - 0xA0, 0xDA, 0xB0, 0x5C, 0xB7, 0x28, 0x1B, 0x71, - 0xA2, 0x1B, 0x0E, 0xBC, 0xD9, 0xE5, 0x56, 0x70 - }, - { - 0x04, 0xB9, 0xCD, 0x3D, 0x20, 0xD2, 0x21, 0xC0, - 0x9A, 0xC8, 0x69, 0x13, 0xD3, 0xDC, 0x63, 0x04, - 0x19, 0x89, 0xA9, 0xA1, 0xE6, 0x94, 0xF1, 0xE6, - 0x39, 0xA3, 0xBA, 0x7E, 0x45, 0x18, 0x40, 0xF7, - 0x50, 0xC2, 0xFC, 0x19, 0x1D, 0x56, 0xAD, 0x61, - 0xF2, 0xE7, 0x93, 0x6B, 0xC0, 0xAC, 0x8E, 0x09, - 0x4B, 0x60, 0xCA, 0xEE, 0xD8, 0x78, 0xC1, 0x87, - 0x99, 0x04, 0x54, 0x02, 0xD6, 0x1C, 0xEA, 0xF9 - }, - { - 0xEC, 0x0E, 0x0E, 0xF7, 0x07, 0xE4, 0xED, 0x6C, - 0x0C, 0x66, 0xF9, 0xE0, 0x89, 0xE4, 0x95, 0x4B, - 0x05, 0x80, 0x30, 0xD2, 0xDD, 0x86, 0x39, 0x8F, - 0xE8, 0x40, 0x59, 0x63, 0x1F, 0x9E, 0xE5, 0x91, - 0xD9, 0xD7, 0x73, 0x75, 0x35, 0x51, 0x49, 0x17, - 0x8C, 0x0C, 0xF8, 0xF8, 0xE7, 0xC4, 0x9E, 0xD2, - 0xA5, 0xE4, 0xF9, 0x54, 0x88, 0xA2, 0x24, 0x70, - 0x67, 0xC2, 0x08, 0x51, 0x0F, 0xAD, 0xC4, 0x4C - }, - { - 0x9A, 0x37, 0xCC, 0xE2, 0x73, 0xB7, 0x9C, 0x09, - 0x91, 0x36, 0x77, 0x51, 0x0E, 0xAF, 0x76, 0x88, - 0xE8, 0x9B, 0x33, 0x14, 0xD3, 0x53, 0x2F, 0xD2, - 0x76, 0x4C, 0x39, 0xDE, 0x02, 0x2A, 0x29, 0x45, - 0xB5, 0x71, 0x0D, 0x13, 0x51, 0x7A, 0xF8, 0xDD, - 0xC0, 0x31, 0x66, 0x24, 0xE7, 0x3B, 0xEC, 0x1C, - 0xE6, 0x7D, 0xF1, 0x52, 0x28, 0x30, 0x20, 0x36, - 0xF3, 0x30, 0xAB, 0x0C, 0xB4, 0xD2, 0x18, 0xDD - }, - { - 0x4C, 0xF9, 0xBB, 0x8F, 0xB3, 0xD4, 0xDE, 0x8B, - 0x38, 0xB2, 0xF2, 0x62, 0xD3, 0xC4, 0x0F, 0x46, - 0xDF, 0xE7, 0x47, 0xE8, 0xFC, 0x0A, 0x41, 0x4C, - 0x19, 0x3D, 0x9F, 0xCF, 0x75, 0x31, 0x06, 0xCE, - 0x47, 0xA1, 0x8F, 0x17, 0x2F, 0x12, 0xE8, 0xA2, - 0xF1, 0xC2, 0x67, 0x26, 0x54, 0x53, 0x58, 0xE5, - 0xEE, 0x28, 0xC9, 0xE2, 0x21, 0x3A, 0x87, 0x87, - 0xAA, 0xFB, 0xC5, 0x16, 0xD2, 0x34, 0x31, 0x52 - }, - { - 0x64, 0xE0, 0xC6, 0x3A, 0xF9, 0xC8, 0x08, 0xFD, - 0x89, 0x31, 0x37, 0x12, 0x98, 0x67, 0xFD, 0x91, - 0x93, 0x9D, 0x53, 0xF2, 0xAF, 0x04, 0xBE, 0x4F, - 0xA2, 0x68, 0x00, 0x61, 0x00, 0x06, 0x9B, 0x2D, - 0x69, 0xDA, 0xA5, 0xC5, 0xD8, 0xED, 0x7F, 0xDD, - 0xCB, 0x2A, 0x70, 0xEE, 0xEC, 0xDF, 0x2B, 0x10, - 0x5D, 0xD4, 0x6A, 0x1E, 0x3B, 0x73, 0x11, 0x72, - 0x8F, 0x63, 0x9A, 0xB4, 0x89, 0x32, 0x6B, 0xC9 - }, - { - 0x5E, 0x9C, 0x93, 0x15, 0x8D, 0x65, 0x9B, 0x2D, - 0xEF, 0x06, 0xB0, 0xC3, 0xC7, 0x56, 0x50, 0x45, - 0x54, 0x26, 0x62, 0xD6, 0xEE, 0xE8, 0xA9, 0x6A, - 0x89, 0xB7, 0x8A, 0xDE, 0x09, 0xFE, 0x8B, 0x3D, - 0xCC, 0x09, 0x6D, 0x4F, 0xE4, 0x88, 0x15, 0xD8, - 0x8D, 0x8F, 0x82, 0x62, 0x01, 0x56, 0x60, 0x2A, - 0xF5, 0x41, 0x95, 0x5E, 0x1F, 0x6C, 0xA3, 0x0D, - 0xCE, 0x14, 0xE2, 0x54, 0xC3, 0x26, 0xB8, 0x8F - }, - { - 0x77, 0x75, 0xDF, 0xF8, 0x89, 0x45, 0x8D, 0xD1, - 0x1A, 0xEF, 0x41, 0x72, 0x76, 0x85, 0x3E, 0x21, - 0x33, 0x5E, 0xB8, 0x8E, 0x4D, 0xEC, 0x9C, 0xFB, - 0x4E, 0x9E, 0xDB, 0x49, 0x82, 0x00, 0x88, 0x55, - 0x1A, 0x2C, 0xA6, 0x03, 0x39, 0xF1, 0x20, 0x66, - 0x10, 0x11, 0x69, 0xF0, 0xDF, 0xE8, 0x4B, 0x09, - 0x8F, 0xDD, 0xB1, 0x48, 0xD9, 0xDA, 0x6B, 0x3D, - 0x61, 0x3D, 0xF2, 0x63, 0x88, 0x9A, 0xD6, 0x4B - }, - { - 0xF0, 0xD2, 0x80, 0x5A, 0xFB, 0xB9, 0x1F, 0x74, - 0x39, 0x51, 0x35, 0x1A, 0x6D, 0x02, 0x4F, 0x93, - 0x53, 0xA2, 0x3C, 0x7C, 0xE1, 0xFC, 0x2B, 0x05, - 0x1B, 0x3A, 0x8B, 0x96, 0x8C, 0x23, 0x3F, 0x46, - 0xF5, 0x0F, 0x80, 0x6E, 0xCB, 0x15, 0x68, 0xFF, - 0xAA, 0x0B, 0x60, 0x66, 0x1E, 0x33, 0x4B, 0x21, - 0xDD, 0xE0, 0x4F, 0x8F, 0xA1, 0x55, 0xAC, 0x74, - 0x0E, 0xEB, 0x42, 0xE2, 0x0B, 0x60, 0xD7, 0x64 - }, - { - 0x86, 0xA2, 0xAF, 0x31, 0x6E, 0x7D, 0x77, 0x54, - 0x20, 0x1B, 0x94, 0x2E, 0x27, 0x53, 0x64, 0xAC, - 0x12, 0xEA, 0x89, 0x62, 0xAB, 0x5B, 0xD8, 0xD7, - 0xFB, 0x27, 0x6D, 0xC5, 0xFB, 0xFF, 0xC8, 0xF9, - 0xA2, 0x8C, 0xAE, 0x4E, 0x48, 0x67, 0xDF, 0x67, - 0x80, 0xD9, 0xB7, 0x25, 0x24, 0x16, 0x09, 0x27, - 0xC8, 0x55, 0xDA, 0x5B, 0x60, 0x78, 0xE0, 0xB5, - 0x54, 0xAA, 0x91, 0xE3, 0x1C, 0xB9, 0xCA, 0x1D - }, - { - 0x10, 0xBD, 0xF0, 0xCA, 0xA0, 0x80, 0x27, 0x05, - 0xE7, 0x06, 0x36, 0x9B, 0xAF, 0x8A, 0x3F, 0x79, - 0xD7, 0x2C, 0x0A, 0x03, 0xA8, 0x06, 0x75, 0xA7, - 0xBB, 0xB0, 0x0B, 0xE3, 0xA4, 0x5E, 0x51, 0x64, - 0x24, 0xD1, 0xEE, 0x88, 0xEF, 0xB5, 0x6F, 0x6D, - 0x57, 0x77, 0x54, 0x5A, 0xE6, 0xE2, 0x77, 0x65, - 0xC3, 0xA8, 0xF5, 0xE4, 0x93, 0xFC, 0x30, 0x89, - 0x15, 0x63, 0x89, 0x33, 0xA1, 0xDF, 0xEE, 0x55 - }, - { - 0xB0, 0x17, 0x81, 0x09, 0x2B, 0x17, 0x48, 0x45, - 0x9E, 0x2E, 0x4E, 0xC1, 0x78, 0x69, 0x66, 0x27, - 0xBF, 0x4E, 0xBA, 0xFE, 0xBB, 0xA7, 0x74, 0xEC, - 0xF0, 0x18, 0xB7, 0x9A, 0x68, 0xAE, 0xB8, 0x49, - 0x17, 0xBF, 0x0B, 0x84, 0xBB, 0x79, 0xD1, 0x7B, - 0x74, 0x31, 0x51, 0x14, 0x4C, 0xD6, 0x6B, 0x7B, - 0x33, 0xA4, 0xB9, 0xE5, 0x2C, 0x76, 0xC4, 0xE1, - 0x12, 0x05, 0x0F, 0xF5, 0x38, 0x5B, 0x7F, 0x0B - }, - { - 0xC6, 0xDB, 0xC6, 0x1D, 0xEC, 0x6E, 0xAE, 0xAC, - 0x81, 0xE3, 0xD5, 0xF7, 0x55, 0x20, 0x3C, 0x8E, - 0x22, 0x05, 0x51, 0x53, 0x4A, 0x0B, 0x2F, 0xD1, - 0x05, 0xA9, 0x18, 0x89, 0x94, 0x5A, 0x63, 0x85, - 0x50, 0x20, 0x4F, 0x44, 0x09, 0x3D, 0xD9, 0x98, - 0xC0, 0x76, 0x20, 0x5D, 0xFF, 0xAD, 0x70, 0x3A, - 0x0E, 0x5C, 0xD3, 0xC7, 0xF4, 0x38, 0xA7, 0xE6, - 0x34, 0xCD, 0x59, 0xFE, 0xDE, 0xDB, 0x53, 0x9E - }, - { - 0xEB, 0xA5, 0x1A, 0xCF, 0xFB, 0x4C, 0xEA, 0x31, - 0xDB, 0x4B, 0x8D, 0x87, 0xE9, 0xBF, 0x7D, 0xD4, - 0x8F, 0xE9, 0x7B, 0x02, 0x53, 0xAE, 0x67, 0xAA, - 0x58, 0x0F, 0x9A, 0xC4, 0xA9, 0xD9, 0x41, 0xF2, - 0xBE, 0xA5, 0x18, 0xEE, 0x28, 0x68, 0x18, 0xCC, - 0x9F, 0x63, 0x3F, 0x2A, 0x3B, 0x9F, 0xB6, 0x8E, - 0x59, 0x4B, 0x48, 0xCD, 0xD6, 0xD5, 0x15, 0xBF, - 0x1D, 0x52, 0xBA, 0x6C, 0x85, 0xA2, 0x03, 0xA7 - }, - { - 0x86, 0x22, 0x1F, 0x3A, 0xDA, 0x52, 0x03, 0x7B, - 0x72, 0x22, 0x4F, 0x10, 0x5D, 0x79, 0x99, 0x23, - 0x1C, 0x5E, 0x55, 0x34, 0xD0, 0x3D, 0xA9, 0xD9, - 0xC0, 0xA1, 0x2A, 0xCB, 0x68, 0x46, 0x0C, 0xD3, - 0x75, 0xDA, 0xF8, 0xE2, 0x43, 0x86, 0x28, 0x6F, - 0x96, 0x68, 0xF7, 0x23, 0x26, 0xDB, 0xF9, 0x9B, - 0xA0, 0x94, 0x39, 0x24, 0x37, 0xD3, 0x98, 0xE9, - 0x5B, 0xB8, 0x16, 0x1D, 0x71, 0x7F, 0x89, 0x91 - }, - { - 0x55, 0x95, 0xE0, 0x5C, 0x13, 0xA7, 0xEC, 0x4D, - 0xC8, 0xF4, 0x1F, 0xB7, 0x0C, 0xB5, 0x0A, 0x71, - 0xBC, 0xE1, 0x7C, 0x02, 0x4F, 0xF6, 0xDE, 0x7A, - 0xF6, 0x18, 0xD0, 0xCC, 0x4E, 0x9C, 0x32, 0xD9, - 0x57, 0x0D, 0x6D, 0x3E, 0xA4, 0x5B, 0x86, 0x52, - 0x54, 0x91, 0x03, 0x0C, 0x0D, 0x8F, 0x2B, 0x18, - 0x36, 0xD5, 0x77, 0x8C, 0x1C, 0xE7, 0x35, 0xC1, - 0x77, 0x07, 0xDF, 0x36, 0x4D, 0x05, 0x43, 0x47 - }, - { - 0xCE, 0x0F, 0x4F, 0x6A, 0xCA, 0x89, 0x59, 0x0A, - 0x37, 0xFE, 0x03, 0x4D, 0xD7, 0x4D, 0xD5, 0xFA, - 0x65, 0xEB, 0x1C, 0xBD, 0x0A, 0x41, 0x50, 0x8A, - 0xAD, 0xDC, 0x09, 0x35, 0x1A, 0x3C, 0xEA, 0x6D, - 0x18, 0xCB, 0x21, 0x89, 0xC5, 0x4B, 0x70, 0x0C, - 0x00, 0x9F, 0x4C, 0xBF, 0x05, 0x21, 0xC7, 0xEA, - 0x01, 0xBE, 0x61, 0xC5, 0xAE, 0x09, 0xCB, 0x54, - 0xF2, 0x7B, 0xC1, 0xB4, 0x4D, 0x65, 0x8C, 0x82 - }, - { - 0x7E, 0xE8, 0x0B, 0x06, 0xA2, 0x15, 0xA3, 0xBC, - 0xA9, 0x70, 0xC7, 0x7C, 0xDA, 0x87, 0x61, 0x82, - 0x2B, 0xC1, 0x03, 0xD4, 0x4F, 0xA4, 0xB3, 0x3F, - 0x4D, 0x07, 0xDC, 0xB9, 0x97, 0xE3, 0x6D, 0x55, - 0x29, 0x8B, 0xCE, 0xAE, 0x12, 0x24, 0x1B, 0x3F, - 0xA0, 0x7F, 0xA6, 0x3B, 0xE5, 0x57, 0x60, 0x68, - 0xDA, 0x38, 0x7B, 0x8D, 0x58, 0x59, 0xAE, 0xAB, - 0x70, 0x13, 0x69, 0x84, 0x8B, 0x17, 0x6D, 0x42 - }, - { - 0x94, 0x0A, 0x84, 0xB6, 0xA8, 0x4D, 0x10, 0x9A, - 0xAB, 0x20, 0x8C, 0x02, 0x4C, 0x6C, 0xE9, 0x64, - 0x76, 0x76, 0xBA, 0x0A, 0xAA, 0x11, 0xF8, 0x6D, - 0xBB, 0x70, 0x18, 0xF9, 0xFD, 0x22, 0x20, 0xA6, - 0xD9, 0x01, 0xA9, 0x02, 0x7F, 0x9A, 0xBC, 0xF9, - 0x35, 0x37, 0x27, 0x27, 0xCB, 0xF0, 0x9E, 0xBD, - 0x61, 0xA2, 0xA2, 0xEE, 0xB8, 0x76, 0x53, 0xE8, - 0xEC, 0xAD, 0x1B, 0xAB, 0x85, 0xDC, 0x83, 0x27 - }, - { - 0x20, 0x20, 0xB7, 0x82, 0x64, 0xA8, 0x2D, 0x9F, - 0x41, 0x51, 0x14, 0x1A, 0xDB, 0xA8, 0xD4, 0x4B, - 0xF2, 0x0C, 0x5E, 0xC0, 0x62, 0xEE, 0xE9, 0xB5, - 0x95, 0xA1, 0x1F, 0x9E, 0x84, 0x90, 0x1B, 0xF1, - 0x48, 0xF2, 0x98, 0xE0, 0xC9, 0xF8, 0x77, 0x7D, - 0xCD, 0xBC, 0x7C, 0xC4, 0x67, 0x0A, 0xAC, 0x35, - 0x6C, 0xC2, 0xAD, 0x8C, 0xCB, 0x16, 0x29, 0xF1, - 0x6F, 0x6A, 0x76, 0xBC, 0xEF, 0xBE, 0xE7, 0x60 - }, - { - 0xD1, 0xB8, 0x97, 0xB0, 0xE0, 0x75, 0xBA, 0x68, - 0xAB, 0x57, 0x2A, 0xDF, 0x9D, 0x9C, 0x43, 0x66, - 0x63, 0xE4, 0x3E, 0xB3, 0xD8, 0xE6, 0x2D, 0x92, - 0xFC, 0x49, 0xC9, 0xBE, 0x21, 0x4E, 0x6F, 0x27, - 0x87, 0x3F, 0xE2, 0x15, 0xA6, 0x51, 0x70, 0xE6, - 0xBE, 0xA9, 0x02, 0x40, 0x8A, 0x25, 0xB4, 0x95, - 0x06, 0xF4, 0x7B, 0xAB, 0xD0, 0x7C, 0xEC, 0xF7, - 0x11, 0x3E, 0xC1, 0x0C, 0x5D, 0xD3, 0x12, 0x52 - }, - { - 0xB1, 0x4D, 0x0C, 0x62, 0xAB, 0xFA, 0x46, 0x9A, - 0x35, 0x71, 0x77, 0xE5, 0x94, 0xC1, 0x0C, 0x19, - 0x42, 0x43, 0xED, 0x20, 0x25, 0xAB, 0x8A, 0xA5, - 0xAD, 0x2F, 0xA4, 0x1A, 0xD3, 0x18, 0xE0, 0xFF, - 0x48, 0xCD, 0x5E, 0x60, 0xBE, 0xC0, 0x7B, 0x13, - 0x63, 0x4A, 0x71, 0x1D, 0x23, 0x26, 0xE4, 0x88, - 0xA9, 0x85, 0xF3, 0x1E, 0x31, 0x15, 0x33, 0x99, - 0xE7, 0x30, 0x88, 0xEF, 0xC8, 0x6A, 0x5C, 0x55 - }, - { - 0x41, 0x69, 0xC5, 0xCC, 0x80, 0x8D, 0x26, 0x97, - 0xDC, 0x2A, 0x82, 0x43, 0x0D, 0xC2, 0x3E, 0x3C, - 0xD3, 0x56, 0xDC, 0x70, 0xA9, 0x45, 0x66, 0x81, - 0x05, 0x02, 0xB8, 0xD6, 0x55, 0xB3, 0x9A, 0xBF, - 0x9E, 0x7F, 0x90, 0x2F, 0xE7, 0x17, 0xE0, 0x38, - 0x92, 0x19, 0x85, 0x9E, 0x19, 0x45, 0xDF, 0x1A, - 0xF6, 0xAD, 0xA4, 0x2E, 0x4C, 0xCD, 0xA5, 0x5A, - 0x19, 0x7B, 0x71, 0x00, 0xA3, 0x0C, 0x30, 0xA1 - }, - { - 0x25, 0x8A, 0x4E, 0xDB, 0x11, 0x3D, 0x66, 0xC8, - 0x39, 0xC8, 0xB1, 0xC9, 0x1F, 0x15, 0xF3, 0x5A, - 0xDE, 0x60, 0x9F, 0x11, 0xCD, 0x7F, 0x86, 0x81, - 0xA4, 0x04, 0x5B, 0x9F, 0xEF, 0x7B, 0x0B, 0x24, - 0xC8, 0x2C, 0xDA, 0x06, 0xA5, 0xF2, 0x06, 0x7B, - 0x36, 0x88, 0x25, 0xE3, 0x91, 0x4E, 0x53, 0xD6, - 0x94, 0x8E, 0xDE, 0x92, 0xEF, 0xD6, 0xE8, 0x38, - 0x7F, 0xA2, 0xE5, 0x37, 0x23, 0x9B, 0x5B, 0xEE - }, - { - 0x79, 0xD2, 0xD8, 0x69, 0x6D, 0x30, 0xF3, 0x0F, - 0xB3, 0x46, 0x57, 0x76, 0x11, 0x71, 0xA1, 0x1E, - 0x6C, 0x3F, 0x1E, 0x64, 0xCB, 0xE7, 0xBE, 0xBE, - 0xE1, 0x59, 0xCB, 0x95, 0xBF, 0xAF, 0x81, 0x2B, - 0x4F, 0x41, 0x1E, 0x2F, 0x26, 0xD9, 0xC4, 0x21, - 0xDC, 0x2C, 0x28, 0x4A, 0x33, 0x42, 0xD8, 0x23, - 0xEC, 0x29, 0x38, 0x49, 0xE4, 0x2D, 0x1E, 0x46, - 0xB0, 0xA4, 0xAC, 0x1E, 0x3C, 0x86, 0xAB, 0xAA - }, - { - 0x8B, 0x94, 0x36, 0x01, 0x0D, 0xC5, 0xDE, 0xE9, - 0x92, 0xAE, 0x38, 0xAE, 0xA9, 0x7F, 0x2C, 0xD6, - 0x3B, 0x94, 0x6D, 0x94, 0xFE, 0xDD, 0x2E, 0xC9, - 0x67, 0x1D, 0xCD, 0xE3, 0xBD, 0x4C, 0xE9, 0x56, - 0x4D, 0x55, 0x5C, 0x66, 0xC1, 0x5B, 0xB2, 0xB9, - 0x00, 0xDF, 0x72, 0xED, 0xB6, 0xB8, 0x91, 0xEB, - 0xCA, 0xDF, 0xEF, 0xF6, 0x3C, 0x9E, 0xA4, 0x03, - 0x6A, 0x99, 0x8B, 0xE7, 0x97, 0x39, 0x81, 0xE7 - }, - { - 0xC8, 0xF6, 0x8E, 0x69, 0x6E, 0xD2, 0x82, 0x42, - 0xBF, 0x99, 0x7F, 0x5B, 0x3B, 0x34, 0x95, 0x95, - 0x08, 0xE4, 0x2D, 0x61, 0x38, 0x10, 0xF1, 0xE2, - 0xA4, 0x35, 0xC9, 0x6E, 0xD2, 0xFF, 0x56, 0x0C, - 0x70, 0x22, 0xF3, 0x61, 0xA9, 0x23, 0x4B, 0x98, - 0x37, 0xFE, 0xEE, 0x90, 0xBF, 0x47, 0x92, 0x2E, - 0xE0, 0xFD, 0x5F, 0x8D, 0xDF, 0x82, 0x37, 0x18, - 0xD8, 0x6D, 0x1E, 0x16, 0xC6, 0x09, 0x00, 0x71 - }, - { - 0xB0, 0x2D, 0x3E, 0xEE, 0x48, 0x60, 0xD5, 0x86, - 0x8B, 0x2C, 0x39, 0xCE, 0x39, 0xBF, 0xE8, 0x10, - 0x11, 0x29, 0x05, 0x64, 0xDD, 0x67, 0x8C, 0x85, - 0xE8, 0x78, 0x3F, 0x29, 0x30, 0x2D, 0xFC, 0x13, - 0x99, 0xBA, 0x95, 0xB6, 0xB5, 0x3C, 0xD9, 0xEB, - 0xBF, 0x40, 0x0C, 0xCA, 0x1D, 0xB0, 0xAB, 0x67, - 0xE1, 0x9A, 0x32, 0x5F, 0x2D, 0x11, 0x58, 0x12, - 0xD2, 0x5D, 0x00, 0x97, 0x8A, 0xD1, 0xBC, 0xA4 - }, - { - 0x76, 0x93, 0xEA, 0x73, 0xAF, 0x3A, 0xC4, 0xDA, - 0xD2, 0x1C, 0xA0, 0xD8, 0xDA, 0x85, 0xB3, 0x11, - 0x8A, 0x7D, 0x1C, 0x60, 0x24, 0xCF, 0xAF, 0x55, - 0x76, 0x99, 0x86, 0x82, 0x17, 0xBC, 0x0C, 0x2F, - 0x44, 0xA1, 0x99, 0xBC, 0x6C, 0x0E, 0xDD, 0x51, - 0x97, 0x98, 0xBA, 0x05, 0xBD, 0x5B, 0x1B, 0x44, - 0x84, 0x34, 0x6A, 0x47, 0xC2, 0xCA, 0xDF, 0x6B, - 0xF3, 0x0B, 0x78, 0x5C, 0xC8, 0x8B, 0x2B, 0xAF - }, - { - 0xA0, 0xE5, 0xC1, 0xC0, 0x03, 0x1C, 0x02, 0xE4, - 0x8B, 0x7F, 0x09, 0xA5, 0xE8, 0x96, 0xEE, 0x9A, - 0xEF, 0x2F, 0x17, 0xFC, 0x9E, 0x18, 0xE9, 0x97, - 0xD7, 0xF6, 0xCA, 0xC7, 0xAE, 0x31, 0x64, 0x22, - 0xC2, 0xB1, 0xE7, 0x79, 0x84, 0xE5, 0xF3, 0xA7, - 0x3C, 0xB4, 0x5D, 0xEE, 0xD5, 0xD3, 0xF8, 0x46, - 0x00, 0x10, 0x5E, 0x6E, 0xE3, 0x8F, 0x2D, 0x09, - 0x0C, 0x7D, 0x04, 0x42, 0xEA, 0x34, 0xC4, 0x6D - }, - { - 0x41, 0xDA, 0xA6, 0xAD, 0xCF, 0xDB, 0x69, 0xF1, - 0x44, 0x0C, 0x37, 0xB5, 0x96, 0x44, 0x01, 0x65, - 0xC1, 0x5A, 0xDA, 0x59, 0x68, 0x13, 0xE2, 0xE2, - 0x2F, 0x06, 0x0F, 0xCD, 0x55, 0x1F, 0x24, 0xDE, - 0xE8, 0xE0, 0x4B, 0xA6, 0x89, 0x03, 0x87, 0x88, - 0x6C, 0xEE, 0xC4, 0xA7, 0xA0, 0xD7, 0xFC, 0x6B, - 0x44, 0x50, 0x63, 0x92, 0xEC, 0x38, 0x22, 0xC0, - 0xD8, 0xC1, 0xAC, 0xFC, 0x7D, 0x5A, 0xEB, 0xE8 - }, - { - 0x14, 0xD4, 0xD4, 0x0D, 0x59, 0x84, 0xD8, 0x4C, - 0x5C, 0xF7, 0x52, 0x3B, 0x77, 0x98, 0xB2, 0x54, - 0xE2, 0x75, 0xA3, 0xA8, 0xCC, 0x0A, 0x1B, 0xD0, - 0x6E, 0xBC, 0x0B, 0xEE, 0x72, 0x68, 0x56, 0xAC, - 0xC3, 0xCB, 0xF5, 0x16, 0xFF, 0x66, 0x7C, 0xDA, - 0x20, 0x58, 0xAD, 0x5C, 0x34, 0x12, 0x25, 0x44, - 0x60, 0xA8, 0x2C, 0x92, 0x18, 0x70, 0x41, 0x36, - 0x3C, 0xC7, 0x7A, 0x4D, 0xC2, 0x15, 0xE4, 0x87 - }, - { - 0xD0, 0xE7, 0xA1, 0xE2, 0xB9, 0xA4, 0x47, 0xFE, - 0xE8, 0x3E, 0x22, 0x77, 0xE9, 0xFF, 0x80, 0x10, - 0xC2, 0xF3, 0x75, 0xAE, 0x12, 0xFA, 0x7A, 0xAA, - 0x8C, 0xA5, 0xA6, 0x31, 0x78, 0x68, 0xA2, 0x6A, - 0x36, 0x7A, 0x0B, 0x69, 0xFB, 0xC1, 0xCF, 0x32, - 0xA5, 0x5D, 0x34, 0xEB, 0x37, 0x06, 0x63, 0x01, - 0x6F, 0x3D, 0x21, 0x10, 0x23, 0x0E, 0xBA, 0x75, - 0x40, 0x28, 0xA5, 0x6F, 0x54, 0xAC, 0xF5, 0x7C - }, - { - 0xE7, 0x71, 0xAA, 0x8D, 0xB5, 0xA3, 0xE0, 0x43, - 0xE8, 0x17, 0x8F, 0x39, 0xA0, 0x85, 0x7B, 0xA0, - 0x4A, 0x3F, 0x18, 0xE4, 0xAA, 0x05, 0x74, 0x3C, - 0xF8, 0xD2, 0x22, 0xB0, 0xB0, 0x95, 0x82, 0x53, - 0x50, 0xBA, 0x42, 0x2F, 0x63, 0x38, 0x2A, 0x23, - 0xD9, 0x2E, 0x41, 0x49, 0x07, 0x4E, 0x81, 0x6A, - 0x36, 0xC1, 0xCD, 0x28, 0x28, 0x4D, 0x14, 0x62, - 0x67, 0x94, 0x0B, 0x31, 0xF8, 0x81, 0x8E, 0xA2 - }, - { - 0xFE, 0xB4, 0xFD, 0x6F, 0x9E, 0x87, 0xA5, 0x6B, - 0xEF, 0x39, 0x8B, 0x32, 0x84, 0xD2, 0xBD, 0xA5, - 0xB5, 0xB0, 0xE1, 0x66, 0x58, 0x3A, 0x66, 0xB6, - 0x1E, 0x53, 0x84, 0x57, 0xFF, 0x05, 0x84, 0x87, - 0x2C, 0x21, 0xA3, 0x29, 0x62, 0xB9, 0x92, 0x8F, - 0xFA, 0xB5, 0x8D, 0xE4, 0xAF, 0x2E, 0xDD, 0x4E, - 0x15, 0xD8, 0xB3, 0x55, 0x70, 0x52, 0x32, 0x07, - 0xFF, 0x4E, 0x2A, 0x5A, 0xA7, 0x75, 0x4C, 0xAA - }, - { - 0x46, 0x2F, 0x17, 0xBF, 0x00, 0x5F, 0xB1, 0xC1, - 0xB9, 0xE6, 0x71, 0x77, 0x9F, 0x66, 0x52, 0x09, - 0xEC, 0x28, 0x73, 0xE3, 0xE4, 0x11, 0xF9, 0x8D, - 0xAB, 0xF2, 0x40, 0xA1, 0xD5, 0xEC, 0x3F, 0x95, - 0xCE, 0x67, 0x96, 0xB6, 0xFC, 0x23, 0xFE, 0x17, - 0x19, 0x03, 0xB5, 0x02, 0x02, 0x34, 0x67, 0xDE, - 0xC7, 0x27, 0x3F, 0xF7, 0x48, 0x79, 0xB9, 0x29, - 0x67, 0xA2, 0xA4, 0x3A, 0x5A, 0x18, 0x3D, 0x33 - }, - { - 0xD3, 0x33, 0x81, 0x93, 0xB6, 0x45, 0x53, 0xDB, - 0xD3, 0x8D, 0x14, 0x4B, 0xEA, 0x71, 0xC5, 0x91, - 0x5B, 0xB1, 0x10, 0xE2, 0xD8, 0x81, 0x80, 0xDB, - 0xC5, 0xDB, 0x36, 0x4F, 0xD6, 0x17, 0x1D, 0xF3, - 0x17, 0xFC, 0x72, 0x68, 0x83, 0x1B, 0x5A, 0xEF, - 0x75, 0xE4, 0x34, 0x2B, 0x2F, 0xAD, 0x87, 0x97, - 0xBA, 0x39, 0xED, 0xDC, 0xEF, 0x80, 0xE6, 0xEC, - 0x08, 0x15, 0x93, 0x50, 0xB1, 0xAD, 0x69, 0x6D - }, - { - 0xE1, 0x59, 0x0D, 0x58, 0x5A, 0x3D, 0x39, 0xF7, - 0xCB, 0x59, 0x9A, 0xBD, 0x47, 0x90, 0x70, 0x96, - 0x64, 0x09, 0xA6, 0x84, 0x6D, 0x43, 0x77, 0xAC, - 0xF4, 0x47, 0x1D, 0x06, 0x5D, 0x5D, 0xB9, 0x41, - 0x29, 0xCC, 0x9B, 0xE9, 0x25, 0x73, 0xB0, 0x5E, - 0xD2, 0x26, 0xBE, 0x1E, 0x9B, 0x7C, 0xB0, 0xCA, - 0xBE, 0x87, 0x91, 0x85, 0x89, 0xF8, 0x0D, 0xAD, - 0xD4, 0xEF, 0x5E, 0xF2, 0x5A, 0x93, 0xD2, 0x8E - }, - { - 0xF8, 0xF3, 0x72, 0x6A, 0xC5, 0xA2, 0x6C, 0xC8, - 0x01, 0x32, 0x49, 0x3A, 0x6F, 0xED, 0xCB, 0x0E, - 0x60, 0x76, 0x0C, 0x09, 0xCF, 0xC8, 0x4C, 0xAD, - 0x17, 0x81, 0x75, 0x98, 0x68, 0x19, 0x66, 0x5E, - 0x76, 0x84, 0x2D, 0x7B, 0x9F, 0xED, 0xF7, 0x6D, - 0xDD, 0xEB, 0xF5, 0xD3, 0xF5, 0x6F, 0xAA, 0xAD, - 0x44, 0x77, 0x58, 0x7A, 0xF2, 0x16, 0x06, 0xD3, - 0x96, 0xAE, 0x57, 0x0D, 0x8E, 0x71, 0x9A, 0xF2 - }, - { - 0x30, 0x18, 0x60, 0x55, 0xC0, 0x79, 0x49, 0x94, - 0x81, 0x83, 0xC8, 0x50, 0xE9, 0xA7, 0x56, 0xCC, - 0x09, 0x93, 0x7E, 0x24, 0x7D, 0x9D, 0x92, 0x8E, - 0x86, 0x9E, 0x20, 0xBA, 0xFC, 0x3C, 0xD9, 0x72, - 0x17, 0x19, 0xD3, 0x4E, 0x04, 0xA0, 0x89, 0x9B, - 0x92, 0xC7, 0x36, 0x08, 0x45, 0x50, 0x18, 0x68, - 0x86, 0xEF, 0xBA, 0x2E, 0x79, 0x0D, 0x8B, 0xE6, - 0xEB, 0xF0, 0x40, 0xB2, 0x09, 0xC4, 0x39, 0xA4 - }, - { - 0xF3, 0xC4, 0x27, 0x6C, 0xB8, 0x63, 0x63, 0x77, - 0x12, 0xC2, 0x41, 0xC4, 0x44, 0xC5, 0xCC, 0x1E, - 0x35, 0x54, 0xE0, 0xFD, 0xDB, 0x17, 0x4D, 0x03, - 0x58, 0x19, 0xDD, 0x83, 0xEB, 0x70, 0x0B, 0x4C, - 0xE8, 0x8D, 0xF3, 0xAB, 0x38, 0x41, 0xBA, 0x02, - 0x08, 0x5E, 0x1A, 0x99, 0xB4, 0xE1, 0x73, 0x10, - 0xC5, 0x34, 0x10, 0x75, 0xC0, 0x45, 0x8B, 0xA3, - 0x76, 0xC9, 0x5A, 0x68, 0x18, 0xFB, 0xB3, 0xE2 - }, - { - 0x0A, 0xA0, 0x07, 0xC4, 0xDD, 0x9D, 0x58, 0x32, - 0x39, 0x30, 0x40, 0xA1, 0x58, 0x3C, 0x93, 0x0B, - 0xCA, 0x7D, 0xC5, 0xE7, 0x7E, 0xA5, 0x3A, 0xDD, - 0x7E, 0x2B, 0x3F, 0x7C, 0x8E, 0x23, 0x13, 0x68, - 0x04, 0x35, 0x20, 0xD4, 0xA3, 0xEF, 0x53, 0xC9, - 0x69, 0xB6, 0xBB, 0xFD, 0x02, 0x59, 0x46, 0xF6, - 0x32, 0xBD, 0x7F, 0x76, 0x5D, 0x53, 0xC2, 0x10, - 0x03, 0xB8, 0xF9, 0x83, 0xF7, 0x5E, 0x2A, 0x6A - }, - { - 0x08, 0xE9, 0x46, 0x47, 0x20, 0x53, 0x3B, 0x23, - 0xA0, 0x4E, 0xC2, 0x4F, 0x7A, 0xE8, 0xC1, 0x03, - 0x14, 0x5F, 0x76, 0x53, 0x87, 0xD7, 0x38, 0x77, - 0x7D, 0x3D, 0x34, 0x34, 0x77, 0xFD, 0x1C, 0x58, - 0xDB, 0x05, 0x21, 0x42, 0xCA, 0xB7, 0x54, 0xEA, - 0x67, 0x43, 0x78, 0xE1, 0x87, 0x66, 0xC5, 0x35, - 0x42, 0xF7, 0x19, 0x70, 0x17, 0x1C, 0xC4, 0xF8, - 0x16, 0x94, 0x24, 0x6B, 0x71, 0x7D, 0x75, 0x64 - }, - { - 0xD3, 0x7F, 0xF7, 0xAD, 0x29, 0x79, 0x93, 0xE7, - 0xEC, 0x21, 0xE0, 0xF1, 0xB4, 0xB5, 0xAE, 0x71, - 0x9C, 0xDC, 0x83, 0xC5, 0xDB, 0x68, 0x75, 0x27, - 0xF2, 0x75, 0x16, 0xCB, 0xFF, 0xA8, 0x22, 0x88, - 0x8A, 0x68, 0x10, 0xEE, 0x5C, 0x1C, 0xA7, 0xBF, - 0xE3, 0x32, 0x11, 0x19, 0xBE, 0x1A, 0xB7, 0xBF, - 0xA0, 0xA5, 0x02, 0x67, 0x1C, 0x83, 0x29, 0x49, - 0x4D, 0xF7, 0xAD, 0x6F, 0x52, 0x2D, 0x44, 0x0F - }, - { - 0xDD, 0x90, 0x42, 0xF6, 0xE4, 0x64, 0xDC, 0xF8, - 0x6B, 0x12, 0x62, 0xF6, 0xAC, 0xCF, 0xAF, 0xBD, - 0x8C, 0xFD, 0x90, 0x2E, 0xD3, 0xED, 0x89, 0xAB, - 0xF7, 0x8F, 0xFA, 0x48, 0x2D, 0xBD, 0xEE, 0xB6, - 0x96, 0x98, 0x42, 0x39, 0x4C, 0x9A, 0x11, 0x68, - 0xAE, 0x3D, 0x48, 0x1A, 0x01, 0x78, 0x42, 0xF6, - 0x60, 0x00, 0x2D, 0x42, 0x44, 0x7C, 0x6B, 0x22, - 0xF7, 0xB7, 0x2F, 0x21, 0xAA, 0xE0, 0x21, 0xC9 - }, - { - 0xBD, 0x96, 0x5B, 0xF3, 0x1E, 0x87, 0xD7, 0x03, - 0x27, 0x53, 0x6F, 0x2A, 0x34, 0x1C, 0xEB, 0xC4, - 0x76, 0x8E, 0xCA, 0x27, 0x5F, 0xA0, 0x5E, 0xF9, - 0x8F, 0x7F, 0x1B, 0x71, 0xA0, 0x35, 0x12, 0x98, - 0xDE, 0x00, 0x6F, 0xBA, 0x73, 0xFE, 0x67, 0x33, - 0xED, 0x01, 0xD7, 0x58, 0x01, 0xB4, 0xA9, 0x28, - 0xE5, 0x42, 0x31, 0xB3, 0x8E, 0x38, 0xC5, 0x62, - 0xB2, 0xE3, 0x3E, 0xA1, 0x28, 0x49, 0x92, 0xFA - }, - { - 0x65, 0x67, 0x6D, 0x80, 0x06, 0x17, 0x97, 0x2F, - 0xBD, 0x87, 0xE4, 0xB9, 0x51, 0x4E, 0x1C, 0x67, - 0x40, 0x2B, 0x7A, 0x33, 0x10, 0x96, 0xD3, 0xBF, - 0xAC, 0x22, 0xF1, 0xAB, 0xB9, 0x53, 0x74, 0xAB, - 0xC9, 0x42, 0xF1, 0x6E, 0x9A, 0xB0, 0xEA, 0xD3, - 0x3B, 0x87, 0xC9, 0x19, 0x68, 0xA6, 0xE5, 0x09, - 0xE1, 0x19, 0xFF, 0x07, 0x78, 0x7B, 0x3E, 0xF4, - 0x83, 0xE1, 0xDC, 0xDC, 0xCF, 0x6E, 0x30, 0x22 - }, - { - 0x93, 0x9F, 0xA1, 0x89, 0x69, 0x9C, 0x5D, 0x2C, - 0x81, 0xDD, 0xD1, 0xFF, 0xC1, 0xFA, 0x20, 0x7C, - 0x97, 0x0B, 0x6A, 0x36, 0x85, 0xBB, 0x29, 0xCE, - 0x1D, 0x3E, 0x99, 0xD4, 0x2F, 0x2F, 0x74, 0x42, - 0xDA, 0x53, 0xE9, 0x5A, 0x72, 0x90, 0x73, 0x14, - 0xF4, 0x58, 0x83, 0x99, 0xA3, 0xFF, 0x5B, 0x0A, - 0x92, 0xBE, 0xB3, 0xF6, 0xBE, 0x26, 0x94, 0xF9, - 0xF8, 0x6E, 0xCF, 0x29, 0x52, 0xD5, 0xB4, 0x1C - }, - { - 0xC5, 0x16, 0x54, 0x17, 0x01, 0x86, 0x3F, 0x91, - 0x00, 0x5F, 0x31, 0x41, 0x08, 0xCE, 0xEC, 0xE3, - 0xC6, 0x43, 0xE0, 0x4F, 0xC8, 0xC4, 0x2F, 0xD2, - 0xFF, 0x55, 0x62, 0x20, 0xE6, 0x16, 0xAA, 0xA6, - 0xA4, 0x8A, 0xEB, 0x97, 0xA8, 0x4B, 0xAD, 0x74, - 0x78, 0x2E, 0x8D, 0xFF, 0x96, 0xA1, 0xA2, 0xFA, - 0x94, 0x93, 0x39, 0xD7, 0x22, 0xED, 0xCA, 0xA3, - 0x2B, 0x57, 0x06, 0x70, 0x41, 0xDF, 0x88, 0xCC - }, - { - 0x98, 0x7F, 0xD6, 0xE0, 0xD6, 0x85, 0x7C, 0x55, - 0x3E, 0xAE, 0xBB, 0x3D, 0x34, 0x97, 0x0A, 0x2C, - 0x2F, 0x6E, 0x89, 0xA3, 0x54, 0x8F, 0x49, 0x25, - 0x21, 0x72, 0x2B, 0x80, 0xA1, 0xC2, 0x1A, 0x15, - 0x38, 0x92, 0x34, 0x6D, 0x2C, 0xBA, 0x64, 0x44, - 0x21, 0x2D, 0x56, 0xDA, 0x9A, 0x26, 0xE3, 0x24, - 0xDC, 0xCB, 0xC0, 0xDC, 0xDE, 0x85, 0xD4, 0xD2, - 0xEE, 0x43, 0x99, 0xEE, 0xC5, 0xA6, 0x4E, 0x8F - }, - { - 0xAE, 0x56, 0xDE, 0xB1, 0xC2, 0x32, 0x8D, 0x9C, - 0x40, 0x17, 0x70, 0x6B, 0xCE, 0x6E, 0x99, 0xD4, - 0x13, 0x49, 0x05, 0x3B, 0xA9, 0xD3, 0x36, 0xD6, - 0x77, 0xC4, 0xC2, 0x7D, 0x9F, 0xD5, 0x0A, 0xE6, - 0xAE, 0xE1, 0x7E, 0x85, 0x31, 0x54, 0xE1, 0xF4, - 0xFE, 0x76, 0x72, 0x34, 0x6D, 0xA2, 0xEA, 0xA3, - 0x1E, 0xEA, 0x53, 0xFC, 0xF2, 0x4A, 0x22, 0x80, - 0x4F, 0x11, 0xD0, 0x3D, 0xA6, 0xAB, 0xFC, 0x2B - }, - { - 0x49, 0xD6, 0xA6, 0x08, 0xC9, 0xBD, 0xE4, 0x49, - 0x18, 0x70, 0x49, 0x85, 0x72, 0xAC, 0x31, 0xAA, - 0xC3, 0xFA, 0x40, 0x93, 0x8B, 0x38, 0xA7, 0x81, - 0x8F, 0x72, 0x38, 0x3E, 0xB0, 0x40, 0xAD, 0x39, - 0x53, 0x2B, 0xC0, 0x65, 0x71, 0xE1, 0x3D, 0x76, - 0x7E, 0x69, 0x45, 0xAB, 0x77, 0xC0, 0xBD, 0xC3, - 0xB0, 0x28, 0x42, 0x53, 0x34, 0x3F, 0x9F, 0x6C, - 0x12, 0x44, 0xEB, 0xF2, 0xFF, 0x0D, 0xF8, 0x66 - }, - { - 0xDA, 0x58, 0x2A, 0xD8, 0xC5, 0x37, 0x0B, 0x44, - 0x69, 0xAF, 0x86, 0x2A, 0xA6, 0x46, 0x7A, 0x22, - 0x93, 0xB2, 0xB2, 0x8B, 0xD8, 0x0A, 0xE0, 0xE9, - 0x1F, 0x42, 0x5A, 0xD3, 0xD4, 0x72, 0x49, 0xFD, - 0xF9, 0x88, 0x25, 0xCC, 0x86, 0xF1, 0x40, 0x28, - 0xC3, 0x30, 0x8C, 0x98, 0x04, 0xC7, 0x8B, 0xFE, - 0xEE, 0xEE, 0x46, 0x14, 0x44, 0xCE, 0x24, 0x36, - 0x87, 0xE1, 0xA5, 0x05, 0x22, 0x45, 0x6A, 0x1D - }, - { - 0xD5, 0x26, 0x6A, 0xA3, 0x33, 0x11, 0x94, 0xAE, - 0xF8, 0x52, 0xEE, 0xD8, 0x6D, 0x7B, 0x5B, 0x26, - 0x33, 0xA0, 0xAF, 0x1C, 0x73, 0x59, 0x06, 0xF2, - 0xE1, 0x32, 0x79, 0xF1, 0x49, 0x31, 0xA9, 0xFC, - 0x3B, 0x0E, 0xAC, 0x5C, 0xE9, 0x24, 0x52, 0x73, - 0xBD, 0x1A, 0xA9, 0x29, 0x05, 0xAB, 0xE1, 0x62, - 0x78, 0xEF, 0x7E, 0xFD, 0x47, 0x69, 0x47, 0x89, - 0xA7, 0x28, 0x3B, 0x77, 0xDA, 0x3C, 0x70, 0xF8 - }, - { - 0x29, 0x62, 0x73, 0x4C, 0x28, 0x25, 0x21, 0x86, - 0xA9, 0xA1, 0x11, 0x1C, 0x73, 0x2A, 0xD4, 0xDE, - 0x45, 0x06, 0xD4, 0xB4, 0x48, 0x09, 0x16, 0x30, - 0x3E, 0xB7, 0x99, 0x1D, 0x65, 0x9C, 0xCD, 0xA0, - 0x7A, 0x99, 0x11, 0x91, 0x4B, 0xC7, 0x5C, 0x41, - 0x8A, 0xB7, 0xA4, 0x54, 0x17, 0x57, 0xAD, 0x05, - 0x47, 0x96, 0xE2, 0x67, 0x97, 0xFE, 0xAF, 0x36, - 0xE9, 0xF6, 0xAD, 0x43, 0xF1, 0x4B, 0x35, 0xA4 - }, - { - 0xE8, 0xB7, 0x9E, 0xC5, 0xD0, 0x6E, 0x11, 0x1B, - 0xDF, 0xAF, 0xD7, 0x1E, 0x9F, 0x57, 0x60, 0xF0, - 0x0A, 0xC8, 0xAC, 0x5D, 0x8B, 0xF7, 0x68, 0xF9, - 0xFF, 0x6F, 0x08, 0xB8, 0xF0, 0x26, 0x09, 0x6B, - 0x1C, 0xC3, 0xA4, 0xC9, 0x73, 0x33, 0x30, 0x19, - 0xF1, 0xE3, 0x55, 0x3E, 0x77, 0xDA, 0x3F, 0x98, - 0xCB, 0x9F, 0x54, 0x2E, 0x0A, 0x90, 0xE5, 0xF8, - 0xA9, 0x40, 0xCC, 0x58, 0xE5, 0x98, 0x44, 0xB3 - }, - { - 0xDF, 0xB3, 0x20, 0xC4, 0x4F, 0x9D, 0x41, 0xD1, - 0xEF, 0xDC, 0xC0, 0x15, 0xF0, 0x8D, 0xD5, 0x53, - 0x9E, 0x52, 0x6E, 0x39, 0xC8, 0x7D, 0x50, 0x9A, - 0xE6, 0x81, 0x2A, 0x96, 0x9E, 0x54, 0x31, 0xBF, - 0x4F, 0xA7, 0xD9, 0x1F, 0xFD, 0x03, 0xB9, 0x81, - 0xE0, 0xD5, 0x44, 0xCF, 0x72, 0xD7, 0xB1, 0xC0, - 0x37, 0x4F, 0x88, 0x01, 0x48, 0x2E, 0x6D, 0xEA, - 0x2E, 0xF9, 0x03, 0x87, 0x7E, 0xBA, 0x67, 0x5E - }, - { - 0xD8, 0x86, 0x75, 0x11, 0x8F, 0xDB, 0x55, 0xA5, - 0xFB, 0x36, 0x5A, 0xC2, 0xAF, 0x1D, 0x21, 0x7B, - 0xF5, 0x26, 0xCE, 0x1E, 0xE9, 0xC9, 0x4B, 0x2F, - 0x00, 0x90, 0xB2, 0xC5, 0x8A, 0x06, 0xCA, 0x58, - 0x18, 0x7D, 0x7F, 0xE5, 0x7C, 0x7B, 0xED, 0x9D, - 0x26, 0xFC, 0xA0, 0x67, 0xB4, 0x11, 0x0E, 0xEF, - 0xCD, 0x9A, 0x0A, 0x34, 0x5D, 0xE8, 0x72, 0xAB, - 0xE2, 0x0D, 0xE3, 0x68, 0x00, 0x1B, 0x07, 0x45 - }, - { - 0xB8, 0x93, 0xF2, 0xFC, 0x41, 0xF7, 0xB0, 0xDD, - 0x6E, 0x2F, 0x6A, 0xA2, 0xE0, 0x37, 0x0C, 0x0C, - 0xFF, 0x7D, 0xF0, 0x9E, 0x3A, 0xCF, 0xCC, 0x0E, - 0x92, 0x0B, 0x6E, 0x6F, 0xAD, 0x0E, 0xF7, 0x47, - 0xC4, 0x06, 0x68, 0x41, 0x7D, 0x34, 0x2B, 0x80, - 0xD2, 0x35, 0x1E, 0x8C, 0x17, 0x5F, 0x20, 0x89, - 0x7A, 0x06, 0x2E, 0x97, 0x65, 0xE6, 0xC6, 0x7B, - 0x53, 0x9B, 0x6B, 0xA8, 0xB9, 0x17, 0x05, 0x45 - }, - { - 0x6C, 0x67, 0xEC, 0x56, 0x97, 0xAC, 0xCD, 0x23, - 0x5C, 0x59, 0xB4, 0x86, 0xD7, 0xB7, 0x0B, 0xAE, - 0xED, 0xCB, 0xD4, 0xAA, 0x64, 0xEB, 0xD4, 0xEE, - 0xF3, 0xC7, 0xEA, 0xC1, 0x89, 0x56, 0x1A, 0x72, - 0x62, 0x50, 0xAE, 0xC4, 0xD4, 0x8C, 0xAD, 0xCA, - 0xFB, 0xBE, 0x2C, 0xE3, 0xC1, 0x6C, 0xE2, 0xD6, - 0x91, 0xA8, 0xCC, 0xE0, 0x6E, 0x88, 0x79, 0x55, - 0x6D, 0x44, 0x83, 0xED, 0x71, 0x65, 0xC0, 0x63 - }, - { - 0xF1, 0xAA, 0x2B, 0x04, 0x4F, 0x8F, 0x0C, 0x63, - 0x8A, 0x3F, 0x36, 0x2E, 0x67, 0x7B, 0x5D, 0x89, - 0x1D, 0x6F, 0xD2, 0xAB, 0x07, 0x65, 0xF6, 0xEE, - 0x1E, 0x49, 0x87, 0xDE, 0x05, 0x7E, 0xAD, 0x35, - 0x78, 0x83, 0xD9, 0xB4, 0x05, 0xB9, 0xD6, 0x09, - 0xEE, 0xA1, 0xB8, 0x69, 0xD9, 0x7F, 0xB1, 0x6D, - 0x9B, 0x51, 0x01, 0x7C, 0x55, 0x3F, 0x3B, 0x93, - 0xC0, 0xA1, 0xE0, 0xF1, 0x29, 0x6F, 0xED, 0xCD - }, - { - 0xCB, 0xAA, 0x25, 0x95, 0x72, 0xD4, 0xAE, 0xBF, - 0xC1, 0x91, 0x7A, 0xCD, 0xDC, 0x58, 0x2B, 0x9F, - 0x8D, 0xFA, 0xA9, 0x28, 0xA1, 0x98, 0xCA, 0x7A, - 0xCD, 0x0F, 0x2A, 0xA7, 0x6A, 0x13, 0x4A, 0x90, - 0x25, 0x2E, 0x62, 0x98, 0xA6, 0x5B, 0x08, 0x18, - 0x6A, 0x35, 0x0D, 0x5B, 0x76, 0x26, 0x69, 0x9F, - 0x8C, 0xB7, 0x21, 0xA3, 0xEA, 0x59, 0x21, 0xB7, - 0x53, 0xAE, 0x3A, 0x2D, 0xCE, 0x24, 0xBA, 0x3A - }, - { - 0xFA, 0x15, 0x49, 0xC9, 0x79, 0x6C, 0xD4, 0xD3, - 0x03, 0xDC, 0xF4, 0x52, 0xC1, 0xFB, 0xD5, 0x74, - 0x4F, 0xD9, 0xB9, 0xB4, 0x70, 0x03, 0xD9, 0x20, - 0xB9, 0x2D, 0xE3, 0x48, 0x39, 0xD0, 0x7E, 0xF2, - 0xA2, 0x9D, 0xED, 0x68, 0xF6, 0xFC, 0x9E, 0x6C, - 0x45, 0xE0, 0x71, 0xA2, 0xE4, 0x8B, 0xD5, 0x0C, - 0x50, 0x84, 0xE9, 0x6B, 0x65, 0x7D, 0xD0, 0x40, - 0x40, 0x45, 0xA1, 0xDD, 0xEF, 0xE2, 0x82, 0xED - }, - { - 0x5C, 0xF2, 0xAC, 0x89, 0x7A, 0xB4, 0x44, 0xDC, - 0xB5, 0xC8, 0xD8, 0x7C, 0x49, 0x5D, 0xBD, 0xB3, - 0x4E, 0x18, 0x38, 0xB6, 0xB6, 0x29, 0x42, 0x7C, - 0xAA, 0x51, 0x70, 0x2A, 0xD0, 0xF9, 0x68, 0x85, - 0x25, 0xF1, 0x3B, 0xEC, 0x50, 0x3A, 0x3C, 0x3A, - 0x2C, 0x80, 0xA6, 0x5E, 0x0B, 0x57, 0x15, 0xE8, - 0xAF, 0xAB, 0x00, 0xFF, 0xA5, 0x6E, 0xC4, 0x55, - 0xA4, 0x9A, 0x1A, 0xD3, 0x0A, 0xA2, 0x4F, 0xCD - }, - { - 0x9A, 0xAF, 0x80, 0x20, 0x7B, 0xAC, 0xE1, 0x7B, - 0xB7, 0xAB, 0x14, 0x57, 0x57, 0xD5, 0x69, 0x6B, - 0xDE, 0x32, 0x40, 0x6E, 0xF2, 0x2B, 0x44, 0x29, - 0x2E, 0xF6, 0x5D, 0x45, 0x19, 0xC3, 0xBB, 0x2A, - 0xD4, 0x1A, 0x59, 0xB6, 0x2C, 0xC3, 0xE9, 0x4B, - 0x6F, 0xA9, 0x6D, 0x32, 0xA7, 0xFA, 0xAD, 0xAE, - 0x28, 0xAF, 0x7D, 0x35, 0x09, 0x72, 0x19, 0xAA, - 0x3F, 0xD8, 0xCD, 0xA3, 0x1E, 0x40, 0xC2, 0x75 - }, - { - 0xAF, 0x88, 0xB1, 0x63, 0x40, 0x2C, 0x86, 0x74, - 0x5C, 0xB6, 0x50, 0xC2, 0x98, 0x8F, 0xB9, 0x52, - 0x11, 0xB9, 0x4B, 0x03, 0xEF, 0x29, 0x0E, 0xED, - 0x96, 0x62, 0x03, 0x42, 0x41, 0xFD, 0x51, 0xCF, - 0x39, 0x8F, 0x80, 0x73, 0xE3, 0x69, 0x35, 0x4C, - 0x43, 0xEA, 0xE1, 0x05, 0x2F, 0x9B, 0x63, 0xB0, - 0x81, 0x91, 0xCA, 0xA1, 0x38, 0xAA, 0x54, 0xFE, - 0xA8, 0x89, 0xCC, 0x70, 0x24, 0x23, 0x68, 0x97 - }, - { - 0x48, 0xFA, 0x7D, 0x64, 0xE1, 0xCE, 0xEE, 0x27, - 0xB9, 0x86, 0x4D, 0xB5, 0xAD, 0xA4, 0xB5, 0x3D, - 0x00, 0xC9, 0xBC, 0x76, 0x26, 0x55, 0x58, 0x13, - 0xD3, 0xCD, 0x67, 0x30, 0xAB, 0x3C, 0xC0, 0x6F, - 0xF3, 0x42, 0xD7, 0x27, 0x90, 0x5E, 0x33, 0x17, - 0x1B, 0xDE, 0x6E, 0x84, 0x76, 0xE7, 0x7F, 0xB1, - 0x72, 0x08, 0x61, 0xE9, 0x4B, 0x73, 0xA2, 0xC5, - 0x38, 0xD2, 0x54, 0x74, 0x62, 0x85, 0xF4, 0x30 - }, - { - 0x0E, 0x6F, 0xD9, 0x7A, 0x85, 0xE9, 0x04, 0xF8, - 0x7B, 0xFE, 0x85, 0xBB, 0xEB, 0x34, 0xF6, 0x9E, - 0x1F, 0x18, 0x10, 0x5C, 0xF4, 0xED, 0x4F, 0x87, - 0xAE, 0xC3, 0x6C, 0x6E, 0x8B, 0x5F, 0x68, 0xBD, - 0x2A, 0x6F, 0x3D, 0xC8, 0xA9, 0xEC, 0xB2, 0xB6, - 0x1D, 0xB4, 0xEE, 0xDB, 0x6B, 0x2E, 0xA1, 0x0B, - 0xF9, 0xCB, 0x02, 0x51, 0xFB, 0x0F, 0x8B, 0x34, - 0x4A, 0xBF, 0x7F, 0x36, 0x6B, 0x6D, 0xE5, 0xAB - }, - { - 0x06, 0x62, 0x2D, 0xA5, 0x78, 0x71, 0x76, 0x28, - 0x7F, 0xDC, 0x8F, 0xED, 0x44, 0x0B, 0xAD, 0x18, - 0x7D, 0x83, 0x00, 0x99, 0xC9, 0x4E, 0x6D, 0x04, - 0xC8, 0xE9, 0xC9, 0x54, 0xCD, 0xA7, 0x0C, 0x8B, - 0xB9, 0xE1, 0xFC, 0x4A, 0x6D, 0x0B, 0xAA, 0x83, - 0x1B, 0x9B, 0x78, 0xEF, 0x66, 0x48, 0x68, 0x1A, - 0x48, 0x67, 0xA1, 0x1D, 0xA9, 0x3E, 0xE3, 0x6E, - 0x5E, 0x6A, 0x37, 0xD8, 0x7F, 0xC6, 0x3F, 0x6F - }, - { - 0x1D, 0xA6, 0x77, 0x2B, 0x58, 0xFA, 0xBF, 0x9C, - 0x61, 0xF6, 0x8D, 0x41, 0x2C, 0x82, 0xF1, 0x82, - 0xC0, 0x23, 0x6D, 0x7D, 0x57, 0x5E, 0xF0, 0xB5, - 0x8D, 0xD2, 0x24, 0x58, 0xD6, 0x43, 0xCD, 0x1D, - 0xFC, 0x93, 0xB0, 0x38, 0x71, 0xC3, 0x16, 0xD8, - 0x43, 0x0D, 0x31, 0x29, 0x95, 0xD4, 0x19, 0x7F, - 0x08, 0x74, 0xC9, 0x91, 0x72, 0xBA, 0x00, 0x4A, - 0x01, 0xEE, 0x29, 0x5A, 0xBA, 0xC2, 0x4E, 0x46 - }, - { - 0x3C, 0xD2, 0xD9, 0x32, 0x0B, 0x7B, 0x1D, 0x5F, - 0xB9, 0xAA, 0xB9, 0x51, 0xA7, 0x60, 0x23, 0xFA, - 0x66, 0x7B, 0xE1, 0x4A, 0x91, 0x24, 0xE3, 0x94, - 0x51, 0x39, 0x18, 0xA3, 0xF4, 0x40, 0x96, 0xAE, - 0x49, 0x04, 0xBA, 0x0F, 0xFC, 0x15, 0x0B, 0x63, - 0xBC, 0x7A, 0xB1, 0xEE, 0xB9, 0xA6, 0xE2, 0x57, - 0xE5, 0xC8, 0xF0, 0x00, 0xA7, 0x03, 0x94, 0xA5, - 0xAF, 0xD8, 0x42, 0x71, 0x5D, 0xE1, 0x5F, 0x29 - }, - { - 0x04, 0xCD, 0xC1, 0x4F, 0x74, 0x34, 0xE0, 0xB4, - 0xBE, 0x70, 0xCB, 0x41, 0xDB, 0x4C, 0x77, 0x9A, - 0x88, 0xEA, 0xEF, 0x6A, 0xCC, 0xEB, 0xCB, 0x41, - 0xF2, 0xD4, 0x2F, 0xFF, 0xE7, 0xF3, 0x2A, 0x8E, - 0x28, 0x1B, 0x5C, 0x10, 0x3A, 0x27, 0x02, 0x1D, - 0x0D, 0x08, 0x36, 0x22, 0x50, 0x75, 0x3C, 0xDF, - 0x70, 0x29, 0x21, 0x95, 0xA5, 0x3A, 0x48, 0x72, - 0x8C, 0xEB, 0x58, 0x44, 0xC2, 0xD9, 0x8B, 0xAB - }, - { - 0x90, 0x71, 0xB7, 0xA8, 0xA0, 0x75, 0xD0, 0x09, - 0x5B, 0x8F, 0xB3, 0xAE, 0x51, 0x13, 0x78, 0x57, - 0x35, 0xAB, 0x98, 0xE2, 0xB5, 0x2F, 0xAF, 0x91, - 0xD5, 0xB8, 0x9E, 0x44, 0xAA, 0xC5, 0xB5, 0xD4, - 0xEB, 0xBF, 0x91, 0x22, 0x3B, 0x0F, 0xF4, 0xC7, - 0x19, 0x05, 0xDA, 0x55, 0x34, 0x2E, 0x64, 0x65, - 0x5D, 0x6E, 0xF8, 0xC8, 0x9A, 0x47, 0x68, 0xC3, - 0xF9, 0x3A, 0x6D, 0xC0, 0x36, 0x6B, 0x5B, 0xC8 - }, - { - 0xEB, 0xB3, 0x02, 0x40, 0xDD, 0x96, 0xC7, 0xBC, - 0x8D, 0x0A, 0xBE, 0x49, 0xAA, 0x4E, 0xDC, 0xBB, - 0x4A, 0xFD, 0xC5, 0x1F, 0xF9, 0xAA, 0xF7, 0x20, - 0xD3, 0xF9, 0xE7, 0xFB, 0xB0, 0xF9, 0xC6, 0xD6, - 0x57, 0x13, 0x50, 0x50, 0x17, 0x69, 0xFC, 0x4E, - 0xBD, 0x0B, 0x21, 0x41, 0x24, 0x7F, 0xF4, 0x00, - 0xD4, 0xFD, 0x4B, 0xE4, 0x14, 0xED, 0xF3, 0x77, - 0x57, 0xBB, 0x90, 0xA3, 0x2A, 0xC5, 0xC6, 0x5A - }, - { - 0x85, 0x32, 0xC5, 0x8B, 0xF3, 0xC8, 0x01, 0x5D, - 0x9D, 0x1C, 0xBE, 0x00, 0xEE, 0xF1, 0xF5, 0x08, - 0x2F, 0x8F, 0x36, 0x32, 0xFB, 0xE9, 0xF1, 0xED, - 0x4F, 0x9D, 0xFB, 0x1F, 0xA7, 0x9E, 0x82, 0x83, - 0x06, 0x6D, 0x77, 0xC4, 0x4C, 0x4A, 0xF9, 0x43, - 0xD7, 0x6B, 0x30, 0x03, 0x64, 0xAE, 0xCB, 0xD0, - 0x64, 0x8C, 0x8A, 0x89, 0x39, 0xBD, 0x20, 0x41, - 0x23, 0xF4, 0xB5, 0x62, 0x60, 0x42, 0x2D, 0xEC - }, - { - 0xFE, 0x98, 0x46, 0xD6, 0x4F, 0x7C, 0x77, 0x08, - 0x69, 0x6F, 0x84, 0x0E, 0x2D, 0x76, 0xCB, 0x44, - 0x08, 0xB6, 0x59, 0x5C, 0x2F, 0x81, 0xEC, 0x6A, - 0x28, 0xA7, 0xF2, 0xF2, 0x0C, 0xB8, 0x8C, 0xFE, - 0x6A, 0xC0, 0xB9, 0xE9, 0xB8, 0x24, 0x4F, 0x08, - 0xBD, 0x70, 0x95, 0xC3, 0x50, 0xC1, 0xD0, 0x84, - 0x2F, 0x64, 0xFB, 0x01, 0xBB, 0x7F, 0x53, 0x2D, - 0xFC, 0xD4, 0x73, 0x71, 0xB0, 0xAE, 0xEB, 0x79 - }, - { - 0x28, 0xF1, 0x7E, 0xA6, 0xFB, 0x6C, 0x42, 0x09, - 0x2D, 0xC2, 0x64, 0x25, 0x7E, 0x29, 0x74, 0x63, - 0x21, 0xFB, 0x5B, 0xDA, 0xEA, 0x98, 0x73, 0xC2, - 0xA7, 0xFA, 0x9D, 0x8F, 0x53, 0x81, 0x8E, 0x89, - 0x9E, 0x16, 0x1B, 0xC7, 0x7D, 0xFE, 0x80, 0x90, - 0xAF, 0xD8, 0x2B, 0xF2, 0x26, 0x6C, 0x5C, 0x1B, - 0xC9, 0x30, 0xA8, 0xD1, 0x54, 0x76, 0x24, 0x43, - 0x9E, 0x66, 0x2E, 0xF6, 0x95, 0xF2, 0x6F, 0x24 - }, - { - 0xEC, 0x6B, 0x7D, 0x7F, 0x03, 0x0D, 0x48, 0x50, - 0xAC, 0xAE, 0x3C, 0xB6, 0x15, 0xC2, 0x1D, 0xD2, - 0x52, 0x06, 0xD6, 0x3E, 0x84, 0xD1, 0xDB, 0x8D, - 0x95, 0x73, 0x70, 0x73, 0x7B, 0xA0, 0xE9, 0x84, - 0x67, 0xEA, 0x0C, 0xE2, 0x74, 0xC6, 0x61, 0x99, - 0x90, 0x1E, 0xAE, 0xC1, 0x8A, 0x08, 0x52, 0x57, - 0x15, 0xF5, 0x3B, 0xFD, 0xB0, 0xAA, 0xCB, 0x61, - 0x3D, 0x34, 0x2E, 0xBD, 0xCE, 0xED, 0xDC, 0x3B - }, - { - 0xB4, 0x03, 0xD3, 0x69, 0x1C, 0x03, 0xB0, 0xD3, - 0x41, 0x8D, 0xF3, 0x27, 0xD5, 0x86, 0x0D, 0x34, - 0xBB, 0xFC, 0xC4, 0x51, 0x9B, 0xFB, 0xCE, 0x36, - 0xBF, 0x33, 0xB2, 0x08, 0x38, 0x5F, 0xAD, 0xB9, - 0x18, 0x6B, 0xC7, 0x8A, 0x76, 0xC4, 0x89, 0xD8, - 0x9F, 0xD5, 0x7E, 0x7D, 0xC7, 0x54, 0x12, 0xD2, - 0x3B, 0xCD, 0x1D, 0xAE, 0x84, 0x70, 0xCE, 0x92, - 0x74, 0x75, 0x4B, 0xB8, 0x58, 0x5B, 0x13, 0xC5 - }, - { - 0x31, 0xFC, 0x79, 0x73, 0x8B, 0x87, 0x72, 0xB3, - 0xF5, 0x5C, 0xD8, 0x17, 0x88, 0x13, 0xB3, 0xB5, - 0x2D, 0x0D, 0xB5, 0xA4, 0x19, 0xD3, 0x0B, 0xA9, - 0x49, 0x5C, 0x4B, 0x9D, 0xA0, 0x21, 0x9F, 0xAC, - 0x6D, 0xF8, 0xE7, 0xC2, 0x3A, 0x81, 0x15, 0x51, - 0xA6, 0x2B, 0x82, 0x7F, 0x25, 0x6E, 0xCD, 0xB8, - 0x12, 0x4A, 0xC8, 0xA6, 0x79, 0x2C, 0xCF, 0xEC, - 0xC3, 0xB3, 0x01, 0x27, 0x22, 0xE9, 0x44, 0x63 - }, - { - 0xBB, 0x20, 0x39, 0xEC, 0x28, 0x70, 0x91, 0xBC, - 0xC9, 0x64, 0x2F, 0xC9, 0x00, 0x49, 0xE7, 0x37, - 0x32, 0xE0, 0x2E, 0x57, 0x7E, 0x28, 0x62, 0xB3, - 0x22, 0x16, 0xAE, 0x9B, 0xED, 0xCD, 0x73, 0x0C, - 0x4C, 0x28, 0x4E, 0xF3, 0x96, 0x8C, 0x36, 0x8B, - 0x7D, 0x37, 0x58, 0x4F, 0x97, 0xBD, 0x4B, 0x4D, - 0xC6, 0xEF, 0x61, 0x27, 0xAC, 0xFE, 0x2E, 0x6A, - 0xE2, 0x50, 0x91, 0x24, 0xE6, 0x6C, 0x8A, 0xF4 - }, - { - 0xF5, 0x3D, 0x68, 0xD1, 0x3F, 0x45, 0xED, 0xFC, - 0xB9, 0xBD, 0x41, 0x5E, 0x28, 0x31, 0xE9, 0x38, - 0x35, 0x0D, 0x53, 0x80, 0xD3, 0x43, 0x22, 0x78, - 0xFC, 0x1C, 0x0C, 0x38, 0x1F, 0xCB, 0x7C, 0x65, - 0xC8, 0x2D, 0xAF, 0xE0, 0x51, 0xD8, 0xC8, 0xB0, - 0xD4, 0x4E, 0x09, 0x74, 0xA0, 0xE5, 0x9E, 0xC7, - 0xBF, 0x7E, 0xD0, 0x45, 0x9F, 0x86, 0xE9, 0x6F, - 0x32, 0x9F, 0xC7, 0x97, 0x52, 0x51, 0x0F, 0xD3 - }, - { - 0x8D, 0x56, 0x8C, 0x79, 0x84, 0xF0, 0xEC, 0xDF, - 0x76, 0x40, 0xFB, 0xC4, 0x83, 0xB5, 0xD8, 0xC9, - 0xF8, 0x66, 0x34, 0xF6, 0xF4, 0x32, 0x91, 0x84, - 0x1B, 0x30, 0x9A, 0x35, 0x0A, 0xB9, 0xC1, 0x13, - 0x7D, 0x24, 0x06, 0x6B, 0x09, 0xDA, 0x99, 0x44, - 0xBA, 0xC5, 0x4D, 0x5B, 0xB6, 0x58, 0x0D, 0x83, - 0x60, 0x47, 0xAA, 0xC7, 0x4A, 0xB7, 0x24, 0xB8, - 0x87, 0xEB, 0xF9, 0x3D, 0x4B, 0x32, 0xEC, 0xA9 - }, - { - 0xC0, 0xB6, 0x5C, 0xE5, 0xA9, 0x6F, 0xF7, 0x74, - 0xC4, 0x56, 0xCA, 0xC3, 0xB5, 0xF2, 0xC4, 0xCD, - 0x35, 0x9B, 0x4F, 0xF5, 0x3E, 0xF9, 0x3A, 0x3D, - 0xA0, 0x77, 0x8B, 0xE4, 0x90, 0x0D, 0x1E, 0x8D, - 0xA1, 0x60, 0x1E, 0x76, 0x9E, 0x8F, 0x1B, 0x02, - 0xD2, 0xA2, 0xF8, 0xC5, 0xB9, 0xFA, 0x10, 0xB4, - 0x4F, 0x1C, 0x18, 0x69, 0x85, 0x46, 0x8F, 0xEE, - 0xB0, 0x08, 0x73, 0x02, 0x83, 0xA6, 0x65, 0x7D - }, - { - 0x49, 0x00, 0xBB, 0xA6, 0xF5, 0xFB, 0x10, 0x3E, - 0xCE, 0x8E, 0xC9, 0x6A, 0xDA, 0x13, 0xA5, 0xC3, - 0xC8, 0x54, 0x88, 0xE0, 0x55, 0x51, 0xDA, 0x6B, - 0x6B, 0x33, 0xD9, 0x88, 0xE6, 0x11, 0xEC, 0x0F, - 0xE2, 0xE3, 0xC2, 0xAA, 0x48, 0xEA, 0x6A, 0xE8, - 0x98, 0x6A, 0x3A, 0x23, 0x1B, 0x22, 0x3C, 0x5D, - 0x27, 0xCE, 0xC2, 0xEA, 0xDD, 0xE9, 0x1C, 0xE0, - 0x79, 0x81, 0xEE, 0x65, 0x28, 0x62, 0xD1, 0xE4 - }, - { - 0xC7, 0xF5, 0xC3, 0x7C, 0x72, 0x85, 0xF9, 0x27, - 0xF7, 0x64, 0x43, 0x41, 0x4D, 0x43, 0x57, 0xFF, - 0x78, 0x96, 0x47, 0xD7, 0xA0, 0x05, 0xA5, 0xA7, - 0x87, 0xE0, 0x3C, 0x34, 0x6B, 0x57, 0xF4, 0x9F, - 0x21, 0xB6, 0x4F, 0xA9, 0xCF, 0x4B, 0x7E, 0x45, - 0x57, 0x3E, 0x23, 0x04, 0x90, 0x17, 0x56, 0x71, - 0x21, 0xA9, 0xC3, 0xD4, 0xB2, 0xB7, 0x3E, 0xC5, - 0xE9, 0x41, 0x35, 0x77, 0x52, 0x5D, 0xB4, 0x5A - }, - { - 0xEC, 0x70, 0x96, 0x33, 0x07, 0x36, 0xFD, 0xB2, - 0xD6, 0x4B, 0x56, 0x53, 0xE7, 0x47, 0x5D, 0xA7, - 0x46, 0xC2, 0x3A, 0x46, 0x13, 0xA8, 0x26, 0x87, - 0xA2, 0x80, 0x62, 0xD3, 0x23, 0x63, 0x64, 0x28, - 0x4A, 0xC0, 0x17, 0x20, 0xFF, 0xB4, 0x06, 0xCF, - 0xE2, 0x65, 0xC0, 0xDF, 0x62, 0x6A, 0x18, 0x8C, - 0x9E, 0x59, 0x63, 0xAC, 0xE5, 0xD3, 0xD5, 0xBB, - 0x36, 0x3E, 0x32, 0xC3, 0x8C, 0x21, 0x90, 0xA6 - }, - { - 0x82, 0xE7, 0x44, 0xC7, 0x5F, 0x46, 0x49, 0xEC, - 0x52, 0xB8, 0x07, 0x71, 0xA7, 0x7D, 0x47, 0x5A, - 0x3B, 0xC0, 0x91, 0x98, 0x95, 0x56, 0x96, 0x0E, - 0x27, 0x6A, 0x5F, 0x9E, 0xAD, 0x92, 0xA0, 0x3F, - 0x71, 0x87, 0x42, 0xCD, 0xCF, 0xEA, 0xEE, 0x5C, - 0xB8, 0x5C, 0x44, 0xAF, 0x19, 0x8A, 0xDC, 0x43, - 0xA4, 0xA4, 0x28, 0xF5, 0xF0, 0xC2, 0xDD, 0xB0, - 0xBE, 0x36, 0x05, 0x9F, 0x06, 0xD7, 0xDF, 0x73 - }, - { - 0x28, 0x34, 0xB7, 0xA7, 0x17, 0x0F, 0x1F, 0x5B, - 0x68, 0x55, 0x9A, 0xB7, 0x8C, 0x10, 0x50, 0xEC, - 0x21, 0xC9, 0x19, 0x74, 0x0B, 0x78, 0x4A, 0x90, - 0x72, 0xF6, 0xE5, 0xD6, 0x9F, 0x82, 0x8D, 0x70, - 0xC9, 0x19, 0xC5, 0x03, 0x9F, 0xB1, 0x48, 0xE3, - 0x9E, 0x2C, 0x8A, 0x52, 0x11, 0x83, 0x78, 0xB0, - 0x64, 0xCA, 0x8D, 0x50, 0x01, 0xCD, 0x10, 0xA5, - 0x47, 0x83, 0x87, 0xB9, 0x66, 0x71, 0x5E, 0xD6 - }, - { - 0x16, 0xB4, 0xAD, 0xA8, 0x83, 0xF7, 0x2F, 0x85, - 0x3B, 0xB7, 0xEF, 0x25, 0x3E, 0xFC, 0xAB, 0x0C, - 0x3E, 0x21, 0x61, 0x68, 0x7A, 0xD6, 0x15, 0x43, - 0xA0, 0xD2, 0x82, 0x4F, 0x91, 0xC1, 0xF8, 0x13, - 0x47, 0xD8, 0x6B, 0xE7, 0x09, 0xB1, 0x69, 0x96, - 0xE1, 0x7F, 0x2D, 0xD4, 0x86, 0x92, 0x7B, 0x02, - 0x88, 0xAD, 0x38, 0xD1, 0x30, 0x63, 0xC4, 0xA9, - 0x67, 0x2C, 0x39, 0x39, 0x7D, 0x37, 0x89, 0xB6 - }, - { - 0x78, 0xD0, 0x48, 0xF3, 0xA6, 0x9D, 0x8B, 0x54, - 0xAE, 0x0E, 0xD6, 0x3A, 0x57, 0x3A, 0xE3, 0x50, - 0xD8, 0x9F, 0x7C, 0x6C, 0xF1, 0xF3, 0x68, 0x89, - 0x30, 0xDE, 0x89, 0x9A, 0xFA, 0x03, 0x76, 0x97, - 0x62, 0x9B, 0x31, 0x4E, 0x5C, 0xD3, 0x03, 0xAA, - 0x62, 0xFE, 0xEA, 0x72, 0xA2, 0x5B, 0xF4, 0x2B, - 0x30, 0x4B, 0x6C, 0x6B, 0xCB, 0x27, 0xFA, 0xE2, - 0x1C, 0x16, 0xD9, 0x25, 0xE1, 0xFB, 0xDA, 0xC3 - }, - { - 0x0F, 0x74, 0x6A, 0x48, 0x74, 0x92, 0x87, 0xAD, - 0xA7, 0x7A, 0x82, 0x96, 0x1F, 0x05, 0xA4, 0xDA, - 0x4A, 0xBD, 0xB7, 0xD7, 0x7B, 0x12, 0x20, 0xF8, - 0x36, 0xD0, 0x9E, 0xC8, 0x14, 0x35, 0x9C, 0x0E, - 0xC0, 0x23, 0x9B, 0x8C, 0x7B, 0x9F, 0xF9, 0xE0, - 0x2F, 0x56, 0x9D, 0x1B, 0x30, 0x1E, 0xF6, 0x7C, - 0x46, 0x12, 0xD1, 0xDE, 0x4F, 0x73, 0x0F, 0x81, - 0xC1, 0x2C, 0x40, 0xCC, 0x06, 0x3C, 0x5C, 0xAA - }, - { - 0xF0, 0xFC, 0x85, 0x9D, 0x3B, 0xD1, 0x95, 0xFB, - 0xDC, 0x2D, 0x59, 0x1E, 0x4C, 0xDA, 0xC1, 0x51, - 0x79, 0xEC, 0x0F, 0x1D, 0xC8, 0x21, 0xC1, 0x1D, - 0xF1, 0xF0, 0xC1, 0xD2, 0x6E, 0x62, 0x60, 0xAA, - 0xA6, 0x5B, 0x79, 0xFA, 0xFA, 0xCA, 0xFD, 0x7D, - 0x3A, 0xD6, 0x1E, 0x60, 0x0F, 0x25, 0x09, 0x05, - 0xF5, 0x87, 0x8C, 0x87, 0x45, 0x28, 0x97, 0x64, - 0x7A, 0x35, 0xB9, 0x95, 0xBC, 0xAD, 0xC3, 0xA3 - }, - { - 0x26, 0x20, 0xF6, 0x87, 0xE8, 0x62, 0x5F, 0x6A, - 0x41, 0x24, 0x60, 0xB4, 0x2E, 0x2C, 0xEF, 0x67, - 0x63, 0x42, 0x08, 0xCE, 0x10, 0xA0, 0xCB, 0xD4, - 0xDF, 0xF7, 0x04, 0x4A, 0x41, 0xB7, 0x88, 0x00, - 0x77, 0xE9, 0xF8, 0xDC, 0x3B, 0x8D, 0x12, 0x16, - 0xD3, 0x37, 0x6A, 0x21, 0xE0, 0x15, 0xB5, 0x8F, - 0xB2, 0x79, 0xB5, 0x21, 0xD8, 0x3F, 0x93, 0x88, - 0xC7, 0x38, 0x2C, 0x85, 0x05, 0x59, 0x0B, 0x9B - }, - { - 0x22, 0x7E, 0x3A, 0xED, 0x8D, 0x2C, 0xB1, 0x0B, - 0x91, 0x8F, 0xCB, 0x04, 0xF9, 0xDE, 0x3E, 0x6D, - 0x0A, 0x57, 0xE0, 0x84, 0x76, 0xD9, 0x37, 0x59, - 0xCD, 0x7B, 0x2E, 0xD5, 0x4A, 0x1C, 0xBF, 0x02, - 0x39, 0xC5, 0x28, 0xFB, 0x04, 0xBB, 0xF2, 0x88, - 0x25, 0x3E, 0x60, 0x1D, 0x3B, 0xC3, 0x8B, 0x21, - 0x79, 0x4A, 0xFE, 0xF9, 0x0B, 0x17, 0x09, 0x4A, - 0x18, 0x2C, 0xAC, 0x55, 0x77, 0x45, 0xE7, 0x5F - }, - { - 0x1A, 0x92, 0x99, 0x01, 0xB0, 0x9C, 0x25, 0xF2, - 0x7D, 0x6B, 0x35, 0xBE, 0x7B, 0x2F, 0x1C, 0x47, - 0x45, 0x13, 0x1F, 0xDE, 0xBC, 0xA7, 0xF3, 0xE2, - 0x45, 0x19, 0x26, 0x72, 0x04, 0x34, 0xE0, 0xDB, - 0x6E, 0x74, 0xFD, 0x69, 0x3A, 0xD2, 0x9B, 0x77, - 0x7D, 0xC3, 0x35, 0x5C, 0x59, 0x2A, 0x36, 0x1C, - 0x48, 0x73, 0xB0, 0x11, 0x33, 0xA5, 0x7C, 0x2E, - 0x3B, 0x70, 0x75, 0xCB, 0xDB, 0x86, 0xF4, 0xFC - }, - { - 0x5F, 0xD7, 0x96, 0x8B, 0xC2, 0xFE, 0x34, 0xF2, - 0x20, 0xB5, 0xE3, 0xDC, 0x5A, 0xF9, 0x57, 0x17, - 0x42, 0xD7, 0x3B, 0x7D, 0x60, 0x81, 0x9F, 0x28, - 0x88, 0xB6, 0x29, 0x07, 0x2B, 0x96, 0xA9, 0xD8, - 0xAB, 0x2D, 0x91, 0xB8, 0x2D, 0x0A, 0x9A, 0xAB, - 0xA6, 0x1B, 0xBD, 0x39, 0x95, 0x81, 0x32, 0xFC, - 0xC4, 0x25, 0x70, 0x23, 0xD1, 0xEC, 0xA5, 0x91, - 0xB3, 0x05, 0x4E, 0x2D, 0xC8, 0x1C, 0x82, 0x00 - }, - { - 0xDF, 0xCC, 0xE8, 0xCF, 0x32, 0x87, 0x0C, 0xC6, - 0xA5, 0x03, 0xEA, 0xDA, 0xFC, 0x87, 0xFD, 0x6F, - 0x78, 0x91, 0x8B, 0x9B, 0x4D, 0x07, 0x37, 0xDB, - 0x68, 0x10, 0xBE, 0x99, 0x6B, 0x54, 0x97, 0xE7, - 0xE5, 0xCC, 0x80, 0xE3, 0x12, 0xF6, 0x1E, 0x71, - 0xFF, 0x3E, 0x96, 0x24, 0x43, 0x60, 0x73, 0x15, - 0x64, 0x03, 0xF7, 0x35, 0xF5, 0x6B, 0x0B, 0x01, - 0x84, 0x5C, 0x18, 0xF6, 0xCA, 0xF7, 0x72, 0xE6 - }, - { - 0x02, 0xF7, 0xEF, 0x3A, 0x9C, 0xE0, 0xFF, 0xF9, - 0x60, 0xF6, 0x70, 0x32, 0xB2, 0x96, 0xEF, 0xCA, - 0x30, 0x61, 0xF4, 0x93, 0x4D, 0x69, 0x07, 0x49, - 0xF2, 0xD0, 0x1C, 0x35, 0xC8, 0x1C, 0x14, 0xF3, - 0x9A, 0x67, 0xFA, 0x35, 0x0B, 0xC8, 0xA0, 0x35, - 0x9B, 0xF1, 0x72, 0x4B, 0xFF, 0xC3, 0xBC, 0xA6, - 0xD7, 0xC7, 0xBB, 0xA4, 0x79, 0x1F, 0xD5, 0x22, - 0xA3, 0xAD, 0x35, 0x3C, 0x02, 0xEC, 0x5A, 0xA8 - }, - { - 0x64, 0xBE, 0x5C, 0x6A, 0xBA, 0x65, 0xD5, 0x94, - 0x84, 0x4A, 0xE7, 0x8B, 0xB0, 0x22, 0xE5, 0xBE, - 0xBE, 0x12, 0x7F, 0xD6, 0xB6, 0xFF, 0xA5, 0xA1, - 0x37, 0x03, 0x85, 0x5A, 0xB6, 0x3B, 0x62, 0x4D, - 0xCD, 0x1A, 0x36, 0x3F, 0x99, 0x20, 0x3F, 0x63, - 0x2E, 0xC3, 0x86, 0xF3, 0xEA, 0x76, 0x7F, 0xC9, - 0x92, 0xE8, 0xED, 0x96, 0x86, 0x58, 0x6A, 0xA2, - 0x75, 0x55, 0xA8, 0x59, 0x9D, 0x5B, 0x80, 0x8F - }, - { - 0xF7, 0x85, 0x85, 0x50, 0x5C, 0x4E, 0xAA, 0x54, - 0xA8, 0xB5, 0xBE, 0x70, 0xA6, 0x1E, 0x73, 0x5E, - 0x0F, 0xF9, 0x7A, 0xF9, 0x44, 0xDD, 0xB3, 0x00, - 0x1E, 0x35, 0xD8, 0x6C, 0x4E, 0x21, 0x99, 0xD9, - 0x76, 0x10, 0x4B, 0x6A, 0xE3, 0x17, 0x50, 0xA3, - 0x6A, 0x72, 0x6E, 0xD2, 0x85, 0x06, 0x4F, 0x59, - 0x81, 0xB5, 0x03, 0x88, 0x9F, 0xEF, 0x82, 0x2F, - 0xCD, 0xC2, 0x89, 0x8D, 0xDD, 0xB7, 0x88, 0x9A - }, - { - 0xE4, 0xB5, 0x56, 0x60, 0x33, 0x86, 0x95, 0x72, - 0xED, 0xFD, 0x87, 0x47, 0x9A, 0x5B, 0xB7, 0x3C, - 0x80, 0xE8, 0x75, 0x9B, 0x91, 0x23, 0x28, 0x79, - 0xD9, 0x6B, 0x1D, 0xDA, 0x36, 0xC0, 0x12, 0x07, - 0x6E, 0xE5, 0xA2, 0xED, 0x7A, 0xE2, 0xDE, 0x63, - 0xEF, 0x84, 0x06, 0xA0, 0x6A, 0xEA, 0x82, 0xC1, - 0x88, 0x03, 0x1B, 0x56, 0x0B, 0xEA, 0xFB, 0x58, - 0x3F, 0xB3, 0xDE, 0x9E, 0x57, 0x95, 0x2A, 0x7E - }, - { - 0xE1, 0xB3, 0xE7, 0xED, 0x86, 0x7F, 0x6C, 0x94, - 0x84, 0xA2, 0xA9, 0x7F, 0x77, 0x15, 0xF2, 0x5E, - 0x25, 0x29, 0x4E, 0x99, 0x2E, 0x41, 0xF6, 0xA7, - 0xC1, 0x61, 0xFF, 0xC2, 0xAD, 0xC6, 0xDA, 0xAE, - 0xB7, 0x11, 0x31, 0x02, 0xD5, 0xE6, 0x09, 0x02, - 0x87, 0xFE, 0x6A, 0xD9, 0x4C, 0xE5, 0xD6, 0xB7, - 0x39, 0xC6, 0xCA, 0x24, 0x0B, 0x05, 0xC7, 0x6F, - 0xB7, 0x3F, 0x25, 0xDD, 0x02, 0x4B, 0xF9, 0x35 - }, - { - 0x85, 0xFD, 0x08, 0x5F, 0xDC, 0x12, 0xA0, 0x80, - 0x98, 0x3D, 0xF0, 0x7B, 0xD7, 0x01, 0x2B, 0x0D, - 0x40, 0x2A, 0x0F, 0x40, 0x43, 0xFC, 0xB2, 0x77, - 0x5A, 0xDF, 0x0B, 0xAD, 0x17, 0x4F, 0x9B, 0x08, - 0xD1, 0x67, 0x6E, 0x47, 0x69, 0x85, 0x78, 0x5C, - 0x0A, 0x5D, 0xCC, 0x41, 0xDB, 0xFF, 0x6D, 0x95, - 0xEF, 0x4D, 0x66, 0xA3, 0xFB, 0xDC, 0x4A, 0x74, - 0xB8, 0x2B, 0xA5, 0x2D, 0xA0, 0x51, 0x2B, 0x74 - }, - { - 0xAE, 0xD8, 0xFA, 0x76, 0x4B, 0x0F, 0xBF, 0xF8, - 0x21, 0xE0, 0x52, 0x33, 0xD2, 0xF7, 0xB0, 0x90, - 0x0E, 0xC4, 0x4D, 0x82, 0x6F, 0x95, 0xE9, 0x3C, - 0x34, 0x3C, 0x1B, 0xC3, 0xBA, 0x5A, 0x24, 0x37, - 0x4B, 0x1D, 0x61, 0x6E, 0x7E, 0x7A, 0xBA, 0x45, - 0x3A, 0x0A, 0xDA, 0x5E, 0x4F, 0xAB, 0x53, 0x82, - 0x40, 0x9E, 0x0D, 0x42, 0xCE, 0x9C, 0x2B, 0xC7, - 0xFB, 0x39, 0xA9, 0x9C, 0x34, 0x0C, 0x20, 0xF0 - }, - { - 0x7B, 0xA3, 0xB2, 0xE2, 0x97, 0x23, 0x35, 0x22, - 0xEE, 0xB3, 0x43, 0xBD, 0x3E, 0xBC, 0xFD, 0x83, - 0x5A, 0x04, 0x00, 0x77, 0x35, 0xE8, 0x7F, 0x0C, - 0xA3, 0x00, 0xCB, 0xEE, 0x6D, 0x41, 0x65, 0x65, - 0x16, 0x21, 0x71, 0x58, 0x1E, 0x40, 0x20, 0xFF, - 0x4C, 0xF1, 0x76, 0x45, 0x0F, 0x12, 0x91, 0xEA, - 0x22, 0x85, 0xCB, 0x9E, 0xBF, 0xFE, 0x4C, 0x56, - 0x66, 0x06, 0x27, 0x68, 0x51, 0x45, 0x05, 0x1C - }, - { - 0xDE, 0x74, 0x8B, 0xCF, 0x89, 0xEC, 0x88, 0x08, - 0x47, 0x21, 0xE1, 0x6B, 0x85, 0xF3, 0x0A, 0xDB, - 0x1A, 0x61, 0x34, 0xD6, 0x64, 0xB5, 0x84, 0x35, - 0x69, 0xBA, 0xBC, 0x5B, 0xBD, 0x1A, 0x15, 0xCA, - 0x9B, 0x61, 0x80, 0x3C, 0x90, 0x1A, 0x4F, 0xEF, - 0x32, 0x96, 0x5A, 0x17, 0x49, 0xC9, 0xF3, 0xA4, - 0xE2, 0x43, 0xE1, 0x73, 0x93, 0x9D, 0xC5, 0xA8, - 0xDC, 0x49, 0x5C, 0x67, 0x1A, 0xB5, 0x21, 0x45 - }, - { - 0xAA, 0xF4, 0xD2, 0xBD, 0xF2, 0x00, 0xA9, 0x19, - 0x70, 0x6D, 0x98, 0x42, 0xDC, 0xE1, 0x6C, 0x98, - 0x14, 0x0D, 0x34, 0xBC, 0x43, 0x3D, 0xF3, 0x20, - 0xAB, 0xA9, 0xBD, 0x42, 0x9E, 0x54, 0x9A, 0xA7, - 0xA3, 0x39, 0x76, 0x52, 0xA4, 0xD7, 0x68, 0x27, - 0x77, 0x86, 0xCF, 0x99, 0x3C, 0xDE, 0x23, 0x38, - 0x67, 0x3E, 0xD2, 0xE6, 0xB6, 0x6C, 0x96, 0x1F, - 0xEF, 0xB8, 0x2C, 0xD2, 0x0C, 0x93, 0x33, 0x8F - }, - { - 0xC4, 0x08, 0x21, 0x89, 0x68, 0xB7, 0x88, 0xBF, - 0x86, 0x4F, 0x09, 0x97, 0xE6, 0xBC, 0x4C, 0x3D, - 0xBA, 0x68, 0xB2, 0x76, 0xE2, 0x12, 0x5A, 0x48, - 0x43, 0x29, 0x60, 0x52, 0xFF, 0x93, 0xBF, 0x57, - 0x67, 0xB8, 0xCD, 0xCE, 0x71, 0x31, 0xF0, 0x87, - 0x64, 0x30, 0xC1, 0x16, 0x5F, 0xEC, 0x6C, 0x4F, - 0x47, 0xAD, 0xAA, 0x4F, 0xD8, 0xBC, 0xFA, 0xCE, - 0xF4, 0x63, 0xB5, 0xD3, 0xD0, 0xFA, 0x61, 0xA0 - }, - { - 0x76, 0xD2, 0xD8, 0x19, 0xC9, 0x2B, 0xCE, 0x55, - 0xFA, 0x8E, 0x09, 0x2A, 0xB1, 0xBF, 0x9B, 0x9E, - 0xAB, 0x23, 0x7A, 0x25, 0x26, 0x79, 0x86, 0xCA, - 0xCF, 0x2B, 0x8E, 0xE1, 0x4D, 0x21, 0x4D, 0x73, - 0x0D, 0xC9, 0xA5, 0xAA, 0x2D, 0x7B, 0x59, 0x6E, - 0x86, 0xA1, 0xFD, 0x8F, 0xA0, 0x80, 0x4C, 0x77, - 0x40, 0x2D, 0x2F, 0xCD, 0x45, 0x08, 0x36, 0x88, - 0xB2, 0x18, 0xB1, 0xCD, 0xFA, 0x0D, 0xCB, 0xCB - }, - { - 0x72, 0x06, 0x5E, 0xE4, 0xDD, 0x91, 0xC2, 0xD8, - 0x50, 0x9F, 0xA1, 0xFC, 0x28, 0xA3, 0x7C, 0x7F, - 0xC9, 0xFA, 0x7D, 0x5B, 0x3F, 0x8A, 0xD3, 0xD0, - 0xD7, 0xA2, 0x56, 0x26, 0xB5, 0x7B, 0x1B, 0x44, - 0x78, 0x8D, 0x4C, 0xAF, 0x80, 0x62, 0x90, 0x42, - 0x5F, 0x98, 0x90, 0xA3, 0xA2, 0xA3, 0x5A, 0x90, - 0x5A, 0xB4, 0xB3, 0x7A, 0xCF, 0xD0, 0xDA, 0x6E, - 0x45, 0x17, 0xB2, 0x52, 0x5C, 0x96, 0x51, 0xE4 - }, - { - 0x64, 0x47, 0x5D, 0xFE, 0x76, 0x00, 0xD7, 0x17, - 0x1B, 0xEA, 0x0B, 0x39, 0x4E, 0x27, 0xC9, 0xB0, - 0x0D, 0x8E, 0x74, 0xDD, 0x1E, 0x41, 0x6A, 0x79, - 0x47, 0x36, 0x82, 0xAD, 0x3D, 0xFD, 0xBB, 0x70, - 0x66, 0x31, 0x55, 0x80, 0x55, 0xCF, 0xC8, 0xA4, - 0x0E, 0x07, 0xBD, 0x01, 0x5A, 0x45, 0x40, 0xDC, - 0xDE, 0xA1, 0x58, 0x83, 0xCB, 0xBF, 0x31, 0x41, - 0x2D, 0xF1, 0xDE, 0x1C, 0xD4, 0x15, 0x2B, 0x91 - }, - { - 0x12, 0xCD, 0x16, 0x74, 0xA4, 0x48, 0x8A, 0x5D, - 0x7C, 0x2B, 0x31, 0x60, 0xD2, 0xE2, 0xC4, 0xB5, - 0x83, 0x71, 0xBE, 0xDA, 0xD7, 0x93, 0x41, 0x8D, - 0x6F, 0x19, 0xC6, 0xEE, 0x38, 0x5D, 0x70, 0xB3, - 0xE0, 0x67, 0x39, 0x36, 0x9D, 0x4D, 0xF9, 0x10, - 0xED, 0xB0, 0xB0, 0xA5, 0x4C, 0xBF, 0xF4, 0x3D, - 0x54, 0x54, 0x4C, 0xD3, 0x7A, 0xB3, 0xA0, 0x6C, - 0xFA, 0x0A, 0x3D, 0xDA, 0xC8, 0xB6, 0x6C, 0x89 - }, - { - 0x60, 0x75, 0x69, 0x66, 0x47, 0x9D, 0xED, 0xC6, - 0xDD, 0x4B, 0xCF, 0xF8, 0xEA, 0x7D, 0x1D, 0x4C, - 0xE4, 0xD4, 0xAF, 0x2E, 0x7B, 0x09, 0x7E, 0x32, - 0xE3, 0x76, 0x35, 0x18, 0x44, 0x11, 0x47, 0xCC, - 0x12, 0xB3, 0xC0, 0xEE, 0x6D, 0x2E, 0xCA, 0xBF, - 0x11, 0x98, 0xCE, 0xC9, 0x2E, 0x86, 0xA3, 0x61, - 0x6F, 0xBA, 0x4F, 0x4E, 0x87, 0x2F, 0x58, 0x25, - 0x33, 0x0A, 0xDB, 0xB4, 0xC1, 0xDE, 0xE4, 0x44 - }, - { - 0xA7, 0x80, 0x3B, 0xCB, 0x71, 0xBC, 0x1D, 0x0F, - 0x43, 0x83, 0xDD, 0xE1, 0xE0, 0x61, 0x2E, 0x04, - 0xF8, 0x72, 0xB7, 0x15, 0xAD, 0x30, 0x81, 0x5C, - 0x22, 0x49, 0xCF, 0x34, 0xAB, 0xB8, 0xB0, 0x24, - 0x91, 0x5C, 0xB2, 0xFC, 0x9F, 0x4E, 0x7C, 0xC4, - 0xC8, 0xCF, 0xD4, 0x5B, 0xE2, 0xD5, 0xA9, 0x1E, - 0xAB, 0x09, 0x41, 0xC7, 0xD2, 0x70, 0xE2, 0xDA, - 0x4C, 0xA4, 0xA9, 0xF7, 0xAC, 0x68, 0x66, 0x3A - }, - { - 0xB8, 0x4E, 0xF6, 0xA7, 0x22, 0x9A, 0x34, 0xA7, - 0x50, 0xD9, 0xA9, 0x8E, 0xE2, 0x52, 0x98, 0x71, - 0x81, 0x6B, 0x87, 0xFB, 0xE3, 0xBC, 0x45, 0xB4, - 0x5F, 0xA5, 0xAE, 0x82, 0xD5, 0x14, 0x15, 0x40, - 0x21, 0x11, 0x65, 0xC3, 0xC5, 0xD7, 0xA7, 0x47, - 0x6B, 0xA5, 0xA4, 0xAA, 0x06, 0xD6, 0x64, 0x76, - 0xF0, 0xD9, 0xDC, 0x49, 0xA3, 0xF1, 0xEE, 0x72, - 0xC3, 0xAC, 0xAB, 0xD4, 0x98, 0x96, 0x74, 0x14 - }, - { - 0xFA, 0xE4, 0xB6, 0xD8, 0xEF, 0xC3, 0xF8, 0xC8, - 0xE6, 0x4D, 0x00, 0x1D, 0xAB, 0xEC, 0x3A, 0x21, - 0xF5, 0x44, 0xE8, 0x27, 0x14, 0x74, 0x52, 0x51, - 0xB2, 0xB4, 0xB3, 0x93, 0xF2, 0xF4, 0x3E, 0x0D, - 0xA3, 0xD4, 0x03, 0xC6, 0x4D, 0xB9, 0x5A, 0x2C, - 0xB6, 0xE2, 0x3E, 0xBB, 0x7B, 0x9E, 0x94, 0xCD, - 0xD5, 0xDD, 0xAC, 0x54, 0xF0, 0x7C, 0x4A, 0x61, - 0xBD, 0x3C, 0xB1, 0x0A, 0xA6, 0xF9, 0x3B, 0x49 - }, - { - 0x34, 0xF7, 0x28, 0x66, 0x05, 0xA1, 0x22, 0x36, - 0x95, 0x40, 0x14, 0x1D, 0xED, 0x79, 0xB8, 0x95, - 0x72, 0x55, 0xDA, 0x2D, 0x41, 0x55, 0xAB, 0xBF, - 0x5A, 0x8D, 0xBB, 0x89, 0xC8, 0xEB, 0x7E, 0xDE, - 0x8E, 0xEE, 0xF1, 0xDA, 0xA4, 0x6D, 0xC2, 0x9D, - 0x75, 0x1D, 0x04, 0x5D, 0xC3, 0xB1, 0xD6, 0x58, - 0xBB, 0x64, 0xB8, 0x0F, 0xF8, 0x58, 0x9E, 0xDD, - 0xB3, 0x82, 0x4B, 0x13, 0xDA, 0x23, 0x5A, 0x6B - }, - { - 0x3B, 0x3B, 0x48, 0x43, 0x4B, 0xE2, 0x7B, 0x9E, - 0xAB, 0xAB, 0xBA, 0x43, 0xBF, 0x6B, 0x35, 0xF1, - 0x4B, 0x30, 0xF6, 0xA8, 0x8D, 0xC2, 0xE7, 0x50, - 0xC3, 0x58, 0x47, 0x0D, 0x6B, 0x3A, 0xA3, 0xC1, - 0x8E, 0x47, 0xDB, 0x40, 0x17, 0xFA, 0x55, 0x10, - 0x6D, 0x82, 0x52, 0xF0, 0x16, 0x37, 0x1A, 0x00, - 0xF5, 0xF8, 0xB0, 0x70, 0xB7, 0x4B, 0xA5, 0xF2, - 0x3C, 0xFF, 0xC5, 0x51, 0x1C, 0x9F, 0x09, 0xF0 - }, - { - 0xBA, 0x28, 0x9E, 0xBD, 0x65, 0x62, 0xC4, 0x8C, - 0x3E, 0x10, 0xA8, 0xAD, 0x6C, 0xE0, 0x2E, 0x73, - 0x43, 0x3D, 0x1E, 0x93, 0xD7, 0xC9, 0x27, 0x9D, - 0x4D, 0x60, 0xA7, 0xE8, 0x79, 0xEE, 0x11, 0xF4, - 0x41, 0xA0, 0x00, 0xF4, 0x8E, 0xD9, 0xF7, 0xC4, - 0xED, 0x87, 0xA4, 0x51, 0x36, 0xD7, 0xDC, 0xCD, - 0xCA, 0x48, 0x21, 0x09, 0xC7, 0x8A, 0x51, 0x06, - 0x2B, 0x3B, 0xA4, 0x04, 0x4A, 0xDA, 0x24, 0x69 - }, - { - 0x02, 0x29, 0x39, 0xE2, 0x38, 0x6C, 0x5A, 0x37, - 0x04, 0x98, 0x56, 0xC8, 0x50, 0xA2, 0xBB, 0x10, - 0xA1, 0x3D, 0xFE, 0xA4, 0x21, 0x2B, 0x4C, 0x73, - 0x2A, 0x88, 0x40, 0xA9, 0xFF, 0xA5, 0xFA, 0xF5, - 0x48, 0x75, 0xC5, 0x44, 0x88, 0x16, 0xB2, 0x78, - 0x5A, 0x00, 0x7D, 0xA8, 0xA8, 0xD2, 0xBC, 0x7D, - 0x71, 0xA5, 0x4E, 0x4E, 0x65, 0x71, 0xF1, 0x0B, - 0x60, 0x0C, 0xBD, 0xB2, 0x5D, 0x13, 0xED, 0xE3 - }, - { - 0xE6, 0xFE, 0xC1, 0x9D, 0x89, 0xCE, 0x87, 0x17, - 0xB1, 0xA0, 0x87, 0x02, 0x46, 0x70, 0xFE, 0x02, - 0x6F, 0x6C, 0x7C, 0xBD, 0xA1, 0x1C, 0xAE, 0xF9, - 0x59, 0xBB, 0x2D, 0x35, 0x1B, 0xF8, 0x56, 0xF8, - 0x05, 0x5D, 0x1C, 0x0E, 0xBD, 0xAA, 0xA9, 0xD1, - 0xB1, 0x78, 0x86, 0xFC, 0x2C, 0x56, 0x2B, 0x5E, - 0x99, 0x64, 0x2F, 0xC0, 0x64, 0x71, 0x0C, 0x0D, - 0x34, 0x88, 0xA0, 0x2B, 0x5E, 0xD7, 0xF6, 0xFD - }, - { - 0x94, 0xC9, 0x6F, 0x02, 0xA8, 0xF5, 0x76, 0xAC, - 0xA3, 0x2B, 0xA6, 0x1C, 0x2B, 0x20, 0x6F, 0x90, - 0x72, 0x85, 0xD9, 0x29, 0x9B, 0x83, 0xAC, 0x17, - 0x5C, 0x20, 0x9A, 0x8D, 0x43, 0xD5, 0x3B, 0xFE, - 0x68, 0x3D, 0xD1, 0xD8, 0x3E, 0x75, 0x49, 0xCB, - 0x90, 0x6C, 0x28, 0xF5, 0x9A, 0xB7, 0xC4, 0x6F, - 0x87, 0x51, 0x36, 0x6A, 0x28, 0xC3, 0x9D, 0xD5, - 0xFE, 0x26, 0x93, 0xC9, 0x01, 0x96, 0x66, 0xC8 - }, - { - 0x31, 0xA0, 0xCD, 0x21, 0x5E, 0xBD, 0x2C, 0xB6, - 0x1D, 0xE5, 0xB9, 0xED, 0xC9, 0x1E, 0x61, 0x95, - 0xE3, 0x1C, 0x59, 0xA5, 0x64, 0x8D, 0x5C, 0x9F, - 0x73, 0x7E, 0x12, 0x5B, 0x26, 0x05, 0x70, 0x8F, - 0x2E, 0x32, 0x5A, 0xB3, 0x38, 0x1C, 0x8D, 0xCE, - 0x1A, 0x3E, 0x95, 0x88, 0x86, 0xF1, 0xEC, 0xDC, - 0x60, 0x31, 0x8F, 0x88, 0x2C, 0xFE, 0x20, 0xA2, - 0x41, 0x91, 0x35, 0x2E, 0x61, 0x7B, 0x0F, 0x21 - }, - { - 0x91, 0xAB, 0x50, 0x4A, 0x52, 0x2D, 0xCE, 0x78, - 0x77, 0x9F, 0x4C, 0x6C, 0x6B, 0xA2, 0xE6, 0xB6, - 0xDB, 0x55, 0x65, 0xC7, 0x6D, 0x3E, 0x7E, 0x7C, - 0x92, 0x0C, 0xAF, 0x7F, 0x75, 0x7E, 0xF9, 0xDB, - 0x7C, 0x8F, 0xCF, 0x10, 0xE5, 0x7F, 0x03, 0x37, - 0x9E, 0xA9, 0xBF, 0x75, 0xEB, 0x59, 0x89, 0x5D, - 0x96, 0xE1, 0x49, 0x80, 0x0B, 0x6A, 0xAE, 0x01, - 0xDB, 0x77, 0x8B, 0xB9, 0x0A, 0xFB, 0xC9, 0x89 - }, - { - 0xD8, 0x5C, 0xAB, 0xC6, 0xBD, 0x5B, 0x1A, 0x01, - 0xA5, 0xAF, 0xD8, 0xC6, 0x73, 0x47, 0x40, 0xDA, - 0x9F, 0xD1, 0xC1, 0xAC, 0xC6, 0xDB, 0x29, 0xBF, - 0xC8, 0xA2, 0xE5, 0xB6, 0x68, 0xB0, 0x28, 0xB6, - 0xB3, 0x15, 0x4B, 0xFB, 0x87, 0x03, 0xFA, 0x31, - 0x80, 0x25, 0x1D, 0x58, 0x9A, 0xD3, 0x80, 0x40, - 0xCE, 0xB7, 0x07, 0xC4, 0xBA, 0xD1, 0xB5, 0x34, - 0x3C, 0xB4, 0x26, 0xB6, 0x1E, 0xAA, 0x49, 0xC1 - }, - { - 0xD6, 0x2E, 0xFB, 0xEC, 0x2C, 0xA9, 0xC1, 0xF8, - 0xBD, 0x66, 0xCE, 0x8B, 0x3F, 0x6A, 0x89, 0x8C, - 0xB3, 0xF7, 0x56, 0x6B, 0xA6, 0x56, 0x8C, 0x61, - 0x8A, 0xD1, 0xFE, 0xB2, 0xB6, 0x5B, 0x76, 0xC3, - 0xCE, 0x1D, 0xD2, 0x0F, 0x73, 0x95, 0x37, 0x2F, - 0xAF, 0x28, 0x42, 0x7F, 0x61, 0xC9, 0x27, 0x80, - 0x49, 0xCF, 0x01, 0x40, 0xDF, 0x43, 0x4F, 0x56, - 0x33, 0x04, 0x8C, 0x86, 0xB8, 0x1E, 0x03, 0x99 - }, - { - 0x7C, 0x8F, 0xDC, 0x61, 0x75, 0x43, 0x9E, 0x2C, - 0x3D, 0xB1, 0x5B, 0xAF, 0xA7, 0xFB, 0x06, 0x14, - 0x3A, 0x6A, 0x23, 0xBC, 0x90, 0xF4, 0x49, 0xE7, - 0x9D, 0xEE, 0xF7, 0x3C, 0x3D, 0x49, 0x2A, 0x67, - 0x17, 0x15, 0xC1, 0x93, 0xB6, 0xFE, 0xA9, 0xF0, - 0x36, 0x05, 0x0B, 0x94, 0x60, 0x69, 0x85, 0x6B, - 0x89, 0x7E, 0x08, 0xC0, 0x07, 0x68, 0xF5, 0xEE, - 0x5D, 0xDC, 0xF7, 0x0B, 0x7C, 0xD6, 0xD0, 0xE0 - }, - { - 0x58, 0x60, 0x2E, 0xE7, 0x46, 0x8E, 0x6B, 0xC9, - 0xDF, 0x21, 0xBD, 0x51, 0xB2, 0x3C, 0x00, 0x5F, - 0x72, 0xD6, 0xCB, 0x01, 0x3F, 0x0A, 0x1B, 0x48, - 0xCB, 0xEC, 0x5E, 0xCA, 0x29, 0x92, 0x99, 0xF9, - 0x7F, 0x09, 0xF5, 0x4A, 0x9A, 0x01, 0x48, 0x3E, - 0xAE, 0xB3, 0x15, 0xA6, 0x47, 0x8B, 0xAD, 0x37, - 0xBA, 0x47, 0xCA, 0x13, 0x47, 0xC7, 0xC8, 0xFC, - 0x9E, 0x66, 0x95, 0x59, 0x2C, 0x91, 0xD7, 0x23 - }, - { - 0x27, 0xF5, 0xB7, 0x9E, 0xD2, 0x56, 0xB0, 0x50, - 0x99, 0x3D, 0x79, 0x34, 0x96, 0xED, 0xF4, 0x80, - 0x7C, 0x1D, 0x85, 0xA7, 0xB0, 0xA6, 0x7C, 0x9C, - 0x4F, 0xA9, 0x98, 0x60, 0x75, 0x0B, 0x0A, 0xE6, - 0x69, 0x89, 0x67, 0x0A, 0x8F, 0xFD, 0x78, 0x56, - 0xD7, 0xCE, 0x41, 0x15, 0x99, 0xE5, 0x8C, 0x4D, - 0x77, 0xB2, 0x32, 0xA6, 0x2B, 0xEF, 0x64, 0xD1, - 0x52, 0x75, 0xBE, 0x46, 0xA6, 0x82, 0x35, 0xFF - }, - { - 0x39, 0x57, 0xA9, 0x76, 0xB9, 0xF1, 0x88, 0x7B, - 0xF0, 0x04, 0xA8, 0xDC, 0xA9, 0x42, 0xC9, 0x2D, - 0x2B, 0x37, 0xEA, 0x52, 0x60, 0x0F, 0x25, 0xE0, - 0xC9, 0xBC, 0x57, 0x07, 0xD0, 0x27, 0x9C, 0x00, - 0xC6, 0xE8, 0x5A, 0x83, 0x9B, 0x0D, 0x2D, 0x8E, - 0xB5, 0x9C, 0x51, 0xD9, 0x47, 0x88, 0xEB, 0xE6, - 0x24, 0x74, 0xA7, 0x91, 0xCA, 0xDF, 0x52, 0xCC, - 0xCF, 0x20, 0xF5, 0x07, 0x0B, 0x65, 0x73, 0xFC - }, - { - 0xEA, 0xA2, 0x37, 0x6D, 0x55, 0x38, 0x0B, 0xF7, - 0x72, 0xEC, 0xCA, 0x9C, 0xB0, 0xAA, 0x46, 0x68, - 0xC9, 0x5C, 0x70, 0x71, 0x62, 0xFA, 0x86, 0xD5, - 0x18, 0xC8, 0xCE, 0x0C, 0xA9, 0xBF, 0x73, 0x62, - 0xB9, 0xF2, 0xA0, 0xAD, 0xC3, 0xFF, 0x59, 0x92, - 0x2D, 0xF9, 0x21, 0xB9, 0x45, 0x67, 0xE8, 0x1E, - 0x45, 0x2F, 0x6C, 0x1A, 0x07, 0xFC, 0x81, 0x7C, - 0xEB, 0xE9, 0x96, 0x04, 0xB3, 0x50, 0x5D, 0x38 - }, - { - 0xC1, 0xE2, 0xC7, 0x8B, 0x6B, 0x27, 0x34, 0xE2, - 0x48, 0x0E, 0xC5, 0x50, 0x43, 0x4C, 0xB5, 0xD6, - 0x13, 0x11, 0x1A, 0xDC, 0xC2, 0x1D, 0x47, 0x55, - 0x45, 0xC3, 0xB1, 0xB7, 0xE6, 0xFF, 0x12, 0x44, - 0x44, 0x76, 0xE5, 0xC0, 0x55, 0x13, 0x2E, 0x22, - 0x29, 0xDC, 0x0F, 0x80, 0x70, 0x44, 0xBB, 0x91, - 0x9B, 0x1A, 0x56, 0x62, 0xDD, 0x38, 0xA9, 0xEE, - 0x65, 0xE2, 0x43, 0xA3, 0x91, 0x1A, 0xED, 0x1A - }, - { - 0x8A, 0xB4, 0x87, 0x13, 0x38, 0x9D, 0xD0, 0xFC, - 0xF9, 0xF9, 0x65, 0xD3, 0xCE, 0x66, 0xB1, 0xE5, - 0x59, 0xA1, 0xF8, 0xC5, 0x87, 0x41, 0xD6, 0x76, - 0x83, 0xCD, 0x97, 0x13, 0x54, 0xF4, 0x52, 0xE6, - 0x2D, 0x02, 0x07, 0xA6, 0x5E, 0x43, 0x6C, 0x5D, - 0x5D, 0x8F, 0x8E, 0xE7, 0x1C, 0x6A, 0xBF, 0xE5, - 0x0E, 0x66, 0x90, 0x04, 0xC3, 0x02, 0xB3, 0x1A, - 0x7E, 0xA8, 0x31, 0x1D, 0x4A, 0x91, 0x60, 0x51 - }, - { - 0x24, 0xCE, 0x0A, 0xDD, 0xAA, 0x4C, 0x65, 0x03, - 0x8B, 0xD1, 0xB1, 0xC0, 0xF1, 0x45, 0x2A, 0x0B, - 0x12, 0x87, 0x77, 0xAA, 0xBC, 0x94, 0xA2, 0x9D, - 0xF2, 0xFD, 0x6C, 0x7E, 0x2F, 0x85, 0xF8, 0xAB, - 0x9A, 0xC7, 0xEF, 0xF5, 0x16, 0xB0, 0xE0, 0xA8, - 0x25, 0xC8, 0x4A, 0x24, 0xCF, 0xE4, 0x92, 0xEA, - 0xAD, 0x0A, 0x63, 0x08, 0xE4, 0x6D, 0xD4, 0x2F, - 0xE8, 0x33, 0x3A, 0xB9, 0x71, 0xBB, 0x30, 0xCA - }, - { - 0x51, 0x54, 0xF9, 0x29, 0xEE, 0x03, 0x04, 0x5B, - 0x6B, 0x0C, 0x00, 0x04, 0xFA, 0x77, 0x8E, 0xDE, - 0xE1, 0xD1, 0x39, 0x89, 0x32, 0x67, 0xCC, 0x84, - 0x82, 0x5A, 0xD7, 0xB3, 0x6C, 0x63, 0xDE, 0x32, - 0x79, 0x8E, 0x4A, 0x16, 0x6D, 0x24, 0x68, 0x65, - 0x61, 0x35, 0x4F, 0x63, 0xB0, 0x07, 0x09, 0xA1, - 0x36, 0x4B, 0x3C, 0x24, 0x1D, 0xE3, 0xFE, 0xBF, - 0x07, 0x54, 0x04, 0x58, 0x97, 0x46, 0x7C, 0xD4 - }, - { - 0xE7, 0x4E, 0x90, 0x79, 0x20, 0xFD, 0x87, 0xBD, - 0x5A, 0xD6, 0x36, 0xDD, 0x11, 0x08, 0x5E, 0x50, - 0xEE, 0x70, 0x45, 0x9C, 0x44, 0x3E, 0x1C, 0xE5, - 0x80, 0x9A, 0xF2, 0xBC, 0x2E, 0xBA, 0x39, 0xF9, - 0xE6, 0xD7, 0x12, 0x8E, 0x0E, 0x37, 0x12, 0xC3, - 0x16, 0xDA, 0x06, 0xF4, 0x70, 0x5D, 0x78, 0xA4, - 0x83, 0x8E, 0x28, 0x12, 0x1D, 0x43, 0x44, 0xA2, - 0xC7, 0x9C, 0x5E, 0x0D, 0xB3, 0x07, 0xA6, 0x77 - }, - { - 0xBF, 0x91, 0xA2, 0x23, 0x34, 0xBA, 0xC2, 0x0F, - 0x3F, 0xD8, 0x06, 0x63, 0xB3, 0xCD, 0x06, 0xC4, - 0xE8, 0x80, 0x2F, 0x30, 0xE6, 0xB5, 0x9F, 0x90, - 0xD3, 0x03, 0x5C, 0xC9, 0x79, 0x8A, 0x21, 0x7E, - 0xD5, 0xA3, 0x1A, 0xBB, 0xDA, 0x7F, 0xA6, 0x84, - 0x28, 0x27, 0xBD, 0xF2, 0xA7, 0xA1, 0xC2, 0x1F, - 0x6F, 0xCF, 0xCC, 0xBB, 0x54, 0xC6, 0xC5, 0x29, - 0x26, 0xF3, 0x2D, 0xA8, 0x16, 0x26, 0x9B, 0xE1 - }, - { - 0xD9, 0xD5, 0xC7, 0x4B, 0xE5, 0x12, 0x1B, 0x0B, - 0xD7, 0x42, 0xF2, 0x6B, 0xFF, 0xB8, 0xC8, 0x9F, - 0x89, 0x17, 0x1F, 0x3F, 0x93, 0x49, 0x13, 0x49, - 0x2B, 0x09, 0x03, 0xC2, 0x71, 0xBB, 0xE2, 0xB3, - 0x39, 0x5E, 0xF2, 0x59, 0x66, 0x9B, 0xEF, 0x43, - 0xB5, 0x7F, 0x7F, 0xCC, 0x30, 0x27, 0xDB, 0x01, - 0x82, 0x3F, 0x6B, 0xAE, 0xE6, 0x6E, 0x4F, 0x9F, - 0xEA, 0xD4, 0xD6, 0x72, 0x6C, 0x74, 0x1F, 0xCE - }, - { - 0x50, 0xC8, 0xB8, 0xCF, 0x34, 0xCD, 0x87, 0x9F, - 0x80, 0xE2, 0xFA, 0xAB, 0x32, 0x30, 0xB0, 0xC0, - 0xE1, 0xCC, 0x3E, 0x9D, 0xCA, 0xDE, 0xB1, 0xB9, - 0xD9, 0x7A, 0xB9, 0x23, 0x41, 0x5D, 0xD9, 0xA1, - 0xFE, 0x38, 0xAD, 0xDD, 0x5C, 0x11, 0x75, 0x6C, - 0x67, 0x99, 0x0B, 0x25, 0x6E, 0x95, 0xAD, 0x6D, - 0x8F, 0x9F, 0xED, 0xCE, 0x10, 0xBF, 0x1C, 0x90, - 0x67, 0x9C, 0xDE, 0x0E, 0xCF, 0x1B, 0xE3, 0x47 - }, - { - 0x0A, 0x38, 0x6E, 0x7C, 0xD5, 0xDD, 0x9B, 0x77, - 0xA0, 0x35, 0xE0, 0x9F, 0xE6, 0xFE, 0xE2, 0xC8, - 0xCE, 0x61, 0xB5, 0x38, 0x3C, 0x87, 0xEA, 0x43, - 0x20, 0x50, 0x59, 0xC5, 0xE4, 0xCD, 0x4F, 0x44, - 0x08, 0x31, 0x9B, 0xB0, 0xA8, 0x23, 0x60, 0xF6, - 0xA5, 0x8E, 0x6C, 0x9C, 0xE3, 0xF4, 0x87, 0xC4, - 0x46, 0x06, 0x3B, 0xF8, 0x13, 0xBC, 0x6B, 0xA5, - 0x35, 0xE1, 0x7F, 0xC1, 0x82, 0x6C, 0xFC, 0x91 - }, - { - 0x1F, 0x14, 0x59, 0xCB, 0x6B, 0x61, 0xCB, 0xAC, - 0x5F, 0x0E, 0xFE, 0x8F, 0xC4, 0x87, 0x53, 0x8F, - 0x42, 0x54, 0x89, 0x87, 0xFC, 0xD5, 0x62, 0x21, - 0xCF, 0xA7, 0xBE, 0xB2, 0x25, 0x04, 0x76, 0x9E, - 0x79, 0x2C, 0x45, 0xAD, 0xFB, 0x1D, 0x6B, 0x3D, - 0x60, 0xD7, 0xB7, 0x49, 0xC8, 0xA7, 0x5B, 0x0B, - 0xDF, 0x14, 0xE8, 0xEA, 0x72, 0x1B, 0x95, 0xDC, - 0xA5, 0x38, 0xCA, 0x6E, 0x25, 0x71, 0x12, 0x09 - }, - { - 0xE5, 0x8B, 0x38, 0x36, 0xB7, 0xD8, 0xFE, 0xDB, - 0xB5, 0x0C, 0xA5, 0x72, 0x5C, 0x65, 0x71, 0xE7, - 0x4C, 0x07, 0x85, 0xE9, 0x78, 0x21, 0xDA, 0xB8, - 0xB6, 0x29, 0x8C, 0x10, 0xE4, 0xC0, 0x79, 0xD4, - 0xA6, 0xCD, 0xF2, 0x2F, 0x0F, 0xED, 0xB5, 0x50, - 0x32, 0x92, 0x5C, 0x16, 0x74, 0x81, 0x15, 0xF0, - 0x1A, 0x10, 0x5E, 0x77, 0xE0, 0x0C, 0xEE, 0x3D, - 0x07, 0x92, 0x4D, 0xC0, 0xD8, 0xF9, 0x06, 0x59 - }, - { - 0xB9, 0x29, 0xCC, 0x65, 0x05, 0xF0, 0x20, 0x15, - 0x86, 0x72, 0xDE, 0xDA, 0x56, 0xD0, 0xDB, 0x08, - 0x1A, 0x2E, 0xE3, 0x4C, 0x00, 0xC1, 0x10, 0x00, - 0x29, 0xBD, 0xF8, 0xEA, 0x98, 0x03, 0x4F, 0xA4, - 0xBF, 0x3E, 0x86, 0x55, 0xEC, 0x69, 0x7F, 0xE3, - 0x6F, 0x40, 0x55, 0x3C, 0x5B, 0xB4, 0x68, 0x01, - 0x64, 0x4A, 0x62, 0x7D, 0x33, 0x42, 0xF4, 0xFC, - 0x92, 0xB6, 0x1F, 0x03, 0x29, 0x0F, 0xB3, 0x81 - }, - { - 0x72, 0xD3, 0x53, 0x99, 0x4B, 0x49, 0xD3, 0xE0, - 0x31, 0x53, 0x92, 0x9A, 0x1E, 0x4D, 0x4F, 0x18, - 0x8E, 0xE5, 0x8A, 0xB9, 0xE7, 0x2E, 0xE8, 0xE5, - 0x12, 0xF2, 0x9B, 0xC7, 0x73, 0x91, 0x38, 0x19, - 0xCE, 0x05, 0x7D, 0xDD, 0x70, 0x02, 0xC0, 0x43, - 0x3E, 0xE0, 0xA1, 0x61, 0x14, 0xE3, 0xD1, 0x56, - 0xDD, 0x2C, 0x4A, 0x7E, 0x80, 0xEE, 0x53, 0x37, - 0x8B, 0x86, 0x70, 0xF2, 0x3E, 0x33, 0xEF, 0x56 - }, - { - 0xC7, 0x0E, 0xF9, 0xBF, 0xD7, 0x75, 0xD4, 0x08, - 0x17, 0x67, 0x37, 0xA0, 0x73, 0x6D, 0x68, 0x51, - 0x7C, 0xE1, 0xAA, 0xAD, 0x7E, 0x81, 0xA9, 0x3C, - 0x8C, 0x1E, 0xD9, 0x67, 0xEA, 0x21, 0x4F, 0x56, - 0xC8, 0xA3, 0x77, 0xB1, 0x76, 0x3E, 0x67, 0x66, - 0x15, 0xB6, 0x0F, 0x39, 0x88, 0x24, 0x1E, 0xAE, - 0x6E, 0xAB, 0x96, 0x85, 0xA5, 0x12, 0x49, 0x29, - 0xD2, 0x81, 0x88, 0xF2, 0x9E, 0xAB, 0x06, 0xF7 - }, - { - 0xC2, 0x30, 0xF0, 0x80, 0x26, 0x79, 0xCB, 0x33, - 0x82, 0x2E, 0xF8, 0xB3, 0xB2, 0x1B, 0xF7, 0xA9, - 0xA2, 0x89, 0x42, 0x09, 0x29, 0x01, 0xD7, 0xDA, - 0xC3, 0x76, 0x03, 0x00, 0x83, 0x10, 0x26, 0xCF, - 0x35, 0x4C, 0x92, 0x32, 0xDF, 0x3E, 0x08, 0x4D, - 0x99, 0x03, 0x13, 0x0C, 0x60, 0x1F, 0x63, 0xC1, - 0xF4, 0xA4, 0xA4, 0xB8, 0x10, 0x6E, 0x46, 0x8C, - 0xD4, 0x43, 0xBB, 0xE5, 0xA7, 0x34, 0xF4, 0x5F - }, - { - 0x6F, 0x43, 0x09, 0x4C, 0xAF, 0xB5, 0xEB, 0xF1, - 0xF7, 0xA4, 0x93, 0x7E, 0xC5, 0x0F, 0x56, 0xA4, - 0xC9, 0xDA, 0x30, 0x3C, 0xBB, 0x55, 0xAC, 0x1F, - 0x27, 0xF1, 0xF1, 0x97, 0x6C, 0xD9, 0x6B, 0xED, - 0xA9, 0x46, 0x4F, 0x0E, 0x7B, 0x9C, 0x54, 0x62, - 0x0B, 0x8A, 0x9F, 0xBA, 0x98, 0x31, 0x64, 0xB8, - 0xBE, 0x35, 0x78, 0x42, 0x5A, 0x02, 0x4F, 0x5F, - 0xE1, 0x99, 0xC3, 0x63, 0x56, 0xB8, 0x89, 0x72 - }, - { - 0x37, 0x45, 0x27, 0x3F, 0x4C, 0x38, 0x22, 0x5D, - 0xB2, 0x33, 0x73, 0x81, 0x87, 0x1A, 0x0C, 0x6A, - 0xAF, 0xD3, 0xAF, 0x9B, 0x01, 0x8C, 0x88, 0xAA, - 0x02, 0x02, 0x58, 0x50, 0xA5, 0xDC, 0x3A, 0x42, - 0xA1, 0xA3, 0xE0, 0x3E, 0x56, 0xCB, 0xF1, 0xB0, - 0x87, 0x6D, 0x63, 0xA4, 0x41, 0xF1, 0xD2, 0x85, - 0x6A, 0x39, 0xB8, 0x80, 0x1E, 0xB5, 0xAF, 0x32, - 0x52, 0x01, 0xC4, 0x15, 0xD6, 0x5E, 0x97, 0xFE - }, - { - 0xC5, 0x0C, 0x44, 0xCC, 0xA3, 0xEC, 0x3E, 0xDA, - 0xAE, 0x77, 0x9A, 0x7E, 0x17, 0x94, 0x50, 0xEB, - 0xDD, 0xA2, 0xF9, 0x70, 0x67, 0xC6, 0x90, 0xAA, - 0x6C, 0x5A, 0x4A, 0xC7, 0xC3, 0x01, 0x39, 0xBB, - 0x27, 0xC0, 0xDF, 0x4D, 0xB3, 0x22, 0x0E, 0x63, - 0xCB, 0x11, 0x0D, 0x64, 0xF3, 0x7F, 0xFE, 0x07, - 0x8D, 0xB7, 0x26, 0x53, 0xE2, 0xDA, 0xAC, 0xF9, - 0x3A, 0xE3, 0xF0, 0xA2, 0xD1, 0xA7, 0xEB, 0x2E - }, - { - 0x8A, 0xEF, 0x26, 0x3E, 0x38, 0x5C, 0xBC, 0x61, - 0xE1, 0x9B, 0x28, 0x91, 0x42, 0x43, 0x26, 0x2A, - 0xF5, 0xAF, 0xE8, 0x72, 0x6A, 0xF3, 0xCE, 0x39, - 0xA7, 0x9C, 0x27, 0x02, 0x8C, 0xF3, 0xEC, 0xD3, - 0xF8, 0xD2, 0xDF, 0xD9, 0xCF, 0xC9, 0xAD, 0x91, - 0xB5, 0x8F, 0x6F, 0x20, 0x77, 0x8F, 0xD5, 0xF0, - 0x28, 0x94, 0xA3, 0xD9, 0x1C, 0x7D, 0x57, 0xD1, - 0xE4, 0xB8, 0x66, 0xA7, 0xF3, 0x64, 0xB6, 0xBE - }, - { - 0x28, 0x69, 0x61, 0x41, 0xDE, 0x6E, 0x2D, 0x9B, - 0xCB, 0x32, 0x35, 0x57, 0x8A, 0x66, 0x16, 0x6C, - 0x14, 0x48, 0xD3, 0xE9, 0x05, 0xA1, 0xB4, 0x82, - 0xD4, 0x23, 0xBE, 0x4B, 0xC5, 0x36, 0x9B, 0xC8, - 0xC7, 0x4D, 0xAE, 0x0A, 0xCC, 0x9C, 0xC1, 0x23, - 0xE1, 0xD8, 0xDD, 0xCE, 0x9F, 0x97, 0x91, 0x7E, - 0x8C, 0x01, 0x9C, 0x55, 0x2D, 0xA3, 0x2D, 0x39, - 0xD2, 0x21, 0x9B, 0x9A, 0xBF, 0x0F, 0xA8, 0xC8 - }, - { - 0x2F, 0xB9, 0xEB, 0x20, 0x85, 0x83, 0x01, 0x81, - 0x90, 0x3A, 0x9D, 0xAF, 0xE3, 0xDB, 0x42, 0x8E, - 0xE1, 0x5B, 0xE7, 0x66, 0x22, 0x24, 0xEF, 0xD6, - 0x43, 0x37, 0x1F, 0xB2, 0x56, 0x46, 0xAE, 0xE7, - 0x16, 0xE5, 0x31, 0xEC, 0xA6, 0x9B, 0x2B, 0xDC, - 0x82, 0x33, 0xF1, 0xA8, 0x08, 0x1F, 0xA4, 0x3D, - 0xA1, 0x50, 0x03, 0x02, 0x97, 0x5A, 0x77, 0xF4, - 0x2F, 0xA5, 0x92, 0x13, 0x67, 0x10, 0xE9, 0xDC - }, - { - 0x66, 0xF9, 0xA7, 0x14, 0x3F, 0x7A, 0x33, 0x14, - 0xA6, 0x69, 0xBF, 0x2E, 0x24, 0xBB, 0xB3, 0x50, - 0x14, 0x26, 0x1D, 0x63, 0x9F, 0x49, 0x5B, 0x6C, - 0x9C, 0x1F, 0x10, 0x4F, 0xE8, 0xE3, 0x20, 0xAC, - 0xA6, 0x0D, 0x45, 0x50, 0xD6, 0x9D, 0x52, 0xED, - 0xBD, 0x5A, 0x3C, 0xDE, 0xB4, 0x01, 0x4A, 0xE6, - 0x5B, 0x1D, 0x87, 0xAA, 0x77, 0x0B, 0x69, 0xAE, - 0x5C, 0x15, 0xF4, 0x33, 0x0B, 0x0B, 0x0A, 0xD8 - }, - { - 0xF4, 0xC4, 0xDD, 0x1D, 0x59, 0x4C, 0x35, 0x65, - 0xE3, 0xE2, 0x5C, 0xA4, 0x3D, 0xAD, 0x82, 0xF6, - 0x2A, 0xBE, 0xA4, 0x83, 0x5E, 0xD4, 0xCD, 0x81, - 0x1B, 0xCD, 0x97, 0x5E, 0x46, 0x27, 0x98, 0x28, - 0xD4, 0x4D, 0x4C, 0x62, 0xC3, 0x67, 0x9F, 0x1B, - 0x7F, 0x7B, 0x9D, 0xD4, 0x57, 0x1D, 0x7B, 0x49, - 0x55, 0x73, 0x47, 0xB8, 0xC5, 0x46, 0x0C, 0xBD, - 0xC1, 0xBE, 0xF6, 0x90, 0xFB, 0x2A, 0x08, 0xC0 - }, - { - 0x8F, 0x1D, 0xC9, 0x64, 0x9C, 0x3A, 0x84, 0x55, - 0x1F, 0x8F, 0x6E, 0x91, 0xCA, 0xC6, 0x82, 0x42, - 0xA4, 0x3B, 0x1F, 0x8F, 0x32, 0x8E, 0xE9, 0x22, - 0x80, 0x25, 0x73, 0x87, 0xFA, 0x75, 0x59, 0xAA, - 0x6D, 0xB1, 0x2E, 0x4A, 0xEA, 0xDC, 0x2D, 0x26, - 0x09, 0x91, 0x78, 0x74, 0x9C, 0x68, 0x64, 0xB3, - 0x57, 0xF3, 0xF8, 0x3B, 0x2F, 0xB3, 0xEF, 0xA8, - 0xD2, 0xA8, 0xDB, 0x05, 0x6B, 0xED, 0x6B, 0xCC - }, - { - 0x31, 0x39, 0xC1, 0xA7, 0xF9, 0x7A, 0xFD, 0x16, - 0x75, 0xD4, 0x60, 0xEB, 0xBC, 0x07, 0xF2, 0x72, - 0x8A, 0xA1, 0x50, 0xDF, 0x84, 0x96, 0x24, 0x51, - 0x1E, 0xE0, 0x4B, 0x74, 0x3B, 0xA0, 0xA8, 0x33, - 0x09, 0x2F, 0x18, 0xC1, 0x2D, 0xC9, 0x1B, 0x4D, - 0xD2, 0x43, 0xF3, 0x33, 0x40, 0x2F, 0x59, 0xFE, - 0x28, 0xAB, 0xDB, 0xBB, 0xAE, 0x30, 0x1E, 0x7B, - 0x65, 0x9C, 0x7A, 0x26, 0xD5, 0xC0, 0xF9, 0x79 - }, - { - 0x06, 0xF9, 0x4A, 0x29, 0x96, 0x15, 0x8A, 0x81, - 0x9F, 0xE3, 0x4C, 0x40, 0xDE, 0x3C, 0xF0, 0x37, - 0x9F, 0xD9, 0xFB, 0x85, 0xB3, 0xE3, 0x63, 0xBA, - 0x39, 0x26, 0xA0, 0xE7, 0xD9, 0x60, 0xE3, 0xF4, - 0xC2, 0xE0, 0xC7, 0x0C, 0x7C, 0xE0, 0xCC, 0xB2, - 0xA6, 0x4F, 0xC2, 0x98, 0x69, 0xF6, 0xE7, 0xAB, - 0x12, 0xBD, 0x4D, 0x3F, 0x14, 0xFC, 0xE9, 0x43, - 0x27, 0x90, 0x27, 0xE7, 0x85, 0xFB, 0x5C, 0x29 - }, - { - 0xC2, 0x9C, 0x39, 0x9E, 0xF3, 0xEE, 0xE8, 0x96, - 0x1E, 0x87, 0x56, 0x5C, 0x1C, 0xE2, 0x63, 0x92, - 0x5F, 0xC3, 0xD0, 0xCE, 0x26, 0x7D, 0x13, 0xE4, - 0x8D, 0xD9, 0xE7, 0x32, 0xEE, 0x67, 0xB0, 0xF6, - 0x9F, 0xAD, 0x56, 0x40, 0x1B, 0x0F, 0x10, 0xFC, - 0xAA, 0xC1, 0x19, 0x20, 0x10, 0x46, 0xCC, 0xA2, - 0x8C, 0x5B, 0x14, 0xAB, 0xDE, 0xA3, 0x21, 0x2A, - 0xE6, 0x55, 0x62, 0xF7, 0xF1, 0x38, 0xDB, 0x3D - }, - { - 0x4C, 0xEC, 0x4C, 0x9D, 0xF5, 0x2E, 0xEF, 0x05, - 0xC3, 0xF6, 0xFA, 0xAA, 0x97, 0x91, 0xBC, 0x74, - 0x45, 0x93, 0x71, 0x83, 0x22, 0x4E, 0xCC, 0x37, - 0xA1, 0xE5, 0x8D, 0x01, 0x32, 0xD3, 0x56, 0x17, - 0x53, 0x1D, 0x7E, 0x79, 0x5F, 0x52, 0xAF, 0x7B, - 0x1E, 0xB9, 0xD1, 0x47, 0xDE, 0x12, 0x92, 0xD3, - 0x45, 0xFE, 0x34, 0x18, 0x23, 0xF8, 0xE6, 0xBC, - 0x1E, 0x5B, 0xAD, 0xCA, 0x5C, 0x65, 0x61, 0x08 - }, - { - 0x89, 0x8B, 0xFB, 0xAE, 0x93, 0xB3, 0xE1, 0x8D, - 0x00, 0x69, 0x7E, 0xAB, 0x7D, 0x97, 0x04, 0xFA, - 0x36, 0xEC, 0x33, 0x9D, 0x07, 0x61, 0x31, 0xCE, - 0xFD, 0xF3, 0x0E, 0xDB, 0xE8, 0xD9, 0xCC, 0x81, - 0xC3, 0xA8, 0x0B, 0x12, 0x96, 0x59, 0xB1, 0x63, - 0xA3, 0x23, 0xBA, 0xB9, 0x79, 0x3D, 0x4F, 0xEE, - 0xD9, 0x2D, 0x54, 0xDA, 0xE9, 0x66, 0xC7, 0x75, - 0x29, 0x76, 0x4A, 0x09, 0xBE, 0x88, 0xDB, 0x45 - }, - { - 0xEE, 0x9B, 0xD0, 0x46, 0x9D, 0x3A, 0xAF, 0x4F, - 0x14, 0x03, 0x5B, 0xE4, 0x8A, 0x2C, 0x3B, 0x84, - 0xD9, 0xB4, 0xB1, 0xFF, 0xF1, 0xD9, 0x45, 0xE1, - 0xF1, 0xC1, 0xD3, 0x89, 0x80, 0xA9, 0x51, 0xBE, - 0x19, 0x7B, 0x25, 0xFE, 0x22, 0xC7, 0x31, 0xF2, - 0x0A, 0xEA, 0xCC, 0x93, 0x0B, 0xA9, 0xC4, 0xA1, - 0xF4, 0x76, 0x22, 0x27, 0x61, 0x7A, 0xD3, 0x50, - 0xFD, 0xAB, 0xB4, 0xE8, 0x02, 0x73, 0xA0, 0xF4 - }, - { - 0x3D, 0x4D, 0x31, 0x13, 0x30, 0x05, 0x81, 0xCD, - 0x96, 0xAC, 0xBF, 0x09, 0x1C, 0x3D, 0x0F, 0x3C, - 0x31, 0x01, 0x38, 0xCD, 0x69, 0x79, 0xE6, 0x02, - 0x6C, 0xDE, 0x62, 0x3E, 0x2D, 0xD1, 0xB2, 0x4D, - 0x4A, 0x86, 0x38, 0xBE, 0xD1, 0x07, 0x33, 0x44, - 0x78, 0x3A, 0xD0, 0x64, 0x9C, 0xC6, 0x30, 0x5C, - 0xCE, 0xC0, 0x4B, 0xEB, 0x49, 0xF3, 0x1C, 0x63, - 0x30, 0x88, 0xA9, 0x9B, 0x65, 0x13, 0x02, 0x67 - }, - { - 0x95, 0xC0, 0x59, 0x1A, 0xD9, 0x1F, 0x92, 0x1A, - 0xC7, 0xBE, 0x6D, 0x9C, 0xE3, 0x7E, 0x06, 0x63, - 0xED, 0x80, 0x11, 0xC1, 0xCF, 0xD6, 0xD0, 0x16, - 0x2A, 0x55, 0x72, 0xE9, 0x43, 0x68, 0xBA, 0xC0, - 0x20, 0x24, 0x48, 0x5E, 0x6A, 0x39, 0x85, 0x4A, - 0xA4, 0x6F, 0xE3, 0x8E, 0x97, 0xD6, 0xC6, 0xB1, - 0x94, 0x7C, 0xD2, 0x72, 0xD8, 0x6B, 0x06, 0xBB, - 0x5B, 0x2F, 0x78, 0xB9, 0xB6, 0x8D, 0x55, 0x9D - }, - { - 0x22, 0x7B, 0x79, 0xDE, 0xD3, 0x68, 0x15, 0x3B, - 0xF4, 0x6C, 0x0A, 0x3C, 0xA9, 0x78, 0xBF, 0xDB, - 0xEF, 0x31, 0xF3, 0x02, 0x4A, 0x56, 0x65, 0x84, - 0x24, 0x68, 0x49, 0x0B, 0x0F, 0xF7, 0x48, 0xAE, - 0x04, 0xE7, 0x83, 0x2E, 0xD4, 0xC9, 0xF4, 0x9D, - 0xE9, 0xB1, 0x70, 0x67, 0x09, 0xD6, 0x23, 0xE5, - 0xC8, 0xC1, 0x5E, 0x3C, 0xAE, 0xCA, 0xE8, 0xD5, - 0xE4, 0x33, 0x43, 0x0F, 0xF7, 0x2F, 0x20, 0xEB - }, - { - 0x5D, 0x34, 0xF3, 0x95, 0x2F, 0x01, 0x05, 0xEE, - 0xF8, 0x8A, 0xE8, 0xB6, 0x4C, 0x6C, 0xE9, 0x5E, - 0xBF, 0xAD, 0xE0, 0xE0, 0x2C, 0x69, 0xB0, 0x87, - 0x62, 0xA8, 0x71, 0x2D, 0x2E, 0x49, 0x11, 0xAD, - 0x3F, 0x94, 0x1F, 0xC4, 0x03, 0x4D, 0xC9, 0xB2, - 0xE4, 0x79, 0xFD, 0xBC, 0xD2, 0x79, 0xB9, 0x02, - 0xFA, 0xF5, 0xD8, 0x38, 0xBB, 0x2E, 0x0C, 0x64, - 0x95, 0xD3, 0x72, 0xB5, 0xB7, 0x02, 0x98, 0x13 - }, - { - 0x7F, 0x93, 0x9B, 0xF8, 0x35, 0x3A, 0xBC, 0xE4, - 0x9E, 0x77, 0xF1, 0x4F, 0x37, 0x50, 0xAF, 0x20, - 0xB7, 0xB0, 0x39, 0x02, 0xE1, 0xA1, 0xE7, 0xFB, - 0x6A, 0xAF, 0x76, 0xD0, 0x25, 0x9C, 0xD4, 0x01, - 0xA8, 0x31, 0x90, 0xF1, 0x56, 0x40, 0xE7, 0x4F, - 0x3E, 0x6C, 0x5A, 0x90, 0xE8, 0x39, 0xC7, 0x82, - 0x1F, 0x64, 0x74, 0x75, 0x7F, 0x75, 0xC7, 0xBF, - 0x90, 0x02, 0x08, 0x4D, 0xDC, 0x7A, 0x62, 0xDC - }, - { - 0x06, 0x2B, 0x61, 0xA2, 0xF9, 0xA3, 0x3A, 0x71, - 0xD7, 0xD0, 0xA0, 0x61, 0x19, 0x64, 0x4C, 0x70, - 0xB0, 0x71, 0x6A, 0x50, 0x4D, 0xE7, 0xE5, 0xE1, - 0xBE, 0x49, 0xBD, 0x7B, 0x86, 0xE7, 0xED, 0x68, - 0x17, 0x71, 0x4F, 0x9F, 0x0F, 0xC3, 0x13, 0xD0, - 0x61, 0x29, 0x59, 0x7E, 0x9A, 0x22, 0x35, 0xEC, - 0x85, 0x21, 0xDE, 0x36, 0xF7, 0x29, 0x0A, 0x90, - 0xCC, 0xFC, 0x1F, 0xFA, 0x6D, 0x0A, 0xEE, 0x29 - }, - { - 0xF2, 0x9E, 0x01, 0xEE, 0xAE, 0x64, 0x31, 0x1E, - 0xB7, 0xF1, 0xC6, 0x42, 0x2F, 0x94, 0x6B, 0xF7, - 0xBE, 0xA3, 0x63, 0x79, 0x52, 0x3E, 0x7B, 0x2B, - 0xBA, 0xBA, 0x7D, 0x1D, 0x34, 0xA2, 0x2D, 0x5E, - 0xA5, 0xF1, 0xC5, 0xA0, 0x9D, 0x5C, 0xE1, 0xFE, - 0x68, 0x2C, 0xCE, 0xD9, 0xA4, 0x79, 0x8D, 0x1A, - 0x05, 0xB4, 0x6C, 0xD7, 0x2D, 0xFF, 0x5C, 0x1B, - 0x35, 0x54, 0x40, 0xB2, 0xA2, 0xD4, 0x76, 0xBC - }, - { - 0xEC, 0x38, 0xCD, 0x3B, 0xBA, 0xB3, 0xEF, 0x35, - 0xD7, 0xCB, 0x6D, 0x5C, 0x91, 0x42, 0x98, 0x35, - 0x1D, 0x8A, 0x9D, 0xC9, 0x7F, 0xCE, 0xE0, 0x51, - 0xA8, 0xA0, 0x2F, 0x58, 0xE3, 0xED, 0x61, 0x84, - 0xD0, 0xB7, 0x81, 0x0A, 0x56, 0x15, 0x41, 0x1A, - 0xB1, 0xB9, 0x52, 0x09, 0xC3, 0xC8, 0x10, 0x11, - 0x4F, 0xDE, 0xB2, 0x24, 0x52, 0x08, 0x4E, 0x77, - 0xF3, 0xF8, 0x47, 0xC6, 0xDB, 0xAA, 0xFE, 0x16 - }, - { - 0xC2, 0xAE, 0xF5, 0xE0, 0xCA, 0x43, 0xE8, 0x26, - 0x41, 0x56, 0x5B, 0x8C, 0xB9, 0x43, 0xAA, 0x8B, - 0xA5, 0x35, 0x50, 0xCA, 0xEF, 0x79, 0x3B, 0x65, - 0x32, 0xFA, 0xFA, 0xD9, 0x4B, 0x81, 0x60, 0x82, - 0xF0, 0x11, 0x3A, 0x3E, 0xA2, 0xF6, 0x36, 0x08, - 0xAB, 0x40, 0x43, 0x7E, 0xCC, 0x0F, 0x02, 0x29, - 0xCB, 0x8F, 0xA2, 0x24, 0xDC, 0xF1, 0xC4, 0x78, - 0xA6, 0x7D, 0x9B, 0x64, 0x16, 0x2B, 0x92, 0xD1 - }, - { - 0x15, 0xF5, 0x34, 0xEF, 0xFF, 0x71, 0x05, 0xCD, - 0x1C, 0x25, 0x4D, 0x07, 0x4E, 0x27, 0xD5, 0x89, - 0x8B, 0x89, 0x31, 0x3B, 0x7D, 0x36, 0x6D, 0xC2, - 0xD7, 0xD8, 0x71, 0x13, 0xFA, 0x7D, 0x53, 0xAA, - 0xE1, 0x3F, 0x6D, 0xBA, 0x48, 0x7A, 0xD8, 0x10, - 0x3D, 0x5E, 0x85, 0x4C, 0x91, 0xFD, 0xB6, 0xE1, - 0xE7, 0x4B, 0x2E, 0xF6, 0xD1, 0x43, 0x17, 0x69, - 0xC3, 0x07, 0x67, 0xDD, 0xE0, 0x67, 0xA3, 0x5C - }, - { - 0x89, 0xAC, 0xBC, 0xA0, 0xB1, 0x69, 0x89, 0x7A, - 0x0A, 0x27, 0x14, 0xC2, 0xDF, 0x8C, 0x95, 0xB5, - 0xB7, 0x9C, 0xB6, 0x93, 0x90, 0x14, 0x2B, 0x7D, - 0x60, 0x18, 0xBB, 0x3E, 0x30, 0x76, 0xB0, 0x99, - 0xB7, 0x9A, 0x96, 0x41, 0x52, 0xA9, 0xD9, 0x12, - 0xB1, 0xB8, 0x64, 0x12, 0xB7, 0xE3, 0x72, 0xE9, - 0xCE, 0xCA, 0xD7, 0xF2, 0x5D, 0x4C, 0xBA, 0xB8, - 0xA3, 0x17, 0xBE, 0x36, 0x49, 0x2A, 0x67, 0xD7 - }, - { - 0xE3, 0xC0, 0x73, 0x91, 0x90, 0xED, 0x84, 0x9C, - 0x9C, 0x96, 0x2F, 0xD9, 0xDB, 0xB5, 0x5E, 0x20, - 0x7E, 0x62, 0x4F, 0xCA, 0xC1, 0xEB, 0x41, 0x76, - 0x91, 0x51, 0x54, 0x99, 0xEE, 0xA8, 0xD8, 0x26, - 0x7B, 0x7E, 0x8F, 0x12, 0x87, 0xA6, 0x36, 0x33, - 0xAF, 0x50, 0x11, 0xFD, 0xE8, 0xC4, 0xDD, 0xF5, - 0x5B, 0xFD, 0xF7, 0x22, 0xED, 0xF8, 0x88, 0x31, - 0x41, 0x4F, 0x2C, 0xFA, 0xED, 0x59, 0xCB, 0x9A - }, - { - 0x8D, 0x6C, 0xF8, 0x7C, 0x08, 0x38, 0x0D, 0x2D, - 0x15, 0x06, 0xEE, 0xE4, 0x6F, 0xD4, 0x22, 0x2D, - 0x21, 0xD8, 0xC0, 0x4E, 0x58, 0x5F, 0xBF, 0xD0, - 0x82, 0x69, 0xC9, 0x8F, 0x70, 0x28, 0x33, 0xA1, - 0x56, 0x32, 0x6A, 0x07, 0x24, 0x65, 0x64, 0x00, - 0xEE, 0x09, 0x35, 0x1D, 0x57, 0xB4, 0x40, 0x17, - 0x5E, 0x2A, 0x5D, 0xE9, 0x3C, 0xC5, 0xF8, 0x0D, - 0xB6, 0xDA, 0xF8, 0x35, 0x76, 0xCF, 0x75, 0xFA - }, - { - 0xDA, 0x24, 0xBE, 0xDE, 0x38, 0x36, 0x66, 0xD5, - 0x63, 0xEE, 0xED, 0x37, 0xF6, 0x31, 0x9B, 0xAF, - 0x20, 0xD5, 0xC7, 0x5D, 0x16, 0x35, 0xA6, 0xBA, - 0x5E, 0xF4, 0xCF, 0xA1, 0xAC, 0x95, 0x48, 0x7E, - 0x96, 0xF8, 0xC0, 0x8A, 0xF6, 0x00, 0xAA, 0xB8, - 0x7C, 0x98, 0x6E, 0xBA, 0xD4, 0x9F, 0xC7, 0x0A, - 0x58, 0xB4, 0x89, 0x0B, 0x9C, 0x87, 0x6E, 0x09, - 0x10, 0x16, 0xDA, 0xF4, 0x9E, 0x1D, 0x32, 0x2E - }, - { - 0xF9, 0xD1, 0xD1, 0xB1, 0xE8, 0x7E, 0xA7, 0xAE, - 0x75, 0x3A, 0x02, 0x97, 0x50, 0xCC, 0x1C, 0xF3, - 0xD0, 0x15, 0x7D, 0x41, 0x80, 0x5E, 0x24, 0x5C, - 0x56, 0x17, 0xBB, 0x93, 0x4E, 0x73, 0x2F, 0x0A, - 0xE3, 0x18, 0x0B, 0x78, 0xE0, 0x5B, 0xFE, 0x76, - 0xC7, 0xC3, 0x05, 0x1E, 0x3E, 0x3A, 0xC7, 0x8B, - 0x9B, 0x50, 0xC0, 0x51, 0x42, 0x65, 0x7E, 0x1E, - 0x03, 0x21, 0x5D, 0x6E, 0xC7, 0xBF, 0xD0, 0xFC - }, - { - 0x11, 0xB7, 0xBC, 0x16, 0x68, 0x03, 0x20, 0x48, - 0xAA, 0x43, 0x34, 0x3D, 0xE4, 0x76, 0x39, 0x5E, - 0x81, 0x4B, 0xBB, 0xC2, 0x23, 0x67, 0x8D, 0xB9, - 0x51, 0xA1, 0xB0, 0x3A, 0x02, 0x1E, 0xFA, 0xC9, - 0x48, 0xCF, 0xBE, 0x21, 0x5F, 0x97, 0xFE, 0x9A, - 0x72, 0xA2, 0xF6, 0xBC, 0x03, 0x9E, 0x39, 0x56, - 0xBF, 0xA4, 0x17, 0xC1, 0xA9, 0xF1, 0x0D, 0x6D, - 0x7B, 0xA5, 0xD3, 0xD3, 0x2F, 0xF3, 0x23, 0xE5 - }, - { - 0xB8, 0xD9, 0x00, 0x0E, 0x4F, 0xC2, 0xB0, 0x66, - 0xED, 0xB9, 0x1A, 0xFE, 0xE8, 0xE7, 0xEB, 0x0F, - 0x24, 0xE3, 0xA2, 0x01, 0xDB, 0x8B, 0x67, 0x93, - 0xC0, 0x60, 0x85, 0x81, 0xE6, 0x28, 0xED, 0x0B, - 0xCC, 0x4E, 0x5A, 0xA6, 0x78, 0x79, 0x92, 0xA4, - 0xBC, 0xC4, 0x4E, 0x28, 0x80, 0x93, 0xE6, 0x3E, - 0xE8, 0x3A, 0xBD, 0x0B, 0xC3, 0xEC, 0x6D, 0x09, - 0x34, 0xA6, 0x74, 0xA4, 0xDA, 0x13, 0x83, 0x8A - }, - { - 0xCE, 0x32, 0x5E, 0x29, 0x4F, 0x9B, 0x67, 0x19, - 0xD6, 0xB6, 0x12, 0x78, 0x27, 0x6A, 0xE0, 0x6A, - 0x25, 0x64, 0xC0, 0x3B, 0xB0, 0xB7, 0x83, 0xFA, - 0xFE, 0x78, 0x5B, 0xDF, 0x89, 0xC7, 0xD5, 0xAC, - 0xD8, 0x3E, 0x78, 0x75, 0x6D, 0x30, 0x1B, 0x44, - 0x56, 0x99, 0x02, 0x4E, 0xAE, 0xB7, 0x7B, 0x54, - 0xD4, 0x77, 0x33, 0x6E, 0xC2, 0xA4, 0xF3, 0x32, - 0xF2, 0xB3, 0xF8, 0x87, 0x65, 0xDD, 0xB0, 0xC3 - }, - { - 0x29, 0xAC, 0xC3, 0x0E, 0x96, 0x03, 0xAE, 0x2F, - 0xCC, 0xF9, 0x0B, 0xF9, 0x7E, 0x6C, 0xC4, 0x63, - 0xEB, 0xE2, 0x8C, 0x1B, 0x2F, 0x9B, 0x4B, 0x76, - 0x5E, 0x70, 0x53, 0x7C, 0x25, 0xC7, 0x02, 0xA2, - 0x9D, 0xCB, 0xFB, 0xF1, 0x4C, 0x99, 0xC5, 0x43, - 0x45, 0xBA, 0x2B, 0x51, 0xF1, 0x7B, 0x77, 0xB5, - 0xF1, 0x5D, 0xB9, 0x2B, 0xBA, 0xD8, 0xFA, 0x95, - 0xC4, 0x71, 0xF5, 0xD0, 0x70, 0xA1, 0x37, 0xCC - }, - { - 0x33, 0x79, 0xCB, 0xAA, 0xE5, 0x62, 0xA8, 0x7B, - 0x4C, 0x04, 0x25, 0x55, 0x0F, 0xFD, 0xD6, 0xBF, - 0xE1, 0x20, 0x3F, 0x0D, 0x66, 0x6C, 0xC7, 0xEA, - 0x09, 0x5B, 0xE4, 0x07, 0xA5, 0xDF, 0xE6, 0x1E, - 0xE9, 0x14, 0x41, 0xCD, 0x51, 0x54, 0xB3, 0xE5, - 0x3B, 0x4F, 0x5F, 0xB3, 0x1A, 0xD4, 0xC7, 0xA9, - 0xAD, 0x5C, 0x7A, 0xF4, 0xAE, 0x67, 0x9A, 0xA5, - 0x1A, 0x54, 0x00, 0x3A, 0x54, 0xCA, 0x6B, 0x2D - }, - { - 0x30, 0x95, 0xA3, 0x49, 0xD2, 0x45, 0x70, 0x8C, - 0x7C, 0xF5, 0x50, 0x11, 0x87, 0x03, 0xD7, 0x30, - 0x2C, 0x27, 0xB6, 0x0A, 0xF5, 0xD4, 0xE6, 0x7F, - 0xC9, 0x78, 0xF8, 0xA4, 0xE6, 0x09, 0x53, 0xC7, - 0xA0, 0x4F, 0x92, 0xFC, 0xF4, 0x1A, 0xEE, 0x64, - 0x32, 0x1C, 0xCB, 0x70, 0x7A, 0x89, 0x58, 0x51, - 0x55, 0x2B, 0x1E, 0x37, 0xB0, 0x0B, 0xC5, 0xE6, - 0xB7, 0x2F, 0xA5, 0xBC, 0xEF, 0x9E, 0x3F, 0xFF - }, - { - 0x07, 0x26, 0x2D, 0x73, 0x8B, 0x09, 0x32, 0x1F, - 0x4D, 0xBC, 0xCE, 0xC4, 0xBB, 0x26, 0xF4, 0x8C, - 0xB0, 0xF0, 0xED, 0x24, 0x6C, 0xE0, 0xB3, 0x1B, - 0x9A, 0x6E, 0x7B, 0xC6, 0x83, 0x04, 0x9F, 0x1F, - 0x3E, 0x55, 0x45, 0xF2, 0x8C, 0xE9, 0x32, 0xDD, - 0x98, 0x5C, 0x5A, 0xB0, 0xF4, 0x3B, 0xD6, 0xDE, - 0x07, 0x70, 0x56, 0x0A, 0xF3, 0x29, 0x06, 0x5E, - 0xD2, 0xE4, 0x9D, 0x34, 0x62, 0x4C, 0x2C, 0xBB - }, - { - 0xB6, 0x40, 0x5E, 0xCA, 0x8E, 0xE3, 0x31, 0x6C, - 0x87, 0x06, 0x1C, 0xC6, 0xEC, 0x18, 0xDB, 0xA5, - 0x3E, 0x6C, 0x25, 0x0C, 0x63, 0xBA, 0x1F, 0x3B, - 0xAE, 0x9E, 0x55, 0xDD, 0x34, 0x98, 0x03, 0x6A, - 0xF0, 0x8C, 0xD2, 0x72, 0xAA, 0x24, 0xD7, 0x13, - 0xC6, 0x02, 0x0D, 0x77, 0xAB, 0x2F, 0x39, 0x19, - 0xAF, 0x1A, 0x32, 0xF3, 0x07, 0x42, 0x06, 0x18, - 0xAB, 0x97, 0xE7, 0x39, 0x53, 0x99, 0x4F, 0xB4 - }, - { - 0x7E, 0xE6, 0x82, 0xF6, 0x31, 0x48, 0xEE, 0x45, - 0xF6, 0xE5, 0x31, 0x5D, 0xA8, 0x1E, 0x5C, 0x6E, - 0x55, 0x7C, 0x2C, 0x34, 0x64, 0x1F, 0xC5, 0x09, - 0xC7, 0xA5, 0x70, 0x10, 0x88, 0xC3, 0x8A, 0x74, - 0x75, 0x61, 0x68, 0xE2, 0xCD, 0x8D, 0x35, 0x1E, - 0x88, 0xFD, 0x1A, 0x45, 0x1F, 0x36, 0x0A, 0x01, - 0xF5, 0xB2, 0x58, 0x0F, 0x9B, 0x5A, 0x2E, 0x8C, - 0xFC, 0x13, 0x8F, 0x3D, 0xD5, 0x9A, 0x3F, 0xFC - }, - { - 0x1D, 0x26, 0x3C, 0x17, 0x9D, 0x6B, 0x26, 0x8F, - 0x6F, 0xA0, 0x16, 0xF3, 0xA4, 0xF2, 0x9E, 0x94, - 0x38, 0x91, 0x12, 0x5E, 0xD8, 0x59, 0x3C, 0x81, - 0x25, 0x60, 0x59, 0xF5, 0xA7, 0xB4, 0x4A, 0xF2, - 0xDC, 0xB2, 0x03, 0x0D, 0x17, 0x5C, 0x00, 0xE6, - 0x2E, 0xCA, 0xF7, 0xEE, 0x96, 0x68, 0x2A, 0xA0, - 0x7A, 0xB2, 0x0A, 0x61, 0x10, 0x24, 0xA2, 0x85, - 0x32, 0xB1, 0xC2, 0x5B, 0x86, 0x65, 0x79, 0x02 - }, - { - 0x10, 0x6D, 0x13, 0x2C, 0xBD, 0xB4, 0xCD, 0x25, - 0x97, 0x81, 0x28, 0x46, 0xE2, 0xBC, 0x1B, 0xF7, - 0x32, 0xFE, 0xC5, 0xF0, 0xA5, 0xF6, 0x5D, 0xBB, - 0x39, 0xEC, 0x4E, 0x6D, 0xC6, 0x4A, 0xB2, 0xCE, - 0x6D, 0x24, 0x63, 0x0D, 0x0F, 0x15, 0xA8, 0x05, - 0xC3, 0x54, 0x00, 0x25, 0xD8, 0x4A, 0xFA, 0x98, - 0xE3, 0x67, 0x03, 0xC3, 0xDB, 0xEE, 0x71, 0x3E, - 0x72, 0xDD, 0xE8, 0x46, 0x5B, 0xC1, 0xBE, 0x7E - }, - { - 0x0E, 0x79, 0x96, 0x82, 0x26, 0x65, 0x06, 0x67, - 0xA8, 0xD8, 0x62, 0xEA, 0x8D, 0xA4, 0x89, 0x1A, - 0xF5, 0x6A, 0x4E, 0x3A, 0x8B, 0x6D, 0x17, 0x50, - 0xE3, 0x94, 0xF0, 0xDE, 0xA7, 0x6D, 0x64, 0x0D, - 0x85, 0x07, 0x7B, 0xCE, 0xC2, 0xCC, 0x86, 0x88, - 0x6E, 0x50, 0x67, 0x51, 0xB4, 0xF6, 0xA5, 0x83, - 0x8F, 0x7F, 0x0B, 0x5F, 0xEF, 0x76, 0x5D, 0x9D, - 0xC9, 0x0D, 0xCD, 0xCB, 0xAF, 0x07, 0x9F, 0x08 - }, - { - 0x52, 0x11, 0x56, 0xA8, 0x2A, 0xB0, 0xC4, 0xE5, - 0x66, 0xE5, 0x84, 0x4D, 0x5E, 0x31, 0xAD, 0x9A, - 0xAF, 0x14, 0x4B, 0xBD, 0x5A, 0x46, 0x4F, 0xDC, - 0xA3, 0x4D, 0xBD, 0x57, 0x17, 0xE8, 0xFF, 0x71, - 0x1D, 0x3F, 0xFE, 0xBB, 0xFA, 0x08, 0x5D, 0x67, - 0xFE, 0x99, 0x6A, 0x34, 0xF6, 0xD3, 0xE4, 0xE6, - 0x0B, 0x13, 0x96, 0xBF, 0x4B, 0x16, 0x10, 0xC2, - 0x63, 0xBD, 0xBB, 0x83, 0x4D, 0x56, 0x08, 0x16 - }, - { - 0x1A, 0xBA, 0x88, 0xBE, 0xFC, 0x55, 0xBC, 0x25, - 0xEF, 0xBC, 0xE0, 0x2D, 0xB8, 0xB9, 0x93, 0x3E, - 0x46, 0xF5, 0x76, 0x61, 0xBA, 0xEA, 0xBE, 0xB2, - 0x1C, 0xC2, 0x57, 0x4D, 0x2A, 0x51, 0x8A, 0x3C, - 0xBA, 0x5D, 0xC5, 0xA3, 0x8E, 0x49, 0x71, 0x34, - 0x40, 0xB2, 0x5F, 0x9C, 0x74, 0x4E, 0x75, 0xF6, - 0xB8, 0x5C, 0x9D, 0x8F, 0x46, 0x81, 0xF6, 0x76, - 0x16, 0x0F, 0x61, 0x05, 0x35, 0x7B, 0x84, 0x06 - }, - { - 0x5A, 0x99, 0x49, 0xFC, 0xB2, 0xC4, 0x73, 0xCD, - 0xA9, 0x68, 0xAC, 0x1B, 0x5D, 0x08, 0x56, 0x6D, - 0xC2, 0xD8, 0x16, 0xD9, 0x60, 0xF5, 0x7E, 0x63, - 0xB8, 0x98, 0xFA, 0x70, 0x1C, 0xF8, 0xEB, 0xD3, - 0xF5, 0x9B, 0x12, 0x4D, 0x95, 0xBF, 0xBB, 0xED, - 0xC5, 0xF1, 0xCF, 0x0E, 0x17, 0xD5, 0xEA, 0xED, - 0x0C, 0x02, 0xC5, 0x0B, 0x69, 0xD8, 0xA4, 0x02, - 0xCA, 0xBC, 0xCA, 0x44, 0x33, 0xB5, 0x1F, 0xD4 - }, - { - 0xB0, 0xCE, 0xAD, 0x09, 0x80, 0x7C, 0x67, 0x2A, - 0xF2, 0xEB, 0x2B, 0x0F, 0x06, 0xDD, 0xE4, 0x6C, - 0xF5, 0x37, 0x0E, 0x15, 0xA4, 0x09, 0x6B, 0x1A, - 0x7D, 0x7C, 0xBB, 0x36, 0xEC, 0x31, 0xC2, 0x05, - 0xFB, 0xEF, 0xCA, 0x00, 0xB7, 0xA4, 0x16, 0x2F, - 0xA8, 0x9F, 0xB4, 0xFB, 0x3E, 0xB7, 0x8D, 0x79, - 0x77, 0x0C, 0x23, 0xF4, 0x4E, 0x72, 0x06, 0x66, - 0x4C, 0xE3, 0xCD, 0x93, 0x1C, 0x29, 0x1E, 0x5D - }, - { - 0xBB, 0x66, 0x64, 0x93, 0x1E, 0xC9, 0x70, 0x44, - 0xE4, 0x5B, 0x2A, 0xE4, 0x20, 0xAE, 0x1C, 0x55, - 0x1A, 0x88, 0x74, 0xBC, 0x93, 0x7D, 0x08, 0xE9, - 0x69, 0x39, 0x9C, 0x39, 0x64, 0xEB, 0xDB, 0xA8, - 0x34, 0x6C, 0xDD, 0x5D, 0x09, 0xCA, 0xAF, 0xE4, - 0xC2, 0x8B, 0xA7, 0xEC, 0x78, 0x81, 0x91, 0xCE, - 0xCA, 0x65, 0xDD, 0xD6, 0xF9, 0x5F, 0x18, 0x58, - 0x3E, 0x04, 0x0D, 0x0F, 0x30, 0xD0, 0x36, 0x4D - }, - { - 0x65, 0xBC, 0x77, 0x0A, 0x5F, 0xAA, 0x37, 0x92, - 0x36, 0x98, 0x03, 0x68, 0x3E, 0x84, 0x4B, 0x0B, - 0xE7, 0xEE, 0x96, 0xF2, 0x9F, 0x6D, 0x6A, 0x35, - 0x56, 0x80, 0x06, 0xBD, 0x55, 0x90, 0xF9, 0xA4, - 0xEF, 0x63, 0x9B, 0x7A, 0x80, 0x61, 0xC7, 0xB0, - 0x42, 0x4B, 0x66, 0xB6, 0x0A, 0xC3, 0x4A, 0xF3, - 0x11, 0x99, 0x05, 0xF3, 0x3A, 0x9D, 0x8C, 0x3A, - 0xE1, 0x83, 0x82, 0xCA, 0x9B, 0x68, 0x99, 0x00 - }, - { - 0xEA, 0x9B, 0x4D, 0xCA, 0x33, 0x33, 0x36, 0xAA, - 0xF8, 0x39, 0xA4, 0x5C, 0x6E, 0xAA, 0x48, 0xB8, - 0xCB, 0x4C, 0x7D, 0xDA, 0xBF, 0xFE, 0xA4, 0xF6, - 0x43, 0xD6, 0x35, 0x7E, 0xA6, 0x62, 0x8A, 0x48, - 0x0A, 0x5B, 0x45, 0xF2, 0xB0, 0x52, 0xC1, 0xB0, - 0x7D, 0x1F, 0xED, 0xCA, 0x91, 0x8B, 0x6F, 0x11, - 0x39, 0xD8, 0x0F, 0x74, 0xC2, 0x45, 0x10, 0xDC, - 0xBA, 0xA4, 0xBE, 0x70, 0xEA, 0xCC, 0x1B, 0x06 - }, - { - 0xE6, 0x34, 0x2F, 0xB4, 0xA7, 0x80, 0xAD, 0x97, - 0x5D, 0x0E, 0x24, 0xBC, 0xE1, 0x49, 0x98, 0x9B, - 0x91, 0xD3, 0x60, 0x55, 0x7E, 0x87, 0x99, 0x4F, - 0x6B, 0x45, 0x7B, 0x89, 0x55, 0x75, 0xCC, 0x02, - 0xD0, 0xC1, 0x5B, 0xAD, 0x3C, 0xE7, 0x57, 0x7F, - 0x4C, 0x63, 0x92, 0x7F, 0xF1, 0x3F, 0x3E, 0x38, - 0x1F, 0xF7, 0xE7, 0x2B, 0xDB, 0xE7, 0x45, 0x32, - 0x48, 0x44, 0xA9, 0xD2, 0x7E, 0x3F, 0x1C, 0x01 - }, - { - 0x3E, 0x20, 0x9C, 0x9B, 0x33, 0xE8, 0xE4, 0x61, - 0x17, 0x8A, 0xB4, 0x6B, 0x1C, 0x64, 0xB4, 0x9A, - 0x07, 0xFB, 0x74, 0x5F, 0x1C, 0x8B, 0xC9, 0x5F, - 0xBF, 0xB9, 0x4C, 0x6B, 0x87, 0xC6, 0x95, 0x16, - 0x65, 0x1B, 0x26, 0x4E, 0xF9, 0x80, 0x93, 0x7F, - 0xAD, 0x41, 0x23, 0x8B, 0x91, 0xDD, 0xC0, 0x11, - 0xA5, 0xDD, 0x77, 0x7C, 0x7E, 0xFD, 0x44, 0x94, - 0xB4, 0xB6, 0xEC, 0xD3, 0xA9, 0xC2, 0x2A, 0xC0 - }, - { - 0xFD, 0x6A, 0x3D, 0x5B, 0x18, 0x75, 0xD8, 0x04, - 0x86, 0xD6, 0xE6, 0x96, 0x94, 0xA5, 0x6D, 0xBB, - 0x04, 0xA9, 0x9A, 0x4D, 0x05, 0x1F, 0x15, 0xDB, - 0x26, 0x89, 0x77, 0x6B, 0xA1, 0xC4, 0x88, 0x2E, - 0x6D, 0x46, 0x2A, 0x60, 0x3B, 0x70, 0x15, 0xDC, - 0x9F, 0x4B, 0x74, 0x50, 0xF0, 0x53, 0x94, 0x30, - 0x3B, 0x86, 0x52, 0xCF, 0xB4, 0x04, 0xA2, 0x66, - 0x96, 0x2C, 0x41, 0xBA, 0xE6, 0xE1, 0x8A, 0x94 - }, - { - 0x95, 0x1E, 0x27, 0x51, 0x7E, 0x6B, 0xAD, 0x9E, - 0x41, 0x95, 0xFC, 0x86, 0x71, 0xDE, 0xE3, 0xE7, - 0xE9, 0xBE, 0x69, 0xCE, 0xE1, 0x42, 0x2C, 0xB9, - 0xFE, 0xCF, 0xCE, 0x0D, 0xBA, 0x87, 0x5F, 0x7B, - 0x31, 0x0B, 0x93, 0xEE, 0x3A, 0x3D, 0x55, 0x8F, - 0x94, 0x1F, 0x63, 0x5F, 0x66, 0x8F, 0xF8, 0x32, - 0xD2, 0xC1, 0xD0, 0x33, 0xC5, 0xE2, 0xF0, 0x99, - 0x7E, 0x4C, 0x66, 0xF1, 0x47, 0x34, 0x4E, 0x02 - }, - { - 0x8E, 0xBA, 0x2F, 0x87, 0x4F, 0x1A, 0xE8, 0x40, - 0x41, 0x90, 0x3C, 0x7C, 0x42, 0x53, 0xC8, 0x22, - 0x92, 0x53, 0x0F, 0xC8, 0x50, 0x95, 0x50, 0xBF, - 0xDC, 0x34, 0xC9, 0x5C, 0x7E, 0x28, 0x89, 0xD5, - 0x65, 0x0B, 0x0A, 0xD8, 0xCB, 0x98, 0x8E, 0x5C, - 0x48, 0x94, 0xCB, 0x87, 0xFB, 0xFB, 0xB1, 0x96, - 0x12, 0xEA, 0x93, 0xCC, 0xC4, 0xC5, 0xCA, 0xD1, - 0x71, 0x58, 0xB9, 0x76, 0x34, 0x64, 0xB4, 0x92 - }, - { - 0x16, 0xF7, 0x12, 0xEA, 0xA1, 0xB7, 0xC6, 0x35, - 0x47, 0x19, 0xA8, 0xE7, 0xDB, 0xDF, 0xAF, 0x55, - 0xE4, 0x06, 0x3A, 0x4D, 0x27, 0x7D, 0x94, 0x75, - 0x50, 0x01, 0x9B, 0x38, 0xDF, 0xB5, 0x64, 0x83, - 0x09, 0x11, 0x05, 0x7D, 0x50, 0x50, 0x61, 0x36, - 0xE2, 0x39, 0x4C, 0x3B, 0x28, 0x94, 0x5C, 0xC9, - 0x64, 0x96, 0x7D, 0x54, 0xE3, 0x00, 0x0C, 0x21, - 0x81, 0x62, 0x6C, 0xFB, 0x9B, 0x73, 0xEF, 0xD2 - }, - { - 0xC3, 0x96, 0x39, 0xE7, 0xD5, 0xC7, 0xFB, 0x8C, - 0xDD, 0x0F, 0xD3, 0xE6, 0xA5, 0x20, 0x96, 0x03, - 0x94, 0x37, 0x12, 0x2F, 0x21, 0xC7, 0x8F, 0x16, - 0x79, 0xCE, 0xA9, 0xD7, 0x8A, 0x73, 0x4C, 0x56, - 0xEC, 0xBE, 0xB2, 0x86, 0x54, 0xB4, 0xF1, 0x8E, - 0x34, 0x2C, 0x33, 0x1F, 0x6F, 0x72, 0x29, 0xEC, - 0x4B, 0x4B, 0xC2, 0x81, 0xB2, 0xD8, 0x0A, 0x6E, - 0xB5, 0x00, 0x43, 0xF3, 0x17, 0x96, 0xC8, 0x8C - }, - { - 0x72, 0xD0, 0x81, 0xAF, 0x99, 0xF8, 0xA1, 0x73, - 0xDC, 0xC9, 0xA0, 0xAC, 0x4E, 0xB3, 0x55, 0x74, - 0x05, 0x63, 0x9A, 0x29, 0x08, 0x4B, 0x54, 0xA4, - 0x01, 0x72, 0x91, 0x2A, 0x2F, 0x8A, 0x39, 0x51, - 0x29, 0xD5, 0x53, 0x6F, 0x09, 0x18, 0xE9, 0x02, - 0xF9, 0xE8, 0xFA, 0x60, 0x00, 0x99, 0x5F, 0x41, - 0x68, 0xDD, 0xC5, 0xF8, 0x93, 0x01, 0x1B, 0xE6, - 0xA0, 0xDB, 0xC9, 0xB8, 0xA1, 0xA3, 0xF5, 0xBB - }, - { - 0xC1, 0x1A, 0xA8, 0x1E, 0x5E, 0xFD, 0x24, 0xD5, - 0xFC, 0x27, 0xEE, 0x58, 0x6C, 0xFD, 0x88, 0x47, - 0xFB, 0xB0, 0xE2, 0x76, 0x01, 0xCC, 0xEC, 0xE5, - 0xEC, 0xCA, 0x01, 0x98, 0xE3, 0xC7, 0x76, 0x53, - 0x93, 0xBB, 0x74, 0x45, 0x7C, 0x7E, 0x7A, 0x27, - 0xEB, 0x91, 0x70, 0x35, 0x0E, 0x1F, 0xB5, 0x38, - 0x57, 0x17, 0x75, 0x06, 0xBE, 0x3E, 0x76, 0x2C, - 0xC0, 0xF1, 0x4D, 0x8C, 0x3A, 0xFE, 0x90, 0x77 - }, - { - 0xC2, 0x8F, 0x21, 0x50, 0xB4, 0x52, 0xE6, 0xC0, - 0xC4, 0x24, 0xBC, 0xDE, 0x6F, 0x8D, 0x72, 0x00, - 0x7F, 0x93, 0x10, 0xFE, 0xD7, 0xF2, 0xF8, 0x7D, - 0xE0, 0xDB, 0xB6, 0x4F, 0x44, 0x79, 0xD6, 0xC1, - 0x44, 0x1B, 0xA6, 0x6F, 0x44, 0xB2, 0xAC, 0xCE, - 0xE6, 0x16, 0x09, 0x17, 0x7E, 0xD3, 0x40, 0x12, - 0x8B, 0x40, 0x7E, 0xCE, 0xC7, 0xC6, 0x4B, 0xBE, - 0x50, 0xD6, 0x3D, 0x22, 0xD8, 0x62, 0x77, 0x27 - }, - { - 0xF6, 0x3D, 0x88, 0x12, 0x28, 0x77, 0xEC, 0x30, - 0xB8, 0xC8, 0xB0, 0x0D, 0x22, 0xE8, 0x90, 0x00, - 0xA9, 0x66, 0x42, 0x61, 0x12, 0xBD, 0x44, 0x16, - 0x6E, 0x2F, 0x52, 0x5B, 0x76, 0x9C, 0xCB, 0xE9, - 0xB2, 0x86, 0xD4, 0x37, 0xA0, 0x12, 0x91, 0x30, - 0xDD, 0xE1, 0xA8, 0x6C, 0x43, 0xE0, 0x4B, 0xED, - 0xB5, 0x94, 0xE6, 0x71, 0xD9, 0x82, 0x83, 0xAF, - 0xE6, 0x4C, 0xE3, 0x31, 0xDE, 0x98, 0x28, 0xFD - }, - { - 0x34, 0x8B, 0x05, 0x32, 0x88, 0x0B, 0x88, 0xA6, - 0x61, 0x4A, 0x8D, 0x74, 0x08, 0xC3, 0xF9, 0x13, - 0x35, 0x7F, 0xBB, 0x60, 0xE9, 0x95, 0xC6, 0x02, - 0x05, 0xBE, 0x91, 0x39, 0xE7, 0x49, 0x98, 0xAE, - 0xDE, 0x7F, 0x45, 0x81, 0xE4, 0x2F, 0x6B, 0x52, - 0x69, 0x8F, 0x7F, 0xA1, 0x21, 0x97, 0x08, 0xC1, - 0x44, 0x98, 0x06, 0x7F, 0xD1, 0xE0, 0x95, 0x02, - 0xDE, 0x83, 0xA7, 0x7D, 0xD2, 0x81, 0x15, 0x0C - }, - { - 0x51, 0x33, 0xDC, 0x8B, 0xEF, 0x72, 0x53, 0x59, - 0xDF, 0xF5, 0x97, 0x92, 0xD8, 0x5E, 0xAF, 0x75, - 0xB7, 0xE1, 0xDC, 0xD1, 0x97, 0x8B, 0x01, 0xC3, - 0x5B, 0x1B, 0x85, 0xFC, 0xEB, 0xC6, 0x33, 0x88, - 0xAD, 0x99, 0xA1, 0x7B, 0x63, 0x46, 0xA2, 0x17, - 0xDC, 0x1A, 0x96, 0x22, 0xEB, 0xD1, 0x22, 0xEC, - 0xF6, 0x91, 0x3C, 0x4D, 0x31, 0xA6, 0xB5, 0x2A, - 0x69, 0x5B, 0x86, 0xAF, 0x00, 0xD7, 0x41, 0xA0 - }, - { - 0x27, 0x53, 0xC4, 0xC0, 0xE9, 0x8E, 0xCA, 0xD8, - 0x06, 0xE8, 0x87, 0x80, 0xEC, 0x27, 0xFC, 0xCD, - 0x0F, 0x5C, 0x1A, 0xB5, 0x47, 0xF9, 0xE4, 0xBF, - 0x16, 0x59, 0xD1, 0x92, 0xC2, 0x3A, 0xA2, 0xCC, - 0x97, 0x1B, 0x58, 0xB6, 0x80, 0x25, 0x80, 0xBA, - 0xEF, 0x8A, 0xDC, 0x3B, 0x77, 0x6E, 0xF7, 0x08, - 0x6B, 0x25, 0x45, 0xC2, 0x98, 0x7F, 0x34, 0x8E, - 0xE3, 0x71, 0x9C, 0xDE, 0xF2, 0x58, 0xC4, 0x03 - }, - { - 0xB1, 0x66, 0x35, 0x73, 0xCE, 0x4B, 0x9D, 0x8C, - 0xAE, 0xFC, 0x86, 0x50, 0x12, 0xF3, 0xE3, 0x97, - 0x14, 0xB9, 0x89, 0x8A, 0x5D, 0xA6, 0xCE, 0x17, - 0xC2, 0x5A, 0x6A, 0x47, 0x93, 0x1A, 0x9D, 0xDB, - 0x9B, 0xBE, 0x98, 0xAD, 0xAA, 0x55, 0x3B, 0xEE, - 0xD4, 0x36, 0xE8, 0x95, 0x78, 0x45, 0x54, 0x16, - 0xC2, 0xA5, 0x2A, 0x52, 0x5C, 0xF2, 0x86, 0x2B, - 0x8D, 0x1D, 0x49, 0xA2, 0x53, 0x1B, 0x73, 0x91 - }, - { - 0x64, 0xF5, 0x8B, 0xD6, 0xBF, 0xC8, 0x56, 0xF5, - 0xE8, 0x73, 0xB2, 0xA2, 0x95, 0x6E, 0xA0, 0xED, - 0xA0, 0xD6, 0xDB, 0x0D, 0xA3, 0x9C, 0x8C, 0x7F, - 0xC6, 0x7C, 0x9F, 0x9F, 0xEE, 0xFC, 0xFF, 0x30, - 0x72, 0xCD, 0xF9, 0xE6, 0xEA, 0x37, 0xF6, 0x9A, - 0x44, 0xF0, 0xC6, 0x1A, 0xA0, 0xDA, 0x36, 0x93, - 0xC2, 0xDB, 0x5B, 0x54, 0x96, 0x0C, 0x02, 0x81, - 0xA0, 0x88, 0x15, 0x1D, 0xB4, 0x2B, 0x11, 0xE8 - }, - { - 0x07, 0x64, 0xC7, 0xBE, 0x28, 0x12, 0x5D, 0x90, - 0x65, 0xC4, 0xB9, 0x8A, 0x69, 0xD6, 0x0A, 0xED, - 0xE7, 0x03, 0x54, 0x7C, 0x66, 0xA1, 0x2E, 0x17, - 0xE1, 0xC6, 0x18, 0x99, 0x41, 0x32, 0xF5, 0xEF, - 0x82, 0x48, 0x2C, 0x1E, 0x3F, 0xE3, 0x14, 0x6C, - 0xC6, 0x53, 0x76, 0xCC, 0x10, 0x9F, 0x01, 0x38, - 0xED, 0x9A, 0x80, 0xE4, 0x9F, 0x1F, 0x3C, 0x7D, - 0x61, 0x0D, 0x2F, 0x24, 0x32, 0xF2, 0x06, 0x05 - }, - { - 0xF7, 0x48, 0x78, 0x43, 0x98, 0xA2, 0xFF, 0x03, - 0xEB, 0xEB, 0x07, 0xE1, 0x55, 0xE6, 0x61, 0x16, - 0xA8, 0x39, 0x74, 0x1A, 0x33, 0x6E, 0x32, 0xDA, - 0x71, 0xEC, 0x69, 0x60, 0x01, 0xF0, 0xAD, 0x1B, - 0x25, 0xCD, 0x48, 0xC6, 0x9C, 0xFC, 0xA7, 0x26, - 0x5E, 0xCA, 0x1D, 0xD7, 0x19, 0x04, 0xA0, 0xCE, - 0x74, 0x8A, 0xC4, 0x12, 0x4F, 0x35, 0x71, 0x07, - 0x6D, 0xFA, 0x71, 0x16, 0xA9, 0xCF, 0x00, 0xE9 - }, - { - 0x3F, 0x0D, 0xBC, 0x01, 0x86, 0xBC, 0xEB, 0x6B, - 0x78, 0x5B, 0xA7, 0x8D, 0x2A, 0x2A, 0x01, 0x3C, - 0x91, 0x0B, 0xE1, 0x57, 0xBD, 0xAF, 0xFA, 0xE8, - 0x1B, 0xB6, 0x66, 0x3B, 0x1A, 0x73, 0x72, 0x2F, - 0x7F, 0x12, 0x28, 0x79, 0x5F, 0x3E, 0xCA, 0xDA, - 0x87, 0xCF, 0x6E, 0xF0, 0x07, 0x84, 0x74, 0xAF, - 0x73, 0xF3, 0x1E, 0xCA, 0x0C, 0xC2, 0x00, 0xED, - 0x97, 0x5B, 0x68, 0x93, 0xF7, 0x61, 0xCB, 0x6D - }, - { - 0xD4, 0x76, 0x2C, 0xD4, 0x59, 0x98, 0x76, 0xCA, - 0x75, 0xB2, 0xB8, 0xFE, 0x24, 0x99, 0x44, 0xDB, - 0xD2, 0x7A, 0xCE, 0x74, 0x1F, 0xDA, 0xB9, 0x36, - 0x16, 0xCB, 0xC6, 0xE4, 0x25, 0x46, 0x0F, 0xEB, - 0x51, 0xD4, 0xE7, 0xAD, 0xCC, 0x38, 0x18, 0x0E, - 0x7F, 0xC4, 0x7C, 0x89, 0x02, 0x4A, 0x7F, 0x56, - 0x19, 0x1A, 0xDB, 0x87, 0x8D, 0xFD, 0xE4, 0xEA, - 0xD6, 0x22, 0x23, 0xF5, 0xA2, 0x61, 0x0E, 0xFE - }, - { - 0xCD, 0x36, 0xB3, 0xD5, 0xB4, 0xC9, 0x1B, 0x90, - 0xFC, 0xBB, 0xA7, 0x95, 0x13, 0xCF, 0xEE, 0x19, - 0x07, 0xD8, 0x64, 0x5A, 0x16, 0x2A, 0xFD, 0x0C, - 0xD4, 0xCF, 0x41, 0x92, 0xD4, 0xA5, 0xF4, 0xC8, - 0x92, 0x18, 0x3A, 0x8E, 0xAC, 0xDB, 0x2B, 0x6B, - 0x6A, 0x9D, 0x9A, 0xA8, 0xC1, 0x1A, 0xC1, 0xB2, - 0x61, 0xB3, 0x80, 0xDB, 0xEE, 0x24, 0xCA, 0x46, - 0x8F, 0x1B, 0xFD, 0x04, 0x3C, 0x58, 0xEE, 0xFE - }, - { - 0x98, 0x59, 0x34, 0x52, 0x28, 0x16, 0x61, 0xA5, - 0x3C, 0x48, 0xA9, 0xD8, 0xCD, 0x79, 0x08, 0x26, - 0xC1, 0xA1, 0xCE, 0x56, 0x77, 0x38, 0x05, 0x3D, - 0x0B, 0xEE, 0x4A, 0x91, 0xA3, 0xD5, 0xBD, 0x92, - 0xEE, 0xFD, 0xBA, 0xBE, 0xBE, 0x32, 0x04, 0xF2, - 0x03, 0x1C, 0xA5, 0xF7, 0x81, 0xBD, 0xA9, 0x9E, - 0xF5, 0xD8, 0xAE, 0x56, 0xE5, 0xB0, 0x4A, 0x9E, - 0x1E, 0xCD, 0x21, 0xB0, 0xEB, 0x05, 0xD3, 0xE1 - }, - { - 0x77, 0x1F, 0x57, 0xDD, 0x27, 0x75, 0xCC, 0xDA, - 0xB5, 0x59, 0x21, 0xD3, 0xE8, 0xE3, 0x0C, 0xCF, - 0x48, 0x4D, 0x61, 0xFE, 0x1C, 0x1B, 0x9C, 0x2A, - 0xE8, 0x19, 0xD0, 0xFB, 0x2A, 0x12, 0xFA, 0xB9, - 0xBE, 0x70, 0xC4, 0xA7, 0xA1, 0x38, 0xDA, 0x84, - 0xE8, 0x28, 0x04, 0x35, 0xDA, 0xAD, 0xE5, 0xBB, - 0xE6, 0x6A, 0xF0, 0x83, 0x6A, 0x15, 0x4F, 0x81, - 0x7F, 0xB1, 0x7F, 0x33, 0x97, 0xE7, 0x25, 0xA3 - }, - { - 0xC6, 0x08, 0x97, 0xC6, 0xF8, 0x28, 0xE2, 0x1F, - 0x16, 0xFB, 0xB5, 0xF1, 0x5B, 0x32, 0x3F, 0x87, - 0xB6, 0xC8, 0x95, 0x5E, 0xAB, 0xF1, 0xD3, 0x80, - 0x61, 0xF7, 0x07, 0xF6, 0x08, 0xAB, 0xDD, 0x99, - 0x3F, 0xAC, 0x30, 0x70, 0x63, 0x3E, 0x28, 0x6C, - 0xF8, 0x33, 0x9C, 0xE2, 0x95, 0xDD, 0x35, 0x2D, - 0xF4, 0xB4, 0xB4, 0x0B, 0x2F, 0x29, 0xDA, 0x1D, - 0xD5, 0x0B, 0x3A, 0x05, 0xD0, 0x79, 0xE6, 0xBB - }, - { - 0x82, 0x10, 0xCD, 0x2C, 0x2D, 0x3B, 0x13, 0x5C, - 0x2C, 0xF0, 0x7F, 0xA0, 0xD1, 0x43, 0x3C, 0xD7, - 0x71, 0xF3, 0x25, 0xD0, 0x75, 0xC6, 0x46, 0x9D, - 0x9C, 0x7F, 0x1B, 0xA0, 0x94, 0x3C, 0xD4, 0xAB, - 0x09, 0x80, 0x8C, 0xAB, 0xF4, 0xAC, 0xB9, 0xCE, - 0x5B, 0xB8, 0x8B, 0x49, 0x89, 0x29, 0xB4, 0xB8, - 0x47, 0xF6, 0x81, 0xAD, 0x2C, 0x49, 0x0D, 0x04, - 0x2D, 0xB2, 0xAE, 0xC9, 0x42, 0x14, 0xB0, 0x6B - }, - { - 0x1D, 0x4E, 0xDF, 0xFF, 0xD8, 0xFD, 0x80, 0xF7, - 0xE4, 0x10, 0x78, 0x40, 0xFA, 0x3A, 0xA3, 0x1E, - 0x32, 0x59, 0x84, 0x91, 0xE4, 0xAF, 0x70, 0x13, - 0xC1, 0x97, 0xA6, 0x5B, 0x7F, 0x36, 0xDD, 0x3A, - 0xC4, 0xB4, 0x78, 0x45, 0x61, 0x11, 0xCD, 0x43, - 0x09, 0xD9, 0x24, 0x35, 0x10, 0x78, 0x2F, 0xA3, - 0x1B, 0x7C, 0x4C, 0x95, 0xFA, 0x95, 0x15, 0x20, - 0xD0, 0x20, 0xEB, 0x7E, 0x5C, 0x36, 0xE4, 0xEF - }, - { - 0xAF, 0x8E, 0x6E, 0x91, 0xFA, 0xB4, 0x6C, 0xE4, - 0x87, 0x3E, 0x1A, 0x50, 0xA8, 0xEF, 0x44, 0x8C, - 0xC2, 0x91, 0x21, 0xF7, 0xF7, 0x4D, 0xEE, 0xF3, - 0x4A, 0x71, 0xEF, 0x89, 0xCC, 0x00, 0xD9, 0x27, - 0x4B, 0xC6, 0xC2, 0x45, 0x4B, 0xBB, 0x32, 0x30, - 0xD8, 0xB2, 0xEC, 0x94, 0xC6, 0x2B, 0x1D, 0xEC, - 0x85, 0xF3, 0x59, 0x3B, 0xFA, 0x30, 0xEA, 0x6F, - 0x7A, 0x44, 0xD7, 0xC0, 0x94, 0x65, 0xA2, 0x53 - }, - { - 0x29, 0xFD, 0x38, 0x4E, 0xD4, 0x90, 0x6F, 0x2D, - 0x13, 0xAA, 0x9F, 0xE7, 0xAF, 0x90, 0x59, 0x90, - 0x93, 0x8B, 0xED, 0x80, 0x7F, 0x18, 0x32, 0x45, - 0x4A, 0x37, 0x2A, 0xB4, 0x12, 0xEE, 0xA1, 0xF5, - 0x62, 0x5A, 0x1F, 0xCC, 0x9A, 0xC8, 0x34, 0x3B, - 0x7C, 0x67, 0xC5, 0xAB, 0xA6, 0xE0, 0xB1, 0xCC, - 0x46, 0x44, 0x65, 0x49, 0x13, 0x69, 0x2C, 0x6B, - 0x39, 0xEB, 0x91, 0x87, 0xCE, 0xAC, 0xD3, 0xEC - }, - { - 0xA2, 0x68, 0xC7, 0x88, 0x5D, 0x98, 0x74, 0xA5, - 0x1C, 0x44, 0xDF, 0xFE, 0xD8, 0xEA, 0x53, 0xE9, - 0x4F, 0x78, 0x45, 0x6E, 0x0B, 0x2E, 0xD9, 0x9F, - 0xF5, 0xA3, 0x92, 0x47, 0x60, 0x81, 0x38, 0x26, - 0xD9, 0x60, 0xA1, 0x5E, 0xDB, 0xED, 0xBB, 0x5D, - 0xE5, 0x22, 0x6B, 0xA4, 0xB0, 0x74, 0xE7, 0x1B, - 0x05, 0xC5, 0x5B, 0x97, 0x56, 0xBB, 0x79, 0xE5, - 0x5C, 0x02, 0x75, 0x4C, 0x2C, 0x7B, 0x6C, 0x8A - }, - { - 0x0C, 0xF8, 0x54, 0x54, 0x88, 0xD5, 0x6A, 0x86, - 0x81, 0x7C, 0xD7, 0xEC, 0xB1, 0x0F, 0x71, 0x16, - 0xB7, 0xEA, 0x53, 0x0A, 0x45, 0xB6, 0xEA, 0x49, - 0x7B, 0x6C, 0x72, 0xC9, 0x97, 0xE0, 0x9E, 0x3D, - 0x0D, 0xA8, 0x69, 0x8F, 0x46, 0xBB, 0x00, 0x6F, - 0xC9, 0x77, 0xC2, 0xCD, 0x3D, 0x11, 0x77, 0x46, - 0x3A, 0xC9, 0x05, 0x7F, 0xDD, 0x16, 0x62, 0xC8, - 0x5D, 0x0C, 0x12, 0x64, 0x43, 0xC1, 0x04, 0x73 - }, - { - 0xB3, 0x96, 0x14, 0x26, 0x8F, 0xDD, 0x87, 0x81, - 0x51, 0x5E, 0x2C, 0xFE, 0xBF, 0x89, 0xB4, 0xD5, - 0x40, 0x2B, 0xAB, 0x10, 0xC2, 0x26, 0xE6, 0x34, - 0x4E, 0x6B, 0x9A, 0xE0, 0x00, 0xFB, 0x0D, 0x6C, - 0x79, 0xCB, 0x2F, 0x3E, 0xC8, 0x0E, 0x80, 0xEA, - 0xEB, 0x19, 0x80, 0xD2, 0xF8, 0x69, 0x89, 0x16, - 0xBD, 0x2E, 0x9F, 0x74, 0x72, 0x36, 0x65, 0x51, - 0x16, 0x64, 0x9C, 0xD3, 0xCA, 0x23, 0xA8, 0x37 - }, - { - 0x74, 0xBE, 0xF0, 0x92, 0xFC, 0x6F, 0x1E, 0x5D, - 0xBA, 0x36, 0x63, 0xA3, 0xFB, 0x00, 0x3B, 0x2A, - 0x5B, 0xA2, 0x57, 0x49, 0x65, 0x36, 0xD9, 0x9F, - 0x62, 0xB9, 0xD7, 0x3F, 0x8F, 0x9E, 0xB3, 0xCE, - 0x9F, 0xF3, 0xEE, 0xC7, 0x09, 0xEB, 0x88, 0x36, - 0x55, 0xEC, 0x9E, 0xB8, 0x96, 0xB9, 0x12, 0x8F, - 0x2A, 0xFC, 0x89, 0xCF, 0x7D, 0x1A, 0xB5, 0x8A, - 0x72, 0xF4, 0xA3, 0xBF, 0x03, 0x4D, 0x2B, 0x4A - }, - { - 0x3A, 0x98, 0x8D, 0x38, 0xD7, 0x56, 0x11, 0xF3, - 0xEF, 0x38, 0xB8, 0x77, 0x49, 0x80, 0xB3, 0x3E, - 0x57, 0x3B, 0x6C, 0x57, 0xBE, 0xE0, 0x46, 0x9B, - 0xA5, 0xEE, 0xD9, 0xB4, 0x4F, 0x29, 0x94, 0x5E, - 0x73, 0x47, 0x96, 0x7F, 0xBA, 0x2C, 0x16, 0x2E, - 0x1C, 0x3B, 0xE7, 0xF3, 0x10, 0xF2, 0xF7, 0x5E, - 0xE2, 0x38, 0x1E, 0x7B, 0xFD, 0x6B, 0x3F, 0x0B, - 0xAE, 0xA8, 0xD9, 0x5D, 0xFB, 0x1D, 0xAF, 0xB1 - }, - { - 0x58, 0xAE, 0xDF, 0xCE, 0x6F, 0x67, 0xDD, 0xC8, - 0x5A, 0x28, 0xC9, 0x92, 0xF1, 0xC0, 0xBD, 0x09, - 0x69, 0xF0, 0x41, 0xE6, 0x6F, 0x1E, 0xE8, 0x80, - 0x20, 0xA1, 0x25, 0xCB, 0xFC, 0xFE, 0xBC, 0xD6, - 0x17, 0x09, 0xC9, 0xC4, 0xEB, 0xA1, 0x92, 0xC1, - 0x5E, 0x69, 0xF0, 0x20, 0xD4, 0x62, 0x48, 0x60, - 0x19, 0xFA, 0x8D, 0xEA, 0x0C, 0xD7, 0xA4, 0x29, - 0x21, 0xA1, 0x9D, 0x2F, 0xE5, 0x46, 0xD4, 0x3D - }, - { - 0x93, 0x47, 0xBD, 0x29, 0x14, 0x73, 0xE6, 0xB4, - 0xE3, 0x68, 0x43, 0x7B, 0x8E, 0x56, 0x1E, 0x06, - 0x5F, 0x64, 0x9A, 0x6D, 0x8A, 0xDA, 0x47, 0x9A, - 0xD0, 0x9B, 0x19, 0x99, 0xA8, 0xF2, 0x6B, 0x91, - 0xCF, 0x61, 0x20, 0xFD, 0x3B, 0xFE, 0x01, 0x4E, - 0x83, 0xF2, 0x3A, 0xCF, 0xA4, 0xC0, 0xAD, 0x7B, - 0x37, 0x12, 0xB2, 0xC3, 0xC0, 0x73, 0x32, 0x70, - 0x66, 0x31, 0x12, 0xCC, 0xD9, 0x28, 0x5C, 0xD9 - }, - { - 0xB3, 0x21, 0x63, 0xE7, 0xC5, 0xDB, 0xB5, 0xF5, - 0x1F, 0xDC, 0x11, 0xD2, 0xEA, 0xC8, 0x75, 0xEF, - 0xBB, 0xCB, 0x7E, 0x76, 0x99, 0x09, 0x0A, 0x7E, - 0x7F, 0xF8, 0xA8, 0xD5, 0x07, 0x95, 0xAF, 0x5D, - 0x74, 0xD9, 0xFF, 0x98, 0x54, 0x3E, 0xF8, 0xCD, - 0xF8, 0x9A, 0xC1, 0x3D, 0x04, 0x85, 0x27, 0x87, - 0x56, 0xE0, 0xEF, 0x00, 0xC8, 0x17, 0x74, 0x56, - 0x61, 0xE1, 0xD5, 0x9F, 0xE3, 0x8E, 0x75, 0x37 - }, - { - 0x10, 0x85, 0xD7, 0x83, 0x07, 0xB1, 0xC4, 0xB0, - 0x08, 0xC5, 0x7A, 0x2E, 0x7E, 0x5B, 0x23, 0x46, - 0x58, 0xA0, 0xA8, 0x2E, 0x4F, 0xF1, 0xE4, 0xAA, - 0xAC, 0x72, 0xB3, 0x12, 0xFD, 0xA0, 0xFE, 0x27, - 0xD2, 0x33, 0xBC, 0x5B, 0x10, 0xE9, 0xCC, 0x17, - 0xFD, 0xC7, 0x69, 0x7B, 0x54, 0x0C, 0x7D, 0x95, - 0xEB, 0x21, 0x5A, 0x19, 0xA1, 0xA0, 0xE2, 0x0E, - 0x1A, 0xBF, 0xA1, 0x26, 0xEF, 0xD5, 0x68, 0xC7 - }, - { - 0x4E, 0x5C, 0x73, 0x4C, 0x7D, 0xDE, 0x01, 0x1D, - 0x83, 0xEA, 0xC2, 0xB7, 0x34, 0x7B, 0x37, 0x35, - 0x94, 0xF9, 0x2D, 0x70, 0x91, 0xB9, 0xCA, 0x34, - 0xCB, 0x9C, 0x6F, 0x39, 0xBD, 0xF5, 0xA8, 0xD2, - 0xF1, 0x34, 0x37, 0x9E, 0x16, 0xD8, 0x22, 0xF6, - 0x52, 0x21, 0x70, 0xCC, 0xF2, 0xDD, 0xD5, 0x5C, - 0x84, 0xB9, 0xE6, 0xC6, 0x4F, 0xC9, 0x27, 0xAC, - 0x4C, 0xF8, 0xDF, 0xB2, 0xA1, 0x77, 0x01, 0xF2 - }, - { - 0x69, 0x5D, 0x83, 0xBD, 0x99, 0x0A, 0x11, 0x17, - 0xB3, 0xD0, 0xCE, 0x06, 0xCC, 0x88, 0x80, 0x27, - 0xD1, 0x2A, 0x05, 0x4C, 0x26, 0x77, 0xFD, 0x82, - 0xF0, 0xD4, 0xFB, 0xFC, 0x93, 0x57, 0x55, 0x23, - 0xE7, 0x99, 0x1A, 0x5E, 0x35, 0xA3, 0x75, 0x2E, - 0x9B, 0x70, 0xCE, 0x62, 0x99, 0x2E, 0x26, 0x8A, - 0x87, 0x77, 0x44, 0xCD, 0xD4, 0x35, 0xF5, 0xF1, - 0x30, 0x86, 0x9C, 0x9A, 0x20, 0x74, 0xB3, 0x38 - }, - { - 0xA6, 0x21, 0x37, 0x43, 0x56, 0x8E, 0x3B, 0x31, - 0x58, 0xB9, 0x18, 0x43, 0x01, 0xF3, 0x69, 0x08, - 0x47, 0x55, 0x4C, 0x68, 0x45, 0x7C, 0xB4, 0x0F, - 0xC9, 0xA4, 0xB8, 0xCF, 0xD8, 0xD4, 0xA1, 0x18, - 0xC3, 0x01, 0xA0, 0x77, 0x37, 0xAE, 0xDA, 0x0F, - 0x92, 0x9C, 0x68, 0x91, 0x3C, 0x5F, 0x51, 0xC8, - 0x03, 0x94, 0xF5, 0x3B, 0xFF, 0x1C, 0x3E, 0x83, - 0xB2, 0xE4, 0x0C, 0xA9, 0x7E, 0xBA, 0x9E, 0x15 - }, - { - 0xD4, 0x44, 0xBF, 0xA2, 0x36, 0x2A, 0x96, 0xDF, - 0x21, 0x3D, 0x07, 0x0E, 0x33, 0xFA, 0x84, 0x1F, - 0x51, 0x33, 0x4E, 0x4E, 0x76, 0x86, 0x6B, 0x81, - 0x39, 0xE8, 0xAF, 0x3B, 0xB3, 0x39, 0x8B, 0xE2, - 0xDF, 0xAD, 0xDC, 0xBC, 0x56, 0xB9, 0x14, 0x6D, - 0xE9, 0xF6, 0x81, 0x18, 0xDC, 0x58, 0x29, 0xE7, - 0x4B, 0x0C, 0x28, 0xD7, 0x71, 0x19, 0x07, 0xB1, - 0x21, 0xF9, 0x16, 0x1C, 0xB9, 0x2B, 0x69, 0xA9 - }, - { - 0x14, 0x27, 0x09, 0xD6, 0x2E, 0x28, 0xFC, 0xCC, - 0xD0, 0xAF, 0x97, 0xFA, 0xD0, 0xF8, 0x46, 0x5B, - 0x97, 0x1E, 0x82, 0x20, 0x1D, 0xC5, 0x10, 0x70, - 0xFA, 0xA0, 0x37, 0x2A, 0xA4, 0x3E, 0x92, 0x48, - 0x4B, 0xE1, 0xC1, 0xE7, 0x3B, 0xA1, 0x09, 0x06, - 0xD5, 0xD1, 0x85, 0x3D, 0xB6, 0xA4, 0x10, 0x6E, - 0x0A, 0x7B, 0xF9, 0x80, 0x0D, 0x37, 0x3D, 0x6D, - 0xEE, 0x2D, 0x46, 0xD6, 0x2E, 0xF2, 0xA4, 0x61 - }, -}; - - - - -static const uint8_t blake2sp_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] = -{ - { - 0xDD, 0x0E, 0x89, 0x17, 0x76, 0x93, 0x3F, 0x43, - 0xC7, 0xD0, 0x32, 0xB0, 0x8A, 0x91, 0x7E, 0x25, - 0x74, 0x1F, 0x8A, 0xA9, 0xA1, 0x2C, 0x12, 0xE1, - 0xCA, 0xC8, 0x80, 0x15, 0x00, 0xF2, 0xCA, 0x4F - }, - { - 0xA6, 0xB9, 0xEE, 0xCC, 0x25, 0x22, 0x7A, 0xD7, - 0x88, 0xC9, 0x9D, 0x3F, 0x23, 0x6D, 0xEB, 0xC8, - 0xDA, 0x40, 0x88, 0x49, 0xE9, 0xA5, 0x17, 0x89, - 0x78, 0x72, 0x7A, 0x81, 0x45, 0x7F, 0x72, 0x39 - }, - { - 0xDA, 0xCA, 0xDE, 0xCE, 0x7A, 0x8E, 0x6B, 0xF3, - 0xAB, 0xFE, 0x32, 0x4C, 0xA6, 0x95, 0x43, 0x69, - 0x84, 0xB8, 0x19, 0x5D, 0x29, 0xF6, 0xBB, 0xD8, - 0x96, 0xE4, 0x1E, 0x18, 0xE2, 0x1C, 0x91, 0x45 - }, - { - 0xED, 0x14, 0x41, 0x3B, 0x40, 0xDA, 0x68, 0x9F, - 0x1F, 0x7F, 0xED, 0x2B, 0x08, 0xDF, 0xF4, 0x5B, - 0x80, 0x92, 0xDB, 0x5E, 0xC2, 0xC3, 0x61, 0x0E, - 0x02, 0x72, 0x4D, 0x20, 0x2F, 0x42, 0x3C, 0x46 - }, - { - 0x9B, 0x8A, 0x52, 0x7B, 0x52, 0x72, 0x25, 0x0A, - 0x1E, 0xC3, 0x97, 0x38, 0x8F, 0x04, 0x09, 0x14, - 0x95, 0x48, 0x06, 0xE7, 0x94, 0xDB, 0x04, 0xB7, - 0x0A, 0x46, 0x11, 0xBC, 0x59, 0x58, 0x6A, 0x83 - }, - { - 0x2B, 0xB6, 0x33, 0x37, 0x29, 0x00, 0x0B, 0xE3, - 0xD5, 0xA2, 0x1B, 0x98, 0xF8, 0xE7, 0xEA, 0xD0, - 0x77, 0xF1, 0x51, 0xA5, 0x39, 0x39, 0x19, 0xEB, - 0x67, 0xC8, 0x76, 0xEE, 0x00, 0xBB, 0xBB, 0x04 - }, - { - 0x63, 0xC0, 0x14, 0x08, 0x15, 0x4A, 0xD1, 0x9D, - 0x7F, 0xB7, 0x39, 0xF3, 0x11, 0x78, 0x17, 0x80, - 0x46, 0x2C, 0xF2, 0xEE, 0xCC, 0xE6, 0x0F, 0x06, - 0x4E, 0x85, 0x34, 0x87, 0xC2, 0x72, 0xE3, 0xEB - }, - { - 0x3D, 0x05, 0x1A, 0x11, 0x76, 0x01, 0x9C, 0xA3, - 0x7B, 0xF3, 0x3D, 0x60, 0x42, 0x7F, 0x8D, 0x9D, - 0x1C, 0x3A, 0xBD, 0x59, 0x82, 0x97, 0xCF, 0xB4, - 0x23, 0x5F, 0x74, 0x7D, 0x7C, 0x7C, 0x7F, 0xEC - }, - { - 0x39, 0x1E, 0xA9, 0x12, 0xDF, 0x4D, 0x4D, 0x79, - 0xA4, 0x64, 0x6D, 0x9D, 0xA2, 0x54, 0x9A, 0x44, - 0x6D, 0x22, 0x40, 0xF6, 0x24, 0x15, 0xD0, 0x70, - 0xA2, 0xE0, 0x93, 0x99, 0x2B, 0x47, 0x1F, 0xBA - }, - { - 0x32, 0x46, 0x40, 0x44, 0x0E, 0xA5, 0xC3, 0x08, - 0x2D, 0xDC, 0x30, 0x9E, 0x78, 0x09, 0xD7, 0x41, - 0xD6, 0xCC, 0x1B, 0x2D, 0x49, 0x0F, 0xF8, 0xC0, - 0x52, 0x12, 0x8A, 0x6E, 0xEB, 0x40, 0x9D, 0x62 - }, - { - 0xAB, 0x85, 0x5E, 0x6F, 0xA3, 0x9A, 0x5E, 0x8F, - 0xC9, 0x0E, 0xAC, 0xB9, 0x99, 0xC7, 0xF7, 0x8A, - 0xE7, 0x1E, 0x59, 0xC3, 0xD9, 0x7D, 0x60, 0xAF, - 0xE5, 0x17, 0xD5, 0x87, 0x92, 0x3B, 0x77, 0x11 - }, - { - 0x2A, 0x39, 0xDA, 0x45, 0x86, 0xEF, 0xC4, 0x77, - 0x85, 0xA7, 0xA8, 0xDA, 0x85, 0x68, 0x3A, 0x51, - 0x72, 0x4C, 0xDE, 0xF5, 0x41, 0x3B, 0x35, 0x6D, - 0xC4, 0xFB, 0x50, 0x05, 0x13, 0xF8, 0xFA, 0x2E - }, - { - 0x8A, 0x00, 0x57, 0xC1, 0xF7, 0x8A, 0xD6, 0x21, - 0x45, 0x55, 0xC0, 0x67, 0x07, 0x33, 0xE2, 0x9A, - 0x4C, 0x7E, 0x95, 0x62, 0x27, 0x66, 0x0E, 0xFE, - 0xB1, 0xD7, 0xFC, 0x79, 0xF5, 0x8E, 0xC6, 0xF2 - }, - { - 0x07, 0x64, 0xB0, 0x01, 0x7F, 0x5B, 0xD9, 0x51, - 0xF0, 0x1D, 0x9F, 0xDF, 0x95, 0xC0, 0xCB, 0x41, - 0x38, 0x98, 0x5D, 0x84, 0x79, 0x9C, 0xD4, 0x29, - 0x84, 0xE2, 0x5B, 0x51, 0x28, 0x00, 0xE7, 0x3C - }, - { - 0xCC, 0x02, 0x49, 0x56, 0x93, 0xC8, 0xE1, 0x84, - 0xAD, 0x2E, 0xD0, 0x9D, 0x53, 0x3D, 0xC3, 0x3B, - 0x76, 0xA7, 0x78, 0x3D, 0x62, 0x07, 0xFC, 0xAC, - 0xCB, 0x64, 0xF3, 0xED, 0x2C, 0x6D, 0x66, 0xE0 - }, - { - 0xC0, 0xDF, 0x49, 0xC2, 0x06, 0xA3, 0x42, 0x88, - 0x14, 0x32, 0x16, 0x84, 0x7D, 0xF3, 0x34, 0xD4, - 0x56, 0x9D, 0xAD, 0x73, 0xC2, 0xB1, 0xFF, 0x62, - 0x84, 0x88, 0x4F, 0xD3, 0x89, 0x41, 0xFB, 0x95 - }, - { - 0xB9, 0x19, 0x45, 0x19, 0xE4, 0x97, 0x8A, 0x9D, - 0xC8, 0x93, 0xB2, 0x8B, 0xD8, 0x08, 0xCD, 0xFA, - 0xBB, 0x1B, 0xD5, 0x10, 0xD8, 0x62, 0xB3, 0x17, - 0x1F, 0xF6, 0xE0, 0x17, 0xA4, 0x1B, 0x80, 0x4C - }, - { - 0xBB, 0xA9, 0x27, 0xAC, 0xF1, 0x1B, 0xEB, 0xD3, - 0x62, 0xA3, 0xA3, 0xEB, 0x78, 0xC4, 0xBB, 0x65, - 0xE6, 0x02, 0xA8, 0x70, 0x9F, 0xCE, 0xF3, 0x8D, - 0xC6, 0xC8, 0xB7, 0xBD, 0xA6, 0x64, 0xC3, 0x2C - }, - { - 0xEC, 0xB4, 0x90, 0x0A, 0x63, 0x92, 0x4E, 0x72, - 0x0D, 0x40, 0xF2, 0xD2, 0xB1, 0x4D, 0x1B, 0xB3, - 0x9C, 0x37, 0x01, 0xAD, 0x73, 0x46, 0xBD, 0x0B, - 0x67, 0x23, 0x42, 0x70, 0xBF, 0xBE, 0x7E, 0x70 - }, - { - 0xF8, 0x31, 0x5A, 0x21, 0xB2, 0x5E, 0x6B, 0xA8, - 0xBF, 0x59, 0xB1, 0x7B, 0x05, 0x91, 0x3B, 0x8C, - 0xA4, 0x65, 0x9F, 0x1C, 0xD8, 0x38, 0xFC, 0xC7, - 0x73, 0xC9, 0xEB, 0x12, 0xE7, 0x00, 0x4E, 0x09 - }, - { - 0x4B, 0x77, 0xAF, 0x67, 0xA9, 0x23, 0x2B, 0xF1, - 0x18, 0x4E, 0x57, 0x81, 0x82, 0x94, 0x03, 0x1E, - 0x55, 0xF1, 0xF8, 0x53, 0xC9, 0x4D, 0xBA, 0xB5, - 0x57, 0x75, 0x47, 0x33, 0x0D, 0x65, 0xAA, 0x61 - }, - { - 0x76, 0x85, 0x68, 0x39, 0x0F, 0xD2, 0xB8, 0x70, - 0x94, 0x11, 0x4E, 0xD4, 0xCF, 0x72, 0x3E, 0xA3, - 0x20, 0xFE, 0x97, 0x7B, 0x53, 0x18, 0x03, 0x05, - 0xC3, 0x84, 0x33, 0x54, 0x79, 0xF0, 0xB5, 0x9B - }, - { - 0xA4, 0x31, 0xCB, 0x27, 0x0F, 0x3E, 0x2C, 0x9B, - 0x7A, 0x95, 0x93, 0xB1, 0x55, 0xCC, 0xEC, 0xFF, - 0x5B, 0x5C, 0x4A, 0x2D, 0xCD, 0x5D, 0x6B, 0xB1, - 0xC4, 0x85, 0xAA, 0x28, 0x69, 0x97, 0xF9, 0x15 - }, - { - 0xD6, 0x91, 0xFA, 0x6A, 0x79, 0x0B, 0x1A, 0x51, - 0x79, 0x80, 0x08, 0x7F, 0x50, 0xB0, 0x3D, 0xED, - 0x8C, 0x6E, 0xD4, 0x86, 0xD0, 0x84, 0x22, 0x1C, - 0x82, 0x7D, 0x9B, 0xD9, 0x22, 0xBE, 0xB8, 0xC0 - }, - { - 0x8F, 0x97, 0x8A, 0x49, 0x32, 0xF4, 0x45, 0x98, - 0x13, 0xE8, 0xFE, 0x15, 0x68, 0x6E, 0x4E, 0xFA, - 0x25, 0xC2, 0xC5, 0xFF, 0x5A, 0x3A, 0x4F, 0x8C, - 0x9B, 0x14, 0x96, 0x5D, 0x2F, 0x0B, 0xE4, 0x61 - }, - { - 0x1E, 0xFB, 0xD0, 0xC1, 0x31, 0x44, 0x91, 0x42, - 0xF2, 0x29, 0x5F, 0x2D, 0x42, 0x41, 0x1D, 0xFE, - 0x0F, 0x48, 0xD4, 0xAC, 0xAE, 0x76, 0x2D, 0x8D, - 0xF6, 0x7A, 0x57, 0x0B, 0xF7, 0xB1, 0xDC, 0xD5 - }, - { - 0xD5, 0x3B, 0xA9, 0x33, 0x46, 0x14, 0x3A, 0xB8, - 0xE0, 0xD3, 0xD1, 0xBF, 0x27, 0x27, 0x06, 0xD1, - 0x69, 0xE6, 0x6C, 0x69, 0xC7, 0xB8, 0xF4, 0xA5, - 0xE8, 0x2F, 0xEF, 0x44, 0x07, 0x02, 0xBC, 0xF2 - }, - { - 0xF7, 0x1A, 0x3E, 0xC0, 0x1A, 0xA3, 0x82, 0xEA, - 0x76, 0x99, 0x2B, 0x43, 0x0A, 0x7F, 0x42, 0xC7, - 0xAD, 0x2A, 0x86, 0xAE, 0xA9, 0xC1, 0x9E, 0x76, - 0xCD, 0x17, 0x32, 0xEC, 0x68, 0x30, 0xDE, 0x6F - }, - { - 0x80, 0xA6, 0xAB, 0x7B, 0x71, 0x04, 0x64, 0xF9, - 0x3E, 0x6C, 0xBA, 0x96, 0x86, 0x4A, 0xA6, 0x40, - 0x9B, 0xCA, 0xFC, 0x1B, 0xF4, 0xB3, 0x2A, 0x30, - 0x93, 0x72, 0xE8, 0x57, 0xE8, 0x04, 0x06, 0x8C - }, - { - 0xDB, 0xDE, 0x81, 0xE5, 0x1A, 0x52, 0x17, 0x4B, - 0x10, 0x14, 0x90, 0x1B, 0x53, 0xBE, 0xF8, 0x8D, - 0xE9, 0x3B, 0x29, 0xE2, 0x74, 0x34, 0x7E, 0x8E, - 0x9A, 0x7B, 0x03, 0x74, 0x56, 0x62, 0x9F, 0x35 - }, - { - 0x75, 0xF2, 0x74, 0x46, 0x6B, 0x1A, 0x2D, 0x0F, - 0xD8, 0x45, 0xBB, 0xB5, 0x7C, 0x38, 0xC9, 0x89, - 0x51, 0x6E, 0x15, 0x68, 0x32, 0x0A, 0xB5, 0x17, - 0xB1, 0x63, 0xEA, 0xF7, 0x09, 0x23, 0x4C, 0xC7 - }, - { - 0xAF, 0xE1, 0xA0, 0x59, 0x1C, 0x49, 0x1D, 0x41, - 0x6E, 0xB6, 0x4F, 0x62, 0x86, 0xF3, 0xBA, 0x29, - 0xD4, 0xC9, 0x99, 0x82, 0x14, 0xA3, 0x83, 0x1C, - 0x39, 0x01, 0x4A, 0xC0, 0x30, 0x55, 0x79, 0x45 - }, - { - 0x67, 0xFF, 0x6A, 0xCD, 0xBE, 0x8A, 0x99, 0xA1, - 0x66, 0xA5, 0xD9, 0xCF, 0x32, 0x13, 0x65, 0x06, - 0xB5, 0x48, 0xD6, 0xC9, 0x47, 0xC2, 0x4C, 0x69, - 0x9C, 0xEA, 0x3A, 0xFD, 0x92, 0xAD, 0xFA, 0xCA - }, - { - 0xBF, 0xB4, 0xD0, 0xC7, 0x11, 0x20, 0x75, 0x26, - 0x2C, 0x2D, 0xD2, 0x48, 0xF3, 0x34, 0xB2, 0xEF, - 0x15, 0x40, 0x08, 0x7E, 0xCC, 0x73, 0x82, 0xBC, - 0x2A, 0x27, 0x25, 0x75, 0xC5, 0x00, 0x9F, 0x70 - }, - { - 0x17, 0xC9, 0x4B, 0x9C, 0x53, 0x72, 0x43, 0xF2, - 0x33, 0x5B, 0x86, 0x39, 0x49, 0xB2, 0xB9, 0x1C, - 0x98, 0xA6, 0x95, 0x6D, 0x7C, 0x10, 0xAA, 0x98, - 0x99, 0x59, 0xA8, 0x0F, 0x91, 0x0C, 0x25, 0x22 - }, - { - 0xF6, 0x33, 0x8F, 0x43, 0x4D, 0x31, 0x94, 0x10, - 0x19, 0x6D, 0x95, 0x19, 0xAB, 0xCA, 0xEF, 0xF7, - 0xD5, 0x54, 0x39, 0xFD, 0x2A, 0xA5, 0xBA, 0xBF, - 0x7A, 0x7E, 0x79, 0x13, 0xB2, 0x94, 0xED, 0x4D - }, - { - 0x08, 0xEF, 0x7D, 0x65, 0xF9, 0xBB, 0xF3, 0xDA, - 0x1F, 0x78, 0x84, 0xAE, 0x9B, 0x75, 0x90, 0x1F, - 0xD8, 0x52, 0x95, 0x66, 0x2A, 0x6E, 0xA7, 0x1D, - 0xE0, 0x8B, 0xEE, 0x38, 0x34, 0x57, 0x62, 0x78 - }, - { - 0x16, 0x47, 0xEC, 0xC2, 0xBA, 0x13, 0xF8, 0xB9, - 0x3B, 0x2F, 0xBC, 0xDC, 0x4E, 0x8F, 0x1D, 0xFA, - 0x47, 0xFE, 0x3B, 0xE1, 0x2A, 0xAA, 0x0E, 0x45, - 0x9B, 0x0E, 0x5A, 0x87, 0xF3, 0xA6, 0x9B, 0xB0 - }, - { - 0xFF, 0x92, 0x7A, 0x71, 0x78, 0x81, 0xF6, 0xFD, - 0x8E, 0xD8, 0xBF, 0x5D, 0x5E, 0x35, 0xBD, 0x80, - 0x16, 0x15, 0x73, 0xE5, 0x82, 0x94, 0x04, 0xC3, - 0x2D, 0x2A, 0x27, 0x6A, 0x01, 0xF4, 0xB9, 0x06 - }, - { - 0xC8, 0xCA, 0xF1, 0x36, 0xFF, 0x20, 0x9C, 0x82, - 0xE0, 0x24, 0x0C, 0x1E, 0x62, 0xA3, 0xBC, 0x7E, - 0x9C, 0xAC, 0x87, 0x3B, 0x01, 0x1C, 0xF7, 0xC5, - 0xE6, 0x7E, 0xC1, 0x87, 0xA5, 0xFB, 0xCD, 0x96 - }, - { - 0xD9, 0xAC, 0xC7, 0x3E, 0x3F, 0x42, 0x1E, 0x18, - 0x83, 0xB5, 0xED, 0x53, 0xD8, 0x2A, 0x9A, 0xEC, - 0x8F, 0x5D, 0xC9, 0x80, 0xC4, 0x2B, 0xCA, 0xEB, - 0x0E, 0x7D, 0x89, 0x76, 0xA3, 0x38, 0xEF, 0x51 - }, - { - 0x9F, 0x17, 0x3F, 0xCF, 0x08, 0xA5, 0x36, 0x21, - 0x93, 0xF3, 0x52, 0xC8, 0x25, 0x6A, 0xE5, 0x34, - 0xAE, 0x9C, 0xE7, 0xBF, 0xA4, 0xBC, 0x09, 0xFA, - 0xC9, 0x00, 0x98, 0xF9, 0x8A, 0x71, 0x62, 0x94 - }, - { - 0x0A, 0x72, 0x45, 0x79, 0xDC, 0x80, 0xBC, 0x0C, - 0x90, 0x04, 0xE5, 0x1B, 0xE7, 0xEF, 0xF3, 0xAF, - 0xA5, 0x30, 0x75, 0xAB, 0x4A, 0x32, 0x55, 0x77, - 0x33, 0x58, 0x6E, 0x82, 0x0F, 0xD3, 0x64, 0x23 - }, - { - 0x38, 0xF7, 0xC3, 0x40, 0xF4, 0xB1, 0x59, 0xB1, - 0xE5, 0x94, 0xF6, 0xEB, 0x83, 0x28, 0x49, 0x17, - 0xB7, 0xAA, 0x19, 0xC7, 0x4F, 0x57, 0x11, 0x7A, - 0x4E, 0x08, 0xCF, 0x7C, 0x4E, 0x32, 0xA2, 0x3C - }, - { - 0x1C, 0x67, 0x4B, 0xE2, 0x57, 0xE9, 0xB3, 0x31, - 0x34, 0xD4, 0x16, 0x8F, 0x15, 0x2F, 0x8B, 0x63, - 0xDF, 0xD7, 0x80, 0xC9, 0x7D, 0xC4, 0xDC, 0x37, - 0xAC, 0x26, 0xCC, 0x0A, 0xEF, 0xB7, 0x9C, 0x1A - }, - { - 0x2F, 0x0C, 0x59, 0x76, 0x16, 0xD5, 0x75, 0x17, - 0x14, 0xA5, 0xFB, 0x4E, 0xBF, 0x3C, 0x48, 0x1A, - 0x96, 0xC3, 0xAD, 0x14, 0x5E, 0xBD, 0xE0, 0x65, - 0x09, 0xF3, 0xA2, 0xE5, 0xF2, 0xC1, 0x3F, 0xC8 - }, - { - 0xFD, 0xDC, 0x69, 0xE0, 0xC9, 0x83, 0xCD, 0x82, - 0x83, 0xED, 0x81, 0x88, 0xBE, 0xC4, 0xE5, 0xF4, - 0x1D, 0xEA, 0x3D, 0x01, 0xB9, 0xE7, 0x4C, 0x4B, - 0xAF, 0x73, 0x41, 0xD8, 0xB4, 0xBF, 0x55, 0x3D - }, - { - 0x24, 0xD0, 0x83, 0xCB, 0xA0, 0x38, 0xC8, 0x7E, - 0x9A, 0xCB, 0x86, 0x81, 0x82, 0x02, 0x08, 0xB7, - 0x5C, 0xB3, 0x29, 0x3A, 0x96, 0xC9, 0xEF, 0xA7, - 0x5D, 0x2C, 0x63, 0xF1, 0x6B, 0x85, 0xFE, 0x1E - }, - { - 0x7F, 0x6A, 0x64, 0x9C, 0xCA, 0x89, 0xB2, 0x53, - 0xFF, 0xBD, 0x20, 0xC0, 0x16, 0x98, 0x01, 0x00, - 0xA8, 0x7C, 0x16, 0x81, 0x09, 0x62, 0x8F, 0xCC, - 0x66, 0x52, 0x5D, 0x8B, 0xAA, 0xFE, 0x50, 0x5F - }, - { - 0x6D, 0xA3, 0x73, 0xB4, 0xC1, 0x87, 0x92, 0xB3, - 0x20, 0x9A, 0xDD, 0x15, 0xA5, 0x07, 0x4A, 0x1D, - 0x70, 0xC1, 0x0B, 0xB3, 0x94, 0x80, 0xCA, 0x3F, - 0xE5, 0xC4, 0x39, 0xD9, 0x5F, 0xC2, 0x86, 0xCA - }, - { - 0x27, 0x0A, 0xFF, 0xA6, 0x42, 0x6F, 0x1A, 0x51, - 0x5C, 0x9B, 0x76, 0xDF, 0xC2, 0x7D, 0x18, 0x1F, - 0xC2, 0xFD, 0x57, 0xD0, 0x82, 0xA3, 0xBA, 0x2C, - 0x1E, 0xEF, 0x07, 0x15, 0x33, 0xA6, 0xDF, 0xB7 - }, - { - 0xC2, 0x2E, 0x15, 0xCF, 0xC5, 0xA3, 0xD1, 0x4B, - 0x64, 0xD1, 0x31, 0xF3, 0x5F, 0xB3, 0x5D, 0xD5, - 0xE6, 0xC5, 0x7D, 0xC4, 0xAF, 0xC5, 0x52, 0x27, - 0x75, 0x01, 0xEC, 0xA7, 0x64, 0xDA, 0x74, 0xBF - }, - { - 0xAD, 0x68, 0x3E, 0x96, 0xB8, 0xAC, 0x65, 0x8C, - 0x4F, 0x3F, 0x10, 0xAD, 0x22, 0xD9, 0x9B, 0x07, - 0xCB, 0x5E, 0xF9, 0xE3, 0x1C, 0xBE, 0x11, 0xE7, - 0xF7, 0xDC, 0x29, 0xF2, 0xAE, 0xE5, 0x02, 0x4C - }, - { - 0x78, 0xD3, 0xCE, 0xDA, 0x1C, 0xE0, 0x52, 0x93, - 0xF4, 0x30, 0xF6, 0x16, 0x7B, 0x33, 0xC9, 0x9F, - 0x0B, 0x1D, 0x6D, 0xAD, 0xE5, 0x21, 0x43, 0xC2, - 0x92, 0x55, 0x77, 0xC0, 0xBA, 0x82, 0x53, 0xEB - }, - { - 0xE0, 0x06, 0x45, 0x63, 0x44, 0xF9, 0x0F, 0x50, - 0x1C, 0x25, 0x81, 0x3F, 0x9B, 0xE2, 0xA3, 0xF4, - 0x0B, 0x98, 0x74, 0xFA, 0x05, 0x63, 0x98, 0x1C, - 0xD4, 0x56, 0xEE, 0x8D, 0x44, 0x80, 0x7C, 0x93 - }, - { - 0x39, 0x08, 0xE8, 0xD5, 0x47, 0xC0, 0xAF, 0xB1, - 0x13, 0x49, 0x49, 0x46, 0x63, 0x04, 0xA1, 0x45, - 0x02, 0x7E, 0x6B, 0xB7, 0xA7, 0x4D, 0xD1, 0xC1, - 0x62, 0xCD, 0xF0, 0xBC, 0xF7, 0x72, 0x37, 0xE8 - }, - { - 0x1B, 0x6C, 0x87, 0xA3, 0x48, 0x38, 0xC7, 0xCD, - 0x5F, 0xD0, 0x89, 0x14, 0x22, 0x4E, 0x90, 0xC2, - 0x2A, 0xBF, 0x5A, 0x97, 0xB1, 0x06, 0x46, 0xD9, - 0x8C, 0x49, 0x16, 0xD3, 0xA8, 0x93, 0x9E, 0x62 - }, - { - 0xB0, 0xD3, 0x8F, 0x82, 0xF2, 0x48, 0x91, 0x69, - 0x52, 0xB3, 0x16, 0xB6, 0xD3, 0x6D, 0x9E, 0x02, - 0x2D, 0xF6, 0xEE, 0xCC, 0x26, 0xC7, 0x62, 0xA6, - 0x55, 0xCF, 0x5F, 0x0A, 0xE6, 0x49, 0xE2, 0xBD - }, - { - 0x8D, 0x66, 0xFC, 0x9C, 0xED, 0xA5, 0xED, 0xDF, - 0xB1, 0xE0, 0x4D, 0x09, 0x6C, 0xA7, 0x0E, 0xF5, - 0x06, 0x50, 0xFB, 0x87, 0xCC, 0x6A, 0x9F, 0xFB, - 0xB3, 0xD2, 0x0B, 0xCE, 0x7B, 0x5A, 0x60, 0x74 - }, - { - 0x06, 0x43, 0x54, 0xE8, 0xE1, 0x1C, 0xF7, 0x13, - 0xB2, 0xC7, 0x2B, 0xA6, 0x7A, 0xC7, 0xD7, 0x6E, - 0x41, 0xBA, 0x61, 0xDB, 0x9C, 0x2D, 0xEA, 0x52, - 0x2E, 0x0B, 0xDA, 0x17, 0xCB, 0xA5, 0xE3, 0x92 - }, - { - 0xC8, 0xEF, 0x5F, 0x49, 0x8B, 0xD1, 0xBC, 0x70, - 0x7F, 0xBC, 0x7B, 0x5C, 0xBC, 0x2D, 0xFF, 0x04, - 0x93, 0x14, 0x4A, 0xC5, 0x27, 0x86, 0xDB, 0x3C, - 0x79, 0x3E, 0xF4, 0xAE, 0x8A, 0x83, 0x88, 0x47 - }, - { - 0x8A, 0x23, 0x97, 0xDF, 0x31, 0xE7, 0xF0, 0xCC, - 0x29, 0x0D, 0xA9, 0xA8, 0xBB, 0xE4, 0xF5, 0xF7, - 0xA3, 0xA1, 0x37, 0x50, 0x73, 0x0D, 0xB6, 0x2D, - 0xC2, 0x54, 0x0F, 0xDB, 0xD6, 0x18, 0x85, 0x89 - }, - { - 0xF1, 0x2D, 0x0B, 0x13, 0xC6, 0xAD, 0xFB, 0x3B, - 0xE5, 0x0A, 0x51, 0xEB, 0x6B, 0xAF, 0x65, 0xAB, - 0xFB, 0x17, 0x00, 0xBA, 0xA8, 0x7E, 0x52, 0x7D, - 0xBE, 0x3E, 0x67, 0x5A, 0x7A, 0x99, 0x46, 0x61 - }, - { - 0x10, 0x24, 0xC9, 0x40, 0xBE, 0x73, 0x41, 0x44, - 0x9B, 0x50, 0x10, 0x52, 0x2B, 0x50, 0x9F, 0x65, - 0xBB, 0xDC, 0x12, 0x87, 0xB4, 0x55, 0xC2, 0xBB, - 0x7F, 0x72, 0xB2, 0xC9, 0x2F, 0xD0, 0xD1, 0x89 - }, - { - 0x52, 0x60, 0x3B, 0x6C, 0xBF, 0xAD, 0x49, 0x66, - 0xCB, 0x04, 0x4C, 0xB2, 0x67, 0x56, 0x83, 0x85, - 0xCF, 0x35, 0xF2, 0x1E, 0x6C, 0x45, 0xCF, 0x30, - 0xAE, 0xD1, 0x98, 0x32, 0xCB, 0x51, 0xE9, 0xF5 - }, - { - 0xFF, 0xF2, 0x4D, 0x3C, 0xC7, 0x29, 0xD3, 0x95, - 0xDA, 0xF9, 0x78, 0xB0, 0x15, 0x73, 0x06, 0xCB, - 0x49, 0x57, 0x97, 0xE6, 0xC8, 0xDC, 0xA1, 0x73, - 0x1D, 0x2F, 0x6F, 0x81, 0xB8, 0x49, 0xBA, 0xAE - }, - { - 0x41, 0xEE, 0xE9, 0x0D, 0x47, 0xEC, 0x27, 0x72, - 0xCD, 0x35, 0x2D, 0xFD, 0x67, 0xE0, 0x60, 0x5F, - 0xBD, 0xFC, 0x5F, 0xD6, 0xD8, 0x26, 0x45, 0x1E, - 0x3D, 0x06, 0x4D, 0x38, 0x28, 0xBD, 0x3B, 0xAE - }, - { - 0x30, 0x0B, 0x6B, 0x36, 0xE5, 0x9F, 0x85, 0x1D, - 0xDD, 0xC2, 0x9B, 0xFA, 0x93, 0x08, 0x25, 0x20, - 0xCD, 0x77, 0xC5, 0x1E, 0x00, 0x7E, 0x00, 0xD2, - 0xD7, 0x8B, 0x26, 0xF4, 0xAF, 0x96, 0x15, 0x32 - }, - { - 0x9E, 0xF3, 0x03, 0x14, 0x83, 0x4E, 0x40, 0x1C, - 0x87, 0x1A, 0x20, 0x04, 0xE3, 0x8D, 0x5C, 0xE3, - 0x2E, 0xD2, 0x8E, 0x11, 0x37, 0xF1, 0x97, 0x0F, - 0x4F, 0x43, 0x78, 0xC7, 0x37, 0x06, 0x76, 0x3D - }, - { - 0x3F, 0xBD, 0xCD, 0xE7, 0xB6, 0x43, 0x04, 0x02, - 0x5E, 0xC0, 0x58, 0x26, 0x09, 0x03, 0x1E, 0xC2, - 0x66, 0xD5, 0x0F, 0x56, 0x83, 0x5A, 0xE0, 0xCB, - 0x72, 0xD8, 0xCD, 0xB4, 0xCF, 0xAF, 0x44, 0x19 - }, - { - 0xE9, 0x0E, 0xAD, 0x3B, 0x98, 0x2B, 0x43, 0x5B, - 0x66, 0x36, 0x6A, 0x49, 0x6C, 0x3F, 0x8A, 0xE6, - 0x5B, 0x17, 0x61, 0x37, 0x00, 0xF5, 0x47, 0x67, - 0x3F, 0x62, 0x15, 0x35, 0x41, 0x91, 0x28, 0x64 - }, - { - 0xAB, 0xE3, 0x54, 0x7B, 0x33, 0x6D, 0x6E, 0x24, - 0x0D, 0x7F, 0xE6, 0x82, 0xD7, 0x4B, 0x9C, 0xC7, - 0xE8, 0xD7, 0xF9, 0xB5, 0x66, 0x48, 0x58, 0xB9, - 0x4D, 0xF5, 0x9E, 0x9F, 0xC3, 0x30, 0xD9, 0xE5 - }, - { - 0xB2, 0x99, 0x64, 0x20, 0x95, 0xB8, 0x28, 0x6C, - 0x52, 0x1C, 0xDB, 0x21, 0xED, 0x0F, 0xE0, 0x57, - 0x27, 0x80, 0x21, 0xBB, 0x40, 0x38, 0xEB, 0x5A, - 0x3D, 0x79, 0x54, 0x2F, 0x5D, 0x75, 0x1F, 0x54 - }, - { - 0xE4, 0xD7, 0x58, 0x35, 0x9F, 0x08, 0x67, 0x93, - 0xA8, 0x37, 0x54, 0xAC, 0xA6, 0x96, 0x8C, 0x3E, - 0x9F, 0xD9, 0x4B, 0x40, 0x49, 0x7F, 0x2E, 0xC2, - 0x24, 0xA2, 0x91, 0x60, 0x63, 0xA2, 0x14, 0xA3 - }, - { - 0x59, 0xA3, 0x04, 0xFC, 0x03, 0xAB, 0x75, 0xD5, - 0x57, 0xDB, 0x04, 0xEB, 0xD0, 0x2D, 0xD4, 0xC6, - 0xB8, 0x10, 0xA1, 0x38, 0xBB, 0xFE, 0xEA, 0x5D, - 0xFC, 0xEE, 0xAA, 0x2B, 0x75, 0xB0, 0x64, 0x91 - }, - { - 0x39, 0x95, 0x10, 0x22, 0x15, 0xF5, 0xFE, 0x92, - 0x10, 0xEB, 0x30, 0xD9, 0x52, 0xD8, 0xC9, 0x19, - 0x58, 0x9E, 0x71, 0x45, 0xFC, 0xD4, 0x95, 0xEA, - 0x78, 0xD0, 0x2B, 0x9C, 0x14, 0x8F, 0xAF, 0x09 - }, - { - 0x47, 0x2E, 0xE7, 0x11, 0x56, 0x35, 0x06, 0xA5, - 0xF0, 0x08, 0x3F, 0xE8, 0x2B, 0x08, 0xB9, 0x92, - 0x3C, 0xF6, 0xC8, 0x40, 0x4D, 0x0C, 0xBA, 0xCB, - 0xF8, 0x48, 0x64, 0xF6, 0x48, 0x54, 0x2A, 0xC0 - }, - { - 0x68, 0xFD, 0xB8, 0x2A, 0xDA, 0xE7, 0x9B, 0xEF, - 0x59, 0x0A, 0xBA, 0x62, 0xD7, 0xAC, 0x55, 0x32, - 0x12, 0x06, 0x1C, 0x36, 0xE3, 0x6F, 0x12, 0xC0, - 0xEF, 0xA2, 0x9A, 0x17, 0x62, 0xDE, 0x3B, 0x6A - }, - { - 0x75, 0x85, 0xC0, 0x77, 0x33, 0x83, 0xF1, 0x74, - 0xFD, 0x66, 0x65, 0x49, 0xA8, 0x35, 0x2B, 0x30, - 0x5B, 0xF6, 0x85, 0x5B, 0xC9, 0x8B, 0xEA, 0x28, - 0xC3, 0x91, 0xB3, 0xC0, 0x34, 0xDA, 0x5A, 0x5A - }, - { - 0xAC, 0xC5, 0x75, 0xFE, 0x2C, 0xD7, 0xBA, 0x2A, - 0x31, 0xFC, 0x7D, 0x67, 0x0A, 0x92, 0x34, 0xAF, - 0x68, 0x50, 0x33, 0x86, 0xE9, 0x59, 0x07, 0x3D, - 0x16, 0xA8, 0x1B, 0x33, 0xB9, 0x22, 0xB5, 0x0E - }, - { - 0x9E, 0xC7, 0xD2, 0x99, 0x59, 0x43, 0xD3, 0x9D, - 0x6B, 0x97, 0x14, 0x93, 0xB8, 0x97, 0xA0, 0xEE, - 0x2D, 0x33, 0x92, 0xA7, 0x2D, 0xB8, 0x75, 0xC2, - 0x40, 0x5D, 0x35, 0x71, 0x78, 0xFB, 0x69, 0x11 - }, - { - 0x2D, 0x7E, 0xF1, 0x94, 0x01, 0x42, 0x5A, 0xBA, - 0x45, 0x0E, 0x82, 0xD3, 0x6D, 0x0F, 0xE7, 0xB2, - 0x08, 0x5E, 0xA0, 0xAF, 0x60, 0x45, 0xA5, 0x99, - 0x4C, 0xF4, 0x31, 0xEA, 0x59, 0x93, 0x9C, 0xC9 - }, - { - 0xF3, 0x2F, 0xD8, 0x55, 0xF0, 0x11, 0xC7, 0x18, - 0x02, 0x7F, 0x2E, 0xBE, 0x37, 0x7D, 0x69, 0x39, - 0xF1, 0x23, 0x70, 0xCA, 0xFF, 0x15, 0x1C, 0x1E, - 0x5A, 0xCE, 0x43, 0x8D, 0x70, 0x3C, 0x6D, 0x9F - }, - { - 0xB2, 0xBD, 0x83, 0xD2, 0x31, 0x0D, 0x3D, 0x7B, - 0x1D, 0x2D, 0x5A, 0xAF, 0x43, 0x59, 0xFA, 0xE2, - 0x86, 0x12, 0x96, 0x27, 0x19, 0xFD, 0xDE, 0x4D, - 0xDA, 0xF6, 0x9E, 0x78, 0x20, 0xF3, 0x3F, 0x61 - }, - { - 0x1A, 0x7A, 0x9D, 0x0F, 0x44, 0xDD, 0xFA, 0x7F, - 0xC2, 0xF4, 0x77, 0x0C, 0xAD, 0x74, 0x22, 0xFA, - 0x6C, 0x4E, 0x37, 0xE6, 0xCB, 0x03, 0x6D, 0x89, - 0x9E, 0x10, 0x27, 0x50, 0xE5, 0x94, 0xFF, 0xCD - }, - { - 0xDC, 0x69, 0xF6, 0x14, 0x1C, 0x8E, 0x10, 0x3F, - 0xF6, 0x1F, 0x62, 0x98, 0xA2, 0xC4, 0x4F, 0x52, - 0xD1, 0x47, 0x36, 0x6D, 0xDB, 0xD9, 0xC7, 0x9C, - 0xC3, 0x08, 0xFE, 0x84, 0x33, 0x6A, 0x95, 0x64 - }, - { - 0xE3, 0x4E, 0xD4, 0x17, 0xB0, 0x79, 0x1D, 0x9A, - 0x77, 0xEE, 0x1E, 0x50, 0xCC, 0x2C, 0x20, 0x7E, - 0x54, 0x0C, 0x77, 0x14, 0x04, 0x21, 0xC4, 0x6C, - 0xE0, 0x86, 0x28, 0x78, 0xAA, 0xEB, 0x27, 0x09 - }, - { - 0x21, 0x74, 0x42, 0x5C, 0x8C, 0xCA, 0xE3, 0x98, - 0xC4, 0xFF, 0x06, 0xF8, 0x48, 0x99, 0x1C, 0x5E, - 0x9B, 0xC0, 0xF3, 0x46, 0x11, 0x11, 0x70, 0x6F, - 0xB9, 0x5D, 0x0B, 0xE1, 0xC6, 0x8E, 0x47, 0x60 - }, - { - 0x18, 0x94, 0x58, 0x2A, 0x8A, 0x25, 0xFE, 0x8F, - 0x84, 0x7A, 0x4A, 0x03, 0x25, 0x74, 0xB7, 0x7B, - 0x8B, 0x36, 0xBF, 0x19, 0x99, 0x75, 0x26, 0xBB, - 0x4B, 0xC8, 0x5F, 0x38, 0x24, 0x53, 0x7F, 0xEB - }, - { - 0x17, 0xED, 0x18, 0x8A, 0xE3, 0xC9, 0x53, 0xD6, - 0x55, 0x44, 0x59, 0x83, 0xB8, 0x32, 0x5B, 0xAF, - 0xFF, 0x32, 0xE2, 0x22, 0xB2, 0xDF, 0xEB, 0x16, - 0xE8, 0x61, 0x7A, 0xBF, 0x86, 0xEE, 0x7C, 0xC5 - }, - { - 0xF1, 0x48, 0x9A, 0xD1, 0xC3, 0x54, 0xCD, 0xE9, - 0x78, 0x92, 0x37, 0xEA, 0x6D, 0xBF, 0x67, 0xFC, - 0x1E, 0x44, 0xD1, 0xAC, 0xC8, 0xDC, 0x66, 0xAD, - 0x83, 0x87, 0x27, 0xF4, 0x7D, 0x9A, 0x91, 0xFE - }, - { - 0x36, 0x7F, 0x22, 0x16, 0x5B, 0x8B, 0x66, 0xE9, - 0x7F, 0x66, 0x70, 0xF3, 0x4E, 0xBA, 0x27, 0x49, - 0xD2, 0x64, 0x3B, 0x21, 0xBE, 0xAD, 0xAD, 0xFE, - 0xFE, 0xA2, 0x57, 0x4B, 0x7C, 0x9B, 0x21, 0x96 - }, - { - 0x3D, 0x8D, 0xFE, 0xA1, 0x7E, 0xEA, 0x5D, 0x64, - 0x5A, 0xC1, 0xD4, 0x1A, 0x5B, 0x59, 0x22, 0x6C, - 0x48, 0x6C, 0x36, 0xBD, 0x77, 0xED, 0x44, 0xBB, - 0x34, 0x91, 0x70, 0xD0, 0x80, 0xE3, 0x0E, 0x68 - }, - { - 0x41, 0x15, 0xF8, 0x9E, 0x0B, 0x3B, 0x5C, 0x8F, - 0x61, 0x22, 0xC0, 0x25, 0x00, 0x17, 0x1D, 0xCF, - 0xFB, 0xCE, 0xA4, 0x66, 0x2A, 0x8C, 0x5F, 0x8C, - 0x1C, 0x01, 0xA9, 0xCA, 0x7B, 0x10, 0x27, 0xBB - }, - { - 0xED, 0x6E, 0x91, 0x0B, 0x96, 0x02, 0x55, 0xD7, - 0xD7, 0x92, 0xEB, 0xE6, 0x7F, 0x26, 0x0A, 0x14, - 0x3C, 0xFA, 0xC1, 0x05, 0x1D, 0xFC, 0x05, 0x90, - 0x25, 0xEE, 0x0C, 0x1B, 0xFC, 0xBC, 0x56, 0x81 - }, - { - 0x55, 0x8F, 0xA8, 0xAF, 0xA1, 0x2B, 0xBE, 0xE5, - 0x4A, 0xF7, 0x8F, 0x6B, 0x74, 0x45, 0xF9, 0x96, - 0x65, 0xD4, 0xE3, 0x56, 0xBC, 0x07, 0xD3, 0xEF, - 0xFD, 0x8F, 0xD6, 0x5A, 0xB9, 0xC7, 0x47, 0x16 - }, - { - 0x5B, 0x60, 0x12, 0x76, 0x20, 0x53, 0xB8, 0x73, - 0x4A, 0xF0, 0xE5, 0x55, 0xE6, 0xA2, 0xBB, 0x4F, - 0xD4, 0x84, 0x0A, 0xF3, 0xB0, 0x4F, 0xCF, 0x63, - 0x50, 0xA2, 0xB8, 0xA5, 0x1B, 0x67, 0x96, 0xAD - }, - { - 0xAB, 0x7A, 0xCC, 0xA5, 0xD7, 0x77, 0x10, 0xBA, - 0xD3, 0x7B, 0xA0, 0xFF, 0x4C, 0xEA, 0xE2, 0x7E, - 0x84, 0x71, 0x79, 0xF7, 0xFD, 0x7A, 0xEC, 0x88, - 0x69, 0xC6, 0x49, 0xB3, 0x3F, 0x8D, 0x25, 0x77 - }, - { - 0xFF, 0x77, 0x30, 0xB4, 0x74, 0xEC, 0x21, 0x45, - 0xA9, 0x2D, 0xD1, 0xCF, 0xFE, 0x45, 0xC3, 0x42, - 0xC6, 0xFD, 0x6B, 0xAC, 0x58, 0x0F, 0xF9, 0x5A, - 0x75, 0xED, 0xA3, 0xBF, 0x90, 0xEB, 0x4F, 0x01 - }, - { - 0xD1, 0x0F, 0x06, 0x1D, 0x5B, 0x9C, 0xB4, 0x4E, - 0xE0, 0x78, 0xA9, 0x6B, 0x33, 0x18, 0x57, 0x9E, - 0x5E, 0xF5, 0x0A, 0xEF, 0x3E, 0xD9, 0x6E, 0x4F, - 0x62, 0x14, 0x9B, 0x2E, 0x9F, 0x7C, 0x66, 0x0C - }, - { - 0x67, 0xD2, 0x2B, 0x8E, 0xDF, 0x20, 0x01, 0xD8, - 0x64, 0x22, 0x13, 0x6A, 0xC6, 0x51, 0x6C, 0xF3, - 0x9F, 0x7F, 0xC6, 0xA7, 0x02, 0x98, 0x92, 0xFD, - 0x75, 0xC9, 0x87, 0x90, 0x96, 0x4A, 0x72, 0x0B - }, - { - 0x7A, 0x5E, 0xC5, 0xBA, 0x76, 0x25, 0x9B, 0x07, - 0xB4, 0xDA, 0x03, 0xF3, 0x81, 0xFE, 0x7B, 0xEA, - 0x48, 0x65, 0xC8, 0x6C, 0x42, 0x4A, 0xBA, 0xA0, - 0xDD, 0x1E, 0xCF, 0x74, 0xF8, 0x7D, 0x2A, 0xC0 - }, - { - 0xE0, 0xFF, 0x60, 0xD6, 0x90, 0x29, 0xE6, 0xBD, - 0x1C, 0x15, 0x95, 0x3E, 0x91, 0x50, 0x9C, 0x0C, - 0x59, 0xED, 0x5D, 0xA5, 0x00, 0x01, 0x99, 0xF2, - 0x16, 0xD2, 0x9F, 0x96, 0x07, 0x9C, 0x2F, 0xEF - }, - { - 0xFC, 0x13, 0xEA, 0xD8, 0x41, 0x01, 0x8F, 0x59, - 0x90, 0x3B, 0x40, 0xF2, 0x02, 0x0C, 0x66, 0x38, - 0xA6, 0x6A, 0x54, 0xC3, 0xA3, 0x38, 0x41, 0x4D, - 0x97, 0xA5, 0xC3, 0x94, 0xF3, 0x26, 0x6F, 0x33 - }, - { - 0x0C, 0x2F, 0x62, 0xB8, 0x98, 0xFB, 0x2F, 0x63, - 0x61, 0x7E, 0x78, 0x73, 0x45, 0x26, 0x3C, 0xB9, - 0xCF, 0x60, 0x65, 0x4B, 0x55, 0x3B, 0x20, 0x3E, - 0xE4, 0x9D, 0xCB, 0xB8, 0xF2, 0xA6, 0xAF, 0xAC - }, - { - 0xD7, 0xD6, 0xCB, 0x55, 0x2A, 0xEB, 0x36, 0xEB, - 0x96, 0xB1, 0xD5, 0xE0, 0x52, 0xF8, 0xD9, 0x21, - 0xC3, 0x24, 0x5A, 0x97, 0x0D, 0x0B, 0xC8, 0x41, - 0x0C, 0xD6, 0x5E, 0xA1, 0x04, 0xC8, 0xE7, 0x79 - }, - { - 0xB7, 0x14, 0x1F, 0x30, 0x5E, 0xFD, 0xFE, 0xE5, - 0x56, 0xBD, 0x13, 0xE0, 0x40, 0x0D, 0x1E, 0x8C, - 0xFD, 0x65, 0x48, 0xBF, 0x81, 0xEE, 0x5D, 0x15, - 0x32, 0x7E, 0x49, 0x95, 0xCA, 0x8A, 0xD6, 0xFD - }, - { - 0xB6, 0xB6, 0x38, 0xD2, 0x2B, 0x7A, 0x12, 0x82, - 0x53, 0x74, 0xF7, 0x03, 0x48, 0xD7, 0x44, 0x8D, - 0x4E, 0x7D, 0x90, 0x8C, 0xF6, 0xE7, 0xBB, 0xEF, - 0x8C, 0x93, 0xEF, 0x67, 0x9B, 0x2A, 0x54, 0x78 - }, - { - 0x0D, 0xF4, 0x58, 0x56, 0x41, 0xFA, 0x09, 0xF6, - 0xCB, 0xA4, 0xCC, 0x16, 0x5A, 0x10, 0xAD, 0xDE, - 0x34, 0xF8, 0x0D, 0x42, 0x5A, 0x70, 0xDB, 0x67, - 0xE2, 0xFD, 0x23, 0x7B, 0x62, 0x7F, 0x43, 0x8A - }, - { - 0x10, 0x6B, 0x2B, 0x35, 0x4D, 0x95, 0xAC, 0xEC, - 0xD0, 0xD9, 0x58, 0x8F, 0xBC, 0x23, 0x1F, 0x8B, - 0xEA, 0x2E, 0x94, 0xEA, 0x66, 0x2D, 0xDD, 0x3F, - 0x13, 0x9E, 0x1B, 0x67, 0x87, 0x46, 0x1E, 0xED - }, - { - 0xAE, 0x5C, 0x69, 0xEE, 0xFE, 0x90, 0x89, 0xB2, - 0x9C, 0x6C, 0x1A, 0x23, 0x70, 0xD2, 0x05, 0x52, - 0xBA, 0x40, 0xC3, 0xD5, 0xE3, 0x71, 0x3C, 0x12, - 0xDE, 0xFC, 0xAE, 0x99, 0x7F, 0x43, 0x3E, 0xCD - }, - { - 0x1A, 0xAE, 0xF5, 0x5D, 0x4F, 0xA8, 0x92, 0xB6, - 0x35, 0xFB, 0x2A, 0x7A, 0x25, 0xF9, 0xA8, 0xE0, - 0x3B, 0x9F, 0xFB, 0x08, 0x2A, 0xE9, 0xC0, 0x7C, - 0x20, 0x42, 0xA0, 0x49, 0xC6, 0x51, 0x5E, 0x45 - }, - { - 0x29, 0x7D, 0xAA, 0xC4, 0xD5, 0x4D, 0xC4, 0x1C, - 0x83, 0xE3, 0x23, 0x94, 0x59, 0x9F, 0x17, 0x1C, - 0xDA, 0xA9, 0xDD, 0xB7, 0x17, 0x26, 0xDA, 0x4E, - 0xCE, 0x3C, 0xCF, 0x95, 0xC1, 0x1F, 0x56, 0xDF - }, - { - 0x2C, 0x45, 0xAC, 0xF4, 0x91, 0xEC, 0x2F, 0x4B, - 0x7E, 0x30, 0x9E, 0x7E, 0xDD, 0x81, 0x5B, 0xE5, - 0xA5, 0x4C, 0x44, 0x58, 0xD1, 0xA5, 0x7C, 0x4F, - 0x9B, 0x76, 0x3B, 0x0C, 0x67, 0x18, 0xD4, 0x3E - }, - { - 0x2F, 0x92, 0xF9, 0x01, 0x70, 0xD3, 0xAE, 0x95, - 0xAB, 0xFA, 0xC3, 0xA6, 0x98, 0x9A, 0x2A, 0x60, - 0xCB, 0x28, 0xB8, 0x58, 0x78, 0x2B, 0xE7, 0xEA, - 0x17, 0x9B, 0x48, 0xA7, 0x27, 0x6D, 0xD8, 0x60 - }, - { - 0xB4, 0x01, 0xE8, 0x4B, 0x15, 0xAC, 0xC4, 0x70, - 0x93, 0x6D, 0x6E, 0x37, 0xF7, 0x88, 0x83, 0x33, - 0x09, 0x27, 0x31, 0x13, 0x3B, 0x25, 0x1B, 0xEA, - 0x22, 0x16, 0x58, 0xCA, 0x19, 0xA7, 0x56, 0x69 - }, - { - 0xF8, 0xB3, 0x40, 0xD2, 0xB9, 0xB3, 0x3D, 0x43, - 0xA0, 0xA6, 0x6F, 0x34, 0x97, 0x82, 0x0A, 0xFA, - 0xAE, 0xE4, 0x34, 0xC4, 0xE3, 0xC0, 0xC1, 0x7E, - 0x89, 0x8B, 0x83, 0x01, 0xC5, 0x7A, 0x26, 0xBD - }, - { - 0x56, 0x6D, 0xA2, 0x83, 0x99, 0x03, 0x89, 0x13, - 0x8A, 0xA6, 0xF2, 0xAA, 0xA3, 0xB9, 0xE4, 0x0C, - 0xBF, 0x90, 0x84, 0x0E, 0xC7, 0x62, 0xBD, 0x96, - 0xB7, 0xE3, 0x3A, 0x31, 0x13, 0xB1, 0x01, 0x08 - }, - { - 0x34, 0x06, 0x72, 0xB7, 0x04, 0x67, 0x60, 0x42, - 0xC9, 0xBF, 0x3F, 0x33, 0x7B, 0xA7, 0x9F, 0x11, - 0x33, 0x6A, 0xEB, 0xB5, 0xEC, 0x5D, 0x31, 0xDF, - 0x54, 0xEB, 0x6A, 0xD3, 0xB0, 0x43, 0x04, 0x42 - }, - { - 0x50, 0x50, 0xB7, 0x3B, 0x93, 0x16, 0xEE, 0xA2, - 0xF1, 0x49, 0xBF, 0xFD, 0x22, 0xAE, 0xE3, 0x84, - 0xDC, 0x54, 0x03, 0xB1, 0x8E, 0x16, 0xFA, 0x88, - 0x82, 0x5E, 0x18, 0x16, 0x09, 0x49, 0x6F, 0xD2 - }, - { - 0x13, 0x65, 0xCC, 0x6F, 0xB9, 0x26, 0x0E, 0x86, - 0x88, 0x9B, 0x3A, 0xFB, 0xD1, 0xC8, 0xBC, 0x12, - 0x92, 0x31, 0x97, 0x71, 0x5D, 0xB2, 0x66, 0xCC, - 0x7A, 0x01, 0xCA, 0x57, 0x15, 0x9F, 0x75, 0x96 - }, - { - 0x29, 0x46, 0x6F, 0x51, 0xC0, 0x11, 0xFD, 0x10, - 0x18, 0x14, 0x94, 0xA9, 0x37, 0x9B, 0x61, 0x59, - 0xB8, 0x08, 0xAE, 0x0F, 0xCB, 0x01, 0x61, 0xF8, - 0xF0, 0x79, 0x09, 0xFF, 0x04, 0x1B, 0x19, 0x65 - }, - { - 0x65, 0x91, 0xA3, 0xC3, 0xC7, 0x67, 0xB3, 0x8D, - 0x80, 0x5E, 0xD3, 0xF7, 0xEB, 0x67, 0x63, 0xE8, - 0xB3, 0xD2, 0xD6, 0x42, 0xE7, 0x30, 0x77, 0x45, - 0xCD, 0x34, 0x18, 0xEF, 0xF6, 0x9A, 0x19, 0xED - }, - { - 0x1D, 0x84, 0xB0, 0x4B, 0x13, 0x38, 0xB0, 0xD2, - 0xE3, 0xC9, 0x8F, 0x7A, 0xEA, 0x3E, 0x98, 0xEF, - 0xFC, 0x53, 0x0A, 0x50, 0x44, 0xB9, 0x3B, 0x96, - 0xC6, 0x7E, 0xE3, 0x79, 0xD6, 0x2E, 0x81, 0x5F - }, - { - 0x6F, 0xA2, 0x95, 0x27, 0x25, 0x32, 0xE9, 0x83, - 0xE1, 0x66, 0xB1, 0x2E, 0x49, 0x99, 0xC0, 0x52, - 0xF8, 0x9D, 0x9F, 0x30, 0xAE, 0x14, 0x81, 0xF3, - 0xD6, 0x0E, 0xAE, 0x85, 0xF8, 0xEE, 0x17, 0x8A - }, - { - 0x4E, 0xD8, 0xCA, 0xA9, 0x8E, 0xC3, 0x9F, 0x6A, - 0x62, 0x9F, 0x9A, 0x65, 0x4A, 0x44, 0x7E, 0x7E, - 0x3E, 0x4F, 0xAE, 0xEC, 0xF3, 0x4D, 0xCF, 0x65, - 0x8D, 0x2D, 0x4B, 0x98, 0xB7, 0xA2, 0xEC, 0x1A - }, - { - 0xCF, 0xAB, 0x82, 0x99, 0xA0, 0xDA, 0x0C, 0x2A, - 0x7E, 0x8F, 0xF5, 0x4D, 0x0A, 0x67, 0x6D, 0x14, - 0x1A, 0xB2, 0x6B, 0xC0, 0x01, 0x2E, 0x5F, 0x66, - 0x8E, 0x85, 0xD8, 0x14, 0xBC, 0x98, 0x88, 0xB0 - }, - { - 0xA6, 0x26, 0x54, 0x3C, 0x27, 0x1F, 0xCC, 0xC3, - 0xE4, 0x45, 0x0B, 0x48, 0xD6, 0x6B, 0xC9, 0xCB, - 0xDE, 0xB2, 0x5E, 0x5D, 0x07, 0x7A, 0x62, 0x13, - 0xCD, 0x90, 0xCB, 0xBD, 0x0F, 0xD2, 0x20, 0x76 - }, - { - 0x05, 0xCF, 0x3A, 0x90, 0x04, 0x91, 0x16, 0xDC, - 0x60, 0xEF, 0xC3, 0x15, 0x36, 0xAA, 0xA3, 0xD1, - 0x67, 0x76, 0x29, 0x94, 0x89, 0x28, 0x76, 0xDC, - 0xB7, 0xEF, 0x3F, 0xBE, 0xCD, 0x74, 0x49, 0xC0 - }, - { - 0xCC, 0xD6, 0x1C, 0x92, 0x6C, 0xC1, 0xE5, 0xE9, - 0x12, 0x8C, 0x02, 0x1C, 0x0C, 0x6E, 0x92, 0xAE, - 0xFC, 0x4F, 0xFB, 0xDE, 0x39, 0x4D, 0xD6, 0xF3, - 0xB7, 0xD8, 0x7A, 0x8C, 0xED, 0x89, 0x60, 0x14 - }, - { - 0x3F, 0xFA, 0x4F, 0x6D, 0xAF, 0xA5, 0x7F, 0x1C, - 0x50, 0xF1, 0xAF, 0xA4, 0xF8, 0x12, 0x92, 0xAE, - 0x71, 0xA0, 0x6F, 0xE4, 0xF8, 0xFF, 0x46, 0xC5, - 0x1D, 0x32, 0xFF, 0x26, 0x13, 0x48, 0x9F, 0x2B - }, - { - 0x19, 0xD3, 0x92, 0x1C, 0xFC, 0x0F, 0x1A, 0x2B, - 0xB8, 0x13, 0xB3, 0xDF, 0xA9, 0x6D, 0xF9, 0x0E, - 0x2C, 0x6B, 0x87, 0xD7, 0x8E, 0x92, 0x38, 0xF8, - 0x5B, 0xBC, 0x77, 0xAE, 0x9A, 0x73, 0xF9, 0x8F - }, - { - 0xF5, 0xC9, 0x16, 0xFF, 0x2B, 0xAD, 0xDE, 0x3E, - 0x29, 0xA5, 0xF9, 0x40, 0x23, 0x3E, 0xA3, 0x40, - 0x07, 0xD8, 0xF1, 0x82, 0xA4, 0x8A, 0x80, 0x8B, - 0x46, 0xBB, 0x80, 0x58, 0x00, 0x3F, 0x19, 0x03 - }, - { - 0x6B, 0xA0, 0x7A, 0x1A, 0xF7, 0x58, 0xE6, 0x82, - 0xD3, 0xE0, 0x9A, 0xDD, 0x2D, 0x3D, 0xCD, 0xF3, - 0x5D, 0x95, 0x53, 0xF6, 0x79, 0x98, 0x54, 0xA2, - 0x7E, 0x53, 0x60, 0x63, 0xC5, 0x7F, 0x81, 0xA5 - }, - { - 0xB7, 0x83, 0x78, 0xFB, 0x44, 0x6C, 0x54, 0x4B, - 0x04, 0xD4, 0xA1, 0x52, 0xAC, 0x49, 0x57, 0x31, - 0x61, 0xB3, 0xDD, 0xEB, 0xF6, 0x93, 0x86, 0x77, - 0x0A, 0x55, 0xA7, 0xD4, 0x7B, 0x88, 0x0E, 0x5D - }, - { - 0xB5, 0x19, 0x53, 0x8F, 0xE1, 0x62, 0x6F, 0x0C, - 0x59, 0x59, 0x45, 0xAD, 0xA5, 0x8A, 0x34, 0x4F, - 0xAA, 0xC0, 0x06, 0x17, 0x61, 0xCC, 0x9D, 0x4A, - 0x84, 0x14, 0x19, 0xBD, 0x32, 0xEE, 0xC0, 0xD9 - }, - { - 0x96, 0xE4, 0x88, 0xB0, 0x27, 0x89, 0x64, 0x13, - 0xF4, 0x03, 0x4B, 0x03, 0x54, 0xF4, 0x84, 0x84, - 0xF6, 0xCF, 0xC1, 0x0F, 0x8E, 0xC5, 0x7B, 0x02, - 0x6F, 0xD2, 0x1A, 0x3B, 0x88, 0x36, 0x1A, 0x74 - }, - { - 0x77, 0x0C, 0x8A, 0x5F, 0x47, 0xBF, 0xD7, 0x69, - 0xCE, 0xD3, 0x5A, 0x71, 0xAF, 0xC3, 0xCA, 0x1F, - 0xF4, 0xC1, 0xF1, 0xE7, 0xCC, 0x3D, 0x23, 0x56, - 0xDE, 0x94, 0x50, 0x04, 0x36, 0x8D, 0x81, 0x45 - }, - { - 0x6D, 0xF9, 0xD8, 0xD0, 0xD3, 0xA8, 0xD9, 0x8C, - 0x83, 0x50, 0xD7, 0x16, 0x2B, 0xD1, 0x55, 0x79, - 0xD5, 0x70, 0x7A, 0xDD, 0x76, 0x11, 0xA0, 0x0E, - 0xEB, 0x6C, 0xA5, 0x74, 0x3E, 0xD7, 0x8C, 0xB7 - }, - { - 0x4F, 0x0F, 0xE8, 0xFC, 0x17, 0x90, 0x15, 0x91, - 0xCF, 0x34, 0x87, 0x30, 0xE1, 0x87, 0xDE, 0x52, - 0x3D, 0x6D, 0x75, 0x68, 0xC1, 0xFB, 0xD8, 0x24, - 0x85, 0x91, 0x39, 0x85, 0xEB, 0x67, 0x97, 0x1C - }, - { - 0x0E, 0xF3, 0xBB, 0x35, 0xCF, 0x37, 0x2B, 0xD9, - 0x4E, 0x3F, 0x80, 0xEE, 0xCE, 0xBD, 0x50, 0xEF, - 0x0D, 0x03, 0x08, 0xE0, 0x1E, 0x0E, 0xD6, 0xDE, - 0x0F, 0x5A, 0x8A, 0x8C, 0x81, 0x8A, 0x00, 0x74 - }, - { - 0xC0, 0x38, 0xD3, 0xE8, 0x09, 0xA5, 0xE3, 0xA5, - 0x8D, 0xB2, 0xF9, 0x1C, 0x15, 0xAE, 0x12, 0x43, - 0x95, 0x78, 0xF7, 0x54, 0x85, 0xCD, 0x84, 0xF5, - 0x56, 0xC6, 0x97, 0x1E, 0x8E, 0x25, 0x06, 0x20 - }, - { - 0xCE, 0x39, 0x9A, 0x0F, 0x08, 0x27, 0x7D, 0x8D, - 0x48, 0x16, 0x09, 0x50, 0x60, 0xEB, 0xBF, 0x33, - 0xDA, 0x01, 0x6F, 0xB4, 0x3A, 0x6C, 0x35, 0x6D, - 0x5A, 0x3F, 0xE4, 0xBB, 0x57, 0x4C, 0x5E, 0x7B - }, - { - 0x86, 0x9F, 0x7E, 0x31, 0x6B, 0x19, 0x4F, 0x95, - 0x31, 0xBC, 0xAF, 0x33, 0xF7, 0x91, 0x3F, 0x1B, - 0x9C, 0xFC, 0x6B, 0xB5, 0xDC, 0xF8, 0x6B, 0x69, - 0x2B, 0xF8, 0xCA, 0xB2, 0x9B, 0x8A, 0xA9, 0x6F - }, - { - 0x32, 0x7D, 0xFA, 0x46, 0x44, 0x59, 0xD9, 0xE4, - 0x8F, 0x5E, 0x55, 0xC7, 0xF5, 0xBA, 0xA6, 0x8F, - 0xC4, 0xA2, 0x5A, 0xD6, 0x22, 0xBC, 0x7B, 0xF0, - 0x1A, 0xCA, 0x82, 0xFD, 0x5E, 0x72, 0x31, 0x4C - }, - { - 0xE0, 0x0D, 0xAD, 0x31, 0x51, 0xB9, 0x08, 0x5E, - 0xAE, 0x78, 0x69, 0x84, 0xFE, 0x20, 0x73, 0x52, - 0x32, 0xB7, 0xFF, 0x7F, 0x1B, 0x1D, 0xB7, 0x96, - 0x1F, 0xD0, 0xD0, 0xE0, 0xF6, 0x05, 0xDB, 0x9A - }, - { - 0x07, 0x6F, 0x64, 0x45, 0x20, 0xD0, 0xB4, 0x73, - 0x2D, 0x6C, 0x53, 0x1C, 0x93, 0x49, 0x08, 0x90, - 0x26, 0x93, 0x6D, 0x99, 0x82, 0x04, 0x61, 0xDA, - 0x87, 0x74, 0x9A, 0x52, 0x0F, 0xBE, 0x90, 0xCE - }, - { - 0xB4, 0x41, 0x4C, 0xA1, 0x37, 0x3B, 0xE4, 0x6F, - 0x15, 0xCE, 0xA6, 0xB1, 0x25, 0x5A, 0x7D, 0x18, - 0x86, 0xC6, 0xFD, 0xB0, 0x8E, 0xD5, 0xAF, 0x96, - 0x57, 0xD5, 0xAA, 0xC3, 0x17, 0xDE, 0x3A, 0x29 - }, - { - 0x8D, 0x1A, 0xB0, 0x26, 0x3D, 0xAB, 0x7B, 0x86, - 0xEC, 0xEE, 0x21, 0x91, 0x62, 0xD9, 0x99, 0xA0, - 0x12, 0x45, 0x57, 0x22, 0x69, 0xDE, 0x31, 0x10, - 0x0E, 0x5D, 0x88, 0xFC, 0x1B, 0x1E, 0xAA, 0x69 - }, - { - 0xB4, 0x8D, 0x1C, 0x1F, 0x83, 0x92, 0x4A, 0x02, - 0xA2, 0x3E, 0x5E, 0x0F, 0x97, 0x1E, 0x16, 0xE8, - 0x7F, 0xC4, 0x88, 0x48, 0x53, 0x83, 0x34, 0x85, - 0x19, 0x1A, 0x2B, 0x60, 0x72, 0x2F, 0xE2, 0x69 - }, - { - 0xF2, 0xED, 0xD5, 0xF7, 0x50, 0xA2, 0x0A, 0x54, - 0x1D, 0x3F, 0x6B, 0xD5, 0xDF, 0x80, 0x83, 0x8F, - 0x11, 0x82, 0x5B, 0x25, 0xA9, 0x8F, 0x3D, 0xA5, - 0xE1, 0x52, 0x3B, 0xFF, 0x81, 0x3B, 0xB5, 0x60 - }, - { - 0x07, 0x16, 0x60, 0x04, 0xEF, 0x88, 0xE1, 0x61, - 0x4E, 0xBD, 0xC8, 0x87, 0xDF, 0xC7, 0xDA, 0x42, - 0xEB, 0xCD, 0xA0, 0x2D, 0x92, 0xC1, 0x2F, 0x18, - 0xD1, 0x18, 0x6C, 0xE3, 0xC9, 0x87, 0x10, 0xE4 - }, - { - 0x69, 0xF8, 0x3A, 0xA1, 0x01, 0xD6, 0x9B, 0x8F, - 0x12, 0x20, 0xDC, 0x1C, 0x53, 0x8D, 0x89, 0x34, - 0x45, 0x84, 0x20, 0xBE, 0x33, 0x5F, 0xEB, 0x46, - 0xFF, 0xC4, 0x7A, 0x2C, 0x8E, 0x2E, 0x6A, 0x8A - }, - { - 0xE1, 0x46, 0x9F, 0x16, 0xC6, 0xFC, 0xA1, 0x51, - 0x19, 0xA2, 0x72, 0xE5, 0x85, 0xC7, 0xF5, 0x04, - 0x21, 0xBC, 0x8A, 0x41, 0x4C, 0x86, 0x4F, 0xC7, - 0x6B, 0x01, 0x04, 0x8D, 0x4C, 0x6F, 0xC5, 0xD2 - }, - { - 0x67, 0x63, 0x34, 0x3A, 0x1C, 0x80, 0xF1, 0x92, - 0x83, 0xA8, 0x0A, 0xF8, 0x54, 0xE7, 0xE9, 0x06, - 0x5C, 0x2A, 0x83, 0x49, 0xEF, 0x11, 0xF1, 0x1B, - 0xFB, 0x76, 0xBA, 0x9F, 0x97, 0x04, 0x85, 0x39 - }, - { - 0x1A, 0xE3, 0xA0, 0xB8, 0xB2, 0xC7, 0x88, 0x5B, - 0xA3, 0x18, 0xAD, 0x6F, 0xD4, 0x49, 0xFC, 0x4D, - 0x7F, 0x84, 0x04, 0xB5, 0x9C, 0xF3, 0x27, 0x5F, - 0xCD, 0xEA, 0x13, 0x56, 0x34, 0x25, 0x77, 0x2D - }, - { - 0x3A, 0x71, 0x18, 0x4C, 0xBE, 0x8E, 0xB5, 0x8E, - 0x68, 0x12, 0xBA, 0x7A, 0x7A, 0x1D, 0xCA, 0x0C, - 0xA2, 0x8E, 0xEC, 0x63, 0x78, 0x2F, 0x2E, 0x6E, - 0x3C, 0x0B, 0x87, 0x07, 0x3F, 0x53, 0x3F, 0xFD - }, - { - 0x18, 0x4C, 0xCF, 0x2A, 0x52, 0xF3, 0x88, 0xC9, - 0xF8, 0x97, 0xA8, 0x57, 0xFE, 0x7C, 0xCE, 0xC2, - 0x95, 0x99, 0x11, 0xA8, 0xD1, 0xE0, 0x9E, 0xE8, - 0x80, 0x4D, 0x8D, 0x5D, 0x50, 0x8D, 0xD9, 0x18 - }, - { - 0xA6, 0x6D, 0x40, 0x9A, 0xF7, 0xAF, 0xD7, 0x5B, - 0xE8, 0x31, 0xDD, 0x49, 0x8C, 0x19, 0x6E, 0xF1, - 0x2C, 0x73, 0xC3, 0x11, 0x29, 0xEC, 0x02, 0xD5, - 0xF1, 0x2A, 0xB0, 0x2A, 0x2C, 0x63, 0xA2, 0x5E - }, - { - 0x58, 0xB3, 0x74, 0x97, 0xFC, 0xF0, 0xBE, 0x0E, - 0x0C, 0xF1, 0x73, 0x40, 0x45, 0xC2, 0x95, 0xB2, - 0x86, 0xC7, 0x6A, 0x7C, 0x04, 0x8E, 0x87, 0xC5, - 0x40, 0x28, 0xED, 0x36, 0x91, 0x5B, 0x5D, 0xF3 - }, - { - 0x2C, 0x73, 0x33, 0x54, 0x0A, 0x83, 0x2D, 0x64, - 0x45, 0x6E, 0x43, 0x05, 0x8C, 0x50, 0xD9, 0x3C, - 0x93, 0x2A, 0xD9, 0xB1, 0x8B, 0x3F, 0xC3, 0xA0, - 0x59, 0x92, 0x07, 0xCD, 0xA3, 0xB3, 0xC7, 0xA6 - }, - { - 0x3D, 0xC0, 0x62, 0xFF, 0xB5, 0x7D, 0x83, 0x5F, - 0xE3, 0xAA, 0x40, 0x94, 0x66, 0x82, 0x2F, 0x91, - 0x86, 0x91, 0x84, 0x23, 0x94, 0x75, 0x05, 0x16, - 0x5F, 0xDC, 0xDF, 0xB7, 0x30, 0x6F, 0x72, 0x59 - }, - { - 0x89, 0x20, 0x48, 0x44, 0xAC, 0xB9, 0x2F, 0x35, - 0x3B, 0xFC, 0x89, 0xA3, 0xCE, 0x8A, 0x98, 0x17, - 0x21, 0x9C, 0x10, 0x13, 0x85, 0xC5, 0x93, 0xCF, - 0x60, 0xE0, 0xBE, 0xFA, 0x96, 0x38, 0xE1, 0x4E - }, - { - 0x78, 0x2B, 0xA9, 0x02, 0xE9, 0x12, 0x32, 0x94, - 0x1C, 0x78, 0xC4, 0x9C, 0xD9, 0x77, 0x1A, 0x5D, - 0x99, 0x92, 0xF9, 0xB0, 0x7D, 0x9C, 0x0A, 0x2D, - 0xF8, 0x2D, 0x38, 0x5D, 0x15, 0xC4, 0x2B, 0xB3 - }, - { - 0x0D, 0xC3, 0xFF, 0x7D, 0xF0, 0xDF, 0xC0, 0x23, - 0x76, 0x3D, 0x76, 0x34, 0xE1, 0x8D, 0xA2, 0x73, - 0x93, 0xFC, 0x9F, 0xDB, 0x1C, 0x15, 0x46, 0x46, - 0x86, 0x10, 0x75, 0xF0, 0xA8, 0x7D, 0x0E, 0x90 - }, - { - 0xB9, 0x5C, 0x65, 0xFB, 0x6F, 0x25, 0x4E, 0xDB, - 0xDE, 0x8C, 0x03, 0x7D, 0x5C, 0x8B, 0x20, 0x39, - 0x34, 0x0F, 0x4A, 0xC2, 0xB0, 0x23, 0xA6, 0xAA, - 0x28, 0xA8, 0xFC, 0xD2, 0xD2, 0x68, 0x9C, 0xF4 - }, - { - 0x87, 0xE8, 0xF5, 0x15, 0x72, 0xA5, 0xD6, 0xA2, - 0x39, 0xF8, 0x5B, 0xC5, 0x3E, 0x11, 0x74, 0xE1, - 0x5B, 0xE1, 0x2F, 0xCD, 0xF1, 0x51, 0xA0, 0xB9, - 0xA2, 0xB4, 0x36, 0x40, 0xCA, 0xF7, 0x4C, 0x1D - }, - { - 0x2A, 0x6F, 0x3E, 0x46, 0x2C, 0x40, 0x5C, 0x35, - 0x4F, 0xE8, 0x0F, 0xCC, 0xCE, 0xD1, 0xC9, 0xBE, - 0x44, 0x32, 0x5D, 0x29, 0xE0, 0x7D, 0xA3, 0x09, - 0x60, 0xB6, 0x25, 0xA7, 0x6E, 0xA4, 0x2F, 0x83 - }, - { - 0x20, 0xB4, 0x6C, 0x8F, 0xBF, 0xCA, 0x97, 0x45, - 0x32, 0x62, 0x46, 0x0F, 0x84, 0x98, 0xA7, 0xE2, - 0xAF, 0x15, 0xAC, 0x79, 0xB5, 0x9D, 0xDF, 0xB0, - 0x27, 0xBB, 0x52, 0xF2, 0xD6, 0x8E, 0x8F, 0x51 - }, - { - 0x31, 0xB0, 0x76, 0x3C, 0xB9, 0xBA, 0x92, 0x40, - 0x3D, 0xCA, 0x1A, 0xBD, 0xD7, 0x34, 0x2D, 0x7D, - 0xE9, 0x4C, 0x58, 0x1E, 0x76, 0xF7, 0xC9, 0xA6, - 0x1E, 0x51, 0x59, 0x28, 0xE1, 0x0B, 0x4E, 0x77 - }, - { - 0xE1, 0x91, 0xE1, 0x17, 0x06, 0x3C, 0xFA, 0xC9, - 0x64, 0x2C, 0xD9, 0x3C, 0xB4, 0x2B, 0x39, 0xED, - 0xDD, 0x9E, 0x4A, 0xB6, 0x5F, 0x1D, 0x03, 0x97, - 0xE3, 0xE1, 0x7D, 0xD0, 0x4C, 0xAB, 0x11, 0x80 - }, - { - 0x22, 0x5A, 0x20, 0x21, 0x07, 0xA7, 0x47, 0x03, - 0xE0, 0x41, 0xC6, 0xCC, 0xA4, 0xEA, 0xCF, 0x4F, - 0x21, 0xEE, 0xA6, 0xF2, 0x2A, 0x14, 0x6D, 0x8D, - 0xA2, 0xAB, 0x8C, 0xF6, 0x19, 0x72, 0x29, 0xA5 - }, - { - 0xEF, 0xC4, 0x83, 0x6B, 0xE4, 0xAC, 0x3E, 0x97, - 0x91, 0xD2, 0xEC, 0x62, 0x22, 0x6E, 0x7D, 0xF6, - 0x41, 0x18, 0xF4, 0x56, 0x5C, 0x19, 0xE6, 0xC9, - 0xE8, 0x40, 0x63, 0xF5, 0x66, 0x1C, 0x7B, 0x2F - }, - { - 0x3A, 0x76, 0xB0, 0x15, 0x2C, 0x0E, 0x1D, 0x1F, - 0xD7, 0xAC, 0x9D, 0x91, 0xA2, 0x8A, 0x18, 0xE1, - 0xA4, 0xC0, 0x60, 0x80, 0xF2, 0xB7, 0xEC, 0xEF, - 0xB6, 0xEF, 0xFE, 0x28, 0xB8, 0xCF, 0xC7, 0x65 - }, - { - 0x0D, 0x46, 0xAD, 0x03, 0x90, 0x70, 0x11, 0x58, - 0x28, 0xF9, 0x4E, 0xB6, 0xB7, 0x29, 0x63, 0xE6, - 0x0A, 0x7D, 0x2D, 0xB7, 0xCA, 0x89, 0x91, 0xD2, - 0x25, 0xC3, 0x87, 0x7B, 0x14, 0x9B, 0x0A, 0x8A - }, - { - 0xE4, 0x4C, 0xFC, 0x42, 0x11, 0x8F, 0x09, 0x6B, - 0xFC, 0x51, 0x52, 0x1C, 0xB1, 0x8D, 0x5D, 0x65, - 0x25, 0x58, 0x6B, 0x98, 0x9F, 0x4E, 0xE2, 0xB8, - 0x28, 0xC5, 0x19, 0x9F, 0xEA, 0xB9, 0x4B, 0x82 - }, - { - 0x6D, 0x4B, 0xD2, 0xE0, 0x73, 0xEC, 0x49, 0x66, - 0x84, 0x7F, 0x5C, 0xBE, 0x88, 0xDD, 0xFA, 0xBA, - 0x2B, 0xE4, 0xCA, 0xF2, 0xF3, 0x33, 0x55, 0x2B, - 0x85, 0x53, 0xDA, 0x53, 0x34, 0x87, 0xC2, 0x5B - }, - { - 0xBB, 0xC4, 0x6D, 0xB4, 0x37, 0xD1, 0x07, 0xC9, - 0x67, 0xCA, 0x6D, 0x91, 0x45, 0x5B, 0xBD, 0xFE, - 0x05, 0x21, 0x18, 0xAB, 0xD1, 0xD0, 0x69, 0xF0, - 0x43, 0x59, 0x48, 0x7E, 0x13, 0xAE, 0xA0, 0xE1 - }, - { - 0xB9, 0x74, 0xC1, 0x4D, 0xB7, 0xD3, 0x17, 0x4D, - 0xD0, 0x60, 0x84, 0xBB, 0x30, 0x31, 0x08, 0xB2, - 0xF0, 0xDA, 0xF5, 0x0E, 0xCC, 0xC3, 0x29, 0x35, - 0x43, 0x79, 0x5C, 0x96, 0x36, 0xC6, 0x24, 0x82 - }, - { - 0x0E, 0xEE, 0x23, 0x5B, 0x06, 0x93, 0x6A, 0xED, - 0x71, 0x73, 0xC8, 0xC1, 0x9A, 0xA7, 0xC2, 0x17, - 0xB9, 0xEE, 0xDA, 0xEB, 0x1A, 0x88, 0xF3, 0x05, - 0x52, 0xE9, 0x22, 0x51, 0x45, 0x14, 0x9E, 0x82 - }, - { - 0x36, 0xD0, 0x89, 0xE0, 0x25, 0xB5, 0x68, 0x69, - 0x37, 0x74, 0x28, 0x25, 0xE6, 0xEE, 0x3D, 0x83, - 0xE7, 0xD7, 0xA5, 0x0C, 0x82, 0x3C, 0x82, 0x88, - 0x34, 0x60, 0xF3, 0x85, 0x14, 0x7D, 0xC1, 0x7B - }, - { - 0x77, 0xEE, 0x4F, 0xFC, 0x9F, 0x5D, 0xD6, 0x05, - 0x47, 0x0D, 0xC0, 0xE7, 0x4D, 0x6B, 0x17, 0xC5, - 0x13, 0x0D, 0x8B, 0x73, 0x91, 0x3F, 0x36, 0xD5, - 0xF8, 0x78, 0x7E, 0x61, 0x9A, 0x94, 0x7C, 0xA0 - }, - { - 0x0F, 0xE6, 0xC2, 0xAB, 0x75, 0x42, 0x33, 0x36, - 0x0D, 0x68, 0xB9, 0xAC, 0x80, 0xCD, 0x61, 0x18, - 0x4B, 0xFA, 0xA7, 0xD3, 0x56, 0x29, 0x41, 0x80, - 0x02, 0x5F, 0xE4, 0x06, 0x39, 0xC7, 0x6C, 0x36 - }, - { - 0x99, 0x60, 0x88, 0xC7, 0x94, 0x56, 0xEC, 0xDD, - 0xA1, 0xFB, 0xC0, 0x2E, 0xE1, 0xBA, 0x42, 0xD9, - 0x1D, 0x85, 0x8C, 0x31, 0x0A, 0x5A, 0x8B, 0x46, - 0x74, 0xFE, 0x6A, 0x7C, 0x14, 0x44, 0x14, 0xA1 - }, - { - 0x9E, 0x33, 0x8A, 0xED, 0x0B, 0xC7, 0x1C, 0x0C, - 0x97, 0xF1, 0x98, 0x55, 0xBF, 0x49, 0x17, 0x4F, - 0x70, 0xA9, 0xD7, 0x70, 0x14, 0x87, 0x36, 0x63, - 0x21, 0x34, 0x27, 0x50, 0x2B, 0xD8, 0x5D, 0x9F - }, - { - 0x4A, 0x84, 0x3D, 0x26, 0xAD, 0xEC, 0x52, 0x0E, - 0x4B, 0x5D, 0xBF, 0x01, 0x45, 0xCC, 0x4F, 0x50, - 0x24, 0xFA, 0xFC, 0xDC, 0x20, 0x25, 0x82, 0x4A, - 0x8C, 0x64, 0x65, 0x06, 0x17, 0x68, 0x7E, 0xE7 - }, - { - 0xC9, 0x16, 0x78, 0xC4, 0xA6, 0x4E, 0x2F, 0xA4, - 0xB7, 0x4D, 0xE6, 0x1A, 0xD0, 0xC0, 0x6F, 0xF0, - 0x6B, 0x5D, 0x67, 0x2F, 0xA7, 0xC6, 0x87, 0x7A, - 0x40, 0x14, 0xCE, 0x9E, 0x91, 0xBE, 0x38, 0xD7 - }, - { - 0xFF, 0x77, 0x77, 0x40, 0x5D, 0x32, 0x7A, 0xDB, - 0x58, 0x30, 0x1C, 0x71, 0x1E, 0xCD, 0xC2, 0xBC, - 0xE1, 0xBF, 0xA8, 0x29, 0xFF, 0xC9, 0xB1, 0x17, - 0xF2, 0x1A, 0x2B, 0x19, 0x8D, 0x0D, 0x68, 0x84 - }, - { - 0x0A, 0x8D, 0xDA, 0xF1, 0x72, 0x8C, 0x5C, 0xD9, - 0x3A, 0x25, 0x5D, 0x56, 0x23, 0xC3, 0xDA, 0xDA, - 0x2D, 0x3D, 0x05, 0x71, 0xBF, 0x14, 0x38, 0xAD, - 0xC8, 0xC9, 0x64, 0xA9, 0xAA, 0xD1, 0x18, 0xCB - }, - { - 0xC1, 0x33, 0xAB, 0xBD, 0x0D, 0x2D, 0x80, 0x8A, - 0x67, 0xB6, 0x74, 0x5B, 0x4B, 0x36, 0x50, 0xB4, - 0xA6, 0x4D, 0xC2, 0x76, 0xCF, 0x98, 0xE3, 0x03, - 0x57, 0xB6, 0xAB, 0xD5, 0xC1, 0xD2, 0x2A, 0x9B - }, - { - 0xC5, 0x9E, 0xE5, 0xC1, 0x96, 0xBA, 0x3C, 0xFE, - 0xF9, 0x40, 0x87, 0x79, 0x82, 0x07, 0xBD, 0xCE, - 0xF1, 0x39, 0xCE, 0x2C, 0xF7, 0x8D, 0xCE, 0xD6, - 0x19, 0x8F, 0x0F, 0xA3, 0xA4, 0x09, 0x13, 0x1C - }, - { - 0xC7, 0xFD, 0xAD, 0xE5, 0x9C, 0x46, 0x99, 0x38, - 0x5E, 0xBA, 0x59, 0xE7, 0x56, 0xC2, 0xB1, 0x71, - 0xB0, 0x23, 0xDE, 0xAE, 0x08, 0x2E, 0x5A, 0x6E, - 0x3B, 0xFB, 0xDC, 0x10, 0x73, 0xA3, 0x20, 0x03 - }, - { - 0x97, 0x53, 0x27, 0xC5, 0xF4, 0xDE, 0xC6, 0x41, - 0x4B, 0x6E, 0x00, 0xCB, 0x04, 0x23, 0x37, 0xB8, - 0xD2, 0xA6, 0x56, 0x46, 0x37, 0xA7, 0x44, 0x2A, - 0xEC, 0x7B, 0xE8, 0xF8, 0xC8, 0x9A, 0x2F, 0x1C - }, - { - 0xA2, 0xF7, 0x24, 0x6D, 0xF4, 0xA2, 0x4E, 0xFB, - 0xAC, 0xD3, 0xFD, 0x60, 0x68, 0x3A, 0xBC, 0x86, - 0x8B, 0xEF, 0x25, 0x32, 0x70, 0x52, 0xCF, 0x2F, - 0x1D, 0x93, 0xEC, 0xE4, 0xFF, 0xCD, 0x73, 0xC6 - }, - { - 0x49, 0x7F, 0xB2, 0xAC, 0xAC, 0xF1, 0x23, 0xF3, - 0x59, 0x5E, 0x40, 0xFC, 0x51, 0xA7, 0xBD, 0x24, - 0x45, 0x8B, 0xBC, 0xBA, 0x4A, 0x29, 0x40, 0xA5, - 0xCB, 0x03, 0xD6, 0x08, 0xFB, 0xDF, 0x28, 0x25 - }, - { - 0x0E, 0x97, 0xD2, 0x27, 0x93, 0xCE, 0x6F, 0x28, - 0x3D, 0x5C, 0x74, 0x0D, 0x30, 0x8A, 0x27, 0xAD, - 0x7C, 0x3B, 0x0D, 0x9A, 0xFC, 0xD3, 0xD9, 0xE9, - 0xB9, 0xCA, 0xC5, 0x6B, 0x10, 0x29, 0x0C, 0x8F - }, - { - 0x66, 0x30, 0xB3, 0x56, 0x18, 0xE7, 0x00, 0xD9, - 0x10, 0x68, 0x38, 0x93, 0x79, 0x5E, 0xF7, 0x0B, - 0xF0, 0x7E, 0xB1, 0x56, 0xF5, 0x5F, 0xFE, 0x3B, - 0x69, 0xAD, 0x88, 0xA4, 0xB8, 0xB0, 0xBF, 0xA1 - }, - { - 0x02, 0xF7, 0x42, 0xC6, 0xE9, 0x52, 0x78, 0x12, - 0x1A, 0x05, 0xE4, 0x42, 0x05, 0x44, 0x4F, 0xC5, - 0xEA, 0x6A, 0xF5, 0xE7, 0x41, 0xC5, 0x35, 0xBC, - 0x2C, 0xBC, 0x3B, 0x23, 0x5A, 0x2E, 0xA2, 0xB0 - }, - { - 0x46, 0x22, 0xF3, 0x6E, 0xB8, 0x98, 0x38, 0x3F, - 0x60, 0xD5, 0xBE, 0xD8, 0x09, 0xAC, 0x5C, 0x47, - 0x45, 0xC5, 0xD6, 0xAB, 0x84, 0xBC, 0xAD, 0xF7, - 0x9C, 0xF2, 0xA9, 0x6D, 0x4E, 0xC8, 0x88, 0x18 - }, - { - 0xCC, 0xD1, 0x1F, 0xAA, 0xA0, 0x58, 0x1E, 0xC3, - 0x2C, 0x3A, 0x40, 0x3F, 0x92, 0xEF, 0x43, 0xD5, - 0xDC, 0xF1, 0x95, 0xC1, 0xA1, 0x01, 0xDB, 0xFD, - 0x49, 0x5D, 0xBB, 0x4D, 0xCE, 0x80, 0x69, 0xE0 - }, - { - 0x06, 0x02, 0x4D, 0x6B, 0x07, 0xE0, 0x00, 0xBC, - 0xE6, 0x13, 0x47, 0x0A, 0x28, 0x80, 0x51, 0x9B, - 0x8B, 0xE4, 0xA3, 0x6B, 0xF3, 0x3C, 0x99, 0xC9, - 0x17, 0x89, 0x3E, 0xC7, 0x5D, 0xD9, 0x0F, 0xE3 - }, - { - 0xD9, 0x3A, 0xF9, 0x47, 0xB1, 0x46, 0x3A, 0x81, - 0x7D, 0xB4, 0x41, 0xA4, 0x74, 0x58, 0x8D, 0x6F, - 0x99, 0x6D, 0x24, 0x39, 0x83, 0xE8, 0x3C, 0x7E, - 0xEE, 0x90, 0xE1, 0xEF, 0xA4, 0x40, 0xD9, 0xBA - }, - { - 0x94, 0x89, 0x89, 0x45, 0xA7, 0xDB, 0x25, 0x9E, - 0x1B, 0x2E, 0x7C, 0xBE, 0xA4, 0x8A, 0xA0, 0xC6, - 0xD6, 0x57, 0x0D, 0x18, 0x17, 0x9F, 0x06, 0x18, - 0x47, 0x1C, 0x88, 0xF3, 0xEC, 0x3B, 0x0F, 0xC3 - }, - { - 0x4C, 0x2D, 0x93, 0x52, 0x56, 0x39, 0x2A, 0xA2, - 0xBE, 0x6E, 0x10, 0x78, 0xC0, 0x59, 0x38, 0x15, - 0xAB, 0xEF, 0x46, 0x9D, 0xE9, 0x69, 0xB5, 0x7B, - 0x88, 0x1B, 0x93, 0xAF, 0x55, 0x84, 0x65, 0xFA - }, - { - 0xAA, 0xC7, 0xBE, 0x16, 0xE5, 0x2F, 0x79, 0x0E, - 0x4F, 0xF7, 0x0B, 0x24, 0x01, 0x5C, 0xB1, 0x1B, - 0x40, 0x61, 0x6E, 0x94, 0xDB, 0x13, 0x88, 0x2B, - 0x41, 0xD3, 0xDD, 0x8C, 0x8C, 0x19, 0x52, 0xB7 - }, - { - 0x04, 0x34, 0xB4, 0x7C, 0x0E, 0xE7, 0xE6, 0xF5, - 0x39, 0x06, 0x79, 0x9A, 0x43, 0x20, 0x9D, 0x3F, - 0xC3, 0x7D, 0x3F, 0xD1, 0xF7, 0x45, 0x55, 0xDE, - 0x67, 0xAB, 0xAC, 0xB9, 0x51, 0xB0, 0x06, 0xF4 - }, - { - 0x04, 0x42, 0xFB, 0xDD, 0x5B, 0x58, 0x49, 0x6E, - 0xC7, 0x81, 0x59, 0xCC, 0xAA, 0x88, 0x7C, 0x88, - 0xA8, 0x61, 0xFC, 0xCA, 0x70, 0xE7, 0xAB, 0xC9, - 0x76, 0xF2, 0x4C, 0x11, 0x58, 0x8B, 0xE6, 0xEE - }, - { - 0xA7, 0x3E, 0x68, 0xBB, 0x18, 0xB0, 0x07, 0x64, - 0x8E, 0x76, 0xB5, 0x52, 0x8D, 0x1E, 0x50, 0xE7, - 0xFA, 0x65, 0x4D, 0xA3, 0x97, 0x0E, 0xC3, 0x49, - 0xBF, 0x59, 0x1A, 0x30, 0xD9, 0x32, 0xC8, 0xF6 - }, - { - 0x84, 0x9C, 0xF8, 0x73, 0x16, 0x2B, 0xA7, 0x2C, - 0x4B, 0x80, 0x08, 0xE6, 0x8F, 0x93, 0x2F, 0xB3, - 0xA0, 0x15, 0xA7, 0x4F, 0xCF, 0x95, 0x71, 0x98, - 0xD5, 0x6A, 0x0D, 0xC4, 0x62, 0x5A, 0x74, 0xF5 - }, - { - 0xA6, 0xDE, 0xC6, 0xFC, 0x89, 0x49, 0x34, 0x9C, - 0x4E, 0x9A, 0x9C, 0x62, 0x36, 0x87, 0xFB, 0xA4, - 0xC9, 0xB2, 0x75, 0xBD, 0xB2, 0x30, 0x50, 0x9B, - 0x72, 0xE3, 0xD6, 0x71, 0x19, 0x14, 0xE2, 0xD8 - }, - { - 0x58, 0xAF, 0xC2, 0xB2, 0x4A, 0x19, 0xFD, 0xBF, - 0x76, 0xA0, 0x9B, 0x70, 0xB1, 0xE3, 0xB7, 0x7F, - 0xCB, 0xD4, 0x06, 0x50, 0x01, 0xD9, 0x63, 0x66, - 0x40, 0xEB, 0x5A, 0x26, 0x28, 0xF4, 0x42, 0xCC - }, - { - 0x47, 0x3A, 0x43, 0xAA, 0x1D, 0x6A, 0x02, 0x87, - 0x67, 0x43, 0x2A, 0x83, 0x0A, 0xD1, 0x22, 0x1E, - 0x02, 0x9C, 0x58, 0x9A, 0xF9, 0xFD, 0x4D, 0x68, - 0xD5, 0x6C, 0x4F, 0xB8, 0x20, 0x25, 0x93, 0x52 - }, - { - 0xA0, 0xAE, 0xB4, 0xA5, 0xAD, 0x89, 0x9A, 0xF2, - 0xE2, 0x91, 0xB2, 0xE7, 0x9D, 0xBB, 0x6B, 0x0B, - 0xF5, 0x6B, 0x58, 0x44, 0x67, 0x6B, 0x95, 0x5D, - 0x94, 0x5B, 0x6C, 0x4A, 0xE1, 0xC0, 0x1E, 0xED - }, - { - 0xCF, 0xC3, 0x02, 0x9A, 0x9E, 0xEB, 0x15, 0x22, - 0x22, 0xD9, 0x66, 0x53, 0x49, 0x2E, 0x46, 0xCA, - 0x64, 0xCA, 0x4F, 0x0D, 0x64, 0x68, 0x30, 0x28, - 0xD3, 0xAE, 0xE5, 0xA4, 0x9C, 0xB4, 0x71, 0x63 - }, - { - 0x74, 0x67, 0xCF, 0x77, 0x61, 0xCD, 0x9F, 0x55, - 0x61, 0x8D, 0x30, 0xC9, 0xD8, 0xC5, 0xB4, 0x1E, - 0x47, 0x01, 0x51, 0x0C, 0x7D, 0x16, 0xAB, 0x4E, - 0x5D, 0x89, 0xA5, 0xD7, 0x71, 0x46, 0xB0, 0x92 - }, - { - 0xC0, 0x16, 0xD8, 0x42, 0x4E, 0x53, 0x1E, 0xFC, - 0x57, 0x37, 0xC0, 0x3F, 0xC9, 0x0A, 0x5E, 0xFC, - 0x9F, 0x90, 0x22, 0xE4, 0xD5, 0xBA, 0x3B, 0x06, - 0x95, 0xF7, 0xAE, 0x53, 0x82, 0x60, 0xC2, 0xEE - }, - { - 0x5D, 0x38, 0x11, 0x89, 0xE6, 0x00, 0x0F, 0xC1, - 0x17, 0xC7, 0x1F, 0x59, 0xF7, 0x86, 0xFB, 0x4B, - 0x79, 0xFD, 0xD4, 0xEC, 0x5D, 0x4C, 0xD3, 0x0A, - 0xAC, 0x21, 0x57, 0xF7, 0x5D, 0xEA, 0xD7, 0x78 - }, - { - 0x7C, 0x9C, 0xDD, 0x15, 0xC4, 0xC9, 0xAB, 0xCA, - 0xCB, 0xFE, 0x6F, 0x66, 0x4A, 0x7F, 0x5F, 0x8B, - 0x2E, 0x25, 0x91, 0x83, 0x29, 0x1A, 0xE5, 0xCC, - 0x91, 0x30, 0xA0, 0xB2, 0x41, 0xE5, 0x73, 0x7F - }, - { - 0xB8, 0x81, 0x31, 0x72, 0xF5, 0x21, 0x8A, 0xC3, - 0xEB, 0x68, 0x7B, 0xC4, 0xAF, 0xAF, 0xF8, 0x3F, - 0xBC, 0xA4, 0xE9, 0xC1, 0xA4, 0x62, 0x96, 0x33, - 0x01, 0xDD, 0x44, 0x59, 0x85, 0x01, 0x50, 0xA2 - }, - { - 0xE3, 0xD1, 0x30, 0xE3, 0x6A, 0x02, 0x8E, 0xA8, - 0x0C, 0x57, 0xA2, 0xAA, 0x48, 0x19, 0xFD, 0x34, - 0xE4, 0xDB, 0xBE, 0xB1, 0x4A, 0x49, 0x58, 0x94, - 0xB1, 0x5A, 0x87, 0x87, 0xDB, 0x1A, 0x9F, 0x9C - }, - { - 0xFF, 0xF1, 0xB4, 0x40, 0x0F, 0x48, 0x9E, 0x07, - 0xD2, 0x23, 0x51, 0xC1, 0xF0, 0x95, 0x65, 0xE2, - 0x65, 0xB6, 0x8A, 0xD2, 0x9F, 0x63, 0x29, 0x87, - 0x9E, 0x6B, 0x5F, 0x7F, 0x6B, 0x41, 0x93, 0x50 - }, - { - 0x55, 0x9E, 0xD5, 0xBB, 0x3E, 0x5F, 0x39, 0x85, - 0xFB, 0x57, 0x82, 0x28, 0xBF, 0x8C, 0x0F, 0x0B, - 0x17, 0x3F, 0x8D, 0x11, 0x53, 0xFA, 0xEB, 0x9F, - 0xEC, 0x75, 0x6F, 0xFD, 0x18, 0xA8, 0x72, 0x38 - }, - { - 0x88, 0x13, 0x12, 0x53, 0x01, 0x4D, 0x23, 0xC5, - 0xE3, 0x8E, 0x78, 0xBD, 0xA1, 0x94, 0x55, 0xD8, - 0xA0, 0x23, 0xBD, 0x7A, 0x7E, 0x72, 0x74, 0x57, - 0xA1, 0x52, 0xA8, 0x1D, 0x0B, 0x17, 0x18, 0xA7 - }, - { - 0xF4, 0xD3, 0xFA, 0xE7, 0xCD, 0xE6, 0xBB, 0x66, - 0x71, 0x5A, 0x19, 0x8F, 0xA4, 0x8D, 0x21, 0x0C, - 0x10, 0xF8, 0xDF, 0x32, 0x04, 0xAE, 0x5E, 0x33, - 0xA6, 0x02, 0x46, 0x7F, 0x1B, 0x62, 0x26, 0x85 - }, - { - 0xE6, 0x2B, 0x62, 0x2A, 0xC8, 0xA2, 0x13, 0x66, - 0xBF, 0x2D, 0xED, 0x30, 0xF4, 0x08, 0x2A, 0x53, - 0xE7, 0x7A, 0x9A, 0xA6, 0x96, 0xB1, 0xF3, 0xEE, - 0x8C, 0xFE, 0x99, 0xC5, 0x93, 0x12, 0xD9, 0xC7 - }, - { - 0x3D, 0x39, 0xFF, 0xA8, 0x55, 0x12, 0xC3, 0xC8, - 0x89, 0x0D, 0x4B, 0xDF, 0x31, 0x88, 0x9C, 0xA6, - 0x6E, 0x5C, 0xEC, 0xB6, 0x3C, 0xFE, 0xED, 0x57, - 0xB9, 0x26, 0x37, 0x08, 0xE7, 0x4C, 0x55, 0x0B - }, - { - 0xB1, 0x70, 0x3B, 0x8A, 0x00, 0xE2, 0x61, 0x24, - 0x97, 0xD1, 0x1C, 0x64, 0x9D, 0x15, 0x0A, 0x6C, - 0x96, 0x3B, 0xF4, 0xFD, 0x38, 0xFE, 0xB1, 0xC3, - 0x81, 0xFE, 0x0D, 0x9B, 0x04, 0xC0, 0x2B, 0x22 - }, - { - 0x12, 0xFB, 0xAD, 0x9D, 0x37, 0x82, 0x81, 0x2D, - 0x71, 0x17, 0x9A, 0x50, 0xFB, 0xD9, 0xB4, 0x56, - 0x6C, 0x7B, 0x06, 0xF5, 0xD7, 0x7C, 0x6F, 0x32, - 0x97, 0x17, 0xFB, 0x4A, 0xE2, 0xC5, 0xB4, 0xEC - }, - { - 0x76, 0x8B, 0x65, 0x9A, 0x82, 0x4B, 0x43, 0xF9, - 0xCA, 0x56, 0x60, 0xB9, 0xDD, 0xF0, 0x5F, 0x8B, - 0xA2, 0xBC, 0x49, 0x93, 0x86, 0x6B, 0x7C, 0x9B, - 0xE6, 0x87, 0x91, 0xF5, 0xB2, 0x46, 0x44, 0xB3 - }, - { - 0xC0, 0x20, 0x4E, 0x23, 0xCA, 0x86, 0xBE, 0x20, - 0x5E, 0xED, 0x0C, 0xC3, 0xDD, 0x72, 0x25, 0xCE, - 0x5F, 0xFE, 0x1E, 0xE1, 0x2D, 0xAC, 0xB9, 0x3C, - 0x5D, 0x06, 0x29, 0xB7, 0x69, 0x9C, 0xD7, 0x33 - }, - { - 0xF4, 0x32, 0x96, 0x96, 0x1F, 0x8E, 0xAE, 0xCC, - 0xD8, 0x54, 0x41, 0x3D, 0xC5, 0xAD, 0xDA, 0x62, - 0x39, 0x3A, 0x34, 0x46, 0x27, 0xE8, 0x6C, 0x06, - 0x6E, 0x79, 0x07, 0x55, 0x00, 0x40, 0x74, 0x4F - }, - { - 0x82, 0xF4, 0x46, 0x9E, 0x80, 0x78, 0x90, 0x21, - 0xC6, 0x1D, 0xB7, 0xE3, 0x2F, 0x36, 0xAC, 0xBE, - 0x59, 0x1A, 0x64, 0xF2, 0x60, 0x59, 0x26, 0x57, - 0x70, 0xAE, 0x65, 0x8D, 0x62, 0xBD, 0xE7, 0xEF - }, - { - 0x2A, 0x85, 0x67, 0x1A, 0x55, 0xC8, 0x9F, 0xA1, - 0x56, 0xE2, 0x96, 0xF7, 0x5D, 0xF1, 0xC7, 0xDB, - 0xAB, 0x17, 0x8E, 0xBB, 0xA6, 0x52, 0x04, 0xA7, - 0xE8, 0x17, 0x8C, 0x91, 0x6A, 0xD0, 0x87, 0xF8 - }, - { - 0x33, 0xE2, 0x45, 0x00, 0x28, 0x08, 0xF6, 0x93, - 0x4B, 0x9B, 0xE3, 0xA6, 0xFA, 0x8E, 0x86, 0x70, - 0xC9, 0x0B, 0xAA, 0x62, 0x57, 0x17, 0xB9, 0x20, - 0x1E, 0xB9, 0xB9, 0xDD, 0x91, 0x2F, 0x5C, 0xE2 - }, - { - 0x58, 0xEE, 0x5E, 0x79, 0x91, 0x84, 0xAD, 0x9D, - 0xA9, 0xA1, 0x7C, 0x5B, 0x46, 0xA4, 0x81, 0x0E, - 0x28, 0xBD, 0xD0, 0x8C, 0x35, 0x81, 0x63, 0x4C, - 0x83, 0x50, 0x30, 0x53, 0x9B, 0x79, 0x54, 0x4D - }, - { - 0x26, 0xD8, 0xFA, 0x08, 0xDB, 0x30, 0x8E, 0xDF, - 0x2F, 0x96, 0xF8, 0x2A, 0xF6, 0xB6, 0x0C, 0x17, - 0xD8, 0xF1, 0xFF, 0x85, 0x8C, 0x52, 0xF2, 0xD0, - 0xF3, 0x83, 0x10, 0x78, 0x12, 0x75, 0x26, 0xA3 - }, - { - 0x25, 0xA5, 0x8D, 0xF4, 0x03, 0x92, 0x47, 0xA2, - 0x2F, 0x68, 0xFF, 0x2B, 0x71, 0x76, 0x6B, 0x7B, - 0x56, 0x00, 0xDD, 0xF4, 0x01, 0xD9, 0x9F, 0xF2, - 0xC1, 0x95, 0x5A, 0xE7, 0xBB, 0x43, 0xE5, 0x6A - }, - { - 0xBE, 0x43, 0xE8, 0x68, 0x61, 0x60, 0xE9, 0x07, - 0xBA, 0x54, 0x7D, 0x5A, 0x87, 0x9D, 0x10, 0xF7, - 0x88, 0xAF, 0xC8, 0x42, 0xB8, 0xEB, 0xB9, 0xF3, - 0xF7, 0x88, 0x53, 0x25, 0x15, 0x91, 0x2A, 0xE4 - }, - { - 0xAA, 0x4A, 0xCB, 0x95, 0xD8, 0x79, 0x19, 0x2A, - 0x69, 0x08, 0xE8, 0x8A, 0xE3, 0xD6, 0x58, 0x9F, - 0x4E, 0x3E, 0xB3, 0xD4, 0xE0, 0x3A, 0x80, 0x6C, - 0xCD, 0xB9, 0xB5, 0xD6, 0xA9, 0x58, 0x6F, 0xDF - }, - { - 0x84, 0x66, 0xD5, 0xE4, 0x4C, 0xE9, 0x5B, 0x4F, - 0xA1, 0x79, 0x99, 0x24, 0x44, 0xB8, 0xC2, 0x48, - 0x5B, 0x88, 0x64, 0x48, 0xA6, 0xDC, 0xCF, 0xCF, - 0x0B, 0xC3, 0x0B, 0xC5, 0xF0, 0xF5, 0x6B, 0x01 - }, - { - 0x00, 0x56, 0xD7, 0xE0, 0xAC, 0x33, 0x35, 0x57, - 0x83, 0x65, 0x9B, 0x38, 0xEC, 0x8B, 0xEC, 0xCB, - 0xF7, 0x83, 0x93, 0x99, 0x67, 0xFE, 0x37, 0xAE, - 0xAC, 0xF3, 0x69, 0xDD, 0xB6, 0x70, 0xAD, 0xA0 - }, - { - 0x90, 0x4F, 0x42, 0xF3, 0x45, 0x53, 0x0A, 0xC8, - 0xA3, 0x52, 0xD0, 0x9B, 0x68, 0x72, 0xC5, 0xBC, - 0xA3, 0x66, 0x1A, 0xBC, 0xA6, 0xCA, 0x64, 0xC8, - 0x09, 0x9F, 0x2F, 0xB6, 0x86, 0x7C, 0x30, 0xFE - }, - { - 0xA8, 0xC3, 0xBF, 0x46, 0xF0, 0xB8, 0x8B, 0xBD, - 0x16, 0xFD, 0xA4, 0xA8, 0xB5, 0xCA, 0x81, 0xF5, - 0x24, 0x35, 0x20, 0xC3, 0x85, 0xD3, 0x8C, 0x0B, - 0x4D, 0x23, 0x52, 0xAB, 0x34, 0xEA, 0x35, 0xE6 - }, - { - 0x8D, 0x33, 0x17, 0xFC, 0x60, 0x6E, 0x56, 0x6D, - 0x30, 0x2E, 0xDA, 0xB5, 0x5E, 0x80, 0x16, 0x11, - 0xD8, 0xC1, 0x3F, 0x4A, 0x9A, 0x19, 0xD1, 0x85, - 0x97, 0x8D, 0xEF, 0x72, 0x83, 0x9C, 0xDA, 0xA3 - }, - { - 0x97, 0x38, 0x80, 0x11, 0xF5, 0x7A, 0x49, 0x86, - 0x90, 0xEC, 0x79, 0x88, 0xEF, 0xF9, 0x03, 0xFF, - 0x9B, 0x23, 0x58, 0xF5, 0xB6, 0x1B, 0xAA, 0x20, - 0xF7, 0x32, 0x90, 0xD6, 0x29, 0x6C, 0x1C, 0x0B - }, - { - 0xCF, 0xB8, 0x0C, 0xAB, 0x89, 0x90, 0x95, 0x08, - 0x09, 0x12, 0x3F, 0xBF, 0x85, 0xE9, 0x76, 0x45, - 0x47, 0x08, 0xE0, 0xAF, 0xED, 0x69, 0x8E, 0x33, - 0x52, 0xA3, 0x16, 0x35, 0x90, 0x9D, 0xB3, 0xE5 - }, - { - 0x0D, 0xAA, 0xCA, 0x55, 0x13, 0x2A, 0x23, 0x5B, - 0x83, 0x1A, 0x5E, 0xFF, 0x4E, 0xA4, 0x67, 0xCD, - 0x10, 0xAF, 0x44, 0x20, 0x08, 0x47, 0x73, 0x5A, - 0x1F, 0xFD, 0x51, 0xFA, 0x37, 0xEA, 0xA2, 0xA2 - }, - { - 0x69, 0xB2, 0x14, 0x97, 0xEB, 0xB8, 0x24, 0xBA, - 0x66, 0x53, 0x68, 0x18, 0x88, 0x25, 0xE6, 0xF6, - 0xF1, 0x4C, 0xF2, 0xC3, 0xF7, 0xB5, 0x53, 0x0B, - 0xB3, 0x4F, 0xA6, 0x58, 0xEE, 0xD9, 0xA7, 0x39 - }, - { - 0xB9, 0xA1, 0x9F, 0x50, 0x9B, 0xE0, 0x3F, 0xBC, - 0x40, 0xE2, 0x43, 0xA5, 0x8A, 0x3D, 0xED, 0x11, - 0xF0, 0xD5, 0x1F, 0x80, 0xE3, 0xE2, 0x9A, 0x50, - 0x56, 0x44, 0xCC, 0x05, 0x74, 0x38, 0x14, 0xEC - }, - { - 0xC4, 0xBC, 0xB2, 0x00, 0x25, 0x55, 0xD5, 0x44, - 0xFD, 0x0B, 0x02, 0x77, 0x06, 0x23, 0x89, 0x1E, - 0x70, 0xEE, 0xEC, 0x77, 0x44, 0x86, 0x5D, 0xD6, - 0x45, 0x5A, 0xD6, 0x65, 0xCC, 0x82, 0xE8, 0x61 - }, - { - 0x91, 0x2D, 0x24, 0xDC, 0x3D, 0x69, 0x23, 0xA4, - 0x83, 0xC2, 0x63, 0xEB, 0xA8, 0x1B, 0x7A, 0x87, - 0x97, 0xF2, 0x3C, 0xBF, 0x2F, 0x78, 0xB5, 0x1E, - 0x22, 0x26, 0x63, 0x9F, 0x84, 0xA5, 0x90, 0x47 - }, - { - 0x56, 0x82, 0x7A, 0x18, 0x88, 0x3A, 0xFD, 0xF9, - 0xCE, 0xEC, 0x56, 0x2B, 0x20, 0x66, 0xD8, 0xAC, - 0xB2, 0xC1, 0x95, 0x05, 0xEC, 0xE6, 0xF7, 0xA8, - 0x3E, 0x9F, 0x33, 0x46, 0xCB, 0xB8, 0x28, 0xC9 - }, - { - 0x25, 0x1D, 0x8D, 0x09, 0xFC, 0x48, 0xDD, 0x1D, - 0x6A, 0xF8, 0xFF, 0xDF, 0x39, 0x50, 0x91, 0xA4, - 0x6E, 0x05, 0xB8, 0xB7, 0xC5, 0xEC, 0x0C, 0x79, - 0xB6, 0x8A, 0x89, 0x04, 0xC8, 0x27, 0xBD, 0xEA - }, - { - 0xC2, 0xD1, 0x4D, 0x69, 0xFD, 0x0B, 0xBD, 0x1C, - 0x0F, 0xE8, 0xC8, 0x45, 0xD5, 0xFD, 0x6A, 0x8F, - 0x74, 0x01, 0x51, 0xB1, 0xD8, 0xEB, 0x4D, 0x26, - 0x36, 0x4B, 0xB0, 0x2D, 0xAE, 0x0C, 0x13, 0xBC - }, - { - 0x2E, 0x5F, 0xE2, 0x1F, 0x8F, 0x1B, 0x63, 0x97, - 0xA3, 0x8A, 0x60, 0x3D, 0x60, 0xB6, 0xF5, 0x3C, - 0x3B, 0x5D, 0xB2, 0x0A, 0xA5, 0x6C, 0x6D, 0x44, - 0xBE, 0xBD, 0x48, 0x28, 0xCE, 0x28, 0xF9, 0x0F - }, - { - 0x25, 0x05, 0x9F, 0x10, 0x60, 0x5E, 0x67, 0xAD, - 0xFE, 0x68, 0x13, 0x50, 0x66, 0x6E, 0x15, 0xAE, - 0x97, 0x6A, 0x5A, 0x57, 0x1C, 0x13, 0xCF, 0x5B, - 0xC8, 0x05, 0x3F, 0x43, 0x0E, 0x12, 0x0A, 0x52 - }, -}; - - - - -static const uint8_t blake2sp_keyed_kat[KAT_LENGTH][BLAKE2S_OUTBYTES] = -{ - { - 0x71, 0x5C, 0xB1, 0x38, 0x95, 0xAE, 0xB6, 0x78, - 0xF6, 0x12, 0x41, 0x60, 0xBF, 0xF2, 0x14, 0x65, - 0xB3, 0x0F, 0x4F, 0x68, 0x74, 0x19, 0x3F, 0xC8, - 0x51, 0xB4, 0x62, 0x10, 0x43, 0xF0, 0x9C, 0xC6 - }, - { - 0x40, 0x57, 0x8F, 0xFA, 0x52, 0xBF, 0x51, 0xAE, - 0x18, 0x66, 0xF4, 0x28, 0x4D, 0x3A, 0x15, 0x7F, - 0xC1, 0xBC, 0xD3, 0x6A, 0xC1, 0x3C, 0xBD, 0xCB, - 0x03, 0x77, 0xE4, 0xD0, 0xCD, 0x0B, 0x66, 0x03 - }, - { - 0x67, 0xE3, 0x09, 0x75, 0x45, 0xBA, 0xD7, 0xE8, - 0x52, 0xD7, 0x4D, 0x4E, 0xB5, 0x48, 0xEC, 0xA7, - 0xC2, 0x19, 0xC2, 0x02, 0xA7, 0xD0, 0x88, 0xDB, - 0x0E, 0xFE, 0xAC, 0x0E, 0xAC, 0x30, 0x42, 0x49 - }, - { - 0x8D, 0xBC, 0xC0, 0x58, 0x9A, 0x3D, 0x17, 0x29, - 0x6A, 0x7A, 0x58, 0xE2, 0xF1, 0xEF, 0xF0, 0xE2, - 0xAA, 0x42, 0x10, 0xB5, 0x8D, 0x1F, 0x88, 0xB8, - 0x6D, 0x7B, 0xA5, 0xF2, 0x9D, 0xD3, 0xB5, 0x83 - }, - { - 0xA9, 0xA9, 0x65, 0x2C, 0x8C, 0x67, 0x75, 0x94, - 0xC8, 0x72, 0x12, 0xD8, 0x9D, 0x5A, 0x75, 0xFB, - 0x31, 0xEF, 0x4F, 0x47, 0xC6, 0x58, 0x2C, 0xDE, - 0x5F, 0x1E, 0xF6, 0x6B, 0xD4, 0x94, 0x53, 0x3A - }, - { - 0x05, 0xA7, 0x18, 0x0E, 0x59, 0x50, 0x54, 0x73, - 0x99, 0x48, 0xC5, 0xE3, 0x38, 0xC9, 0x5F, 0xE0, - 0xB7, 0xFC, 0x61, 0xAC, 0x58, 0xA7, 0x35, 0x74, - 0x74, 0x56, 0x33, 0xBB, 0xC1, 0xF7, 0x70, 0x31 - }, - { - 0x81, 0x4D, 0xE8, 0x31, 0x53, 0xB8, 0xD7, 0x5D, - 0xFA, 0xDE, 0x29, 0xFD, 0x39, 0xAC, 0x72, 0xDD, - 0x09, 0xCA, 0x0F, 0x9B, 0xC8, 0xB7, 0xAB, 0x6A, - 0x06, 0xBA, 0xEE, 0x7D, 0xD0, 0xF9, 0xF0, 0x83 - }, - { - 0xDF, 0xD4, 0x19, 0x44, 0x91, 0x29, 0xFF, 0x60, - 0x4F, 0x0A, 0x14, 0x8B, 0x4C, 0x7D, 0x68, 0xF1, - 0x17, 0x4F, 0x7D, 0x0F, 0x8C, 0x8D, 0x2C, 0xE7, - 0x7F, 0x44, 0x8F, 0xD3, 0x41, 0x9C, 0x6F, 0xB0 - }, - { - 0xB9, 0xED, 0x22, 0xE7, 0xDD, 0x8D, 0xD1, 0x4E, - 0xE8, 0xC9, 0x5B, 0x20, 0xE7, 0x63, 0x2E, 0x85, - 0x53, 0xA2, 0x68, 0xD9, 0xFF, 0x86, 0x33, 0xED, - 0x3C, 0x21, 0xD1, 0xB8, 0xC9, 0xA7, 0x0B, 0xE1 - }, - { - 0x95, 0xF0, 0x31, 0x67, 0x1A, 0x4E, 0x3C, 0x54, - 0x44, 0x1C, 0xEE, 0x9D, 0xBE, 0xF4, 0xB7, 0xAC, - 0xA4, 0x46, 0x18, 0xA3, 0xA3, 0x33, 0xAD, 0x74, - 0x06, 0xD1, 0x97, 0xAC, 0x5B, 0xA0, 0x79, 0x1A - }, - { - 0xE2, 0x92, 0x5B, 0x9D, 0x5C, 0xA0, 0xFF, 0x62, - 0x88, 0xC5, 0xEA, 0x1A, 0xF2, 0xD2, 0x2B, 0x0A, - 0x6B, 0x79, 0xE2, 0xDA, 0xE0, 0x8B, 0xFD, 0x36, - 0xC3, 0xBE, 0x10, 0xBB, 0x8D, 0x71, 0xD8, 0x39 - }, - { - 0x16, 0x24, 0x9C, 0x74, 0x4E, 0x49, 0x51, 0x45, - 0x1D, 0x4C, 0x89, 0x4F, 0xB5, 0x9A, 0x3E, 0xCB, - 0x3F, 0xBF, 0xB7, 0xA4, 0x5F, 0x96, 0xF8, 0x5D, - 0x15, 0x80, 0xAC, 0x0B, 0x84, 0x2D, 0x96, 0xDA - }, - { - 0x43, 0x2B, 0xC9, 0x1C, 0x52, 0xAC, 0xEB, 0x9D, - 0xAE, 0xD8, 0x83, 0x28, 0x81, 0x64, 0x86, 0x50, - 0xC1, 0xB8, 0x1D, 0x11, 0x7A, 0xBD, 0x68, 0xE0, - 0x84, 0x51, 0x50, 0x8A, 0x63, 0xBE, 0x00, 0x81 - }, - { - 0xCD, 0xE8, 0x20, 0x2B, 0xCF, 0xA3, 0xF3, 0xE9, - 0x5D, 0x79, 0xBA, 0xCC, 0x16, 0x5D, 0x52, 0x70, - 0x0E, 0xF7, 0x1D, 0x87, 0x4A, 0x3C, 0x63, 0x7E, - 0x63, 0x4F, 0x64, 0x44, 0x73, 0x72, 0x0D, 0x6B - }, - { - 0x16, 0x21, 0x62, 0x1F, 0x5C, 0x3E, 0xE4, 0x46, - 0x89, 0x9D, 0x3C, 0x8A, 0xAE, 0x49, 0x17, 0xB1, - 0xE6, 0xDB, 0x4A, 0x0E, 0xD0, 0x42, 0x31, 0x5F, - 0xB2, 0xC1, 0x74, 0x82, 0x5E, 0x0A, 0x18, 0x19 - }, - { - 0x33, 0x6E, 0x8E, 0xBC, 0x71, 0xE2, 0x09, 0x5C, - 0x27, 0xF8, 0x64, 0xA3, 0x12, 0x1E, 0xFD, 0x0F, - 0xAA, 0x7A, 0x41, 0x28, 0x57, 0x25, 0xA5, 0x92, - 0xF6, 0x1B, 0xED, 0xED, 0x9D, 0xDE, 0x86, 0xED - }, - { - 0x07, 0x9B, 0xE0, 0x41, 0x0E, 0x78, 0x9B, 0x36, - 0xEE, 0x7F, 0x55, 0xC1, 0x9F, 0xAA, 0xC6, 0x91, - 0x65, 0x6E, 0xB0, 0x52, 0x1F, 0x42, 0x94, 0x9B, - 0x84, 0xEE, 0x29, 0xFE, 0x2A, 0x0E, 0x7F, 0x36 - }, - { - 0x17, 0x27, 0x0C, 0x4F, 0x34, 0x88, 0x08, 0x2D, - 0x9F, 0xF9, 0x93, 0x7E, 0xAB, 0x3C, 0xA9, 0x9C, - 0x97, 0xC5, 0xB4, 0x59, 0x61, 0x47, 0x37, 0x2D, - 0xD4, 0xE9, 0x8A, 0xCF, 0x13, 0xDB, 0x28, 0x10 - }, - { - 0x18, 0x3C, 0x38, 0x75, 0x4D, 0x03, 0x41, 0xCE, - 0x07, 0xC1, 0x7A, 0x6C, 0xB6, 0xC2, 0xFD, 0x8B, - 0xBC, 0xC1, 0x40, 0x4F, 0xDD, 0x01, 0x41, 0x99, - 0xC7, 0x8B, 0xE1, 0xA9, 0x75, 0x59, 0xA9, 0x28 - }, - { - 0x6E, 0x52, 0xD7, 0x28, 0xA4, 0x05, 0xA6, 0xE1, - 0xF8, 0x75, 0x87, 0xBB, 0xC2, 0xAC, 0x91, 0xC5, - 0xC0, 0x9B, 0x2D, 0x82, 0x8A, 0xC8, 0x1E, 0x5C, - 0x4A, 0x81, 0xD0, 0x3D, 0xD4, 0xAA, 0x8D, 0x5C - }, - { - 0xF4, 0xE0, 0x8E, 0x05, 0x9B, 0x74, 0x14, 0x4B, - 0xF9, 0x48, 0x14, 0x6D, 0x14, 0xA2, 0xC8, 0x1E, - 0x46, 0xDC, 0x15, 0xFF, 0x26, 0xEB, 0x52, 0x34, - 0x4C, 0xDD, 0x47, 0x4A, 0xBE, 0xA1, 0x4B, 0xC0 - }, - { - 0x0F, 0x2E, 0x0A, 0x10, 0x0E, 0xD8, 0xA1, 0x17, - 0x85, 0x96, 0x2A, 0xD4, 0x59, 0x6A, 0xF9, 0x55, - 0xE3, 0x0B, 0x9A, 0xEF, 0x93, 0x0A, 0x24, 0x8D, - 0xA9, 0x32, 0x2B, 0x70, 0x2D, 0x4B, 0x68, 0x72 - }, - { - 0x51, 0x90, 0xFC, 0xC7, 0x32, 0xF4, 0x04, 0xAA, - 0xD4, 0x36, 0x4A, 0xC7, 0x96, 0x0C, 0xFD, 0x5B, - 0x4E, 0x34, 0x86, 0x29, 0xC3, 0x72, 0xEE, 0xB3, - 0x25, 0xB5, 0xC6, 0xC7, 0xCB, 0xCE, 0x59, 0xAB - }, - { - 0xC0, 0xC4, 0xCB, 0x86, 0xEA, 0x25, 0xEA, 0x95, - 0x7E, 0xEC, 0x5B, 0x22, 0xD2, 0x55, 0x0A, 0x16, - 0x49, 0xE6, 0xDF, 0xFA, 0x31, 0x6B, 0xB8, 0xF4, - 0xC9, 0x1B, 0x8F, 0xF7, 0xA2, 0x4B, 0x25, 0x31 - }, - { - 0x2C, 0x9E, 0xDA, 0x13, 0x5A, 0x30, 0xAE, 0xCA, - 0xF3, 0xAC, 0xB3, 0xD2, 0x3A, 0x30, 0x35, 0xFB, - 0xAB, 0xBA, 0x98, 0x33, 0x31, 0x65, 0xD8, 0x7F, - 0xCB, 0xF8, 0xFE, 0x10, 0x33, 0x6E, 0xCF, 0x20 - }, - { - 0x3C, 0xD6, 0x69, 0xE8, 0xD5, 0x62, 0x62, 0xA2, - 0x37, 0x13, 0x67, 0x22, 0x4D, 0xAE, 0x6D, 0x75, - 0x9E, 0xE1, 0x52, 0xC3, 0x15, 0x33, 0xB2, 0x63, - 0xFA, 0x2E, 0x64, 0x92, 0x08, 0x77, 0xB2, 0xA7 - }, - { - 0x18, 0xA9, 0xA0, 0xC2, 0xD0, 0xEA, 0x6C, 0x3B, - 0xB3, 0x32, 0x83, 0x0F, 0x89, 0x18, 0xB0, 0x68, - 0x4F, 0x5D, 0x39, 0x94, 0xDF, 0x48, 0x67, 0x46, - 0x2D, 0xD0, 0x6E, 0xF0, 0x86, 0x24, 0x24, 0xCC - }, - { - 0x73, 0x90, 0xEA, 0x41, 0x04, 0xA9, 0xF4, 0xEE, - 0xA9, 0x0F, 0x81, 0xE2, 0x6A, 0x12, 0x9D, 0xCF, - 0x9F, 0x4A, 0xF3, 0x83, 0x52, 0xD9, 0xCB, 0x6A, - 0x81, 0x2C, 0xC8, 0x05, 0x69, 0x09, 0x05, 0x0E - }, - { - 0xE4, 0x9E, 0x01, 0x14, 0xC6, 0x29, 0xB4, 0x94, - 0xB1, 0x1E, 0xA9, 0x8E, 0xCD, 0x40, 0x32, 0x73, - 0x1F, 0x15, 0x3B, 0x46, 0x50, 0xAC, 0xAC, 0xD7, - 0xE0, 0xF6, 0xE7, 0xDE, 0x3D, 0xF0, 0x19, 0x77 - }, - { - 0x27, 0xC5, 0x70, 0x2B, 0xE1, 0x04, 0xB3, 0xA9, - 0x4F, 0xC4, 0x34, 0x23, 0xAE, 0xEE, 0x83, 0xAC, - 0x3C, 0xA7, 0x3B, 0x7F, 0x87, 0x83, 0x9A, 0x6B, - 0x2E, 0x29, 0x60, 0x79, 0x03, 0xB7, 0xF2, 0x87 - }, - { - 0x81, 0xD2, 0xE1, 0x2E, 0xB2, 0xF4, 0x27, 0x60, - 0xC6, 0xE3, 0xBA, 0xA7, 0x8F, 0x84, 0x07, 0x3A, - 0xE6, 0xF5, 0x61, 0x60, 0x70, 0xFE, 0x25, 0xBE, - 0xDE, 0x7C, 0x7C, 0x82, 0x48, 0xAB, 0x1F, 0xBA - }, - { - 0xFA, 0xB2, 0x35, 0xD5, 0x93, 0x48, 0xAB, 0x8C, - 0xE4, 0x9B, 0xEC, 0x77, 0xC0, 0xF1, 0x93, 0x28, - 0xFD, 0x04, 0x5D, 0xFD, 0x60, 0x8A, 0x53, 0x03, - 0x36, 0xDF, 0x4F, 0x94, 0xE1, 0x72, 0xA5, 0xC8 - }, - { - 0x8A, 0xAA, 0x8D, 0x80, 0x5C, 0x58, 0x88, 0x1F, - 0xF3, 0x79, 0xFB, 0xD4, 0x2C, 0x6B, 0xF6, 0xF1, - 0x4C, 0x6C, 0x73, 0xDF, 0x80, 0x71, 0xB3, 0xB2, - 0x28, 0x98, 0x11, 0x09, 0xCC, 0xC0, 0x15, 0xF9 - }, - { - 0x91, 0xFD, 0xD2, 0x62, 0x20, 0x39, 0x16, 0x39, - 0x47, 0x40, 0x95, 0x2B, 0xCE, 0x72, 0xB6, 0x4B, - 0xAB, 0xB6, 0xF7, 0x21, 0x34, 0x4D, 0xEE, 0x82, - 0x50, 0xBF, 0x0E, 0x46, 0xF1, 0xBA, 0x18, 0x8F - }, - { - 0xF7, 0xE5, 0x7B, 0x8F, 0x85, 0xF4, 0x7D, 0x59, - 0x03, 0xAD, 0x4C, 0xCB, 0x8A, 0xF6, 0x2A, 0x3E, - 0x85, 0x8A, 0xAB, 0x2B, 0x8C, 0xC2, 0x26, 0x49, - 0x4F, 0x7B, 0x00, 0xBE, 0xDB, 0xF5, 0xB0, 0xD0 - }, - { - 0xF7, 0x6F, 0x21, 0xAD, 0xDA, 0xE9, 0x6A, 0x96, - 0x46, 0xFC, 0x06, 0xF9, 0xBF, 0x52, 0xAE, 0x08, - 0x48, 0xF1, 0x8C, 0x35, 0x26, 0xB1, 0x29, 0xE1, - 0x5B, 0x2C, 0x35, 0x5E, 0x2E, 0x79, 0xE5, 0xDA - }, - { - 0x8A, 0xEB, 0x1C, 0x79, 0x5F, 0x34, 0x90, 0x01, - 0x5E, 0xF4, 0xCD, 0x61, 0xA2, 0x80, 0x7B, 0x23, - 0x0E, 0xFD, 0xC8, 0x46, 0x01, 0x73, 0xDA, 0xD0, - 0x26, 0xA4, 0xA0, 0xFC, 0xC2, 0xFB, 0xF2, 0x2A - }, - { - 0xC5, 0x64, 0xFF, 0xC6, 0x23, 0x07, 0x77, 0x65, - 0xBB, 0x97, 0x87, 0x58, 0x56, 0x54, 0xCE, 0x74, - 0x5D, 0xBD, 0x10, 0x8C, 0xEF, 0x24, 0x8A, 0xB0, - 0x0A, 0xD1, 0xA2, 0x64, 0x7D, 0x99, 0x03, 0x87 - }, - { - 0xFE, 0x89, 0x42, 0xA3, 0xE5, 0xF5, 0xE8, 0xCD, - 0x70, 0x51, 0x04, 0xF8, 0x82, 0x10, 0x72, 0x6E, - 0x53, 0xDD, 0x7E, 0xB3, 0xF9, 0xA2, 0x02, 0xBF, - 0x93, 0x14, 0xB3, 0xB9, 0x06, 0x5E, 0xB7, 0x12 - }, - { - 0xDC, 0x29, 0x53, 0x59, 0xD4, 0x36, 0xEE, 0xA7, - 0x80, 0x84, 0xE7, 0xB0, 0x77, 0xFE, 0x09, 0xB1, - 0x9C, 0x5B, 0xF3, 0xD2, 0xA7, 0x96, 0xDA, 0xB0, - 0x19, 0xE4, 0x20, 0x05, 0x99, 0xFD, 0x82, 0x02 - }, - { - 0x70, 0xB3, 0xF7, 0x2F, 0x74, 0x90, 0x32, 0xE2, - 0x5E, 0x38, 0x3B, 0x96, 0x43, 0x78, 0xEA, 0x1C, - 0x54, 0x3E, 0x9C, 0x15, 0xDE, 0x3A, 0x27, 0xD8, - 0x6D, 0x2A, 0x9D, 0x22, 0x31, 0xEF, 0xF4, 0x8A - }, - { - 0x79, 0x82, 0xB5, 0x4C, 0x08, 0xDB, 0x2B, 0xFB, - 0x6F, 0x45, 0xF3, 0x5B, 0xC3, 0x23, 0xBC, 0x09, - 0x37, 0x79, 0xB6, 0xBB, 0x0E, 0x3E, 0xEA, 0x3E, - 0x8C, 0x98, 0xB1, 0xDE, 0x99, 0xD3, 0xC5, 0x5E - }, - { - 0x75, 0xE4, 0x16, 0x22, 0x57, 0x01, 0x4B, 0xED, - 0xCC, 0x05, 0xC2, 0x94, 0x4D, 0xCE, 0x0D, 0xF0, - 0xC3, 0x5E, 0xBA, 0x13, 0x19, 0x54, 0x06, 0x4F, - 0x6E, 0x4E, 0x09, 0x5F, 0xD0, 0x84, 0x45, 0xEE - }, - { - 0x4A, 0x12, 0x9E, 0xA6, 0xCD, 0xBA, 0xBC, 0x2D, - 0x39, 0x24, 0x79, 0x37, 0x2F, 0x97, 0x5B, 0x9C, - 0xF5, 0xA1, 0xB7, 0xDE, 0xB6, 0x9A, 0x32, 0x66, - 0xF0, 0x3E, 0xBC, 0x6D, 0x11, 0x13, 0x93, 0xC4 - }, - { - 0x8F, 0xED, 0x70, 0xF2, 0x79, 0x55, 0xDC, 0x8A, - 0xD9, 0xF1, 0xB7, 0xB3, 0xF6, 0xF5, 0xDF, 0xBD, - 0x96, 0x2A, 0x33, 0x59, 0x2B, 0x42, 0xDE, 0x85, - 0x6D, 0x42, 0x1E, 0x29, 0x12, 0xBA, 0xB8, 0x6B - }, - { - 0xE2, 0xF2, 0x06, 0x60, 0x37, 0x6F, 0x2B, 0x18, - 0x39, 0x66, 0x7C, 0xBF, 0xE5, 0xE1, 0x6E, 0xF0, - 0x75, 0xAC, 0x39, 0x43, 0x64, 0x4F, 0x35, 0x32, - 0x28, 0x2F, 0x8B, 0xB0, 0x72, 0x3B, 0x99, 0x86 - }, - { - 0xAB, 0xF8, 0x4C, 0x91, 0x3A, 0x83, 0xDF, 0x98, - 0xC7, 0x00, 0x29, 0x81, 0x9C, 0x06, 0x5F, 0x6D, - 0x6D, 0xE4, 0xF6, 0xD4, 0x3A, 0xBF, 0x60, 0x0D, - 0xAD, 0xE0, 0x35, 0xB2, 0x3B, 0xED, 0x7B, 0xAA - }, - { - 0x45, 0x9C, 0x15, 0xD4, 0x85, 0x6C, 0x7E, 0xCF, - 0x82, 0x62, 0x03, 0x51, 0xC3, 0xC1, 0xC7, 0x6C, - 0x40, 0x3F, 0x3E, 0x97, 0x07, 0x74, 0x13, 0x87, - 0xE2, 0x99, 0x07, 0x3F, 0xB1, 0x70, 0x4B, 0x2B - }, - { - 0x9A, 0xB9, 0x12, 0xED, 0xA0, 0x76, 0x8A, 0xBD, - 0xF8, 0x26, 0xB6, 0xE0, 0x5D, 0x0D, 0x73, 0x58, - 0x39, 0xE6, 0xA5, 0xF0, 0x2E, 0x04, 0xC4, 0xCC, - 0x75, 0x65, 0x0B, 0x2C, 0x8C, 0xAB, 0x67, 0x49 - }, - { - 0x47, 0x40, 0xEB, 0xEC, 0xAC, 0x90, 0x03, 0x1B, - 0xB7, 0xE6, 0x8E, 0x51, 0xC5, 0x53, 0x91, 0xAF, - 0xB1, 0x89, 0xB3, 0x17, 0xF2, 0xDE, 0x55, 0x87, - 0x66, 0xF7, 0x8F, 0x5C, 0xB7, 0x1F, 0x81, 0xB6 - }, - { - 0x3C, 0xC4, 0x7F, 0x0E, 0xF6, 0x48, 0x21, 0x58, - 0x7C, 0x93, 0x7C, 0xDD, 0xBA, 0x85, 0xC9, 0x93, - 0xD3, 0xCE, 0x2D, 0xD0, 0xCE, 0xD4, 0x0D, 0x3B, - 0xE3, 0x3C, 0xB7, 0xDC, 0x7E, 0xDA, 0xBC, 0xF1 - }, - { - 0x9F, 0x47, 0x6A, 0x22, 0xDB, 0x54, 0xD6, 0xBB, - 0x9B, 0xEF, 0xDB, 0x26, 0x0C, 0x66, 0x57, 0x8A, - 0xE1, 0xD8, 0xA5, 0xF8, 0x7D, 0x3D, 0x8C, 0x01, - 0x7F, 0xDB, 0x74, 0x75, 0x08, 0x0F, 0xA8, 0xE1 - }, - { - 0x8B, 0x68, 0xC6, 0xFB, 0x07, 0x06, 0xA7, 0x95, - 0xF3, 0xA8, 0x39, 0xD6, 0xFE, 0x25, 0xFD, 0x4A, - 0xA7, 0xF9, 0x2E, 0x66, 0x4F, 0x76, 0x2D, 0x61, - 0x53, 0x81, 0xBC, 0x85, 0x9A, 0xFA, 0x29, 0x2C - }, - { - 0xF6, 0x40, 0xD2, 0x25, 0xA6, 0xBC, 0xD2, 0xFC, - 0x8A, 0xCC, 0xAF, 0xBE, 0xD5, 0xA8, 0x4B, 0x5B, - 0xBB, 0x5D, 0x8A, 0xE5, 0xDB, 0x06, 0xA1, 0x0B, - 0x6D, 0x9D, 0x93, 0x16, 0x0B, 0x39, 0x2E, 0xE0 - }, - { - 0x70, 0x48, 0x60, 0xA7, 0xF5, 0xBA, 0x68, 0xDB, - 0x27, 0x03, 0x1C, 0x15, 0xF2, 0x25, 0x50, 0x0D, - 0x69, 0x2A, 0xB2, 0x47, 0x53, 0x42, 0x81, 0xC4, - 0xF6, 0x84, 0xF6, 0xC6, 0xC8, 0xCD, 0x88, 0xC7 - }, - { - 0xC1, 0xA7, 0x5B, 0xDD, 0xA1, 0x2B, 0x8B, 0x2A, - 0xB1, 0xB9, 0x24, 0x84, 0x38, 0x58, 0x18, 0x3A, - 0x09, 0xD2, 0x02, 0x42, 0x1F, 0xDB, 0xCD, 0xF0, - 0xE6, 0x3E, 0xAE, 0x46, 0xF3, 0x7D, 0x91, 0xED - }, - { - 0x9A, 0x8C, 0xAB, 0x7A, 0x5F, 0x2E, 0x57, 0x62, - 0x21, 0xA6, 0xA8, 0x5E, 0x5F, 0xDD, 0xEE, 0x75, - 0x67, 0x8E, 0x06, 0x53, 0x24, 0xA6, 0x1D, 0xB0, - 0x3A, 0x39, 0x26, 0x1D, 0xDF, 0x75, 0xE3, 0xF4 - }, - { - 0x05, 0xC2, 0xB2, 0x6B, 0x03, 0xCE, 0x6C, 0xA5, - 0x87, 0x1B, 0xE0, 0xDE, 0x84, 0xEE, 0x27, 0x86, - 0xA7, 0x9B, 0xCD, 0x9F, 0x30, 0x03, 0x3E, 0x81, - 0x9B, 0x4A, 0x87, 0xCC, 0xA2, 0x7A, 0xFC, 0x6A - }, - { - 0xB0, 0xB0, 0x99, 0x3C, 0x6D, 0x0C, 0x6E, 0xD5, - 0xC3, 0x59, 0x04, 0x80, 0xF8, 0x65, 0xF4, 0x67, - 0xF4, 0x33, 0x1A, 0x58, 0xDD, 0x8E, 0x47, 0xBD, - 0x98, 0xEB, 0xBC, 0xDB, 0x8E, 0xB4, 0xF9, 0x4D - }, - { - 0xE5, 0x7C, 0x10, 0x3C, 0xF7, 0xB6, 0xBB, 0xEB, - 0x8A, 0x0D, 0xC8, 0xF0, 0x48, 0x62, 0x5C, 0x3F, - 0x4C, 0xE4, 0xF1, 0xA5, 0xAD, 0x4D, 0x07, 0x9C, - 0x11, 0x87, 0xBF, 0xE9, 0xEE, 0x3B, 0x8A, 0x5F - }, - { - 0xF1, 0x00, 0x23, 0xE1, 0x5F, 0x3B, 0x72, 0xB7, - 0x38, 0xAD, 0x61, 0xAE, 0x65, 0xAB, 0x9A, 0x07, - 0xE7, 0x77, 0x4E, 0x2D, 0x7A, 0xB0, 0x2D, 0xBA, - 0x4E, 0x0C, 0xAF, 0x56, 0x02, 0xC8, 0x01, 0x78 - }, - { - 0x9A, 0x8F, 0xB3, 0xB5, 0x38, 0xC1, 0xD6, 0xC4, - 0x50, 0x51, 0xFA, 0x9E, 0xD9, 0xB0, 0x7D, 0x3E, - 0x89, 0xB4, 0x43, 0x03, 0x30, 0x01, 0x4A, 0x1E, - 0xFA, 0x28, 0x23, 0xC0, 0x82, 0x3C, 0xF2, 0x37 - }, - { - 0x30, 0x75, 0xC5, 0xBC, 0x7C, 0x3A, 0xD7, 0xE3, - 0x92, 0x01, 0x01, 0xBC, 0x68, 0x99, 0xC5, 0x8E, - 0xA7, 0x01, 0x67, 0xA7, 0x77, 0x2C, 0xA2, 0x8E, - 0x38, 0xE2, 0xC1, 0xB0, 0xD3, 0x25, 0xE5, 0xA0 - }, - { - 0xE8, 0x55, 0x94, 0x70, 0x0E, 0x39, 0x22, 0xA1, - 0xE8, 0xE4, 0x1E, 0xB8, 0xB0, 0x64, 0xE7, 0xAC, - 0x6D, 0x94, 0x9D, 0x13, 0xB5, 0xA3, 0x45, 0x23, - 0xE5, 0xA6, 0xBE, 0xAC, 0x03, 0xC8, 0xAB, 0x29 - }, - { - 0x1D, 0x37, 0x01, 0xA5, 0x66, 0x1B, 0xD3, 0x1A, - 0xB2, 0x05, 0x62, 0xBD, 0x07, 0xB7, 0x4D, 0xD1, - 0x9A, 0xC8, 0xF3, 0x52, 0x4B, 0x73, 0xCE, 0x7B, - 0xC9, 0x96, 0xB7, 0x88, 0xAF, 0xD2, 0xF3, 0x17 - }, - { - 0x87, 0x4E, 0x19, 0x38, 0x03, 0x3D, 0x7D, 0x38, - 0x35, 0x97, 0xA2, 0xA6, 0x5F, 0x58, 0xB5, 0x54, - 0xE4, 0x11, 0x06, 0xF6, 0xD1, 0xD5, 0x0E, 0x9B, - 0xA0, 0xEB, 0x68, 0x5F, 0x6B, 0x6D, 0xA0, 0x71 - }, - { - 0x93, 0xF2, 0xF3, 0xD6, 0x9B, 0x2D, 0x36, 0x52, - 0x95, 0x56, 0xEC, 0xCA, 0xF9, 0xF9, 0x9A, 0xDB, - 0xE8, 0x95, 0xE1, 0x57, 0x22, 0x31, 0xE6, 0x49, - 0xB5, 0x05, 0x84, 0xB5, 0xD7, 0xD0, 0x8A, 0xF8 - }, - { - 0x06, 0xE0, 0x6D, 0x61, 0x0F, 0x2E, 0xEB, 0xBA, - 0x36, 0x76, 0x82, 0x3E, 0x77, 0x44, 0xD7, 0x51, - 0xAF, 0xF7, 0x30, 0x76, 0xED, 0x65, 0xF3, 0xCF, - 0xF5, 0xE7, 0x2F, 0xD2, 0x27, 0x99, 0x9C, 0x77 - }, - { - 0x8D, 0xF7, 0x57, 0xB3, 0xA1, 0xE0, 0xF4, 0x80, - 0xFA, 0x76, 0xC7, 0xF3, 0x58, 0xED, 0x03, 0x98, - 0xBE, 0x3F, 0x2A, 0x8F, 0x7B, 0x90, 0xEA, 0x8C, - 0x80, 0x75, 0x99, 0xDE, 0xDA, 0x1D, 0x05, 0x34 - }, - { - 0xEE, 0xC9, 0xC5, 0xC6, 0x3C, 0xC5, 0x16, 0x9D, - 0x96, 0x7B, 0xB1, 0x62, 0x4E, 0x9E, 0xE5, 0xCE, - 0xD9, 0x28, 0x97, 0x73, 0x6E, 0xFB, 0xD1, 0x57, - 0x54, 0x8D, 0x82, 0xE8, 0x7C, 0xC7, 0x2F, 0x25 - }, - { - 0xCC, 0x2B, 0x58, 0x32, 0xAD, 0x27, 0x2C, 0xC5, - 0x5C, 0x10, 0xD4, 0xF8, 0xC7, 0xF8, 0xBB, 0x38, - 0xE6, 0xE4, 0xEB, 0x92, 0x2F, 0x93, 0x86, 0x83, - 0x0F, 0x90, 0xB1, 0xE3, 0xDA, 0x39, 0x37, 0xD5 - }, - { - 0x36, 0x89, 0x85, 0xD5, 0x38, 0x7C, 0x0B, 0xFC, - 0x92, 0x8A, 0xC2, 0x54, 0xFA, 0x6D, 0x16, 0x67, - 0x3E, 0x70, 0x94, 0x75, 0x66, 0x96, 0x1B, 0x5F, - 0xB3, 0x32, 0x5A, 0x58, 0x8A, 0xB3, 0x17, 0x3A - }, - { - 0xF1, 0xE4, 0x42, 0xAF, 0xB8, 0x72, 0x15, 0x1F, - 0x81, 0x34, 0x95, 0x6C, 0x54, 0x8A, 0xE3, 0x24, - 0x0D, 0x07, 0xE6, 0xE3, 0x38, 0xD4, 0xA7, 0xA6, - 0xAF, 0x8D, 0xA4, 0x11, 0x9A, 0xB0, 0xE2, 0xB0 - }, - { - 0xB0, 0x12, 0xC7, 0x54, 0x6A, 0x39, 0xC4, 0x0C, - 0xAD, 0xEC, 0xE4, 0xE0, 0x4E, 0x7F, 0x33, 0xC5, - 0x93, 0xAD, 0x18, 0x2E, 0xBC, 0x5A, 0x46, 0xD2, - 0xDB, 0xF4, 0xAD, 0x1A, 0x92, 0xF5, 0x9E, 0x7B - }, - { - 0x6C, 0x60, 0x97, 0xCD, 0x20, 0x33, 0x09, 0x6B, - 0x4D, 0xF3, 0x17, 0xDE, 0x8A, 0x90, 0x8B, 0x7D, - 0x0C, 0x72, 0x94, 0x39, 0x0C, 0x5A, 0x39, 0x9C, - 0x30, 0x1B, 0xF2, 0xA2, 0x65, 0x2E, 0x82, 0x62 - }, - { - 0xBA, 0x83, 0xFE, 0xB5, 0x10, 0xB4, 0x9A, 0xDE, - 0x4F, 0xAE, 0xFB, 0xE9, 0x42, 0x78, 0x1E, 0xAF, - 0xD4, 0x1A, 0xD5, 0xD4, 0x36, 0x88, 0x85, 0x31, - 0xB6, 0x88, 0x59, 0xF2, 0x2C, 0x2D, 0x16, 0x4A - }, - { - 0x5A, 0x06, 0x9E, 0x43, 0x92, 0x19, 0x5A, 0xC9, - 0xD2, 0x84, 0xA4, 0x7F, 0x3B, 0xD8, 0x54, 0xAF, - 0x8F, 0xD0, 0xD7, 0xFD, 0xC3, 0x48, 0x3D, 0x2C, - 0x5F, 0x34, 0x24, 0xCC, 0xFD, 0xA1, 0x5C, 0x8E - }, - { - 0x7E, 0x88, 0xD6, 0x4B, 0xBB, 0xE2, 0x02, 0x4F, - 0x44, 0x54, 0xBA, 0x13, 0x98, 0xB3, 0xD8, 0x65, - 0x2D, 0xCE, 0xC8, 0x20, 0xB1, 0x4C, 0x3B, 0x0A, - 0xBF, 0xBF, 0x0F, 0x4F, 0x33, 0x06, 0xBB, 0x5E - }, - { - 0xF8, 0x74, 0x2F, 0xF4, 0x6D, 0xFD, 0xF3, 0xEC, - 0x82, 0x64, 0xF9, 0x94, 0x5B, 0x20, 0x41, 0x94, - 0x62, 0xF0, 0x69, 0xE8, 0x33, 0xC5, 0x94, 0xEC, - 0x80, 0xFF, 0xAC, 0x5E, 0x7E, 0x51, 0x34, 0xF9 - }, - { - 0xD3, 0xE0, 0xB7, 0x38, 0xD2, 0xE9, 0x2F, 0x3C, - 0x47, 0xC7, 0x94, 0x66, 0x66, 0x09, 0xC0, 0xF5, - 0x50, 0x4F, 0x67, 0xEC, 0x4E, 0x76, 0x0E, 0xEE, - 0xCC, 0xF8, 0x64, 0x4E, 0x68, 0x33, 0x34, 0x11 - }, - { - 0x0C, 0x90, 0xCE, 0x10, 0xED, 0xF0, 0xCE, 0x1D, - 0x47, 0xEE, 0xB5, 0x0B, 0x5B, 0x7A, 0xFF, 0x8E, - 0xE8, 0xA4, 0x3B, 0x64, 0xA8, 0x89, 0xC1, 0xC6, - 0xC6, 0xB8, 0xE3, 0x1A, 0x3C, 0xFC, 0x45, 0xEE - }, - { - 0x83, 0x91, 0x7A, 0xC1, 0xCD, 0xAD, 0xE8, 0xF0, - 0xE3, 0xBF, 0x42, 0x6F, 0xEA, 0xC1, 0x38, 0x8B, - 0x3F, 0xCB, 0xE3, 0xE1, 0xBF, 0x98, 0x79, 0x8C, - 0x81, 0x58, 0xBF, 0x75, 0x8E, 0x8D, 0x5D, 0x4E - }, - { - 0xDC, 0x8E, 0xB0, 0xC0, 0x13, 0xFA, 0x9D, 0x06, - 0x4E, 0xE3, 0x76, 0x23, 0x36, 0x9F, 0xB3, 0x94, - 0xAF, 0x97, 0x4B, 0x1A, 0xAC, 0x82, 0x40, 0x5B, - 0x88, 0x97, 0x6C, 0xD8, 0xFC, 0xA1, 0x25, 0x30 - }, - { - 0x9A, 0xF4, 0xFC, 0x92, 0xEA, 0x8D, 0x6B, 0x5F, - 0xE7, 0x99, 0x0E, 0x3A, 0x02, 0x70, 0x1E, 0xC2, - 0x2B, 0x2D, 0xFD, 0x71, 0x00, 0xB9, 0x0D, 0x05, - 0x51, 0x86, 0x94, 0x17, 0x95, 0x5E, 0x44, 0xC8 - }, - { - 0xC7, 0x22, 0xCE, 0xC1, 0x31, 0xBA, 0xA1, 0x63, - 0xF4, 0x7E, 0x4B, 0x33, 0x9E, 0x1F, 0xB9, 0xB4, - 0xAC, 0xA2, 0x48, 0xC4, 0x75, 0x93, 0x45, 0xEA, - 0xDB, 0xD6, 0xC6, 0xA7, 0xDD, 0xB5, 0x04, 0x77 - }, - { - 0x18, 0x37, 0xB1, 0x20, 0xD4, 0xE4, 0x04, 0x6C, - 0x6D, 0xE8, 0xCC, 0xAF, 0x09, 0xF1, 0xCA, 0xF3, - 0x02, 0xAD, 0x56, 0x23, 0x4E, 0x6B, 0x42, 0x2C, - 0xE9, 0x0A, 0x61, 0xBF, 0x06, 0xAE, 0xE4, 0x3D - }, - { - 0x87, 0xAC, 0x9D, 0x0F, 0x8A, 0x0B, 0x11, 0xBF, - 0xED, 0xD6, 0x99, 0x1A, 0x6D, 0xAF, 0x34, 0xC8, - 0xAA, 0x5D, 0x7E, 0x8A, 0xE1, 0xB9, 0xDF, 0x4A, - 0xF7, 0x38, 0x00, 0x5F, 0xE7, 0x8C, 0xE9, 0x3C - }, - { - 0xE2, 0x1F, 0xB6, 0x68, 0xEB, 0xB8, 0xBF, 0x2D, - 0x82, 0x08, 0x6D, 0xED, 0xCB, 0x3A, 0x53, 0x71, - 0xC2, 0xC4, 0x6F, 0xA1, 0xAC, 0x11, 0xD2, 0xE2, - 0xC5, 0x66, 0xD1, 0x4A, 0xD3, 0xC3, 0x65, 0x3F - }, - { - 0x5A, 0x9A, 0x69, 0x81, 0x5E, 0x4D, 0x3E, 0xB7, - 0x72, 0xED, 0x90, 0x8F, 0xE6, 0x58, 0xCE, 0x50, - 0x87, 0x31, 0x0E, 0xC1, 0xD5, 0x0C, 0xB9, 0x4F, - 0x56, 0x28, 0x33, 0x9A, 0x61, 0xDC, 0xD9, 0xEE - }, - { - 0xAA, 0xC2, 0x85, 0xF1, 0x20, 0x8F, 0x70, 0xA6, - 0x47, 0x97, 0xD0, 0xA9, 0x40, 0x0D, 0xA6, 0x46, - 0x53, 0x30, 0x18, 0x38, 0xFE, 0xF6, 0x69, 0x0B, - 0x87, 0xCD, 0xA9, 0x15, 0x9E, 0xE0, 0x7E, 0xF4 - }, - { - 0x05, 0x64, 0x3C, 0x1C, 0x6F, 0x26, 0x59, 0x25, - 0xA6, 0x50, 0x93, 0xF9, 0xDE, 0x8A, 0x19, 0x1C, - 0x4F, 0x6F, 0xD1, 0x41, 0x8F, 0xBF, 0x66, 0xBE, - 0x80, 0x59, 0xA9, 0x1B, 0xA8, 0xDC, 0xDA, 0x61 - }, - { - 0x1C, 0x6C, 0xDE, 0x5B, 0x78, 0x10, 0x3C, 0x9E, - 0x6F, 0x04, 0x6D, 0xFE, 0x30, 0xF5, 0x12, 0x1C, - 0xF9, 0xD4, 0x03, 0x9E, 0xFE, 0x22, 0x25, 0x40, - 0xA4, 0x1B, 0xBC, 0x06, 0xE4, 0x69, 0xFE, 0xB6 - }, - { - 0xB4, 0x9B, 0xB4, 0x6D, 0x1B, 0x19, 0x3B, 0x04, - 0x5E, 0x74, 0x12, 0x05, 0x9F, 0xE7, 0x2D, 0x55, - 0x25, 0x52, 0xA8, 0xFB, 0x6C, 0x36, 0x41, 0x07, - 0x23, 0xDC, 0x7D, 0x05, 0xFC, 0xCE, 0xDE, 0xD3 - }, - { - 0xB6, 0x12, 0xD3, 0xD2, 0x1F, 0xC4, 0xDE, 0x3C, - 0x79, 0x1A, 0xF7, 0x35, 0xE5, 0x9F, 0xB7, 0x17, - 0xD8, 0x39, 0x72, 0x3B, 0x42, 0x50, 0x8E, 0x9E, - 0xBF, 0x78, 0x06, 0xD9, 0x3E, 0x9C, 0x83, 0x7F - }, - { - 0x7C, 0x33, 0x90, 0xA3, 0xE5, 0xCB, 0x27, 0xD1, - 0x86, 0x8B, 0xA4, 0x55, 0xCF, 0xEB, 0x32, 0x22, - 0xFD, 0xE2, 0x7B, 0xCD, 0xA4, 0xBF, 0x24, 0x8E, - 0x3D, 0x29, 0xCF, 0x1F, 0x34, 0x32, 0x9F, 0x25 - }, - { - 0xBD, 0x42, 0xEE, 0xA7, 0xB3, 0x54, 0x86, 0xCD, - 0xD0, 0x90, 0x7C, 0xB4, 0x71, 0x2E, 0xDE, 0x2F, - 0x4D, 0xEE, 0xCC, 0xBC, 0xA1, 0x91, 0x60, 0x38, - 0x65, 0xA1, 0xCC, 0x80, 0x9F, 0x12, 0xB4, 0x46 - }, - { - 0xD1, 0xDD, 0x62, 0x01, 0x74, 0x0C, 0xFA, 0xAD, - 0x53, 0xCE, 0xCC, 0xB7, 0x56, 0xB1, 0x10, 0xF3, - 0xD5, 0x0F, 0x81, 0x7B, 0x43, 0xD7, 0x55, 0x95, - 0x57, 0xE5, 0x7A, 0xAD, 0x14, 0x3A, 0x85, 0xD9 - }, - { - 0x58, 0x29, 0x64, 0x3C, 0x1B, 0x10, 0xE1, 0xC8, - 0xCC, 0xF2, 0x0C, 0x9B, 0x4A, 0xF8, 0x21, 0xEA, - 0x05, 0x2D, 0x7F, 0x0F, 0x7C, 0x22, 0xF7, 0x38, - 0x0B, 0xBB, 0xCF, 0xAF, 0xB9, 0x77, 0xE2, 0x1F - }, - { - 0xFC, 0x4C, 0xF2, 0xA7, 0xFB, 0xE0, 0xB1, 0xE8, - 0xAE, 0xFB, 0xE4, 0xB4, 0xB7, 0x9E, 0xD8, 0x4E, - 0xC9, 0x7B, 0x03, 0x4F, 0x51, 0xB4, 0xE9, 0x7F, - 0x76, 0x0B, 0x20, 0x63, 0x97, 0x65, 0xB9, 0x33 - }, - { - 0x4D, 0x7C, 0x3B, 0x34, 0x38, 0xA0, 0xBD, 0xA2, - 0x8E, 0x7A, 0x96, 0xE4, 0x20, 0x27, 0xD8, 0x13, - 0xE8, 0x8A, 0xE6, 0x28, 0x85, 0x49, 0x98, 0x33, - 0xD3, 0xC5, 0xF6, 0x35, 0x9E, 0xF7, 0xED, 0xBC - }, - { - 0x34, 0xCB, 0xD3, 0x20, 0x68, 0xEF, 0x7E, 0x82, - 0x09, 0x9E, 0x58, 0x0B, 0xF9, 0xE2, 0x64, 0x23, - 0xE9, 0x81, 0xE3, 0x1B, 0x1B, 0xBC, 0xE6, 0x1A, - 0xEA, 0xB1, 0x4C, 0x32, 0xA2, 0x73, 0xE4, 0xCB - }, - { - 0xA0, 0x5D, 0xDA, 0x7D, 0x0D, 0xA9, 0xE0, 0x94, - 0xAE, 0x22, 0x53, 0x3F, 0x79, 0xE7, 0xDC, 0xCD, - 0x26, 0xB1, 0x75, 0x7C, 0xEF, 0xB9, 0x5B, 0xCF, - 0x62, 0xC4, 0xFF, 0x9C, 0x26, 0x92, 0xE1, 0xC0 - }, - { - 0x22, 0x4C, 0xCF, 0xFA, 0x7C, 0xCA, 0x4C, 0xE3, - 0x4A, 0xFD, 0x47, 0xF6, 0x2A, 0xDE, 0x53, 0xC5, - 0xE8, 0x48, 0x9B, 0x04, 0xAC, 0x9C, 0x41, 0xF7, - 0xFA, 0xD0, 0xC8, 0xED, 0xEB, 0x89, 0xE9, 0x41 - }, - { - 0x6B, 0xC6, 0x07, 0x64, 0x83, 0xAA, 0x11, 0xC0, - 0x7F, 0xBA, 0x55, 0xC0, 0xF9, 0xA1, 0xB5, 0xDA, - 0x87, 0xEC, 0xBF, 0xFE, 0xA7, 0x55, 0x98, 0xCC, - 0x31, 0x8A, 0x51, 0x4C, 0xEC, 0x7B, 0x3B, 0x6A - }, - { - 0x9A, 0x03, 0x60, 0xE2, 0x3A, 0x22, 0xF4, 0xF7, - 0x6C, 0x0E, 0x95, 0x28, 0xDA, 0xFD, 0x12, 0x9B, - 0xB4, 0x67, 0x5F, 0xB8, 0x8D, 0x44, 0xEA, 0xF8, - 0x57, 0x77, 0x30, 0x0C, 0xEC, 0x9B, 0xCC, 0x79 - }, - { - 0x79, 0x01, 0x99, 0xB4, 0xCA, 0x90, 0xDE, 0xDC, - 0xCF, 0xE3, 0x24, 0x74, 0xE8, 0x5B, 0x17, 0x4F, - 0x06, 0x9E, 0x35, 0x42, 0xBE, 0x31, 0x04, 0xC1, - 0x12, 0x5C, 0x2F, 0xDB, 0xD6, 0x9D, 0x32, 0xC7 - }, - { - 0x55, 0x83, 0x99, 0x25, 0x83, 0x4C, 0xA3, 0xE8, - 0x25, 0xE9, 0x92, 0x41, 0x87, 0x4D, 0x16, 0xD6, - 0xC2, 0x62, 0x36, 0x29, 0xC4, 0xC2, 0xAD, 0xDD, - 0xF0, 0xDB, 0xA0, 0x1E, 0x6C, 0xE8, 0xA0, 0xDC - }, - { - 0x61, 0x5F, 0xF8, 0x46, 0xD9, 0x93, 0x00, 0x7D, - 0x38, 0xDE, 0x1A, 0xEC, 0xB3, 0x17, 0x82, 0x89, - 0xDE, 0xD0, 0x9E, 0x6B, 0xB5, 0xCB, 0xD6, 0x0F, - 0x69, 0xC6, 0xAA, 0x36, 0x38, 0x30, 0x20, 0xF7 - }, - { - 0xF0, 0xE4, 0x0B, 0x4E, 0xD4, 0x0D, 0x34, 0x85, - 0x1E, 0x72, 0xB4, 0xEE, 0x4D, 0x00, 0xEA, 0x6A, - 0x40, 0xEA, 0x1C, 0x1B, 0xF9, 0xE5, 0xC2, 0x69, - 0x71, 0x0C, 0x9D, 0x51, 0xCB, 0xB8, 0xA3, 0xC9 - }, - { - 0x0B, 0x07, 0xB2, 0x33, 0x3B, 0x08, 0xD0, 0x8C, - 0x11, 0xCA, 0x34, 0xAB, 0x44, 0x9B, 0x71, 0xD2, - 0x9A, 0x0F, 0x43, 0xE1, 0xF7, 0x78, 0xE0, 0x73, - 0xE7, 0x90, 0x06, 0xCC, 0xB7, 0x30, 0xED, 0x62 - }, - { - 0xD1, 0xF4, 0xC2, 0x9D, 0x9F, 0x23, 0xEA, 0x35, - 0xEC, 0x40, 0x35, 0xB3, 0x77, 0xD5, 0x06, 0x53, - 0x8E, 0x72, 0x8B, 0xC7, 0x39, 0xC1, 0x45, 0x96, - 0x80, 0xCF, 0x1C, 0xC6, 0x94, 0x24, 0x92, 0x4D - }, - { - 0x12, 0x79, 0xCF, 0x6F, 0x66, 0x9F, 0x92, 0xF6, - 0xBF, 0xC2, 0x5D, 0x60, 0x5B, 0x94, 0x40, 0xC7, - 0xDC, 0xCB, 0xD2, 0x5D, 0xF2, 0x8D, 0xC7, 0x35, - 0x3A, 0xBC, 0x1C, 0x05, 0x30, 0x40, 0x5D, 0xC4 - }, - { - 0x1F, 0xA0, 0xAF, 0x00, 0x77, 0x5D, 0xC2, 0xCE, - 0x76, 0x50, 0x6D, 0x32, 0x80, 0xF4, 0x72, 0xD2, - 0xF6, 0xFF, 0x97, 0xA2, 0x15, 0x1F, 0xAA, 0x82, - 0x79, 0x42, 0xFE, 0xA4, 0x4A, 0xD0, 0xBA, 0x1F - }, - { - 0x3E, 0x1A, 0xD5, 0x4A, 0x5F, 0x83, 0x5B, 0x98, - 0x3B, 0xD2, 0xAA, 0xB0, 0xED, 0x2A, 0x4C, 0x0B, - 0xDD, 0x72, 0x16, 0x20, 0x9C, 0x36, 0xA7, 0x9E, - 0x9E, 0x2A, 0xAB, 0xB9, 0x9F, 0xAF, 0x35, 0x12 - }, - { - 0xC6, 0xED, 0x39, 0xE2, 0xD8, 0xB6, 0x36, 0xEC, - 0xCB, 0xA2, 0x45, 0xEF, 0x4E, 0x88, 0x64, 0xF4, - 0xCD, 0x94, 0x6B, 0xE2, 0x16, 0xB9, 0xBE, 0x48, - 0x30, 0x3E, 0x08, 0xB9, 0x2D, 0xD0, 0x94, 0x34 - }, - { - 0xE2, 0x47, 0x36, 0xC1, 0x3E, 0xCB, 0x9F, 0x36, - 0xA0, 0xD8, 0x29, 0xD4, 0x79, 0x8D, 0x76, 0x99, - 0xC1, 0x4C, 0xC6, 0x5B, 0x6D, 0xC4, 0x4E, 0xD6, - 0xF1, 0x0C, 0xD4, 0x85, 0x3D, 0x6E, 0x07, 0x57 - }, - { - 0x38, 0x9B, 0xE8, 0x80, 0x52, 0xA3, 0x81, 0x27, - 0x2C, 0x6D, 0xF7, 0x41, 0xA8, 0x8A, 0xD3, 0x49, - 0xB7, 0x12, 0x71, 0x84, 0x35, 0x48, 0x0A, 0x81, - 0x90, 0xB7, 0x04, 0x77, 0x1D, 0x2D, 0xE6, 0x37 - }, - { - 0x88, 0x9F, 0x2D, 0x57, 0x8A, 0x5D, 0xAE, 0xFD, - 0x34, 0x1C, 0x21, 0x09, 0x84, 0xE1, 0x26, 0xD1, - 0xD9, 0x6D, 0xA2, 0xDE, 0xE3, 0xC8, 0x1F, 0x7A, - 0x60, 0x80, 0xBF, 0x84, 0x56, 0x9B, 0x31, 0x14 - }, - { - 0xE9, 0x36, 0x09, 0x5B, 0x9B, 0x98, 0x2F, 0xFC, - 0x85, 0x6D, 0x2F, 0x52, 0x76, 0xA4, 0xE5, 0x29, - 0xEC, 0x73, 0x95, 0xDA, 0x31, 0x6D, 0x62, 0x87, - 0x02, 0xFB, 0x28, 0x1A, 0xDA, 0x6F, 0x38, 0x99 - }, - { - 0xEF, 0x89, 0xCE, 0x1D, 0x6F, 0x8B, 0x48, 0xEA, - 0x5C, 0xD6, 0xAE, 0xAB, 0x6A, 0x83, 0xD0, 0xCC, - 0x98, 0xC9, 0xA3, 0xA2, 0x07, 0xA1, 0x08, 0x57, - 0x32, 0xF0, 0x47, 0xD9, 0x40, 0x38, 0xC2, 0x88 - }, - { - 0xF9, 0x25, 0x01, 0x6D, 0x79, 0xF2, 0xAC, 0xA8, - 0xC4, 0x9E, 0xDF, 0xCD, 0x66, 0x21, 0xD5, 0xBE, - 0x3C, 0x8C, 0xEC, 0x61, 0xBD, 0x58, 0x71, 0xD8, - 0xC1, 0xD3, 0xA5, 0x65, 0xF3, 0x5E, 0x0C, 0x9F - }, - { - 0x63, 0xE8, 0x63, 0x4B, 0x75, 0x7A, 0x38, 0xF9, - 0x2B, 0x92, 0xFD, 0x23, 0x89, 0x3B, 0xA2, 0x99, - 0x85, 0x3A, 0x86, 0x13, 0x67, 0x9F, 0xDF, 0x7E, - 0x05, 0x11, 0x09, 0x5C, 0x0F, 0x04, 0x7B, 0xCA - }, - { - 0xCF, 0x2C, 0xCA, 0x07, 0x72, 0xB7, 0x05, 0xEB, - 0x57, 0xD2, 0x89, 0x43, 0xF8, 0x3D, 0x35, 0x3F, - 0xE2, 0x91, 0xE5, 0xB3, 0x77, 0x78, 0x0B, 0x37, - 0x4C, 0x8B, 0xA4, 0x66, 0x58, 0x30, 0xBE, 0x87 - }, - { - 0x46, 0xDF, 0x5B, 0x87, 0xC8, 0x0E, 0x7E, 0x40, - 0x74, 0xAE, 0xE6, 0x85, 0x59, 0x42, 0x47, 0x42, - 0x84, 0x5B, 0x9B, 0x35, 0x0F, 0x51, 0xBA, 0x55, - 0xB0, 0x74, 0xBB, 0xAE, 0x4C, 0x62, 0x6A, 0xAB - }, - { - 0x65, 0x8A, 0xA4, 0xF9, 0xD2, 0xBC, 0xBD, 0x4F, - 0x7F, 0x8E, 0xB6, 0x3E, 0x68, 0xF5, 0x36, 0x7E, - 0xDB, 0xC5, 0x00, 0xA0, 0xB1, 0xFB, 0xB4, 0x1E, - 0x9D, 0xF1, 0x41, 0xBC, 0xBA, 0x8F, 0xCD, 0x53 - }, - { - 0xEE, 0x80, 0x55, 0x50, 0x08, 0xA7, 0x16, 0x55, - 0xE0, 0x81, 0x09, 0x2B, 0xBA, 0x6F, 0x67, 0x0E, - 0xD9, 0x8A, 0xF9, 0xA0, 0x9F, 0xB5, 0xAF, 0xB9, - 0x4C, 0xBC, 0x5C, 0x75, 0x48, 0x14, 0xDB, 0x4F - }, - { - 0x2C, 0x5F, 0x9D, 0x04, 0x82, 0x20, 0xB0, 0x41, - 0xB6, 0xD4, 0x52, 0x4B, 0x44, 0x90, 0xCF, 0x8C, - 0x66, 0xFC, 0xB8, 0xE1, 0x4B, 0x0D, 0x64, 0x88, - 0x7A, 0xA1, 0xE4, 0x76, 0x1A, 0x60, 0x2B, 0x39 - }, - { - 0x44, 0xCB, 0x63, 0x11, 0xD0, 0x75, 0x0B, 0x7E, - 0x33, 0xF7, 0x33, 0x3A, 0xA7, 0x8A, 0xAC, 0xA9, - 0xC3, 0x4A, 0xD5, 0xF7, 0x9C, 0x1B, 0x15, 0x91, - 0xEC, 0x33, 0x95, 0x1E, 0x69, 0xC4, 0xC4, 0x61 - }, - { - 0x0C, 0x6C, 0xE3, 0x2A, 0x3E, 0xA0, 0x56, 0x12, - 0xC5, 0xF8, 0x09, 0x0F, 0x6A, 0x7E, 0x87, 0xF5, - 0xAB, 0x30, 0xE4, 0x1B, 0x70, 0x7D, 0xCB, 0xE5, - 0x41, 0x55, 0x62, 0x0A, 0xD7, 0x70, 0xA3, 0x40 - }, - { - 0xC6, 0x59, 0x38, 0xDD, 0x3A, 0x05, 0x3C, 0x72, - 0x9C, 0xF5, 0xB7, 0xC8, 0x9F, 0x39, 0x0B, 0xFE, - 0xBB, 0x51, 0x12, 0x76, 0x6B, 0xB0, 0x0A, 0xA5, - 0xFA, 0x31, 0x64, 0xDF, 0xDF, 0x3B, 0x56, 0x47 - }, - { - 0x7D, 0xE7, 0xF0, 0xD5, 0x9A, 0x90, 0x39, 0xAF, - 0xF3, 0xAA, 0xF3, 0x2C, 0x3E, 0xE5, 0x2E, 0x79, - 0x17, 0x53, 0x57, 0x29, 0x06, 0x21, 0x68, 0xD2, - 0x49, 0x0B, 0x6B, 0x6C, 0xE2, 0x44, 0xB3, 0x80 - }, - { - 0x89, 0x58, 0x98, 0xF5, 0x3A, 0x8F, 0x39, 0xE4, - 0x24, 0x10, 0xDA, 0x77, 0xB6, 0xC4, 0x81, 0x5B, - 0x0B, 0xB2, 0x39, 0x5E, 0x39, 0x22, 0xF5, 0xBE, - 0xD0, 0xE1, 0xFB, 0xF2, 0xA4, 0xC6, 0xDF, 0xEB - }, - { - 0xC9, 0x05, 0xA8, 0x49, 0x84, 0x34, 0x8A, 0x64, - 0xDB, 0x1F, 0x54, 0x20, 0x83, 0x74, 0x8A, 0xD9, - 0x0A, 0x4B, 0xAD, 0x98, 0x33, 0xCB, 0x6D, 0xA3, - 0x87, 0x29, 0x34, 0x31, 0xF1, 0x9E, 0x7C, 0x9C - }, - { - 0xED, 0x37, 0xD1, 0xA4, 0xD0, 0x6C, 0x90, 0xD1, - 0x95, 0x78, 0x48, 0x66, 0x7E, 0x95, 0x48, 0xFE, - 0xBB, 0x5D, 0x42, 0x3E, 0xAB, 0x4F, 0x56, 0x78, - 0x5C, 0xC4, 0xB5, 0x41, 0x6B, 0x78, 0x00, 0x08 - }, - { - 0x0B, 0xC6, 0x5D, 0x99, 0x97, 0xFB, 0x73, 0x4A, - 0x56, 0x1F, 0xB1, 0xE9, 0xF8, 0xC0, 0x95, 0x8A, - 0x02, 0xC7, 0xA4, 0xDB, 0xD0, 0x96, 0xEB, 0xEF, - 0x1A, 0x17, 0x51, 0xAE, 0xD9, 0x59, 0xEE, 0xD7 - }, - { - 0x7C, 0x5F, 0x43, 0x2E, 0xB8, 0xB7, 0x35, 0x2A, - 0x94, 0x94, 0xDE, 0xA4, 0xD5, 0x3C, 0x21, 0x38, - 0x70, 0x31, 0xCE, 0x70, 0xE8, 0x5D, 0x94, 0x08, - 0xFC, 0x6F, 0x8C, 0xD9, 0x8A, 0x6A, 0xAA, 0x1E - }, - { - 0xB8, 0xBF, 0x8E, 0x2C, 0x34, 0xE0, 0x33, 0x98, - 0x36, 0x39, 0x90, 0x9E, 0xAA, 0x37, 0x64, 0x0D, - 0x87, 0x7B, 0x04, 0x8F, 0xE2, 0x99, 0xB4, 0x70, - 0xAF, 0x2D, 0x0B, 0xA8, 0x2A, 0x5F, 0x14, 0xC0 - }, - { - 0x88, 0xA9, 0xDD, 0x13, 0xD5, 0xDA, 0xDB, 0xDE, - 0xE6, 0xBF, 0xF7, 0xEE, 0x1E, 0xF8, 0xC7, 0x1C, - 0xC1, 0x93, 0xAA, 0x4B, 0xF3, 0xE8, 0x4F, 0x8F, - 0xE8, 0x0C, 0xB0, 0x75, 0x68, 0x3C, 0x07, 0x79 - }, - { - 0x9A, 0xED, 0xB8, 0x87, 0x6D, 0xD2, 0x1C, 0x8C, - 0x84, 0xD2, 0xE7, 0x02, 0xA1, 0x36, 0x25, 0x98, - 0x04, 0x62, 0xF6, 0x8B, 0xF0, 0xA1, 0xB7, 0x25, - 0x4A, 0xD8, 0x06, 0xC3, 0x84, 0x03, 0xC9, 0xDE - }, - { - 0xD0, 0x97, 0x57, 0x3D, 0xF2, 0xD6, 0xB2, 0x48, - 0x9A, 0x47, 0x94, 0x84, 0x86, 0x98, 0x00, 0xA1, - 0xF8, 0x33, 0xEA, 0x16, 0x9E, 0xFF, 0x32, 0xAE, - 0x3C, 0xE6, 0x3A, 0x20, 0x79, 0x54, 0x8D, 0x78 - }, - { - 0xD1, 0x8F, 0x27, 0xA3, 0xE5, 0x55, 0xD7, 0xF9, - 0x1A, 0x00, 0x7C, 0x67, 0xAC, 0xEE, 0xDE, 0x39, - 0x1F, 0x75, 0xA6, 0x1F, 0xA4, 0x2A, 0x0B, 0x45, - 0x66, 0xEB, 0x58, 0x2C, 0xA0, 0x5E, 0xBC, 0xE7 - }, - { - 0xDF, 0x1D, 0xAA, 0x90, 0xB1, 0x70, 0x23, 0x13, - 0xE6, 0xA5, 0x90, 0x1C, 0x7A, 0xFC, 0x5E, 0xD9, - 0x65, 0x77, 0x17, 0xA7, 0x15, 0xFA, 0x53, 0xA4, - 0x18, 0x9E, 0xC1, 0xE5, 0xDF, 0x29, 0x3A, 0x68 - }, - { - 0x04, 0xE3, 0xA4, 0x96, 0xB6, 0x69, 0x96, 0xC6, - 0x6E, 0x32, 0x91, 0x9E, 0xD1, 0xF9, 0x4C, 0x36, - 0xEE, 0xBB, 0xF2, 0x40, 0x63, 0x3A, 0x2F, 0x73, - 0x98, 0x45, 0xF0, 0x29, 0x5D, 0x34, 0xAF, 0xBA - }, - { - 0x8C, 0x45, 0xD8, 0x8C, 0x4E, 0x9C, 0x9D, 0x0C, - 0x8C, 0x67, 0x7F, 0xE4, 0x8F, 0xA5, 0x44, 0x9B, - 0xA3, 0x01, 0x78, 0xD4, 0x0A, 0xF0, 0xF0, 0x21, - 0x79, 0x21, 0xC6, 0x2E, 0x4B, 0x60, 0xCD, 0xD3 - }, - { - 0xE1, 0x49, 0xA6, 0xB1, 0x3B, 0xDE, 0xDE, 0xA2, - 0xEE, 0xEE, 0x00, 0x9C, 0xE9, 0x44, 0x5E, 0x8D, - 0xCF, 0x76, 0xB7, 0x6E, 0x55, 0xA5, 0x01, 0xD8, - 0xF5, 0xB4, 0x3F, 0xF8, 0x96, 0x79, 0x6A, 0xD1 - }, - { - 0xA8, 0x37, 0xC4, 0xC7, 0xC6, 0xF5, 0xCF, 0xB9, - 0x9E, 0x10, 0x85, 0xFD, 0x43, 0x28, 0x7A, 0x41, - 0x05, 0xCB, 0x28, 0xB7, 0x6F, 0xC3, 0x8B, 0x60, - 0x55, 0xC5, 0xDC, 0xFF, 0x78, 0xB8, 0x25, 0x65 - }, - { - 0x42, 0x41, 0x1F, 0x28, 0x78, 0x0B, 0x4F, 0x16, - 0x38, 0x54, 0x0B, 0x87, 0x05, 0x21, 0xEC, 0x45, - 0xBC, 0xEB, 0x1E, 0x0C, 0x71, 0x31, 0xF7, 0xE1, - 0xC4, 0x67, 0x2E, 0x43, 0x6C, 0x88, 0xC8, 0xE9 - }, - { - 0x34, 0xB4, 0xE8, 0x76, 0x76, 0x94, 0x71, 0xDF, - 0x55, 0x2E, 0x55, 0x22, 0xCE, 0xA7, 0x84, 0xFA, - 0x53, 0xAC, 0x61, 0xBE, 0xDE, 0x8C, 0xFE, 0x29, - 0x14, 0x09, 0xE6, 0x8B, 0x69, 0xE8, 0x77, 0x6F - }, - { - 0x8F, 0x31, 0xD6, 0x37, 0xA9, 0x1D, 0xBD, 0x0E, - 0xCB, 0x0B, 0xA0, 0xE6, 0x94, 0xBE, 0xC1, 0x44, - 0x76, 0x58, 0xCE, 0x6C, 0x27, 0xEA, 0x9B, 0x95, - 0xFF, 0x36, 0x70, 0x1C, 0xAF, 0x36, 0xF0, 0x01 - }, - { - 0xB5, 0xC8, 0x95, 0xEB, 0x07, 0x1E, 0x3D, 0x38, - 0x52, 0x8D, 0x47, 0x5D, 0x3B, 0xB0, 0xBA, 0x88, - 0xB7, 0x17, 0x95, 0xE4, 0x0A, 0x98, 0x2E, 0x2A, - 0xC2, 0xD8, 0x44, 0x22, 0xA0, 0xF2, 0x68, 0x5D - }, - { - 0xE9, 0x06, 0x25, 0x7C, 0x41, 0x9D, 0x94, 0x1E, - 0xD2, 0xB8, 0xA9, 0xC1, 0x27, 0x81, 0xDB, 0x97, - 0x59, 0xA3, 0xFC, 0xF3, 0xDC, 0x7C, 0xDB, 0x03, - 0x15, 0x99, 0xE1, 0x08, 0x6B, 0x67, 0x2F, 0x10 - }, - { - 0x98, 0xAD, 0x24, 0x39, 0x7C, 0x6E, 0xAE, 0x4C, - 0xF7, 0x3E, 0xA8, 0xBB, 0xEF, 0x5A, 0x0B, 0x74, - 0xD2, 0x1A, 0xD1, 0x5F, 0x33, 0x92, 0x0F, 0x44, - 0x07, 0x0A, 0x98, 0xBD, 0xF5, 0x3D, 0x0B, 0x3A - }, - { - 0xDD, 0x51, 0x0C, 0xA5, 0x5B, 0x11, 0x70, 0xF9, - 0xCE, 0xFD, 0xBB, 0x16, 0xFC, 0x14, 0x52, 0x62, - 0xAA, 0x36, 0x3A, 0x87, 0x0A, 0x01, 0xE1, 0xBC, - 0x4F, 0xBE, 0x40, 0x23, 0x4B, 0x4B, 0x6F, 0x2F - }, - { - 0xF2, 0xD8, 0xD9, 0x31, 0xB9, 0x2E, 0x1C, 0xB6, - 0x98, 0xE5, 0x6E, 0xD0, 0x28, 0x19, 0xEA, 0x11, - 0xD2, 0x66, 0x19, 0xB8, 0x3A, 0x62, 0x09, 0xAD, - 0x67, 0x22, 0x53, 0x68, 0xFE, 0x11, 0x95, 0x71 - }, - { - 0xE4, 0x63, 0x70, 0x55, 0xDB, 0x91, 0xF9, 0x43, - 0x7C, 0xF4, 0x60, 0xEF, 0x40, 0xB5, 0x14, 0x5F, - 0x69, 0x98, 0x26, 0x6A, 0x5E, 0x74, 0xE9, 0x6A, - 0x00, 0x78, 0x2C, 0x62, 0xCF, 0x30, 0xCF, 0x1C - }, - { - 0x35, 0x63, 0x53, 0x0A, 0x89, 0xD3, 0x2B, 0x75, - 0xF7, 0x8D, 0x83, 0xE9, 0x87, 0x2A, 0xD4, 0xC5, - 0x75, 0xF5, 0x20, 0x39, 0x9D, 0x65, 0x03, 0x5D, - 0xED, 0x99, 0xE5, 0xEE, 0xC5, 0x80, 0x71, 0x50 - }, - { - 0x8E, 0x79, 0xF9, 0x2C, 0x86, 0x5B, 0xEB, 0x3E, - 0x1C, 0xDB, 0xF0, 0x8F, 0x75, 0x4A, 0x26, 0x06, - 0xE8, 0x53, 0x49, 0x05, 0x3D, 0x66, 0xD6, 0x16, - 0x02, 0x4A, 0x81, 0x3F, 0xCA, 0x54, 0x1A, 0x4D - }, - { - 0x86, 0x42, 0x26, 0xF2, 0x83, 0x9C, 0x76, 0xB1, - 0xD5, 0xF7, 0xC1, 0x3D, 0x98, 0xC2, 0xA5, 0x15, - 0x8C, 0x2A, 0xBB, 0x71, 0xD9, 0xD8, 0xF0, 0xFA, - 0x1F, 0x7C, 0x3F, 0x74, 0x68, 0x00, 0x16, 0x03 - }, - { - 0xD3, 0xE3, 0xF5, 0xB8, 0xCE, 0xEB, 0xB1, 0x11, - 0x84, 0x80, 0x35, 0x35, 0x90, 0x0B, 0x6E, 0xED, - 0xDA, 0x60, 0x6E, 0xEB, 0x36, 0x97, 0x51, 0xA7, - 0xCD, 0xA3, 0x6C, 0xA3, 0x02, 0x29, 0xFB, 0x02 - }, - { - 0x8C, 0x7D, 0x6B, 0x98, 0x72, 0x69, 0x16, 0x90, - 0x31, 0xF7, 0x1F, 0xD7, 0xE4, 0xC4, 0x45, 0x01, - 0x2D, 0x3E, 0x6A, 0x3C, 0x88, 0x09, 0xF6, 0x47, - 0x9B, 0xD6, 0x67, 0xCF, 0x31, 0x1E, 0x27, 0x6E - }, - { - 0xB9, 0x04, 0xB5, 0x71, 0x1B, 0xF1, 0x9E, 0x85, - 0x32, 0xF7, 0xAD, 0x64, 0x27, 0x41, 0x0A, 0x62, - 0xA1, 0xF7, 0x7F, 0x77, 0xB9, 0xB6, 0xD7, 0x1D, - 0x2F, 0xC4, 0x3B, 0xC9, 0x0F, 0x73, 0x23, 0x5A - }, - { - 0x45, 0x36, 0x63, 0x43, 0x15, 0xC8, 0x67, 0x28, - 0xF5, 0xAB, 0x74, 0x49, 0xEB, 0x2D, 0x04, 0x02, - 0x0E, 0x9E, 0xAE, 0x8D, 0xD6, 0x79, 0x55, 0x00, - 0xE9, 0xEC, 0x9A, 0x00, 0x66, 0x38, 0x6E, 0x69 - }, - { - 0xFD, 0x5E, 0x49, 0xFE, 0xD4, 0x9D, 0xC4, 0x4B, - 0xDE, 0x89, 0xF4, 0x60, 0xA9, 0x50, 0x19, 0x1E, - 0xBB, 0x06, 0x7C, 0x69, 0x8A, 0x3F, 0x21, 0xEA, - 0x14, 0x30, 0x8C, 0x74, 0x13, 0xB9, 0x16, 0x81 - }, - { - 0x31, 0xF0, 0x1D, 0x03, 0x0B, 0x9B, 0x22, 0xD0, - 0x0A, 0x0F, 0x71, 0xED, 0x2C, 0xEB, 0x5D, 0x2D, - 0xC8, 0x1A, 0xF2, 0xC2, 0x4B, 0xF5, 0x67, 0x0F, - 0xDE, 0x19, 0xA6, 0x85, 0xE8, 0xD1, 0x39, 0x2E - }, - { - 0x5F, 0x84, 0xD9, 0xDE, 0x28, 0x4B, 0x1E, 0x4F, - 0x67, 0x8E, 0x31, 0xAB, 0x6A, 0x76, 0xF5, 0x66, - 0x1B, 0x5A, 0xEA, 0xA7, 0x68, 0x53, 0x93, 0x84, - 0xAA, 0x38, 0xF9, 0xE4, 0x9C, 0xCE, 0x6E, 0x6E - }, - { - 0xB2, 0x07, 0x9E, 0x59, 0x97, 0xA4, 0xEA, 0xD3, - 0xA7, 0x1F, 0xEF, 0xC0, 0x2F, 0x90, 0xA7, 0x48, - 0x3A, 0x10, 0xFD, 0x2E, 0x6F, 0x31, 0xBD, 0xA9, - 0xD2, 0x08, 0x44, 0x85, 0xCC, 0x01, 0x6B, 0xBD - }, - { - 0xE0, 0xF8, 0x4D, 0x7F, 0x52, 0x5B, 0x6F, 0xED, - 0x79, 0x1F, 0x77, 0x28, 0x9A, 0xE5, 0x8F, 0x7D, - 0x50, 0xA2, 0x94, 0x32, 0xD4, 0x2C, 0x25, 0xC1, - 0xE8, 0x39, 0x29, 0xB8, 0x38, 0x89, 0x1D, 0x79 - }, - { - 0x70, 0x46, 0x96, 0x90, 0x95, 0x6D, 0x79, 0x18, - 0xAC, 0xE7, 0xBA, 0x5F, 0x41, 0x30, 0x2D, 0xA1, - 0x38, 0xC9, 0xB5, 0x6E, 0xCD, 0x41, 0x55, 0x44, - 0xFA, 0xCE, 0x8D, 0x99, 0x8C, 0x21, 0xAB, 0xEB - }, - { - 0x45, 0xC9, 0x1A, 0x62, 0x24, 0x9B, 0x39, 0xCD, - 0xA9, 0x4E, 0x50, 0x82, 0x95, 0xBE, 0xC7, 0x66, - 0x71, 0x19, 0x44, 0x77, 0x65, 0xEF, 0x80, 0xEF, - 0xA8, 0x2D, 0x1E, 0x92, 0xD5, 0x70, 0x67, 0xD8 - }, - { - 0x1D, 0x9E, 0x00, 0x73, 0xEE, 0xD0, 0x73, 0x15, - 0x54, 0xC3, 0xBE, 0xAA, 0x47, 0x46, 0x0D, 0x51, - 0x1A, 0xD2, 0x61, 0xDD, 0x4D, 0x4A, 0x3B, 0xED, - 0x9D, 0x8D, 0x20, 0x2F, 0x22, 0xF2, 0x15, 0x89 - }, - { - 0x40, 0x82, 0x62, 0x73, 0x6D, 0x8A, 0xEC, 0x0B, - 0x84, 0x7D, 0xBA, 0x25, 0x02, 0x58, 0x60, 0x8A, - 0x43, 0x45, 0xA6, 0x3A, 0x1E, 0xB1, 0x95, 0xE5, - 0xC7, 0xAE, 0x2E, 0xE8, 0x74, 0xC3, 0x4D, 0xA8 - }, - { - 0x23, 0xD2, 0xB7, 0x04, 0x39, 0x46, 0x99, 0x49, - 0x98, 0x23, 0x90, 0x53, 0x8D, 0x7E, 0x5A, 0xDE, - 0x9F, 0x18, 0xC8, 0xE3, 0xBB, 0xF6, 0x60, 0x5A, - 0xFC, 0xF4, 0x9B, 0x00, 0xC0, 0x61, 0xE8, 0x37 - }, - { - 0x23, 0x2F, 0xB1, 0x87, 0xD2, 0x71, 0xBE, 0xA9, - 0x12, 0xEF, 0xD4, 0x07, 0xFF, 0xE0, 0x80, 0x56, - 0xD6, 0xA4, 0x2E, 0x53, 0x21, 0xEC, 0x79, 0x2D, - 0xF3, 0xD5, 0x84, 0xA9, 0x4F, 0x63, 0x0A, 0xB2 - }, - { - 0x13, 0x8E, 0x19, 0x44, 0xE4, 0xB5, 0x4D, 0xE8, - 0x68, 0x1D, 0x7E, 0x48, 0xC4, 0xF0, 0x81, 0x48, - 0xE4, 0x0A, 0x56, 0x7E, 0x5C, 0xAD, 0x94, 0x6A, - 0x6A, 0xF4, 0xE8, 0xD5, 0xD2, 0x6F, 0x75, 0xC7 - }, - { - 0x80, 0xC1, 0x51, 0x32, 0x5F, 0xBF, 0xC6, 0x78, - 0xB7, 0xBE, 0x4E, 0x40, 0xB3, 0x0F, 0x29, 0xFE, - 0x31, 0xCD, 0xBE, 0x1C, 0x84, 0x12, 0x6E, 0x00, - 0x6D, 0xF3, 0xC1, 0x85, 0x24, 0xBD, 0x2D, 0x6C - }, - { - 0xA6, 0x42, 0x26, 0x73, 0x01, 0x66, 0x9D, 0xF2, - 0x61, 0xB8, 0x39, 0xF8, 0x73, 0x65, 0x76, 0x29, - 0x05, 0xFF, 0x32, 0x0A, 0x0A, 0x2F, 0xC4, 0xBD, - 0xC4, 0x8E, 0x5A, 0x8E, 0x15, 0xD1, 0x32, 0x33 - }, - { - 0x0F, 0x8B, 0x10, 0x99, 0x38, 0x60, 0x93, 0x7A, - 0x74, 0xCC, 0x2D, 0xE4, 0x0A, 0x27, 0x31, 0xDD, - 0x99, 0x54, 0xB6, 0x54, 0xBB, 0x94, 0xC3, 0x4E, - 0x87, 0x66, 0x52, 0xE9, 0x8D, 0x4B, 0xBD, 0x16 - }, - { - 0xE6, 0x34, 0xA5, 0x85, 0x12, 0x49, 0x32, 0x73, - 0x26, 0x0F, 0x10, 0xD4, 0x49, 0x53, 0xCD, 0x99, - 0x8E, 0x34, 0xCB, 0x82, 0x81, 0xC4, 0x1B, 0xF4, - 0x2E, 0x0A, 0xE2, 0xF2, 0x5C, 0xBD, 0x1F, 0x75 - }, - { - 0xBD, 0xE6, 0xAF, 0x9B, 0xAF, 0x3C, 0x07, 0xE9, - 0x54, 0x23, 0xCA, 0xB5, 0x04, 0xDE, 0xE7, 0x0E, - 0xDC, 0xC3, 0x31, 0x8B, 0x22, 0xDD, 0x1E, 0xB6, - 0xFD, 0x85, 0xBE, 0x44, 0x7A, 0xC9, 0xF2, 0x09 - }, - { - 0x91, 0x4B, 0x37, 0xAB, 0x5B, 0x8C, 0xFD, 0xE6, - 0xA4, 0x80, 0x46, 0x6A, 0x0D, 0x82, 0x43, 0x2C, - 0x7D, 0x76, 0x32, 0x8E, 0x9A, 0x88, 0xEF, 0x5B, - 0x4F, 0x52, 0x42, 0x9F, 0x7A, 0x3F, 0xFC, 0x7D - }, - { - 0x55, 0xBE, 0x66, 0xE9, 0xA5, 0xAA, 0x67, 0x1A, - 0x23, 0x88, 0x2E, 0xF3, 0xE7, 0xD9, 0xD3, 0x6E, - 0xA9, 0x54, 0x87, 0xDC, 0x71, 0xB7, 0x25, 0xA5, - 0xAD, 0x4B, 0x79, 0x8A, 0x87, 0x91, 0x43, 0xD0 - }, - { - 0x3F, 0xD0, 0x45, 0x89, 0x4B, 0x83, 0x6E, 0x44, - 0xE9, 0xCA, 0x75, 0xFB, 0xE3, 0xEA, 0xDC, 0x48, - 0x6C, 0xBB, 0xD0, 0xD8, 0xCE, 0xE1, 0xB3, 0xCF, - 0x14, 0xF7, 0x6E, 0x7F, 0x1E, 0x77, 0xAE, 0xF3 - }, - { - 0xCE, 0x60, 0x34, 0x3D, 0xC4, 0x87, 0x4B, 0x66, - 0x04, 0xE1, 0xFB, 0x23, 0x1E, 0x37, 0xEC, 0x1E, - 0xEC, 0x3F, 0x06, 0x56, 0x6E, 0x42, 0x8A, 0xE7, - 0x64, 0xEF, 0xFF, 0xA2, 0x30, 0xAD, 0xD4, 0x85 - }, - { - 0xE3, 0x8C, 0x9D, 0xF0, 0x24, 0xDE, 0x21, 0x53, - 0xD2, 0x26, 0x73, 0x8A, 0x0E, 0x5B, 0xA9, 0xB8, - 0xC6, 0x78, 0x4D, 0xAC, 0xA6, 0x5C, 0x22, 0xA7, - 0x62, 0x8E, 0xB5, 0x8E, 0xA0, 0xD4, 0x95, 0xA7 - }, - { - 0x8D, 0xFE, 0xC0, 0xD4, 0xF3, 0x65, 0x8A, 0x20, - 0xA0, 0xBA, 0xD6, 0x6F, 0x21, 0x60, 0x83, 0x2B, - 0x16, 0x4E, 0x70, 0x0A, 0x21, 0xEC, 0x5A, 0x01, - 0x65, 0xC3, 0x67, 0x72, 0xB2, 0x08, 0x61, 0x11 - }, - { - 0x44, 0x01, 0xB5, 0x0E, 0x09, 0x86, 0x5F, 0x42, - 0x38, 0x24, 0x3B, 0x82, 0x25, 0xCA, 0x40, 0xA0, - 0x8D, 0xBB, 0x46, 0x85, 0xF5, 0xF8, 0x62, 0xFB, - 0xDD, 0x72, 0x98, 0x04, 0x31, 0xA8, 0x5D, 0x3F - }, - { - 0x86, 0x68, 0x94, 0x27, 0x88, 0xC4, 0xCE, 0x8A, - 0x33, 0x19, 0x0F, 0xFC, 0xFA, 0xD1, 0xC6, 0x78, - 0xC4, 0xFA, 0x41, 0xE9, 0x94, 0x17, 0x09, 0x4E, - 0x24, 0x0F, 0x4A, 0x43, 0xF3, 0x87, 0xA3, 0xB6 - }, - { - 0xA7, 0x28, 0x8D, 0x5E, 0x09, 0x80, 0x9B, 0x69, - 0x69, 0x84, 0xEC, 0xD5, 0x32, 0x6C, 0xDD, 0x84, - 0xFB, 0xE3, 0x5F, 0xCF, 0x67, 0x23, 0x5D, 0x81, - 0x1C, 0x82, 0x00, 0x25, 0x36, 0xA3, 0xC5, 0xE1 - }, - { - 0x8E, 0x92, 0x5C, 0x3C, 0x14, 0x6B, 0xAC, 0xF3, - 0x35, 0x1E, 0xC5, 0x32, 0x41, 0xAC, 0xE5, 0xF7, - 0x3E, 0x8F, 0xC9, 0xBD, 0x8C, 0x61, 0xCA, 0xD9, - 0x7F, 0xD7, 0x72, 0xB0, 0x7E, 0x1B, 0x83, 0x73 - }, - { - 0xC7, 0xEB, 0x9E, 0x6D, 0xED, 0x2F, 0x99, 0x3D, - 0x48, 0xB0, 0x17, 0x0D, 0xA2, 0x7C, 0x5B, 0x75, - 0x3B, 0x12, 0x17, 0x6B, 0xE1, 0x26, 0xC7, 0xBA, - 0x2D, 0x6A, 0xF8, 0x5F, 0x85, 0x93, 0xB7, 0x52 - }, - { - 0xCA, 0x27, 0xF1, 0x6F, 0x94, 0xE4, 0xEC, 0x0E, - 0x62, 0x8E, 0x7F, 0x8A, 0xEF, 0xC6, 0x65, 0x7B, - 0xED, 0xC9, 0x37, 0x42, 0x96, 0x59, 0x40, 0xAE, - 0x78, 0x6A, 0x73, 0xB5, 0xFD, 0x59, 0x3B, 0x97 - }, - { - 0x8C, 0x21, 0xE6, 0x56, 0x8B, 0xC6, 0xDC, 0x00, - 0xE3, 0xD6, 0xEB, 0xC0, 0x9E, 0xA9, 0xC2, 0xCE, - 0x00, 0x6C, 0xD3, 0x11, 0xD3, 0xB3, 0xE9, 0xCC, - 0x9D, 0x8D, 0xDB, 0xFB, 0x3C, 0x5A, 0x77, 0x76 - }, - { - 0x52, 0x56, 0x66, 0x96, 0x8B, 0x3B, 0x7D, 0x00, - 0x7B, 0xB9, 0x26, 0xB6, 0xEF, 0xDC, 0x7E, 0x21, - 0x2A, 0x31, 0x15, 0x4C, 0x9A, 0xE1, 0x8D, 0x43, - 0xEE, 0x0E, 0xB7, 0xE6, 0xB1, 0xA9, 0x38, 0xD3 - }, - { - 0xE0, 0x9A, 0x4F, 0xA5, 0xC2, 0x8B, 0xDC, 0xD7, - 0xC8, 0x39, 0x84, 0x0E, 0x0A, 0x38, 0x3E, 0x4F, - 0x7A, 0x10, 0x2D, 0x0B, 0x1B, 0xC8, 0x49, 0xC9, - 0x49, 0x62, 0x7C, 0x41, 0x00, 0xC1, 0x7D, 0xD3 - }, - { - 0xC1, 0x9F, 0x3E, 0x29, 0x5D, 0xB2, 0xFC, 0x0E, - 0x74, 0x81, 0xC4, 0xF1, 0x6A, 0xF0, 0x11, 0x55, - 0xDD, 0xB0, 0xD7, 0xD1, 0x38, 0x3D, 0x4A, 0x1F, - 0xF1, 0x69, 0x9D, 0xB7, 0x11, 0x77, 0x34, 0x0C - }, - { - 0x76, 0x9E, 0x67, 0x8C, 0x0A, 0x09, 0x09, 0xA2, - 0x02, 0x1C, 0x4D, 0xC2, 0x6B, 0x1A, 0x3C, 0x9B, - 0xC5, 0x57, 0xAD, 0xB2, 0x1A, 0x50, 0x83, 0x4C, - 0xDC, 0x5C, 0x92, 0x93, 0xF7, 0x53, 0x65, 0xF8 - }, - { - 0xB6, 0x48, 0x74, 0xAD, 0xAB, 0x6B, 0xCB, 0x85, - 0xB9, 0x4B, 0xD9, 0xA6, 0xC5, 0x65, 0xD0, 0xD2, - 0xBC, 0x35, 0x44, 0x5D, 0x75, 0x28, 0xBC, 0x85, - 0xB4, 0x1F, 0xDC, 0x79, 0xDC, 0x76, 0xE3, 0x4F - }, - { - 0xFA, 0xF2, 0x50, 0xDE, 0x15, 0x82, 0x0F, 0x7F, - 0xC6, 0x10, 0xDD, 0x53, 0xEE, 0xAE, 0x44, 0x60, - 0x1C, 0x3E, 0xFF, 0xA3, 0xAC, 0xCD, 0x08, 0x8E, - 0xB6, 0x69, 0x05, 0xBB, 0x26, 0x53, 0xBE, 0x8C - }, - { - 0x1E, 0x20, 0x38, 0x73, 0x9B, 0x2C, 0x01, 0x8B, - 0x0E, 0x9E, 0x0E, 0x1E, 0x52, 0x2F, 0xD9, 0x65, - 0x12, 0x87, 0xEE, 0x6E, 0x36, 0x65, 0x91, 0x9B, - 0x24, 0xC2, 0x12, 0x4F, 0x0C, 0x1A, 0x3F, 0x3A - }, - { - 0x5F, 0xEC, 0x3A, 0xA0, 0x08, 0x61, 0xDE, 0x1A, - 0xC5, 0xDA, 0xB3, 0xC1, 0x37, 0x06, 0x5D, 0x1E, - 0x01, 0xBB, 0x03, 0xF6, 0x9D, 0xCC, 0x7D, 0x1C, - 0xF7, 0xCA, 0x4F, 0x43, 0x56, 0xAE, 0xC9, 0xA3 - }, - { - 0x44, 0x51, 0xFE, 0x6B, 0xBE, 0xF3, 0x93, 0x43, - 0x91, 0x92, 0x44, 0xC5, 0x1D, 0xAE, 0x1E, 0xA9, - 0xA9, 0x54, 0xCF, 0x2C, 0x09, 0x66, 0xAB, 0x04, - 0x5B, 0x15, 0x52, 0x1E, 0xCF, 0x35, 0x00, 0x81 - }, - { - 0x8C, 0x62, 0x2F, 0xA2, 0x16, 0x0E, 0x8E, 0x99, - 0x18, 0x13, 0xF1, 0x80, 0xBF, 0xEC, 0x0B, 0x43, - 0x1C, 0x6D, 0xBF, 0xA2, 0x95, 0x6D, 0x91, 0x75, - 0x81, 0x6A, 0x23, 0xC3, 0x82, 0xC4, 0xF2, 0x00 - }, - { - 0x81, 0x7D, 0x5C, 0x8F, 0x92, 0xE7, 0xB5, 0xCA, - 0x57, 0xF5, 0xE1, 0x63, 0x90, 0x16, 0xAD, 0x57, - 0x60, 0xE4, 0x46, 0xD6, 0xE9, 0xCA, 0xA7, 0x49, - 0x84, 0x14, 0xAC, 0xE8, 0x22, 0x80, 0xB5, 0xCD - }, - { - 0xA6, 0xA1, 0xAD, 0x58, 0xCE, 0xE5, 0x4E, 0x69, - 0xCB, 0xBC, 0xAA, 0x87, 0xDF, 0x07, 0xA6, 0x70, - 0x7E, 0xB2, 0x24, 0x73, 0x9C, 0x21, 0x76, 0x13, - 0x46, 0x0A, 0xB4, 0x54, 0xB4, 0x59, 0xCA, 0x9C - }, - { - 0x63, 0xB8, 0x47, 0x27, 0x52, 0x26, 0x60, 0x5B, - 0xE6, 0x76, 0x81, 0x25, 0x8F, 0x7D, 0x00, 0xBB, - 0xB3, 0x07, 0xC6, 0x6F, 0x19, 0x59, 0xBF, 0x2E, - 0x46, 0x7A, 0x41, 0xAE, 0xE7, 0x14, 0xE5, 0x5C - }, - { - 0xFE, 0x52, 0xEB, 0xE5, 0xCF, 0xCF, 0xE6, 0xA2, - 0x29, 0x7B, 0x53, 0x9F, 0xA3, 0xDA, 0xDB, 0xD6, - 0xEB, 0xD2, 0x01, 0xAA, 0x2C, 0xA1, 0x35, 0x63, - 0xE3, 0xD7, 0xF1, 0x4D, 0x15, 0xAB, 0xFF, 0x63 - }, - { - 0xB7, 0xBE, 0xF9, 0xFA, 0x5A, 0x3D, 0x10, 0x42, - 0x62, 0x46, 0xB5, 0xF6, 0x58, 0xC0, 0x8F, 0xDF, - 0x80, 0x66, 0xEA, 0xA3, 0xE5, 0x5A, 0x2F, 0x7D, - 0xA1, 0x59, 0x1E, 0x05, 0xC8, 0x7D, 0xF8, 0xC7 - }, - { - 0xDE, 0xD1, 0xD6, 0xCA, 0xA9, 0xF8, 0xF3, 0xBD, - 0xA9, 0x2C, 0xEA, 0x7F, 0x65, 0x49, 0xB1, 0xFB, - 0x86, 0xA2, 0x21, 0x14, 0x78, 0xC4, 0xEC, 0x28, - 0x9B, 0x83, 0x7E, 0xFC, 0x2B, 0x5C, 0x27, 0xD7 - }, - { - 0x9F, 0x30, 0x00, 0x8A, 0x2E, 0xB0, 0x50, 0xF1, - 0x8E, 0x56, 0xA7, 0x6B, 0xE9, 0x20, 0x91, 0xB2, - 0xFD, 0xC1, 0x64, 0xD5, 0x6E, 0x32, 0xC8, 0x7D, - 0xD6, 0x4C, 0x9E, 0x3A, 0x61, 0x10, 0x41, 0xB1 - }, - { - 0x01, 0x0B, 0x6A, 0x3B, 0x11, 0x86, 0x00, 0x88, - 0xF0, 0xAB, 0xC8, 0x0A, 0x89, 0x72, 0xCB, 0xBC, - 0x32, 0x9D, 0x52, 0x75, 0x34, 0x29, 0x50, 0xEB, - 0x9A, 0x04, 0x5A, 0xFD, 0xC8, 0xBB, 0xED, 0x24 - }, - { - 0x0C, 0xD2, 0x10, 0xAA, 0xC1, 0x1F, 0x1C, 0x1C, - 0xED, 0x49, 0x7F, 0x67, 0x3E, 0x53, 0xDB, 0x68, - 0xC3, 0xEC, 0x36, 0x07, 0xF0, 0xC5, 0x78, 0x7D, - 0xDC, 0x60, 0xA3, 0x55, 0xDF, 0xE5, 0x6C, 0x25 - }, - { - 0x0E, 0x56, 0xFD, 0x01, 0xDA, 0x3B, 0x4F, 0x8B, - 0xE2, 0xC9, 0x90, 0x55, 0x2A, 0xAC, 0x8D, 0x1E, - 0x8D, 0xA2, 0x09, 0xBC, 0xF4, 0xAA, 0xD4, 0xFF, - 0xB5, 0x42, 0x7F, 0xD6, 0x31, 0x72, 0x46, 0x3E - }, - { - 0xD6, 0xD5, 0xCD, 0xB1, 0x14, 0x40, 0xE3, 0x4A, - 0xCA, 0x3A, 0x2F, 0xCF, 0x30, 0xF5, 0x9E, 0x08, - 0xB1, 0x1A, 0x2A, 0x3D, 0xE5, 0x39, 0xE3, 0xE6, - 0x51, 0x3E, 0xD7, 0x8A, 0x4F, 0xEE, 0x51, 0x3B - }, - { - 0xAA, 0x35, 0xAC, 0x90, 0x68, 0x06, 0x70, 0xC7, - 0x32, 0xED, 0x1E, 0xF3, 0x7E, 0x8C, 0xBA, 0xAE, - 0x49, 0xA4, 0xD8, 0x8E, 0xCF, 0x4D, 0xF2, 0xB6, - 0x89, 0xA0, 0xF1, 0x01, 0xB7, 0x56, 0xAE, 0x47 - }, - { - 0x27, 0x8E, 0x56, 0x12, 0x88, 0x72, 0x26, 0x30, - 0xE2, 0x6A, 0x5F, 0xC9, 0x54, 0xBF, 0x2D, 0xCD, - 0x6A, 0x65, 0x81, 0x67, 0x39, 0xAB, 0xEE, 0x7B, - 0xE1, 0x43, 0x07, 0xA9, 0x61, 0x74, 0xE5, 0xB0 - }, - { - 0xAB, 0x4B, 0x2C, 0xA1, 0xA2, 0xB3, 0x49, 0x98, - 0x15, 0x24, 0xB6, 0x15, 0x54, 0x62, 0xF0, 0xFF, - 0x10, 0x60, 0xBF, 0x9B, 0xFA, 0x07, 0xFB, 0x9E, - 0xC6, 0x9C, 0xA4, 0x71, 0x64, 0x5B, 0x6A, 0x18 - }, - { - 0x18, 0xA9, 0xBB, 0xEC, 0x3C, 0x8E, 0x1F, 0x8E, - 0xE9, 0x57, 0x12, 0x97, 0xA9, 0x34, 0x36, 0xDE, - 0x42, 0x7C, 0xD2, 0x70, 0xEC, 0x69, 0xDF, 0xE8, - 0x88, 0xDB, 0x7D, 0xBF, 0x10, 0xB6, 0x49, 0x93 - }, - { - 0xBA, 0xFC, 0x7E, 0x43, 0xD2, 0x65, 0xA1, 0x73, - 0x02, 0x1A, 0x9D, 0x9E, 0x58, 0x3D, 0x60, 0xED, - 0x42, 0xA8, 0x03, 0xFA, 0xCD, 0x6B, 0x83, 0x60, - 0xDE, 0x1F, 0x91, 0x68, 0x35, 0x38, 0x9B, 0xF0 - }, - { - 0xA5, 0xB6, 0x7B, 0xE9, 0x50, 0xFB, 0xC2, 0xF0, - 0xDD, 0x32, 0x3A, 0x79, 0xA1, 0x9E, 0x3E, 0xD1, - 0xF4, 0xAE, 0x4B, 0xA7, 0x89, 0x4F, 0x93, 0x0E, - 0xA5, 0xEF, 0x73, 0x4D, 0xE7, 0xDB, 0x83, 0xAE - }, - { - 0xBF, 0x1E, 0x65, 0xF3, 0xCD, 0x84, 0x98, 0x88, - 0x4D, 0x9D, 0x5C, 0x19, 0xEB, 0xF7, 0xB9, 0x16, - 0x06, 0x76, 0x37, 0x60, 0x4E, 0x26, 0xDB, 0xE2, - 0xB7, 0x28, 0x8E, 0xCB, 0x11, 0x42, 0x60, 0x68 - }, - { - 0xC3, 0x34, 0x2C, 0xF9, 0xCB, 0xBF, 0x29, 0xD4, - 0x06, 0xD7, 0x89, 0x5D, 0xD4, 0xD9, 0x54, 0x8D, - 0x4A, 0xC7, 0x8B, 0x4D, 0x00, 0xE9, 0xB6, 0x3E, - 0x20, 0x3E, 0x5E, 0x19, 0xE9, 0x97, 0x46, 0x20 - }, - { - 0x1C, 0x0B, 0xE6, 0x02, 0x77, 0x43, 0x4B, 0x0E, - 0x00, 0x4B, 0x7B, 0x38, 0x8A, 0x37, 0x55, 0x9F, - 0x84, 0xB3, 0x0C, 0x6C, 0xF8, 0x60, 0x0F, 0x52, - 0x8B, 0xFC, 0xD3, 0x3C, 0xAF, 0x52, 0xCB, 0x1E - }, - { - 0x73, 0x95, 0x45, 0x30, 0xD0, 0x3F, 0x10, 0xBE, - 0xF5, 0x2A, 0xD5, 0xBC, 0x7F, 0xB4, 0xC0, 0x76, - 0xF8, 0x3F, 0x63, 0x31, 0xC8, 0xBD, 0x1E, 0xEE, - 0xC3, 0x88, 0x7F, 0x4A, 0xA2, 0x06, 0x92, 0x40 - }, - { - 0x69, 0xC1, 0x1E, 0xE0, 0x49, 0x44, 0xDE, 0xA9, - 0x85, 0xAC, 0x9F, 0x13, 0x96, 0x0E, 0x73, 0x98, - 0x0E, 0x1B, 0xB0, 0xE3, 0x09, 0xF4, 0x38, 0x4A, - 0x16, 0x76, 0xF8, 0xEF, 0xAB, 0x38, 0x42, 0x88 - }, - { - 0x36, 0xFB, 0x8F, 0xDE, 0x0E, 0xC2, 0x8C, 0xE8, - 0x53, 0xFB, 0x71, 0x75, 0xC1, 0xB7, 0x9D, 0xA3, - 0xB5, 0xE8, 0xC3, 0x91, 0x86, 0xE7, 0x8A, 0xAE, - 0xCE, 0x54, 0x64, 0xDB, 0xD9, 0xFE, 0x2A, 0xA2 - }, - { - 0x6B, 0xB2, 0xA0, 0x9D, 0xFC, 0xAF, 0x96, 0x96, - 0x2D, 0xE0, 0x0C, 0x8A, 0x08, 0x2D, 0x6D, 0xF9, - 0x32, 0x2B, 0x49, 0x66, 0xAE, 0x8D, 0x2E, 0xCF, - 0x73, 0x24, 0x11, 0xA7, 0x6A, 0x1A, 0x0E, 0xE6 - }, - { - 0x74, 0x12, 0xE7, 0xDD, 0x1B, 0xF1, 0xAA, 0x93, - 0x97, 0x41, 0x1B, 0xBA, 0x4D, 0x3E, 0x02, 0x76, - 0xD2, 0xE7, 0xA1, 0xA2, 0x9A, 0x24, 0x77, 0x15, - 0x7A, 0xD6, 0x03, 0x60, 0xD3, 0x3D, 0x4E, 0x76 - }, - { - 0xDD, 0xDE, 0xAF, 0xCF, 0xC7, 0x23, 0x21, 0xC8, - 0x49, 0xFB, 0x25, 0x94, 0x7A, 0xB4, 0x2C, 0x1A, - 0xF2, 0xA5, 0xE4, 0x3F, 0xEF, 0x68, 0x1B, 0xE4, - 0x2C, 0x7E, 0xAF, 0x36, 0x60, 0x08, 0x0A, 0xD3 - }, - { - 0x9D, 0xEF, 0xEB, 0xAD, 0xBD, 0xCB, 0x0A, 0x0E, - 0x7F, 0xF9, 0x92, 0xF9, 0x47, 0xCE, 0xD3, 0xD0, - 0xA4, 0xC8, 0x99, 0xE6, 0x4F, 0xE7, 0x73, 0x60, - 0xE8, 0x1E, 0x1F, 0x0E, 0x97, 0xF8, 0xC1, 0xA2 - }, - { - 0x84, 0x4C, 0x59, 0xFB, 0xE6, 0x47, 0x6F, 0xD1, - 0x89, 0x23, 0x99, 0x54, 0xF1, 0x7E, 0x36, 0xE1, - 0xF6, 0x9E, 0x24, 0xAA, 0xED, 0x5D, 0x5C, 0x8B, - 0x84, 0x05, 0xEF, 0x2A, 0x83, 0x0C, 0xC2, 0xA0 - }, - { - 0xFF, 0x3F, 0xAF, 0xB6, 0x77, 0x86, 0xE0, 0x1A, - 0x0C, 0x38, 0xEA, 0xDF, 0x99, 0xC4, 0xCA, 0xE8, - 0x02, 0x9D, 0xA8, 0xCF, 0x29, 0x87, 0x5F, 0xC4, - 0x19, 0xBF, 0x68, 0x00, 0x09, 0xB3, 0xBD, 0xB3 - }, - { - 0xCA, 0x67, 0x60, 0xF3, 0x45, 0x67, 0x8F, 0x30, - 0xA2, 0x8D, 0x62, 0x82, 0x94, 0x27, 0x2A, 0x19, - 0xE3, 0x07, 0x2E, 0xBC, 0x61, 0xB1, 0x9F, 0xF1, - 0x3B, 0x31, 0x89, 0x73, 0xE9, 0x7C, 0x27, 0x38 - }, - { - 0xC0, 0x8E, 0x1A, 0x90, 0x47, 0xC5, 0x05, 0x26, - 0x4A, 0x16, 0x44, 0x7C, 0x9E, 0xD9, 0x81, 0xA7, - 0x19, 0xD3, 0x81, 0xF2, 0x8E, 0x60, 0x5F, 0xD7, - 0xCA, 0xA9, 0xE8, 0xBD, 0xBB, 0x42, 0x99, 0x6A - }, - { - 0xF1, 0x73, 0xBA, 0x9D, 0x45, 0x84, 0xCD, 0x12, - 0x60, 0x50, 0xC6, 0x9F, 0xC2, 0x19, 0xA9, 0x19, - 0x0A, 0x0B, 0xF0, 0xAE, 0xCE, 0xCB, 0xE6, 0x11, - 0xBE, 0xED, 0x19, 0x3D, 0xA6, 0xCA, 0x4D, 0xE7 - }, - { - 0xB1, 0x84, 0x87, 0x65, 0x20, 0xDE, 0xD8, 0xBD, - 0x7D, 0xE2, 0x5E, 0xAE, 0xFB, 0xD3, 0xE0, 0x36, - 0x88, 0xC3, 0xBE, 0x39, 0xC1, 0x9F, 0xB7, 0x3E, - 0x1F, 0x0E, 0xCC, 0xAC, 0x7C, 0xC0, 0xF0, 0x14 - }, - { - 0x90, 0x25, 0xDB, 0x07, 0x58, 0xBD, 0xFB, 0x48, - 0xF0, 0x66, 0x7E, 0xBD, 0x7E, 0x12, 0x02, 0x46, - 0x59, 0x8F, 0xED, 0x01, 0xC2, 0x58, 0x76, 0x4F, - 0xA0, 0xFA, 0xE3, 0x34, 0xA2, 0xA0, 0x0A, 0x97 - }, - { - 0xE8, 0x3D, 0x80, 0x86, 0xFA, 0xBC, 0x46, 0x0D, - 0x5E, 0xFC, 0x45, 0x9F, 0x95, 0xA2, 0x68, 0xF5, - 0xDC, 0x4A, 0xC2, 0x84, 0x09, 0x3C, 0x24, 0x7C, - 0xA6, 0xEC, 0x84, 0x1A, 0xD6, 0x18, 0x3F, 0xE1 - }, - { - 0xCC, 0x9D, 0xF4, 0x1D, 0x35, 0xAA, 0x75, 0x92, - 0x8C, 0x18, 0x5F, 0x73, 0x93, 0x66, 0x61, 0x10, - 0xB8, 0x0F, 0x09, 0x86, 0xA2, 0x21, 0xC3, 0x70, - 0xF4, 0x5C, 0x2E, 0xB9, 0x01, 0x6C, 0x9A, 0x3B - }, - { - 0x92, 0xF9, 0xA5, 0x94, 0x95, 0x45, 0x90, 0xFA, - 0x81, 0x98, 0x17, 0xE5, 0xD1, 0xC2, 0x8A, 0xAB, - 0x2B, 0x1C, 0xC5, 0x04, 0xD8, 0x6D, 0xBA, 0x44, - 0x36, 0x76, 0xBD, 0xF8, 0x66, 0x79, 0x68, 0x11 - }, - { - 0x72, 0x95, 0x62, 0xA1, 0xE0, 0x7B, 0x0E, 0x26, - 0x05, 0x49, 0x48, 0x09, 0xBD, 0x48, 0x0F, 0x15, - 0x37, 0xCE, 0xA1, 0x0D, 0xCA, 0xD4, 0x3E, 0xF9, - 0xF6, 0x8C, 0x66, 0xE8, 0x25, 0xDC, 0x46, 0xB1 - }, - { - 0x26, 0xF1, 0x60, 0xAB, 0x96, 0xF5, 0x58, 0x20, - 0x45, 0x14, 0x6E, 0xAF, 0xF2, 0xE2, 0xA8, 0xD4, - 0xDA, 0xB2, 0x98, 0xB4, 0xC5, 0x7E, 0x11, 0x7C, - 0xDF, 0xC5, 0xD0, 0x25, 0xC9, 0x2A, 0x22, 0x68 - }, - { - 0x87, 0xEB, 0xE7, 0x21, 0x38, 0x38, 0x73, 0xD2, - 0x47, 0xF8, 0x61, 0x82, 0xE3, 0xF5, 0x99, 0xA7, - 0x63, 0x4F, 0xCA, 0xEC, 0x5E, 0x07, 0xB1, 0xE8, - 0x3E, 0xBB, 0x79, 0x62, 0x5B, 0xA3, 0x54, 0xE6 - }, - { - 0xE0, 0x8D, 0x38, 0x9F, 0x75, 0x69, 0x4A, 0xDC, - 0x99, 0x6C, 0x22, 0xF5, 0x5D, 0x4F, 0x85, 0x9F, - 0xFD, 0x0C, 0x13, 0x19, 0xFF, 0x9C, 0xED, 0xF7, - 0x8C, 0x31, 0xBE, 0x84, 0xB6, 0xF2, 0x1A, 0xBC - }, - { - 0x13, 0x63, 0xE2, 0x29, 0x13, 0xC6, 0xE1, 0x8E, - 0x7A, 0xA6, 0x5B, 0x83, 0xE7, 0x51, 0xC8, 0xA2, - 0xC6, 0x1B, 0x0F, 0x30, 0x71, 0x55, 0x86, 0x5A, - 0x57, 0xDB, 0xA5, 0x69, 0xA9, 0x9C, 0x7B, 0x0E - }, - { - 0x88, 0x78, 0x08, 0x8E, 0xB2, 0xD1, 0xF6, 0xD0, - 0xBB, 0x48, 0x1B, 0x4B, 0xB1, 0x87, 0xDA, 0x04, - 0xBC, 0xD8, 0xC2, 0xC6, 0x39, 0xF0, 0x05, 0xB0, - 0x80, 0x54, 0xCC, 0x41, 0x75, 0x39, 0x05, 0xFB - }, - { - 0x04, 0x18, 0xD6, 0x0D, 0x05, 0xB4, 0xE1, 0x24, - 0x64, 0x6E, 0xE5, 0x0E, 0x77, 0x49, 0xA1, 0xD2, - 0x09, 0x45, 0x7B, 0xC5, 0x43, 0xE3, 0xCC, 0x11, - 0x30, 0x27, 0x4A, 0xEA, 0x0F, 0x7B, 0xF3, 0xC1 - }, - { - 0x7A, 0x39, 0x7E, 0x50, 0x3F, 0x29, 0x3B, 0xC4, - 0x2D, 0x5F, 0x7E, 0xF5, 0xEC, 0x37, 0x87, 0x24, - 0x60, 0xA4, 0xF5, 0xB5, 0xCC, 0xDE, 0x77, 0xFB, - 0x4D, 0x47, 0xAC, 0x06, 0x81, 0xE5, 0xA0, 0x49 - }, - { - 0x5C, 0x0D, 0x29, 0x83, 0xE7, 0x2A, 0x6D, 0xD4, - 0xE6, 0x52, 0xD7, 0x23, 0xC1, 0xDF, 0xC1, 0x2B, - 0x41, 0x4C, 0x87, 0x3D, 0x4A, 0xB4, 0xA0, 0xA1, - 0x50, 0x40, 0x8E, 0xB3, 0x43, 0x47, 0xE9, 0x95 - }, - { - 0x56, 0x23, 0x36, 0x54, 0x53, 0xC0, 0x49, 0x89, - 0xC7, 0xCF, 0x33, 0x63, 0x5E, 0x0F, 0xC4, 0xCD, - 0xDD, 0x68, 0x6F, 0xC9, 0x5A, 0x33, 0xDF, 0xED, - 0xCF, 0x33, 0x35, 0x79, 0x4C, 0x7D, 0xC3, 0x44 - }, - { - 0x11, 0xF6, 0xDA, 0xD1, 0x88, 0x02, 0x8F, 0xDF, - 0x13, 0x78, 0xA2, 0x56, 0xE4, 0x57, 0x0E, 0x90, - 0x63, 0x10, 0x7B, 0x8F, 0x79, 0xDC, 0x66, 0x3F, - 0xA5, 0x55, 0x6F, 0x56, 0xFD, 0x44, 0xA0, 0xF0 - }, - { - 0x0E, 0xD8, 0x16, 0x17, 0x97, 0xEC, 0xEE, 0x88, - 0x1E, 0x7D, 0x0E, 0x3F, 0x4C, 0x5F, 0xB8, 0x39, - 0xC8, 0x4E, 0xB7, 0xA9, 0x24, 0x26, 0x57, 0xCC, - 0x48, 0x30, 0x68, 0x07, 0xB3, 0x2B, 0xEF, 0xDE - }, - { - 0x73, 0x66, 0x67, 0xC9, 0x36, 0x4C, 0xE1, 0x2D, - 0xB8, 0xF6, 0xB1, 0x43, 0xC6, 0xC1, 0x78, 0xCD, - 0xEF, 0x1E, 0x14, 0x45, 0xBC, 0x5A, 0x2F, 0x26, - 0x34, 0xF0, 0x8E, 0x99, 0x32, 0x27, 0x3C, 0xAA - }, - { - 0xE1, 0x5F, 0x36, 0x8B, 0x44, 0x06, 0xC1, 0xF6, - 0x55, 0x57, 0xC8, 0x35, 0x5C, 0xBE, 0x69, 0x4B, - 0x63, 0x3E, 0x26, 0xF1, 0x55, 0xF5, 0x2B, 0x7D, - 0xA9, 0x4C, 0xFB, 0x23, 0xFD, 0x4A, 0x5D, 0x96 - }, - { - 0x43, 0x7A, 0xB2, 0xD7, 0x4F, 0x50, 0xCA, 0x86, - 0xCC, 0x3D, 0xE9, 0xBE, 0x70, 0xE4, 0x55, 0x48, - 0x25, 0xE3, 0x3D, 0x82, 0x4B, 0x3A, 0x49, 0x23, - 0x62, 0xE2, 0xE9, 0xD6, 0x11, 0xBC, 0x57, 0x9D - }, - { - 0x2B, 0x91, 0x58, 0xC7, 0x22, 0x89, 0x8E, 0x52, - 0x6D, 0x2C, 0xDD, 0x3F, 0xC0, 0x88, 0xE9, 0xFF, - 0xA7, 0x9A, 0x9B, 0x73, 0xB7, 0xD2, 0xD2, 0x4B, - 0xC4, 0x78, 0xE2, 0x1C, 0xDB, 0x3B, 0x67, 0x63 - }, - { - 0x0C, 0x8A, 0x36, 0x59, 0x7D, 0x74, 0x61, 0xC6, - 0x3A, 0x94, 0x73, 0x28, 0x21, 0xC9, 0x41, 0x85, - 0x6C, 0x66, 0x83, 0x76, 0x60, 0x6C, 0x86, 0xA5, - 0x2D, 0xE0, 0xEE, 0x41, 0x04, 0xC6, 0x15, 0xDB - }, -}; - - - - -static const uint8_t blake2bp_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] = -{ - { - 0xB5, 0xEF, 0x81, 0x1A, 0x80, 0x38, 0xF7, 0x0B, - 0x62, 0x8F, 0xA8, 0xB2, 0x94, 0xDA, 0xAE, 0x74, - 0x92, 0xB1, 0xEB, 0xE3, 0x43, 0xA8, 0x0E, 0xAA, - 0xBB, 0xF1, 0xF6, 0xAE, 0x66, 0x4D, 0xD6, 0x7B, - 0x9D, 0x90, 0xB0, 0x12, 0x07, 0x91, 0xEA, 0xB8, - 0x1D, 0xC9, 0x69, 0x85, 0xF2, 0x88, 0x49, 0xF6, - 0xA3, 0x05, 0x18, 0x6A, 0x85, 0x50, 0x1B, 0x40, - 0x51, 0x14, 0xBF, 0xA6, 0x78, 0xDF, 0x93, 0x80 - }, - { - 0xA1, 0x39, 0x28, 0x0E, 0x72, 0x75, 0x7B, 0x72, - 0x3E, 0x64, 0x73, 0xD5, 0xBE, 0x59, 0xF3, 0x6E, - 0x9D, 0x50, 0xFC, 0x5C, 0xD7, 0xD4, 0x58, 0x5C, - 0xBC, 0x09, 0x80, 0x48, 0x95, 0xA3, 0x6C, 0x52, - 0x12, 0x42, 0xFB, 0x27, 0x89, 0xF8, 0x5C, 0xB9, - 0xE3, 0x54, 0x91, 0xF3, 0x1D, 0x4A, 0x69, 0x52, - 0xF9, 0xD8, 0xE0, 0x97, 0xAE, 0xF9, 0x4F, 0xA1, - 0xCA, 0x0B, 0x12, 0x52, 0x57, 0x21, 0xF0, 0x3D - }, - { - 0xEF, 0x8C, 0xDA, 0x96, 0x35, 0xD5, 0x06, 0x3A, - 0xF8, 0x11, 0x15, 0xDA, 0x3C, 0x52, 0x32, 0x5A, - 0x86, 0xE8, 0x40, 0x74, 0xF9, 0xF7, 0x24, 0xB7, - 0xCB, 0xD0, 0xB0, 0x85, 0x6F, 0xF0, 0x01, 0x77, - 0xCD, 0xD2, 0x83, 0xC2, 0x98, 0x32, 0x6C, 0xD0, - 0x91, 0x77, 0x54, 0xC5, 0x24, 0x1F, 0x14, 0x80, - 0xFB, 0x50, 0x9C, 0xF2, 0xD2, 0xC4, 0x49, 0x81, - 0x80, 0x77, 0xAE, 0x35, 0xFC, 0x33, 0x07, 0x37 - }, - { - 0x8C, 0xF9, 0x33, 0xA2, 0xD3, 0x61, 0xA3, 0xE6, - 0xA1, 0x36, 0xDB, 0xE4, 0xA0, 0x1E, 0x79, 0x03, - 0x79, 0x7A, 0xD6, 0xCE, 0x76, 0x6E, 0x2B, 0x91, - 0xB9, 0xB4, 0xA4, 0x03, 0x51, 0x27, 0xD6, 0x5F, - 0x4B, 0xE8, 0x65, 0x50, 0x11, 0x94, 0x18, 0xE2, - 0x2D, 0xA0, 0x0F, 0xD0, 0x6B, 0xF2, 0xB2, 0x75, - 0x96, 0xB3, 0x7F, 0x06, 0xBE, 0x0A, 0x15, 0x4A, - 0xAF, 0x7E, 0xCA, 0x54, 0xC4, 0x52, 0x0B, 0x97 - }, - { - 0x24, 0xDC, 0x1E, 0x6D, 0xC4, 0xE5, 0x1A, 0x3A, - 0x3C, 0x8D, 0xA6, 0x7A, 0xAC, 0xB4, 0xC5, 0x41, - 0xE4, 0x18, 0x18, 0xD1, 0x80, 0xE5, 0xBB, 0x69, - 0x75, 0x3D, 0xBB, 0xFF, 0x2F, 0x44, 0xD0, 0xE7, - 0xDA, 0x83, 0x03, 0x86, 0xBF, 0xC8, 0x3B, 0x27, - 0xA5, 0x9D, 0xBB, 0x62, 0xB9, 0x64, 0xFC, 0x8E, - 0xA6, 0xCB, 0xDF, 0x30, 0x49, 0xBF, 0xF8, 0x1F, - 0x24, 0xF3, 0x48, 0xDB, 0x4E, 0xFD, 0x0D, 0x07 - }, - { - 0xBC, 0x23, 0xF5, 0xAB, 0xDF, 0xFD, 0x6A, 0x32, - 0xA5, 0xD4, 0x08, 0x11, 0x26, 0x2E, 0xD4, 0x47, - 0x9E, 0xF7, 0x0B, 0x42, 0x33, 0xCA, 0x20, 0x5B, - 0xC5, 0xB9, 0xBF, 0x85, 0x96, 0x73, 0x19, 0x82, - 0xD0, 0x41, 0x69, 0xA9, 0x04, 0xDD, 0x43, 0xB0, - 0xE0, 0xF9, 0x48, 0x99, 0xF7, 0x33, 0x02, 0x2D, - 0x24, 0xD8, 0x4F, 0xAD, 0x0A, 0x99, 0x16, 0x00, - 0xF1, 0x97, 0x9B, 0x27, 0x2A, 0xD6, 0x20, 0x73 - }, - { - 0xEF, 0x10, 0x7F, 0xCD, 0x0D, 0x92, 0xD8, 0x4E, - 0xF5, 0xEF, 0x94, 0x63, 0xE6, 0xE9, 0x62, 0x41, - 0x25, 0x45, 0x29, 0xD2, 0xB9, 0x7F, 0xDB, 0xE5, - 0x64, 0x19, 0x07, 0x0A, 0xDB, 0xC7, 0xD5, 0x70, - 0x6F, 0xEB, 0x8F, 0x44, 0x95, 0x79, 0x81, 0x9E, - 0xD4, 0xBE, 0x61, 0x97, 0x85, 0xFF, 0xFA, 0xAF, - 0x0D, 0x97, 0x89, 0xCF, 0xE7, 0x26, 0x24, 0x9A, - 0xB0, 0x8C, 0x94, 0x68, 0xCB, 0x5F, 0xDE, 0x22 - }, - { - 0x23, 0x1F, 0xBF, 0xB7, 0xA1, 0xDD, 0xC5, 0xB7, - 0x49, 0x33, 0xA2, 0x85, 0xA4, 0x22, 0x4C, 0x04, - 0x9C, 0xBA, 0x14, 0x85, 0xCE, 0x35, 0x64, 0x0D, - 0x9C, 0x51, 0x6E, 0xD7, 0x8E, 0xAA, 0x22, 0x6D, - 0x36, 0xF6, 0x5B, 0x25, 0x89, 0xB8, 0x26, 0xC4, - 0x59, 0xFA, 0x6A, 0x91, 0xC4, 0x26, 0xFD, 0x2A, - 0x8A, 0xB4, 0x61, 0xC9, 0x76, 0x7E, 0x7B, 0xDD, - 0x99, 0x6B, 0xEF, 0x5A, 0x78, 0xF4, 0x81, 0xB7 - }, - { - 0x3A, 0x83, 0x1F, 0x2D, 0xA9, 0x69, 0xB9, 0xB7, - 0x36, 0x0E, 0x74, 0xEE, 0x53, 0xB5, 0x18, 0x98, - 0x0A, 0x5E, 0xBC, 0xDF, 0xD4, 0xEE, 0x23, 0xED, - 0x80, 0x5C, 0x26, 0x39, 0x4D, 0x18, 0x24, 0x20, - 0x8D, 0x7E, 0x8F, 0x63, 0x27, 0xD4, 0xEC, 0x87, - 0x97, 0x9C, 0xE4, 0xAF, 0x8A, 0xB0, 0x97, 0xD6, - 0x9E, 0x26, 0x1C, 0xA3, 0x2D, 0xB0, 0xEE, 0xFD, - 0xBC, 0x18, 0xD1, 0x63, 0x77, 0xA6, 0xBD, 0x20 - }, - { - 0x83, 0x49, 0xA2, 0x0F, 0xDD, 0xBA, 0xE1, 0xD8, - 0x47, 0x2B, 0x67, 0xF0, 0x34, 0x7A, 0xA0, 0xFD, - 0x40, 0x4D, 0x65, 0xC6, 0xFA, 0x14, 0x72, 0xB3, - 0x10, 0x39, 0x0D, 0x75, 0x65, 0xBA, 0x6B, 0xC1, - 0x02, 0x60, 0xD3, 0xDC, 0xE6, 0xA1, 0x4F, 0x4D, - 0xD9, 0xB8, 0xB3, 0xE0, 0xA0, 0xC4, 0x7F, 0x6D, - 0xB7, 0xE7, 0x10, 0x0A, 0x7A, 0x9B, 0x64, 0xA8, - 0x44, 0xF0, 0x10, 0x64, 0xD0, 0x79, 0x05, 0xC5 - }, - { - 0x23, 0x9A, 0xE3, 0xD6, 0x85, 0x9C, 0x7C, 0x97, - 0x2A, 0x5D, 0xC8, 0xB9, 0xC5, 0x5A, 0xEB, 0x93, - 0x85, 0x90, 0xCF, 0xB8, 0x55, 0x2A, 0xA3, 0x05, - 0xA6, 0xF6, 0xF3, 0x1F, 0xFA, 0x95, 0xA8, 0x40, - 0xF4, 0xEC, 0x36, 0xF6, 0xFB, 0x8F, 0x83, 0xB6, - 0x9C, 0x1D, 0xA9, 0x81, 0xFC, 0x9B, 0xA1, 0x63, - 0x60, 0xDB, 0x0F, 0x4F, 0x7C, 0x68, 0xEB, 0x54, - 0x3E, 0xD5, 0x8B, 0x28, 0x75, 0x6A, 0x1E, 0x0D - }, - { - 0x7C, 0x56, 0x73, 0x28, 0x63, 0x08, 0x40, 0x8F, - 0xBC, 0x62, 0x24, 0x0E, 0x07, 0x47, 0x28, 0xB2, - 0x7A, 0x57, 0x5C, 0xAD, 0x2A, 0x15, 0x6E, 0x00, - 0xB5, 0xC0, 0x8B, 0x21, 0x8D, 0x88, 0x87, 0x79, - 0x1E, 0x47, 0xBF, 0x10, 0xB0, 0xBC, 0x61, 0xA5, - 0x82, 0x54, 0x5A, 0x24, 0x69, 0x63, 0x9C, 0xE6, - 0x28, 0xC4, 0x0F, 0x20, 0xEA, 0x8B, 0x84, 0x9C, - 0xD0, 0x05, 0x44, 0x5F, 0x29, 0xA0, 0x8C, 0xCE - }, - { - 0xDD, 0x07, 0x7E, 0x76, 0x9E, 0x0D, 0xEF, 0x78, - 0xDD, 0x7A, 0xAD, 0xD5, 0x7D, 0x58, 0x42, 0x1B, - 0xDA, 0x3A, 0x1A, 0x4E, 0x69, 0x72, 0x05, 0x9F, - 0x8E, 0x64, 0x9C, 0xD6, 0xBC, 0xA4, 0x4A, 0x13, - 0xAB, 0x71, 0xEB, 0x53, 0x5D, 0x24, 0x49, 0x22, - 0x94, 0x84, 0x65, 0xD7, 0x3B, 0xD6, 0x4E, 0xFB, - 0x09, 0x10, 0x46, 0x94, 0x90, 0x66, 0x65, 0x36, - 0x03, 0x57, 0x5A, 0x2E, 0x89, 0x1E, 0xBD, 0x54 - }, - { - 0xB3, 0x6C, 0xEF, 0x28, 0x53, 0x2B, 0x40, 0xD8, - 0x17, 0x86, 0x28, 0xF0, 0xFA, 0xB5, 0xE5, 0xB4, - 0xA1, 0xDE, 0xC0, 0xC0, 0xE9, 0x11, 0xD7, 0x27, - 0xBF, 0x09, 0x49, 0x0F, 0x5E, 0x8D, 0x9F, 0xAC, - 0x57, 0x21, 0x3F, 0xD2, 0xA2, 0xD1, 0x2E, 0xD3, - 0xD7, 0x7A, 0x41, 0xF5, 0xE2, 0xFE, 0xCC, 0x40, - 0xE4, 0xEE, 0xCA, 0x16, 0x12, 0xF5, 0x1C, 0x45, - 0x23, 0x31, 0xAE, 0x93, 0x96, 0x62, 0x35, 0xBC - }, - { - 0xDE, 0x73, 0x7D, 0xBC, 0x61, 0x2E, 0xBD, 0x31, - 0xBC, 0x49, 0xA2, 0xD7, 0xC6, 0x44, 0xD4, 0xB1, - 0x37, 0x81, 0x74, 0x19, 0x42, 0x1C, 0x32, 0xF4, - 0xE7, 0x51, 0x14, 0xD8, 0x99, 0xE3, 0x13, 0x1D, - 0x45, 0xCA, 0x54, 0x51, 0x24, 0x8F, 0x24, 0x16, - 0x9F, 0xBF, 0x17, 0xEE, 0x60, 0xA9, 0xB7, 0x07, - 0x98, 0xA4, 0xB9, 0x37, 0xCE, 0xA6, 0x27, 0x95, - 0x28, 0x96, 0x39, 0xD1, 0x8F, 0xCD, 0x89, 0xE4 - }, - { - 0xB4, 0xC1, 0xBB, 0xCB, 0xBC, 0xCD, 0xFC, 0xE4, - 0xD2, 0xBE, 0x9D, 0xCD, 0xB9, 0x83, 0xC1, 0xB0, - 0x20, 0xC5, 0xF7, 0x20, 0xDA, 0x5B, 0xEC, 0xF4, - 0xCB, 0x2A, 0x9A, 0x3D, 0x1B, 0x8D, 0x23, 0xCE, - 0xA7, 0xA9, 0xF5, 0xFD, 0x70, 0xD3, 0x74, 0x0E, - 0xCD, 0x67, 0xCE, 0x7D, 0x1E, 0x9C, 0x5E, 0x31, - 0xA3, 0x30, 0x2D, 0xF6, 0x6A, 0x9B, 0x5D, 0x54, - 0x30, 0x44, 0x90, 0xFB, 0xE1, 0xC4, 0xA8, 0xB9 - }, - { - 0xB1, 0xD6, 0x5E, 0x70, 0xC6, 0x9B, 0xA7, 0xE3, - 0xA7, 0x28, 0xE8, 0xB6, 0x44, 0x94, 0x93, 0xF2, - 0x37, 0x51, 0x0B, 0x23, 0xB6, 0xE7, 0x7D, 0x95, - 0x84, 0xD0, 0x5F, 0xF4, 0xD3, 0xF0, 0x87, 0x80, - 0x92, 0x9D, 0x74, 0xFA, 0x5B, 0xED, 0x9B, 0x75, - 0xD4, 0xD6, 0xD1, 0xCA, 0x91, 0xAB, 0x8D, 0x26, - 0x37, 0xDC, 0x2E, 0x79, 0xBA, 0x0F, 0xE0, 0x59, - 0x4A, 0xCD, 0x68, 0xFB, 0x3C, 0xC6, 0x60, 0xB9 - }, - { - 0xDA, 0x79, 0xF7, 0x29, 0xEA, 0xB9, 0x8C, 0x04, - 0xF3, 0x7F, 0xCC, 0x85, 0x4B, 0x69, 0xA8, 0x4E, - 0x46, 0x7D, 0xEA, 0x1E, 0x77, 0x82, 0xE7, 0xAF, - 0x02, 0xCB, 0x44, 0xA4, 0x9D, 0x21, 0x0D, 0x25, - 0x23, 0x68, 0x3D, 0x42, 0x0A, 0xC1, 0xDE, 0xC8, - 0xAD, 0x1F, 0xB4, 0x0E, 0x65, 0xAB, 0x3F, 0xE2, - 0x51, 0xA8, 0x51, 0xE2, 0x83, 0xD8, 0x58, 0x38, - 0x08, 0x42, 0x61, 0x30, 0x1E, 0xCD, 0x08, 0x9B - }, - { - 0x71, 0x40, 0x40, 0x40, 0x39, 0x21, 0xAE, 0x55, - 0x48, 0xA2, 0x03, 0x39, 0xD6, 0x9E, 0x09, 0x3F, - 0x60, 0x9A, 0xA9, 0x9C, 0x22, 0xDB, 0x72, 0x59, - 0x1D, 0x1E, 0xF4, 0xFC, 0xB0, 0xAF, 0x01, 0x61, - 0x73, 0xE5, 0x77, 0xD8, 0xC1, 0xA3, 0x06, 0x3B, - 0x44, 0x3A, 0x0E, 0x48, 0xF3, 0x13, 0xCF, 0x2E, - 0x0F, 0x9B, 0x0C, 0x2E, 0xF9, 0x6A, 0x96, 0xC4, - 0x24, 0x32, 0x2C, 0xCC, 0x0C, 0xD5, 0x30, 0x4C - }, - { - 0x8B, 0x2E, 0x8C, 0x3F, 0x0E, 0x3C, 0x31, 0x9B, - 0xA6, 0x7E, 0x86, 0x01, 0x4B, 0xDA, 0x68, 0x3E, - 0x53, 0x57, 0xA0, 0x40, 0x37, 0xB4, 0x56, 0x32, - 0x86, 0xAC, 0x89, 0xCD, 0xDB, 0x7E, 0xE0, 0x4C, - 0xF6, 0x67, 0x5F, 0x9A, 0xB6, 0x1F, 0xC8, 0x33, - 0x2D, 0x21, 0x8D, 0x2B, 0xCA, 0x97, 0x15, 0xE7, - 0xDB, 0xE5, 0x83, 0x72, 0xD1, 0xEE, 0xBF, 0x6B, - 0xC2, 0x94, 0x84, 0x71, 0xCF, 0xCE, 0xBB, 0x77 - }, - { - 0x32, 0xEE, 0x95, 0x49, 0xD4, 0xE3, 0x2F, 0x4B, - 0xE9, 0xC5, 0x00, 0xBD, 0x85, 0x43, 0xAF, 0xD0, - 0xB6, 0x97, 0x82, 0xD0, 0xB3, 0xFF, 0x7E, 0xD4, - 0x7A, 0x88, 0x1A, 0x0E, 0x49, 0x1F, 0x37, 0x65, - 0x0A, 0x21, 0xB2, 0x6C, 0x3F, 0x5D, 0x0A, 0x64, - 0xE0, 0x90, 0x58, 0xB3, 0x00, 0x4A, 0x23, 0x68, - 0xB9, 0x50, 0xE4, 0x72, 0x30, 0xC2, 0x29, 0x66, - 0xD3, 0xF7, 0x9D, 0xA7, 0xBA, 0xA0, 0xB8, 0x7F - }, - { - 0xCA, 0xE7, 0xF2, 0x92, 0x71, 0x37, 0x82, 0xC4, - 0x71, 0xFE, 0x31, 0x78, 0xA9, 0x42, 0x0C, 0xD4, - 0xC1, 0x1F, 0xCD, 0x3F, 0x6D, 0xBE, 0x5D, 0x15, - 0xC8, 0x4A, 0xB7, 0x35, 0x3C, 0x73, 0x9E, 0xF0, - 0x64, 0x16, 0x39, 0xA2, 0xF9, 0x2A, 0xED, 0x31, - 0xC5, 0x6A, 0x20, 0x21, 0xCC, 0x5E, 0x58, 0xCB, - 0xEA, 0xD3, 0x74, 0xE2, 0xDC, 0x8A, 0x0D, 0xBC, - 0xE5, 0x45, 0x0F, 0xE7, 0xA0, 0x18, 0xCF, 0xA4 - }, - { - 0xF1, 0x7F, 0xEF, 0xAE, 0xAE, 0x7D, 0x40, 0xCD, - 0x88, 0x5D, 0xAC, 0x0B, 0xC3, 0x50, 0xC0, 0x27, - 0x36, 0x68, 0xEA, 0x02, 0x22, 0xDF, 0x5C, 0x75, - 0x69, 0x4F, 0x5C, 0xB3, 0xA3, 0x21, 0x51, 0x9F, - 0x6E, 0x0E, 0xC4, 0x3B, 0xA0, 0xC8, 0x59, 0x3D, - 0xC7, 0x34, 0x13, 0x41, 0xE5, 0x19, 0x48, 0x8F, - 0x20, 0xAB, 0xD5, 0xB8, 0x12, 0x4D, 0xFA, 0xCE, - 0xA5, 0xCD, 0xE0, 0x96, 0x5B, 0x69, 0x70, 0xF9 - }, - { - 0xE2, 0xCF, 0x86, 0xDD, 0xC8, 0x42, 0x4E, 0xE5, - 0x47, 0xEB, 0x72, 0x45, 0xB7, 0x32, 0x5E, 0x02, - 0xF2, 0xE3, 0xAC, 0x01, 0x3C, 0x8D, 0x38, 0x6B, - 0x3D, 0x2E, 0x09, 0x20, 0x8A, 0x9B, 0xCC, 0x0B, - 0x44, 0xC4, 0xC4, 0x38, 0xEA, 0xAF, 0x52, 0xD2, - 0x07, 0x7E, 0x91, 0x77, 0xEB, 0x8E, 0xE1, 0xD5, - 0x90, 0x75, 0xB5, 0x25, 0x92, 0x20, 0x20, 0x62, - 0x22, 0x93, 0x54, 0xBF, 0x23, 0xC9, 0x62, 0x39 - }, - { - 0x38, 0xF2, 0x6A, 0x11, 0x02, 0xCB, 0x16, 0x2D, - 0x35, 0x1F, 0x84, 0x3B, 0x3C, 0x49, 0xF6, 0xFF, - 0x85, 0x44, 0x16, 0x33, 0xB6, 0x70, 0x4A, 0x28, - 0x6A, 0xF8, 0x1C, 0xCB, 0xAE, 0x5A, 0x67, 0xD3, - 0x01, 0x5C, 0xC0, 0xEF, 0xAF, 0xB7, 0x05, 0x7D, - 0xC2, 0xB2, 0x8D, 0x67, 0x66, 0xE8, 0x2A, 0x06, - 0x8A, 0x4C, 0x0B, 0x52, 0x4B, 0x66, 0xD0, 0xA6, - 0x32, 0x77, 0x5D, 0x93, 0x06, 0x15, 0x75, 0xF9 - }, - { - 0xA2, 0xC4, 0x30, 0x2D, 0xAC, 0xA7, 0xA7, 0xC6, - 0x32, 0xF6, 0x76, 0x30, 0x4E, 0x62, 0x75, 0xC1, - 0xC1, 0xF0, 0xDB, 0xFE, 0x38, 0xDC, 0x57, 0x1C, - 0xB2, 0x3E, 0x1F, 0x7B, 0xA5, 0xDC, 0x18, 0x18, - 0x0F, 0xC4, 0x8A, 0x01, 0x5F, 0x92, 0x7C, 0x89, - 0x96, 0x7C, 0x1E, 0x10, 0x4E, 0x66, 0xF5, 0xEA, - 0x5B, 0x2D, 0xD3, 0x1D, 0x78, 0x1C, 0x38, 0x49, - 0xBF, 0xC6, 0x49, 0x22, 0x0C, 0x38, 0x5C, 0x82 - }, - { - 0xC1, 0x9C, 0x6B, 0x3F, 0xB5, 0x35, 0x2B, 0xB3, - 0x94, 0xC2, 0x68, 0x46, 0x52, 0x3C, 0x25, 0xE8, - 0x26, 0x5D, 0x50, 0x5F, 0x50, 0x1F, 0x96, 0x03, - 0xA4, 0xF8, 0xBD, 0x55, 0x38, 0x6C, 0xF4, 0xCC, - 0x9F, 0x4D, 0x71, 0xF3, 0x8F, 0xF4, 0x45, 0xF4, - 0xEF, 0xC8, 0x30, 0x98, 0xD4, 0x79, 0x69, 0x33, - 0x4E, 0x79, 0xA2, 0xBC, 0xB4, 0x02, 0x6B, 0xC6, - 0x3B, 0x79, 0x59, 0xDE, 0xDB, 0x62, 0xB7, 0xBD - }, - { - 0x1F, 0x4A, 0xB9, 0x84, 0x0A, 0x1C, 0xFA, 0x8F, - 0xE6, 0xC5, 0x62, 0x2D, 0x9B, 0x53, 0x8B, 0xEC, - 0xB8, 0x80, 0x7A, 0x87, 0x78, 0xB6, 0x9D, 0x93, - 0x05, 0xF9, 0x08, 0x57, 0x65, 0x73, 0xB2, 0x0C, - 0xA3, 0x70, 0x4E, 0x89, 0x12, 0x97, 0x26, 0xD5, - 0x02, 0xE1, 0x98, 0x58, 0x8D, 0x07, 0x26, 0x68, - 0xBF, 0x03, 0x63, 0x0B, 0x5B, 0x5A, 0x92, 0x32, - 0xFF, 0x39, 0x25, 0x27, 0x24, 0x9D, 0xF9, 0x9B - }, - { - 0xFE, 0x03, 0x17, 0x7B, 0x58, 0xB4, 0x88, 0x83, - 0xA8, 0x6D, 0x42, 0x68, 0x33, 0x4B, 0x95, 0x91, - 0xD9, 0xFB, 0xD8, 0xBF, 0x7C, 0xC2, 0xAA, 0xCC, - 0x50, 0x25, 0xEF, 0x47, 0x6B, 0x45, 0x33, 0xBA, - 0x7B, 0xD7, 0x81, 0xDF, 0x01, 0x11, 0x47, 0xB3, - 0xCF, 0x51, 0x1D, 0x8B, 0x3D, 0xCD, 0x8C, 0x78, - 0x0D, 0x30, 0xD7, 0xDA, 0x71, 0x8C, 0x22, 0x44, - 0x23, 0x19, 0x81, 0x7B, 0xE3, 0x18, 0x6B, 0xC5 - }, - { - 0xF4, 0xC3, 0xB0, 0x59, 0x10, 0x5B, 0x6A, 0xA5, - 0xFE, 0x78, 0x84, 0x3A, 0x07, 0xD9, 0x4F, 0x71, - 0x20, 0x62, 0xCB, 0x5A, 0x4D, 0xD6, 0x05, 0x9F, - 0x97, 0x90, 0x4D, 0x0C, 0x57, 0x97, 0x3B, 0xA8, - 0xDF, 0x71, 0xD1, 0x5A, 0x51, 0x1A, 0x06, 0x68, - 0x64, 0xFE, 0x45, 0x5E, 0xDC, 0x9E, 0x5F, 0x16, - 0x52, 0x4C, 0xEC, 0x7E, 0xE2, 0x48, 0xEE, 0x3E, - 0xC9, 0x29, 0x06, 0x3B, 0xD1, 0x07, 0x98, 0xDA - }, - { - 0x57, 0xA1, 0x6F, 0x96, 0x4B, 0x18, 0x1B, 0x12, - 0x03, 0xA5, 0x80, 0x3B, 0x73, 0x81, 0x7D, 0x77, - 0x44, 0x83, 0x82, 0x6C, 0xEA, 0x11, 0x3B, 0x9C, - 0xCF, 0xCF, 0x0E, 0xB8, 0x7C, 0xB2, 0x30, 0x64, - 0x28, 0x49, 0x62, 0xD8, 0x47, 0xBB, 0x1F, 0xAE, - 0x8C, 0xBF, 0x5C, 0xC6, 0x3B, 0x3C, 0xEA, 0xA1, - 0x24, 0x1E, 0xA4, 0x2C, 0x63, 0xF8, 0x98, 0x01, - 0x1F, 0xC4, 0xDB, 0xCA, 0xE6, 0xF5, 0xE8, 0xC5 - }, - { - 0x79, 0x52, 0xFC, 0x83, 0xAC, 0xF1, 0x3A, 0x95, - 0xCA, 0x9C, 0x27, 0xA2, 0x15, 0x6D, 0x9C, 0x1B, - 0x63, 0x00, 0xB0, 0xEF, 0x79, 0x0F, 0x57, 0x2B, - 0xC3, 0x94, 0xC6, 0x77, 0xF7, 0xC1, 0x46, 0x29, - 0xEB, 0xD8, 0xE7, 0xD5, 0xD7, 0xC7, 0xF1, 0xA5, - 0xEB, 0xBD, 0xC3, 0x90, 0xCC, 0x08, 0xCD, 0x58, - 0xC2, 0x00, 0x89, 0x00, 0xCB, 0x55, 0xEB, 0x05, - 0xE4, 0x44, 0xA6, 0x8C, 0x3B, 0x39, 0x3E, 0x60 - }, - { - 0x2C, 0x22, 0x40, 0xD6, 0xB5, 0x41, 0xF4, 0x29, - 0x4F, 0xF9, 0x76, 0x79, 0x1D, 0x35, 0xE6, 0xA2, - 0xD4, 0x92, 0xF5, 0x7A, 0x91, 0x5F, 0xBA, 0xC5, - 0x83, 0x26, 0x60, 0xC1, 0x0E, 0x9C, 0x96, 0x46, - 0x5C, 0x7B, 0xD5, 0xFC, 0xA7, 0x51, 0xBF, 0x68, - 0xE2, 0x67, 0x3A, 0x63, 0x8E, 0x3A, 0xF7, 0x35, - 0xB0, 0x20, 0x91, 0xD7, 0x5D, 0x1A, 0x7F, 0x89, - 0xE3, 0xF7, 0x61, 0xC5, 0xDF, 0x82, 0x1A, 0x6B - }, - { - 0x59, 0xDC, 0x84, 0x6D, 0x34, 0x05, 0xCC, 0xD8, - 0x06, 0xF8, 0xFA, 0x20, 0xC8, 0x96, 0x9E, 0xF6, - 0x8A, 0x43, 0x85, 0xEF, 0x6C, 0x27, 0x4E, 0xEE, - 0x6D, 0xC0, 0x69, 0x2C, 0x3E, 0xCF, 0xB1, 0xA8, - 0x34, 0xCE, 0x64, 0x43, 0x76, 0xC5, 0x2B, 0x80, - 0x42, 0x1B, 0xAE, 0x94, 0xD6, 0xC7, 0xFD, 0xCC, - 0xA5, 0xA8, 0xF1, 0x85, 0x9C, 0x45, 0xA1, 0x0C, - 0x4E, 0xB2, 0x74, 0x82, 0x6F, 0x1F, 0x08, 0x9F - }, - { - 0xB7, 0x52, 0x96, 0x27, 0x07, 0xA1, 0x7B, 0x66, - 0x4F, 0xAE, 0xB3, 0x13, 0xE2, 0xB9, 0x52, 0xDC, - 0x03, 0xE7, 0x4A, 0x7E, 0x94, 0x47, 0x09, 0x8A, - 0xA6, 0xD4, 0xEA, 0x5B, 0xD2, 0x87, 0xD0, 0x7A, - 0x12, 0x25, 0xEC, 0xED, 0xA9, 0x81, 0x15, 0x70, - 0x58, 0x0A, 0x51, 0x2B, 0x2B, 0x20, 0xB3, 0xFC, - 0xFC, 0xA7, 0x0B, 0x44, 0xF6, 0x45, 0x4E, 0xF3, - 0xC3, 0x52, 0x4C, 0xCA, 0x6B, 0x69, 0x47, 0x5B - }, - { - 0xDA, 0x0D, 0x8E, 0x54, 0x61, 0xF8, 0x10, 0x24, - 0xEF, 0xFE, 0xED, 0x5D, 0x70, 0x76, 0xA0, 0x4F, - 0xED, 0xED, 0xAC, 0x57, 0xE7, 0xC9, 0x8A, 0x59, - 0x45, 0xBF, 0xDE, 0x66, 0x75, 0x58, 0x18, 0x85, - 0x1B, 0xE1, 0x13, 0x6B, 0x71, 0xF4, 0x33, 0xA5, - 0x6B, 0xDA, 0x18, 0x41, 0xAE, 0x71, 0x39, 0x2C, - 0x4B, 0x82, 0x90, 0x82, 0x63, 0x59, 0xF5, 0x87, - 0x22, 0x3C, 0x3E, 0xF7, 0x37, 0xFF, 0x73, 0x2A - }, - { - 0xED, 0xB8, 0x6A, 0x23, 0x7C, 0x6F, 0x13, 0x7D, - 0xFB, 0xB3, 0x47, 0x01, 0x1E, 0xDB, 0x4C, 0x6E, - 0x86, 0x1F, 0x4D, 0x58, 0x14, 0x60, 0x85, 0x46, - 0x34, 0x41, 0x04, 0x2F, 0xA3, 0x63, 0x16, 0xF1, - 0xFA, 0xF8, 0x87, 0x11, 0xBB, 0x0F, 0x18, 0x11, - 0xDF, 0xBB, 0xBF, 0xA7, 0xB5, 0x1F, 0x9C, 0xE2, - 0xD4, 0x96, 0x05, 0x24, 0x3E, 0xD0, 0x16, 0xCB, - 0xAD, 0x68, 0x85, 0xEA, 0xE2, 0x03, 0x67, 0x4F - }, - { - 0xE6, 0xD8, 0xE0, 0xFB, 0xAA, 0x29, 0xDB, 0xEB, - 0x60, 0xF3, 0xC7, 0xF9, 0x85, 0xBA, 0xD7, 0x54, - 0xD7, 0x21, 0xAA, 0xC6, 0x3D, 0xA6, 0xF4, 0x49, - 0x0C, 0x9D, 0x7E, 0xA2, 0x31, 0xD2, 0x62, 0x2F, - 0xDF, 0xDE, 0xF1, 0x48, 0xD0, 0xCA, 0x44, 0x2B, - 0x8D, 0x59, 0xCF, 0x3E, 0x4F, 0x98, 0x35, 0xCB, - 0xC2, 0x40, 0xAF, 0x40, 0xFB, 0xA6, 0x3A, 0x2E, - 0xA5, 0xA2, 0x35, 0xD4, 0x6E, 0xEA, 0x6E, 0xAC - }, - { - 0xD4, 0xE4, 0x63, 0xC4, 0x88, 0x29, 0x87, 0xEB, - 0x44, 0xA5, 0xED, 0x0C, 0x82, 0x1D, 0x68, 0xB0, - 0xFE, 0xF9, 0x9D, 0x6F, 0x53, 0xA5, 0x7B, 0xF3, - 0x19, 0xBD, 0xAC, 0x25, 0xAC, 0x38, 0xEB, 0x0B, - 0x23, 0xE1, 0x13, 0x8C, 0x00, 0x12, 0xF5, 0xF3, - 0x83, 0x46, 0xA1, 0xDE, 0x9D, 0x4A, 0x99, 0x2A, - 0x64, 0xB9, 0x42, 0x83, 0x4A, 0x85, 0x6E, 0xFB, - 0xAA, 0x06, 0x20, 0xBD, 0xA2, 0x9F, 0x6A, 0x86 - }, - { - 0x42, 0xD8, 0x10, 0xD0, 0x1C, 0x2D, 0xA2, 0x47, - 0x35, 0xF0, 0x4A, 0x5E, 0x90, 0x13, 0x38, 0xFD, - 0xFC, 0x2D, 0xE1, 0x71, 0x5F, 0xF6, 0x64, 0x3A, - 0x37, 0x2F, 0x88, 0x0E, 0x6C, 0x5C, 0x6C, 0x13, - 0xD2, 0xB3, 0xAD, 0x70, 0x77, 0x46, 0x9D, 0x64, - 0x33, 0x54, 0x05, 0x4D, 0x32, 0xDD, 0x80, 0x49, - 0xEA, 0x63, 0x73, 0x2B, 0x57, 0x45, 0xBD, 0xB2, - 0x3B, 0xE2, 0xB5, 0x8E, 0x48, 0xC1, 0x01, 0x3A - }, - { - 0xCF, 0xBF, 0x54, 0x30, 0x07, 0x6F, 0x82, 0x5A, - 0x3B, 0xBB, 0x88, 0xC1, 0xBC, 0x0A, 0xEF, 0x61, - 0x25, 0x9E, 0x8F, 0x4D, 0x5F, 0xA3, 0x3C, 0x39, - 0x82, 0x50, 0x62, 0xF1, 0x5D, 0x19, 0xFD, 0x4A, - 0x01, 0x82, 0xCD, 0x97, 0x36, 0xD2, 0xAE, 0xC9, - 0x74, 0x9C, 0xCF, 0x83, 0x18, 0x6C, 0x35, 0x74, - 0xAB, 0x94, 0x42, 0x65, 0x40, 0x66, 0x0A, 0x9D, - 0xB8, 0xC3, 0xAA, 0xBB, 0xCB, 0xDD, 0x9D, 0x0F - }, - { - 0x6C, 0x24, 0x34, 0xA1, 0xAF, 0xA1, 0x57, 0xAC, - 0xCC, 0x34, 0xA5, 0xC4, 0x87, 0x2D, 0xFF, 0x69, - 0xFE, 0x7F, 0x31, 0x96, 0xCB, 0x1A, 0x75, 0x0C, - 0x54, 0x1D, 0x8B, 0x73, 0x92, 0x28, 0x88, 0xBA, - 0xBE, 0x89, 0xB1, 0xC3, 0x82, 0x02, 0x21, 0x86, - 0x20, 0xD8, 0x8D, 0x77, 0xDA, 0xD9, 0xDF, 0xBA, - 0xB3, 0xFB, 0xF7, 0x40, 0xB2, 0xD1, 0xD8, 0xF3, - 0x7E, 0xAD, 0x25, 0x8E, 0x2E, 0xF1, 0x06, 0x52 - }, - { - 0x48, 0xB7, 0x26, 0x8A, 0xA4, 0x34, 0x2F, 0xAB, - 0x02, 0x1D, 0x14, 0x72, 0xE9, 0x25, 0x7F, 0x76, - 0x58, 0x5C, 0xC5, 0x68, 0x10, 0xC8, 0xF2, 0xA6, - 0xE1, 0xD4, 0xA8, 0x94, 0x6B, 0x77, 0x71, 0x42, - 0xD4, 0x4A, 0xE5, 0x13, 0xA8, 0x80, 0x9F, 0x2D, - 0x6D, 0xC7, 0x26, 0x30, 0x5F, 0x79, 0x44, 0x60, - 0x4D, 0x95, 0x2D, 0x4A, 0x9F, 0x08, 0x5C, 0x5C, - 0x10, 0x50, 0xBA, 0xFD, 0xD2, 0x1D, 0x1E, 0x60 - }, - { - 0xCE, 0xCF, 0xCE, 0x4B, 0x12, 0xC6, 0xCF, 0x53, - 0xD1, 0xB1, 0xB2, 0xD4, 0x18, 0xA4, 0x93, 0xE3, - 0xF4, 0x29, 0x17, 0x03, 0x21, 0xE8, 0x1A, 0xA2, - 0x52, 0x63, 0xAA, 0xA7, 0x15, 0xD5, 0xCA, 0x38, - 0x9F, 0x65, 0xC3, 0xAC, 0xF9, 0x9B, 0x18, 0x0E, - 0x44, 0x6B, 0x50, 0xE6, 0x01, 0xFC, 0xBF, 0x44, - 0x61, 0xD0, 0x42, 0x6A, 0x85, 0x92, 0xA0, 0x77, - 0x42, 0x20, 0x18, 0x57, 0x12, 0x5F, 0x71, 0xEE - }, - { - 0x38, 0x5A, 0x75, 0x22, 0x42, 0xEB, 0x9E, 0xD5, - 0x6B, 0x07, 0x4B, 0x70, 0x2C, 0x91, 0xE7, 0x5A, - 0xEC, 0x0B, 0xE9, 0x06, 0x4B, 0xD9, 0xCF, 0x88, - 0x03, 0x04, 0xC2, 0x13, 0x27, 0x0C, 0xB2, 0xEA, - 0xE8, 0xE2, 0x1D, 0x9A, 0xE8, 0xC6, 0x08, 0x15, - 0x19, 0xF7, 0x5D, 0xFA, 0xBB, 0x00, 0x3B, 0x24, - 0x32, 0xB0, 0x47, 0x55, 0xB8, 0xC3, 0x2C, 0x97, - 0xAC, 0x29, 0x14, 0xE8, 0xBF, 0x45, 0xB2, 0x34 - }, - { - 0xD8, 0x9A, 0x12, 0x4A, 0x9B, 0x95, 0x8B, 0xA2, - 0x3D, 0x09, 0x20, 0x7A, 0xCF, 0xA6, 0x2A, 0x33, - 0xB8, 0x70, 0x89, 0xB2, 0x86, 0xE8, 0x43, 0x8B, - 0xDC, 0x01, 0xE2, 0x33, 0xAB, 0x2A, 0x86, 0x30, - 0xA1, 0xEE, 0xB6, 0xB2, 0xB9, 0xBA, 0x6B, 0x7D, - 0x21, 0x00, 0x10, 0x77, 0x33, 0xDE, 0xAF, 0x4C, - 0x20, 0x47, 0x8C, 0x26, 0xF2, 0x49, 0xC6, 0x89, - 0xC5, 0x26, 0x84, 0x73, 0xE2, 0xE9, 0xFA, 0x60 - }, - { - 0x43, 0xDE, 0x10, 0x92, 0xFF, 0x9F, 0xF5, 0x28, - 0x20, 0x6C, 0x6F, 0xCF, 0x81, 0x32, 0x2E, 0xAD, - 0x3D, 0x22, 0xEA, 0xA4, 0xC8, 0x54, 0x52, 0x15, - 0x77, 0xDF, 0x33, 0x62, 0x47, 0x49, 0x5C, 0xE1, - 0x72, 0xFC, 0x87, 0x39, 0x95, 0x30, 0x0B, 0x21, - 0xB9, 0x46, 0x10, 0xC9, 0xD2, 0xF6, 0x33, 0xB5, - 0x33, 0xBD, 0xE4, 0x56, 0x8C, 0xA0, 0x9C, 0x38, - 0x0E, 0x84, 0x68, 0xFE, 0x6A, 0xD8, 0xD8, 0x1D - }, - { - 0x86, 0x8B, 0x60, 0x11, 0x99, 0xEF, 0x00, 0x0B, - 0x70, 0x5C, 0xD6, 0x4D, 0x39, 0x30, 0x26, 0x2A, - 0x5A, 0xB9, 0x10, 0xE3, 0x4E, 0x2D, 0x78, 0xE8, - 0x58, 0x7B, 0x4E, 0x01, 0x0D, 0x37, 0x6D, 0xD4, - 0xA0, 0x0D, 0xE4, 0x48, 0x67, 0xD0, 0xE9, 0x33, - 0xEE, 0x39, 0xA1, 0xFA, 0x91, 0x47, 0xD4, 0x99, - 0xD1, 0x84, 0xF3, 0xA9, 0xCF, 0x35, 0x4F, 0x2D, - 0x3C, 0x51, 0x14, 0x6F, 0xF7, 0x15, 0x2D, 0x68 - }, - { - 0x15, 0x17, 0xF8, 0xF0, 0x44, 0x2F, 0x0D, 0x50, - 0xBB, 0xC0, 0xAA, 0xB6, 0x84, 0x6F, 0xDC, 0xE3, - 0xB7, 0x0F, 0xAE, 0xA4, 0xBB, 0x51, 0x13, 0xAC, - 0xB2, 0x3A, 0xBE, 0x10, 0x1D, 0x99, 0xA4, 0x0A, - 0x1B, 0x76, 0xC1, 0xE8, 0xDC, 0x2E, 0xA1, 0x93, - 0x62, 0x94, 0x82, 0x3A, 0xD8, 0x35, 0x4C, 0x11, - 0xE2, 0xE9, 0x6C, 0x67, 0x12, 0xBE, 0x4C, 0xF7, - 0x7C, 0x58, 0x3F, 0xD0, 0x6B, 0x5E, 0x5C, 0x55 - }, - { - 0xAF, 0x4C, 0x6C, 0x67, 0xC5, 0xCA, 0x38, 0x38, - 0x73, 0x48, 0xCA, 0x3E, 0xC2, 0xBE, 0xD7, 0xFB, - 0xA8, 0xC2, 0xB3, 0xD2, 0x2D, 0xE1, 0x48, 0xD0, - 0x8A, 0x61, 0x8C, 0x29, 0x70, 0x23, 0xFB, 0x7B, - 0x6D, 0x2C, 0x15, 0x3D, 0x5E, 0xFC, 0xD1, 0x68, - 0x89, 0x99, 0x91, 0x0B, 0x20, 0xE1, 0xEA, 0xC7, - 0xC1, 0x00, 0xA2, 0xC5, 0xA6, 0xC1, 0xAC, 0xF5, - 0xE9, 0x8F, 0x14, 0x3B, 0x41, 0xDC, 0x8A, 0x12 - }, - { - 0xA2, 0xAD, 0x94, 0x24, 0x3B, 0x8E, 0xEA, 0x68, - 0xF5, 0xFA, 0xDD, 0x69, 0x08, 0xAD, 0xB0, 0xDA, - 0xCD, 0xAA, 0x6A, 0x6D, 0x24, 0xC2, 0x50, 0xD3, - 0x39, 0x40, 0x3D, 0xBA, 0x82, 0x31, 0xBD, 0x51, - 0xE8, 0x87, 0xCB, 0x5B, 0x1B, 0x7B, 0xDE, 0x27, - 0x74, 0xC6, 0xB0, 0x8A, 0xCC, 0xE0, 0xF7, 0x49, - 0x56, 0x48, 0xDA, 0x3B, 0xEB, 0xC7, 0xB1, 0xC2, - 0x82, 0x15, 0x08, 0xC4, 0xD3, 0x82, 0xF7, 0x30 - }, - { - 0x28, 0xF8, 0x8C, 0xDB, 0xE9, 0x03, 0xAD, 0x63, - 0xA0, 0x23, 0x31, 0xDE, 0x1A, 0x32, 0xAF, 0x6D, - 0xBB, 0xA8, 0x2D, 0x7F, 0xC0, 0x79, 0x87, 0x02, - 0x72, 0x49, 0x33, 0xDA, 0x77, 0x38, 0x07, 0xBC, - 0x80, 0x42, 0x78, 0x13, 0x47, 0x81, 0xF1, 0x26, - 0x23, 0x32, 0x20, 0xE3, 0x07, 0x92, 0x81, 0x31, - 0xB2, 0x47, 0x10, 0xB4, 0x67, 0x4E, 0xD7, 0x05, - 0x11, 0x2F, 0x95, 0xD1, 0xAA, 0x37, 0xA2, 0xDC - }, - { - 0x5B, 0xB2, 0x92, 0x65, 0xE2, 0x46, 0xB8, 0x84, - 0xFF, 0x40, 0x91, 0x4F, 0xFA, 0x93, 0xD9, 0xA1, - 0x2E, 0xDC, 0x19, 0xEE, 0xE9, 0xCC, 0x8A, 0x83, - 0x63, 0x1D, 0x68, 0xBD, 0x46, 0xAA, 0xD3, 0x35, - 0x4B, 0xA6, 0x67, 0x4B, 0x91, 0x3F, 0x4F, 0x82, - 0x3E, 0x79, 0x1F, 0x0C, 0xB1, 0x9E, 0xA6, 0xA6, - 0x7C, 0x6E, 0x32, 0xE9, 0xBE, 0x0D, 0x0F, 0xF5, - 0x76, 0x0F, 0x16, 0xDD, 0x75, 0xA8, 0x7B, 0x5D - }, - { - 0xBF, 0x3C, 0x06, 0xDC, 0x6D, 0x94, 0xE3, 0x85, - 0x9A, 0x4D, 0xAA, 0x50, 0xEC, 0xA1, 0xAF, 0x53, - 0x57, 0xE3, 0x45, 0x79, 0xE5, 0x99, 0xF8, 0x20, - 0x49, 0xE1, 0xCC, 0xA7, 0xA7, 0xD4, 0xF3, 0x3F, - 0xEA, 0x44, 0x3B, 0x44, 0x69, 0x1B, 0xD4, 0x36, - 0x88, 0xF5, 0x55, 0x05, 0x31, 0xCF, 0x22, 0xB7, - 0x12, 0x77, 0x89, 0x0B, 0xFF, 0xAE, 0x1E, 0xCE, - 0x78, 0x3F, 0x56, 0x63, 0xA1, 0xC4, 0xD7, 0x1A - }, - { - 0xC9, 0x0D, 0xF5, 0x32, 0xF2, 0xF1, 0x49, 0x3A, - 0x11, 0x55, 0xBE, 0x8C, 0x2A, 0x44, 0x00, 0x92, - 0x20, 0x49, 0x97, 0x4E, 0x7D, 0x4F, 0x4B, 0x54, - 0xF8, 0x20, 0xC2, 0x26, 0x9D, 0x3B, 0x16, 0x1B, - 0x6E, 0x88, 0xEB, 0x77, 0x6B, 0x85, 0x9B, 0x89, - 0xB8, 0x56, 0x7F, 0xBC, 0x55, 0x0C, 0x4F, 0x54, - 0xAA, 0xD2, 0x7A, 0x16, 0x10, 0x65, 0x6D, 0x62, - 0x5C, 0x32, 0x7F, 0x66, 0x5D, 0xCA, 0x70, 0x7C - }, - { - 0x3D, 0x39, 0xEE, 0xCC, 0x9E, 0x90, 0x42, 0x36, - 0xDC, 0x85, 0x7B, 0xA4, 0x9D, 0x55, 0xD3, 0xBA, - 0xD7, 0x65, 0x72, 0xA9, 0x1A, 0x75, 0x95, 0x03, - 0x37, 0x6B, 0x77, 0x08, 0xD6, 0x2D, 0x5A, 0x78, - 0x5C, 0x23, 0x06, 0x80, 0x59, 0xCF, 0x68, 0x89, - 0x7F, 0x23, 0xEE, 0xC5, 0x07, 0x21, 0x9B, 0x0A, - 0x02, 0xED, 0xA2, 0xD8, 0xBC, 0x94, 0xFA, 0x69, - 0x89, 0xA5, 0x14, 0x82, 0x22, 0x03, 0xC8, 0xD1 - }, - { - 0xE0, 0x8C, 0x54, 0xD9, 0x98, 0xF9, 0x2B, 0x7A, - 0x54, 0xA2, 0x4C, 0xA6, 0xAE, 0xB1, 0x53, 0xA6, - 0x4F, 0x9C, 0x9F, 0x1F, 0xC3, 0x36, 0x58, 0xB3, - 0xED, 0xAC, 0x2C, 0x4B, 0xB5, 0x26, 0x31, 0x58, - 0xDA, 0xDF, 0x00, 0xD3, 0x51, 0x9A, 0x11, 0x9A, - 0x56, 0x14, 0xC7, 0xF3, 0x79, 0x40, 0xE5, 0x5D, - 0x13, 0xCC, 0xE4, 0x66, 0xCB, 0x71, 0xA4, 0x07, - 0xC3, 0x9F, 0xC5, 0x1E, 0x1E, 0xFE, 0x18, 0xDA - }, - { - 0x74, 0x76, 0x76, 0x07, 0x04, 0x1D, 0xD4, 0xB7, - 0xC5, 0x6B, 0x18, 0x9E, 0xE8, 0xF2, 0x77, 0x31, - 0xA5, 0x16, 0x72, 0x23, 0xEB, 0x7A, 0xF9, 0xB9, - 0x39, 0xE1, 0x18, 0xF8, 0x7D, 0x80, 0xB4, 0x9E, - 0xA8, 0xD0, 0xD0, 0x1F, 0x74, 0xF3, 0x98, 0xB1, - 0x72, 0xA8, 0xAD, 0x0D, 0xBF, 0x99, 0x41, 0x4F, - 0x08, 0xD2, 0xB7, 0xD8, 0xD7, 0x52, 0x16, 0xA1, - 0x82, 0x25, 0x27, 0x3D, 0x8D, 0x7F, 0xD0, 0x5D - }, - { - 0xFE, 0xE8, 0x9A, 0x92, 0xCC, 0xF9, 0xF1, 0xEB, - 0x08, 0x4A, 0xAB, 0xA9, 0x54, 0x97, 0xEF, 0x0F, - 0x30, 0x13, 0x4C, 0x19, 0x1C, 0xF9, 0x0A, 0x49, - 0xD2, 0x2C, 0x7D, 0x2F, 0x66, 0x14, 0x99, 0x3C, - 0xBE, 0x1A, 0x4B, 0x65, 0x13, 0xED, 0xC1, 0x53, - 0x86, 0x8A, 0x3D, 0x56, 0x2B, 0x5B, 0x02, 0x26, - 0xBA, 0x8E, 0x1B, 0x0D, 0xCB, 0x69, 0xED, 0x45, - 0xAF, 0x47, 0xCE, 0x4F, 0x86, 0xBA, 0x47, 0x4A - }, - { - 0xCD, 0xAE, 0x94, 0xB6, 0xD1, 0xD8, 0x35, 0xF6, - 0xC7, 0x4C, 0x76, 0xEC, 0x3A, 0x2D, 0xB6, 0x5B, - 0xBD, 0xFA, 0xE1, 0x9D, 0x7B, 0x05, 0x0D, 0xC9, - 0x5D, 0x65, 0x87, 0x33, 0xB8, 0xB2, 0x2C, 0x6F, - 0x9E, 0x0B, 0x63, 0xCC, 0x90, 0x5A, 0x29, 0xEA, - 0x88, 0x78, 0xCA, 0x39, 0x45, 0x56, 0xB3, 0x67, - 0x3C, 0x62, 0x79, 0x15, 0x46, 0xA9, 0xA1, 0xF0, - 0xD1, 0x56, 0x5F, 0xAD, 0xC5, 0x35, 0x36, 0xC1 - }, - { - 0xC7, 0x22, 0x8B, 0x6F, 0x00, 0x00, 0x17, 0xD2, - 0xBE, 0x4B, 0xF2, 0xAE, 0x48, 0xAD, 0xDB, 0x78, - 0x5E, 0x27, 0x35, 0xBF, 0x3C, 0x61, 0x4D, 0x3C, - 0x34, 0x23, 0x1F, 0x1D, 0x0C, 0x88, 0x7D, 0x3A, - 0x8E, 0x88, 0x88, 0x0B, 0x67, 0xAD, 0x3B, 0x2F, - 0x65, 0x23, 0xDD, 0x67, 0x19, 0x34, 0x2C, 0xD4, - 0xF0, 0x59, 0x35, 0xD2, 0xE5, 0x26, 0x7F, 0x36, - 0x80, 0xE7, 0x73, 0xBD, 0x5E, 0xAD, 0xFE, 0x1D - }, - { - 0x12, 0x27, 0x44, 0xFE, 0x3F, 0xFF, 0x9A, 0x05, - 0x5F, 0x0F, 0x3B, 0xDE, 0x01, 0xEB, 0x2F, 0x44, - 0x6B, 0x0C, 0xDA, 0xF3, 0xAE, 0xD7, 0x2C, 0xAA, - 0x29, 0x40, 0x74, 0x19, 0x20, 0x12, 0x0A, 0x96, - 0x4F, 0xCF, 0xF8, 0x70, 0x99, 0xB0, 0x8E, 0xF3, - 0x34, 0x96, 0xE3, 0x99, 0x03, 0x2A, 0x82, 0xDA, - 0xAD, 0x4F, 0xED, 0x30, 0x31, 0x17, 0x2F, 0x77, - 0x47, 0x92, 0x58, 0xFA, 0x39, 0xDB, 0x92, 0xFD - }, - { - 0x1F, 0xB4, 0xE3, 0x67, 0xEA, 0xB6, 0x42, 0xB7, - 0x2E, 0x43, 0xAD, 0x4A, 0xBD, 0xFC, 0xAD, 0x74, - 0x62, 0x0C, 0x3F, 0x6C, 0x63, 0xA8, 0x91, 0x31, - 0x28, 0xD2, 0x22, 0x6E, 0xB1, 0x92, 0xF9, 0x99, - 0x2E, 0xB9, 0xC8, 0xF7, 0x6A, 0xE2, 0x06, 0xD3, - 0xF5, 0xDE, 0xC7, 0x26, 0xA5, 0xA6, 0x86, 0xB4, - 0xAE, 0x37, 0xB5, 0x57, 0xAB, 0x57, 0xF9, 0x56, - 0x48, 0x53, 0x34, 0xF7, 0x3D, 0xCE, 0x02, 0xE0 - }, - { - 0x04, 0x25, 0xCA, 0xAA, 0x92, 0x3B, 0x47, 0xB3, - 0x50, 0x45, 0xEB, 0x50, 0x82, 0x9C, 0x04, 0x8B, - 0xC8, 0x90, 0x44, 0x4A, 0xFE, 0xEF, 0xC0, 0xAF, - 0xC9, 0xD1, 0x87, 0x7B, 0x82, 0x1E, 0x04, 0x3C, - 0x9C, 0x7B, 0x9D, 0x6D, 0xC3, 0x3F, 0xBB, 0xDF, - 0xA5, 0x37, 0xC1, 0xEC, 0xE3, 0x11, 0x96, 0x5B, - 0x2F, 0xEE, 0x89, 0x82, 0xBC, 0x46, 0xA2, 0xA7, - 0x50, 0xBF, 0xC7, 0x1D, 0x79, 0xDB, 0xEA, 0x04 - }, - { - 0x6B, 0x9D, 0x86, 0xF1, 0x5C, 0x09, 0x0A, 0x00, - 0xFC, 0x3D, 0x90, 0x7F, 0x90, 0x6C, 0x5E, 0xB7, - 0x92, 0x65, 0xE5, 0x8B, 0x88, 0xEB, 0x64, 0x29, - 0x4B, 0x4C, 0xC4, 0xE2, 0xB8, 0x9B, 0x1A, 0x7C, - 0x5E, 0xE3, 0x12, 0x7E, 0xD2, 0x1B, 0x45, 0x68, - 0x62, 0xDE, 0x6B, 0x2A, 0xBD, 0xA5, 0x9E, 0xAA, - 0xCF, 0x2D, 0xCB, 0xE9, 0x22, 0xCA, 0x75, 0x5E, - 0x40, 0x73, 0x5B, 0xE8, 0x1D, 0x9C, 0x88, 0xA5 - }, - { - 0x14, 0x6A, 0x18, 0x7A, 0x99, 0xE8, 0xA2, 0xD2, - 0x33, 0xE0, 0xEB, 0x37, 0x3D, 0x43, 0x7B, 0x02, - 0xBF, 0xA8, 0xD6, 0x51, 0x5B, 0x3C, 0xA1, 0xDE, - 0x48, 0xA6, 0xB6, 0xAC, 0xF7, 0x43, 0x7E, 0xB7, - 0xE7, 0xAC, 0x3F, 0x2D, 0x19, 0xEF, 0x3B, 0xB9, - 0xB8, 0x33, 0xCC, 0x57, 0x61, 0xDB, 0xA2, 0x2D, - 0x1A, 0xD0, 0x60, 0xBE, 0x76, 0xCD, 0xCB, 0x81, - 0x2D, 0x64, 0xD5, 0x78, 0xE9, 0x89, 0xA5, 0xA4 - }, - { - 0x25, 0x75, 0x4C, 0xA6, 0x66, 0x9C, 0x48, 0x70, - 0x84, 0x03, 0x88, 0xEA, 0x64, 0xE9, 0x5B, 0xD2, - 0xE0, 0x81, 0x0D, 0x36, 0x3C, 0x4C, 0xF6, 0xA1, - 0x6E, 0xA1, 0xBD, 0x06, 0x68, 0x6A, 0x93, 0xC8, - 0xA1, 0x25, 0xF2, 0x30, 0x22, 0x9D, 0x94, 0x84, - 0x85, 0xE1, 0xA8, 0x2D, 0xE4, 0x82, 0x00, 0x35, - 0x8F, 0x3E, 0x02, 0xB5, 0x05, 0xDA, 0xBC, 0x4F, - 0x13, 0x9C, 0x03, 0x79, 0xDC, 0x2B, 0x30, 0x80 - }, - { - 0x0E, 0x26, 0xCB, 0xC7, 0x8D, 0xC7, 0x54, 0xEC, - 0xA0, 0x6C, 0xF8, 0xCB, 0x31, 0xFC, 0xBA, 0xBB, - 0x18, 0x88, 0x92, 0xC1, 0x04, 0x50, 0x89, 0x05, - 0x49, 0xB2, 0xD4, 0x03, 0xA2, 0xA3, 0xC4, 0x57, - 0x70, 0x01, 0xF7, 0x4A, 0x76, 0xBD, 0x38, 0x99, - 0x0D, 0x75, 0x5B, 0xAE, 0x05, 0x26, 0x64, 0x83, - 0x29, 0xF6, 0x35, 0x45, 0xED, 0x16, 0x99, 0x5C, - 0xB1, 0xE6, 0x34, 0x3F, 0x18, 0x9F, 0x8E, 0x6F - }, - { - 0x58, 0xE7, 0x98, 0x0B, 0x8B, 0x1A, 0x0B, 0x88, - 0xDA, 0x9D, 0xA8, 0x64, 0x0F, 0x2B, 0x96, 0xE3, - 0xE0, 0x48, 0x36, 0x61, 0x30, 0xC2, 0x66, 0x21, - 0x7D, 0xDC, 0x79, 0x53, 0x50, 0x8F, 0x4A, 0x40, - 0xD1, 0x67, 0x4D, 0xAB, 0xD3, 0x92, 0x89, 0xE3, - 0xF1, 0x0C, 0x61, 0x19, 0x68, 0xCC, 0xD1, 0xE9, - 0xCC, 0xC1, 0x8C, 0xAD, 0xC7, 0x77, 0x4A, 0x99, - 0x7D, 0xD1, 0xFA, 0x94, 0xE8, 0x35, 0x47, 0x07 - }, - { - 0x69, 0x6F, 0xB8, 0x47, 0x63, 0xE0, 0x23, 0x58, - 0x4B, 0x35, 0x90, 0x7A, 0x8B, 0x8A, 0xAA, 0x9E, - 0x0E, 0x78, 0x6F, 0x2C, 0xA5, 0x91, 0x45, 0x41, - 0x91, 0x58, 0x48, 0xFB, 0x6D, 0xDA, 0xB8, 0xD3, - 0xD2, 0xEA, 0xB6, 0x00, 0xC1, 0x38, 0xCE, 0x67, - 0x17, 0xB0, 0xC7, 0x02, 0x59, 0xD3, 0x19, 0x3E, - 0xA1, 0x56, 0x95, 0xC8, 0x50, 0x53, 0x7F, 0x2C, - 0x70, 0x6C, 0xA4, 0xAF, 0x15, 0x8E, 0x95, 0x7E - }, - { - 0x23, 0xDE, 0x6E, 0x73, 0x07, 0x9C, 0x8C, 0x20, - 0x47, 0xA7, 0x84, 0x6A, 0x83, 0xCC, 0xAC, 0xAB, - 0xD3, 0x71, 0x16, 0x3B, 0x7B, 0x6D, 0x54, 0xEB, - 0x03, 0x2B, 0xC4, 0x9B, 0x66, 0x97, 0x42, 0xBE, - 0x71, 0x7B, 0x99, 0xDA, 0x12, 0xC6, 0x46, 0xAD, - 0x52, 0x57, 0x06, 0xF2, 0x22, 0xE1, 0xDF, 0x4A, - 0x91, 0xDD, 0x0C, 0xC6, 0x4D, 0xF1, 0x82, 0xDA, - 0x00, 0x73, 0x1D, 0x43, 0x9C, 0x46, 0xF8, 0xD2 - }, - { - 0xBB, 0x74, 0xF3, 0x6A, 0x9D, 0xB6, 0x96, 0xC9, - 0x33, 0x35, 0xE6, 0xC4, 0x6A, 0xAB, 0x58, 0xDB, - 0x10, 0xCB, 0x07, 0xEA, 0x4F, 0x1B, 0x71, 0x93, - 0x63, 0x05, 0x22, 0x83, 0x90, 0x95, 0x94, 0x78, - 0xF8, 0x73, 0x4E, 0x21, 0x54, 0x90, 0xE9, 0xAE, - 0x2A, 0x3E, 0xC8, 0xF7, 0xF7, 0x67, 0x33, 0xAE, - 0x3F, 0x8B, 0x9A, 0x3F, 0xD7, 0xC4, 0x06, 0xC6, - 0xCA, 0xC7, 0x09, 0x97, 0x5C, 0x40, 0xF8, 0x56 - }, - { - 0xEC, 0x63, 0x04, 0xD3, 0x8E, 0x23, 0x2C, 0x09, - 0x6A, 0xB5, 0x86, 0xCA, 0xDF, 0x27, 0x02, 0x6D, - 0xC5, 0xE5, 0x32, 0x17, 0xD0, 0xE8, 0xB0, 0xC6, - 0x0A, 0xDA, 0xAE, 0x22, 0xF4, 0xE8, 0xC2, 0x2D, - 0x30, 0xBC, 0x51, 0x77, 0xF1, 0xC8, 0x3A, 0xCD, - 0x92, 0x5E, 0x02, 0xA2, 0xDA, 0x89, 0x59, 0x5F, - 0xC1, 0x06, 0x09, 0x0E, 0x2E, 0x53, 0xED, 0xB3, - 0x1C, 0xDB, 0x76, 0xFF, 0x37, 0xEB, 0x61, 0x80 - }, - { - 0x92, 0xF9, 0xFC, 0x6B, 0xC5, 0x9A, 0x54, 0x3F, - 0x0D, 0xC9, 0xA1, 0x79, 0x8F, 0xB1, 0xE5, 0xD5, - 0x23, 0x47, 0x4E, 0x48, 0xFF, 0x3E, 0x29, 0x49, - 0x7F, 0x72, 0x80, 0xD1, 0xC4, 0x08, 0xC8, 0x66, - 0x33, 0x48, 0xFE, 0x2A, 0xF7, 0x8F, 0x6C, 0x4E, - 0x5E, 0xF5, 0xC0, 0xA0, 0x17, 0xF3, 0xD3, 0xF2, - 0x15, 0xEC, 0xDD, 0x7A, 0x40, 0x0A, 0xC5, 0x77, - 0x3B, 0x9E, 0x25, 0x60, 0x68, 0x84, 0x5A, 0x92 - }, - { - 0x4A, 0x25, 0xB5, 0x62, 0xF2, 0xFA, 0x01, 0xDD, - 0xEE, 0x7E, 0xA2, 0xE9, 0xFB, 0xF5, 0x2F, 0x8C, - 0x75, 0x6D, 0x28, 0xDB, 0x4A, 0x8B, 0xF7, 0x0E, - 0x74, 0x0E, 0x90, 0x27, 0x42, 0x6E, 0x51, 0x63, - 0x9D, 0xF8, 0x78, 0x8D, 0x13, 0x38, 0x56, 0x85, - 0x8D, 0x01, 0xFD, 0xDB, 0xDD, 0x5B, 0x98, 0x79, - 0x44, 0xC3, 0x00, 0xDC, 0x7F, 0x82, 0x41, 0xFB, - 0xCE, 0xFA, 0x4F, 0x12, 0x94, 0x8A, 0xFE, 0xAE - }, - { - 0x34, 0x21, 0x2D, 0xD9, 0xF0, 0x65, 0x1F, 0x81, - 0x80, 0x9A, 0x14, 0xED, 0xBC, 0xF7, 0xF3, 0xAC, - 0xDE, 0xDE, 0x78, 0x72, 0xC7, 0xA4, 0x84, 0x7B, - 0xEA, 0x9F, 0x7A, 0xB7, 0x59, 0x73, 0x82, 0x47, - 0x7A, 0x4C, 0xB8, 0x47, 0x9A, 0x27, 0x63, 0x21, - 0x23, 0x5E, 0x90, 0x21, 0x57, 0x94, 0x46, 0xA4, - 0x38, 0x8A, 0x99, 0xE5, 0x60, 0xA3, 0x90, 0x7A, - 0xEE, 0xF2, 0xB4, 0x38, 0xFE, 0x6B, 0x90, 0xC4 - }, - { - 0xD6, 0x2C, 0xF7, 0xAB, 0xBC, 0x7D, 0x7B, 0xCD, - 0x5B, 0xEB, 0x1E, 0xE4, 0x8C, 0x43, 0xB8, 0x04, - 0xFD, 0x0D, 0xB4, 0x55, 0xE7, 0xF4, 0xFE, 0xBB, - 0xCF, 0xF1, 0x4B, 0x05, 0xBE, 0x90, 0x47, 0xE2, - 0x7E, 0x51, 0x8D, 0x6D, 0x3A, 0x6A, 0xDA, 0x4D, - 0x58, 0x63, 0xB7, 0xEC, 0x7F, 0x84, 0x92, 0x45, - 0x89, 0x40, 0xAC, 0x6B, 0xDD, 0xB5, 0x06, 0x59, - 0x2C, 0xCB, 0xC8, 0x96, 0xAF, 0xBB, 0x77, 0xA3 - }, - { - 0x33, 0xA3, 0xA2, 0x63, 0x6F, 0x91, 0x98, 0xD3, - 0x7A, 0x5F, 0xF1, 0xBF, 0xF9, 0xEB, 0x10, 0x02, - 0x4B, 0x28, 0x46, 0x80, 0x39, 0xF4, 0x91, 0x40, - 0x2D, 0x39, 0xB7, 0x08, 0xC5, 0x5D, 0x27, 0xE5, - 0xE8, 0xDF, 0x5E, 0x3E, 0x19, 0x49, 0x95, 0x82, - 0x35, 0xCA, 0xD9, 0x80, 0x74, 0x20, 0x96, 0xF2, - 0x77, 0x9A, 0x1D, 0x71, 0xDA, 0xD5, 0x8F, 0xAF, - 0xA3, 0xCD, 0x02, 0xCB, 0x5E, 0xAA, 0x98, 0xC5 - }, - { - 0xB7, 0xA3, 0x89, 0x90, 0xE6, 0xF4, 0x56, 0x4A, - 0xA3, 0xD9, 0x3A, 0x79, 0x37, 0x10, 0x0C, 0x29, - 0xF9, 0x40, 0xAF, 0xF7, 0xCB, 0x20, 0x86, 0x5A, - 0x1C, 0x21, 0x89, 0x81, 0xA5, 0x42, 0x04, 0x86, - 0x08, 0x17, 0x81, 0xF8, 0xD5, 0x0C, 0x86, 0x62, - 0x5C, 0xC5, 0xD7, 0x6D, 0x0F, 0x5C, 0xCC, 0x4E, - 0xB6, 0x5D, 0x43, 0x66, 0x09, 0x62, 0x4F, 0x21, - 0xD0, 0x53, 0x39, 0xAB, 0x0C, 0xF7, 0x9F, 0x4C - }, - { - 0x9D, 0x66, 0x5A, 0x3F, 0xDD, 0x10, 0x45, 0x9E, - 0x77, 0xF0, 0x3A, 0xC8, 0xC0, 0xE2, 0x39, 0x01, - 0x94, 0x89, 0x69, 0x3C, 0xC9, 0x31, 0x5A, 0xA3, - 0xFF, 0x11, 0x29, 0x11, 0xD2, 0xAC, 0xF0, 0xB7, - 0xD2, 0x76, 0xAC, 0x76, 0x9B, 0xED, 0xFD, 0x85, - 0x2D, 0x28, 0x89, 0xDD, 0x12, 0xDB, 0x91, 0x39, - 0x8B, 0x01, 0xC4, 0xF4, 0xA5, 0xDA, 0x27, 0x80, - 0xB1, 0xDE, 0xFE, 0x0D, 0x95, 0xB6, 0x32, 0x70 - }, - { - 0x70, 0xFB, 0x9E, 0xFD, 0x5B, 0xCA, 0x7F, 0x19, - 0xB6, 0xE3, 0x1D, 0x64, 0x0D, 0xCF, 0x88, 0xD7, - 0x7E, 0x76, 0x8A, 0xE2, 0x27, 0xEC, 0xB3, 0xFD, - 0x6B, 0x47, 0x13, 0x78, 0x94, 0xF5, 0x49, 0xBF, - 0x1C, 0xF0, 0x6E, 0x5D, 0xB4, 0x54, 0x60, 0x44, - 0xDD, 0x9F, 0x46, 0x5C, 0x9C, 0x85, 0xF7, 0x28, - 0x4F, 0xE5, 0x4D, 0x2B, 0x71, 0x52, 0x69, 0x9B, - 0xE4, 0xBD, 0x55, 0x5A, 0x90, 0x9A, 0x88, 0xA9 - }, - { - 0x7A, 0xFD, 0xB0, 0x19, 0x30, 0x87, 0xE0, 0xC9, - 0xF8, 0xB4, 0xDD, 0x8B, 0x48, 0xD9, 0xF2, 0x0A, - 0xCE, 0x27, 0x13, 0xAF, 0xC7, 0x1B, 0xCC, 0x93, - 0x82, 0xB5, 0x42, 0x90, 0xAE, 0xBF, 0xFE, 0xB2, - 0xD1, 0x38, 0xF4, 0xDC, 0xF0, 0x28, 0xF9, 0xC4, - 0x3C, 0xC1, 0x80, 0x89, 0x84, 0x77, 0xA3, 0x9E, - 0x3F, 0x53, 0xA8, 0xD1, 0xBF, 0x67, 0xCE, 0xB6, - 0x08, 0x26, 0x1F, 0xAE, 0x6D, 0xDB, 0x1A, 0xBC - }, - { - 0x05, 0x99, 0x0D, 0x7D, 0x7D, 0xF1, 0xD4, 0x84, - 0xF5, 0xB1, 0xCA, 0xE9, 0xEE, 0x5D, 0xFC, 0xB4, - 0x3F, 0x2C, 0xBE, 0x18, 0x6C, 0x1A, 0x5B, 0x18, - 0x1A, 0x37, 0x31, 0xD4, 0xB1, 0x54, 0x8E, 0xBF, - 0xF5, 0xBF, 0x61, 0xCB, 0x0F, 0x6D, 0x9F, 0xC2, - 0x30, 0xF2, 0x5E, 0x86, 0x78, 0xB7, 0x99, 0xE0, - 0xE8, 0x30, 0x26, 0xA0, 0x86, 0x6B, 0xF0, 0xAC, - 0xAB, 0x08, 0x9E, 0x10, 0x2E, 0x67, 0xAB, 0x6B - }, - { - 0x1A, 0xF7, 0xA5, 0xCE, 0x58, 0x7C, 0x8D, 0x87, - 0xC7, 0xB7, 0x9F, 0xA3, 0xE7, 0x23, 0xD7, 0x4C, - 0xE0, 0x26, 0xB5, 0x28, 0x67, 0x52, 0xFD, 0x0C, - 0x37, 0x42, 0xC6, 0xF0, 0x41, 0x8E, 0xD7, 0x85, - 0x99, 0x0D, 0x21, 0xF2, 0x8D, 0xA8, 0x39, 0xCE, - 0x82, 0x12, 0xED, 0x55, 0x0C, 0x37, 0x3E, 0x6D, - 0x3A, 0x75, 0xD5, 0x5C, 0x31, 0x77, 0x04, 0x41, - 0xEE, 0xAF, 0xF2, 0xD5, 0x0F, 0x6E, 0x61, 0xB6 - }, - { - 0xDD, 0xEE, 0x0C, 0x76, 0xC9, 0xBD, 0xD3, 0x2D, - 0x70, 0x49, 0x35, 0x4C, 0xFC, 0x85, 0xDC, 0x68, - 0x67, 0xE2, 0x49, 0x2E, 0x47, 0xFE, 0xB0, 0x8E, - 0x39, 0x83, 0xD0, 0xB6, 0x78, 0x84, 0x5D, 0x7E, - 0xC6, 0xC9, 0x79, 0x3C, 0x33, 0x26, 0xBF, 0xDC, - 0x1E, 0x11, 0x32, 0x76, 0xD1, 0x77, 0xFE, 0x38, - 0x82, 0x52, 0x04, 0xDD, 0x00, 0x07, 0x39, 0x89, - 0xC0, 0x81, 0xCC, 0x3B, 0x71, 0xC6, 0x8D, 0x5F - }, - { - 0xDE, 0x07, 0x06, 0x48, 0xB3, 0x7C, 0x47, 0xDC, - 0x9F, 0x2F, 0x6D, 0x2A, 0xB2, 0x07, 0x73, 0xCD, - 0x82, 0xFA, 0x57, 0x25, 0xA6, 0x90, 0x0E, 0xB7, - 0x1C, 0xDD, 0xB0, 0xC9, 0xF3, 0x9B, 0x31, 0xDF, - 0x6D, 0x07, 0x73, 0x24, 0x6E, 0x8E, 0xF9, 0x03, - 0x49, 0x67, 0x75, 0x2D, 0xB7, 0xED, 0x22, 0x73, - 0x3F, 0x43, 0x79, 0x94, 0x8D, 0xC3, 0x96, 0xDC, - 0x35, 0xAD, 0xBB, 0xE9, 0xF6, 0x53, 0x77, 0x40 - }, - { - 0xA6, 0x45, 0x6F, 0xBC, 0xFF, 0x9E, 0x3D, 0x5B, - 0x11, 0x6A, 0x0E, 0x33, 0x1A, 0x1F, 0x97, 0x4F, - 0x07, 0x0E, 0x95, 0x56, 0x09, 0x78, 0x1F, 0xA5, - 0x99, 0xD6, 0x08, 0xA3, 0x1D, 0xA7, 0x6A, 0xD8, - 0xAB, 0xFE, 0x34, 0x66, 0x17, 0xC2, 0x57, 0x86, - 0x51, 0x3B, 0x2C, 0x44, 0xBF, 0xE2, 0xCB, 0x45, - 0x7C, 0x43, 0xFA, 0x6F, 0x45, 0x36, 0x1C, 0xA9, - 0xC6, 0x34, 0x13, 0x11, 0xB7, 0xDD, 0xFB, 0xD5 - }, - { - 0x5C, 0x95, 0xD3, 0x82, 0x02, 0x18, 0x91, 0x04, - 0x8B, 0x5E, 0xC8, 0x1C, 0xC8, 0x8E, 0x66, 0xB1, - 0xB4, 0xD8, 0x0A, 0x00, 0xB5, 0xEE, 0x66, 0xB3, - 0xC0, 0x30, 0x77, 0x49, 0xE6, 0xF2, 0x4D, 0x17, - 0x0D, 0x23, 0xFA, 0xCC, 0x8E, 0xB2, 0x53, 0xB3, - 0x56, 0x2B, 0xF8, 0xA4, 0x5C, 0x37, 0x99, 0x0C, - 0xD2, 0xD3, 0xE4, 0x43, 0xB1, 0x8C, 0x68, 0xBB, - 0xCC, 0x6C, 0x83, 0x1D, 0xFD, 0xE2, 0xF8, 0xE5 - }, - { - 0xE3, 0x74, 0x00, 0xDB, 0xD9, 0x21, 0x0F, 0x31, - 0x37, 0xAC, 0xAF, 0x49, 0x24, 0x2F, 0xA1, 0x23, - 0xA0, 0x52, 0x95, 0x8A, 0x4C, 0x0D, 0x98, 0x90, - 0x62, 0x47, 0xD5, 0x35, 0xA3, 0x51, 0xFD, 0x52, - 0x29, 0x6E, 0x70, 0x10, 0x32, 0x5B, 0xDA, 0x84, - 0x1F, 0xA2, 0xAA, 0xB4, 0x47, 0x63, 0x76, 0x3C, - 0x55, 0x04, 0xD7, 0xB3, 0x0C, 0x6D, 0x79, 0xFC, - 0x1D, 0xC8, 0xCF, 0x10, 0x24, 0x46, 0x6D, 0xB0 - }, - { - 0x52, 0x73, 0xA3, 0xA1, 0x3C, 0xF0, 0xEC, 0x72, - 0x00, 0x44, 0x2C, 0xBD, 0x7B, 0x37, 0x44, 0x66, - 0xA7, 0x19, 0x0D, 0xDC, 0xA1, 0x31, 0xD9, 0x63, - 0xF8, 0xF8, 0x39, 0x65, 0xAE, 0xD3, 0xDD, 0x86, - 0xE9, 0xD4, 0x5A, 0xB4, 0x89, 0xB9, 0xC5, 0x62, - 0x47, 0xC9, 0xF2, 0xAA, 0x69, 0xFD, 0x7E, 0x31, - 0x87, 0xB8, 0xFA, 0x0D, 0xAC, 0x77, 0xC4, 0x7C, - 0xB2, 0x95, 0xBA, 0x62, 0x96, 0x78, 0x43, 0x94 - }, - { - 0x2A, 0xDB, 0x93, 0x49, 0xA9, 0xEC, 0x37, 0xFF, - 0x49, 0x62, 0xF4, 0x21, 0x7E, 0x80, 0xEB, 0xDC, - 0xD3, 0x60, 0x96, 0x7B, 0x51, 0x3D, 0x12, 0x02, - 0xD9, 0x98, 0x28, 0x31, 0x15, 0x5D, 0x2F, 0x43, - 0xEB, 0x9A, 0xDD, 0x63, 0xB5, 0xEC, 0x10, 0xD3, - 0xD0, 0x43, 0x0D, 0xC9, 0xCF, 0x76, 0x48, 0x11, - 0x7F, 0xC6, 0x0B, 0xAB, 0xBF, 0x8E, 0xBF, 0x19, - 0xFA, 0xCE, 0xE5, 0x50, 0x45, 0x5B, 0x60, 0xC9 - }, - { - 0xAC, 0xAA, 0xDA, 0x3E, 0x47, 0x37, 0xC6, 0x63, - 0xEB, 0xF0, 0x3C, 0x02, 0x49, 0xCC, 0xA6, 0xF3, - 0x17, 0x9A, 0x03, 0x84, 0xEA, 0x2A, 0xB1, 0x35, - 0xD4, 0xD7, 0xA2, 0xBB, 0x8A, 0x2F, 0x40, 0x53, - 0x9C, 0xDC, 0xE8, 0xA3, 0x76, 0x0F, 0xD1, 0x3D, - 0xEE, 0xEC, 0xD1, 0x60, 0x61, 0x7F, 0x72, 0xDE, - 0x63, 0x75, 0x4E, 0x21, 0x57, 0xCA, 0xDC, 0xF0, - 0x67, 0x32, 0x9C, 0x2A, 0x51, 0x98, 0xF8, 0xE0 - }, - { - 0xEF, 0x15, 0xE6, 0xDB, 0x96, 0xE6, 0xD0, 0xC1, - 0x8C, 0x70, 0xAD, 0xC3, 0xCD, 0xB3, 0x2B, 0x28, - 0x67, 0x74, 0x02, 0xE8, 0xEA, 0x44, 0x11, 0xEA, - 0x2F, 0x34, 0x68, 0xED, 0x93, 0x82, 0xE1, 0x9B, - 0xFE, 0xCA, 0xF5, 0xAC, 0xB8, 0x28, 0xA5, 0x2B, - 0xE1, 0x6B, 0x98, 0x1E, 0x48, 0x7E, 0x5B, 0xB4, - 0xA1, 0x43, 0x08, 0x65, 0x35, 0x8E, 0x97, 0x9F, - 0xB1, 0x07, 0x1F, 0xB9, 0x51, 0x14, 0xFF, 0xDD - }, - { - 0x05, 0x7E, 0xAB, 0x8F, 0xA6, 0x1C, 0x23, 0x09, - 0x67, 0xD9, 0x5D, 0xFB, 0x75, 0x45, 0x57, 0x0E, - 0x34, 0x1A, 0xE3, 0xC6, 0x73, 0x7C, 0x7D, 0xB2, - 0xA2, 0x27, 0xD9, 0x0F, 0xF3, 0x15, 0xD0, 0x98, - 0xD4, 0x76, 0xF7, 0x15, 0x77, 0x9E, 0x67, 0x72, - 0xB4, 0xED, 0x37, 0x54, 0x82, 0x66, 0xE6, 0x59, - 0x8C, 0x6F, 0x09, 0x69, 0x13, 0xC2, 0xFD, 0xD8, - 0xD6, 0xE4, 0x4F, 0xE2, 0xB5, 0x4D, 0x97, 0x80 - }, - { - 0xED, 0xE6, 0x8D, 0x1B, 0x13, 0xE7, 0xEF, 0x78, - 0xD9, 0xC4, 0xEE, 0x10, 0xEC, 0xEB, 0x1D, 0x2A, - 0xEE, 0xC3, 0xB8, 0x15, 0x7F, 0xDB, 0x91, 0x41, - 0x8C, 0x22, 0x19, 0xF6, 0x41, 0x49, 0x74, 0x70, - 0x17, 0xAC, 0xA7, 0xD4, 0x65, 0xB8, 0xB4, 0x7F, - 0xFA, 0x53, 0x64, 0x4B, 0x8B, 0xC6, 0xDA, 0x12, - 0xDD, 0x45, 0xD1, 0x05, 0x5E, 0x47, 0xB4, 0xD8, - 0x39, 0x0E, 0xB2, 0xBD, 0x60, 0x2B, 0xA0, 0x30 - }, - { - 0x27, 0xF8, 0x56, 0xE6, 0x3E, 0xB9, 0x4D, 0x08, - 0xFB, 0xBE, 0x50, 0x22, 0xB0, 0xED, 0xDB, 0xC7, - 0xD8, 0xDB, 0x86, 0x5E, 0xF4, 0xFE, 0xC2, 0x05, - 0x86, 0xDF, 0x3D, 0xD9, 0x02, 0xA0, 0x5B, 0x26, - 0x35, 0x9E, 0x26, 0x7C, 0x78, 0x8D, 0x7C, 0x88, - 0x03, 0x2E, 0x76, 0x6B, 0x11, 0x87, 0x40, 0x20, - 0x0F, 0x49, 0xCB, 0x4D, 0x6E, 0xDB, 0x15, 0x61, - 0xB2, 0xDE, 0x7D, 0xC6, 0x5E, 0xE6, 0x42, 0x3B - }, - { - 0xE9, 0xE9, 0x8D, 0x6D, 0xE0, 0xEF, 0x53, 0xFD, - 0x24, 0x27, 0x66, 0x1E, 0x1A, 0xCF, 0x10, 0x3D, - 0x4C, 0xAA, 0x4D, 0xC6, 0x10, 0x03, 0x62, 0x09, - 0xEC, 0x99, 0x74, 0x19, 0xC1, 0x20, 0x63, 0x1C, - 0x2C, 0x09, 0x4A, 0x8E, 0xE7, 0x82, 0x2D, 0x43, - 0xF8, 0x77, 0x80, 0x11, 0xC6, 0x03, 0x11, 0x1F, - 0x26, 0x28, 0xF8, 0x97, 0xC9, 0xB4, 0x31, 0x31, - 0x54, 0x77, 0x75, 0x6B, 0x03, 0x2E, 0x1F, 0x8D - }, - { - 0x52, 0xEB, 0x1E, 0x6C, 0x8A, 0x54, 0x49, 0x2C, - 0xA7, 0x60, 0xB5, 0x6C, 0xA8, 0x7D, 0xA3, 0xE1, - 0xA9, 0xA6, 0xD8, 0xA4, 0x21, 0x92, 0x19, 0x35, - 0x1D, 0x18, 0x71, 0x5A, 0x9A, 0x2C, 0x26, 0x70, - 0x8B, 0xB7, 0x12, 0xCD, 0xAC, 0x04, 0x34, 0x48, - 0x2E, 0x55, 0x1C, 0xB0, 0x9E, 0x3F, 0x16, 0x33, - 0x8D, 0xE2, 0x9B, 0xE2, 0xC6, 0x67, 0x40, 0xC3, - 0x44, 0xDF, 0x54, 0x88, 0xC5, 0xC2, 0xBB, 0x26 - }, - { - 0x47, 0x3F, 0xA6, 0xC5, 0x1A, 0x48, 0x10, 0x5F, - 0x72, 0x1C, 0x5C, 0xB8, 0xDB, 0xA6, 0x1C, 0x64, - 0xA1, 0xE3, 0xDD, 0xCC, 0xC3, 0x25, 0x0E, 0x68, - 0x22, 0x62, 0xF2, 0x12, 0xC0, 0x1A, 0xB4, 0x87, - 0x4A, 0xFF, 0x68, 0x8F, 0xEA, 0x96, 0x37, 0x73, - 0x9E, 0x2A, 0x25, 0xD2, 0xEE, 0x88, 0xDB, 0xDC, - 0xC4, 0xF0, 0x4D, 0x01, 0x47, 0x9B, 0x30, 0x17, - 0x17, 0x53, 0x3A, 0x64, 0x32, 0xB8, 0x50, 0xCD - }, - { - 0x6B, 0x76, 0x60, 0xD4, 0x10, 0xEA, 0xE5, 0xF3, - 0x5A, 0xD0, 0xAE, 0x85, 0xE6, 0x3D, 0xA4, 0x53, - 0xEB, 0xB0, 0x57, 0xE4, 0x3F, 0x42, 0xE8, 0x42, - 0xCB, 0xF6, 0x25, 0x0D, 0xA6, 0x78, 0x66, 0xB4, - 0x24, 0x0D, 0x57, 0xC8, 0x3B, 0x77, 0x1B, 0x0F, - 0x70, 0x66, 0x3E, 0x17, 0xFB, 0xD9, 0x08, 0x7F, - 0x76, 0xB4, 0xCE, 0x6B, 0xCD, 0x0B, 0x50, 0x2E, - 0x33, 0x74, 0xB1, 0x50, 0x9B, 0xBA, 0x55, 0xA8 - }, - { - 0xA4, 0xD0, 0x8A, 0xCA, 0x7A, 0x9E, 0xA6, 0x43, - 0x99, 0x99, 0xEA, 0x21, 0xE4, 0xCF, 0xE9, 0x86, - 0x9B, 0xB9, 0x0E, 0x3A, 0x01, 0x48, 0x71, 0xAD, - 0x88, 0xED, 0x3A, 0x97, 0xAA, 0x89, 0x15, 0x95, - 0x1C, 0x3F, 0xD0, 0xB3, 0x93, 0x3A, 0x50, 0x85, - 0x88, 0x93, 0x8A, 0xF7, 0x54, 0x49, 0x44, 0xEF, - 0x43, 0xC4, 0x40, 0xAA, 0x8F, 0xF1, 0xE5, 0xA8, - 0x18, 0xA4, 0x66, 0x43, 0x5D, 0xE7, 0x0F, 0xA8 - }, - { - 0x85, 0xE0, 0xE9, 0xB5, 0x0D, 0x2D, 0xB0, 0x22, - 0xC2, 0x39, 0xD7, 0x23, 0x2A, 0xE4, 0x7C, 0x02, - 0x59, 0x22, 0xE4, 0xF0, 0x7E, 0x2A, 0xFC, 0x65, - 0x6C, 0xDC, 0x55, 0x53, 0xA2, 0x7D, 0x95, 0xBF, - 0xA5, 0x8A, 0x57, 0x4D, 0x4E, 0xC3, 0xA9, 0x73, - 0x28, 0x1A, 0x8F, 0x4E, 0x46, 0xA7, 0x1A, 0xB0, - 0x34, 0x1C, 0x25, 0x77, 0x28, 0x74, 0x63, 0xE2, - 0x51, 0x04, 0x4D, 0xB2, 0x39, 0x8D, 0x55, 0xE2 - }, - { - 0x81, 0xA0, 0xD0, 0x24, 0x42, 0x90, 0x51, 0x91, - 0x16, 0x33, 0x70, 0xAE, 0x29, 0xC7, 0xF8, 0x9C, - 0x0F, 0x48, 0xBC, 0x1A, 0x1E, 0xB2, 0x94, 0x70, - 0x47, 0xDA, 0x1C, 0x62, 0x2B, 0x86, 0x77, 0xE9, - 0xEA, 0x9B, 0xEC, 0xED, 0x55, 0xD3, 0x3A, 0xDB, - 0x15, 0x53, 0xBD, 0x58, 0x4A, 0xD2, 0xF8, 0x6A, - 0x62, 0x07, 0xE8, 0x4E, 0x40, 0xE4, 0x60, 0x7E, - 0x11, 0x65, 0x0E, 0xE2, 0x87, 0x9F, 0x4E, 0x0B - }, - { - 0x87, 0x79, 0x0D, 0xF6, 0xCF, 0x73, 0x94, 0x45, - 0x1B, 0xCC, 0x73, 0x0E, 0x53, 0xFC, 0x57, 0xBE, - 0x56, 0x45, 0x22, 0x77, 0x1E, 0x14, 0x43, 0x2A, - 0x80, 0xAB, 0x0B, 0x06, 0xB7, 0xB1, 0xD2, 0x09, - 0xAD, 0x69, 0x89, 0x95, 0x12, 0x53, 0x85, 0xDB, - 0x8B, 0x3C, 0x09, 0x59, 0xB8, 0xA5, 0x33, 0x9E, - 0xDA, 0x0A, 0xE6, 0x78, 0x59, 0xD8, 0x47, 0xF4, - 0x4C, 0x81, 0x59, 0x72, 0x72, 0xCB, 0xF1, 0x95 - }, - { - 0xCC, 0x06, 0x4E, 0xA8, 0x53, 0xDC, 0x01, 0x52, - 0xCC, 0x03, 0xFE, 0xB5, 0xFB, 0x5D, 0xE7, 0x8B, - 0x9B, 0x88, 0xE9, 0x61, 0x55, 0xD5, 0x35, 0x8B, - 0xCE, 0x84, 0xA5, 0x4C, 0x0E, 0x0C, 0x42, 0xFB, - 0xDA, 0x09, 0x2F, 0x22, 0xD0, 0x56, 0xDF, 0x99, - 0x93, 0x26, 0x2E, 0x2B, 0xA4, 0x4A, 0x5B, 0x2D, - 0x53, 0xC3, 0x75, 0x9D, 0x09, 0x45, 0xFE, 0xBA, - 0xA6, 0xFD, 0x51, 0xB8, 0xFF, 0x38, 0xD8, 0x39 - }, - { - 0x7E, 0x51, 0x7F, 0xC3, 0x83, 0xEE, 0x8C, 0x9F, - 0x0A, 0x01, 0x68, 0x1D, 0x39, 0xE7, 0x3B, 0xEB, - 0xA5, 0x96, 0x95, 0x95, 0xCE, 0x77, 0x92, 0x7F, - 0x91, 0x69, 0x1F, 0x33, 0xBB, 0x3E, 0x13, 0x07, - 0xEE, 0x03, 0x61, 0x6C, 0x27, 0xE6, 0x79, 0x51, - 0x86, 0xF6, 0x94, 0x0F, 0xED, 0xD9, 0xD5, 0xC7, - 0xF2, 0x1B, 0x6D, 0x2A, 0xAF, 0x70, 0x29, 0x9C, - 0xDD, 0x83, 0x51, 0x25, 0x05, 0x0A, 0x8B, 0x3C - }, - { - 0x84, 0x5F, 0xCF, 0xA6, 0x7F, 0x6E, 0x06, 0x55, - 0x10, 0xD2, 0x62, 0xF1, 0xDD, 0x69, 0x39, 0xEA, - 0x4C, 0x0A, 0x4A, 0x59, 0xC8, 0xEE, 0x39, 0x77, - 0xDB, 0x70, 0x05, 0xE1, 0xAE, 0xE4, 0x20, 0xBD, - 0x3F, 0x38, 0x26, 0xEC, 0xFE, 0x59, 0x01, 0x5B, - 0x4D, 0xFA, 0x0B, 0xD5, 0xBB, 0xF8, 0xD8, 0xA4, - 0x34, 0x48, 0x5D, 0xC1, 0x1C, 0xB9, 0xCC, 0x85, - 0x97, 0xCB, 0x8C, 0x95, 0x66, 0x11, 0x5F, 0x31 - }, - { - 0x17, 0xCF, 0x2C, 0x23, 0x21, 0x5B, 0xCD, 0xFC, - 0x24, 0x3D, 0x8A, 0x94, 0x5F, 0x3C, 0x5C, 0x25, - 0x1D, 0x27, 0x18, 0xA3, 0xF7, 0x5F, 0xED, 0x6F, - 0x33, 0x20, 0xBC, 0xC6, 0xFD, 0x92, 0x73, 0x86, - 0xD5, 0x6F, 0x87, 0x19, 0xCC, 0xA0, 0x2E, 0xC5, - 0xE9, 0x9C, 0xDA, 0xC4, 0xEA, 0x10, 0x95, 0xB4, - 0x65, 0xBA, 0x9A, 0x29, 0x8B, 0x1D, 0x23, 0x8E, - 0x38, 0xB3, 0xFA, 0x15, 0xE8, 0xB1, 0x4E, 0xE4 - }, - { - 0xD7, 0x89, 0xCE, 0xC7, 0xD7, 0x52, 0x0F, 0x10, - 0xE8, 0xB8, 0xB6, 0xC8, 0x40, 0x95, 0x89, 0xDF, - 0x57, 0xB8, 0x56, 0xB8, 0x24, 0x55, 0x68, 0xF6, - 0x4E, 0x2D, 0x21, 0x83, 0xE3, 0x59, 0xA7, 0x84, - 0xC8, 0xD2, 0x6C, 0xF9, 0xB7, 0x20, 0xF5, 0xDF, - 0x56, 0x7B, 0x01, 0xF3, 0xF4, 0x8D, 0xE6, 0x4D, - 0x4F, 0x0D, 0xB1, 0x56, 0xBE, 0x52, 0x5D, 0x7C, - 0x7A, 0x66, 0x5A, 0xAD, 0xC5, 0x91, 0xF0, 0xB6 - }, - { - 0xB5, 0xE2, 0x46, 0xA9, 0x02, 0x77, 0x10, 0xC0, - 0xB0, 0x55, 0xC7, 0x1F, 0x11, 0x67, 0xE0, 0xEE, - 0x36, 0xEB, 0xC4, 0x32, 0xCF, 0x5D, 0x14, 0x27, - 0x75, 0xA7, 0xAE, 0xCC, 0xCE, 0xA7, 0x83, 0x25, - 0xED, 0x8C, 0x12, 0xF5, 0x0F, 0xBE, 0x64, 0x8A, - 0xDD, 0xF0, 0x59, 0xB8, 0xC0, 0x2A, 0x61, 0x49, - 0x2F, 0x83, 0x57, 0xBE, 0xE1, 0x42, 0xE7, 0xF7, - 0xDE, 0x04, 0x33, 0x78, 0xDB, 0xCF, 0x2D, 0x33 - }, - { - 0xB5, 0x23, 0xFD, 0x77, 0xAB, 0x9E, 0xEE, 0x42, - 0x48, 0x72, 0xBC, 0x2E, 0x83, 0xFC, 0x0A, 0x77, - 0xFF, 0x8A, 0x90, 0xC9, 0xA0, 0xCE, 0x9E, 0x8C, - 0x87, 0x68, 0x0A, 0x0F, 0x62, 0x86, 0x33, 0x1F, - 0x15, 0xC9, 0x3A, 0x2A, 0xFE, 0xCF, 0x75, 0x66, - 0x65, 0x3F, 0x24, 0xD9, 0x30, 0xC3, 0x23, 0x19, - 0x2D, 0x30, 0x43, 0xB9, 0x05, 0x72, 0x1C, 0xBD, - 0xB6, 0x31, 0x11, 0xCA, 0x42, 0xF2, 0x8F, 0x4E - }, - { - 0x43, 0x59, 0xA4, 0x58, 0x76, 0xBF, 0x6A, 0xCC, - 0x0A, 0xEC, 0xE7, 0xB9, 0xB4, 0xB4, 0xA8, 0x38, - 0xB9, 0xDB, 0xA5, 0x77, 0x6A, 0x3B, 0x14, 0xDA, - 0x2F, 0xBA, 0x91, 0x02, 0xE7, 0x8B, 0xF6, 0x48, - 0xFF, 0xB4, 0xD8, 0x67, 0xBA, 0xE8, 0x5F, 0xD9, - 0xB7, 0x13, 0x12, 0xDC, 0x46, 0x02, 0xD0, 0xD4, - 0x9C, 0x90, 0x7B, 0xB9, 0x28, 0x9B, 0x22, 0x95, - 0x96, 0x1E, 0x54, 0x13, 0x81, 0x23, 0xF5, 0x4A - }, - { - 0xD3, 0xF2, 0xC8, 0xE7, 0x4F, 0x34, 0x3A, 0x4E, - 0x71, 0x90, 0xD4, 0x75, 0xCF, 0x9A, 0xF7, 0x54, - 0xEE, 0xD5, 0x57, 0x72, 0x62, 0xB3, 0x5B, 0xD9, - 0xA9, 0xC4, 0x2B, 0x58, 0xCE, 0x88, 0x26, 0x2E, - 0x31, 0x14, 0x91, 0x7F, 0xB9, 0xE6, 0x83, 0xC6, - 0x2D, 0x9F, 0x89, 0x47, 0xB5, 0x8A, 0x29, 0x4D, - 0xA5, 0x06, 0xFB, 0x86, 0xB3, 0xED, 0xF2, 0x5C, - 0xB9, 0xE2, 0xD2, 0xDF, 0x61, 0x1C, 0xD4, 0x48 - }, - { - 0x41, 0xB8, 0x90, 0xF8, 0xE8, 0x45, 0x0D, 0xAD, - 0xB6, 0x95, 0x9A, 0xCC, 0xBA, 0x19, 0x49, 0x17, - 0xE0, 0x2F, 0x30, 0x67, 0x82, 0x1D, 0x4E, 0x99, - 0x5A, 0x37, 0xAC, 0x18, 0xBA, 0x3E, 0x47, 0xC7, - 0x50, 0x6E, 0x7A, 0x3D, 0xD1, 0xE1, 0x12, 0xE6, - 0xEC, 0x41, 0xBE, 0xF5, 0x30, 0x85, 0x11, 0x20, - 0x89, 0x4A, 0x7B, 0x34, 0xB3, 0xDB, 0xCD, 0xAE, - 0x40, 0x73, 0x27, 0xF0, 0xC5, 0x73, 0x6E, 0xDF - }, - { - 0x19, 0xD7, 0x14, 0x4F, 0x0C, 0x85, 0x1E, 0xB8, - 0xB0, 0x53, 0xA3, 0xA4, 0x35, 0x86, 0x52, 0x6D, - 0xC5, 0xC7, 0x73, 0xE4, 0x97, 0x97, 0x51, 0x64, - 0xD1, 0x11, 0x51, 0x36, 0x43, 0x68, 0xDF, 0x24, - 0xBC, 0x44, 0xD5, 0x36, 0x07, 0x23, 0x04, 0xD7, - 0x06, 0x31, 0xA8, 0x40, 0xB6, 0x36, 0xB9, 0x66, - 0xFD, 0x02, 0x8F, 0x61, 0x06, 0x2B, 0xFC, 0x52, - 0x85, 0x67, 0x01, 0x53, 0xA6, 0x36, 0x3A, 0x0A - }, - { - 0xC2, 0x18, 0x4C, 0x1A, 0x81, 0xE9, 0x83, 0xBE, - 0x2C, 0x96, 0xE4, 0xCF, 0xD6, 0x5A, 0xFB, 0xDA, - 0x1A, 0xC6, 0xEF, 0x35, 0x26, 0x6E, 0xE4, 0xB3, - 0xAB, 0x1F, 0xB0, 0x3A, 0xBA, 0xDD, 0xFD, 0xD4, - 0x03, 0xFF, 0xFC, 0xAF, 0xB4, 0xAD, 0xE0, 0xE9, - 0x2D, 0xA3, 0x82, 0xDA, 0x8C, 0x40, 0x22, 0x2E, - 0x10, 0xE9, 0xFD, 0xE8, 0x56, 0xC5, 0x1B, 0xDA, - 0xCD, 0xE7, 0x41, 0xA6, 0x49, 0xF7, 0x33, 0x5D - }, - { - 0x48, 0x8C, 0x0D, 0x65, 0x2E, 0x42, 0xFD, 0x78, - 0xAB, 0x3A, 0x2D, 0xC2, 0x8C, 0xF3, 0xEB, 0x35, - 0xFC, 0xDD, 0xC8, 0xDE, 0xF7, 0xEA, 0xD4, 0x81, - 0x7B, 0xFF, 0xB6, 0x4C, 0x1A, 0xE0, 0xF2, 0x08, - 0xF7, 0x8C, 0xF4, 0x09, 0x76, 0xF7, 0xE2, 0xA2, - 0xCB, 0x2D, 0xD3, 0x0F, 0x1C, 0x99, 0x13, 0x02, - 0x08, 0xCE, 0xB6, 0x92, 0xC6, 0x68, 0x80, 0xD9, - 0x52, 0x8C, 0xD6, 0xD3, 0x8A, 0xD2, 0x9D, 0xB2 - }, - { - 0x51, 0x5B, 0x65, 0xBF, 0x65, 0x68, 0x83, 0x99, - 0x57, 0x5F, 0x0E, 0x06, 0x77, 0xBB, 0x6A, 0x91, - 0x9B, 0x66, 0x33, 0x55, 0x46, 0xD6, 0xCA, 0xE3, - 0x36, 0xF5, 0xC6, 0xFE, 0xAE, 0x5E, 0x2B, 0xF7, - 0x45, 0xE3, 0xA7, 0xB1, 0x3C, 0x32, 0x05, 0xDD, - 0x8B, 0x5B, 0x92, 0xCF, 0x05, 0x3B, 0xE9, 0x69, - 0xDF, 0x71, 0x20, 0xFC, 0xEF, 0x77, 0xE3, 0x89, - 0x5F, 0x56, 0x0F, 0xD2, 0x32, 0xFB, 0x89, 0x50 - }, - { - 0x3F, 0xDB, 0xC7, 0xD6, 0x9F, 0x4B, 0x53, 0xC2, - 0x25, 0x66, 0x3D, 0xA3, 0x0D, 0x80, 0xF7, 0x2E, - 0x54, 0x28, 0x10, 0x44, 0xA2, 0x2B, 0x98, 0x82, - 0xC6, 0x63, 0x8F, 0x55, 0x26, 0x83, 0x4B, 0xD3, - 0x16, 0x01, 0xCA, 0x5E, 0xB2, 0xCC, 0xA4, 0xF5, - 0xFF, 0xCF, 0x67, 0x5D, 0xCB, 0xCF, 0xCA, 0x60, - 0xC8, 0xA3, 0x61, 0x2D, 0x1A, 0xA9, 0xDA, 0xB6, - 0x93, 0xB2, 0x35, 0x60, 0x69, 0x60, 0x3A, 0x0E - }, - { - 0x4F, 0xF6, 0xC3, 0x1A, 0x8F, 0xC0, 0x01, 0xAC, - 0x3B, 0x7A, 0xE0, 0x20, 0xC5, 0xF7, 0xC4, 0x5E, - 0xFB, 0x62, 0x71, 0xA2, 0xD7, 0xCC, 0xAB, 0x87, - 0x13, 0xE5, 0x48, 0xB7, 0x29, 0xF0, 0xFF, 0xF9, - 0xC8, 0x2F, 0xD4, 0xDB, 0x5C, 0xF6, 0x56, 0x43, - 0xD4, 0x07, 0x6A, 0x3F, 0xB1, 0x7B, 0x3E, 0x89, - 0x3C, 0x30, 0x2D, 0xC7, 0x5B, 0x61, 0x22, 0xFF, - 0x86, 0x81, 0xD0, 0x37, 0x12, 0x0E, 0x27, 0x6A - }, - { - 0x43, 0xDF, 0xF2, 0x60, 0xDF, 0xEF, 0x1C, 0xB2, - 0xD6, 0x16, 0x00, 0xE2, 0x40, 0xAA, 0xD6, 0xB7, - 0x20, 0xE5, 0xF4, 0xF8, 0x30, 0x86, 0xE2, 0x6A, - 0x49, 0xA0, 0xCE, 0x3E, 0x0C, 0xA4, 0x4B, 0x9A, - 0x60, 0xFC, 0xF4, 0x6A, 0x8C, 0x3F, 0x1B, 0xB1, - 0xA6, 0xF5, 0x76, 0x2B, 0x66, 0x51, 0x3F, 0xE3, - 0xF7, 0xC5, 0xB0, 0xBC, 0x15, 0x0C, 0x08, 0x49, - 0x1A, 0xCB, 0xC4, 0x36, 0x1C, 0xAB, 0xCF, 0xDF - }, - { - 0xB4, 0xDE, 0xA9, 0x4C, 0x9D, 0x36, 0x75, 0xBE, - 0x05, 0x12, 0xEF, 0xDE, 0xA8, 0x16, 0x38, 0x70, - 0xFE, 0x34, 0x25, 0xDC, 0xD7, 0x61, 0xF3, 0x63, - 0xC4, 0x3A, 0x0C, 0xA5, 0x71, 0x6B, 0x76, 0x54, - 0x06, 0x63, 0xFB, 0x2B, 0xE4, 0x9E, 0x2D, 0xB1, - 0x06, 0x48, 0x5C, 0x9C, 0xDD, 0x3C, 0x16, 0x48, - 0x98, 0xA9, 0x54, 0xB5, 0x87, 0x48, 0xC4, 0x2F, - 0xEA, 0x16, 0xA4, 0x0F, 0xC4, 0x53, 0xD2, 0x10 - }, - { - 0xE5, 0x27, 0x7B, 0x6F, 0x93, 0xEA, 0x1D, 0xE3, - 0xE2, 0xD9, 0xFC, 0xD8, 0xC6, 0x79, 0x79, 0x3C, - 0x6C, 0xCB, 0x8A, 0x3B, 0xE2, 0x6E, 0x8E, 0x31, - 0x14, 0xF3, 0x5D, 0xA4, 0xF2, 0xAC, 0x01, 0x4F, - 0x55, 0xC2, 0xF1, 0x5E, 0x09, 0xE9, 0x4A, 0xA0, - 0x71, 0x29, 0x81, 0x67, 0xA2, 0xFB, 0x9B, 0xE3, - 0x11, 0x70, 0x1F, 0xFB, 0xA9, 0xD3, 0xEE, 0xFF, - 0x8F, 0xFC, 0x79, 0x93, 0xA3, 0xCE, 0xCE, 0x18 - }, - { - 0xF0, 0x95, 0xA7, 0xC6, 0xE2, 0xB9, 0x16, 0x64, - 0x73, 0x4F, 0x3E, 0x23, 0xF1, 0x8E, 0xB2, 0xBA, - 0x9B, 0x00, 0xE7, 0x1F, 0xBF, 0xCB, 0x99, 0x31, - 0xC0, 0xA6, 0x14, 0x79, 0x2A, 0x9D, 0x86, 0x75, - 0x62, 0x2A, 0x87, 0x4C, 0x1B, 0xF5, 0x24, 0x1A, - 0x2A, 0x87, 0x41, 0xED, 0x1C, 0x89, 0x3B, 0xDF, - 0xA8, 0xE2, 0x8C, 0x2E, 0x20, 0xBB, 0x1C, 0x58, - 0xEB, 0x4D, 0xE7, 0xD8, 0x01, 0x11, 0x6C, 0x78 - }, - { - 0xDF, 0xA1, 0xFD, 0x80, 0x3A, 0x1D, 0x4A, 0x3E, - 0x66, 0x1D, 0xF0, 0x1F, 0x49, 0x43, 0xEA, 0x66, - 0x26, 0x0A, 0x18, 0xFE, 0xCE, 0x13, 0x4D, 0x62, - 0xF9, 0x7D, 0xAC, 0xDB, 0x8B, 0x3B, 0xF9, 0xC8, - 0x00, 0xAF, 0xE5, 0x79, 0xCF, 0xD1, 0x3F, 0xC0, - 0x14, 0x8B, 0xDE, 0xFB, 0xFF, 0x4E, 0x76, 0x83, - 0x56, 0x1C, 0x06, 0xA6, 0xF7, 0x22, 0x5E, 0x47, - 0x81, 0x99, 0x3B, 0x4F, 0x4F, 0x2B, 0xCB, 0xFA - }, - { - 0x2B, 0x86, 0xCE, 0xB2, 0x70, 0xF6, 0x90, 0x8D, - 0x8B, 0x16, 0x00, 0x75, 0xEA, 0x7F, 0x57, 0x16, - 0x3A, 0xF5, 0xD5, 0xC6, 0xF8, 0xAA, 0xC5, 0x20, - 0x40, 0xCC, 0x68, 0x7C, 0x17, 0xAB, 0xF3, 0xC7, - 0x78, 0xC1, 0x39, 0x06, 0xE0, 0xE6, 0xF2, 0x9A, - 0x6A, 0xB1, 0x23, 0xDE, 0xEB, 0xCE, 0x39, 0x1F, - 0x90, 0x7D, 0x75, 0xD3, 0xA2, 0xCE, 0xFA, 0x0E, - 0xFC, 0xB8, 0x80, 0xA0, 0xE7, 0x0D, 0x71, 0x96 - }, - { - 0x32, 0x46, 0x6B, 0xCB, 0xDE, 0xD5, 0x38, 0xE5, - 0x68, 0x79, 0x54, 0x30, 0x35, 0x25, 0x36, 0xFE, - 0xB9, 0x19, 0xBF, 0x4D, 0x97, 0xCC, 0x44, 0xAB, - 0x1D, 0x80, 0x50, 0x40, 0xF4, 0xBC, 0x4C, 0x2E, - 0x79, 0x52, 0x72, 0x10, 0x18, 0x95, 0x8B, 0x4E, - 0xE7, 0x83, 0x03, 0x59, 0x0E, 0xF6, 0xAC, 0x45, - 0x0D, 0xF9, 0x2E, 0xC7, 0x7F, 0x47, 0x70, 0x54, - 0xBF, 0xF8, 0x67, 0xB8, 0x89, 0x71, 0xD4, 0x21 - }, - { - 0xEA, 0x64, 0xB0, 0x03, 0xA1, 0x35, 0x76, 0x61, - 0x21, 0xCF, 0xBC, 0xCB, 0xDC, 0x08, 0xDC, 0xA2, - 0x40, 0x29, 0x26, 0xBE, 0x78, 0xCE, 0xA3, 0xD0, - 0xA7, 0x25, 0x3D, 0x9E, 0xC9, 0xE6, 0x3B, 0x8A, - 0xCD, 0xD9, 0x94, 0x55, 0x99, 0x17, 0xE0, 0xE0, - 0x3B, 0x5E, 0x15, 0x5F, 0x94, 0x4D, 0x71, 0x98, - 0xD9, 0x92, 0x45, 0xA7, 0x94, 0xCE, 0x19, 0xC9, - 0xB4, 0xDF, 0x4D, 0xA4, 0xA3, 0x39, 0x93, 0x34 - }, - { - 0x05, 0xAD, 0x0F, 0x27, 0x1F, 0xAF, 0x7E, 0x36, - 0x13, 0x20, 0x51, 0x84, 0x52, 0x81, 0x3F, 0xF9, - 0xFB, 0x99, 0x76, 0xAC, 0x37, 0x80, 0x50, 0xB6, - 0xEE, 0xFB, 0x05, 0xF7, 0x86, 0x7B, 0x57, 0x7B, - 0x8F, 0x14, 0x47, 0x57, 0x94, 0xCF, 0xF6, 0x1B, - 0x2B, 0xC0, 0x62, 0xD3, 0x46, 0xA7, 0xC6, 0x5C, - 0x6E, 0x00, 0x67, 0xC6, 0x0A, 0x37, 0x4A, 0xF7, - 0x94, 0x0F, 0x10, 0xAA, 0x44, 0x9D, 0x5F, 0xB9 - }, - { - 0xB5, 0x45, 0x88, 0x02, 0x94, 0xAF, 0xA1, 0x53, - 0xF8, 0xB9, 0xF4, 0x9C, 0x73, 0xD9, 0x52, 0xB5, - 0xD1, 0x22, 0x8F, 0x1A, 0x1A, 0xB5, 0xEB, 0xCB, - 0x05, 0xFF, 0x79, 0xE5, 0x60, 0xC0, 0x30, 0xF7, - 0x50, 0x0F, 0xE2, 0x56, 0xA4, 0x0B, 0x6A, 0x0E, - 0x6C, 0xB3, 0xD4, 0x2A, 0xCD, 0x4B, 0x98, 0x59, - 0x5C, 0x5B, 0x51, 0xEA, 0xEC, 0x5A, 0xD6, 0x9C, - 0xD4, 0x0F, 0x1F, 0xC1, 0x6D, 0x2D, 0x5F, 0x50 - }, - { - 0xBB, 0xFB, 0x94, 0x77, 0xEC, 0x6A, 0x9F, 0x0C, - 0x25, 0x40, 0x5A, 0xCD, 0x8A, 0x30, 0xD5, 0xDD, - 0x7C, 0x73, 0x57, 0x1F, 0x1D, 0x1A, 0x6E, 0x8C, - 0xE7, 0x2F, 0x8B, 0x9C, 0x94, 0x1C, 0xF7, 0x79, - 0xB7, 0x64, 0x03, 0xAC, 0x7F, 0x04, 0x50, 0x05, - 0x25, 0x84, 0x39, 0x0A, 0x14, 0xEA, 0xA3, 0x7C, - 0x20, 0xB5, 0xBD, 0xB0, 0x38, 0x10, 0x54, 0xA9, - 0xA4, 0x95, 0x34, 0xF8, 0x14, 0x66, 0xBA, 0x9D - }, - { - 0xC8, 0x28, 0x7E, 0x93, 0x3D, 0x95, 0x04, 0xBF, - 0xFD, 0x7B, 0xE2, 0xAC, 0x02, 0x2B, 0x32, 0xF3, - 0xF4, 0x6D, 0x87, 0xA7, 0xA0, 0xE7, 0x9B, 0xB2, - 0xA1, 0xCB, 0xAA, 0xCC, 0x2E, 0x84, 0xCD, 0x70, - 0x84, 0x5D, 0x0D, 0x42, 0x78, 0x48, 0xA6, 0xD7, - 0x88, 0xD3, 0x96, 0x22, 0xE1, 0x0F, 0x43, 0x42, - 0x23, 0x7E, 0xEF, 0xA6, 0xD3, 0xC0, 0x12, 0xDA, - 0xE9, 0x6C, 0xC8, 0xA6, 0x50, 0xCC, 0x2E, 0x30 - }, - { - 0xC4, 0x59, 0x6F, 0xCB, 0x0A, 0x28, 0xD2, 0x4A, - 0xAD, 0x70, 0xCF, 0x18, 0x53, 0xEC, 0x29, 0xDA, - 0xC0, 0xFB, 0x20, 0x2D, 0x8E, 0xC1, 0x40, 0xDA, - 0x30, 0x00, 0x88, 0xBB, 0x85, 0xB9, 0x2C, 0x30, - 0x29, 0x19, 0x46, 0xAD, 0x30, 0x7C, 0x09, 0x6E, - 0x3B, 0x28, 0x66, 0x33, 0x5C, 0x93, 0x17, 0xAF, - 0xE2, 0x8C, 0xAD, 0xAB, 0x5D, 0x62, 0xC3, 0x54, - 0x32, 0x9C, 0x98, 0xD9, 0x93, 0xC5, 0xBE, 0x1C - }, - { - 0xE8, 0x8C, 0x38, 0xE6, 0x7E, 0x8D, 0x19, 0x83, - 0x58, 0x08, 0x85, 0x46, 0x70, 0x77, 0x9E, 0xCA, - 0x60, 0xBA, 0xD8, 0x54, 0xC5, 0x77, 0x87, 0x90, - 0xA0, 0x72, 0x54, 0xA3, 0x0A, 0x14, 0xAE, 0x82, - 0xB6, 0x1B, 0xB1, 0x69, 0x11, 0xFE, 0x57, 0x77, - 0x1D, 0x19, 0xE9, 0xB7, 0xF5, 0x02, 0x3C, 0x0D, - 0x4E, 0x8A, 0x8D, 0x37, 0x2E, 0x3D, 0x85, 0xE4, - 0x3B, 0x03, 0xE5, 0xE0, 0x0E, 0x6E, 0xBA, 0x4B - }, - { - 0x2D, 0x66, 0x3E, 0x03, 0xE6, 0xF3, 0x55, 0x2C, - 0xCD, 0xFB, 0xA4, 0x96, 0xA1, 0x4C, 0xC6, 0x22, - 0x4C, 0xEB, 0x1E, 0xB6, 0x1A, 0xA2, 0x65, 0xE6, - 0xA7, 0xD4, 0xA2, 0x6E, 0x54, 0x10, 0x61, 0x04, - 0xA9, 0x6E, 0x33, 0x09, 0x59, 0xF9, 0x71, 0x3B, - 0x34, 0x87, 0xC1, 0xB9, 0x49, 0x7C, 0xCF, 0x82, - 0x61, 0x1D, 0xBF, 0xA3, 0x4F, 0xF1, 0x1D, 0x31, - 0x33, 0xB5, 0xB5, 0xD1, 0xF1, 0xE4, 0xF8, 0xD0 - }, - { - 0x70, 0x7D, 0x6A, 0x58, 0x42, 0x1B, 0x8F, 0x7E, - 0x44, 0xFF, 0x1F, 0x83, 0x62, 0xBC, 0x70, 0x0F, - 0x71, 0xEF, 0x7C, 0x39, 0x35, 0xE0, 0x76, 0x4B, - 0xD1, 0x4D, 0x39, 0x0C, 0x1C, 0x72, 0x79, 0x2A, - 0xF9, 0xC2, 0xC0, 0x2F, 0xB7, 0x2A, 0x2B, 0x9D, - 0x9A, 0x07, 0x29, 0xCB, 0x3E, 0x99, 0x62, 0x6C, - 0xF0, 0x34, 0xDF, 0x54, 0xB5, 0x06, 0xB5, 0xB1, - 0x64, 0x64, 0xF4, 0x75, 0x86, 0x4F, 0x25, 0x90 - }, - { - 0x9D, 0x88, 0xF8, 0xBA, 0xA4, 0xEB, 0x0F, 0x9A, - 0xB2, 0x29, 0x2E, 0x49, 0x82, 0xAC, 0x80, 0x44, - 0x53, 0x58, 0x22, 0x7D, 0x7F, 0x9C, 0xE7, 0xA4, - 0xA6, 0x29, 0xF1, 0x80, 0xF7, 0x14, 0x1E, 0x08, - 0xFE, 0x63, 0x55, 0xC6, 0x45, 0x21, 0xA6, 0x9B, - 0xA2, 0xBF, 0xBD, 0x1C, 0x4A, 0x3E, 0xA0, 0x48, - 0xD0, 0xBC, 0x8A, 0xB3, 0x70, 0x1F, 0x30, 0xEA, - 0x83, 0xFB, 0xE0, 0x24, 0x74, 0xD8, 0x92, 0xBF - }, - { - 0x65, 0xEA, 0x4D, 0xB0, 0x4A, 0x75, 0x81, 0xC1, - 0x81, 0x94, 0xA8, 0x92, 0x1A, 0xFD, 0xFA, 0x4F, - 0x8D, 0x9A, 0xF6, 0x29, 0xDE, 0xD2, 0x77, 0x2C, - 0x65, 0x8E, 0x08, 0x48, 0x5F, 0x67, 0xAD, 0x2C, - 0xE2, 0x1A, 0x98, 0xCD, 0x29, 0x3F, 0xF2, 0x8D, - 0x4D, 0xFC, 0xDF, 0x65, 0x8C, 0xDC, 0x7A, 0xE6, - 0x70, 0x27, 0x84, 0x8E, 0x71, 0xCC, 0xC1, 0x15, - 0xA3, 0xFF, 0xBA, 0xC4, 0xFA, 0x61, 0xBB, 0x73 - }, - { - 0x0B, 0x4A, 0x68, 0x92, 0x9E, 0x7F, 0x15, 0xCA, - 0x91, 0xBB, 0x44, 0x39, 0xF2, 0x40, 0x37, 0x02, - 0x03, 0x4C, 0xD4, 0x74, 0x8E, 0x46, 0x92, 0x7A, - 0xBA, 0x95, 0xCB, 0xEF, 0x80, 0x04, 0x8B, 0x25, - 0xA6, 0x75, 0x97, 0x0F, 0xAC, 0x33, 0xC8, 0x74, - 0xAB, 0xD3, 0xD8, 0x3A, 0xA0, 0xF3, 0x7B, 0xE2, - 0x30, 0x83, 0x10, 0xE8, 0xDD, 0x79, 0x4F, 0x81, - 0x92, 0x93, 0x0E, 0xD5, 0x6E, 0x70, 0xA8, 0xE4 - }, - { - 0xC1, 0xC5, 0xD8, 0xAC, 0xFE, 0x3F, 0xDE, 0x67, - 0x4E, 0xDD, 0x36, 0x20, 0x15, 0x7A, 0x8B, 0x6B, - 0x4C, 0x8E, 0x67, 0xC6, 0xA7, 0xA9, 0x72, 0x67, - 0x41, 0xD9, 0xC3, 0x05, 0xE2, 0xA5, 0x2A, 0x87, - 0x97, 0xFD, 0xA0, 0xB2, 0xF1, 0x3A, 0xC7, 0x87, - 0x34, 0xDB, 0x2F, 0x4F, 0xC8, 0x3E, 0xF3, 0x24, - 0x14, 0xD9, 0x31, 0xEB, 0xAE, 0xAE, 0xCD, 0x82, - 0x6D, 0x7C, 0x2B, 0xE2, 0x03, 0xBD, 0xC2, 0xD1 - }, - { - 0x2D, 0xAD, 0xC8, 0xC9, 0xF7, 0x42, 0x5A, 0x01, - 0x14, 0x49, 0x12, 0x87, 0xBD, 0xC6, 0x8E, 0xAE, - 0x4F, 0xB6, 0x19, 0x4D, 0x1A, 0x10, 0x9D, 0xB9, - 0xB6, 0xE8, 0xA2, 0xAC, 0x94, 0xD4, 0xE4, 0x40, - 0x90, 0x99, 0x85, 0xC4, 0x29, 0x1F, 0xE8, 0x9F, - 0xD8, 0x28, 0x1F, 0x8F, 0xCE, 0xF6, 0xF6, 0xBC, - 0x32, 0x55, 0x0E, 0x53, 0xCB, 0x7A, 0x49, 0x42, - 0x89, 0x81, 0xE8, 0xD5, 0x3C, 0xF5, 0xA2, 0x12 - }, - { - 0xE5, 0x55, 0xF2, 0xA5, 0x8A, 0xCA, 0xC5, 0x50, - 0x3F, 0x9E, 0x2D, 0x97, 0xB2, 0x46, 0x87, 0x2B, - 0x4C, 0xA7, 0x8B, 0xD5, 0x6D, 0x47, 0xB7, 0x65, - 0xF0, 0x52, 0xAA, 0xB3, 0xDC, 0x77, 0xDB, 0xE9, - 0x93, 0x93, 0x6F, 0x22, 0x52, 0xF0, 0xAB, 0x2E, - 0x01, 0xFB, 0x08, 0x74, 0x72, 0xCC, 0xB5, 0xA1, - 0x21, 0xDD, 0xFF, 0xDE, 0x53, 0x1D, 0x3D, 0xC4, - 0x02, 0x2A, 0x7D, 0x19, 0x56, 0xCE, 0x0E, 0x20 - }, - { - 0x9B, 0x4E, 0xAE, 0x12, 0x95, 0x00, 0x0A, 0xEA, - 0x79, 0x83, 0xEC, 0x3B, 0xCB, 0x48, 0x57, 0xCC, - 0x71, 0x25, 0xFD, 0x73, 0x06, 0x78, 0x7C, 0x63, - 0x13, 0x24, 0x73, 0xCF, 0xE8, 0xF4, 0xEB, 0x45, - 0x31, 0x8A, 0x60, 0xDA, 0xAD, 0x64, 0x6D, 0x63, - 0xA2, 0x7C, 0x4B, 0x9D, 0x1F, 0x50, 0x73, 0x70, - 0x0A, 0x30, 0x57, 0xDE, 0x22, 0xA7, 0xFD, 0xF0, - 0x9A, 0x87, 0xAA, 0xC6, 0x6E, 0xBE, 0x47, 0x58 - }, - { - 0x96, 0x64, 0xAC, 0xC2, 0xDC, 0x72, 0x98, 0xB9, - 0x86, 0x8D, 0xB4, 0x95, 0xEE, 0xBC, 0x6B, 0x59, - 0x65, 0x7D, 0x13, 0x9A, 0x6A, 0xF0, 0x60, 0xA7, - 0x2F, 0xB6, 0x91, 0x24, 0xBD, 0xD3, 0xA6, 0x59, - 0x18, 0x88, 0xF0, 0x35, 0x4F, 0x70, 0x2B, 0x1B, - 0x88, 0x86, 0x84, 0x41, 0x10, 0x58, 0xA3, 0x75, - 0x9F, 0x7F, 0xD3, 0x7F, 0x06, 0xEA, 0xFB, 0x3B, - 0x58, 0xEC, 0xF2, 0x6F, 0x45, 0x53, 0xBE, 0x27 - }, - { - 0xFC, 0x16, 0xE0, 0x92, 0x5A, 0x35, 0xAA, 0xD4, - 0x7A, 0xD6, 0x95, 0x54, 0xB2, 0x57, 0x96, 0xFC, - 0xF9, 0x26, 0x0C, 0xB5, 0x0E, 0x6C, 0xC3, 0x74, - 0x75, 0x35, 0x55, 0x9E, 0x99, 0xC8, 0x58, 0x81, - 0xC7, 0x58, 0x89, 0xAC, 0x79, 0x3A, 0xB7, 0x8B, - 0x88, 0xB0, 0x5F, 0xB1, 0x60, 0x89, 0x56, 0x55, - 0xE4, 0xD6, 0x63, 0xA2, 0xA0, 0x9B, 0xA9, 0xFA, - 0x61, 0x4A, 0x10, 0xC2, 0x29, 0x47, 0x21, 0x0D - }, - { - 0x22, 0x5E, 0x73, 0x41, 0xF8, 0x57, 0x52, 0x4F, - 0x78, 0x90, 0x37, 0x6C, 0x50, 0xE6, 0x35, 0x4B, - 0x16, 0xC1, 0xCD, 0xFB, 0xF5, 0x8F, 0xE5, 0xF3, - 0xA4, 0x03, 0x94, 0x93, 0xB5, 0xDD, 0x40, 0x8D, - 0x79, 0xD4, 0x8C, 0x56, 0xE1, 0xF8, 0x9B, 0x68, - 0x7F, 0xBE, 0x33, 0x62, 0xA7, 0x7F, 0xA7, 0x5A, - 0x54, 0x37, 0x4B, 0x7A, 0x48, 0x5E, 0x91, 0xB1, - 0x89, 0xAF, 0x2E, 0x2F, 0x74, 0x9E, 0x2A, 0xDB - }, - { - 0xA0, 0x7A, 0x4C, 0x02, 0x3A, 0xC7, 0x04, 0xCE, - 0x7C, 0x09, 0xDD, 0x6C, 0x92, 0xC6, 0xF1, 0x84, - 0xF5, 0x3E, 0x8D, 0xD9, 0x6F, 0xE3, 0xBE, 0x9E, - 0x93, 0xC3, 0x9C, 0x53, 0x44, 0x85, 0xB6, 0x4B, - 0x39, 0xD5, 0xBE, 0x7F, 0x7B, 0x71, 0x70, 0x60, - 0x4D, 0xE7, 0x7C, 0xE5, 0xA4, 0x37, 0xA9, 0x8E, - 0x71, 0x2C, 0xC4, 0x4F, 0x19, 0xE2, 0x1D, 0x41, - 0xF0, 0xE6, 0xE3, 0xEC, 0x1E, 0x00, 0xAC, 0x55 - }, - { - 0x62, 0x85, 0x84, 0x63, 0x58, 0x2D, 0x22, 0xE6, - 0x8E, 0x52, 0x27, 0xBF, 0xBA, 0xB5, 0x40, 0x04, - 0x8F, 0x65, 0xED, 0xD6, 0xA6, 0x75, 0x5F, 0x6F, - 0xAB, 0x53, 0xC0, 0x25, 0xB6, 0x63, 0xCA, 0x37, - 0x7A, 0x0E, 0xD5, 0xEF, 0xD6, 0xAF, 0x16, 0x6C, - 0xA5, 0x5A, 0x9C, 0x73, 0x3F, 0xCA, 0x80, 0x5A, - 0xC4, 0xE4, 0x09, 0xCA, 0x56, 0x17, 0x7A, 0xA7, - 0x49, 0x40, 0xDB, 0x9F, 0x40, 0xC3, 0xB9, 0xFF - }, - { - 0xA1, 0xAC, 0x53, 0x9D, 0x1A, 0xBB, 0xC2, 0xB0, - 0x96, 0xFF, 0xAB, 0x81, 0x3B, 0x64, 0x45, 0x7F, - 0xE6, 0xEB, 0x3B, 0x50, 0xFC, 0xD8, 0x89, 0x53, - 0xD0, 0xCD, 0x9F, 0x65, 0x02, 0xF6, 0x89, 0x62, - 0x0A, 0xD4, 0x42, 0xB5, 0x51, 0x70, 0x90, 0xB5, - 0x0C, 0xFF, 0xB9, 0x58, 0x86, 0x6D, 0x7C, 0x16, - 0x1D, 0x8A, 0x7D, 0x75, 0x60, 0xC8, 0x93, 0xE1, - 0xDE, 0xF6, 0xAE, 0xC4, 0x37, 0xAD, 0x6D, 0x06 - }, - { - 0xB5, 0x86, 0xB7, 0x5D, 0xA7, 0x0F, 0x6C, 0xC0, - 0x62, 0x7E, 0xF3, 0xCF, 0x12, 0x37, 0xC9, 0x4B, - 0x12, 0xD0, 0xF7, 0x4D, 0xCB, 0xA2, 0x6A, 0x9E, - 0x7C, 0x7B, 0xC6, 0xC2, 0x1A, 0x33, 0x53, 0x37, - 0xBF, 0x9F, 0x5B, 0x83, 0x0C, 0x63, 0x24, 0xAF, - 0xA6, 0xEF, 0x64, 0x9E, 0x95, 0xAF, 0x87, 0x90, - 0x87, 0x52, 0x34, 0xC6, 0xE6, 0x61, 0xD3, 0xF5, - 0xE9, 0x8C, 0xA0, 0x12, 0xAE, 0x81, 0x48, 0x8A - }, - { - 0x56, 0x68, 0xA2, 0x98, 0x21, 0x37, 0xCB, 0xC6, - 0x22, 0xEF, 0x8D, 0x06, 0xCF, 0x4E, 0x86, 0x16, - 0x8C, 0xDD, 0x4A, 0x89, 0x9C, 0xD4, 0x46, 0x2A, - 0xF6, 0xC3, 0xD4, 0x15, 0x42, 0x61, 0x56, 0xA5, - 0xD8, 0xDD, 0x67, 0xC9, 0x60, 0x4F, 0x31, 0xB5, - 0x7D, 0x6C, 0x9D, 0x59, 0x72, 0x50, 0x45, 0x7E, - 0x4A, 0xB5, 0x2A, 0x58, 0x11, 0x55, 0x42, 0xAC, - 0xF2, 0x7F, 0x92, 0x59, 0x30, 0xF6, 0xA1, 0x12 - }, - { - 0xF2, 0xB1, 0xBD, 0x16, 0xD8, 0x8E, 0x37, 0xF3, - 0xA5, 0x18, 0xD1, 0x93, 0xED, 0x06, 0x1A, 0x1D, - 0xF7, 0xB4, 0x43, 0xA1, 0x8C, 0xE9, 0xF8, 0x44, - 0x45, 0xEF, 0x86, 0xEF, 0xFB, 0xDF, 0xF1, 0x60, - 0x55, 0x02, 0x3C, 0xD4, 0xE7, 0x8D, 0x03, 0x4D, - 0xE4, 0x03, 0x2A, 0x77, 0xDD, 0xC1, 0xD3, 0x43, - 0x52, 0xFE, 0x61, 0x7F, 0x82, 0x56, 0x24, 0x45, - 0x9B, 0xC3, 0x26, 0x9F, 0x70, 0x4F, 0x34, 0x5B - }, - { - 0xF0, 0x85, 0xF3, 0xD8, 0xBD, 0x13, 0x8E, 0x05, - 0x69, 0x24, 0x3F, 0x74, 0x52, 0x3E, 0x87, 0xFF, - 0x37, 0x6F, 0x04, 0xEA, 0xBD, 0x5A, 0x2F, 0x6E, - 0x53, 0xDF, 0x38, 0x99, 0x00, 0x0E, 0x2E, 0x94, - 0xAF, 0x0D, 0x2B, 0xC7, 0x1C, 0x3F, 0x71, 0x10, - 0x25, 0xC5, 0x38, 0xA6, 0xC8, 0xB1, 0x0B, 0x09, - 0x04, 0xDF, 0xC3, 0x46, 0xAD, 0xAD, 0x7E, 0xF3, - 0x6B, 0x1A, 0xE8, 0x8A, 0x6C, 0xFE, 0xAB, 0xBD - }, - { - 0x82, 0x91, 0xA4, 0xAF, 0xD2, 0xE4, 0xB7, 0x16, - 0x61, 0x77, 0x3A, 0x46, 0xB3, 0xD4, 0x45, 0x5A, - 0x8D, 0x33, 0xA7, 0x26, 0xD9, 0xD3, 0x87, 0x30, - 0x83, 0xAB, 0x33, 0x70, 0x20, 0xC2, 0x7B, 0x4D, - 0xD6, 0x43, 0xE2, 0x8C, 0x2F, 0xE4, 0x7A, 0xB2, - 0xFB, 0xF5, 0xD1, 0x40, 0x81, 0xA3, 0xFC, 0x1C, - 0x83, 0x9B, 0x12, 0xEA, 0x31, 0xD1, 0x3C, 0xF4, - 0x9E, 0xEE, 0x97, 0xEF, 0x2E, 0xD7, 0xFA, 0x3E - }, - { - 0xB1, 0x26, 0xAE, 0x46, 0xA7, 0xA4, 0x59, 0x5E, - 0x31, 0x60, 0x7E, 0xF8, 0x07, 0xA5, 0x60, 0x1F, - 0x4E, 0xCD, 0x9E, 0x7D, 0x66, 0xC8, 0x2D, 0xAE, - 0xB9, 0x71, 0x5F, 0x8D, 0xA1, 0xC1, 0x7D, 0x7D, - 0x71, 0xC3, 0xE6, 0x82, 0x50, 0xC9, 0xDC, 0x01, - 0xAC, 0x40, 0xA3, 0x6D, 0x2E, 0x63, 0x8B, 0xEF, - 0x3D, 0x7B, 0xC7, 0x0E, 0xA2, 0xD0, 0xE3, 0x31, - 0xE3, 0xD3, 0x3E, 0x17, 0x04, 0xEB, 0xA9, 0x2D - }, - { - 0x63, 0xB1, 0x4D, 0x8E, 0xD2, 0x47, 0x9C, 0xAA, - 0x17, 0xC3, 0xE4, 0xCF, 0x20, 0x3B, 0x23, 0x3A, - 0x7E, 0x37, 0x3E, 0xDB, 0x0C, 0x2F, 0x19, 0x71, - 0x29, 0xA9, 0xA3, 0x6C, 0x5B, 0x3E, 0x1F, 0x38, - 0x38, 0xF2, 0xE8, 0x2A, 0xC2, 0xC2, 0xAD, 0x9D, - 0x52, 0xB3, 0x35, 0x79, 0x0B, 0xFF, 0x57, 0x73, - 0x04, 0xA3, 0x78, 0xE3, 0x8E, 0xB6, 0xBB, 0x41, - 0x62, 0x03, 0x0C, 0xE2, 0xA8, 0xBA, 0x29, 0x3C - }, - { - 0x34, 0x42, 0x2A, 0x32, 0x29, 0x66, 0x99, 0x28, - 0xC4, 0x90, 0xF5, 0x7B, 0x8E, 0x76, 0x88, 0x52, - 0xE5, 0xB7, 0xC0, 0x0D, 0xCA, 0xD6, 0x0B, 0x01, - 0x2A, 0x5D, 0xB3, 0x9A, 0x2D, 0x59, 0x7C, 0x3D, - 0x0A, 0x63, 0xBE, 0x6A, 0x26, 0x3E, 0xA5, 0x36, - 0x08, 0xB7, 0x06, 0x92, 0xD7, 0x8E, 0x1B, 0x42, - 0x7E, 0xAC, 0xEC, 0x01, 0xF4, 0xBE, 0xE0, 0xBD, - 0xBB, 0x8F, 0x08, 0x81, 0x48, 0x8E, 0xFC, 0x28 - }, - { - 0xE2, 0x6B, 0x7E, 0xD6, 0xB9, 0x07, 0xB5, 0x4C, - 0xA2, 0x65, 0x67, 0xF1, 0x1E, 0xE5, 0xBB, 0x6D, - 0x73, 0x9A, 0x00, 0x08, 0xA5, 0x34, 0x37, 0xAD, - 0x75, 0x90, 0xA3, 0x13, 0x4C, 0xEB, 0x95, 0x19, - 0x6E, 0x49, 0xB3, 0x44, 0x3F, 0x32, 0x49, 0x22, - 0x51, 0x75, 0x23, 0xC0, 0xCD, 0x5A, 0x00, 0xD7, - 0x7E, 0x4C, 0x4D, 0xE7, 0xA0, 0xDE, 0x96, 0x8A, - 0x84, 0xFB, 0x1B, 0x3B, 0xE7, 0xB3, 0xB9, 0x63 - }, - { - 0x26, 0x01, 0x97, 0xCA, 0xFB, 0xF4, 0x56, 0xB4, - 0x11, 0xFA, 0x26, 0xD3, 0x83, 0xD6, 0x4D, 0x61, - 0xE8, 0x1E, 0x5E, 0x52, 0xF8, 0x4C, 0xD9, 0xD5, - 0x73, 0x86, 0xC7, 0x76, 0x23, 0x0C, 0x65, 0xA2, - 0x68, 0x1C, 0xD2, 0xFD, 0xFD, 0x28, 0x67, 0x9F, - 0x67, 0xFE, 0x1B, 0xD7, 0x46, 0x9C, 0xF7, 0x26, - 0x95, 0x85, 0xFC, 0xCB, 0xAE, 0xCC, 0x22, 0xF5, - 0x03, 0xD6, 0xE3, 0xFC, 0x39, 0x30, 0x14, 0x36 - }, - { - 0xCB, 0xD5, 0xAB, 0xE3, 0x7B, 0xCC, 0x4F, 0x9A, - 0x12, 0x70, 0xAD, 0xD0, 0xA5, 0x27, 0x0F, 0x42, - 0x83, 0x9C, 0x7D, 0x24, 0x93, 0x20, 0xD1, 0xF1, - 0xD8, 0x85, 0x53, 0xD0, 0x5F, 0xAF, 0x9A, 0x26, - 0x79, 0xF4, 0x9B, 0x49, 0xC9, 0xE2, 0x0C, 0x1C, - 0x85, 0xC6, 0x29, 0xAA, 0x0F, 0x09, 0x0C, 0xAE, - 0x8F, 0x6E, 0x32, 0xC6, 0xCA, 0xD7, 0x17, 0x21, - 0xFD, 0x06, 0x23, 0xE4, 0xED, 0x25, 0xB2, 0x56 - }, - { - 0x78, 0x0E, 0x31, 0x4F, 0xD6, 0x97, 0xD2, 0xA9, - 0x7D, 0x22, 0x1A, 0x22, 0xC3, 0x90, 0x11, 0xE2, - 0x50, 0x69, 0x16, 0x3C, 0xD0, 0x8F, 0x00, 0x70, - 0xD0, 0x67, 0xE8, 0xCD, 0xB0, 0xBC, 0x86, 0x73, - 0xFD, 0xB0, 0xEC, 0x4F, 0x46, 0xE3, 0x1D, 0x74, - 0x8C, 0xD3, 0xBB, 0x3D, 0x61, 0xB9, 0x01, 0x0A, - 0x66, 0x12, 0xF3, 0x41, 0xD4, 0x71, 0xD9, 0xC5, - 0xA2, 0xDE, 0x6B, 0x6D, 0xD5, 0x38, 0xA6, 0xB5 - }, - { - 0x40, 0x8F, 0x16, 0xCE, 0x86, 0xF8, 0x01, 0xD0, - 0x8B, 0xD0, 0x51, 0x36, 0x4B, 0x3E, 0xCD, 0x9A, - 0x39, 0x45, 0x71, 0x58, 0x88, 0xDF, 0x46, 0x63, - 0x21, 0x9A, 0x19, 0x0B, 0x35, 0x04, 0xE4, 0x61, - 0x8E, 0x7B, 0xF5, 0x51, 0x71, 0x17, 0x8B, 0x04, - 0x00, 0xFB, 0xEB, 0xFA, 0xA0, 0x1F, 0x6E, 0xEA, - 0xB5, 0x4F, 0xF5, 0xE3, 0x1E, 0x6D, 0x7A, 0x55, - 0xB8, 0x4A, 0xDB, 0x9E, 0x03, 0xDF, 0x48, 0x36 - }, - { - 0x0B, 0xF9, 0x88, 0x69, 0xEC, 0x05, 0x80, 0x19, - 0x9C, 0xA3, 0x70, 0x8E, 0xC9, 0xC4, 0x2C, 0x37, - 0x6C, 0x5C, 0x36, 0xE0, 0xFB, 0x74, 0x92, 0x42, - 0x57, 0x23, 0x98, 0xA0, 0xDA, 0x57, 0xF9, 0x8D, - 0x1C, 0x4C, 0xD2, 0x96, 0x3B, 0x37, 0xC3, 0xC6, - 0x5A, 0x10, 0xF1, 0x06, 0xB5, 0x6D, 0xCB, 0x96, - 0xDC, 0xDD, 0x32, 0x57, 0x96, 0x29, 0x7A, 0xDB, - 0xF6, 0xEE, 0x62, 0x70, 0xED, 0xD4, 0x59, 0x2A - }, - { - 0x05, 0x2C, 0x32, 0x98, 0x43, 0x87, 0xB1, 0x93, - 0x0D, 0x3A, 0x96, 0xBE, 0x72, 0x36, 0x85, 0x35, - 0x44, 0x4F, 0x13, 0x07, 0x57, 0xBF, 0x87, 0xE0, - 0x76, 0x2D, 0x8B, 0x1C, 0x4F, 0x65, 0x70, 0xF4, - 0xDC, 0x67, 0x4C, 0x4E, 0x6F, 0x5E, 0x21, 0xAB, - 0xD0, 0xB3, 0x5E, 0x1C, 0xA1, 0x9D, 0xB8, 0x40, - 0x68, 0x8D, 0x1B, 0x6E, 0x9E, 0xC9, 0x1F, 0x37, - 0x30, 0xE8, 0xB2, 0x88, 0x0E, 0xC2, 0xC3, 0xDF - }, - { - 0x4B, 0xB7, 0x14, 0x09, 0xC1, 0x5A, 0x0D, 0x39, - 0x32, 0xC5, 0x99, 0xEF, 0x0F, 0xF3, 0xEF, 0xF5, - 0xC7, 0x60, 0x2D, 0x70, 0x00, 0xCD, 0xA9, 0x74, - 0x08, 0x2C, 0x4A, 0x46, 0x82, 0x24, 0x9A, 0x19, - 0xD4, 0x3A, 0x5C, 0x14, 0xE0, 0xAE, 0xEF, 0x89, - 0x78, 0x21, 0x05, 0x63, 0x80, 0xAF, 0xF2, 0x75, - 0x20, 0x1D, 0x74, 0x59, 0x14, 0x84, 0x96, 0xEA, - 0xE9, 0x42, 0x0E, 0x71, 0x82, 0x88, 0xB4, 0x14 - }, - { - 0x47, 0x95, 0xB2, 0x51, 0xCC, 0x7B, 0x35, 0xE6, - 0x96, 0x92, 0xDB, 0x7F, 0xB4, 0x0E, 0xFD, 0x34, - 0xF2, 0x94, 0xF5, 0x1A, 0xEC, 0x15, 0xD6, 0xC8, - 0x67, 0x3E, 0x59, 0xF2, 0x04, 0xBE, 0xCF, 0x4C, - 0xF9, 0xDF, 0x84, 0x95, 0x23, 0xF1, 0xDB, 0x73, - 0xBE, 0x2A, 0x66, 0xC8, 0x39, 0xD8, 0x01, 0x97, - 0x4D, 0x43, 0x3B, 0x47, 0x80, 0x67, 0x01, 0xA1, - 0x63, 0xA7, 0x94, 0xB2, 0x6A, 0x84, 0x6B, 0x06 - }, - { - 0xDD, 0x50, 0xF9, 0x65, 0xB6, 0x0B, 0xAF, 0x16, - 0x8F, 0x5E, 0xA0, 0x5A, 0xC2, 0x0B, 0x8A, 0x78, - 0xF4, 0x47, 0x5C, 0x18, 0x61, 0x0B, 0x9D, 0x9F, - 0xC2, 0xB7, 0xC3, 0xAD, 0x5C, 0x6F, 0x97, 0xA4, - 0xCF, 0x5E, 0xA4, 0x8E, 0xE4, 0x0A, 0x3C, 0xA2, - 0x29, 0x3C, 0xC4, 0x21, 0x40, 0x82, 0xCF, 0x0F, - 0x8E, 0xC8, 0x95, 0x55, 0x32, 0x69, 0xE1, 0x4D, - 0xA9, 0xBD, 0x1A, 0x19, 0x65, 0x62, 0xCA, 0x59 - }, - { - 0xE0, 0xB5, 0x4B, 0x61, 0x7F, 0x44, 0x92, 0x2C, - 0x7F, 0x61, 0xC6, 0xA5, 0x4C, 0x98, 0xC6, 0x1E, - 0x93, 0x2D, 0xED, 0x1F, 0xA9, 0x34, 0x02, 0x66, - 0xEE, 0xA2, 0x5F, 0x01, 0xE8, 0x18, 0x0D, 0x1D, - 0xDC, 0x6A, 0xD8, 0xDD, 0x6A, 0x0B, 0x8F, 0xAB, - 0x8C, 0x73, 0xAE, 0xBB, 0x97, 0x73, 0x17, 0x1B, - 0xBA, 0x04, 0xA7, 0x81, 0xB1, 0x13, 0x14, 0xD5, - 0xA3, 0x0A, 0x9D, 0x1C, 0x28, 0x12, 0xCA, 0x7C - }, - { - 0x2D, 0xC4, 0xAD, 0x06, 0x89, 0xA4, 0x46, 0x0B, - 0x5B, 0x39, 0x9E, 0x91, 0x1B, 0xDB, 0x41, 0x58, - 0x6A, 0xC8, 0xAD, 0x36, 0x7B, 0x7A, 0xA3, 0x9E, - 0x3E, 0xAE, 0xC8, 0x89, 0x9A, 0x2D, 0x3C, 0xE3, - 0x8E, 0x34, 0xAB, 0x46, 0x08, 0x23, 0x4D, 0x75, - 0xEB, 0x67, 0x37, 0xFE, 0x21, 0x58, 0x24, 0xC2, - 0xA9, 0x78, 0x83, 0x59, 0x6F, 0x6F, 0x18, 0xDD, - 0xEB, 0xBF, 0x16, 0x27, 0xDE, 0xD9, 0x1D, 0x84 - }, - { - 0xF5, 0x6A, 0x11, 0xCB, 0xBF, 0x8A, 0x99, 0x7E, - 0x14, 0x77, 0xEC, 0x76, 0xE5, 0x3C, 0x89, 0x4B, - 0x14, 0x8D, 0x69, 0x25, 0xA4, 0x33, 0x6F, 0x0C, - 0xB7, 0xAA, 0xB9, 0xD8, 0x02, 0xAC, 0x9B, 0x45, - 0x36, 0xF4, 0x80, 0x10, 0x1F, 0x3F, 0x9A, 0x77, - 0xEE, 0xCD, 0xCB, 0xAE, 0x7A, 0xA6, 0xEA, 0x44, - 0x7A, 0x85, 0xDA, 0x90, 0xB5, 0x01, 0xF7, 0xDB, - 0x2E, 0xF8, 0xDD, 0xF5, 0xDE, 0x17, 0x33, 0x63 - }, - { - 0x6E, 0x17, 0x1D, 0x19, 0x6D, 0x0F, 0xC8, 0x2F, - 0xB4, 0x73, 0xE2, 0x9D, 0xA8, 0xF4, 0x0F, 0x37, - 0xEE, 0x97, 0x41, 0xAC, 0x3E, 0xAF, 0x17, 0x5D, - 0xD4, 0x9F, 0xDB, 0x56, 0x53, 0x0D, 0xB5, 0x98, - 0x98, 0xBA, 0xF3, 0xCE, 0xE7, 0x2E, 0xEF, 0x5E, - 0x77, 0x27, 0x6C, 0xAD, 0xAB, 0xCD, 0x75, 0x2C, - 0xA3, 0xA1, 0xB8, 0x64, 0xC1, 0x0A, 0xD2, 0x8D, - 0x27, 0xEA, 0xAD, 0x86, 0xE3, 0xF2, 0x1D, 0x33 - }, - { - 0x95, 0x20, 0x12, 0x33, 0x0D, 0x92, 0xBB, 0x9C, - 0x18, 0x92, 0xF2, 0x5B, 0x7B, 0x5A, 0xA0, 0xFE, - 0xD3, 0xC0, 0x39, 0x8A, 0x17, 0x08, 0x50, 0x9A, - 0x66, 0x14, 0x74, 0xA3, 0xF5, 0xE5, 0x11, 0xD0, - 0x9F, 0x21, 0xC3, 0x00, 0x08, 0x00, 0x2F, 0x10, - 0x42, 0xD8, 0x3D, 0x2F, 0x7B, 0x11, 0x33, 0x6B, - 0x8C, 0x2F, 0xE1, 0xD9, 0x79, 0xC1, 0xE3, 0x86, - 0xE0, 0x20, 0x97, 0x48, 0x9B, 0x2D, 0xFC, 0xF5 - }, - { - 0x2D, 0xCE, 0x47, 0xC3, 0x3A, 0x7E, 0x7F, 0x21, - 0x5D, 0x34, 0xA5, 0x47, 0x1B, 0xCD, 0x11, 0x10, - 0x60, 0x6C, 0x77, 0x13, 0x8F, 0x19, 0xD4, 0x17, - 0x41, 0xED, 0x5D, 0x1B, 0x89, 0xE8, 0xF7, 0xC7, - 0x74, 0xEE, 0xC4, 0xBB, 0xC1, 0x02, 0x76, 0x6E, - 0xA1, 0x53, 0x2F, 0x2E, 0x43, 0x13, 0x4A, 0xD3, - 0x66, 0xBD, 0xCC, 0x27, 0xD1, 0xA0, 0xCC, 0x95, - 0x9E, 0x16, 0x48, 0x65, 0x9E, 0x44, 0xCB, 0xBE - }, - { - 0x7F, 0x06, 0x59, 0x59, 0x7E, 0x7A, 0xD1, 0x22, - 0xD1, 0xC9, 0xED, 0x91, 0x93, 0x0B, 0x07, 0xDE, - 0x40, 0xE2, 0x55, 0x20, 0x1A, 0x33, 0xEB, 0x2B, - 0x31, 0x81, 0x37, 0x6E, 0x36, 0x8D, 0xF7, 0x76, - 0x4C, 0x0C, 0x14, 0xBF, 0x79, 0x9F, 0x16, 0x1B, - 0x9B, 0x00, 0x79, 0x57, 0x8B, 0x47, 0x09, 0x71, - 0x3E, 0x24, 0xE4, 0x2F, 0xE7, 0xDD, 0x71, 0xB5, - 0x09, 0x43, 0xF4, 0x40, 0xE2, 0x3C, 0xD1, 0xBE - }, - { - 0x1E, 0x66, 0xF7, 0xB3, 0x58, 0x80, 0x5D, 0xDD, - 0xFF, 0xC5, 0x82, 0x68, 0x3E, 0x0B, 0xAD, 0x81, - 0x8C, 0x87, 0x34, 0x03, 0xD4, 0xBA, 0x15, 0x06, - 0xB9, 0x2F, 0xB3, 0x20, 0xCA, 0x8C, 0xF9, 0xCE, - 0xE8, 0x15, 0x47, 0x15, 0xD6, 0xDB, 0x6F, 0x04, - 0x09, 0x3D, 0x4B, 0x3F, 0xD8, 0xA6, 0xFC, 0x8E, - 0x7E, 0xDD, 0xEA, 0xF2, 0x79, 0x5B, 0x3D, 0x22, - 0xDE, 0x7C, 0x75, 0xEC, 0xFF, 0x6F, 0x92, 0xAF - }, - { - 0x1F, 0x60, 0xC1, 0x8D, 0xB1, 0x68, 0xD9, 0x0D, - 0x2B, 0x46, 0x60, 0xE7, 0x58, 0xA3, 0xCD, 0x28, - 0x02, 0x3D, 0x4C, 0x0B, 0x84, 0x8B, 0x5E, 0x33, - 0xEA, 0x5C, 0xC1, 0x56, 0x29, 0xFD, 0x35, 0x2E, - 0xAC, 0xB1, 0x4F, 0x05, 0xFD, 0xEC, 0x07, 0xAC, - 0x23, 0xDA, 0x92, 0x04, 0x74, 0x5F, 0xA9, 0x73, - 0xC3, 0x29, 0x55, 0x13, 0x5F, 0x8E, 0xC7, 0x41, - 0x0A, 0x1C, 0xB5, 0x3B, 0xC7, 0x58, 0x06, 0x84 - }, - { - 0xB9, 0xDF, 0x57, 0xB3, 0x45, 0xEE, 0x6F, 0x87, - 0x0E, 0xE0, 0xE6, 0x3C, 0x55, 0x8B, 0x81, 0xC1, - 0xBC, 0x38, 0x42, 0x97, 0x6F, 0xD3, 0xCF, 0xB1, - 0xB5, 0x3B, 0x76, 0x6B, 0xF4, 0x36, 0xD1, 0xD1, - 0x75, 0xF4, 0xD4, 0xC5, 0xF1, 0xBD, 0x8D, 0x7A, - 0xF6, 0x5B, 0x5D, 0x18, 0xA7, 0x2F, 0x95, 0x71, - 0xF2, 0x34, 0x70, 0x19, 0x32, 0xAF, 0xB7, 0xC3, - 0xC9, 0x4A, 0x8C, 0x8F, 0xA0, 0x23, 0xDB, 0x4F - }, - { - 0xD8, 0xC8, 0x24, 0x95, 0xA2, 0xB5, 0xF6, 0x64, - 0x51, 0xF8, 0xC5, 0xB2, 0xE8, 0xA1, 0x73, 0x33, - 0xC2, 0xBE, 0x32, 0x20, 0xCE, 0x06, 0xA8, 0x14, - 0xC2, 0xCE, 0xA9, 0x5C, 0xC8, 0x65, 0x92, 0xAA, - 0x02, 0x15, 0xBF, 0x29, 0x46, 0x14, 0xA3, 0x28, - 0xCF, 0x07, 0x22, 0x2B, 0x73, 0xF9, 0x3F, 0x24, - 0x2A, 0x94, 0x8B, 0xCA, 0xE9, 0x56, 0x5F, 0xC9, - 0x70, 0x57, 0xB5, 0x2E, 0x02, 0x80, 0xEB, 0x82 - }, - { - 0x81, 0x34, 0xCE, 0x66, 0xD9, 0x5C, 0x40, 0x88, - 0xA5, 0x66, 0xD4, 0xE4, 0x35, 0x99, 0x06, 0x9A, - 0xD0, 0x45, 0x53, 0xB0, 0xFE, 0xA3, 0xD7, 0x48, - 0x19, 0xA6, 0xFD, 0x76, 0x6F, 0x43, 0x67, 0x42, - 0xF6, 0xB6, 0xEC, 0xC8, 0x27, 0x93, 0x98, 0x60, - 0x9F, 0x60, 0xB4, 0xE4, 0xBB, 0x44, 0xFD, 0x72, - 0xCD, 0xFB, 0xFF, 0x18, 0xD8, 0x03, 0x8A, 0xA7, - 0x12, 0x30, 0x83, 0x8B, 0x12, 0x6B, 0xC3, 0x00 - }, - { - 0x3D, 0xA8, 0x9F, 0x5C, 0x52, 0xB0, 0x52, 0xE0, - 0x42, 0xE5, 0x11, 0x7B, 0x96, 0x80, 0x6E, 0xDB, - 0x1C, 0x55, 0x22, 0x7E, 0x85, 0x14, 0xB3, 0x9E, - 0x8B, 0x22, 0xBE, 0xA4, 0xC9, 0x53, 0x30, 0x80, - 0xA4, 0xD7, 0xA9, 0x24, 0x92, 0xB7, 0x51, 0x76, - 0x9B, 0x0E, 0x11, 0x9E, 0xF4, 0xDB, 0x2B, 0xB8, - 0x8D, 0x5C, 0x1E, 0x75, 0xB4, 0x03, 0x10, 0x74, - 0xD7, 0xF2, 0x1A, 0x78, 0x01, 0x4A, 0x1F, 0x96 - }, - { - 0x9B, 0xDC, 0xB4, 0x69, 0xC2, 0x66, 0x5D, 0xD8, - 0x46, 0x83, 0xE5, 0x81, 0x01, 0xFD, 0xAE, 0x5C, - 0x88, 0x29, 0x2A, 0x4E, 0x05, 0xC4, 0x00, 0xCA, - 0x08, 0x26, 0xDA, 0x79, 0x38, 0x2B, 0x8A, 0x28, - 0x26, 0xFF, 0x24, 0xFC, 0xD5, 0x56, 0xC9, 0xD5, - 0xB5, 0xAA, 0x89, 0x2F, 0x02, 0xB1, 0x67, 0x04, - 0x77, 0x27, 0x9B, 0xD7, 0x5F, 0x1B, 0x2B, 0x7B, - 0x67, 0x5E, 0xFA, 0xC3, 0x80, 0x60, 0x70, 0x36 - }, - { - 0x6C, 0x77, 0x85, 0x7B, 0x38, 0x53, 0x3E, 0x41, - 0x4A, 0xF7, 0x38, 0x7C, 0x98, 0x56, 0x8D, 0x71, - 0xC8, 0xF0, 0xE3, 0x5E, 0x22, 0xB0, 0x2E, 0x2A, - 0x1C, 0x0D, 0xC6, 0xD5, 0x7E, 0x37, 0xD8, 0x68, - 0x72, 0x5A, 0xD8, 0x23, 0x58, 0x6A, 0x0B, 0xEE, - 0xF3, 0x98, 0x89, 0xCC, 0x31, 0xF1, 0xF7, 0xFA, - 0xD0, 0x96, 0x0A, 0x12, 0x5E, 0x29, 0xDF, 0xEA, - 0x74, 0x55, 0x12, 0xD1, 0x79, 0xE5, 0xF5, 0x89 - }, - { - 0x88, 0xC9, 0x83, 0x3A, 0x6D, 0x44, 0xFC, 0x25, - 0xBB, 0x64, 0xF3, 0xE9, 0x8E, 0x83, 0x8F, 0xB4, - 0xFF, 0x56, 0x48, 0x96, 0xDC, 0xD3, 0x58, 0x3A, - 0x8B, 0x57, 0xC9, 0x46, 0x6E, 0x74, 0x0C, 0x62, - 0x8B, 0x2D, 0x26, 0xEA, 0x14, 0x7C, 0xB3, 0x11, - 0x10, 0xFB, 0xAD, 0xCF, 0x9D, 0x01, 0x08, 0xAC, - 0xCE, 0xBE, 0x04, 0x31, 0x7D, 0x19, 0xFC, 0x03, - 0x66, 0xDE, 0x0C, 0x28, 0xA1, 0xA4, 0x5E, 0x2A - }, - { - 0x0A, 0xAB, 0xB3, 0xA1, 0x78, 0x46, 0x4A, 0x01, - 0x47, 0x64, 0x5F, 0x05, 0x71, 0x2A, 0x0A, 0x15, - 0x55, 0xC5, 0xB9, 0xA3, 0xE9, 0x99, 0xAB, 0x25, - 0x5A, 0xCA, 0x35, 0xC5, 0x03, 0x81, 0xF4, 0x90, - 0x55, 0x1A, 0x40, 0x89, 0x31, 0xAA, 0x6B, 0xE9, - 0xA4, 0xEF, 0x49, 0x7A, 0x16, 0x5B, 0x36, 0x66, - 0x3B, 0x1E, 0x1F, 0x05, 0x13, 0x48, 0x02, 0xB1, - 0x78, 0xB7, 0xC7, 0x04, 0x68, 0xCB, 0x98, 0xE8 - }, - { - 0x58, 0x50, 0xD8, 0x93, 0x70, 0x6B, 0x3B, 0xC2, - 0xDB, 0xBA, 0x9C, 0xFA, 0xB0, 0x28, 0xBE, 0xD8, - 0x19, 0xA2, 0x83, 0x11, 0xD2, 0xD6, 0xF0, 0xCD, - 0x8E, 0x27, 0x2E, 0xE6, 0x77, 0xBC, 0x87, 0x8A, - 0x0C, 0xED, 0x6C, 0x0D, 0xEA, 0x9E, 0x5C, 0xC9, - 0x4B, 0x2B, 0x4F, 0x59, 0x1A, 0x40, 0xEC, 0x9F, - 0xB1, 0x82, 0x22, 0xD6, 0xDE, 0xAC, 0xE1, 0xF9, - 0xC0, 0x83, 0xDC, 0x05, 0xDE, 0x11, 0x7A, 0x53 - }, - { - 0xBE, 0xE6, 0x96, 0xA4, 0x76, 0x4F, 0x94, 0x25, - 0xD9, 0x1B, 0x14, 0x17, 0x38, 0x62, 0x5A, 0x04, - 0x47, 0xA8, 0x22, 0xBB, 0xA7, 0xA8, 0x47, 0x78, - 0xCC, 0x3A, 0x77, 0xA3, 0x86, 0xCB, 0x18, 0x24, - 0x87, 0xDB, 0x51, 0x3B, 0xB8, 0xF3, 0x6F, 0xC2, - 0xF7, 0xE6, 0xD2, 0x89, 0x6E, 0x44, 0x56, 0xA5, - 0x23, 0x46, 0xC4, 0x94, 0x8E, 0x3E, 0xC6, 0x34, - 0xCB, 0xF1, 0x8F, 0x39, 0xC4, 0x46, 0xCB, 0xAB - }, - { - 0x3D, 0x9F, 0x75, 0xD3, 0xE5, 0x0D, 0x9B, 0xA3, - 0xBC, 0xAC, 0x4A, 0x4E, 0x11, 0x6B, 0x9B, 0x30, - 0x8D, 0xC6, 0x45, 0x99, 0xA3, 0x86, 0x4A, 0x9D, - 0xAF, 0xD7, 0x5C, 0xB7, 0x1F, 0x2D, 0xE3, 0x10, - 0x9F, 0x79, 0x56, 0xA7, 0xD2, 0xDD, 0x37, 0x4F, - 0x84, 0x06, 0xD7, 0x7F, 0x79, 0x63, 0x11, 0xE3, - 0xD3, 0x00, 0x89, 0xE5, 0x4D, 0xD6, 0xCE, 0x8A, - 0xBB, 0x02, 0xA8, 0x5A, 0x85, 0xAE, 0x92, 0xE4 - }, - { - 0xEF, 0x39, 0x51, 0x47, 0x5A, 0x16, 0xDF, 0x64, - 0x98, 0x32, 0x24, 0x04, 0x65, 0x30, 0xDC, 0x7C, - 0xB0, 0x53, 0xD2, 0x93, 0x94, 0x75, 0x39, 0x11, - 0xC4, 0x94, 0x99, 0x50, 0xF2, 0x3E, 0x8A, 0x92, - 0xC7, 0x09, 0xF4, 0x63, 0x69, 0xB2, 0x3A, 0x0D, - 0x70, 0x3A, 0x6F, 0x36, 0x49, 0x0F, 0x75, 0xBE, - 0x1E, 0x3E, 0x81, 0x29, 0xA8, 0x29, 0xF3, 0xDC, - 0xD7, 0x2D, 0x0E, 0x55, 0x49, 0x7B, 0x81, 0x33 - }, - { - 0xD4, 0x19, 0x7D, 0x2A, 0x68, 0x5B, 0xCA, 0x6B, - 0xFB, 0xDD, 0x0E, 0x3D, 0x84, 0xC7, 0x48, 0x01, - 0x35, 0x48, 0xBC, 0x84, 0x9F, 0xE6, 0x49, 0xDA, - 0xE7, 0xC4, 0xA2, 0x77, 0xFC, 0xBD, 0x8F, 0x81, - 0x8A, 0x9E, 0xDF, 0xA6, 0xCA, 0x14, 0xD7, 0xFE, - 0xEA, 0x72, 0x6B, 0x23, 0xB4, 0xA3, 0x3A, 0xA8, - 0xA3, 0xF5, 0xA6, 0x61, 0x67, 0x21, 0x5C, 0x61, - 0x48, 0xC0, 0x6B, 0x94, 0xCD, 0x8B, 0xFE, 0x37 - }, - { - 0x7A, 0x24, 0x40, 0x33, 0x35, 0xB8, 0x64, 0x10, - 0xD8, 0xD6, 0x93, 0xF1, 0x63, 0xD6, 0x19, 0x8A, - 0x68, 0x0F, 0x7E, 0x3A, 0xC0, 0x25, 0xEC, 0x44, - 0x74, 0x24, 0x9B, 0x01, 0x16, 0x77, 0xFE, 0x1C, - 0x86, 0x6A, 0xAF, 0x45, 0x3D, 0xB0, 0xE8, 0xF6, - 0x54, 0x33, 0x51, 0x50, 0x86, 0x3A, 0xCE, 0x57, - 0x66, 0x50, 0x80, 0x31, 0x91, 0x27, 0x8E, 0x9D, - 0x4B, 0x54, 0x7A, 0x43, 0x4C, 0x56, 0x54, 0xE2 - }, - { - 0xAF, 0x07, 0xC6, 0x7D, 0x58, 0x74, 0x3A, 0xEB, - 0x18, 0x50, 0xEB, 0x53, 0xB2, 0xDA, 0x78, 0xEC, - 0xF7, 0x09, 0x58, 0x18, 0x32, 0x5B, 0xEB, 0x86, - 0x6F, 0xF3, 0x13, 0xE3, 0x94, 0xC0, 0x07, 0xE0, - 0xC0, 0xB5, 0xA1, 0xCD, 0x7A, 0xE6, 0xBB, 0x37, - 0xCD, 0x27, 0x81, 0xB5, 0x2D, 0x15, 0x4D, 0x18, - 0x86, 0x5D, 0x5E, 0x37, 0xDB, 0xAA, 0x5F, 0x96, - 0x73, 0x9B, 0xF7, 0x69, 0x59, 0x96, 0xAE, 0x30 - }, - { - 0x28, 0xB3, 0xC2, 0x60, 0xFA, 0x7F, 0x23, 0xB9, - 0xCC, 0xAD, 0xD6, 0x15, 0xA1, 0x14, 0x69, 0x49, - 0x8A, 0xDB, 0x18, 0xD7, 0xA9, 0xF6, 0x84, 0xFD, - 0xE4, 0x35, 0xC0, 0x65, 0x33, 0xF5, 0xF5, 0x08, - 0xB2, 0x9B, 0x5E, 0xCD, 0x0E, 0xCD, 0x57, 0x36, - 0x9F, 0x22, 0xF1, 0xC5, 0x4E, 0x61, 0xBE, 0x6C, - 0xD1, 0x04, 0xC8, 0xF7, 0xD3, 0xE1, 0x84, 0x7A, - 0xAD, 0x67, 0x07, 0x3A, 0x47, 0x86, 0xE1, 0xDB - }, - { - 0xD6, 0x43, 0x23, 0x33, 0x25, 0x23, 0x9E, 0x2E, - 0xBD, 0x41, 0x1F, 0x0E, 0x00, 0x23, 0x30, 0x56, - 0x2E, 0xB1, 0xBB, 0x08, 0xE6, 0x88, 0x24, 0xB7, - 0x1B, 0x98, 0x19, 0x9C, 0x76, 0xD5, 0x31, 0x58, - 0xD9, 0x1D, 0xDD, 0x6F, 0x4F, 0x82, 0x61, 0xEC, - 0x1D, 0x72, 0xFC, 0x77, 0xC2, 0xCC, 0x23, 0x7E, - 0xDA, 0x15, 0xF0, 0x25, 0x7C, 0xF0, 0x7B, 0x84, - 0xCF, 0x1F, 0xBD, 0x1D, 0xBA, 0xFA, 0x1D, 0xFC - }, - { - 0x3D, 0x7B, 0x44, 0xCC, 0x82, 0xEF, 0xCA, 0xFC, - 0xAB, 0xA6, 0xB1, 0x91, 0x05, 0x48, 0x95, 0x8C, - 0x18, 0x0A, 0x0E, 0x8D, 0x84, 0xBC, 0x66, 0x3E, - 0x8E, 0xF9, 0x53, 0x3B, 0xD8, 0x0C, 0x4B, 0xBA, - 0xAA, 0x25, 0x5B, 0x19, 0x81, 0xF7, 0x56, 0xEB, - 0x10, 0x79, 0xAD, 0x0F, 0x34, 0x71, 0xA1, 0xFC, - 0x9D, 0x7A, 0x43, 0x23, 0x39, 0x30, 0x3A, 0x57, - 0x81, 0xA3, 0x45, 0x35, 0x30, 0x9E, 0x5A, 0x24 - }, - { - 0xEB, 0x08, 0x12, 0xC9, 0x67, 0x06, 0x46, 0xD5, - 0x63, 0x19, 0x8B, 0x11, 0x7A, 0xAF, 0xC5, 0x6F, - 0xA1, 0xB6, 0x56, 0x0F, 0x88, 0xB5, 0x75, 0x4E, - 0xBF, 0xC3, 0x1B, 0x35, 0x52, 0x16, 0xD8, 0xD7, - 0x4D, 0x34, 0x1E, 0x35, 0xB2, 0x43, 0xBC, 0x93, - 0x8C, 0xF5, 0x46, 0xAF, 0x1F, 0x73, 0xC1, 0xB0, - 0x04, 0x55, 0xDC, 0x06, 0xB2, 0xC6, 0xC5, 0x35, - 0x27, 0x9E, 0x87, 0x67, 0x49, 0x8F, 0x14, 0xE6 - }, - { - 0x7B, 0xBA, 0x7D, 0x73, 0x04, 0x02, 0x1C, 0x75, - 0xB5, 0xD6, 0xCE, 0x66, 0xB4, 0xEF, 0xA5, 0x50, - 0x19, 0xD9, 0x42, 0xD2, 0x08, 0xAF, 0xAC, 0x82, - 0x11, 0xAA, 0x7E, 0x5E, 0x11, 0x1E, 0x27, 0x69, - 0x76, 0x70, 0xE4, 0xEC, 0x91, 0xBA, 0x30, 0x8E, - 0xBD, 0xFB, 0x19, 0x15, 0x4C, 0x3B, 0xAD, 0x05, - 0x26, 0xA6, 0x25, 0x41, 0xAE, 0x5D, 0x43, 0xD0, - 0xF5, 0x47, 0xB9, 0xD9, 0x8E, 0x07, 0x36, 0x60 - }, - { - 0xA8, 0xE2, 0xA9, 0x46, 0x8D, 0xA3, 0xE3, 0x54, - 0x3A, 0x23, 0xA5, 0x78, 0x78, 0x0E, 0x25, 0x62, - 0xC7, 0xCE, 0x57, 0xFD, 0x11, 0x20, 0xE1, 0xC0, - 0x24, 0xD7, 0xEA, 0x32, 0x90, 0x31, 0x70, 0x46, - 0x61, 0x6E, 0x14, 0xCD, 0x0F, 0x15, 0xA8, 0x6B, - 0x99, 0x39, 0x54, 0x9B, 0x14, 0x76, 0x11, 0xB6, - 0xA5, 0x5D, 0x85, 0xAB, 0xC2, 0x5F, 0x63, 0x95, - 0x46, 0xB8, 0x9D, 0xD2, 0x3D, 0x39, 0xA9, 0x85 - }, - { - 0xCE, 0x87, 0x4C, 0xD6, 0xE1, 0x95, 0x8B, 0x9D, - 0x7F, 0x11, 0xFF, 0x44, 0xAB, 0x08, 0x32, 0xE8, - 0x48, 0x70, 0x2C, 0x8F, 0x26, 0x65, 0x6B, 0xA1, - 0x0B, 0xF5, 0x72, 0x0A, 0x7C, 0xAA, 0x1F, 0x59, - 0x08, 0xC9, 0x9A, 0x96, 0x03, 0xA9, 0x8B, 0x41, - 0x6C, 0x57, 0x22, 0x8C, 0x81, 0x9C, 0xEA, 0xF8, - 0x27, 0x01, 0x3B, 0x2E, 0x6D, 0x6B, 0x2D, 0xAE, - 0x59, 0xDF, 0xF1, 0x04, 0xB9, 0x02, 0xC3, 0x1B - }, - { - 0x30, 0xFF, 0xFE, 0x37, 0x21, 0x8D, 0xB1, 0x94, - 0xB2, 0x32, 0x73, 0x49, 0x8F, 0x45, 0x44, 0xD3, - 0x84, 0x14, 0xBE, 0xE4, 0x1B, 0x17, 0x55, 0xA0, - 0xC6, 0xC2, 0xDB, 0xCB, 0x41, 0x19, 0x42, 0xD5, - 0xEC, 0xB9, 0xD4, 0x52, 0x3F, 0xB4, 0x79, 0x4B, - 0xA3, 0x6E, 0x57, 0x9A, 0xF2, 0xF8, 0xDD, 0x85, - 0x19, 0x99, 0x23, 0x31, 0x83, 0xFA, 0xB2, 0x7B, - 0x47, 0xAD, 0xD8, 0x7D, 0xF3, 0x59, 0x14, 0xBB - }, - { - 0xCE, 0xF4, 0x43, 0x1D, 0xCE, 0x9F, 0xF5, 0x5A, - 0x00, 0x30, 0x0E, 0xC8, 0x64, 0x9E, 0x27, 0x58, - 0x36, 0x18, 0x22, 0x43, 0x69, 0xF6, 0x0A, 0x5C, - 0x89, 0x6B, 0x2A, 0x31, 0x10, 0xB0, 0x32, 0xB8, - 0x7C, 0x9E, 0xE4, 0xF2, 0x6C, 0x5F, 0x0B, 0xDB, - 0x50, 0x3E, 0xA7, 0x44, 0x7A, 0x5D, 0xB3, 0xF7, - 0x07, 0xFE, 0x34, 0x10, 0xDA, 0xCD, 0xD7, 0x57, - 0x22, 0x19, 0xBD, 0xEA, 0x8E, 0x17, 0xDC, 0x04 - }, - { - 0x8F, 0xF0, 0xBC, 0xB7, 0x5F, 0x00, 0x61, 0xB5, - 0xF9, 0x09, 0x29, 0x8F, 0x56, 0x9E, 0x45, 0xC7, - 0x5E, 0xD2, 0xD6, 0x4A, 0x81, 0x89, 0xCE, 0xBD, - 0x4E, 0x02, 0x56, 0x6E, 0x1A, 0x1B, 0x8B, 0xE5, - 0x3A, 0x78, 0x32, 0x28, 0x55, 0x8E, 0x28, 0xB5, - 0xF8, 0x7C, 0xCC, 0x2F, 0x42, 0x8F, 0x7F, 0x87, - 0x97, 0x44, 0xB5, 0x25, 0xB2, 0x49, 0x62, 0xB3, - 0x60, 0x4B, 0x12, 0x0F, 0x06, 0x77, 0x9F, 0x2E - }, - { - 0x7F, 0x8D, 0xDF, 0xFB, 0x4D, 0xC1, 0x51, 0x91, - 0xDE, 0x3D, 0xDB, 0xE4, 0xA0, 0xF8, 0x8B, 0x7A, - 0xB0, 0x2D, 0x48, 0xE2, 0x5C, 0xFC, 0x1F, 0xE9, - 0x1D, 0xA5, 0x57, 0xE8, 0x85, 0xD0, 0x12, 0xB8, - 0xF6, 0x55, 0x26, 0xC5, 0xB7, 0xB1, 0x01, 0x3F, - 0xC8, 0x16, 0x58, 0x50, 0x43, 0xA3, 0x45, 0x60, - 0x5A, 0x39, 0xD8, 0xDA, 0xD7, 0x0D, 0x8A, 0x64, - 0x48, 0x51, 0x32, 0x50, 0xAA, 0xC4, 0xF3, 0xD5 - }, - { - 0xB1, 0xFE, 0x8C, 0x68, 0xAE, 0xF6, 0xB4, 0xD4, - 0xB2, 0x33, 0x54, 0xEB, 0x8C, 0x1D, 0x8F, 0x5A, - 0x56, 0xE3, 0x2E, 0x76, 0xB9, 0x6A, 0xC8, 0x44, - 0x3B, 0x2A, 0xB8, 0x35, 0xE4, 0xC8, 0xB6, 0x74, - 0xB3, 0x3E, 0x4C, 0x6C, 0x6D, 0xC1, 0x21, 0xD7, - 0xC2, 0xD3, 0x4B, 0x59, 0xB3, 0x7A, 0x56, 0x8A, - 0x1C, 0x98, 0xD5, 0x00, 0x32, 0x4E, 0x53, 0x08, - 0x87, 0x85, 0xB6, 0xB0, 0x80, 0x63, 0x47, 0xD1 - }, - { - 0x8E, 0x87, 0x34, 0xFC, 0xF9, 0x25, 0x9E, 0xE3, - 0x7F, 0xE9, 0xC6, 0xCD, 0xA2, 0x82, 0xC2, 0xD5, - 0xEB, 0x83, 0xD0, 0xCF, 0x43, 0x9C, 0x86, 0x19, - 0xD4, 0xB0, 0x42, 0xFF, 0x69, 0x96, 0x6B, 0x03, - 0x56, 0x5B, 0xE4, 0xDF, 0x96, 0x39, 0x3F, 0xE6, - 0xBF, 0x35, 0xAF, 0xA1, 0x6E, 0x02, 0x73, 0xB6, - 0xD3, 0x39, 0xC0, 0x09, 0x95, 0xBF, 0x6F, 0x60, - 0xA7, 0x14, 0xEF, 0x18, 0x0E, 0xBB, 0x93, 0x15 - }, - { - 0xAE, 0x15, 0x6D, 0x43, 0xA7, 0x2C, 0x04, 0x29, - 0x42, 0x59, 0x58, 0x78, 0xA7, 0x83, 0x07, 0x97, - 0x60, 0xF5, 0x21, 0xED, 0xB8, 0xB2, 0xC3, 0xD4, - 0x1A, 0x56, 0x6B, 0x7C, 0xF7, 0x4A, 0x4A, 0x08, - 0xEA, 0x0F, 0x11, 0x9D, 0x24, 0x0A, 0x62, 0xEC, - 0x73, 0xB9, 0x50, 0x97, 0x88, 0xFA, 0x3A, 0xED, - 0xF1, 0x20, 0xEE, 0x88, 0xCB, 0x95, 0x1B, 0x69, - 0x3F, 0x8F, 0x7C, 0xAF, 0x8C, 0xBA, 0x37, 0x7F - }, - { - 0x93, 0x30, 0xAA, 0xCA, 0x8C, 0x08, 0x84, 0x46, - 0x58, 0xC2, 0x95, 0x06, 0xB1, 0xC3, 0x42, 0x72, - 0xE2, 0xB3, 0xC7, 0xB4, 0xE7, 0x5E, 0x6F, 0xE9, - 0x9A, 0x01, 0x07, 0xEC, 0x5D, 0xA4, 0x53, 0x0F, - 0xB1, 0xC8, 0x8C, 0xAA, 0x66, 0xDD, 0x9C, 0x47, - 0x1E, 0x01, 0xCA, 0x21, 0xA1, 0x3A, 0x5D, 0x6F, - 0x82, 0x15, 0xDE, 0xD3, 0x14, 0x7E, 0x94, 0xDE, - 0x20, 0x88, 0x57, 0x1F, 0xD1, 0xBF, 0x23, 0xB6 - }, - { - 0xC1, 0x29, 0xF2, 0x2C, 0x50, 0xF5, 0x99, 0x72, - 0x32, 0xE2, 0xB9, 0xF9, 0x3D, 0xFA, 0xA0, 0x0A, - 0xD8, 0xA5, 0x34, 0x29, 0xF9, 0xD1, 0x5B, 0x98, - 0x42, 0xE3, 0xAE, 0x08, 0xD8, 0x49, 0xEB, 0xDD, - 0x45, 0x23, 0x8C, 0x85, 0xF9, 0x2C, 0x6F, 0x91, - 0x7E, 0x0F, 0x8F, 0x6F, 0x94, 0xE2, 0x34, 0xBE, - 0x07, 0x61, 0x68, 0xE0, 0xDF, 0x43, 0xD0, 0x28, - 0x45, 0x52, 0x79, 0xA6, 0xFF, 0x65, 0xDC, 0x84 - }, - { - 0x0E, 0x2B, 0x4B, 0xC2, 0xF6, 0xA7, 0x5B, 0xE4, - 0xB7, 0xC9, 0xD4, 0xB5, 0x3D, 0x10, 0x4D, 0xA0, - 0x65, 0x85, 0x8D, 0x38, 0x7B, 0x34, 0x0B, 0xC1, - 0x63, 0x4F, 0x3A, 0x83, 0x32, 0xD5, 0x4C, 0xAA, - 0x94, 0x30, 0x24, 0xB2, 0x13, 0xDC, 0x8D, 0x4F, - 0x21, 0x9E, 0xC8, 0xE1, 0xDE, 0xCA, 0xC7, 0xD5, - 0xC6, 0xAE, 0x69, 0xC9, 0xEF, 0xD8, 0x81, 0x49, - 0x36, 0x78, 0x38, 0x20, 0x5D, 0x0D, 0xC7, 0xC0 - }, - { - 0x83, 0xB5, 0x43, 0x85, 0x3B, 0x81, 0x42, 0xA8, - 0x3B, 0xEF, 0xF0, 0x73, 0x5F, 0x20, 0x18, 0x91, - 0xE7, 0xFF, 0xC6, 0x7D, 0xBD, 0xCD, 0x21, 0xA4, - 0x22, 0xBB, 0x33, 0x6D, 0xE3, 0x29, 0x72, 0xAE, - 0x03, 0x92, 0x64, 0x6F, 0x68, 0x27, 0xD8, 0x0C, - 0xDA, 0x65, 0x4F, 0xD3, 0xA0, 0x77, 0x4C, 0xD2, - 0xF9, 0x95, 0x51, 0x7C, 0xF0, 0x64, 0xC6, 0x17, - 0xF2, 0x1A, 0x54, 0x27, 0x5F, 0xE5, 0x0C, 0x8D - }, - { - 0x09, 0xBE, 0x15, 0xEB, 0x6A, 0x5C, 0x22, 0x6F, - 0x6D, 0x95, 0x08, 0xCB, 0xA4, 0xA2, 0x51, 0x9F, - 0xBA, 0x17, 0x2A, 0xF8, 0x37, 0x58, 0x27, 0xD7, - 0x54, 0xA7, 0xA1, 0xBC, 0x19, 0x25, 0xD1, 0x3F, - 0x5E, 0x63, 0x43, 0xF3, 0xE1, 0x4D, 0x08, 0xA0, - 0x6E, 0x8D, 0x37, 0xF8, 0xEC, 0x56, 0xFB, 0x43, - 0x8E, 0x62, 0x36, 0x66, 0xB6, 0xFB, 0x0E, 0x23, - 0xFB, 0x50, 0x47, 0x7D, 0x41, 0x1B, 0x0C, 0x3A - }, - { - 0xC3, 0x57, 0x97, 0xE9, 0x83, 0x2D, 0x3E, 0x23, - 0x23, 0x33, 0x5B, 0x8C, 0x19, 0xC5, 0xFA, 0x74, - 0x91, 0x60, 0x2D, 0xBF, 0x6B, 0xEA, 0x77, 0xFA, - 0xEE, 0xC9, 0x51, 0x0B, 0xC2, 0xE8, 0x91, 0xC8, - 0xC3, 0x46, 0x21, 0x99, 0xF6, 0x04, 0x18, 0xD2, - 0xE0, 0xAB, 0xFF, 0xE3, 0x1B, 0x61, 0x3B, 0xB9, - 0x80, 0xEA, 0x32, 0xB7, 0x6C, 0x82, 0x43, 0x8D, - 0x02, 0x5F, 0x67, 0x8C, 0xAF, 0x48, 0x24, 0xA4 - }, - { - 0xCF, 0xC0, 0x57, 0xFD, 0xA7, 0x8A, 0x50, 0x31, - 0x8F, 0x49, 0x78, 0xFF, 0xFF, 0xAF, 0x77, 0x17, - 0x98, 0xE1, 0x2C, 0x3E, 0xA8, 0xC7, 0x98, 0x19, - 0x5B, 0xC5, 0xB4, 0xE6, 0x89, 0x1E, 0x61, 0xAA, - 0x25, 0xF7, 0xAF, 0x4A, 0xA7, 0x28, 0x6A, 0xC8, - 0x50, 0x76, 0x62, 0xC9, 0x07, 0xED, 0x91, 0x3E, - 0xDA, 0x65, 0x8F, 0x63, 0xFC, 0x47, 0x99, 0x7C, - 0x59, 0xB8, 0x59, 0x70, 0xF8, 0x78, 0xCA, 0x18 - }, - { - 0xD8, 0xEB, 0xE0, 0xE6, 0x38, 0xFC, 0x53, 0x5B, - 0x52, 0xCB, 0x0A, 0xFC, 0xE0, 0xF8, 0x2D, 0xDE, - 0x28, 0x57, 0x01, 0xAF, 0xF3, 0x29, 0xA5, 0x4B, - 0xA0, 0x6D, 0xFD, 0x3D, 0x1B, 0x4B, 0x31, 0xF9, - 0xF4, 0xB2, 0x4D, 0x9D, 0x68, 0x36, 0xF1, 0x22, - 0x3D, 0x6D, 0xE6, 0x6B, 0xAE, 0x78, 0x88, 0xFE, - 0xBC, 0x20, 0x40, 0xCF, 0xE9, 0x30, 0xE6, 0x9C, - 0xED, 0x59, 0xDA, 0x6D, 0xA8, 0xA0, 0xA6, 0xA6 - }, - { - 0x16, 0xB8, 0xC5, 0x5C, 0xF2, 0xF1, 0x35, 0xA4, - 0x32, 0x59, 0x0D, 0x2D, 0x4C, 0xFA, 0x38, 0x59, - 0x2F, 0x59, 0x35, 0xF8, 0xE7, 0x1C, 0xE0, 0x8A, - 0x02, 0x06, 0xA0, 0xE5, 0xAB, 0xEA, 0x90, 0xB2, - 0xE1, 0x07, 0xEB, 0x86, 0xB9, 0x18, 0x82, 0x3B, - 0xDD, 0x3B, 0xD2, 0x66, 0x07, 0x22, 0xC8, 0xDB, - 0xFA, 0x66, 0xAB, 0xB9, 0xF8, 0x63, 0x8E, 0x46, - 0x34, 0x02, 0xF6, 0x57, 0xA1, 0x68, 0x64, 0x0A - }, - { - 0x6A, 0x6E, 0x89, 0x38, 0x4F, 0x53, 0x5F, 0x02, - 0x17, 0x6C, 0x48, 0xA9, 0x93, 0xD3, 0x68, 0x7B, - 0x38, 0x9B, 0xFC, 0x03, 0x05, 0x0C, 0x77, 0x70, - 0x86, 0x35, 0x5C, 0x1A, 0x55, 0x59, 0x77, 0x42, - 0xF0, 0xB7, 0x48, 0x34, 0xA7, 0x1D, 0x05, 0x2A, - 0xE8, 0xA8, 0x3D, 0xC3, 0x4A, 0x8F, 0xD7, 0xBA, - 0x5A, 0xA6, 0x9D, 0xBD, 0x61, 0x2A, 0x4C, 0x22, - 0xDF, 0x4F, 0x74, 0xE2, 0x52, 0x8F, 0xB7, 0xA3 - }, - { - 0x1E, 0x40, 0x38, 0xCF, 0xA5, 0x0D, 0x8B, 0x13, - 0xEF, 0x68, 0xBE, 0xC3, 0xB0, 0xFF, 0xD5, 0x62, - 0xA0, 0x7A, 0xD6, 0x34, 0xB5, 0x82, 0x82, 0x57, - 0xDB, 0xA8, 0x73, 0x04, 0xF8, 0x23, 0xA9, 0x00, - 0x49, 0x2A, 0x31, 0x37, 0x19, 0x8B, 0x60, 0x5C, - 0xC7, 0xF7, 0x7C, 0x33, 0xB8, 0xCA, 0x3D, 0x94, - 0x0F, 0xD9, 0xB3, 0x38, 0xCF, 0x6B, 0x7B, 0x36, - 0xE7, 0xD9, 0xD9, 0x27, 0x20, 0x97, 0x93, 0xD0 - }, - { - 0x5B, 0xA6, 0xCD, 0x98, 0x8F, 0xF9, 0xA4, 0x81, - 0x91, 0x42, 0x21, 0x7E, 0xD6, 0x5D, 0x43, 0x7B, - 0x41, 0x3B, 0xA5, 0x02, 0x6B, 0x55, 0x4D, 0x8D, - 0x94, 0xEA, 0x27, 0x02, 0xC0, 0x96, 0xD1, 0x01, - 0x47, 0x75, 0xDB, 0xA2, 0xCA, 0xE9, 0x6F, 0x1E, - 0x2E, 0x72, 0x29, 0xC3, 0x78, 0xF2, 0x0B, 0x03, - 0x89, 0xE1, 0x19, 0x54, 0x7F, 0xDD, 0x35, 0x22, - 0x4A, 0x61, 0x7F, 0xCD, 0xCD, 0x0C, 0xB3, 0xAF - }, - { - 0x2D, 0x20, 0x96, 0x12, 0x30, 0xE2, 0x50, 0xF8, - 0x1D, 0xDC, 0xD2, 0xD2, 0xAB, 0x3E, 0xF0, 0xDA, - 0xCF, 0x96, 0x85, 0x1E, 0xBA, 0xE5, 0x96, 0x34, - 0x47, 0x19, 0x2C, 0xDB, 0x89, 0xE4, 0x8E, 0x84, - 0xF3, 0x96, 0xEC, 0x9A, 0x09, 0x25, 0x27, 0x84, - 0xE1, 0x73, 0xAD, 0xA5, 0x2A, 0x9C, 0x81, 0xAC, - 0xDA, 0xB3, 0xD8, 0xD6, 0x83, 0x80, 0x24, 0x7A, - 0xE9, 0x75, 0x23, 0x9B, 0x01, 0x7D, 0xC1, 0xCE - }, - { - 0x35, 0x38, 0x3E, 0xA7, 0x76, 0x2B, 0x55, 0x31, - 0x0A, 0x7D, 0x57, 0xFB, 0xD5, 0xA5, 0x49, 0x97, - 0x57, 0x9B, 0x0B, 0xA3, 0x9A, 0x4E, 0xB8, 0x87, - 0x94, 0x2B, 0xD1, 0x4F, 0xD8, 0x48, 0x31, 0x88, - 0xE5, 0x00, 0x48, 0x83, 0x8D, 0x6C, 0x02, 0xDC, - 0x75, 0x89, 0x59, 0xA9, 0xF7, 0x4D, 0x83, 0x37, - 0x27, 0x43, 0xE8, 0x64, 0xC6, 0x01, 0xED, 0x70, - 0x40, 0xA9, 0xE8, 0x71, 0x52, 0xD4, 0xCF, 0xFB - }, - { - 0x0B, 0x22, 0x3B, 0x6A, 0x1C, 0x2D, 0x3A, 0xB3, - 0xF9, 0x07, 0x7A, 0x31, 0x7B, 0x7F, 0xE3, 0x2F, - 0x6F, 0x95, 0x7B, 0x7B, 0x17, 0x41, 0xF2, 0x71, - 0x77, 0x71, 0x83, 0x4D, 0x37, 0x96, 0xA1, 0x9B, - 0xA3, 0x62, 0x73, 0xC9, 0xEE, 0xD6, 0x4C, 0x07, - 0xFA, 0x4E, 0x9A, 0xF7, 0xA9, 0x8A, 0xCE, 0x9C, - 0x78, 0x9A, 0x79, 0xA5, 0xA0, 0xF9, 0x4D, 0x04, - 0x05, 0xAA, 0xF0, 0x4A, 0xF3, 0x1E, 0xD7, 0x97 - }, - { - 0x5A, 0x00, 0x7F, 0x58, 0x95, 0x52, 0x4A, 0x5E, - 0x80, 0x37, 0x03, 0x6E, 0x0F, 0x26, 0x39, 0xFD, - 0xA8, 0xC5, 0xC1, 0x51, 0x2D, 0x76, 0xE9, 0xD1, - 0x9B, 0x3D, 0xD2, 0xD5, 0xBA, 0x43, 0xF5, 0x07, - 0x97, 0x41, 0xA4, 0x58, 0x31, 0x3C, 0x5E, 0x02, - 0x40, 0x0C, 0xE0, 0x2C, 0xB6, 0x56, 0x80, 0xBE, - 0x28, 0x2E, 0xAC, 0xD9, 0xA2, 0x54, 0xEF, 0x1C, - 0xDD, 0xEE, 0xBD, 0xCE, 0xE8, 0x5D, 0x41, 0x87 - }, - { - 0xBE, 0x4D, 0xD1, 0xCC, 0xBD, 0xE1, 0x67, 0x00, - 0x04, 0xD0, 0xEF, 0xAB, 0x65, 0x43, 0xE9, 0x1C, - 0x4E, 0x46, 0x64, 0xE5, 0xA2, 0xA8, 0x8B, 0xAC, - 0x6D, 0xD2, 0x7D, 0x27, 0x64, 0x8D, 0x30, 0x2A, - 0x06, 0x5B, 0xE6, 0x07, 0x8B, 0x22, 0xE4, 0xC4, - 0xAB, 0x4F, 0x7F, 0x7C, 0xBF, 0xAF, 0xC1, 0xAD, - 0x86, 0xEC, 0x2A, 0x50, 0x4F, 0xE5, 0x85, 0x17, - 0x66, 0xF7, 0xA3, 0x24, 0x47, 0x57, 0xCB, 0x6F - }, - { - 0x0F, 0xB4, 0x48, 0x3F, 0x96, 0x59, 0x29, 0x6C, - 0xB9, 0x24, 0x5B, 0x57, 0x79, 0x2A, 0x1E, 0x6A, - 0x99, 0xF2, 0x87, 0x90, 0x07, 0x72, 0x87, 0x96, - 0x8A, 0xB3, 0xEF, 0x35, 0x89, 0xE6, 0x90, 0x24, - 0x06, 0xF1, 0xF3, 0x9D, 0xCC, 0xE0, 0x06, 0x1D, - 0xEA, 0x94, 0x0F, 0xC8, 0xC1, 0xC4, 0x9F, 0x4B, - 0x54, 0x5E, 0xED, 0x59, 0xE9, 0x6D, 0xDA, 0xE9, - 0x6A, 0x6C, 0x35, 0xB5, 0x59, 0x3C, 0x29, 0x77 - }, - { - 0x41, 0xD1, 0xFA, 0xDC, 0x60, 0xA4, 0x6C, 0x9A, - 0xD0, 0x12, 0x0A, 0x3F, 0x54, 0xD0, 0x05, 0xF5, - 0xA1, 0x07, 0x5E, 0x2F, 0x71, 0xEE, 0x0D, 0xA6, - 0x18, 0xBA, 0xC1, 0x46, 0x1E, 0xFA, 0xE9, 0x69, - 0xEC, 0xCD, 0x7A, 0xA5, 0x75, 0xC4, 0xCD, 0xAE, - 0x97, 0x1D, 0xED, 0x13, 0xAE, 0x13, 0xC5, 0x06, - 0x87, 0x2C, 0xEC, 0xB5, 0xB2, 0x08, 0xFA, 0x72, - 0xA9, 0x48, 0x40, 0x02, 0x3E, 0xDB, 0x3E, 0xFE - }, - { - 0x2F, 0x7F, 0xDC, 0x1D, 0xA4, 0x4B, 0x6E, 0x5D, - 0x2D, 0xEC, 0xDE, 0x82, 0x1A, 0xAF, 0x4B, 0x49, - 0x16, 0x8C, 0x02, 0xE8, 0xD5, 0xF2, 0x5D, 0x5C, - 0x69, 0x98, 0x71, 0x08, 0x3A, 0xEB, 0xD9, 0x28, - 0xB7, 0x4D, 0xC2, 0x2D, 0xCB, 0xED, 0xFA, 0xBA, - 0x93, 0x16, 0xAE, 0xFC, 0xA8, 0x48, 0xD1, 0x5F, - 0x05, 0x17, 0x32, 0x99, 0x03, 0xD3, 0x4B, 0x83, - 0x70, 0xDD, 0xF9, 0xBD, 0x58, 0xC6, 0xD0, 0xCD - }, - { - 0x88, 0x55, 0x8A, 0x46, 0x4E, 0xE1, 0xA8, 0x80, - 0x3B, 0x23, 0x95, 0xAF, 0x6A, 0x64, 0x90, 0x84, - 0x2B, 0x5C, 0xD4, 0x3D, 0x41, 0xF6, 0xC0, 0x7C, - 0xD6, 0xC5, 0xF8, 0x5F, 0x82, 0xF5, 0x84, 0x32, - 0xA0, 0xB1, 0x62, 0xB4, 0x38, 0xBF, 0x0C, 0xB7, - 0x08, 0x2A, 0x76, 0x73, 0xE2, 0x87, 0xD6, 0xB9, - 0x0F, 0x8D, 0x0D, 0xC8, 0xAA, 0x5C, 0xEB, 0xA3, - 0x6B, 0xFA, 0x77, 0xB1, 0x5B, 0xA0, 0x69, 0x16 - }, - { - 0xEC, 0xC1, 0x49, 0x91, 0x7B, 0x26, 0x63, 0x98, - 0xB6, 0xF3, 0x29, 0x7E, 0x96, 0x96, 0x73, 0xB1, - 0x4E, 0xAE, 0x69, 0xCE, 0x43, 0x67, 0x1F, 0xD3, - 0xC6, 0xC2, 0x15, 0xC7, 0xCF, 0x42, 0xDE, 0xA1, - 0x02, 0xFC, 0x6B, 0xD9, 0x0C, 0x87, 0xDB, 0xD4, - 0x29, 0x02, 0x51, 0x12, 0x9C, 0xC1, 0x9B, 0x38, - 0xCC, 0xF0, 0x0C, 0xBD, 0xB1, 0x6D, 0xD8, 0xDE, - 0x51, 0x58, 0x60, 0x1A, 0x41, 0x6B, 0x1F, 0x00 - }, - { - 0xED, 0x30, 0x12, 0xF8, 0x9D, 0x71, 0xED, 0x13, - 0xBB, 0x82, 0x72, 0xEC, 0xDC, 0x3D, 0x0F, 0x51, - 0xE1, 0x4A, 0x37, 0xC1, 0xEF, 0x77, 0x57, 0x77, - 0x7A, 0xDA, 0x67, 0x12, 0x78, 0x4B, 0xE1, 0x6E, - 0xCF, 0xD3, 0xE6, 0x40, 0x58, 0x30, 0xF5, 0x1D, - 0xB3, 0x3D, 0xCB, 0x85, 0x52, 0x92, 0x93, 0xE2, - 0x3E, 0x47, 0x3A, 0xBF, 0x8C, 0x5C, 0x76, 0x55, - 0xD0, 0xC4, 0xF1, 0x52, 0xD0, 0x48, 0xBA, 0xB2 - }, - { - 0x09, 0x7A, 0x81, 0x19, 0x1E, 0x10, 0x05, 0x67, - 0x6D, 0x6E, 0x22, 0xA9, 0x63, 0x48, 0xFA, 0x4A, - 0x7C, 0x95, 0x61, 0xFD, 0x4D, 0x22, 0x8E, 0xB2, - 0x5F, 0x29, 0x47, 0x56, 0xBB, 0x87, 0xA2, 0xBA, - 0x88, 0x47, 0x5B, 0x03, 0x6F, 0x79, 0xFE, 0x37, - 0x3D, 0x75, 0x40, 0x87, 0x05, 0x52, 0x00, 0x1D, - 0x54, 0x79, 0x5F, 0x25, 0x92, 0x39, 0xBE, 0x6D, - 0x32, 0xC4, 0x87, 0xD1, 0x94, 0x4F, 0x1F, 0xE7 - }, - { - 0x3F, 0xC7, 0x98, 0xE4, 0x69, 0xD3, 0x90, 0x86, - 0xBA, 0x0B, 0xB4, 0x06, 0x3E, 0x80, 0x5F, 0xDF, - 0xB2, 0x20, 0x8D, 0xE4, 0x99, 0x18, 0x41, 0x73, - 0xF9, 0xA2, 0x36, 0x4D, 0x56, 0xBC, 0xD5, 0x63, - 0xED, 0x61, 0x9B, 0xB6, 0x87, 0x32, 0x24, 0x25, - 0x01, 0x4A, 0x1A, 0xAD, 0x3B, 0xCF, 0x50, 0xD2, - 0x2D, 0x83, 0xA9, 0x9D, 0x09, 0x73, 0x0A, 0x92, - 0xEC, 0x65, 0x46, 0xB3, 0xFC, 0x40, 0xA2, 0xC6 - }, - { - 0x69, 0x12, 0xB4, 0xB3, 0x41, 0xC7, 0xDD, 0x70, - 0x68, 0x37, 0x38, 0xBA, 0x0E, 0x7D, 0xEB, 0xBA, - 0xBF, 0xCA, 0x5F, 0x4F, 0xB0, 0x76, 0x0C, 0x84, - 0x97, 0x76, 0xE9, 0x20, 0x75, 0x0B, 0xF1, 0x37, - 0x89, 0xA6, 0x99, 0x97, 0x96, 0x23, 0x4E, 0x9E, - 0x24, 0x07, 0x15, 0xB2, 0x67, 0x67, 0x78, 0x2B, - 0x85, 0xA6, 0x4D, 0x68, 0x0C, 0x6D, 0x4C, 0xD4, - 0x26, 0xAD, 0x72, 0xB2, 0xFC, 0xE0, 0x81, 0xE8 - }, - { - 0xCE, 0xCD, 0x14, 0x01, 0x50, 0x15, 0x7D, 0xC9, - 0x06, 0xC0, 0xFF, 0x7F, 0x87, 0xC0, 0x08, 0x8F, - 0x31, 0x64, 0x80, 0x78, 0x3B, 0x4F, 0xE0, 0xA5, - 0x94, 0x45, 0x10, 0xC6, 0x4A, 0x87, 0xE3, 0xED, - 0x06, 0x67, 0x97, 0xA2, 0x7C, 0xE9, 0xD0, 0xF2, - 0x84, 0xDC, 0xA5, 0x18, 0x44, 0x18, 0x08, 0xAC, - 0x18, 0x29, 0x0A, 0xFD, 0xC0, 0x31, 0x29, 0x4B, - 0x31, 0xAA, 0x8B, 0x4A, 0x9F, 0xCD, 0x78, 0xF8 - }, - { - 0x2A, 0x2B, 0xED, 0x5D, 0x6A, 0xC0, 0x89, 0x28, - 0x11, 0xA4, 0x09, 0xD9, 0xF1, 0xFF, 0x63, 0x03, - 0xCC, 0xF9, 0x55, 0x44, 0x57, 0x46, 0x99, 0xCD, - 0xA7, 0xF7, 0x35, 0x03, 0x01, 0xF6, 0xD0, 0xC4, - 0xE8, 0x6E, 0x63, 0x5C, 0x80, 0x87, 0x56, 0x66, - 0xE2, 0xBB, 0x39, 0x07, 0x51, 0x0D, 0x0E, 0x72, - 0x12, 0x0F, 0x04, 0x86, 0x5E, 0xDC, 0x4C, 0x6C, - 0xEE, 0xCB, 0x44, 0x62, 0xD6, 0xAF, 0x60, 0xFB - }, - { - 0x03, 0x85, 0xAE, 0x9B, 0x73, 0x5D, 0xC5, 0x9F, - 0x30, 0x4D, 0x41, 0x4C, 0xA0, 0x43, 0x74, 0x9A, - 0xB5, 0x1A, 0xB6, 0x65, 0xEE, 0x01, 0xBE, 0x5E, - 0x52, 0xDC, 0xF7, 0x25, 0xEE, 0x7D, 0xFE, 0xFE, - 0xA6, 0xAD, 0x73, 0xF3, 0x35, 0xEE, 0xCF, 0x2A, - 0x51, 0x02, 0xE8, 0x88, 0x07, 0xFD, 0xC7, 0x5A, - 0xE6, 0xDC, 0x49, 0x0D, 0x7B, 0x8B, 0x5F, 0x11, - 0x63, 0x03, 0xEF, 0x60, 0xA5, 0xF1, 0x7C, 0x06 - }, - { - 0x0C, 0xA3, 0xFF, 0x03, 0x89, 0x65, 0xC0, 0x3B, - 0xC6, 0x5B, 0xBE, 0x2D, 0x86, 0x6C, 0xE9, 0xE0, - 0xE4, 0xE7, 0xD0, 0x3D, 0xC7, 0xF8, 0x6B, 0xA5, - 0x65, 0x0F, 0x82, 0xDD, 0xB3, 0xA9, 0xAA, 0x84, - 0x6B, 0x2B, 0x1F, 0x55, 0x3B, 0xD8, 0x9F, 0xB4, - 0xF9, 0xB6, 0x2E, 0x3C, 0x7F, 0xAF, 0x9E, 0xC3, - 0x10, 0x9F, 0xA9, 0x0E, 0xE5, 0x6C, 0x24, 0x63, - 0xE6, 0xEF, 0xD1, 0xAB, 0xAD, 0x8E, 0x28, 0xE6 - }, - { - 0x6D, 0xFD, 0x4F, 0x22, 0x18, 0x4E, 0xD0, 0x91, - 0xFD, 0x5A, 0xBA, 0x03, 0x9F, 0xCD, 0x3D, 0xB9, - 0x22, 0xF5, 0xE5, 0x9B, 0xF8, 0x38, 0xC0, 0x37, - 0x35, 0x7F, 0xAD, 0x93, 0x4B, 0x45, 0x10, 0x60, - 0x3F, 0x43, 0xA7, 0x31, 0x9F, 0xFF, 0xA6, 0x23, - 0x86, 0xF8, 0x78, 0x8F, 0xDF, 0x9D, 0xED, 0x40, - 0xC6, 0x66, 0xB4, 0xBD, 0xCA, 0x86, 0xD9, 0x32, - 0x8F, 0xE5, 0x5A, 0xD8, 0x6B, 0x37, 0x2F, 0xC8 - }, - { - 0xA3, 0x18, 0x97, 0x61, 0x02, 0x74, 0x7D, 0x80, - 0x0F, 0x58, 0x4D, 0xF6, 0x5B, 0xFB, 0x44, 0x3B, - 0x85, 0x6F, 0x00, 0x9E, 0x74, 0xF7, 0x29, 0x46, - 0xD0, 0x07, 0x6C, 0xED, 0xAC, 0x04, 0x37, 0x6F, - 0xAB, 0x97, 0x34, 0x53, 0xAD, 0xAD, 0xC3, 0x10, - 0xF7, 0x20, 0x81, 0xCB, 0xBA, 0x96, 0x26, 0x4F, - 0xFE, 0x2B, 0x21, 0xA3, 0xB1, 0x8B, 0xE9, 0xD8, - 0x8C, 0x42, 0x46, 0xCB, 0xA6, 0xD3, 0x09, 0x01 - }, - { - 0xB5, 0xE6, 0xE4, 0xFC, 0xA0, 0xCF, 0x98, 0x48, - 0xA0, 0x05, 0x89, 0xC6, 0x54, 0x57, 0xDB, 0x68, - 0xB3, 0x25, 0x3A, 0x6E, 0x17, 0x78, 0x85, 0x41, - 0x47, 0x2E, 0x1F, 0xB9, 0x48, 0x17, 0xF8, 0x04, - 0x05, 0x4D, 0x07, 0xA5, 0xD3, 0x2D, 0xFA, 0x0C, - 0xDB, 0x6F, 0xB4, 0x4E, 0xED, 0x50, 0xD2, 0x0E, - 0x5F, 0x22, 0x64, 0x36, 0x11, 0x32, 0xFA, 0x5F, - 0xCF, 0xD6, 0xE1, 0xB3, 0x67, 0xC1, 0xBE, 0x28 - }, - { - 0x2E, 0xA4, 0x57, 0x38, 0x29, 0x25, 0xE0, 0x3C, - 0xF8, 0x11, 0x10, 0x05, 0x0E, 0x63, 0x6A, 0xD6, - 0x78, 0xE0, 0xAA, 0x3C, 0xBC, 0x69, 0x00, 0xBD, - 0xEF, 0x27, 0x8A, 0xAA, 0x18, 0xF2, 0x35, 0xE2, - 0x51, 0x60, 0xA2, 0x0E, 0x23, 0xFE, 0x0E, 0x62, - 0xA8, 0x51, 0x1B, 0x5D, 0xD0, 0x59, 0x2F, 0x79, - 0xCB, 0xC8, 0xEB, 0x7D, 0xEA, 0x64, 0xAC, 0x86, - 0x67, 0x49, 0x43, 0x45, 0xC6, 0x89, 0x2D, 0xD4 - }, - { - 0x96, 0xB3, 0x49, 0x8B, 0xCC, 0xD7, 0x8B, 0x5A, - 0x40, 0x1B, 0x27, 0x38, 0x78, 0x7D, 0x28, 0xA9, - 0x8A, 0x0E, 0xDF, 0xDC, 0x7C, 0x0B, 0x5F, 0xF9, - 0x43, 0xCF, 0xE1, 0xB1, 0x4E, 0x9C, 0xF5, 0xD9, - 0xED, 0x43, 0x10, 0x7D, 0xFB, 0xDD, 0x9E, 0x97, - 0x28, 0xD5, 0xFD, 0xD6, 0xF7, 0x1F, 0xBC, 0x77, - 0x0E, 0xAD, 0xDC, 0x4F, 0x2E, 0x40, 0x9A, 0xBE, - 0x71, 0x92, 0x7B, 0xAE, 0x1F, 0x8F, 0x73, 0xD1 - }, - { - 0xCE, 0x1B, 0xFB, 0x9A, 0xFE, 0xD2, 0x8A, 0xF4, - 0xDC, 0x75, 0x35, 0xAD, 0xEF, 0x71, 0xB8, 0xF1, - 0xB8, 0x0A, 0x8D, 0x72, 0x94, 0xB4, 0x11, 0xFD, - 0x1E, 0xD3, 0x93, 0xCF, 0x23, 0x2D, 0x3A, 0x5C, - 0x5D, 0xF2, 0x3D, 0xBB, 0x1D, 0xB2, 0x6D, 0xDD, - 0xF6, 0xF7, 0x45, 0xF8, 0xBC, 0x24, 0xC3, 0x78, - 0x1F, 0x2D, 0xBB, 0xC8, 0x18, 0xA0, 0x0A, 0xE1, - 0xFB, 0x9D, 0x64, 0x63, 0xE9, 0x5F, 0x29, 0x86 - }, - { - 0xE6, 0x4D, 0x37, 0x35, 0x6B, 0x29, 0x6B, 0x36, - 0x93, 0x0E, 0xAB, 0xE4, 0x54, 0xDB, 0x11, 0xB2, - 0x09, 0x7B, 0x0C, 0x04, 0x0B, 0xED, 0x57, 0x98, - 0x87, 0x8D, 0x38, 0xA8, 0xC4, 0xD1, 0xC6, 0xF3, - 0x26, 0x1F, 0x36, 0xBF, 0xF7, 0x64, 0xE3, 0xB4, - 0xD6, 0x06, 0xB3, 0x17, 0xE5, 0xFF, 0x50, 0x04, - 0x18, 0x45, 0x92, 0xB0, 0xB7, 0xDD, 0xFB, 0x8C, - 0x2F, 0xD8, 0x35, 0x23, 0x26, 0xCD, 0xDD, 0xB1 - }, - { - 0x85, 0xE6, 0xFE, 0x54, 0xE1, 0xE7, 0x60, 0x46, - 0xAF, 0x68, 0xF5, 0xC6, 0x04, 0x4C, 0x1E, 0x3F, - 0xFF, 0x3B, 0xFC, 0xA0, 0xBA, 0xEC, 0xAE, 0xF6, - 0xA1, 0xDF, 0x90, 0x35, 0x0D, 0xF2, 0xB0, 0xBE, - 0xC6, 0xA4, 0x20, 0xEE, 0x8F, 0x49, 0xAD, 0x44, - 0x64, 0xEC, 0x4C, 0x1E, 0x7D, 0x71, 0xF6, 0x67, - 0x61, 0x4A, 0xCE, 0xBD, 0xAD, 0xA3, 0xDF, 0x32, - 0x07, 0x79, 0x07, 0x83, 0x23, 0xF6, 0xA8, 0xAF - }, - { - 0xB1, 0x2F, 0xF1, 0xEB, 0x3B, 0xAB, 0x32, 0x0D, - 0x78, 0x55, 0xB5, 0x49, 0xD7, 0x2B, 0x72, 0x47, - 0x59, 0x91, 0x68, 0x11, 0xCB, 0xCF, 0x3E, 0x1A, - 0x12, 0x82, 0x3F, 0x98, 0xB6, 0x4A, 0xB5, 0xC4, - 0x59, 0x41, 0x61, 0x0F, 0x6B, 0x47, 0x1E, 0x35, - 0xFF, 0x79, 0x28, 0x29, 0xDD, 0x5A, 0xDE, 0x51, - 0x79, 0x12, 0x57, 0x38, 0xF3, 0xF2, 0x37, 0x28, - 0x63, 0x0F, 0x1E, 0xEC, 0x57, 0x77, 0x5A, 0x19 - }, - { - 0xB4, 0xDB, 0xE7, 0x2A, 0x1E, 0x21, 0x69, 0x7A, - 0x47, 0x44, 0xBE, 0x65, 0x00, 0x0C, 0xB1, 0xBA, - 0xD3, 0x7C, 0xE2, 0x14, 0x16, 0xEE, 0x6F, 0xCE, - 0xA8, 0x4E, 0xBA, 0xF1, 0x2A, 0x59, 0xC1, 0x1D, - 0x7C, 0x08, 0x0D, 0xF9, 0x2F, 0xB2, 0xAA, 0x8F, - 0x1C, 0x4E, 0xE8, 0xE2, 0xA2, 0x2D, 0x30, 0xBE, - 0x49, 0x85, 0x82, 0xD7, 0xC5, 0xFB, 0xBA, 0x16, - 0x5A, 0x47, 0x26, 0x89, 0xAF, 0xF6, 0x01, 0xB6 - }, - { - 0x34, 0x82, 0x18, 0xBE, 0x4D, 0xE0, 0x8D, 0xFB, - 0x24, 0x5B, 0xF2, 0x52, 0x86, 0xE3, 0x66, 0x18, - 0x63, 0x1D, 0x3B, 0xDB, 0x58, 0x27, 0xD9, 0xF7, - 0x4F, 0xA0, 0x43, 0x01, 0x66, 0x11, 0x31, 0xA4, - 0xD5, 0x5C, 0x76, 0x09, 0xB1, 0xA6, 0xA0, 0x3B, - 0x85, 0x3F, 0x07, 0x33, 0xE0, 0xAE, 0xC0, 0x26, - 0x16, 0xA0, 0xA4, 0x0E, 0x84, 0x91, 0xF4, 0x94, - 0xD7, 0x6C, 0x15, 0x43, 0xCF, 0xC6, 0x82, 0x14 - }, - { - 0x42, 0x87, 0xE1, 0x9B, 0xAB, 0x1D, 0x4F, 0x75, - 0xE1, 0xD1, 0x97, 0xCB, 0xB4, 0x3F, 0x11, 0x33, - 0x13, 0x07, 0xF2, 0xF7, 0x5B, 0x8D, 0x0D, 0x50, - 0x27, 0x8E, 0xEC, 0x54, 0x09, 0x99, 0xA0, 0x09, - 0xC0, 0x33, 0x73, 0x52, 0x96, 0x07, 0xFD, 0xA6, - 0x05, 0xAA, 0x0F, 0x07, 0x39, 0xE2, 0x0B, 0xD1, - 0xFD, 0xAA, 0x27, 0xD7, 0xC0, 0xCD, 0xC8, 0x28, - 0x4D, 0x98, 0xE6, 0xC7, 0x55, 0xA7, 0x56, 0x2E - }, - { - 0x08, 0x56, 0x0C, 0x99, 0x88, 0xC8, 0xCE, 0x5A, - 0x88, 0x76, 0xA6, 0x00, 0xB6, 0xE5, 0x12, 0xB4, - 0xE2, 0x43, 0xA4, 0xA4, 0x30, 0x0A, 0xD5, 0xAB, - 0x2F, 0xF0, 0x63, 0x7C, 0xC5, 0x6A, 0x04, 0x41, - 0x64, 0x5B, 0x3D, 0xEB, 0x16, 0x84, 0x06, 0x4E, - 0xA4, 0x3B, 0xAE, 0x1C, 0xB6, 0x2D, 0x3B, 0xC4, - 0x15, 0x37, 0xFE, 0x8D, 0x7D, 0xEC, 0xA7, 0x17, - 0x29, 0x37, 0x77, 0x6B, 0xBE, 0xD7, 0x93, 0xA9 - }, - { - 0xB5, 0x36, 0x16, 0x23, 0x94, 0x77, 0x6F, 0xA7, - 0xDD, 0x5E, 0x9F, 0xDD, 0x01, 0x53, 0x0F, 0xDA, - 0x52, 0xBE, 0x1D, 0x39, 0xBD, 0x60, 0x9B, 0x3F, - 0x3B, 0xD0, 0x47, 0x6B, 0x81, 0x60, 0xAA, 0x18, - 0xAB, 0x2D, 0x37, 0xD2, 0x99, 0x16, 0x28, 0xBE, - 0x2F, 0xCC, 0x12, 0x56, 0xCD, 0x48, 0x55, 0x25, - 0xD1, 0xFA, 0x35, 0x6B, 0x04, 0xD3, 0x0E, 0x4A, - 0x0F, 0x9F, 0xFF, 0xC9, 0x93, 0x5C, 0xF4, 0x32 - }, - { - 0x02, 0xAB, 0xC9, 0x71, 0x75, 0xED, 0xB4, 0x7A, - 0x4C, 0xB4, 0xBD, 0x38, 0xD8, 0x2F, 0x86, 0xAA, - 0x09, 0x9C, 0x8B, 0x8F, 0xA8, 0xAB, 0x3F, 0xE1, - 0xCE, 0x10, 0x5A, 0x22, 0xBD, 0x61, 0x65, 0x78, - 0xC6, 0xDD, 0x15, 0x15, 0xDF, 0xB0, 0x39, 0x7E, - 0x1D, 0x9D, 0x06, 0x71, 0x91, 0x6D, 0xE4, 0xB5, - 0x22, 0xE7, 0x4E, 0x63, 0x75, 0x23, 0x68, 0x93, - 0xC8, 0xFD, 0xA6, 0xD2, 0x36, 0xBC, 0x8D, 0xA1 - }, - { - 0x21, 0xE1, 0xEB, 0x73, 0x12, 0x76, 0xA8, 0x35, - 0xA6, 0xDD, 0xEA, 0x71, 0x78, 0xB2, 0x3E, 0xBC, - 0x9A, 0xEC, 0xAA, 0xBC, 0x7C, 0xCD, 0x70, 0x65, - 0x87, 0xD7, 0x1B, 0x85, 0x44, 0x97, 0x93, 0xB0, - 0x7E, 0x7B, 0x17, 0x9A, 0x3D, 0xA7, 0xA5, 0x71, - 0x98, 0x29, 0x97, 0xE8, 0xF5, 0xA6, 0x7F, 0x8C, - 0x93, 0xDA, 0xF1, 0x1A, 0xAA, 0x23, 0xF0, 0x7E, - 0x4D, 0xF7, 0xA1, 0x31, 0x05, 0xA5, 0x42, 0x09 - }, - { - 0x1C, 0xC5, 0x37, 0xD3, 0xE5, 0x0E, 0xD9, 0xFD, - 0xCD, 0xC4, 0xF3, 0xCC, 0xB4, 0x81, 0x93, 0x75, - 0x41, 0x53, 0x04, 0xD8, 0xE5, 0xA6, 0xC0, 0x58, - 0x05, 0xB6, 0xB5, 0xD9, 0xE1, 0xFC, 0x18, 0x25, - 0x68, 0x64, 0xF1, 0x0C, 0xD8, 0x12, 0xF8, 0x48, - 0x01, 0xB8, 0x61, 0x6A, 0x92, 0xB4, 0x07, 0x95, - 0xA1, 0x55, 0x93, 0x24, 0x64, 0xF6, 0x2D, 0xBF, - 0x6E, 0xBD, 0x2F, 0x9A, 0xC3, 0xEE, 0x28, 0x16 - }, - { - 0x6F, 0x6C, 0xD2, 0x60, 0x05, 0xC8, 0xA5, 0x61, - 0xCF, 0xF5, 0x1E, 0x30, 0x1D, 0x1A, 0x06, 0x8F, - 0xC2, 0x8B, 0x9B, 0x65, 0x0D, 0xDD, 0x27, 0xAE, - 0x97, 0xB5, 0x22, 0xDA, 0xE9, 0x63, 0x91, 0x34, - 0xD5, 0xA1, 0x50, 0x58, 0x7B, 0x0A, 0x90, 0x1F, - 0x3B, 0x9A, 0xAB, 0xC7, 0xE3, 0x97, 0x84, 0x98, - 0x4C, 0xC5, 0x85, 0x23, 0x5D, 0x8E, 0x17, 0xCE, - 0x9E, 0x3B, 0x42, 0x10, 0x5B, 0xF9, 0x03, 0x4C - }, - { - 0x69, 0xC1, 0x7C, 0x28, 0x64, 0xC3, 0x37, 0x9F, - 0xAF, 0xB7, 0x14, 0xC0, 0x47, 0x5E, 0x00, 0xCF, - 0x7C, 0x9B, 0x37, 0x7D, 0x57, 0xA8, 0xBC, 0x96, - 0x98, 0xB4, 0xD3, 0x4A, 0x54, 0x85, 0x41, 0x76, - 0xA2, 0xF8, 0xD1, 0x5A, 0xFB, 0x54, 0x77, 0x56, - 0x04, 0x78, 0x73, 0x90, 0xD6, 0x00, 0x74, 0xCD, - 0x4B, 0xCA, 0x69, 0x02, 0xEA, 0x23, 0xD3, 0xAE, - 0x1A, 0xC0, 0x83, 0x40, 0x9F, 0xE3, 0x8A, 0x4D - }, - { - 0x86, 0x69, 0xB0, 0xAD, 0x35, 0x82, 0x9E, 0xDC, - 0x2A, 0x8A, 0x09, 0x85, 0x2B, 0x0E, 0xE9, 0xB3, - 0x90, 0x3B, 0xF6, 0xC1, 0xF8, 0x2F, 0x90, 0xA3, - 0xF0, 0xED, 0x95, 0x24, 0x19, 0x2F, 0x10, 0x91, - 0xFD, 0x64, 0x84, 0xE0, 0x4C, 0x3F, 0xEA, 0x8B, - 0x02, 0x2F, 0x4A, 0x89, 0x50, 0xDB, 0x17, 0xD4, - 0x73, 0x41, 0x45, 0xC0, 0xCE, 0xC5, 0xDC, 0x38, - 0x74, 0x55, 0xC1, 0x26, 0x90, 0x3F, 0x77, 0x66 - }, - { - 0x3F, 0x35, 0xC4, 0x5D, 0x24, 0xFC, 0xFB, 0x4A, - 0xCC, 0xA6, 0x51, 0x07, 0x6C, 0x08, 0x00, 0x0E, - 0x27, 0x9E, 0xBB, 0xFF, 0x37, 0xA1, 0x33, 0x3C, - 0xE1, 0x9F, 0xD5, 0x77, 0x20, 0x2D, 0xBD, 0x24, - 0xB5, 0x8C, 0x51, 0x4E, 0x36, 0xDD, 0x9B, 0xA6, - 0x4A, 0xF4, 0xD7, 0x8E, 0xEA, 0x4E, 0x2D, 0xD1, - 0x3B, 0xC1, 0x8D, 0x79, 0x88, 0x87, 0xDD, 0x97, - 0x13, 0x76, 0xBC, 0xAE, 0x00, 0x87, 0xE1, 0x7E - }, -}; - - - - -static const uint8_t blake2bp_keyed_kat[KAT_LENGTH][BLAKE2B_OUTBYTES] = -{ - { - 0x9D, 0x94, 0x61, 0x07, 0x3E, 0x4E, 0xB6, 0x40, - 0xA2, 0x55, 0x35, 0x7B, 0x83, 0x9F, 0x39, 0x4B, - 0x83, 0x8C, 0x6F, 0xF5, 0x7C, 0x9B, 0x68, 0x6A, - 0x3F, 0x76, 0x10, 0x7C, 0x10, 0x66, 0x72, 0x8F, - 0x3C, 0x99, 0x56, 0xBD, 0x78, 0x5C, 0xBC, 0x3B, - 0xF7, 0x9D, 0xC2, 0xAB, 0x57, 0x8C, 0x5A, 0x0C, - 0x06, 0x3B, 0x9D, 0x9C, 0x40, 0x58, 0x48, 0xDE, - 0x1D, 0xBE, 0x82, 0x1C, 0xD0, 0x5C, 0x94, 0x0A - }, - { - 0xFF, 0x8E, 0x90, 0xA3, 0x7B, 0x94, 0x62, 0x39, - 0x32, 0xC5, 0x9F, 0x75, 0x59, 0xF2, 0x60, 0x35, - 0x02, 0x9C, 0x37, 0x67, 0x32, 0xCB, 0x14, 0xD4, - 0x16, 0x02, 0x00, 0x1C, 0xBB, 0x73, 0xAD, 0xB7, - 0x92, 0x93, 0xA2, 0xDB, 0xDA, 0x5F, 0x60, 0x70, - 0x30, 0x25, 0x14, 0x4D, 0x15, 0x8E, 0x27, 0x35, - 0x52, 0x95, 0x96, 0x25, 0x1C, 0x73, 0xC0, 0x34, - 0x5C, 0xA6, 0xFC, 0xCB, 0x1F, 0xB1, 0xE9, 0x7E - }, - { - 0xD6, 0x22, 0x0C, 0xA1, 0x95, 0xA0, 0xF3, 0x56, - 0xA4, 0x79, 0x5E, 0x07, 0x1C, 0xEE, 0x1F, 0x54, - 0x12, 0xEC, 0xD9, 0x5D, 0x8A, 0x5E, 0x01, 0xD7, - 0xC2, 0xB8, 0x67, 0x50, 0xCA, 0x53, 0xD7, 0xF6, - 0x4C, 0x29, 0xCB, 0xB3, 0xD2, 0x89, 0xC6, 0xF4, - 0xEC, 0xC6, 0xC0, 0x1E, 0x3C, 0xA9, 0x33, 0x89, - 0x71, 0x17, 0x03, 0x88, 0xE3, 0xE4, 0x02, 0x28, - 0x47, 0x90, 0x06, 0xD1, 0xBB, 0xEB, 0xAD, 0x51 - }, - { - 0x30, 0x30, 0x2C, 0x3F, 0xC9, 0x99, 0x06, 0x5D, - 0x10, 0xDC, 0x98, 0x2C, 0x8F, 0xEE, 0xF4, 0x1B, - 0xBB, 0x66, 0x42, 0x71, 0x8F, 0x62, 0x4A, 0xF6, - 0xE3, 0xEA, 0xBE, 0xA0, 0x83, 0xE7, 0xFE, 0x78, - 0x53, 0x40, 0xDB, 0x4B, 0x08, 0x97, 0xEF, 0xFF, - 0x39, 0xCE, 0xE1, 0xDC, 0x1E, 0xB7, 0x37, 0xCD, - 0x1E, 0xEA, 0x0F, 0xE7, 0x53, 0x84, 0x98, 0x4E, - 0x7D, 0x8F, 0x44, 0x6F, 0xAA, 0x68, 0x3B, 0x80 - }, - { - 0x32, 0xF3, 0x98, 0xA6, 0x0C, 0x1E, 0x53, 0xF1, - 0xF8, 0x1D, 0x6D, 0x8D, 0xA2, 0xEC, 0x11, 0x75, - 0x42, 0x2D, 0x6B, 0x2C, 0xFA, 0x0C, 0x0E, 0x66, - 0xD8, 0xC4, 0xE7, 0x30, 0xB2, 0x96, 0xA4, 0xB5, - 0x3E, 0x39, 0x2E, 0x39, 0x85, 0x98, 0x22, 0xA1, - 0x45, 0xAE, 0x5F, 0x1A, 0x24, 0xC2, 0x7F, 0x55, - 0x33, 0x9E, 0x2B, 0x4B, 0x44, 0x58, 0xE8, 0xC5, - 0xEB, 0x19, 0xAA, 0x14, 0x20, 0x64, 0x27, 0xAA - }, - { - 0x23, 0x6D, 0xB9, 0x33, 0xF1, 0x8A, 0x9D, 0xBD, - 0x4E, 0x50, 0xB7, 0x29, 0x53, 0x90, 0x65, 0xBD, - 0xA4, 0x20, 0xDF, 0x97, 0xAC, 0x78, 0x0B, 0xE4, - 0x3F, 0x59, 0x10, 0x3C, 0x47, 0x2E, 0x0B, 0xCC, - 0xA6, 0xD4, 0x97, 0x38, 0x97, 0x86, 0xAF, 0x22, - 0xBA, 0x94, 0x30, 0xB7, 0x4D, 0x6F, 0x74, 0xB1, - 0x3F, 0x6F, 0x94, 0x9E, 0x25, 0x6A, 0x14, 0x0A, - 0xA3, 0x4B, 0x47, 0x70, 0x0B, 0x10, 0x03, 0x43 - }, - { - 0x23, 0x8C, 0x9D, 0x08, 0x02, 0x85, 0xE3, 0x54, - 0x35, 0xCB, 0x53, 0x15, 0x5D, 0x9F, 0x79, 0x2C, - 0xA1, 0xBB, 0x27, 0xDE, 0x4F, 0x9B, 0x6C, 0x87, - 0x26, 0xE1, 0x1C, 0x02, 0x8E, 0x7B, 0x87, 0x87, - 0x33, 0x54, 0x91, 0x12, 0xA3, 0x28, 0xB5, 0x0E, - 0x8C, 0xD8, 0xBA, 0x27, 0x87, 0x21, 0x7E, 0x46, - 0xB8, 0x16, 0x8D, 0x57, 0x11, 0x3D, 0xD4, 0x04, - 0xD9, 0x14, 0xE2, 0x9A, 0x6A, 0x54, 0x70, 0xE6 - }, - { - 0x9A, 0x02, 0x1E, 0xBD, 0x50, 0x4A, 0x97, 0x59, - 0x6D, 0x0E, 0x85, 0x04, 0x8A, 0xE1, 0xDA, 0x89, - 0x99, 0xE3, 0xA0, 0x47, 0x01, 0x6F, 0x17, 0xC6, - 0xC5, 0x55, 0x6C, 0x27, 0x31, 0xE9, 0xB1, 0x39, - 0x26, 0x1F, 0x84, 0x3F, 0xAD, 0x6B, 0xD4, 0x3F, - 0x7C, 0x7C, 0x58, 0x7F, 0x69, 0x8D, 0x69, 0xB6, - 0x82, 0xE5, 0x68, 0xB4, 0x42, 0xAC, 0x45, 0x88, - 0x98, 0x57, 0xB7, 0x69, 0x07, 0x34, 0xCD, 0xBB - }, - { - 0x3A, 0xBA, 0x07, 0xAE, 0x98, 0x0E, 0x33, 0x86, - 0x37, 0x47, 0x9D, 0xCA, 0x1E, 0x35, 0x28, 0x00, - 0xF4, 0x58, 0x8E, 0x62, 0xD8, 0x23, 0x36, 0x5A, - 0xA6, 0x9C, 0x5B, 0x25, 0xFC, 0xE1, 0x29, 0x68, - 0xD2, 0x6C, 0x9B, 0xDB, 0xEE, 0x9A, 0x32, 0xBF, - 0xFD, 0x42, 0xE6, 0xB2, 0x2C, 0x81, 0x38, 0xA6, - 0x1C, 0x1F, 0xCE, 0x49, 0xFF, 0xBC, 0x19, 0x0E, - 0x1E, 0x15, 0x16, 0x01, 0x53, 0xCC, 0xB6, 0xB4 - }, - { - 0x77, 0x4C, 0xDF, 0x9A, 0xBB, 0x50, 0x81, 0xFE, - 0x07, 0xEB, 0x57, 0x25, 0xE6, 0x06, 0x9B, 0x8D, - 0x6C, 0x7E, 0x60, 0x04, 0xA2, 0x4D, 0x70, 0xF7, - 0xDF, 0xAB, 0xFC, 0x03, 0x82, 0x5B, 0xBC, 0x3B, - 0x30, 0xE6, 0x20, 0xB6, 0x04, 0x1F, 0x3C, 0xC2, - 0x89, 0x6B, 0x14, 0xAB, 0x66, 0x0A, 0xF7, 0x2E, - 0x24, 0x95, 0x10, 0xAC, 0x2F, 0xE8, 0x10, 0xCC, - 0x77, 0x63, 0xA2, 0xE5, 0xC3, 0xFC, 0xA7, 0xFC - }, - { - 0x9E, 0x08, 0x9F, 0x51, 0x65, 0x7B, 0x29, 0xC2, - 0x66, 0x8E, 0x28, 0x50, 0x52, 0x4E, 0x53, 0xAE, - 0xAA, 0xA7, 0x30, 0x6F, 0x2A, 0xD5, 0xA2, 0x32, - 0xB5, 0xF0, 0x7F, 0x68, 0x8D, 0x8A, 0xB2, 0xB4, - 0x25, 0xDF, 0x7E, 0xA5, 0xBD, 0x3E, 0x9F, 0xFD, - 0x61, 0x68, 0x38, 0x90, 0x15, 0x1D, 0x78, 0xBB, - 0x94, 0x03, 0x11, 0x85, 0xAC, 0xA4, 0x81, 0xE2, - 0x14, 0x0F, 0xE3, 0x79, 0x85, 0x36, 0x76, 0x43 - }, - { - 0xB3, 0x5B, 0xD5, 0x4E, 0x4F, 0x81, 0x69, 0x6B, - 0x4F, 0x22, 0x31, 0x6A, 0x1E, 0x33, 0x7D, 0x98, - 0xD1, 0xC6, 0xB0, 0x61, 0x10, 0x99, 0x87, 0x63, - 0xB5, 0x91, 0x33, 0x35, 0x92, 0x3A, 0x40, 0x76, - 0xCB, 0x80, 0xD6, 0xD8, 0xA5, 0x18, 0x62, 0x91, - 0x13, 0x47, 0x7B, 0x30, 0xA1, 0x32, 0xA6, 0xB2, - 0x7F, 0xC1, 0xEE, 0x79, 0xF6, 0xB2, 0xE0, 0xD3, - 0x5D, 0x5B, 0xC2, 0x97, 0x27, 0x46, 0x3D, 0xB5 - }, - { - 0x12, 0x39, 0x30, 0xD5, 0xA4, 0xB7, 0x3B, 0x49, - 0x1F, 0x50, 0xE5, 0x6E, 0x2B, 0x73, 0x97, 0xA4, - 0x3D, 0x2E, 0x47, 0x87, 0x23, 0x76, 0x02, 0xB6, - 0x6F, 0xE0, 0xA8, 0x47, 0xBD, 0x13, 0xCB, 0xE8, - 0xB3, 0x7D, 0xC7, 0x03, 0xD7, 0xB2, 0xB4, 0xEA, - 0xA8, 0xBF, 0xB9, 0xA5, 0x8A, 0x7D, 0x71, 0x9C, - 0x90, 0x8F, 0x19, 0x66, 0xA2, 0xF1, 0x9F, 0xE6, - 0xEB, 0x1A, 0x78, 0x96, 0x2A, 0xFA, 0x5B, 0xF9 - }, - { - 0x08, 0x9C, 0xBC, 0x7E, 0xE1, 0xB1, 0x2C, 0x0C, - 0xC9, 0xC8, 0x3F, 0xF6, 0x66, 0xFE, 0xC8, 0x02, - 0x6B, 0xB7, 0x1B, 0x90, 0x84, 0x97, 0x9B, 0x0E, - 0xA8, 0xB7, 0x23, 0xBB, 0xBE, 0x8B, 0x00, 0xD4, - 0x10, 0x08, 0xB6, 0x04, 0x99, 0xF2, 0x4F, 0x24, - 0x1B, 0x63, 0x28, 0x1F, 0xE5, 0xB4, 0xD8, 0x89, - 0x66, 0x30, 0x9C, 0x0D, 0x7E, 0x64, 0x66, 0x91, - 0x05, 0xE5, 0x1E, 0x69, 0xD7, 0xAF, 0x8C, 0xE5 - }, - { - 0x6B, 0x3C, 0x67, 0x89, 0x47, 0xF6, 0x12, 0x52, - 0x65, 0x7C, 0x35, 0x49, 0x78, 0xC1, 0x01, 0xB2, - 0xFD, 0xD2, 0x72, 0x9E, 0xC3, 0x49, 0x27, 0xDD, - 0x5E, 0xFF, 0x0A, 0x7C, 0x0A, 0x86, 0x58, 0x26, - 0xE8, 0x33, 0xC3, 0x63, 0x23, 0x21, 0x31, 0xB1, - 0x05, 0x93, 0xBE, 0x1C, 0xCF, 0x6B, 0xA5, 0x4E, - 0xCC, 0x14, 0x31, 0x2F, 0x45, 0xBF, 0xFC, 0x24, - 0x04, 0x62, 0x9F, 0xF8, 0x02, 0x67, 0xF0, 0x94 - }, - { - 0xAA, 0x0C, 0x23, 0xEA, 0x1C, 0x6F, 0xE2, 0xE9, - 0x0A, 0x77, 0x18, 0xEF, 0x4A, 0xA4, 0x75, 0x1F, - 0xF6, 0xBE, 0xB9, 0xD4, 0x61, 0x63, 0x59, 0x5B, - 0x5D, 0x4F, 0xB8, 0x96, 0x00, 0x52, 0x5C, 0x5B, - 0x6C, 0xF1, 0x9E, 0xCD, 0xB2, 0x47, 0x78, 0x72, - 0xA7, 0xA1, 0x2D, 0x40, 0xE5, 0x06, 0x36, 0x08, - 0xE5, 0xF0, 0x00, 0x8E, 0x79, 0x72, 0xA9, 0xC0, - 0x1A, 0x4B, 0xE2, 0xAF, 0xE9, 0x53, 0x2F, 0x9C - }, - { - 0x63, 0x34, 0x7A, 0xB4, 0xCB, 0xB6, 0xF2, 0x89, - 0x52, 0x99, 0x2C, 0x07, 0x9D, 0x18, 0xD4, 0x20, - 0x01, 0xB7, 0xF3, 0xA9, 0xD0, 0xFD, 0x90, 0xB0, - 0xA4, 0x77, 0x1F, 0x69, 0x72, 0xF0, 0xC5, 0x32, - 0x89, 0xC8, 0xAE, 0xE1, 0x43, 0x29, 0x4B, 0x50, - 0xC6, 0x34, 0x12, 0x58, 0x5C, 0xDC, 0xE4, 0xFF, - 0x7B, 0xED, 0x11, 0x2C, 0xD0, 0x3C, 0x9B, 0x1D, - 0xF3, 0xDE, 0xF0, 0xCC, 0x32, 0x0D, 0x6B, 0x70 - }, - { - 0x23, 0x96, 0xC0, 0xCB, 0x9E, 0xDA, 0xAC, 0xA9, - 0xD8, 0xB1, 0x04, 0x65, 0x2C, 0xB7, 0xF1, 0x25, - 0xF1, 0x93, 0x55, 0x1A, 0xE5, 0xD7, 0xBC, 0x94, - 0x63, 0x30, 0x7C, 0x9E, 0x69, 0xCA, 0x7D, 0xA2, - 0x3A, 0x9F, 0xBC, 0xBC, 0xB8, 0x66, 0x69, 0xD5, - 0xBA, 0x63, 0x43, 0x85, 0x93, 0xE1, 0x32, 0xF9, - 0x92, 0xB5, 0x7C, 0x00, 0x17, 0xC8, 0x6D, 0xDB, - 0x9B, 0x47, 0x28, 0x6E, 0xF5, 0xB6, 0x87, 0x18 - }, - { - 0xA9, 0x4B, 0x80, 0x22, 0x57, 0xFD, 0x03, 0x1E, - 0xE6, 0x0F, 0x1B, 0xE1, 0x84, 0x38, 0x3A, 0x76, - 0x32, 0x85, 0x39, 0xF9, 0xD8, 0x06, 0x08, 0x72, - 0xEF, 0x35, 0x73, 0xBE, 0xB6, 0xF2, 0x73, 0x68, - 0x08, 0x95, 0x90, 0xED, 0xBB, 0x21, 0xF4, 0xD8, - 0xF1, 0x81, 0xBA, 0x66, 0x20, 0x75, 0xF9, 0x19, - 0x05, 0x97, 0x4B, 0xEE, 0xEF, 0x1F, 0xC5, 0xCB, - 0x9B, 0xCF, 0xB2, 0x8A, 0xAE, 0x1E, 0x4D, 0xE3 - }, - { - 0x52, 0xC7, 0xD3, 0x39, 0x9A, 0x03, 0x80, 0x04, - 0xBE, 0xA5, 0x2D, 0x3E, 0xA9, 0xE9, 0x1E, 0x25, - 0x44, 0xC8, 0x65, 0x2A, 0xB8, 0xF5, 0x28, 0x5C, - 0x9D, 0x32, 0x18, 0x63, 0x7A, 0x6D, 0x9F, 0xCA, - 0xF0, 0xD9, 0x65, 0xB3, 0x58, 0x8E, 0xE6, 0xD7, - 0x3F, 0xA5, 0x99, 0xDE, 0xCA, 0x1F, 0x41, 0xDE, - 0xD8, 0x02, 0x5B, 0xF7, 0x76, 0x8E, 0x0E, 0x20, - 0x0E, 0x8C, 0xD3, 0xFF, 0x86, 0x8C, 0x38, 0x00 - }, - { - 0xB6, 0x29, 0xF5, 0x71, 0x62, 0x87, 0x6A, 0xDB, - 0x8F, 0xA9, 0x57, 0x2E, 0xBA, 0x4E, 0x1E, 0xCD, - 0x75, 0xA6, 0x56, 0x73, 0x08, 0xDE, 0x90, 0xDB, - 0xB8, 0xFF, 0xDE, 0x77, 0xDE, 0x82, 0x13, 0xA4, - 0xD7, 0xF7, 0xCB, 0x85, 0xAE, 0x1B, 0x71, 0xE6, - 0x45, 0x7B, 0xC4, 0xE8, 0x9C, 0x0D, 0x9D, 0xE2, - 0x41, 0xB6, 0xB9, 0xF3, 0x74, 0xB7, 0x34, 0x19, - 0x4D, 0xB2, 0xB2, 0x67, 0x02, 0xD7, 0xCB, 0x7C - }, - { - 0x72, 0x28, 0x46, 0xDD, 0xAC, 0xAA, 0x94, 0xFD, - 0xE6, 0x63, 0x2A, 0x2D, 0xC7, 0xDC, 0x70, 0x8B, - 0xDF, 0x98, 0x31, 0x1C, 0x9F, 0xB6, 0x3C, 0x61, - 0xE5, 0x25, 0xFD, 0x4B, 0x0D, 0x87, 0xB6, 0x38, - 0x8B, 0x5A, 0xF7, 0x04, 0x20, 0x18, 0xDD, 0xCA, - 0x06, 0x5E, 0x8A, 0x55, 0xBB, 0xFD, 0x68, 0xEE, - 0x61, 0xFC, 0xD3, 0xC6, 0x87, 0x8F, 0x5B, 0x09, - 0xBC, 0xC2, 0x7B, 0xED, 0x61, 0xDD, 0x93, 0xED - }, - { - 0x1C, 0xED, 0x6A, 0x0C, 0x78, 0x9D, 0xDB, 0x29, - 0x56, 0x78, 0xAD, 0x43, 0xA3, 0x22, 0xD8, 0x96, - 0x61, 0x7F, 0xDE, 0x27, 0x5F, 0x13, 0x8C, 0xCC, - 0xFB, 0x13, 0x26, 0xCD, 0x3F, 0x76, 0x09, 0xC2, - 0xAA, 0xA5, 0xEC, 0x10, 0x26, 0x97, 0x17, 0x3E, - 0x12, 0x1A, 0xE1, 0x63, 0x02, 0x4F, 0x42, 0x8C, - 0x98, 0x28, 0x35, 0xB4, 0xFA, 0x6D, 0xA6, 0xD6, - 0x78, 0xAE, 0xB9, 0xEE, 0x10, 0x6A, 0x3F, 0x6C - }, - { - 0xE8, 0x69, 0x14, 0x8C, 0x05, 0x45, 0xB3, 0x58, - 0x0E, 0x39, 0x5A, 0xFD, 0xC7, 0x45, 0xCD, 0x24, - 0x3B, 0x6B, 0x5F, 0xE3, 0xB6, 0x7E, 0x29, 0x43, - 0xF6, 0xF8, 0xD9, 0xF2, 0x4F, 0xFA, 0x40, 0xE8, - 0x81, 0x75, 0x6E, 0x1C, 0x18, 0xD9, 0x2F, 0x3E, - 0xBE, 0x84, 0x55, 0x9B, 0x57, 0xE2, 0xEE, 0x3A, - 0x65, 0xD9, 0xEC, 0xE0, 0x49, 0x72, 0xB3, 0x5D, - 0x4C, 0x4E, 0xBE, 0x78, 0x6C, 0x88, 0xDA, 0x62 - }, - { - 0xDA, 0xDA, 0x15, 0x5E, 0x55, 0x42, 0x32, 0xB1, - 0x6E, 0xCA, 0xD9, 0x31, 0xCB, 0x42, 0xE3, 0x25, - 0xB5, 0x86, 0xDB, 0xF1, 0xCB, 0xD0, 0xCE, 0x38, - 0x14, 0x45, 0x16, 0x6B, 0xD1, 0xBF, 0xA3, 0x32, - 0x49, 0x85, 0xE7, 0x7C, 0x6F, 0x0D, 0x51, 0x2A, - 0x02, 0x6E, 0x09, 0xD4, 0x86, 0x1C, 0x3B, 0xB8, - 0x52, 0x9D, 0x72, 0x02, 0xEA, 0xC1, 0xC0, 0x44, - 0x27, 0x44, 0xD3, 0x7C, 0x7F, 0x5A, 0xB8, 0xAF - }, - { - 0x2D, 0x14, 0x8C, 0x8E, 0x8F, 0x76, 0xFA, 0xAC, - 0x6F, 0x7F, 0x01, 0xF2, 0x03, 0x9E, 0xA0, 0x2A, - 0x42, 0xD9, 0x32, 0x57, 0x94, 0xC2, 0xC7, 0xA0, - 0x0F, 0x83, 0xF4, 0xA7, 0x79, 0x8A, 0xFB, 0xA9, - 0x93, 0xFF, 0x94, 0x91, 0x1E, 0x09, 0x8B, 0x00, - 0x1A, 0x0B, 0xDF, 0xF4, 0xC8, 0x5A, 0x2A, 0x61, - 0x31, 0xE0, 0xCF, 0xE7, 0x0F, 0x1D, 0x2E, 0x07, - 0xAF, 0x02, 0x09, 0xDA, 0x77, 0x96, 0x09, 0x1F - }, - { - 0x99, 0x98, 0x3A, 0x75, 0x9C, 0xCF, 0x9C, 0xAC, - 0xAE, 0x70, 0x2D, 0xCB, 0xFC, 0xDF, 0x72, 0x04, - 0xDD, 0xF0, 0x33, 0x4B, 0xC6, 0x5D, 0xAD, 0x84, - 0x6F, 0x83, 0x1F, 0x9F, 0x9D, 0x8A, 0x45, 0x3F, - 0x0D, 0x24, 0x93, 0x5C, 0x4C, 0x65, 0x7F, 0xFF, - 0x2E, 0xBB, 0xDB, 0xAF, 0x7B, 0xCE, 0x6A, 0xAC, - 0xDB, 0xB8, 0x87, 0x6F, 0x16, 0x04, 0x59, 0xB1, - 0xA4, 0xAA, 0xC9, 0x56, 0x97, 0xE0, 0x0D, 0x98 - }, - { - 0x7E, 0x4A, 0x02, 0x12, 0x6D, 0x75, 0x52, 0xF4, - 0xC9, 0xB9, 0x4D, 0x80, 0xE3, 0xCF, 0x7B, 0x89, - 0x7E, 0x09, 0x84, 0xE4, 0x06, 0xF0, 0x78, 0x13, - 0x5C, 0xF4, 0x56, 0xC0, 0xD5, 0x1E, 0x13, 0x91, - 0xFF, 0x18, 0xA8, 0x8F, 0x93, 0x12, 0x2C, 0x83, - 0x2C, 0xAC, 0x7D, 0x79, 0x6A, 0x6B, 0x42, 0x51, - 0x9B, 0x1D, 0xB4, 0xEA, 0xD8, 0xF4, 0x98, 0x40, - 0xCE, 0xB5, 0x52, 0x33, 0x6B, 0x29, 0xDE, 0x44 - }, - { - 0xD7, 0xE1, 0x6F, 0xD1, 0x59, 0x65, 0x8A, 0xD7, - 0xEE, 0x25, 0x1E, 0x51, 0x7D, 0xCE, 0x5A, 0x29, - 0xF4, 0x6F, 0xD4, 0xB8, 0xD3, 0x19, 0xDB, 0x80, - 0x5F, 0xC2, 0x5A, 0xA6, 0x20, 0x35, 0x0F, 0xF4, - 0x23, 0xAD, 0x8D, 0x05, 0x37, 0xCD, 0x20, 0x69, - 0x43, 0x2E, 0xBF, 0xF2, 0x92, 0x36, 0xF8, 0xC2, - 0xA8, 0xA0, 0x4D, 0x04, 0xB3, 0xB4, 0x8C, 0x59, - 0xA3, 0x55, 0xFC, 0xC6, 0x2D, 0x27, 0xF8, 0xEE - }, - { - 0x0D, 0x45, 0x17, 0xD4, 0xF1, 0xD0, 0x47, 0x30, - 0xC6, 0x91, 0x69, 0x18, 0xA0, 0x4C, 0x9E, 0x90, - 0xCC, 0xA3, 0xAC, 0x1C, 0x63, 0xD6, 0x45, 0x97, - 0x8A, 0x7F, 0x07, 0x03, 0x9F, 0x92, 0x20, 0x64, - 0x7C, 0x25, 0xC0, 0x4E, 0x85, 0xF6, 0xE2, 0x28, - 0x6D, 0x2E, 0x35, 0x46, 0x0D, 0x0B, 0x2C, 0x1E, - 0x25, 0xAF, 0x9D, 0x35, 0x37, 0xEF, 0x33, 0xFD, - 0x7F, 0xE5, 0x1E, 0x2B, 0xA8, 0x76, 0x4B, 0x36 - }, - { - 0x56, 0xB7, 0x2E, 0x51, 0x37, 0xC6, 0x89, 0xB2, - 0x73, 0x66, 0xFB, 0x22, 0xC7, 0xC6, 0x75, 0x44, - 0xF6, 0xBC, 0xE5, 0x76, 0x19, 0x41, 0x31, 0xC5, - 0xBF, 0xAB, 0x1C, 0xF9, 0x3C, 0x2B, 0x51, 0xAA, - 0xA3, 0x03, 0x36, 0x8A, 0xA8, 0x44, 0xD5, 0x8D, - 0xF0, 0xEE, 0x5D, 0x4E, 0x31, 0x9F, 0xCD, 0x8E, - 0xFF, 0xC6, 0x02, 0xCE, 0xE4, 0x35, 0x1B, 0xD2, - 0xF5, 0x51, 0x43, 0x0B, 0x92, 0x11, 0xE7, 0x3C - }, - { - 0xF3, 0x35, 0xCC, 0x22, 0xFF, 0xEA, 0x5A, 0xA5, - 0x9C, 0xDF, 0xC8, 0xF5, 0x02, 0x89, 0xCC, 0x92, - 0x31, 0x9B, 0x8B, 0x14, 0x40, 0x8D, 0x7A, 0x5A, - 0xA1, 0x23, 0x2A, 0xE2, 0x3A, 0xA1, 0xEA, 0x7F, - 0x77, 0x48, 0xCF, 0xEF, 0x03, 0x20, 0x10, 0xF8, - 0x62, 0x6D, 0x93, 0x18, 0xED, 0xBA, 0x98, 0xD4, - 0x16, 0x62, 0x03, 0x35, 0xC9, 0x01, 0xED, 0x02, - 0xEA, 0xBD, 0x27, 0x6A, 0x1B, 0x82, 0x9C, 0x9D - }, - { - 0xA9, 0x9A, 0x3D, 0x10, 0xF9, 0x5B, 0x44, 0x2F, - 0xFF, 0xF7, 0xC4, 0x18, 0xFA, 0x94, 0x9D, 0x48, - 0x30, 0x86, 0x9B, 0x0E, 0x60, 0xEC, 0x8B, 0x97, - 0x2C, 0x30, 0xA3, 0x16, 0x9C, 0x27, 0xBE, 0xB5, - 0xCF, 0x33, 0x05, 0x94, 0xF0, 0x14, 0xB6, 0x6B, - 0x22, 0x00, 0xA7, 0xF0, 0x86, 0xD2, 0xC2, 0xF3, - 0xF9, 0xFD, 0x85, 0x32, 0xA5, 0x71, 0x88, 0x76, - 0xDF, 0xCA, 0x66, 0x1B, 0xA0, 0xF7, 0xB3, 0x6D - }, - { - 0x15, 0x8E, 0x25, 0x70, 0xD0, 0x84, 0xA4, 0x86, - 0x9D, 0x96, 0x93, 0x43, 0xC0, 0x10, 0x86, 0x07, - 0x17, 0xFF, 0x74, 0x11, 0x61, 0x88, 0x17, 0x5F, - 0x2E, 0xD7, 0x4C, 0xD5, 0x78, 0xFA, 0x0D, 0x80, - 0x91, 0xB0, 0x3F, 0xAD, 0x0C, 0x65, 0xCF, 0x59, - 0xAB, 0x91, 0xDD, 0x73, 0xB3, 0x7F, 0xE3, 0xF5, - 0x8A, 0x58, 0xE7, 0xB4, 0x47, 0x9C, 0x87, 0x5A, - 0xCD, 0x63, 0xEC, 0x52, 0x58, 0x12, 0x35, 0x3F - }, - { - 0x7C, 0x49, 0x50, 0x1C, 0x58, 0x08, 0xB1, 0x5C, - 0x0D, 0x31, 0xBD, 0xD5, 0xBB, 0x56, 0x31, 0xD5, - 0x3A, 0xE0, 0x0D, 0xF4, 0x31, 0x02, 0x5F, 0xEA, - 0x51, 0xEB, 0x47, 0x62, 0x54, 0x4E, 0xFD, 0xEE, - 0x97, 0x8A, 0x83, 0x50, 0x8D, 0xEA, 0x6B, 0xFD, - 0x3B, 0x93, 0x1A, 0x0E, 0x95, 0x83, 0xCC, 0xFC, - 0x04, 0x9E, 0xA8, 0x46, 0x44, 0x70, 0x5D, 0x31, - 0x9F, 0xDC, 0x5C, 0x16, 0x3B, 0xF4, 0x82, 0x24 - }, - { - 0xFE, 0xF4, 0x36, 0xB3, 0x5F, 0x71, 0x7D, 0x59, - 0xAC, 0xA1, 0x7E, 0x9B, 0xF5, 0xFF, 0xDA, 0x28, - 0xF5, 0xF4, 0x01, 0x94, 0x3E, 0xFE, 0x93, 0xEB, - 0x58, 0x0F, 0xFB, 0x98, 0xF1, 0x3B, 0xEA, 0x80, - 0x94, 0x69, 0xA3, 0x44, 0xE7, 0x82, 0xA4, 0x43, - 0xC6, 0x4E, 0xB2, 0x5A, 0xD0, 0x9D, 0x8D, 0xE2, - 0x05, 0xFE, 0xE7, 0xD5, 0x63, 0x96, 0x86, 0xA1, - 0x9E, 0x7C, 0x42, 0xB4, 0x0F, 0x70, 0x6A, 0x08 - }, - { - 0x4D, 0x47, 0xA6, 0x7A, 0x5F, 0x8E, 0x17, 0xB7, - 0x22, 0xDF, 0x98, 0x58, 0xAE, 0xB6, 0x7B, 0x99, - 0x56, 0xB4, 0x59, 0x62, 0xEC, 0x35, 0x3D, 0xC2, - 0xE2, 0x7F, 0x0F, 0x50, 0x1C, 0x39, 0x8E, 0x34, - 0x39, 0x7B, 0xEB, 0xE0, 0x2B, 0x54, 0x92, 0x7E, - 0x2D, 0x31, 0xF1, 0x2E, 0xCF, 0x55, 0xE8, 0x82, - 0x69, 0xFA, 0xB5, 0x37, 0x0E, 0x7F, 0xA5, 0x70, - 0x35, 0x26, 0x6F, 0x89, 0xD5, 0xC2, 0x64, 0x41 - }, - { - 0x1B, 0x58, 0xDC, 0x7A, 0xAC, 0x36, 0x3B, 0x00, - 0x44, 0x6E, 0xA8, 0x03, 0xBC, 0xD7, 0x49, 0xC3, - 0xF5, 0xCA, 0xBE, 0xAA, 0xF2, 0x23, 0x99, 0x4C, - 0x0C, 0x3E, 0xCC, 0x1B, 0x28, 0x47, 0x73, 0x44, - 0xD7, 0xBF, 0x97, 0xC0, 0x8A, 0x95, 0x9D, 0x1A, - 0xC2, 0x06, 0x0B, 0x47, 0x27, 0x89, 0x86, 0x92, - 0x91, 0x88, 0xAD, 0x73, 0xDE, 0x67, 0x07, 0x8B, - 0xA6, 0x80, 0x96, 0x3B, 0x9D, 0x3B, 0x12, 0xA4 - }, - { - 0x3C, 0x52, 0x2C, 0x84, 0x3E, 0x69, 0x74, 0xEC, - 0x75, 0x0D, 0xF2, 0x20, 0xD4, 0x1A, 0x00, 0x4A, - 0xC2, 0xAD, 0xF0, 0x94, 0x56, 0xFA, 0x78, 0x7F, - 0x7C, 0x65, 0x43, 0xAB, 0x17, 0x97, 0x9C, 0x77, - 0x7B, 0x3E, 0x79, 0xD1, 0x78, 0x7D, 0xA5, 0xA8, - 0x3F, 0x17, 0x8D, 0xA9, 0xF0, 0x4C, 0xF6, 0xF5, - 0xB2, 0x55, 0xDD, 0xCB, 0x18, 0x74, 0x84, 0x1B, - 0xBF, 0x70, 0x16, 0xE6, 0x13, 0x2B, 0x99, 0x8A - }, - { - 0x5A, 0x4F, 0xEB, 0x8F, 0x70, 0x75, 0xB4, 0xDC, - 0x9C, 0xA1, 0x6C, 0x6F, 0x05, 0xCD, 0x6B, 0x70, - 0x27, 0x48, 0x5F, 0xFE, 0xD9, 0x15, 0x7D, 0x82, - 0x4D, 0x9D, 0x1A, 0x17, 0x20, 0xEE, 0xEE, 0xEA, - 0x3F, 0x6C, 0x12, 0x5F, 0xDA, 0x4B, 0xA4, 0x40, - 0x9D, 0x79, 0x80, 0x49, 0xFD, 0x18, 0x82, 0xC6, - 0x90, 0x28, 0x8F, 0x33, 0x54, 0x7A, 0x3D, 0x8D, - 0x62, 0x60, 0xB6, 0x54, 0x54, 0x88, 0x53, 0xD7 - }, - { - 0xBC, 0xAA, 0x79, 0x36, 0x32, 0x56, 0x9E, 0x2F, - 0x84, 0x17, 0xCC, 0x60, 0x32, 0x53, 0x53, 0x5B, - 0xD7, 0xD8, 0x5F, 0x38, 0x53, 0x19, 0x92, 0x59, - 0x1E, 0x56, 0xC1, 0xA4, 0xB6, 0xF5, 0x8E, 0xE7, - 0xF8, 0x18, 0xFA, 0xE0, 0x27, 0x88, 0x8A, 0x86, - 0x28, 0x43, 0x05, 0x10, 0x1E, 0xC0, 0x46, 0x61, - 0xF5, 0x99, 0x53, 0x47, 0xA4, 0x67, 0xED, 0x8B, - 0x92, 0x79, 0xF1, 0xAC, 0xC2, 0xB4, 0xBB, 0x1F - }, - { - 0x34, 0xAF, 0x91, 0xCC, 0x22, 0xA6, 0x9B, 0xCB, - 0x55, 0xDD, 0xBF, 0x7F, 0x0F, 0x43, 0xEC, 0x56, - 0x48, 0x40, 0x43, 0x32, 0x13, 0xEA, 0x55, 0xD9, - 0xF8, 0x1A, 0xC4, 0x75, 0x20, 0x8D, 0x74, 0x85, - 0x1D, 0xB7, 0x0F, 0xE4, 0x96, 0xAF, 0x9D, 0xA1, - 0xD3, 0x93, 0xEC, 0xF8, 0x78, 0x69, 0x5D, 0xD3, - 0x3F, 0xD5, 0x43, 0x49, 0xA6, 0xF8, 0x24, 0xAE, - 0xED, 0x18, 0x3C, 0xB1, 0xB0, 0x8C, 0x54, 0x85 - }, - { - 0xB8, 0xB7, 0xAD, 0x2E, 0xA2, 0xB6, 0xFA, 0x06, - 0xD0, 0x0B, 0xCD, 0x59, 0x9C, 0x99, 0x71, 0xC5, - 0xB4, 0xE1, 0x65, 0x58, 0xE1, 0x52, 0x12, 0xC9, - 0xBF, 0xD3, 0x73, 0xE4, 0xBC, 0x79, 0x17, 0x05, - 0x26, 0x01, 0xFF, 0xDB, 0x68, 0x01, 0xBE, 0x80, - 0xBA, 0x50, 0x9D, 0xB8, 0x2A, 0x0B, 0x71, 0x95, - 0x92, 0x91, 0x33, 0xAD, 0x53, 0x99, 0x56, 0x06, - 0x52, 0x33, 0xF4, 0x9D, 0x07, 0x1C, 0x84, 0xE4 - }, - { - 0xDC, 0xEE, 0x9C, 0x45, 0xBC, 0x5D, 0x1F, 0xE6, - 0x30, 0xB1, 0x8B, 0x06, 0x3C, 0xE8, 0x2C, 0x38, - 0x57, 0xE3, 0x0D, 0x20, 0xC6, 0x4B, 0x5C, 0xC2, - 0x58, 0x84, 0x94, 0x3E, 0x7A, 0xE9, 0x4E, 0xDF, - 0xF8, 0x50, 0xEB, 0x0E, 0x82, 0x44, 0x02, 0x3D, - 0x3D, 0x07, 0xA8, 0xA0, 0x07, 0x06, 0xF0, 0x58, - 0x2C, 0xC1, 0x02, 0xB6, 0x6C, 0x6D, 0xDA, 0x86, - 0xE8, 0xF2, 0xDF, 0x32, 0x56, 0x59, 0x88, 0x6F - }, - { - 0x04, 0xF6, 0xE8, 0x22, 0xF1, 0x7C, 0xC7, 0xA5, - 0x94, 0x6D, 0xF8, 0x0D, 0x95, 0x8A, 0xEF, 0x06, - 0x5D, 0x87, 0x49, 0x16, 0xE1, 0x03, 0xA6, 0x83, - 0x0C, 0x6E, 0x46, 0xB6, 0x05, 0x59, 0x18, 0x18, - 0x0D, 0x14, 0x52, 0x29, 0x3C, 0x58, 0xA9, 0x74, - 0x9C, 0xBC, 0x8F, 0x0A, 0xC4, 0x08, 0xA9, 0xCA, - 0x89, 0x57, 0x61, 0xCF, 0xC4, 0x51, 0x16, 0x46, - 0x41, 0xA1, 0x79, 0xFB, 0x5C, 0xD8, 0xFE, 0xBC - }, - { - 0x51, 0x1F, 0xDB, 0x7C, 0x88, 0x26, 0x85, 0x35, - 0xE9, 0x7E, 0x4E, 0xD8, 0x92, 0xF3, 0xC0, 0x65, - 0x83, 0x2B, 0x26, 0x59, 0x14, 0xFC, 0x61, 0x07, - 0xA1, 0xD2, 0x7D, 0xBB, 0x7D, 0x51, 0xC3, 0x7E, - 0x95, 0x98, 0x15, 0x06, 0xC1, 0x14, 0x72, 0x44, - 0xD5, 0xBA, 0xE9, 0x0E, 0xE9, 0x0D, 0x08, 0x49, - 0x84, 0xBA, 0xA7, 0x58, 0x7F, 0x41, 0xFF, 0x6F, - 0x4B, 0xA7, 0x22, 0xC8, 0xB9, 0x2A, 0xEB, 0x99 - }, - { - 0x2B, 0xA2, 0xBD, 0x17, 0xE9, 0x26, 0x27, 0x5B, - 0x06, 0x83, 0xB2, 0x36, 0xBF, 0xE3, 0x76, 0x30, - 0x26, 0x6E, 0x37, 0xF4, 0x18, 0x2F, 0x53, 0xA9, - 0x82, 0x34, 0xE9, 0x15, 0xAB, 0x64, 0xC9, 0x59, - 0x96, 0xC6, 0xCB, 0x7A, 0xE8, 0x80, 0xC3, 0xDF, - 0xCB, 0x47, 0xD0, 0x5A, 0xAD, 0xD2, 0x1A, 0xBF, - 0x8E, 0x40, 0xB7, 0x3F, 0x40, 0xF3, 0x98, 0xDC, - 0x5B, 0x02, 0x14, 0x14, 0x57, 0x45, 0x6A, 0x09 - }, - { - 0x9B, 0x66, 0x8D, 0x9B, 0x44, 0x47, 0xE3, 0x76, - 0xF6, 0xC6, 0xCF, 0xA6, 0x8D, 0xBC, 0x79, 0x19, - 0x83, 0x81, 0xAB, 0x60, 0x5F, 0x55, 0xD5, 0xA7, - 0xEF, 0x68, 0x3B, 0xCE, 0xD4, 0x6F, 0x9A, 0xFD, - 0x36, 0x85, 0x41, 0x1A, 0x66, 0xE2, 0x34, 0x6F, - 0x96, 0x07, 0x77, 0xD0, 0xC9, 0x22, 0x71, 0x24, - 0x30, 0xE0, 0x18, 0xBF, 0xAE, 0x86, 0x53, 0x01, - 0x7E, 0xA2, 0x0E, 0xCD, 0x5F, 0x1F, 0x95, 0x6C - }, - { - 0x56, 0x81, 0x02, 0x4F, 0x53, 0x85, 0x88, 0xA0, - 0x1B, 0x2C, 0x83, 0x94, 0xCA, 0xE8, 0x73, 0xC6, - 0xD8, 0x5D, 0x6A, 0xA0, 0x6E, 0xDD, 0xB3, 0xA5, - 0x02, 0x09, 0x6F, 0xC0, 0x82, 0xBB, 0x89, 0xCB, - 0x24, 0x15, 0x31, 0xB3, 0x15, 0x75, 0x0D, 0x31, - 0xBB, 0x0B, 0x63, 0x01, 0x28, 0xD1, 0x9D, 0x11, - 0x39, 0x2B, 0xCF, 0x4B, 0x34, 0x78, 0xD5, 0x23, - 0xD7, 0xD2, 0x13, 0xE4, 0x75, 0x0F, 0x55, 0x92 - }, - { - 0x2A, 0xA9, 0x1B, 0xA6, 0xDE, 0x60, 0x17, 0xF1, - 0x93, 0x0F, 0xC7, 0xD9, 0x6D, 0xCC, 0xD6, 0x70, - 0x74, 0x8B, 0x7E, 0xB1, 0xD0, 0x94, 0xDF, 0xB4, - 0xB3, 0xB1, 0x47, 0x8A, 0x61, 0x2E, 0xBF, 0x03, - 0xDD, 0xD7, 0x21, 0x27, 0x9A, 0x26, 0x6D, 0xE3, - 0x88, 0x45, 0xE6, 0x12, 0xC9, 0x30, 0x98, 0xC2, - 0xEF, 0xFF, 0x34, 0xFE, 0x50, 0x06, 0x17, 0x20, - 0x5B, 0x1D, 0xE2, 0xFE, 0xA1, 0xD8, 0x02, 0x46 - }, - { - 0x82, 0x4D, 0x89, 0xC0, 0x63, 0x7C, 0xE1, 0x78, - 0xB6, 0x30, 0x68, 0x4C, 0x72, 0x9E, 0x26, 0x65, - 0x3F, 0x34, 0xEA, 0xC7, 0xE9, 0x04, 0x12, 0xE9, - 0x63, 0xD3, 0xF1, 0x9D, 0x64, 0x51, 0xE8, 0x25, - 0x85, 0x21, 0x67, 0xC4, 0x8D, 0xF7, 0xCC, 0x55, - 0xB2, 0x57, 0xB2, 0x50, 0xA7, 0x0C, 0x7B, 0xCC, - 0xFA, 0x9A, 0xA1, 0x5C, 0x18, 0x8A, 0xC4, 0x63, - 0x7A, 0x52, 0x22, 0x89, 0xC0, 0x87, 0x6A, 0xD4 - }, - { - 0x87, 0xE4, 0xAE, 0x11, 0xDA, 0x1A, 0x2C, 0xA8, - 0x82, 0x2A, 0xE3, 0x30, 0xDC, 0x97, 0xAB, 0x2E, - 0x47, 0xFF, 0x62, 0x32, 0x30, 0x93, 0xC2, 0xB7, - 0xA6, 0xC0, 0xE2, 0xC1, 0x68, 0x21, 0xCD, 0x7C, - 0xEC, 0x92, 0x18, 0x4D, 0xF4, 0xBB, 0x6E, 0x2B, - 0x62, 0x6A, 0x44, 0x78, 0x03, 0x90, 0x63, 0xAF, - 0xEE, 0xB0, 0xD2, 0x87, 0xF2, 0x42, 0x19, 0x20, - 0x78, 0x98, 0xCC, 0xE7, 0xAD, 0xE0, 0x63, 0x9C - }, - { - 0xDD, 0x7F, 0x2F, 0x44, 0xA4, 0x02, 0xA0, 0x1E, - 0x82, 0x16, 0xB1, 0x03, 0xA4, 0xE7, 0x23, 0x5C, - 0x28, 0x30, 0x31, 0x9D, 0x56, 0xAF, 0x63, 0x9F, - 0x23, 0xC4, 0x8C, 0x27, 0x59, 0xAB, 0xA6, 0xEB, - 0x5E, 0xEE, 0xE3, 0x8C, 0x29, 0x8E, 0xBE, 0x41, - 0x98, 0x26, 0x7A, 0x00, 0xEB, 0x2A, 0x08, 0xD9, - 0x3A, 0x50, 0x37, 0x03, 0x17, 0x1C, 0x77, 0x33, - 0x38, 0x62, 0x10, 0x10, 0x55, 0xBD, 0x7A, 0xD2 - }, - { - 0x4C, 0xB8, 0x46, 0x59, 0x61, 0x93, 0xF7, 0xF2, - 0x78, 0xAA, 0xAA, 0xC5, 0xCC, 0xFF, 0xD5, 0x35, - 0x7A, 0xB0, 0xD1, 0x24, 0x5F, 0x69, 0x79, 0xD1, - 0x41, 0xA4, 0x71, 0xBD, 0xAB, 0x55, 0xE2, 0x38, - 0xB1, 0xAE, 0xD6, 0x7B, 0x73, 0x39, 0x95, 0x04, - 0xB9, 0x7D, 0xF1, 0xA2, 0x5E, 0xB6, 0xFE, 0x27, - 0x2B, 0x5C, 0xD4, 0x96, 0xA7, 0xC8, 0xA0, 0x60, - 0x92, 0x6E, 0x74, 0x04, 0xFD, 0xA0, 0x79, 0x0D - }, - { - 0x6F, 0x44, 0xEC, 0xDA, 0xE1, 0x4E, 0x3B, 0x81, - 0xA1, 0x91, 0x22, 0x03, 0x01, 0x5F, 0x59, 0x18, - 0xEA, 0xC6, 0xFB, 0xF4, 0x96, 0x60, 0x10, 0xF4, - 0x9D, 0x2B, 0xC2, 0xBC, 0xEF, 0xE7, 0xB1, 0xDF, - 0xEC, 0x5C, 0x83, 0x5D, 0x7D, 0x87, 0xA4, 0x43, - 0x71, 0xF1, 0x5A, 0x6C, 0x08, 0x42, 0x52, 0xB9, - 0x34, 0x65, 0x26, 0x42, 0x72, 0xA4, 0x10, 0xD5, - 0x0F, 0x89, 0xA1, 0x17, 0xF3, 0x1A, 0xF4, 0x63 - }, - { - 0x1F, 0x70, 0x5F, 0x6E, 0x9F, 0x07, 0x0D, 0x87, - 0xFD, 0xE8, 0xE2, 0x77, 0x46, 0x74, 0xFA, 0x9B, - 0xF1, 0x20, 0xD2, 0x88, 0xEB, 0x0B, 0xE7, 0xAA, - 0x12, 0x8D, 0xFB, 0x5D, 0x10, 0x11, 0xCE, 0x1F, - 0xDA, 0x99, 0xB2, 0x55, 0x22, 0x66, 0x65, 0xD8, - 0x3F, 0x63, 0x4E, 0x8F, 0xCA, 0xBD, 0xA9, 0xA2, - 0x3C, 0x03, 0x51, 0x5E, 0x9C, 0xFE, 0xCE, 0x6E, - 0x94, 0xA8, 0xEC, 0x92, 0xE4, 0xED, 0xEC, 0xB7 - }, - { - 0x2D, 0x96, 0xC5, 0xB0, 0x15, 0x74, 0x72, 0x2B, - 0x81, 0x7F, 0xEB, 0x48, 0x6C, 0x5F, 0xC9, 0x8F, - 0x5F, 0x84, 0x61, 0xF4, 0xCE, 0xE9, 0x90, 0x5A, - 0xF2, 0x06, 0xD4, 0x72, 0x33, 0x86, 0xD1, 0xC4, - 0xC7, 0xCA, 0xC5, 0x84, 0x00, 0x28, 0xD7, 0xAF, - 0xED, 0x0E, 0x38, 0xAD, 0x13, 0x96, 0x28, 0xEB, - 0x6A, 0xF9, 0x2B, 0x4B, 0x88, 0xEB, 0xF0, 0x9B, - 0x1F, 0xA0, 0x47, 0xFB, 0xE1, 0x0B, 0xC3, 0x1D - }, - { - 0x65, 0xDA, 0x78, 0x0A, 0x0A, 0x37, 0x47, 0x9D, - 0xD8, 0xF4, 0xD6, 0x55, 0x64, 0xF9, 0xA7, 0x08, - 0x9E, 0x42, 0x07, 0xEB, 0x16, 0xAC, 0xA3, 0xF6, - 0x55, 0x31, 0xCF, 0xEE, 0x76, 0x25, 0xBA, 0x13, - 0x80, 0xA4, 0x97, 0xB6, 0x24, 0x72, 0xFC, 0x7E, - 0x00, 0x07, 0xA6, 0xB0, 0x35, 0x61, 0x04, 0x16, - 0xA5, 0xF8, 0x2C, 0x10, 0x82, 0xFA, 0x06, 0x5C, - 0x46, 0xDD, 0xEE, 0x49, 0x40, 0xD1, 0xFC, 0x46 - }, - { - 0x1C, 0x09, 0xA3, 0xB3, 0x80, 0xB8, 0xA7, 0xFC, - 0x33, 0x3F, 0xD2, 0x71, 0x4D, 0xF7, 0x12, 0x9B, - 0x44, 0xA4, 0x67, 0x68, 0xBA, 0xCF, 0x0A, 0x67, - 0xA3, 0x8A, 0x47, 0xB3, 0xAB, 0x31, 0xF5, 0x1B, - 0x05, 0x33, 0xC2, 0xAA, 0x2B, 0x4B, 0x7B, 0xBB, - 0x6A, 0xE5, 0xED, 0xF3, 0xDC, 0xB0, 0xEC, 0xC1, - 0xA2, 0x83, 0xE8, 0x43, 0xF2, 0x90, 0x7B, 0x34, - 0x1F, 0x17, 0x9A, 0xFD, 0x8B, 0x67, 0xDA, 0x90 - }, - { - 0x67, 0x88, 0x8B, 0x83, 0xFA, 0xAF, 0xBB, 0x62, - 0x29, 0x34, 0xB8, 0xD5, 0x59, 0x63, 0xE1, 0x86, - 0x15, 0x3E, 0x59, 0x51, 0x88, 0x7C, 0x7F, 0x4A, - 0x76, 0x35, 0xC7, 0x98, 0xD9, 0xA5, 0x82, 0x94, - 0xBE, 0x26, 0xA3, 0xC5, 0x49, 0xC9, 0xFD, 0x59, - 0x86, 0xAB, 0xD1, 0x9F, 0x40, 0x1E, 0xE2, 0x4E, - 0xDA, 0x36, 0x02, 0x04, 0x2A, 0xD3, 0x83, 0x35, - 0x7A, 0x31, 0x7D, 0x38, 0x07, 0x3B, 0x38, 0xCE - }, - { - 0xB4, 0xF7, 0x99, 0x63, 0xCA, 0x31, 0xBB, 0x62, - 0x26, 0x5D, 0xD9, 0x29, 0xAF, 0x7D, 0x51, 0x27, - 0x2F, 0xA6, 0x63, 0x1D, 0xE7, 0xFA, 0x35, 0xF7, - 0xA6, 0xB0, 0x3F, 0x9F, 0xCF, 0xDB, 0x8E, 0x3B, - 0x5B, 0xAC, 0xE3, 0x35, 0x91, 0xB7, 0xEC, 0x2C, - 0xFA, 0xB4, 0x9C, 0x91, 0xA6, 0xDB, 0x1F, 0xF8, - 0xF6, 0x78, 0x6D, 0x08, 0xF4, 0x4E, 0x80, 0x62, - 0xD2, 0xFF, 0x69, 0x6A, 0x7D, 0x98, 0x41, 0x42 - }, - { - 0x40, 0x84, 0x83, 0x69, 0x7B, 0xB6, 0xF9, 0xD0, - 0x11, 0xA1, 0xF2, 0x9A, 0x23, 0xC2, 0x78, 0xA8, - 0x1D, 0x37, 0x57, 0x8D, 0xCC, 0xCF, 0x42, 0x3B, - 0xDF, 0x48, 0x93, 0x37, 0xF1, 0x82, 0xEA, 0xB7, - 0x9A, 0x50, 0xB0, 0x5F, 0x3D, 0x2C, 0xCC, 0x49, - 0x13, 0x37, 0xC7, 0xE4, 0x1F, 0x30, 0x79, 0x3B, - 0xD2, 0x7D, 0x76, 0x61, 0xC2, 0xE3, 0x04, 0xC9, - 0x46, 0xA5, 0xA4, 0x01, 0xAF, 0x8D, 0x94, 0x6F - }, - { - 0xEE, 0xB5, 0xAD, 0xE1, 0xAB, 0x97, 0xE7, 0x15, - 0x43, 0x43, 0xA4, 0x6E, 0xB4, 0xCD, 0xD2, 0xA7, - 0x73, 0xF3, 0x63, 0x01, 0xED, 0xC6, 0xA1, 0xBC, - 0x1D, 0xD6, 0x48, 0x0E, 0x08, 0xF5, 0x87, 0x65, - 0xCB, 0x93, 0x87, 0x82, 0x92, 0x3B, 0xC0, 0x1F, - 0x8E, 0x0C, 0x61, 0xC6, 0xBE, 0x0D, 0xD1, 0xAB, - 0x4C, 0x18, 0xCB, 0x15, 0xED, 0x52, 0x10, 0x11, - 0x24, 0x05, 0xF1, 0xEA, 0x8F, 0x2E, 0x8C, 0x4E - }, - { - 0x71, 0x4A, 0xD1, 0x85, 0xF1, 0xEE, 0xC4, 0x3F, - 0x46, 0xB6, 0x7E, 0x99, 0x2D, 0x2D, 0x38, 0xBC, - 0x31, 0x49, 0xE3, 0x7D, 0xA7, 0xB4, 0x47, 0x48, - 0xD4, 0xD1, 0x4C, 0x16, 0x1E, 0x08, 0x78, 0x02, - 0x04, 0x42, 0x14, 0x95, 0x79, 0xA8, 0x65, 0xD8, - 0x04, 0xB0, 0x49, 0xCD, 0x01, 0x55, 0xBA, 0x98, - 0x33, 0x78, 0x75, 0x7A, 0x13, 0x88, 0x30, 0x1B, - 0xDC, 0x0F, 0xAE, 0x2C, 0xEA, 0xEA, 0x07, 0xDD - }, - { - 0x22, 0xB8, 0x24, 0x9E, 0xAF, 0x72, 0x29, 0x64, - 0xCE, 0x42, 0x4F, 0x71, 0xA7, 0x4D, 0x03, 0x8F, - 0xF9, 0xB6, 0x15, 0xFB, 0xA5, 0xC7, 0xC2, 0x2C, - 0xB6, 0x27, 0x97, 0xF5, 0x39, 0x82, 0x24, 0xC3, - 0xF0, 0x72, 0xEB, 0xC1, 0xDA, 0xCB, 0xA3, 0x2F, - 0xC6, 0xF6, 0x63, 0x60, 0xB3, 0xE1, 0x65, 0x8D, - 0x0F, 0xA0, 0xDA, 0x1E, 0xD1, 0xC1, 0xDA, 0x66, - 0x2A, 0x20, 0x37, 0xDA, 0x82, 0x3A, 0x33, 0x83 - }, - { - 0xB8, 0xE9, 0x03, 0xE6, 0x91, 0xB9, 0x92, 0x78, - 0x25, 0x28, 0xF8, 0xDB, 0x96, 0x4D, 0x08, 0xE3, - 0xBA, 0xAF, 0xBD, 0x08, 0xBA, 0x60, 0xC7, 0x2A, - 0xEC, 0x0C, 0x28, 0xEC, 0x6B, 0xFE, 0xCA, 0x4B, - 0x2E, 0xC4, 0xC4, 0x6F, 0x22, 0xBF, 0x62, 0x1A, - 0x5D, 0x74, 0xF7, 0x5C, 0x0D, 0x29, 0x69, 0x3E, - 0x56, 0xC5, 0xC5, 0x84, 0xF4, 0x39, 0x9E, 0x94, - 0x2F, 0x3B, 0xD8, 0xD3, 0x86, 0x13, 0xE6, 0x39 - }, - { - 0xD5, 0xB4, 0x66, 0xFF, 0x1F, 0xD6, 0x8C, 0xFA, - 0x8E, 0xDF, 0x0B, 0x68, 0x02, 0x44, 0x8F, 0x30, - 0x2D, 0xCC, 0xDA, 0xF5, 0x66, 0x28, 0x78, 0x6B, - 0x9D, 0xA0, 0xF6, 0x62, 0xFD, 0xA6, 0x90, 0x26, - 0x6B, 0xD4, 0x0A, 0xB6, 0xF0, 0xBE, 0xC0, 0x43, - 0xF1, 0x01, 0x28, 0xB3, 0x3D, 0x05, 0xDB, 0x82, - 0xD4, 0xAB, 0x26, 0x8A, 0x4F, 0x91, 0xAC, 0x42, - 0x86, 0x79, 0x5F, 0xC0, 0xF7, 0xCB, 0x48, 0x5C - }, - { - 0x0A, 0x1E, 0x8C, 0x0A, 0x8C, 0x48, 0xB8, 0x4B, - 0x71, 0xBA, 0x0F, 0xE5, 0x6F, 0xA0, 0x56, 0x09, - 0x8C, 0xA6, 0x92, 0xE9, 0x2F, 0x27, 0x6E, 0x85, - 0xB3, 0x38, 0x26, 0xCD, 0x78, 0x75, 0xFC, 0xF8, - 0x83, 0x85, 0x13, 0x1B, 0x43, 0xDF, 0x74, 0x53, - 0x2E, 0xAA, 0x86, 0xCF, 0x17, 0x1F, 0x50, 0x76, - 0xE6, 0xD1, 0x7B, 0x1C, 0x75, 0xFB, 0xA1, 0xDB, - 0x00, 0x1B, 0x6E, 0x66, 0x97, 0x7C, 0xB8, 0xD7 - }, - { - 0x65, 0xAA, 0x17, 0x99, 0x14, 0x36, 0x93, 0xAB, - 0xD9, 0xCB, 0x21, 0x8D, 0x9B, 0x5E, 0xC6, 0x0C, - 0x0E, 0xDD, 0xB0, 0x67, 0xE6, 0xA3, 0x2F, 0x76, - 0x79, 0x60, 0x10, 0xAC, 0xB1, 0x1A, 0xD0, 0x13, - 0x6C, 0xE4, 0x9F, 0x97, 0x6E, 0x74, 0xF8, 0x95, - 0x04, 0x2F, 0x7C, 0xBF, 0x13, 0xFB, 0x73, 0xD1, - 0x9D, 0xC8, 0x89, 0xD7, 0xE9, 0x03, 0x46, 0x9D, - 0xEB, 0x33, 0x73, 0x1F, 0x24, 0x06, 0xB6, 0x63 - }, - { - 0xDE, 0xB7, 0x12, 0xB9, 0xCC, 0x64, 0xF5, 0x88, - 0x14, 0x86, 0x0B, 0x51, 0xFA, 0x89, 0xAD, 0x8A, - 0x92, 0x6A, 0x69, 0x08, 0xC7, 0x96, 0xDE, 0x55, - 0x7F, 0x90, 0xCF, 0xAD, 0xB0, 0xC6, 0x2C, 0x07, - 0x87, 0x2F, 0x33, 0xFE, 0x18, 0x4E, 0x5E, 0x21, - 0x2A, 0x3C, 0x5C, 0x37, 0x31, 0x74, 0x18, 0x44, - 0x6E, 0xFD, 0x95, 0x61, 0x3F, 0x61, 0x8A, 0x35, - 0xF7, 0xD2, 0x78, 0x9E, 0xFE, 0x0D, 0x96, 0x60 - }, - { - 0xB4, 0x2F, 0x4A, 0x40, 0xB3, 0xC8, 0x8B, 0xCE, - 0xCF, 0xE3, 0x28, 0xC8, 0x46, 0xBF, 0x06, 0x48, - 0xA1, 0x69, 0x90, 0xCA, 0x53, 0x91, 0x95, 0xC0, - 0xC1, 0xDC, 0x8D, 0x70, 0x30, 0x80, 0x67, 0x68, - 0x5A, 0xF6, 0x77, 0xAD, 0x65, 0xAC, 0x0C, 0x7A, - 0x9B, 0xCF, 0xA8, 0xF7, 0xAC, 0xC0, 0xAA, 0xCF, - 0x45, 0xCA, 0x18, 0xAC, 0x83, 0x1F, 0xED, 0x64, - 0x4E, 0xC3, 0xD9, 0x28, 0x31, 0x01, 0xFF, 0xEF - }, - { - 0xED, 0xCF, 0x6C, 0x81, 0xCC, 0xF1, 0x6E, 0x11, - 0xDD, 0xF7, 0x19, 0xA3, 0x3D, 0xD0, 0xE5, 0x34, - 0x9C, 0xAB, 0xAC, 0x5C, 0xFA, 0xE5, 0x97, 0x00, - 0x98, 0x40, 0xE1, 0xC3, 0x93, 0x62, 0xC0, 0xF1, - 0x19, 0x82, 0xFE, 0x2C, 0x27, 0x65, 0x85, 0x9A, - 0x94, 0x26, 0x2D, 0xA2, 0x8D, 0xD3, 0x37, 0x3D, - 0x52, 0x26, 0x93, 0x89, 0x75, 0x11, 0xEB, 0xA5, - 0xE0, 0x7B, 0x8B, 0xC6, 0xB6, 0x06, 0x4D, 0xC0 - }, - { - 0x46, 0xB9, 0x62, 0xD2, 0x28, 0x36, 0x94, 0xD2, - 0x79, 0x75, 0xDC, 0xBF, 0x32, 0x56, 0x4C, 0x9B, - 0x04, 0x03, 0x2B, 0x30, 0xA9, 0x3E, 0x05, 0x8F, - 0xB7, 0x7B, 0x2B, 0x71, 0x8B, 0x4A, 0xD5, 0xFB, - 0x78, 0x9A, 0xB7, 0xD7, 0xAA, 0x90, 0x85, 0x2D, - 0xA2, 0xBF, 0xB6, 0xB3, 0x93, 0xB0, 0x9F, 0x98, - 0xE8, 0x69, 0xB1, 0x6E, 0x41, 0x0E, 0x7D, 0xE2, - 0x30, 0xB1, 0x79, 0xF6, 0x2E, 0xB5, 0x74, 0x71 - }, - { - 0x29, 0x03, 0x6C, 0x3F, 0x53, 0x82, 0xE3, 0x5D, - 0xE7, 0xA6, 0x9F, 0xA7, 0xA6, 0x3E, 0xC7, 0xBD, - 0xCB, 0xC4, 0xE0, 0xCC, 0x5A, 0x7B, 0x64, 0x14, - 0xCF, 0x44, 0xBF, 0x9A, 0x83, 0x83, 0xEF, 0xB5, - 0x97, 0x23, 0x50, 0x6F, 0x0D, 0x51, 0xAD, 0x50, - 0xAC, 0x1E, 0xAC, 0xF7, 0x04, 0x30, 0x8E, 0x8A, - 0xEC, 0xB9, 0x66, 0xF6, 0xAC, 0x94, 0x1D, 0xB1, - 0xCD, 0xE4, 0xB5, 0x9E, 0x84, 0xC1, 0xEB, 0xBA - }, - { - 0x17, 0x3F, 0x8A, 0xB8, 0x93, 0x3E, 0xB0, 0x7C, - 0xC5, 0xFD, 0x6E, 0x4B, 0xCE, 0xBA, 0xE1, 0xFF, - 0x35, 0xC7, 0x87, 0x9B, 0x93, 0x8A, 0x5A, 0x15, - 0x79, 0xEA, 0x02, 0xF3, 0x83, 0x32, 0x48, 0x86, - 0xC7, 0x0E, 0xD9, 0x10, 0x9D, 0xE1, 0x69, 0x0B, - 0x8E, 0xE8, 0x01, 0xBC, 0x95, 0x9B, 0x21, 0xD3, - 0x81, 0x17, 0xEB, 0xB8, 0x4A, 0xB5, 0x6F, 0x88, - 0xF8, 0xA3, 0x72, 0x62, 0x00, 0x2D, 0xD9, 0x8E - }, - { - 0xC6, 0xAF, 0xA6, 0xA1, 0x91, 0x93, 0x1F, 0xD4, - 0x5C, 0x3B, 0xAD, 0xBA, 0x72, 0x6E, 0x68, 0xA9, - 0xBC, 0x73, 0x88, 0xC8, 0xCF, 0x37, 0xAD, 0xEC, - 0x7C, 0x64, 0x56, 0x1C, 0xF4, 0x81, 0xFD, 0x25, - 0x9A, 0x64, 0x6C, 0x8B, 0xD8, 0x43, 0xE7, 0x70, - 0x9E, 0x11, 0xE6, 0x4D, 0xCF, 0xD5, 0xDF, 0xFF, - 0xED, 0x79, 0x23, 0x5C, 0x68, 0x9B, 0x42, 0x00, - 0xFE, 0x7A, 0xC8, 0xDF, 0xDA, 0xDD, 0xEC, 0xE0 - }, - { - 0xA6, 0xDC, 0xCD, 0x8C, 0x19, 0x26, 0x64, 0x88, - 0xBF, 0x77, 0xB9, 0xF2, 0x4B, 0x91, 0x43, 0xDE, - 0xF1, 0xFE, 0xD6, 0x1D, 0x0C, 0x60, 0xB5, 0x00, - 0x0A, 0x52, 0x3F, 0x45, 0x0D, 0xA2, 0x3D, 0x74, - 0xE4, 0xE3, 0xF6, 0xEF, 0x04, 0x09, 0x0D, 0x10, - 0x66, 0xB6, 0xAC, 0xE8, 0x5A, 0xBC, 0x0F, 0x03, - 0x01, 0x73, 0xF5, 0x28, 0x17, 0x72, 0x7C, 0x4E, - 0x40, 0x43, 0x2D, 0xD3, 0x4C, 0x6E, 0xF9, 0xF0 - }, - { - 0xAA, 0xF8, 0x90, 0x8D, 0x54, 0x6E, 0x4F, 0x1E, - 0x31, 0x4C, 0x00, 0xE9, 0xD2, 0xE8, 0x85, 0x5C, - 0xB2, 0x56, 0x44, 0x5A, 0xAE, 0x3E, 0xCA, 0x44, - 0x23, 0x83, 0x22, 0xAE, 0xC7, 0x40, 0x34, 0xA1, - 0x45, 0x8A, 0x29, 0x36, 0x75, 0xDA, 0xD9, 0x49, - 0x40, 0x8D, 0xE5, 0x55, 0x4F, 0x22, 0xD7, 0x34, - 0x54, 0xF3, 0xF0, 0x70, 0x9C, 0xBC, 0xCC, 0x85, - 0xCB, 0x05, 0x3A, 0x6F, 0x50, 0x38, 0x91, 0xA1 - }, - { - 0x52, 0x5F, 0x4A, 0xAB, 0x9C, 0x32, 0x7D, 0x2A, - 0x6A, 0x3C, 0x9D, 0xF8, 0x1F, 0xB7, 0xBE, 0x97, - 0xEE, 0x03, 0xE3, 0xF7, 0xCE, 0x33, 0x21, 0x1C, - 0x47, 0x78, 0x8A, 0xCD, 0x13, 0x46, 0x40, 0xDD, - 0x90, 0xAD, 0x74, 0x99, 0x2D, 0x3D, 0xD6, 0xAC, - 0x80, 0x63, 0x50, 0xF3, 0xBA, 0xBC, 0x7F, 0xE1, - 0x98, 0xA6, 0x1D, 0xB3, 0x2D, 0x4A, 0xD1, 0xD6, - 0x56, 0x9A, 0xE8, 0x41, 0x31, 0x04, 0xDE, 0xA4 - }, - { - 0x2D, 0xAC, 0xCD, 0x88, 0x71, 0x9D, 0x0A, 0x00, - 0xB5, 0x2C, 0x6E, 0xB7, 0x9E, 0x1C, 0xA8, 0xB4, - 0xA1, 0xB4, 0xB4, 0x4F, 0xFA, 0x20, 0x88, 0x9F, - 0x23, 0x63, 0xEF, 0x5C, 0x0D, 0x73, 0x7F, 0x1F, - 0x81, 0xF5, 0x0D, 0xA1, 0xCA, 0xAC, 0x23, 0x1D, - 0x6F, 0xCB, 0x48, 0x89, 0x5E, 0x72, 0x99, 0xB7, - 0x7A, 0xF8, 0x1F, 0x0A, 0xA4, 0xA7, 0x61, 0x8A, - 0xD2, 0x4B, 0x7A, 0xAF, 0xC8, 0xE3, 0xA2, 0xBE - }, - { - 0x7D, 0x28, 0x6F, 0x1F, 0x72, 0x1E, 0xC2, 0xD2, - 0x11, 0x5E, 0xF4, 0xCC, 0xD8, 0x28, 0x58, 0xA4, - 0xD5, 0x12, 0x21, 0x13, 0x55, 0xD4, 0xFC, 0x58, - 0xE5, 0x34, 0xBF, 0xA5, 0x9C, 0x2E, 0x1B, 0xF5, - 0x52, 0xA9, 0x6D, 0xC4, 0xB3, 0xE4, 0x6B, 0x01, - 0x28, 0x65, 0xDA, 0x88, 0x13, 0x4C, 0xF0, 0x4E, - 0x73, 0x1B, 0x19, 0x30, 0x75, 0x9E, 0x15, 0x8F, - 0xF6, 0x20, 0xB6, 0xEC, 0x5A, 0xAF, 0xD0, 0x12 - }, - { - 0x21, 0x82, 0x6B, 0x95, 0x29, 0xC4, 0xBC, 0x51, - 0x91, 0x47, 0xF5, 0xF9, 0xFE, 0x6D, 0xB8, 0x78, - 0x34, 0x52, 0x15, 0xE5, 0x09, 0x4F, 0x4E, 0x99, - 0xB1, 0x31, 0xED, 0x54, 0xE2, 0x49, 0x53, 0xCE, - 0xE9, 0xAD, 0xB7, 0x18, 0xD1, 0x74, 0x3E, 0x6C, - 0x27, 0xFC, 0x94, 0x51, 0x6A, 0x99, 0x22, 0xFB, - 0x97, 0x5A, 0x78, 0x16, 0xB8, 0xAA, 0xB0, 0x21, - 0x12, 0x60, 0x8C, 0x03, 0x2B, 0xF1, 0x38, 0xE3 - }, - { - 0xC1, 0x68, 0x9C, 0x69, 0x8A, 0xB0, 0x65, 0xF6, - 0x2E, 0xEE, 0x65, 0xDD, 0xCA, 0x67, 0x6B, 0xAA, - 0x45, 0xB5, 0x2F, 0x30, 0x8A, 0xFA, 0x80, 0x4A, - 0xB4, 0xAA, 0x6A, 0xB8, 0x4B, 0x7A, 0xC1, 0xAA, - 0x1D, 0xFF, 0x07, 0x17, 0x56, 0x10, 0xB1, 0x2A, - 0xE1, 0x1F, 0x27, 0xB7, 0xC4, 0x30, 0xAF, 0xD5, - 0x75, 0x56, 0xBD, 0x18, 0x1D, 0x02, 0x83, 0x2C, - 0xD8, 0xD0, 0xA5, 0xFD, 0xC3, 0x02, 0x01, 0x24 - }, - { - 0xA1, 0xA6, 0x28, 0x17, 0x47, 0xE3, 0x4D, 0x3E, - 0xDE, 0x5E, 0x93, 0x34, 0x01, 0x74, 0x7C, 0xA7, - 0xF7, 0x66, 0x28, 0xB6, 0x14, 0xC8, 0xA3, 0x94, - 0xF5, 0x02, 0x56, 0x2B, 0xFE, 0xE0, 0xB9, 0x94, - 0xEC, 0xB6, 0x5F, 0xBF, 0xE1, 0xFF, 0x70, 0x67, - 0xDC, 0xB0, 0x1D, 0x02, 0xA9, 0x2B, 0xA4, 0x62, - 0x20, 0x75, 0x87, 0xCE, 0xF7, 0xDC, 0x2C, 0xFD, - 0xB4, 0x58, 0x48, 0x48, 0xAD, 0x55, 0x91, 0x4A - }, - { - 0x00, 0x70, 0xA0, 0x19, 0x0A, 0xA6, 0x96, 0x57, - 0x2D, 0x85, 0x3F, 0x1D, 0x24, 0xAB, 0x63, 0x08, - 0x48, 0xAC, 0x56, 0xAD, 0x5C, 0x2E, 0xBF, 0xCF, - 0xDE, 0x27, 0xD1, 0x11, 0xCD, 0x55, 0x93, 0x9C, - 0x1E, 0x4D, 0x07, 0x87, 0x2D, 0xDE, 0x7C, 0xE7, - 0x8B, 0x53, 0x4B, 0x53, 0x0F, 0x0A, 0x39, 0x6E, - 0x86, 0xAF, 0x9D, 0x57, 0x53, 0x54, 0xB5, 0xD7, - 0xE3, 0x4A, 0xCD, 0xE1, 0x8C, 0xC7, 0x67, 0xAE - }, - { - 0x51, 0xB9, 0xB5, 0xED, 0x19, 0x3F, 0xD4, 0xB1, - 0xA3, 0xA9, 0x2B, 0x46, 0xBD, 0x4B, 0xD1, 0xF6, - 0xEC, 0x6B, 0x38, 0xA6, 0x0F, 0x2D, 0x02, 0x61, - 0xD7, 0x2A, 0xBF, 0xD1, 0x64, 0x36, 0x12, 0x8D, - 0xCB, 0xF2, 0x2C, 0x25, 0xE3, 0xE3, 0xC4, 0x3F, - 0xE4, 0xD2, 0x9D, 0xB9, 0x12, 0x4D, 0x03, 0x33, - 0x30, 0x18, 0x45, 0x92, 0xD2, 0x0C, 0x5B, 0x08, - 0x2C, 0x23, 0x20, 0x64, 0x54, 0xCB, 0x3D, 0xD7 - }, - { - 0x57, 0x8F, 0x24, 0x27, 0x46, 0x91, 0x4E, 0x36, - 0xD0, 0xD9, 0xD4, 0x80, 0x96, 0x89, 0x57, 0x12, - 0x16, 0xA4, 0x3E, 0x47, 0x33, 0x32, 0x39, 0x51, - 0x62, 0x0F, 0x5E, 0xE7, 0x8C, 0xCF, 0xEE, 0x91, - 0x9B, 0xF5, 0x5F, 0x28, 0x7B, 0x45, 0xA7, 0x3D, - 0x44, 0x85, 0xAC, 0x74, 0x22, 0x87, 0x92, 0x39, - 0x65, 0x3B, 0x05, 0x91, 0xC3, 0x6C, 0x86, 0x69, - 0x41, 0xF8, 0xAF, 0xFE, 0x4A, 0xE5, 0x6E, 0x9E - }, - { - 0x94, 0x71, 0x30, 0xEF, 0x0B, 0x94, 0x8E, 0xE0, - 0x45, 0x81, 0xAB, 0xA3, 0xE2, 0xCC, 0x4C, 0xEF, - 0xC3, 0x8C, 0xCE, 0xDC, 0x86, 0x17, 0x92, 0xB7, - 0xB5, 0xDC, 0xD9, 0xD9, 0x36, 0x1C, 0x72, 0x4A, - 0x12, 0x20, 0x03, 0xBF, 0x79, 0x6C, 0xE0, 0x97, - 0x98, 0x00, 0xAD, 0xAB, 0xC7, 0x45, 0x6F, 0x17, - 0x3A, 0xE5, 0x26, 0x93, 0x15, 0xAF, 0xC0, 0x1B, - 0x60, 0x6D, 0xB2, 0x9C, 0x75, 0x50, 0xE8, 0xCA - }, - { - 0xC8, 0x52, 0xE6, 0x77, 0xF7, 0x7B, 0x14, 0xB5, - 0x85, 0xBD, 0x10, 0x2A, 0x0F, 0x14, 0x42, 0x43, - 0x05, 0x9D, 0xAB, 0xEC, 0x7C, 0xB0, 0x1F, 0xFA, - 0x61, 0xDF, 0x19, 0xFC, 0xE8, 0xAB, 0x43, 0x6B, - 0xF5, 0xE2, 0xD5, 0xC7, 0x9A, 0xA2, 0xD7, 0xB6, - 0x77, 0xF6, 0xC3, 0x75, 0xE9, 0x34, 0x3D, 0x34, - 0x2E, 0x4F, 0xF4, 0xE3, 0xAB, 0x00, 0x1B, 0xC7, - 0x98, 0x8C, 0x3C, 0x7A, 0x83, 0xCC, 0xB6, 0x9F - }, - { - 0x01, 0x19, 0x75, 0x26, 0x91, 0x7A, 0xC2, 0xC7, - 0xBC, 0x53, 0x95, 0x19, 0xE6, 0x8B, 0xB2, 0x79, - 0x81, 0x35, 0xF6, 0x03, 0x3E, 0xD5, 0x8F, 0x5C, - 0x45, 0x1E, 0x0C, 0xE9, 0x46, 0xAF, 0xF0, 0xF9, - 0x8D, 0xFD, 0xD1, 0x51, 0x01, 0x73, 0x1A, 0xC1, - 0x66, 0x12, 0x6E, 0xAF, 0xB5, 0xE7, 0xCB, 0xE2, - 0xE2, 0x72, 0xEE, 0x23, 0x3F, 0x34, 0xE5, 0xF3, - 0xF8, 0xEA, 0x3D, 0x2D, 0x12, 0x24, 0x82, 0xFB - }, - { - 0x05, 0x9C, 0x90, 0x85, 0x89, 0x5E, 0xB7, 0x18, - 0x30, 0x4E, 0x2D, 0xDA, 0x78, 0x68, 0x6B, 0xD9, - 0x57, 0x49, 0x81, 0x5A, 0x5E, 0xE9, 0x02, 0x51, - 0x0B, 0x00, 0x9A, 0xF6, 0x92, 0x48, 0xB6, 0xA7, - 0xA7, 0x2F, 0xF8, 0xA6, 0x28, 0xD8, 0x17, 0x73, - 0xE1, 0x1D, 0x5A, 0x1E, 0x7F, 0x69, 0x7A, 0x44, - 0x9B, 0x7A, 0x1E, 0x27, 0x12, 0xD5, 0xCF, 0xAE, - 0x7A, 0xB2, 0x65, 0x07, 0xD1, 0x11, 0x29, 0x18 - }, - { - 0x29, 0x52, 0x43, 0xBD, 0x75, 0x8C, 0xF2, 0x1C, - 0x80, 0x31, 0x25, 0xFC, 0xF3, 0x21, 0xDE, 0x5F, - 0x97, 0x98, 0x7C, 0x8D, 0xB3, 0xBB, 0x3C, 0xB5, - 0x1F, 0xF9, 0x7C, 0x4C, 0xDA, 0xC9, 0xD3, 0xBF, - 0x0A, 0x67, 0xCE, 0xE7, 0xED, 0x35, 0x0A, 0x41, - 0xFD, 0xE6, 0xAB, 0xCC, 0x25, 0x4F, 0xBC, 0x9F, - 0x8E, 0x6B, 0x3E, 0x3C, 0xCE, 0xCB, 0xD0, 0xE4, - 0xA6, 0x40, 0xA2, 0x0F, 0x36, 0x2B, 0xA3, 0xA0 - }, - { - 0xDD, 0x82, 0x32, 0xD2, 0x41, 0x2C, 0xCE, 0xEC, - 0xB5, 0x12, 0x31, 0x91, 0xF6, 0xE9, 0x22, 0x1E, - 0x85, 0x1E, 0xCC, 0xE0, 0xFA, 0xEB, 0xF0, 0x50, - 0x5F, 0x2A, 0xEE, 0xFF, 0x8A, 0x8C, 0x92, 0xD4, - 0x1D, 0xAC, 0xF1, 0x77, 0xBD, 0xAE, 0x27, 0x76, - 0x3E, 0xA4, 0xA8, 0x62, 0x05, 0xEF, 0x76, 0x34, - 0xF7, 0xA6, 0x87, 0xCC, 0x44, 0xBB, 0xBB, 0xDE, - 0xEE, 0x5E, 0x11, 0xE6, 0x5F, 0x9F, 0xBD, 0x69 - }, - { - 0xB0, 0x46, 0xB6, 0x83, 0x71, 0x6D, 0x31, 0xC9, - 0x14, 0xC7, 0x0B, 0x10, 0xF7, 0x64, 0x6D, 0xA3, - 0x1E, 0xFA, 0xB2, 0x23, 0x63, 0x47, 0x45, 0x9C, - 0xF8, 0xFA, 0x2C, 0x09, 0x12, 0x34, 0x31, 0xF7, - 0x28, 0x07, 0xF1, 0x1D, 0x86, 0x7C, 0x37, 0x70, - 0xB1, 0xF0, 0x61, 0xD5, 0x6C, 0xA0, 0xE5, 0xB1, - 0xE8, 0x8A, 0x6B, 0x44, 0xA3, 0x3C, 0xF9, 0x3E, - 0x18, 0xBC, 0xC9, 0xCE, 0xBB, 0xA5, 0xAD, 0xE7 - }, - { - 0x20, 0xE5, 0xA2, 0x55, 0x05, 0x8B, 0xE5, 0x1E, - 0x1A, 0x62, 0x9B, 0x4E, 0xBF, 0x81, 0xE5, 0xCB, - 0xE0, 0x78, 0x1C, 0xB6, 0x7C, 0xA4, 0xE5, 0x7B, - 0xA8, 0x6B, 0x30, 0x88, 0x96, 0xBC, 0xE7, 0x38, - 0x20, 0xEB, 0x08, 0x43, 0x1C, 0xE8, 0xC9, 0xBC, - 0x58, 0x10, 0xCC, 0x8D, 0x8B, 0x9C, 0x9D, 0x6F, - 0xCF, 0x83, 0x4E, 0x42, 0xEA, 0x33, 0xEF, 0x73, - 0xCE, 0xC4, 0x7D, 0x71, 0x3B, 0x6D, 0x8D, 0xFD - }, - { - 0x1E, 0x48, 0x04, 0xF9, 0xC0, 0xB1, 0xE8, 0x2B, - 0x9E, 0xD3, 0x63, 0xBD, 0xE4, 0x47, 0x28, 0xAC, - 0xF7, 0xD0, 0x90, 0xA1, 0xBF, 0xE2, 0xDD, 0xF8, - 0x81, 0x9D, 0x65, 0x92, 0xEF, 0x45, 0x3B, 0x83, - 0x5B, 0xD2, 0xEF, 0xE8, 0xB0, 0x20, 0x6E, 0x29, - 0x25, 0x5B, 0x07, 0xFB, 0x90, 0xC7, 0xD3, 0x0D, - 0x2C, 0x11, 0x48, 0x00, 0xB8, 0x6C, 0xB0, 0xE3, - 0xE0, 0x7D, 0x38, 0x7E, 0x98, 0xCE, 0x95, 0x37 - }, - { - 0x41, 0xC9, 0x53, 0xD8, 0xD2, 0x2A, 0x86, 0xC3, - 0x63, 0x4D, 0xF4, 0x22, 0xB6, 0xDE, 0x4A, 0x4F, - 0x14, 0x96, 0x66, 0xBE, 0x8C, 0x4F, 0x58, 0x1B, - 0x26, 0x23, 0xEE, 0x65, 0xC3, 0x92, 0xA5, 0xC3, - 0x28, 0x36, 0x63, 0x9E, 0xF5, 0x6B, 0x93, 0x68, - 0x62, 0x20, 0xF4, 0x5C, 0xE6, 0x5B, 0x4F, 0xA8, - 0x58, 0x9C, 0x91, 0x25, 0x64, 0x17, 0x90, 0xB6, - 0x92, 0x5F, 0xAA, 0xD9, 0x48, 0xB8, 0xBE, 0x04 - }, - { - 0x8B, 0xFC, 0xA4, 0xC8, 0xDF, 0xE3, 0xFD, 0xE4, - 0x25, 0x7B, 0x75, 0xC3, 0xDB, 0x01, 0x86, 0x2E, - 0xD3, 0x11, 0x67, 0xDE, 0x66, 0xC2, 0xE0, 0x3A, - 0x25, 0x56, 0xC4, 0xF4, 0x6C, 0x9D, 0xFF, 0xC1, - 0xAC, 0x45, 0xF7, 0xBC, 0x59, 0xA6, 0x7A, 0xB9, - 0x36, 0x24, 0xBE, 0xB8, 0x6D, 0xDD, 0x0D, 0x02, - 0x60, 0x3F, 0x0D, 0xCD, 0x03, 0x64, 0xF0, 0xF8, - 0x08, 0x81, 0x9B, 0xE9, 0x6C, 0xD8, 0xD3, 0xB6 - }, - { - 0xF6, 0xBF, 0x59, 0xD8, 0xD4, 0x5A, 0x55, 0x71, - 0x11, 0xA2, 0x36, 0xCB, 0xBA, 0x52, 0x61, 0x9A, - 0xE3, 0xDF, 0xCC, 0x43, 0x16, 0x94, 0x38, 0x43, - 0xAF, 0xD1, 0x28, 0x1B, 0x28, 0x21, 0x4A, 0x4A, - 0x5E, 0x85, 0x1E, 0xF8, 0xC5, 0x4F, 0x50, 0x5E, - 0x3C, 0x4B, 0x60, 0x0E, 0xFF, 0xBE, 0xBB, 0x3E, - 0xAC, 0x17, 0x08, 0x7F, 0x22, 0x27, 0x58, 0x12, - 0x63, 0xF1, 0x7D, 0x7E, 0x5F, 0x68, 0xEA, 0x83 - }, - { - 0x1B, 0xC9, 0xED, 0xE4, 0xD4, 0x1A, 0x4D, 0xF6, - 0xE8, 0xE6, 0xF4, 0x7C, 0x2F, 0x4A, 0xD8, 0x73, - 0x37, 0xB6, 0x9B, 0x19, 0xF7, 0x10, 0xF7, 0x66, - 0xE1, 0xFA, 0xF5, 0xAA, 0x05, 0xA4, 0x3B, 0x66, - 0x45, 0x39, 0x6E, 0x7F, 0xBE, 0xF4, 0x3B, 0xB7, - 0x79, 0x5D, 0x39, 0x40, 0x7B, 0x58, 0x15, 0xB9, - 0x2E, 0xCC, 0x23, 0xA6, 0xC1, 0x24, 0x14, 0x21, - 0x15, 0x3A, 0x55, 0xD5, 0x1F, 0x12, 0xBF, 0xD8 - }, - { - 0x76, 0xB3, 0x8B, 0x36, 0x31, 0x55, 0x5D, 0xBC, - 0xFB, 0x21, 0x21, 0x8F, 0xF9, 0xE4, 0x12, 0xA2, - 0x29, 0x88, 0x9E, 0xF2, 0xCE, 0x8A, 0xD7, 0x05, - 0xE9, 0x0F, 0x96, 0xAA, 0xBB, 0xD5, 0xBE, 0x7E, - 0x53, 0x29, 0xA4, 0x26, 0x53, 0x4C, 0x81, 0x5A, - 0x56, 0x53, 0x77, 0x13, 0x18, 0x72, 0x66, 0x41, - 0x42, 0x4E, 0x3B, 0x88, 0x29, 0x2F, 0xB1, 0xD8, - 0x95, 0x44, 0x40, 0x6A, 0xDE, 0x9B, 0xCC, 0xB5 - }, - { - 0xE5, 0x3F, 0x60, 0x07, 0x40, 0x22, 0x4E, 0x4D, - 0x10, 0xD3, 0x1D, 0x24, 0x38, 0x00, 0x31, 0x43, - 0xAF, 0xDB, 0x43, 0x6E, 0xB1, 0x79, 0x1B, 0x15, - 0x0D, 0xE3, 0x56, 0x76, 0xF0, 0xE3, 0x2F, 0x80, - 0xB0, 0xB6, 0x5F, 0x0A, 0xCF, 0x48, 0x1A, 0x5F, - 0xBF, 0x95, 0x96, 0xC0, 0xCB, 0x0A, 0x27, 0xC7, - 0xAF, 0xC1, 0x1D, 0x1E, 0x2C, 0x4D, 0x54, 0x02, - 0x47, 0x5E, 0x4F, 0xFC, 0xC1, 0xCD, 0xA8, 0x11 - }, - { - 0x62, 0x06, 0xB9, 0x1F, 0xC0, 0xB6, 0xF1, 0x21, - 0x1E, 0x9F, 0xDE, 0xCD, 0xC9, 0xD5, 0x1A, 0x6F, - 0x1E, 0xEE, 0x65, 0x54, 0xB1, 0x38, 0xAD, 0xCD, - 0x4A, 0x82, 0x3D, 0xF0, 0x0D, 0xDE, 0xF6, 0x75, - 0x9A, 0x9B, 0xFD, 0x7A, 0x4E, 0x98, 0x1E, 0x04, - 0x52, 0x36, 0x83, 0x8F, 0x4A, 0xF6, 0x93, 0xF6, - 0x93, 0x77, 0x93, 0x14, 0x84, 0xB3, 0xE8, 0x1E, - 0x3E, 0x3B, 0xC2, 0xCB, 0x7E, 0xF7, 0x9F, 0xE9 - }, - { - 0x76, 0xFD, 0x02, 0xDA, 0xDD, 0x96, 0x3B, 0xC0, - 0x35, 0x39, 0x91, 0x46, 0xCE, 0x42, 0x98, 0x8C, - 0xC0, 0x99, 0xD3, 0xCF, 0x4D, 0x32, 0xDF, 0x5C, - 0x0B, 0xBF, 0x64, 0x10, 0x12, 0x46, 0xB1, 0xC7, - 0x08, 0xD1, 0x67, 0xE2, 0x95, 0x95, 0xD1, 0x1D, - 0x09, 0xB3, 0xF6, 0x34, 0x86, 0xB4, 0x05, 0x26, - 0xAC, 0x1D, 0xFE, 0x31, 0xBC, 0x22, 0xDE, 0xC7, - 0x0B, 0x74, 0x5E, 0x90, 0xE2, 0xEA, 0xAF, 0x5A - }, - { - 0xF0, 0xA1, 0xFB, 0xE3, 0x11, 0x63, 0xE4, 0x21, - 0x01, 0x50, 0x72, 0x18, 0x3D, 0x68, 0xEE, 0x51, - 0x91, 0xA9, 0x9C, 0xFD, 0xA1, 0x69, 0xBA, 0x5A, - 0x19, 0x54, 0xC9, 0xF3, 0x10, 0x7D, 0x4E, 0xCA, - 0x06, 0x3E, 0x13, 0x7A, 0x71, 0x14, 0xD3, 0x97, - 0xC9, 0xDB, 0x67, 0x2B, 0x9F, 0x47, 0x8D, 0x41, - 0xC3, 0x4E, 0x99, 0x1B, 0x06, 0x69, 0xA9, 0x51, - 0x53, 0x92, 0x90, 0xC8, 0xED, 0x65, 0xE4, 0x6A - }, - { - 0x13, 0xC7, 0x2A, 0x6A, 0xA5, 0x71, 0xB1, 0x43, - 0xDC, 0xCF, 0x45, 0xAD, 0xCD, 0x98, 0xEA, 0xE6, - 0x99, 0xA1, 0x54, 0xB1, 0x10, 0xF2, 0x5E, 0x7E, - 0x9E, 0x82, 0xB7, 0x65, 0xB9, 0xA0, 0x89, 0x23, - 0x68, 0x8E, 0x8E, 0x0F, 0xF3, 0x11, 0xA6, 0x8A, - 0x77, 0x1E, 0x14, 0x50, 0x96, 0xD6, 0x07, 0x76, - 0xC6, 0xD6, 0xEE, 0x70, 0xAD, 0x6F, 0x69, 0xFA, - 0x2B, 0x76, 0x77, 0x63, 0x40, 0x55, 0xA0, 0x0E - }, - { - 0x0E, 0x06, 0x2B, 0xFE, 0x81, 0x8E, 0xE1, 0x0F, - 0x33, 0x48, 0x1D, 0xEA, 0x43, 0x02, 0x8B, 0x2C, - 0xFB, 0xB4, 0x9E, 0xC9, 0x5E, 0x0F, 0x75, 0xA9, - 0xE1, 0x6D, 0x40, 0x4B, 0xC5, 0x19, 0xB9, 0xAD, - 0x50, 0xB4, 0xA7, 0x33, 0x69, 0x2C, 0xA5, 0x4E, - 0xFB, 0x68, 0x04, 0x69, 0xED, 0x83, 0xDD, 0xEF, - 0xBD, 0xDD, 0xB1, 0x39, 0x04, 0x2E, 0x0E, 0x1C, - 0x09, 0xC3, 0xEB, 0x79, 0x03, 0xFA, 0x08, 0xDF - }, - { - 0x45, 0x3B, 0xE4, 0xAA, 0xB9, 0xF4, 0x23, 0xB3, - 0x36, 0x52, 0xA0, 0xB5, 0xD0, 0x2A, 0x9A, 0xF8, - 0x55, 0xDD, 0x0D, 0x42, 0xDD, 0x83, 0x11, 0x0B, - 0xA3, 0xBC, 0x4B, 0x39, 0x94, 0xEA, 0x3F, 0x88, - 0x5A, 0x71, 0x30, 0x89, 0x75, 0x08, 0x9B, 0x49, - 0x03, 0xE2, 0xE4, 0xD6, 0xBA, 0x6D, 0xC2, 0xE8, - 0x40, 0x31, 0xFF, 0xE9, 0xC8, 0x56, 0x39, 0x75, - 0xC8, 0x61, 0x6A, 0xCA, 0x07, 0x42, 0xE8, 0x29 - }, - { - 0x53, 0x61, 0xE3, 0xE8, 0x93, 0xDD, 0x36, 0x0B, - 0xCB, 0xF5, 0x1C, 0x79, 0x3E, 0xC0, 0x92, 0xA6, - 0xB0, 0x52, 0x05, 0x4F, 0x5F, 0x00, 0x0B, 0x9F, - 0xCE, 0x50, 0x7B, 0x66, 0x45, 0xF8, 0xD4, 0x70, - 0x13, 0xA8, 0x70, 0x6A, 0x58, 0xD4, 0xB1, 0x06, - 0x29, 0xCC, 0x82, 0xB8, 0xD2, 0xD7, 0x96, 0xFD, - 0xD3, 0x7B, 0x60, 0x8A, 0x58, 0x79, 0x52, 0xD6, - 0x55, 0x3E, 0x01, 0xD1, 0xAF, 0x0E, 0x04, 0xB8 - }, - { - 0x74, 0xB5, 0x67, 0x39, 0xF0, 0x1F, 0x82, 0x09, - 0xA4, 0x04, 0x44, 0xDF, 0x4C, 0xCD, 0xEE, 0xEA, - 0x8F, 0x97, 0xE8, 0xE7, 0x6E, 0xFA, 0x3C, 0x04, - 0x33, 0x7F, 0x69, 0x94, 0x5C, 0x4D, 0x44, 0xC0, - 0x85, 0xF1, 0xF4, 0x78, 0x96, 0x96, 0x36, 0x1E, - 0x3C, 0x97, 0x77, 0x4A, 0x93, 0x5F, 0x86, 0x0D, - 0x67, 0x46, 0x86, 0xDC, 0xBA, 0x3D, 0x45, 0xEC, - 0xD8, 0x63, 0x9A, 0x64, 0xAE, 0xA0, 0x62, 0x1B - }, - { - 0xB4, 0xD3, 0x15, 0x87, 0xB9, 0x2B, 0x53, 0x61, - 0xCD, 0xC2, 0xD3, 0xC4, 0x10, 0x86, 0xC1, 0x55, - 0x3E, 0x7B, 0x55, 0xA1, 0xF6, 0x1E, 0x94, 0xD2, - 0xBC, 0x30, 0xBC, 0x25, 0x1D, 0xAF, 0x8A, 0x5E, - 0xBF, 0xC5, 0x07, 0x09, 0xCC, 0x04, 0xCB, 0xAF, - 0x4B, 0x3B, 0x4D, 0xA2, 0xD2, 0x6B, 0x81, 0x23, - 0x8F, 0xBA, 0x71, 0x8F, 0xA9, 0x17, 0x59, 0xB8, - 0x0B, 0xD3, 0x10, 0x3A, 0xEC, 0x11, 0xE0, 0x6F - }, - { - 0xAA, 0xF6, 0x12, 0x7F, 0x00, 0xA0, 0x3D, 0x96, - 0x40, 0x6B, 0x9F, 0xB4, 0xAC, 0x70, 0x16, 0x0D, - 0xB5, 0x22, 0x42, 0x9B, 0x5C, 0xD9, 0x4E, 0x7F, - 0xA0, 0x30, 0x3A, 0x74, 0x94, 0x78, 0xFE, 0x31, - 0x89, 0xC8, 0xEA, 0x23, 0x93, 0x0A, 0x66, 0x25, - 0x2A, 0x80, 0x26, 0x74, 0xDC, 0xAF, 0x77, 0x00, - 0x46, 0x82, 0x0D, 0xD9, 0x64, 0xC6, 0x6F, 0x0F, - 0x54, 0x75, 0x1A, 0x72, 0xF9, 0x7D, 0x9C, 0x35 - }, - { - 0x2C, 0x30, 0xD4, 0x8D, 0xF9, 0x98, 0x4E, 0x02, - 0xF7, 0x5A, 0x94, 0x54, 0x92, 0x17, 0x18, 0x4D, - 0xD0, 0x2A, 0xAD, 0x3B, 0x57, 0x68, 0x3D, 0x09, - 0xB5, 0xA8, 0xC2, 0xEF, 0x53, 0xA9, 0x6A, 0xFB, - 0x73, 0xFE, 0xB6, 0xF9, 0x14, 0xE2, 0xD8, 0x15, - 0xBB, 0x3B, 0x08, 0x65, 0x43, 0x32, 0xFC, 0xFE, - 0x79, 0xF8, 0x0E, 0xC5, 0xF0, 0x51, 0xDA, 0x10, - 0xD7, 0x21, 0x41, 0x3D, 0xDD, 0xE8, 0xFA, 0x60 - }, - { - 0x92, 0xE2, 0xC5, 0xF7, 0x5D, 0x0C, 0xEA, 0xFC, - 0x81, 0x8F, 0xA7, 0x93, 0x59, 0x39, 0xE4, 0x8B, - 0x91, 0x59, 0x41, 0xEF, 0x73, 0x4D, 0x75, 0x27, - 0x0E, 0xB3, 0x21, 0xBA, 0x20, 0x80, 0xEF, 0x6D, - 0x25, 0x5E, 0x90, 0xEF, 0x96, 0xC6, 0x4C, 0xFF, - 0x1D, 0x8C, 0x18, 0xF3, 0x3C, 0x2E, 0xAB, 0x10, - 0x7F, 0xEF, 0x53, 0xE0, 0xD8, 0xBB, 0x16, 0x05, - 0x16, 0x80, 0x74, 0x80, 0xFC, 0xBA, 0x53, 0x73 - }, - { - 0x6E, 0x03, 0xA9, 0x1E, 0x20, 0x44, 0x46, 0x27, - 0xE3, 0xD2, 0xE2, 0x22, 0x26, 0xCF, 0x47, 0x00, - 0x26, 0x69, 0x44, 0x34, 0xED, 0x64, 0x79, 0x82, - 0x8C, 0xB6, 0xDC, 0x8F, 0x27, 0x96, 0x0A, 0xEE, - 0xE2, 0xF4, 0xAB, 0x87, 0x2A, 0x5C, 0xA2, 0xF7, - 0xF6, 0x52, 0xF7, 0xDC, 0x77, 0xD5, 0xF9, 0x6D, - 0x85, 0x82, 0x8B, 0x8F, 0x9C, 0x2D, 0x6C, 0x23, - 0x9E, 0x79, 0x77, 0x24, 0xA1, 0x31, 0x31, 0xB1 - }, - { - 0xBA, 0x43, 0x2D, 0xB0, 0xA3, 0x31, 0xBB, 0x8C, - 0x39, 0xB1, 0x7B, 0xEE, 0x34, 0x46, 0x2B, 0x26, - 0xDD, 0xB7, 0xAD, 0x91, 0xB6, 0xC7, 0x5A, 0xEC, - 0x27, 0x65, 0xFB, 0xAE, 0x3A, 0x0E, 0x60, 0xEC, - 0x54, 0x6D, 0x45, 0xF8, 0xE5, 0x84, 0x37, 0xB9, - 0xD7, 0x7C, 0x3D, 0x2E, 0x8D, 0x7C, 0xE0, 0x69, - 0x73, 0x15, 0x66, 0x51, 0xD4, 0x08, 0x22, 0x2A, - 0xA2, 0x90, 0xCB, 0x58, 0xCA, 0xBC, 0x0A, 0xE5 - }, - { - 0x83, 0xA0, 0x1E, 0x23, 0xAB, 0x27, 0x7B, 0x1F, - 0xC2, 0x8C, 0xD8, 0xBB, 0x8D, 0xA7, 0xE9, 0x4C, - 0x70, 0xF1, 0xDE, 0xE3, 0x2D, 0x19, 0x55, 0xCE, - 0xE2, 0x50, 0xEE, 0x58, 0x41, 0x9A, 0x1F, 0xEE, - 0x10, 0xA8, 0x99, 0x17, 0x97, 0xCE, 0x3D, 0x20, - 0x93, 0x80, 0xCA, 0x9F, 0x98, 0x93, 0x39, 0xE2, - 0xD8, 0xA8, 0x1C, 0x67, 0xD7, 0x37, 0xD8, 0x28, - 0x8C, 0x7F, 0xAE, 0x46, 0x02, 0x83, 0x4A, 0x8B - }, - { - 0x0E, 0xA3, 0x21, 0x72, 0xCC, 0x19, 0x1D, 0xFC, - 0x13, 0x1C, 0xD8, 0x8A, 0xA0, 0x3F, 0xF4, 0x18, - 0x5C, 0x0B, 0xFA, 0x7B, 0x19, 0x11, 0x12, 0x19, - 0xEE, 0xCB, 0x45, 0xB0, 0xFF, 0x60, 0x4D, 0x3E, - 0xDB, 0x00, 0x55, 0x0A, 0xBB, 0xA1, 0x11, 0x52, - 0x2B, 0x77, 0xAE, 0x61, 0xC9, 0xA8, 0xD6, 0xE9, - 0x4F, 0xCA, 0x9D, 0x96, 0xC3, 0x8D, 0x6B, 0x7C, - 0xCE, 0x27, 0x52, 0xF0, 0xD0, 0xC3, 0x7E, 0x78 - }, - { - 0x54, 0xAD, 0xD6, 0x55, 0x2B, 0x08, 0x85, 0x8B, - 0x23, 0xD6, 0x64, 0x5F, 0x6C, 0xE7, 0x9E, 0x92, - 0xF3, 0x8B, 0x66, 0xAE, 0x91, 0x86, 0x77, 0xE6, - 0xD9, 0x1F, 0x71, 0x87, 0xC4, 0x16, 0x05, 0x24, - 0xDF, 0xA8, 0xD0, 0x1F, 0x00, 0xEA, 0x93, 0xDD, - 0x29, 0x9F, 0x3C, 0xC4, 0x09, 0x01, 0xBD, 0x33, - 0x27, 0xA0, 0xF1, 0x8C, 0xCD, 0x7B, 0x6B, 0x8E, - 0x4E, 0x47, 0xCD, 0x28, 0xCF, 0x83, 0x8F, 0xAB - }, - { - 0xEF, 0x84, 0x74, 0x6D, 0xC2, 0x01, 0x56, 0xB6, - 0x6B, 0xA5, 0xC7, 0x8A, 0x50, 0x83, 0x0A, 0xBD, - 0x2A, 0xEF, 0x90, 0xE6, 0x67, 0xB9, 0x7E, 0xB5, - 0x22, 0x91, 0xBC, 0x86, 0x9D, 0x8A, 0xA2, 0x45, - 0x59, 0xA1, 0x42, 0xC6, 0x8F, 0xEA, 0x2E, 0xF3, - 0x2A, 0xF2, 0x2D, 0xFC, 0xEA, 0x4C, 0x90, 0xB3, - 0xD4, 0x90, 0x8C, 0xC9, 0xEA, 0x5C, 0xFC, 0x4E, - 0x91, 0xBF, 0x11, 0xCE, 0x6A, 0x7E, 0x57, 0x61 - }, - { - 0x5A, 0x1B, 0xF3, 0x81, 0xA0, 0x41, 0x19, 0xF9, - 0x42, 0xE4, 0x63, 0xAB, 0xA2, 0xB1, 0x64, 0x38, - 0x82, 0x46, 0x8A, 0xEC, 0xC1, 0xB1, 0xAA, 0x1E, - 0x7B, 0xCA, 0xAB, 0x3B, 0x47, 0x8F, 0xC5, 0xF0, - 0x56, 0xF1, 0x0D, 0xA9, 0x03, 0x7D, 0x40, 0xFA, - 0x7F, 0x55, 0x70, 0x8E, 0x10, 0x3B, 0xDA, 0x96, - 0x5E, 0x92, 0x0C, 0xF6, 0x7C, 0xE3, 0xAD, 0xF7, - 0xE2, 0x00, 0xE8, 0x61, 0x01, 0x4D, 0xEC, 0xC6 - }, - { - 0xAC, 0xF7, 0x8A, 0xA3, 0x28, 0x45, 0x96, 0xF3, - 0x30, 0xB7, 0xE8, 0x47, 0x51, 0xB9, 0x4C, 0x31, - 0x4C, 0xD8, 0x36, 0x36, 0x27, 0xBA, 0x99, 0x78, - 0x81, 0x30, 0x85, 0x78, 0x87, 0x37, 0x59, 0x89, - 0x5D, 0x13, 0xDF, 0xFF, 0xA5, 0xE5, 0x74, 0x50, - 0x13, 0x61, 0xF0, 0x43, 0xC7, 0x4F, 0x57, 0xD2, - 0xD0, 0xF1, 0x5C, 0x7A, 0x41, 0xC7, 0xC4, 0x5E, - 0x3C, 0x09, 0xAD, 0x89, 0xD6, 0x99, 0xA9, 0x77 - }, - { - 0x18, 0xB3, 0xE9, 0x04, 0x38, 0x44, 0xD4, 0xF3, - 0xA2, 0xD0, 0x21, 0xF5, 0x4C, 0x38, 0xFA, 0xCC, - 0x36, 0x4F, 0x84, 0xBA, 0x10, 0x58, 0xF2, 0x10, - 0x09, 0xFC, 0x37, 0x1D, 0x2E, 0x4F, 0x38, 0xC7, - 0x27, 0x51, 0x8A, 0xAB, 0xA6, 0xA2, 0x9E, 0x0F, - 0xDA, 0xE6, 0xE7, 0x60, 0xA4, 0xF1, 0xA6, 0xD7, - 0x58, 0xEB, 0xE4, 0x2C, 0x2A, 0xFC, 0x9D, 0x2C, - 0xDC, 0x6D, 0xD5, 0x80, 0x77, 0x8C, 0x4B, 0x32 - }, - { - 0x18, 0x96, 0xB2, 0x31, 0x70, 0x33, 0xCF, 0x31, - 0x04, 0x68, 0x73, 0xD8, 0x7F, 0x26, 0xE6, 0xA4, - 0x2A, 0x9D, 0x77, 0x0B, 0xBA, 0xF6, 0xE0, 0x62, - 0xDF, 0x11, 0xF9, 0xB4, 0xA0, 0xEA, 0xB2, 0x75, - 0xAA, 0xB1, 0x2C, 0xAA, 0xC2, 0xD3, 0xF5, 0x29, - 0xEB, 0x20, 0xD0, 0x70, 0xFD, 0x84, 0x4D, 0x86, - 0xD0, 0xA5, 0x71, 0xCD, 0xF6, 0x28, 0x5F, 0x80, - 0xE2, 0x30, 0x8B, 0xB8, 0x2C, 0x6C, 0x5B, 0x3B - }, - { - 0x8C, 0x3D, 0xC4, 0x01, 0x94, 0xAA, 0x02, 0x1F, - 0x3C, 0x4A, 0x1F, 0x9A, 0x05, 0x5E, 0x4D, 0x41, - 0x9E, 0xB3, 0xA2, 0x6D, 0x4C, 0x2F, 0x1A, 0x8C, - 0x7E, 0x18, 0x8B, 0x73, 0x48, 0x13, 0x40, 0x80, - 0xB6, 0x3F, 0x6E, 0x57, 0x0A, 0xD1, 0x1C, 0x28, - 0x78, 0x66, 0x53, 0x55, 0x41, 0x9C, 0x10, 0x20, - 0xDE, 0x4B, 0x65, 0x5E, 0x7A, 0x6C, 0x2C, 0xCD, - 0xE9, 0x07, 0x2C, 0xD4, 0x27, 0xFE, 0x8C, 0x4E - }, - { - 0x70, 0xAE, 0x04, 0x30, 0xD5, 0x45, 0xEC, 0x42, - 0x7F, 0x85, 0x41, 0x21, 0x1D, 0x4F, 0xE0, 0x42, - 0xB9, 0x82, 0x3A, 0xCE, 0xC0, 0x4B, 0x15, 0xC9, - 0x0B, 0x7F, 0x4B, 0x8B, 0xDD, 0x3D, 0xC7, 0x85, - 0x19, 0x90, 0xF3, 0x70, 0xE7, 0x14, 0x16, 0x75, - 0x10, 0x66, 0x49, 0xD3, 0x91, 0x51, 0x09, 0x03, - 0x18, 0x23, 0x1E, 0x4D, 0xED, 0x51, 0x22, 0x5D, - 0x9A, 0x6F, 0xA6, 0xC4, 0x24, 0x69, 0x5D, 0xE2 - }, - { - 0x07, 0x33, 0x6C, 0x42, 0xBD, 0x51, 0x49, 0x0E, - 0xF8, 0x4D, 0xFB, 0xDF, 0xAB, 0x74, 0x66, 0xF6, - 0xB6, 0x39, 0x99, 0xA5, 0xC0, 0x88, 0x72, 0xDF, - 0xED, 0xA0, 0x20, 0x6F, 0xDA, 0x80, 0xB9, 0xA6, - 0x2D, 0xE7, 0x28, 0xE3, 0xE3, 0xC3, 0xFD, 0x6B, - 0x7D, 0x21, 0xA4, 0x38, 0xAA, 0xD1, 0xB8, 0xDD, - 0x22, 0x38, 0x63, 0xC0, 0xD2, 0x6A, 0xCA, 0x27, - 0x79, 0x01, 0x74, 0xD9, 0xD4, 0x42, 0xA6, 0x4C - }, - { - 0x79, 0x26, 0x70, 0x88, 0x59, 0xE6, 0xE2, 0xAB, - 0x68, 0xF6, 0x04, 0xDA, 0x69, 0xA9, 0xFB, 0x50, - 0x87, 0xBB, 0x33, 0xF4, 0xE8, 0xD8, 0x95, 0x73, - 0x0E, 0x30, 0x1A, 0xB2, 0xD7, 0xDF, 0x74, 0x8B, - 0x67, 0xDF, 0x0B, 0x6B, 0x86, 0x22, 0xE5, 0x2D, - 0xD5, 0x7D, 0x8D, 0x3A, 0xD8, 0x7D, 0x58, 0x20, - 0xD4, 0xEC, 0xFD, 0x24, 0x17, 0x8B, 0x2D, 0x2B, - 0x78, 0xD6, 0x4F, 0x4F, 0xBD, 0x38, 0x75, 0x82 - }, - { - 0x92, 0x80, 0xF4, 0xD1, 0x15, 0x70, 0x32, 0xAB, - 0x31, 0x5C, 0x10, 0x0D, 0x63, 0x62, 0x83, 0xFB, - 0xF4, 0xFB, 0xA2, 0xFB, 0xAD, 0x0F, 0x8B, 0xC0, - 0x20, 0x72, 0x1D, 0x76, 0xBC, 0x1C, 0x89, 0x73, - 0xCE, 0xD2, 0x88, 0x71, 0xCC, 0x90, 0x7D, 0xAB, - 0x60, 0xE5, 0x97, 0x56, 0x98, 0x7B, 0x0E, 0x0F, - 0x86, 0x7F, 0xA2, 0xFE, 0x9D, 0x90, 0x41, 0xF2, - 0xC9, 0x61, 0x80, 0x74, 0xE4, 0x4F, 0xE5, 0xE9 - }, - { - 0x55, 0x30, 0xC2, 0xD5, 0x9F, 0x14, 0x48, 0x72, - 0xE9, 0x87, 0xE4, 0xE2, 0x58, 0xA7, 0xD8, 0xC3, - 0x8C, 0xE8, 0x44, 0xE2, 0xCC, 0x2E, 0xED, 0x94, - 0x0F, 0xFC, 0x68, 0x3B, 0x49, 0x88, 0x15, 0xE5, - 0x3A, 0xDB, 0x1F, 0xAA, 0xF5, 0x68, 0x94, 0x61, - 0x22, 0x80, 0x5A, 0xC3, 0xB8, 0xE2, 0xFE, 0xD4, - 0x35, 0xFE, 0xD6, 0x16, 0x2E, 0x76, 0xF5, 0x64, - 0xE5, 0x86, 0xBA, 0x46, 0x44, 0x24, 0xE8, 0x85 - }, - { - 0xDA, 0x85, 0x0A, 0x2F, 0x54, 0xE9, 0x44, 0x89, - 0x17, 0xD0, 0xDC, 0xAA, 0x63, 0x93, 0x7B, 0x95, - 0xA4, 0xDA, 0x1E, 0xAC, 0x8A, 0xF4, 0xDD, 0xF2, - 0x11, 0x3E, 0x5C, 0x8B, 0x0D, 0x4D, 0xB2, 0x66, - 0x9A, 0xF3, 0xC2, 0xAC, 0xB0, 0x80, 0x3D, 0x05, - 0x32, 0x3F, 0x3E, 0xC5, 0x5A, 0xBD, 0x33, 0xBD, - 0xF9, 0xB2, 0xBE, 0x89, 0x0E, 0xE7, 0x9E, 0x7F, - 0x3F, 0xCE, 0x4E, 0x19, 0x86, 0x96, 0xA7, 0xA3 - }, - { - 0xF1, 0x60, 0x95, 0xDD, 0x9F, 0x1E, 0xEB, 0x77, - 0xD5, 0xB9, 0x2F, 0x4B, 0x1F, 0xAC, 0x3A, 0x2C, - 0x5D, 0xA6, 0xAE, 0x5D, 0x0A, 0xB3, 0xF2, 0x54, - 0xE2, 0xA7, 0xFE, 0x52, 0x67, 0x24, 0x11, 0xD0, - 0x1C, 0xFA, 0x6A, 0xC0, 0x5B, 0xF3, 0x9E, 0xF6, - 0x5F, 0x4B, 0x22, 0x26, 0x4B, 0x41, 0xC3, 0xF3, - 0x63, 0x56, 0x3A, 0xBF, 0x0E, 0x92, 0x42, 0x90, - 0xC1, 0xC6, 0x80, 0xB1, 0x8A, 0xA6, 0x5B, 0x44 - }, - { - 0x76, 0xD0, 0x0A, 0x09, 0xC5, 0xBD, 0xD3, 0x9E, - 0xD3, 0x28, 0x71, 0x72, 0x2C, 0xFA, 0x00, 0x47, - 0x67, 0x4B, 0xEC, 0x8D, 0x35, 0x17, 0x5A, 0xF9, - 0x0D, 0x7A, 0xE9, 0x10, 0x74, 0x40, 0xA2, 0xA0, - 0x63, 0x88, 0x56, 0xD8, 0x38, 0x4C, 0x81, 0x7D, - 0x77, 0x2A, 0x4A, 0x59, 0x7A, 0x89, 0x55, 0x49, - 0xC8, 0x48, 0x66, 0x37, 0x56, 0x31, 0xCB, 0xA0, - 0x42, 0xF0, 0xEF, 0x6F, 0xFE, 0xB8, 0x9D, 0x44 - }, - { - 0xA6, 0x51, 0x13, 0x7B, 0x2C, 0x47, 0xFB, 0x79, - 0x51, 0xE7, 0xBD, 0xA7, 0x15, 0x43, 0xA6, 0xEB, - 0xC6, 0x24, 0x2A, 0xCA, 0xB4, 0x34, 0x7D, 0x38, - 0x8B, 0xE8, 0x35, 0x0F, 0x0C, 0x3F, 0xA3, 0xDF, - 0x8D, 0x95, 0x2C, 0x7C, 0x8A, 0x3D, 0xAF, 0x01, - 0xE0, 0x6C, 0x1D, 0xA6, 0x94, 0x96, 0xBB, 0xA8, - 0xDE, 0x62, 0xD8, 0x6B, 0x50, 0x93, 0x25, 0x6F, - 0x77, 0xA1, 0x87, 0xB5, 0x3D, 0xB0, 0x39, 0x88 - }, - { - 0xF3, 0x2F, 0x15, 0x0C, 0x2D, 0x67, 0xC0, 0xC4, - 0x37, 0x40, 0x1B, 0x70, 0xF6, 0x0B, 0x38, 0xF0, - 0xA3, 0xA4, 0x70, 0x59, 0x03, 0x3E, 0x75, 0x05, - 0xE6, 0x9A, 0x1D, 0x30, 0x12, 0x96, 0x03, 0x0B, - 0xC9, 0xB2, 0x95, 0x19, 0xC7, 0xF8, 0xB7, 0xD5, - 0x9A, 0x71, 0xFA, 0xB9, 0x05, 0x57, 0xDC, 0x3D, - 0xC8, 0x23, 0xFA, 0xC9, 0x5B, 0x9E, 0x85, 0xE6, - 0x52, 0x52, 0x8C, 0xBF, 0xB0, 0x1B, 0x11, 0x78 - }, - { - 0x27, 0x02, 0x56, 0x61, 0x36, 0xC4, 0x92, 0xF4, - 0x10, 0x89, 0xB0, 0x60, 0x10, 0x84, 0x60, 0xFA, - 0x30, 0x22, 0xC9, 0xC2, 0x5D, 0x34, 0x3B, 0xCB, - 0xD8, 0xAF, 0x2A, 0xF1, 0x9C, 0x17, 0xEF, 0x4C, - 0xA9, 0xF2, 0x22, 0x4F, 0xE7, 0xC4, 0x70, 0x0A, - 0x10, 0x19, 0x8E, 0xE5, 0x24, 0x8F, 0x30, 0x0B, - 0x54, 0x8E, 0xBF, 0x5C, 0x8E, 0x71, 0x16, 0x32, - 0x0C, 0xC8, 0x93, 0xFF, 0x7E, 0x23, 0x1F, 0xFB - }, - { - 0xFF, 0xE6, 0x87, 0x9F, 0x46, 0xB6, 0x29, 0x2B, - 0x21, 0x96, 0x97, 0x2E, 0x3F, 0xDF, 0x4F, 0xE9, - 0xEA, 0x4A, 0x81, 0x6D, 0x18, 0x07, 0xA3, 0x1C, - 0xAE, 0xAD, 0x6A, 0xAC, 0x5F, 0x06, 0x3C, 0x8F, - 0xE8, 0x77, 0x79, 0x75, 0x59, 0xA7, 0x59, 0xA0, - 0x0F, 0x8B, 0xA8, 0xF6, 0x68, 0xD8, 0x96, 0x8F, - 0xB3, 0x1D, 0x8A, 0x3B, 0x84, 0x57, 0x35, 0x90, - 0x2C, 0x5E, 0x42, 0xE2, 0x89, 0xEE, 0x0B, 0x62 - }, - { - 0x14, 0x48, 0x84, 0x28, 0x68, 0x22, 0xC2, 0x51, - 0x2D, 0x61, 0xB0, 0x46, 0xE6, 0x74, 0xD8, 0x6B, - 0x26, 0x4E, 0x9C, 0xC6, 0x89, 0x3E, 0xFF, 0x36, - 0x73, 0x11, 0x24, 0xF5, 0x9D, 0x1A, 0x82, 0x00, - 0x1E, 0x63, 0xF3, 0xE8, 0x05, 0x1C, 0xFE, 0x52, - 0xE7, 0x59, 0x7E, 0x28, 0x73, 0x8E, 0x3C, 0x3A, - 0x70, 0xF1, 0xBE, 0xD9, 0x68, 0x0E, 0x2C, 0x0E, - 0xF3, 0x72, 0x8B, 0x10, 0xA5, 0x6E, 0xD9, 0x87 - }, - { - 0x17, 0xC3, 0xF1, 0x46, 0xEE, 0x8D, 0xEC, 0x3B, - 0xAF, 0xCB, 0x51, 0xC0, 0xDA, 0x37, 0xF1, 0x78, - 0x71, 0xF2, 0x34, 0xC4, 0xA0, 0xFB, 0x7F, 0xA6, - 0xD0, 0x70, 0x7A, 0x54, 0x3E, 0x3C, 0xBF, 0x3A, - 0xDB, 0x81, 0xE3, 0x0C, 0x1E, 0x0A, 0xE9, 0xE1, - 0xAC, 0xE7, 0x22, 0x3B, 0xDA, 0x99, 0xBD, 0x59, - 0x19, 0xA3, 0xCF, 0xCC, 0x92, 0xC6, 0xA7, 0x55, - 0xE4, 0x56, 0xF0, 0x93, 0x82, 0x3B, 0xD3, 0x3E - }, - { - 0x1B, 0x83, 0x7A, 0xF2, 0x33, 0xA8, 0xA6, 0x8B, - 0xE7, 0x09, 0x52, 0xF7, 0x83, 0xC4, 0x96, 0x1A, - 0x81, 0x52, 0xD1, 0xE0, 0xB0, 0xFA, 0x32, 0x5F, - 0xF0, 0x86, 0xEA, 0x5B, 0x5F, 0x13, 0x12, 0xB8, - 0x9C, 0x42, 0xE0, 0x1B, 0x8C, 0x3A, 0x47, 0x7C, - 0xB5, 0x40, 0xC0, 0x6B, 0x2F, 0x37, 0xEE, 0x0E, - 0x39, 0x24, 0xD7, 0x45, 0xB4, 0xFF, 0x5C, 0x6A, - 0xF7, 0xD6, 0x1E, 0x0E, 0x37, 0xAC, 0x19, 0x31 - }, - { - 0x78, 0x97, 0x88, 0x0C, 0x1E, 0xB0, 0x0F, 0xD2, - 0x56, 0x7A, 0xE8, 0xA5, 0x9E, 0x64, 0x82, 0xAF, - 0xE1, 0x73, 0x49, 0xCF, 0x93, 0x92, 0x4A, 0x91, - 0x5F, 0x8C, 0x59, 0x26, 0x93, 0xD4, 0x52, 0x07, - 0x55, 0x19, 0x68, 0x9D, 0xFC, 0xD2, 0x93, 0xE3, - 0x76, 0x89, 0x7B, 0x3B, 0x0E, 0x03, 0x6F, 0x11, - 0x4F, 0xE8, 0x1E, 0xBC, 0xB3, 0x15, 0x36, 0x71, - 0xBD, 0x23, 0xBC, 0x2B, 0xED, 0x46, 0xF9, 0xC2 - }, - { - 0xCA, 0x7B, 0x6C, 0x77, 0x5D, 0x20, 0x1E, 0x5B, - 0x5A, 0x77, 0x22, 0x61, 0xDE, 0x52, 0x8E, 0x47, - 0x5F, 0x4B, 0xDE, 0x51, 0x76, 0x60, 0x52, 0x9F, - 0x41, 0xBE, 0xEB, 0x15, 0x78, 0xB2, 0x4B, 0xCB, - 0x94, 0xB9, 0x41, 0x0F, 0x9B, 0xF3, 0x36, 0xC1, - 0x09, 0xF9, 0xD4, 0x70, 0x93, 0xA1, 0x0B, 0xA6, - 0xDE, 0xBE, 0x50, 0x43, 0x80, 0xD9, 0xD1, 0x50, - 0x73, 0xBD, 0xD1, 0x11, 0xC8, 0xD1, 0x29, 0xFA - }, - { - 0x57, 0x18, 0xE0, 0xD4, 0x5D, 0xEB, 0xC3, 0x00, - 0x2D, 0x52, 0xB2, 0x2C, 0x52, 0x73, 0x29, 0xAE, - 0x5E, 0xBF, 0x27, 0xE8, 0xFA, 0x9C, 0x8F, 0xEA, - 0xB4, 0x6C, 0x40, 0xBC, 0x64, 0x22, 0xCA, 0x03, - 0x35, 0x30, 0x4C, 0xF9, 0xE7, 0xF1, 0x41, 0xDE, - 0x7F, 0xA6, 0xAD, 0xB6, 0x78, 0x9B, 0xDB, 0xF3, - 0x8D, 0x14, 0xDA, 0xBA, 0x3E, 0x62, 0x97, 0xD2, - 0x5B, 0xF1, 0x7D, 0xE1, 0x70, 0xD6, 0xE3, 0xC8 - }, - { - 0x48, 0xD0, 0xED, 0x24, 0x9F, 0x90, 0x28, 0x41, - 0x99, 0x7C, 0x25, 0x5D, 0xAF, 0x99, 0x08, 0x9C, - 0x9A, 0x31, 0x24, 0x69, 0x8B, 0x16, 0x4A, 0x30, - 0x28, 0x33, 0x0F, 0xDD, 0x4C, 0xEE, 0x41, 0xE1, - 0x68, 0x3F, 0xA4, 0xD9, 0xDC, 0x66, 0xB2, 0xA7, - 0x9C, 0x8A, 0xA4, 0xC8, 0x28, 0x4E, 0x27, 0xBE, - 0xE2, 0xA4, 0x28, 0xA6, 0x71, 0x9D, 0x6E, 0xC6, - 0x55, 0xED, 0x76, 0x9D, 0xCB, 0x62, 0x4E, 0x24 - }, - { - 0x79, 0x4E, 0x0B, 0x64, 0xAC, 0xE1, 0xFE, 0x5A, - 0xE3, 0x79, 0x93, 0x70, 0x68, 0xD8, 0x2D, 0xF0, - 0x48, 0x68, 0x61, 0x6C, 0xAE, 0x0C, 0x17, 0xD3, - 0x05, 0x72, 0xC2, 0x02, 0x4E, 0x77, 0x48, 0x94, - 0xE0, 0x66, 0x8C, 0x47, 0x2D, 0x62, 0x3C, 0x90, - 0x3C, 0xC5, 0x88, 0x5F, 0x17, 0x84, 0x94, 0x51, - 0x10, 0x32, 0x9E, 0xB4, 0x98, 0xA8, 0x95, 0xA9, - 0xE5, 0x9A, 0x75, 0xE5, 0x27, 0x15, 0x8A, 0x5C - }, - { - 0x21, 0x79, 0xAA, 0x82, 0x0E, 0x03, 0xFA, 0x33, - 0xD9, 0xBD, 0xE5, 0x56, 0x8C, 0x26, 0x2E, 0x2D, - 0x34, 0x17, 0xA4, 0x02, 0xE0, 0x7A, 0x59, 0x1F, - 0x9D, 0x55, 0x70, 0x68, 0x2D, 0xB5, 0xF9, 0xBB, - 0xA4, 0xBB, 0x9D, 0x5A, 0x82, 0xEE, 0x5E, 0xFD, - 0xB4, 0xF6, 0x5B, 0xBB, 0xFE, 0xEE, 0x2F, 0x4A, - 0xB9, 0xE4, 0x6C, 0xF2, 0xCE, 0x7E, 0x3B, 0x05, - 0x43, 0x27, 0xA7, 0x18, 0xD3, 0xF1, 0x08, 0x06 - }, - { - 0xB0, 0xA4, 0x8C, 0x6A, 0xDA, 0x54, 0x87, 0x25, - 0x79, 0x9B, 0x59, 0x86, 0xBA, 0xB4, 0x32, 0x69, - 0x79, 0x60, 0x92, 0x24, 0xD8, 0x97, 0x18, 0x4B, - 0x89, 0x97, 0x10, 0x4E, 0x0C, 0x6A, 0x24, 0xB3, - 0xAB, 0xE5, 0x62, 0x16, 0x54, 0x22, 0xA4, 0x5D, - 0x8A, 0xC8, 0x19, 0xB9, 0x9D, 0x37, 0x56, 0xEB, - 0xBB, 0x64, 0xF8, 0x43, 0xE3, 0xE0, 0x93, 0x4D, - 0xEC, 0x48, 0x7A, 0xED, 0x12, 0x13, 0x72, 0x79 - }, - { - 0x84, 0x8D, 0x7F, 0x2E, 0xAD, 0x41, 0x29, 0x1D, - 0x05, 0x38, 0x68, 0x0C, 0x64, 0x9D, 0x07, 0x89, - 0x7E, 0x45, 0xC7, 0x0A, 0x0A, 0xA4, 0xF9, 0x35, - 0x3F, 0x82, 0xC3, 0xF6, 0xFB, 0xB8, 0xE8, 0x48, - 0x9C, 0x75, 0x3E, 0x90, 0xDB, 0xE8, 0x89, 0x00, - 0x41, 0xA1, 0xAE, 0xEF, 0x84, 0xCD, 0x31, 0x36, - 0x43, 0x4F, 0x53, 0x0E, 0x9D, 0xD9, 0xC2, 0x3F, - 0xA5, 0x4F, 0xE1, 0x24, 0xEA, 0xFB, 0x72, 0xAD - }, - { - 0x0E, 0xD1, 0x46, 0x26, 0xEE, 0x6D, 0x0C, 0x8E, - 0xD3, 0xF0, 0xC2, 0x00, 0xC1, 0x29, 0x85, 0x0F, - 0xFF, 0x76, 0x31, 0x8F, 0xFF, 0xA1, 0xDD, 0xD7, - 0xDD, 0x56, 0x3A, 0x01, 0xB7, 0x77, 0x97, 0x06, - 0x86, 0x2B, 0x23, 0x99, 0x59, 0xB6, 0x15, 0xAE, - 0x2E, 0xBE, 0x27, 0xC4, 0x50, 0x37, 0xE6, 0xFF, - 0xAF, 0x99, 0x14, 0xDA, 0x8F, 0xF2, 0x77, 0x2B, - 0xA5, 0xEE, 0x08, 0x11, 0xCD, 0x9E, 0xD5, 0x32 - }, - { - 0x52, 0x03, 0xC0, 0x76, 0x38, 0xC4, 0xB6, 0x5F, - 0x78, 0x43, 0x1E, 0x8B, 0x02, 0xE2, 0x0F, 0x6D, - 0x68, 0x3F, 0x19, 0xFA, 0x8F, 0x83, 0xB5, 0x13, - 0x4C, 0xD0, 0xF4, 0xE4, 0x68, 0xC9, 0x7E, 0xAC, - 0xB5, 0x26, 0x7C, 0x7D, 0x3E, 0xAB, 0x58, 0x3C, - 0xCA, 0xAC, 0xD0, 0xDB, 0xA4, 0xD5, 0x8A, 0xCE, - 0x52, 0x19, 0x3A, 0x51, 0x78, 0xA7, 0xB1, 0x2D, - 0x27, 0x95, 0xF5, 0xFD, 0xE8, 0xA3, 0x7B, 0xB9 - }, - { - 0x48, 0xBE, 0x43, 0xD5, 0xE0, 0x04, 0x36, 0x88, - 0xDF, 0x35, 0x32, 0xF7, 0x12, 0x1A, 0xFF, 0xFA, - 0x16, 0x7D, 0xAB, 0xE4, 0xA4, 0x84, 0xFB, 0x75, - 0xA0, 0x3A, 0xF3, 0x04, 0xA5, 0xC6, 0xF8, 0x25, - 0xF3, 0x6C, 0xEC, 0xCB, 0xBB, 0xC0, 0x75, 0xEE, - 0xF3, 0x20, 0xC4, 0xCD, 0x8D, 0x7E, 0xF8, 0xCB, - 0x49, 0xE6, 0xDD, 0x59, 0x73, 0x37, 0x9E, 0xEC, - 0x4C, 0x23, 0x3C, 0x45, 0x43, 0xD1, 0x32, 0xCE - }, - { - 0xB5, 0x46, 0x4E, 0x6A, 0xBA, 0xF5, 0xD3, 0xD4, - 0x08, 0x3D, 0x1D, 0x7D, 0x2A, 0x8B, 0x0B, 0xAB, - 0x78, 0xB6, 0x17, 0x09, 0x50, 0x0B, 0xBF, 0x77, - 0x82, 0x3F, 0x60, 0x2D, 0x57, 0xD5, 0x13, 0xCA, - 0x9E, 0x9F, 0xFF, 0x65, 0xEF, 0xAA, 0x89, 0x9C, - 0xFE, 0x7B, 0xF8, 0x8A, 0x01, 0x88, 0x82, 0x9C, - 0x24, 0xE4, 0x98, 0xAD, 0x00, 0x23, 0x5A, 0xBE, - 0x8E, 0xEF, 0xA7, 0x19, 0xFA, 0x6A, 0xE6, 0xF6 - }, - { - 0xAF, 0xE5, 0xE5, 0xE8, 0x3F, 0x19, 0xAD, 0xAD, - 0x9E, 0x95, 0x90, 0x3E, 0xA9, 0xB2, 0x98, 0x10, - 0x7D, 0x37, 0xDD, 0x38, 0x63, 0x2C, 0x95, 0x90, - 0xBB, 0xFF, 0xC6, 0x24, 0xD4, 0xDE, 0x95, 0x8C, - 0xB6, 0xB6, 0x1A, 0xF0, 0x80, 0xF0, 0x37, 0xAD, - 0x17, 0xD0, 0x35, 0xB6, 0xBF, 0x58, 0xF7, 0x80, - 0xFA, 0xDF, 0x70, 0xF3, 0xC9, 0x59, 0x66, 0x8A, - 0x1B, 0x47, 0x21, 0x98, 0xA5, 0x9A, 0x8A, 0x00 - }, - { - 0xEF, 0xA2, 0xC7, 0xC8, 0x02, 0xE2, 0x10, 0xD2, - 0xD8, 0x0F, 0xB3, 0x50, 0xB3, 0xC2, 0xCB, 0x31, - 0x56, 0x13, 0x18, 0x11, 0xE7, 0x18, 0xEE, 0xE5, - 0xC9, 0xC6, 0x64, 0x0F, 0x87, 0x68, 0x2A, 0x55, - 0x81, 0x2B, 0x10, 0xF4, 0x03, 0x10, 0xBA, 0xA7, - 0xB8, 0x2B, 0x27, 0x3E, 0xF3, 0xAC, 0xC5, 0x5F, - 0xED, 0xE0, 0xB5, 0xF1, 0x94, 0x9D, 0xE4, 0x29, - 0x3D, 0x91, 0xB5, 0x89, 0xA2, 0x17, 0x5F, 0xF7 - }, - { - 0xD6, 0xC6, 0x2A, 0x61, 0x82, 0x71, 0xF3, 0xBC, - 0xBE, 0x00, 0x79, 0x24, 0xA0, 0xC9, 0x81, 0x2F, - 0x83, 0x17, 0x44, 0x5F, 0xB6, 0xFB, 0x19, 0xEB, - 0x58, 0x9A, 0x62, 0x9F, 0x51, 0x2F, 0xB3, 0x8A, - 0x0B, 0x4E, 0x24, 0x7D, 0xEA, 0x88, 0xC5, 0x6A, - 0x1B, 0xAF, 0x17, 0x88, 0x33, 0x65, 0xB4, 0x36, - 0xF2, 0x84, 0x46, 0xFF, 0x66, 0xEA, 0x43, 0x18, - 0x0B, 0xD0, 0x1E, 0xB5, 0xA6, 0x50, 0x9B, 0xD5 - }, - { - 0x0B, 0x41, 0x16, 0x6B, 0xE6, 0x2F, 0x65, 0xE1, - 0x93, 0xB3, 0xB8, 0x65, 0xE6, 0xC4, 0x7A, 0xAD, - 0x26, 0x0A, 0xF5, 0xFC, 0xEE, 0xC9, 0xAB, 0x44, - 0xAB, 0xAA, 0x46, 0x0A, 0x0C, 0x02, 0x46, 0xB6, - 0xC6, 0x9B, 0x67, 0xD7, 0x1D, 0x3A, 0xDF, 0xEC, - 0x60, 0xDC, 0x8E, 0x77, 0x37, 0x2F, 0x09, 0x49, - 0x52, 0x34, 0x4F, 0xE1, 0x0C, 0x0D, 0x59, 0xEF, - 0xEC, 0x0E, 0x11, 0xC4, 0xA5, 0x16, 0x93, 0x6D - }, - { - 0x79, 0xD5, 0xF9, 0xFF, 0xC0, 0x5E, 0xCF, 0x33, - 0x7D, 0xE9, 0xF1, 0xE0, 0xF1, 0xD8, 0x9B, 0x30, - 0xAC, 0xFE, 0xBB, 0xB8, 0x8A, 0x69, 0x35, 0x86, - 0x78, 0x18, 0xCD, 0x8D, 0x45, 0xDA, 0x3D, 0x25, - 0x18, 0xDE, 0x61, 0xA7, 0xFE, 0x28, 0x75, 0x1B, - 0x61, 0x8F, 0x7A, 0x87, 0x5E, 0x11, 0x89, 0x8F, - 0xFF, 0x74, 0x15, 0x7A, 0xB9, 0x06, 0x81, 0xBD, - 0x53, 0xFA, 0x69, 0x62, 0x67, 0x1E, 0xD9, 0x9D - }, - { - 0xBE, 0xA9, 0x83, 0xD7, 0x6F, 0x24, 0xB1, 0xEE, - 0xDE, 0x1D, 0x06, 0x71, 0x48, 0x05, 0x76, 0x8F, - 0xAA, 0xAD, 0x47, 0x08, 0xC9, 0xA4, 0xFF, 0x9C, - 0xD2, 0x42, 0x2F, 0x70, 0x6B, 0x6F, 0x0C, 0x30, - 0x6D, 0x8B, 0x67, 0xF3, 0x40, 0x89, 0xC6, 0x5E, - 0xD3, 0x88, 0x0C, 0x75, 0xF6, 0x7B, 0xBC, 0x4D, - 0x89, 0xAD, 0x87, 0x12, 0x0A, 0x77, 0xD0, 0xFF, - 0xE4, 0x36, 0xFB, 0x7B, 0x58, 0xB2, 0xCA, 0x41 - }, - { - 0x46, 0x6F, 0xD9, 0x15, 0xEF, 0xD9, 0x50, 0xBC, - 0x96, 0x65, 0x78, 0xCD, 0x92, 0xC6, 0x85, 0x92, - 0x9D, 0x7B, 0x51, 0xA6, 0x3D, 0xB1, 0x42, 0xC7, - 0xB9, 0xA9, 0x3D, 0x16, 0x52, 0x04, 0x95, 0x31, - 0x9B, 0x87, 0xF6, 0x58, 0xE6, 0xAF, 0xDA, 0x1B, - 0x42, 0x77, 0x3E, 0x2D, 0x49, 0xDA, 0x81, 0x45, - 0x94, 0xA5, 0x54, 0x90, 0x89, 0xEF, 0xB1, 0xF3, - 0xAB, 0x5F, 0x15, 0x90, 0xCA, 0x0A, 0x02, 0xAF - }, - { - 0xF6, 0x46, 0x11, 0x13, 0x7A, 0xD2, 0x95, 0x46, - 0x70, 0xEA, 0xEC, 0xD6, 0x26, 0xD2, 0x12, 0xCF, - 0xC5, 0xB9, 0xF6, 0xBB, 0x41, 0xAA, 0xEB, 0xB1, - 0xD7, 0x1E, 0x89, 0x79, 0x2E, 0xB1, 0x31, 0x7A, - 0xED, 0xC6, 0x38, 0x13, 0xFE, 0x63, 0xDE, 0x40, - 0x17, 0x98, 0xDF, 0x75, 0x6C, 0xA1, 0xF2, 0x20, - 0x35, 0xA0, 0xFA, 0xBD, 0x37, 0xFB, 0x11, 0x03, - 0x43, 0x7F, 0x89, 0x1E, 0xAD, 0x5E, 0x64, 0x29 - }, - { - 0x32, 0xE1, 0xF9, 0x38, 0xA2, 0x7F, 0xAA, 0xD8, - 0xAC, 0x4A, 0x13, 0xFD, 0x4F, 0x6A, 0x8B, 0xF3, - 0xDA, 0xBE, 0x4B, 0xC7, 0x2A, 0xF1, 0x1C, 0x8F, - 0x0E, 0x1A, 0x06, 0x56, 0x7E, 0xD7, 0x04, 0xB8, - 0xE7, 0x8E, 0x11, 0x40, 0xA0, 0xC7, 0x72, 0x4E, - 0x3E, 0xFB, 0x70, 0xD2, 0x38, 0x07, 0xCF, 0x38, - 0xE6, 0x27, 0xE3, 0x26, 0xAF, 0xC1, 0x64, 0xCD, - 0xED, 0x52, 0xB4, 0x41, 0x39, 0xFF, 0xB3, 0xF3 - }, - { - 0x48, 0x33, 0xAC, 0x92, 0xE3, 0x02, 0xAC, 0x2B, - 0x67, 0xB0, 0x2B, 0x88, 0x27, 0x14, 0x3B, 0xAD, - 0xA1, 0x5C, 0xED, 0x22, 0x0E, 0x1D, 0x1F, 0x5B, - 0x71, 0x12, 0x0C, 0x51, 0xEE, 0x54, 0xC1, 0x9D, - 0x30, 0x1F, 0x29, 0x60, 0xBD, 0xB5, 0xA2, 0xCE, - 0x27, 0xD4, 0x41, 0xD1, 0x4A, 0xF0, 0x80, 0xCB, - 0x01, 0x0A, 0x8A, 0x23, 0xEE, 0xFF, 0x58, 0x11, - 0xDF, 0xA4, 0x4D, 0x1D, 0x7B, 0x35, 0x8B, 0x48 - }, - { - 0x9A, 0x03, 0x88, 0xCE, 0xE1, 0xAD, 0x01, 0x46, - 0x17, 0x7C, 0x48, 0xB5, 0xA0, 0x8A, 0x2D, 0xB3, - 0xC4, 0x89, 0xE8, 0x4C, 0xE2, 0xAB, 0xA8, 0xC6, - 0x45, 0x11, 0x2A, 0x02, 0x1E, 0x41, 0x1C, 0xF8, - 0x29, 0x12, 0x7F, 0xA2, 0xF1, 0xD1, 0xAE, 0x1B, - 0xAF, 0x3A, 0x33, 0xEA, 0x53, 0x09, 0x84, 0x77, - 0xA7, 0xD1, 0x2B, 0xA7, 0x48, 0xD2, 0xAF, 0x24, - 0xD1, 0x66, 0x02, 0xE9, 0x19, 0x07, 0x76, 0x23 - }, - { - 0xE3, 0xDF, 0x00, 0x74, 0xA9, 0x37, 0x35, 0x13, - 0x0D, 0x99, 0x22, 0xD2, 0xBE, 0x91, 0x6F, 0x35, - 0x34, 0x3D, 0x98, 0x8C, 0xE5, 0x9D, 0x76, 0x97, - 0x15, 0xA9, 0x83, 0xB4, 0xBA, 0x80, 0x7C, 0xE1, - 0xEE, 0x70, 0xA3, 0x13, 0xE5, 0x92, 0x31, 0x58, - 0x4F, 0x55, 0x6E, 0xBB, 0xA1, 0xB9, 0x0B, 0x1B, - 0xB6, 0xA6, 0xC5, 0x81, 0xA4, 0xB4, 0x7C, 0x3F, - 0xF5, 0x21, 0x89, 0x65, 0x2A, 0xAB, 0x36, 0xF5 - }, - { - 0x91, 0x91, 0xCF, 0x46, 0x1B, 0x69, 0x59, 0xBE, - 0xC9, 0x3E, 0xAE, 0x7F, 0xB1, 0xC6, 0xE3, 0x70, - 0x73, 0xD1, 0xA6, 0x15, 0x27, 0xAD, 0x75, 0xD1, - 0x0B, 0x7F, 0x89, 0x49, 0xD9, 0xB8, 0xAF, 0x70, - 0xA2, 0x3A, 0xD1, 0x31, 0x2E, 0xD5, 0x1F, 0x70, - 0xF0, 0xE9, 0xDF, 0x60, 0x1D, 0xDA, 0xE2, 0x38, - 0x90, 0x6C, 0x0F, 0xE3, 0xF7, 0x66, 0xB1, 0x4F, - 0x11, 0x3B, 0x26, 0xBC, 0x85, 0x42, 0xD1, 0xD2 - }, - { - 0x2A, 0x8B, 0xAD, 0xE2, 0x72, 0xEE, 0x7A, 0xC6, - 0x43, 0xC5, 0xE3, 0x71, 0x47, 0xFA, 0xAC, 0x92, - 0xC3, 0x97, 0x0B, 0xD3, 0x86, 0x2F, 0x53, 0x1E, - 0x5D, 0xCE, 0xA5, 0xCE, 0xAC, 0xD1, 0x83, 0x74, - 0x53, 0xAA, 0x49, 0x8D, 0x78, 0x5B, 0x4D, 0x1F, - 0x89, 0xE1, 0xB2, 0xA7, 0x39, 0xCA, 0x4A, 0x38, - 0x49, 0x87, 0x30, 0x27, 0x46, 0xB4, 0xF1, 0x13, - 0x42, 0x43, 0x02, 0xC4, 0xA1, 0xE0, 0xF9, 0xDF - }, - { - 0x32, 0x3E, 0x67, 0x93, 0xC7, 0xDD, 0x9B, 0x4D, - 0x7B, 0xB7, 0xFB, 0xF2, 0x15, 0x31, 0xD3, 0x7F, - 0x72, 0x64, 0x53, 0x2C, 0x58, 0xF1, 0x22, 0x55, - 0x48, 0xD0, 0x6E, 0x69, 0x40, 0xC6, 0x3E, 0x91, - 0x27, 0x09, 0x90, 0xE7, 0xF5, 0x64, 0x32, 0x03, - 0xC9, 0x87, 0x64, 0x7E, 0x5C, 0xF6, 0x61, 0x03, - 0xE7, 0x9B, 0x71, 0x4C, 0x58, 0x1B, 0xD8, 0x77, - 0x2E, 0x19, 0xD0, 0xF0, 0x05, 0xDC, 0x86, 0x33 - }, - { - 0xF9, 0x22, 0x07, 0x6D, 0x29, 0x5D, 0x23, 0xE2, - 0x98, 0x58, 0x30, 0xAA, 0xD2, 0xF2, 0x3F, 0x65, - 0x2F, 0x7F, 0x4D, 0xB4, 0x2C, 0x11, 0x9E, 0xD2, - 0x20, 0xA5, 0x45, 0x14, 0x88, 0xA4, 0x53, 0xF5, - 0x9F, 0xA8, 0xA2, 0xDE, 0x23, 0x03, 0x00, 0x0D, - 0x6B, 0xFD, 0x8C, 0x48, 0x23, 0xA8, 0x5F, 0xAD, - 0xB4, 0xFB, 0x8E, 0x7E, 0xAC, 0x12, 0x2B, 0xF0, - 0x12, 0x47, 0xD7, 0x6F, 0x65, 0x24, 0x7D, 0x45 - }, - { - 0xDC, 0x40, 0x00, 0x95, 0x60, 0x95, 0x92, 0x91, - 0x55, 0x8E, 0xBE, 0x07, 0x20, 0x64, 0xCE, 0x67, - 0x12, 0xC9, 0x21, 0xB5, 0x40, 0x9B, 0x44, 0xE0, - 0x4F, 0x9A, 0x56, 0x5E, 0xEA, 0xDD, 0x39, 0xA7, - 0x71, 0x6E, 0x21, 0xB4, 0x6D, 0xD8, 0x61, 0x65, - 0x17, 0xA2, 0x1A, 0x0C, 0x03, 0x41, 0x9E, 0x94, - 0xDB, 0x82, 0x0A, 0x35, 0x3F, 0x15, 0x2D, 0x10, - 0x83, 0x84, 0xBE, 0x94, 0x70, 0x09, 0x3F, 0x89 - }, - { - 0x7F, 0xA4, 0xBE, 0x91, 0xCA, 0x52, 0x07, 0xFF, - 0x08, 0x7D, 0xE9, 0x2F, 0x1D, 0xB0, 0x9B, 0xF7, - 0x1A, 0x67, 0x87, 0x8B, 0xED, 0x19, 0x3A, 0x5C, - 0x2C, 0xC4, 0xE3, 0x53, 0x23, 0xB8, 0xDF, 0x99, - 0xA2, 0x6E, 0xCB, 0x98, 0x88, 0xD7, 0xB3, 0x4A, - 0x73, 0x9D, 0x64, 0x1A, 0x0E, 0xCD, 0x0A, 0x66, - 0x47, 0xA6, 0xA0, 0x64, 0x26, 0xF3, 0xCC, 0x1F, - 0xEF, 0xDF, 0x90, 0x69, 0x92, 0x2F, 0xAE, 0x4C - }, - { - 0xBA, 0xD3, 0xCD, 0x75, 0x90, 0x5D, 0x7B, 0xFD, - 0xA3, 0x32, 0x2B, 0x44, 0xA7, 0xD3, 0x58, 0x87, - 0x14, 0xD3, 0x33, 0xEE, 0x86, 0x85, 0x5A, 0x87, - 0x27, 0x47, 0xE7, 0x04, 0xF6, 0x11, 0x94, 0x84, - 0xBD, 0xB7, 0xD0, 0x77, 0xFA, 0x08, 0xED, 0xC4, - 0xA7, 0x9D, 0xE0, 0xF4, 0x3F, 0xCA, 0x8D, 0x43, - 0x6E, 0x8A, 0x10, 0x08, 0x57, 0xF5, 0x9B, 0xC7, - 0xB0, 0x55, 0xB9, 0x87, 0xF9, 0x7A, 0xC6, 0xB9 - }, - { - 0xB7, 0xDE, 0xE8, 0xE8, 0x33, 0x9D, 0xB2, 0x97, - 0xFD, 0xAA, 0x3C, 0xA5, 0xC1, 0xDC, 0x19, 0x88, - 0xD9, 0x7F, 0x5F, 0xB6, 0x20, 0x8C, 0x64, 0xDE, - 0xA9, 0x5E, 0x1C, 0x78, 0xF3, 0x37, 0xCE, 0x20, - 0xA2, 0xB4, 0xDF, 0x17, 0xA7, 0xB8, 0x23, 0x6A, - 0x90, 0xD6, 0x28, 0x67, 0x33, 0x16, 0x35, 0x72, - 0xC8, 0x67, 0xD9, 0x3D, 0xE8, 0x9E, 0xF6, 0x2F, - 0xA0, 0x5D, 0xAB, 0x70, 0x7E, 0xC3, 0xA7, 0x70 - }, - { - 0xA0, 0xF7, 0xE9, 0x3C, 0xF3, 0x25, 0x02, 0xB9, - 0xFD, 0x79, 0xEC, 0x20, 0x54, 0x62, 0x07, 0xF3, - 0x31, 0xC5, 0x29, 0x9E, 0xCE, 0xF3, 0x50, 0xD6, - 0x6E, 0xA8, 0x55, 0xC8, 0x7F, 0xBD, 0xDF, 0x18, - 0xE6, 0x91, 0xC2, 0x0D, 0x04, 0x5A, 0x30, 0x8F, - 0x83, 0xF6, 0xCB, 0x8F, 0xCA, 0x69, 0xD7, 0xE2, - 0xB3, 0x9B, 0x34, 0xD2, 0xF8, 0x77, 0x27, 0x6C, - 0x19, 0x6B, 0xF5, 0x14, 0xBA, 0xC6, 0x02, 0x70 - }, - { - 0x6F, 0x50, 0x93, 0xCF, 0xC8, 0x83, 0x00, 0xBF, - 0x68, 0x8E, 0x88, 0x4B, 0x4C, 0x5E, 0xC2, 0xC3, - 0x1A, 0x8C, 0xC2, 0x8D, 0x63, 0x31, 0xAD, 0x7C, - 0xA7, 0x1D, 0x97, 0x60, 0x21, 0x64, 0x82, 0x05, - 0x28, 0x15, 0xD4, 0x4F, 0xC6, 0x9E, 0x18, 0xA8, - 0xDC, 0x8B, 0xD7, 0x1B, 0x31, 0xF2, 0xB5, 0x89, - 0xA7, 0xC0, 0x78, 0x0B, 0x61, 0x99, 0x38, 0x5F, - 0x8D, 0xAE, 0x6C, 0x9B, 0x79, 0x74, 0xC4, 0xCB - }, - { - 0x3C, 0xFF, 0x46, 0xAC, 0x35, 0x46, 0xF6, 0x5A, - 0xD7, 0xA7, 0x20, 0x87, 0x1A, 0xFA, 0x20, 0xA9, - 0x21, 0x6D, 0xDA, 0x5C, 0x45, 0x18, 0x81, 0x56, - 0xA5, 0xBB, 0xED, 0xF2, 0x15, 0x46, 0xD4, 0xBB, - 0x39, 0x40, 0xB2, 0x1A, 0x41, 0xA3, 0x94, 0x03, - 0xE3, 0xCF, 0xD5, 0xE7, 0xA0, 0xE7, 0x90, 0x4D, - 0xA9, 0x5F, 0x4D, 0x8E, 0x0C, 0x5B, 0xF5, 0xB7, - 0x0E, 0xB0, 0x29, 0x55, 0x6E, 0xFD, 0x49, 0x7E - }, - { - 0xAF, 0x66, 0x8A, 0x80, 0x5E, 0x6D, 0x70, 0x4B, - 0x1E, 0x58, 0x1F, 0x1E, 0x8E, 0x3C, 0x00, 0xCF, - 0x4C, 0xF3, 0xE5, 0x46, 0x14, 0x7C, 0x40, 0x6D, - 0x17, 0xCA, 0x97, 0x4D, 0x19, 0xA0, 0x14, 0xC7, - 0x8B, 0x44, 0xE7, 0x2D, 0xDE, 0xEB, 0x65, 0x26, - 0x07, 0xE8, 0x6D, 0x69, 0x02, 0x59, 0xDC, 0xAB, - 0x0D, 0xDA, 0x81, 0xC7, 0x7C, 0x7E, 0xE2, 0x72, - 0x1E, 0x82, 0xBB, 0xB1, 0x39, 0x43, 0x07, 0x1D - }, - { - 0x79, 0xDD, 0xEB, 0x5C, 0x54, 0xDE, 0xD1, 0xE4, - 0x48, 0x40, 0x71, 0xC4, 0x6B, 0xB4, 0x28, 0x02, - 0xD2, 0x3B, 0x3A, 0x08, 0xC1, 0x23, 0x11, 0xBE, - 0x36, 0x3C, 0x7C, 0x7A, 0x02, 0x5A, 0x17, 0x64, - 0xC8, 0xD8, 0x50, 0x69, 0xFD, 0xA8, 0xD5, 0x17, - 0x77, 0x7D, 0x8D, 0xD8, 0x09, 0xE3, 0xD4, 0xA9, - 0x56, 0x04, 0x1A, 0x70, 0x79, 0xF9, 0x16, 0x7B, - 0x0F, 0xE9, 0x71, 0x2E, 0x5F, 0x12, 0x29, 0xF5 - }, - { - 0x99, 0x8E, 0x82, 0xF4, 0x26, 0x3D, 0x53, 0xAE, - 0xDA, 0xC9, 0x39, 0xEB, 0xB6, 0xEB, 0x8B, 0x19, - 0x69, 0x74, 0x6C, 0xB8, 0x15, 0xBD, 0x72, 0x1F, - 0x17, 0xA4, 0x8B, 0xEE, 0x9E, 0xCF, 0xF2, 0xFE, - 0x59, 0x8C, 0x53, 0x9C, 0x41, 0x9A, 0x60, 0xE0, - 0xD5, 0xA0, 0x4F, 0x1C, 0xB5, 0x23, 0xA2, 0xFD, - 0x05, 0x38, 0xBB, 0x17, 0x8E, 0x44, 0x75, 0x8D, - 0x31, 0x59, 0xAB, 0x9E, 0x02, 0x84, 0x01, 0xA3 - }, - { - 0x33, 0x96, 0xCF, 0xD5, 0xCD, 0xE1, 0x4A, 0xEC, - 0x1A, 0xAE, 0xD3, 0xE1, 0x22, 0x52, 0xCF, 0xD6, - 0xE3, 0x42, 0xED, 0x25, 0x5E, 0x8E, 0x9E, 0x1B, - 0xE1, 0x0F, 0x1F, 0x27, 0x38, 0x77, 0xF3, 0x63, - 0x33, 0x81, 0xE3, 0xC9, 0x61, 0xE6, 0x7E, 0xC4, - 0x1E, 0x8F, 0x9E, 0x16, 0x11, 0x0F, 0xC0, 0x3D, - 0xDE, 0x88, 0xBF, 0xC0, 0x96, 0xFC, 0x15, 0x14, - 0x46, 0x1D, 0x70, 0xD0, 0xBE, 0xCE, 0x0A, 0xF6 - }, - { - 0x77, 0x7D, 0x9D, 0xC5, 0x5A, 0x2F, 0x57, 0xA4, - 0x6E, 0xA0, 0x6A, 0x2F, 0x4C, 0xB9, 0x76, 0x0D, - 0x00, 0xD7, 0xA8, 0x62, 0xD0, 0xA2, 0xAA, 0x19, - 0x46, 0x7B, 0x57, 0x0F, 0x7C, 0x7D, 0x5E, 0xA7, - 0x62, 0x9A, 0x95, 0xEB, 0x20, 0x0E, 0x1F, 0x9D, - 0xB0, 0x66, 0x10, 0xCF, 0x8E, 0x30, 0xD5, 0xE6, - 0xAD, 0x0A, 0x7B, 0x63, 0x29, 0x77, 0xFC, 0x21, - 0xBB, 0x17, 0x89, 0x67, 0xF3, 0xB0, 0xE0, 0x9B - }, - { - 0x32, 0xEE, 0x35, 0x7F, 0xC9, 0x16, 0x36, 0xA8, - 0x55, 0xBA, 0x01, 0xA0, 0xB8, 0xDA, 0x6F, 0x35, - 0x53, 0xB1, 0xD5, 0x20, 0xAD, 0xCF, 0xE8, 0xFE, - 0x9D, 0xEB, 0xCC, 0xB2, 0x6C, 0x5C, 0x4C, 0xE8, - 0x50, 0x5B, 0xB1, 0xEF, 0xB5, 0xED, 0x5B, 0xAA, - 0x4C, 0x52, 0x45, 0xB5, 0x0D, 0x74, 0x46, 0x3F, - 0x07, 0x67, 0xB2, 0xC7, 0x83, 0xC4, 0x7A, 0x93, - 0xB0, 0xFD, 0xA6, 0x68, 0x95, 0x69, 0x3C, 0xE6 - }, - { - 0x34, 0x0C, 0x0A, 0x7C, 0xE4, 0x96, 0xFE, 0xBD, - 0xA1, 0x3F, 0xA2, 0x40, 0x7A, 0x21, 0xDC, 0x19, - 0x83, 0x9B, 0xED, 0xAE, 0x1A, 0x08, 0x6A, 0xD0, - 0xFE, 0xD3, 0x91, 0x7D, 0xF9, 0xBF, 0x40, 0x94, - 0x4A, 0x78, 0x7F, 0x64, 0x1E, 0x90, 0xDD, 0xBA, - 0xE0, 0x3A, 0x93, 0x37, 0x72, 0x3E, 0x51, 0x66, - 0x8F, 0xB8, 0x93, 0x77, 0x2C, 0x0F, 0xBD, 0xB3, - 0xEB, 0x7E, 0xF7, 0x90, 0xDF, 0xCB, 0xB9, 0xAB - }, - { - 0xD8, 0x6A, 0x5B, 0xAA, 0x33, 0x65, 0xAB, 0xD8, - 0xF4, 0x42, 0xCD, 0x6E, 0xBB, 0x93, 0x11, 0x38, - 0x19, 0xF0, 0xB4, 0x60, 0x61, 0xE1, 0x34, 0x04, - 0xEF, 0xAA, 0x1A, 0x58, 0xE1, 0xFF, 0x27, 0x2A, - 0xD4, 0xBF, 0xD3, 0x08, 0x15, 0xAD, 0xD8, 0x8A, - 0xD9, 0x8F, 0xCE, 0x9A, 0xF0, 0x18, 0x37, 0x4C, - 0xA6, 0x0D, 0x89, 0x79, 0x0F, 0x71, 0xA6, 0x07, - 0x5F, 0x3D, 0x68, 0xD3, 0x20, 0x21, 0xA9, 0xEB - }, - { - 0xA6, 0x7E, 0x6E, 0xC6, 0x57, 0xC9, 0x5E, 0xAB, - 0x3C, 0x3C, 0x32, 0xE4, 0x1F, 0xBF, 0x39, 0xCF, - 0x20, 0x33, 0xAB, 0x4B, 0xE2, 0xE2, 0xB8, 0x21, - 0x10, 0x4A, 0xDB, 0xE6, 0x9D, 0x16, 0xE9, 0x48, - 0xDC, 0xE4, 0xC4, 0xC6, 0xA3, 0xCF, 0x22, 0x76, - 0x90, 0x1F, 0x7D, 0x4F, 0xFD, 0x69, 0x65, 0x46, - 0x49, 0x88, 0x2C, 0x01, 0x4D, 0x2C, 0x10, 0xA1, - 0x30, 0x2B, 0x79, 0xC6, 0x15, 0x69, 0xCD, 0x36 - }, - { - 0x55, 0xCE, 0x19, 0x2A, 0xE4, 0xB3, 0xEA, 0xF8, - 0x55, 0x59, 0x0E, 0x2D, 0x44, 0xE6, 0x25, 0xD9, - 0xBA, 0x14, 0x6E, 0xB7, 0x50, 0x48, 0xE6, 0xB5, - 0x6E, 0x02, 0x50, 0x31, 0xEF, 0xBA, 0x0B, 0xDA, - 0x8A, 0xAA, 0xFA, 0x04, 0x70, 0xB7, 0xAC, 0x3D, - 0x40, 0x6E, 0x5A, 0xBA, 0x3E, 0x83, 0x2F, 0x27, - 0xA5, 0x07, 0x24, 0x6D, 0x1B, 0x5F, 0x33, 0xDE, - 0xA1, 0xF7, 0x24, 0xE2, 0xB8, 0x1B, 0x0C, 0x98 - }, - { - 0xB3, 0xA2, 0x0C, 0x1F, 0xB0, 0xB4, 0xF0, 0xD3, - 0x77, 0x26, 0xC2, 0x3B, 0x58, 0x77, 0xDD, 0x8E, - 0x72, 0xF6, 0x98, 0x86, 0xE0, 0x9A, 0x8C, 0x68, - 0xCF, 0xC3, 0x01, 0xD2, 0xA3, 0xF2, 0xF9, 0x5C, - 0xEF, 0xCF, 0xAB, 0xB8, 0x88, 0x99, 0x03, 0xC7, - 0x32, 0xF4, 0xE8, 0x14, 0x32, 0xD3, 0xF6, 0x78, - 0xCC, 0xDF, 0xC3, 0x98, 0xAC, 0xD8, 0xA2, 0xF0, - 0x66, 0x41, 0x10, 0x04, 0x50, 0xD8, 0x9F, 0x32 - }, - { - 0xF7, 0x27, 0x2D, 0x93, 0xC7, 0x01, 0x2D, 0x38, - 0xB2, 0x7F, 0x0C, 0x9A, 0xE2, 0x01, 0x79, 0x58, - 0xBB, 0xA6, 0x66, 0xA9, 0xDE, 0x1E, 0x88, 0x12, - 0xE9, 0x74, 0x37, 0xAE, 0xB2, 0xE0, 0x3C, 0x99, - 0x94, 0x38, 0xF0, 0xBE, 0x33, 0x3D, 0x09, 0xAD, - 0xDB, 0xCF, 0xAA, 0xC7, 0xAA, 0x73, 0xF7, 0xB6, - 0xCC, 0xEC, 0x67, 0xDC, 0x07, 0x79, 0x98, 0xDE, - 0xDB, 0x8C, 0x13, 0x32, 0xBA, 0xC0, 0xFB, 0xA8 - }, - { - 0x1F, 0xE7, 0xB3, 0xDE, 0x34, 0xC0, 0x47, 0x9C, - 0xA8, 0x40, 0x5F, 0x3C, 0xBC, 0xD2, 0xDB, 0x64, - 0xBB, 0x18, 0xDB, 0xB2, 0x91, 0xA5, 0xFE, 0xAA, - 0x16, 0xC5, 0x22, 0x8C, 0x93, 0xEE, 0x21, 0xC7, - 0x11, 0xD6, 0x8A, 0x01, 0x0C, 0x2A, 0xE8, 0x80, - 0x05, 0xEB, 0xAC, 0x95, 0x9E, 0x3A, 0x32, 0x24, - 0x52, 0xF8, 0x62, 0xDD, 0xE9, 0x4B, 0xB9, 0x41, - 0x81, 0x3E, 0x52, 0x4D, 0x23, 0x47, 0xFE, 0xEE - }, - { - 0x4E, 0xE1, 0xD3, 0x88, 0x05, 0xC3, 0x22, 0x84, - 0xEC, 0xEB, 0xE9, 0x2E, 0x3D, 0xF6, 0xCD, 0x98, - 0xC7, 0xD6, 0x68, 0x0E, 0xAB, 0x0D, 0x68, 0x66, - 0x4F, 0x96, 0x70, 0x6C, 0x45, 0x63, 0x3B, 0x1E, - 0x26, 0x82, 0x22, 0xAA, 0x5A, 0x52, 0x79, 0xEF, - 0x01, 0xFC, 0x28, 0x54, 0x32, 0xAB, 0xEE, 0xD7, - 0x4B, 0xA3, 0xDF, 0x18, 0x9F, 0x50, 0xA9, 0x89, - 0xD5, 0x8E, 0x71, 0x30, 0x62, 0x2D, 0xAA, 0x59 - }, - { - 0x0E, 0x14, 0x05, 0x87, 0x1C, 0x87, 0xA5, 0xEA, - 0x40, 0x83, 0x42, 0xF3, 0x9D, 0x34, 0x94, 0xF9, - 0x39, 0xF7, 0x3C, 0x22, 0x60, 0xC2, 0xA4, 0x3A, - 0x5C, 0x9F, 0x1B, 0x57, 0x33, 0x0C, 0xCA, 0x40, - 0x93, 0xFC, 0x1F, 0x42, 0xF9, 0x6D, 0x83, 0x00, - 0x56, 0x77, 0x03, 0x7D, 0xB5, 0x1A, 0xEF, 0x26, - 0xF0, 0x54, 0x38, 0x05, 0x7A, 0xE7, 0x9E, 0xD1, - 0x44, 0x64, 0xFD, 0x8E, 0x57, 0xD1, 0x55, 0x86 - }, - { - 0x17, 0xC5, 0xCA, 0xB4, 0x09, 0x10, 0x73, 0x62, - 0x1B, 0x5C, 0x24, 0xC3, 0x36, 0x31, 0x6D, 0x0C, - 0xF6, 0x49, 0xBA, 0x1E, 0xFF, 0xEB, 0xFC, 0x87, - 0xE0, 0x43, 0x9C, 0xDF, 0x57, 0x88, 0x87, 0xB2, - 0x21, 0x65, 0x6D, 0x33, 0x9A, 0x6F, 0xD1, 0x98, - 0xAB, 0xAE, 0xE6, 0x7E, 0xA1, 0x88, 0xDD, 0x66, - 0x56, 0x78, 0x23, 0xFC, 0x22, 0x0C, 0x52, 0xB5, - 0x74, 0x90, 0x25, 0x14, 0x69, 0xD2, 0x5D, 0x8C - }, - { - 0x57, 0xDC, 0x27, 0x97, 0xD1, 0x42, 0x68, 0x1C, - 0x94, 0xFE, 0x48, 0x86, 0x26, 0x98, 0x6E, 0xD4, - 0xB2, 0x67, 0x03, 0xCB, 0xF6, 0xBF, 0xE5, 0x93, - 0x91, 0x64, 0x36, 0x57, 0x06, 0x5B, 0x2D, 0x46, - 0xE4, 0xB1, 0xDD, 0xB3, 0xAA, 0x83, 0x2C, 0x9B, - 0xD4, 0x49, 0x75, 0x5A, 0xC8, 0xB1, 0xBF, 0x93, - 0x68, 0x97, 0xFB, 0xC6, 0xAD, 0xE3, 0x78, 0xF2, - 0xBD, 0x64, 0x93, 0xE4, 0x86, 0xF4, 0x20, 0x29 - }, - { - 0x44, 0x12, 0xDD, 0x6B, 0xED, 0x6D, 0xB2, 0xA8, - 0x03, 0xC2, 0xE0, 0xDF, 0x8F, 0x58, 0x29, 0xE7, - 0xA4, 0xB0, 0x41, 0x78, 0x89, 0x51, 0x0D, 0xF7, - 0xDF, 0xEE, 0x49, 0x57, 0x4A, 0x71, 0xEC, 0x0D, - 0x9E, 0x0D, 0x46, 0x06, 0x50, 0x17, 0xC7, 0x2D, - 0xD9, 0x74, 0x39, 0x33, 0xCA, 0x83, 0x9A, 0x76, - 0x8D, 0xD1, 0x5A, 0xB0, 0xB7, 0xC1, 0x4C, 0x62, - 0x6A, 0x35, 0x41, 0x09, 0x69, 0x01, 0x96, 0xAE - }, - { - 0xD0, 0xEB, 0xC7, 0x71, 0x03, 0x1B, 0x7C, 0x16, - 0x00, 0x21, 0xC9, 0xB6, 0xFB, 0xB2, 0xB6, 0x70, - 0xE3, 0xB4, 0x02, 0x70, 0x02, 0x69, 0x07, 0xA3, - 0x91, 0x63, 0xDB, 0x18, 0x73, 0xEC, 0xC3, 0xB8, - 0x00, 0x11, 0x1D, 0xD7, 0xBF, 0x13, 0x8F, 0x83, - 0xA6, 0x10, 0xDC, 0x04, 0x6D, 0xA2, 0x68, 0xB7, - 0x2B, 0x8C, 0x90, 0x86, 0x92, 0x23, 0x77, 0xDB, - 0xED, 0x73, 0x94, 0x82, 0x43, 0xCA, 0x1E, 0x14 - }, - { - 0x10, 0xC4, 0xBA, 0x31, 0x55, 0x91, 0x69, 0x8D, - 0xFB, 0x91, 0xA5, 0x73, 0x37, 0x63, 0x18, 0x84, - 0xB4, 0x73, 0x8D, 0x9F, 0x59, 0x80, 0x78, 0x51, - 0xA6, 0x79, 0x84, 0x0C, 0xC2, 0x87, 0xAC, 0xE3, - 0x01, 0x1C, 0xCD, 0xC8, 0xF4, 0xA4, 0x85, 0xBB, - 0x19, 0x73, 0x40, 0x4E, 0xF9, 0xEE, 0x9B, 0x9C, - 0xF1, 0xEA, 0xDB, 0xC5, 0x40, 0x74, 0xC6, 0xD1, - 0x13, 0xDE, 0x8F, 0xC9, 0x1D, 0x07, 0x97, 0xEB - }, - { - 0x14, 0x64, 0x34, 0x7B, 0xE3, 0x2C, 0x79, 0x59, - 0x17, 0x2B, 0x74, 0x72, 0xD1, 0x1F, 0xE0, 0x78, - 0x44, 0xA5, 0x2E, 0x2D, 0x3B, 0x2D, 0x05, 0x8C, - 0xC6, 0xBC, 0xC0, 0xA8, 0xA2, 0x75, 0xD6, 0xB8, - 0x2B, 0x2D, 0x62, 0x63, 0x75, 0x5E, 0xAF, 0x2A, - 0x65, 0x88, 0xB6, 0xA1, 0xEB, 0x79, 0x9A, 0xF8, - 0x3A, 0x4C, 0xE7, 0x53, 0xF8, 0xC7, 0x5A, 0x22, - 0x84, 0xD0, 0x28, 0x5B, 0xAB, 0x5F, 0x7C, 0x1C - }, - { - 0xF4, 0x09, 0x23, 0x1E, 0xD1, 0x87, 0xF5, 0xC4, - 0xE8, 0x33, 0xFA, 0x9E, 0x30, 0x42, 0xAC, 0xA6, - 0xC8, 0x58, 0xB0, 0x8B, 0x49, 0x6B, 0x25, 0x31, - 0xF8, 0x4F, 0xD5, 0xCE, 0xA9, 0x3E, 0xCD, 0x06, - 0xDA, 0xFE, 0x0A, 0x10, 0xC3, 0xFF, 0x23, 0x76, - 0xC7, 0x4D, 0xC8, 0x0D, 0xA0, 0x7D, 0xA0, 0x18, - 0x64, 0xFB, 0xF2, 0x68, 0x59, 0x60, 0xB5, 0x40, - 0xB3, 0xA2, 0xE9, 0x42, 0xCB, 0x8D, 0x90, 0x9F - }, - { - 0x39, 0x51, 0x32, 0xC5, 0x80, 0xC3, 0x55, 0xB5, - 0xB0, 0xE2, 0x35, 0x33, 0x6C, 0x8D, 0xC1, 0x08, - 0x5E, 0x59, 0x59, 0x64, 0x04, 0x3D, 0x38, 0x9E, - 0x08, 0x1E, 0xFE, 0x48, 0x5B, 0xA4, 0xC6, 0x37, - 0x72, 0xDB, 0x8D, 0x7E, 0x0F, 0x18, 0x6C, 0x50, - 0x98, 0x2E, 0x12, 0x23, 0xEA, 0x78, 0x5A, 0xDC, - 0x74, 0x0B, 0x0C, 0xF2, 0x18, 0x70, 0x74, 0x58, - 0xB8, 0xB8, 0x03, 0x40, 0x42, 0xF9, 0x23, 0xC2 - }, - { - 0xF9, 0x2A, 0xBA, 0xCA, 0x21, 0x32, 0x29, 0x66, - 0x06, 0x49, 0xEF, 0x2D, 0x8F, 0x88, 0x11, 0x5B, - 0x5B, 0xED, 0x8A, 0xB5, 0xB9, 0xBC, 0xA9, 0xA1, - 0xB4, 0xC5, 0x24, 0x57, 0x03, 0x53, 0x10, 0xC4, - 0x1A, 0x6B, 0xEA, 0x2B, 0x23, 0xB7, 0x91, 0x8B, - 0x5B, 0x8B, 0xF3, 0x8B, 0x52, 0xEA, 0xC6, 0xFF, - 0x3B, 0x62, 0x13, 0xA5, 0x22, 0xF3, 0x81, 0xBE, - 0x7F, 0xF0, 0x90, 0x6D, 0xBA, 0x7B, 0xD0, 0x0C - }, - { - 0xCB, 0xAD, 0xE7, 0xAD, 0x3B, 0x5D, 0xEE, 0x0F, - 0xF1, 0xA4, 0x6B, 0x08, 0x2C, 0xF4, 0xE1, 0xE1, - 0xDC, 0x21, 0x62, 0x0D, 0xD2, 0xCC, 0x0E, 0xDC, - 0x2C, 0x70, 0x7A, 0x21, 0x62, 0xD2, 0x14, 0x99, - 0x69, 0xAB, 0xBB, 0x29, 0xC5, 0x72, 0x0B, 0x04, - 0xBD, 0x15, 0x68, 0xA9, 0x55, 0x61, 0x95, 0xE6, - 0x7F, 0x24, 0x32, 0x2D, 0xD9, 0xAA, 0x4E, 0x83, - 0x65, 0x19, 0x1A, 0xA5, 0xB6, 0xC4, 0x45, 0x79 - }, - { - 0xF5, 0x1B, 0x4A, 0xE4, 0xD4, 0xC5, 0x4A, 0x29, - 0xCF, 0x71, 0x35, 0xA8, 0xFE, 0x1E, 0xAB, 0xD5, - 0xE1, 0xBC, 0xBF, 0x82, 0x08, 0x96, 0x96, 0x7D, - 0xC4, 0x1E, 0x38, 0x49, 0xDA, 0xC2, 0x25, 0x07, - 0x69, 0x42, 0x10, 0xCA, 0x11, 0xC4, 0xEB, 0xF1, - 0xC2, 0x9A, 0x8D, 0x4F, 0x71, 0xB3, 0x0F, 0x76, - 0xC9, 0xB6, 0x01, 0x0A, 0xD9, 0x5B, 0xDF, 0xB0, - 0xDE, 0x83, 0x79, 0x25, 0xF0, 0x61, 0x25, 0x97 - }, - { - 0xCE, 0x38, 0x72, 0x11, 0x5D, 0x83, 0x3B, 0x34, - 0x56, 0xCA, 0x94, 0x2E, 0x6E, 0x38, 0x5F, 0x28, - 0xA9, 0x03, 0xBE, 0xAB, 0xFB, 0x75, 0x3F, 0x8A, - 0xFC, 0xCC, 0x12, 0xF2, 0x58, 0x2C, 0xE1, 0xF3, - 0x62, 0x12, 0xBD, 0x05, 0xE0, 0x5A, 0x46, 0xFC, - 0x88, 0xD3, 0x19, 0x50, 0xB4, 0x91, 0x1A, 0xE5, - 0xDC, 0xD8, 0xFF, 0x7A, 0x0B, 0x50, 0x47, 0x4C, - 0xB4, 0x88, 0xCC, 0xF2, 0xA8, 0x9C, 0xD0, 0xEB - }, - { - 0x9B, 0xB7, 0x4C, 0xBD, 0x47, 0xA6, 0x24, 0xCB, - 0xEA, 0xFC, 0xC1, 0x6D, 0x46, 0x29, 0x47, 0xBB, - 0xEA, 0x13, 0x70, 0xB8, 0x5C, 0x96, 0x1A, 0x40, - 0x7D, 0xF9, 0x86, 0x3E, 0x54, 0xE6, 0xD9, 0xE6, - 0xA8, 0xD2, 0xEF, 0x0C, 0x64, 0x97, 0x20, 0x5E, - 0x5E, 0xB7, 0xC3, 0xE5, 0x9E, 0x69, 0x8D, 0x99, - 0x24, 0x63, 0xCA, 0x9D, 0xD4, 0xCF, 0x28, 0xCF, - 0x9A, 0x2D, 0x4E, 0x30, 0xC1, 0x33, 0xE8, 0x55 - }, - { - 0x72, 0x96, 0x33, 0x82, 0x0B, 0xF0, 0x13, 0xD9, - 0xD2, 0xBD, 0x37, 0x3C, 0xCA, 0xC7, 0xBC, 0x9F, - 0x37, 0x16, 0xF6, 0x9E, 0x16, 0xA4, 0x4E, 0x94, - 0x9C, 0x7A, 0x9A, 0x93, 0xDC, 0xA1, 0x26, 0xBB, - 0x1A, 0xA5, 0x4E, 0x5E, 0x70, 0x40, 0x70, 0x7F, - 0x02, 0x87, 0x6A, 0xFD, 0x02, 0x0A, 0xF4, 0x72, - 0x63, 0x9D, 0x49, 0xF5, 0x42, 0x0D, 0x29, 0x4C, - 0x3A, 0xA3, 0x1D, 0x06, 0x7E, 0x3E, 0x85, 0x75 - }, - { - 0x06, 0x86, 0x1D, 0xB3, 0x07, 0xC6, 0x78, 0x08, - 0x6E, 0x8B, 0x2A, 0xEC, 0xDF, 0x18, 0x29, 0xD2, - 0x88, 0x3D, 0x28, 0xB7, 0x31, 0xAB, 0xD0, 0xF1, - 0xE7, 0x2F, 0x1C, 0xED, 0x6C, 0x7A, 0xD4, 0x17, - 0x2E, 0xCA, 0x63, 0x22, 0xA8, 0x3F, 0xB6, 0xA6, - 0x5A, 0xFA, 0x37, 0xE9, 0x4A, 0x3E, 0x2B, 0xA2, - 0x05, 0xB8, 0x7B, 0xF3, 0x82, 0xD9, 0x15, 0x88, - 0x49, 0x7A, 0x46, 0x50, 0x88, 0x3B, 0xD8, 0x75 - }, - { - 0x35, 0x6E, 0xCE, 0xAF, 0x17, 0x02, 0xB3, 0x70, - 0xF4, 0xAA, 0xB8, 0xEA, 0x82, 0x84, 0x86, 0xF3, - 0x30, 0x13, 0xF7, 0x44, 0xB3, 0x9E, 0x7E, 0xA2, - 0x6C, 0x69, 0x18, 0xD6, 0x0E, 0x1A, 0xBC, 0xF4, - 0x4F, 0xB1, 0x6E, 0xDC, 0xA7, 0x72, 0x0A, 0xCF, - 0xC6, 0xA7, 0x01, 0xBF, 0x1E, 0x2C, 0x35, 0xDD, - 0xBD, 0x69, 0x5A, 0x8D, 0x40, 0x8E, 0x8C, 0x96, - 0x32, 0xE8, 0xCD, 0x27, 0x23, 0x0C, 0xAD, 0x8D - }, - { - 0x48, 0x9A, 0x39, 0xD0, 0xFC, 0x3C, 0xDE, 0xAF, - 0x42, 0x89, 0x2E, 0xD8, 0x03, 0x85, 0xC1, 0x1C, - 0xE2, 0x93, 0xC9, 0x32, 0x21, 0x5B, 0xB2, 0x31, - 0x88, 0x69, 0x2A, 0x86, 0xE6, 0x1B, 0xCA, 0xD9, - 0x2C, 0x2A, 0x1D, 0x11, 0x42, 0x60, 0x1B, 0x1B, - 0xDF, 0x09, 0x82, 0xD1, 0xCD, 0x1E, 0x05, 0xC0, - 0x52, 0xDE, 0x81, 0x9E, 0x64, 0xF2, 0x47, 0xDB, - 0x35, 0x91, 0x5D, 0xD1, 0xDB, 0x79, 0xA3, 0xB5 - }, - { - 0xC0, 0x2F, 0x46, 0x4B, 0x4D, 0xD1, 0x81, 0x17, - 0xE3, 0x0A, 0x8D, 0xB8, 0xEF, 0x1D, 0xA0, 0x67, - 0x13, 0x4B, 0x60, 0x4E, 0xFA, 0x19, 0x51, 0x76, - 0x7E, 0xE6, 0x32, 0xDC, 0x02, 0x4D, 0x64, 0xC0, - 0x0F, 0x24, 0x49, 0xF0, 0x42, 0xDB, 0x3A, 0xEA, - 0x01, 0x74, 0xEB, 0xCD, 0xBB, 0x4F, 0xF5, 0x9D, - 0xAE, 0x75, 0x4F, 0x72, 0x39, 0x46, 0xF1, 0xB9, - 0x0A, 0x77, 0xFD, 0x95, 0x23, 0x69, 0x0B, 0x7B - }, - { - 0xFB, 0x31, 0xE6, 0xDD, 0xB8, 0x6D, 0xBF, 0xF3, - 0x72, 0x64, 0x6D, 0x1E, 0x3A, 0x3F, 0x31, 0xDD, - 0x61, 0x15, 0x9F, 0xC3, 0x93, 0x65, 0x8C, 0x2E, - 0xE9, 0x57, 0x10, 0x3B, 0xF2, 0x11, 0x6B, 0xDE, - 0xF8, 0x2C, 0x33, 0xE8, 0x69, 0xF3, 0xC8, 0x3A, - 0xC3, 0xC2, 0xF6, 0x38, 0x0C, 0xF6, 0x92, 0xF7, - 0xB1, 0xDC, 0xBA, 0xE0, 0xBB, 0x22, 0x7A, 0xD3, - 0x47, 0xE7, 0x54, 0x13, 0x74, 0x66, 0xC6, 0x9F - }, - { - 0x00, 0x60, 0x62, 0xAB, 0xE1, 0x6C, 0x2F, 0xE7, - 0x9A, 0xF8, 0x80, 0x85, 0xE0, 0xB5, 0x82, 0xB1, - 0x06, 0xE7, 0xF7, 0x9F, 0x01, 0xA4, 0x39, 0x46, - 0xC7, 0x8B, 0x19, 0xF9, 0xBD, 0xD7, 0x25, 0x99, - 0x76, 0x36, 0xA3, 0x32, 0xEB, 0x9A, 0x3A, 0xAA, - 0x6D, 0xE0, 0xD4, 0xA8, 0xE9, 0xE2, 0x8E, 0x8C, - 0x77, 0x87, 0x74, 0x22, 0x4C, 0x66, 0x5B, 0xF7, - 0xBC, 0x36, 0x44, 0xFC, 0xE4, 0x11, 0x22, 0x8C - }, - { - 0xD4, 0x4A, 0x6D, 0xB3, 0xDE, 0x9F, 0xD4, 0xE4, - 0xA7, 0xEF, 0x15, 0x5A, 0x01, 0xBC, 0xCB, 0x91, - 0xC1, 0xBC, 0xF1, 0xCB, 0x53, 0x22, 0x56, 0x89, - 0xA7, 0x7A, 0x0D, 0x23, 0xB4, 0xD3, 0x9A, 0x89, - 0xA1, 0x89, 0xF2, 0x89, 0x80, 0xF9, 0x1C, 0x56, - 0xEA, 0xC5, 0x87, 0x9E, 0xAE, 0x93, 0x3C, 0xED, - 0x7F, 0x26, 0x7E, 0x2F, 0x70, 0x40, 0xEB, 0x38, - 0x0F, 0xDB, 0xBF, 0x34, 0xA6, 0xB7, 0xB6, 0x15 - }, - { - 0x5A, 0xFB, 0xFE, 0xA1, 0xDE, 0xDA, 0x5A, 0xEA, - 0xB9, 0x2E, 0x4D, 0x0C, 0x31, 0xD1, 0x6A, 0x9A, - 0x86, 0xBF, 0x7C, 0x75, 0x23, 0x27, 0x4A, 0x05, - 0xC5, 0x05, 0x29, 0xF5, 0xC1, 0x39, 0xDB, 0x10, - 0x93, 0x3A, 0x52, 0xC6, 0x22, 0x9C, 0xD3, 0x11, - 0x08, 0xF0, 0x83, 0xFB, 0x0C, 0x85, 0xCF, 0x52, - 0x83, 0x1B, 0x5A, 0x05, 0xF2, 0x55, 0x0A, 0x77, - 0xB5, 0x70, 0x3C, 0xC6, 0x68, 0x91, 0x2D, 0xBC - }, - { - 0xD1, 0x7F, 0xCA, 0xD4, 0xE0, 0xD8, 0xBD, 0xE2, - 0xED, 0xFD, 0xA1, 0x68, 0xBA, 0x47, 0x10, 0x4B, - 0xBC, 0xA4, 0xD2, 0x6D, 0xA2, 0xD3, 0x1A, 0x07, - 0x0B, 0x0F, 0xBA, 0x0B, 0x26, 0xEE, 0xDD, 0x95, - 0xEE, 0xC1, 0xFC, 0x34, 0xD7, 0x6C, 0xD4, 0xA1, - 0xCB, 0x15, 0xF2, 0x62, 0x16, 0x88, 0xA9, 0xCC, - 0x0E, 0x96, 0x35, 0x8D, 0xE9, 0x93, 0x22, 0x2B, - 0xB3, 0xE3, 0xCD, 0x0B, 0xFD, 0xCB, 0x74, 0x6C - }, - { - 0xBD, 0x6A, 0x59, 0x21, 0x63, 0x37, 0xB4, 0x5D, - 0x6B, 0x71, 0xAE, 0xAC, 0x01, 0x36, 0x6B, 0xFE, - 0x96, 0x60, 0xE0, 0xFB, 0xC2, 0x95, 0x9A, 0xDB, - 0xB6, 0x8D, 0x52, 0x6C, 0x43, 0xD4, 0x8F, 0xFF, - 0xFE, 0x2F, 0xFC, 0x43, 0x05, 0x88, 0xE7, 0x8E, - 0x66, 0x54, 0x6A, 0x3C, 0x70, 0x9B, 0x0A, 0xCE, - 0xA1, 0x7C, 0xBC, 0x5A, 0x21, 0x8C, 0x53, 0xCD, - 0x47, 0xAA, 0x48, 0x71, 0xC1, 0xDD, 0x98, 0x4A - }, - { - 0x83, 0xEA, 0x5A, 0xE1, 0x89, 0x11, 0x45, 0xC4, - 0x1A, 0x7C, 0x6C, 0x87, 0xFE, 0x92, 0x24, 0x87, - 0xF5, 0xD2, 0x82, 0x93, 0x35, 0x69, 0xB7, 0xAE, - 0x0E, 0x34, 0x56, 0x53, 0x38, 0x1E, 0xDE, 0x6D, - 0x4B, 0x16, 0xE1, 0x44, 0xD1, 0xC3, 0xE8, 0xF0, - 0x60, 0x5D, 0xAA, 0x0D, 0xB5, 0x96, 0x5A, 0x7B, - 0x79, 0xD9, 0x1A, 0x8A, 0xFE, 0x11, 0xF1, 0xE0, - 0xBC, 0x54, 0x9A, 0xC0, 0x74, 0xA0, 0x1A, 0xB7 - }, - { - 0x37, 0x50, 0x50, 0xCF, 0x2E, 0x43, 0x0D, 0x0E, - 0x29, 0x87, 0x58, 0x35, 0x20, 0x8E, 0x89, 0x06, - 0xD7, 0x05, 0x2E, 0x47, 0x29, 0x2C, 0x5A, 0x38, - 0xA6, 0x30, 0x82, 0x87, 0x3D, 0x31, 0xD5, 0x83, - 0x13, 0x5C, 0x07, 0xA2, 0x0C, 0x52, 0xD9, 0x5B, - 0x2D, 0x5D, 0xC3, 0xEA, 0xDE, 0x6B, 0xE1, 0x43, - 0xCA, 0x34, 0x38, 0xF4, 0x4D, 0x02, 0x0A, 0xAE, - 0x16, 0x0E, 0xD7, 0x7A, 0xB9, 0x88, 0x4F, 0x7D - }, - { - 0x30, 0x28, 0xB0, 0xE8, 0x24, 0x95, 0x7F, 0xF3, - 0xB3, 0x05, 0xE9, 0x7F, 0xF5, 0x92, 0xAA, 0x8E, - 0xF2, 0x9B, 0x3B, 0xEC, 0x1D, 0xC4, 0x7B, 0x76, - 0x13, 0x3D, 0x10, 0x3F, 0xFE, 0x38, 0x71, 0xBF, - 0x05, 0x12, 0xA2, 0x31, 0xAF, 0xCB, 0x1D, 0xF8, - 0x65, 0x97, 0xEC, 0x5E, 0x46, 0xE9, 0x23, 0xC8, - 0xB9, 0x85, 0xC2, 0x85, 0x08, 0x57, 0xC6, 0x40, - 0x01, 0xB2, 0xC5, 0x51, 0xEA, 0x83, 0x3D, 0x0E - }, - { - 0x08, 0x7C, 0xCB, 0x1E, 0x5B, 0xD1, 0x72, 0x22, - 0xB8, 0xAF, 0x20, 0x6D, 0xD6, 0x39, 0x08, 0xF8, - 0x91, 0x72, 0x97, 0x62, 0x1A, 0x8C, 0xB9, 0x33, - 0x0A, 0xE0, 0xBA, 0x4A, 0xF3, 0xE9, 0xD6, 0x0C, - 0x98, 0xFC, 0xF1, 0xEF, 0xFC, 0xEC, 0x20, 0x13, - 0x6B, 0x4F, 0x91, 0x88, 0x12, 0x6D, 0xFA, 0x04, - 0x4E, 0x1C, 0x1C, 0xCD, 0xA3, 0xCE, 0xD8, 0x73, - 0x73, 0xD9, 0x37, 0x9C, 0xCB, 0xED, 0xBD, 0xB3 - }, - { - 0x7F, 0x17, 0x06, 0x24, 0x98, 0xBF, 0xA2, 0xBB, - 0x58, 0x56, 0xCD, 0x0A, 0x62, 0xC5, 0x68, 0xC5, - 0xC6, 0xB8, 0x97, 0x43, 0x24, 0x74, 0xEF, 0xB2, - 0xE6, 0xA2, 0xEE, 0x18, 0xCA, 0xFF, 0xD2, 0x1E, - 0x1E, 0xF3, 0x0D, 0x06, 0x47, 0x23, 0x85, 0x0F, - 0x79, 0x90, 0xD2, 0x1B, 0xA3, 0x4E, 0x8F, 0x2B, - 0x3B, 0xB0, 0x67, 0x02, 0x3A, 0x77, 0x27, 0x82, - 0x15, 0x8A, 0x27, 0xC6, 0xC4, 0x67, 0xC9, 0x28 - }, - { - 0x6B, 0xA9, 0x86, 0xA9, 0x42, 0x49, 0x7F, 0xD3, - 0x84, 0x62, 0x97, 0x2F, 0x50, 0xA6, 0x19, 0x68, - 0xC0, 0x65, 0x2D, 0xAC, 0x56, 0xCE, 0x9B, 0x9A, - 0xC1, 0xBC, 0x06, 0x1A, 0xB6, 0x34, 0xFE, 0x5A, - 0x77, 0xAC, 0xD0, 0x27, 0x5F, 0x83, 0x96, 0xE3, - 0xC0, 0xBE, 0xF0, 0x12, 0xAE, 0x93, 0xB7, 0x27, - 0x58, 0xB8, 0xD7, 0x67, 0x9C, 0x87, 0xE8, 0x47, - 0xE6, 0x30, 0x17, 0xB5, 0x5A, 0x69, 0xC5, 0xC6 - }, - { - 0x96, 0x7C, 0x81, 0xF5, 0x61, 0x95, 0x18, 0x33, - 0xFA, 0x56, 0x6F, 0x6B, 0x36, 0x07, 0x7E, 0xAD, - 0xB2, 0xA6, 0x15, 0xCC, 0x15, 0xF0, 0xED, 0xBB, - 0xAE, 0x4F, 0x84, 0x4D, 0xDC, 0x8E, 0x9C, 0x1F, - 0xB8, 0x3D, 0x31, 0xA9, 0x3F, 0xCB, 0x17, 0x74, - 0xD7, 0x40, 0xD6, 0x92, 0x08, 0xCA, 0x59, 0x30, - 0xBC, 0xFA, 0xC4, 0xA1, 0xF9, 0x44, 0x46, 0x9F, - 0xEF, 0xD1, 0x9B, 0x6E, 0x93, 0x75, 0xE0, 0xB5 - }, - { - 0xE8, 0xAE, 0xF1, 0x78, 0xE6, 0xDA, 0x3E, 0xF5, - 0xCA, 0xED, 0x65, 0x30, 0xF7, 0xEB, 0x25, 0x60, - 0x82, 0x56, 0xC2, 0x37, 0x7C, 0x4C, 0xF9, 0x6B, - 0x0C, 0xFD, 0x0D, 0x76, 0xEE, 0xB4, 0xBB, 0x86, - 0xEE, 0xFF, 0x7B, 0x7D, 0xF1, 0x58, 0x5C, 0x8D, - 0x7A, 0x20, 0xC0, 0x63, 0x3A, 0x67, 0x90, 0x7F, - 0x6D, 0x28, 0x67, 0xC3, 0x26, 0x4A, 0x91, 0xC0, - 0x51, 0xAB, 0xAE, 0x6E, 0xEA, 0x5A, 0x91, 0xD8 - }, - { - 0x64, 0x81, 0xDC, 0xC8, 0x15, 0x7A, 0xE6, 0x28, - 0xB5, 0xCD, 0x52, 0x6B, 0xAC, 0x8F, 0x93, 0x31, - 0x56, 0xDE, 0xDA, 0xC9, 0x56, 0xA2, 0xB2, 0x2A, - 0x97, 0x4B, 0xF5, 0xF7, 0xEC, 0x2D, 0xB5, 0x80, - 0x6F, 0x53, 0xDD, 0x0E, 0x2D, 0xD5, 0x3D, 0xB8, - 0x7C, 0xD8, 0xF5, 0x8A, 0x58, 0x6F, 0x9B, 0x3C, - 0x5C, 0x52, 0x23, 0x31, 0xA3, 0x11, 0x74, 0xC4, - 0xE7, 0xB9, 0xB6, 0xF7, 0xF0, 0x57, 0xC2, 0x8F - }, - { - 0xA7, 0x1E, 0xA4, 0x5C, 0xE6, 0x61, 0x6A, 0x3D, - 0x2F, 0x0A, 0x59, 0x2D, 0x5D, 0x02, 0x86, 0x93, - 0x2D, 0xA6, 0x3C, 0x6D, 0xB1, 0x1D, 0x59, 0xC6, - 0x69, 0x1C, 0x35, 0xA5, 0x6F, 0x7E, 0xE4, 0xF8, - 0x0B, 0x6F, 0xC3, 0x40, 0xB4, 0xDB, 0xC1, 0x84, - 0x4C, 0x50, 0x40, 0xE6, 0x68, 0xD2, 0x89, 0x2F, - 0x4A, 0x4A, 0xE8, 0x53, 0x3F, 0x1B, 0x67, 0x71, - 0xBC, 0xFC, 0xE7, 0xC3, 0xA2, 0x3E, 0x0D, 0x97 - }, - { - 0x96, 0x93, 0x44, 0x87, 0x70, 0xFE, 0xAE, 0x42, - 0x17, 0x26, 0xEB, 0x20, 0x3B, 0x01, 0xC7, 0x08, - 0x23, 0xD5, 0xF4, 0x4C, 0xC5, 0x21, 0x3E, 0x6A, - 0x68, 0x28, 0x47, 0x29, 0xBD, 0x11, 0x7D, 0x9B, - 0xD1, 0x8F, 0xEC, 0x4A, 0x0A, 0x82, 0x4A, 0x24, - 0x08, 0x0F, 0x29, 0x8B, 0xAC, 0xD2, 0x96, 0xD7, - 0xB4, 0x97, 0x83, 0x8F, 0xBD, 0x7B, 0x0D, 0x57, - 0x5C, 0x52, 0x49, 0x2B, 0x3E, 0x6F, 0x92, 0x6B - }, - { - 0x37, 0xA1, 0x50, 0x66, 0xF2, 0xB9, 0xF9, 0x4C, - 0x24, 0x61, 0x1B, 0xC4, 0x53, 0xED, 0x02, 0x74, - 0x07, 0x8D, 0x1F, 0x70, 0xB2, 0xD3, 0x4C, 0x8B, - 0x96, 0x36, 0x08, 0x48, 0x9D, 0xCB, 0xE8, 0xDF, - 0x44, 0x8E, 0xDD, 0x9C, 0x73, 0x36, 0x2B, 0xB2, - 0xB6, 0x6B, 0xEE, 0xF6, 0x1F, 0xCE, 0x60, 0x10, - 0x6F, 0x70, 0x19, 0xED, 0x37, 0x3C, 0x69, 0x22, - 0x59, 0xD9, 0x55, 0x6A, 0x94, 0x0B, 0x1A, 0x06 - }, - { - 0xBD, 0x44, 0xE7, 0x39, 0xE1, 0xF9, 0xDB, 0x1C, - 0x6B, 0xAF, 0x42, 0xCA, 0x4A, 0x12, 0xAC, 0x09, - 0x9B, 0x96, 0xF6, 0xB3, 0x6C, 0x4B, 0xCB, 0x1B, - 0x72, 0xEE, 0xFF, 0x08, 0xA6, 0x49, 0x68, 0x35, - 0xEC, 0x65, 0x15, 0x0B, 0xE8, 0xFE, 0x16, 0xCB, - 0xE3, 0x27, 0x07, 0xE3, 0x47, 0x54, 0x7D, 0xC5, - 0xA5, 0x83, 0xD2, 0x65, 0x74, 0x6F, 0xA5, 0x95, - 0xC5, 0xE7, 0x73, 0x0F, 0xCF, 0x24, 0x58, 0x1E - }, - { - 0xFA, 0xB2, 0x03, 0x8E, 0x94, 0x98, 0xA1, 0xC3, - 0x9E, 0x05, 0x78, 0xA0, 0xA5, 0xEA, 0x6B, 0x44, - 0xF3, 0xC1, 0xB4, 0x1A, 0xE5, 0x67, 0xF9, 0x91, - 0x4A, 0x95, 0xB1, 0x31, 0xC4, 0x8D, 0x12, 0x1E, - 0xCA, 0xCE, 0xA8, 0x95, 0xA0, 0x9B, 0x1D, 0x4E, - 0x04, 0x42, 0xBE, 0xC9, 0xC5, 0x0C, 0x50, 0xE0, - 0x0A, 0x9F, 0xAF, 0xEF, 0xFA, 0xE0, 0x70, 0x88, - 0x4C, 0x26, 0x25, 0xA8, 0xB1, 0xA2, 0x17, 0x26 - }, - { - 0x05, 0xA1, 0xB7, 0x6B, 0x2F, 0xD5, 0x62, 0x11, - 0xE0, 0xF2, 0xD7, 0x5A, 0x25, 0x16, 0x54, 0xA7, - 0x72, 0xF5, 0x5E, 0x18, 0xCA, 0x02, 0x2A, 0xF5, - 0x2C, 0xB3, 0x30, 0x19, 0x1E, 0x98, 0xA3, 0xB8, - 0xEB, 0x87, 0xE5, 0x11, 0x7B, 0xAE, 0x58, 0x04, - 0x4D, 0x94, 0x4C, 0x1F, 0x18, 0x85, 0x45, 0x12, - 0x25, 0x41, 0x77, 0x35, 0xFC, 0x72, 0xF7, 0x39, - 0x36, 0x69, 0x3C, 0xFF, 0x45, 0x46, 0x9F, 0x8C - }, - { - 0x2A, 0x30, 0xC9, 0x6B, 0xDA, 0xC7, 0x8A, 0x39, - 0x94, 0xEE, 0xCA, 0xA5, 0xA5, 0x3F, 0x82, 0x7F, - 0x58, 0xE1, 0x32, 0x31, 0xA0, 0xD1, 0x13, 0x08, - 0x6C, 0x06, 0xB1, 0xBD, 0xAB, 0xDA, 0x38, 0xD0, - 0x8F, 0x1A, 0xE2, 0x7D, 0xE2, 0x5F, 0xD2, 0x2E, - 0xEA, 0x70, 0xC0, 0x5F, 0x01, 0x32, 0xBF, 0x7A, - 0x50, 0x1C, 0x82, 0xAE, 0x62, 0x15, 0xBF, 0xEF, - 0x3C, 0x01, 0x63, 0x98, 0xBA, 0xF2, 0xCB, 0x62 - }, - { - 0x48, 0xDB, 0x53, 0x76, 0x5B, 0x82, 0xBD, 0x6F, - 0x25, 0x33, 0xEA, 0xE1, 0x7F, 0x67, 0x69, 0xD7, - 0xA4, 0xE3, 0xB2, 0x43, 0x74, 0x60, 0x1C, 0xDD, - 0x8E, 0xC0, 0xCA, 0x3A, 0xAB, 0x30, 0x93, 0xFD, - 0x2B, 0x99, 0x24, 0x38, 0x46, 0x0B, 0xAF, 0x8D, - 0xA5, 0x8F, 0xB9, 0xA8, 0x9B, 0x2C, 0x58, 0xF9, - 0x68, 0xE6, 0x36, 0x17, 0xCB, 0xEB, 0x18, 0x44, - 0xB0, 0x2D, 0x6A, 0x27, 0xC5, 0xB4, 0xAD, 0x41 - }, - { - 0x5C, 0x8B, 0x2E, 0x0E, 0x1B, 0x5C, 0x8F, 0x45, - 0x7D, 0x7F, 0x7B, 0xD9, 0xF0, 0x5A, 0x97, 0xE5, - 0x8D, 0xDA, 0x1D, 0x28, 0xDB, 0x9F, 0x34, 0xD1, - 0xCE, 0x73, 0x25, 0x28, 0xF9, 0x68, 0xBE, 0xDD, - 0x9E, 0x1C, 0xC9, 0x35, 0x2D, 0x0A, 0x5D, 0xF6, - 0x67, 0x29, 0x28, 0xBD, 0xD3, 0xEA, 0x6F, 0x5C, - 0xB0, 0x60, 0x77, 0xCF, 0x3A, 0xD3, 0xA7, 0x6E, - 0x29, 0xB2, 0x2E, 0x82, 0xBA, 0xC6, 0x7B, 0x61 - }, - { - 0x5B, 0x73, 0x91, 0xAA, 0x52, 0xF2, 0x76, 0xFA, - 0xB9, 0xC1, 0x38, 0x77, 0xF1, 0x22, 0x32, 0x70, - 0x84, 0x97, 0xFC, 0x02, 0x8F, 0xAA, 0x17, 0x32, - 0xA5, 0xDB, 0x07, 0x9E, 0x7F, 0xE0, 0x73, 0xED, - 0x0C, 0xC9, 0x52, 0x9C, 0xFC, 0x86, 0x3A, 0x4E, - 0xCB, 0xA4, 0xDC, 0x2F, 0x1E, 0xA9, 0xF6, 0xBD, - 0x69, 0x04, 0xF3, 0xA0, 0xC1, 0x07, 0x19, 0x3C, - 0x5E, 0x71, 0x1C, 0xB9, 0x11, 0xF3, 0x80, 0x25 - }, - { - 0x1D, 0x5A, 0xF7, 0x0F, 0x09, 0xA5, 0xFC, 0x69, - 0x16, 0xEF, 0x59, 0xA3, 0x8A, 0x86, 0x92, 0x6D, - 0xCA, 0xAE, 0x39, 0xA8, 0x95, 0x4D, 0x73, 0xFC, - 0x80, 0xA3, 0x50, 0x75, 0x1A, 0xDD, 0xA3, 0x8C, - 0x9D, 0x59, 0x75, 0x06, 0xDC, 0x05, 0xE1, 0xED, - 0x37, 0xBD, 0x2D, 0xB1, 0x59, 0x0F, 0x99, 0xAA, - 0x29, 0x6A, 0xEA, 0x13, 0xAB, 0x84, 0x43, 0xD5, - 0xA9, 0x23, 0x47, 0xFB, 0x85, 0xFC, 0x81, 0x6D - }, - { - 0x80, 0xE3, 0x70, 0x92, 0x97, 0xD4, 0x41, 0x14, - 0xB9, 0xFB, 0xDF, 0x55, 0x67, 0xF0, 0x5F, 0x33, - 0x00, 0x94, 0xCF, 0x09, 0xF4, 0xC0, 0xEF, 0xCF, - 0xAC, 0x05, 0x09, 0x5C, 0x36, 0x08, 0x10, 0x77, - 0x30, 0xC1, 0xAA, 0x07, 0xFF, 0x23, 0x00, 0x25, - 0x62, 0xC7, 0xE8, 0x41, 0xA9, 0xF5, 0x66, 0x24, - 0xFF, 0xE2, 0xAB, 0xEC, 0x61, 0x1E, 0xB9, 0xE7, - 0x3E, 0x1C, 0xCB, 0xD8, 0xF6, 0x2B, 0x11, 0x49 - }, - { - 0xF9, 0x94, 0x5C, 0x19, 0x06, 0x77, 0x84, 0x61, - 0x94, 0x13, 0x2B, 0x49, 0x6E, 0xC6, 0x01, 0x2C, - 0x08, 0x75, 0x0E, 0x02, 0x5F, 0xD5, 0x52, 0xED, - 0x32, 0x4D, 0x3A, 0x49, 0xD8, 0x63, 0x66, 0xC0, - 0x3D, 0xCC, 0xDE, 0x8D, 0x5B, 0x5A, 0xC9, 0xA4, - 0xBC, 0xB7, 0x19, 0x5E, 0x63, 0xBC, 0xAA, 0x93, - 0x9E, 0x8E, 0xDA, 0x18, 0xF1, 0x16, 0x94, 0xB6, - 0xFA, 0x69, 0x37, 0x39, 0x3B, 0xFF, 0xDB, 0xF4 - }, - { - 0x8D, 0x8F, 0x2E, 0xD9, 0xAE, 0x39, 0x80, 0x9A, - 0xAC, 0xAD, 0x2F, 0xCE, 0xDB, 0xD2, 0xDC, 0xA7, - 0x30, 0xC7, 0x83, 0xE6, 0x2F, 0xF7, 0x0B, 0x8D, - 0x3C, 0x53, 0x62, 0xF0, 0x73, 0xF8, 0x34, 0x67, - 0x19, 0x7D, 0x37, 0x56, 0xB4, 0x45, 0x19, 0x5F, - 0xE7, 0x52, 0x11, 0x73, 0x64, 0xD9, 0x2C, 0xF4, - 0x2C, 0x02, 0x6E, 0x40, 0x9D, 0x5F, 0xF7, 0xA9, - 0x53, 0x3E, 0xAB, 0x78, 0xF1, 0x75, 0x4A, 0x2D - }, - { - 0x3A, 0xC9, 0x9A, 0xC5, 0x3A, 0xC4, 0x9A, 0x56, - 0xFA, 0xA1, 0x86, 0x46, 0xB8, 0xE0, 0x8A, 0x2D, - 0x35, 0xBE, 0x80, 0xDF, 0x3E, 0xFB, 0xBB, 0xA6, - 0xBD, 0xA4, 0xAE, 0x90, 0x2B, 0x8D, 0x3E, 0x17, - 0x0A, 0x7B, 0xE8, 0x60, 0x5C, 0x34, 0xA4, 0xDC, - 0x9A, 0x73, 0x62, 0xB1, 0xC2, 0x01, 0xD7, 0x02, - 0x39, 0x1B, 0xD7, 0xD5, 0x20, 0x7F, 0x95, 0xFA, - 0x39, 0x0C, 0xE3, 0x3C, 0x43, 0x14, 0xD4, 0x11 - }, - { - 0xE4, 0x69, 0x4B, 0xDB, 0x31, 0x01, 0x6F, 0x25, - 0x53, 0x2C, 0x04, 0x3C, 0x5C, 0x63, 0x08, 0xCC, - 0x61, 0x9B, 0x0F, 0x87, 0x16, 0xF0, 0xC2, 0x9E, - 0xEB, 0x9F, 0x34, 0x0F, 0x47, 0xB0, 0x7B, 0x4A, - 0x4C, 0xE0, 0x98, 0x4C, 0x47, 0x24, 0xB1, 0x2A, - 0xB3, 0xD3, 0x2A, 0xF5, 0x16, 0xAD, 0xA2, 0x64, - 0x4C, 0xA6, 0x55, 0x8C, 0x1C, 0xB5, 0x81, 0x5C, - 0x12, 0x12, 0xA9, 0xB5, 0xFA, 0x83, 0x44, 0x12 - }, - { - 0xC6, 0x3C, 0x70, 0x3E, 0x62, 0x10, 0x8A, 0xA0, - 0xED, 0xC6, 0x83, 0xF3, 0x67, 0x8A, 0x00, 0x78, - 0x8F, 0xB1, 0x00, 0xC0, 0x96, 0x0B, 0x4E, 0x98, - 0xB7, 0x6A, 0x48, 0xE4, 0xE5, 0x92, 0x3D, 0x34, - 0x13, 0x44, 0x8D, 0xB8, 0x87, 0x5E, 0x3B, 0xCE, - 0xA7, 0xB6, 0xB8, 0x5D, 0x9E, 0x3E, 0xEA, 0xB7, - 0x2C, 0xD1, 0x50, 0x96, 0xFB, 0xBB, 0x2C, 0xC4, - 0x27, 0x03, 0x17, 0xFC, 0x34, 0xD4, 0x04, 0x71 - }, - { - 0x90, 0x80, 0xB7, 0xE8, 0x41, 0xEF, 0x51, 0x9C, - 0x54, 0x17, 0xE6, 0x90, 0xAA, 0xF4, 0x32, 0x79, - 0x07, 0xA8, 0x3D, 0xBC, 0xB7, 0x38, 0xD0, 0xF7, - 0x30, 0x8B, 0x1D, 0x61, 0x1D, 0xEF, 0x16, 0x9A, - 0x4F, 0x47, 0x42, 0x3E, 0x69, 0x0F, 0x27, 0xA7, - 0xE2, 0x74, 0x1A, 0xE7, 0x86, 0x5D, 0xA2, 0x3C, - 0x5D, 0x3F, 0x13, 0xC3, 0x16, 0x06, 0x3C, 0x7A, - 0xA1, 0xA9, 0x58, 0xE5, 0xBE, 0x83, 0x8F, 0x04 - }, - { - 0x29, 0x8D, 0xF6, 0x46, 0x91, 0x5F, 0x04, 0xD6, - 0x65, 0xE9, 0x67, 0x5E, 0x6A, 0x10, 0x31, 0x87, - 0x0D, 0x28, 0xEB, 0x7A, 0x04, 0x05, 0x66, 0x3E, - 0xAC, 0x3B, 0x10, 0xD1, 0xB4, 0xFA, 0x2E, 0x86, - 0x8E, 0x63, 0x73, 0xA5, 0x86, 0xCD, 0x73, 0xE0, - 0x6D, 0x8E, 0x7A, 0xD7, 0x71, 0xB4, 0xFB, 0x0A, - 0x8B, 0x4F, 0xC2, 0xDC, 0x6C, 0xE0, 0x9C, 0x64, - 0x2E, 0xE8, 0x99, 0x26, 0xFD, 0xC6, 0x52, 0x60 - }, - { - 0x4F, 0x2D, 0xE9, 0xC4, 0xF4, 0x34, 0x8B, 0xDB, - 0x32, 0x3A, 0x66, 0x83, 0x72, 0xE7, 0x71, 0x42, - 0x99, 0xC7, 0x76, 0xF9, 0x60, 0x2F, 0x3A, 0xF8, - 0xFB, 0x77, 0x46, 0xF1, 0x76, 0x86, 0x8D, 0xF3, - 0x54, 0x2B, 0x2F, 0xA6, 0x9E, 0xAE, 0x38, 0xB6, - 0xA2, 0x6A, 0x06, 0xCA, 0x89, 0x42, 0xF8, 0x82, - 0x78, 0xC6, 0x4E, 0x3D, 0x01, 0x7F, 0xEE, 0x67, - 0xA9, 0x4E, 0xA0, 0x23, 0xB2, 0xB5, 0xBE, 0x5F - }, - { - 0x40, 0x18, 0xC5, 0xEE, 0x90, 0x93, 0xA6, 0x81, - 0x11, 0x2F, 0x4C, 0xE1, 0x93, 0xA1, 0xD6, 0x5E, - 0x05, 0x48, 0x72, 0x5F, 0x96, 0xAE, 0x31, 0x53, - 0x87, 0xCD, 0x76, 0x5C, 0x2B, 0x9C, 0x30, 0x68, - 0xAE, 0x4C, 0xBE, 0x5C, 0xD5, 0x40, 0x2C, 0x11, - 0xC5, 0x5A, 0x9D, 0x78, 0x5F, 0xFD, 0xFC, 0x2B, - 0xDE, 0x6E, 0x7A, 0xCF, 0x19, 0x61, 0x74, 0x75, - 0xDA, 0xE0, 0xEB, 0x01, 0x44, 0x56, 0xCE, 0x45 - }, - { - 0x6F, 0xCE, 0x66, 0x75, 0xE8, 0x6D, 0x7E, 0x85, - 0x70, 0x4C, 0x96, 0xC2, 0x95, 0x70, 0x3C, 0xD9, - 0x54, 0x98, 0x59, 0x0E, 0x50, 0x76, 0x4D, 0x23, - 0xD7, 0xA7, 0xA3, 0xA3, 0x22, 0x68, 0xA0, 0xB3, - 0xC9, 0x91, 0xE8, 0xF7, 0x84, 0x87, 0x69, 0x9A, - 0x55, 0x4B, 0x58, 0x1E, 0x33, 0x9C, 0x09, 0xAE, - 0xC9, 0x82, 0xE0, 0xBA, 0xA4, 0x31, 0x87, 0x93, - 0x62, 0x06, 0x35, 0xE1, 0xE2, 0xC8, 0xD9, 0xF2 - }, - { - 0xEB, 0xA9, 0x37, 0x85, 0x91, 0x97, 0xC7, 0xFD, - 0x41, 0x2D, 0xBC, 0x9A, 0xFC, 0x0D, 0x67, 0xCC, - 0x19, 0x81, 0x60, 0xB5, 0xA9, 0xCC, 0xEE, 0x87, - 0xC4, 0x1A, 0x86, 0x64, 0x85, 0x9F, 0x3E, 0xFD, - 0x96, 0x13, 0x66, 0xA8, 0x09, 0xC7, 0xC6, 0xBC, - 0x6F, 0xA8, 0x44, 0x92, 0x68, 0x14, 0xE0, 0xB4, - 0xEF, 0xA3, 0x7E, 0xDE, 0x2C, 0x88, 0x44, 0x26, - 0x8D, 0x7F, 0x35, 0x56, 0xE4, 0x46, 0x58, 0x1D - }, - { - 0x83, 0xF4, 0x33, 0xE4, 0xF1, 0xC5, 0x07, 0x97, - 0x49, 0x3C, 0x58, 0xC2, 0x64, 0xCF, 0xFA, 0x70, - 0xC4, 0xA7, 0xA2, 0x4C, 0x33, 0x4D, 0xBA, 0xA3, - 0xC5, 0x74, 0x89, 0xD9, 0x70, 0xD4, 0x9D, 0x69, - 0x49, 0xFE, 0x45, 0xB7, 0x04, 0xF2, 0x65, 0xEF, - 0xD2, 0xAE, 0xE1, 0xAC, 0x1B, 0x46, 0xF4, 0xAA, - 0x3E, 0x4F, 0xAD, 0x68, 0xB3, 0x79, 0x61, 0xD2, - 0xC7, 0x28, 0x0A, 0xE1, 0x96, 0x72, 0xC8, 0x50 - }, - { - 0xB5, 0x57, 0xEC, 0xE1, 0x22, 0x72, 0x49, 0x3D, - 0xC2, 0x7E, 0x88, 0xA0, 0x5A, 0xDC, 0xD8, 0x61, - 0x87, 0x5A, 0x0C, 0xD0, 0x0B, 0xD6, 0x8A, 0xDC, - 0x3A, 0x30, 0x1D, 0x26, 0x3A, 0x9C, 0xD9, 0x93, - 0xA9, 0x6A, 0xE1, 0x4C, 0xFC, 0xDD, 0xCB, 0x99, - 0x7C, 0xC9, 0x86, 0x23, 0x93, 0x50, 0x50, 0xEA, - 0x43, 0x55, 0x2A, 0x34, 0x11, 0x07, 0x18, 0x7D, - 0xE7, 0x5C, 0x4E, 0xDE, 0xD7, 0xC7, 0x86, 0xBD - }, - { - 0x95, 0x89, 0xC0, 0x81, 0x3B, 0x73, 0x93, 0xDB, - 0xAA, 0xAF, 0xE4, 0x7A, 0xF5, 0xB4, 0x08, 0xB2, - 0x3C, 0x8A, 0x8C, 0x8B, 0xAC, 0x62, 0x55, 0x4B, - 0x8F, 0xA1, 0x32, 0xA3, 0x58, 0xCE, 0x30, 0x83, - 0xB1, 0xD4, 0xE3, 0x97, 0x07, 0xCD, 0x54, 0xA5, - 0x5F, 0x67, 0x3D, 0x48, 0x11, 0x6E, 0xB1, 0xF9, - 0xED, 0x8D, 0xE9, 0xC9, 0x43, 0xCD, 0x2D, 0xE4, - 0x60, 0xA6, 0x8B, 0xDD, 0xF7, 0x1E, 0x98, 0x03 - }, - { - 0xAE, 0x4C, 0xCF, 0x27, 0xAB, 0x00, 0xA4, 0x0C, - 0x36, 0x37, 0xD3, 0xD2, 0xCE, 0x51, 0xA8, 0x3E, - 0xFB, 0xA6, 0x2D, 0x4A, 0x6F, 0xDA, 0xD6, 0x95, - 0x06, 0x3F, 0xBC, 0x60, 0xA2, 0xD8, 0x2E, 0xC5, - 0xA5, 0x4A, 0xCB, 0xE0, 0x9B, 0xA9, 0x38, 0x8F, - 0x49, 0xAA, 0xC2, 0x7C, 0x99, 0x2D, 0x84, 0x63, - 0x20, 0x36, 0xE1, 0xBD, 0xD4, 0xC5, 0x29, 0xBB, - 0xF1, 0x85, 0x1E, 0xAE, 0x0C, 0x6E, 0xA9, 0x02 - }, - { - 0xA3, 0x94, 0x4B, 0x2C, 0x31, 0xCB, 0x49, 0x40, - 0x80, 0xB7, 0xEE, 0x1D, 0xB0, 0x81, 0x68, 0x53, - 0xE4, 0x25, 0xB5, 0x4C, 0x48, 0xD6, 0x31, 0x44, - 0x7E, 0xA5, 0x2C, 0x1D, 0x29, 0x52, 0x07, 0x9B, - 0xD8, 0x8F, 0xAB, 0x9E, 0xD0, 0xB7, 0xD8, 0xC0, - 0xBA, 0xAF, 0x0C, 0x4E, 0xCA, 0x19, 0x10, 0xDB, - 0x6F, 0x98, 0x53, 0x4F, 0x0D, 0x42, 0xE5, 0xEB, - 0xB6, 0xC0, 0xA7, 0x5E, 0xF0, 0xD8, 0xB2, 0xC0 - }, - { - 0xCF, 0xA1, 0xA2, 0x24, 0x68, 0x5A, 0x5F, 0xB2, - 0x01, 0x04, 0x58, 0x20, 0x1C, 0xEB, 0x0C, 0xDA, - 0x21, 0xC8, 0x2B, 0x16, 0x02, 0xDC, 0x41, 0x35, - 0x85, 0xFB, 0xCE, 0x80, 0x97, 0x6F, 0x06, 0x1C, - 0x23, 0x5B, 0x13, 0x67, 0x71, 0x24, 0x98, 0x14, - 0x4A, 0xC1, 0x6A, 0x98, 0x54, 0xF6, 0xFB, 0x32, - 0x3C, 0xBE, 0xB6, 0x23, 0x69, 0xCF, 0x9B, 0x75, - 0x2B, 0x92, 0x52, 0xA2, 0xA7, 0xAC, 0xE1, 0xFD - }, - { - 0xFA, 0x62, 0xC6, 0xCF, 0xC8, 0xF0, 0x79, 0xE5, - 0x8F, 0x3D, 0x3F, 0xEF, 0xD7, 0xC2, 0x24, 0xE7, - 0x1E, 0xBC, 0x69, 0xA9, 0x5B, 0x18, 0x35, 0xCC, - 0xC3, 0x2F, 0x35, 0x07, 0x77, 0x05, 0x11, 0x02, - 0x61, 0x54, 0x92, 0xD6, 0x7F, 0xB6, 0xDE, 0x62, - 0xCF, 0x2A, 0xD5, 0xB1, 0x84, 0x67, 0xFE, 0x87, - 0x15, 0x74, 0x88, 0x82, 0xDB, 0x89, 0xFF, 0x86, - 0xEF, 0xDF, 0x2F, 0x96, 0xF8, 0x13, 0x5E, 0xD2 - }, - { - 0xCC, 0x63, 0x3F, 0xD4, 0xEA, 0x6A, 0xC4, 0x08, - 0xC3, 0x87, 0x57, 0x56, 0xB9, 0x01, 0x28, 0x8A, - 0x1D, 0xE1, 0x91, 0x89, 0x28, 0x32, 0xBE, 0x2E, - 0x90, 0x26, 0xDC, 0x65, 0xC2, 0xFF, 0x00, 0x00, - 0x9F, 0x14, 0x36, 0xDD, 0xFF, 0x42, 0x06, 0x26, - 0x0A, 0x3D, 0x66, 0xEF, 0x61, 0x92, 0x14, 0x3E, - 0x57, 0x2F, 0x1E, 0x4B, 0xB8, 0xE5, 0xA7, 0x4B, - 0x12, 0x05, 0x5E, 0x42, 0x41, 0x1C, 0x18, 0xBC - }, - { - 0x44, 0xD2, 0xBF, 0x7F, 0x36, 0x96, 0xB8, 0x93, - 0x3F, 0x25, 0x5B, 0x9B, 0xE1, 0xA4, 0xA6, 0xAE, - 0x33, 0x16, 0xC2, 0x5D, 0x03, 0x95, 0xF5, 0x90, - 0xB9, 0xB9, 0x89, 0x8F, 0x12, 0x7E, 0x40, 0xD3, - 0xF4, 0x12, 0x4D, 0x7B, 0xDB, 0xC8, 0x72, 0x5F, - 0x00, 0xB0, 0xD2, 0x81, 0x50, 0xFF, 0x05, 0xB4, - 0xA7, 0x9E, 0x5E, 0x04, 0xE3, 0x4A, 0x47, 0xE9, - 0x08, 0x7B, 0x3F, 0x79, 0xD4, 0x13, 0xAB, 0x7F - }, - { - 0x96, 0xFB, 0xCB, 0xB6, 0x0B, 0xD3, 0x13, 0xB8, - 0x84, 0x50, 0x33, 0xE5, 0xBC, 0x05, 0x8A, 0x38, - 0x02, 0x74, 0x38, 0x57, 0x2D, 0x7E, 0x79, 0x57, - 0xF3, 0x68, 0x4F, 0x62, 0x68, 0xAA, 0xDD, 0x3A, - 0xD0, 0x8D, 0x21, 0x76, 0x7E, 0xD6, 0x87, 0x86, - 0x85, 0x33, 0x1B, 0xA9, 0x85, 0x71, 0x48, 0x7E, - 0x12, 0x47, 0x0A, 0xAD, 0x66, 0x93, 0x26, 0x71, - 0x6E, 0x46, 0x66, 0x7F, 0x69, 0xF8, 0xD7, 0xE8 - }, -}; - - - - -#endif - - - diff --git a/cbits/blake2/ref/blake2.h b/cbits/blake2/ref/blake2.h index cc625cb..ad62f26 100644 --- a/cbits/blake2/ref/blake2.h +++ b/cbits/blake2/ref/blake2.h @@ -1,22 +1,29 @@ /* BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2_H__ -#define __BLAKE2_H__ +#ifndef BLAKE2_H +#define BLAKE2_H #include #include +#if defined(_MSC_VER) +#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) +#else +#define BLAKE2_PACKED(x) x __attribute__((packed)) +#endif + #if defined(__cplusplus) extern "C" { #endif @@ -39,112 +46,150 @@ extern "C" { BLAKE2B_PERSONALBYTES = 16 }; -#pragma pack(push, 1) - typedef struct __blake2s_param - { - uint8_t digest_length; // 1 - uint8_t key_length; // 2 - uint8_t fanout; // 3 - uint8_t depth; // 4 - uint32_t leaf_length; // 8 - uint8_t node_offset[6];// 14 - uint8_t node_depth; // 15 - uint8_t inner_length; // 16 - // uint8_t reserved[0]; - uint8_t salt[BLAKE2S_SALTBYTES]; // 24 - uint8_t personal[BLAKE2S_PERSONALBYTES]; // 32 - } blake2s_param; - - typedef struct __blake2s_state + typedef struct blake2s_state__ { uint32_t h[8]; uint32_t t[2]; uint32_t f[2]; - uint8_t buf[2 * BLAKE2S_BLOCKBYTES]; + uint8_t buf[BLAKE2S_BLOCKBYTES]; size_t buflen; + size_t outlen; uint8_t last_node; } blake2s_state; - typedef struct __blake2b_param - { - uint8_t digest_length; // 1 - uint8_t key_length; // 2 - uint8_t fanout; // 3 - uint8_t depth; // 4 - uint32_t leaf_length; // 8 - uint64_t node_offset; // 16 - uint8_t node_depth; // 17 - uint8_t inner_length; // 18 - uint8_t reserved[14]; // 32 - uint8_t salt[BLAKE2B_SALTBYTES]; // 48 - uint8_t personal[BLAKE2B_PERSONALBYTES]; // 64 - } blake2b_param; - - typedef struct __blake2b_state + typedef struct blake2b_state__ { uint64_t h[8]; uint64_t t[2]; uint64_t f[2]; - uint8_t buf[2 * BLAKE2B_BLOCKBYTES]; + uint8_t buf[BLAKE2B_BLOCKBYTES]; size_t buflen; + size_t outlen; uint8_t last_node; } blake2b_state; - typedef struct __blake2sp_state + typedef struct blake2sp_state__ { blake2s_state S[8][1]; blake2s_state R[1]; - uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; - size_t buflen; + uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; + size_t buflen; + size_t outlen; } blake2sp_state; - typedef struct __blake2bp_state + typedef struct blake2bp_state__ { blake2b_state S[4][1]; blake2b_state R[1]; - uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; - size_t buflen; + uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; + size_t buflen; + size_t outlen; } blake2bp_state; -#pragma pack(pop) - // Streaming API - int blake2s_init( blake2s_state *S, const uint8_t outlen ); - int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); - int blake2s_update( blake2s_state *S, const uint8_t *in, uint64_t inlen ); - int blake2s_final( blake2s_state *S, uint8_t *out, uint8_t outlen ); - int blake2b_init( blake2b_state *S, const uint8_t outlen ); - int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); - int blake2b_update( blake2b_state *S, const uint8_t *in, uint64_t inlen ); - int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ); - - int blake2sp_init( blake2sp_state *S, const uint8_t outlen ); - int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ); - int blake2sp_final( blake2sp_state *S, uint8_t *out, uint8_t outlen ); - - int blake2bp_init( blake2bp_state *S, const uint8_t outlen ); - int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ); - int blake2bp_final( blake2bp_state *S, uint8_t *out, uint8_t outlen ); - - // Simple API - int blake2s( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - - int blake2sp( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - int blake2bp( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - - static inline int blake2( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) + BLAKE2_PACKED(struct blake2s_param__ { - return blake2b( out, in, key, outlen, inlen, keylen ); - } + uint8_t digest_length; /* 1 */ + uint8_t key_length; /* 2 */ + uint8_t fanout; /* 3 */ + uint8_t depth; /* 4 */ + uint32_t leaf_length; /* 8 */ + uint32_t node_offset; /* 12 */ + uint16_t xof_length; /* 14 */ + uint8_t node_depth; /* 15 */ + uint8_t inner_length; /* 16 */ + /* uint8_t reserved[0]; */ + uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */ + uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */ + }); + + typedef struct blake2s_param__ blake2s_param; + + BLAKE2_PACKED(struct blake2b_param__ + { + uint8_t digest_length; /* 1 */ + uint8_t key_length; /* 2 */ + uint8_t fanout; /* 3 */ + uint8_t depth; /* 4 */ + uint32_t leaf_length; /* 8 */ + uint32_t node_offset; /* 12 */ + uint32_t xof_length; /* 16 */ + uint8_t node_depth; /* 17 */ + uint8_t inner_length; /* 18 */ + uint8_t reserved[14]; /* 32 */ + uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */ + uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */ + }); + + typedef struct blake2b_param__ blake2b_param; + + typedef struct blake2xs_state__ + { + blake2s_state S[1]; + blake2s_param P[1]; + } blake2xs_state; + + typedef struct blake2xb_state__ + { + blake2b_state S[1]; + blake2b_param P[1]; + } blake2xb_state; + + /* Padded structs result in a compile-time error */ + enum { + BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES), + BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES) + }; + + /* Streaming API */ + int blake2s_init( blake2s_state *S, size_t outlen ); + int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); + int blake2s_update( blake2s_state *S, const void *in, size_t inlen ); + int blake2s_final( blake2s_state *S, void *out, size_t outlen ); + + int blake2b_init( blake2b_state *S, size_t outlen ); + int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); + int blake2b_update( blake2b_state *S, const void *in, size_t inlen ); + int blake2b_final( blake2b_state *S, void *out, size_t outlen ); + + int blake2sp_init( blake2sp_state *S, size_t outlen ); + int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen ); + int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ); + + int blake2bp_init( blake2bp_state *S, size_t outlen ); + int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen ); + int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ); + + /* Variable output length API */ + int blake2xs_init( blake2xs_state *S, const size_t outlen ); + int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ); + int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ); + int blake2xs_final(blake2xs_state *S, void *out, size_t outlen); + + int blake2xb_init( blake2xb_state *S, const size_t outlen ); + int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen ); + int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ); + int blake2xb_final(blake2xb_state *S, void *out, size_t outlen); + + /* Simple API */ + int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + + int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + + int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + + /* This is simply an alias for blake2b */ + int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); #if defined(__cplusplus) } #endif #endif - diff --git a/cbits/blake2/ref/blake2b-ref.c b/cbits/blake2/ref/blake2b-ref.c index 8f295a7..cd38b1b 100644 --- a/cbits/blake2/ref/blake2b-ref.c +++ b/cbits/blake2/ref/blake2b-ref.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -43,135 +45,69 @@ static const uint8_t blake2b_sigma[12][16] = }; -static inline int blake2b_set_lastnode( blake2b_state *S ) +static void blake2b_set_lastnode( blake2b_state *S ) { - S->f[1] = -1; - return 0; -} - -static inline int blake2b_clear_lastnode( blake2b_state *S ) -{ - S->f[1] = 0; - return 0; + S->f[1] = (uint64_t)-1; } /* Some helper functions, not necessarily useful */ -static inline int blake2b_set_lastblock( blake2b_state *S ) +static int blake2b_is_lastblock( const blake2b_state *S ) +{ + return S->f[0] != 0; +} + +static void blake2b_set_lastblock( blake2b_state *S ) { if( S->last_node ) blake2b_set_lastnode( S ); - S->f[0] = -1; - return 0; + S->f[0] = (uint64_t)-1; } -static inline int blake2b_clear_lastblock( blake2b_state *S ) -{ - if( S->last_node ) blake2b_clear_lastnode( S ); - - S->f[0] = 0; - return 0; -} - -static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) +static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) { S->t[0] += inc; S->t[1] += ( S->t[0] < inc ); - return 0; } - - -// Parameter-related functions -static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length ) -{ - P->digest_length = digest_length; - return 0; -} - -static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout ) -{ - P->fanout = fanout; - return 0; -} - -static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth ) -{ - P->depth = depth; - return 0; -} - -static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length ) -{ - store32( &P->leaf_length, leaf_length ); - return 0; -} - -static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset ) -{ - store64( &P->node_offset, node_offset ); - return 0; -} - -static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth ) -{ - P->node_depth = node_depth; - return 0; -} - -static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length ) -{ - P->inner_length = inner_length; - return 0; -} - -static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] ) -{ - memcpy( P->salt, salt, BLAKE2B_SALTBYTES ); - return 0; -} - -static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] ) -{ - memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES ); - return 0; -} - -static inline int blake2b_init0( blake2b_state *S ) +static void blake2b_init0( blake2b_state *S ) { + size_t i; memset( S, 0, sizeof( blake2b_state ) ); - for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i]; - - return 0; + for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i]; } /* init xors IV with input parameter block */ int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) { - blake2b_init0( S ); const uint8_t *p = ( const uint8_t * )( P ); + size_t i; + + blake2b_init0( S ); /* IV XOR ParamBlock */ - for( size_t i = 0; i < 8; ++i ) + for( i = 0; i < 8; ++i ) S->h[i] ^= load64( p + sizeof( S->h[i] ) * i ); + S->outlen = P->digest_length; return 0; } -int blake2b_init( blake2b_state *S, const uint8_t outlen ) +int blake2b_init( blake2b_state *S, size_t outlen ) { blake2b_param P[1]; if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; - P->digest_length = outlen; + P->digest_length = (uint8_t)outlen; P->key_length = 0; P->fanout = 1; P->depth = 1; store32( &P->leaf_length, 0 ); - store64( &P->node_offset, 0 ); + store32( &P->node_offset, 0 ); + store32( &P->xof_length, 0 ); P->node_depth = 0; P->inner_length = 0; memset( P->reserved, 0, sizeof( P->reserved ) ); @@ -181,7 +117,7 @@ int blake2b_init( blake2b_state *S, const uint8_t outlen ) } -int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ) { blake2b_param P[1]; @@ -189,12 +125,13 @@ int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, c if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = 1; P->depth = 1; store32( &P->leaf_length, 0 ); - store64( &P->node_offset, 0 ); + store32( &P->node_offset, 0 ); + store32( &P->xof_length, 0 ); P->node_depth = 0; P->inner_length = 0; memset( P->reserved, 0, sizeof( P->reserved ) ); @@ -213,39 +150,20 @@ int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, c return 0; } -static int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) -{ - uint64_t m[16]; - uint64_t v[16]; - int i; - - for( i = 0; i < 16; ++i ) - m[i] = load64( block + i * sizeof( m[i] ) ); - - for( i = 0; i < 8; ++i ) - v[i] = S->h[i]; - - v[ 8] = blake2b_IV[0]; - v[ 9] = blake2b_IV[1]; - v[10] = blake2b_IV[2]; - v[11] = blake2b_IV[3]; - v[12] = S->t[0] ^ blake2b_IV[4]; - v[13] = S->t[1] ^ blake2b_IV[5]; - v[14] = S->f[0] ^ blake2b_IV[6]; - v[15] = S->f[1] ^ blake2b_IV[7]; -#define G(r,i,a,b,c,d) \ - do { \ +#define G(r,i,a,b,c,d) \ + do { \ a = a + b + m[blake2b_sigma[r][2*i+0]]; \ - d = rotr64(d ^ a, 32); \ - c = c + d; \ - b = rotr64(b ^ c, 24); \ + d = rotr64(d ^ a, 32); \ + c = c + d; \ + b = rotr64(b ^ c, 24); \ a = a + b + m[blake2b_sigma[r][2*i+1]]; \ - d = rotr64(d ^ a, 16); \ - c = c + d; \ - b = rotr64(b ^ c, 63); \ + d = rotr64(d ^ a, 16); \ + c = c + d; \ + b = rotr64(b ^ c, 63); \ } while(0) -#define ROUND(r) \ - do { \ + +#define ROUND(r) \ + do { \ G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \ G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \ G(r,2,v[ 2],v[ 6],v[10],v[14]); \ @@ -255,6 +173,30 @@ static int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCK G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \ G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \ } while(0) + +static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +{ + uint64_t m[16]; + uint64_t v[16]; + size_t i; + + for( i = 0; i < 16; ++i ) { + m[i] = load64( block + i * sizeof( m[i] ) ); + } + + for( i = 0; i < 8; ++i ) { + v[i] = S->h[i]; + } + + v[ 8] = blake2b_IV[0]; + v[ 9] = blake2b_IV[1]; + v[10] = blake2b_IV[2]; + v[11] = blake2b_IV[3]; + v[12] = blake2b_IV[4] ^ S->t[0]; + v[13] = blake2b_IV[5] ^ S->t[1]; + v[14] = blake2b_IV[6] ^ S->f[0]; + v[15] = blake2b_IV[7] ^ S->f[1]; + ROUND( 0 ); ROUND( 1 ); ROUND( 2 ); @@ -268,75 +210,67 @@ static int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCK ROUND( 10 ); ROUND( 11 ); - for( i = 0; i < 8; ++i ) + for( i = 0; i < 8; ++i ) { S->h[i] = S->h[i] ^ v[i] ^ v[i + 8]; + } +} #undef G #undef ROUND - return 0; -} -/* inlen now in bytes */ -int blake2b_update( blake2b_state *S, const uint8_t *in, uint64_t inlen ) +int blake2b_update( blake2b_state *S, const void *pin, size_t inlen ) { - while( inlen > 0 ) + const unsigned char * in = (const unsigned char *)pin; + if( inlen > 0 ) { size_t left = S->buflen; - size_t fill = 2 * BLAKE2B_BLOCKBYTES - left; - + size_t fill = BLAKE2B_BLOCKBYTES - left; if( inlen > fill ) { - memcpy( S->buf + left, in, fill ); // Fill buffer - S->buflen += fill; + S->buflen = 0; + memcpy( S->buf + left, in, fill ); /* Fill buffer */ blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); - blake2b_compress( S, S->buf ); // Compress - memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left - S->buflen -= BLAKE2B_BLOCKBYTES; - in += fill; - inlen -= fill; - } - else // inlen <= fill - { - memcpy( S->buf + left, in, inlen ); - S->buflen += inlen; // Be lazy, do not compress - in += inlen; - inlen -= inlen; + blake2b_compress( S, S->buf ); /* Compress */ + in += fill; inlen -= fill; + while(inlen > BLAKE2B_BLOCKBYTES) { + blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES); + blake2b_compress( S, in ); + in += BLAKE2B_BLOCKBYTES; + inlen -= BLAKE2B_BLOCKBYTES; + } } + memcpy( S->buf + S->buflen, in, inlen ); + S->buflen += inlen; } - return 0; } -/* Is this correct? */ -int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ) +int blake2b_final( blake2b_state *S, void *out, size_t outlen ) { uint8_t buffer[BLAKE2B_OUTBYTES] = {0}; + size_t i; - if( outlen > BLAKE2B_OUTBYTES ) + if( out == NULL || outlen < S->outlen ) return -1; - if( S->buflen > BLAKE2B_BLOCKBYTES ) - { - blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); - blake2b_compress( S, S->buf ); - S->buflen -= BLAKE2B_BLOCKBYTES; - memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen ); - } + if( blake2b_is_lastblock( S ) ) + return -1; blake2b_increment_counter( S, S->buflen ); blake2b_set_lastblock( S ); - memset( S->buf + S->buflen, 0, 2 * BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ + memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ blake2b_compress( S, S->buf ); - for( int i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ + for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ store64( buffer + sizeof( S->h[i] ) * i, S->h[i] ); - memcpy( out, buffer, outlen ); + memcpy( out, buffer, S->outlen ); + secure_zero_memory(buffer, sizeof(buffer)); return 0; } /* inlen, at least, should be uint64_t. Others can be size_t. */ -int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) +int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { blake2b_state S[1]; @@ -365,41 +299,81 @@ int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen return 0; } +int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { + return blake2b(out, outlen, in, inlen, key, keylen); +} + #if defined(SUPERCOP) int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) { - return blake2b( out, in, NULL, BLAKE2B_OUTBYTES, inlen, 0 ); + return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 ); } #endif #if defined(BLAKE2B_SELFTEST) #include #include "blake2-kat.h" -int main( int argc, char **argv ) +int main( void ) { uint8_t key[BLAKE2B_KEYBYTES]; - uint8_t buf[KAT_LENGTH]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; - for( size_t i = 0; i < BLAKE2B_KEYBYTES; ++i ) + for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) key[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) buf[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { uint8_t hash[BLAKE2B_OUTBYTES]; - blake2b( hash, buf, key, BLAKE2B_OUTBYTES, i, BLAKE2B_KEYBYTES ); + blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) ) { - puts( "error" ); - return -1; + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2B_OUTBYTES]; + blake2b_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2b_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2b_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) { + goto fail; + } } } puts( "ok" ); return 0; +fail: + puts("error"); + return -1; } #endif - diff --git a/cbits/blake2/ref/blake2bp-ref.c b/cbits/blake2/ref/blake2bp-ref.c index d265549..d58a152 100644 --- a/cbits/blake2/ref/blake2bp-ref.c +++ b/cbits/blake2/ref/blake2bp-ref.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -25,32 +27,48 @@ #define PARALLELISM_DEGREE 4 -static inline int blake2bp_init_leaf( blake2b_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset ) +/* + blake2b_init_param defaults to setting the expecting output length + from the digest_length parameter block field. + + In some cases, however, we do not want this, as the output length + of these instances is given by inner_length instead. +*/ +static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P ) +{ + int err = blake2b_init_param(S, P); + S->outlen = P->inner_length; + return err; +} + +static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset ) { blake2b_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; store32( &P->leaf_length, 0 ); - store64( &P->node_offset, offset ); + store32( &P->node_offset, offset ); + store32( &P->xof_length, 0 ); P->node_depth = 0; P->inner_length = BLAKE2B_OUTBYTES; memset( P->reserved, 0, sizeof( P->reserved ) ); memset( P->salt, 0, sizeof( P->salt ) ); memset( P->personal, 0, sizeof( P->personal ) ); - return blake2b_init_param( S, P ); + return blake2bp_init_leaf_param( S, P ); } -static inline int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t keylen ) +static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen ) { blake2b_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; store32( &P->leaf_length, 0 ); - store64( &P->node_offset, 0 ); + store32( &P->node_offset, 0 ); + store32( &P->xof_length, 0 ); P->node_depth = 1; P->inner_length = BLAKE2B_OUTBYTES; memset( P->reserved, 0, sizeof( P->reserved ) ); @@ -60,17 +78,20 @@ static inline int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t } -int blake2bp_init( blake2bp_state *S, const uint8_t outlen ) +int blake2bp_init( blake2bp_state *S, size_t outlen ) { + size_t i; + if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2bp_init_root( S->R, outlen, 0 ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; S->R->last_node = 1; @@ -78,19 +99,22 @@ int blake2bp_init( blake2bp_state *S, const uint8_t outlen ) return 0; } -int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ) { + size_t i; + if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2bp_init_root( S->R, outlen, keylen ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; S->R->last_node = 1; @@ -100,7 +124,7 @@ int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, memset( block, 0, BLAKE2B_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES ); secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ @@ -109,16 +133,18 @@ int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, } -int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ) +int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen ) { + const unsigned char * in = (const unsigned char *)pin; size_t left = S->buflen; size_t fill = sizeof( S->buf ) - left; + size_t i; if( left && inlen >= fill ) { memcpy( S->buf + left, in, fill ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); in += fill; @@ -130,19 +156,19 @@ int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ) #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2B_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2B_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) { - blake2b_update( S->S[id__], in__, BLAKE2B_BLOCKBYTES ); + blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; } @@ -158,11 +184,16 @@ int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ) return 0; } -int blake2bp_final( blake2bp_state *S, uint8_t *out, const uint8_t outlen ) +int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; + size_t i; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + if(out == NULL || outlen < S->outlen) { + return -1; + } + + for( i = 0; i < PARALLELISM_DEGREE; ++i ) { if( S->buflen > i * BLAKE2B_BLOCKBYTES ) { @@ -176,18 +207,18 @@ int blake2bp_final( blake2bp_state *S, uint8_t *out, const uint8_t outlen ) blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES ); } - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES ); - - return blake2b_final( S->R, out, outlen ); + return blake2b_final( S->R, out, S->outlen ); } -int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uint64_t inlen, uint8_t keylen ) +int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; blake2b_state S[PARALLELISM_DEGREE][1]; blake2b_state FS[1]; + size_t i; /* Verify parameters */ if ( NULL == in && inlen > 0 ) return -1; @@ -200,10 +231,10 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin if( keylen > BLAKE2B_KEYBYTES ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; - S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node + S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ if( keylen > 0 ) { @@ -211,7 +242,7 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin memset( block, 0, BLAKE2B_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES ); secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ @@ -221,39 +252,39 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2B_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2B_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) { - blake2b_update( S[id__], in__, BLAKE2B_BLOCKBYTES ); + blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; } - if( inlen__ > id__ * BLAKE2B_BLOCKBYTES ) + if( inlen__ > i * BLAKE2B_BLOCKBYTES ) { - const size_t left = inlen__ - id__ * BLAKE2B_BLOCKBYTES; + const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES; const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES; - blake2b_update( S[id__], in__, len ); + blake2b_update( S[i], in__, len ); } - blake2b_final( S[id__], hash[id__], BLAKE2B_OUTBYTES ); + blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES ); } if( blake2bp_init_root( FS, outlen, keylen ) < 0 ) return -1; - FS->last_node = 1; // Mark as last node + FS->last_node = 1; /* Mark as last node */ - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES ); return blake2b_final( FS, out, outlen );; @@ -262,30 +293,67 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin #if defined(BLAKE2BP_SELFTEST) #include #include "blake2-kat.h" -int main( int argc, char **argv ) +int main( void ) { uint8_t key[BLAKE2B_KEYBYTES]; - uint8_t buf[KAT_LENGTH]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; - for( size_t i = 0; i < BLAKE2B_KEYBYTES; ++i ) + for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) key[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) buf[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { uint8_t hash[BLAKE2B_OUTBYTES]; - blake2bp( hash, buf, key, BLAKE2B_OUTBYTES, i, BLAKE2B_KEYBYTES ); + blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) ) { - puts( "error" ); - return -1; + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2B_OUTBYTES]; + blake2bp_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2bp_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2bp_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) { + goto fail; + } } } puts( "ok" ); return 0; +fail: + puts("error"); + return -1; } #endif diff --git a/cbits/blake2/ref/blake2s-ref.c b/cbits/blake2/ref/blake2s-ref.c index 7cc3845..fbf4265 100644 --- a/cbits/blake2/ref/blake2s-ref.c +++ b/cbits/blake2/ref/blake2s-ref.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -38,143 +40,79 @@ static const uint8_t blake2s_sigma[10][16] = { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } , }; -static inline int blake2s_set_lastnode( blake2s_state *S ) +static void blake2s_set_lastnode( blake2s_state *S ) { - S->f[1] = -1; - return 0; -} - -static inline int blake2s_clear_lastnode( blake2s_state *S ) -{ - S->f[1] = 0; - return 0; + S->f[1] = (uint32_t)-1; } /* Some helper functions, not necessarily useful */ -static inline int blake2s_set_lastblock( blake2s_state *S ) +static int blake2s_is_lastblock( const blake2s_state *S ) +{ + return S->f[0] != 0; +} + +static void blake2s_set_lastblock( blake2s_state *S ) { if( S->last_node ) blake2s_set_lastnode( S ); - S->f[0] = -1; - return 0; + S->f[0] = (uint32_t)-1; } -static inline int blake2s_clear_lastblock( blake2s_state *S ) -{ - if( S->last_node ) blake2s_clear_lastnode( S ); - - S->f[0] = 0; - return 0; -} - -static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) +static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) { S->t[0] += inc; S->t[1] += ( S->t[0] < inc ); - return 0; } -// Parameter-related functions -static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length ) -{ - P->digest_length = digest_length; - return 0; -} - -static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout ) -{ - P->fanout = fanout; - return 0; -} - -static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth ) -{ - P->depth = depth; - return 0; -} - -static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length ) -{ - store32( &P->leaf_length, leaf_length ); - return 0; -} - -static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset ) -{ - store48( P->node_offset, node_offset ); - return 0; -} - -static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth ) -{ - P->node_depth = node_depth; - return 0; -} - -static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length ) -{ - P->inner_length = inner_length; - return 0; -} - -static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] ) -{ - memcpy( P->salt, salt, BLAKE2S_SALTBYTES ); - return 0; -} - -static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] ) -{ - memcpy( P->personal, personal, BLAKE2S_PERSONALBYTES ); - return 0; -} - -static inline int blake2s_init0( blake2s_state *S ) +static void blake2s_init0( blake2s_state *S ) { + size_t i; memset( S, 0, sizeof( blake2s_state ) ); - for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i]; - - return 0; + for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i]; } /* init2 xors IV with input parameter block */ int blake2s_init_param( blake2s_state *S, const blake2s_param *P ) { + const unsigned char *p = ( const unsigned char * )( P ); + size_t i; + blake2s_init0( S ); - const uint32_t *p = ( const uint32_t * )( P ); /* IV XOR ParamBlock */ - for( size_t i = 0; i < 8; ++i ) - S->h[i] ^= load32( &p[i] ); + for( i = 0; i < 8; ++i ) + S->h[i] ^= load32( &p[i * 4] ); + S->outlen = P->digest_length; return 0; } -// Sequential blake2s initialization -int blake2s_init( blake2s_state *S, const uint8_t outlen ) +/* Sequential blake2s initialization */ +int blake2s_init( blake2s_state *S, size_t outlen ) { blake2s_param P[1]; /* Move interval verification here? */ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; - P->digest_length = outlen; + P->digest_length = (uint8_t)outlen; P->key_length = 0; P->fanout = 1; P->depth = 1; store32( &P->leaf_length, 0 ); - store48( &P->node_offset, 0 ); + store32( &P->node_offset, 0 ); + store16( &P->xof_length, 0 ); P->node_depth = 0; P->inner_length = 0; - // memset(P->reserved, 0, sizeof(P->reserved) ); + /* memset(P->reserved, 0, sizeof(P->reserved) ); */ memset( P->salt, 0, sizeof( P->salt ) ); memset( P->personal, 0, sizeof( P->personal ) ); return blake2s_init_param( S, P ); } -int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ) { blake2s_param P[1]; @@ -182,15 +120,16 @@ int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, c if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = 1; P->depth = 1; store32( &P->leaf_length, 0 ); - store48( &P->node_offset, 0 ); + store32( &P->node_offset, 0 ); + store16( &P->xof_length, 0 ); P->node_depth = 0; P->inner_length = 0; - // memset(P->reserved, 0, sizeof(P->reserved) ); + /* memset(P->reserved, 0, sizeof(P->reserved) ); */ memset( P->salt, 0, sizeof( P->salt ) ); memset( P->personal, 0, sizeof( P->personal ) ); @@ -206,38 +145,20 @@ int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, c return 0; } -static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] ) -{ - uint32_t m[16]; - uint32_t v[16]; - - for( size_t i = 0; i < 16; ++i ) - m[i] = load32( block + i * sizeof( m[i] ) ); - - for( size_t i = 0; i < 8; ++i ) - v[i] = S->h[i]; - - v[ 8] = blake2s_IV[0]; - v[ 9] = blake2s_IV[1]; - v[10] = blake2s_IV[2]; - v[11] = blake2s_IV[3]; - v[12] = S->t[0] ^ blake2s_IV[4]; - v[13] = S->t[1] ^ blake2s_IV[5]; - v[14] = S->f[0] ^ blake2s_IV[6]; - v[15] = S->f[1] ^ blake2s_IV[7]; -#define G(r,i,a,b,c,d) \ - do { \ +#define G(r,i,a,b,c,d) \ + do { \ a = a + b + m[blake2s_sigma[r][2*i+0]]; \ - d = rotr32(d ^ a, 16); \ - c = c + d; \ - b = rotr32(b ^ c, 12); \ + d = rotr32(d ^ a, 16); \ + c = c + d; \ + b = rotr32(b ^ c, 12); \ a = a + b + m[blake2s_sigma[r][2*i+1]]; \ - d = rotr32(d ^ a, 8); \ - c = c + d; \ - b = rotr32(b ^ c, 7); \ + d = rotr32(d ^ a, 8); \ + c = c + d; \ + b = rotr32(b ^ c, 7); \ } while(0) -#define ROUND(r) \ - do { \ + +#define ROUND(r) \ + do { \ G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \ G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \ G(r,2,v[ 2],v[ 6],v[10],v[14]); \ @@ -247,6 +168,30 @@ static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCK G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \ G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \ } while(0) + +static void blake2s_compress( blake2s_state *S, const uint8_t in[BLAKE2S_BLOCKBYTES] ) +{ + uint32_t m[16]; + uint32_t v[16]; + size_t i; + + for( i = 0; i < 16; ++i ) { + m[i] = load32( in + i * sizeof( m[i] ) ); + } + + for( i = 0; i < 8; ++i ) { + v[i] = S->h[i]; + } + + v[ 8] = blake2s_IV[0]; + v[ 9] = blake2s_IV[1]; + v[10] = blake2s_IV[2]; + v[11] = blake2s_IV[3]; + v[12] = S->t[0] ^ blake2s_IV[4]; + v[13] = S->t[1] ^ blake2s_IV[5]; + v[14] = S->f[0] ^ blake2s_IV[6]; + v[15] = S->f[1] ^ blake2s_IV[7]; + ROUND( 0 ); ROUND( 1 ); ROUND( 2 ); @@ -258,73 +203,66 @@ static int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCK ROUND( 8 ); ROUND( 9 ); - for( size_t i = 0; i < 8; ++i ) + for( i = 0; i < 8; ++i ) { S->h[i] = S->h[i] ^ v[i] ^ v[i + 8]; + } +} #undef G #undef ROUND - return 0; -} - -int blake2s_update( blake2s_state *S, const uint8_t *in, uint64_t inlen ) +int blake2s_update( blake2s_state *S, const void *pin, size_t inlen ) { - while( inlen > 0 ) + const unsigned char * in = (const unsigned char *)pin; + if( inlen > 0 ) { size_t left = S->buflen; - size_t fill = 2 * BLAKE2S_BLOCKBYTES - left; - + size_t fill = BLAKE2S_BLOCKBYTES - left; if( inlen > fill ) { - memcpy( S->buf + left, in, fill ); // Fill buffer - S->buflen += fill; + S->buflen = 0; + memcpy( S->buf + left, in, fill ); /* Fill buffer */ blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); - blake2s_compress( S, S->buf ); // Compress - memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left - S->buflen -= BLAKE2S_BLOCKBYTES; - in += fill; - inlen -= fill; - } - else // inlen <= fill - { - memcpy( S->buf + left, in, inlen ); - S->buflen += inlen; // Be lazy, do not compress - in += inlen; - inlen -= inlen; + blake2s_compress( S, S->buf ); /* Compress */ + in += fill; inlen -= fill; + while(inlen > BLAKE2S_BLOCKBYTES) { + blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES); + blake2s_compress( S, in ); + in += BLAKE2S_BLOCKBYTES; + inlen -= BLAKE2S_BLOCKBYTES; + } } + memcpy( S->buf + S->buflen, in, inlen ); + S->buflen += inlen; } - return 0; } -int blake2s_final( blake2s_state *S, uint8_t *out, uint8_t outlen ) +int blake2s_final( blake2s_state *S, void *out, size_t outlen ) { uint8_t buffer[BLAKE2S_OUTBYTES] = {0}; + size_t i; - if( outlen > BLAKE2S_OUTBYTES ) + if( out == NULL || outlen < S->outlen ) return -1; - if( S->buflen > BLAKE2S_BLOCKBYTES ) - { - blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); - blake2s_compress( S, S->buf ); - S->buflen -= BLAKE2S_BLOCKBYTES; - memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen ); - } + if( blake2s_is_lastblock( S ) ) + return -1; blake2s_increment_counter( S, ( uint32_t )S->buflen ); blake2s_set_lastblock( S ); - memset( S->buf + S->buflen, 0, 2 * BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ + memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ blake2s_compress( S, S->buf ); - for( int i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ + for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ store32( buffer + sizeof( S->h[i] ) * i, S->h[i] ); - + memcpy( out, buffer, outlen ); + secure_zero_memory(buffer, sizeof(buffer)); return 0; } -int blake2s( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) +int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { blake2s_state S[1]; @@ -356,39 +294,74 @@ int blake2s( uint8_t *out, const void *in, const void *key, const uint8_t outlen #if defined(SUPERCOP) int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) { - return blake2s( out, in, NULL, BLAKE2S_OUTBYTES, inlen, 0 ); + return blake2s( out, BLAKE2S_OUTBYTES in, inlen, NULL, 0 ); } #endif #if defined(BLAKE2S_SELFTEST) #include #include "blake2-kat.h" -int main( int argc, char **argv ) +int main( void ) { uint8_t key[BLAKE2S_KEYBYTES]; - uint8_t buf[KAT_LENGTH]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; - for( size_t i = 0; i < BLAKE2S_KEYBYTES; ++i ) + for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) key[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) buf[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { uint8_t hash[BLAKE2S_OUTBYTES]; - blake2s( hash, buf, key, BLAKE2S_OUTBYTES, i, BLAKE2S_KEYBYTES ); + blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) ) { - puts( "error" ); - return -1; + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2S_OUTBYTES]; + blake2s_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2s_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2s_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) { + goto fail; + } } } puts( "ok" ); return 0; +fail: + puts("error"); + return -1; } #endif - - diff --git a/cbits/blake2/ref/blake2sp-ref.c b/cbits/blake2/ref/blake2sp-ref.c index 1ddb5b1..b0e9bae 100644 --- a/cbits/blake2/ref/blake2sp-ref.c +++ b/cbits/blake2/ref/blake2sp-ref.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -24,31 +26,47 @@ #define PARALLELISM_DEGREE 8 -static inline int blake2sp_init_leaf( blake2s_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset ) +/* + blake2sp_init_param defaults to setting the expecting output length + from the digest_length parameter block field. + + In some cases, however, we do not want this, as the output length + of these instances is given by inner_length instead. +*/ +static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P ) +{ + int err = blake2s_init_param(S, P); + S->outlen = P->inner_length; + return err; +} + +static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset ) { blake2s_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; store32( &P->leaf_length, 0 ); - store48( P->node_offset, offset ); + store32( &P->node_offset, offset ); + store16( &P->xof_length, 0 ); P->node_depth = 0; P->inner_length = BLAKE2S_OUTBYTES; memset( P->salt, 0, sizeof( P->salt ) ); memset( P->personal, 0, sizeof( P->personal ) ); - return blake2s_init_param( S, P ); + return blake2sp_init_leaf_param( S, P ); } -static inline int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t keylen ) +static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen ) { blake2s_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; store32( &P->leaf_length, 0 ); - store48( P->node_offset, 0ULL ); + store32( &P->node_offset, 0 ); + store16( &P->xof_length, 0 ); P->node_depth = 1; P->inner_length = BLAKE2S_OUTBYTES; memset( P->salt, 0, sizeof( P->salt ) ); @@ -57,17 +75,20 @@ static inline int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t } -int blake2sp_init( blake2sp_state *S, const uint8_t outlen ) +int blake2sp_init( blake2sp_state *S, size_t outlen ) { + size_t i; + if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2sp_init_root( S->R, outlen, 0 ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; S->R->last_node = 1; @@ -75,19 +96,22 @@ int blake2sp_init( blake2sp_state *S, const uint8_t outlen ) return 0; } -int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ) { + size_t i; + if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2sp_init_root( S->R, outlen, keylen ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; S->R->last_node = 1; @@ -97,7 +121,7 @@ int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, memset( block, 0, BLAKE2S_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES ); secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ @@ -106,16 +130,18 @@ int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, } -int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ) +int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen ) { + const unsigned char * in = (const unsigned char *)pin; size_t left = S->buflen; size_t fill = sizeof( S->buf ) - left; + size_t i; if( left && inlen >= fill ) { memcpy( S->buf + left, in, fill ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); in += fill; @@ -126,20 +152,19 @@ int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ) #if defined(_OPENMP) #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) #else - - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2S_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2S_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) { - blake2s_update( S->S[id__], in__, BLAKE2S_BLOCKBYTES ); + blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; } @@ -156,11 +181,16 @@ int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ) } -int blake2sp_final( blake2sp_state *S, uint8_t *out, const uint8_t outlen ) +int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; + size_t i; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + if(out == NULL || outlen < S->outlen) { + return -1; + } + + for( i = 0; i < PARALLELISM_DEGREE; ++i ) { if( S->buflen > i * BLAKE2S_BLOCKBYTES ) { @@ -174,18 +204,19 @@ int blake2sp_final( blake2sp_state *S, uint8_t *out, const uint8_t outlen ) blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES ); } - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES ); - return blake2s_final( S->R, out, outlen ); + return blake2s_final( S->R, out, S->outlen ); } -int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uint64_t inlen, uint8_t keylen ) +int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; blake2s_state S[PARALLELISM_DEGREE][1]; blake2s_state FS[1]; + size_t i; /* Verify parameters */ if ( NULL == in && inlen > 0 ) return -1; @@ -198,10 +229,10 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin if( keylen > BLAKE2S_KEYBYTES ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; - S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node + S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ if( keylen > 0 ) { @@ -209,7 +240,7 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin memset( block, 0, BLAKE2S_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES ); secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ @@ -219,31 +250,31 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2S_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2S_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) { - blake2s_update( S[id__], in__, BLAKE2S_BLOCKBYTES ); + blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; } - if( inlen__ > id__ * BLAKE2S_BLOCKBYTES ) + if( inlen__ > i * BLAKE2S_BLOCKBYTES ) { - const size_t left = inlen__ - id__ * BLAKE2S_BLOCKBYTES; + const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES; const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES; - blake2s_update( S[id__], in__, len ); + blake2s_update( S[i], in__, len ); } - blake2s_final( S[id__], hash[id__], BLAKE2S_OUTBYTES ); + blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES ); } if( blake2sp_init_root( FS, outlen, keylen ) < 0 ) @@ -251,7 +282,7 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin FS->last_node = 1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES ); return blake2s_final( FS, out, outlen ); @@ -262,36 +293,67 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin #if defined(BLAKE2SP_SELFTEST) #include #include "blake2-kat.h" -int main( int argc, char **argv ) +int main( void ) { uint8_t key[BLAKE2S_KEYBYTES]; - uint8_t buf[KAT_LENGTH]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; - for( size_t i = 0; i < BLAKE2S_KEYBYTES; ++i ) + for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) key[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) buf[i] = ( uint8_t )i; - for( size_t i = 0; i < KAT_LENGTH; ++i ) + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { uint8_t hash[BLAKE2S_OUTBYTES]; - blake2sp( hash, buf, key, BLAKE2S_OUTBYTES, i, BLAKE2S_KEYBYTES ); + blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) ) { - puts( "error" ); - return -1; + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2S_OUTBYTES]; + blake2sp_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2sp_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2sp_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) { + goto fail; + } } } puts( "ok" ); return 0; +fail: + puts("error"); + return -1; } #endif - - - - - - diff --git a/cbits/blake2/ref/blake2xb-ref.c b/cbits/blake2/ref/blake2xb-ref.c new file mode 100644 index 0000000..b369ee7 --- /dev/null +++ b/cbits/blake2/ref/blake2xb-ref.c @@ -0,0 +1,241 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Copyright 2016, JP Aumasson . + Copyright 2016, Samuel Neves . + + You may use this under the terms of the CC0, the OpenSSL Licence, or + the Apache Public License 2.0, at your option. The terms of these + licenses can be found at: + + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + + More information about the BLAKE2 hash function can be found at + https://blake2.net. +*/ + +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" + +int blake2xb_init( blake2xb_state *S, const size_t outlen ) { + return blake2xb_init_key(S, outlen, NULL, 0); +} + +int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen) +{ + if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) { + return -1; + } + + if (NULL != key && keylen > BLAKE2B_KEYBYTES) { + return -1; + } + + if (NULL == key && keylen > 0) { + return -1; + } + + /* Initialize parameter block */ + S->P->digest_length = BLAKE2B_OUTBYTES; + S->P->key_length = keylen; + S->P->fanout = 1; + S->P->depth = 1; + store32( &S->P->leaf_length, 0 ); + store32( &S->P->node_offset, 0 ); + store32( &S->P->xof_length, outlen ); + S->P->node_depth = 0; + S->P->inner_length = 0; + memset( S->P->reserved, 0, sizeof( S->P->reserved ) ); + memset( S->P->salt, 0, sizeof( S->P->salt ) ); + memset( S->P->personal, 0, sizeof( S->P->personal ) ); + + if( blake2b_init_param( S->S, S->P ) < 0 ) { + return -1; + } + + if (keylen > 0) { + uint8_t block[BLAKE2B_BLOCKBYTES]; + memset(block, 0, BLAKE2B_BLOCKBYTES); + memcpy(block, key, keylen); + blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES); + secure_zero_memory(block, BLAKE2B_BLOCKBYTES); + } + return 0; +} + +int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) { + return blake2b_update( S->S, in, inlen ); +} + +int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) { + + blake2b_state C[1]; + blake2b_param P[1]; + uint32_t xof_length = load32(&S->P->xof_length); + uint8_t root[BLAKE2B_BLOCKBYTES]; + size_t i; + + if (NULL == out) { + return -1; + } + + /* outlen must match the output size defined in xof_length, */ + /* unless it was -1, in which case anything goes except 0. */ + if(xof_length == 0xFFFFFFFFUL) { + if(outlen == 0) { + return -1; + } + } else { + if(outlen != xof_length) { + return -1; + } + } + + /* Finalize the root hash */ + if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) { + return -1; + } + + /* Set common block structure values */ + /* Copy values from parent instance, and only change the ones below */ + memcpy(P, S->P, sizeof(blake2b_param)); + P->key_length = 0; + P->fanout = 0; + P->depth = 0; + store32(&P->leaf_length, BLAKE2B_OUTBYTES); + P->inner_length = BLAKE2B_OUTBYTES; + P->node_depth = 0; + + for (i = 0; outlen > 0; ++i) { + const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES; + /* Initialize state */ + P->digest_length = block_size; + store32(&P->node_offset, i); + blake2b_init_param(C, P); + /* Process key if needed */ + blake2b_update(C, root, BLAKE2B_OUTBYTES); + if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) { + return -1; + } + outlen -= block_size; + } + secure_zero_memory(root, sizeof(root)); + secure_zero_memory(P, sizeof(P)); + secure_zero_memory(C, sizeof(C)); + /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */ + return 0; + +} + +int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) +{ + blake2xb_state S[1]; + + /* Verify parameters */ + if (NULL == in && inlen > 0) + return -1; + + if (NULL == out) + return -1; + + if (NULL == key && keylen > 0) + return -1; + + if (keylen > BLAKE2B_KEYBYTES) + return -1; + + if (outlen == 0) + return -1; + + /* Initialize the root block structure */ + if (blake2xb_init_key(S, outlen, key, keylen) < 0) { + return -1; + } + + /* Absorb the input message */ + blake2xb_update(S, in, inlen); + + /* Compute the root node of the tree and the final hash using the counter construction */ + return blake2xb_final(S, out, outlen); +} + +#if defined(BLAKE2XB_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2B_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step, outlen; + + for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) { + key[i] = ( uint8_t )i; + } + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { + buf[i] = ( uint8_t )i; + } + + /* Testing length of outputs rather than inputs */ + /* (Test of input lengths mostly covered by blake2b tests) */ + + /* Test simple API */ + for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) + { + uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; + if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) { + goto fail; + } + + if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { + for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { + uint8_t hash[BLAKE2_KAT_LENGTH]; + blake2xb_state S; + uint8_t * p = buf; + size_t mlen = BLAKE2_KAT_LENGTH; + int err = 0; + + if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2xb_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2xb_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2xb_final(&S, hash, outlen)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/ref/blake2xs-ref.c b/cbits/blake2/ref/blake2xs-ref.c new file mode 100644 index 0000000..e7a89f8 --- /dev/null +++ b/cbits/blake2/ref/blake2xs-ref.c @@ -0,0 +1,239 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Copyright 2016, JP Aumasson . + Copyright 2016, Samuel Neves . + + You may use this under the terms of the CC0, the OpenSSL Licence, or + the Apache Public License 2.0, at your option. The terms of these + licenses can be found at: + + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + + More information about the BLAKE2 hash function can be found at + https://blake2.net. +*/ + +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" + +int blake2xs_init( blake2xs_state *S, const size_t outlen ) { + return blake2xs_init_key(S, outlen, NULL, 0); +} + +int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ) +{ + if ( outlen == 0 || outlen > 0xFFFFUL ) { + return -1; + } + + if (NULL != key && keylen > BLAKE2B_KEYBYTES) { + return -1; + } + + if (NULL == key && keylen > 0) { + return -1; + } + + /* Initialize parameter block */ + S->P->digest_length = BLAKE2S_OUTBYTES; + S->P->key_length = keylen; + S->P->fanout = 1; + S->P->depth = 1; + store32( &S->P->leaf_length, 0 ); + store32( &S->P->node_offset, 0 ); + store16( &S->P->xof_length, outlen ); + S->P->node_depth = 0; + S->P->inner_length = 0; + memset( S->P->salt, 0, sizeof( S->P->salt ) ); + memset( S->P->personal, 0, sizeof( S->P->personal ) ); + + if( blake2s_init_param( S->S, S->P ) < 0 ) { + return -1; + } + + if (keylen > 0) { + uint8_t block[BLAKE2S_BLOCKBYTES]; + memset(block, 0, BLAKE2S_BLOCKBYTES); + memcpy(block, key, keylen); + blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES); + secure_zero_memory(block, BLAKE2S_BLOCKBYTES); + } + return 0; +} + +int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) { + return blake2s_update( S->S, in, inlen ); +} + +int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) { + + blake2s_state C[1]; + blake2s_param P[1]; + uint16_t xof_length = load16(&S->P->xof_length); + uint8_t root[BLAKE2S_BLOCKBYTES]; + size_t i; + + if (NULL == out) { + return -1; + } + + /* outlen must match the output size defined in xof_length, */ + /* unless it was -1, in which case anything goes except 0. */ + if(xof_length == 0xFFFFUL) { + if(outlen == 0) { + return -1; + } + } else { + if(outlen != xof_length) { + return -1; + } + } + + /* Finalize the root hash */ + if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) { + return -1; + } + + /* Set common block structure values */ + /* Copy values from parent instance, and only change the ones below */ + memcpy(P, S->P, sizeof(blake2s_param)); + P->key_length = 0; + P->fanout = 0; + P->depth = 0; + store32(&P->leaf_length, BLAKE2S_OUTBYTES); + P->inner_length = BLAKE2S_OUTBYTES; + P->node_depth = 0; + + for (i = 0; outlen > 0; ++i) { + const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES; + /* Initialize state */ + P->digest_length = block_size; + store32(&P->node_offset, i); + blake2s_init_param(C, P); + /* Process key if needed */ + blake2s_update(C, root, BLAKE2S_OUTBYTES); + if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) { + return -1; + } + outlen -= block_size; + } + secure_zero_memory(root, sizeof(root)); + secure_zero_memory(P, sizeof(P)); + secure_zero_memory(C, sizeof(C)); + /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */ + return 0; +} + +int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) +{ + blake2xs_state S[1]; + + /* Verify parameters */ + if (NULL == in && inlen > 0) + return -1; + + if (NULL == out) + return -1; + + if (NULL == key && keylen > 0) + return -1; + + if (keylen > BLAKE2S_KEYBYTES) + return -1; + + if (outlen == 0) + return -1; + + /* Initialize the root block structure */ + if (blake2xs_init_key(S, outlen, key, keylen) < 0) { + return -1; + } + + /* Absorb the input message */ + blake2xs_update(S, in, inlen); + + /* Compute the root node of the tree and the final hash using the counter construction */ + return blake2xs_final(S, out, outlen); +} + +#if defined(BLAKE2XS_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2S_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step, outlen; + + for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) { + key[i] = ( uint8_t )i; + } + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { + buf[i] = ( uint8_t )i; + } + + /* Testing length of outputs rather than inputs */ + /* (Test of input lengths mostly covered by blake2s tests) */ + + /* Test simple API */ + for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) + { + uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; + if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) { + goto fail; + } + + if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { + for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { + uint8_t hash[BLAKE2_KAT_LENGTH]; + blake2xs_state S; + uint8_t * p = buf; + size_t mlen = BLAKE2_KAT_LENGTH; + int err = 0; + + if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2xs_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2xs_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2xs_final(&S, hash, outlen)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/sse/blake2-config.h b/cbits/blake2/sse/blake2-config.h index 70d61f1..a524aa9 100644 --- a/cbits/blake2/sse/blake2-config.h +++ b/cbits/blake2/sse/blake2-config.h @@ -1,21 +1,22 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2_CONFIG_H__ -#define __BLAKE2_CONFIG_H__ +#ifndef BLAKE2_CONFIG_H +#define BLAKE2_CONFIG_H -// These don't work everywhere -#if defined(__SSE2__) +/* These don't work everywhere */ +#if defined(__SSE2__) || defined(__x86_64__) || defined(__amd64__) #define HAVE_SSE2 #endif @@ -69,4 +70,3 @@ #endif #endif - diff --git a/cbits/blake2/sse/blake2-impl.h b/cbits/blake2/sse/blake2-impl.h index 16219db..5dff7fc 100644 --- a/cbits/blake2/sse/blake2-impl.h +++ b/cbits/blake2/sse/blake2-impl.h @@ -1,22 +1,36 @@ /* - BLAKE2 reference source code package - optimized C implementations + BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2_IMPL_H__ -#define __BLAKE2_IMPL_H__ +#ifndef BLAKE2_IMPL_H +#define BLAKE2_IMPL_H #include +#include -static inline uint32_t load32( const void *src ) +#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) + #if defined(_MSC_VER) + #define BLAKE2_INLINE __inline + #elif defined(__GNUC__) + #define BLAKE2_INLINE __inline__ + #else + #define BLAKE2_INLINE + #endif +#else + #define BLAKE2_INLINE inline +#endif + +static BLAKE2_INLINE uint32_t load32( const void *src ) { #if defined(NATIVE_LITTLE_ENDIAN) uint32_t w; @@ -24,15 +38,14 @@ static inline uint32_t load32( const void *src ) return w; #else const uint8_t *p = ( const uint8_t * )src; - uint32_t w = *p++; - w |= ( uint32_t )( *p++ ) << 8; - w |= ( uint32_t )( *p++ ) << 16; - w |= ( uint32_t )( *p++ ) << 24; - return w; + return (( uint32_t )( p[0] ) << 0) | + (( uint32_t )( p[1] ) << 8) | + (( uint32_t )( p[2] ) << 16) | + (( uint32_t )( p[3] ) << 24) ; #endif } -static inline uint64_t load64( const void *src ) +static BLAKE2_INLINE uint64_t load64( const void *src ) { #if defined(NATIVE_LITTLE_ENDIAN) uint64_t w; @@ -40,97 +53,108 @@ static inline uint64_t load64( const void *src ) return w; #else const uint8_t *p = ( const uint8_t * )src; - uint64_t w = *p++; - w |= ( uint64_t )( *p++ ) << 8; - w |= ( uint64_t )( *p++ ) << 16; - w |= ( uint64_t )( *p++ ) << 24; - w |= ( uint64_t )( *p++ ) << 32; - w |= ( uint64_t )( *p++ ) << 40; - w |= ( uint64_t )( *p++ ) << 48; - w |= ( uint64_t )( *p++ ) << 56; + return (( uint64_t )( p[0] ) << 0) | + (( uint64_t )( p[1] ) << 8) | + (( uint64_t )( p[2] ) << 16) | + (( uint64_t )( p[3] ) << 24) | + (( uint64_t )( p[4] ) << 32) | + (( uint64_t )( p[5] ) << 40) | + (( uint64_t )( p[6] ) << 48) | + (( uint64_t )( p[7] ) << 56) ; +#endif +} + +static BLAKE2_INLINE uint16_t load16( const void *src ) +{ +#if defined(NATIVE_LITTLE_ENDIAN) + uint16_t w; + memcpy(&w, src, sizeof w); return w; +#else + const uint8_t *p = ( const uint8_t * )src; + return (( uint16_t )( p[0] ) << 0) | + (( uint16_t )( p[1] ) << 8) ; #endif } -static inline void store32( void *dst, uint32_t w ) +static BLAKE2_INLINE void store16( void *dst, uint16_t w ) { #if defined(NATIVE_LITTLE_ENDIAN) memcpy(dst, &w, sizeof w); #else uint8_t *p = ( uint8_t * )dst; *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; *p++ = ( uint8_t )w; #endif } -static inline void store64( void *dst, uint64_t w ) +static BLAKE2_INLINE void store32( void *dst, uint32_t w ) { #if defined(NATIVE_LITTLE_ENDIAN) memcpy(dst, &w, sizeof w); #else uint8_t *p = ( uint8_t * )dst; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; + p[0] = (uint8_t)(w >> 0); + p[1] = (uint8_t)(w >> 8); + p[2] = (uint8_t)(w >> 16); + p[3] = (uint8_t)(w >> 24); #endif } -static inline uint64_t load48( const void *src ) +static BLAKE2_INLINE void store64( void *dst, uint64_t w ) +{ +#if defined(NATIVE_LITTLE_ENDIAN) + memcpy(dst, &w, sizeof w); +#else + uint8_t *p = ( uint8_t * )dst; + p[0] = (uint8_t)(w >> 0); + p[1] = (uint8_t)(w >> 8); + p[2] = (uint8_t)(w >> 16); + p[3] = (uint8_t)(w >> 24); + p[4] = (uint8_t)(w >> 32); + p[5] = (uint8_t)(w >> 40); + p[6] = (uint8_t)(w >> 48); + p[7] = (uint8_t)(w >> 56); +#endif +} + +static BLAKE2_INLINE uint64_t load48( const void *src ) { const uint8_t *p = ( const uint8_t * )src; - uint64_t w = *p++; - w |= ( uint64_t )( *p++ ) << 8; - w |= ( uint64_t )( *p++ ) << 16; - w |= ( uint64_t )( *p++ ) << 24; - w |= ( uint64_t )( *p++ ) << 32; - w |= ( uint64_t )( *p++ ) << 40; - return w; + return (( uint64_t )( p[0] ) << 0) | + (( uint64_t )( p[1] ) << 8) | + (( uint64_t )( p[2] ) << 16) | + (( uint64_t )( p[3] ) << 24) | + (( uint64_t )( p[4] ) << 32) | + (( uint64_t )( p[5] ) << 40) ; } -static inline void store48( void *dst, uint64_t w ) +static BLAKE2_INLINE void store48( void *dst, uint64_t w ) { uint8_t *p = ( uint8_t * )dst; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; w >>= 8; - *p++ = ( uint8_t )w; + p[0] = (uint8_t)(w >> 0); + p[1] = (uint8_t)(w >> 8); + p[2] = (uint8_t)(w >> 16); + p[3] = (uint8_t)(w >> 24); + p[4] = (uint8_t)(w >> 32); + p[5] = (uint8_t)(w >> 40); } -static inline uint32_t rotl32( const uint32_t w, const unsigned c ) -{ - return ( w << c ) | ( w >> ( 32 - c ) ); -} - -static inline uint64_t rotl64( const uint64_t w, const unsigned c ) -{ - return ( w << c ) | ( w >> ( 64 - c ) ); -} - -static inline uint32_t rotr32( const uint32_t w, const unsigned c ) +static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c ) { return ( w >> c ) | ( w << ( 32 - c ) ); } -static inline uint64_t rotr64( const uint64_t w, const unsigned c ) +static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c ) { return ( w >> c ) | ( w << ( 64 - c ) ); } /* prevents compiler optimizing out memset() */ -static inline void secure_zero_memory( void *v, size_t n ) +static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n) { - volatile uint8_t *p = ( volatile uint8_t * )v; - while( n-- ) *p++ = 0; + static void *(*const volatile memset_v)(void *, int, size_t) = &memset; + memset_v(v, 0, n); } #endif - diff --git a/cbits/blake2/sse/blake2.h b/cbits/blake2/sse/blake2.h index 20bc22d..ad62f26 100644 --- a/cbits/blake2/sse/blake2.h +++ b/cbits/blake2/sse/blake2.h @@ -1,22 +1,29 @@ /* - BLAKE2 reference source code package - optimized C implementations + BLAKE2 reference source code package - reference C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2_H__ -#define __BLAKE2_H__ +#ifndef BLAKE2_H +#define BLAKE2_H #include #include +#if defined(_MSC_VER) +#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) +#else +#define BLAKE2_PACKED(x) x __attribute__((packed)) +#endif + #if defined(__cplusplus) extern "C" { #endif @@ -39,112 +46,150 @@ extern "C" { BLAKE2B_PERSONALBYTES = 16 }; -#pragma pack(push, 1) - typedef struct __blake2s_param - { - uint8_t digest_length; // 1 - uint8_t key_length; // 2 - uint8_t fanout; // 3 - uint8_t depth; // 4 - uint32_t leaf_length; // 8 - uint8_t node_offset[6];// 14 - uint8_t node_depth; // 15 - uint8_t inner_length; // 16 - // uint8_t reserved[0]; - uint8_t salt[BLAKE2S_SALTBYTES]; // 24 - uint8_t personal[BLAKE2S_PERSONALBYTES]; // 32 - } blake2s_param; - - typedef struct __blake2s_state + typedef struct blake2s_state__ { uint32_t h[8]; uint32_t t[2]; uint32_t f[2]; - uint8_t buf[2 * BLAKE2S_BLOCKBYTES]; + uint8_t buf[BLAKE2S_BLOCKBYTES]; size_t buflen; + size_t outlen; uint8_t last_node; } blake2s_state; - typedef struct __blake2b_param - { - uint8_t digest_length; // 1 - uint8_t key_length; // 2 - uint8_t fanout; // 3 - uint8_t depth; // 4 - uint32_t leaf_length; // 8 - uint64_t node_offset; // 16 - uint8_t node_depth; // 17 - uint8_t inner_length; // 18 - uint8_t reserved[14]; // 32 - uint8_t salt[BLAKE2B_SALTBYTES]; // 48 - uint8_t personal[BLAKE2B_PERSONALBYTES]; // 64 - } blake2b_param; - - typedef struct __blake2b_state + typedef struct blake2b_state__ { uint64_t h[8]; uint64_t t[2]; uint64_t f[2]; - uint8_t buf[2 * BLAKE2B_BLOCKBYTES]; + uint8_t buf[BLAKE2B_BLOCKBYTES]; size_t buflen; + size_t outlen; uint8_t last_node; } blake2b_state; - typedef struct __blake2sp_state + typedef struct blake2sp_state__ { blake2s_state S[8][1]; blake2s_state R[1]; - uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; - size_t buflen; + uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; + size_t buflen; + size_t outlen; } blake2sp_state; - typedef struct __blake2bp_state + typedef struct blake2bp_state__ { blake2b_state S[4][1]; blake2b_state R[1]; - uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; - size_t buflen; + uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; + size_t buflen; + size_t outlen; } blake2bp_state; -#pragma pack(pop) - // Streaming API - int blake2s_init( blake2s_state *S, const uint8_t outlen ); - int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); - int blake2s_update( blake2s_state *S, const uint8_t *in, uint64_t inlen ); - int blake2s_final( blake2s_state *S, uint8_t *out, uint8_t outlen ); - int blake2b_init( blake2b_state *S, const uint8_t outlen ); - int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); - int blake2b_update( blake2b_state *S, const uint8_t *in, uint64_t inlen ); - int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ); - - int blake2sp_init( blake2sp_state *S, const uint8_t outlen ); - int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ); - int blake2sp_final( blake2sp_state *S, uint8_t *out, uint8_t outlen ); - - int blake2bp_init( blake2bp_state *S, const uint8_t outlen ); - int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); - int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ); - int blake2bp_final( blake2bp_state *S, uint8_t *out, uint8_t outlen ); - - // Simple API - int blake2s( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - - int blake2sp( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - int blake2bp( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); - - static inline int blake2( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) + BLAKE2_PACKED(struct blake2s_param__ { - return blake2b( out, in, key, outlen, inlen, keylen ); - } + uint8_t digest_length; /* 1 */ + uint8_t key_length; /* 2 */ + uint8_t fanout; /* 3 */ + uint8_t depth; /* 4 */ + uint32_t leaf_length; /* 8 */ + uint32_t node_offset; /* 12 */ + uint16_t xof_length; /* 14 */ + uint8_t node_depth; /* 15 */ + uint8_t inner_length; /* 16 */ + /* uint8_t reserved[0]; */ + uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */ + uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */ + }); + + typedef struct blake2s_param__ blake2s_param; + + BLAKE2_PACKED(struct blake2b_param__ + { + uint8_t digest_length; /* 1 */ + uint8_t key_length; /* 2 */ + uint8_t fanout; /* 3 */ + uint8_t depth; /* 4 */ + uint32_t leaf_length; /* 8 */ + uint32_t node_offset; /* 12 */ + uint32_t xof_length; /* 16 */ + uint8_t node_depth; /* 17 */ + uint8_t inner_length; /* 18 */ + uint8_t reserved[14]; /* 32 */ + uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */ + uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */ + }); + + typedef struct blake2b_param__ blake2b_param; + + typedef struct blake2xs_state__ + { + blake2s_state S[1]; + blake2s_param P[1]; + } blake2xs_state; + + typedef struct blake2xb_state__ + { + blake2b_state S[1]; + blake2b_param P[1]; + } blake2xb_state; + + /* Padded structs result in a compile-time error */ + enum { + BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES), + BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES) + }; + + /* Streaming API */ + int blake2s_init( blake2s_state *S, size_t outlen ); + int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); + int blake2s_update( blake2s_state *S, const void *in, size_t inlen ); + int blake2s_final( blake2s_state *S, void *out, size_t outlen ); + + int blake2b_init( blake2b_state *S, size_t outlen ); + int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); + int blake2b_update( blake2b_state *S, const void *in, size_t inlen ); + int blake2b_final( blake2b_state *S, void *out, size_t outlen ); + + int blake2sp_init( blake2sp_state *S, size_t outlen ); + int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen ); + int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ); + + int blake2bp_init( blake2bp_state *S, size_t outlen ); + int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ); + int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen ); + int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ); + + /* Variable output length API */ + int blake2xs_init( blake2xs_state *S, const size_t outlen ); + int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ); + int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ); + int blake2xs_final(blake2xs_state *S, void *out, size_t outlen); + + int blake2xb_init( blake2xb_state *S, const size_t outlen ); + int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen ); + int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ); + int blake2xb_final(blake2xb_state *S, void *out, size_t outlen); + + /* Simple API */ + int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + + int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + + int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); + + /* This is simply an alias for blake2b */ + int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); #if defined(__cplusplus) } #endif #endif - diff --git a/cbits/blake2/sse/blake2b-load-sse2.h b/cbits/blake2/sse/blake2b-load-sse2.h index 1ba153c..23a8d40 100644 --- a/cbits/blake2/sse/blake2b-load-sse2.h +++ b/cbits/blake2/sse/blake2b-load-sse2.h @@ -1,18 +1,19 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2B_LOAD_SSE2_H__ -#define __BLAKE2B_LOAD_SSE2_H__ +#ifndef BLAKE2B_LOAD_SSE2_H +#define BLAKE2B_LOAD_SSE2_H #define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) #define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) @@ -65,4 +66,3 @@ #endif - diff --git a/cbits/blake2/sse/blake2b-load-sse41.h b/cbits/blake2/sse/blake2b-load-sse41.h index f6c1bc8..0eca865 100644 --- a/cbits/blake2/sse/blake2b-load-sse41.h +++ b/cbits/blake2/sse/blake2b-load-sse41.h @@ -1,18 +1,19 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2B_LOAD_SSE41_H__ -#define __BLAKE2B_LOAD_SSE41_H__ +#ifndef BLAKE2B_LOAD_SSE41_H +#define BLAKE2B_LOAD_SSE41_H #define LOAD_MSG_0_1(b0, b1) \ do \ @@ -399,4 +400,3 @@ b1 = _mm_unpackhi_epi64(m3, m1); \ #endif - diff --git a/cbits/blake2/sse/blake2b-round.h b/cbits/blake2/sse/blake2b-round.h index 200b066..6537fff 100644 --- a/cbits/blake2/sse/blake2b-round.h +++ b/cbits/blake2/sse/blake2b-round.h @@ -1,18 +1,19 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2B_ROUND_H__ -#define __BLAKE2B_ROUND_H__ +#ifndef BLAKE2B_ROUND_H +#define BLAKE2B_ROUND_H #define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) ) #define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r) @@ -59,7 +60,7 @@ \ row2l = _mm_roti_epi64(row2l, -24); \ row2h = _mm_roti_epi64(row2h, -24); \ - + #define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ @@ -78,7 +79,7 @@ \ row2l = _mm_roti_epi64(row2l, -63); \ row2h = _mm_roti_epi64(row2h, -63); \ - + #if defined(HAVE_SSSE3) #define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ t0 = _mm_alignr_epi8(row2h, row2l, 8); \ @@ -154,4 +155,3 @@ UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); #endif - diff --git a/cbits/blake2/sse/blake2b.c b/cbits/blake2/sse/blake2b.c index 7026d62..c8c1c5f 100644 --- a/cbits/blake2/sse/blake2b.c +++ b/cbits/blake2/sse/blake2b.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -47,196 +49,93 @@ static const uint64_t blake2b_IV[8] = 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL }; -static const uint8_t blake2b_sigma[12][16] = +/* Some helper functions */ +static void blake2b_set_lastnode( blake2b_state *S ) { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , - { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } , - { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } , - { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } , - { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } , - { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } , - { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } , - { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } , - { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } , - { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } , - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , - { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } -}; - - -/* Some helper functions, not necessarily useful */ -static inline int blake2b_set_lastnode( blake2b_state *S ) -{ - S->f[1] = -1; - return 0; + S->f[1] = (uint64_t)-1; } -static inline int blake2b_clear_lastnode( blake2b_state *S ) +static int blake2b_is_lastblock( const blake2b_state *S ) { - S->f[1] = 0; - return 0; + return S->f[0] != 0; } -static inline int blake2b_set_lastblock( blake2b_state *S ) +static void blake2b_set_lastblock( blake2b_state *S ) { if( S->last_node ) blake2b_set_lastnode( S ); - S->f[0] = -1; - return 0; + S->f[0] = (uint64_t)-1; } -static inline int blake2b_clear_lastblock( blake2b_state *S ) +static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) { - if( S->last_node ) blake2b_clear_lastnode( S ); - - S->f[0] = 0; - return 0; -} - - -static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) -{ -#if __x86_64__ - // ADD/ADC chain - __uint128_t t = ( ( __uint128_t )S->t[1] << 64 ) | S->t[0]; - t += inc; - S->t[0] = ( uint64_t )( t >> 0 ); - S->t[1] = ( uint64_t )( t >> 64 ); -#else S->t[0] += inc; S->t[1] += ( S->t[0] < inc ); -#endif - return 0; -} - - -// Parameter-related functions -static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length ) -{ - P->digest_length = digest_length; - return 0; -} - -static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout ) -{ - P->fanout = fanout; - return 0; -} - -static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth ) -{ - P->depth = depth; - return 0; -} - -static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length ) -{ - P->leaf_length = leaf_length; - return 0; -} - -static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset ) -{ - P->node_offset = node_offset; - return 0; -} - -static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth ) -{ - P->node_depth = node_depth; - return 0; -} - -static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length ) -{ - P->inner_length = inner_length; - return 0; -} - -static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] ) -{ - memcpy( P->salt, salt, BLAKE2B_SALTBYTES ); - return 0; -} - -static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] ) -{ - memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES ); - return 0; -} - -static inline int blake2b_init0( blake2b_state *S ) -{ - memset( S, 0, sizeof( blake2b_state ) ); - - for( int i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i]; - - return 0; } /* init xors IV with input parameter block */ -__attribute__((visibility ("hidden"))) int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) { - //blake2b_init0( S ); - const uint8_t * v = ( const uint8_t * )( blake2b_IV ); - const uint8_t * p = ( const uint8_t * )( P ); - uint8_t * h = ( uint8_t * )( S->h ); + size_t i; + /*blake2b_init0( S ); */ + const unsigned char * v = ( const unsigned char * )( blake2b_IV ); + const unsigned char * p = ( const unsigned char * )( P ); + unsigned char * h = ( unsigned char * )( S->h ); /* IV XOR ParamBlock */ memset( S, 0, sizeof( blake2b_state ) ); - for( int i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; + for( i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; + S->outlen = P->digest_length; return 0; } /* Some sort of default parameter block initialization, for sequential blake2b */ -__attribute__((visibility ("hidden"))) -int blake2b_init( blake2b_state *S, const uint8_t outlen ) +int blake2b_init( blake2b_state *S, size_t outlen ) { + blake2b_param P[1]; + if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; - const blake2b_param P = - { - outlen, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - {0}, - {0}, - {0} - }; - return blake2b_init_param( S, &P ); + P->digest_length = (uint8_t)outlen; + P->key_length = 0; + P->fanout = 1; + P->depth = 1; + store32( &P->leaf_length, 0 ); + store32( &P->node_offset, 0 ); + store32( &P->xof_length, 0 ); + P->node_depth = 0; + P->inner_length = 0; + memset( P->reserved, 0, sizeof( P->reserved ) ); + memset( P->salt, 0, sizeof( P->salt ) ); + memset( P->personal, 0, sizeof( P->personal ) ); + + return blake2b_init_param( S, P ); } -__attribute__((visibility ("hidden"))) -int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ) { + blake2b_param P[1]; + if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1; - const blake2b_param P = - { - outlen, - keylen, - 1, - 1, - 0, - 0, - 0, - 0, - {0}, - {0}, - {0} - }; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; + P->fanout = 1; + P->depth = 1; + store32( &P->leaf_length, 0 ); + store32( &P->node_offset, 0 ); + store32( &P->xof_length, 0 ); + P->node_depth = 0; + P->inner_length = 0; + memset( P->reserved, 0, sizeof( P->reserved ) ); + memset( P->salt, 0, sizeof( P->salt ) ); + memset( P->personal, 0, sizeof( P->personal ) ); - if( blake2b_init_param( S, &P ) < 0 ) + if( blake2b_init_param( S, P ) < 0 ) return 0; { @@ -249,7 +148,7 @@ int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, c return 0; } -static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) { __m128i row1l, row1h; __m128i row2l, row2h; @@ -271,22 +170,22 @@ static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2 const __m128i m6 = LOADU( block + 96 ); const __m128i m7 = LOADU( block + 112 ); #else - const uint64_t m0 = ( ( uint64_t * )block )[ 0]; - const uint64_t m1 = ( ( uint64_t * )block )[ 1]; - const uint64_t m2 = ( ( uint64_t * )block )[ 2]; - const uint64_t m3 = ( ( uint64_t * )block )[ 3]; - const uint64_t m4 = ( ( uint64_t * )block )[ 4]; - const uint64_t m5 = ( ( uint64_t * )block )[ 5]; - const uint64_t m6 = ( ( uint64_t * )block )[ 6]; - const uint64_t m7 = ( ( uint64_t * )block )[ 7]; - const uint64_t m8 = ( ( uint64_t * )block )[ 8]; - const uint64_t m9 = ( ( uint64_t * )block )[ 9]; - const uint64_t m10 = ( ( uint64_t * )block )[10]; - const uint64_t m11 = ( ( uint64_t * )block )[11]; - const uint64_t m12 = ( ( uint64_t * )block )[12]; - const uint64_t m13 = ( ( uint64_t * )block )[13]; - const uint64_t m14 = ( ( uint64_t * )block )[14]; - const uint64_t m15 = ( ( uint64_t * )block )[15]; + const uint64_t m0 = load64(block + 0 * sizeof(uint64_t)); + const uint64_t m1 = load64(block + 1 * sizeof(uint64_t)); + const uint64_t m2 = load64(block + 2 * sizeof(uint64_t)); + const uint64_t m3 = load64(block + 3 * sizeof(uint64_t)); + const uint64_t m4 = load64(block + 4 * sizeof(uint64_t)); + const uint64_t m5 = load64(block + 5 * sizeof(uint64_t)); + const uint64_t m6 = load64(block + 6 * sizeof(uint64_t)); + const uint64_t m7 = load64(block + 7 * sizeof(uint64_t)); + const uint64_t m8 = load64(block + 8 * sizeof(uint64_t)); + const uint64_t m9 = load64(block + 9 * sizeof(uint64_t)); + const uint64_t m10 = load64(block + 10 * sizeof(uint64_t)); + const uint64_t m11 = load64(block + 11 * sizeof(uint64_t)); + const uint64_t m12 = load64(block + 12 * sizeof(uint64_t)); + const uint64_t m13 = load64(block + 13 * sizeof(uint64_t)); + const uint64_t m14 = load64(block + 14 * sizeof(uint64_t)); + const uint64_t m15 = load64(block + 15 * sizeof(uint64_t)); #endif row1l = LOADU( &S->h[0] ); row1h = LOADU( &S->h[2] ); @@ -316,64 +215,56 @@ static inline int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2 row2h = _mm_xor_si128( row4h, row2h ); STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) ); STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) ); - return 0; } -__attribute__((visibility ("hidden"))) -int blake2b_update( blake2b_state *S, const uint8_t *in, uint64_t inlen ) + +int blake2b_update( blake2b_state *S, const void *pin, size_t inlen ) { - while( inlen > 0 ) + const unsigned char * in = (const unsigned char *)pin; + if( inlen > 0 ) { size_t left = S->buflen; - size_t fill = 2 * BLAKE2B_BLOCKBYTES - left; - + size_t fill = BLAKE2B_BLOCKBYTES - left; if( inlen > fill ) { - memcpy( S->buf + left, in, fill ); // Fill buffer - S->buflen += fill; + S->buflen = 0; + memcpy( S->buf + left, in, fill ); /* Fill buffer */ blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); - blake2b_compress( S, S->buf ); // Compress - memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left - S->buflen -= BLAKE2B_BLOCKBYTES; - in += fill; - inlen -= fill; - } - else // inlen <= fill - { - memcpy( S->buf + left, in, inlen ); - S->buflen += inlen; // Be lazy, do not compress - in += inlen; - inlen -= inlen; + blake2b_compress( S, S->buf ); /* Compress */ + in += fill; inlen -= fill; + while(inlen > BLAKE2B_BLOCKBYTES) { + blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES); + blake2b_compress( S, in ); + in += BLAKE2B_BLOCKBYTES; + inlen -= BLAKE2B_BLOCKBYTES; + } } + memcpy( S->buf + S->buflen, in, inlen ); + S->buflen += inlen; } - return 0; } -__attribute__((visibility ("hidden"))) -int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ) + +int blake2b_final( blake2b_state *S, void *out, size_t outlen ) { - if( outlen > BLAKE2B_OUTBYTES ) + if( out == NULL || outlen < S->outlen ) return -1; - if( S->buflen > BLAKE2B_BLOCKBYTES ) - { - blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); - blake2b_compress( S, S->buf ); - S->buflen -= BLAKE2B_BLOCKBYTES; - memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen ); - } + if( blake2b_is_lastblock( S ) ) + return -1; blake2b_increment_counter( S, S->buflen ); blake2b_set_lastblock( S ); - memset( S->buf + S->buflen, 0, 2 * BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ + memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ blake2b_compress( S, S->buf ); - memcpy( out, &S->h[0], outlen ); + + memcpy( out, &S->h[0], S->outlen ); return 0; } -__attribute__((visibility ("hidden"))) -int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) + +int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { blake2b_state S[1]; @@ -401,3 +292,82 @@ int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen blake2b_final( S, out, outlen ); return 0; } + +int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { + return blake2b(out, outlen, in, inlen, key, keylen); +} + +#if defined(SUPERCOP) +int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) +{ + return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 ); +} +#endif + +#if defined(BLAKE2B_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2B_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; + + for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) + key[i] = ( uint8_t )i; + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + buf[i] = ( uint8_t )i; + + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + { + uint8_t hash[BLAKE2B_OUTBYTES]; + blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); + + if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2B_OUTBYTES]; + blake2b_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2b_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2b_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/sse/blake2bp.c b/cbits/blake2/sse/blake2bp.c index a6a4f4d..3eb95d0 100644 --- a/cbits/blake2/sse/blake2bp.c +++ b/cbits/blake2/sse/blake2bp.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -25,32 +27,48 @@ #define PARALLELISM_DEGREE 4 -static inline int blake2bp_init_leaf( blake2b_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset ) +/* + blake2b_init_param defaults to setting the expecting output length + from the digest_length parameter block field. + + In some cases, however, we do not want this, as the output length + of these instances is given by inner_length instead. +*/ +static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P ) +{ + int err = blake2b_init_param(S, P); + S->outlen = P->inner_length; + return err; +} + +static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset ) { blake2b_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; P->leaf_length = 0; P->node_offset = offset; + P->xof_length = 0; P->node_depth = 0; P->inner_length = BLAKE2B_OUTBYTES; memset( P->reserved, 0, sizeof( P->reserved ) ); memset( P->salt, 0, sizeof( P->salt ) ); memset( P->personal, 0, sizeof( P->personal ) ); - return blake2b_init_param( S, P ); + return blake2bp_init_leaf_param( S, P ); } -static inline int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t keylen ) +static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen ) { blake2b_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; P->leaf_length = 0; P->node_offset = 0; + P->xof_length = 0; P->node_depth = 1; P->inner_length = BLAKE2B_OUTBYTES; memset( P->reserved, 0, sizeof( P->reserved ) ); @@ -59,18 +77,20 @@ static inline int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t return blake2b_init_param( S, P ); } -__attribute__((visibility ("hidden"))) -int blake2bp_init( blake2bp_state *S, const uint8_t outlen ) + +int blake2bp_init( blake2bp_state *S, size_t outlen ) { + size_t i; if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2bp_init_root( S->R, outlen, 0 ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; S->R->last_node = 1; @@ -78,20 +98,22 @@ int blake2bp_init( blake2bp_state *S, const uint8_t outlen ) return 0; } -__attribute__((visibility ("hidden"))) -int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ) { + size_t i; + if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2bp_init_root( S->R, outlen, keylen ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; S->R->last_node = 1; @@ -101,7 +123,7 @@ int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, memset( block, 0, BLAKE2B_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES ); secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ @@ -109,17 +131,19 @@ int blake2bp_init_key( blake2bp_state *S, const uint8_t outlen, const void *key, return 0; } -__attribute__((visibility ("hidden"))) -int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ) + +int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen ) { + const unsigned char * in = (const unsigned char *)pin; size_t left = S->buflen; size_t fill = sizeof( S->buf ) - left; + size_t i; if( left && inlen >= fill ) { memcpy( S->buf + left, in, fill ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); in += fill; @@ -131,19 +155,19 @@ int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ) #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2B_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2B_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) { - blake2b_update( S->S[id__], in__, BLAKE2B_BLOCKBYTES ); + blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; } @@ -160,12 +184,17 @@ int blake2bp_update( blake2bp_state *S, const uint8_t *in, uint64_t inlen ) } -__attribute__((visibility ("hidden"))) -int blake2bp_final( blake2bp_state *S, uint8_t *out, const uint8_t outlen ) + +int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; + size_t i; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + if(out == NULL || outlen < S->outlen) { + return -1; + } + + for( i = 0; i < PARALLELISM_DEGREE; ++i ) { if( S->buflen > i * BLAKE2B_BLOCKBYTES ) { @@ -179,18 +208,18 @@ int blake2bp_final( blake2bp_state *S, uint8_t *out, const uint8_t outlen ) blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES ); } - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES ); - return blake2b_final( S->R, out, outlen ); + return blake2b_final( S->R, out, S->outlen ); } -__attribute__((visibility ("hidden"))) -int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uint64_t inlen, uint8_t keylen ) +int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; blake2b_state S[PARALLELISM_DEGREE][1]; blake2b_state FS[1]; + size_t i; /* Verify parameters */ if ( NULL == in && inlen > 0 ) return -1; @@ -203,10 +232,10 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin if( keylen > BLAKE2B_KEYBYTES ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; - S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node + S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ if( keylen > 0 ) { @@ -214,7 +243,7 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin memset( block, 0, BLAKE2B_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES ); secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ @@ -224,40 +253,109 @@ int blake2bp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2B_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2B_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) { - blake2b_update( S[id__], in__, BLAKE2B_BLOCKBYTES ); + blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; } - if( inlen__ > id__ * BLAKE2B_BLOCKBYTES ) + if( inlen__ > i * BLAKE2B_BLOCKBYTES ) { - const size_t left = inlen__ - id__ * BLAKE2B_BLOCKBYTES; + const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES; const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES; - blake2b_update( S[id__], in__, len ); + blake2b_update( S[i], in__, len ); } - blake2b_final( S[id__], hash[id__], BLAKE2B_OUTBYTES ); + blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES ); } if( blake2bp_init_root( FS, outlen, keylen ) < 0 ) return -1; - FS->last_node = 1; // Mark as last node + FS->last_node = 1; /* Mark as last node */ - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES ); return blake2b_final( FS, out, outlen ); } + + +#if defined(BLAKE2BP_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2B_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; + + for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) + key[i] = ( uint8_t )i; + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + buf[i] = ( uint8_t )i; + + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + { + uint8_t hash[BLAKE2B_OUTBYTES]; + blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); + + if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2B_OUTBYTES]; + blake2bp_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2bp_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2bp_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/sse/blake2s-load-sse2.h b/cbits/blake2/sse/blake2s-load-sse2.h index b24483c..d2e9a09 100644 --- a/cbits/blake2/sse/blake2s-load-sse2.h +++ b/cbits/blake2/sse/blake2s-load-sse2.h @@ -1,18 +1,19 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2S_LOAD_SSE2_H__ -#define __BLAKE2S_LOAD_SSE2_H__ +#ifndef BLAKE2S_LOAD_SSE2_H +#define BLAKE2S_LOAD_SSE2_H #define LOAD_MSG_0_1(buf) buf = _mm_set_epi32(m6,m4,m2,m0) #define LOAD_MSG_0_2(buf) buf = _mm_set_epi32(m7,m5,m3,m1) diff --git a/cbits/blake2/sse/blake2s-load-sse41.h b/cbits/blake2/sse/blake2s-load-sse41.h index 3ac12eb..c316fb5 100644 --- a/cbits/blake2/sse/blake2s-load-sse41.h +++ b/cbits/blake2/sse/blake2s-load-sse41.h @@ -1,18 +1,19 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2S_LOAD_SSE41_H__ -#define __BLAKE2S_LOAD_SSE41_H__ +#ifndef BLAKE2S_LOAD_SSE41_H +#define BLAKE2S_LOAD_SSE41_H #define LOAD_MSG_0_1(buf) \ buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(2,0,2,0))); @@ -226,4 +227,3 @@ t2 = _mm_blend_epi16(t0,t1,0x0F); \ buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,1,2,3)); #endif - diff --git a/cbits/blake2/sse/blake2s-load-xop.h b/cbits/blake2/sse/blake2s-load-xop.h index ac591a7..a97ddcc 100644 --- a/cbits/blake2/sse/blake2s-load-xop.h +++ b/cbits/blake2/sse/blake2s-load-xop.h @@ -1,31 +1,34 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2S_LOAD_XOP_H__ -#define __BLAKE2S_LOAD_XOP_H__ +#ifndef BLAKE2S_LOAD_XOP_H +#define BLAKE2S_LOAD_XOP_H -#define TOB(x) ((x)*4*0x01010101 + 0x03020100) // ..or not TOB +#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */ +#if 0 /* Basic VPPERM emulation, for testing purposes */ -/*static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel) +static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel) { const __m128i sixteen = _mm_set1_epi8(16); const __m128i t0 = _mm_shuffle_epi8(src1, sel); const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen)); const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen), - _mm_cmpgt_epi8(sel, sixteen)); // (>=16) = 0xff : 00 + _mm_cmpgt_epi8(sel, sixteen)); /* (>=16) = 0xff : 00 */ return _mm_blendv_epi8(t0, s1, mask); -}*/ +} +#endif #define LOAD_MSG_0_1(buf) \ buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); @@ -166,7 +169,7 @@ buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(7)) ); #define LOAD_MSG_8_3(buf) \ t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(6),TOB(1),TOB(0),TOB(0)) ); \ buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(5),TOB(4)) ); \ - + #define LOAD_MSG_8_4(buf) \ buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(4),TOB(7),TOB(2)) ); @@ -186,4 +189,3 @@ t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(7)) ); \ buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(6),TOB(0)) ); #endif - diff --git a/cbits/blake2/sse/blake2s-round.h b/cbits/blake2/sse/blake2s-round.h index 9c58b52..44a5574 100644 --- a/cbits/blake2/sse/blake2s-round.h +++ b/cbits/blake2/sse/blake2s-round.h @@ -1,18 +1,19 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ -#pragma once -#ifndef __BLAKE2S_ROUND_H__ -#define __BLAKE2S_ROUND_H__ +#ifndef BLAKE2S_ROUND_H +#define BLAKE2S_ROUND_H #define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) ) #define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r) @@ -83,6 +84,5 @@ LOAD_MSG_ ##r ##_4(buf4); \ G2(row1,row2,row3,row4,buf4); \ UNDIAGONALIZE(row1,row2,row3,row4); \ - -#endif +#endif diff --git a/cbits/blake2/sse/blake2s.c b/cbits/blake2/sse/blake2s.c index 67bfcc7..569c210 100644 --- a/cbits/blake2/sse/blake2s.c +++ b/cbits/blake2/sse/blake2s.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -43,187 +45,98 @@ static const uint32_t blake2s_IV[8] = 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL }; -static const uint8_t blake2s_sigma[10][16] = +/* Some helper functions */ +static void blake2s_set_lastnode( blake2s_state *S ) { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , - { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } , - { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } , - { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } , - { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } , - { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } , - { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } , - { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } , - { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } , - { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } , -}; - - -/* Some helper functions, not necessarily useful */ -static inline int blake2s_set_lastnode( blake2s_state *S ) -{ - S->f[1] = -1; - return 0; + S->f[1] = (uint32_t)-1; } -static inline int blake2s_clear_lastnode( blake2s_state *S ) +static int blake2s_is_lastblock( const blake2s_state *S ) { - S->f[1] = 0; - return 0; + return S->f[0] != 0; } -static inline int blake2s_set_lastblock( blake2s_state *S ) +static void blake2s_set_lastblock( blake2s_state *S ) { if( S->last_node ) blake2s_set_lastnode( S ); - S->f[0] = -1; - return 0; + S->f[0] = (uint32_t)-1; } -static inline int blake2s_clear_lastblock( blake2s_state *S ) -{ - if( S->last_node ) blake2s_clear_lastnode( S ); - - S->f[0] = 0; - return 0; -} - -static inline int blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) +static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) { uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0]; t += inc; S->t[0] = ( uint32_t )( t >> 0 ); S->t[1] = ( uint32_t )( t >> 32 ); - return 0; -} - - -// Parameter-related functions -static inline int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t digest_length ) -{ - P->digest_length = digest_length; - return 0; -} - -static inline int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout ) -{ - P->fanout = fanout; - return 0; -} - -static inline int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth ) -{ - P->depth = depth; - return 0; -} - -static inline int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t leaf_length ) -{ - P->leaf_length = leaf_length; - return 0; -} - -static inline int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t node_offset ) -{ - store48( P->node_offset, node_offset ); - return 0; -} - -static inline int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth ) -{ - P->node_depth = node_depth; - return 0; -} - -static inline int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t inner_length ) -{ - P->inner_length = inner_length; - return 0; -} - -static inline int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES] ) -{ - memcpy( P->salt, salt, BLAKE2S_SALTBYTES ); - return 0; -} - -static inline int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES] ) -{ - memcpy( P->personal, personal, BLAKE2S_PERSONALBYTES ); - return 0; -} - -static inline int blake2s_init0( blake2s_state *S ) -{ - memset( S, 0, sizeof( blake2s_state ) ); - - for( int i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i]; - - return 0; } /* init2 xors IV with input parameter block */ -__attribute__((visibility ("hidden"))) int blake2s_init_param( blake2s_state *S, const blake2s_param *P ) { - //blake2s_init0( S ); + size_t i; + /*blake2s_init0( S ); */ const uint8_t * v = ( const uint8_t * )( blake2s_IV ); const uint8_t * p = ( const uint8_t * )( P ); uint8_t * h = ( uint8_t * )( S->h ); /* IV XOR ParamBlock */ memset( S, 0, sizeof( blake2s_state ) ); - for( int i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; + for( i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; + S->outlen = P->digest_length; return 0; } /* Some sort of default parameter block initialization, for sequential blake2s */ -__attribute__((visibility ("hidden"))) -int blake2s_init( blake2s_state *S, const uint8_t outlen ) +int blake2s_init( blake2s_state *S, size_t outlen ) { + blake2s_param P[1]; + /* Move interval verification here? */ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; - const blake2s_param P = - { - outlen, - 0, - 1, - 1, - 0, - {0}, - 0, - 0, - {0}, - {0} - }; - return blake2s_init_param( S, &P ); + P->digest_length = (uint8_t)outlen; + P->key_length = 0; + P->fanout = 1; + P->depth = 1; + store32( &P->leaf_length, 0 ); + store32( &P->node_offset, 0 ); + store16( &P->xof_length, 0 ); + P->node_depth = 0; + P->inner_length = 0; + /* memset(P->reserved, 0, sizeof(P->reserved) ); */ + memset( P->salt, 0, sizeof( P->salt ) ); + memset( P->personal, 0, sizeof( P->personal ) ); + + return blake2s_init_param( S, P ); } -__attribute__((visibility ("hidden"))) -int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) + +int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ) { + blake2s_param P[1]; + /* Move interval verification here? */ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1; - const blake2s_param P = - { - outlen, - keylen, - 1, - 1, - 0, - {0}, - 0, - 0, - {0}, - {0} - }; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; + P->fanout = 1; + P->depth = 1; + store32( &P->leaf_length, 0 ); + store32( &P->node_offset, 0 ); + store16( &P->xof_length, 0 ); + P->node_depth = 0; + P->inner_length = 0; + /* memset(P->reserved, 0, sizeof(P->reserved) ); */ + memset( P->salt, 0, sizeof( P->salt ) ); + memset( P->personal, 0, sizeof( P->personal ) ); - if( blake2s_init_param( S, &P ) < 0 ) + if( blake2s_init_param( S, P ) < 0 ) return -1; { @@ -237,7 +150,7 @@ int blake2s_init_key( blake2s_state *S, const uint8_t outlen, const void *key, c } -static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] ) +static void blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] ) { __m128i row1, row2, row3, row4; __m128i buf1, buf2, buf3, buf4; @@ -258,27 +171,27 @@ static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2 const __m128i m2 = LOADU( block + 32 ); const __m128i m3 = LOADU( block + 48 ); #else - const uint32_t m0 = ( ( uint32_t * )block )[ 0]; - const uint32_t m1 = ( ( uint32_t * )block )[ 1]; - const uint32_t m2 = ( ( uint32_t * )block )[ 2]; - const uint32_t m3 = ( ( uint32_t * )block )[ 3]; - const uint32_t m4 = ( ( uint32_t * )block )[ 4]; - const uint32_t m5 = ( ( uint32_t * )block )[ 5]; - const uint32_t m6 = ( ( uint32_t * )block )[ 6]; - const uint32_t m7 = ( ( uint32_t * )block )[ 7]; - const uint32_t m8 = ( ( uint32_t * )block )[ 8]; - const uint32_t m9 = ( ( uint32_t * )block )[ 9]; - const uint32_t m10 = ( ( uint32_t * )block )[10]; - const uint32_t m11 = ( ( uint32_t * )block )[11]; - const uint32_t m12 = ( ( uint32_t * )block )[12]; - const uint32_t m13 = ( ( uint32_t * )block )[13]; - const uint32_t m14 = ( ( uint32_t * )block )[14]; - const uint32_t m15 = ( ( uint32_t * )block )[15]; + const uint32_t m0 = load32(block + 0 * sizeof(uint32_t)); + const uint32_t m1 = load32(block + 1 * sizeof(uint32_t)); + const uint32_t m2 = load32(block + 2 * sizeof(uint32_t)); + const uint32_t m3 = load32(block + 3 * sizeof(uint32_t)); + const uint32_t m4 = load32(block + 4 * sizeof(uint32_t)); + const uint32_t m5 = load32(block + 5 * sizeof(uint32_t)); + const uint32_t m6 = load32(block + 6 * sizeof(uint32_t)); + const uint32_t m7 = load32(block + 7 * sizeof(uint32_t)); + const uint32_t m8 = load32(block + 8 * sizeof(uint32_t)); + const uint32_t m9 = load32(block + 9 * sizeof(uint32_t)); + const uint32_t m10 = load32(block + 10 * sizeof(uint32_t)); + const uint32_t m11 = load32(block + 11 * sizeof(uint32_t)); + const uint32_t m12 = load32(block + 12 * sizeof(uint32_t)); + const uint32_t m13 = load32(block + 13 * sizeof(uint32_t)); + const uint32_t m14 = load32(block + 14 * sizeof(uint32_t)); + const uint32_t m15 = load32(block + 15 * sizeof(uint32_t)); #endif row1 = ff0 = LOADU( &S->h[0] ); row2 = ff1 = LOADU( &S->h[4] ); - row3 = _mm_setr_epi32( 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A ); - row4 = _mm_xor_si128( _mm_setr_epi32( 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19 ), LOADU( &S->t[0] ) ); + row3 = _mm_loadu_si128( (__m128i const *)&blake2s_IV[0] ); + row4 = _mm_xor_si128( _mm_loadu_si128( (__m128i const *)&blake2s_IV[4] ), LOADU( &S->t[0] ) ); ROUND( 0 ); ROUND( 1 ); ROUND( 2 ); @@ -291,73 +204,61 @@ static inline int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2 ROUND( 9 ); STOREU( &S->h[0], _mm_xor_si128( ff0, _mm_xor_si128( row1, row3 ) ) ); STOREU( &S->h[4], _mm_xor_si128( ff1, _mm_xor_si128( row2, row4 ) ) ); - return 0; } -/* inlen now in bytes */ -__attribute__((visibility ("hidden"))) -int blake2s_update( blake2s_state *S, const uint8_t *in, uint64_t inlen ) +int blake2s_update( blake2s_state *S, const void *pin, size_t inlen ) { - while( inlen > 0 ) + const unsigned char * in = (const unsigned char *)pin; + if( inlen > 0 ) { size_t left = S->buflen; - size_t fill = 2 * BLAKE2S_BLOCKBYTES - left; - + size_t fill = BLAKE2S_BLOCKBYTES - left; if( inlen > fill ) { - memcpy( S->buf + left, in, fill ); // Fill buffer - S->buflen += fill; + S->buflen = 0; + memcpy( S->buf + left, in, fill ); /* Fill buffer */ blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); - blake2s_compress( S, S->buf ); // Compress - memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left - S->buflen -= BLAKE2S_BLOCKBYTES; - in += fill; - inlen -= fill; - } - else // inlen <= fill - { - memcpy( S->buf + left, in, inlen ); - S->buflen += inlen; // Be lazy, do not compress - in += inlen; - inlen -= inlen; + blake2s_compress( S, S->buf ); /* Compress */ + in += fill; inlen -= fill; + while(inlen > BLAKE2S_BLOCKBYTES) { + blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES); + blake2s_compress( S, in ); + in += BLAKE2S_BLOCKBYTES; + inlen -= BLAKE2S_BLOCKBYTES; + } } + memcpy( S->buf + S->buflen, in, inlen ); + S->buflen += inlen; } - return 0; } -/* Is this correct? */ -__attribute__((visibility ("hidden"))) -int blake2s_final( blake2s_state *S, uint8_t *out, uint8_t outlen ) +int blake2s_final( blake2s_state *S, void *out, size_t outlen ) { uint8_t buffer[BLAKE2S_OUTBYTES] = {0}; + size_t i; - if( outlen > BLAKE2S_OUTBYTES ) + if( out == NULL || outlen < S->outlen ) return -1; - if( S->buflen > BLAKE2S_BLOCKBYTES ) - { - blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); - blake2s_compress( S, S->buf ); - S->buflen -= BLAKE2S_BLOCKBYTES; - memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, S->buflen ); - } + if( blake2s_is_lastblock( S ) ) + return -1; - blake2s_increment_counter( S, ( uint32_t )S->buflen ); + blake2s_increment_counter( S, (uint32_t)S->buflen ); blake2s_set_lastblock( S ); - memset( S->buf + S->buflen, 0, 2 * BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ + memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ blake2s_compress( S, S->buf ); - for( int i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ + for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ store32( buffer + sizeof( S->h[i] ) * i, S->h[i] ); - memcpy( out, buffer, outlen ); + memcpy( out, buffer, S->outlen ); + secure_zero_memory( buffer, sizeof(buffer) ); return 0; } /* inlen, at least, should be uint64_t. Others can be size_t. */ -__attribute__((visibility ("hidden"))) -int blake2s( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) +int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { blake2s_state S[1]; @@ -385,3 +286,78 @@ int blake2s( uint8_t *out, const void *in, const void *key, const uint8_t outlen blake2s_final( S, out, outlen ); return 0; } + +#if defined(SUPERCOP) +int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) +{ + return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 ); +} +#endif + +#if defined(BLAKE2S_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2S_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; + + for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) + key[i] = ( uint8_t )i; + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + buf[i] = ( uint8_t )i; + + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + { + uint8_t hash[BLAKE2S_OUTBYTES]; + blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); + + if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2S_OUTBYTES]; + blake2s_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2s_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2s_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/sse/blake2sp.c b/cbits/blake2/sse/blake2sp.c index 3daf712..ed0e1ad 100644 --- a/cbits/blake2/sse/blake2sp.c +++ b/cbits/blake2/sse/blake2sp.c @@ -1,14 +1,16 @@ /* BLAKE2 reference source code package - optimized C implementations - Written in 2012 by Samuel Neves + Copyright 2012, Samuel Neves . You may use this under the + terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at + your option. The terms of these licenses can be found at: - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 - You should have received a copy of the CC0 Public Domain Dedication along with - this software. If not, see . + More information about the BLAKE2 hash function can be found at + https://blake2.net. */ #include @@ -24,31 +26,47 @@ #define PARALLELISM_DEGREE 8 -static inline int blake2sp_init_leaf( blake2s_state *S, uint8_t outlen, uint8_t keylen, uint64_t offset ) +/* + blake2sp_init_param defaults to setting the expecting output length + from the digest_length parameter block field. + + In some cases, however, we do not want this, as the output length + of these instances is given by inner_length instead. +*/ +static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P ) +{ + int err = blake2s_init_param(S, P); + S->outlen = P->inner_length; + return err; +} + +static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset ) { blake2s_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; P->leaf_length = 0; - store48( P->node_offset, offset ); + P->node_offset = offset; + P->xof_length = 0; P->node_depth = 0; P->inner_length = BLAKE2S_OUTBYTES; memset( P->salt, 0, sizeof( P->salt ) ); memset( P->personal, 0, sizeof( P->personal ) ); - return blake2s_init_param( S, P ); + return blake2sp_init_leaf_param( S, P ); } -static inline int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t keylen ) +static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen ) { blake2s_param P[1]; - P->digest_length = outlen; - P->key_length = keylen; + P->digest_length = (uint8_t)outlen; + P->key_length = (uint8_t)keylen; P->fanout = PARALLELISM_DEGREE; P->depth = 2; P->leaf_length = 0; - store48( P->node_offset, 0ULL ); + P->node_offset = 0; + P->xof_length = 0; P->node_depth = 1; P->inner_length = BLAKE2S_OUTBYTES; memset( P->salt, 0, sizeof( P->salt ) ); @@ -56,18 +74,21 @@ static inline int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t return blake2s_init_param( S, P ); } -__attribute__((visibility ("hidden"))) -int blake2sp_init( blake2sp_state *S, const uint8_t outlen ) + +int blake2sp_init( blake2sp_state *S, size_t outlen ) { + size_t i; + if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2sp_init_root( S->R, outlen, 0 ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; S->R->last_node = 1; @@ -75,20 +96,22 @@ int blake2sp_init( blake2sp_state *S, const uint8_t outlen ) return 0; } -__attribute__((visibility ("hidden"))) -int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ) { + size_t i; + if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; memset( S->buf, 0, sizeof( S->buf ) ); S->buflen = 0; + S->outlen = outlen; if( blake2sp_init_root( S->R, outlen, keylen ) < 0 ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; S->R->last_node = 1; @@ -98,7 +121,7 @@ int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, memset( block, 0, BLAKE2S_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES ); secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ @@ -106,17 +129,19 @@ int blake2sp_init_key( blake2sp_state *S, const uint8_t outlen, const void *key, return 0; } -__attribute__((visibility ("hidden"))) -int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ) + +int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen ) { + const unsigned char * in = (const unsigned char *)pin; size_t left = S->buflen; size_t fill = sizeof( S->buf ) - left; + size_t i; if( left && inlen >= fill ) { memcpy( S->buf + left, in, fill ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); in += fill; @@ -128,19 +153,19 @@ int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ) #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2S_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2S_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) { - blake2s_update( S->S[id__], in__, BLAKE2S_BLOCKBYTES ); + blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; } @@ -156,12 +181,17 @@ int blake2sp_update( blake2sp_state *S, const uint8_t *in, uint64_t inlen ) return 0; } -__attribute__((visibility ("hidden"))) -int blake2sp_final( blake2sp_state *S, uint8_t *out, const uint8_t outlen ) + +int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; + size_t i; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + if(out == NULL || outlen < S->outlen) { + return -1; + } + + for( i = 0; i < PARALLELISM_DEGREE; ++i ) { if( S->buflen > i * BLAKE2S_BLOCKBYTES ) { @@ -175,18 +205,19 @@ int blake2sp_final( blake2sp_state *S, uint8_t *out, const uint8_t outlen ) blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES ); } - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES ); - return blake2s_final( S->R, out, outlen ); + return blake2s_final( S->R, out, S->outlen ); } -__attribute__((visibility ("hidden"))) -int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uint64_t inlen, uint8_t keylen ) + +int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; blake2s_state S[PARALLELISM_DEGREE][1]; blake2s_state FS[1]; + size_t i; /* Verify parameters */ if ( NULL == in && inlen > 0 ) return -1; @@ -199,10 +230,10 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin if( keylen > BLAKE2S_KEYBYTES ) return -1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; - S[PARALLELISM_DEGREE - 1]->last_node = 1; // mark last node + S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ if( keylen > 0 ) { @@ -210,7 +241,7 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin memset( block, 0, BLAKE2S_BLOCKBYTES ); memcpy( block, key, keylen ); - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES ); secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ @@ -220,31 +251,31 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) #else - for( size_t id__ = 0; id__ < PARALLELISM_DEGREE; ++id__ ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) #endif { #if defined(_OPENMP) - size_t id__ = omp_get_thread_num(); + size_t i = omp_get_thread_num(); #endif - uint64_t inlen__ = inlen; - const uint8_t *in__ = ( const uint8_t * )in; - in__ += id__ * BLAKE2S_BLOCKBYTES; + size_t inlen__ = inlen; + const unsigned char *in__ = ( const unsigned char * )in; + in__ += i * BLAKE2S_BLOCKBYTES; while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) { - blake2s_update( S[id__], in__, BLAKE2S_BLOCKBYTES ); + blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES ); in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; } - if( inlen__ > id__ * BLAKE2S_BLOCKBYTES ) + if( inlen__ > i * BLAKE2S_BLOCKBYTES ) { - const size_t left = inlen__ - id__ * BLAKE2S_BLOCKBYTES; + const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES; const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES; - blake2s_update( S[id__], in__, len ); + blake2s_update( S[i], in__, len ); } - blake2s_final( S[id__], hash[id__], BLAKE2S_OUTBYTES ); + blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES ); } if( blake2sp_init_root( FS, outlen, keylen ) < 0 ) @@ -252,8 +283,76 @@ int blake2sp( uint8_t *out, const void *in, const void *key, uint8_t outlen, uin FS->last_node = 1; - for( size_t i = 0; i < PARALLELISM_DEGREE; ++i ) + for( i = 0; i < PARALLELISM_DEGREE; ++i ) blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES ); return blake2s_final( FS, out, outlen ); } + +#if defined(BLAKE2SP_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2S_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step; + + for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) + key[i] = ( uint8_t )i; + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + buf[i] = ( uint8_t )i; + + /* Test simple API */ + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) + { + uint8_t hash[BLAKE2S_OUTBYTES]; + blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); + + if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { + for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { + uint8_t hash[BLAKE2S_OUTBYTES]; + blake2sp_state S; + uint8_t * p = buf; + size_t mlen = i; + int err = 0; + + if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2sp_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2sp_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/sse/blake2xb.c b/cbits/blake2/sse/blake2xb.c new file mode 100644 index 0000000..2da56ae --- /dev/null +++ b/cbits/blake2/sse/blake2xb.c @@ -0,0 +1,241 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Copyright 2016, JP Aumasson . + Copyright 2016, Samuel Neves . + + You may use this under the terms of the CC0, the OpenSSL Licence, or + the Apache Public License 2.0, at your option. The terms of these + licenses can be found at: + + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + + More information about the BLAKE2 hash function can be found at + https://blake2.net. +*/ + +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" + +int blake2xb_init( blake2xb_state *S, const size_t outlen ) { + return blake2xb_init_key(S, outlen, NULL, 0); +} + +int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen) +{ + if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) { + return -1; + } + + if (NULL != key && keylen > BLAKE2B_KEYBYTES) { + return -1; + } + + if (NULL == key && keylen > 0) { + return -1; + } + + /* Initialize parameter block */ + S->P->digest_length = BLAKE2B_OUTBYTES; + S->P->key_length = keylen; + S->P->fanout = 1; + S->P->depth = 1; + store32( &S->P->leaf_length, 0 ); + store32( &S->P->node_offset, 0 ); + store32( &S->P->xof_length, outlen ); + S->P->node_depth = 0; + S->P->inner_length = 0; + memset( S->P->reserved, 0, sizeof( S->P->reserved ) ); + memset( S->P->salt, 0, sizeof( S->P->salt ) ); + memset( S->P->personal, 0, sizeof( S->P->personal ) ); + + if( blake2b_init_param( S->S, S->P ) < 0 ) { + return -1; + } + + if (keylen > 0) { + uint8_t block[BLAKE2B_BLOCKBYTES]; + memset(block, 0, BLAKE2B_BLOCKBYTES); + memcpy(block, key, keylen); + blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES); + secure_zero_memory(block, BLAKE2B_BLOCKBYTES); + } + return 0; +} + +int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) { + return blake2b_update( S->S, in, inlen ); +} + +int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) { + + blake2b_state C[1]; + blake2b_param P[1]; + uint32_t xof_length = load32(&S->P->xof_length); + uint8_t root[BLAKE2B_BLOCKBYTES]; + size_t i; + + if (NULL == out) { + return -1; + } + + /* outlen must match the output size defined in xof_length, */ + /* unless it was -1, in which case anything goes except 0. */ + if(xof_length == 0xFFFFFFFFUL) { + if(outlen == 0) { + return -1; + } + } else { + if(outlen != xof_length) { + return -1; + } + } + + /* Finalize the root hash */ + if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) { + return -1; + } + + /* Set common block structure values */ + /* Copy values from parent instance, and only change the ones below */ + memcpy(P, S->P, sizeof(blake2b_param)); + P->key_length = 0; + P->fanout = 0; + P->depth = 0; + store32(&P->leaf_length, BLAKE2B_OUTBYTES); + P->inner_length = BLAKE2B_OUTBYTES; + P->node_depth = 0; + + for (i = 0; outlen > 0; ++i) { + const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES; + /* Initialize state */ + P->digest_length = block_size; + store32(&P->node_offset, i); + blake2b_init_param(C, P); + /* Process key if needed */ + blake2b_update(C, root, BLAKE2B_OUTBYTES); + if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) { + return -1; + } + outlen -= block_size; + } + secure_zero_memory(root, sizeof(root)); + secure_zero_memory(P, sizeof(P)); + secure_zero_memory(C, sizeof(C)); + /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */ + return 0; + +} + +int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) +{ + blake2xb_state S[1]; + + /* Verify parameters */ + if (NULL == in && inlen > 0) + return -1; + + if (NULL == out) + return -1; + + if (NULL == key && keylen > 0) + return -1; + + if (keylen > BLAKE2B_KEYBYTES) + return -1; + + if (outlen == 0) + return -1; + + /* Initialize the root block structure */ + if (blake2xb_init_key(S, outlen, key, keylen) < 0) { + return -1; + } + + /* Absorb the input message */ + blake2xb_update(S, in, inlen); + + /* Compute the root node of the tree and the final hash using the counter construction */ + return blake2xb_final(S, out, outlen); +} + +#if defined(BLAKE2XB_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2B_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step, outlen; + + for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) { + key[i] = ( uint8_t )i; + } + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { + buf[i] = ( uint8_t )i; + } + + /* Testing length of ouputs rather than inputs */ + /* (Test of input lengths mostly covered by blake2s tests) */ + + /* Test simple API */ + for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) + { + uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; + if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) { + goto fail; + } + + if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { + for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { + uint8_t hash[BLAKE2_KAT_LENGTH]; + blake2xb_state S; + uint8_t * p = buf; + size_t mlen = BLAKE2_KAT_LENGTH; + int err = 0; + + if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2xb_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2xb_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2xb_final(&S, hash, outlen)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/blake2/sse/blake2xs.c b/cbits/blake2/sse/blake2xs.c new file mode 100644 index 0000000..625693e --- /dev/null +++ b/cbits/blake2/sse/blake2xs.c @@ -0,0 +1,239 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Copyright 2016, JP Aumasson . + Copyright 2016, Samuel Neves . + + You may use this under the terms of the CC0, the OpenSSL Licence, or + the Apache Public License 2.0, at your option. The terms of these + licenses can be found at: + + - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 + - OpenSSL license : https://www.openssl.org/source/license.html + - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 + + More information about the BLAKE2 hash function can be found at + https://blake2.net. +*/ + +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" + +int blake2xs_init( blake2xs_state *S, const size_t outlen ) { + return blake2xs_init_key(S, outlen, NULL, 0); +} + +int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ) +{ + if ( outlen == 0 || outlen > 0xFFFFUL ) { + return -1; + } + + if (NULL != key && keylen > BLAKE2B_KEYBYTES) { + return -1; + } + + if (NULL == key && keylen > 0) { + return -1; + } + + /* Initialize parameter block */ + S->P->digest_length = BLAKE2S_OUTBYTES; + S->P->key_length = keylen; + S->P->fanout = 1; + S->P->depth = 1; + store32( &S->P->leaf_length, 0 ); + store32( &S->P->node_offset, 0 ); + store16( &S->P->xof_length, outlen ); + S->P->node_depth = 0; + S->P->inner_length = 0; + memset( S->P->salt, 0, sizeof( S->P->salt ) ); + memset( S->P->personal, 0, sizeof( S->P->personal ) ); + + if( blake2s_init_param( S->S, S->P ) < 0 ) { + return -1; + } + + if (keylen > 0) { + uint8_t block[BLAKE2S_BLOCKBYTES]; + memset(block, 0, BLAKE2S_BLOCKBYTES); + memcpy(block, key, keylen); + blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES); + secure_zero_memory(block, BLAKE2S_BLOCKBYTES); + } + return 0; +} + +int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) { + return blake2s_update( S->S, in, inlen ); +} + +int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) { + + blake2s_state C[1]; + blake2s_param P[1]; + uint16_t xof_length = load16(&S->P->xof_length); + uint8_t root[BLAKE2S_BLOCKBYTES]; + size_t i; + + if (NULL == out) { + return -1; + } + + /* outlen must match the output size defined in xof_length, */ + /* unless it was -1, in which case anything goes except 0. */ + if(xof_length == 0xFFFFUL) { + if(outlen == 0) { + return -1; + } + } else { + if(outlen != xof_length) { + return -1; + } + } + + /* Finalize the root hash */ + if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) { + return -1; + } + + /* Set common block structure values */ + /* Copy values from parent instance, and only change the ones below */ + memcpy(P, S->P, sizeof(blake2s_param)); + P->key_length = 0; + P->fanout = 0; + P->depth = 0; + store32(&P->leaf_length, BLAKE2S_OUTBYTES); + P->inner_length = BLAKE2S_OUTBYTES; + P->node_depth = 0; + + for (i = 0; outlen > 0; ++i) { + const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES; + /* Initialize state */ + P->digest_length = block_size; + store32(&P->node_offset, i); + blake2s_init_param(C, P); + /* Process key if needed */ + blake2s_update(C, root, BLAKE2S_OUTBYTES); + if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) { + return -1; + } + outlen -= block_size; + } + secure_zero_memory(root, sizeof(root)); + secure_zero_memory(P, sizeof(P)); + secure_zero_memory(C, sizeof(C)); + /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */ + return 0; +} + +int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) +{ + blake2xs_state S[1]; + + /* Verify parameters */ + if (NULL == in && inlen > 0) + return -1; + + if (NULL == out) + return -1; + + if (NULL == key && keylen > 0) + return -1; + + if (keylen > BLAKE2S_KEYBYTES) + return -1; + + if (outlen == 0) + return -1; + + /* Initialize the root block structure */ + if (blake2xs_init_key(S, outlen, key, keylen) < 0) { + return -1; + } + + /* Absorb the input message */ + blake2xs_update(S, in, inlen); + + /* Compute the root node of the tree and the final hash using the counter construction */ + return blake2xs_final(S, out, outlen); +} + +#if defined(BLAKE2XS_SELFTEST) +#include +#include "blake2-kat.h" +int main( void ) +{ + uint8_t key[BLAKE2S_KEYBYTES]; + uint8_t buf[BLAKE2_KAT_LENGTH]; + size_t i, step, outlen; + + for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) { + key[i] = ( uint8_t )i; + } + + for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { + buf[i] = ( uint8_t )i; + } + + /* Testing length of ouputs rather than inputs */ + /* (Test of input lengths mostly covered by blake2s tests) */ + + /* Test simple API */ + for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) + { + uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; + if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) { + goto fail; + } + + if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) ) + { + goto fail; + } + } + + /* Test streaming API */ + for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { + for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { + uint8_t hash[BLAKE2_KAT_LENGTH]; + blake2xs_state S; + uint8_t * p = buf; + size_t mlen = BLAKE2_KAT_LENGTH; + int err = 0; + + if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) { + goto fail; + } + + while (mlen >= step) { + if ( (err = blake2xs_update(&S, p, step)) < 0 ) { + goto fail; + } + mlen -= step; + p += step; + } + if ( (err = blake2xs_update(&S, p, mlen)) < 0) { + goto fail; + } + if ( (err = blake2xs_final(&S, hash, outlen)) < 0) { + goto fail; + } + + if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) { + goto fail; + } + } + } + + puts( "ok" ); + return 0; +fail: + puts("error"); + return -1; +} +#endif diff --git a/cbits/cryptonite_sha3.c b/cbits/cryptonite_sha3.c old mode 100755 new mode 100644 diff --git a/cbits/cryptonite_sha3.h b/cbits/cryptonite_sha3.h old mode 100755 new mode 100644 diff --git a/cbits/ed448/x448.c b/cbits/ed448/x448.c index c401fe1..39c1efb 100644 --- a/cbits/ed448/x448.c +++ b/cbits/ed448/x448.c @@ -36,7 +36,7 @@ typedef int64_t decaf_sdword_t; typedef struct { decaf_word_t limb[X448_LIMBS]; } gf_s, gf[1]; -const unsigned char X448_BASE_POINT[X448_BYTES] = {5}; +static const unsigned char X448_BASE_POINT[X448_BYTES] = {5}; static const gf ZERO = {{{0}}}, ONE = {{{1}}}; diff --git a/cbits/ed448/x448.h b/cbits/ed448/x448.h index 403e152..39dd6b2 100644 --- a/cbits/ed448/x448.h +++ b/cbits/ed448/x448.h @@ -2,7 +2,7 @@ #define X448_BYTES (448/8) /* The base point (5) */ -extern const unsigned char X448_BASE_POINT[X448_BYTES]; +//extern const unsigned char X448_BASE_POINT[X448_BYTES]; /* Returns 0 on success, -1 on failure */ int __attribute__((visibility("default"))) diff --git a/cryptonite.cabal b/cryptonite.cabal index 5731059..ccc769e 100644 --- a/cryptonite.cabal +++ b/cryptonite.cabal @@ -44,6 +44,8 @@ extra-source-files: cbits/*.h cbits/p256/*.h cbits/blake2/ref/*.h cbits/blake2/sse/*.h + cbits/argon2/*.h + cbits/argon2/*.c cbits/aes/x86ni_impl.c tests/*.hs @@ -66,6 +68,11 @@ Flag support_pclmuldq Default: False Manual: True +Flag support_sse + Description: Use SSE optimized version when existing (BLAKE2, ARGON2) + Default: False + Manual: True + Flag support_blake2_sse Description: Use SSE optimized version of BLAKE2. Default: False @@ -118,6 +125,7 @@ Library Crypto.Number.Prime Crypto.Number.Serialize Crypto.Number.Serialize.Internal + Crypto.KDF.Argon2 Crypto.KDF.PBKDF2 Crypto.KDF.Scrypt Crypto.KDF.BCrypt @@ -293,6 +301,12 @@ Library , cbits/blake2/ref/blake2bp-ref.c include-dirs: cbits/blake2/ref + if arch(x86_64) || flag(support_sse) + CPP-options: -DSUPPORT_SSE + + C-sources: cbits/argon2/argon2.c + include-dirs: cbits/argon2 + if os(windows) cpp-options: -DWINDOWS Build-Depends: Win32 @@ -326,6 +340,7 @@ Test-Suite test-cryptonite KAT_AES.KATXTS KAT_AES KAT_AFIS + KAT_Argon2 KAT_Blowfish KAT_Camellia KAT_Curve25519 diff --git a/cryptonite.externals b/cryptonite.externals new file mode 100644 index 0000000..55c81d2 --- /dev/null +++ b/cryptonite.externals @@ -0,0 +1 @@ +cbits/blake2,7728c30896d3fa0c3b4df52c2bd5a1e36f8f1287,https://github.com/blake2/blake2 diff --git a/tests/KAT_Argon2.hs b/tests/KAT_Argon2.hs new file mode 100644 index 0000000..aa73555 --- /dev/null +++ b/tests/KAT_Argon2.hs @@ -0,0 +1,42 @@ +{-# LANGUAGE OverloadedStrings #-} +module KAT_Argon2 (tests) where + +import Crypto.Error +import qualified Crypto.KDF.Argon2 as Argon2 +import qualified Data.ByteString as B +import Imports + +data KDFVector = KDFVector + { kdfPass :: ByteString + , kdfSalt :: ByteString + , kdfOptions :: Argon2.Options + , kdfResult :: ByteString + } + +argon2i_13 :: Argon2.TimeCost -> Argon2.MemoryCost -> Argon2.Options +argon2i_13 iters memory = Argon2.Options + { Argon2.iterations = iters + , Argon2.memory = memory + , Argon2.parallelism = 1 + , Argon2.variant = Argon2.Argon2i + , Argon2.version = Argon2.Version13 + } + +vectors = + [ KDFVector "password" "somesalt" (argon2i_13 2 65536) + "\xc1\x62\x88\x32\x14\x7d\x97\x20\xc5\xbd\x1c\xfd\x61\x36\x70\x78\x72\x9f\x6d\xfb\x6f\x8f\xea\x9f\xf9\x81\x58\xe0\xd7\x81\x6e\xd0" + ] + +kdfTests :: [TestTree] +kdfTests = map toKDFTest $ zip is vectors + where + toKDFTest (i, v) = + testCase (show i) + (CryptoPassed (kdfResult v) @=? Argon2.hash (kdfOptions v) (kdfPass v) (kdfSalt v) (B.length $ kdfResult v)) + + is :: [Int] + is = [1..] + +tests = testGroup "Argon2" + [ testGroup "KATs" kdfTests + ] diff --git a/tests/Tests.hs b/tests/Tests.hs index 37aad17..68d79f4 100644 --- a/tests/Tests.hs +++ b/tests/Tests.hs @@ -16,6 +16,7 @@ import qualified KAT_MiyaguchiPreneel import qualified KAT_CMAC import qualified KAT_HMAC import qualified KAT_HKDF +import qualified KAT_Argon2 import qualified KAT_PBKDF2 import qualified KAT_Curve25519 import qualified KAT_Curve448 @@ -57,6 +58,7 @@ tests = testGroup "cryptonite" , KAT_Scrypt.tests , BCrypt.tests , KAT_HKDF.tests + , KAT_Argon2.tests ] , testGroup "block-cipher" [ KAT_AES.tests