* [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing
@ 2025-10-17 14:42 David Howells
2025-10-17 14:42 ` [PATCH v6 01/17] s390/sha3: Rename conflicting functions David Howells
` (16 more replies)
0 siblings, 17 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Hi Eric, Herbert, et al.,
Here's a set of patches does the following:
Firstly, SHA-3 is implemented in lib/crypto and SHAKE* support is added:
(1) Renames s390 and arm64 sha3_* functions to avoid name collisions.
(2) Copies the core of SHA3 support from crypto/ to lib/crypto/.
(3) Simplifies the internal code to maintain the buffer in little endian
form, thereby simplifying the update and extraction code which don't
then need to worry about this. Instead, the state buffer is
byteswapped before and after.
(4) Moves the Iota transform into the function with the rest of the
transforms.
(5) Adds SHAKE128 and SHAKE256 support (needed for ML-DSA).
(6) Adds a kunit test for SHA3 in lib/crypto/tests/.
(7) Adds API documentation for SHA3.
Note that only the generic code is moved across; the asm-optimised stuff is
not touched as I'm not familiar with that.
Secondly, SHA-3 crypto/ support is added, though this turns out not to be
necessary for ML-DSA:
(8) Make the jitterentropy random number generator use lib/crypto sha-3.
I can't get it to work with crypto/sha3_generic when that is modified
to use lib/crypto. It looks like there's some race that prevents the
kernel from booting, but I can't tell what and it's really hard to
debug. However, it works fine with lib/crypto/sha3 directly.
(9) Make crypto/sha3_generic use lib/crypto/sha3.
(10) Add SHAKE-128 and SHAKE-256 crypto_sig support, generating 16-byte and
32-byte fixed output respectively. The XOF features aren't available
through this.
Thirdly, add ML-DSA support and allow module signing to use it. This needs
some more code cleanup, but it does work. OpenSSL doesn't support
CMS_NOATTR with ML-DSA, unfortunately, so that has to be turned off for
ML-DSA.
(11) Add ML-DSA signing and signature verification code, extracted from
Stephan Mueller's Leancrypto project. This needs more code cleanup,
but I think it's worth posting it now. I also suspect I should remove
the in-kernel signature generation side of things and only keep the
verification side. It is accessed through crypto_sig.
(12) Add ML-DSA keypair generation code. I don't think we want this.
(13) Add a kunit test in three installments (due to size) to add some
testing for the three different levels of ML-DSA (44, 65 and 87).
(14) Modify PKCS#7 support to allow kernel module signatures to carry
authenticatedAttributes as OpenSSL refuses to let them be opted out of
for ML-DSA (CMS_NOATTR). This adds an extra digest calculation to the
process.
(15) Modify PKCS#7 to pass the authenticatedAttributes directly to the
ML-DSA algorithm rather than passing over a digest as is done with RSA
as ML-DSA wants to do its own hashing and will add other stuff into
the hash. We could use hashML-DSA or an external mu instead, but they
aren't standardised for CMS yet.
(16) Add support to the PKCS#7 and X.509 parsers for ML-DSA.
(17) Modify sign-file to handle OpenSSL not permitting CMS_NOATTR with
ML-DSA.
(18) Allow SHA-3 algorithms, including SHAKE256, to be used for the message
digest and add ML-DSA to the choice of algorithm with which to sign.
With that, ML-DSA signing appears to work.
This is based on Eric's libcrypto-next branch.
The patches can also be found here:
https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=keys-pqc
David
Changes
=======
ver #6)
- Added a patch to make the jitterentropy RNG use lib/sha3.
- Added back the crypto/sha3_generic changes.
- Added ML-DSA implementation (still needs more cleanup).
- Added kunit test for ML-DSA.
- Modified PKCS#7 to accommodate ML-DSA.
- Modified PKCS#7 and X.509 to allow ML-DSA to be specified and used.
- Modified sign-file to not use CMS_NOATTR with ML-DSA.
- Allowed SHA3 and SHAKE* algorithms for module signing default.
- Allowed ML-DSA-{44,65,87} to be selected as the module signing default.
ver #5)
- Fix gen-hash-testvecs.py to correctly handle algo names that contain a
dash.
- Fix gen-hash-testvecs.py to not generate HMAC for SHA3-* or SHAKE* as
these don't currently have HMAC variants implemented.
- Fix algo names to be correct.
- Fix kunit module description as it now tests all SHA3 variants.
ver #4)
- Fix a couple of arm64 build problems.
- Doc fixes:
- Fix the description of the algorithm to be closer to the NIST spec's
terminology.
- Don't talk of finialising the context for XOFs.
- Don't say "Return: None".
- Declare the "Context" to be "Any context" and make no mention of the
fact that it might use the FPU.
- Change "initialise" to "initialize".
- Don't warn that the context is relatively large for stack use.
- Use size_t for size parameters/variables.
- Make the module_exit unconditional.
- Dropped the crypto/ dir-affecting patches for the moment.
ver #3)
- Renamed conflicting arm64 functions.
- Made a separate wrapper API for each algorithm in the family.
- Removed sha3_init(), sha3_reinit() and sha3_final().
- Removed sha3_ctx::digest_size.
- Renamed sha3_ctx::partial to sha3_ctx::absorb_offset.
- Refer to the output of SHAKE* as "output" not "digest".
- Moved the Iota transform into the one-round function.
- Made sha3_update() warn if called after sha3_squeeze().
- Simplified the module-load test to not do update after squeeze.
- Added Return: and Context: kdoc statements and expanded the kdoc
headers.
- Added an API description document.
- Overhauled the kunit tests.
- Only have one kunit test.
- Only call the general hash tester on one algo.
- Add separate simple cursory checks for the other algos.
- Add resqueezing tests.
- Add some NIST example tests.
- Changed crypto/sha3_generic to use this
- Added SHAKE128/256 to crypto/sha3_generic and crypto/testmgr
- Folded struct sha3_state into struct sha3_ctx.
ver #2)
- Simplify the endianness handling.
- Rename sha3_final() to sha3_squeeze() and don't clear the context at the
end as it's permitted to continue calling sha3_final() to extract
continuations of the digest (needed by ML-DSA).
- Don't reapply the end marker to the hash state in continuation
sha3_squeeze() unless sha3_update() gets called again (needed by
ML-DSA).
- Give sha3_squeeze() the amount of digest to produce as a parameter
rather than using ctx->digest_size and don't return the amount digested.
- Reimplement sha3_final() as a wrapper around sha3_squeeze() that
extracts ctx->digest_size amount of digest and then zeroes out the
context. The latter is necessary to avoid upsetting
hash-test-template.h.
- Provide a sha3_reinit() function to clear the state, but to leave the
parameters that indicate the hash properties unaffected, allowing for
reuse.
- Provide a sha3_set_digestsize() function to change the size of the
digest to be extracted by sha3_final(). sha3_squeeze() takes a
parameter for this instead.
- Don't pass the digest size as a parameter to shake128/256_init() but
rather default to 128/256 bits as per the function name.
- Provide a sha3_clear() function to zero out the context.
David Howells (17):
s390/sha3: Rename conflicting functions
arm64/sha3: Rename conflicting functions
lib/crypto: Add SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128,
SHAKE256
lib/crypto: Move the SHA3 Iota transform into the single round
function
lib/crypto: Add SHA3 kunit tests
crypto/jitterentropy: Use lib/crypto/sha3
crypto/sha3: Use lib/crypto/sha3
crypto/sha3: Add SHAKE128/256 support
crypto: SHAKE tests
crypto: Add ML-DSA/Dilithium support
crypto: Add ML-DSA/Dilithium keypair generation support
crypto: Add ML-DSA-44 pure rejection test vectors as a kunit test
crypto: Add ML-DSA-65 pure rejection test vectors as a kunit test
crypto: Add ML-DSA-87 pure rejection test vectors as a kunit test
pkcs7: Allow the signing algo to calculate the digest itself
pkcs7, x509: Add ML-DSA support
modsign: Enable ML-DSA module signing
Documentation/admin-guide/module-signing.rst | 15 +-
Documentation/crypto/index.rst | 1 +
Documentation/crypto/sha3.rst | 237 +
arch/arm64/crypto/sha3-ce-glue.c | 47 +-
arch/s390/crypto/sha3_256_s390.c | 26 +-
arch/s390/crypto/sha3_512_s390.c | 26 +-
certs/Kconfig | 24 +
certs/Makefile | 3 +
crypto/Kconfig | 1 +
crypto/Makefile | 1 +
crypto/asymmetric_keys/pkcs7_parser.c | 19 +-
crypto/asymmetric_keys/pkcs7_verify.c | 52 +-
crypto/asymmetric_keys/public_key.c | 7 +
crypto/asymmetric_keys/x509_cert_parser.c | 24 +
crypto/jitterentropy-kcapi.c | 100 +-
crypto/jitterentropy.c | 7 +-
crypto/jitterentropy.h | 8 +-
crypto/ml_dsa/Kconfig | 32 +
crypto/ml_dsa/Makefile | 20 +
crypto/ml_dsa/dilithium.h | 804 ++
crypto/ml_dsa/dilithium_44.c | 33 +
crypto/ml_dsa/dilithium_44.h | 412 +
crypto/ml_dsa/dilithium_65.c | 33 +
crypto/ml_dsa/dilithium_65.h | 412 +
crypto/ml_dsa/dilithium_87.c | 33 +
crypto/ml_dsa/dilithium_87.h | 412 +
crypto/ml_dsa/dilithium_api.c | 821 ++
crypto/ml_dsa/dilithium_debug.h | 80 +
crypto/ml_dsa/dilithium_ntt.c | 89 +
crypto/ml_dsa/dilithium_ntt.h | 35 +
crypto/ml_dsa/dilithium_pack.h | 285 +
crypto/ml_dsa/dilithium_pct.h | 53 +
crypto/ml_dsa/dilithium_poly.c | 586 +
crypto/ml_dsa/dilithium_poly.h | 190 +
crypto/ml_dsa/dilithium_poly_c.h | 149 +
crypto/ml_dsa/dilithium_poly_common.h | 35 +
crypto/ml_dsa/dilithium_polyvec.h | 363 +
crypto/ml_dsa/dilithium_polyvec_c.h | 114 +
.../dilithium_pure_rejection_vectors_44.h | 812 ++
.../dilithium_pure_rejection_vectors_65.h | 8290 ++++++++++++
.../dilithium_pure_rejection_vectors_87.h | 10761 ++++++++++++++++
crypto/ml_dsa/dilithium_reduce.h | 108 +
crypto/ml_dsa/dilithium_rounding.c | 128 +
crypto/ml_dsa/dilithium_rounding.h | 45 +
crypto/ml_dsa/dilithium_selftest.c | 183 +
crypto/ml_dsa/dilithium_service_helpers.h | 99 +
crypto/ml_dsa/dilithium_sig.c | 404 +
crypto/ml_dsa/dilithium_signature_c.c | 198 +
crypto/ml_dsa/dilithium_signature_c.h | 60 +
crypto/ml_dsa/dilithium_signature_helper.c | 110 +
crypto/ml_dsa/dilithium_signature_impl.h | 1033 ++
crypto/ml_dsa/dilithium_type.h | 281 +
crypto/ml_dsa/dilithium_zetas.c | 67 +
crypto/ml_dsa/fips_mode.h | 45 +
crypto/ml_dsa/signature_domain_separation.c | 213 +
crypto/ml_dsa/signature_domain_separation.h | 33 +
crypto/ml_dsa/small_stack_support.h | 40 +
crypto/sha3_generic.c | 241 +-
crypto/testmgr.c | 14 +
crypto/testmgr.h | 59 +
include/crypto/algapi.h | 2 +-
include/crypto/public_key.h | 1 +
include/crypto/sha3.h | 433 +-
include/linux/oid_registry.h | 5 +
kernel/module/Kconfig | 5 +
lib/crypto/Kconfig | 7 +
lib/crypto/Makefile | 6 +
lib/crypto/sha3.c | 511 +
lib/crypto/tests/Kconfig | 11 +
lib/crypto/tests/Makefile | 1 +
lib/crypto/tests/sha3_kunit.c | 342 +
lib/crypto/tests/sha3_testvecs.h | 231 +
scripts/crypto/gen-hash-testvecs.py | 10 +-
scripts/sign-file.c | 26 +-
74 files changed, 30050 insertions(+), 354 deletions(-)
create mode 100644 Documentation/crypto/sha3.rst
create mode 100644 crypto/ml_dsa/Kconfig
create mode 100644 crypto/ml_dsa/Makefile
create mode 100644 crypto/ml_dsa/dilithium.h
create mode 100644 crypto/ml_dsa/dilithium_44.c
create mode 100644 crypto/ml_dsa/dilithium_44.h
create mode 100644 crypto/ml_dsa/dilithium_65.c
create mode 100644 crypto/ml_dsa/dilithium_65.h
create mode 100644 crypto/ml_dsa/dilithium_87.c
create mode 100644 crypto/ml_dsa/dilithium_87.h
create mode 100644 crypto/ml_dsa/dilithium_api.c
create mode 100644 crypto/ml_dsa/dilithium_debug.h
create mode 100644 crypto/ml_dsa/dilithium_ntt.c
create mode 100644 crypto/ml_dsa/dilithium_ntt.h
create mode 100644 crypto/ml_dsa/dilithium_pack.h
create mode 100644 crypto/ml_dsa/dilithium_pct.h
create mode 100644 crypto/ml_dsa/dilithium_poly.c
create mode 100644 crypto/ml_dsa/dilithium_poly.h
create mode 100644 crypto/ml_dsa/dilithium_poly_c.h
create mode 100644 crypto/ml_dsa/dilithium_poly_common.h
create mode 100644 crypto/ml_dsa/dilithium_polyvec.h
create mode 100644 crypto/ml_dsa/dilithium_polyvec_c.h
create mode 100644 crypto/ml_dsa/dilithium_pure_rejection_vectors_44.h
create mode 100644 crypto/ml_dsa/dilithium_pure_rejection_vectors_65.h
create mode 100644 crypto/ml_dsa/dilithium_pure_rejection_vectors_87.h
create mode 100644 crypto/ml_dsa/dilithium_reduce.h
create mode 100644 crypto/ml_dsa/dilithium_rounding.c
create mode 100644 crypto/ml_dsa/dilithium_rounding.h
create mode 100644 crypto/ml_dsa/dilithium_selftest.c
create mode 100644 crypto/ml_dsa/dilithium_service_helpers.h
create mode 100644 crypto/ml_dsa/dilithium_sig.c
create mode 100644 crypto/ml_dsa/dilithium_signature_c.c
create mode 100644 crypto/ml_dsa/dilithium_signature_c.h
create mode 100644 crypto/ml_dsa/dilithium_signature_helper.c
create mode 100644 crypto/ml_dsa/dilithium_signature_impl.h
create mode 100644 crypto/ml_dsa/dilithium_type.h
create mode 100644 crypto/ml_dsa/dilithium_zetas.c
create mode 100644 crypto/ml_dsa/fips_mode.h
create mode 100644 crypto/ml_dsa/signature_domain_separation.c
create mode 100644 crypto/ml_dsa/signature_domain_separation.h
create mode 100644 crypto/ml_dsa/small_stack_support.h
create mode 100644 lib/crypto/sha3.c
create mode 100644 lib/crypto/tests/sha3_kunit.c
create mode 100644 lib/crypto/tests/sha3_testvecs.h
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH v6 01/17] s390/sha3: Rename conflicting functions
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-18 8:59 ` Christophe Leroy
2025-10-18 12:17 ` David Howells
2025-10-17 14:42 ` [PATCH v6 02/17] arm64/sha3: " David Howells
` (15 subsequent siblings)
16 siblings, 2 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel, Harald Freudenberger, Holger Dengler,
linux-s390
Rename the s390 sha3_* functions to have an "s390_" prefix to avoid
conflict with generic code.
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-By: Harald Freudenberger <freude@linux.ibm.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Holger Dengler <dengler@linux.ibm.com>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
cc: linux-s390@vger.kernel.org
---
arch/s390/crypto/sha3_256_s390.c | 26 +++++++++++++-------------
arch/s390/crypto/sha3_512_s390.c | 26 +++++++++++++-------------
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/arch/s390/crypto/sha3_256_s390.c b/arch/s390/crypto/sha3_256_s390.c
index 03bb4f4bab70..fd5ecae60a57 100644
--- a/arch/s390/crypto/sha3_256_s390.c
+++ b/arch/s390/crypto/sha3_256_s390.c
@@ -19,7 +19,7 @@
#include "sha.h"
-static int sha3_256_init(struct shash_desc *desc)
+static int s390_sha3_256_init(struct shash_desc *desc)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
@@ -32,7 +32,7 @@ static int sha3_256_init(struct shash_desc *desc)
return 0;
}
-static int sha3_256_export(struct shash_desc *desc, void *out)
+static int s390_sha3_256_export(struct shash_desc *desc, void *out)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
union {
@@ -50,7 +50,7 @@ static int sha3_256_export(struct shash_desc *desc, void *out)
return 0;
}
-static int sha3_256_import(struct shash_desc *desc, const void *in)
+static int s390_sha3_256_import(struct shash_desc *desc, const void *in)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
union {
@@ -68,22 +68,22 @@ static int sha3_256_import(struct shash_desc *desc, const void *in)
return 0;
}
-static int sha3_224_import(struct shash_desc *desc, const void *in)
+static int s390_sha3_224_import(struct shash_desc *desc, const void *in)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
- sha3_256_import(desc, in);
+ s390_sha3_256_import(desc, in);
sctx->func = CPACF_KIMD_SHA3_224;
return 0;
}
static struct shash_alg sha3_256_alg = {
.digestsize = SHA3_256_DIGEST_SIZE, /* = 32 */
- .init = sha3_256_init,
+ .init = s390_sha3_256_init,
.update = s390_sha_update_blocks,
.finup = s390_sha_finup,
- .export = sha3_256_export,
- .import = sha3_256_import,
+ .export = s390_sha3_256_export,
+ .import = s390_sha3_256_import,
.descsize = S390_SHA_CTX_SIZE,
.statesize = SHA3_STATE_SIZE,
.base = {
@@ -96,22 +96,22 @@ static struct shash_alg sha3_256_alg = {
}
};
-static int sha3_224_init(struct shash_desc *desc)
+static int s390_sha3_224_init(struct shash_desc *desc)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
- sha3_256_init(desc);
+ s390_sha3_256_init(desc);
sctx->func = CPACF_KIMD_SHA3_224;
return 0;
}
static struct shash_alg sha3_224_alg = {
.digestsize = SHA3_224_DIGEST_SIZE,
- .init = sha3_224_init,
+ .init = s390_sha3_224_init,
.update = s390_sha_update_blocks,
.finup = s390_sha_finup,
- .export = sha3_256_export, /* same as for 256 */
- .import = sha3_224_import, /* function code different! */
+ .export = s390_sha3_256_export, /* same as for 256 */
+ .import = s390_sha3_224_import, /* function code different! */
.descsize = S390_SHA_CTX_SIZE,
.statesize = SHA3_STATE_SIZE,
.base = {
diff --git a/arch/s390/crypto/sha3_512_s390.c b/arch/s390/crypto/sha3_512_s390.c
index a5c9690eecb1..f4b52a3a0433 100644
--- a/arch/s390/crypto/sha3_512_s390.c
+++ b/arch/s390/crypto/sha3_512_s390.c
@@ -18,7 +18,7 @@
#include "sha.h"
-static int sha3_512_init(struct shash_desc *desc)
+static int s390_sha3_512_init(struct shash_desc *desc)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
@@ -31,7 +31,7 @@ static int sha3_512_init(struct shash_desc *desc)
return 0;
}
-static int sha3_512_export(struct shash_desc *desc, void *out)
+static int s390_sha3_512_export(struct shash_desc *desc, void *out)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
union {
@@ -49,7 +49,7 @@ static int sha3_512_export(struct shash_desc *desc, void *out)
return 0;
}
-static int sha3_512_import(struct shash_desc *desc, const void *in)
+static int s390_sha3_512_import(struct shash_desc *desc, const void *in)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
union {
@@ -67,22 +67,22 @@ static int sha3_512_import(struct shash_desc *desc, const void *in)
return 0;
}
-static int sha3_384_import(struct shash_desc *desc, const void *in)
+static int s390_sha3_384_import(struct shash_desc *desc, const void *in)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
- sha3_512_import(desc, in);
+ s390_sha3_512_import(desc, in);
sctx->func = CPACF_KIMD_SHA3_384;
return 0;
}
static struct shash_alg sha3_512_alg = {
.digestsize = SHA3_512_DIGEST_SIZE,
- .init = sha3_512_init,
+ .init = s390_sha3_512_init,
.update = s390_sha_update_blocks,
.finup = s390_sha_finup,
- .export = sha3_512_export,
- .import = sha3_512_import,
+ .export = s390_sha3_512_export,
+ .import = s390_sha3_512_import,
.descsize = S390_SHA_CTX_SIZE,
.statesize = SHA3_STATE_SIZE,
.base = {
@@ -97,22 +97,22 @@ static struct shash_alg sha3_512_alg = {
MODULE_ALIAS_CRYPTO("sha3-512");
-static int sha3_384_init(struct shash_desc *desc)
+static int s390_sha3_384_init(struct shash_desc *desc)
{
struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
- sha3_512_init(desc);
+ s390_sha3_512_init(desc);
sctx->func = CPACF_KIMD_SHA3_384;
return 0;
}
static struct shash_alg sha3_384_alg = {
.digestsize = SHA3_384_DIGEST_SIZE,
- .init = sha3_384_init,
+ .init = s390_sha3_384_init,
.update = s390_sha_update_blocks,
.finup = s390_sha_finup,
- .export = sha3_512_export, /* same as for 512 */
- .import = sha3_384_import, /* function code different! */
+ .export = s390_sha3_512_export, /* same as for 512 */
+ .import = s390_sha3_384_import, /* function code different! */
.descsize = S390_SHA_CTX_SIZE,
.statesize = SHA3_STATE_SIZE,
.base = {
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 02/17] arm64/sha3: Rename conflicting functions
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
2025-10-17 14:42 ` [PATCH v6 01/17] s390/sha3: Rename conflicting functions David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-18 9:00 ` Christophe Leroy
2025-10-17 14:42 ` [PATCH v6 03/17] lib/crypto: Add SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256 David Howells
` (14 subsequent siblings)
16 siblings, 1 reply; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel, Catalin Marinas, Will Deacon,
linux-arm-kernel
Rename the arm64 sha3_* functions to have an "arm64_" prefix to avoid
conflict with generic code.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Catalin Marinas <catalin.marinas@arm.com>
cc: Will Deacon <will@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
cc: linux-arm-kernel@lists.infradead.org
---
arch/arm64/crypto/sha3-ce-glue.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/arm64/crypto/sha3-ce-glue.c b/arch/arm64/crypto/sha3-ce-glue.c
index b4f1001046c9..426d8044535a 100644
--- a/arch/arm64/crypto/sha3-ce-glue.c
+++ b/arch/arm64/crypto/sha3-ce-glue.c
@@ -31,7 +31,7 @@ MODULE_ALIAS_CRYPTO("sha3-512");
asmlinkage int sha3_ce_transform(u64 *st, const u8 *data, int blocks,
int md_len);
-static int sha3_update(struct shash_desc *desc, const u8 *data,
+static int arm64_sha3_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
struct sha3_state *sctx = shash_desc_ctx(desc);
@@ -55,8 +55,8 @@ static int sha3_update(struct shash_desc *desc, const u8 *data,
return len;
}
-static int sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
- u8 *out)
+static int arm64_sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
+ u8 *out)
{
struct sha3_state *sctx = shash_desc_ctx(desc);
struct crypto_shash *tfm = desc->tfm;
@@ -90,8 +90,8 @@ static int sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
static struct shash_alg algs[] = { {
.digestsize = SHA3_224_DIGEST_SIZE,
.init = crypto_sha3_init,
- .update = sha3_update,
- .finup = sha3_finup,
+ .update = arm64_sha3_update,
+ .finup = arm64_sha3_finup,
.descsize = SHA3_STATE_SIZE,
.base.cra_name = "sha3-224",
.base.cra_driver_name = "sha3-224-ce",
@@ -102,8 +102,8 @@ static struct shash_alg algs[] = { {
}, {
.digestsize = SHA3_256_DIGEST_SIZE,
.init = crypto_sha3_init,
- .update = sha3_update,
- .finup = sha3_finup,
+ .update = arm64_sha3_update,
+ .finup = arm64_sha3_finup,
.descsize = SHA3_STATE_SIZE,
.base.cra_name = "sha3-256",
.base.cra_driver_name = "sha3-256-ce",
@@ -114,8 +114,8 @@ static struct shash_alg algs[] = { {
}, {
.digestsize = SHA3_384_DIGEST_SIZE,
.init = crypto_sha3_init,
- .update = sha3_update,
- .finup = sha3_finup,
+ .update = arm64_sha3_update,
+ .finup = arm64_sha3_finup,
.descsize = SHA3_STATE_SIZE,
.base.cra_name = "sha3-384",
.base.cra_driver_name = "sha3-384-ce",
@@ -126,8 +126,8 @@ static struct shash_alg algs[] = { {
}, {
.digestsize = SHA3_512_DIGEST_SIZE,
.init = crypto_sha3_init,
- .update = sha3_update,
- .finup = sha3_finup,
+ .update = arm64_sha3_update,
+ .finup = arm64_sha3_finup,
.descsize = SHA3_STATE_SIZE,
.base.cra_name = "sha3-512",
.base.cra_driver_name = "sha3-512-ce",
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 03/17] lib/crypto: Add SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
2025-10-17 14:42 ` [PATCH v6 01/17] s390/sha3: Rename conflicting functions David Howells
2025-10-17 14:42 ` [PATCH v6 02/17] arm64/sha3: " David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 04/17] lib/crypto: Move the SHA3 Iota transform into the single round function David Howells
` (13 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add SHA3, providing SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
SHAKE256 to lib/crypto.
Notes:
(1) I've left hooks in sha3.c for asm-optimised variants, but as I don't
entirely know what those might look like, not having implemented any,
the hooks' usability is uncertain.
(2) The SHAKE algorithms will be required for ML-DSA.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
Changes
=======
v4)
- Doc fixes:
- Fix the description of the algorithm to be closer to the NIST spec's
terminology.
- Don't talk of finialising the context for XOFs.
- Don't say "Return: None".
- Declare the "Context" to be "Any context" and make no mention of the
fact that it might use the FPU.
- Change "initialise" to "initialize".
- Don't warn that the context is relatively large for stack use.
- Use size_t for size parameters/variables.
- Make the module_exit unconditional.
v3)
- Split the s390 function rename out to a separate patch.
v2)
- Simplify things by keeping the state array in LE form and byteswapping
all the 64-bit words before and after applying the keccak function on a
BE system. This means no byteswapping is required when XOR'ing data
into the state array or when extracting the digest. Further, this is a
no-op on LE systems.
- Rename sha3_final() to sha3_squeeze() and don't clear the context at the
end as it's permitted to continue calling sha3_final() to extract
continuations of the digest (needed by ML-DSA).
- Don't reapply the end marker to the hash state in continuation
sha3_squeeze() unless sha3_update() gets called again (needed by
ML-DSA).
- Give sha3_squeeze() the amount of digest to produce as a parameter
rather than using ctx->digest_size and don't return the amount digested.
- Reimplement sha3_final() as a wrapper around sha3_squeeze() that
extracts ctx->digest_size amount of digest and then zeroes out the
context. The latter is necessary to avoid upsetting
hash-test-template.h.
- Provide a sha3_reinit() function to clear the state, but to leave the
parameters that indicate the hash properties unaffected, allowing for
reuse.
- Provide a sha3_set_digestsize() function to change the size of the
digest to be extracted by sha3_final(). sha3_squeeze() takes a
parameter for this instead.
- Don't pass the digest size as a parameter to shake128/256_init() but
rather default to 128/256 bits as per the function name.
- Provide a sha3_clear() function to zero out the context.
---
Documentation/crypto/index.rst | 1 +
Documentation/crypto/sha3.rst | 241 ++++++++++++++++
include/crypto/sha3.h | 433 +++++++++++++++++++++++++++-
lib/crypto/Kconfig | 7 +
lib/crypto/Makefile | 6 +
lib/crypto/sha3.c | 511 +++++++++++++++++++++++++++++++++
6 files changed, 1198 insertions(+), 1 deletion(-)
create mode 100644 Documentation/crypto/sha3.rst
create mode 100644 lib/crypto/sha3.c
diff --git a/Documentation/crypto/index.rst b/Documentation/crypto/index.rst
index 100b47d049c0..4ee667c446f9 100644
--- a/Documentation/crypto/index.rst
+++ b/Documentation/crypto/index.rst
@@ -27,3 +27,4 @@ for cryptographic use cases, as well as programming examples.
descore-readme
device_drivers/index
krb5
+ sha3
diff --git a/Documentation/crypto/sha3.rst b/Documentation/crypto/sha3.rst
new file mode 100644
index 000000000000..3255618ea2ec
--- /dev/null
+++ b/Documentation/crypto/sha3.rst
@@ -0,0 +1,241 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+==========================
+SHA-3 Algorithm collection
+==========================
+
+.. Contents:
+
+ - Overview
+ - Basic API
+ - Extendable-Output Functions
+ - Convenience API
+ - Internal API
+ - Testing
+ - References
+ - API Function Reference
+
+
+Overview
+========
+
+The SHA-3 algorithm base, as specified in NIST FIPS-202[1], provides a number
+of specific variants all based on the same basic algorithm (the Keccak sponge
+function and permutation). The differences between them are: the "rate" (how
+much of the common state buffer gets updated with new data between invocations
+of the Keccak function and analogous to the "block size"), what domain
+separation suffix/padding gets appended to the message and how much data is
+extracted at the end. The Keccak sponge function is designed such that
+arbitrary amounts of output can be obtained for certain algorithms.
+
+Four standard digest algorithms are provided:
+
+ - SHA3-224
+ - SHA3-256
+ - SHA3-384
+ - SHA3-512
+
+and two Extendable-Output Functions (XOF):
+
+ - SHAKE128
+ - SHAKE256
+
+If selectable algorithms are required then the crypto_hash API may be used
+instead as this binds each algorithm to a specific C type.
+
+
+Basic API
+=========
+
+The basic API has a separate context struct for each algorithm in the SHA3
+suite, none of the contents of which are expected to be accessed directly::
+
+ struct sha3_224_ctx { ... };
+ struct sha3_256_ctx { ... };
+ struct sha3_384_ctx { ... };
+ struct sha3_512_ctx { ... };
+ struct shake128_ctx { ... };
+ struct shake256_ctx { ... };
+
+There are a collection of initialisation functions, one for each algorithm
+supported, that initialise the context appropriately for that algorithm::
+
+ void sha3_224_init(struct sha3_224_ctx *ctx);
+ void sha3_256_init(struct sha3_256_ctx *ctx);
+ void sha3_384_init(struct sha3_384_ctx *ctx);
+ void sha3_512_init(struct sha3_512_ctx *ctx);
+ void shake128_init(struct shake128_ctx *ctx);
+ void shake256_init(struct shake256_ctx *ctx);
+
+Data is then added with the appropriate update function, again one per
+algorithm::
+
+ void sha3_224_update(struct sha3_224_ctx *ctx,
+ const u8 *data, size_t len);
+ void sha3_256_update(struct sha3_256_ctx *ctx,
+ const u8 *data, size_t len);
+ void sha3_384_update(struct sha3_384_ctx *ctx,
+ const u8 *data, size_t len);
+ void sha3_512_update(struct sha3_512_ctx *ctx,
+ const u8 *data, size_t len);
+ void shake128_update(struct shake128_ctx *ctx,
+ const u8 *data, size_t len);
+ void shake256_update(struct shake256_ctx *ctx,
+ const u8 *data, size_t len);
+
+The update function may be called multiple times if need be to add
+non-contiguous data.
+
+For digest algorithms, the digest is finalised and extracted with the
+algorithm-specific function::
+
+ void sha3_224_final(struct sha3_224_ctx *ctx,
+ u8 out[SHA3_224_DIGEST_SIZE]);
+ void sha3_256_final(struct sha3_256_ctx *ctx,
+ u8 out[SHA3_256_DIGEST_SIZE]);
+ void sha3_384_final(struct sha3_384_ctx *ctx,
+ u8 out[SHA3_384_DIGEST_SIZE]);
+ void sha3_512_final(struct sha3_512_ctx *ctx,
+ u8 out[SHA3_512_DIGEST_SIZE]);
+
+which also explicitly clears the context. The amount of data extracted is
+determined by the type.
+
+
+Extendable-Output Functions
+---------------------------
+
+For XOFs, once the data has been added to a context, a variable amount of data
+may be extracted. This can be done by calling the appropriate squeeze
+function::
+
+ void shake128_squeeze(struct shake128_ctx *ctx, u8 *out, size_t out_len);
+ void shake256_squeeze(struct shake256_ctx *ctx, u8 *out, size_t out_len);
+
+and telling it how much data should be extracted. The squeeze function may be
+called multiple times but it will only append the domain separation suffix on
+the first invocation.
+
+Note that performing a number of squeezes, with the output laid consequitively
+in a buffer, gets exactly the same output as doing a single squeeze for the
+combined amount over the same buffer.
+
+Once all the desired output has been extracted, the context should be cleared
+with the clear function appropriate to the algorithm::
+
+ void shake128_clear(struct shake128_ctx *ctx);
+ void shake256_clear(struct shake256_ctx *ctx);
+
+
+Convenience API
+===============
+
+It only a single contiguous buffer of input needs to be added and only a single
+buffer of digest or XOF output is required, then a convenience API is provided
+that wraps all the required steps into a single function. There is one
+function for each algorithm supported::
+
+ void sha3_224(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE]);
+ void sha3_256(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE]);
+ void sha3_384(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE]);
+ void sha3_512(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE]);
+ void shake128(const u8 *in, size_t in_len, u8 *out, size_t out_len);
+ void shake256(const u8 *in, size_t in_len, u8 *out, size_t out_len);
+
+
+Internal API
+============
+
+There is a common internal API underlying all of this that may be used to build
+further algorithms or APIs as the engine in the same in all cases. The
+algorithm APIs all wrap the common context structure::
+
+ struct sha3_ctx {
+ struct sha3_state state;
+ u8 block_size;
+ u8 padding;
+ u8 absorb_offset;
+ u8 squeeze_offset;
+ bool end_marked;
+ };
+
+ struct sha3_state {
+ u64 st[SHA3_STATE_SIZE / 8];
+ };
+
+The fields are as follows:
+
+ * ``state.st``
+
+ An array of 25 64-bit state buckets that are used to hold the mathematical
+ state of the Keccak engine. Data is XOR'd onto part of this, the engine is
+ cranked and then the output is copied from this.
+
+ For the convenience of adding input and extract output from it, the array is
+ kept in little-endian order most of the time, but is byteswapped to
+ host-endian in order to perform the Keccak function and then byteswapped
+ back again. On an LE machine, the byteswapping is a no-op.
+
+ * ``block_size``
+
+ The size of the block of state that can be updated or extracted at a time.
+ This is related to the algorithm size and is analogous to the "rate" in the
+ algorithm definition.
+
+ * ``padding``
+
+ The terminating byte to add when finalising the stat. This may differ
+ between algorithms.
+
+ * ``absorb_offset``
+
+ This tracks which is the next byte of state to be updated; when it hits
+ ``block_size``, the engine is cranked and this is reset to 0.
+
+ * ``squeeze_offset``
+
+ This tracks which is the next byte of state to be extracted; similar to
+ ``partial``, when it hits ``block_size``, if more output is requested, the
+ engine is cranked to generate more and this is reset to 0.
+
+ * ``end_marked``
+
+ This is set to true when the domain separation suffix and any padding have
+ been appended to the state to prevent multiple squeezings from XOF
+ algorithms from re-appending this.
+
+Note that the size of the digest is *not* included here as that's only needed
+at finalisation time for digest algorithms and can be supplied then. It is not
+relevant to XOFs.
+
+To make use of the context, the following internal functions are provided::
+
+ void sha3_update(struct sha3_ctx *ctx, const u8 *data, size_t len);
+ void sha3_squeeze(struct sha3_ctx *ctx, u8 *out, size_t out_len);
+ void sha3_clear(struct sha3_ctx *ctx);
+
+These allow data to be appended to/absorbed into the state, output to be
+extracted/squeezed from the state and for the state to be cleared. Note that
+there is no "final" function, per se, but that can be constructed by squeezing
+and clearing.
+
+
+Testing
+-------
+
+The sha3 module does a basic sanity test on initialisation, but there is also a
+kunit test module available.
+
+
+References
+==========
+
+[1] https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
+
+
+
+API Function Reference
+======================
+
+.. kernel-doc:: crypto/lib/sha3.c
+.. kernel-doc:: include/crypto/sha3.h
diff --git a/include/crypto/sha3.h b/include/crypto/sha3.h
index 41e1b83a6d91..a54117cb1546 100644
--- a/include/crypto/sha3.h
+++ b/include/crypto/sha3.h
@@ -1,11 +1,14 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Common values for SHA-3 algorithms
+ *
+ * See also Documentation/crypto/sha3.rst
*/
#ifndef __CRYPTO_SHA3_H__
#define __CRYPTO_SHA3_H__
#include <linux/types.h>
+#include <linux/string.h>
#define SHA3_224_DIGEST_SIZE (224 / 8)
#define SHA3_224_BLOCK_SIZE (200 - 2 * SHA3_224_DIGEST_SIZE)
@@ -23,6 +26,14 @@
#define SHA3_512_BLOCK_SIZE (200 - 2 * SHA3_512_DIGEST_SIZE)
#define SHA3_512_EXPORT_SIZE SHA3_STATE_SIZE + SHA3_512_BLOCK_SIZE + 1
+/* SHAKE128 and SHAKE256 actually have variable output size, but this is
+ * used to calculate the block size/rate analogously to the above..
+ */
+#define SHAKE128_DEFAULT_SIZE (128 / 8)
+#define SHAKE128_BLOCK_SIZE (200 - 2 * SHAKE128_DEFAULT_SIZE)
+#define SHAKE256_DEFAULT_SIZE (256 / 8)
+#define SHAKE256_BLOCK_SIZE (200 - 2 * SHAKE256_DEFAULT_SIZE)
+
#define SHA3_STATE_SIZE 200
struct shash_desc;
@@ -31,6 +42,426 @@ struct sha3_state {
u64 st[SHA3_STATE_SIZE / 8];
};
+/*
+ * The SHA3 context structure and state buffer.
+ *
+ * To avoid the need to byteswap when adding input and extracting output from
+ * the state array, the state array is kept in little-endian order most of the
+ * time, but is byteswapped to host-endian in order to perform the Keccak
+ * function and then byteswapped back again after. On a LE machine, the
+ * byteswap step is a no-op.
+ */
+struct sha3_ctx {
+ struct sha3_state state;
+ u8 block_size; /* Block size in bytes */
+ u8 padding; /* Padding byte */
+ u8 absorb_offset; /* Next state byte to absorb into */
+ u8 squeeze_offset; /* Next state byte to extract */
+ bool end_marked; /* T if end marker inserted */
+};
+
int crypto_sha3_init(struct shash_desc *desc);
-#endif
+/**
+ * sha3_clear() - Explicitly clear the entire context
+ * @ctx: the context to clear
+ *
+ * Explicitly clear the entire context, including the type parameters; after
+ * this, the context must be fully initialized again.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_clear(struct sha3_ctx *ctx)
+{
+ memzero_explicit(ctx, sizeof(*ctx));
+}
+
+void sha3_update(struct sha3_ctx *ctx, const u8 *data, size_t len);
+void sha3_squeeze(struct sha3_ctx *ctx, u8 *out, size_t out_len);
+
+/*
+ * Context wrapper for SHA3-224.
+ */
+struct sha3_224_ctx {
+ struct sha3_ctx ctx;
+};
+
+/**
+ * sha3_224_init() - Set a SHA3 context for SHA3-224
+ * @ctx: the context to initialize
+ *
+ * Initialize a SHA3 context for the production of a SHA3-224 digest of a
+ * message.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_224_init(struct sha3_224_ctx *ctx)
+{
+ *ctx = (struct sha3_224_ctx){
+ .ctx.block_size = SHA3_224_BLOCK_SIZE,
+ .ctx.padding = 0x06,
+ };
+}
+
+/**
+ * sha3_224_update() - Update a SHA3-224 hash with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to add data to the hash, performing
+ * the "keccak sponge absorbing" phase.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_224_update(struct sha3_224_ctx *ctx, const u8 *data, size_t len)
+{
+ return sha3_update(&ctx->ctx, data, len);
+}
+
+/**
+ * sha3_224_final() - Finalise a SHA3-224 hash and extract the digest
+ * @ctx: The context to finalise; must have been initialized
+ * @out: Where to write the resulting message digest
+ *
+ * Finish the computation of a SHA3-224 hash and perform the "Keccak sponge
+ * squeezing" phase. The digest is written to @out buffer and the context will
+ * be completely zeroed out.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_224_final(struct sha3_224_ctx *ctx, u8 out[SHA3_224_DIGEST_SIZE])
+{
+ sha3_squeeze(&ctx->ctx, out, SHA3_224_DIGEST_SIZE);
+ sha3_clear(&ctx->ctx);
+}
+
+/*
+ * Context wrapper for SHA3-256.
+ */
+struct sha3_256_ctx {
+ struct sha3_ctx ctx;
+};
+
+/**
+ * sha3_256_init() - Set a SHA3 context for SHA3-256
+ * @ctx: the context to initialize
+ *
+ * Initialize a SHA3 context for the production of a SHA3-256 digest of a
+ * message.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_256_init(struct sha3_256_ctx *ctx)
+{
+ *ctx = (struct sha3_256_ctx){
+ .ctx.block_size = SHA3_256_BLOCK_SIZE,
+ .ctx.padding = 0x06,
+ };
+}
+
+/**
+ * sha3_256_update() - Update a SHA3-256 hash with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to add data to the hash, performing
+ * the "keccak sponge absorbing" phase.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_256_update(struct sha3_256_ctx *ctx, const u8 *data, size_t len)
+{
+ return sha3_update(&ctx->ctx, data, len);
+}
+
+/**
+ * sha3_256_final() - Finalise a SHA3-256 hash and extract the digest
+ * @ctx: The context to finalise; must have been initialized
+ * @out: Where to write the resulting message digest
+ *
+ * Finish the computation of a SHA3-256 hash and perform the "Keccak sponge
+ * squeezing" phase. The digest is written to @out buffer and the context will
+ * be completely zeroed out.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_256_final(struct sha3_256_ctx *ctx, u8 out[SHA3_256_DIGEST_SIZE])
+{
+ sha3_squeeze(&ctx->ctx, out, SHA3_256_DIGEST_SIZE);
+ sha3_clear(&ctx->ctx);
+}
+
+/*
+ * Context wrapper for SHA3-384.
+ */
+struct sha3_384_ctx {
+ struct sha3_ctx ctx;
+};
+
+/**
+ * sha3_384_init() - Set a SHA3 context for SHA3-384
+ * @ctx: the context to initialize
+ *
+ * Initialize a SHA3 context for the production of a SHA3-384 digest of a
+ * message.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_384_init(struct sha3_384_ctx *ctx)
+{
+ *ctx = (struct sha3_384_ctx){
+ .ctx.block_size = SHA3_384_BLOCK_SIZE,
+ .ctx.padding = 0x06,
+ };
+}
+
+/**
+ * sha3_384_update() - Update a SHA3-384 hash with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to add data to the hash, performing
+ * the "keccak sponge absorbing" phase.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_384_update(struct sha3_384_ctx *ctx, const u8 *data, size_t len)
+{
+ return sha3_update(&ctx->ctx, data, len);
+}
+
+/**
+ * sha3_384_final() - Finalise a SHA3-384 hash and extract the digest
+ * @ctx: The context to finalise; must have been initialized
+ * @out: Where to write the resulting message digest
+ *
+ * Finish the computation of a SHA3-384 hash and perform the "Keccak sponge
+ * squeezing" phase. The digest is written to @out buffer and the context will
+ * be completely zeroed out.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_384_final(struct sha3_384_ctx *ctx, u8 out[SHA3_384_DIGEST_SIZE])
+{
+ sha3_squeeze(&ctx->ctx, out, SHA3_384_DIGEST_SIZE);
+ sha3_clear(&ctx->ctx);
+}
+
+/*
+ * Context wrapper for SHA3-512.
+ */
+struct sha3_512_ctx {
+ struct sha3_ctx ctx;
+};
+
+/**
+ * sha3_512_init() - Set a SHA3 context for SHA3-512
+ * @ctx: the context to initialize
+ *
+ * Initialize a SHA3 context for the production of a SHA3-512 digest of a
+ * message.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_512_init(struct sha3_512_ctx *ctx)
+{
+ *ctx = (struct sha3_512_ctx){
+ .ctx.block_size = SHA3_512_BLOCK_SIZE,
+ .ctx.padding = 0x06,
+ };
+}
+
+/**
+ * sha3_512_update() - Update a SHA3-512 hash with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to add data to the hash, performing
+ * the "keccak sponge absorbing" phase.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_512_update(struct sha3_512_ctx *ctx, const u8 *data, size_t len)
+{
+ return sha3_update(&ctx->ctx, data, len);
+}
+
+/**
+ * sha3_512_final() - Finalise a SHA3-512 hash and extract the digest
+ * @ctx: The context to finalise; must have been initialized
+ * @out: Where to write the resulting message digest
+ *
+ * Finish the computation of a SHA3-512 hash and perform the "Keccak sponge
+ * squeezing" phase. The digest is written to @out buffer and the context will
+ * be completely zeroed out.
+ *
+ * Context: Any context.
+ */
+static inline void sha3_512_final(struct sha3_512_ctx *ctx, u8 out[SHA3_512_DIGEST_SIZE])
+{
+ sha3_squeeze(&ctx->ctx, out, SHA3_512_DIGEST_SIZE);
+ sha3_clear(&ctx->ctx);
+}
+
+/*
+ * Context wrapper for SHAKE128.
+ */
+struct shake128_ctx {
+ struct sha3_ctx ctx;
+};
+
+/**
+ * shake128_init() - Set a SHA3 context for SHAKE128
+ * @ctx: The context to initialize
+ *
+ * Initialize a SHA3 context for the production of SHAKE128 output generation
+ * from a message. The sha3_squeeze() function can be used to extract an
+ * arbitrary amount of data from the context.
+ *
+ * Context: Any context.
+ */
+static inline void shake128_init(struct shake128_ctx *ctx)
+{
+ *ctx = (struct shake128_ctx){
+ .ctx.block_size = SHAKE128_BLOCK_SIZE,
+ .ctx.padding = 0x1f,
+ };
+}
+
+/**
+ * shake128_update() - Update a SHAKE128 hash with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to add data to the XOF state,
+ * performing the "keccak sponge absorbing" phase.
+ *
+ * Context: Any context.
+ */
+static inline void shake128_update(struct shake128_ctx *ctx, const u8 *data, size_t len)
+{
+ return sha3_update(&ctx->ctx, data, len);
+}
+
+/**
+ * shake128_squeeze() - Finalize a SHAKE128 digest of any type and extract the digest
+ * @ctx: the context to finalize; must have been initialized
+ * @out: Where to write the resulting message digest
+ * @out_size: The amount of digest to extract to @out in bytes
+ *
+ * Finish the computation of a SHAKE128 XOF and perform the "Keccak sponge
+ * squeezing" phase. @out_size amount of digest is written to @out buffer.
+ *
+ * This may be called multiple times to extract continuations of the digest.
+ * Note that, a number of consecutive squeezes laid end-to-end will yield the
+ * same output as one big squeeze generating the same total amount of output.
+ *
+ * Context: Any context.
+ */
+static inline void shake128_squeeze(struct shake128_ctx *ctx, u8 *out, size_t out_size)
+{
+ return sha3_squeeze(&ctx->ctx, out, out_size);
+}
+
+/**
+ * shake128_clear() - Explicitly clear the entire SHAKE128 context
+ * @ctx: the context to clear
+ *
+ * Explicitly clear the entire context; after this, the context must be
+ * initialized again.
+ *
+ * Context: Any context.
+ */
+static inline void shake128_clear(struct shake128_ctx *ctx)
+{
+ sha3_clear(&ctx->ctx);
+}
+
+/*
+ * Context wrapper for SHAKE256.
+ */
+struct shake256_ctx {
+ struct sha3_ctx ctx;
+};
+
+/**
+ * shake256_init() - Set a SHA3 context for SHAKE256
+ * @ctx: The context to initialize
+ *
+ * Initialize a SHA3 context for the production of SHAKE256 output generation
+ * from a message. The sha3_squeeze() function can be used to extract an
+ * arbitrary amount of data from the context.
+ *
+ * Context: Any context.
+ */
+static inline void shake256_init(struct shake256_ctx *ctx)
+{
+ *ctx = (struct shake256_ctx){
+ .ctx.block_size = SHAKE256_BLOCK_SIZE,
+ .ctx.padding = 0x1f,
+ };
+}
+
+/**
+ * shake256_update() - Update a SHAKE256 hash with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to add data to the XOF state,
+ * performing the "keccak sponge absorbing" phase.
+ *
+ * Context: Any context.
+ */
+static inline void shake256_update(struct shake256_ctx *ctx, const u8 *data, size_t len)
+{
+ return sha3_update(&ctx->ctx, data, len);
+}
+
+/**
+ * shake256_squeeze() - Finalize a SHAKE256 digest of any type and extract the digest
+ * @ctx: the context to finalize; must have been initialized
+ * @out: Where to write the resulting message digest
+ * @out_size: The amount of digest to extract to @out in bytes
+ *
+ * Finish the computation of a SHAKE256 XOF and perform the "Keccak sponge
+ * squeezing" phase. @out_size amount of digest is written to @out buffer.
+ *
+ * This may be called multiple times to extract continuations of the digest.
+ * Note that, a number of consecutive squeezes laid end-to-end will yield the
+ * same output as one big squeeze generating the same total amount of output.
+ *
+ * Context: Any context.
+ */
+static inline void shake256_squeeze(struct shake256_ctx *ctx, u8 *out, size_t out_size)
+{
+ return sha3_squeeze(&ctx->ctx, out, out_size);
+}
+
+/**
+ * shake256_clear() - Explicitly clear the entire SHAKE256 context
+ * @ctx: the context to clear
+ *
+ * Explicitly clear the entire context; after this, the context must be
+ * initialized again.
+ *
+ * Context: Any context.
+ */
+static inline void shake256_clear(struct shake256_ctx *ctx)
+{
+ sha3_clear(&ctx->ctx);
+}
+
+void sha3_224(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE]);
+void sha3_256(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE]);
+void sha3_384(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE]);
+void sha3_512(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE]);
+void shake128(const u8 *in, size_t in_len, u8 *out, size_t out_len);
+void shake256(const u8 *in, size_t in_len, u8 *out, size_t out_len);
+
+#endif /* __CRYPTO_SHA3_H__ */
diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig
index eea17e36a22b..1caf3fbe24bf 100644
--- a/lib/crypto/Kconfig
+++ b/lib/crypto/Kconfig
@@ -184,6 +184,13 @@ config CRYPTO_LIB_SHA512_ARCH
default y if SPARC64
default y if X86_64
+config CRYPTO_LIB_SHA3
+ tristate
+ help
+ The SHA3 library functions.
+ Select this if your module uses any of these functions from
+ <crypto/sha3.h>.
+
config CRYPTO_LIB_SM3
tristate
diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile
index bded351aeace..b7fa51bfeebb 100644
--- a/lib/crypto/Makefile
+++ b/lib/crypto/Makefile
@@ -268,6 +268,12 @@ endif # CONFIG_CRYPTO_LIB_SHA512_ARCH
################################################################################
+#obj-$(CONFIG_CRYPTO_LIB_SHA3) += libsha3.o
+#libsha3-y := sha3.o
+obj-$(CONFIG_CRYPTO_SHA3) += sha3.o
+
+################################################################################
+
obj-$(CONFIG_MPILIB) += mpi/
obj-$(CONFIG_CRYPTO_SELFTESTS_FULL) += simd.o
diff --git a/lib/crypto/sha3.c b/lib/crypto/sha3.c
new file mode 100644
index 000000000000..5f847a5eecdc
--- /dev/null
+++ b/lib/crypto/sha3.c
@@ -0,0 +1,511 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Cryptographic API.
+ *
+ * SHA-3, as specified in
+ * https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
+ *
+ * SHA-3 code by Jeff Garzik <jeff@garzik.org>
+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
+ * David Howells <dhowells@redhat.com>
+ *
+ * See also Documentation/crypto/sha3.rst
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <crypto/sha3.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/unaligned.h>
+
+/*
+ * On some 32-bit architectures, such as h8300, GCC ends up using over 1 KB of
+ * stack if the round calculation gets inlined into the loop in
+ * sha3_keccakf_rounds_generic(). On the other hand, on 64-bit architectures
+ * with plenty of [64-bit wide] general purpose registers, not inlining it
+ * severely hurts performance. So let's use 64-bitness as a heuristic to
+ * decide whether to inline or not.
+ */
+#ifdef CONFIG_64BIT
+#define SHA3_INLINE inline
+#else
+#define SHA3_INLINE noinline
+#endif
+
+#define SHA3_KECCAK_ROUNDS 24
+
+static const u64 sha3_keccakf_rndc[24] = {
+ 0x0000000000000001ULL, 0x0000000000008082ULL, 0x800000000000808aULL,
+ 0x8000000080008000ULL, 0x000000000000808bULL, 0x0000000080000001ULL,
+ 0x8000000080008081ULL, 0x8000000000008009ULL, 0x000000000000008aULL,
+ 0x0000000000000088ULL, 0x0000000080008009ULL, 0x000000008000000aULL,
+ 0x000000008000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL,
+ 0x8000000000008003ULL, 0x8000000000008002ULL, 0x8000000000000080ULL,
+ 0x000000000000800aULL, 0x800000008000000aULL, 0x8000000080008081ULL,
+ 0x8000000000008080ULL, 0x0000000080000001ULL, 0x8000000080008008ULL
+};
+
+/*
+ * Perform a single round of Keccak mixing.
+ */
+static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_state *state)
+{
+ u64 *st = state->st;
+ u64 t[5], tt, bc[5];
+
+ /* Theta */
+ bc[0] = st[0] ^ st[5] ^ st[10] ^ st[15] ^ st[20];
+ bc[1] = st[1] ^ st[6] ^ st[11] ^ st[16] ^ st[21];
+ bc[2] = st[2] ^ st[7] ^ st[12] ^ st[17] ^ st[22];
+ bc[3] = st[3] ^ st[8] ^ st[13] ^ st[18] ^ st[23];
+ bc[4] = st[4] ^ st[9] ^ st[14] ^ st[19] ^ st[24];
+
+ t[0] = bc[4] ^ rol64(bc[1], 1);
+ t[1] = bc[0] ^ rol64(bc[2], 1);
+ t[2] = bc[1] ^ rol64(bc[3], 1);
+ t[3] = bc[2] ^ rol64(bc[4], 1);
+ t[4] = bc[3] ^ rol64(bc[0], 1);
+
+ st[0] ^= t[0];
+
+ /* Rho Pi */
+ tt = st[1];
+ st[ 1] = rol64(st[ 6] ^ t[1], 44);
+ st[ 6] = rol64(st[ 9] ^ t[4], 20);
+ st[ 9] = rol64(st[22] ^ t[2], 61);
+ st[22] = rol64(st[14] ^ t[4], 39);
+ st[14] = rol64(st[20] ^ t[0], 18);
+ st[20] = rol64(st[ 2] ^ t[2], 62);
+ st[ 2] = rol64(st[12] ^ t[2], 43);
+ st[12] = rol64(st[13] ^ t[3], 25);
+ st[13] = rol64(st[19] ^ t[4], 8);
+ st[19] = rol64(st[23] ^ t[3], 56);
+ st[23] = rol64(st[15] ^ t[0], 41);
+ st[15] = rol64(st[ 4] ^ t[4], 27);
+ st[ 4] = rol64(st[24] ^ t[4], 14);
+ st[24] = rol64(st[21] ^ t[1], 2);
+ st[21] = rol64(st[ 8] ^ t[3], 55);
+ st[ 8] = rol64(st[16] ^ t[1], 45);
+ st[16] = rol64(st[ 5] ^ t[0], 36);
+ st[ 5] = rol64(st[ 3] ^ t[3], 28);
+ st[ 3] = rol64(st[18] ^ t[3], 21);
+ st[18] = rol64(st[17] ^ t[2], 15);
+ st[17] = rol64(st[11] ^ t[1], 10);
+ st[11] = rol64(st[ 7] ^ t[2], 6);
+ st[ 7] = rol64(st[10] ^ t[0], 3);
+ st[10] = rol64( tt ^ t[1], 1);
+
+ /* Chi */
+ bc[ 0] = ~st[ 1] & st[ 2];
+ bc[ 1] = ~st[ 2] & st[ 3];
+ bc[ 2] = ~st[ 3] & st[ 4];
+ bc[ 3] = ~st[ 4] & st[ 0];
+ bc[ 4] = ~st[ 0] & st[ 1];
+ st[ 0] ^= bc[ 0];
+ st[ 1] ^= bc[ 1];
+ st[ 2] ^= bc[ 2];
+ st[ 3] ^= bc[ 3];
+ st[ 4] ^= bc[ 4];
+
+ bc[ 0] = ~st[ 6] & st[ 7];
+ bc[ 1] = ~st[ 7] & st[ 8];
+ bc[ 2] = ~st[ 8] & st[ 9];
+ bc[ 3] = ~st[ 9] & st[ 5];
+ bc[ 4] = ~st[ 5] & st[ 6];
+ st[ 5] ^= bc[ 0];
+ st[ 6] ^= bc[ 1];
+ st[ 7] ^= bc[ 2];
+ st[ 8] ^= bc[ 3];
+ st[ 9] ^= bc[ 4];
+
+ bc[ 0] = ~st[11] & st[12];
+ bc[ 1] = ~st[12] & st[13];
+ bc[ 2] = ~st[13] & st[14];
+ bc[ 3] = ~st[14] & st[10];
+ bc[ 4] = ~st[10] & st[11];
+ st[10] ^= bc[ 0];
+ st[11] ^= bc[ 1];
+ st[12] ^= bc[ 2];
+ st[13] ^= bc[ 3];
+ st[14] ^= bc[ 4];
+
+ bc[ 0] = ~st[16] & st[17];
+ bc[ 1] = ~st[17] & st[18];
+ bc[ 2] = ~st[18] & st[19];
+ bc[ 3] = ~st[19] & st[15];
+ bc[ 4] = ~st[15] & st[16];
+ st[15] ^= bc[ 0];
+ st[16] ^= bc[ 1];
+ st[17] ^= bc[ 2];
+ st[18] ^= bc[ 3];
+ st[19] ^= bc[ 4];
+
+ bc[ 0] = ~st[21] & st[22];
+ bc[ 1] = ~st[22] & st[23];
+ bc[ 2] = ~st[23] & st[24];
+ bc[ 3] = ~st[24] & st[20];
+ bc[ 4] = ~st[20] & st[21];
+ st[20] ^= bc[ 0];
+ st[21] ^= bc[ 1];
+ st[22] ^= bc[ 2];
+ st[23] ^= bc[ 3];
+ st[24] ^= bc[ 4];
+}
+
+static void sha3_keccakf_rounds_generic(struct sha3_state *state)
+{
+ for (int round = 0; round < SHA3_KECCAK_ROUNDS; round++) {
+ sha3_keccakf_one_round_generic(state);
+ /* Iota */
+ state->st[0] ^= sha3_keccakf_rndc[round];
+ }
+}
+
+/*
+ * Byteswap the state buckets to CPU-endian if we're not on a little-endian
+ * machine for the duration of the Keccak mixing function. Note that these
+ * loops are no-ops on LE machines and will be optimised away.
+ */
+static void sha3_keccakf_generic(struct sha3_state *state)
+{
+ for (int i = 0; i < ARRAY_SIZE(state->st); i++)
+ cpu_to_le64s(&state->st[i]);
+
+ sha3_keccakf_rounds_generic(state);
+
+ for (int i = 0; i < ARRAY_SIZE(state->st); i++)
+ le64_to_cpus(&state->st[i]);
+}
+
+static void sha3_absorb_block_generic(struct sha3_ctx *ctx, const u8 *data)
+{
+ struct sha3_state *state = &ctx->state;
+ size_t bsize = ctx->block_size;
+
+ for (size_t i = 0; i < bsize / 8; i++)
+ state->st[i] ^= get_unaligned((u64 *)(data + 8 * i));
+ sha3_keccakf_generic(state);
+}
+
+/*
+ * Perform rounds of XOR'ing whole blocks of data into the state buffer and
+ * then performing a keccak mix step.
+ */
+static void sha3_absorb_blocks_generic(struct sha3_ctx *ctx,
+ const u8 *data, size_t nblocks)
+{
+ do {
+ sha3_absorb_block_generic(ctx, data);
+ data += ctx->block_size;
+ } while (--nblocks);
+}
+
+#ifdef CONFIG_CRYPTO_LIB_SHA3_ARCH
+#include "sha3.h" /* $(SRCARCH)/sha3.h */
+#else
+#define sha3_keccakf sha3_keccakf_generic
+#define sha3_absorb_blocks sha3_absorb_blocks_generic
+#endif
+
+/*
+ * XOR in partial data that's insufficient to fill a whole block.
+ */
+static void sha3_absorb_xorle(struct sha3_ctx *ctx, const u8 *data,
+ size_t partial, size_t len)
+{
+ u8 *buf = (u8 *)ctx->state.st;
+
+ buf += partial;
+ for (size_t i = 0; i < len; i++)
+ *buf++ ^= *data++;
+}
+
+/**
+ * sha3_update() - Update a SHA3 context of any type with message data
+ * @ctx: the context to update; must have been initialized
+ * @data: the message data
+ * @len: the data length in bytes
+ *
+ * This can be called any number of times to perform the "keccak sponge
+ * absorbing" phase.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void sha3_update(struct sha3_ctx *ctx, const u8 *data, size_t len)
+{
+ size_t absorb_offset = ctx->absorb_offset;
+ size_t bsize = ctx->block_size;
+
+ WARN_ON_ONCE(ctx->end_marked);
+
+ if (absorb_offset && absorb_offset + len >= bsize) {
+ sha3_absorb_xorle(ctx, data, absorb_offset, bsize - absorb_offset);
+ len -= bsize - absorb_offset;
+ data += bsize - absorb_offset;
+ sha3_keccakf(&ctx->state);
+ ctx->absorb_offset = 0;
+ }
+
+ if (len >= bsize) {
+ size_t nblocks = len / bsize;
+
+ sha3_absorb_blocks(ctx, data, nblocks);
+ data += nblocks * bsize;
+ len -= nblocks * bsize;
+ }
+
+ if (len) {
+ sha3_absorb_xorle(ctx, data, ctx->absorb_offset, len);
+ ctx->absorb_offset += len;
+ }
+}
+EXPORT_SYMBOL_GPL(sha3_update);
+
+/**
+ * sha3_squeeze() - Finalize a SHA3 digest of any type and extract the digest
+ * @ctx: the context to finalize; must have been initialized
+ * @out: Where to write the resulting message digest
+ * @out_size: The amount of digest to extract to @out
+ *
+ * Finish the computation of a SHA3 message digest of any type and perform the
+ * "Keccak sponge squeezing" phase. @out_size amount of digest is written to
+ * @out buffer.
+ *
+ * This may be called multiple times to extract continuations of the digest.
+ * Note that, for example, two consecutive 16-byte squeezes laid end-to-end
+ * will yield the same as one 32-byte squeeze.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void sha3_squeeze(struct sha3_ctx *ctx, u8 *out, size_t out_size)
+{
+ size_t squeeze_offset = ctx->squeeze_offset;
+ size_t bsize = ctx->block_size;
+ u8 *p = (u8 *)ctx->state.st, end_marker = 0x80;
+
+ if (!ctx->end_marked) {
+ sha3_absorb_xorle(ctx, &ctx->padding, ctx->absorb_offset, 1);
+ sha3_absorb_xorle(ctx, &end_marker, bsize - 1, 1);
+ ctx->end_marked = true;
+ }
+
+ for (;;) {
+ if (squeeze_offset == 0)
+ sha3_keccakf(&ctx->state);
+
+ size_t part = umin(out_size, bsize - squeeze_offset);
+
+ if (part > 0) {
+ memcpy(out, p + squeeze_offset, part);
+ out_size -= part;
+ out += part;
+ squeeze_offset += part;
+ }
+ if (!out_size)
+ break;
+ if (squeeze_offset >= bsize)
+ squeeze_offset = 0;
+ }
+
+ ctx->squeeze_offset = squeeze_offset;
+}
+EXPORT_SYMBOL_GPL(sha3_squeeze);
+
+/**
+ * sha3_224() - Convenience wrapper to digest a simple buffer as SHA3-224
+ * @in: The data to be digested
+ * @in_len: The amount of data to be digested in bytes
+ * @out: The buffer into which the digest will be stored (size not checked)
+ *
+ * Convenience wrapper to initialise a SHA3 context for SHA-224, add the input
+ * data to it, finalise it, extract 28 bytes of digest and clear the context.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void sha3_224(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE])
+{
+ struct sha3_224_ctx ctx;
+
+ sha3_224_init(&ctx);
+ sha3_224_update(&ctx, in, in_len);
+ sha3_224_final(&ctx, out);
+}
+EXPORT_SYMBOL(sha3_224);
+
+/**
+ * sha3_256() - Convenience wrapper to digest a simple buffer as SHA3-256
+ * @in: The data to be digested
+ * @in_len: The amount of data to be digested in bytes
+ * @out: The buffer into which the digest will be stored (size not checked)
+ *
+ * Convenience wrapper to initialise a SHA3 context for SHA-256, add the input
+ * data to it, finalise it, extract 32 bytes of digest and clear the context.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void sha3_256(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE])
+{
+ struct sha3_256_ctx ctx;
+
+ sha3_256_init(&ctx);
+ sha3_256_update(&ctx, in, in_len);
+ sha3_256_final(&ctx, out);
+}
+EXPORT_SYMBOL(sha3_256);
+
+/**
+ * sha3_384() - Convenience wrapper to digest a simple buffer as SHA3-384
+ * @in: The data to be digested
+ * @in_len: The amount of data to be digested in bytes
+ * @out: The buffer into which the digest will be stored (size not checked)
+ *
+ * Convenience wrapper to initialise a SHA3 context for SHA-384, add the input
+ * data to it, finalise it, extract 48 bytes of digest and clear the context.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void sha3_384(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE])
+{
+ struct sha3_384_ctx ctx;
+
+ sha3_384_init(&ctx);
+ sha3_384_update(&ctx, in, in_len);
+ sha3_384_final(&ctx, out);
+}
+EXPORT_SYMBOL(sha3_384);
+
+/**
+ * sha3_512() - Convenience wrapper to digest a simple buffer as SHA3-512
+ * @in: The data to be digested in bytes
+ * @in_len: The amount of data to be digested in bytes
+ * @out: The buffer into which the digest will be stored (size not checked)
+ *
+ * Convenience wrapper to initialise a SHA3 context for SHA-512, add the input
+ * data to it, finalise it, extract 64 bytes of digest and clear the context.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void sha3_512(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE])
+{
+ struct sha3_512_ctx ctx;
+
+ sha3_512_init(&ctx);
+ sha3_512_update(&ctx, in, in_len);
+ sha3_512_final(&ctx, out);
+}
+EXPORT_SYMBOL(sha3_512);
+
+/**
+ * shake128() - Convenience wrapper to apply SHAKE128 to a simple buffer
+ * @in: The input data to be used
+ * @in_len: The amount of input data in bytes
+ * @out: The buffer in which to store the output
+ * @out_len: The amount of output to store in bytes (variable length)
+ *
+ * Convenience wrapper to initialise a SHA3 context for SHAKE128, add the input
+ * data to it, finalise it, extract the requested amount of output and clear
+ * the context.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void shake128(const u8 *in, size_t in_len, u8 *out, size_t out_len)
+{
+ struct shake128_ctx ctx;
+
+ shake128_init(&ctx);
+ shake128_update(&ctx, in, in_len);
+ shake128_squeeze(&ctx, out, out_len);
+ shake128_clear(&ctx);
+}
+EXPORT_SYMBOL(shake128);
+
+/**
+ * shake256() - Convenience wrapper to apply SHAKE256 to a simple buffer
+ * @in: The input data to be used
+ * @in_len: The amount of input data in bytes
+ * @out: The buffer in which to store the output
+ * @out_len: The amount of output to store in bytes (variable length)
+ *
+ * Convenience wrapper to initialise a SHA3 context for SHAKE128, add the input
+ * data to it, finalise it, extract the requested amount of output and clear
+ * the context.
+ *
+ * Context: May use the FPU/Vector unit registers.
+ */
+void shake256(const u8 *in, size_t in_len, u8 *out, size_t out_len)
+{
+ struct shake256_ctx ctx;
+
+ shake256_init(&ctx);
+ shake256_update(&ctx, in, in_len);
+ shake256_squeeze(&ctx, out, out_len);
+ shake256_clear(&ctx);
+}
+EXPORT_SYMBOL(shake256);
+
+/*
+ * Do a quick test using SHAKE256 and a 200 byte digest.
+ */
+static const u8 sha3_sample[] __initconst =
+ "The quick red fox jumped over the lazy brown dog!\n"
+ "The quick red fox jumped over the lazy brown dog!\n"
+ "The quick red fox jumped over the lazy brown dog!\n"
+ "The quick red fox jumped over the lazy brown dog!\n";
+
+static const u8 sha3_sample_shake256_200[] __initconst = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0xab, 0x06, 0xd4, 0xf9, 0x8b, 0xfd, 0xb2, 0xc4, 0xfe, 0xf1, 0xcc, 0xe2,
+ 0x40, 0x45, 0xdd, 0x15, 0xcb, 0xdd, 0x02, 0x8d, 0xb7, 0x9f, 0x1e, 0x67,
+ 0xd6, 0x7f, 0x98, 0x5e, 0x1b, 0x19, 0xf8, 0x01, 0x43, 0x82, 0xcb, 0xd8,
+ 0x5d, 0x21, 0x64, 0xa8, 0x80, 0xc9, 0x22, 0xe5, 0x07, 0xaf, 0xe2, 0x5d,
+ 0xcd, 0xc6, 0x23, 0x36, 0x2b, 0xc7, 0xc7, 0x7d, 0x09, 0x9d, 0x68, 0x05,
+ 0xe4, 0x62, 0x63, 0x1b, 0x67, 0xbc, 0xf8, 0x95, 0x07, 0xd2, 0xe4, 0xd0,
+ 0xba, 0xa2, 0x67, 0xf5, 0xe3, 0x15, 0xbc, 0x85, 0xa1, 0x50, 0xd6, 0x6f,
+ 0x6f, 0xd4, 0x54, 0x4c, 0x3f, 0x4f, 0xe5, 0x1f, 0xb7, 0x00, 0x27, 0xfc,
+ 0x15, 0x33, 0xc2, 0xf9, 0xb3, 0x4b, 0x9e, 0x81, 0xe5, 0x96, 0xbe, 0x05,
+ 0x6c, 0xac, 0xf9, 0x9f, 0x65, 0x36, 0xbb, 0x11, 0x47, 0x6d, 0xf6, 0x8f,
+ 0x9f, 0xa2, 0x77, 0x37, 0x3b, 0x18, 0x77, 0xcf, 0x65, 0xc5, 0xa1, 0x7e,
+ 0x2c, 0x0e, 0x71, 0xf0, 0x4d, 0x18, 0x67, 0xb9, 0xc4, 0x8c, 0x64, 0x3b,
+ 0x4b, 0x45, 0xea, 0x16, 0xb2, 0x4a, 0xc5, 0xf5, 0x85, 0xdc, 0xd2, 0xd9,
+ 0x13, 0x77, 0xb3, 0x19, 0xd9, 0x8c, 0x9f, 0x28, 0xe7, 0x64, 0x91, 0x0f,
+ 0x6f, 0x32, 0xbf, 0xa8, 0xa8, 0xa3, 0xff, 0x99, 0x0e, 0x0b, 0x62, 0x50,
+ 0xf8, 0x3a, 0xc2, 0xf5, 0x98, 0x21, 0xeb, 0x9d, 0xe8, 0x45, 0xf4, 0x46,
+ 0x1e, 0x8b, 0xbd, 0x10, 0x59, 0x2c, 0x87, 0xe2,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static int __init sha3_mod_init(void)
+{
+#define out_len 200
+ u8 out[8 + out_len + 8] = {};
+
+#ifdef sha3_mod_init_arch
+ sha3_mod_init_arch();
+#endif
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(sha3_sample_shake256_200));
+
+ shake256(sha3_sample, sizeof(sha3_sample) - 1, out + 8, out_len);
+
+ if (memcmp(out, sha3_sample_shake256_200,
+ sizeof(sha3_sample_shake256_200)) != 0) {
+ pr_err("SHAKE256(200) failed\n");
+ for (size_t i = 0; i < out_len;) {
+ size_t part = min(out_len - i, 32);
+
+ pr_err("%*phN\n", (int)part, out + i);
+ i += part;
+ }
+ return -EBADMSG;
+ }
+ return 0;
+}
+subsys_initcall(sha3_mod_init);
+
+static void __exit sha3_mod_exit(void)
+{
+}
+module_exit(sha3_mod_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("SHA-3 Secure Hash Algorithm");
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 04/17] lib/crypto: Move the SHA3 Iota transform into the single round function
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (2 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 03/17] lib/crypto: Add SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256 David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 05/17] lib/crypto: Add SHA3 kunit tests David Howells
` (12 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
In crypto/sha3_generic.c, the keccakf() function calls keccakf_round() to
do most of the transforms, but not the Iota transform - presumably because
that is dependent on round number, whereas the Theta, Rho, Pi and Chi
transforms are not.
Note that the keccakf_round() function needs to be explicitly non-inlined
on certain architectures as gcc's produced output will (or used to) use
over 1KiB of stack space if inlined.
Now, this code was copied more or less verbatim into lib/crypto/sha3.c, so
that has the same aesthetic issue. Fix this there by passing the round
number into sha3_keccakf_one_round_generic() and doing the Iota transform
there.
crypto/sha3_generic.c is left untouched as that will be converted to use
lib/crypto/sha3.c at some point.
Suggested-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
---
lib/crypto/sha3.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/lib/crypto/sha3.c b/lib/crypto/sha3.c
index 5f847a5eecdc..2c292b0b3db3 100644
--- a/lib/crypto/sha3.c
+++ b/lib/crypto/sha3.c
@@ -48,7 +48,8 @@ static const u64 sha3_keccakf_rndc[24] = {
/*
* Perform a single round of Keccak mixing.
*/
-static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_state *state)
+static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_state *state,
+ int round)
{
u64 *st = state->st;
u64 t[5], tt, bc[5];
@@ -150,15 +151,15 @@ static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_state *state)
st[22] ^= bc[ 2];
st[23] ^= bc[ 3];
st[24] ^= bc[ 4];
+
+ /* Iota */
+ state->st[0] ^= sha3_keccakf_rndc[round];
}
static void sha3_keccakf_rounds_generic(struct sha3_state *state)
{
- for (int round = 0; round < SHA3_KECCAK_ROUNDS; round++) {
- sha3_keccakf_one_round_generic(state);
- /* Iota */
- state->st[0] ^= sha3_keccakf_rndc[round];
- }
+ for (int round = 0; round < SHA3_KECCAK_ROUNDS; round++)
+ sha3_keccakf_one_round_generic(state, round);
}
/*
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 05/17] lib/crypto: Add SHA3 kunit tests
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (3 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 04/17] lib/crypto: Move the SHA3 Iota transform into the single round function David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 06/17] crypto/jitterentropy: Use lib/crypto/sha3 David Howells
` (11 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add a SHA3 kunit test, providing the following:
(*) A simple test of each of SHA3-224, SHA3-256, SHA3-384, SHA-512,
SHAKE128 and SHAKE256.
(*) NIST 0- and 1600-bit test vectors for SHAKE128 and SHAKE256.
(*) Output tiling (multiple squeezing) tests for SHAKE256.
(*) Standard hash template test for SHA3-256.
(*) Standard benchmark test for SHA3-256.
gen-hash-testvecs.py is also modified in a number of ways:
(1) To be able to generate SHAKE* testvecs because Python's hashlib
requires the output digest size supplying for those two algorithms as
they produce arbitrary length digests.
(2) To change '-' in the algo name into '_' when generating symbols from
it.
(3) To not generate HMAC for SHA3 or SHAKE as support for that isn't
currently implemented.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
Changes
=======
v5)
- Fix gen-hash-testvecs.py to correctly handle algo names that contain a
dash.
- Fix gen-hash-testvecs.py to not generate HMAC for SHA3-* or SHAKE* as
these don't currently have HMAC variants.
- Fix algo names to be correct.
- Fix kunit module description as it now tests all SHA3 variants.
---
lib/crypto/tests/Kconfig | 11 +
lib/crypto/tests/Makefile | 1 +
lib/crypto/tests/sha3_kunit.c | 342 ++++++++++++++++++++++++++++
lib/crypto/tests/sha3_testvecs.h | 231 +++++++++++++++++++
scripts/crypto/gen-hash-testvecs.py | 10 +-
5 files changed, 593 insertions(+), 2 deletions(-)
create mode 100644 lib/crypto/tests/sha3_kunit.c
create mode 100644 lib/crypto/tests/sha3_testvecs.h
diff --git a/lib/crypto/tests/Kconfig b/lib/crypto/tests/Kconfig
index 578af717e13a..67538968edab 100644
--- a/lib/crypto/tests/Kconfig
+++ b/lib/crypto/tests/Kconfig
@@ -72,6 +72,17 @@ config CRYPTO_LIB_SHA512_KUNIT_TEST
KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions
and their corresponding HMACs.
+config CRYPTO_LIB_SHA3_KUNIT_TEST
+ tristate "KUnit tests for SHA-3" if !KUNIT_ALL_TESTS
+ depends on KUNIT
+ default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS
+ select CRYPTO_LIB_BENCHMARK_VISIBLE
+ select CRYPTO_LIB_SHA3
+ help
+ KUnit tests for the SHA3 cryptographic hash and XOF functions,
+ including SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128 and
+ SHAKE256.
+
config CRYPTO_LIB_BENCHMARK_VISIBLE
bool
diff --git a/lib/crypto/tests/Makefile b/lib/crypto/tests/Makefile
index a71fad19922b..9c61b29ac4ca 100644
--- a/lib/crypto/tests/Makefile
+++ b/lib/crypto/tests/Makefile
@@ -7,3 +7,4 @@ obj-$(CONFIG_CRYPTO_LIB_POLY1305_KUNIT_TEST) += poly1305_kunit.o
obj-$(CONFIG_CRYPTO_LIB_SHA1_KUNIT_TEST) += sha1_kunit.o
obj-$(CONFIG_CRYPTO_LIB_SHA256_KUNIT_TEST) += sha224_kunit.o sha256_kunit.o
obj-$(CONFIG_CRYPTO_LIB_SHA512_KUNIT_TEST) += sha384_kunit.o sha512_kunit.o
+obj-$(CONFIG_CRYPTO_LIB_SHA3_KUNIT_TEST) += sha3_kunit.o
diff --git a/lib/crypto/tests/sha3_kunit.c b/lib/crypto/tests/sha3_kunit.c
new file mode 100644
index 000000000000..032fa3950afe
--- /dev/null
+++ b/lib/crypto/tests/sha3_kunit.c
@@ -0,0 +1,342 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2025 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ */
+#include <crypto/sha3.h>
+#include "sha3_testvecs.h"
+
+#define HASH sha3_256
+#define HASH_CTX sha3_256_ctx
+#define HASH_SIZE SHA3_256_DIGEST_SIZE
+#define HASH_INIT sha3_256_init
+#define HASH_UPDATE sha3_256_update
+#define HASH_FINAL sha3_256_final
+#include "hash-test-template.h"
+
+/*
+ * Sample message and the output generated for various algorithms by passing it
+ * into "openssl sha3-224" etc..
+ */
+static const u8 test_sha3_sample[] =
+ "The quick red fox jumped over the lazy brown dog!\n"
+ "The quick red fox jumped over the lazy brown dog!\n"
+ "The quick red fox jumped over the lazy brown dog!\n"
+ "The quick red fox jumped over the lazy brown dog!\n";
+
+static const u8 test_sha3_224[8 + SHA3_224_DIGEST_SIZE + 8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0xd6, 0xe8, 0xd8, 0x80, 0xfa, 0x42, 0x80, 0x70,
+ 0x7e, 0x7f, 0xd7, 0xd2, 0xd7, 0x7a, 0x35, 0x65,
+ 0xf0, 0x0b, 0x4f, 0x9f, 0x2a, 0x33, 0xca, 0x0a,
+ 0xef, 0xa6, 0x4c, 0xb8,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static const u8 test_sha3_256[8 + SHA3_256_DIGEST_SIZE + 8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0xdb, 0x3b, 0xb0, 0xb8, 0x8d, 0x15, 0x78, 0xe5,
+ 0x78, 0x76, 0x8e, 0x39, 0x7e, 0x89, 0x86, 0xb9,
+ 0x14, 0x3a, 0x1e, 0xe7, 0x96, 0x7c, 0xf3, 0x25,
+ 0x70, 0xbd, 0xc3, 0xa9, 0xae, 0x63, 0x71, 0x1d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static const u8 test_sha3_384[8 + SHA3_384_DIGEST_SIZE + 8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0x2d, 0x4b, 0x29, 0x85, 0x19, 0x94, 0xaa, 0x31,
+ 0x9b, 0x04, 0x9d, 0x6e, 0x79, 0x66, 0xc7, 0x56,
+ 0x8a, 0x2e, 0x99, 0x84, 0x06, 0xcf, 0x10, 0x2d,
+ 0xec, 0xf0, 0x03, 0x04, 0x1f, 0xd5, 0x99, 0x63,
+ 0x2f, 0xc3, 0x2b, 0x0d, 0xd9, 0x45, 0xf7, 0xbb,
+ 0x0a, 0xc3, 0x46, 0xab, 0xfe, 0x4d, 0x94, 0xc2,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static const u8 test_sha3_512[8 + SHA3_512_DIGEST_SIZE + 8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0xdd, 0x71, 0x3b, 0x44, 0xb6, 0x6c, 0xd7, 0x78,
+ 0xe7, 0x93, 0xa1, 0x4c, 0xd7, 0x24, 0x16, 0xf1,
+ 0xfd, 0xa2, 0x82, 0x4e, 0xed, 0x59, 0xe9, 0x83,
+ 0x15, 0x38, 0x89, 0x7d, 0x39, 0x17, 0x0c, 0xb2,
+ 0xcf, 0x12, 0x80, 0x78, 0xa1, 0x78, 0x41, 0xeb,
+ 0xed, 0x21, 0x4c, 0xa4, 0x4a, 0x5f, 0x30, 0x1a,
+ 0x70, 0x98, 0x4f, 0x14, 0xa2, 0xd1, 0x64, 0x1b,
+ 0xc2, 0x0a, 0xff, 0x3b, 0xe8, 0x26, 0x41, 0x8f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static const u8 test_shake128[8 + SHAKE128_DEFAULT_SIZE + 8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0x41, 0xd6, 0xb8, 0x9c, 0xf8, 0xe8, 0x54, 0xf2,
+ 0x5c, 0xde, 0x51, 0x12, 0xaf, 0x9e, 0x0d, 0x91,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static const u8 test_shake256[8 + SHAKE256_DEFAULT_SIZE + 8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-before guard */
+ 0xab, 0x06, 0xd4, 0xf9, 0x8b, 0xfd, 0xb2, 0xc4,
+ 0xfe, 0xf1, 0xcc, 0xe2, 0x40, 0x45, 0xdd, 0x15,
+ 0xcb, 0xdd, 0x02, 0x8d, 0xb7, 0x9f, 0x1e, 0x67,
+ 0xd6, 0x7f, 0x98, 0x5e, 0x1b, 0x19, 0xf8, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Write-after guard */
+};
+
+static void test_sha3_224_basic(struct kunit *test)
+{
+ u8 out[8 + SHA3_224_DIGEST_SIZE + 8];
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(test_sha3_224));
+
+ memset(out, 0, sizeof(out));
+ sha3_224(test_sha3_sample, sizeof(test_sha3_sample) - 1, out + 8);
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_sha3_224, sizeof(test_sha3_224),
+ "SHA3-224 gives wrong output");
+}
+
+static void test_sha3_256_basic(struct kunit *test)
+{
+ u8 out[8 + SHA3_256_DIGEST_SIZE + 8];
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(test_sha3_256));
+
+ memset(out, 0, sizeof(out));
+ sha3_256(test_sha3_sample, sizeof(test_sha3_sample) - 1, out + 8);
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_sha3_256, sizeof(test_sha3_256),
+ "SHA3-256 gives wrong output");
+}
+
+static void test_sha3_384_basic(struct kunit *test)
+{
+ u8 out[8 + SHA3_384_DIGEST_SIZE + 8];
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(test_sha3_384));
+
+ memset(out, 0, sizeof(out));
+ sha3_384(test_sha3_sample, sizeof(test_sha3_sample) - 1, out + 8);
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_sha3_384, sizeof(test_sha3_384),
+ "SHA3-384 gives wrong output");
+}
+
+static void test_sha3_512_basic(struct kunit *test)
+{
+ u8 out[8 + SHA3_512_DIGEST_SIZE + 8];
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(test_sha3_512));
+
+ memset(out, 0, sizeof(out));
+ sha3_512(test_sha3_sample, sizeof(test_sha3_sample) - 1, out + 8);
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_sha3_512, sizeof(test_sha3_512),
+ "SHA3-512 gives wrong output");
+}
+
+static void test_shake128_basic(struct kunit *test)
+{
+ u8 out[8 + SHAKE128_DEFAULT_SIZE + 8];
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(test_shake128));
+
+ memset(out, 0, sizeof(out));
+ shake128(test_sha3_sample, sizeof(test_sha3_sample) - 1,
+ out + 8, sizeof(out) - 16);
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake128, sizeof(test_shake128),
+ "SHAKE128 gives wrong output");
+}
+
+static void test_shake256_basic(struct kunit *test)
+{
+ u8 out[8 + SHAKE256_DEFAULT_SIZE + 8];
+
+ BUILD_BUG_ON(sizeof(out) != sizeof(test_shake256));
+
+ memset(out, 0, sizeof(out));
+ shake256(test_sha3_sample, sizeof(test_sha3_sample) - 1,
+ out + 8, sizeof(out) - 16);
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake256, sizeof(test_shake256),
+ "SHAKE256 gives wrong output");
+}
+
+/*
+ * Usable NIST tests.
+ *
+ * From: https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/example-values
+ */
+static const u8 test_nist_1600_sample[] = {
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3,
+ 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3, 0xa3
+};
+
+static const u8 test_shake128_nist_0[] = {
+ 0x7f, 0x9c, 0x2b, 0xa4, 0xe8, 0x8f, 0x82, 0x7d,
+ 0x61, 0x60, 0x45, 0x50, 0x76, 0x05, 0x85, 0x3e
+};
+
+static const u8 test_shake128_nist_1600[] = {
+ 0x13, 0x1a, 0xb8, 0xd2, 0xb5, 0x94, 0x94, 0x6b,
+ 0x9c, 0x81, 0x33, 0x3f, 0x9b, 0xb6, 0xe0, 0xce,
+};
+
+static const u8 test_shake256_nist_0[] = {
+ 0x46, 0xb9, 0xdd, 0x2b, 0x0b, 0xa8, 0x8d, 0x13,
+ 0x23, 0x3b, 0x3f, 0xeb, 0x74, 0x3e, 0xeb, 0x24,
+ 0x3f, 0xcd, 0x52, 0xea, 0x62, 0xb8, 0x1b, 0x82,
+ 0xb5, 0x0c, 0x27, 0x64, 0x6e, 0xd5, 0x76, 0x2f
+};
+
+static const u8 test_shake256_nist_1600[] = {
+ 0xcd, 0x8a, 0x92, 0x0e, 0xd1, 0x41, 0xaa, 0x04,
+ 0x07, 0xa2, 0x2d, 0x59, 0x28, 0x86, 0x52, 0xe9,
+ 0xd9, 0xf1, 0xa7, 0xee, 0x0c, 0x1e, 0x7c, 0x1c,
+ 0xa6, 0x99, 0x42, 0x4d, 0xa8, 0x4a, 0x90, 0x4d,
+};
+
+static void test_shake128_nist(struct kunit *test)
+{
+ u8 out[SHAKE128_DEFAULT_SIZE];
+
+ shake128("", 0, out, sizeof(out));
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake128_nist_0, sizeof(out),
+ "SHAKE128 gives wrong output for NIST.0");
+
+ shake128(test_nist_1600_sample, sizeof(test_nist_1600_sample),
+ out, sizeof(out));
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake128_nist_1600, sizeof(out),
+ "SHAKE128 gives wrong output for NIST.1600");
+}
+
+static void test_shake256_nist(struct kunit *test)
+{
+ u8 out[SHAKE256_DEFAULT_SIZE];
+
+ shake256("", 0, out, sizeof(out));
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake256_nist_0, sizeof(out),
+ "SHAKE256 gives wrong output for NIST.0");
+
+ shake256(test_nist_1600_sample, sizeof(test_nist_1600_sample),
+ out, sizeof(out));
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake256_nist_1600, sizeof(out),
+ "SHAKE256 gives wrong output for NIST.1600");
+}
+
+/*
+ * Output tiling test of SHAKE256; equal output tiles barring the last. A
+ * series of squeezings of the same context should, if laid end-to-end, match a
+ * single squeezing of the combined size.
+ */
+static void test_shake256_tiling(struct kunit *test)
+{
+ struct shake256_ctx ctx;
+ u8 out[8 + SHA3_512_DIGEST_SIZE + 8];
+
+ for (int tile_size = 1; tile_size < SHAKE256_DEFAULT_SIZE; tile_size++) {
+ int left = SHAKE256_DEFAULT_SIZE;
+ u8 *p = out + 8;
+
+ memset(out, 0, sizeof(out));
+ shake256_init(&ctx);
+ shake256_update(&ctx, test_sha3_sample, sizeof(test_sha3_sample) - 1);
+ while (left > 0) {
+ int part = umin(tile_size, left);
+
+ shake256_squeeze(&ctx, p, part);
+ p += part;
+ left -= part;
+ }
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake256, sizeof(test_shake256),
+ "SHAKE tile %u gives wrong output", tile_size);
+ }
+}
+
+/*
+ * Output tiling test of SHAKE256; output tiles getting gradually smaller and
+ * then cycling round to medium sized ones. A series of squeezings of the same
+ * context should, if laid end-to-end, match a single squeezing of the combined
+ * size.
+ */
+static void test_shake256_tiling2(struct kunit *test)
+{
+ struct shake256_ctx ctx;
+ u8 out[8 + SHA3_512_DIGEST_SIZE + 8];
+
+ for (int first_tile_size = 3;
+ first_tile_size < SHAKE256_DEFAULT_SIZE;
+ first_tile_size++) {
+ int tile_size = first_tile_size;
+ int left = SHAKE256_DEFAULT_SIZE;
+ u8 *p = out + 8;
+
+ memset(out, 0, sizeof(out));
+ shake256_init(&ctx);
+ shake256_update(&ctx, test_sha3_sample, sizeof(test_sha3_sample) - 1);
+ while (left > 0) {
+ int part = umin(tile_size, left);
+
+ shake256_squeeze(&ctx, p, part);
+ p += part;
+ left -= part;
+ tile_size--;
+ if (tile_size < 1)
+ tile_size = 5;
+ }
+
+ KUNIT_ASSERT_MEMEQ_MSG(test, out, test_shake256, sizeof(test_shake256),
+ "SHAKE tile %u gives wrong output", tile_size);
+ }
+}
+
+static struct kunit_case hash_test_cases[] = {
+ KUNIT_CASE(test_sha3_224_basic),
+ KUNIT_CASE(test_sha3_256_basic),
+ KUNIT_CASE(test_sha3_384_basic),
+ KUNIT_CASE(test_sha3_512_basic),
+ KUNIT_CASE(test_shake128_basic),
+ KUNIT_CASE(test_shake256_basic),
+ KUNIT_CASE(test_shake128_nist),
+ KUNIT_CASE(test_shake256_nist),
+ KUNIT_CASE(test_shake256_tiling),
+ KUNIT_CASE(test_shake256_tiling2),
+ HASH_KUNIT_CASES,
+ KUNIT_CASE(benchmark_hash),
+ {},
+};
+
+static struct kunit_suite hash_test_suite = {
+ .name = "sha3",
+ .test_cases = hash_test_cases,
+ .suite_init = hash_suite_init,
+ .suite_exit = hash_suite_exit,
+};
+kunit_test_suite(hash_test_suite);
+
+MODULE_DESCRIPTION("KUnit tests and benchmark for SHA3");
+MODULE_LICENSE("GPL");
diff --git a/lib/crypto/tests/sha3_testvecs.h b/lib/crypto/tests/sha3_testvecs.h
new file mode 100644
index 000000000000..9c4c403cc6e0
--- /dev/null
+++ b/lib/crypto/tests/sha3_testvecs.h
@@ -0,0 +1,231 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* This file was generated by: ./scripts/crypto/gen-hash-testvecs.py sha3-256 */
+
+static const struct {
+ size_t data_len;
+ u8 digest[SHA3_256_DIGEST_SIZE];
+} hash_testvecs[] = {
+ {
+ .data_len = 0,
+ .digest = {
+ 0xa7, 0xff, 0xc6, 0xf8, 0xbf, 0x1e, 0xd7, 0x66,
+ 0x51, 0xc1, 0x47, 0x56, 0xa0, 0x61, 0xd6, 0x62,
+ 0xf5, 0x80, 0xff, 0x4d, 0xe4, 0x3b, 0x49, 0xfa,
+ 0x82, 0xd8, 0x0a, 0x4b, 0x80, 0xf8, 0x43, 0x4a,
+ },
+ },
+ {
+ .data_len = 1,
+ .digest = {
+ 0x11, 0x03, 0xe7, 0x84, 0x51, 0x50, 0x86, 0x35,
+ 0x71, 0x8a, 0x70, 0xe3, 0xc4, 0x26, 0x7b, 0x21,
+ 0x02, 0x13, 0xa0, 0x81, 0xe8, 0xe6, 0x14, 0x25,
+ 0x07, 0x34, 0xe5, 0xc5, 0x40, 0x06, 0xf2, 0x8b,
+ },
+ },
+ {
+ .data_len = 2,
+ .digest = {
+ 0x2f, 0x6f, 0x6d, 0x47, 0x48, 0x52, 0x11, 0xb9,
+ 0xe4, 0x3d, 0xc8, 0x71, 0xcf, 0xb2, 0xee, 0xae,
+ 0x5b, 0xf4, 0x12, 0x84, 0x5b, 0x1c, 0xec, 0x6c,
+ 0xc1, 0x66, 0x88, 0xaa, 0xc3, 0x40, 0xbd, 0x7e,
+ },
+ },
+ {
+ .data_len = 3,
+ .digest = {
+ 0xec, 0x02, 0xe8, 0x81, 0x4f, 0x84, 0x41, 0x69,
+ 0x06, 0xd8, 0xdc, 0x1d, 0x01, 0x78, 0xd7, 0xcb,
+ 0x39, 0xdf, 0xd3, 0x12, 0x1c, 0x99, 0xfd, 0xf3,
+ 0x5c, 0x83, 0xc9, 0xc2, 0x7a, 0x7b, 0x6a, 0x05,
+ },
+ },
+ {
+ .data_len = 16,
+ .digest = {
+ 0xff, 0x6f, 0xc3, 0x41, 0xc3, 0x5f, 0x34, 0x6d,
+ 0xa7, 0xdf, 0x3e, 0xc2, 0x8b, 0x29, 0xb6, 0xf1,
+ 0xf8, 0x67, 0xfd, 0xcd, 0xb1, 0x9f, 0x38, 0x08,
+ 0x1d, 0x8d, 0xd9, 0xc2, 0x43, 0x66, 0x18, 0x6c,
+ },
+ },
+ {
+ .data_len = 32,
+ .digest = {
+ 0xe4, 0xb1, 0x06, 0x17, 0xf8, 0x8b, 0x91, 0x95,
+ 0xe7, 0x57, 0x66, 0xac, 0x08, 0xb2, 0x03, 0x3e,
+ 0xf7, 0x84, 0x1f, 0xe3, 0x25, 0xa3, 0x11, 0xd2,
+ 0x11, 0xa4, 0x78, 0x74, 0x2a, 0x43, 0x20, 0xa5,
+ },
+ },
+ {
+ .data_len = 48,
+ .digest = {
+ 0xeb, 0x57, 0x5f, 0x20, 0xa3, 0x6b, 0xc7, 0xb4,
+ 0x66, 0x2a, 0xa0, 0x30, 0x3b, 0x52, 0x00, 0xc9,
+ 0xce, 0x6a, 0xd8, 0x1e, 0xbe, 0xed, 0xa1, 0xd1,
+ 0xbe, 0x63, 0xc7, 0xe1, 0xe2, 0x66, 0x67, 0x0c,
+ },
+ },
+ {
+ .data_len = 49,
+ .digest = {
+ 0xf0, 0x67, 0xad, 0x66, 0xbe, 0xec, 0x5a, 0xfd,
+ 0x29, 0xd2, 0x4f, 0x1d, 0xb2, 0x24, 0xb8, 0x90,
+ 0x05, 0x28, 0x0e, 0x66, 0x67, 0x74, 0x2d, 0xee,
+ 0x66, 0x25, 0x11, 0xd1, 0x76, 0xa2, 0xfc, 0x3a,
+ },
+ },
+ {
+ .data_len = 63,
+ .digest = {
+ 0x57, 0x56, 0x21, 0xb3, 0x2d, 0x2d, 0xe1, 0x9d,
+ 0xbf, 0x2c, 0x82, 0xa8, 0xad, 0x7e, 0x6c, 0x46,
+ 0xfb, 0x30, 0xeb, 0xce, 0xcf, 0xed, 0x2d, 0x65,
+ 0xe7, 0xe4, 0x96, 0x69, 0xe0, 0x48, 0xd2, 0xb6,
+ },
+ },
+ {
+ .data_len = 64,
+ .digest = {
+ 0x7b, 0xba, 0x67, 0x15, 0xe5, 0x21, 0xc4, 0x69,
+ 0xd3, 0xef, 0x5c, 0x97, 0x9f, 0x5b, 0xba, 0x9c,
+ 0xfa, 0x55, 0x64, 0xec, 0xb5, 0x37, 0x53, 0x1b,
+ 0x3f, 0x4c, 0x0a, 0xed, 0x51, 0x98, 0x2b, 0x52,
+ },
+ },
+ {
+ .data_len = 65,
+ .digest = {
+ 0x44, 0xb6, 0x6b, 0x83, 0x09, 0x83, 0x55, 0x83,
+ 0xde, 0x1f, 0xcc, 0x33, 0xef, 0xdc, 0x05, 0xbb,
+ 0x3b, 0x63, 0x76, 0x45, 0xe4, 0x8e, 0x14, 0x7a,
+ 0x2d, 0xae, 0x90, 0xce, 0x68, 0xc3, 0xa4, 0xf2,
+ },
+ },
+ {
+ .data_len = 127,
+ .digest = {
+ 0x50, 0x3e, 0x99, 0x4e, 0x28, 0x2b, 0xc9, 0xf4,
+ 0xf5, 0xeb, 0x2b, 0x16, 0x04, 0x2d, 0xf5, 0xbe,
+ 0xc0, 0x91, 0x41, 0x2a, 0x8e, 0x69, 0x5e, 0x39,
+ 0x53, 0x2c, 0xc1, 0x18, 0xa5, 0xeb, 0xd8, 0xda,
+ },
+ },
+ {
+ .data_len = 128,
+ .digest = {
+ 0x90, 0x0b, 0xa6, 0x92, 0x84, 0x30, 0xaf, 0xee,
+ 0x38, 0x59, 0x83, 0x83, 0xe9, 0xfe, 0xab, 0x86,
+ 0x79, 0x1b, 0xcd, 0xe7, 0x0a, 0x0f, 0x58, 0x53,
+ 0x36, 0xab, 0x12, 0xe1, 0x5c, 0x97, 0xc1, 0xfb,
+ },
+ },
+ {
+ .data_len = 129,
+ .digest = {
+ 0x2b, 0x52, 0x1e, 0x54, 0xbe, 0x38, 0x4c, 0x3e,
+ 0x73, 0x37, 0x18, 0xf5, 0x25, 0x2c, 0xc8, 0xc7,
+ 0xda, 0x7e, 0xb6, 0x47, 0x9d, 0xf4, 0x46, 0xce,
+ 0xfa, 0x80, 0x20, 0x6b, 0xbd, 0xfd, 0x2a, 0xd8,
+ },
+ },
+ {
+ .data_len = 256,
+ .digest = {
+ 0x45, 0xf0, 0xf5, 0x9b, 0xd9, 0x91, 0x26, 0xd5,
+ 0x91, 0x3b, 0xf8, 0x87, 0x8b, 0x34, 0x02, 0x31,
+ 0x64, 0xab, 0xf4, 0x1c, 0x6e, 0x34, 0x72, 0xdf,
+ 0x32, 0x6d, 0xe5, 0xd2, 0x67, 0x5e, 0x86, 0x93,
+ },
+ },
+ {
+ .data_len = 511,
+ .digest = {
+ 0xb3, 0xaf, 0x71, 0x64, 0xfa, 0xd4, 0xf1, 0x07,
+ 0x38, 0xef, 0x04, 0x8e, 0x89, 0xf4, 0x02, 0xd2,
+ 0xa5, 0xaf, 0x3b, 0xf5, 0x67, 0x56, 0xcf, 0xa9,
+ 0x8e, 0x43, 0xf5, 0xb5, 0xe3, 0x91, 0x8e, 0xe7,
+ },
+ },
+ {
+ .data_len = 513,
+ .digest = {
+ 0x51, 0xac, 0x0a, 0x65, 0xb7, 0x96, 0x20, 0xcf,
+ 0x88, 0xf6, 0x97, 0x35, 0x89, 0x0d, 0x31, 0x0f,
+ 0xbe, 0x17, 0xbe, 0x62, 0x03, 0x67, 0xc0, 0xee,
+ 0x4f, 0xc1, 0xe3, 0x7f, 0x6f, 0xab, 0xac, 0xb4,
+ },
+ },
+ {
+ .data_len = 1000,
+ .digest = {
+ 0x7e, 0xea, 0xa8, 0xd7, 0xde, 0x20, 0x1b, 0x58,
+ 0x24, 0xd8, 0x26, 0x40, 0x36, 0x5f, 0x3f, 0xaa,
+ 0xe5, 0x5a, 0xea, 0x98, 0x58, 0xd4, 0xd6, 0xfc,
+ 0x20, 0x4c, 0x5c, 0x4f, 0xaf, 0x56, 0xc7, 0xc3,
+ },
+ },
+ {
+ .data_len = 3333,
+ .digest = {
+ 0x61, 0xb1, 0xb1, 0x3e, 0x0e, 0x7e, 0x90, 0x3d,
+ 0x31, 0x54, 0xbd, 0xc9, 0x0d, 0x53, 0x62, 0xf1,
+ 0xcd, 0x18, 0x80, 0xf9, 0x91, 0x75, 0x41, 0xb3,
+ 0x51, 0x39, 0x57, 0xa7, 0xa8, 0x1e, 0xfb, 0xc9,
+ },
+ },
+ {
+ .data_len = 4096,
+ .digest = {
+ 0xab, 0x29, 0xda, 0x10, 0xc4, 0x11, 0x2d, 0x5c,
+ 0xd1, 0xce, 0x1c, 0x95, 0xfa, 0xc6, 0xc7, 0xb0,
+ 0x1b, 0xd1, 0xdc, 0x6f, 0xa0, 0x9d, 0x1b, 0x23,
+ 0xfb, 0x6e, 0x90, 0x97, 0xd0, 0x75, 0x44, 0x7a,
+ },
+ },
+ {
+ .data_len = 4128,
+ .digest = {
+ 0x02, 0x45, 0x95, 0xf4, 0x19, 0xb5, 0x93, 0x29,
+ 0x90, 0xf2, 0x63, 0x3f, 0x89, 0xe8, 0xa5, 0x31,
+ 0x76, 0xf2, 0x89, 0x79, 0x66, 0xd3, 0x96, 0xdf,
+ 0x33, 0xd1, 0xa6, 0x17, 0x73, 0xb1, 0xd0, 0x45,
+ },
+ },
+ {
+ .data_len = 4160,
+ .digest = {
+ 0xd1, 0x8e, 0x22, 0xea, 0x44, 0x87, 0x6e, 0x9d,
+ 0xfb, 0x36, 0x02, 0x20, 0x63, 0xb7, 0x69, 0x45,
+ 0x25, 0x41, 0x69, 0xe0, 0x9b, 0x87, 0xcf, 0xa3,
+ 0x51, 0xbb, 0xfc, 0x8d, 0xf7, 0x29, 0xa7, 0xea,
+ },
+ },
+ {
+ .data_len = 4224,
+ .digest = {
+ 0x11, 0x86, 0x7d, 0x84, 0xf9, 0x8c, 0x6e, 0xc4,
+ 0x64, 0x36, 0xc6, 0xf3, 0x42, 0x92, 0x31, 0x2b,
+ 0x1e, 0x12, 0xe6, 0x4d, 0xbe, 0xfa, 0x77, 0x3f,
+ 0x89, 0x41, 0x33, 0x58, 0x1c, 0x98, 0x16, 0x0a,
+ },
+ },
+ {
+ .data_len = 16384,
+ .digest = {
+ 0xb2, 0xba, 0x0c, 0x8c, 0x9d, 0xbb, 0x1e, 0xb0,
+ 0x03, 0xb5, 0xdf, 0x4f, 0xf5, 0x35, 0xdb, 0xec,
+ 0x60, 0xf2, 0x5b, 0xb6, 0xd0, 0x49, 0xd3, 0xed,
+ 0x55, 0xc0, 0x7a, 0xd7, 0xaf, 0xa1, 0xea, 0x53,
+ },
+ },
+};
+
+static const u8 hash_testvec_consolidated[SHA3_256_DIGEST_SIZE] = {
+ 0x3b, 0x33, 0x67, 0xf8, 0xea, 0x92, 0x78, 0x62,
+ 0xdd, 0xbe, 0x72, 0x15, 0xbd, 0x6f, 0xfa, 0xe5,
+ 0x5e, 0xab, 0x9f, 0xb1, 0xe4, 0x23, 0x7c, 0x2c,
+ 0x80, 0xcf, 0x09, 0x75, 0xf8, 0xe2, 0xfa, 0x30,
+};
diff --git a/scripts/crypto/gen-hash-testvecs.py b/scripts/crypto/gen-hash-testvecs.py
index fc063f2ee95f..cb6f6cfbedeb 100755
--- a/scripts/crypto/gen-hash-testvecs.py
+++ b/scripts/crypto/gen-hash-testvecs.py
@@ -61,6 +61,10 @@ def hash_update(ctx, data):
ctx.update(data)
def hash_final(ctx):
+ if ctx.name == "shake_128":
+ return ctx.digest(16)
+ if ctx.name == "shake_256":
+ return ctx.digest(32)
return ctx.digest()
def compute_hash(alg, data):
@@ -87,7 +91,7 @@ def print_c_struct_u8_array_field(name, value):
def alg_digest_size_const(alg):
if alg == 'blake2s':
return 'BLAKE2S_HASH_SIZE'
- return f'{alg.upper()}_DIGEST_SIZE'
+ return f'{alg.upper().replace('-', '_')}_DIGEST_SIZE'
def gen_unkeyed_testvecs(alg):
print('')
@@ -122,7 +126,7 @@ def gen_hmac_testvecs(alg):
ctx.update(mac)
print_static_u8_array_definition(
f'hmac_testvec_consolidated[{alg.upper()}_DIGEST_SIZE]',
- ctx.digest())
+ hash_final(ctx))
BLAKE2S_KEY_SIZE = 32
BLAKE2S_HASH_SIZE = 32
@@ -164,5 +168,7 @@ if alg == 'blake2s':
gen_additional_blake2s_testvecs()
elif alg == 'poly1305':
gen_additional_poly1305_testvecs()
+elif alg.startswith('sha3-') or alg.startswith('shake'):
+ pass # no HMAC
else:
gen_hmac_testvecs(alg)
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 06/17] crypto/jitterentropy: Use lib/crypto/sha3
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (4 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 05/17] lib/crypto: Add SHA3 kunit tests David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 07/17] crypto/sha3: " David Howells
` (10 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Make the jitterentropy RNG use lib/crypto/sha3 rather than crypto/sha3.
For some reason it goes absolutely wild if crypto/sha3 is reimplemented
to use lib/crypto/sha3, but it's fine if it uses lib directly.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: linux-crypto@vger.kernel.org
---
crypto/jitterentropy-kcapi.c | 100 ++++++++++-------------------------
crypto/jitterentropy.c | 7 +--
crypto/jitterentropy.h | 8 +--
3 files changed, 36 insertions(+), 79 deletions(-)
diff --git a/crypto/jitterentropy-kcapi.c b/crypto/jitterentropy-kcapi.c
index a53de7affe8d..b38118fe51cd 100644
--- a/crypto/jitterentropy-kcapi.c
+++ b/crypto/jitterentropy-kcapi.c
@@ -101,23 +101,13 @@ void jent_get_nstime(__u64 *out)
jent_raw_hires_entropy_store(tmp);
}
-int jent_hash_time(void *hash_state, __u64 time, u8 *addtl,
+int jent_hash_time(struct sha3_256_ctx *hash_state, __u64 time, u8 *addtl,
unsigned int addtl_len, __u64 hash_loop_cnt,
unsigned int stuck)
{
- struct shash_desc *hash_state_desc = (struct shash_desc *)hash_state;
- SHASH_DESC_ON_STACK(desc, hash_state_desc->tfm);
+ struct sha3_256_ctx desc;
u8 intermediary[SHA3_256_DIGEST_SIZE];
__u64 j = 0;
- int ret;
-
- desc->tfm = hash_state_desc->tfm;
-
- if (sizeof(intermediary) != crypto_shash_digestsize(desc->tfm)) {
- pr_warn_ratelimited("Unexpected digest size\n");
- return -EINVAL;
- }
- kmsan_unpoison_memory(intermediary, sizeof(intermediary));
/*
* This loop fills a buffer which is injected into the entropy pool.
@@ -130,24 +120,20 @@ int jent_hash_time(void *hash_state, __u64 time, u8 *addtl,
*
* Note, it does not matter which or how much data you inject, we are
* interested in one Keccack1600 compression operation performed with
- * the crypto_shash_final.
+ * the sha3_256_final.
*/
for (j = 0; j < hash_loop_cnt; j++) {
- ret = crypto_shash_init(desc) ?:
- crypto_shash_update(desc, intermediary,
- sizeof(intermediary)) ?:
- crypto_shash_finup(desc, addtl, addtl_len, intermediary);
- if (ret)
- goto err;
+ sha3_256_init(&desc);
+ sha3_256_update(&desc, intermediary, sizeof(intermediary));
+ sha3_256_update(&desc, addtl, addtl_len);
+ sha3_256_final(&desc, intermediary);
}
/*
* Inject the data from the previous loop into the pool. This data is
* not considered to contain any entropy, but it stirs the pool a bit.
*/
- ret = crypto_shash_update(hash_state_desc, intermediary, sizeof(intermediary));
- if (ret)
- goto err;
+ sha3_256_update(hash_state, intermediary, sizeof(intermediary));
/*
* Insert the time stamp into the hash context representing the pool.
@@ -162,30 +148,25 @@ int jent_hash_time(void *hash_state, __u64 time, u8 *addtl,
time = 0;
}
- ret = crypto_shash_update(hash_state_desc, (u8 *)&time, sizeof(__u64));
-
-err:
- shash_desc_zero(desc);
+ sha3_256_update(hash_state, (u8 *)&time, sizeof(__u64));
memzero_explicit(intermediary, sizeof(intermediary));
-
- return ret;
+ return 0;
}
-int jent_read_random_block(void *hash_state, char *dst, unsigned int dst_len)
+int jent_read_random_block(struct sha3_256_ctx *hash_state, char *dst, unsigned int dst_len)
{
- struct shash_desc *hash_state_desc = (struct shash_desc *)hash_state;
u8 jent_block[SHA3_256_DIGEST_SIZE];
+
/* Obtain data from entropy pool and re-initialize it */
- int ret = crypto_shash_final(hash_state_desc, jent_block) ?:
- crypto_shash_init(hash_state_desc) ?:
- crypto_shash_update(hash_state_desc, jent_block,
- sizeof(jent_block));
+ sha3_256_final(hash_state, jent_block);
+ sha3_256_init(hash_state);
+ sha3_256_update(hash_state, jent_block, sizeof(jent_block));
- if (!ret && dst_len)
+ if (dst_len)
memcpy(dst, jent_block, dst_len);
memzero_explicit(jent_block, sizeof(jent_block));
- return ret;
+ return 0;
}
/***************************************************************************
@@ -195,8 +176,7 @@ int jent_read_random_block(void *hash_state, char *dst, unsigned int dst_len)
struct jitterentropy {
spinlock_t jent_lock;
struct rand_data *entropy_collector;
- struct crypto_shash *tfm;
- struct shash_desc *sdesc;
+ struct sha3_256_ctx *sdesc;
};
static void jent_kcapi_cleanup(struct crypto_tfm *tfm)
@@ -205,16 +185,10 @@ static void jent_kcapi_cleanup(struct crypto_tfm *tfm)
spin_lock(&rng->jent_lock);
- if (rng->sdesc) {
- shash_desc_zero(rng->sdesc);
- kfree(rng->sdesc);
- }
+ if (rng->sdesc)
+ kfree_sensitive(rng->sdesc);
rng->sdesc = NULL;
- if (rng->tfm)
- crypto_free_shash(rng->tfm);
- rng->tfm = NULL;
-
if (rng->entropy_collector)
jent_entropy_collector_free(rng->entropy_collector);
rng->entropy_collector = NULL;
@@ -224,9 +198,8 @@ static void jent_kcapi_cleanup(struct crypto_tfm *tfm)
static int jent_kcapi_init(struct crypto_tfm *tfm)
{
struct jitterentropy *rng = crypto_tfm_ctx(tfm);
- struct crypto_shash *hash;
- struct shash_desc *sdesc;
- int size, ret = 0;
+ struct sha3_256_ctx *sdesc;
+ int ret = 0;
spin_lock_init(&rng->jent_lock);
@@ -239,22 +212,13 @@ static int jent_kcapi_init(struct crypto_tfm *tfm)
* using a fast implementation, we would need to call it more often
* as its variations are lower.
*/
- hash = crypto_alloc_shash(JENT_CONDITIONING_HASH, 0, 0);
- if (IS_ERR(hash)) {
- pr_err("Cannot allocate conditioning digest\n");
- return PTR_ERR(hash);
- }
- rng->tfm = hash;
-
- size = sizeof(struct shash_desc) + crypto_shash_descsize(hash);
- sdesc = kmalloc(size, GFP_KERNEL);
+ sdesc = kmalloc(sizeof(struct sha3_256_ctx), GFP_KERNEL);
if (!sdesc) {
ret = -ENOMEM;
goto err;
}
- sdesc->tfm = hash;
- crypto_shash_init(sdesc);
+ sha3_256_init(sdesc);
rng->sdesc = sdesc;
rng->entropy_collector =
@@ -334,23 +298,15 @@ static struct rng_alg jent_alg = {
static int __init jent_mod_init(void)
{
- SHASH_DESC_ON_STACK(desc, tfm);
- struct crypto_shash *tfm;
+ struct sha3_256_ctx desc;
int ret = 0;
jent_testing_init();
- tfm = crypto_alloc_shash(JENT_CONDITIONING_HASH, 0, 0);
- if (IS_ERR(tfm)) {
- jent_testing_exit();
- return PTR_ERR(tfm);
- }
+ sha3_256_init(&desc);
- desc->tfm = tfm;
- crypto_shash_init(desc);
- ret = jent_entropy_init(CONFIG_CRYPTO_JITTERENTROPY_OSR, 0, desc, NULL);
- shash_desc_zero(desc);
- crypto_free_shash(tfm);
+ ret = jent_entropy_init(CONFIG_CRYPTO_JITTERENTROPY_OSR, 0, &desc, NULL);
+ memzero_explicit(&desc, sizeof(desc));
if (ret) {
/* Handle permanent health test error */
if (fips_enabled)
diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c
index 3f93cdc9a7af..36701447cc85 100644
--- a/crypto/jitterentropy.c
+++ b/crypto/jitterentropy.c
@@ -68,7 +68,7 @@ struct rand_data {
* of the RNG are marked as SENSITIVE. A user must not
* access that information while the RNG executes its loops to
* calculate the next random value. */
- void *hash_state; /* SENSITIVE hash state entropy pool */
+ struct sha3_256_ctx *hash_state; /* SENSITIVE hash state entropy pool */
__u64 prev_time; /* SENSITIVE Previous time stamp */
__u64 last_delta; /* SENSITIVE stuck test */
__s64 last_delta2; /* SENSITIVE stuck test */
@@ -656,7 +656,7 @@ int jent_read_entropy(struct rand_data *ec, unsigned char *data,
struct rand_data *jent_entropy_collector_alloc(unsigned int osr,
unsigned int flags,
- void *hash_state)
+ struct sha3_256_ctx *hash_state)
{
struct rand_data *entropy_collector;
@@ -704,7 +704,8 @@ void jent_entropy_collector_free(struct rand_data *entropy_collector)
jent_zfree(entropy_collector);
}
-int jent_entropy_init(unsigned int osr, unsigned int flags, void *hash_state,
+int jent_entropy_init(unsigned int osr, unsigned int flags,
+ struct sha3_256_ctx *hash_state,
struct rand_data *p_ec)
{
/*
diff --git a/crypto/jitterentropy.h b/crypto/jitterentropy.h
index 4c5dbf2a8d8f..e4acbce79d9d 100644
--- a/crypto/jitterentropy.h
+++ b/crypto/jitterentropy.h
@@ -5,20 +5,20 @@ extern void jent_kvzfree(void *ptr, unsigned int len);
extern void *jent_zalloc(unsigned int len);
extern void jent_zfree(void *ptr);
extern void jent_get_nstime(__u64 *out);
-extern int jent_hash_time(void *hash_state, __u64 time, u8 *addtl,
+extern int jent_hash_time(struct sha3_256_ctx *hash_state, __u64 time, u8 *addtl,
unsigned int addtl_len, __u64 hash_loop_cnt,
unsigned int stuck);
-int jent_read_random_block(void *hash_state, char *dst, unsigned int dst_len);
+int jent_read_random_block(struct sha3_256_ctx *hash_state, char *dst, unsigned int dst_len);
struct rand_data;
extern int jent_entropy_init(unsigned int osr, unsigned int flags,
- void *hash_state, struct rand_data *p_ec);
+ struct sha3_256_ctx *hash_state, struct rand_data *p_ec);
extern int jent_read_entropy(struct rand_data *ec, unsigned char *data,
unsigned int len);
extern struct rand_data *jent_entropy_collector_alloc(unsigned int osr,
unsigned int flags,
- void *hash_state);
+ struct sha3_256_ctx *hash_state);
extern void jent_entropy_collector_free(struct rand_data *entropy_collector);
#ifdef CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 07/17] crypto/sha3: Use lib/crypto/sha3
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (5 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 06/17] crypto/jitterentropy: Use lib/crypto/sha3 David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 08/17] crypto/sha3: Add SHAKE128/256 support David Howells
` (9 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Switch crypto/sha3_generic.c to use lib/crypto/sha3. Note that this makes
use of the internal general API rather implementing a separate set of
init/update/finup handlers for each algorithm.
Whilst we're at it, eliminate the sha3_state struct and move the st[] state
array into the sha3_ctx struct.
Note that this also eliminates the need to set CRYPTO_AHASH_ALG_BLOCK_ONLY
as the lib/crypto/sha3.c code handles misalignment itself without the need
for a place to stash a block at the cost of a few extra bytes of state.
This may mean that HASH_MAX_STATESIZE can be reduced.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
---
Documentation/crypto/sha3.rst | 8 +-
arch/arm64/crypto/sha3-ce-glue.c | 25 ++--
crypto/sha3_generic.c | 209 ++++---------------------------
include/crypto/sha3.h | 6 +-
lib/crypto/sha3.c | 35 +++---
5 files changed, 56 insertions(+), 227 deletions(-)
diff --git a/Documentation/crypto/sha3.rst b/Documentation/crypto/sha3.rst
index 3255618ea2ec..69d375567b94 100644
--- a/Documentation/crypto/sha3.rst
+++ b/Documentation/crypto/sha3.rst
@@ -151,7 +151,7 @@ further algorithms or APIs as the engine in the same in all cases. The
algorithm APIs all wrap the common context structure::
struct sha3_ctx {
- struct sha3_state state;
+ u64 st[SHA3_STATE_SIZE / 8];
u8 block_size;
u8 padding;
u8 absorb_offset;
@@ -159,13 +159,9 @@ algorithm APIs all wrap the common context structure::
bool end_marked;
};
- struct sha3_state {
- u64 st[SHA3_STATE_SIZE / 8];
- };
-
The fields are as follows:
- * ``state.st``
+ * ``st``
An array of 25 64-bit state buckets that are used to hold the mathematical
state of the Keccak engine. Data is XOR'd onto part of this, the engine is
diff --git a/arch/arm64/crypto/sha3-ce-glue.c b/arch/arm64/crypto/sha3-ce-glue.c
index 426d8044535a..1f05cc328e11 100644
--- a/arch/arm64/crypto/sha3-ce-glue.c
+++ b/arch/arm64/crypto/sha3-ce-glue.c
@@ -28,13 +28,18 @@ MODULE_ALIAS_CRYPTO("sha3-256");
MODULE_ALIAS_CRYPTO("sha3-384");
MODULE_ALIAS_CRYPTO("sha3-512");
+static struct sha3_ctx *crypto_sha3_desc(struct shash_desc *desc)
+{
+ return shash_desc_ctx(desc);
+}
+
asmlinkage int sha3_ce_transform(u64 *st, const u8 *data, int blocks,
int md_len);
static int arm64_sha3_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
- struct sha3_state *sctx = shash_desc_ctx(desc);
+ struct sha3_ctx *ctx = crypto_sha3_desc(desc);
struct crypto_shash *tfm = desc->tfm;
unsigned int bs, ds;
int blocks;
@@ -47,7 +52,7 @@ static int arm64_sha3_update(struct shash_desc *desc, const u8 *data,
int rem;
kernel_neon_begin();
- rem = sha3_ce_transform(sctx->st, data, blocks, ds);
+ rem = sha3_ce_transform(ctx->st, data, blocks, ds);
kernel_neon_end();
data += (blocks - rem) * bs;
blocks = rem;
@@ -58,7 +63,7 @@ static int arm64_sha3_update(struct shash_desc *desc, const u8 *data,
static int arm64_sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
u8 *out)
{
- struct sha3_state *sctx = shash_desc_ctx(desc);
+ struct sha3_ctx *ctx = crypto_sha3_desc(desc);
struct crypto_shash *tfm = desc->tfm;
__le64 *digest = (__le64 *)out;
u8 block[SHA3_224_BLOCK_SIZE];
@@ -74,15 +79,15 @@ static int arm64_sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int
block[bs - 1] |= 0x80;
kernel_neon_begin();
- sha3_ce_transform(sctx->st, block, 1, ds);
+ sha3_ce_transform(ctx->st, block, 1, ds);
kernel_neon_end();
memzero_explicit(block , sizeof(block));
for (i = 0; i < ds / 8; i++)
- put_unaligned_le64(sctx->st[i], digest++);
+ put_unaligned_le64(ctx->st[i], digest++);
if (ds & 4)
- put_unaligned_le32(sctx->st[i], (__le32 *)digest);
+ put_unaligned_le32(ctx->st[i], (__le32 *)digest);
return 0;
}
@@ -92,7 +97,7 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = arm64_sha3_update,
.finup = arm64_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-224",
.base.cra_driver_name = "sha3-224-ce",
.base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
@@ -104,7 +109,7 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = arm64_sha3_update,
.finup = arm64_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-256",
.base.cra_driver_name = "sha3-256-ce",
.base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
@@ -116,7 +121,7 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = arm64_sha3_update,
.finup = arm64_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-384",
.base.cra_driver_name = "sha3-384-ce",
.base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
@@ -128,7 +133,7 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = arm64_sha3_update,
.finup = arm64_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-512",
.base.cra_driver_name = "sha3-512-ce",
.base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c
index 41d1e506e6de..7b16e4c27fc8 100644
--- a/crypto/sha3_generic.c
+++ b/crypto/sha3_generic.c
@@ -13,156 +13,19 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/string.h>
-#include <linux/unaligned.h>
-/*
- * On some 32-bit architectures (h8300), GCC ends up using
- * over 1 KB of stack if we inline the round calculation into the loop
- * in keccakf(). On the other hand, on 64-bit architectures with plenty
- * of [64-bit wide] general purpose registers, not inlining it severely
- * hurts performance. So let's use 64-bitness as a heuristic to decide
- * whether to inline or not.
- */
-#ifdef CONFIG_64BIT
-#define SHA3_INLINE inline
-#else
-#define SHA3_INLINE noinline
-#endif
-
-#define KECCAK_ROUNDS 24
-
-static const u64 keccakf_rndc[24] = {
- 0x0000000000000001ULL, 0x0000000000008082ULL, 0x800000000000808aULL,
- 0x8000000080008000ULL, 0x000000000000808bULL, 0x0000000080000001ULL,
- 0x8000000080008081ULL, 0x8000000000008009ULL, 0x000000000000008aULL,
- 0x0000000000000088ULL, 0x0000000080008009ULL, 0x000000008000000aULL,
- 0x000000008000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL,
- 0x8000000000008003ULL, 0x8000000000008002ULL, 0x8000000000000080ULL,
- 0x000000000000800aULL, 0x800000008000000aULL, 0x8000000080008081ULL,
- 0x8000000000008080ULL, 0x0000000080000001ULL, 0x8000000080008008ULL
-};
-
-/* update the state with given number of rounds */
-
-static SHA3_INLINE void keccakf_round(u64 st[25])
-{
- u64 t[5], tt, bc[5];
-
- /* Theta */
- bc[0] = st[0] ^ st[5] ^ st[10] ^ st[15] ^ st[20];
- bc[1] = st[1] ^ st[6] ^ st[11] ^ st[16] ^ st[21];
- bc[2] = st[2] ^ st[7] ^ st[12] ^ st[17] ^ st[22];
- bc[3] = st[3] ^ st[8] ^ st[13] ^ st[18] ^ st[23];
- bc[4] = st[4] ^ st[9] ^ st[14] ^ st[19] ^ st[24];
-
- t[0] = bc[4] ^ rol64(bc[1], 1);
- t[1] = bc[0] ^ rol64(bc[2], 1);
- t[2] = bc[1] ^ rol64(bc[3], 1);
- t[3] = bc[2] ^ rol64(bc[4], 1);
- t[4] = bc[3] ^ rol64(bc[0], 1);
-
- st[0] ^= t[0];
-
- /* Rho Pi */
- tt = st[1];
- st[ 1] = rol64(st[ 6] ^ t[1], 44);
- st[ 6] = rol64(st[ 9] ^ t[4], 20);
- st[ 9] = rol64(st[22] ^ t[2], 61);
- st[22] = rol64(st[14] ^ t[4], 39);
- st[14] = rol64(st[20] ^ t[0], 18);
- st[20] = rol64(st[ 2] ^ t[2], 62);
- st[ 2] = rol64(st[12] ^ t[2], 43);
- st[12] = rol64(st[13] ^ t[3], 25);
- st[13] = rol64(st[19] ^ t[4], 8);
- st[19] = rol64(st[23] ^ t[3], 56);
- st[23] = rol64(st[15] ^ t[0], 41);
- st[15] = rol64(st[ 4] ^ t[4], 27);
- st[ 4] = rol64(st[24] ^ t[4], 14);
- st[24] = rol64(st[21] ^ t[1], 2);
- st[21] = rol64(st[ 8] ^ t[3], 55);
- st[ 8] = rol64(st[16] ^ t[1], 45);
- st[16] = rol64(st[ 5] ^ t[0], 36);
- st[ 5] = rol64(st[ 3] ^ t[3], 28);
- st[ 3] = rol64(st[18] ^ t[3], 21);
- st[18] = rol64(st[17] ^ t[2], 15);
- st[17] = rol64(st[11] ^ t[1], 10);
- st[11] = rol64(st[ 7] ^ t[2], 6);
- st[ 7] = rol64(st[10] ^ t[0], 3);
- st[10] = rol64( tt ^ t[1], 1);
-
- /* Chi */
- bc[ 0] = ~st[ 1] & st[ 2];
- bc[ 1] = ~st[ 2] & st[ 3];
- bc[ 2] = ~st[ 3] & st[ 4];
- bc[ 3] = ~st[ 4] & st[ 0];
- bc[ 4] = ~st[ 0] & st[ 1];
- st[ 0] ^= bc[ 0];
- st[ 1] ^= bc[ 1];
- st[ 2] ^= bc[ 2];
- st[ 3] ^= bc[ 3];
- st[ 4] ^= bc[ 4];
-
- bc[ 0] = ~st[ 6] & st[ 7];
- bc[ 1] = ~st[ 7] & st[ 8];
- bc[ 2] = ~st[ 8] & st[ 9];
- bc[ 3] = ~st[ 9] & st[ 5];
- bc[ 4] = ~st[ 5] & st[ 6];
- st[ 5] ^= bc[ 0];
- st[ 6] ^= bc[ 1];
- st[ 7] ^= bc[ 2];
- st[ 8] ^= bc[ 3];
- st[ 9] ^= bc[ 4];
-
- bc[ 0] = ~st[11] & st[12];
- bc[ 1] = ~st[12] & st[13];
- bc[ 2] = ~st[13] & st[14];
- bc[ 3] = ~st[14] & st[10];
- bc[ 4] = ~st[10] & st[11];
- st[10] ^= bc[ 0];
- st[11] ^= bc[ 1];
- st[12] ^= bc[ 2];
- st[13] ^= bc[ 3];
- st[14] ^= bc[ 4];
-
- bc[ 0] = ~st[16] & st[17];
- bc[ 1] = ~st[17] & st[18];
- bc[ 2] = ~st[18] & st[19];
- bc[ 3] = ~st[19] & st[15];
- bc[ 4] = ~st[15] & st[16];
- st[15] ^= bc[ 0];
- st[16] ^= bc[ 1];
- st[17] ^= bc[ 2];
- st[18] ^= bc[ 3];
- st[19] ^= bc[ 4];
-
- bc[ 0] = ~st[21] & st[22];
- bc[ 1] = ~st[22] & st[23];
- bc[ 2] = ~st[23] & st[24];
- bc[ 3] = ~st[24] & st[20];
- bc[ 4] = ~st[20] & st[21];
- st[20] ^= bc[ 0];
- st[21] ^= bc[ 1];
- st[22] ^= bc[ 2];
- st[23] ^= bc[ 3];
- st[24] ^= bc[ 4];
-}
-
-static void keccakf(u64 st[25])
+static struct sha3_ctx *crypto_sha3_desc(struct shash_desc *desc)
{
- int round;
-
- for (round = 0; round < KECCAK_ROUNDS; round++) {
- keccakf_round(st);
- /* Iota */
- st[0] ^= keccakf_rndc[round];
- }
+ return shash_desc_ctx(desc);
}
int crypto_sha3_init(struct shash_desc *desc)
{
- struct sha3_state *sctx = shash_desc_ctx(desc);
+ struct sha3_ctx *ctx = crypto_sha3_desc(desc);
- memset(sctx->st, 0, sizeof(sctx->st));
+ memset(ctx, 0, sizeof(*ctx));
+ ctx->block_size = crypto_shash_blocksize(desc->tfm);
+ ctx->padding = 0x06;
return 0;
}
EXPORT_SYMBOL(crypto_sha3_init);
@@ -170,51 +33,21 @@ EXPORT_SYMBOL(crypto_sha3_init);
static int crypto_sha3_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
- unsigned int rsiz = crypto_shash_blocksize(desc->tfm);
- struct sha3_state *sctx = shash_desc_ctx(desc);
- unsigned int rsizw = rsiz / 8;
-
- do {
- int i;
+ struct sha3_ctx *ctx = crypto_sha3_desc(desc);
- for (i = 0; i < rsizw; i++)
- sctx->st[i] ^= get_unaligned_le64(data + 8 * i);
- keccakf(sctx->st);
-
- data += rsiz;
- len -= rsiz;
- } while (len >= rsiz);
+ sha3_update(ctx, data, len);
return len;
}
static int crypto_sha3_finup(struct shash_desc *desc, const u8 *src,
unsigned int len, u8 *out)
{
- unsigned int digest_size = crypto_shash_digestsize(desc->tfm);
- unsigned int rsiz = crypto_shash_blocksize(desc->tfm);
- struct sha3_state *sctx = shash_desc_ctx(desc);
- __le64 block[SHA3_224_BLOCK_SIZE / 8] = {};
- __le64 *digest = (__le64 *)out;
- unsigned int rsizw = rsiz / 8;
- u8 *p;
- int i;
-
- p = memcpy(block, src, len);
- p[len++] = 0x06;
- p[rsiz - 1] |= 0x80;
-
- for (i = 0; i < rsizw; i++)
- sctx->st[i] ^= le64_to_cpu(block[i]);
- memzero_explicit(block, sizeof(block));
-
- keccakf(sctx->st);
-
- for (i = 0; i < digest_size / 8; i++)
- put_unaligned_le64(sctx->st[i], digest++);
-
- if (digest_size & 4)
- put_unaligned_le32(sctx->st[i], (__le32 *)digest);
+ struct sha3_ctx *ctx = crypto_sha3_desc(desc);
+ if (len && src)
+ sha3_update(ctx, src, len);
+ sha3_squeeze(ctx, out, crypto_shash_digestsize(desc->tfm));
+ sha3_clear(ctx);
return 0;
}
@@ -223,10 +56,10 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = crypto_sha3_update,
.finup = crypto_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-224",
.base.cra_driver_name = "sha3-224-generic",
- .base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
+ .base.cra_flags = 0,
.base.cra_blocksize = SHA3_224_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
}, {
@@ -234,10 +67,10 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = crypto_sha3_update,
.finup = crypto_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-256",
.base.cra_driver_name = "sha3-256-generic",
- .base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
+ .base.cra_flags = 0,
.base.cra_blocksize = SHA3_256_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
}, {
@@ -245,10 +78,10 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = crypto_sha3_update,
.finup = crypto_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-384",
.base.cra_driver_name = "sha3-384-generic",
- .base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
+ .base.cra_flags = 0,
.base.cra_blocksize = SHA3_384_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
}, {
@@ -256,10 +89,10 @@ static struct shash_alg algs[] = { {
.init = crypto_sha3_init,
.update = crypto_sha3_update,
.finup = crypto_sha3_finup,
- .descsize = SHA3_STATE_SIZE,
+ .descsize = sizeof(struct sha3_ctx),
.base.cra_name = "sha3-512",
.base.cra_driver_name = "sha3-512-generic",
- .base.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY,
+ .base.cra_flags = 0,
.base.cra_blocksize = SHA3_512_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
} };
diff --git a/include/crypto/sha3.h b/include/crypto/sha3.h
index a54117cb1546..7e845dde55ac 100644
--- a/include/crypto/sha3.h
+++ b/include/crypto/sha3.h
@@ -38,10 +38,6 @@
struct shash_desc;
-struct sha3_state {
- u64 st[SHA3_STATE_SIZE / 8];
-};
-
/*
* The SHA3 context structure and state buffer.
*
@@ -52,7 +48,7 @@ struct sha3_state {
* byteswap step is a no-op.
*/
struct sha3_ctx {
- struct sha3_state state;
+ u64 st[SHA3_STATE_SIZE / 8];
u8 block_size; /* Block size in bytes */
u8 padding; /* Padding byte */
u8 absorb_offset; /* Next state byte to absorb into */
diff --git a/lib/crypto/sha3.c b/lib/crypto/sha3.c
index 2c292b0b3db3..911b2c35dbc4 100644
--- a/lib/crypto/sha3.c
+++ b/lib/crypto/sha3.c
@@ -48,10 +48,10 @@ static const u64 sha3_keccakf_rndc[24] = {
/*
* Perform a single round of Keccak mixing.
*/
-static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_state *state,
+static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_ctx *ctx,
int round)
{
- u64 *st = state->st;
+ u64 *st = ctx->st;
u64 t[5], tt, bc[5];
/* Theta */
@@ -153,13 +153,13 @@ static SHA3_INLINE void sha3_keccakf_one_round_generic(struct sha3_state *state,
st[24] ^= bc[ 4];
/* Iota */
- state->st[0] ^= sha3_keccakf_rndc[round];
+ ctx->st[0] ^= sha3_keccakf_rndc[round];
}
-static void sha3_keccakf_rounds_generic(struct sha3_state *state)
+static void sha3_keccakf_rounds_generic(struct sha3_ctx *ctx)
{
for (int round = 0; round < SHA3_KECCAK_ROUNDS; round++)
- sha3_keccakf_one_round_generic(state, round);
+ sha3_keccakf_one_round_generic(ctx, round);
}
/*
@@ -167,25 +167,24 @@ static void sha3_keccakf_rounds_generic(struct sha3_state *state)
* machine for the duration of the Keccak mixing function. Note that these
* loops are no-ops on LE machines and will be optimised away.
*/
-static void sha3_keccakf_generic(struct sha3_state *state)
+static void sha3_keccakf_generic(struct sha3_ctx *ctx)
{
- for (int i = 0; i < ARRAY_SIZE(state->st); i++)
- cpu_to_le64s(&state->st[i]);
+ for (int i = 0; i < ARRAY_SIZE(ctx->st); i++)
+ cpu_to_le64s(&ctx->st[i]);
- sha3_keccakf_rounds_generic(state);
+ sha3_keccakf_rounds_generic(ctx);
- for (int i = 0; i < ARRAY_SIZE(state->st); i++)
- le64_to_cpus(&state->st[i]);
+ for (int i = 0; i < ARRAY_SIZE(ctx->st); i++)
+ le64_to_cpus(&ctx->st[i]);
}
static void sha3_absorb_block_generic(struct sha3_ctx *ctx, const u8 *data)
{
- struct sha3_state *state = &ctx->state;
size_t bsize = ctx->block_size;
for (size_t i = 0; i < bsize / 8; i++)
- state->st[i] ^= get_unaligned((u64 *)(data + 8 * i));
- sha3_keccakf_generic(state);
+ ctx->st[i] ^= get_unaligned((u64 *)(data + 8 * i));
+ sha3_keccakf_generic(ctx);
}
/*
@@ -214,7 +213,7 @@ static void sha3_absorb_blocks_generic(struct sha3_ctx *ctx,
static void sha3_absorb_xorle(struct sha3_ctx *ctx, const u8 *data,
size_t partial, size_t len)
{
- u8 *buf = (u8 *)ctx->state.st;
+ u8 *buf = (u8 *)ctx->st;
buf += partial;
for (size_t i = 0; i < len; i++)
@@ -243,7 +242,7 @@ void sha3_update(struct sha3_ctx *ctx, const u8 *data, size_t len)
sha3_absorb_xorle(ctx, data, absorb_offset, bsize - absorb_offset);
len -= bsize - absorb_offset;
data += bsize - absorb_offset;
- sha3_keccakf(&ctx->state);
+ sha3_keccakf(ctx);
ctx->absorb_offset = 0;
}
@@ -282,7 +281,7 @@ void sha3_squeeze(struct sha3_ctx *ctx, u8 *out, size_t out_size)
{
size_t squeeze_offset = ctx->squeeze_offset;
size_t bsize = ctx->block_size;
- u8 *p = (u8 *)ctx->state.st, end_marker = 0x80;
+ u8 *p = (u8 *)ctx->st, end_marker = 0x80;
if (!ctx->end_marked) {
sha3_absorb_xorle(ctx, &ctx->padding, ctx->absorb_offset, 1);
@@ -292,7 +291,7 @@ void sha3_squeeze(struct sha3_ctx *ctx, u8 *out, size_t out_size)
for (;;) {
if (squeeze_offset == 0)
- sha3_keccakf(&ctx->state);
+ sha3_keccakf(ctx);
size_t part = umin(out_size, bsize - squeeze_offset);
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 08/17] crypto/sha3: Add SHAKE128/256 support
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (6 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 07/17] crypto/sha3: " David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 09/17] crypto: SHAKE tests David Howells
` (8 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
SHAKE128/256 'digest' algos need to be available for the ML-DSA pre-digest,
which is a selectable algorithm and need to be available through the same
API as, say, SHA3-512 and SHA512 both. Resqueezability (probably) isn't
required for this and they'll produce the default number of bytes as the
digest size.
Also, increase MAX_ALGAPI_BLOCKSIZE to accommodate SHAKE128.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: Stephan Mueller <smueller@chronox.de>
cc: linux-crypto@vger.kernel.org
---
crypto/sha3_generic.c | 26 ++++++++++++++++++++++++++
include/crypto/algapi.h | 2 +-
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c
index 7b16e4c27fc8..3e5a23022596 100644
--- a/crypto/sha3_generic.c
+++ b/crypto/sha3_generic.c
@@ -95,6 +95,28 @@ static struct shash_alg algs[] = { {
.base.cra_flags = 0,
.base.cra_blocksize = SHA3_512_BLOCK_SIZE,
.base.cra_module = THIS_MODULE,
+}, {
+ .digestsize = SHAKE128_DEFAULT_SIZE,
+ .init = crypto_sha3_init,
+ .update = crypto_sha3_update,
+ .finup = crypto_sha3_finup,
+ .descsize = sizeof(struct sha3_ctx),
+ .base.cra_name = "shake128",
+ .base.cra_driver_name = "shake128-generic",
+ .base.cra_flags = 0,
+ .base.cra_blocksize = SHAKE128_BLOCK_SIZE,
+ .base.cra_module = THIS_MODULE,
+}, {
+ .digestsize = SHAKE256_DEFAULT_SIZE,
+ .init = crypto_sha3_init,
+ .update = crypto_sha3_update,
+ .finup = crypto_sha3_finup,
+ .descsize = sizeof(struct sha3_ctx),
+ .base.cra_name = "shake256",
+ .base.cra_driver_name = "shake256-generic",
+ .base.cra_flags = 0,
+ .base.cra_blocksize = SHAKE256_BLOCK_SIZE,
+ .base.cra_module = THIS_MODULE,
} };
static int __init sha3_generic_mod_init(void)
@@ -121,3 +143,7 @@ MODULE_ALIAS_CRYPTO("sha3-384");
MODULE_ALIAS_CRYPTO("sha3-384-generic");
MODULE_ALIAS_CRYPTO("sha3-512");
MODULE_ALIAS_CRYPTO("sha3-512-generic");
+MODULE_ALIAS_CRYPTO("shake128");
+MODULE_ALIAS_CRYPTO("shake128-generic");
+MODULE_ALIAS_CRYPTO("shake256");
+MODULE_ALIAS_CRYPTO("shake256-generic");
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
index fc4574940636..6209762736c4 100644
--- a/include/crypto/algapi.h
+++ b/include/crypto/algapi.h
@@ -20,7 +20,7 @@
* static buffers that are big enough for any combination of
* algs and architectures. Ciphers have a lower maximum size.
*/
-#define MAX_ALGAPI_BLOCKSIZE 160
+#define MAX_ALGAPI_BLOCKSIZE 168
#define MAX_ALGAPI_ALIGNMASK 127
#define MAX_CIPHER_BLOCKSIZE 16
#define MAX_CIPHER_ALIGNMASK 15
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 09/17] crypto: SHAKE tests
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (7 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 08/17] crypto/sha3: Add SHAKE128/256 support David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 10/17] crypto: Add ML-DSA/Dilithium support David Howells
` (7 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
---
crypto/sha3_generic.c | 14 ++++++++--
crypto/testmgr.c | 14 ++++++++++
crypto/testmgr.h | 59 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 85 insertions(+), 2 deletions(-)
diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c
index 3e5a23022596..3a338fb704c2 100644
--- a/crypto/sha3_generic.c
+++ b/crypto/sha3_generic.c
@@ -30,6 +30,16 @@ int crypto_sha3_init(struct shash_desc *desc)
}
EXPORT_SYMBOL(crypto_sha3_init);
+static int crypto_shake_init(struct shash_desc *desc)
+{
+ struct sha3_ctx *ctx = crypto_sha3_desc(desc);
+
+ memset(ctx, 0, sizeof(*ctx));
+ ctx->block_size = crypto_shash_blocksize(desc->tfm);
+ ctx->padding = 0x1f;
+ return 0;
+}
+
static int crypto_sha3_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
@@ -97,7 +107,7 @@ static struct shash_alg algs[] = { {
.base.cra_module = THIS_MODULE,
}, {
.digestsize = SHAKE128_DEFAULT_SIZE,
- .init = crypto_sha3_init,
+ .init = crypto_shake_init,
.update = crypto_sha3_update,
.finup = crypto_sha3_finup,
.descsize = sizeof(struct sha3_ctx),
@@ -108,7 +118,7 @@ static struct shash_alg algs[] = { {
.base.cra_module = THIS_MODULE,
}, {
.digestsize = SHAKE256_DEFAULT_SIZE,
- .init = crypto_sha3_init,
+ .init = crypto_shake_init,
.update = crypto_sha3_update,
.finup = crypto_sha3_finup,
.descsize = sizeof(struct sha3_ctx),
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 6a490aaa71b9..88d412ceb6f2 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -5516,6 +5516,20 @@ static const struct alg_test_desc alg_test_descs[] = {
.suite = {
.hash = __VECS(sha512_tv_template)
}
+ }, {
+ .alg = "shake128",
+ .test = alg_test_hash,
+ .fips_allowed = 1,
+ .suite = {
+ .hash = __VECS(shake128_tv_template)
+ }
+ }, {
+ .alg = "shake256",
+ .test = alg_test_hash,
+ .fips_allowed = 1,
+ .suite = {
+ .hash = __VECS(shake256_tv_template)
+ }
}, {
.alg = "sm3",
.test = alg_test_hash,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 268231227282..c0eca7f72aa0 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -4690,6 +4690,65 @@ static const struct hash_testvec sha3_512_tv_template[] = {
};
+/* From: https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/example-values */
+static const struct hash_testvec shake128_tv_template[] = {
+ {
+ .plaintext = "",
+ .psize = 0,
+ .digest =
+ "\x7f\x9c\x2b\xa4\xe8\x8f\x82\x7d\x61\x60\x45\x50\x76\x05\x85\x3e",
+ }, {
+ .plaintext =
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3",
+ .psize = 200,
+ .digest =
+ "\x13\x1a\xb8\xd2\xb5\x94\x94\x6b\x9c\x81\x33\x3f\x9b\xb6\xe0\xce",
+ }
+};
+
+/* From: https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/example-values */
+static const struct hash_testvec shake256_tv_template[] = {
+ {
+ .plaintext = "",
+ .psize = 0,
+ .digest =
+ "\x46\xb9\xdd\x2b\x0b\xa8\x8d\x13\x23\x3b\x3f\xeb\x74\x3e\xeb\x24"
+ "\x3f\xcd\x52\xea\x62\xb8\x1b\x82\xb5\x0c\x27\x64\x6e\xd5\x76\x2f"
+ }, {
+ .plaintext =
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
+ "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3",
+ .psize = 200,
+ .digest =
+ "\xcd\x8a\x92\x0e\xd1\x41\xaa\x04\x07\xa2\x2d\x59\x28\x86\x52\xe9"
+ "\xd9\xf1\xa7\xee\x0c\x1e\x7c\x1c\xa6\x99\x42\x4d\xa8\x4a\x90\x4d",
+ }
+};
+
+
/*
* MD5 test vectors from RFC1321
*/
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 10/17] crypto: Add ML-DSA/Dilithium support
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (8 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 09/17] crypto: SHAKE tests David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 11/17] crypto: Add ML-DSA/Dilithium keypair generation support David Howells
` (6 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Port Stephan Mueller's Leancrypto implementation of ML-DSA/Dilithium to the
kernel.
[!] NOTE: This isn't entirely cleaned up yet! This includes converting the
documentation comments and removing more compatibility macros. I wanted to
concentrate on getting it actually working first.
Apologies to Stephan, but I've stripped out a bunch of macros to do return
checking and suchlike and removed a bunch of "lc_" prefixes from the code.
The code retains the following features, some of which probably need to
be separated out or dropped entirely:
- Signature verification
- Signing
- Prehash support
- External Mu support
Composite signature support is mostly removed and none of the arch-specific
code from Leancrypto has been included for the moment, so this is pure C.
The interface to this code is through the crypto_sig API as the PKCS#7 code
wants to use that rather than calling it directly. As such, I've placed it
in crypto/ rather than lib/crypto/.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: linux-crypto@vger.kernel.org
---
crypto/Kconfig | 1 +
crypto/Makefile | 1 +
crypto/ml_dsa/Kconfig | 17 +
crypto/ml_dsa/Makefile | 18 +
crypto/ml_dsa/dilithium.h | 750 ++++++++++++++++++
crypto/ml_dsa/dilithium_44.c | 33 +
crypto/ml_dsa/dilithium_44.h | 377 +++++++++
crypto/ml_dsa/dilithium_65.c | 33 +
crypto/ml_dsa/dilithium_65.h | 377 +++++++++
crypto/ml_dsa/dilithium_87.c | 33 +
crypto/ml_dsa/dilithium_87.h | 377 +++++++++
crypto/ml_dsa/dilithium_api.c | 729 +++++++++++++++++
crypto/ml_dsa/dilithium_debug.h | 80 ++
crypto/ml_dsa/dilithium_ntt.c | 89 +++
crypto/ml_dsa/dilithium_ntt.h | 35 +
crypto/ml_dsa/dilithium_pack.h | 210 +++++
crypto/ml_dsa/dilithium_poly.c | 586 ++++++++++++++
crypto/ml_dsa/dilithium_poly.h | 190 +++++
crypto/ml_dsa/dilithium_poly_c.h | 149 ++++
crypto/ml_dsa/dilithium_poly_common.h | 35 +
crypto/ml_dsa/dilithium_polyvec.h | 343 ++++++++
crypto/ml_dsa/dilithium_polyvec_c.h | 94 +++
crypto/ml_dsa/dilithium_reduce.h | 108 +++
crypto/ml_dsa/dilithium_rounding.c | 128 +++
crypto/ml_dsa/dilithium_rounding.h | 45 ++
crypto/ml_dsa/dilithium_service_helpers.h | 99 +++
crypto/ml_dsa/dilithium_sig.c | 404 ++++++++++
crypto/ml_dsa/dilithium_signature_c.c | 174 ++++
crypto/ml_dsa/dilithium_signature_c.h | 53 ++
crypto/ml_dsa/dilithium_signature_helper.c | 110 +++
crypto/ml_dsa/dilithium_signature_impl.h | 838 ++++++++++++++++++++
crypto/ml_dsa/dilithium_type.h | 259 ++++++
crypto/ml_dsa/dilithium_zetas.c | 67 ++
crypto/ml_dsa/fips_mode.h | 45 ++
crypto/ml_dsa/signature_domain_separation.c | 213 +++++
crypto/ml_dsa/signature_domain_separation.h | 33 +
crypto/ml_dsa/small_stack_support.h | 40 +
37 files changed, 7173 insertions(+)
create mode 100644 crypto/ml_dsa/Kconfig
create mode 100644 crypto/ml_dsa/Makefile
create mode 100644 crypto/ml_dsa/dilithium.h
create mode 100644 crypto/ml_dsa/dilithium_44.c
create mode 100644 crypto/ml_dsa/dilithium_44.h
create mode 100644 crypto/ml_dsa/dilithium_65.c
create mode 100644 crypto/ml_dsa/dilithium_65.h
create mode 100644 crypto/ml_dsa/dilithium_87.c
create mode 100644 crypto/ml_dsa/dilithium_87.h
create mode 100644 crypto/ml_dsa/dilithium_api.c
create mode 100644 crypto/ml_dsa/dilithium_debug.h
create mode 100644 crypto/ml_dsa/dilithium_ntt.c
create mode 100644 crypto/ml_dsa/dilithium_ntt.h
create mode 100644 crypto/ml_dsa/dilithium_pack.h
create mode 100644 crypto/ml_dsa/dilithium_poly.c
create mode 100644 crypto/ml_dsa/dilithium_poly.h
create mode 100644 crypto/ml_dsa/dilithium_poly_c.h
create mode 100644 crypto/ml_dsa/dilithium_poly_common.h
create mode 100644 crypto/ml_dsa/dilithium_polyvec.h
create mode 100644 crypto/ml_dsa/dilithium_polyvec_c.h
create mode 100644 crypto/ml_dsa/dilithium_reduce.h
create mode 100644 crypto/ml_dsa/dilithium_rounding.c
create mode 100644 crypto/ml_dsa/dilithium_rounding.h
create mode 100644 crypto/ml_dsa/dilithium_service_helpers.h
create mode 100644 crypto/ml_dsa/dilithium_sig.c
create mode 100644 crypto/ml_dsa/dilithium_signature_c.c
create mode 100644 crypto/ml_dsa/dilithium_signature_c.h
create mode 100644 crypto/ml_dsa/dilithium_signature_helper.c
create mode 100644 crypto/ml_dsa/dilithium_signature_impl.h
create mode 100644 crypto/ml_dsa/dilithium_type.h
create mode 100644 crypto/ml_dsa/dilithium_zetas.c
create mode 100644 crypto/ml_dsa/fips_mode.h
create mode 100644 crypto/ml_dsa/signature_domain_separation.c
create mode 100644 crypto/ml_dsa/signature_domain_separation.h
create mode 100644 crypto/ml_dsa/small_stack_support.h
diff --git a/crypto/Kconfig b/crypto/Kconfig
index a04595f9d0ca..b027460d54b7 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -1451,5 +1451,6 @@ source "drivers/crypto/Kconfig"
source "crypto/asymmetric_keys/Kconfig"
source "certs/Kconfig"
source "crypto/krb5/Kconfig"
+source "crypto/ml_dsa/Kconfig"
endif # if CRYPTO
diff --git a/crypto/Makefile b/crypto/Makefile
index e430e6e99b6a..ecd1ef79c28c 100644
--- a/crypto/Makefile
+++ b/crypto/Makefile
@@ -210,3 +210,4 @@ obj-$(CONFIG_CRYPTO_SIMD) += crypto_simd.o
obj-$(CONFIG_CRYPTO_KDF800108_CTR) += kdf_sp800108.o
obj-$(CONFIG_CRYPTO_KRB5) += krb5/
+obj-$(CONFIG_CRYPTO_ML_DSA) += ml_dsa/
diff --git a/crypto/ml_dsa/Kconfig b/crypto/ml_dsa/Kconfig
new file mode 100644
index 000000000000..cc0567c5b990
--- /dev/null
+++ b/crypto/ml_dsa/Kconfig
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier: GPL-2.0
+menuconfig CRYPTO_ML_DSA
+ tristate "ML-DSA/Dilithium algorithm"
+ select CRYPTO_LIB_SHA3
+
+if CRYPTO_ML_DSA
+
+config CRYPTO_DILITHIUM_44
+ bool "Enable Dilithium-44 support"
+
+config CRYPTO_DILITHIUM_65
+ bool "Enable Dilithium-65 support"
+
+config CRYPTO_DILITHIUM_87
+ bool "Enable Dilithium-87 support"
+
+endif
diff --git a/crypto/ml_dsa/Makefile b/crypto/ml_dsa/Makefile
new file mode 100644
index 000000000000..d420a8ba6033
--- /dev/null
+++ b/crypto/ml_dsa/Makefile
@@ -0,0 +1,18 @@
+################################################################################
+# Signature implementation: Dilithium
+
+################################################################################
+# C Implementation
+################################################################################
+ml_dsa-y += \
+ signature_domain_separation.o \
+ dilithium_api.o \
+ dilithium_zetas.o \
+ dilithium_sig.o \
+ dilithium_signature_helper.o
+
+ml_dsa-$(CONFIG_CRYPTO_DILITHIUM_87) += dilithium_87.o
+ml_dsa-$(CONFIG_CRYPTO_DILITHIUM_65) += dilithium_65.o
+ml_dsa-$(CONFIG_CRYPTO_DILITHIUM_44) += dilithium_44.o
+
+obj-$(CONFIG_CRYPTO_ML_DSA) += ml_dsa.o
diff --git a/crypto/ml_dsa/dilithium.h b/crypto/ml_dsa/dilithium.h
new file mode 100644
index 000000000000..6d4982164201
--- /dev/null
+++ b/crypto/ml_dsa/dilithium.h
@@ -0,0 +1,750 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_H
+#define DILITHIUM_H
+
+#undef pr_fmt
+#define pr_fmt(fmt) "ML-DSA: " fmt
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/string.h>
+#include <crypto/sha2.h>
+#include <crypto/sha3.h>
+#include <crypto/hash.h>
+#include <crypto/rng.h>
+
+#define DILITHIUM_SEEDBYTES 32
+#define DILITHIUM_CRHBYTES 64
+#define DILITHIUM_TRBYTES 64
+#define DILITHIUM_RNDBYTES 32
+#define DILITHIUM_N 256
+#define DILITHIUM_Q 8380417
+#define DILITHIUM_D 13
+#define DILITHIUM_ROOT_OF_UNITY 1753
+
+extern const int32_t dilithium_zetas[DILITHIUM_N];
+#define lc_seeded_rng crypto_default_rng
+
+struct dilithium_ctx {
+ /**
+ * @brief Hash context used internally to the library - it should not
+ * be touched by the user
+ */
+ struct shake256_ctx dilithium_hash_ctx;
+
+ /**
+ * @brief When using HashML-DSA, set the hash reference used for the
+ * hash operation. Allowed values are lc_sha256, lc_sha512, lc_sha3_256,
+ * lc_sha3_384, lc_sha3_512, lc_shake128 and lc_shake256. Note, the
+ * actual message digest operation can be performed external to
+ * leancrypto. This parameter only shall indicate the used hash
+ * operation.
+ *
+ * \note Use \p dilithium_ctx_hash or
+ * \p dilithium_ed25519_ctx_hash to set this value.
+ */
+ struct crypto_shash *dilithium_prehash_type;
+
+ /**
+ * @brief length of the user context (allowed range between 0 and 255
+ * bytes)
+ *
+ * \note Use \p dilithium_ctx_userctx or
+ * \p dilithium_ed25519_ctx_userctx to set this value.
+ */
+ size_t userctxlen;
+
+ /**
+ * @brief buffer with a caller-specified context string
+ *
+ * \note Use \p dilithium_ctx_userctx or
+ * \p dilithium_ed25519_ctx_userctx to set this value.
+ */
+ const uint8_t *userctx;
+
+ /**
+ * @brief Pointer to the AHat buffer. This can be provided by the caller
+ * or it must be NULL otherwise.
+ *
+ * \note Use \p DILITHIUM_CTX_ON_STACK_AHAT to provide memory for
+ * storing AHat in the caller context and thus make the signature
+ * operation much faster starting with the 2nd use of the key (pair).
+ */
+ void *ahat;
+ unsigned short ahat_size;
+
+ /**
+ * @brief Pointer to the external mu.
+ *
+ * If set, the signature operation will use the provided mu instead of
+ * the message. In this case, the message pointer to the signature
+ * generation or verification can be NULL.
+ */
+ const uint8_t *external_mu;
+ size_t external_mu_len;
+
+ /**
+ * @brief Pointer to the randomizer
+ *
+ * This is used for the Composite signature: For the discussion of the
+ * randomizer, see https://lamps-wg.github.io/draft-composite-sigs/draft-ietf-lamps-pq-composite-sigs.html
+ */
+ const uint8_t *randomizer;
+ size_t randomizerlen;
+
+ /**
+ * @brief NIST category required for composite signatures
+ *
+ * The domain separation logic depends on the selection of the right
+ * OID for the "Domain" data.
+ */
+ unsigned int nist_category;
+
+ /**
+ * @brief When set to true, only the ML-DSA.Sign_internal or
+ * ML-DSA.Verify_internal are performed (see FIPS 204 chapter 6).
+ * Otherwise the ML-DSA.Sign / ML-DSA.Verify (see FIPS chapter 5) is
+ * applied.
+ *
+ * \note Use \p dilithium_ctx_internal or
+ * \p dilithium_ed25519_ctx_internal to set this value.
+ *
+ * \warning Only set this value to true if you exactly know what you are
+ * doing!.
+ */
+ bool ml_dsa_internal:1;
+
+ /**
+ * @brief Was aHat already filled? This is used and set internally.
+ */
+ bool ahat_expanded:1;
+} __aligned(CRYPTO_MINALIGN);
+
+static inline void dilithium_hash_init(struct dilithium_ctx *ctx)
+{
+ shake256_init(&ctx->dilithium_hash_ctx);
+}
+
+static inline bool dilithium_hash_check_blocksize(const struct dilithium_ctx *ctx, size_t bsize)
+{
+ return bsize == SHAKE256_BLOCK_SIZE;
+ //return crypto_shash_blocksize(hash_ctx->tfm) == bsize;
+}
+
+static inline bool dilithium_hash_check_digestsize(const struct dilithium_ctx *ctx, size_t dsize)
+{
+ return true;
+ //return crypto_shash_digestsize(hash_ctx->tfm) == dsize;
+}
+
+static inline void dilithium_hash_clear(struct dilithium_ctx *ctx)
+{
+ shake256_clear(&ctx->dilithium_hash_ctx);
+}
+
+static inline void dilithium_hash_update(struct dilithium_ctx *ctx,
+ const u8 *in, size_t in_size)
+{
+ shake256_update(&ctx->dilithium_hash_ctx, in, in_size);
+}
+
+static inline void dilithium_hash_finup(struct dilithium_ctx *ctx,
+ const u8 *in, size_t in_size,
+ u8 *out, size_t out_size)
+{
+ shake256_update(&ctx->dilithium_hash_ctx, in, in_size);
+ shake256_squeeze(&ctx->dilithium_hash_ctx, out, out_size);
+ shake256_clear(&ctx->dilithium_hash_ctx);
+}
+
+static inline void dilithium_hash_final(struct dilithium_ctx *ctx, u8 *out, size_t out_size)
+{
+ shake256_squeeze(&ctx->dilithium_hash_ctx, out, out_size);
+ shake256_clear(&ctx->dilithium_hash_ctx);
+}
+
+#include "dilithium_87.h"
+#include "dilithium_65.h"
+#include "dilithium_44.h"
+
+enum dilithium_type {
+ DILITHIUM_UNKNOWN, /** Unknown key type */
+ DILITHIUM_87, /** Dilithium 87 */
+ DILITHIUM_65, /** Dilithium 65 */
+ DILITHIUM_44, /** Dilithium 44 */
+};
+
+/** @defgroup Dilithium ML-DSA / CRYSTALS-Dilithium Signature Mechanism
+ *
+ * \note Although the API uses the term "dilithium", the implementation complies
+ * with FIPS 204. Thus the terms Dilithium and ML-DSA are used interchangeably.
+ *
+ * Dilithium API concept
+ *
+ * The Dilithium API is accessible via the following header files with the
+ * mentioned purpose.
+ *
+ * * dilithium.h: This API is the generic API allowing the caller to select
+ * which Dilithium type (Dilithium 87, 65 or 44) are to be used. The selection
+ * is made either with the flag specified during key generation or by matching
+ * the size of the imported data with the different dilithium_*_load API
+ * calls. All remaining APIs take the information about the Dilithium type
+ * from the provided input data.
+ *
+ * This header file only provides inline functions which selectively call
+ * the API provided with the header files below.
+ *
+ * * dilithium_87.h: Direct access to Dilithium 87.
+ *
+ * * dilithium_65.h: Direct access to Dilithium 65.
+ *
+ * * dilithium_44.h: Direct access to Dilithium 44.
+ *
+ * To support the stream mode of the Dilithium signature operation, a
+ * context structure is required. This context structure can be allocated either
+ * on the stack or heap with \p DILITHIUM_CTX_ON_STACK or
+ * \p dilithium_ctx_alloc. The context should be zeroized
+ * and freed (only for heap) with \p dilithium_ctx_zero or
+ * \p dilithium_ctx_zero_free.
+ */
+
+/**
+ * @brief Dilithium secret key
+ */
+struct dilithium_sk {
+ enum dilithium_type dilithium_type;
+ union {
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ struct dilithium_87_sk sk_87;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ struct dilithium_65_sk sk_65;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ struct dilithium_44_sk sk_44;
+#endif
+ } key;
+};
+
+/**
+ * @brief Dilithium public key
+ */
+struct dilithium_pk {
+ enum dilithium_type dilithium_type;
+ union {
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ struct dilithium_87_pk pk_87;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ struct dilithium_65_pk pk_65;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ struct dilithium_44_pk pk_44;
+#endif
+ } key;
+};
+
+/**
+ * @brief Dilithium signature
+ */
+struct dilithium_sig {
+ enum dilithium_type dilithium_type;
+ union {
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ struct dilithium_87_sig sig_87;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ struct dilithium_65_sig sig_65;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ struct dilithium_44_sig sig_44;
+#endif
+ } sig;
+};
+
+/**
+ * @ingroup Dilithium
+ * @brief Allocates Dilithium context on heap
+ *
+ * @param [out] ctx Dilithium context pointer
+ *
+ * @return 0 (success) or < 0 on error
+ */
+struct dilithium_ctx *dilithium_ctx_alloc(void);
+
+/**
+ * @ingroup Dilithium
+ * @brief Allocates Dilithium context on heap with support to keep the internal
+ * representation of the key.
+ *
+ * \note See \p DILITHIUM_CTX_ON_STACK_AHAT for details.
+ *
+ * @param [out] ctx Dilithium context pointer
+ *
+ * @return 0 (success) or < 0 on error
+ */
+struct dilithium_ctx *dilithium_ctx_alloc_ahat(enum dilithium_type type);
+
+/**
+ * @ingroup Dilithium
+ * @brief Zeroizes and frees Dilithium context on heap
+ *
+ * @param [out] ctx Dilithium context pointer
+ */
+void dilithium_ctx_zero_free(struct dilithium_ctx *ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Zeroizes Dilithium context either on heap or on stack
+ *
+ * @param [out] ctx Dilithium context pointer
+ */
+void dilithium_ctx_zero(struct dilithium_ctx *ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Mark the Dilithium context to execute ML-DSA.Sign_internal /
+ * ML-DSA.Verify_internal.
+ *
+ * @param [in] ctx Dilithium context
+ */
+void dilithium_ctx_internal(struct dilithium_ctx *ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Set the hash type that was used for pre-hashing the message. The
+ * message digest is used with the HashML-DSA. The message digest
+ * is to be provided via the message pointer in the sign/verify APIs.
+ *
+ * @param [in] ctx Dilithium context
+ * @param [in] hash Hash context referencing the used hash for pre-hashing the
+ * message
+ */
+void dilithium_ctx_hash(struct dilithium_ctx *ctx,
+ struct crypto_shash *hash);
+
+/**
+ * @ingroup Dilithium
+ * @brief Specify the optional user context string to be applied with the
+ * Dilithium signature operation.
+ *
+ * @param [in] ctx Dilithium context
+ * @param [in] userctx User context string
+ * @param [in] userctxlen Size of the user context string
+ */
+void dilithium_ctx_userctx(struct dilithium_ctx *ctx,
+ const uint8_t *userctx, size_t userctxlen);
+
+/**
+ * @ingroup Dilithium
+ * @brief Specify the optional external mu value.
+ *
+ * \note If the external mu is specified, the signature generation /
+ * verification APIs do not require a message. In this case, the message buffer
+ * can be set to NULL.
+ *
+ * \note If both a message and an external mu are provided, the external mu
+ * takes precedence.
+ *
+ * @param [in] ctx Dilithium context
+ * @param [in] external_mu User context string
+ * @param [in] external_mu_len Size of the user context string
+ */
+void dilithium_ctx_external_mu(struct dilithium_ctx *ctx,
+ const uint8_t *external_mu,
+ size_t external_mu_len);
+
+/**
+ * @ingroup Dilithium
+ * @brief Invalidate the expanded key that potentially is stored in the context.
+ *
+ * This call can be executed on a context irrespective it was allocated with
+ * space for the expanded representation or not. Thus, the caller does not need
+ * to track whether the context supports the expanded key.
+ *
+ * @param [in] ctx Dilithium context
+ */
+void dilithium_ctx_drop_ahat(struct dilithium_ctx *ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Obtain Dilithium type from secret key
+ *
+ * @param [in] sk Secret key from which the type is to be obtained
+ *
+ * @return key type
+ */
+enum dilithium_type dilithium_sk_type(const struct dilithium_sk *sk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Obtain Dilithium type from public key
+ *
+ * @param [in] pk Public key from which the type is to be obtained
+ *
+ * @return key type
+ */
+enum dilithium_type dilithium_pk_type(const struct dilithium_pk *pk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Obtain Dilithium type from signature
+ *
+ * @param [in] sig Signature from which the type is to be obtained
+ *
+ * @return key type
+ */
+enum dilithium_type
+dilithium_sig_type(const struct dilithium_sig *sig);
+
+/**
+ * @ingroup Dilithium
+ * @brief Return the size of the Dilithium secret key.
+ *
+ * @param [in] dilithium_type Dilithium type for which the size is requested
+ *
+ * @return requested size
+ */
+__pure unsigned int
+dilithium_sk_size(enum dilithium_type dilithium_type);
+
+/**
+ * @ingroup Dilithium
+ * @brief Return the size of the Dilithium public key.
+ *
+ * @param [in] dilithium_type Dilithium type for which the size is requested
+ *
+ * @return requested size
+ */
+__pure unsigned int
+dilithium_pk_size(enum dilithium_type dilithium_type);
+
+/**
+ * @ingroup Dilithium
+ * @brief Return the size of the Dilithium signature.
+ *
+ * @param [in] dilithium_type Dilithium type for which the size is requested
+ *
+ * @return requested size
+ */
+unsigned int __pure
+dilithium_sig_size(enum dilithium_type dilithium_type);
+
+/**
+ * @ingroup Dilithium
+ * @brief Load a Dilithium secret key provided with a buffer into the leancrypto
+ * data structure.
+ *
+ * @param [out] sk Secret key to be filled (the caller must have it allocated)
+ * @param [in] src_key Buffer that holds the key to be imported
+ * @param [in] src_key_len Buffer length that holds the key to be imported
+ *
+ * @return 0 on success or < 0 on error
+ */
+int dilithium_sk_load(struct dilithium_sk *sk, const uint8_t *src_key,
+ size_t src_key_len);
+
+/**
+ * @ingroup Dilithium
+ * @brief Load a Dilithium public key provided with a buffer into the leancrypto
+ * data structure.
+ *
+ * @param [out] pk Secret key to be filled (the caller must have it allocated)
+ * @param [in] src_key Buffer that holds the key to be imported
+ * @param [in] src_key_len Buffer length that holds the key to be imported
+ *
+ * @return 0 on success or < 0 on error
+ */
+int dilithium_pk_load(struct dilithium_pk *pk, const uint8_t *src_key,
+ size_t src_key_len);
+
+/**
+ * @ingroup Dilithium
+ * @brief Load a Dilithium signature provided with a buffer into the leancrypto
+ * data structure.
+ *
+ * @param [out] sig Secret key to be filled (the caller must have it allocated)
+ * @param [in] src_sig Buffer that holds the signature to be imported
+ * @param [in] src_sig_len Buffer length that holds the signature to be imported
+ *
+ * @return 0 on success or < 0 on error
+ */
+int dilithium_sig_load(struct dilithium_sig *sig, const uint8_t *src_sig,
+ size_t src_sig_len);
+
+/**
+ * @ingroup Dilithium
+ * @brief Obtain the reference to the Dilithium key and its length
+ *
+ * \note Only pointer references into the leancrypto data structure are returned
+ * which implies that any modification will modify the leancrypto key, too.
+ *
+ * @param [out] dilithium_key Dilithium key pointer
+ * @param [out] dilithium_key_len Length of the key buffer
+ * @param [in] sk Dilithium secret key from which the references are obtained
+ *
+ * @return 0 on success, != 0 on error
+ */
+int dilithium_sk_ptr(uint8_t **dilithium_key, size_t *dilithium_key_len,
+ struct dilithium_sk *sk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Obtain the reference to the Dilithium key and its length
+ *
+ * \note Only pointer references into the leancrypto data structure are returned
+ * which implies that any modification will modify the leancrypto key, too.
+ *
+ * @param [out] dilithium_key Dilithium key pointer
+ * @param [out] dilithium_key_len Length of the key buffer
+ * @param [in] pk Dilithium publi key from which the references are obtained
+ *
+ * @return 0 on success, != 0 on error
+ */
+int dilithium_pk_ptr(uint8_t **dilithium_key, size_t *dilithium_key_len,
+ struct dilithium_pk *pk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Obtain the reference to the Dilithium signature and its length
+ *
+ * \note Only pointer references into the leancrypto data structure are returned
+ * which implies that any modification will modify the leancrypto signature,
+ * too.
+ *
+ * @param [out] dilithium_sig Dilithium signature pointer
+ * @param [out] dilithium_sig_len Length of the signature buffer
+ * @param [in] sig Dilithium signature from which the references are obtained
+ *
+ * @return 0 on success, != 0 on error
+ */
+int dilithium_sig_ptr(uint8_t **dilithium_sig, size_t *dilithium_sig_len,
+ struct dilithium_sig *sig);
+
+/**
+ * @ingroup Dilithium
+ * @brief Computes signature in one shot
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_sign(struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Computes signature woth user context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * Using the ctx structure, the caller can select 3 different types of ML-DSA:
+ *
+ * * ctx->dilithium_prehash_type set to a hash type, HashML-DSA is assumed which
+ * implies that the message m must be exactly digest size (FIPS 204 section
+ * 5.4)
+ *
+ * * ctx->ml_dsa_internal set to 1, the ML-DSA.Sign_internal and
+ * .Verify_internal are executed (FIPS 204 chapter 6)
+ *
+ * * both aforementioned parameter set to NULL / 0, ML-DSA.Sign and
+ * ML-DSA.Verify are executed (FIPS 204 sections 5.2 and 5.3)
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_sign_ctx(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Initializes a signature operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_update and dilithium_sign_final.
+ *
+ * @param [in,out] ctx pointer Dilithium context
+ * @param [in] sk pointer to bit-packed secret key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_sign_init(struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_init and dilithium_sign_final.
+ *
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_sign_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @ingroup Dilithium
+ * @brief Computes signature
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_sign_final(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @ingroup Dilithium
+ * @brief Verifies signature in one shot
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_verify(const struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Verifies signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_verify_ctx(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Initializes a signature verification operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_update and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_verify_init(struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk);
+
+/**
+ * @ingroup Dilithium
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_init and
+ * dilithium_verify_final.
+ *
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_verify_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @ingroup Dilithium
+ * @brief Verifies signature
+ *
+ * @param [in] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_verify_final(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk);
+
+/* No valgrind */
+#define poison(addr, len)
+#define unpoison(addr, len)
+#define is_poisoned(addr, len)
+
+#endif /* DILITHIUM_H */
diff --git a/crypto/ml_dsa/dilithium_44.c b/crypto/ml_dsa/dilithium_44.c
new file mode 100644
index 000000000000..1aea716016f0
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_44.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+#define DILITHIUM_TYPE_44
+#include "dilithium.h"
+
+#define DILITHIUM_TYPE "44"
+#define DILITHIUM_MODE 2
+#define DILITHIUM_NIST_CATEGORY DILITHIUM44_NIST_CATEGORY
+#define DILITHIUM_LAMBDA DILITHIUM44_LAMBDA
+#define DILITHIUM_K DILITHIUM44_K
+#define DILITHIUM_L DILITHIUM44_L
+#define DILITHIUM_ETA DILITHIUM44_ETA
+#define DILITHIUM_TAU DILITHIUM44_TAU
+#define DILITHIUM_BETA DILITHIUM44_BETA
+#define DILITHIUM_GAMMA1 DILITHIUM44_GAMMA1
+#define DILITHIUM_GAMMA2 DILITHIUM44_GAMMA2
+#define DILITHIUM_OMEGA DILITHIUM44_OMEGA
+
+#define DILITHIUM_CTILDE_BYTES DILITHIUM44_CTILDE_BYTES
+#define DILITHIUM_POLYT1_PACKEDBYTES DILITHIUM44_POLYT1_PACKEDBYTES
+#define DILITHIUM_POLYT0_PACKEDBYTES DILITHIUM44_POLYT0_PACKEDBYTES
+#define DILITHIUM_POLYVECH_PACKEDBYTES DILITHIUM44_POLYVECH_PACKEDBYTES
+#define DILITHIUM_POLYZ_PACKEDBYTES DILITHIUM44_POLYZ_PACKEDBYTES
+#define DILITHIUM_POLYW1_PACKEDBYTES DILITHIUM44_POLYW1_PACKEDBYTES
+#define DILITHIUM_POLYETA_PACKEDBYTES DILITHIUM44_POLYETA_PACKEDBYTES
+
+#define DILITHIUM_PUBLICKEYBYTES DILITHIUM44_PUBLICKEYBYTES
+#define DILITHIUM_SECRETKEYBYTES DILITHIUM44_SECRETKEYBYTES
+#define DILITHIUM_CRYPTO_BYTES DILITHIUM44_CRYPTO_BYTES
+
+#include "dilithium_ntt.c"
+#include "dilithium_poly.c"
+#include "dilithium_rounding.c"
+#include "dilithium_signature_c.c"
diff --git a/crypto/ml_dsa/dilithium_44.h b/crypto/ml_dsa/dilithium_44.h
new file mode 100644
index 000000000000..6490c83e7100
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_44.h
@@ -0,0 +1,377 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_44_H
+#define DILITHIUM_44_H
+
+/*
+ * Dilithium Security Levels
+ * 2 -> 192 bits of security strength
+ * 3 -> 225 bits of security strength
+ * 5 -> 257 bits of security strength
+ */
+
+/* DILITHIUM_MODE 2 */
+#define DILITHIUM44_NIST_CATEGORY 1
+#define DILITHIUM44_LAMBDA 128
+#define DILITHIUM44_K 4
+#define DILITHIUM44_L 4
+#define DILITHIUM44_ETA 2
+#define DILITHIUM44_TAU 39
+#define DILITHIUM44_BETA 78
+#define DILITHIUM44_GAMMA1 (1 << 17)
+#define DILITHIUM44_GAMMA2 ((DILITHIUM_Q - 1) / 88)
+#define DILITHIUM44_OMEGA 80
+
+#define DILITHIUM44_CTILDE_BYTES (DILITHIUM44_LAMBDA * 2 / 8)
+#define DILITHIUM44_POLYT1_PACKEDBYTES 320
+#define DILITHIUM44_POLYT0_PACKEDBYTES 416
+#define DILITHIUM44_POLYVECH_PACKEDBYTES (DILITHIUM44_OMEGA + DILITHIUM44_K)
+
+#if DILITHIUM44_GAMMA1 == (1 << 17)
+#define DILITHIUM44_POLYZ_PACKEDBYTES 576
+#elif DILITHIUM44_GAMMA1 == (1 << 19)
+#define DILITHIUM44_POLYZ_PACKEDBYTES 640
+#endif
+
+#if DILITHIUM44_GAMMA2 == (DILITHIUM_Q - 1) / 88
+#define DILITHIUM44_POLYW1_PACKEDBYTES 192
+#elif DILITHIUM44_GAMMA2 == (DILITHIUM_Q - 1) / 32
+#define DILITHIUM44_POLYW1_PACKEDBYTES 128
+#endif
+
+#if DILITHIUM44_ETA == 2
+#define DILITHIUM44_POLYETA_PACKEDBYTES 96
+#elif DILITHIUM44_ETA == 4
+#define DILITHIUM44_POLYETA_PACKEDBYTES 128
+#endif
+
+/*
+ * Sizes of the different Dilithium buffer types.
+ *
+ * WARNING: Do not use these defines in your code. If you need the sizes of
+ * the different variable sizes, use sizeof of the different variable structs or
+ * use the different *_size functions documented below to retrieve the data size
+ * of a particular Dilithium component.
+ */
+#define DILITHIUM44_PUBLICKEYBYTES \
+ (DILITHIUM_SEEDBYTES + \
+ DILITHIUM44_K * DILITHIUM44_POLYT1_PACKEDBYTES)
+#define DILITHIUM44_SECRETKEYBYTES \
+ (2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES + \
+ DILITHIUM44_L * DILITHIUM44_POLYETA_PACKEDBYTES + \
+ DILITHIUM44_K * DILITHIUM44_POLYETA_PACKEDBYTES + \
+ DILITHIUM44_K * DILITHIUM44_POLYT0_PACKEDBYTES)
+
+#define DILITHIUM44_CRYPTO_BYTES \
+ (DILITHIUM44_CTILDE_BYTES + \
+ DILITHIUM44_L * DILITHIUM44_POLYZ_PACKEDBYTES + \
+ DILITHIUM44_POLYVECH_PACKEDBYTES)
+
+#ifndef __ASSEMBLER__
+/**
+ * @brief Dilithium secret key
+ */
+struct dilithium_44_sk {
+ uint8_t sk[DILITHIUM44_SECRETKEYBYTES];
+};
+
+/**
+ * @brief Dilithium public key
+ */
+struct dilithium_44_pk {
+ uint8_t pk[DILITHIUM44_PUBLICKEYBYTES];
+};
+
+/**
+ * @brief Dilithium signature
+ */
+struct dilithium_44_sig {
+ uint8_t sig[DILITHIUM44_CRYPTO_BYTES];
+};
+
+/*
+ * The alignment is based on largest alignment of a polyvecl typedef - this is
+ * the AVX2 definition.
+ */
+#define DILITHIUM_AHAT_ALIGNMENT (32)
+
+/* Size of the AHat matrix for ML-DSA 87 */
+#define DILITHIUM_44_AHAT_SIZE \
+ (256 * sizeof(int32_t) * DILITHIUM44_K * DILITHIUM44_L)
+
+/**
+ * @brief Zeroize Dilithium context allocated with
+ * DILITHIUM_CTX_ON_STACK dilithium_ed25519_alloc
+ *
+ * @param [in] ctx Dilithium context to be zeroized
+ */
+static inline void dilithium_44_ctx_zero(struct dilithium_ctx *ctx)
+{
+ if (!ctx)
+ return;
+ dilithium_hash_clear(ctx);
+ if (ctx->ahat) {
+ memzero_explicit(ctx->ahat, ctx->ahat_size);
+ ctx->ahat_expanded = 0;
+ }
+}
+
+/**
+ * @brief Allocate Dilithium stream context on heap
+ *
+ * @param [out] ctx Allocated Dilithium stream context
+ *
+ * @return: 0 on success, < 0 on error
+ */
+struct dilithium_ctx *dilithium_44_ctx_alloc(void);
+
+/**
+ * @brief Allocate Dilithium stream context on heap including additional
+ * parameter relevant for the signature operation.
+ *
+ * \note See \p DILITHIUM_44_CTX_ON_STACK_AHAT for details.
+ *
+ * @param [out] ctx Allocated Dilithium stream context
+ *
+ * @return: 0 on success, < 0 on error
+ */
+struct dilithium_ctx *dilithium_44_ctx_alloc_ahat(void);
+
+/**
+ * @brief Zeroize and free Dilithium stream context
+ *
+ * @param [in] ctx Dilithium stream context to be zeroized and freed
+ */
+void dilithium_44_ctx_zero_free(struct dilithium_ctx *ctx);
+
+/**
+ * @brief Return the size of the Dilithium secret key.
+ */
+__pure
+static inline unsigned int dilithium_44_sk_size(void)
+{
+ return sizeof_field(struct dilithium_44_sk, sk);
+}
+
+/**
+ * @brief Return the size of the Dilithium public key.
+ */
+__pure
+static inline unsigned int dilithium_44_pk_size(void)
+{
+ return sizeof_field(struct dilithium_44_pk, pk);
+}
+
+/**
+ * @brief Return the size of the Dilithium signature.
+ */
+__pure
+static inline unsigned int dilithium_44_sig_size(void)
+{
+ return sizeof_field(struct dilithium_44_sig, sig);
+}
+
+/**
+ * @brief Computes ML-DSA signature in one shot
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_sign(struct dilithium_44_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_44_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Computes signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_sign_ctx(struct dilithium_44_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_44_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Initializes a signature operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_update and dilithium_sign_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] sk pointer to bit-packed secret key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_44_sign_init(struct dilithium_ctx *ctx,
+ const struct dilithium_44_sk *sk);
+
+/**
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_init and dilithium_sign_final.
+ *
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_sign_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @brief Computes signature
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_sign_final(struct dilithium_44_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_44_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Verifies ML-DSA signature in one shot
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_44_verify(const struct dilithium_44_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_44_pk *pk);
+
+/**
+ * @brief Verifies signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_44_verify_ctx(const struct dilithium_44_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_44_pk *pk);
+
+/**
+ * @brief Initializes a signature verification operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_update and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_44_verify_init(struct dilithium_ctx *ctx,
+ const struct dilithium_44_pk *pk);
+
+/**
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_init and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_verify_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @brief Verifies signature
+ *
+ * @param [in] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_44_verify_final(const struct dilithium_44_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_44_pk *pk);
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* DILITHIUM_44_H */
diff --git a/crypto/ml_dsa/dilithium_65.c b/crypto/ml_dsa/dilithium_65.c
new file mode 100644
index 000000000000..08f3a8e71228
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_65.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+#define DILITHIUM_TYPE_65
+#include "dilithium.h"
+
+#define DILITHIUM_TYPE "65"
+#define DILITHIUM_MODE 3
+#define DILITHIUM_NIST_CATEGORY DILITHIUM65_NIST_CATEGORY
+#define DILITHIUM_LAMBDA DILITHIUM65_LAMBDA
+#define DILITHIUM_K DILITHIUM65_K
+#define DILITHIUM_L DILITHIUM65_L
+#define DILITHIUM_ETA DILITHIUM65_ETA
+#define DILITHIUM_TAU DILITHIUM65_TAU
+#define DILITHIUM_BETA DILITHIUM65_BETA
+#define DILITHIUM_GAMMA1 DILITHIUM65_GAMMA1
+#define DILITHIUM_GAMMA2 DILITHIUM65_GAMMA2
+#define DILITHIUM_OMEGA DILITHIUM65_OMEGA
+
+#define DILITHIUM_CTILDE_BYTES DILITHIUM65_CTILDE_BYTES
+#define DILITHIUM_POLYT1_PACKEDBYTES DILITHIUM65_POLYT1_PACKEDBYTES
+#define DILITHIUM_POLYT0_PACKEDBYTES DILITHIUM65_POLYT0_PACKEDBYTES
+#define DILITHIUM_POLYVECH_PACKEDBYTES DILITHIUM65_POLYVECH_PACKEDBYTES
+#define DILITHIUM_POLYZ_PACKEDBYTES DILITHIUM65_POLYZ_PACKEDBYTES
+#define DILITHIUM_POLYW1_PACKEDBYTES DILITHIUM65_POLYW1_PACKEDBYTES
+#define DILITHIUM_POLYETA_PACKEDBYTES DILITHIUM65_POLYETA_PACKEDBYTES
+
+#define DILITHIUM_PUBLICKEYBYTES DILITHIUM65_PUBLICKEYBYTES
+#define DILITHIUM_SECRETKEYBYTES DILITHIUM65_SECRETKEYBYTES
+#define DILITHIUM_CRYPTO_BYTES DILITHIUM65_CRYPTO_BYTES
+
+#include "dilithium_ntt.c"
+#include "dilithium_poly.c"
+#include "dilithium_rounding.c"
+#include "dilithium_signature_c.c"
diff --git a/crypto/ml_dsa/dilithium_65.h b/crypto/ml_dsa/dilithium_65.h
new file mode 100644
index 000000000000..0a36f7eed63e
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_65.h
@@ -0,0 +1,377 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_65_H
+#define DILITHIUM_65_H
+
+/*
+ * Dilithium Security Levels
+ * 2 -> 192 bits of security strength
+ * 3 -> 225 bits of security strength
+ * 5 -> 257 bits of security strength
+ */
+
+/* DILITHIUM_MODE 3 */
+#define DILITHIUM65_NIST_CATEGORY 3
+#define DILITHIUM65_LAMBDA 192
+#define DILITHIUM65_K 6
+#define DILITHIUM65_L 5
+#define DILITHIUM65_ETA 4
+#define DILITHIUM65_TAU 49
+#define DILITHIUM65_BETA 196
+#define DILITHIUM65_GAMMA1 (1 << 19)
+#define DILITHIUM65_GAMMA2 ((DILITHIUM_Q - 1) / 32)
+#define DILITHIUM65_OMEGA 55
+
+#define DILITHIUM65_CTILDE_BYTES (DILITHIUM65_LAMBDA * 2 / 8)
+#define DILITHIUM65_POLYT1_PACKEDBYTES 320
+#define DILITHIUM65_POLYT0_PACKEDBYTES 416
+#define DILITHIUM65_POLYVECH_PACKEDBYTES (DILITHIUM65_OMEGA + DILITHIUM65_K)
+
+#if DILITHIUM65_GAMMA1 == (1 << 17)
+#define DILITHIUM65_POLYZ_PACKEDBYTES 576
+#elif DILITHIUM65_GAMMA1 == (1 << 19)
+#define DILITHIUM65_POLYZ_PACKEDBYTES 640
+#endif
+
+#if DILITHIUM65_GAMMA2 == (DILITHIUM_Q - 1) / 88
+#define DILITHIUM65_POLYW1_PACKEDBYTES 192
+#elif DILITHIUM65_GAMMA2 == (DILITHIUM_Q - 1) / 32
+#define DILITHIUM65_POLYW1_PACKEDBYTES 128
+#endif
+
+#if DILITHIUM65_ETA == 2
+#define DILITHIUM65_POLYETA_PACKEDBYTES 96
+#elif DILITHIUM65_ETA == 4
+#define DILITHIUM65_POLYETA_PACKEDBYTES 128
+#endif
+
+/*
+ * Sizes of the different Dilithium buffer types.
+ *
+ * WARNING: Do not use these defines in your code. If you need the sizes of
+ * the different variable sizes, use sizeof of the different variable structs or
+ * use the different *_size functions documented below to retrieve the data size
+ * of a particular Dilithium component.
+ */
+#define DILITHIUM65_PUBLICKEYBYTES \
+ (DILITHIUM_SEEDBYTES + \
+ DILITHIUM65_K * DILITHIUM65_POLYT1_PACKEDBYTES)
+#define DILITHIUM65_SECRETKEYBYTES \
+ (2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES + \
+ DILITHIUM65_L * DILITHIUM65_POLYETA_PACKEDBYTES + \
+ DILITHIUM65_K * DILITHIUM65_POLYETA_PACKEDBYTES + \
+ DILITHIUM65_K * DILITHIUM65_POLYT0_PACKEDBYTES)
+
+#define DILITHIUM65_CRYPTO_BYTES \
+ (DILITHIUM65_CTILDE_BYTES + \
+ DILITHIUM65_L * DILITHIUM65_POLYZ_PACKEDBYTES + \
+ DILITHIUM65_POLYVECH_PACKEDBYTES)
+
+#ifndef __ASSEMBLER__
+/**
+ * @brief Dilithium secret key
+ */
+struct dilithium_65_sk {
+ uint8_t sk[DILITHIUM65_SECRETKEYBYTES];
+};
+
+/**
+ * @brief Dilithium public key
+ */
+struct dilithium_65_pk {
+ uint8_t pk[DILITHIUM65_PUBLICKEYBYTES];
+};
+
+/**
+ * @brief Dilithium signature
+ */
+struct dilithium_65_sig {
+ uint8_t sig[DILITHIUM65_CRYPTO_BYTES];
+};
+
+/*
+ * The alignment is based on largest alignment of a polyvecl typedef - this is
+ * the AVX2 definition.
+ */
+#define DILITHIUM_AHAT_ALIGNMENT (32)
+
+/* Size of the AHat matrix for ML-DSA 87 */
+#define DILITHIUM_65_AHAT_SIZE \
+ (256 * sizeof(int32_t) * DILITHIUM65_K * DILITHIUM65_L)
+
+/**
+ * @brief Zeroize Dilithium context allocated with
+ * DILITHIUM_CTX_ON_STACK dilithium_ed25519_alloc
+ *
+ * @param [in] ctx Dilithium context to be zeroized
+ */
+static inline void dilithium_65_ctx_zero(struct dilithium_ctx *ctx)
+{
+ if (!ctx)
+ return;
+ dilithium_hash_clear(ctx);
+ if (ctx->ahat) {
+ memzero_explicit(ctx->ahat, ctx->ahat_size);
+ ctx->ahat_expanded = 0;
+ }
+}
+
+/**
+ * @brief Allocate Dilithium stream context on heap
+ *
+ * @param [out] ctx Allocated Dilithium stream context
+ *
+ * @return: 0 on success, < 0 on error
+ */
+struct dilithium_ctx *dilithium_65_ctx_alloc(void);
+
+/**
+ * @brief Allocate Dilithium stream context on heap including additional
+ * parameter relevant for the signature operation.
+ *
+ * \note See \p DILITHIUM_65_CTX_ON_STACK_AHAT for details.
+ *
+ * @param [out] ctx Allocated Dilithium stream context
+ *
+ * @return: 0 on success, < 0 on error
+ */
+struct dilithium_ctx *dilithium_65_ctx_alloc_ahat(void);
+
+/**
+ * @brief Zeroize and free Dilithium stream context
+ *
+ * @param [in] ctx Dilithium stream context to be zeroized and freed
+ */
+void dilithium_65_ctx_zero_free(struct dilithium_ctx *ctx);
+
+/**
+ * @brief Return the size of the Dilithium secret key.
+ */
+__pure
+static inline unsigned int dilithium_65_sk_size(void)
+{
+ return sizeof_field(struct dilithium_65_sk, sk);
+}
+
+/**
+ * @brief Return the size of the Dilithium public key.
+ */
+__pure
+static inline unsigned int dilithium_65_pk_size(void)
+{
+ return sizeof_field(struct dilithium_65_pk, pk);
+}
+
+/**
+ * @brief Return the size of the Dilithium signature.
+ */
+__pure
+static inline unsigned int dilithium_65_sig_size(void)
+{
+ return sizeof_field(struct dilithium_65_sig, sig);
+}
+
+/**
+ * @brief Computes ML-DSA signature in one shot
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_sign(struct dilithium_65_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_65_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Computes signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_sign_ctx(struct dilithium_65_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_65_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Initializes a signature operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_update and dilithium_sign_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] sk pointer to bit-packed secret key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_65_sign_init(struct dilithium_ctx *ctx,
+ const struct dilithium_65_sk *sk);
+
+/**
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_init and dilithium_sign_final.
+ *
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_sign_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @brief Computes signature
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_sign_final(struct dilithium_65_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_65_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Verifies ML-DSA signature in one shot
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_65_verify(const struct dilithium_65_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_65_pk *pk);
+
+/**
+ * @brief Verifies signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_65_verify_ctx(const struct dilithium_65_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_65_pk *pk);
+
+/**
+ * @brief Initializes a signature verification operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_update and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_65_verify_init(struct dilithium_ctx *ctx,
+ const struct dilithium_65_pk *pk);
+
+/**
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_init and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_verify_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @brief Verifies signature
+ *
+ * @param [in] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_65_verify_final(const struct dilithium_65_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_65_pk *pk);
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* DILITHIUM_65_H */
diff --git a/crypto/ml_dsa/dilithium_87.c b/crypto/ml_dsa/dilithium_87.c
new file mode 100644
index 000000000000..fcc3e0229ed9
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_87.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+#define DILITHIUM_TYPE_87
+#include "dilithium.h"
+
+#define DILITHIUM_TYPE "87"
+#define DILITHIUM_MODE 5
+#define DILITHIUM_NIST_CATEGORY DILITHIUM87_NIST_CATEGORY
+#define DILITHIUM_LAMBDA DILITHIUM87_LAMBDA
+#define DILITHIUM_K DILITHIUM87_K
+#define DILITHIUM_L DILITHIUM87_L
+#define DILITHIUM_ETA DILITHIUM87_ETA
+#define DILITHIUM_TAU DILITHIUM87_TAU
+#define DILITHIUM_BETA DILITHIUM87_BETA
+#define DILITHIUM_GAMMA1 DILITHIUM87_GAMMA1
+#define DILITHIUM_GAMMA2 DILITHIUM87_GAMMA2
+#define DILITHIUM_OMEGA DILITHIUM87_OMEGA
+
+#define DILITHIUM_CTILDE_BYTES DILITHIUM87_CTILDE_BYTES
+#define DILITHIUM_POLYT1_PACKEDBYTES DILITHIUM87_POLYT1_PACKEDBYTES
+#define DILITHIUM_POLYT0_PACKEDBYTES DILITHIUM87_POLYT0_PACKEDBYTES
+#define DILITHIUM_POLYVECH_PACKEDBYTES DILITHIUM87_POLYVECH_PACKEDBYTES
+#define DILITHIUM_POLYZ_PACKEDBYTES DILITHIUM87_POLYZ_PACKEDBYTES
+#define DILITHIUM_POLYW1_PACKEDBYTES DILITHIUM87_POLYW1_PACKEDBYTES
+#define DILITHIUM_POLYETA_PACKEDBYTES DILITHIUM87_POLYETA_PACKEDBYTES
+
+#define DILITHIUM_PUBLICKEYBYTES DILITHIUM87_PUBLICKEYBYTES
+#define DILITHIUM_SECRETKEYBYTES DILITHIUM87_SECRETKEYBYTES
+#define DILITHIUM_CRYPTO_BYTES DILITHIUM87_CRYPTO_BYTES
+
+#include "dilithium_ntt.c"
+#include "dilithium_poly.c"
+#include "dilithium_rounding.c"
+#include "dilithium_signature_c.c"
diff --git a/crypto/ml_dsa/dilithium_87.h b/crypto/ml_dsa/dilithium_87.h
new file mode 100644
index 000000000000..eaed8e675383
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_87.h
@@ -0,0 +1,377 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_87_H
+#define DILITHIUM_87_H
+
+/*
+ * Dilithium Security Levels
+ * 2 -> 192 bits of security strength
+ * 3 -> 225 bits of security strength
+ * 5 -> 257 bits of security strength
+ */
+
+/* DILITHIUM_MODE 5 */
+#define DILITHIUM87_NIST_CATEGORY 5
+#define DILITHIUM87_LAMBDA 256
+#define DILITHIUM87_K 8
+#define DILITHIUM87_L 7
+#define DILITHIUM87_ETA 2
+#define DILITHIUM87_TAU 60
+#define DILITHIUM87_BETA 120
+#define DILITHIUM87_GAMMA1 (1 << 19)
+#define DILITHIUM87_GAMMA2 ((DILITHIUM_Q - 1) / 32)
+#define DILITHIUM87_OMEGA 75
+
+#define DILITHIUM87_CTILDE_BYTES (DILITHIUM87_LAMBDA * 2 / 8)
+#define DILITHIUM87_POLYT1_PACKEDBYTES 320
+#define DILITHIUM87_POLYT0_PACKEDBYTES 416
+#define DILITHIUM87_POLYVECH_PACKEDBYTES (DILITHIUM87_OMEGA + DILITHIUM87_K)
+
+#if DILITHIUM87_GAMMA1 == (1 << 17)
+#define DILITHIUM87_POLYZ_PACKEDBYTES 576
+#elif DILITHIUM87_GAMMA1 == (1 << 19)
+#define DILITHIUM87_POLYZ_PACKEDBYTES 640
+#endif
+
+#if DILITHIUM87_GAMMA2 == (DILITHIUM_Q - 1) / 88
+#define DILITHIUM87_POLYW1_PACKEDBYTES 192
+#elif DILITHIUM87_GAMMA2 == (DILITHIUM_Q - 1) / 32
+#define DILITHIUM87_POLYW1_PACKEDBYTES 128
+#endif
+
+#if DILITHIUM87_ETA == 2
+#define DILITHIUM87_POLYETA_PACKEDBYTES 96
+#elif DILITHIUM87_ETA == 4
+#define DILITHIUM87_POLYETA_PACKEDBYTES 128
+#endif
+
+/*
+ * Sizes of the different Dilithium buffer types.
+ *
+ * WARNING: Do not use these defines in your code. If you need the sizes of
+ * the different variable sizes, use sizeof of the different variable structs or
+ * use the different *_size functions documented below to retrieve the data size
+ * of a particular Dilithium component.
+ */
+#define DILITHIUM87_PUBLICKEYBYTES \
+ (DILITHIUM_SEEDBYTES + \
+ DILITHIUM87_K * DILITHIUM87_POLYT1_PACKEDBYTES)
+#define DILITHIUM87_SECRETKEYBYTES \
+ (2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES + \
+ DILITHIUM87_L * DILITHIUM87_POLYETA_PACKEDBYTES + \
+ DILITHIUM87_K * DILITHIUM87_POLYETA_PACKEDBYTES + \
+ DILITHIUM87_K * DILITHIUM87_POLYT0_PACKEDBYTES)
+
+#define DILITHIUM87_CRYPTO_BYTES \
+ (DILITHIUM87_CTILDE_BYTES + \
+ DILITHIUM87_L * DILITHIUM87_POLYZ_PACKEDBYTES + \
+ DILITHIUM87_POLYVECH_PACKEDBYTES)
+
+#ifndef __ASSEMBLER__
+/**
+ * @brief Dilithium secret key
+ */
+struct dilithium_87_sk {
+ uint8_t sk[DILITHIUM87_SECRETKEYBYTES];
+};
+
+/**
+ * @brief Dilithium public key
+ */
+struct dilithium_87_pk {
+ uint8_t pk[DILITHIUM87_PUBLICKEYBYTES];
+};
+
+/**
+ * @brief Dilithium signature
+ */
+struct dilithium_87_sig {
+ uint8_t sig[DILITHIUM87_CRYPTO_BYTES];
+};
+
+/*
+ * The alignment is based on largest alignment of a polyvecl typedef - this is
+ * the AVX2 definition.
+ */
+#define DILITHIUM_AHAT_ALIGNMENT (32)
+
+/* Size of the AHat matrix for ML-DSA 87 */
+#define DILITHIUM_87_AHAT_SIZE \
+ (256 * sizeof(int32_t) * DILITHIUM87_K * DILITHIUM87_L)
+
+/**
+ * @brief Zeroize Dilithium context allocated with
+ * DILITHIUM87_CTX_ON_STACK dilithium_ed25519_alloc
+ *
+ * @param [in] ctx Dilithium context to be zeroized
+ */
+static inline void dilithium_87_ctx_zero(struct dilithium_ctx *ctx)
+{
+ if (!ctx)
+ return;
+ dilithium_hash_clear(ctx);
+ if (ctx->ahat) {
+ memzero_explicit(ctx->ahat, ctx->ahat_size);
+ ctx->ahat_expanded = 0;
+ }
+}
+
+/**
+ * @brief Allocate Dilithium stream context on heap
+ *
+ * @param [out] ctx Allocated Dilithium stream context
+ *
+ * @return: 0 on success, < 0 on error
+ */
+struct dilithium_ctx *dilithium_87_ctx_alloc(void);
+
+/**
+ * @brief Allocate Dilithium stream context on heap including additional
+ * parameter relevant for the signature operation.
+ *
+ * \note See \p DILITHIUM_87_CTX_ON_STACK_AHAT for details.
+ *
+ * @param [out] ctx Allocated Dilithium stream context
+ *
+ * @return: 0 on success, < 0 on error
+ */
+struct dilithium_ctx *dilithium_87_ctx_alloc_ahat(void);
+
+/**
+ * @brief Zeroize and free Dilithium stream context
+ *
+ * @param [in] ctx Dilithium stream context to be zeroized and freed
+ */
+void dilithium_87_ctx_zero_free(struct dilithium_ctx *ctx);
+
+/**
+ * @brief Return the size of the Dilithium secret key.
+ */
+__pure
+static inline unsigned int dilithium_87_sk_size(void)
+{
+ return sizeof_field(struct dilithium_87_sk, sk);
+}
+
+/**
+ * @brief Return the size of the Dilithium public key.
+ */
+__pure
+static inline unsigned int dilithium_87_pk_size(void)
+{
+ return sizeof_field(struct dilithium_87_pk, pk);
+}
+
+/**
+ * @brief Return the size of the Dilithium signature.
+ */
+__pure
+static inline unsigned int dilithium_87_sig_size(void)
+{
+ return sizeof_field(struct dilithium_87_sig, sig);
+}
+
+/**
+ * @brief Computes ML-DSA signature in one shot
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_sign(struct dilithium_87_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_87_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Computes signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_sign_ctx(struct dilithium_87_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_87_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Initializes a signature operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_update and dilithium_sign_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] sk pointer to bit-packed secret key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_87_sign_init(struct dilithium_ctx *ctx,
+ const struct dilithium_87_sk *sk);
+
+/**
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_sign_init and dilithium_sign_final.
+ *
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_sign_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @brief Computes signature
+ *
+ * @param [out] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] sk pointer to bit-packed secret key
+ * @param [in] rng_ctx pointer to seeded random number generator context - when
+ * pointer is non-NULL, perform a randomized signing.
+ * Otherwise use deterministic signing.
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_sign_final(struct dilithium_87_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_87_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Verifies ML-DSA signature in one shot
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_87_verify(const struct dilithium_87_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_87_pk *pk);
+
+/**
+ * @brief Verifies signature with Dilithium context in one shot
+ *
+ * This API allows the caller to provide an arbitrary context buffer which
+ * is hashed together with the message to form the message digest to be signed.
+ *
+ * @param [in] sig pointer to input signature
+ * @param [in] ctx reference to the allocated Dilithium context handle
+ * @param [in] m pointer to message
+ * @param [in] mlen length of message
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_87_verify_ctx(const struct dilithium_87_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_87_pk *pk);
+
+/**
+ * @brief Initializes a signature verification operation
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_update and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to an allocated Dilithium context
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 (success) or < 0 on error; -EOPNOTSUPP is returned if a different
+ * hash than lc_shake256 is used.
+ */
+int dilithium_87_verify_init(struct dilithium_ctx *ctx,
+ const struct dilithium_87_pk *pk);
+
+/**
+ * @brief Add more data to an already initialized signature state
+ *
+ * This call is intended to support messages that are located in non-contiguous
+ * places and even becomes available at different times. This call is to be
+ * used together with the dilithium_verify_init and
+ * dilithium_verify_final.
+ *
+ * @param [in,out] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init
+ * @param [in] m pointer to message to be signed
+ * @param [in] mlen length of message
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_verify_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+
+/**
+ * @brief Verifies signature
+ *
+ * @param [in] sig pointer to output signature
+ * @param [in] ctx pointer to Dilithium context that was initialized with
+ * dilithium_sign_init and filled with
+ * dilithium_sign_update
+ * @param [in] pk pointer to bit-packed public key
+ *
+ * @return 0 if signature could be verified correctly and -EBADMSG when
+ * signature cannot be verified, < 0 on other errors
+ */
+int dilithium_87_verify_final(const struct dilithium_87_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_87_pk *pk);
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* DILITHIUM_87_H */
diff --git a/crypto/ml_dsa/dilithium_api.c b/crypto/ml_dsa/dilithium_api.c
new file mode 100644
index 000000000000..363984f01169
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_api.c
@@ -0,0 +1,729 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_API_H
+#define DILITHIUM_API_H
+
+#include <linux/export.h>
+#include "dilithium.h"
+
+void dilithium_ctx_zero(struct dilithium_ctx *ctx)
+{
+ if (!ctx)
+ return;
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ dilithium_87_ctx_zero(ctx);
+#elif defined(CONFIG_CRYPTO_DILITHIUM_65)
+ dilithium_65_ctx_zero(ctx);
+#elif defined(CONFIG_CRYPTO_DILITHIUM_44)
+ dilithium_44_ctx_zero(ctx);
+#endif
+}
+EXPORT_SYMBOL(dilithium_ctx_zero);
+
+void dilithium_ctx_internal(struct dilithium_ctx *ctx)
+{
+ if (ctx)
+ ctx->ml_dsa_internal = 1;
+}
+EXPORT_SYMBOL(dilithium_ctx_internal);
+
+void dilithium_ctx_hash(struct dilithium_ctx *ctx,
+ struct crypto_shash *hash)
+{
+ if (ctx)
+ ctx->dilithium_prehash_type = hash;
+}
+EXPORT_SYMBOL(dilithium_ctx_hash);
+
+void dilithium_ctx_userctx(struct dilithium_ctx *ctx, const uint8_t *userctx,
+ size_t userctxlen)
+{
+ if (ctx) {
+ ctx->userctx = userctx;
+ ctx->userctxlen = userctxlen;
+ }
+}
+EXPORT_SYMBOL(dilithium_ctx_userctx);
+
+void dilithium_ctx_external_mu(struct dilithium_ctx *ctx, const uint8_t *external_mu,
+ size_t external_mu_len)
+{
+ if (ctx) {
+ ctx->external_mu = external_mu;
+ ctx->external_mu_len = external_mu_len;
+ }
+}
+EXPORT_SYMBOL(dilithium_ctx_external_mu);
+
+void dilithium_ctx_drop_ahat(struct dilithium_ctx *ctx)
+{
+ if (ctx)
+ ctx->ahat_expanded = 0;
+}
+EXPORT_SYMBOL(dilithium_ctx_drop_ahat);
+
+enum dilithium_type dilithium_sk_type(const struct dilithium_sk *sk)
+{
+ if (!sk)
+ return DILITHIUM_UNKNOWN;
+ return sk->dilithium_type;
+}
+EXPORT_SYMBOL(dilithium_sk_type);
+
+enum dilithium_type dilithium_pk_type(const struct dilithium_pk *pk)
+{
+ if (!pk)
+ return DILITHIUM_UNKNOWN;
+ return pk->dilithium_type;
+}
+EXPORT_SYMBOL(dilithium_pk_type);
+
+enum dilithium_type dilithium_sig_type(const struct dilithium_sig *sig)
+{
+ if (!sig)
+ return DILITHIUM_UNKNOWN;
+ return sig->dilithium_type;
+}
+EXPORT_SYMBOL(dilithium_sig_type);
+
+__pure unsigned int dilithium_sk_size(enum dilithium_type dilithium_type)
+{
+ switch (dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return sizeof_field(struct dilithium_sk, key.sk_87);
+#else
+ return 0;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return sizeof_field(struct dilithium_sk, key.sk_65);
+#else
+ return 0;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return sizeof_field(struct dilithium_sk, key.sk_44);
+#else
+ return 0;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return 0;
+ }
+}
+EXPORT_SYMBOL(dilithium_sk_size);
+
+__pure unsigned int dilithium_pk_size(enum dilithium_type dilithium_type)
+{
+ switch (dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return sizeof_field(struct dilithium_pk, key.pk_87);
+#else
+ return 0;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return sizeof_field(struct dilithium_pk, key.pk_65);
+#else
+ return 0;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return sizeof_field(struct dilithium_pk, key.pk_44);
+#else
+ return 0;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return 0;
+ }
+}
+EXPORT_SYMBOL(dilithium_pk_size);
+
+__pure unsigned int dilithium_sig_size(enum dilithium_type dilithium_type)
+{
+ switch (dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return sizeof_field(struct dilithium_sig, sig.sig_87);
+#else
+ return 0;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return sizeof_field(struct dilithium_sig, sig.sig_65);
+#else
+ return 0;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return sizeof_field(struct dilithium_sig, sig.sig_44);
+#else
+ return 0;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return 0;
+ }
+}
+EXPORT_SYMBOL(dilithium_sig_size);
+
+int dilithium_sk_load(struct dilithium_sk *sk,
+ const uint8_t *src_key, size_t src_key_len)
+{
+ if (!sk || !src_key || src_key_len == 0) {
+ return -EINVAL;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ } else if (src_key_len == dilithium_sk_size(DILITHIUM_87)) {
+ struct dilithium_87_sk *_sk = &sk->key.sk_87;
+
+ memcpy(_sk->sk, src_key, src_key_len);
+ sk->dilithium_type = DILITHIUM_87;
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ } else if (src_key_len == dilithium_sk_size(DILITHIUM_65)) {
+ struct dilithium_65_sk *_sk = &sk->key.sk_65;
+
+ memcpy(_sk->sk, src_key, src_key_len);
+ sk->dilithium_type = DILITHIUM_65;
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ } else if (src_key_len == dilithium_sk_size(DILITHIUM_44)) {
+ struct dilithium_44_sk *_sk = &sk->key.sk_44;
+
+ memcpy(_sk->sk, src_key, src_key_len);
+ sk->dilithium_type = DILITHIUM_44;
+ return 0;
+#endif
+ } else {
+ return -EINVAL;
+ }
+}
+EXPORT_SYMBOL(dilithium_sk_load);
+
+int dilithium_pk_load(struct dilithium_pk *pk,
+ const uint8_t *src_key, size_t src_key_len)
+{
+ if (!pk || !src_key || src_key_len == 0) {
+ return -EINVAL;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ } else if (src_key_len == dilithium_pk_size(DILITHIUM_87)) {
+ struct dilithium_87_pk *_pk = &pk->key.pk_87;
+
+ memcpy(_pk->pk, src_key, src_key_len);
+ pk->dilithium_type = DILITHIUM_87;
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ } else if (src_key_len == dilithium_pk_size(DILITHIUM_65)) {
+ struct dilithium_65_pk *_pk = &pk->key.pk_65;
+
+ memcpy(_pk->pk, src_key, src_key_len);
+ pk->dilithium_type = DILITHIUM_65;
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ } else if (src_key_len == dilithium_pk_size(DILITHIUM_44)) {
+ struct dilithium_44_pk *_pk = &pk->key.pk_44;
+
+ memcpy(_pk->pk, src_key, src_key_len);
+ pk->dilithium_type = DILITHIUM_44;
+ return 0;
+#endif
+ } else {
+ return -EINVAL;
+ }
+}
+EXPORT_SYMBOL(dilithium_pk_load);
+
+int dilithium_sig_load(struct dilithium_sig *sig,
+ const uint8_t *src_sig, size_t src_sig_len)
+{
+ if (!sig || !src_sig || src_sig_len == 0) {
+ return -EINVAL;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ } else if (src_sig_len == dilithium_sig_size(DILITHIUM_87)) {
+ struct dilithium_87_sig *_sig = &sig->sig.sig_87;
+
+ memcpy(_sig->sig, src_sig, src_sig_len);
+ sig->dilithium_type = DILITHIUM_87;
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ } else if (src_sig_len == dilithium_sig_size(DILITHIUM_65)) {
+ struct dilithium_65_sig *_sig = &sig->sig.sig_65;
+
+ memcpy(_sig->sig, src_sig, src_sig_len);
+ sig->dilithium_type = DILITHIUM_65;
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ } else if (src_sig_len == dilithium_sig_size(DILITHIUM_44)) {
+ struct dilithium_44_sig *_sig = &sig->sig.sig_44;
+
+ memcpy(_sig->sig, src_sig, src_sig_len);
+ sig->dilithium_type = DILITHIUM_44;
+ return 0;
+#endif
+ } else {
+ return -EINVAL;
+ }
+}
+EXPORT_SYMBOL(dilithium_sig_load);
+
+int dilithium_sk_ptr(uint8_t **dilithium_key,
+ size_t *dilithium_key_len, struct dilithium_sk *sk)
+{
+ if (!sk || !dilithium_key || !dilithium_key_len) {
+ return -EINVAL;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ } else if (sk->dilithium_type == DILITHIUM_87) {
+ struct dilithium_87_sk *_sk = &sk->key.sk_87;
+
+ *dilithium_key = _sk->sk;
+ *dilithium_key_len = dilithium_sk_size(sk->dilithium_type);
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ } else if (sk->dilithium_type == DILITHIUM_65) {
+ struct dilithium_65_sk *_sk = &sk->key.sk_65;
+
+ *dilithium_key = _sk->sk;
+ *dilithium_key_len = dilithium_sk_size(sk->dilithium_type);
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ } else if (sk->dilithium_type == DILITHIUM_44) {
+ struct dilithium_44_sk *_sk = &sk->key.sk_44;
+
+ *dilithium_key = _sk->sk;
+ *dilithium_key_len = dilithium_sk_size(sk->dilithium_type);
+ return 0;
+#endif
+ } else {
+ return -EINVAL;
+ }
+}
+EXPORT_SYMBOL(dilithium_sk_ptr);
+
+int dilithium_pk_ptr(uint8_t **dilithium_key,
+ size_t *dilithium_key_len, struct dilithium_pk *pk)
+{
+ if (!pk || !dilithium_key || !dilithium_key_len) {
+ return -EINVAL;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ } else if (pk->dilithium_type == DILITHIUM_87) {
+ struct dilithium_87_pk *_pk = &pk->key.pk_87;
+
+ *dilithium_key = _pk->pk;
+ *dilithium_key_len = dilithium_pk_size(pk->dilithium_type);
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ } else if (pk->dilithium_type == DILITHIUM_65) {
+ struct dilithium_65_pk *_pk = &pk->key.pk_65;
+
+ *dilithium_key = _pk->pk;
+ *dilithium_key_len = dilithium_pk_size(pk->dilithium_type);
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ } else if (pk->dilithium_type == DILITHIUM_44) {
+ struct dilithium_44_pk *_pk = &pk->key.pk_44;
+
+ *dilithium_key = _pk->pk;
+ *dilithium_key_len = dilithium_pk_size(pk->dilithium_type);
+ return 0;
+#endif
+ } else {
+ return -EINVAL;
+ }
+}
+EXPORT_SYMBOL(dilithium_pk_ptr);
+
+int dilithium_sig_ptr(uint8_t **dilithium_sig,
+ size_t *dilithium_sig_len, struct dilithium_sig *sig)
+{
+ if (!sig || !dilithium_sig || !dilithium_sig_len) {
+ return -EINVAL;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ } else if (sig->dilithium_type == DILITHIUM_87) {
+ struct dilithium_87_sig *_sig = &sig->sig.sig_87;
+
+ *dilithium_sig = _sig->sig;
+ *dilithium_sig_len = dilithium_sig_size(sig->dilithium_type);
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ } else if (sig->dilithium_type == DILITHIUM_65) {
+ struct dilithium_65_sig *_sig = &sig->sig.sig_65;
+
+ *dilithium_sig = _sig->sig;
+ *dilithium_sig_len = dilithium_sig_size(sig->dilithium_type);
+ return 0;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ } else if (sig->dilithium_type == DILITHIUM_44) {
+ struct dilithium_44_sig *_sig = &sig->sig.sig_44;
+
+ *dilithium_sig = _sig->sig;
+ *dilithium_sig_len = dilithium_sig_size(sig->dilithium_type);
+ return 0;
+#endif
+ } else {
+ return -EINVAL;
+ }
+}
+EXPORT_SYMBOL(dilithium_sig_ptr);
+
+int dilithium_sign(struct dilithium_sig *sig,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ if (!sk || !sig)
+ return -EINVAL;
+
+ switch (sk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ sig->dilithium_type = DILITHIUM_87;
+ return dilithium_87_sign(&sig->sig.sig_87, m, mlen,
+ &sk->key.sk_87, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ sig->dilithium_type = DILITHIUM_65;
+ return dilithium_65_sign(&sig->sig.sig_65, m, mlen,
+ &sk->key.sk_65, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ sig->dilithium_type = DILITHIUM_44;
+ return dilithium_44_sign(&sig->sig.sig_44, m, mlen,
+ &sk->key.sk_44, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_sign);
+
+int dilithium_sign_ctx(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ if (!sk || !sig)
+ return -EINVAL;
+
+ switch (sk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ sig->dilithium_type = DILITHIUM_87;
+ return dilithium_87_sign_ctx(&sig->sig.sig_87, ctx, m, mlen,
+ &sk->key.sk_87, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ sig->dilithium_type = DILITHIUM_65;
+ return dilithium_65_sign_ctx(&sig->sig.sig_65, ctx, m, mlen,
+ &sk->key.sk_65, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ sig->dilithium_type = DILITHIUM_44;
+ return dilithium_44_sign_ctx(&sig->sig.sig_44, ctx, m, mlen,
+ &sk->key.sk_44, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_sign_ctx);
+
+int dilithium_sign_init(struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk)
+{
+ if (!sk)
+ return -EINVAL;
+
+ switch (sk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_sign_init(ctx, &sk->key.sk_87);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return dilithium_65_sign_init(ctx, &sk->key.sk_65);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return dilithium_44_sign_init(ctx, &sk->key.sk_44);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_sign_init);
+
+int dilithium_sign_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen)
+{
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_sign_update(ctx, m, mlen);
+#elif defined(CONFIG_CRYPTO_DILITHIUM_65)
+ return dilithium_65_sign_update(ctx, m, mlen);
+#elif defined(CONFIG_CRYPTO_DILITHIUM_44)
+ return dilithium_44_sign_update(ctx, m, mlen);
+#else
+ return -EOPNOTSUPP;
+#endif
+}
+EXPORT_SYMBOL(dilithium_sign_update);
+
+int dilithium_sign_final(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ if (!sk || !sig)
+ return -EINVAL;
+
+ switch (sk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ sig->dilithium_type = DILITHIUM_87;
+ return dilithium_87_sign_final(&sig->sig.sig_87, ctx,
+ &sk->key.sk_87, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ sig->dilithium_type = DILITHIUM_65;
+ return dilithium_65_sign_final(&sig->sig.sig_65, ctx,
+ &sk->key.sk_65, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ sig->dilithium_type = DILITHIUM_44;
+ return dilithium_44_sign_final(&sig->sig.sig_44, ctx,
+ &sk->key.sk_44, rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_sign_final);
+
+int dilithium_verify(const struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk)
+{
+ if (!pk || !sig || sig->dilithium_type != pk->dilithium_type)
+ return -EINVAL;
+
+ switch (pk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_verify(&sig->sig.sig_87, m, mlen,
+ &pk->key.pk_87);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return dilithium_65_verify(&sig->sig.sig_65, m, mlen,
+ &pk->key.pk_65);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return dilithium_44_verify(&sig->sig.sig_44, m, mlen,
+ &pk->key.pk_44);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_verify);
+
+int dilithium_verify_ctx(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk)
+{
+ if (!pk || !sig || sig->dilithium_type != pk->dilithium_type)
+ return -EINVAL;
+
+ switch (pk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_verify_ctx(&sig->sig.sig_87, ctx, m,
+ mlen, &pk->key.pk_87);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return dilithium_65_verify_ctx(&sig->sig.sig_65, ctx, m,
+ mlen, &pk->key.pk_65);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return dilithium_44_verify_ctx(&sig->sig.sig_44, ctx, m,
+ mlen, &pk->key.pk_44);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_verify_ctx);
+
+int dilithium_verify_init(struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ if (!pk)
+ return -EINVAL;
+
+ switch (pk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_verify_init(ctx, &pk->key.pk_87);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return dilithium_65_verify_init(ctx, &pk->key.pk_65);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return dilithium_44_verify_init(ctx, &pk->key.pk_44);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_verify_init);
+
+int dilithium_verify_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen)
+{
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_verify_update(ctx, m, mlen);
+#elif defined(CONFIG_CRYPTO_DILITHIUM_65)
+ return dilithium_65_verify_update(ctx, m, mlen);
+#elif defined(CONFIG_CRYPTO_DILITHIUM_44)
+ return dilithium_44_verify_update(ctx, m, mlen);
+#else
+ return -EOPNOTSUPP;
+#endif
+}
+EXPORT_SYMBOL(dilithium_verify_update);
+
+int dilithium_verify_final(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ if (!pk || !sig || sig->dilithium_type != pk->dilithium_type)
+ return -EINVAL;
+
+ switch (pk->dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ return dilithium_87_verify_final(&sig->sig.sig_87, ctx,
+ &pk->key.pk_87);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ return dilithium_65_verify_final(&sig->sig.sig_65, ctx,
+ &pk->key.pk_65);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ return dilithium_44_verify_final(&sig->sig.sig_44, ctx,
+ &pk->key.pk_44);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_verify_final);
+
+#endif /* DILITHIUM_API_H */
diff --git a/crypto/ml_dsa/dilithium_debug.h b/crypto/ml_dsa/dilithium_debug.h
new file mode 100644
index 000000000000..9448c252175f
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_debug.h
@@ -0,0 +1,80 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2023 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_DEBUG_H
+#define DILITHIUM_DEBUG_H
+
+#include "dilithium_type.h"
+
+#ifdef DILITHIUM_DEBUG
+
+/* Disable selftests */
+#define DILITHIUM_TEST_INIT 1
+
+void dilithium_print_buffer(const uint8_t *buffer, const size_t bufferlen,
+ const char *explanation);
+void dilithium_print_polyvecl_k(polyvecl mat[DILITHIUM_K],
+ const char *explanation);
+void dilithium_print_polyvecl(polyvecl *polyvec, const char *explanation);
+void dilithium_print_polyveck(polyveck *polyvec, const char *explanation);
+void dilithium_print_poly(poly *vec, const char *explanation);
+
+#else /* DILITHIUM_DEBUG */
+
+/* Enable selftests */
+#define DILITHIUM_TEST_INIT 0
+
+static inline void dilithium_print_buffer(const uint8_t *buffer,
+ const size_t bufferlen,
+ const char *explanation)
+{
+ (void)buffer;
+ (void)bufferlen;
+ (void)explanation;
+}
+
+static inline void dilithium_print_polyvecl_k(polyvecl mat[DILITHIUM_K],
+ const char *explanation)
+{
+ (void)mat;
+ (void)explanation;
+}
+
+static inline void dilithium_print_polyvecl(polyvecl *polyvec,
+ const char *explanation)
+{
+ (void)polyvec;
+ (void)explanation;
+}
+
+static inline void dilithium_print_polyveck(polyveck *polyvec,
+ const char *explanation)
+{
+ (void)polyvec;
+ (void)explanation;
+}
+
+static inline void dilithium_print_poly(poly *vec, const char *explanation)
+{
+ (void)vec;
+ (void)explanation;
+}
+
+#endif /* DILITHIUM_DEBUG */
+
+#endif /* DILITHIUM_DEBUG_H */
diff --git a/crypto/ml_dsa/dilithium_ntt.c b/crypto/ml_dsa/dilithium_ntt.c
new file mode 100644
index 000000000000..839f4cb8a0aa
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_ntt.c
@@ -0,0 +1,89 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#include "dilithium_ntt.h"
+#include "dilithium_reduce.h"
+
+/**
+ * @brief ntt - Forward NTT, in-place. No modular reduction is performed after
+ * additions or subtractions. Output vector is in bitreversed
+ * order.
+ *
+ * @param [in,out] p input/output coefficient array
+ */
+void ntt(int32_t a[DILITHIUM_N])
+{
+ unsigned int len, start, j, k;
+ int32_t zeta, t;
+
+ k = 0;
+
+ for (len = 128; len > 0; len >>= 1) {
+ for (start = 0; start < DILITHIUM_N; start = j + len) {
+ zeta = dilithium_zetas[++k];
+ for (j = start; j < start + len; ++j) {
+ t = montgomery_reduce((int64_t)zeta *
+ a[j + len]);
+ a[j + len] = a[j] - t;
+ a[j] = a[j] + t;
+ }
+ }
+ }
+}
+
+/**
+ * @brief invntt_tomont - Inverse NTT and multiplication by Montgomery factor
+ * 2^32. In-place. No modular reductions after additions
+ * or subtractions; input coefficients need to be smaller
+ * than Q in absolute value. Output coefficient are
+ * smaller than Q in absolute value.
+ *
+ * @param [in,out] p input/output coefficient array
+ */
+void invntt_tomont(int32_t a[DILITHIUM_N])
+{
+ unsigned int start, len, j, k;
+ int32_t t, zeta;
+ const int32_t f = 41978; // mont^2/256
+
+ k = 256;
+
+ for (len = 1; len < DILITHIUM_N; len <<= 1) {
+ for (start = 0; start < DILITHIUM_N; start = j + len) {
+ zeta = -dilithium_zetas[--k];
+ for (j = start; j < start + len; ++j) {
+ t = a[j];
+ a[j] = t + a[j + len];
+ a[j + len] = t - a[j + len];
+ a[j + len] = montgomery_reduce((int64_t)zeta *
+ a[j + len]);
+ }
+ }
+ }
+
+ for (j = 0; j < DILITHIUM_N; ++j)
+ a[j] = montgomery_reduce((int64_t)f * a[j]);
+}
diff --git a/crypto/ml_dsa/dilithium_ntt.h b/crypto/ml_dsa/dilithium_ntt.h
new file mode 100644
index 000000000000..5dfea3a936cd
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_ntt.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_NTT_H
+#define DILITHIUM_NTT_H
+
+#include "dilithium_type.h"
+
+void ntt(int32_t a[DILITHIUM_N]);
+void invntt_tomont(int32_t a[DILITHIUM_N]);
+
+#endif /* DILITHIUM_NTT_H */
diff --git a/crypto/ml_dsa/dilithium_pack.h b/crypto/ml_dsa/dilithium_pack.h
new file mode 100644
index 000000000000..e17c6256a16d
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_pack.h
@@ -0,0 +1,210 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_PACK_H
+#define DILITHIUM_PACK_H
+
+/*******************************************************************************
+ * Pack / Unpack public key
+ ******************************************************************************/
+
+static inline void unpack_pk_rho(uint8_t rho[DILITHIUM_SEEDBYTES],
+ const struct dilithium_pk *pk)
+{
+ memcpy(rho, pk->pk, DILITHIUM_SEEDBYTES);
+}
+
+static inline void unpack_pk_t1(polyveck *t1, const struct dilithium_pk *pk)
+{
+ unsigned int i;
+ const uint8_t *pubkey = pk->pk + DILITHIUM_SEEDBYTES;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyt1_unpack(&t1->vec[i],
+ pubkey + i * DILITHIUM_POLYT1_PACKEDBYTES);
+}
+
+/*******************************************************************************
+ * Pack / Unpack secret key
+ ******************************************************************************/
+static inline void unpack_sk_key(uint8_t key[DILITHIUM_SEEDBYTES],
+ const struct dilithium_sk *sk)
+{
+ memcpy(key, sk->sk + DILITHIUM_SEEDBYTES, DILITHIUM_SEEDBYTES);
+}
+
+static inline void unpack_sk_tr(uint8_t tr[DILITHIUM_TRBYTES],
+ const struct dilithium_sk *sk)
+{
+ memcpy(tr, sk->sk + 2 * DILITHIUM_SEEDBYTES, DILITHIUM_TRBYTES);
+}
+
+static inline void unpack_sk_s1(polyvecl *s1, const struct dilithium_sk *sk)
+{
+ unsigned int i;
+ const uint8_t *seckey =
+ sk->sk + 2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ polyeta_unpack(&s1->vec[i],
+ seckey + i * DILITHIUM_POLYETA_PACKEDBYTES);
+}
+
+static inline void unpack_sk_s2(polyveck *s2, const struct dilithium_sk *sk)
+{
+ unsigned int i;
+ const uint8_t *seckey =
+ sk->sk + 2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES +
+ DILITHIUM_L * DILITHIUM_POLYETA_PACKEDBYTES;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyeta_unpack(&s2->vec[i],
+ seckey + i * DILITHIUM_POLYETA_PACKEDBYTES);
+}
+
+static inline void unpack_sk_t0(polyveck *t0, const struct dilithium_sk *sk)
+{
+ unsigned int i;
+ const uint8_t *seckey =
+ sk->sk + 2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES +
+ DILITHIUM_L * DILITHIUM_POLYETA_PACKEDBYTES +
+ DILITHIUM_K * DILITHIUM_POLYETA_PACKEDBYTES;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyt0_unpack(&t0->vec[i],
+ seckey + i * DILITHIUM_POLYT0_PACKEDBYTES);
+}
+
+/**
+ * @brief pack_sig - Bit-pack signature sig = (c, z, h).
+ *
+ * NOTE: A signature is the concatenation of sig = (c || packed z || packed h).
+ * As c is already present in the first bytes of sig, this function does
+ * not need to copy it yet again to the right location. This implies that
+ * this function does not process c.
+ *
+ * @param [out] sig signature
+ * @param [in] z pointer to vector z
+ * @param [in] h pointer to hint vector h
+ */
+static inline void pack_sig(struct dilithium_sig *sig, const polyvecl *z,
+ const polyveck *h)
+{
+ unsigned int i, j, k;
+ /* Skip c */
+ uint8_t *signature = sig->sig + DILITHIUM_CTILDE_BYTES;
+
+ BUILD_BUG_ON((1ULL << (sizeof(j) << 3)) < DILITHIUM_N);
+ BUILD_BUG_ON((1ULL << (sizeof(k) << 3)) < DILITHIUM_N);
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ polyz_pack(signature + i * DILITHIUM_POLYZ_PACKEDBYTES,
+ &z->vec[i]);
+ signature += DILITHIUM_L * DILITHIUM_POLYZ_PACKEDBYTES;
+
+ /* Encode h */
+ memset(signature, 0, DILITHIUM_OMEGA + DILITHIUM_K);
+
+ k = 0;
+ for (i = 0; i < DILITHIUM_K; ++i) {
+ for (j = 0; j < DILITHIUM_N; ++j)
+ if (h->vec[i].coeffs[j] != 0)
+ signature[k++] = (uint8_t)j;
+
+ signature[DILITHIUM_OMEGA + i] = (uint8_t)k;
+ }
+}
+
+/**
+ * @brief unpack_sig_z - Unpack z part of signature sig = (c, z, h).
+ *
+ * NOTE: The c value is not unpacked as it can be used right from the signature.
+ * To access it, a caller simply needs to use the first
+ * DILITHIUM_CTILDE_BYTES of the signature.
+ *
+ * @param [out] z pointer to output vector z
+ * @param [in] sig signature
+ */
+static inline void unpack_sig_z(polyvecl *z, const struct dilithium_sig *sig)
+{
+ unsigned int i;
+ /* Skip c */
+ const uint8_t *signature = sig->sig + DILITHIUM_CTILDE_BYTES;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ polyz_unpack(&z->vec[i],
+ signature + i * DILITHIUM_POLYZ_PACKEDBYTES);
+}
+
+/**
+ * @brief unpack_sig - Unpack h value of signature sig = (c, z, h).
+ *
+ * NOTE: The c value is not unpacked as it can be used right from the signature.
+ * To access it, a caller simply needs to use the first
+ * DILITHIUM_CTILDE_BYTES of the signature.
+ *
+ * @param [out] h pointer to output hint vector h
+ * @param [in] sig signature
+ *
+ * @return 1 in case of malformed signature; otherwise 0.
+ */
+static inline int unpack_sig_h(polyveck *h, const struct dilithium_sig *sig)
+{
+ unsigned int i, j, k;
+ /* Skip c */
+ const uint8_t *signature =
+ sig->sig + DILITHIUM_CTILDE_BYTES +
+ DILITHIUM_L * DILITHIUM_POLYZ_PACKEDBYTES;
+
+ /* Decode h */
+ k = 0;
+ for (i = 0; i < DILITHIUM_K; ++i) {
+ for (j = 0; j < DILITHIUM_N; ++j)
+ h->vec[i].coeffs[j] = 0;
+
+ if (signature[DILITHIUM_OMEGA + i] < k ||
+ signature[DILITHIUM_OMEGA + i] > DILITHIUM_OMEGA)
+ return 1;
+
+ for (j = k; j < signature[DILITHIUM_OMEGA + i]; ++j) {
+ /* Coefficients are ordered for strong unforgeability */
+ if (j > k && signature[j] <= signature[j - 1])
+ return 1;
+ h->vec[i].coeffs[signature[j]] = 1;
+ }
+
+ k = signature[DILITHIUM_OMEGA + i];
+ }
+
+ /* Extra indices are zero for strong unforgeability */
+ for (j = k; j < DILITHIUM_OMEGA; ++j)
+ if (signature[j])
+ return 1;
+
+ return 0;
+}
+
+#endif /* DILITHIUM_PACK_H */
diff --git a/crypto/ml_dsa/dilithium_poly.c b/crypto/ml_dsa/dilithium_poly.c
new file mode 100644
index 000000000000..45ce07d2d4fb
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_poly.c
@@ -0,0 +1,586 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#include "dilithium_poly.h"
+#include "dilithium_poly_common.h"
+#include "dilithium_service_helpers.h"
+#include <crypto/sha3.h>
+
+/**
+ * @brief poly_chknorm - Check infinity norm of polynomial against given bound.
+ * Assumes input coefficients were reduced by reduce32().
+ *
+ * @param [in] a pointer to polynomial
+ * @param [in] B norm bound
+ *
+ * @return 0 if norm is strictly smaller than B <= (Q-1)/8 and 1 otherwise.
+ */
+int poly_chknorm(const poly *a, int32_t B)
+{
+ unsigned int i;
+ int32_t t;
+
+ if (B > (DILITHIUM_Q - 1) / 8)
+ return 1;
+
+ /*
+ * It is ok to leak which coefficient violates the bound since
+ * the probability for each coefficient *is independent of secret
+ * data but we must not leak the sign of the centralized representative.
+ */
+ for (i = 0; i < DILITHIUM_N; ++i) {
+ /* Absolute value */
+ t = a->coeffs[i] >> 31;
+ t = a->coeffs[i] - (t & 2 * a->coeffs[i]);
+
+ if (t >= B)
+ return 1;
+ }
+
+ return 0;
+}
+
+/**
+ * @brief poly_uniform - Sample polynomial with uniformly random coefficients
+ * in [0,Q-1] by performing rejection sampling on the
+ * output stream of SHAKE128(seed|nonce).
+ *
+ * @param [out] a pointer to output polynomial
+ * @param [in] seed byte array with seed of length DILITHIUM_SEEDBYTES
+ * @param [in] nonce 2-byte nonce
+ */
+void poly_uniform(poly *a, const uint8_t seed[DILITHIUM_SEEDBYTES],
+ uint16_t nonce, void *ws_buf)
+{
+ struct shake128_ctx hash_ctx;
+ unsigned int i, ctr, off;
+ unsigned int buflen = POLY_UNIFORM_NBLOCKS * SHAKE128_BLOCK_SIZE;
+ uint8_t *buf = ws_buf;
+
+ shake128_init(&hash_ctx);
+ shake128_update(&hash_ctx, seed, DILITHIUM_SEEDBYTES);
+ shake128_update(&hash_ctx, (uint8_t *)&nonce, sizeof(nonce));
+ shake128_squeeze(&hash_ctx, buf, buflen);
+
+ ctr = rej_uniform(a->coeffs, DILITHIUM_N, buf, buflen);
+
+ while (ctr < DILITHIUM_N) {
+ off = buflen % 3;
+ for (i = 0; i < off; ++i)
+ buf[i] = buf[buflen - off + i];
+
+ shake128_squeeze(&hash_ctx, buf + off, SHAKE128_BLOCK_SIZE);
+ buflen = DILITHIUM_SEEDBYTES + off;
+ ctr += rej_uniform(a->coeffs + ctr, DILITHIUM_N - ctr, buf,
+ buflen);
+ }
+
+ shake128_clear(&hash_ctx);
+}
+
+/**
+ * @brief poly_uniform_eta - Sample polynomial with uniformly random
+ * coefficients in [-ETA,ETA] by performing rejection
+ * sampling on the output stream from
+ * SHAKE256(seed|nonce).
+ *
+ * @param [out] a pointer to output polynomial
+ * @param [in] seed byte array with seed of length DILITHIUM_CRHBYTES
+ * @param [in] nonce 2-byte nonce
+ */
+void poly_uniform_eta(poly *a, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf)
+{
+ struct shake256_ctx hash_ctx;
+ unsigned int ctr;
+ uint8_t *buf = ws_buf;
+
+ shake256_init(&hash_ctx);
+ shake256_update(&hash_ctx, seed, DILITHIUM_CRHBYTES);
+ shake256_update(&hash_ctx, (uint8_t *)&nonce, sizeof(nonce));
+ shake256_squeeze(&hash_ctx, buf, POLY_UNIFORM_ETA_BYTES);
+
+ ctr = rej_eta(a->coeffs, DILITHIUM_N, buf, POLY_UNIFORM_ETA_BYTES);
+
+ while (ctr < DILITHIUM_N) {
+ shake256_squeeze(&hash_ctx, buf, POLY_UNIFORM_ETA_BYTES);
+
+ ctr += rej_eta(a->coeffs + ctr, DILITHIUM_N - ctr, buf,
+ SHAKE256_BLOCK_SIZE);
+ }
+
+ shake256_clear(&hash_ctx);
+}
+
+/**
+ * @brief poly_uniform_gamma1 - Sample polynomial with uniformly random
+ * coefficients in [-(GAMMA1 - 1), GAMMA1] by
+ * unpacking output stream of
+ * SHAKE256(seed|nonce).
+ *
+ * @param [out] a pointer to output polynomial
+ * @param [in] seed: byte array with seed of length DILITHIUM_CRHBYTES
+ * @param nonce 16-bit nonce
+ */
+void poly_uniform_gamma1(poly *a, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf)
+{
+ struct shake256_ctx hash_ctx;
+
+ shake256_init(&hash_ctx);
+ shake256_update(&hash_ctx, seed, DILITHIUM_CRHBYTES);
+ shake256_update(&hash_ctx, (uint8_t *)&nonce, sizeof(nonce));
+ shake256_squeeze(&hash_ctx, ws_buf, POLY_UNIFORM_GAMMA1_BYTES);
+ shake256_clear(&hash_ctx);
+
+ polyz_unpack(a, ws_buf);
+}
+
+/**
+ * @brief poly_challenge - Implementation of H. Samples polynomial with TAU
+ * nonzero coefficients in {-1,1} using the output
+ * stream of SHAKE256(seed).
+ *
+ * @param [out] c pointer to output polynomial
+ * @param [in] mu byte array containing seed of length DILITHIUM_CTILDE_BYTES
+ */
+void poly_challenge(poly *c, const uint8_t seed[DILITHIUM_CTILDE_BYTES],
+ void *ws_buf)
+{
+ struct shake256_ctx hash_ctx;
+ unsigned int i, b, pos;
+ uint64_t signs;
+ uint8_t *buf = ws_buf;
+
+ shake256_init(&hash_ctx);
+ shake256_update(&hash_ctx, seed, DILITHIUM_CTILDE_BYTES);
+ shake256_squeeze(&hash_ctx, buf, POLY_CHALLENGE_BYTES);
+
+ signs = 0;
+ for (i = 0; i < 8; ++i)
+ signs |= (uint64_t)buf[i] << 8 * i;
+ pos = 8;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ c->coeffs[i] = 0;
+
+ for (i = DILITHIUM_N - DILITHIUM_TAU; i < DILITHIUM_N; ++i) {
+ do {
+ if (pos >= SHAKE256_BLOCK_SIZE) {
+ shake256_squeeze(&hash_ctx, buf, POLY_CHALLENGE_BYTES);
+ pos = 0;
+ }
+
+ b = buf[pos++];
+ } while (b > i);
+
+ c->coeffs[i] = c->coeffs[b];
+ c->coeffs[b] = 1 - (int32_t)(2 * (signs & 1));
+ signs >>= 1;
+ }
+
+ shake256_clear(&hash_ctx);
+}
+
+/**
+ * @brief polyeta_pack - Bit-pack polynomial with coefficients in [-ETA,ETA].
+ *
+ * @param [out] r pointer to output byte array with at least
+ * DILITHIUM_POLYETA_PACKEDBYTES bytes
+ * @param [in] a pointer to input polynomial
+ */
+void polyeta_pack(uint8_t *r, const poly *a)
+{
+ unsigned int i;
+ uint8_t t[8];
+
+#if DILITHIUM_ETA == 2
+ for (i = 0; i < DILITHIUM_N / 8; ++i) {
+ t[0] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 0]);
+ t[1] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 1]);
+ t[2] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 2]);
+ t[3] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 3]);
+ t[4] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 4]);
+ t[5] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 5]);
+ t[6] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 6]);
+ t[7] = (uint8_t)(DILITHIUM_ETA - a->coeffs[8 * i + 7]);
+
+ r[3 * i + 0] =
+ (uint8_t)((t[0] >> 0) | (t[1] << 3) | (t[2] << 6));
+ r[3 * i + 1] = (uint8_t)((t[2] >> 2) | (t[3] << 1) |
+ (t[4] << 4) | (t[5] << 7));
+ r[3 * i + 2] =
+ (uint8_t)((t[5] >> 1) | (t[6] << 2) | (t[7] << 5));
+ }
+#elif DILITHIUM_ETA == 4
+ for (i = 0; i < DILITHIUM_N / 2; ++i) {
+ t[0] = (uint8_t)(DILITHIUM_ETA - a->coeffs[2 * i + 0]);
+ t[1] = (uint8_t)(DILITHIUM_ETA - a->coeffs[2 * i + 1]);
+ r[i] = (uint8_t)(t[0] | (t[1] << 4));
+ }
+#else
+#error "Undefined DILITHIUM_ETA"
+#endif
+}
+
+/**
+ * @brief polyeta_unpack - Unpack polynomial with coefficients in [-ETA,ETA].
+ *
+ * @param [out] r pointer to output polynomial
+ * @param [in] a byte array with bit-packed polynomial
+ */
+void polyeta_unpack(poly *r, const uint8_t *a)
+{
+ unsigned int i;
+
+#if DILITHIUM_ETA == 2
+ for (i = 0; i < DILITHIUM_N / 8; ++i) {
+ r->coeffs[8 * i + 0] = (a[3 * i + 0] >> 0) & 7;
+ r->coeffs[8 * i + 1] = (a[3 * i + 0] >> 3) & 7;
+ r->coeffs[8 * i + 2] =
+ ((a[3 * i + 0] >> 6) | (a[3 * i + 1] << 2)) & 7;
+ r->coeffs[8 * i + 3] = (a[3 * i + 1] >> 1) & 7;
+ r->coeffs[8 * i + 4] = (a[3 * i + 1] >> 4) & 7;
+ r->coeffs[8 * i + 5] =
+ ((a[3 * i + 1] >> 7) | (a[3 * i + 2] << 1)) & 7;
+ r->coeffs[8 * i + 6] = (a[3 * i + 2] >> 2) & 7;
+ r->coeffs[8 * i + 7] = (a[3 * i + 2] >> 5) & 7;
+
+ r->coeffs[8 * i + 0] = DILITHIUM_ETA - r->coeffs[8 * i + 0];
+ r->coeffs[8 * i + 1] = DILITHIUM_ETA - r->coeffs[8 * i + 1];
+ r->coeffs[8 * i + 2] = DILITHIUM_ETA - r->coeffs[8 * i + 2];
+ r->coeffs[8 * i + 3] = DILITHIUM_ETA - r->coeffs[8 * i + 3];
+ r->coeffs[8 * i + 4] = DILITHIUM_ETA - r->coeffs[8 * i + 4];
+ r->coeffs[8 * i + 5] = DILITHIUM_ETA - r->coeffs[8 * i + 5];
+ r->coeffs[8 * i + 6] = DILITHIUM_ETA - r->coeffs[8 * i + 6];
+ r->coeffs[8 * i + 7] = DILITHIUM_ETA - r->coeffs[8 * i + 7];
+ }
+#elif DILITHIUM_ETA == 4
+ for (i = 0; i < DILITHIUM_N / 2; ++i) {
+ r->coeffs[2 * i + 0] = a[i] & 0x0F;
+ r->coeffs[2 * i + 1] = a[i] >> 4;
+ r->coeffs[2 * i + 0] = DILITHIUM_ETA - r->coeffs[2 * i + 0];
+ r->coeffs[2 * i + 1] = DILITHIUM_ETA - r->coeffs[2 * i + 1];
+ }
+#else
+#error "Undefined DILITHIUM_ETA"
+#endif
+}
+
+/**
+ * @brief polyt1_pack - Bit-pack polynomial t1 with coefficients fitting in 10
+ * bits. Input coefficients are assumed to be standard
+ * representatives.
+ *
+ * @param [out] r pointer to output byte array with at least
+ * DILITHIUM_POLYT1_PACKEDBYTES bytes
+ * @param [in] a pointer to input polynomial
+ */
+void polyt1_pack(uint8_t *r, const poly *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N / 4; ++i) {
+ r[5 * i + 0] = (uint8_t)((a->coeffs[4 * i + 0] >> 0));
+ r[5 * i + 1] = (uint8_t)((a->coeffs[4 * i + 0] >> 8) |
+ (a->coeffs[4 * i + 1] << 2));
+ r[5 * i + 2] = (uint8_t)((a->coeffs[4 * i + 1] >> 6) |
+ (a->coeffs[4 * i + 2] << 4));
+ r[5 * i + 3] = (uint8_t)((a->coeffs[4 * i + 2] >> 4) |
+ (a->coeffs[4 * i + 3] << 6));
+ r[5 * i + 4] = (uint8_t)((a->coeffs[4 * i + 3] >> 2));
+ }
+}
+
+/**
+ * @brief polyt0_pack - Bit-pack polynomial t0 with coefficients in
+ * ]-2^{D-1}, 2^{D-1}].
+ *
+ * @param [out] r pointer to output byte array with at least
+ * DILITHIUM_POLYT0_PACKEDBYTES bytes
+ * @param [in] a pointer to input polynomial
+ */
+void polyt0_pack(uint8_t *r, const poly *a)
+{
+ unsigned int i;
+ uint32_t t[8];
+
+ for (i = 0; i < DILITHIUM_N / 8; ++i) {
+ t[0] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 0]);
+ t[1] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 1]);
+ t[2] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 2]);
+ t[3] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 3]);
+ t[4] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 4]);
+ t[5] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 5]);
+ t[6] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 6]);
+ t[7] = (uint32_t)((1 << (DILITHIUM_D - 1)) -
+ a->coeffs[8 * i + 7]);
+
+ r[13 * i + 0] = (uint8_t)(t[0]);
+ r[13 * i + 1] = (uint8_t)(t[0] >> 8);
+ r[13 * i + 1] |= (uint8_t)(t[1] << 5);
+ r[13 * i + 2] = (uint8_t)(t[1] >> 3);
+ r[13 * i + 3] = (uint8_t)(t[1] >> 11);
+ r[13 * i + 3] |= (uint8_t)(t[2] << 2);
+ r[13 * i + 4] = (uint8_t)(t[2] >> 6);
+ r[13 * i + 4] |= (uint8_t)(t[3] << 7);
+ r[13 * i + 5] = (uint8_t)(t[3] >> 1);
+ r[13 * i + 6] = (uint8_t)(t[3] >> 9);
+ r[13 * i + 6] |= (uint8_t)(t[4] << 4);
+ r[13 * i + 7] = (uint8_t)(t[4] >> 4);
+ r[13 * i + 8] = (uint8_t)(t[4] >> 12);
+ r[13 * i + 8] |= (uint8_t)(t[5] << 1);
+ r[13 * i + 9] = (uint8_t)(t[5] >> 7);
+ r[13 * i + 9] |= (uint8_t)(t[6] << 6);
+ r[13 * i + 10] = (uint8_t)(t[6] >> 2);
+ r[13 * i + 11] = (uint8_t)(t[6] >> 10);
+ r[13 * i + 11] |= (uint8_t)(t[7] << 3);
+ r[13 * i + 12] = (uint8_t)(t[7] >> 5);
+ }
+
+ memzero_explicit(t, sizeof(t));
+}
+
+/**
+ * @brief polyt0_unpack - Unpack polynomial t0 with coefficients in
+ * ]-2^{D-1}, 2^{D-1}].
+ *
+ * @param [out] r pointer to output polynomial
+ * @param [in] a byte array with bit-packed polynomial
+ */
+void polyt0_unpack(poly *r, const uint8_t *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N / 8; ++i) {
+ r->coeffs[8 * i + 0] = a[13 * i + 0];
+ r->coeffs[8 * i + 0] |= (int32_t)a[13 * i + 1] << 8;
+ r->coeffs[8 * i + 0] &= 0x1FFF;
+
+ r->coeffs[8 * i + 1] = a[13 * i + 1] >> 5;
+ r->coeffs[8 * i + 1] |= (int32_t)a[13 * i + 2] << 3;
+ r->coeffs[8 * i + 1] |= (int32_t)a[13 * i + 3] << 11;
+ r->coeffs[8 * i + 1] &= 0x1FFF;
+
+ r->coeffs[8 * i + 2] = a[13 * i + 3] >> 2;
+ r->coeffs[8 * i + 2] |= (int32_t)a[13 * i + 4] << 6;
+ r->coeffs[8 * i + 2] &= 0x1FFF;
+
+ r->coeffs[8 * i + 3] = a[13 * i + 4] >> 7;
+ r->coeffs[8 * i + 3] |= (int32_t)a[13 * i + 5] << 1;
+ r->coeffs[8 * i + 3] |= (int32_t)a[13 * i + 6] << 9;
+ r->coeffs[8 * i + 3] &= 0x1FFF;
+
+ r->coeffs[8 * i + 4] = a[13 * i + 6] >> 4;
+ r->coeffs[8 * i + 4] |= (int32_t)a[13 * i + 7] << 4;
+ r->coeffs[8 * i + 4] |= (int32_t)a[13 * i + 8] << 12;
+ r->coeffs[8 * i + 4] &= 0x1FFF;
+
+ r->coeffs[8 * i + 5] = a[13 * i + 8] >> 1;
+ r->coeffs[8 * i + 5] |= (int32_t)a[13 * i + 9] << 7;
+ r->coeffs[8 * i + 5] &= 0x1FFF;
+
+ r->coeffs[8 * i + 6] = a[13 * i + 9] >> 6;
+ r->coeffs[8 * i + 6] |= (int32_t)a[13 * i + 10] << 2;
+ r->coeffs[8 * i + 6] |= (int32_t)a[13 * i + 11] << 10;
+ r->coeffs[8 * i + 6] &= 0x1FFF;
+
+ r->coeffs[8 * i + 7] = a[13 * i + 11] >> 3;
+ r->coeffs[8 * i + 7] |= (int32_t)a[13 * i + 12] << 5;
+ r->coeffs[8 * i + 7] &= 0x1FFF;
+
+ r->coeffs[8 * i + 0] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 0];
+ r->coeffs[8 * i + 1] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 1];
+ r->coeffs[8 * i + 2] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 2];
+ r->coeffs[8 * i + 3] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 3];
+ r->coeffs[8 * i + 4] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 4];
+ r->coeffs[8 * i + 5] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 5];
+ r->coeffs[8 * i + 6] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 6];
+ r->coeffs[8 * i + 7] =
+ (1 << (DILITHIUM_D - 1)) - r->coeffs[8 * i + 7];
+ }
+}
+
+/**
+ * @param polyz_pack - Bit-pack polynomial with coefficients
+ * in [-(GAMMA1 - 1), GAMMA1].
+ *
+ * @param [out] r pointer to output byte array with at least
+ * DILITHIUM_POLYZ_PACKEDBYTES bytes
+ * @param [in] a pointer to input polynomial
+ */
+void polyz_pack(uint8_t *r, const poly *a)
+{
+ unsigned int i;
+ uint32_t t[4];
+
+#if DILITHIUM_GAMMA1 == (1 << 17)
+ for (i = 0; i < DILITHIUM_N / 4; ++i) {
+ t[0] = (uint32_t)(DILITHIUM_GAMMA1 - a->coeffs[4 * i + 0]);
+ t[1] = (uint32_t)(DILITHIUM_GAMMA1 - a->coeffs[4 * i + 1]);
+ t[2] = (uint32_t)(DILITHIUM_GAMMA1 - a->coeffs[4 * i + 2]);
+ t[3] = (uint32_t)(DILITHIUM_GAMMA1 - a->coeffs[4 * i + 3]);
+
+ r[9 * i + 0] = (uint8_t)(t[0]);
+ r[9 * i + 1] = (uint8_t)(t[0] >> 8);
+ r[9 * i + 2] = (uint8_t)(t[0] >> 16);
+ r[9 * i + 2] |= (uint8_t)(t[1] << 2);
+ r[9 * i + 3] = (uint8_t)(t[1] >> 6);
+ r[9 * i + 4] = (uint8_t)(t[1] >> 14);
+ r[9 * i + 4] |= (uint8_t)(t[2] << 4);
+ r[9 * i + 5] = (uint8_t)(t[2] >> 4);
+ r[9 * i + 6] = (uint8_t)(t[2] >> 12);
+ r[9 * i + 6] |= (uint8_t)(t[3] << 6);
+ r[9 * i + 7] = (uint8_t)(t[3] >> 2);
+ r[9 * i + 8] = (uint8_t)(t[3] >> 10);
+ }
+#elif DILITHIUM_GAMMA1 == (1 << 19)
+ for (i = 0; i < DILITHIUM_N / 2; ++i) {
+ t[0] = (uint32_t)(DILITHIUM_GAMMA1 - a->coeffs[2 * i + 0]);
+ t[1] = (uint32_t)(DILITHIUM_GAMMA1 - a->coeffs[2 * i + 1]);
+
+ r[5 * i + 0] = (uint8_t)(t[0]);
+ r[5 * i + 1] = (uint8_t)(t[0] >> 8);
+ r[5 * i + 2] = (uint8_t)(t[0] >> 16);
+ r[5 * i + 2] |= (uint8_t)(t[1] << 4);
+ r[5 * i + 3] = (uint8_t)(t[1] >> 4);
+ r[5 * i + 4] = (uint8_t)(t[1] >> 12);
+ }
+#else
+#error "Undefined Gamma"
+#endif
+
+ memzero_explicit(t, sizeof(t));
+}
+
+/**
+ * @brief polyz_unpack - Unpack polynomial z with coefficients
+ * in [-(GAMMA1 - 1), GAMMA1].
+ *
+ * @param [out] r pointer to output polynomial
+ * @param [in] a byte array with bit-packed polynomial
+ */
+void polyz_unpack(poly *r, const uint8_t *a)
+{
+ unsigned int i;
+
+#if DILITHIUM_GAMMA1 == (1 << 17)
+ for (i = 0; i < DILITHIUM_N / 4; ++i) {
+ r->coeffs[4 * i + 0] = a[9 * i + 0];
+ r->coeffs[4 * i + 0] |= (int32_t)a[9 * i + 1] << 8;
+ r->coeffs[4 * i + 0] |= (int32_t)a[9 * i + 2] << 16;
+ r->coeffs[4 * i + 0] &= 0x3FFFF;
+
+ r->coeffs[4 * i + 1] = a[9 * i + 2] >> 2;
+ r->coeffs[4 * i + 1] |= (int32_t)a[9 * i + 3] << 6;
+ r->coeffs[4 * i + 1] |= (int32_t)a[9 * i + 4] << 14;
+ r->coeffs[4 * i + 1] &= 0x3FFFF;
+
+ r->coeffs[4 * i + 2] = a[9 * i + 4] >> 4;
+ r->coeffs[4 * i + 2] |= (int32_t)a[9 * i + 5] << 4;
+ r->coeffs[4 * i + 2] |= (int32_t)a[9 * i + 6] << 12;
+ r->coeffs[4 * i + 2] &= 0x3FFFF;
+
+ r->coeffs[4 * i + 3] = a[9 * i + 6] >> 6;
+ r->coeffs[4 * i + 3] |= (int32_t)a[9 * i + 7] << 2;
+ r->coeffs[4 * i + 3] |= (int32_t)a[9 * i + 8] << 10;
+ r->coeffs[4 * i + 3] &= 0x3FFFF;
+
+ r->coeffs[4 * i + 0] =
+ DILITHIUM_GAMMA1 - r->coeffs[4 * i + 0];
+ r->coeffs[4 * i + 1] =
+ DILITHIUM_GAMMA1 - r->coeffs[4 * i + 1];
+ r->coeffs[4 * i + 2] =
+ DILITHIUM_GAMMA1 - r->coeffs[4 * i + 2];
+ r->coeffs[4 * i + 3] =
+ DILITHIUM_GAMMA1 - r->coeffs[4 * i + 3];
+ }
+#elif DILITHIUM_GAMMA1 == (1 << 19)
+ for (i = 0; i < DILITHIUM_N / 2; ++i) {
+ r->coeffs[2 * i + 0] = a[5 * i + 0];
+ r->coeffs[2 * i + 0] |= (int32_t)a[5 * i + 1] << 8;
+ r->coeffs[2 * i + 0] |= (int32_t)a[5 * i + 2] << 16;
+ r->coeffs[2 * i + 0] &= 0xFFFFF;
+
+ r->coeffs[2 * i + 1] = a[5 * i + 2] >> 4;
+ r->coeffs[2 * i + 1] |= (int32_t)a[5 * i + 3] << 4;
+ r->coeffs[2 * i + 1] |= (int32_t)a[5 * i + 4] << 12;
+ r->coeffs[2 * i + 1] &= 0xFFFFF;
+
+ r->coeffs[2 * i + 0] =
+ DILITHIUM_GAMMA1 - r->coeffs[2 * i + 0];
+ r->coeffs[2 * i + 1] =
+ DILITHIUM_GAMMA1 - r->coeffs[2 * i + 1];
+ }
+#else
+#error "Undefined Gamma"
+#endif
+}
+
+/**
+ * @brief polyw1_pack - Bit-pack polynomial w1 with coefficients in [0,15] or
+ * [0,43]. Input coefficients are assumed to be standard
+ * representatives.
+ *
+ * @param [out] r pointer to output byte array with at least
+ * DILITHIUM_POLYW1_PACKEDBYTES bytes
+ * @param [in] a pointer to input polynomial
+ */
+void polyw1_pack(uint8_t *r, const poly *a)
+{
+ unsigned int i;
+
+#if DILITHIUM_GAMMA2 == (DILITHIUM_Q - 1) / 88
+ for (i = 0; i < DILITHIUM_N / 4; ++i) {
+ r[3 * i + 0] = (uint8_t)(a->coeffs[4 * i + 0]);
+ r[3 * i + 0] |= (uint8_t)(a->coeffs[4 * i + 1] << 6);
+ r[3 * i + 1] = (uint8_t)(a->coeffs[4 * i + 1] >> 2);
+ r[3 * i + 1] |= (uint8_t)(a->coeffs[4 * i + 2] << 4);
+ r[3 * i + 2] = (uint8_t)(a->coeffs[4 * i + 2] >> 4);
+ r[3 * i + 2] |= (uint8_t)(a->coeffs[4 * i + 3] << 2);
+ }
+#elif DILITHIUM_GAMMA2 == (DILITHIUM_Q - 1) / 32
+ for (i = 0; i < DILITHIUM_N / 2; ++i)
+ r[i] = (uint8_t)(a->coeffs[2 * i + 0] |
+ (a->coeffs[2 * i + 1] << 4));
+#else
+#error "Undefined Gamma"
+#endif
+}
diff --git a/crypto/ml_dsa/dilithium_poly.h b/crypto/ml_dsa/dilithium_poly.h
new file mode 100644
index 000000000000..a894f5483fe8
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_poly.h
@@ -0,0 +1,190 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_POLY_H
+#define DILITHIUM_POLY_H
+
+#include "dilithium_type.h"
+#include "dilithium_reduce.h"
+#include "dilithium_rounding.h"
+
+typedef struct {
+ int32_t coeffs[DILITHIUM_N];
+} poly;
+
+/**
+ * @brief poly_add - Add polynomials. No modular reduction is performed.
+ *
+ * @param [out] c pointer to output polynomial
+ * @param [in] a pointer to first summand
+ * @param [in] b pointer to second summand
+ */
+static inline void poly_add(poly *c, const poly *a, const poly *b)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ c->coeffs[i] = a->coeffs[i] + b->coeffs[i];
+}
+
+/**
+ * @brief poly_sub - Subtract polynomials. No modular reduction is
+ * performed.
+ *
+ * @param [out] c pointer to output polynomial
+ * @param [in] a pointer to first input polynomial
+ * @param [in] b pointer to second input polynomial to be subtraced from first
+ * input polynomial
+ */
+static inline void poly_sub(poly *c, const poly *a, const poly *b)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ c->coeffs[i] = a->coeffs[i] - b->coeffs[i];
+}
+
+/**
+ * @brief poly_shiftl - Multiply polynomial by 2^D without modular reduction.
+ * Assumes input coefficients to be less than 2^{31-D} in
+ * absolute value.
+ *
+ * @param [in,out] a pointer to input/output polynomial
+ */
+static inline void poly_shiftl(poly *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ a->coeffs[i] <<= DILITHIUM_D;
+}
+
+/**
+ * @brief poly_decompose - For all coefficients c of the input polynomial,
+ * compute high and low bits c0, c1 such
+ * c mod Q = c1*ALPHA + c0 with
+ * -ALPHA/2 < c0 <= ALPHA/2 except c1 = (Q-1)/ALPHA
+ * where we set c1 = 0 and
+ * -ALPHA/2 <= c0 = c mod Q - Q < 0.
+ * Assumes coefficients to be standard representatives.
+ *
+ * @param [out] a1 pointer to output polynomial with coefficients c1
+ * @param [out] a0 pointer to output polynomial with coefficients c0
+ * @param [in] a pointer to input polynomial
+ */
+static inline void poly_decompose(poly *a1, poly *a0, const poly *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ a1->coeffs[i] = decompose(&a0->coeffs[i], a->coeffs[i]);
+}
+
+/**
+ * @brief poly_make_hint - Compute hint polynomial. The coefficients of which
+ * indicate whether the low bits of the corresponding
+ * coefficient of the input polynomial overflow into the
+ * high bits.
+ *
+ * @param [out] h pointer to output hint polynomial
+ * @param [in] a0 pointer to low part of input polynomial
+ * @param [in] a1 pointer to high part of input polynomial
+ *
+ * @return number of 1 bits.
+ */
+static inline unsigned int poly_make_hint(poly *h, const poly *a0,
+ const poly *a1)
+{
+ unsigned int i, s = 0;
+
+ for (i = 0; i < DILITHIUM_N; ++i) {
+ h->coeffs[i] = make_hint(a0->coeffs[i], a1->coeffs[i]);
+ s += (unsigned int)h->coeffs[i];
+ }
+
+ return s;
+}
+
+/**
+ * @brief poly_use_hint - Use hint polynomial to correct the high bits of a
+ * polynomial.
+ *
+ * @param [out] b pointer to output polynomial with corrected high bits
+ * @param [in] a pointer to input polynomial
+ * @param [in] h pointer to input hint polynomial
+ */
+static inline void poly_use_hint(poly *b, const poly *a, const poly *h)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ b->coeffs[i] = use_hint(a->coeffs[i], h->coeffs[i]);
+}
+
+int poly_chknorm(const poly *a, int32_t B);
+
+#define POLY_UNIFORM_NBLOCKS \
+ ((768 + SHAKE128_BLOCK_SIZE - 1) / SHAKE128_BLOCK_SIZE)
+void poly_uniform(poly *a, const uint8_t seed[DILITHIUM_SEEDBYTES],
+ uint16_t nonce, void *ws_buf);
+
+#if DILITHIUM_ETA == 2
+#define POLY_UNIFORM_ETA_NBLOCKS \
+ ((136 + SHAKE256_BLOCK_SIZE - 1) / SHAKE256_BLOCK_SIZE)
+#elif DILITHIUM_ETA == 4
+#define POLY_UNIFORM_ETA_NBLOCKS \
+ ((227 + SHAKE256_BLOCK_SIZE - 1) / SHAKE256_BLOCK_SIZE)
+#else
+#error "Undefined DILITHIUM_ETA"
+#endif
+#define POLY_UNIFORM_ETA_BYTES POLY_UNIFORM_ETA_NBLOCKS *SHAKE256_BLOCK_SIZE
+void poly_uniform_eta(poly *a, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf);
+
+#define POLY_UNIFORM_GAMMA1_NBLOCKS \
+ ((DILITHIUM_POLYZ_PACKEDBYTES + SHAKE256_BLOCK_SIZE - 1) / \
+ SHAKE256_BLOCK_SIZE)
+#define POLY_UNIFORM_GAMMA1_BYTES \
+ POLY_UNIFORM_GAMMA1_NBLOCKS *SHAKE256_BLOCK_SIZE
+
+#define POLY_CHALLENGE_BYTES SHAKE256_BLOCK_SIZE
+void poly_challenge(poly *c, const uint8_t seed[DILITHIUM_CTILDE_BYTES],
+ void *ws_buf);
+
+void polyeta_pack(uint8_t *r, const poly *a);
+void polyeta_unpack(poly *r, const uint8_t *a);
+
+void polyt1_pack(uint8_t *r, const poly *a);
+
+void polyt0_pack(uint8_t *r, const poly *a);
+void polyt0_unpack(poly *r, const uint8_t *a);
+
+void polyz_pack(uint8_t *r, const poly *a);
+void polyz_unpack(poly *r, const uint8_t *a);
+
+void polyw1_pack(uint8_t *r, const poly *a);
+
+#endif /* DILITHIUM_POLY_H */
diff --git a/crypto/ml_dsa/dilithium_poly_c.h b/crypto/ml_dsa/dilithium_poly_c.h
new file mode 100644
index 000000000000..ca0107f75bab
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_poly_c.h
@@ -0,0 +1,149 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2023 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_POLY_C_H
+#define DILITHIUM_POLY_C_H
+
+#include "dilithium_ntt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief poly_reduce - Inplace reduction of all coefficients of polynomial to
+ * representative in [-6283009,6283007].
+ *
+ * @param [in,out] a pointer to input/output polynomial
+ */
+static inline void poly_reduce(poly *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ a->coeffs[i] = reduce32(a->coeffs[i]);
+}
+
+/**
+ * @brief poly_caddq - For all coefficients of in/out polynomial add Q if
+ * coefficient is negative.
+ *
+ * @param [in,out] a pointer to input/output polynomial
+ */
+static inline void poly_caddq(poly *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ a->coeffs[i] = caddq(a->coeffs[i]);
+}
+
+/**
+ * @brief poly_pointwise_montgomery - Pointwise multiplication of polynomials in
+ * NTT domain representation and
+ * multiplication of resulting polynomial
+ * by 2^{-32}.
+ *
+ * @param [out] c pointer to output polynomial
+ * @param [in] a pointer to first input polynomial
+ * @param [in] b pointer to second input polynomial
+ */
+static inline void poly_pointwise_montgomery(poly *c, const poly *a,
+ const poly *b)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ c->coeffs[i] =
+ montgomery_reduce((int64_t)a->coeffs[i] * b->coeffs[i]);
+}
+
+/**
+ * @brief poly_power2round - For all coefficients c of the input polynomial,
+ * compute c0, c1 such that c mod Q = c1*2^D + c0
+ * with -2^{D-1} < c0 <= 2^{D-1}. Assumes coefficients
+ * to be standard representatives.
+ *
+ * @param [out] a1 pointer to output polynomial with coefficients c1
+ * @param [out] a0 pointer to output polynomial with coefficients c0
+ * @param [in] a pointer to input polynomial
+ */
+static inline void poly_power2round(poly *a1, poly *a0, const poly *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N; ++i)
+ a1->coeffs[i] = power2round(&a0->coeffs[i], a->coeffs[i]);
+}
+
+/**
+ * @brief polyt1_unpack - Unpack polynomial t1 with 10-bit coefficients.
+ * Output coefficients are standard representatives.
+ *
+ * @param [out] r pointer to output polynomial
+ * @param [in] a byte array with bit-packed polynomial
+ */
+static inline void polyt1_unpack(poly *r, const uint8_t *a)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_N / 4; ++i) {
+ r->coeffs[4 * i + 0] =
+ ((a[5 * i + 0] >> 0) | ((uint32_t)a[5 * i + 1] << 8)) &
+ 0x3FF;
+ r->coeffs[4 * i + 1] =
+ ((a[5 * i + 1] >> 2) | ((uint32_t)a[5 * i + 2] << 6)) &
+ 0x3FF;
+ r->coeffs[4 * i + 2] =
+ ((a[5 * i + 2] >> 4) | ((uint32_t)a[5 * i + 3] << 4)) &
+ 0x3FF;
+ r->coeffs[4 * i + 3] =
+ ((a[5 * i + 3] >> 6) | ((uint32_t)a[5 * i + 4] << 2)) &
+ 0x3FF;
+ }
+}
+
+/**
+ * @brief poly_ntt - Inplace forward NTT. Coefficients can grow by
+ * 8*Q in absolute value.
+ *
+ * @param [in,out] a pointer to input/output polynomial
+ */
+static inline void poly_ntt(poly *a)
+{
+ ntt(a->coeffs);
+}
+
+/**
+ * @brief poly_invntt_tomont - Inplace inverse NTT and multiplication by 2^{32}.
+ * Input coefficients need to be less than Q in
+ * absolute value and output coefficients are again
+ * bounded by Q.
+ *
+ * @param [in,out] a pointer to input/output polynomial
+ */
+static inline void poly_invntt_tomont(poly *a)
+{
+ invntt_tomont(a->coeffs);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DILITHIUM_POLY_C_H */
diff --git a/crypto/ml_dsa/dilithium_poly_common.h b/crypto/ml_dsa/dilithium_poly_common.h
new file mode 100644
index 000000000000..7c7cef28b545
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_poly_common.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_POLY_COMMON_H
+#define DILITHIUM_POLY_COMMON_H
+
+#include "dilithium_type.h"
+
+void poly_uniform_gamma1(poly *a, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf);
+
+#endif /* DILITHIUM_POLY_COMMON_H */
diff --git a/crypto/ml_dsa/dilithium_polyvec.h b/crypto/ml_dsa/dilithium_polyvec.h
new file mode 100644
index 000000000000..7e428e3becfd
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_polyvec.h
@@ -0,0 +1,343 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_POLYVEC_H
+#define DILITHIUM_POLYVEC_H
+
+#include "dilithium_type.h"
+#include "dilithium_poly.h"
+
+typedef struct {
+ poly vec[DILITHIUM_L];
+} polyvecl;
+
+/* Vectors of polynomials of length K */
+typedef struct {
+ poly vec[DILITHIUM_K];
+} polyveck;
+
+/**************************************************************/
+/************ Vectors of polynomials of length L **************/
+/**************************************************************/
+
+static inline void polyvecl_reduce(polyvecl *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_reduce(&v->vec[i]);
+}
+
+/**
+ * @brief polyvecl_add - Add vectors of polynomials of length L.
+ * No modular reduction is performed.
+ *
+ * @param [out] w pointer to output vector
+ * @param [in] u pointer to first summand
+ * @param [in] v pointer to second summand
+ */
+static inline void polyvecl_add(polyvecl *w, const polyvecl *u,
+ const polyvecl *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_add(&w->vec[i], &u->vec[i], &v->vec[i]);
+}
+
+/**
+ * @brief polyvecl_ntt - Forward NTT of all polynomials in vector of length L.
+ * Output coefficients can be up to 16*Q larger than input
+ * coefficients.
+ *
+ * @param [in,out] v pointer to input/output vector
+ */
+static inline void polyvecl_ntt(polyvecl *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_ntt(&v->vec[i]);
+}
+
+static inline void polyvecl_invntt_tomont(polyvecl *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_invntt_tomont(&v->vec[i]);
+}
+
+static inline void polyvecl_pointwise_poly_montgomery(polyvecl *r,
+ const poly *a,
+ const polyvecl *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_pointwise_montgomery(&r->vec[i], a, &v->vec[i]);
+}
+
+/**
+ * @brief polyvecl_chknorm - Check infinity norm of polynomials in vector of
+ * length L. Assumes input polyvecl to be reduced by
+ * polyvecl_reduce().
+ *
+ * @param [in] v pointer to vector
+ * @param [in] bound norm bound
+ *
+ * @return 0 if norm of all polynomials is strictly smaller than B <= (Q-1)/8
+ * and 1 otherwise.
+ */
+static inline int polyvecl_chknorm(const polyvecl *v, int32_t bound)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ if (poly_chknorm(&v->vec[i], bound))
+ return 1;
+
+ return 0;
+}
+
+/**************************************************************/
+/************ Vectors of polynomials of length K **************/
+/**************************************************************/
+
+/**
+ * @brief polyveck_reduce - Reduce coefficients of polynomials in vector of
+ * length DILITHIUM_K to representatives in
+ * [-6283009,6283007].
+ *
+ * @param [in,out] v pointer to input/output vector
+ */
+static inline void polyveck_reduce(polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_reduce(&v->vec[i]);
+}
+
+/**
+ * @brief polyveck_caddq - For all coefficients of polynomials in vector of
+ * length DILITHIUM_K add DILITHIUM_Q if
+ * coefficient is negative.
+ *
+ * @param [in,out] v pointer to input/output vector
+ */
+static inline void polyveck_caddq(polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_caddq(&v->vec[i]);
+}
+
+/**
+ * @brief polyveck_add - Add vectors of polynomials of length DILITHIUM_K.
+ * No modular reduction is performed.
+ *
+ * @param [out] w pointer to output vector
+ * @param [in] u pointer to first summand
+ * @param [in] v pointer to second summand
+ */
+static inline void polyveck_add(polyveck *w, const polyveck *u,
+ const polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_add(&w->vec[i], &u->vec[i], &v->vec[i]);
+}
+
+/**
+ * @brief olyveck_sub - Subtract vectors of polynomials of length
+ * DILITHIUM_K. No modular reduction is performed.
+ *
+ * @param [out] w pointer to output vector
+ * @param [in] u pointer to first input vector
+ * @param [in] v pointer to second input vector to be subtracted from first
+ * input vector
+ */
+static inline void polyveck_sub(polyveck *w, const polyveck *u,
+ const polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_sub(&w->vec[i], &u->vec[i], &v->vec[i]);
+}
+
+/**
+ * @brief polyveck_shiftl - Multiply vector of polynomials of Length K by
+ * 2^D without modular reduction. Assumes input
+ * coefficients to be less than 2^{31-D}.
+ *
+ * @param [in,out] v pointer to input/output vector
+ */
+static inline void polyveck_shiftl(polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_shiftl(&v->vec[i]);
+}
+
+/**
+ * @brief polyveck_ntt - Forward NTT of all polynomials in vector of length K.
+ * Output coefficients can be up to 16*Q larger than input
+ * coefficients.
+ *
+ * @param [in,out] v pointer to input/output vector
+ */
+static inline void polyveck_ntt(polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_ntt(&v->vec[i]);
+}
+
+/**
+ * @brief polyveck_invntt_tomont - Inverse NTT and multiplication by 2^{32} of
+ * polynomials in vector of length K. Input
+ * coefficients need to be less than 2*Q.
+ *
+ * @param [in,out] v pointer to input/output vector
+ */
+static inline void polyveck_invntt_tomont(polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_invntt_tomont(&v->vec[i]);
+}
+
+static inline void polyveck_pointwise_poly_montgomery(polyveck *r,
+ const poly *a,
+ const polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_pointwise_montgomery(&r->vec[i], a, &v->vec[i]);
+}
+
+/**
+ * @brief polyveck_chknorm - Check infinity norm of polynomials in vector of
+ * length K. Assumes input polyveck to be reduced by
+ * polyveck_reduce().
+ *
+ * @param [in] v pointer to vector
+ * @param [in] bound norm bound
+ *
+ * @return 0 if norm of all polynomials are strictly smaller than B <= (Q-1)/8
+ * and 1 otherwise.
+ */
+static inline int polyveck_chknorm(const polyveck *v, int32_t bound)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ if (poly_chknorm(&v->vec[i], bound))
+ return 1;
+
+ return 0;
+}
+
+/**
+ * @brief polyveck_decompose - For all coefficients a of polynomials in vector
+ * of length K, compute high and low bits a0, a1
+ * such a mod^+ Q = a1*ALPHA + a0 with
+ * -ALPHA/2 < a0 <= ALPHA/2 except a1 = (Q-1)/ALPHA
+ * where we set a1 = 0 and
+ * -ALPHA/2 <= a0 = a mod Q - Q < 0. Assumes
+ * coefficients to be standard representatives.
+ *
+ * @param [out] v1 pointer to output vector of polynomials with coefficients a1
+ * @param [in] v0 pointer to output vector of polynomials with coefficients a0
+ * @param [in] v pointer to input vector
+ */
+static inline void polyveck_decompose(polyveck *v1, polyveck *v0,
+ const polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_decompose(&v1->vec[i], &v0->vec[i], &v->vec[i]);
+}
+
+/**
+ * @brief polyveck_make_hint - Compute hint vector.
+ *
+ * @param [out] h pointer to output vector
+ * @param [in] v0 pointer to low part of input vector
+ * @param [in] v1 pointer to high part of input vector
+ *
+ * @return number of 1 bits.
+ */
+static inline unsigned int polyveck_make_hint(polyveck *h, const polyveck *v0,
+ const polyveck *v1)
+{
+ unsigned int i, s = 0;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ s += poly_make_hint(&h->vec[i], &v0->vec[i], &v1->vec[i]);
+
+ return s;
+}
+
+/**
+ * @brief polyveck_use_hint - Use hint vector to correct the high bits of input
+ * vector.
+ *
+ * @param [out] w pointer to output vector of polynomials with corrected high
+ * bits
+ * @param [in] u pointer to input vector
+ * @param [in] h pointer to input hint vector
+ */
+static inline void polyveck_use_hint(polyveck *w, const polyveck *u,
+ const polyveck *h)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_use_hint(&w->vec[i], &u->vec[i], &h->vec[i]);
+}
+
+static inline void
+polyveck_pack_w1(uint8_t r[DILITHIUM_K * DILITHIUM_POLYW1_PACKEDBYTES],
+ const polyveck *w1)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyw1_pack(&r[i * DILITHIUM_POLYW1_PACKEDBYTES],
+ &w1->vec[i]);
+}
+
+#endif /* DILITHIUM_POLYVEC_H */
diff --git a/crypto/ml_dsa/dilithium_polyvec_c.h b/crypto/ml_dsa/dilithium_polyvec_c.h
new file mode 100644
index 000000000000..0f8c2d914e4d
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_polyvec_c.h
@@ -0,0 +1,94 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2023 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_POLYVEC_C_H
+#define DILITHIUM_POLYVEC_C_H
+
+static inline void
+polyvecl_uniform_gamma1(polyvecl *v, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_uniform_gamma1(
+ &v->vec[i], seed,
+ cpu_to_le16((uint16_t)(DILITHIUM_L * nonce + i)),
+ ws_buf);
+}
+
+/**
+ * @brief expand_mat - Implementation of ExpandA. Generates matrix A with
+ * uniformly random coefficients a_{i,j} by performing
+ * rejection sampling on the output stream of
+ * SHAKE128(rho|j|i).
+ *
+ * @param [out] mat output matrix
+ * @param [in] rho byte array containing seed rho
+ */
+static inline void
+polyvec_matrix_expand(polyvecl mat[DILITHIUM_K],
+ const uint8_t rho[DILITHIUM_SEEDBYTES], void *ws_buf)
+{
+ unsigned int i, j;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ for (j = 0; j < DILITHIUM_L; ++j)
+ poly_uniform(
+ &mat[i].vec[j], rho,
+ cpu_to_le16((uint16_t)(i << 8) + (uint16_t)j),
+ ws_buf);
+}
+
+/**
+ * @brief polyvecl_pointwise_acc_montgomery -
+ * Pointwise multiply vectors of polynomials of length L, multiply
+ * resulting vector by 2^{-32} and add (accumulate) polynomials
+ * in it. Input/output vectors are in NTT domain representation.
+ *
+ * @param [out] w output polynomial
+ * @param [in] u pointer to first input vector
+ * @param [in] v pointer to second input vector
+ */
+static inline void polyvecl_pointwise_acc_montgomery(poly *w, const polyvecl *u,
+ const polyvecl *v,
+ void *ws_buf)
+{
+ unsigned int i;
+ poly *t = ws_buf;
+
+ poly_pointwise_montgomery(w, &u->vec[0], &v->vec[0]);
+ for (i = 1; i < DILITHIUM_L; ++i) {
+ poly_pointwise_montgomery(t, &u->vec[i], &v->vec[i]);
+ poly_add(w, w, t);
+ }
+}
+
+static inline void
+polyvec_matrix_pointwise_montgomery(polyveck *t,
+ const polyvecl mat[DILITHIUM_K],
+ const polyvecl *v, void *ws_buf)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyvecl_pointwise_acc_montgomery(&t->vec[i], &mat[i], v,
+ ws_buf);
+}
+
+#endif /* DILITHIUM_POLYVEC_C_H */
diff --git a/crypto/ml_dsa/dilithium_reduce.h b/crypto/ml_dsa/dilithium_reduce.h
new file mode 100644
index 000000000000..c4dd78be2575
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_reduce.h
@@ -0,0 +1,108 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_REDUCE_H
+#define DILITHIUM_REDUCE_H
+
+#include "dilithium_type.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MONT -4186625 // 2^32 % Q
+#define QINV 58728449 // q^(-1) mod 2^32
+
+/**
+ * @brief montgomery_reduce - For finite field element a with
+ * -2^{31}Q <= a <= Q*2^31,
+ * compute r \equiv a*2^{-32} (mod Q) such that
+ * -Q < r < Q.
+ *
+ * @param [in] a finite field element
+ *
+ * @return r
+ */
+static inline int32_t montgomery_reduce(int64_t a)
+{
+ int32_t t;
+
+ t = (int32_t)a * QINV;
+ t = (int32_t)((a - (int64_t)t * DILITHIUM_Q) >> 32);
+ return t;
+}
+
+/**
+ * @brief reduce32 - For finite field element a with a <= 2^{31} - 2^{22} - 1,
+ * compute r \equiv a (mod Q) such that
+ * -6283009 <= r <= 6283007.
+ *
+ * @param [in] a finite field element
+ *
+ * @return r
+ */
+static inline int32_t reduce32(int32_t a)
+{
+ int32_t t;
+
+ t = (a + (1 << 22)) >> 23;
+ t = a - t * DILITHIUM_Q;
+ return t;
+}
+
+/**
+ * @brief caddq - Add Q if input coefficient is negative.
+ *
+ * @param [in] a finite field element
+ *
+ * @return r
+ */
+static inline int32_t caddq(int32_t a)
+{
+ a += (a >> 31) & DILITHIUM_Q;
+ return a;
+}
+
+/**
+ * @brief freeze - For finite field element a, compute standard representative
+ * r = a mod^+ Q.
+ *
+ * @param [in] a finite field element a
+ *
+ * @return r
+ */
+static inline int32_t freeze(int32_t a)
+{
+ a = reduce32(a);
+ a = caddq(a);
+ return a;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DILITHIUM_REDUCE_H */
diff --git a/crypto/ml_dsa/dilithium_rounding.c b/crypto/ml_dsa/dilithium_rounding.c
new file mode 100644
index 000000000000..c8a9c88185cf
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_rounding.c
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#include "dilithium_rounding.h"
+
+/**
+ * @brief power2round - For finite field element a, compute a0, a1 such that
+ * a mod^+ Q = a1*2^D + a0 with -2^{D-1} < a0 <= 2^{D-1}.
+ * Assumes a to be standard representative.
+ *
+ * @param [in] a input element
+ * @param [out] a0 pointer to output element a0
+ *
+ * @return a1.
+ */
+int32_t power2round(int32_t *a0, int32_t a)
+{
+ int32_t a1;
+
+ a1 = (a + (1 << (DILITHIUM_D - 1)) - 1) >> DILITHIUM_D;
+ *a0 = a - (a1 << DILITHIUM_D);
+ return a1;
+}
+
+/**
+ * @brief decompose - For finite field element a, compute high and low bits a0,
+ * a1 such that a mod^+ Q = a1*ALPHA + a0 with
+ * -ALPHA/2 < a0 <= ALPHA/2 except if a1 = (Q-1)/ALPHA where
+ * we set a1 = 0 and -ALPHA/2 <= a0 = a mod^+ Q - Q < 0.
+ * Assumes a to be standard representative.
+ *
+ * @param [in] a input element
+ * @param [out] a0 pointer to output element a0
+ *
+ * @return a1.
+ */
+int32_t decompose(int32_t *a0, int32_t a)
+{
+ int32_t a1;
+
+ a1 = (a + 127) >> 7;
+#if DILITHIUM_GAMMA2 == (DILITHIUM_Q - 1) / 32
+ a1 = (a1 * 1025 + (1 << 21)) >> 22;
+ a1 &= 15;
+#elif DILITHIUM_GAMMA2 == (DILITHIUM_Q - 1) / 88
+ a1 = (a1 * 11275 + (1 << 23)) >> 24;
+ a1 ^= ((43 - a1) >> 31) & a1;
+#else
+#error "Uknown GAMMA2"
+#endif
+
+ *a0 = a - a1 * 2 * DILITHIUM_GAMMA2;
+ *a0 -= (((DILITHIUM_Q - 1) / 2 - *a0) >> 31) & DILITHIUM_Q;
+
+ return a1;
+}
+
+/**
+ * @brief make_hint - Compute hint bit indicating whether the low bits of the
+ * input element overflow into the high bits.
+ *
+ * @param a0 [in] low bits of input element
+ * @param a1 [in] high bits of input element
+ *
+ * @return 1 if overflow.
+ */
+int32_t make_hint(int32_t a0, int32_t a1)
+{
+ if (a0 > DILITHIUM_GAMMA2 || a0 < -DILITHIUM_GAMMA2 ||
+ (a0 == -DILITHIUM_GAMMA2 && a1 != 0))
+ return 1;
+
+ return 0;
+}
+
+/**
+ * @brief use_hint - Correct high bits according to hint.
+ *
+ * @param [in] a input element
+ * @param [in] hint hint bit
+ *
+ * @return corrected high bits.
+ */
+int32_t use_hint(int32_t a, int32_t hint)
+{
+ int32_t a0, a1;
+
+ a1 = decompose(&a0, a);
+ if (hint == 0)
+ return a1;
+
+#if DILITHIUM_GAMMA2 == (DILITHIUM_Q - 1) / 32
+ if (a0 > 0)
+ return (a1 + 1) & 15;
+ else
+ return (a1 - 1) & 15;
+#elif DILITHIUM_GAMMA2 == (DILITHIUM_Q - 1) / 88
+ if (a0 > 0)
+ return (a1 == 43) ? 0 : a1 + 1;
+ else
+ return (a1 == 0) ? 43 : a1 - 1;
+#else
+#error "Uknown GAMMA2"
+#endif
+}
diff --git a/crypto/ml_dsa/dilithium_rounding.h b/crypto/ml_dsa/dilithium_rounding.h
new file mode 100644
index 000000000000..928b041856e9
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_rounding.h
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_ROUNDING_H
+#define DILITHIUM_ROUNDING_H
+
+#include "dilithium_type.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int32_t power2round(int32_t *a0, int32_t a);
+int32_t decompose(int32_t *a0, int32_t a);
+int32_t make_hint(int32_t a0, int32_t a1);
+int32_t use_hint(int32_t a, int32_t hint);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DILITHIUM_ROUNDING_H */
diff --git a/crypto/ml_dsa/dilithium_service_helpers.h b/crypto/ml_dsa/dilithium_service_helpers.h
new file mode 100644
index 000000000000..d671634e2040
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_service_helpers.h
@@ -0,0 +1,99 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_SERVICE_HELPERS_H
+#define DILITHIUM_SERVICE_HELPERS_H
+
+/**
+ * @brief rej_uniform - Sample uniformly random coefficients in [0, Q-1] by
+ * performing rejection sampling on array of random bytes.
+ *
+ * @param [out] a pointer to output array (allocated)
+ * @param [in] len number of coefficients to be sampled
+ * @param [in] buf array of random bytes
+ * @param [in] buflen length of array of random bytes
+ *
+ * @return number of sampled coefficients. Can be smaller than len if not enough
+ * random bytes were given.
+ */
+static inline unsigned int rej_uniform(int32_t *a, unsigned int len,
+ const uint8_t *buf, unsigned int buflen)
+{
+ unsigned int ctr, pos;
+ uint32_t t;
+
+ ctr = pos = 0;
+ while (ctr < len && pos + 3 <= buflen) {
+ t = buf[pos++];
+ t |= (uint32_t)buf[pos++] << 8;
+ t |= (uint32_t)buf[pos++] << 16;
+ t &= 0x7FFFFF;
+
+ if (t < DILITHIUM_Q)
+ a[ctr++] = (int32_t)t;
+ }
+
+ return ctr;
+}
+
+/**
+ * @brief rej_eta - Sample uniformly random coefficients in [-ETA, ETA] by
+ * performing rejection sampling on array of random bytes.
+ *
+ * @param [out] a pointer to output array (allocated)
+ * @param [in] len number of coefficients to be sampled
+ * @param [in] buf array of random bytes
+ * @param [in] buflen length of array of random bytes
+ *
+ * @return number of sampled coefficients. Can be smaller than len if not enough
+ * random bytes were given.
+ */
+static inline unsigned int rej_eta(int32_t *a, unsigned int len,
+ const uint8_t *buf, unsigned int buflen)
+{
+ unsigned int ctr, pos;
+ int32_t t0, t1;
+
+ ctr = pos = 0;
+ while (ctr < len && pos < buflen) {
+ t0 = buf[pos] & 0x0F;
+ t1 = buf[pos++] >> 4;
+
+#if DILITHIUM_ETA == 2
+ if (t0 < 15) {
+ t0 = t0 - (205 * t0 >> 10) * 5;
+ a[ctr++] = 2 - t0;
+ }
+ if (t1 < 15 && ctr < len) {
+ t1 = t1 - (205 * t1 >> 10) * 5;
+ a[ctr++] = 2 - t1;
+ }
+#elif DILITHIUM_ETA == 4
+ if (t0 < 9)
+ a[ctr++] = 4 - t0;
+ if (t1 < 9 && ctr < len)
+ a[ctr++] = 4 - t1;
+#else
+#error "Undefined DILITHIUM_ETA"
+#endif
+ }
+
+ return ctr;
+}
+
+#endif /* DILITHIUM_SERVICE_HELPERS_H */
diff --git a/crypto/ml_dsa/dilithium_sig.c b/crypto/ml_dsa/dilithium_sig.c
new file mode 100644
index 000000000000..5495dd451de0
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_sig.c
@@ -0,0 +1,404 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+/*
+ * Copyright (C) 2024 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <crypto/internal/sig.h>
+#include "dilithium.h"
+
+enum dilithium_kernel_key_type {
+ dilithium_kernel_key_unset = 0,
+ dilithium_kernel_key_sk = 1,
+ dilithium_kernel_key_pk = 2,
+};
+
+struct dilithium_kernel_ctx {
+ union {
+ struct dilithium_sk sk;
+ struct dilithium_pk pk;
+ };
+ enum dilithium_kernel_key_type key_type;
+};
+
+/* src -> message */
+/* dst -> signature */
+static int dilithium_kernel_sign(struct crypto_sig *tfm, const void *src,
+ unsigned int slen, void *dst,
+ unsigned int dlen)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+ struct dilithium_sig *sig;
+ enum dilithium_type type;
+ uint8_t *sig_ptr;
+ size_t sig_len;
+ int ret;
+
+ if (unlikely(ctx->key_type != dilithium_kernel_key_sk))
+ return -EINVAL;
+
+ type = dilithium_sk_type(&ctx->sk);
+ if (dlen != dilithium_sig_size(type))
+ return -EINVAL;
+
+ sig = kmalloc(sizeof(struct dilithium_sig), GFP_KERNEL);
+ if (!sig)
+ return -ENOMEM;
+
+ ret = dilithium_sign(sig, src, slen, &ctx->sk, lc_seeded_rng);
+ if (ret)
+ goto out;
+
+ ret = dilithium_sig_ptr(&sig_ptr, &sig_len, sig);
+ if (ret)
+ goto out;
+
+ memcpy(dst, sig_ptr, sig_len);
+ ret = sig_len;
+
+out:
+ kfree_sensitive(sig);
+ return ret;
+}
+
+/* src -> signature */
+/* msg -> message */
+static int dilithium_kernel_verify(struct crypto_sig *tfm, const void *src,
+ unsigned int slen, const void *msg,
+ unsigned int msg_len)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+ struct dilithium_sig *sig;
+ size_t sig_len;
+ enum dilithium_type type;
+ int ret;
+
+ if (unlikely(ctx->key_type != dilithium_kernel_key_pk))
+ return -EINVAL;
+
+ type = dilithium_pk_type(&ctx->pk);
+ sig_len = dilithium_sig_size(type);
+ if (slen < sig_len)
+ return -EINVAL;
+
+ sig = kmalloc(sizeof(struct dilithium_sig), GFP_KERNEL);
+ if (!sig)
+ return -ENOMEM;
+
+ ret = dilithium_sig_load(sig, src, sig_len);
+ if (ret)
+ goto out;
+
+ ret = dilithium_verify(sig, msg, msg_len, &ctx->pk);
+
+out:
+ kfree_sensitive(sig);
+ return ret;
+}
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+static unsigned int dilithium_kernel_87_key_size(struct crypto_sig *tfm)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+
+ switch (ctx->key_type) {
+ case dilithium_kernel_key_sk:
+ return sizeof(struct dilithium_87_sk);
+
+ case dilithium_kernel_key_unset:
+ case dilithium_kernel_key_pk:
+ default:
+ return sizeof(struct dilithium_87_pk);
+ }
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+static unsigned int dilithium_kernel_65_key_size(struct crypto_sig *tfm)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+
+ switch (ctx->key_type) {
+ case dilithium_kernel_key_sk:
+ return sizeof(struct dilithium_65_sk);
+
+ case dilithium_kernel_key_unset:
+ case dilithium_kernel_key_pk:
+ default:
+ return sizeof(struct dilithium_65_pk);
+ }
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+static unsigned int dilithium_kernel_44_key_size(struct crypto_sig *tfm)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+
+ switch (ctx->key_type) {
+ case dilithium_kernel_key_sk:
+ return sizeof(struct dilithium_44_sk);
+
+ case dilithium_kernel_key_unset:
+ case dilithium_kernel_key_pk:
+ default:
+ return sizeof(struct dilithium_44_pk);
+ }
+}
+#endif
+
+static int dilithium_kernel_set_pub_key_int(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen,
+ enum dilithium_type type)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+ int ret;
+
+ ctx->key_type = dilithium_kernel_key_unset;
+
+ ret = dilithium_pk_load(&ctx->pk, key, keylen);
+ if (!ret) {
+ if (dilithium_pk_type(&ctx->pk) != type)
+ ret = -EOPNOTSUPP;
+ else
+ ctx->key_type = dilithium_kernel_key_pk;
+ }
+
+ return ret;
+}
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+static int dilithium_kernel_44_set_pub_key(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen)
+{
+ return dilithium_kernel_set_pub_key_int(tfm, key, keylen, DILITHIUM_44);
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+static int dilithium_kernel_65_set_pub_key(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen)
+{
+ return dilithium_kernel_set_pub_key_int(tfm, key, keylen, DILITHIUM_65);
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+static int dilithium_kernel_87_set_pub_key(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen)
+{
+ return dilithium_kernel_set_pub_key_int(tfm, key, keylen, DILITHIUM_87);
+}
+#endif
+
+static int dilithium_kernel_set_priv_key_int(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen,
+ enum dilithium_type type)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+ int ret;
+
+ ctx->key_type = dilithium_kernel_key_unset;
+
+ ret = dilithium_sk_load(&ctx->sk, key, keylen);
+
+ if (!ret) {
+ if (dilithium_sk_type(&ctx->sk) != type)
+ ret = -EOPNOTSUPP;
+ else
+ ctx->key_type = dilithium_kernel_key_sk;
+ }
+
+ return ret;
+}
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+static int dilithium_kernel_44_set_priv_key(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen)
+{
+ return dilithium_kernel_set_priv_key_int(tfm, key, keylen,
+ DILITHIUM_44);
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+static int dilithium_kernel_65_set_priv_key(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen)
+{
+ return dilithium_kernel_set_priv_key_int(tfm, key, keylen,
+ DILITHIUM_65);
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+static int dilithium_kernel_87_set_priv_key(struct crypto_sig *tfm,
+ const void *key,
+ unsigned int keylen)
+{
+ return dilithium_kernel_set_priv_key_int(tfm, key, keylen,
+ DILITHIUM_87);
+}
+#endif
+
+static unsigned int dilithium_kernel_max_size(struct crypto_sig *tfm)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+ enum dilithium_type type;
+
+ switch (ctx->key_type) {
+ case dilithium_kernel_key_sk:
+ type = dilithium_sk_type(&ctx->sk);
+ /* When SK is set -> generate a signature */
+ return dilithium_sig_size(type);
+ case dilithium_kernel_key_pk:
+ type = dilithium_pk_type(&ctx->pk);
+ /* When PK is set, this is a safety valve, result is boolean */
+ return dilithium_sig_size(type);
+ default:
+ return 0;
+ }
+}
+
+static int dilithium_kernel_alg_init(struct crypto_sig *tfm)
+{
+ return 0;
+}
+
+static void dilithium_kernel_alg_exit(struct crypto_sig *tfm)
+{
+ struct dilithium_kernel_ctx *ctx = crypto_sig_ctx(tfm);
+
+ ctx->key_type = dilithium_kernel_key_unset;
+}
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+static struct sig_alg dilithium_kernel_87 = {
+ .sign = dilithium_kernel_sign,
+ .verify = dilithium_kernel_verify,
+ .set_pub_key = dilithium_kernel_87_set_pub_key,
+ .set_priv_key = dilithium_kernel_87_set_priv_key,
+ .key_size = dilithium_kernel_87_key_size,
+ .max_size = dilithium_kernel_max_size,
+ .init = dilithium_kernel_alg_init,
+ .exit = dilithium_kernel_alg_exit,
+ .base.cra_name = "ml-dsa87",
+ .base.cra_driver_name = "ml-dsa87-leancrypto",
+ .base.cra_ctxsize = sizeof(struct dilithium_kernel_ctx),
+ .base.cra_module = THIS_MODULE,
+ .base.cra_priority = 5000,
+};
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+static struct sig_alg dilithium_kernel_65 = {
+ .sign = dilithium_kernel_sign,
+ .verify = dilithium_kernel_verify,
+ .set_pub_key = dilithium_kernel_65_set_pub_key,
+ .set_priv_key = dilithium_kernel_65_set_priv_key,
+ .key_size = dilithium_kernel_65_key_size,
+ .max_size = dilithium_kernel_max_size,
+ .init = dilithium_kernel_alg_init,
+ .exit = dilithium_kernel_alg_exit,
+ .base.cra_name = "ml-dsa65",
+ .base.cra_driver_name = "ml-dsa65-leancrypto",
+ .base.cra_ctxsize = sizeof(struct dilithium_kernel_ctx),
+ .base.cra_module = THIS_MODULE,
+ .base.cra_priority = 5000,
+};
+#endif
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+static struct sig_alg dilithium_kernel_44 = {
+ .sign = dilithium_kernel_sign,
+ .verify = dilithium_kernel_verify,
+ .set_pub_key = dilithium_kernel_44_set_pub_key,
+ .set_priv_key = dilithium_kernel_44_set_priv_key,
+ .key_size = dilithium_kernel_44_key_size,
+ .max_size = dilithium_kernel_max_size,
+ .init = dilithium_kernel_alg_init,
+ .exit = dilithium_kernel_alg_exit,
+ .base.cra_name = "ml-dsa44",
+ .base.cra_driver_name = "ml-dsa44-leancrypto",
+ .base.cra_ctxsize = sizeof(struct dilithium_kernel_ctx),
+ .base.cra_module = THIS_MODULE,
+ .base.cra_priority = 5000,
+};
+#endif
+
+static int __init dilithium_init(void)
+{
+ int ret;
+
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ ret = crypto_register_sig(&dilithium_kernel_44);
+ if (ret < 0)
+ goto error_44;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ ret = crypto_register_sig(&dilithium_kernel_65);
+ if (ret < 0)
+ goto error_65;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ ret = crypto_register_sig(&dilithium_kernel_87);
+ if (ret < 0)
+ goto error_87;
+#endif
+ return 0;
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+error_87:
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ crypto_unregister_sig(&dilithium_kernel_65);
+error_65:
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ crypto_unregister_sig(&dilithium_kernel_44);
+error_44:
+#endif
+ pr_err("Failed to register (%d)\n", ret);
+ return ret;
+}
+module_init(dilithium_init);
+
+static void dilithium_exit(void)
+{
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ crypto_unregister_sig(&dilithium_kernel_87);
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ crypto_unregister_sig(&dilithium_kernel_65);
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ crypto_unregister_sig(&dilithium_kernel_44);
+#endif
+}
+module_exit(dilithium_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("Leancrypto ML-DSA/Dilithium");
+MODULE_AUTHOR("Stephan Mueller <smueller@chronox.de>");
+MODULE_ALIAS_CRYPTO("ml-dsa44");
+MODULE_ALIAS_CRYPTO("ml-dsa65");
+MODULE_ALIAS_CRYPTO("ml-dsa87");
diff --git a/crypto/ml_dsa/dilithium_signature_c.c b/crypto/ml_dsa/dilithium_signature_c.c
new file mode 100644
index 000000000000..a4a9d0bfdd37
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_signature_c.c
@@ -0,0 +1,174 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#include "dilithium_signature_c.h"
+
+/* We need once the buffer size to handle the hashing */
+#define LC_POLY_UNIFOR_BUF_SIZE_MULTIPLIER 1
+
+#include "dilithium_poly.h"
+#include "dilithium_poly_common.h"
+#include "dilithium_poly_c.h"
+#include "dilithium_polyvec.h"
+#include "dilithium_polyvec_c.h"
+#include "dilithium_pack.h"
+#include "dilithium_signature_impl.h"
+
+int dilithium_sign_c(struct dilithium_sig *sig,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ return dilithium_sign_impl(sig, m, mlen, sk, rng_ctx);
+}
+
+int dilithium_sign_ctx_c(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ return dilithium_sign_ctx_impl(sig, ctx, m, mlen, sk, rng_ctx);
+}
+
+int dilithium_sign_init_c(struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk)
+{
+ return dilithium_sign_init_impl(ctx, sk);
+}
+
+int dilithium_sign_update_c(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen)
+{
+ return dilithium_sign_update_impl(ctx, m, mlen);
+}
+
+int dilithium_sign_final_c(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ return dilithium_sign_final_impl(sig, ctx, sk, rng_ctx);
+}
+
+int dilithium_verify_c(const struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk)
+{
+ return dilithium_verify_impl(sig, m, mlen, pk);
+}
+
+int dilithium_verify_ctx_c(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk)
+{
+ return dilithium_verify_ctx_impl(sig, ctx, m, mlen, pk);
+}
+
+int dilithium_verify_init_c(struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ return dilithium_verify_init_impl(ctx, pk);
+}
+
+int dilithium_verify_update_c(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen)
+{
+ return dilithium_verify_update_impl(ctx, m, mlen);
+}
+
+int dilithium_verify_final_c(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ return dilithium_verify_final_impl(sig, ctx, pk);
+}
+
+int dilithium_sign(struct dilithium_sig *sig,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ return dilithium_sign_c(sig, m, mlen, sk, rng_ctx);
+}
+
+int dilithium_sign_ctx(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ return dilithium_sign_ctx_c(sig, ctx, m, mlen, sk, rng_ctx);
+}
+
+int dilithium_sign_init(struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk)
+{
+ return dilithium_sign_init_c(ctx, sk);
+}
+
+int dilithium_sign_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen)
+{
+ return dilithium_sign_update_c(ctx, m, mlen);
+}
+
+int dilithium_sign_final(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ return dilithium_sign_final_c(sig, ctx, sk, rng_ctx);
+}
+
+int dilithium_verify(const struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk)
+{
+ return dilithium_verify_c(sig, m, mlen, pk);
+}
+
+int dilithium_verify_ctx(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk)
+{
+ return dilithium_verify_ctx_c(sig, ctx, m, mlen, pk);
+}
+
+int dilithium_verify_init(struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ return dilithium_verify_init_c(ctx, pk);
+}
+
+int dilithium_verify_update(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen)
+{
+ return dilithium_verify_update_c(ctx, m, mlen);
+}
+
+int dilithium_verify_final(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ return dilithium_verify_final_c(sig, ctx, pk);
+}
diff --git a/crypto/ml_dsa/dilithium_signature_c.h b/crypto/ml_dsa/dilithium_signature_c.h
new file mode 100644
index 000000000000..a7d20cd49672
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_signature_c.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_SIGNATURE_C_H
+#define DILITHIUM_SIGNATURE_C_H
+
+#include "dilithium_type.h"
+
+int dilithium_sign_c(struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+int dilithium_sign_ctx_c(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+int dilithium_sign_init_c(struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk);
+int dilithium_sign_update_c(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+int dilithium_sign_final_c(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+int dilithium_verify_c(const struct dilithium_sig *sig, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk);
+int dilithium_verify_ctx_c(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen, const struct dilithium_pk *pk);
+int dilithium_verify_init_c(struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk);
+int dilithium_verify_update_c(struct dilithium_ctx *ctx, const uint8_t *m,
+ size_t mlen);
+int dilithium_verify_final_c(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk);
+
+#endif /* DILITHIUM_SIGNATURE_C_H */
diff --git a/crypto/ml_dsa/dilithium_signature_helper.c b/crypto/ml_dsa/dilithium_signature_helper.c
new file mode 100644
index 000000000000..3f6b9d02602f
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_signature_helper.c
@@ -0,0 +1,110 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2024 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#include <linux/export.h>
+#include <linux/math.h>
+#include <linux/slab.h>
+#include "dilithium_type.h"
+
+#define cround(x) round_up((x), umax(DILITHIUM_AHAT_ALIGNMENT, CRYPTO_MINALIGN))
+
+struct dilithium_ctx *dilithium_ctx_alloc(void)
+{
+ struct dilithium_ctx *ctx;
+ struct crypto_shash *shash;
+ void *p;
+
+ shash = crypto_alloc_shash("shake256", 0, 0);
+ if (IS_ERR(shash)) {
+ pr_warn("no shake256: %ld\n", PTR_ERR(shash));
+ return ERR_CAST(shash);
+ }
+
+ p = kzalloc(cround(sizeof(struct dilithium_ctx)) +
+ cround(crypto_shash_descsize(shash)),
+ GFP_KERNEL);
+ if (!p) {
+ crypto_free_shash(shash);
+ return ERR_PTR(-ENOMEM);
+ }
+
+ ctx = p;
+ //ctx->dilithium_hash_ctx = p + cround(sizeof(struct dilithium_ctx));
+ ctx->dilithium_prehash_type = shash;
+ return ctx;
+}
+EXPORT_SYMBOL(dilithium_ctx_alloc);
+
+struct dilithium_ctx *dilithium_ctx_alloc_ahat(enum dilithium_type type)
+{
+ struct dilithium_ctx *ctx;
+ struct crypto_shash *shash;
+ size_t ahat_size;
+ void *p;
+
+ shash = crypto_alloc_shash("shake256", 0, 0);
+ if (IS_ERR(shash))
+ return ERR_CAST(shash);
+
+ switch (type) {
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ case DILITHIUM_44:
+ ahat_size = DILITHIUM_44_AHAT_SIZE;
+ break;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ case DILITHIUM_65:
+ ahat_size = DILITHIUM_65_AHAT_SIZE;
+ break;
+#endif
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ case DILITHIUM_87:
+ ahat_size = DILITHIUM_87_AHAT_SIZE;
+ break;
+#endif
+ default:
+ WARN_ON(1);
+ return ERR_PTR(-EINVAL);
+ }
+
+ p = kzalloc(cround(sizeof(struct dilithium_ctx)) +
+ cround(ahat_size) +
+ cround(crypto_shash_descsize(shash)),
+ GFP_KERNEL);
+ if (!p) {
+ crypto_free_shash(shash);
+ return ERR_PTR(-ENOMEM);
+ }
+
+ ctx = p;
+ p += cround(sizeof(struct dilithium_ctx));
+ ctx->ahat = p;
+ ctx->ahat_size = ahat_size;
+ p += cround(ahat_size);
+ //ctx->dilithium_hash_ctx = p;
+ ctx->dilithium_prehash_type = shash;
+ return ctx;
+}
+EXPORT_SYMBOL(dilithium_ctx_alloc_ahat);
+
+void dilithium_ctx_zero_free(struct dilithium_ctx *ctx)
+{
+ crypto_free_shash(ctx->dilithium_prehash_type);
+ kfree_sensitive(ctx);
+}
+EXPORT_SYMBOL(dilithium_ctx_zero_free);
diff --git a/crypto/ml_dsa/dilithium_signature_impl.h b/crypto/ml_dsa/dilithium_signature_impl.h
new file mode 100644
index 000000000000..1f0ec0f7c27c
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_signature_impl.h
@@ -0,0 +1,838 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#ifndef DILITHIUM_SIGNATURE_IMPL_H
+#define DILITHIUM_SIGNATURE_IMPL_H
+
+#include "dilithium.h"
+#include "dilithium_type.h"
+#include "dilithium_debug.h"
+#include "dilithium_pack.h"
+#include "dilithium_signature_impl.h"
+#include "signature_domain_separation.h"
+#include "small_stack_support.h"
+
+/*
+ * Enable this macro to report the rejection code paths taken with the
+ * signature generation operation. When disabled, the compiler should
+ * eliminate this code which means that the counting code is folded away.
+ */
+#undef REJECTION_TEST_SAMPLING
+
+#define _WS_POLY_UNIFORM_BUF_SIZE \
+ (POLY_UNIFORM_NBLOCKS * SHAKE128_BLOCK_SIZE + 2)
+
+#ifndef LC_POLY_UNIFOR_BUF_SIZE_MULTIPLIER
+#error "LC_POLY_UNIFOR_BUF_SIZE_MULTIPLIER is not defined"
+#endif
+
+#define WS_POLY_UNIFORM_BUF_SIZE \
+ (_WS_POLY_UNIFORM_BUF_SIZE * LC_POLY_UNIFOR_BUF_SIZE_MULTIPLIER)
+
+static int dilithium_sign_internal_ahat(struct dilithium_sig *sig,
+ const struct dilithium_sk *sk,
+ struct dilithium_ctx *ctx,
+ struct crypto_rng *rng_ctx)
+{
+ struct workspace_sign {
+ polyvecl s1, y, z;
+ polyveck t0, s2, w1, w0, h;
+ poly cp;
+ uint8_t seedbuf[DILITHIUM_SEEDBYTES + DILITHIUM_RNDBYTES +
+ DILITHIUM_CRHBYTES];
+ union {
+ uint8_t poly_uniform_gamma1_buf[WS_POLY_UNIFORM_BUF_SIZE];
+ uint8_t poly_challenge_buf[POLY_CHALLENGE_BYTES];
+ } tmp;
+ };
+ unsigned int n;
+ uint8_t *key, *mu, *rhoprime, *rnd;
+ const polyvecl *mat = ctx->ahat;
+ uint16_t nonce = 0;
+ int ret = 0;
+ uint8_t __maybe_unused rej_total = 0;
+ LC_DECLARE_MEM(ws, struct workspace_sign, sizeof(uint64_t));
+
+ /* AHat must be present at this time */
+ if (WARN_ON_ONCE(!mat)) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ key = ws->seedbuf;
+ rnd = key + DILITHIUM_SEEDBYTES;
+ mu = rnd + DILITHIUM_RNDBYTES;
+
+ /*
+ * If the external mu is provided, use this verbatim, otherwise
+ * calculate the mu value.
+ */
+ if (ctx->external_mu) {
+ if (ctx->external_mu_len != DILITHIUM_CRHBYTES)
+ return -EINVAL;
+ memcpy(mu, ctx->external_mu, DILITHIUM_CRHBYTES);
+ } else {
+ /*
+ * Set the digestsize - for SHA512 this is a noop, for SHAKE256,
+ * it sets the value. The BUILD_BUG_ON is to check that the
+ * SHA-512 output size is identical to the expected length.
+ */
+ BUILD_BUG_ON(DILITHIUM_CRHBYTES != SHA3_512_DIGEST_SIZE);
+ if (!dilithium_hash_check_digestsize(ctx, DILITHIUM_CRHBYTES)) {
+ ret = -EINVAL;
+ goto out;
+ }
+ dilithium_hash_final(ctx, mu, DILITHIUM_CRHBYTES);
+ }
+ dilithium_print_buffer(mu, DILITHIUM_CRHBYTES, "Siggen - MU:");
+
+ if (rng_ctx) {
+ ret = crypto_rng_generate(rng_ctx, NULL, 0, rnd,
+ DILITHIUM_RNDBYTES);
+ if (ret < 0)
+ goto out;
+ } else {
+ memset(rnd, 0, DILITHIUM_RNDBYTES);
+ }
+ dilithium_print_buffer(rnd, DILITHIUM_RNDBYTES, "Siggen - RND:");
+
+ unpack_sk_key(key, sk);
+
+ /* Timecop: key is secret */
+ poison(key, DILITHIUM_SEEDBYTES);
+
+ /* Re-use the ws->seedbuf, but making sure that mu is unchanged */
+ BUILD_BUG_ON(DILITHIUM_CRHBYTES >
+ DILITHIUM_SEEDBYTES + DILITHIUM_RNDBYTES);
+ rhoprime = key;
+
+ shake256(key,
+ DILITHIUM_SEEDBYTES + DILITHIUM_RNDBYTES +
+ DILITHIUM_CRHBYTES,
+ rhoprime, DILITHIUM_CRHBYTES);
+ dilithium_print_buffer(rhoprime, DILITHIUM_CRHBYTES,
+ "Siggen - RHOPrime:");
+
+ /*
+ * Timecop: RHO' is the hash of the secret value of key which is
+ * enlarged to sample the intermediate vector y from. Due to the hashing
+ * any side channel on RHO' cannot allow the deduction of the original
+ * key.
+ */
+ unpoison(rhoprime, DILITHIUM_CRHBYTES);
+
+ unpack_sk_s1(&ws->s1, sk);
+
+ /* Timecop: s1 is secret */
+ poison(&ws->s1, sizeof(polyvecl));
+
+ polyvecl_ntt(&ws->s1);
+ dilithium_print_polyvecl(&ws->s1,
+ "Siggen - S1 L x N matrix after NTT:");
+
+ unpack_sk_s2(&ws->s2, sk);
+
+ /* Timecop: s2 is secret */
+ poison(&ws->s2, sizeof(polyveck));
+
+ polyveck_ntt(&ws->s2);
+ dilithium_print_polyveck(&ws->s2,
+ "Siggen - S2 K x N matrix after NTT:");
+
+ unpack_sk_t0(&ws->t0, sk);
+ polyveck_ntt(&ws->t0);
+ dilithium_print_polyveck(&ws->t0,
+ "Siggen - T0 K x N matrix after NTT:");
+
+rej:
+ /* Sample intermediate vector y */
+ polyvecl_uniform_gamma1(&ws->y, rhoprime, nonce++,
+ ws->tmp.poly_uniform_gamma1_buf);
+ dilithium_print_polyvecl(
+ &ws->y,
+ "Siggen - Y L x N matrix after ExpandMask - start of loop");
+
+ /* Timecop: s2 is secret */
+ poison(&ws->y, sizeof(polyvecl));
+
+ /* Matrix-vector multiplication */
+ ws->z = ws->y;
+ polyvecl_ntt(&ws->z);
+
+ /* Use the cp for this operation as it is not used here so far. */
+ polyvec_matrix_pointwise_montgomery(&ws->w1, mat, &ws->z, &ws->cp);
+ polyveck_reduce(&ws->w1);
+ polyveck_invntt_tomont(&ws->w1);
+ dilithium_print_polyveck(&ws->w1,
+ "Siggen - W K x N matrix after NTT-1");
+
+ /* Decompose w and call the random oracle */
+ polyveck_caddq(&ws->w1);
+ polyveck_decompose(&ws->w1, &ws->w0, &ws->w1);
+
+ /* Timecop: the signature component w1 is not sensitive any more. */
+ unpoison(&ws->w1, sizeof(polyveck));
+ polyveck_pack_w1(sig->sig, &ws->w1);
+ dilithium_print_buffer(sig->sig,
+ DILITHIUM_K * DILITHIUM_POLYW1_PACKEDBYTES,
+ "Siggen - w1Encode of W1");
+
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, mu, DILITHIUM_CRHBYTES);
+ dilithium_hash_finup(ctx, sig->sig,
+ DILITHIUM_K * DILITHIUM_POLYW1_PACKEDBYTES,
+ sig->sig, DILITHIUM_CTILDE_BYTES);
+
+ dilithium_print_buffer(sig->sig, DILITHIUM_CTILDE_BYTES,
+ "Siggen - ctilde");
+
+ poly_challenge(&ws->cp, sig->sig, ws->tmp.poly_challenge_buf);
+ dilithium_print_poly(&ws->cp, "Siggen - c after SampleInBall");
+ poly_ntt(&ws->cp);
+ dilithium_print_poly(&ws->cp, "Siggen - c after NTT");
+
+ /* Compute z, reject if it reveals secret */
+ polyvecl_pointwise_poly_montgomery(&ws->z, &ws->cp, &ws->s1);
+ polyvecl_invntt_tomont(&ws->z);
+ polyvecl_add(&ws->z, &ws->z, &ws->y);
+ dilithium_print_polyvecl(&ws->z, "Siggen - z <- y + cs1");
+
+ polyvecl_reduce(&ws->z);
+ dilithium_print_polyvecl(&ws->z, "Siggen - z reduction");
+
+ /* Timecop: the signature component z is not sensitive any more. */
+ unpoison(&ws->z, sizeof(polyvecl));
+
+ if (polyvecl_chknorm(&ws->z, DILITHIUM_GAMMA1 - DILITHIUM_BETA)) {
+ dilithium_print_polyvecl(&ws->z, "Siggen - z rejection");
+ rej_total |= 1 << 0;
+ goto rej;
+ }
+
+ /*
+ * Check that subtracting cs2 does not change high bits of w and low
+ * bits do not reveal secret information.
+ */
+ polyveck_pointwise_poly_montgomery(&ws->h, &ws->cp, &ws->s2);
+ polyveck_invntt_tomont(&ws->h);
+ polyveck_sub(&ws->w0, &ws->w0, &ws->h);
+ polyveck_reduce(&ws->w0);
+
+ /* Timecop: verification data w0 is not sensitive any more. */
+ unpoison(&ws->w0, sizeof(polyveck));
+
+ if (polyveck_chknorm(&ws->w0,
+ DILITHIUM_GAMMA2 - DILITHIUM_BETA)) {
+ dilithium_print_polyveck(&ws->w0, "Siggen - r0 rejection");
+ rej_total |= 1 << 1;
+ goto rej;
+ }
+
+ /* Compute hints for w1 */
+ polyveck_pointwise_poly_montgomery(&ws->h, &ws->cp, &ws->t0);
+ polyveck_invntt_tomont(&ws->h);
+ polyveck_reduce(&ws->h);
+
+ /* Timecop: the signature component h is not sensitive any more. */
+ unpoison(&ws->h, sizeof(polyveck));
+
+ if (polyveck_chknorm(&ws->h, DILITHIUM_GAMMA2)) {
+ dilithium_print_polyveck(&ws->h, "Siggen - ct0 rejection");
+ rej_total |= 1 << 2;
+ goto rej;
+ }
+
+ polyveck_add(&ws->w0, &ws->w0, &ws->h);
+
+ n = polyveck_make_hint(&ws->h, &ws->w0, &ws->w1);
+ if (n > DILITHIUM_OMEGA) {
+ dilithium_print_polyveck(&ws->w0, "Siggen - h rejection");
+ rej_total |= 1 << 3;
+ goto rej;
+ }
+
+ /* Write signature */
+ dilithium_print_buffer(sig->sig, DILITHIUM_CTILDE_BYTES,
+ "Siggen - Ctilde:");
+ dilithium_print_polyvecl(&ws->z, "Siggen - Z L x N matrix:");
+ dilithium_print_polyveck(&ws->h, "Siggen - H K x N matrix:");
+
+ pack_sig(sig, &ws->z, &ws->h);
+
+ dilithium_print_buffer(sig->sig, DILITHIUM_CRYPTO_BYTES,
+ "Siggen - Signature:");
+
+out:
+ LC_RELEASE_MEM(ws);
+#ifdef REJECTION_TEST_SAMPLING
+ return ret ? ret : rej_total;
+#else
+ return ret;
+#endif
+}
+
+static int dilithium_sign_internal_noahat(struct dilithium_sig *sig,
+ const struct dilithium_sk *sk,
+ struct dilithium_ctx *ctx,
+ struct crypto_rng *rng_ctx)
+{
+ struct workspace_sign {
+ polyvecl mat[DILITHIUM_K];
+ uint8_t poly_uniform_buf[WS_POLY_UNIFORM_BUF_SIZE];
+ };
+ /* The first bytes of the key is rho. */
+ const uint8_t *rho = sk->sk;
+ int ret = 0;
+ LC_DECLARE_MEM(ws, struct workspace_sign, DILITHIUM_AHAT_ALIGNMENT);
+
+ polyvec_matrix_expand(ws->mat, rho, ws->poly_uniform_buf);
+
+ /* Temporarily set the pointer */
+ ctx->ahat = ws->mat;
+
+ ret = dilithium_sign_internal_ahat(sig, sk, ctx, rng_ctx);
+
+ ctx->ahat = NULL;
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static int dilithium_sk_expand_impl(const struct dilithium_sk *sk,
+ struct dilithium_ctx *ctx)
+{
+ struct workspace_sign {
+ uint8_t poly_uniform_buf[WS_POLY_UNIFORM_BUF_SIZE];
+ };
+ /* The first bytes of the key is rho. */
+ const uint8_t *rho = sk->sk;
+ polyvecl *mat = ctx->ahat;
+ int ret = 0;
+ LC_DECLARE_MEM(ws, struct workspace_sign, sizeof(uint64_t));
+
+ /*
+ * The compile time sanity check links API header file with
+ * Dilithium-internal definitions.
+ *
+ * Runtime sanity check ensures that the allocated context has
+ * sufficient size (e.g. not that caller used, say,
+ * DILITHIUM_44_CTX_ON_STACK_AHAT with a ML-DSA 65 or 87 key)
+ */
+#if DILITHIUM_MODE == 2
+ BUILD_BUG_ON(DILITHIUM_44_AHAT_SIZE !=
+ sizeof(polyvecl) * DILITHIUM44_K);
+ if (ctx->ahat_size < DILITHIUM_44_AHAT_SIZE) {
+ ret = -EOVERFLOW;
+ goto out;
+ }
+#elif DILITHIUM_MODE == 3
+ BUILD_BUG_ON(DILITHIUM_65_AHAT_SIZE !=
+ sizeof(polyvecl) * DILITHIUM65_K);
+ if (ctx->ahat_size < DILITHIUM_65_AHAT_SIZE) {
+ ret = -EOVERFLOW;
+ goto out;
+ }
+#elif DILITHIUM_MODE == 5
+ BUILD_BUG_ON(DILITHIUM_87_AHAT_SIZE !=
+ sizeof(polyvecl) * DILITHIUM87_K);
+ if (ctx->ahat_size < DILITHIUM_87_AHAT_SIZE) {
+ ret = -EOVERFLOW;
+ goto out;
+ }
+#else
+#error "Undefined DILITHIUM_MODE"
+#endif
+
+ polyvec_matrix_expand(mat, rho, ws->poly_uniform_buf);
+ dilithium_print_polyvecl_k(mat,
+ "AHAT - A K x L x N matrix after ExpandA:");
+
+ ctx->ahat_expanded = 1;
+
+out:
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static int dilithium_sign_internal(struct dilithium_sig *sig,
+ const struct dilithium_sk *sk,
+ struct dilithium_ctx *ctx,
+ struct crypto_rng *rng_ctx)
+{
+ int ret;
+
+ if (!ctx->ahat)
+ return dilithium_sign_internal_noahat(sig, sk, ctx, rng_ctx);
+
+ if (!ctx->ahat_expanded) {
+ ret = dilithium_sk_expand_impl(sk, ctx);
+ if (ret < 0)
+ goto out;
+ }
+
+ ret = dilithium_sign_internal_ahat(sig, sk, ctx, rng_ctx);
+
+out:
+ return ret;
+}
+
+static int dilithium_sign_ctx_impl(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ uint8_t tr[DILITHIUM_TRBYTES];
+ int ret = 0;
+
+ /* rng_ctx is allowed to be NULL as handled below */
+ if (!sig || !sk || !ctx)
+ return -EINVAL;
+ /* Either the message or the external mu must be provided */
+ if (!m && !ctx->external_mu)
+ return -EINVAL;
+
+ dilithium_print_buffer(m, mlen, "Siggen - Message");
+
+ unpack_sk_tr(tr, sk);
+
+ if (m) {
+ /* Compute mu = CRH(tr, msg) */
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, tr, DILITHIUM_TRBYTES);
+
+ ret = signature_domain_separation(
+ &ctx->dilithium_hash_ctx, ctx->ml_dsa_internal,
+ ctx->userctx, ctx->userctxlen,
+ m, mlen,
+ ctx->randomizer, ctx->randomizerlen,
+ DILITHIUM_NIST_CATEGORY);
+ if (ret < 0)
+ goto out;
+ }
+
+ ret = dilithium_sign_internal(sig, sk, ctx, rng_ctx);
+
+out:
+ memzero_explicit(tr, sizeof(tr));
+ return ret;
+}
+
+static int dilithium_sign_impl(struct dilithium_sig *sig,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ struct dilithium_ctx *ctx;
+ int ret;
+
+ ctx = dilithium_ctx_alloc();
+ if (IS_ERR(ctx))
+ return PTR_ERR(ctx);
+
+ ret = dilithium_sign_ctx_impl(sig, ctx, m, mlen, sk, rng_ctx);
+
+ dilithium_ctx_zero_free(ctx);
+ return ret;
+}
+
+static int dilithium_sign_init_impl(struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk)
+{
+ uint8_t tr[DILITHIUM_TRBYTES];
+
+ /* rng_ctx is allowed to be NULL as handled below */
+ if (!ctx || !sk)
+ return -EINVAL;
+
+ /* Require the use of SHAKE256 */
+ if (!dilithium_hash_check_blocksize(ctx, SHAKE256_BLOCK_SIZE))
+ return -EOPNOTSUPP;
+
+ unpack_sk_tr(tr, sk);
+
+ /* Compute mu = CRH(tr, msg) */
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, tr, DILITHIUM_TRBYTES);
+ memzero_explicit(tr, sizeof(tr));
+
+ return signature_domain_separation(
+ &ctx->dilithium_hash_ctx, ctx->ml_dsa_internal,
+ ctx->userctx, ctx->userctxlen,
+ NULL, 0,
+ ctx->randomizer, ctx->randomizerlen,
+ DILITHIUM_NIST_CATEGORY);
+}
+
+static int dilithium_sign_update_impl(struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen)
+{
+ if (!ctx || !m)
+ return -EINVAL;
+
+ /* Compute CRH(tr, msg) */
+ dilithium_hash_update(ctx, m, mlen);
+
+ return 0;
+}
+
+static int dilithium_sign_final_impl(struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ int ret = 0;
+
+ /* rng_ctx is allowed to be NULL as handled below */
+ if (!sig || !ctx || !sk) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ ret = dilithium_sign_internal(sig, sk, ctx, rng_ctx);
+
+out:
+ dilithium_ctx_zero(ctx);
+ return ret;
+}
+
+static int dilithium_verify_internal_ahat(const struct dilithium_sig *sig,
+ const struct dilithium_pk *pk,
+ struct dilithium_ctx *ctx)
+{
+ struct workspace_verify {
+ union {
+ poly cp;
+ } matrix;
+ polyveck w1;
+ union {
+ polyveck t1, h;
+ polyvecl z;
+ uint8_t mu[DILITHIUM_CRHBYTES];
+ union {
+ uint8_t coeffs[round_up(DILITHIUM_CTILDE_BYTES, 8)];
+ } __aligned(8) c2;
+ } buf;
+
+ union {
+ poly polyvecl_pointwise_acc_montgomery_buf;
+ uint8_t buf[DILITHIUM_K *
+ DILITHIUM_POLYW1_PACKEDBYTES];
+ uint8_t poly_challenge_buf[POLY_CHALLENGE_BYTES];
+ } tmp;
+ };
+ /* The first bytes of the signature is c~ and thus contains c1. */
+ const uint8_t *c1 = sig->sig;
+ const polyvecl *mat = ctx->ahat;
+ int ret = 0;
+ LC_DECLARE_MEM(ws, struct workspace_verify, sizeof(uint64_t));
+
+ /* AHat must be present at this time */
+ if (!mat) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ unpack_sig_z(&ws->buf.z, sig);
+ if (polyvecl_chknorm(&ws->buf.z,
+ DILITHIUM_GAMMA1 - DILITHIUM_BETA)) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ polyvecl_ntt(&ws->buf.z);
+ polyvec_matrix_pointwise_montgomery(
+ &ws->w1, mat, &ws->buf.z,
+ &ws->tmp.polyvecl_pointwise_acc_montgomery_buf);
+
+ /* Matrix-vector multiplication; compute Az - c2^dt1 */
+ poly_challenge(&ws->matrix.cp, c1, ws->tmp.poly_challenge_buf);
+ poly_ntt(&ws->matrix.cp);
+
+ unpack_pk_t1(&ws->buf.t1, pk);
+ polyveck_shiftl(&ws->buf.t1);
+ polyveck_ntt(&ws->buf.t1);
+ polyveck_pointwise_poly_montgomery(&ws->buf.t1, &ws->matrix.cp,
+ &ws->buf.t1);
+
+ polyveck_sub(&ws->w1, &ws->w1, &ws->buf.t1);
+ polyveck_reduce(&ws->w1);
+ polyveck_invntt_tomont(&ws->w1);
+
+ /* Reconstruct w1 */
+ polyveck_caddq(&ws->w1);
+ dilithium_print_polyveck(&ws->w1,
+ "Sigver - W K x N matrix before hint:");
+
+ if (unpack_sig_h(&ws->buf.h, sig))
+ return -EINVAL;
+ dilithium_print_polyveck(&ws->buf.h, "Siggen - H K x N matrix:");
+
+ polyveck_use_hint(&ws->w1, &ws->w1, &ws->buf.h);
+ dilithium_print_polyveck(&ws->w1,
+ "Sigver - W K x N matrix after hint:");
+ polyveck_pack_w1(ws->tmp.buf, &ws->w1);
+ dilithium_print_buffer(ws->tmp.buf,
+ DILITHIUM_K * DILITHIUM_POLYW1_PACKEDBYTES,
+ "Sigver - W after w1Encode");
+
+ if (ctx->external_mu) {
+ if (ctx->external_mu_len != DILITHIUM_CRHBYTES)
+ return -EINVAL;
+
+ /* Call random oracle and verify challenge */
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, ctx->external_mu, DILITHIUM_CRHBYTES);
+ } else {
+ dilithium_hash_final(ctx, ws->buf.mu, DILITHIUM_CRHBYTES);
+
+ /* Call random oracle and verify challenge */
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, ws->buf.mu, DILITHIUM_CRHBYTES);
+ }
+
+ dilithium_hash_finup(ctx,
+ ws->tmp.buf, DILITHIUM_K * DILITHIUM_POLYW1_PACKEDBYTES,
+ ws->buf.c2.coeffs, DILITHIUM_CTILDE_BYTES);
+
+ /* Signature verification operation */
+ if (memcmp(c1, ws->buf.c2.coeffs, DILITHIUM_CTILDE_BYTES) != 0)
+ ret = -EBADMSG;
+
+out:
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static int
+dilithium_verify_internal_noahat(const struct dilithium_sig *sig,
+ const struct dilithium_pk *pk,
+ struct dilithium_ctx *ctx)
+{
+ struct workspace_verify {
+ polyvecl mat[DILITHIUM_K];
+ uint8_t poly_uniform_buf[WS_POLY_UNIFORM_BUF_SIZE];
+ };
+ /* The first bytes of the key is rho. */
+ const uint8_t *rho = pk->pk;
+ int ret = 0;
+ LC_DECLARE_MEM(ws, struct workspace_verify, sizeof(uint64_t));
+
+ polyvec_matrix_expand(ws->mat, rho, ws->poly_uniform_buf);
+
+ /* Temporarily set the pointer */
+ ctx->ahat = ws->mat;
+
+ ret = dilithium_verify_internal_ahat(sig, pk, ctx);
+
+ ctx->ahat = NULL;
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static int dilithium_pk_expand_impl(const struct dilithium_pk *pk,
+ struct dilithium_ctx *ctx)
+{
+ struct workspace_verify {
+ uint8_t poly_uniform_buf[WS_POLY_UNIFORM_BUF_SIZE];
+ };
+ /* The first bytes of the key is rho. */
+ const uint8_t *rho = pk->pk;
+ polyvecl *mat = ctx->ahat;
+ int ret = 0;
+ LC_DECLARE_MEM(ws, struct workspace_verify, sizeof(uint64_t));
+
+ /*
+ * Runtime sanity check ensures that the allocated context has
+ * sufficient size (e.g. not that caller used, say,
+ * DILITHIUM_44_CTX_ON_STACK_AHAT with a ML-DSA 65 or 87 key)
+ */
+#if DILITHIUM_MODE == 2
+ if (ctx->ahat_size < DILITHIUM_44_AHAT_SIZE) {
+ ret = -EOVERFLOW;
+ goto out;
+ }
+#elif DILITHIUM_MODE == 3
+ if (ctx->ahat_size < DILITHIUM_65_AHAT_SIZE) {
+ ret = -EOVERFLOW;
+ goto out;
+ }
+#elif DILITHIUM_MODE == 5
+ if (ctx->ahat_size < DILITHIUM_87_AHAT_SIZE) {
+ ret = -EOVERFLOW;
+ goto out;
+ }
+#else
+#error "Undefined DILITHIUM_MODE"
+#endif
+
+ polyvec_matrix_expand(mat, rho, ws->poly_uniform_buf);
+ ctx->ahat_expanded = 1;
+
+out:
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static int dilithium_verify_internal(const struct dilithium_sig *sig,
+ const struct dilithium_pk *pk,
+ struct dilithium_ctx *ctx)
+{
+ int ret;
+
+ if (!ctx->ahat)
+ return dilithium_verify_internal_noahat(sig, pk, ctx);
+
+ if (!ctx->ahat_expanded) {
+ ret = dilithium_pk_expand_impl(pk, ctx);
+ if (ret < 0)
+ goto out;
+ }
+
+ ret = dilithium_verify_internal_ahat(sig, pk, ctx);
+
+out:
+ return ret;
+}
+
+static int dilithium_verify_ctx_impl(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_pk *pk)
+{
+ uint8_t tr[DILITHIUM_TRBYTES];
+ int ret = 0;
+
+ if (!sig || !pk || !ctx)
+ return -EINVAL;
+
+ /* Either the message or the external mu must be provided */
+ if (!m && !ctx->external_mu)
+ return -EINVAL;
+
+ /* Make sure that ->mu is large enough for ->tr */
+ BUILD_BUG_ON(DILITHIUM_TRBYTES > DILITHIUM_CRHBYTES);
+
+ /* Compute CRH(H(rho, t1), msg) */
+ shake256(pk->pk, DILITHIUM_PUBLICKEYBYTES, tr,
+ DILITHIUM_TRBYTES);
+
+ if (m) {
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, tr, DILITHIUM_TRBYTES);
+ ret = signature_domain_separation(
+ &ctx->dilithium_hash_ctx, ctx->ml_dsa_internal,
+ ctx->userctx, ctx->userctxlen,
+ m, mlen,
+ ctx->randomizer, ctx->randomizerlen,
+ DILITHIUM_NIST_CATEGORY);
+ if (ret < 0)
+ goto out;
+ }
+
+ ret = dilithium_verify_internal(sig, pk, ctx);
+
+out:
+ memzero_explicit(tr, sizeof(tr));
+ return ret;
+}
+
+static int dilithium_verify_impl(const struct dilithium_sig *sig,
+ const uint8_t *m, size_t mlen,
+ const struct dilithium_pk *pk)
+{
+ struct dilithium_ctx *ctx;
+ int ret;
+
+ ctx = dilithium_ctx_alloc();
+ if (IS_ERR(ctx))
+ return PTR_ERR(ctx);
+
+ ret = dilithium_verify_ctx_impl(sig, ctx, m, mlen, pk);
+
+ dilithium_ctx_zero_free(ctx);
+ return ret;
+}
+
+static int dilithium_verify_init_impl(struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ uint8_t mu[DILITHIUM_TRBYTES];
+
+ /* rng_ctx is allowed to be NULL as handled below */
+ if (!ctx || !pk)
+ return -EINVAL;
+
+ /* Require the use of SHAKE256 */
+ if (!dilithium_hash_check_blocksize(ctx, SHAKE256_BLOCK_SIZE))
+ return -EOPNOTSUPP;
+
+ /* Compute CRH(H(rho, t1), msg) */
+ shake256(pk->pk, DILITHIUM_PUBLICKEYBYTES, mu,
+ DILITHIUM_TRBYTES);
+
+ dilithium_hash_init(ctx);
+ dilithium_hash_update(ctx, mu, DILITHIUM_TRBYTES);
+ memzero_explicit(mu, sizeof(mu));
+
+ return signature_domain_separation(
+ &ctx->dilithium_hash_ctx, ctx->ml_dsa_internal,
+ ctx->userctx, ctx->userctxlen,
+ NULL, 0,
+ ctx->randomizer, ctx->randomizerlen,
+ DILITHIUM_NIST_CATEGORY);
+}
+
+static int dilithium_verify_update_impl(struct dilithium_ctx *ctx,
+ const uint8_t *m, size_t mlen)
+{
+ if (!ctx || !m)
+ return -EINVAL;
+
+ /* Compute CRH(H(rho, t1), msg) */
+ dilithium_hash_update(ctx, m, mlen);
+
+ return 0;
+}
+
+static int dilithium_verify_final_impl(const struct dilithium_sig *sig,
+ struct dilithium_ctx *ctx,
+ const struct dilithium_pk *pk)
+{
+ int ret = 0;
+
+ if (!sig || !ctx || !pk) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ ret = dilithium_verify_internal(sig, pk, ctx);
+
+out:
+ dilithium_ctx_zero(ctx);
+ return ret;
+}
+
+#endif /* DILITHIUM_SIGNATURE_IMPL_H */
diff --git a/crypto/ml_dsa/dilithium_type.h b/crypto/ml_dsa/dilithium_type.h
new file mode 100644
index 000000000000..f9f7ffa2cd38
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_type.h
@@ -0,0 +1,259 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2024 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_TYPE_H
+#define DILITHIUM_TYPE_H
+
+#include "dilithium.h"
+
+/*
+ * This define replaces all symbol names accordingly to allow double compilation
+ * of the same code base.
+ *
+ * Due to the replacement operation, this header file must be included as the
+ * first header file in the entire stack.
+ *
+ * This file can easily be replaced with dilithium.h to achieve the common
+ * functionality without symbol duplication. But in this case, only the
+ * Dilithium security strength is compiled defined in dilithium.h. Duplicate
+ * compilation different sizes would not be possible.
+ */
+#ifdef DILITHIUM_TYPE_65
+#define DILITHIUM_F(name) dilithium_65_##name
+#define dilithium_pk dilithium_65_pk
+#define dilithium_sk dilithium_65_sk
+#define dilithium_sig dilithium_65_sig
+
+#include "dilithium_65.h"
+
+#elif defined DILITHIUM_TYPE_44
+#define DILITHIUM_F(name) dilithium_44_##name
+#define dilithium_pk dilithium_44_pk
+#define dilithium_sk dilithium_44_sk
+#define dilithium_sig dilithium_44_sig
+
+#include "dilithium_44.h"
+
+#else
+#define DILITHIUM_F(name) dilithium_87_##name
+#define dilithium_pk dilithium_87_pk
+#define dilithium_sk dilithium_87_sk
+#define dilithium_sig dilithium_87_sig
+
+#include "dilithium_87.h"
+
+#endif
+
+/*
+ * The following defines simply allow duplicate compilation of the
+ * respective functions.
+ */
+#define dilithium_sign DILITHIUM_F(sign)
+#define dilithium_sign_ctx DILITHIUM_F(sign_ctx)
+#define dilithium_sign_init DILITHIUM_F(sign_init)
+#define dilithium_sign_update DILITHIUM_F(sign_update)
+#define dilithium_sign_final DILITHIUM_F(sign_final)
+#define dilithium_verify DILITHIUM_F(verify)
+#define dilithium_verify_ctx DILITHIUM_F(verify_ctx)
+#define dilithium_verify_init DILITHIUM_F(verify_init)
+#define dilithium_verify_update DILITHIUM_F(verify_update)
+#define dilithium_verify_final DILITHIUM_F(verify_final)
+
+#define dilithium_sign_c DILITHIUM_F(sign_c)
+#define dilithium_sign_ctx_c DILITHIUM_F(sign_ctx_c)
+#define dilithium_sign_init_c DILITHIUM_F(sign_init_c)
+#define dilithium_sign_update_c DILITHIUM_F(sign_update_c)
+#define dilithium_sign_final_c DILITHIUM_F(sign_final_c)
+#define dilithium_verify_c DILITHIUM_F(verify_c)
+#define dilithium_verify_ctx_c DILITHIUM_F(verify_ctx_c)
+#define dilithium_verify_init_c DILITHIUM_F(verify_init_c)
+#define dilithium_verify_update_c DILITHIUM_F(verify_update_c)
+#define dilithium_verify_final_c DILITHIUM_F(verify_final_c)
+
+#define ntt DILITHIUM_F(ntt)
+#define invntt_tomont DILITHIUM_F(invntt_tomont)
+#define poly_chknorm DILITHIUM_F(poly_chknorm)
+#define poly_uniform DILITHIUM_F(poly_uniform)
+#define poly_uniform_eta DILITHIUM_F(poly_uniform_eta)
+#define poly_uniform_gamma1 DILITHIUM_F(poly_uniform_gamma1)
+#define polyz_unpack DILITHIUM_F(polyz_unpack)
+#define poly_challenge DILITHIUM_F(poly_challenge)
+#define polyeta_pack DILITHIUM_F(polyeta_pack)
+#define polyeta_unpack DILITHIUM_F(polyeta_unpack)
+#define polyt1_pack DILITHIUM_F(polyt1_pack)
+#define polyt0_pack DILITHIUM_F(polyt0_pack)
+#define polyt0_unpack DILITHIUM_F(polyt0_unpack)
+#define polyz_pack DILITHIUM_F(polyz_pack)
+#define polyw1_pack DILITHIUM_F(polyw1_pack)
+#define power2round DILITHIUM_F(power2round)
+#define decompose DILITHIUM_F(decompose)
+#define make_hint DILITHIUM_F(make_hint)
+#define use_hint DILITHIUM_F(use_hint)
+
+#define dilithium_print_buffer DILITHIUM_F(print_buffer)
+#define dilithium_print_polyvecl_k DILITHIUM_F(print_polyvecl_k)
+#define dilithium_print_polyvecl DILITHIUM_F(print_polyvecl)
+#define dilithium_print_polyveck DILITHIUM_F(print_polyveck)
+#define dilithium_print_poly DILITHIUM_F(print_poly)
+
+/* AVX2 Implementation */
+#define dilithium_invntt_avx DILITHIUM_F(invntt_avx)
+#define dilithium_ntt_avx DILITHIUM_F(ntt_avx)
+#define dilithium_nttunpack_avx DILITHIUM_F(nttunpack_avx)
+#define dilithium_pointwise_avx DILITHIUM_F(pointwise_avx)
+#define dilithium_pointwise_acc_avx DILITHIUM_F(pointwise_acc_avx)
+#define poly_reduce_avx DILITHIUM_F(poly_reduce_avx)
+#define poly_caddq_avx DILITHIUM_F(poly_caddq_avx)
+#define poly_add_avx DILITHIUM_F(poly_add_avx)
+#define poly_sub_avx DILITHIUM_F(poly_sub_avx)
+#define poly_shiftl_avx DILITHIUM_F(poly_shiftl_avx)
+#define poly_chknorm_avx DILITHIUM_F(poly_chknorm_avx)
+#define poly_uniform_4x_avx DILITHIUM_F(poly_uniform_4x_avx)
+#define poly_uniform_eta_4x_avx DILITHIUM_F(poly_uniform_eta_4x_avx)
+#define poly_uniform_gamma1_4x_avx DILITHIUM_F(poly_uniform_gamma1_4x_avx)
+#define polyz_unpack_avx DILITHIUM_F(polyz_unpack_avx)
+#define poly_challenge_avx DILITHIUM_F(poly_challenge_avx)
+#define polyeta_pack_avx DILITHIUM_F(polyeta_pack_avx)
+#define polyeta_unpack_avx DILITHIUM_F(polyeta_unpack_avx)
+#define polyt1_pack_avx DILITHIUM_F(polyt1_pack_avx)
+#define polyt1_unpack_avx DILITHIUM_F(polyt1_unpack_avx)
+#define polyt0_pack_avx DILITHIUM_F(polyt0_pack_avx)
+#define polyt0_unpack_avx DILITHIUM_F(polyt0_unpack_avx)
+#define polyz_pack_avx DILITHIUM_F(polyz_pack_avx)
+#define polyw1_pack_avx DILITHIUM_F(polyw1_pack_avx)
+#define polyvec_matrix_expand DILITHIUM_F(polyvec_matrix_expand)
+#define polyvec_matrix_expand_row0 DILITHIUM_F(polyvec_matrix_expand_row0)
+#define polyvec_matrix_expand_row1 DILITHIUM_F(polyvec_matrix_expand_row1)
+#define polyvec_matrix_expand_row2 DILITHIUM_F(polyvec_matrix_expand_row2)
+#define polyvec_matrix_expand_row3 DILITHIUM_F(polyvec_matrix_expand_row3)
+#define polyvec_matrix_expand_row4 DILITHIUM_F(polyvec_matrix_expand_row4)
+#define polyvec_matrix_expand_row5 DILITHIUM_F(polyvec_matrix_expand_row5)
+#define polyvec_matrix_expand_row6 DILITHIUM_F(polyvec_matrix_expand_row6)
+#define polyvec_matrix_expand_row7 DILITHIUM_F(polyvec_matrix_expand_row7)
+#define rej_uniform_avx DILITHIUM_F(rej_uniform_avx)
+#define rej_eta_avx DILITHIUM_F(rej_eta_avx)
+#define idxlut DILITHIUM_F(idxlut)
+#define power2round_avx DILITHIUM_F(power2round_avx)
+#define decompose_avx DILITHIUM_F(decompose_avx)
+#define make_hint_avx DILITHIUM_F(make_hint_avx)
+#define use_hint_avx DILITHIUM_F(use_hint_avx)
+#define dilithium_sign_avx2 DILITHIUM_F(sign_avx2)
+#define dilithium_sign_ctx_avx2 DILITHIUM_F(sign_ctx_avx2)
+#define dilithium_sign_init_avx2 DILITHIUM_F(sign_init_avx2)
+#define dilithium_sign_update_avx2 DILITHIUM_F(sign_update_avx2)
+#define dilithium_sign_final_avx2 DILITHIUM_F(sign_final_avx2)
+#define dilithium_verify_avx2 DILITHIUM_F(verify_avx2)
+#define dilithium_verify_ctx_avx2 DILITHIUM_F(verify_ctx_avx2)
+#define dilithium_verify_init_avx2 DILITHIUM_F(verify_init_avx2)
+#define dilithium_verify_update_avx2 DILITHIUM_F(verify_update_avx2)
+#define dilithium_verify_final_avx2 DILITHIUM_F(verify_final_avx2)
+
+/* ARMv8 Implementation */
+#define intt_SIMD_top_armv8 DILITHIUM_F(intt_SIMD_top_armv8)
+#define intt_SIMD_bot_armv8 DILITHIUM_F(intt_SIMD_bot_armv8)
+#define ntt_SIMD_top_armv8 DILITHIUM_F(ntt_SIMD_top_armv8)
+#define ntt_SIMD_bot_armv8 DILITHIUM_F(ntt_SIMD_bot_armv8)
+#define poly_uniformx2 DILITHIUM_F(poly_uniformx2)
+#define poly_uniform_etax2 DILITHIUM_F(poly_uniform_etax2)
+#define poly_uniform_gamma1x2 DILITHIUM_F(poly_uniform_gamma1x2)
+#define armv8_10_to_32 DILITHIUM_F(armv8_10_to_32)
+#define poly_reduce_armv8 DILITHIUM_F(poly_reduce_armv8)
+#define poly_caddq_armv8 DILITHIUM_F(poly_caddq_armv8)
+#define poly_power2round_armv8 DILITHIUM_F(poly_power2round_armv8)
+#define poly_pointwise_montgomery_armv8 \
+ DILITHIUM_F(poly_pointwise_montgomery_armv8)
+#define polyvecl_pointwise_acc_montgomery_armv8 \
+ DILITHIUM_F(polyvecl_pointwise_acc_montgomery_armv8)
+#define dilithium_sign_armv8 DILITHIUM_F(sign_armv8)
+#define dilithium_sign_ctx_armv8 DILITHIUM_F(sign_ctx_armv8)
+#define dilithium_sign_init_armv8 DILITHIUM_F(sign_init_armv8)
+#define dilithium_sign_update_armv8 DILITHIUM_F(sign_update_armv8)
+#define dilithium_sign_final_armv8 DILITHIUM_F(sign_final_armv8)
+#define dilithium_verify_armv8 DILITHIUM_F(verify_armv8)
+#define dilithium_verify_ctx_armv8 DILITHIUM_F(verify_ctx_armv8)
+#define dilithium_verify_init_armv8 DILITHIUM_F(verify_init_armv8)
+#define dilithium_verify_update_armv8 DILITHIUM_F(verify_update_armv8)
+#define dilithium_verify_final_armv8 DILITHIUM_F(verify_final_armv8)
+
+/* ARMv7 Implementation */
+#define armv7_ntt_asm_smull DILITHIUM_F(armv7_ntt_asm_smull)
+#define armv7_inv_ntt_asm_smull DILITHIUM_F(armv7_inv_ntt_asm_smull)
+#define armv7_poly_pointwise_invmontgomery_asm_smull \
+ DILITHIUM_F(armv7_poly_pointwise_invmontgomery_asm_smull)
+#define armv7_poly_pointwise_acc_invmontgomery_asm_smull \
+ DILITHIUM_F(armv7_poly_pointwise_acc_invmontgomery_asm_smull)
+#define poly_uniform_armv7 DILITHIUM_F(poly_uniform_armv7)
+#define armv7_poly_reduce_asm DILITHIUM_F(armv7_poly_reduce_asm)
+#define armv7_rej_uniform_asm DILITHIUM_F(armv7_rej_uniform_asm)
+#define dilithium_sign_armv7 DILITHIUM_F(sign_armv7)
+#define dilithium_sign_ctx_armv7 DILITHIUM_F(sign_ctx_armv7)
+#define dilithium_sign_init_armv7 DILITHIUM_F(sign_init_armv7)
+#define dilithium_sign_update_armv7 DILITHIUM_F(sign_update_armv7)
+#define dilithium_sign_final_armv7 DILITHIUM_F(sign_final_armv7)
+#define dilithium_verify_armv7 DILITHIUM_F(verify_armv7)
+#define dilithium_verify_ctx_armv7 DILITHIUM_F(verify_ctx_armv7)
+#define dilithium_verify_init_armv7 DILITHIUM_F(verify_init_armv7)
+#define dilithium_verify_update_armv7 DILITHIUM_F(verify_update_armv7)
+#define dilithium_verify_final_armv7 DILITHIUM_F(verify_final_armv7)
+
+/* RISCV 64 ASM Implementation */
+#define dilithium_sign_riscv64 DILITHIUM_F(sign_riscv64)
+#define dilithium_sign_ctx_riscv64 DILITHIUM_F(sign_ctx_riscv64)
+#define dilithium_sign_init_riscv64 DILITHIUM_F(sign_init_riscv64)
+#define dilithium_sign_update_riscv64 DILITHIUM_F(sign_update_riscv64)
+#define dilithium_sign_final_riscv64 DILITHIUM_F(sign_final_riscv64)
+#define dilithium_verify_riscv64 DILITHIUM_F(verify_riscv64)
+#define dilithium_verify_ctx_riscv64 DILITHIUM_F(verify_ctx_riscv64)
+#define dilithium_verify_init_riscv64 DILITHIUM_F(verify_init_riscv64)
+#define dilithium_verify_update_riscv64 DILITHIUM_F(verify_update_riscv64)
+#define dilithium_verify_final_riscv64 DILITHIUM_F(verify_final_riscv64)
+#define dilithium_ntt_8l_rv64im DILITHIUM_F(ntt_8l_rv64im)
+#define dilithium_intt_8l_rv64im DILITHIUM_F(intt_8l_rv64im)
+#define dilithium_poly_basemul_8l_init_rv64im \
+ DILITHIUM_F(poly_basemul_8l_init_rv64im)
+#define dilithium_poly_basemul_8l_acc_rv64im \
+ DILITHIUM_F(poly_basemul_8l_acc_rv64im)
+#define dilithium_poly_basemul_8l_acc_end_rv64im \
+ DILITHIUM_F(poly_basemul_8l_acc_end_rv64im)
+#define dilithium_poly_basemul_8l_rv64im DILITHIUM_F(poly_basemul_8l_rv64im)
+#define dilithium_poly_reduce_rv64im DILITHIUM_F(poly_reduce_rv64im)
+
+/* RISCV 64 RVV Implementation */
+#define dilithium_sign_riscv64_rvv DILITHIUM_F(sign_riscv64_rvv)
+#define dilithium_sign_ctx_riscv64_rvv DILITHIUM_F(sign_ctx_riscv64_rvv)
+#define dilithium_sign_init_riscv64_rvv DILITHIUM_F(sign_init_riscv64_rvv)
+#define dilithium_sign_update_riscv64_rvv \
+ DILITHIUM_F(sign_update_riscv64_rvv)
+#define dilithium_sign_final_riscv64_rvv DILITHIUM_F(sign_final_riscv64_rvv)
+#define dilithium_verify_riscv64_rvv DILITHIUM_F(verify_riscv64_rvv)
+#define dilithium_verify_ctx_riscv64_rvv DILITHIUM_F(verify_ctx_riscv64_rvv)
+#define dilithium_verify_init_riscv64_rvv \
+ DILITHIUM_F(verify_init_riscv64_rvv)
+#define dilithium_verify_update_riscv64_rvv \
+ DILITHIUM_F(verify_update_riscv64_rvv)
+#define dilithium_verify_final_riscv64_rvv \
+ DILITHIUM_F(verify_final_riscv64_rvv)
+#define dilithium_ntt_8l_rvv DILITHIUM_F(ntt_8l_rvv)
+#define dilithium_intt_8l_rvv DILITHIUM_F(intt_8l_rvv)
+#define dilithium_poly_basemul_8l_rvv DILITHIUM_F(poly_basemul_8l_rvv)
+#define dilithium_poly_basemul_acc_8l_rvv DILITHIUM_F(poly_basemul_acc_8l_rvv)
+#define dilithium_ntt2normal_order_8l_rvv DILITHIUM_F(ntt2normal_order_8l_rvv)
+#define dilithium_normal2ntt_order_8l_rvv DILITHIUM_F(normal2ntt_order_8l_rvv)
+#define dilithium_poly_reduce_rvv DILITHIUM_F(poly_reduce_rvv)
+
+#endif /* DILITHIUM_TYPE_H */
diff --git a/crypto/ml_dsa/dilithium_zetas.c b/crypto/ml_dsa/dilithium_zetas.c
new file mode 100644
index 000000000000..f0e9203f35dd
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_zetas.c
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+/*
+ * This code is derived in parts from the code distribution provided with
+ * https://github.com/pq-crystals/dilithium
+ *
+ * That code is released under Public Domain
+ * (https://creativecommons.org/share-your-work/public-domain/cc0/);
+ * or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
+ */
+
+#include "dilithium.h"
+
+const int32_t dilithium_zetas[DILITHIUM_N] = {
+ 0, 25847, -2608894, -518909, 237124, -777960, -876248,
+ 466468, 1826347, 2353451, -359251, -2091905, 3119733, -2884855,
+ 3111497, 2680103, 2725464, 1024112, -1079900, 3585928, -549488,
+ -1119584, 2619752, -2108549, -2118186, -3859737, -1399561, -3277672,
+ 1757237, -19422, 4010497, 280005, 2706023, 95776, 3077325,
+ 3530437, -1661693, -3592148, -2537516, 3915439, -3861115, -3043716,
+ 3574422, -2867647, 3539968, -300467, 2348700, -539299, -1699267,
+ -1643818, 3505694, -3821735, 3507263, -2140649, -1600420, 3699596,
+ 811944, 531354, 954230, 3881043, 3900724, -2556880, 2071892,
+ -2797779, -3930395, -1528703, -3677745, -3041255, -1452451, 3475950,
+ 2176455, -1585221, -1257611, 1939314, -4083598, -1000202, -3190144,
+ -3157330, -3632928, 126922, 3412210, -983419, 2147896, 2715295,
+ -2967645, -3693493, -411027, -2477047, -671102, -1228525, -22981,
+ -1308169, -381987, 1349076, 1852771, -1430430, -3343383, 264944,
+ 508951, 3097992, 44288, -1100098, 904516, 3958618, -3724342,
+ -8578, 1653064, -3249728, 2389356, -210977, 759969, -1316856,
+ 189548, -3553272, 3159746, -1851402, -2409325, -177440, 1315589,
+ 1341330, 1285669, -1584928, -812732, -1439742, -3019102, -3881060,
+ -3628969, 3839961, 2091667, 3407706, 2316500, 3817976, -3342478,
+ 2244091, -2446433, -3562462, 266997, 2434439, -1235728, 3513181,
+ -3520352, -3759364, -1197226, -3193378, 900702, 1859098, 909542,
+ 819034, 495491, -1613174, -43260, -522500, -655327, -3122442,
+ 2031748, 3207046, -3556995, -525098, -768622, -3595838, 342297,
+ 286988, -2437823, 4108315, 3437287, -3342277, 1735879, 203044,
+ 2842341, 2691481, -2590150, 1265009, 4055324, 1247620, 2486353,
+ 1595974, -3767016, 1250494, 2635921, -3548272, -2994039, 1869119,
+ 1903435, -1050970, -1333058, 1237275, -3318210, -1430225, -451100,
+ 1312455, 3306115, -1962642, -1279661, 1917081, -2546312, -1374803,
+ 1500165, 777191, 2235880, 3406031, -542412, -2831860, -1671176,
+ -1846953, -2584293, -3724270, 594136, -3776993, -2013608, 2432395,
+ 2454455, -164721, 1957272, 3369112, 185531, -1207385, -3183426,
+ 162844, 1616392, 3014001, 810149, 1652634, -3694233, -1799107,
+ -3038916, 3523897, 3866901, 269760, 2213111, -975884, 1717735,
+ 472078, -426683, 1723600, -1803090, 1910376, -1667432, -1104333,
+ -260646, -3833893, -2939036, -2235985, -420899, -2286327, 183443,
+ -976891, 1612842, -3545687, -554416, 3919660, -48306, -1362209,
+ 3937738, 1400424, -846154, 1976782
+};
diff --git a/crypto/ml_dsa/fips_mode.h b/crypto/ml_dsa/fips_mode.h
new file mode 100644
index 000000000000..f185f204366e
--- /dev/null
+++ b/crypto/ml_dsa/fips_mode.h
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef FIPS_MODE_H
+#define FIPS_MODE_H
+
+/**
+ * @brief Is FIPS 140 Mode enabled?
+ *
+ * return 0 == false, 1 == true
+ */
+static inline bool fips140_mode_enabled(void)
+{
+ return false;
+}
+
+#define FIPS140_PCT_LOOP(func) \
+ if (fips140_mode_enabled()) { \
+ unsigned int __i; \
+ int __ret; \
+ \
+ for (__i = 0; __i < 5; __i++) { \
+ __ret = func; \
+ if (!__ret) \
+ return __ret; \
+ } \
+ WARN_ON(0); \
+ }
+
+#endif /* FIPS_MODE_H */
diff --git a/crypto/ml_dsa/signature_domain_separation.c b/crypto/ml_dsa/signature_domain_separation.c
new file mode 100644
index 000000000000..f0a173797c96
--- /dev/null
+++ b/crypto/ml_dsa/signature_domain_separation.c
@@ -0,0 +1,213 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2024 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#include <crypto/sha3.h>
+#include <crypto/hash.h>
+#include "signature_domain_separation.h"
+
+static const char *signature_prehash_type;
+
+/* RFC4055 2.16.840.1.101.3.4.2.1 */
+static const uint8_t sha256_oid_der[] __maybe_unused = { 0x06, 0x09, 0x60, 0x86,
+ 0x48, 0x01, 0x65, 0x03,
+ 0x04, 0x02, 0x01 };
+/* RFC4055 2.16.840.1.101.3.4.2.2 */
+static const uint8_t sha384_oid_der[] __maybe_unused = { 0x06, 0x09, 0x60, 0x86,
+ 0x48, 0x01, 0x65, 0x03,
+ 0x04, 0x02, 0x02 };
+/* RFC4055 2.16.840.1.101.3.4.2.3 */
+static const uint8_t sha512_oid_der[] __maybe_unused = { 0x06, 0x09, 0x60, 0x86,
+ 0x48, 0x01, 0x65, 0x03,
+ 0x04, 0x02, 0x03 };
+
+/*
+ * https://lamps-wg.github.io/draft-composite-sigs/draft-ietf-lamps-pq-composite-sigs.html
+ */
+static const uint8_t sha3_256_oid_der[] __maybe_unused = {
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x08
+};
+static const uint8_t sha3_384_oid_der[] __maybe_unused = {
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x09
+};
+static const uint8_t sha3_512_oid_der[] __maybe_unused = {
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x0a
+};
+
+/* RFC8692 2.16.840.1.101.3.4.2.11 */
+static const uint8_t shake128_oid_der[] __maybe_unused = {
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x0B
+};
+
+/* RFC8692 2.16.840.1.101.3.4.2.11 */
+static const uint8_t shake256_oid_der[] __maybe_unused = {
+ 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x0C
+};
+
+int signature_ph_oids(struct shake256_ctx *hash_ctx, size_t mlen,
+ unsigned int nist_category)
+{
+ /* If no hash is supplied, we have no HashML-DSA */
+ if (!signature_prehash_type)
+ return 0;
+
+ /*
+ * The signature init/update/final operation will not work with the
+ * check of mlen, as only when _final is invoked, the message length
+ * is known.
+ *
+ * As defined in FIPS 204, section 5.4 requires
+ * "... the digest that is signed needs to be generated using an
+ * approved hash function or XOF (e.g., from FIPS 180 or FIPS 202) that
+ * provides at least λ bits of classical security strength against both
+ * collision and second preimage attacks ... Obtaining at least λ bits
+ * of classical security strength against collision attacks requires
+ * that the digest to be signed be at least 2λ bits in length."
+ * This requirement implies in the following definitions.
+ */
+ (void)mlen;
+
+ switch (nist_category) {
+ case 1:
+ if (strcmp(signature_prehash_type, "sha256") == 0) {
+ // if (mlen != LC_SHA256_SIZE_DIGEST)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, sha256_oid_der,
+ sizeof(sha256_oid_der));
+ return 0;
+ }
+ if (strcmp(signature_prehash_type, "sha3-256") == 0) {
+ // if (mlen != LC_SHA3_256_SIZE_DIGEST)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, sha3_256_oid_der,
+ sizeof(sha3_256_oid_der));
+ return 0;
+ }
+ if (strcmp(signature_prehash_type, "shake128") == 0) {
+ /* FIPS 204 section 5.4.1 */
+ // if (mlen != 32)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, shake128_oid_der,
+ sizeof(shake128_oid_der));
+ return 0;
+ }
+ /* FALLTHROUGH - Dilithium44 allows the following, too */
+ fallthrough;
+ case 3:
+ if (strcmp(signature_prehash_type, "sha3-384") == 0) {
+ // if (mlen != LC_SHA3_384_SIZE_DIGEST)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, sha3_384_oid_der,
+ sizeof(sha3_384_oid_der));
+ return 0;
+ }
+ if (strcmp(signature_prehash_type, "sha384") == 0) {
+ // if (mlen != LC_SHA384_SIZE_DIGEST)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, sha384_oid_der,
+ sizeof(sha384_oid_der));
+ return 0;
+ }
+ /* FALLTHROUGH - Dilithium[44|65] allows the following, too */
+ fallthrough;
+ case 5:
+ if (strcmp(signature_prehash_type, "sha512") == 0) {
+ // if (mlen != LC_SHA512_SIZE_DIGEST)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, sha512_oid_der,
+ sizeof(sha512_oid_der));
+ return 0;
+ }
+ if (strcmp(signature_prehash_type, "sha3-512") == 0) {
+ // if (mlen != LC_SHA3_512_SIZE_DIGEST)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, sha3_512_oid_der,
+ sizeof(sha3_512_oid_der));
+ return 0;
+ } else if (strcmp(signature_prehash_type, "shake256") == 0) {
+ /* FIPS 204 section 5.4.1 */
+ /*
+ * TODO: mlen must be >= 64 to comply with the
+ * aforementioned requirement - unfortunately we can
+ * only check mlen at the end of the signature
+ * operation - shall this be implemented?
+ */
+ // if (mlen != 64)
+ // return -EOPNOTSUPP;
+ shake256_update(hash_ctx, shake256_oid_der,
+ sizeof(shake256_oid_der));
+ return 0;
+ }
+ break;
+ default:
+ break;
+ }
+
+ return -EOPNOTSUPP;
+}
+
+/* FIPS 204 pre-hash ML-DSA domain separation, but without original message */
+static int standalone_signature_domain_separation(
+ struct shake256_ctx *hash_ctx, const uint8_t *userctx,
+ size_t userctxlen, size_t mlen, unsigned int nist_category)
+{
+ uint8_t domainseparation[2];
+
+ domainseparation[0] = signature_prehash_type ? 1 : 0;
+ domainseparation[1] = (uint8_t)userctxlen;
+
+ shake256_update(hash_ctx, domainseparation, sizeof(domainseparation));
+ shake256_update(hash_ctx, userctx, userctxlen);
+
+ return signature_ph_oids(hash_ctx, mlen, nist_category);
+}
+
+/*
+ * Domain separation as required by:
+ *
+ * FIPS 204 pre-hash ML-DSA: randomizer is NULL
+ * Composite ML-DSA draft 5: randomizer is set
+ */
+int signature_domain_separation(struct shake256_ctx *hash_ctx,
+ unsigned int ml_dsa_internal,
+ const uint8_t *userctx, size_t userctxlen,
+ const uint8_t *m, size_t mlen,
+ const uint8_t *randomizer, size_t randomizerlen,
+ unsigned int nist_category)
+{
+ int ret = 0;
+
+ /* The internal operation skips the domain separation code */
+ if (ml_dsa_internal)
+ goto out;
+
+ if (userctxlen > 255)
+ return -EINVAL;
+
+ /* If Composite ML-DSA is requested, use domain as userctx */
+ if (randomizer) {
+ return -EOPNOTSUPP;
+ } else {
+ ret = standalone_signature_domain_separation(
+ hash_ctx, userctx, userctxlen,
+ mlen, nist_category);
+ }
+
+out:
+ shake256_update(hash_ctx, m, mlen);
+ return ret;
+}
diff --git a/crypto/ml_dsa/signature_domain_separation.h b/crypto/ml_dsa/signature_domain_separation.h
new file mode 100644
index 000000000000..01dafaa851bf
--- /dev/null
+++ b/crypto/ml_dsa/signature_domain_separation.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2024 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef SIGNATURE_DOMAIN_SEPARATION_H
+#define SIGNATURE_DOMAIN_SEPARATION_H
+
+#include <crypto/sha3.h>
+
+int signature_domain_separation(struct shake256_ctx *hash_ctx,
+ unsigned int ml_dsa_internal,
+ const uint8_t *userctx, size_t userctxlen,
+ const uint8_t *m, size_t mlen,
+ const uint8_t *randomizer, size_t randomizerlen,
+ unsigned int nist_category);
+int signature_ph_oids(struct shake256_ctx *hash_ctx, size_t mlen,
+ unsigned int nist_category);
+
+#endif /* SIGNATURE_DOMAIN_SEPARATION_H */
diff --git a/crypto/ml_dsa/small_stack_support.h b/crypto/ml_dsa/small_stack_support.h
new file mode 100644
index 000000000000..9c1eba6c40bf
--- /dev/null
+++ b/crypto/ml_dsa/small_stack_support.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2022 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef SMALL_STACK_SUPPORT_H
+#define SMALL_STACK_SUPPORT_H
+
+/* Allocate memory on heap */
+#define __LC_DECLARE_MEM_HEAP(name, type, alignment) \
+ type *name = kzalloc(round_up(sizeof(type), alignment), GFP_KERNEL); \
+ if (!name) \
+ return -ENOMEM; \
+
+#define __LC_RELEASE_MEM_HEAP(name) \
+ kfree_sensitive(name);
+
+#define noinline_stack noinline
+
+#define LC_DECLARE_MEM(name, type, alignment) \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \
+ __LC_DECLARE_MEM_HEAP(name, type, alignment); \
+ _Pragma("GCC diagnostic pop")
+#define LC_RELEASE_MEM(name) __LC_RELEASE_MEM_HEAP(name)
+
+#endif /* SMALL_STACK_SUPPORT_H */
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 11/17] crypto: Add ML-DSA/Dilithium keypair generation support
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (9 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 10/17] crypto: Add ML-DSA/Dilithium support David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 12/17] crypto: Add ML-DSA-44 pure rejection test vectors as a kunit test David Howells
` (5 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add generation of keypairs. I suspect we don't want to do this in the
kernel.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: linux-crypto@vger.kernel.org
---
crypto/ml_dsa/dilithium.h | 54 +++++++
crypto/ml_dsa/dilithium_44.h | 35 ++++
crypto/ml_dsa/dilithium_65.h | 35 ++++
crypto/ml_dsa/dilithium_87.h | 35 ++++
crypto/ml_dsa/dilithium_api.c | 92 +++++++++++
crypto/ml_dsa/dilithium_pack.h | 75 +++++++++
crypto/ml_dsa/dilithium_pct.h | 53 ++++++
crypto/ml_dsa/dilithium_polyvec.h | 20 +++
crypto/ml_dsa/dilithium_polyvec_c.h | 20 +++
crypto/ml_dsa/dilithium_signature_c.c | 24 +++
crypto/ml_dsa/dilithium_signature_c.h | 7 +
crypto/ml_dsa/dilithium_signature_impl.h | 195 +++++++++++++++++++++++
crypto/ml_dsa/dilithium_type.h | 22 +++
13 files changed, 667 insertions(+)
create mode 100644 crypto/ml_dsa/dilithium_pct.h
diff --git a/crypto/ml_dsa/dilithium.h b/crypto/ml_dsa/dilithium.h
index 6d4982164201..d2c9dac4967e 100644
--- a/crypto/ml_dsa/dilithium.h
+++ b/crypto/ml_dsa/dilithium.h
@@ -545,6 +545,60 @@ int dilithium_pk_ptr(uint8_t **dilithium_key, size_t *dilithium_key_len,
int dilithium_sig_ptr(uint8_t **dilithium_sig, size_t *dilithium_sig_len,
struct dilithium_sig *sig);
+/**
+ * @ingroup Dilithium
+ * @brief Generates Dilithium public and private key.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] rng_ctx pointer to seeded random number generator context
+ * @param [in] dilithium_type type of the Dilithium key to generate
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_keypair(struct dilithium_pk *pk, struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx,
+ enum dilithium_type dilithium_type);
+
+/**
+ * @ingroup Dilithium
+ * @brief Generates Dilithium public and private key from a given seed.
+ *
+ * The idea of the function is the allowance of FIPS 204 to maintain the seed
+ * used to generate a key pair in lieu of maintaining a private key or the
+ * key pair (which used much more memory). The seed must be treated equally
+ * sensitive as a private key.
+ *
+ * The seed is generated by simply obtaining 32 bytes from a properly seeded
+ * DRNG, i.e. the same way as a symmetric key would be generated.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] seed buffer with the seed data which must be exactly 32 bytes
+ * in size
+ * @param [in] seedlen length of the seed buffer
+ * @param [in] dilithium_type type of the Dilithium key to generate
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_keypair_from_seed(struct dilithium_pk *pk,
+ struct dilithium_sk *sk,
+ const uint8_t *seed, size_t seedlen,
+ enum dilithium_type dilithium_type);
+
+/**
+ * @brief Pairwise consistency check as per FIPS 140 IG
+ *
+ * This call should be invoked after generating a key pair in FIPS mode
+ *
+ * @param [in] pk Public key
+ * @param [in] sk Secret key
+ *
+ * @return 0 on success, < 0 on error
+ */
+int dilithium_pct(const struct dilithium_pk *pk,
+ const struct dilithium_sk *sk);
+
/**
* @ingroup Dilithium
* @brief Computes signature in one shot
diff --git a/crypto/ml_dsa/dilithium_44.h b/crypto/ml_dsa/dilithium_44.h
index 6490c83e7100..d5a03bbebb1a 100644
--- a/crypto/ml_dsa/dilithium_44.h
+++ b/crypto/ml_dsa/dilithium_44.h
@@ -195,6 +195,41 @@ static inline unsigned int dilithium_44_sig_size(void)
return sizeof_field(struct dilithium_44_sig, sig);
}
+/**
+ * @brief Generates Dilithium public and private key.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] rng_ctx pointer to seeded random number generator context
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_keypair(struct dilithium_44_pk *pk, struct dilithium_44_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Generates Dilithium public and private key from a given seed.
+ *
+ * The idea of the function is the allowance of FIPS 204 to maintain the seed
+ * used to generate a key pair in lieu of maintaining a private key or the
+ * key pair (which used much more memory). The seed must be treated equally
+ * sensitive as a private key.
+ *
+ * The seed is generated by simply obtaining 32 bytes from a properly seeded
+ * DRNG, i.e. the same way as a symmetric key would be generated.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] seed buffer with the seed data which must be exactly 32 bytes
+ * in size
+ * @param [in] seedlen length of the seed buffer
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_44_keypair_from_seed(struct dilithium_44_pk *pk,
+ struct dilithium_44_sk *sk,
+ const uint8_t *seed, size_t seedlen);
+
/**
* @brief Computes ML-DSA signature in one shot
*
diff --git a/crypto/ml_dsa/dilithium_65.h b/crypto/ml_dsa/dilithium_65.h
index 0a36f7eed63e..d93fea2a8798 100644
--- a/crypto/ml_dsa/dilithium_65.h
+++ b/crypto/ml_dsa/dilithium_65.h
@@ -195,6 +195,41 @@ static inline unsigned int dilithium_65_sig_size(void)
return sizeof_field(struct dilithium_65_sig, sig);
}
+/**
+ * @brief Generates Dilithium public and private key.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] rng_ctx pointer to seeded random number generator context
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_keypair(struct dilithium_65_pk *pk, struct dilithium_65_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Generates Dilithium public and private key from a given seed.
+ *
+ * The idea of the function is the allowance of FIPS 204 to maintain the seed
+ * used to generate a key pair in lieu of maintaining a private key or the
+ * key pair (which used much more memory). The seed must be treated equally
+ * sensitive as a private key.
+ *
+ * The seed is generated by simply obtaining 32 bytes from a properly seeded
+ * DRNG, i.e. the same way as a symmetric key would be generated.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] seed buffer with the seed data which must be exactly 32 bytes
+ * in size
+ * @param [in] seedlen length of the seed buffer
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_65_keypair_from_seed(struct dilithium_65_pk *pk,
+ struct dilithium_65_sk *sk,
+ const uint8_t *seed, size_t seedlen);
+
/**
* @brief Computes ML-DSA signature in one shot
*
diff --git a/crypto/ml_dsa/dilithium_87.h b/crypto/ml_dsa/dilithium_87.h
index eaed8e675383..69d9f03643d3 100644
--- a/crypto/ml_dsa/dilithium_87.h
+++ b/crypto/ml_dsa/dilithium_87.h
@@ -195,6 +195,41 @@ static inline unsigned int dilithium_87_sig_size(void)
return sizeof_field(struct dilithium_87_sig, sig);
}
+/**
+ * @brief Generates Dilithium public and private key.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] rng_ctx pointer to seeded random number generator context
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_keypair(struct dilithium_87_pk *pk, struct dilithium_87_sk *sk,
+ struct crypto_rng *rng_ctx);
+
+/**
+ * @brief Generates Dilithium public and private key from a given seed.
+ *
+ * The idea of the function is the allowance of FIPS 204 to maintain the seed
+ * used to generate a key pair in lieu of maintaining a private key or the
+ * key pair (which used much more memory). The seed must be treated equally
+ * sensitive as a private key.
+ *
+ * The seed is generated by simply obtaining 32 bytes from a properly seeded
+ * DRNG, i.e. the same way as a symmetric key would be generated.
+ *
+ * @param [out] pk pointer to allocated output public key
+ * @param [out] sk pointer to allocated output private key
+ * @param [in] seed buffer with the seed data which must be exactly 32 bytes
+ * in size
+ * @param [in] seedlen length of the seed buffer
+ *
+ * @return 0 (success) or < 0 on error
+ */
+int dilithium_87_keypair_from_seed(struct dilithium_87_pk *pk,
+ struct dilithium_87_sk *sk,
+ const uint8_t *seed, size_t seedlen);
+
/**
* @brief Computes ML-DSA signature in one shot
*
diff --git a/crypto/ml_dsa/dilithium_api.c b/crypto/ml_dsa/dilithium_api.c
index 363984f01169..215ab5fd7195 100644
--- a/crypto/ml_dsa/dilithium_api.c
+++ b/crypto/ml_dsa/dilithium_api.c
@@ -29,6 +29,7 @@
#include <linux/export.h>
#include "dilithium.h"
+#include "dilithium_pct.h"
void dilithium_ctx_zero(struct dilithium_ctx *ctx)
{
@@ -405,6 +406,97 @@ int dilithium_sig_ptr(uint8_t **dilithium_sig,
}
EXPORT_SYMBOL(dilithium_sig_ptr);
+int dilithium_keypair(struct dilithium_pk *pk,
+ struct dilithium_sk *sk, struct crypto_rng *rng_ctx,
+ enum dilithium_type dilithium_type)
+{
+ if (!pk || !sk)
+ return -EINVAL;
+
+ switch (dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ pk->dilithium_type = dilithium_type;
+ sk->dilithium_type = dilithium_type;
+ return dilithium_87_keypair(&pk->key.pk_87, &sk->key.sk_87,
+ rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ pk->dilithium_type = dilithium_type;
+ sk->dilithium_type = dilithium_type;
+ return dilithium_65_keypair(&pk->key.pk_65, &sk->key.sk_65,
+ rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ pk->dilithium_type = dilithium_type;
+ sk->dilithium_type = dilithium_type;
+ return dilithium_44_keypair(&pk->key.pk_44, &sk->key.sk_44,
+ rng_ctx);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_keypair);
+
+int dilithium_keypair_from_seed(struct dilithium_pk *pk, struct dilithium_sk *sk,
+ const uint8_t *seed, size_t seedlen,
+ enum dilithium_type dilithium_type)
+{
+ if (!pk || !sk)
+ return -EINVAL;
+
+ switch (dilithium_type) {
+ case DILITHIUM_87:
+#ifdef CONFIG_CRYPTO_DILITHIUM_87
+ pk->dilithium_type = dilithium_type;
+ sk->dilithium_type = dilithium_type;
+ return dilithium_87_keypair_from_seed(
+ &pk->key.pk_87, &sk->key.sk_87, seed, seedlen);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_65:
+#ifdef CONFIG_CRYPTO_DILITHIUM_65
+ pk->dilithium_type = dilithium_type;
+ sk->dilithium_type = dilithium_type;
+ return dilithium_65_keypair_from_seed(
+ &pk->key.pk_65, &sk->key.sk_65, seed, seedlen);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_44:
+#ifdef CONFIG_CRYPTO_DILITHIUM_44
+ pk->dilithium_type = dilithium_type;
+ sk->dilithium_type = dilithium_type;
+ return dilithium_44_keypair_from_seed(
+ &pk->key.pk_44, &sk->key.sk_44, seed, seedlen);
+#else
+ return -EOPNOTSUPP;
+#endif
+ case DILITHIUM_UNKNOWN:
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+EXPORT_SYMBOL(dilithium_keypair_from_seed);
+
+int dilithium_pct(const struct dilithium_pk *pk,
+ const struct dilithium_sk *sk)
+{
+ return _dilithium_pct_fips(pk, sk);
+}
+EXPORT_SYMBOL(dilithium_pct);
+
int dilithium_sign(struct dilithium_sig *sig,
const uint8_t *m, size_t mlen,
const struct dilithium_sk *sk,
diff --git a/crypto/ml_dsa/dilithium_pack.h b/crypto/ml_dsa/dilithium_pack.h
index e17c6256a16d..152aafd1df30 100644
--- a/crypto/ml_dsa/dilithium_pack.h
+++ b/crypto/ml_dsa/dilithium_pack.h
@@ -30,6 +30,21 @@
/*******************************************************************************
* Pack / Unpack public key
******************************************************************************/
+static inline void pack_pk_rho(struct dilithium_pk *pk,
+ const uint8_t rho[DILITHIUM_SEEDBYTES])
+{
+ memcpy(pk->pk, rho, DILITHIUM_SEEDBYTES);
+}
+
+static inline void pack_pk_t1(struct dilithium_pk *pk, const polyveck *t1)
+{
+ unsigned int i;
+ uint8_t *pubkey = pk->pk + DILITHIUM_SEEDBYTES;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyt1_pack(pubkey + i * DILITHIUM_POLYT1_PACKEDBYTES,
+ &t1->vec[i]);
+}
static inline void unpack_pk_rho(uint8_t rho[DILITHIUM_SEEDBYTES],
const struct dilithium_pk *pk)
@@ -50,6 +65,66 @@ static inline void unpack_pk_t1(polyveck *t1, const struct dilithium_pk *pk)
/*******************************************************************************
* Pack / Unpack secret key
******************************************************************************/
+static inline void pack_sk_rho(struct dilithium_sk *sk,
+ const uint8_t rho[DILITHIUM_SEEDBYTES])
+{
+ memcpy(sk->sk, rho, DILITHIUM_SEEDBYTES);
+}
+
+static inline void pack_sk_key(struct dilithium_sk *sk,
+ const uint8_t key[DILITHIUM_SEEDBYTES])
+{
+ memcpy(sk->sk + DILITHIUM_SEEDBYTES, key, DILITHIUM_SEEDBYTES);
+}
+
+static inline void pack_sk_tr(struct dilithium_sk *sk,
+ const uint8_t tr[DILITHIUM_TRBYTES])
+{
+ memcpy(sk->sk + 2 * DILITHIUM_SEEDBYTES, tr, DILITHIUM_TRBYTES);
+}
+
+static inline void pack_sk_s1(struct dilithium_sk *sk, const polyvecl *s1)
+{
+ unsigned int i;
+ uint8_t *seckey =
+ sk->sk + 2 * DILITHIUM_SEEDBYTES + DILITHIUM_TRBYTES;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ polyeta_pack(seckey + i * DILITHIUM_POLYETA_PACKEDBYTES,
+ &s1->vec[i]);
+}
+
+static inline void pack_sk_s2(struct dilithium_sk *sk, const polyveck *s2)
+{
+ unsigned int i;
+ uint8_t *seckey = sk->sk + 2 * DILITHIUM_SEEDBYTES +
+ DILITHIUM_TRBYTES +
+ DILITHIUM_L * DILITHIUM_POLYETA_PACKEDBYTES;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyeta_pack(seckey + i * DILITHIUM_POLYETA_PACKEDBYTES,
+ &s2->vec[i]);
+}
+
+static inline void pack_sk_t0(struct dilithium_sk *sk, const polyveck *t0)
+{
+ unsigned int i;
+ uint8_t *seckey = sk->sk + 2 * DILITHIUM_SEEDBYTES +
+ DILITHIUM_TRBYTES +
+ DILITHIUM_L * DILITHIUM_POLYETA_PACKEDBYTES +
+ DILITHIUM_K * DILITHIUM_POLYETA_PACKEDBYTES;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ polyt0_pack(seckey + i * DILITHIUM_POLYT0_PACKEDBYTES,
+ &t0->vec[i]);
+}
+
+static inline void unpack_sk_rho(uint8_t rho[DILITHIUM_SEEDBYTES],
+ const struct dilithium_sk *sk)
+{
+ memcpy(rho, sk->sk, DILITHIUM_SEEDBYTES);
+}
+
static inline void unpack_sk_key(uint8_t key[DILITHIUM_SEEDBYTES],
const struct dilithium_sk *sk)
{
diff --git a/crypto/ml_dsa/dilithium_pct.h b/crypto/ml_dsa/dilithium_pct.h
new file mode 100644
index 000000000000..d153e5a95dd1
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_pct.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+/*
+ * Copyright (C) 2024 - 2025, Stephan Mueller <smueller@chronox.de>
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+ * WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+#ifndef DILITHIUM_PCT_H
+#define DILITHIUM_PCT_H
+
+#include "fips_mode.h"
+#include "small_stack_support.h"
+
+static inline int _dilithium_pct_fips(const struct dilithium_pk *pk,
+ const struct dilithium_sk *sk)
+{
+ struct workspace {
+ uint8_t m[32];
+ struct dilithium_sig sig;
+ };
+ int ret;
+ LC_DECLARE_MEM(ws, struct workspace, sizeof(uint64_t));
+
+ ret = dilithium_sign(&ws->sig, ws->m, sizeof(ws->m), sk,
+ lc_seeded_rng);
+ if (ret < 0)
+ goto out;
+ ret = dilithium_verify(&ws->sig, ws->m, sizeof(ws->m), pk);
+out:
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static inline int dilithium_pct_fips(const struct dilithium_pk *pk,
+ const struct dilithium_sk *sk)
+{
+ FIPS140_PCT_LOOP(_dilithium_pct_fips(pk, sk))
+
+ return 0;
+}
+
+#endif /* DILITHIUM_PCT_H */
diff --git a/crypto/ml_dsa/dilithium_polyvec.h b/crypto/ml_dsa/dilithium_polyvec.h
index 7e428e3becfd..609df0769f5c 100644
--- a/crypto/ml_dsa/dilithium_polyvec.h
+++ b/crypto/ml_dsa/dilithium_polyvec.h
@@ -269,6 +269,26 @@ static inline int polyveck_chknorm(const polyveck *v, int32_t bound)
return 0;
}
+/**
+ * @brief polyveck_power2round - For all coefficients a of polynomials in vector
+ * of length K, compute a0, a1 such that
+ * a mod^+ Q = a1*2^D + a0 with
+ * -2^{D-1} < a0 <= 2^{D-1}. Assumes coefficients
+ * to be standard representatives.
+ *
+ * @param [out] v1 pointer to output vector of polynomials with coefficients a1
+ * @param [in] v0 pointer to output vector of polynomials with coefficients a0
+ * @param [in] v pointer to input vector
+ */
+static inline void polyveck_power2round(polyveck *v1, polyveck *v0,
+ const polyveck *v)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_power2round(&v1->vec[i], &v0->vec[i], &v->vec[i]);
+}
+
/**
* @brief polyveck_decompose - For all coefficients a of polynomials in vector
* of length K, compute high and low bits a0, a1
diff --git a/crypto/ml_dsa/dilithium_polyvec_c.h b/crypto/ml_dsa/dilithium_polyvec_c.h
index 0f8c2d914e4d..1628e3217cbc 100644
--- a/crypto/ml_dsa/dilithium_polyvec_c.h
+++ b/crypto/ml_dsa/dilithium_polyvec_c.h
@@ -19,6 +19,16 @@
#ifndef DILITHIUM_POLYVEC_C_H
#define DILITHIUM_POLYVEC_C_H
+static inline void
+polyvecl_uniform_eta(polyvecl *v, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_L; ++i)
+ poly_uniform_eta(&v->vec[i], seed, cpu_to_le16(nonce++), ws_buf);
+}
+
static inline void
polyvecl_uniform_gamma1(polyvecl *v, const uint8_t seed[DILITHIUM_CRHBYTES],
uint16_t nonce, void *ws_buf)
@@ -32,6 +42,16 @@ polyvecl_uniform_gamma1(polyvecl *v, const uint8_t seed[DILITHIUM_CRHBYTES],
ws_buf);
}
+static inline void
+polyveck_uniform_eta(polyveck *v, const uint8_t seed[DILITHIUM_CRHBYTES],
+ uint16_t nonce, void *ws_buf)
+{
+ unsigned int i;
+
+ for (i = 0; i < DILITHIUM_K; ++i)
+ poly_uniform_eta(&v->vec[i], seed, cpu_to_le16(nonce++), ws_buf);
+}
+
/**
* @brief expand_mat - Implementation of ExpandA. Generates matrix A with
* uniformly random coefficients a_{i,j} by performing
diff --git a/crypto/ml_dsa/dilithium_signature_c.c b/crypto/ml_dsa/dilithium_signature_c.c
index a4a9d0bfdd37..ebaab0db7fda 100644
--- a/crypto/ml_dsa/dilithium_signature_c.c
+++ b/crypto/ml_dsa/dilithium_signature_c.c
@@ -37,6 +37,18 @@
#include "dilithium_pack.h"
#include "dilithium_signature_impl.h"
+int dilithium_keypair_from_seed_c(struct dilithium_pk *pk, struct dilithium_sk *sk,
+ const uint8_t *seed, size_t seedlen)
+{
+ return dilithium_keypair_from_seed_impl(pk, sk, seed, seedlen);
+}
+
+int dilithium_keypair_c(struct dilithium_pk *pk,
+ struct dilithium_sk *sk, struct crypto_rng *rng_ctx)
+{
+ return dilithium_keypair_impl(pk, sk, rng_ctx);
+}
+
int dilithium_sign_c(struct dilithium_sig *sig,
const uint8_t *m, size_t mlen,
const struct dilithium_sk *sk,
@@ -105,6 +117,18 @@ int dilithium_verify_final_c(const struct dilithium_sig *sig,
return dilithium_verify_final_impl(sig, ctx, pk);
}
+int dilithium_keypair_from_seed(struct dilithium_pk *pk, struct dilithium_sk *sk,
+ const uint8_t *seed, size_t seedlen)
+{
+ return dilithium_keypair_from_seed_c(pk, sk, seed, seedlen);
+}
+
+int dilithium_keypair(struct dilithium_pk *pk,
+ struct dilithium_sk *sk, struct crypto_rng *rng_ctx)
+{
+ return dilithium_keypair_c(pk, sk, rng_ctx);
+}
+
int dilithium_sign(struct dilithium_sig *sig,
const uint8_t *m, size_t mlen,
const struct dilithium_sk *sk,
diff --git a/crypto/ml_dsa/dilithium_signature_c.h b/crypto/ml_dsa/dilithium_signature_c.h
index a7d20cd49672..eab4d5e8c686 100644
--- a/crypto/ml_dsa/dilithium_signature_c.h
+++ b/crypto/ml_dsa/dilithium_signature_c.h
@@ -21,6 +21,13 @@
#include "dilithium_type.h"
+int dilithium_keypair_c(struct dilithium_pk *pk,
+ struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx);
+int dilithium_keypair_from_seed_c(struct dilithium_pk *pk,
+ struct dilithium_sk *sk,
+ const uint8_t *seed, size_t seedlen);
+
int dilithium_sign_c(struct dilithium_sig *sig, const uint8_t *m,
size_t mlen, const struct dilithium_sk *sk,
struct crypto_rng *rng_ctx);
diff --git a/crypto/ml_dsa/dilithium_signature_impl.h b/crypto/ml_dsa/dilithium_signature_impl.h
index 1f0ec0f7c27c..1682f64b6877 100644
--- a/crypto/ml_dsa/dilithium_signature_impl.h
+++ b/crypto/ml_dsa/dilithium_signature_impl.h
@@ -31,6 +31,7 @@
#include "dilithium_type.h"
#include "dilithium_debug.h"
#include "dilithium_pack.h"
+#include "dilithium_pct.h"
#include "dilithium_signature_impl.h"
#include "signature_domain_separation.h"
#include "small_stack_support.h"
@@ -52,6 +53,200 @@
#define WS_POLY_UNIFORM_BUF_SIZE \
(_WS_POLY_UNIFORM_BUF_SIZE * LC_POLY_UNIFOR_BUF_SIZE_MULTIPLIER)
+static int dilithium_keypair_from_seed_impl(struct dilithium_pk *pk,
+ struct dilithium_sk *sk,
+ const uint8_t *seed,
+ size_t seedlen);
+
+static int dilithium_keypair_impl(struct dilithium_pk *pk,
+ struct dilithium_sk *sk,
+ struct crypto_rng *rng_ctx)
+{
+ struct workspace {
+ union {
+ polyvecl s1, s1hat;
+ } s1;
+ union {
+ polyvecl mat[DILITHIUM_K];
+ polyveck t0;
+ } matrix;
+ polyveck s2, t1;
+ uint8_t seedbuf[2 * DILITHIUM_SEEDBYTES +
+ DILITHIUM_CRHBYTES];
+ union {
+ poly polyvecl_pointwise_acc_montgomery_buf;
+ uint8_t poly_uniform_buf[WS_POLY_UNIFORM_BUF_SIZE];
+ uint8_t poly_uniform_eta_buf[POLY_UNIFORM_ETA_BYTES];
+ uint8_t tr[DILITHIUM_TRBYTES];
+ } tmp;
+ };
+ static const uint8_t dimension[2] = { DILITHIUM_K, DILITHIUM_L };
+ const uint8_t *rho, *rhoprime, *key;
+ int ret;
+ struct shake256_ctx shake256_ctx;
+ LC_DECLARE_MEM(ws, struct workspace, sizeof(uint64_t));
+
+ if (WARN_ON_ONCE(!pk) ||
+ WARN_ON_ONCE(!sk)) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ /* Get randomness for rho, rhoprime and key */
+ ret = crypto_rng_generate(rng_ctx, NULL, 0, ws->seedbuf,
+ DILITHIUM_SEEDBYTES);
+ if (ret < 0)
+ goto out;
+ dilithium_print_buffer(ws->seedbuf, DILITHIUM_SEEDBYTES,
+ "Keygen - Seed");
+
+ shake256_init(&shake256_ctx);
+ shake256_update(&shake256_ctx, ws->seedbuf, DILITHIUM_SEEDBYTES);
+ shake256_update(&shake256_ctx, dimension, sizeof(dimension));
+ shake256_squeeze(&shake256_ctx, ws->seedbuf, sizeof(ws->seedbuf));
+ shake256_clear(&shake256_ctx);
+
+ rho = ws->seedbuf;
+ dilithium_print_buffer(ws->seedbuf, DILITHIUM_SEEDBYTES,
+ "Keygen - RHO");
+ pack_pk_rho(pk, rho);
+ pack_sk_rho(sk, rho);
+
+ /*
+ * Timecop: RHO' is a random number which is enlarged to sample the
+ * vectors S1 and S2 from. The sampling operation is not considered
+ * relevant for the side channel operation as (a) an attacker does not
+ * have access to the random number and (b) only the result after the
+ * sampling operation of S1 and S2 is released.
+ */
+ rhoprime = rho + DILITHIUM_SEEDBYTES;
+ dilithium_print_buffer(rhoprime, DILITHIUM_CRHBYTES,
+ "Keygen - RHOPrime");
+
+ key = rhoprime + DILITHIUM_CRHBYTES;
+ dilithium_print_buffer(key, DILITHIUM_SEEDBYTES, "Keygen - Key");
+
+ /* Timecop: key goes into the secret key */
+ poison(key, DILITHIUM_SEEDBYTES);
+
+ pack_sk_key(sk, key);
+
+ /* Sample short vectors s1 and s2 */
+
+ polyvecl_uniform_eta(&ws->s1.s1, rhoprime, 0,
+ ws->tmp.poly_uniform_eta_buf);
+ polyveck_uniform_eta(&ws->s2, rhoprime, DILITHIUM_L,
+ ws->tmp.poly_uniform_eta_buf);
+
+ /* Timecop: s1 and s2 are secret */
+ poison(&ws->s1.s1, sizeof(polyvecl));
+ poison(&ws->s2, sizeof(polyveck));
+
+ dilithium_print_polyvecl(&ws->s1.s1,
+ "Keygen - S1 L x N matrix after ExpandS:");
+ dilithium_print_polyveck(&ws->s2,
+ "Keygen - S2 K x N matrix after ExpandS:");
+
+ pack_sk_s1(sk, &ws->s1.s1);
+ pack_sk_s2(sk, &ws->s2);
+
+ polyvecl_ntt(&ws->s1.s1hat);
+ dilithium_print_polyvecl(&ws->s1.s1hat,
+ "Keygen - S1 L x N matrix after NTT:");
+
+ /* Expand matrix */
+ polyvec_matrix_expand(ws->matrix.mat, rho, ws->tmp.poly_uniform_buf);
+ dilithium_print_polyvecl_k(
+ ws->matrix.mat, "Keygen - MAT K x L x N matrix after ExpandA:");
+
+ polyvec_matrix_pointwise_montgomery(
+ &ws->t1, ws->matrix.mat, &ws->s1.s1hat,
+ &ws->tmp.polyvecl_pointwise_acc_montgomery_buf);
+ dilithium_print_polyveck(&ws->t1,
+ "Keygen - T K x N matrix after A*NTT(s1):");
+
+ polyveck_reduce(&ws->t1);
+ dilithium_print_polyveck(
+ &ws->t1, "Keygen - T K x N matrix reduce after A*NTT(s1):");
+
+ polyveck_invntt_tomont(&ws->t1);
+ dilithium_print_polyveck(&ws->t1,
+ "Keygen - T K x N matrix after NTT-1:");
+
+ /* Add error vector s2 */
+ polyveck_add(&ws->t1, &ws->t1, &ws->s2);
+ dilithium_print_polyveck(&ws->t1,
+ "Keygen - T K x N matrix after add S2:");
+
+ /* Extract t1 and write public key */
+ polyveck_caddq(&ws->t1);
+ dilithium_print_polyveck(&ws->t1, "Keygen - T K x N matrix caddq:");
+
+ polyveck_power2round(&ws->t1, &ws->matrix.t0, &ws->t1);
+ dilithium_print_polyveck(&ws->matrix.t0,
+ "Keygen - T0 K x N matrix after power2round:");
+ dilithium_print_polyveck(&ws->t1,
+ "Keygen - T1 K x N matrix after power2round:");
+
+ pack_sk_t0(sk, &ws->matrix.t0);
+ pack_pk_t1(pk, &ws->t1);
+ dilithium_print_buffer(pk->pk, DILITHIUM_PUBLICKEYBYTES,
+ "Keygen - PK after pkEncode:");
+
+ /* Compute H(rho, t1) and write secret key */
+ shake256(pk->pk, sizeof(pk->pk), ws->tmp.tr, sizeof(ws->tmp.tr));
+ dilithium_print_buffer(ws->tmp.tr, sizeof(ws->tmp.tr), "Keygen - TR:");
+ pack_sk_tr(sk, ws->tmp.tr);
+
+ dilithium_print_buffer(sk->sk, DILITHIUM_SECRETKEYBYTES,
+ "Keygen - SK:");
+
+ /* Timecop: pk and sk are not relevant for side-channels any more. */
+ unpoison(pk->pk, sizeof(pk->pk));
+ unpoison(sk->sk, sizeof(sk->sk));
+
+ ret = dilithium_pct_fips(pk, sk);
+
+out:
+ LC_RELEASE_MEM(ws);
+ return ret;
+}
+
+static int dilithium_keypair_from_seed_impl(struct dilithium_pk *pk,
+ struct dilithium_sk *sk,
+ const uint8_t *seed,
+ size_t seedlen)
+{
+ struct crypto_rng *rng;
+ int ret;
+
+ if (seedlen != DILITHIUM_SEEDBYTES)
+ return -EINVAL;
+
+ rng = crypto_alloc_rng("stdrng", 0, 0);
+ if (IS_ERR(rng))
+ return PTR_ERR(rng);
+
+ ret = crypto_rng_seedsize(rng);
+ if (ret < 0)
+ goto out;
+ if (seedlen != ret) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ /* Set the seed that the key generation can pull via the RNG. */
+ ret = crypto_rng_reset(rng, seed, seedlen);
+ if (ret < 0)
+ goto out;
+
+ /* Generate the key pair from the seed. */
+ ret = dilithium_keypair_impl(pk, sk, rng);
+
+out:
+ return ret;
+}
+
static int dilithium_sign_internal_ahat(struct dilithium_sig *sig,
const struct dilithium_sk *sk,
struct dilithium_ctx *ctx,
diff --git a/crypto/ml_dsa/dilithium_type.h b/crypto/ml_dsa/dilithium_type.h
index f9f7ffa2cd38..cc2664b62048 100644
--- a/crypto/ml_dsa/dilithium_type.h
+++ b/crypto/ml_dsa/dilithium_type.h
@@ -63,6 +63,8 @@
* The following defines simply allow duplicate compilation of the
* respective functions.
*/
+#define dilithium_keypair DILITHIUM_F(keypair)
+#define dilithium_keypair_from_seed DILITHIUM_F(keypair_from_seed)
#define dilithium_sign DILITHIUM_F(sign)
#define dilithium_sign_ctx DILITHIUM_F(sign_ctx)
#define dilithium_sign_init DILITHIUM_F(sign_init)
@@ -74,6 +76,8 @@
#define dilithium_verify_update DILITHIUM_F(verify_update)
#define dilithium_verify_final DILITHIUM_F(verify_final)
+#define dilithium_keypair_c DILITHIUM_F(keypair_c)
+#define dilithium_keypair_from_seed_c DILITHIUM_F(keypair_from_seed_c)
#define dilithium_sign_c DILITHIUM_F(sign_c)
#define dilithium_sign_ctx_c DILITHIUM_F(sign_ctx_c)
#define dilithium_sign_init_c DILITHIUM_F(sign_init_c)
@@ -85,6 +89,10 @@
#define dilithium_verify_update_c DILITHIUM_F(verify_update_c)
#define dilithium_verify_final_c DILITHIUM_F(verify_final_c)
+#define dilithium_keypair_tester DILITHIUM_F(keypair_tester)
+#define dilithium_siggen_tester DILITHIUM_F(siggen_tester)
+#define dilithium_sigver_tester DILITHIUM_F(sigver_tester)
+
#define ntt DILITHIUM_F(ntt)
#define invntt_tomont DILITHIUM_F(invntt_tomont)
#define poly_chknorm DILITHIUM_F(poly_chknorm)
@@ -152,6 +160,8 @@
#define decompose_avx DILITHIUM_F(decompose_avx)
#define make_hint_avx DILITHIUM_F(make_hint_avx)
#define use_hint_avx DILITHIUM_F(use_hint_avx)
+#define dilithium_keypair_avx2 DILITHIUM_F(keypair_avx2)
+#define dilithium_keypair_from_seed_avx2 DILITHIUM_F(keypair_from_seed_avx2)
#define dilithium_sign_avx2 DILITHIUM_F(sign_avx2)
#define dilithium_sign_ctx_avx2 DILITHIUM_F(sign_ctx_avx2)
#define dilithium_sign_init_avx2 DILITHIUM_F(sign_init_avx2)
@@ -179,6 +189,9 @@
DILITHIUM_F(poly_pointwise_montgomery_armv8)
#define polyvecl_pointwise_acc_montgomery_armv8 \
DILITHIUM_F(polyvecl_pointwise_acc_montgomery_armv8)
+#define dilithium_keypair_armv8 DILITHIUM_F(keypair_armv8)
+#define dilithium_keypair_from_seed_armv8 \
+ DILITHIUM_F(keypair_from_seed_armv8)
#define dilithium_sign_armv8 DILITHIUM_F(sign_armv8)
#define dilithium_sign_ctx_armv8 DILITHIUM_F(sign_ctx_armv8)
#define dilithium_sign_init_armv8 DILITHIUM_F(sign_init_armv8)
@@ -200,6 +213,9 @@
#define poly_uniform_armv7 DILITHIUM_F(poly_uniform_armv7)
#define armv7_poly_reduce_asm DILITHIUM_F(armv7_poly_reduce_asm)
#define armv7_rej_uniform_asm DILITHIUM_F(armv7_rej_uniform_asm)
+#define dilithium_keypair_armv7 DILITHIUM_F(keypair_armv7)
+#define dilithium_keypair_from_seed_armv7 \
+ DILITHIUM_F(keypair_from_seed_armv7)
#define dilithium_sign_armv7 DILITHIUM_F(sign_armv7)
#define dilithium_sign_ctx_armv7 DILITHIUM_F(sign_ctx_armv7)
#define dilithium_sign_init_armv7 DILITHIUM_F(sign_init_armv7)
@@ -212,6 +228,9 @@
#define dilithium_verify_final_armv7 DILITHIUM_F(verify_final_armv7)
/* RISCV 64 ASM Implementation */
+#define dilithium_keypair_riscv64 DILITHIUM_F(keypair_riscv64)
+#define dilithium_keypair_from_seed_riscv64 \
+ DILITHIUM_F(keypair_from_seed_riscv64)
#define dilithium_sign_riscv64 DILITHIUM_F(sign_riscv64)
#define dilithium_sign_ctx_riscv64 DILITHIUM_F(sign_ctx_riscv64)
#define dilithium_sign_init_riscv64 DILITHIUM_F(sign_init_riscv64)
@@ -234,6 +253,9 @@
#define dilithium_poly_reduce_rv64im DILITHIUM_F(poly_reduce_rv64im)
/* RISCV 64 RVV Implementation */
+#define dilithium_keypair_riscv64_rvv DILITHIUM_F(keypair_riscv64_rvv)
+#define dilithium_keypair_from_seed_riscv64_rvv \
+ DILITHIUM_F(keypair_from_seed_riscv64_rvv)
#define dilithium_sign_riscv64_rvv DILITHIUM_F(sign_riscv64_rvv)
#define dilithium_sign_ctx_riscv64_rvv DILITHIUM_F(sign_ctx_riscv64_rvv)
#define dilithium_sign_init_riscv64_rvv DILITHIUM_F(sign_init_riscv64_rvv)
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 12/17] crypto: Add ML-DSA-44 pure rejection test vectors as a kunit test
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (10 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 11/17] crypto: Add ML-DSA/Dilithium keypair generation support David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 13/17] crypto: Add ML-DSA-65 " David Howells
` (4 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add the "Pure rejection tests" from Stephan Mueller's Leancrypto
implementation of ML-DSA/Dilithium 44 to the kernel as a kunit test.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: linux-crypto@vger.kernel.org
---
crypto/ml_dsa/Kconfig | 15 +
crypto/ml_dsa/Makefile | 2 +
.../dilithium_pure_rejection_vectors_44.h | 812 ++++++++++++++++++
crypto/ml_dsa/dilithium_selftest.c | 149 ++++
4 files changed, 978 insertions(+)
create mode 100644 crypto/ml_dsa/dilithium_pure_rejection_vectors_44.h
create mode 100644 crypto/ml_dsa/dilithium_selftest.c
diff --git a/crypto/ml_dsa/Kconfig b/crypto/ml_dsa/Kconfig
index cc0567c5b990..d6e31d9ad77f 100644
--- a/crypto/ml_dsa/Kconfig
+++ b/crypto/ml_dsa/Kconfig
@@ -14,4 +14,19 @@ config CRYPTO_DILITHIUM_65
config CRYPTO_DILITHIUM_87
bool "Enable Dilithium-87 support"
+config CRYPTO_ML_DSA_TEST
+ tristate "ML-DSA/Dilithium KUnit tests"
+ depends on KUNIT
+ default KUNIT_ALL_TESTS
+ help
+ This options enables the KUnit tests for ML-DSA.
+
+ KUnit tests run during boot and output the results to the debug
+ log in TAP format (https://testanything.org/). Only useful for
+ kernel devs running KUnit test harness and are not for inclusion
+ into a production build.
+
+ For more information on KUnit and unit tests in general, refer
+ to the KUnit documentation in Documentation/dev-tools/kunit/.
+
endif
diff --git a/crypto/ml_dsa/Makefile b/crypto/ml_dsa/Makefile
index d420a8ba6033..dd05ce75f79f 100644
--- a/crypto/ml_dsa/Makefile
+++ b/crypto/ml_dsa/Makefile
@@ -16,3 +16,5 @@ ml_dsa-$(CONFIG_CRYPTO_DILITHIUM_65) += dilithium_65.o
ml_dsa-$(CONFIG_CRYPTO_DILITHIUM_44) += dilithium_44.o
obj-$(CONFIG_CRYPTO_ML_DSA) += ml_dsa.o
+
+obj-$(CONFIG_CRYPTO_ML_DSA_TEST) += dilithium_selftest.o
diff --git a/crypto/ml_dsa/dilithium_pure_rejection_vectors_44.h b/crypto/ml_dsa/dilithium_pure_rejection_vectors_44.h
new file mode 100644
index 000000000000..d4d307cfc046
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_pure_rejection_vectors_44.h
@@ -0,0 +1,812 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+ {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa44",
+ .pk_len = DILITHIUM44_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM44_PUBLICKEYBYTES]){
+ 0x8f, 0x61, 0x67, 0xa9, 0x7c, 0x61, 0xc2, 0xf2,
+ 0x87, 0xe2, 0x28, 0xf8, 0x44, 0x80, 0x6f, 0xb0,
+ 0x10, 0xc1, 0x14, 0xf6, 0x88, 0x42, 0x76, 0xbe,
+ 0x05, 0xd2, 0x56, 0xa0, 0xb7, 0x46, 0xcf, 0xc5,
+ 0x76, 0x0a, 0x52, 0xfe, 0xa3, 0x3c, 0x05, 0x6e,
+ 0xd5, 0xd3, 0xbd, 0x80, 0x03, 0x29, 0x25, 0x96,
+ 0xdf, 0xa9, 0x5b, 0x12, 0x42, 0x89, 0x6e, 0x03,
+ 0x2c, 0x42, 0x64, 0xee, 0xc7, 0xf7, 0x55, 0xfe,
+ 0xfd, 0x15, 0x74, 0xee, 0x2d, 0xb3, 0xbf, 0xf2,
+ 0x24, 0xe7, 0x35, 0x45, 0x77, 0x67, 0x44, 0xd2,
+ 0x0c, 0x43, 0xfc, 0x7b, 0x47, 0x56, 0xad, 0xc5,
+ 0xe7, 0x37, 0x49, 0x21, 0x12, 0x57, 0x7f, 0xca,
+ 0x7f, 0x5d, 0xac, 0x62, 0x5b, 0x8d, 0xbf, 0xdb,
+ 0x64, 0xac, 0x12, 0x1d, 0x7f, 0x7a, 0x2f, 0xa0,
+ 0x2c, 0xfe, 0x95, 0x4b, 0x78, 0xdb, 0xf0, 0x98,
+ 0x97, 0x70, 0x62, 0xfc, 0x64, 0x4a, 0x1b, 0xbc,
+ 0x30, 0x1b, 0x51, 0x13, 0x47, 0x6e, 0x83, 0xd2,
+ 0xa2, 0xcf, 0x39, 0xba, 0xd3, 0x00, 0x62, 0x7c,
+ 0x5b, 0xe6, 0x14, 0x55, 0xd5, 0xfc, 0xbf, 0x15,
+ 0x65, 0xd7, 0x1f, 0xbb, 0xf6, 0x2b, 0x46, 0x38,
+ 0x1e, 0xf3, 0x8f, 0x0d, 0x57, 0x8a, 0x41, 0xfb,
+ 0x47, 0x19, 0xe1, 0x79, 0xca, 0x98, 0x1a, 0x73,
+ 0x4d, 0x8a, 0xc0, 0xa1, 0xa7, 0x4a, 0x28, 0x4a,
+ 0x92, 0x6c, 0x77, 0x4f, 0x18, 0xe1, 0xce, 0x11,
+ 0x14, 0xd5, 0xf6, 0xc0, 0xa8, 0x1e, 0x26, 0x25,
+ 0xe4, 0x30, 0xb2, 0x6f, 0x89, 0x6e, 0xc6, 0x44,
+ 0x1a, 0xd3, 0xca, 0xe1, 0x05, 0x0d, 0x61, 0x80,
+ 0xd7, 0xbc, 0x56, 0x0a, 0x57, 0x9f, 0x16, 0x40,
+ 0x84, 0x1e, 0xc0, 0x5e, 0xcd, 0xb6, 0xc8, 0x5d,
+ 0x87, 0xd6, 0xee, 0xcb, 0x21, 0x2f, 0x22, 0x9a,
+ 0x7e, 0xea, 0x2e, 0xf5, 0x87, 0xf0, 0x44, 0x10,
+ 0x3d, 0x42, 0x6d, 0x3f, 0x4f, 0xa0, 0x21, 0x8e,
+ 0x40, 0x75, 0x3b, 0xaa, 0xd4, 0xd9, 0x37, 0x0a,
+ 0x35, 0x5b, 0xba, 0xbd, 0x11, 0x17, 0x7b, 0x7e,
+ 0xfc, 0xb1, 0x1c, 0x5c, 0x71, 0xce, 0xde, 0xa5,
+ 0xec, 0xd6, 0x8b, 0x50, 0x64, 0x02, 0xca, 0x84,
+ 0x26, 0xfe, 0x03, 0x9e, 0xaf, 0x13, 0x05, 0x1c,
+ 0x85, 0x32, 0x92, 0x85, 0x84, 0x83, 0xb6, 0x76,
+ 0x27, 0xa7, 0xd8, 0x0c, 0xa4, 0xb5, 0x65, 0x7a,
+ 0xbf, 0x2e, 0x64, 0xce, 0x82, 0x0d, 0x27, 0xd3,
+ 0x2c, 0x9d, 0xb5, 0xa5, 0x51, 0xe3, 0xab, 0xbd,
+ 0xe2, 0xe0, 0x64, 0x71, 0x0f, 0x99, 0x09, 0x6a,
+ 0x40, 0x9d, 0x8c, 0x6d, 0x63, 0x70, 0x42, 0xe2,
+ 0xa8, 0x5c, 0x71, 0xd2, 0x88, 0x10, 0xbc, 0x3b,
+ 0x9d, 0xc8, 0x3a, 0x8a, 0xf3, 0x81, 0x0a, 0x0e,
+ 0xd8, 0xf6, 0x13, 0x90, 0xc2, 0xda, 0x4c, 0x4f,
+ 0x6f, 0x1f, 0x61, 0x0d, 0x46, 0xac, 0x5c, 0x4a,
+ 0xcc, 0x23, 0xfb, 0xf2, 0xf8, 0x9f, 0x48, 0x1f,
+ 0xaf, 0x24, 0xb4, 0xc7, 0xcb, 0x6f, 0x80, 0x74,
+ 0xa3, 0xdb, 0xa8, 0x61, 0x12, 0x60, 0x08, 0x56,
+ 0x85, 0x47, 0x05, 0x32, 0x93, 0x43, 0x9b, 0xa6,
+ 0xf6, 0x56, 0x3b, 0xab, 0x93, 0x28, 0x19, 0xda,
+ 0xad, 0xb5, 0xaa, 0x2e, 0x83, 0x3d, 0x37, 0x0e,
+ 0x83, 0xf2, 0xfe, 0xdd, 0xe8, 0xd9, 0x53, 0x36,
+ 0x3b, 0x5d, 0x8e, 0x24, 0xa9, 0x3a, 0x8f, 0x85,
+ 0x4b, 0x50, 0xf7, 0x61, 0x0f, 0x20, 0x92, 0x09,
+ 0x1f, 0xe4, 0x24, 0x98, 0x9f, 0xa4, 0x52, 0x12,
+ 0x2a, 0xae, 0x6f, 0xd6, 0x0d, 0xb5, 0x22, 0x72,
+ 0x83, 0xfb, 0x4f, 0xef, 0xa6, 0x55, 0x9a, 0x14,
+ 0xab, 0x82, 0x89, 0x1f, 0xf2, 0x0b, 0x14, 0x76,
+ 0xb7, 0xf7, 0x14, 0xdd, 0xd6, 0xc1, 0xe8, 0xb2,
+ 0x99, 0x23, 0x28, 0xe8, 0xa4, 0x69, 0x18, 0xf6,
+ 0x3e, 0xb1, 0xff, 0xde, 0xf2, 0x2c, 0x7c, 0x73,
+ 0x93, 0x32, 0x52, 0x06, 0xeb, 0x59, 0xb2, 0x8f,
+ 0x2f, 0x1d, 0x6a, 0x85, 0x74, 0xd3, 0xe5, 0xa1,
+ 0x95, 0xe4, 0x96, 0x1e, 0x75, 0x16, 0xe4, 0x5c,
+ 0x40, 0xf0, 0x20, 0xb1, 0x10, 0xe7, 0x2a, 0x70,
+ 0x41, 0xac, 0x49, 0x40, 0x55, 0xef, 0xd1, 0x58,
+ 0x24, 0x6a, 0xa6, 0x20, 0xdc, 0x23, 0xdc, 0x66,
+ 0x45, 0x4f, 0x6a, 0x52, 0x3c, 0x61, 0xc8, 0xfb,
+ 0x28, 0x1e, 0x8c, 0x3f, 0xfc, 0xc7, 0x73, 0x2f,
+ 0xf1, 0xe2, 0x31, 0xee, 0xa0, 0x5f, 0x12, 0x3f,
+ 0x94, 0xe5, 0x26, 0xc0, 0x62, 0xcc, 0x67, 0x8f,
+ 0x5d, 0xfd, 0x3d, 0x8f, 0x16, 0xae, 0x4e, 0x04,
+ 0x54, 0x5b, 0x02, 0x66, 0x00, 0x70, 0xe5, 0xcc,
+ 0xb9, 0x51, 0x8c, 0x1a, 0x5d, 0xf0, 0xfe, 0x7d,
+ 0x1b, 0x2f, 0x0a, 0x48, 0x94, 0xda, 0x4b, 0xb3,
+ 0x05, 0x75, 0x3b, 0x25, 0xda, 0xf2, 0x12, 0x47,
+ 0xe2, 0xd7, 0xbb, 0xe7, 0x05, 0xa2, 0x4e, 0xaf,
+ 0x2f, 0x29, 0x6c, 0xbd, 0x80, 0x82, 0xdf, 0xbb,
+ 0x4b, 0x9d, 0x29, 0x9b, 0xef, 0xff, 0x17, 0x2a,
+ 0xa7, 0x2f, 0x4a, 0x2e, 0xbf, 0x29, 0x38, 0xcb,
+ 0x94, 0x9c, 0x10, 0x87, 0x69, 0x57, 0x7d, 0xd7,
+ 0xcf, 0xc1, 0x57, 0x0f, 0xc2, 0x9c, 0x3b, 0x1e,
+ 0xbc, 0x55, 0x08, 0xb1, 0x50, 0xb0, 0x28, 0x79,
+ 0x1d, 0xd9, 0x2f, 0xa5, 0x12, 0xcc, 0xa7, 0x5b,
+ 0xcb, 0x67, 0x57, 0x13, 0x4a, 0xb3, 0xd5, 0x34,
+ 0xea, 0xd9, 0x6b, 0x15, 0x17, 0x1f, 0xe7, 0x52,
+ 0x2a, 0x11, 0xdf, 0xab, 0x3a, 0x8d, 0x1b, 0xaa,
+ 0xfa, 0x54, 0xf0, 0x20, 0x94, 0x40, 0x2d, 0x3e,
+ 0xf2, 0xa2, 0x8b, 0xbb, 0x86, 0xce, 0x29, 0x87,
+ 0xb1, 0xfa, 0x27, 0xf2, 0x5a, 0x79, 0xc2, 0xf8,
+ 0xe9, 0xf2, 0x7c, 0x5a, 0xcd, 0x45, 0x8e, 0x8b,
+ 0xba, 0xad, 0x13, 0x52, 0x79, 0xd5, 0x0f, 0x59,
+ 0xfb, 0x07, 0x15, 0x1f, 0xb3, 0xe6, 0xc8, 0x66,
+ 0xf7, 0x37, 0x19, 0xd8, 0x33, 0xdd, 0xc1, 0xb3,
+ 0x96, 0x4b, 0x28, 0x43, 0xf8, 0x5e, 0xc7, 0xe8,
+ 0x81, 0x6e, 0xd0, 0xb2, 0x5a, 0x3d, 0xf1, 0x68,
+ 0x8f, 0xf0, 0xf5, 0x1a, 0x6d, 0xc3, 0xaa, 0x5b,
+ 0x72, 0x27, 0xbd, 0xd6, 0x7c, 0x9b, 0xbf, 0x89,
+ 0x6a, 0x09, 0xf0, 0x48, 0xf0, 0x8c, 0x27, 0x69,
+ 0x28, 0xf3, 0x5f, 0x53, 0xe3, 0x4d, 0x60, 0x4a,
+ 0xb8, 0xc5, 0xf9, 0x85, 0x07, 0x3e, 0xfb, 0xd7,
+ 0x21, 0x69, 0xd5, 0xec, 0x18, 0x68, 0xb6, 0x55,
+ 0x15, 0xac, 0x2e, 0x0f, 0x5c, 0x2e, 0x9e, 0x12,
+ 0x10, 0x5e, 0xc6, 0xb3, 0xcd, 0xe6, 0x3a, 0x2f,
+ 0x43, 0xf6, 0x75, 0x31, 0x3c, 0x90, 0x34, 0x1c,
+ 0x3d, 0x45, 0xaa, 0x8e, 0x08, 0xcf, 0x58, 0x67,
+ 0x34, 0xd4, 0x24, 0xb8, 0x20, 0x69, 0xfe, 0xf0,
+ 0x33, 0xe9, 0x3e, 0xbd, 0xe5, 0x18, 0x9f, 0x66,
+ 0xc9, 0x0d, 0x6f, 0x47, 0x99, 0xf7, 0x0c, 0xdd,
+ 0xad, 0x8c, 0x6b, 0x80, 0xed, 0x19, 0x61, 0x8a,
+ 0xba, 0x62, 0x2f, 0xcc, 0x0e, 0x47, 0xe0, 0xc6,
+ 0x1f, 0x2f, 0x44, 0x40, 0x17, 0xb6, 0x89, 0xc6,
+ 0xf5, 0xc2, 0x97, 0x89, 0x38, 0x6c, 0x8e, 0x2c,
+ 0x46, 0x0b, 0x6e, 0x01, 0x47, 0xd3, 0x2f, 0x58,
+ 0xf8, 0xc7, 0x3b, 0x49, 0xb2, 0x35, 0x9f, 0x67,
+ 0xc9, 0x6c, 0xde, 0x30, 0x3b, 0x50, 0x19, 0x65,
+ 0xbb, 0x73, 0xa1, 0x47, 0x01, 0x6a, 0x3d, 0xe3,
+ 0x85, 0x4d, 0xd0, 0x72, 0x0d, 0xbc, 0x81, 0x52,
+ 0xe8, 0x1a, 0x8b, 0x85, 0x4c, 0x6f, 0x0e, 0xfc,
+ 0x59, 0x84, 0x7a, 0xf2, 0x28, 0x3e, 0x02, 0xcb,
+ 0xe2, 0x4a, 0xbf, 0xac, 0x22, 0x34, 0x86, 0xe4,
+ 0x7d, 0x6b, 0xa3, 0x52, 0xac, 0xff, 0xe5, 0xbe,
+ 0x0c, 0x8d, 0xf5, 0xd8, 0xfd, 0x5a, 0x3d, 0xad,
+ 0x0d, 0xc0, 0x02, 0xd0, 0x58, 0x8e, 0x7c, 0x50,
+ 0x7c, 0x09, 0xc0, 0xdb, 0xd7, 0xdf, 0xe0, 0xb2,
+ 0x6f, 0xb2, 0x79, 0x0d, 0xc1, 0xa0, 0xb1, 0x7e,
+ 0xe3, 0x0d, 0xfc, 0x93, 0x43, 0x8c, 0x86, 0x68,
+ 0xa6, 0x51, 0x93, 0x42, 0xb7, 0xcd, 0x13, 0x56,
+ 0x6e, 0xdc, 0x63, 0x51, 0x23, 0xcf, 0x29, 0xc5,
+ 0x5a, 0x66, 0x43, 0x80, 0xfe, 0x28, 0x15, 0x71,
+ 0x52, 0x87, 0xe2, 0x18, 0x10, 0xad, 0x94, 0x47,
+ 0x2f, 0xe3, 0x5d, 0x7a, 0x02, 0x6d, 0x31, 0x58,
+ 0xae, 0x2f, 0x96, 0x53, 0x1b, 0x6c, 0x0e, 0x25,
+ 0xea, 0x41, 0xd3, 0x29, 0x27, 0x22, 0x24, 0x8d,
+ 0x1d, 0x8e, 0xd1, 0x33, 0x76, 0x67, 0x7d, 0x9d,
+ 0xd9, 0xa7, 0x3e, 0x61, 0xd0, 0xad, 0x93, 0xb9,
+ 0xdf, 0x87, 0x3a, 0x7b, 0x89, 0xc7, 0x1d, 0x91,
+ 0xec, 0x43, 0xa4, 0xdc, 0x02, 0x88, 0x2e, 0xaa,
+ 0xb2, 0x58, 0xa5, 0xd3, 0x68, 0x9c, 0x9f, 0x60,
+ 0x12, 0xc8, 0x7e, 0x7d, 0x40, 0x80, 0xfd, 0xb4,
+ 0xbf, 0x56, 0xf4, 0x01, 0x39, 0x3d, 0xa0, 0x34,
+ 0x48, 0x79, 0x75, 0xe2, 0x0f, 0x60, 0x09, 0x42,
+ 0x11, 0x6f, 0xa5, 0x31, 0x46, 0xb7, 0x03, 0xc8,
+ 0x61, 0x53, 0x39, 0x1e, 0xf4, 0x99, 0x36, 0x7d,
+ 0xc0, 0x87, 0xda, 0x63, 0x71, 0x9b, 0x29, 0x7b,
+ 0x4e, 0x6f, 0x09, 0xa2, 0x2c, 0xa5, 0xc2, 0xb9,
+ 0xe7, 0xe0, 0x56, 0x8b, 0x1d, 0xbb, 0xcc, 0x34,
+ 0x8c, 0xbc, 0xb6, 0x0a, 0xc9, 0xfa, 0x4a, 0x31,
+ 0x63, 0x0d, 0x30, 0xff, 0x59, 0x3d, 0x8c, 0x4d,
+ 0x74, 0x28, 0xf4, 0xe9, 0x97, 0x43, 0x05, 0x3a,
+ 0x33, 0x51, 0x51, 0xe4, 0x0e, 0x33, 0xae, 0x2c,
+ 0xda, 0x28, 0x83, 0x93, 0x4e, 0xfe, 0x37, 0x1d,
+ 0x6c, 0x25, 0x1e, 0x24, 0xbc, 0x3a, 0x5c, 0x68,
+ 0xac, 0x54, 0x3a, 0x47, 0x74, 0x35, 0xff, 0x37,
+ 0x80, 0x12, 0x30, 0xd7, 0x31, 0x2a, 0x49, 0x51,
+ 0x2d, 0x4f, 0xd2, 0x9c, 0xca, 0x55, 0x87, 0xd0,
+ 0x41, 0x86, 0xc7, 0xf2, 0xda, 0xf8, 0x4b, 0x08,
+ 0x23, 0xb3, 0x00, 0xb7, 0xb6, 0x4f, 0x2e, 0xaf,
+ 0xb8, 0x8e, 0xb1, 0x44, 0xe1, 0xed, 0x67, 0xf8,
+ 0x80, 0xa7, 0x04, 0xa0, 0x66, 0xe6, 0xb5, 0x69,
+ 0xca, 0x95, 0x71, 0xc8, 0x0d, 0x3d, 0xf6, 0x77,
+ 0xfd, 0x2c, 0x95, 0xed, 0xe5, 0x22, 0x43, 0xd9,
+ },
+ .sk_len = DILITHIUM44_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM44_SECRETKEYBYTES]){
+ 0x8f, 0x61, 0x67, 0xa9, 0x7c, 0x61, 0xc2, 0xf2,
+ 0x87, 0xe2, 0x28, 0xf8, 0x44, 0x80, 0x6f, 0xb0,
+ 0x10, 0xc1, 0x14, 0xf6, 0x88, 0x42, 0x76, 0xbe,
+ 0x05, 0xd2, 0x56, 0xa0, 0xb7, 0x46, 0xcf, 0xc5,
+ 0x88, 0x93, 0x36, 0x71, 0x6e, 0xaa, 0x48, 0x61,
+ 0xb8, 0x9b, 0x3a, 0x69, 0x82, 0x29, 0x0b, 0xf5,
+ 0x0f, 0xf4, 0x81, 0x87, 0x57, 0x07, 0xec, 0x70,
+ 0xbc, 0xee, 0x4d, 0xb6, 0xfc, 0x98, 0x40, 0x35,
+ 0xbd, 0x45, 0x19, 0xd9, 0xc5, 0x66, 0xd4, 0xfb,
+ 0xf4, 0x93, 0xae, 0xbd, 0x32, 0x1f, 0xd4, 0xa2,
+ 0x9a, 0xdc, 0x33, 0xb0, 0xfd, 0xff, 0x92, 0xe2,
+ 0x67, 0x16, 0x15, 0xe8, 0xc6, 0xca, 0x3d, 0xbf,
+ 0x25, 0x84, 0x0a, 0xc6, 0x0c, 0x1e, 0x64, 0x63,
+ 0xd5, 0x99, 0xc7, 0x61, 0x36, 0xf6, 0xaa, 0x2a,
+ 0x6b, 0x0c, 0x1c, 0xad, 0x3a, 0x57, 0xae, 0x6a,
+ 0x65, 0xf0, 0x9e, 0x70, 0xba, 0x60, 0x37, 0x3c,
+ 0x5a, 0x26, 0x29, 0xe2, 0x82, 0x71, 0x60, 0x82,
+ 0x28, 0x08, 0xb9, 0x6c, 0x82, 0x46, 0x31, 0xc9,
+ 0xa2, 0x48, 0x18, 0x04, 0x49, 0x23, 0x14, 0x61,
+ 0x10, 0x82, 0x65, 0x20, 0x10, 0x60, 0xd9, 0xc2,
+ 0x88, 0x94, 0x00, 0x0a, 0x40, 0x22, 0x32, 0xd4,
+ 0x18, 0x86, 0x20, 0x48, 0x2e, 0x4b, 0x28, 0x12,
+ 0xd1, 0x24, 0x4d, 0x41, 0x02, 0x29, 0x94, 0x04,
+ 0x4e, 0x89, 0x06, 0x04, 0xd9, 0x28, 0x4d, 0x9b,
+ 0x80, 0x01, 0x14, 0x39, 0x6d, 0x0b, 0x41, 0x86,
+ 0xc2, 0x34, 0x04, 0xc9, 0x20, 0x60, 0x49, 0x34,
+ 0x4a, 0x60, 0x44, 0x20, 0x01, 0x29, 0x92, 0xda,
+ 0x16, 0x31, 0x13, 0xb2, 0x21, 0x5b, 0x48, 0x82,
+ 0x20, 0x33, 0x31, 0x60, 0x48, 0x42, 0x98, 0x28,
+ 0x06, 0x20, 0x44, 0x46, 0xa4, 0x08, 0x71, 0x8a,
+ 0xb2, 0x90, 0xa2, 0x18, 0x22, 0x10, 0x36, 0x6e,
+ 0xa3, 0x36, 0x2c, 0x1b, 0x23, 0x04, 0xe1, 0x44,
+ 0x2c, 0xc2, 0x02, 0x90, 0x40, 0xa0, 0x89, 0x21,
+ 0xc7, 0x8c, 0x08, 0x29, 0x05, 0x54, 0x82, 0x00,
+ 0x8a, 0xb8, 0x91, 0x40, 0x10, 0x05, 0x20, 0x99,
+ 0x31, 0xc2, 0x02, 0x31, 0x14, 0x04, 0x70, 0x63,
+ 0x02, 0x6e, 0xc1, 0x48, 0x02, 0x11, 0xc4, 0x4d,
+ 0xd3, 0x48, 0x21, 0x00, 0x06, 0x65, 0x0b, 0x87,
+ 0x81, 0xd3, 0x36, 0x10, 0x02, 0x12, 0x40, 0x18,
+ 0x06, 0x48, 0x9b, 0xb2, 0x68, 0x8b, 0xa0, 0x8d,
+ 0x80, 0x38, 0x06, 0x13, 0xa0, 0x71, 0x11, 0x90,
+ 0x49, 0x62, 0x20, 0x50, 0xd1, 0x32, 0x91, 0x89,
+ 0xb0, 0x68, 0xd4, 0xa4, 0x4c, 0x00, 0x29, 0x2e,
+ 0xe4, 0xb8, 0x90, 0x82, 0x84, 0x29, 0x14, 0x07,
+ 0x45, 0x09, 0xc3, 0x85, 0xa2, 0x28, 0x4e, 0x42,
+ 0x48, 0x70, 0x41, 0xa8, 0x50, 0x5b, 0x04, 0x06,
+ 0x64, 0x28, 0x11, 0xa1, 0x24, 0x44, 0x93, 0x82,
+ 0x65, 0xa2, 0x88, 0x40, 0x1a, 0x09, 0x4e, 0xc2,
+ 0xc2, 0x80, 0x90, 0x44, 0x6d, 0x41, 0x30, 0x0a,
+ 0x12, 0x91, 0x24, 0x22, 0x10, 0x22, 0x00, 0x96,
+ 0x01, 0x41, 0x90, 0x89, 0xd0, 0x88, 0x6d, 0x42,
+ 0xa8, 0x89, 0xd1, 0xa4, 0x11, 0x91, 0x04, 0x28,
+ 0x10, 0x11, 0x65, 0x51, 0x16, 0x2a, 0x20, 0x03,
+ 0x2c, 0x14, 0x42, 0x09, 0x14, 0xb4, 0x28, 0x1b,
+ 0xa7, 0x25, 0x80, 0x18, 0x90, 0x5a, 0xa2, 0x69,
+ 0x91, 0x86, 0x88, 0x12, 0xa8, 0x88, 0x0c, 0xb1,
+ 0x6c, 0x8a, 0xa8, 0x0c, 0x60, 0x16, 0x0d, 0x0c,
+ 0x98, 0x28, 0x09, 0x17, 0x80, 0x1b, 0x85, 0x29,
+ 0x18, 0x96, 0x28, 0x40, 0x44, 0x21, 0xd4, 0xb2,
+ 0x44, 0x5c, 0x90, 0x0c, 0xda, 0x14, 0x8a, 0x04,
+ 0x04, 0x2c, 0xc4, 0x36, 0x90, 0x59, 0x30, 0x80,
+ 0x90, 0x48, 0x28, 0x4b, 0xb4, 0x24, 0x11, 0x32,
+ 0x8e, 0x82, 0x16, 0x64, 0x14, 0x47, 0x24, 0x14,
+ 0x04, 0x05, 0x01, 0xa4, 0x10, 0x18, 0x49, 0x24,
+ 0x4b, 0x42, 0x30, 0x14, 0x48, 0x2a, 0x4c, 0x02,
+ 0x8d, 0xc9, 0x24, 0x2c, 0x03, 0x36, 0x8c, 0x19,
+ 0x26, 0x84, 0xa0, 0x38, 0x11, 0xc2, 0x02, 0x72,
+ 0xd4, 0x16, 0x82, 0x01, 0xb1, 0x61, 0x9b, 0x36,
+ 0x8e, 0x52, 0x48, 0x90, 0x22, 0xc6, 0x20, 0x94,
+ 0x38, 0x0e, 0xc9, 0x02, 0x86, 0x5c, 0x48, 0x89,
+ 0xd2, 0x12, 0x42, 0x80, 0x26, 0x41, 0x94, 0xb6,
+ 0x49, 0x60, 0xa4, 0x85, 0x4b, 0x20, 0x62, 0x02,
+ 0x15, 0x68, 0x04, 0x93, 0x40, 0x19, 0xb2, 0x31,
+ 0xc8, 0xc0, 0x69, 0x4c, 0x16, 0x02, 0x9a, 0x12,
+ 0x64, 0x63, 0x06, 0x32, 0x04, 0x27, 0x20, 0xc8,
+ 0x20, 0x4c, 0xa3, 0x46, 0x8e, 0xdc, 0x04, 0x6a,
+ 0x11, 0x88, 0x68, 0x99, 0xc2, 0x11, 0x93, 0xa8,
+ 0x45, 0xc9, 0xb2, 0x64, 0x58, 0x20, 0x42, 0x08,
+ 0x95, 0x2d, 0x18, 0x11, 0x06, 0x0b, 0xc3, 0x89,
+ 0x92, 0x12, 0x42, 0xc2, 0x28, 0x26, 0x01, 0x03,
+ 0x92, 0x03, 0x34, 0x42, 0x49, 0x88, 0x90, 0x5c,
+ 0x86, 0x09, 0x82, 0xa8, 0x50, 0xe2, 0xb2, 0x30,
+ 0x11, 0x29, 0x04, 0xca, 0x42, 0x89, 0x60, 0x86,
+ 0x61, 0x02, 0x12, 0x41, 0xc1, 0x34, 0x88, 0x11,
+ 0xa9, 0x24, 0x5a, 0xc6, 0x88, 0x0a, 0x08, 0x8e,
+ 0x63, 0x36, 0x4c, 0xa3, 0x18, 0x29, 0x61, 0x46,
+ 0x49, 0xe0, 0x24, 0x01, 0x8a, 0xc8, 0x4c, 0xc3,
+ 0x40, 0x61, 0x5c, 0xc6, 0x51, 0xa4, 0x46, 0x4e,
+ 0x08, 0xa6, 0x21, 0x21, 0x93, 0x31, 0x1b, 0x88,
+ 0x2d, 0x42, 0xb4, 0x91, 0x1c, 0x98, 0x05, 0x19,
+ 0x88, 0x50, 0xca, 0x40, 0x2d, 0x01, 0xb2, 0x2d,
+ 0x0a, 0xa1, 0x41, 0x1a, 0x18, 0x82, 0x99, 0x40,
+ 0x08, 0xdc, 0xb0, 0x41, 0x4a, 0xc0, 0x10, 0x99,
+ 0xb6, 0x51, 0x4b, 0x92, 0x91, 0x00, 0xc0, 0x49,
+ 0xa0, 0x14, 0x11, 0x0a, 0x11, 0x24, 0x0b, 0x25,
+ 0x92, 0x22, 0x99, 0x30, 0xe1, 0x26, 0x2e, 0xe3,
+ 0xc6, 0x61, 0x9b, 0x06, 0x25, 0x03, 0x27, 0x6e,
+ 0x22, 0x91, 0x45, 0x41, 0x48, 0x86, 0x9b, 0x16,
+ 0x01, 0x23, 0x86, 0x31, 0x13, 0x00, 0x65, 0x08,
+ 0xa5, 0x88, 0x08, 0x11, 0x70, 0x9c, 0x28, 0x24,
+ 0x04, 0x18, 0x04, 0x23, 0x42, 0x51, 0xa3, 0x16,
+ 0x6c, 0xc2, 0x46, 0x0a, 0x21, 0x98, 0x0d, 0x8c,
+ 0x96, 0x05, 0x5b, 0x16, 0x46, 0xda, 0x80, 0x80,
+ 0x4b, 0x30, 0x25, 0x18, 0x94, 0x31, 0xd9, 0x40,
+ 0x05, 0x22, 0x90, 0x85, 0x10, 0x12, 0x8c, 0xdb,
+ 0x42, 0x41, 0xa3, 0x02, 0x66, 0x11, 0x04, 0x82,
+ 0x4b, 0x14, 0x68, 0xd9, 0x86, 0x31, 0x8b, 0x44,
+ 0x48, 0x20, 0x06, 0x09, 0x1a, 0xc1, 0x70, 0x12,
+ 0xa6, 0x0c, 0x24, 0xb3, 0x20, 0x23, 0x05, 0x52,
+ 0x19, 0x94, 0x11, 0x90, 0xa6, 0x88, 0xc3, 0x04,
+ 0x31, 0x19, 0x10, 0x0a, 0x0a, 0x09, 0x22, 0x19,
+ 0xb7, 0x90, 0x8b, 0x16, 0x30, 0x0b, 0x05, 0x90,
+ 0x66, 0x26, 0xba, 0x8a, 0xe4, 0x4c, 0xea, 0xda,
+ 0x2c, 0x40, 0xe1, 0x1f, 0xdd, 0x79, 0xe4, 0x1f,
+ 0xd7, 0x3c, 0xb7, 0xfc, 0xb4, 0xc5, 0x59, 0x1e,
+ 0xf9, 0x1c, 0x18, 0x3a, 0xff, 0x19, 0x82, 0x4f,
+ 0xcc, 0x1c, 0xca, 0xd7, 0x06, 0xf1, 0x7c, 0x57,
+ 0xa3, 0x33, 0xd9, 0x9a, 0xd4, 0x4a, 0x22, 0x89,
+ 0x52, 0x15, 0x7d, 0x20, 0x5e, 0x42, 0x77, 0x32,
+ 0xe4, 0xcb, 0xb0, 0x6a, 0x84, 0x92, 0x97, 0x11,
+ 0xfe, 0x59, 0x91, 0x89, 0x84, 0xb9, 0x23, 0x14,
+ 0x81, 0xb5, 0x30, 0x7a, 0x12, 0x9a, 0x20, 0xce,
+ 0xfe, 0xba, 0xbe, 0x92, 0xb0, 0x15, 0x26, 0xd2,
+ 0x15, 0x67, 0x4a, 0x71, 0xb0, 0x10, 0x94, 0xbb,
+ 0xb6, 0xeb, 0xdf, 0xa8, 0x91, 0xa5, 0xa4, 0x25,
+ 0x8f, 0xdb, 0x19, 0x16, 0x81, 0x3e, 0x4e, 0xac,
+ 0x05, 0x7b, 0xd6, 0xeb, 0x4a, 0xed, 0x14, 0x17,
+ 0xad, 0xff, 0x77, 0x29, 0x91, 0x82, 0xa4, 0x00,
+ 0xb5, 0x1d, 0x4f, 0x4d, 0x81, 0x43, 0xee, 0xa1,
+ 0xa3, 0xba, 0x0c, 0x72, 0x7c, 0x25, 0x02, 0x34,
+ 0x05, 0xce, 0x62, 0x4a, 0x22, 0xc4, 0xd0, 0x80,
+ 0x3c, 0xec, 0x6e, 0xfb, 0x5b, 0x3c, 0xb1, 0xbd,
+ 0xa4, 0x60, 0xb9, 0xc3, 0xed, 0x23, 0x00, 0x5a,
+ 0x34, 0x75, 0xe0, 0x6d, 0xeb, 0x40, 0xf4, 0x43,
+ 0x70, 0x88, 0x28, 0x42, 0x6b, 0x50, 0x88, 0x8e,
+ 0xb6, 0x50, 0xd4, 0x68, 0x7c, 0xf1, 0x3a, 0x1a,
+ 0xff, 0x9e, 0x83, 0xf7, 0x7f, 0x4c, 0xe2, 0xfb,
+ 0xb9, 0xd4, 0x23, 0xd1, 0x9b, 0x3a, 0x5b, 0x26,
+ 0x1a, 0x20, 0xa2, 0x64, 0x83, 0xad, 0xac, 0x8e,
+ 0x2b, 0x61, 0xd9, 0xa8, 0x80, 0xbf, 0xf7, 0x0c,
+ 0x34, 0xb2, 0x24, 0x2c, 0x3f, 0x93, 0xd2, 0x42,
+ 0x3b, 0xfa, 0x87, 0xe1, 0xdb, 0xcc, 0x68, 0x50,
+ 0x96, 0x2a, 0xe1, 0x8a, 0x20, 0xf6, 0x74, 0xad,
+ 0x14, 0xcd, 0xb2, 0xcb, 0x5a, 0x0b, 0xe7, 0xd8,
+ 0x2f, 0x09, 0xcd, 0x77, 0x63, 0xe7, 0x8a, 0x24,
+ 0x5d, 0xc3, 0xff, 0x28, 0xc6, 0xfa, 0xad, 0x00,
+ 0x53, 0xba, 0x64, 0x93, 0x8d, 0xa5, 0x74, 0x5a,
+ 0x96, 0x41, 0x54, 0x14, 0x95, 0x09, 0x58, 0x06,
+ 0x85, 0x55, 0xae, 0x09, 0xea, 0xe9, 0xd3, 0x29,
+ 0x96, 0x66, 0x6c, 0xfe, 0xbd, 0x6e, 0x76, 0x5f,
+ 0x0f, 0x1f, 0xe8, 0x27, 0x15, 0x97, 0xe8, 0xde,
+ 0x3e, 0xc4, 0xec, 0xcc, 0x25, 0xa6, 0x97, 0x5e,
+ 0xfc, 0x22, 0x81, 0x31, 0xc0, 0x19, 0xac, 0x87,
+ 0x97, 0x52, 0x55, 0x06, 0xc7, 0x87, 0x5e, 0x48,
+ 0x49, 0x82, 0x4d, 0xc6, 0xee, 0xe3, 0x65, 0xa7,
+ 0xb1, 0xdf, 0x1d, 0x69, 0x0a, 0x0d, 0x96, 0x35,
+ 0x56, 0x7e, 0x86, 0xba, 0x1e, 0xc0, 0xd4, 0x09,
+ 0x53, 0xfb, 0xda, 0x37, 0xe5, 0x61, 0x25, 0x80,
+ 0x83, 0x27, 0xd8, 0xff, 0xd4, 0xb3, 0x73, 0xbf,
+ 0xbe, 0x58, 0x5c, 0xd4, 0xd0, 0x07, 0x3b, 0xce,
+ 0x51, 0x72, 0x79, 0xb9, 0x83, 0x40, 0x75, 0x90,
+ 0x4e, 0xce, 0x7c, 0xa6, 0x71, 0x23, 0x24, 0x9f,
+ 0xe1, 0xc6, 0xfb, 0x84, 0x20, 0x9a, 0x43, 0x6a,
+ 0xfa, 0x13, 0x33, 0xf2, 0x8a, 0xa8, 0x78, 0xdb,
+ 0x00, 0x44, 0xbc, 0xa8, 0x5f, 0x90, 0x76, 0xc1,
+ 0x5b, 0x40, 0xf3, 0xf4, 0x57, 0x49, 0x55, 0x3f,
+ 0xfd, 0xba, 0xc5, 0xe6, 0xfa, 0xe1, 0x40, 0xfc,
+ 0x18, 0xff, 0xcb, 0x7c, 0x12, 0x52, 0x90, 0x8f,
+ 0x8f, 0xa2, 0xeb, 0xf6, 0xdc, 0x27, 0x8d, 0x53,
+ 0x2a, 0x1c, 0xaf, 0xf6, 0x1c, 0x34, 0x36, 0xf7,
+ 0xee, 0x19, 0x93, 0xf9, 0x33, 0x7c, 0x70, 0x20,
+ 0xe4, 0x65, 0xdd, 0x0c, 0x44, 0xf9, 0xf1, 0x67,
+ 0xe1, 0xb5, 0xb7, 0xca, 0xd4, 0x18, 0x87, 0x5f,
+ 0x4c, 0x2e, 0x42, 0x38, 0x8e, 0x18, 0xa5, 0x49,
+ 0xb2, 0x29, 0x62, 0x7d, 0xe6, 0x43, 0x57, 0xd5,
+ 0x33, 0xd6, 0xa0, 0x77, 0x6c, 0x66, 0xea, 0x94,
+ 0xe3, 0x37, 0xa6, 0x76, 0x25, 0xbe, 0x0e, 0x0c,
+ 0x05, 0x93, 0x98, 0x18, 0xb0, 0xc7, 0x61, 0xd5,
+ 0x10, 0x13, 0xcb, 0x89, 0x80, 0xef, 0xca, 0xa6,
+ 0xe8, 0x48, 0xb4, 0xfd, 0xd3, 0xc8, 0x68, 0xbe,
+ 0xdf, 0x12, 0x94, 0x44, 0x65, 0x68, 0x38, 0x5d,
+ 0x0e, 0xd1, 0x2b, 0x0a, 0xd2, 0x2b, 0x4c, 0x1e,
+ 0xc6, 0x97, 0xd2, 0x28, 0xe0, 0x6d, 0xdd, 0x1c,
+ 0x77, 0x31, 0xaa, 0x0b, 0x2b, 0x23, 0x6d, 0xcd,
+ 0x1f, 0x2f, 0x10, 0xe8, 0xba, 0x6d, 0x34, 0xd1,
+ 0xf7, 0xe9, 0x26, 0x42, 0xb2, 0x76, 0x00, 0x62,
+ 0x62, 0xc3, 0xe1, 0xfd, 0x0e, 0x83, 0x8f, 0xd3,
+ 0xc0, 0x08, 0x6b, 0xb6, 0x26, 0x49, 0x30, 0xe9,
+ 0x9e, 0x13, 0xa5, 0x6c, 0x1c, 0xff, 0x66, 0x9e,
+ 0xba, 0xdd, 0xef, 0xde, 0xa0, 0x33, 0xaa, 0x82,
+ 0x96, 0x45, 0xfe, 0xf7, 0x67, 0xda, 0x6d, 0x02,
+ 0xbf, 0xbe, 0xb1, 0x84, 0xbe, 0x40, 0xe7, 0xdb,
+ 0xc6, 0x8f, 0xd8, 0x95, 0x3a, 0xf0, 0x9e, 0xc6,
+ 0xe9, 0xcc, 0x03, 0x2d, 0x2a, 0x1f, 0x7f, 0x1f,
+ 0xd1, 0x4a, 0x2f, 0xc7, 0x29, 0xe9, 0xad, 0x69,
+ 0x70, 0x6a, 0xe9, 0x52, 0x97, 0xa2, 0x1c, 0x21,
+ 0xfc, 0xc8, 0x9e, 0x67, 0xce, 0x69, 0x9b, 0x07,
+ 0x7c, 0x74, 0x80, 0x1e, 0xb4, 0xc2, 0x00, 0x0d,
+ 0x2d, 0xb8, 0x03, 0xd1, 0x39, 0x02, 0x5f, 0x5a,
+ 0x89, 0x8a, 0x77, 0xad, 0x3a, 0x2d, 0x47, 0x6c,
+ 0x1d, 0xf5, 0x6c, 0x3b, 0x81, 0x92, 0x54, 0xd4,
+ 0xcf, 0x22, 0xcd, 0xa3, 0x58, 0xe4, 0x60, 0x71,
+ 0x4f, 0xb4, 0x05, 0x80, 0xd0, 0x43, 0x66, 0xfb,
+ 0xde, 0x3f, 0x8e, 0x14, 0x2d, 0xad, 0x7b, 0xfe,
+ 0x09, 0x81, 0xc4, 0xeb, 0x11, 0x48, 0x31, 0x6c,
+ 0xdc, 0x8a, 0x53, 0xd4, 0x6b, 0x81, 0x17, 0xd5,
+ 0x77, 0x6f, 0x50, 0xa9, 0x68, 0xac, 0x30, 0x38,
+ 0x4f, 0x6f, 0xe8, 0xd2, 0x00, 0x6d, 0xf9, 0x5e,
+ 0x3b, 0xf2, 0x5f, 0x7a, 0x5f, 0x9d, 0xce, 0x3d,
+ 0xc4, 0xa1, 0xd5, 0x1b, 0xa4, 0xef, 0x5a, 0xa5,
+ 0x2a, 0x75, 0x65, 0x55, 0x24, 0x62, 0x88, 0x67,
+ 0x87, 0xad, 0xde, 0x85, 0xf0, 0x05, 0x94, 0x6a,
+ 0x10, 0xb7, 0x0f, 0x2f, 0xef, 0xea, 0xf2, 0xd1,
+ 0xaa, 0xba, 0xce, 0xef, 0x70, 0x0d, 0x74, 0xbd,
+ 0x3c, 0xd1, 0xfa, 0x1d, 0xa2, 0x83, 0xc8, 0x80,
+ 0x8a, 0x3f, 0x6d, 0x64, 0x96, 0x88, 0xd7, 0x68,
+ 0x88, 0x9a, 0x58, 0x96, 0x01, 0x78, 0x3f, 0x34,
+ 0xc9, 0xab, 0xa2, 0xf7, 0x3c, 0xe5, 0xd9, 0x23,
+ 0x66, 0x8e, 0x9b, 0xca, 0x76, 0xf9, 0x5c, 0xea,
+ 0x09, 0x44, 0xf0, 0x3b, 0x84, 0xe7, 0x78, 0xfa,
+ 0xfc, 0x33, 0xe3, 0x2c, 0xd2, 0x93, 0xc2, 0xdb,
+ 0x17, 0x10, 0x38, 0x5b, 0xe9, 0x2d, 0xf0, 0xf3,
+ 0xd4, 0x3c, 0x89, 0x25, 0x1c, 0xec, 0xc3, 0xbc,
+ 0xc3, 0x02, 0x95, 0xb2, 0x6c, 0x92, 0xfc, 0x16,
+ 0x1f, 0xee, 0x54, 0xf9, 0x08, 0xd4, 0x08, 0x24,
+ 0xa6, 0x1b, 0x38, 0x7c, 0x0a, 0xec, 0xf9, 0xcc,
+ 0x31, 0x5d, 0x9d, 0xc1, 0xc5, 0xb0, 0x21, 0xd8,
+ 0x45, 0x26, 0x2e, 0x7d, 0x85, 0xc8, 0x82, 0x6c,
+ 0x74, 0xe8, 0x70, 0xaa, 0x5d, 0x62, 0xba, 0xd8,
+ 0xad, 0x69, 0xbd, 0xed, 0x9f, 0x12, 0x71, 0xa6,
+ 0xbb, 0x58, 0xa9, 0x44, 0x6c, 0x16, 0x43, 0x86,
+ 0xf1, 0xd6, 0x08, 0x70, 0x7a, 0x8e, 0xc3, 0x36,
+ 0x9a, 0xe7, 0xe8, 0x03, 0x92, 0x7e, 0xa1, 0xfd,
+ 0x7a, 0x01, 0x35, 0x4f, 0x43, 0x59, 0x87, 0x00,
+ 0x23, 0x5b, 0xa8, 0x39, 0xa6, 0x8a, 0x07, 0x9f,
+ 0x4d, 0x5a, 0xcb, 0x42, 0x9e, 0x45, 0x1c, 0x0a,
+ 0x70, 0xb4, 0x01, 0xef, 0x92, 0x98, 0x2b, 0x90,
+ 0xec, 0x78, 0xd6, 0x80, 0x93, 0x33, 0xa3, 0xe5,
+ 0xe9, 0x42, 0x97, 0x7e, 0x51, 0x0e, 0x5e, 0xe4,
+ 0x22, 0x0f, 0xfe, 0x1b, 0x2f, 0xac, 0xdd, 0x18,
+ 0x0c, 0x95, 0x9b, 0xcf, 0x2d, 0xbc, 0x6f, 0xc9,
+ 0xa9, 0x65, 0x54, 0x7e, 0x22, 0xa9, 0xe2, 0x4b,
+ 0xe2, 0x58, 0x7b, 0xf9, 0x0f, 0xfd, 0x07, 0xd8,
+ 0xdd, 0x14, 0xe3, 0xa2, 0xe5, 0xdf, 0x98, 0xc0,
+ 0x2f, 0x46, 0x27, 0x01, 0xef, 0xbc, 0x71, 0x26,
+ 0x41, 0x4e, 0xd0, 0x52, 0xbc, 0x82, 0x1d, 0x5c,
+ 0x82, 0xee, 0x50, 0xb6, 0x6f, 0x19, 0xec, 0xc8,
+ 0xf8, 0x2d, 0xd3, 0x3c, 0x17, 0x4d, 0x39, 0xcd,
+ 0xec, 0xdc, 0x71, 0x01, 0x86, 0x50, 0x53, 0xa4,
+ 0x94, 0xf8, 0xfb, 0x66, 0x9c, 0x9b, 0x43, 0xab,
+ 0x87, 0xd6, 0x64, 0x94, 0xd7, 0x8b, 0xde, 0x09,
+ 0xc9, 0xf7, 0x82, 0xa1, 0x95, 0x85, 0x7e, 0x7a,
+ 0x88, 0xa5, 0xc1, 0x14, 0xb9, 0xc0, 0x07, 0x4a,
+ 0x16, 0x37, 0x99, 0x41, 0x35, 0x2b, 0xc3, 0x44,
+ 0xd3, 0x73, 0xb0, 0x1e, 0x6d, 0x6e, 0xfb, 0xb8,
+ 0x09, 0xfd, 0x98, 0x17, 0xe0, 0xb0, 0xa4, 0x21,
+ 0x2b, 0x44, 0x9c, 0xc9, 0xea, 0x56, 0xa6, 0xb6,
+ 0x78, 0xb9, 0x30, 0xf9, 0x5c, 0x6a, 0xe7, 0x9d,
+ 0x4b, 0x75, 0x82, 0xb9, 0x8c, 0x2e, 0xd8, 0x3d,
+ 0xf2, 0xde, 0x42, 0x01, 0x15, 0xe6, 0xc7, 0xdf,
+ 0x06, 0x31, 0xc1, 0x32, 0x29, 0xa7, 0x20, 0xda,
+ 0xd9, 0x6a, 0x83, 0xb4, 0xb1, 0x44, 0x99, 0x20,
+ 0xf9, 0x61, 0x49, 0xe9, 0x46, 0x53, 0xec, 0xc5,
+ 0xf8, 0xdb, 0xd6, 0x24, 0x37, 0x52, 0xf8, 0xe6,
+ 0xcd, 0x28, 0x10, 0x7d, 0x19, 0xd4, 0xb2, 0x7a,
+ 0x7c, 0x48, 0x09, 0xae, 0xc6, 0x83, 0x7f, 0x4f,
+ 0x6b, 0xaf, 0xe9, 0xe3, 0x68, 0x8e, 0xa3, 0x33,
+ 0x45, 0x13, 0xf2, 0x57, 0xc4, 0xb4, 0x62, 0xdb,
+ 0xc2, 0xb9, 0xde, 0xbf, 0x62, 0x99, 0x8a, 0xe4,
+ 0x40, 0xbf, 0xfc, 0x07, 0xb7, 0xaa, 0x49, 0x68,
+ 0x8b, 0x82, 0xc5, 0x95, 0xd4, 0xb3, 0x16, 0x78,
+ 0x3b, 0x83, 0xfe, 0xdc, 0x52, 0x00, 0xaa, 0x31,
+ 0x58, 0x5a, 0xec, 0xf5, 0x5c, 0x6e, 0xc6, 0x16,
+ 0x6b, 0x22, 0xf8, 0xac, 0x59, 0x38, 0xfb, 0x75,
+ 0x73, 0xe2, 0x72, 0x5c, 0x0a, 0xa0, 0x35, 0x26,
+ 0x0f, 0x37, 0x72, 0xa9, 0xe3, 0x27, 0x34, 0x3a,
+ 0x14, 0xcd, 0xfc, 0x57, 0xf4, 0x27, 0xe3, 0x33,
+ 0xf1, 0xca, 0x95, 0x08, 0xd3, 0x72, 0x96, 0x82,
+ 0x19, 0xe5, 0x4b, 0xc0, 0xc6, 0x14, 0x04, 0x7a,
+ 0x63, 0x57, 0xe2, 0x67, 0xd6, 0xab, 0x4d, 0x59,
+ 0xde, 0xf2, 0xae, 0xb6, 0x6f, 0x80, 0x44, 0xb0,
+ 0xd7, 0xa2, 0x6e, 0xb3, 0x15, 0xe8, 0xca, 0xb5,
+ 0x62, 0x22, 0x1c, 0x55, 0x67, 0x8e, 0xe7, 0x36,
+ 0x1e, 0x7c, 0x18, 0x22, 0x22, 0x75, 0x62, 0xf3,
+ 0x1c, 0xe7, 0xdc, 0xed, 0x2d, 0x9f, 0x43, 0x7c,
+ 0x8d, 0x0b, 0x93, 0x2b, 0xa9, 0x49, 0x59, 0x6c,
+ 0x04, 0x47, 0xb6, 0x4f, 0xfd, 0xb4, 0x25, 0xf8,
+ 0xec, 0x4e, 0xbe, 0xb0, 0x1e, 0x32, 0xf7, 0x14,
+ 0x1b, 0xfb, 0x80, 0x6f, 0x31, 0x29, 0xae, 0x9a,
+ 0x6a, 0xb5, 0x24, 0x1e, 0xe7, 0x62, 0x36, 0xb5,
+ 0x51, 0x5c, 0xe0, 0x90, 0x6f, 0x38, 0x2b, 0x3a,
+ 0x21, 0x06, 0x8c, 0x8f, 0x2f, 0x02, 0x2c, 0xfe,
+ 0x95, 0x49, 0x4a, 0xd9, 0x44, 0xb5, 0xbb, 0x53,
+ 0x8f, 0xd2, 0x09, 0x4b, 0x5a, 0x08, 0xd4, 0x56,
+ 0x93, 0xec, 0xc3, 0xd9, 0xd0, 0x3b, 0x48, 0x70,
+ 0xcc, 0x0b, 0x51, 0xcc, 0xe2, 0x87, 0xf4, 0xaa,
+ 0x12, 0xe7, 0x79, 0x76, 0xa4, 0xea, 0x57, 0xf0,
+ 0x03, 0x4f, 0xa0, 0x4e, 0x35, 0x13, 0x44, 0x09,
+ 0x10, 0x45, 0x07, 0x12, 0x76, 0xf4, 0x89, 0xa9,
+ 0xf9, 0x9b, 0xde, 0xaf, 0x8d, 0x2f, 0xef, 0xa8,
+ 0x2f, 0x2e, 0x3f, 0xf8, 0xb0, 0xb9, 0xf0, 0xf0,
+ 0x43, 0x0f, 0x4f, 0x51, 0xd4, 0x36, 0x88, 0x9c,
+ 0x3b, 0x8a, 0x20, 0x06, 0x39, 0xf2, 0xfa, 0x41,
+ 0x26, 0x72, 0xc4, 0x3e, 0x11, 0x30, 0x7a, 0xb6,
+ 0x34, 0x39, 0x0a, 0x38, 0xbd, 0xa1, 0x8d, 0x67,
+ 0x33, 0x82, 0xf4, 0x96, 0xd8, 0x1f, 0xba, 0x52,
+ 0xbf, 0xf4, 0xfa, 0x28, 0x91, 0x45, 0xab, 0x2c,
+ 0x6e, 0xf1, 0x89, 0x6d, 0xaf, 0x09, 0x30, 0xe5,
+ 0xfd, 0x8d, 0xf3, 0x93, 0xc2, 0x6b, 0x7e, 0x95,
+ 0x7d, 0xef, 0x34, 0x10, 0xe2, 0x30, 0xde, 0x7e,
+ 0xbb, 0x79, 0x63, 0x96, 0x1b, 0xc9, 0x0a, 0x24,
+ 0xd7, 0xc0, 0xad, 0x17, 0x99, 0x68, 0x6b, 0x06,
+ 0x7c, 0x25, 0xa9, 0x7f, 0x2c, 0xbf, 0xcc, 0xd7,
+ 0x8f, 0x43, 0x6e, 0x68, 0x61, 0xf2, 0x70, 0x63,
+ 0x5a, 0x01, 0x77, 0xb3, 0x92, 0x8e, 0xb0, 0x97,
+ 0xb4, 0x63, 0x43, 0x2e, 0x7b, 0x02, 0x50, 0x5a,
+ 0x58, 0x95, 0x49, 0xb6, 0x04, 0xb1, 0x53, 0xda,
+ 0xef, 0xc2, 0x78, 0xbe, 0x24, 0x7c, 0xb0, 0xfd,
+ 0xc5, 0xc2, 0x02, 0x66, 0x8e, 0x38, 0x88, 0x11,
+ 0xba, 0xc1, 0x8c, 0x54, 0x41, 0xa9, 0x09, 0xee,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x6d, 0xb3, 0x8e, 0x80, 0xaf, 0x5f, 0x19, 0xd9,
+ 0xb0, 0xcf, 0xad, 0x58, 0xc7, 0x27, 0xae, 0x12,
+ 0x4e, 0x7d, 0xa3, 0x1a, 0xe3, 0x85, 0xc6, 0xaa,
+ 0xf6, 0xa1, 0x9a, 0xb1, 0xe9, 0xe0, 0xfe, 0x89,
+ 0x1e, 0xc5, 0x6f, 0x10, 0x18, 0x24, 0xab, 0xa8,
+ 0x6d, 0x03, 0xd0, 0x3d, 0xc3, 0xff, 0x67, 0xe7,
+ 0x3a, 0x95, 0x94, 0xc8, 0x49, 0x51, 0x8f, 0xa0,
+ 0x65, 0xcb, 0x20, 0x29, 0x2a, 0x6d, 0xf7, 0xf2,
+ },
+ .sig_len = DILITHIUM44_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM44_CRYPTO_BYTES]){
+ 0x5e, 0x05, 0x37, 0xe2, 0xc1, 0x20, 0xce, 0x7b,
+ 0x8a, 0xdf, 0xf2, 0x22, 0x61, 0x17, 0x58, 0xaa,
+ 0x3c, 0xe4, 0x82, 0x9c, 0x0e, 0xb6, 0x1f, 0xb4,
+ 0x98, 0x0f, 0xba, 0x8e, 0x51, 0x15, 0x67, 0x76,
+ 0x0b, 0x98, 0x63, 0xda, 0x17, 0xd3, 0xbb, 0xbe,
+ 0x16, 0x29, 0x71, 0xab, 0xba, 0x99, 0xed, 0x3f,
+ 0xd4, 0xc2, 0x16, 0x71, 0xb6, 0x21, 0x87, 0x48,
+ 0xaa, 0xb5, 0x39, 0x5e, 0xfb, 0x5d, 0x68, 0x3b,
+ 0xd3, 0x60, 0xf4, 0x5b, 0x85, 0x2a, 0x5b, 0xb5,
+ 0xce, 0x6e, 0xf3, 0x39, 0xc3, 0xbe, 0x96, 0xa7,
+ 0x61, 0xc9, 0xbf, 0xdf, 0x33, 0x1d, 0xec, 0xb9,
+ 0x2b, 0x7a, 0x05, 0xce, 0x1e, 0xd9, 0x46, 0x70,
+ 0xca, 0x54, 0xbf, 0xdc, 0x46, 0x9e, 0x2f, 0x29,
+ 0x18, 0x57, 0x96, 0x84, 0xac, 0xe9, 0xd7, 0x74,
+ 0xeb, 0x8e, 0x6b, 0xec, 0x46, 0x9a, 0x2a, 0xfa,
+ 0xde, 0x80, 0x09, 0x53, 0xd9, 0xeb, 0x9d, 0xf7,
+ 0xaa, 0xe2, 0xe5, 0xdc, 0xc3, 0xd9, 0x70, 0xe5,
+ 0x8b, 0xa8, 0xba, 0x2b, 0x41, 0x72, 0x92, 0x25,
+ 0xaf, 0xd9, 0xb4, 0x5a, 0x53, 0xb7, 0xcc, 0x1d,
+ 0x69, 0xf1, 0x53, 0x5b, 0x52, 0x38, 0xbc, 0x47,
+ 0x24, 0x8c, 0x1d, 0x28, 0x5d, 0x5c, 0x1c, 0xc9,
+ 0x9d, 0xea, 0x1c, 0xb1, 0xb3, 0x49, 0x68, 0xd5,
+ 0xad, 0xdc, 0x47, 0x58, 0x6d, 0x38, 0x33, 0xe7,
+ 0x9b, 0xaa, 0x89, 0xb1, 0x96, 0x0b, 0xcb, 0xc4,
+ 0x24, 0x73, 0xf2, 0xe7, 0xb6, 0xca, 0x74, 0x55,
+ 0x1b, 0xb5, 0xb7, 0x9e, 0x2e, 0xe3, 0x3a, 0x32,
+ 0x5d, 0x1d, 0x6e, 0x15, 0xe6, 0xb8, 0xfb, 0xce,
+ 0x57, 0x81, 0x15, 0xb5, 0xcf, 0x67, 0x2b, 0x55,
+ 0x4c, 0x85, 0x6f, 0x28, 0xa6, 0xbb, 0xb4, 0x28,
+ 0x76, 0x91, 0xa4, 0x29, 0xa1, 0x50, 0x7c, 0xed,
+ 0x9a, 0xfc, 0xe4, 0xbc, 0xd7, 0x28, 0x62, 0x28,
+ 0x61, 0x4d, 0x8d, 0x8c, 0x5a, 0x5e, 0x4d, 0x1d,
+ 0x5e, 0x73, 0xcc, 0x0b, 0x9d, 0x56, 0x73, 0xc7,
+ 0xf2, 0x26, 0xf7, 0x7e, 0x61, 0xa4, 0x86, 0xf5,
+ 0x1c, 0xd1, 0x00, 0xd0, 0x31, 0xc5, 0x03, 0x17,
+ 0x1c, 0xec, 0x04, 0xe5, 0xc7, 0x13, 0xb6, 0x81,
+ 0x78, 0x3d, 0x27, 0x87, 0x36, 0xf3, 0x2a, 0x59,
+ 0x96, 0xeb, 0x44, 0xfd, 0xb9, 0x95, 0xb7, 0x76,
+ 0xb1, 0x08, 0xc4, 0x98, 0xb1, 0x08, 0x36, 0x2a,
+ 0x63, 0x72, 0x4f, 0xef, 0x47, 0xfc, 0x84, 0x09,
+ 0x18, 0x60, 0xb7, 0x8a, 0xff, 0xae, 0x32, 0x3c,
+ 0x79, 0xdf, 0xd6, 0x24, 0xbe, 0x9c, 0x38, 0x68,
+ 0x92, 0xde, 0x81, 0x80, 0x22, 0x06, 0xf2, 0xe4,
+ 0xde, 0x75, 0x4e, 0xd6, 0x36, 0x93, 0x44, 0xd1,
+ 0xa4, 0x2e, 0x2e, 0x05, 0x87, 0xbd, 0xf7, 0xc5,
+ 0xc8, 0x1c, 0x7b, 0x00, 0xe8, 0x11, 0x7f, 0xc2,
+ 0x39, 0x4b, 0x7b, 0x97, 0x11, 0x92, 0x6c, 0xff,
+ 0x89, 0x7f, 0x26, 0x89, 0x4f, 0x38, 0xfd, 0xdd,
+ 0x08, 0xa7, 0xce, 0x6f, 0xe8, 0x57, 0x9b, 0x46,
+ 0xe5, 0xdb, 0x72, 0x03, 0x1e, 0x7d, 0xb0, 0x77,
+ 0xb9, 0xcc, 0xdb, 0x6c, 0xa7, 0xd8, 0x30, 0x34,
+ 0xad, 0xa7, 0xe4, 0x63, 0xf0, 0x19, 0x0e, 0x5d,
+ 0x3b, 0xe0, 0xff, 0x40, 0x1c, 0xa5, 0xb3, 0xb9,
+ 0x87, 0x6e, 0x2c, 0xf3, 0x5f, 0xcd, 0x54, 0x2a,
+ 0xc0, 0x6e, 0x2b, 0xd9, 0x2d, 0xcc, 0xd5, 0x68,
+ 0x95, 0x4a, 0x4a, 0x84, 0x60, 0x54, 0xee, 0xa0,
+ 0x21, 0x9e, 0x8d, 0x20, 0xcb, 0xe8, 0xc5, 0x5a,
+ 0xba, 0xe2, 0xaa, 0x6e, 0x1c, 0xb1, 0xdf, 0x18,
+ 0x9f, 0x94, 0xc7, 0x77, 0x5a, 0x2c, 0x0e, 0x05,
+ 0xaa, 0x2a, 0x54, 0x58, 0x6c, 0xb3, 0x2e, 0x2f,
+ 0xa4, 0x6e, 0x98, 0xbb, 0x6f, 0x41, 0x6d, 0xbd,
+ 0x71, 0x95, 0xe4, 0xbc, 0x13, 0x37, 0x99, 0x0d,
+ 0xac, 0x27, 0x69, 0xb9, 0x0b, 0x14, 0x5f, 0x6e,
+ 0xd2, 0x2b, 0xe2, 0x0c, 0xc6, 0xbc, 0x10, 0x11,
+ 0x47, 0xb7, 0x37, 0x2c, 0x0e, 0x88, 0xcd, 0xbb,
+ 0xf7, 0x28, 0xd6, 0x4a, 0x9d, 0xff, 0x3c, 0x2f,
+ 0x7d, 0x2b, 0xe8, 0xe8, 0x9e, 0xae, 0x7b, 0xe6,
+ 0x2a, 0xb3, 0x4e, 0x20, 0xcc, 0xf1, 0x81, 0x8e,
+ 0xed, 0x6d, 0xe2, 0x99, 0xf5, 0xb5, 0x1a, 0x30,
+ 0x95, 0x52, 0x34, 0xf5, 0x3f, 0xc3, 0x31, 0xd6,
+ 0xbe, 0xa2, 0xc8, 0xdc, 0xe4, 0x1c, 0xf6, 0x0f,
+ 0x4d, 0x0b, 0x89, 0x8e, 0x66, 0x93, 0x88, 0xb8,
+ 0xad, 0xbc, 0xdc, 0x96, 0x01, 0x9f, 0x16, 0x70,
+ 0xf5, 0x4f, 0xa4, 0x0e, 0x0f, 0xc3, 0xf6, 0x9c,
+ 0xe1, 0xa1, 0xe3, 0xec, 0x9d, 0x09, 0xcd, 0x90,
+ 0x52, 0x26, 0x09, 0xd9, 0x9c, 0xde, 0xbd, 0xdf,
+ 0xbb, 0xf4, 0x50, 0xd1, 0x89, 0x68, 0xf6, 0x86,
+ 0x53, 0x33, 0x5a, 0xf6, 0x54, 0xb5, 0x7c, 0xe1,
+ 0xd7, 0x8d, 0xb8, 0x58, 0xf5, 0xda, 0x14, 0xc8,
+ 0x35, 0x1c, 0xcf, 0x44, 0x62, 0xbc, 0xd7, 0xe3,
+ 0xd8, 0x32, 0xcf, 0x16, 0xf5, 0x2f, 0x55, 0x23,
+ 0xc0, 0x1b, 0xc4, 0xe3, 0x28, 0xc8, 0xc8, 0x97,
+ 0x70, 0x8b, 0x06, 0x98, 0xfb, 0xf6, 0x33, 0x6b,
+ 0x86, 0x1c, 0xdb, 0x2a, 0x3c, 0x08, 0x08, 0x57,
+ 0xd3, 0x4a, 0xf8, 0x22, 0x26, 0x78, 0x65, 0x5f,
+ 0xa6, 0xf8, 0x9f, 0x22, 0x76, 0x62, 0xb0, 0x08,
+ 0x68, 0x70, 0xea, 0x72, 0x57, 0x6b, 0xe7, 0xf7,
+ 0xc6, 0x12, 0x9a, 0x49, 0x50, 0xa9, 0xa5, 0x6c,
+ 0xe7, 0xda, 0xb4, 0xbf, 0xb6, 0xbf, 0x4f, 0xdf,
+ 0x9e, 0x9b, 0xb4, 0xb3, 0x8d, 0x1a, 0x12, 0x16,
+ 0x68, 0xd2, 0x63, 0xae, 0x92, 0x77, 0x1f, 0x03,
+ 0xa5, 0xed, 0x58, 0x3b, 0xe9, 0x0b, 0xfe, 0xfc,
+ 0xae, 0x53, 0x0b, 0x5f, 0x13, 0xf2, 0xd2, 0xe2,
+ 0x0b, 0xec, 0x75, 0x85, 0x68, 0x0c, 0x57, 0xde,
+ 0x1b, 0x6d, 0x78, 0x0b, 0x19, 0x66, 0xa8, 0xf5,
+ 0x45, 0x72, 0x2b, 0x01, 0x06, 0xf6, 0xd1, 0x47,
+ 0x21, 0x24, 0x07, 0xf7, 0x71, 0x03, 0xbc, 0xb0,
+ 0x7c, 0x5b, 0x5c, 0x24, 0xff, 0x74, 0x47, 0x62,
+ 0x81, 0xc3, 0x0b, 0x31, 0x76, 0x90, 0x5b, 0xef,
+ 0x95, 0xa8, 0xa7, 0x02, 0xa1, 0xbf, 0xe1, 0xf4,
+ 0x16, 0x06, 0x8a, 0x97, 0x39, 0x35, 0xcf, 0xf3,
+ 0xa7, 0x4a, 0x43, 0xba, 0x05, 0x95, 0x7d, 0x73,
+ 0x76, 0x7a, 0x53, 0xef, 0xf8, 0x4e, 0xcb, 0x04,
+ 0x70, 0x4c, 0xee, 0xff, 0x82, 0xbd, 0xcd, 0xc1,
+ 0xbe, 0x3d, 0x83, 0x71, 0x03, 0xf0, 0xc0, 0x2b,
+ 0x98, 0xf9, 0x60, 0x54, 0x02, 0x7d, 0xa6, 0x41,
+ 0xcc, 0xa3, 0xd7, 0x8d, 0xfd, 0xce, 0x28, 0xae,
+ 0x0f, 0x48, 0x17, 0x2a, 0xaf, 0xe9, 0xb9, 0x4a,
+ 0x8a, 0x22, 0xd2, 0x4d, 0xd3, 0x1b, 0xa3, 0x39,
+ 0x88, 0x8a, 0x8f, 0x5b, 0x44, 0x97, 0xb9, 0x04,
+ 0x1b, 0x58, 0x67, 0x74, 0x2f, 0x07, 0x7a, 0x52,
+ 0xa9, 0x9d, 0xa4, 0x41, 0x28, 0xf2, 0x35, 0xca,
+ 0x68, 0x4e, 0x4a, 0x3a, 0x66, 0xb9, 0x88, 0x2e,
+ 0x65, 0x1d, 0x47, 0x04, 0xed, 0xdb, 0xe1, 0x40,
+ 0x12, 0x06, 0x13, 0x62, 0x28, 0x3d, 0x0b, 0x35,
+ 0x06, 0xc6, 0x2b, 0xb3, 0x71, 0x3c, 0xfa, 0x77,
+ 0xec, 0x47, 0x93, 0x78, 0x36, 0x25, 0x19, 0xd7,
+ 0x70, 0x30, 0x8a, 0x4c, 0x94, 0xdc, 0x3e, 0xeb,
+ 0x61, 0x25, 0xbc, 0xa0, 0x27, 0xd9, 0x17, 0xa5,
+ 0x19, 0x4f, 0xf4, 0x93, 0x32, 0x56, 0x9a, 0x0b,
+ 0x77, 0xb4, 0x55, 0x1b, 0x8f, 0x9e, 0x69, 0x5b,
+ 0xe2, 0x6d, 0x70, 0x15, 0x79, 0x5c, 0xf6, 0xb6,
+ 0x04, 0xa2, 0x01, 0x37, 0x74, 0x20, 0xb8, 0x62,
+ 0xf6, 0x37, 0x3c, 0xab, 0xca, 0x71, 0xa5, 0x8a,
+ 0x56, 0x5d, 0x6a, 0x4a, 0x61, 0x2e, 0xb8, 0x62,
+ 0x7d, 0x47, 0x34, 0x7d, 0xcd, 0x4d, 0x70, 0x23,
+ 0xf5, 0xaa, 0xd1, 0xa5, 0xf0, 0x4c, 0x38, 0xc3,
+ 0x98, 0x79, 0x4c, 0x0b, 0x6b, 0xcc, 0xe7, 0xd7,
+ 0x09, 0xae, 0x23, 0x9b, 0x2f, 0xde, 0x70, 0xc6,
+ 0xad, 0x0f, 0x66, 0xb5, 0x78, 0x6b, 0x0b, 0xb0,
+ 0x2e, 0x94, 0xf2, 0xa8, 0x8b, 0x74, 0xf0, 0x03,
+ 0x47, 0xd8, 0xec, 0xe8, 0x1f, 0xa3, 0x7b, 0x38,
+ 0x9e, 0x0e, 0xc0, 0x47, 0xd2, 0x0f, 0x8e, 0x7f,
+ 0xb1, 0x83, 0xd3, 0x86, 0x79, 0x3c, 0xa1, 0xae,
+ 0xc4, 0xaf, 0xae, 0x9d, 0x83, 0xc0, 0xd1, 0x2b,
+ 0x2b, 0xda, 0x50, 0x8c, 0xea, 0x41, 0x97, 0x9b,
+ 0x0f, 0x15, 0xc2, 0xe2, 0x8f, 0x39, 0x0b, 0x92,
+ 0xdd, 0xde, 0x52, 0x62, 0x74, 0xdc, 0xda, 0x11,
+ 0x87, 0x4d, 0xa9, 0x4a, 0xc5, 0x2f, 0xae, 0xaf,
+ 0xc1, 0xc3, 0x05, 0xfa, 0x38, 0xcc, 0x5c, 0xb1,
+ 0x9f, 0xe0, 0x82, 0x90, 0xb3, 0xd5, 0xdc, 0xf4,
+ 0x55, 0xdb, 0xea, 0x94, 0x06, 0x7c, 0x2c, 0x82,
+ 0x78, 0xeb, 0xa5, 0x01, 0xf0, 0x3d, 0x4b, 0x87,
+ 0xdd, 0xd5, 0x91, 0x4f, 0xf3, 0xa7, 0xdf, 0xa1,
+ 0xd8, 0x31, 0xde, 0x05, 0x99, 0x67, 0x3d, 0xa4,
+ 0x6b, 0x19, 0xa3, 0xe8, 0x55, 0xb7, 0xf5, 0xc3,
+ 0x63, 0x5e, 0xd4, 0x38, 0xf9, 0x24, 0x64, 0x7d,
+ 0x17, 0xc1, 0x07, 0xbe, 0x39, 0x54, 0x1b, 0x44,
+ 0xe5, 0xc6, 0x3c, 0x02, 0xb1, 0x6f, 0xff, 0x8c,
+ 0xcb, 0x79, 0xe2, 0xec, 0x4d, 0x01, 0xfa, 0x7f,
+ 0x88, 0x1d, 0xc3, 0x4c, 0x6a, 0xfb, 0x0b, 0xc6,
+ 0x57, 0xc3, 0xd8, 0x24, 0x47, 0x41, 0xbd, 0x27,
+ 0xc4, 0xd4, 0x49, 0xfb, 0x52, 0xe6, 0x77, 0x5f,
+ 0x0a, 0xdf, 0xea, 0xd5, 0xd3, 0x22, 0xc3, 0x53,
+ 0x16, 0xf3, 0x1b, 0x7b, 0x09, 0xd7, 0x10, 0x0e,
+ 0x23, 0xae, 0x16, 0x8a, 0x93, 0xcb, 0xc9, 0xb7,
+ 0xb8, 0xff, 0xd2, 0x50, 0x1f, 0x25, 0xa7, 0x71,
+ 0x8f, 0x3f, 0xc0, 0xe1, 0x37, 0x10, 0x0b, 0x43,
+ 0x6e, 0x2b, 0x16, 0x59, 0x8f, 0x77, 0x77, 0x6b,
+ 0x77, 0xce, 0x76, 0x6b, 0x37, 0x81, 0xaf, 0x83,
+ 0x42, 0x92, 0x93, 0xe5, 0x39, 0xca, 0xd2, 0x20,
+ 0x2e, 0xcf, 0x24, 0x26, 0x4c, 0x51, 0x1c, 0x58,
+ 0xc5, 0x8d, 0x05, 0x11, 0xdf, 0xae, 0x51, 0x38,
+ 0xde, 0xab, 0x4e, 0x04, 0xc8, 0x24, 0x24, 0x0d,
+ 0xd5, 0x9c, 0x5b, 0x2b, 0xe6, 0x0d, 0x83, 0x95,
+ 0xcd, 0x1c, 0x89, 0xa1, 0xaf, 0x67, 0x47, 0xfb,
+ 0x08, 0x02, 0xf8, 0x8b, 0x63, 0x05, 0x73, 0x20,
+ 0x64, 0xd7, 0x52, 0x15, 0xa4, 0x5d, 0x63, 0x73,
+ 0x73, 0x12, 0x0b, 0xdd, 0xfe, 0x9f, 0xb7, 0xe8,
+ 0xa8, 0x94, 0x3a, 0x86, 0xff, 0xcf, 0x7d, 0x24,
+ 0xbd, 0xb9, 0xea, 0x68, 0x23, 0xf4, 0x07, 0xc3,
+ 0xfe, 0x63, 0xd0, 0xab, 0x65, 0x8a, 0xf0, 0x6d,
+ 0x81, 0x8c, 0xc8, 0x0e, 0xc6, 0x6b, 0xdd, 0x2e,
+ 0x65, 0x9b, 0x17, 0xcf, 0x82, 0x69, 0x46, 0xba,
+ 0x62, 0x5d, 0x31, 0x33, 0x60, 0x18, 0x94, 0xa5,
+ 0x77, 0x24, 0xc6, 0x45, 0xe5, 0xb3, 0xd5, 0x12,
+ 0x10, 0xc9, 0x22, 0x98, 0xf9, 0xca, 0x20, 0x89,
+ 0x79, 0x04, 0x08, 0xf5, 0x1c, 0xf8, 0x50, 0x8c,
+ 0x25, 0xaa, 0x90, 0x90, 0x44, 0xbc, 0xfb, 0x5d,
+ 0x3f, 0xf8, 0x38, 0x64, 0xca, 0x8d, 0xff, 0x17,
+ 0xce, 0x70, 0x51, 0x90, 0x75, 0x6b, 0x7d, 0x64,
+ 0x43, 0x56, 0xcd, 0xf8, 0x85, 0x93, 0x65, 0x09,
+ 0x81, 0x30, 0x76, 0x79, 0xcc, 0xdf, 0x9c, 0x6d,
+ 0xff, 0x89, 0x38, 0x60, 0xbf, 0x07, 0xcb, 0x2f,
+ 0xc9, 0x87, 0xd7, 0xac, 0x74, 0x19, 0x57, 0x90,
+ 0x5e, 0x69, 0x61, 0xf6, 0xca, 0xea, 0x45, 0x6b,
+ 0xe2, 0xfe, 0x2c, 0xff, 0x1b, 0x23, 0x15, 0x52,
+ 0xdd, 0x57, 0xfe, 0x1d, 0x10, 0xea, 0x0f, 0xce,
+ 0x98, 0xe7, 0x47, 0x27, 0xec, 0x36, 0xe5, 0x68,
+ 0x17, 0xcf, 0xdc, 0xb9, 0xef, 0x6a, 0xbc, 0xec,
+ 0x78, 0x08, 0x64, 0x06, 0xe1, 0x1c, 0xc6, 0x87,
+ 0xd6, 0x0a, 0xb1, 0x81, 0xc6, 0xb6, 0xf8, 0x8b,
+ 0xe3, 0x19, 0x8c, 0xce, 0x46, 0x40, 0xc5, 0xc2,
+ 0xae, 0x50, 0x26, 0x4a, 0x90, 0x91, 0x8d, 0xfe,
+ 0x6b, 0x7d, 0x0a, 0x54, 0x4a, 0x4b, 0x48, 0x74,
+ 0x4a, 0x37, 0x21, 0x7f, 0xdd, 0x87, 0xa3, 0x1e,
+ 0xac, 0xcd, 0xf5, 0x9e, 0x75, 0xa2, 0x52, 0x63,
+ 0x76, 0xca, 0x9e, 0x02, 0xeb, 0xe6, 0xa6, 0x73,
+ 0xad, 0xea, 0xe8, 0x3e, 0x6f, 0x44, 0xed, 0xe8,
+ 0x01, 0x29, 0x19, 0x6a, 0x20, 0x35, 0xa7, 0xf0,
+ 0xf1, 0xaf, 0xc0, 0x3b, 0xb1, 0xd5, 0xe4, 0xfb,
+ 0xf7, 0xd7, 0x2f, 0x33, 0x6c, 0x73, 0xfd, 0xe5,
+ 0x5c, 0x63, 0xf6, 0x1c, 0x06, 0x13, 0xaf, 0xc1,
+ 0x80, 0x55, 0x07, 0xae, 0x8c, 0x13, 0x74, 0xf6,
+ 0xe0, 0x54, 0x15, 0xd8, 0xe0, 0xa5, 0x03, 0xcf,
+ 0x22, 0xbe, 0x18, 0xef, 0x26, 0xad, 0x9c, 0x9d,
+ 0x51, 0xb1, 0x3b, 0x37, 0x03, 0xbf, 0xf0, 0xc5,
+ 0xcb, 0x6c, 0x5d, 0x30, 0xa9, 0x5a, 0x10, 0x90,
+ 0xfa, 0xb4, 0xd4, 0x0e, 0x6b, 0x4a, 0x0a, 0x6c,
+ 0x9d, 0x2e, 0x69, 0xe8, 0xec, 0x69, 0xe2, 0x50,
+ 0xab, 0x2f, 0xdc, 0xff, 0xaf, 0xac, 0x65, 0xe7,
+ 0xf0, 0xc1, 0x6f, 0x7c, 0x2d, 0xa1, 0xeb, 0x97,
+ 0x90, 0x7c, 0x1e, 0xa8, 0x53, 0x1b, 0x87, 0xc5,
+ 0xa9, 0xa1, 0xcf, 0x86, 0x7e, 0x11, 0xf8, 0xd6,
+ 0x14, 0xda, 0x19, 0x81, 0x19, 0xb4, 0x45, 0x1c,
+ 0x7c, 0xb9, 0x96, 0xa2, 0xac, 0x79, 0x24, 0x94,
+ 0x7c, 0xb2, 0x1e, 0x83, 0xea, 0xc4, 0xb9, 0xd2,
+ 0x0d, 0x4c, 0x55, 0x3d, 0x15, 0x7b, 0x65, 0xd8,
+ 0xff, 0x03, 0x5d, 0xed, 0x3c, 0x94, 0x76, 0x19,
+ 0x40, 0x3b, 0xcc, 0x45, 0xbe, 0x91, 0x19, 0x8c,
+ 0x75, 0xe5, 0xd2, 0xbe, 0x67, 0x40, 0xb1, 0x67,
+ 0x8e, 0x2a, 0x34, 0xd5, 0x99, 0xee, 0xd9, 0x4f,
+ 0x89, 0x7c, 0xf0, 0xd6, 0x93, 0x59, 0x4b, 0x3a,
+ 0x8d, 0xe6, 0xbd, 0xde, 0xce, 0xef, 0x8b, 0x3c,
+ 0xe3, 0xf7, 0x06, 0x33, 0x27, 0x8d, 0xd9, 0x22,
+ 0x1a, 0x65, 0x40, 0xfc, 0x69, 0x1b, 0x7d, 0xf0,
+ 0xed, 0xe4, 0xe0, 0x7f, 0x6d, 0x23, 0xed, 0x11,
+ 0xd1, 0x07, 0xb0, 0x2f, 0x8a, 0xbf, 0x51, 0x37,
+ 0x22, 0x04, 0xed, 0x93, 0xea, 0x1d, 0x0b, 0x30,
+ 0x15, 0x89, 0x22, 0x7a, 0x45, 0x56, 0x99, 0xc6,
+ 0xac, 0xd6, 0xce, 0x61, 0xea, 0xb2, 0x59, 0xe8,
+ 0xb5, 0xfc, 0x87, 0xa7, 0xfe, 0x09, 0xa2, 0x0d,
+ 0x5e, 0xbe, 0xb9, 0xd4, 0x9a, 0x1b, 0x60, 0xda,
+ 0xb9, 0x32, 0xf1, 0x30, 0x3e, 0xb2, 0x45, 0x6d,
+ 0x55, 0x0c, 0x2c, 0x4b, 0x9a, 0xc0, 0xbb, 0x8e,
+ 0xac, 0x9c, 0x95, 0x5f, 0x08, 0x88, 0xa0, 0x53,
+ 0x05, 0x75, 0x8d, 0x9e, 0x9d, 0x3f, 0x0f, 0xdd,
+ 0x50, 0x0d, 0xf8, 0x11, 0xbd, 0xf9, 0xfb, 0x22,
+ 0x5c, 0x7b, 0x9e, 0x7c, 0x8e, 0x2f, 0x0e, 0xdb,
+ 0xb8, 0x1d, 0x0c, 0x5e, 0x82, 0xf3, 0x8e, 0xec,
+ 0x32, 0x1c, 0x59, 0x73, 0xa5, 0xf3, 0x5b, 0x47,
+ 0x00, 0x64, 0x89, 0x68, 0x3b, 0xaf, 0xe8, 0xe2,
+ 0x9b, 0xa6, 0xac, 0x2c, 0xf9, 0x2b, 0x92, 0xf3,
+ 0xf0, 0x5b, 0xcc, 0x75, 0x22, 0xd5, 0xf4, 0x2b,
+ 0x06, 0x96, 0xc8, 0x50, 0xee, 0xac, 0x62, 0x16,
+ 0x45, 0x9e, 0xbc, 0xcc, 0x8f, 0x5a, 0x66, 0xc6,
+ 0x30, 0x7c, 0xe0, 0x22, 0xcc, 0xb9, 0xda, 0x0b,
+ 0x0a, 0xbd, 0x2a, 0x2e, 0x46, 0x7d, 0xb6, 0x86,
+ 0x70, 0xa3, 0x16, 0x49, 0x85, 0x28, 0x7b, 0xe9,
+ 0x00, 0x6b, 0xfa, 0x06, 0xb0, 0xeb, 0xbd, 0x67,
+ 0x28, 0x6f, 0x27, 0xd7, 0x9c, 0x7f, 0xda, 0xec,
+ 0xf4, 0x7e, 0x55, 0xe1, 0x0c, 0x29, 0x61, 0x7a,
+ 0xf5, 0xb6, 0xb8, 0xa5, 0xef, 0x36, 0x6a, 0xad,
+ 0x59, 0x22, 0xbd, 0x3d, 0xad, 0x86, 0xe7, 0x4c,
+ 0x69, 0x26, 0x0f, 0xbf, 0x67, 0xad, 0x65, 0x32,
+ 0xbd, 0x21, 0xd6, 0x59, 0x6b, 0xe3, 0xda, 0xc1,
+ 0x6f, 0x82, 0x41, 0x2c, 0xaa, 0xe4, 0x8c, 0xfc,
+ 0x7c, 0x61, 0x28, 0x51, 0x52, 0x3d, 0xf1, 0x84,
+ 0xb5, 0x0b, 0xfd, 0x1f, 0x2a, 0x06, 0x2e, 0x30,
+ 0xed, 0x63, 0x43, 0xc9, 0x83, 0x97, 0xb1, 0xd4,
+ 0x80, 0x6f, 0x2c, 0x50, 0xec, 0x20, 0x95, 0x42,
+ 0xa0, 0x34, 0x94, 0x1a, 0xa9, 0x5e, 0x5b, 0x59,
+ 0xe3, 0x39, 0xac, 0xbd, 0x2f, 0x77, 0x36, 0x59,
+ 0x9c, 0xc3, 0x3c, 0x66, 0x87, 0xf5, 0x81, 0x4b,
+ 0xb0, 0x10, 0x4a, 0xe6, 0x46, 0xe7, 0xce, 0x93,
+ 0x7b, 0x24, 0x6b, 0x2e, 0xc1, 0xe5, 0xaf, 0x4b,
+ 0x71, 0x22, 0xad, 0x88, 0xda, 0x55, 0xcb, 0xe0,
+ 0x73, 0xd1, 0x65, 0x7d, 0xa5, 0x7f, 0x36, 0xbc,
+ 0x42, 0xc2, 0x78, 0x9f, 0x88, 0xe8, 0xdb, 0xff,
+ 0x8a, 0x5a, 0x80, 0x34, 0x3a, 0x23, 0x4c, 0x8a,
+ 0x81, 0xff, 0xbd, 0xb7, 0x88, 0xd0, 0x73, 0x07,
+ 0x8a, 0x4e, 0xa7, 0x4a, 0x61, 0x0f, 0x1f, 0x1c,
+ 0xe7, 0x34, 0x37, 0x1c, 0x53, 0x90, 0x3b, 0xa4,
+ 0x32, 0x6c, 0x6d, 0xe8, 0x00, 0xde, 0xe0, 0x0c,
+ 0x5e, 0x06, 0xef, 0xb8, 0x48, 0x2e, 0xb3, 0xda,
+ 0xac, 0x92, 0x4d, 0x0d, 0x95, 0x75, 0x44, 0x01,
+ 0x6f, 0x97, 0xc3, 0x29, 0x76, 0x33, 0x36, 0x9a,
+ 0xae, 0xfb, 0x1b, 0x43, 0xe5, 0xb1, 0x54, 0x3a,
+ 0x9c, 0x76, 0x7f, 0x76, 0x83, 0xc9, 0x9c, 0xd6,
+ 0x56, 0x59, 0x83, 0xa9, 0xde, 0xd7, 0xb0, 0xf3,
+ 0x34, 0x11, 0x31, 0x06, 0x8e, 0xe9, 0xd4, 0x79,
+ 0xd5, 0x3d, 0x31, 0x6b, 0x59, 0xe9, 0x54, 0x69,
+ 0x12, 0xfd, 0x44, 0x59, 0x4e, 0x1b, 0x3b, 0xb4,
+ 0x12, 0xe9, 0xfb, 0xb0, 0xb4, 0x84, 0xb9, 0x7d,
+ 0xea, 0x4f, 0xd1, 0x5f, 0xd0, 0x3e, 0xce, 0xef,
+ 0x5c, 0xf7, 0xea, 0x55, 0xa0, 0x8f, 0xa8, 0xa7,
+ 0x98, 0xe7, 0xa1, 0x6b, 0x3f, 0xba, 0x5a, 0x32,
+ 0x4b, 0xfa, 0x31, 0xb6, 0x63, 0x86, 0x19, 0x00,
+ 0xa2, 0x6d, 0x7d, 0x15, 0x56, 0x05, 0x68, 0xa3,
+ 0xe0, 0xf3, 0xd4, 0x82, 0xcf, 0xeb, 0xd4, 0x1c,
+ 0xd0, 0xb6, 0x14, 0x5e, 0x9e, 0x6b, 0xed, 0x7a,
+ 0x02, 0x1a, 0xcd, 0x09, 0xdc, 0x26, 0x98, 0x50,
+ 0x11, 0x34, 0x39, 0x50, 0x5a, 0x70, 0x79, 0x85,
+ 0xca, 0xd2, 0xf2, 0x0c, 0x0d, 0x12, 0x1f, 0x2e,
+ 0x41, 0x46, 0x51, 0x72, 0x75, 0x78, 0x8c, 0xa4,
+ 0xaf, 0xba, 0xca, 0xd3, 0xdf, 0xea, 0xf8, 0x09,
+ 0x0b, 0x36, 0x45, 0x4f, 0x77, 0x83, 0xae, 0xbc,
+ 0xc5, 0xce, 0xe1, 0xf6, 0x1d, 0x1e, 0x38, 0x56,
+ 0x9c, 0x9f, 0xb1, 0xbd, 0xda, 0xe7, 0xf0, 0xf4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0b, 0x1f, 0x2c, 0x38,
+ },
+ },
diff --git a/crypto/ml_dsa/dilithium_selftest.c b/crypto/ml_dsa/dilithium_selftest.c
new file mode 100644
index 000000000000..546c62a7c173
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_selftest.c
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright (C) 2025 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/module.h>
+#include <crypto/sig.h>
+#include <kunit/test.h>
+#include "dilithium.h"
+
+MODULE_LICENSE("Dual BSD/GPL");
+MODULE_DESCRIPTION("Leancrypto ML-DSA/Dilithium tests");
+MODULE_AUTHOR("David Howells <dhowells@redhat.com>");
+
+struct dilithium_testvector {
+ u16 pk_len;
+ u16 sk_len;
+ u16 msg_len;
+ u16 sig_len;
+ const char *what;
+ const char *algo;
+ const u8 *pk;
+ const u8 *sk;
+ const u8 *sig;
+ const u8 *msg;
+};
+
+/*
+ * Use rejection test vector which will cover all rejection code paths
+ * as generated with the dilithium_edge_case_tester.
+ *
+ * For FIPS 140: The test vectors cover the requirements of IG 10.3.A.
+ */
+static const struct dilithium_testvector dilithium44_testvectors[] = {
+#include "dilithium_pure_rejection_vectors_44.h"
+};
+
+/*
+ * Allow kunit to free a crypto signature processing object.
+ */
+static void __kunit_crypto_free_sig(void *sig)
+{
+ crypto_free_sig(sig);
+}
+
+/*
+ * Allow kunit to allocate a crypto signature processing object.
+ */
+static struct crypto_sig *kunit_crypto_alloc_sig(struct kunit *test,
+ const char *alg_name,
+ u32 type, u32 mask)
+{
+ struct crypto_sig *sig;
+
+ sig = crypto_alloc_sig(alg_name, 0, 0);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, sig);
+
+ kunit_add_action_or_reset(test, __kunit_crypto_free_sig, sig);
+ return sig;
+}
+
+/*
+ * Force the freeing of a signature.
+ */
+static void kunit_crypto_free_sig(struct kunit *test, void *sig)
+{
+ kunit_release_action(test, __kunit_crypto_free_sig, sig);
+}
+
+/*
+ * Do a single signing test.
+ */
+static void dilithium_siggen_test_one(struct kunit *test, int index,
+ const struct dilithium_testvector *tc)
+{
+ struct crypto_sig *sig;
+ size_t bsize;
+ void *buf;
+ int ret;
+
+ sig = kunit_crypto_alloc_sig(test, tc->algo, 0, 0);
+ if (IS_ERR(sig))
+ return;
+
+ ret = crypto_sig_set_privkey(sig, tc->sk, tc->sk_len);
+ KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Can't set private key");
+
+ bsize = crypto_sig_maxsize(sig);
+ buf = kunit_kmalloc(test, bsize, GFP_KERNEL);
+ if (!buf)
+ goto out;
+
+ ret = crypto_sig_sign(sig, tc->msg, tc->msg_len, buf, bsize);
+ KUNIT_ASSERT_GT_MSG(test, ret, 0, "Signing failed");
+ KUNIT_ASSERT_EQ_MSG(test, ret, bsize, "Incorrect sig size");
+ KUNIT_ASSERT_MEMEQ_MSG(test, buf, tc->sig, ret,
+ "Different sig generated\n");
+
+ kunit_kfree(test, buf);
+out:
+ kunit_crypto_free_sig(test, sig);
+}
+
+static void dilithium_sigver_test_one(struct kunit *test, int index,
+ const struct dilithium_testvector *tc)
+{
+ struct crypto_sig *sig;
+ int ret;
+
+ sig = kunit_crypto_alloc_sig(test, tc->algo, 0, 0);
+ if (IS_ERR(sig))
+ return;
+
+ ret = crypto_sig_set_pubkey(sig, tc->pk, tc->pk_len);
+ KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Can't set public key");
+
+ ret = crypto_sig_verify(sig, tc->sig, tc->sig_len, tc->msg, tc->msg_len);
+ KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Verify failed");
+
+ kunit_crypto_free_sig(test, sig);
+}
+
+static void dilithium44_kunit_test(struct kunit *test)
+{
+ const struct dilithium_testvector *tc = dilithium44_testvectors;
+ int count = ARRAY_SIZE(dilithium44_testvectors);
+
+ for (int index = 0; index < count; index++) {
+ dilithium_siggen_test_one(test, index, &tc[index]);
+ dilithium_sigver_test_one(test, index, &tc[index]);
+ }
+
+ KUNIT_SUCCEED(test);
+}
+
+static struct kunit_case __refdata dilithium_kunit_cases[] = {
+ KUNIT_CASE(dilithium44_kunit_test),
+ {}
+};
+
+static struct kunit_suite dilithium_kunit_suite = {
+ .name = "ml-dsa",
+ .test_cases = dilithium_kunit_cases,
+};
+
+kunit_test_suites(&dilithium_kunit_suite);
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 13/17] crypto: Add ML-DSA-65 pure rejection test vectors as a kunit test
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (11 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 12/17] crypto: Add ML-DSA-44 pure rejection test vectors as a kunit test David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 14/17] crypto: Add ML-DSA-87 " David Howells
` (3 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add the "Pure rejection tests" from Stephan Mueller's Leancrypto
implementation of ML-DSA/Dilithium 65 to the kernel as a kunit test.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: linux-crypto@vger.kernel.org
---
.../dilithium_pure_rejection_vectors_65.h | 8290 +++++++++++++++++
crypto/ml_dsa/dilithium_selftest.c | 17 +
2 files changed, 8307 insertions(+)
create mode 100644 crypto/ml_dsa/dilithium_pure_rejection_vectors_65.h
diff --git a/crypto/ml_dsa/dilithium_pure_rejection_vectors_65.h b/crypto/ml_dsa/dilithium_pure_rejection_vectors_65.h
new file mode 100644
index 000000000000..0eafa7e208ab
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_pure_rejection_vectors_65.h
@@ -0,0 +1,8290 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+ {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0x9f, 0x55, 0x1e, 0x7f, 0x9c, 0x08, 0xb2, 0x83,
+ 0xfd, 0x5b, 0xa2, 0xac, 0x4f, 0x26, 0xc2, 0xf5,
+ 0x06, 0x05, 0x96, 0x08, 0x24, 0xad, 0xec, 0xe4,
+ 0x99, 0xcc, 0x6c, 0xbd, 0x55, 0x37, 0x15, 0x94,
+ 0xab, 0x31, 0x9e, 0x56, 0xe5, 0xe4, 0x55, 0xec,
+ 0x4d, 0x49, 0x5b, 0x5a, 0x7a, 0xe8, 0xc3, 0x4a,
+ 0x08, 0x44, 0x4a, 0xc2, 0x2d, 0xe4, 0x61, 0x33,
+ 0x90, 0x20, 0x71, 0x45, 0xa5, 0x45, 0xd0, 0x83,
+ 0x2b, 0x32, 0x6c, 0xa7, 0x9e, 0x76, 0xcd, 0xfb,
+ 0x58, 0x15, 0x9e, 0x74, 0x0d, 0x67, 0x57, 0xb1,
+ 0x06, 0x5b, 0x5d, 0xd5, 0x1c, 0xbb, 0x95, 0x40,
+ 0x1c, 0x71, 0x31, 0x03, 0xef, 0xff, 0x04, 0x6b,
+ 0xdd, 0xa2, 0xf0, 0x32, 0x00, 0x72, 0xbc, 0x87,
+ 0xb6, 0x2c, 0x1f, 0x90, 0x7f, 0x92, 0xa0, 0xb2,
+ 0x04, 0xdd, 0xa9, 0xaf, 0x7f, 0x01, 0x28, 0x4c,
+ 0xb2, 0x57, 0x2d, 0x56, 0x93, 0xd0, 0xc7, 0x54,
+ 0x02, 0x90, 0x57, 0x70, 0x23, 0x57, 0xe8, 0xe7,
+ 0x33, 0x32, 0x98, 0xfc, 0x9b, 0x8e, 0x6e, 0x7b,
+ 0xaa, 0x5d, 0xb5, 0x4e, 0xe0, 0x5d, 0x97, 0xa3,
+ 0xea, 0x43, 0x7e, 0xb3, 0xa4, 0x8c, 0xcf, 0xdc,
+ 0xc0, 0x51, 0xa7, 0x99, 0x45, 0x3d, 0x3c, 0xa0,
+ 0xba, 0xc5, 0xff, 0xe1, 0x89, 0xb3, 0x7d, 0xc3,
+ 0xdc, 0xe2, 0x23, 0x81, 0xff, 0xa9, 0xc7, 0x93,
+ 0xc6, 0x67, 0xad, 0x94, 0xcf, 0xeb, 0x91, 0x78,
+ 0x15, 0x25, 0xf7, 0xf5, 0x06, 0x08, 0x2f, 0x0c,
+ 0xee, 0x0b, 0x6a, 0x06, 0x59, 0xe0, 0x1f, 0x2e,
+ 0x5a, 0x12, 0x06, 0xf5, 0xf4, 0x8e, 0x75, 0x57,
+ 0xa9, 0x33, 0x23, 0x0f, 0xc2, 0x6f, 0x02, 0xf8,
+ 0x68, 0x0f, 0x62, 0x02, 0x81, 0xfe, 0x03, 0x7c,
+ 0xaf, 0xd7, 0x42, 0x5b, 0xcc, 0xe7, 0x2b, 0xea,
+ 0x49, 0xab, 0x03, 0x6d, 0x0a, 0x02, 0xae, 0x47,
+ 0x79, 0xce, 0xfd, 0x18, 0x76, 0x07, 0x9e, 0xa6,
+ 0xbf, 0x7e, 0x8d, 0x73, 0xf9, 0x44, 0xeb, 0x8c,
+ 0xc5, 0x59, 0xb7, 0x19, 0xf6, 0x73, 0x53, 0x42,
+ 0x2a, 0x55, 0x7b, 0xb4, 0x56, 0x49, 0x08, 0x9e,
+ 0x9a, 0x65, 0x60, 0x70, 0x1d, 0xbd, 0xc6, 0x85,
+ 0x29, 0xde, 0xfe, 0x44, 0xae, 0xdf, 0x25, 0xfd,
+ 0x5b, 0x74, 0x6c, 0x96, 0xe6, 0x81, 0x37, 0x80,
+ 0xe0, 0x9e, 0xf3, 0x75, 0x63, 0xb4, 0xc9, 0x2f,
+ 0x71, 0xe6, 0xeb, 0xdf, 0xaf, 0x7e, 0xff, 0x9e,
+ 0xe0, 0xbf, 0xca, 0xca, 0x11, 0xed, 0xc6, 0x04,
+ 0xd8, 0x49, 0x13, 0x2c, 0x63, 0xf1, 0xb3, 0x17,
+ 0x74, 0xd9, 0x50, 0x3f, 0xb9, 0x29, 0x0e, 0x48,
+ 0xa7, 0xf0, 0xdc, 0x78, 0x18, 0x0e, 0x9f, 0xb7,
+ 0xde, 0x36, 0x79, 0x67, 0xa4, 0x23, 0x08, 0xe7,
+ 0x62, 0xe8, 0xa4, 0xe5, 0xcf, 0xff, 0x35, 0x55,
+ 0x36, 0x2e, 0x3a, 0xe4, 0x45, 0x6a, 0x80, 0xf2,
+ 0xca, 0xe7, 0x40, 0x79, 0x14, 0xc4, 0x62, 0x38,
+ 0xbb, 0xd0, 0x4e, 0x6c, 0xb5, 0x85, 0x42, 0x3f,
+ 0x35, 0xf7, 0xd7, 0x54, 0xb8, 0x2b, 0x8b, 0xd5,
+ 0x6f, 0x16, 0x61, 0x27, 0x23, 0xac, 0xdb, 0xea,
+ 0x9b, 0x3b, 0x99, 0xcd, 0x79, 0xe6, 0x12, 0x09,
+ 0x99, 0x09, 0xa4, 0xe1, 0x88, 0x25, 0x00, 0x9e,
+ 0x60, 0x16, 0x63, 0xd7, 0x42, 0x9b, 0xcc, 0x36,
+ 0x9a, 0x8d, 0xa3, 0x75, 0x36, 0xa1, 0xa8, 0xfc,
+ 0xa2, 0xfe, 0x29, 0x26, 0x4c, 0x93, 0x21, 0x44,
+ 0x6b, 0x1c, 0xba, 0xbd, 0xef, 0xff, 0x6d, 0x1f,
+ 0x2b, 0x6c, 0x66, 0x81, 0x9a, 0x3a, 0x1d, 0x0b,
+ 0xd7, 0x24, 0xd4, 0xb8, 0x93, 0xb5, 0x22, 0xf9,
+ 0xd2, 0xf4, 0xa5, 0x05, 0x78, 0x38, 0xae, 0x58,
+ 0xf6, 0x50, 0x8f, 0x47, 0x1d, 0xf3, 0xfb, 0x0d,
+ 0x04, 0x14, 0xd1, 0xd6, 0xd8, 0x2e, 0xf2, 0xbd,
+ 0xf5, 0x71, 0x86, 0x4c, 0xdd, 0x61, 0x24, 0x18,
+ 0x5b, 0x54, 0xf5, 0xcd, 0x99, 0x89, 0x01, 0x8e,
+ 0xd1, 0x19, 0x52, 0xbc, 0x45, 0xed, 0x0e, 0xec,
+ 0x72, 0x2f, 0x5a, 0xe7, 0xdf, 0x36, 0x1c, 0x57,
+ 0x9f, 0xb2, 0x8b, 0xf2, 0x78, 0x1b, 0x3e, 0xc5,
+ 0x48, 0x1f, 0x27, 0x04, 0x76, 0x10, 0x44, 0xee,
+ 0x5c, 0x68, 0x8f, 0xca, 0xd7, 0x31, 0xfc, 0x5c,
+ 0x40, 0x03, 0x2e, 0xbd, 0x1d, 0x59, 0x13, 0x57,
+ 0xbc, 0x33, 0xc6, 0xa1, 0xa3, 0xe5, 0x55, 0x79,
+ 0x9b, 0x7e, 0x49, 0xbb, 0x23, 0x96, 0xc3, 0x1c,
+ 0xfe, 0x66, 0xeb, 0x5b, 0x5f, 0xe5, 0x03, 0xc9,
+ 0xa4, 0xac, 0x4d, 0xc4, 0x50, 0xbb, 0xd3, 0xc1,
+ 0x91, 0x48, 0xe0, 0x93, 0x92, 0x2a, 0xdb, 0x41,
+ 0x37, 0x98, 0xbc, 0xa2, 0x7a, 0x09, 0x92, 0x0b,
+ 0x1c, 0xe6, 0x4b, 0x1e, 0x8e, 0x78, 0x81, 0x74,
+ 0x7d, 0x6b, 0x71, 0xd5, 0xe7, 0x0e, 0x7b, 0xc2,
+ 0x74, 0x5d, 0x89, 0xf1, 0xfa, 0x59, 0xaa, 0xf7,
+ 0x86, 0x66, 0x7e, 0xc2, 0x9c, 0xf4, 0xd5, 0x8d,
+ 0xc0, 0xb7, 0xb7, 0xa2, 0xd5, 0xcd, 0x51, 0xc3,
+ 0x7d, 0xa9, 0x5e, 0x46, 0xba, 0x06, 0xa3, 0x4d,
+ 0x60, 0xd6, 0x68, 0xc6, 0xf9, 0x63, 0x88, 0x17,
+ 0x5c, 0x20, 0xe1, 0xc4, 0x0f, 0x3f, 0xc1, 0xa9,
+ 0xa7, 0x3e, 0x39, 0xef, 0x2f, 0xaf, 0xc4, 0x69,
+ 0x29, 0xe3, 0xd4, 0x8d, 0xe0, 0x0e, 0x88, 0xc2,
+ 0x93, 0x43, 0xfb, 0x28, 0xcf, 0x5d, 0x85, 0x50,
+ 0xf7, 0xeb, 0x42, 0xf5, 0x87, 0xde, 0xa5, 0x65,
+ 0xef, 0x43, 0x0c, 0x57, 0x76, 0x09, 0xf4, 0x5f,
+ 0xde, 0x81, 0x0a, 0xd9, 0x59, 0x41, 0xa4, 0x6a,
+ 0xb7, 0x05, 0xc7, 0xa5, 0xfe, 0x49, 0xd5, 0x9b,
+ 0x57, 0x13, 0x14, 0x66, 0xe2, 0xb9, 0xcc, 0x09,
+ 0x35, 0xd4, 0xb0, 0xe0, 0xd1, 0x0d, 0x7e, 0x50,
+ 0x48, 0x45, 0x21, 0x00, 0x67, 0xb2, 0xad, 0xa7,
+ 0x46, 0xe2, 0x6f, 0x70, 0xe5, 0x3c, 0x88, 0x04,
+ 0xaa, 0x21, 0xde, 0x03, 0xb6, 0x6f, 0xfe, 0x43,
+ 0x51, 0xdc, 0x2e, 0x5c, 0x6c, 0x77, 0x8f, 0x8e,
+ 0x9d, 0x1a, 0x5b, 0x35, 0xc5, 0xe4, 0x48, 0x82,
+ 0x17, 0x4b, 0xf0, 0xea, 0xc9, 0x0e, 0xd2, 0x8f,
+ 0xcd, 0xd5, 0x01, 0xbd, 0x7f, 0x0f, 0xf5, 0xae,
+ 0x92, 0x28, 0x1e, 0x2c, 0xf4, 0xe9, 0x03, 0xf7,
+ 0x0a, 0xeb, 0x84, 0x18, 0xa1, 0x37, 0x38, 0x8a,
+ 0x11, 0xa2, 0x5d, 0x8c, 0xf6, 0xe4, 0x3f, 0x5b,
+ 0x87, 0x07, 0x6b, 0xb4, 0x07, 0xe0, 0x8f, 0x30,
+ 0xc4, 0xfa, 0x27, 0xae, 0xfc, 0x02, 0xd1, 0x21,
+ 0x5c, 0xbc, 0x0b, 0x93, 0x6e, 0x7e, 0xf9, 0x6b,
+ 0x80, 0x7a, 0x25, 0x84, 0x20, 0xf1, 0x6a, 0xfa,
+ 0x75, 0xed, 0x57, 0x61, 0x62, 0xa7, 0xf6, 0x5b,
+ 0xe1, 0xb0, 0x38, 0xc8, 0xe9, 0x6d, 0x3f, 0xef,
+ 0x1e, 0x99, 0x0b, 0xb7, 0xc8, 0x9f, 0x76, 0x5c,
+ 0x04, 0x1f, 0x02, 0x92, 0x00, 0xa7, 0x38, 0x3d,
+ 0x00, 0x3b, 0xa7, 0xbc, 0x39, 0x6e, 0xab, 0xf5,
+ 0x10, 0xa8, 0xba, 0xd6, 0x28, 0x6b, 0x0e, 0x00,
+ 0x48, 0xf9, 0x3b, 0x5c, 0xde, 0x59, 0x93, 0x46,
+ 0xd6, 0x61, 0x52, 0x81, 0x71, 0x0f, 0x0e, 0x61,
+ 0xac, 0xc6, 0x7f, 0x15, 0x93, 0xa7, 0xc1, 0x16,
+ 0xb5, 0xef, 0x85, 0xd1, 0xa7, 0x61, 0xc2, 0x85,
+ 0x1d, 0x61, 0xc6, 0xae, 0xb3, 0x9e, 0x8d, 0x23,
+ 0xa3, 0xc8, 0xd5, 0xf2, 0xc7, 0x1b, 0x7e, 0xef,
+ 0xd2, 0xdf, 0x25, 0xaf, 0x4e, 0x81, 0x15, 0x59,
+ 0xe5, 0x36, 0xb1, 0xf1, 0xd5, 0xda, 0x58, 0xd8,
+ 0xd9, 0x0d, 0x6d, 0xc9, 0x25, 0xb5, 0xe8, 0x1d,
+ 0x3b, 0xca, 0x2d, 0xab, 0xf2, 0xe2, 0xe9, 0x55,
+ 0xd7, 0xf4, 0xc7, 0xd0, 0x57, 0x7a, 0x86, 0x15,
+ 0x0a, 0x5a, 0x8b, 0xd7, 0x3f, 0x66, 0x0f, 0x80,
+ 0xb4, 0xe0, 0x5c, 0x33, 0xed, 0xaf, 0x1b, 0x3b,
+ 0x6d, 0x1c, 0xd9, 0x8c, 0xb5, 0x96, 0xa3, 0xfb,
+ 0xcf, 0xcc, 0x97, 0x1c, 0xae, 0x06, 0x19, 0x41,
+ 0x61, 0xf8, 0x97, 0x6b, 0x82, 0x5e, 0x1c, 0xbf,
+ 0x6f, 0x43, 0x3d, 0xe5, 0x00, 0xf5, 0xfe, 0x66,
+ 0x48, 0x26, 0x31, 0xa1, 0x72, 0x67, 0x6e, 0xd4,
+ 0x5b, 0x6f, 0x66, 0xde, 0x70, 0x8b, 0x2b, 0xc3,
+ 0xa2, 0x30, 0xe9, 0x55, 0xc8, 0xff, 0xf8, 0xd0,
+ 0xdd, 0xa9, 0x21, 0x85, 0x6e, 0x6c, 0x82, 0x66,
+ 0xcc, 0x52, 0xf0, 0x9e, 0x1e, 0xb5, 0x3a, 0xff,
+ 0x4c, 0xf3, 0xae, 0x02, 0xc3, 0x4b, 0x76, 0x25,
+ 0xbd, 0xb0, 0x21, 0x54, 0x61, 0xda, 0x16, 0xd3,
+ 0x23, 0x86, 0x41, 0xa1, 0x4c, 0x59, 0x15, 0x95,
+ 0x65, 0x85, 0xb6, 0x8e, 0xa6, 0x37, 0xc0, 0xa2,
+ 0x71, 0x1d, 0x67, 0x44, 0x7b, 0xe5, 0x4c, 0x4f,
+ 0xb6, 0x2c, 0x46, 0xf7, 0x29, 0xa5, 0xf2, 0xd3,
+ 0x51, 0x19, 0x91, 0x4d, 0xa7, 0xb5, 0x05, 0xb9,
+ 0x6e, 0x61, 0x6e, 0xf8, 0xc0, 0x01, 0xe5, 0x41,
+ 0x0a, 0x89, 0x64, 0x77, 0xf2, 0xc8, 0x63, 0x2d,
+ 0x9d, 0x27, 0x7f, 0x47, 0x30, 0x39, 0xdf, 0xb6,
+ 0x6e, 0x4f, 0x00, 0x3f, 0x15, 0xc6, 0xaf, 0x62,
+ 0xdf, 0x3f, 0x47, 0xe8, 0x42, 0x90, 0x77, 0x23,
+ 0x7a, 0xaa, 0x99, 0x53, 0x03, 0x63, 0x60, 0x59,
+ 0x07, 0x52, 0x3c, 0xb5, 0x67, 0x59, 0xfe, 0x08,
+ 0xe6, 0x43, 0x0f, 0x3b, 0x08, 0x7c, 0xc7, 0x07,
+ 0x3c, 0xfa, 0x65, 0xea, 0x69, 0x51, 0x41, 0x31,
+ 0xb3, 0x05, 0x69, 0xba, 0x2c, 0xbf, 0x89, 0x25,
+ 0x9e, 0xfe, 0x07, 0x13, 0x78, 0x0e, 0x16, 0x54,
+ 0xdf, 0x23, 0xdf, 0x10, 0x69, 0x79, 0xd0, 0x33,
+ 0xd7, 0x21, 0x8b, 0xc8, 0x2a, 0xd0, 0x74, 0x0a,
+ 0xfa, 0xb1, 0x6f, 0xa3, 0xcb, 0x1d, 0xca, 0x4f,
+ 0x00, 0x46, 0x6c, 0x42, 0x09, 0xe0, 0x30, 0x89,
+ 0x08, 0x33, 0x9b, 0x7b, 0x7b, 0x0f, 0x69, 0x5c,
+ 0x0d, 0x34, 0x91, 0xfc, 0xfe, 0x22, 0x82, 0x02,
+ 0xcd, 0xfa, 0x97, 0xe8, 0x28, 0x1d, 0xbc, 0x13,
+ 0x0b, 0xfd, 0x47, 0xa1, 0x7e, 0xa2, 0x86, 0x4d,
+ 0x6f, 0x12, 0x51, 0x35, 0x7d, 0x76, 0x8a, 0x58,
+ 0x05, 0xb6, 0x39, 0xa1, 0x2f, 0xd7, 0xda, 0xaf,
+ 0x00, 0xa0, 0x1a, 0x94, 0xd8, 0x23, 0x34, 0x99,
+ 0x5c, 0xaf, 0xcc, 0x15, 0x4b, 0x56, 0xb2, 0xd2,
+ 0x81, 0x07, 0xd3, 0xf3, 0x47, 0xa2, 0x45, 0x93,
+ 0xcb, 0xae, 0xa7, 0x6b, 0x3f, 0xf9, 0xea, 0xfc,
+ 0x0e, 0x64, 0xf2, 0x93, 0x7f, 0x24, 0x22, 0x73,
+ 0x86, 0xc7, 0x2d, 0x75, 0x9b, 0x41, 0x8b, 0xfb,
+ 0x3b, 0x26, 0x2a, 0xe5, 0x0b, 0xd4, 0x00, 0xe3,
+ 0x2c, 0x69, 0x49, 0x62, 0x6c, 0x13, 0x58, 0x6e,
+ 0xac, 0x43, 0xe5, 0x2b, 0x3b, 0x88, 0xdc, 0xd4,
+ 0x41, 0xe8, 0xee, 0x4e, 0xc3, 0x28, 0x91, 0x17,
+ 0x9a, 0x5a, 0xdb, 0x80, 0x8b, 0x4d, 0x64, 0xcc,
+ 0xbe, 0x66, 0xa4, 0x62, 0xfb, 0x13, 0x44, 0x10,
+ 0xd9, 0xe4, 0xd5, 0xa5, 0xae, 0x9e, 0x42, 0x50,
+ 0xfc, 0x78, 0xad, 0xfa, 0xc4, 0xd0, 0x5a, 0x60,
+ 0x9b, 0x45, 0x2b, 0x61, 0x5c, 0x57, 0xb5, 0x92,
+ 0x28, 0xe9, 0xf5, 0x35, 0x67, 0xc1, 0x5e, 0xa8,
+ 0x1c, 0x99, 0x36, 0x38, 0xb8, 0x5c, 0xff, 0x3d,
+ 0xa0, 0xfc, 0xb0, 0xbc, 0x3d, 0x2c, 0xb4, 0x36,
+ 0x17, 0xb4, 0x6d, 0xb5, 0x39, 0x45, 0xa9, 0x2a,
+ 0x6b, 0xa2, 0x24, 0x44, 0x30, 0xab, 0x2c, 0x82,
+ 0x36, 0xdc, 0xd6, 0x36, 0x5d, 0x0a, 0xdc, 0xee,
+ 0x0f, 0x2b, 0x28, 0x99, 0xdc, 0x67, 0x0d, 0xea,
+ 0x6e, 0x42, 0xb9, 0x45, 0x7f, 0xd2, 0x96, 0x1e,
+ 0x60, 0x42, 0xeb, 0x1e, 0x5f, 0x8e, 0xa9, 0xdc,
+ 0xd3, 0x8a, 0xd6, 0xbd, 0x4e, 0x1f, 0x42, 0x75,
+ 0x1d, 0xe2, 0xc6, 0x11, 0xc9, 0x80, 0x1f, 0xfe,
+ 0x99, 0x52, 0x4d, 0x7b, 0x35, 0xf7, 0xb7, 0xc3,
+ 0xee, 0xd6, 0x94, 0xf5, 0x74, 0xa0, 0x69, 0xcd,
+ 0x1f, 0x2b, 0xd0, 0x87, 0xf7, 0x8c, 0x69, 0xc5,
+ 0x96, 0x70, 0x91, 0xe8, 0x3d, 0xd2, 0xcc, 0xf1,
+ 0x4c, 0xcd, 0xe2, 0x14, 0x00, 0x10, 0x4a, 0xd9,
+ 0x6a, 0x5d, 0x65, 0x2c, 0x4b, 0x79, 0x0c, 0xc4,
+ 0x78, 0x5e, 0xc8, 0xc5, 0x37, 0x74, 0x6d, 0x50,
+ 0x5c, 0x34, 0x1f, 0xe0, 0xf4, 0xe3, 0xe1, 0x86,
+ 0x68, 0xb1, 0xea, 0x70, 0xf0, 0xae, 0xe4, 0x59,
+ 0xa1, 0x08, 0x7e, 0x35, 0xa3, 0x16, 0xd2, 0xb0,
+ 0xa3, 0xd4, 0xb0, 0x74, 0x8c, 0x05, 0x79, 0x73,
+ 0xfb, 0xe6, 0x65, 0x96, 0x15, 0x07, 0xd5, 0xaf,
+ 0x88, 0x9e, 0x6b, 0xf0, 0xbb, 0x3f, 0xe6, 0xd1,
+ 0x6a, 0xe7, 0xc9, 0xae, 0xd9, 0xb0, 0x16, 0x1c,
+ 0x40, 0xeb, 0xdb, 0xc1, 0xbf, 0x83, 0xdb, 0x8a,
+ 0x4f, 0x96, 0xca, 0xd7, 0x22, 0x06, 0x87, 0x08,
+ 0x9d, 0x65, 0x2f, 0xd9, 0x8e, 0x95, 0x6c, 0xcc,
+ 0xbf, 0x76, 0x2a, 0xea, 0x5c, 0x8e, 0x5b, 0x17,
+ 0x0f, 0x75, 0x7b, 0xfa, 0xf9, 0xfb, 0xaa, 0x92,
+ 0xc7, 0x7e, 0x63, 0x63, 0x54, 0xa4, 0xff, 0xf6,
+ 0xc0, 0xc0, 0xf5, 0x70, 0xd8, 0xe3, 0xa4, 0x79,
+ 0x16, 0xf0, 0x6f, 0x90, 0x5e, 0xb7, 0xab, 0x6f,
+ 0xab, 0x75, 0x3b, 0xe1, 0x4c, 0xa8, 0x0b, 0x72,
+ 0x5f, 0x5f, 0x11, 0x22, 0x36, 0x71, 0x20, 0xd3,
+ 0x5b, 0x5e, 0x07, 0x06, 0x76, 0x1a, 0xcc, 0x5e,
+ 0x7c, 0x97, 0x7d, 0xb2, 0x6b, 0xf8, 0x39, 0x89,
+ 0x37, 0xb6, 0x6d, 0xea, 0x74, 0x57, 0x28, 0xd7,
+ 0x0e, 0x9b, 0xeb, 0x28, 0x88, 0x90, 0xfd, 0x2d,
+ 0x16, 0x21, 0x74, 0x26, 0xc5, 0xb8, 0x44, 0xad,
+ 0x9f, 0x97, 0xf9, 0x65, 0x36, 0xd8, 0x00, 0x59,
+ 0x17, 0x49, 0xf9, 0xc7, 0xb3, 0x84, 0xb9, 0xe2,
+ 0x95, 0xe0, 0xd1, 0x7f, 0x5f, 0xaa, 0xd7, 0xfd,
+ 0x6a, 0x6a, 0x83, 0x14, 0x46, 0x1d, 0x12, 0x8d,
+ 0x09, 0xc3, 0xa5, 0xca, 0x72, 0xa3, 0x25, 0x65,
+ 0xb6, 0x40, 0x25, 0x04, 0x51, 0xab, 0x22, 0xeb,
+ 0xd7, 0x69, 0xc9, 0x22, 0x9c, 0xa0, 0x19, 0x5c,
+ 0x1a, 0xfd, 0x41, 0x8f, 0x98, 0xc5, 0x71, 0xb8,
+ 0x6f, 0x76, 0xae, 0xfa, 0x9b, 0x03, 0xab, 0x43,
+ 0x81, 0x3b, 0x66, 0xae, 0xf0, 0xd2, 0xb7, 0xee,
+ 0x9a, 0xe3, 0xae, 0x45, 0xc1, 0x86, 0xb0, 0xce,
+ 0x9e, 0x2b, 0xec, 0xb8, 0xcf, 0xca, 0x0e, 0x8c,
+ 0x33, 0xfa, 0xa7, 0xef, 0xf7, 0xfc, 0xa1, 0x41,
+ 0x49, 0xd3, 0x6d, 0xb5, 0x58, 0xe4, 0x0e, 0x24,
+ 0xd2, 0x8a, 0x74, 0xc9, 0x56, 0x2e, 0x53, 0xc7,
+ 0x7a, 0x38, 0x0f, 0x4b, 0xd9, 0xf9, 0x2f, 0xfa,
+ 0x7d, 0xee, 0x14, 0x18, 0xce, 0x75, 0x42, 0x6c,
+ 0x03, 0x34, 0xce, 0x80, 0xec, 0xf2, 0x05, 0xf0,
+ 0xdf, 0xcd, 0xf8, 0xdb, 0x26, 0x7d, 0xb6, 0x3d,
+ 0x28, 0x24, 0x7e, 0x7e, 0x39, 0x9f, 0xa6, 0xc6,
+ 0xeb, 0x2a, 0xc8, 0x17, 0x94, 0xa9, 0x89, 0xf5,
+ 0xdf, 0xcb, 0x77, 0xfd, 0xc9, 0x9e, 0x68, 0x98,
+ 0x7d, 0x04, 0x50, 0x3c, 0x64, 0x1d, 0x66, 0xb0,
+ 0x97, 0x06, 0xb6, 0x08, 0x5b, 0xe4, 0x17, 0x44,
+ 0xd6, 0x94, 0x39, 0x6b, 0x03, 0x2c, 0xcb, 0x5a,
+ 0x8d, 0x86, 0x08, 0x23, 0x4f, 0x95, 0xa8, 0x1a,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0x9f, 0x55, 0x1e, 0x7f, 0x9c, 0x08, 0xb2, 0x83,
+ 0xfd, 0x5b, 0xa2, 0xac, 0x4f, 0x26, 0xc2, 0xf5,
+ 0x06, 0x05, 0x96, 0x08, 0x24, 0xad, 0xec, 0xe4,
+ 0x99, 0xcc, 0x6c, 0xbd, 0x55, 0x37, 0x15, 0x94,
+ 0x6c, 0x00, 0xc9, 0xf6, 0x49, 0xbe, 0x02, 0xae,
+ 0xd0, 0x56, 0xd7, 0x61, 0x7c, 0x3a, 0x2a, 0x3d,
+ 0x13, 0xf2, 0x3e, 0x9b, 0x69, 0x6d, 0xfc, 0x11,
+ 0x4c, 0xb8, 0x58, 0x45, 0x8f, 0xeb, 0x20, 0x0e,
+ 0x77, 0x0a, 0xd1, 0x62, 0x67, 0xf9, 0x92, 0xac,
+ 0x1e, 0xc6, 0xe7, 0xe7, 0x2f, 0xa7, 0x3b, 0x2a,
+ 0x26, 0x6e, 0x46, 0x1b, 0x64, 0x19, 0x08, 0xd1,
+ 0x67, 0xa2, 0x41, 0x79, 0x16, 0x62, 0x53, 0xe3,
+ 0x17, 0x17, 0x29, 0xf3, 0x4e, 0x3c, 0x29, 0xc8,
+ 0x8d, 0x51, 0x67, 0xec, 0xe0, 0x3d, 0x0b, 0x81,
+ 0x79, 0x66, 0xbc, 0xfb, 0x08, 0x23, 0x7a, 0xe2,
+ 0xec, 0xbb, 0xe3, 0x80, 0x81, 0x3a, 0x88, 0xc7,
+ 0x70, 0x00, 0x33, 0x84, 0x60, 0x20, 0x02, 0x04,
+ 0x25, 0x06, 0x71, 0x41, 0x08, 0x52, 0x74, 0x46,
+ 0x78, 0x42, 0x46, 0x88, 0x20, 0x83, 0x32, 0x04,
+ 0x05, 0x87, 0x40, 0x65, 0x52, 0x71, 0x72, 0x45,
+ 0x81, 0x31, 0x87, 0x71, 0x40, 0x81, 0x81, 0x54,
+ 0x06, 0x13, 0x42, 0x32, 0x88, 0x12, 0x86, 0x38,
+ 0x73, 0x54, 0x21, 0x04, 0x78, 0x34, 0x42, 0x37,
+ 0x42, 0x76, 0x28, 0x03, 0x03, 0x80, 0x01, 0x60,
+ 0x52, 0x06, 0x01, 0x03, 0x75, 0x30, 0x77, 0x38,
+ 0x35, 0x87, 0x57, 0x60, 0x83, 0x08, 0x44, 0x73,
+ 0x21, 0x38, 0x66, 0x40, 0x85, 0x74, 0x71, 0x27,
+ 0x53, 0x73, 0x31, 0x84, 0x13, 0x16, 0x44, 0x64,
+ 0x36, 0x73, 0x46, 0x76, 0x25, 0x05, 0x06, 0x11,
+ 0x23, 0x77, 0x40, 0x76, 0x51, 0x01, 0x86, 0x70,
+ 0x65, 0x84, 0x66, 0x51, 0x55, 0x72, 0x06, 0x38,
+ 0x16, 0x03, 0x30, 0x65, 0x43, 0x83, 0x83, 0x34,
+ 0x04, 0x67, 0x87, 0x06, 0x07, 0x53, 0x32, 0x01,
+ 0x84, 0x00, 0x12, 0x87, 0x03, 0x73, 0x62, 0x12,
+ 0x16, 0x22, 0x80, 0x28, 0x87, 0x27, 0x42, 0x00,
+ 0x15, 0x73, 0x86, 0x11, 0x07, 0x38, 0x16, 0x13,
+ 0x08, 0x41, 0x26, 0x21, 0x01, 0x82, 0x74, 0x26,
+ 0x52, 0x01, 0x07, 0x02, 0x81, 0x14, 0x34, 0x01,
+ 0x04, 0x27, 0x13, 0x34, 0x30, 0x23, 0x16, 0x72,
+ 0x88, 0x23, 0x32, 0x04, 0x36, 0x73, 0x63, 0x56,
+ 0x47, 0x03, 0x43, 0x46, 0x08, 0x65, 0x05, 0x33,
+ 0x62, 0x26, 0x82, 0x31, 0x31, 0x56, 0x64, 0x74,
+ 0x30, 0x82, 0x86, 0x72, 0x04, 0x06, 0x77, 0x60,
+ 0x11, 0x70, 0x83, 0x40, 0x14, 0x56, 0x71, 0x83,
+ 0x37, 0x00, 0x18, 0x38, 0x74, 0x07, 0x21, 0x44,
+ 0x14, 0x50, 0x30, 0x44, 0x43, 0x75, 0x43, 0x51,
+ 0x62, 0x00, 0x34, 0x63, 0x24, 0x71, 0x00, 0x26,
+ 0x47, 0x45, 0x22, 0x14, 0x31, 0x12, 0x02, 0x55,
+ 0x13, 0x52, 0x48, 0x62, 0x45, 0x38, 0x48, 0x04,
+ 0x85, 0x22, 0x10, 0x55, 0x86, 0x23, 0x16, 0x25,
+ 0x82, 0x86, 0x63, 0x75, 0x72, 0x50, 0x50, 0x73,
+ 0x23, 0x24, 0x68, 0x76, 0x32, 0x37, 0x01, 0x30,
+ 0x45, 0x76, 0x50, 0x33, 0x40, 0x74, 0x33, 0x18,
+ 0x24, 0x86, 0x14, 0x81, 0x21, 0x21, 0x16, 0x62,
+ 0x13, 0x58, 0x86, 0x20, 0x68, 0x12, 0x62, 0x55,
+ 0x68, 0x22, 0x76, 0x73, 0x72, 0x43, 0x63, 0x06,
+ 0x73, 0x20, 0x27, 0x56, 0x83, 0x77, 0x64, 0x65,
+ 0x58, 0x12, 0x86, 0x00, 0x28, 0x65, 0x07, 0x58,
+ 0x07, 0x13, 0x48, 0x46, 0x46, 0x00, 0x74, 0x77,
+ 0x35, 0x31, 0x68, 0x05, 0x71, 0x73, 0x41, 0x62,
+ 0x17, 0x10, 0x75, 0x20, 0x88, 0x67, 0x00, 0x31,
+ 0x78, 0x37, 0x68, 0x56, 0x83, 0x51, 0x03, 0x04,
+ 0x47, 0x64, 0x22, 0x51, 0x20, 0x68, 0x68, 0x17,
+ 0x82, 0x32, 0x54, 0x15, 0x70, 0x62, 0x11, 0x36,
+ 0x80, 0x55, 0x64, 0x60, 0x67, 0x54, 0x55, 0x50,
+ 0x46, 0x73, 0x40, 0x17, 0x46, 0x88, 0x82, 0x02,
+ 0x32, 0x33, 0x14, 0x15, 0x40, 0x06, 0x73, 0x21,
+ 0x63, 0x27, 0x18, 0x31, 0x28, 0x42, 0x07, 0x22,
+ 0x35, 0x55, 0x03, 0x25, 0x65, 0x01, 0x68, 0x73,
+ 0x48, 0x43, 0x34, 0x06, 0x30, 0x86, 0x70, 0x35,
+ 0x11, 0x72, 0x68, 0x43, 0x74, 0x05, 0x08, 0x36,
+ 0x66, 0x44, 0x88, 0x66, 0x41, 0x67, 0x75, 0x58,
+ 0x73, 0x42, 0x48, 0x34, 0x23, 0x54, 0x24, 0x61,
+ 0x44, 0x81, 0x76, 0x62, 0x62, 0x24, 0x61, 0x53,
+ 0x25, 0x37, 0x32, 0x46, 0x48, 0x32, 0x88, 0x41,
+ 0x45, 0x31, 0x64, 0x31, 0x74, 0x30, 0x62, 0x61,
+ 0x55, 0x14, 0x73, 0x41, 0x70, 0x02, 0x81, 0x30,
+ 0x22, 0x58, 0x04, 0x72, 0x53, 0x41, 0x58, 0x81,
+ 0x03, 0x82, 0x64, 0x67, 0x62, 0x62, 0x60, 0x38,
+ 0x13, 0x55, 0x43, 0x01, 0x78, 0x10, 0x24, 0x20,
+ 0x42, 0x11, 0x86, 0x62, 0x81, 0x57, 0x65, 0x58,
+ 0x10, 0x45, 0x17, 0x31, 0x40, 0x14, 0x11, 0x04,
+ 0x73, 0x28, 0x73, 0x21, 0x22, 0x83, 0x44, 0x12,
+ 0x76, 0x08, 0x42, 0x68, 0x23, 0x03, 0x74, 0x50,
+ 0x85, 0x36, 0x70, 0x80, 0x35, 0x35, 0x32, 0x24,
+ 0x06, 0x57, 0x13, 0x51, 0x73, 0x33, 0x15, 0x61,
+ 0x70, 0x03, 0x54, 0x24, 0x38, 0x45, 0x57, 0x13,
+ 0x11, 0x66, 0x32, 0x08, 0x73, 0x34, 0x04, 0x42,
+ 0x88, 0x72, 0x51, 0x02, 0x01, 0x26, 0x52, 0x82,
+ 0x88, 0x20, 0x14, 0x35, 0x88, 0x07, 0x70, 0x53,
+ 0x12, 0x51, 0x22, 0x64, 0x66, 0x51, 0x31, 0x81,
+ 0x57, 0x82, 0x37, 0x08, 0x53, 0x03, 0x88, 0x65,
+ 0x12, 0x74, 0x75, 0x84, 0x62, 0x50, 0x06, 0x80,
+ 0x71, 0x81, 0x80, 0x06, 0x36, 0x34, 0x36, 0x88,
+ 0x71, 0x87, 0x75, 0x32, 0x62, 0x75, 0x38, 0x12,
+ 0x47, 0x35, 0x25, 0x66, 0x06, 0x43, 0x27, 0x44,
+ 0x87, 0x87, 0x38, 0x28, 0x80, 0x52, 0x71, 0x33,
+ 0x34, 0x88, 0x85, 0x04, 0x14, 0x81, 0x20, 0x12,
+ 0x10, 0x23, 0x50, 0x28, 0x45, 0x11, 0x16, 0x60,
+ 0x21, 0x15, 0x42, 0x26, 0x27, 0x52, 0x55, 0x66,
+ 0x37, 0x11, 0x53, 0x82, 0x45, 0x25, 0x52, 0x30,
+ 0x26, 0x03, 0x40, 0x38, 0x04, 0x36, 0x36, 0x23,
+ 0x17, 0x64, 0x20, 0x31, 0x67, 0x60, 0x24, 0x00,
+ 0x73, 0x53, 0x48, 0x33, 0x22, 0x14, 0x63, 0x41,
+ 0x36, 0x11, 0x22, 0x62, 0x76, 0x60, 0x88, 0x60,
+ 0x08, 0x08, 0x01, 0x24, 0x18, 0x01, 0x22, 0x77,
+ 0x50, 0x10, 0x50, 0x11, 0x75, 0x83, 0x75, 0x30,
+ 0x73, 0x52, 0x08, 0x87, 0x36, 0x88, 0x22, 0x18,
+ 0x40, 0x06, 0x36, 0x16, 0x12, 0x52, 0x45, 0x15,
+ 0x52, 0x41, 0x75, 0x88, 0x00, 0x40, 0x11, 0x01,
+ 0x68, 0x48, 0x13, 0x25, 0x36, 0x13, 0x61, 0x41,
+ 0x04, 0x16, 0x64, 0x75, 0x81, 0x66, 0x41, 0x03,
+ 0x27, 0x80, 0x17, 0x42, 0x45, 0x00, 0x21, 0x74,
+ 0x10, 0x38, 0x75, 0x00, 0x77, 0x74, 0x48, 0x83,
+ 0x17, 0x06, 0x42, 0x83, 0x20, 0x15, 0x23, 0x17,
+ 0x41, 0x61, 0x86, 0x21, 0x81, 0x46, 0x83, 0x75,
+ 0x68, 0x54, 0x28, 0x42, 0x25, 0x72, 0x23, 0x35,
+ 0x10, 0x38, 0x14, 0x25, 0x68, 0x35, 0x61, 0x63,
+ 0x36, 0x25, 0x86, 0x48, 0x66, 0x18, 0x61, 0x25,
+ 0x45, 0x51, 0x33, 0x70, 0x63, 0x12, 0x33, 0x34,
+ 0x43, 0x32, 0x14, 0x42, 0x80, 0x74, 0x65, 0x23,
+ 0x66, 0x25, 0x13, 0x77, 0x60, 0x37, 0x04, 0x80,
+ 0x07, 0x55, 0x64, 0x24, 0x58, 0x16, 0x58, 0x26,
+ 0x06, 0x31, 0x78, 0x12, 0x43, 0x86, 0x80, 0x52,
+ 0x80, 0x68, 0x66, 0x64, 0x00, 0x51, 0x12, 0x26,
+ 0x06, 0x02, 0x17, 0x87, 0x41, 0x32, 0x14, 0x17,
+ 0x32, 0x86, 0x74, 0x42, 0x14, 0x86, 0x06, 0x23,
+ 0x13, 0x00, 0x12, 0x33, 0x61, 0x16, 0x63, 0x83,
+ 0x33, 0x40, 0x04, 0x78, 0x20, 0x12, 0x07, 0x65,
+ 0x31, 0x02, 0x05, 0x73, 0x75, 0x26, 0x72, 0x77,
+ 0x52, 0x42, 0x68, 0x83, 0x62, 0x80, 0x21, 0x54,
+ 0x70, 0x32, 0x57, 0x64, 0x64, 0x68, 0x23, 0x65,
+ 0x33, 0x18, 0x52, 0x37, 0x13, 0x52, 0x87, 0x14,
+ 0x10, 0x06, 0x83, 0x51, 0x52, 0x74, 0x80, 0x20,
+ 0x77, 0x37, 0x10, 0x60, 0x13, 0x56, 0x43, 0x66,
+ 0x20, 0x65, 0x32, 0x22, 0x84, 0x78, 0x11, 0x51,
+ 0x76, 0x03, 0x51, 0x20, 0x18, 0x33, 0x61, 0x52,
+ 0x74, 0x38, 0x88, 0x31, 0x54, 0x00, 0x77, 0x56,
+ 0x76, 0x82, 0x26, 0x83, 0x24, 0x48, 0x57, 0x68,
+ 0x02, 0x51, 0x48, 0x37, 0x15, 0x51, 0x14, 0x00,
+ 0x45, 0x14, 0x00, 0x66, 0x06, 0x65, 0x27, 0x71,
+ 0x83, 0x85, 0x57, 0x45, 0x72, 0x27, 0x58, 0x07,
+ 0x16, 0x88, 0x61, 0x16, 0x01, 0x06, 0x53, 0x52,
+ 0x52, 0x53, 0x87, 0x62, 0x67, 0x75, 0x43, 0x78,
+ 0x40, 0x42, 0x76, 0x83, 0x51, 0x47, 0x32, 0x54,
+ 0x86, 0x17, 0x28, 0x26, 0x18, 0x08, 0x58, 0x55,
+ 0x37, 0x25, 0x74, 0x35, 0x12, 0x72, 0x37, 0x48,
+ 0x18, 0x01, 0x52, 0x45, 0x15, 0x23, 0x54, 0x67,
+ 0x44, 0x13, 0x31, 0x77, 0x38, 0x76, 0x62, 0x85,
+ 0x23, 0x76, 0x46, 0x16, 0x41, 0x11, 0x05, 0x66,
+ 0x51, 0x47, 0x47, 0x15, 0x17, 0x50, 0x86, 0x77,
+ 0x35, 0x87, 0x11, 0x57, 0x31, 0x44, 0x77, 0x11,
+ 0x31, 0x12, 0x32, 0x74, 0x18, 0x80, 0x35, 0x55,
+ 0x72, 0x73, 0x28, 0x07, 0x54, 0x42, 0x53, 0x32,
+ 0x85, 0x07, 0x26, 0x77, 0x16, 0x34, 0x45, 0x63,
+ 0x02, 0x43, 0x13, 0x61, 0x61, 0x40, 0x52, 0x80,
+ 0x40, 0x70, 0x64, 0x75, 0x07, 0x27, 0x76, 0x88,
+ 0x27, 0x15, 0x31, 0x48, 0x26, 0x70, 0x77, 0x17,
+ 0x32, 0x27, 0x37, 0x73, 0x03, 0x47, 0x38, 0x84,
+ 0x06, 0x64, 0x77, 0x10, 0x84, 0x75, 0x08, 0x10,
+ 0x85, 0x21, 0x07, 0x41, 0x34, 0x44, 0x63, 0x71,
+ 0x24, 0x75, 0x15, 0x07, 0x06, 0x21, 0x38, 0x57,
+ 0x43, 0x55, 0x43, 0x57, 0x58, 0x65, 0x30, 0x16,
+ 0x10, 0x13, 0x33, 0x58, 0x42, 0x01, 0x60, 0x45,
+ 0x07, 0x66, 0x57, 0x28, 0x33, 0x07, 0x17, 0x27,
+ 0x32, 0x87, 0x73, 0x47, 0x16, 0x72, 0x02, 0x18,
+ 0x32, 0x16, 0x00, 0x73, 0x75, 0x35, 0x48, 0x66,
+ 0x24, 0x56, 0x42, 0x16, 0x00, 0x01, 0x70, 0x36,
+ 0x13, 0x13, 0x44, 0x08, 0x76, 0x57, 0x27, 0x02,
+ 0x73, 0x35, 0x25, 0x75, 0x40, 0x26, 0x78, 0x82,
+ 0x17, 0x51, 0x67, 0x63, 0x00, 0x22, 0x77, 0x12,
+ 0x22, 0x53, 0x84, 0x67, 0x18, 0x75, 0x52, 0x26,
+ 0x20, 0x56, 0x41, 0x73, 0x78, 0x54, 0x25, 0x45,
+ 0x71, 0x34, 0x34, 0x81, 0x15, 0x20, 0x22, 0x00,
+ 0x35, 0x18, 0x60, 0x54, 0x75, 0x13, 0x88, 0x80,
+ 0x44, 0x45, 0x28, 0x81, 0x74, 0x15, 0x87, 0x78,
+ 0x75, 0x67, 0x53, 0x18, 0x57, 0x17, 0x70, 0x40,
+ 0x64, 0x32, 0x80, 0x04, 0x28, 0x20, 0x03, 0x84,
+ 0x33, 0x88, 0x33, 0x01, 0x81, 0x48, 0x83, 0x72,
+ 0x16, 0x11, 0x10, 0x77, 0x50, 0x54, 0x04, 0x85,
+ 0x11, 0x27, 0x57, 0x33, 0x67, 0x62, 0x35, 0x31,
+ 0x23, 0x45, 0x82, 0x37, 0x84, 0x73, 0x06, 0x10,
+ 0x63, 0x13, 0x18, 0x17, 0x26, 0x24, 0x61, 0x05,
+ 0x37, 0x16, 0x36, 0x61, 0x32, 0x36, 0x12, 0x15,
+ 0x41, 0x41, 0x86, 0x23, 0x43, 0x73, 0x64, 0x52,
+ 0x50, 0x18, 0x71, 0x73, 0x67, 0x25, 0x64, 0x68,
+ 0x78, 0x72, 0x01, 0x68, 0x47, 0x53, 0x61, 0x14,
+ 0x05, 0x62, 0x23, 0x00, 0x44, 0x61, 0x04, 0x78,
+ 0x21, 0x58, 0x40, 0x15, 0x42, 0x17, 0x58, 0x22,
+ 0x05, 0x13, 0x80, 0x03, 0x78, 0x35, 0x65, 0x27,
+ 0x80, 0x36, 0x76, 0x42, 0x84, 0x44, 0x87, 0x34,
+ 0x54, 0x16, 0x41, 0x16, 0x07, 0x36, 0x01, 0x18,
+ 0x9c, 0x2f, 0xaf, 0x39, 0x3c, 0x86, 0xcd, 0xbf,
+ 0x20, 0x5f, 0xac, 0x21, 0x04, 0x94, 0xf6, 0x5a,
+ 0x83, 0x6e, 0xbd, 0x9e, 0x97, 0x74, 0x4a, 0xa9,
+ 0x77, 0xd9, 0x93, 0x66, 0xbc, 0x76, 0xc5, 0x32,
+ 0xbd, 0x43, 0xbf, 0xb4, 0x12, 0xee, 0xdd, 0x07,
+ 0x69, 0xb8, 0x88, 0xce, 0xda, 0x65, 0x89, 0xd8,
+ 0x62, 0x38, 0xbf, 0x32, 0x58, 0x34, 0x7c, 0xb3,
+ 0x30, 0x10, 0x88, 0xee, 0xd5, 0xcc, 0x15, 0xe3,
+ 0x6e, 0x61, 0xd1, 0xc5, 0x27, 0x5f, 0xa3, 0x22,
+ 0xd0, 0x50, 0xc6, 0xed, 0xf5, 0xbf, 0x65, 0x67,
+ 0x10, 0x11, 0xa3, 0xf8, 0xdf, 0x7a, 0x11, 0x2e,
+ 0xc1, 0x24, 0x28, 0xa4, 0xaf, 0x68, 0x94, 0x89,
+ 0x85, 0x01, 0xea, 0x76, 0xb1, 0xec, 0x00, 0x1a,
+ 0x9c, 0x46, 0xd0, 0x49, 0xae, 0xbf, 0x31, 0xa5,
+ 0x11, 0xf3, 0xf5, 0x17, 0x83, 0xde, 0x17, 0x97,
+ 0xef, 0x6f, 0x0b, 0x39, 0x7c, 0x1f, 0x98, 0x71,
+ 0x63, 0x1e, 0x78, 0x9c, 0xfa, 0x95, 0x7d, 0xd0,
+ 0xf6, 0xbc, 0x56, 0x4f, 0xa3, 0xde, 0xd4, 0x1b,
+ 0x01, 0x85, 0xa7, 0xde, 0xc7, 0x25, 0xf0, 0x9a,
+ 0xe1, 0x3d, 0x7c, 0x50, 0x99, 0x89, 0xdd, 0x10,
+ 0x3d, 0xdf, 0x2f, 0xfa, 0x46, 0xa6, 0x56, 0xcd,
+ 0xaf, 0x57, 0x32, 0x36, 0xe9, 0xf8, 0xb1, 0x2b,
+ 0xc7, 0x90, 0x4a, 0xb1, 0xb2, 0x02, 0xf1, 0x7d,
+ 0x2c, 0x1d, 0xcb, 0x56, 0xb2, 0x4f, 0x19, 0x17,
+ 0x53, 0x03, 0x57, 0xaa, 0xf2, 0x0c, 0x0c, 0x2b,
+ 0xe4, 0xfa, 0x5e, 0x15, 0xe0, 0x81, 0x6c, 0x0a,
+ 0x30, 0x1b, 0x9b, 0x97, 0x5a, 0xae, 0x4b, 0xb9,
+ 0xa4, 0x9a, 0x98, 0x1a, 0xae, 0xe2, 0x7d, 0x13,
+ 0x9f, 0xd7, 0x64, 0xbd, 0x55, 0x77, 0xc1, 0x6f,
+ 0xae, 0xd0, 0xe2, 0xb2, 0xba, 0x7a, 0x29, 0x5c,
+ 0x00, 0x86, 0x93, 0x10, 0xcd, 0x5e, 0xf2, 0x00,
+ 0x30, 0x16, 0xfb, 0x8f, 0x3d, 0xc6, 0xc3, 0xa8,
+ 0x3c, 0x12, 0x97, 0x12, 0xf0, 0x9c, 0x85, 0xd7,
+ 0x69, 0x7b, 0x94, 0x01, 0xe8, 0xa2, 0x36, 0x15,
+ 0xe7, 0x16, 0x62, 0xda, 0xfa, 0xf2, 0x7d, 0x65,
+ 0x4a, 0xcc, 0x83, 0x4d, 0x86, 0x17, 0x74, 0x94,
+ 0x53, 0x2a, 0x53, 0xbb, 0xe5, 0x83, 0x0e, 0x46,
+ 0x43, 0xc0, 0x3c, 0x5a, 0x62, 0x23, 0xa5, 0xfd,
+ 0xff, 0x52, 0x2a, 0xc7, 0xb5, 0xe2, 0x52, 0xe4,
+ 0xfb, 0x7b, 0x39, 0xf3, 0xe7, 0x15, 0x06, 0xfc,
+ 0xd7, 0x1c, 0x1a, 0xe7, 0xa7, 0x78, 0x2c, 0xeb,
+ 0x8d, 0x8c, 0x69, 0x20, 0xe7, 0xe3, 0xfc, 0x70,
+ 0x4c, 0x8d, 0x37, 0x48, 0xc5, 0x78, 0xc7, 0x08,
+ 0xb4, 0x7c, 0xcd, 0xf1, 0xde, 0xe6, 0xa4, 0x22,
+ 0x73, 0xe4, 0x44, 0x3e, 0x8c, 0xf2, 0x68, 0x10,
+ 0xe4, 0xf2, 0xc7, 0xf4, 0x5f, 0xeb, 0x38, 0x1a,
+ 0xb6, 0x48, 0x8f, 0xf6, 0x0a, 0x0f, 0x2a, 0xc9,
+ 0xeb, 0xae, 0x39, 0xe4, 0x4c, 0x99, 0xc0, 0x47,
+ 0xdf, 0x4d, 0xd6, 0xc6, 0x9a, 0x4e, 0x9f, 0xea,
+ 0x98, 0xd3, 0x89, 0x3d, 0x1b, 0x3f, 0x39, 0x3c,
+ 0xad, 0x01, 0xc0, 0xfa, 0xdc, 0xef, 0x7e, 0xad,
+ 0xba, 0xee, 0x4a, 0xa8, 0xaa, 0x50, 0xe2, 0xe5,
+ 0xa7, 0x44, 0xf1, 0x99, 0xdb, 0x63, 0xbf, 0xb0,
+ 0xbd, 0x18, 0xce, 0x89, 0x18, 0x0b, 0xa3, 0x35,
+ 0x00, 0x3e, 0xe1, 0x30, 0x1a, 0xc8, 0x8b, 0x13,
+ 0x83, 0x4a, 0x8c, 0xa8, 0x40, 0x7d, 0xfd, 0xff,
+ 0xad, 0x41, 0x9c, 0xf2, 0xe5, 0x82, 0x2d, 0xdd,
+ 0x45, 0xfb, 0x8c, 0x9c, 0xeb, 0x5f, 0xdc, 0xf0,
+ 0x4e, 0x28, 0x07, 0xfa, 0x08, 0xad, 0x76, 0x41,
+ 0x2c, 0xb5, 0x58, 0x8e, 0x86, 0x54, 0x53, 0x18,
+ 0x87, 0x4e, 0xb6, 0xc3, 0x30, 0x77, 0xae, 0x3f,
+ 0x98, 0x7d, 0x23, 0x59, 0x8c, 0x9c, 0x19, 0x1e,
+ 0xd4, 0x48, 0x67, 0x79, 0x76, 0x20, 0x0f, 0x0c,
+ 0x19, 0x28, 0xa8, 0xcf, 0x89, 0x40, 0x11, 0xd7,
+ 0x1e, 0x13, 0xe6, 0x36, 0xcd, 0x85, 0xba, 0x76,
+ 0xc6, 0x22, 0x6b, 0x8c, 0xe5, 0xae, 0x8e, 0xec,
+ 0x96, 0x1f, 0x7b, 0x85, 0x6b, 0xc6, 0x65, 0x2f,
+ 0x70, 0x07, 0x81, 0xe0, 0x55, 0x9c, 0x3f, 0xf8,
+ 0x81, 0xac, 0x5c, 0x52, 0x9d, 0x81, 0x2f, 0x84,
+ 0xe8, 0x37, 0xd8, 0x4c, 0x06, 0x1a, 0x03, 0x7b,
+ 0x38, 0x00, 0xea, 0x68, 0xff, 0x07, 0xfd, 0x39,
+ 0xcc, 0x81, 0x39, 0xe4, 0xbb, 0xcc, 0x48, 0xa1,
+ 0x74, 0xf1, 0xfa, 0x5e, 0x38, 0xc0, 0x80, 0xf2,
+ 0x82, 0xe3, 0xcb, 0x38, 0x7a, 0x6b, 0x67, 0x42,
+ 0x80, 0xcb, 0x47, 0xcf, 0x5c, 0x99, 0x64, 0x12,
+ 0xf4, 0x1c, 0xaa, 0xca, 0xce, 0xb0, 0x75, 0x5b,
+ 0x7d, 0xc0, 0x52, 0x96, 0xa1, 0x5e, 0x61, 0x29,
+ 0x79, 0xd9, 0x7f, 0x69, 0x2d, 0x21, 0xbb, 0x27,
+ 0xc2, 0x60, 0x56, 0xb9, 0x57, 0x14, 0xbc, 0xd6,
+ 0x6b, 0x6f, 0x8a, 0x49, 0xac, 0x57, 0xc9, 0x1f,
+ 0x18, 0x04, 0x22, 0x05, 0x4c, 0x75, 0x34, 0x38,
+ 0x8f, 0x6a, 0xcd, 0xe9, 0x6a, 0x40, 0x4d, 0x47,
+ 0xca, 0x99, 0xef, 0x68, 0xd5, 0x0d, 0x9d, 0x74,
+ 0xf6, 0x68, 0x28, 0xbe, 0x13, 0xd3, 0x7b, 0xaa,
+ 0x54, 0x9e, 0x33, 0x5c, 0x4f, 0xf5, 0xe1, 0x74,
+ 0xf2, 0xcd, 0xe6, 0x7e, 0xc4, 0x3a, 0xc5, 0x67,
+ 0x79, 0x5e, 0x8d, 0x19, 0xa1, 0xeb, 0x61, 0xbd,
+ 0x59, 0xce, 0x38, 0xd4, 0x21, 0x5a, 0x1f, 0x18,
+ 0x09, 0x69, 0x11, 0xea, 0xb3, 0x4b, 0xc8, 0xfe,
+ 0x7b, 0x72, 0x5f, 0xa9, 0x8d, 0x1c, 0x49, 0x88,
+ 0xa9, 0x2d, 0xb8, 0x68, 0x16, 0x39, 0xc3, 0x58,
+ 0x22, 0xfe, 0xda, 0xc9, 0xe1, 0x49, 0xf2, 0xb5,
+ 0x7a, 0x44, 0x4d, 0x0d, 0x75, 0x06, 0x25, 0x04,
+ 0x92, 0xed, 0x39, 0x34, 0xf1, 0x6a, 0x45, 0x71,
+ 0x03, 0xa3, 0xfa, 0x44, 0x6a, 0x4a, 0x6c, 0x2e,
+ 0x62, 0xf3, 0x3b, 0x67, 0x7f, 0x0a, 0xb0, 0x99,
+ 0x36, 0x25, 0xe5, 0x83, 0x96, 0xfc, 0xd2, 0xd3,
+ 0x4c, 0xe6, 0xf3, 0x5a, 0x96, 0x56, 0xa6, 0x90,
+ 0x35, 0xe3, 0xda, 0x39, 0x9a, 0x2b, 0x97, 0xfc,
+ 0x25, 0x9e, 0x3d, 0x7d, 0x94, 0xd3, 0xe4, 0xce,
+ 0xef, 0xdc, 0x10, 0x14, 0xd7, 0xe6, 0xf4, 0x49,
+ 0x1c, 0xee, 0x74, 0x59, 0x31, 0xd9, 0xe0, 0x3c,
+ 0x2f, 0x3a, 0xe3, 0x91, 0x5d, 0x4e, 0x0b, 0x78,
+ 0xda, 0xaa, 0x6f, 0x3a, 0x50, 0x5a, 0xff, 0x57,
+ 0x7e, 0xd3, 0xf4, 0xc8, 0xda, 0x0b, 0x0f, 0xc5,
+ 0x11, 0xee, 0xa8, 0xf5, 0x52, 0x62, 0x28, 0x19,
+ 0x0e, 0x85, 0x62, 0xc1, 0x0a, 0x8d, 0xa4, 0x5a,
+ 0xe4, 0x38, 0x70, 0xfe, 0x26, 0xdb, 0x9f, 0x13,
+ 0xdc, 0xa8, 0x64, 0xe1, 0xbc, 0x41, 0x54, 0xbe,
+ 0x0b, 0xbf, 0xeb, 0x28, 0x57, 0xce, 0xe6, 0x36,
+ 0x36, 0x6b, 0x7c, 0xa7, 0x3f, 0x1e, 0xed, 0x05,
+ 0xbe, 0xcc, 0x3f, 0x05, 0x40, 0xad, 0xad, 0xa8,
+ 0x74, 0xd4, 0xe1, 0x2a, 0x5a, 0x07, 0x52, 0xe0,
+ 0xb9, 0xba, 0x63, 0xc8, 0x60, 0x54, 0x55, 0xac,
+ 0x0a, 0xc6, 0x0d, 0xe4, 0xeb, 0x85, 0x55, 0x6b,
+ 0x6d, 0x30, 0x86, 0x12, 0x56, 0x5d, 0xbd, 0x03,
+ 0x76, 0x39, 0x51, 0x3b, 0xf1, 0x67, 0x6d, 0x01,
+ 0xca, 0x2c, 0x3f, 0xaf, 0x91, 0x8c, 0x04, 0xf8,
+ 0xb1, 0x72, 0x90, 0xae, 0x76, 0xd7, 0xf2, 0x42,
+ 0x56, 0xba, 0x89, 0x3d, 0xb4, 0xd8, 0x5e, 0x8a,
+ 0x13, 0xba, 0x95, 0x55, 0x73, 0x38, 0x0c, 0x96,
+ 0x71, 0x1f, 0xe1, 0x24, 0xa2, 0x2c, 0x9f, 0xc3,
+ 0xbc, 0x86, 0xe9, 0x83, 0xb9, 0x70, 0xbd, 0x96,
+ 0x88, 0x01, 0xa5, 0x38, 0x72, 0x9c, 0x02, 0x9c,
+ 0xa6, 0xbe, 0x78, 0x8d, 0x57, 0xc8, 0xcd, 0x8c,
+ 0x61, 0xe9, 0x2e, 0x90, 0x12, 0xa1, 0xf3, 0xee,
+ 0xb9, 0xfb, 0xdb, 0x78, 0x04, 0x6c, 0xe5, 0x13,
+ 0x4c, 0x53, 0x85, 0xaf, 0x53, 0xdc, 0x50, 0xc8,
+ 0x5d, 0xda, 0x86, 0xdf, 0x15, 0xc0, 0x20, 0x7e,
+ 0x56, 0x32, 0x00, 0x36, 0x9e, 0x99, 0x64, 0x9c,
+ 0x63, 0x9e, 0xee, 0xe7, 0x4c, 0x1d, 0x05, 0x21,
+ 0x47, 0xf3, 0x87, 0xe1, 0x04, 0x89, 0x67, 0xa5,
+ 0xf9, 0x43, 0x87, 0x8f, 0x6f, 0xd8, 0xc7, 0x89,
+ 0xca, 0x76, 0x0d, 0x64, 0x58, 0x40, 0xde, 0xa5,
+ 0xa1, 0x13, 0x4e, 0xa9, 0xde, 0x0f, 0x3b, 0xbd,
+ 0xf4, 0x28, 0x52, 0xc4, 0x7b, 0x90, 0xf3, 0x54,
+ 0x89, 0x37, 0x95, 0x89, 0xce, 0xe0, 0x0f, 0x1e,
+ 0x2c, 0x3e, 0xec, 0xc9, 0x3e, 0xc7, 0x95, 0xd4,
+ 0x23, 0x27, 0x5e, 0x74, 0x89, 0x37, 0x7b, 0xea,
+ 0x3b, 0xb3, 0xe5, 0x1d, 0xd3, 0x47, 0x5a, 0x8d,
+ 0xde, 0xcf, 0x64, 0x77, 0x32, 0xec, 0x2b, 0x8f,
+ 0x47, 0xfe, 0xbd, 0x98, 0xc3, 0x53, 0xb4, 0x56,
+ 0xdf, 0x61, 0xc9, 0x15, 0x2c, 0xc8, 0xc6, 0x92,
+ 0xbd, 0xa9, 0xea, 0x18, 0x5e, 0xf1, 0x91, 0x1c,
+ 0x28, 0xe8, 0x80, 0x97, 0x75, 0xbd, 0xdc, 0x55,
+ 0x46, 0xfe, 0x06, 0x0b, 0x38, 0xa1, 0xcc, 0xd3,
+ 0x23, 0xb6, 0xed, 0xf0, 0x8b, 0xcf, 0x2e, 0xe4,
+ 0x8d, 0x93, 0x3a, 0xc8, 0xae, 0x6c, 0x50, 0x21,
+ 0x23, 0x3b, 0xf6, 0xe2, 0xe7, 0xaf, 0x53, 0xbb,
+ 0xb6, 0xd9, 0x6f, 0x0a, 0x24, 0x39, 0x5d, 0x26,
+ 0x1e, 0xf4, 0x39, 0xbb, 0x75, 0x94, 0xfb, 0x4a,
+ 0x22, 0x6c, 0xf8, 0xdf, 0xb4, 0x9b, 0x8a, 0xe9,
+ 0x5b, 0x9a, 0xf0, 0x29, 0x08, 0x88, 0xba, 0x09,
+ 0x6e, 0xf6, 0x10, 0x65, 0xa7, 0xa3, 0xf6, 0x18,
+ 0x26, 0x9b, 0xe5, 0x5b, 0x15, 0xa9, 0x92, 0x10,
+ 0x0d, 0xe3, 0x94, 0xf7, 0x4b, 0x47, 0xa0, 0xeb,
+ 0x00, 0x35, 0xda, 0x13, 0x60, 0xdd, 0x4b, 0x3b,
+ 0xe9, 0x8f, 0x36, 0x57, 0x95, 0xfd, 0x9e, 0x68,
+ 0x93, 0x2c, 0xc1, 0xa6, 0x37, 0x0d, 0x68, 0x13,
+ 0xd7, 0x60, 0xd1, 0x23, 0x17, 0xb4, 0xfb, 0x7c,
+ 0x9a, 0xc0, 0x68, 0xc6, 0x7c, 0xf2, 0xb8, 0x87,
+ 0xf3, 0xd8, 0x50, 0x13, 0xe4, 0xb3, 0x18, 0xf1,
+ 0x51, 0x5a, 0x60, 0x59, 0x10, 0xa5, 0xfd, 0x06,
+ 0x62, 0xd7, 0xb4, 0xd3, 0x00, 0x89, 0xe2, 0xd9,
+ 0x39, 0x39, 0x4f, 0xb5, 0x66, 0x02, 0x65, 0x7b,
+ 0xae, 0xd3, 0x3c, 0xd5, 0x0b, 0xde, 0x15, 0x27,
+ 0x3b, 0x0b, 0x65, 0x3f, 0x5a, 0x0c, 0x89, 0xb2,
+ 0x04, 0x37, 0x8c, 0xb5, 0xb2, 0xfe, 0x1b, 0x3c,
+ 0xd0, 0xe4, 0x7d, 0xd9, 0x96, 0x50, 0x2a, 0xb0,
+ 0xdc, 0x95, 0x7c, 0xa4, 0xbd, 0x19, 0x02, 0xa0,
+ 0x47, 0x9b, 0x68, 0x4a, 0xe3, 0xbf, 0x47, 0x97,
+ 0xeb, 0xd7, 0x4d, 0x99, 0xcf, 0x13, 0xb5, 0x09,
+ 0x3e, 0xc4, 0x43, 0xb5, 0x88, 0x31, 0x0c, 0xd9,
+ 0xc5, 0x44, 0x58, 0x95, 0xb1, 0x1e, 0x02, 0x06,
+ 0x95, 0xa8, 0x66, 0xa6, 0x3a, 0x45, 0xce, 0x6c,
+ 0x4a, 0xf5, 0x5c, 0x33, 0xbe, 0x0c, 0x48, 0x08,
+ 0x87, 0xb3, 0x1f, 0x4b, 0x23, 0x61, 0x1d, 0xd1,
+ 0x93, 0xfd, 0x61, 0xbe, 0xbc, 0x37, 0x47, 0x61,
+ 0x4f, 0xab, 0xb6, 0x44, 0x0a, 0x96, 0x92, 0xa7,
+ 0xec, 0x4e, 0x67, 0xe1, 0xc0, 0x35, 0x1e, 0xb4,
+ 0x70, 0xa1, 0x2a, 0x17, 0xd3, 0x40, 0xaf, 0x53,
+ 0x63, 0x79, 0xd4, 0x3c, 0x7e, 0xa9, 0x34, 0x78,
+ 0xf6, 0xa3, 0x5d, 0x36, 0x0b, 0x6a, 0x90, 0x1d,
+ 0x51, 0x8b, 0x69, 0x4a, 0x69, 0x2e, 0xe1, 0xf0,
+ 0xb1, 0x77, 0xe1, 0x02, 0x8c, 0xec, 0x5c, 0x72,
+ 0x3e, 0x01, 0x07, 0x59, 0x7e, 0x60, 0xf5, 0xae,
+ 0x42, 0x33, 0x11, 0x89, 0x00, 0x67, 0xc7, 0xf1,
+ 0x11, 0x82, 0xdd, 0xd8, 0xf4, 0xb2, 0xd7, 0xc4,
+ 0x40, 0x0d, 0x32, 0x00, 0xe4, 0x5a, 0xaa, 0x28,
+ 0xa0, 0x8f, 0x95, 0xdc, 0x6c, 0xd3, 0xac, 0xfa,
+ 0xd6, 0xdd, 0xc1, 0xf9, 0x2a, 0x7b, 0xd2, 0x53,
+ 0x61, 0x2e, 0xa3, 0x86, 0xe4, 0x04, 0xdb, 0x79,
+ 0xa1, 0x8e, 0xe2, 0xb0, 0xd8, 0xc4, 0xe2, 0xea,
+ 0x3e, 0x65, 0x4e, 0xd7, 0x06, 0xc0, 0x6d, 0xa1,
+ 0x78, 0xb7, 0x96, 0xd2, 0x19, 0xe4, 0xc4, 0x78,
+ 0x85, 0xab, 0x5a, 0x8a, 0xbd, 0x41, 0x67, 0x93,
+ 0xbb, 0x98, 0x2f, 0xf1, 0x9e, 0xdc, 0xd8, 0x06,
+ 0x73, 0x7e, 0x20, 0x31, 0x69, 0x0e, 0x25, 0x78,
+ 0x9d, 0x6c, 0xc7, 0xb2, 0xe6, 0x6e, 0x05, 0x28,
+ 0xc9, 0x0f, 0xe2, 0x1a, 0xe2, 0x03, 0xa4, 0xc0,
+ 0x24, 0xfd, 0xf1, 0x85, 0x99, 0x74, 0x5a, 0x0b,
+ 0x87, 0xf7, 0x92, 0x1c, 0x6f, 0xe5, 0x1d, 0x28,
+ 0x65, 0x07, 0x58, 0x36, 0xd8, 0x95, 0x67, 0x36,
+ 0x61, 0xd3, 0x7f, 0x2d, 0xe8, 0x07, 0x7b, 0xdc,
+ 0x1e, 0x82, 0xcf, 0xc6, 0xb0, 0xf1, 0xb9, 0x2c,
+ 0x07, 0x2f, 0x86, 0x90, 0x9b, 0xa3, 0xf7, 0xea,
+ 0x01, 0xd1, 0x65, 0x03, 0xd4, 0x52, 0xf3, 0xde,
+ 0x1b, 0x48, 0x13, 0x1f, 0x10, 0xce, 0x13, 0x1c,
+ 0x3b, 0x40, 0xe4, 0x45, 0x17, 0xa6, 0xe8, 0x8a,
+ 0xdf, 0x64, 0x0c, 0x70, 0x41, 0x38, 0x54, 0xa9,
+ 0xc4, 0x15, 0xfe, 0x84, 0xd4, 0x10, 0xa6, 0x78,
+ 0xf3, 0x7e, 0xc5, 0x6c, 0x3c, 0x34, 0xea, 0xec,
+ 0xde, 0x30, 0xf5, 0xbd, 0x2a, 0x66, 0x08, 0x9e,
+ 0xe6, 0x3d, 0x62, 0xf9, 0xb4, 0x81, 0xf5, 0x15,
+ 0xb8, 0x57, 0x93, 0x6c, 0x2d, 0xb2, 0x64, 0x62,
+ 0x33, 0xaa, 0xa4, 0x69, 0xf7, 0x0a, 0xd8, 0xdf,
+ 0xf3, 0x81, 0xe4, 0xda, 0xe6, 0x35, 0x68, 0x0a,
+ 0xd6, 0xaf, 0xd8, 0xfd, 0x26, 0x0f, 0xce, 0x67,
+ 0x68, 0xbf, 0x1c, 0xb4, 0xc6, 0x25, 0x10, 0x9f,
+ 0x92, 0xd6, 0x52, 0x01, 0x7d, 0xf1, 0xed, 0x00,
+ 0xd3, 0x17, 0x06, 0xdd, 0x72, 0xb9, 0x59, 0xda,
+ 0xbd, 0x0a, 0x3b, 0x49, 0xfb, 0xf3, 0x35, 0x66,
+ 0x86, 0x3a, 0x93, 0x9a, 0x74, 0x23, 0x14, 0x39,
+ 0x20, 0x0c, 0x6f, 0x33, 0xc8, 0x3b, 0x26, 0x2b,
+ 0x67, 0x71, 0xac, 0xef, 0x85, 0xf7, 0x70, 0xfa,
+ 0xc0, 0xf3, 0x58, 0x18, 0xc6, 0x76, 0xf4, 0x90,
+ 0xeb, 0xf0, 0x08, 0xec, 0x0e, 0xfe, 0xff, 0x42,
+ 0x1b, 0x5b, 0x69, 0x74, 0xa9, 0x69, 0xf2, 0xeb,
+ 0x56, 0xeb, 0xae, 0xa0, 0xdf, 0xbe, 0xf8, 0xf6,
+ 0xc8, 0x22, 0x41, 0x88, 0x0f, 0xdc, 0x30, 0x5a,
+ 0x02, 0xd8, 0x24, 0xd1, 0x63, 0x5d, 0x53, 0xbd,
+ 0x4d, 0x3e, 0x3e, 0xb9, 0x73, 0xbe, 0x1e, 0xe5,
+ 0xc8, 0x12, 0xff, 0x2e, 0xdf, 0x7b, 0x26, 0xb6,
+ 0x65, 0xad, 0xf8, 0x6c, 0xb0, 0x1e, 0x97, 0x6c,
+ 0x15, 0xc9, 0xab, 0x26, 0x8a, 0x0b, 0xbc, 0x0a,
+ 0xe6, 0xd2, 0x61, 0x41, 0xd4, 0xf0, 0xac, 0x06,
+ 0xe4, 0xd3, 0x3c, 0x46, 0x43, 0xfe, 0xa7, 0xc1,
+ 0xf4, 0xfe, 0xd4, 0x8d, 0x8b, 0x30, 0xc6, 0x18,
+ 0x57, 0xfa, 0x79, 0xf9, 0x17, 0x52, 0xcd, 0xff,
+ 0x48, 0xf8, 0x9e, 0xc5, 0x5a, 0x87, 0xd9, 0x87,
+ 0xb6, 0x57, 0x23, 0x65, 0x23, 0x7b, 0x38, 0x3e,
+ 0x75, 0x53, 0xa9, 0xac, 0x28, 0xa1, 0x16, 0x66,
+ 0x5d, 0x9d, 0x68, 0xb9, 0x55, 0x24, 0x75, 0x2f,
+ 0xb2, 0x89, 0x42, 0x80, 0xb4, 0x9f, 0x1a, 0xe9,
+ 0x6a, 0xee, 0xc6, 0x5f, 0xd8, 0xaf, 0x2f, 0xe0,
+ 0xe6, 0xbc, 0x3b, 0x0b, 0x72, 0x74, 0x3a, 0x1c,
+ 0xeb, 0x7e, 0xaa, 0xe1, 0x97, 0xac, 0xa4, 0xa2,
+ 0xf3, 0xcd, 0x9c, 0xfd, 0x39, 0x80, 0x7d, 0x5a,
+ 0x69, 0xff, 0xc5, 0x98, 0x3e, 0x00, 0x01, 0x2e,
+ 0x64, 0x66, 0xd5, 0x0d, 0x75, 0x9f, 0x54, 0x7b,
+ 0xf0, 0x1d, 0x02, 0x59, 0x42, 0x38, 0x1c, 0xab,
+ 0x10, 0x6e, 0x43, 0x19, 0xaf, 0xc8, 0xc0, 0x86,
+ 0x1c, 0xf6, 0xe0, 0xfb, 0xef, 0x7a, 0xd4, 0xad,
+ 0x65, 0x19, 0x8b, 0x48, 0x11, 0x00, 0x2c, 0xc3,
+ 0x9d, 0x6c, 0x66, 0x63, 0x5a, 0x6b, 0xea, 0x26,
+ 0x8e, 0x7e, 0x7f, 0x94, 0x0e, 0xac, 0x71, 0x15,
+ 0xb0, 0x66, 0x39, 0x51, 0x22, 0xc6, 0x78, 0x43,
+ 0x7e, 0x8c, 0x34, 0x41, 0x57, 0x74, 0x4a, 0xe4,
+ 0x30, 0x1f, 0x27, 0x45, 0x62, 0x21, 0x59, 0x86,
+ 0x76, 0x60, 0x17, 0xb9, 0x9f, 0xac, 0xce, 0x9d,
+ 0x7c, 0xc1, 0xd3, 0xda, 0x58, 0xd6, 0xcf, 0xe2,
+ 0x43, 0x93, 0x1a, 0x83, 0xa6, 0x1a, 0xfa, 0x92,
+ 0x84, 0x08, 0x4c, 0xb9, 0xc3, 0x02, 0x0f, 0x63,
+ 0xc2, 0xae, 0xd0, 0x38, 0x2d, 0xde, 0x52, 0xb1,
+ 0xa2, 0xd5, 0x5b, 0x56, 0x3d, 0x66, 0x50, 0xdb,
+ 0xdb, 0xcd, 0xc7, 0xb7, 0x3e, 0xed, 0x75, 0x07,
+ 0x4f, 0x30, 0xd1, 0x20, 0xc4, 0xd0, 0xec, 0x8b,
+ 0x3c, 0xac, 0x57, 0x0c, 0x3d, 0x4a, 0x03, 0x16,
+ 0x28, 0x55, 0xe8, 0x85, 0xe7, 0xb7, 0xa8, 0x85,
+ 0xd1, 0x94, 0x17, 0x28, 0x6b, 0xf3, 0x6c, 0x4e,
+ 0x7b, 0xe2, 0x3b, 0x2c, 0xcd, 0x40, 0xbc, 0x4a,
+ 0xa2, 0x27, 0x57, 0xd6, 0xa9, 0x13, 0x72, 0xd1,
+ 0x49, 0x6e, 0xf2, 0x68, 0xae, 0x3a, 0xcc, 0xb3,
+ 0x53, 0x9a, 0xf8, 0x82, 0x49, 0xf8, 0x6a, 0xf7,
+ 0x59, 0x2e, 0xa2, 0x47, 0x17, 0x9e, 0x77, 0x3b,
+ 0x7e, 0xed, 0x83, 0x11, 0x8e, 0xae, 0xfa, 0xe8,
+ 0xae, 0xa1, 0xac, 0x4e, 0x17, 0x7d, 0x8c, 0x4e,
+ 0xe1, 0x9d, 0xc2, 0x3d, 0x96, 0x7b, 0xa9, 0x47,
+ 0x21, 0x35, 0xe0, 0xf3, 0xe2, 0xcf, 0xa1, 0x21,
+ 0xa9, 0x55, 0x7c, 0xd9, 0x27, 0xaa, 0xd8, 0x03,
+ 0x1b, 0xa8, 0xad, 0x4a, 0xc4, 0xc2, 0xf8, 0x22,
+ 0xec, 0x5e, 0x1e, 0x64, 0xb0, 0x36, 0xb3, 0x28,
+ 0xd9, 0x58, 0x0c, 0x74, 0xf0, 0x47, 0x46, 0x22,
+ 0x0f, 0x1f, 0x12, 0xbb, 0x6c, 0x95, 0xf9, 0xe6,
+ 0x5d, 0x37, 0x57, 0xf3, 0x21, 0x6b, 0x6d, 0x7a,
+ 0x8d, 0x85, 0xa1, 0x6e, 0xa3, 0xe6, 0x49, 0x9b,
+ 0x65, 0xd8, 0x3c, 0xbb, 0x23, 0x14, 0xf0, 0x2d,
+ 0x12, 0x39, 0xa6, 0xf9, 0xc1, 0x3e, 0x0e, 0x39,
+ 0xf8, 0xa9, 0x29, 0xbd, 0x13, 0xec, 0xe7, 0xfe,
+ 0xbe, 0x19, 0x0d, 0x62, 0x7d, 0xdd, 0xfb, 0xbd,
+ 0x67, 0x22, 0x96, 0x7c, 0xb9, 0x92, 0x6d, 0x62,
+ 0x98, 0xe2, 0x52, 0x72, 0x68, 0xa3, 0x5a, 0x5a,
+ 0x8c, 0xfc, 0x7c, 0x81, 0xc7, 0xa2, 0x3c, 0xa9,
+ 0x0c, 0xd4, 0x2a, 0x13, 0x5f, 0xee, 0x0a, 0x03,
+ 0xf6, 0x61, 0x19, 0xb4, 0x2e, 0x79, 0xb9, 0x0c,
+ 0x6b, 0x26, 0xf6, 0xda, 0x61, 0x4e, 0x29, 0xa5,
+ 0x81, 0x71, 0x4c, 0x3a, 0xda, 0xff, 0x90, 0x1e,
+ 0xc8, 0x91, 0x75, 0xa2, 0xb2, 0x03, 0xb5, 0x8b,
+ 0xe0, 0x64, 0xa5, 0x76, 0x5e, 0x9e, 0x1d, 0x44,
+ 0x8e, 0x10, 0xf4, 0x23, 0xed, 0xf5, 0x34, 0x61,
+ 0x5c, 0x3a, 0x56, 0x56, 0xa9, 0x45, 0x79, 0xe0,
+ 0x15, 0xb0, 0x69, 0x92, 0x98, 0xef, 0xdb, 0x28,
+ 0x94, 0x03, 0x40, 0x38, 0xda, 0x81, 0x4f, 0x62,
+ 0x3b, 0x97, 0x3f, 0xbe, 0xb7, 0xb9, 0x4f, 0x6f,
+ 0x6f, 0x35, 0xf4, 0xaa, 0x24, 0xcd, 0xf2, 0xd1,
+ 0x55, 0xeb, 0xab, 0x7d, 0x28, 0xc3, 0xdc, 0xa6,
+ 0x93, 0x30, 0x50, 0x61, 0x0b, 0x68, 0x1d, 0x85,
+ 0x66, 0x24, 0xbf, 0xf6, 0x43, 0x41, 0x14, 0xae,
+ 0x47, 0x3a, 0xc3, 0xf4, 0x78, 0x8a, 0x0a, 0xe1,
+ 0x8b, 0x25, 0x95, 0x6b, 0x63, 0x9c, 0xeb, 0x4a,
+ 0x6c, 0xfd, 0xa1, 0xd3, 0xdc, 0xfd, 0x7f, 0x8d,
+ 0x3b, 0x94, 0xfc, 0x22, 0xf4, 0x0d, 0xbb, 0x69,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x1a, 0x84, 0x21, 0x0d, 0x35, 0x7a, 0x88, 0xc8,
+ 0x6a, 0x11, 0xe3, 0x15, 0x24, 0xec, 0x0d, 0x2e,
+ 0x76, 0xb9, 0xcf, 0x2b, 0x04, 0x25, 0x16, 0xae,
+ 0x62, 0x42, 0xa0, 0x20, 0x68, 0x25, 0x3e, 0xb4,
+ 0x75, 0xa7, 0x1d, 0x64, 0xc3, 0xd1, 0x08, 0x07,
+ 0x67, 0xb6, 0xf7, 0x76, 0x76, 0xf6, 0xd6, 0x62,
+ 0x66, 0x04, 0x89, 0x0c, 0x8f, 0x07, 0xac, 0xc8,
+ 0x51, 0x77, 0xd9, 0x47, 0x5e, 0xb5, 0x22, 0x20,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0xda, 0xcf, 0x8d, 0x67, 0x59, 0x60, 0x6c, 0x39,
+ 0x2d, 0x89, 0xb6, 0xa1, 0xf3, 0x8c, 0x70, 0xcf,
+ 0x25, 0x86, 0x21, 0xa1, 0x9f, 0x20, 0x9e, 0xf5,
+ 0xd2, 0xdd, 0xbd, 0x99, 0xfa, 0xe4, 0xab, 0x77,
+ 0x31, 0x65, 0x18, 0xa1, 0xd1, 0x3f, 0x21, 0x70,
+ 0x36, 0xe1, 0xf9, 0x5c, 0x28, 0xb6, 0x7d, 0x34,
+ 0xae, 0x66, 0xc9, 0x1c, 0x8e, 0xc6, 0xf9, 0x45,
+ 0x8c, 0xa9, 0xb2, 0xfb, 0x0f, 0x5b, 0xb8, 0xf9,
+ 0xf5, 0xe2, 0x37, 0x79, 0x12, 0xda, 0xa7, 0x72,
+ 0x9e, 0x0d, 0xf8, 0x88, 0x5b, 0x34, 0x49, 0x6c,
+ 0xed, 0xa3, 0x7f, 0x86, 0xd3, 0xd9, 0x2f, 0x44,
+ 0x08, 0x0d, 0xb7, 0xdb, 0x4a, 0xce, 0x02, 0x14,
+ 0x02, 0xd6, 0x40, 0x75, 0xe3, 0xc0, 0x97, 0xfc,
+ 0x6c, 0x6a, 0x88, 0x29, 0x0c, 0xe2, 0x3a, 0x2b,
+ 0x28, 0x82, 0x8f, 0x27, 0x09, 0x69, 0x91, 0xc6,
+ 0xc3, 0xb7, 0x07, 0x61, 0x86, 0x8d, 0x89, 0x8a,
+ 0xd5, 0x00, 0x3b, 0x4b, 0xfc, 0x6f, 0xb3, 0x3f,
+ 0x4c, 0x93, 0x31, 0xfc, 0x88, 0x53, 0x26, 0xea,
+ 0xe5, 0x3a, 0xfc, 0xc1, 0x59, 0x16, 0xf0, 0xb7,
+ 0xac, 0xde, 0x1e, 0xd8, 0x74, 0x85, 0x72, 0xd9,
+ 0xbb, 0xbe, 0x76, 0x32, 0x25, 0x9d, 0x21, 0xbc,
+ 0xfd, 0x8d, 0x32, 0xfe, 0xae, 0x24, 0xe5, 0x4a,
+ 0xcc, 0x5d, 0x15, 0x23, 0xd3, 0x57, 0xe7, 0xa9,
+ 0x2c, 0x31, 0xd7, 0xc5, 0x6b, 0x70, 0x6c, 0x22,
+ 0x5a, 0x13, 0x1f, 0x76, 0x13, 0x78, 0x6f, 0xac,
+ 0x42, 0x4c, 0x46, 0x81, 0xa2, 0x20, 0x91, 0x30,
+ 0xed, 0xcb, 0x90, 0xfe, 0x3c, 0xa3, 0xc7, 0xb4,
+ 0x1f, 0x21, 0x1d, 0x98, 0x74, 0x6a, 0x3e, 0xc8,
+ 0xcc, 0xd2, 0x68, 0x87, 0x69, 0xa9, 0xdf, 0x50,
+ 0xd5, 0x0a, 0x8e, 0x10, 0x54, 0xab, 0xea, 0x65,
+ 0x2a, 0x52, 0xd7, 0x22, 0xae, 0x2f, 0x1e, 0xc3,
+ 0x16, 0x58, 0x20, 0x18, 0x6d, 0x35, 0x46, 0x31,
+ 0x43, 0x5d, 0x62, 0xfb, 0xb1, 0x47, 0x32, 0xfa,
+ 0x14, 0xcc, 0x51, 0xa3, 0xcd, 0x99, 0x4f, 0x97,
+ 0x0f, 0xca, 0x24, 0x93, 0x17, 0xea, 0xa3, 0xf3,
+ 0x1f, 0xbe, 0xb5, 0xa3, 0xac, 0x80, 0xcc, 0x20,
+ 0x3b, 0xa6, 0xd3, 0x32, 0x72, 0x4e, 0xd9, 0x25,
+ 0xf9, 0xc2, 0x24, 0x15, 0xbd, 0x1e, 0x1e, 0x41,
+ 0x8c, 0x18, 0x8c, 0x58, 0xe8, 0x75, 0x20, 0xff,
+ 0xa3, 0xf4, 0xd4, 0xab, 0x75, 0x78, 0x4e, 0xbb,
+ 0x7c, 0x94, 0x93, 0x28, 0x5b, 0x07, 0x3a, 0x3c,
+ 0xc9, 0xf1, 0x55, 0x3e, 0x33, 0xed, 0xf8, 0x72,
+ 0x55, 0xab, 0x5a, 0xea, 0xbe, 0x65, 0xfa, 0x81,
+ 0x50, 0xc0, 0x9d, 0x2d, 0xfb, 0x04, 0x25, 0x7c,
+ 0xb9, 0xee, 0xe2, 0xa3, 0x00, 0x44, 0xd3, 0x9d,
+ 0xee, 0x4f, 0x80, 0x77, 0xfb, 0x26, 0x6b, 0x07,
+ 0xd0, 0xff, 0x82, 0x39, 0x0e, 0x2b, 0x47, 0xa3,
+ 0xe7, 0x3e, 0xc5, 0x4e, 0x15, 0x8a, 0x48, 0x28,
+ 0xfb, 0xf7, 0xa4, 0x86, 0xfb, 0x77, 0x60, 0xcd,
+ 0xc5, 0x68, 0x96, 0xd7, 0x4c, 0x3c, 0xf2, 0x51,
+ 0x71, 0x79, 0x2e, 0x2e, 0x57, 0x10, 0xa7, 0xfc,
+ 0xd1, 0xd4, 0x61, 0x71, 0x81, 0x85, 0x74, 0x09,
+ 0x7d, 0x80, 0xd0, 0xc2, 0xe9, 0xff, 0xb7, 0x88,
+ 0x53, 0x74, 0x1e, 0xb0, 0xca, 0x65, 0x48, 0x8e,
+ 0xdb, 0x59, 0x3a, 0xcb, 0x80, 0xeb, 0xfd, 0xd2,
+ 0xc9, 0x38, 0x43, 0xae, 0x76, 0xf2, 0xbb, 0x51,
+ 0xb2, 0xcb, 0xe6, 0x85, 0x31, 0xb5, 0x62, 0xd4,
+ 0x5e, 0x48, 0x08, 0xf1, 0x40, 0x5b, 0x16, 0x83,
+ 0x5e, 0xa5, 0x9c, 0x6b, 0x91, 0x49, 0x44, 0xff,
+ 0x3b, 0xa9, 0x2b, 0xf3, 0x06, 0x33, 0x9e, 0x6e,
+ 0x3c, 0x66, 0x7e, 0x27, 0xa2, 0x59, 0x7b, 0xe3,
+ 0xb6, 0xb4, 0x28, 0xeb, 0x93, 0x35, 0x87, 0xac,
+ 0x0e, 0x0b, 0x7e, 0xbc, 0x35, 0x28, 0x72, 0x1f,
+ 0x26, 0x59, 0xd0, 0x1f, 0x63, 0xe4, 0x86, 0x5d,
+ 0x70, 0xf3, 0xa8, 0xa4, 0xb8, 0xcd, 0xb3, 0xf8,
+ 0x8d, 0xaa, 0x41, 0xd2, 0xcc, 0x0b, 0x15, 0x66,
+ 0x22, 0x83, 0x92, 0xe3, 0x0b, 0xf9, 0xea, 0xa0,
+ 0x33, 0xa1, 0x4e, 0x92, 0xae, 0x81, 0x95, 0xa4,
+ 0x58, 0x3f, 0xa9, 0x15, 0x52, 0xf9, 0xda, 0xb7,
+ 0x10, 0x8d, 0xc6, 0xab, 0x77, 0xe9, 0xbe, 0xad,
+ 0xc9, 0x3a, 0x6a, 0x8d, 0x92, 0x6c, 0x69, 0xff,
+ 0x31, 0x49, 0x25, 0x04, 0xc8, 0x93, 0x6f, 0xc8,
+ 0xe7, 0x60, 0x7a, 0x76, 0xb5, 0xc1, 0x07, 0xef,
+ 0xa3, 0x39, 0xa6, 0xf2, 0x36, 0x04, 0xde, 0x3c,
+ 0x4a, 0x4e, 0x96, 0xbd, 0x64, 0x26, 0x80, 0x01,
+ 0x88, 0x47, 0xd2, 0xa4, 0x46, 0xcd, 0xe1, 0x30,
+ 0x7f, 0xa3, 0x00, 0x11, 0x38, 0x55, 0xfa, 0xeb,
+ 0x10, 0xeb, 0xa0, 0x65, 0x04, 0x09, 0xc8, 0xde,
+ 0x9c, 0x73, 0xba, 0x0c, 0xbd, 0xd3, 0xa5, 0x84,
+ 0x5e, 0xb9, 0x3b, 0xd4, 0x94, 0xbd, 0xa6, 0x53,
+ 0xbe, 0x93, 0x69, 0x3e, 0xaa, 0x32, 0x31, 0x06,
+ 0xc8, 0x1b, 0x4a, 0x48, 0xb5, 0x17, 0x85, 0xbf,
+ 0x72, 0xec, 0xf5, 0x29, 0x8a, 0xd8, 0xeb, 0x99,
+ 0x8b, 0x74, 0x84, 0x57, 0x8c, 0xe1, 0x85, 0x94,
+ 0xa0, 0xbc, 0x7a, 0x14, 0xf0, 0xf4, 0x8b, 0x25,
+ 0x37, 0x43, 0xa1, 0x34, 0x09, 0x71, 0xca, 0x5c,
+ 0x9f, 0x08, 0x38, 0xd9, 0x9c, 0x0c, 0x0e, 0xcb,
+ 0xe4, 0xad, 0x4b, 0x2a, 0x89, 0x67, 0xf8, 0x29,
+ 0x6c, 0x69, 0x0e, 0x5d, 0xca, 0xfa, 0xa6, 0x6b,
+ 0x0e, 0xb5, 0x94, 0x17, 0x71, 0xf0, 0xc9, 0xcd,
+ 0x02, 0x1d, 0xa5, 0xd5, 0xc6, 0xa7, 0xbc, 0x5f,
+ 0x6e, 0x67, 0x43, 0x68, 0xce, 0xac, 0x54, 0x81,
+ 0x2a, 0x25, 0x22, 0x52, 0x35, 0xad, 0x7b, 0xd5,
+ 0x06, 0x8c, 0x00, 0xfb, 0xca, 0xc4, 0x0a, 0x49,
+ 0x1e, 0xc8, 0xeb, 0x77, 0xc1, 0x63, 0x23, 0x96,
+ 0xbd, 0x35, 0xfa, 0x13, 0xae, 0xbf, 0x1d, 0x1e,
+ 0x69, 0x8d, 0xb3, 0xe3, 0x07, 0xde, 0x4e, 0xd0,
+ 0x12, 0xa9, 0xc3, 0x36, 0x30, 0x46, 0xef, 0x92,
+ 0x76, 0x17, 0x8f, 0x10, 0xe7, 0xba, 0x99, 0x4b,
+ 0xdf, 0xad, 0xb8, 0x11, 0x80, 0xdf, 0xe7, 0xfd,
+ 0x80, 0x64, 0xf7, 0x2a, 0xac, 0x60, 0x2a, 0x54,
+ 0x8f, 0x4f, 0xaf, 0xaf, 0x60, 0xf9, 0x67, 0x20,
+ 0x80, 0x53, 0x5c, 0xb6, 0x81, 0xa6, 0x2a, 0x74,
+ 0x2d, 0xc5, 0x74, 0x2a, 0x95, 0x26, 0x13, 0x17,
+ 0x01, 0xdd, 0x31, 0xac, 0x5a, 0x05, 0xda, 0xde,
+ 0xba, 0xf6, 0x37, 0x13, 0x8d, 0xe4, 0xa8, 0x93,
+ 0x46, 0x9e, 0xa9, 0x82, 0x24, 0x7e, 0xc8, 0xda,
+ 0x63, 0x89, 0xcd, 0x33, 0xc9, 0xf7, 0xf9, 0x71,
+ 0x35, 0xe6, 0xa5, 0x5f, 0x6b, 0x3b, 0xbb, 0x0c,
+ 0xe0, 0xa4, 0x0b, 0xe3, 0x29, 0xc0, 0xae, 0x8e,
+ 0xce, 0x03, 0x09, 0x73, 0x0e, 0x1e, 0x9c, 0xe9,
+ 0x59, 0xb6, 0x8b, 0x78, 0x67, 0x32, 0x8b, 0xf1,
+ 0x93, 0xcc, 0x72, 0x1b, 0x6f, 0xa2, 0xf1, 0x04,
+ 0x9c, 0xfa, 0x98, 0x02, 0xca, 0xdf, 0x35, 0x3c,
+ 0x38, 0xac, 0xa8, 0xdb, 0x90, 0xae, 0xaa, 0xf9,
+ 0x70, 0xfb, 0xed, 0xbd, 0xa6, 0x25, 0x14, 0x58,
+ 0x09, 0x8a, 0x36, 0xaf, 0x41, 0x09, 0x19, 0xcb,
+ 0xd3, 0x25, 0x5d, 0x0e, 0xe6, 0x20, 0x14, 0x71,
+ 0x24, 0x79, 0x19, 0x55, 0xaf, 0x51, 0x5b, 0xa4,
+ 0xc0, 0x93, 0x9e, 0xdd, 0x88, 0x31, 0x13, 0x96,
+ 0xbf, 0xca, 0x0a, 0xd7, 0xbc, 0xc4, 0x00, 0xa1,
+ 0x10, 0x2d, 0x92, 0x79, 0xf9, 0x14, 0xdb, 0xd2,
+ 0xba, 0x74, 0xfa, 0xa8, 0xe5, 0x40, 0x14, 0xc2,
+ 0x56, 0x3c, 0x7f, 0x50, 0x07, 0x60, 0x86, 0x93,
+ 0x51, 0x2e, 0xf9, 0x70, 0x61, 0x70, 0x0e, 0xa4,
+ 0x87, 0x75, 0xcc, 0x6c, 0x72, 0xb7, 0x68, 0x23,
+ 0xb7, 0x3d, 0x76, 0xaf, 0x96, 0x9b, 0x4a, 0xe5,
+ 0x12, 0x28, 0x4a, 0x8f, 0x79, 0x34, 0xff, 0xec,
+ 0x92, 0xeb, 0x6b, 0xaf, 0xc9, 0xbd, 0xc1, 0x77,
+ 0x07, 0xd0, 0xfa, 0x55, 0x57, 0x10, 0x0c, 0xad,
+ 0x29, 0x2a, 0x79, 0xd6, 0x09, 0x9e, 0x7d, 0x18,
+ 0xd4, 0xd6, 0xdd, 0x72, 0x1a, 0x8f, 0x24, 0x11,
+ 0x70, 0xd2, 0x52, 0x36, 0x0f, 0x38, 0x79, 0x38,
+ 0x4a, 0x02, 0x4f, 0x73, 0x2a, 0xaa, 0x6a, 0xb5,
+ 0x0c, 0x72, 0x32, 0x85, 0x21, 0x76, 0x1a, 0x8a,
+ 0x7d, 0x51, 0x0e, 0xf1, 0xf9, 0x19, 0xfa, 0x6b,
+ 0x9b, 0x22, 0x71, 0x8c, 0x13, 0xcc, 0xba, 0x7d,
+ 0xee, 0xd8, 0x34, 0xf6, 0x85, 0x60, 0xe1, 0xe4,
+ 0x59, 0x6e, 0x32, 0x60, 0xd9, 0xfa, 0xb7, 0x56,
+ 0x54, 0x25, 0xd1, 0x73, 0x6a, 0xf2, 0xa0, 0xc7,
+ 0xa0, 0x67, 0x10, 0x89, 0x9c, 0x27, 0x5f, 0x7f,
+ 0x2e, 0x5a, 0x29, 0x70, 0x7a, 0x7b, 0xaf, 0x21,
+ 0xd0, 0xf4, 0x06, 0xb9, 0x2d, 0xf1, 0xb8, 0x32,
+ 0xed, 0xc5, 0xc9, 0xac, 0x2f, 0x54, 0x0a, 0xf9,
+ 0x08, 0x39, 0x39, 0x7d, 0x1d, 0xaf, 0xb4, 0x5f,
+ 0x4d, 0x75, 0xc3, 0xe8, 0x52, 0x3a, 0x47, 0x72,
+ 0x2c, 0xa9, 0x2d, 0xcb, 0x74, 0x06, 0xfe, 0x69,
+ 0xd3, 0xf3, 0x1a, 0xb2, 0xd3, 0x01, 0xed, 0x6c,
+ 0xc1, 0xca, 0x4f, 0xaf, 0x11, 0x9b, 0xa2, 0x27,
+ 0x2a, 0x59, 0x56, 0x58, 0xdf, 0x79, 0x8b, 0xc9,
+ 0x87, 0xe9, 0x58, 0x81, 0x48, 0xc6, 0xb6, 0x7d,
+ 0x60, 0x54, 0x87, 0x9c, 0x61, 0xbb, 0x4b, 0xbb,
+ 0x61, 0xac, 0x0a, 0x5a, 0x66, 0x7e, 0x70, 0x8b,
+ 0xfd, 0x92, 0x76, 0x4a, 0xa9, 0xa5, 0xc3, 0xf4,
+ 0xf2, 0x93, 0x48, 0xc4, 0xf3, 0x91, 0x2b, 0x60,
+ 0x04, 0x0e, 0xb0, 0x6b, 0x60, 0x5e, 0xf0, 0xf1,
+ 0x54, 0x41, 0x56, 0xdc, 0x25, 0x57, 0xc3, 0xb6,
+ 0x0b, 0x5e, 0x15, 0xb5, 0x2a, 0x36, 0x4f, 0xe7,
+ 0x1d, 0x70, 0xa8, 0xa7, 0xec, 0xd6, 0x74, 0xba,
+ 0xa4, 0x79, 0x83, 0x7c, 0x9e, 0x1a, 0x5d, 0x32,
+ 0xc8, 0xcb, 0x41, 0xca, 0x04, 0xec, 0x0b, 0x18,
+ 0x54, 0xe1, 0x67, 0xbf, 0xa8, 0x7a, 0xc3, 0x0f,
+ 0x27, 0x2a, 0xaf, 0x2a, 0x41, 0x19, 0x1f, 0xe8,
+ 0xa2, 0xe8, 0xfa, 0xfc, 0x88, 0x41, 0x46, 0xc3,
+ 0x1c, 0x44, 0xe5, 0xee, 0x47, 0xec, 0xfe, 0xbf,
+ 0xb8, 0x29, 0x2e, 0xae, 0x47, 0x0a, 0x42, 0x69,
+ 0x8a, 0x9a, 0x94, 0x97, 0x9e, 0xf5, 0xb6, 0x37,
+ 0x1c, 0x10, 0xc2, 0x99, 0xa8, 0xe9, 0x9e, 0x0e,
+ 0x6e, 0xb5, 0xbe, 0xba, 0x1f, 0x77, 0xa6, 0x35,
+ 0x02, 0x1e, 0x8c, 0xe6, 0x02, 0x53, 0xe2, 0x9a,
+ 0xdd, 0x09, 0x6e, 0x9b, 0x7a, 0x36, 0x4f, 0x38,
+ 0x8d, 0x4c, 0xa4, 0xb4, 0xff, 0x90, 0x76, 0x0d,
+ 0x11, 0x7d, 0xe1, 0xe9, 0x7f, 0x2a, 0x4a, 0x80,
+ 0xe0, 0xd8, 0x3c, 0x23, 0xd2, 0xa5, 0xe5, 0x39,
+ 0x77, 0xbf, 0x3d, 0x71, 0x0d, 0x45, 0xbb, 0x39,
+ 0x66, 0x1a, 0x4d, 0x59, 0xb7, 0xd0, 0x0a, 0xee,
+ 0x87, 0xee, 0x1f, 0xcf, 0x6f, 0xc2, 0x50, 0xb1,
+ 0xa5, 0x4c, 0xee, 0x40, 0x69, 0xd7, 0x36, 0x38,
+ 0x14, 0xcd, 0x6a, 0x9a, 0x90, 0x40, 0xad, 0x76,
+ 0xf1, 0xa6, 0xd4, 0x3c, 0x75, 0x10, 0xba, 0xcb,
+ 0xab, 0x22, 0x28, 0x5f, 0x0c, 0xe0, 0xee, 0xf4,
+ 0xfd, 0x61, 0x52, 0x0a, 0x59, 0xfe, 0x61, 0xc5,
+ 0x40, 0xf9, 0x91, 0x8e, 0x36, 0x29, 0x63, 0x6c,
+ 0x6e, 0x45, 0xa5, 0x42, 0xe3, 0x36, 0x90, 0xe7,
+ 0x90, 0x9f, 0x58, 0xbb, 0xf9, 0x1b, 0xee, 0x2c,
+ 0xbb, 0x3a, 0xfd, 0x3d, 0xbe, 0x3d, 0x45, 0xf0,
+ 0xc2, 0x18, 0xaa, 0x46, 0x10, 0x23, 0xe9, 0x63,
+ 0xba, 0x7f, 0xc2, 0xe1, 0xf4, 0x05, 0xdd, 0x4a,
+ 0x7c, 0xa8, 0xab, 0xa9, 0xbd, 0x6f, 0xdf, 0x48,
+ 0x59, 0x11, 0xd4, 0xba, 0x75, 0xb6, 0x22, 0xd4,
+ 0xd7, 0x35, 0x6f, 0x27, 0x70, 0xc7, 0x3d, 0x90,
+ 0x06, 0x39, 0x2a, 0x16, 0xd0, 0x8b, 0xd7, 0xfb,
+ 0x5e, 0x85, 0x2e, 0xb0, 0xd8, 0xc7, 0xdb, 0xe5,
+ 0x24, 0x3a, 0x6e, 0xc4, 0x5e, 0xd4, 0x22, 0x25,
+ 0x14, 0xee, 0xa5, 0x30, 0x8b, 0xd6, 0x27, 0x61,
+ 0x33, 0x13, 0x46, 0x0b, 0x26, 0x45, 0xa6, 0xb4,
+ 0xfa, 0x8d, 0xa3, 0xf2, 0x27, 0xd2, 0xc5, 0x04,
+ 0xaa, 0x96, 0xa4, 0x55, 0xfa, 0x40, 0xf1, 0xfc,
+ 0x66, 0x33, 0x9e, 0x4b, 0x39, 0x75, 0xae, 0x7f,
+ 0x52, 0x87, 0x7b, 0x8a, 0xf9, 0x7d, 0x5f, 0x8a,
+ 0x7e, 0xf7, 0xfe, 0xc4, 0x7f, 0xf4, 0xf6, 0x9a,
+ 0x86, 0x78, 0x21, 0x02, 0x94, 0x9e, 0x50, 0x2d,
+ 0xdc, 0xd6, 0xa5, 0x53, 0xf1, 0xef, 0x06, 0xe8,
+ 0xb5, 0x46, 0x81, 0xcc, 0x91, 0x4f, 0x37, 0xee,
+ 0x27, 0xcb, 0x91, 0xad, 0xff, 0x1d, 0xd1, 0x00,
+ 0xa8, 0x96, 0x22, 0xaa, 0x63, 0x23, 0x2a, 0x7a,
+ 0x75, 0x6f, 0xe9, 0x2d, 0x26, 0xde, 0x11, 0x97,
+ 0x4b, 0x17, 0x3f, 0xde, 0x51, 0x1a, 0x22, 0xed,
+ 0x38, 0x6f, 0x3e, 0x7a, 0xd0, 0xd6, 0x60, 0x06,
+ 0x7e, 0x3f, 0xa4, 0x29, 0xfa, 0x18, 0x91, 0xda,
+ 0x73, 0x38, 0xe3, 0xe3, 0xb5, 0xc0, 0x5b, 0x4e,
+ 0xe8, 0x94, 0xea, 0x45, 0x6e, 0x5b, 0x50, 0xaa,
+ 0x38, 0xb6, 0x6f, 0xdb, 0x90, 0x1b, 0x3b, 0x82,
+ 0xbb, 0x0d, 0x38, 0xe3, 0xca, 0xd9, 0xf1, 0x2e,
+ 0x27, 0x4c, 0x2c, 0x5a, 0x42, 0xdf, 0x44, 0xc8,
+ 0x07, 0xe4, 0x95, 0xb5, 0xec, 0x91, 0x34, 0x1c,
+ 0x9a, 0x0c, 0x50, 0x1a, 0xce, 0x67, 0xe4, 0x4b,
+ 0x87, 0x61, 0x43, 0x95, 0x95, 0xb8, 0x8a, 0xf4,
+ 0xc9, 0x92, 0x33, 0x33, 0xe3, 0xfe, 0x98, 0x2a,
+ 0xae, 0x8e, 0xf2, 0x6b, 0x13, 0x7c, 0xe4, 0x44,
+ 0x40, 0x66, 0xea, 0x0c, 0xe4, 0xdb, 0x16, 0x65,
+ 0xa8, 0x8b, 0x37, 0x08, 0xec, 0x1e, 0xfc, 0xa6,
+ 0xd0, 0x9b, 0x9e, 0x0a, 0xd2, 0xe3, 0xcf, 0x5d,
+ 0xb2, 0xaf, 0x8e, 0x05, 0x7d, 0x8d, 0x84, 0xbc,
+ 0x9f, 0xb1, 0xe6, 0x6a, 0x2e, 0x4b, 0x6d, 0x64,
+ 0x91, 0x17, 0x9d, 0xb5, 0x35, 0x15, 0x02, 0xe9,
+ 0x1b, 0x85, 0xc1, 0x89, 0xc2, 0x5a, 0x32, 0x3a,
+ 0x80, 0x78, 0x5e, 0xcc, 0x50, 0x26, 0xf5, 0x11,
+ 0x01, 0x79, 0xf3, 0xaf, 0xb6, 0x40, 0x00, 0x73,
+ 0x8f, 0xeb, 0x5a, 0xd1, 0x26, 0x00, 0xe2, 0xa3,
+ 0xcd, 0xfd, 0xaa, 0x15, 0x5b, 0x98, 0x2a, 0x76,
+ 0x41, 0x07, 0xc2, 0xde, 0xb6, 0x71, 0xe7, 0xc3,
+ 0xe9, 0x92, 0xb3, 0xd8, 0xfe, 0xaf, 0x12, 0x61,
+ 0x86, 0x5b, 0x6e, 0x74, 0x45, 0x7b, 0x9b, 0x6f,
+ 0x1a, 0x13, 0x84, 0xf6, 0x31, 0x5f, 0x5b, 0x6c,
+ 0xde, 0x47, 0xb8, 0x73, 0x32, 0xc7, 0x94, 0x92,
+ 0xa5, 0xc3, 0x65, 0xdf, 0x96, 0x6c, 0xfd, 0xb7,
+ 0x80, 0xfb, 0x47, 0xba, 0x6e, 0x43, 0xb3, 0x7e,
+ 0x86, 0xc9, 0x97, 0x45, 0xde, 0x3f, 0x3a, 0xf6,
+ 0xb0, 0x9e, 0x9a, 0xcb, 0xfd, 0xf2, 0x5c, 0xba,
+ 0x6e, 0x3f, 0xed, 0xfa, 0x74, 0x84, 0xe2, 0xb1,
+ 0xae, 0x66, 0x57, 0x0b, 0x96, 0x6c, 0x77, 0xe4,
+ 0x8a, 0x67, 0x97, 0xc7, 0xe0, 0x44, 0xb2, 0x83,
+ 0x2d, 0x3c, 0x2e, 0x01, 0x19, 0x2e, 0x4c, 0x74,
+ 0xe1, 0x35, 0x73, 0xeb, 0x85, 0x63, 0x8c, 0x3a,
+ 0xb8, 0xbc, 0x25, 0x6a, 0x8d, 0xaf, 0xd2, 0xfb,
+ 0xef, 0xd3, 0x12, 0x93, 0x0b, 0x39, 0xfa, 0x66,
+ 0xbe, 0x3b, 0xfd, 0x6c, 0x0b, 0xbb, 0xb2, 0x5a,
+ 0x78, 0xa1, 0xcf, 0x8c, 0x7d, 0x60, 0x55, 0xeb,
+ 0x33, 0x4e, 0x8e, 0xf9, 0x19, 0x4d, 0x42, 0xd4,
+ 0xf8, 0xd8, 0xba, 0xad, 0x0a, 0x6e, 0x62, 0xd4,
+ 0xe1, 0x6a, 0xcc, 0xea, 0x09, 0x91, 0x8e, 0x62,
+ 0xc9, 0x1e, 0x9e, 0x48, 0xaa, 0xde, 0xf7, 0xa2,
+ 0x5a, 0xcb, 0x83, 0x20, 0xe8, 0xf5, 0xd1, 0xfe,
+ 0x9d, 0x18, 0x2f, 0xd6, 0xf8, 0x97, 0x17, 0xce,
+ 0xc2, 0x05, 0x08, 0xef, 0x61, 0x70, 0x9d, 0x95,
+ 0x79, 0x59, 0x4c, 0x06, 0x24, 0x3d, 0x24, 0x69,
+ 0xff, 0x46, 0xda, 0xbc, 0x71, 0x7a, 0x74, 0x93,
+ 0x58, 0xf5, 0xc8, 0x91, 0xfb, 0x66, 0xed, 0x78,
+ 0x8f, 0xf8, 0x28, 0xa8, 0x1d, 0xa5, 0x3a, 0x13,
+ 0x76, 0xc2, 0xcc, 0xba, 0xb9, 0x56, 0x29, 0x74,
+ 0xd6, 0x14, 0x75, 0x58, 0xe6, 0x2e, 0x79, 0x6e,
+ 0x9d, 0x41, 0x94, 0x8a, 0xcf, 0xf1, 0xb1, 0xe0,
+ 0x36, 0xe5, 0x89, 0x9a, 0x95, 0xa1, 0x11, 0xd1,
+ 0xbe, 0x45, 0xe4, 0xb3, 0xb0, 0x62, 0x32, 0x1d,
+ 0xba, 0xe0, 0xde, 0x57, 0x81, 0x0e, 0x01, 0x9b,
+ 0x52, 0x3d, 0xd5, 0xde, 0x3b, 0x3a, 0xdd, 0x8f,
+ 0xe3, 0x2e, 0xce, 0x1e, 0x89, 0x4d, 0x81, 0xf0,
+ 0xf6, 0x20, 0x63, 0x7a, 0x4c, 0xbb, 0x66, 0xe0,
+ 0xbe, 0x2b, 0xee, 0xd0, 0x3b, 0x60, 0x1e, 0x65,
+ 0xd1, 0x2c, 0x7c, 0x5c, 0x6c, 0x16, 0x5b, 0x90,
+ 0xc8, 0x05, 0x10, 0xf2, 0xde, 0x33, 0x90, 0x35,
+ 0x69, 0x24, 0x3f, 0xc1, 0x8f, 0x1e, 0x4a, 0x60,
+ 0xf1, 0x03, 0x65, 0x46, 0x40, 0x76, 0xe9, 0x83,
+ 0x97, 0xda, 0x0b, 0xb8, 0x22, 0xfa, 0x55, 0x99,
+ 0xfd, 0x18, 0x24, 0xd2, 0x66, 0xb0, 0x7b, 0x70,
+ 0x56, 0x93, 0xad, 0x09, 0x95, 0x8e, 0x1f, 0x2f,
+ 0xe8, 0x12, 0x55, 0xd4, 0x1f, 0xde, 0x09, 0x85,
+ 0x05, 0xd1, 0xd5, 0x10, 0x2c, 0x8c, 0x6b, 0x53,
+ 0x28, 0xce, 0x06, 0xc5, 0x52, 0x0f, 0xfa, 0x09,
+ 0x09, 0x23, 0x1b, 0xe3, 0xbf, 0xb1, 0x89, 0x72,
+ 0x26, 0x0d, 0xa6, 0xbb, 0x7d, 0x9e, 0xdc, 0xf8,
+ 0xf5, 0x0b, 0x8c, 0xe0, 0xbc, 0x97, 0x3b, 0x72,
+ 0xdd, 0xf5, 0x9d, 0xc5, 0xb6, 0x37, 0x2c, 0x76,
+ 0x5b, 0x58, 0x67, 0xdb, 0xed, 0x3b, 0x6e, 0xe5,
+ 0xe5, 0x6d, 0x6f, 0x0d, 0x7e, 0xff, 0xa9, 0x57,
+ 0x4a, 0x84, 0x85, 0x82, 0xac, 0x00, 0x50, 0xa3,
+ 0x4f, 0x87, 0xfe, 0x2a, 0x40, 0x52, 0x54, 0x81,
+ 0x69, 0x42, 0x0b, 0x0c, 0xd7, 0x18, 0x98, 0x01,
+ 0x8c, 0x5a, 0xa2, 0xf4, 0xe8, 0x61, 0xd1, 0x38,
+ 0xfd, 0x0f, 0x63, 0x75, 0xd3, 0x4b, 0x1d, 0xdc,
+ 0xdf, 0xb2, 0xeb, 0x94, 0x97, 0x5c, 0x2a, 0xb4,
+ 0x12, 0x5c, 0x49, 0x2b, 0xfc, 0xd0, 0x8d, 0xfb,
+ 0xe7, 0xb3, 0xcb, 0x0f, 0x3c, 0x2e, 0x04, 0x36,
+ 0xa8, 0x03, 0xc9, 0xd7, 0x11, 0x2d, 0x2a, 0x93,
+ 0xff, 0xda, 0x26, 0xb0, 0x54, 0x7e, 0xaf, 0x30,
+ 0x7d, 0xce, 0x46, 0x8a, 0x3d, 0x7c, 0xa4, 0x7a,
+ 0x2c, 0xfa, 0xba, 0xa1, 0xc9, 0x41, 0xd3, 0xb8,
+ 0x84, 0x03, 0x78, 0xdd, 0xe9, 0x57, 0x19, 0x62,
+ 0x62, 0xff, 0x5b, 0x3b, 0x48, 0x62, 0x0e, 0xee,
+ 0x19, 0xb0, 0x32, 0x6e, 0x6a, 0x07, 0xd8, 0x4e,
+ 0x25, 0x76, 0xa7, 0xe3, 0x98, 0xa1, 0x6f, 0xb6,
+ 0x99, 0x32, 0x67, 0x7d, 0x46, 0x42, 0x4a, 0x82,
+ 0xd1, 0x29, 0x1b, 0x87, 0xeb, 0x4b, 0x9e, 0xdf,
+ 0x69, 0x75, 0xbd, 0x4f, 0xd3, 0xde, 0xc9, 0x83,
+ 0xe6, 0xd6, 0xea, 0x03, 0x81, 0x12, 0xf3, 0x5d,
+ 0x99, 0xf1, 0xb1, 0xd9, 0x3e, 0xbe, 0xf3, 0xa8,
+ 0xdc, 0xb6, 0xf8, 0x4b, 0x9e, 0x26, 0x3f, 0xf0,
+ 0x7c, 0xb3, 0xf4, 0xca, 0x00, 0x6c, 0x6c, 0xe5,
+ 0x43, 0xa1, 0xfd, 0x3a, 0xf8, 0x8e, 0xe3, 0x9f,
+ 0x88, 0xc5, 0x44, 0xfd, 0x24, 0x69, 0x76, 0xd5,
+ 0xcb, 0xdc, 0x9d, 0x12, 0xf3, 0x13, 0x7e, 0xe7,
+ 0xc3, 0xa8, 0x6a, 0xb2, 0xe0, 0xb3, 0x1d, 0xab,
+ 0x3b, 0xc9, 0x77, 0x3d, 0x0f, 0xc3, 0xbe, 0x4b,
+ 0x8b, 0x28, 0xbd, 0x7c, 0xe6, 0xb2, 0x06, 0x1f,
+ 0xf9, 0x8f, 0x16, 0x62, 0xbf, 0xc7, 0x55, 0x73,
+ 0xd4, 0xf1, 0x5a, 0x95, 0x80, 0xa3, 0x4e, 0xaa,
+ 0x60, 0x17, 0x3c, 0xc9, 0x5e, 0xd4, 0x0c, 0x56,
+ 0x7a, 0x77, 0x8e, 0x7f, 0x67, 0x08, 0x2f, 0xd9,
+ 0x21, 0x19, 0xfd, 0x86, 0x8c, 0x23, 0x8d, 0xf6,
+ 0x92, 0x1f, 0x36, 0x2c, 0x7c, 0x83, 0xbd, 0x2f,
+ 0x6c, 0x63, 0x7c, 0xb7, 0x93, 0x74, 0x1b, 0xc2,
+ 0x95, 0x34, 0x26, 0x1e, 0x07, 0x87, 0x3a, 0xb6,
+ 0xe2, 0x39, 0x71, 0x9b, 0x20, 0xcd, 0x63, 0xf0,
+ 0xbf, 0x48, 0xb5, 0x0e, 0x49, 0x86, 0x50, 0x80,
+ 0xbd, 0xd6, 0x0e, 0xab, 0xd5, 0x69, 0x1b, 0xa4,
+ 0xb3, 0x63, 0x3c, 0x8f, 0xcb, 0x42, 0xdb, 0xd7,
+ 0x1a, 0xf4, 0xdf, 0x9e, 0x25, 0xfc, 0xd4, 0x00,
+ 0xcb, 0xec, 0x57, 0x69, 0x30, 0x15, 0x4d, 0x7a,
+ 0x69, 0x28, 0x2f, 0x2b, 0x34, 0x26, 0xd1, 0xe7,
+ 0x01, 0x42, 0x5e, 0x02, 0xe2, 0x75, 0xe8, 0x52,
+ 0x8a, 0xb4, 0x71, 0xfa, 0xc3, 0x3d, 0xe6, 0xac,
+ 0xeb, 0xf3, 0x93, 0xe0, 0x37, 0xcd, 0x66, 0x92,
+ 0x66, 0x2c, 0xfe, 0x4b, 0xd6, 0x3c, 0xf1, 0x57,
+ 0xe5, 0xcf, 0xf5, 0xd0, 0xdb, 0x0e, 0x1f, 0x82,
+ 0x65, 0x3b, 0xab, 0x69, 0x42, 0x53, 0x7d, 0xa4,
+ 0x7c, 0xb7, 0x86, 0xeb, 0x23, 0x45, 0xa8, 0x4a,
+ 0x73, 0xfc, 0x38, 0xc6, 0xe5, 0x2c, 0xab, 0x80,
+ 0xfb, 0x23, 0xb2, 0x0c, 0x53, 0x28, 0x21, 0x37,
+ 0x54, 0x9c, 0x72, 0x51, 0x0f, 0x44, 0x50, 0xd3,
+ 0xe1, 0xd5, 0xb2, 0x27, 0x83, 0xb6, 0xe9, 0x4d,
+ 0x64, 0x5c, 0x17, 0x0f, 0xe0, 0x13, 0xe4, 0x26,
+ 0x6b, 0xd0, 0xd8, 0x25, 0xe3, 0x69, 0x6a, 0x95,
+ 0x3f, 0x4a, 0x4e, 0xa0, 0x58, 0xbc, 0x28, 0x47,
+ 0x8b, 0x68, 0xe4, 0x41, 0x90, 0x46, 0x1b, 0x84,
+ 0xa0, 0x7b, 0x46, 0x46, 0x03, 0xee, 0x21, 0x0d,
+ 0x34, 0xed, 0xff, 0x15, 0x57, 0x06, 0xdf, 0x71,
+ 0x09, 0xb2, 0x66, 0x0d, 0x6e, 0xcc, 0xa5, 0x0c,
+ 0xaf, 0x3f, 0x24, 0x8f, 0xd1, 0xc8, 0x44, 0x86,
+ 0xaf, 0xbf, 0xeb, 0x2f, 0xb9, 0xee, 0xa7, 0xcf,
+ 0xe4, 0xe8, 0xec, 0x47, 0x09, 0xd8, 0x95, 0x9e,
+ 0x3c, 0xda, 0x92, 0x41, 0x61, 0xf5, 0xc3, 0xec,
+ 0x00, 0xe4, 0xa3, 0x0d, 0x4a, 0xb3, 0xf6, 0x82,
+ 0x05, 0x38, 0x70, 0x6a, 0xd1, 0x28, 0x2c, 0xb3,
+ 0xc6, 0xbb, 0x38, 0xb3, 0x06, 0x7f, 0xd6, 0x4c,
+ 0xe7, 0xfb, 0xef, 0x0d, 0x52, 0x66, 0xbe, 0xd8,
+ 0xa6, 0x6f, 0xe8, 0xd9, 0x42, 0x4f, 0xad, 0xe8,
+ 0xe8, 0x6c, 0xf9, 0xe9, 0x42, 0xd9, 0x66, 0x6e,
+ 0xec, 0xfe, 0xf5, 0x91, 0xbf, 0x0a, 0x98, 0xd8,
+ 0x7b, 0x23, 0x12, 0xa6, 0x04, 0xa8, 0xb3, 0x61,
+ 0x13, 0x65, 0xc0, 0xe2, 0x82, 0xb9, 0xb2, 0x38,
+ 0x07, 0x06, 0xca, 0x64, 0x6c, 0x23, 0x93, 0x60,
+ 0x1d, 0x4d, 0x38, 0x5e, 0x8e, 0x90, 0x16, 0x4a,
+ 0xfd, 0xb3, 0xcd, 0x84, 0x9c, 0xa5, 0xfa, 0x73,
+ 0x2d, 0xcb, 0x87, 0x31, 0x3d, 0xf8, 0xfc, 0xeb,
+ 0xa7, 0x56, 0x2f, 0x5b, 0x95, 0x9a, 0xc6, 0x82,
+ 0x29, 0x86, 0x47, 0xe2, 0xc2, 0x84, 0x01, 0xaf,
+ 0xc8, 0x0b, 0x2d, 0xfb, 0x34, 0xba, 0x5d, 0x9d,
+ 0xd1, 0x85, 0xd5, 0x1e, 0x63, 0xcb, 0x3c, 0xa8,
+ 0xfa, 0x79, 0xef, 0x12, 0xa6, 0xb5, 0xdb, 0xc5,
+ 0x1d, 0x6a, 0xa7, 0x54, 0x58, 0x0c, 0xbe, 0x61,
+ 0xe5, 0x96, 0x7f, 0x4a, 0x3b, 0x59, 0x32, 0x2d,
+ 0x06, 0x44, 0x83, 0x5c, 0xad, 0xe9, 0xfe, 0x7c,
+ 0xd7, 0x5b, 0x34, 0xa1, 0xa3, 0xad, 0x9a, 0xbf,
+ 0xd5, 0x30, 0xf0, 0x22, 0xfc, 0x94, 0x7f, 0xd4,
+ 0xa4, 0xca, 0x88, 0x31, 0xe7, 0xf2, 0x89, 0x2d,
+ 0xda, 0xe6, 0x91, 0xa6, 0x27, 0x22, 0x74, 0x9f,
+ 0xc6, 0x72, 0x4f, 0xf6, 0xa9, 0xfe, 0x7a, 0xf0,
+ 0xa8, 0x6b, 0x6c, 0x9f, 0xe9, 0x2a, 0x9b, 0x23,
+ 0x9e, 0xb8, 0x2b, 0x29, 0x65, 0xa7, 0x5d, 0xbd,
+ 0x10, 0xe4, 0x56, 0x02, 0x94, 0xdd, 0xd1, 0xab,
+ 0x9b, 0x82, 0x2d, 0x8d, 0xf6, 0xd3, 0x65, 0x63,
+ 0x4a, 0xc4, 0x86, 0x61, 0x37, 0x9f, 0xdb, 0x4b,
+ 0x34, 0x20, 0x0a, 0xca, 0x45, 0x6c, 0x06, 0xc4,
+ 0x9c, 0x74, 0x4d, 0x83, 0x6a, 0x8d, 0xad, 0xc6,
+ 0x61, 0x3a, 0x8d, 0xde, 0x6c, 0xf9, 0x8e, 0x33,
+ 0xa2, 0xee, 0x99, 0xc7, 0xe4, 0x52, 0xb2, 0x44,
+ 0x6f, 0x2f, 0x0f, 0x41, 0xa9, 0x1a, 0xd3, 0x96,
+ 0x42, 0xc6, 0x49, 0x12, 0x6a, 0xf0, 0x29, 0xa9,
+ 0x0c, 0x9c, 0x50, 0x5d, 0x1d, 0xd1, 0x42, 0x7e,
+ 0x6f, 0x36, 0x48, 0x0f, 0x58, 0x14, 0x94, 0xc0,
+ 0x10, 0x1e, 0xe0, 0xb2, 0xdd, 0xba, 0x57, 0x91,
+ 0x4d, 0xd5, 0xdc, 0xa6, 0x4c, 0x68, 0x00, 0x6c,
+ 0xb3, 0x5d, 0x32, 0x13, 0xbe, 0xa8, 0xc3, 0xfb,
+ 0xd4, 0x19, 0x40, 0xf5, 0x6f, 0x63, 0xa1, 0x07,
+ 0xbf, 0xa2, 0x8b, 0xfc, 0xfe, 0xf8, 0xa1, 0x33,
+ 0x70, 0x07, 0x6d, 0xc5, 0x72, 0xa0, 0x39, 0xd6,
+ 0xd7, 0x76, 0x6c, 0xfa, 0x1f, 0x04, 0xd6, 0x23,
+ 0xbf, 0x66, 0x78, 0x92, 0x00, 0x11, 0x8a, 0x75,
+ 0x67, 0x44, 0xa6, 0x7c, 0xd0, 0x14, 0xe6, 0xd0,
+ 0x31, 0x6d, 0xdb, 0xc5, 0xb1, 0xa7, 0x99, 0xc3,
+ 0xaf, 0x18, 0x7a, 0x26, 0x46, 0xad, 0x6d, 0x0c,
+ 0xb6, 0xb5, 0xad, 0xc1, 0xcf, 0x60, 0x99, 0xf5,
+ 0x9f, 0x88, 0xaf, 0x0e, 0x37, 0x15, 0xf9, 0x2b,
+ 0x1a, 0x5f, 0xfb, 0xc9, 0xf8, 0xd4, 0xf0, 0x97,
+ 0xd2, 0x91, 0xf4, 0x94, 0xa2, 0xd3, 0x3b, 0x8b,
+ 0x0c, 0x22, 0xa0, 0xac, 0xb3, 0xb5, 0xdf, 0xf2,
+ 0x27, 0x38, 0x47, 0x53, 0x5b, 0x6e, 0x8f, 0x98,
+ 0x9e, 0xad, 0xb6, 0xf5, 0x0e, 0x17, 0x20, 0x35,
+ 0x54, 0x6b, 0x73, 0xa6, 0x64, 0x65, 0xac, 0xb8,
+ 0xc1, 0xd3, 0xf7, 0x07, 0x82, 0x93, 0x9d, 0xcb,
+ 0xcc, 0xe9, 0x0c, 0x51, 0x52, 0x85, 0x8b, 0x95,
+ 0xa6, 0xb1, 0xce, 0xdc, 0xfa, 0x00, 0x00, 0x08,
+ 0x14, 0x1c, 0x23, 0x2a, 0x35, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0x51, 0xbc, 0x81, 0x7c, 0x36, 0x6a, 0x18, 0xc5,
+ 0x5e, 0xb6, 0x89, 0xf9, 0xf2, 0xaf, 0xba, 0x61,
+ 0x34, 0x2b, 0x1e, 0xe1, 0xae, 0xb1, 0xa2, 0x6f,
+ 0x5a, 0x6b, 0x6e, 0xc6, 0x01, 0x23, 0x2a, 0x47,
+ 0xd8, 0x3a, 0xec, 0x87, 0x93, 0x62, 0x3b, 0x4b,
+ 0xcf, 0x37, 0x7c, 0x9a, 0x95, 0xff, 0xf1, 0xc1,
+ 0x2b, 0xfc, 0x2f, 0x53, 0xbd, 0x90, 0x93, 0x3d,
+ 0xc4, 0xb8, 0x43, 0xeb, 0xd9, 0x0d, 0x74, 0x4c,
+ 0xca, 0x65, 0x02, 0x8c, 0x2c, 0x60, 0xc6, 0x11,
+ 0xe5, 0xbe, 0xcd, 0xea, 0x0e, 0xc0, 0x4f, 0x82,
+ 0x1f, 0xad, 0xa5, 0x65, 0xd9, 0xc9, 0x69, 0xa3,
+ 0x23, 0xb7, 0x12, 0xb5, 0xc3, 0x9e, 0x78, 0x68,
+ 0x5b, 0x6b, 0x21, 0x59, 0x5b, 0x49, 0x02, 0xfb,
+ 0xda, 0x35, 0x8c, 0x8c, 0x74, 0x41, 0x8b, 0x46,
+ 0xdc, 0x7b, 0xd8, 0x1e, 0x03, 0x47, 0x96, 0xc2,
+ 0x96, 0xdc, 0x56, 0x0f, 0x86, 0xed, 0x95, 0xee,
+ 0xf0, 0x27, 0xed, 0x82, 0x9d, 0x32, 0x72, 0x13,
+ 0x49, 0x76, 0xf4, 0xc3, 0x04, 0xca, 0x4c, 0x16,
+ 0x22, 0xf1, 0xab, 0x00, 0x8f, 0x15, 0x5a, 0xf7,
+ 0x72, 0xf0, 0x79, 0x5a, 0x46, 0x57, 0xc8, 0x2f,
+ 0xa2, 0x1f, 0x34, 0x6d, 0x20, 0x28, 0x14, 0x1d,
+ 0x2e, 0x14, 0x31, 0x9b, 0x58, 0xac, 0x25, 0x0f,
+ 0x91, 0x6f, 0xd6, 0xd7, 0xca, 0x34, 0x06, 0x32,
+ 0x24, 0x5d, 0x65, 0x65, 0x50, 0x90, 0x4f, 0x11,
+ 0x5a, 0xee, 0x36, 0xc7, 0x72, 0x34, 0xbb, 0x9d,
+ 0xe9, 0xd5, 0xf2, 0x84, 0xa9, 0xa7, 0x04, 0xd5,
+ 0x2d, 0xb0, 0x8b, 0x78, 0x0b, 0x87, 0x86, 0xa0,
+ 0xff, 0x07, 0x1f, 0x61, 0x08, 0xdb, 0x41, 0x22,
+ 0x3e, 0xe3, 0x97, 0x4b, 0x13, 0x70, 0x8e, 0x8a,
+ 0x96, 0x04, 0xae, 0x73, 0x3d, 0x43, 0x5b, 0x86,
+ 0x9f, 0xa7, 0xba, 0xa6, 0xaf, 0x5c, 0x94, 0xfd,
+ 0xcb, 0xc3, 0x77, 0xc8, 0x5f, 0xe3, 0x33, 0x1f,
+ 0x8b, 0x5a, 0xb1, 0x20, 0xc7, 0x96, 0xd5, 0xb3,
+ 0xc2, 0xb7, 0xa6, 0x59, 0x0b, 0x13, 0x2f, 0xca,
+ 0xe5, 0xb6, 0x17, 0x40, 0xa7, 0xba, 0xa3, 0xe0,
+ 0x80, 0xdc, 0xf4, 0xe7, 0x9b, 0xd3, 0x53, 0xc5,
+ 0xe4, 0x08, 0xa3, 0x72, 0xd3, 0x65, 0xf3, 0xd3,
+ 0xdd, 0x72, 0xe8, 0x5c, 0xdd, 0xed, 0x11, 0x20,
+ 0x84, 0xf9, 0x54, 0x9e, 0xce, 0xcb, 0x30, 0x81,
+ 0xa1, 0xf1, 0x05, 0x16, 0xb0, 0x69, 0x57, 0x4d,
+ 0xd5, 0x24, 0xd2, 0x8d, 0xd6, 0x46, 0x8e, 0x96,
+ 0xb5, 0x4b, 0xcc, 0x80, 0x2f, 0x37, 0x2a, 0x7a,
+ 0x2e, 0x4a, 0x94, 0x5d, 0x6a, 0x40, 0x95, 0x48,
+ 0xc3, 0x34, 0x9c, 0xac, 0xe5, 0xcd, 0x91, 0xd9,
+ 0x34, 0x51, 0x01, 0x67, 0x56, 0xfe, 0x9b, 0x16,
+ 0x64, 0x1e, 0xed, 0x42, 0xc9, 0xc6, 0xa3, 0xf9,
+ 0xd6, 0x7b, 0xf8, 0x36, 0xad, 0x1c, 0xd0, 0x10,
+ 0x9c, 0x07, 0xe8, 0xb2, 0x2f, 0x86, 0xcd, 0xe7,
+ 0x1d, 0xa3, 0xb8, 0x45, 0xca, 0x3b, 0x53, 0x79,
+ 0xc9, 0x25, 0x73, 0x8f, 0x83, 0x75, 0x62, 0x90,
+ 0x6a, 0x70, 0x8c, 0xf3, 0xed, 0x0b, 0x95, 0x37,
+ 0xe4, 0xb2, 0xae, 0x5f, 0xa1, 0xd7, 0x0b, 0x10,
+ 0xfe, 0xda, 0x49, 0xe2, 0x2e, 0x03, 0x08, 0x55,
+ 0xed, 0x7c, 0x42, 0x3e, 0xd7, 0xc2, 0x96, 0x87,
+ 0x65, 0x67, 0x7e, 0x46, 0x48, 0x74, 0x89, 0xdc,
+ 0x3c, 0x91, 0x72, 0x14, 0x7a, 0x4f, 0xac, 0x47,
+ 0xe5, 0x9f, 0x7d, 0x9f, 0xe6, 0xf7, 0xf8, 0x5d,
+ 0xd7, 0x36, 0xe9, 0xe1, 0x2d, 0x64, 0x77, 0xd3,
+ 0x53, 0x99, 0x45, 0xdd, 0xbf, 0x2e, 0xb5, 0x61,
+ 0xe1, 0x56, 0xce, 0x51, 0x2e, 0x10, 0x1f, 0xef,
+ 0xd8, 0x76, 0xc3, 0x1a, 0x2f, 0x06, 0x85, 0xb7,
+ 0x89, 0x31, 0xbd, 0x31, 0x75, 0x90, 0x22, 0xba,
+ 0x52, 0x5e, 0x10, 0xb0, 0x22, 0x39, 0x64, 0xa3,
+ 0x22, 0x2e, 0x88, 0x0b, 0xc1, 0x33, 0xd3, 0xa3,
+ 0xef, 0x7f, 0xca, 0x7e, 0x07, 0xc8, 0xe6, 0x64,
+ 0xd8, 0x53, 0x83, 0x28, 0x2a, 0x10, 0x3a, 0x77,
+ 0x85, 0x22, 0xdb, 0x61, 0xd8, 0x49, 0x20, 0x76,
+ 0x97, 0x0d, 0xf7, 0x07, 0x2c, 0x9a, 0xbf, 0x66,
+ 0x04, 0x49, 0x50, 0xb6, 0x70, 0xb5, 0x17, 0x95,
+ 0xef, 0xe6, 0x9d, 0x7a, 0xdd, 0xed, 0x6b, 0x22,
+ 0x5e, 0x89, 0x65, 0x72, 0xf1, 0xf6, 0x86, 0xcb,
+ 0x76, 0x84, 0x7d, 0x22, 0x3b, 0x5c, 0x84, 0x48,
+ 0x48, 0x7a, 0x00, 0x83, 0x03, 0x97, 0x01, 0x47,
+ 0x46, 0x8f, 0x2a, 0x40, 0x61, 0xd6, 0x32, 0xd8,
+ 0x3d, 0x59, 0x10, 0x78, 0xaf, 0x22, 0x33, 0xe5,
+ 0x44, 0x63, 0x78, 0x5d, 0x56, 0x01, 0x24, 0x59,
+ 0x19, 0x8d, 0x52, 0xb4, 0xc3, 0x7b, 0x97, 0x5f,
+ 0x61, 0xcb, 0x48, 0x78, 0xa6, 0x7c, 0x1d, 0x06,
+ 0xb2, 0x4b, 0xdf, 0x7a, 0x31, 0xa9, 0xb2, 0x53,
+ 0xe5, 0x3e, 0x3e, 0xfe, 0xbf, 0x71, 0x18, 0x69,
+ 0x86, 0x4c, 0xf5, 0x30, 0x89, 0xaa, 0xa8, 0x6c,
+ 0x78, 0x64, 0xc8, 0x33, 0x3b, 0x2d, 0x63, 0xbd,
+ 0x24, 0x30, 0xfa, 0x8a, 0x3c, 0xd7, 0x82, 0xa5,
+ 0x31, 0x84, 0x96, 0x1b, 0xb3, 0x3b, 0x7b, 0x9e,
+ 0x80, 0xef, 0xbb, 0xaf, 0x1e, 0x88, 0xa3, 0x75,
+ 0x0d, 0x73, 0xbf, 0xf4, 0x36, 0x42, 0x2a, 0x98,
+ 0xda, 0x7d, 0x9b, 0xab, 0x15, 0x26, 0xe4, 0x0b,
+ 0x0c, 0x95, 0xaf, 0x8b, 0x8d, 0x8d, 0x67, 0x5b,
+ 0x1f, 0x42, 0xce, 0xb0, 0x47, 0x94, 0x94, 0x57,
+ 0x15, 0xba, 0xa4, 0x82, 0x5d, 0xc4, 0x71, 0x6b,
+ 0xeb, 0xc6, 0xdf, 0x22, 0xef, 0xd8, 0x89, 0xd8,
+ 0xfb, 0xc5, 0xce, 0xf2, 0xf3, 0x94, 0x64, 0xe1,
+ 0xc1, 0x17, 0x2d, 0x3e, 0xa5, 0xb6, 0xf5, 0x65,
+ 0xf6, 0xb3, 0xeb, 0xa9, 0x5d, 0xfa, 0x3e, 0xff,
+ 0x1c, 0xbb, 0x52, 0xd8, 0x80, 0x09, 0x1c, 0x18,
+ 0x25, 0x57, 0x4b, 0x4b, 0x30, 0xfe, 0xb2, 0xe5,
+ 0x03, 0x87, 0x6f, 0x6c, 0x2b, 0x83, 0x5a, 0xf3,
+ 0x37, 0x72, 0x11, 0xe4, 0xfd, 0x76, 0x1e, 0x28,
+ 0xe6, 0x65, 0x12, 0x4e, 0xb8, 0xcd, 0x90, 0xba,
+ 0xdf, 0x6e, 0x4e, 0xc9, 0x4b, 0xf5, 0x7c, 0x9f,
+ 0xb3, 0xe6, 0xab, 0xd5, 0xcd, 0x26, 0xe4, 0x74,
+ 0x65, 0xe7, 0x84, 0x9c, 0x28, 0x7a, 0x6f, 0x1f,
+ 0x6c, 0xbe, 0xcc, 0xa7, 0xf3, 0x2e, 0x56, 0x92,
+ 0x88, 0xfb, 0x99, 0x1f, 0xed, 0xed, 0xf0, 0xc1,
+ 0x1a, 0x75, 0x13, 0x47, 0x0c, 0x88, 0x3c, 0x99,
+ 0x72, 0x02, 0x36, 0x40, 0x48, 0x26, 0x31, 0xc4,
+ 0xa0, 0x80, 0x79, 0x40, 0x1f, 0xfb, 0xff, 0xab,
+ 0x7f, 0xe6, 0x45, 0x71, 0xed, 0x8e, 0x12, 0x1b,
+ 0x4c, 0x4f, 0xa1, 0xd1, 0xc8, 0x94, 0xa4, 0xe8,
+ 0x2a, 0x76, 0xe3, 0x19, 0x52, 0xad, 0x4e, 0x4c,
+ 0x97, 0xf7, 0xc8, 0x67, 0x90, 0x49, 0x36, 0x0b,
+ 0x54, 0xf5, 0xe0, 0xce, 0x25, 0x27, 0x9c, 0xa6,
+ 0x9c, 0x2d, 0xd5, 0xaa, 0x58, 0x19, 0x14, 0x62,
+ 0x19, 0x9d, 0xe6, 0x54, 0xda, 0x47, 0x0b, 0x24,
+ 0xf1, 0xb5, 0xe0, 0x55, 0xaf, 0x5d, 0x30, 0x93,
+ 0x1c, 0x95, 0xda, 0xa5, 0x94, 0xf9, 0x3d, 0xa7,
+ 0x40, 0x92, 0xcd, 0x18, 0xa7, 0x3f, 0x3f, 0xa5,
+ 0x9e, 0xe2, 0x01, 0xe0, 0xae, 0xd1, 0xe8, 0xdb,
+ 0xc2, 0x79, 0x7a, 0x6e, 0x5b, 0xd4, 0x1d, 0x68,
+ 0x39, 0xd8, 0xea, 0xa1, 0x4b, 0x95, 0xb4, 0xed,
+ 0x94, 0x96, 0x37, 0x5f, 0xb4, 0x3d, 0x97, 0x4a,
+ 0x77, 0x51, 0xf8, 0x57, 0x74, 0xc8, 0xe2, 0x62,
+ 0x17, 0x53, 0x23, 0x0e, 0x47, 0x6c, 0xd5, 0x4a,
+ 0x87, 0x7d, 0xe8, 0x97, 0x0b, 0x23, 0x24, 0x80,
+ 0x6b, 0x56, 0x04, 0x5e, 0xbf, 0x0d, 0x22, 0x18,
+ 0xac, 0xc8, 0xbc, 0xe0, 0xfa, 0x57, 0x80, 0xa7,
+ 0x99, 0xca, 0xdc, 0xe9, 0xe6, 0x8a, 0x11, 0x7c,
+ 0x99, 0x41, 0xb8, 0x76, 0xe7, 0x91, 0x72, 0x85,
+ 0x97, 0xe7, 0xd3, 0x8e, 0xee, 0x16, 0x3c, 0x47,
+ 0x9c, 0xef, 0x02, 0x61, 0x18, 0x71, 0x9b, 0xf8,
+ 0xae, 0x55, 0x89, 0x5d, 0x4a, 0xcd, 0x5b, 0x9c,
+ 0x0b, 0x97, 0xef, 0x5c, 0xbc, 0xad, 0x72, 0xf9,
+ 0x4f, 0xfe, 0xa3, 0x13, 0xd6, 0x0f, 0x5d, 0x3a,
+ 0x87, 0x46, 0xf3, 0x40, 0x37, 0xd0, 0x99, 0xfe,
+ 0xa5, 0xc7, 0x1d, 0xb4, 0x95, 0xb0, 0x55, 0x3a,
+ 0x47, 0x66, 0x0a, 0xc8, 0x4e, 0xe0, 0xcb, 0xc5,
+ 0x80, 0x6d, 0x34, 0x91, 0x39, 0xc1, 0x71, 0xb9,
+ 0x54, 0x5e, 0xb4, 0xfd, 0x6c, 0x54, 0xc3, 0x9c,
+ 0xde, 0x83, 0xb4, 0x5d, 0x4b, 0xa9, 0x1c, 0x25,
+ 0x0e, 0x8e, 0x51, 0x3e, 0xa5, 0x59, 0x5f, 0x20,
+ 0x5b, 0x43, 0xf8, 0xa4, 0x7d, 0x7f, 0x0c, 0xb2,
+ 0x87, 0x2b, 0xf1, 0xdc, 0xf2, 0xd5, 0x2b, 0x19,
+ 0x4d, 0x60, 0x18, 0x25, 0x4b, 0x31, 0xa5, 0x08,
+ 0x6b, 0x4d, 0x0e, 0xec, 0x0a, 0x65, 0x31, 0xc5,
+ 0x1a, 0xf3, 0x4d, 0x16, 0xed, 0x24, 0x89, 0xeb,
+ 0xfe, 0xe2, 0x7c, 0xb1, 0x64, 0xc7, 0x10, 0x2e,
+ 0x27, 0x44, 0x7e, 0xb3, 0x60, 0x88, 0x5d, 0x0a,
+ 0xb0, 0x1c, 0x62, 0xda, 0x94, 0x63, 0xfe, 0xf3,
+ 0x82, 0x32, 0xc3, 0x44, 0x56, 0x46, 0x8f, 0xc4,
+ 0x81, 0x86, 0xf2, 0x89, 0x19, 0x6f, 0xfc, 0x09,
+ 0x57, 0x56, 0xba, 0xcb, 0xbf, 0x0d, 0xf0, 0x4b,
+ 0x2f, 0x63, 0x6f, 0x18, 0x22, 0x5f, 0xa7, 0x86,
+ 0x5b, 0x0d, 0x1e, 0x05, 0xf5, 0x33, 0x0b, 0xbe,
+ 0x62, 0xc7, 0xe0, 0xdf, 0xb0, 0x17, 0xec, 0x68,
+ 0x0f, 0x2c, 0x77, 0x68, 0x6c, 0xad, 0xdb, 0xdd,
+ 0x36, 0xab, 0x8c, 0xd7, 0xd0, 0xa9, 0xff, 0x4c,
+ 0x7c, 0x53, 0x18, 0x25, 0x8c, 0x6d, 0xec, 0x4d,
+ 0x81, 0xce, 0x00, 0x56, 0xda, 0x23, 0x8d, 0xea,
+ 0xbf, 0x68, 0x04, 0x16, 0xff, 0x6b, 0xc1, 0x61,
+ 0xfb, 0x80, 0x79, 0x81, 0x65, 0xec, 0x99, 0xfd,
+ 0xb2, 0xba, 0x41, 0x11, 0xf5, 0xbd, 0x79, 0xcc,
+ 0x37, 0x5f, 0xa6, 0xde, 0x29, 0x16, 0x3f, 0x2e,
+ 0x93, 0xd0, 0x5d, 0xad, 0xff, 0x67, 0x05, 0x70,
+ 0x65, 0xa1, 0x3d, 0xb1, 0xe0, 0x46, 0x87, 0x62,
+ 0x4f, 0xf7, 0xec, 0x51, 0x60, 0x5f, 0x83, 0x68,
+ 0x3a, 0xd8, 0x89, 0x90, 0x1e, 0x12, 0x8b, 0xfa,
+ 0x3d, 0xb9, 0x8b, 0xff, 0x91, 0xe9, 0xa7, 0x6f,
+ 0x2e, 0x04, 0xfd, 0xd8, 0xeb, 0x58, 0x90, 0x68,
+ 0x6d, 0xdb, 0x2f, 0xeb, 0x34, 0x9b, 0x3a, 0xb9,
+ 0x07, 0xba, 0xa0, 0x71, 0xcc, 0xc4, 0xe2, 0xc3,
+ 0xf1, 0x8d, 0xd0, 0x6e, 0x79, 0xf5, 0x8d, 0xda,
+ 0x51, 0x57, 0xe8, 0x9d, 0x2c, 0xe1, 0x81, 0xf7,
+ 0x1e, 0x30, 0x28, 0x5d, 0x09, 0x85, 0x25, 0x2d,
+ 0x44, 0x18, 0xef, 0x1c, 0x3a, 0x5d, 0x84, 0x2b,
+ 0xbe, 0x5c, 0x78, 0x90, 0x4c, 0xfe, 0x9a, 0x3d,
+ 0x1d, 0x3c, 0xac, 0x05, 0x9a, 0xca, 0x8a, 0x17,
+ 0x53, 0x61, 0xd7, 0x97, 0x6b, 0xab, 0xec, 0xff,
+ 0xe5, 0x2c, 0x0f, 0xe7, 0x34, 0x57, 0x17, 0x40,
+ 0xeb, 0xed, 0x8f, 0xe4, 0x72, 0xd0, 0xbe, 0xb1,
+ 0xbe, 0xd3, 0x09, 0x3d, 0x4d, 0xf4, 0xdd, 0x5f,
+ 0x95, 0x98, 0x54, 0x85, 0x72, 0x50, 0x99, 0xec,
+ 0x63, 0xba, 0x18, 0xa0, 0x1e, 0x81, 0x45, 0x4c,
+ 0x8e, 0xd3, 0x67, 0x90, 0xa2, 0xd6, 0x45, 0x5e,
+ 0x30, 0x68, 0xa0, 0x16, 0x0f, 0x90, 0xbb, 0x04,
+ 0x85, 0x5e, 0x90, 0xf7, 0x1b, 0x52, 0xaf, 0x55,
+ 0x47, 0xcf, 0x75, 0x11, 0x73, 0xc4, 0xec, 0x4f,
+ 0x0f, 0x44, 0x4d, 0xd3, 0x92, 0xdf, 0x5d, 0x9d,
+ 0x12, 0x38, 0x72, 0x38, 0xaa, 0x06, 0xf2, 0x45,
+ 0xf5, 0xa8, 0xdd, 0x8f, 0xd2, 0x7a, 0x96, 0x0f,
+ 0x3f, 0xca, 0xa3, 0x79, 0xe2, 0xed, 0x12, 0x62,
+ 0x62, 0x7a, 0x01, 0x7a, 0xa0, 0xc5, 0x31, 0x1f,
+ 0x49, 0x2b, 0x87, 0x49, 0xd6, 0x90, 0xfd, 0xfc,
+ 0xdc, 0xac, 0x4c, 0x15, 0x1a, 0xe1, 0x66, 0xf2,
+ 0xfa, 0xe9, 0x58, 0x6d, 0x57, 0x24, 0x90, 0x78,
+ 0x7a, 0x05, 0x73, 0x9f, 0x96, 0x30, 0x5b, 0xa8,
+ 0x69, 0x18, 0xa2, 0x24, 0x5c, 0xf2, 0xc3, 0xb0,
+ 0x8d, 0xa6, 0x71, 0x28, 0x46, 0x94, 0x33, 0x0a,
+ 0x95, 0xd9, 0x32, 0xc9, 0x93, 0x7f, 0xa4, 0xee,
+ 0x8e, 0x3f, 0x21, 0x1b, 0xa2, 0xfe, 0x09, 0x03,
+ 0xe0, 0x63, 0xb0, 0xbe, 0xa8, 0x19, 0x16, 0xd1,
+ 0x38, 0x81, 0xdf, 0x9b, 0x89, 0x47, 0x00, 0x7f,
+ 0xaa, 0xe9, 0xb7, 0x51, 0xab, 0x27, 0x4c, 0xdd,
+ 0x50, 0xf0, 0x45, 0xaf, 0x26, 0x4c, 0xe3, 0x33,
+ 0x79, 0x43, 0x87, 0x59, 0xbf, 0x6e, 0x38, 0xdb,
+ 0x28, 0x3b, 0x99, 0x12, 0xc2, 0x3a, 0xca, 0x6f,
+ 0x9d, 0x99, 0x10, 0x4d, 0x0c, 0xdf, 0xc3, 0xc3,
+ 0x4f, 0xb0, 0xe5, 0x62, 0xd1, 0xca, 0x27, 0x14,
+ 0xc7, 0xf5, 0x65, 0x86, 0x69, 0x92, 0x59, 0xf3,
+ 0xd9, 0x51, 0x67, 0x45, 0x5f, 0x33, 0xc8, 0xd9,
+ 0x41, 0xe5, 0x45, 0x5d, 0x80, 0x58, 0x6d, 0x9a,
+ 0xf7, 0xa9, 0xc9, 0xb1, 0x36, 0x3b, 0xd2, 0xb0,
+ 0x25, 0xdb, 0x58, 0x5c, 0x77, 0x7a, 0xb0, 0x51,
+ 0x2f, 0xb5, 0xa3, 0xdc, 0x1a, 0xfd, 0x48, 0x76,
+ 0x89, 0x5f, 0x25, 0x00, 0xe6, 0x89, 0x6a, 0xf7,
+ 0x95, 0xfd, 0x13, 0x6b, 0xe9, 0xdf, 0x28, 0x8c,
+ 0x73, 0x2c, 0x08, 0x67, 0x8f, 0x3f, 0x0f, 0x92,
+ 0xb0, 0xb6, 0x73, 0xb9, 0xca, 0xa6, 0x55, 0xe8,
+ 0x5e, 0xc5, 0xb0, 0x68, 0xbd, 0x96, 0x6b, 0xab,
+ 0x43, 0x29, 0xcb, 0x28, 0xc4, 0x03, 0xf5, 0x6f,
+ 0xef, 0x74, 0x7b, 0x50, 0xb8, 0x2f, 0xac, 0x61,
+ 0xad, 0xe9, 0x90, 0x7f, 0x78, 0xcd, 0xa1, 0xed,
+ 0x9e, 0x64, 0xf2, 0x95, 0x5f, 0x05, 0xae, 0xe5,
+ 0x57, 0x77, 0x31, 0x05, 0x75, 0xdc, 0xaa, 0x30,
+ 0x43, 0x12, 0x5f, 0x5b, 0xcb, 0x78, 0x31, 0x6e,
+ 0xd0, 0x92, 0x60, 0x61, 0xdb, 0x60, 0xe4, 0xe5,
+ 0xce, 0x35, 0x8f, 0x0c, 0xb3, 0xc1, 0xb9, 0x4f,
+ 0xe5, 0xc6, 0xf2, 0x5e, 0xcc, 0xf4, 0xf8, 0x9b,
+ 0x49, 0xa9, 0xed, 0xc8, 0xcb, 0x73, 0x4d, 0xc6,
+ 0x63, 0xad, 0xb1, 0xdb, 0x65, 0xa9, 0x8e, 0x81,
+ 0x26, 0x16, 0x7e, 0x7b, 0x46, 0xcc, 0xb2, 0x21,
+ 0x45, 0x1e, 0xce, 0x77, 0x01, 0x7c, 0x88, 0x10,
+ 0xfe, 0x9d, 0x7e, 0x63, 0xe0, 0x36, 0x0b, 0xcf,
+ 0x24, 0x06, 0x21, 0x34, 0x4f, 0x98, 0x38, 0x90,
+ 0xdc, 0xe1, 0x03, 0x25, 0x32, 0xcf, 0x72, 0xb8,
+ 0xd0, 0x48, 0xf8, 0x9b, 0xaa, 0xde, 0xc5, 0xfc,
+ 0x9d, 0xa6, 0x1c, 0xcb, 0x8e, 0xaa, 0x1b, 0x87,
+ 0xd4, 0x22, 0x3d, 0x47, 0x5e, 0x60, 0xc3, 0xa4,
+ 0xc5, 0xf6, 0x5e, 0x88, 0xf1, 0x15, 0xcf, 0x42,
+ 0x3d, 0xd3, 0x47, 0x24, 0x11, 0x32, 0x74, 0x98,
+ 0xda, 0x9b, 0x23, 0x79, 0x20, 0xf1, 0xd8, 0x0c,
+ 0x59, 0x8f, 0x61, 0x22, 0xda, 0x16, 0x60, 0xa0,
+ 0x4d, 0x46, 0x30, 0x09, 0x59, 0xf5, 0xe1, 0xee,
+ 0xe6, 0x72, 0x3a, 0xc2, 0x86, 0xa1, 0x17, 0x36,
+ 0x21, 0x91, 0xff, 0x55, 0x9c, 0x73, 0xdf, 0xd8,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0x51, 0xbc, 0x81, 0x7c, 0x36, 0x6a, 0x18, 0xc5,
+ 0x5e, 0xb6, 0x89, 0xf9, 0xf2, 0xaf, 0xba, 0x61,
+ 0x34, 0x2b, 0x1e, 0xe1, 0xae, 0xb1, 0xa2, 0x6f,
+ 0x5a, 0x6b, 0x6e, 0xc6, 0x01, 0x23, 0x2a, 0x47,
+ 0x8f, 0x0c, 0x0c, 0x2d, 0xf1, 0xaa, 0x78, 0x0c,
+ 0xd0, 0xe0, 0x2f, 0xd6, 0xd9, 0x60, 0x2d, 0x5d,
+ 0x03, 0x35, 0x9e, 0x61, 0xd3, 0x41, 0xd3, 0xac,
+ 0x52, 0xcc, 0x51, 0x6e, 0x97, 0xb1, 0xa3, 0x61,
+ 0x4c, 0x1b, 0x49, 0xb6, 0x85, 0xb6, 0xe8, 0xff,
+ 0x76, 0x8c, 0x0d, 0x3c, 0x77, 0xaf, 0x9f, 0xe3,
+ 0xb3, 0x8d, 0x21, 0xab, 0x89, 0x94, 0x75, 0x93,
+ 0xbc, 0xf6, 0x9e, 0x5c, 0xf7, 0x8a, 0x8b, 0xf5,
+ 0xdf, 0x40, 0xe4, 0x56, 0xf9, 0x1e, 0x1c, 0x0f,
+ 0xd6, 0xeb, 0xf5, 0x0f, 0x40, 0xb0, 0x7e, 0x5c,
+ 0x41, 0xcd, 0x72, 0xab, 0xdd, 0x2e, 0xd2, 0xc0,
+ 0xd5, 0x6b, 0x54, 0xc4, 0x4f, 0xa0, 0x87, 0x98,
+ 0x53, 0x71, 0x58, 0x67, 0x72, 0x50, 0x32, 0x58,
+ 0x53, 0x32, 0x08, 0x26, 0x34, 0x18, 0x32, 0x06,
+ 0x61, 0x83, 0x24, 0x86, 0x43, 0x31, 0x05, 0x67,
+ 0x82, 0x13, 0x58, 0x83, 0x85, 0x83, 0x76, 0x44,
+ 0x61, 0x27, 0x13, 0x10, 0x30, 0x66, 0x83, 0x23,
+ 0x04, 0x57, 0x20, 0x83, 0x71, 0x76, 0x40, 0x41,
+ 0x32, 0x88, 0x25, 0x18, 0x58, 0x65, 0x03, 0x34,
+ 0x65, 0x15, 0x73, 0x60, 0x48, 0x00, 0x03, 0x53,
+ 0x12, 0x14, 0x81, 0x41, 0x55, 0x16, 0x28, 0x48,
+ 0x58, 0x80, 0x74, 0x53, 0x42, 0x14, 0x16, 0x76,
+ 0x60, 0x26, 0x30, 0x21, 0x56, 0x60, 0x46, 0x50,
+ 0x65, 0x37, 0x08, 0x77, 0x12, 0x65, 0x48, 0x01,
+ 0x01, 0x04, 0x32, 0x25, 0x08, 0x77, 0x14, 0x70,
+ 0x08, 0x50, 0x44, 0x58, 0x05, 0x33, 0x83, 0x04,
+ 0x78, 0x76, 0x57, 0x17, 0x88, 0x64, 0x65, 0x08,
+ 0x40, 0x47, 0x08, 0x32, 0x25, 0x47, 0x04, 0x64,
+ 0x40, 0x24, 0x10, 0x84, 0x72, 0x36, 0x52, 0x21,
+ 0x26, 0x56, 0x73, 0x62, 0x43, 0x38, 0x50, 0x67,
+ 0x38, 0x77, 0x82, 0x36, 0x48, 0x71, 0x12, 0x26,
+ 0x87, 0x87, 0x14, 0x67, 0x21, 0x88, 0x15, 0x00,
+ 0x87, 0x05, 0x66, 0x60, 0x77, 0x58, 0x77, 0x77,
+ 0x51, 0x56, 0x77, 0x24, 0x21, 0x58, 0x46, 0x56,
+ 0x65, 0x34, 0x14, 0x15, 0x66, 0x83, 0x52, 0x12,
+ 0x03, 0x50, 0x58, 0x76, 0x17, 0x00, 0x60, 0x44,
+ 0x10, 0x37, 0x17, 0x05, 0x46, 0x53, 0x24, 0x80,
+ 0x01, 0x66, 0x20, 0x30, 0x45, 0x62, 0x87, 0x71,
+ 0x77, 0x18, 0x47, 0x31, 0x62, 0x51, 0x52, 0x67,
+ 0x00, 0x45, 0x87, 0x77, 0x72, 0x41, 0x81, 0x84,
+ 0x77, 0x13, 0x25, 0x43, 0x24, 0x51, 0x08, 0x68,
+ 0x85, 0x67, 0x71, 0x61, 0x02, 0x68, 0x00, 0x05,
+ 0x46, 0x23, 0x54, 0x70, 0x10, 0x06, 0x25, 0x75,
+ 0x11, 0x36, 0x04, 0x66, 0x33, 0x38, 0x20, 0x88,
+ 0x15, 0x88, 0x10, 0x25, 0x72, 0x37, 0x56, 0x76,
+ 0x30, 0x20, 0x10, 0x50, 0x28, 0x61, 0x88, 0x82,
+ 0x85, 0x44, 0x45, 0x46, 0x18, 0x52, 0x45, 0x65,
+ 0x32, 0x67, 0x51, 0x44, 0x37, 0x52, 0x87, 0x10,
+ 0x26, 0x86, 0x67, 0x35, 0x13, 0x65, 0x45, 0x58,
+ 0x57, 0x38, 0x56, 0x77, 0x23, 0x74, 0x83, 0x82,
+ 0x54, 0x24, 0x44, 0x32, 0x68, 0x20, 0x31, 0x24,
+ 0x53, 0x35, 0x14, 0x83, 0x12, 0x12, 0x63, 0x35,
+ 0x45, 0x66, 0x50, 0x62, 0x48, 0x42, 0x16, 0x86,
+ 0x43, 0x61, 0x18, 0x15, 0x23, 0x88, 0x04, 0x82,
+ 0x81, 0x88, 0x16, 0x47, 0x37, 0x41, 0x55, 0x20,
+ 0x57, 0x34, 0x78, 0x54, 0x44, 0x65, 0x87, 0x62,
+ 0x85, 0x26, 0x21, 0x80, 0x28, 0x31, 0x25, 0x74,
+ 0x73, 0x61, 0x02, 0x65, 0x40, 0x47, 0x03, 0x34,
+ 0x48, 0x31, 0x00, 0x51, 0x75, 0x25, 0x11, 0x05,
+ 0x11, 0x12, 0x24, 0x77, 0x28, 0x38, 0x50, 0x56,
+ 0x70, 0x31, 0x28, 0x65, 0x57, 0x52, 0x07, 0x18,
+ 0x51, 0x08, 0x10, 0x27, 0x54, 0x82, 0x04, 0x36,
+ 0x00, 0x18, 0x13, 0x00, 0x81, 0x85, 0x33, 0x65,
+ 0x67, 0x08, 0x75, 0x73, 0x06, 0x23, 0x44, 0x65,
+ 0x45, 0x41, 0x61, 0x33, 0x80, 0x72, 0x23, 0x12,
+ 0x43, 0x08, 0x01, 0x25, 0x68, 0x02, 0x73, 0x75,
+ 0x71, 0x01, 0x10, 0x51, 0x86, 0x18, 0x84, 0x23,
+ 0x54, 0x81, 0x22, 0x24, 0x23, 0x73, 0x75, 0x16,
+ 0x78, 0x73, 0x24, 0x05, 0x71, 0x13, 0x18, 0x85,
+ 0x00, 0x66, 0x81, 0x76, 0x01, 0x07, 0x84, 0x35,
+ 0x75, 0x28, 0x05, 0x54, 0x32, 0x40, 0x18, 0x11,
+ 0x55, 0x88, 0x30, 0x40, 0x28, 0x27, 0x10, 0x06,
+ 0x63, 0x04, 0x06, 0x02, 0x01, 0x33, 0x52, 0x36,
+ 0x11, 0x27, 0x48, 0x03, 0x83, 0x16, 0x26, 0x15,
+ 0x03, 0x46, 0x87, 0x32, 0x37, 0x51, 0x71, 0x83,
+ 0x31, 0x86, 0x40, 0x70, 0x18, 0x43, 0x08, 0x16,
+ 0x06, 0x77, 0x33, 0x80, 0x52, 0x52, 0x30, 0x40,
+ 0x47, 0x82, 0x65, 0x61, 0x43, 0x10, 0x45, 0x52,
+ 0x62, 0x68, 0x32, 0x55, 0x01, 0x68, 0x45, 0x71,
+ 0x31, 0x50, 0x43, 0x27, 0x22, 0x47, 0x56, 0x73,
+ 0x35, 0x80, 0x20, 0x87, 0x45, 0x41, 0x26, 0x04,
+ 0x52, 0x05, 0x63, 0x52, 0x50, 0x32, 0x40, 0x87,
+ 0x12, 0x73, 0x67, 0x44, 0x77, 0x38, 0x48, 0x13,
+ 0x64, 0x50, 0x53, 0x00, 0x03, 0x11, 0x66, 0x32,
+ 0x71, 0x02, 0x00, 0x65, 0x06, 0x16, 0x03, 0x24,
+ 0x85, 0x72, 0x83, 0x47, 0x42, 0x11, 0x37, 0x73,
+ 0x72, 0x07, 0x76, 0x05, 0x67, 0x55, 0x77, 0x56,
+ 0x25, 0x33, 0x82, 0x86, 0x14, 0x84, 0x76, 0x51,
+ 0x66, 0x04, 0x45, 0x25, 0x71, 0x88, 0x13, 0x66,
+ 0x04, 0x58, 0x22, 0x65, 0x88, 0x11, 0x28, 0x33,
+ 0x76, 0x14, 0x52, 0x88, 0x61, 0x02, 0x77, 0x38,
+ 0x65, 0x60, 0x85, 0x63, 0x82, 0x10, 0x32, 0x43,
+ 0x51, 0x83, 0x62, 0x28, 0x67, 0x34, 0x84, 0x26,
+ 0x04, 0x53, 0x00, 0x55, 0x66, 0x20, 0x40, 0x68,
+ 0x22, 0x21, 0x00, 0x68, 0x12, 0x42, 0x20, 0x27,
+ 0x07, 0x48, 0x62, 0x70, 0x10, 0x25, 0x48, 0x54,
+ 0x22, 0x51, 0x05, 0x13, 0x03, 0x45, 0x76, 0x53,
+ 0x85, 0x37, 0x03, 0x50, 0x62, 0x00, 0x83, 0x58,
+ 0x07, 0x61, 0x48, 0x87, 0x77, 0x18, 0x22, 0x47,
+ 0x51, 0x64, 0x52, 0x51, 0x55, 0x48, 0x58, 0x22,
+ 0x34, 0x83, 0x01, 0x14, 0x45, 0x58, 0x31, 0x08,
+ 0x04, 0x54, 0x85, 0x24, 0x60, 0x87, 0x17, 0x07,
+ 0x33, 0x13, 0x88, 0x76, 0x15, 0x22, 0x64, 0x76,
+ 0x45, 0x24, 0x11, 0x05, 0x50, 0x13, 0x56, 0x55,
+ 0x03, 0x57, 0x41, 0x78, 0x42, 0x73, 0x40, 0x76,
+ 0x16, 0x63, 0x58, 0x71, 0x84, 0x85, 0x32, 0x71,
+ 0x57, 0x63, 0x35, 0x24, 0x74, 0x67, 0x32, 0x87,
+ 0x84, 0x58, 0x26, 0x65, 0x11, 0x31, 0x27, 0x60,
+ 0x65, 0x06, 0x58, 0x61, 0x31, 0x74, 0x78, 0x60,
+ 0x18, 0x43, 0x54, 0x75, 0x21, 0x34, 0x50, 0x50,
+ 0x80, 0x84, 0x70, 0x05, 0x04, 0x57, 0x16, 0x50,
+ 0x00, 0x10, 0x30, 0x31, 0x61, 0x76, 0x32, 0x54,
+ 0x73, 0x14, 0x57, 0x26, 0x55, 0x75, 0x50, 0x20,
+ 0x38, 0x57, 0x32, 0x60, 0x38, 0x05, 0x42, 0x01,
+ 0x68, 0x42, 0x32, 0x28, 0x78, 0x65, 0x48, 0x64,
+ 0x81, 0x62, 0x24, 0x21, 0x71, 0x68, 0x77, 0x03,
+ 0x78, 0x80, 0x34, 0x55, 0x61, 0x25, 0x51, 0x47,
+ 0x78, 0x41, 0x78, 0x37, 0x12, 0x11, 0x11, 0x83,
+ 0x84, 0x37, 0x10, 0x24, 0x25, 0x32, 0x67, 0x62,
+ 0x55, 0x86, 0x87, 0x72, 0x23, 0x32, 0x51, 0x02,
+ 0x50, 0x47, 0x72, 0x83, 0x25, 0x55, 0x57, 0x05,
+ 0x52, 0x50, 0x08, 0x28, 0x53, 0x83, 0x12, 0x14,
+ 0x64, 0x84, 0x87, 0x56, 0x24, 0x75, 0x82, 0x80,
+ 0x46, 0x15, 0x58, 0x84, 0x77, 0x32, 0x82, 0x18,
+ 0x77, 0x13, 0x04, 0x58, 0x14, 0x07, 0x03, 0x61,
+ 0x47, 0x53, 0x47, 0x43, 0x61, 0x10, 0x56, 0x86,
+ 0x36, 0x03, 0x71, 0x18, 0x23, 0x57, 0x54, 0x56,
+ 0x02, 0x38, 0x87, 0x31, 0x81, 0x17, 0x23, 0x18,
+ 0x86, 0x04, 0x10, 0x53, 0x06, 0x31, 0x37, 0x10,
+ 0x78, 0x45, 0x41, 0x42, 0x34, 0x31, 0x17, 0x42,
+ 0x88, 0x33, 0x43, 0x83, 0x40, 0x23, 0x00, 0x37,
+ 0x21, 0x02, 0x63, 0x02, 0x36, 0x06, 0x05, 0x11,
+ 0x53, 0x76, 0x03, 0x44, 0x81, 0x70, 0x65, 0x68,
+ 0x35, 0x76, 0x00, 0x32, 0x47, 0x85, 0x33, 0x37,
+ 0x50, 0x35, 0x70, 0x63, 0x80, 0x44, 0x06, 0x63,
+ 0x51, 0x30, 0x10, 0x10, 0x34, 0x87, 0x48, 0x51,
+ 0x88, 0x57, 0x88, 0x27, 0x53, 0x04, 0x07, 0x24,
+ 0x04, 0x40, 0x25, 0x22, 0x45, 0x35, 0x10, 0x51,
+ 0x21, 0x40, 0x68, 0x74, 0x42, 0x28, 0x81, 0x82,
+ 0x07, 0x20, 0x53, 0x35, 0x60, 0x63, 0x58, 0x45,
+ 0x73, 0x82, 0x23, 0x00, 0x06, 0x28, 0x11, 0x38,
+ 0x14, 0x78, 0x56, 0x30, 0x77, 0x44, 0x80, 0x05,
+ 0x28, 0x62, 0x40, 0x56, 0x77, 0x57, 0x08, 0x48,
+ 0x83, 0x28, 0x17, 0x04, 0x36, 0x55, 0x76, 0x76,
+ 0x35, 0x73, 0x23, 0x12, 0x66, 0x76, 0x13, 0x67,
+ 0x54, 0x08, 0x32, 0x66, 0x44, 0x52, 0x31, 0x76,
+ 0x27, 0x12, 0x81, 0x84, 0x26, 0x03, 0x10, 0x87,
+ 0x61, 0x77, 0x25, 0x85, 0x14, 0x41, 0x11, 0x61,
+ 0x14, 0x58, 0x15, 0x74, 0x37, 0x85, 0x63, 0x33,
+ 0x71, 0x73, 0x25, 0x83, 0x10, 0x41, 0x51, 0x00,
+ 0x40, 0x02, 0x51, 0x82, 0x11, 0x32, 0x82, 0x50,
+ 0x21, 0x78, 0x03, 0x63, 0x62, 0x10, 0x35, 0x84,
+ 0x03, 0x76, 0x12, 0x71, 0x80, 0x81, 0x16, 0x20,
+ 0x86, 0x70, 0x68, 0x50, 0x01, 0x04, 0x14, 0x86,
+ 0x34, 0x01, 0x85, 0x17, 0x78, 0x45, 0x20, 0x57,
+ 0x28, 0x84, 0x12, 0x76, 0x67, 0x12, 0x61, 0x38,
+ 0x52, 0x62, 0x35, 0x50, 0x15, 0x23, 0x13, 0x51,
+ 0x81, 0x46, 0x37, 0x41, 0x44, 0x21, 0x76, 0x88,
+ 0x31, 0x11, 0x82, 0x51, 0x86, 0x25, 0x78, 0x27,
+ 0x88, 0x54, 0x76, 0x46, 0x50, 0x74, 0x04, 0x60,
+ 0x04, 0x68, 0x37, 0x01, 0x48, 0x72, 0x33, 0x55,
+ 0x02, 0x23, 0x75, 0x20, 0x87, 0x61, 0x41, 0x86,
+ 0x74, 0x31, 0x53, 0x42, 0x77, 0x53, 0x77, 0x87,
+ 0x48, 0x24, 0x71, 0x83, 0x60, 0x51, 0x50, 0x71,
+ 0x06, 0x82, 0x22, 0x20, 0x16, 0x34, 0x55, 0x44,
+ 0x73, 0x75, 0x42, 0x10, 0x40, 0x63, 0x85, 0x68,
+ 0x36, 0x40, 0x27, 0x50, 0x26, 0x40, 0x55, 0x04,
+ 0x04, 0x16, 0x30, 0x43, 0x72, 0x15, 0x80, 0x65,
+ 0x15, 0x58, 0x25, 0x37, 0x20, 0x58, 0x62, 0x61,
+ 0x86, 0x66, 0x54, 0x35, 0x26, 0x46, 0x25, 0x00,
+ 0x42, 0x32, 0x87, 0x75, 0x56, 0x75, 0x63, 0x10,
+ 0x56, 0x53, 0x05, 0x51, 0x18, 0x56, 0x20, 0x36,
+ 0x51, 0x28, 0x04, 0x71, 0x50, 0x11, 0x66, 0x24,
+ 0x44, 0x20, 0x73, 0x33, 0x06, 0x25, 0x31, 0x76,
+ 0x56, 0x42, 0x85, 0x08, 0x85, 0x16, 0x51, 0x31,
+ 0x58, 0x65, 0x36, 0x27, 0x34, 0x71, 0x42, 0x28,
+ 0x05, 0x47, 0x52, 0x37, 0x67, 0x36, 0x08, 0x28,
+ 0x87, 0x26, 0x65, 0x25, 0x28, 0x15, 0x34, 0x17,
+ 0x86, 0x68, 0x18, 0x18, 0x20, 0x25, 0x16, 0x28,
+ 0x03, 0x15, 0x58, 0x01, 0x61, 0x37, 0x10, 0x01,
+ 0x35, 0x40, 0x65, 0x14, 0x18, 0x14, 0x38, 0x82,
+ 0x08, 0x84, 0x26, 0x40, 0x32, 0x65, 0x15, 0x12,
+ 0x62, 0x72, 0x56, 0x02, 0x33, 0x11, 0x41, 0x37,
+ 0x85, 0x80, 0x77, 0x18, 0x20, 0x27, 0x22, 0x44,
+ 0x35, 0x35, 0x30, 0x53, 0x44, 0x20, 0x36, 0x88,
+ 0x55, 0x74, 0x16, 0x33, 0x42, 0x06, 0x77, 0x26,
+ 0x88, 0x06, 0x84, 0x28, 0x47, 0x82, 0x42, 0x46,
+ 0x25, 0x80, 0x08, 0x27, 0x33, 0x18, 0x22, 0x45,
+ 0xa3, 0x5b, 0x84, 0xa6, 0xdf, 0xfe, 0x63, 0x1a,
+ 0x46, 0xf6, 0xfc, 0x60, 0x70, 0x0d, 0x33, 0xd7,
+ 0xa7, 0xc9, 0x16, 0xe9, 0x0d, 0x93, 0x81, 0x6b,
+ 0x42, 0x52, 0x4b, 0xab, 0x54, 0xd5, 0xd1, 0xf7,
+ 0x8b, 0x1a, 0x88, 0xef, 0xea, 0xdb, 0x9e, 0xe3,
+ 0x1c, 0xa8, 0xd8, 0x3e, 0x35, 0xd7, 0x11, 0x27,
+ 0x19, 0xb1, 0x0a, 0x64, 0x68, 0xeb, 0x6c, 0x6e,
+ 0x7b, 0x2b, 0xd2, 0x4d, 0x4a, 0x0d, 0x55, 0x08,
+ 0x47, 0x85, 0xb9, 0x65, 0x0d, 0x29, 0xd0, 0xfa,
+ 0x76, 0x6b, 0x6b, 0xec, 0x51, 0xb7, 0x0a, 0x58,
+ 0xf2, 0xf5, 0xd5, 0xef, 0x75, 0x03, 0xb3, 0x32,
+ 0xfe, 0x1d, 0x67, 0x7f, 0x51, 0x39, 0x62, 0xe0,
+ 0xbe, 0x6f, 0xb6, 0x12, 0x2d, 0x81, 0x75, 0xce,
+ 0x17, 0xa0, 0x34, 0x6f, 0x54, 0x73, 0x2a, 0xa5,
+ 0x6f, 0xfd, 0x41, 0xbe, 0xe0, 0x67, 0xad, 0x2c,
+ 0xb9, 0x79, 0x3c, 0x69, 0x8c, 0x0c, 0x2c, 0xe0,
+ 0x00, 0x98, 0x9c, 0xfc, 0xb9, 0x3f, 0xaa, 0x96,
+ 0x8e, 0xe5, 0x19, 0x22, 0x49, 0xd8, 0x85, 0x38,
+ 0xba, 0xd0, 0x73, 0xc1, 0x3d, 0xf0, 0x11, 0xa0,
+ 0x20, 0xae, 0x49, 0x73, 0x07, 0x95, 0x3f, 0x9e,
+ 0x5b, 0x9b, 0xa3, 0x28, 0x31, 0xf9, 0x9b, 0xff,
+ 0x91, 0xd4, 0x42, 0xc8, 0x0c, 0x39, 0x48, 0xca,
+ 0x6e, 0xcf, 0x1a, 0x58, 0x14, 0x0f, 0x1b, 0xd6,
+ 0x29, 0x81, 0xb0, 0x6e, 0xd7, 0x86, 0xa6, 0x1b,
+ 0x44, 0x12, 0x9f, 0xa5, 0xa3, 0x53, 0x9b, 0x49,
+ 0xc9, 0x2a, 0x0a, 0x49, 0x80, 0x6b, 0x2a, 0x00,
+ 0xa1, 0xb1, 0x2e, 0xb3, 0xaf, 0xff, 0x8e, 0x42,
+ 0xa3, 0x2c, 0x7b, 0x1e, 0xef, 0x09, 0xea, 0xe4,
+ 0x81, 0x77, 0xec, 0x1a, 0x40, 0xd9, 0x12, 0x27,
+ 0x21, 0x99, 0xb8, 0x8b, 0xbf, 0x32, 0x3f, 0xf2,
+ 0x74, 0x1c, 0x57, 0x3e, 0x49, 0x32, 0xb3, 0xd1,
+ 0x96, 0x60, 0xfe, 0xc6, 0x24, 0xc5, 0x3e, 0x59,
+ 0x5a, 0x68, 0xf7, 0xea, 0x66, 0x5f, 0xcc, 0xe5,
+ 0x78, 0x1c, 0x35, 0xe7, 0x9a, 0x34, 0x8c, 0xd0,
+ 0xa4, 0x7a, 0xfe, 0x13, 0x90, 0xd8, 0xd0, 0xb1,
+ 0xbe, 0x1c, 0x30, 0x8b, 0xcb, 0x6a, 0xcb, 0x4b,
+ 0x80, 0xe9, 0xe1, 0x28, 0x0d, 0x89, 0xed, 0x9f,
+ 0x1c, 0x8d, 0xd7, 0xb8, 0x39, 0xa1, 0xb3, 0x86,
+ 0x68, 0x41, 0x3b, 0x19, 0x23, 0x33, 0x7f, 0xc6,
+ 0x0f, 0x65, 0xce, 0x95, 0xe9, 0xec, 0x60, 0x38,
+ 0x32, 0x55, 0x67, 0x98, 0xd2, 0x63, 0x38, 0x95,
+ 0x16, 0xf7, 0x4a, 0xd3, 0x67, 0x14, 0x79, 0xe8,
+ 0xf1, 0x8d, 0xc1, 0x4a, 0xd3, 0xa4, 0x6a, 0xc3,
+ 0xc1, 0x71, 0x8c, 0xb9, 0x4a, 0xc7, 0xab, 0xc2,
+ 0x22, 0x94, 0x7e, 0xce, 0x5d, 0x5a, 0x4f, 0xeb,
+ 0xce, 0x00, 0x4d, 0x42, 0xe8, 0xfe, 0xdc, 0x36,
+ 0x5f, 0x89, 0x65, 0x55, 0x5e, 0x53, 0x14, 0xb4,
+ 0xf7, 0x64, 0x94, 0x46, 0x2a, 0x4f, 0x54, 0x87,
+ 0xb4, 0x71, 0xaa, 0xf5, 0x6e, 0xdb, 0x10, 0x7d,
+ 0x06, 0xa6, 0x92, 0x63, 0xc9, 0x6b, 0x47, 0xe2,
+ 0x63, 0x42, 0xcd, 0x75, 0x82, 0x1e, 0xb1, 0x93,
+ 0x43, 0xc6, 0x00, 0x9f, 0xa0, 0x1c, 0x0b, 0x66,
+ 0xad, 0x9f, 0xd6, 0x82, 0x54, 0xcb, 0x18, 0x42,
+ 0x23, 0x1c, 0x65, 0x1d, 0x12, 0x4b, 0x65, 0x87,
+ 0x39, 0x88, 0x94, 0xee, 0x5a, 0x82, 0x59, 0xf4,
+ 0x23, 0x88, 0x2d, 0x04, 0x75, 0xaa, 0x68, 0x8c,
+ 0xce, 0xdd, 0x35, 0x31, 0xae, 0xd1, 0x3e, 0x1d,
+ 0xcf, 0xb6, 0x9b, 0xa2, 0xaf, 0x6b, 0xbc, 0x5d,
+ 0xe5, 0x68, 0x10, 0xcf, 0x62, 0x94, 0x59, 0x72,
+ 0xa5, 0x2b, 0x0e, 0x46, 0xbc, 0xef, 0xaa, 0xd4,
+ 0x08, 0x4e, 0x81, 0x8f, 0xaa, 0x93, 0xab, 0xb7,
+ 0xff, 0x4f, 0xee, 0xa4, 0x99, 0x94, 0xcd, 0xde,
+ 0x88, 0xed, 0x92, 0xb3, 0x5d, 0xac, 0xf0, 0x84,
+ 0x67, 0x0f, 0x63, 0x90, 0x95, 0x18, 0x47, 0xe7,
+ 0x35, 0x4e, 0xab, 0x29, 0x4f, 0x68, 0xa8, 0x84,
+ 0x59, 0xbd, 0x69, 0x6e, 0xe8, 0xa5, 0x77, 0xcc,
+ 0x21, 0x18, 0xdd, 0x3f, 0xd4, 0x9c, 0xd1, 0x5e,
+ 0x9e, 0xe1, 0x1e, 0x66, 0x6e, 0xd7, 0xe9, 0xde,
+ 0x94, 0x91, 0x4c, 0x96, 0x3f, 0xe1, 0x51, 0xbb,
+ 0xdb, 0xfc, 0xb3, 0xdb, 0xeb, 0x71, 0x10, 0xfa,
+ 0xef, 0xbd, 0x94, 0x5d, 0x52, 0x71, 0x34, 0x0e,
+ 0x61, 0x92, 0x94, 0x67, 0x7f, 0x23, 0x91, 0x10,
+ 0x0a, 0x1a, 0x30, 0xff, 0x10, 0x45, 0x2b, 0x3b,
+ 0x39, 0xd6, 0x47, 0x14, 0x21, 0xfe, 0xe9, 0x7f,
+ 0xe0, 0x3f, 0x37, 0x39, 0x9c, 0x76, 0xf8, 0x2e,
+ 0xc7, 0x72, 0x79, 0xee, 0x41, 0x08, 0xa2, 0x16,
+ 0x43, 0x54, 0x44, 0x17, 0x49, 0x34, 0xef, 0xe8,
+ 0xfe, 0xaa, 0x89, 0x94, 0x74, 0xdb, 0xe7, 0xa8,
+ 0x40, 0x2a, 0x8c, 0xf2, 0x9e, 0xa3, 0x81, 0xfa,
+ 0x3f, 0xc1, 0x54, 0xec, 0x7b, 0xa8, 0x1b, 0x58,
+ 0x84, 0x0e, 0x57, 0x7b, 0x97, 0xf0, 0x19, 0xf1,
+ 0x71, 0xa2, 0xae, 0x41, 0x4f, 0x1a, 0x07, 0xb2,
+ 0x86, 0x9d, 0xe1, 0xb1, 0x2e, 0xdb, 0x56, 0x53,
+ 0x98, 0x3f, 0x7a, 0x9b, 0x31, 0xe2, 0x3b, 0x87,
+ 0xa5, 0x3d, 0x38, 0xb4, 0x26, 0x3d, 0x6d, 0xf9,
+ 0x77, 0x82, 0x9e, 0xd0, 0x9d, 0x53, 0xfb, 0x2d,
+ 0xdf, 0x48, 0x03, 0xf1, 0xae, 0x7a, 0xa0, 0x01,
+ 0xde, 0x76, 0xb2, 0x3a, 0xe8, 0x52, 0x23, 0x3d,
+ 0xd9, 0x6b, 0x79, 0x72, 0x93, 0xc6, 0xc8, 0x6c,
+ 0xe7, 0x22, 0xc4, 0x7f, 0x54, 0x8f, 0xc0, 0xc5,
+ 0xa9, 0x5f, 0xdf, 0x00, 0x01, 0x92, 0x24, 0x3e,
+ 0x31, 0x90, 0x11, 0x97, 0xdc, 0x1d, 0x22, 0x89,
+ 0x53, 0xef, 0xc6, 0x9f, 0xe1, 0x16, 0x5c, 0xa8,
+ 0x15, 0x43, 0x4e, 0x7d, 0x29, 0xd3, 0x11, 0x7c,
+ 0x89, 0x8f, 0x75, 0x8b, 0x77, 0xda, 0x73, 0x93,
+ 0x9c, 0xcc, 0x38, 0x68, 0x24, 0xb0, 0x38, 0xc5,
+ 0x99, 0x86, 0x38, 0xa8, 0x16, 0x79, 0xa7, 0x10,
+ 0x54, 0xef, 0x55, 0xd8, 0xa1, 0x4d, 0xd3, 0x1f,
+ 0x76, 0x5a, 0x03, 0x9f, 0x09, 0x88, 0x6e, 0x46,
+ 0x7c, 0x48, 0x5a, 0x97, 0x51, 0x5a, 0x2d, 0xa7,
+ 0x37, 0x35, 0x64, 0xfc, 0x8f, 0x1a, 0x23, 0x70,
+ 0xa9, 0x98, 0xd3, 0x85, 0xbf, 0x8c, 0x7a, 0x6c,
+ 0x71, 0xff, 0xb9, 0x45, 0x1f, 0x90, 0xfc, 0x47,
+ 0xb5, 0x5f, 0x50, 0x49, 0xad, 0x25, 0x9b, 0x86,
+ 0x9a, 0xfb, 0x98, 0x30, 0xe8, 0x28, 0xc2, 0xa6,
+ 0xe6, 0xcd, 0x0c, 0xfe, 0xed, 0xd2, 0x45, 0x19,
+ 0xcf, 0xaf, 0x67, 0x8f, 0x17, 0x52, 0xcf, 0xc5,
+ 0x17, 0x2b, 0x5c, 0x1c, 0xdb, 0xbd, 0xb0, 0xe5,
+ 0x12, 0x96, 0x99, 0xa4, 0xa1, 0xa2, 0xa2, 0x93,
+ 0x48, 0x30, 0x42, 0xde, 0x2f, 0xbf, 0x59, 0xc1,
+ 0x33, 0x6b, 0xb1, 0xa4, 0xe5, 0x17, 0x1a, 0xb5,
+ 0x27, 0x01, 0xe6, 0xcb, 0x5a, 0xc2, 0x56, 0x17,
+ 0x6a, 0x96, 0xf7, 0x45, 0xad, 0xc6, 0xb3, 0xaa,
+ 0x83, 0xca, 0x7d, 0xff, 0x9a, 0x93, 0x57, 0x6d,
+ 0xca, 0x74, 0x39, 0x2a, 0xa9, 0xd3, 0xf4, 0x0e,
+ 0x2b, 0x79, 0x87, 0xb4, 0x64, 0x79, 0x3d, 0xc1,
+ 0x76, 0xc3, 0xf9, 0x60, 0xfe, 0x9e, 0x67, 0xd4,
+ 0xad, 0x69, 0x45, 0x19, 0x97, 0xa5, 0x6c, 0x93,
+ 0xc3, 0x83, 0xb7, 0x36, 0xea, 0xff, 0x31, 0xbe,
+ 0xca, 0x45, 0x9c, 0x12, 0xd1, 0xc2, 0x40, 0x0b,
+ 0x3b, 0x5c, 0xe6, 0x8e, 0xe9, 0xb1, 0x3d, 0x4b,
+ 0x1d, 0xc7, 0x13, 0x84, 0x7c, 0x5e, 0xfc, 0xc8,
+ 0x6b, 0xb3, 0xa2, 0xc0, 0xfd, 0xdc, 0x78, 0x11,
+ 0x6c, 0xf0, 0x3c, 0x08, 0x7d, 0x1f, 0xdb, 0x37,
+ 0xa0, 0x16, 0x11, 0xdd, 0xba, 0x60, 0x02, 0x78,
+ 0x7d, 0xeb, 0x65, 0x66, 0xb8, 0xdd, 0xcd, 0xfa,
+ 0xe0, 0xa0, 0x02, 0xe4, 0xb5, 0x79, 0xbe, 0x38,
+ 0x16, 0x26, 0xbf, 0xa1, 0xc0, 0x79, 0xe2, 0xf5,
+ 0xc3, 0xad, 0xe4, 0x02, 0x52, 0xf1, 0xa5, 0x1b,
+ 0x87, 0x91, 0xcd, 0x11, 0xc6, 0x9c, 0xb1, 0xc0,
+ 0x22, 0x9e, 0x00, 0xb1, 0x32, 0x16, 0x9f, 0xf0,
+ 0xa8, 0xd4, 0xe8, 0xe9, 0x76, 0x26, 0xea, 0x14,
+ 0xb4, 0x17, 0xd8, 0x51, 0xad, 0x1b, 0x09, 0x19,
+ 0xbe, 0xfa, 0x74, 0x14, 0x75, 0xa5, 0xee, 0x81,
+ 0xc3, 0x8b, 0x9b, 0xa5, 0xb1, 0x14, 0xa6, 0x3c,
+ 0x59, 0x04, 0xe5, 0x58, 0x08, 0xdb, 0x56, 0x00,
+ 0xd2, 0x88, 0x4a, 0xaa, 0xd2, 0x2e, 0x88, 0x53,
+ 0x24, 0x15, 0x3c, 0xf6, 0x00, 0x4a, 0x19, 0xd0,
+ 0x49, 0x6a, 0x55, 0x11, 0xdd, 0x38, 0xbd, 0x42,
+ 0x20, 0x84, 0x34, 0xc5, 0xcf, 0x28, 0x52, 0xa8,
+ 0x34, 0x9d, 0x9f, 0xc9, 0xc4, 0x1d, 0x7d, 0xa3,
+ 0xff, 0xfa, 0x89, 0xd3, 0x7d, 0x34, 0xca, 0xe6,
+ 0x7e, 0x0b, 0x96, 0x5b, 0xc4, 0xa0, 0x50, 0x9f,
+ 0x9f, 0xfc, 0x58, 0xea, 0x6a, 0xb3, 0xb2, 0x1d,
+ 0x3f, 0x9e, 0x8f, 0x4d, 0xb0, 0x85, 0xbf, 0x97,
+ 0x87, 0xd8, 0xc6, 0xdd, 0x67, 0xe8, 0xe2, 0x6f,
+ 0xbb, 0x91, 0xbe, 0x0f, 0xb7, 0x0d, 0x90, 0xdb,
+ 0x53, 0x54, 0xfe, 0xc2, 0x9f, 0x76, 0x4b, 0x97,
+ 0x60, 0xb4, 0xce, 0x98, 0x90, 0xbf, 0x68, 0xd1,
+ 0x8d, 0x26, 0x2e, 0x83, 0x7f, 0x49, 0x30, 0x4f,
+ 0xdc, 0x96, 0xe0, 0xeb, 0x1f, 0x91, 0xa4, 0xd7,
+ 0xb6, 0xbe, 0x2c, 0x33, 0x3c, 0x62, 0xd6, 0x25,
+ 0x70, 0x67, 0xc1, 0x82, 0x3f, 0x5e, 0x42, 0x15,
+ 0xda, 0xee, 0x3f, 0x18, 0x46, 0x49, 0xe7, 0xaf,
+ 0x9f, 0x77, 0x92, 0x6c, 0x1a, 0x9c, 0x11, 0x51,
+ 0x64, 0xb6, 0x22, 0x14, 0xad, 0xe2, 0x33, 0x7e,
+ 0x75, 0x1e, 0xcb, 0x32, 0x53, 0x07, 0x4f, 0xdf,
+ 0xc8, 0xfb, 0xa3, 0x1e, 0x10, 0x34, 0x72, 0xc6,
+ 0xce, 0x3f, 0x71, 0xec, 0xc0, 0x6c, 0x78, 0x2b,
+ 0x38, 0x77, 0x78, 0x8f, 0x8d, 0x70, 0x2d, 0x64,
+ 0xf3, 0xfb, 0xab, 0xa8, 0x99, 0xf4, 0x62, 0xb9,
+ 0xdb, 0xe1, 0x3a, 0x80, 0xba, 0x85, 0x2b, 0x63,
+ 0x9f, 0x9c, 0xa7, 0xe7, 0x42, 0x8a, 0x55, 0x09,
+ 0x10, 0xd2, 0x46, 0x65, 0x82, 0x04, 0x95, 0x2c,
+ 0xdf, 0xaa, 0x2e, 0xc5, 0x31, 0x5d, 0x65, 0xd7,
+ 0x32, 0x25, 0x44, 0x89, 0xd8, 0x01, 0xf5, 0x5b,
+ 0xf6, 0x65, 0x0d, 0x9c, 0x5a, 0x52, 0x53, 0xb4,
+ 0xf8, 0xa5, 0x8d, 0x12, 0x5b, 0xfa, 0xf2, 0xc6,
+ 0x76, 0x38, 0x4f, 0xc1, 0xd6, 0x8d, 0x6a, 0x71,
+ 0x7c, 0x5a, 0xe4, 0xb8, 0xfd, 0xc2, 0xb3, 0x6f,
+ 0x71, 0xa0, 0x81, 0x97, 0xa7, 0xa8, 0xf2, 0xef,
+ 0x9f, 0x59, 0x4e, 0x9f, 0x7c, 0xa5, 0x90, 0xa4,
+ 0xc0, 0xf5, 0xc5, 0x9c, 0x75, 0x4f, 0x84, 0xf0,
+ 0xe9, 0xa0, 0x1e, 0xf3, 0xab, 0xbf, 0x02, 0x2c,
+ 0xe9, 0x52, 0x4b, 0x28, 0x4e, 0xa5, 0xca, 0xcc,
+ 0xb7, 0xb9, 0xdb, 0x32, 0x5e, 0x28, 0x3a, 0x3a,
+ 0x56, 0xf4, 0x80, 0x4d, 0xc5, 0x63, 0x59, 0x54,
+ 0xe5, 0x9e, 0xe4, 0xd4, 0x42, 0xea, 0xed, 0xc7,
+ 0x27, 0xc2, 0x44, 0x8b, 0x6c, 0xbd, 0x43, 0xfe,
+ 0x8c, 0x7a, 0xb7, 0x13, 0xbd, 0xc1, 0x22, 0x8f,
+ 0x0e, 0x7a, 0x8c, 0xd8, 0xa2, 0x8f, 0xe4, 0x24,
+ 0xb4, 0xd8, 0x97, 0x3d, 0x12, 0x8e, 0xca, 0xee,
+ 0x76, 0x94, 0xa8, 0x58, 0x82, 0x02, 0xaf, 0x97,
+ 0xe7, 0x07, 0xf6, 0xff, 0x53, 0x5f, 0x37, 0x6d,
+ 0xa0, 0xa7, 0x9e, 0x53, 0xcf, 0x67, 0x33, 0xde,
+ 0x1c, 0xe7, 0xdb, 0xd5, 0xb7, 0x63, 0xa0, 0xc0,
+ 0x89, 0xfe, 0xcd, 0x0d, 0x16, 0x00, 0x73, 0x7f,
+ 0x11, 0x04, 0x13, 0xc0, 0x9c, 0xd0, 0x8b, 0x66,
+ 0x93, 0x05, 0xbb, 0xdb, 0x3f, 0xad, 0xfd, 0xf8,
+ 0x97, 0xab, 0x57, 0x0b, 0xcb, 0x4f, 0x8b, 0x6c,
+ 0xb6, 0xef, 0xa4, 0x77, 0x93, 0x4d, 0xe2, 0x2d,
+ 0x3e, 0xa6, 0x9c, 0xf0, 0xf0, 0xb8, 0x9c, 0x37,
+ 0x08, 0xd1, 0x63, 0x5c, 0x17, 0x33, 0x68, 0x9c,
+ 0x70, 0xd8, 0x59, 0x56, 0x2c, 0x31, 0x2f, 0x0d,
+ 0x62, 0x5d, 0x1c, 0x10, 0x75, 0x79, 0xca, 0xbf,
+ 0x89, 0x7f, 0xca, 0x1e, 0xf7, 0x3b, 0x79, 0x7e,
+ 0x55, 0x0b, 0x11, 0xea, 0x3d, 0x5c, 0x7a, 0x81,
+ 0x7e, 0x5c, 0xad, 0x8e, 0x48, 0x6d, 0x08, 0xac,
+ 0xdd, 0xef, 0xc7, 0x38, 0xa2, 0x78, 0x35, 0x88,
+ 0x87, 0xbb, 0xd5, 0x04, 0x47, 0x0c, 0xd3, 0xf3,
+ 0x2c, 0x82, 0x90, 0xa9, 0xc5, 0xba, 0x1b, 0x88,
+ 0x5c, 0xbd, 0xf6, 0x22, 0x0a, 0xf0, 0xad, 0x80,
+ 0x85, 0x11, 0xaf, 0xf4, 0xfc, 0x35, 0xae, 0x3c,
+ 0xe1, 0x7d, 0x5a, 0x2e, 0x7b, 0x62, 0x02, 0xce,
+ 0xbf, 0x37, 0x7c, 0x7f, 0xf8, 0xc9, 0x33, 0x0b,
+ 0xc2, 0xc8, 0xa4, 0xa7, 0x15, 0xbb, 0x87, 0x92,
+ 0x48, 0x6b, 0x89, 0xa0, 0xc0, 0x2d, 0x61, 0x82,
+ 0x39, 0xa6, 0x5c, 0x27, 0xeb, 0xdb, 0xe3, 0x33,
+ 0xc3, 0x86, 0xdf, 0x8a, 0xc6, 0x39, 0xe9, 0xdb,
+ 0x87, 0x5f, 0xbc, 0x51, 0xa7, 0x1f, 0x5e, 0xd7,
+ 0x50, 0x78, 0x0e, 0x23, 0xb0, 0x52, 0x71, 0x43,
+ 0xdd, 0xde, 0xd7, 0x4c, 0xad, 0x59, 0xb7, 0xc5,
+ 0x30, 0xbc, 0x86, 0xeb, 0x87, 0x64, 0x72, 0xc0,
+ 0x59, 0xa0, 0x2f, 0xa2, 0x49, 0x66, 0x2c, 0xc5,
+ 0x94, 0xe6, 0x72, 0x06, 0x8a, 0x48, 0x03, 0x26,
+ 0x78, 0x23, 0xa8, 0xc8, 0xfa, 0x2b, 0x99, 0xa4,
+ 0x03, 0x3d, 0x84, 0xdc, 0x10, 0xb4, 0x87, 0xe9,
+ 0x85, 0x21, 0x61, 0x13, 0x63, 0xb0, 0xef, 0x36,
+ 0x19, 0x66, 0xf6, 0x6c, 0x25, 0xaa, 0x82, 0xf6,
+ 0xd7, 0x02, 0x89, 0xc2, 0x8d, 0x00, 0xd8, 0x97,
+ 0x02, 0x5b, 0x36, 0xc1, 0x30, 0xcc, 0x1b, 0xef,
+ 0x3d, 0x25, 0xff, 0xef, 0xbb, 0x12, 0x09, 0x10,
+ 0x1b, 0xe2, 0xc1, 0x05, 0xef, 0x63, 0x07, 0x1c,
+ 0xa3, 0x64, 0xf5, 0x27, 0x88, 0xcb, 0xb5, 0x5d,
+ 0x63, 0x34, 0x18, 0x25, 0x55, 0x9e, 0xbb, 0x0f,
+ 0xd7, 0xb1, 0x4c, 0xed, 0x96, 0x2c, 0xd8, 0x16,
+ 0x0f, 0x0c, 0xa4, 0x9e, 0x5c, 0xed, 0xb2, 0xad,
+ 0x07, 0x9d, 0xb8, 0xe9, 0x5e, 0xeb, 0xae, 0x8e,
+ 0x99, 0x5e, 0x4d, 0x11, 0x6a, 0x73, 0xa0, 0x54,
+ 0x7e, 0x75, 0xc7, 0x35, 0xe0, 0x40, 0x13, 0x23,
+ 0x46, 0xb0, 0x84, 0xb9, 0x1d, 0x2b, 0x8c, 0x2b,
+ 0x82, 0xf7, 0x25, 0x08, 0x54, 0x38, 0x50, 0x07,
+ 0x4b, 0xca, 0x61, 0x15, 0x6c, 0x98, 0xe8, 0xea,
+ 0x52, 0x01, 0x29, 0x68, 0x83, 0x4c, 0x4b, 0x44,
+ 0xfe, 0x78, 0x3a, 0x70, 0x5f, 0x0b, 0xb8, 0x0d,
+ 0x47, 0x60, 0x91, 0x9d, 0xf2, 0x6f, 0x86, 0xe7,
+ 0x42, 0xaa, 0xc9, 0x81, 0x66, 0x8e, 0xcc, 0x7b,
+ 0xe7, 0xa7, 0xa2, 0x33, 0x99, 0xd4, 0x2c, 0x79,
+ 0x36, 0xb5, 0x96, 0x6b, 0x2f, 0xcc, 0xc2, 0x44,
+ 0x45, 0x19, 0xf8, 0x8a, 0xe0, 0xe0, 0xed, 0x16,
+ 0xe2, 0x65, 0xee, 0x28, 0xe4, 0x8d, 0xc3, 0xe3,
+ 0xfc, 0xda, 0x15, 0xc7, 0x57, 0x34, 0x15, 0x4f,
+ 0x73, 0x47, 0x31, 0x76, 0x46, 0x91, 0x31, 0x51,
+ 0xef, 0x44, 0x47, 0x44, 0xde, 0x91, 0x61, 0x6b,
+ 0xd9, 0xcb, 0x33, 0xf1, 0x39, 0x72, 0x33, 0x31,
+ 0x1a, 0x68, 0xfe, 0xd8, 0x6d, 0xc2, 0x22, 0x9c,
+ 0xcc, 0xbe, 0x6a, 0x80, 0xff, 0x88, 0x2c, 0x7b,
+ 0x66, 0xd7, 0x8d, 0x37, 0xe0, 0x71, 0x65, 0x16,
+ 0xea, 0x1c, 0x9f, 0xf7, 0x9b, 0x6c, 0xc9, 0x08,
+ 0x24, 0x51, 0xd2, 0x2e, 0xd4, 0x6b, 0xd7, 0x0c,
+ 0x55, 0xb8, 0x31, 0x6d, 0x61, 0xba, 0x63, 0x4c,
+ 0x49, 0xb8, 0xce, 0x8f, 0x72, 0x67, 0x35, 0xa1,
+ 0x4b, 0xca, 0xa4, 0x16, 0xd9, 0x3a, 0x40, 0x66,
+ 0xe8, 0xb1, 0xda, 0x31, 0x23, 0x93, 0xa8, 0xf8,
+ 0x60, 0x09, 0x96, 0x67, 0xf2, 0x70, 0x51, 0xa7,
+ 0x5a, 0x23, 0xdb, 0x43, 0xbb, 0x49, 0x51, 0x3f,
+ 0xa4, 0xaf, 0x65, 0xa3, 0x86, 0x55, 0xd2, 0x7f,
+ 0xfa, 0xbd, 0x22, 0x1f, 0x17, 0x2b, 0x8a, 0x88,
+ 0x3d, 0x73, 0x7f, 0xb8, 0x39, 0x8f, 0xaf, 0x6b,
+ 0x26, 0xf7, 0xd7, 0xa1, 0xaf, 0xce, 0x86, 0xb0,
+ 0x64, 0x6f, 0x92, 0x22, 0xb5, 0x6a, 0x68, 0xd1,
+ 0xcb, 0x1d, 0x2d, 0x69, 0xd0, 0xb4, 0x05, 0x46,
+ 0x63, 0x15, 0xb8, 0x86, 0x34, 0x80, 0x0a, 0xaa,
+ 0x2e, 0x04, 0x87, 0xc6, 0xbc, 0x4c, 0xaa, 0x9d,
+ 0x96, 0xcd, 0x70, 0x33, 0xdd, 0x22, 0x1a, 0xeb,
+ 0xde, 0x50, 0xc8, 0xbc, 0x47, 0x54, 0x4b, 0x9c,
+ 0x47, 0x2a, 0xa9, 0x57, 0x76, 0x4d, 0x65, 0xd6,
+ 0x31, 0xd8, 0x34, 0x0a, 0x92, 0x06, 0x70, 0x08,
+ 0x98, 0x2a, 0x97, 0x39, 0x07, 0x79, 0x8b, 0xd7,
+ 0xc9, 0x13, 0x91, 0x38, 0x12, 0x1b, 0x8f, 0xc2,
+ 0x96, 0xab, 0xe7, 0x5d, 0xa9, 0x16, 0x0b, 0x38,
+ 0x9e, 0x4b, 0x72, 0xfa, 0x33, 0x70, 0xa6, 0xf3,
+ 0x14, 0xe7, 0x78, 0xeb, 0x3b, 0x99, 0xd1, 0x05,
+ 0xb1, 0x52, 0xac, 0xf4, 0x20, 0x10, 0x2f, 0x47,
+ 0x0f, 0xa1, 0xe8, 0x3f, 0xaa, 0x63, 0x92, 0xe6,
+ 0x49, 0x64, 0xdc, 0xb6, 0x3d, 0x49, 0xb4, 0x14,
+ 0x45, 0x5e, 0x09, 0x42, 0x95, 0x69, 0x1c, 0x98,
+ 0xc7, 0x04, 0x2c, 0x50, 0xe8, 0xe5, 0x1d, 0x49,
+ 0x89, 0x11, 0xc9, 0xf7, 0x36, 0x2e, 0x3a, 0x49,
+ 0x09, 0x57, 0x34, 0x1f, 0x45, 0xe7, 0xa6, 0x75,
+ 0xc1, 0x8c, 0x76, 0xbb, 0x1b, 0xe0, 0xbb, 0x25,
+ 0x81, 0x4a, 0xdc, 0x95, 0xfd, 0x96, 0x52, 0x28,
+ 0xcc, 0xb0, 0xcb, 0x44, 0x03, 0xf6, 0xfb, 0x0a,
+ 0x48, 0x5d, 0x78, 0x52, 0x90, 0x41, 0x22, 0x09,
+ 0xe6, 0xd2, 0x57, 0xb6, 0xeb, 0x53, 0x80, 0x6a,
+ 0x27, 0xc9, 0x95, 0x41, 0x93, 0xa6, 0xc4, 0xf9,
+ 0x5d, 0xcf, 0x8f, 0xe1, 0x1c, 0x26, 0x5f, 0xfc,
+ 0xa3, 0x56, 0x8b, 0x63, 0xb4, 0x7a, 0xa7, 0x33,
+ 0xbe, 0xd3, 0x19, 0x1d, 0x7c, 0x6f, 0x7f, 0x4e,
+ 0xa8, 0x54, 0x15, 0xab, 0x8d, 0xc1, 0x71, 0x43,
+ 0x1b, 0xd3, 0xed, 0x15, 0x69, 0xa1, 0xfe, 0x96,
+ 0x19, 0x04, 0xa9, 0xbf, 0x1e, 0xf2, 0xaf, 0xe4,
+ 0x7b, 0x50, 0x18, 0x98, 0x50, 0x61, 0x18, 0x05,
+ 0xf5, 0x49, 0x88, 0x02, 0x06, 0x4f, 0x64, 0xa7,
+ 0xad, 0x48, 0xf0, 0x87, 0x50, 0x19, 0x02, 0xa1,
+ 0xd1, 0xe9, 0xdc, 0x7e, 0x79, 0x65, 0xba, 0x99,
+ 0xc3, 0x17, 0x7f, 0xd0, 0xc5, 0x03, 0xdd, 0xc3,
+ 0x46, 0x27, 0x42, 0xd3, 0x82, 0xc1, 0x55, 0xe2,
+ 0xe9, 0x34, 0x3b, 0x92, 0xd4, 0xb5, 0xa8, 0xd5,
+ 0xdb, 0x6a, 0x0d, 0x89, 0xe3, 0x7e, 0xfe, 0xb5,
+ 0xe1, 0x4b, 0x3f, 0x48, 0x44, 0xfa, 0xf4, 0x0b,
+ 0xcd, 0x65, 0x1b, 0x42, 0xe7, 0x73, 0xec, 0x07,
+ 0x90, 0xfe, 0x6a, 0x64, 0xdb, 0x90, 0x01, 0x86,
+ 0x33, 0x45, 0x00, 0x2f, 0x09, 0xc5, 0x52, 0x55,
+ 0x14, 0xb1, 0x5c, 0x6c, 0x5d, 0xbf, 0x39, 0xc5,
+ 0x1f, 0xf4, 0x63, 0x65, 0x4a, 0xc1, 0xc2, 0x42,
+ 0x42, 0xa5, 0x93, 0xf4, 0xc7, 0x39, 0x5a, 0x5e,
+ 0x2d, 0x72, 0x95, 0xce, 0x25, 0x36, 0x8b, 0xe9,
+ 0x55, 0xc6, 0xda, 0x71, 0x8f, 0xb7, 0x0b, 0x01,
+ 0xcc, 0x8a, 0xc6, 0xa2, 0xcd, 0x37, 0x17, 0x08,
+ 0x51, 0xc9, 0x79, 0xdb, 0x48, 0xaf, 0xf8, 0x3c,
+ 0x50, 0x09, 0xe0, 0x60, 0x13, 0x8c, 0x17, 0xf4,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x67, 0x9b, 0x88, 0xb9, 0xc3, 0x30, 0x50, 0x56,
+ 0x3f, 0x8c, 0x56, 0xfc, 0x3a, 0x65, 0x9e, 0x59,
+ 0xc8, 0xcc, 0xb2, 0xe7, 0xa9, 0x1b, 0x5b, 0xf6,
+ 0xbc, 0xef, 0xee, 0xac, 0x24, 0xca, 0x97, 0xa4,
+ 0xb4, 0xfe, 0xcd, 0x0a, 0x7e, 0x90, 0x3d, 0x73,
+ 0xc8, 0xfa, 0xd6, 0xc7, 0xaa, 0x94, 0x97, 0x2b,
+ 0x0c, 0x7f, 0x38, 0xd3, 0x28, 0xea, 0x7c, 0xf6,
+ 0x30, 0x55, 0x8a, 0x37, 0xc3, 0x3d, 0x38, 0x2e,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0xbe, 0xa1, 0x82, 0x06, 0xcd, 0x1f, 0xc3, 0x9c,
+ 0x02, 0x01, 0x40, 0x4a, 0xfe, 0x12, 0xc2, 0xe4,
+ 0x5a, 0x4b, 0xa0, 0x7b, 0xdb, 0x88, 0x6b, 0x60,
+ 0x78, 0x82, 0xa6, 0x91, 0x2b, 0x11, 0x55, 0xd2,
+ 0x44, 0x54, 0x7d, 0x5f, 0x18, 0xc5, 0xf6, 0xe7,
+ 0x68, 0xf2, 0x2b, 0x6c, 0x97, 0xe5, 0x09, 0x54,
+ 0xa3, 0x81, 0x41, 0x0c, 0xd4, 0x9a, 0x74, 0xa1,
+ 0x97, 0xb2, 0xc3, 0xde, 0x26, 0xa6, 0xda, 0x03,
+ 0xdc, 0xa6, 0x60, 0x96, 0xc4, 0x01, 0xf4, 0x0a,
+ 0xe8, 0x22, 0xfb, 0x67, 0xdb, 0xa3, 0x2e, 0x0f,
+ 0x79, 0xf7, 0x81, 0xb9, 0x1d, 0xbe, 0xb0, 0x80,
+ 0x84, 0x6e, 0x2d, 0xa4, 0xba, 0x8b, 0xc2, 0xb1,
+ 0x60, 0x78, 0xe1, 0xd9, 0xf4, 0x19, 0xd5, 0x25,
+ 0x34, 0x22, 0xc9, 0x18, 0x08, 0xdf, 0x59, 0x66,
+ 0x38, 0x87, 0xed, 0x5d, 0xe1, 0x0d, 0xba, 0x76,
+ 0xbe, 0x02, 0x5c, 0x70, 0xcb, 0xfa, 0xa1, 0x72,
+ 0x65, 0x91, 0xce, 0x4b, 0x72, 0x1b, 0x66, 0x83,
+ 0x06, 0x0f, 0x14, 0x71, 0x95, 0xdc, 0x19, 0xde,
+ 0x73, 0x84, 0xa2, 0x07, 0xa6, 0xc4, 0x1d, 0x32,
+ 0xb0, 0x6e, 0xae, 0x3f, 0xf1, 0xce, 0x08, 0x30,
+ 0xc6, 0xaa, 0xef, 0x6f, 0xee, 0xfc, 0x31, 0xf9,
+ 0xd5, 0xc3, 0x03, 0xbe, 0xec, 0x37, 0xa9, 0x7e,
+ 0x9f, 0x99, 0xcb, 0xe5, 0xd0, 0xea, 0x11, 0x33,
+ 0x7f, 0xae, 0xe8, 0x3e, 0x70, 0x2f, 0x41, 0x50,
+ 0xe5, 0xd4, 0xb5, 0xe6, 0x2b, 0xc0, 0x17, 0xf6,
+ 0x79, 0x7c, 0xdc, 0x59, 0xf6, 0x34, 0xef, 0xcb,
+ 0x90, 0x7e, 0x80, 0xb6, 0xf9, 0x90, 0xa9, 0x3f,
+ 0xd4, 0xde, 0x9d, 0x87, 0x7f, 0xbe, 0x22, 0xe1,
+ 0x80, 0x97, 0xfa, 0x4c, 0x09, 0x6e, 0x0a, 0xe5,
+ 0x55, 0xf5, 0xe2, 0xe0, 0x71, 0x17, 0xb9, 0x3d,
+ 0x0b, 0x8d, 0x4a, 0x79, 0xaf, 0xe9, 0xf8, 0x31,
+ 0xb6, 0x79, 0x34, 0x15, 0x7b, 0x22, 0xe0, 0x6a,
+ 0xeb, 0xc7, 0xc2, 0x98, 0x11, 0x6a, 0x6e, 0xf7,
+ 0xef, 0x14, 0x72, 0x20, 0xf9, 0x5c, 0x0c, 0x04,
+ 0x40, 0x45, 0x54, 0x20, 0x52, 0xe5, 0xed, 0x25,
+ 0x57, 0x3b, 0x9e, 0x65, 0x82, 0xd4, 0x1a, 0x16,
+ 0x7a, 0x7d, 0x9e, 0x7e, 0xcc, 0xa9, 0xb0, 0xf9,
+ 0xc1, 0x23, 0x9e, 0x3b, 0xde, 0x85, 0x20, 0x54,
+ 0x31, 0x3e, 0x70, 0xe7, 0x56, 0x7b, 0xc2, 0x83,
+ 0x0e, 0xfd, 0x25, 0x48, 0x1d, 0x95, 0x38, 0x92,
+ 0x48, 0xf2, 0xbe, 0x60, 0xa2, 0x5d, 0x7b, 0x9a,
+ 0x23, 0x0a, 0xf7, 0xf8, 0xc4, 0xd4, 0x88, 0x96,
+ 0x9b, 0x53, 0xb2, 0x96, 0x8a, 0x23, 0xfb, 0xe0,
+ 0x9a, 0x25, 0x1c, 0x18, 0x4b, 0xb2, 0xa1, 0x82,
+ 0x14, 0x41, 0xdd, 0xd2, 0x86, 0xbf, 0x3e, 0xbb,
+ 0x83, 0xf9, 0x62, 0xba, 0xe2, 0x07, 0xcd, 0x55,
+ 0xfc, 0xd3, 0x2a, 0xec, 0x6f, 0x87, 0x86, 0xfe,
+ 0xc4, 0x6d, 0x61, 0xd9, 0x7c, 0xe3, 0x02, 0x0c,
+ 0x1f, 0x85, 0xa3, 0xd7, 0x19, 0xda, 0xf7, 0xeb,
+ 0xda, 0x6a, 0x27, 0x82, 0xb9, 0xf6, 0xd5, 0xe8,
+ 0x5a, 0x2e, 0x49, 0x59, 0x91, 0xda, 0x6c, 0x05,
+ 0x65, 0x5e, 0xfd, 0x85, 0xdb, 0x6d, 0x58, 0x9c,
+ 0xdd, 0x25, 0xa8, 0x63, 0x3a, 0xe7, 0x62, 0xa1,
+ 0x46, 0x69, 0x44, 0x61, 0x4e, 0x1a, 0x8b, 0x30,
+ 0x08, 0xa9, 0xcc, 0x0f, 0x34, 0x34, 0x9a, 0xb4,
+ 0x63, 0x09, 0x0d, 0x30, 0x60, 0x11, 0x62, 0xff,
+ 0x49, 0x56, 0xe3, 0xca, 0x0a, 0x57, 0xb4, 0x2b,
+ 0x37, 0xbb, 0x5b, 0x5f, 0x7f, 0x07, 0xf6, 0x1b,
+ 0x32, 0xf8, 0xfb, 0x5b, 0xda, 0x4a, 0x29, 0xdf,
+ 0x5e, 0x4e, 0xe9, 0xe0, 0x35, 0x92, 0x44, 0xa6,
+ 0x39, 0x53, 0x13, 0x39, 0xb5, 0x34, 0x58, 0x3b,
+ 0xec, 0x7c, 0x64, 0xcb, 0x0c, 0x11, 0x79, 0x2d,
+ 0xef, 0xd6, 0x76, 0x3c, 0x76, 0x01, 0x5f, 0xa2,
+ 0x95, 0xce, 0xb8, 0x11, 0x9a, 0xc8, 0x68, 0x36,
+ 0x0f, 0x1d, 0xe4, 0xf4, 0x95, 0x97, 0x36, 0x82,
+ 0x89, 0x46, 0x55, 0xfc, 0xa6, 0x9d, 0xcc, 0x0a,
+ 0x66, 0xcc, 0x6f, 0xd6, 0xa3, 0xcd, 0x1d, 0xd2,
+ 0xaa, 0xa0, 0x87, 0xe6, 0xbf, 0xde, 0xa3, 0x6f,
+ 0x09, 0xfd, 0xa2, 0x5f, 0xb0, 0x63, 0xe5, 0xb2,
+ 0x20, 0x51, 0x44, 0xfe, 0x22, 0xc4, 0x9c, 0xac,
+ 0xc7, 0x50, 0x2c, 0x72, 0x18, 0xf9, 0x5d, 0xef,
+ 0x14, 0x90, 0xb1, 0x72, 0xc9, 0xb2, 0x5b, 0x4d,
+ 0xa0, 0x8c, 0x72, 0x83, 0xa3, 0x92, 0x68, 0x7d,
+ 0xad, 0x16, 0x79, 0x49, 0x4a, 0xae, 0xbb, 0xbb,
+ 0xb4, 0x67, 0x18, 0xb9, 0x50, 0x35, 0x75, 0x60,
+ 0x9f, 0x98, 0xde, 0xe6, 0x67, 0x41, 0xcf, 0x6a,
+ 0xc8, 0x3c, 0x3c, 0x62, 0xef, 0x0a, 0x3a, 0xd3,
+ 0x01, 0xf1, 0x74, 0xfa, 0x7a, 0x5c, 0x83, 0x2f,
+ 0x6e, 0x54, 0xf3, 0xd2, 0xe5, 0xc8, 0xe5, 0x79,
+ 0xef, 0xcb, 0x39, 0xc3, 0x54, 0xbc, 0x38, 0x34,
+ 0xc3, 0x91, 0x6b, 0xb5, 0xc2, 0xdc, 0x52, 0xc1,
+ 0x4e, 0xd4, 0xf5, 0x31, 0x04, 0xbc, 0xbb, 0x3c,
+ 0x9c, 0x88, 0x15, 0x8e, 0x97, 0x8e, 0x6c, 0xaa,
+ 0xe1, 0x57, 0xf5, 0xaa, 0xb6, 0xc3, 0xd8, 0xf7,
+ 0xe5, 0x80, 0xe3, 0x6b, 0x35, 0x9e, 0x21, 0x49,
+ 0xb2, 0x0a, 0x0e, 0x2b, 0x7f, 0xc8, 0x3c, 0x92,
+ 0xab, 0xe0, 0x56, 0x88, 0x64, 0xdc, 0x00, 0x6c,
+ 0xb8, 0x9b, 0x6b, 0xec, 0x5a, 0x59, 0x05, 0xd9,
+ 0x7e, 0xe7, 0x91, 0xf6, 0xe5, 0xa2, 0xe3, 0x0b,
+ 0x7b, 0x3b, 0x22, 0x43, 0x33, 0xc1, 0x9a, 0x3e,
+ 0xdc, 0x41, 0xb2, 0x62, 0x75, 0x24, 0xce, 0xba,
+ 0xf6, 0x5a, 0xda, 0x52, 0xf3, 0x66, 0x5a, 0x89,
+ 0x8b, 0xea, 0x0a, 0xdd, 0xb4, 0xc3, 0xfe, 0xbc,
+ 0x52, 0x01, 0xb6, 0x72, 0xdc, 0xf7, 0xb1, 0x50,
+ 0xfc, 0xce, 0xdd, 0xba, 0xd4, 0xe9, 0xd0, 0x3f,
+ 0x9e, 0xca, 0xc2, 0x33, 0xa6, 0xe3, 0xc1, 0x4d,
+ 0x03, 0xba, 0xb8, 0xc7, 0x0b, 0xf2, 0xd0, 0x5a,
+ 0x3e, 0x28, 0x2b, 0x3d, 0xde, 0x26, 0x33, 0x86,
+ 0xce, 0x0e, 0x9c, 0x7d, 0xcc, 0x18, 0x09, 0x47,
+ 0x37, 0xd6, 0x7b, 0x52, 0xe0, 0x2b, 0x6e, 0x8e,
+ 0xd0, 0x52, 0x07, 0x63, 0x62, 0xec, 0x92, 0x9f,
+ 0xe4, 0xd0, 0xda, 0xea, 0x4e, 0x31, 0xc8, 0xfa,
+ 0x5e, 0xec, 0xcd, 0x13, 0x9f, 0x09, 0xd8, 0xb8,
+ 0x1e, 0x46, 0x25, 0x8c, 0x47, 0x0f, 0xdf, 0x19,
+ 0x58, 0x57, 0x1c, 0xe3, 0x06, 0xf9, 0x87, 0x9c,
+ 0x91, 0x7c, 0xb1, 0x9c, 0xc8, 0xad, 0xd6, 0x0d,
+ 0xa3, 0x2e, 0x20, 0x04, 0xf3, 0xb2, 0xd0, 0x48,
+ 0x0d, 0x13, 0xc4, 0xeb, 0x87, 0xec, 0x29, 0x17,
+ 0x7f, 0xa6, 0x5a, 0x56, 0xae, 0x4c, 0xcd, 0xb5,
+ 0xb0, 0x19, 0x93, 0xdb, 0xb2, 0x55, 0x4a, 0x3c,
+ 0xd7, 0x1f, 0x86, 0x19, 0x8d, 0x7c, 0x9b, 0xb5,
+ 0x24, 0x89, 0xda, 0xf7, 0xc4, 0x67, 0x1b, 0x80,
+ 0x16, 0x1e, 0x30, 0x4f, 0x9e, 0xb7, 0x12, 0x58,
+ 0x54, 0xda, 0xaf, 0x78, 0xe9, 0x6e, 0x7c, 0x98,
+ 0x0d, 0x3a, 0x41, 0xcf, 0xcc, 0xbc, 0x4c, 0x9f,
+ 0x1a, 0xf6, 0xd8, 0x6f, 0x61, 0x55, 0xdd, 0x00,
+ 0x64, 0xf3, 0x71, 0x2b, 0x55, 0x8f, 0xd4, 0xed,
+ 0xb1, 0x57, 0x8b, 0x39, 0x3e, 0x0d, 0xf5, 0x56,
+ 0x5f, 0x47, 0x5d, 0x8d, 0x6c, 0x8b, 0x33, 0x44,
+ 0xaf, 0x3e, 0x7c, 0x95, 0x4c, 0x45, 0x31, 0x12,
+ 0x4f, 0x94, 0x47, 0xc9, 0x57, 0x4b, 0x6d, 0x05,
+ 0xb9, 0x8d, 0x30, 0x54, 0x2a, 0xfd, 0x44, 0x40,
+ 0xd6, 0x59, 0xab, 0x5c, 0x5d, 0x6f, 0xbb, 0xab,
+ 0x4a, 0xff, 0x28, 0x60, 0xef, 0x49, 0x4b, 0x4d,
+ 0x3c, 0x21, 0x5a, 0xb1, 0x56, 0x48, 0x3d, 0x60,
+ 0x50, 0x83, 0x57, 0x98, 0xe8, 0x3a, 0x7f, 0xd4,
+ 0xe2, 0x17, 0x82, 0xcb, 0xd6, 0x34, 0xf4, 0x57,
+ 0x31, 0x1c, 0xc6, 0xc8, 0x00, 0x8d, 0x7f, 0xb0,
+ 0x78, 0x47, 0x61, 0xf1, 0xd5, 0xec, 0x3b, 0x5b,
+ 0x83, 0x91, 0x30, 0x58, 0x8f, 0x94, 0xc2, 0xf0,
+ 0xa8, 0x61, 0xd1, 0xfa, 0x95, 0x89, 0x6c, 0x21,
+ 0x76, 0xd8, 0x52, 0xf1, 0xdf, 0x85, 0xc3, 0xe6,
+ 0x4f, 0x6f, 0x9f, 0xee, 0x48, 0x11, 0xbd, 0x4f,
+ 0xff, 0xa9, 0xec, 0x8b, 0xf0, 0x4f, 0x67, 0x05,
+ 0xb0, 0x13, 0x11, 0x39, 0x7e, 0x7c, 0xc5, 0x99,
+ 0xa6, 0x73, 0x20, 0xff, 0x4b, 0x01, 0xc7, 0xc1,
+ 0xf6, 0x7c, 0x0a, 0x02, 0x57, 0x0b, 0xe3, 0x75,
+ 0xcc, 0x1b, 0x7a, 0xca, 0x33, 0x92, 0xdc, 0x5b,
+ 0xa1, 0x9e, 0xdd, 0x9e, 0xfd, 0x38, 0xc7, 0xa1,
+ 0x27, 0x81, 0xf5, 0xb4, 0x80, 0xf8, 0x0d, 0xfc,
+ 0xbd, 0x2d, 0x43, 0xe0, 0x28, 0xec, 0xc4, 0x04,
+ 0x00, 0x58, 0x76, 0x28, 0xb7, 0x78, 0x6c, 0xc7,
+ 0x01, 0x16, 0x53, 0x47, 0xe0, 0x15, 0xe0, 0xc3,
+ 0xe3, 0x34, 0x75, 0xec, 0xfb, 0x32, 0x10, 0x8f,
+ 0xd5, 0x0e, 0xf7, 0xfa, 0x02, 0x1e, 0xc9, 0x14,
+ 0x3b, 0x4f, 0x1d, 0xc5, 0x96, 0xac, 0x75, 0x78,
+ 0x69, 0x94, 0x82, 0xd8, 0x7f, 0x10, 0xe6, 0x50,
+ 0x5d, 0xef, 0x07, 0xcb, 0x64, 0x73, 0xf6, 0x34,
+ 0x35, 0x22, 0x94, 0x78, 0xf0, 0x5d, 0xd7, 0x37,
+ 0x74, 0xbf, 0x54, 0x3f, 0x3a, 0x6d, 0xd6, 0x6b,
+ 0x1a, 0x77, 0x29, 0xee, 0x1b, 0x63, 0x54, 0xc3,
+ 0x2d, 0x72, 0xf1, 0xbc, 0xc1, 0x0a, 0xe5, 0xbd,
+ 0xf8, 0x1f, 0x15, 0x05, 0x8b, 0x06, 0x1e, 0x6c,
+ 0xc7, 0x59, 0x48, 0xf5, 0x02, 0x39, 0x38, 0x3e,
+ 0x98, 0x75, 0x65, 0xc1, 0x88, 0x32, 0xa4, 0x29,
+ 0xfb, 0x2a, 0xbb, 0xfd, 0x51, 0x7e, 0x11, 0x52,
+ 0x08, 0xc4, 0x0b, 0xb2, 0xba, 0xe8, 0x57, 0x6a,
+ 0x2a, 0xf7, 0x41, 0x62, 0xf2, 0x40, 0xbf, 0xdc,
+ 0x7d, 0x6e, 0x1c, 0xd4, 0x49, 0x20, 0x84, 0x98,
+ 0x23, 0xb0, 0x3c, 0x79, 0xe8, 0x7d, 0xee, 0xc5,
+ 0xb5, 0x72, 0xb1, 0xbd, 0x9b, 0x77, 0x9a, 0x40,
+ 0xc2, 0xd8, 0x16, 0x56, 0x89, 0x80, 0x21, 0x43,
+ 0x01, 0xbc, 0x70, 0x5b, 0x32, 0x4b, 0x3f, 0xaf,
+ 0x5e, 0x49, 0x24, 0x63, 0x59, 0xa5, 0x18, 0x66,
+ 0x47, 0x9c, 0x14, 0x94, 0x44, 0xab, 0x5d, 0x62,
+ 0xb8, 0x86, 0x61, 0x13, 0xd3, 0x41, 0x69, 0xee,
+ 0x16, 0x60, 0x48, 0xec, 0xd8, 0xaf, 0x6e, 0x83,
+ 0x4b, 0x59, 0x73, 0x5c, 0xa5, 0xe5, 0xf3, 0x98,
+ 0xbf, 0x7b, 0xdc, 0x51, 0xfa, 0x64, 0xab, 0x8d,
+ 0x99, 0x5b, 0x29, 0x63, 0x5b, 0x3f, 0x8a, 0xaa,
+ 0xca, 0xd3, 0x24, 0x76, 0x2a, 0xe8, 0xbb, 0xfc,
+ 0x46, 0xc2, 0x93, 0xc5, 0xa7, 0xf0, 0x9d, 0x7d,
+ 0x4c, 0x77, 0x4e, 0xfd, 0xe0, 0xad, 0x25, 0xff,
+ 0x70, 0x94, 0xcb, 0x64, 0xe4, 0x4e, 0x57, 0x59,
+ 0xd8, 0xc4, 0x2a, 0x8f, 0xb3, 0x95, 0xc2, 0xc4,
+ 0x74, 0x0b, 0x35, 0x3c, 0x0f, 0xd3, 0x65, 0x77,
+ 0x6d, 0x51, 0x4d, 0x83, 0xa8, 0x9c, 0x7a, 0xde,
+ 0x8b, 0x3e, 0xda, 0x50, 0xf8, 0x3d, 0x96, 0xc9,
+ 0xa8, 0x1c, 0xc1, 0xd2, 0xa7, 0x03, 0x66, 0xb9,
+ 0x50, 0x20, 0xfc, 0xfc, 0xe2, 0x61, 0xff, 0x53,
+ 0x3c, 0xc0, 0xae, 0xa5, 0xdd, 0x51, 0xed, 0x55,
+ 0x89, 0x14, 0xb6, 0x9f, 0x86, 0xd3, 0xd4, 0xb1,
+ 0x67, 0xc6, 0xd7, 0xeb, 0x59, 0xf3, 0x6a, 0x2c,
+ 0x6c, 0x9a, 0x39, 0x0b, 0x92, 0x2a, 0x40, 0x14,
+ 0xa2, 0xd1, 0x05, 0x2d, 0x58, 0x86, 0x6d, 0x74,
+ 0xd9, 0x5c, 0x09, 0xcf, 0xb5, 0x3c, 0x91, 0x73,
+ 0x56, 0x05, 0xbb, 0x6d, 0x23, 0x8b, 0xf2, 0xa4,
+ 0x7b, 0x83, 0xc8, 0x7c, 0x92, 0x14, 0x32, 0xb9,
+ 0x1b, 0xfe, 0x28, 0xb9, 0x1f, 0xcf, 0x4b, 0x58,
+ 0x98, 0x0e, 0x30, 0xd1, 0xe5, 0x51, 0xb1, 0x51,
+ 0x75, 0xdf, 0x3f, 0x3f, 0x39, 0xd0, 0xc5, 0xc8,
+ 0x58, 0x6e, 0x5b, 0xf8, 0x10, 0x04, 0xa4, 0x58,
+ 0xd4, 0xbf, 0x4e, 0x36, 0x3e, 0xb5, 0x11, 0xb1,
+ 0x62, 0x57, 0xd2, 0xbb, 0xf7, 0x1e, 0xf1, 0xdc,
+ 0x23, 0x8d, 0xb4, 0x5c, 0xef, 0xba, 0x3b, 0x83,
+ 0xe3, 0xbf, 0xa4, 0xbc, 0x71, 0x15, 0xe8, 0xde,
+ 0x05, 0x13, 0x10, 0xde, 0xec, 0xf7, 0x37, 0xfa,
+ 0xec, 0x1b, 0x89, 0x6f, 0x3d, 0x10, 0xfa, 0x2a,
+ 0xe2, 0x1c, 0x4a, 0x4a, 0xe8, 0x12, 0x36, 0x11,
+ 0x99, 0x56, 0xd2, 0xd1, 0xf2, 0xc7, 0x98, 0xcd,
+ 0xb1, 0xfd, 0xbb, 0xc0, 0x2e, 0xa0, 0x05, 0x2c,
+ 0xe5, 0x6d, 0x1c, 0x25, 0x7d, 0x97, 0xa9, 0x29,
+ 0x19, 0x92, 0xaf, 0x52, 0x5b, 0xd9, 0x05, 0x68,
+ 0xae, 0x30, 0xb7, 0x38, 0x07, 0xcd, 0xc6, 0xd5,
+ 0x24, 0x61, 0xc8, 0x6e, 0x26, 0x92, 0xcc, 0x34,
+ 0x68, 0x52, 0x91, 0x5e, 0x5f, 0xc8, 0x67, 0x7f,
+ 0xe5, 0x02, 0x35, 0x1e, 0xf3, 0x1f, 0xcc, 0x1e,
+ 0x2b, 0x07, 0xbe, 0x20, 0x00, 0x5f, 0x06, 0x3e,
+ 0xc4, 0x5e, 0x75, 0xc0, 0xd1, 0x04, 0x03, 0xa1,
+ 0x52, 0x87, 0x77, 0x0d, 0x4a, 0xf0, 0x9a, 0xd1,
+ 0x3e, 0x67, 0x59, 0x8e, 0x9e, 0x86, 0xc2, 0x89,
+ 0xb8, 0xdb, 0x07, 0xca, 0xd8, 0xcb, 0x23, 0x57,
+ 0x38, 0xc5, 0x22, 0x1d, 0xea, 0x44, 0xfe, 0xb1,
+ 0xe2, 0xe5, 0x69, 0xd5, 0x59, 0x3b, 0x82, 0x6c,
+ 0xcb, 0x02, 0x5b, 0x28, 0xe0, 0xa4, 0x02, 0x61,
+ 0x8c, 0x4a, 0x23, 0x45, 0x4a, 0x61, 0xe1, 0x45,
+ 0x44, 0xcd, 0x9f, 0xad, 0x5f, 0xc8, 0x1b, 0x7b,
+ 0x8e, 0x39, 0x20, 0xbb, 0xc6, 0x3b, 0x76, 0x85,
+ 0x56, 0xb6, 0xd2, 0xa0, 0x8f, 0x1e, 0xfa, 0xe3,
+ 0xcf, 0x32, 0x42, 0x32, 0x19, 0x05, 0xdc, 0x56,
+ 0x8f, 0xe3, 0x4e, 0xd9, 0x0c, 0x07, 0x54, 0x8d,
+ 0x65, 0xdc, 0x08, 0x59, 0xfd, 0x9a, 0x1b, 0x1e,
+ 0xf3, 0xdc, 0x32, 0x64, 0xaf, 0x17, 0xc4, 0x2c,
+ 0x7e, 0x72, 0x5f, 0x3e, 0x46, 0xb7, 0xdd, 0x40,
+ 0x49, 0x5b, 0x9c, 0x32, 0x92, 0x1c, 0x6c, 0x9d,
+ 0x58, 0x79, 0xc2, 0xb8, 0x20, 0xbb, 0x39, 0xd9,
+ 0x86, 0x7c, 0x06, 0xf3, 0x5b, 0xcb, 0x0f, 0xd0,
+ 0x2d, 0x7c, 0x2e, 0x05, 0x34, 0xfc, 0xa1, 0x1f,
+ 0x66, 0xba, 0x17, 0xdb, 0x3d, 0x3d, 0x2f, 0x7e,
+ 0x25, 0x20, 0xa7, 0xb9, 0xd1, 0x2f, 0xea, 0x06,
+ 0x33, 0x5d, 0x69, 0xe8, 0xb9, 0x05, 0x72, 0x85,
+ 0x7a, 0x09, 0x99, 0x5a, 0x17, 0x57, 0x1d, 0xd7,
+ 0xb1, 0xe4, 0x7e, 0x8e, 0x7a, 0x9c, 0xdf, 0xcf,
+ 0x4d, 0x09, 0x53, 0x4c, 0x84, 0x57, 0xc9, 0x7b,
+ 0x7f, 0x66, 0x77, 0xa6, 0xc0, 0xc9, 0x3a, 0xb1,
+ 0x1f, 0xe4, 0xfc, 0x8e, 0xdd, 0x7c, 0x50, 0xe4,
+ 0xdb, 0xf9, 0x35, 0x8e, 0x43, 0x3e, 0x38, 0xb1,
+ 0x1b, 0x6f, 0xde, 0xab, 0xcc, 0xb4, 0x5b, 0xec,
+ 0x42, 0x10, 0xc6, 0x3a, 0xd4, 0xa6, 0xc4, 0x98,
+ 0xe8, 0x81, 0x30, 0x58, 0x03, 0xc6, 0xea, 0xc9,
+ 0xee, 0x45, 0x1b, 0x84, 0x3d, 0x80, 0x06, 0x7f,
+ 0xdf, 0x8a, 0x8c, 0xac, 0xc1, 0x33, 0x98, 0xd4,
+ 0x2a, 0xdc, 0xa9, 0xe0, 0xd7, 0xd8, 0x3a, 0x4f,
+ 0xd7, 0xb6, 0x5c, 0x1c, 0x4b, 0x06, 0x3e, 0x01,
+ 0x62, 0xfc, 0x50, 0x64, 0xe7, 0x04, 0x59, 0x1c,
+ 0x9c, 0x92, 0x81, 0xb8, 0x1f, 0x4b, 0x7e, 0xba,
+ 0xfc, 0x7b, 0x2d, 0x67, 0x56, 0xfc, 0xbd, 0x41,
+ 0xa9, 0xbd, 0x90, 0x25, 0xc0, 0x60, 0x0f, 0xe6,
+ 0x3b, 0xcf, 0x42, 0xf2, 0xdd, 0xab, 0xd5, 0xe1,
+ 0xf0, 0xbb, 0x88, 0x50, 0xf0, 0xde, 0x26, 0x91,
+ 0xa7, 0x93, 0xfb, 0xe7, 0xea, 0x75, 0xf0, 0x2a,
+ 0x5b, 0x97, 0xd3, 0xe2, 0x61, 0x0e, 0x4b, 0xba,
+ 0x99, 0x97, 0xba, 0xbe, 0x0c, 0x86, 0x89, 0x27,
+ 0x7e, 0xd4, 0xc7, 0x2d, 0xdf, 0x4b, 0x0d, 0x5c,
+ 0xa9, 0x64, 0x77, 0xaf, 0xfe, 0x63, 0xc8, 0x9b,
+ 0x1f, 0xfb, 0xf0, 0x86, 0xd7, 0x58, 0x7f, 0xbb,
+ 0x4b, 0x07, 0x16, 0x85, 0x09, 0x3c, 0x93, 0x9a,
+ 0x2d, 0x3b, 0xfe, 0xd6, 0xb0, 0x30, 0xd1, 0x0b,
+ 0x87, 0xb2, 0xc6, 0xf4, 0x23, 0x36, 0x08, 0x04,
+ 0xf3, 0x2d, 0x44, 0x6b, 0xbd, 0x65, 0x64, 0x14,
+ 0xd2, 0x08, 0x41, 0xa9, 0xf4, 0x53, 0xd3, 0xe8,
+ 0x01, 0xaa, 0xcc, 0xf6, 0xa4, 0x74, 0x53, 0x87,
+ 0x84, 0x84, 0xe4, 0x49, 0xc6, 0xf8, 0xed, 0xa9,
+ 0x0d, 0xdf, 0x06, 0x03, 0xbf, 0x55, 0x46, 0xa5,
+ 0xb7, 0x1b, 0x24, 0xaa, 0xf2, 0x01, 0x8e, 0x25,
+ 0x66, 0xe4, 0xad, 0x19, 0x89, 0x86, 0x0f, 0xf9,
+ 0x5f, 0x5b, 0x78, 0x7b, 0xf2, 0xdb, 0xfd, 0x1e,
+ 0xbf, 0xcb, 0x9a, 0xa4, 0x38, 0x38, 0x14, 0x91,
+ 0x68, 0xda, 0x17, 0x93, 0x24, 0x42, 0xdf, 0x94,
+ 0x77, 0x75, 0xb5, 0xe3, 0x05, 0x29, 0xc9, 0xfa,
+ 0x31, 0x63, 0x87, 0x2d, 0x9d, 0x8d, 0xe5, 0x81,
+ 0xaf, 0x0c, 0xc5, 0x25, 0xdc, 0xf4, 0xcf, 0x69,
+ 0x7a, 0xe1, 0x6d, 0x26, 0x7a, 0xc6, 0xdd, 0x54,
+ 0x01, 0xb3, 0x21, 0x57, 0x5b, 0xaf, 0x83, 0xa1,
+ 0x15, 0x38, 0xbf, 0x02, 0x78, 0xc2, 0x8d, 0xc6,
+ 0xed, 0xb1, 0xd3, 0x97, 0x97, 0xae, 0xf3, 0x90,
+ 0x6a, 0xed, 0x1f, 0xb5, 0x52, 0x06, 0x58, 0xf4,
+ 0x16, 0xe7, 0xde, 0x6e, 0xfc, 0x12, 0x1a, 0x8f,
+ 0x72, 0xbd, 0xed, 0x13, 0x81, 0x57, 0x66, 0xf2,
+ 0x1e, 0x29, 0xa0, 0x37, 0xfd, 0xa9, 0x3b, 0xec,
+ 0xde, 0xb1, 0x8d, 0xb7, 0x16, 0xf6, 0xc4, 0x8b,
+ 0x09, 0x32, 0xdd, 0x49, 0x0e, 0x8b, 0xbc, 0xc3,
+ 0xa6, 0xd3, 0x9b, 0x8c, 0xe7, 0x1b, 0xb0, 0x71,
+ 0xb9, 0x5d, 0x83, 0x59, 0xca, 0x28, 0x50, 0x70,
+ 0xa1, 0x95, 0x12, 0xe9, 0xf5, 0x5d, 0x74, 0x5b,
+ 0xd7, 0x55, 0xb9, 0xc4, 0xf6, 0x89, 0x19, 0x2c,
+ 0x8e, 0x4a, 0x86, 0x8a, 0x4d, 0x05, 0x05, 0x85,
+ 0x57, 0xc8, 0x9b, 0xf1, 0x35, 0xe0, 0xd3, 0x00,
+ 0x46, 0xe6, 0x02, 0xed, 0x1e, 0xdb, 0x46, 0xb7,
+ 0x22, 0xa4, 0x4b, 0xa4, 0xbd, 0x69, 0xd0, 0x89,
+ 0xd6, 0x97, 0x37, 0x6c, 0xd8, 0x5e, 0x60, 0xe1,
+ 0xfe, 0x4e, 0x79, 0xa9, 0x27, 0x8f, 0xf1, 0x79,
+ 0xc6, 0x2b, 0x64, 0x84, 0xc0, 0x1b, 0x08, 0xe7,
+ 0x83, 0xdb, 0xc0, 0x76, 0x18, 0xf3, 0x5f, 0x68,
+ 0xa5, 0x67, 0x56, 0x9f, 0x38, 0x13, 0x52, 0xf0,
+ 0xe3, 0x80, 0xbd, 0x85, 0x0d, 0x89, 0x1c, 0x4a,
+ 0x5b, 0x29, 0x51, 0x44, 0x9c, 0xbe, 0x7d, 0x74,
+ 0xb3, 0x14, 0xae, 0x1b, 0x1c, 0x33, 0x47, 0x2c,
+ 0xaa, 0xdd, 0xff, 0x6f, 0xf1, 0x69, 0xf5, 0xb1,
+ 0x44, 0x56, 0x4d, 0xc3, 0xb7, 0x6f, 0x29, 0xa7,
+ 0x99, 0x49, 0xce, 0xa4, 0x52, 0x36, 0xa7, 0x4e,
+ 0xb3, 0xad, 0x46, 0x8a, 0xa8, 0xf2, 0x8f, 0x0b,
+ 0xbd, 0xd7, 0x1d, 0x79, 0x76, 0x8e, 0x0a, 0x63,
+ 0xf2, 0x71, 0x90, 0xc9, 0xa2, 0x32, 0x1a, 0x05,
+ 0xa5, 0x5d, 0x57, 0xb2, 0xba, 0x20, 0x10, 0x66,
+ 0xac, 0x1c, 0xde, 0x4d, 0x12, 0xfc, 0xb3, 0x85,
+ 0xe3, 0x12, 0xb4, 0x27, 0x8f, 0xa4, 0xc9, 0x59,
+ 0x44, 0x4f, 0xdc, 0x3a, 0x74, 0x95, 0x44, 0xa5,
+ 0xb1, 0x74, 0x6b, 0xbb, 0x42, 0xd8, 0x2e, 0x27,
+ 0x2e, 0xc1, 0x23, 0xa3, 0x5c, 0x09, 0x1d, 0xbf,
+ 0x81, 0x57, 0xa2, 0x86, 0x9d, 0xcc, 0xd9, 0x39,
+ 0x76, 0x29, 0xdd, 0xde, 0x19, 0xff, 0xe8, 0x65,
+ 0x70, 0xa2, 0x00, 0xd8, 0x0e, 0x50, 0xc9, 0xf7,
+ 0x36, 0x19, 0x66, 0x54, 0x61, 0x9b, 0x60, 0x4d,
+ 0xe0, 0xac, 0xf4, 0x8f, 0x67, 0x96, 0x27, 0x62,
+ 0x4c, 0xa1, 0xfa, 0x80, 0xb5, 0x43, 0x6c, 0x61,
+ 0x77, 0x07, 0x47, 0xc4, 0x6b, 0xcc, 0x23, 0x13,
+ 0x9f, 0x98, 0xf7, 0x34, 0x84, 0x06, 0x3c, 0x31,
+ 0xfb, 0xb5, 0x9c, 0x44, 0x51, 0xa0, 0xe7, 0x78,
+ 0x7c, 0x86, 0x11, 0x55, 0xd7, 0xd8, 0x30, 0x43,
+ 0x58, 0xaf, 0x9e, 0x26, 0x8c, 0x12, 0x5f, 0xce,
+ 0xa7, 0xe7, 0x53, 0x3d, 0xaa, 0xf7, 0x0d, 0xf5,
+ 0x9b, 0x91, 0xba, 0xac, 0xec, 0x4a, 0xb9, 0xaf,
+ 0x94, 0x34, 0xb3, 0x8c, 0xf0, 0xf2, 0xce, 0x14,
+ 0x2b, 0xc5, 0x35, 0x25, 0x2b, 0xcb, 0xbf, 0x5e,
+ 0x91, 0x48, 0xf7, 0x01, 0x42, 0x5d, 0x17, 0x89,
+ 0xeb, 0xea, 0x75, 0x5b, 0x44, 0x73, 0xa6, 0xeb,
+ 0x1b, 0x8d, 0xb5, 0x95, 0xed, 0xca, 0xf3, 0x5f,
+ 0xf8, 0x80, 0xc4, 0xc7, 0x2d, 0xf3, 0xf0, 0x86,
+ 0x8f, 0x88, 0x6c, 0x67, 0xea, 0xd0, 0x38, 0x7a,
+ 0x1b, 0x7e, 0x9e, 0xf6, 0x5f, 0x56, 0x4f, 0x94,
+ 0xf2, 0xf8, 0xbb, 0x96, 0xb1, 0x9e, 0x0f, 0x90,
+ 0x92, 0xe5, 0x5d, 0x16, 0xea, 0x2e, 0xab, 0x0b,
+ 0x4c, 0x9b, 0x40, 0xa0, 0x35, 0x12, 0x7b, 0x88,
+ 0xa6, 0xbe, 0x1d, 0x05, 0x51, 0x79, 0xe1, 0xae,
+ 0x06, 0x42, 0xe7, 0xe8, 0xed, 0x36, 0xcb, 0x5f,
+ 0xff, 0x05, 0x3a, 0xc3, 0x80, 0x51, 0x51, 0x14,
+ 0xe0, 0x6f, 0x0d, 0x8f, 0x3a, 0xa3, 0xd0, 0x99,
+ 0xb0, 0xc9, 0x02, 0x42, 0xd8, 0x26, 0xbe, 0x51,
+ 0xee, 0x42, 0x7d, 0x73, 0xc2, 0xc5, 0x0b, 0xb9,
+ 0x03, 0x26, 0x8e, 0xac, 0x65, 0x41, 0xbf, 0xaa,
+ 0xf4, 0x34, 0xfe, 0xe1, 0xf3, 0xdb, 0x3c, 0x0b,
+ 0x5c, 0x72, 0x2c, 0x0b, 0x6c, 0x83, 0x9c, 0xa4,
+ 0x8f, 0xac, 0x15, 0x76, 0x23, 0xf3, 0x5b, 0xa9,
+ 0x25, 0x71, 0xe1, 0x7d, 0x85, 0x41, 0xd0, 0xc8,
+ 0x48, 0x93, 0x7b, 0xa0, 0x59, 0x02, 0xb9, 0xe9,
+ 0x6f, 0x8c, 0xda, 0xa9, 0x0d, 0x0c, 0x95, 0x33,
+ 0xfe, 0x13, 0xc0, 0xdc, 0xad, 0x36, 0xe1, 0xd0,
+ 0x91, 0x4c, 0xe4, 0xa8, 0x2f, 0xf5, 0xd1, 0x66,
+ 0x8a, 0x2c, 0x5d, 0xcc, 0xfb, 0xb2, 0xa9, 0x1a,
+ 0x2b, 0x04, 0x9b, 0x83, 0x72, 0xb2, 0xd6, 0x43,
+ 0x53, 0xcd, 0x28, 0x7f, 0x8a, 0x95, 0xb5, 0x93,
+ 0x54, 0xf7, 0xcc, 0x95, 0xca, 0x8a, 0xec, 0xb2,
+ 0x49, 0x46, 0x11, 0xc6, 0x4e, 0x60, 0xe5, 0xcd,
+ 0x42, 0x29, 0xdf, 0x14, 0x47, 0x42, 0x6d, 0xd9,
+ 0x46, 0xcb, 0x07, 0xd9, 0xf9, 0x3d, 0xa6, 0x60,
+ 0x71, 0x80, 0xbb, 0xe8, 0xfd, 0x73, 0x22, 0x1a,
+ 0x67, 0x5f, 0x16, 0x95, 0x81, 0x74, 0x03, 0xbe,
+ 0xd7, 0x20, 0x27, 0xaf, 0xd3, 0x48, 0x62, 0x20,
+ 0xca, 0x0b, 0xff, 0xd5, 0x41, 0xa5, 0xd4, 0xa9,
+ 0x22, 0x51, 0x68, 0x67, 0xe3, 0x5d, 0xc1, 0x70,
+ 0xc2, 0x5f, 0x79, 0xf9, 0x27, 0x4d, 0x96, 0x92,
+ 0xd4, 0xd9, 0x03, 0xef, 0x50, 0xd0, 0x99, 0x69,
+ 0x78, 0xe2, 0xec, 0x7d, 0x09, 0x6b, 0x96, 0xfd,
+ 0x62, 0x61, 0xf4, 0xb8, 0x86, 0x09, 0xa5, 0xcf,
+ 0x41, 0x67, 0x6e, 0xbe, 0x3c, 0x3f, 0xb6, 0x58,
+ 0xe2, 0xe7, 0x97, 0xda, 0xde, 0x2c, 0x82, 0x12,
+ 0xee, 0x44, 0xd2, 0x87, 0x91, 0x11, 0x46, 0xaf,
+ 0x16, 0xf7, 0xc0, 0x8e, 0x7d, 0x71, 0x03, 0xd6,
+ 0x76, 0x5c, 0x0d, 0x28, 0x16, 0x03, 0xbd, 0xc0,
+ 0x7a, 0xc0, 0x44, 0x3a, 0xf0, 0xc7, 0x75, 0xc8,
+ 0xad, 0x28, 0x5c, 0xd7, 0x18, 0x53, 0x5f, 0xcf,
+ 0xe2, 0x72, 0x7d, 0xa6, 0xb6, 0x09, 0xf6, 0x2d,
+ 0xc0, 0xaa, 0x25, 0x35, 0x2f, 0xa3, 0xbe, 0x9e,
+ 0x91, 0x68, 0x57, 0xa8, 0x69, 0xa5, 0x45, 0x43,
+ 0xdb, 0x58, 0xc8, 0xee, 0x05, 0x62, 0x1d, 0x7b,
+ 0x0d, 0x66, 0x83, 0x44, 0x26, 0x0c, 0xdf, 0x8b,
+ 0x6e, 0x72, 0x60, 0x2f, 0xd6, 0x77, 0x5d, 0x62,
+ 0xc0, 0x56, 0xe3, 0x18, 0x0a, 0x85, 0x79, 0x43,
+ 0x9f, 0x5c, 0x2d, 0x42, 0xd2, 0x47, 0xb2, 0xa7,
+ 0x48, 0x5e, 0x29, 0x95, 0x1a, 0xd7, 0x0c, 0x65,
+ 0xcd, 0x8d, 0xd9, 0xfb, 0x7d, 0xad, 0x3e, 0x93,
+ 0x1c, 0x18, 0x5c, 0xaf, 0x9b, 0x24, 0x63, 0xe3,
+ 0xc9, 0x90, 0x5e, 0x45, 0x51, 0x35, 0x59, 0x44,
+ 0x35, 0x6b, 0xe4, 0xb1, 0x89, 0xcc, 0xc7, 0xd3,
+ 0x54, 0x62, 0xa2, 0x1a, 0xc0, 0x60, 0x57, 0x9e,
+ 0x70, 0x85, 0x42, 0xbe, 0x2b, 0x44, 0xe9, 0xfe,
+ 0x0c, 0xa2, 0xd7, 0x49, 0xc3, 0x50, 0xd3, 0x3f,
+ 0x0a, 0xa4, 0xbd, 0xf6, 0x01, 0x9b, 0x5a, 0x1f,
+ 0xdf, 0xe6, 0x3f, 0x56, 0xa0, 0xc8, 0x14, 0xff,
+ 0xd1, 0xd5, 0x8d, 0xab, 0x7d, 0x20, 0x82, 0x12,
+ 0xe6, 0x75, 0x4e, 0xc4, 0x21, 0xd7, 0x14, 0x74,
+ 0xa0, 0xb4, 0x46, 0x07, 0xd4, 0xb8, 0xc2, 0x40,
+ 0xf2, 0x99, 0x33, 0xfe, 0x60, 0xe1, 0x6a, 0x69,
+ 0xf2, 0x35, 0xda, 0x95, 0x57, 0x7b, 0x30, 0xe3,
+ 0x34, 0x09, 0xe2, 0xf5, 0x57, 0xd7, 0x3e, 0x19,
+ 0x23, 0x1c, 0x86, 0xf9, 0x9e, 0xe6, 0xb3, 0x0d,
+ 0x04, 0x37, 0x1e, 0x26, 0x9f, 0xd9, 0xf6, 0xd0,
+ 0x8d, 0x85, 0xa6, 0xa3, 0x27, 0x94, 0x82, 0x2b,
+ 0x1f, 0x4a, 0x5f, 0xe7, 0xfb, 0x16, 0xa6, 0xab,
+ 0xf9, 0x62, 0x96, 0xb9, 0x48, 0x70, 0x9a, 0xd8,
+ 0x10, 0xac, 0xae, 0xc4, 0x39, 0x48, 0xfb, 0x79,
+ 0x91, 0x56, 0x4c, 0x26, 0x48, 0x73, 0x90, 0x00,
+ 0xf9, 0x15, 0x1b, 0x59, 0x14, 0x0b, 0x11, 0x62,
+ 0xf7, 0x42, 0xc6, 0x08, 0xd6, 0xb3, 0xc2, 0x68,
+ 0xd0, 0x39, 0x17, 0x6c, 0x27, 0x21, 0x53, 0xb5,
+ 0x21, 0x4d, 0x85, 0x87, 0xda, 0x1b, 0x2e, 0x67,
+ 0x77, 0xb7, 0xbb, 0xfc, 0x1d, 0x50, 0x8c, 0x9f,
+ 0x2e, 0xae, 0xda, 0x35, 0x42, 0x56, 0x59, 0x9c,
+ 0xc0, 0x04, 0x12, 0x36, 0x7e, 0x8f, 0x99, 0xb1,
+ 0xe6, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0x0c, 0x10, 0x13, 0x19, 0x22, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0xef, 0x23, 0x61, 0xd2, 0x13, 0x8e, 0xaf, 0x16,
+ 0xdf, 0x67, 0x8a, 0x3e, 0xe8, 0x05, 0x1d, 0x36,
+ 0xda, 0x1b, 0xb5, 0x12, 0xfd, 0xe1, 0x0d, 0x87,
+ 0x63, 0x31, 0xf1, 0xff, 0xb5, 0x66, 0x63, 0x9e,
+ 0x14, 0x7a, 0x48, 0x84, 0xd9, 0x35, 0x40, 0x0a,
+ 0x4c, 0x15, 0x07, 0xce, 0x20, 0x68, 0x6b, 0xfb,
+ 0x23, 0x2e, 0xf6, 0x40, 0xcd, 0xb6, 0x2c, 0xb3,
+ 0xa0, 0x3b, 0x95, 0x13, 0xb3, 0x21, 0x4d, 0xca,
+ 0xee, 0x8a, 0x3e, 0x6b, 0xb1, 0x65, 0x44, 0x7e,
+ 0xac, 0x91, 0x7d, 0xcd, 0xda, 0x9f, 0xa8, 0xce,
+ 0x91, 0x99, 0x2a, 0x13, 0xb9, 0xf0, 0xed, 0xd9,
+ 0x00, 0x52, 0x54, 0x09, 0xde, 0xeb, 0x79, 0x41,
+ 0xc3, 0x15, 0x66, 0x8b, 0x0b, 0xf3, 0x89, 0x56,
+ 0x7c, 0xaa, 0xf2, 0x36, 0x16, 0x6e, 0xc5, 0x1d,
+ 0x61, 0x78, 0xbb, 0x4e, 0x8d, 0x49, 0xf5, 0x6c,
+ 0x7c, 0x7b, 0xe9, 0x5a, 0x58, 0xe5, 0x5d, 0x37,
+ 0x23, 0x1c, 0x68, 0xb2, 0x18, 0x09, 0x1c, 0xd0,
+ 0xbf, 0x7f, 0x0b, 0x39, 0xb9, 0x83, 0x15, 0xc7,
+ 0x80, 0xd0, 0xed, 0xdb, 0xec, 0xed, 0x36, 0x7d,
+ 0x8f, 0x5b, 0xdf, 0xa2, 0x02, 0xf7, 0x4f, 0x61,
+ 0x42, 0xc2, 0xb7, 0xce, 0xe4, 0x36, 0xbb, 0x5a,
+ 0x37, 0x97, 0x57, 0x4e, 0xa1, 0x03, 0x71, 0x8a,
+ 0x4c, 0x69, 0x26, 0x3c, 0x4c, 0xc9, 0xfc, 0xaf,
+ 0x8d, 0x0e, 0x65, 0x89, 0xef, 0xab, 0x73, 0x5c,
+ 0x50, 0xed, 0x1e, 0xd6, 0x7f, 0x65, 0x85, 0xe1,
+ 0xac, 0x01, 0xed, 0x59, 0xad, 0x4a, 0x80, 0xb4,
+ 0x71, 0xd0, 0xea, 0x80, 0xdd, 0x37, 0xfe, 0xa8,
+ 0x96, 0x0d, 0xab, 0x02, 0x42, 0x56, 0xdc, 0x3f,
+ 0x9b, 0x00, 0x4e, 0x6c, 0xbb, 0x7a, 0xd1, 0x17,
+ 0x40, 0x11, 0xed, 0x92, 0xc0, 0x6c, 0xfa, 0xdb,
+ 0x01, 0x5b, 0x74, 0x72, 0x9d, 0xa3, 0x5b, 0x23,
+ 0x86, 0x20, 0x20, 0xc5, 0x04, 0x5e, 0xbd, 0x69,
+ 0xba, 0x19, 0x67, 0x41, 0x07, 0x50, 0xd0, 0x3f,
+ 0x32, 0xcf, 0xce, 0x51, 0xc1, 0x9a, 0x1e, 0xa6,
+ 0x99, 0x23, 0x5a, 0xf6, 0x24, 0x6d, 0xb7, 0xd8,
+ 0xd9, 0x12, 0x84, 0x5e, 0x3e, 0x05, 0xc4, 0xe4,
+ 0x0b, 0x52, 0x7a, 0x0f, 0xd0, 0x38, 0x69, 0x31,
+ 0x02, 0xc2, 0xfb, 0x06, 0x8f, 0xbb, 0x1b, 0xb7,
+ 0x96, 0x21, 0xdf, 0x45, 0xdc, 0x8c, 0x1a, 0x16,
+ 0xb5, 0xa2, 0x07, 0x68, 0xdb, 0x09, 0xf3, 0xe8,
+ 0x78, 0x89, 0x0f, 0x6c, 0x1a, 0x0b, 0x5e, 0xb5,
+ 0xb8, 0x07, 0xb0, 0x14, 0x2a, 0x50, 0xae, 0x4c,
+ 0xe4, 0x8b, 0xbc, 0x5f, 0x52, 0x4d, 0x1f, 0xe8,
+ 0x77, 0xc4, 0x8c, 0x46, 0xe8, 0x81, 0x3b, 0x6a,
+ 0x60, 0xcc, 0x82, 0xcd, 0x04, 0x22, 0x38, 0x77,
+ 0x3f, 0x95, 0x95, 0x55, 0x55, 0xa9, 0x4a, 0x65,
+ 0x8d, 0x92, 0x8b, 0x61, 0xbc, 0xae, 0xe0, 0x16,
+ 0x49, 0x8c, 0x08, 0x4f, 0xb0, 0x70, 0x76, 0xcc,
+ 0xec, 0xee, 0x4a, 0x5e, 0x4b, 0x2b, 0x53, 0x03,
+ 0xc3, 0x67, 0xf6, 0x4f, 0x2f, 0xd3, 0x8c, 0x18,
+ 0xf0, 0x74, 0x26, 0xd7, 0x57, 0xef, 0x39, 0x6f,
+ 0x13, 0x07, 0x1c, 0xfd, 0x98, 0x97, 0x61, 0x08,
+ 0xbc, 0x24, 0xd3, 0xd6, 0x43, 0x2e, 0x6b, 0x06,
+ 0x7a, 0x27, 0x2a, 0x94, 0xfc, 0x21, 0x83, 0xc6,
+ 0xd6, 0xe6, 0x52, 0xd1, 0x62, 0x48, 0x0e, 0x93,
+ 0x06, 0x08, 0xb6, 0x41, 0x4c, 0x76, 0x78, 0x98,
+ 0x2b, 0xb8, 0x68, 0x81, 0x36, 0xb6, 0x12, 0x3c,
+ 0x47, 0xae, 0x54, 0xb9, 0xa1, 0xca, 0x9e, 0x6e,
+ 0x54, 0x64, 0x91, 0x4a, 0x4f, 0xd8, 0xee, 0xb4,
+ 0xdb, 0x80, 0xc4, 0xa7, 0x49, 0x62, 0xdf, 0xb3,
+ 0xc4, 0xd7, 0xf4, 0xbf, 0xab, 0xe8, 0xcb, 0xb9,
+ 0xc4, 0x70, 0xf2, 0xbf, 0x77, 0xac, 0xe7, 0xdb,
+ 0x09, 0xd7, 0x9e, 0x1f, 0x00, 0x5a, 0x2b, 0xb1,
+ 0xfb, 0x89, 0x2e, 0x14, 0xe1, 0x2a, 0xf2, 0xae,
+ 0x11, 0x44, 0xa6, 0xa2, 0x31, 0x2e, 0x60, 0xb2,
+ 0x3e, 0xb0, 0x10, 0x2f, 0x18, 0x17, 0xff, 0x32,
+ 0xf1, 0xc9, 0x21, 0xb8, 0xf3, 0x50, 0xf3, 0x3d,
+ 0xb0, 0xf3, 0xeb, 0xd1, 0x10, 0x21, 0x53, 0x9a,
+ 0xbd, 0xf2, 0x18, 0x4d, 0xfb, 0x1e, 0xab, 0x2e,
+ 0xb6, 0x9b, 0xf6, 0x7c, 0xd4, 0xfc, 0x1e, 0xbe,
+ 0xee, 0xae, 0x57, 0xee, 0xde, 0xd2, 0xb1, 0x06,
+ 0x3c, 0xcc, 0x36, 0x10, 0xc1, 0xc9, 0xc1, 0x47,
+ 0x15, 0x4f, 0x1b, 0x10, 0x0f, 0xaf, 0xc3, 0x7b,
+ 0x25, 0x2d, 0xe5, 0x9a, 0x6e, 0xef, 0xf1, 0xa9,
+ 0x25, 0xe6, 0xf3, 0x28, 0x82, 0x73, 0x4b, 0x44,
+ 0x56, 0x30, 0x9b, 0xe0, 0xfb, 0xfc, 0x5c, 0x84,
+ 0xd8, 0xe7, 0xf3, 0x0d, 0x43, 0x8b, 0xdc, 0xae,
+ 0x97, 0xeb, 0x45, 0x9f, 0x0e, 0xb7, 0x58, 0x65,
+ 0x86, 0x9e, 0x24, 0x2f, 0xd7, 0x4f, 0x21, 0x9c,
+ 0x67, 0x76, 0x91, 0x27, 0xed, 0x9f, 0xa3, 0xa6,
+ 0x15, 0x5e, 0xa8, 0x13, 0x58, 0x53, 0x1c, 0x7c,
+ 0x24, 0x85, 0xbf, 0xea, 0xba, 0x01, 0xd5, 0xf3,
+ 0x29, 0xa4, 0xd0, 0x34, 0x04, 0x67, 0xf8, 0xb2,
+ 0xd0, 0x2c, 0x08, 0xd3, 0xb4, 0x6b, 0x42, 0xec,
+ 0xd0, 0x1e, 0x2e, 0x02, 0xcc, 0xeb, 0xa6, 0x9f,
+ 0x2b, 0x3a, 0x1b, 0x45, 0x83, 0x53, 0xeb, 0xb1,
+ 0x8f, 0x51, 0x3d, 0xee, 0xf3, 0x5f, 0x05, 0x10,
+ 0xfa, 0x15, 0x15, 0x3f, 0x0a, 0x7b, 0xfe, 0xf4,
+ 0x11, 0x72, 0xc1, 0xe9, 0x99, 0x15, 0x25, 0x74,
+ 0xf9, 0xe0, 0x14, 0xc6, 0x2b, 0x49, 0x4b, 0x1b,
+ 0xa2, 0x42, 0x75, 0xd6, 0x0f, 0x3e, 0xc6, 0x74,
+ 0xbb, 0x44, 0x1f, 0xc4, 0x09, 0x8b, 0x91, 0x9e,
+ 0x55, 0x5d, 0x4b, 0xaa, 0xe8, 0x16, 0x33, 0x6d,
+ 0x3d, 0xe5, 0x5d, 0x94, 0xb7, 0x66, 0x5a, 0xf6,
+ 0x4e, 0x5b, 0x04, 0x16, 0x7b, 0xd3, 0x31, 0x3d,
+ 0x7a, 0x98, 0xb6, 0x93, 0x69, 0x40, 0x42, 0x1c,
+ 0xcd, 0x07, 0xc9, 0x80, 0xb0, 0xd4, 0xce, 0x70,
+ 0x98, 0x19, 0xad, 0x3d, 0xd1, 0x7b, 0xad, 0x8d,
+ 0x01, 0x4b, 0x26, 0x12, 0x5b, 0xbc, 0x83, 0xbf,
+ 0xc5, 0x4d, 0xf1, 0xf7, 0xaf, 0xaf, 0xdf, 0xc7,
+ 0x3c, 0x8a, 0x6c, 0x65, 0xd0, 0x0c, 0x2e, 0x6b,
+ 0x77, 0xd2, 0xb7, 0x2e, 0xd4, 0xe5, 0xf6, 0x90,
+ 0xd3, 0x3b, 0xd4, 0xee, 0xe0, 0x10, 0x65, 0x81,
+ 0x28, 0x24, 0x77, 0xd6, 0x87, 0x94, 0x87, 0x80,
+ 0xe0, 0xf1, 0x43, 0x7b, 0xc0, 0x9e, 0xa9, 0x74,
+ 0xfe, 0xa2, 0xf2, 0x85, 0x47, 0x64, 0xe1, 0x31,
+ 0xe0, 0x5a, 0x99, 0x67, 0x77, 0x82, 0x4e, 0x01,
+ 0x56, 0xac, 0x28, 0x6d, 0xb8, 0x92, 0x57, 0x7b,
+ 0x86, 0xb2, 0x78, 0x2d, 0x98, 0x9b, 0x8f, 0x59,
+ 0xfa, 0xe2, 0x46, 0x91, 0xfe, 0x64, 0xa3, 0x2e,
+ 0xa4, 0x4c, 0xca, 0xdc, 0x29, 0xb2, 0xb7, 0x4a,
+ 0x91, 0x95, 0x08, 0x7b, 0x7e, 0x45, 0x7a, 0x37,
+ 0xc7, 0x67, 0xcf, 0x59, 0x63, 0x78, 0xa1, 0x85,
+ 0x35, 0xa6, 0x35, 0x15, 0x91, 0x9b, 0x31, 0x3f,
+ 0x66, 0x23, 0x01, 0x29, 0x9b, 0x04, 0x54, 0x01,
+ 0x5c, 0x1f, 0x47, 0x51, 0x90, 0x6c, 0x16, 0x56,
+ 0xe9, 0x76, 0x4e, 0x89, 0x91, 0x13, 0xa0, 0x2b,
+ 0xcf, 0x33, 0x95, 0xac, 0x83, 0x42, 0x16, 0x1c,
+ 0xc5, 0xda, 0x1b, 0xe2, 0x60, 0xc6, 0x31, 0x97,
+ 0x28, 0x2a, 0x40, 0x92, 0x02, 0x65, 0x06, 0x3c,
+ 0xe9, 0x06, 0x3a, 0xa6, 0xc2, 0x3e, 0x6b, 0x22,
+ 0x4b, 0x99, 0x04, 0x9d, 0x01, 0x5a, 0x88, 0x25,
+ 0x6f, 0xa5, 0x9a, 0xc4, 0x86, 0x5e, 0x37, 0xcd,
+ 0x86, 0x0e, 0x19, 0xb6, 0xcb, 0xa8, 0xf1, 0x46,
+ 0xf9, 0x0d, 0x8c, 0x76, 0x74, 0xf6, 0x71, 0x93,
+ 0x5b, 0x2a, 0xec, 0xe2, 0xc5, 0x05, 0x42, 0x2b,
+ 0x67, 0xb7, 0x8d, 0xb6, 0x9e, 0x14, 0x09, 0xd7,
+ 0x1d, 0x91, 0xa6, 0x03, 0x90, 0x0e, 0x68, 0xcc,
+ 0xf2, 0x35, 0x31, 0xed, 0x0b, 0xc1, 0xaf, 0x41,
+ 0x7a, 0x6e, 0xc9, 0x9b, 0xa0, 0x24, 0x6d, 0xe7,
+ 0xbe, 0x89, 0x0f, 0x52, 0xbc, 0xe6, 0x4d, 0xa6,
+ 0x73, 0xc5, 0x54, 0x60, 0xd1, 0xbe, 0xf1, 0x61,
+ 0x03, 0x73, 0x46, 0x71, 0x3e, 0x18, 0x16, 0x07,
+ 0xd0, 0x01, 0xed, 0x53, 0xd8, 0x95, 0x4e, 0xf9,
+ 0x23, 0xae, 0xfc, 0xd7, 0xd3, 0x7d, 0x7e, 0xf2,
+ 0x99, 0x31, 0x99, 0xda, 0xe8, 0xb8, 0x19, 0x12,
+ 0xf4, 0x48, 0x5f, 0xfd, 0x90, 0x29, 0x82, 0x1d,
+ 0x48, 0xab, 0xe6, 0x05, 0xfa, 0x94, 0x45, 0x04,
+ 0x4c, 0x4d, 0x44, 0xde, 0x51, 0xc4, 0xf7, 0x79,
+ 0x4b, 0xe1, 0xd5, 0xd1, 0x86, 0x1a, 0xc3, 0x53,
+ 0xfa, 0xe7, 0x1b, 0x0f, 0x3e, 0x4a, 0x26, 0x09,
+ 0xa2, 0xa0, 0x8d, 0xc7, 0x2b, 0x20, 0xa1, 0x16,
+ 0x7b, 0xd3, 0xa5, 0xb9, 0xd9, 0x7a, 0x21, 0x12,
+ 0x36, 0xf3, 0xc6, 0xa4, 0x7f, 0x4a, 0x92, 0xf0,
+ 0xdb, 0xdc, 0x4c, 0x81, 0xf1, 0x2f, 0x41, 0xb3,
+ 0xed, 0x0c, 0x08, 0xf8, 0x5d, 0x23, 0x8c, 0x41,
+ 0x7a, 0xf1, 0x51, 0xb7, 0x72, 0x81, 0xa3, 0x0b,
+ 0xf8, 0xab, 0x05, 0x44, 0xb2, 0xb1, 0x01, 0x64,
+ 0xdd, 0x9f, 0x6b, 0x27, 0x55, 0xd2, 0xa6, 0x56,
+ 0xcd, 0x76, 0xf0, 0x77, 0x05, 0x4d, 0x08, 0xc4,
+ 0x46, 0xc4, 0x83, 0xa3, 0x27, 0x24, 0x79, 0x8d,
+ 0xd9, 0x3f, 0x5b, 0xd3, 0xaa, 0x7a, 0x6e, 0x04,
+ 0xb2, 0x8c, 0xe7, 0xe6, 0xce, 0xa8, 0x55, 0xc9,
+ 0x12, 0x7e, 0xd1, 0x78, 0x2e, 0xed, 0xbf, 0x04,
+ 0x1b, 0x73, 0x21, 0x66, 0xa7, 0xf4, 0x07, 0xe1,
+ 0x74, 0x2e, 0x22, 0x00, 0xd5, 0x8e, 0x84, 0x89,
+ 0x60, 0x60, 0x4f, 0xda, 0xfb, 0x9a, 0xda, 0xd8,
+ 0x45, 0x41, 0x95, 0x77, 0x22, 0x89, 0x10, 0x9b,
+ 0xb0, 0x64, 0xc3, 0x0a, 0x1c, 0x61, 0x4a, 0xdb,
+ 0x84, 0xca, 0x19, 0x47, 0x9e, 0x82, 0xbe, 0x56,
+ 0x22, 0xe3, 0xf5, 0xc7, 0x91, 0x6e, 0x67, 0x26,
+ 0x04, 0xa4, 0x31, 0x5b, 0xf7, 0x2f, 0x6a, 0x01,
+ 0xad, 0xd4, 0x7c, 0x4e, 0x74, 0xa6, 0x87, 0x23,
+ 0x31, 0x37, 0x08, 0xd2, 0x2c, 0x0d, 0x94, 0x1c,
+ 0x96, 0x52, 0xe0, 0x56, 0x23, 0x23, 0x31, 0x59,
+ 0x8c, 0xaf, 0x48, 0xe6, 0x07, 0x8e, 0x0d, 0x6c,
+ 0x09, 0x0b, 0xf2, 0xad, 0x33, 0x14, 0xcd, 0x91,
+ 0xe7, 0x48, 0xc9, 0x45, 0xcf, 0xad, 0xac, 0xe1,
+ 0x0a, 0x5b, 0x81, 0x7a, 0xc9, 0x9a, 0xb5, 0x98,
+ 0x3d, 0xad, 0xb2, 0x1c, 0x79, 0xa9, 0x5f, 0xbb,
+ 0x2b, 0x4e, 0x53, 0x2f, 0xff, 0x8f, 0x9e, 0xb1,
+ 0x46, 0x07, 0x1c, 0x48, 0x16, 0xb6, 0xdd, 0x7b,
+ 0x6a, 0x32, 0xb5, 0x46, 0xfe, 0xb8, 0x51, 0x3f,
+ 0xfc, 0xfc, 0x24, 0x1a, 0xe8, 0x29, 0x05, 0x81,
+ 0x31, 0xc2, 0x2a, 0x09, 0x1d, 0xfb, 0xc9, 0x7c,
+ 0x6c, 0x23, 0x18, 0xa5, 0x2f, 0x69, 0xca, 0xfb,
+ 0xd6, 0xb0, 0x29, 0xd3, 0xe6, 0x18, 0xb6, 0x2b,
+ 0x38, 0x23, 0x15, 0x75, 0xc6, 0x37, 0x2a, 0xa4,
+ 0x24, 0x38, 0x84, 0x54, 0xbc, 0xa4, 0x29, 0x4d,
+ 0x2a, 0x04, 0x45, 0x05, 0xc2, 0x10, 0x03, 0x69,
+ 0xc7, 0x27, 0x5c, 0x49, 0xcf, 0xc0, 0x7d, 0xbb,
+ 0x09, 0xa9, 0x0b, 0x6e, 0xea, 0x80, 0xb2, 0x0e,
+ 0x60, 0x98, 0x1f, 0xf3, 0x27, 0x8c, 0x17, 0x23,
+ 0x50, 0x98, 0xae, 0x1a, 0x7c, 0xbf, 0x48, 0xdd,
+ 0x8b, 0x77, 0x62, 0x23, 0xcd, 0x34, 0x17, 0x39,
+ 0x96, 0x23, 0x47, 0x08, 0x12, 0xb7, 0x8e, 0x74,
+ 0xce, 0x4f, 0xf9, 0x26, 0x25, 0x57, 0xa4, 0x28,
+ 0x36, 0x8e, 0xac, 0x98, 0x13, 0x0f, 0xe3, 0x5f,
+ 0x24, 0x15, 0x9f, 0xee, 0xb5, 0xfa, 0x8e, 0x39,
+ 0xcc, 0xaf, 0x14, 0x04, 0x51, 0xd0, 0x1f, 0xea,
+ 0x2f, 0xd3, 0xc8, 0xe4, 0xd4, 0xe9, 0xfe, 0x68,
+ 0xe6, 0xe5, 0x96, 0x78, 0x95, 0xaa, 0x9a, 0x62,
+ 0x11, 0x76, 0x06, 0x1f, 0x07, 0xec, 0xdb, 0xe2,
+ 0x89, 0x73, 0x3c, 0xe7, 0xc6, 0xda, 0x7d, 0x79,
+ 0x22, 0x58, 0x65, 0x8a, 0xaf, 0xbf, 0xd7, 0xb2,
+ 0x3e, 0x8b, 0x08, 0x34, 0x8b, 0x0e, 0x85, 0x58,
+ 0x0b, 0xb1, 0x05, 0x7a, 0x11, 0x41, 0x55, 0x75,
+ 0x6c, 0x1c, 0xb7, 0x59, 0x7c, 0x80, 0x02, 0xae,
+ 0xa8, 0xea, 0xda, 0xe2, 0xfd, 0x60, 0xc5, 0x98,
+ 0xc5, 0x53, 0xb4, 0xf6, 0x9f, 0x21, 0x7a, 0x29,
+ 0xe0, 0x48, 0x59, 0xed, 0xc9, 0x96, 0x1e, 0xbe,
+ 0x59, 0xeb, 0x7e, 0x1f, 0x11, 0x23, 0x2a, 0x05,
+ 0x09, 0x9d, 0x9d, 0x6f, 0xef, 0xa1, 0xf1, 0xd1,
+ 0xce, 0x3b, 0x86, 0xd3, 0xa7, 0x46, 0xae, 0x35,
+ 0x1d, 0x88, 0x7d, 0x69, 0x1a, 0x75, 0xc3, 0x13,
+ 0x4c, 0x39, 0xed, 0x89, 0x56, 0x74, 0xc8, 0x0a,
+ 0xd6, 0x5d, 0x9d, 0x7b, 0x65, 0x85, 0x95, 0xa2,
+ 0x4a, 0xdc, 0x6b, 0xb1, 0x44, 0xda, 0x05, 0x1b,
+ 0x7e, 0x61, 0x28, 0x36, 0x4f, 0xcd, 0xc4, 0x00,
+ 0x30, 0x8c, 0x0c, 0xb6, 0x36, 0xfb, 0x5d, 0xf2,
+ 0x1b, 0x3e, 0x88, 0x2c, 0x10, 0xaf, 0xd0, 0x07,
+ 0x85, 0xd1, 0xd7, 0x81, 0xd0, 0xb7, 0xb4, 0xf1,
+ 0xe4, 0x3c, 0xb1, 0xcf, 0x13, 0x58, 0xc6, 0x94,
+ 0x10, 0xc2, 0x66, 0xd9, 0xda, 0x4c, 0x88, 0x56,
+ 0xf5, 0xe6, 0x1b, 0x6a, 0xb7, 0x0a, 0xb6, 0xec,
+ 0x09, 0x2e, 0x12, 0x7d, 0x96, 0x7c, 0x75, 0x3b,
+ 0x7c, 0x71, 0x92, 0xa2, 0xa1, 0xab, 0x10, 0xc7,
+ 0x2d, 0x18, 0xfb, 0x52, 0x8a, 0x87, 0x7e, 0x76,
+ 0xc2, 0xe0, 0x4f, 0x24, 0x5a, 0xd8, 0x04, 0xf5,
+ 0xcb, 0xf1, 0x42, 0x4b, 0xd8, 0xb0, 0x98, 0x18,
+ 0x48, 0xe7, 0x44, 0xba, 0xb7, 0x0d, 0xf6, 0xb7,
+ 0xd0, 0x1a, 0x67, 0x82, 0xfc, 0xa0, 0x70, 0x5e,
+ 0x13, 0xce, 0xf5, 0x13, 0xf9, 0x66, 0x59, 0xd8,
+ 0xa9, 0xfa, 0x40, 0x16, 0xb1, 0xef, 0x09, 0x18,
+ 0xa6, 0xa6, 0xee, 0xda, 0x2d, 0xfa, 0x57, 0x3b,
+ 0xda, 0x92, 0x1c, 0xd7, 0x01, 0xa2, 0xca, 0x3d,
+ 0xe9, 0x06, 0xa6, 0x0b, 0xd3, 0x52, 0xd3, 0x8c,
+ 0xc8, 0xff, 0x0a, 0x92, 0x56, 0x41, 0x98, 0xd1,
+ 0xaa, 0xc9, 0x6f, 0x96, 0xe8, 0xec, 0x68, 0xc0,
+ 0x91, 0x7c, 0x0b, 0xd5, 0xc1, 0x25, 0x45, 0x2b,
+ 0x84, 0x28, 0xa4, 0x46, 0x78, 0x58, 0xa1, 0xbf,
+ 0x52, 0xd0, 0x48, 0xc4, 0xfc, 0x37, 0xf2, 0x41,
+ 0x23, 0x14, 0x37, 0x32, 0x01, 0x2e, 0xbc, 0xe1,
+ 0xa1, 0x30, 0x13, 0x26, 0x40, 0x23, 0x80, 0x7c,
+ 0x92, 0x80, 0x06, 0x83, 0x6e, 0xb7, 0x25, 0x67,
+ 0x41, 0x01, 0x34, 0x4a, 0x8e, 0x8a, 0xb0, 0x81,
+ 0x47, 0xbb, 0x52, 0x61, 0x04, 0x6a, 0x8f, 0x1b,
+ 0xac, 0x84, 0xfd, 0x59, 0x48, 0xfe, 0xdf, 0x49,
+ 0x96, 0xfb, 0x21, 0x4b, 0x5d, 0xf4, 0x5e, 0x40,
+ 0x85, 0x1f, 0x23, 0x05, 0x90, 0x69, 0xdc, 0x57,
+ 0x78, 0x65, 0x7f, 0x1d, 0x3c, 0xfa, 0x8e, 0x59,
+ 0xde, 0xa4, 0xf9, 0x38, 0xc5, 0x5f, 0xa1, 0x8e,
+ 0xff, 0x58, 0x2e, 0x29, 0x59, 0x4a, 0x47, 0x52,
+ 0xa7, 0xaa, 0xda, 0xeb, 0xdd, 0x76, 0x0a, 0x0e,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0xef, 0x23, 0x61, 0xd2, 0x13, 0x8e, 0xaf, 0x16,
+ 0xdf, 0x67, 0x8a, 0x3e, 0xe8, 0x05, 0x1d, 0x36,
+ 0xda, 0x1b, 0xb5, 0x12, 0xfd, 0xe1, 0x0d, 0x87,
+ 0x63, 0x31, 0xf1, 0xff, 0xb5, 0x66, 0x63, 0x9e,
+ 0x21, 0x65, 0x7e, 0xd3, 0x74, 0x9a, 0x7d, 0xc1,
+ 0x24, 0x29, 0xf5, 0x25, 0x73, 0x7c, 0xe5, 0x0e,
+ 0x94, 0xae, 0xc2, 0xa2, 0x80, 0xdf, 0xce, 0xb6,
+ 0x1e, 0x6c, 0x3e, 0xea, 0x6d, 0xde, 0xf7, 0x6c,
+ 0x26, 0x1f, 0x4c, 0xaa, 0x16, 0xc8, 0x81, 0x51,
+ 0x5e, 0x03, 0x12, 0x79, 0x9e, 0x57, 0xdc, 0xad,
+ 0x69, 0x1f, 0x75, 0x41, 0xc7, 0xcc, 0xed, 0xa5,
+ 0x39, 0x3b, 0x9e, 0x4b, 0x51, 0x70, 0x06, 0xde,
+ 0xd7, 0x78, 0xd5, 0x37, 0x65, 0x5b, 0xd3, 0x5c,
+ 0xb7, 0x36, 0x55, 0x54, 0x4a, 0xed, 0x18, 0x09,
+ 0x37, 0x64, 0xe3, 0xe9, 0x2e, 0x80, 0x2f, 0x52,
+ 0x4a, 0x7a, 0xc2, 0xfd, 0x11, 0x3e, 0xd4, 0x39,
+ 0x77, 0x40, 0x34, 0x16, 0x88, 0x07, 0x13, 0x07,
+ 0x41, 0x54, 0x56, 0x40, 0x86, 0x75, 0x66, 0x46,
+ 0x78, 0x01, 0x71, 0x64, 0x78, 0x07, 0x84, 0x61,
+ 0x18, 0x35, 0x06, 0x54, 0x72, 0x10, 0x67, 0x41,
+ 0x45, 0x32, 0x00, 0x06, 0x86, 0x66, 0x00, 0x63,
+ 0x28, 0x73, 0x75, 0x64, 0x03, 0x45, 0x03, 0x52,
+ 0x50, 0x28, 0x43, 0x46, 0x05, 0x31, 0x63, 0x05,
+ 0x36, 0x53, 0x18, 0x76, 0x22, 0x62, 0x87, 0x70,
+ 0x23, 0x42, 0x16, 0x31, 0x30, 0x07, 0x70, 0x37,
+ 0x78, 0x68, 0x14, 0x51, 0x14, 0x32, 0x15, 0x84,
+ 0x38, 0x44, 0x66, 0x13, 0x25, 0x43, 0x34, 0x46,
+ 0x08, 0x38, 0x85, 0x06, 0x63, 0x46, 0x28, 0x11,
+ 0x43, 0x16, 0x10, 0x06, 0x27, 0x36, 0x53, 0x83,
+ 0x70, 0x56, 0x04, 0x10, 0x57, 0x01, 0x08, 0x14,
+ 0x18, 0x34, 0x57, 0x15, 0x61, 0x34, 0x10, 0x77,
+ 0x86, 0x88, 0x53, 0x45, 0x07, 0x86, 0x06, 0x01,
+ 0x30, 0x57, 0x31, 0x26, 0x14, 0x41, 0x65, 0x40,
+ 0x42, 0x64, 0x52, 0x43, 0x84, 0x03, 0x76, 0x23,
+ 0x27, 0x50, 0x05, 0x07, 0x75, 0x86, 0x43, 0x62,
+ 0x68, 0x37, 0x05, 0x50, 0x32, 0x26, 0x34, 0x56,
+ 0x14, 0x01, 0x22, 0x50, 0x38, 0x28, 0x60, 0x01,
+ 0x33, 0x17, 0x61, 0x08, 0x55, 0x38, 0x84, 0x12,
+ 0x41, 0x83, 0x64, 0x18, 0x63, 0x80, 0x48, 0x83,
+ 0x28, 0x58, 0x36, 0x20, 0x26, 0x58, 0x63, 0x51,
+ 0x51, 0x12, 0x80, 0x41, 0x84, 0x00, 0x63, 0x70,
+ 0x33, 0x24, 0x67, 0x60, 0x04, 0x82, 0x70, 0x15,
+ 0x75, 0x40, 0x43, 0x31, 0x74, 0x76, 0x64, 0x10,
+ 0x26, 0x32, 0x40, 0x80, 0x67, 0x53, 0x35, 0x03,
+ 0x77, 0x04, 0x12, 0x56, 0x55, 0x68, 0x64, 0x36,
+ 0x57, 0x67, 0x30, 0x43, 0x51, 0x05, 0x05, 0x32,
+ 0x03, 0x57, 0x31, 0x33, 0x14, 0x51, 0x00, 0x17,
+ 0x78, 0x78, 0x12, 0x33, 0x14, 0x06, 0x62, 0x53,
+ 0x32, 0x43, 0x84, 0x18, 0x47, 0x75, 0x34, 0x73,
+ 0x78, 0x50, 0x41, 0x05, 0x35, 0x54, 0x61, 0x07,
+ 0x61, 0x51, 0x43, 0x22, 0x36, 0x71, 0x54, 0x68,
+ 0x64, 0x38, 0x70, 0x24, 0x43, 0x46, 0x25, 0x32,
+ 0x66, 0x40, 0x63, 0x43, 0x48, 0x71, 0x06, 0x05,
+ 0x44, 0x50, 0x80, 0x70, 0x08, 0x27, 0x53, 0x40,
+ 0x53, 0x34, 0x78, 0x06, 0x17, 0x83, 0x02, 0x87,
+ 0x71, 0x32, 0x82, 0x26, 0x06, 0x53, 0x32, 0x75,
+ 0x73, 0x30, 0x43, 0x35, 0x40, 0x88, 0x11, 0x16,
+ 0x17, 0x87, 0x57, 0x84, 0x45, 0x14, 0x75, 0x88,
+ 0x13, 0x54, 0x61, 0x23, 0x60, 0x04, 0x67, 0x43,
+ 0x04, 0x46, 0x75, 0x52, 0x10, 0x34, 0x70, 0x32,
+ 0x85, 0x06, 0x73, 0x20, 0x32, 0x61, 0x47, 0x15,
+ 0x61, 0x30, 0x48, 0x36, 0x48, 0x44, 0x58, 0x86,
+ 0x13, 0x80, 0x46, 0x30, 0x27, 0x43, 0x27, 0x74,
+ 0x74, 0x77, 0x21, 0x73, 0x77, 0x70, 0x07, 0x70,
+ 0x05, 0x36, 0x86, 0x13, 0x77, 0x80, 0x67, 0x00,
+ 0x66, 0x34, 0x76, 0x27, 0x24, 0x86, 0x16, 0x24,
+ 0x72, 0x18, 0x45, 0x56, 0x51, 0x20, 0x51, 0x56,
+ 0x03, 0x31, 0x42, 0x00, 0x58, 0x42, 0x63, 0x16,
+ 0x73, 0x86, 0x72, 0x82, 0x82, 0x50, 0x25, 0x74,
+ 0x83, 0x81, 0x48, 0x54, 0x41, 0x82, 0x50, 0x04,
+ 0x25, 0x73, 0x14, 0x42, 0x46, 0x16, 0x60, 0x84,
+ 0x72, 0x08, 0x85, 0x53, 0x86, 0x02, 0x38, 0x13,
+ 0x04, 0x05, 0x85, 0x07, 0x48, 0x30, 0x50, 0x36,
+ 0x07, 0x38, 0x81, 0x74, 0x57, 0x48, 0x46, 0x24,
+ 0x56, 0x41, 0x58, 0x61, 0x04, 0x13, 0x82, 0x74,
+ 0x28, 0x58, 0x24, 0x11, 0x53, 0x77, 0x17, 0x53,
+ 0x47, 0x80, 0x55, 0x67, 0x00, 0x74, 0x64, 0x48,
+ 0x76, 0x41, 0x07, 0x63, 0x10, 0x41, 0x47, 0x87,
+ 0x41, 0x53, 0x60, 0x33, 0x52, 0x17, 0x18, 0x22,
+ 0x35, 0x85, 0x85, 0x44, 0x20, 0x63, 0x54, 0x67,
+ 0x86, 0x32, 0x47, 0x33, 0x80, 0x22, 0x55, 0x63,
+ 0x37, 0x72, 0x75, 0x57, 0x15, 0x74, 0x80, 0x45,
+ 0x80, 0x56, 0x55, 0x35, 0x13, 0x18, 0x31, 0x78,
+ 0x47, 0x45, 0x60, 0x58, 0x11, 0x60, 0x53, 0x76,
+ 0x11, 0x45, 0x71, 0x40, 0x20, 0x50, 0x34, 0x78,
+ 0x16, 0x86, 0x86, 0x42, 0x83, 0x20, 0x56, 0x33,
+ 0x57, 0x44, 0x44, 0x71, 0x28, 0x16, 0x03, 0x54,
+ 0x15, 0x80, 0x71, 0x58, 0x20, 0x64, 0x10, 0x51,
+ 0x42, 0x36, 0x53, 0x64, 0x68, 0x31, 0x65, 0x52,
+ 0x61, 0x67, 0x12, 0x84, 0x04, 0x35, 0x22, 0x16,
+ 0x61, 0x01, 0x11, 0x08, 0x06, 0x62, 0x02, 0x21,
+ 0x03, 0x70, 0x73, 0x32, 0x32, 0x01, 0x56, 0x88,
+ 0x63, 0x43, 0x41, 0x16, 0x67, 0x23, 0x86, 0x64,
+ 0x53, 0x26, 0x31, 0x41, 0x43, 0x01, 0x14, 0x06,
+ 0x52, 0x68, 0x02, 0x83, 0x85, 0x25, 0x50, 0x40,
+ 0x45, 0x17, 0x83, 0x16, 0x02, 0x17, 0x41, 0x57,
+ 0x40, 0x05, 0x76, 0x57, 0x76, 0x54, 0x87, 0x55,
+ 0x06, 0x04, 0x10, 0x13, 0x57, 0x18, 0x12, 0x41,
+ 0x13, 0x60, 0x16, 0x04, 0x70, 0x53, 0x43, 0x75,
+ 0x30, 0x72, 0x87, 0x36, 0x14, 0x44, 0x86, 0x76,
+ 0x14, 0x08, 0x15, 0x08, 0x57, 0x76, 0x65, 0x50,
+ 0x65, 0x35, 0x05, 0x72, 0x06, 0x05, 0x34, 0x31,
+ 0x77, 0x48, 0x68, 0x18, 0x20, 0x07, 0x86, 0x64,
+ 0x74, 0x30, 0x80, 0x42, 0x66, 0x02, 0x74, 0x75,
+ 0x81, 0x53, 0x66, 0x21, 0x14, 0x61, 0x03, 0x38,
+ 0x15, 0x53, 0x14, 0x23, 0x37, 0x54, 0x12, 0x05,
+ 0x75, 0x23, 0x06, 0x48, 0x25, 0x53, 0x32, 0x46,
+ 0x41, 0x57, 0x73, 0x86, 0x15, 0x86, 0x30, 0x14,
+ 0x23, 0x15, 0x06, 0x12, 0x57, 0x42, 0x15, 0x66,
+ 0x45, 0x41, 0x84, 0x31, 0x30, 0x64, 0x41, 0x73,
+ 0x86, 0x31, 0x24, 0x77, 0x86, 0x62, 0x40, 0x61,
+ 0x37, 0x14, 0x18, 0x47, 0x60, 0x26, 0x17, 0x51,
+ 0x63, 0x56, 0x60, 0x50, 0x50, 0x78, 0x15, 0x20,
+ 0x56, 0x38, 0x41, 0x45, 0x12, 0x63, 0x57, 0x00,
+ 0x72, 0x81, 0x70, 0x02, 0x55, 0x07, 0x63, 0x77,
+ 0x14, 0x63, 0x40, 0x32, 0x72, 0x55, 0x76, 0x71,
+ 0x75, 0x14, 0x31, 0x04, 0x45, 0x66, 0x62, 0x65,
+ 0x87, 0x07, 0x70, 0x66, 0x02, 0x46, 0x81, 0x58,
+ 0x14, 0x53, 0x11, 0x55, 0x04, 0x61, 0x01, 0x57,
+ 0x67, 0x25, 0x47, 0x72, 0x58, 0x67, 0x61, 0x18,
+ 0x58, 0x57, 0x61, 0x58, 0x00, 0x77, 0x17, 0x02,
+ 0x36, 0x47, 0x52, 0x28, 0x01, 0x75, 0x70, 0x73,
+ 0x71, 0x38, 0x40, 0x15, 0x53, 0x27, 0x23, 0x68,
+ 0x84, 0x04, 0x73, 0x14, 0x32, 0x36, 0x34, 0x71,
+ 0x26, 0x85, 0x81, 0x05, 0x14, 0x20, 0x68, 0x35,
+ 0x13, 0x48, 0x46, 0x81, 0x24, 0x15, 0x57, 0x44,
+ 0x47, 0x23, 0x42, 0x74, 0x20, 0x42, 0x62, 0x37,
+ 0x83, 0x63, 0x44, 0x74, 0x33, 0x45, 0x57, 0x41,
+ 0x10, 0x12, 0x51, 0x54, 0x40, 0x20, 0x75, 0x34,
+ 0x26, 0x48, 0x31, 0x33, 0x17, 0x75, 0x66, 0x43,
+ 0x37, 0x33, 0x31, 0x82, 0x28, 0x41, 0x38, 0x36,
+ 0x16, 0x36, 0x13, 0x05, 0x84, 0x11, 0x22, 0x31,
+ 0x84, 0x16, 0x03, 0x72, 0x60, 0x41, 0x22, 0x86,
+ 0x33, 0x02, 0x48, 0x37, 0x42, 0x68, 0x53, 0x84,
+ 0x66, 0x64, 0x28, 0x55, 0x50, 0x10, 0x38, 0x42,
+ 0x43, 0x82, 0x68, 0x75, 0x36, 0x63, 0x76, 0x15,
+ 0x71, 0x67, 0x07, 0x54, 0x42, 0x34, 0x74, 0x87,
+ 0x36, 0x36, 0x16, 0x17, 0x34, 0x07, 0x56, 0x81,
+ 0x51, 0x56, 0x86, 0x43, 0x32, 0x03, 0x43, 0x37,
+ 0x62, 0x04, 0x03, 0x77, 0x81, 0x31, 0x27, 0x77,
+ 0x40, 0x32, 0x44, 0x08, 0x13, 0x66, 0x75, 0x88,
+ 0x20, 0x77, 0x11, 0x11, 0x50, 0x66, 0x07, 0x34,
+ 0x43, 0x35, 0x72, 0x58, 0x13, 0x48, 0x31, 0x32,
+ 0x56, 0x24, 0x02, 0x06, 0x26, 0x48, 0x44, 0x58,
+ 0x48, 0x06, 0x08, 0x63, 0x87, 0x40, 0x54, 0x86,
+ 0x66, 0x60, 0x51, 0x07, 0x73, 0x80, 0x46, 0x03,
+ 0x45, 0x60, 0x25, 0x74, 0x84, 0x16, 0x35, 0x70,
+ 0x74, 0x74, 0x24, 0x13, 0x06, 0x17, 0x07, 0x88,
+ 0x44, 0x58, 0x37, 0x47, 0x65, 0x50, 0x04, 0x58,
+ 0x25, 0x16, 0x27, 0x51, 0x68, 0x20, 0x84, 0x31,
+ 0x05, 0x25, 0x20, 0x43, 0x08, 0x20, 0x65, 0x66,
+ 0x42, 0x63, 0x44, 0x10, 0x17, 0x85, 0x55, 0x71,
+ 0x08, 0x22, 0x85, 0x51, 0x00, 0x06, 0x84, 0x43,
+ 0x63, 0x81, 0x07, 0x27, 0x22, 0x74, 0x41, 0x28,
+ 0x38, 0x14, 0x86, 0x32, 0x54, 0x14, 0x33, 0x17,
+ 0x72, 0x82, 0x01, 0x03, 0x38, 0x64, 0x61, 0x03,
+ 0x45, 0x87, 0x58, 0x47, 0x14, 0x83, 0x51, 0x68,
+ 0x51, 0x05, 0x45, 0x66, 0x70, 0x26, 0x65, 0x38,
+ 0x51, 0x61, 0x63, 0x81, 0x40, 0x12, 0x02, 0x50,
+ 0x34, 0x83, 0x48, 0x31, 0x43, 0x60, 0x26, 0x63,
+ 0x08, 0x33, 0x28, 0x31, 0x71, 0x26, 0x20, 0x62,
+ 0x33, 0x46, 0x67, 0x10, 0x23, 0x75, 0x31, 0x03,
+ 0x54, 0x56, 0x15, 0x70, 0x78, 0x61, 0x13, 0x61,
+ 0x78, 0x52, 0x22, 0x13, 0x41, 0x53, 0x56, 0x80,
+ 0x03, 0x14, 0x75, 0x53, 0x76, 0x64, 0x10, 0x04,
+ 0x73, 0x14, 0x50, 0x71, 0x61, 0x25, 0x45, 0x86,
+ 0x62, 0x42, 0x01, 0x21, 0x53, 0x72, 0x32, 0x37,
+ 0x70, 0x75, 0x36, 0x27, 0x80, 0x72, 0x13, 0x85,
+ 0x58, 0x56, 0x75, 0x22, 0x64, 0x60, 0x26, 0x61,
+ 0x68, 0x07, 0x20, 0x71, 0x33, 0x01, 0x57, 0x17,
+ 0x76, 0x48, 0x65, 0x51, 0x28, 0x40, 0x76, 0x87,
+ 0x22, 0x38, 0x21, 0x57, 0x88, 0x85, 0x42, 0x23,
+ 0x84, 0x47, 0x26, 0x30, 0x21, 0x65, 0x62, 0x56,
+ 0x64, 0x38, 0x13, 0x25, 0x62, 0x71, 0x35, 0x67,
+ 0x35, 0x28, 0x32, 0x88, 0x13, 0x20, 0x64, 0x32,
+ 0x05, 0x17, 0x02, 0x85, 0x56, 0x01, 0x13, 0x23,
+ 0x73, 0x08, 0x21, 0x06, 0x70, 0x71, 0x42, 0x78,
+ 0x84, 0x41, 0x62, 0x48, 0x55, 0x57, 0x02, 0x15,
+ 0x30, 0x25, 0x65, 0x32, 0x43, 0x83, 0x36, 0x14,
+ 0x87, 0x53, 0x05, 0x44, 0x40, 0x08, 0x04, 0x63,
+ 0x77, 0x65, 0x32, 0x71, 0x48, 0x75, 0x64, 0x32,
+ 0x15, 0x75, 0x48, 0x88, 0x76, 0x86, 0x63, 0x78,
+ 0x30, 0x78, 0x51, 0x01, 0x47, 0x01, 0x17, 0x52,
+ 0x51, 0x57, 0x63, 0x73, 0x53, 0x20, 0x33, 0x43,
+ 0x23, 0x18, 0x76, 0x73, 0x38, 0x46, 0x27, 0x28,
+ 0x30, 0x44, 0x50, 0x26, 0x65, 0x33, 0x83, 0x76,
+ 0x85, 0x21, 0x04, 0x73, 0x75, 0x20, 0x51, 0x17,
+ 0x52, 0x28, 0x84, 0x44, 0x50, 0x23, 0x42, 0x68,
+ 0x73, 0x88, 0x15, 0x47, 0x02, 0x04, 0x08, 0x25,
+ 0x33, 0x16, 0x34, 0x88, 0x58, 0x64, 0x26, 0x25,
+ 0x30, 0x86, 0x71, 0x73, 0x51, 0x12, 0x02, 0x24,
+ 0x46, 0x51, 0x71, 0x41, 0x61, 0x23, 0x24, 0x57,
+ 0x00, 0x12, 0xd7, 0xf5, 0x88, 0xe9, 0xe4, 0x33,
+ 0xd9, 0x81, 0xf2, 0x31, 0xf8, 0xfc, 0xd7, 0xf1,
+ 0xd0, 0x26, 0xef, 0x72, 0x09, 0x43, 0x0f, 0xae,
+ 0x1b, 0x38, 0xc3, 0xd5, 0x6d, 0x5f, 0xb0, 0x1c,
+ 0x02, 0xf0, 0xe8, 0xff, 0x6f, 0x26, 0xe8, 0xc8,
+ 0x96, 0xa6, 0x10, 0xa0, 0xf4, 0xcc, 0x94, 0x42,
+ 0x07, 0xb4, 0x2f, 0xb5, 0xc7, 0x29, 0x33, 0x89,
+ 0x67, 0xf6, 0xa0, 0x5d, 0xab, 0xe3, 0x0e, 0x8a,
+ 0x73, 0x13, 0x2c, 0x3f, 0xa4, 0x0c, 0xb2, 0x01,
+ 0xe4, 0xb5, 0xf5, 0x8a, 0x6d, 0x9c, 0xb3, 0x0b,
+ 0x1c, 0x23, 0xe4, 0x0e, 0xcd, 0x2b, 0x68, 0xd5,
+ 0x0f, 0x1c, 0xb0, 0x9f, 0x18, 0x2a, 0xfa, 0x1a,
+ 0x71, 0x54, 0x5a, 0xe7, 0xea, 0x4a, 0x11, 0x6b,
+ 0x42, 0x2d, 0x1d, 0x57, 0x5b, 0xae, 0xed, 0xb3,
+ 0xe3, 0x8c, 0x10, 0x03, 0xd5, 0x66, 0x62, 0x96,
+ 0x31, 0x10, 0xbd, 0x65, 0xff, 0xdd, 0x4a, 0x50,
+ 0xa6, 0xf6, 0x57, 0xfc, 0xc6, 0x3a, 0xb9, 0xc1,
+ 0x2f, 0xfd, 0x21, 0x07, 0x22, 0x27, 0xd6, 0xb7,
+ 0x25, 0xd3, 0xe5, 0xb7, 0x8d, 0x0a, 0x3d, 0x5d,
+ 0x88, 0x25, 0xc2, 0x9c, 0x6b, 0x9a, 0x97, 0xc5,
+ 0x7f, 0x33, 0x28, 0xb9, 0xc8, 0xb4, 0x97, 0xea,
+ 0x4d, 0xc1, 0x70, 0x57, 0xc3, 0x5f, 0xd9, 0xb0,
+ 0xc9, 0x1e, 0x35, 0x2a, 0x83, 0x17, 0xea, 0x86,
+ 0x2e, 0xf4, 0x50, 0x12, 0xfb, 0xe7, 0xad, 0x99,
+ 0x51, 0x5e, 0x59, 0x30, 0x00, 0x44, 0x4d, 0x8f,
+ 0x58, 0xf7, 0xf1, 0xb8, 0xf9, 0x38, 0x49, 0xcf,
+ 0x56, 0x7b, 0x33, 0xcd, 0x3b, 0xa2, 0x53, 0x1d,
+ 0x0b, 0xa0, 0x13, 0xa7, 0x1f, 0xd7, 0xd9, 0xfc,
+ 0x21, 0xe7, 0x2d, 0x7c, 0x24, 0xbb, 0xf6, 0x01,
+ 0x56, 0xa2, 0x11, 0xee, 0xe3, 0x78, 0xc9, 0x7d,
+ 0x67, 0x75, 0xce, 0x3f, 0xfd, 0xfe, 0xff, 0x7f,
+ 0x70, 0xf8, 0x16, 0x45, 0x50, 0x95, 0xcd, 0xac,
+ 0x75, 0x22, 0x13, 0x50, 0x54, 0xb6, 0x39, 0x33,
+ 0x37, 0xe0, 0xad, 0xf5, 0x96, 0x77, 0x96, 0x70,
+ 0xc4, 0x8f, 0xe2, 0xab, 0xfe, 0x9f, 0x9b, 0xa9,
+ 0x87, 0x6a, 0x3f, 0x07, 0x77, 0xfd, 0x83, 0x7b,
+ 0x1d, 0x95, 0x7f, 0x99, 0xf6, 0xb0, 0x1b, 0x0e,
+ 0xa0, 0xa0, 0xb7, 0x5a, 0xa4, 0x0e, 0x1d, 0xb8,
+ 0x57, 0x3a, 0xbf, 0x0b, 0xe2, 0x07, 0xd5, 0xaa,
+ 0xca, 0x18, 0x2f, 0x96, 0x9b, 0x69, 0xd3, 0xfa,
+ 0x64, 0x6b, 0xb9, 0x76, 0x58, 0x23, 0x7d, 0x8a,
+ 0x93, 0xb5, 0xe3, 0xbb, 0xb0, 0xbe, 0x2b, 0x87,
+ 0x75, 0x15, 0x0c, 0xf7, 0xea, 0xfa, 0x42, 0x61,
+ 0x3d, 0x6f, 0xc0, 0x31, 0x6d, 0x90, 0x2d, 0x37,
+ 0x10, 0x32, 0x97, 0xa7, 0x75, 0xb3, 0x29, 0xf1,
+ 0xde, 0x4b, 0xff, 0x7c, 0x63, 0x56, 0x19, 0x15,
+ 0xd0, 0xd7, 0x68, 0x3f, 0x85, 0xf8, 0xee, 0x6a,
+ 0xd8, 0x13, 0x8f, 0x9c, 0xe3, 0xc8, 0x49, 0x8a,
+ 0x57, 0xc8, 0x81, 0x03, 0x3a, 0xfd, 0xfc, 0x95,
+ 0x2b, 0x35, 0x75, 0x45, 0x41, 0xd1, 0x74, 0x13,
+ 0xc0, 0x16, 0x6d, 0x85, 0x68, 0x7d, 0xfc, 0xd4,
+ 0x58, 0xac, 0x51, 0xfb, 0x06, 0x95, 0x45, 0xfe,
+ 0x82, 0x0a, 0x4e, 0x19, 0xf6, 0x19, 0xc2, 0xe6,
+ 0x34, 0xc1, 0x9e, 0xfb, 0x6c, 0x60, 0xbe, 0xf4,
+ 0xbf, 0x39, 0xb5, 0xab, 0x69, 0x86, 0x71, 0xab,
+ 0xc9, 0x24, 0x30, 0x25, 0xbc, 0x2c, 0xbd, 0x13,
+ 0x0d, 0xfc, 0xb6, 0x55, 0x05, 0xa5, 0x92, 0x65,
+ 0x18, 0x6f, 0x49, 0x4b, 0x4b, 0x7e, 0x9a, 0xbb,
+ 0xf0, 0xf9, 0xf3, 0x96, 0x1e, 0x2d, 0x59, 0x1a,
+ 0xe3, 0x0b, 0xad, 0x31, 0x21, 0xe8, 0x47, 0xbe,
+ 0x08, 0x21, 0x66, 0xd3, 0xe3, 0x05, 0x3e, 0xab,
+ 0xa6, 0x9d, 0xfd, 0x24, 0xb1, 0xf6, 0x88, 0xa1,
+ 0xc4, 0x3f, 0xe9, 0x49, 0xad, 0x5a, 0x36, 0x26,
+ 0x0c, 0x49, 0xa8, 0xec, 0x05, 0x93, 0x0a, 0xe4,
+ 0x7c, 0x65, 0x8e, 0x81, 0xa7, 0x2b, 0xa1, 0xb4,
+ 0x43, 0xb7, 0x78, 0xa0, 0xce, 0x7a, 0x4b, 0xde,
+ 0x59, 0x93, 0xf0, 0xe0, 0x67, 0x0e, 0xb4, 0xcc,
+ 0xa8, 0x6c, 0x1f, 0xdd, 0x0f, 0xfc, 0xa3, 0x16,
+ 0x7f, 0x68, 0x00, 0x23, 0x6c, 0x71, 0xbd, 0xac,
+ 0x10, 0x7c, 0x5a, 0x66, 0x53, 0x91, 0x8b, 0xe4,
+ 0x0e, 0x4c, 0x26, 0x48, 0xca, 0xf0, 0x62, 0x90,
+ 0x92, 0x4a, 0xee, 0x77, 0x5f, 0x45, 0x89, 0x7b,
+ 0x0a, 0xf6, 0xa0, 0x66, 0xb3, 0xed, 0x41, 0x48,
+ 0xf7, 0x26, 0xf9, 0x07, 0xf6, 0x10, 0x48, 0x34,
+ 0x2a, 0xfb, 0xcc, 0x77, 0x01, 0x5c, 0x2a, 0xa5,
+ 0xee, 0x44, 0x40, 0x6a, 0xa7, 0x66, 0xa4, 0xc8,
+ 0x2a, 0xe9, 0x9d, 0x6f, 0xe5, 0x74, 0x6a, 0x8c,
+ 0x12, 0xe8, 0x0c, 0xe2, 0x27, 0x49, 0x25, 0x89,
+ 0x40, 0xd2, 0x6d, 0x2d, 0x57, 0xdc, 0x25, 0xbc,
+ 0x73, 0xb7, 0x66, 0xb4, 0xad, 0x73, 0x22, 0xe5,
+ 0x96, 0x56, 0xd6, 0xa9, 0xfd, 0x3d, 0xc9, 0x17,
+ 0x5a, 0xa7, 0x6e, 0x11, 0x6d, 0xe4, 0x14, 0x91,
+ 0x56, 0x27, 0x4e, 0x36, 0xc2, 0x9c, 0x4e, 0x5f,
+ 0x2d, 0x72, 0xcd, 0x11, 0x19, 0xda, 0xb2, 0x05,
+ 0xea, 0x7f, 0x0b, 0x03, 0x55, 0xf7, 0xec, 0x67,
+ 0xab, 0x95, 0x9c, 0x86, 0xb0, 0xc8, 0x41, 0x54,
+ 0xcc, 0xae, 0x9a, 0xa0, 0xa3, 0x46, 0x55, 0xc8,
+ 0xef, 0x8c, 0x21, 0x81, 0x69, 0x68, 0xfa, 0x24,
+ 0x84, 0x6b, 0x03, 0x8b, 0x71, 0xaa, 0xf0, 0x4f,
+ 0xbb, 0x47, 0x9b, 0x8f, 0xf0, 0x31, 0xeb, 0xc4,
+ 0x8e, 0xa6, 0xbd, 0xbe, 0x84, 0xe5, 0x89, 0x8d,
+ 0x09, 0x43, 0x76, 0xa7, 0x84, 0x00, 0xb7, 0x9b,
+ 0x9d, 0x9f, 0xbf, 0xf8, 0x31, 0xcd, 0x02, 0xf7,
+ 0x3a, 0x39, 0xa7, 0x57, 0xae, 0x4a, 0x4f, 0xca,
+ 0x41, 0xc2, 0x60, 0xe4, 0x31, 0xd7, 0xfb, 0xdf,
+ 0xfa, 0x71, 0x66, 0x0a, 0x72, 0x18, 0x64, 0x99,
+ 0xe3, 0x9b, 0x18, 0x2b, 0xfb, 0x78, 0x40, 0x48,
+ 0x56, 0x40, 0xcc, 0x63, 0xb3, 0x2a, 0x9c, 0x69,
+ 0x96, 0x80, 0xd4, 0x31, 0x7e, 0x04, 0x7d, 0xba,
+ 0x8f, 0xc8, 0x57, 0x55, 0x20, 0x52, 0xcd, 0x93,
+ 0xea, 0xc2, 0xed, 0x85, 0xe9, 0xa9, 0x2a, 0x0d,
+ 0xa8, 0x16, 0x53, 0xba, 0x98, 0x03, 0xa7, 0x48,
+ 0x7e, 0x7a, 0x60, 0xaa, 0x3d, 0x92, 0x13, 0x4f,
+ 0x69, 0x6b, 0x3d, 0xe6, 0xbd, 0xd3, 0xc8, 0x66,
+ 0xef, 0xcf, 0xaf, 0x1d, 0x19, 0xdf, 0x42, 0x24,
+ 0x23, 0x8b, 0x5c, 0x75, 0xc9, 0x15, 0xf6, 0x40,
+ 0xdf, 0xa1, 0x20, 0x07, 0x65, 0x6a, 0xd0, 0xf0,
+ 0x87, 0x7f, 0x36, 0x0b, 0x08, 0xb0, 0x08, 0x4a,
+ 0xdc, 0x97, 0x8b, 0xd2, 0x64, 0x63, 0x26, 0xad,
+ 0x3e, 0x0c, 0x8e, 0x76, 0xc2, 0xf2, 0x8e, 0xf3,
+ 0x2b, 0x93, 0x73, 0x10, 0x2d, 0x7f, 0x98, 0x3f,
+ 0x1f, 0x40, 0x5b, 0xf6, 0x54, 0x24, 0x1d, 0xd8,
+ 0xa7, 0x46, 0x93, 0x51, 0x29, 0x5d, 0x8b, 0xec,
+ 0x79, 0x4d, 0x09, 0xe6, 0xc3, 0xab, 0x54, 0xcb,
+ 0x7c, 0xba, 0x60, 0x5a, 0x2d, 0x47, 0xf6, 0xee,
+ 0x3d, 0x43, 0xd1, 0x6e, 0xb1, 0x21, 0x45, 0xd7,
+ 0xdb, 0xd7, 0xa1, 0xab, 0xb7, 0x03, 0x9e, 0xf6,
+ 0x44, 0x69, 0x6b, 0x2d, 0x38, 0x53, 0xca, 0x83,
+ 0x75, 0xf4, 0x89, 0x1c, 0x0f, 0x5a, 0xe9, 0xc4,
+ 0x3a, 0xdd, 0x3d, 0x9e, 0xdf, 0xc2, 0x1c, 0xa4,
+ 0xf3, 0xe0, 0x31, 0x6a, 0xee, 0xfe, 0x51, 0x5b,
+ 0x72, 0xad, 0x35, 0x21, 0x70, 0xef, 0xcb, 0x4f,
+ 0x3b, 0x15, 0xf1, 0x6b, 0x51, 0xf4, 0xc2, 0xca,
+ 0xb5, 0x44, 0xb0, 0x2a, 0x4c, 0xdc, 0xfc, 0x08,
+ 0xaf, 0x81, 0xd5, 0xcb, 0x3c, 0xbb, 0x81, 0xe7,
+ 0x8f, 0xba, 0x6c, 0x75, 0x52, 0x81, 0x48, 0xe9,
+ 0xfe, 0xc9, 0x8f, 0x7c, 0x0c, 0x16, 0x4c, 0x08,
+ 0xe1, 0x3f, 0x17, 0xcd, 0x82, 0x14, 0xf6, 0x45,
+ 0x27, 0x28, 0x49, 0x88, 0x77, 0xce, 0x33, 0xce,
+ 0x55, 0x94, 0xeb, 0xec, 0x74, 0x73, 0xf2, 0x15,
+ 0xba, 0x5e, 0xd0, 0x95, 0xfb, 0x64, 0x00, 0x84,
+ 0x4b, 0x90, 0x20, 0x5c, 0x14, 0xc9, 0x6f, 0x93,
+ 0x16, 0x3d, 0x46, 0x8c, 0xbf, 0x73, 0xb0, 0x39,
+ 0xe0, 0x4b, 0x07, 0x8b, 0x59, 0x7a, 0x90, 0x91,
+ 0xd8, 0x73, 0x9f, 0x01, 0x32, 0x8c, 0x65, 0x78,
+ 0x53, 0x1b, 0xab, 0x3e, 0xf7, 0x21, 0xba, 0x59,
+ 0xea, 0xa8, 0xaa, 0xb5, 0xf2, 0xf1, 0xa2, 0x91,
+ 0xdc, 0x09, 0x1c, 0xee, 0x92, 0x2c, 0x21, 0x68,
+ 0x4e, 0xdd, 0xc1, 0x0a, 0xdf, 0x68, 0xfc, 0x66,
+ 0xa7, 0xd7, 0x53, 0x38, 0x90, 0xaa, 0x8e, 0xd8,
+ 0x49, 0xa8, 0x21, 0x7d, 0x51, 0x38, 0x60, 0x8c,
+ 0x81, 0x05, 0xfc, 0x6d, 0x88, 0xde, 0xef, 0x40,
+ 0xd3, 0xa5, 0x27, 0x9b, 0x70, 0x28, 0xac, 0x88,
+ 0xff, 0x65, 0x73, 0x6f, 0x58, 0xe2, 0x4e, 0x2d,
+ 0x7f, 0x0f, 0xf8, 0x6b, 0xdc, 0x19, 0x69, 0xfc,
+ 0xab, 0xa9, 0x00, 0xcd, 0x2f, 0xdf, 0x35, 0x09,
+ 0x09, 0xaa, 0x10, 0xa3, 0x66, 0x0f, 0x2a, 0x05,
+ 0x2e, 0xea, 0x7f, 0x01, 0xd1, 0x1e, 0x8d, 0xbe,
+ 0x6b, 0x46, 0x36, 0x9c, 0xbe, 0x17, 0xb7, 0xe8,
+ 0x48, 0xc4, 0x43, 0x3a, 0x67, 0xf4, 0x5c, 0x25,
+ 0x09, 0x3e, 0xdf, 0x6c, 0x60, 0xec, 0xcb, 0x77,
+ 0x22, 0xe8, 0xac, 0x57, 0x8a, 0x54, 0x1d, 0x69,
+ 0x53, 0x1e, 0x60, 0x22, 0xb9, 0x7b, 0xe9, 0x05,
+ 0x64, 0xe2, 0xb9, 0x7f, 0x6f, 0xdc, 0x52, 0xac,
+ 0x24, 0xb8, 0x07, 0xdf, 0x81, 0xe0, 0xb9, 0xe4,
+ 0x15, 0xb4, 0x9a, 0x75, 0x90, 0x64, 0xab, 0x5d,
+ 0x88, 0x0f, 0x32, 0x28, 0x2f, 0xc2, 0x59, 0xd6,
+ 0x9b, 0x74, 0xfe, 0x8f, 0x07, 0xde, 0xf6, 0xa5,
+ 0xde, 0xa7, 0xde, 0xe9, 0x96, 0xec, 0xa4, 0xe1,
+ 0xf7, 0x64, 0x03, 0xd1, 0x59, 0x9c, 0x3f, 0x8c,
+ 0xf3, 0x9b, 0xcf, 0xf4, 0x85, 0x6c, 0x20, 0x80,
+ 0x4e, 0xeb, 0x1e, 0x74, 0xf9, 0x93, 0x54, 0x04,
+ 0x07, 0x46, 0x70, 0x78, 0xd8, 0x2d, 0xe1, 0x2c,
+ 0x95, 0xad, 0x18, 0x58, 0x0a, 0x44, 0xae, 0x1e,
+ 0xec, 0x03, 0xd6, 0x88, 0x06, 0x4b, 0x06, 0xcc,
+ 0xd3, 0x07, 0xf5, 0xbd, 0xb0, 0x5d, 0x1c, 0xe7,
+ 0x42, 0x30, 0xee, 0xdb, 0x51, 0xf0, 0xf3, 0x35,
+ 0x93, 0x50, 0x7b, 0xec, 0x76, 0x9c, 0xef, 0x78,
+ 0x0a, 0x27, 0x03, 0xd9, 0xdb, 0x77, 0xd7, 0x24,
+ 0x12, 0x9e, 0xb6, 0x81, 0x1a, 0xb5, 0x59, 0x8b,
+ 0xd7, 0xf1, 0x06, 0x4c, 0xc5, 0x21, 0x12, 0xeb,
+ 0x5d, 0x4a, 0xbf, 0x25, 0x37, 0x3c, 0x1f, 0x35,
+ 0x07, 0xd0, 0xcd, 0x61, 0xea, 0x9c, 0xde, 0x74,
+ 0x23, 0x6b, 0xa5, 0xa1, 0x0c, 0x85, 0x7f, 0x26,
+ 0xe1, 0x55, 0x17, 0x47, 0x35, 0x72, 0xc4, 0xf7,
+ 0x57, 0xb4, 0x7f, 0xcb, 0xb1, 0xdc, 0xd3, 0x85,
+ 0x2b, 0xb7, 0xc7, 0xe1, 0xc0, 0xa8, 0xa1, 0x7e,
+ 0x45, 0x52, 0x81, 0x80, 0xfc, 0xb9, 0x99, 0xda,
+ 0x0d, 0xe7, 0xea, 0xa3, 0x12, 0xdf, 0x94, 0x6f,
+ 0x99, 0xd9, 0x20, 0x54, 0x9b, 0x38, 0x1c, 0xca,
+ 0x96, 0x39, 0xfd, 0x4a, 0xe7, 0x29, 0x78, 0x46,
+ 0xdd, 0x0e, 0xc3, 0x7c, 0xa7, 0xe5, 0xfa, 0x27,
+ 0xfc, 0x2a, 0xd6, 0xe9, 0xdc, 0xec, 0xce, 0xd8,
+ 0x5c, 0xdf, 0x50, 0xb5, 0xd9, 0x20, 0xcf, 0x92,
+ 0x27, 0x10, 0x18, 0x39, 0x43, 0x02, 0x10, 0x16,
+ 0xfd, 0xd6, 0xc6, 0xcb, 0xd3, 0x1a, 0x6d, 0x35,
+ 0x5b, 0x11, 0x4b, 0x25, 0x0b, 0xad, 0xf1, 0x90,
+ 0xc0, 0xa8, 0x21, 0x86, 0x02, 0x60, 0x73, 0xf9,
+ 0xc0, 0x9c, 0x79, 0xd5, 0x51, 0x88, 0xd0, 0x69,
+ 0x6a, 0xb3, 0xcd, 0x10, 0xa2, 0x74, 0x60, 0x7b,
+ 0x6c, 0x34, 0x89, 0x22, 0xe4, 0xb5, 0xa7, 0x64,
+ 0x52, 0x35, 0x19, 0xad, 0x8d, 0xfa, 0xb5, 0x41,
+ 0x52, 0xf5, 0x5e, 0xe2, 0x46, 0x03, 0x8f, 0x89,
+ 0x28, 0xae, 0xc5, 0x1f, 0x54, 0xb6, 0x20, 0x42,
+ 0xe2, 0x97, 0x95, 0x90, 0x4a, 0x5d, 0xb3, 0xc1,
+ 0x46, 0x11, 0x97, 0xe2, 0x48, 0x2e, 0x55, 0x6e,
+ 0x26, 0xeb, 0xc1, 0x33, 0xb4, 0x0d, 0x88, 0xfc,
+ 0x01, 0x28, 0xdb, 0x51, 0x6b, 0x38, 0x91, 0x3d,
+ 0xed, 0xe3, 0x6b, 0x86, 0x27, 0x14, 0x3f, 0xd5,
+ 0xed, 0x10, 0xf8, 0x9c, 0xe7, 0x13, 0x0f, 0xab,
+ 0xba, 0xf3, 0x00, 0x5d, 0xf0, 0xc4, 0x3e, 0x20,
+ 0x36, 0xd5, 0x26, 0x3c, 0xbb, 0x15, 0xa9, 0x08,
+ 0xc2, 0xb5, 0x24, 0xf1, 0x93, 0x3e, 0xff, 0x43,
+ 0x2c, 0x4b, 0x3b, 0xec, 0x5c, 0x40, 0xe5, 0x66,
+ 0x67, 0x6b, 0xef, 0x27, 0xa2, 0x8d, 0xb2, 0xfb,
+ 0xba, 0x66, 0x31, 0x8c, 0x8b, 0x94, 0xb9, 0xf1,
+ 0x7b, 0xd8, 0xef, 0x64, 0x49, 0x06, 0x64, 0x9f,
+ 0xe0, 0xb8, 0x33, 0xba, 0x22, 0xa2, 0x7e, 0xd3,
+ 0xc9, 0xb7, 0x93, 0xf7, 0xf0, 0x6a, 0xa3, 0xc1,
+ 0xfa, 0x99, 0x56, 0xee, 0xcc, 0x94, 0x29, 0x1e,
+ 0xdc, 0x53, 0x3f, 0xb6, 0x57, 0x73, 0x8c, 0x46,
+ 0xca, 0x35, 0x75, 0x58, 0x59, 0x3e, 0x1d, 0x13,
+ 0x7f, 0x2d, 0xc6, 0xc2, 0x07, 0x78, 0x90, 0x8a,
+ 0x27, 0xa3, 0x8e, 0x51, 0x7c, 0x41, 0xd8, 0x41,
+ 0x54, 0x1c, 0x1c, 0x44, 0x23, 0xc1, 0xfe, 0x2d,
+ 0x47, 0xaa, 0xa5, 0x8f, 0x70, 0xbf, 0x93, 0xc4,
+ 0xba, 0xa6, 0xc7, 0xdf, 0x3e, 0x8f, 0x9e, 0x3e,
+ 0x59, 0xf3, 0x8b, 0x57, 0xcd, 0xf6, 0x23, 0x42,
+ 0x03, 0x51, 0xb6, 0xa8, 0xdf, 0x09, 0xd8, 0x6e,
+ 0xcc, 0x84, 0xef, 0x0a, 0xad, 0x86, 0xfe, 0x28,
+ 0xe9, 0xa0, 0x97, 0xdc, 0x62, 0x1b, 0xdb, 0x48,
+ 0x70, 0x92, 0xcc, 0x28, 0xa9, 0xab, 0xb8, 0xe6,
+ 0xb1, 0xcc, 0x9e, 0x08, 0xd7, 0xab, 0x9f, 0x8b,
+ 0xe9, 0xb6, 0x30, 0x7d, 0xf0, 0xaf, 0x91, 0xac,
+ 0xc5, 0xe6, 0xfd, 0xcd, 0xb0, 0xad, 0xec, 0x14,
+ 0x49, 0xf5, 0xbb, 0xbe, 0xb3, 0x6d, 0x45, 0x35,
+ 0x6b, 0xdd, 0x40, 0x7f, 0x47, 0x92, 0xf7, 0xdf,
+ 0x0c, 0x6c, 0xca, 0x26, 0xc7, 0x70, 0xb2, 0xa6,
+ 0x76, 0x24, 0x7a, 0x06, 0x0d, 0x67, 0xff, 0xa7,
+ 0x4e, 0xeb, 0x87, 0xf2, 0x95, 0x6c, 0x11, 0x49,
+ 0xf9, 0xc0, 0x50, 0x13, 0xfc, 0xfa, 0xab, 0x18,
+ 0x2f, 0x7a, 0x84, 0xc9, 0x3f, 0x99, 0x3b, 0x15,
+ 0xe5, 0xb4, 0x66, 0x20, 0xf0, 0xe3, 0x57, 0x15,
+ 0x3d, 0xe7, 0xd9, 0x61, 0x84, 0xd3, 0xba, 0xfd,
+ 0x89, 0x97, 0xaa, 0x0b, 0x1d, 0x53, 0xb2, 0x7b,
+ 0x31, 0x65, 0xc6, 0xbf, 0xdd, 0x6f, 0x22, 0xb9,
+ 0x1b, 0x2e, 0xae, 0xfe, 0x62, 0xe8, 0x04, 0x64,
+ 0xe8, 0x66, 0x9d, 0x13, 0xe5, 0x3e, 0xed, 0xe2,
+ 0xa4, 0x10, 0x3a, 0x10, 0x6b, 0x59, 0xd5, 0x72,
+ 0x76, 0xa2, 0x4f, 0x87, 0x8a, 0xff, 0x5c, 0x9d,
+ 0x73, 0x35, 0x13, 0x56, 0xfe, 0x2d, 0x00, 0xaf,
+ 0x0c, 0xff, 0x02, 0xe0, 0x2f, 0xa7, 0x69, 0xa4,
+ 0x89, 0x95, 0xbb, 0xcb, 0x2b, 0x50, 0x2c, 0xd8,
+ 0x70, 0x4c, 0x6a, 0xa7, 0x49, 0xb5, 0xd8, 0xf6,
+ 0x3b, 0x61, 0xf8, 0x05, 0x45, 0x62, 0x7b, 0x06,
+ 0xd4, 0xe1, 0xa2, 0x1d, 0x73, 0x48, 0x4a, 0x98,
+ 0x54, 0xbd, 0xda, 0xca, 0x36, 0xc0, 0xe6, 0xbe,
+ 0x84, 0x7e, 0x50, 0x54, 0x7a, 0x25, 0xd7, 0x2a,
+ 0xdb, 0x6a, 0x15, 0x1c, 0x2d, 0xda, 0xcd, 0xbf,
+ 0xe0, 0x22, 0x9c, 0x51, 0x27, 0xd6, 0x4f, 0x5a,
+ 0xc8, 0x10, 0xed, 0xde, 0xb6, 0xe8, 0x46, 0x72,
+ 0x0e, 0xfe, 0x87, 0x9b, 0x13, 0x1c, 0x4f, 0xc2,
+ 0x72, 0xf2, 0x03, 0x3b, 0x14, 0x5e, 0x95, 0x26,
+ 0x85, 0xb3, 0x50, 0xee, 0x3f, 0x74, 0x53, 0xb3,
+ 0x00, 0x23, 0xa0, 0xfa, 0xd3, 0x6a, 0x1f, 0x6f,
+ 0xd4, 0xfd, 0xaa, 0x40, 0xd1, 0x21, 0xa9, 0xfa,
+ 0x7d, 0x36, 0x7e, 0x69, 0x84, 0x34, 0x1f, 0x0d,
+ 0xa8, 0xa6, 0xaf, 0xb2, 0x0c, 0x0e, 0xbd, 0x48,
+ 0xeb, 0xf4, 0x77, 0xd8, 0x0a, 0xfd, 0x88, 0x88,
+ 0x27, 0x44, 0x57, 0x22, 0x7a, 0x88, 0x10, 0xad,
+ 0x9e, 0x0c, 0xdc, 0x49, 0x0c, 0xa0, 0xb5, 0xb4,
+ 0xd4, 0x63, 0xc6, 0x98, 0x7f, 0x43, 0x72, 0x03,
+ 0xbb, 0xda, 0x30, 0xad, 0x7b, 0x7d, 0x1f, 0x5f,
+ 0x2e, 0xc5, 0x10, 0x2e, 0x90, 0x04, 0x86, 0x75,
+ 0xa8, 0xe3, 0xc6, 0x11, 0xc5, 0xd0, 0x7f, 0xe9,
+ 0xed, 0xd2, 0x89, 0x0c, 0xb7, 0x04, 0xce, 0x57,
+ 0xf8, 0xdd, 0x6f, 0x97, 0xfd, 0x7c, 0xf8, 0x3f,
+ 0x9a, 0xa0, 0xe4, 0x09, 0xd3, 0x9c, 0x2b, 0x99,
+ 0x22, 0x3c, 0xe4, 0x1d, 0x41, 0x66, 0xa5, 0xb0,
+ 0x5d, 0x61, 0xa5, 0x78, 0xe7, 0x2f, 0xbc, 0xe9,
+ 0xff, 0x98, 0xcf, 0xbb, 0x1d, 0x4c, 0x69, 0x24,
+ 0xaf, 0x10, 0xf2, 0xde, 0xfb, 0x9b, 0xf8, 0x84,
+ 0x67, 0xca, 0x2e, 0xd4, 0xa2, 0x68, 0x14, 0x92,
+ 0xcb, 0xbf, 0xd0, 0x65, 0x10, 0x62, 0xa8, 0x9f,
+ 0x20, 0x05, 0x40, 0xa6, 0xfb, 0x53, 0xc5, 0x41,
+ 0xb6, 0xe8, 0xf0, 0xd0, 0xac, 0x0f, 0xde, 0x34,
+ 0x37, 0x73, 0xe9, 0x77, 0x39, 0x55, 0x45, 0xeb,
+ 0x61, 0xd4, 0x05, 0xeb, 0xa0, 0xe9, 0x9a, 0xd3,
+ 0xc4, 0xa3, 0xd8, 0x92, 0x31, 0x41, 0x93, 0x1e,
+ 0x6d, 0x66, 0x22, 0xf3, 0x7f, 0x79, 0xb4, 0x84,
+ 0xf2, 0x5b, 0xe5, 0x93, 0xb3, 0x89, 0xde, 0x97,
+ 0x85, 0x79, 0x4c, 0xbb, 0x29, 0x89, 0xdc, 0x0e,
+ 0x2c, 0x85, 0x70, 0xae, 0x09, 0xc6, 0xb5, 0x75,
+ 0x56, 0x07, 0x5b, 0xd7, 0xd7, 0x85, 0x78, 0x9f,
+ 0x04, 0x6a, 0x2b, 0xfe, 0xf9, 0x55, 0xd8, 0xb0,
+ 0x16, 0x70, 0xe3, 0x38, 0x82, 0x2b, 0x27, 0xc1,
+ 0x68, 0xef, 0x1b, 0xa7, 0x7e, 0xfe, 0x79, 0x7c,
+ 0x21, 0x02, 0x43, 0x00, 0x15, 0xc9, 0x96, 0x40,
+ 0x05, 0xa3, 0xfd, 0x43, 0xfc, 0xae, 0xe1, 0xa2,
+ 0xe8, 0x1f, 0x10, 0x48, 0x83, 0x4b, 0x59, 0x4a,
+ 0x71, 0x5d, 0x48, 0x9e, 0x11, 0x40, 0x6f, 0xe4,
+ 0xa8, 0x7d, 0xad, 0xb8, 0x9e, 0xcd, 0x36, 0x18,
+ 0x03, 0x35, 0x6c, 0x3b, 0x74, 0x7d, 0xe6, 0x6a,
+ 0x2e, 0x4d, 0x7a, 0x28, 0x5c, 0x7c, 0x1f, 0xbd,
+ 0xcb, 0xc3, 0x0c, 0x9c, 0x3e, 0xa6, 0xc8, 0x84,
+ 0xb0, 0x44, 0x96, 0x87, 0x32, 0x78, 0xe4, 0x63,
+ 0xce, 0x2e, 0xc7, 0x06, 0xaa, 0xb6, 0x21, 0x04,
+ 0xb3, 0xad, 0xc6, 0xa5, 0x04, 0xc4, 0x61, 0xe6,
+ 0xce, 0xca, 0x65, 0x02, 0x78, 0xce, 0xd0, 0x91,
+ 0x1f, 0x77, 0x17, 0xed, 0x1f, 0x93, 0xf3, 0x4d,
+ 0xd4, 0xfd, 0x62, 0x1d, 0xbd, 0x89, 0x4e, 0x80,
+ 0x53, 0xa6, 0x8d, 0xff, 0xf1, 0x68, 0x3f, 0xa6,
+ 0x70, 0xe3, 0xe9, 0x24, 0x0a, 0x9c, 0x49, 0xb7,
+ 0xbc, 0x2f, 0xad, 0x4d, 0xa1, 0x39, 0xdb, 0x0c,
+ 0x21, 0x9e, 0x56, 0xe8, 0xe8, 0xfa, 0x9c, 0x15,
+ 0x5b, 0x6f, 0x8e, 0x4a, 0x18, 0x3c, 0x50, 0x27,
+ 0x35, 0x0e, 0x70, 0xd9, 0x0d, 0x1b, 0xd1, 0x30,
+ 0x27, 0x5c, 0x4b, 0xa4, 0xe0, 0x10, 0xc5, 0xd6,
+ 0x4c, 0x04, 0x8e, 0x4d, 0xa7, 0x6f, 0x15, 0xe4,
+ 0x7c, 0xdf, 0xe1, 0xa3, 0x6e, 0xe0, 0x68, 0x59,
+ 0x64, 0xa2, 0x46, 0x18, 0x73, 0xeb, 0x9e, 0xf9,
+ 0x50, 0xce, 0x9a, 0xa7, 0x10, 0xdc, 0xf1, 0x3f,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x67, 0x6f, 0x8e, 0xb2, 0xcd, 0xfd, 0x17, 0xfb,
+ 0xdb, 0xbc, 0x03, 0xa0, 0xe9, 0xfd, 0x3e, 0x7a,
+ 0x94, 0xea, 0x50, 0xd5, 0x1c, 0xfb, 0xec, 0x7a,
+ 0x3e, 0xe0, 0xde, 0x78, 0x58, 0xe8, 0x31, 0x8a,
+ 0x8a, 0x07, 0x6f, 0xd6, 0xb0, 0xad, 0x10, 0xaa,
+ 0xac, 0x1d, 0x6d, 0xcc, 0xea, 0x45, 0xba, 0x40,
+ 0xb4, 0x2c, 0x4d, 0x31, 0x85, 0x86, 0xb7, 0x4d,
+ 0x64, 0xa1, 0xa6, 0xef, 0x18, 0x77, 0xd0, 0xf0,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0x0c, 0x79, 0x06, 0x52, 0x49, 0x9c, 0x28, 0x59,
+ 0xcd, 0x66, 0x15, 0x4e, 0xe9, 0x6d, 0x6d, 0x25,
+ 0x57, 0x32, 0x31, 0x59, 0xa7, 0xf8, 0xe1, 0x6c,
+ 0xbb, 0xa0, 0xdf, 0x01, 0x3f, 0xfa, 0xe0, 0x9a,
+ 0xa9, 0x28, 0x0e, 0x83, 0x13, 0x91, 0x5f, 0x30,
+ 0xa9, 0x71, 0xd5, 0x7e, 0x77, 0xf1, 0x7e, 0xe4,
+ 0xb1, 0x30, 0x14, 0x8d, 0x5b, 0x0b, 0x59, 0xe0,
+ 0x17, 0xe3, 0x97, 0xa6, 0x60, 0x9c, 0x66, 0xf4,
+ 0xdb, 0x20, 0xf1, 0xc7, 0x1b, 0x64, 0x02, 0x6f,
+ 0x4e, 0x6b, 0xcc, 0xa6, 0xf7, 0x99, 0x61, 0xd2,
+ 0x2f, 0x70, 0x4b, 0x24, 0x3e, 0x35, 0x04, 0xe6,
+ 0xf1, 0xf3, 0x97, 0x86, 0xb3, 0xe8, 0x2c, 0x00,
+ 0xaf, 0xb6, 0x11, 0xb0, 0x6c, 0x2e, 0x56, 0x10,
+ 0xf0, 0x30, 0x94, 0x1d, 0x1a, 0x4f, 0xd3, 0xed,
+ 0x94, 0x0e, 0x9c, 0xd8, 0xeb, 0xd3, 0x26, 0x5c,
+ 0x77, 0x51, 0x2e, 0x47, 0xc3, 0xcf, 0x7e, 0x94,
+ 0xcd, 0x47, 0x48, 0x90, 0xee, 0x51, 0x4d, 0xf1,
+ 0xce, 0xc5, 0xe2, 0x41, 0x61, 0xbf, 0x8a, 0xb8,
+ 0x47, 0x2d, 0x0f, 0xff, 0x9b, 0x1b, 0x1b, 0xaf,
+ 0xc0, 0x54, 0x1e, 0x41, 0xce, 0x28, 0xc7, 0x0a,
+ 0xe6, 0x0a, 0xa2, 0x1a, 0x86, 0xe8, 0x6c, 0x6d,
+ 0xec, 0xb6, 0xf8, 0x5f, 0x52, 0x5a, 0x14, 0xc6,
+ 0x96, 0xe3, 0xc0, 0xe7, 0x41, 0x37, 0x02, 0x3d,
+ 0x38, 0xe8, 0x16, 0x09, 0x88, 0xe2, 0xa9, 0x28,
+ 0x28, 0x68, 0x14, 0x07, 0xd9, 0xb6, 0x36, 0xce,
+ 0x2a, 0xc1, 0xf1, 0xc4, 0x08, 0x54, 0x38, 0xc0,
+ 0x77, 0x9f, 0x7c, 0x63, 0xde, 0x3f, 0x0c, 0xbc,
+ 0xd2, 0xef, 0xeb, 0xf4, 0x9e, 0x8e, 0xb0, 0x9c,
+ 0x5a, 0xa1, 0xcb, 0x62, 0x4c, 0x0e, 0x1c, 0xe5,
+ 0xdb, 0x23, 0x85, 0xde, 0xf8, 0x21, 0x1e, 0x2d,
+ 0xcc, 0x9f, 0x1f, 0xb3, 0xe7, 0x27, 0x8a, 0x5a,
+ 0xfc, 0x02, 0xe2, 0x72, 0x71, 0x30, 0x01, 0x71,
+ 0xd0, 0x3e, 0x90, 0xaf, 0x5d, 0x9d, 0x38, 0xa8,
+ 0xc4, 0xfc, 0xa1, 0x3a, 0xfb, 0xf7, 0x69, 0x26,
+ 0x5c, 0x13, 0xb4, 0x2c, 0x5b, 0x31, 0xcd, 0x8c,
+ 0x26, 0x99, 0xed, 0x62, 0x5b, 0x39, 0x8e, 0x59,
+ 0xb1, 0xe5, 0xf5, 0xdc, 0x36, 0xe8, 0x87, 0x0a,
+ 0xe4, 0x82, 0x60, 0x48, 0x70, 0xb1, 0x08, 0x68,
+ 0xf4, 0xeb, 0x86, 0x28, 0x45, 0xfc, 0x5a, 0x60,
+ 0x3f, 0x5e, 0x82, 0xc0, 0x3b, 0x18, 0xd2, 0x0e,
+ 0xa8, 0xf2, 0xb0, 0x07, 0xf4, 0xbd, 0xab, 0x23,
+ 0x0c, 0x4e, 0xe0, 0xae, 0x38, 0xe6, 0x93, 0x4f,
+ 0x58, 0xcd, 0x0b, 0x67, 0xe5, 0xb3, 0xdd, 0x81,
+ 0x33, 0x9e, 0xdc, 0xd5, 0xc0, 0x1a, 0xde, 0x22,
+ 0x02, 0xf9, 0x3e, 0xd6, 0x53, 0x39, 0x79, 0xc8,
+ 0x9f, 0x8a, 0xc5, 0xc9, 0xb0, 0x2a, 0xcb, 0x73,
+ 0x86, 0xd1, 0xc1, 0xa7, 0x90, 0xe9, 0xc2, 0x37,
+ 0x3f, 0x9f, 0x5a, 0x09, 0xd5, 0x99, 0x4b, 0xd6,
+ 0x37, 0x3b, 0xa5, 0x78, 0x97, 0xaf, 0xa9, 0x37,
+ 0xe4, 0x3a, 0x64, 0x46, 0x6b, 0x6b, 0xd4, 0x11,
+ 0x2e, 0x24, 0x98, 0xd6, 0x15, 0x36, 0x77, 0x64,
+ 0x27, 0x84, 0x67, 0x84, 0x12, 0xa6, 0x93, 0x0d,
+ 0x53, 0x05, 0xff, 0x52, 0x54, 0x4b, 0x22, 0xab,
+ 0x28, 0xcd, 0x37, 0x05, 0x0b, 0x65, 0x97, 0xd0,
+ 0x74, 0xaa, 0xa6, 0x16, 0x5c, 0x89, 0x55, 0x08,
+ 0xbd, 0xf4, 0x77, 0x68, 0xab, 0x5c, 0x7d, 0xc4,
+ 0x58, 0x46, 0x15, 0x6e, 0x7f, 0x94, 0xf2, 0xd9,
+ 0x4f, 0xe9, 0x75, 0x83, 0x01, 0xca, 0xc2, 0x8d,
+ 0x30, 0x63, 0x3a, 0xda, 0x27, 0x16, 0x3b, 0x9d,
+ 0x45, 0x04, 0x64, 0xe0, 0x76, 0xec, 0x6e, 0x4f,
+ 0x76, 0x88, 0x21, 0xe3, 0x73, 0xa8, 0x0a, 0xe3,
+ 0x72, 0xd0, 0x73, 0x41, 0xba, 0x06, 0x79, 0x90,
+ 0xf5, 0x5c, 0xb6, 0x23, 0x57, 0xca, 0x62, 0xca,
+ 0x0a, 0xe9, 0xd4, 0x20, 0x16, 0xe7, 0xc3, 0x2c,
+ 0x92, 0x4c, 0x3a, 0x14, 0xe3, 0x9a, 0x67, 0x80,
+ 0x14, 0x41, 0x80, 0x1b, 0xe2, 0x8b, 0x00, 0xa0,
+ 0xb6, 0xc3, 0x78, 0x58, 0xf0, 0x29, 0xa9, 0x0f,
+ 0x2e, 0x1b, 0x17, 0x3b, 0x07, 0x70, 0xc0, 0x41,
+ 0x39, 0x06, 0x67, 0x91, 0x60, 0x3a, 0x43, 0xc9,
+ 0x1e, 0x1d, 0x39, 0xe8, 0xde, 0xc1, 0x62, 0x58,
+ 0xf6, 0x63, 0xf5, 0xed, 0x83, 0x5e, 0x15, 0xf1,
+ 0x41, 0xcf, 0x8c, 0x71, 0x64, 0xf6, 0x76, 0xbb,
+ 0xb6, 0xb4, 0x8e, 0x2a, 0x95, 0x5c, 0x0b, 0xe4,
+ 0x92, 0x79, 0x56, 0x69, 0xd9, 0x2b, 0x71, 0x61,
+ 0xa7, 0x1b, 0x48, 0x07, 0x2d, 0xb6, 0x3a, 0x0b,
+ 0xf9, 0xc2, 0xc1, 0x6f, 0x69, 0x5c, 0x47, 0xa8,
+ 0x99, 0x20, 0x05, 0xd5, 0x54, 0x32, 0xdb, 0xbc,
+ 0x88, 0xb1, 0xa3, 0x10, 0x85, 0xf7, 0x98, 0xbd,
+ 0x89, 0xa9, 0xf0, 0x6c, 0x7e, 0xe7, 0xda, 0x56,
+ 0xc1, 0x61, 0x50, 0x79, 0x79, 0x71, 0xb5, 0x83,
+ 0xd5, 0x2a, 0xd2, 0xd6, 0x41, 0x31, 0x1e, 0x8a,
+ 0x1f, 0x3d, 0xad, 0xf9, 0xb8, 0x5e, 0x7a, 0x80,
+ 0xc7, 0x9d, 0x07, 0x14, 0xe5, 0xde, 0x28, 0x39,
+ 0x17, 0x2c, 0xed, 0x2b, 0x5f, 0xe5, 0x3d, 0x3e,
+ 0x54, 0x4f, 0x0d, 0x9c, 0xa1, 0x83, 0xd7, 0xaf,
+ 0x7a, 0x39, 0xf1, 0xaa, 0xa7, 0x5d, 0xd9, 0x2a,
+ 0x7c, 0xbe, 0x4f, 0xb4, 0xb8, 0x85, 0xcf, 0xbf,
+ 0x0e, 0x42, 0x90, 0x90, 0x48, 0xc5, 0x96, 0x26,
+ 0xbb, 0x7e, 0x94, 0x90, 0x25, 0x3b, 0x25, 0xb9,
+ 0xa9, 0xa1, 0xed, 0x18, 0xfa, 0x9a, 0x46, 0xe4,
+ 0xca, 0x3d, 0x27, 0xc4, 0x7e, 0x9f, 0x3e, 0xdc,
+ 0x6f, 0x5f, 0x71, 0x6e, 0xc0, 0x41, 0x55, 0x38,
+ 0x9c, 0x9c, 0x28, 0x85, 0xe3, 0xf0, 0xc4, 0xea,
+ 0xc7, 0x7f, 0x7c, 0x66, 0x22, 0x89, 0xea, 0xc3,
+ 0xfa, 0x5a, 0x09, 0x70, 0x1b, 0xc5, 0x30, 0xd5,
+ 0x71, 0x08, 0x5b, 0x3f, 0x60, 0xa2, 0x75, 0x80,
+ 0x84, 0x70, 0x14, 0xde, 0x9b, 0x46, 0xbd, 0x53,
+ 0x98, 0x67, 0xcc, 0x55, 0x4b, 0xed, 0x18, 0x5f,
+ 0xd6, 0x07, 0x17, 0xcb, 0xcf, 0xde, 0x2a, 0x37,
+ 0x37, 0x07, 0x5b, 0xa9, 0x88, 0x0c, 0xa2, 0xb9,
+ 0xf3, 0xe5, 0x3a, 0x7c, 0xa3, 0x09, 0xeb, 0xf6,
+ 0xab, 0x42, 0x57, 0xf9, 0xc4, 0xab, 0x0a, 0x97,
+ 0xea, 0x96, 0x4c, 0x58, 0xe9, 0xe4, 0x8f, 0xcc,
+ 0x35, 0x7f, 0x01, 0x0f, 0x5c, 0x7e, 0xaa, 0x0a,
+ 0x0c, 0xf2, 0x3c, 0x3e, 0x5c, 0x4f, 0xb6, 0x1f,
+ 0x08, 0xd7, 0x0a, 0x68, 0xef, 0xf4, 0x95, 0xa5,
+ 0x59, 0xd6, 0x41, 0xee, 0x31, 0xab, 0x28, 0xd1,
+ 0x3a, 0xc7, 0xc4, 0xb1, 0x5f, 0xf6, 0x10, 0xef,
+ 0x59, 0xda, 0x48, 0x7b, 0x9d, 0x50, 0x4b, 0xb9,
+ 0xe0, 0x90, 0x9d, 0xf9, 0x2f, 0x4e, 0x55, 0xe8,
+ 0x49, 0xfc, 0x40, 0xa5, 0x33, 0x86, 0xf8, 0x32,
+ 0x16, 0x60, 0x83, 0x1c, 0x6b, 0x7f, 0xe4, 0xf1,
+ 0xa1, 0x84, 0x1d, 0x21, 0xbb, 0xca, 0x2d, 0x1a,
+ 0x3f, 0x7a, 0xd4, 0x8a, 0xcb, 0x7e, 0x3c, 0x3c,
+ 0xe6, 0x86, 0x8d, 0x08, 0x2f, 0x71, 0x45, 0x46,
+ 0xeb, 0xd6, 0x4e, 0xf5, 0xf8, 0x46, 0xf3, 0x25,
+ 0x8e, 0x6b, 0x29, 0x92, 0xa4, 0x47, 0x46, 0xe2,
+ 0x72, 0xf2, 0x22, 0x64, 0x9a, 0xd1, 0xd7, 0x83,
+ 0x99, 0x44, 0x1f, 0xe6, 0x48, 0xd5, 0xfc, 0xc7,
+ 0x7c, 0xb4, 0x3d, 0x3c, 0x21, 0x5d, 0x0a, 0xea,
+ 0xec, 0x16, 0xf7, 0xb3, 0xef, 0x0f, 0x4a, 0xa6,
+ 0x91, 0x4d, 0x7e, 0xb1, 0x01, 0x3b, 0xff, 0x94,
+ 0xb8, 0xd5, 0x91, 0x39, 0x4b, 0x2b, 0x8b, 0x0b,
+ 0x19, 0x94, 0x64, 0xd7, 0x27, 0x11, 0x71, 0xfc,
+ 0xc3, 0x80, 0x97, 0x0e, 0x7a, 0x36, 0x31, 0xad,
+ 0x43, 0x3a, 0x9f, 0xdb, 0x5b, 0x70, 0x29, 0x10,
+ 0xf3, 0x1a, 0x7a, 0x6e, 0x13, 0x7d, 0x64, 0x36,
+ 0x95, 0x15, 0x80, 0x15, 0xf5, 0x94, 0xbb, 0xc3,
+ 0xfa, 0x72, 0x7e, 0x93, 0x68, 0xb2, 0x55, 0xaf,
+ 0xff, 0x27, 0xeb, 0xa3, 0x0c, 0x27, 0x3a, 0xd1,
+ 0x00, 0xff, 0x97, 0xe6, 0xff, 0x96, 0x29, 0xce,
+ 0xd9, 0xba, 0x4d, 0xe4, 0xc2, 0x69, 0x81, 0x04,
+ 0x6a, 0x0c, 0x89, 0xbf, 0x0e, 0x22, 0xb9, 0x0c,
+ 0x77, 0x7e, 0xf5, 0x46, 0xc5, 0x53, 0xe3, 0x16,
+ 0xc4, 0x0c, 0x72, 0xfa, 0x56, 0x9f, 0x2e, 0xf5,
+ 0xab, 0xa0, 0xeb, 0xa1, 0x8f, 0xce, 0xf0, 0x6b,
+ 0x10, 0xbd, 0x59, 0x7e, 0x54, 0x1c, 0x6e, 0xd3,
+ 0x2f, 0x80, 0x4e, 0x9d, 0xf3, 0x47, 0xb2, 0xac,
+ 0x42, 0x70, 0xac, 0xa8, 0x8d, 0x4c, 0xba, 0x8f,
+ 0x1a, 0x07, 0x68, 0xbe, 0x3c, 0xd9, 0x74, 0x61,
+ 0x74, 0x34, 0xcc, 0x7a, 0x63, 0x74, 0xd0, 0x09,
+ 0x21, 0xed, 0x2a, 0x93, 0x0a, 0x74, 0xab, 0xac,
+ 0xeb, 0xa9, 0xd9, 0xe6, 0x22, 0xa9, 0x1c, 0x24,
+ 0x23, 0xd4, 0x87, 0x88, 0x78, 0x86, 0x35, 0xb2,
+ 0xc6, 0x98, 0x2e, 0x0b, 0xa2, 0x07, 0xac, 0x87,
+ 0x01, 0xfa, 0xa3, 0x54, 0xa6, 0x09, 0xb0, 0x2f,
+ 0xe1, 0x57, 0x3d, 0x61, 0x6b, 0x2d, 0x82, 0x07,
+ 0x2e, 0x6e, 0x14, 0x0d, 0x23, 0xa6, 0x14, 0x56,
+ 0xc9, 0x3f, 0x65, 0x0d, 0x4f, 0x07, 0xac, 0x22,
+ 0xd7, 0xc9, 0x29, 0xc6, 0x9b, 0x85, 0x55, 0x2f,
+ 0xa4, 0x02, 0xfa, 0x2c, 0x3a, 0xea, 0xde, 0xb4,
+ 0x89, 0x93, 0xc6, 0xa2, 0x4a, 0x13, 0x07, 0x57,
+ 0x07, 0xb1, 0x6d, 0x7d, 0x80, 0x6c, 0x51, 0x9d,
+ 0xec, 0x91, 0xdf, 0xbc, 0xcb, 0x3b, 0x17, 0xad,
+ 0xcf, 0x64, 0x46, 0x6b, 0xf8, 0x79, 0x73, 0x05,
+ 0x1e, 0x9e, 0x75, 0x6c, 0xa0, 0x3c, 0x64, 0x12,
+ 0x1f, 0x3e, 0x09, 0x36, 0x2e, 0xe9, 0x4c, 0xc2,
+ 0x29, 0x3c, 0xf2, 0x21, 0x24, 0x89, 0x98, 0x79,
+ 0xa2, 0x12, 0x33, 0x22, 0x8f, 0x7f, 0x3a, 0x34,
+ 0x1b, 0x3a, 0x69, 0x70, 0x40, 0x50, 0x02, 0x56,
+ 0xb0, 0x68, 0xed, 0x4d, 0x36, 0x40, 0x87, 0xd5,
+ 0x2d, 0xe9, 0x74, 0x41, 0x35, 0xd0, 0x56, 0x45,
+ 0xb7, 0x59, 0xe1, 0x0c, 0x0b, 0x73, 0x9e, 0xb7,
+ 0x59, 0x1a, 0xd0, 0xbe, 0x7e, 0xca, 0x24, 0x12,
+ 0x94, 0x67, 0x5a, 0x28, 0xe0, 0x29, 0x50, 0x0e,
+ 0xca, 0x1b, 0x8a, 0xcd, 0x56, 0xe8, 0xa1, 0xb9,
+ 0x5c, 0xb0, 0x9a, 0x36, 0x0e, 0xf9, 0x5e, 0x4f,
+ 0x6b, 0xde, 0x03, 0x18, 0x77, 0x41, 0x98, 0x0f,
+ 0x6e, 0x03, 0x74, 0x8f, 0xd6, 0x38, 0x3c, 0xdc,
+ 0xe9, 0xc0, 0x5c, 0x92, 0x48, 0xa8, 0x46, 0x29,
+ 0x1c, 0xab, 0x76, 0x55, 0x21, 0x56, 0x10, 0x16,
+ 0x14, 0x8b, 0x80, 0x3b, 0xc8, 0x15, 0xf0, 0xb5,
+ 0x3b, 0xfe, 0xb5, 0x56, 0x8b, 0x45, 0x73, 0xf4,
+ 0x23, 0xf0, 0x68, 0xdd, 0x4e, 0x27, 0xfc, 0xac,
+ 0xf5, 0x81, 0x05, 0xd8, 0x89, 0x24, 0xba, 0xb9,
+ 0xcf, 0xd6, 0x06, 0xb4, 0xfd, 0x12, 0x00, 0xca,
+ 0x18, 0x44, 0xb4, 0x90, 0xcf, 0xc8, 0xb0, 0x6d,
+ 0xcb, 0x72, 0xa3, 0xcd, 0x2e, 0x54, 0x56, 0x86,
+ 0x4b, 0xd3, 0x3a, 0x96, 0x23, 0x4c, 0xd1, 0xf9,
+ 0x1c, 0xa9, 0x9c, 0x37, 0xe4, 0x04, 0x04, 0x72,
+ 0x7f, 0x71, 0xdf, 0xfd, 0x47, 0x86, 0x9b, 0x37,
+ 0x69, 0x1c, 0xc9, 0xa9, 0x51, 0x13, 0xd7, 0xcf,
+ 0xc5, 0xc3, 0x08, 0x9b, 0x3b, 0x94, 0xed, 0xfd,
+ 0x06, 0x75, 0xb7, 0x39, 0x86, 0x98, 0x6d, 0x84,
+ 0x38, 0x45, 0x39, 0xd1, 0x97, 0xef, 0x1f, 0x2e,
+ 0x50, 0xb5, 0xf2, 0xe0, 0x72, 0xfd, 0x72, 0xd8,
+ 0xf9, 0x83, 0xa6, 0x16, 0x83, 0xbf, 0x87, 0x12,
+ 0x2c, 0x47, 0x82, 0xac, 0x59, 0x68, 0x61, 0xe6,
+ 0xa1, 0x00, 0xc2, 0x5a, 0x4b, 0xf0, 0xac, 0x79,
+ 0x33, 0x42, 0x8b, 0x9b, 0x81, 0x9e, 0x44, 0xd5,
+ 0x21, 0x94, 0xf8, 0xbd, 0xb6, 0xe0, 0xe8, 0x80,
+ 0x87, 0x4d, 0x76, 0xad, 0x08, 0x40, 0xb4, 0x4c,
+ 0x8a, 0x32, 0x58, 0xed, 0x7c, 0x46, 0xb5, 0x54,
+ 0xa8, 0x30, 0xf5, 0xe8, 0x98, 0xed, 0xf9, 0x36,
+ 0x8c, 0x21, 0x9f, 0x1f, 0xc4, 0x50, 0x4c, 0xe8,
+ 0x99, 0xfb, 0x15, 0xb5, 0x60, 0xaa, 0xde, 0xec,
+ 0xfa, 0x1b, 0x40, 0xd5, 0x7f, 0xda, 0xed, 0xef,
+ 0xc6, 0xe0, 0x1b, 0xf1, 0x80, 0x38, 0x00, 0xe7,
+ 0x44, 0x2d, 0x89, 0xa0, 0x12, 0x9d, 0x26, 0xbb,
+ 0x33, 0x6e, 0xdd, 0xd1, 0xb3, 0xb5, 0x8f, 0x39,
+ 0x8e, 0xc3, 0x1f, 0x68, 0x37, 0xb6, 0x09, 0x55,
+ 0x35, 0x3d, 0x60, 0xfa, 0x71, 0x1a, 0x3f, 0x77,
+ 0xe5, 0xcc, 0xd0, 0x56, 0x9c, 0x73, 0x06, 0xcd,
+ 0xf9, 0xab, 0x4e, 0xb8, 0x99, 0x2a, 0xdc, 0x5e,
+ 0xe7, 0x83, 0xe5, 0x35, 0x34, 0x9f, 0xc8, 0x30,
+ 0x37, 0xb4, 0x01, 0xc2, 0xb3, 0xc4, 0x1a, 0x7f,
+ 0x01, 0x1f, 0x3a, 0xbf, 0x39, 0x83, 0xad, 0xc2,
+ 0x9e, 0x4d, 0xae, 0x0f, 0x46, 0x0e, 0x2e, 0x89,
+ 0xe8, 0xdb, 0x4d, 0x3f, 0x2c, 0xb0, 0x62, 0x1e,
+ 0x8b, 0xda, 0x21, 0x2d, 0xff, 0x7d, 0x26, 0xa4,
+ 0x83, 0x8b, 0xa0, 0x46, 0xdb, 0x56, 0x91, 0xbe,
+ 0x00, 0x4c, 0xc5, 0x31, 0x46, 0xf5, 0x68, 0x42,
+ 0x91, 0x69, 0xe6, 0xf3, 0x84, 0xce, 0x20, 0xb1,
+ 0xfd, 0xbf, 0x58, 0x9e, 0xf9, 0x30, 0x5c, 0xf5,
+ 0xc7, 0xdf, 0xe1, 0x20, 0x9f, 0x3c, 0xdd, 0x25,
+ 0xd8, 0xf8, 0xb2, 0x59, 0x54, 0x25, 0x20, 0x9d,
+ 0x38, 0xf1, 0xbe, 0x0e, 0x5a, 0x30, 0xd4, 0x44,
+ 0x3d, 0xb5, 0x75, 0xae, 0xb0, 0xbb, 0x1a, 0x8b,
+ 0x4c, 0xe6, 0x05, 0x1c, 0xa7, 0x47, 0x01, 0xb2,
+ 0x45, 0x5c, 0x39, 0x77, 0xc7, 0x80, 0x3b, 0xc6,
+ 0xe7, 0x3e, 0xe7, 0xd0, 0x10, 0x96, 0x81, 0x1b,
+ 0x67, 0xda, 0xf7, 0x87, 0xf4, 0x49, 0xd0, 0xe2,
+ 0x21, 0x33, 0x9f, 0xdf, 0x56, 0x68, 0x03, 0x69,
+ 0xa7, 0x35, 0x30, 0x0f, 0xfb, 0x68, 0x91, 0xe2,
+ 0x20, 0x85, 0x90, 0x56, 0x73, 0x3c, 0x1a, 0xa6,
+ 0xae, 0x71, 0x84, 0xe5, 0x73, 0x8a, 0x3a, 0x30,
+ 0x1d, 0xee, 0x96, 0x25, 0xa4, 0xa6, 0xde, 0x69,
+ 0x7b, 0xfb, 0xf4, 0x7f, 0xc6, 0xea, 0x65, 0x29,
+ 0x4a, 0xce, 0xf9, 0xb5, 0x23, 0x85, 0x16, 0x29,
+ 0xcd, 0x7c, 0xf1, 0x95, 0xaf, 0x5e, 0xb9, 0xbf,
+ 0xb0, 0x22, 0x92, 0xfe, 0x9e, 0xca, 0x16, 0x52,
+ 0x04, 0x77, 0x37, 0x78, 0x3d, 0xed, 0x9c, 0x28,
+ 0x0b, 0xaa, 0x04, 0x9f, 0xe2, 0x2c, 0x5d, 0xfc,
+ 0x5c, 0xde, 0x39, 0x57, 0x75, 0x1c, 0x0e, 0x10,
+ 0x26, 0x9a, 0xf2, 0x40, 0x92, 0xcd, 0x10, 0x96,
+ 0xcc, 0x5d, 0x84, 0x11, 0xae, 0x05, 0x21, 0x5b,
+ 0x36, 0xd0, 0x51, 0x40, 0x06, 0x8d, 0x47, 0xb1,
+ 0xcc, 0x82, 0xde, 0xf6, 0x14, 0x24, 0x9b, 0xc4,
+ 0xbf, 0x4f, 0x8d, 0x53, 0x48, 0x0b, 0xee, 0x14,
+ 0x6f, 0x8e, 0x1d, 0x09, 0x74, 0x25, 0xd9, 0x28,
+ 0xe0, 0x1f, 0x5d, 0x24, 0x34, 0x06, 0x94, 0x65,
+ 0xd4, 0x93, 0x1b, 0xcd, 0x36, 0xbc, 0x9e, 0xc5,
+ 0x37, 0x57, 0x52, 0xda, 0xcc, 0x72, 0x58, 0x5b,
+ 0x5c, 0x7a, 0x99, 0x08, 0xe5, 0x28, 0x44, 0x1a,
+ 0xff, 0x8e, 0xad, 0xc9, 0x0c, 0x53, 0x64, 0xcc,
+ 0xcc, 0xc5, 0x9f, 0x83, 0x1e, 0x32, 0x26, 0x53,
+ 0xbb, 0x7e, 0xf1, 0xab, 0x73, 0xfb, 0x47, 0x7d,
+ 0x7a, 0xb7, 0x8e, 0x10, 0xbc, 0x3b, 0x39, 0x9a,
+ 0x7f, 0x9a, 0x2c, 0x01, 0xa4, 0x9e, 0x70, 0xac,
+ 0x4d, 0x15, 0x00, 0x78, 0x67, 0xfc, 0xca, 0x2a,
+ 0xf9, 0x40, 0xbc, 0xbb, 0x12, 0x55, 0x35, 0xa3,
+ 0xce, 0x17, 0x72, 0xfe, 0xfd, 0x37, 0x58, 0xdb,
+ 0x8c, 0x4f, 0xe9, 0x46, 0x67, 0x7d, 0xe8, 0x10,
+ 0x83, 0x86, 0xd8, 0x46, 0xf6, 0x73, 0x28, 0xdd,
+ 0xbd, 0x35, 0xfc, 0xbc, 0x92, 0x19, 0x51, 0x24,
+ 0xbe, 0x0c, 0x82, 0xb3, 0xaa, 0x91, 0xa3, 0x2b,
+ 0xd6, 0x62, 0xa6, 0x6e, 0xe5, 0xdc, 0x37, 0xfb,
+ 0x29, 0x93, 0x60, 0xbc, 0x4f, 0x7e, 0x4c, 0x89,
+ 0xa1, 0x58, 0xed, 0x77, 0xef, 0x1e, 0x0f, 0x54,
+ 0x4a, 0x8b, 0x36, 0x22, 0x29, 0x8a, 0x30, 0xe3,
+ 0x26, 0x2c, 0x9e, 0x13, 0x01, 0x5e, 0x53, 0x44,
+ 0xe4, 0xe3, 0x95, 0xa4, 0xc1, 0x9b, 0xe5, 0x26,
+ 0x9b, 0x97, 0x4a, 0x5e, 0xbf, 0x07, 0x3e, 0x49,
+ 0x2e, 0x6d, 0xf2, 0x13, 0xde, 0xf3, 0xbf, 0x44,
+ 0x1e, 0xfc, 0x6b, 0x92, 0x25, 0xe2, 0x84, 0xd4,
+ 0x55, 0x0d, 0x36, 0x6c, 0x03, 0x8b, 0x24, 0x6b,
+ 0x75, 0x8d, 0x15, 0x33, 0xeb, 0xcd, 0x09, 0xaa,
+ 0x27, 0x2c, 0x37, 0x37, 0xd9, 0xea, 0x8b, 0x4b,
+ 0x0b, 0x8b, 0xa2, 0x3b, 0xbe, 0xb5, 0xad, 0xaa,
+ 0x13, 0xda, 0x70, 0x81, 0x8a, 0x1c, 0xe6, 0x38,
+ 0xaf, 0x2a, 0xce, 0x38, 0xc8, 0x14, 0xf0, 0xc7,
+ 0x4a, 0x09, 0x4d, 0xbb, 0x12, 0xca, 0x78, 0xc1,
+ 0x87, 0x8c, 0x76, 0x36, 0xb8, 0x13, 0xd9, 0xe6,
+ 0xe2, 0x8b, 0x95, 0x81, 0x08, 0xf7, 0xa4, 0x7d,
+ 0xae, 0x8d, 0xa9, 0x77, 0x0f, 0x56, 0x96, 0x57,
+ 0x61, 0x76, 0x1a, 0xb3, 0x5a, 0x8f, 0x59, 0xd4,
+ 0xa6, 0xa7, 0xb4, 0x33, 0xc4, 0x4b, 0x46, 0x68,
+ 0xe6, 0xed, 0x0d, 0x5c, 0xe6, 0x96, 0xb2, 0x72,
+ 0x48, 0x3c, 0x89, 0x15, 0xe8, 0x0f, 0xeb, 0x6b,
+ 0x72, 0xdd, 0xcc, 0x01, 0x75, 0xea, 0x0c, 0xf0,
+ 0xe4, 0x82, 0xda, 0x53, 0xb3, 0x0c, 0x41, 0xe4,
+ 0x87, 0x82, 0x7d, 0x88, 0xee, 0x98, 0x03, 0xad,
+ 0xf5, 0x5e, 0xbb, 0x5e, 0x70, 0x98, 0x59, 0x2f,
+ 0xec, 0x79, 0xfe, 0x03, 0xd5, 0x29, 0x85, 0x48,
+ 0x86, 0x1b, 0x4e, 0xe2, 0x02, 0xdb, 0xba, 0xa6,
+ 0x15, 0x87, 0x69, 0x70, 0xbb, 0x69, 0x9f, 0x92,
+ 0xfc, 0x56, 0xc0, 0x35, 0xfa, 0xbf, 0xee, 0xa3,
+ 0x34, 0x7e, 0xa6, 0xa0, 0x89, 0xf1, 0x38, 0x99,
+ 0x59, 0xb0, 0x5d, 0x1c, 0x1e, 0x7c, 0x2b, 0x35,
+ 0x14, 0xfa, 0xd0, 0x91, 0xe8, 0xd4, 0xed, 0x4c,
+ 0x4c, 0x84, 0x8b, 0xe1, 0x34, 0xa7, 0xdd, 0x0c,
+ 0x34, 0xde, 0xc2, 0xae, 0x1c, 0x05, 0xf4, 0x80,
+ 0xe0, 0xf8, 0x80, 0x95, 0x21, 0x0c, 0x17, 0x22,
+ 0xc6, 0xd7, 0xee, 0x00, 0x83, 0x5e, 0xf9, 0x0a,
+ 0x1c, 0x5c, 0x91, 0xdc, 0x21, 0x67, 0x68, 0x9e,
+ 0x70, 0xac, 0x37, 0x13, 0xd2, 0x49, 0x1a, 0x71,
+ 0x63, 0xc3, 0x0f, 0x38, 0x7d, 0x5f, 0x1d, 0xe1,
+ 0xb0, 0x9a, 0x77, 0x14, 0x0f, 0x14, 0x2e, 0xd5,
+ 0x65, 0x55, 0x36, 0xae, 0xf6, 0x96, 0xa4, 0x85,
+ 0x30, 0x0b, 0x24, 0x87, 0x40, 0x4d, 0x74, 0xb7,
+ 0xcb, 0x04, 0xa5, 0x14, 0xfa, 0x9c, 0xb6, 0x9a,
+ 0x11, 0xe0, 0xac, 0xb0, 0x13, 0x32, 0x32, 0x33,
+ 0x3e, 0xb0, 0x95, 0xac, 0x64, 0xac, 0x59, 0xab,
+ 0x96, 0xea, 0x1e, 0x2f, 0x3c, 0xcc, 0xed, 0x54,
+ 0x1f, 0x40, 0xb9, 0xa4, 0xd7, 0xe3, 0x0b, 0xef,
+ 0x04, 0xcb, 0xaa, 0x03, 0x2b, 0x02, 0x20, 0x8e,
+ 0x7e, 0x3e, 0xbf, 0x66, 0x09, 0x31, 0x18, 0x9f,
+ 0x4b, 0x77, 0x27, 0x51, 0xb2, 0xc9, 0xf1, 0xe4,
+ 0xf1, 0xaf, 0xaf, 0xd4, 0x87, 0x05, 0xed, 0x8d,
+ 0x60, 0x72, 0x36, 0x9e, 0x05, 0xc3, 0x3e, 0xcf,
+ 0xa5, 0x23, 0x8b, 0xb7, 0x7e, 0xcd, 0xdb, 0x2c,
+ 0xde, 0xbc, 0xeb, 0x67, 0x6e, 0x2c, 0x59, 0x4d,
+ 0x7f, 0x4a, 0xd8, 0x4e, 0x69, 0xff, 0xea, 0xb4,
+ 0x00, 0xc6, 0x2b, 0x31, 0x26, 0x9e, 0x35, 0x7a,
+ 0xc5, 0x86, 0x02, 0x98, 0xdb, 0xf7, 0xc5, 0x96,
+ 0xd2, 0x2e, 0x2a, 0xc5, 0x04, 0xc0, 0x9c, 0xb3,
+ 0x07, 0x86, 0x77, 0x7c, 0x7f, 0x82, 0x97, 0x87,
+ 0x64, 0xf9, 0xb5, 0x70, 0x39, 0x3c, 0x39, 0x2b,
+ 0xfe, 0xa7, 0x24, 0xdd, 0x5f, 0xf0, 0x25, 0xe0,
+ 0x74, 0x69, 0x35, 0x22, 0x9a, 0xaf, 0xa4, 0x80,
+ 0x77, 0x75, 0x7f, 0x5e, 0xbd, 0xbf, 0xb9, 0x06,
+ 0x0a, 0x68, 0xd1, 0x2e, 0x8b, 0xc8, 0xa2, 0x76,
+ 0x68, 0xa5, 0x94, 0xb7, 0xda, 0x41, 0xd1, 0xa4,
+ 0xfe, 0x86, 0xe4, 0x86, 0xb6, 0xfc, 0x70, 0x81,
+ 0x37, 0x10, 0x7b, 0x9b, 0xf2, 0x07, 0x33, 0x60,
+ 0x56, 0x74, 0xbf, 0xc4, 0x66, 0x16, 0xe5, 0xe3,
+ 0xed, 0x13, 0x72, 0x2b, 0x01, 0x04, 0x13, 0x74,
+ 0x22, 0xe9, 0xd3, 0x14, 0xd5, 0xd9, 0xa1, 0x66,
+ 0xb9, 0xb7, 0x0d, 0x30, 0x09, 0xa8, 0xf6, 0xf7,
+ 0xe8, 0xa8, 0xe8, 0x8b, 0x1e, 0x61, 0xa9, 0xdd,
+ 0x11, 0x55, 0xb2, 0x48, 0xd1, 0xb3, 0xa4, 0x97,
+ 0xab, 0xe9, 0x43, 0x0b, 0x46, 0x10, 0xd0, 0xac,
+ 0x88, 0xe4, 0xcd, 0xa3, 0x67, 0x45, 0xbb, 0xc8,
+ 0x5e, 0x23, 0x2a, 0x09, 0xf5, 0x6f, 0x55, 0x22,
+ 0xc2, 0x7a, 0x23, 0xc3, 0x36, 0x28, 0x52, 0xa9,
+ 0xe9, 0x59, 0xca, 0x04, 0x9c, 0xf7, 0x36, 0x49,
+ 0x6b, 0xef, 0x07, 0xd0, 0x0c, 0xf3, 0xba, 0x28,
+ 0x24, 0x3f, 0x19, 0xdc, 0xd3, 0x84, 0xba, 0xbf,
+ 0x6b, 0x73, 0xef, 0x0b, 0x4d, 0xfe, 0x80, 0x43,
+ 0xbe, 0x5b, 0x6c, 0xf6, 0x8e, 0x94, 0x04, 0x7d,
+ 0x49, 0x72, 0xa1, 0x83, 0x27, 0x7e, 0x20, 0x20,
+ 0xcf, 0xb1, 0x04, 0x87, 0xd2, 0x6d, 0x01, 0x14,
+ 0xa5, 0x17, 0x31, 0x61, 0x4e, 0xf7, 0xf3, 0xde,
+ 0x42, 0x98, 0xa4, 0x9a, 0x3b, 0xa6, 0xd1, 0xfe,
+ 0x47, 0x84, 0xf9, 0xbf, 0x44, 0x95, 0xcf, 0xa1,
+ 0x3c, 0xa4, 0x1a, 0x42, 0x96, 0x0b, 0x6d, 0x94,
+ 0x70, 0xb4, 0xbc, 0xc8, 0x4b, 0x4b, 0x23, 0xd4,
+ 0x95, 0xe2, 0x1e, 0x70, 0x1c, 0xe7, 0x15, 0xf2,
+ 0xc8, 0x17, 0x01, 0xa0, 0x10, 0x03, 0xfe, 0x03,
+ 0x80, 0xb3, 0xda, 0x43, 0x6b, 0x13, 0xab, 0x3a,
+ 0xb6, 0x27, 0x94, 0x52, 0xfc, 0x51, 0xe1, 0x04,
+ 0x18, 0xff, 0xd4, 0x62, 0xd4, 0x62, 0x8f, 0x04,
+ 0xa0, 0x41, 0x10, 0xa3, 0x3e, 0x1f, 0xb1, 0x5c,
+ 0x9d, 0xb2, 0x6f, 0x1e, 0x8f, 0x76, 0x8d, 0xbd,
+ 0xff, 0x7d, 0xc5, 0x48, 0xee, 0xef, 0x6d, 0x82,
+ 0xc1, 0x6a, 0xcc, 0xa8, 0xbd, 0x05, 0x7e, 0x7c,
+ 0x1f, 0x95, 0x39, 0xde, 0xa8, 0x19, 0x47, 0x45,
+ 0xd7, 0x4a, 0x43, 0x52, 0x3e, 0x1b, 0x86, 0xee,
+ 0x2f, 0x1e, 0x7e, 0x3c, 0xf1, 0x27, 0xe9, 0x35,
+ 0x00, 0x6b, 0xf8, 0x56, 0x1f, 0xae, 0x18, 0xe3,
+ 0x40, 0x1f, 0x7c, 0x95, 0x83, 0x55, 0xe7, 0x78,
+ 0x98, 0x86, 0x8a, 0x96, 0xb8, 0x87, 0x88, 0x04,
+ 0x9f, 0x4d, 0x62, 0x40, 0xc7, 0xcf, 0xfa, 0x90,
+ 0xdf, 0xeb, 0x60, 0xbe, 0xdc, 0x99, 0xdf, 0xae,
+ 0x4b, 0x96, 0xfc, 0xd6, 0xaf, 0x8c, 0xcb, 0x1b,
+ 0x38, 0xbc, 0xa3, 0x48, 0xce, 0xd3, 0xa9, 0xd7,
+ 0xec, 0x1d, 0xbc, 0x22, 0xd9, 0x34, 0xdf, 0xcb,
+ 0x62, 0x95, 0xe2, 0x32, 0x7d, 0xd3, 0x01, 0x61,
+ 0x46, 0x9f, 0x2e, 0x26, 0x4b, 0x79, 0xf1, 0x39,
+ 0xf6, 0x22, 0xad, 0xcf, 0xb1, 0x5a, 0x57, 0xf1,
+ 0xca, 0x95, 0xc7, 0x20, 0xab, 0x1a, 0xad, 0xf4,
+ 0xdd, 0x96, 0x0b, 0xb1, 0xae, 0xb6, 0x45, 0xad,
+ 0x26, 0x2a, 0xbd, 0x17, 0x5e, 0x27, 0x12, 0x6f,
+ 0x43, 0x43, 0x0a, 0x84, 0x68, 0xb0, 0x11, 0x74,
+ 0xe3, 0xbe, 0xb2, 0x2c, 0xb2, 0xa2, 0xf4, 0xcf,
+ 0xd4, 0x0d, 0xd0, 0x21, 0x84, 0x56, 0xc5, 0xbf,
+ 0xf0, 0x76, 0xb4, 0x44, 0x29, 0xf4, 0x25, 0x5e,
+ 0x9b, 0x31, 0x56, 0x7a, 0xb9, 0xe2, 0x6b, 0x6c,
+ 0x7c, 0x7e, 0x03, 0xb6, 0x23, 0xe2, 0xc9, 0xb6,
+ 0xca, 0xbc, 0xbb, 0x0c, 0x07, 0x4c, 0x2a, 0xea,
+ 0x0d, 0xb9, 0x55, 0x4f, 0x68, 0xc0, 0x58, 0x2a,
+ 0xcd, 0xe6, 0xb8, 0x17, 0x6d, 0x1f, 0xb3, 0x31,
+ 0x28, 0xd3, 0x20, 0x47, 0x54, 0x85, 0x64, 0x13,
+ 0xfc, 0x99, 0x61, 0x36, 0xc1, 0xb2, 0x9c, 0x68,
+ 0x4e, 0x5d, 0xdc, 0x0f, 0xdb, 0x68, 0xa9, 0xa9,
+ 0xc3, 0xbf, 0xd3, 0xbc, 0x03, 0x7a, 0x6e, 0x6c,
+ 0x3b, 0xa6, 0xf7, 0xc0, 0xb1, 0x64, 0xe3, 0x12,
+ 0x6d, 0x0c, 0x1f, 0x9e, 0x74, 0x1c, 0xab, 0x15,
+ 0x0f, 0x4c, 0xbd, 0xfa, 0x0b, 0x39, 0x9c, 0x9c,
+ 0xb0, 0x50, 0x78, 0x03, 0x8b, 0x25, 0xfb, 0x66,
+ 0xdd, 0x50, 0xe7, 0x0a, 0xba, 0x2f, 0x2d, 0x93,
+ 0x1e, 0xa5, 0xaf, 0xd8, 0xcc, 0x9c, 0x13, 0x64,
+ 0xef, 0xae, 0x23, 0xdc, 0x44, 0xc8, 0x7e, 0x17,
+ 0x93, 0x37, 0x8d, 0xcb, 0xc7, 0x8c, 0x30, 0x0a,
+ 0x3a, 0x08, 0x35, 0x5b, 0xb3, 0xc9, 0x45, 0x17,
+ 0xfb, 0x80, 0x27, 0x7c, 0xc7, 0xc2, 0x57, 0x7c,
+ 0xac, 0x73, 0xc8, 0x5f, 0xd0, 0xcc, 0xe9, 0x5c,
+ 0x55, 0xe2, 0x63, 0x25, 0xaf, 0x89, 0x96, 0x81,
+ 0x5b, 0x4d, 0x0d, 0xa6, 0x65, 0x2f, 0xd4, 0x3a,
+ 0x9b, 0xb7, 0x09, 0xad, 0x47, 0xe3, 0xf7, 0x15,
+ 0x41, 0xc0, 0xcf, 0xec, 0x9d, 0xd4, 0xac, 0x57,
+ 0xfd, 0xd6, 0x91, 0xbe, 0x30, 0x52, 0x2b, 0x86,
+ 0xdf, 0x54, 0x4b, 0x95, 0x45, 0x76, 0x87, 0x3d,
+ 0x56, 0x47, 0x2b, 0xfe, 0x6b, 0x6d, 0x9a, 0x3e,
+ 0x72, 0xfb, 0x22, 0x8b, 0x3d, 0x92, 0x1d, 0x62,
+ 0x77, 0x6e, 0x91, 0xd4, 0x37, 0x5c, 0x97, 0x0e,
+ 0x07, 0x4c, 0x5c, 0x74, 0xdb, 0x05, 0x5e, 0x9f,
+ 0xe1, 0xf0, 0x1a, 0x24, 0x67, 0x8f, 0x0f, 0x20,
+ 0xe9, 0x3e, 0x45, 0x5a, 0x6a, 0xb5, 0xb9, 0xee,
+ 0xf4, 0x1d, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0x0a, 0x0e, 0x11, 0x19, 0x1b, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0x54, 0xa5, 0x5c, 0x8e, 0x72, 0x11, 0xf9, 0x67,
+ 0x89, 0x19, 0x57, 0x17, 0xa9, 0x03, 0x7b, 0xc6,
+ 0xd9, 0xaf, 0x99, 0x14, 0xe8, 0x8f, 0xd4, 0xa7,
+ 0xcd, 0x17, 0x8c, 0x67, 0x5f, 0x45, 0x62, 0xc1,
+ 0xdd, 0xd0, 0x6d, 0x7d, 0xd0, 0xfd, 0x74, 0x98,
+ 0x35, 0x93, 0x95, 0x9c, 0xfb, 0x2f, 0x0c, 0xb9,
+ 0xcf, 0x05, 0x28, 0x47, 0x22, 0xe8, 0x2b, 0x17,
+ 0xfa, 0x42, 0x60, 0x67, 0x13, 0x2f, 0x9b, 0x03,
+ 0xce, 0xce, 0x62, 0x41, 0x12, 0xbe, 0x8d, 0xbb,
+ 0xf9, 0x53, 0x25, 0xca, 0x10, 0xf8, 0x73, 0xa6,
+ 0x52, 0x32, 0x7a, 0x06, 0xb2, 0x4d, 0x58, 0x0c,
+ 0x68, 0xfc, 0x02, 0xf1, 0x93, 0xb4, 0xca, 0x45,
+ 0xab, 0xf5, 0xc4, 0xab, 0x93, 0x6c, 0x1b, 0x24,
+ 0xd0, 0xeb, 0xe6, 0xb3, 0x90, 0x5e, 0xf4, 0xe7,
+ 0x60, 0xdd, 0x90, 0x1e, 0xdf, 0x77, 0xf5, 0x8a,
+ 0x4a, 0xf5, 0xc8, 0x7a, 0xc0, 0x04, 0xc4, 0x07,
+ 0x76, 0xae, 0x14, 0x47, 0xe1, 0xec, 0x4f, 0x76,
+ 0xa5, 0xae, 0x9a, 0xac, 0x73, 0x83, 0x4a, 0xbb,
+ 0xa8, 0x58, 0x1a, 0x54, 0xd1, 0xdf, 0xaf, 0x5b,
+ 0xd1, 0x21, 0x81, 0x4d, 0xa1, 0x40, 0xd1, 0xe3,
+ 0xd2, 0x35, 0x5d, 0x9b, 0x1f, 0x37, 0x77, 0xd6,
+ 0xa4, 0xb6, 0x1a, 0x9a, 0xd4, 0xdc, 0xe9, 0x00,
+ 0x47, 0xf5, 0x69, 0x27, 0xd4, 0x0b, 0x22, 0x4d,
+ 0x8e, 0x2f, 0xfb, 0x7f, 0xdd, 0xe9, 0xe9, 0xb3,
+ 0xde, 0xae, 0x7d, 0x8a, 0x8b, 0xe1, 0xc8, 0x1f,
+ 0x50, 0x21, 0xb7, 0x32, 0x7a, 0x5a, 0x08, 0x02,
+ 0xaf, 0x07, 0x98, 0xb3, 0xd9, 0xc5, 0x96, 0xab,
+ 0xfe, 0xff, 0xa9, 0xb8, 0x54, 0x02, 0x42, 0x68,
+ 0x68, 0xba, 0x89, 0x3a, 0x12, 0x31, 0xd3, 0x95,
+ 0xf6, 0x7a, 0xae, 0xda, 0x0d, 0x08, 0x0d, 0xb3,
+ 0x4e, 0xde, 0x9c, 0x3b, 0x6d, 0x1e, 0x94, 0x2a,
+ 0x7a, 0x46, 0x8e, 0x26, 0xe4, 0xde, 0xd1, 0x81,
+ 0xc6, 0x81, 0x4e, 0x38, 0x77, 0x36, 0xf7, 0x38,
+ 0xed, 0xf6, 0xd0, 0x44, 0x1c, 0x6d, 0x1a, 0xa0,
+ 0xc4, 0xf5, 0x21, 0x71, 0xbd, 0xf3, 0xa2, 0x9b,
+ 0xa9, 0x13, 0x8c, 0x8f, 0x60, 0x99, 0x2d, 0x86,
+ 0xc1, 0xe0, 0xf4, 0x4d, 0x75, 0x6e, 0x14, 0xe1,
+ 0x5f, 0x12, 0xb9, 0xe6, 0xd2, 0xda, 0xa9, 0x4e,
+ 0xc7, 0x97, 0x86, 0xd2, 0x77, 0x32, 0x67, 0xe1,
+ 0x8f, 0x23, 0xb8, 0xd3, 0x70, 0x8f, 0x87, 0x2b,
+ 0xa2, 0xf1, 0x31, 0x1d, 0x50, 0x09, 0xf3, 0xa3,
+ 0x0f, 0x19, 0x9f, 0xde, 0xe7, 0xfb, 0x2e, 0x4a,
+ 0x9c, 0x63, 0x4c, 0x56, 0x98, 0x87, 0x0a, 0x05,
+ 0x00, 0xfb, 0xe7, 0x22, 0x75, 0x42, 0xca, 0xd6,
+ 0x45, 0x35, 0x77, 0x80, 0x22, 0xf2, 0x75, 0x18,
+ 0xee, 0xb1, 0x36, 0xdc, 0xbe, 0x0a, 0x11, 0x11,
+ 0xae, 0x94, 0xaa, 0xec, 0x56, 0xbb, 0x72, 0x47,
+ 0xcb, 0xc5, 0xa2, 0x8e, 0x3d, 0x3f, 0x34, 0x83,
+ 0x55, 0xc1, 0x39, 0x40, 0xb7, 0xb0, 0x37, 0x21,
+ 0xe1, 0xc4, 0x0c, 0x80, 0x98, 0xeb, 0x3d, 0x9b,
+ 0xc3, 0x74, 0x8d, 0x9f, 0x58, 0x9d, 0x03, 0xab,
+ 0x3d, 0x6c, 0xe0, 0xf6, 0x13, 0x31, 0x6c, 0x00,
+ 0x65, 0xda, 0x8e, 0x84, 0x14, 0x4f, 0x44, 0x75,
+ 0xa8, 0x1d, 0xb9, 0xdd, 0xe6, 0x39, 0xc9, 0x36,
+ 0x89, 0x19, 0x5a, 0xfd, 0x87, 0x00, 0xad, 0xa7,
+ 0x0b, 0xb9, 0x22, 0x6f, 0x35, 0x88, 0xf5, 0x7a,
+ 0x9b, 0x69, 0x6e, 0xf4, 0x5b, 0xc8, 0x6f, 0xdc,
+ 0x13, 0xa1, 0x28, 0xf8, 0x1d, 0x7c, 0x8a, 0x7a,
+ 0xe6, 0x04, 0xe8, 0x0b, 0xf5, 0x10, 0x90, 0x48,
+ 0xc7, 0xe6, 0x20, 0xc1, 0x2c, 0xab, 0x46, 0x9d,
+ 0x1d, 0x54, 0x6e, 0x37, 0x89, 0xd2, 0x25, 0x18,
+ 0x3f, 0x82, 0x5c, 0x68, 0x31, 0x0b, 0x39, 0xe1,
+ 0xfc, 0xfb, 0x72, 0x50, 0x4c, 0xc5, 0xca, 0x45,
+ 0x7b, 0x7c, 0x87, 0x2f, 0x42, 0xdc, 0xd6, 0xdc,
+ 0x00, 0x45, 0x06, 0x44, 0xec, 0xda, 0x55, 0x32,
+ 0x03, 0xf9, 0x1d, 0x9c, 0x51, 0x28, 0x49, 0x42,
+ 0xc7, 0x98, 0x74, 0xe2, 0x33, 0x14, 0xcc, 0x32,
+ 0x4d, 0xfa, 0x0a, 0x99, 0xa8, 0x9a, 0x74, 0xfb,
+ 0xee, 0x3e, 0x22, 0xda, 0x5f, 0x0e, 0x85, 0x63,
+ 0x46, 0xd4, 0x44, 0x31, 0x3d, 0x66, 0x99, 0x89,
+ 0xb0, 0xed, 0xd7, 0x9d, 0x9f, 0x23, 0x96, 0xc4,
+ 0x9a, 0xed, 0x5b, 0x13, 0x6a, 0x3b, 0xea, 0x23,
+ 0xbc, 0x8c, 0x1b, 0x31, 0xd2, 0x64, 0xcc, 0x99,
+ 0x2e, 0x36, 0x1b, 0x1a, 0xed, 0xbe, 0xc0, 0x1d,
+ 0xa4, 0x77, 0xfc, 0x9b, 0x19, 0x24, 0x62, 0x29,
+ 0xbd, 0xaa, 0xb2, 0x7f, 0xd0, 0x47, 0xb8, 0x00,
+ 0x77, 0xe5, 0xda, 0x50, 0x7c, 0x89, 0x1d, 0xf9,
+ 0x65, 0xec, 0xa5, 0x94, 0xe9, 0x3e, 0x00, 0x2a,
+ 0x3b, 0x1e, 0x91, 0x8b, 0x54, 0x0f, 0x67, 0xad,
+ 0x30, 0xdf, 0x67, 0xc8, 0x86, 0xb1, 0x80, 0x52,
+ 0xbd, 0x14, 0x0c, 0x36, 0x73, 0xf7, 0xe0, 0x25,
+ 0x97, 0x62, 0xbc, 0x28, 0xa1, 0x62, 0xbe, 0xb1,
+ 0xde, 0x65, 0x14, 0xb7, 0x16, 0xc6, 0x5b, 0xad,
+ 0xb2, 0xae, 0x90, 0x93, 0x4f, 0xd1, 0x3f, 0x5d,
+ 0xae, 0x7b, 0x6c, 0x1e, 0x0e, 0x77, 0x20, 0x0f,
+ 0xfb, 0xd3, 0x2b, 0x98, 0x14, 0x22, 0x7f, 0x25,
+ 0x51, 0x07, 0x97, 0xc4, 0x7e, 0x9a, 0x14, 0x8f,
+ 0x99, 0x51, 0xb8, 0x9d, 0xf4, 0xbe, 0xb0, 0x3e,
+ 0x86, 0x6f, 0x38, 0x19, 0x50, 0xc6, 0xe6, 0xa8,
+ 0xa4, 0xd8, 0x67, 0xc7, 0x1f, 0x19, 0xca, 0xc8,
+ 0x3c, 0xe9, 0xa2, 0x5e, 0xde, 0x0c, 0x0c, 0xa1,
+ 0x97, 0xc0, 0xa6, 0xc5, 0x35, 0x5a, 0xf7, 0x9b,
+ 0xb7, 0x1b, 0xec, 0x0c, 0x22, 0x74, 0xbb, 0xf1,
+ 0x78, 0xa9, 0x1c, 0xbf, 0xf4, 0xa2, 0xed, 0xe9,
+ 0x56, 0x74, 0x12, 0x77, 0xe6, 0x13, 0xbd, 0xa6,
+ 0x28, 0xd3, 0x94, 0x83, 0x4f, 0x2f, 0x09, 0xec,
+ 0x21, 0xee, 0xd2, 0x43, 0xb8, 0x27, 0x21, 0xd7,
+ 0x9d, 0x26, 0xc6, 0xca, 0xf0, 0x21, 0x33, 0xb1,
+ 0x66, 0x80, 0x62, 0xaf, 0x29, 0x97, 0x0b, 0xb9,
+ 0x09, 0xdf, 0x53, 0x72, 0x48, 0x57, 0x3f, 0xe4,
+ 0xbf, 0x85, 0xef, 0x17, 0xc8, 0x21, 0x15, 0x0a,
+ 0x6e, 0x29, 0xae, 0xbe, 0x43, 0x6a, 0xd1, 0x1f,
+ 0xff, 0xca, 0xbf, 0x24, 0x34, 0x03, 0x14, 0xdf,
+ 0x6f, 0xc0, 0x00, 0xd4, 0x33, 0x41, 0x2f, 0xf5,
+ 0x38, 0x2a, 0x07, 0x64, 0x47, 0x59, 0xe0, 0x45,
+ 0x79, 0xbb, 0x25, 0x3f, 0xff, 0x21, 0x21, 0xa1,
+ 0xe1, 0x06, 0xa9, 0x1d, 0x7e, 0xf9, 0xde, 0x17,
+ 0x29, 0x82, 0x7b, 0x13, 0x71, 0xa7, 0xaa, 0xb9,
+ 0x58, 0x3e, 0x5a, 0x1b, 0xcd, 0x80, 0xc0, 0x02,
+ 0xd2, 0x8a, 0x3b, 0xd7, 0xe0, 0x8b, 0x44, 0x19,
+ 0x01, 0x41, 0xf7, 0x11, 0xd4, 0x66, 0xfc, 0x01,
+ 0x10, 0x0c, 0x74, 0x20, 0x38, 0xe8, 0x00, 0x37,
+ 0xf5, 0xd4, 0xa1, 0xa3, 0x4e, 0xd4, 0xbd, 0x0d,
+ 0xaa, 0x7f, 0x54, 0x1c, 0xfa, 0x33, 0x66, 0xd6,
+ 0xc2, 0x8d, 0x2e, 0xeb, 0x52, 0x6b, 0x65, 0x10,
+ 0x8a, 0xab, 0x15, 0xa5, 0xf2, 0x4c, 0x73, 0xf3,
+ 0x00, 0x99, 0x49, 0xee, 0x5a, 0xe7, 0xab, 0x52,
+ 0x0f, 0x0a, 0xed, 0xfb, 0x93, 0x45, 0xc9, 0xf9,
+ 0x36, 0x5c, 0x5b, 0x6a, 0x1f, 0x1c, 0x46, 0xde,
+ 0x0b, 0x6f, 0x40, 0xd6, 0x1c, 0xec, 0x11, 0x47,
+ 0x63, 0xe5, 0xbd, 0x47, 0xda, 0xe8, 0x3d, 0xff,
+ 0x8b, 0x8d, 0x3d, 0x0c, 0x0f, 0x3a, 0x9c, 0xef,
+ 0xec, 0x49, 0xed, 0x90, 0x1a, 0x21, 0x3f, 0xc6,
+ 0xab, 0x13, 0x87, 0x96, 0x24, 0x8c, 0x57, 0x60,
+ 0x81, 0x02, 0x56, 0xc8, 0xae, 0x95, 0x9b, 0x5d,
+ 0x6f, 0x96, 0xf0, 0x26, 0x0d, 0x32, 0x97, 0x9f,
+ 0xdb, 0xf8, 0x20, 0x8f, 0x32, 0xfc, 0x31, 0x90,
+ 0x2d, 0x0a, 0x38, 0xfc, 0x4f, 0x46, 0xfa, 0xf3,
+ 0x6e, 0x60, 0x9f, 0xb1, 0x68, 0x78, 0xac, 0xc8,
+ 0x53, 0x07, 0x1e, 0xc6, 0xe7, 0x31, 0xa3, 0x92,
+ 0xb1, 0x29, 0x7b, 0x7a, 0x33, 0x07, 0x78, 0xec,
+ 0x51, 0x2b, 0xf5, 0xf3, 0x4d, 0x09, 0x18, 0x21,
+ 0x91, 0x3c, 0x85, 0x03, 0xe0, 0x0f, 0x76, 0xb8,
+ 0x6f, 0xe4, 0x81, 0x94, 0xc6, 0x32, 0x55, 0xb8,
+ 0xbf, 0x5c, 0xfe, 0x57, 0x4e, 0xf1, 0x5c, 0x2d,
+ 0x6e, 0x6d, 0x22, 0xa8, 0xa9, 0x55, 0x49, 0x7d,
+ 0xda, 0x89, 0x7b, 0xc5, 0xfc, 0xf4, 0xae, 0xec,
+ 0x91, 0x69, 0x92, 0xaf, 0x26, 0x1c, 0x64, 0x88,
+ 0x23, 0xeb, 0x2f, 0x2a, 0x5f, 0x0b, 0xd1, 0x51,
+ 0x5f, 0x4a, 0x8f, 0x2f, 0x22, 0x3b, 0x79, 0x2a,
+ 0xf6, 0x00, 0xd5, 0xf5, 0x4c, 0xbf, 0x3f, 0xd3,
+ 0x94, 0xeb, 0x1e, 0x86, 0xed, 0x45, 0x93, 0x51,
+ 0xf7, 0x42, 0x2d, 0x89, 0x40, 0x4a, 0x30, 0xf7,
+ 0x32, 0x3f, 0xa6, 0x6f, 0x7a, 0xa8, 0xd2, 0xdf,
+ 0x79, 0x3b, 0x76, 0x19, 0x36, 0x1a, 0xf3, 0x3f,
+ 0x39, 0x14, 0x4a, 0xc3, 0x64, 0xfb, 0x51, 0x3f,
+ 0x8c, 0xc6, 0x15, 0xee, 0x41, 0x3b, 0xd4, 0xc1,
+ 0x3d, 0x0f, 0x0c, 0x74, 0xd6, 0x3f, 0xac, 0x12,
+ 0x9c, 0xf6, 0x44, 0x2e, 0x5f, 0x54, 0xd2, 0xdb,
+ 0xc8, 0xb1, 0x24, 0xbf, 0xe3, 0x9b, 0x00, 0x64,
+ 0x4e, 0x34, 0x37, 0xde, 0x7d, 0x43, 0xbf, 0xb4,
+ 0x85, 0x5d, 0x50, 0x55, 0xcc, 0x8f, 0xf8, 0x9a,
+ 0xf2, 0x97, 0xd7, 0xb8, 0xc1, 0xd4, 0x8f, 0xd8,
+ 0xf6, 0xe0, 0x79, 0x5f, 0xc1, 0xc1, 0xf4, 0x5e,
+ 0xd7, 0x74, 0xe9, 0x13, 0xd8, 0x4d, 0x44, 0x9e,
+ 0x4a, 0xe1, 0x29, 0x67, 0xe2, 0x38, 0x27, 0xbf,
+ 0xf1, 0x4c, 0x34, 0x7b, 0xf7, 0xcd, 0xe3, 0x6c,
+ 0xd2, 0x49, 0x18, 0x09, 0x4a, 0x9b, 0x56, 0xd6,
+ 0xd0, 0xb8, 0x0a, 0x35, 0xa0, 0x6b, 0xee, 0x71,
+ 0x92, 0xd6, 0x87, 0x4b, 0x54, 0x0b, 0x35, 0x8b,
+ 0x86, 0x82, 0x17, 0x11, 0xa8, 0x3d, 0x58, 0x04,
+ 0x48, 0xc4, 0xf7, 0x4b, 0x96, 0x97, 0x0e, 0x68,
+ 0xdb, 0x54, 0x30, 0xea, 0x39, 0x58, 0x3f, 0x64,
+ 0xfd, 0x35, 0x7a, 0x07, 0x48, 0xbf, 0xdd, 0xad,
+ 0x99, 0x72, 0xef, 0x90, 0x93, 0x58, 0xb4, 0xe8,
+ 0x6a, 0x72, 0xcf, 0x7a, 0x03, 0xf0, 0xfa, 0x74,
+ 0xc5, 0xc3, 0xc8, 0xe4, 0x08, 0xba, 0xed, 0x1f,
+ 0xb4, 0xd4, 0x00, 0x12, 0x18, 0xaf, 0x37, 0x78,
+ 0x45, 0x8c, 0x8e, 0xae, 0x1c, 0x6e, 0x90, 0xf5,
+ 0x13, 0x8c, 0xcc, 0x3d, 0x40, 0x63, 0xa3, 0xc1,
+ 0x8f, 0xe1, 0xc7, 0x47, 0xd7, 0x9c, 0xde, 0x14,
+ 0x1b, 0x8f, 0xca, 0x0b, 0xd7, 0xd3, 0x9a, 0x05,
+ 0x81, 0x37, 0x61, 0xaa, 0x37, 0xee, 0x67, 0xbf,
+ 0xef, 0x17, 0x01, 0x99, 0x6f, 0xc4, 0xd8, 0x9b,
+ 0x92, 0x76, 0x9b, 0x23, 0xe9, 0xba, 0x6d, 0xa2,
+ 0xfc, 0x4b, 0xe4, 0x3b, 0xa8, 0x64, 0xb7, 0x45,
+ 0x49, 0xe5, 0x3b, 0x20, 0x77, 0x80, 0x08, 0x94,
+ 0x9e, 0x70, 0xc8, 0x1b, 0x7a, 0x21, 0x59, 0x11,
+ 0x20, 0x43, 0x80, 0xf5, 0xcf, 0x0d, 0x70, 0x63,
+ 0x92, 0x4e, 0x4e, 0xd5, 0x58, 0xb1, 0x97, 0xaa,
+ 0x2e, 0x26, 0xbb, 0xb3, 0x15, 0x02, 0x87, 0x53,
+ 0xd1, 0xd9, 0x3d, 0x95, 0xa1, 0xed, 0x3a, 0x67,
+ 0xe4, 0xa0, 0x53, 0xeb, 0x6b, 0x7d, 0x8d, 0x80,
+ 0x77, 0xb7, 0x38, 0xd3, 0x96, 0xd5, 0x97, 0x7c,
+ 0xd6, 0x33, 0x15, 0x78, 0xc5, 0x38, 0x27, 0x8b,
+ 0xbd, 0x4a, 0x5d, 0xdc, 0x31, 0xbb, 0x2d, 0xe6,
+ 0x24, 0x6a, 0xcb, 0x33, 0x4c, 0x58, 0xb2, 0x52,
+ 0xe9, 0xc1, 0xb6, 0x21, 0xca, 0xc1, 0x07, 0xcf,
+ 0x62, 0xdd, 0xc4, 0x5d, 0x7c, 0x6d, 0xce, 0xbb,
+ 0xd6, 0xcc, 0x89, 0x6a, 0x4e, 0x2c, 0xe0, 0xcb,
+ 0x9e, 0xc9, 0x9c, 0xd5, 0x14, 0xd3, 0xc5, 0xb4,
+ 0xbc, 0x48, 0x33, 0x6e, 0x10, 0x00, 0xeb, 0x1a,
+ 0x91, 0xea, 0x9e, 0xe0, 0x37, 0xf9, 0xc3, 0x9a,
+ 0x4d, 0x1a, 0x5c, 0x99, 0xd1, 0x6c, 0x3e, 0x38,
+ 0x40, 0x61, 0x8e, 0x66, 0x04, 0x09, 0xc3, 0x66,
+ 0x13, 0xb7, 0x1b, 0xa4, 0x4a, 0x73, 0xb9, 0x11,
+ 0x53, 0x2e, 0x19, 0xaa, 0x41, 0xa4, 0xf4, 0x89,
+ 0x22, 0xc0, 0x0c, 0xec, 0x8f, 0xfd, 0x6a, 0xe3,
+ 0x6c, 0x03, 0xe6, 0x01, 0xb5, 0xcd, 0x92, 0x89,
+ 0x8a, 0x6f, 0xca, 0xf2, 0x28, 0x03, 0xac, 0xd1,
+ 0x00, 0xe4, 0x98, 0x56, 0x4a, 0xd5, 0x60, 0x78,
+ 0x6d, 0x00, 0xaa, 0x87, 0xbc, 0x42, 0x49, 0xd7,
+ 0xfe, 0x0c, 0xa4, 0xa6, 0xaa, 0x96, 0x7e, 0xe3,
+ 0xd5, 0x71, 0xb9, 0x2b, 0xb7, 0x10, 0x7d, 0xf7,
+ 0x34, 0xd4, 0x2f, 0x2b, 0xb3, 0x6d, 0xe2, 0x2a,
+ 0xaa, 0xb6, 0xba, 0x42, 0x94, 0xf4, 0xfa, 0xc3,
+ 0xa7, 0x55, 0x2c, 0xcd, 0xba, 0xc7, 0xfe, 0x12,
+ 0x6e, 0x16, 0x29, 0xa7, 0x04, 0x8f, 0xca, 0x84,
+ 0xee, 0xce, 0xa4, 0xaa, 0x62, 0x10, 0xb5, 0x6d,
+ 0x23, 0x61, 0x78, 0xc9, 0xca, 0x8e, 0x23, 0xbb,
+ 0x7d, 0xd8, 0x57, 0x32, 0xe6, 0xd8, 0x4b, 0x87,
+ 0xa6, 0x70, 0xac, 0x53, 0x6f, 0x82, 0xad, 0x7d,
+ 0x89, 0xc6, 0x51, 0xc9, 0x6f, 0xf2, 0x70, 0x07,
+ 0x4d, 0xa8, 0x16, 0xfd, 0x31, 0x7f, 0x0e, 0x3d,
+ 0x62, 0x03, 0x13, 0xaf, 0x1e, 0x61, 0x2a, 0xdf,
+ 0xc0, 0x8b, 0x68, 0xe1, 0x74, 0xd3, 0xeb, 0x3b,
+ 0x51, 0x36, 0x27, 0x90, 0x9e, 0x64, 0x29, 0x66,
+ 0x01, 0xae, 0x4d, 0x07, 0xca, 0xcd, 0xa1, 0x54,
+ 0x31, 0x0b, 0x32, 0x68, 0x67, 0x4e, 0xac, 0xd1,
+ 0x05, 0x35, 0x4e, 0x1b, 0x9c, 0xd9, 0xd0, 0xb1,
+ 0x45, 0x15, 0x3f, 0xde, 0xa9, 0xa3, 0xd1, 0xa3,
+ 0x81, 0x64, 0xab, 0x2b, 0x15, 0x6a, 0xb8, 0x5b,
+ 0x77, 0xd2, 0x96, 0xe8, 0x1c, 0x1a, 0x8b, 0xda,
+ 0x94, 0x29, 0x4c, 0x73, 0x30, 0x7a, 0x12, 0xdc,
+ 0xfd, 0xd4, 0xb4, 0x4c, 0x0b, 0xcb, 0x9f, 0x21,
+ 0x28, 0x86, 0xb7, 0x7c, 0xa0, 0xf6, 0x81, 0xe3,
+ 0x4d, 0x70, 0x9e, 0xb0, 0xbf, 0xa7, 0x55, 0x23,
+ 0x99, 0xc2, 0x29, 0x74, 0x9e, 0x4f, 0x9f, 0x12,
+ 0xeb, 0x0c, 0xa6, 0xd7, 0x60, 0x04, 0x99, 0xa3,
+ 0x82, 0x9a, 0xcc, 0x0d, 0xe5, 0x9a, 0xd3, 0xec,
+ 0x84, 0x1d, 0x7a, 0x6c, 0x76, 0xf8, 0x05, 0x3d,
+ 0x94, 0x70, 0xbb, 0xae, 0x87, 0x2d, 0x25, 0xba,
+ 0xe5, 0x38, 0x60, 0x85, 0x2c, 0x83, 0x22, 0xa0,
+ 0xf7, 0xec, 0x56, 0xa9, 0x39, 0x48, 0x77, 0x42,
+ 0x65, 0xba, 0x57, 0xf6, 0xa9, 0x99, 0x7b, 0xb8,
+ 0xa0, 0x03, 0xca, 0x5c, 0x06, 0x6c, 0xae, 0x8a,
+ 0xa1, 0xbc, 0x9a, 0xb4, 0x15, 0x35, 0xf1, 0x8f,
+ 0x6a, 0x76, 0x1d, 0xe7, 0x09, 0xfa, 0xa7, 0x42,
+ 0x94, 0x5e, 0x4e, 0xc6, 0xd2, 0x24, 0xd2, 0xa9,
+ 0xe3, 0x16, 0x7f, 0xd6, 0xbf, 0x06, 0x98, 0x0f,
+ 0x8b, 0x61, 0xd8, 0xd1, 0x6d, 0xa9, 0xc3, 0xb7,
+ 0x54, 0x34, 0x26, 0x7a, 0x6d, 0xa2, 0x04, 0x7e,
+ 0xe8, 0x98, 0x47, 0x4a, 0x4b, 0x15, 0xc0, 0xaa,
+ 0x24, 0x8c, 0xbd, 0xfd, 0x6a, 0x53, 0x06, 0x2a,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0x54, 0xa5, 0x5c, 0x8e, 0x72, 0x11, 0xf9, 0x67,
+ 0x89, 0x19, 0x57, 0x17, 0xa9, 0x03, 0x7b, 0xc6,
+ 0xd9, 0xaf, 0x99, 0x14, 0xe8, 0x8f, 0xd4, 0xa7,
+ 0xcd, 0x17, 0x8c, 0x67, 0x5f, 0x45, 0x62, 0xc1,
+ 0x20, 0x33, 0x34, 0xb9, 0x48, 0xa3, 0x32, 0x85,
+ 0xba, 0x6b, 0x26, 0x26, 0xa0, 0x07, 0xb4, 0x1e,
+ 0x66, 0xf1, 0xfb, 0xcc, 0xa4, 0xea, 0x15, 0xd3,
+ 0x42, 0xcb, 0x1f, 0x14, 0xe3, 0x80, 0x8c, 0x75,
+ 0x55, 0xa0, 0x4b, 0x1c, 0xe1, 0x10, 0x1a, 0xfa,
+ 0x6f, 0xb5, 0x53, 0x18, 0xaf, 0xfa, 0x5f, 0x20,
+ 0x9c, 0x1a, 0x6c, 0x62, 0x2c, 0xf5, 0xd4, 0x14,
+ 0x1a, 0x4e, 0xb1, 0xd2, 0x52, 0x56, 0x6a, 0x95,
+ 0x8f, 0x1a, 0x2f, 0x60, 0x2d, 0x7f, 0xce, 0x0f,
+ 0x2d, 0x0c, 0x3e, 0xa0, 0xfb, 0xeb, 0x38, 0xda,
+ 0xe5, 0xe0, 0xb2, 0x3a, 0xf3, 0x36, 0x4e, 0x02,
+ 0xe9, 0xdb, 0xbe, 0x38, 0x19, 0xe0, 0xfb, 0xbb,
+ 0x38, 0x34, 0x85, 0x76, 0x52, 0x52, 0x86, 0x47,
+ 0x34, 0x18, 0x47, 0x01, 0x46, 0x10, 0x23, 0x12,
+ 0x04, 0x02, 0x22, 0x22, 0x21, 0x47, 0x38, 0x66,
+ 0x30, 0x04, 0x50, 0x05, 0x53, 0x21, 0x17, 0x30,
+ 0x16, 0x77, 0x86, 0x60, 0x17, 0x75, 0x34, 0x10,
+ 0x04, 0x43, 0x61, 0x00, 0x86, 0x30, 0x33, 0x78,
+ 0x83, 0x84, 0x20, 0x70, 0x60, 0x44, 0x63, 0x30,
+ 0x11, 0x25, 0x23, 0x28, 0x47, 0x40, 0x57, 0x17,
+ 0x54, 0x38, 0x74, 0x24, 0x11, 0x50, 0x60, 0x41,
+ 0x37, 0x63, 0x73, 0x27, 0x15, 0x47, 0x51, 0x57,
+ 0x87, 0x03, 0x11, 0x51, 0x40, 0x54, 0x36, 0x50,
+ 0x80, 0x64, 0x87, 0x62, 0x72, 0x54, 0x83, 0x53,
+ 0x23, 0x88, 0x57, 0x47, 0x87, 0x77, 0x10, 0x60,
+ 0x23, 0x88, 0x18, 0x38, 0x08, 0x45, 0x03, 0x75,
+ 0x88, 0x84, 0x43, 0x63, 0x52, 0x16, 0x63, 0x61,
+ 0x82, 0x74, 0x52, 0x14, 0x14, 0x77, 0x87, 0x21,
+ 0x62, 0x44, 0x74, 0x65, 0x44, 0x44, 0x00, 0x00,
+ 0x34, 0x63, 0x54, 0x21, 0x64, 0x82, 0x23, 0x81,
+ 0x17, 0x87, 0x17, 0x02, 0x34, 0x81, 0x20, 0x50,
+ 0x35, 0x51, 0x50, 0x61, 0x33, 0x77, 0x13, 0x88,
+ 0x74, 0x27, 0x18, 0x58, 0x73, 0x20, 0x05, 0x06,
+ 0x30, 0x20, 0x28, 0x10, 0x54, 0x31, 0x72, 0x62,
+ 0x54, 0x85, 0x24, 0x60, 0x06, 0x84, 0x21, 0x34,
+ 0x63, 0x45, 0x31, 0x26, 0x30, 0x33, 0x37, 0x57,
+ 0x33, 0x12, 0x66, 0x85, 0x31, 0x18, 0x72, 0x53,
+ 0x25, 0x22, 0x58, 0x88, 0x26, 0x76, 0x33, 0x54,
+ 0x46, 0x04, 0x38, 0x73, 0x58, 0x12, 0x32, 0x44,
+ 0x75, 0x57, 0x52, 0x30, 0x13, 0x80, 0x20, 0x85,
+ 0x64, 0x10, 0x65, 0x06, 0x83, 0x07, 0x30, 0x40,
+ 0x52, 0x15, 0x63, 0x25, 0x08, 0x84, 0x50, 0x71,
+ 0x75, 0x51, 0x47, 0x22, 0x65, 0x31, 0x77, 0x41,
+ 0x55, 0x20, 0x71, 0x84, 0x20, 0x47, 0x28, 0x80,
+ 0x65, 0x33, 0x73, 0x17, 0x70, 0x30, 0x24, 0x78,
+ 0x22, 0x84, 0x32, 0x08, 0x83, 0x68, 0x67, 0x43,
+ 0x01, 0x28, 0x20, 0x13, 0x84, 0x34, 0x02, 0x15,
+ 0x05, 0x00, 0x25, 0x42, 0x38, 0x28, 0x41, 0x82,
+ 0x27, 0x41, 0x07, 0x24, 0x13, 0x56, 0x08, 0x12,
+ 0x51, 0x27, 0x05, 0x67, 0x73, 0x53, 0x38, 0x78,
+ 0x14, 0x75, 0x05, 0x82, 0x26, 0x75, 0x28, 0x86,
+ 0x34, 0x85, 0x41, 0x63, 0x88, 0x52, 0x43, 0x45,
+ 0x54, 0x33, 0x54, 0x10, 0x76, 0x47, 0x18, 0x88,
+ 0x12, 0x30, 0x71, 0x41, 0x08, 0x46, 0x08, 0x60,
+ 0x46, 0x87, 0x55, 0x23, 0x76, 0x54, 0x35, 0x65,
+ 0x35, 0x23, 0x28, 0x67, 0x84, 0x23, 0x10, 0x54,
+ 0x25, 0x03, 0x43, 0x63, 0x35, 0x73, 0x28, 0x42,
+ 0x27, 0x00, 0x68, 0x37, 0x62, 0x58, 0x01, 0x32,
+ 0x75, 0x23, 0x81, 0x74, 0x34, 0x08, 0x77, 0x03,
+ 0x72, 0x43, 0x76, 0x83, 0x61, 0x18, 0x58, 0x15,
+ 0x44, 0x38, 0x61, 0x27, 0x35, 0x57, 0x80, 0x80,
+ 0x60, 0x63, 0x81, 0x46, 0x35, 0x44, 0x07, 0x30,
+ 0x76, 0x30, 0x52, 0x40, 0x58, 0x84, 0x13, 0x55,
+ 0x78, 0x34, 0x82, 0x43, 0x38, 0x88, 0x43, 0x58,
+ 0x25, 0x13, 0x07, 0x70, 0x42, 0x10, 0x65, 0x86,
+ 0x31, 0x54, 0x02, 0x76, 0x34, 0x03, 0x71, 0x74,
+ 0x72, 0x67, 0x85, 0x85, 0x22, 0x74, 0x56, 0x50,
+ 0x34, 0x58, 0x35, 0x45, 0x16, 0x48, 0x40, 0x31,
+ 0x71, 0x62, 0x27, 0x67, 0x76, 0x35, 0x83, 0x23,
+ 0x45, 0x05, 0x26, 0x35, 0x02, 0x53, 0x73, 0x64,
+ 0x56, 0x73, 0x60, 0x06, 0x70, 0x58, 0x06, 0x65,
+ 0x24, 0x72, 0x22, 0x52, 0x84, 0x18, 0x55, 0x36,
+ 0x15, 0x11, 0x77, 0x70, 0x47, 0x35, 0x61, 0x26,
+ 0x01, 0x86, 0x76, 0x32, 0x06, 0x31, 0x23, 0x77,
+ 0x62, 0x84, 0x16, 0x64, 0x32, 0x14, 0x17, 0x12,
+ 0x47, 0x28, 0x41, 0x38, 0x05, 0x73, 0x57, 0x66,
+ 0x10, 0x64, 0x61, 0x70, 0x25, 0x31, 0x26, 0x22,
+ 0x74, 0x56, 0x48, 0x76, 0x13, 0x41, 0x61, 0x81,
+ 0x22, 0x16, 0x66, 0x26, 0x51, 0x35, 0x55, 0x83,
+ 0x32, 0x85, 0x06, 0x50, 0x77, 0x15, 0x32, 0x80,
+ 0x41, 0x51, 0x17, 0x80, 0x05, 0x46, 0x84, 0x64,
+ 0x00, 0x05, 0x07, 0x33, 0x83, 0x26, 0x77, 0x88,
+ 0x02, 0x56, 0x56, 0x86, 0x33, 0x47, 0x36, 0x12,
+ 0x47, 0x44, 0x15, 0x16, 0x04, 0x16, 0x28, 0x46,
+ 0x58, 0x07, 0x25, 0x21, 0x41, 0x12, 0x73, 0x86,
+ 0x55, 0x16, 0x40, 0x11, 0x32, 0x37, 0x84, 0x40,
+ 0x87, 0x36, 0x08, 0x54, 0x35, 0x28, 0x26, 0x75,
+ 0x88, 0x87, 0x40, 0x61, 0x41, 0x21, 0x14, 0x44,
+ 0x24, 0x05, 0x81, 0x47, 0x58, 0x07, 0x05, 0x87,
+ 0x50, 0x77, 0x46, 0x08, 0x80, 0x51, 0x75, 0x43,
+ 0x57, 0x58, 0x52, 0x41, 0x46, 0x48, 0x27, 0x81,
+ 0x07, 0x21, 0x18, 0x37, 0x28, 0x45, 0x41, 0x35,
+ 0x21, 0x56, 0x15, 0x37, 0x00, 0x33, 0x08, 0x86,
+ 0x57, 0x08, 0x81, 0x03, 0x40, 0x56, 0x31, 0x61,
+ 0x44, 0x28, 0x56, 0x57, 0x05, 0x86, 0x45, 0x64,
+ 0x42, 0x66, 0x28, 0x73, 0x84, 0x16, 0x24, 0x07,
+ 0x04, 0x67, 0x24, 0x24, 0x11, 0x36, 0x68, 0x63,
+ 0x87, 0x83, 0x64, 0x48, 0x14, 0x87, 0x65, 0x21,
+ 0x58, 0x18, 0x65, 0x61, 0x03, 0x34, 0x12, 0x55,
+ 0x61, 0x80, 0x61, 0x63, 0x05, 0x56, 0x43, 0x61,
+ 0x30, 0x71, 0x06, 0x20, 0x46, 0x02, 0x12, 0x60,
+ 0x86, 0x34, 0x32, 0x78, 0x88, 0x26, 0x43, 0x36,
+ 0x88, 0x47, 0x53, 0x02, 0x65, 0x75, 0x77, 0x62,
+ 0x67, 0x46, 0x71, 0x14, 0x66, 0x80, 0x10, 0x17,
+ 0x77, 0x78, 0x26, 0x86, 0x86, 0x37, 0x81, 0x27,
+ 0x05, 0x32, 0x15, 0x45, 0x66, 0x46, 0x07, 0x26,
+ 0x84, 0x26, 0x02, 0x51, 0x08, 0x00, 0x27, 0x46,
+ 0x56, 0x35, 0x22, 0x52, 0x87, 0x18, 0x11, 0x06,
+ 0x35, 0x10, 0x76, 0x34, 0x68, 0x16, 0x82, 0x83,
+ 0x83, 0x04, 0x30, 0x40, 0x67, 0x64, 0x60, 0x70,
+ 0x34, 0x50, 0x67, 0x40, 0x07, 0x21, 0x02, 0x25,
+ 0x56, 0x25, 0x62, 0x12, 0x05, 0x26, 0x25, 0x80,
+ 0x35, 0x60, 0x48, 0x35, 0x61, 0x30, 0x34, 0x63,
+ 0x20, 0x54, 0x44, 0x18, 0x28, 0x05, 0x33, 0x31,
+ 0x14, 0x77, 0x33, 0x41, 0x62, 0x07, 0x02, 0x38,
+ 0x80, 0x36, 0x75, 0x28, 0x81, 0x84, 0x74, 0x23,
+ 0x42, 0x73, 0x07, 0x44, 0x57, 0x08, 0x78, 0x07,
+ 0x47, 0x83, 0x60, 0x62, 0x04, 0x67, 0x56, 0x31,
+ 0x03, 0x32, 0x71, 0x43, 0x55, 0x11, 0x86, 0x61,
+ 0x27, 0x36, 0x14, 0x26, 0x83, 0x78, 0x55, 0x57,
+ 0x56, 0x36, 0x36, 0x45, 0x53, 0x77, 0x50, 0x85,
+ 0x68, 0x57, 0x82, 0x43, 0x04, 0x61, 0x50, 0x77,
+ 0x63, 0x01, 0x40, 0x30, 0x64, 0x81, 0x14, 0x33,
+ 0x47, 0x15, 0x37, 0x35, 0x03, 0x18, 0x12, 0x68,
+ 0x62, 0x51, 0x33, 0x87, 0x78, 0x45, 0x26, 0x15,
+ 0x35, 0x35, 0x40, 0x08, 0x66, 0x32, 0x67, 0x05,
+ 0x51, 0x45, 0x71, 0x85, 0x57, 0x74, 0x47, 0x87,
+ 0x26, 0x61, 0x45, 0x58, 0x04, 0x43, 0x43, 0x87,
+ 0x66, 0x64, 0x38, 0x75, 0x24, 0x84, 0x10, 0x24,
+ 0x01, 0x06, 0x71, 0x54, 0x48, 0x64, 0x20, 0x15,
+ 0x41, 0x74, 0x06, 0x01, 0x34, 0x76, 0x51, 0x58,
+ 0x04, 0x50, 0x45, 0x67, 0x72, 0x61, 0x18, 0x03,
+ 0x32, 0x21, 0x13, 0x77, 0x83, 0x23, 0x40, 0x78,
+ 0x34, 0x14, 0x53, 0x30, 0x20, 0x36, 0x11, 0x52,
+ 0x10, 0x53, 0x66, 0x71, 0x14, 0x00, 0x45, 0x17,
+ 0x85, 0x33, 0x60, 0x42, 0x86, 0x61, 0x53, 0x63,
+ 0x13, 0x88, 0x23, 0x11, 0x10, 0x04, 0x76, 0x68,
+ 0x78, 0x40, 0x44, 0x72, 0x82, 0x14, 0x43, 0x44,
+ 0x28, 0x56, 0x58, 0x46, 0x16, 0x01, 0x66, 0x11,
+ 0x02, 0x38, 0x20, 0x24, 0x62, 0x13, 0x65, 0x68,
+ 0x86, 0x06, 0x72, 0x72, 0x30, 0x03, 0x44, 0x43,
+ 0x80, 0x04, 0x81, 0x20, 0x82, 0x00, 0x77, 0x64,
+ 0x41, 0x02, 0x17, 0x45, 0x54, 0x34, 0x65, 0x26,
+ 0x31, 0x00, 0x85, 0x76, 0x38, 0x04, 0x06, 0x52,
+ 0x81, 0x77, 0x75, 0x84, 0x30, 0x46, 0x60, 0x54,
+ 0x27, 0x31, 0x80, 0x72, 0x80, 0x50, 0x76, 0x83,
+ 0x20, 0x50, 0x43, 0x81, 0x65, 0x52, 0x28, 0x01,
+ 0x87, 0x26, 0x47, 0x75, 0x60, 0x54, 0x85, 0x84,
+ 0x07, 0x47, 0x60, 0x20, 0x13, 0x42, 0x42, 0x66,
+ 0x21, 0x78, 0x63, 0x47, 0x65, 0x50, 0x48, 0x38,
+ 0x22, 0x75, 0x63, 0x06, 0x25, 0x63, 0x64, 0x82,
+ 0x25, 0x12, 0x23, 0x53, 0x38, 0x18, 0x52, 0x37,
+ 0x21, 0x87, 0x54, 0x65, 0x31, 0x73, 0x24, 0x68,
+ 0x30, 0x07, 0x72, 0x17, 0x44, 0x18, 0x02, 0x87,
+ 0x02, 0x43, 0x06, 0x06, 0x11, 0x40, 0x51, 0x72,
+ 0x56, 0x77, 0x25, 0x72, 0x66, 0x61, 0x60, 0x45,
+ 0x52, 0x07, 0x70, 0x36, 0x55, 0x43, 0x25, 0x84,
+ 0x63, 0x15, 0x25, 0x24, 0x08, 0x60, 0x74, 0x25,
+ 0x27, 0x67, 0x48, 0x14, 0x43, 0x68, 0x37, 0x12,
+ 0x28, 0x68, 0x71, 0x26, 0x07, 0x43, 0x36, 0x44,
+ 0x32, 0x27, 0x51, 0x62, 0x78, 0x14, 0x55, 0x67,
+ 0x76, 0x75, 0x16, 0x56, 0x83, 0x51, 0x04, 0x55,
+ 0x83, 0x28, 0x58, 0x58, 0x37, 0x50, 0x67, 0x63,
+ 0x32, 0x20, 0x30, 0x81, 0x78, 0x77, 0x05, 0x08,
+ 0x14, 0x35, 0x70, 0x62, 0x67, 0x38, 0x08, 0x04,
+ 0x30, 0x36, 0x65, 0x26, 0x78, 0x37, 0x81, 0x03,
+ 0x50, 0x71, 0x58, 0x14, 0x14, 0x21, 0x65, 0x38,
+ 0x50, 0x85, 0x56, 0x77, 0x37, 0x14, 0x08, 0x52,
+ 0x71, 0x34, 0x83, 0x58, 0x41, 0x87, 0x66, 0x43,
+ 0x33, 0x03, 0x40, 0x63, 0x18, 0x82, 0x61, 0x54,
+ 0x15, 0x24, 0x08, 0x73, 0x80, 0x41, 0x51, 0x18,
+ 0x14, 0x10, 0x73, 0x84, 0x13, 0x25, 0x76, 0x47,
+ 0x32, 0x28, 0x24, 0x01, 0x87, 0x62, 0x35, 0x57,
+ 0x88, 0x20, 0x16, 0x17, 0x55, 0x26, 0x10, 0x46,
+ 0x82, 0x75, 0x45, 0x81, 0x06, 0x27, 0x31, 0x74,
+ 0x76, 0x05, 0x26, 0x88, 0x05, 0x73, 0x02, 0x01,
+ 0x63, 0x71, 0x50, 0x27, 0x22, 0x88, 0x76, 0x10,
+ 0x17, 0x02, 0x36, 0x60, 0x28, 0x61, 0x71, 0x32,
+ 0x11, 0x06, 0x64, 0x61, 0x27, 0x62, 0x54, 0x55,
+ 0x01, 0x50, 0x84, 0x50, 0x73, 0x07, 0x05, 0x06,
+ 0x65, 0x86, 0x51, 0x13, 0x23, 0x27, 0x71, 0x20,
+ 0x04, 0x10, 0x44, 0x44, 0x63, 0x03, 0x71, 0x77,
+ 0x87, 0x75, 0x21, 0x03, 0x60, 0x16, 0x26, 0x03,
+ 0x22, 0x53, 0x63, 0x02, 0x11, 0x25, 0x46, 0x34,
+ 0x18, 0x27, 0x00, 0x24, 0x54, 0x03, 0x36, 0x66,
+ 0x12, 0x83, 0x07, 0x24, 0x52, 0x13, 0x17, 0x58,
+ 0x38, 0x48, 0x60, 0x05, 0x32, 0x26, 0x35, 0x37,
+ 0x22, 0x03, 0x11, 0x64, 0x03, 0x72, 0x81, 0x72,
+ 0x0b, 0xe3, 0x10, 0x90, 0x36, 0xd4, 0xd2, 0x7c,
+ 0xe7, 0xae, 0x8e, 0x58, 0xda, 0xa0, 0x08, 0x93,
+ 0x36, 0x5a, 0x0e, 0x0e, 0x5f, 0x68, 0x04, 0x85,
+ 0xde, 0x41, 0x20, 0x70, 0x89, 0x36, 0x09, 0xaa,
+ 0x4b, 0xfc, 0x94, 0x48, 0x96, 0xc8, 0xb2, 0x03,
+ 0x96, 0xea, 0x12, 0x01, 0x9c, 0xae, 0x7b, 0x68,
+ 0x8f, 0x57, 0x82, 0xdb, 0x61, 0x61, 0xb6, 0x3d,
+ 0x46, 0x83, 0xd9, 0xc7, 0xcc, 0x95, 0x3d, 0xea,
+ 0x2b, 0x1b, 0x25, 0x57, 0x20, 0x69, 0x66, 0x5e,
+ 0x77, 0x62, 0x13, 0x69, 0xee, 0xd2, 0xdd, 0x65,
+ 0xee, 0xd9, 0x0c, 0xeb, 0x34, 0xb2, 0x5c, 0x08,
+ 0xa1, 0xe9, 0x46, 0x9d, 0x74, 0x97, 0xcf, 0xc9,
+ 0xc0, 0x34, 0x68, 0x03, 0xae, 0xa7, 0xf7, 0x71,
+ 0x3a, 0xb9, 0xb1, 0x42, 0x67, 0x1d, 0xf6, 0x53,
+ 0x7f, 0x97, 0x95, 0x10, 0x48, 0xe5, 0xe8, 0xac,
+ 0xe0, 0xb3, 0x4c, 0x59, 0xf2, 0x11, 0xac, 0xb7,
+ 0x23, 0x8c, 0x36, 0xde, 0x6f, 0x73, 0x29, 0x3b,
+ 0x3b, 0xef, 0x26, 0x5a, 0x39, 0xab, 0xa4, 0xb2,
+ 0x8c, 0x9a, 0x96, 0x50, 0x58, 0x03, 0xd9, 0xf6,
+ 0xb0, 0xa4, 0x13, 0x6e, 0xfb, 0xf6, 0x5d, 0xb3,
+ 0xb3, 0xf3, 0xce, 0x3d, 0xfb, 0x65, 0x22, 0xa0,
+ 0xc8, 0x89, 0x65, 0xb3, 0x58, 0xa3, 0x4c, 0xad,
+ 0x07, 0xfc, 0xd6, 0xb2, 0x92, 0xd0, 0xb0, 0x22,
+ 0xeb, 0x18, 0xb6, 0x4b, 0x5e, 0x57, 0x20, 0x5d,
+ 0x70, 0x4b, 0x11, 0x4a, 0x78, 0xa9, 0xbd, 0x14,
+ 0x64, 0xab, 0x2b, 0x82, 0x6c, 0x56, 0x62, 0x07,
+ 0x5c, 0x5b, 0x21, 0x0b, 0xca, 0xe5, 0x43, 0x6f,
+ 0x26, 0xed, 0xc3, 0xc4, 0xea, 0x86, 0x05, 0x32,
+ 0x63, 0xde, 0x23, 0x81, 0xda, 0x78, 0x0b, 0x30,
+ 0x0d, 0x8e, 0x49, 0x33, 0x08, 0x38, 0x19, 0xb6,
+ 0x68, 0x92, 0x7d, 0xef, 0xae, 0x9a, 0xc2, 0x9c,
+ 0x24, 0xe9, 0x36, 0xf3, 0x0f, 0x26, 0xf8, 0x44,
+ 0x52, 0x9a, 0x6c, 0xa1, 0x09, 0xd2, 0xdf, 0x40,
+ 0x68, 0xde, 0x29, 0x5e, 0x08, 0xf7, 0xf5, 0x4e,
+ 0x34, 0xff, 0xdd, 0xbc, 0x5a, 0x5f, 0xc4, 0xf9,
+ 0x3d, 0x0f, 0x82, 0xa9, 0xe2, 0x5a, 0x07, 0x5d,
+ 0xe2, 0xd9, 0x79, 0x7f, 0x86, 0x10, 0x42, 0x5c,
+ 0x8a, 0x00, 0x4e, 0xda, 0xfc, 0x5a, 0x43, 0xf2,
+ 0x9c, 0x5e, 0x9a, 0xab, 0x7a, 0xc3, 0x55, 0xda,
+ 0x4d, 0x74, 0x88, 0x86, 0xe3, 0x65, 0x76, 0x6f,
+ 0xcf, 0x19, 0xb0, 0xc0, 0x6b, 0xbb, 0x2a, 0xee,
+ 0xae, 0x9a, 0x32, 0x5c, 0x8d, 0x76, 0x43, 0x28,
+ 0x31, 0xdf, 0x81, 0x9e, 0xdf, 0xeb, 0xf9, 0xd9,
+ 0x9b, 0x68, 0x0e, 0x37, 0x39, 0xea, 0x7b, 0x9f,
+ 0x8d, 0x73, 0x78, 0x7c, 0x82, 0xc7, 0x07, 0x9e,
+ 0x14, 0x41, 0x3f, 0x77, 0xdc, 0x13, 0x46, 0x40,
+ 0x1e, 0xe9, 0x35, 0xcb, 0x84, 0x85, 0x33, 0x28,
+ 0xcf, 0xb9, 0xd7, 0xe2, 0xff, 0x0c, 0x06, 0x0a,
+ 0xe2, 0x24, 0xb7, 0x16, 0x5c, 0x45, 0x8d, 0x1a,
+ 0x11, 0x83, 0xeb, 0xe2, 0x86, 0x17, 0x6e, 0x58,
+ 0xd1, 0x21, 0x52, 0x92, 0x89, 0x6d, 0x12, 0x62,
+ 0x36, 0xa9, 0xf9, 0xdb, 0x3b, 0xa4, 0xa3, 0xea,
+ 0xa2, 0xa6, 0xa0, 0xb3, 0x04, 0x28, 0x93, 0xce,
+ 0x12, 0x56, 0x1e, 0xfb, 0xb9, 0x2e, 0x80, 0x9f,
+ 0x9b, 0x1f, 0x62, 0x61, 0x35, 0x91, 0x24, 0xd0,
+ 0xd8, 0xb7, 0x59, 0xfe, 0x0c, 0xec, 0x3a, 0x2d,
+ 0xf5, 0x68, 0x42, 0xdd, 0x01, 0x8d, 0x5f, 0xe4,
+ 0x60, 0x07, 0xad, 0x2f, 0x91, 0x42, 0x50, 0x24,
+ 0x65, 0x43, 0x01, 0xa8, 0x90, 0xe1, 0x96, 0x3b,
+ 0x2b, 0x52, 0xb1, 0x5e, 0x4a, 0xe8, 0x6f, 0x8d,
+ 0x7b, 0x53, 0x0c, 0xd7, 0x9d, 0xd5, 0x16, 0xf9,
+ 0xc4, 0xac, 0xf8, 0xe1, 0xcc, 0x1e, 0x20, 0x44,
+ 0x1e, 0xd4, 0x1a, 0xcd, 0x6e, 0x2c, 0xf8, 0x71,
+ 0xae, 0x6c, 0x1e, 0x4f, 0x3c, 0xe3, 0x0d, 0x29,
+ 0xb1, 0x64, 0x5a, 0x94, 0x66, 0x43, 0x8d, 0x13,
+ 0xeb, 0x40, 0x3e, 0x2b, 0x50, 0x39, 0x5f, 0x96,
+ 0xa7, 0xe5, 0x95, 0xdd, 0x48, 0x8d, 0xd7, 0xc1,
+ 0x8e, 0x37, 0x1c, 0xaa, 0xb3, 0xc9, 0xcd, 0x83,
+ 0x7c, 0x95, 0x88, 0x2d, 0x2d, 0xd2, 0xef, 0x44,
+ 0x39, 0xdb, 0x42, 0x97, 0xeb, 0x09, 0x3a, 0xd6,
+ 0xc8, 0x05, 0xe7, 0x47, 0x42, 0x1f, 0x13, 0xc8,
+ 0x1a, 0xed, 0x2d, 0xe4, 0x4d, 0x88, 0x43, 0x9d,
+ 0xb9, 0xdf, 0x77, 0x33, 0xcb, 0x7c, 0xa5, 0x8d,
+ 0xca, 0x38, 0xe9, 0x1c, 0x17, 0x0a, 0x88, 0xd0,
+ 0x4b, 0xf8, 0xf0, 0x38, 0xed, 0xeb, 0x33, 0x85,
+ 0x31, 0x12, 0xd4, 0xb3, 0x13, 0xf9, 0x13, 0x4a,
+ 0x68, 0xf6, 0xd8, 0x16, 0xd8, 0xde, 0x05, 0x9d,
+ 0x06, 0x8a, 0x83, 0x3d, 0x96, 0x7e, 0xcb, 0x60,
+ 0x6a, 0x26, 0xde, 0x0a, 0xcd, 0x6f, 0xb2, 0x95,
+ 0x65, 0x2d, 0xb7, 0xd4, 0xb2, 0x5c, 0x52, 0xc1,
+ 0xa5, 0x63, 0x85, 0xe2, 0x7f, 0xf4, 0x01, 0x28,
+ 0x42, 0xba, 0x1b, 0xdb, 0x30, 0xac, 0xdb, 0x68,
+ 0x2d, 0x1c, 0x48, 0x61, 0x7b, 0x68, 0x2b, 0x6a,
+ 0xae, 0xf7, 0xec, 0x33, 0x72, 0x61, 0x4c, 0xbc,
+ 0x6b, 0xc3, 0xd8, 0x62, 0xba, 0xb5, 0x1d, 0xda,
+ 0x8f, 0xbd, 0x79, 0xc1, 0x63, 0x0b, 0xeb, 0x43,
+ 0xa8, 0xff, 0x1d, 0x6a, 0xd9, 0x4d, 0xaa, 0x1b,
+ 0x73, 0xf6, 0x12, 0xfe, 0x3f, 0xb6, 0xce, 0xcc,
+ 0x0d, 0x88, 0xfe, 0x70, 0xc5, 0xd4, 0x90, 0x97,
+ 0x22, 0xa6, 0xe4, 0x04, 0x8e, 0xfe, 0xa6, 0xf1,
+ 0x52, 0x10, 0x38, 0xae, 0x9f, 0x9e, 0x6e, 0xca,
+ 0x5a, 0x1e, 0x3c, 0x9e, 0xfb, 0x9d, 0x36, 0xe9,
+ 0x85, 0xc9, 0xdf, 0xe3, 0x4b, 0x5a, 0xe2, 0x8c,
+ 0x21, 0x35, 0xdd, 0x25, 0x95, 0xd4, 0x18, 0x8d,
+ 0x88, 0x08, 0xbc, 0x55, 0xd1, 0x02, 0xcf, 0xf1,
+ 0xb0, 0x17, 0x4b, 0x48, 0xc1, 0x5d, 0x02, 0xe7,
+ 0x61, 0x4a, 0xe1, 0x36, 0x80, 0xc3, 0x20, 0x93,
+ 0xfd, 0x6b, 0x28, 0xa0, 0xb8, 0x06, 0x03, 0x3b,
+ 0x29, 0xd3, 0xcb, 0x3a, 0xe6, 0x42, 0xed, 0x00,
+ 0x60, 0x99, 0x4b, 0x8c, 0xc2, 0x32, 0x70, 0x9b,
+ 0x63, 0xc8, 0x96, 0x82, 0x59, 0xdd, 0x20, 0xed,
+ 0x54, 0x35, 0x48, 0xa4, 0x94, 0xc8, 0x93, 0xd6,
+ 0x06, 0xe9, 0xef, 0x34, 0xcd, 0xae, 0x72, 0xd1,
+ 0xb8, 0x15, 0x95, 0x8a, 0xcb, 0x3a, 0x63, 0xfd,
+ 0x53, 0x51, 0xd4, 0x08, 0x31, 0x17, 0x8f, 0x3c,
+ 0x8f, 0x4d, 0x8c, 0x96, 0xc3, 0x0d, 0x89, 0xf6,
+ 0xef, 0xc7, 0x0e, 0xb5, 0x95, 0x4d, 0x4d, 0x63,
+ 0xa7, 0x90, 0xc9, 0xec, 0xf0, 0xe7, 0x80, 0x75,
+ 0x39, 0x1f, 0x45, 0x7b, 0x4d, 0xe3, 0xdb, 0x82,
+ 0x14, 0x5a, 0x19, 0xd4, 0x66, 0x24, 0x82, 0xbc,
+ 0x94, 0xf3, 0xa7, 0xcd, 0x1d, 0x70, 0x90, 0x2d,
+ 0x25, 0x0e, 0x9e, 0x8f, 0xef, 0xe5, 0x71, 0x29,
+ 0xa7, 0xa5, 0x1b, 0xad, 0xde, 0x14, 0x55, 0xb4,
+ 0x62, 0x53, 0x21, 0x42, 0x6e, 0x1f, 0xf1, 0x1f,
+ 0xd8, 0xd5, 0xf1, 0x20, 0x7c, 0xbe, 0x39, 0x63,
+ 0x71, 0x78, 0x65, 0xe4, 0xc7, 0xf7, 0xe3, 0x71,
+ 0xcc, 0x32, 0x58, 0x46, 0xb2, 0x0e, 0x88, 0xe0,
+ 0x5e, 0x07, 0xc0, 0xbd, 0xcd, 0x41, 0x3c, 0x8e,
+ 0x66, 0xe9, 0x92, 0xcb, 0x16, 0x48, 0xe5, 0xf6,
+ 0xc4, 0x00, 0x92, 0xcc, 0xfc, 0xee, 0x8c, 0xb4,
+ 0xbd, 0xb2, 0xed, 0xa5, 0x2c, 0x3c, 0x3e, 0x97,
+ 0xb1, 0x43, 0xe3, 0x5d, 0x97, 0xcd, 0x1c, 0xcb,
+ 0x73, 0xdd, 0x18, 0x76, 0xdf, 0x05, 0x2d, 0xb1,
+ 0x8d, 0xcf, 0xae, 0x1f, 0x3a, 0x10, 0xc0, 0xee,
+ 0xc4, 0x05, 0xbe, 0x67, 0x19, 0x65, 0xe2, 0xff,
+ 0xeb, 0x86, 0xbb, 0x1e, 0x60, 0xf2, 0x0e, 0xaa,
+ 0x9c, 0x88, 0x4f, 0x38, 0xc2, 0xac, 0x08, 0xd8,
+ 0x01, 0x87, 0xd3, 0xb6, 0xb8, 0xef, 0x6f, 0xd8,
+ 0xa0, 0x4a, 0x2f, 0xc4, 0xe5, 0xa5, 0xe7, 0xd9,
+ 0x26, 0x6d, 0x8c, 0x7c, 0x74, 0x8b, 0x59, 0x7e,
+ 0x3a, 0xc0, 0x61, 0x33, 0x1a, 0x98, 0x98, 0xbb,
+ 0x70, 0x0c, 0xd2, 0xf9, 0xac, 0x63, 0xd2, 0xc1,
+ 0x5d, 0xba, 0xeb, 0x65, 0xd0, 0xec, 0x8a, 0x81,
+ 0x85, 0x42, 0x00, 0x8b, 0x9f, 0x49, 0x76, 0xd4,
+ 0x2a, 0xc7, 0x82, 0x3f, 0xfe, 0x9a, 0xcd, 0x06,
+ 0xcb, 0x32, 0x6a, 0xe0, 0x5d, 0xde, 0x35, 0xbe,
+ 0xfb, 0x44, 0xf1, 0x7b, 0x64, 0xe5, 0xcf, 0xc4,
+ 0x4c, 0x64, 0xb7, 0xb1, 0xab, 0x05, 0x49, 0x39,
+ 0xa4, 0xd5, 0xdc, 0x36, 0x34, 0x39, 0x42, 0x36,
+ 0x5e, 0x4d, 0xa2, 0x18, 0x39, 0xd0, 0x38, 0x05,
+ 0xb7, 0x54, 0x0c, 0x52, 0xb0, 0x60, 0xc6, 0xfd,
+ 0x32, 0x80, 0x03, 0x12, 0xa8, 0x10, 0xca, 0x0f,
+ 0x5d, 0xd9, 0x33, 0xc6, 0xad, 0xab, 0xb9, 0x2e,
+ 0x31, 0x02, 0x9b, 0x0c, 0xa0, 0xac, 0x27, 0x3a,
+ 0xed, 0xde, 0x0a, 0x13, 0x94, 0xd7, 0x6f, 0x05,
+ 0x26, 0x23, 0x33, 0x52, 0x6f, 0x14, 0x04, 0x71,
+ 0x31, 0x36, 0x32, 0x6a, 0x19, 0xf6, 0x1e, 0x7a,
+ 0xb5, 0xf0, 0x40, 0x24, 0xb2, 0xd7, 0xfd, 0xdd,
+ 0x0c, 0xf0, 0xe7, 0x4a, 0x30, 0x20, 0x61, 0xdd,
+ 0xf4, 0x1b, 0xf1, 0xc2, 0x31, 0x64, 0x40, 0x29,
+ 0x26, 0x9b, 0x74, 0xea, 0x28, 0xa7, 0x71, 0xfc,
+ 0x42, 0x5b, 0xb3, 0xe5, 0xe0, 0x27, 0xe1, 0xca,
+ 0x1d, 0xef, 0x79, 0xa0, 0x4e, 0x3f, 0x23, 0x31,
+ 0x0f, 0xf7, 0x27, 0xae, 0xe4, 0xe8, 0xc1, 0x72,
+ 0x70, 0x72, 0x1c, 0xa7, 0x16, 0xdd, 0xb3, 0x71,
+ 0xbf, 0xef, 0x3f, 0xe1, 0xb6, 0xd6, 0x21, 0xba,
+ 0x24, 0x7a, 0x38, 0xbd, 0x42, 0x7e, 0xef, 0x91,
+ 0x2b, 0x52, 0x64, 0x1d, 0xde, 0xf7, 0xcd, 0xd5,
+ 0xb2, 0xe8, 0x83, 0xc5, 0x8c, 0xc7, 0x34, 0x05,
+ 0x3c, 0xbe, 0x8f, 0xb0, 0x95, 0x83, 0x78, 0xc9,
+ 0x8d, 0xb1, 0xcd, 0xc3, 0x97, 0x8c, 0x29, 0xcb,
+ 0x18, 0x31, 0x54, 0x93, 0xe3, 0xdf, 0x52, 0x56,
+ 0xdc, 0x4b, 0xbc, 0x44, 0xb5, 0x25, 0x24, 0x80,
+ 0x66, 0x13, 0x3b, 0xd4, 0xca, 0xc1, 0x4a, 0xae,
+ 0x79, 0x1e, 0x97, 0x16, 0x6b, 0xff, 0x22, 0xb4,
+ 0x37, 0x5b, 0xe5, 0x01, 0x13, 0xb9, 0x30, 0x59,
+ 0x90, 0x7a, 0xfb, 0x22, 0xa2, 0x17, 0xfb, 0xc3,
+ 0x33, 0xe6, 0xfb, 0x39, 0xde, 0x85, 0xad, 0xf1,
+ 0x4e, 0x2b, 0x70, 0x67, 0x4c, 0x81, 0xc6, 0xcd,
+ 0x91, 0xcb, 0x7b, 0x4f, 0x46, 0x75, 0xe9, 0x01,
+ 0xdc, 0xbb, 0x3a, 0x87, 0x55, 0xa0, 0x99, 0x98,
+ 0xa3, 0x3a, 0xc9, 0x94, 0x08, 0x58, 0xe0, 0xb3,
+ 0x11, 0xd5, 0x2f, 0x50, 0x05, 0xd9, 0xd2, 0x44,
+ 0x9c, 0x09, 0x58, 0xea, 0x1d, 0xdd, 0xb7, 0x9b,
+ 0xed, 0x94, 0xa9, 0x05, 0x2a, 0x0d, 0x77, 0xa4,
+ 0xca, 0x67, 0xa0, 0x5d, 0xd7, 0x73, 0xe5, 0x37,
+ 0x3f, 0x5c, 0x08, 0x98, 0x26, 0x36, 0x7c, 0x29,
+ 0x94, 0x7a, 0xaf, 0xf3, 0x52, 0x15, 0x17, 0xaa,
+ 0xdd, 0x22, 0x9e, 0x85, 0xbf, 0xeb, 0xe6, 0x65,
+ 0x8c, 0x40, 0x05, 0x4d, 0xe5, 0x17, 0x6a, 0x1f,
+ 0x76, 0xb8, 0x59, 0xe8, 0x10, 0xaf, 0x8b, 0x01,
+ 0x7a, 0x30, 0x42, 0x50, 0x09, 0x9a, 0x4f, 0xde,
+ 0x10, 0xf1, 0x78, 0x78, 0x4d, 0x7c, 0x9d, 0xb6,
+ 0x31, 0x5d, 0xb6, 0xe1, 0x7e, 0xd9, 0x09, 0x40,
+ 0x54, 0x43, 0x4f, 0x77, 0xcb, 0x3d, 0x90, 0x88,
+ 0x23, 0x51, 0x66, 0x05, 0x2b, 0x49, 0x8e, 0x36,
+ 0x1d, 0x09, 0xe5, 0x02, 0x4c, 0x8a, 0x68, 0x65,
+ 0x51, 0x25, 0x92, 0x40, 0x78, 0xf8, 0xce, 0x1e,
+ 0x94, 0x14, 0x75, 0x59, 0xd2, 0xdd, 0x9f, 0xad,
+ 0x5e, 0x3b, 0xfe, 0xbe, 0x17, 0x05, 0x41, 0x22,
+ 0x39, 0xa2, 0xa7, 0xdb, 0x63, 0x42, 0xd3, 0x09,
+ 0x3d, 0x22, 0xe3, 0x20, 0x60, 0x64, 0x7b, 0x27,
+ 0xba, 0x1d, 0xa0, 0xe3, 0x0e, 0x5e, 0x53, 0x46,
+ 0x53, 0x10, 0x51, 0xf3, 0x54, 0xce, 0x27, 0x69,
+ 0x24, 0x15, 0xfb, 0x9d, 0x5c, 0x81, 0x9b, 0xab,
+ 0xe7, 0xfc, 0x2e, 0x30, 0x0b, 0x74, 0xe5, 0xe7,
+ 0x5d, 0x6e, 0xe1, 0x27, 0x2a, 0x4d, 0xe0, 0xae,
+ 0xa0, 0x29, 0xd3, 0xab, 0x1c, 0x93, 0x80, 0x2e,
+ 0x19, 0x92, 0xa7, 0x83, 0x0c, 0x0f, 0xe1, 0xe0,
+ 0x91, 0xec, 0x16, 0x15, 0xe6, 0x37, 0x8f, 0x74,
+ 0x92, 0x56, 0x34, 0x9d, 0x58, 0xfb, 0x8d, 0xc6,
+ 0xa0, 0xc2, 0xb6, 0x5b, 0xd2, 0x8f, 0x6c, 0x24,
+ 0xdc, 0x95, 0xd1, 0xa4, 0x79, 0xed, 0x4f, 0xcd,
+ 0x30, 0xb8, 0xe8, 0xef, 0xc5, 0x17, 0x96, 0x72,
+ 0x88, 0x64, 0x4f, 0xa7, 0x72, 0x50, 0x6a, 0xe2,
+ 0xa9, 0x02, 0x37, 0x8c, 0x83, 0x30, 0xf0, 0xdf,
+ 0xa1, 0x52, 0x77, 0xc4, 0x63, 0x83, 0xee, 0xf6,
+ 0x96, 0x3f, 0x38, 0xb2, 0x12, 0x7c, 0x71, 0xea,
+ 0x7b, 0x9d, 0xb7, 0xef, 0xb5, 0x3f, 0xd3, 0xdf,
+ 0x4e, 0x8f, 0xd1, 0x3b, 0x95, 0x46, 0x36, 0x32,
+ 0xc2, 0x20, 0x3d, 0x3a, 0xec, 0xac, 0x93, 0x04,
+ 0x85, 0x34, 0xb6, 0x51, 0x63, 0xd0, 0x42, 0x5c,
+ 0xf7, 0xbb, 0x72, 0xf1, 0x0c, 0xdc, 0xcd, 0xda,
+ 0xcd, 0xf0, 0x56, 0xb4, 0x8e, 0xa6, 0x33, 0x9f,
+ 0x4e, 0xe4, 0xd1, 0x5f, 0xb5, 0xed, 0x0b, 0xa1,
+ 0xf5, 0xb2, 0xc6, 0x84, 0x4e, 0xc5, 0xbe, 0x57,
+ 0x2a, 0xee, 0xd4, 0x05, 0xe1, 0x5a, 0x24, 0x38,
+ 0x31, 0x70, 0xfd, 0x92, 0x0b, 0x56, 0xb0, 0xcf,
+ 0xec, 0x01, 0x5f, 0x0c, 0x36, 0x25, 0xf1, 0x56,
+ 0x30, 0x60, 0xe6, 0xed, 0x25, 0xaf, 0xb2, 0x39,
+ 0x5f, 0x6e, 0x1f, 0x34, 0xc5, 0x84, 0x28, 0x69,
+ 0xe8, 0xa4, 0x9c, 0x20, 0x4e, 0xec, 0x1e, 0xbf,
+ 0x3e, 0x81, 0x7b, 0x8e, 0x12, 0xc9, 0x20, 0xd6,
+ 0x85, 0x9e, 0x11, 0x95, 0xdb, 0x00, 0xfc, 0x06,
+ 0x36, 0xab, 0x88, 0x01, 0xea, 0xde, 0x3b, 0xc4,
+ 0xea, 0xab, 0x89, 0x73, 0x2b, 0x0b, 0x8b, 0xe9,
+ 0xdb, 0x3a, 0x60, 0x96, 0xa3, 0x8c, 0xca, 0x3c,
+ 0x46, 0x2f, 0x94, 0x58, 0x81, 0xab, 0x68, 0x5e,
+ 0x16, 0x50, 0x21, 0x49, 0xbf, 0x6f, 0x6f, 0x9b,
+ 0x99, 0x4b, 0xca, 0xb8, 0x8c, 0x88, 0x02, 0x74,
+ 0xdd, 0x88, 0x33, 0xa7, 0x79, 0x9c, 0x23, 0x2e,
+ 0xc9, 0x13, 0xd3, 0x67, 0x7e, 0x10, 0x2e, 0x4e,
+ 0xbc, 0x55, 0xbb, 0x54, 0xb3, 0x53, 0x32, 0x2e,
+ 0x05, 0x2d, 0xee, 0x6f, 0xb8, 0xd9, 0x8b, 0x4d,
+ 0xfc, 0x8a, 0x3d, 0x4a, 0xdb, 0x02, 0xc5, 0x12,
+ 0x7f, 0xe0, 0x75, 0xbc, 0x96, 0xfb, 0xb4, 0x91,
+ 0x82, 0x1d, 0x6a, 0xb2, 0xdf, 0x32, 0xeb, 0x22,
+ 0x4d, 0x8e, 0x30, 0x66, 0xd1, 0x40, 0xbe, 0xd8,
+ 0x38, 0x54, 0xe5, 0xaa, 0xe4, 0x45, 0xa5, 0xb9,
+ 0x03, 0xbb, 0x04, 0x3a, 0x6a, 0x85, 0x86, 0x40,
+ 0xbe, 0xc3, 0x17, 0xdf, 0x9a, 0x50, 0xcc, 0x9b,
+ 0x15, 0xdb, 0x5c, 0xa8, 0xfa, 0x5b, 0xc1, 0xb0,
+ 0xb9, 0xfe, 0xff, 0xfb, 0xce, 0xe1, 0xef, 0xe5,
+ 0x4d, 0x33, 0x2a, 0xd9, 0xb3, 0x7c, 0xe2, 0x40,
+ 0xa9, 0x57, 0xe0, 0x92, 0x48, 0x1c, 0xbb, 0xf4,
+ 0xef, 0x85, 0x7c, 0x4e, 0x38, 0x2d, 0x60, 0xcb,
+ 0xb7, 0x04, 0xe8, 0x17, 0x00, 0xbb, 0x52, 0xcd,
+ 0xa3, 0x5a, 0x25, 0x2f, 0xcd, 0x6f, 0x93, 0xfe,
+ 0xf9, 0xd7, 0x37, 0x84, 0x8e, 0xad, 0x9b, 0xb3,
+ 0x5d, 0x9c, 0x59, 0xe7, 0x7b, 0xbc, 0xee, 0x6d,
+ 0x72, 0xb5, 0x63, 0x05, 0x50, 0xa3, 0xcb, 0x4f,
+ 0xf1, 0xd4, 0xc7, 0x19, 0x41, 0x5c, 0x8c, 0x52,
+ 0xed, 0x3b, 0x3f, 0x13, 0xcb, 0x7f, 0x5d, 0xb0,
+ 0x42, 0x52, 0x2a, 0xac, 0x1f, 0xce, 0x04, 0x2a,
+ 0xb0, 0x92, 0xf3, 0xcf, 0xef, 0x53, 0xf8, 0xa6,
+ 0xb8, 0x2d, 0x67, 0xe9, 0xf4, 0x4e, 0x0d, 0x8e,
+ 0x31, 0x7c, 0x94, 0xad, 0xa6, 0xda, 0x2c, 0xf9,
+ 0x36, 0x8c, 0xd3, 0x4b, 0xe0, 0xcb, 0xa9, 0x4a,
+ 0x81, 0x88, 0xfb, 0x99, 0x17, 0x30, 0xa0, 0x9c,
+ 0xf2, 0xb2, 0x0d, 0x0c, 0xde, 0x5f, 0x65, 0x07,
+ 0xd3, 0x13, 0x9d, 0x1b, 0x26, 0x54, 0x8b, 0xef,
+ 0x4d, 0x31, 0x3a, 0x89, 0xda, 0x0f, 0x45, 0x49,
+ 0xf0, 0xfb, 0xbe, 0xa4, 0x1f, 0xe0, 0x04, 0x81,
+ 0xc8, 0xb7, 0x37, 0x1c, 0xa1, 0x0d, 0x55, 0x42,
+ 0x02, 0xea, 0x86, 0x24, 0x95, 0x3e, 0x39, 0x25,
+ 0xed, 0xf8, 0xa2, 0x36, 0x79, 0xb9, 0x05, 0x6f,
+ 0x31, 0x45, 0xf4, 0x7d, 0x77, 0xcd, 0xf0, 0x1a,
+ 0x3b, 0x78, 0x19, 0xee, 0x72, 0x2d, 0x3a, 0xd6,
+ 0xed, 0xbe, 0x40, 0x41, 0x12, 0xf6, 0x6e, 0x5c,
+ 0xf3, 0xc9, 0x46, 0xe8, 0x58, 0x0e, 0x3a, 0x76,
+ 0x65, 0x8d, 0x08, 0xdf, 0x01, 0x37, 0x19, 0xb9,
+ 0x4b, 0xf8, 0xdb, 0x56, 0x2a, 0x46, 0x6e, 0xa0,
+ 0xb5, 0x5a, 0x4d, 0xa4, 0xa0, 0x47, 0xec, 0x85,
+ 0x61, 0x9e, 0xbb, 0xaf, 0xd0, 0xfe, 0x09, 0x27,
+ 0x37, 0xf0, 0x3d, 0x9f, 0x8b, 0x50, 0xb5, 0x25,
+ 0x63, 0xee, 0x99, 0x64, 0x72, 0x31, 0x9c, 0x67,
+ 0xe5, 0xbe, 0x41, 0xb1, 0xcf, 0xbf, 0x57, 0x60,
+ 0x76, 0x65, 0xc0, 0xda, 0xb5, 0x8d, 0xf0, 0x0e,
+ 0xaf, 0xa4, 0x29, 0x45, 0x5b, 0xce, 0x0e, 0x76,
+ 0xef, 0xfa, 0x17, 0xc3, 0x08, 0x3c, 0x75, 0x19,
+ 0x82, 0x14, 0x2d, 0x5a, 0xab, 0x56, 0x64, 0x06,
+ 0x9a, 0xfb, 0xf6, 0xb2, 0xbe, 0xb2, 0x2c, 0x0b,
+ 0x4f, 0x73, 0x0d, 0xf9, 0x4c, 0x68, 0xee, 0x99,
+ 0xfd, 0xf1, 0x81, 0x68, 0x65, 0xb5, 0xda, 0x1c,
+ 0xeb, 0x9e, 0xfe, 0x68, 0x61, 0xf9, 0xe6, 0x06,
+ 0x79, 0xee, 0x54, 0x5f, 0x7a, 0x4b, 0x19, 0xcd,
+ 0xc7, 0x4b, 0xef, 0x79, 0x90, 0xe1, 0xae, 0xd7,
+ 0xe6, 0xbb, 0xdd, 0xb0, 0xf7, 0x0c, 0xf9, 0x21,
+ 0xe7, 0x0d, 0x66, 0xb6, 0xe8, 0x44, 0x7a, 0x70,
+ 0xf1, 0xa4, 0xbd, 0xa2, 0x4c, 0xe9, 0x52, 0x8c,
+ 0x3a, 0xdc, 0x0f, 0x46, 0x75, 0x8c, 0x5f, 0xd2,
+ 0xe8, 0x92, 0xdf, 0xf8, 0xed, 0xd4, 0xda, 0x09,
+ 0xa8, 0xc4, 0x85, 0x63, 0xab, 0x30, 0x15, 0xbf,
+ 0x69, 0x78, 0x74, 0x9c, 0x59, 0x1b, 0xd0, 0xaa,
+ 0x2d, 0x7a, 0x87, 0x7f, 0x44, 0xea, 0xd4, 0x53,
+ 0xa9, 0x4d, 0x47, 0x14, 0x98, 0x57, 0xc3, 0x53,
+ 0xcf, 0x88, 0xad, 0x20, 0x4a, 0x65, 0x6b, 0x20,
+ 0xcd, 0x38, 0x19, 0xa8, 0x78, 0x1d, 0xb0, 0xe0,
+ 0xbf, 0x33, 0x99, 0xeb, 0xed, 0x61, 0xf6, 0xd0,
+ 0x27, 0xfc, 0xf2, 0x9b, 0x16, 0x1a, 0x69, 0x7d,
+ 0xbd, 0xb3, 0x7f, 0x6d, 0x6e, 0x16, 0xc8, 0xe8,
+ 0x50, 0x87, 0x1a, 0x43, 0x5b, 0x8c, 0x43, 0x5e,
+ 0xe5, 0xd5, 0x48, 0x3b, 0x70, 0x60, 0x9a, 0xd7,
+ 0xd5, 0x04, 0x89, 0x06, 0x51, 0x64, 0x3a, 0xf6,
+ 0xe8, 0xc7, 0x22, 0xb2, 0x31, 0xdb, 0x9f, 0xa3,
+ 0xeb, 0x95, 0xea, 0x4b, 0xeb, 0xd1, 0x9f, 0x1f,
+ 0xce, 0x93, 0xb0, 0x1a, 0xcc, 0x88, 0xac, 0x3e,
+ 0x6e, 0x54, 0x32, 0xf3, 0xd3, 0x45, 0xec, 0x09,
+ 0xf9, 0xb9, 0xa6, 0xf8, 0x98, 0x15, 0x1d, 0xb3,
+ 0x3a, 0x27, 0xf5, 0x94, 0xbc, 0x96, 0x77, 0x9f,
+ 0x2d, 0x5f, 0xf2, 0x23, 0x44, 0xc0, 0x25, 0xa2,
+ 0x63, 0x65, 0x23, 0x60, 0xec, 0xaa, 0x32, 0x00,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x7e, 0x0b, 0xd4, 0x8d, 0x8a, 0x62, 0x74, 0xc7,
+ 0xe6, 0x2f, 0x31, 0xd8, 0x09, 0x11, 0xba, 0x1d,
+ 0x6e, 0xc8, 0xe5, 0xac, 0x5f, 0x11, 0xd2, 0xf1,
+ 0x75, 0x22, 0xd3, 0x45, 0x14, 0x0b, 0x6b, 0x25,
+ 0xf4, 0xbf, 0x8d, 0x0d, 0x94, 0xf2, 0xa6, 0x0d,
+ 0x2c, 0x24, 0x5a, 0xb5, 0x83, 0x2d, 0x12, 0xd4,
+ 0xe1, 0xf5, 0xa4, 0x01, 0xb2, 0x8a, 0x18, 0xfd,
+ 0x49, 0x29, 0x9f, 0x3c, 0x37, 0xb6, 0xbf, 0x0a,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0xff, 0x81, 0xe9, 0xbe, 0xa3, 0x89, 0x9d, 0x73,
+ 0xdf, 0x13, 0xd3, 0xcf, 0xba, 0x36, 0xe8, 0xa1,
+ 0xf9, 0x52, 0x5f, 0x33, 0xd8, 0xfd, 0xc5, 0xb0,
+ 0x7a, 0x5a, 0xff, 0x65, 0x1d, 0x84, 0x31, 0x3c,
+ 0x53, 0xe2, 0xc8, 0x9c, 0xf4, 0xef, 0x15, 0x3b,
+ 0xd0, 0x4d, 0x90, 0x2f, 0x5c, 0x8d, 0x0e, 0x03,
+ 0xd6, 0x50, 0xb3, 0xb5, 0x20, 0xa2, 0x57, 0xcc,
+ 0x48, 0x6f, 0xc9, 0x49, 0x29, 0x2d, 0xc9, 0x53,
+ 0x05, 0x91, 0x08, 0x56, 0x9a, 0x25, 0xb2, 0x43,
+ 0x3e, 0x9c, 0x38, 0x75, 0x84, 0xc1, 0x04, 0xdf,
+ 0xd5, 0x36, 0x5d, 0x7b, 0x9c, 0x85, 0x3f, 0xd3,
+ 0x52, 0xef, 0xb2, 0x3a, 0xa6, 0x3c, 0xa0, 0x64,
+ 0xb9, 0xe0, 0x69, 0x89, 0xf4, 0xc7, 0x56, 0x6e,
+ 0x21, 0xfd, 0x99, 0x39, 0x1b, 0x08, 0xd4, 0xb4,
+ 0xed, 0x5d, 0x8c, 0xf1, 0x27, 0x3f, 0x0c, 0x60,
+ 0x74, 0x63, 0x6d, 0xb8, 0xbf, 0xb4, 0xaa, 0xfd,
+ 0x92, 0xe5, 0x9a, 0xfa, 0xed, 0xf0, 0x9f, 0x1c,
+ 0x8b, 0x73, 0xfe, 0x6d, 0xff, 0xb9, 0xc0, 0xb7,
+ 0xba, 0x3d, 0x0e, 0xbc, 0x4e, 0x4b, 0xd4, 0xdb,
+ 0x1e, 0x9c, 0xe7, 0xb1, 0xc6, 0xe7, 0x78, 0x22,
+ 0xe1, 0x0a, 0x01, 0xcb, 0x34, 0x93, 0xf2, 0x42,
+ 0xa8, 0x50, 0xaf, 0x46, 0xa2, 0x7c, 0xc6, 0xe2,
+ 0xea, 0xfd, 0x6d, 0x71, 0x8d, 0xaf, 0x28, 0x56,
+ 0x37, 0xf8, 0x1a, 0x4e, 0xd7, 0xf0, 0xff, 0xf5,
+ 0xd9, 0xec, 0xe4, 0x7d, 0xa0, 0xed, 0x36, 0x1d,
+ 0x6f, 0xde, 0x94, 0x6d, 0x6d, 0xee, 0xa4, 0xfd,
+ 0xb6, 0xc3, 0x89, 0xa3, 0x82, 0xd5, 0x12, 0x5c,
+ 0xcd, 0x54, 0x1d, 0x68, 0x95, 0xe5, 0x38, 0x35,
+ 0x81, 0xfb, 0xa7, 0x20, 0xe6, 0x26, 0x2f, 0xfd,
+ 0x36, 0xc6, 0x23, 0xf5, 0xe0, 0x36, 0xbd, 0xdd,
+ 0xc7, 0xf2, 0x9b, 0x94, 0x00, 0x87, 0xca, 0xf0,
+ 0x64, 0x03, 0x6c, 0xc8, 0xa3, 0xc0, 0x3e, 0x0c,
+ 0x71, 0x21, 0x70, 0x9a, 0x4e, 0xe6, 0x18, 0x27,
+ 0x24, 0x5a, 0xbc, 0x18, 0xe6, 0x15, 0xe8, 0x5b,
+ 0x44, 0xac, 0x31, 0x38, 0xe4, 0xfa, 0xe3, 0x8e,
+ 0xc8, 0x7b, 0x2c, 0x56, 0x8b, 0x10, 0xad, 0xad,
+ 0x6d, 0xf3, 0xad, 0x12, 0x01, 0xbe, 0x6b, 0x5b,
+ 0x95, 0x5f, 0xfe, 0xdc, 0xc8, 0x0d, 0x8b, 0x97,
+ 0x0e, 0x3c, 0xda, 0x8f, 0xbf, 0x5d, 0x9a, 0x33,
+ 0x46, 0x83, 0x89, 0xed, 0xb2, 0x87, 0xb7, 0x11,
+ 0xb9, 0x07, 0xd3, 0x69, 0xc9, 0x1e, 0x92, 0x92,
+ 0x6a, 0x4d, 0x2b, 0xfe, 0xd8, 0x2c, 0x2b, 0xf9,
+ 0x59, 0x81, 0x7a, 0xff, 0xf7, 0x3f, 0x27, 0x39,
+ 0x43, 0x03, 0xcf, 0x68, 0xc2, 0x37, 0x65, 0x83,
+ 0x87, 0x06, 0xc7, 0xb1, 0x42, 0x7c, 0x7c, 0xe1,
+ 0x78, 0x1c, 0xdb, 0xaf, 0x33, 0xb1, 0x35, 0xc6,
+ 0xff, 0x94, 0xc2, 0x93, 0x29, 0x1a, 0x3c, 0xc5,
+ 0xf1, 0xd1, 0xda, 0x0f, 0x1b, 0xae, 0x1f, 0xf6,
+ 0x2b, 0xa0, 0x68, 0x4f, 0x02, 0xeb, 0x2a, 0xe8,
+ 0xa4, 0xfa, 0x30, 0x92, 0x0c, 0x36, 0x0c, 0xaa,
+ 0xef, 0x0c, 0x78, 0x40, 0x96, 0xcc, 0xbb, 0x65,
+ 0xba, 0x84, 0x42, 0x7e, 0x97, 0xf4, 0x07, 0x67,
+ 0x00, 0x80, 0x9a, 0x27, 0xfd, 0x8f, 0x18, 0x83,
+ 0xad, 0x0d, 0x40, 0x30, 0xd7, 0x62, 0x9d, 0xf3,
+ 0xc6, 0x43, 0xd5, 0x92, 0x9e, 0x26, 0xf5, 0xfb,
+ 0xda, 0xed, 0x8e, 0x2c, 0x71, 0xea, 0x78, 0xbf,
+ 0xd7, 0xe3, 0x86, 0xc3, 0x9a, 0xda, 0x89, 0x86,
+ 0x98, 0x41, 0xb7, 0x9e, 0x4a, 0x2e, 0xb0, 0x80,
+ 0x00, 0xff, 0x68, 0xbf, 0x86, 0x3f, 0x8b, 0x1c,
+ 0x11, 0xe4, 0x5f, 0xf6, 0xb0, 0x70, 0xf9, 0xb9,
+ 0x2e, 0xe9, 0x21, 0xe0, 0x40, 0xef, 0xf8, 0xe3,
+ 0x65, 0x45, 0x18, 0xf7, 0x92, 0x21, 0x3b, 0xc7,
+ 0xe9, 0x6d, 0xb4, 0x2d, 0x01, 0xf9, 0xec, 0x33,
+ 0x0d, 0xa7, 0x19, 0x8f, 0xf5, 0x0d, 0x49, 0xa5,
+ 0x45, 0xb6, 0x92, 0x90, 0x4b, 0xe5, 0x12, 0x6c,
+ 0x1a, 0xf3, 0x51, 0x06, 0x29, 0x2e, 0xd1, 0xfe,
+ 0xbf, 0xe1, 0x67, 0x2c, 0x98, 0x45, 0x8a, 0x38,
+ 0xd0, 0x50, 0x6f, 0xa8, 0x81, 0xf2, 0x27, 0xb4,
+ 0x9f, 0x15, 0x14, 0x12, 0x98, 0x1c, 0x93, 0x64,
+ 0xf8, 0x01, 0x91, 0x37, 0x31, 0xb3, 0x04, 0x0a,
+ 0xc4, 0x7b, 0x84, 0x03, 0x2c, 0xbf, 0x90, 0xd7,
+ 0x7c, 0xa3, 0xcf, 0x1d, 0x6a, 0x7c, 0x9c, 0x35,
+ 0x9b, 0xf1, 0x95, 0x2c, 0x02, 0x55, 0x24, 0xb7,
+ 0x23, 0x87, 0x3b, 0xf6, 0x9f, 0xfd, 0x04, 0xfe,
+ 0xad, 0x40, 0xe0, 0x95, 0xf7, 0xcc, 0x8b, 0xae,
+ 0x53, 0x7b, 0x16, 0x9f, 0x47, 0xad, 0x29, 0x66,
+ 0xd2, 0x37, 0x0f, 0x54, 0x4f, 0x7d, 0xb0, 0x04,
+ 0x45, 0xed, 0x52, 0xe5, 0xdb, 0x1a, 0xb4, 0x26,
+ 0x40, 0x62, 0x62, 0x4f, 0xf4, 0x92, 0x55, 0xf9,
+ 0x78, 0xd9, 0xdd, 0xdb, 0x42, 0x40, 0x5a, 0x5e,
+ 0xe5, 0xe0, 0x71, 0x7b, 0xd1, 0x96, 0x57, 0x47,
+ 0x7e, 0x79, 0x80, 0xee, 0xe4, 0xdc, 0xac, 0xcd,
+ 0xb1, 0xbf, 0x28, 0xd8, 0x13, 0xec, 0xdf, 0x71,
+ 0x13, 0x88, 0xf1, 0xb7, 0x9f, 0x6b, 0xb2, 0xd0,
+ 0xf2, 0x0d, 0xfa, 0x75, 0xa3, 0xa9, 0xa2, 0x6f,
+ 0x1d, 0x4b, 0xe4, 0xd8, 0x8b, 0x08, 0x7a, 0x84,
+ 0xa8, 0x82, 0xf6, 0x09, 0xf0, 0x30, 0xa1, 0xb9,
+ 0xe4, 0x03, 0xe4, 0xf8, 0xeb, 0xcf, 0x6c, 0xb5,
+ 0xe4, 0xc0, 0x4b, 0xb4, 0xf4, 0x30, 0x3b, 0xa6,
+ 0xc8, 0x5b, 0x29, 0x84, 0xde, 0xc7, 0xa8, 0x32,
+ 0xe8, 0xee, 0x2e, 0x8b, 0x85, 0x2b, 0x9f, 0xfd,
+ 0x65, 0x5e, 0x6d, 0xf1, 0x89, 0x7a, 0x45, 0x08,
+ 0xc1, 0x1d, 0xfe, 0xa4, 0x88, 0x7f, 0x77, 0xae,
+ 0xa6, 0x28, 0x70, 0x3d, 0x6b, 0xb8, 0x8d, 0x7a,
+ 0xee, 0x40, 0x9f, 0x05, 0xb0, 0xf1, 0x2c, 0x59,
+ 0x79, 0x7c, 0xa9, 0x3f, 0x6e, 0xca, 0x96, 0x9e,
+ 0xdf, 0x6d, 0xd8, 0x8c, 0xa3, 0x33, 0x16, 0xea,
+ 0x0e, 0xae, 0x06, 0x51, 0x13, 0xf9, 0x08, 0x44,
+ 0x32, 0xcc, 0xef, 0x5a, 0x2b, 0x09, 0x87, 0x85,
+ 0xa2, 0xfb, 0xb3, 0xb4, 0xcb, 0xf2, 0xdb, 0x51,
+ 0x59, 0x02, 0x87, 0x5f, 0x8e, 0xe6, 0x65, 0xe3,
+ 0x37, 0x4f, 0x53, 0x16, 0xc3, 0x78, 0x4e, 0xba,
+ 0x23, 0xef, 0x58, 0xfd, 0x90, 0x3c, 0xe6, 0xfb,
+ 0xe0, 0x79, 0xbb, 0xc6, 0x48, 0x18, 0x79, 0xce,
+ 0xf8, 0x0e, 0x10, 0xbc, 0x63, 0x1d, 0x77, 0xcd,
+ 0x18, 0xd9, 0xe9, 0x8c, 0x15, 0x8a, 0x8f, 0x86,
+ 0x1d, 0x86, 0x48, 0xd0, 0x53, 0x05, 0x69, 0x5a,
+ 0x29, 0xb3, 0x11, 0xc8, 0x1e, 0x0c, 0x4c, 0xfa,
+ 0x7d, 0x13, 0x12, 0x93, 0x01, 0xcf, 0x9f, 0xb2,
+ 0x5d, 0xc0, 0xe6, 0x73, 0x8b, 0xf8, 0x39, 0xbd,
+ 0xfe, 0xf4, 0x57, 0xd8, 0x38, 0xbe, 0x9e, 0x0b,
+ 0x1d, 0xea, 0x1e, 0x18, 0x64, 0xb3, 0x74, 0x5c,
+ 0x0f, 0x02, 0x51, 0x89, 0x7e, 0x7f, 0x4a, 0xcc,
+ 0xff, 0xb1, 0xf6, 0x1b, 0x69, 0xb0, 0xdd, 0x1c,
+ 0x31, 0x9e, 0xc4, 0x6e, 0x70, 0xd2, 0xad, 0x22,
+ 0x7b, 0x80, 0xc5, 0xe0, 0xc2, 0x07, 0xd5, 0x02,
+ 0x04, 0xb7, 0x15, 0x63, 0xb5, 0x55, 0x6e, 0x35,
+ 0x3c, 0x48, 0xab, 0x29, 0xef, 0x1c, 0xe5, 0x64,
+ 0x93, 0xab, 0x62, 0xb2, 0xd6, 0x7b, 0x1e, 0xe1,
+ 0x6d, 0xd5, 0xe2, 0x6e, 0xaf, 0x9f, 0x59, 0x7d,
+ 0xab, 0xef, 0xd4, 0xbd, 0x17, 0x13, 0xea, 0xb7,
+ 0x43, 0xde, 0x90, 0x0f, 0x85, 0x31, 0x1b, 0x9f,
+ 0xf5, 0x09, 0x96, 0x88, 0x99, 0xbc, 0x96, 0xc9,
+ 0x58, 0x0d, 0x77, 0x33, 0xd2, 0x99, 0x55, 0xe6,
+ 0xac, 0xe5, 0xa4, 0x53, 0x26, 0x23, 0xd0, 0xab,
+ 0x0c, 0x05, 0xfc, 0xb4, 0xc0, 0x68, 0x7e, 0x99,
+ 0x42, 0x76, 0x1d, 0x68, 0xf1, 0xb4, 0x70, 0xc3,
+ 0xd5, 0xb4, 0x0f, 0xee, 0x4b, 0xb4, 0x95, 0x2f,
+ 0x62, 0x64, 0x08, 0x20, 0x4e, 0xa5, 0xd1, 0xcb,
+ 0x92, 0x61, 0x5c, 0xc7, 0x39, 0xfb, 0x21, 0x25,
+ 0x01, 0x53, 0x11, 0xa2, 0x4a, 0x02, 0xcb, 0xae,
+ 0x91, 0x90, 0xdb, 0xcb, 0x0b, 0x7b, 0x04, 0xcb,
+ 0x41, 0x23, 0x4c, 0x89, 0x10, 0xb1, 0xa6, 0x5d,
+ 0xd6, 0xba, 0x9f, 0xc6, 0x87, 0x08, 0xb9, 0x85,
+ 0xb2, 0x97, 0x66, 0xe6, 0x97, 0xb2, 0xcc, 0xbd,
+ 0x99, 0x7d, 0x48, 0xfe, 0xc3, 0x65, 0xa2, 0x13,
+ 0x61, 0xce, 0x6a, 0xd4, 0x6b, 0x75, 0x38, 0x5a,
+ 0xd2, 0xab, 0xff, 0xe6, 0xcb, 0x0f, 0xa6, 0x35,
+ 0xc8, 0xfe, 0x08, 0x3f, 0x56, 0xac, 0xbd, 0x37,
+ 0x20, 0xde, 0x1e, 0xc7, 0x44, 0xd3, 0xc3, 0x26,
+ 0xeb, 0x2a, 0xb8, 0x3a, 0xb4, 0x24, 0x00, 0x77,
+ 0x72, 0x00, 0xc7, 0x26, 0xfc, 0x2c, 0xd3, 0x35,
+ 0xb0, 0x7c, 0x75, 0xe8, 0x4d, 0xec, 0xdc, 0xaf,
+ 0xf1, 0x99, 0x81, 0x40, 0x05, 0x59, 0x23, 0x19,
+ 0xa2, 0x4c, 0x1a, 0xf0, 0x59, 0x8e, 0xd6, 0x16,
+ 0x61, 0x88, 0x09, 0x2b, 0x7e, 0x51, 0x0b, 0xcf,
+ 0x5a, 0x6c, 0xca, 0x13, 0x87, 0x18, 0x16, 0x64,
+ 0x51, 0xe4, 0x2a, 0x0f, 0xc0, 0x94, 0x1b, 0x74,
+ 0xe9, 0x20, 0xbb, 0x4b, 0x13, 0xb1, 0xd3, 0xea,
+ 0xf9, 0xcf, 0x56, 0x66, 0x5f, 0x2c, 0x98, 0x6e,
+ 0x5d, 0x4b, 0x9c, 0x06, 0x0f, 0xd5, 0xdb, 0x84,
+ 0xeb, 0x63, 0xb0, 0xa7, 0x15, 0xb3, 0x88, 0xf3,
+ 0x2b, 0xf2, 0x5b, 0x09, 0x4a, 0xde, 0x17, 0xcc,
+ 0x6b, 0x60, 0xe6, 0xfd, 0xc6, 0xaa, 0xa3, 0xb3,
+ 0x6d, 0x1b, 0xdf, 0x2d, 0x03, 0xe5, 0xb3, 0x62,
+ 0xae, 0x1f, 0x89, 0x8a, 0xc0, 0x21, 0x99, 0xb1,
+ 0xce, 0x35, 0x6e, 0xdd, 0x15, 0x6a, 0x1e, 0xe6,
+ 0x9a, 0x9f, 0x81, 0x68, 0xc2, 0xb3, 0x43, 0x33,
+ 0x5d, 0xb3, 0x2f, 0x53, 0xfe, 0x26, 0x31, 0x7a,
+ 0xf7, 0xda, 0xf5, 0x41, 0xd5, 0x13, 0x21, 0x9e,
+ 0xb5, 0x0a, 0x61, 0xcf, 0xbe, 0xbf, 0x4c, 0x0a,
+ 0xc5, 0xaa, 0xf1, 0x25, 0x6f, 0xd3, 0xee, 0xeb,
+ 0x15, 0x92, 0xfb, 0x47, 0x8b, 0xe4, 0xc2, 0x3d,
+ 0xf6, 0xfb, 0xa3, 0xdf, 0x6a, 0xcc, 0x87, 0x87,
+ 0xfa, 0x0f, 0x32, 0xcb, 0xfe, 0x99, 0xe4, 0xc9,
+ 0xf2, 0x93, 0x12, 0x11, 0xcd, 0xe7, 0x8c, 0x07,
+ 0x1d, 0xc7, 0x31, 0x40, 0x04, 0x12, 0xf4, 0xb3,
+ 0x05, 0x9d, 0x0e, 0x2e, 0x5a, 0x4c, 0xc8, 0x31,
+ 0x35, 0xe4, 0xc5, 0x93, 0xc0, 0xe9, 0x26, 0x95,
+ 0x7f, 0x9b, 0xe9, 0x9b, 0x50, 0x88, 0x7b, 0x75,
+ 0x3b, 0x5c, 0x11, 0x53, 0xcd, 0x6d, 0x8d, 0x0d,
+ 0x31, 0x18, 0x10, 0xcd, 0x9d, 0x06, 0xe3, 0x8f,
+ 0xd3, 0x04, 0xa1, 0x8e, 0x7f, 0x4c, 0x31, 0xc9,
+ 0xd0, 0x56, 0xb7, 0xf4, 0xdf, 0xef, 0x45, 0xd2,
+ 0xba, 0xa8, 0x8a, 0x6d, 0xf5, 0xa0, 0x48, 0x58,
+ 0xb5, 0xeb, 0x80, 0x41, 0xfb, 0x8b, 0xc1, 0xf5,
+ 0x9e, 0x99, 0x7a, 0x02, 0x32, 0x90, 0x7b, 0xc6,
+ 0xb7, 0x4d, 0xaf, 0xc1, 0x30, 0xfc, 0xb5, 0x79,
+ 0xf0, 0xea, 0xd0, 0x9f, 0xc8, 0xb4, 0xb2, 0xb6,
+ 0x8a, 0x69, 0x29, 0xcc, 0x81, 0x46, 0x47, 0xca,
+ 0x92, 0x9b, 0xfb, 0x26, 0xa6, 0xae, 0x07, 0xdc,
+ 0x24, 0x2d, 0xba, 0x63, 0x8f, 0x43, 0x31, 0x45,
+ 0xcc, 0x91, 0x07, 0x15, 0x9f, 0x4a, 0x85, 0x76,
+ 0x37, 0xc0, 0xc4, 0x04, 0x54, 0xc6, 0xce, 0x4f,
+ 0x8d, 0xce, 0xa8, 0xe6, 0x67, 0x3f, 0xaa, 0xe4,
+ 0x12, 0x48, 0x92, 0xec, 0x83, 0xf4, 0xe4, 0x6a,
+ 0x94, 0x85, 0x23, 0xfb, 0x0b, 0xc9, 0x40, 0x57,
+ 0xb3, 0x5c, 0x92, 0x17, 0xe5, 0x30, 0x35, 0xe1,
+ 0x5f, 0x98, 0xb5, 0x28, 0x12, 0xce, 0x03, 0xfc,
+ 0x9e, 0xe6, 0xef, 0x07, 0xf7, 0x72, 0x52, 0xc5,
+ 0x56, 0xed, 0x80, 0xbd, 0x48, 0xba, 0xec, 0x9d,
+ 0x12, 0xff, 0x6b, 0x56, 0x32, 0x26, 0x3e, 0xa8,
+ 0x11, 0x58, 0xd9, 0x84, 0x7b, 0x26, 0x37, 0xff,
+ 0xfe, 0xb5, 0x38, 0x3a, 0x99, 0xe1, 0xc1, 0x65,
+ 0x8e, 0xe6, 0x03, 0xdf, 0x68, 0x3b, 0xf8, 0x5c,
+ 0x8c, 0x41, 0xe4, 0x0f, 0x46, 0x12, 0xaa, 0xa3,
+ 0xfd, 0xe5, 0x0e, 0x48, 0x70, 0x7d, 0x97, 0x37,
+ 0xa4, 0x5a, 0x56, 0x76, 0x35, 0xff, 0xca, 0xb7,
+ 0xf4, 0xbf, 0xb4, 0x53, 0x8f, 0x3e, 0xa8, 0xd6,
+ 0xb5, 0x0f, 0xe8, 0x1a, 0x07, 0x8e, 0xeb, 0x79,
+ 0x30, 0x68, 0xbf, 0xd3, 0x20, 0x2f, 0x43, 0x9d,
+ 0x8f, 0x0f, 0xd3, 0x77, 0x83, 0x18, 0x00, 0x2b,
+ 0xa2, 0xc8, 0xe7, 0xdf, 0x53, 0x3b, 0xf3, 0x73,
+ 0x09, 0x83, 0x14, 0x35, 0xda, 0xe9, 0x53, 0x5e,
+ 0x6e, 0x0d, 0xf4, 0xd3, 0xc1, 0xd5, 0x11, 0x2f,
+ 0x68, 0xb3, 0x52, 0x61, 0xd3, 0x0b, 0x17, 0xf5,
+ 0x0a, 0x89, 0xa0, 0x16, 0x17, 0x0c, 0xfe, 0x0f,
+ 0x01, 0x0c, 0x1f, 0x94, 0xe2, 0xb0, 0x20, 0x72,
+ 0xe2, 0xc3, 0x1d, 0x22, 0xa7, 0x69, 0x6d, 0x6e,
+ 0x12, 0xe9, 0xc3, 0x8e, 0xea, 0x84, 0x37, 0xa4,
+ 0xd2, 0xdf, 0x9e, 0xc0, 0xeb, 0xc2, 0xd2, 0x78,
+ 0xeb, 0xfa, 0x8e, 0x71, 0x7a, 0xb9, 0xdf, 0x98,
+ 0x33, 0xf0, 0x6d, 0xd8, 0xcf, 0xb9, 0x55, 0xd9,
+ 0x37, 0xa7, 0x97, 0x97, 0xb7, 0x7f, 0xcf, 0x88,
+ 0x33, 0xda, 0xf3, 0xb8, 0xd9, 0x7f, 0x2f, 0xe1,
+ 0x19, 0xe7, 0xf1, 0xb8, 0xb1, 0xaa, 0x96, 0x34,
+ 0xde, 0x3b, 0x1e, 0x7c, 0xfb, 0xfc, 0xc2, 0x36,
+ 0xe7, 0xca, 0xf4, 0xa3, 0x10, 0x18, 0x74, 0xdb,
+ 0x85, 0xe9, 0xe0, 0xfd, 0x0e, 0x13, 0x9c, 0x54,
+ 0x93, 0x2d, 0x08, 0x34, 0x76, 0xf2, 0x4f, 0xb8,
+ 0x7b, 0xb5, 0xc6, 0xee, 0xf3, 0x03, 0xb9, 0xd1,
+ 0x9f, 0xf8, 0xd0, 0x36, 0x58, 0xee, 0xf1, 0x12,
+ 0x40, 0x85, 0x01, 0x02, 0x84, 0x95, 0xdc, 0x62,
+ 0xe4, 0xe2, 0xd3, 0x5c, 0x2b, 0xab, 0x93, 0xcd,
+ 0x82, 0x93, 0x2d, 0xe8, 0x7b, 0x89, 0x61, 0xbf,
+ 0xf9, 0xc9, 0x5a, 0xb1, 0x28, 0x99, 0xa6, 0x15,
+ 0x77, 0x61, 0x64, 0xab, 0xd5, 0xc4, 0x91, 0xb4,
+ 0x37, 0x91, 0xbc, 0xfa, 0xd9, 0xe7, 0xed, 0x7d,
+ 0x6d, 0x1a, 0xdf, 0x9a, 0xb0, 0xe1, 0x6f, 0xf3,
+ 0x4c, 0x2a, 0x3c, 0x42, 0xd0, 0xde, 0x1c, 0x32,
+ 0x83, 0xbb, 0xa7, 0xdc, 0x09, 0x4c, 0x76, 0xad,
+ 0xe3, 0x13, 0x1f, 0xab, 0x2e, 0x3b, 0x04, 0x17,
+ 0x72, 0xcd, 0xd8, 0xc4, 0x73, 0x61, 0x65, 0xec,
+ 0x38, 0x72, 0xd5, 0x30, 0x74, 0x91, 0xba, 0x2b,
+ 0x9c, 0xe0, 0xeb, 0x63, 0x2a, 0x59, 0xab, 0x0b,
+ 0x74, 0x96, 0xc1, 0x0b, 0x73, 0xed, 0x73, 0x27,
+ 0x7d, 0x6f, 0x0d, 0x82, 0x11, 0xda, 0x6d, 0x7a,
+ 0xce, 0xea, 0xf7, 0xbf, 0xad, 0x16, 0x07, 0x2c,
+ 0xb1, 0x07, 0x73, 0x82, 0xc6, 0x88, 0x77, 0xcf,
+ 0x7c, 0x64, 0x64, 0xc5, 0xba, 0xca, 0x94, 0xe6,
+ 0x79, 0x39, 0x84, 0xf2, 0x3f, 0xc8, 0x7a, 0x7b,
+ 0x0e, 0x25, 0xf7, 0xe9, 0xaf, 0xdb, 0x95, 0x76,
+ 0xc8, 0x97, 0x85, 0xe7, 0xb6, 0xf7, 0x03, 0x19,
+ 0x0c, 0x10, 0xf7, 0xca, 0x2c, 0xc2, 0xcb, 0x4d,
+ 0x98, 0x2b, 0x88, 0x89, 0x23, 0x3b, 0x21, 0x55,
+ 0xc9, 0xf3, 0xfe, 0x98, 0x9b, 0xf4, 0x88, 0x5e,
+ 0xbb, 0x03, 0xf8, 0x44, 0x3a, 0xd7, 0x58, 0xa7,
+ 0xde, 0xec, 0x97, 0x0d, 0xc2, 0xe0, 0x11, 0xf1,
+ 0x86, 0x2b, 0x1d, 0xe2, 0x59, 0x2a, 0x86, 0xe5,
+ 0x8f, 0x58, 0xd2, 0x37, 0x87, 0x43, 0x1d, 0xeb,
+ 0xe5, 0x3a, 0xbe, 0xeb, 0x54, 0x81, 0xf3, 0x24,
+ 0xc9, 0xb6, 0x6e, 0xd5, 0xb8, 0x50, 0x22, 0xc8,
+ 0x0f, 0x02, 0x1a, 0x6e, 0x77, 0x4d, 0x21, 0x6d,
+ 0x4c, 0x43, 0x75, 0x62, 0x32, 0xe6, 0x2a, 0x23,
+ 0xe9, 0x07, 0x87, 0xca, 0x85, 0x52, 0x02, 0xd9,
+ 0x41, 0x01, 0x39, 0x44, 0x2e, 0x87, 0xbc, 0xfa,
+ 0x02, 0x29, 0xb6, 0x46, 0xb5, 0x00, 0xb5, 0x0c,
+ 0x08, 0x61, 0x66, 0xd9, 0xf0, 0x45, 0x19, 0xc2,
+ 0xac, 0x84, 0x81, 0x5a, 0x17, 0x5c, 0x4e, 0x0c,
+ 0x7e, 0xa2, 0xd3, 0x1d, 0xd7, 0xc4, 0xa3, 0x7b,
+ 0x51, 0x2b, 0x61, 0x15, 0x14, 0xa9, 0x6c, 0x33,
+ 0x30, 0x1b, 0x27, 0xc4, 0xd0, 0x57, 0xda, 0x3d,
+ 0x85, 0x87, 0xa0, 0xb4, 0x0d, 0x80, 0xc1, 0x8e,
+ 0x95, 0x23, 0x35, 0xa9, 0xde, 0xa7, 0x6c, 0x8b,
+ 0x7c, 0xb5, 0xd3, 0xd5, 0x08, 0x05, 0x80, 0x98,
+ 0xfa, 0x65, 0xef, 0x98, 0xb5, 0x22, 0x7c, 0x30,
+ 0xf6, 0xf0, 0x5e, 0x1c, 0x53, 0x5e, 0x30, 0x4c,
+ 0x4c, 0xf8, 0x3a, 0xd4, 0x46, 0x61, 0x88, 0xb0,
+ 0x22, 0x65, 0xa8, 0xc4, 0x10, 0xbd, 0xf9, 0x27,
+ 0x39, 0xec, 0x36, 0xe5, 0xe4, 0x19, 0x68, 0x1b,
+ 0x4b, 0xb5, 0xd3, 0x47, 0x9b, 0x72, 0x6c, 0xa0,
+ 0x6c, 0x2e, 0xf4, 0xe3, 0xef, 0x99, 0xb9, 0x86,
+ 0x71, 0x7a, 0x87, 0xa9, 0x36, 0xb3, 0x2e, 0xa3,
+ 0xad, 0xe3, 0xb6, 0x8d, 0xc8, 0x1b, 0xc0, 0x3e,
+ 0x82, 0xec, 0xeb, 0xe8, 0x8f, 0xf8, 0x61, 0xed,
+ 0x7a, 0xe2, 0xd9, 0x6e, 0x87, 0x0e, 0xcf, 0x83,
+ 0x08, 0x2c, 0xf7, 0x0c, 0x51, 0x5e, 0x06, 0xca,
+ 0x22, 0xa2, 0x04, 0x5d, 0x31, 0xb5, 0x6d, 0xb5,
+ 0x2a, 0xed, 0xf9, 0xb7, 0x24, 0xb6, 0x9e, 0xa1,
+ 0xe2, 0xed, 0x56, 0x29, 0x1f, 0x5e, 0x56, 0xb1,
+ 0xf6, 0xe2, 0x61, 0x95, 0xdf, 0xdd, 0xe7, 0x6e,
+ 0x33, 0x1b, 0x38, 0xdd, 0xbb, 0x5c, 0x6c, 0x42,
+ 0x52, 0x9e, 0x21, 0x20, 0x9e, 0x5b, 0xd5, 0x2b,
+ 0x22, 0x4a, 0x85, 0xd0, 0x09, 0x7c, 0x47, 0x4b,
+ 0xdd, 0xe5, 0xd7, 0x26, 0x55, 0x86, 0x98, 0x76,
+ 0x37, 0xdf, 0x43, 0x7f, 0x3a, 0x54, 0xbc, 0x61,
+ 0xef, 0x26, 0xfe, 0xc0, 0xe6, 0xc3, 0xc9, 0xca,
+ 0xd1, 0x46, 0xdf, 0x53, 0xd3, 0xb6, 0xbf, 0x37,
+ 0x58, 0x8e, 0x2e, 0x02, 0xa4, 0xfc, 0x82, 0xef,
+ 0x96, 0xfc, 0x07, 0x7a, 0x0f, 0x91, 0xe3, 0xbf,
+ 0x32, 0x8a, 0xc8, 0xee, 0xf1, 0x6d, 0xac, 0xd4,
+ 0x3e, 0x58, 0xa9, 0x26, 0x29, 0x8a, 0xdd, 0x5a,
+ 0x7c, 0xdd, 0xc1, 0x6a, 0x04, 0x52, 0x04, 0x69,
+ 0x09, 0x53, 0xe1, 0xb2, 0x48, 0x6e, 0xd7, 0x96,
+ 0xa4, 0x1b, 0xcf, 0xf0, 0x75, 0x11, 0xe0, 0xa3,
+ 0xca, 0x5d, 0xd9, 0x9a, 0xa7, 0xee, 0xc5, 0x13,
+ 0x41, 0x2b, 0x3b, 0xed, 0xca, 0xec, 0xc6, 0x7b,
+ 0x0a, 0x72, 0x56, 0x1a, 0x47, 0x19, 0xc1, 0xf5,
+ 0x36, 0x37, 0xab, 0x23, 0x8e, 0xed, 0xdc, 0x3d,
+ 0xf6, 0xc9, 0xb1, 0x17, 0x36, 0xd6, 0xba, 0x63,
+ 0x62, 0x7e, 0xbd, 0x83, 0xfa, 0xbe, 0x36, 0x26,
+ 0x3e, 0xb3, 0xec, 0x59, 0xbd, 0xaf, 0xd3, 0x9e,
+ 0x38, 0xca, 0x62, 0x04, 0x95, 0x77, 0x5c, 0xf4,
+ 0xb4, 0x2a, 0x4c, 0xcb, 0x91, 0x83, 0xe8, 0xcf,
+ 0x04, 0x6c, 0x0a, 0x02, 0x41, 0x18, 0x5d, 0x75,
+ 0xf1, 0xa5, 0x11, 0x38, 0x0e, 0x65, 0x83, 0x76,
+ 0x83, 0xa5, 0xf3, 0xd7, 0xd1, 0x81, 0xf6, 0xf8,
+ 0x51, 0xb0, 0xd7, 0x5d, 0x88, 0x3e, 0xe9, 0xcf,
+ 0xcd, 0xe0, 0x8a, 0x1c, 0x00, 0xb7, 0x40, 0x3d,
+ 0x55, 0x67, 0xbd, 0x3a, 0x93, 0x16, 0x58, 0xb5,
+ 0xe0, 0xaa, 0xe3, 0x66, 0x33, 0xe2, 0x25, 0x78,
+ 0x5c, 0xec, 0x02, 0xd1, 0x7b, 0x2e, 0xea, 0xd0,
+ 0x4e, 0xe7, 0x5a, 0xc5, 0xc6, 0x15, 0xe5, 0xfe,
+ 0xad, 0x46, 0x72, 0xd0, 0x57, 0x68, 0x8d, 0x63,
+ 0xcb, 0x8a, 0x0a, 0x76, 0xa0, 0xd0, 0x71, 0xa1,
+ 0x49, 0xc6, 0xb8, 0x20, 0x4c, 0x65, 0xee, 0x60,
+ 0x1c, 0xeb, 0x2a, 0x94, 0xe9, 0x51, 0x13, 0x17,
+ 0xcc, 0x37, 0xaf, 0x05, 0x4e, 0x0c, 0x97, 0xb9,
+ 0x6e, 0xae, 0x84, 0x05, 0x44, 0x1f, 0x02, 0xc3,
+ 0x94, 0x2b, 0xfa, 0x8e, 0xe5, 0xb0, 0x5e, 0x4d,
+ 0xf8, 0xc0, 0x6b, 0xa5, 0x88, 0x08, 0xc3, 0x39,
+ 0x7a, 0x06, 0xc0, 0x70, 0xe4, 0xa5, 0x75, 0xa6,
+ 0xaf, 0x6f, 0x72, 0xc6, 0x01, 0x64, 0xee, 0xf0,
+ 0xa0, 0xd5, 0x29, 0x2c, 0x98, 0x1e, 0xf9, 0x9a,
+ 0xfe, 0x26, 0x14, 0xb9, 0xe0, 0x20, 0x07, 0xf9,
+ 0x79, 0x5a, 0x24, 0xce, 0xe9, 0xe0, 0x24, 0xd6,
+ 0xc4, 0x66, 0x79, 0x0f, 0x33, 0x83, 0x5f, 0x65,
+ 0x3e, 0xf8, 0xb3, 0x9c, 0x25, 0x6e, 0xe9, 0x58,
+ 0x1e, 0x6c, 0xae, 0x97, 0x2d, 0xb0, 0x20, 0x5f,
+ 0x5b, 0x00, 0x68, 0x2e, 0x5c, 0x02, 0x3d, 0x97,
+ 0x03, 0x83, 0xb7, 0xae, 0xc5, 0x50, 0x70, 0x7b,
+ 0xc9, 0x57, 0xa8, 0x8e, 0xc7, 0x89, 0x46, 0xa8,
+ 0xf4, 0x69, 0x12, 0x82, 0x62, 0x0d, 0x11, 0xe6,
+ 0x00, 0xc8, 0xd0, 0xdc, 0xe6, 0x0d, 0xb2, 0xa8,
+ 0x4c, 0xbd, 0xe2, 0x51, 0x07, 0x79, 0x61, 0x50,
+ 0xa7, 0xb0, 0x08, 0x3c, 0xd3, 0x77, 0xdb, 0x20,
+ 0xf8, 0x26, 0x81, 0x60, 0xfa, 0xd8, 0xeb, 0x66,
+ 0x36, 0xce, 0x6c, 0x18, 0x2e, 0xaf, 0x97, 0xa4,
+ 0xa6, 0x10, 0x06, 0x30, 0x71, 0xee, 0x59, 0x6e,
+ 0x0c, 0x70, 0x0f, 0x0e, 0x64, 0xf9, 0x8a, 0x54,
+ 0x66, 0xa8, 0x53, 0xaa, 0x0c, 0x7c, 0xf8, 0xda,
+ 0x63, 0xd8, 0x0d, 0x04, 0xff, 0xfd, 0xbb, 0x61,
+ 0x88, 0x65, 0x14, 0xd7, 0x7a, 0x9a, 0x90, 0xdd,
+ 0x04, 0xe6, 0xf6, 0x15, 0xf8, 0xef, 0xf4, 0x26,
+ 0x5c, 0xdb, 0x20, 0x5a, 0x65, 0x25, 0x4b, 0x55,
+ 0xb6, 0x7a, 0x91, 0x9c, 0xb0, 0x24, 0x28, 0x35,
+ 0xaa, 0xea, 0x02, 0xcc, 0x87, 0x4a, 0x06, 0xd3,
+ 0xc6, 0x59, 0xd3, 0xfe, 0x35, 0xe6, 0x49, 0xf6,
+ 0x99, 0x14, 0x99, 0x50, 0xd9, 0x25, 0xc3, 0x01,
+ 0x47, 0xcd, 0xbc, 0x06, 0x9a, 0xb8, 0x8e, 0x79,
+ 0xe9, 0xeb, 0xa6, 0x3c, 0x12, 0xf7, 0xca, 0xda,
+ 0x28, 0x22, 0x85, 0x13, 0xe9, 0x3f, 0x37, 0xc5,
+ 0x9c, 0x04, 0x54, 0xab, 0x49, 0x73, 0xe7, 0xb4,
+ 0xd1, 0xf4, 0x22, 0x85, 0x88, 0xb2, 0xdd, 0xb0,
+ 0x2d, 0xfa, 0xcb, 0xa8, 0xd2, 0xc4, 0x22, 0xda,
+ 0xb7, 0x9f, 0xf4, 0x8c, 0xf4, 0xac, 0xd6, 0xef,
+ 0x81, 0x46, 0x68, 0x61, 0x2b, 0xef, 0xab, 0xc3,
+ 0x9b, 0x99, 0xb0, 0x05, 0x4e, 0xce, 0x92, 0x76,
+ 0x0c, 0xb3, 0x6f, 0xe6, 0x6b, 0xd8, 0xb0, 0x8f,
+ 0x0a, 0x23, 0xff, 0x82, 0x91, 0xa0, 0x5f, 0x15,
+ 0xc6, 0xf9, 0x6e, 0x6a, 0x82, 0x58, 0xbf, 0xbd,
+ 0xb0, 0x37, 0x18, 0xd8, 0xe5, 0x1a, 0x7d, 0x60,
+ 0x1a, 0xc3, 0x91, 0xa5, 0xa5, 0x2b, 0x21, 0x71,
+ 0x7b, 0xa7, 0x4f, 0xb0, 0xfd, 0x7f, 0x6b, 0xaa,
+ 0x4d, 0xc1, 0x47, 0xf9, 0x9f, 0x41, 0xbe, 0x94,
+ 0x7c, 0x45, 0x02, 0xb1, 0xb5, 0x01, 0xb2, 0xd3,
+ 0xaf, 0xcd, 0x98, 0x80, 0x26, 0x9b, 0x6d, 0x87,
+ 0xd4, 0xe7, 0x6f, 0x34, 0x49, 0x33, 0x4f, 0x62,
+ 0x06, 0x99, 0x02, 0x82, 0x66, 0x45, 0xaa, 0x9a,
+ 0x8c, 0x1c, 0x37, 0x1d, 0xfe, 0x32, 0x0f, 0x74,
+ 0x0f, 0x51, 0x3a, 0x55, 0x9b, 0xcb, 0x9d, 0xb7,
+ 0x64, 0x49, 0xe9, 0xe9, 0x74, 0xaf, 0x40, 0xde,
+ 0x0b, 0x8b, 0xb4, 0x8f, 0x6e, 0x3d, 0x4e, 0x04,
+ 0xd7, 0x1e, 0xb9, 0xee, 0xd1, 0x7e, 0xa9, 0x65,
+ 0x80, 0x2a, 0xb1, 0x85, 0xec, 0xaa, 0x67, 0x3b,
+ 0x07, 0x5c, 0xdb, 0x49, 0xd1, 0xbb, 0x4b, 0x56,
+ 0x3b, 0x3e, 0x48, 0xbf, 0x82, 0xd0, 0x1a, 0xd6,
+ 0x43, 0xe2, 0xf1, 0x56, 0x32, 0xc1, 0xad, 0x02,
+ 0xf3, 0xac, 0x5d, 0x5b, 0x30, 0x18, 0xcf, 0x17,
+ 0x47, 0x72, 0x36, 0x2c, 0x23, 0xed, 0x0f, 0x23,
+ 0xa4, 0xb5, 0x6f, 0x95, 0x6a, 0xde, 0x62, 0xd8,
+ 0xeb, 0x33, 0xb0, 0x50, 0x2b, 0x50, 0xcf, 0xab,
+ 0x5d, 0x0b, 0x43, 0x09, 0x55, 0xb8, 0xe7, 0xba,
+ 0xb4, 0xa1, 0xae, 0x74, 0x0a, 0x96, 0x15, 0xf8,
+ 0xe5, 0x67, 0xd0, 0x90, 0xeb, 0x31, 0x65, 0xe9,
+ 0x5c, 0x9f, 0x84, 0x96, 0xb4, 0x09, 0xad, 0xc1,
+ 0x61, 0x85, 0x32, 0xe5, 0xcd, 0xfc, 0x3e, 0xf5,
+ 0xde, 0xe4, 0x37, 0xa4, 0x58, 0xc6, 0xfa, 0xea,
+ 0xba, 0x4c, 0x93, 0x73, 0xfd, 0x3a, 0x33, 0x9e,
+ 0x13, 0x36, 0xfd, 0x36, 0x0c, 0x17, 0xc8, 0x78,
+ 0xee, 0x18, 0xc3, 0x1c, 0xb5, 0x43, 0x04, 0xb5,
+ 0xa2, 0x45, 0xbd, 0xf6, 0x7e, 0x26, 0xce, 0xa5,
+ 0x46, 0xc7, 0x3f, 0x9d, 0x80, 0x24, 0x41, 0x45,
+ 0xd2, 0xa3, 0xec, 0x2d, 0x92, 0xbc, 0x77, 0xd2,
+ 0x45, 0xc9, 0x7e, 0x89, 0xc7, 0x40, 0xfd, 0xe9,
+ 0x59, 0x02, 0x28, 0x8c, 0x73, 0x6f, 0xeb, 0x1a,
+ 0x6a, 0x4e, 0x79, 0x23, 0x92, 0xed, 0xc9, 0x56,
+ 0x25, 0xb3, 0x13, 0x76, 0x3c, 0xee, 0x7f, 0x14,
+ 0x2f, 0xa1, 0x8f, 0x28, 0x3d, 0xbe, 0x7f, 0xbe,
+ 0x1a, 0x10, 0xa7, 0x68, 0xf9, 0x5d, 0x48, 0x71,
+ 0xaa, 0x1e, 0x42, 0x91, 0x3c, 0x47, 0xb6, 0xf5,
+ 0x48, 0x1d, 0x8f, 0xa8, 0x8a, 0x9e, 0xa4, 0xea,
+ 0x4b, 0xcb, 0xea, 0x96, 0xe6, 0x67, 0xa4, 0xf9,
+ 0x3c, 0xba, 0x7a, 0x5a, 0x9e, 0x5e, 0xee, 0x11,
+ 0xdd, 0xaa, 0xda, 0xa2, 0xf2, 0xf9, 0xa6, 0x5b,
+ 0xbd, 0x62, 0x23, 0x2b, 0x7c, 0x7f, 0x23, 0xec,
+ 0x1a, 0x2c, 0x49, 0x52, 0xa0, 0xd6, 0x08, 0x12,
+ 0x22, 0x2d, 0x3e, 0x3f, 0x90, 0x99, 0xbf, 0xf2,
+ 0x40, 0x54, 0x73, 0x7c, 0xe5, 0xf7, 0x1f, 0x43,
+ 0x92, 0xaf, 0xb3, 0xd7, 0x3d, 0x53, 0x62, 0x68,
+ 0x79, 0xea, 0x50, 0x7e, 0x82, 0x83, 0xa8, 0xae,
+ 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
+ 0x10, 0x16, 0x1c, 0x22, 0x29, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0xe8, 0xd0, 0x2e, 0x36, 0x7d, 0x73, 0x4e, 0xc4,
+ 0x1c, 0xf6, 0xda, 0x86, 0x13, 0xcf, 0xfd, 0x49,
+ 0xcd, 0x53, 0xd2, 0x13, 0x5f, 0xfa, 0x28, 0xf0,
+ 0x49, 0x2d, 0x0c, 0x20, 0x21, 0x02, 0xdc, 0x87,
+ 0x87, 0x9c, 0x19, 0xe8, 0x97, 0x51, 0x5a, 0x02,
+ 0x30, 0x57, 0x9c, 0x68, 0xc0, 0x56, 0x0d, 0x2c,
+ 0x75, 0x36, 0xa4, 0x4d, 0x76, 0x6e, 0x60, 0xb8,
+ 0x6a, 0x0a, 0x2a, 0xb7, 0x8d, 0x6f, 0x44, 0x0e,
+ 0xd1, 0xdb, 0xd5, 0x63, 0x87, 0xa4, 0xc2, 0xcb,
+ 0x7b, 0x46, 0x28, 0x4e, 0xd9, 0xf7, 0x9d, 0x8e,
+ 0xc4, 0xc0, 0x61, 0x93, 0x2d, 0xa1, 0xf8, 0x56,
+ 0x10, 0xdf, 0xbb, 0x7a, 0xac, 0x79, 0x9a, 0x2f,
+ 0xd3, 0xe7, 0x2f, 0xd1, 0x1c, 0xee, 0xa9, 0xe2,
+ 0x82, 0x45, 0x9e, 0x8a, 0x6b, 0x91, 0xcd, 0x91,
+ 0x3c, 0xcd, 0x73, 0x85, 0x83, 0x60, 0x57, 0x4e,
+ 0x86, 0x59, 0x5f, 0x5b, 0xa7, 0xf9, 0x00, 0x2b,
+ 0xba, 0x4e, 0x4c, 0xc6, 0x0e, 0x7d, 0x1b, 0xef,
+ 0x11, 0x23, 0x1b, 0x48, 0x4f, 0xba, 0x5a, 0x40,
+ 0xb2, 0xea, 0x86, 0xcf, 0xc0, 0xb2, 0x69, 0x19,
+ 0x43, 0x75, 0x95, 0x5b, 0x7f, 0xd7, 0x12, 0x39,
+ 0xcd, 0xf5, 0x92, 0xad, 0xda, 0xc9, 0xc1, 0x4b,
+ 0xde, 0xcb, 0x99, 0xbf, 0xa8, 0x19, 0x5b, 0x68,
+ 0x0d, 0xd1, 0x11, 0xa9, 0x39, 0x0f, 0xb4, 0x00,
+ 0xa0, 0xf3, 0xd8, 0x51, 0xd0, 0x4d, 0xfe, 0x07,
+ 0xe4, 0x10, 0x76, 0x24, 0xf5, 0xec, 0x1a, 0xd5,
+ 0xad, 0x52, 0x13, 0xe7, 0x39, 0xfb, 0x53, 0x0f,
+ 0x62, 0xff, 0xfd, 0xa0, 0xd4, 0x9b, 0xb2, 0x53,
+ 0xce, 0xfa, 0xcd, 0x7a, 0xce, 0x8e, 0x65, 0xf1,
+ 0xcf, 0x9c, 0x97, 0x64, 0xd8, 0x37, 0xfe, 0xa5,
+ 0xa8, 0x46, 0xdf, 0xba, 0xc6, 0xdb, 0x35, 0xc0,
+ 0xf4, 0x0b, 0x3b, 0xa7, 0xdd, 0x75, 0x7a, 0x06,
+ 0x78, 0x53, 0x95, 0xd3, 0x96, 0x89, 0x53, 0x4d,
+ 0x2c, 0xc6, 0xcf, 0xfa, 0xab, 0x1d, 0xb9, 0x2e,
+ 0x79, 0x25, 0xe4, 0x30, 0x1d, 0x75, 0x8f, 0x5a,
+ 0x93, 0x86, 0xd0, 0x2b, 0xb3, 0x0a, 0x7d, 0xec,
+ 0x46, 0xde, 0x32, 0x3b, 0x61, 0xea, 0xae, 0x93,
+ 0x94, 0xa3, 0xd2, 0x38, 0xc9, 0x0f, 0x34, 0x5a,
+ 0xed, 0x84, 0x31, 0xcf, 0x78, 0x9a, 0xcd, 0xf8,
+ 0xf3, 0x98, 0xf2, 0x4e, 0x89, 0xa2, 0xbb, 0x7b,
+ 0xdb, 0x1c, 0xa5, 0xcc, 0x37, 0x4a, 0x28, 0xaf,
+ 0xdc, 0xe7, 0x1c, 0x3c, 0x65, 0x7d, 0xad, 0xb2,
+ 0xa1, 0x1e, 0x07, 0x22, 0x66, 0x48, 0x89, 0x14,
+ 0x0c, 0x0e, 0xba, 0xef, 0x54, 0xbc, 0xb5, 0xcb,
+ 0xa5, 0x2b, 0x3b, 0x59, 0x9e, 0x7c, 0xc9, 0x01,
+ 0xa8, 0xcb, 0xf4, 0x34, 0x01, 0x33, 0x7d, 0x61,
+ 0x12, 0x49, 0x63, 0x8b, 0xba, 0x81, 0xf2, 0xd9,
+ 0x2b, 0x94, 0xdf, 0xbb, 0xe2, 0x7c, 0x22, 0x92,
+ 0xd3, 0x49, 0xd6, 0x84, 0x28, 0x50, 0x8e, 0xf0,
+ 0x1d, 0x5a, 0x69, 0xd9, 0x7a, 0xc1, 0x29, 0x83,
+ 0x89, 0x0e, 0xfc, 0xd0, 0xb0, 0xf1, 0x1d, 0xb6,
+ 0x92, 0xa4, 0xbb, 0x38, 0x2e, 0x57, 0x44, 0x11,
+ 0xba, 0x5c, 0x9e, 0xba, 0x56, 0x27, 0xa2, 0xf4,
+ 0xb5, 0xe6, 0x29, 0x19, 0x05, 0x3b, 0xb1, 0x4e,
+ 0x42, 0x37, 0x7c, 0x3c, 0xde, 0x7d, 0x57, 0x27,
+ 0x15, 0x63, 0xf6, 0x9f, 0xa6, 0xdd, 0x6c, 0xfb,
+ 0xde, 0x86, 0xa3, 0x40, 0xbf, 0xf0, 0x37, 0xcf,
+ 0x8a, 0x65, 0x5c, 0x95, 0xdb, 0x0c, 0x9d, 0xf7,
+ 0x8d, 0x8f, 0xe1, 0x21, 0x9b, 0x5e, 0x99, 0xba,
+ 0xb0, 0x95, 0x71, 0x4c, 0x83, 0x0b, 0x53, 0x21,
+ 0xee, 0x17, 0x3f, 0x9e, 0xf7, 0x88, 0x29, 0x68,
+ 0x22, 0x8f, 0xd2, 0x68, 0x47, 0x8c, 0x4d, 0x6e,
+ 0xf8, 0x4d, 0xc2, 0x6d, 0xcd, 0x46, 0x99, 0x4c,
+ 0x97, 0xe7, 0x57, 0x39, 0xfb, 0x80, 0x49, 0x4a,
+ 0x44, 0x8d, 0x54, 0x2e, 0x8e, 0x22, 0x24, 0x3f,
+ 0x98, 0x64, 0x34, 0x1d, 0x49, 0xa9, 0xe1, 0x2a,
+ 0x64, 0x40, 0xde, 0x06, 0x9b, 0xf6, 0x3f, 0x9d,
+ 0x34, 0x5b, 0x39, 0x54, 0x45, 0x08, 0x78, 0x88,
+ 0xd7, 0x1c, 0x72, 0xe0, 0xe3, 0x0d, 0x12, 0x4e,
+ 0x11, 0x2c, 0xe2, 0xe4, 0xa8, 0x53, 0xd1, 0x6a,
+ 0x81, 0x71, 0x80, 0x8a, 0xde, 0x47, 0x62, 0x22,
+ 0x54, 0x8a, 0x87, 0xf8, 0x31, 0xb9, 0x3e, 0x38,
+ 0x9e, 0xfc, 0xc0, 0xc7, 0x67, 0x5c, 0x1f, 0xa0,
+ 0xff, 0xc1, 0x43, 0xa2, 0xc6, 0x8e, 0xfd, 0xde,
+ 0x0b, 0xde, 0xb3, 0xd8, 0xb4, 0xd2, 0xfd, 0xc6,
+ 0x9c, 0x81, 0xe9, 0x00, 0xc0, 0x46, 0x98, 0x09,
+ 0xdb, 0x73, 0xfe, 0x97, 0xd1, 0x4d, 0xff, 0x3a,
+ 0xbf, 0xd4, 0xd7, 0x2b, 0x4f, 0x90, 0xf6, 0xd5,
+ 0x12, 0x49, 0xbc, 0xb9, 0xab, 0x8f, 0x44, 0xf1,
+ 0xaa, 0xef, 0x6b, 0x6f, 0x68, 0x05, 0x96, 0x1c,
+ 0x09, 0x83, 0x3c, 0x76, 0xa9, 0xe4, 0x22, 0x00,
+ 0x9c, 0x76, 0xa6, 0x9d, 0xe5, 0xdb, 0xb5, 0x91,
+ 0xa2, 0x67, 0x8c, 0xb6, 0xda, 0xb0, 0xe2, 0xb5,
+ 0x80, 0x42, 0x23, 0x3a, 0x8d, 0xca, 0x8f, 0x77,
+ 0xf3, 0x13, 0x18, 0x4f, 0xc7, 0x68, 0xaf, 0x5e,
+ 0x68, 0x04, 0xc7, 0x6b, 0xa9, 0x88, 0x03, 0x3d,
+ 0xb4, 0x0f, 0x2d, 0x60, 0x0d, 0x5b, 0xa4, 0x03,
+ 0xd8, 0x97, 0x1a, 0x38, 0x24, 0x05, 0x1b, 0x6a,
+ 0xd8, 0x25, 0x34, 0xe4, 0x53, 0xab, 0x80, 0xcc,
+ 0x71, 0x17, 0x82, 0x3f, 0xa8, 0x67, 0xb8, 0x84,
+ 0xde, 0xab, 0x2f, 0xf7, 0x5d, 0x63, 0xba, 0xd6,
+ 0x1b, 0x94, 0xae, 0x06, 0x93, 0xea, 0x7e, 0xc6,
+ 0x7c, 0x22, 0x6d, 0xaa, 0xc6, 0xf2, 0xee, 0x38,
+ 0x1b, 0x24, 0x7e, 0x6e, 0x7d, 0xcf, 0x68, 0xcd,
+ 0x30, 0xb1, 0x8e, 0x42, 0x8b, 0xd8, 0x97, 0xb2,
+ 0xfb, 0x03, 0x99, 0x07, 0xf6, 0x13, 0x0e, 0xda,
+ 0x3f, 0x50, 0x4b, 0x94, 0x7f, 0x41, 0x63, 0x1d,
+ 0xa6, 0xcc, 0x8e, 0xff, 0xf7, 0x7d, 0x05, 0x1f,
+ 0x73, 0x7e, 0xaf, 0xbc, 0x14, 0xdd, 0x3c, 0x61,
+ 0xbd, 0x96, 0xa1, 0x12, 0xd5, 0xb0, 0xc2, 0xeb,
+ 0x27, 0x3b, 0x97, 0x0d, 0xc6, 0x78, 0xfa, 0x97,
+ 0x63, 0xee, 0xce, 0xfe, 0xe2, 0x33, 0x66, 0x36,
+ 0xd6, 0x41, 0x52, 0xfa, 0xd1, 0x6a, 0xb3, 0x62,
+ 0x01, 0x07, 0xd8, 0x12, 0xc3, 0xc0, 0xe3, 0xd7,
+ 0x40, 0x86, 0xe3, 0x13, 0xa1, 0x11, 0xc6, 0x05,
+ 0xe3, 0x84, 0xa3, 0x76, 0xa2, 0x0c, 0x60, 0xca,
+ 0x42, 0xbe, 0x0c, 0x3d, 0x04, 0x91, 0xe3, 0xc2,
+ 0xd3, 0xbd, 0x0c, 0xd3, 0x0d, 0x24, 0x7b, 0x5f,
+ 0x19, 0xe4, 0x79, 0x59, 0xf1, 0x47, 0x1a, 0xd4,
+ 0x4c, 0xc6, 0x23, 0x5e, 0x4f, 0x3e, 0x54, 0x0d,
+ 0x06, 0x70, 0xb4, 0x50, 0x7e, 0xe8, 0xfb, 0x78,
+ 0x5c, 0x09, 0x26, 0x1a, 0x3f, 0xf7, 0x24, 0x70,
+ 0x9c, 0x54, 0xc7, 0xdd, 0x27, 0x5f, 0x11, 0x75,
+ 0x96, 0x5c, 0xad, 0xfe, 0x5f, 0x7c, 0x42, 0x4f,
+ 0x3d, 0xa7, 0x1e, 0x6f, 0x7e, 0x6f, 0xdc, 0xd7,
+ 0xad, 0x0f, 0xf9, 0x6f, 0xb1, 0xfd, 0xca, 0xdf,
+ 0xcf, 0x59, 0xe4, 0x86, 0x69, 0x37, 0x34, 0xaa,
+ 0xc8, 0xe2, 0xca, 0x3b, 0xcc, 0x48, 0x86, 0xe3,
+ 0xee, 0xea, 0x25, 0x54, 0x94, 0x1b, 0x30, 0xbd,
+ 0x39, 0xb0, 0xe3, 0x41, 0xa5, 0xab, 0x03, 0x7b,
+ 0x12, 0xfb, 0x1f, 0x6e, 0x4e, 0xaa, 0xf5, 0x41,
+ 0xa0, 0x5c, 0xa2, 0xaa, 0xc4, 0x6b, 0xc9, 0xa6,
+ 0xca, 0x61, 0x78, 0xcb, 0xcd, 0x2a, 0x47, 0x31,
+ 0xf8, 0x8a, 0x90, 0x4f, 0x88, 0xb3, 0x3e, 0x4d,
+ 0x6b, 0x75, 0x74, 0x4d, 0x00, 0x7c, 0xc8, 0x29,
+ 0x9b, 0xe9, 0xf7, 0x6f, 0xec, 0xa3, 0xf0, 0x43,
+ 0x10, 0x05, 0x88, 0xee, 0x3a, 0x5f, 0x96, 0x31,
+ 0xfa, 0xe3, 0xca, 0x31, 0x38, 0x48, 0x9b, 0x9d,
+ 0xe9, 0x4e, 0x5f, 0x45, 0xc1, 0xc0, 0x70, 0x70,
+ 0xec, 0x1b, 0x95, 0x77, 0x14, 0xda, 0xe2, 0xf1,
+ 0x0c, 0xba, 0xf5, 0x38, 0xc5, 0x0e, 0x07, 0xbe,
+ 0x54, 0x1f, 0x70, 0x22, 0x79, 0x88, 0xc8, 0x4b,
+ 0xd7, 0xae, 0x5b, 0x5a, 0x15, 0xbc, 0xa5, 0x1c,
+ 0x5d, 0xee, 0xcf, 0x9a, 0xa2, 0xde, 0x79, 0x77,
+ 0x40, 0xb3, 0x32, 0xd5, 0x31, 0x50, 0x91, 0x30,
+ 0x56, 0xbc, 0x26, 0xa2, 0x50, 0x44, 0x1d, 0xdc,
+ 0xa8, 0x5c, 0xbf, 0x7b, 0x19, 0xfb, 0x0f, 0xc3,
+ 0x78, 0x12, 0x29, 0xbe, 0xc0, 0x74, 0xd5, 0xc2,
+ 0xac, 0xce, 0xf9, 0x34, 0xb3, 0x6d, 0x9b, 0xfd,
+ 0x55, 0x10, 0x3d, 0xa5, 0x05, 0xee, 0x03, 0x52,
+ 0xc8, 0x05, 0xd0, 0x22, 0xc0, 0xee, 0x7a, 0x19,
+ 0x17, 0x19, 0x28, 0x01, 0xfc, 0x08, 0x04, 0x27,
+ 0x62, 0x61, 0xf8, 0xc3, 0x91, 0x68, 0xd9, 0xb6,
+ 0x9d, 0x9f, 0xa4, 0x40, 0xd2, 0x5d, 0xfe, 0xb5,
+ 0xae, 0x94, 0xee, 0x07, 0x52, 0x59, 0xf6, 0x63,
+ 0x23, 0xb9, 0xf0, 0xc9, 0xd3, 0x55, 0xca, 0xbc,
+ 0xfa, 0x80, 0x5f, 0x96, 0x5b, 0x5e, 0x64, 0x0e,
+ 0x1c, 0x47, 0x56, 0xc6, 0xee, 0x75, 0x7c, 0x90,
+ 0xd4, 0x2f, 0x97, 0xce, 0x85, 0x9a, 0x84, 0x37,
+ 0xb6, 0x0d, 0x79, 0x65, 0x3f, 0xb5, 0xa3, 0xe8,
+ 0xff, 0xac, 0xeb, 0x2b, 0x11, 0x40, 0xb3, 0xb3,
+ 0x9c, 0xf6, 0x0e, 0xde, 0xb1, 0x76, 0x63, 0x84,
+ 0xd3, 0x29, 0x52, 0x69, 0x6a, 0x3a, 0xc0, 0x7f,
+ 0x81, 0xf0, 0x87, 0xc6, 0x92, 0xd3, 0x5f, 0xb1,
+ 0x48, 0x92, 0x98, 0x25, 0xc0, 0x43, 0x19, 0x1c,
+ 0x68, 0xf1, 0x2a, 0x5b, 0xfb, 0x3c, 0xd3, 0xc6,
+ 0x19, 0x7b, 0x9e, 0x66, 0xe0, 0xbe, 0x74, 0x57,
+ 0x35, 0x6e, 0x6e, 0xf9, 0x03, 0x76, 0x7c, 0x1c,
+ 0xce, 0x44, 0x5f, 0x6d, 0xd5, 0xea, 0x8f, 0x4a,
+ 0x0c, 0x85, 0x3b, 0xa2, 0xf7, 0x51, 0x27, 0x41,
+ 0x95, 0x5d, 0x00, 0x06, 0x44, 0x9f, 0x98, 0x61,
+ 0x7b, 0x48, 0x36, 0xa5, 0xb4, 0xb6, 0x0f, 0x27,
+ 0x1a, 0xac, 0x63, 0x24, 0xf6, 0x46, 0x51, 0xc5,
+ 0x44, 0xba, 0x39, 0x71, 0x69, 0x33, 0x20, 0x1f,
+ 0xc3, 0x50, 0xbe, 0xc3, 0xd3, 0x55, 0x59, 0x43,
+ 0xc9, 0x4e, 0x68, 0xdf, 0x1d, 0xca, 0x0b, 0xe2,
+ 0x11, 0x61, 0x01, 0xe2, 0x5a, 0xd5, 0xed, 0x6b,
+ 0xbf, 0x76, 0x02, 0x88, 0x9e, 0xf0, 0x1c, 0x57,
+ 0x1c, 0xb0, 0x99, 0x89, 0x4d, 0xd9, 0xcf, 0x10,
+ 0x49, 0x9b, 0x26, 0x0f, 0xfb, 0xf8, 0x10, 0x6c,
+ 0x3f, 0x41, 0x78, 0x0d, 0xa3, 0xdc, 0x5d, 0x18,
+ 0xe7, 0x3c, 0xa8, 0x4f, 0x70, 0xf7, 0x82, 0xef,
+ 0x15, 0xcf, 0x5c, 0x00, 0x15, 0x41, 0x38, 0x56,
+ 0x3c, 0x4c, 0x2e, 0xbc, 0xb1, 0x34, 0x35, 0xce,
+ 0x18, 0xc4, 0xa2, 0xb4, 0xea, 0xc2, 0xac, 0x0e,
+ 0x63, 0x23, 0x20, 0xa1, 0x72, 0x19, 0x6a, 0x21,
+ 0x75, 0xcd, 0xab, 0xcc, 0xdb, 0x92, 0xc9, 0x55,
+ 0x1c, 0x60, 0xcc, 0xcd, 0xa1, 0x33, 0x28, 0x4a,
+ 0x83, 0x79, 0x14, 0x0a, 0x79, 0x40, 0x15, 0x4b,
+ 0x13, 0x1b, 0x50, 0x95, 0x4b, 0x78, 0x0f, 0x9d,
+ 0x56, 0x18, 0xa1, 0x4e, 0x5f, 0x82, 0x85, 0x2f,
+ 0xa0, 0x54, 0x11, 0xad, 0x58, 0xe0, 0x2d, 0x37,
+ 0x87, 0x2c, 0xec, 0x35, 0xe2, 0xa4, 0xf1, 0x53,
+ 0x31, 0xbb, 0xa9, 0xd4, 0x86, 0x2f, 0x80, 0xe9,
+ 0x03, 0x1e, 0xe4, 0x72, 0x98, 0x1a, 0x98, 0x83,
+ 0xf4, 0x27, 0x64, 0xf5, 0xc7, 0x8c, 0x9e, 0xec,
+ 0x22, 0xe4, 0x37, 0x6a, 0xef, 0x3e, 0x7f, 0x11,
+ 0x0e, 0xdd, 0x32, 0xf9, 0xf5, 0x43, 0x21, 0x27,
+ 0x7d, 0x6d, 0xa3, 0xe8, 0x75, 0xf4, 0x06, 0x9e,
+ 0xda, 0x53, 0x49, 0x07, 0x87, 0x91, 0xbe, 0xe9,
+ 0xf2, 0xae, 0xa3, 0x26, 0x1a, 0xc2, 0x35, 0x07,
+ 0x21, 0x9b, 0x60, 0x56, 0xfb, 0xce, 0xf8, 0x9f,
+ 0x8b, 0x46, 0xef, 0x2d, 0x24, 0x70, 0x12, 0xb2,
+ 0x9d, 0x3c, 0x6b, 0xed, 0xa4, 0xe4, 0x74, 0x98,
+ 0xc0, 0xd2, 0x49, 0xea, 0x52, 0x91, 0x47, 0x5d,
+ 0x60, 0xf5, 0x5c, 0x81, 0x86, 0xe6, 0x70, 0xcb,
+ 0x6c, 0xe4, 0xa3, 0x0d, 0x1f, 0xe7, 0xd0, 0x90,
+ 0xb0, 0xe7, 0x8a, 0xa6, 0x87, 0x96, 0xaa, 0xd2,
+ 0xf4, 0x3b, 0xaa, 0x3b, 0xfc, 0xf3, 0x29, 0xdd,
+ 0xd3, 0xce, 0x4c, 0xfa, 0x52, 0x7a, 0xef, 0xf0,
+ 0x27, 0x16, 0x15, 0x23, 0x9b, 0x40, 0x01, 0x4c,
+ 0x66, 0x80, 0xc1, 0xdd, 0x00, 0x31, 0xfa, 0x23,
+ 0xa2, 0x24, 0x72, 0xa7, 0xd2, 0x50, 0xf4, 0x26,
+ 0x83, 0x31, 0xd1, 0x7d, 0xeb, 0xef, 0x4f, 0x1d,
+ 0xa5, 0xf4, 0xde, 0x8e, 0x45, 0x48, 0x3c, 0x62,
+ 0xde, 0x86, 0x40, 0x1b, 0xbe, 0xd1, 0xa4, 0xb7,
+ 0xa7, 0x5b, 0x6d, 0xe9, 0x26, 0x68, 0x0d, 0xc8,
+ 0x22, 0xa8, 0x62, 0x90, 0x33, 0xce, 0x9d, 0xaf,
+ 0x58, 0x6b, 0x4d, 0x14, 0x5b, 0x09, 0xfb, 0xfc,
+ 0x14, 0xc8, 0xa8, 0xbf, 0xb9, 0x4c, 0xc3, 0x7d,
+ 0x0c, 0x89, 0x2d, 0x37, 0xca, 0x65, 0x12, 0x83,
+ 0xb4, 0x6c, 0x08, 0x46, 0x28, 0x86, 0x07, 0x2c,
+ 0x37, 0x1a, 0xaf, 0xf4, 0xfc, 0x6d, 0x71, 0x4c,
+ 0xbd, 0x1f, 0xec, 0xe0, 0x2a, 0xbd, 0x11, 0xdd,
+ 0x41, 0xff, 0x85, 0xe0, 0x18, 0xf0, 0x5c, 0x54,
+ 0x29, 0x98, 0x24, 0xb0, 0x3d, 0x93, 0xc0, 0xe9,
+ 0x7f, 0x42, 0x22, 0x08, 0x5c, 0x61, 0xc8, 0x00,
+ 0x66, 0xa9, 0x1f, 0x20, 0xf1, 0xa7, 0xf4, 0x4d,
+ 0x91, 0xb9, 0xbe, 0xdb, 0x98, 0x42, 0xfc, 0xfb,
+ 0xe8, 0x23, 0xdc, 0x2a, 0x93, 0x4c, 0xdf, 0xd2,
+ 0x12, 0x14, 0x56, 0xe7, 0x13, 0x23, 0xf3, 0x5f,
+ 0x3c, 0x3f, 0xa4, 0x09, 0x0a, 0x3f, 0xe1, 0x86,
+ 0x87, 0x7f, 0x7a, 0xbd, 0xda, 0x97, 0x1b, 0x71,
+ 0x1d, 0xd6, 0x9e, 0xe0, 0x13, 0x72, 0x8b, 0x5a,
+ 0x62, 0x1c, 0xb1, 0x6e, 0xbb, 0x58, 0xac, 0x6e,
+ 0x0c, 0x0f, 0xe7, 0x56, 0xb0, 0xeb, 0x38, 0x23,
+ 0x9c, 0xd9, 0x3b, 0x09, 0xf1, 0xd4, 0xb0, 0xef,
+ 0x79, 0xb1, 0x2d, 0xf1, 0x53, 0xc7, 0xe1, 0xc5,
+ 0xb0, 0x6e, 0x82, 0x70, 0x56, 0xd2, 0x99, 0x0c,
+ 0x5d, 0x65, 0x7f, 0x6d, 0xb1, 0x41, 0x8b, 0xb1,
+ 0xa5, 0x8d, 0x02, 0xf4, 0x5a, 0x9d, 0x48, 0x10,
+ 0x11, 0xa4, 0xc8, 0x11, 0x5a, 0xfb, 0x68, 0x58,
+ 0x9d, 0xef, 0x13, 0xdd, 0x61, 0x63, 0x14, 0xba,
+ 0x4d, 0xd8, 0x05, 0x0e, 0x13, 0xe8, 0x60, 0xf3,
+ 0x2b, 0x44, 0xea, 0x3f, 0x37, 0x6b, 0x10, 0x32,
+ 0x16, 0x3c, 0xbf, 0xf1, 0x4a, 0xf3, 0x4d, 0xe1,
+ 0x6c, 0xcf, 0xb0, 0xbe, 0xc1, 0x67, 0xf8, 0x6d,
+ 0xcd, 0xda, 0x1e, 0x32, 0x0b, 0xc0, 0x92, 0x7b,
+ 0x65, 0xf3, 0x22, 0x1a, 0xb7, 0xbe, 0xaf, 0xeb,
+ 0xf1, 0x83, 0x84, 0x9c, 0x6e, 0xc6, 0xd8, 0x22,
+ 0xb0, 0xbb, 0x74, 0x9f, 0xe8, 0x53, 0x50, 0x75,
+ 0xf4, 0x0a, 0xfc, 0x89, 0x70, 0x0b, 0xc4, 0x4e,
+ 0x2b, 0x0b, 0xce, 0xbc, 0x31, 0xe7, 0xb6, 0x41,
+ 0x8c, 0xcb, 0x7d, 0x92, 0x13, 0x01, 0xf0, 0x1f,
+ 0x2f, 0x54, 0xb3, 0xa8, 0x78, 0xb5, 0x49, 0xb1,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0xe8, 0xd0, 0x2e, 0x36, 0x7d, 0x73, 0x4e, 0xc4,
+ 0x1c, 0xf6, 0xda, 0x86, 0x13, 0xcf, 0xfd, 0x49,
+ 0xcd, 0x53, 0xd2, 0x13, 0x5f, 0xfa, 0x28, 0xf0,
+ 0x49, 0x2d, 0x0c, 0x20, 0x21, 0x02, 0xdc, 0x87,
+ 0x8f, 0xa2, 0x0e, 0x8c, 0x5f, 0xca, 0xe7, 0xfa,
+ 0xc9, 0x4b, 0x80, 0x3b, 0xdd, 0x7b, 0x1b, 0x31,
+ 0x92, 0x76, 0xdd, 0xb3, 0xb1, 0xfa, 0xb7, 0xf5,
+ 0xde, 0x26, 0x3c, 0x63, 0x1b, 0x24, 0x0f, 0x0d,
+ 0x53, 0xff, 0xa3, 0xdb, 0x45, 0xa1, 0xb4, 0x01,
+ 0x48, 0xe1, 0x52, 0x6f, 0x9b, 0xb1, 0xc2, 0xa4,
+ 0xc7, 0x01, 0xf4, 0x37, 0x3f, 0x2f, 0x5b, 0xe6,
+ 0x28, 0x34, 0x17, 0x20, 0x66, 0xec, 0x57, 0x15,
+ 0x25, 0xeb, 0x62, 0x76, 0x27, 0xf4, 0x35, 0x96,
+ 0xde, 0x58, 0x62, 0x6d, 0x23, 0xa1, 0x08, 0xa5,
+ 0x18, 0xeb, 0xac, 0x6f, 0x13, 0x01, 0xd9, 0xf1,
+ 0x5d, 0x20, 0x57, 0xe3, 0xd6, 0x78, 0x66, 0x0c,
+ 0x03, 0x68, 0x30, 0x43, 0x32, 0x57, 0x13, 0x47,
+ 0x05, 0x13, 0x26, 0x76, 0x40, 0x45, 0x47, 0x73,
+ 0x44, 0x83, 0x82, 0x04, 0x28, 0x81, 0x38, 0x28,
+ 0x72, 0x08, 0x11, 0x17, 0x38, 0x43, 0x82, 0x74,
+ 0x83, 0x31, 0x74, 0x48, 0x60, 0x65, 0x62, 0x86,
+ 0x08, 0x84, 0x81, 0x37, 0x32, 0x37, 0x25, 0x86,
+ 0x75, 0x78, 0x22, 0x60, 0x63, 0x65, 0x40, 0x46,
+ 0x06, 0x33, 0x72, 0x70, 0x56, 0x73, 0x18, 0x23,
+ 0x47, 0x51, 0x67, 0x87, 0x52, 0x20, 0x34, 0x37,
+ 0x15, 0x62, 0x17, 0x62, 0x78, 0x08, 0x74, 0x40,
+ 0x28, 0x44, 0x02, 0x20, 0x45, 0x45, 0x56, 0x23,
+ 0x88, 0x43, 0x16, 0x61, 0x25, 0x01, 0x57, 0x71,
+ 0x42, 0x10, 0x82, 0x60, 0x53, 0x76, 0x72, 0x34,
+ 0x43, 0x87, 0x05, 0x60, 0x50, 0x38, 0x07, 0x84,
+ 0x10, 0x67, 0x33, 0x52, 0x73, 0x74, 0x61, 0x83,
+ 0x16, 0x18, 0x00, 0x64, 0x78, 0x03, 0x53, 0x57,
+ 0x36, 0x61, 0x36, 0x57, 0x06, 0x77, 0x54, 0x65,
+ 0x43, 0x20, 0x40, 0x07, 0x30, 0x63, 0x26, 0x17,
+ 0x01, 0x14, 0x24, 0x10, 0x05, 0x11, 0x74, 0x65,
+ 0x66, 0x48, 0x63, 0x71, 0x41, 0x51, 0x17, 0x10,
+ 0x20, 0x08, 0x80, 0x30, 0x28, 0x08, 0x34, 0x53,
+ 0x25, 0x78, 0x61, 0x73, 0x55, 0x37, 0x85, 0x64,
+ 0x84, 0x47, 0x20, 0x08, 0x33, 0x71, 0x80, 0x21,
+ 0x13, 0x64, 0x83, 0x58, 0x65, 0x48, 0x17, 0x24,
+ 0x61, 0x28, 0x42, 0x76, 0x50, 0x18, 0x57, 0x44,
+ 0x82, 0x11, 0x34, 0x64, 0x17, 0x83, 0x86, 0x02,
+ 0x47, 0x18, 0x38, 0x08, 0x81, 0x72, 0x65, 0x44,
+ 0x10, 0x04, 0x83, 0x62, 0x33, 0x86, 0x85, 0x34,
+ 0x77, 0x07, 0x06, 0x13, 0x20, 0x74, 0x73, 0x50,
+ 0x80, 0x48, 0x28, 0x58, 0x02, 0x73, 0x30, 0x87,
+ 0x68, 0x50, 0x41, 0x18, 0x57, 0x35, 0x43, 0x46,
+ 0x04, 0x74, 0x27, 0x16, 0x47, 0x84, 0x03, 0x74,
+ 0x74, 0x86, 0x80, 0x62, 0x20, 0x06, 0x46, 0x72,
+ 0x64, 0x87, 0x62, 0x47, 0x16, 0x25, 0x72, 0x75,
+ 0x10, 0x16, 0x28, 0x56, 0x72, 0x47, 0x63, 0x01,
+ 0x65, 0x14, 0x21, 0x26, 0x34, 0x05, 0x46, 0x80,
+ 0x66, 0x48, 0x86, 0x42, 0x84, 0x88, 0x30, 0x85,
+ 0x16, 0x61, 0x37, 0x88, 0x31, 0x40, 0x88, 0x58,
+ 0x44, 0x58, 0x61, 0x31, 0x27, 0x40, 0x54, 0x20,
+ 0x33, 0x05, 0x42, 0x20, 0x52, 0x77, 0x13, 0x58,
+ 0x18, 0x44, 0x22, 0x52, 0x38, 0x81, 0x80, 0x77,
+ 0x88, 0x31, 0x28, 0x48, 0x57, 0x76, 0x41, 0x03,
+ 0x43, 0x38, 0x71, 0x00, 0x80, 0x40, 0x62, 0x73,
+ 0x55, 0x17, 0x38, 0x75, 0x87, 0x48, 0x52, 0x10,
+ 0x80, 0x30, 0x83, 0x38, 0x35, 0x50, 0x30, 0x43,
+ 0x44, 0x60, 0x63, 0x10, 0x34, 0x05, 0x07, 0x64,
+ 0x56, 0x83, 0x87, 0x13, 0x45, 0x74, 0x88, 0x87,
+ 0x45, 0x03, 0x04, 0x87, 0x62, 0x10, 0x11, 0x38,
+ 0x70, 0x83, 0x62, 0x47, 0x54, 0x63, 0x47, 0x04,
+ 0x23, 0x67, 0x12, 0x27, 0x33, 0x25, 0x31, 0x07,
+ 0x76, 0x62, 0x04, 0x08, 0x11, 0x52, 0x08, 0x27,
+ 0x12, 0x06, 0x48, 0x51, 0x10, 0x11, 0x23, 0x21,
+ 0x22, 0x46, 0x48, 0x17, 0x67, 0x72, 0x54, 0x68,
+ 0x62, 0x40, 0x23, 0x14, 0x15, 0x47, 0x00, 0x17,
+ 0x63, 0x54, 0x42, 0x64, 0x32, 0x67, 0x36, 0x38,
+ 0x65, 0x66, 0x03, 0x62, 0x32, 0x65, 0x31, 0x57,
+ 0x20, 0x40, 0x21, 0x40, 0x63, 0x40, 0x11, 0x27,
+ 0x37, 0x06, 0x71, 0x80, 0x36, 0x73, 0x28, 0x62,
+ 0x47, 0x28, 0x62, 0x04, 0x23, 0x03, 0x51, 0x60,
+ 0x38, 0x65, 0x18, 0x25, 0x03, 0x23, 0x22, 0x43,
+ 0x70, 0x13, 0x60, 0x67, 0x61, 0x86, 0x65, 0x71,
+ 0x62, 0x12, 0x42, 0x56, 0x37, 0x71, 0x33, 0x16,
+ 0x74, 0x60, 0x38, 0x75, 0x16, 0x24, 0x08, 0x83,
+ 0x56, 0x14, 0x57, 0x15, 0x76, 0x38, 0x13, 0x28,
+ 0x24, 0x33, 0x22, 0x65, 0x27, 0x37, 0x35, 0x01,
+ 0x75, 0x42, 0x67, 0x68, 0x30, 0x27, 0x26, 0x55,
+ 0x67, 0x20, 0x13, 0x58, 0x07, 0x36, 0x35, 0x47,
+ 0x81, 0x26, 0x74, 0x22, 0x80, 0x11, 0x44, 0x77,
+ 0x04, 0x52, 0x11, 0x06, 0x37, 0x06, 0x31, 0x46,
+ 0x35, 0x33, 0x58, 0x40, 0x72, 0x25, 0x10, 0x13,
+ 0x30, 0x00, 0x87, 0x14, 0x63, 0x42, 0x63, 0x88,
+ 0x58, 0x06, 0x86, 0x43, 0x10, 0x06, 0x68, 0x06,
+ 0x41, 0x48, 0x75, 0x43, 0x56, 0x05, 0x10, 0x52,
+ 0x02, 0x45, 0x54, 0x55, 0x41, 0x65, 0x28, 0x26,
+ 0x74, 0x05, 0x40, 0x61, 0x52, 0x32, 0x44, 0x44,
+ 0x20, 0x88, 0x74, 0x61, 0x67, 0x30, 0x00, 0x25,
+ 0x86, 0x56, 0x55, 0x67, 0x40, 0x07, 0x45, 0x36,
+ 0x64, 0x42, 0x56, 0x30, 0x45, 0x71, 0x12, 0x77,
+ 0x12, 0x66, 0x48, 0x28, 0x84, 0x01, 0x36, 0x66,
+ 0x73, 0x60, 0x30, 0x26, 0x31, 0x32, 0x45, 0x35,
+ 0x64, 0x72, 0x42, 0x24, 0x14, 0x74, 0x63, 0x66,
+ 0x74, 0x10, 0x36, 0x82, 0x80, 0x50, 0x63, 0x64,
+ 0x80, 0x53, 0x84, 0x64, 0x78, 0x01, 0x10, 0x52,
+ 0x44, 0x82, 0x77, 0x07, 0x37, 0x63, 0x45, 0x11,
+ 0x28, 0x84, 0x56, 0x65, 0x07, 0x13, 0x51, 0x66,
+ 0x38, 0x71, 0x37, 0x47, 0x44, 0x28, 0x13, 0x14,
+ 0x32, 0x24, 0x12, 0x73, 0x77, 0x31, 0x56, 0x58,
+ 0x31, 0x23, 0x25, 0x24, 0x84, 0x04, 0x64, 0x35,
+ 0x50, 0x23, 0x88, 0x81, 0x58, 0x30, 0x18, 0x61,
+ 0x48, 0x23, 0x85, 0x32, 0x65, 0x42, 0x06, 0x21,
+ 0x24, 0x67, 0x53, 0x42, 0x23, 0x06, 0x17, 0x30,
+ 0x72, 0x02, 0x41, 0x86, 0x02, 0x87, 0x56, 0x82,
+ 0x32, 0x68, 0x55, 0x04, 0x81, 0x62, 0x21, 0x42,
+ 0x86, 0x61, 0x70, 0x63, 0x14, 0x24, 0x65, 0x02,
+ 0x82, 0x12, 0x88, 0x16, 0x70, 0x45, 0x81, 0x26,
+ 0x87, 0x50, 0x20, 0x77, 0x83, 0x31, 0x11, 0x46,
+ 0x85, 0x50, 0x33, 0x32, 0x62, 0x21, 0x16, 0x06,
+ 0x06, 0x75, 0x81, 0x50, 0x21, 0x81, 0x24, 0x50,
+ 0x26, 0x45, 0x43, 0x85, 0x75, 0x34, 0x61, 0x64,
+ 0x00, 0x44, 0x70, 0x31, 0x71, 0x42, 0x38, 0x54,
+ 0x32, 0x34, 0x28, 0x50, 0x06, 0x76, 0x05, 0x13,
+ 0x27, 0x05, 0x82, 0x33, 0x11, 0x34, 0x27, 0x35,
+ 0x26, 0x27, 0x75, 0x57, 0x51, 0x08, 0x55, 0x68,
+ 0x50, 0x53, 0x34, 0x22, 0x87, 0x41, 0x52, 0x75,
+ 0x16, 0x73, 0x75, 0x71, 0x44, 0x66, 0x46, 0x54,
+ 0x25, 0x84, 0x20, 0x06, 0x38, 0x82, 0x56, 0x55,
+ 0x77, 0x23, 0x86, 0x44, 0x11, 0x58, 0x78, 0x84,
+ 0x85, 0x13, 0x77, 0x56, 0x31, 0x83, 0x30, 0x28,
+ 0x14, 0x17, 0x66, 0x88, 0x03, 0x07, 0x85, 0x73,
+ 0x23, 0x02, 0x40, 0x26, 0x71, 0x45, 0x37, 0x74,
+ 0x28, 0x65, 0x03, 0x02, 0x26, 0x57, 0x27, 0x76,
+ 0x41, 0x08, 0x04, 0x46, 0x28, 0x58, 0x70, 0x65,
+ 0x70, 0x31, 0x26, 0x64, 0x72, 0x25, 0x48, 0x60,
+ 0x45, 0x40, 0x85, 0x38, 0x33, 0x87, 0x87, 0x43,
+ 0x06, 0x03, 0x18, 0x64, 0x17, 0x88, 0x13, 0x06,
+ 0x65, 0x57, 0x08, 0x24, 0x00, 0x53, 0x55, 0x76,
+ 0x01, 0x81, 0x57, 0x38, 0x22, 0x48, 0x01, 0x14,
+ 0x13, 0x61, 0x34, 0x44, 0x55, 0x23, 0x03, 0x23,
+ 0x60, 0x36, 0x78, 0x25, 0x43, 0x85, 0x30, 0x82,
+ 0x85, 0x60, 0x06, 0x71, 0x24, 0x82, 0x06, 0x80,
+ 0x17, 0x15, 0x06, 0x11, 0x70, 0x35, 0x03, 0x62,
+ 0x32, 0x45, 0x47, 0x13, 0x25, 0x46, 0x72, 0x16,
+ 0x04, 0x54, 0x22, 0x05, 0x51, 0x83, 0x06, 0x11,
+ 0x65, 0x75, 0x22, 0x57, 0x44, 0x21, 0x37, 0x85,
+ 0x76, 0x78, 0x13, 0x07, 0x82, 0x70, 0x00, 0x11,
+ 0x81, 0x35, 0x01, 0x73, 0x74, 0x10, 0x56, 0x38,
+ 0x22, 0x67, 0x75, 0x87, 0x42, 0x45, 0x58, 0x85,
+ 0x54, 0x41, 0x12, 0x27, 0x31, 0x41, 0x08, 0x42,
+ 0x56, 0x77, 0x30, 0x70, 0x86, 0x16, 0x28, 0x38,
+ 0x13, 0x26, 0x86, 0x83, 0x03, 0x65, 0x55, 0x80,
+ 0x25, 0x16, 0x87, 0x52, 0x26, 0x24, 0x60, 0x88,
+ 0x17, 0x75, 0x34, 0x44, 0x84, 0x52, 0x20, 0x45,
+ 0x10, 0x86, 0x17, 0x75, 0x68, 0x67, 0x55, 0x35,
+ 0x11, 0x35, 0x77, 0x81, 0x50, 0x16, 0x58, 0x56,
+ 0x65, 0x54, 0x30, 0x58, 0x52, 0x71, 0x10, 0x43,
+ 0x52, 0x42, 0x74, 0x14, 0x20, 0x04, 0x67, 0x05,
+ 0x75, 0x38, 0x47, 0x32, 0x13, 0x81, 0x73, 0x10,
+ 0x56, 0x45, 0x66, 0x73, 0x22, 0x76, 0x10, 0x36,
+ 0x01, 0x55, 0x01, 0x74, 0x88, 0x77, 0x05, 0x78,
+ 0x20, 0x81, 0x47, 0x07, 0x56, 0x78, 0x61, 0x55,
+ 0x82, 0x61, 0x34, 0x50, 0x28, 0x56, 0x38, 0x62,
+ 0x62, 0x03, 0x03, 0x23, 0x04, 0x16, 0x71, 0x20,
+ 0x08, 0x37, 0x50, 0x65, 0x71, 0x36, 0x00, 0x17,
+ 0x12, 0x22, 0x16, 0x88, 0x00, 0x54, 0x07, 0x77,
+ 0x67, 0x47, 0x04, 0x32, 0x45, 0x75, 0x47, 0x38,
+ 0x62, 0x83, 0x07, 0x77, 0x53, 0x58, 0x47, 0x58,
+ 0x24, 0x72, 0x15, 0x82, 0x23, 0x85, 0x82, 0x80,
+ 0x42, 0x87, 0x16, 0x85, 0x48, 0x65, 0x24, 0x82,
+ 0x41, 0x44, 0x52, 0x58, 0x31, 0x88, 0x71, 0x72,
+ 0x74, 0x83, 0x10, 0x07, 0x06, 0x47, 0x08, 0x02,
+ 0x07, 0x52, 0x65, 0x45, 0x31, 0x26, 0x46, 0x12,
+ 0x28, 0x48, 0x67, 0x31, 0x02, 0x55, 0x26, 0x63,
+ 0x33, 0x54, 0x38, 0x83, 0x03, 0x83, 0x78, 0x12,
+ 0x14, 0x46, 0x70, 0x62, 0x78, 0x27, 0x30, 0x77,
+ 0x63, 0x88, 0x20, 0x41, 0x77, 0x05, 0x18, 0x85,
+ 0x72, 0x85, 0x63, 0x78, 0x58, 0x57, 0x08, 0x34,
+ 0x88, 0x16, 0x67, 0x32, 0x88, 0x07, 0x02, 0x31,
+ 0x37, 0x57, 0x05, 0x71, 0x78, 0x23, 0x14, 0x27,
+ 0x83, 0x77, 0x17, 0x60, 0x70, 0x88, 0x22, 0x71,
+ 0x82, 0x08, 0x10, 0x06, 0x02, 0x54, 0x71, 0x02,
+ 0x71, 0x61, 0x10, 0x26, 0x77, 0x01, 0x07, 0x70,
+ 0x02, 0x02, 0x14, 0x45, 0x21, 0x62, 0x00, 0x68,
+ 0x14, 0x57, 0x30, 0x80, 0x25, 0x60, 0x47, 0x20,
+ 0x41, 0x13, 0x03, 0x30, 0x34, 0x75, 0x22, 0x13,
+ 0x06, 0x47, 0x77, 0x66, 0x75, 0x72, 0x80, 0x05,
+ 0x56, 0x16, 0x40, 0x36, 0x67, 0x67, 0x67, 0x10,
+ 0x00, 0x03, 0x25, 0x21, 0x88, 0x58, 0x23, 0x13,
+ 0x11, 0x44, 0x12, 0x80, 0x22, 0x52, 0x35, 0x31,
+ 0x72, 0x27, 0x16, 0x83, 0x70, 0x05, 0x06, 0x45,
+ 0x01, 0x74, 0x63, 0x86, 0x50, 0x14, 0x76, 0x17,
+ 0x37, 0x40, 0x52, 0x71, 0x28, 0x41, 0x38, 0x71,
+ 0x03, 0x68, 0x28, 0x43, 0x78, 0x60, 0x46, 0x31,
+ 0x23, 0x20, 0x58, 0x62, 0x35, 0x72, 0x78, 0x34,
+ 0x20, 0x07, 0x18, 0x30, 0x12, 0x66, 0x34, 0x62,
+ 0x16, 0x76, 0x70, 0x73, 0x07, 0x15, 0x28, 0x71,
+ 0x77, 0x00, 0x25, 0x83, 0x23, 0x11, 0x58, 0x26,
+ 0xb0, 0x44, 0x15, 0xa6, 0x0a, 0x01, 0xcb, 0x33,
+ 0xda, 0x10, 0x9c, 0xdc, 0x3d, 0xcd, 0x48, 0x10,
+ 0x87, 0xee, 0x6a, 0x02, 0x8a, 0x60, 0x25, 0x58,
+ 0x8e, 0x93, 0x01, 0x4e, 0x18, 0xb3, 0xa2, 0x99,
+ 0x75, 0xdd, 0xab, 0x03, 0x3d, 0xe5, 0xca, 0x5d,
+ 0x63, 0xdd, 0x56, 0xb9, 0xc5, 0x7b, 0xd9, 0x02,
+ 0x64, 0x73, 0x64, 0x94, 0xc3, 0x2d, 0xe6, 0xf8,
+ 0xd0, 0xdf, 0x88, 0x0c, 0xc4, 0xb8, 0x5f, 0x08,
+ 0x3e, 0x03, 0xe7, 0x57, 0xd2, 0x50, 0x29, 0x66,
+ 0x8e, 0xe5, 0x80, 0x65, 0xd4, 0xe8, 0xd3, 0x1b,
+ 0xc3, 0xd5, 0x83, 0xa4, 0xce, 0x65, 0x97, 0x21,
+ 0xbf, 0x69, 0xc8, 0x64, 0x22, 0xdb, 0xa8, 0xc0,
+ 0x06, 0xbc, 0xbb, 0x00, 0xdf, 0xa5, 0xc8, 0xc0,
+ 0x56, 0xa7, 0x36, 0x0f, 0x34, 0x66, 0xf3, 0x44,
+ 0x6f, 0x5f, 0xcc, 0x99, 0xb5, 0x84, 0x5d, 0x16,
+ 0x65, 0x72, 0x15, 0xd5, 0xe9, 0xfe, 0x54, 0xb4,
+ 0x3e, 0x2c, 0xd4, 0x0e, 0x0c, 0x3c, 0x70, 0xb3,
+ 0x77, 0xa4, 0x36, 0x2e, 0xfe, 0x3f, 0x58, 0x64,
+ 0x89, 0x88, 0xec, 0xa1, 0x31, 0xee, 0xac, 0xca,
+ 0x8c, 0xcb, 0x89, 0xd8, 0xfc, 0x94, 0x6c, 0x59,
+ 0x3b, 0x48, 0x23, 0x1b, 0x06, 0xb0, 0xd0, 0xc7,
+ 0xc8, 0xd7, 0x00, 0xb4, 0x21, 0x3c, 0xad, 0x82,
+ 0x5b, 0x32, 0x76, 0xcf, 0x50, 0x0b, 0xa9, 0x23,
+ 0x55, 0xea, 0x08, 0xbd, 0xc0, 0xce, 0xe1, 0x1c,
+ 0x47, 0x9b, 0xe6, 0xba, 0x48, 0x69, 0xed, 0x06,
+ 0xdb, 0x16, 0x02, 0x57, 0xd6, 0x8f, 0x85, 0x27,
+ 0x35, 0x44, 0x3c, 0xee, 0xbb, 0x97, 0x7e, 0x3b,
+ 0xff, 0xbf, 0xeb, 0xc4, 0xa4, 0x78, 0x29, 0x30,
+ 0x1f, 0xd3, 0x39, 0xa6, 0xaf, 0xc3, 0xc1, 0x6e,
+ 0xd9, 0x07, 0x38, 0xc9, 0x2d, 0x4e, 0xdd, 0x95,
+ 0x8b, 0xd9, 0x6b, 0xdb, 0x66, 0x5b, 0x82, 0x28,
+ 0x68, 0x63, 0xa6, 0x19, 0x1d, 0x83, 0x01, 0xee,
+ 0x09, 0x85, 0x78, 0x5d, 0x40, 0xdb, 0x15, 0xc2,
+ 0x27, 0xb3, 0x9c, 0xd6, 0x26, 0xe6, 0x02, 0x3e,
+ 0xd6, 0xd5, 0xaf, 0x46, 0xe0, 0x67, 0x25, 0xef,
+ 0x79, 0x70, 0xc4, 0xb6, 0xa2, 0xe3, 0x8b, 0x66,
+ 0x0d, 0x90, 0x1e, 0xa8, 0x6e, 0x05, 0xd1, 0xac,
+ 0x45, 0x5a, 0xb3, 0x45, 0x88, 0xd7, 0x23, 0x90,
+ 0xa8, 0x82, 0xb7, 0x22, 0xbb, 0x11, 0xf8, 0x58,
+ 0xb6, 0xae, 0xc1, 0x1f, 0x33, 0x89, 0xef, 0x59,
+ 0xad, 0x96, 0x8c, 0xd9, 0xf0, 0x91, 0x5b, 0xd4,
+ 0x8f, 0x03, 0xc1, 0x4d, 0xc7, 0xca, 0x1f, 0xd6,
+ 0x25, 0x26, 0xe9, 0xb7, 0xf7, 0xc9, 0x98, 0x1a,
+ 0x61, 0x0c, 0x0c, 0xef, 0xb6, 0x9f, 0xa1, 0x57,
+ 0x6d, 0x75, 0xc7, 0x6d, 0x43, 0x99, 0x47, 0x67,
+ 0x6f, 0x19, 0x44, 0xb6, 0xc1, 0x16, 0xbb, 0xfc,
+ 0xd0, 0x36, 0xa1, 0xdd, 0x48, 0xfa, 0x65, 0x6a,
+ 0x1e, 0x31, 0x77, 0x86, 0xf7, 0x5c, 0xe3, 0x99,
+ 0xac, 0xe4, 0xfc, 0x60, 0x52, 0x4c, 0xad, 0xb1,
+ 0xe1, 0xd2, 0xe7, 0x17, 0x62, 0x77, 0x7f, 0xe0,
+ 0xf9, 0xef, 0x04, 0xd8, 0xb2, 0x13, 0x45, 0xf9,
+ 0xbc, 0x4e, 0x4c, 0x0d, 0x86, 0x22, 0xaf, 0x76,
+ 0x29, 0xc6, 0x2b, 0xb4, 0x83, 0xd1, 0xa0, 0x33,
+ 0xc8, 0x2b, 0x6f, 0x12, 0x2d, 0xe6, 0x65, 0x54,
+ 0xbe, 0x4b, 0x9c, 0x07, 0x0d, 0x0c, 0x21, 0x2e,
+ 0x14, 0x39, 0xbf, 0xb5, 0x86, 0x1f, 0xf9, 0xbd,
+ 0x31, 0xe9, 0xc0, 0x5f, 0xb9, 0xdd, 0x10, 0x35,
+ 0x0b, 0xa0, 0x2c, 0xf3, 0xa2, 0x21, 0xec, 0x9b,
+ 0x7e, 0xd5, 0x31, 0x0d, 0x3b, 0x3e, 0xf8, 0xab,
+ 0x07, 0x71, 0xe5, 0xd3, 0xd0, 0xfd, 0xc8, 0x60,
+ 0x79, 0xba, 0x72, 0xf4, 0x51, 0x57, 0x10, 0xe5,
+ 0x6e, 0xa9, 0x1b, 0xfe, 0x72, 0x92, 0x8e, 0xaa,
+ 0x6c, 0x29, 0xf8, 0x2d, 0x63, 0xc9, 0xf5, 0xe5,
+ 0x53, 0xd6, 0xe8, 0x63, 0x34, 0xdf, 0xc0, 0x05,
+ 0x0e, 0x66, 0xfd, 0x36, 0x7c, 0x8c, 0xbd, 0x27,
+ 0xec, 0x8e, 0x65, 0x26, 0x7d, 0x68, 0xaf, 0xfe,
+ 0x7e, 0xfa, 0x13, 0x6a, 0x4e, 0x77, 0xaf, 0x53,
+ 0x9a, 0x51, 0x4c, 0xfa, 0xcd, 0x73, 0x22, 0x71,
+ 0xe2, 0xfa, 0x81, 0xa5, 0x73, 0xba, 0xc0, 0xbd,
+ 0xf3, 0x64, 0x57, 0xe9, 0x48, 0xf7, 0xef, 0xc7,
+ 0x97, 0xc0, 0x49, 0xdc, 0xb8, 0x61, 0xf1, 0x69,
+ 0x3e, 0xf1, 0xb4, 0x2f, 0x46, 0xa8, 0xd2, 0xbe,
+ 0xb9, 0xe4, 0x64, 0xf6, 0xbe, 0xd9, 0x7b, 0x5e,
+ 0x1d, 0xf4, 0x35, 0xd9, 0xc2, 0xd7, 0x47, 0xd2,
+ 0x63, 0x92, 0xd7, 0x9e, 0xac, 0x4f, 0xdd, 0xf2,
+ 0x6d, 0x77, 0x2a, 0xf4, 0xc0, 0xf5, 0xf8, 0xcf,
+ 0xd6, 0x2a, 0xa3, 0xb6, 0x17, 0x9b, 0x70, 0xd7,
+ 0xd3, 0x22, 0x65, 0x26, 0x50, 0x34, 0xe1, 0xc2,
+ 0x8d, 0x3a, 0xa7, 0x8e, 0xe9, 0xfb, 0xe9, 0xb1,
+ 0xf4, 0xd2, 0x78, 0x63, 0x4a, 0x14, 0xcc, 0x70,
+ 0x76, 0x60, 0x27, 0xdf, 0xd5, 0x94, 0xe5, 0xfd,
+ 0xa1, 0x9e, 0xe8, 0x73, 0xad, 0xa2, 0x34, 0x68,
+ 0x6d, 0xec, 0x5d, 0xf4, 0x5b, 0x28, 0x4b, 0x78,
+ 0xf0, 0xa6, 0xfb, 0x93, 0x61, 0xfa, 0x81, 0x54,
+ 0x21, 0x9d, 0xea, 0xef, 0x69, 0xf4, 0xf4, 0x72,
+ 0xab, 0xf5, 0x80, 0x37, 0x14, 0x53, 0xe4, 0x13,
+ 0x9d, 0xd5, 0xdb, 0x82, 0xd8, 0x14, 0x3d, 0xa6,
+ 0x85, 0x30, 0x34, 0x45, 0x09, 0xe9, 0x74, 0xfe,
+ 0x06, 0xc7, 0x56, 0x57, 0x58, 0x43, 0x35, 0xa2,
+ 0x27, 0x73, 0xbc, 0x49, 0x32, 0x22, 0x86, 0x54,
+ 0x62, 0x3f, 0x42, 0x17, 0xa2, 0x2c, 0xd7, 0x8e,
+ 0x70, 0x44, 0xa7, 0xb3, 0xef, 0xff, 0x89, 0x51,
+ 0x14, 0xd9, 0x3b, 0xcf, 0xcd, 0xcd, 0x12, 0xaa,
+ 0x95, 0x4f, 0x12, 0x96, 0x3b, 0x9a, 0x3a, 0x32,
+ 0xf4, 0x5d, 0x91, 0x61, 0xbf, 0x34, 0x11, 0xc8,
+ 0xa6, 0xf9, 0x21, 0xe6, 0x59, 0xa8, 0xe7, 0x7d,
+ 0x31, 0x87, 0x62, 0xa4, 0x75, 0xd8, 0xc0, 0x55,
+ 0xf8, 0x7e, 0x19, 0x36, 0x5d, 0xc0, 0x5b, 0x05,
+ 0x4c, 0x6e, 0x80, 0x87, 0x13, 0x5f, 0x83, 0xa3,
+ 0xcd, 0xc5, 0xa4, 0x4f, 0x24, 0xfc, 0x40, 0x74,
+ 0x08, 0x23, 0xa2, 0x79, 0xb2, 0x62, 0x4f, 0x99,
+ 0xa4, 0x0d, 0x77, 0x72, 0xea, 0x79, 0x2c, 0xd9,
+ 0x51, 0xb6, 0x1c, 0x18, 0x41, 0xea, 0x73, 0x9d,
+ 0x2b, 0x55, 0xcf, 0x8d, 0x74, 0xb3, 0x4a, 0x58,
+ 0x02, 0x4a, 0x9d, 0x3c, 0x8c, 0x44, 0xcf, 0x2d,
+ 0x28, 0x43, 0xa8, 0x78, 0x9d, 0x23, 0x51, 0xd5,
+ 0x22, 0xd6, 0x95, 0xa7, 0x25, 0x9f, 0x3a, 0x6f,
+ 0x55, 0x2a, 0xda, 0x80, 0xdb, 0x92, 0xfe, 0xc0,
+ 0x31, 0xb1, 0xb8, 0x8c, 0xf7, 0xfe, 0xc9, 0x88,
+ 0x70, 0x40, 0xe8, 0x59, 0xed, 0xb3, 0xad, 0xe0,
+ 0xab, 0x93, 0x40, 0x04, 0xfd, 0xa6, 0xd9, 0x62,
+ 0xe8, 0xb6, 0x8d, 0xa9, 0xac, 0x3c, 0x37, 0x28,
+ 0x76, 0x79, 0xa5, 0x26, 0xf4, 0x74, 0xf4, 0x7e,
+ 0xed, 0x22, 0x21, 0x01, 0x75, 0x3a, 0x26, 0xa8,
+ 0x75, 0x06, 0xb9, 0x12, 0xda, 0x35, 0xfc, 0x5e,
+ 0xb5, 0x8d, 0x9a, 0x80, 0x6d, 0x49, 0x84, 0x51,
+ 0x24, 0xe4, 0x2b, 0xb3, 0xfc, 0x4b, 0x5f, 0x2e,
+ 0xbd, 0x53, 0xdb, 0x54, 0x32, 0x1f, 0xf0, 0xea,
+ 0x81, 0xff, 0xca, 0x2b, 0x7e, 0xe8, 0x7e, 0xb5,
+ 0xd5, 0x3a, 0xe8, 0x9e, 0x87, 0x27, 0x93, 0x08,
+ 0xea, 0x9a, 0x3c, 0x31, 0x8b, 0xff, 0xe3, 0x14,
+ 0xe2, 0xcb, 0x78, 0xbb, 0x5f, 0x60, 0x00, 0xff,
+ 0x6a, 0xb6, 0xb6, 0x6b, 0x4e, 0x17, 0x00, 0xfb,
+ 0x22, 0xbc, 0xd6, 0x31, 0x26, 0x20, 0x10, 0x2f,
+ 0x99, 0x57, 0xc5, 0xc6, 0x9c, 0xd5, 0x88, 0x1d,
+ 0xff, 0xa8, 0xf0, 0x1f, 0xba, 0xfa, 0x74, 0x14,
+ 0x59, 0xd4, 0x53, 0x2e, 0xc6, 0x55, 0xda, 0x9c,
+ 0x26, 0x57, 0x77, 0x05, 0x63, 0xd9, 0x9f, 0xa6,
+ 0x7f, 0x52, 0x63, 0x24, 0x8f, 0xa1, 0xa2, 0xcf,
+ 0x5d, 0xe4, 0x8e, 0x6f, 0x4a, 0x89, 0xef, 0x83,
+ 0x7c, 0x2c, 0x97, 0x3b, 0x24, 0x61, 0x51, 0xe6,
+ 0xf9, 0x2d, 0x0a, 0x2b, 0x97, 0x9c, 0x55, 0x56,
+ 0x44, 0x32, 0xdd, 0xff, 0xeb, 0x18, 0x58, 0x88,
+ 0x56, 0x04, 0xc3, 0xc4, 0xc6, 0xfb, 0xc7, 0x16,
+ 0x55, 0x1f, 0x47, 0x14, 0x7c, 0xbb, 0x93, 0x3b,
+ 0x23, 0xa4, 0x0c, 0x18, 0x0f, 0x78, 0x47, 0xe2,
+ 0x5d, 0x69, 0xe9, 0xeb, 0x49, 0x95, 0xa0, 0xc8,
+ 0xc7, 0x75, 0x4a, 0x86, 0xff, 0x16, 0x2d, 0xc8,
+ 0xb4, 0xe6, 0xfd, 0x2e, 0xef, 0x54, 0x50, 0x9f,
+ 0x9f, 0x33, 0xf6, 0xdb, 0x9d, 0x2c, 0xcc, 0x81,
+ 0xac, 0xab, 0xa3, 0xba, 0xb3, 0x49, 0x1d, 0x03,
+ 0x6b, 0xda, 0xe6, 0x99, 0xd7, 0xdc, 0x4a, 0x11,
+ 0x58, 0x67, 0x24, 0x22, 0x4f, 0xee, 0x76, 0xae,
+ 0xdb, 0xf7, 0x54, 0xcc, 0xa5, 0x8b, 0xc1, 0xfc,
+ 0xa7, 0x71, 0xf4, 0xb9, 0x10, 0xfa, 0xd7, 0xb5,
+ 0x20, 0x75, 0x78, 0x18, 0x5a, 0xa0, 0xdd, 0x03,
+ 0x9d, 0x77, 0xd1, 0x79, 0x8a, 0xee, 0x23, 0xf2,
+ 0x9f, 0xae, 0xeb, 0xdf, 0x54, 0xbd, 0x68, 0x6e,
+ 0x21, 0x8a, 0xe8, 0xaf, 0xfd, 0xd5, 0xb8, 0xe7,
+ 0xf4, 0xf9, 0x04, 0x3c, 0xfa, 0x65, 0xa2, 0xac,
+ 0x04, 0x70, 0x35, 0x56, 0x69, 0x31, 0xbc, 0x5e,
+ 0x31, 0xf6, 0x6b, 0x1f, 0x19, 0xc4, 0xe1, 0x54,
+ 0xc7, 0xac, 0xe2, 0xb6, 0x5d, 0x0a, 0x73, 0x41,
+ 0x98, 0x7d, 0xac, 0x33, 0xb3, 0x34, 0xe3, 0xac,
+ 0xde, 0xce, 0x00, 0x51, 0x8d, 0xc8, 0x1e, 0xfa,
+ 0x09, 0xa9, 0xde, 0x9e, 0x51, 0xae, 0xef, 0x97,
+ 0x2b, 0xce, 0xf0, 0x59, 0x74, 0xd3, 0x65, 0xf2,
+ 0xb2, 0xe2, 0xa9, 0x35, 0xa9, 0x89, 0x44, 0xa1,
+ 0x3b, 0x87, 0x95, 0xaf, 0x6d, 0x2f, 0x7e, 0xf1,
+ 0x0b, 0x27, 0x5a, 0x5d, 0xc8, 0xac, 0x53, 0xdc,
+ 0x77, 0x25, 0xd9, 0x75, 0x35, 0x38, 0xe0, 0xe8,
+ 0x7a, 0x64, 0x7f, 0xec, 0x86, 0xc6, 0x9a, 0x65,
+ 0x63, 0xed, 0x9d, 0x0a, 0x38, 0x72, 0xef, 0x20,
+ 0x33, 0xae, 0xbb, 0x3a, 0x92, 0x2d, 0x02, 0x3a,
+ 0xf4, 0x07, 0xe3, 0xaf, 0xb6, 0x7c, 0x47, 0x35,
+ 0x37, 0x63, 0x6c, 0xcd, 0x23, 0x72, 0xc7, 0xc9,
+ 0x8a, 0xbb, 0xdc, 0x5f, 0x36, 0xdf, 0x58, 0xd3,
+ 0xd7, 0x93, 0xee, 0x84, 0x68, 0x23, 0x09, 0xd9,
+ 0x79, 0xd6, 0x99, 0xb3, 0xcc, 0x1d, 0x5d, 0xd6,
+ 0x47, 0xc3, 0x5f, 0xa5, 0x3e, 0xab, 0xb7, 0x03,
+ 0xc2, 0xdc, 0x42, 0x7f, 0x6c, 0xf6, 0x08, 0x34,
+ 0x01, 0xe3, 0x5f, 0x9a, 0x4f, 0xc9, 0x25, 0x54,
+ 0x8c, 0x6c, 0x3b, 0x9d, 0x3c, 0x71, 0xc8, 0x25,
+ 0x09, 0xea, 0x92, 0xae, 0x98, 0x04, 0x52, 0x13,
+ 0x15, 0xaf, 0x8d, 0xdd, 0xbe, 0xad, 0x46, 0xf7,
+ 0x9c, 0xe8, 0x55, 0x38, 0x75, 0x27, 0x6d, 0x0c,
+ 0x4d, 0x73, 0xf6, 0xdd, 0xf2, 0xfb, 0x24, 0xdc,
+ 0x6e, 0xe7, 0x4d, 0x5c, 0xfd, 0x4c, 0x82, 0x63,
+ 0xf0, 0xc6, 0xf4, 0xb1, 0x7f, 0xf7, 0xef, 0x43,
+ 0xfe, 0x37, 0x68, 0x70, 0x77, 0xd0, 0x0c, 0xc8,
+ 0xab, 0xee, 0x2a, 0x2d, 0xfb, 0xb7, 0x49, 0xf6,
+ 0x75, 0x43, 0x08, 0xed, 0x22, 0x0f, 0xf4, 0x27,
+ 0xe8, 0xd7, 0xe6, 0x4e, 0x09, 0x9c, 0x00, 0x23,
+ 0x0f, 0xb8, 0x8b, 0x34, 0x1e, 0x62, 0x39, 0x55,
+ 0xf9, 0xef, 0x2b, 0xb9, 0x2f, 0x38, 0x0f, 0xed,
+ 0xe9, 0xbd, 0x75, 0x62, 0xe9, 0x58, 0x59, 0x21,
+ 0xe1, 0x77, 0x85, 0x2c, 0xf0, 0x25, 0xda, 0x5e,
+ 0xdd, 0x72, 0x5d, 0x60, 0x3b, 0xf5, 0xd2, 0x3e,
+ 0x1f, 0x21, 0xa3, 0x76, 0xbb, 0xe2, 0x56, 0x0c,
+ 0xf2, 0xb8, 0xa0, 0x4e, 0x5a, 0x59, 0x15, 0xdf,
+ 0x42, 0x5f, 0x42, 0x8a, 0xca, 0x3c, 0x94, 0x62,
+ 0x2e, 0x7e, 0xa9, 0xe5, 0x92, 0x00, 0xbd, 0xa5,
+ 0x19, 0x62, 0xe3, 0xb0, 0x9d, 0xe0, 0x13, 0x26,
+ 0xb5, 0x70, 0x4c, 0xd0, 0xf3, 0x6c, 0x05, 0x19,
+ 0x0d, 0x5d, 0xc9, 0xbe, 0xac, 0x04, 0x58, 0x45,
+ 0xc2, 0xdc, 0x46, 0xe6, 0xa2, 0x4e, 0x0e, 0xb6,
+ 0x6b, 0x7a, 0xef, 0xd4, 0x32, 0x32, 0xb4, 0xfe,
+ 0xf7, 0x4e, 0x2f, 0xb2, 0xc7, 0xae, 0x61, 0x38,
+ 0x54, 0xf5, 0x13, 0xa3, 0xf8, 0x42, 0x45, 0x9a,
+ 0x3b, 0x45, 0x92, 0x96, 0x3a, 0xbc, 0xb7, 0x71,
+ 0xc5, 0xe8, 0x2d, 0x6d, 0x10, 0xda, 0x6d, 0x04,
+ 0x2a, 0x18, 0x12, 0x55, 0xcd, 0xb4, 0xcd, 0x83,
+ 0x96, 0x26, 0xcb, 0x36, 0x08, 0xb9, 0x3f, 0x2a,
+ 0x90, 0x99, 0x33, 0x4e, 0x30, 0x21, 0x62, 0xb8,
+ 0xa3, 0x43, 0xb2, 0xce, 0x61, 0x0d, 0x34, 0xdb,
+ 0x93, 0x03, 0xa1, 0xa7, 0x30, 0x73, 0xba, 0x34,
+ 0x22, 0xb0, 0xe0, 0xac, 0x32, 0xf4, 0xee, 0x9e,
+ 0xbd, 0x9d, 0xff, 0x13, 0xc5, 0x5b, 0x7d, 0x39,
+ 0xbd, 0x3c, 0x08, 0x24, 0x66, 0x42, 0x55, 0xf3,
+ 0x67, 0x5b, 0x83, 0x28, 0x52, 0xe4, 0x0d, 0xdb,
+ 0x26, 0x39, 0xfe, 0xa6, 0x03, 0x08, 0x77, 0xee,
+ 0xf3, 0x4f, 0xcc, 0x31, 0xc9, 0xdf, 0x94, 0xd0,
+ 0xb1, 0xbf, 0x36, 0x37, 0xd5, 0x89, 0x9f, 0xca,
+ 0x09, 0x33, 0x08, 0xd4, 0xd5, 0xcb, 0x5d, 0x09,
+ 0x7f, 0x5e, 0x91, 0x48, 0x1c, 0xc1, 0x33, 0x7e,
+ 0xee, 0x14, 0xa3, 0xe9, 0x52, 0x5c, 0x52, 0xef,
+ 0xfa, 0xcd, 0xc6, 0x6d, 0x41, 0x1e, 0xf0, 0x74,
+ 0x18, 0x68, 0x51, 0x28, 0xbf, 0x39, 0x97, 0x8b,
+ 0x21, 0xe6, 0x00, 0x73, 0xa2, 0x6c, 0xd6, 0xa0,
+ 0xb9, 0x1d, 0xc3, 0x4e, 0xec, 0x3f, 0x73, 0x12,
+ 0x18, 0x2b, 0xe8, 0x34, 0x01, 0xc9, 0x20, 0xfd,
+ 0x80, 0x54, 0xd6, 0xa3, 0xcc, 0x07, 0x2d, 0xdc,
+ 0xe6, 0x2b, 0x61, 0x79, 0xbd, 0xdf, 0xe3, 0xdf,
+ 0xc8, 0x7d, 0xb0, 0x0a, 0x42, 0x7e, 0x64, 0xb2,
+ 0xe8, 0xe0, 0x61, 0xad, 0xb9, 0x40, 0x1a, 0x29,
+ 0xfa, 0x4d, 0x3d, 0x2c, 0x09, 0x7f, 0x8e, 0x4c,
+ 0x06, 0xcf, 0xbc, 0xd3, 0x8e, 0x3c, 0xa4, 0x42,
+ 0xe9, 0x27, 0xa4, 0x94, 0x1f, 0x8e, 0x6d, 0x33,
+ 0x86, 0xe9, 0xc9, 0xd3, 0x10, 0x18, 0x85, 0x3d,
+ 0x33, 0x8b, 0x87, 0xb6, 0xb6, 0xad, 0xb8, 0x85,
+ 0x3d, 0x81, 0xe7, 0xc6, 0x98, 0x3a, 0x18, 0x39,
+ 0x18, 0xe8, 0xa3, 0x5b, 0x5b, 0x11, 0xf6, 0xf3,
+ 0xa4, 0x55, 0x5d, 0x5a, 0xe5, 0x27, 0xd6, 0xb9,
+ 0x84, 0x03, 0xc5, 0xc4, 0xeb, 0xdf, 0xcf, 0x07,
+ 0xce, 0x7b, 0x22, 0x3b, 0xee, 0xef, 0x1b, 0xe7,
+ 0xda, 0xba, 0xe1, 0x0e, 0x4b, 0x75, 0x64, 0x86,
+ 0x03, 0x25, 0x7b, 0x07, 0x87, 0x0a, 0x67, 0xf9,
+ 0xda, 0x87, 0x90, 0xfb, 0xe5, 0xd8, 0xb0, 0xa7,
+ 0xcd, 0xd5, 0x79, 0x4b, 0xae, 0x8d, 0xca, 0xd8,
+ 0xc6, 0x3d, 0xc1, 0x3e, 0xa9, 0x3d, 0x8e, 0x86,
+ 0xb2, 0x74, 0xef, 0xf1, 0x67, 0xfb, 0x88, 0x58,
+ 0xef, 0x54, 0x9b, 0x5d, 0x9c, 0xad, 0xf3, 0xaa,
+ 0xf7, 0x0e, 0x54, 0x9c, 0x36, 0x4a, 0xc4, 0x8b,
+ 0x82, 0xb7, 0xb4, 0x49, 0x40, 0xbf, 0x72, 0xdd,
+ 0xd1, 0x31, 0x02, 0x45, 0xb3, 0xc4, 0x00, 0xbd,
+ 0xd7, 0x12, 0x7b, 0x0a, 0xa4, 0xda, 0xd8, 0x2c,
+ 0x1b, 0x0b, 0x62, 0x76, 0xce, 0x35, 0xd9, 0xdb,
+ 0xed, 0xc3, 0x60, 0xec, 0xcb, 0xed, 0x3e, 0x7f,
+ 0x6f, 0x26, 0xc6, 0x3f, 0x64, 0xb4, 0xf2, 0x3f,
+ 0xe1, 0x78, 0x17, 0x50, 0x37, 0xee, 0xff, 0xcb,
+ 0x63, 0xb1, 0x3b, 0x7c, 0xf6, 0x53, 0x3c, 0xec,
+ 0xd6, 0x34, 0x85, 0x4e, 0xbe, 0x83, 0x13, 0xf6,
+ 0x23, 0xaf, 0x81, 0xb3, 0x65, 0xaf, 0xf4, 0xba,
+ 0x07, 0xda, 0xc6, 0x4e, 0xe5, 0xd8, 0x7c, 0x9f,
+ 0x5b, 0x1b, 0x7f, 0x33, 0x12, 0x7a, 0x0a, 0x96,
+ 0xe3, 0x54, 0xa5, 0x47, 0x85, 0x5c, 0x18, 0x0a,
+ 0xcd, 0xf4, 0x72, 0x00, 0x53, 0xcd, 0xab, 0xc1,
+ 0x6e, 0x4d, 0x46, 0xa2, 0x9c, 0x76, 0x7d, 0x41,
+ 0x24, 0x20, 0x61, 0xce, 0xc8, 0x60, 0xfc, 0x69,
+ 0xb4, 0x8f, 0x41, 0x56, 0x42, 0x89, 0xc5, 0x45,
+ 0x41, 0x3b, 0x62, 0x74, 0x8b, 0xe3, 0x3b, 0xcb,
+ 0x51, 0xf1, 0x93, 0x98, 0xbb, 0xd2, 0xd0, 0xc5,
+ 0xf3, 0xbe, 0x91, 0xa6, 0x91, 0x70, 0x35, 0x0b,
+ 0x3c, 0x26, 0x23, 0x79, 0x32, 0xe5, 0x9e, 0xf9,
+ 0x11, 0x1c, 0x1a, 0x7e, 0x3d, 0xc1, 0xfc, 0x20,
+ 0x13, 0xb4, 0x12, 0x99, 0x58, 0x08, 0xb2, 0x56,
+ 0x8b, 0xa5, 0x13, 0xf5, 0x81, 0x8a, 0x60, 0xcc,
+ 0xb6, 0xb1, 0x2a, 0xc2, 0x9e, 0x29, 0xdb, 0x06,
+ 0xe2, 0x87, 0xdf, 0x7e, 0xb7, 0x4f, 0x62, 0x3e,
+ 0xd7, 0xae, 0xcd, 0x43, 0xc5, 0xed, 0xc5, 0xbc,
+ 0xc8, 0x9b, 0x82, 0x08, 0xb2, 0xe4, 0xc6, 0xf7,
+ 0xfe, 0xa5, 0x17, 0x30, 0x53, 0xa5, 0xad, 0xf8,
+ 0xea, 0x63, 0xe9, 0xa9, 0x58, 0x5e, 0xd7, 0x56,
+ 0x66, 0xd9, 0x20, 0xbf, 0xc8, 0xed, 0x99, 0x92,
+ 0x70, 0x4c, 0x46, 0xe0, 0xb2, 0x07, 0x45, 0x7f,
+ 0x3b, 0x27, 0x5a, 0x5b, 0x63, 0xd8, 0xde, 0x15,
+ 0xa5, 0xb9, 0xf8, 0xc9, 0x30, 0x8c, 0x26, 0x19,
+ 0xcd, 0x62, 0x7d, 0xda, 0x2e, 0x3d, 0xe5, 0xbc,
+ 0x77, 0xf0, 0xcd, 0xc9, 0x8c, 0xc6, 0x64, 0x18,
+ 0x6e, 0x51, 0x3e, 0x6d, 0x87, 0x3b, 0x5e, 0x0e,
+ 0xf6, 0x2b, 0x84, 0x0f, 0x32, 0xe8, 0x05, 0xba,
+ 0x08, 0x66, 0x7c, 0xc7, 0xd9, 0x5d, 0x56, 0x09,
+ 0x45, 0x65, 0x16, 0xd5, 0xe9, 0xf7, 0xfa, 0x0f,
+ 0x54, 0xac, 0x40, 0x76, 0xd9, 0xca, 0xbc, 0x5a,
+ 0x1f, 0xe9, 0x21, 0x84, 0x28, 0x8a, 0x4e, 0x2a,
+ 0x32, 0xc4, 0x2a, 0x18, 0x30, 0x7d, 0x80, 0x18,
+ 0x88, 0xb4, 0x17, 0xbc, 0x00, 0x93, 0x59, 0xd8,
+ 0x6c, 0x38, 0xee, 0xa0, 0xb8, 0xdc, 0x25, 0xfd,
+ 0xee, 0x65, 0x84, 0x7f, 0x41, 0xdf, 0xad, 0x41,
+ 0x85, 0xbb, 0xde, 0x6f, 0xfc, 0x25, 0x26, 0x12,
+ 0xe4, 0x4a, 0x24, 0xd5, 0x07, 0x4a, 0xb9, 0xe6,
+ 0x42, 0x0c, 0xeb, 0xe7, 0xdd, 0x89, 0x47, 0x06,
+ 0xf2, 0xc2, 0x87, 0xda, 0x53, 0x17, 0x79, 0xbd,
+ 0xcf, 0x09, 0x49, 0x93, 0xf0, 0x42, 0x08, 0x69,
+ 0x6e, 0xa2, 0x7e, 0xe0, 0x97, 0x7f, 0x3c, 0x19,
+ 0xad, 0x2c, 0x04, 0x89, 0x28, 0x59, 0xc4, 0x2c,
+ 0x8a, 0x99, 0xa0, 0x89, 0x17, 0x66, 0x6c, 0xd0,
+ 0xfe, 0x06, 0x29, 0xf3, 0x0b, 0x9f, 0x9e, 0x96,
+ 0x69, 0x47, 0xe4, 0xfd, 0x5b, 0x43, 0x5a, 0xaa,
+ 0x6c, 0x9d, 0x54, 0x9e, 0xbc, 0xa8, 0x46, 0x0f,
+ 0x44, 0x78, 0x64, 0x73, 0x93, 0xfa, 0xc3, 0xe8,
+ 0xaa, 0x80, 0x65, 0xc4, 0x7e, 0x66, 0xa0, 0x29,
+ 0x90, 0xb3, 0xc3, 0x87, 0x9c, 0x1f, 0x43, 0x59,
+ 0x80, 0x4e, 0xef, 0xc3, 0x27, 0xc1, 0x88, 0x3b,
+ 0x9e, 0xa6, 0x07, 0x17, 0x4d, 0x07, 0x62, 0x4a,
+ 0xae, 0x0f, 0x54, 0x25, 0xaa, 0x81, 0xec, 0x7f,
+ 0x0d, 0x7e, 0x79, 0x0d, 0x61, 0xc6, 0x36, 0xb7,
+ 0xdf, 0x80, 0x20, 0x7f, 0x0a, 0xf3, 0xee, 0x02,
+ 0x82, 0x2b, 0x81, 0x8a, 0x5f, 0xfa, 0x6f, 0xec,
+ 0xd3, 0x42, 0x0a, 0x47, 0x73, 0x9c, 0x0a, 0xa2,
+ 0x8b, 0x8d, 0xb3, 0x98, 0x1d, 0x75, 0xbb, 0xb4,
+ 0x42, 0xdf, 0x6c, 0x02, 0x1c, 0xc2, 0xf5, 0x6e,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x54, 0x5e, 0x06, 0xb5, 0x8a, 0xf2, 0x75, 0x69,
+ 0x99, 0x4a, 0x48, 0x31, 0x65, 0x6e, 0xd1, 0x74,
+ 0x71, 0x15, 0x24, 0x9f, 0x88, 0x74, 0xec, 0x97,
+ 0x99, 0x29, 0x41, 0x37, 0xea, 0xff, 0x40, 0xf5,
+ 0xe8, 0x1e, 0x4c, 0x13, 0x4f, 0x30, 0x6c, 0x5a,
+ 0x3d, 0x45, 0x06, 0x9f, 0xf1, 0x45, 0x7e, 0xd9,
+ 0xac, 0x30, 0x4b, 0x05, 0x41, 0xf1, 0x40, 0xd4,
+ 0x32, 0xcb, 0x1d, 0x0b, 0x9a, 0x1d, 0x83, 0xb2,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0x70, 0x83, 0xff, 0x2b, 0xe7, 0x9f, 0x04, 0x25,
+ 0xa4, 0xd2, 0xeb, 0x78, 0x1f, 0x60, 0x16, 0xc2,
+ 0xa5, 0x65, 0x3c, 0x2f, 0x6f, 0x0f, 0xbb, 0x07,
+ 0x9b, 0xe5, 0x13, 0xe2, 0xaa, 0x3f, 0x7a, 0xa9,
+ 0xfc, 0xc7, 0x5a, 0x5d, 0xb6, 0x86, 0xd7, 0xdd,
+ 0xb6, 0x26, 0xac, 0xb3, 0x43, 0x54, 0x35, 0x5d,
+ 0x8f, 0x3f, 0xd3, 0xc5, 0xf3, 0x2b, 0x7b, 0xc1,
+ 0xf8, 0x47, 0x67, 0x33, 0x25, 0x59, 0x8d, 0x19,
+ 0x5e, 0xd8, 0xb1, 0x9f, 0x07, 0x47, 0xc8, 0x48,
+ 0x88, 0x68, 0x75, 0x2c, 0x58, 0xd2, 0xc0, 0xc9,
+ 0x4a, 0x5c, 0xc1, 0x4e, 0xa2, 0xa1, 0x2d, 0x1f,
+ 0x1f, 0xa4, 0x7f, 0x64, 0x73, 0x11, 0xe2, 0xac,
+ 0xb4, 0xf1, 0x90, 0xcb, 0xbf, 0xac, 0x3c, 0x76,
+ 0x4d, 0x7f, 0x4c, 0x3a, 0x75, 0x3c, 0xa9, 0x41,
+ 0xf2, 0xee, 0x5c, 0x38, 0x5c, 0xaa, 0x54, 0x83,
+ 0x46, 0xb1, 0x42, 0xf5, 0xc0, 0x85, 0xea, 0xcd,
+ 0x49, 0x81, 0xc1, 0x51, 0x3e, 0x01, 0x03, 0xe3,
+ 0x33, 0x3f, 0x93, 0xc3, 0x8b, 0xb6, 0x62, 0xe6,
+ 0x8b, 0x54, 0xc5, 0xee, 0x49, 0x4d, 0x63, 0x52,
+ 0xa5, 0xd7, 0x51, 0x7a, 0x41, 0x87, 0x71, 0xdc,
+ 0x87, 0xce, 0xbe, 0x6e, 0xc1, 0xf4, 0xf2, 0x48,
+ 0x3e, 0x16, 0xab, 0x7c, 0xd8, 0xd6, 0x26, 0x8f,
+ 0x2a, 0x90, 0x6b, 0x9f, 0x01, 0x0f, 0x2d, 0xdb,
+ 0x5f, 0x41, 0x18, 0x6d, 0x59, 0x27, 0xa1, 0x3d,
+ 0xe8, 0x7e, 0x56, 0x82, 0x32, 0x1c, 0x44, 0x2f,
+ 0x6d, 0x6a, 0x62, 0x5e, 0xbf, 0x4c, 0x72, 0x2d,
+ 0xaa, 0x03, 0x49, 0xd9, 0xda, 0xcb, 0x21, 0xc0,
+ 0xa0, 0x95, 0x6f, 0xc9, 0x6c, 0x4f, 0x86, 0x1c,
+ 0x77, 0x41, 0x0d, 0xd6, 0xd7, 0xac, 0x6e, 0x05,
+ 0xbc, 0x94, 0x24, 0x6c, 0xd0, 0x91, 0x68, 0xfd,
+ 0xfc, 0x61, 0x83, 0x46, 0x9c, 0xb0, 0xbb, 0x6a,
+ 0x6e, 0xc6, 0xf1, 0x71, 0x44, 0xc5, 0x05, 0x87,
+ 0x99, 0x16, 0x0c, 0xc3, 0xf9, 0x69, 0xc5, 0xb5,
+ 0x53, 0x60, 0x5c, 0x0c, 0x7e, 0xff, 0x84, 0x1f,
+ 0xc5, 0xea, 0x15, 0x1d, 0xea, 0xa0, 0xe3, 0x64,
+ 0x58, 0x81, 0x67, 0xa2, 0x7c, 0x37, 0x17, 0x7d,
+ 0xaf, 0x75, 0xbb, 0x22, 0x9b, 0x55, 0x7b, 0x34,
+ 0x83, 0x8d, 0x52, 0xf6, 0xf7, 0x7d, 0x29, 0xc6,
+ 0x68, 0x71, 0xf3, 0x5c, 0x23, 0x6e, 0x6c, 0x13,
+ 0xf3, 0x07, 0x52, 0x49, 0x54, 0xde, 0x89, 0x5a,
+ 0x58, 0x9e, 0xa4, 0x87, 0xd4, 0x9b, 0xb1, 0x5b,
+ 0x44, 0xc0, 0xc9, 0x7c, 0x33, 0x90, 0x9c, 0x11,
+ 0x52, 0x67, 0x51, 0xe8, 0x31, 0x99, 0x6d, 0x49,
+ 0x93, 0xf4, 0xc7, 0x93, 0xca, 0x5b, 0x39, 0x2a,
+ 0xae, 0x47, 0x94, 0x8a, 0xf5, 0x07, 0xe2, 0x21,
+ 0x1e, 0xcc, 0xdd, 0x7a, 0x0d, 0xa1, 0x30, 0xda,
+ 0x9c, 0xb6, 0x2b, 0x8c, 0x2f, 0xe6, 0xa6, 0xea,
+ 0xe9, 0x11, 0x03, 0x05, 0x1c, 0x17, 0x71, 0xaa,
+ 0x26, 0x3c, 0x26, 0x7c, 0xce, 0xe1, 0x4c, 0x96,
+ 0xf7, 0xba, 0xa5, 0x56, 0x17, 0x07, 0x30, 0xca,
+ 0x8a, 0x24, 0xdd, 0x2c, 0xeb, 0xbf, 0x3f, 0x41,
+ 0xe5, 0xdf, 0xd5, 0xfe, 0x57, 0x6e, 0xd6, 0x2b,
+ 0xc5, 0x4a, 0x4e, 0xb3, 0xe2, 0x71, 0xce, 0x76,
+ 0x8a, 0x6f, 0xdb, 0xe6, 0x04, 0xf6, 0xe1, 0xe1,
+ 0xaa, 0x5b, 0x22, 0x76, 0xde, 0x77, 0xae, 0x0c,
+ 0x5d, 0xe0, 0xd1, 0x98, 0xd3, 0xf5, 0xd0, 0x03,
+ 0x29, 0x53, 0xd3, 0xe6, 0x9a, 0xcd, 0x3e, 0xd3,
+ 0x4a, 0x7e, 0x82, 0x1b, 0x4f, 0xdf, 0x0c, 0x73,
+ 0x54, 0xee, 0x4d, 0x1f, 0xb2, 0xef, 0x89, 0xb5,
+ 0xd8, 0x60, 0xa8, 0x60, 0x23, 0x6d, 0x5c, 0xbe,
+ 0xf6, 0xa5, 0x39, 0xbb, 0x38, 0xff, 0x29, 0xfe,
+ 0x6b, 0xed, 0xca, 0xbe, 0xf9, 0x48, 0xef, 0xf0,
+ 0xb1, 0xb6, 0x3a, 0x38, 0xa3, 0x09, 0x48, 0x6a,
+ 0xb4, 0x66, 0x25, 0xcc, 0xeb, 0xbd, 0x5e, 0x22,
+ 0xf5, 0xc8, 0xe5, 0x81, 0xc2, 0xfd, 0x45, 0x2a,
+ 0x2d, 0x62, 0x0d, 0x6f, 0xcd, 0x18, 0x86, 0x45,
+ 0xb4, 0x94, 0x96, 0x48, 0xa8, 0x42, 0x14, 0xb7,
+ 0xc2, 0x3d, 0x21, 0x02, 0xc2, 0xec, 0x53, 0xcb,
+ 0x76, 0xab, 0x3c, 0x56, 0x55, 0x8c, 0xa6, 0x1f,
+ 0x6a, 0xf5, 0x61, 0xbf, 0xc2, 0x72, 0x28, 0xb6,
+ 0xce, 0x38, 0x7c, 0xb4, 0xbe, 0x71, 0x0b, 0x4d,
+ 0x0a, 0x0e, 0x13, 0x33, 0x2e, 0x97, 0x3a, 0x2b,
+ 0x9f, 0x7e, 0x92, 0xf6, 0x11, 0x93, 0xf6, 0x30,
+ 0x1a, 0x9d, 0x2b, 0x89, 0x7c, 0x61, 0x24, 0x7b,
+ 0x0f, 0xa6, 0xd7, 0x78, 0x59, 0xd3, 0x12, 0xe8,
+ 0x73, 0x1d, 0xb5, 0x54, 0x89, 0xcf, 0x4b, 0x2c,
+ 0xe6, 0xa8, 0x10, 0x08, 0xe2, 0x28, 0x93, 0xa0,
+ 0xa8, 0x7a, 0x16, 0xdc, 0x41, 0x54, 0x49, 0x83,
+ 0xd9, 0x3e, 0x42, 0xf9, 0x34, 0x00, 0xcd, 0x22,
+ 0xdb, 0xec, 0x96, 0xa7, 0xbb, 0xd0, 0x6e, 0x17,
+ 0xa2, 0x1c, 0x00, 0xf5, 0xd8, 0x0d, 0x04, 0xf8,
+ 0x71, 0x9c, 0x66, 0x26, 0xe9, 0xbc, 0x33, 0xdb,
+ 0x3f, 0x99, 0xd4, 0x37, 0x9c, 0xfa, 0x98, 0x2b,
+ 0xc9, 0x34, 0x14, 0xd2, 0x4d, 0x36, 0x27, 0x4a,
+ 0xf8, 0x05, 0xfb, 0x86, 0xfb, 0xd8, 0x48, 0xf2,
+ 0x00, 0x55, 0x4c, 0xe0, 0x8c, 0x17, 0xb8, 0xfc,
+ 0x26, 0x37, 0x82, 0x89, 0x32, 0xcc, 0x5b, 0xf9,
+ 0xdb, 0x8c, 0xe8, 0x56, 0x64, 0x53, 0x9b, 0xeb,
+ 0xb2, 0xdd, 0xc0, 0x3f, 0x82, 0x63, 0xaf, 0x75,
+ 0x51, 0xfc, 0xa2, 0xd8, 0x73, 0x5f, 0xf9, 0x3e,
+ 0xc3, 0x4a, 0x62, 0x1d, 0x72, 0x45, 0x87, 0xc2,
+ 0x56, 0x2f, 0x84, 0x80, 0x91, 0x26, 0xcc, 0x3d,
+ 0xb6, 0x2a, 0x23, 0xd0, 0x44, 0x54, 0xaa, 0x57,
+ 0x70, 0x2c, 0xe6, 0xa0, 0x52, 0x72, 0x22, 0xad,
+ 0x72, 0xa1, 0x8c, 0x76, 0x25, 0x94, 0x9e, 0xad,
+ 0x04, 0x3c, 0x2b, 0x91, 0x04, 0xd7, 0xd7, 0xd2,
+ 0x52, 0xcb, 0x2b, 0x47, 0x0c, 0x72, 0xa6, 0x76,
+ 0x60, 0xf2, 0xdf, 0x3a, 0xa5, 0xb5, 0x26, 0x70,
+ 0xd8, 0x5c, 0xd4, 0xce, 0x8a, 0xd5, 0x20, 0x9d,
+ 0x88, 0x92, 0xac, 0x88, 0x70, 0x03, 0x3c, 0x75,
+ 0x65, 0x1c, 0xd6, 0xba, 0x4f, 0x60, 0xa5, 0x43,
+ 0xa6, 0x56, 0x02, 0x46, 0xe0, 0x62, 0xfe, 0xde,
+ 0x2d, 0xe1, 0x2c, 0x9a, 0xfc, 0x17, 0xa1, 0x6d,
+ 0x17, 0xa1, 0x1e, 0xd5, 0x0a, 0x9c, 0xa1, 0x6e,
+ 0x7d, 0x6d, 0x30, 0x2f, 0x31, 0xcf, 0xe5, 0xd0,
+ 0x9a, 0xae, 0xc0, 0x8e, 0x95, 0xea, 0xe8, 0xef,
+ 0xd1, 0x56, 0x1d, 0xe4, 0x7f, 0x93, 0x89, 0xab,
+ 0x05, 0x29, 0x08, 0xd5, 0x05, 0x67, 0x6a, 0xf3,
+ 0x7a, 0x81, 0x01, 0x2e, 0xca, 0xe7, 0xc1, 0xd2,
+ 0xf9, 0x20, 0xcf, 0xcd, 0xb7, 0xc1, 0x83, 0x7d,
+ 0xdb, 0x12, 0x2b, 0x4a, 0x76, 0xef, 0xd3, 0x40,
+ 0xa5, 0xb4, 0xca, 0x18, 0xde, 0xbd, 0xb8, 0x4d,
+ 0xb8, 0x77, 0xb4, 0xb6, 0x06, 0x50, 0xc4, 0x15,
+ 0x5f, 0x08, 0x5a, 0x19, 0x21, 0xdf, 0x3b, 0xa9,
+ 0x07, 0xe9, 0x2c, 0xa3, 0x86, 0xfd, 0x94, 0xba,
+ 0x77, 0x54, 0x65, 0xc1, 0x19, 0x27, 0xcc, 0x51,
+ 0xa6, 0x27, 0x1b, 0x24, 0x10, 0x44, 0x07, 0x64,
+ 0xc3, 0xd5, 0xfe, 0x97, 0xcd, 0xa6, 0x78, 0x89,
+ 0xa4, 0x49, 0xde, 0xa7, 0xaa, 0x2a, 0x9e, 0x38,
+ 0x3e, 0xfe, 0x15, 0x20, 0x0f, 0x0a, 0x4f, 0x2e,
+ 0xcb, 0xab, 0xfd, 0xe6, 0x54, 0x6c, 0x77, 0x0a,
+ 0xad, 0x7a, 0x45, 0x86, 0xf9, 0xb7, 0xfe, 0x7c,
+ 0xe9, 0x51, 0x9e, 0x9e, 0x2b, 0x05, 0xff, 0x38,
+ 0xf1, 0x44, 0x3a, 0x20, 0x41, 0xdd, 0xad, 0x9c,
+ 0x5b, 0x06, 0xfe, 0x33, 0xfe, 0x19, 0x0a, 0x0d,
+ 0x6a, 0x9c, 0x6f, 0x69, 0xbb, 0x36, 0x82, 0xa7,
+ 0x8f, 0xe9, 0x57, 0x6b, 0xe6, 0x8a, 0xad, 0xe7,
+ 0xbb, 0x12, 0xed, 0xd0, 0xc5, 0x29, 0xad, 0xc8,
+ 0x32, 0xa5, 0x90, 0x21, 0xce, 0x37, 0x26, 0x84,
+ 0x14, 0xd8, 0xa2, 0x4d, 0x0a, 0xba, 0x16, 0xae,
+ 0x20, 0x1d, 0xa6, 0x5c, 0x07, 0xcd, 0x05, 0x7b,
+ 0x83, 0xe8, 0x42, 0xf6, 0xf6, 0x9c, 0x80, 0xa7,
+ 0xa1, 0x45, 0xd1, 0x09, 0x4c, 0x0b, 0x9e, 0x1e,
+ 0xf8, 0x3a, 0xe8, 0x62, 0x95, 0x7b, 0xfa, 0x71,
+ 0x3d, 0x07, 0x95, 0xdc, 0x13, 0x8e, 0xb1, 0x55,
+ 0xf1, 0xc5, 0x31, 0x2f, 0xf9, 0x60, 0x35, 0x7d,
+ 0x49, 0xef, 0x24, 0xc1, 0x6c, 0x4b, 0x97, 0xd8,
+ 0xaf, 0x83, 0x43, 0x99, 0x77, 0x37, 0xf5, 0x01,
+ 0x22, 0x47, 0xa0, 0x9b, 0xa1, 0x66, 0xc0, 0x92,
+ 0xc9, 0x83, 0xb2, 0x97, 0xc1, 0xc5, 0xc2, 0x64,
+ 0x8a, 0x3a, 0xdb, 0x3d, 0x85, 0xdf, 0x79, 0xf4,
+ 0x29, 0xd0, 0x31, 0x51, 0xc1, 0x3b, 0xde, 0xa8,
+ 0xad, 0xb7, 0x52, 0x14, 0xbd, 0x1a, 0xe6, 0xae,
+ 0x2d, 0x1a, 0x60, 0x99, 0x37, 0xd3, 0x02, 0x81,
+ 0x29, 0x39, 0xd8, 0xf8, 0xf0, 0xab, 0x53, 0x45,
+ 0x87, 0x41, 0x83, 0x85, 0x29, 0xc1, 0xea, 0xc6,
+ 0x73, 0x06, 0xe9, 0x67, 0x08, 0xcf, 0x10, 0x2a,
+ 0xd0, 0xe8, 0x18, 0xd1, 0x13, 0x0e, 0xa7, 0xd2,
+ 0xcb, 0xd7, 0x15, 0x86, 0x4c, 0x8c, 0x3f, 0x5b,
+ 0x55, 0x46, 0x02, 0xbc, 0x42, 0xd4, 0x15, 0x01,
+ 0xdf, 0xbd, 0x62, 0x79, 0xc6, 0x1d, 0x0c, 0xbf,
+ 0x76, 0x58, 0x86, 0x41, 0x03, 0xb9, 0x5a, 0xf7,
+ 0xde, 0xa5, 0xcb, 0x46, 0x04, 0x1a, 0x00, 0x52,
+ 0xc8, 0x6c, 0x7f, 0xbd, 0xb7, 0x2b, 0xfd, 0xda,
+ 0x9e, 0x98, 0xe0, 0x92, 0x99, 0xbb, 0x4f, 0xf1,
+ 0x05, 0x49, 0x6c, 0xc4, 0x7d, 0xe6, 0x4b, 0x28,
+ 0x8c, 0x44, 0x11, 0x31, 0x42, 0x0f, 0xba, 0x13,
+ 0x1e, 0x5f, 0x12, 0xeb, 0xbf, 0x03, 0x0d, 0x9f,
+ 0xfe, 0x2e, 0x35, 0x50, 0x54, 0xe5, 0xb9, 0xfb,
+ 0x1f, 0xa9, 0xf0, 0xd1, 0xc5, 0x16, 0x5c, 0x89,
+ 0x59, 0x62, 0x34, 0xe1, 0x8c, 0x7b, 0x7c, 0x77,
+ 0x11, 0x6a, 0x4d, 0x77, 0xf1, 0xcc, 0x61, 0xde,
+ 0x6b, 0xa0, 0x4b, 0x50, 0x01, 0xcc, 0xba, 0x8a,
+ 0x6f, 0xc7, 0x6d, 0xdb, 0x04, 0x74, 0x52, 0xe9,
+ 0xbb, 0x1f, 0xe0, 0xcb, 0x18, 0x62, 0x42, 0xfb,
+ 0xa5, 0xaf, 0x6f, 0x65, 0x14, 0x01, 0xea, 0x01,
+ 0x1d, 0xd4, 0xa1, 0x98, 0x44, 0x91, 0x19, 0x9e,
+ 0xe3, 0x45, 0x1d, 0x95, 0x5b, 0xb1, 0x88, 0xf7,
+ 0x12, 0xf1, 0xf7, 0xc5, 0x1f, 0x50, 0x19, 0x0b,
+ 0x29, 0x9b, 0x9e, 0xce, 0x18, 0xd5, 0xdf, 0xa1,
+ 0x5d, 0xe0, 0x70, 0x8e, 0x82, 0x75, 0xfa, 0x8d,
+ 0x7d, 0x5f, 0x60, 0x7d, 0xb5, 0xf3, 0xa0, 0xe4,
+ 0x0c, 0x69, 0xc3, 0x83, 0x5f, 0x49, 0xe4, 0x9f,
+ 0xde, 0xdb, 0x93, 0x44, 0x43, 0xf7, 0xaa, 0x11,
+ 0x8c, 0x46, 0xa8, 0x32, 0x1a, 0x93, 0xc9, 0xe6,
+ 0xb8, 0x4e, 0xe9, 0x5c, 0x93, 0x99, 0xb7, 0x40,
+ 0xf6, 0x8f, 0x56, 0xbd, 0x3f, 0x33, 0x63, 0x3d,
+ 0x21, 0x61, 0xec, 0x83, 0xf5, 0xb4, 0x97, 0x74,
+ 0x63, 0x13, 0x9a, 0x4e, 0x5b, 0xf8, 0x67, 0xd3,
+ 0x04, 0xca, 0xff, 0x69, 0xfa, 0x9d, 0x43, 0xa8,
+ 0xb9, 0x3a, 0xda, 0xe1, 0x40, 0x8f, 0x05, 0x57,
+ 0xc6, 0xc5, 0x78, 0x73, 0xfe, 0xae, 0x93, 0xa9,
+ 0x65, 0xc0, 0xf3, 0x2b, 0x1e, 0x66, 0x0c, 0x19,
+ 0x35, 0x78, 0xfa, 0xbc, 0x91, 0xa9, 0xa6, 0xf2,
+ 0xaf, 0x6b, 0x93, 0xd0, 0x6c, 0xd2, 0xd8, 0x0d,
+ 0xe6, 0x61, 0x5d, 0x44, 0x9e, 0x94, 0xac, 0x9e,
+ 0x19, 0xad, 0xfa, 0xe2, 0xc3, 0xa3, 0x46, 0x30,
+ 0xf2, 0xb8, 0x90, 0xe7, 0x1b, 0xc6, 0x4b, 0xbb,
+ 0xe6, 0xf3, 0x47, 0x54, 0x4d, 0x4c, 0xe4, 0xbc,
+ 0xf8, 0x69, 0x90, 0x39, 0xab, 0x03, 0x43, 0xf4,
+ 0x64, 0x55, 0x9b, 0xec, 0x95, 0x8b, 0x13, 0x03,
+ 0xdf, 0x58, 0x5e, 0x2c, 0xf8, 0x53, 0xe5, 0x42,
+ 0x9c, 0x5f, 0x9d, 0x36, 0x4b, 0xad, 0x5f, 0x2c,
+ 0xc4, 0x2b, 0x07, 0x43, 0xc4, 0xa3, 0x91, 0xf1,
+ 0xf4, 0xf6, 0x3a, 0xef, 0xe7, 0x0b, 0x43, 0xc5,
+ 0xc5, 0xef, 0x3f, 0xf7, 0x29, 0xf2, 0x74, 0xae,
+ 0x47, 0x0c, 0x7f, 0x6a, 0x75, 0x56, 0x48, 0x06,
+ 0x56, 0x4e, 0x73, 0x14, 0x91, 0xd7, 0x27, 0x2b,
+ 0x64, 0xe1, 0xd3, 0x68, 0x84, 0x9d, 0x56, 0xc6,
+ 0xac, 0xa9, 0xf7, 0x8f, 0x2e, 0xa2, 0x12, 0x48,
+ 0xad, 0x28, 0xa7, 0x1a, 0x58, 0x44, 0xcc, 0x69,
+ 0xa8, 0x42, 0x32, 0x79, 0xd7, 0x77, 0xee, 0xeb,
+ 0x97, 0x13, 0x82, 0x4d, 0xac, 0xb0, 0x08, 0x64,
+ 0x34, 0x59, 0xfa, 0xe8, 0x48, 0x12, 0x11, 0x93,
+ 0x8d, 0x7d, 0x94, 0x9f, 0x14, 0xd0, 0x06, 0x62,
+ 0x4b, 0x51, 0x74, 0x5d, 0x7b, 0x1c, 0x70, 0x68,
+ 0x82, 0xab, 0xf2, 0x41, 0xdc, 0xc9, 0x19, 0x64,
+ 0x71, 0xa0, 0xcf, 0xd0, 0x16, 0x46, 0x9a, 0x93,
+ 0x40, 0x87, 0xa3, 0x7e, 0x1a, 0x19, 0x25, 0x6b,
+ 0xe1, 0x72, 0xd4, 0x4a, 0xf2, 0x8a, 0xdf, 0x96,
+ 0x9d, 0xfc, 0xb2, 0xe1, 0x53, 0xd1, 0x31, 0x3e,
+ 0xeb, 0xd0, 0xdf, 0xde, 0x3f, 0xb1, 0xc3, 0x92,
+ 0xdb, 0xd1, 0x7e, 0x0f, 0x4b, 0xac, 0x09, 0x28,
+ 0xa4, 0xaf, 0x3c, 0x74, 0x67, 0x19, 0xf0, 0xe5,
+ 0xe6, 0x44, 0x3e, 0x47, 0x44, 0x51, 0x31, 0x9e,
+ 0xda, 0x3e, 0x4b, 0xd8, 0xd1, 0xba, 0x93, 0x6f,
+ 0x62, 0x59, 0xdc, 0x25, 0x35, 0x2c, 0x0c, 0xa6,
+ 0xca, 0x28, 0x0a, 0xd5, 0x4c, 0x96, 0x72, 0xd9,
+ 0x89, 0xbd, 0xd1, 0x49, 0x70, 0xe1, 0xc6, 0xe7,
+ 0x7f, 0xf8, 0x45, 0x39, 0xe3, 0xa5, 0x9d, 0xd2,
+ 0xae, 0xf7, 0xd6, 0x19, 0x57, 0x17, 0x57, 0x76,
+ 0x31, 0x29, 0xdf, 0x3b, 0xa9, 0x89, 0x72, 0xb0,
+ 0x45, 0xea, 0xc9, 0xcf, 0x6d, 0x8e, 0xf7, 0xf1,
+ 0x94, 0x98, 0x6a, 0x8b, 0xf7, 0x83, 0xe9, 0xa9,
+ 0xda, 0x34, 0xf1, 0x58, 0x90, 0xe5, 0xaf, 0x98,
+ 0x42, 0x72, 0xe4, 0x87, 0xff, 0x5d, 0xb6, 0x26,
+ 0x35, 0x40, 0x3b, 0xe6, 0x8f, 0xc8, 0x43, 0xe2,
+ 0xe7, 0xf9, 0x35, 0x03, 0x27, 0xdb, 0xfc, 0xc1,
+ 0x2b, 0x8b, 0xed, 0x3c, 0xaa, 0x1a, 0xb5, 0xc9,
+ 0x98, 0xea, 0x58, 0x5c, 0x12, 0x27, 0xc8, 0x6d,
+ 0xc8, 0xea, 0x40, 0x01, 0x5c, 0x28, 0x3e, 0x2d,
+ 0x4a, 0x98, 0x03, 0x0b, 0xfb, 0xc1, 0x04, 0x0e,
+ 0x15, 0x55, 0x5d, 0x9c, 0x19, 0x2d, 0x7d, 0x85,
+ 0x0b, 0x33, 0x22, 0x93, 0x11, 0x07, 0x22, 0x66,
+ 0x76, 0x3e, 0x49, 0x5d, 0xdf, 0xb7, 0x3e, 0x49,
+ 0x3a, 0x27, 0x4b, 0xdd, 0x4d, 0x71, 0xe7, 0x75,
+ 0x69, 0xc4, 0xfc, 0x59, 0x26, 0xdf, 0xa8, 0x59,
+ 0x9f, 0xff, 0x86, 0xed, 0x25, 0x89, 0x51, 0xae,
+ 0x42, 0x62, 0x41, 0x08, 0x42, 0x1f, 0x20, 0x0a,
+ 0x0e, 0x50, 0x56, 0xb5, 0x54, 0xb8, 0xd7, 0x59,
+ 0xe1, 0x3a, 0x57, 0x63, 0x45, 0x2d, 0xcd, 0x3f,
+ 0x10, 0xb8, 0xfd, 0xd8, 0xb0, 0xd4, 0xe4, 0x90,
+ 0x96, 0x9a, 0x5b, 0x8d, 0x1e, 0x6c, 0x6f, 0x7d,
+ 0x78, 0x2b, 0x13, 0x51, 0xfd, 0xbc, 0x9e, 0xc2,
+ 0x05, 0x2a, 0x08, 0xa2, 0x4d, 0x5c, 0x81, 0xec,
+ 0xdd, 0x15, 0xba, 0xa1, 0x27, 0x60, 0xa0, 0x92,
+ 0x34, 0x6a, 0x33, 0x7c, 0xf2, 0x6f, 0xdc, 0xce,
+ 0x5d, 0x20, 0x27, 0x32, 0xcd, 0xa2, 0x71, 0x46,
+ 0xc5, 0x1c, 0x90, 0xd1, 0x56, 0x4b, 0xe7, 0xe8,
+ 0x3f, 0x08, 0x91, 0x2f, 0x3c, 0x01, 0x9d, 0x15,
+ 0x50, 0x2c, 0x9b, 0x6e, 0xfb, 0xc5, 0x75, 0x3b,
+ 0xdc, 0x90, 0x9e, 0xf0, 0x8e, 0x15, 0x3c, 0x33,
+ 0x0f, 0x52, 0x53, 0x4f, 0x0f, 0xdc, 0x63, 0xc6,
+ 0xa7, 0x0d, 0x99, 0x76, 0xef, 0x8c, 0x34, 0x13,
+ 0x3d, 0xdf, 0xc3, 0x5b, 0xea, 0x70, 0x7b, 0x67,
+ 0x90, 0xed, 0xfb, 0x3c, 0x3d, 0xf9, 0x71, 0x62,
+ 0xae, 0x45, 0x00, 0xb1, 0x22, 0x45, 0x23, 0xd7,
+ 0x5e, 0xdf, 0xfb, 0xb3, 0x55, 0x37, 0x5c, 0x40,
+ 0xda, 0x83, 0xc1, 0x0f, 0x75, 0x39, 0xc3, 0xd0,
+ 0x9e, 0x49, 0xa7, 0x2b, 0xf5, 0xc1, 0x56, 0xc1,
+ 0x9a, 0x90, 0x94, 0x81, 0x9b, 0xd6, 0x97, 0x43,
+ 0x96, 0x5b, 0x37, 0xf5, 0x70, 0x75, 0x82, 0xbc,
+ 0x55, 0xe6, 0x90, 0xc7, 0x98, 0x93, 0x0f, 0xfb,
+ 0xde, 0x8c, 0xc8, 0x72, 0x93, 0xb5, 0xdb, 0xc6,
+ 0xef, 0x34, 0xf9, 0xcd, 0x17, 0x73, 0xc8, 0xb5,
+ 0xba, 0x75, 0x70, 0xd5, 0x41, 0xb3, 0xac, 0x60,
+ 0x3f, 0xa5, 0x27, 0xcf, 0x0a, 0x17, 0x6d, 0x8f,
+ 0xcd, 0xf7, 0x33, 0x29, 0xf6, 0x37, 0xdd, 0x81,
+ 0x71, 0x75, 0xb2, 0x71, 0x95, 0x28, 0x36, 0x76,
+ 0x7d, 0xb0, 0xaa, 0x19, 0xa9, 0xfb, 0xb6, 0xd2,
+ 0xec, 0xf6, 0x13, 0xaf, 0x40, 0x8a, 0x23, 0x89,
+ 0x2f, 0x8f, 0xe0, 0x83, 0xcd, 0xa7, 0x3d, 0x0a,
+ 0xeb, 0x64, 0x07, 0xcc, 0x2a, 0x2d, 0xe7, 0x1f,
+ 0x77, 0x65, 0x3b, 0xf1, 0xb7, 0xfb, 0x31, 0x32,
+ 0xa3, 0x2b, 0xf5, 0xb2, 0x5c, 0x6b, 0xf7, 0x64,
+ 0xaa, 0xd5, 0xe7, 0x14, 0x32, 0xbf, 0x3c, 0xec,
+ 0xe0, 0x63, 0xb4, 0x9c, 0x44, 0xed, 0x4b, 0x96,
+ 0x03, 0xc0, 0x8c, 0x99, 0x62, 0xcb, 0xe1, 0xd5,
+ 0xa3, 0x16, 0x5f, 0x95, 0x78, 0x4a, 0x98, 0x19,
+ 0x4b, 0x4e, 0x74, 0x92, 0x12, 0x41, 0x4f, 0xd0,
+ 0xf3, 0x4b, 0x24, 0x68, 0xd3, 0xcb, 0xda, 0x35,
+ 0x61, 0xda, 0x6f, 0xa6, 0x80, 0x93, 0x82, 0xd0,
+ 0xd3, 0x11, 0x9a, 0xb4, 0xbf, 0xb8, 0x8f, 0x68,
+ 0x84, 0x7b, 0x27, 0x96, 0xce, 0x7c, 0x11, 0x06,
+ 0x44, 0x2b, 0x6e, 0x39, 0x37, 0x36, 0x55, 0xe6,
+ 0x21, 0x44, 0x63, 0xce, 0x80, 0x0f, 0xdc, 0xad,
+ 0xef, 0xc9, 0x30, 0x05, 0x3a, 0x40, 0x1f, 0x8e,
+ 0x5b, 0x79, 0x41, 0xcd, 0x6a, 0x57, 0xd0, 0xf2,
+ 0xee, 0x65, 0xdf, 0xb0, 0xac, 0x89, 0xd9, 0x4b,
+ 0xe5, 0xf2, 0xce, 0x85, 0xdf, 0x80, 0x7f, 0x9b,
+ 0x86, 0xd4, 0x00, 0x7a, 0x3e, 0xfa, 0xcd, 0xbd,
+ 0xe2, 0xcb, 0xa2, 0x5f, 0x1d, 0x04, 0xa2, 0x1e,
+ 0xf5, 0xc7, 0x07, 0x5b, 0x17, 0xd3, 0xfb, 0xd1,
+ 0x95, 0x8e, 0xe3, 0x6e, 0xbc, 0xff, 0xd4, 0xe0,
+ 0x97, 0xd6, 0x8c, 0xab, 0x11, 0x1e, 0x53, 0x16,
+ 0x40, 0x0a, 0x06, 0x23, 0x50, 0x15, 0x82, 0x87,
+ 0x19, 0xcf, 0xee, 0x44, 0x5b, 0x3c, 0x60, 0x78,
+ 0xe7, 0xcd, 0x13, 0xf6, 0x03, 0x9f, 0x23, 0xa0,
+ 0x74, 0x0b, 0x4c, 0xfe, 0x7f, 0x21, 0xa4, 0x11,
+ 0xf9, 0x62, 0xeb, 0xe3, 0xe3, 0x5d, 0x5a, 0x7b,
+ 0x54, 0xc5, 0x10, 0x5c, 0x42, 0x2a, 0x10, 0x7e,
+ 0x82, 0x3c, 0x9a, 0x8f, 0xa1, 0x75, 0xac, 0x4c,
+ 0xe7, 0x2b, 0xfc, 0xd7, 0xd0, 0x7b, 0x05, 0x42,
+ 0xc6, 0xa3, 0x8e, 0x9b, 0x68, 0xfd, 0x45, 0x4e,
+ 0xec, 0x25, 0x01, 0x0e, 0x45, 0x26, 0x31, 0x5a,
+ 0x7b, 0x8b, 0xe1, 0x69, 0xd0, 0x80, 0xc9, 0xb8,
+ 0xd0, 0xc2, 0x6c, 0xb6, 0x76, 0xff, 0x1f, 0xa8,
+ 0x26, 0xed, 0x51, 0xa6, 0xde, 0x93, 0x18, 0x8c,
+ 0x21, 0xf1, 0x58, 0x9d, 0x58, 0xfd, 0xaa, 0x95,
+ 0x98, 0xbd, 0x4c, 0xe6, 0xe8, 0xa6, 0x0a, 0x2d,
+ 0x9e, 0x0e, 0x1b, 0x58, 0x72, 0xe6, 0xe4, 0xdd,
+ 0x38, 0x69, 0x8e, 0x87, 0x05, 0x41, 0x40, 0xd6,
+ 0x63, 0xab, 0xef, 0x52, 0x39, 0x5e, 0x13, 0xc2,
+ 0x5a, 0x70, 0x27, 0x17, 0xb7, 0x3f, 0x93, 0x85,
+ 0x0d, 0x7c, 0x20, 0x7c, 0xc3, 0xdb, 0xfe, 0x8e,
+ 0x33, 0x11, 0x2c, 0x6e, 0x73, 0xb0, 0x6b, 0xfb,
+ 0xa8, 0x87, 0xaa, 0x1b, 0x07, 0xfd, 0x43, 0x7e,
+ 0x87, 0xe8, 0xb9, 0xca, 0x44, 0x8c, 0xc2, 0x01,
+ 0xfa, 0xa6, 0x9a, 0x48, 0x44, 0xd7, 0x60, 0x1c,
+ 0x62, 0x5b, 0xa0, 0xe9, 0xaf, 0xf5, 0x1f, 0xad,
+ 0xa7, 0x2d, 0x68, 0xbc, 0xcb, 0x24, 0xa2, 0x5d,
+ 0x5d, 0x87, 0x0a, 0x9b, 0xae, 0x77, 0x73, 0xf8,
+ 0x7b, 0x91, 0x31, 0x23, 0x29, 0xd4, 0x1f, 0xb7,
+ 0xf1, 0xfb, 0x75, 0x84, 0x09, 0xd6, 0xc2, 0x7d,
+ 0x11, 0x8b, 0x69, 0xae, 0xdc, 0x83, 0xb7, 0xb4,
+ 0xbd, 0xc3, 0x97, 0x59, 0xac, 0xf5, 0x25, 0x6d,
+ 0xd1, 0x00, 0x6a, 0xb8, 0xf3, 0xf6, 0x7e, 0x62,
+ 0x29, 0x56, 0xe3, 0x5b, 0xa2, 0x5b, 0xb1, 0x66,
+ 0xb6, 0x6f, 0x2f, 0x6c, 0xdc, 0xf2, 0x7d, 0x6a,
+ 0x96, 0x45, 0x8a, 0x88, 0x0d, 0x47, 0x65, 0xe3,
+ 0x53, 0xb0, 0x54, 0x3b, 0xa2, 0xd9, 0xe5, 0x4b,
+ 0x1d, 0xde, 0xf4, 0xac, 0xbf, 0xb5, 0x2f, 0xcc,
+ 0x68, 0x06, 0x77, 0x14, 0xfb, 0x95, 0x69, 0x65,
+ 0x77, 0xf4, 0xa6, 0xa0, 0x5c, 0x45, 0x18, 0xc3,
+ 0x10, 0x74, 0x22, 0x4a, 0xe3, 0x78, 0xce, 0x75,
+ 0x82, 0xf6, 0x89, 0x85, 0x11, 0x60, 0x8e, 0xa8,
+ 0x80, 0x39, 0x7b, 0xd2, 0xde, 0xe6, 0x4d, 0x92,
+ 0xdc, 0xbf, 0x1e, 0x78, 0x58, 0xde, 0xfc, 0xe7,
+ 0x0f, 0x16, 0x6d, 0xbd, 0xa6, 0x61, 0x98, 0x8b,
+ 0x2b, 0xd3, 0xeb, 0xa7, 0x5a, 0xb6, 0x94, 0x8b,
+ 0xdf, 0xf8, 0x65, 0x4f, 0x4d, 0xd2, 0x43, 0xdb,
+ 0x16, 0x44, 0x08, 0xc7, 0x58, 0xca, 0x50, 0xdd,
+ 0x0d, 0xe3, 0xc6, 0x96, 0x8c, 0x02, 0xb5, 0xcc,
+ 0x0c, 0x5b, 0x28, 0x95, 0x03, 0x00, 0x13, 0xa7,
+ 0x9a, 0x65, 0xad, 0xdd, 0x11, 0x18, 0x99, 0x2f,
+ 0xd4, 0x45, 0x38, 0x4e, 0x37, 0x82, 0x29, 0x70,
+ 0x6a, 0x3b, 0xaf, 0x9a, 0x89, 0x66, 0x79, 0x57,
+ 0xfe, 0x73, 0x71, 0x56, 0x92, 0xc9, 0x76, 0x02,
+ 0x63, 0x1e, 0xa8, 0x24, 0x1a, 0xeb, 0x9e, 0xac,
+ 0x0a, 0xd8, 0x86, 0x5c, 0x75, 0xb1, 0x05, 0x9c,
+ 0xd3, 0x4f, 0x4b, 0x90, 0x76, 0xb3, 0xf1, 0x91,
+ 0x76, 0xb4, 0x77, 0xee, 0x4c, 0x10, 0x49, 0x20,
+ 0xc8, 0x9f, 0x80, 0xd0, 0xbd, 0x78, 0xa8, 0xc9,
+ 0x92, 0x6c, 0x66, 0x77, 0x1a, 0xe2, 0x62, 0x0c,
+ 0x71, 0x32, 0xd9, 0xf9, 0x83, 0x8b, 0x3c, 0xbd,
+ 0x22, 0xb6, 0xf9, 0xe8, 0x72, 0xf4, 0xab, 0x17,
+ 0x50, 0x92, 0xf2, 0xf6, 0x8c, 0x6c, 0x09, 0x03,
+ 0x68, 0xfc, 0x6a, 0x31, 0x9f, 0x62, 0xeb, 0x4b,
+ 0xb5, 0x4a, 0xfa, 0xd9, 0xe3, 0x9e, 0xfb, 0x90,
+ 0xa4, 0x52, 0xe4, 0x43, 0xb3, 0x2d, 0x82, 0x66,
+ 0x85, 0x45, 0x00, 0x51, 0x3f, 0x36, 0x08, 0x37,
+ 0x1e, 0x72, 0xa1, 0xf3, 0x1c, 0x86, 0xdf, 0xd9,
+ 0x49, 0x64, 0xa3, 0xf4, 0x46, 0x86, 0xae, 0x62,
+ 0x3a, 0x26, 0x7b, 0x22, 0xfb, 0xef, 0x06, 0xb5,
+ 0x2d, 0x86, 0xc6, 0xd4, 0x71, 0x76, 0x8c, 0xfd,
+ 0xf8, 0x9f, 0x2d, 0xe2, 0xf5, 0x1c, 0x01, 0x98,
+ 0xd9, 0xfb, 0xbd, 0xd1, 0xd6, 0x28, 0xc9, 0xe8,
+ 0x7c, 0x2c, 0x19, 0xfa, 0x7e, 0x68, 0x0d, 0x92,
+ 0x84, 0x0f, 0xb2, 0xca, 0xbb, 0x44, 0x9c, 0xf2,
+ 0xd6, 0x6f, 0xa8, 0x00, 0xe9, 0xac, 0x54, 0x93,
+ 0x59, 0x17, 0x48, 0x35, 0xba, 0xfb, 0x13, 0x1b,
+ 0x78, 0x47, 0x08, 0x9b, 0x22, 0x66, 0xbf, 0x6a,
+ 0xef, 0xfb, 0xd5, 0xe9, 0x59, 0xe6, 0x41, 0xd9,
+ 0x62, 0x3b, 0xfa, 0x48, 0x1a, 0x18, 0xf7, 0x20,
+ 0x64, 0x34, 0xbc, 0xa6, 0x60, 0x2b, 0xbf, 0xad,
+ 0x84, 0x8c, 0x9c, 0x79, 0xb7, 0x99, 0xc4, 0xd0,
+ 0xf7, 0xe7, 0x30, 0x86, 0xe7, 0xc7, 0x41, 0xcb,
+ 0x25, 0x47, 0x47, 0x5a, 0x94, 0x3d, 0x6d, 0x18,
+ 0x72, 0xdb, 0xdd, 0x0f, 0x07, 0xd3, 0x4c, 0x3e,
+ 0x30, 0x36, 0xa8, 0x81, 0x02, 0xe0, 0x55, 0xc2,
+ 0xbc, 0x06, 0xc9, 0x78, 0x82, 0xd4, 0xc8, 0x99,
+ 0x77, 0x0b, 0x5d, 0xd4, 0x6c, 0x56, 0x08, 0x1c,
+ 0x80, 0x5d, 0x80, 0x30, 0x7b, 0x82, 0xa1, 0x38,
+ 0xf8, 0x96, 0xdf, 0xc2, 0xd9, 0xe8, 0x76, 0xc6,
+ 0xa9, 0x62, 0xa8, 0x7e, 0xc2, 0x5a, 0x03, 0x66,
+ 0xc0, 0x22, 0x20, 0x81, 0xd9, 0xec, 0x62, 0x1d,
+ 0x06, 0x58, 0x88, 0x23, 0xfb, 0x84, 0x32, 0x99,
+ 0x1e, 0x2d, 0xd2, 0xe2, 0xed, 0x4f, 0x85, 0xbb,
+ 0x36, 0xfc, 0x98, 0x34, 0xa7, 0x44, 0x30, 0x29,
+ 0x53, 0xbe, 0x24, 0x40, 0x87, 0xc9, 0xd5, 0xbf,
+ 0x1a, 0xe4, 0x35, 0x19, 0x66, 0x70, 0x3b, 0xc6,
+ 0x3c, 0x2a, 0x12, 0x11, 0xbf, 0xa3, 0x59, 0x58,
+ 0x07, 0x1a, 0xdc, 0x94, 0x04, 0xf2, 0xbc, 0xd7,
+ 0xf4, 0xeb, 0x07, 0xbb, 0x1a, 0x64, 0x76, 0xd4,
+ 0xa1, 0x4a, 0xbe, 0xca, 0xbf, 0x7d, 0xba, 0xa4,
+ 0x16, 0x24, 0xf3, 0xc2, 0x66, 0xa2, 0x03, 0xc9,
+ 0x59, 0xaa, 0xd1, 0x5b, 0xa7, 0xd5, 0x52, 0x7b,
+ 0x50, 0x72, 0x97, 0xa7, 0x74, 0x0c, 0xc6, 0xde,
+ 0xe5, 0x7c, 0xc6, 0x48, 0x2d, 0x68, 0x26, 0x38,
+ 0x2d, 0x08, 0x3c, 0xf5, 0x1d, 0xcb, 0x45, 0x06,
+ 0x5b, 0xaa, 0xe0, 0x87, 0x0c, 0x45, 0xd3, 0x5a,
+ 0xe4, 0xab, 0x22, 0xa4, 0xe5, 0x38, 0xda, 0xbf,
+ 0x89, 0x4b, 0x39, 0xa0, 0x65, 0xe1, 0x7f, 0xcb,
+ 0x82, 0xd1, 0xb8, 0xe4, 0x66, 0xdf, 0xeb, 0x8c,
+ 0xbb, 0xa5, 0x2a, 0x4d, 0x85, 0x3a, 0xef, 0xab,
+ 0x66, 0x13, 0x55, 0xa9, 0x9b, 0x2f, 0xb6, 0x7e,
+ 0x03, 0x3e, 0x45, 0x63, 0xda, 0x25, 0x39, 0x3f,
+ 0x8a, 0x8d, 0x9a, 0xd6, 0x01, 0x64, 0x7f, 0x93,
+ 0x9c, 0xa3, 0xb6, 0x06, 0x18, 0x3b, 0x43, 0x5b,
+ 0x76, 0x7b, 0xb8, 0xb9, 0xf4, 0x38, 0x3d, 0x3e,
+ 0x4e, 0x51, 0x66, 0x9a, 0xb3, 0xc3, 0x05, 0xa2,
+ 0xbc, 0xca, 0xce, 0xff, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0x0c, 0x13, 0x1d, 0x26, 0x2c, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0xba, 0x4a, 0xf9, 0x35, 0xb4, 0x45, 0x33, 0x86,
+ 0xd2, 0xb6, 0xc1, 0x3a, 0x55, 0x85, 0xc1, 0xff,
+ 0xca, 0xe0, 0x0e, 0x26, 0x01, 0x6b, 0x1d, 0x88,
+ 0x7d, 0x67, 0x6c, 0xa8, 0xac, 0x6d, 0x90, 0xdb,
+ 0x60, 0xf2, 0x21, 0xe8, 0x24, 0x95, 0x8c, 0x0d,
+ 0x16, 0x41, 0x46, 0x59, 0x08, 0x24, 0xbe, 0x15,
+ 0x50, 0x63, 0xf6, 0xe2, 0x2a, 0x36, 0xf4, 0x55,
+ 0x2e, 0xb0, 0xab, 0x5b, 0xe0, 0xc0, 0x82, 0x98,
+ 0xe3, 0x2f, 0x40, 0x99, 0x4e, 0x8f, 0x1c, 0x08,
+ 0x0c, 0xfc, 0x6b, 0x32, 0xbb, 0x5a, 0x28, 0xd1,
+ 0xdd, 0xab, 0xc4, 0xf5, 0x04, 0x01, 0x68, 0x26,
+ 0x02, 0xb9, 0x76, 0x87, 0x32, 0xed, 0xfc, 0x4c,
+ 0x5e, 0x4c, 0xa0, 0x87, 0x87, 0xdb, 0x58, 0x95,
+ 0x11, 0x5c, 0x38, 0x42, 0x17, 0xed, 0x16, 0xe2,
+ 0xaf, 0x4e, 0x91, 0x4c, 0x3e, 0xe0, 0x57, 0x24,
+ 0x60, 0x19, 0x67, 0x39, 0xb9, 0x45, 0x2e, 0x9e,
+ 0x20, 0xeb, 0x66, 0x0b, 0xd9, 0xd3, 0x70, 0x82,
+ 0x1f, 0xf9, 0xff, 0xe1, 0x5e, 0x1b, 0x83, 0x4d,
+ 0x12, 0x3e, 0xe8, 0xdc, 0x33, 0xec, 0x11, 0x3e,
+ 0x2b, 0x37, 0x4f, 0xaf, 0x2a, 0x3d, 0x18, 0x63,
+ 0x14, 0x8a, 0x8e, 0xfd, 0xd4, 0x75, 0x0a, 0x12,
+ 0xb3, 0x02, 0x3f, 0x64, 0x36, 0xfa, 0x4e, 0x9a,
+ 0xed, 0x95, 0x37, 0x3c, 0x0d, 0x21, 0x7c, 0xd3,
+ 0x90, 0x44, 0xc9, 0xfb, 0x19, 0x19, 0x98, 0xd8,
+ 0x5a, 0xe0, 0x74, 0xad, 0x0e, 0xa6, 0xda, 0x2f,
+ 0x09, 0xba, 0xe2, 0x77, 0x54, 0xa8, 0xbc, 0xe8,
+ 0x13, 0xb2, 0xc3, 0x46, 0x45, 0x9b, 0xc3, 0x08,
+ 0x73, 0xf1, 0x53, 0x82, 0xfd, 0x81, 0xca, 0x3e,
+ 0xe2, 0x09, 0xa1, 0x73, 0x27, 0x94, 0xd5, 0x76,
+ 0xf2, 0xe8, 0x09, 0x0d, 0xaf, 0xe5, 0x4c, 0xa9,
+ 0xa3, 0x13, 0x9a, 0xe6, 0xd2, 0x04, 0x87, 0x3d,
+ 0x5e, 0x34, 0x65, 0xbf, 0xdc, 0x4b, 0x4b, 0xf5,
+ 0xab, 0x28, 0x44, 0x28, 0x76, 0x4a, 0xe4, 0xd2,
+ 0x71, 0x03, 0xd3, 0xc2, 0x97, 0x29, 0x19, 0xcf,
+ 0xfd, 0x16, 0xad, 0x52, 0x07, 0x50, 0x65, 0x07,
+ 0xc6, 0x7e, 0x69, 0x0d, 0xec, 0x26, 0x81, 0x13,
+ 0xbf, 0x7c, 0x5e, 0x8a, 0xf0, 0xee, 0xbd, 0x97,
+ 0xe5, 0xce, 0x3d, 0x17, 0x9f, 0x38, 0xcf, 0x30,
+ 0xe2, 0xf9, 0xd9, 0xc5, 0x1f, 0xf5, 0x20, 0x81,
+ 0x79, 0x10, 0x9b, 0xee, 0x8f, 0xed, 0x0c, 0x9b,
+ 0x96, 0x87, 0x89, 0x4d, 0xc5, 0x01, 0x19, 0x38,
+ 0x11, 0x11, 0x36, 0x71, 0x0f, 0x9f, 0x0f, 0xfb,
+ 0x9b, 0x1e, 0xf1, 0x26, 0x3b, 0x10, 0x43, 0xe9,
+ 0x4f, 0x14, 0xef, 0xef, 0x34, 0xfc, 0x59, 0xfe,
+ 0x82, 0x9e, 0xaa, 0x31, 0x6d, 0x0b, 0xae, 0xb6,
+ 0x9e, 0xef, 0xe2, 0xcc, 0x19, 0x27, 0xf0, 0xe9,
+ 0xf5, 0xab, 0x03, 0xeb, 0x1f, 0xef, 0x42, 0x75,
+ 0x5d, 0xf2, 0x9f, 0x7f, 0xdd, 0xf8, 0x07, 0x45,
+ 0x27, 0x8b, 0x6e, 0xb8, 0x25, 0x86, 0xc7, 0xe8,
+ 0x4e, 0x1e, 0x60, 0x08, 0xf9, 0x90, 0x9e, 0xf2,
+ 0xad, 0xca, 0xdf, 0x56, 0x4f, 0xf6, 0x0a, 0xc3,
+ 0x53, 0x2c, 0xf9, 0x2c, 0xdd, 0xd6, 0xf2, 0x9d,
+ 0x6d, 0x33, 0x61, 0x2e, 0xb0, 0x3f, 0x16, 0xa0,
+ 0x18, 0x8e, 0xcb, 0x33, 0x32, 0x0f, 0x51, 0x6d,
+ 0xfe, 0x8a, 0x07, 0x0d, 0x06, 0x42, 0x66, 0x6d,
+ 0x67, 0x36, 0xb7, 0x8c, 0x26, 0x27, 0x90, 0xd8,
+ 0xe8, 0xd9, 0xc1, 0x97, 0x0f, 0xe3, 0x73, 0x0d,
+ 0xa8, 0x47, 0xa8, 0xea, 0x46, 0x8e, 0x52, 0x12,
+ 0x2a, 0x67, 0xeb, 0x90, 0xb7, 0x78, 0x47, 0x0c,
+ 0x78, 0x22, 0xed, 0xe0, 0xac, 0xdd, 0x9b, 0x2b,
+ 0xf1, 0x4c, 0x7d, 0xfb, 0x7f, 0x33, 0xc9, 0xcd,
+ 0x73, 0x6d, 0x65, 0x7a, 0xe9, 0xf8, 0xdc, 0xd0,
+ 0x09, 0x49, 0x1d, 0x03, 0xed, 0x24, 0xa4, 0xdd,
+ 0x0f, 0x68, 0xff, 0x08, 0xe8, 0x01, 0x43, 0xf9,
+ 0x42, 0x59, 0x21, 0xf0, 0x21, 0xc5, 0x1b, 0xc4,
+ 0x84, 0x8b, 0x5f, 0x6c, 0x31, 0xe7, 0x44, 0x92,
+ 0x42, 0xe0, 0xc5, 0x4c, 0x01, 0x05, 0x87, 0xb8,
+ 0xda, 0xad, 0x57, 0xb8, 0xb8, 0x55, 0xf5, 0x44,
+ 0xac, 0xea, 0xd3, 0xd1, 0x46, 0xe2, 0x89, 0xe2,
+ 0x7c, 0x16, 0x25, 0x9a, 0xca, 0x9a, 0xdb, 0x10,
+ 0xf1, 0x73, 0x6e, 0xef, 0xca, 0x71, 0x86, 0xeb,
+ 0xe3, 0xd6, 0x95, 0xc0, 0xc0, 0x9b, 0xb5, 0x47,
+ 0x12, 0x75, 0x27, 0x7c, 0x65, 0xfe, 0x5d, 0x62,
+ 0xaa, 0x55, 0x47, 0x8a, 0x9b, 0xbf, 0x18, 0xcb,
+ 0x52, 0x57, 0x5e, 0x2c, 0xda, 0xd1, 0x49, 0x1f,
+ 0x8f, 0x75, 0x6a, 0x38, 0x75, 0x7a, 0x82, 0x41,
+ 0x46, 0x1c, 0xd4, 0xf3, 0xdb, 0xf8, 0x4a, 0x0c,
+ 0x55, 0x21, 0x87, 0xfc, 0xf4, 0x71, 0x0a, 0x3d,
+ 0x07, 0xea, 0x79, 0x18, 0x89, 0xdd, 0x97, 0x9f,
+ 0x52, 0x30, 0x78, 0xb0, 0x54, 0x7f, 0xfc, 0x6c,
+ 0x8c, 0x4f, 0xc9, 0xbd, 0x22, 0x00, 0xef, 0xd8,
+ 0x27, 0x26, 0xb3, 0x5f, 0x60, 0x14, 0xad, 0x69,
+ 0x46, 0x84, 0xdc, 0x38, 0xbd, 0xfb, 0x4e, 0x46,
+ 0xec, 0xa6, 0x90, 0x25, 0xe5, 0x31, 0xff, 0xd5,
+ 0xce, 0x74, 0x1f, 0xca, 0xae, 0x4b, 0x5a, 0x2f,
+ 0x53, 0x13, 0xd7, 0x6f, 0x32, 0x25, 0x57, 0xb1,
+ 0x88, 0x0b, 0x9c, 0xad, 0x54, 0x00, 0xcd, 0x2c,
+ 0xec, 0x5d, 0x46, 0x4c, 0xbc, 0x93, 0x5b, 0xb1,
+ 0xde, 0xf3, 0x05, 0x96, 0x60, 0x4a, 0xd1, 0xa9,
+ 0x52, 0xd5, 0xfd, 0x0a, 0xd0, 0x84, 0x06, 0x91,
+ 0x00, 0xf9, 0xf4, 0x47, 0x1c, 0xc8, 0x46, 0x99,
+ 0xcb, 0x25, 0x23, 0x64, 0x9c, 0xa2, 0x79, 0xe3,
+ 0x04, 0xe9, 0x90, 0x83, 0xb6, 0xe6, 0x3f, 0xac,
+ 0x1a, 0x46, 0xa3, 0x9b, 0x07, 0xeb, 0xbd, 0xf8,
+ 0x3d, 0xc0, 0xd1, 0x2c, 0x35, 0x29, 0x58, 0xf9,
+ 0x24, 0x49, 0xef, 0xff, 0x33, 0x84, 0x21, 0xb0,
+ 0x71, 0x67, 0x4a, 0xb8, 0xa6, 0x81, 0x9f, 0xe8,
+ 0x1a, 0x27, 0xf6, 0x8e, 0xfa, 0xda, 0xda, 0x0a,
+ 0xdf, 0xd8, 0x96, 0x9e, 0xd2, 0x09, 0x82, 0x09,
+ 0x5b, 0x39, 0xcd, 0x92, 0x24, 0xf8, 0xea, 0x60,
+ 0x7c, 0x84, 0x51, 0x62, 0x00, 0xc1, 0xc9, 0x29,
+ 0x75, 0xa5, 0x53, 0x5c, 0x19, 0xe1, 0xdd, 0x21,
+ 0xd8, 0x9a, 0xa5, 0x42, 0x85, 0xd6, 0x03, 0x92,
+ 0x13, 0x68, 0x09, 0x11, 0xae, 0x60, 0xb4, 0x61,
+ 0xf5, 0xf0, 0x72, 0xc6, 0xb8, 0x02, 0x1e, 0xb6,
+ 0xa1, 0xd5, 0x52, 0xfa, 0xde, 0xf9, 0x41, 0xc3,
+ 0x45, 0xb9, 0xe1, 0x1b, 0xa8, 0xb9, 0xff, 0xff,
+ 0x05, 0x38, 0xef, 0x61, 0x97, 0x87, 0x18, 0x4f,
+ 0x65, 0x77, 0xef, 0x70, 0xfe, 0x14, 0x21, 0xd6,
+ 0x1a, 0x39, 0x92, 0xbf, 0x66, 0xfa, 0xb8, 0xf4,
+ 0x3d, 0xba, 0x86, 0x92, 0x13, 0xfe, 0x43, 0x4f,
+ 0x92, 0xc0, 0x3d, 0x17, 0x47, 0x19, 0xe6, 0xfc,
+ 0xa0, 0x6e, 0x6b, 0x6a, 0xb3, 0x44, 0x03, 0x3b,
+ 0x43, 0xe3, 0x4c, 0x9a, 0x0f, 0xb9, 0xbe, 0x71,
+ 0xc4, 0x87, 0x0c, 0xdb, 0xa3, 0x87, 0xf6, 0x33,
+ 0x35, 0x12, 0xa1, 0x78, 0xda, 0x9b, 0x46, 0x9f,
+ 0x1b, 0x3a, 0x61, 0x49, 0x60, 0xab, 0x72, 0x88,
+ 0x43, 0x82, 0xe5, 0x2d, 0xc9, 0xa9, 0x13, 0xb2,
+ 0xd6, 0x01, 0xf1, 0xa9, 0xd3, 0x33, 0xca, 0xcd,
+ 0x03, 0x1b, 0x2c, 0x8b, 0x42, 0xb7, 0x4d, 0xba,
+ 0x6c, 0x03, 0xc9, 0x64, 0x8f, 0xe0, 0xd0, 0x4f,
+ 0xa4, 0x0c, 0xad, 0x8a, 0x49, 0x45, 0x95, 0x9d,
+ 0xcb, 0x50, 0x30, 0x82, 0x01, 0x9c, 0xf2, 0x71,
+ 0xfd, 0xf3, 0x71, 0xfb, 0xe6, 0xa2, 0x2e, 0xd2,
+ 0xe4, 0x69, 0x2e, 0x66, 0x48, 0x86, 0xd1, 0x49,
+ 0xf7, 0xa8, 0x31, 0x61, 0xa7, 0xe0, 0xfd, 0x09,
+ 0xa8, 0x04, 0x6c, 0x2f, 0xdf, 0xdd, 0x15, 0x21,
+ 0xd9, 0x4f, 0xaa, 0x7e, 0x29, 0xd8, 0x54, 0x6b,
+ 0xf1, 0x12, 0x96, 0x52, 0x73, 0x23, 0xbd, 0x63,
+ 0xaa, 0xb0, 0xb5, 0x6c, 0x6b, 0x21, 0x00, 0xa0,
+ 0xc8, 0x13, 0xd4, 0xe1, 0xab, 0x0b, 0xf9, 0x79,
+ 0xe8, 0x53, 0x2b, 0x1f, 0x57, 0xc4, 0x4d, 0x7d,
+ 0x85, 0x30, 0xb4, 0x6a, 0x04, 0x2b, 0x56, 0x21,
+ 0xd5, 0xd1, 0x3d, 0x86, 0xf0, 0x53, 0xbe, 0x89,
+ 0x00, 0xdc, 0x84, 0x3e, 0x4b, 0x65, 0xb2, 0x30,
+ 0x24, 0xa3, 0x57, 0x42, 0x77, 0x33, 0x5d, 0xc7,
+ 0x8c, 0xa7, 0x89, 0xf2, 0xa8, 0x2c, 0x0c, 0xf5,
+ 0x15, 0xd4, 0xe6, 0x89, 0x69, 0x9b, 0xb0, 0x9b,
+ 0x72, 0xd7, 0x1c, 0xc0, 0xaf, 0x35, 0x31, 0x0d,
+ 0xee, 0x92, 0x7b, 0x90, 0x32, 0x3a, 0x93, 0x0a,
+ 0xd1, 0x73, 0x39, 0x37, 0x4f, 0xd0, 0x7d, 0x9f,
+ 0x40, 0x2e, 0x86, 0xff, 0xb5, 0xf6, 0x02, 0x32,
+ 0x39, 0x0a, 0x1f, 0x1a, 0x4e, 0xcc, 0xf2, 0xae,
+ 0x74, 0x46, 0x76, 0xc7, 0xef, 0xff, 0xf2, 0xf7,
+ 0x05, 0x30, 0xc4, 0xa6, 0x84, 0x0f, 0x8d, 0x4b,
+ 0xfd, 0x63, 0x84, 0x82, 0x3f, 0xdb, 0x2f, 0x9c,
+ 0x58, 0x81, 0xc5, 0x5c, 0x92, 0x5a, 0x3d, 0x6b,
+ 0xf1, 0x26, 0xc6, 0xc4, 0xaa, 0x10, 0x99, 0x63,
+ 0xe5, 0x66, 0xf7, 0x14, 0xfc, 0xed, 0x51, 0xce,
+ 0x0e, 0x59, 0x83, 0xd6, 0xc7, 0x9a, 0xe4, 0xeb,
+ 0x8a, 0x5e, 0x84, 0xd1, 0x51, 0xd9, 0xc4, 0x34,
+ 0xe7, 0x21, 0x68, 0x34, 0x04, 0xb4, 0x9b, 0x4f,
+ 0x8b, 0xa6, 0xd6, 0x19, 0x83, 0x68, 0xd4, 0x12,
+ 0xac, 0xf9, 0xad, 0xb2, 0x4f, 0x42, 0x7d, 0xe2,
+ 0x57, 0x00, 0x94, 0xf8, 0xdb, 0xeb, 0xe9, 0xcb,
+ 0xb2, 0x24, 0x61, 0x28, 0x99, 0x80, 0x06, 0x50,
+ 0x20, 0x87, 0xd9, 0x71, 0xc6, 0xcb, 0x11, 0x8c,
+ 0x3f, 0x41, 0xdb, 0x17, 0xa6, 0xd0, 0x3c, 0x42,
+ 0xbe, 0x31, 0x83, 0xe8, 0x3e, 0x09, 0x1d, 0xb3,
+ 0x42, 0x51, 0xcf, 0x8e, 0x13, 0xc0, 0xed, 0x0f,
+ 0x73, 0x13, 0x3c, 0x19, 0x99, 0xd7, 0xe4, 0x61,
+ 0x13, 0x23, 0x8f, 0x77, 0x20, 0xcc, 0x4b, 0xf1,
+ 0x0c, 0xc2, 0xc6, 0xef, 0xad, 0x1f, 0x29, 0xa6,
+ 0x34, 0x73, 0xc5, 0x12, 0x5a, 0x7c, 0x6b, 0x2f,
+ 0x69, 0x4d, 0xb5, 0x75, 0xf6, 0x67, 0xb5, 0x06,
+ 0x2c, 0xed, 0x32, 0xd1, 0x78, 0xd4, 0x9a, 0xdb,
+ 0x47, 0x40, 0xe7, 0xa9, 0x8b, 0xd6, 0x8a, 0xd2,
+ 0xf1, 0x70, 0xe3, 0xa8, 0xe1, 0x66, 0xa0, 0xe7,
+ 0x18, 0x65, 0x5f, 0xe7, 0x0c, 0xf9, 0xd7, 0x90,
+ 0x28, 0xf0, 0x5e, 0x9c, 0x80, 0x69, 0xac, 0x2b,
+ 0x65, 0x09, 0xe6, 0xde, 0x32, 0xf1, 0x5e, 0xa3,
+ 0x6d, 0xb0, 0x49, 0xe0, 0x45, 0xcf, 0xaa, 0xd2,
+ 0x06, 0x6b, 0x97, 0x5c, 0xb7, 0xb3, 0x40, 0x3c,
+ 0xb8, 0x86, 0x5f, 0x21, 0x82, 0xf4, 0x01, 0x24,
+ 0x11, 0xa9, 0x35, 0x37, 0x09, 0x66, 0xa6, 0x1f,
+ 0x85, 0xc5, 0x7a, 0xb9, 0xf9, 0xfe, 0x1c, 0x47,
+ 0x47, 0xfe, 0xa2, 0x9b, 0x65, 0xd4, 0x68, 0xe3,
+ 0x32, 0x23, 0x84, 0x2c, 0x17, 0x8e, 0x24, 0x2e,
+ 0x1e, 0xd3, 0xbb, 0xd1, 0x3a, 0x8b, 0xe8, 0x08,
+ 0xf0, 0x0c, 0x78, 0xdc, 0x51, 0xf0, 0x6a, 0xdd,
+ 0xa4, 0xf9, 0x89, 0x07, 0x06, 0xf5, 0x10, 0xd2,
+ 0x6b, 0x4a, 0xfd, 0x38, 0xb0, 0x72, 0xe4, 0xb1,
+ 0xd2, 0x92, 0x96, 0xe6, 0xc9, 0xae, 0xab, 0xee,
+ 0x5d, 0x64, 0xa0, 0x60, 0xf5, 0x48, 0x0a, 0xab,
+ 0x59, 0x68, 0xc7, 0x3c, 0x0c, 0x56, 0xad, 0x6d,
+ 0xc3, 0x2c, 0xed, 0xcf, 0x5d, 0xbd, 0xd7, 0xf3,
+ 0x7d, 0x8d, 0x6a, 0x8d, 0x28, 0xbc, 0x4f, 0x0c,
+ 0xab, 0x06, 0xc6, 0x32, 0xe6, 0x8a, 0xba, 0xa8,
+ 0xba, 0x2a, 0x5d, 0xc7, 0xbf, 0xc8, 0xf5, 0x69,
+ 0x7b, 0x37, 0x38, 0xe8, 0x4d, 0xf6, 0xb8, 0xe3,
+ 0x94, 0x84, 0xba, 0x76, 0x3a, 0x2c, 0xa4, 0x06,
+ 0xdd, 0xbd, 0xbc, 0x2b, 0x26, 0x8f, 0x92, 0x7a,
+ 0x7e, 0xa4, 0x3a, 0xb1, 0xf6, 0x5f, 0x38, 0x85,
+ 0xd3, 0xf6, 0x95, 0x6d, 0xb9, 0x1d, 0xe8, 0x5f,
+ 0xda, 0x22, 0x22, 0xcc, 0x1f, 0x5e, 0x79, 0xd9,
+ 0xab, 0x03, 0x5c, 0xb9, 0x16, 0xcd, 0x3c, 0x16,
+ 0xcd, 0x2e, 0x49, 0xe3, 0x94, 0x58, 0x05, 0x2c,
+ 0xd7, 0x6c, 0x10, 0xd6, 0x40, 0x4f, 0xa4, 0x7c,
+ 0xec, 0xac, 0x2b, 0xb2, 0xef, 0x39, 0x2e, 0x6b,
+ 0x01, 0x6d, 0x13, 0x07, 0x46, 0x31, 0xe6, 0xf7,
+ 0x33, 0xdd, 0x5b, 0x58, 0x62, 0x84, 0xc2, 0xdf,
+ 0xf0, 0x83, 0xcb, 0xa3, 0x87, 0xdb, 0x31, 0x70,
+ 0x48, 0x8c, 0xd0, 0xcf, 0xa8, 0x94, 0x21, 0x6a,
+ 0xe6, 0xb9, 0x18, 0xdb, 0x3a, 0x44, 0x79, 0x92,
+ 0x6d, 0xec, 0x25, 0xa9, 0xde, 0x32, 0xa2, 0x70,
+ 0x0a, 0x65, 0x96, 0x35, 0x7f, 0xde, 0xe5, 0xc4,
+ 0x80, 0xb8, 0x78, 0x4b, 0x95, 0xff, 0xf6, 0xe7,
+ 0x2f, 0x44, 0x52, 0x49, 0x98, 0x1c, 0x8a, 0xe2,
+ 0x76, 0x62, 0x28, 0x96, 0x87, 0xde, 0xce, 0xef,
+ 0x43, 0xf8, 0x04, 0x2f, 0xdf, 0x4a, 0x04, 0xfd,
+ 0xb3, 0x83, 0xcd, 0xd4, 0x60, 0xa8, 0xcc, 0x94,
+ 0x0d, 0x30, 0xe7, 0x79, 0xfd, 0x93, 0xe0, 0x1e,
+ 0xc9, 0xd6, 0x34, 0x3a, 0x1f, 0x52, 0x50, 0x14,
+ 0xc9, 0x97, 0xc0, 0xad, 0x78, 0xa2, 0x47, 0xcc,
+ 0x7c, 0xb2, 0xb6, 0x17, 0xee, 0x37, 0xcc, 0x9a,
+ 0x14, 0xc2, 0x27, 0xf8, 0xf9, 0x28, 0x5e, 0xfb,
+ 0x44, 0xf7, 0xe0, 0x75, 0x19, 0xb7, 0x0f, 0x96,
+ 0xb2, 0xef, 0x51, 0xac, 0x2e, 0x50, 0xbb, 0x93,
+ 0x44, 0x69, 0xcc, 0x1c, 0xa5, 0xc5, 0xa2, 0x39,
+ 0xa3, 0x00, 0x5e, 0x72, 0x20, 0x77, 0x1d, 0x6c,
+ 0x46, 0x41, 0xe6, 0x89, 0x70, 0x2d, 0xfd, 0x4c,
+ 0xe5, 0xc4, 0xce, 0xbf, 0x94, 0x01, 0xbd, 0x34,
+ 0xd2, 0x9d, 0xea, 0xe7, 0x75, 0xcf, 0x3b, 0x0a,
+ 0xf2, 0x58, 0x7b, 0x6a, 0x16, 0xef, 0x98, 0xae,
+ 0x52, 0x57, 0xd5, 0x4a, 0x4d, 0xc1, 0xb3, 0xb9,
+ 0x17, 0x96, 0x1d, 0xa8, 0xe0, 0x91, 0x07, 0xea,
+ 0x50, 0xc1, 0x00, 0x0a, 0xa0, 0xa5, 0x5e, 0x45,
+ 0x5a, 0xe4, 0xa8, 0x96, 0xc7, 0x8a, 0x70, 0xea,
+ 0x88, 0x8d, 0x25, 0xef, 0xec, 0xd8, 0x88, 0x81,
+ 0xa7, 0xa3, 0xbc, 0x5a, 0x4f, 0xc1, 0x7a, 0x91,
+ 0x41, 0x8c, 0x01, 0xdf, 0x30, 0xda, 0x29, 0x5d,
+ 0xdb, 0x46, 0xe3, 0x23, 0x61, 0x61, 0x91, 0x76,
+ 0x42, 0xce, 0xb7, 0xdb, 0xe1, 0xb3, 0x9b, 0xbc,
+ 0x74, 0x05, 0x03, 0x07, 0x97, 0xaf, 0x27, 0x3a,
+ 0x82, 0x2a, 0xcc, 0x8d, 0x01, 0xae, 0x79, 0x0b,
+ 0x8c, 0xdc, 0x24, 0x81, 0x3c, 0xe1, 0xbf, 0xc3,
+ 0x89, 0xad, 0x6d, 0x8f, 0x22, 0xd6, 0x11, 0x77,
+ 0xc4, 0xf7, 0x2f, 0x51, 0xe0, 0x00, 0x5c, 0x80,
+ 0x76, 0x97, 0x0c, 0xd9, 0xd4, 0x98, 0xd6, 0x34,
+ 0x42, 0x9c, 0xd6, 0x48, 0x62, 0x05, 0x81, 0x10,
+ 0x86, 0x6e, 0xd5, 0x84, 0x29, 0x87, 0xf0, 0x43,
+ 0x09, 0x13, 0x0f, 0x81, 0x1b, 0x60, 0xfc, 0xac,
+ 0x99, 0x90, 0xea, 0xa1, 0x54, 0x84, 0x3b, 0x4e,
+ 0xa6, 0xe4, 0xf6, 0xf9, 0xa6, 0x7d, 0x7c, 0xfe,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0xba, 0x4a, 0xf9, 0x35, 0xb4, 0x45, 0x33, 0x86,
+ 0xd2, 0xb6, 0xc1, 0x3a, 0x55, 0x85, 0xc1, 0xff,
+ 0xca, 0xe0, 0x0e, 0x26, 0x01, 0x6b, 0x1d, 0x88,
+ 0x7d, 0x67, 0x6c, 0xa8, 0xac, 0x6d, 0x90, 0xdb,
+ 0x34, 0x4d, 0xf1, 0xce, 0x38, 0x36, 0x60, 0x00,
+ 0x81, 0x69, 0xb5, 0x67, 0x1c, 0xd0, 0x68, 0x5f,
+ 0x41, 0xe6, 0x41, 0x2d, 0x78, 0x79, 0x48, 0x94,
+ 0x38, 0x3e, 0xba, 0xd1, 0x48, 0x93, 0x0a, 0x4a,
+ 0x0a, 0xfc, 0x10, 0x0c, 0x96, 0x77, 0xef, 0x2a,
+ 0xab, 0xc6, 0x08, 0x04, 0x04, 0x72, 0x48, 0xb8,
+ 0x82, 0x19, 0x92, 0x95, 0x6f, 0xe2, 0x7e, 0x27,
+ 0x29, 0x17, 0xfb, 0xd3, 0xc6, 0xc5, 0x1e, 0xa3,
+ 0xfc, 0xa3, 0xbf, 0xd8, 0x0e, 0x2d, 0x33, 0x53,
+ 0x20, 0x22, 0x9f, 0x16, 0x7f, 0x4b, 0xd3, 0xcd,
+ 0xed, 0x23, 0x47, 0xa8, 0x33, 0x3b, 0xb2, 0x4f,
+ 0xcf, 0x1c, 0xfa, 0x56, 0x44, 0x79, 0x42, 0xf9,
+ 0x65, 0x67, 0x88, 0x21, 0x87, 0x83, 0x62, 0x18,
+ 0x28, 0x37, 0x00, 0x65, 0x17, 0x82, 0x38, 0x17,
+ 0x11, 0x54, 0x28, 0x28, 0x81, 0x84, 0x48, 0x18,
+ 0x62, 0x03, 0x63, 0x85, 0x16, 0x42, 0x24, 0x75,
+ 0x81, 0x18, 0x87, 0x84, 0x61, 0x08, 0x51, 0x00,
+ 0x32, 0x77, 0x58, 0x16, 0x82, 0x16, 0x77, 0x01,
+ 0x37, 0x04, 0x87, 0x12, 0x55, 0x46, 0x08, 0x58,
+ 0x76, 0x87, 0x15, 0x21, 0x13, 0x11, 0x61, 0x44,
+ 0x86, 0x52, 0x58, 0x15, 0x68, 0x54, 0x06, 0x04,
+ 0x08, 0x25, 0x83, 0x66, 0x78, 0x51, 0x06, 0x82,
+ 0x26, 0x54, 0x28, 0x63, 0x65, 0x72, 0x70, 0x62,
+ 0x24, 0x11, 0x20, 0x02, 0x61, 0x42, 0x30, 0x30,
+ 0x62, 0x45, 0x74, 0x37, 0x82, 0x82, 0x42, 0x48,
+ 0x23, 0x55, 0x76, 0x72, 0x27, 0x10, 0x32, 0x25,
+ 0x16, 0x61, 0x36, 0x24, 0x67, 0x12, 0x48, 0x54,
+ 0x35, 0x01, 0x35, 0x16, 0x13, 0x31, 0x22, 0x72,
+ 0x14, 0x22, 0x50, 0x08, 0x80, 0x48, 0x11, 0x07,
+ 0x81, 0x33, 0x33, 0x12, 0x86, 0x31, 0x48, 0x61,
+ 0x05, 0x07, 0x45, 0x86, 0x23, 0x61, 0x71, 0x81,
+ 0x80, 0x70, 0x82, 0x87, 0x41, 0x82, 0x32, 0x06,
+ 0x85, 0x30, 0x04, 0x56, 0x61, 0x87, 0x07, 0x73,
+ 0x37, 0x62, 0x15, 0x11, 0x17, 0x33, 0x32, 0x21,
+ 0x48, 0x24, 0x75, 0x28, 0x72, 0x57, 0x28, 0x54,
+ 0x04, 0x14, 0x74, 0x23, 0x86, 0x34, 0x63, 0x32,
+ 0x38, 0x44, 0x30, 0x03, 0x84, 0x74, 0x34, 0x46,
+ 0x07, 0x11, 0x57, 0x08, 0x72, 0x63, 0x07, 0x00,
+ 0x32, 0x21, 0x17, 0x85, 0x81, 0x37, 0x07, 0x76,
+ 0x53, 0x06, 0x67, 0x62, 0x68, 0x42, 0x51, 0x73,
+ 0x32, 0x33, 0x68, 0x45, 0x21, 0x07, 0x07, 0x52,
+ 0x47, 0x36, 0x52, 0x51, 0x64, 0x78, 0x46, 0x68,
+ 0x13, 0x05, 0x12, 0x42, 0x84, 0x62, 0x45, 0x04,
+ 0x73, 0x06, 0x80, 0x51, 0x23, 0x60, 0x71, 0x72,
+ 0x01, 0x48, 0x34, 0x75, 0x03, 0x28, 0x65, 0x68,
+ 0x71, 0x46, 0x06, 0x44, 0x51, 0x21, 0x87, 0x23,
+ 0x06, 0x45, 0x18, 0x18, 0x56, 0x31, 0x23, 0x28,
+ 0x31, 0x13, 0x71, 0x23, 0x12, 0x06, 0x18, 0x72,
+ 0x58, 0x42, 0x85, 0x77, 0x64, 0x08, 0x64, 0x44,
+ 0x50, 0x12, 0x34, 0x10, 0x30, 0x06, 0x68, 0x37,
+ 0x45, 0x20, 0x30, 0x46, 0x40, 0x23, 0x17, 0x38,
+ 0x64, 0x87, 0x27, 0x70, 0x01, 0x14, 0x75, 0x44,
+ 0x75, 0x56, 0x53, 0x01, 0x06, 0x82, 0x32, 0x11,
+ 0x17, 0x01, 0x67, 0x52, 0x58, 0x52, 0x36, 0x15,
+ 0x74, 0x86, 0x47, 0x73, 0x43, 0x87, 0x78, 0x53,
+ 0x45, 0x13, 0x33, 0x16, 0x46, 0x07, 0x26, 0x15,
+ 0x33, 0x70, 0x17, 0x81, 0x08, 0x47, 0x25, 0x82,
+ 0x03, 0x76, 0x71, 0x73, 0x76, 0x18, 0x32, 0x34,
+ 0x64, 0x62, 0x06, 0x23, 0x38, 0x22, 0x46, 0x76,
+ 0x70, 0x30, 0x66, 0x78, 0x81, 0x07, 0x22, 0x26,
+ 0x85, 0x16, 0x10, 0x12, 0x46, 0x02, 0x14, 0x00,
+ 0x48, 0x57, 0x43, 0x44, 0x71, 0x32, 0x41, 0x68,
+ 0x58, 0x50, 0x02, 0x51, 0x77, 0x10, 0x77, 0x06,
+ 0x03, 0x87, 0x05, 0x47, 0x16, 0x45, 0x22, 0x53,
+ 0x81, 0x12, 0x03, 0x44, 0x81, 0x81, 0x54, 0x65,
+ 0x30, 0x04, 0x73, 0x51, 0x87, 0x75, 0x56, 0x23,
+ 0x41, 0x80, 0x62, 0x76, 0x57, 0x65, 0x60, 0x52,
+ 0x50, 0x86, 0x32, 0x31, 0x66, 0x74, 0x55, 0x78,
+ 0x14, 0x65, 0x52, 0x64, 0x82, 0x46, 0x57, 0x61,
+ 0x25, 0x75, 0x40, 0x15, 0x72, 0x54, 0x32, 0x03,
+ 0x40, 0x03, 0x03, 0x70, 0x10, 0x35, 0x30, 0x54,
+ 0x33, 0x32, 0x15, 0x28, 0x40, 0x52, 0x31, 0x22,
+ 0x03, 0x61, 0x25, 0x81, 0x53, 0x70, 0x80, 0x43,
+ 0x73, 0x47, 0x35, 0x61, 0x67, 0x41, 0x20, 0x87,
+ 0x08, 0x10, 0x74, 0x71, 0x65, 0x31, 0x43, 0x51,
+ 0x12, 0x78, 0x53, 0x31, 0x75, 0x55, 0x76, 0x31,
+ 0x30, 0x23, 0x41, 0x88, 0x45, 0x15, 0x07, 0x76,
+ 0x05, 0x12, 0x28, 0x31, 0x64, 0x71, 0x11, 0x12,
+ 0x35, 0x30, 0x72, 0x65, 0x48, 0x78, 0x38, 0x50,
+ 0x04, 0x32, 0x67, 0x40, 0x13, 0x78, 0x56, 0x36,
+ 0x40, 0x85, 0x40, 0x05, 0x52, 0x10, 0x01, 0x86,
+ 0x15, 0x16, 0x55, 0x35, 0x45, 0x47, 0x71, 0x84,
+ 0x88, 0x20, 0x88, 0x66, 0x02, 0x61, 0x77, 0x71,
+ 0x85, 0x85, 0x76, 0x71, 0x81, 0x14, 0x56, 0x65,
+ 0x21, 0x15, 0x45, 0x15, 0x77, 0x51, 0x75, 0x33,
+ 0x07, 0x85, 0x45, 0x73, 0x75, 0x54, 0x23, 0x08,
+ 0x56, 0x81, 0x43, 0x81, 0x17, 0x54, 0x65, 0x86,
+ 0x67, 0x05, 0x22, 0x74, 0x36, 0x01, 0x85, 0x73,
+ 0x64, 0x38, 0x65, 0x00, 0x72, 0x01, 0x27, 0x56,
+ 0x62, 0x60, 0x07, 0x12, 0x77, 0x02, 0x03, 0x34,
+ 0x73, 0x43, 0x16, 0x30, 0x28, 0x88, 0x08, 0x66,
+ 0x32, 0x41, 0x72, 0x83, 0x36, 0x58, 0x18, 0x62,
+ 0x81, 0x17, 0x57, 0x35, 0x67, 0x13, 0x23, 0x55,
+ 0x12, 0x18, 0x55, 0x26, 0x23, 0x36, 0x61, 0x53,
+ 0x03, 0x24, 0x24, 0x37, 0x10, 0x42, 0x10, 0x57,
+ 0x88, 0x77, 0x76, 0x03, 0x75, 0x63, 0x46, 0x74,
+ 0x83, 0x05, 0x22, 0x83, 0x85, 0x22, 0x70, 0x53,
+ 0x88, 0x03, 0x25, 0x07, 0x23, 0x73, 0x74, 0x83,
+ 0x48, 0x60, 0x60, 0x10, 0x45, 0x53, 0x70, 0x85,
+ 0x76, 0x46, 0x02, 0x58, 0x65, 0x60, 0x28, 0x53,
+ 0x36, 0x48, 0x44, 0x64, 0x18, 0x36, 0x82, 0x57,
+ 0x58, 0x64, 0x25, 0x54, 0x76, 0x84, 0x64, 0x12,
+ 0x42, 0x56, 0x86, 0x03, 0x28, 0x01, 0x76, 0x46,
+ 0x76, 0x80, 0x21, 0x30, 0x04, 0x06, 0x47, 0x40,
+ 0x76, 0x25, 0x14, 0x26, 0x77, 0x02, 0x36, 0x67,
+ 0x51, 0x35, 0x78, 0x84, 0x43, 0x32, 0x24, 0x25,
+ 0x44, 0x12, 0x14, 0x01, 0x65, 0x68, 0x27, 0x32,
+ 0x60, 0x74, 0x14, 0x11, 0x13, 0x50, 0x50, 0x41,
+ 0x55, 0x03, 0x68, 0x34, 0x82, 0x31, 0x67, 0x33,
+ 0x60, 0x28, 0x33, 0x06, 0x18, 0x14, 0x27, 0x44,
+ 0x64, 0x86, 0x68, 0x20, 0x65, 0x23, 0x46, 0x54,
+ 0x07, 0x63, 0x73, 0x44, 0x75, 0x13, 0x87, 0x17,
+ 0x25, 0x84, 0x85, 0x50, 0x21, 0x81, 0x86, 0x43,
+ 0x07, 0x10, 0x80, 0x23, 0x00, 0x25, 0x33, 0x86,
+ 0x18, 0x52, 0x84, 0x11, 0x86, 0x42, 0x76, 0x30,
+ 0x53, 0x66, 0x17, 0x48, 0x76, 0x51, 0x62, 0x82,
+ 0x42, 0x31, 0x83, 0x24, 0x73, 0x34, 0x16, 0x00,
+ 0x15, 0x38, 0x40, 0x05, 0x03, 0x51, 0x84, 0x31,
+ 0x26, 0x14, 0x58, 0x31, 0x55, 0x85, 0x46, 0x40,
+ 0x45, 0x47, 0x10, 0x77, 0x31, 0x23, 0x81, 0x66,
+ 0x15, 0x42, 0x12, 0x38, 0x75, 0x17, 0x35, 0x31,
+ 0x85, 0x33, 0x20, 0x81, 0x06, 0x32, 0x51, 0x77,
+ 0x42, 0x15, 0x33, 0x80, 0x84, 0x06, 0x70, 0x35,
+ 0x80, 0x16, 0x53, 0x16, 0x22, 0x06, 0x73, 0x14,
+ 0x34, 0x78, 0x55, 0x56, 0x06, 0x07, 0x48, 0x36,
+ 0x51, 0x63, 0x16, 0x05, 0x63, 0x78, 0x28, 0x46,
+ 0x50, 0x15, 0x27, 0x12, 0x84, 0x23, 0x40, 0x57,
+ 0x35, 0x51, 0x85, 0x28, 0x85, 0x08, 0x22, 0x57,
+ 0x08, 0x71, 0x44, 0x15, 0x53, 0x61, 0x54, 0x36,
+ 0x66, 0x04, 0x36, 0x84, 0x38, 0x87, 0x26, 0x14,
+ 0x67, 0x40, 0x85, 0x18, 0x32, 0x25, 0x77, 0x08,
+ 0x05, 0x54, 0x28, 0x35, 0x76, 0x35, 0x81, 0x03,
+ 0x36, 0x03, 0x78, 0x33, 0x61, 0x18, 0x01, 0x20,
+ 0x40, 0x65, 0x42, 0x24, 0x42, 0x45, 0x60, 0x57,
+ 0x18, 0x08, 0x08, 0x26, 0x76, 0x86, 0x82, 0x34,
+ 0x11, 0x27, 0x18, 0x32, 0x52, 0x42, 0x62, 0x00,
+ 0x62, 0x15, 0x40, 0x28, 0x78, 0x01, 0x52, 0x23,
+ 0x57, 0x36, 0x53, 0x41, 0x55, 0x86, 0x72, 0x34,
+ 0x64, 0x08, 0x38, 0x41, 0x07, 0x46, 0x33, 0x44,
+ 0x24, 0x46, 0x48, 0x16, 0x11, 0x55, 0x65, 0x20,
+ 0x18, 0x33, 0x73, 0x86, 0x76, 0x06, 0x08, 0x41,
+ 0x26, 0x55, 0x10, 0x37, 0x65, 0x34, 0x65, 0x22,
+ 0x46, 0x83, 0x35, 0x60, 0x01, 0x17, 0x38, 0x78,
+ 0x71, 0x76, 0x16, 0x14, 0x04, 0x72, 0x16, 0x16,
+ 0x64, 0x48, 0x44, 0x62, 0x54, 0x56, 0x06, 0x82,
+ 0x65, 0x01, 0x51, 0x85, 0x66, 0x53, 0x83, 0x75,
+ 0x86, 0x15, 0x34, 0x60, 0x70, 0x28, 0x16, 0x28,
+ 0x70, 0x45, 0x61, 0x61, 0x66, 0x81, 0x87, 0x51,
+ 0x06, 0x04, 0x34, 0x75, 0x44, 0x05, 0x37, 0x66,
+ 0x05, 0x02, 0x73, 0x75, 0x05, 0x53, 0x08, 0x75,
+ 0x72, 0x30, 0x47, 0x81, 0x25, 0x84, 0x44, 0x85,
+ 0x28, 0x75, 0x30, 0x11, 0x34, 0x04, 0x75, 0x33,
+ 0x05, 0x81, 0x08, 0x72, 0x25, 0x61, 0x13, 0x10,
+ 0x78, 0x35, 0x71, 0x52, 0x74, 0x56, 0x31, 0x86,
+ 0x33, 0x25, 0x12, 0x60, 0x17, 0x72, 0x55, 0x43,
+ 0x51, 0x21, 0x65, 0x67, 0x34, 0x65, 0x46, 0x86,
+ 0x30, 0x06, 0x03, 0x00, 0x58, 0x25, 0x67, 0x48,
+ 0x30, 0x44, 0x23, 0x64, 0x51, 0x76, 0x46, 0x47,
+ 0x82, 0x73, 0x25, 0x67, 0x21, 0x14, 0x67, 0x26,
+ 0x52, 0x40, 0x03, 0x74, 0x40, 0x47, 0x63, 0x57,
+ 0x78, 0x18, 0x33, 0x80, 0x87, 0x68, 0x31, 0x52,
+ 0x75, 0x11, 0x77, 0x23, 0x78, 0x20, 0x20, 0x52,
+ 0x42, 0x25, 0x63, 0x85, 0x07, 0x18, 0x06, 0x77,
+ 0x67, 0x22, 0x45, 0x26, 0x88, 0x73, 0x61, 0x05,
+ 0x05, 0x20, 0x36, 0x77, 0x06, 0x80, 0x25, 0x17,
+ 0x84, 0x14, 0x00, 0x71, 0x85, 0x25, 0x81, 0x68,
+ 0x50, 0x63, 0x17, 0x52, 0x46, 0x31, 0x20, 0x40,
+ 0x50, 0x84, 0x10, 0x46, 0x18, 0x15, 0x31, 0x55,
+ 0x23, 0x01, 0x62, 0x72, 0x78, 0x20, 0x57, 0x53,
+ 0x04, 0x12, 0x61, 0x55, 0x41, 0x03, 0x05, 0x47,
+ 0x76, 0x54, 0x51, 0x81, 0x81, 0x58, 0x57, 0x07,
+ 0x77, 0x15, 0x40, 0x04, 0x17, 0x52, 0x33, 0x42,
+ 0x23, 0x21, 0x45, 0x25, 0x06, 0x10, 0x01, 0x14,
+ 0x30, 0x51, 0x03, 0x53, 0x14, 0x66, 0x44, 0x35,
+ 0x68, 0x70, 0x44, 0x07, 0x41, 0x41, 0x84, 0x02,
+ 0x16, 0x00, 0x01, 0x70, 0x24, 0x24, 0x02, 0x56,
+ 0x50, 0x55, 0x55, 0x30, 0x56, 0x82, 0x37, 0x65,
+ 0x12, 0x75, 0x36, 0x83, 0x22, 0x44, 0x11, 0x87,
+ 0x34, 0x66, 0x06, 0x23, 0x67, 0x53, 0x78, 0x14,
+ 0x35, 0x82, 0x35, 0x56, 0x45, 0x33, 0x51, 0x86,
+ 0x84, 0x53, 0x21, 0x56, 0x33, 0x44, 0x31, 0x80,
+ 0x00, 0x54, 0x46, 0x31, 0x42, 0x64, 0x24, 0x57,
+ 0x06, 0x47, 0x77, 0x82, 0x23, 0x10, 0x16, 0x53,
+ 0x52, 0x32, 0x82, 0x54, 0x21, 0x36, 0x66, 0x66,
+ 0x01, 0x27, 0x13, 0x77, 0x33, 0x27, 0x85, 0x68,
+ 0x66, 0x80, 0x47, 0x74, 0x17, 0x16, 0x81, 0x86,
+ 0x74, 0x56, 0x37, 0x85, 0x31, 0x52, 0x65, 0x71,
+ 0x04, 0x82, 0x34, 0x82, 0x74, 0x11, 0x37, 0x33,
+ 0x41, 0xfb, 0x6f, 0x2d, 0xad, 0x6e, 0x25, 0x3c,
+ 0xec, 0xf6, 0xae, 0xa7, 0x8e, 0x67, 0x10, 0xbc,
+ 0x45, 0x6f, 0xf4, 0xa6, 0x48, 0xfd, 0xc4, 0xf3,
+ 0xcd, 0x82, 0x84, 0xf8, 0x10, 0xc3, 0x59, 0x89,
+ 0x2a, 0xad, 0x93, 0x5d, 0x41, 0xe2, 0xaf, 0x85,
+ 0xc0, 0x26, 0x32, 0x50, 0xb1, 0xf1, 0xaa, 0x78,
+ 0x4d, 0xa4, 0x25, 0xc1, 0x01, 0x85, 0x35, 0x8f,
+ 0x64, 0x83, 0x60, 0xb1, 0xe1, 0xa1, 0x6c, 0x0c,
+ 0x51, 0x2e, 0x38, 0x6c, 0x7d, 0x0d, 0x45, 0xf3,
+ 0x4d, 0xe2, 0x5c, 0x52, 0x29, 0x79, 0x68, 0xf0,
+ 0x73, 0x4f, 0xbc, 0x01, 0x9b, 0xca, 0x9b, 0x4d,
+ 0x10, 0x31, 0xbe, 0x7d, 0x00, 0x4d, 0x2f, 0xb6,
+ 0xbc, 0x55, 0x70, 0xfc, 0x05, 0x44, 0x3d, 0x47,
+ 0xee, 0x48, 0x23, 0x8f, 0x04, 0xac, 0x74, 0x1d,
+ 0x6b, 0x4e, 0x58, 0x53, 0x50, 0xea, 0xef, 0xcd,
+ 0xe4, 0xb3, 0xb8, 0x4c, 0x86, 0x49, 0x37, 0xb1,
+ 0xa5, 0xbf, 0xa5, 0x34, 0x00, 0xc1, 0x32, 0x26,
+ 0x7e, 0x56, 0x38, 0x5b, 0x8d, 0xeb, 0x6e, 0xa8,
+ 0x30, 0xa4, 0x5a, 0x78, 0x41, 0x3d, 0x3f, 0x75,
+ 0x65, 0xc7, 0x03, 0x59, 0xe1, 0xc0, 0x9c, 0xfc,
+ 0xda, 0x64, 0xc1, 0x5a, 0x60, 0x63, 0x46, 0xb9,
+ 0x9f, 0x99, 0x6f, 0x44, 0x93, 0x8a, 0x38, 0x27,
+ 0x86, 0x9f, 0xff, 0x7d, 0xc5, 0x27, 0x99, 0xe4,
+ 0x21, 0xf1, 0xff, 0x86, 0x5c, 0x3e, 0xce, 0xce,
+ 0x50, 0x3d, 0x05, 0x52, 0xf4, 0xbf, 0x2c, 0xa3,
+ 0x52, 0xe1, 0x40, 0xa0, 0x0f, 0xd0, 0x86, 0xcd,
+ 0xc2, 0x97, 0x88, 0x80, 0x3c, 0xa6, 0x46, 0xf6,
+ 0x73, 0x7b, 0x61, 0xca, 0xad, 0xdf, 0xd0, 0xf8,
+ 0x19, 0x6f, 0xfb, 0xd4, 0xb0, 0xb3, 0x20, 0x1a,
+ 0x61, 0x23, 0xc4, 0xaa, 0xff, 0x0a, 0xf6, 0xcc,
+ 0x0d, 0x48, 0xc0, 0x11, 0xcc, 0xcf, 0x75, 0x83,
+ 0x96, 0xe3, 0x23, 0x0a, 0x5e, 0x91, 0x12, 0x65,
+ 0x6f, 0x21, 0x70, 0x7f, 0xb2, 0x72, 0x3d, 0x8a,
+ 0xf6, 0xac, 0x2f, 0x1b, 0x47, 0x73, 0x64, 0x35,
+ 0x40, 0x60, 0xb8, 0x8c, 0xc9, 0x34, 0x44, 0x08,
+ 0x07, 0x11, 0xf0, 0xef, 0xf3, 0x74, 0x3d, 0x7f,
+ 0xb6, 0x17, 0x00, 0xe7, 0x10, 0x62, 0xf2, 0xb1,
+ 0x81, 0xcd, 0xb9, 0x8b, 0x40, 0x7e, 0x14, 0xc7,
+ 0xcd, 0x31, 0xf8, 0x37, 0xe5, 0x69, 0x6c, 0x11,
+ 0x0d, 0x52, 0x87, 0x8c, 0x14, 0x76, 0xce, 0xdb,
+ 0xb6, 0x81, 0x64, 0x6e, 0xb5, 0x4d, 0xcb, 0x49,
+ 0xd4, 0xb7, 0x9a, 0x3b, 0x65, 0xd7, 0xab, 0xa5,
+ 0x72, 0x0c, 0x4c, 0x23, 0xa3, 0xce, 0x3a, 0xb4,
+ 0x86, 0x78, 0x4a, 0x49, 0xcc, 0x29, 0x74, 0xf6,
+ 0x91, 0xe1, 0xbf, 0x06, 0x22, 0x05, 0x88, 0x6a,
+ 0xee, 0x8c, 0xda, 0xb9, 0xc3, 0x34, 0x05, 0x84,
+ 0x58, 0xdc, 0x46, 0xe2, 0xca, 0x07, 0x01, 0xa3,
+ 0xd0, 0x3f, 0x35, 0x99, 0x01, 0x0c, 0xb6, 0xc9,
+ 0x8a, 0xe4, 0x75, 0x15, 0xbd, 0x6e, 0xcc, 0xba,
+ 0x9e, 0x0c, 0xfa, 0xe7, 0xe3, 0xd1, 0xd8, 0xc0,
+ 0x92, 0x18, 0x11, 0x42, 0xaf, 0xef, 0x46, 0xef,
+ 0x84, 0xe6, 0x2b, 0x7f, 0xc6, 0x81, 0xa3, 0x66,
+ 0x49, 0x32, 0x5c, 0x69, 0x6f, 0xe5, 0x47, 0xcd,
+ 0xa5, 0x28, 0x24, 0xfb, 0x4e, 0x5b, 0xaf, 0xfe,
+ 0x4c, 0x9f, 0x29, 0xd1, 0xc5, 0x12, 0x6d, 0x46,
+ 0xca, 0x29, 0x1d, 0xb3, 0xb9, 0x34, 0xc1, 0xf3,
+ 0xe6, 0xc4, 0x83, 0x04, 0x1e, 0x31, 0x85, 0x65,
+ 0x23, 0xe8, 0x13, 0xc1, 0xe7, 0xf4, 0x53, 0xcd,
+ 0xe6, 0xa1, 0x7f, 0x44, 0x3b, 0xc2, 0xbc, 0x65,
+ 0xac, 0x7f, 0xbc, 0x99, 0x39, 0x4e, 0x5f, 0x54,
+ 0x77, 0xec, 0xbf, 0xd4, 0x7c, 0x1e, 0xd9, 0x72,
+ 0x53, 0xcd, 0x1c, 0xd6, 0xe0, 0x97, 0xf5, 0x59,
+ 0x8d, 0x9a, 0xcf, 0x41, 0xd4, 0x34, 0x09, 0xb2,
+ 0x94, 0x50, 0x10, 0x74, 0x45, 0xae, 0xf3, 0xf5,
+ 0x26, 0xc6, 0x3c, 0x7e, 0xb1, 0x4d, 0x34, 0xe4,
+ 0x42, 0x54, 0x27, 0x38, 0x8a, 0x2a, 0x9e, 0x0b,
+ 0xc6, 0x59, 0x21, 0x88, 0x8c, 0x38, 0x7d, 0x94,
+ 0x94, 0x56, 0x87, 0x01, 0x23, 0x0e, 0x59, 0x3d,
+ 0x7e, 0x1b, 0x4f, 0x07, 0x9b, 0x97, 0xad, 0x9b,
+ 0x3b, 0xc7, 0x2d, 0xbd, 0xaa, 0x47, 0x32, 0xe5,
+ 0x51, 0x70, 0x78, 0x17, 0xd9, 0x27, 0xd2, 0x23,
+ 0x87, 0xd7, 0x3c, 0xb0, 0x02, 0x87, 0x0f, 0x05,
+ 0x77, 0x5d, 0x98, 0xb1, 0x21, 0xfe, 0x8c, 0x46,
+ 0xf1, 0x28, 0xd9, 0x77, 0x72, 0xd2, 0xd9, 0xf9,
+ 0x55, 0x10, 0x82, 0xb8, 0xd1, 0x10, 0xc2, 0xa9,
+ 0xd0, 0x1d, 0x2d, 0x1f, 0x06, 0x00, 0x2f, 0xcf,
+ 0xd3, 0xb0, 0x94, 0x73, 0xc8, 0x47, 0xaa, 0x62,
+ 0x7d, 0x5b, 0x5f, 0x06, 0x4c, 0x6d, 0x88, 0x43,
+ 0x7d, 0xd0, 0x2a, 0x3f, 0xe9, 0x87, 0xc3, 0x69,
+ 0x1b, 0x1d, 0xa4, 0x62, 0x68, 0x1c, 0xd6, 0xd1,
+ 0xad, 0x65, 0x7e, 0x6e, 0x42, 0x2f, 0x31, 0x83,
+ 0x6f, 0xb9, 0xc8, 0x3c, 0xa2, 0x14, 0x97, 0x92,
+ 0x01, 0x4c, 0x5b, 0xfb, 0x89, 0x8d, 0xda, 0xf4,
+ 0x3e, 0x3d, 0x31, 0xe3, 0x94, 0x96, 0xba, 0x2f,
+ 0xc7, 0x6e, 0xc8, 0x08, 0xbf, 0xa3, 0x50, 0xf5,
+ 0x7c, 0xb4, 0x6e, 0x31, 0xad, 0xf9, 0xae, 0x6b,
+ 0x54, 0xeb, 0x93, 0x21, 0x44, 0x49, 0x3c, 0xfa,
+ 0xdd, 0x2a, 0xf4, 0x06, 0x25, 0xa4, 0x10, 0x81,
+ 0xa6, 0x17, 0x1f, 0x8f, 0x1a, 0x7d, 0xf5, 0xac,
+ 0x62, 0x87, 0xda, 0x54, 0x01, 0x8b, 0xf2, 0xa1,
+ 0xe9, 0x33, 0x8f, 0xfe, 0x74, 0x97, 0x84, 0x84,
+ 0x97, 0xec, 0xb1, 0x96, 0x5c, 0xd7, 0x09, 0xb7,
+ 0xde, 0x4c, 0xcd, 0xa7, 0xb7, 0x8c, 0xd9, 0xe4,
+ 0xbc, 0x7d, 0x9a, 0x25, 0x06, 0xfa, 0x23, 0x3c,
+ 0x9f, 0xd0, 0xf0, 0x71, 0x1c, 0x38, 0xdb, 0x88,
+ 0x8c, 0xf4, 0xfd, 0x16, 0x2a, 0xd9, 0xb8, 0xdc,
+ 0x6d, 0x86, 0xf0, 0x3b, 0xe4, 0xf4, 0xe4, 0xbf,
+ 0xec, 0x1f, 0xfd, 0x69, 0xc6, 0x6e, 0x3a, 0xb1,
+ 0xf0, 0xa7, 0x36, 0x6b, 0xbb, 0x0d, 0x84, 0x5c,
+ 0x87, 0x77, 0xa9, 0x16, 0xbd, 0x70, 0xf4, 0x51,
+ 0x55, 0x81, 0x67, 0xce, 0x71, 0xb0, 0xaa, 0x23,
+ 0x72, 0x8f, 0xdb, 0xb0, 0x36, 0x2f, 0xfb, 0x87,
+ 0xcb, 0xcc, 0x99, 0x2d, 0x90, 0x3f, 0x6d, 0x92,
+ 0x28, 0x2f, 0x84, 0xec, 0x84, 0x89, 0xc7, 0xcb,
+ 0x8f, 0xd7, 0x60, 0xdd, 0xd3, 0x97, 0x74, 0xbb,
+ 0xa7, 0x09, 0x67, 0x05, 0xf0, 0x4f, 0x9e, 0x69,
+ 0xe5, 0xa2, 0x27, 0x96, 0x52, 0x76, 0x27, 0x90,
+ 0x9a, 0xda, 0x9c, 0x0a, 0xe5, 0x4a, 0xd2, 0xc1,
+ 0x21, 0xad, 0xaa, 0x55, 0x69, 0xd0, 0x20, 0x9e,
+ 0x02, 0xbb, 0xe7, 0x07, 0x11, 0x2b, 0x17, 0xe2,
+ 0x07, 0x23, 0x8d, 0x64, 0x6f, 0x4f, 0xde, 0xbe,
+ 0xc9, 0x31, 0x55, 0xd8, 0x1d, 0xaf, 0x1e, 0x84,
+ 0xfb, 0x17, 0xc5, 0xf6, 0xbb, 0x61, 0x42, 0xc9,
+ 0x60, 0x92, 0x97, 0xce, 0x44, 0xf2, 0xd7, 0xc5,
+ 0x8a, 0x19, 0xb7, 0x41, 0x26, 0xd6, 0x7f, 0x80,
+ 0xe2, 0x3d, 0xcb, 0x7d, 0xbe, 0xa2, 0xa4, 0xbd,
+ 0xb2, 0x30, 0xaa, 0xf1, 0x55, 0x25, 0xb1, 0x01,
+ 0x6e, 0x60, 0x5b, 0xd5, 0x1b, 0x17, 0x82, 0xe3,
+ 0x79, 0x28, 0x47, 0x9d, 0x61, 0x57, 0xbd, 0x2b,
+ 0xbe, 0xfa, 0xcc, 0xce, 0x0b, 0x6f, 0x9f, 0x39,
+ 0x60, 0x6a, 0xa9, 0xce, 0x4c, 0x0d, 0x82, 0xbc,
+ 0xfc, 0xcb, 0xb0, 0xd0, 0x8b, 0x2a, 0x41, 0x63,
+ 0x0b, 0x25, 0x76, 0xa1, 0x0d, 0xa5, 0x30, 0x75,
+ 0x83, 0xee, 0x3b, 0x91, 0xf0, 0xfe, 0xe7, 0x3e,
+ 0x1d, 0x98, 0x06, 0xc6, 0x19, 0x7a, 0x89, 0x40,
+ 0x97, 0xb2, 0x03, 0xbb, 0x90, 0x87, 0x8c, 0x02,
+ 0xcc, 0xed, 0x6a, 0xea, 0x37, 0xc8, 0x21, 0x4e,
+ 0x22, 0x35, 0xbd, 0xdb, 0xff, 0x34, 0x5c, 0x30,
+ 0x88, 0xbc, 0xfa, 0x83, 0xa9, 0x60, 0xc9, 0x52,
+ 0x41, 0x71, 0xfa, 0xac, 0xb5, 0xd8, 0x47, 0x32,
+ 0x7e, 0x7b, 0x88, 0x73, 0x9d, 0x8d, 0x40, 0xf2,
+ 0x77, 0x36, 0x04, 0x3b, 0x4e, 0xff, 0xda, 0xb5,
+ 0x9d, 0x92, 0xec, 0xf9, 0xe4, 0xd3, 0x14, 0x19,
+ 0xa3, 0x65, 0xc0, 0x73, 0xc5, 0x4a, 0xce, 0x16,
+ 0x4e, 0x00, 0xed, 0x0b, 0x89, 0xd5, 0xa0, 0xc2,
+ 0xd7, 0xeb, 0xc0, 0x2e, 0x9e, 0xa7, 0xe3, 0xf2,
+ 0xcd, 0xca, 0xc8, 0xcf, 0xb8, 0x0e, 0x34, 0x2e,
+ 0x4d, 0x04, 0xc9, 0xfd, 0x2e, 0x83, 0xb6, 0x14,
+ 0xeb, 0x82, 0x16, 0xd7, 0x08, 0x2e, 0x97, 0x3a,
+ 0x0b, 0x2e, 0xe9, 0xb8, 0xf2, 0xde, 0xe1, 0x9a,
+ 0xd4, 0x25, 0x54, 0x83, 0x46, 0x35, 0x80, 0xf2,
+ 0x66, 0x88, 0x6f, 0x7d, 0x5f, 0xb4, 0x0b, 0xef,
+ 0x15, 0xb9, 0x11, 0x38, 0x2f, 0x58, 0x65, 0x90,
+ 0xe9, 0xa9, 0x8a, 0x1c, 0xbc, 0xf8, 0x3b, 0x3b,
+ 0xb4, 0x46, 0xd1, 0xee, 0x00, 0xe4, 0xa1, 0x09,
+ 0xe6, 0xb6, 0x00, 0xae, 0xad, 0x8e, 0xf2, 0xea,
+ 0x83, 0x86, 0x28, 0xab, 0x28, 0x49, 0x9a, 0xed,
+ 0x42, 0x0e, 0xb6, 0x0f, 0x98, 0xaf, 0x5b, 0x12,
+ 0x0e, 0x13, 0x05, 0x53, 0x53, 0xd5, 0x4a, 0x7c,
+ 0x4b, 0x40, 0x19, 0xe4, 0xe1, 0xe2, 0x6d, 0x63,
+ 0xbc, 0x05, 0x8c, 0x82, 0xf9, 0x30, 0xd0, 0x68,
+ 0x1b, 0xd8, 0x3e, 0x3f, 0x88, 0xc8, 0x16, 0xe3,
+ 0x8d, 0x71, 0x22, 0x95, 0x80, 0xdb, 0x06, 0xc5,
+ 0xa0, 0x89, 0x1c, 0xe0, 0x23, 0xb8, 0xa7, 0x32,
+ 0x2b, 0x23, 0xf7, 0xe8, 0x58, 0xd4, 0xfa, 0x56,
+ 0x79, 0xe9, 0x8d, 0x4f, 0xcc, 0x6f, 0xec, 0xb6,
+ 0xa3, 0x5b, 0xca, 0xd4, 0xdb, 0xbe, 0x7c, 0x50,
+ 0xbb, 0x0f, 0xe4, 0x57, 0xec, 0xc2, 0xe1, 0x4c,
+ 0x3b, 0x4d, 0x78, 0x29, 0x16, 0x83, 0x80, 0xe3,
+ 0x6a, 0x46, 0x3e, 0x87, 0xee, 0xab, 0x53, 0x6d,
+ 0x2e, 0x41, 0x35, 0x05, 0x33, 0xbb, 0x37, 0x61,
+ 0x93, 0x82, 0x03, 0x0d, 0x4a, 0x2c, 0x9c, 0x9b,
+ 0xc6, 0x4b, 0x15, 0x50, 0x4f, 0x7d, 0xc3, 0xd8,
+ 0x58, 0x0f, 0xbf, 0x33, 0x97, 0x98, 0x3d, 0x1d,
+ 0xa5, 0x6e, 0x00, 0x3b, 0x01, 0x67, 0x79, 0x0c,
+ 0xcd, 0xb1, 0x83, 0xa2, 0x7b, 0x27, 0x40, 0x3f,
+ 0xec, 0x27, 0x45, 0xca, 0x50, 0x3f, 0xdf, 0x62,
+ 0x06, 0x4b, 0x36, 0x19, 0x60, 0xaa, 0xc9, 0x1c,
+ 0x87, 0x6e, 0xa4, 0xf6, 0xc3, 0xe8, 0x0f, 0x2f,
+ 0xae, 0x60, 0xa0, 0x3f, 0x96, 0xe2, 0xf3, 0xad,
+ 0x93, 0x88, 0xc4, 0x15, 0xa7, 0x3a, 0xe9, 0x2e,
+ 0x0e, 0xc7, 0x5c, 0x55, 0xdb, 0x57, 0xb0, 0xe1,
+ 0xed, 0xe9, 0x74, 0xdd, 0x26, 0xf4, 0xf1, 0x9c,
+ 0x27, 0x50, 0xec, 0x5d, 0xb5, 0x5c, 0x9d, 0x1f,
+ 0xf0, 0xe1, 0x12, 0xcb, 0x98, 0x67, 0x64, 0x75,
+ 0x66, 0xdf, 0x2c, 0x0f, 0x66, 0x6d, 0x3a, 0x07,
+ 0x4b, 0xde, 0x37, 0x26, 0x70, 0xd6, 0x41, 0xaf,
+ 0x18, 0x46, 0x0f, 0x1b, 0x14, 0xdf, 0x39, 0x86,
+ 0x78, 0x4a, 0xe5, 0x3f, 0xe6, 0xde, 0xa3, 0xfd,
+ 0x81, 0x79, 0x2e, 0xfa, 0xc8, 0xa8, 0x71, 0xf4,
+ 0x3f, 0xa0, 0xb6, 0xdf, 0x7f, 0x9c, 0xee, 0x13,
+ 0x64, 0x21, 0x8a, 0xd8, 0x32, 0x94, 0x52, 0xc2,
+ 0xf9, 0x67, 0x76, 0x7d, 0xd6, 0x63, 0xeb, 0x2f,
+ 0xe2, 0x0b, 0xc3, 0x6e, 0x14, 0xbb, 0x5a, 0xc5,
+ 0x7c, 0x3f, 0x93, 0x00, 0x88, 0x39, 0xdb, 0x46,
+ 0x86, 0x38, 0x5b, 0x50, 0x25, 0xa6, 0xa9, 0x88,
+ 0x1d, 0xb9, 0x0b, 0xc7, 0x6a, 0x9c, 0x91, 0x8a,
+ 0x26, 0x71, 0x8d, 0xcc, 0x69, 0x26, 0xb3, 0xbc,
+ 0xdb, 0x86, 0x0b, 0xe3, 0xd2, 0x86, 0x47, 0x7a,
+ 0x8d, 0xed, 0x01, 0xa6, 0xa8, 0x5d, 0xf8, 0x52,
+ 0x1a, 0x9e, 0xb8, 0xc7, 0x06, 0xd2, 0x20, 0x8a,
+ 0x19, 0x93, 0x08, 0x11, 0x42, 0xad, 0xa4, 0xeb,
+ 0xd3, 0x58, 0x28, 0x6b, 0x77, 0x57, 0x97, 0x27,
+ 0x4b, 0x37, 0x2d, 0xe8, 0xf4, 0xed, 0x85, 0xd8,
+ 0x60, 0xf5, 0x13, 0xda, 0x5c, 0x92, 0xab, 0xb1,
+ 0x83, 0x5e, 0x7f, 0x99, 0x05, 0x3b, 0x81, 0x71,
+ 0xce, 0xd2, 0xb1, 0x22, 0xe8, 0xb1, 0xc3, 0x0d,
+ 0xd9, 0x45, 0xa0, 0x95, 0xb3, 0x67, 0xa0, 0x75,
+ 0xd5, 0x06, 0x73, 0x92, 0x8a, 0x82, 0x76, 0x79,
+ 0xfe, 0x57, 0x34, 0x85, 0xc2, 0x52, 0x31, 0xd1,
+ 0xf0, 0x6f, 0xc5, 0x81, 0xea, 0x27, 0xb1, 0x23,
+ 0xa2, 0xa9, 0x4f, 0x58, 0x04, 0x0b, 0xf4, 0x9e,
+ 0xda, 0xcc, 0x7a, 0xcf, 0x3a, 0xa6, 0x21, 0x9c,
+ 0xbe, 0x39, 0x89, 0xa6, 0x89, 0x54, 0xa0, 0xd7,
+ 0x94, 0x79, 0x61, 0x55, 0x70, 0x55, 0x97, 0x6e,
+ 0xde, 0x64, 0xdd, 0xb0, 0x7d, 0xee, 0x3f, 0x53,
+ 0x70, 0x34, 0xe8, 0x67, 0x7e, 0x47, 0x5c, 0xe0,
+ 0x2c, 0xd2, 0x14, 0x6f, 0x88, 0x67, 0x4e, 0xee,
+ 0x99, 0xb4, 0xe7, 0x79, 0x8b, 0xe8, 0x56, 0x35,
+ 0xfb, 0x59, 0x5d, 0x7e, 0xee, 0xb2, 0x1d, 0x46,
+ 0x8b, 0xdf, 0xaf, 0x53, 0x6a, 0x70, 0xe7, 0xbf,
+ 0xb9, 0x22, 0x3a, 0x0d, 0xbf, 0xa6, 0x0d, 0xc4,
+ 0xbd, 0x1b, 0xf6, 0xf6, 0xee, 0x12, 0x08, 0x97,
+ 0x9c, 0x79, 0x8d, 0x56, 0x38, 0x3a, 0x2e, 0xa5,
+ 0x81, 0x22, 0xd6, 0xfb, 0xed, 0xac, 0xc3, 0x57,
+ 0xa0, 0x1c, 0xa4, 0x8e, 0xaa, 0x9e, 0x95, 0xaa,
+ 0xfc, 0x00, 0xd2, 0x76, 0xd2, 0x47, 0x88, 0x0f,
+ 0x88, 0xe1, 0xa9, 0x4e, 0x15, 0x21, 0x6d, 0x41,
+ 0xc4, 0xf1, 0xb2, 0x32, 0xeb, 0x45, 0x1c, 0x06,
+ 0x20, 0x93, 0x98, 0xdf, 0xf7, 0x4a, 0xfd, 0x62,
+ 0xca, 0x40, 0x1b, 0x9a, 0x82, 0x51, 0x7a, 0x0d,
+ 0xbf, 0xb2, 0xcc, 0xc3, 0x5a, 0x6a, 0x18, 0x86,
+ 0x3f, 0x83, 0xee, 0x48, 0x2a, 0x48, 0xea, 0x44,
+ 0x8e, 0x05, 0x35, 0x24, 0x89, 0x3c, 0x7b, 0x0d,
+ 0x9d, 0xa8, 0x7a, 0x42, 0xec, 0xfd, 0xbc, 0xe6,
+ 0xcb, 0x8e, 0x63, 0xa2, 0x27, 0x6b, 0xb8, 0x34,
+ 0xa4, 0xa6, 0x9b, 0xc1, 0xa6, 0x55, 0xf4, 0x1c,
+ 0x10, 0xfd, 0xf9, 0x26, 0xf7, 0x35, 0xc7, 0xe6,
+ 0x4b, 0x11, 0xc4, 0xd3, 0xa6, 0x59, 0x52, 0x75,
+ 0x13, 0xa8, 0xfe, 0x26, 0xcf, 0x42, 0x0e, 0xc1,
+ 0xcb, 0x03, 0xfb, 0xb8, 0x06, 0xbb, 0xa7, 0xa4,
+ 0x79, 0x68, 0xe4, 0xca, 0xcd, 0x99, 0xd7, 0xf6,
+ 0xb7, 0x79, 0xfc, 0xae, 0x44, 0xf2, 0x3f, 0xf6,
+ 0xf7, 0xb7, 0x56, 0xd1, 0xef, 0x2c, 0x1e, 0x05,
+ 0xb3, 0xf7, 0xd8, 0x50, 0xbb, 0x35, 0x05, 0xb9,
+ 0xbc, 0xf0, 0x6d, 0x8c, 0x3f, 0xb2, 0x73, 0x94,
+ 0xb1, 0x2d, 0xb7, 0x5f, 0x2e, 0x70, 0xeb, 0x2e,
+ 0xe3, 0xd7, 0xf0, 0x41, 0x39, 0x67, 0xa1, 0x84,
+ 0x1a, 0x5f, 0x5b, 0x6c, 0x18, 0xda, 0xce, 0xb2,
+ 0x23, 0xc6, 0x06, 0x14, 0x53, 0xf2, 0xe0, 0xef,
+ 0x91, 0xb2, 0x71, 0x19, 0xe4, 0xd3, 0x68, 0x1a,
+ 0xd1, 0x9c, 0xd7, 0xe0, 0xdc, 0xe7, 0xbc, 0x49,
+ 0x42, 0xfc, 0xff, 0x5b, 0xf8, 0xc8, 0x67, 0xad,
+ 0xbc, 0xbe, 0xf8, 0xc6, 0xce, 0xe7, 0x48, 0x44,
+ 0x3b, 0x25, 0x48, 0xc3, 0x61, 0x34, 0xb2, 0xf5,
+ 0x0f, 0x1b, 0xac, 0xfd, 0x35, 0xd0, 0x57, 0x4e,
+ 0x59, 0xb1, 0x8c, 0x61, 0xd2, 0x97, 0x8a, 0x42,
+ 0x55, 0x84, 0x58, 0xb6, 0xb4, 0x22, 0x89, 0x3e,
+ 0x7b, 0x00, 0x3e, 0x44, 0xff, 0xad, 0x74, 0x7f,
+ 0xc9, 0x59, 0x3d, 0xa4, 0xb7, 0x8c, 0xdd, 0x20,
+ 0xea, 0xbd, 0xa4, 0xd0, 0x91, 0x81, 0x38, 0x36,
+ 0xaf, 0xee, 0x3e, 0xc6, 0x51, 0x96, 0x96, 0xf6,
+ 0x8d, 0x72, 0x01, 0x89, 0x61, 0x26, 0xe4, 0x63,
+ 0x61, 0x36, 0x0f, 0xce, 0xbe, 0x7c, 0xcb, 0xf0,
+ 0x83, 0x6a, 0x69, 0xd8, 0x2b, 0x43, 0xb9, 0x7c,
+ 0xa8, 0x84, 0xe4, 0xbc, 0x5b, 0x33, 0x37, 0x7e,
+ 0x29, 0xb4, 0xdd, 0x97, 0x8e, 0xda, 0x3c, 0x08,
+ 0x10, 0xdf, 0xbf, 0x8c, 0xf4, 0x85, 0x41, 0x66,
+ 0x76, 0xe2, 0xbd, 0xc1, 0xe4, 0x03, 0x91, 0x78,
+ 0x61, 0x17, 0xf7, 0xcf, 0xfb, 0x00, 0x4a, 0xdd,
+ 0x80, 0xe0, 0xce, 0xec, 0xd7, 0x4a, 0x6e, 0xeb,
+ 0xfd, 0x67, 0xda, 0x58, 0xa7, 0xf8, 0xd0, 0x2b,
+ 0xb0, 0x18, 0x95, 0x2b, 0xb8, 0x24, 0x3f, 0x4b,
+ 0xb4, 0x3b, 0x5f, 0xd6, 0x5b, 0x47, 0x76, 0x00,
+ 0xf4, 0x77, 0xb0, 0x0e, 0xfe, 0x13, 0x64, 0x63,
+ 0x92, 0xa9, 0x4f, 0xac, 0xe4, 0x39, 0x54, 0xbf,
+ 0xc9, 0x48, 0x9e, 0xd7, 0xe1, 0x73, 0x17, 0xf7,
+ 0x04, 0xd5, 0x52, 0xb3, 0x53, 0x6d, 0x58, 0x79,
+ 0x36, 0xac, 0xfc, 0x54, 0x71, 0xe1, 0xa9, 0x30,
+ 0x78, 0x01, 0xca, 0xda, 0x30, 0xec, 0xa4, 0xfa,
+ 0x49, 0xc4, 0x8f, 0x2d, 0x6f, 0x97, 0x95, 0x8b,
+ 0xde, 0xe7, 0xd3, 0x18, 0xff, 0xec, 0xe6, 0xd6,
+ 0xb0, 0x66, 0x94, 0x80, 0x97, 0xef, 0x5c, 0x20,
+ 0x2b, 0x66, 0x91, 0x93, 0xa7, 0x39, 0x11, 0xa9,
+ 0x4c, 0x38, 0x3d, 0x0a, 0xb4, 0x06, 0xd8, 0xd9,
+ 0x5c, 0x1e, 0x47, 0x04, 0xb6, 0xb1, 0x71, 0xd4,
+ 0x0b, 0x7e, 0x0f, 0x71, 0xbb, 0xb7, 0x22, 0x3a,
+ 0xfc, 0x2c, 0x23, 0x51, 0x61, 0x78, 0x8e, 0x54,
+ 0x29, 0xb7, 0xec, 0x80, 0x39, 0x82, 0xa3, 0x25,
+ 0xa7, 0x5c, 0xcf, 0x6d, 0x75, 0x2b, 0x53, 0x6d,
+ 0xee, 0x2f, 0xc4, 0x58, 0x6d, 0x42, 0xd5, 0x98,
+ 0xe3, 0xc5, 0x53, 0x01, 0x60, 0x5c, 0x49, 0x99,
+ 0x79, 0x83, 0x18, 0xc7, 0xb2, 0xa1, 0x6c, 0xbe,
+ 0xbd, 0x44, 0xa8, 0x74, 0x69, 0xb2, 0xf2, 0xaf,
+ 0xa6, 0xe8, 0x09, 0xb3, 0xf6, 0xf9, 0x7a, 0xca,
+ 0xf0, 0x57, 0xfe, 0xe5, 0x3b, 0x78, 0xe1, 0xbc,
+ 0xeb, 0x72, 0x3e, 0xdc, 0x2b, 0x3b, 0xab, 0xfa,
+ 0xd4, 0xb9, 0xb6, 0x5b, 0x81, 0x51, 0x20, 0x31,
+ 0x9e, 0xf8, 0xb1, 0x3e, 0x10, 0x46, 0xae, 0x2e,
+ 0x40, 0x4f, 0xbc, 0xd6, 0xf7, 0xa7, 0x03, 0x14,
+ 0x70, 0x12, 0x9f, 0x5e, 0x77, 0xe1, 0xca, 0x8a,
+ 0x2d, 0x63, 0x73, 0xd3, 0xc0, 0x4b, 0x3c, 0xb5,
+ 0x04, 0x85, 0x64, 0xbc, 0x9b, 0x4c, 0x0c, 0x4d,
+ 0x74, 0x1e, 0xa5, 0xcc, 0x36, 0xd2, 0x03, 0x36,
+ 0xfe, 0x4c, 0x65, 0x57, 0xa9, 0xc5, 0x61, 0x29,
+ 0x21, 0x99, 0xd2, 0xd0, 0x68, 0xa6, 0x19, 0x80,
+ 0x86, 0xf0, 0x1b, 0x0e, 0xf0, 0xdd, 0xd7, 0x13,
+ 0x21, 0x3a, 0x9d, 0x46, 0x16, 0x80, 0x30, 0x64,
+ 0x09, 0xcd, 0x29, 0x76, 0x0f, 0xc5, 0x77, 0xd4,
+ 0x59, 0x89, 0xfb, 0x92, 0x54, 0x12, 0x0c, 0x8c,
+ 0xe4, 0xe2, 0x5c, 0x63, 0x5a, 0xed, 0xf6, 0x60,
+ 0xd9, 0xb8, 0x02, 0x01, 0x46, 0x73, 0x28, 0xac,
+ 0x10, 0x66, 0x55, 0xeb, 0x4a, 0x89, 0xc4, 0x92,
+ 0x32, 0x18, 0x8f, 0x41, 0x0f, 0x96, 0x80, 0xfa,
+ 0x3a, 0xc4, 0x0b, 0xfb, 0x65, 0x38, 0xd9, 0xe7,
+ 0x42, 0x97, 0x97, 0x0f, 0x9d, 0x63, 0x85, 0xf6,
+ 0x35, 0xb5, 0x1e, 0x39, 0x2e, 0x1d, 0xc5, 0xf9,
+ 0x11, 0x06, 0x28, 0xff, 0x13, 0x72, 0x8e, 0x33,
+ 0x0a, 0xfb, 0x1f, 0x85, 0x4f, 0x52, 0xc8, 0x5f,
+ 0x90, 0x38, 0x9e, 0x5a, 0x85, 0x52, 0xc5, 0xc5,
+ 0x47, 0xba, 0x54, 0x02, 0x61, 0xe8, 0xb8, 0x0b,
+ 0x91, 0xf5, 0xe9, 0xc1, 0x5b, 0x7f, 0x52, 0x4f,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x16, 0x02, 0xe1, 0xd5, 0xb2, 0x06, 0x9b, 0x7c,
+ 0x7c, 0x48, 0xd3, 0x12, 0x2a, 0xc3, 0xa0, 0x1f,
+ 0x88, 0xef, 0xfa, 0x08, 0x15, 0x37, 0xcd, 0x04,
+ 0x1d, 0x13, 0x67, 0x03, 0x94, 0xa5, 0x78, 0x2c,
+ 0xfb, 0xb6, 0xd6, 0x62, 0x59, 0x47, 0x1c, 0x7a,
+ 0xba, 0xf2, 0x88, 0x3c, 0x45, 0x93, 0xa8, 0x8d,
+ 0x3d, 0x8d, 0x4b, 0x09, 0x6d, 0x66, 0x9a, 0x6a,
+ 0xee, 0xec, 0x6e, 0x31, 0x42, 0xff, 0xcf, 0x38,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0x3d, 0x5e, 0x39, 0x2c, 0xd1, 0x70, 0x40, 0x56,
+ 0x81, 0x94, 0x18, 0xae, 0x2d, 0xc8, 0x5e, 0x56,
+ 0x69, 0x3b, 0x55, 0xcd, 0x09, 0xf2, 0x8f, 0xf6,
+ 0xdc, 0xff, 0x95, 0xd2, 0x9c, 0xff, 0x3a, 0xd8,
+ 0xcc, 0x3e, 0x2f, 0x77, 0x25, 0xb8, 0xd1, 0x50,
+ 0xc3, 0x96, 0x5b, 0x78, 0xb3, 0x25, 0x7c, 0x53,
+ 0x58, 0xb9, 0x3a, 0x56, 0x4b, 0xeb, 0x31, 0x7c,
+ 0x8f, 0xd4, 0xc8, 0xd2, 0x9e, 0xe7, 0xe5, 0x0d,
+ 0x33, 0xff, 0xf2, 0xb8, 0x78, 0xf0, 0x6c, 0xa4,
+ 0xb4, 0xec, 0xe9, 0xc8, 0x93, 0xcd, 0xc0, 0xde,
+ 0x85, 0xcf, 0x2d, 0x07, 0xdd, 0xee, 0xd7, 0xff,
+ 0x23, 0xb7, 0x13, 0x96, 0x63, 0xbf, 0x18, 0xce,
+ 0x84, 0x4f, 0x68, 0x88, 0xc0, 0x65, 0x97, 0x1e,
+ 0x6e, 0x95, 0xff, 0xbe, 0xed, 0xaa, 0x93, 0xa3,
+ 0x8e, 0xd0, 0x14, 0xbc, 0x6f, 0x11, 0x66, 0x69,
+ 0x75, 0x90, 0x4f, 0x81, 0xbf, 0xa2, 0x64, 0x39,
+ 0x78, 0x56, 0x9a, 0xa9, 0x92, 0xe6, 0x56, 0x2a,
+ 0xa1, 0x15, 0xf9, 0xdc, 0xc9, 0x0d, 0xf5, 0x7a,
+ 0x70, 0x82, 0x2c, 0x9d, 0xde, 0x73, 0x2e, 0x0c,
+ 0xc9, 0x2a, 0x41, 0x64, 0xee, 0x4c, 0xe7, 0xb8,
+ 0xc6, 0x76, 0xab, 0xb0, 0xab, 0xec, 0x11, 0x7f,
+ 0x19, 0xdf, 0x49, 0x6e, 0x7e, 0x35, 0x47, 0x3f,
+ 0x16, 0x08, 0x75, 0x30, 0x18, 0x1f, 0x55, 0x96,
+ 0x46, 0xb7, 0x31, 0x54, 0xa8, 0x8f, 0xa8, 0x61,
+ 0xc4, 0x45, 0xec, 0x54, 0x09, 0xe1, 0x52, 0xf7,
+ 0x71, 0x29, 0x11, 0xb8, 0xea, 0x81, 0xd9, 0x55,
+ 0x03, 0xea, 0x73, 0x4a, 0x3b, 0x55, 0x23, 0x0e,
+ 0x65, 0x85, 0xed, 0x8f, 0x76, 0xda, 0x73, 0x50,
+ 0x69, 0x44, 0xa4, 0xae, 0x0c, 0x6c, 0x4e, 0x3a,
+ 0x70, 0x7b, 0x8c, 0xee, 0xef, 0x6c, 0x9a, 0x6b,
+ 0xca, 0x96, 0x4e, 0x77, 0x8a, 0x02, 0xa0, 0x28,
+ 0x6c, 0xab, 0x4b, 0xe1, 0x5e, 0x88, 0x4b, 0x47,
+ 0x9a, 0x9b, 0x8c, 0x93, 0xa9, 0x78, 0x38, 0xff,
+ 0x42, 0x36, 0xe8, 0xd9, 0xcc, 0x9f, 0xf4, 0x34,
+ 0xa7, 0xb4, 0x2d, 0xe0, 0x2c, 0xd6, 0x2a, 0xf8,
+ 0x48, 0xe8, 0xbb, 0x0b, 0x82, 0xa7, 0xb8, 0xc2,
+ 0x51, 0xdc, 0x29, 0x3c, 0x76, 0x16, 0x81, 0xdd,
+ 0xfa, 0x15, 0x7c, 0xc3, 0xd5, 0xd2, 0x8f, 0xde,
+ 0xcd, 0x40, 0x14, 0x65, 0x21, 0x79, 0x9c, 0x71,
+ 0x81, 0xf6, 0x37, 0x2b, 0x75, 0xf7, 0x33, 0xb4,
+ 0x98, 0xe9, 0x02, 0xa7, 0xb5, 0xd7, 0xa4, 0xbe,
+ 0xeb, 0x98, 0xbb, 0x5a, 0x37, 0x69, 0x5e, 0xb6,
+ 0x11, 0x5c, 0xef, 0xef, 0xf8, 0x2e, 0xb0, 0x1d,
+ 0x3f, 0xc6, 0x4a, 0xe6, 0x1a, 0x9a, 0xcd, 0xe9,
+ 0x89, 0x93, 0x3f, 0xbd, 0x89, 0xeb, 0x7f, 0xbb,
+ 0x9a, 0x8d, 0x8e, 0xd6, 0x5a, 0xe9, 0x45, 0xfd,
+ 0xf1, 0x20, 0x56, 0x5c, 0x60, 0x89, 0x60, 0x79,
+ 0xaa, 0x96, 0x70, 0xa6, 0xf8, 0xf3, 0xd5, 0x79,
+ 0xf4, 0x3d, 0xfb, 0xe0, 0xa3, 0x3b, 0x17, 0x14,
+ 0xf7, 0xe8, 0x21, 0x20, 0x02, 0xf3, 0x9d, 0x09,
+ 0x5b, 0xc3, 0xb4, 0xe8, 0x47, 0x6e, 0xab, 0xc9,
+ 0xd1, 0x8c, 0xba, 0x58, 0x45, 0x2a, 0x38, 0x9b,
+ 0xdb, 0xb9, 0xf7, 0x67, 0x9d, 0x44, 0x5b, 0x95,
+ 0xdd, 0x13, 0x1a, 0x27, 0x1b, 0xf7, 0xfb, 0x6b,
+ 0xb7, 0x53, 0x44, 0x23, 0x06, 0x69, 0x55, 0x05,
+ 0x82, 0xd2, 0xcf, 0x04, 0xe2, 0x85, 0x3d, 0x5c,
+ 0xdf, 0xfd, 0xcb, 0xa3, 0x74, 0x51, 0x1a, 0x93,
+ 0xc2, 0x64, 0x22, 0xae, 0x7c, 0x85, 0x09, 0xca,
+ 0xb2, 0xe2, 0x9f, 0xaf, 0xde, 0x69, 0xc8, 0x44,
+ 0xdf, 0x78, 0x49, 0x01, 0x3d, 0xbf, 0x99, 0x29,
+ 0x81, 0x31, 0x54, 0x03, 0x99, 0x2f, 0x14, 0x75,
+ 0x02, 0x8a, 0x77, 0x71, 0x3d, 0xb7, 0x6c, 0x12,
+ 0x26, 0x08, 0x9a, 0x59, 0x59, 0xc0, 0x77, 0xd0,
+ 0xc1, 0x63, 0xb9, 0x41, 0xf8, 0x90, 0x02, 0xdb,
+ 0x0e, 0x00, 0xa9, 0xa7, 0xfd, 0xa7, 0x31, 0x2e,
+ 0x14, 0xee, 0xd8, 0x69, 0x0a, 0x60, 0x01, 0xca,
+ 0x11, 0x91, 0x1a, 0xd1, 0x40, 0x03, 0x2f, 0x43,
+ 0xaf, 0x09, 0xe7, 0x65, 0x47, 0x6e, 0x14, 0xff,
+ 0x36, 0xdc, 0x1d, 0xd8, 0xaf, 0x5e, 0xff, 0x47,
+ 0x4f, 0x2c, 0x81, 0x7c, 0xa5, 0x1e, 0x3a, 0x31,
+ 0xce, 0xea, 0x2b, 0x5a, 0x42, 0x06, 0x0b, 0x3c,
+ 0xc1, 0x12, 0x0e, 0x14, 0xcc, 0xc7, 0x45, 0xe5,
+ 0x44, 0x96, 0x41, 0x23, 0x1e, 0x31, 0xa1, 0xd3,
+ 0xfc, 0x54, 0x47, 0x3a, 0xa6, 0xbe, 0x7b, 0x00,
+ 0x23, 0x28, 0x32, 0x7d, 0x76, 0xfb, 0x98, 0xad,
+ 0xbc, 0x96, 0x57, 0xdf, 0xfe, 0x28, 0xdd, 0x16,
+ 0x95, 0xd2, 0x8f, 0x1f, 0x74, 0x02, 0x05, 0xd2,
+ 0x9f, 0x83, 0xf0, 0xf4, 0xc1, 0xd6, 0x31, 0x3d,
+ 0x03, 0xe6, 0xec, 0xc7, 0x53, 0xba, 0x21, 0x18,
+ 0x88, 0x61, 0x00, 0x98, 0x74, 0x25, 0xde, 0x75,
+ 0xc1, 0xd9, 0xf7, 0x36, 0xa2, 0xbd, 0x1d, 0xe3,
+ 0xe2, 0x0b, 0xb1, 0xf6, 0xeb, 0xea, 0x03, 0x5c,
+ 0xfd, 0x98, 0x97, 0xdd, 0x7e, 0x9f, 0xcf, 0x8f,
+ 0x76, 0x37, 0xc1, 0x1f, 0xbd, 0x69, 0x77, 0x9c,
+ 0xd9, 0xa9, 0xc6, 0xf1, 0x25, 0xbe, 0x85, 0xde,
+ 0x3c, 0x08, 0xda, 0x88, 0xeb, 0xcd, 0xcb, 0x91,
+ 0xb1, 0x83, 0x79, 0xa8, 0x9b, 0x1f, 0xd8, 0x5d,
+ 0x06, 0xee, 0x16, 0x63, 0xc4, 0x4c, 0xdb, 0xc3,
+ 0x9c, 0x49, 0x9e, 0xb8, 0x90, 0x4f, 0x0c, 0x59,
+ 0x34, 0xe0, 0x6d, 0x8d, 0x91, 0x24, 0x9b, 0x7d,
+ 0xa3, 0xa4, 0xb9, 0xa5, 0xc9, 0x77, 0x0b, 0x9c,
+ 0x6e, 0xfa, 0x76, 0x43, 0x8b, 0x41, 0x88, 0x6d,
+ 0x5e, 0x74, 0x64, 0x6c, 0xd8, 0x4e, 0xe0, 0x78,
+ 0x9d, 0x52, 0x85, 0xd7, 0x8a, 0x90, 0xec, 0xe8,
+ 0x55, 0x54, 0x8e, 0x99, 0xc0, 0xa3, 0xad, 0x31,
+ 0x26, 0x9a, 0x29, 0x2a, 0xef, 0xf2, 0xac, 0x9e,
+ 0x84, 0xd8, 0x9d, 0xcf, 0x9e, 0x36, 0xd0, 0x3d,
+ 0xcd, 0x69, 0x1f, 0x49, 0x91, 0xc3, 0xea, 0xd5,
+ 0xd4, 0xde, 0x70, 0x67, 0xe9, 0x92, 0x90, 0xd3,
+ 0x41, 0x76, 0xc2, 0xf6, 0x78, 0xcf, 0x3d, 0x9c,
+ 0xac, 0xdf, 0x47, 0xd3, 0x80, 0x4f, 0x03, 0xa4,
+ 0x04, 0x70, 0x9a, 0xd8, 0x96, 0xc2, 0x28, 0xd9,
+ 0x4b, 0xe4, 0xc6, 0x2b, 0x91, 0x1b, 0x96, 0xe8,
+ 0x29, 0x87, 0xcc, 0x82, 0x2e, 0xbb, 0xb0, 0xd6,
+ 0x3a, 0xc0, 0xa8, 0xbc, 0xf8, 0x28, 0x75, 0x1f,
+ 0xf8, 0x99, 0x12, 0xb5, 0x85, 0xa0, 0x15, 0x6c,
+ 0x89, 0x24, 0x97, 0xec, 0x8d, 0x4f, 0xcc, 0x95,
+ 0x8a, 0x81, 0x9c, 0xb8, 0x3d, 0x15, 0x16, 0x7b,
+ 0x3c, 0x30, 0x9a, 0xba, 0x00, 0xfa, 0x37, 0x8c,
+ 0x6c, 0x89, 0x07, 0x6c, 0x68, 0x67, 0xea, 0x7e,
+ 0xa3, 0x66, 0x82, 0x96, 0x92, 0x63, 0x92, 0x3a,
+ 0x50, 0xc7, 0xe2, 0xb0, 0xd5, 0x76, 0xda, 0xa3,
+ 0xa0, 0xa3, 0x28, 0x35, 0x68, 0x11, 0xe9, 0xcb,
+ 0xdd, 0xa2, 0xbe, 0x56, 0x83, 0xa1, 0x90, 0x17,
+ 0x6d, 0x16, 0x0f, 0x67, 0xfa, 0xd8, 0xef, 0x69,
+ 0x97, 0xdc, 0xbd, 0xaa, 0x66, 0xcd, 0x8e, 0x4b,
+ 0x8d, 0x5e, 0x7c, 0xb2, 0x13, 0x22, 0x09, 0xce,
+ 0x93, 0x7e, 0x01, 0xa1, 0x2b, 0x0c, 0x94, 0x68,
+ 0x1e, 0xa4, 0x64, 0x8f, 0x8f, 0x75, 0x9b, 0xa6,
+ 0x0f, 0x6e, 0x52, 0x09, 0x3b, 0x56, 0x97, 0x25,
+ 0x2c, 0x94, 0x0c, 0xc2, 0xdb, 0x37, 0x0e, 0x9b,
+ 0xac, 0x57, 0x49, 0x36, 0xd5, 0x13, 0x18, 0xd9,
+ 0xf4, 0x76, 0xf6, 0x2b, 0xaf, 0x07, 0xd0, 0x0d,
+ 0x94, 0xc9, 0xf9, 0x0c, 0xd5, 0x7f, 0x76, 0xe1,
+ 0x88, 0xc6, 0xce, 0xdb, 0x98, 0x2b, 0x18, 0xa8,
+ 0x42, 0x8f, 0x74, 0x9e, 0x51, 0x00, 0xf8, 0x06,
+ 0x06, 0x2d, 0xcc, 0x89, 0xb4, 0xec, 0x53, 0xba,
+ 0xee, 0x4b, 0x42, 0x8d, 0x6f, 0x7c, 0xca, 0x35,
+ 0xb9, 0x53, 0xc0, 0x65, 0xb0, 0x86, 0x97, 0xbd,
+ 0xf6, 0x33, 0x54, 0x16, 0xfb, 0x92, 0x61, 0x60,
+ 0xf0, 0xfd, 0x90, 0x13, 0xa6, 0xb8, 0x94, 0x35,
+ 0x6a, 0xd7, 0x0b, 0xe4, 0x37, 0x1e, 0x12, 0x44,
+ 0x1b, 0xb3, 0xda, 0x65, 0x08, 0x1c, 0x22, 0x3a,
+ 0x0e, 0x72, 0x7e, 0xec, 0x57, 0x4d, 0x8d, 0x1f,
+ 0x7d, 0xb8, 0xf8, 0x37, 0x67, 0x93, 0xc2, 0x9a,
+ 0xac, 0x17, 0xd3, 0xfe, 0x10, 0x7c, 0xe9, 0xcb,
+ 0x3e, 0x79, 0xba, 0x0e, 0x61, 0xe7, 0x6b, 0xb2,
+ 0x97, 0x6f, 0xe1, 0x37, 0x8c, 0x45, 0x50, 0xd7,
+ 0x0f, 0x26, 0x5c, 0xee, 0xa4, 0xf3, 0x90, 0xe2,
+ 0x72, 0xf6, 0x4b, 0x5e, 0x6c, 0x44, 0x90, 0x2b,
+ 0xbd, 0x7e, 0x25, 0xaf, 0xfc, 0xc4, 0xe7, 0xb4,
+ 0x25, 0xac, 0x68, 0x01, 0x72, 0x38, 0x31, 0xfe,
+ 0x02, 0x29, 0xaf, 0x90, 0x68, 0x2f, 0xbf, 0xe8,
+ 0xc4, 0x81, 0x77, 0xc2, 0xe0, 0xd3, 0xe9, 0x5b,
+ 0xb8, 0x21, 0xbf, 0xb2, 0xe5, 0x4f, 0x14, 0xcd,
+ 0x93, 0xee, 0x0e, 0x8a, 0x24, 0x9e, 0x95, 0x01,
+ 0x5b, 0x76, 0xc7, 0x9f, 0x04, 0xdb, 0x6e, 0x00,
+ 0xbe, 0x5a, 0xe0, 0x77, 0xde, 0xa5, 0xe4, 0x16,
+ 0xec, 0xbb, 0xc7, 0xd7, 0xd2, 0xd4, 0x65, 0xc2,
+ 0xc1, 0xa3, 0x36, 0x7e, 0x8a, 0x40, 0xb8, 0x7f,
+ 0xb3, 0x5c, 0x17, 0x2e, 0xcd, 0xeb, 0xf8, 0x8b,
+ 0x0c, 0x01, 0xf8, 0x3d, 0x33, 0x6b, 0x81, 0x9e,
+ 0x19, 0x89, 0x22, 0x41, 0x88, 0x32, 0x1a, 0xa7,
+ 0x14, 0xbc, 0x4a, 0x45, 0xca, 0x06, 0x9c, 0xe4,
+ 0x72, 0x64, 0x74, 0xcc, 0x29, 0xeb, 0x06, 0x1e,
+ 0xe2, 0x74, 0x82, 0xd5, 0xc6, 0x3c, 0x11, 0xe1,
+ 0xa6, 0x91, 0x78, 0xe4, 0xef, 0xd1, 0xd3, 0xc0,
+ 0xbf, 0xdc, 0x08, 0xa8, 0xdb, 0x45, 0xb6, 0x8e,
+ 0x32, 0x69, 0x37, 0xbc, 0x26, 0xdf, 0xb0, 0x57,
+ 0xa5, 0x11, 0xa7, 0x06, 0x5b, 0x4c, 0xe0, 0xda,
+ 0x62, 0x8b, 0xe0, 0x29, 0x16, 0x4e, 0x69, 0x80,
+ 0xe5, 0x40, 0x15, 0xb6, 0xda, 0xcd, 0xf4, 0xcc,
+ 0x40, 0xd5, 0x8d, 0x4d, 0x18, 0x33, 0x67, 0xd9,
+ 0xf8, 0xc5, 0x5d, 0x7a, 0xae, 0xb1, 0xe3, 0xa4,
+ 0x3d, 0x46, 0x7d, 0x53, 0xf1, 0xb9, 0x3b, 0x0e,
+ 0xa2, 0xa8, 0x89, 0x14, 0x82, 0x3f, 0x3a, 0x8d,
+ 0xda, 0x95, 0xfd, 0x96, 0x5b, 0x4a, 0xa5, 0xab,
+ 0x48, 0xa9, 0x27, 0x19, 0xb6, 0x67, 0xdd, 0xcd,
+ 0x04, 0xb1, 0x88, 0xb6, 0x41, 0xba, 0x85, 0xa2,
+ 0x8e, 0x30, 0x4c, 0x71, 0x07, 0xf6, 0x72, 0x58,
+ 0x4c, 0x7f, 0x98, 0xfa, 0xd7, 0x02, 0xb8, 0xe8,
+ 0x10, 0xaf, 0xca, 0xc4, 0xc7, 0x77, 0x50, 0x70,
+ 0xf3, 0xc6, 0x76, 0xae, 0xc3, 0xc1, 0xa4, 0x67,
+ 0xd2, 0xef, 0xd4, 0x99, 0xc5, 0xf5, 0x0a, 0x99,
+ 0x1b, 0x01, 0xd6, 0xa2, 0xb9, 0xb4, 0x82, 0x33,
+ 0x97, 0x00, 0x68, 0xf9, 0x66, 0xa5, 0x83, 0xd9,
+ 0x57, 0x1f, 0x1a, 0xdd, 0xc3, 0x00, 0x32, 0xd4,
+ 0x2c, 0xbe, 0x85, 0x5d, 0xbf, 0x37, 0xef, 0x7b,
+ 0xe1, 0x44, 0x27, 0xa3, 0xa2, 0x67, 0x86, 0xed,
+ 0x17, 0x2a, 0xc1, 0x06, 0x9a, 0x99, 0x97, 0xfb,
+ 0x12, 0x6f, 0xe0, 0x62, 0x70, 0xe5, 0x7c, 0x8c,
+ 0xc8, 0x1d, 0x30, 0x94, 0xbc, 0x94, 0xef, 0x19,
+ 0x6b, 0x07, 0xb4, 0x6a, 0xe3, 0x24, 0x56, 0x0b,
+ 0x6f, 0xbb, 0x4f, 0x8f, 0xb8, 0x22, 0x9e, 0xaf,
+ 0xef, 0x0d, 0x3c, 0x40, 0x31, 0xfa, 0xc2, 0x60,
+ 0xfa, 0x9e, 0xea, 0xef, 0x61, 0x88, 0x4c, 0x0c,
+ 0xba, 0xcb, 0xa8, 0x90, 0x6d, 0xd5, 0xef, 0x95,
+ 0xaa, 0x4d, 0x85, 0x64, 0x1a, 0x64, 0xac, 0x91,
+ 0x58, 0x08, 0xee, 0x37, 0xce, 0x3c, 0x4a, 0xe7,
+ 0x25, 0x54, 0x57, 0xa5, 0x59, 0xab, 0xdf, 0x24,
+ 0x9f, 0x89, 0x15, 0x1d, 0x9c, 0xce, 0x7b, 0xe7,
+ 0xb6, 0xc9, 0xc7, 0x4b, 0xfc, 0x5c, 0x25, 0xa2,
+ 0xba, 0x2e, 0x3e, 0x19, 0x82, 0x20, 0x57, 0x52,
+ 0xa0, 0x3f, 0x93, 0xce, 0x20, 0x85, 0xf0, 0x4e,
+ 0x0d, 0x4b, 0x53, 0xb7, 0x6b, 0x66, 0x1a, 0xae,
+ 0x45, 0x47, 0xdf, 0xbc, 0x39, 0x83, 0x8a, 0xe4,
+ 0xdb, 0x97, 0x72, 0xcb, 0x83, 0xbf, 0x8e, 0x47,
+ 0x55, 0xbf, 0x1a, 0x5b, 0x66, 0xe4, 0x76, 0xc7,
+ 0xb4, 0xf1, 0xc6, 0x3e, 0x84, 0x5d, 0x74, 0x6d,
+ 0x7b, 0xab, 0x80, 0x89, 0xda, 0x8d, 0x4a, 0x1e,
+ 0x5c, 0x31, 0xc2, 0x26, 0xce, 0x69, 0x29, 0xc3,
+ 0x87, 0xe1, 0x3b, 0x1c, 0x42, 0xff, 0xef, 0x8c,
+ 0x4d, 0x5c, 0x52, 0xac, 0x6e, 0x60, 0x49, 0xb6,
+ 0xe1, 0x09, 0x12, 0xa7, 0xd0, 0x19, 0x0c, 0x5d,
+ 0x8b, 0xf2, 0xfe, 0x3b, 0x40, 0xf2, 0xaa, 0x4b,
+ 0x71, 0xc0, 0xf4, 0xe3, 0x7e, 0x83, 0xf9, 0xfb,
+ 0x00, 0x23, 0x33, 0x84, 0x0c, 0x88, 0x52, 0x30,
+ 0x3b, 0x29, 0x6d, 0x95, 0x86, 0xf5, 0x67, 0xfe,
+ 0x84, 0x26, 0x56, 0x57, 0x50, 0x7f, 0x1a, 0x8b,
+ 0x53, 0xfa, 0xf6, 0x64, 0xa2, 0x57, 0xc2, 0x69,
+ 0xa2, 0x18, 0xd1, 0xc1, 0xab, 0xfc, 0xb9, 0x8e,
+ 0x21, 0x20, 0x0b, 0x4d, 0xff, 0xf7, 0x28, 0x0b,
+ 0xf8, 0xd5, 0x7d, 0xe7, 0xbf, 0x15, 0x0e, 0x58,
+ 0x2b, 0xdd, 0xe0, 0xec, 0x9f, 0x25, 0x02, 0xf7,
+ 0x43, 0x69, 0x66, 0x79, 0x0b, 0x89, 0xcb, 0x72,
+ 0x03, 0x48, 0xdf, 0xe2, 0xcc, 0x93, 0x47, 0x5f,
+ 0x61, 0x34, 0x41, 0xcb, 0x23, 0x88, 0xca, 0xcb,
+ 0xc3, 0x72, 0xe3, 0x28, 0xdf, 0x73, 0x63, 0x06,
+ 0x1c, 0x82, 0x7d, 0x5b, 0x8b, 0x63, 0x09, 0x11,
+ 0x03, 0x59, 0xc6, 0xac, 0x18, 0x8a, 0xa1, 0x66,
+ 0x2d, 0x26, 0xd9, 0x95, 0x3f, 0x7d, 0x82, 0x59,
+ 0xdf, 0x36, 0xb5, 0x8d, 0x5e, 0x59, 0xec, 0x9a,
+ 0xee, 0x25, 0x8d, 0x3e, 0x3c, 0x62, 0x6f, 0xc8,
+ 0x0a, 0x19, 0x4c, 0xa7, 0x1b, 0xf8, 0xcd, 0x08,
+ 0x7e, 0xf1, 0xf2, 0xf1, 0x76, 0x15, 0x4c, 0xf8,
+ 0x1e, 0xb6, 0x58, 0xac, 0xe7, 0x86, 0xd2, 0xac,
+ 0x36, 0x38, 0xb0, 0x60, 0x08, 0x8a, 0x4a, 0x42,
+ 0xcc, 0xf8, 0x03, 0x0a, 0xf6, 0xa9, 0xa9, 0x38,
+ 0x63, 0xb9, 0x68, 0x69, 0xd3, 0x21, 0x6c, 0x19,
+ 0x00, 0x93, 0x46, 0xd5, 0x6e, 0x4b, 0x5c, 0x69,
+ 0xa9, 0x74, 0xf3, 0xb8, 0xec, 0x14, 0x29, 0x8c,
+ 0x25, 0x2d, 0xf2, 0x2f, 0x2a, 0x1c, 0xcc, 0x57,
+ 0x76, 0x74, 0x8e, 0x6a, 0xcf, 0x93, 0x62, 0x93,
+ 0x24, 0x03, 0x24, 0x09, 0xa3, 0xa5, 0x1a, 0x95,
+ 0x99, 0xe5, 0x52, 0x82, 0x1d, 0x22, 0x65, 0x30,
+ 0x47, 0x27, 0x0e, 0xf9, 0xe4, 0xce, 0xb8, 0xad,
+ 0x34, 0x61, 0x21, 0x77, 0xf5, 0x17, 0xcb, 0x70,
+ 0xa9, 0x72, 0x22, 0x49, 0x16, 0x4c, 0xb4, 0x35,
+ 0x76, 0x97, 0x99, 0x66, 0xff, 0x2e, 0x81, 0x46,
+ 0xbe, 0x56, 0xad, 0x70, 0xf2, 0x9a, 0x44, 0xe8,
+ 0x3a, 0x2d, 0x6c, 0xbb, 0x89, 0x28, 0x76, 0x49,
+ 0x25, 0xf6, 0x49, 0x8b, 0x67, 0xe7, 0xb4, 0xed,
+ 0x28, 0x21, 0x0c, 0xb0, 0xe9, 0x23, 0xc6, 0xd1,
+ 0x29, 0x5c, 0xe4, 0xc4, 0x97, 0xc6, 0x04, 0xc3,
+ 0xd8, 0x6c, 0xb6, 0x73, 0x13, 0x20, 0x0c, 0x98,
+ 0xde, 0x28, 0xe0, 0x74, 0x75, 0x58, 0xff, 0x67,
+ 0xe8, 0x6d, 0x03, 0x41, 0xb4, 0xe3, 0xda, 0xe4,
+ 0xc7, 0x54, 0x66, 0x8c, 0x02, 0x8c, 0x10, 0xbe,
+ 0x6c, 0xac, 0x92, 0xe9, 0x73, 0x57, 0x89, 0xc6,
+ 0x8d, 0xa0, 0x61, 0xe3, 0x5c, 0x30, 0x92, 0xa8,
+ 0xc3, 0xf7, 0xb3, 0xf2, 0x86, 0xd3, 0xae, 0x5d,
+ 0x91, 0xba, 0x06, 0x51, 0x54, 0xd9, 0x83, 0xf5,
+ 0xd9, 0x9b, 0xd9, 0x8b, 0x73, 0xbf, 0x9a, 0x94,
+ 0x45, 0x39, 0xc4, 0x3a, 0x35, 0xea, 0xf9, 0x25,
+ 0x7d, 0x6a, 0xee, 0x78, 0xa7, 0x50, 0x50, 0x1d,
+ 0x7e, 0xaf, 0x09, 0xf1, 0x86, 0xae, 0x93, 0x69,
+ 0xd5, 0x41, 0x1e, 0x87, 0xc3, 0x41, 0xb8, 0xc5,
+ 0x4f, 0x2d, 0x90, 0x4f, 0xa8, 0xe6, 0xbc, 0xc6,
+ 0xbf, 0x59, 0x32, 0x97, 0xc7, 0x30, 0x2d, 0xea,
+ 0xdd, 0x25, 0x5a, 0x1e, 0x38, 0x93, 0x58, 0x12,
+ 0x2f, 0x98, 0x31, 0x30, 0xa8, 0xfa, 0x35, 0x61,
+ 0x11, 0x63, 0x4c, 0xf8, 0x72, 0x3f, 0xaf, 0xd5,
+ 0xa7, 0xf3, 0x92, 0x35, 0xb5, 0x17, 0x15, 0x3d,
+ 0x78, 0x4a, 0x47, 0xf7, 0xfa, 0xa2, 0xff, 0x36,
+ 0x61, 0x5b, 0x18, 0x77, 0xf0, 0xd5, 0x76, 0xee,
+ 0x2b, 0x8a, 0x18, 0xe3, 0x54, 0xb3, 0x1f, 0x29,
+ 0x0e, 0xa7, 0x3d, 0x75, 0x5b, 0x2b, 0x68, 0x13,
+ 0x89, 0xb3, 0xc7, 0x42, 0x13, 0x3d, 0x72, 0x6c,
+ 0xb5, 0xc9, 0x0b, 0xea, 0xbe, 0xc2, 0x0e, 0x44,
+ 0xcd, 0x22, 0x63, 0x01, 0xd0, 0x1c, 0x93, 0x82,
+ 0x3f, 0x7b, 0xa9, 0x72, 0xd5, 0x90, 0xe6, 0xac,
+ 0x9c, 0x3d, 0x56, 0x3a, 0x8d, 0x0e, 0xd6, 0x8e,
+ 0x8e, 0x52, 0xd0, 0x81, 0x15, 0xca, 0xf2, 0x09,
+ 0xc0, 0xfe, 0x94, 0x1d, 0x22, 0x55, 0x11, 0xb5,
+ 0x2c, 0x48, 0x22, 0xa2, 0x60, 0xf2, 0xc2, 0xa2,
+ 0x0b, 0x0c, 0x4b, 0xac, 0xbf, 0x40, 0x6e, 0xfd,
+ 0x97, 0x10, 0xcb, 0x04, 0x3b, 0xc4, 0x5f, 0x7c,
+ 0x6c, 0xf2, 0xb5, 0x48, 0xb8, 0xfa, 0x5f, 0x32,
+ 0xe4, 0xef, 0xc9, 0xad, 0x2d, 0xb5, 0xac, 0xc5,
+ 0xee, 0xf7, 0xb2, 0x81, 0xa7, 0xe9, 0x9c, 0xf9,
+ 0xc9, 0xd1, 0x14, 0xc0, 0xa9, 0x1e, 0xd8, 0x50,
+ 0x44, 0x8a, 0x02, 0xf2, 0xad, 0x6d, 0xe4, 0xa1,
+ 0x7e, 0x88, 0xd3, 0x2d, 0xad, 0x75, 0x17, 0x35,
+ 0xe6, 0x8a, 0xf5, 0xd7, 0x35, 0x1a, 0xb4, 0x13,
+ 0x36, 0x8a, 0x0f, 0xa3, 0x99, 0x57, 0x7f, 0x85,
+ 0x99, 0x6c, 0xae, 0xc5, 0xe7, 0x85, 0xff, 0xb5,
+ 0xb0, 0xad, 0x87, 0x03, 0x41, 0x11, 0xc5, 0x16,
+ 0x2d, 0x95, 0x1d, 0x26, 0xaf, 0x43, 0xa6, 0x76,
+ 0xae, 0x17, 0xca, 0x10, 0x65, 0x64, 0xc6, 0x43,
+ 0x4a, 0x2c, 0x7b, 0x55, 0xde, 0x3d, 0x93, 0xc5,
+ 0x46, 0x17, 0xc1, 0xc2, 0xd7, 0xcb, 0xec, 0xc7,
+ 0x8e, 0xce, 0x0c, 0x65, 0x27, 0x0d, 0x0e, 0xaf,
+ 0x76, 0x65, 0xea, 0xcd, 0xe9, 0x39, 0xe3, 0xd4,
+ 0xbc, 0x6f, 0xc3, 0x87, 0xca, 0x9c, 0x4c, 0xc9,
+ 0xbb, 0x38, 0xa8, 0xc7, 0xea, 0xc0, 0xcf, 0x9b,
+ 0x33, 0xfd, 0xfe, 0x50, 0x1b, 0x86, 0xeb, 0x1f,
+ 0x75, 0xb0, 0x61, 0xd9, 0xb4, 0xfc, 0xb2, 0x5a,
+ 0x2f, 0xcb, 0x11, 0xd0, 0x2a, 0xa2, 0x7b, 0x4b,
+ 0x65, 0x0c, 0x2f, 0x43, 0xea, 0xe2, 0x4d, 0xd4,
+ 0x11, 0xf9, 0x94, 0x24, 0xbd, 0x89, 0x1a, 0xb9,
+ 0x86, 0x81, 0xca, 0x39, 0x66, 0xc3, 0xdb, 0x7a,
+ 0x72, 0xd8, 0xe2, 0x5e, 0x80, 0xf9, 0x19, 0x0b,
+ 0x7c, 0xb3, 0xfe, 0xeb, 0x81, 0x93, 0x7e, 0x54,
+ 0xd1, 0xdd, 0x0d, 0x74, 0x43, 0x8b, 0x0d, 0x11,
+ 0xd4, 0xe8, 0x32, 0xf1, 0xf4, 0x02, 0xcc, 0xac,
+ 0x2f, 0x1e, 0xd7, 0x68, 0xf1, 0x30, 0xbd, 0xe2,
+ 0x58, 0xf4, 0x97, 0xe5, 0x0f, 0xb6, 0x38, 0xd1,
+ 0xa3, 0x49, 0x4b, 0x0e, 0x4e, 0x88, 0x3f, 0x2b,
+ 0x0e, 0xb6, 0x96, 0xc9, 0x14, 0xb5, 0x8d, 0xd3,
+ 0xc8, 0xaa, 0xe0, 0x2c, 0x11, 0x83, 0x09, 0x9b,
+ 0xfe, 0x91, 0x5f, 0xfc, 0xc5, 0x01, 0x36, 0x20,
+ 0x44, 0x89, 0x5d, 0x2a, 0x40, 0x62, 0xd3, 0x0d,
+ 0x2a, 0x2d, 0x05, 0xca, 0xce, 0xf1, 0x25, 0x79,
+ 0x5d, 0x8b, 0xe8, 0x54, 0x97, 0x9a, 0x2a, 0x7d,
+ 0x0d, 0x38, 0x2e, 0x37, 0xf1, 0xf8, 0xe9, 0xf3,
+ 0x11, 0xe9, 0x94, 0x31, 0x2a, 0x7b, 0x9f, 0xa7,
+ 0xfe, 0x9b, 0x3f, 0x04, 0xf0, 0x22, 0xec, 0xc7,
+ 0x6c, 0x6e, 0x6f, 0x1f, 0x8b, 0xb7, 0xd0, 0xdc,
+ 0xec, 0xe5, 0xbd, 0xe0, 0x3e, 0x18, 0x20, 0x2a,
+ 0x55, 0xe7, 0xf4, 0xcb, 0xaf, 0x48, 0x39, 0x36,
+ 0x4d, 0xa2, 0xac, 0x41, 0x32, 0x12, 0x7b, 0x29,
+ 0xdc, 0x28, 0x3d, 0x05, 0xa7, 0x32, 0xbe, 0x67,
+ 0x03, 0x26, 0x4f, 0x5a, 0x3f, 0x4b, 0xf4, 0xf4,
+ 0x17, 0x67, 0xb9, 0x21, 0x18, 0x36, 0xf7, 0x63,
+ 0xa7, 0x7e, 0x4f, 0x5f, 0x43, 0x83, 0x6f, 0x70,
+ 0x01, 0xec, 0x0c, 0x15, 0x28, 0x14, 0x49, 0xc3,
+ 0xf8, 0xa1, 0xa0, 0xed, 0x04, 0x59, 0x22, 0xbd,
+ 0xdc, 0x8b, 0xe2, 0x7e, 0x43, 0xf3, 0x46, 0x7b,
+ 0x5c, 0xa7, 0x91, 0xf7, 0xb0, 0xd4, 0x6d, 0x81,
+ 0x23, 0x46, 0xdc, 0x3a, 0x23, 0x99, 0x3f, 0x02,
+ 0xce, 0x4f, 0x9a, 0xfc, 0x50, 0x6d, 0x2c, 0x80,
+ 0xf0, 0xc6, 0x5e, 0x60, 0x48, 0x7b, 0x40, 0x0b,
+ 0xca, 0x1e, 0xef, 0x36, 0xf0, 0xfa, 0x5d, 0xcd,
+ 0x83, 0x8d, 0x53, 0xb8, 0xa8, 0x6c, 0x5f, 0x68,
+ 0xcc, 0xb7, 0x77, 0x05, 0xaa, 0x02, 0xec, 0x32,
+ 0x8b, 0xe9, 0xb5, 0xdf, 0xd1, 0xab, 0x03, 0x90,
+ 0xec, 0x5d, 0x0c, 0xea, 0xf5, 0xa4, 0xc7, 0x48,
+ 0xbf, 0x54, 0xc0, 0xb6, 0xaf, 0x3a, 0x3c, 0xe9,
+ 0xcb, 0x87, 0xde, 0x75, 0xf2, 0xbb, 0x12, 0x6c,
+ 0xdf, 0x62, 0x36, 0xca, 0x27, 0x6c, 0x6e, 0xfd,
+ 0x8e, 0xad, 0xf0, 0x38, 0x22, 0x61, 0xbf, 0xbd,
+ 0x14, 0x4d, 0x17, 0xf1, 0xb6, 0x16, 0x12, 0xce,
+ 0x43, 0x3b, 0xc8, 0x35, 0x7b, 0x09, 0x7d, 0x3f,
+ 0x8e, 0xdd, 0xdd, 0x89, 0x0d, 0x55, 0xec, 0xad,
+ 0x79, 0x50, 0xfb, 0x08, 0x53, 0x9d, 0x08, 0x2d,
+ 0xb3, 0x4b, 0xd7, 0x2a, 0xbf, 0xb5, 0xa2, 0xa4,
+ 0x6f, 0x9c, 0x04, 0x41, 0xe3, 0xe4, 0xaf, 0xc3,
+ 0xec, 0xcf, 0xa0, 0xc0, 0x06, 0xc2, 0x3e, 0x24,
+ 0x95, 0x37, 0x11, 0xaf, 0x98, 0xa7, 0x98, 0x22,
+ 0x68, 0x00, 0xe7, 0x66, 0xf4, 0xf2, 0x56, 0x6b,
+ 0x6b, 0x6b, 0x6c, 0x7c, 0x58, 0x00, 0xa4, 0x69,
+ 0xe3, 0xd5, 0x65, 0x88, 0x04, 0xc6, 0xd6, 0x10,
+ 0xb3, 0x6e, 0xdf, 0x16, 0xb3, 0x5f, 0x40, 0x38,
+ 0xf3, 0x68, 0x61, 0xd8, 0x97, 0x4b, 0x0f, 0x6a,
+ 0xc0, 0x47, 0x4f, 0xeb, 0xd3, 0xda, 0x16, 0xdf,
+ 0xf5, 0x4e, 0xc1, 0x0e, 0xcf, 0x27, 0xf2, 0x3d,
+ 0x35, 0xfc, 0x70, 0xfd, 0x52, 0xb8, 0x56, 0xcf,
+ 0x8b, 0x14, 0x30, 0x17, 0x2e, 0x1e, 0x65, 0x0e,
+ 0xc9, 0x3d, 0x52, 0xcf, 0xef, 0x4b, 0x94, 0xa0,
+ 0x80, 0x3e, 0x7e, 0x55, 0xaf, 0x06, 0x8a, 0x13,
+ 0xef, 0x34, 0x11, 0x95, 0xf8, 0x6f, 0x6b, 0xde,
+ 0xc6, 0x75, 0x17, 0x10, 0x5e, 0x73, 0x14, 0x14,
+ 0x7b, 0xad, 0xa0, 0xe6, 0x52, 0xce, 0xfd, 0xf1,
+ 0x20, 0x42, 0x22, 0x98, 0x00, 0x5c, 0x5a, 0xa1,
+ 0x47, 0x5e, 0xa3, 0x59, 0x16, 0x43, 0x45, 0x8d,
+ 0xa5, 0x3b, 0x25, 0x65, 0xdc, 0xeb, 0xb7, 0xbf,
+ 0x03, 0x77, 0xf7, 0xca, 0x7f, 0x6e, 0xd0, 0x8c,
+ 0xf5, 0xf9, 0x8e, 0x87, 0x71, 0x9d, 0x82, 0xc5,
+ 0x5e, 0x97, 0x12, 0x3d, 0x6e, 0x95, 0xca, 0xe2,
+ 0xdf, 0x87, 0xa3, 0x05, 0x7f, 0x72, 0x88, 0xc2,
+ 0xbd, 0xfa, 0x44, 0xde, 0x86, 0x67, 0xed, 0xbf,
+ 0x53, 0x98, 0xd5, 0xb6, 0x01, 0xc1, 0x75, 0x58,
+ 0x6f, 0x16, 0x0d, 0x78, 0x8f, 0x8d, 0x95, 0x95,
+ 0x44, 0x46, 0x6d, 0x93, 0xfb, 0xfa, 0x59, 0xd6,
+ 0x9d, 0x9b, 0x02, 0x1e, 0xf7, 0xdb, 0xfd, 0x0f,
+ 0x48, 0xa5, 0xaa, 0x76, 0xc3, 0xfd, 0xd3, 0x4d,
+ 0x0f, 0x70, 0x2e, 0x01, 0x1a, 0x55, 0xe8, 0x25,
+ 0xed, 0x73, 0xe8, 0x44, 0xee, 0x32, 0x1f, 0xfc,
+ 0x7e, 0xd5, 0xc4, 0x17, 0x42, 0x59, 0x34, 0xac,
+ 0x44, 0x68, 0x4b, 0x64, 0x6e, 0xc2, 0xec, 0x5a,
+ 0x16, 0x11, 0xe8, 0xc0, 0x06, 0x03, 0xcf, 0xc9,
+ 0x90, 0xe9, 0x6e, 0xae, 0xe7, 0x62, 0x5c, 0x08,
+ 0x39, 0x59, 0xf8, 0xc3, 0x83, 0xa1, 0xde, 0xcd,
+ 0xc9, 0x65, 0x83, 0x1c, 0x80, 0x3e, 0x98, 0x05,
+ 0xe1, 0x0f, 0x4e, 0x0f, 0xf8, 0x62, 0x51, 0x42,
+ 0x01, 0xd0, 0x86, 0x17, 0xc2, 0x44, 0xef, 0x01,
+ 0xfd, 0xe5, 0x6c, 0x6a, 0x04, 0xd1, 0x2d, 0x38,
+ 0x49, 0xf0, 0xe3, 0xd6, 0x2e, 0x0b, 0xe0, 0xe4,
+ 0xd9, 0x1b, 0xb3, 0xc6, 0x6a, 0x3e, 0x2d, 0x7c,
+ 0xc2, 0x86, 0x20, 0x46, 0x1d, 0xef, 0x14, 0xe9,
+ 0xea, 0x8e, 0x9c, 0x45, 0xd0, 0x3f, 0x80, 0x0b,
+ 0x24, 0x5f, 0x1c, 0xa4, 0x3b, 0xdb, 0xbf, 0xa2,
+ 0x6c, 0xeb, 0x7f, 0x3c, 0x5d, 0x23, 0x08, 0x6c,
+ 0x21, 0xc5, 0xba, 0xc0, 0x98, 0xd2, 0x46, 0x5a,
+ 0x32, 0x52, 0x58, 0x3f, 0x23, 0xfd, 0xeb, 0x89,
+ 0x3e, 0x12, 0x9a, 0xa6, 0x8e, 0x17, 0x01, 0xa1,
+ 0x0f, 0x26, 0x1a, 0x4a, 0x16, 0x0e, 0x29, 0x55,
+ 0xb3, 0xb6, 0x85, 0xd9, 0x38, 0x42, 0x70, 0x8d,
+ 0x0a, 0xd5, 0x9e, 0x3c, 0xf7, 0x1d, 0x40, 0x45,
+ 0x39, 0x6c, 0x4c, 0x78, 0xc4, 0xe7, 0x7c, 0x1c,
+ 0x35, 0x0a, 0x1f, 0xc7, 0x2a, 0x5a, 0x7b, 0x37,
+ 0xf6, 0xa2, 0x97, 0x1f, 0x93, 0xa2, 0x9f, 0x8e,
+ 0xf4, 0xd2, 0xd3, 0x94, 0x9e, 0x33, 0xa4, 0xf8,
+ 0x79, 0x79, 0xab, 0xd0, 0x03, 0x16, 0x6b, 0xd8,
+ 0x06, 0xac, 0x0c, 0x20, 0x28, 0xff, 0x98, 0xa1,
+ 0xa1, 0x9b, 0x0f, 0x73, 0x31, 0xdd, 0x32, 0xee,
+ 0x0d, 0x4a, 0x73, 0x4e, 0xf9, 0x35, 0x3d, 0x5b,
+ 0x9e, 0xbe, 0xde, 0xe3, 0xed, 0x20, 0x2d, 0x53,
+ 0x83, 0x86, 0xd6, 0xde, 0x17, 0x60, 0x62, 0x65,
+ 0x76, 0x8e, 0xa9, 0xaa, 0xb6, 0xcf, 0xde, 0xe3,
+ 0xec, 0xfd, 0x43, 0x5a, 0x97, 0xa2, 0xcc, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x05, 0x0d, 0x14, 0x22, 0x27, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa65",
+ .pk_len = DILITHIUM65_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM65_PUBLICKEYBYTES]){
+ 0x25, 0x5b, 0x8f, 0x59, 0xb9, 0x03, 0xe7, 0x6d,
+ 0x1b, 0x3d, 0xa3, 0x94, 0xea, 0x35, 0x79, 0x55,
+ 0x3f, 0xed, 0x5c, 0xfc, 0x93, 0x5d, 0x95, 0x30,
+ 0x2c, 0x68, 0xee, 0xc5, 0x24, 0x7e, 0xec, 0xb9,
+ 0x70, 0xf5, 0xd9, 0x76, 0xbb, 0x65, 0x90, 0xef,
+ 0xcf, 0xf1, 0xb4, 0x69, 0xae, 0xf0, 0xcd, 0xbd,
+ 0xf0, 0x2f, 0x69, 0xda, 0xec, 0xf7, 0x6a, 0x36,
+ 0xba, 0x86, 0xf6, 0x22, 0xa5, 0x9d, 0x49, 0x02,
+ 0xc2, 0x34, 0xd5, 0xdc, 0x0f, 0xa2, 0x44, 0x0d,
+ 0x37, 0x21, 0x29, 0xa5, 0x88, 0xd9, 0x19, 0xdd,
+ 0x2f, 0x6e, 0x39, 0x37, 0xe5, 0x53, 0x03, 0x22,
+ 0xc4, 0xde, 0xd6, 0xe9, 0xa8, 0x36, 0x28, 0xa2,
+ 0x13, 0x9f, 0x76, 0x8f, 0x2d, 0xc2, 0xe7, 0x3f,
+ 0x3a, 0x48, 0x07, 0x17, 0x4d, 0x39, 0xfd, 0x7b,
+ 0xa4, 0x85, 0x55, 0x6a, 0x0c, 0xfd, 0xcb, 0x3e,
+ 0xab, 0x95, 0x1a, 0x7d, 0xda, 0xf9, 0x75, 0xc9,
+ 0x43, 0x86, 0xba, 0xf8, 0xae, 0xae, 0xee, 0x27,
+ 0x1e, 0x08, 0x0e, 0x8d, 0x55, 0xaa, 0xc6, 0x96,
+ 0xe3, 0xa2, 0x40, 0x7b, 0x8f, 0xe3, 0x59, 0x46,
+ 0xa9, 0x3a, 0x38, 0xa6, 0x01, 0x8f, 0xae, 0xdb,
+ 0xa3, 0x3b, 0x09, 0xb2, 0x6b, 0x05, 0x18, 0x13,
+ 0xf5, 0xd8, 0xca, 0x51, 0x2b, 0xb5, 0x28, 0x36,
+ 0xe2, 0xa6, 0x53, 0x52, 0x41, 0x47, 0xd7, 0x4a,
+ 0xa1, 0x1a, 0x1d, 0x91, 0x8b, 0x61, 0x86, 0x7e,
+ 0x22, 0x76, 0xcb, 0x30, 0x6c, 0x67, 0xb3, 0x8e,
+ 0x2e, 0xaf, 0x93, 0xe2, 0x3b, 0x0a, 0xd4, 0x22,
+ 0xc7, 0xa5, 0xbc, 0x4c, 0xec, 0xd3, 0x38, 0x86,
+ 0x22, 0x78, 0xdf, 0xa1, 0xa7, 0x2b, 0x80, 0xfa,
+ 0x43, 0xd5, 0x47, 0xb9, 0x6a, 0xaf, 0xc6, 0x7e,
+ 0x9a, 0x2d, 0xb8, 0x17, 0x58, 0x2f, 0xfd, 0x77,
+ 0x37, 0x18, 0xf3, 0x9f, 0x84, 0xca, 0x6e, 0x00,
+ 0x4b, 0xba, 0xa5, 0xe7, 0x0f, 0x87, 0x86, 0x31,
+ 0xe9, 0xd1, 0x41, 0x53, 0x28, 0x8f, 0x2f, 0x46,
+ 0x96, 0x0b, 0x6d, 0x3e, 0x6d, 0x20, 0x4c, 0xb0,
+ 0x43, 0x74, 0x44, 0xdd, 0xe9, 0x33, 0x94, 0x1c,
+ 0x3b, 0x69, 0x49, 0x15, 0x36, 0xbd, 0x6c, 0xb7,
+ 0x0d, 0xb5, 0xf5, 0xfb, 0x23, 0x19, 0x0e, 0x6a,
+ 0x45, 0x65, 0x1c, 0xa7, 0x66, 0x48, 0xb5, 0xa2,
+ 0x52, 0x91, 0x43, 0x7b, 0x20, 0x21, 0x5e, 0x16,
+ 0xc2, 0xba, 0x78, 0xfa, 0xd3, 0x88, 0xb8, 0x64,
+ 0x08, 0x17, 0x89, 0x9c, 0x4f, 0xfa, 0xb9, 0xfe,
+ 0x3e, 0x39, 0x6a, 0x28, 0xd2, 0x28, 0x95, 0xab,
+ 0x54, 0xde, 0xfb, 0x76, 0x32, 0x96, 0xb3, 0xbb,
+ 0x9f, 0xef, 0x0b, 0x6b, 0xe8, 0xd7, 0x17, 0x4d,
+ 0x5e, 0x9b, 0x25, 0x3f, 0x3e, 0x6a, 0x93, 0xa1,
+ 0xe9, 0x09, 0xc2, 0x34, 0x8e, 0x2f, 0xe9, 0x19,
+ 0x69, 0xc2, 0xcb, 0x5c, 0x29, 0x8d, 0x4d, 0x81,
+ 0x01, 0xff, 0xde, 0x02, 0x7d, 0xeb, 0xc2, 0x6e,
+ 0x15, 0x78, 0xe8, 0x10, 0x0a, 0x1a, 0x91, 0x96,
+ 0x56, 0x24, 0x35, 0x74, 0x3d, 0x02, 0x50, 0x13,
+ 0xd8, 0x1b, 0x94, 0xcd, 0xc8, 0x60, 0xc8, 0x6f,
+ 0x28, 0x77, 0x3b, 0x76, 0x86, 0xa0, 0x39, 0xaa,
+ 0x3a, 0x3e, 0x15, 0x47, 0xa0, 0x3b, 0xc3, 0xec,
+ 0xe2, 0x15, 0x84, 0xba, 0xdf, 0x1d, 0x42, 0x5b,
+ 0xcd, 0x97, 0x51, 0x92, 0x15, 0x64, 0xd7, 0x5c,
+ 0xe2, 0xe2, 0x60, 0xe9, 0xbe, 0xdc, 0x1c, 0x12,
+ 0x62, 0x15, 0x6b, 0xe6, 0xf1, 0x23, 0xb8, 0x81,
+ 0x87, 0x15, 0xf4, 0x9a, 0x35, 0xd7, 0x18, 0x64,
+ 0x92, 0xc4, 0xec, 0xcf, 0x5c, 0xd4, 0xf7, 0x6a,
+ 0xf9, 0xe6, 0x7e, 0x71, 0x3d, 0x3e, 0xd0, 0x17,
+ 0x72, 0x28, 0xd3, 0x22, 0x97, 0x14, 0x5d, 0x90,
+ 0xca, 0x0b, 0x4f, 0x2c, 0x18, 0xc0, 0x45, 0x39,
+ 0x87, 0x4f, 0xd9, 0x74, 0xef, 0x9f, 0xc7, 0xc7,
+ 0x59, 0x04, 0x62, 0x31, 0xcc, 0x37, 0x78, 0x76,
+ 0xdd, 0xc6, 0x9b, 0xff, 0xf7, 0x77, 0x87, 0x6a,
+ 0xfb, 0x7b, 0xb0, 0xdf, 0x64, 0x75, 0xdb, 0xee,
+ 0x2b, 0x45, 0x45, 0x45, 0x5b, 0xed, 0x89, 0xd9,
+ 0xfe, 0x71, 0xc6, 0xd5, 0xc7, 0x75, 0xe7, 0x2f,
+ 0x4e, 0x5b, 0xa2, 0xcf, 0x07, 0xbe, 0x4b, 0x5e,
+ 0x3a, 0x76, 0x9b, 0x59, 0x8f, 0x1e, 0xac, 0x21,
+ 0xf8, 0x90, 0x57, 0x3e, 0x25, 0x4b, 0x8c, 0x9d,
+ 0x4f, 0xe8, 0x14, 0xfd, 0xcb, 0xaa, 0x86, 0x6a,
+ 0x0c, 0x5c, 0x20, 0xa1, 0x03, 0xe4, 0x69, 0x84,
+ 0xb1, 0x38, 0x16, 0x92, 0xd8, 0xd3, 0x68, 0x7e,
+ 0x8e, 0x85, 0x25, 0x83, 0x38, 0x3a, 0xe2, 0x3d,
+ 0x76, 0x31, 0xbf, 0x4d, 0x74, 0xc0, 0xa6, 0xa2,
+ 0xeb, 0xaa, 0x8e, 0x70, 0xa6, 0x6f, 0x67, 0xd4,
+ 0xb4, 0x81, 0xd6, 0xbc, 0xe6, 0xda, 0xa2, 0xd1,
+ 0x93, 0xc6, 0xf6, 0x54, 0x05, 0x4c, 0x51, 0x1e,
+ 0x97, 0xc9, 0x82, 0x9f, 0x45, 0x6d, 0x67, 0x17,
+ 0xc0, 0x6c, 0xb0, 0x7a, 0x83, 0xeb, 0xdc, 0xb0,
+ 0xf0, 0x09, 0x4f, 0xed, 0xbc, 0xe0, 0xf8, 0x26,
+ 0xf4, 0xe3, 0x2a, 0xdb, 0xef, 0xcc, 0xf1, 0x3f,
+ 0x71, 0xc1, 0x07, 0x3f, 0x19, 0x8a, 0xe5, 0xb3,
+ 0x33, 0x7c, 0x7a, 0xa4, 0x89, 0x57, 0x46, 0x17,
+ 0x5d, 0x2c, 0x91, 0xc3, 0xac, 0x34, 0x49, 0x14,
+ 0x73, 0x7c, 0x01, 0x32, 0xf2, 0x20, 0x11, 0x18,
+ 0x95, 0xc2, 0x36, 0x63, 0x61, 0xd6, 0xba, 0x65,
+ 0x62, 0x9a, 0xcc, 0xed, 0x03, 0x8a, 0xd0, 0x88,
+ 0xb2, 0x3e, 0xdc, 0x82, 0xd0, 0x29, 0xd2, 0xd3,
+ 0xcb, 0x5b, 0x96, 0xa1, 0x34, 0xde, 0xd2, 0x64,
+ 0xc7, 0x40, 0xcb, 0x1f, 0xd6, 0x63, 0xe8, 0x52,
+ 0xd7, 0xbd, 0x42, 0xdc, 0x0d, 0x1c, 0x98, 0xa5,
+ 0x03, 0x73, 0x96, 0xae, 0x1c, 0xa4, 0x7c, 0x45,
+ 0x4b, 0x03, 0x7f, 0xe3, 0x10, 0xe0, 0xa4, 0x10,
+ 0x9f, 0x2d, 0x3b, 0x1f, 0x75, 0x00, 0x90, 0xf0,
+ 0x4a, 0x49, 0x68, 0xbf, 0xa5, 0xf2, 0x79, 0xa4,
+ 0xaf, 0x08, 0xb0, 0xbf, 0xed, 0x0c, 0x5e, 0xf2,
+ 0x6c, 0xfb, 0xcf, 0x7d, 0xcd, 0xbf, 0xf2, 0x8d,
+ 0x51, 0x32, 0xd2, 0x18, 0xfb, 0xfb, 0x8c, 0xf4,
+ 0x6e, 0x99, 0x43, 0x46, 0x51, 0x0f, 0x0b, 0x99,
+ 0xd4, 0x9f, 0x01, 0xf3, 0x14, 0xb5, 0xdc, 0xad,
+ 0x41, 0x6f, 0x23, 0x90, 0x44, 0xab, 0x30, 0x97,
+ 0xf7, 0x43, 0xd2, 0x7c, 0x60, 0xbc, 0x5b, 0x9b,
+ 0x8a, 0x28, 0x59, 0x34, 0xd3, 0x3e, 0xb9, 0x68,
+ 0x7e, 0x9a, 0x2e, 0xe0, 0x5f, 0x5b, 0x3c, 0xe5,
+ 0x91, 0x02, 0xe1, 0xdd, 0x29, 0x62, 0x1e, 0x14,
+ 0x2c, 0x01, 0xe5, 0x4f, 0x18, 0x04, 0x9e, 0x0f,
+ 0xb0, 0x60, 0x7a, 0x70, 0x1c, 0x8c, 0x45, 0xa1,
+ 0x1b, 0xb7, 0x42, 0x6b, 0xb6, 0x79, 0xb6, 0x1a,
+ 0x26, 0x6f, 0xdb, 0x7e, 0xd6, 0xfa, 0xbe, 0x18,
+ 0xf1, 0xd1, 0x81, 0xab, 0x8d, 0x92, 0x3d, 0x65,
+ 0x30, 0x48, 0x7a, 0x5b, 0x95, 0x2f, 0x98, 0xe3,
+ 0x75, 0x29, 0x26, 0xd0, 0x9d, 0x6f, 0x45, 0x28,
+ 0x93, 0x1c, 0xbd, 0x8c, 0x5c, 0x8d, 0x52, 0xac,
+ 0xc3, 0xaa, 0x48, 0x85, 0xfc, 0x08, 0x15, 0x7e,
+ 0x98, 0xfb, 0xce, 0x40, 0x33, 0x16, 0xfa, 0xca,
+ 0x63, 0xfb, 0x21, 0xcf, 0x6c, 0xab, 0x7f, 0xf8,
+ 0xb3, 0x57, 0xab, 0x84, 0x23, 0x0b, 0x4c, 0x90,
+ 0x2b, 0x29, 0xe3, 0xa3, 0x9b, 0x04, 0x54, 0xda,
+ 0xd2, 0x34, 0x11, 0xdd, 0xf3, 0x31, 0x68, 0x17,
+ 0xd0, 0x5a, 0xc5, 0xe4, 0xf6, 0x70, 0xeb, 0xfa,
+ 0xc9, 0xd3, 0xa6, 0x6e, 0x26, 0x41, 0x2c, 0x9b,
+ 0x21, 0xbd, 0x83, 0xd6, 0x71, 0xf1, 0x1b, 0x6d,
+ 0x3b, 0xe9, 0x39, 0xac, 0x8b, 0xbd, 0x2f, 0xb4,
+ 0xe3, 0xc9, 0xfb, 0xe1, 0x71, 0xd2, 0xee, 0x7b,
+ 0x4e, 0x40, 0xde, 0xde, 0xaf, 0x9f, 0xff, 0xfe,
+ 0x37, 0xd8, 0x5f, 0xbc, 0x6c, 0xc6, 0xc5, 0x21,
+ 0xd6, 0x05, 0xc9, 0x23, 0x55, 0xb3, 0x33, 0xe1,
+ 0x06, 0xf6, 0xff, 0xa9, 0x8d, 0x04, 0xec, 0x6f,
+ 0xb2, 0x64, 0x01, 0x09, 0x40, 0xaf, 0x83, 0xc4,
+ 0xd5, 0x73, 0xbd, 0xb8, 0xe1, 0xe7, 0xb9, 0x5e,
+ 0x3c, 0x57, 0x1f, 0xa2, 0xe6, 0xb0, 0x79, 0x49,
+ 0x14, 0x49, 0x69, 0xcf, 0x6e, 0x77, 0x05, 0xeb,
+ 0xf8, 0x4c, 0x92, 0xf3, 0xda, 0x08, 0xf8, 0xdb,
+ 0x44, 0x48, 0x73, 0xbf, 0xf0, 0xa9, 0x88, 0x49,
+ 0x07, 0x8f, 0x3a, 0x6b, 0x13, 0x2c, 0xd2, 0x24,
+ 0xc1, 0x6a, 0x1f, 0x25, 0x70, 0x7d, 0x29, 0xc5,
+ 0x32, 0x84, 0x4a, 0xc4, 0xe6, 0x9c, 0x46, 0xa8,
+ 0x99, 0x3b, 0x2d, 0x80, 0x5f, 0x20, 0xaa, 0x3c,
+ 0x60, 0x52, 0x7f, 0x67, 0x9e, 0x87, 0xb9, 0x7b,
+ 0x57, 0xa5, 0x97, 0xbb, 0x70, 0x29, 0x9f, 0x5c,
+ 0xd5, 0x76, 0xd2, 0x99, 0xab, 0x9e, 0xb9, 0xbd,
+ 0x67, 0x8a, 0xda, 0x91, 0x9e, 0xea, 0xdf, 0x64,
+ 0x09, 0x08, 0x4d, 0xad, 0xb7, 0x8f, 0x5a, 0x15,
+ 0x27, 0xaf, 0xc2, 0xf7, 0xeb, 0xf4, 0x39, 0x42,
+ 0xdc, 0xe5, 0x6a, 0x5e, 0xcc, 0xe6, 0x77, 0x4e,
+ 0x0b, 0x20, 0x48, 0x1d, 0x65, 0x4d, 0xd1, 0xe1,
+ 0x01, 0x85, 0x52, 0x32, 0x7d, 0x51, 0x2f, 0x0e,
+ 0x00, 0xe3, 0x40, 0x70, 0x26, 0x46, 0xa6, 0xbf,
+ 0xc8, 0x85, 0x0d, 0xac, 0x9f, 0x8d, 0x79, 0x9c,
+ 0x6f, 0x58, 0x96, 0xe9, 0xe5, 0xb2, 0xff, 0x4a,
+ 0xde, 0x91, 0x0b, 0x3d, 0x85, 0x69, 0xa7, 0xa8,
+ 0x1a, 0xa8, 0x21, 0x3e, 0x8d, 0xf8, 0xba, 0x5a,
+ 0xc6, 0xd7, 0x3a, 0xcb, 0x04, 0x0e, 0xdf, 0x36,
+ 0xeb, 0xbc, 0xca, 0x59, 0x24, 0x48, 0xe7, 0xec,
+ 0x14, 0x7c, 0x7d, 0xb7, 0x26, 0x98, 0x1a, 0x85,
+ 0xc1, 0x6c, 0x90, 0x9f, 0x4b, 0x90, 0x7c, 0x6d,
+ 0xa6, 0xba, 0x58, 0xb9, 0xa3, 0x7f, 0x7f, 0x88,
+ 0xce, 0xb4, 0x40, 0x73, 0xa7, 0x72, 0x3a, 0xbc,
+ 0xea, 0x99, 0xef, 0x04, 0xbd, 0x08, 0xc5, 0x0d,
+ 0x6e, 0x68, 0x2f, 0x33, 0x05, 0x5b, 0xeb, 0x6a,
+ 0xeb, 0x80, 0x30, 0xf0, 0x7d, 0xad, 0x7b, 0x80,
+ 0x7c, 0xb9, 0x13, 0x0c, 0x08, 0x74, 0x5b, 0x7c,
+ 0xec, 0x8a, 0xdb, 0xe8, 0xe0, 0xea, 0x70, 0xa4,
+ 0x9e, 0x88, 0x06, 0xd4, 0xde, 0x8e, 0xb8, 0x93,
+ 0xa3, 0x89, 0x2c, 0xe5, 0x07, 0xbb, 0x81, 0x88,
+ 0x7f, 0x9e, 0x1d, 0xb2, 0x8e, 0x8d, 0x59, 0xae,
+ 0xe4, 0xcf, 0x2d, 0x2f, 0xdf, 0x52, 0xad, 0x7c,
+ 0xe8, 0x73, 0x0f, 0xee, 0xcc, 0xa0, 0x67, 0x88,
+ 0x61, 0xc0, 0xcc, 0x06, 0xe0, 0x48, 0xee, 0x93,
+ 0xf6, 0x56, 0xbe, 0x8a, 0x23, 0x1b, 0x86, 0x7c,
+ 0x9a, 0xaa, 0x57, 0x83, 0x03, 0x6c, 0x5c, 0x08,
+ 0xb2, 0xea, 0x1b, 0x98, 0xa5, 0x4d, 0xb3, 0x6b,
+ 0x27, 0x52, 0xff, 0xbd, 0xb7, 0x53, 0x14, 0x8d,
+ 0xd1, 0x06, 0xfc, 0xdc, 0x08, 0x59, 0x7b, 0x74,
+ 0xbf, 0xb4, 0x39, 0x8b, 0x4a, 0x00, 0xdf, 0xe6,
+ 0x88, 0x00, 0x36, 0x4d, 0xb0, 0x1a, 0x40, 0x13,
+ 0x45, 0xe8, 0x38, 0x40, 0x49, 0x0c, 0x7a, 0x57,
+ 0xca, 0x35, 0x66, 0xcf, 0xc7, 0xbe, 0x43, 0x4b,
+ 0xe9, 0x35, 0x49, 0xfc, 0x08, 0x04, 0xac, 0x00,
+ 0x39, 0x1f, 0x45, 0xd7, 0x87, 0x1f, 0x57, 0xec,
+ 0xd4, 0x0b, 0xaa, 0x70, 0x90, 0xdd, 0x90, 0xd2,
+ 0x65, 0xc4, 0xc0, 0x78, 0x96, 0xed, 0x81, 0xb1,
+ 0x33, 0xea, 0xe5, 0x28, 0xa4, 0x96, 0x14, 0xe3,
+ 0x55, 0x41, 0xc5, 0xbe, 0xef, 0xb3, 0x15, 0xcb,
+ 0xec, 0xf5, 0xd5, 0x9c, 0x30, 0x96, 0x90, 0x51,
+ 0x47, 0x71, 0x34, 0xce, 0x0b, 0xb1, 0x3f, 0xdd,
+ 0x0f, 0x8f, 0xa8, 0xe1, 0xea, 0x64, 0x03, 0xdf,
+ 0x04, 0xed, 0x32, 0xd6, 0xdd, 0x0b, 0xf1, 0xeb,
+ 0x92, 0x7e, 0x12, 0xba, 0x15, 0x6f, 0x66, 0xe3,
+ 0x5f, 0xa8, 0xb7, 0x29, 0x0b, 0x23, 0x1b, 0x8f,
+ 0x44, 0x75, 0x92, 0xd6, 0xb3, 0x02, 0x1f, 0xe0,
+ 0xb9, 0x98, 0xf9, 0xfa, 0xe5, 0x98, 0xb4, 0xae,
+ 0xa8, 0x17, 0xbd, 0xbe, 0xb1, 0x52, 0x87, 0x5c,
+ 0x3a, 0x20, 0x39, 0x1b, 0x8d, 0xc4, 0x9d, 0x7e,
+ 0x05, 0x18, 0xf5, 0x3d, 0xda, 0x47, 0x0d, 0xd2,
+ 0xfd, 0xcd, 0x00, 0x83, 0x6e, 0xdc, 0x00, 0x81,
+ 0x9b, 0x8e, 0x85, 0x3f, 0x95, 0xb3, 0x6b, 0x5a,
+ 0x2b, 0x21, 0xbf, 0xb5, 0xcf, 0xc7, 0x4d, 0xa4,
+ 0x74, 0x84, 0xab, 0xc2, 0xbb, 0xa3, 0x61, 0x7f,
+ 0xe4, 0x70, 0x68, 0x83, 0x2a, 0x9f, 0x67, 0x33,
+ 0xe8, 0x2e, 0x5c, 0xef, 0xc3, 0x28, 0x5d, 0xd1,
+ 0xf3, 0x15, 0x1d, 0x2d, 0x85, 0xd7, 0xeb, 0x47,
+ 0xf3, 0x25, 0x76, 0x7a, 0xd5, 0xb7, 0x6c, 0xab,
+ 0x09, 0xd1, 0xad, 0xe5, 0xe3, 0xcc, 0x78, 0xe7,
+ 0x91, 0xd1, 0x60, 0x26, 0xce, 0xf4, 0x9f, 0xc9,
+ 0x93, 0x30, 0x5e, 0x59, 0xef, 0x83, 0x29, 0xa3,
+ 0x6e, 0x61, 0x10, 0x35, 0x18, 0x22, 0xd0, 0xec,
+ 0x73, 0x71, 0xbd, 0xbd, 0x86, 0xd5, 0xbd, 0xc6,
+ 0x46, 0x73, 0x19, 0x5c, 0x73, 0xa9, 0x7c, 0xde,
+ 0x09, 0xe2, 0xeb, 0x23, 0x67, 0x55, 0xfa, 0xc1,
+ 0x87, 0xcd, 0x77, 0xf8, 0x83, 0xdd, 0xca, 0xbc,
+ 0x15, 0xa4, 0x5c, 0x0c, 0x9d, 0x71, 0x1a, 0xea,
+ 0x65, 0x65, 0x9c, 0xef, 0xd8, 0x99, 0x4b, 0xe4,
+ 0xea, 0x8d, 0xca, 0x70, 0x62, 0x33, 0x65, 0x13,
+ 0xed, 0xbe, 0x9b, 0x3a, 0x23, 0x10, 0x58, 0x65,
+ 0x6b, 0x6d, 0x0d, 0x3c, 0x7b, 0x54, 0xf5, 0x63,
+ 0x2b, 0xb9, 0xd7, 0xac, 0x5f, 0x43, 0x05, 0x53,
+ 0xe4, 0x6c, 0xff, 0xb0, 0x20, 0xab, 0xff, 0xf1,
+ 0x24, 0x94, 0x87, 0xab, 0x8a, 0xec, 0x86, 0xfe,
+ 0x2c, 0x4f, 0xd2, 0x89, 0x0e, 0xe0, 0x76, 0xe9,
+ 0x73, 0x64, 0xda, 0x2d, 0xcd, 0x33, 0xe1, 0xa6,
+ 0x9e, 0xd0, 0xc3, 0x90, 0xfd, 0x22, 0x55, 0x73,
+ 0x3b, 0xd6, 0xd3, 0x29, 0xc5, 0x84, 0xb3, 0x84,
+ 0xfb, 0x60, 0x98, 0x1d, 0x65, 0x2a, 0x9d, 0x1e,
+ 0xf7, 0x5a, 0x67, 0x25, 0x5d, 0xe6, 0x02, 0x17,
+ 0x8c, 0x7e, 0x64, 0x17, 0x44, 0xef, 0x19, 0xbe,
+ 0xda, 0xd9, 0x83, 0x94, 0x2b, 0x4c, 0xa3, 0x3c,
+ 0xfa, 0x00, 0x6f, 0xef, 0x98, 0xdf, 0x0d, 0x13,
+ 0x08, 0x7a, 0xeb, 0x2d, 0xa7, 0x6d, 0x0d, 0x4f,
+ 0x17, 0x2e, 0x08, 0x59, 0xa2, 0x96, 0x13, 0xa2,
+ 0x5d, 0x97, 0xc3, 0x62, 0xc6, 0xd0, 0x31, 0x28,
+ 0x86, 0x75, 0x08, 0x0f, 0x77, 0x36, 0xba, 0xea,
+ 0x8c, 0x34, 0x83, 0xa2, 0x35, 0x7b, 0xda, 0x1b,
+ 0x70, 0xe7, 0xc0, 0xdb, 0x03, 0x07, 0x97, 0x91,
+ 0xa9, 0x68, 0x93, 0x89, 0x8d, 0x54, 0x6f, 0x19,
+ 0xf9, 0xe0, 0xe7, 0x19, 0xef, 0x4a, 0xda, 0x80,
+ 0x5a, 0x64, 0x11, 0x33, 0xdd, 0x59, 0x37, 0x7d,
+ 0x81, 0xf6, 0x76, 0xbe, 0x9e, 0x3a, 0x49, 0x4e,
+ 0xc4, 0xb6, 0xc5, 0x25, 0x74, 0x5e, 0x1e, 0x8c,
+ 0x9b, 0xf8, 0x8f, 0x58, 0xfc, 0xb3, 0x6b, 0x4e,
+ 0xea, 0xc4, 0x26, 0xea, 0xd9, 0xbf, 0xe1, 0x4a,
+ 0xaf, 0x50, 0x91, 0x4f, 0xae, 0xd9, 0x29, 0x67,
+ },
+ .sk_len = DILITHIUM65_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM65_SECRETKEYBYTES]){
+ 0x25, 0x5b, 0x8f, 0x59, 0xb9, 0x03, 0xe7, 0x6d,
+ 0x1b, 0x3d, 0xa3, 0x94, 0xea, 0x35, 0x79, 0x55,
+ 0x3f, 0xed, 0x5c, 0xfc, 0x93, 0x5d, 0x95, 0x30,
+ 0x2c, 0x68, 0xee, 0xc5, 0x24, 0x7e, 0xec, 0xb9,
+ 0x5c, 0xad, 0xc4, 0x0e, 0x50, 0x3a, 0x1a, 0x33,
+ 0x05, 0xec, 0x2a, 0x84, 0x60, 0x76, 0xa9, 0x81,
+ 0x34, 0x9b, 0xd7, 0x77, 0x58, 0xd8, 0xaa, 0xc7,
+ 0x2f, 0xe1, 0x04, 0x50, 0xe8, 0x02, 0xe8, 0x0a,
+ 0xd2, 0xa3, 0x22, 0x56, 0x6b, 0xc1, 0x5c, 0xf6,
+ 0xc8, 0x7c, 0xec, 0x84, 0x4b, 0x44, 0x25, 0xea,
+ 0xf5, 0x8d, 0xf7, 0x8a, 0xfe, 0xa8, 0x45, 0x83,
+ 0x60, 0x80, 0x79, 0x72, 0x6e, 0x40, 0x7e, 0xb5,
+ 0xc6, 0x22, 0x24, 0xb2, 0xdf, 0xc3, 0xfb, 0xb7,
+ 0xe8, 0xc1, 0xdf, 0x6a, 0x80, 0x55, 0xac, 0x3a,
+ 0x72, 0x08, 0xa7, 0xad, 0xce, 0x2b, 0xa7, 0x1c,
+ 0x5e, 0x4e, 0x06, 0xc1, 0x7b, 0xa0, 0x01, 0x4f,
+ 0x87, 0x40, 0x88, 0x88, 0x85, 0x67, 0x81, 0x72,
+ 0x51, 0x58, 0x13, 0x21, 0x37, 0x14, 0x35, 0x00,
+ 0x56, 0x62, 0x07, 0x68, 0x28, 0x58, 0x43, 0x03,
+ 0x01, 0x65, 0x04, 0x54, 0x48, 0x25, 0x81, 0x06,
+ 0x72, 0x40, 0x28, 0x70, 0x56, 0x00, 0x86, 0x72,
+ 0x42, 0x25, 0x72, 0x40, 0x22, 0x27, 0x31, 0x81,
+ 0x68, 0x07, 0x47, 0x76, 0x11, 0x30, 0x72, 0x14,
+ 0x86, 0x81, 0x32, 0x44, 0x55, 0x54, 0x70, 0x16,
+ 0x43, 0x76, 0x62, 0x01, 0x65, 0x86, 0x15, 0x55,
+ 0x31, 0x58, 0x56, 0x60, 0x05, 0x56, 0x78, 0x31,
+ 0x76, 0x62, 0x37, 0x41, 0x87, 0x85, 0x72, 0x56,
+ 0x16, 0x51, 0x62, 0x80, 0x22, 0x23, 0x56, 0x51,
+ 0x33, 0x38, 0x13, 0x50, 0x68, 0x82, 0x72, 0x36,
+ 0x72, 0x85, 0x33, 0x11, 0x27, 0x35, 0x51, 0x35,
+ 0x62, 0x35, 0x75, 0x13, 0x33, 0x03, 0x30, 0x11,
+ 0x54, 0x23, 0x36, 0x61, 0x08, 0x45, 0x25, 0x06,
+ 0x81, 0x07, 0x53, 0x61, 0x31, 0x18, 0x67, 0x05,
+ 0x76, 0x04, 0x17, 0x11, 0x30, 0x67, 0x42, 0x18,
+ 0x13, 0x04, 0x34, 0x12, 0x58, 0x35, 0x60, 0x62,
+ 0x66, 0x37, 0x56, 0x77, 0x38, 0x13, 0x22, 0x22,
+ 0x04, 0x38, 0x58, 0x81, 0x71, 0x12, 0x50, 0x44,
+ 0x47, 0x74, 0x70, 0x05, 0x08, 0x26, 0x31, 0x51,
+ 0x15, 0x27, 0x03, 0x52, 0x80, 0x82, 0x52, 0x23,
+ 0x06, 0x40, 0x00, 0x34, 0x35, 0x18, 0x80, 0x83,
+ 0x25, 0x14, 0x24, 0x45, 0x32, 0x45, 0x80, 0x07,
+ 0x30, 0x25, 0x87, 0x41, 0x32, 0x55, 0x86, 0x15,
+ 0x35, 0x20, 0x67, 0x80, 0x67, 0x33, 0x53, 0x54,
+ 0x06, 0x34, 0x03, 0x47, 0x04, 0x68, 0x14, 0x43,
+ 0x86, 0x40, 0x72, 0x72, 0x37, 0x30, 0x48, 0x80,
+ 0x74, 0x87, 0x73, 0x61, 0x81, 0x51, 0x78, 0x02,
+ 0x15, 0x77, 0x78, 0x82, 0x87, 0x05, 0x57, 0x77,
+ 0x87, 0x17, 0x35, 0x54, 0x47, 0x87, 0x07, 0x82,
+ 0x28, 0x04, 0x63, 0x64, 0x33, 0x84, 0x33, 0x48,
+ 0x07, 0x34, 0x55, 0x63, 0x82, 0x11, 0x81, 0x38,
+ 0x07, 0x32, 0x41, 0x61, 0x43, 0x15, 0x17, 0x24,
+ 0x56, 0x75, 0x45, 0x45, 0x48, 0x72, 0x72, 0x43,
+ 0x28, 0x63, 0x36, 0x14, 0x50, 0x81, 0x46, 0x53,
+ 0x62, 0x01, 0x53, 0x68, 0x54, 0x43, 0x22, 0x77,
+ 0x14, 0x40, 0x30, 0x15, 0x64, 0x05, 0x55, 0x31,
+ 0x41, 0x82, 0x16, 0x72, 0x16, 0x81, 0x70, 0x38,
+ 0x45, 0x54, 0x84, 0x55, 0x88, 0x57, 0x04, 0x84,
+ 0x61, 0x51, 0x57, 0x20, 0x62, 0x55, 0x41, 0x72,
+ 0x61, 0x06, 0x15, 0x11, 0x32, 0x02, 0x73, 0x68,
+ 0x72, 0x08, 0x62, 0x05, 0x48, 0x10, 0x02, 0x10,
+ 0x14, 0x08, 0x24, 0x81, 0x81, 0x00, 0x60, 0x78,
+ 0x82, 0x51, 0x58, 0x60, 0x44, 0x55, 0x24, 0x74,
+ 0x33, 0x31, 0x56, 0x58, 0x87, 0x77, 0x16, 0x36,
+ 0x35, 0x06, 0x11, 0x12, 0x12, 0x64, 0x21, 0x82,
+ 0x21, 0x14, 0x87, 0x31, 0x31, 0x25, 0x66, 0x68,
+ 0x26, 0x62, 0x57, 0x63, 0x28, 0x53, 0x26, 0x62,
+ 0x33, 0x68, 0x38, 0x15, 0x82, 0x45, 0x12, 0x23,
+ 0x83, 0x81, 0x86, 0x85, 0x27, 0x41, 0x84, 0x34,
+ 0x13, 0x12, 0x55, 0x54, 0x76, 0x73, 0x77, 0x68,
+ 0x78, 0x63, 0x65, 0x58, 0x48, 0x67, 0x50, 0x04,
+ 0x45, 0x25, 0x33, 0x15, 0x15, 0x02, 0x64, 0x60,
+ 0x11, 0x50, 0x75, 0x15, 0x55, 0x43, 0x27, 0x66,
+ 0x15, 0x18, 0x37, 0x20, 0x08, 0x22, 0x04, 0x30,
+ 0x18, 0x11, 0x45, 0x45, 0x01, 0x88, 0x61, 0x75,
+ 0x31, 0x56, 0x36, 0x00, 0x45, 0x56, 0x36, 0x84,
+ 0x21, 0x64, 0x72, 0x12, 0x64, 0x20, 0x35, 0x83,
+ 0x67, 0x21, 0x43, 0x08, 0x73, 0x73, 0x48, 0x31,
+ 0x31, 0x55, 0x46, 0x31, 0x58, 0x85, 0x15, 0x64,
+ 0x74, 0x01, 0x56, 0x47, 0x47, 0x82, 0x26, 0x04,
+ 0x51, 0x64, 0x06, 0x00, 0x64, 0x86, 0x00, 0x80,
+ 0x42, 0x36, 0x65, 0x55, 0x25, 0x52, 0x53, 0x32,
+ 0x60, 0x73, 0x28, 0x77, 0x66, 0x16, 0x84, 0x18,
+ 0x18, 0x46, 0x08, 0x44, 0x40, 0x63, 0x01, 0x88,
+ 0x52, 0x17, 0x84, 0x17, 0x61, 0x81, 0x11, 0x05,
+ 0x44, 0x60, 0x28, 0x18, 0x55, 0x54, 0x12, 0x01,
+ 0x67, 0x67, 0x35, 0x81, 0x61, 0x56, 0x17, 0x78,
+ 0x74, 0x05, 0x17, 0x61, 0x51, 0x52, 0x70, 0x53,
+ 0x25, 0x53, 0x12, 0x86, 0x06, 0x61, 0x03, 0x16,
+ 0x35, 0x10, 0x18, 0x74, 0x42, 0x56, 0x75, 0x55,
+ 0x17, 0x68, 0x62, 0x31, 0x62, 0x68, 0x58, 0x61,
+ 0x67, 0x72, 0x78, 0x28, 0x34, 0x63, 0x76, 0x18,
+ 0x23, 0x43, 0x16, 0x20, 0x47, 0x20, 0x57, 0x75,
+ 0x64, 0x58, 0x78, 0x45, 0x48, 0x30, 0x87, 0x00,
+ 0x01, 0x57, 0x24, 0x51, 0x76, 0x18, 0x85, 0x88,
+ 0x82, 0x12, 0x31, 0x27, 0x68, 0x23, 0x82, 0x63,
+ 0x75, 0x03, 0x12, 0x11, 0x00, 0x53, 0x03, 0x00,
+ 0x07, 0x03, 0x52, 0x72, 0x61, 0x68, 0x88, 0x03,
+ 0x56, 0x85, 0x28, 0x53, 0x23, 0x11, 0x45, 0x14,
+ 0x58, 0x02, 0x63, 0x43, 0x74, 0x05, 0x87, 0x13,
+ 0x31, 0x36, 0x44, 0x34, 0x20, 0x56, 0x86, 0x44,
+ 0x85, 0x41, 0x83, 0x20, 0x62, 0x83, 0x12, 0x41,
+ 0x42, 0x14, 0x71, 0x50, 0x32, 0x41, 0x60, 0x70,
+ 0x02, 0x85, 0x27, 0x20, 0x41, 0x08, 0x81, 0x67,
+ 0x87, 0x60, 0x42, 0x68, 0x04, 0x14, 0x66, 0x14,
+ 0x01, 0x31, 0x61, 0x63, 0x53, 0x73, 0x14, 0x30,
+ 0x83, 0x38, 0x53, 0x73, 0x26, 0x86, 0x06, 0x12,
+ 0x21, 0x12, 0x64, 0x75, 0x76, 0x38, 0x26, 0x11,
+ 0x80, 0x37, 0x43, 0x62, 0x20, 0x66, 0x27, 0x07,
+ 0x20, 0x13, 0x42, 0x15, 0x63, 0x40, 0x73, 0x02,
+ 0x60, 0x50, 0x55, 0x75, 0x06, 0x32, 0x80, 0x63,
+ 0x44, 0x33, 0x85, 0x40, 0x35, 0x51, 0x68, 0x34,
+ 0x27, 0x76, 0x06, 0x28, 0x14, 0x42, 0x33, 0x61,
+ 0x38, 0x52, 0x43, 0x26, 0x28, 0x26, 0x86, 0x42,
+ 0x70, 0x02, 0x83, 0x05, 0x27, 0x30, 0x48, 0x13,
+ 0x42, 0x10, 0x63, 0x07, 0x72, 0x43, 0x35, 0x10,
+ 0x50, 0x45, 0x76, 0x12, 0x75, 0x21, 0x25, 0x15,
+ 0x36, 0x82, 0x16, 0x70, 0x84, 0x66, 0x33, 0x14,
+ 0x67, 0x12, 0x60, 0x03, 0x42, 0x36, 0x68, 0x66,
+ 0x35, 0x05, 0x73, 0x72, 0x14, 0x52, 0x30, 0x27,
+ 0x20, 0x86, 0x37, 0x48, 0x34, 0x38, 0x63, 0x07,
+ 0x80, 0x06, 0x27, 0x61, 0x26, 0x10, 0x65, 0x18,
+ 0x67, 0x11, 0x24, 0x46, 0x75, 0x84, 0x70, 0x70,
+ 0x28, 0x18, 0x54, 0x23, 0x82, 0x14, 0x36, 0x46,
+ 0x15, 0x15, 0x48, 0x70, 0x42, 0x22, 0x01, 0x75,
+ 0x81, 0x12, 0x80, 0x64, 0x20, 0x36, 0x31, 0x84,
+ 0x80, 0x37, 0x27, 0x01, 0x71, 0x27, 0x71, 0x07,
+ 0x21, 0x53, 0x88, 0x48, 0x31, 0x14, 0x25, 0x17,
+ 0x73, 0x61, 0x43, 0x40, 0x16, 0x27, 0x38, 0x83,
+ 0x43, 0x25, 0x80, 0x34, 0x11, 0x54, 0x28, 0x68,
+ 0x50, 0x63, 0x76, 0x40, 0x22, 0x02, 0x45, 0x43,
+ 0x33, 0x41, 0x72, 0x48, 0x42, 0x24, 0x14, 0x02,
+ 0x46, 0x47, 0x88, 0x78, 0x05, 0x86, 0x64, 0x27,
+ 0x76, 0x37, 0x08, 0x58, 0x54, 0x70, 0x74, 0x78,
+ 0x36, 0x33, 0x74, 0x65, 0x28, 0x66, 0x56, 0x45,
+ 0x85, 0x76, 0x30, 0x14, 0x61, 0x03, 0x27, 0x30,
+ 0x74, 0x24, 0x35, 0x76, 0x16, 0x53, 0x45, 0x70,
+ 0x74, 0x22, 0x80, 0x37, 0x15, 0x23, 0x32, 0x88,
+ 0x32, 0x43, 0x45, 0x35, 0x58, 0x62, 0x20, 0x83,
+ 0x20, 0x27, 0x17, 0x85, 0x32, 0x34, 0x78, 0x17,
+ 0x25, 0x86, 0x77, 0x84, 0x54, 0x27, 0x71, 0x01,
+ 0x37, 0x63, 0x10, 0x85, 0x83, 0x83, 0x05, 0x48,
+ 0x77, 0x43, 0x82, 0x53, 0x22, 0x14, 0x04, 0x70,
+ 0x12, 0x07, 0x14, 0x31, 0x04, 0x21, 0x83, 0x13,
+ 0x80, 0x38, 0x38, 0x70, 0x48, 0x73, 0x65, 0x08,
+ 0x52, 0x52, 0x73, 0x56, 0x00, 0x66, 0x42, 0x14,
+ 0x12, 0x07, 0x60, 0x11, 0x02, 0x41, 0x87, 0x61,
+ 0x52, 0x44, 0x11, 0x84, 0x86, 0x25, 0x18, 0x00,
+ 0x56, 0x60, 0x03, 0x07, 0x04, 0x42, 0x00, 0x81,
+ 0x12, 0x54, 0x21, 0x35, 0x21, 0x87, 0x73, 0x25,
+ 0x68, 0x37, 0x46, 0x11, 0x42, 0x81, 0x46, 0x16,
+ 0x57, 0x85, 0x52, 0x25, 0x28, 0x85, 0x62, 0x37,
+ 0x81, 0x07, 0x83, 0x02, 0x28, 0x21, 0x01, 0x27,
+ 0x54, 0x84, 0x45, 0x23, 0x74, 0x26, 0x13, 0x30,
+ 0x02, 0x78, 0x72, 0x55, 0x45, 0x87, 0x15, 0x00,
+ 0x32, 0x56, 0x71, 0x62, 0x68, 0x32, 0x50, 0x50,
+ 0x72, 0x05, 0x56, 0x58, 0x16, 0x48, 0x67, 0x35,
+ 0x42, 0x00, 0x88, 0x67, 0x07, 0x55, 0x64, 0x86,
+ 0x60, 0x58, 0x04, 0x10, 0x77, 0x53, 0x37, 0x50,
+ 0x02, 0x24, 0x68, 0x28, 0x84, 0x76, 0x13, 0x73,
+ 0x80, 0x76, 0x32, 0x88, 0x21, 0x43, 0x52, 0x36,
+ 0x14, 0x84, 0x77, 0x44, 0x05, 0x14, 0x43, 0x46,
+ 0x46, 0x40, 0x23, 0x36, 0x31, 0x42, 0x40, 0x13,
+ 0x12, 0x44, 0x72, 0x82, 0x21, 0x63, 0x16, 0x45,
+ 0x53, 0x55, 0x24, 0x33, 0x78, 0x41, 0x72, 0x02,
+ 0x47, 0x11, 0x40, 0x65, 0x30, 0x84, 0x07, 0x74,
+ 0x13, 0x21, 0x04, 0x72, 0x80, 0x20, 0x33, 0x52,
+ 0x80, 0x30, 0x02, 0x67, 0x43, 0x30, 0x53, 0x62,
+ 0x04, 0x37, 0x07, 0x66, 0x56, 0x80, 0x15, 0x16,
+ 0x80, 0x52, 0x75, 0x52, 0x24, 0x48, 0x47, 0x42,
+ 0x57, 0x84, 0x64, 0x58, 0x83, 0x43, 0x57, 0x41,
+ 0x63, 0x51, 0x87, 0x80, 0x02, 0x50, 0x57, 0x64,
+ 0x20, 0x46, 0x45, 0x32, 0x51, 0x73, 0x48, 0x28,
+ 0x10, 0x62, 0x78, 0x88, 0x22, 0x64, 0x03, 0x53,
+ 0x12, 0x55, 0x51, 0x63, 0x47, 0x73, 0x38, 0x56,
+ 0x20, 0x76, 0x26, 0x61, 0x06, 0x64, 0x73, 0x60,
+ 0x01, 0x25, 0x86, 0x45, 0x36, 0x17, 0x38, 0x53,
+ 0x15, 0x17, 0x21, 0x00, 0x62, 0x74, 0x44, 0x46,
+ 0x22, 0x06, 0x42, 0x27, 0x18, 0x22, 0x44, 0x35,
+ 0x73, 0x01, 0x02, 0x01, 0x23, 0x37, 0x81, 0x36,
+ 0x65, 0x52, 0x28, 0x74, 0x75, 0x22, 0x02, 0x44,
+ 0x76, 0x02, 0x21, 0x32, 0x24, 0x01, 0x56, 0x38,
+ 0x32, 0x68, 0x73, 0x13, 0x23, 0x01, 0x62, 0x32,
+ 0x11, 0x88, 0x73, 0x71, 0x57, 0x35, 0x30, 0x18,
+ 0x66, 0x62, 0x13, 0x51, 0x10, 0x44, 0x18, 0x70,
+ 0x37, 0x84, 0x78, 0x82, 0x61, 0x66, 0x66, 0x22,
+ 0x84, 0x12, 0x52, 0x26, 0x73, 0x32, 0x66, 0x44,
+ 0x07, 0x70, 0x20, 0x35, 0x11, 0x50, 0x15, 0x32,
+ 0x60, 0x58, 0x12, 0x15, 0x83, 0x85, 0x07, 0x41,
+ 0x76, 0x52, 0x25, 0x06, 0x51, 0x32, 0x00, 0x82,
+ 0x46, 0x14, 0x53, 0x62, 0x51, 0x05, 0x22, 0x66,
+ 0x28, 0x83, 0x32, 0x72, 0x43, 0x51, 0x66, 0x63,
+ 0x65, 0x00, 0x51, 0x88, 0x26, 0x24, 0x44, 0x41,
+ 0xc4, 0x4d, 0xdf, 0x42, 0x56, 0xd0, 0x13, 0x8b,
+ 0x95, 0xdf, 0xd8, 0x6b, 0x45, 0xde, 0x9e, 0x98,
+ 0x82, 0xe9, 0xdf, 0x62, 0xc4, 0xa4, 0xaf, 0xbc,
+ 0x5d, 0xa9, 0xad, 0x4d, 0xf4, 0x4a, 0x2f, 0xb4,
+ 0x25, 0x35, 0xce, 0xc1, 0x01, 0xac, 0x84, 0x23,
+ 0x46, 0xfa, 0xf6, 0xae, 0xff, 0x66, 0x28, 0x71,
+ 0x92, 0xa2, 0xe5, 0x49, 0x2d, 0x83, 0xc6, 0x5b,
+ 0xb2, 0x8f, 0x90, 0xe9, 0x10, 0x27, 0x1a, 0x7a,
+ 0xb9, 0x28, 0x18, 0x91, 0x22, 0x81, 0x17, 0x56,
+ 0x5e, 0xdc, 0x1c, 0x7e, 0x03, 0xbe, 0x67, 0x06,
+ 0xd6, 0x32, 0x8a, 0xef, 0x25, 0xe9, 0x33, 0x84,
+ 0x7a, 0x04, 0xee, 0x2d, 0xcc, 0x2c, 0x96, 0x00,
+ 0x32, 0x44, 0x1e, 0x3d, 0x45, 0x24, 0xcb, 0x06,
+ 0xd3, 0x42, 0x02, 0xfe, 0x92, 0x4a, 0x7b, 0x12,
+ 0x3d, 0xa5, 0x49, 0x91, 0xff, 0x9e, 0xae, 0x7b,
+ 0x1d, 0xb0, 0xbc, 0xb0, 0x78, 0x11, 0x75, 0xfc,
+ 0xd5, 0x9c, 0x24, 0x0d, 0x9a, 0xb4, 0xeb, 0x6c,
+ 0x79, 0x92, 0x54, 0x26, 0xde, 0x6c, 0x1d, 0x46,
+ 0xc2, 0x75, 0xca, 0x28, 0x51, 0xd0, 0x04, 0x6d,
+ 0x32, 0x08, 0xd9, 0x76, 0x83, 0xf4, 0x63, 0xb5,
+ 0xeb, 0x0d, 0xc8, 0x03, 0x52, 0xe2, 0x4c, 0x56,
+ 0x46, 0x39, 0x68, 0xa4, 0x50, 0x2c, 0xfc, 0xe1,
+ 0x97, 0x08, 0x9e, 0xff, 0x50, 0xa8, 0x31, 0xc9,
+ 0x1e, 0x64, 0x48, 0x89, 0xff, 0xac, 0x3a, 0x3f,
+ 0x02, 0xff, 0xe2, 0xd1, 0x6c, 0x10, 0x8a, 0x2f,
+ 0x53, 0xee, 0x73, 0x2d, 0x8d, 0xce, 0xc4, 0xa6,
+ 0x54, 0x6b, 0x4a, 0xab, 0x99, 0x3c, 0xd0, 0xf6,
+ 0xf1, 0x61, 0xe8, 0x29, 0x44, 0x35, 0x76, 0xf2,
+ 0xf4, 0x56, 0x2d, 0x38, 0x5b, 0xd9, 0x28, 0xe2,
+ 0xf0, 0xbe, 0x1c, 0xcb, 0x65, 0x01, 0x2b, 0x5b,
+ 0x7d, 0xc3, 0x56, 0x70, 0x92, 0x03, 0x6f, 0xbe,
+ 0xd8, 0xbd, 0x6e, 0x60, 0xe2, 0x92, 0x45, 0xb4,
+ 0xa2, 0xb2, 0xa4, 0x0b, 0x01, 0xf8, 0xf0, 0x3d,
+ 0xe1, 0xb3, 0x3b, 0x73, 0xb1, 0xa3, 0xd6, 0x1d,
+ 0x75, 0x44, 0x9b, 0xcf, 0x19, 0x05, 0x9a, 0x16,
+ 0x9e, 0x65, 0x92, 0x34, 0x59, 0x10, 0x6a, 0xa8,
+ 0xd9, 0x7b, 0xe2, 0x0e, 0x31, 0x10, 0xc1, 0x66,
+ 0x7d, 0xf1, 0xc9, 0xc1, 0x34, 0xb0, 0x2d, 0x1c,
+ 0x61, 0xe4, 0x5c, 0xbe, 0xea, 0x4d, 0x78, 0x15,
+ 0xa9, 0x4d, 0xfc, 0x2a, 0x99, 0xf6, 0xf6, 0xf6,
+ 0x88, 0xca, 0xaa, 0x7c, 0x4f, 0x82, 0x71, 0x10,
+ 0xc7, 0xcd, 0x86, 0x3b, 0xfd, 0x95, 0xf1, 0x3b,
+ 0x86, 0x55, 0x95, 0x40, 0xc6, 0xd8, 0x8f, 0xd8,
+ 0x78, 0xe5, 0x6e, 0xaa, 0x63, 0xba, 0xc2, 0xe7,
+ 0xbe, 0x90, 0x63, 0x6e, 0xce, 0x14, 0x09, 0xfc,
+ 0xe7, 0x19, 0x8d, 0x60, 0xd0, 0x60, 0xad, 0xfc,
+ 0xba, 0xc6, 0x7a, 0xae, 0xca, 0x1d, 0x48, 0x7e,
+ 0xc5, 0xbe, 0x0a, 0x7d, 0xaa, 0x10, 0xc6, 0x99,
+ 0x77, 0xb0, 0x9d, 0x31, 0xb2, 0xc7, 0x60, 0x55,
+ 0xa3, 0x38, 0xaa, 0x7c, 0x83, 0x24, 0x58, 0x37,
+ 0x45, 0xd2, 0x2c, 0xa8, 0x39, 0x07, 0x41, 0x9e,
+ 0xd9, 0xd9, 0x08, 0x68, 0x97, 0x29, 0x76, 0x44,
+ 0xff, 0x5b, 0x40, 0x6c, 0xc3, 0xde, 0xc5, 0x58,
+ 0xb5, 0x03, 0x2a, 0x46, 0x9d, 0x72, 0xdf, 0x6f,
+ 0x4a, 0x3d, 0xa8, 0x39, 0xe7, 0xcb, 0xfe, 0xa9,
+ 0x6f, 0x9c, 0xcf, 0xae, 0xe4, 0x6f, 0x96, 0x79,
+ 0x6d, 0x18, 0xe9, 0x81, 0xb0, 0x7e, 0x1e, 0xec,
+ 0x70, 0x9d, 0x27, 0x15, 0xdd, 0x41, 0x94, 0x25,
+ 0xcd, 0x0a, 0x10, 0x96, 0x74, 0x4f, 0x74, 0x3e,
+ 0x23, 0x99, 0x23, 0x9e, 0x20, 0x15, 0xb9, 0x9c,
+ 0xe9, 0x8c, 0x30, 0x19, 0xdf, 0xaf, 0x76, 0xa3,
+ 0x33, 0xa1, 0x34, 0x86, 0x87, 0x2e, 0xce, 0x00,
+ 0xe0, 0x02, 0x71, 0xbb, 0x7e, 0xd3, 0x94, 0x2b,
+ 0xe3, 0xa3, 0x2e, 0x1a, 0x30, 0xea, 0x5c, 0x50,
+ 0x1b, 0xb5, 0x7f, 0x47, 0x2b, 0x81, 0xa4, 0xdd,
+ 0xd4, 0x08, 0x00, 0x7a, 0x27, 0x06, 0x04, 0xa4,
+ 0x48, 0x04, 0x25, 0xd9, 0x9f, 0xe4, 0x84, 0x99,
+ 0x8a, 0x2e, 0x29, 0xbb, 0x16, 0xdb, 0x9f, 0xf7,
+ 0x72, 0x5f, 0xe4, 0xe8, 0x51, 0x0f, 0x57, 0x27,
+ 0xe0, 0xf2, 0x38, 0xcb, 0x93, 0x9f, 0x3d, 0x8a,
+ 0xe6, 0x97, 0xb3, 0xd9, 0x32, 0xc6, 0x39, 0xbc,
+ 0x5a, 0x88, 0xfb, 0xc0, 0x6b, 0x1e, 0xb8, 0xa4,
+ 0xdb, 0x8a, 0x58, 0x17, 0xb1, 0x8d, 0xa3, 0x49,
+ 0x94, 0x8f, 0x40, 0x9f, 0x96, 0x2c, 0xc1, 0xf4,
+ 0x8f, 0x57, 0xfd, 0xf0, 0x96, 0xc7, 0x71, 0x30,
+ 0x30, 0x57, 0xa5, 0xe5, 0xca, 0xce, 0x6a, 0xa3,
+ 0x7a, 0xfb, 0xae, 0xb8, 0xa4, 0x7c, 0x7e, 0xd0,
+ 0x53, 0x42, 0xcd, 0x1b, 0x69, 0x24, 0x2e, 0x7f,
+ 0x39, 0x3f, 0x5f, 0xb0, 0xa5, 0xb2, 0xb7, 0x58,
+ 0xb7, 0x7b, 0xeb, 0x12, 0x85, 0xfe, 0xbc, 0x10,
+ 0x09, 0x55, 0xce, 0x16, 0x0d, 0x94, 0x0f, 0x4f,
+ 0x15, 0x3a, 0xe8, 0x94, 0x1b, 0xcb, 0x86, 0x1b,
+ 0x6f, 0x06, 0x97, 0x32, 0xf7, 0x11, 0x41, 0x6f,
+ 0xc3, 0x17, 0x5a, 0x86, 0xab, 0x77, 0x6f, 0x4a,
+ 0x6c, 0xb0, 0x56, 0x9d, 0x97, 0xb7, 0x3e, 0xa9,
+ 0xa2, 0xa0, 0x36, 0x9a, 0x15, 0xdd, 0x58, 0x9f,
+ 0x44, 0x9d, 0xd7, 0xba, 0x53, 0xb3, 0x62, 0xd0,
+ 0x84, 0xb9, 0x50, 0x3d, 0xf1, 0xa1, 0xa9, 0xd1,
+ 0xf1, 0xc3, 0xdf, 0x02, 0xc7, 0x0d, 0xdc, 0xfc,
+ 0xd0, 0x81, 0xbf, 0xfc, 0x9c, 0x2d, 0xf4, 0x46,
+ 0xdf, 0x00, 0x20, 0xa4, 0xb4, 0x05, 0xac, 0x68,
+ 0x11, 0x29, 0xdc, 0xa5, 0xa6, 0x3e, 0xc8, 0xa3,
+ 0xf1, 0xfe, 0x1c, 0xc6, 0x84, 0x29, 0x11, 0xe1,
+ 0xae, 0xcb, 0x94, 0x8d, 0x64, 0x29, 0xa3, 0xbe,
+ 0x13, 0x30, 0x08, 0xe7, 0x99, 0x03, 0x35, 0x46,
+ 0x0b, 0x2c, 0x13, 0x3a, 0x67, 0x92, 0x5f, 0x19,
+ 0xce, 0x13, 0x21, 0x84, 0xf3, 0xa4, 0x49, 0xb7,
+ 0x80, 0x92, 0xa8, 0x9a, 0xdc, 0x58, 0xfc, 0x86,
+ 0x1a, 0x0b, 0x7f, 0x71, 0x16, 0xf7, 0x8b, 0x9d,
+ 0x08, 0x9f, 0x6b, 0xa4, 0x48, 0x31, 0xf3, 0xd5,
+ 0xbe, 0x4d, 0x59, 0x8a, 0x7c, 0xc1, 0x04, 0x78,
+ 0x3e, 0x7c, 0xcb, 0x3d, 0x68, 0xc0, 0x9a, 0xf3,
+ 0x99, 0xb0, 0x15, 0xa6, 0x2a, 0x46, 0xf2, 0xb0,
+ 0x3f, 0x64, 0x7a, 0xdc, 0x5b, 0xd0, 0xa9, 0x41,
+ 0x0f, 0xcd, 0xb4, 0x5e, 0xca, 0xaf, 0x85, 0x59,
+ 0xcc, 0x8a, 0x0e, 0x8f, 0x8c, 0x09, 0x06, 0x52,
+ 0x50, 0xb7, 0xe9, 0x33, 0xde, 0x02, 0x09, 0xce,
+ 0x49, 0xe5, 0x13, 0x36, 0x57, 0x7f, 0xa7, 0xea,
+ 0x39, 0x6f, 0x38, 0x74, 0x79, 0x1c, 0x42, 0xaf,
+ 0xd5, 0xaa, 0x09, 0x17, 0x0a, 0x7b, 0x90, 0x7c,
+ 0xb3, 0x6a, 0xe4, 0xd9, 0xc0, 0x22, 0x1b, 0xb7,
+ 0x50, 0xea, 0xc4, 0x16, 0x75, 0x7c, 0x50, 0x86,
+ 0xb7, 0xcd, 0x06, 0xd2, 0x3e, 0xcb, 0x4c, 0xa9,
+ 0x91, 0xed, 0x56, 0x1a, 0x37, 0x8e, 0x43, 0x86,
+ 0x26, 0x25, 0x51, 0x34, 0xee, 0x77, 0x4e, 0x09,
+ 0xb2, 0x2d, 0x87, 0x97, 0x4b, 0xd3, 0x09, 0x2c,
+ 0x94, 0x83, 0x88, 0x73, 0xef, 0xc2, 0x55, 0x0e,
+ 0xa2, 0x17, 0xe8, 0xd5, 0xf8, 0xfa, 0x01, 0xf6,
+ 0x53, 0xa0, 0x3a, 0x1f, 0x73, 0xff, 0x0a, 0x36,
+ 0xfb, 0xd4, 0x6b, 0x38, 0x78, 0x7f, 0x61, 0x93,
+ 0x30, 0x4e, 0xc7, 0x23, 0xdd, 0x95, 0xd7, 0x4b,
+ 0x41, 0x48, 0x16, 0xfb, 0x3e, 0xde, 0xa9, 0x31,
+ 0xa3, 0x7b, 0xcc, 0x8a, 0x78, 0x07, 0x54, 0x2a,
+ 0x4e, 0xbc, 0xa4, 0x77, 0x3d, 0xd8, 0x56, 0x25,
+ 0xcb, 0x3f, 0xed, 0x90, 0x5d, 0xb9, 0x7b, 0x8a,
+ 0x00, 0x68, 0x51, 0x3d, 0x2b, 0xb8, 0xb4, 0x76,
+ 0xd6, 0xd1, 0x03, 0x20, 0x3a, 0xe7, 0x1b, 0x07,
+ 0xbd, 0x9e, 0xe8, 0xf8, 0x54, 0x2c, 0x36, 0x3c,
+ 0xd6, 0x27, 0xe3, 0x33, 0x19, 0x7d, 0x3c, 0x13,
+ 0x9b, 0x9a, 0x45, 0xa4, 0x6a, 0x4e, 0xee, 0x01,
+ 0xf2, 0x5a, 0x88, 0x5d, 0x4e, 0x10, 0xd0, 0x6b,
+ 0x19, 0x62, 0x75, 0xa6, 0x77, 0xa8, 0xc7, 0x7b,
+ 0xc1, 0x99, 0x04, 0xea, 0xa2, 0xb4, 0x9c, 0xf4,
+ 0x6f, 0x3e, 0x2f, 0x8e, 0x4e, 0xa6, 0xac, 0x2d,
+ 0xfe, 0x58, 0x8c, 0x8f, 0x9a, 0xa9, 0x33, 0x78,
+ 0xed, 0xc8, 0x63, 0x38, 0x03, 0xd1, 0xec, 0x1a,
+ 0x3b, 0xd7, 0x03, 0x8e, 0x52, 0xa5, 0x92, 0x0d,
+ 0xf7, 0xed, 0x13, 0x74, 0x8f, 0x50, 0xcb, 0x48,
+ 0xc8, 0x12, 0xd9, 0x0f, 0xad, 0x0a, 0xbe, 0x42,
+ 0x08, 0xab, 0xd9, 0x65, 0x12, 0xf0, 0x8e, 0x94,
+ 0x6f, 0x1a, 0x6b, 0xe7, 0xfb, 0x75, 0xb2, 0x3f,
+ 0xdd, 0xa6, 0x14, 0x77, 0x5b, 0x6a, 0x22, 0x22,
+ 0xf6, 0x9e, 0xb4, 0xbf, 0x2e, 0x6f, 0xca, 0x9a,
+ 0xd3, 0xa9, 0x42, 0x01, 0xc7, 0x90, 0xcc, 0xab,
+ 0x6e, 0x7e, 0x43, 0xb7, 0x7d, 0x65, 0xf9, 0x75,
+ 0x31, 0x49, 0xcd, 0x53, 0xca, 0x18, 0xa6, 0x23,
+ 0x9a, 0xf2, 0x11, 0x94, 0x4c, 0x90, 0x6f, 0xea,
+ 0xfb, 0x76, 0xd2, 0xa0, 0x1d, 0x1d, 0x6c, 0x62,
+ 0x59, 0x1f, 0x78, 0xef, 0x1a, 0x11, 0xdf, 0xc1,
+ 0x82, 0x9d, 0x7f, 0x83, 0xb1, 0x1a, 0x26, 0xe1,
+ 0xc1, 0x84, 0xe7, 0x0f, 0xa9, 0xbf, 0x76, 0x61,
+ 0x2d, 0xea, 0xc5, 0x93, 0x29, 0x9b, 0x93, 0x15,
+ 0xa4, 0x82, 0x1c, 0x0e, 0x5a, 0x80, 0x62, 0x92,
+ 0x76, 0x9c, 0x66, 0x0b, 0x24, 0xd1, 0x7d, 0xc9,
+ 0x53, 0xb9, 0xea, 0xd0, 0xcb, 0x4c, 0xe4, 0xcb,
+ 0x75, 0xba, 0x32, 0x81, 0xd5, 0x47, 0x1e, 0xf3,
+ 0x14, 0x73, 0x19, 0x31, 0xd4, 0x85, 0x04, 0x1e,
+ 0xb1, 0x9d, 0x97, 0x7b, 0xe5, 0xfa, 0x2c, 0x84,
+ 0xce, 0x40, 0x60, 0x3c, 0xe7, 0x99, 0x7d, 0xa4,
+ 0x6d, 0xb5, 0xad, 0xf9, 0x6c, 0x6d, 0x39, 0x17,
+ 0xc8, 0x82, 0x84, 0xc1, 0xbb, 0x23, 0x87, 0x5c,
+ 0x67, 0x31, 0xe0, 0x54, 0x67, 0xd8, 0xca, 0x71,
+ 0x2c, 0x49, 0x70, 0xb2, 0xad, 0x52, 0x05, 0xa1,
+ 0xf0, 0x32, 0xb0, 0xdd, 0xa3, 0xea, 0x33, 0x8e,
+ 0x6f, 0x6c, 0x06, 0x63, 0xc5, 0xb0, 0x4e, 0x27,
+ 0xfa, 0x48, 0xc3, 0x45, 0xc3, 0xaf, 0x7f, 0x19,
+ 0x3f, 0x53, 0xad, 0xce, 0xcc, 0x2f, 0xdd, 0x2e,
+ 0x66, 0x92, 0xcd, 0xac, 0xc0, 0x25, 0xd7, 0x09,
+ 0xd0, 0x62, 0xb8, 0x2d, 0x72, 0x07, 0x47, 0x75,
+ 0x90, 0x5a, 0xe6, 0xd4, 0x0c, 0x00, 0x43, 0x01,
+ 0x31, 0x0b, 0x5f, 0x72, 0xad, 0x3c, 0x9b, 0xee,
+ 0xec, 0x05, 0xf2, 0x92, 0x84, 0xc8, 0xd9, 0x81,
+ 0x43, 0x4a, 0x12, 0x45, 0xf4, 0xf1, 0x6e, 0x2b,
+ 0xf3, 0x15, 0x35, 0xdf, 0xff, 0x50, 0xdf, 0xdd,
+ 0x5d, 0x32, 0x51, 0x32, 0xfd, 0xd5, 0xef, 0x04,
+ 0x78, 0x52, 0xfa, 0xf8, 0x1a, 0x66, 0x6f, 0xe5,
+ 0x2a, 0x60, 0xa0, 0x38, 0xa6, 0x18, 0xd9, 0x56,
+ 0x28, 0x0c, 0x0f, 0xfd, 0x4d, 0xfb, 0xe7, 0x09,
+ 0x3d, 0x5c, 0xfe, 0x4e, 0xda, 0x9f, 0xdb, 0x56,
+ 0xd2, 0x15, 0x77, 0xab, 0xce, 0xee, 0xc8, 0xd0,
+ 0x7f, 0x38, 0xfa, 0xa9, 0x10, 0x06, 0x8c, 0xe4,
+ 0x60, 0x25, 0x6e, 0xd8, 0x29, 0x09, 0x06, 0xaf,
+ 0xc6, 0xa7, 0xf6, 0x9a, 0x8f, 0xc4, 0x7d, 0x20,
+ 0x51, 0x57, 0x29, 0x19, 0xe7, 0x54, 0xbb, 0x1c,
+ 0x0a, 0x52, 0x7e, 0xc9, 0x84, 0x63, 0xe5, 0x7a,
+ 0xc5, 0xc5, 0xa4, 0x77, 0xc7, 0x9d, 0x41, 0xd5,
+ 0xbc, 0x13, 0x69, 0x60, 0x68, 0x5e, 0xa2, 0xe6,
+ 0x44, 0xf6, 0xb5, 0x84, 0xec, 0x43, 0x09, 0x1a,
+ 0xa2, 0xf9, 0x28, 0x36, 0xb6, 0x47, 0x67, 0xfb,
+ 0x2d, 0x1f, 0xcf, 0x2e, 0x0e, 0x43, 0xdf, 0x46,
+ 0xd4, 0xae, 0x6d, 0xfc, 0x4c, 0x21, 0xfe, 0x11,
+ 0xb7, 0x13, 0x23, 0x50, 0x80, 0x04, 0x5b, 0x7f,
+ 0x02, 0x15, 0x49, 0xa5, 0xaa, 0x54, 0xcd, 0x28,
+ 0xc8, 0x4f, 0x8f, 0x08, 0x6a, 0xcf, 0xbe, 0x84,
+ 0x26, 0x82, 0xa5, 0x65, 0xf7, 0xcb, 0x97, 0x63,
+ 0xd1, 0xc4, 0x2b, 0x35, 0x25, 0x23, 0x4a, 0x57,
+ 0x9b, 0xbc, 0xdc, 0x8b, 0x63, 0xf5, 0x4f, 0x54,
+ 0x27, 0xfc, 0x0a, 0x07, 0xb4, 0xb1, 0x43, 0x63,
+ 0x81, 0x73, 0x7c, 0x14, 0x07, 0xa8, 0xd2, 0xe7,
+ 0x38, 0x23, 0xc4, 0x68, 0xa1, 0x88, 0x06, 0x40,
+ 0x99, 0x93, 0x5a, 0xff, 0xb3, 0x64, 0xc8, 0x77,
+ 0xc0, 0x72, 0xe2, 0xf2, 0x85, 0x4d, 0xf1, 0x31,
+ 0x50, 0xf8, 0x11, 0xab, 0xa8, 0xb7, 0x5d, 0x78,
+ 0x8e, 0x15, 0x95, 0xfd, 0xb2, 0xe5, 0xea, 0x20,
+ 0xd2, 0x5d, 0x22, 0xee, 0x32, 0x62, 0x61, 0x2b,
+ 0x1b, 0xaf, 0xa5, 0xf0, 0x59, 0xdc, 0x69, 0x4e,
+ 0x92, 0xa6, 0x43, 0x51, 0x0b, 0x7f, 0x30, 0xfd,
+ 0x29, 0xca, 0x16, 0xe3, 0xe1, 0xe3, 0x63, 0xe7,
+ 0x21, 0x94, 0x02, 0xaa, 0xe5, 0xbb, 0xc7, 0x28,
+ 0xe0, 0x0b, 0xc5, 0x07, 0xd1, 0xf5, 0x38, 0xdd,
+ 0x82, 0xe9, 0xc0, 0x43, 0x94, 0x5c, 0xe9, 0x83,
+ 0x4a, 0x67, 0x14, 0x4f, 0x58, 0x2b, 0x59, 0x36,
+ 0x4c, 0x90, 0x35, 0x2c, 0xe0, 0x7e, 0x3c, 0xd6,
+ 0xa1, 0x64, 0xdb, 0xba, 0x5e, 0x41, 0x86, 0x8b,
+ 0x49, 0x64, 0x16, 0xd6, 0xd7, 0x82, 0x3c, 0x24,
+ 0x07, 0xa3, 0xe2, 0xb2, 0x57, 0x3c, 0xf7, 0x9a,
+ 0x71, 0xe4, 0x7d, 0x84, 0x63, 0x52, 0xcf, 0x82,
+ 0xe3, 0x63, 0x3f, 0x24, 0x78, 0x73, 0xa2, 0x3c,
+ 0x78, 0x1c, 0xda, 0x95, 0x57, 0xee, 0xed, 0xe6,
+ 0x00, 0x19, 0xa4, 0x9d, 0xc0, 0x6c, 0xcc, 0x5e,
+ 0x7f, 0xc2, 0x22, 0xfe, 0x9d, 0x80, 0x21, 0x31,
+ 0xee, 0xb1, 0xc6, 0xeb, 0x55, 0x6b, 0x07, 0x84,
+ 0xc4, 0x4b, 0xba, 0x2c, 0xf6, 0x87, 0x8c, 0x2f,
+ 0x01, 0x09, 0x80, 0xdc, 0x1e, 0xe9, 0x76, 0x21,
+ 0xa8, 0x70, 0x42, 0x4a, 0x86, 0xed, 0x1e, 0x04,
+ 0x6e, 0x7e, 0xda, 0x11, 0x4d, 0x0e, 0x07, 0x52,
+ 0x1d, 0xeb, 0x22, 0x83, 0x74, 0xc0, 0x57, 0xe5,
+ 0x6b, 0x1d, 0x68, 0x06, 0xf3, 0x1f, 0x3e, 0xf2,
+ 0xbb, 0xdb, 0xfd, 0x20, 0x01, 0xc2, 0xdf, 0xbe,
+ 0xf2, 0x24, 0xd0, 0xd9, 0xe8, 0x7e, 0xcd, 0xa0,
+ 0x3a, 0xf5, 0x89, 0x9d, 0x06, 0xc9, 0x81, 0xfd,
+ 0xe0, 0xd9, 0xab, 0xdb, 0xbd, 0x90, 0x85, 0x36,
+ 0x27, 0xa4, 0xf8, 0x31, 0x4d, 0xc9, 0xc0, 0x4e,
+ 0xae, 0x30, 0x87, 0x3f, 0x4f, 0xcc, 0xc9, 0x3e,
+ 0x74, 0x08, 0x21, 0x8a, 0xe6, 0x63, 0x08, 0xe0,
+ 0xc2, 0x17, 0x9d, 0xaf, 0x3c, 0x12, 0xc2, 0xcd,
+ 0xa5, 0x50, 0x94, 0x8f, 0x3b, 0x93, 0x0f, 0x1a,
+ 0xc9, 0xde, 0xa8, 0x05, 0x3e, 0x0d, 0x70, 0x38,
+ 0x87, 0x08, 0x68, 0x37, 0xe1, 0xef, 0x7a, 0x99,
+ 0x89, 0xa2, 0x16, 0x32, 0x00, 0x35, 0x5d, 0x68,
+ 0x3d, 0xd2, 0x37, 0xcb, 0x19, 0x7d, 0x50, 0xfd,
+ 0xc0, 0x26, 0x6e, 0x21, 0x44, 0x22, 0x86, 0x8d,
+ 0x43, 0x28, 0x99, 0x78, 0x6b, 0x40, 0x5a, 0x8f,
+ 0x47, 0xf4, 0xda, 0x6a, 0x1b, 0x94, 0xd0, 0x65,
+ 0x87, 0xdb, 0x89, 0xb3, 0x2f, 0xe2, 0x09, 0xf5,
+ 0x33, 0x40, 0x04, 0xa7, 0x51, 0xa2, 0x96, 0x96,
+ 0x4f, 0x54, 0x45, 0xe6, 0x96, 0x5d, 0x98, 0x10,
+ 0xfb, 0xa4, 0xba, 0x73, 0x17, 0xa3, 0xfc, 0x06,
+ 0x02, 0xe5, 0x52, 0x67, 0xa8, 0xcd, 0x6f, 0xec,
+ 0x35, 0xd8, 0x90, 0x7a, 0x2e, 0x39, 0xf7, 0x86,
+ 0x75, 0xec, 0x17, 0x2a, 0x37, 0xf2, 0xb8, 0x75,
+ 0x85, 0xae, 0x66, 0xd6, 0x20, 0x7f, 0x86, 0xf6,
+ 0x6b, 0xc1, 0x32, 0x3a, 0xaf, 0xc8, 0xe2, 0x5c,
+ 0xf0, 0xca, 0xbc, 0xcc, 0x7d, 0x55, 0x1f, 0xda,
+ 0x4e, 0x3d, 0x9a, 0xf1, 0xc5, 0xba, 0xcc, 0x71,
+ 0xa8, 0x9e, 0xa8, 0x05, 0xa3, 0x79, 0x17, 0xed,
+ 0x65, 0xc3, 0x0e, 0xb8, 0x9f, 0x0b, 0x51, 0xe8,
+ 0x62, 0x47, 0x69, 0xe4, 0xf2, 0x69, 0x1d, 0x6b,
+ 0x7e, 0xe0, 0x96, 0x7d, 0x06, 0xf3, 0x82, 0xc5,
+ 0x91, 0xe7, 0x51, 0x19, 0xa0, 0xa2, 0xfa, 0xb1,
+ 0x66, 0x18, 0xd7, 0x9f, 0x0f, 0x29, 0x2d, 0x01,
+ 0x22, 0x52, 0x86, 0x54, 0x48, 0x45, 0x30, 0x7f,
+ 0x19, 0x6d, 0x7a, 0xe6, 0x9e, 0xbe, 0x31, 0x98,
+ 0x6b, 0xf7, 0xef, 0x98, 0x87, 0xc8, 0xad, 0xa4,
+ 0x32, 0xd0, 0x8e, 0x5c, 0xa7, 0x26, 0x8e, 0x6b,
+ 0x84, 0x9a, 0x22, 0x04, 0x0d, 0x0b, 0xfb, 0x79,
+ 0x78, 0xd6, 0x0c, 0x2b, 0x74, 0xc8, 0x28, 0x21,
+ 0xc8, 0xc7, 0x6a, 0xf4, 0xbe, 0x38, 0x84, 0xeb,
+ 0x41, 0x12, 0x5f, 0xbc, 0x7e, 0x55, 0xab, 0x89,
+ 0xc7, 0x91, 0x10, 0x29, 0x0b, 0xd3, 0x32, 0x50,
+ 0x71, 0xa7, 0xec, 0x88, 0x11, 0xfe, 0x35, 0x3c,
+ 0x15, 0x73, 0xbe, 0x2b, 0x52, 0xb5, 0x3f, 0x06,
+ 0x58, 0xfa, 0xf0, 0xac, 0x53, 0x3c, 0xf6, 0x08,
+ 0x35, 0xbd, 0x21, 0x76, 0x53, 0x3d, 0x6e, 0x0e,
+ 0xc0, 0x77, 0x0f, 0x5d, 0x93, 0x6d, 0x43, 0xdc,
+ 0x57, 0xf4, 0xb2, 0xae, 0x4f, 0xef, 0x3f, 0x5e,
+ 0xa8, 0x4a, 0xf3, 0xaf, 0x59, 0xe5, 0x60, 0x9d,
+ 0x69, 0xa2, 0x56, 0x5f, 0xf7, 0x5d, 0x16, 0x50,
+ 0x1c, 0xfc, 0x2c, 0x80, 0x42, 0x8c, 0x17, 0x56,
+ 0x50, 0x1e, 0x2e, 0x2b, 0x9a, 0xb8, 0x1b, 0xc9,
+ 0x1c, 0xdd, 0x8c, 0x52, 0xba, 0xe1, 0x18, 0xf7,
+ 0x65, 0x8d, 0xe1, 0x1f, 0x74, 0x25, 0x7f, 0x98,
+ 0x44, 0x86, 0xdd, 0x7c, 0x8f, 0x23, 0x87, 0x53,
+ 0x84, 0xb2, 0x04, 0x6b, 0xd0, 0x84, 0x26, 0x4f,
+ 0x64, 0x9a, 0x62, 0x18, 0xbd, 0x33, 0x28, 0xd3,
+ 0x7a, 0xc3, 0x74, 0x49, 0x58, 0x54, 0x00, 0x37,
+ 0x7b, 0xa6, 0x34, 0x77, 0xcb, 0x9e, 0xae, 0xac,
+ 0xdf, 0xa1, 0x1c, 0x94, 0x00, 0x59, 0x85, 0x7d,
+ 0xe9, 0xbf, 0xea, 0x28, 0xd1, 0x70, 0x57, 0x34,
+ 0xc8, 0xd3, 0x21, 0xa3, 0xf3, 0xbc, 0x89, 0xf6,
+ 0xe1, 0x0f, 0x15, 0xfb, 0xf4, 0x13, 0x32, 0xb0,
+ 0xff, 0x16, 0x7c, 0xa2, 0xf7, 0x55, 0xfc, 0x41,
+ 0xe4, 0xb3, 0x9f, 0x69, 0x91, 0xa3, 0x03, 0x9d,
+ 0xcc, 0x07, 0x68, 0x7d, 0x07, 0x6c, 0x90, 0x6a,
+ 0x10, 0xb4, 0x16, 0x1d, 0xc7, 0xa4, 0x56, 0x4f,
+ 0x22, 0x99, 0x72, 0xa7, 0xac, 0xf2, 0x80, 0xb9,
+ 0xee, 0xd7, 0x09, 0x5a, 0x91, 0x20, 0x96, 0xd8,
+ 0xdb, 0x7f, 0x8d, 0x85, 0xe3, 0x75, 0xf5, 0xf9,
+ 0x6c, 0x0e, 0x55, 0xe8, 0x53, 0x91, 0xba, 0xee,
+ 0xda, 0x4a, 0xb8, 0x44, 0xd1, 0xe3, 0x50, 0x7c,
+ 0xde, 0xd9, 0xd6, 0x59, 0x86, 0x51, 0x21, 0xfe,
+ 0xa7, 0x45, 0x18, 0x56, 0xee, 0x54, 0xd3, 0xb5,
+ 0x09, 0x98, 0xc4, 0x61, 0xf9, 0x7b, 0x96, 0xd4,
+ 0xc9, 0xf2, 0x32, 0x01, 0x8a, 0x2d, 0x86, 0x5d,
+ 0x74, 0x94, 0x44, 0x7d, 0x41, 0xea, 0xac, 0xc7,
+ 0xfe, 0xaf, 0x09, 0x59, 0xb3, 0x79, 0xa1, 0x3e,
+ 0xf2, 0x20, 0x35, 0x6f, 0xf0, 0x07, 0x31, 0x38,
+ 0x4b, 0xd0, 0xba, 0x77, 0x72, 0x91, 0xd5, 0x9e,
+ 0xa8, 0x75, 0xf7, 0xc8, 0xd0, 0x4d, 0xdd, 0xdf,
+ 0xcc, 0x17, 0x75, 0x1c, 0x61, 0x42, 0x82, 0x80,
+ 0x79, 0x80, 0x66, 0x6f, 0x3a, 0x64, 0xe0, 0xb6,
+ 0xd6, 0xdd, 0xce, 0xd0, 0x65, 0x78, 0x35, 0x67,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x86, 0x8d, 0xae, 0x88, 0x78, 0x21, 0xba, 0x42,
+ 0xe2, 0xb1, 0x14, 0xf5, 0x44, 0xea, 0x64, 0x75,
+ 0xe7, 0xca, 0xdd, 0xf1, 0x57, 0xd3, 0x8a, 0x45,
+ 0xed, 0x97, 0x20, 0x55, 0xd3, 0xd3, 0xfa, 0x9c,
+ 0x5b, 0x79, 0x0b, 0xb4, 0x50, 0x53, 0x77, 0xd1,
+ 0xb4, 0xaa, 0x20, 0xf3, 0xd1, 0xf0, 0x4e, 0x20,
+ 0xb4, 0x4b, 0x5f, 0xa8, 0xd6, 0xbc, 0xdc, 0x06,
+ 0xb6, 0xcc, 0xfe, 0x00, 0x7f, 0xa0, 0x76, 0x7b,
+ },
+ .sig_len = DILITHIUM65_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM65_CRYPTO_BYTES]){
+ 0x9a, 0x88, 0x40, 0x11, 0x8c, 0xf3, 0x42, 0xf0,
+ 0xa5, 0xd6, 0xcb, 0x40, 0xf7, 0x2a, 0xab, 0xac,
+ 0x0c, 0x61, 0x19, 0x89, 0x07, 0x56, 0x10, 0x75,
+ 0xed, 0xed, 0x7b, 0xef, 0xf1, 0xeb, 0x5c, 0x9c,
+ 0x51, 0x5b, 0x2d, 0x03, 0x6a, 0xc7, 0x90, 0xaa,
+ 0x71, 0x70, 0x16, 0xfd, 0x63, 0xbc, 0x37, 0x05,
+ 0x83, 0x30, 0x63, 0xf2, 0xf8, 0x70, 0x53, 0x1c,
+ 0x27, 0xc6, 0x8f, 0x49, 0x47, 0x31, 0xa1, 0xc9,
+ 0x3b, 0x7e, 0x84, 0x96, 0xb7, 0x96, 0x13, 0x80,
+ 0xab, 0xd1, 0x35, 0x27, 0x27, 0x1c, 0xbf, 0x9b,
+ 0xef, 0x0c, 0x90, 0xb6, 0x49, 0xb6, 0x7c, 0x84,
+ 0xe1, 0xf3, 0xad, 0x7c, 0xab, 0x16, 0xe9, 0x8a,
+ 0xea, 0xed, 0xbc, 0x0d, 0x59, 0x72, 0x5a, 0xf6,
+ 0x77, 0xdc, 0x75, 0x24, 0xf8, 0x3d, 0xb0, 0x74,
+ 0xad, 0x58, 0x3b, 0xaf, 0xd3, 0xa5, 0x09, 0xa5,
+ 0x9e, 0xc8, 0xf1, 0xef, 0x6d, 0x52, 0x02, 0xb1,
+ 0x1f, 0x5d, 0xb2, 0x42, 0xfc, 0x92, 0xe6, 0xdb,
+ 0x24, 0x4d, 0xc8, 0xa5, 0x05, 0x3d, 0xb5, 0x3a,
+ 0x4f, 0xab, 0xed, 0xc7, 0xd9, 0x0c, 0x48, 0x3f,
+ 0x36, 0xcd, 0x2a, 0x71, 0xbd, 0x28, 0x86, 0xbc,
+ 0x1c, 0x42, 0x13, 0xab, 0xf9, 0xa3, 0xfb, 0x36,
+ 0xd7, 0xd7, 0xf4, 0x11, 0xaa, 0xb4, 0x7e, 0xe6,
+ 0x5d, 0x62, 0x16, 0x91, 0x79, 0x3b, 0x92, 0xde,
+ 0x87, 0x41, 0x54, 0x94, 0xb2, 0x4b, 0x0e, 0x72,
+ 0xdf, 0x35, 0xd1, 0x05, 0x4e, 0xad, 0xcd, 0xaa,
+ 0x9f, 0x90, 0x42, 0x55, 0xf0, 0x33, 0x1e, 0x89,
+ 0x36, 0x96, 0x6a, 0x3c, 0x37, 0xed, 0x35, 0x1f,
+ 0x8e, 0x30, 0xbb, 0xdb, 0xae, 0xf5, 0x04, 0x5d,
+ 0x0f, 0x9b, 0x93, 0xc1, 0x40, 0x58, 0x86, 0x3b,
+ 0xe9, 0xe7, 0x14, 0x29, 0x67, 0xdc, 0x3f, 0x86,
+ 0xec, 0x9c, 0x23, 0x38, 0x2c, 0x62, 0xd3, 0x69,
+ 0xf1, 0xec, 0xac, 0x8b, 0x32, 0xa5, 0x33, 0x77,
+ 0x9b, 0x2e, 0xc7, 0xcc, 0x55, 0x48, 0x20, 0x25,
+ 0x39, 0x6c, 0x80, 0x2e, 0x87, 0x5f, 0xc5, 0x17,
+ 0x28, 0x78, 0x4e, 0xb0, 0xd5, 0x9c, 0x5f, 0x1a,
+ 0x82, 0xe0, 0x6f, 0xa3, 0x8a, 0x87, 0x78, 0x57,
+ 0x4b, 0x35, 0xc0, 0x4f, 0x15, 0x24, 0x2a, 0x57,
+ 0xaa, 0x1c, 0xd0, 0xe6, 0xe7, 0xed, 0x8f, 0x9e,
+ 0xca, 0xe2, 0x8c, 0x11, 0x8c, 0x07, 0xf5, 0x6c,
+ 0x83, 0xd0, 0x17, 0x3c, 0xb4, 0x0e, 0xe9, 0xae,
+ 0xdb, 0xa2, 0xc8, 0x8a, 0xce, 0x76, 0x81, 0x94,
+ 0x2f, 0x40, 0x29, 0xdf, 0x7c, 0x6d, 0xac, 0x8a,
+ 0x52, 0xc1, 0xd1, 0xde, 0x30, 0x9b, 0x47, 0xff,
+ 0x50, 0xa1, 0x1e, 0x44, 0x5b, 0xc3, 0xce, 0xc4,
+ 0x96, 0xbd, 0xe7, 0x15, 0xac, 0xd3, 0x06, 0x8e,
+ 0xcd, 0x51, 0x0e, 0x9a, 0xc0, 0xc6, 0xc6, 0xcb,
+ 0xc3, 0x35, 0xd0, 0xb1, 0x06, 0xaf, 0x6a, 0x75,
+ 0xab, 0xc0, 0xa1, 0x0f, 0xb9, 0xb6, 0xbd, 0x47,
+ 0x85, 0x33, 0x80, 0x9f, 0xa2, 0xf4, 0xff, 0x25,
+ 0xd1, 0x8e, 0x2f, 0x68, 0x87, 0x50, 0x98, 0xea,
+ 0x0d, 0x9f, 0x81, 0x7d, 0xd1, 0xa8, 0xd6, 0x7b,
+ 0x4f, 0x18, 0x34, 0xd0, 0xe0, 0xe8, 0x18, 0x39,
+ 0x01, 0xbe, 0xaa, 0x94, 0xeb, 0xe3, 0x6d, 0xa4,
+ 0x22, 0xc4, 0x92, 0x97, 0x51, 0xb5, 0x65, 0xe2,
+ 0x3a, 0x39, 0x1c, 0x80, 0x3c, 0x3f, 0x18, 0x4c,
+ 0x4f, 0xda, 0xd8, 0xa5, 0x77, 0xda, 0xc2, 0xe6,
+ 0xe8, 0x5f, 0xa5, 0x1c, 0xb4, 0x9c, 0x8c, 0x96,
+ 0x78, 0xdf, 0xed, 0xb5, 0xb0, 0x06, 0x69, 0x7a,
+ 0x23, 0xd5, 0x1a, 0xdd, 0xce, 0x2e, 0x61, 0x15,
+ 0x28, 0x09, 0xd2, 0x5c, 0xb0, 0xef, 0x2b, 0x41,
+ 0x89, 0x6b, 0x83, 0x69, 0xdb, 0x23, 0xcd, 0x18,
+ 0xa2, 0x77, 0x40, 0x67, 0xa4, 0x7d, 0xf2, 0x55,
+ 0xcf, 0x1d, 0xaa, 0x89, 0x08, 0x38, 0xfa, 0x42,
+ 0x69, 0x28, 0x3f, 0x05, 0xe2, 0x5e, 0xaa, 0x2f,
+ 0x46, 0x83, 0x4a, 0x12, 0x89, 0x8e, 0x0d, 0x33,
+ 0x40, 0x88, 0x5a, 0x4f, 0x2d, 0x5d, 0xdf, 0xbc,
+ 0x23, 0xc3, 0x82, 0xff, 0x2b, 0xa4, 0xa4, 0xe4,
+ 0x16, 0x8a, 0xb2, 0xf0, 0x68, 0x9b, 0x34, 0x95,
+ 0x2b, 0x5b, 0xb1, 0x42, 0x06, 0xb8, 0x33, 0x93,
+ 0x36, 0x5b, 0xf7, 0x7c, 0x30, 0xab, 0xb1, 0x8b,
+ 0x52, 0xe8, 0x8d, 0x9b, 0xcf, 0x4a, 0x1e, 0x95,
+ 0x9d, 0x8c, 0x40, 0x54, 0x5b, 0x57, 0x1b, 0xcc,
+ 0xca, 0xcf, 0xfb, 0x44, 0x6e, 0xfa, 0x45, 0x13,
+ 0xc8, 0xd0, 0x0f, 0xe3, 0x89, 0xd8, 0x43, 0x30,
+ 0xd2, 0x2a, 0x79, 0x33, 0x34, 0xbc, 0xd2, 0xd1,
+ 0x6a, 0xc3, 0x66, 0xb1, 0x4c, 0xdc, 0xc7, 0x64,
+ 0x84, 0xf9, 0x05, 0x61, 0x43, 0x64, 0xf5, 0xd0,
+ 0x8a, 0x32, 0x30, 0xec, 0x90, 0xb2, 0xf9, 0xd7,
+ 0x53, 0x62, 0x8b, 0x71, 0xbf, 0xd6, 0xa2, 0xf6,
+ 0x59, 0x60, 0xc6, 0x67, 0x82, 0xef, 0x1d, 0x59,
+ 0x0d, 0xa1, 0xa4, 0x7e, 0x9d, 0x6b, 0x95, 0x74,
+ 0xf0, 0x3d, 0x3a, 0xe8, 0xc8, 0xf4, 0x83, 0xb0,
+ 0xef, 0x3a, 0xb3, 0x56, 0x61, 0x7f, 0xa3, 0xe9,
+ 0x2b, 0x17, 0x74, 0x4e, 0xeb, 0xbe, 0xb2, 0x7a,
+ 0xca, 0xd3, 0xe4, 0x67, 0xa8, 0x62, 0x11, 0xf0,
+ 0x31, 0x72, 0x87, 0x52, 0xeb, 0xfd, 0x32, 0xb5,
+ 0xe1, 0xff, 0x84, 0xfb, 0x81, 0xf7, 0x78, 0xef,
+ 0x0d, 0xbd, 0x03, 0xcf, 0xd6, 0xa0, 0x80, 0xb4,
+ 0x04, 0x2b, 0x8a, 0xd7, 0x4f, 0x86, 0x60, 0x16,
+ 0x9b, 0x41, 0xa0, 0x85, 0xce, 0xd5, 0xc9, 0x26,
+ 0xd5, 0xf8, 0xa2, 0x67, 0x6b, 0xa5, 0xb5, 0x8d,
+ 0x14, 0x61, 0xae, 0x42, 0xbc, 0x6a, 0xb0, 0x66,
+ 0x07, 0x8a, 0xbb, 0xa9, 0xd2, 0xce, 0x48, 0x12,
+ 0x5c, 0xe2, 0x60, 0x3d, 0x2f, 0xd0, 0x48, 0x3b,
+ 0xe8, 0xf1, 0xc1, 0xd6, 0x11, 0x84, 0xef, 0x6b,
+ 0xbe, 0x8a, 0x28, 0x56, 0xb5, 0xae, 0x7a, 0x41,
+ 0xeb, 0x70, 0x2c, 0x46, 0x2f, 0x37, 0xe1, 0x9d,
+ 0xe9, 0x3c, 0xa4, 0x9c, 0xd2, 0x71, 0xb4, 0x1a,
+ 0xcf, 0xf0, 0xbe, 0x58, 0xe1, 0xf4, 0x14, 0xcd,
+ 0xb1, 0x25, 0xfd, 0x54, 0x60, 0x40, 0xfe, 0xa2,
+ 0xf8, 0xab, 0x09, 0xd0, 0xca, 0x45, 0x98, 0xe6,
+ 0xff, 0x73, 0x9a, 0x6c, 0x3a, 0x5f, 0x3d, 0xef,
+ 0xc6, 0x19, 0x0f, 0x2e, 0x7e, 0x7e, 0xa8, 0x44,
+ 0xe4, 0x57, 0xd9, 0x7f, 0x3e, 0x44, 0x1d, 0x1b,
+ 0x8f, 0xeb, 0x99, 0xb9, 0x1b, 0x00, 0xde, 0xcb,
+ 0x98, 0xc9, 0x5c, 0xc5, 0x87, 0x0e, 0xdc, 0xaa,
+ 0xb5, 0x67, 0x63, 0x08, 0x05, 0x7a, 0xab, 0xf2,
+ 0x7a, 0x81, 0x8b, 0xb0, 0xd6, 0x3c, 0xa0, 0xd5,
+ 0x6d, 0xc9, 0xa0, 0xf7, 0xa7, 0xdf, 0xa6, 0x6c,
+ 0x83, 0x8f, 0xea, 0xb5, 0x1f, 0x21, 0x46, 0xb8,
+ 0xf4, 0xd0, 0x8b, 0x79, 0x56, 0x2f, 0x3a, 0x45,
+ 0x0d, 0x2f, 0xfb, 0xbd, 0x96, 0x23, 0xbd, 0xc7,
+ 0x51, 0xf6, 0x4a, 0xb9, 0xe6, 0x40, 0x23, 0x66,
+ 0x48, 0x0c, 0x61, 0x95, 0x07, 0x7b, 0x4b, 0x95,
+ 0x12, 0x72, 0x82, 0x00, 0xb6, 0x52, 0xb9, 0x63,
+ 0xf6, 0xf5, 0xb4, 0xdb, 0x06, 0xdd, 0x9a, 0x1a,
+ 0xac, 0x96, 0xb9, 0x0c, 0xcc, 0x40, 0x3a, 0xc0,
+ 0x94, 0x3d, 0x4c, 0xab, 0xcd, 0x83, 0xc7, 0x9f,
+ 0x1c, 0x3d, 0x9a, 0x4e, 0x9e, 0xd5, 0x63, 0x79,
+ 0xed, 0xd3, 0xe4, 0x02, 0xa6, 0x0d, 0xdb, 0x6a,
+ 0x8b, 0xf5, 0x34, 0x71, 0x08, 0xb3, 0xc4, 0x4e,
+ 0xa0, 0xaf, 0xd1, 0xcf, 0xb1, 0x57, 0x72, 0x8a,
+ 0xf7, 0x1f, 0x76, 0x98, 0xe5, 0xfc, 0x44, 0x53,
+ 0xd5, 0xa1, 0xb0, 0x79, 0x35, 0x69, 0x8a, 0x5e,
+ 0x33, 0xd7, 0x04, 0x45, 0xc5, 0xe0, 0x16, 0x99,
+ 0x6a, 0x85, 0x69, 0xec, 0xff, 0xb0, 0x7b, 0x32,
+ 0x98, 0x26, 0xbb, 0xae, 0xae, 0xb6, 0xd4, 0xc6,
+ 0x48, 0x10, 0x77, 0x42, 0x95, 0x4d, 0x08, 0x70,
+ 0xdf, 0x78, 0x0c, 0x40, 0x3a, 0xd6, 0xc3, 0xf9,
+ 0x4a, 0x17, 0xf5, 0xdd, 0x39, 0xec, 0xf3, 0x0c,
+ 0x8c, 0x30, 0x6c, 0xd7, 0x4c, 0x54, 0x81, 0x22,
+ 0x99, 0xb7, 0xf3, 0xc9, 0xae, 0x45, 0x99, 0x92,
+ 0x87, 0xf5, 0x50, 0x04, 0xa5, 0x48, 0x76, 0xbb,
+ 0xca, 0xf3, 0xe1, 0x5a, 0x93, 0xf4, 0x49, 0x54,
+ 0xf1, 0x95, 0x06, 0xe6, 0xb0, 0x19, 0xf6, 0x08,
+ 0x4d, 0x7b, 0x7d, 0x6f, 0xdc, 0x8f, 0x3a, 0x7d,
+ 0xc0, 0x0e, 0xa4, 0xef, 0x36, 0x66, 0x9a, 0x9d,
+ 0x75, 0xe8, 0x48, 0x08, 0xfa, 0x8a, 0x58, 0x51,
+ 0xc0, 0x6f, 0x85, 0x23, 0x45, 0x7f, 0x75, 0xd6,
+ 0xca, 0xc6, 0x18, 0x20, 0x46, 0x5e, 0x3f, 0x1a,
+ 0x44, 0x0e, 0xf1, 0x77, 0x5f, 0xdd, 0xff, 0xa9,
+ 0x90, 0x3f, 0x64, 0x14, 0xee, 0x5e, 0x6c, 0xf9,
+ 0x04, 0x2b, 0xbc, 0xd5, 0xad, 0x80, 0x44, 0xc5,
+ 0x64, 0x81, 0x9c, 0xbf, 0x4b, 0x84, 0x6b, 0xff,
+ 0x42, 0x2a, 0xca, 0xdb, 0x77, 0x0c, 0xcb, 0x96,
+ 0x1a, 0xa7, 0xfb, 0xa1, 0x25, 0x34, 0x25, 0x43,
+ 0x9b, 0x0f, 0x08, 0x48, 0xc0, 0x9f, 0xe8, 0xb3,
+ 0x1d, 0x49, 0x12, 0x12, 0xdd, 0xa1, 0xea, 0x67,
+ 0xbf, 0x4b, 0x13, 0x6a, 0x48, 0xc2, 0x72, 0x3d,
+ 0x25, 0xc9, 0x1e, 0x29, 0x0d, 0xf9, 0x9f, 0x1a,
+ 0xfa, 0x2f, 0x17, 0x2e, 0x99, 0xc7, 0x2c, 0x88,
+ 0xf1, 0x42, 0x80, 0x97, 0xfb, 0x9f, 0xd3, 0x50,
+ 0xf9, 0xe9, 0x3f, 0xb4, 0x5a, 0xcb, 0xc8, 0x4d,
+ 0xf8, 0x16, 0xd0, 0x50, 0x71, 0xbc, 0xc0, 0x00,
+ 0xeb, 0xbf, 0x27, 0x20, 0x45, 0x40, 0x33, 0xb0,
+ 0xdf, 0x8a, 0x56, 0xb0, 0x5a, 0xb8, 0x7c, 0xbe,
+ 0x2c, 0xb2, 0xd4, 0xd6, 0x03, 0x98, 0x74, 0x7e,
+ 0xac, 0xba, 0x46, 0x4b, 0x7b, 0x5a, 0x31, 0x2f,
+ 0xfc, 0x34, 0xdc, 0x1a, 0x9f, 0x99, 0x81, 0xee,
+ 0x6f, 0x19, 0xb1, 0x88, 0xfd, 0x4c, 0x88, 0x3b,
+ 0x8d, 0xfd, 0xb8, 0x3f, 0xbd, 0xb4, 0xba, 0x52,
+ 0x34, 0x75, 0x29, 0x2b, 0x79, 0x7d, 0x62, 0x80,
+ 0xaf, 0x61, 0x67, 0x72, 0x06, 0x0a, 0x50, 0xfd,
+ 0xd7, 0xd5, 0xed, 0x97, 0x6f, 0x0d, 0x94, 0x8a,
+ 0x91, 0xac, 0xaa, 0xd2, 0x2a, 0x2f, 0xe9, 0x79,
+ 0x47, 0xc3, 0x1f, 0xcf, 0xcb, 0x6b, 0xc4, 0xd3,
+ 0x9c, 0x9d, 0xf2, 0x9b, 0xac, 0x8a, 0xbe, 0xd3,
+ 0x28, 0x56, 0xb6, 0xaa, 0xd0, 0x83, 0x62, 0x8f,
+ 0xea, 0xbd, 0x8f, 0x52, 0x4d, 0xd4, 0x88, 0x2c,
+ 0x2c, 0x8d, 0x09, 0x8c, 0xb4, 0xeb, 0xe8, 0x3c,
+ 0x0c, 0xc1, 0x9c, 0xa8, 0x70, 0x63, 0xe4, 0xaa,
+ 0x21, 0x80, 0xf9, 0x2b, 0xaf, 0x2a, 0xdd, 0xf0,
+ 0xe1, 0x04, 0x05, 0xe2, 0x8c, 0x12, 0x78, 0xed,
+ 0x57, 0x46, 0x16, 0xcc, 0xb8, 0xbb, 0x36, 0x54,
+ 0x66, 0xb6, 0x22, 0x81, 0x88, 0xfc, 0x42, 0x92,
+ 0xca, 0xd5, 0xeb, 0x66, 0x13, 0x7a, 0xd1, 0x33,
+ 0xc4, 0xcd, 0xfb, 0xe0, 0x8b, 0xc4, 0x90, 0x9f,
+ 0xc5, 0xb9, 0xff, 0xb9, 0xbb, 0x41, 0x72, 0x2e,
+ 0x7d, 0xcc, 0x91, 0x76, 0x1b, 0xdd, 0x40, 0xf3,
+ 0xd3, 0xef, 0x80, 0xfb, 0xee, 0x60, 0x33, 0xad,
+ 0x89, 0x64, 0xae, 0x30, 0x41, 0xe0, 0x93, 0x6c,
+ 0x52, 0xe1, 0x13, 0x8d, 0xb9, 0x22, 0x25, 0x0d,
+ 0xbb, 0x6a, 0x9a, 0x91, 0xf3, 0xe8, 0x2c, 0x96,
+ 0xd5, 0xf7, 0xa9, 0x54, 0x86, 0xbf, 0xb0, 0x8b,
+ 0xf3, 0x6d, 0x9a, 0x9c, 0x5d, 0xbd, 0x82, 0x1f,
+ 0xdc, 0x73, 0xb6, 0xa0, 0xe5, 0x9e, 0x4d, 0x7d,
+ 0xb4, 0x4d, 0xbf, 0xe6, 0xed, 0xc5, 0xd4, 0x58,
+ 0x48, 0x93, 0xe9, 0x9a, 0x8d, 0x09, 0xd4, 0xfa,
+ 0x6a, 0xfe, 0x5c, 0x2a, 0x11, 0x46, 0x71, 0x61,
+ 0xbc, 0x4f, 0x48, 0x23, 0x8c, 0x12, 0x67, 0xf2,
+ 0x29, 0x25, 0x93, 0x1f, 0xb5, 0x7b, 0x15, 0x39,
+ 0xad, 0x58, 0xb5, 0x10, 0xbe, 0xc6, 0xe3, 0x2d,
+ 0x71, 0xaf, 0xcd, 0xa0, 0x68, 0xd7, 0x8b, 0x71,
+ 0x48, 0x9f, 0x3d, 0x8a, 0x0a, 0x8e, 0xb7, 0xc7,
+ 0x1a, 0xbd, 0x5e, 0x66, 0x1d, 0x03, 0x61, 0xf4,
+ 0xd1, 0xc2, 0xf1, 0xaf, 0x50, 0x93, 0x44, 0x74,
+ 0x4c, 0x6e, 0x83, 0x9b, 0xa6, 0x19, 0x1a, 0x2e,
+ 0xa3, 0xa5, 0xef, 0x0c, 0xc6, 0x71, 0x49, 0x0d,
+ 0x56, 0xe6, 0xd4, 0x7b, 0x16, 0x8f, 0xe4, 0x5b,
+ 0x78, 0x75, 0x7a, 0xe0, 0x4f, 0xe8, 0x40, 0x97,
+ 0x9a, 0xc5, 0x95, 0x74, 0x29, 0xda, 0xfa, 0x32,
+ 0xfb, 0x9e, 0xfa, 0x78, 0x90, 0x76, 0xb0, 0x1c,
+ 0xcd, 0xa9, 0x67, 0x92, 0x58, 0xf2, 0xcf, 0xc6,
+ 0x9b, 0xaf, 0x2e, 0xfd, 0x6f, 0x1f, 0x13, 0xbc,
+ 0x18, 0xd4, 0xdb, 0x1b, 0x8d, 0xcf, 0x38, 0xd7,
+ 0xc9, 0x52, 0xd2, 0x33, 0xe2, 0xf1, 0xe2, 0x7c,
+ 0x98, 0x7f, 0xfe, 0x44, 0xe7, 0x1d, 0xe3, 0x23,
+ 0x95, 0xf1, 0x6d, 0xe9, 0xf9, 0x72, 0x3f, 0x8c,
+ 0xb7, 0xdb, 0x2e, 0xb7, 0x4e, 0x33, 0xd0, 0x87,
+ 0x78, 0x30, 0xb9, 0x41, 0xcf, 0x92, 0x8d, 0xbc,
+ 0xe6, 0x4e, 0x7f, 0x52, 0x5f, 0x45, 0x4c, 0x44,
+ 0x2b, 0xd2, 0xa4, 0x3c, 0xb0, 0x20, 0x88, 0xf2,
+ 0x59, 0xfc, 0xfb, 0x1f, 0xaf, 0x3e, 0x80, 0xa7,
+ 0xb7, 0x12, 0x0a, 0x5b, 0xc8, 0x0d, 0x17, 0x98,
+ 0x25, 0x36, 0x01, 0x4b, 0xd8, 0x03, 0x7b, 0x84,
+ 0xc5, 0x75, 0xa9, 0x16, 0x90, 0xc8, 0x5a, 0x25,
+ 0xed, 0xf8, 0x5b, 0x89, 0x54, 0x2d, 0xbd, 0x46,
+ 0xf6, 0xc2, 0xf1, 0x39, 0xdc, 0x29, 0x11, 0x37,
+ 0x84, 0xc5, 0x91, 0xd2, 0x4c, 0xf6, 0x27, 0x94,
+ 0x4a, 0xdc, 0x82, 0xc5, 0x95, 0xd5, 0xc3, 0x41,
+ 0xad, 0x1c, 0xcd, 0xeb, 0xfe, 0x6f, 0x16, 0xef,
+ 0x5e, 0x65, 0x1d, 0x7a, 0xa0, 0xc9, 0xed, 0xa9,
+ 0xcd, 0x31, 0xec, 0x64, 0x74, 0xb3, 0x25, 0x6d,
+ 0xb3, 0xea, 0x0f, 0xa7, 0xf5, 0x7d, 0x88, 0xe9,
+ 0xc3, 0x37, 0x29, 0x88, 0xcf, 0x05, 0x7d, 0xee,
+ 0xc0, 0x2a, 0x30, 0x5f, 0x9f, 0xf9, 0xa6, 0x6b,
+ 0xa7, 0x6a, 0x3d, 0xe8, 0xfa, 0x3c, 0xe1, 0x45,
+ 0x57, 0x4f, 0x27, 0xb6, 0x28, 0x60, 0xc0, 0xad,
+ 0x3d, 0x54, 0x07, 0x53, 0x81, 0x10, 0x64, 0xad,
+ 0x22, 0x61, 0x4b, 0xbf, 0xe6, 0xe7, 0x10, 0xe4,
+ 0xe7, 0x46, 0x58, 0x0e, 0x40, 0x53, 0x5d, 0x96,
+ 0x51, 0xf8, 0x9f, 0xa6, 0xfa, 0xa0, 0xe3, 0xc2,
+ 0xa5, 0x36, 0x4c, 0x7a, 0x71, 0x53, 0xa9, 0x36,
+ 0xf6, 0xf2, 0xa3, 0xba, 0x60, 0x7b, 0x5b, 0x11,
+ 0xd2, 0x39, 0x20, 0xeb, 0x09, 0x68, 0x4a, 0x1b,
+ 0xe4, 0x31, 0xa5, 0xc9, 0xc9, 0xe5, 0xf4, 0x47,
+ 0x5e, 0x26, 0x30, 0xf1, 0x83, 0x39, 0xa5, 0x4c,
+ 0xa0, 0x72, 0x68, 0x8f, 0x4b, 0xd6, 0x64, 0x4c,
+ 0xf5, 0x34, 0x74, 0x3d, 0x0c, 0x76, 0x10, 0xf4,
+ 0x84, 0x5c, 0x9c, 0xbe, 0xe8, 0xe6, 0x24, 0x19,
+ 0x4e, 0x34, 0x0a, 0x7a, 0x5d, 0x37, 0xae, 0xec,
+ 0x2e, 0xf6, 0x05, 0x4a, 0x13, 0xf0, 0xc3, 0xb1,
+ 0xd0, 0x41, 0xde, 0x5b, 0xcf, 0x86, 0xcc, 0xfc,
+ 0xda, 0xa9, 0x31, 0x26, 0x09, 0xc3, 0x85, 0xe8,
+ 0xd1, 0xa1, 0x39, 0x29, 0x73, 0xa9, 0xa7, 0x26,
+ 0xda, 0x93, 0x4b, 0x1c, 0x41, 0xaf, 0x82, 0x9c,
+ 0xa6, 0x05, 0x85, 0x93, 0x13, 0x60, 0x78, 0x54,
+ 0x26, 0x11, 0x22, 0xc3, 0x4a, 0xde, 0x20, 0x54,
+ 0xf4, 0x56, 0xc8, 0xc1, 0x09, 0x47, 0xfb, 0x47,
+ 0x3e, 0x5c, 0x4c, 0x6e, 0xab, 0x9e, 0x22, 0x67,
+ 0x4a, 0x80, 0xd7, 0x54, 0x8d, 0xdd, 0x57, 0x89,
+ 0x77, 0xba, 0x96, 0x84, 0x73, 0x6d, 0x29, 0xa5,
+ 0x73, 0x24, 0x3a, 0x54, 0x61, 0x5e, 0x80, 0xf7,
+ 0x65, 0x41, 0x56, 0x32, 0x57, 0xb4, 0xb8, 0x22,
+ 0x91, 0xef, 0xfd, 0x66, 0x12, 0x61, 0x84, 0xd9,
+ 0x7d, 0x14, 0xa9, 0xd0, 0xf3, 0x82, 0xec, 0xf0,
+ 0x91, 0x79, 0x70, 0xaa, 0xe3, 0x08, 0x5f, 0xc8,
+ 0x3e, 0xc3, 0x4f, 0x51, 0xb3, 0x1c, 0x55, 0x34,
+ 0xea, 0x8c, 0x9b, 0x70, 0xd5, 0xae, 0x95, 0xd8,
+ 0xf5, 0x73, 0x47, 0x9d, 0xbf, 0x7f, 0xab, 0xe1,
+ 0x2a, 0x26, 0x4c, 0x0c, 0x1b, 0xab, 0x09, 0xae,
+ 0x14, 0x14, 0x96, 0x7c, 0x61, 0xc0, 0xd1, 0x3f,
+ 0xe0, 0x6c, 0x29, 0x7a, 0x13, 0x82, 0x3a, 0x10,
+ 0xca, 0x79, 0xa1, 0x69, 0xb5, 0xe4, 0x12, 0x8f,
+ 0x88, 0x91, 0x89, 0x4c, 0x49, 0xbb, 0x21, 0xba,
+ 0xca, 0xd0, 0x38, 0xf2, 0x91, 0xed, 0x49, 0x6a,
+ 0x59, 0xa7, 0x74, 0x87, 0xa1, 0x6e, 0x47, 0x18,
+ 0x2d, 0xbe, 0xcf, 0x41, 0x3a, 0x07, 0x9e, 0xb8,
+ 0x2b, 0xf9, 0x93, 0xd6, 0xd1, 0x06, 0xa6, 0xa4,
+ 0x3f, 0xef, 0x1e, 0xba, 0x3f, 0xf7, 0x3d, 0xe2,
+ 0x3d, 0xf9, 0xa9, 0x20, 0xa5, 0x81, 0x2a, 0x3f,
+ 0xb3, 0xbd, 0xdd, 0xae, 0x3f, 0xb5, 0xf7, 0xdd,
+ 0x47, 0x9c, 0x57, 0x2d, 0xa9, 0xd1, 0x5d, 0x61,
+ 0xaa, 0xd6, 0xca, 0x32, 0x35, 0x68, 0x69, 0xdb,
+ 0xed, 0xb4, 0xd8, 0x2e, 0xc8, 0x41, 0x7e, 0x79,
+ 0xad, 0xd0, 0xca, 0x2b, 0xa3, 0x2c, 0x9d, 0x16,
+ 0x13, 0x79, 0x8c, 0x30, 0x01, 0xf4, 0x33, 0x48,
+ 0x4a, 0x09, 0xa3, 0xaa, 0xd1, 0x75, 0xfc, 0xc7,
+ 0xac, 0x43, 0xc1, 0xd7, 0xcf, 0x90, 0x91, 0x90,
+ 0x24, 0x5a, 0x8b, 0xfd, 0xff, 0x1a, 0x8e, 0xa0,
+ 0x25, 0xb7, 0x28, 0x8c, 0x21, 0x96, 0x25, 0x12,
+ 0xe3, 0x9a, 0x19, 0xe4, 0x1a, 0x50, 0x2c, 0x9b,
+ 0x48, 0x3b, 0xc9, 0x82, 0xc9, 0x29, 0xdc, 0x4d,
+ 0x0c, 0xb6, 0x5d, 0x2e, 0xc1, 0xc8, 0x5a, 0xdd,
+ 0x39, 0x97, 0x4c, 0xce, 0xea, 0x33, 0x95, 0xa5,
+ 0x86, 0x5e, 0x1b, 0x21, 0xf1, 0x73, 0x58, 0xe7,
+ 0x28, 0x13, 0xca, 0x9d, 0xd9, 0x7a, 0xe8, 0x94,
+ 0x56, 0xd3, 0x35, 0xfe, 0x18, 0x4a, 0x91, 0x6e,
+ 0x99, 0x83, 0xac, 0x9f, 0x99, 0x0b, 0xbd, 0xf3,
+ 0xbf, 0x0e, 0x3d, 0xf6, 0xcd, 0x9f, 0xfc, 0x80,
+ 0x9d, 0x72, 0x7f, 0x60, 0xd2, 0xf6, 0x1e, 0xa6,
+ 0x0f, 0xeb, 0xa7, 0xee, 0xe3, 0x8d, 0x56, 0xf8,
+ 0x20, 0x76, 0xcf, 0x7e, 0xf9, 0x5d, 0x06, 0x08,
+ 0xe0, 0xcb, 0xf0, 0x89, 0xfc, 0x39, 0x54, 0x60,
+ 0x4f, 0x92, 0xfd, 0x04, 0xab, 0xa6, 0x6e, 0x63,
+ 0x44, 0xab, 0xc3, 0x70, 0x1b, 0x57, 0x01, 0x79,
+ 0x88, 0x5e, 0xc0, 0x25, 0xc8, 0xe1, 0x03, 0xdd,
+ 0x0f, 0x61, 0x2b, 0x50, 0x13, 0x84, 0x02, 0x79,
+ 0x3a, 0x89, 0x16, 0x08, 0x34, 0x3e, 0x76, 0xf7,
+ 0x4f, 0xbc, 0x9e, 0xfb, 0xb5, 0x81, 0xc4, 0xda,
+ 0x95, 0x8b, 0x33, 0x92, 0x49, 0x86, 0x02, 0x44,
+ 0x8d, 0x60, 0x74, 0x77, 0x5c, 0x6d, 0xcc, 0x0d,
+ 0x67, 0xbe, 0x6e, 0x4a, 0xd9, 0x8c, 0xdd, 0x09,
+ 0x7d, 0x90, 0x15, 0x2b, 0x6f, 0x7a, 0xca, 0x2d,
+ 0x91, 0x74, 0x08, 0xd5, 0x38, 0xb4, 0xcb, 0xd3,
+ 0xd5, 0x66, 0x2b, 0x2c, 0x98, 0xd1, 0x1f, 0x40,
+ 0x06, 0x94, 0x83, 0x3c, 0xe4, 0x95, 0x59, 0x8c,
+ 0xcb, 0x5d, 0x1f, 0x2f, 0xd1, 0x28, 0x26, 0xd5,
+ 0x41, 0x42, 0x89, 0x60, 0xdc, 0xfb, 0xba, 0x40,
+ 0x99, 0xe8, 0xa1, 0x99, 0xd4, 0x97, 0x05, 0xf1,
+ 0xf4, 0x68, 0xa7, 0x95, 0x9b, 0x46, 0xbe, 0x3a,
+ 0xa2, 0x38, 0x81, 0x1d, 0x3f, 0xa3, 0x39, 0x20,
+ 0xa1, 0x1a, 0x3c, 0x59, 0x1d, 0x34, 0x77, 0xd0,
+ 0x8b, 0xb9, 0x49, 0x7d, 0xba, 0x8f, 0x97, 0x27,
+ 0x1c, 0xbe, 0xf5, 0x9b, 0x4b, 0x88, 0x87, 0x1b,
+ 0xd8, 0xbe, 0x6e, 0x41, 0xd3, 0x54, 0x9a, 0xe3,
+ 0x52, 0x05, 0xe2, 0x01, 0x18, 0x31, 0xd2, 0xe2,
+ 0x2e, 0xdd, 0x85, 0xd3, 0x2c, 0xe0, 0x07, 0xed,
+ 0xa8, 0x0e, 0xc3, 0x0d, 0x83, 0x01, 0xa6, 0xcd,
+ 0x0d, 0x50, 0xde, 0xb6, 0x6b, 0xf7, 0x59, 0x3f,
+ 0xb7, 0x26, 0x4f, 0x55, 0x4d, 0xd8, 0x34, 0x39,
+ 0xef, 0x47, 0x7d, 0x6c, 0x8c, 0x2e, 0xfb, 0x67,
+ 0x49, 0x61, 0x5b, 0x33, 0x9d, 0xe2, 0x94, 0xb7,
+ 0x76, 0x80, 0x1f, 0xed, 0x73, 0xc7, 0xf6, 0xab,
+ 0xc0, 0x77, 0x59, 0x10, 0x49, 0xe6, 0x59, 0x09,
+ 0xf6, 0xb0, 0x07, 0x09, 0x87, 0x54, 0xe5, 0x0b,
+ 0x0e, 0x73, 0x2b, 0xed, 0xba, 0xcf, 0xb1, 0xc5,
+ 0xa0, 0xf3, 0x24, 0x9a, 0xc2, 0x56, 0x70, 0xf3,
+ 0xb6, 0x92, 0xab, 0x91, 0x3a, 0x54, 0x8a, 0x5b,
+ 0x9e, 0x93, 0x3f, 0x12, 0x22, 0xa5, 0xa5, 0x52,
+ 0xb3, 0xbf, 0x83, 0x58, 0x96, 0x90, 0x93, 0xd1,
+ 0x9f, 0xaf, 0x0a, 0x22, 0x04, 0x6f, 0x23, 0xa3,
+ 0x3d, 0x65, 0x98, 0xd4, 0xbd, 0x61, 0xe3, 0xd8,
+ 0x44, 0x6b, 0xc7, 0xe9, 0xcc, 0x8f, 0xbb, 0x55,
+ 0x8f, 0x33, 0xce, 0xfe, 0x76, 0xff, 0x42, 0x6d,
+ 0xe4, 0xfa, 0xca, 0x87, 0x99, 0x5b, 0x68, 0x93,
+ 0xff, 0x0f, 0xba, 0xd7, 0x6d, 0x1d, 0x17, 0xd8,
+ 0x9e, 0xd2, 0x69, 0x70, 0x25, 0x4f, 0x3a, 0xa8,
+ 0xd0, 0x0d, 0xea, 0xdd, 0x0f, 0xc5, 0xa3, 0x13,
+ 0x72, 0xb8, 0x5a, 0x91, 0xb6, 0x47, 0xf3, 0xd4,
+ 0x4a, 0xf8, 0xa1, 0xe9, 0xa7, 0x11, 0xc0, 0xba,
+ 0xc5, 0x1d, 0xbb, 0xcf, 0x98, 0x19, 0x56, 0x7c,
+ 0xde, 0xe4, 0x01, 0xbc, 0x0b, 0xe0, 0x3b, 0x43,
+ 0xb2, 0x7d, 0x8c, 0x67, 0x1c, 0x2d, 0xdf, 0xb2,
+ 0xf8, 0xcc, 0x7b, 0xdd, 0x45, 0x6c, 0x6f, 0xfb,
+ 0x6d, 0xaf, 0xc6, 0x20, 0xaa, 0x25, 0xb7, 0xf9,
+ 0x94, 0x48, 0xaf, 0x45, 0x96, 0x2a, 0x78, 0x78,
+ 0x62, 0x8a, 0x23, 0xb5, 0x7d, 0x37, 0x98, 0xfd,
+ 0x5d, 0x96, 0x50, 0x2f, 0x2c, 0x4b, 0x45, 0xa3,
+ 0xf1, 0xaa, 0x2d, 0x92, 0x6d, 0xa8, 0xd1, 0x6b,
+ 0x41, 0x53, 0x37, 0xff, 0x06, 0xfd, 0x8f, 0x57,
+ 0xe9, 0x30, 0x05, 0x52, 0x64, 0xa9, 0x91, 0x8a,
+ 0x33, 0xec, 0x62, 0xcd, 0x61, 0xae, 0x3c, 0x32,
+ 0x57, 0x3e, 0xe4, 0x86, 0xdf, 0xb8, 0x0e, 0x7b,
+ 0x07, 0x2c, 0xaf, 0x9f, 0xcc, 0x15, 0xe0, 0x67,
+ 0x65, 0xab, 0x85, 0x86, 0x7e, 0x00, 0x6a, 0x2f,
+ 0x62, 0x52, 0xfa, 0x2f, 0x37, 0x8d, 0x38, 0x55,
+ 0x40, 0x9d, 0x6c, 0x01, 0x7c, 0x0b, 0x93, 0x20,
+ 0x60, 0x69, 0x9d, 0x6e, 0xc9, 0x4d, 0xe5, 0x62,
+ 0x4b, 0x94, 0xe4, 0x05, 0x26, 0x46, 0x37, 0xd8,
+ 0x3f, 0xd7, 0x16, 0x35, 0x45, 0x88, 0x4c, 0xad,
+ 0x6a, 0xa6, 0xb2, 0x1b, 0x63, 0x9a, 0x3e, 0xfc,
+ 0x69, 0xdd, 0xbb, 0x5b, 0xf4, 0xf3, 0xa1, 0x8c,
+ 0xba, 0xd5, 0xef, 0x6a, 0xf0, 0x97, 0x2f, 0x20,
+ 0x79, 0xdf, 0x11, 0x2c, 0x75, 0xab, 0x0d, 0x22,
+ 0xaa, 0x6e, 0x8a, 0x59, 0x5e, 0x0c, 0x88, 0xe5,
+ 0x1c, 0x4b, 0x6e, 0x1a, 0x5c, 0xa8, 0xe7, 0x36,
+ 0xc9, 0x6a, 0x49, 0x85, 0xe0, 0x06, 0xa8, 0xaa,
+ 0xed, 0x87, 0x29, 0x28, 0x0a, 0x40, 0xce, 0xdb,
+ 0x78, 0xc6, 0x65, 0x26, 0x4d, 0x13, 0xdb, 0x89,
+ 0xf9, 0x04, 0xdd, 0x58, 0x92, 0x8c, 0x5f, 0xad,
+ 0x02, 0xee, 0xe9, 0xaa, 0x97, 0x6b, 0xf8, 0x77,
+ 0x15, 0x7c, 0xb4, 0xa8, 0x30, 0x12, 0x8e, 0xbb,
+ 0x4e, 0xc2, 0x19, 0x14, 0x0e, 0x0c, 0xc9, 0x5d,
+ 0xc4, 0x47, 0x30, 0xe4, 0x85, 0x71, 0x98, 0x52,
+ 0x53, 0x55, 0x6c, 0x11, 0x8b, 0xbd, 0x12, 0x77,
+ 0xe9, 0x84, 0xd2, 0x5b, 0x17, 0x90, 0x24, 0xae,
+ 0x7c, 0xc8, 0xf9, 0xdf, 0xd0, 0x98, 0xe6, 0x6c,
+ 0xe8, 0xac, 0xeb, 0x53, 0x1b, 0x58, 0x97, 0xa0,
+ 0xc4, 0x4c, 0xfb, 0x47, 0xb6, 0x1d, 0x7a, 0x59,
+ 0x42, 0x28, 0xb4, 0xdb, 0x87, 0x84, 0x93, 0xde,
+ 0x18, 0xd8, 0xe3, 0x4e, 0xe6, 0xcf, 0xe0, 0x7e,
+ 0x09, 0xe1, 0x82, 0x40, 0x5d, 0x51, 0x80, 0x75,
+ 0x50, 0x88, 0xef, 0x99, 0xbd, 0x41, 0xd3, 0x8e,
+ 0xe9, 0x96, 0xdd, 0x97, 0x55, 0xe0, 0xbc, 0x5d,
+ 0xba, 0xda, 0x0b, 0x15, 0xb3, 0x98, 0x86, 0x99,
+ 0xd7, 0xba, 0xaf, 0x5d, 0xb7, 0x84, 0xe3, 0xde,
+ 0x47, 0xca, 0xff, 0xc8, 0x14, 0xbe, 0x1a, 0xc5,
+ 0xd9, 0x8a, 0xcb, 0xd6, 0x0b, 0xe5, 0x9d, 0xe8,
+ 0xf9, 0x5e, 0x78, 0xec, 0xa6, 0xbd, 0x72, 0xd7,
+ 0xc0, 0x33, 0xf7, 0xfa, 0xc1, 0x33, 0x3a, 0x9b,
+ 0x11, 0xd8, 0x02, 0x8c, 0xd0, 0xe8, 0x37, 0xb8,
+ 0x25, 0xe3, 0x97, 0x24, 0x2e, 0x29, 0x41, 0x83,
+ 0xee, 0x4a, 0x22, 0x00, 0x7c, 0xc1, 0x4c, 0xf5,
+ 0xe5, 0xac, 0xf7, 0x6b, 0xa9, 0x93, 0x76, 0x37,
+ 0x52, 0x9b, 0xfe, 0xb9, 0x2f, 0xe9, 0xc9, 0xe2,
+ 0xaa, 0xcc, 0x72, 0x7a, 0xab, 0xd4, 0x23, 0x0b,
+ 0x0c, 0xc9, 0x63, 0x4c, 0x02, 0x3e, 0x38, 0x58,
+ 0x4e, 0xea, 0xdc, 0xeb, 0xbd, 0x7c, 0xb7, 0xfd,
+ 0xf8, 0x99, 0x2b, 0x0b, 0x72, 0x8b, 0x44, 0x6d,
+ 0x3b, 0xe8, 0x97, 0xf2, 0xa1, 0xbf, 0x4e, 0x93,
+ 0xf0, 0x64, 0x16, 0x4d, 0x39, 0xf8, 0x72, 0xe7,
+ 0x73, 0x2e, 0xbc, 0x08, 0x0f, 0x42, 0x7e, 0x30,
+ 0xb8, 0xbf, 0x75, 0xed, 0x00, 0x50, 0x9f, 0x81,
+ 0x13, 0x3b, 0xc9, 0x33, 0x4d, 0xf9, 0x7e, 0x8b,
+ 0x5c, 0xd8, 0x7c, 0xe4, 0x0d, 0x95, 0x63, 0x28,
+ 0x59, 0x68, 0x97, 0x02, 0x0c, 0x1e, 0x57, 0xa6,
+ 0x0b, 0x24, 0x3e, 0x70, 0x8e, 0x94, 0x9a, 0xd4,
+ 0x43, 0xb1, 0xb6, 0xcd, 0xf8, 0xff, 0x35, 0x46,
+ 0x6c, 0x77, 0xb6, 0xbe, 0xc8, 0x7b, 0xb0, 0xc1,
+ 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x08, 0x10, 0x16, 0x1d, 0x21, },
+ },
diff --git a/crypto/ml_dsa/dilithium_selftest.c b/crypto/ml_dsa/dilithium_selftest.c
index 546c62a7c173..5bc5f11c4ced 100644
--- a/crypto/ml_dsa/dilithium_selftest.c
+++ b/crypto/ml_dsa/dilithium_selftest.c
@@ -37,6 +37,9 @@ struct dilithium_testvector {
static const struct dilithium_testvector dilithium44_testvectors[] = {
#include "dilithium_pure_rejection_vectors_44.h"
};
+static const struct dilithium_testvector dilithium65_testvectors[] = {
+#include "dilithium_pure_rejection_vectors_65.h"
+};
/*
* Allow kunit to free a crypto signature processing object.
@@ -136,8 +139,22 @@ static void dilithium44_kunit_test(struct kunit *test)
KUNIT_SUCCEED(test);
}
+static void dilithium65_kunit_test(struct kunit *test)
+{
+ const struct dilithium_testvector *tc = dilithium65_testvectors;
+ int count = ARRAY_SIZE(dilithium65_testvectors);
+
+ for (int index = 0; index < count; index++) {
+ dilithium_siggen_test_one(test, index, &tc[index]);
+ dilithium_sigver_test_one(test, index, &tc[index]);
+ }
+
+ KUNIT_SUCCEED(test);
+}
+
static struct kunit_case __refdata dilithium_kunit_cases[] = {
KUNIT_CASE(dilithium44_kunit_test),
+ KUNIT_CASE(dilithium65_kunit_test),
{}
};
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 14/17] crypto: Add ML-DSA-87 pure rejection test vectors as a kunit test
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (12 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 13/17] crypto: Add ML-DSA-65 " David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:42 ` [PATCH v6 15/17] pkcs7: Allow the signing algo to calculate the digest itself David Howells
` (2 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add the "Pure rejection tests" from Stephan Mueller's Leancrypto
implementation of ML-DSA/Dilithium 87 to the kernel as a kunit test.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Jason A. Donenfeld <Jason@zx2c4.com>
cc: Ard Biesheuvel <ardb@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: linux-crypto@vger.kernel.org
---
.../dilithium_pure_rejection_vectors_87.h | 10761 ++++++++++++++++
crypto/ml_dsa/dilithium_selftest.c | 17 +
2 files changed, 10778 insertions(+)
create mode 100644 crypto/ml_dsa/dilithium_pure_rejection_vectors_87.h
diff --git a/crypto/ml_dsa/dilithium_pure_rejection_vectors_87.h b/crypto/ml_dsa/dilithium_pure_rejection_vectors_87.h
new file mode 100644
index 000000000000..0fa026a9a991
--- /dev/null
+++ b/crypto/ml_dsa/dilithium_pure_rejection_vectors_87.h
@@ -0,0 +1,10761 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
+ {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0xd4, 0x9d, 0xdc, 0x3d, 0xa4, 0xa5, 0x87, 0xa5,
+ 0x54, 0x61, 0xf3, 0xf4, 0xe0, 0x11, 0xc9, 0x1c,
+ 0x78, 0x0a, 0xf1, 0x8a, 0xa8, 0xb2, 0xff, 0xb2,
+ 0x9a, 0x2c, 0xe0, 0x86, 0x5c, 0xaa, 0x86, 0xe0,
+ 0xd9, 0x42, 0x54, 0x18, 0x3e, 0x4c, 0x96, 0x1a,
+ 0xb4, 0xc7, 0x18, 0xcf, 0x7d, 0xca, 0xe2, 0x74,
+ 0x6c, 0x81, 0x3e, 0xcb, 0xf8, 0x7b, 0xc4, 0x90,
+ 0x50, 0xd5, 0xe8, 0xd3, 0xbc, 0x8b, 0xa8, 0x3e,
+ 0xb0, 0x96, 0x65, 0xd7, 0xbb, 0xa9, 0xab, 0x9c,
+ 0x82, 0x5e, 0x6e, 0x8d, 0xf8, 0xc3, 0x6d, 0xe9,
+ 0xbf, 0xbd, 0x30, 0xc9, 0xca, 0x47, 0x85, 0xae,
+ 0x6f, 0x5d, 0x09, 0x4d, 0xd7, 0xdd, 0x05, 0x51,
+ 0xe0, 0x9e, 0x94, 0x3b, 0x1d, 0xfa, 0x30, 0x57,
+ 0xdc, 0x58, 0x48, 0xe5, 0x45, 0xf3, 0x34, 0x8a,
+ 0x73, 0x66, 0x8a, 0xe0, 0x62, 0x3d, 0x0d, 0xfb,
+ 0x13, 0x52, 0x25, 0xf5, 0xd3, 0x94, 0x15, 0x9d,
+ 0xac, 0x6a, 0x74, 0x8a, 0x64, 0x91, 0x5b, 0xa3,
+ 0xe2, 0xd0, 0x5c, 0xd2, 0xee, 0x52, 0xc0, 0x0c,
+ 0x6c, 0x81, 0x34, 0x94, 0xfb, 0x87, 0xf6, 0x6b,
+ 0x0f, 0x7e, 0x99, 0xa7, 0xaf, 0xb3, 0x74, 0xa7,
+ 0xb6, 0x64, 0xd7, 0x36, 0x39, 0x3f, 0x7d, 0x0e,
+ 0xc3, 0x76, 0xb3, 0x3a, 0xc9, 0x94, 0x6f, 0xc0,
+ 0xaa, 0x92, 0x2a, 0xf1, 0x38, 0x8c, 0x62, 0xa1,
+ 0x9a, 0xbe, 0x8d, 0x32, 0xec, 0x05, 0xb9, 0x8d,
+ 0xb0, 0xdb, 0x37, 0x8d, 0x61, 0xfa, 0x79, 0x55,
+ 0x1d, 0xf2, 0xc3, 0x19, 0x15, 0x3b, 0x26, 0xef,
+ 0xe5, 0xf3, 0x29, 0xa1, 0x13, 0x60, 0x68, 0xd3,
+ 0x22, 0x57, 0xcd, 0x99, 0xe6, 0x22, 0x54, 0xdf,
+ 0x02, 0xe4, 0xd5, 0xd2, 0x66, 0xce, 0x5a, 0x90,
+ 0x13, 0x7e, 0x7c, 0xad, 0x4c, 0x4c, 0xb6, 0x93,
+ 0x65, 0xda, 0x4b, 0xb6, 0x13, 0x0e, 0x1b, 0x36,
+ 0xaa, 0x2c, 0xbd, 0x60, 0x57, 0x98, 0x35, 0xa9,
+ 0xe9, 0xad, 0xc5, 0x8e, 0x33, 0x47, 0x00, 0xe9,
+ 0xf2, 0x1b, 0xe7, 0x5a, 0xd0, 0x55, 0x3b, 0x0e,
+ 0x77, 0x09, 0x7e, 0x1f, 0x11, 0x0b, 0xf0, 0xe4,
+ 0x07, 0x27, 0xe7, 0x72, 0xe9, 0x50, 0x9c, 0x9c,
+ 0x84, 0xb0, 0x5c, 0xe0, 0x13, 0x79, 0xfa, 0x3f,
+ 0x80, 0x96, 0xe2, 0x04, 0xde, 0x35, 0x5f, 0xa4,
+ 0x4e, 0x8a, 0x12, 0x7a, 0xba, 0x53, 0x20, 0x36,
+ 0x3d, 0xf0, 0x63, 0xb6, 0x14, 0xab, 0xce, 0x6b,
+ 0x24, 0xfd, 0xc9, 0xd2, 0x52, 0xd9, 0xc0, 0x40,
+ 0xdf, 0xdd, 0xd5, 0xc2, 0xa0, 0xf5, 0x74, 0x46,
+ 0x17, 0xdc, 0xf5, 0x81, 0x68, 0xbd, 0x1a, 0x01,
+ 0x33, 0xd0, 0x2f, 0xdc, 0x3a, 0x43, 0x4a, 0x08,
+ 0x07, 0x98, 0x9f, 0x75, 0x5d, 0x70, 0x15, 0x1d,
+ 0x58, 0x7f, 0x26, 0x30, 0x28, 0xe1, 0x17, 0x6d,
+ 0x14, 0x0f, 0x01, 0x4a, 0x88, 0x3b, 0xf5, 0x70,
+ 0x1d, 0x97, 0xd5, 0xda, 0x18, 0xa8, 0xb3, 0xa4,
+ 0x0e, 0x04, 0x3f, 0xe8, 0x50, 0xf4, 0x87, 0x65,
+ 0x75, 0x5a, 0x5d, 0x2f, 0x94, 0x63, 0x7a, 0xd0,
+ 0x06, 0xce, 0xfb, 0xeb, 0x41, 0x65, 0xc9, 0x55,
+ 0x38, 0x54, 0xd3, 0xc4, 0xac, 0x24, 0x46, 0x06,
+ 0x2a, 0x87, 0xb1, 0x0f, 0x06, 0xd8, 0x1e, 0xa7,
+ 0x35, 0xc4, 0xa3, 0xdc, 0x60, 0x80, 0x83, 0xe7,
+ 0xf0, 0x74, 0xf6, 0xd6, 0xa7, 0x1d, 0x50, 0xff,
+ 0xba, 0x82, 0xc0, 0xca, 0x72, 0x6b, 0xda, 0x4a,
+ 0xcb, 0x3b, 0xe8, 0xa3, 0xaa, 0x32, 0x86, 0xc0,
+ 0x94, 0x75, 0x2b, 0x2f, 0x44, 0xad, 0x5b, 0x8d,
+ 0xab, 0xc2, 0x03, 0x55, 0xb1, 0x7e, 0x67, 0x07,
+ 0x39, 0x33, 0x83, 0x67, 0xec, 0xbf, 0x52, 0xad,
+ 0x55, 0x37, 0x3e, 0xa1, 0x41, 0xed, 0xa0, 0x91,
+ 0xbf, 0x28, 0x1b, 0x04, 0x32, 0xbf, 0xf1, 0xb0,
+ 0x0a, 0x11, 0x99, 0x98, 0x77, 0xee, 0x14, 0x13,
+ 0x15, 0x13, 0xad, 0x1f, 0xb6, 0x6b, 0xcd, 0x3b,
+ 0xb8, 0x75, 0x9a, 0x55, 0x9b, 0x0c, 0x6c, 0xf7,
+ 0x7c, 0x21, 0x06, 0xb7, 0xf0, 0x43, 0x41, 0x96,
+ 0xc1, 0x73, 0x44, 0x53, 0xd8, 0x18, 0x3e, 0x09,
+ 0x4e, 0xc2, 0x5f, 0xa0, 0xd5, 0x18, 0xdb, 0x9f,
+ 0xf4, 0xa0, 0xf8, 0x4d, 0xa7, 0x72, 0x7e, 0x85,
+ 0xbb, 0xb7, 0xcc, 0x7b, 0x51, 0xb0, 0xf1, 0x5e,
+ 0x03, 0xcd, 0xe8, 0x5b, 0x83, 0x3f, 0x95, 0xe2,
+ 0x0b, 0xa1, 0xc7, 0x6f, 0x74, 0x98, 0xcd, 0x95,
+ 0xf4, 0xd4, 0xb8, 0x40, 0xff, 0x75, 0x54, 0x83,
+ 0x3a, 0x2c, 0x64, 0x38, 0x10, 0xcb, 0x6d, 0xad,
+ 0xf9, 0x91, 0xcb, 0xcf, 0xbe, 0xf6, 0xf7, 0x94,
+ 0x15, 0xea, 0xaf, 0x37, 0x65, 0x7c, 0xd2, 0xff,
+ 0x99, 0x79, 0xf8, 0x95, 0x27, 0x75, 0x09, 0x60,
+ 0xa4, 0x6f, 0x06, 0x0f, 0x6c, 0x13, 0xdd, 0x32,
+ 0x79, 0xa7, 0x40, 0xa5, 0xdd, 0x2c, 0x22, 0xc1,
+ 0xee, 0xc3, 0x31, 0x59, 0xb1, 0x3d, 0xa1, 0x77,
+ 0x69, 0xb5, 0xd6, 0xae, 0xd7, 0x86, 0xab, 0xa4,
+ 0xdf, 0x9f, 0x36, 0xb4, 0xb2, 0xe6, 0x88, 0xd6,
+ 0x45, 0x9b, 0x8b, 0x87, 0xbd, 0x27, 0xe9, 0x55,
+ 0xd5, 0xac, 0xe9, 0x33, 0x80, 0x00, 0x1d, 0x00,
+ 0x21, 0x74, 0xe2, 0x0a, 0x5b, 0xd2, 0x37, 0xab,
+ 0x6f, 0x48, 0x5e, 0x14, 0x76, 0x3a, 0x84, 0xf9,
+ 0x34, 0x03, 0x74, 0x8d, 0x6c, 0xd8, 0xd4, 0x0f,
+ 0xc7, 0xc8, 0x0c, 0xb5, 0x18, 0x12, 0xa5, 0x5a,
+ 0x76, 0x4b, 0x5d, 0x1e, 0x75, 0x89, 0x3a, 0x01,
+ 0x60, 0xf1, 0x1e, 0x5b, 0x98, 0x71, 0x7a, 0x15,
+ 0x79, 0xff, 0x3d, 0x37, 0x5e, 0xc9, 0x56, 0xa5,
+ 0x43, 0xe7, 0xd0, 0x2b, 0x63, 0xfb, 0x2f, 0x1a,
+ 0x55, 0x37, 0x15, 0x02, 0x7f, 0x9a, 0x84, 0xf0,
+ 0x07, 0x45, 0x2b, 0xa0, 0x9a, 0xb4, 0x60, 0x4d,
+ 0x48, 0xd5, 0xee, 0x64, 0xf9, 0xe7, 0x4b, 0x1c,
+ 0xb9, 0x05, 0xd1, 0xd1, 0x47, 0x4f, 0xca, 0x26,
+ 0x32, 0xad, 0x7b, 0x2e, 0x7e, 0x54, 0x05, 0x96,
+ 0x12, 0x29, 0xbc, 0xd3, 0x45, 0x4e, 0x05, 0x83,
+ 0x6d, 0x30, 0x38, 0xd0, 0x3c, 0x46, 0xcd, 0xb6,
+ 0x21, 0xb6, 0x5c, 0x2a, 0x40, 0x7a, 0x2e, 0x97,
+ 0xd7, 0xbf, 0xa6, 0x55, 0x2a, 0xa6, 0x28, 0x54,
+ 0xc4, 0x66, 0xbe, 0xf6, 0xea, 0xc1, 0x19, 0xcb,
+ 0xcc, 0x52, 0x07, 0xcd, 0x90, 0x3f, 0x09, 0x23,
+ 0x77, 0xf7, 0xc6, 0x03, 0xcc, 0x8b, 0x18, 0xac,
+ 0x63, 0x6d, 0x2a, 0x01, 0x82, 0xad, 0x20, 0x11,
+ 0x82, 0xf3, 0xfe, 0x2d, 0x53, 0x3f, 0x18, 0xb5,
+ 0xbc, 0xf7, 0x0c, 0xa7, 0xca, 0x63, 0xfa, 0x77,
+ 0x8a, 0x3c, 0xc1, 0xc4, 0xb0, 0x15, 0x4b, 0x08,
+ 0xdd, 0xb3, 0xd2, 0x33, 0xc8, 0xc2, 0xaa, 0x1a,
+ 0xe4, 0x9b, 0x1b, 0x18, 0x78, 0x07, 0x6c, 0x08,
+ 0x28, 0x3f, 0xc6, 0xb7, 0x46, 0x8f, 0x8e, 0xc6,
+ 0xff, 0xb1, 0x2d, 0x63, 0x12, 0x7c, 0xe5, 0xd8,
+ 0xa5, 0xf8, 0x64, 0x76, 0xf7, 0x1b, 0xbc, 0x41,
+ 0xad, 0xee, 0xe8, 0x6f, 0xd4, 0x13, 0xea, 0x59,
+ 0x72, 0xfa, 0x04, 0xb4, 0x6e, 0x52, 0x3a, 0xff,
+ 0x60, 0xa0, 0xd8, 0xdf, 0x41, 0x1a, 0x4e, 0xc8,
+ 0x80, 0x2d, 0x29, 0x13, 0xd3, 0xd0, 0x55, 0x20,
+ 0xb5, 0x33, 0x4f, 0x02, 0xd2, 0xea, 0xca, 0x94,
+ 0x99, 0xdf, 0x3c, 0xfd, 0xe5, 0x2b, 0x45, 0x04,
+ 0x85, 0xfe, 0x87, 0x42, 0x53, 0x11, 0x62, 0x2f,
+ 0xcf, 0x05, 0x35, 0x29, 0x6a, 0xa5, 0x37, 0x80,
+ 0x9b, 0x4a, 0x44, 0x3c, 0x6d, 0xe1, 0xd3, 0x88,
+ 0x6a, 0xe7, 0x6f, 0x45, 0xfc, 0x99, 0x33, 0xe4,
+ 0x18, 0x62, 0x19, 0x36, 0x37, 0x6f, 0xe9, 0x37,
+ 0xbb, 0x86, 0xa2, 0x07, 0xec, 0xbc, 0x33, 0x0d,
+ 0x0a, 0x18, 0x30, 0x13, 0xcf, 0x36, 0x31, 0x2f,
+ 0xd2, 0xf6, 0x7e, 0xa8, 0xa4, 0x95, 0x71, 0xc8,
+ 0x40, 0x1f, 0x34, 0xf1, 0x95, 0xde, 0x3e, 0xe1,
+ 0xb7, 0xef, 0x26, 0x1e, 0x20, 0x78, 0xf8, 0x9a,
+ 0x24, 0xbc, 0x7f, 0x64, 0x30, 0x42, 0x63, 0x77,
+ 0x89, 0x96, 0xf8, 0x9b, 0x60, 0x51, 0xb3, 0x02,
+ 0x7a, 0x64, 0x19, 0xd3, 0x13, 0x98, 0xcd, 0xb6,
+ 0x1e, 0x68, 0x82, 0x9b, 0x23, 0x44, 0x3e, 0xa8,
+ 0x57, 0xf5, 0x4d, 0xd8, 0xea, 0x93, 0x84, 0x4e,
+ 0x56, 0x18, 0xb7, 0x94, 0x02, 0xfa, 0x6e, 0x8e,
+ 0xa0, 0x75, 0xd2, 0xb4, 0xbb, 0x50, 0x6f, 0x3f,
+ 0x58, 0xe2, 0x28, 0xb6, 0x87, 0xd6, 0xc5, 0xe0,
+ 0x76, 0xa6, 0xc6, 0x5b, 0xed, 0x6b, 0x48, 0xd4,
+ 0x25, 0xd3, 0x5f, 0x64, 0xab, 0xe3, 0x5a, 0xae,
+ 0x69, 0xe8, 0x06, 0xff, 0xef, 0x67, 0x0b, 0x49,
+ 0xe4, 0xe8, 0x31, 0xee, 0x1a, 0x35, 0x86, 0x0c,
+ 0x81, 0x8a, 0x1f, 0x7f, 0x06, 0x20, 0x66, 0x81,
+ 0x8b, 0xfb, 0xdc, 0x99, 0x78, 0x7b, 0x43, 0x84,
+ 0x35, 0xa7, 0x4f, 0x27, 0xb5, 0xc9, 0x44, 0xbf,
+ 0x05, 0x59, 0xce, 0x4c, 0xe5, 0xaa, 0x18, 0x37,
+ 0x32, 0x5b, 0x41, 0x62, 0x89, 0x0a, 0xec, 0x0a,
+ 0xae, 0x67, 0xcf, 0x0b, 0xef, 0xf6, 0x3a, 0x3b,
+ 0x13, 0x1d, 0xf8, 0x8b, 0x20, 0x5f, 0x2c, 0x55,
+ 0x75, 0xec, 0xf4, 0x9d, 0x2d, 0x0d, 0x0d, 0xb7,
+ 0x88, 0x71, 0xf7, 0xc6, 0xf8, 0x65, 0x1a, 0xba,
+ 0xdb, 0xdc, 0x53, 0xd2, 0x80, 0x92, 0x72, 0x14,
+ 0xce, 0x68, 0xb8, 0xf4, 0x78, 0x4b, 0x92, 0xee,
+ 0x15, 0xfc, 0xd4, 0xe0, 0x89, 0x49, 0x82, 0xf8,
+ 0x7f, 0xce, 0xf6, 0xce, 0x86, 0xfa, 0xa5, 0xd9,
+ 0x3a, 0xfb, 0xef, 0xa8, 0xd9, 0x3b, 0x6e, 0xb5,
+ 0xe2, 0x29, 0x31, 0x6f, 0x5f, 0xa7, 0x34, 0x58,
+ 0x49, 0x07, 0x9c, 0x4d, 0x74, 0x46, 0xb6, 0xd5,
+ 0x0c, 0x3c, 0x26, 0x4b, 0xee, 0x37, 0x9c, 0x92,
+ 0xa2, 0x37, 0x95, 0x35, 0x71, 0xee, 0x46, 0xdd,
+ 0xef, 0xd0, 0xf2, 0xd4, 0xef, 0xe0, 0xdb, 0x28,
+ 0xf4, 0x5d, 0x12, 0xe0, 0x85, 0x4a, 0x3c, 0x5b,
+ 0x2f, 0xd8, 0x9c, 0x9a, 0xcf, 0x6f, 0x01, 0xe7,
+ 0x1b, 0x2e, 0x41, 0x5d, 0x5d, 0xdd, 0xdd, 0xb6,
+ 0x6d, 0xb3, 0x7d, 0xbc, 0x33, 0x50, 0xc5, 0xaf,
+ 0x1b, 0xee, 0x33, 0xc4, 0x42, 0x46, 0xca, 0xe2,
+ 0x00, 0xe9, 0xc9, 0xec, 0x9e, 0x9b, 0x67, 0xba,
+ 0x39, 0x3c, 0xc5, 0xa1, 0x7d, 0xac, 0x9e, 0xbe,
+ 0x67, 0x92, 0x20, 0x5b, 0x36, 0x85, 0xde, 0xdd,
+ 0xd3, 0xec, 0x4e, 0x82, 0x03, 0x4a, 0x44, 0x6e,
+ 0xee, 0x9c, 0xd0, 0x13, 0x9e, 0x98, 0x6f, 0x77,
+ 0xd8, 0xfe, 0xb7, 0x54, 0x01, 0x15, 0xcd, 0xd3,
+ 0x31, 0xf5, 0xd7, 0x74, 0x2d, 0x4d, 0x4f, 0x18,
+ 0xd2, 0x8f, 0x80, 0xb6, 0x46, 0x80, 0xa7, 0xa8,
+ 0x8c, 0xf2, 0x64, 0x4f, 0x40, 0x8a, 0x64, 0x96,
+ 0x2c, 0x1e, 0xd2, 0x3c, 0xe9, 0x50, 0xc4, 0x86,
+ 0xd9, 0x19, 0x93, 0x7a, 0xba, 0x95, 0x35, 0x35,
+ 0xe3, 0x4d, 0x83, 0xda, 0x15, 0x09, 0x87, 0xb8,
+ 0x1a, 0x54, 0x6f, 0x61, 0xdd, 0x55, 0x01, 0xe1,
+ 0x39, 0x1c, 0xb2, 0xac, 0x8c, 0x15, 0x82, 0x7c,
+ 0xa6, 0x69, 0x54, 0x64, 0x2f, 0x5c, 0x0c, 0x79,
+ 0xaf, 0x85, 0x71, 0x2d, 0xff, 0xc0, 0xf2, 0x40,
+ 0xbb, 0x05, 0x31, 0x31, 0x00, 0x8d, 0x0c, 0x40,
+ 0x11, 0x88, 0xf2, 0x91, 0x9f, 0x7a, 0x8e, 0x99,
+ 0x82, 0x72, 0xd8, 0x45, 0x08, 0x83, 0x5c, 0x2b,
+ 0x73, 0x46, 0xd6, 0x54, 0x9a, 0x3d, 0x42, 0x48,
+ 0x67, 0x19, 0x2b, 0x19, 0xae, 0x0c, 0x16, 0x08,
+ 0xa4, 0xec, 0x7e, 0x15, 0xad, 0x4f, 0xa9, 0xbd,
+ 0x4f, 0x09, 0xf0, 0xc2, 0x9f, 0xb5, 0xb7, 0xff,
+ 0x96, 0xf9, 0xf9, 0xc6, 0x5d, 0x57, 0x07, 0xe8,
+ 0xf2, 0x7c, 0x95, 0xa0, 0x8a, 0x15, 0x8b, 0x34,
+ 0x84, 0xb5, 0x28, 0x7a, 0xf5, 0x04, 0xb8, 0xcb,
+ 0x5e, 0x77, 0x4d, 0xdd, 0x14, 0x8d, 0xa6, 0xe2,
+ 0x45, 0x44, 0xfd, 0xd0, 0x9c, 0x41, 0x10, 0xfc,
+ 0xe5, 0xdd, 0x2c, 0xda, 0x6b, 0xfe, 0xf9, 0xff,
+ 0x65, 0xe7, 0x66, 0x40, 0x69, 0x0c, 0x09, 0x99,
+ 0xaf, 0x02, 0xd0, 0x85, 0x55, 0xcc, 0x0d, 0x59,
+ 0xaa, 0xb6, 0x37, 0x9b, 0x58, 0xfa, 0xb5, 0xc5,
+ 0xcd, 0xd5, 0x1c, 0xf9, 0x9f, 0x31, 0x4c, 0x8a,
+ 0x78, 0xca, 0x1e, 0x22, 0xdc, 0x33, 0x64, 0xce,
+ 0x56, 0x6d, 0x57, 0xe9, 0xbd, 0xe0, 0xdd, 0x23,
+ 0x22, 0x9c, 0x70, 0x5a, 0xe7, 0x46, 0x08, 0xc5,
+ 0xa6, 0x85, 0x34, 0x5f, 0x9c, 0x96, 0xbb, 0xbe,
+ 0xb4, 0x2f, 0xbb, 0x47, 0xdc, 0x38, 0xad, 0xb7,
+ 0x92, 0x08, 0x0d, 0x93, 0xf4, 0x7f, 0xe6, 0x64,
+ 0xa5, 0xb3, 0x9e, 0xdd, 0xdb, 0x99, 0x8e, 0xca,
+ 0x82, 0x4f, 0x77, 0xf7, 0xff, 0x92, 0xd3, 0x48,
+ 0xe0, 0x80, 0x71, 0x14, 0x61, 0x6b, 0x77, 0x1b,
+ 0x58, 0xbd, 0xb6, 0xb6, 0xe5, 0xb0, 0xa8, 0x16,
+ 0xe7, 0x4c, 0xc2, 0x5e, 0x40, 0xbc, 0x9f, 0x77,
+ 0x76, 0x98, 0xf7, 0x00, 0xd1, 0xdf, 0x3c, 0x2e,
+ 0x16, 0x4f, 0xe7, 0x91, 0xec, 0xeb, 0xfb, 0xa1,
+ 0x9f, 0x66, 0x6d, 0xef, 0xaf, 0x36, 0xd8, 0xb6,
+ 0x40, 0x7e, 0x2f, 0x51, 0x3b, 0x75, 0x56, 0x1d,
+ 0x33, 0xee, 0x4b, 0xcf, 0x98, 0xb3, 0x9f, 0x4f,
+ 0xff, 0xfd, 0x2a, 0xb9, 0x4e, 0x4b, 0xe0, 0x39,
+ 0x60, 0xd5, 0x7c, 0xaa, 0x28, 0x7e, 0x7e, 0x27,
+ 0xd8, 0x09, 0x85, 0x6d, 0xfa, 0x57, 0x8a, 0xee,
+ 0x84, 0xbe, 0x48, 0xf9, 0x62, 0x78, 0x8a, 0x4d,
+ 0x2a, 0x80, 0x2f, 0x6f, 0xc9, 0xa7, 0xb5, 0x56,
+ 0xbb, 0x58, 0xc2, 0xb9, 0xd0, 0xfe, 0x8d, 0x68,
+ 0x86, 0x2b, 0x7b, 0xf0, 0x01, 0x57, 0xff, 0xaf,
+ 0x88, 0xad, 0x53, 0xf9, 0x63, 0xfe, 0xf4, 0x5a,
+ 0x97, 0xb7, 0x8f, 0x92, 0x0f, 0x90, 0x63, 0xcf,
+ 0xfe, 0x08, 0xbc, 0x8c, 0x5a, 0x9c, 0xac, 0x8b,
+ 0x0a, 0x94, 0x17, 0x25, 0xae, 0x87, 0xa7, 0x1d,
+ 0x3f, 0x28, 0xfe, 0x45, 0x3e, 0x48, 0xef, 0x19,
+ 0x4a, 0xbe, 0xc6, 0xd5, 0x64, 0xe1, 0xf2, 0xf5,
+ 0xd2, 0x3a, 0x03, 0xe0, 0x50, 0x31, 0x7e, 0xdf,
+ 0xd5, 0x15, 0xc6, 0xb6, 0xb2, 0x1e, 0x44, 0x6a,
+ 0x0f, 0x67, 0xf2, 0x34, 0x69, 0xb9, 0xd2, 0x51,
+ 0xeb, 0x86, 0xab, 0x7e, 0x60, 0x68, 0xe4, 0xc2,
+ 0x4b, 0x8b, 0xa2, 0xc6, 0x78, 0xb2, 0x61, 0xa1,
+ 0xe5, 0xb6, 0x33, 0x47, 0x3f, 0xfa, 0xde, 0x5b,
+ 0x6b, 0x95, 0x89, 0x51, 0xbb, 0xd3, 0x8a, 0x00,
+ 0x1d, 0xad, 0xfc, 0x7a, 0x47, 0xc8, 0xa0, 0x69,
+ 0xa6, 0xa3, 0x3f, 0xa9, 0xdb, 0xd8, 0xe4, 0x0d,
+ 0x2c, 0xba, 0x26, 0x2c, 0xa6, 0x82, 0x62, 0x5a,
+ 0x1e, 0x9f, 0xa8, 0x24, 0x9d, 0xe5, 0xc7, 0xcf,
+ 0x6d, 0x2f, 0x68, 0xe1, 0xc0, 0x04, 0xad, 0xde,
+ 0x00, 0x5b, 0x57, 0x35, 0x2b, 0x9a, 0x9b, 0xe5,
+ 0x90, 0x31, 0x8a, 0x5b, 0xea, 0xe5, 0xf6, 0x73,
+ 0x02, 0xc1, 0x33, 0xaf, 0xe7, 0x61, 0x6c, 0x04,
+ 0x8c, 0x08, 0xb2, 0xfb, 0xa2, 0x18, 0x51, 0x39,
+ 0x1a, 0x61, 0x2c, 0x8c, 0x7d, 0x11, 0xb8, 0x2e,
+ 0x38, 0xb7, 0xe0, 0xde, 0x5e, 0x6f, 0xc5, 0xf4,
+ 0x31, 0x72, 0xcb, 0xd6, 0xec, 0xbc, 0xe9, 0x36,
+ 0x2e, 0x2b, 0x63, 0xea, 0xa1, 0xab, 0xf8, 0x11,
+ 0xe7, 0x31, 0xad, 0xe4, 0xcb, 0x23, 0xe4, 0x64,
+ 0x54, 0x50, 0x4f, 0x15, 0x8b, 0x58, 0xa4, 0xa1,
+ 0x35, 0xea, 0x73, 0x3e, 0xc3, 0x3e, 0x31, 0x81,
+ 0x80, 0x53, 0x6a, 0x2c, 0xfe, 0xd7, 0xd8, 0x8f,
+ 0xe7, 0x50, 0x2d, 0x99, 0x69, 0x32, 0xfa, 0x4e,
+ 0xb4, 0xf9, 0x89, 0x18, 0xbe, 0x5a, 0x95, 0x7a,
+ 0x0f, 0x34, 0xc5, 0xd9, 0x28, 0xff, 0x93, 0x3a,
+ 0x13, 0x22, 0xe6, 0xdb, 0x5c, 0xfe, 0x51, 0x05,
+ 0xaf, 0xa3, 0xcd, 0x17, 0x01, 0xd1, 0x84, 0x76,
+ 0x23, 0xff, 0x91, 0xc4, 0x6b, 0xc7, 0xa8, 0x77,
+ 0xe0, 0xda, 0x45, 0xef, 0xd7, 0x13, 0xe3, 0x02,
+ 0x7c, 0x74, 0x7e, 0x66, 0xbb, 0x9f, 0x48, 0x35,
+ 0x56, 0xa8, 0x08, 0x41, 0xf7, 0xa7, 0xe3, 0x60,
+ 0xa6, 0xce, 0x73, 0xdf, 0x73, 0x99, 0xc6, 0xbd,
+ 0x7b, 0xb4, 0xde, 0x31, 0xe6, 0x35, 0xaf, 0x3e,
+ 0x93, 0xd2, 0x69, 0xb5, 0xb9, 0xbe, 0x9f, 0xf4,
+ 0x0d, 0xd8, 0x82, 0xc1, 0x4f, 0xf6, 0xf3, 0x23,
+ 0x1c, 0xe7, 0xff, 0xac, 0xb2, 0x79, 0xe3, 0x62,
+ 0x6a, 0xb7, 0x85, 0x08, 0xda, 0x4a, 0x3f, 0x22,
+ 0x62, 0x2b, 0xcd, 0xb7, 0x59, 0xf5, 0x82, 0xef,
+ 0x08, 0x7f, 0xb5, 0xa0, 0x6c, 0xba, 0x61, 0x45,
+ 0x8f, 0xf4, 0xa2, 0x66, 0x83, 0x72, 0x65, 0x34,
+ 0x34, 0x68, 0x99, 0xf5, 0x99, 0xc9, 0x52, 0x6a,
+ 0xc2, 0x7f, 0xde, 0x25, 0xa3, 0x7b, 0xce, 0xa3,
+ 0xde, 0x6d, 0x62, 0x98, 0x84, 0xe4, 0x2a, 0xe1,
+ 0x1c, 0xa9, 0x0b, 0x7e, 0x45, 0xd3, 0x78, 0x40,
+ 0x85, 0x61, 0x9d, 0xce, 0xcd, 0xfd, 0x7b, 0x66,
+ 0x92, 0x5f, 0xb9, 0x37, 0x04, 0xea, 0xec, 0x37,
+ 0x32, 0xbe, 0xcd, 0x3e, 0x5e, 0x37, 0xcd, 0xe3,
+ 0x81, 0x92, 0x69, 0xdf, 0xa1, 0xb9, 0x8c, 0x44,
+ 0x43, 0xae, 0xcd, 0xe5, 0xd5, 0x4e, 0xb9, 0x2f,
+ 0x1e, 0xbc, 0xf2, 0xd1, 0x88, 0x93, 0xde, 0x6a,
+ 0x8a, 0x43, 0xa1, 0x6b, 0xdc, 0x5b, 0xd2, 0xdd,
+ 0xe8, 0xca, 0x0a, 0x95, 0x45, 0x9f, 0xd8, 0x8c,
+ 0xfd, 0xe0, 0xc3, 0xbd, 0x0e, 0xa0, 0xbd, 0x72,
+ 0xa7, 0x77, 0x9a, 0x79, 0xd9, 0x15, 0xad, 0x50,
+ 0x13, 0xa7, 0x41, 0xc7, 0xd1, 0xec, 0x2f, 0x45,
+ 0x14, 0x02, 0xb7, 0x8e, 0x51, 0x76, 0xd4, 0x2f,
+ 0x1c, 0xea, 0x9c, 0x6d, 0x35, 0x1c, 0xa7, 0xeb,
+ 0xd7, 0x79, 0xe4, 0x35, 0xbc, 0x02, 0xa6, 0xd0,
+ 0x58, 0xcb, 0xdf, 0xea, 0x90, 0x16, 0x53, 0x3c,
+ 0xc5, 0xda, 0x36, 0x4f, 0x61, 0x4a, 0x1b, 0xfa,
+ 0x15, 0x52, 0x0d, 0x3d, 0x73, 0xc5, 0xfe, 0x2a,
+ 0xa2, 0x4a, 0x6e, 0x95, 0x99, 0xfc, 0xbf, 0xb2,
+ 0xfc, 0x22, 0xbe, 0x45, 0x10, 0x5a, 0xc5, 0x38,
+ 0xa0, 0xc1, 0xba, 0x46, 0x6d, 0x8e, 0xbe, 0x0b,
+ 0x5f, 0xf6, 0x6f, 0xbb, 0x4d, 0x22, 0xf5, 0x95,
+ 0x4d, 0x12, 0xc2, 0x6f, 0x8d, 0xde, 0x86, 0xaf,
+ 0x3f, 0x08, 0x24, 0x56, 0xa3, 0xcd, 0xfc, 0xeb,
+ 0xa1, 0x3c, 0x22, 0x66, 0x45, 0x03, 0x8b, 0x04,
+ 0x12, 0x80, 0x34, 0xf9, 0xf4, 0x64, 0xbf, 0xb9,
+ 0x3d, 0xd7, 0x34, 0xe4, 0xc8, 0x8e, 0x86, 0xc9,
+ 0x73, 0x21, 0x7f, 0x30, 0x01, 0xc8, 0xd2, 0x91,
+ 0x8d, 0xc4, 0xca, 0xd5, 0x59, 0xac, 0xd7, 0xb4,
+ 0xfb, 0x98, 0xfb, 0xc4, 0x48, 0x82, 0x93, 0xc6,
+ 0x58, 0x8b, 0x0c, 0xdf, 0x3f, 0x07, 0x5a, 0x94,
+ 0x89, 0xc6, 0xbe, 0x1a, 0x19, 0x63, 0x8b, 0xa8,
+ 0x0c, 0x20, 0xae, 0x9a, 0x1b, 0xd3, 0x45, 0xa0,
+ 0xd9, 0x8c, 0xbb, 0x67, 0xa0, 0x54, 0x86, 0x9b,
+ 0x7b, 0xa8, 0x16, 0x6f, 0xa4, 0x59, 0x45, 0x1e,
+ 0x34, 0xb5, 0xa7, 0x1b, 0x3f, 0xda, 0xc6, 0x80,
+ 0x19, 0xdc, 0xc2, 0xee, 0xeb, 0xd9, 0x96, 0xdc,
+ 0x4f, 0xec, 0x02, 0xde, 0x34, 0x43, 0x5a, 0x37,
+ 0xc8, 0xdf, 0x3b, 0x53, 0x82, 0xfa, 0xf8, 0x8a,
+ 0x32, 0x97, 0x1e, 0xf6, 0x0e, 0x7d, 0x39, 0xe0,
+ 0xdb, 0x0b, 0x22, 0xa4, 0xd0, 0x56, 0x13, 0xbc,
+ 0xe9, 0x38, 0x92, 0x76, 0xff, 0x2b, 0xc2, 0xa0,
+ 0x98, 0x7d, 0x8c, 0x58, 0x8e, 0x7f, 0x6d, 0x80,
+ 0x06, 0xff, 0xc7, 0xb3, 0xb7, 0x1b, 0xac, 0xc4,
+ 0x68, 0x61, 0x11, 0x15, 0xb7, 0xee, 0x8d, 0x66,
+ 0x34, 0x9f, 0x18, 0x03, 0x88, 0xd1, 0x04, 0xd0,
+ 0x86, 0xc0, 0xca, 0x2a, 0xe1, 0x1b, 0x47, 0x18,
+ 0xc9, 0x97, 0xed, 0x1f, 0x99, 0xc6, 0xa9, 0x20,
+ 0x3f, 0xf6, 0x43, 0x96, 0x30, 0x8b, 0xa5, 0xcb,
+ 0x2e, 0xc5, 0xdb, 0x26, 0xc0, 0xf6, 0x48, 0x07,
+ 0x3a, 0x28, 0x3e, 0x35, 0x38, 0x50, 0x80, 0xdf,
+ 0x80, 0xfa, 0x12, 0x92, 0x83, 0x55, 0xde, 0x31,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0xd4, 0x9d, 0xdc, 0x3d, 0xa4, 0xa5, 0x87, 0xa5,
+ 0x54, 0x61, 0xf3, 0xf4, 0xe0, 0x11, 0xc9, 0x1c,
+ 0x78, 0x0a, 0xf1, 0x8a, 0xa8, 0xb2, 0xff, 0xb2,
+ 0x9a, 0x2c, 0xe0, 0x86, 0x5c, 0xaa, 0x86, 0xe0,
+ 0x52, 0xe9, 0x6a, 0xde, 0x42, 0xcf, 0x1a, 0x33,
+ 0x4e, 0x7d, 0xb6, 0xab, 0x10, 0x3d, 0x80, 0x66,
+ 0x87, 0x4b, 0xa8, 0x4c, 0xb9, 0xd7, 0x15, 0xb7,
+ 0xf5, 0xef, 0x3b, 0x3d, 0x72, 0x6a, 0x49, 0x8c,
+ 0xef, 0x78, 0x33, 0xf9, 0xdc, 0x92, 0xf2, 0x3a,
+ 0x4f, 0xbd, 0xb3, 0xc0, 0xe1, 0x59, 0x14, 0xd4,
+ 0x43, 0xf9, 0x62, 0x94, 0x5c, 0x0f, 0xb8, 0x2a,
+ 0x5c, 0xbe, 0x42, 0x1b, 0x84, 0xc8, 0xe7, 0x62,
+ 0xa3, 0x62, 0xc3, 0xc4, 0xe3, 0xa1, 0xb2, 0xc5,
+ 0x0f, 0x94, 0xae, 0x52, 0x37, 0xf1, 0xab, 0x2f,
+ 0xc8, 0x94, 0x25, 0x36, 0x42, 0xcf, 0x99, 0x1a,
+ 0xe2, 0x96, 0xc9, 0xcb, 0xb4, 0x4e, 0xe2, 0x0f,
+ 0x93, 0x20, 0x41, 0x4b, 0x94, 0x60, 0xc3, 0x18,
+ 0x8e, 0x53, 0x38, 0x6c, 0xd8, 0x22, 0x31, 0xc1,
+ 0x26, 0x4a, 0xd4, 0x34, 0x2a, 0x04, 0x86, 0x80,
+ 0x50, 0x40, 0x52, 0x10, 0x45, 0x62, 0x20, 0xb1,
+ 0x84, 0x0b, 0x25, 0x24, 0x44, 0x82, 0x21, 0xca,
+ 0xc0, 0x09, 0x50, 0x46, 0x4c, 0x18, 0xa9, 0x45,
+ 0x18, 0x10, 0x24, 0x10, 0xb4, 0x68, 0x11, 0x33,
+ 0x0a, 0x08, 0x00, 0x62, 0xc0, 0x38, 0x2a, 0x5a,
+ 0xa2, 0x0d, 0xe2, 0xc6, 0x69, 0x20, 0x24, 0x89,
+ 0xc2, 0xc2, 0x49, 0xd0, 0x20, 0x0c, 0x1b, 0x45,
+ 0x20, 0xa3, 0x22, 0x66, 0x4b, 0x40, 0x12, 0x19,
+ 0xa6, 0x4c, 0x13, 0x87, 0x0c, 0x58, 0x28, 0x65,
+ 0x5a, 0xc4, 0x01, 0xc0, 0x48, 0x2d, 0x20, 0xb8,
+ 0x91, 0x0a, 0xc4, 0x41, 0xd0, 0x30, 0x6a, 0x1b,
+ 0x48, 0x8d, 0xdc, 0x20, 0x89, 0x13, 0x12, 0x41,
+ 0xa0, 0x40, 0x64, 0xe0, 0x80, 0x40, 0x02, 0x81,
+ 0x10, 0x10, 0x43, 0x51, 0x1a, 0x22, 0x06, 0x93,
+ 0x12, 0x64, 0xc4, 0xc4, 0x4c, 0x04, 0xa8, 0x25,
+ 0x14, 0xa6, 0x91, 0x52, 0x94, 0x85, 0x48, 0x04,
+ 0x6a, 0xc8, 0x42, 0x4d, 0x0a, 0x33, 0x71, 0x59,
+ 0xa0, 0x81, 0x11, 0xc0, 0x40, 0x1b, 0x38, 0x80,
+ 0x63, 0x16, 0x20, 0x9b, 0x96, 0x49, 0x5b, 0x06,
+ 0x45, 0xd4, 0x24, 0x20, 0x14, 0x10, 0x20, 0x4b,
+ 0x30, 0x81, 0x02, 0x04, 0x48, 0x23, 0x38, 0x65,
+ 0x81, 0x20, 0x4a, 0x90, 0x14, 0x4a, 0x08, 0xa6,
+ 0x08, 0x89, 0x92, 0x6c, 0x19, 0xb2, 0x00, 0x0a,
+ 0x23, 0x68, 0x09, 0x05, 0x4d, 0xc0, 0x90, 0x71,
+ 0x64, 0x12, 0x24, 0x5b, 0xa0, 0x0c, 0x1b, 0x36,
+ 0x2e, 0x8c, 0x12, 0x66, 0xa3, 0x86, 0x20, 0xc2,
+ 0x08, 0x45, 0x01, 0x21, 0x40, 0x53, 0x44, 0x08,
+ 0xda, 0x36, 0x72, 0x0c, 0x30, 0x4a, 0x18, 0xc0,
+ 0x4d, 0x41, 0x34, 0x90, 0x09, 0x01, 0x2a, 0x40,
+ 0x10, 0x4a, 0xcb, 0x16, 0x72, 0xca, 0xa8, 0x84,
+ 0x5c, 0x06, 0x69, 0x88, 0x96, 0x91, 0x9a, 0xc4,
+ 0x24, 0x14, 0x21, 0x2c, 0x1b, 0x14, 0x85, 0xa2,
+ 0x80, 0x6d, 0x23, 0x02, 0x88, 0xe2, 0x44, 0x91,
+ 0x11, 0xa8, 0x11, 0x89, 0x12, 0x80, 0x40, 0x94,
+ 0x40, 0x03, 0xb0, 0x44, 0x4a, 0x94, 0x31, 0x02,
+ 0x25, 0x0e, 0x4b, 0x94, 0x84, 0x19, 0x91, 0x89,
+ 0xc0, 0xa4, 0x25, 0x12, 0x05, 0x6e, 0x89, 0x90,
+ 0x4c, 0x5a, 0x30, 0x06, 0x21, 0x86, 0x91, 0x10,
+ 0x00, 0x2c, 0x48, 0x26, 0x6a, 0x10, 0x19, 0x2d,
+ 0x20, 0x46, 0x4c, 0x20, 0x33, 0x61, 0x9a, 0x96,
+ 0x08, 0x00, 0x30, 0x88, 0x1b, 0x80, 0x61, 0x21,
+ 0xc4, 0x84, 0x8a, 0xa0, 0x40, 0x52, 0x46, 0x0e,
+ 0x40, 0xc8, 0x8c, 0x0a, 0x20, 0x30, 0x1c, 0xa0,
+ 0x04, 0xcc, 0x16, 0x65, 0x11, 0xb8, 0x70, 0x62,
+ 0x20, 0x90, 0x0c, 0x44, 0x52, 0x03, 0x04, 0x64,
+ 0x23, 0xb3, 0x29, 0x18, 0x04, 0x10, 0xdb, 0x14,
+ 0x85, 0x60, 0xb8, 0x81, 0x90, 0x14, 0x32, 0x21,
+ 0x38, 0x24, 0x02, 0x25, 0x11, 0x18, 0x31, 0x2c,
+ 0xa2, 0x90, 0x48, 0x22, 0x00, 0x20, 0x84, 0xb6,
+ 0x09, 0x00, 0x96, 0x70, 0x84, 0xc4, 0x90, 0xc9,
+ 0xc0, 0x10, 0x8c, 0x96, 0x10, 0xc2, 0xc4, 0x90,
+ 0x1c, 0x42, 0x05, 0x00, 0x97, 0x49, 0x4b, 0x82,
+ 0x28, 0x8a, 0x12, 0x28, 0x1c, 0x39, 0x0e, 0x5a,
+ 0xa6, 0x85, 0x5b, 0x12, 0x70, 0x48, 0x84, 0x09,
+ 0x20, 0xb7, 0x4d, 0x13, 0x14, 0x48, 0x94, 0x84,
+ 0x60, 0x03, 0x40, 0x45, 0x10, 0x82, 0x71, 0x18,
+ 0xc4, 0x24, 0x20, 0x32, 0x00, 0x94, 0x96, 0x11,
+ 0x0a, 0x10, 0x71, 0xa4, 0x02, 0x85, 0x5c, 0x18,
+ 0x91, 0x12, 0x98, 0x00, 0xc1, 0x48, 0x84, 0xd1,
+ 0xb6, 0x80, 0xa1, 0x12, 0x4e, 0x04, 0x83, 0x61,
+ 0x23, 0x21, 0x61, 0xc1, 0xa0, 0x44, 0x63, 0x00,
+ 0x62, 0x04, 0x46, 0x92, 0x44, 0x34, 0x32, 0x0b,
+ 0x30, 0x0d, 0x00, 0x11, 0x8c, 0x50, 0x00, 0x22,
+ 0x01, 0x98, 0x25, 0x10, 0x90, 0x01, 0xd3, 0x02,
+ 0x4c, 0xd9, 0xc6, 0x00, 0x12, 0x15, 0x65, 0xdb,
+ 0x08, 0x32, 0x61, 0x28, 0x05, 0x5a, 0x00, 0x89,
+ 0x20, 0x98, 0x2c, 0x0a, 0x00, 0x69, 0x5c, 0x94,
+ 0x89, 0x4a, 0x30, 0x05, 0x04, 0x19, 0x02, 0xa0,
+ 0xc4, 0x08, 0xd1, 0xc8, 0x29, 0x0a, 0x43, 0x72,
+ 0x9c, 0x08, 0x71, 0x23, 0x48, 0x25, 0x41, 0x86,
+ 0x70, 0x52, 0x92, 0x2c, 0x10, 0x16, 0x22, 0x09,
+ 0x33, 0x72, 0x1b, 0x21, 0x66, 0x98, 0x44, 0x2d,
+ 0x10, 0x91, 0x10, 0x1b, 0x00, 0x2a, 0xc8, 0x08,
+ 0x12, 0x13, 0x81, 0x2c, 0xd1, 0x06, 0x82, 0x93,
+ 0x26, 0x6d, 0x5a, 0x42, 0x0a, 0x02, 0x25, 0x71,
+ 0xe0, 0x48, 0x8c, 0x0b, 0xa4, 0x6d, 0x03, 0x25,
+ 0x01, 0x11, 0x90, 0x08, 0x08, 0x37, 0x70, 0x63,
+ 0x92, 0x69, 0x44, 0x46, 0x08, 0x0a, 0x09, 0x62,
+ 0x19, 0x27, 0x11, 0xa2, 0xb4, 0x71, 0x14, 0x82,
+ 0x04, 0x40, 0xc6, 0x8c, 0x64, 0xc4, 0x8c, 0x1b,
+ 0xb7, 0x29, 0xd8, 0xb8, 0x41, 0x03, 0x48, 0x6e,
+ 0x13, 0xa4, 0x8c, 0x03, 0x16, 0x4d, 0xa1, 0xb6,
+ 0x49, 0x09, 0x45, 0x02, 0x09, 0x85, 0x0d, 0x9a,
+ 0x02, 0x84, 0x11, 0xc0, 0x00, 0x21, 0x86, 0x81,
+ 0xc3, 0x40, 0x70, 0x8b, 0xb0, 0x4d, 0x0c, 0xc6,
+ 0x8d, 0x59, 0x44, 0x64, 0x8c, 0x16, 0x28, 0x1c,
+ 0x85, 0x80, 0x04, 0x32, 0x86, 0x12, 0x93, 0x08,
+ 0x24, 0x44, 0x31, 0x09, 0x15, 0x50, 0x59, 0x32,
+ 0x48, 0x14, 0xa7, 0x65, 0x1c, 0xa5, 0x8c, 0x98,
+ 0x18, 0x0c, 0x91, 0x32, 0x84, 0x92, 0x24, 0x92,
+ 0x53, 0x04, 0x4d, 0x8b, 0x46, 0x85, 0x23, 0xb9,
+ 0x44, 0x13, 0x34, 0x90, 0x44, 0x14, 0x20, 0xd4,
+ 0x36, 0x05, 0x81, 0x14, 0x86, 0x01, 0xa4, 0x29,
+ 0x02, 0x45, 0x69, 0x02, 0x39, 0x2e, 0x04, 0x13,
+ 0x11, 0x01, 0x13, 0x8c, 0x0a, 0x35, 0x22, 0x11,
+ 0xa4, 0x51, 0x4b, 0x00, 0x91, 0x84, 0x14, 0x05,
+ 0xca, 0xb6, 0x05, 0x1b, 0x10, 0x24, 0x48, 0xa0,
+ 0x28, 0x1b, 0x43, 0x11, 0x1a, 0xa7, 0x6c, 0x90,
+ 0x96, 0x85, 0xc4, 0x08, 0x51, 0x08, 0x80, 0x91,
+ 0x44, 0x34, 0x0d, 0x0b, 0x05, 0x04, 0x5a, 0x44,
+ 0x8e, 0x41, 0x22, 0x08, 0x02, 0x45, 0x61, 0x62,
+ 0x48, 0x40, 0x08, 0xc0, 0x6d, 0xcb, 0x06, 0x4c,
+ 0x24, 0x10, 0x29, 0xd2, 0x20, 0x48, 0xcb, 0xa2,
+ 0x64, 0xd0, 0xa0, 0x70, 0x01, 0xa7, 0x49, 0x5b,
+ 0x12, 0x28, 0x02, 0x23, 0x60, 0x84, 0xa4, 0x88,
+ 0x03, 0x84, 0x29, 0x54, 0x06, 0x32, 0x21, 0x46,
+ 0x12, 0x94, 0x10, 0x64, 0x94, 0xc0, 0x90, 0x21,
+ 0x42, 0x05, 0xa2, 0x38, 0x0e, 0xdb, 0x90, 0x10,
+ 0x4c, 0x28, 0x2e, 0x0b, 0x89, 0x10, 0x18, 0xb1,
+ 0x29, 0x1c, 0x27, 0x8a, 0x41, 0x30, 0x2a, 0x50,
+ 0x48, 0x21, 0xe4, 0xa6, 0x11, 0x1a, 0x11, 0x64,
+ 0x93, 0x04, 0x85, 0x88, 0x24, 0x69, 0xc9, 0x18,
+ 0x71, 0xd9, 0xc0, 0x0c, 0x0c, 0xc9, 0x64, 0x14,
+ 0x19, 0x60, 0x83, 0x88, 0x30, 0x51, 0x12, 0x66,
+ 0x90, 0x02, 0x90, 0x9c, 0x06, 0x0a, 0x49, 0x34,
+ 0x04, 0x89, 0xa2, 0x81, 0x22, 0xc1, 0x84, 0x03,
+ 0xb5, 0x89, 0x43, 0x14, 0x05, 0x5a, 0x18, 0x26,
+ 0x9b, 0x22, 0x2a, 0xc8, 0x86, 0x91, 0x5c, 0xc4,
+ 0x4c, 0x1a, 0x43, 0x2a, 0x53, 0xa6, 0x49, 0xd2,
+ 0x32, 0x21, 0x81, 0x00, 0x4d, 0x12, 0xa9, 0x71,
+ 0x01, 0x02, 0x29, 0x11, 0x31, 0x51, 0xd3, 0x34,
+ 0x89, 0x64, 0x18, 0x02, 0x11, 0xb5, 0x49, 0x84,
+ 0xc2, 0x70, 0x00, 0x36, 0x42, 0xd8, 0xa8, 0x04,
+ 0xd3, 0x32, 0x05, 0x0b, 0x32, 0x60, 0x0c, 0x32,
+ 0x49, 0x43, 0x22, 0x29, 0xa3, 0xc8, 0x10, 0x03,
+ 0xc8, 0x00, 0x4a, 0x16, 0x21, 0x0a, 0x13, 0x46,
+ 0x1b, 0x93, 0x70, 0x11, 0x31, 0x32, 0x84, 0x38,
+ 0x82, 0x0a, 0xc3, 0x05, 0x0a, 0x85, 0x45, 0xc1,
+ 0x48, 0x2e, 0x62, 0x42, 0x6a, 0x58, 0x14, 0x61,
+ 0xd2, 0x42, 0x51, 0xca, 0x40, 0x11, 0x11, 0x86,
+ 0x85, 0x89, 0x90, 0x04, 0x50, 0xc4, 0x81, 0x19,
+ 0x05, 0x0a, 0x54, 0x04, 0x6a, 0x23, 0x89, 0x49,
+ 0x02, 0x16, 0x84, 0x5c, 0x04, 0x40, 0x81, 0xc4,
+ 0x8c, 0x99, 0x24, 0x84, 0xa2, 0x14, 0x70, 0xdc,
+ 0x90, 0x8c, 0xc4, 0xb8, 0x04, 0x4a, 0x26, 0x81,
+ 0x01, 0x49, 0x2d, 0x1b, 0x11, 0x90, 0x8b, 0x00,
+ 0x80, 0x4a, 0x88, 0x68, 0x50, 0x38, 0x8a, 0xc3,
+ 0x30, 0x41, 0x8b, 0x12, 0x8d, 0xc3, 0x84, 0x80,
+ 0xdc, 0x12, 0x49, 0xc0, 0x18, 0x84, 0xda, 0xa2,
+ 0x91, 0xe3, 0x24, 0x84, 0xa1, 0x44, 0x92, 0x40,
+ 0xb0, 0x84, 0x18, 0x19, 0x8a, 0xe3, 0x88, 0x68,
+ 0x1a, 0xa1, 0x21, 0x1a, 0x39, 0x52, 0x63, 0xa6,
+ 0x49, 0x1c, 0x04, 0x4e, 0x09, 0x47, 0x62, 0xc0,
+ 0x30, 0x4c, 0x9c, 0x12, 0x0d, 0x09, 0xb3, 0x6c,
+ 0xd3, 0x12, 0x10, 0x20, 0x10, 0x0d, 0x98, 0x10,
+ 0x06, 0x5b, 0x34, 0x91, 0x88, 0xa8, 0x10, 0x09,
+ 0x83, 0x64, 0xc2, 0x20, 0x26, 0xa1, 0x34, 0x26,
+ 0x10, 0x22, 0x6d, 0x4a, 0x10, 0x66, 0x23, 0xa7,
+ 0x20, 0xa2, 0x94, 0x68, 0x11, 0x07, 0x50, 0xc2,
+ 0x20, 0x80, 0x09, 0x94, 0x88, 0x01, 0x37, 0x22,
+ 0x03, 0xc6, 0x2d, 0x8a, 0xb4, 0x90, 0xe2, 0x10,
+ 0x04, 0x19, 0x19, 0x51, 0x0b, 0x06, 0x91, 0x0b,
+ 0xa2, 0x69, 0x18, 0x44, 0x25, 0x9b, 0x96, 0x4d,
+ 0x00, 0x33, 0x0d, 0x22, 0x41, 0x90, 0x21, 0xa1,
+ 0x29, 0xd2, 0x24, 0x10, 0x00, 0x04, 0x8c, 0x08,
+ 0xb7, 0x25, 0x1a, 0x48, 0x2e, 0xe1, 0x18, 0x8e,
+ 0x14, 0x92, 0x41, 0x09, 0x80, 0x0d, 0x23, 0xb2,
+ 0x45, 0xe3, 0x32, 0x66, 0x44, 0x40, 0x90, 0x4b,
+ 0x18, 0x11, 0xa3, 0x18, 0x2a, 0x8c, 0xc6, 0x4c,
+ 0x1a, 0x09, 0x84, 0x84, 0xc4, 0x45, 0xd9, 0x38,
+ 0x6e, 0xe1, 0xa2, 0x45, 0x22, 0xb4, 0x10, 0x60,
+ 0x48, 0x70, 0xd4, 0x42, 0x22, 0xc1, 0x82, 0x40,
+ 0x40, 0xc8, 0x8d, 0x0b, 0x01, 0x21, 0xdc, 0x32,
+ 0x20, 0x1c, 0xb9, 0x4c, 0xc9, 0x90, 0x6d, 0x93,
+ 0x24, 0x2c, 0xd4, 0x02, 0x29, 0x13, 0x20, 0x8c,
+ 0x41, 0x16, 0x71, 0x14, 0x41, 0x06, 0xc2, 0x26,
+ 0x2e, 0x03, 0x41, 0x11, 0xd1, 0x94, 0x20, 0x19,
+ 0x22, 0x6d, 0x01, 0xa5, 0x80, 0x24, 0x23, 0x22,
+ 0x0b, 0x08, 0x28, 0x18, 0x07, 0x92, 0xca, 0xb4,
+ 0x11, 0x1c, 0x11, 0x32, 0x03, 0xc8, 0x24, 0x0c,
+ 0xa7, 0x91, 0x94, 0x02, 0x20, 0xd2, 0x14, 0x4a,
+ 0x01, 0x29, 0x65, 0x1b, 0x32, 0x4e, 0x03, 0x15,
+ 0x66, 0xa4, 0xa6, 0x2d, 0x0a, 0x04, 0x29, 0x9c,
+ 0xa6, 0x8c, 0x21, 0x18, 0x05, 0xe0, 0x06, 0x08,
+ 0x22, 0x08, 0x8e, 0x49, 0x16, 0x68, 0xd8, 0xb4,
+ 0x01, 0x64, 0x42, 0x51, 0x5c, 0x14, 0x89, 0x44,
+ 0xa0, 0x31, 0x5a, 0x30, 0x81, 0x61, 0x20, 0x51,
+ 0x1a, 0x31, 0x9b, 0x88, 0x24, 0xf4, 0x2d, 0x9b,
+ 0xf0, 0x3c, 0xc1, 0xa0, 0x03, 0x7b, 0xa4, 0x56,
+ 0xd8, 0xe2, 0xd5, 0x4f, 0x3a, 0x81, 0x3c, 0xe8,
+ 0x89, 0x1d, 0x4c, 0x26, 0x1d, 0x4e, 0x7f, 0xce,
+ 0x9e, 0x28, 0x27, 0xa3, 0x9e, 0xf6, 0x59, 0xd0,
+ 0x6b, 0x68, 0xa1, 0xd8, 0xae, 0x0b, 0x7e, 0x28,
+ 0xb3, 0x09, 0x11, 0x2f, 0x74, 0x21, 0x32, 0x94,
+ 0x00, 0x43, 0x43, 0x4e, 0x29, 0xc4, 0x84, 0x7e,
+ 0x31, 0xd7, 0xe6, 0xe0, 0x2b, 0x77, 0x1a, 0xd9,
+ 0x36, 0xde, 0xf1, 0x94, 0x29, 0x53, 0xf2, 0x1c,
+ 0x2d, 0xfb, 0xc3, 0xc2, 0x8e, 0x65, 0x42, 0xd3,
+ 0xdb, 0x86, 0x8e, 0xe3, 0xb5, 0xc2, 0x86, 0xd6,
+ 0x7f, 0xe7, 0x9d, 0xcd, 0x1c, 0x0d, 0xec, 0x25,
+ 0x03, 0x6b, 0xf4, 0x3e, 0x65, 0x70, 0x59, 0x27,
+ 0x7c, 0x0f, 0x1d, 0x2e, 0x95, 0x9c, 0x71, 0x0e,
+ 0x6f, 0x4d, 0x86, 0x2e, 0x05, 0xc8, 0x4a, 0xaa,
+ 0x0e, 0xb5, 0x1a, 0x91, 0xa2, 0x97, 0xb7, 0x36,
+ 0xfd, 0x06, 0xc3, 0x98, 0xc2, 0x25, 0x5f, 0xcb,
+ 0x23, 0xbd, 0xfd, 0x3e, 0xb7, 0xb7, 0x00, 0x76,
+ 0x39, 0x74, 0xc6, 0xc8, 0xbb, 0x42, 0xf4, 0x06,
+ 0xac, 0x68, 0x63, 0xbe, 0x9e, 0x07, 0x5d, 0x44,
+ 0x68, 0x7b, 0xe7, 0x7d, 0x12, 0x2e, 0x8d, 0x81,
+ 0x28, 0x1f, 0x74, 0xb5, 0x4e, 0x2c, 0x2c, 0xfb,
+ 0x59, 0xd3, 0x18, 0xbd, 0x8c, 0xe9, 0x9f, 0x5d,
+ 0x4e, 0x53, 0x77, 0x37, 0xda, 0x27, 0x0d, 0x78,
+ 0x7a, 0x65, 0x36, 0xd6, 0xa8, 0xfc, 0xc9, 0x64,
+ 0x72, 0x24, 0x7a, 0xc3, 0xf9, 0xd6, 0x48, 0x06,
+ 0xff, 0x7a, 0x69, 0x44, 0xc0, 0xdf, 0xc3, 0x8b,
+ 0x55, 0x05, 0x20, 0x9c, 0xe6, 0xdc, 0x32, 0xea,
+ 0xf7, 0x5c, 0xd9, 0xe9, 0x2b, 0x15, 0xb9, 0x3d,
+ 0x54, 0x34, 0xa9, 0x4d, 0xbc, 0x32, 0x19, 0xd2,
+ 0xa8, 0x33, 0x5b, 0xef, 0x02, 0xec, 0xf4, 0xcd,
+ 0x8f, 0xf8, 0x65, 0xe8, 0x25, 0x72, 0x43, 0x0b,
+ 0x7a, 0x95, 0x9f, 0x49, 0xc0, 0x16, 0xbb, 0x8e,
+ 0x7c, 0xd9, 0x84, 0xbd, 0xe3, 0xc5, 0xab, 0xf2,
+ 0xa5, 0xe5, 0x4d, 0x76, 0xd3, 0x9a, 0xd5, 0xc3,
+ 0x5f, 0xbd, 0xf9, 0x2f, 0x81, 0xc0, 0x42, 0x4e,
+ 0x48, 0x45, 0x4d, 0xce, 0x8c, 0xf2, 0xba, 0x43,
+ 0x6c, 0x82, 0xad, 0x28, 0x27, 0xd3, 0x07, 0x0b,
+ 0xee, 0xc4, 0x99, 0x49, 0xda, 0x6c, 0x09, 0x51,
+ 0x6d, 0x78, 0xa8, 0x3a, 0x17, 0x55, 0x94, 0xa9,
+ 0x0e, 0x09, 0x03, 0x28, 0x3f, 0x81, 0x66, 0x8c,
+ 0x70, 0x4d, 0xc7, 0xb6, 0xa8, 0x8d, 0xd1, 0xcf,
+ 0xa3, 0x61, 0xb0, 0x16, 0xec, 0x72, 0xd5, 0xe3,
+ 0xe7, 0xa1, 0x7d, 0xc4, 0x38, 0xad, 0x43, 0xb6,
+ 0xfd, 0xbe, 0x92, 0x8f, 0x3a, 0x31, 0xbe, 0x80,
+ 0x28, 0xab, 0x21, 0xef, 0x83, 0xaf, 0xae, 0x75,
+ 0xee, 0xb7, 0x67, 0x9f, 0x60, 0x14, 0x65, 0x0d,
+ 0xd3, 0x32, 0xc3, 0x14, 0xdc, 0xb0, 0x67, 0x78,
+ 0xd6, 0xbc, 0x01, 0xa2, 0x3b, 0x07, 0x12, 0x2c,
+ 0xfb, 0x61, 0xa5, 0x0c, 0x04, 0xbb, 0x46, 0x64,
+ 0x70, 0x02, 0xd3, 0x4c, 0xa4, 0xd2, 0x6b, 0xfc,
+ 0xff, 0x91, 0x2e, 0x3a, 0xbd, 0xc0, 0xa6, 0xc2,
+ 0x79, 0x80, 0xaf, 0x1c, 0x31, 0x33, 0x83, 0x5f,
+ 0xb2, 0x6f, 0x41, 0xed, 0x76, 0x99, 0xba, 0x7c,
+ 0xd5, 0xa4, 0xc0, 0x03, 0x21, 0xd9, 0x6b, 0x60,
+ 0x1c, 0x1f, 0x71, 0x06, 0xac, 0x2a, 0x02, 0x12,
+ 0x44, 0x86, 0x2c, 0x22, 0x40, 0xee, 0xb0, 0x25,
+ 0x97, 0x80, 0xd0, 0xcc, 0x0c, 0x9a, 0x5a, 0xf7,
+ 0x37, 0x5e, 0xa3, 0x5e, 0x25, 0x42, 0x87, 0x9b,
+ 0x2a, 0x01, 0xf0, 0x7b, 0xcc, 0x2a, 0x43, 0x60,
+ 0xc1, 0x1d, 0xe8, 0xe6, 0x10, 0x92, 0x0f, 0xe0,
+ 0x17, 0xdd, 0x82, 0xea, 0x79, 0x98, 0x1d, 0x5b,
+ 0xe4, 0xf5, 0x3f, 0x08, 0x90, 0x41, 0x9a, 0xc8,
+ 0x52, 0x23, 0xa0, 0x94, 0x06, 0x78, 0x6f, 0x8b,
+ 0x5e, 0xcc, 0xdb, 0xa2, 0x0e, 0xab, 0xf0, 0xf9,
+ 0x32, 0xb5, 0x3d, 0x67, 0x6f, 0x0d, 0x6a, 0xb5,
+ 0xee, 0x1f, 0xc4, 0x93, 0x0c, 0x9b, 0x48, 0x10,
+ 0x07, 0xfe, 0x75, 0x24, 0x1b, 0x93, 0x51, 0xbe,
+ 0x2c, 0x1b, 0xe7, 0x9f, 0xbc, 0x58, 0xb1, 0xee,
+ 0x25, 0xfa, 0x52, 0xc1, 0xab, 0x69, 0x10, 0xcc,
+ 0x09, 0xa1, 0x1d, 0x30, 0xb1, 0xb0, 0x1f, 0x79,
+ 0xaa, 0x40, 0x47, 0xf8, 0x64, 0x17, 0xfb, 0xb1,
+ 0x97, 0x0e, 0x94, 0xb2, 0x5f, 0x4b, 0xbf, 0xf0,
+ 0x98, 0xca, 0xac, 0x54, 0x20, 0x18, 0x85, 0x9a,
+ 0x57, 0xf2, 0x76, 0xd2, 0x08, 0x8d, 0x4a, 0x51,
+ 0xdf, 0x14, 0xdb, 0x24, 0xa2, 0x18, 0x6b, 0xa5,
+ 0x16, 0x37, 0xee, 0xd3, 0x72, 0xba, 0x4a, 0x3b,
+ 0x6b, 0x99, 0x16, 0xa9, 0x93, 0x63, 0xd4, 0x11,
+ 0x3e, 0x00, 0x21, 0x3d, 0x7b, 0x8d, 0x08, 0x17,
+ 0xd9, 0xa4, 0xf2, 0x97, 0xa7, 0xc8, 0x75, 0x15,
+ 0xf7, 0xaf, 0x1f, 0x10, 0x6a, 0x68, 0x36, 0x48,
+ 0xf7, 0xd1, 0x7e, 0x56, 0x68, 0x9d, 0x03, 0x4a,
+ 0x0b, 0xdf, 0xf9, 0x67, 0x35, 0xd6, 0x13, 0xf4,
+ 0xfd, 0xa4, 0xd2, 0x36, 0x4c, 0xbf, 0x9b, 0x96,
+ 0x84, 0xd7, 0xbf, 0x8d, 0xec, 0xa1, 0x0f, 0x43,
+ 0xfb, 0xd0, 0xd1, 0x7d, 0xc8, 0x60, 0x24, 0x64,
+ 0x96, 0xd2, 0xeb, 0x95, 0xba, 0x62, 0xf6, 0xf5,
+ 0xe5, 0xe3, 0x4c, 0x12, 0x1f, 0x84, 0x72, 0xd1,
+ 0xb8, 0xa6, 0x99, 0x16, 0x12, 0x56, 0xf2, 0xfa,
+ 0x8c, 0x2c, 0xc6, 0xa3, 0x08, 0xc8, 0x6c, 0x45,
+ 0xc4, 0xbb, 0x32, 0x26, 0xf9, 0x84, 0xe6, 0x52,
+ 0xe7, 0x38, 0x17, 0x51, 0x09, 0xb9, 0x0e, 0xb9,
+ 0x52, 0x94, 0x6b, 0xbc, 0x01, 0x6c, 0x5a, 0xea,
+ 0x7b, 0xd3, 0xfd, 0xf4, 0xb4, 0xd5, 0xf4, 0x7d,
+ 0xe8, 0x4b, 0xdb, 0xa2, 0x9a, 0xe8, 0x29, 0x45,
+ 0xd3, 0xf2, 0x6b, 0xf2, 0x42, 0x25, 0x47, 0x61,
+ 0xcb, 0x68, 0x8f, 0xb7, 0x97, 0xca, 0x55, 0x55,
+ 0x94, 0xa8, 0xa7, 0x68, 0x74, 0x77, 0x10, 0x64,
+ 0x32, 0x14, 0xb3, 0x85, 0x99, 0xa8, 0xe1, 0xd9,
+ 0x0f, 0xe2, 0xff, 0xab, 0xd1, 0x4f, 0x56, 0x1a,
+ 0x74, 0x8a, 0x8a, 0xfc, 0xc0, 0x92, 0x78, 0x3d,
+ 0x7d, 0x45, 0x34, 0x2a, 0x4e, 0xa5, 0x24, 0x86,
+ 0xf2, 0x40, 0xc3, 0x60, 0xd4, 0xc3, 0x9a, 0x5d,
+ 0xb4, 0xc6, 0xd9, 0xa2, 0x6f, 0x0c, 0xa9, 0x00,
+ 0x94, 0x21, 0x81, 0xc9, 0x08, 0x43, 0x07, 0x05,
+ 0xdc, 0xfd, 0xd3, 0xd0, 0x3f, 0xaf, 0x83, 0xac,
+ 0x8a, 0x8d, 0xc5, 0xdf, 0x68, 0xdf, 0x26, 0xa8,
+ 0x9d, 0xa8, 0xc1, 0x1f, 0xb9, 0x13, 0xd3, 0x92,
+ 0x57, 0x3d, 0x5e, 0x1c, 0xf5, 0xc9, 0x45, 0x22,
+ 0x19, 0x28, 0xa3, 0x8d, 0x68, 0xe1, 0xab, 0x66,
+ 0x05, 0x7b, 0x40, 0x97, 0x7f, 0x2f, 0xf0, 0xd3,
+ 0xae, 0x26, 0xcd, 0x37, 0x23, 0xe5, 0x06, 0x4e,
+ 0x52, 0xf0, 0x7c, 0x6c, 0xa3, 0x3e, 0xb1, 0x89,
+ 0x99, 0x8c, 0x20, 0x4e, 0x8a, 0xce, 0x48, 0x08,
+ 0x63, 0x34, 0x98, 0x4d, 0xc1, 0x58, 0xa2, 0xcd,
+ 0xea, 0x95, 0xb5, 0xfc, 0x31, 0xc0, 0xb5, 0xb7,
+ 0xe4, 0x86, 0x59, 0x0e, 0x2b, 0x86, 0x22, 0xa1,
+ 0x49, 0xfb, 0xc3, 0x56, 0x37, 0x1d, 0x96, 0xc4,
+ 0x4c, 0x53, 0x6c, 0x74, 0x53, 0xb9, 0x08, 0x17,
+ 0xd4, 0xd6, 0x94, 0x07, 0x31, 0x18, 0x32, 0x2d,
+ 0x0a, 0x41, 0x4f, 0x5a, 0x51, 0x7c, 0x47, 0x30,
+ 0x3a, 0x80, 0x0d, 0x3c, 0xa6, 0xa2, 0x7b, 0x54,
+ 0x30, 0xb8, 0x7a, 0xc6, 0xec, 0x00, 0xdb, 0xf1,
+ 0xf9, 0x44, 0xd8, 0x51, 0x3a, 0x27, 0x13, 0xe5,
+ 0xf0, 0x09, 0x0b, 0xb9, 0x73, 0x35, 0x3a, 0xdd,
+ 0x77, 0xf5, 0xe0, 0x56, 0xbd, 0x15, 0xe7, 0xe1,
+ 0xdb, 0xe0, 0x67, 0x27, 0x3e, 0x95, 0x51, 0x8e,
+ 0x96, 0x2c, 0xa7, 0x36, 0x4e, 0x31, 0x4d, 0xea,
+ 0x65, 0xc4, 0x09, 0xff, 0x29, 0xc2, 0x8b, 0xc9,
+ 0xa6, 0x14, 0xb5, 0x66, 0x95, 0x0f, 0x00, 0xf7,
+ 0xff, 0x6b, 0xdc, 0xb8, 0xda, 0x71, 0x3c, 0x05,
+ 0xd6, 0x36, 0x75, 0xe6, 0xb4, 0x4c, 0x9d, 0x8c,
+ 0xb5, 0x25, 0x70, 0xa7, 0xd3, 0x78, 0x1c, 0xe9,
+ 0xd4, 0x2f, 0xff, 0x4e, 0x88, 0x66, 0x69, 0x1d,
+ 0x0f, 0x68, 0x08, 0x6b, 0x74, 0xa0, 0x24, 0x86,
+ 0xf6, 0x13, 0x9b, 0x18, 0xaf, 0xe8, 0x2a, 0xa9,
+ 0x1a, 0x19, 0x28, 0x59, 0x91, 0xff, 0x56, 0x60,
+ 0x6f, 0x20, 0x46, 0x5a, 0x2e, 0xe5, 0x1c, 0xa6,
+ 0x85, 0x02, 0x90, 0xc3, 0x5e, 0xb9, 0x15, 0xe1,
+ 0x36, 0x8f, 0xf5, 0x85, 0x1a, 0xe0, 0x61, 0x50,
+ 0x38, 0xa5, 0x8b, 0x6e, 0xab, 0x78, 0xad, 0xf8,
+ 0xf2, 0xbb, 0xfd, 0x15, 0x96, 0x04, 0xb5, 0x32,
+ 0x7e, 0x8d, 0xe6, 0x86, 0x1f, 0x6f, 0xc1, 0xa8,
+ 0xa1, 0x54, 0x08, 0x33, 0xad, 0xf6, 0x1d, 0x9a,
+ 0x14, 0x55, 0x45, 0x83, 0x94, 0x1f, 0xd4, 0x45,
+ 0xb4, 0x9c, 0xe2, 0x90, 0xa6, 0x87, 0x8b, 0xc2,
+ 0x31, 0x1a, 0xb9, 0x40, 0x96, 0x34, 0x84, 0xcc,
+ 0x07, 0xe4, 0xac, 0x79, 0xd0, 0xa9, 0xf3, 0x5f,
+ 0xfc, 0x13, 0xa2, 0x9f, 0x50, 0x64, 0x37, 0xca,
+ 0xfe, 0xda, 0xc1, 0x9c, 0x71, 0x41, 0xd8, 0x90,
+ 0x5b, 0xbe, 0xed, 0x7e, 0xf7, 0x81, 0xe2, 0x2a,
+ 0xcc, 0xba, 0x0d, 0x39, 0x15, 0x4f, 0x12, 0x43,
+ 0x46, 0x74, 0x48, 0x1d, 0x68, 0x50, 0x83, 0xe2,
+ 0x6e, 0xd3, 0x7b, 0x24, 0xc9, 0x61, 0x10, 0x08,
+ 0xaa, 0x1b, 0x19, 0xf9, 0xbc, 0x8c, 0x73, 0x73,
+ 0x6a, 0x06, 0xa8, 0x53, 0x5d, 0x6a, 0x51, 0xca,
+ 0x2f, 0x86, 0x78, 0xc4, 0x14, 0x19, 0x48, 0x02,
+ 0xd6, 0x3a, 0x74, 0x0a, 0x2a, 0xd3, 0x00, 0x21,
+ 0x26, 0xc9, 0x66, 0xba, 0x05, 0x54, 0x70, 0x0f,
+ 0x6c, 0x4f, 0x7a, 0xdd, 0xb3, 0x43, 0x7a, 0x77,
+ 0x97, 0x52, 0x04, 0xfd, 0x9a, 0x40, 0x60, 0xb0,
+ 0x2a, 0x91, 0xf3, 0x97, 0xf7, 0x41, 0xf5, 0x3d,
+ 0x47, 0xc8, 0x6b, 0x82, 0x88, 0xd3, 0xe0, 0x9e,
+ 0x2d, 0xa6, 0xcd, 0xf9, 0x03, 0x67, 0x43, 0x57,
+ 0x88, 0xb9, 0x23, 0xab, 0x13, 0x50, 0x2b, 0xc4,
+ 0x85, 0x28, 0x4e, 0xde, 0x3b, 0xa8, 0x1e, 0x94,
+ 0x42, 0x1a, 0xfa, 0x8f, 0xb1, 0xba, 0xdf, 0xd2,
+ 0xe8, 0x75, 0x96, 0x20, 0xcf, 0x0c, 0x16, 0xa8,
+ 0x7b, 0xb5, 0x53, 0x9d, 0x24, 0xfa, 0x88, 0x98,
+ 0x9e, 0x8e, 0x8f, 0x61, 0x23, 0xd6, 0xe8, 0x60,
+ 0xe9, 0x42, 0x58, 0xb7, 0xdd, 0x76, 0x37, 0xb6,
+ 0x7f, 0x72, 0x9e, 0xe9, 0xb0, 0x07, 0xcd, 0x27,
+ 0x4e, 0xeb, 0xd9, 0x7b, 0x1c, 0xe0, 0xfb, 0x7d,
+ 0x16, 0x28, 0x4c, 0x3a, 0xa3, 0xbb, 0xb5, 0x49,
+ 0xee, 0xb4, 0xab, 0x68, 0xd8, 0xa2, 0x1d, 0x61,
+ 0xbc, 0x5a, 0x91, 0x83, 0xdc, 0xce, 0xb3, 0x93,
+ 0x6c, 0x27, 0x3f, 0xb8, 0x75, 0xa3, 0x04, 0xb3,
+ 0x38, 0x2b, 0xba, 0x6d, 0x8d, 0xdc, 0xcd, 0xe6,
+ 0x2e, 0x37, 0xa1, 0x29, 0x0f, 0x37, 0xea, 0xd7,
+ 0xd4, 0xe8, 0x0a, 0x3f, 0xd9, 0x85, 0xe4, 0x7a,
+ 0xee, 0x9c, 0xaf, 0x7d, 0x01, 0xc9, 0x32, 0xad,
+ 0x56, 0xc8, 0x50, 0x6a, 0xb5, 0xee, 0x89, 0x67,
+ 0x63, 0x08, 0xeb, 0x82, 0xa2, 0xac, 0x94, 0x9f,
+ 0x4c, 0xe1, 0xd3, 0x31, 0x58, 0xfb, 0x57, 0x31,
+ 0x62, 0xdc, 0xbf, 0xe1, 0x02, 0x8b, 0x6c, 0x88,
+ 0x57, 0x18, 0xcb, 0x4d, 0x10, 0x83, 0x48, 0x49,
+ 0x4a, 0x80, 0xaa, 0x1a, 0x2d, 0xf6, 0xd9, 0x19,
+ 0x21, 0xba, 0x0a, 0xb7, 0x13, 0x03, 0x91, 0x5b,
+ 0xff, 0x43, 0x73, 0xff, 0x5d, 0xf8, 0xb7, 0x5f,
+ 0xe6, 0xcb, 0x7c, 0x0f, 0x88, 0x4a, 0x14, 0xaa,
+ 0xaa, 0xc8, 0xe4, 0xd0, 0x64, 0x47, 0x6f, 0x16,
+ 0xe4, 0xe5, 0x28, 0x76, 0x3d, 0x46, 0xd2, 0x76,
+ 0x49, 0x36, 0xf8, 0x93, 0x7f, 0xb0, 0xd3, 0xdc,
+ 0xc3, 0x92, 0x35, 0xf9, 0x81, 0x93, 0x22, 0xd1,
+ 0x50, 0x77, 0xff, 0xce, 0xb0, 0xe3, 0xdb, 0x91,
+ 0xbf, 0x32, 0x71, 0x2a, 0x46, 0x97, 0xbc, 0x24,
+ 0x39, 0xf1, 0x89, 0x3f, 0x43, 0x80, 0xd3, 0x59,
+ 0x4f, 0xc8, 0x9e, 0xca, 0xb9, 0xc1, 0x0a, 0x4c,
+ 0xe9, 0x9e, 0x3c, 0x05, 0x73, 0xa5, 0x88, 0xc2,
+ 0x24, 0x43, 0xc9, 0xa8, 0xf2, 0x8c, 0xbe, 0x95,
+ 0x8b, 0xf2, 0x47, 0xa2, 0x1e, 0xdb, 0x9d, 0x5a,
+ 0xfd, 0xea, 0x36, 0x98, 0x9a, 0xb3, 0x5b, 0xe3,
+ 0xa4, 0x91, 0x01, 0x55, 0x9c, 0xdf, 0xb6, 0xf5,
+ 0xa1, 0xe9, 0xb9, 0x4c, 0x30, 0xb5, 0xe4, 0x1e,
+ 0x54, 0xc4, 0x78, 0xf9, 0x0c, 0x78, 0x60, 0x51,
+ 0x9c, 0x30, 0x4e, 0xa0, 0x50, 0x7d, 0x3c, 0x20,
+ 0xc2, 0xff, 0xe2, 0xeb, 0x26, 0x48, 0xed, 0x6f,
+ 0x9f, 0x42, 0xd0, 0xc0, 0x40, 0xf7, 0x86, 0x9d,
+ 0xf6, 0x44, 0x3e, 0xdc, 0x9e, 0x6f, 0x7e, 0xb6,
+ 0xe9, 0x86, 0xaa, 0xd2, 0x3f, 0x1e, 0x25, 0xcb,
+ 0xba, 0x0a, 0x55, 0x35, 0x5b, 0x9d, 0x27, 0x70,
+ 0xc2, 0x9c, 0xde, 0xf9, 0x27, 0x8a, 0xaf, 0xe2,
+ 0x14, 0xb5, 0x34, 0x60, 0x58, 0x8d, 0x96, 0x35,
+ 0xd9, 0x2c, 0xb1, 0x70, 0x4e, 0x31, 0x91, 0x72,
+ 0x12, 0x18, 0xcf, 0x52, 0x43, 0x89, 0x93, 0xdf,
+ 0x42, 0x2b, 0x42, 0x64, 0xa8, 0x1d, 0xed, 0xa6,
+ 0xd1, 0x04, 0x8b, 0x62, 0xd5, 0x0f, 0x77, 0x3c,
+ 0x36, 0x98, 0x95, 0xce, 0x0e, 0xa0, 0x47, 0x8f,
+ 0x0b, 0x5e, 0x5f, 0x52, 0xb4, 0x5a, 0x3e, 0xd2,
+ 0x01, 0xb3, 0xaa, 0xb9, 0x7b, 0xff, 0x48, 0x80,
+ 0xb7, 0x1f, 0xdc, 0x4d, 0xc8, 0xe0, 0x93, 0x97,
+ 0x0f, 0xeb, 0x2c, 0x3e, 0xba, 0xc0, 0x2b, 0xe4,
+ 0xab, 0xb5, 0x5a, 0x6b, 0xbc, 0x6a, 0x3f, 0x51,
+ 0xad, 0xab, 0x81, 0x12, 0x67, 0x21, 0xf0, 0x6b,
+ 0x33, 0x27, 0x39, 0x1d, 0xf6, 0x2b, 0xa6, 0x62,
+ 0xce, 0xed, 0xdd, 0x0c, 0x2f, 0x22, 0x8d, 0xe1,
+ 0xe4, 0xc0, 0x97, 0x00, 0xfe, 0xa2, 0x95, 0x48,
+ 0x9b, 0x1a, 0x02, 0xe1, 0x87, 0x61, 0x44, 0x3b,
+ 0x34, 0x36, 0x56, 0x23, 0x6c, 0x9c, 0x8a, 0x3c,
+ 0xc8, 0x01, 0x7f, 0x6e, 0x47, 0x7f, 0x89, 0xeb,
+ 0xb9, 0x89, 0x96, 0x36, 0x96, 0xb9, 0x66, 0xa3,
+ 0x46, 0xd5, 0xf7, 0xa4, 0xd9, 0xb1, 0x58, 0xdf,
+ 0xa5, 0x9c, 0xbc, 0xd0, 0x33, 0xd7, 0x27, 0xbb,
+ 0x1d, 0x8b, 0xba, 0x1b, 0xf2, 0x91, 0xe6, 0xcf,
+ 0xd1, 0x5b, 0x0d, 0x6e, 0x1d, 0x78, 0x0f, 0x20,
+ 0xa6, 0x90, 0x12, 0xec, 0x03, 0xc3, 0xe1, 0xf0,
+ 0x32, 0x68, 0x5f, 0x4a, 0x69, 0x1c, 0x8e, 0xa8,
+ 0xee, 0xb7, 0x7b, 0x4e, 0xc4, 0x5c, 0x25, 0x93,
+ 0x4c, 0x81, 0x39, 0x16, 0x85, 0x78, 0xd9, 0x60,
+ 0x51, 0x5f, 0x7d, 0xa0, 0x2d, 0x02, 0x98, 0xb2,
+ 0x2f, 0xef, 0xf1, 0x0f, 0xfc, 0xae, 0x7e, 0x1c,
+ 0x38, 0x7f, 0x3e, 0xf8, 0xbe, 0xf7, 0x52, 0xb8,
+ 0x01, 0x34, 0x20, 0x2f, 0x53, 0x34, 0x5e, 0xc4,
+ 0xfe, 0xb4, 0x93, 0xe7, 0x4d, 0xd8, 0x74, 0x18,
+ 0xb3, 0x2e, 0x1d, 0xc0, 0xf9, 0xb6, 0xc2, 0x29,
+ 0x0d, 0x57, 0x95, 0x55, 0xb0, 0xf3, 0x01, 0xa4,
+ 0x38, 0xdf, 0x68, 0x5d, 0x91, 0x96, 0xf8, 0x4d,
+ 0x8b, 0x99, 0x49, 0x45, 0x3d, 0xc5, 0xfe, 0xa6,
+ 0x43, 0xad, 0xe7, 0x47, 0x2e, 0x7a, 0xd8, 0x16,
+ 0xd2, 0x88, 0xbb, 0xf1, 0x38, 0x01, 0xdd, 0xc5,
+ 0x3f, 0xb3, 0x2f, 0x41, 0x2f, 0x3a, 0x59, 0xcb,
+ 0x0c, 0x2a, 0x02, 0x08, 0xd3, 0x8c, 0x00, 0x26,
+ 0xea, 0x97, 0x5a, 0x22, 0xb3, 0x86, 0x08, 0xc6,
+ 0xa3, 0x9c, 0xe8, 0x88, 0x10, 0xd5, 0x4f, 0xde,
+ 0x54, 0x26, 0x36, 0xec, 0x48, 0x8b, 0x52, 0x5c,
+ 0x13, 0x66, 0x71, 0x7d, 0x22, 0x7b, 0xcd, 0x32,
+ 0x65, 0xdb, 0x5a, 0xb7, 0xcc, 0xf2, 0x04, 0xbe,
+ 0x7f, 0xa2, 0x09, 0xb3, 0x2d, 0x38, 0xd0, 0x25,
+ 0x50, 0x22, 0x33, 0xc2, 0x43, 0x92, 0x1d, 0x22,
+ 0xb7, 0xca, 0x07, 0xad, 0x33, 0xdc, 0x54, 0x54,
+ 0xb6, 0xec, 0xf1, 0x30, 0x37, 0x6b, 0xb3, 0xe5,
+ 0x76, 0xb8, 0x61, 0x6d, 0x4d, 0x61, 0x0b, 0x85,
+ 0xcb, 0x51, 0x74, 0x00, 0xed, 0x9d, 0x13, 0x30,
+ 0x30, 0x89, 0xa3, 0x1f, 0x7e, 0xe1, 0x70, 0x8c,
+ 0xf3, 0x63, 0x8c, 0x4d, 0x4b, 0x50, 0x97, 0x2a,
+ 0x99, 0x74, 0xd5, 0x45, 0xe3, 0x40, 0x43, 0xff,
+ 0x14, 0xc4, 0x6d, 0x3f, 0x82, 0xd0, 0x0e, 0x20,
+ 0xf7, 0x36, 0x2a, 0xf3, 0xb6, 0xc8, 0x81, 0x02,
+ 0x52, 0x56, 0xb6, 0x18, 0x3d, 0xab, 0xfe, 0xe2,
+ 0xeb, 0xb2, 0xbf, 0xd6, 0xdc, 0xc4, 0xa8, 0x2d,
+ 0xb4, 0x4b, 0xe2, 0xff, 0xa6, 0x1b, 0x18, 0xb3,
+ 0x04, 0x97, 0x41, 0x74, 0x84, 0xce, 0x63, 0x70,
+ 0xd4, 0x1e, 0xe5, 0xc2, 0xe5, 0x93, 0x13, 0x2b,
+ 0x1c, 0x14, 0x1b, 0x12, 0xd8, 0x11, 0x45, 0x50,
+ 0x96, 0xc6, 0x6f, 0xd4, 0x7f, 0xa0, 0x0f, 0x02,
+ 0xf2, 0x36, 0x50, 0x12, 0xc1, 0x6d, 0x55, 0xd1,
+ 0xcf, 0x4b, 0x9f, 0x2a, 0xae, 0x54, 0xf0, 0x23,
+ 0xcf, 0xe7, 0x15, 0x9e, 0x82, 0x53, 0xbc, 0x7b,
+ 0x2d, 0xb8, 0x95, 0x75, 0x17, 0x09, 0xec, 0xe4,
+ 0xae, 0x53, 0xcf, 0xc2, 0x24, 0xfe, 0x41, 0xb2,
+ 0x0d, 0x3c, 0x09, 0x2f, 0x21, 0x39, 0x59, 0x1d,
+ 0x8c, 0x97, 0x78, 0x4c, 0x8c, 0xa3, 0xb6, 0xf9,
+ 0xaa, 0x38, 0x97, 0x7b, 0x07, 0x50, 0x12, 0x69,
+ 0x7a, 0xbe, 0x34, 0x7b, 0xe3, 0x7c, 0x3c, 0xd5,
+ 0x37, 0x30, 0x53, 0xd6, 0x7e, 0x93, 0xed, 0xf1,
+ 0x43, 0x0c, 0xb5, 0xa3, 0x75, 0x05, 0x38, 0x29,
+ 0x10, 0x9c, 0x7f, 0x69, 0x9c, 0x9a, 0xcb, 0x03,
+ 0xa5, 0x42, 0xa1, 0xd2, 0x03, 0x2d, 0x6c, 0x17,
+ 0x95, 0xae, 0xb2, 0x19, 0x40, 0x09, 0xcb, 0x9a,
+ 0x1e, 0xf9, 0x34, 0x43, 0xcf, 0xd9, 0x22, 0xb9,
+ 0x53, 0x10, 0xf6, 0x57, 0xde, 0xa4, 0x55, 0x91,
+ 0xa5, 0xe7, 0x6c, 0x20, 0xfe, 0xe4, 0x49, 0xc8,
+ 0x29, 0x9b, 0xec, 0x28, 0x9f, 0xd9, 0x20, 0x1a,
+ 0x56, 0x0a, 0xa5, 0x82, 0xf6, 0x46, 0xda, 0x3b,
+ 0x27, 0xd3, 0x5d, 0xb2, 0x21, 0xa8, 0xcd, 0x3f,
+ 0x21, 0x95, 0xbf, 0x42, 0xe0, 0xc5, 0x19, 0x82,
+ 0xbf, 0x44, 0x87, 0xb4, 0xe3, 0x4d, 0x6e, 0x3e,
+ 0x34, 0xea, 0xe8, 0x63, 0xeb, 0x9a, 0x84, 0xaa,
+ 0x82, 0x00, 0x3e, 0x59, 0x21, 0xc6, 0xc6, 0xbf,
+ 0x73, 0xbc, 0x0e, 0xfb, 0x2d, 0x3f, 0xfc, 0x85,
+ 0xbd, 0xc0, 0x84, 0x48, 0xf5, 0xf3, 0x32, 0x7f,
+ 0x07, 0xa2, 0x66, 0x9f, 0x9d, 0x47, 0x8c, 0x19,
+ 0x49, 0x88, 0x07, 0x9c, 0x77, 0x9b, 0xc5, 0x5a,
+ 0x6d, 0x56, 0x7b, 0x0d, 0xe3, 0x94, 0x86, 0x83,
+ 0xad, 0xf2, 0x59, 0x30, 0x18, 0x30, 0x26, 0x5a,
+ 0x2b, 0xf5, 0x8c, 0x6a, 0x07, 0xe3, 0x71, 0xe8,
+ 0x8d, 0x3d, 0x91, 0x7e, 0x28, 0xbb, 0xf9, 0x50,
+ 0xfb, 0x63, 0x8b, 0x3f, 0x7f, 0x7d, 0xcd, 0xf0,
+ 0x18, 0x09, 0x73, 0x14, 0xe3, 0xa4, 0x92, 0x91,
+ 0x43, 0xbf, 0xe4, 0x03, 0xdf, 0x6b, 0x52, 0xc1,
+ 0x28, 0x86, 0xd1, 0xcf, 0x41, 0xc9, 0xd3, 0x2e,
+ 0x80, 0x07, 0x86, 0x81, 0xb1, 0xe1, 0x55, 0x3e,
+ 0x96, 0xab, 0x25, 0x25, 0x49, 0x15, 0xd5, 0x2f,
+ 0x22, 0x80, 0x0b, 0xb6, 0x37, 0x18, 0x8e, 0xcc,
+ 0x95, 0x3c, 0xf5, 0xa9, 0xd6, 0x84, 0xc6, 0xc6,
+ 0x5d, 0x68, 0x2e, 0x97, 0xeb, 0xba, 0x36, 0xc6,
+ 0x6b, 0x37, 0xfe, 0x63, 0x69, 0x11, 0x8c, 0xe9,
+ 0x6a, 0xc6, 0x73, 0x35, 0x5d, 0xe0, 0x14, 0x02,
+ 0x32, 0x79, 0x00, 0x7c, 0xa2, 0x67, 0xec, 0xed,
+ 0xd7, 0xa2, 0xd4, 0x79, 0x95, 0x97, 0xb4, 0xc4,
+ 0xd2, 0x50, 0xad, 0x7d, 0xff, 0x99, 0xcb, 0xf3,
+ 0x22, 0xf6, 0x3b, 0xc1, 0x01, 0x5f, 0xda, 0x21,
+ 0xe5, 0x13, 0xd6, 0xa2, 0x58, 0x03, 0xf3, 0x1a,
+ 0x3c, 0x2e, 0xbb, 0xe0, 0x0c, 0xe0, 0xb3, 0xad,
+ 0x9e, 0x06, 0x47, 0x21, 0xd3, 0x39, 0x38, 0xfa,
+ 0x6b, 0x12, 0x01, 0x1f, 0xea, 0xa2, 0xf6, 0xc9,
+ 0xc8, 0x27, 0xfe, 0xf4, 0x0e, 0x58, 0xfd, 0x43,
+ 0x3f, 0x12, 0xc8, 0x0e, 0xb4, 0xd7, 0x73, 0x6f,
+ 0xa5, 0x27, 0xf1, 0x0d, 0xcb, 0x0c, 0x30, 0x7b,
+ 0x76, 0xe2, 0x5b, 0xd5, 0x85, 0x72, 0xc3, 0x89,
+ 0xcc, 0x00, 0x84, 0xb4, 0xb0, 0x98, 0x14, 0x82,
+ 0xc9, 0xb4, 0x65, 0xeb, 0x69, 0xd5, 0xef, 0xe6,
+ 0x34, 0x53, 0xd3, 0x69, 0x38, 0x8e, 0xa9, 0x3b,
+ 0x9d, 0x0f, 0x38, 0xdf, 0x49, 0x80, 0x51, 0x02,
+ 0x2f, 0x65, 0x3d, 0xee, 0xb8, 0xc5, 0x95, 0x28,
+ 0x03, 0x91, 0xcb, 0x1f, 0x76, 0x84, 0xda, 0x22,
+ 0x10, 0x26, 0x6e, 0xee, 0xd6, 0x21, 0xf3, 0x1c,
+ 0x2a, 0xec, 0x35, 0x92, 0xc8, 0x21, 0x17, 0x08,
+ 0x33, 0xa8, 0x22, 0x1e, 0x3e, 0xff, 0xda, 0xdd,
+ 0xf7, 0xb6, 0x2f, 0xb7, 0x9b, 0x9e, 0xa2, 0x43,
+ 0xaf, 0xe4, 0x4d, 0xa4, 0xfc, 0x84, 0xe6, 0x53,
+ 0x43, 0xf8, 0xb0, 0xb1, 0x47, 0xef, 0x04, 0x73,
+ 0x37, 0xc7, 0xce, 0x6b, 0x34, 0xc0, 0x8f, 0x11,
+ 0xb6, 0x64, 0x3f, 0x33, 0x5f, 0x4b, 0xac, 0xba,
+ 0x59, 0x3a, 0xe6, 0x9f, 0xa5, 0xd7, 0xf3, 0x16,
+ 0x2a, 0x69, 0x72, 0xef, 0x05, 0xb2, 0x7c, 0x37,
+ 0x28, 0xca, 0x1b, 0x8e, 0x29, 0x28, 0xfa, 0xdd,
+ 0x2f, 0x9f, 0x6e, 0x40, 0x34, 0x30, 0xa3, 0x4d,
+ 0xa8, 0xb8, 0x82, 0x74, 0x6e, 0x55, 0xff, 0x63,
+ 0xd2, 0xef, 0x00, 0x71, 0xdc, 0x36, 0x07, 0x61,
+ 0x50, 0x8e, 0x86, 0xba, 0xa4, 0xe9, 0x90, 0x96,
+ 0x55, 0x24, 0x2d, 0x82, 0x57, 0x97, 0x58, 0xe9,
+ 0x2b, 0xac, 0xee, 0x31, 0x1e, 0x0e, 0xe3, 0x54,
+ 0x92, 0xff, 0xb0, 0xc2, 0xd6, 0x8a, 0xe2, 0xbb,
+ 0x7a, 0xfe, 0x0e, 0xb2, 0x18, 0xf0, 0x21, 0xcd,
+ 0xca, 0x6a, 0xba, 0xc8, 0xb4, 0x9c, 0x5a, 0xff,
+ 0x71, 0x71, 0x15, 0x3b, 0x5f, 0x97, 0x8e, 0x24,
+ 0xb6, 0xa5, 0x5e, 0x04, 0x73, 0x42, 0xe4, 0xd6,
+ 0xc5, 0x60, 0x5f, 0xb0, 0x32, 0x7e, 0x3e, 0x4c,
+ 0x38, 0x15, 0xf9, 0xac, 0xfd, 0xdb, 0xb5, 0x79,
+ 0xdd, 0x47, 0x6a, 0xd6, 0xa4, 0xec, 0x1a, 0x18,
+ 0x4f, 0x7a, 0x9a, 0x08, 0x58, 0xbf, 0x62, 0x6e,
+ 0x9a, 0xe4, 0x4d, 0x06, 0x50, 0xcf, 0x6f, 0x78,
+ 0xad, 0x3b, 0xfb, 0x2c, 0xfa, 0xcc, 0x6d, 0xdf,
+ 0x91, 0xd4, 0x87, 0x0a, 0xb8, 0x0b, 0x4a, 0xe2,
+ 0xbc, 0x2a, 0x45, 0xa2, 0xa5, 0x8b, 0x03, 0xc5,
+ 0x8c, 0x5c, 0x61, 0x19, 0xd1, 0x24, 0x23, 0x8e,
+ 0x64, 0xe7, 0x34, 0x71, 0x7a, 0x7f, 0x29, 0x98,
+ 0x26, 0x0f, 0x8b, 0xce, 0x9e, 0x60, 0x64, 0xac,
+ 0x34, 0xce, 0xa7, 0x7a, 0xeb, 0x6f, 0x5c, 0x6e,
+ 0x41, 0xb4, 0x9c, 0x75, 0x40, 0xea, 0x2d, 0x72,
+ 0xbe, 0x0a, 0xce, 0xdf, 0xbc, 0xee, 0xf5, 0xb8,
+ 0x7c, 0xd2, 0xe8, 0x82, 0x38, 0xbc, 0xff, 0x70,
+ 0xbe, 0xa8, 0x66, 0x0e, 0xe8, 0x7a, 0x01, 0x29,
+ 0x54, 0x6e, 0x7b, 0xf0, 0x54, 0xce, 0x3a, 0x26,
+ 0xbc, 0xb8, 0x13, 0x17, 0x1d, 0x22, 0x3a, 0x9f,
+ 0xe6, 0x63, 0xda, 0xe2, 0xe0, 0xe1, 0xbb, 0xb2,
+ 0xe4, 0x86, 0xd9, 0xa1, 0xe9, 0xf0, 0x95, 0xcd,
+ 0xe6, 0xf9, 0x86, 0xbb, 0x06, 0x56, 0x1b, 0xb9,
+ 0x23, 0x89, 0xdb, 0x70, 0xcd, 0xc4, 0x57, 0x55,
+ 0x0b, 0x63, 0x24, 0x23, 0x8f, 0xcf, 0xf9, 0x0d,
+ 0xee, 0x32, 0xff, 0xa6, 0x58, 0x37, 0x58, 0x3a,
+ 0xe4, 0xc8, 0x72, 0x43, 0x39, 0x52, 0xdb, 0x0a,
+ 0xdf, 0x63, 0x14, 0xc2, 0x9f, 0xbc, 0xfe, 0xf6,
+ 0x9c, 0xa9, 0x39, 0xf3, 0xc5, 0x04, 0x34, 0x63,
+ 0x42, 0x3e, 0x39, 0x23, 0xe2, 0xbd, 0x0c, 0x79,
+ 0xb8, 0x0b, 0xf4, 0x15, 0xd2, 0x0a, 0x9d, 0x97,
+ 0x3c, 0x97, 0x96, 0x35, 0x7e, 0x22, 0xa5, 0x90,
+ 0x25, 0x80, 0xa2, 0xf9, 0xd7, 0xfd, 0xed, 0x04,
+ 0x7b, 0x8b, 0x65, 0x26, 0x0f, 0x0f, 0xc4, 0x0b,
+ 0x99, 0xf8, 0x2b, 0x0c, 0xf4, 0x72, 0x4c, 0x3f,
+ 0xdd, 0xc3, 0x42, 0xf4, 0xff, 0x86, 0x1a, 0x19,
+ 0x34, 0xc6, 0xd5, 0x5c, 0x59, 0x1c, 0xdd, 0x76,
+ 0xd5, 0x12, 0xa3, 0xf3, 0xe5, 0x60, 0xef, 0x87,
+ 0xfe, 0x83, 0xcf, 0xd2, 0xab, 0xbd, 0xf8, 0x23,
+ 0x83, 0x55, 0x0e, 0x19, 0x3a, 0xc2, 0xba, 0x03,
+ 0xfb, 0xd2, 0xc6, 0xf1, 0xce, 0x5e, 0x0b, 0x94,
+ 0x75, 0xfd, 0x12, 0x27, 0x5c, 0x30, 0xd6, 0x00,
+ 0x96, 0x9b, 0x64, 0xe8, 0xfb, 0x4d, 0xfc, 0xce,
+ 0x3f, 0x43, 0xd6, 0x66, 0xdb, 0x72, 0x11, 0x42,
+ 0x6e, 0x22, 0x01, 0x4f, 0xe3, 0x3a, 0xc6, 0x8e,
+ 0x85, 0x09, 0x46, 0x1a, 0x1b, 0xb2, 0xb6, 0xda,
+ 0x06, 0x9a, 0x93, 0xe3, 0x23, 0x02, 0xed, 0xd2,
+ 0x6f, 0x4f, 0x9a, 0x7f, 0x15, 0x8f, 0x21, 0x0b,
+ 0xe0, 0x79, 0x05, 0xe8, 0x7d, 0x37, 0xc1, 0x5e,
+ 0x07, 0xeb, 0x60, 0x0c, 0xff, 0xa0, 0x9f, 0xb4,
+ 0x63, 0xc4, 0x86, 0x9c, 0xd0, 0xa3, 0xd6, 0x69,
+ 0x9b, 0x49, 0x27, 0xb3, 0x95, 0x37, 0x76, 0x51,
+ 0xda, 0xb4, 0xf7, 0xcd, 0x98, 0x4a, 0xfe, 0x34,
+ 0x14, 0xad, 0x7a, 0x9f, 0x9b, 0xcd, 0xab, 0x8d,
+ 0x43, 0x48, 0x41, 0xcb, 0x94, 0xe2, 0x7b, 0xb3,
+ 0x65, 0xc5, 0xe5, 0x0a, 0xb5, 0x8a, 0x33, 0xfe,
+ 0x20, 0x64, 0x49, 0x15, 0x03, 0x32, 0x26, 0x28,
+ 0x76, 0x7e, 0x2f, 0x0c, 0x5d, 0xb4, 0x34, 0x01,
+ 0x7f, 0x8c, 0x70, 0xb5, 0x61, 0x91, 0x9f, 0x9d,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x48, 0x11, 0x92, 0xb3, 0xaa, 0x7e, 0xb3, 0x14,
+ 0xdc, 0x46, 0xd6, 0xbf, 0x26, 0xb2, 0x66, 0xc5,
+ 0xd8, 0xc4, 0x69, 0x9f, 0x67, 0x50, 0x67, 0xc0,
+ 0x3b, 0x8d, 0xc5, 0xb5, 0x68, 0x59, 0x6f, 0x9c,
+ 0xd4, 0xf2, 0x49, 0xfb, 0xa4, 0xd0, 0xbf, 0xc5,
+ 0x3c, 0xee, 0x3b, 0x03, 0x25, 0x6c, 0x51, 0x94,
+ 0xb3, 0xd4, 0xdb, 0x2a, 0xbd, 0x26, 0xef, 0x58,
+ 0xb3, 0x91, 0x62, 0x81, 0x1b, 0x29, 0x9c, 0x12,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0xba, 0x08, 0xf3, 0x0c, 0xa1, 0x48, 0xad, 0x67,
+ 0x12, 0x68, 0x51, 0x9b, 0xa4, 0x21, 0x66, 0x8d,
+ 0xea, 0x0a, 0x71, 0x4f, 0x4c, 0xab, 0x1b, 0x42,
+ 0x84, 0xb7, 0x9c, 0x78, 0xa9, 0x18, 0xd9, 0xe8,
+ 0x08, 0x8f, 0xee, 0xf7, 0x4b, 0xcf, 0x0e, 0xcd,
+ 0xf6, 0x36, 0xcf, 0xd5, 0xa1, 0x5e, 0x59, 0xc6,
+ 0x8c, 0x6c, 0x4d, 0xfe, 0xfa, 0xfa, 0xbc, 0x52,
+ 0x3a, 0x35, 0xba, 0xd9, 0xe1, 0xf2, 0x26, 0x73,
+ 0xbd, 0x64, 0x93, 0xe7, 0x83, 0x76, 0xc4, 0xf8,
+ 0x4b, 0xa9, 0x91, 0x8c, 0xd2, 0xf5, 0x08, 0xe6,
+ 0x58, 0xcd, 0xfb, 0x90, 0xc1, 0x84, 0x72, 0x77,
+ 0x72, 0x47, 0x5f, 0xcb, 0x7f, 0x74, 0x85, 0x56,
+ 0xba, 0x73, 0x86, 0xc1, 0x32, 0x1c, 0xaf, 0xc5,
+ 0x60, 0x2c, 0x91, 0x99, 0x09, 0x03, 0xcb, 0xe6,
+ 0xa4, 0xae, 0x0b, 0xdc, 0x15, 0x70, 0x4c, 0x91,
+ 0xa9, 0x9e, 0x5e, 0x63, 0x5c, 0x24, 0xc9, 0x26,
+ 0x39, 0x56, 0xe4, 0x6c, 0x2c, 0x65, 0xf8, 0x0b,
+ 0x4f, 0x56, 0x8f, 0x1e, 0x74, 0xda, 0x31, 0xad,
+ 0x8f, 0x1b, 0xa7, 0xb1, 0xb3, 0x9b, 0x48, 0x09,
+ 0x08, 0xdd, 0xe1, 0x25, 0x20, 0xa4, 0xc7, 0x12,
+ 0xd4, 0xb0, 0xa0, 0xcb, 0x90, 0xf5, 0x9f, 0xc1,
+ 0x8b, 0xbc, 0x9d, 0xcf, 0x78, 0xfc, 0xa1, 0x04,
+ 0x4b, 0x0b, 0x7e, 0x82, 0x94, 0x80, 0x0e, 0x70,
+ 0x77, 0xce, 0x63, 0x1c, 0x43, 0x41, 0x3f, 0x5d,
+ 0x61, 0x1a, 0x44, 0xaa, 0xd0, 0xb7, 0x18, 0xd8,
+ 0x91, 0x83, 0xa4, 0xa7, 0xa1, 0x86, 0x13, 0x54,
+ 0xaf, 0xa8, 0xdb, 0x1a, 0xd7, 0xa9, 0x54, 0xca,
+ 0x67, 0xb5, 0xb6, 0xb4, 0x22, 0x1a, 0x24, 0x8e,
+ 0x65, 0x01, 0xa8, 0xd2, 0x15, 0x9d, 0x98, 0x59,
+ 0x70, 0x94, 0xb4, 0x96, 0xeb, 0xf2, 0x95, 0x41,
+ 0x9a, 0x89, 0x02, 0xb7, 0x6a, 0x20, 0x2a, 0x64,
+ 0xf1, 0x1c, 0x1e, 0x3d, 0xd8, 0xdb, 0x6d, 0xef,
+ 0xf2, 0x1a, 0x24, 0xa4, 0xd0, 0xb9, 0x98, 0xd3,
+ 0xe5, 0xbd, 0x7a, 0xa3, 0xc3, 0x19, 0x97, 0x54,
+ 0x77, 0x97, 0xb5, 0x57, 0x93, 0x71, 0x24, 0x91,
+ 0x81, 0xcf, 0x5f, 0x38, 0xb9, 0xd5, 0x7e, 0x8b,
+ 0x0f, 0xea, 0x56, 0x49, 0xac, 0x25, 0xc4, 0x6c,
+ 0x5e, 0x4e, 0x08, 0x31, 0xc8, 0xdf, 0x0b, 0x19,
+ 0xb9, 0xbc, 0xec, 0x3b, 0x89, 0xf8, 0x98, 0xe3,
+ 0x6c, 0xf6, 0x0f, 0x5b, 0x7e, 0x03, 0x10, 0x68,
+ 0x78, 0x2c, 0xfa, 0x39, 0x5c, 0x64, 0x5b, 0xa1,
+ 0xfc, 0x8d, 0x14, 0x87, 0x62, 0x04, 0x57, 0xc0,
+ 0x5b, 0x6f, 0x6e, 0x3c, 0xea, 0xe6, 0x23, 0xde,
+ 0x9b, 0x1d, 0x89, 0x69, 0x38, 0xfb, 0x10, 0xab,
+ 0xb9, 0xda, 0xee, 0xa8, 0x8d, 0x96, 0xc0, 0xa5,
+ 0x40, 0xce, 0x16, 0x1e, 0xf5, 0xf4, 0x74, 0x6f,
+ 0x0e, 0x38, 0xe5, 0x1d, 0xe6, 0x6c, 0x19, 0xa5,
+ 0x71, 0x48, 0xda, 0x3e, 0xe9, 0x10, 0x57, 0x16,
+ 0x89, 0xd3, 0x5b, 0x4a, 0x5b, 0xa9, 0xb1, 0x13,
+ 0xad, 0x77, 0xaf, 0x1f, 0x8b, 0x71, 0x3f, 0xff,
+ 0x7c, 0xc4, 0x31, 0xb2, 0xa7, 0x18, 0x2f, 0x4b,
+ 0x99, 0xe2, 0x14, 0xbf, 0x1e, 0x69, 0x8f, 0x56,
+ 0xe2, 0x2c, 0x84, 0x34, 0xd6, 0x76, 0x27, 0x06,
+ 0x7f, 0x2e, 0x9d, 0xbe, 0x90, 0x95, 0xda, 0x5a,
+ 0xfb, 0xaa, 0x8a, 0x51, 0x3d, 0x97, 0xb8, 0x75,
+ 0xe9, 0xba, 0x2a, 0x03, 0x7e, 0xb0, 0xe3, 0xdc,
+ 0xe3, 0x3b, 0x2a, 0xd8, 0x77, 0xa5, 0xf3, 0x76,
+ 0x69, 0xf1, 0xd2, 0xd5, 0xb3, 0xba, 0xfa, 0x97,
+ 0x55, 0x5f, 0xd1, 0xc3, 0x10, 0x55, 0x9a, 0xb6,
+ 0xce, 0x32, 0x80, 0x7f, 0x48, 0xb7, 0x15, 0x85,
+ 0x3f, 0x22, 0x58, 0x00, 0x51, 0x12, 0x5c, 0xcc,
+ 0xd0, 0x77, 0x26, 0x57, 0x4b, 0xbb, 0x67, 0x21,
+ 0x0d, 0x92, 0x80, 0xe0, 0xec, 0x2f, 0x58, 0x44,
+ 0x8b, 0x98, 0x70, 0x16, 0x13, 0x91, 0x38, 0xee,
+ 0x9e, 0x4f, 0xf2, 0x6f, 0x95, 0x49, 0xe8, 0xcc,
+ 0xc5, 0x6d, 0x20, 0x20, 0x4d, 0x1b, 0x08, 0xf4,
+ 0xa5, 0x8b, 0xf3, 0xf6, 0x89, 0x2c, 0x17, 0xa6,
+ 0xa8, 0xa8, 0xfb, 0xab, 0x6f, 0xa0, 0xe3, 0xcd,
+ 0xc5, 0xfb, 0xac, 0x91, 0x42, 0x8c, 0xf2, 0x28,
+ 0xd1, 0x13, 0xdb, 0x63, 0x59, 0x69, 0xab, 0x16,
+ 0x5a, 0xaf, 0x0a, 0xfa, 0x43, 0x6d, 0x53, 0x7f,
+ 0x14, 0x88, 0xc8, 0xa1, 0x71, 0x45, 0x54, 0x30,
+ 0xa7, 0x91, 0x55, 0x44, 0x07, 0x03, 0x78, 0xf3,
+ 0xf6, 0x23, 0xc0, 0x21, 0x4b, 0x39, 0xc4, 0x9a,
+ 0x5a, 0xe8, 0xad, 0x28, 0x6b, 0xd2, 0xd7, 0xc9,
+ 0xed, 0xf4, 0x30, 0xff, 0xf8, 0xc4, 0x7a, 0xfe,
+ 0x49, 0x1c, 0x28, 0xbb, 0x89, 0xfa, 0x9d, 0x64,
+ 0xcc, 0x37, 0x76, 0x6a, 0xf3, 0x8b, 0x94, 0x60,
+ 0xe0, 0xb2, 0x29, 0xf8, 0x5a, 0xc6, 0x3e, 0xcc,
+ 0x6f, 0x13, 0x85, 0x7c, 0xaa, 0xc4, 0x35, 0x56,
+ 0x9a, 0xb6, 0x96, 0x76, 0x41, 0xe2, 0x11, 0xbe,
+ 0x07, 0xba, 0x0c, 0x21, 0x32, 0xc3, 0xb3, 0xf3,
+ 0x96, 0x49, 0xa2, 0xc4, 0x49, 0x48, 0xfe, 0x17,
+ 0xef, 0xdf, 0x1e, 0xf3, 0xde, 0x5f, 0xa0, 0x49,
+ 0xfc, 0xa5, 0xb5, 0xf3, 0x4c, 0x99, 0x5f, 0xcb,
+ 0x33, 0xc6, 0x54, 0x52, 0xa0, 0x85, 0x16, 0x75,
+ 0x2c, 0x5f, 0x87, 0x61, 0x58, 0xc9, 0x23, 0x0a,
+ 0x36, 0x66, 0x3b, 0x78, 0x65, 0xcc, 0xd4, 0x8e,
+ 0xe1, 0x27, 0x9a, 0x74, 0x37, 0x79, 0x4c, 0x5c,
+ 0x35, 0xf9, 0xa5, 0x7f, 0x79, 0x35, 0xa8, 0x7d,
+ 0xcf, 0x64, 0xa3, 0x44, 0xb9, 0xee, 0x1e, 0x07,
+ 0x5c, 0xda, 0xcd, 0x93, 0xfc, 0x33, 0x77, 0x68,
+ 0xfc, 0xd6, 0xea, 0xf4, 0xcd, 0x0a, 0x3a, 0xe3,
+ 0xb3, 0xef, 0xf9, 0xb5, 0x1a, 0x4b, 0x50, 0x2e,
+ 0xcb, 0x88, 0x48, 0x60, 0xc3, 0x5c, 0x1b, 0xb7,
+ 0xcc, 0x7a, 0x49, 0x2e, 0xf0, 0x9e, 0x96, 0x47,
+ 0x7d, 0x82, 0x85, 0xcb, 0x37, 0x85, 0x26, 0xfd,
+ 0xe1, 0x13, 0x57, 0xad, 0x51, 0xdc, 0x02, 0x8d,
+ 0x3c, 0x4e, 0xdd, 0xf3, 0xdf, 0xbe, 0xab, 0x0d,
+ 0x99, 0xf8, 0x13, 0x37, 0x0b, 0x1b, 0xaf, 0x08,
+ 0x9b, 0x38, 0x5b, 0x3a, 0x91, 0x71, 0x9a, 0xe6,
+ 0xc1, 0x7d, 0xd4, 0xd8, 0xf2, 0x66, 0x57, 0x99,
+ 0x29, 0x58, 0xb5, 0x9d, 0x8f, 0x86, 0x7f, 0xe9,
+ 0x17, 0xff, 0x3c, 0xfd, 0x0a, 0xfd, 0x15, 0x5c,
+ 0x2f, 0x77, 0x6c, 0x2b, 0x86, 0x72, 0xcb, 0x00,
+ 0x4d, 0x31, 0x98, 0xfe, 0x28, 0xc5, 0x54, 0x36,
+ 0x97, 0x8c, 0xc9, 0x31, 0xae, 0xff, 0xfc, 0xa6,
+ 0x15, 0xf9, 0x9d, 0x49, 0x83, 0x47, 0xb4, 0xe5,
+ 0x8c, 0x55, 0x2f, 0x35, 0x6d, 0x7c, 0x47, 0xb9,
+ 0xeb, 0x0a, 0x64, 0xea, 0x22, 0xae, 0xe3, 0x6b,
+ 0xae, 0x0e, 0xf8, 0xc4, 0x64, 0x18, 0x56, 0xa7,
+ 0x78, 0x92, 0x20, 0xe0, 0x03, 0x93, 0x42, 0x1f,
+ 0x1a, 0x48, 0xa1, 0x11, 0xdd, 0x83, 0x99, 0x67,
+ 0xc5, 0xf2, 0x0a, 0x9e, 0xfa, 0xab, 0x68, 0x54,
+ 0x1d, 0xa7, 0xe8, 0x44, 0x5f, 0x46, 0x23, 0xea,
+ 0xdd, 0xb2, 0xf5, 0x83, 0x76, 0x84, 0x13, 0xd6,
+ 0xe4, 0xb2, 0x59, 0x92, 0x92, 0xf4, 0xb5, 0x56,
+ 0xd7, 0x29, 0xc7, 0x05, 0x00, 0x79, 0x17, 0x59,
+ 0x20, 0xc6, 0x6a, 0xdc, 0x45, 0x93, 0xe7, 0xfc,
+ 0x29, 0x37, 0xa7, 0x7e, 0xbc, 0x21, 0xe7, 0xe1,
+ 0xff, 0x18, 0x54, 0xf9, 0xd3, 0x0c, 0x78, 0xe1,
+ 0xc9, 0x40, 0x36, 0x36, 0x68, 0x46, 0x3c, 0x9a,
+ 0x4d, 0xa6, 0xbc, 0xc3, 0xc7, 0xc9, 0x8c, 0x7e,
+ 0xc6, 0x07, 0x2a, 0xd0, 0x4d, 0x45, 0x3d, 0x65,
+ 0xef, 0x56, 0x7f, 0xf1, 0xcd, 0x6d, 0x97, 0x0c,
+ 0x11, 0x66, 0xf4, 0x27, 0xfc, 0xe3, 0xf3, 0x93,
+ 0x0d, 0xa1, 0x5a, 0x95, 0x86, 0xcc, 0x0f, 0xf4,
+ 0x97, 0xbc, 0x7c, 0x62, 0x78, 0xe5, 0x01, 0xe0,
+ 0xc7, 0x0c, 0xe7, 0xa9, 0x84, 0xa6, 0x17, 0xaa,
+ 0x36, 0x06, 0x2a, 0x0f, 0x2f, 0x7e, 0x3d, 0xe8,
+ 0x70, 0x8d, 0x36, 0x73, 0x9a, 0x7f, 0x47, 0x95,
+ 0xc5, 0x5d, 0xc5, 0xfa, 0x9c, 0x64, 0x52, 0xcb,
+ 0x52, 0x74, 0xda, 0xb0, 0x1f, 0x82, 0x01, 0x43,
+ 0x98, 0xa6, 0xe7, 0xf2, 0x89, 0x51, 0x92, 0xf8,
+ 0x37, 0x82, 0x8e, 0x91, 0x58, 0x40, 0x2c, 0xac,
+ 0xcf, 0xde, 0x92, 0x63, 0x5a, 0x64, 0xf9, 0x9c,
+ 0xa4, 0x47, 0x6d, 0x13, 0x43, 0xd3, 0xa6, 0x89,
+ 0xbb, 0x7b, 0x32, 0x45, 0x2d, 0x0e, 0x52, 0x25,
+ 0x67, 0xda, 0x1d, 0x9e, 0x42, 0x38, 0xfc, 0x92,
+ 0x84, 0x4d, 0x13, 0x53, 0xef, 0x46, 0x81, 0xdd,
+ 0xf6, 0x79, 0x9f, 0xba, 0x45, 0x49, 0x4b, 0x93,
+ 0x4a, 0x54, 0x1c, 0x72, 0xa0, 0xfd, 0xa1, 0x13,
+ 0x1c, 0x5e, 0xa5, 0x4e, 0xd5, 0xdf, 0xd1, 0x6a,
+ 0x40, 0x1d, 0x5e, 0x57, 0xf8, 0xe3, 0x3a, 0xe8,
+ 0x35, 0xf4, 0x67, 0xa2, 0x37, 0xf2, 0xe0, 0xd1,
+ 0xfe, 0x08, 0x5e, 0x5c, 0x41, 0x17, 0x87, 0x24,
+ 0xae, 0xf3, 0xe2, 0xc8, 0xb4, 0xfc, 0x3b, 0xef,
+ 0xdb, 0x5e, 0x27, 0x93, 0x0f, 0x01, 0xf9, 0x35,
+ 0xcf, 0x67, 0x4f, 0x65, 0xde, 0xca, 0xb6, 0xf1,
+ 0x12, 0xa0, 0xd7, 0x53, 0x09, 0xec, 0x83, 0x9a,
+ 0xb6, 0x8f, 0xf6, 0x03, 0xdf, 0x92, 0xa9, 0xc4,
+ 0x85, 0x55, 0x5a, 0x74, 0x66, 0x9e, 0xc0, 0x46,
+ 0xc7, 0x50, 0x7b, 0xda, 0x56, 0x4a, 0xf5, 0x38,
+ 0x37, 0xd5, 0x82, 0x81, 0xf3, 0x2d, 0x51, 0xa6,
+ 0xa3, 0x34, 0xf9, 0x24, 0xed, 0x35, 0x80, 0x72,
+ 0xae, 0x3d, 0x8b, 0xf8, 0x66, 0xb2, 0x6c, 0x3f,
+ 0x4e, 0x2c, 0xdb, 0x89, 0x76, 0x95, 0x8f, 0x1a,
+ 0xbe, 0xfc, 0x6c, 0x37, 0xec, 0xf9, 0x80, 0x32,
+ 0xac, 0x94, 0x97, 0x85, 0xe4, 0xa5, 0x19, 0x32,
+ 0x46, 0x1f, 0x98, 0x89, 0x4c, 0x85, 0xf1, 0xfc,
+ 0xed, 0x01, 0x98, 0x4d, 0x4a, 0xd4, 0xd1, 0x4e,
+ 0x82, 0x0b, 0x32, 0x0d, 0x48, 0x34, 0x64, 0x98,
+ 0xea, 0x6c, 0xf9, 0x11, 0x25, 0xbc, 0x48, 0xc3,
+ 0xf4, 0x96, 0xfc, 0x5e, 0x71, 0x5d, 0xfa, 0xf7,
+ 0x9f, 0x75, 0x89, 0x1d, 0xe7, 0x3b, 0x97, 0x39,
+ 0x18, 0x90, 0xca, 0xa5, 0x46, 0x01, 0x2a, 0x13,
+ 0x54, 0x5c, 0x2a, 0x14, 0xed, 0x1b, 0x65, 0x0a,
+ 0xb0, 0xd9, 0x95, 0x01, 0xd0, 0xb3, 0x78, 0xd6,
+ 0xc4, 0x06, 0xf3, 0x7f, 0x51, 0xe0, 0x39, 0xed,
+ 0x2c, 0xf3, 0xfa, 0xc3, 0xfa, 0x1d, 0x7c, 0x82,
+ 0x0f, 0x45, 0xb7, 0x15, 0xcf, 0x99, 0x53, 0x59,
+ 0x9d, 0x54, 0x31, 0x6a, 0xf8, 0xb8, 0x73, 0x2d,
+ 0xd1, 0xab, 0x1b, 0x69, 0xc9, 0x86, 0xdc, 0x7a,
+ 0xca, 0xb9, 0x6a, 0xaf, 0x1e, 0x8f, 0x83, 0xa8,
+ 0xf0, 0xae, 0x44, 0x85, 0x0d, 0x1f, 0x6c, 0x3a,
+ 0x90, 0x50, 0xef, 0x7c, 0x3c, 0x1c, 0xc4, 0xb8,
+ 0x66, 0x1c, 0x14, 0xf7, 0xf2, 0x5f, 0x5c, 0x70,
+ 0x28, 0xa7, 0x55, 0x93, 0xdb, 0xa0, 0x95, 0x9c,
+ 0x1b, 0xb7, 0xb6, 0x44, 0x5e, 0x98, 0x88, 0x89,
+ 0xb8, 0x5a, 0xee, 0xba, 0xfc, 0xc6, 0x87, 0x2a,
+ 0xdb, 0xb7, 0xcf, 0xb2, 0x4b, 0x96, 0x2c, 0x91,
+ 0x54, 0x34, 0x33, 0xfb, 0x57, 0xbe, 0xf5, 0x7b,
+ 0xbe, 0x6b, 0xa0, 0x3b, 0x4d, 0x09, 0x18, 0x9b,
+ 0x75, 0x2c, 0xde, 0x28, 0x87, 0xd3, 0x7b, 0xf5,
+ 0xbe, 0x0d, 0x33, 0x5a, 0x3b, 0x92, 0x41, 0x35,
+ 0x50, 0x65, 0xc9, 0xa9, 0xfa, 0xab, 0x22, 0x4b,
+ 0x8c, 0x3a, 0xb1, 0x9e, 0x31, 0x41, 0xd2, 0x2f,
+ 0xca, 0x9e, 0xd0, 0x96, 0x0c, 0x03, 0x08, 0xec,
+ 0x94, 0xa5, 0xb1, 0x65, 0x2b, 0xe1, 0xe4, 0x48,
+ 0x11, 0xd6, 0x8c, 0x60, 0x6d, 0xf4, 0x64, 0x89,
+ 0xa6, 0x69, 0x4b, 0xa0, 0xbe, 0xae, 0xf5, 0xde,
+ 0xba, 0x45, 0x12, 0xc8, 0x28, 0xe0, 0x7a, 0xb5,
+ 0xd4, 0x75, 0x7a, 0x24, 0x59, 0x4f, 0xbf, 0x0a,
+ 0xa4, 0x53, 0x9a, 0x59, 0xca, 0x06, 0x51, 0x6d,
+ 0xcb, 0x93, 0x63, 0x6e, 0x24, 0xe2, 0x41, 0xa5,
+ 0xa9, 0x19, 0xc3, 0x59, 0x9a, 0x0c, 0xb6, 0x4e,
+ 0x65, 0x60, 0xa0, 0x49, 0xf0, 0x7f, 0x50, 0x96,
+ 0xed, 0xe9, 0xfc, 0x33, 0x5b, 0x52, 0x51, 0x7e,
+ 0x77, 0xd7, 0xbb, 0xaf, 0xdd, 0x12, 0x4b, 0xbc,
+ 0xc6, 0xae, 0xca, 0x92, 0x3a, 0x9f, 0xc1, 0x0c,
+ 0x8f, 0x01, 0xbe, 0x4c, 0x78, 0x23, 0x7c, 0x8b,
+ 0x82, 0xb7, 0x45, 0x80, 0x44, 0x34, 0x9d, 0x13,
+ 0xdb, 0xc4, 0x3f, 0x1b, 0x39, 0xb0, 0xee, 0xa9,
+ 0xac, 0x5e, 0x3d, 0xc3, 0x59, 0x92, 0xcc, 0x6e,
+ 0x6c, 0x97, 0xcc, 0xba, 0x15, 0xa6, 0x53, 0x92,
+ 0x76, 0x35, 0x01, 0x70, 0x16, 0xde, 0xde, 0x56,
+ 0xc3, 0xb3, 0x48, 0x8b, 0x4d, 0xfa, 0xa7, 0xcb,
+ 0x43, 0xb5, 0x76, 0x9a, 0x56, 0x03, 0xd6, 0x41,
+ 0xbe, 0x73, 0x89, 0x1f, 0x6f, 0x02, 0x3f, 0xcc,
+ 0xaf, 0x49, 0xe3, 0x5e, 0xb3, 0xf4, 0xbc, 0x61,
+ 0xf9, 0x9e, 0x9e, 0xec, 0x10, 0x98, 0x0d, 0x5a,
+ 0x6d, 0xcf, 0xbf, 0xe3, 0xe5, 0xf5, 0x1b, 0x17,
+ 0x46, 0x7a, 0x32, 0xc7, 0x18, 0x40, 0x20, 0x8e,
+ 0x06, 0x62, 0x2d, 0x1b, 0x90, 0x54, 0x4f, 0x7f,
+ 0xe4, 0x50, 0x09, 0xdc, 0x57, 0x22, 0xe9, 0x7c,
+ 0x3c, 0x77, 0x57, 0xc2, 0x8b, 0xc9, 0x6a, 0x2b,
+ 0x31, 0xa1, 0x7f, 0x14, 0xdf, 0x22, 0x7d, 0xed,
+ 0xc9, 0x0d, 0xbb, 0x93, 0xba, 0x72, 0x85, 0x33,
+ 0x58, 0x80, 0xc0, 0xf5, 0x75, 0x5d, 0x7e, 0x5f,
+ 0xfb, 0x41, 0xbc, 0x5f, 0x62, 0x13, 0xb9, 0x16,
+ 0x1e, 0xfe, 0x9e, 0x53, 0x53, 0xce, 0xa0, 0xfc,
+ 0x7f, 0xf6, 0x18, 0xc2, 0x0f, 0xb9, 0x7f, 0xbf,
+ 0x09, 0xc3, 0x37, 0x08, 0xb0, 0x1f, 0x16, 0x80,
+ 0x5e, 0xf6, 0xcb, 0xfe, 0x22, 0x7c, 0x07, 0x99,
+ 0xb3, 0x12, 0x69, 0xa4, 0x05, 0xc9, 0x29, 0xc7,
+ 0xd0, 0x57, 0x05, 0x33, 0x85, 0x0c, 0xd4, 0xfe,
+ 0xfc, 0x54, 0xa8, 0xc9, 0x7b, 0x92, 0x67, 0xa6,
+ 0xa7, 0xbf, 0x5f, 0xfc, 0xe9, 0x65, 0x31, 0x4f,
+ 0x85, 0x8f, 0x89, 0xbe, 0xa1, 0xdb, 0x6d, 0x96,
+ 0x52, 0x09, 0x56, 0x12, 0xc6, 0xb2, 0x28, 0x26,
+ 0x07, 0x39, 0x21, 0x39, 0xce, 0x55, 0xf9, 0x82,
+ 0x23, 0xc2, 0x3f, 0x3a, 0x66, 0xc4, 0xee, 0x10,
+ 0x4b, 0xf1, 0x1e, 0x1d, 0x59, 0xfa, 0x28, 0x20,
+ 0x34, 0x26, 0x49, 0x7c, 0xc3, 0x85, 0x2f, 0x80,
+ 0xbe, 0x2c, 0xbc, 0x94, 0x81, 0x74, 0x2a, 0x21,
+ 0x49, 0x1d, 0xa7, 0xff, 0xf0, 0x21, 0x56, 0x98,
+ 0x68, 0x8f, 0x52, 0x2d, 0xa0, 0xf2, 0x84, 0x73,
+ 0x2f, 0xe2, 0x90, 0x8c, 0x56, 0xd1, 0xbf, 0x67,
+ 0xc3, 0x19, 0x47, 0x14, 0x71, 0x62, 0x25, 0xdc,
+ 0x11, 0xbc, 0x24, 0xa0, 0xb2, 0x42, 0x72, 0x37,
+ 0x78, 0xe6, 0xe0, 0xf6, 0x8c, 0x66, 0xe5, 0x1b,
+ 0x7a, 0x79, 0x46, 0xc0, 0x76, 0xcd, 0xa9, 0x3c,
+ 0xb2, 0x17, 0x8c, 0xc9, 0xb1, 0xc4, 0x2a, 0x1f,
+ 0xdb, 0xf7, 0xeb, 0x8a, 0x5d, 0x29, 0xd1, 0xd1,
+ 0x98, 0x43, 0x9e, 0x22, 0xf3, 0x96, 0x1e, 0x83,
+ 0xeb, 0x44, 0x08, 0xc4, 0xa0, 0xd2, 0xd3, 0x36,
+ 0xf8, 0x94, 0xab, 0x3c, 0x4b, 0x68, 0xf3, 0x7c,
+ 0x1a, 0x16, 0x1a, 0x66, 0x77, 0x67, 0xee, 0x64,
+ 0xc2, 0xdb, 0x53, 0xae, 0x1f, 0xeb, 0x44, 0x77,
+ 0x3b, 0x5f, 0x74, 0x48, 0xe9, 0x05, 0xfa, 0x3a,
+ 0x03, 0x1b, 0x54, 0x36, 0xb0, 0x28, 0x79, 0x70,
+ 0xe6, 0x2f, 0xb4, 0xf5, 0x28, 0x60, 0x1e, 0x63,
+ 0xf6, 0x03, 0x09, 0x4f, 0x0f, 0x7f, 0x01, 0xe5,
+ 0x02, 0x6a, 0x76, 0x96, 0xb9, 0x58, 0x39, 0xf9,
+ 0xc4, 0x05, 0xac, 0x93, 0x2f, 0x30, 0xab, 0xc5,
+ 0x2b, 0xad, 0xed, 0x3c, 0xb0, 0x6c, 0x66, 0x94,
+ 0x7e, 0x79, 0x01, 0x90, 0xf0, 0x10, 0xb5, 0xcd,
+ 0x6b, 0x07, 0xc2, 0xe7, 0x8a, 0xac, 0xf7, 0x5b,
+ 0xb5, 0x11, 0xf8, 0x1a, 0x52, 0xc7, 0x5d, 0x2c,
+ 0xc1, 0xce, 0x8f, 0x0c, 0xc1, 0x6a, 0x95, 0x80,
+ 0x25, 0xf9, 0x95, 0x28, 0x18, 0x65, 0xd3, 0x15,
+ 0x0e, 0xbf, 0x6f, 0xa6, 0x86, 0xd9, 0xea, 0xdc,
+ 0xb8, 0x89, 0x02, 0x08, 0x6b, 0xd1, 0x96, 0xb1,
+ 0x6f, 0xb1, 0x28, 0x6b, 0xc4, 0xe3, 0xa8, 0x53,
+ 0xd3, 0xd0, 0x67, 0x00, 0x7c, 0xa1, 0x0a, 0xd1,
+ 0x9a, 0x89, 0x12, 0xc9, 0xa7, 0x3f, 0x03, 0x03,
+ 0xad, 0x0f, 0x34, 0x2c, 0xd8, 0xdf, 0x70, 0xed,
+ 0x38, 0xf4, 0xb1, 0xf7, 0xb1, 0x72, 0x5e, 0x2d,
+ 0xa6, 0xb7, 0x8d, 0x9c, 0x7f, 0x96, 0x73, 0xc8,
+ 0x47, 0x46, 0x20, 0x2f, 0x44, 0x2c, 0x2b, 0xa2,
+ 0x30, 0xe4, 0x81, 0x91, 0x7e, 0xce, 0x4c, 0x8b,
+ 0xcc, 0x5f, 0xfd, 0xff, 0x2f, 0x94, 0xbd, 0xe5,
+ 0xaf, 0x09, 0xcd, 0xb6, 0xbc, 0x65, 0x83, 0xc3,
+ 0xcd, 0x79, 0xc4, 0x68, 0xda, 0x46, 0x36, 0x97,
+ 0x52, 0x35, 0x90, 0x4f, 0x1d, 0x8d, 0x66, 0x1f,
+ 0xea, 0x5d, 0xef, 0xdf, 0x8c, 0xa8, 0x6b, 0xb0,
+ 0xdc, 0x1a, 0x1e, 0x79, 0x43, 0xe9, 0x29, 0x71,
+ 0x11, 0xbd, 0xe5, 0xd6, 0x71, 0xf4, 0xa7, 0xf8,
+ 0x64, 0x40, 0x73, 0x46, 0x5b, 0x2a, 0xb5, 0x9a,
+ 0xa1, 0x9a, 0x64, 0x4c, 0x5e, 0xa5, 0x8d, 0xfd,
+ 0x49, 0x91, 0xba, 0xe3, 0xa7, 0x19, 0xac, 0x2b,
+ 0xe9, 0xea, 0xf1, 0x1c, 0x85, 0x91, 0xea, 0xfb,
+ 0xc7, 0x5c, 0x46, 0x7e, 0xa8, 0x0a, 0x92, 0xbf,
+ 0x61, 0x2d, 0xc2, 0x20, 0x7e, 0xf7, 0x0d, 0xb8,
+ 0x65, 0x41, 0x48, 0x39, 0xb9, 0xb0, 0xd4, 0xc1,
+ 0x84, 0xee, 0x21, 0xba, 0x9c, 0x74, 0xf3, 0x6d,
+ 0x0a, 0x33, 0x87, 0xab, 0x2e, 0x15, 0x1b, 0xad,
+ 0xac, 0x98, 0xae, 0x7c, 0xd8, 0xae, 0x03, 0x50,
+ 0xfa, 0xae, 0xfe, 0x8c, 0x6d, 0x51, 0x67, 0x76,
+ 0x70, 0xa6, 0x2f, 0x1e, 0x6a, 0x4f, 0xf0, 0xbe,
+ 0x51, 0xbb, 0xa6, 0x20, 0x1f, 0x56, 0x72, 0x34,
+ 0xd0, 0x13, 0x6e, 0x0f, 0x1a, 0xcb, 0x34, 0xe1,
+ 0xfb, 0x3c, 0xf1, 0x43, 0x1b, 0x73, 0x40, 0xa0,
+ 0x1f, 0x5d, 0x40, 0x51, 0x9f, 0x97, 0x56, 0x1f,
+ 0x26, 0x54, 0x03, 0xb8, 0x2e, 0xfd, 0xc7, 0x52,
+ 0xea, 0x85, 0x5d, 0x45, 0x71, 0xa3, 0x5c, 0x86,
+ 0x23, 0xcb, 0x08, 0xc5, 0xd8, 0x21, 0xfd, 0x10,
+ 0x49, 0xac, 0xaa, 0xd5, 0x97, 0x37, 0xbb, 0xad,
+ 0xd5, 0x84, 0xc2, 0x65, 0xeb, 0xdd, 0x92, 0x7c,
+ 0x50, 0x64, 0x4f, 0x08, 0x32, 0x56, 0x81, 0x39,
+ 0xa4, 0xfc, 0x3f, 0x04, 0xbb, 0xde, 0xe9, 0xcd,
+ 0xb6, 0xbb, 0x29, 0x6b, 0x75, 0x64, 0x32, 0x5f,
+ 0xca, 0xd0, 0x3a, 0x19, 0x3d, 0x01, 0x8c, 0x0b,
+ 0xd5, 0x76, 0xe6, 0x97, 0x5d, 0x73, 0x7b, 0xb3,
+ 0xcd, 0xdf, 0xbc, 0x29, 0xda, 0xa5, 0x22, 0xfb,
+ 0x1d, 0xf6, 0xf1, 0x50, 0x71, 0x50, 0xd3, 0xf8,
+ 0x0a, 0xbf, 0x37, 0x28, 0xca, 0x3b, 0xab, 0xec,
+ 0xf5, 0xee, 0x2d, 0x1e, 0x21, 0x35, 0x39, 0x56,
+ 0x55, 0x3c, 0x9e, 0x5a, 0x58, 0x94, 0x85, 0xa7,
+ 0xba, 0x0d, 0xa4, 0x0b, 0x4c, 0x73, 0xb2, 0x56,
+ 0x68, 0x5a, 0x5d, 0x6c, 0x18, 0xce, 0xc5, 0x25,
+ 0x14, 0xc9, 0xb3, 0xc9, 0x94, 0x57, 0x62, 0x95,
+ 0xd5, 0x1c, 0xf6, 0x93, 0x12, 0x45, 0x28, 0xa1,
+ 0x7e, 0x96, 0x53, 0x68, 0xf5, 0x6a, 0xca, 0xbe,
+ 0x04, 0x94, 0x97, 0xcf, 0xb5, 0xcf, 0x70, 0xe1,
+ 0x7e, 0x15, 0x2d, 0x6a, 0x67, 0x0c, 0x86, 0x07,
+ 0xd1, 0xe2, 0x95, 0xc3, 0xd8, 0x22, 0xdf, 0x6a,
+ 0x88, 0xc1, 0xad, 0x83, 0x57, 0x30, 0xd0, 0x59,
+ 0xaf, 0xf4, 0x9f, 0x8d, 0x89, 0x7d, 0x0b, 0xee,
+ 0xb7, 0x1c, 0xaa, 0xd2, 0x4c, 0x7a, 0xa4, 0xfb,
+ 0x99, 0xe0, 0x0a, 0xd7, 0x4d, 0xc4, 0xe9, 0x88,
+ 0x18, 0x27, 0x1d, 0xb2, 0xe9, 0x43, 0x16, 0x25,
+ 0x29, 0x04, 0x98, 0x81, 0xfd, 0xaf, 0xdd, 0x3f,
+ 0xf1, 0x61, 0x32, 0x20, 0x51, 0x96, 0xe4, 0xd2,
+ 0xab, 0xc4, 0x00, 0x33, 0xb4, 0x7b, 0x3c, 0xc2,
+ 0x2d, 0x61, 0x11, 0x4d, 0x72, 0x16, 0x6d, 0xfb,
+ 0x24, 0x67, 0x7c, 0xea, 0xf0, 0x79, 0xa3, 0x50,
+ 0x93, 0xe3, 0x9b, 0x7f, 0x89, 0xf0, 0xa6, 0x8c,
+ 0xb0, 0xaf, 0x1c, 0xe0, 0x91, 0xce, 0x3f, 0xe5,
+ 0x43, 0x90, 0x41, 0x95, 0xc7, 0x1f, 0x8f, 0x0a,
+ 0xb2, 0x1e, 0x84, 0x3e, 0x86, 0xf0, 0x81, 0x87,
+ 0x8b, 0x04, 0x52, 0xa6, 0x46, 0xb0, 0xe4, 0xf4,
+ 0x5b, 0x97, 0x7b, 0x7b, 0x32, 0xb6, 0x17, 0x96,
+ 0x48, 0x12, 0xb6, 0x31, 0xf1, 0x5c, 0xd4, 0x8b,
+ 0x93, 0x60, 0xc4, 0x00, 0xea, 0x12, 0xe1, 0x93,
+ 0x6f, 0x53, 0x82, 0x2a, 0x48, 0x1d, 0xc1, 0x91,
+ 0x79, 0x7c, 0x30, 0x43, 0xe5, 0x1e, 0x10, 0x7e,
+ 0x7f, 0xbc, 0x18, 0x60, 0x03, 0x2a, 0xe5, 0xbb,
+ 0x92, 0x7f, 0x24, 0x54, 0x12, 0x21, 0x77, 0x89,
+ 0xc9, 0x22, 0xfb, 0x57, 0xaa, 0x69, 0xdd, 0x69,
+ 0x06, 0xb0, 0xe5, 0x5b, 0x74, 0x1f, 0x02, 0x99,
+ 0x62, 0x56, 0x21, 0x29, 0xd2, 0x26, 0x0f, 0x6a,
+ 0x3a, 0x05, 0x96, 0x92, 0xb9, 0xff, 0xe9, 0x3b,
+ 0x24, 0x70, 0xd4, 0x13, 0xa4, 0xb2, 0x6c, 0x76,
+ 0xe3, 0x55, 0xe5, 0xc8, 0x18, 0x66, 0x60, 0x91,
+ 0xba, 0x98, 0x5d, 0x67, 0x13, 0x97, 0xce, 0x49,
+ 0xaa, 0x52, 0x7b, 0x20, 0x65, 0x65, 0x0a, 0x4f,
+ 0x7b, 0x0a, 0x26, 0x62, 0xa7, 0xb5, 0xab, 0x2d,
+ 0x5d, 0x37, 0xad, 0xb8, 0x97, 0xcf, 0xf5, 0x4f,
+ 0xef, 0x03, 0xed, 0xce, 0x73, 0x68, 0x5d, 0x9f,
+ 0x6c, 0x3d, 0x3f, 0xd5, 0xc1, 0xca, 0x5f, 0xef,
+ 0xe4, 0xf8, 0xfb, 0xc7, 0xbb, 0x49, 0x30, 0x1a,
+ 0xe1, 0x3c, 0xd1, 0x7f, 0x7c, 0x26, 0xa2, 0x87,
+ 0x6e, 0x80, 0xa6, 0x47, 0x2c, 0x0f, 0xa6, 0x68,
+ 0xf6, 0xde, 0x65, 0x1f, 0x02, 0xa7, 0x09, 0x08,
+ 0x34, 0xbe, 0x2c, 0xc7, 0xed, 0x4c, 0xb0, 0xa1,
+ 0x63, 0x63, 0x35, 0xe0, 0x11, 0xfd, 0xe1, 0x2d,
+ 0xb4, 0xcf, 0x9e, 0x18, 0x78, 0xa8, 0x63, 0xbf,
+ 0xb7, 0xe8, 0x22, 0x82, 0xc5, 0x9c, 0x0b, 0x3a,
+ 0x1c, 0x2f, 0x73, 0x80, 0xf1, 0xbb, 0x9a, 0x84,
+ 0x51, 0x2c, 0x1c, 0x2e, 0xda, 0xb8, 0xa3, 0x43,
+ 0x4f, 0x95, 0x8c, 0x06, 0x12, 0xdc, 0x75, 0x53,
+ 0x01, 0xc4, 0x50, 0x95, 0x31, 0x7e, 0x75, 0x33,
+ 0x69, 0x3e, 0x82, 0xad, 0x51, 0x1a, 0x4d, 0xa4,
+ 0xe7, 0xbb, 0x7c, 0x9e, 0x3c, 0xbc, 0x1a, 0xf7,
+ 0x7d, 0x0f, 0xdd, 0x93, 0xb5, 0x91, 0x61, 0x28,
+ 0x28, 0x3b, 0x8f, 0xdd, 0xfa, 0xe6, 0xf4, 0xcc,
+ 0x21, 0x82, 0x0c, 0xe2, 0xe4, 0xc7, 0x39, 0x69,
+ 0x8e, 0xd6, 0xc0, 0x45, 0x94, 0x26, 0x27, 0x1b,
+ 0xca, 0x02, 0x39, 0x00, 0x12, 0xef, 0xad, 0x0f,
+ 0xf2, 0xdb, 0x19, 0x39, 0x6e, 0x4e, 0xfd, 0x14,
+ 0x56, 0x3c, 0xd3, 0xfb, 0x43, 0x2d, 0x14, 0xb1,
+ 0x62, 0xd2, 0xc8, 0x09, 0xe3, 0xb4, 0xf3, 0x24,
+ 0x4e, 0xeb, 0xe5, 0xd6, 0x42, 0x48, 0xa5, 0xf8,
+ 0xd8, 0xcc, 0x0b, 0xd6, 0x23, 0x59, 0x46, 0xaf,
+ 0x15, 0xb2, 0x36, 0x2d, 0x52, 0xbe, 0x4a, 0x5f,
+ 0xc6, 0xb2, 0x3d, 0xc5, 0x53, 0x57, 0x35, 0x2a,
+ 0xa1, 0x06, 0xc8, 0x93, 0xa8, 0x3e, 0xc6, 0xcb,
+ 0xa4, 0xd9, 0xe4, 0x53, 0xa9, 0xe8, 0x6d, 0xe1,
+ 0x73, 0x97, 0xb9, 0x6f, 0xb3, 0xf8, 0x1d, 0xb4,
+ 0xae, 0xd8, 0x77, 0xa7, 0xef, 0xe1, 0xeb, 0x83,
+ 0x3d, 0xc3, 0x35, 0xf0, 0xc6, 0xd8, 0x66, 0xb5,
+ 0x29, 0x7f, 0x74, 0xdb, 0xa1, 0xf2, 0x16, 0xc9,
+ 0x07, 0x0f, 0x5c, 0x3e, 0x18, 0x64, 0x82, 0xfd,
+ 0xae, 0x80, 0xca, 0xcf, 0xf9, 0x7e, 0x7f, 0x36,
+ 0x58, 0xd5, 0x4d, 0x2d, 0x5a, 0x27, 0x27, 0xcc,
+ 0x7e, 0x45, 0x0d, 0xf8, 0xd6, 0x5f, 0xee, 0x83,
+ 0x42, 0x83, 0x48, 0x0b, 0x64, 0xc6, 0x03, 0x4d,
+ 0x1e, 0x24, 0x90, 0xba, 0x2a, 0x92, 0x7d, 0x43,
+ 0x77, 0x17, 0xc8, 0xcc, 0x9f, 0x31, 0x80, 0x4e,
+ 0x19, 0x7f, 0x8f, 0xcf, 0xd7, 0x27, 0x48, 0x10,
+ 0xea, 0x3d, 0xd6, 0x0f, 0x70, 0x7a, 0xb9, 0xed,
+ 0x53, 0x67, 0x1c, 0x56, 0xb1, 0x78, 0xfc, 0x0c,
+ 0xcc, 0x1f, 0xf8, 0x89, 0x45, 0x57, 0x4a, 0x72,
+ 0xd2, 0xa0, 0x07, 0x53, 0x73, 0x3d, 0x0e, 0x45,
+ 0x5a, 0x31, 0x94, 0x8f, 0x5f, 0x11, 0xe4, 0x36,
+ 0xe2, 0x19, 0xc4, 0x84, 0x94, 0xb9, 0xc0, 0xe6,
+ 0x5d, 0x66, 0x7e, 0x4c, 0x05, 0xc6, 0xcd, 0x9c,
+ 0x6c, 0x8f, 0x32, 0x68, 0xfb, 0x66, 0x86, 0x22,
+ 0xf5, 0xfa, 0x9a, 0x46, 0x26, 0xb5, 0xd5, 0xc1,
+ 0x7d, 0xeb, 0x7b, 0x82, 0x3e, 0x62, 0x8c, 0x76,
+ 0x0b, 0x08, 0x1d, 0xe0, 0x75, 0x34, 0x30, 0x4b,
+ 0xc2, 0x4b, 0xcb, 0x49, 0xa3, 0x65, 0x0e, 0x90,
+ 0xd3, 0x57, 0xe5, 0xf5, 0x83, 0x1b, 0xa2, 0xbb,
+ 0x4a, 0x23, 0x63, 0x25, 0x64, 0xd7, 0xf1, 0x85,
+ 0x9b, 0xbe, 0x2e, 0xda, 0xad, 0xc8, 0x60, 0x37,
+ 0x3c, 0x78, 0x33, 0xb5, 0x76, 0x7c, 0xc6, 0xe5,
+ 0x97, 0x86, 0x6d, 0x70, 0xdc, 0x4f, 0x79, 0x39,
+ 0xe6, 0x27, 0x78, 0x57, 0x98, 0x69, 0x79, 0xaf,
+ 0x0a, 0xc0, 0x64, 0x0c, 0x1a, 0x09, 0xa0, 0x98,
+ 0x06, 0x41, 0x5c, 0x29, 0x27, 0xbd, 0x2e, 0xbe,
+ 0xe8, 0x08, 0x5f, 0xdf, 0xed, 0xd9, 0x31, 0x97,
+ 0xdb, 0x0a, 0x1f, 0x4e, 0x1b, 0x67, 0x32, 0xef,
+ 0x84, 0xa2, 0x14, 0xa7, 0x83, 0x33, 0xdc, 0x40,
+ 0x55, 0x76, 0x27, 0x01, 0x9f, 0x98, 0x90, 0xa9,
+ 0xfa, 0xfb, 0x73, 0x86, 0x38, 0x6b, 0xa8, 0x57,
+ 0xc9, 0xaa, 0x06, 0xbf, 0x84, 0x97, 0xfa, 0xc8,
+ 0xde, 0x67, 0x6b, 0xa6, 0x2c, 0xa1, 0x90, 0x6c,
+ 0x6d, 0xcd, 0xb5, 0x73, 0x3c, 0x16, 0x68, 0xb4,
+ 0x00, 0x55, 0xf6, 0xd8, 0x35, 0xb0, 0xf9, 0x8e,
+ 0x2e, 0xfb, 0x54, 0xc1, 0x8e, 0x51, 0x90, 0x2d,
+ 0x28, 0x83, 0x5d, 0x81, 0xd6, 0x00, 0x00, 0x41,
+ 0xf2, 0x97, 0xdf, 0x2f, 0x8d, 0xa8, 0xc2, 0x1d,
+ 0xe3, 0xbd, 0x1d, 0x2a, 0x6f, 0x4a, 0xfd, 0xd3,
+ 0xcd, 0x0b, 0xac, 0x28, 0x93, 0x87, 0x3e, 0xd9,
+ 0x7b, 0x17, 0xe2, 0x66, 0x0a, 0x6e, 0xcb, 0xa8,
+ 0x3e, 0x3d, 0x9b, 0x3c, 0xbe, 0x78, 0xe1, 0x2a,
+ 0xa5, 0x42, 0x5f, 0xdc, 0xe0, 0x0e, 0x06, 0x10,
+ 0x59, 0xac, 0x4a, 0xd3, 0x63, 0x95, 0x92, 0x31,
+ 0x1c, 0x7d, 0xb1, 0x5e, 0x48, 0x01, 0x23, 0x16,
+ 0x61, 0xb3, 0xfc, 0xe6, 0x9a, 0x5d, 0x39, 0xf9,
+ 0x2f, 0xb5, 0xc6, 0x6d, 0xeb, 0xb2, 0x6e, 0x93,
+ 0x9d, 0x8b, 0x19, 0x74, 0xa9, 0xc4, 0x57, 0x96,
+ 0xbc, 0x1c, 0xbb, 0x88, 0x5a, 0xd6, 0xf7, 0xc0,
+ 0xe2, 0xb6, 0xf2, 0xb3, 0xf0, 0x56, 0x5b, 0x2c,
+ 0x9e, 0xdf, 0x96, 0x6d, 0xcc, 0x41, 0x06, 0xce,
+ 0x1e, 0x1b, 0x3a, 0x39, 0x67, 0xe1, 0x7e, 0x81,
+ 0xfc, 0xff, 0x0a, 0xc0, 0xf1, 0x76, 0x82, 0x49,
+ 0x76, 0x88, 0x38, 0x10, 0x5c, 0x90, 0x83, 0x4b,
+ 0x3e, 0x8d, 0xb9, 0x35, 0x77, 0xf5, 0x4c, 0x7e,
+ 0x3e, 0x12, 0x54, 0xf0, 0x33, 0x56, 0xbc, 0x9b,
+ 0x0e, 0x10, 0x7d, 0x4a, 0xb6, 0x2d, 0x02, 0x35,
+ 0x79, 0xe8, 0x0c, 0x15, 0xc1, 0xde, 0xc7, 0x2a,
+ 0x7d, 0xe1, 0x27, 0xd4, 0x99, 0x50, 0x6b, 0xde,
+ 0x6d, 0x02, 0x65, 0x12, 0x88, 0xe6, 0x80, 0x13,
+ 0x5e, 0xad, 0xb1, 0xef, 0xe7, 0x77, 0x19, 0xc9,
+ 0x63, 0xcf, 0x14, 0x41, 0x40, 0x76, 0xc8, 0xa9,
+ 0xc3, 0x08, 0x88, 0xdb, 0x44, 0x6c, 0x10, 0x74,
+ 0x5c, 0xf6, 0x86, 0x8c, 0x61, 0x95, 0x19, 0x76,
+ 0x1f, 0x3e, 0xcb, 0xdf, 0x6e, 0x08, 0x9f, 0x43,
+ 0xb9, 0x66, 0x2b, 0x88, 0x27, 0x48, 0xbe, 0x5d,
+ 0x9e, 0x83, 0x72, 0x9a, 0x43, 0x06, 0x8e, 0xf3,
+ 0x9e, 0xba, 0xd5, 0xd8, 0x70, 0x1b, 0xe4, 0x4e,
+ 0x39, 0x0a, 0x37, 0x5b, 0x2f, 0x8c, 0xa8, 0xbd,
+ 0x3c, 0xfe, 0xb2, 0x59, 0x5b, 0x5f, 0x5a, 0x05,
+ 0x67, 0xc8, 0xec, 0x71, 0x5d, 0xb5, 0x77, 0xc7,
+ 0xb3, 0x1c, 0xb7, 0xac, 0x90, 0xf6, 0xd3, 0xb7,
+ 0x61, 0x65, 0xbe, 0x29, 0x8f, 0x27, 0x65, 0x9a,
+ 0x9a, 0x1c, 0x00, 0x82, 0xee, 0x10, 0xb9, 0x60,
+ 0xff, 0x9f, 0x5a, 0xbe, 0x09, 0x72, 0x63, 0x79,
+ 0x60, 0x50, 0x84, 0x18, 0xc9, 0xc5, 0x0d, 0x43,
+ 0xce, 0x29, 0x80, 0x72, 0x83, 0x12, 0x73, 0x13,
+ 0x44, 0xec, 0x25, 0xe5, 0x15, 0x70, 0xe2, 0x7f,
+ 0x6b, 0x54, 0x5b, 0x58, 0x57, 0x06, 0xdc, 0xae,
+ 0x1f, 0x9c, 0x38, 0x4c, 0xbf, 0x1c, 0x42, 0xb2,
+ 0x63, 0x9c, 0xfb, 0xae, 0xc0, 0xdf, 0xd3, 0xcc,
+ 0xcc, 0xb9, 0x9b, 0xe9, 0x66, 0x77, 0x70, 0x47,
+ 0x6c, 0x8b, 0x5b, 0xc1, 0x87, 0x7a, 0x63, 0xa3,
+ 0x13, 0xfc, 0x2d, 0x16, 0xd3, 0xe2, 0x00, 0xe9,
+ 0x94, 0x11, 0xf2, 0x28, 0xda, 0x0b, 0x58, 0x09,
+ 0x2d, 0x59, 0x2d, 0xb5, 0x25, 0x99, 0xca, 0x63,
+ 0xc9, 0x96, 0xa3, 0x17, 0x2a, 0x0e, 0x22, 0x2c,
+ 0x5f, 0x8d, 0x53, 0xc4, 0xd1, 0x3d, 0x4e, 0x20,
+ 0xdc, 0x44, 0x18, 0xd2, 0xd8, 0x5c, 0x9a, 0x78,
+ 0x0a, 0x53, 0xa8, 0x73, 0x7d, 0x98, 0xc0, 0xba,
+ 0xfb, 0xfe, 0x27, 0xd4, 0x82, 0x87, 0xd4, 0x4d,
+ 0xc0, 0xe3, 0xd1, 0xd0, 0xff, 0xf0, 0xd3, 0x04,
+ 0xfd, 0x11, 0xf4, 0x57, 0xc2, 0xcc, 0xcf, 0xa9,
+ 0xe6, 0xc5, 0x09, 0x4d, 0xcc, 0x36, 0x69, 0x26,
+ 0x35, 0x8c, 0xe8, 0xe2, 0xe2, 0xdd, 0x5a, 0x5f,
+ 0xaf, 0xda, 0x38, 0x07, 0x33, 0xfb, 0xf8, 0xfb,
+ 0xf9, 0x62, 0x4a, 0x75, 0xad, 0xc3, 0x95, 0xd3,
+ 0x6e, 0x5b, 0xe3, 0x10, 0x2f, 0x31, 0xaf, 0xcd,
+ 0x57, 0xb9, 0x84, 0x3d, 0xa4, 0x66, 0x3f, 0x10,
+ 0xeb, 0xa2, 0xe2, 0xfa, 0xc7, 0xd3, 0x91, 0x83,
+ 0x48, 0xbb, 0x3a, 0x6c, 0xe4, 0x12, 0x1c, 0x36,
+ 0x44, 0xc5, 0x07, 0x07, 0x9b, 0x9d, 0x51, 0x3e,
+ 0x74, 0xc5, 0x35, 0x8a, 0x10, 0x9c, 0x0d, 0x81,
+ 0xf3, 0x10, 0x0f, 0x29, 0xaf, 0x01, 0x5d, 0x6f,
+ 0x7f, 0x50, 0x9a, 0xf8, 0xbf, 0x1c, 0x57, 0xfc,
+ 0x25, 0x5c, 0x02, 0x15, 0x43, 0x0b, 0x60, 0x21,
+ 0xf3, 0xb1, 0x43, 0x9a, 0x41, 0xa0, 0xc1, 0x1b,
+ 0x7a, 0x88, 0x97, 0xfd, 0x27, 0x56, 0xf7, 0x48,
+ 0x1f, 0xb6, 0x9a, 0xa2, 0xb1, 0xc5, 0xab, 0x30,
+ 0xa1, 0x14, 0x91, 0xef, 0x14, 0xe3, 0x01, 0x73,
+ 0xf3, 0x8d, 0xfa, 0xd7, 0xae, 0x2f, 0x13, 0x5d,
+ 0x66, 0xfb, 0x1c, 0x4b, 0x2e, 0x94, 0xdb, 0x9f,
+ 0x10, 0x5b, 0x2a, 0x5e, 0x85, 0x98, 0x73, 0x9d,
+ 0xcd, 0x7c, 0xa0, 0x79, 0xb6, 0xef, 0x8e, 0xf8,
+ 0xdd, 0x11, 0x32, 0x0d, 0xec, 0x6a, 0x04, 0xea,
+ 0x81, 0xd7, 0x63, 0xbd, 0x01, 0x77, 0x3e, 0x52,
+ 0x30, 0x88, 0x3a, 0x9e, 0x04, 0xdf, 0x42, 0x8b,
+ 0x40, 0x23, 0xa9, 0x5a, 0x97, 0x21, 0x55, 0xce,
+ 0x72, 0x21, 0x45, 0x40, 0x01, 0x66, 0x63, 0x1d,
+ 0xab, 0x37, 0x8d, 0xd5, 0x75, 0x56, 0xc2, 0x7c,
+ 0xa0, 0x9e, 0xa5, 0x85, 0xc2, 0x0b, 0x51, 0x80,
+ 0xae, 0x0c, 0xb3, 0xde, 0xa4, 0xb5, 0xa3, 0xa3,
+ 0x00, 0xe1, 0xc9, 0x09, 0xee, 0xab, 0xbb, 0x36,
+ 0x78, 0x5b, 0x3f, 0x45, 0x3d, 0xf6, 0xe8, 0x7e,
+ 0xa3, 0xd7, 0x24, 0x78, 0xdf, 0xbc, 0x9f, 0xe4,
+ 0x4c, 0x4d, 0x22, 0xb8, 0x76, 0xb0, 0x6a, 0xc1,
+ 0x35, 0x66, 0xfe, 0xaf, 0xf1, 0xb4, 0x44, 0x5e,
+ 0xe0, 0xff, 0xcf, 0x80, 0xf8, 0xa8, 0x5f, 0x59,
+ 0x91, 0xa4, 0x4f, 0xc0, 0x58, 0xb1, 0x2d, 0xc9,
+ 0x6a, 0xcd, 0x62, 0xcb, 0x41, 0x89, 0x9d, 0x3b,
+ 0x3e, 0x48, 0x5f, 0x23, 0x46, 0x21, 0x8a, 0x49,
+ 0xc0, 0x16, 0x07, 0x4d, 0xd9, 0x26, 0xbe, 0x86,
+ 0xfb, 0x06, 0xbd, 0x41, 0xc5, 0xd8, 0x87, 0xf6,
+ 0x94, 0xb1, 0xef, 0xed, 0xab, 0xfb, 0x93, 0x48,
+ 0x5a, 0xe7, 0x22, 0xbc, 0x2b, 0x24, 0xb4, 0x86,
+ 0x33, 0x9b, 0xd6, 0x09, 0x46, 0x85, 0x81, 0x89,
+ 0xa9, 0x30, 0x13, 0xfa, 0x08, 0x55, 0xfc, 0xe5,
+ 0xfb, 0xc8, 0xb2, 0xa8, 0x31, 0x4c, 0x9e, 0x1c,
+ 0xff, 0x80, 0x10, 0x77, 0x5f, 0xf1, 0x07, 0x14,
+ 0xf7, 0x88, 0xb9, 0xeb, 0x48, 0xfe, 0x18, 0x48,
+ 0xf3, 0xaf, 0xfd, 0x7d, 0x0c, 0x9f, 0x30, 0x11,
+ 0xcb, 0xed, 0xfc, 0x31, 0xf5, 0x6e, 0x72, 0xfa,
+ 0x9a, 0x3a, 0xa5, 0x1d, 0x89, 0x89, 0x8b, 0xc6,
+ 0x2c, 0xaf, 0xa6, 0xef, 0xbd, 0xb4, 0xc2, 0xa0,
+ 0x97, 0x74, 0xd0, 0x4d, 0x72, 0xb7, 0xe8, 0x24,
+ 0xba, 0x5e, 0x53, 0x4b, 0x91, 0xc1, 0xe4, 0x14,
+ 0x22, 0x50, 0xb2, 0xc3, 0x84, 0xf4, 0xa6, 0xb3,
+ 0xa4, 0x99, 0xda, 0x82, 0x55, 0x8e, 0x38, 0xb4,
+ 0x0c, 0x21, 0xe5, 0x91, 0x30, 0xc7, 0x80, 0x55,
+ 0xf1, 0x69, 0xde, 0xd7, 0x82, 0xf3, 0x08, 0xd3,
+ 0x16, 0x69, 0xe7, 0xd4, 0xeb, 0xfc, 0x9b, 0x8f,
+ 0xd6, 0xfc, 0xf9, 0x9f, 0x95, 0xb3, 0x90, 0xa6,
+ 0x12, 0x21, 0x53, 0x50, 0xd5, 0x3e, 0x2b, 0x46,
+ 0x14, 0x52, 0x20, 0x1c, 0x33, 0xed, 0xdd, 0x58,
+ 0x81, 0x92, 0x37, 0xe5, 0x99, 0x77, 0xfa, 0x29,
+ 0x28, 0x49, 0x07, 0xc8, 0xe2, 0x41, 0x8f, 0x77,
+ 0x3b, 0xb4, 0x8c, 0x34, 0x3e, 0x80, 0xcb, 0xcf,
+ 0x73, 0x4d, 0xfc, 0x78, 0x60, 0x9e, 0xd0, 0x86,
+ 0xc3, 0x4d, 0xa7, 0x40, 0x9c, 0x03, 0x72, 0x46,
+ 0xc3, 0xc3, 0x74, 0xdf, 0x5a, 0x47, 0x8d, 0xbc,
+ 0xc1, 0x5b, 0x10, 0x3e, 0x7e, 0x09, 0x3d, 0xdb,
+ 0x0c, 0xc4, 0x3b, 0x12, 0xbf, 0x66, 0xe2, 0xb7,
+ 0x4c, 0x1a, 0x81, 0x58, 0x63, 0x39, 0x72, 0xde,
+ 0xfa, 0x5d, 0xcc, 0x2c, 0x69, 0x11, 0x0a, 0x5f,
+ 0xb9, 0xbc, 0xda, 0x80, 0x03, 0x8e, 0xa2, 0x02,
+ 0x6c, 0xc1, 0x15, 0xcc, 0xbf, 0x01, 0x14, 0xd0,
+ 0x36, 0xad, 0xdb, 0xb7, 0x77, 0xd6, 0x99, 0x94,
+ 0xf5, 0xa5, 0xac, 0xce, 0x9a, 0x23, 0x9b, 0x1e,
+ 0xa4, 0x97, 0x7e, 0x41, 0xc1, 0x65, 0xc7, 0x94,
+ 0xfa, 0x07, 0x1d, 0x9a, 0x87, 0xba, 0xee, 0xef,
+ 0x99, 0x92, 0xaa, 0x41, 0x29, 0x03, 0xe3, 0x01,
+ 0x17, 0x42, 0xed, 0x11, 0x68, 0x44, 0x02, 0xca,
+ 0x81, 0x4b, 0x33, 0x81, 0x64, 0x30, 0x95, 0x7f,
+ 0x81, 0x17, 0xe6, 0x59, 0x0b, 0x4e, 0xf3, 0x4a,
+ 0x72, 0x0c, 0x45, 0x1e, 0x1d, 0x44, 0xe2, 0x9e,
+ 0x45, 0x29, 0x88, 0xb4, 0xda, 0x9b, 0x9f, 0x3e,
+ 0x92, 0x9a, 0x0b, 0x21, 0x2a, 0xd4, 0xa0, 0xd8,
+ 0xd8, 0xbd, 0x06, 0x6d, 0x71, 0x3c, 0xcc, 0xd8,
+ 0xdc, 0x19, 0xd7, 0x8f, 0x21, 0x01, 0x25, 0xa5,
+ 0x15, 0x62, 0x43, 0xfa, 0xdf, 0xb9, 0x33, 0x23,
+ 0xd3, 0xa2, 0xab, 0xb1, 0x7e, 0x4e, 0x5e, 0x46,
+ 0xbd, 0x76, 0x6e, 0x18, 0x88, 0x5f, 0x85, 0x03,
+ 0x43, 0x57, 0xd6, 0x3a, 0xf2, 0xcc, 0x9d, 0xbc,
+ 0x2c, 0x67, 0xa8, 0xcd, 0xda, 0xe8, 0x39, 0x61,
+ 0x68, 0x6d, 0xcf, 0xeb, 0x07, 0x1f, 0x58, 0x61,
+ 0x68, 0x6d, 0x78, 0xa6, 0xad, 0xb6, 0x16, 0x70,
+ 0x89, 0x49, 0x59, 0x62, 0x76, 0xc1, 0xc3, 0xc8,
+ 0xce, 0xe2, 0xfc, 0x42, 0x51, 0x8d, 0xc8, 0xf1,
+ 0x03, 0x17, 0x36, 0x55, 0x8c, 0x8e, 0x98, 0xd1,
+ 0x33, 0x3c, 0x4c, 0x63, 0x81, 0x97, 0xc5, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x06, 0x0c, 0x16, 0x19, 0x23,
+ 0x28, 0x30, 0x37, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0x89, 0xf7, 0x32, 0xb6, 0xaa, 0x73, 0x16, 0x1d,
+ 0x84, 0x36, 0x12, 0x7a, 0xb9, 0xfc, 0xb6, 0x66,
+ 0x14, 0x43, 0x0a, 0xd4, 0x61, 0x63, 0xcc, 0x2b,
+ 0x3c, 0x70, 0x9e, 0x14, 0x81, 0xe7, 0x57, 0xcd,
+ 0x89, 0x3d, 0xc0, 0x21, 0x25, 0xaa, 0x4d, 0x16,
+ 0x47, 0xfb, 0xc7, 0xfb, 0x94, 0xbf, 0x0d, 0x11,
+ 0x54, 0xec, 0x78, 0x94, 0x52, 0xa2, 0x36, 0x7a,
+ 0xf3, 0xc4, 0xcd, 0xc2, 0x91, 0x7b, 0x6c, 0x2f,
+ 0x6f, 0x0f, 0xb8, 0xc7, 0x25, 0x52, 0x50, 0x32,
+ 0x9b, 0x5d, 0x92, 0x92, 0x3f, 0x81, 0x51, 0xbd,
+ 0x2f, 0xfc, 0x78, 0xf1, 0xa2, 0x23, 0x29, 0x56,
+ 0x9f, 0x97, 0x1d, 0xf0, 0xab, 0x24, 0x3e, 0x87,
+ 0x10, 0x39, 0xb9, 0x93, 0xe9, 0xe9, 0x6b, 0xbd,
+ 0x6a, 0x30, 0xef, 0x9e, 0xf3, 0xe0, 0x93, 0x53,
+ 0x84, 0x84, 0xe1, 0x75, 0xb8, 0xe7, 0x32, 0x40,
+ 0xc9, 0x1e, 0x01, 0x9c, 0x24, 0xf1, 0x48, 0xd5,
+ 0xd6, 0x46, 0x78, 0x64, 0x9a, 0x68, 0x71, 0xf9,
+ 0x77, 0xbd, 0xf0, 0xdf, 0x8d, 0xd3, 0xf0, 0x3d,
+ 0x53, 0x53, 0xd2, 0x16, 0xde, 0x75, 0x60, 0x25,
+ 0x9a, 0xa6, 0x5d, 0x3a, 0xba, 0x9b, 0xad, 0xad,
+ 0xd8, 0xcd, 0x8e, 0x84, 0x7c, 0x9f, 0x72, 0x86,
+ 0xd2, 0x73, 0xca, 0x8f, 0xb8, 0x5d, 0xe5, 0xa5,
+ 0x6f, 0x2d, 0x18, 0x07, 0xb4, 0x06, 0x42, 0xe8,
+ 0x55, 0xe2, 0xcb, 0xc4, 0x64, 0x53, 0xe3, 0x6a,
+ 0x63, 0xc3, 0x4d, 0xa2, 0x6c, 0xe5, 0xb8, 0xf0,
+ 0x5f, 0xe4, 0x6d, 0xd6, 0x30, 0x53, 0x66, 0xbf,
+ 0x36, 0xa3, 0x41, 0x31, 0xc7, 0x67, 0xa5, 0x7e,
+ 0x67, 0xeb, 0xac, 0x47, 0xd3, 0x95, 0xa1, 0x95,
+ 0x5d, 0x16, 0xdf, 0x6c, 0x69, 0x9a, 0x37, 0xba,
+ 0xb1, 0x6a, 0xd1, 0x00, 0x1c, 0x49, 0x31, 0xdc,
+ 0xd1, 0x62, 0xf7, 0xb1, 0x34, 0x0b, 0xb1, 0x0c,
+ 0x69, 0x56, 0xbb, 0x69, 0x44, 0x87, 0xa3, 0xcc,
+ 0x3a, 0xad, 0x26, 0xa2, 0x91, 0xfd, 0xab, 0x0f,
+ 0x33, 0x5c, 0x62, 0x1f, 0x24, 0xf5, 0x5e, 0x65,
+ 0xda, 0xa2, 0x16, 0x34, 0xd0, 0x7b, 0x51, 0x01,
+ 0x22, 0xf5, 0x21, 0x07, 0x17, 0x78, 0x8d, 0x79,
+ 0x5c, 0xd2, 0x45, 0x9a, 0x3c, 0xcc, 0x3a, 0xef,
+ 0xdd, 0xca, 0x07, 0x19, 0x1b, 0x0e, 0xfc, 0xf2,
+ 0x8f, 0xbd, 0x06, 0xca, 0x6e, 0x6b, 0x78, 0x77,
+ 0xca, 0x50, 0x1a, 0x2f, 0x28, 0x43, 0x87, 0x34,
+ 0x52, 0x96, 0x26, 0x86, 0xeb, 0xfc, 0xfc, 0x87,
+ 0x63, 0xbc, 0xbf, 0x81, 0xc3, 0x98, 0xa1, 0x90,
+ 0x97, 0x79, 0x1e, 0x5e, 0x1e, 0xc4, 0x51, 0xcd,
+ 0x9d, 0x96, 0x23, 0xfc, 0xd9, 0x75, 0x4d, 0x8a,
+ 0x20, 0x95, 0xad, 0xbe, 0x0f, 0xd9, 0xe8, 0x13,
+ 0xa3, 0xd8, 0xba, 0x05, 0x82, 0x73, 0xeb, 0x67,
+ 0x55, 0xb2, 0xf1, 0x9a, 0xf7, 0x08, 0x94, 0x8e,
+ 0x52, 0xd5, 0x6e, 0xe7, 0x50, 0x7f, 0x76, 0x15,
+ 0x27, 0x40, 0x85, 0xf7, 0x38, 0x02, 0x20, 0x9a,
+ 0xf1, 0xc1, 0x7a, 0xee, 0xe9, 0x9e, 0x32, 0x4b,
+ 0xe8, 0x08, 0x53, 0x03, 0x07, 0xf9, 0x62, 0x41,
+ 0x1c, 0xb6, 0x2b, 0x82, 0x6c, 0xc2, 0xd8, 0x11,
+ 0x41, 0x32, 0x97, 0x6e, 0x24, 0x26, 0x84, 0xd9,
+ 0x3b, 0x6d, 0xa5, 0x0d, 0x9d, 0xcf, 0x7b, 0x4a,
+ 0x02, 0x4b, 0x30, 0x7d, 0xc3, 0x47, 0xa1, 0xc0,
+ 0x22, 0x85, 0x96, 0xf1, 0x38, 0xfe, 0x62, 0xa7,
+ 0x1c, 0x14, 0x28, 0x42, 0x75, 0x85, 0x46, 0x18,
+ 0xba, 0x7a, 0x50, 0x15, 0xde, 0xad, 0x78, 0x08,
+ 0x15, 0xbb, 0x4b, 0xa7, 0x97, 0x8d, 0xb8, 0xf5,
+ 0x3e, 0x82, 0xc2, 0x43, 0xf7, 0x04, 0x03, 0x58,
+ 0xe0, 0x41, 0x09, 0x47, 0xb8, 0x83, 0x68, 0xbb,
+ 0x2c, 0x0c, 0x63, 0x3c, 0x12, 0x26, 0xc9, 0xcb,
+ 0x7f, 0x87, 0x34, 0x78, 0xe0, 0xbf, 0xdf, 0x78,
+ 0xe0, 0x4a, 0x94, 0xb1, 0xea, 0xa6, 0x3f, 0x4c,
+ 0xa4, 0xcc, 0xf7, 0x44, 0xf1, 0x99, 0xb6, 0xa9,
+ 0x9e, 0x93, 0x18, 0x0d, 0xc8, 0xe9, 0x4a, 0xc0,
+ 0xa0, 0x34, 0x5d, 0x9e, 0xce, 0x1e, 0xa5, 0x03,
+ 0x9f, 0xcb, 0xf3, 0x6b, 0x5f, 0x26, 0x46, 0xe6,
+ 0x04, 0x08, 0x14, 0x43, 0x06, 0xa4, 0xad, 0x7a,
+ 0x83, 0x06, 0x4b, 0xd6, 0x46, 0xbc, 0x1e, 0x49,
+ 0xab, 0x15, 0x51, 0x48, 0xf5, 0x2e, 0x52, 0x58,
+ 0x74, 0xd4, 0x17, 0xf8, 0x61, 0xb6, 0xca, 0xdf,
+ 0xf2, 0x8f, 0x1d, 0xe9, 0x13, 0x12, 0xb6, 0xb2,
+ 0x70, 0x8e, 0xa3, 0x20, 0xac, 0x86, 0x8a, 0x56,
+ 0x12, 0x2c, 0x14, 0x06, 0x7c, 0x4c, 0x1b, 0xae,
+ 0x3a, 0xd4, 0x85, 0xe2, 0xe5, 0xc0, 0xdc, 0xd6,
+ 0x7d, 0xe9, 0xa9, 0x27, 0xb4, 0x66, 0x95, 0xea,
+ 0xba, 0xb6, 0x06, 0x13, 0x01, 0xc8, 0x84, 0xa5,
+ 0x9e, 0xf7, 0x35, 0xf9, 0x6e, 0x68, 0x8d, 0x8e,
+ 0xa8, 0xa4, 0x0c, 0x38, 0x17, 0x50, 0x09, 0xf2,
+ 0x16, 0xb8, 0x54, 0xdc, 0x97, 0x9b, 0xc1, 0x52,
+ 0xb9, 0xa9, 0xa5, 0x3d, 0x23, 0x9c, 0xe0, 0x26,
+ 0xf3, 0xd0, 0x65, 0xe9, 0xc3, 0x2a, 0x28, 0x1c,
+ 0xa1, 0x7c, 0x25, 0xd6, 0x75, 0x18, 0xbe, 0x34,
+ 0x91, 0x79, 0xc3, 0x06, 0xe8, 0x1c, 0x89, 0x8e,
+ 0x16, 0xd7, 0x34, 0x10, 0xb8, 0xb0, 0x5f, 0x24,
+ 0x24, 0x33, 0x4c, 0x0a, 0xa9, 0x9e, 0x71, 0x79,
+ 0xf1, 0xdf, 0x3c, 0x4a, 0xbd, 0x9c, 0x22, 0x06,
+ 0x35, 0x3a, 0xfe, 0xe4, 0x09, 0x78, 0xab, 0xf5,
+ 0x03, 0xbd, 0x55, 0x02, 0xc3, 0x7e, 0xf3, 0xc7,
+ 0xb3, 0xf5, 0x18, 0xda, 0x3f, 0xc4, 0x5a, 0xc9,
+ 0xea, 0x63, 0xa1, 0xcf, 0xf2, 0xda, 0x6e, 0xe7,
+ 0xeb, 0xf5, 0x55, 0xe3, 0xb0, 0xe1, 0x15, 0xb2,
+ 0x5c, 0xb6, 0x59, 0xa6, 0x31, 0xe5, 0x13, 0xe1,
+ 0xfe, 0xb5, 0xaa, 0xb5, 0x09, 0x28, 0x05, 0x4a,
+ 0x1c, 0x0b, 0xdf, 0x29, 0x91, 0xa6, 0x5d, 0x83,
+ 0x33, 0x95, 0x38, 0x45, 0x56, 0xb3, 0xae, 0x3a,
+ 0x1b, 0x88, 0x7d, 0x6a, 0x31, 0x3b, 0xc8, 0x15,
+ 0x0c, 0x5d, 0x43, 0x34, 0x9f, 0x3b, 0xbf, 0x1f,
+ 0xa2, 0x2a, 0x27, 0x4f, 0x78, 0x76, 0xf9, 0x44,
+ 0x8b, 0xcc, 0x7b, 0x9f, 0x01, 0xdf, 0x62, 0x8e,
+ 0xbc, 0xff, 0xb2, 0x9a, 0xf9, 0x35, 0xad, 0x55,
+ 0x05, 0x80, 0x9e, 0xfe, 0x1e, 0xf8, 0x0b, 0x65,
+ 0xcc, 0x13, 0xe2, 0xb9, 0x6b, 0xb7, 0x2c, 0x07,
+ 0x7f, 0xc2, 0xfd, 0xa5, 0x71, 0xb2, 0x9d, 0x65,
+ 0x01, 0x73, 0xf0, 0x31, 0xd3, 0x1e, 0x2a, 0xc1,
+ 0x11, 0x06, 0x3f, 0xf3, 0x13, 0xc2, 0x5e, 0xc0,
+ 0xf6, 0x1d, 0x49, 0x0b, 0x14, 0x7c, 0x45, 0x87,
+ 0x62, 0x13, 0x08, 0xe5, 0xf6, 0xfa, 0x2f, 0x8e,
+ 0x4a, 0x50, 0x3b, 0x00, 0x1a, 0xd8, 0x75, 0x74,
+ 0xe9, 0x10, 0x11, 0x41, 0xc7, 0xed, 0x79, 0x91,
+ 0xa2, 0x27, 0xa6, 0x1b, 0xcd, 0x13, 0xc5, 0xca,
+ 0x96, 0x08, 0x95, 0x80, 0x72, 0x3e, 0x81, 0xc0,
+ 0x70, 0x6a, 0x9e, 0xb7, 0x65, 0x30, 0x30, 0xc2,
+ 0xaf, 0x8d, 0x1d, 0xbb, 0x85, 0xe9, 0xfb, 0x54,
+ 0x46, 0x6b, 0x39, 0x05, 0x82, 0xb7, 0x1e, 0xeb,
+ 0x59, 0x9b, 0x93, 0x13, 0xce, 0x97, 0x6f, 0x5b,
+ 0xa7, 0x2d, 0x12, 0x4e, 0x6c, 0x67, 0x36, 0xb1,
+ 0x69, 0xfe, 0x72, 0x64, 0xbe, 0xd5, 0x7c, 0x89,
+ 0xc4, 0x7e, 0x99, 0xd5, 0x97, 0x99, 0x83, 0x19,
+ 0x6f, 0x45, 0x30, 0x8c, 0x73, 0xd4, 0x11, 0xb7,
+ 0x2e, 0xe6, 0x5d, 0xc2, 0xf0, 0x40, 0x29, 0x8d,
+ 0x40, 0x91, 0x38, 0xba, 0x8d, 0x0b, 0x8a, 0xb9,
+ 0xee, 0x68, 0xe3, 0x78, 0x26, 0x9a, 0xaf, 0x25,
+ 0x84, 0x50, 0x5f, 0x55, 0x74, 0x27, 0xe4, 0x04,
+ 0x3e, 0x8a, 0x39, 0xbe, 0x76, 0xec, 0xb1, 0xc1,
+ 0x8c, 0x57, 0x5d, 0x01, 0x1e, 0x72, 0xe7, 0xb4,
+ 0x38, 0x25, 0xd9, 0x57, 0xf9, 0x20, 0x87, 0x64,
+ 0x0f, 0xa1, 0xe7, 0x6b, 0x0b, 0xf0, 0xf5, 0x63,
+ 0x52, 0x55, 0x37, 0x9d, 0x03, 0x91, 0xf1, 0x49,
+ 0xf8, 0xb1, 0x53, 0x06, 0x84, 0x8f, 0x87, 0x69,
+ 0xe4, 0x8b, 0x58, 0x38, 0x05, 0x2b, 0x32, 0xdf,
+ 0x79, 0xd3, 0x47, 0xe1, 0x57, 0xa0, 0xc6, 0x5c,
+ 0xce, 0x25, 0xc6, 0x4c, 0xaf, 0x5d, 0x72, 0x58,
+ 0x96, 0xf6, 0x38, 0xac, 0xdd, 0x56, 0x68, 0x1e,
+ 0x1b, 0xf9, 0x57, 0x94, 0x21, 0x70, 0x46, 0x6b,
+ 0x19, 0xec, 0xed, 0xdc, 0x09, 0x50, 0x0f, 0x81,
+ 0xa0, 0xca, 0xd3, 0x30, 0xe6, 0x5a, 0x84, 0xe6,
+ 0x4c, 0xb6, 0x55, 0xb7, 0x8c, 0x7a, 0xbe, 0xd6,
+ 0x14, 0x16, 0x77, 0xdb, 0x09, 0xe3, 0xa7, 0x9b,
+ 0x80, 0xca, 0x4b, 0x34, 0x88, 0x12, 0x74, 0xae,
+ 0xa2, 0x61, 0xe5, 0x60, 0xed, 0x39, 0x30, 0xbe,
+ 0x34, 0x36, 0xce, 0x55, 0xba, 0xb8, 0xbb, 0x4a,
+ 0x0d, 0x5b, 0x40, 0xbf, 0xb6, 0x66, 0xd3, 0x4e,
+ 0x90, 0xdb, 0x8a, 0xdf, 0xba, 0x1d, 0x32, 0x73,
+ 0x7a, 0xe2, 0x02, 0xfa, 0xcb, 0x9b, 0x4d, 0x39,
+ 0x95, 0x8e, 0x9f, 0x1b, 0x40, 0xf7, 0x30, 0x2b,
+ 0x7c, 0xd3, 0xe1, 0x02, 0x5c, 0x49, 0x94, 0x9f,
+ 0x6c, 0x9b, 0x5b, 0x55, 0xf8, 0xaf, 0x1a, 0xe5,
+ 0x94, 0xda, 0x4f, 0xf8, 0x7f, 0xd1, 0x23, 0xb4,
+ 0x74, 0x5e, 0xa5, 0x83, 0x08, 0xbe, 0x29, 0x67,
+ 0xcb, 0xae, 0x6f, 0x4f, 0x06, 0x9f, 0x95, 0x77,
+ 0x8a, 0x00, 0x19, 0xf2, 0x02, 0xba, 0x50, 0xc8,
+ 0x96, 0x78, 0x42, 0xc1, 0x96, 0x88, 0xc6, 0x91,
+ 0x5f, 0xdc, 0xe6, 0x43, 0x2e, 0x9b, 0xd5, 0x73,
+ 0x82, 0xbb, 0x4f, 0x76, 0x22, 0x08, 0x5e, 0x49,
+ 0x03, 0x45, 0xf2, 0x50, 0x42, 0xeb, 0x1f, 0x1c,
+ 0x19, 0x5e, 0xd1, 0x41, 0xd2, 0x5e, 0xcb, 0x42,
+ 0x41, 0x92, 0xed, 0xc2, 0x71, 0x78, 0x32, 0x1f,
+ 0x5d, 0xfc, 0xc5, 0x94, 0x7d, 0xb9, 0xe8, 0x87,
+ 0x71, 0xcc, 0x4d, 0xf0, 0x58, 0xdb, 0x9d, 0xb0,
+ 0xee, 0xee, 0x7a, 0x3d, 0xe9, 0x61, 0x72, 0xe4,
+ 0x45, 0x50, 0x41, 0xf1, 0x77, 0x29, 0xa2, 0xe4,
+ 0x91, 0x8d, 0xed, 0xfc, 0xd1, 0x13, 0x78, 0xcb,
+ 0x8e, 0x1b, 0xed, 0xf8, 0x0d, 0x8e, 0x49, 0x13,
+ 0xb6, 0x59, 0x69, 0x27, 0x65, 0x23, 0x9f, 0x1d,
+ 0xd0, 0xda, 0x54, 0xfc, 0xd2, 0x08, 0xf7, 0x34,
+ 0x89, 0xc3, 0x14, 0xb9, 0x42, 0xcb, 0x02, 0xa7,
+ 0x35, 0xd1, 0x00, 0x89, 0x34, 0xac, 0x90, 0xd1,
+ 0x44, 0x12, 0x2a, 0x12, 0xde, 0x4a, 0x31, 0x09,
+ 0x97, 0x4a, 0x0f, 0xc2, 0xe5, 0xa5, 0xef, 0x0b,
+ 0x81, 0xda, 0x01, 0x39, 0xc1, 0xa9, 0xf5, 0xd7,
+ 0x0e, 0xd4, 0xca, 0xa7, 0x5a, 0x70, 0xa4, 0x70,
+ 0x3d, 0x17, 0xe1, 0xce, 0x3d, 0xcd, 0x28, 0x4c,
+ 0xe1, 0x94, 0x23, 0xfa, 0x87, 0xe7, 0xa3, 0x19,
+ 0x6d, 0x0e, 0x1e, 0x59, 0xb5, 0x2a, 0x3a, 0x3c,
+ 0x2c, 0x9c, 0xc2, 0x23, 0x01, 0xb9, 0x96, 0xc6,
+ 0x67, 0xd4, 0x90, 0x0b, 0x40, 0x22, 0x3a, 0x97,
+ 0xb4, 0x14, 0x03, 0xb3, 0x27, 0x09, 0x07, 0x77,
+ 0x1c, 0xbc, 0x68, 0x1a, 0xbc, 0xfe, 0x51, 0x90,
+ 0x04, 0x0b, 0x76, 0x3e, 0x36, 0x69, 0xb0, 0xc9,
+ 0x86, 0x72, 0x8b, 0x09, 0xb4, 0xf9, 0x77, 0xb0,
+ 0x49, 0x4b, 0xb7, 0xf9, 0x68, 0xb0, 0x53, 0x58,
+ 0xa1, 0xe6, 0xfd, 0x63, 0x93, 0xb1, 0x11, 0x48,
+ 0x0c, 0x45, 0xa2, 0x6c, 0xdc, 0xd3, 0xf5, 0x3a,
+ 0x38, 0xe0, 0x85, 0xf9, 0x2f, 0x6a, 0x7c, 0xfa,
+ 0xe1, 0xdf, 0x24, 0x94, 0x97, 0xc4, 0x7d, 0x7d,
+ 0x01, 0x7f, 0xa2, 0x1c, 0x28, 0x62, 0xde, 0xbb,
+ 0xf0, 0x61, 0x94, 0x83, 0x5e, 0xc8, 0x41, 0x4d,
+ 0x4e, 0xde, 0xb0, 0x7d, 0xad, 0xf0, 0x2a, 0x7b,
+ 0x45, 0x18, 0xbf, 0x22, 0x72, 0xdb, 0x34, 0x77,
+ 0x85, 0x8d, 0x50, 0xb6, 0x70, 0xfd, 0x32, 0x38,
+ 0x0a, 0xf4, 0x5d, 0x1e, 0x2f, 0x0f, 0x9b, 0xf8,
+ 0x7f, 0xd1, 0x53, 0xff, 0x3f, 0xd7, 0x2c, 0xd1,
+ 0xd6, 0xcd, 0x23, 0x48, 0x01, 0xa5, 0xbf, 0x93,
+ 0x77, 0xa7, 0x9c, 0xbc, 0x3b, 0x5e, 0x47, 0x57,
+ 0xf2, 0x95, 0xdb, 0xa1, 0x02, 0xaa, 0xf4, 0x1a,
+ 0x4a, 0x54, 0x4b, 0xd6, 0x5b, 0x76, 0x47, 0xc0,
+ 0xe6, 0x3e, 0xff, 0xa9, 0x3e, 0xe3, 0x12, 0x1b,
+ 0x89, 0x89, 0x5a, 0xbc, 0xda, 0x52, 0x5c, 0x70,
+ 0x1d, 0x70, 0x03, 0xb7, 0x1f, 0x27, 0x53, 0x29,
+ 0x4e, 0x47, 0x82, 0x27, 0xc7, 0x14, 0x00, 0x2c,
+ 0x28, 0x0c, 0xde, 0xc2, 0x88, 0x2e, 0x4c, 0xe3,
+ 0x4c, 0x69, 0xfc, 0xfc, 0x7d, 0xdc, 0xac, 0x9b,
+ 0x21, 0xa3, 0xfb, 0x88, 0x14, 0xc9, 0xe3, 0xa6,
+ 0x40, 0x11, 0x68, 0x19, 0x48, 0x93, 0x6e, 0x04,
+ 0xc2, 0x35, 0x26, 0x39, 0xec, 0xfd, 0x10, 0x7b,
+ 0x2a, 0xab, 0xf3, 0x09, 0x51, 0xf4, 0xd8, 0xf2,
+ 0xd6, 0xc8, 0x14, 0x9e, 0xdf, 0xee, 0xfe, 0x8e,
+ 0x29, 0x1b, 0x32, 0x22, 0xcf, 0x1e, 0xa5, 0x96,
+ 0xe7, 0xeb, 0x38, 0x22, 0xee, 0x29, 0x18, 0x3b,
+ 0xfa, 0x96, 0xa4, 0xfa, 0xbd, 0x44, 0xb5, 0xff,
+ 0x3f, 0x22, 0x42, 0x2f, 0x9a, 0x6e, 0xaf, 0x58,
+ 0x2d, 0x03, 0xe5, 0xe2, 0x2b, 0x0f, 0x91, 0x01,
+ 0xa8, 0xe4, 0xf6, 0x8d, 0x4e, 0xb0, 0x9a, 0xc9,
+ 0xa9, 0xdd, 0xdc, 0xaa, 0x7b, 0x36, 0x55, 0x57,
+ 0xac, 0x7d, 0xf6, 0xbb, 0xe8, 0xa0, 0x18, 0xec,
+ 0x67, 0xfd, 0x2e, 0x24, 0xe9, 0x12, 0xc7, 0x4f,
+ 0x73, 0xfb, 0xea, 0x87, 0x95, 0x49, 0x90, 0xff,
+ 0x50, 0xe9, 0x49, 0xdf, 0x54, 0x2d, 0xdb, 0xbf,
+ 0xf1, 0x5b, 0x8b, 0x35, 0xcd, 0xf6, 0xfc, 0x72,
+ 0x4a, 0x0e, 0x77, 0xd2, 0xd9, 0x95, 0x5b, 0x04,
+ 0x7d, 0xb8, 0x29, 0x5f, 0x1a, 0x65, 0x6e, 0x0f,
+ 0xda, 0x3f, 0x24, 0xbb, 0xa9, 0x0e, 0x47, 0xc3,
+ 0xef, 0x2f, 0x12, 0x71, 0xad, 0x69, 0x46, 0x11,
+ 0x7e, 0x90, 0xa4, 0x71, 0x70, 0xf0, 0xd4, 0x1b,
+ 0x51, 0xe8, 0x99, 0x67, 0x1e, 0xfc, 0x49, 0xe0,
+ 0xa1, 0x21, 0x88, 0xc1, 0x63, 0xce, 0x61, 0xfb,
+ 0x4a, 0xec, 0x8e, 0xcc, 0x7f, 0x3c, 0xcf, 0x4e,
+ 0x8a, 0xc7, 0x31, 0xbc, 0xe4, 0xb5, 0x9f, 0x02,
+ 0x79, 0x54, 0xfb, 0xa4, 0x86, 0x6f, 0x9e, 0x3d,
+ 0xd4, 0x14, 0x20, 0xca, 0x73, 0x53, 0x8b, 0x8f,
+ 0xf2, 0xb6, 0xab, 0xd6, 0xfe, 0xe2, 0xcd, 0x82,
+ 0x89, 0x93, 0x11, 0x28, 0x37, 0x58, 0x22, 0xed,
+ 0x14, 0x2b, 0x09, 0xf0, 0x23, 0x99, 0xc7, 0x4f,
+ 0x94, 0x26, 0x36, 0x27, 0x5f, 0x5c, 0x37, 0x7f,
+ 0x8d, 0xa7, 0x57, 0x8a, 0xb4, 0xd6, 0xf5, 0xd4,
+ 0xe4, 0x1a, 0xf1, 0xb3, 0xc6, 0xa0, 0xce, 0x77,
+ 0x27, 0xeb, 0x2f, 0x53, 0x3a, 0xa6, 0xb7, 0xfa,
+ 0x4e, 0xab, 0xd5, 0x63, 0xc5, 0x0e, 0xde, 0x45,
+ 0x7a, 0x4b, 0x3f, 0x71, 0x27, 0xb4, 0x09, 0xe9,
+ 0xe0, 0xb0, 0xa1, 0x64, 0xd6, 0x08, 0xa9, 0xd7,
+ 0x1b, 0x57, 0xa5, 0xca, 0x09, 0xdf, 0xd2, 0x54,
+ 0x5d, 0x03, 0x7e, 0x1b, 0x15, 0x5a, 0xa5, 0xc8,
+ 0xb8, 0xd4, 0xa2, 0x2c, 0x88, 0x6c, 0xcf, 0xaf,
+ 0x67, 0xad, 0x53, 0x3b, 0x63, 0x89, 0x6f, 0xed,
+ 0xb8, 0x59, 0x44, 0x71, 0xd2, 0x48, 0x25, 0xc4,
+ 0x00, 0x22, 0xd0, 0x9a, 0xec, 0xc5, 0xaf, 0x62,
+ 0x6e, 0x46, 0xda, 0x35, 0x57, 0x83, 0x5e, 0x78,
+ 0xc8, 0x2e, 0x09, 0x61, 0x60, 0xae, 0x99, 0x57,
+ 0x2c, 0x6e, 0xbd, 0x5d, 0x91, 0x4c, 0xdd, 0x71,
+ 0xa8, 0x48, 0x65, 0xdc, 0x15, 0x0e, 0xaa, 0x07,
+ 0xdf, 0x33, 0x36, 0xd2, 0xf9, 0x7e, 0xaf, 0x94,
+ 0xd0, 0x56, 0x92, 0xa9, 0xcb, 0x24, 0x70, 0x01,
+ 0xfd, 0x37, 0x8d, 0x2b, 0xcd, 0xc3, 0x10, 0xf1,
+ 0x67, 0x4e, 0xcf, 0x1b, 0x3d, 0x15, 0xe5, 0x27,
+ 0x6c, 0x9e, 0x28, 0x9b, 0x94, 0x76, 0xd4, 0x10,
+ 0x92, 0x7d, 0xd5, 0x0e, 0xc7, 0x4f, 0xc4, 0x8d,
+ 0x7b, 0x07, 0x03, 0x11, 0xce, 0x8a, 0x3f, 0xee,
+ 0x35, 0x8a, 0x6a, 0xbe, 0x5d, 0xb9, 0xf5, 0xf1,
+ 0x71, 0xba, 0x42, 0xfd, 0x45, 0x2c, 0x1b, 0xfd,
+ 0xa8, 0x5a, 0x89, 0x60, 0xfa, 0x40, 0xd3, 0x7b,
+ 0x7e, 0xe8, 0xd8, 0xc8, 0x63, 0xa5, 0x11, 0x8b,
+ 0x04, 0xec, 0x30, 0xcf, 0xdc, 0xd0, 0x65, 0x7a,
+ 0x2c, 0x2e, 0xbb, 0xa9, 0x70, 0x27, 0x28, 0x0a,
+ 0xba, 0x0a, 0x2f, 0x5b, 0xae, 0x81, 0x39, 0x4d,
+ 0x11, 0xee, 0x4d, 0xc9, 0xb6, 0xf0, 0x27, 0x91,
+ 0xc1, 0x1e, 0x00, 0x2d, 0x4e, 0xf9, 0xb9, 0x56,
+ 0xc8, 0x09, 0xab, 0x8b, 0xa1, 0x1b, 0x58, 0x05,
+ 0xb8, 0xf2, 0xdc, 0x13, 0x1b, 0x77, 0xeb, 0x81,
+ 0xca, 0x02, 0xd1, 0x1a, 0xfc, 0xa5, 0xc7, 0x00,
+ 0xce, 0xab, 0x82, 0x19, 0x88, 0x65, 0x74, 0xc8,
+ 0x08, 0x48, 0x9a, 0x44, 0xc4, 0xad, 0x27, 0xf0,
+ 0xf6, 0xed, 0x5d, 0xad, 0x66, 0x1c, 0x3b, 0x85,
+ 0xf9, 0x54, 0xaa, 0x08, 0x50, 0xc6, 0x80, 0xd1,
+ 0xed, 0x80, 0x11, 0x0d, 0x3c, 0x16, 0x03, 0xa5,
+ 0xb6, 0xd3, 0x94, 0x00, 0xf8, 0x8b, 0x06, 0x2d,
+ 0xae, 0x2a, 0xfa, 0x7c, 0xe1, 0x8b, 0x0f, 0x51,
+ 0xc1, 0xc5, 0xa1, 0x9e, 0x71, 0x66, 0xa0, 0x8d,
+ 0x24, 0x2b, 0x32, 0x2c, 0xb5, 0x8c, 0xf6, 0x65,
+ 0x0c, 0xea, 0xe1, 0x94, 0x0e, 0xf6, 0x5d, 0x07,
+ 0xc4, 0x6e, 0x96, 0x34, 0x41, 0x0e, 0x1e, 0xd6,
+ 0xac, 0x6b, 0x63, 0x7c, 0x0f, 0x78, 0xdd, 0x0c,
+ 0xeb, 0xcb, 0x29, 0x88, 0xe9, 0xa9, 0x4b, 0x3a,
+ 0x60, 0x23, 0x60, 0xb6, 0xc7, 0x79, 0x50, 0x13,
+ 0x60, 0x4d, 0xb1, 0x5d, 0xae, 0x60, 0xf8, 0xba,
+ 0xad, 0x66, 0xd5, 0x95, 0xae, 0x2c, 0xfc, 0x80,
+ 0x01, 0xb2, 0x8f, 0xcd, 0xf3, 0x26, 0x6a, 0xae,
+ 0x00, 0xa8, 0x59, 0xb5, 0x36, 0x8c, 0x25, 0x0b,
+ 0xb5, 0xf4, 0x24, 0x70, 0xae, 0x24, 0xde, 0x40,
+ 0xe4, 0x26, 0x37, 0x80, 0x60, 0xea, 0x3d, 0x99,
+ 0x59, 0xad, 0xf5, 0x0d, 0xe2, 0xe1, 0x93, 0x98,
+ 0xa5, 0xbc, 0x01, 0x3a, 0x93, 0xe4, 0xb9, 0x49,
+ 0xd5, 0xcc, 0x6e, 0x4d, 0x2a, 0xbc, 0xa8, 0x49,
+ 0xe0, 0x66, 0x0e, 0xa0, 0x56, 0xa8, 0x74, 0x50,
+ 0xd5, 0xd8, 0x41, 0xca, 0x23, 0x2e, 0xea, 0x2d,
+ 0x21, 0x08, 0x3f, 0x17, 0x89, 0x9f, 0xe6, 0x3e,
+ 0x55, 0xf7, 0xfb, 0x6b, 0x9e, 0xcf, 0x43, 0x35,
+ 0x42, 0x5d, 0xbd, 0x74, 0x0b, 0x52, 0x92, 0x1c,
+ 0x18, 0x16, 0x81, 0x74, 0x6f, 0x45, 0x81, 0xca,
+ 0x7b, 0x7b, 0xde, 0xf3, 0xca, 0x1c, 0xde, 0x3f,
+ 0x97, 0x9d, 0x80, 0xa9, 0xa6, 0x7d, 0x35, 0x95,
+ 0xf5, 0x9c, 0xb4, 0xc0, 0x28, 0x34, 0x07, 0xf8,
+ 0x3f, 0x01, 0x7e, 0xe2, 0xbc, 0x2a, 0xaf, 0x80,
+ 0x1d, 0x6d, 0xcc, 0x9a, 0x45, 0x8a, 0x29, 0x83,
+ 0xe8, 0x0f, 0x98, 0x4c, 0x12, 0x0e, 0x3f, 0x84,
+ 0x7f, 0x54, 0x29, 0x65, 0x06, 0xa2, 0xe4, 0xdb,
+ 0x10, 0x38, 0x6f, 0x42, 0x37, 0x40, 0xd2, 0x1a,
+ 0x0c, 0x16, 0x7a, 0x94, 0x58, 0xeb, 0xab, 0x60,
+ 0x13, 0xfb, 0xc2, 0x0b, 0x9c, 0x8d, 0xc6, 0x8a,
+ 0x9b, 0xb5, 0x58, 0x2b, 0x60, 0x97, 0x24, 0x55,
+ 0x8c, 0xd5, 0x90, 0x7e, 0x97, 0x84, 0x85, 0x7a,
+ 0x25, 0x98, 0xe9, 0x0e, 0xd9, 0x3c, 0x19, 0x92,
+ 0x5f, 0x01, 0x7a, 0x5b, 0xd6, 0xc9, 0x57, 0x87,
+ 0x1e, 0xce, 0x6d, 0xfa, 0xe9, 0x67, 0x7c, 0xa5,
+ 0x1a, 0x8b, 0x8c, 0x74, 0xf3, 0x2a, 0x53, 0xc2,
+ 0x6b, 0x75, 0x46, 0xf6, 0x60, 0xd2, 0x1a, 0x1e,
+ 0x62, 0xc0, 0x60, 0x61, 0x4e, 0x33, 0x2b, 0x59,
+ 0x54, 0xd6, 0x80, 0xa6, 0xe8, 0xa7, 0x3b, 0x55,
+ 0x91, 0x17, 0x0f, 0x0e, 0x60, 0x9e, 0x62, 0x45,
+ 0xfc, 0xee, 0x72, 0xce, 0x0d, 0x0c, 0xcd, 0x31,
+ 0x11, 0x38, 0x6e, 0x15, 0x3c, 0xb2, 0x23, 0x06,
+ 0x56, 0x65, 0x45, 0x2f, 0xb1, 0xef, 0xaa, 0x85,
+ 0x2b, 0x62, 0xb3, 0x9a, 0x7b, 0xca, 0x4b, 0xc3,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0x89, 0xf7, 0x32, 0xb6, 0xaa, 0x73, 0x16, 0x1d,
+ 0x84, 0x36, 0x12, 0x7a, 0xb9, 0xfc, 0xb6, 0x66,
+ 0x14, 0x43, 0x0a, 0xd4, 0x61, 0x63, 0xcc, 0x2b,
+ 0x3c, 0x70, 0x9e, 0x14, 0x81, 0xe7, 0x57, 0xcd,
+ 0x3a, 0x4b, 0x9c, 0xeb, 0x8f, 0xda, 0xc3, 0x64,
+ 0x45, 0x4c, 0x84, 0x49, 0x17, 0xc5, 0x2f, 0x53,
+ 0xc9, 0x84, 0x0a, 0x5f, 0x3c, 0x27, 0xb5, 0x1b,
+ 0x16, 0xb0, 0x48, 0x82, 0x05, 0x44, 0x27, 0x26,
+ 0xa3, 0x19, 0xf6, 0xe0, 0x7b, 0xd6, 0xff, 0xe5,
+ 0x9d, 0xb2, 0x57, 0xbc, 0x95, 0x51, 0x70, 0x07,
+ 0xa8, 0xdb, 0x62, 0xa9, 0x64, 0x8e, 0x04, 0x22,
+ 0xb0, 0x55, 0x21, 0x2c, 0x7b, 0x7e, 0x21, 0xf8,
+ 0xb6, 0xf2, 0xa4, 0x1a, 0x5a, 0xc6, 0xd1, 0x7f,
+ 0x28, 0xd5, 0xc4, 0x1c, 0x8f, 0x71, 0x71, 0xb7,
+ 0xef, 0xb9, 0x8f, 0x98, 0xed, 0x36, 0x76, 0xd8,
+ 0x90, 0x8b, 0xac, 0x9b, 0xde, 0xfd, 0x7f, 0xce,
+ 0xd9, 0x26, 0x20, 0x19, 0x12, 0x6c, 0xd9, 0x04,
+ 0x00, 0xd8, 0x88, 0x69, 0xa0, 0x48, 0x22, 0xc8,
+ 0x86, 0x04, 0xcc, 0x12, 0x80, 0x21, 0x34, 0x85,
+ 0x20, 0x37, 0x48, 0xa0, 0x92, 0x48, 0xe4, 0x40,
+ 0x6d, 0x92, 0x44, 0x04, 0x02, 0xa1, 0x29, 0x51,
+ 0x98, 0x20, 0x1c, 0x03, 0x81, 0x48, 0x20, 0x64,
+ 0x22, 0xb9, 0x8c, 0x91, 0xa8, 0x4c, 0x0b, 0x49,
+ 0x52, 0x44, 0xb2, 0x0c, 0xd1, 0xa6, 0x24, 0xe1,
+ 0x00, 0x22, 0xe1, 0x94, 0x04, 0x53, 0x06, 0x82,
+ 0x14, 0x42, 0x00, 0xd9, 0x20, 0x22, 0x08, 0x29,
+ 0x30, 0x20, 0x09, 0x24, 0x24, 0x42, 0x11, 0x0c,
+ 0x17, 0x4c, 0xc0, 0x22, 0x6c, 0x5b, 0xc2, 0x69,
+ 0xe1, 0xa0, 0x49, 0x48, 0x18, 0x84, 0x44, 0x36,
+ 0x4c, 0xc2, 0x08, 0x0d, 0x12, 0x80, 0x0c, 0x64,
+ 0x34, 0x80, 0x1c, 0xb6, 0x25, 0xcc, 0x12, 0x05,
+ 0xd3, 0x02, 0x8a, 0x12, 0x40, 0x81, 0x43, 0xa0,
+ 0x2c, 0x24, 0x34, 0x28, 0x0c, 0x15, 0x80, 0x18,
+ 0x24, 0x84, 0x0c, 0x38, 0x49, 0x91, 0xc2, 0x40,
+ 0xcb, 0xa2, 0x0c, 0xc4, 0x10, 0x09, 0xc3, 0xc8,
+ 0x88, 0xa4, 0x34, 0x72, 0x09, 0x94, 0x30, 0x60,
+ 0xb0, 0x45, 0x1c, 0x88, 0x60, 0x10, 0xa0, 0x91,
+ 0x5a, 0x08, 0x61, 0xcb, 0x38, 0x0d, 0xd8, 0x40,
+ 0x00, 0x03, 0xc5, 0x90, 0x48, 0x84, 0x30, 0xa2,
+ 0x94, 0x71, 0x0a, 0x81, 0x25, 0x1a, 0xc2, 0x80,
+ 0x01, 0x10, 0x45, 0x24, 0x07, 0x6c, 0xe2, 0x30,
+ 0x11, 0x4a, 0x26, 0x62, 0x14, 0x97, 0x81, 0xe0,
+ 0x36, 0x28, 0xcc, 0xc8, 0x0c, 0x61, 0x22, 0x64,
+ 0x5c, 0x88, 0x28, 0xc3, 0x32, 0x71, 0x8a, 0x02,
+ 0x8a, 0x8c, 0xc6, 0x70, 0x5a, 0x00, 0x8d, 0x4b,
+ 0x08, 0x01, 0x1a, 0x41, 0x48, 0x14, 0x12, 0x11,
+ 0x5c, 0x42, 0x6a, 0x9b, 0x16, 0x85, 0x5c, 0xb4,
+ 0x49, 0x13, 0x31, 0x4e, 0x48, 0x16, 0x12, 0x0b,
+ 0x45, 0x85, 0x23, 0x07, 0x32, 0x0b, 0xb0, 0x01,
+ 0x41, 0x90, 0x90, 0xc3, 0x04, 0x41, 0xa1, 0x14,
+ 0x09, 0xa2, 0x28, 0x51, 0xe2, 0x26, 0x01, 0x23,
+ 0x92, 0x69, 0xc0, 0x08, 0x10, 0xa1, 0x08, 0x6a,
+ 0x14, 0x32, 0x20, 0x61, 0x00, 0x10, 0x22, 0x93,
+ 0x4c, 0x13, 0x23, 0x05, 0x54, 0x14, 0x09, 0x1a,
+ 0x22, 0x50, 0x99, 0x36, 0x2d, 0x13, 0x39, 0x4e,
+ 0xc1, 0x08, 0x20, 0x61, 0x02, 0x72, 0xcb, 0x88,
+ 0x48, 0xcb, 0x40, 0x24, 0x9b, 0x08, 0x02, 0x40,
+ 0x90, 0x50, 0x23, 0x92, 0x44, 0x19, 0x34, 0x64,
+ 0x1c, 0x42, 0x0a, 0x12, 0x11, 0x40, 0xd2, 0x00,
+ 0x84, 0x41, 0x00, 0x68, 0x52, 0x10, 0x51, 0xcc,
+ 0x44, 0x0a, 0x00, 0x03, 0x65, 0x1a, 0x00, 0x01,
+ 0xd0, 0xa4, 0x4c, 0x5a, 0x88, 0x30, 0x51, 0x90,
+ 0x20, 0x10, 0x32, 0x8e, 0x41, 0x18, 0x84, 0x89,
+ 0x12, 0x0a, 0x18, 0x34, 0x32, 0x04, 0xb6, 0x48,
+ 0x90, 0x14, 0x12, 0x0a, 0x15, 0x4e, 0x20, 0x86,
+ 0x00, 0x49, 0x40, 0x80, 0x01, 0xb8, 0x04, 0x84,
+ 0x42, 0x90, 0x8c, 0x86, 0x70, 0x54, 0x26, 0x70,
+ 0x5a, 0x08, 0x71, 0x51, 0x12, 0x25, 0x80, 0xc2,
+ 0x24, 0x09, 0x32, 0x8e, 0xa2, 0x14, 0x29, 0x0c,
+ 0x22, 0x66, 0x52, 0x48, 0x80, 0x61, 0x18, 0x4a,
+ 0xe2, 0x24, 0x41, 0x1b, 0x26, 0x90, 0x19, 0x23,
+ 0x6d, 0x08, 0xc4, 0x70, 0x60, 0x36, 0x28, 0x01,
+ 0x82, 0x09, 0x5b, 0x88, 0x20, 0x19, 0xb6, 0x6c,
+ 0x4c, 0xa8, 0x89, 0x03, 0x35, 0x82, 0xe0, 0x06,
+ 0x26, 0xd0, 0x30, 0x04, 0x09, 0x93, 0x08, 0x80,
+ 0xc8, 0x08, 0x84, 0xc6, 0x51, 0x8c, 0xa0, 0x90,
+ 0xa4, 0xa2, 0x44, 0x20, 0x22, 0x64, 0x09, 0x20,
+ 0x90, 0xcb, 0xa0, 0x30, 0x5b, 0x10, 0x44, 0x1b,
+ 0xb8, 0x01, 0x62, 0x22, 0x66, 0x23, 0xc1, 0x25,
+ 0x14, 0x15, 0x11, 0xc9, 0x96, 0x41, 0xa4, 0x34,
+ 0x71, 0x19, 0x98, 0x88, 0x63, 0xa0, 0x80, 0x04,
+ 0xb3, 0x21, 0x03, 0xa4, 0x8c, 0x5a, 0x44, 0x92,
+ 0xc4, 0xb6, 0x09, 0x24, 0x33, 0x48, 0x20, 0x47,
+ 0x29, 0x10, 0x26, 0x44, 0x02, 0x18, 0x8a, 0x42,
+ 0x44, 0x4a, 0xa3, 0x88, 0x64, 0x41, 0xa4, 0x05,
+ 0x53, 0x10, 0x8c, 0xda, 0xa8, 0x05, 0x18, 0x35,
+ 0x68, 0x48, 0x30, 0x12, 0x09, 0x98, 0x61, 0x1c,
+ 0x88, 0x11, 0x9a, 0xb6, 0x68, 0xd2, 0xc2, 0x48,
+ 0x04, 0x33, 0x04, 0x83, 0x46, 0x00, 0x91, 0x48,
+ 0x40, 0x84, 0x06, 0x61, 0xd3, 0x48, 0x32, 0x54,
+ 0x18, 0x2c, 0x40, 0x20, 0x86, 0x49, 0x40, 0x72,
+ 0x81, 0x96, 0x2d, 0x13, 0x05, 0x44, 0x60, 0xc6,
+ 0x24, 0x4a, 0x38, 0x08, 0x0c, 0x14, 0x30, 0xa0,
+ 0xc8, 0x4d, 0x54, 0x30, 0x45, 0xdc, 0x40, 0x8e,
+ 0x09, 0x10, 0x12, 0xcc, 0x14, 0x4d, 0x50, 0x42,
+ 0x62, 0xd9, 0x14, 0x52, 0x5b, 0x12, 0x4c, 0x58,
+ 0xc4, 0x51, 0x01, 0x84, 0x08, 0x42, 0x80, 0x10,
+ 0x63, 0x00, 0x4c, 0x94, 0x48, 0x50, 0xd0, 0xb6,
+ 0x0d, 0x90, 0x20, 0x05, 0x82, 0x18, 0x2c, 0x4c,
+ 0x80, 0x80, 0x8c, 0xb2, 0x29, 0x93, 0x14, 0x50,
+ 0xdb, 0x08, 0x21, 0x14, 0x41, 0x46, 0x01, 0x21,
+ 0x28, 0x4b, 0xa2, 0x0d, 0x49, 0xa0, 0x6c, 0x80,
+ 0xa0, 0x60, 0x58, 0x40, 0x21, 0x42, 0x28, 0x85,
+ 0x41, 0x48, 0x45, 0x04, 0x09, 0x21, 0x18, 0x30,
+ 0x61, 0xe2, 0x42, 0x24, 0x04, 0x36, 0x6d, 0x19,
+ 0x07, 0x82, 0x63, 0x00, 0x85, 0x91, 0x20, 0x30,
+ 0x89, 0x84, 0x50, 0x23, 0x09, 0x80, 0x9c, 0x20,
+ 0x66, 0x14, 0x07, 0x12, 0x04, 0x21, 0x51, 0xcb,
+ 0xa8, 0x61, 0xd9, 0x38, 0x8a, 0x63, 0x02, 0x31,
+ 0x24, 0x01, 0x8c, 0xcc, 0x04, 0x45, 0xa3, 0x42,
+ 0x8e, 0x83, 0x36, 0x86, 0x18, 0xb8, 0x89, 0x42,
+ 0x18, 0x69, 0xc3, 0x24, 0x51, 0x00, 0xc8, 0x51,
+ 0x10, 0x31, 0x21, 0x98, 0xa2, 0x85, 0x12, 0xa7,
+ 0x61, 0x11, 0xb2, 0x31, 0x62, 0x32, 0x6c, 0x48,
+ 0x24, 0x8d, 0x13, 0x33, 0x61, 0x19, 0x40, 0x48,
+ 0xdb, 0x00, 0x42, 0x11, 0x41, 0x82, 0x41, 0x48,
+ 0x30, 0xc8, 0x34, 0x6d, 0xa0, 0x08, 0x00, 0x54,
+ 0xa4, 0x48, 0xa4, 0xb2, 0x69, 0x14, 0x10, 0x05,
+ 0x20, 0xa7, 0x28, 0x61, 0x84, 0x45, 0x04, 0x22,
+ 0x8e, 0x1b, 0x46, 0x91, 0xc2, 0x08, 0x84, 0x09,
+ 0x83, 0x00, 0x0a, 0x15, 0x46, 0x1a, 0xb4, 0x91,
+ 0x43, 0x48, 0x70, 0xd9, 0x32, 0x30, 0x94, 0x40,
+ 0x01, 0x53, 0x04, 0x2d, 0xd3, 0x02, 0x89, 0x00,
+ 0x02, 0x21, 0xdc, 0x00, 0x6a, 0x03, 0x45, 0x8e,
+ 0x09, 0xa1, 0x49, 0x84, 0xb0, 0x80, 0x0b, 0xc2,
+ 0x09, 0x13, 0x23, 0x24, 0xa2, 0xb2, 0x00, 0x14,
+ 0x00, 0x21, 0x10, 0x35, 0x61, 0x59, 0x04, 0x8d,
+ 0x13, 0xb2, 0x51, 0x09, 0xb0, 0x08, 0x81, 0xb2,
+ 0x88, 0x42, 0x34, 0x92, 0x40, 0x34, 0x42, 0x51,
+ 0x38, 0x29, 0x03, 0xa9, 0x61, 0x4b, 0x82, 0x2c,
+ 0xe3, 0x38, 0x44, 0x8b, 0xc8, 0x0c, 0x0b, 0x00,
+ 0x6c, 0x11, 0x04, 0x4a, 0x23, 0x23, 0x8a, 0x02,
+ 0xb6, 0x20, 0x49, 0x28, 0x6c, 0x12, 0x18, 0x48,
+ 0x00, 0x88, 0x85, 0x12, 0x41, 0x90, 0x63, 0x86,
+ 0x20, 0x11, 0xb3, 0x29, 0x98, 0x92, 0x6c, 0x09,
+ 0xc0, 0x04, 0x23, 0x24, 0x6c, 0xdc, 0x48, 0x6a,
+ 0xe2, 0x92, 0x70, 0x44, 0x94, 0x2c, 0xe0, 0x10,
+ 0x26, 0x51, 0xa2, 0x31, 0xa4, 0x16, 0x46, 0x04,
+ 0x40, 0x50, 0x21, 0xa1, 0x88, 0xda, 0x02, 0x46,
+ 0x19, 0x93, 0x80, 0x22, 0x22, 0x64, 0x94, 0xa6,
+ 0x01, 0xc8, 0x92, 0x25, 0x41, 0x88, 0x8c, 0x00,
+ 0x88, 0x89, 0x09, 0xb3, 0x2c, 0x02, 0x47, 0x8d,
+ 0x14, 0xa0, 0x49, 0x92, 0x32, 0x26, 0xc2, 0x46,
+ 0x52, 0x09, 0xb0, 0x89, 0x03, 0xc4, 0x0d, 0x1c,
+ 0x11, 0x4d, 0x1c, 0xa8, 0x2c, 0xc3, 0x10, 0x01,
+ 0xe3, 0xc6, 0x21, 0x81, 0xc8, 0x65, 0x09, 0x17,
+ 0x01, 0x53, 0x96, 0x81, 0x43, 0x00, 0x04, 0x64,
+ 0x02, 0x2e, 0x62, 0x04, 0x49, 0x81, 0x94, 0x8d,
+ 0x9b, 0xa6, 0x88, 0x91, 0x36, 0x6d, 0xe0, 0x16,
+ 0x4e, 0x93, 0xb6, 0x2d, 0x18, 0x88, 0x29, 0x14,
+ 0xa6, 0x69, 0x21, 0x23, 0x66, 0x18, 0x99, 0x90,
+ 0x04, 0x26, 0x41, 0x63, 0xa8, 0x10, 0xa3, 0x44,
+ 0x02, 0x83, 0xa8, 0x0c, 0x22, 0x49, 0x11, 0xd3,
+ 0x28, 0x6d, 0x0a, 0x42, 0x40, 0x54, 0xa2, 0x4c,
+ 0x8c, 0x32, 0x49, 0x10, 0xa3, 0x25, 0x41, 0xa0,
+ 0x80, 0xc4, 0xa2, 0x25, 0xc4, 0x48, 0x29, 0x62,
+ 0x12, 0x28, 0x91, 0x18, 0x02, 0x5c, 0x24, 0x65,
+ 0xe3, 0x12, 0x60, 0x0c, 0xb3, 0x80, 0xd3, 0x84,
+ 0x50, 0x5a, 0x40, 0x61, 0x82, 0x06, 0x46, 0x13,
+ 0xa3, 0x49, 0xe1, 0x28, 0x2e, 0xd8, 0x40, 0x2a,
+ 0x0b, 0x98, 0x04, 0x91, 0x94, 0x41, 0xc4, 0x08,
+ 0x12, 0xca, 0x96, 0x91, 0x20, 0x10, 0x26, 0x00,
+ 0x43, 0x8c, 0x43, 0x42, 0x60, 0x43, 0x34, 0x06,
+ 0x42, 0x38, 0x49, 0xcb, 0x40, 0x51, 0xda, 0x88,
+ 0x89, 0x0c, 0xa6, 0x90, 0x24, 0xc4, 0x4c, 0x14,
+ 0x27, 0x6e, 0xa2, 0x08, 0x6e, 0x23, 0xb6, 0x45,
+ 0x62, 0x40, 0x70, 0x0c, 0x30, 0x44, 0x5b, 0x00,
+ 0x66, 0xa0, 0xb8, 0x0c, 0x11, 0x32, 0x65, 0xc9,
+ 0x26, 0x89, 0xd4, 0x24, 0x02, 0x5a, 0xa2, 0x00,
+ 0xd4, 0x42, 0x84, 0x1a, 0x22, 0x10, 0xd0, 0x38,
+ 0x65, 0xd2, 0x30, 0x0d, 0x60, 0xb2, 0x88, 0x23,
+ 0x34, 0x11, 0x49, 0x00, 0x4a, 0xd8, 0x38, 0x8e,
+ 0x5b, 0x12, 0x11, 0xd8, 0x20, 0x2c, 0x03, 0x04,
+ 0x2c, 0xa4, 0x44, 0x86, 0x13, 0x44, 0x48, 0xc9,
+ 0x86, 0x48, 0x09, 0x35, 0x30, 0x5c, 0x12, 0x28,
+ 0x12, 0x43, 0x40, 0x89, 0x30, 0x01, 0x93, 0x44,
+ 0x6c, 0x94, 0x32, 0x8a, 0xd3, 0x08, 0x42, 0x60,
+ 0x36, 0x28, 0x89, 0x18, 0x24, 0xe1, 0x84, 0x31,
+ 0x00, 0xa2, 0x8d, 0xd8, 0x46, 0x08, 0xcb, 0x26,
+ 0x81, 0xc1, 0x14, 0x70, 0x1b, 0x41, 0x01, 0x01,
+ 0x47, 0x24, 0x63, 0x92, 0x71, 0x11, 0x45, 0x31,
+ 0x91, 0x40, 0x88, 0x21, 0xc3, 0x21, 0xa2, 0x06,
+ 0x92, 0x0c, 0x98, 0x70, 0x10, 0xa3, 0x40, 0xe3,
+ 0xc6, 0x00, 0x04, 0x23, 0x90, 0xda, 0x22, 0x08,
+ 0x1c, 0x85, 0x49, 0x40, 0xa2, 0x8c, 0x04, 0x35,
+ 0x00, 0x61, 0x48, 0x2d, 0x11, 0x25, 0x29, 0x22,
+ 0x83, 0x31, 0x20, 0xc8, 0x05, 0x98, 0xc4, 0x60,
+ 0x22, 0x22, 0x28, 0x43, 0x88, 0x70, 0x23, 0x05,
+ 0x2e, 0x01, 0xc6, 0x89, 0x0b, 0x40, 0x0e, 0x82,
+ 0x42, 0x51, 0xc8, 0x04, 0x0e, 0x09, 0x11, 0x69,
+ 0x14, 0x81, 0x09, 0xe3, 0x96, 0x84, 0x24, 0x84,
+ 0x2c, 0x1a, 0x45, 0x6c, 0xc0, 0x48, 0x82, 0xd9,
+ 0xc4, 0x40, 0x13, 0xb6, 0x11, 0x08, 0x32, 0x21,
+ 0x02, 0x13, 0x6a, 0x64, 0x82, 0x30, 0x8c, 0x36,
+ 0x0d, 0x1c, 0xc3, 0x8c, 0x0c, 0xc4, 0x31, 0x44,
+ 0x10, 0x92, 0x21, 0x30, 0x8c, 0x03, 0x91, 0x0c,
+ 0x02, 0xa0, 0x13, 0xff, 0x79, 0x6a, 0x0e, 0x59,
+ 0x78, 0x33, 0xf2, 0x2d, 0x58, 0x39, 0x5e, 0xd3,
+ 0x2c, 0x37, 0x70, 0x09, 0x41, 0x5d, 0x53, 0xeb,
+ 0x74, 0x8f, 0x31, 0x84, 0xe7, 0x31, 0x48, 0x81,
+ 0x1a, 0x57, 0x36, 0x65, 0x05, 0x62, 0x5b, 0xc4,
+ 0xa5, 0x38, 0x9e, 0x40, 0x22, 0xdc, 0xc0, 0x72,
+ 0xec, 0x5d, 0x2a, 0x5b, 0xb7, 0x93, 0xb1, 0x98,
+ 0xa9, 0xf7, 0xfa, 0x2b, 0xb1, 0x43, 0x27, 0x5b,
+ 0x9f, 0x14, 0x5b, 0xef, 0x44, 0x96, 0x16, 0x74,
+ 0xec, 0x08, 0x47, 0xcd, 0x20, 0xf5, 0xe0, 0x67,
+ 0xb6, 0xeb, 0xe1, 0xc9, 0xc7, 0x38, 0x2b, 0x87,
+ 0x89, 0x73, 0x98, 0x06, 0xe0, 0x2f, 0x13, 0x11,
+ 0x72, 0x17, 0x9e, 0xf0, 0xbd, 0x1c, 0x24, 0xc9,
+ 0xeb, 0xe5, 0xf9, 0xf8, 0xc3, 0xa6, 0x2c, 0x35,
+ 0x9a, 0x3a, 0xe1, 0xb3, 0x40, 0x15, 0x54, 0x70,
+ 0x4b, 0xba, 0xd5, 0x1d, 0x45, 0x48, 0x87, 0x0c,
+ 0xa4, 0x5b, 0xb8, 0xea, 0xbf, 0xcc, 0x35, 0x71,
+ 0x96, 0x2f, 0xb9, 0x50, 0xd0, 0xf8, 0x22, 0x6f,
+ 0x6c, 0xae, 0xab, 0x95, 0x88, 0x99, 0x78, 0xb3,
+ 0x98, 0x24, 0x9d, 0xa8, 0xa5, 0xf9, 0x79, 0x0b,
+ 0xc2, 0xfc, 0x37, 0x56, 0x40, 0x7f, 0x2c, 0x56,
+ 0x5b, 0x43, 0x5c, 0x7e, 0xdc, 0xc3, 0x76, 0xe7,
+ 0x3d, 0x29, 0xeb, 0xd5, 0xa3, 0x09, 0x0f, 0x40,
+ 0xff, 0xab, 0xae, 0x8e, 0x62, 0x60, 0xee, 0xf8,
+ 0x50, 0x18, 0x2d, 0x47, 0x08, 0x44, 0xa5, 0x93,
+ 0xd6, 0xea, 0x78, 0x23, 0x4a, 0x7b, 0x12, 0x89,
+ 0xd0, 0x2a, 0xa8, 0xfe, 0x3e, 0x96, 0xf4, 0x26,
+ 0xce, 0x8c, 0x37, 0x36, 0x99, 0x77, 0x6d, 0xe6,
+ 0xcd, 0xab, 0x07, 0x4a, 0xa0, 0xed, 0x4d, 0xb8,
+ 0xdc, 0x55, 0x6b, 0x99, 0x04, 0x09, 0x79, 0x37,
+ 0xf2, 0x21, 0x45, 0xf5, 0x4a, 0x24, 0xb3, 0xe9,
+ 0x86, 0x91, 0x81, 0xa1, 0xdf, 0xbe, 0x34, 0x65,
+ 0x02, 0x88, 0xc7, 0x0b, 0x79, 0x34, 0xd5, 0x56,
+ 0x57, 0xbf, 0x3b, 0x4a, 0x8d, 0x8e, 0xc5, 0x91,
+ 0xf3, 0x76, 0x63, 0x2e, 0xb5, 0x9b, 0xda, 0x47,
+ 0xdd, 0x48, 0xba, 0x21, 0x97, 0xa1, 0xa1, 0x51,
+ 0x5c, 0x59, 0x26, 0xb1, 0x88, 0x88, 0xa2, 0x69,
+ 0x8b, 0x27, 0x3e, 0x5b, 0x82, 0x3d, 0xd0, 0x4a,
+ 0x04, 0xdd, 0x63, 0xc1, 0x09, 0x39, 0xa7, 0x40,
+ 0xcb, 0x90, 0x52, 0x09, 0x50, 0x17, 0xf4, 0x8f,
+ 0x41, 0xdb, 0xe1, 0x1f, 0x41, 0x17, 0xbc, 0xc5,
+ 0x45, 0x18, 0x05, 0xb1, 0xc3, 0xde, 0x5c, 0x2c,
+ 0xd4, 0x72, 0x2e, 0x02, 0x61, 0xa2, 0x94, 0xff,
+ 0x0d, 0xf3, 0xab, 0x05, 0x6b, 0x53, 0xe0, 0x50,
+ 0xd1, 0x9e, 0x06, 0xf5, 0xd8, 0x08, 0x2d, 0x12,
+ 0x27, 0x9d, 0x16, 0xd7, 0xcb, 0xec, 0x5f, 0xd1,
+ 0x70, 0xa0, 0xfe, 0x8f, 0x8c, 0x49, 0xa8, 0x5a,
+ 0x8b, 0xf7, 0x2b, 0x08, 0x20, 0xe9, 0x86, 0x56,
+ 0x49, 0xc0, 0x1c, 0xe5, 0x71, 0xab, 0x41, 0x02,
+ 0x95, 0x48, 0xfd, 0xcf, 0x16, 0x49, 0x4b, 0x72,
+ 0xc8, 0x71, 0x93, 0x88, 0x18, 0x22, 0x44, 0xd8,
+ 0xe4, 0x18, 0x55, 0xe8, 0x75, 0x49, 0xe3, 0xc2,
+ 0xd7, 0xf5, 0xb9, 0x32, 0xcf, 0x8c, 0x20, 0x98,
+ 0x1d, 0x36, 0xb9, 0x29, 0xa2, 0x7b, 0xb0, 0x22,
+ 0x61, 0x45, 0x4d, 0x28, 0x58, 0xbb, 0x31, 0x5d,
+ 0xb9, 0x8d, 0x98, 0x02, 0x11, 0x26, 0xa9, 0xfc,
+ 0xbe, 0xac, 0xd4, 0xd3, 0x65, 0xae, 0xb2, 0xcc,
+ 0x23, 0x10, 0x98, 0xe9, 0x95, 0xd0, 0x9a, 0x87,
+ 0x76, 0x04, 0xc4, 0xd5, 0x34, 0x8a, 0x0a, 0xc0,
+ 0x48, 0x2c, 0xe5, 0xd7, 0x54, 0xfd, 0x3d, 0x9c,
+ 0x1c, 0xfa, 0xa8, 0xd5, 0x33, 0x26, 0xa0, 0x61,
+ 0x23, 0xd0, 0xd8, 0xb1, 0x4d, 0x04, 0x5f, 0x5d,
+ 0x56, 0xe5, 0x2d, 0x53, 0x4d, 0x29, 0xbf, 0x9e,
+ 0x37, 0xb8, 0x2f, 0x04, 0xa1, 0x30, 0x87, 0x11,
+ 0xfe, 0xfb, 0xfb, 0xd9, 0xb1, 0xd5, 0x90, 0x9f,
+ 0xee, 0xcc, 0x45, 0x0e, 0x2d, 0x02, 0x84, 0x61,
+ 0xa6, 0x99, 0xb8, 0xd7, 0x2b, 0xce, 0x17, 0xd2,
+ 0x2b, 0x04, 0x0c, 0x51, 0x35, 0xb4, 0xa9, 0xb1,
+ 0xfa, 0x8b, 0x3c, 0x80, 0xf7, 0x78, 0x7b, 0xe4,
+ 0x79, 0xc7, 0x59, 0x1d, 0x2d, 0x40, 0x14, 0xe3,
+ 0x01, 0x65, 0x33, 0x83, 0xa6, 0xfe, 0xfa, 0x40,
+ 0x27, 0x3f, 0x8f, 0x2a, 0x75, 0x8e, 0x1a, 0xe1,
+ 0x0b, 0xc5, 0x22, 0xc8, 0xa4, 0x0b, 0xb7, 0x72,
+ 0x73, 0xc7, 0x33, 0x03, 0xbe, 0x9f, 0xf2, 0xdb,
+ 0x24, 0x43, 0x00, 0xa7, 0xfc, 0x8d, 0x9c, 0xd0,
+ 0xc3, 0xd7, 0x61, 0xb8, 0x6a, 0x7f, 0x79, 0x01,
+ 0xce, 0xfe, 0xdb, 0x07, 0x20, 0xdc, 0x0c, 0xef,
+ 0xc3, 0x37, 0xa8, 0xf0, 0x41, 0x31, 0xf2, 0x05,
+ 0xe6, 0xb9, 0x72, 0x46, 0x44, 0x62, 0xeb, 0x38,
+ 0x93, 0x70, 0x8a, 0x10, 0xd9, 0xe5, 0x96, 0xd6,
+ 0xee, 0xa1, 0x24, 0x44, 0xa4, 0x95, 0xf6, 0x2f,
+ 0xa0, 0x33, 0xb3, 0x77, 0xfb, 0xff, 0xc6, 0xdb,
+ 0x24, 0x1b, 0x1f, 0x43, 0x0e, 0xc4, 0x3b, 0x2b,
+ 0xef, 0x18, 0xdf, 0x5b, 0x4b, 0xed, 0xf6, 0x7d,
+ 0x42, 0xb9, 0xb8, 0x6b, 0x6d, 0x7e, 0xb3, 0xfe,
+ 0xe9, 0x81, 0x9f, 0xa9, 0xde, 0xf2, 0xc7, 0x23,
+ 0x74, 0xfe, 0xe5, 0x89, 0xa5, 0xd9, 0x09, 0x01,
+ 0xa4, 0x4b, 0x7b, 0x64, 0x6f, 0x00, 0x58, 0x2f,
+ 0xda, 0x36, 0x13, 0x48, 0xe4, 0xdc, 0x43, 0x13,
+ 0xbf, 0xc7, 0x13, 0xe6, 0x72, 0x10, 0x94, 0x6a,
+ 0xac, 0x2f, 0x6e, 0x7a, 0x53, 0x09, 0xfa, 0x0b,
+ 0xe3, 0x89, 0x9b, 0x85, 0x1a, 0x66, 0x3b, 0x2c,
+ 0x56, 0xb7, 0x0c, 0x4f, 0x79, 0x41, 0xb3, 0x31,
+ 0x15, 0x3d, 0x20, 0x04, 0x39, 0x63, 0x04, 0x16,
+ 0x77, 0xb1, 0xf6, 0x27, 0x26, 0x02, 0xcc, 0xee,
+ 0x9a, 0xea, 0x0e, 0x35, 0xf4, 0xab, 0xe9, 0x00,
+ 0xa6, 0x67, 0xa0, 0x33, 0xc9, 0xb6, 0xdf, 0x60,
+ 0x8f, 0xef, 0x14, 0x37, 0x19, 0xcc, 0x19, 0x17,
+ 0x45, 0x16, 0x39, 0x00, 0x48, 0x6e, 0x36, 0xf5,
+ 0xbe, 0x2c, 0xe0, 0x5c, 0x11, 0xbb, 0x60, 0xa5,
+ 0xe6, 0x33, 0x02, 0x93, 0x4f, 0x2b, 0x97, 0xdc,
+ 0x29, 0xf2, 0x00, 0x0e, 0x4f, 0x7f, 0x03, 0xe7,
+ 0x5f, 0x1a, 0x74, 0x77, 0x84, 0x11, 0x64, 0x48,
+ 0xa0, 0x0f, 0xfd, 0xc8, 0x6e, 0x71, 0x93, 0x77,
+ 0xbb, 0xf3, 0xfe, 0x44, 0x1f, 0x96, 0x72, 0xb3,
+ 0x79, 0xc0, 0xa9, 0xd3, 0x50, 0xf3, 0x88, 0x6e,
+ 0x68, 0x0d, 0x33, 0x23, 0x0a, 0x73, 0xfc, 0x26,
+ 0x57, 0x96, 0x44, 0xe8, 0x2a, 0xef, 0x49, 0xb5,
+ 0x50, 0x74, 0x7e, 0x72, 0x3b, 0x6d, 0x76, 0xae,
+ 0x49, 0xc1, 0xce, 0x0d, 0x17, 0x12, 0x51, 0x7c,
+ 0x69, 0x8d, 0xab, 0xe9, 0xe7, 0x8f, 0xaf, 0x2f,
+ 0x15, 0x42, 0x70, 0xf7, 0x48, 0xee, 0xd4, 0x8d,
+ 0x2f, 0x8a, 0x06, 0xcf, 0xbd, 0xcf, 0x2e, 0xe4,
+ 0xd8, 0x2d, 0xcd, 0x5e, 0x69, 0xd1, 0x65, 0xb3,
+ 0xda, 0x71, 0x43, 0xda, 0x11, 0xd3, 0x86, 0x4d,
+ 0x17, 0xd7, 0xce, 0xbd, 0xec, 0x91, 0x03, 0xa3,
+ 0x59, 0x54, 0x7b, 0x94, 0x22, 0xc2, 0x8b, 0x5a,
+ 0x73, 0xb3, 0xf1, 0x37, 0x03, 0x10, 0x47, 0x3f,
+ 0x3c, 0x6d, 0x46, 0x01, 0x1e, 0x72, 0x9e, 0x1b,
+ 0xb1, 0x88, 0x71, 0x5f, 0xa7, 0x03, 0x12, 0x57,
+ 0x92, 0x30, 0x58, 0x97, 0xa3, 0x20, 0x83, 0xea,
+ 0x06, 0xb0, 0xb6, 0xc6, 0x67, 0x78, 0x5c, 0x47,
+ 0x28, 0xda, 0x30, 0x26, 0x51, 0xde, 0x9d, 0x87,
+ 0x8c, 0x98, 0x0f, 0x19, 0x8d, 0x94, 0xdf, 0x2e,
+ 0xca, 0xa3, 0x66, 0x28, 0x09, 0xbc, 0x37, 0xda,
+ 0x5e, 0xf2, 0x91, 0xac, 0x63, 0xd4, 0x8b, 0x06,
+ 0xa8, 0x6a, 0x56, 0x18, 0x13, 0x54, 0x0c, 0x6f,
+ 0x1d, 0x1a, 0x01, 0x17, 0xc9, 0x48, 0xa3, 0x5c,
+ 0xfd, 0x7e, 0x2f, 0x87, 0x12, 0x31, 0xb0, 0x7a,
+ 0x99, 0xc7, 0x85, 0xee, 0x17, 0x94, 0x75, 0xf5,
+ 0x03, 0x01, 0x2b, 0x9e, 0xcf, 0xd2, 0x13, 0x0c,
+ 0xa5, 0xea, 0x72, 0x09, 0x0b, 0x3b, 0x6d, 0xc9,
+ 0x59, 0xc3, 0xe9, 0xa8, 0xd6, 0xa9, 0xe7, 0xb9,
+ 0x15, 0x3e, 0xd1, 0x8c, 0x74, 0x6b, 0x5f, 0x29,
+ 0xb1, 0x8e, 0x0f, 0x4a, 0xb6, 0xf3, 0x58, 0xcf,
+ 0x23, 0x4b, 0x98, 0x72, 0x4a, 0x78, 0x3a, 0xeb,
+ 0x8b, 0x09, 0xc7, 0x65, 0xa7, 0x84, 0x6d, 0x36,
+ 0x7b, 0x50, 0xa7, 0xcf, 0x4b, 0x29, 0xfa, 0x5e,
+ 0x92, 0x72, 0x02, 0x01, 0x04, 0x2e, 0x1b, 0x76,
+ 0xf1, 0x5c, 0xe2, 0x07, 0xcc, 0xcc, 0x35, 0xad,
+ 0xcc, 0x3d, 0xcf, 0xf2, 0xab, 0x75, 0x37, 0x2b,
+ 0x64, 0x04, 0xa3, 0x9a, 0x9c, 0xd7, 0xfd, 0x45,
+ 0xe8, 0x26, 0x0c, 0xd1, 0x48, 0x0e, 0xd9, 0xcc,
+ 0x6a, 0x61, 0xce, 0xae, 0xe9, 0xb9, 0x0d, 0x64,
+ 0x2d, 0xa7, 0x2a, 0xa4, 0xe7, 0xd8, 0xf4, 0x2f,
+ 0xc8, 0xfd, 0xcc, 0x6f, 0x96, 0x3b, 0x43, 0x82,
+ 0xa4, 0x9a, 0x2e, 0x57, 0x42, 0xe9, 0xba, 0x74,
+ 0x83, 0xc9, 0xa2, 0xc6, 0x0c, 0x2b, 0x46, 0xd2,
+ 0xea, 0x3d, 0xec, 0x9a, 0x63, 0xad, 0x23, 0x31,
+ 0xfe, 0x49, 0xdd, 0xd9, 0xd2, 0x56, 0xe8, 0x63,
+ 0xa5, 0x7b, 0x56, 0x32, 0x2e, 0x96, 0x8d, 0xe8,
+ 0xab, 0xdb, 0x11, 0x09, 0xed, 0xd6, 0xe6, 0x37,
+ 0xa2, 0xca, 0x31, 0x6a, 0x5a, 0x4d, 0x25, 0x60,
+ 0xd7, 0x04, 0x2f, 0x15, 0x10, 0x89, 0x1a, 0x1e,
+ 0xe2, 0x0f, 0xfc, 0xd1, 0x42, 0xd3, 0x2a, 0x5f,
+ 0x9a, 0x1e, 0x02, 0x84, 0x41, 0x9b, 0xf9, 0xf2,
+ 0x1a, 0x42, 0x78, 0xe0, 0x50, 0xbb, 0x94, 0x4a,
+ 0xf7, 0x21, 0xa8, 0xda, 0xeb, 0xd0, 0x8d, 0x47,
+ 0xf1, 0xdb, 0x70, 0x63, 0x25, 0xdc, 0x08, 0x8c,
+ 0x09, 0xb1, 0x47, 0x2f, 0xd7, 0xb2, 0xb2, 0x3b,
+ 0x65, 0x5c, 0xc7, 0x89, 0x3b, 0xae, 0x15, 0x3b,
+ 0x4e, 0xde, 0xd5, 0xba, 0xb9, 0x5b, 0xbe, 0xe4,
+ 0x62, 0x02, 0x86, 0x76, 0x95, 0x1c, 0x98, 0x08,
+ 0x94, 0x7d, 0x9b, 0xe5, 0x33, 0xef, 0x98, 0x2c,
+ 0x90, 0x2e, 0x21, 0xbb, 0x14, 0x67, 0xe9, 0xee,
+ 0x6b, 0x86, 0x29, 0xe2, 0xd2, 0xe2, 0x62, 0x58,
+ 0xee, 0x37, 0xc2, 0x8b, 0x64, 0x25, 0xb7, 0x98,
+ 0xc7, 0xbc, 0xd8, 0x17, 0xe6, 0x8c, 0xe8, 0x0e,
+ 0x23, 0xf9, 0x0e, 0xc8, 0x8c, 0x33, 0xd2, 0x55,
+ 0xba, 0xfc, 0xd9, 0xfa, 0x09, 0xa5, 0x5c, 0x53,
+ 0x2a, 0x95, 0xc0, 0xd5, 0xd3, 0xaa, 0x18, 0xfb,
+ 0xbc, 0xa8, 0xf4, 0xe1, 0xc5, 0x77, 0x42, 0x24,
+ 0x35, 0xec, 0xe8, 0x20, 0xc4, 0xf3, 0x2b, 0x3b,
+ 0x18, 0x44, 0x20, 0x16, 0x5d, 0xe8, 0x1d, 0x45,
+ 0x96, 0xb2, 0xad, 0xc3, 0x85, 0x1d, 0xa0, 0xdc,
+ 0xad, 0x5a, 0xea, 0x4d, 0xe4, 0x74, 0xae, 0x48,
+ 0x97, 0x12, 0xe7, 0xc7, 0x7e, 0xea, 0x31, 0xc4,
+ 0x01, 0xdb, 0x49, 0x4c, 0xbe, 0x50, 0x13, 0x27,
+ 0xc0, 0xb0, 0xc8, 0x50, 0xac, 0xdc, 0x77, 0xb6,
+ 0x6b, 0x50, 0xd2, 0x73, 0xd2, 0x56, 0xe3, 0x75,
+ 0x8f, 0xb2, 0x56, 0x2a, 0x7b, 0x47, 0x87, 0x12,
+ 0xb8, 0xbb, 0xd8, 0x39, 0x47, 0xb5, 0xc1, 0x98,
+ 0x38, 0x03, 0x24, 0x5b, 0xda, 0x1d, 0xe8, 0x10,
+ 0x15, 0x59, 0xf7, 0x4d, 0x2b, 0x7d, 0xc0, 0x27,
+ 0xed, 0xc9, 0xbe, 0x66, 0x4a, 0xc2, 0xb6, 0xb1,
+ 0xf2, 0xd1, 0x85, 0x79, 0xd9, 0x93, 0x86, 0x8f,
+ 0x1b, 0xc3, 0xad, 0xb5, 0xf8, 0x29, 0x1e, 0x0f,
+ 0x1b, 0x36, 0xd3, 0xca, 0x57, 0xe9, 0xdb, 0x97,
+ 0x41, 0x09, 0x21, 0x5e, 0x40, 0xf0, 0xdc, 0x58,
+ 0xe8, 0x5a, 0x81, 0xbb, 0xba, 0x49, 0xd0, 0xd7,
+ 0xf5, 0x95, 0x53, 0x24, 0x92, 0x48, 0x2a, 0xcf,
+ 0x4e, 0x26, 0x04, 0x39, 0x63, 0x99, 0x00, 0x8d,
+ 0x97, 0x1d, 0xab, 0x2a, 0x6c, 0xaa, 0xa0, 0xe2,
+ 0xb9, 0x53, 0xcd, 0xf6, 0xc6, 0xf9, 0x0b, 0xd4,
+ 0x10, 0xb7, 0x0f, 0x93, 0xe7, 0x34, 0x6a, 0x13,
+ 0x4b, 0xab, 0x5c, 0xe7, 0x8c, 0x22, 0xf7, 0xef,
+ 0x6b, 0x1e, 0x24, 0xf1, 0x9e, 0xb5, 0x3a, 0xde,
+ 0xcb, 0x67, 0xd0, 0x3c, 0xcd, 0xb5, 0x1c, 0x1b,
+ 0x80, 0x07, 0x4e, 0x98, 0xb9, 0x1b, 0x15, 0x6b,
+ 0xd9, 0xf4, 0xf7, 0x8d, 0x98, 0x20, 0x6b, 0xb7,
+ 0x55, 0xfe, 0x0e, 0x17, 0xd1, 0x0d, 0x31, 0x0a,
+ 0xcd, 0xd9, 0x0e, 0x0f, 0xa0, 0x77, 0xa1, 0xa3,
+ 0x67, 0xe5, 0x47, 0x1e, 0x06, 0x37, 0x2e, 0xe6,
+ 0xfb, 0xa7, 0xce, 0x0b, 0x46, 0x98, 0x4e, 0x8d,
+ 0x5e, 0xc5, 0x60, 0x46, 0xb7, 0xa4, 0x55, 0x81,
+ 0x2c, 0x2f, 0x0c, 0x67, 0x75, 0x52, 0x58, 0x01,
+ 0x41, 0xae, 0x00, 0x3c, 0x7b, 0x24, 0x0e, 0x7b,
+ 0xb5, 0xfc, 0x82, 0x59, 0xad, 0xc1, 0x2d, 0x03,
+ 0xc0, 0xd9, 0x28, 0x17, 0xf4, 0x2e, 0x30, 0xb5,
+ 0x6c, 0xf3, 0x87, 0x77, 0xb0, 0x91, 0xce, 0xfe,
+ 0xb1, 0x9b, 0xba, 0x44, 0xf5, 0x67, 0x1d, 0x46,
+ 0xba, 0x7e, 0x28, 0x20, 0xf8, 0xd8, 0xde, 0x91,
+ 0x5e, 0xfd, 0xc6, 0x46, 0x0c, 0x7c, 0x1b, 0x9e,
+ 0x51, 0x1a, 0xa5, 0xd1, 0x97, 0x7a, 0x6b, 0x71,
+ 0x89, 0xfe, 0x57, 0x3b, 0xb4, 0xc0, 0x7b, 0x72,
+ 0x2d, 0xec, 0x25, 0x63, 0xe7, 0xeb, 0x58, 0x4d,
+ 0x3d, 0x4a, 0x0c, 0xe7, 0xe4, 0xcd, 0x53, 0x9e,
+ 0x18, 0x9d, 0x0c, 0xbc, 0x22, 0xb6, 0xec, 0x79,
+ 0x3c, 0xc5, 0xbf, 0xe8, 0x7b, 0x46, 0x3d, 0x37,
+ 0x63, 0xb8, 0xe4, 0x53, 0x9b, 0xa4, 0xbb, 0x1e,
+ 0x73, 0x4b, 0x59, 0x78, 0xd4, 0x2e, 0x73, 0xc8,
+ 0xe9, 0xf3, 0x17, 0xd9, 0x13, 0xe6, 0xca, 0xa7,
+ 0x31, 0x4f, 0xc1, 0xe3, 0x93, 0x0a, 0x4a, 0x59,
+ 0xa0, 0xab, 0xd8, 0x7f, 0x71, 0x48, 0x9b, 0x65,
+ 0x6c, 0xb0, 0x56, 0xfe, 0x18, 0xcb, 0x3e, 0xbc,
+ 0x80, 0x28, 0xf8, 0xe1, 0x73, 0xc1, 0xc5, 0xdb,
+ 0x2f, 0x93, 0xb9, 0xdc, 0xd4, 0xc1, 0xc4, 0xa0,
+ 0xc0, 0x2f, 0x24, 0x47, 0xa2, 0xc6, 0x48, 0x98,
+ 0xaf, 0x29, 0x7a, 0xf6, 0x96, 0x82, 0xab, 0xe8,
+ 0xb6, 0x2c, 0x95, 0x70, 0x4d, 0xa3, 0xef, 0x35,
+ 0xf9, 0x45, 0x9e, 0xa3, 0x5e, 0xd6, 0xd3, 0x69,
+ 0x96, 0xce, 0x69, 0xe4, 0x2a, 0xf9, 0xd8, 0x3f,
+ 0x1e, 0xb0, 0x28, 0xaa, 0x30, 0xf6, 0xa0, 0xc8,
+ 0xfc, 0xb6, 0x19, 0x1d, 0xcb, 0x69, 0x01, 0x60,
+ 0x2b, 0x65, 0xdb, 0xe2, 0x09, 0x77, 0xfc, 0xab,
+ 0x30, 0x66, 0x2c, 0xc2, 0xae, 0x3f, 0x0a, 0x11,
+ 0x42, 0xd9, 0x36, 0xc8, 0x3f, 0x5e, 0x92, 0xee,
+ 0xed, 0xa4, 0x7c, 0x3a, 0x2c, 0xbc, 0x96, 0xba,
+ 0xd2, 0x7c, 0xc3, 0x4c, 0x8e, 0xc8, 0xaa, 0x72,
+ 0xdb, 0x57, 0x07, 0x27, 0x04, 0x27, 0xdf, 0x6b,
+ 0x3f, 0x5c, 0xbf, 0x01, 0x86, 0xcf, 0xc4, 0x9f,
+ 0x8e, 0x66, 0x91, 0x1e, 0x60, 0x0e, 0xf2, 0xdf,
+ 0xf7, 0x8b, 0x53, 0x32, 0x83, 0x43, 0xbc, 0xf0,
+ 0x2b, 0x7c, 0x3b, 0x41, 0x3c, 0x80, 0x70, 0x4d,
+ 0x28, 0x07, 0xa6, 0x83, 0x4c, 0xe6, 0x44, 0xb7,
+ 0x87, 0xbb, 0x3a, 0xed, 0x6b, 0x35, 0x00, 0x79,
+ 0xee, 0x6c, 0xf9, 0x27, 0xbe, 0x40, 0xbf, 0x1b,
+ 0x49, 0x89, 0xe7, 0x51, 0x7c, 0xe5, 0x4e, 0xb5,
+ 0x40, 0x4f, 0x94, 0x94, 0x9f, 0xd7, 0x41, 0x4b,
+ 0x94, 0xe3, 0x61, 0x2c, 0xe4, 0x1e, 0xba, 0x18,
+ 0xc5, 0x28, 0x3c, 0x18, 0xa8, 0x82, 0xfe, 0x7c,
+ 0x3c, 0x6d, 0x5c, 0x0a, 0xd7, 0x9a, 0xdc, 0x9f,
+ 0xcb, 0x95, 0xca, 0xa9, 0x06, 0x22, 0x7a, 0xd6,
+ 0x83, 0x2d, 0x25, 0x8b, 0x78, 0xe6, 0x35, 0x96,
+ 0xae, 0xda, 0xe2, 0x2a, 0x6e, 0x7e, 0x31, 0x41,
+ 0x2e, 0xdc, 0x28, 0x6c, 0x3e, 0x56, 0xdf, 0x9c,
+ 0xb2, 0x86, 0xef, 0x73, 0x86, 0x65, 0x20, 0x3d,
+ 0xf5, 0xf5, 0x07, 0x8c, 0x18, 0x7d, 0x56, 0xb0,
+ 0xab, 0x7a, 0x14, 0x3a, 0xef, 0xec, 0x3d, 0x4b,
+ 0x9a, 0x04, 0xdc, 0x47, 0x42, 0x95, 0xbd, 0x61,
+ 0x8a, 0xe0, 0xd7, 0xf9, 0x40, 0x7c, 0x48, 0x01,
+ 0xa4, 0x81, 0x4e, 0x77, 0xad, 0xb7, 0x83, 0x00,
+ 0x4b, 0xb7, 0xea, 0x96, 0x8f, 0x80, 0xb8, 0x74,
+ 0x99, 0x81, 0xf2, 0x49, 0x98, 0x2c, 0x1a, 0xbb,
+ 0xa5, 0x3b, 0x27, 0x82, 0x18, 0x20, 0xc8, 0x52,
+ 0x2a, 0x81, 0x9b, 0x00, 0x53, 0x56, 0x9f, 0x90,
+ 0x90, 0xbc, 0xa9, 0xe3, 0x8c, 0xb6, 0x7b, 0xf2,
+ 0x66, 0x27, 0x29, 0x14, 0xee, 0x5b, 0x62, 0xd4,
+ 0x75, 0x7a, 0x37, 0x45, 0xb8, 0x5b, 0x13, 0x90,
+ 0xee, 0xb4, 0x08, 0x78, 0x03, 0x0f, 0x23, 0xad,
+ 0xe7, 0x30, 0x9f, 0x94, 0x52, 0x1b, 0x92, 0xee,
+ 0x52, 0xcc, 0x4f, 0xec, 0xaf, 0xa5, 0x12, 0x0b,
+ 0xb5, 0x39, 0x9f, 0x3a, 0xec, 0xdf, 0xf9, 0x65,
+ 0x0b, 0x57, 0xc7, 0x94, 0x26, 0xf2, 0xc2, 0xe4,
+ 0x48, 0xcf, 0xa4, 0xf7, 0x1b, 0x74, 0xfe, 0xa7,
+ 0x9b, 0x93, 0x87, 0xed, 0x05, 0x9a, 0xbd, 0xb7,
+ 0xe6, 0xdf, 0x44, 0x15, 0xb5, 0xee, 0xda, 0x67,
+ 0x32, 0xb2, 0x88, 0xa8, 0xad, 0xed, 0x8a, 0xca,
+ 0xe1, 0x30, 0x93, 0x7b, 0x41, 0xf5, 0x54, 0x42,
+ 0x23, 0x0a, 0xc5, 0x8e, 0x9b, 0x76, 0xd6, 0x6a,
+ 0xd4, 0xb8, 0x5a, 0xf8, 0x35, 0x8b, 0x40, 0x05,
+ 0xbd, 0x9a, 0x27, 0x1b, 0x7d, 0x04, 0x3a, 0xbf,
+ 0x8c, 0x35, 0x4a, 0xb5, 0x4f, 0xa9, 0xd8, 0xf1,
+ 0x1f, 0x20, 0x5f, 0x17, 0x1c, 0xd7, 0x12, 0x05,
+ 0xcb, 0xcd, 0xc9, 0xf2, 0x66, 0xe4, 0x57, 0x0f,
+ 0x45, 0xcb, 0xeb, 0xf1, 0x3d, 0xf7, 0x17, 0xb0,
+ 0x43, 0xc4, 0x8d, 0xf3, 0x2b, 0x06, 0x91, 0x24,
+ 0xa7, 0x16, 0x38, 0x98, 0x91, 0x52, 0x84, 0x31,
+ 0x3e, 0x35, 0x83, 0x75, 0x73, 0x6b, 0x8c, 0x61,
+ 0xaf, 0xa5, 0xed, 0xbf, 0xfc, 0xc2, 0xfc, 0x25,
+ 0xf5, 0x4d, 0xda, 0x69, 0xbe, 0x8a, 0x3a, 0x46,
+ 0x41, 0x2f, 0xd1, 0xef, 0x35, 0x21, 0xbd, 0x46,
+ 0xa2, 0x49, 0x4e, 0xad, 0x77, 0x69, 0x95, 0xb7,
+ 0x40, 0xf1, 0xa8, 0x33, 0x08, 0xcb, 0x5c, 0x46,
+ 0x3e, 0x56, 0xa3, 0x7e, 0x3a, 0x3d, 0xb2, 0x5a,
+ 0xbc, 0xac, 0x64, 0x36, 0x53, 0xbf, 0xe5, 0x86,
+ 0xcd, 0x71, 0x71, 0x58, 0xcf, 0xe5, 0xc6, 0x20,
+ 0x7e, 0xff, 0x8c, 0x25, 0x37, 0xb9, 0x4f, 0x85,
+ 0xe8, 0xc6, 0x5b, 0x84, 0x48, 0xdd, 0x8d, 0xc8,
+ 0xf3, 0xc6, 0x7b, 0x8b, 0x57, 0x2a, 0x63, 0x12,
+ 0x44, 0x86, 0x8a, 0x49, 0xf1, 0x43, 0x39, 0x21,
+ 0x4b, 0xd8, 0xdc, 0x87, 0xca, 0xd1, 0xc2, 0x4c,
+ 0x90, 0x27, 0x22, 0x8b, 0x05, 0xfd, 0xe7, 0xa0,
+ 0x98, 0xb1, 0x63, 0xfe, 0x27, 0xd0, 0xc4, 0xc5,
+ 0x43, 0xc5, 0x64, 0xa8, 0x95, 0x27, 0x41, 0x00,
+ 0xff, 0xc9, 0x23, 0xd9, 0xe4, 0xbf, 0x85, 0xe2,
+ 0xc1, 0x76, 0x9a, 0x7b, 0x9a, 0x32, 0x90, 0x5e,
+ 0x7c, 0x70, 0xf7, 0xe0, 0x34, 0x78, 0xcd, 0x29,
+ 0x51, 0xbc, 0x7a, 0x07, 0x35, 0x8d, 0x75, 0x56,
+ 0x4e, 0x20, 0x46, 0x49, 0x23, 0x13, 0x9c, 0xe4,
+ 0x15, 0x36, 0x82, 0x06, 0xe7, 0x79, 0x41, 0x02,
+ 0x20, 0xb3, 0xec, 0x7e, 0x9f, 0x16, 0xf1, 0xef,
+ 0x47, 0xf9, 0x74, 0xab, 0xce, 0x62, 0xc3, 0xe5,
+ 0xb6, 0xb6, 0x44, 0x0b, 0x8c, 0x6c, 0xfd, 0xc1,
+ 0x52, 0xa8, 0x04, 0x98, 0x86, 0x9a, 0x2f, 0xc6,
+ 0x6e, 0xcb, 0x8b, 0x8b, 0x51, 0x53, 0xbb, 0xad,
+ 0x4f, 0xbf, 0xbf, 0x5f, 0x0b, 0x7e, 0xda, 0x6d,
+ 0x8f, 0xb2, 0x53, 0x85, 0x48, 0x27, 0x53, 0x67,
+ 0xc7, 0xeb, 0xd3, 0xdb, 0x86, 0x04, 0x9c, 0x07,
+ 0x1c, 0xfd, 0x97, 0x2a, 0x55, 0x07, 0x12, 0x82,
+ 0x4b, 0xad, 0xea, 0xe9, 0x3a, 0x2e, 0xb5, 0x97,
+ 0x19, 0xd0, 0xd0, 0xc8, 0xd5, 0x16, 0x41, 0xde,
+ 0x05, 0x1d, 0xf6, 0x75, 0x15, 0x59, 0xf5, 0x4b,
+ 0x7a, 0xb6, 0x4b, 0xd5, 0x3a, 0x42, 0xaf, 0x2b,
+ 0x29, 0x14, 0x18, 0x3d, 0x98, 0x4b, 0x4e, 0xda,
+ 0x83, 0x29, 0x5d, 0x70, 0x03, 0x5d, 0x8a, 0xd6,
+ 0x95, 0x9b, 0x1b, 0x3b, 0xfe, 0x2c, 0x75, 0x8d,
+ 0xf6, 0x44, 0x59, 0xc5, 0xe3, 0xd5, 0x6b, 0x66,
+ 0xcf, 0x6e, 0x6c, 0xb3, 0xc1, 0xa8, 0xc4, 0x09,
+ 0x06, 0x8b, 0x71, 0x13, 0x37, 0xc3, 0xa0, 0xc6,
+ 0x62, 0xee, 0xd6, 0x95, 0xa7, 0x73, 0xc5, 0xc5,
+ 0x3e, 0x45, 0xc0, 0x8f, 0x2c, 0x72, 0xb5, 0x2f,
+ 0x79, 0xf2, 0x61, 0x9e, 0x82, 0x6e, 0xeb, 0x03,
+ 0xd3, 0x55, 0xde, 0xb0, 0xa1, 0xe8, 0xc6, 0x0f,
+ 0xb2, 0x1f, 0x64, 0xf9, 0xf2, 0x11, 0xa7, 0xd2,
+ 0xbb, 0x71, 0xa7, 0x7c, 0xfc, 0xf1, 0xad, 0x4f,
+ 0xb4, 0x45, 0xe6, 0x95, 0x10, 0x47, 0x5f, 0xca,
+ 0x2a, 0x5c, 0x96, 0xa4, 0x6c, 0x90, 0x48, 0x0a,
+ 0x24, 0x2f, 0xb2, 0x8f, 0x39, 0x9f, 0x73, 0xee,
+ 0xbb, 0x35, 0x62, 0xce, 0x22, 0x31, 0xcc, 0x5e,
+ 0xed, 0xda, 0xee, 0x70, 0x43, 0x14, 0x5d, 0x0b,
+ 0xf5, 0xdc, 0x6b, 0xdf, 0x17, 0x9c, 0xd5, 0x12,
+ 0xfd, 0xb1, 0x30, 0xf9, 0x34, 0x57, 0xec, 0x5f,
+ 0xe4, 0xe2, 0x22, 0x68, 0x78, 0x0a, 0x2c, 0x9f,
+ 0xfd, 0xa7, 0x05, 0x3a, 0x85, 0x23, 0xdf, 0xf3,
+ 0x71, 0x15, 0x37, 0x19, 0x03, 0x8f, 0x92, 0xfa,
+ 0xae, 0x32, 0x42, 0x67, 0x64, 0x4c, 0xd8, 0xb5,
+ 0xef, 0x02, 0x8b, 0x23, 0x59, 0x18, 0xa7, 0x27,
+ 0x7c, 0xbf, 0xca, 0x82, 0x16, 0x2e, 0x1b, 0x0b,
+ 0x05, 0x52, 0x4f, 0xbd, 0x0c, 0x16, 0xed, 0x68,
+ 0xbd, 0xf8, 0x6e, 0x84, 0x27, 0x0e, 0x18, 0x8f,
+ 0x3b, 0x94, 0xe9, 0xda, 0xa2, 0xa4, 0x70, 0xa7,
+ 0xae, 0x38, 0x91, 0x95, 0x7a, 0x97, 0x3f, 0xa2,
+ 0xb8, 0x3b, 0xc9, 0x36, 0x35, 0x30, 0xb6, 0xbc,
+ 0xf2, 0xf4, 0xd1, 0x5a, 0xd1, 0x0a, 0x6e, 0x49,
+ 0xd9, 0x91, 0x0f, 0x85, 0x48, 0x34, 0x7c, 0xca,
+ 0x24, 0x28, 0x13, 0x39, 0x70, 0x42, 0x95, 0x8a,
+ 0xa3, 0x64, 0xdb, 0x93, 0xf9, 0x1b, 0x8f, 0x88,
+ 0x65, 0x66, 0x93, 0x0b, 0x83, 0x8a, 0xec, 0x89,
+ 0x38, 0x48, 0x10, 0x65, 0xe5, 0x80, 0xb7, 0xfa,
+ 0x2a, 0xd9, 0x2b, 0xb8, 0x3b, 0x0a, 0xdb, 0x2b,
+ 0x29, 0xab, 0xd9, 0x9d, 0x36, 0xff, 0xf3, 0x7d,
+ 0x27, 0x5b, 0x28, 0xee, 0x4b, 0x09, 0xa6, 0x89,
+ 0x16, 0x19, 0x7b, 0x70, 0x88, 0x9e, 0x5b, 0x6a,
+ 0x80, 0x19, 0x22, 0x2e, 0x20, 0xb4, 0x89, 0x2a,
+ 0xa1, 0xbf, 0xfb, 0x4f, 0x7d, 0x23, 0x49, 0xd1,
+ 0x0c, 0x04, 0xc3, 0xdf, 0xf5, 0xf4, 0xeb, 0x11,
+ 0xf8, 0x0e, 0x73, 0x27, 0xa5, 0x6d, 0x13, 0xa1,
+ 0xe3, 0x9b, 0x19, 0x6f, 0x45, 0x59, 0xfd, 0x50,
+ 0x4f, 0xd4, 0xf2, 0x1c, 0xd3, 0x17, 0xb2, 0xd9,
+ 0x64, 0x8b, 0xc1, 0x58, 0x7d, 0x49, 0xba, 0xa0,
+ 0x80, 0x54, 0xb3, 0x77, 0x34, 0xfd, 0xf3, 0x45,
+ 0x35, 0xf8, 0x2e, 0xf8, 0xe4, 0xb1, 0xf0, 0xa9,
+ 0xef, 0x51, 0x72, 0x77, 0xa0, 0x2f, 0x79, 0x99,
+ 0xd6, 0x4f, 0x1e, 0x6c, 0x52, 0x5b, 0x12, 0xa0,
+ 0xf3, 0x75, 0x98, 0x31, 0xea, 0xd5, 0x13, 0xe3,
+ 0x5d, 0x22, 0xf3, 0x84, 0x24, 0xf2, 0x01, 0x19,
+ 0x5f, 0x39, 0x9a, 0x18, 0x8e, 0xa0, 0x16, 0x43,
+ 0x2c, 0x07, 0x4a, 0xd1, 0xfa, 0xa7, 0x17, 0xce,
+ 0xfc, 0x67, 0xd7, 0x64, 0x8d, 0xf0, 0xbe, 0xc3,
+ 0x5f, 0x6f, 0x04, 0x8d, 0xb5, 0x63, 0xf4, 0x65,
+ 0xb3, 0xe0, 0x2c, 0x44, 0x28, 0xe8, 0xec, 0x98,
+ 0x70, 0xe9, 0x57, 0xb1, 0xd4, 0x31, 0x12, 0x2a,
+ 0x0b, 0xc4, 0xab, 0xbd, 0x76, 0xfa, 0x02, 0xb6,
+ 0xdb, 0x9f, 0x09, 0x68, 0x6b, 0xf5, 0x08, 0x4e,
+ 0x88, 0x73, 0x77, 0xa3, 0x81, 0x1d, 0x7a, 0xbb,
+ 0x68, 0x24, 0x9b, 0x7f, 0xee, 0x0c, 0x90, 0xc6,
+ 0x83, 0xef, 0xe0, 0xda, 0xdc, 0x12, 0xdf, 0x34,
+ 0x8e, 0xb6, 0x0c, 0x65, 0xa0, 0xf9, 0x7c, 0x52,
+ 0x30, 0x56, 0xe9, 0xe1, 0x37, 0x3b, 0x1d, 0xa0,
+ 0x4d, 0xa6, 0x0c, 0x3c, 0xdb, 0x60, 0xd2, 0x83,
+ 0x83, 0x7f, 0xe2, 0x99, 0xfc, 0x18, 0x6e, 0x6d,
+ 0x74, 0xae, 0xdc, 0x4e, 0x32, 0xe7, 0xab, 0x88,
+ 0x68, 0x9c, 0x24, 0x9d, 0x24, 0xb0, 0x88, 0x61,
+ 0x8b, 0x09, 0x38, 0x22, 0x82, 0xe6, 0x82, 0xf9,
+ 0x7a, 0x9a, 0x28, 0x25, 0x19, 0xa4, 0xd2, 0x71,
+ 0x36, 0x89, 0x57, 0x34, 0x1b, 0xde, 0x34, 0xff,
+ 0x78, 0x9f, 0xc5, 0x93, 0x73, 0x4f, 0xef, 0xc5,
+ 0x4d, 0x2c, 0x70, 0xf4, 0x4f, 0xa0, 0x8c, 0x5f,
+ 0x03, 0x19, 0xe5, 0x7b, 0xfa, 0x59, 0xfb, 0x0b,
+ 0x02, 0xbb, 0x2f, 0x58, 0x34, 0xd1, 0x78, 0x22,
+ 0x41, 0x00, 0x3f, 0xb2, 0xa7, 0xa7, 0xbd, 0x0c,
+ 0x80, 0xb0, 0xd9, 0x70, 0xc0, 0xe4, 0x9d, 0x4f,
+ 0x58, 0xb4, 0x5e, 0x91, 0x2d, 0xd7, 0xa8, 0xf2,
+ 0x83, 0x29, 0x11, 0x7f, 0x37, 0xcf, 0x07, 0x1d,
+ 0x0f, 0x99, 0x4f, 0xd8, 0x6a, 0x40, 0xa3, 0xd3,
+ 0xe8, 0x7b, 0x3a, 0x0d, 0xe4, 0xd9, 0x39, 0x4d,
+ 0x67, 0xb9, 0x32, 0xb2, 0xd5, 0x39, 0x1b, 0x74,
+ 0x6c, 0xcf, 0x69, 0x69, 0x9b, 0xdc, 0x4e, 0xa0,
+ 0x2e, 0x7a, 0x4e, 0x92, 0x80, 0x4f, 0xc6, 0x67,
+ 0x73, 0x5d, 0x87, 0x26, 0x3d, 0xd7, 0x5b, 0xe3,
+ 0xe6, 0x9a, 0xff, 0x9f, 0x33, 0xf5, 0x5e, 0x1d,
+ 0xd8, 0x16, 0x0d, 0x43, 0x8d, 0xec, 0x96, 0x45,
+ 0x81, 0xfd, 0x5a, 0x20, 0x63, 0xa4, 0x61, 0xf3,
+ 0x4c, 0xcb, 0xe6, 0x90, 0x00, 0xc8, 0x80, 0x85,
+ 0x99, 0x2b, 0xf6, 0x15, 0x1f, 0x9d, 0x29, 0x92,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x60, 0x9c, 0x06, 0x16, 0x82, 0xf5, 0xb9, 0xd1,
+ 0x32, 0xcd, 0x72, 0x64, 0x80, 0xfc, 0x86, 0xc9,
+ 0xad, 0x30, 0xf7, 0x6b, 0x0f, 0x12, 0x76, 0x06,
+ 0xd8, 0x98, 0x92, 0xc1, 0x2e, 0x2b, 0xd5, 0xd9,
+ 0x6a, 0xe7, 0xf1, 0x75, 0x15, 0xcc, 0xf9, 0x0d,
+ 0x0b, 0x12, 0x3f, 0xe3, 0x5e, 0x10, 0x27, 0x94,
+ 0xb5, 0x7f, 0x71, 0x8d, 0x27, 0xc4, 0x65, 0x74,
+ 0x5c, 0xbb, 0xf8, 0x0f, 0x78, 0x63, 0x26, 0xef,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0x75, 0x80, 0xe5, 0x00, 0x5c, 0x28, 0xd0, 0xc3,
+ 0xfa, 0x12, 0xfc, 0x13, 0x7b, 0x2c, 0x89, 0x20,
+ 0xf6, 0x40, 0x17, 0xbc, 0xe4, 0x3d, 0x8e, 0xda,
+ 0xbf, 0xa4, 0x17, 0xa6, 0x7c, 0xcd, 0xf0, 0xdb,
+ 0xe0, 0x45, 0x9f, 0x8e, 0x57, 0x97, 0x69, 0xa3,
+ 0xe9, 0x6f, 0xb7, 0x62, 0x28, 0x79, 0x0b, 0x88,
+ 0x02, 0x36, 0x35, 0x2f, 0x7f, 0x0e, 0xac, 0x5e,
+ 0x2e, 0x85, 0xb2, 0x32, 0x8c, 0x08, 0x4f, 0x5b,
+ 0x2e, 0xeb, 0xbc, 0xb3, 0x5f, 0x52, 0x5e, 0x42,
+ 0x6a, 0x3c, 0x9b, 0xbf, 0xaf, 0x71, 0x1a, 0x4a,
+ 0xbc, 0x9f, 0xac, 0x5e, 0x95, 0x18, 0x0f, 0xba,
+ 0xc0, 0xe8, 0xea, 0x56, 0x4e, 0xc1, 0x62, 0x4a,
+ 0xcb, 0x99, 0x5b, 0xa4, 0x6c, 0xca, 0xec, 0xf6,
+ 0xc7, 0xd0, 0x4b, 0xb6, 0x6e, 0xca, 0x58, 0xaa,
+ 0x84, 0x46, 0xb3, 0xbb, 0x2a, 0x67, 0xf6, 0xc5,
+ 0xf9, 0x40, 0xdf, 0x32, 0xf5, 0x94, 0xec, 0x6a,
+ 0x96, 0x1c, 0x16, 0x2e, 0x6c, 0xd5, 0xcd, 0xff,
+ 0xc1, 0x2c, 0xe5, 0x38, 0x78, 0x3a, 0x34, 0xe6,
+ 0x29, 0xfa, 0xeb, 0x1c, 0xad, 0xff, 0x3c, 0x07,
+ 0x12, 0xa6, 0xda, 0xaa, 0x44, 0xe2, 0xac, 0x0a,
+ 0x22, 0xff, 0x53, 0xc7, 0x99, 0xc0, 0x5c, 0x22,
+ 0x91, 0x82, 0x38, 0xa6, 0x19, 0x47, 0x8f, 0xbc,
+ 0xc5, 0x66, 0xc8, 0x76, 0x6e, 0x94, 0x09, 0x28,
+ 0xf0, 0x7e, 0x05, 0x08, 0xf6, 0x14, 0xcd, 0x12,
+ 0xb1, 0xf9, 0xd8, 0x39, 0x2f, 0x9d, 0x65, 0x52,
+ 0x6c, 0x7a, 0xc6, 0xb9, 0x7c, 0xe1, 0xc0, 0x7e,
+ 0x57, 0xe8, 0x26, 0x4b, 0x94, 0xa7, 0xe4, 0xe6,
+ 0xa2, 0x6a, 0xe2, 0xde, 0x41, 0x56, 0x82, 0x55,
+ 0xe3, 0x9c, 0xce, 0xf5, 0x94, 0x6e, 0x2a, 0x53,
+ 0x51, 0x3e, 0x30, 0x0a, 0x51, 0xfc, 0x79, 0xb6,
+ 0x02, 0x02, 0xbd, 0x12, 0xba, 0xf2, 0x68, 0xb0,
+ 0xc9, 0x35, 0xcb, 0x99, 0x39, 0x99, 0x94, 0x52,
+ 0x5d, 0x5e, 0x52, 0x5e, 0xc4, 0xb8, 0xb0, 0xf4,
+ 0x1f, 0x4a, 0x4e, 0x3a, 0xe8, 0xe0, 0x00, 0x75,
+ 0x51, 0x4a, 0x8b, 0x81, 0x09, 0x2f, 0x15, 0xd4,
+ 0x3a, 0xbb, 0x9b, 0x00, 0x34, 0x03, 0xe3, 0xb6,
+ 0xb9, 0xba, 0x35, 0x28, 0xd4, 0xb8, 0x07, 0x42,
+ 0x95, 0xf6, 0x27, 0xe4, 0x6e, 0xde, 0xb5, 0xf5,
+ 0x4f, 0xd5, 0x0b, 0x00, 0x7d, 0x67, 0x04, 0xb8,
+ 0x80, 0x4f, 0x17, 0x6f, 0x5f, 0xa9, 0x8c, 0x0f,
+ 0x6e, 0x3d, 0x91, 0xb9, 0xaa, 0x1a, 0x73, 0x5c,
+ 0x69, 0x53, 0x20, 0x28, 0xd4, 0x2d, 0xbf, 0x2d,
+ 0x38, 0xf2, 0x2b, 0xbc, 0xa1, 0xc6, 0x54, 0x7a,
+ 0x9b, 0xde, 0xa6, 0x9f, 0x7c, 0x2f, 0xbd, 0x97,
+ 0x7d, 0x2e, 0x40, 0x15, 0x78, 0x41, 0x8d, 0xdd,
+ 0x98, 0xc4, 0x46, 0xdc, 0x26, 0xbd, 0x72, 0x93,
+ 0xa5, 0xb9, 0x8f, 0xb7, 0xfa, 0x2f, 0xb3, 0x4c,
+ 0x7e, 0xfd, 0x08, 0xf0, 0x8b, 0xe3, 0x50, 0x23,
+ 0xcd, 0x8f, 0x74, 0x47, 0xbf, 0xde, 0x58, 0x16,
+ 0xc5, 0xb3, 0x8d, 0xd4, 0xf0, 0x30, 0x09, 0xbd,
+ 0xd8, 0x30, 0x04, 0x1c, 0x38, 0xa0, 0xaf, 0xa2,
+ 0x2a, 0xfa, 0x7b, 0xc7, 0x13, 0xfc, 0xa3, 0xab,
+ 0x53, 0x66, 0x43, 0x28, 0xcf, 0x1a, 0x86, 0x1f,
+ 0x54, 0x2e, 0x81, 0x8b, 0xab, 0x44, 0x8d, 0x37,
+ 0x2d, 0x70, 0x27, 0x55, 0x9a, 0x50, 0x7e, 0x1d,
+ 0xac, 0xac, 0xe1, 0xea, 0x11, 0x4f, 0x52, 0x4e,
+ 0xf3, 0x63, 0xd7, 0x2e, 0xdc, 0x3e, 0x5f, 0xfd,
+ 0x6f, 0x85, 0x7d, 0x23, 0xcb, 0xf0, 0xb1, 0x48,
+ 0x9f, 0x14, 0x41, 0x89, 0xf5, 0xfa, 0xf0, 0x87,
+ 0x37, 0x5f, 0xe3, 0x34, 0xce, 0x90, 0xd1, 0x26,
+ 0xa6, 0x59, 0x46, 0xbc, 0x85, 0xff, 0xdc, 0x32,
+ 0x10, 0x60, 0xb0, 0x4f, 0x55, 0x5e, 0x73, 0x5c,
+ 0x7a, 0x82, 0xa6, 0x33, 0xa8, 0xf8, 0xb5, 0xc7,
+ 0x08, 0x22, 0x47, 0x02, 0x66, 0xa8, 0x9d, 0xfc,
+ 0xd8, 0x65, 0x35, 0x57, 0xda, 0x61, 0x06, 0x35,
+ 0x18, 0xf4, 0xe0, 0x92, 0x2f, 0x7a, 0x24, 0x59,
+ 0x5b, 0x79, 0xcf, 0x06, 0x63, 0x14, 0x2a, 0xc7,
+ 0x93, 0x36, 0x88, 0x01, 0xdc, 0x1d, 0x13, 0x52,
+ 0xf5, 0x89, 0x4c, 0x60, 0xea, 0xdc, 0xdf, 0x38,
+ 0x1e, 0xd3, 0x96, 0xd6, 0x6a, 0x80, 0x07, 0x3c,
+ 0xd9, 0x60, 0xf7, 0x85, 0xf2, 0xe3, 0x5d, 0xec,
+ 0x9d, 0xee, 0x4f, 0x9f, 0x8b, 0x21, 0x28, 0x1b,
+ 0x58, 0xa0, 0xc6, 0xd2, 0xa0, 0xfd, 0xa0, 0x6c,
+ 0xa6, 0x83, 0xc1, 0x10, 0x48, 0x3c, 0x0d, 0xbd,
+ 0x8c, 0x70, 0x82, 0xb6, 0x6f, 0xaa, 0xe3, 0xe8,
+ 0x60, 0x8b, 0xcd, 0x07, 0xb9, 0x6a, 0x9c, 0xc6,
+ 0xfa, 0x8e, 0x93, 0xe7, 0x78, 0x22, 0xbf, 0x21,
+ 0x08, 0x72, 0x27, 0xd7, 0xe9, 0x3e, 0x65, 0x86,
+ 0xf4, 0xbb, 0x6f, 0x07, 0xf5, 0x46, 0x22, 0x28,
+ 0x16, 0xca, 0x94, 0x21, 0xea, 0x37, 0x3a, 0xf8,
+ 0x0c, 0xf9, 0x3a, 0x56, 0x69, 0xeb, 0x5f, 0xe2,
+ 0xb1, 0xff, 0xe5, 0x55, 0x51, 0xac, 0x06, 0xe7,
+ 0x3c, 0xd6, 0xce, 0x82, 0xfe, 0xe9, 0x2a, 0xe1,
+ 0x18, 0x33, 0x29, 0xe3, 0xeb, 0x41, 0x2b, 0xfc,
+ 0x80, 0xdb, 0xa9, 0x68, 0xe1, 0x00, 0x66, 0x6b,
+ 0x37, 0xc2, 0x69, 0x93, 0xb8, 0xb1, 0x8c, 0x48,
+ 0xcd, 0x07, 0x4f, 0x93, 0xbd, 0x40, 0x1c, 0x06,
+ 0x6c, 0x46, 0x96, 0xa8, 0x08, 0xa8, 0x2b, 0xe4,
+ 0x8e, 0xe5, 0xef, 0x50, 0xbf, 0x59, 0x6d, 0x87,
+ 0xa7, 0x0a, 0x7f, 0x6a, 0x71, 0x10, 0x65, 0xe3,
+ 0xe5, 0x14, 0xf6, 0x65, 0xb8, 0xc1, 0xc2, 0x8c,
+ 0xd8, 0x83, 0xda, 0x8c, 0x1d, 0xd9, 0xb9, 0xdd,
+ 0xfe, 0x16, 0xa9, 0x44, 0x1b, 0x00, 0x3a, 0xea,
+ 0x37, 0xdc, 0xaf, 0x31, 0x4a, 0xc1, 0xd3, 0x9c,
+ 0x5f, 0x50, 0x84, 0x7d, 0x5a, 0x46, 0xb9, 0x90,
+ 0xd6, 0xbd, 0xe2, 0x0a, 0xed, 0xec, 0xba, 0xb2,
+ 0x00, 0x98, 0x14, 0x37, 0xc5, 0x4e, 0x77, 0x09,
+ 0xea, 0xb2, 0xec, 0x6d, 0x5d, 0x89, 0x58, 0xf1,
+ 0x4e, 0x18, 0x1c, 0xd7, 0xe7, 0xe8, 0x0a, 0x29,
+ 0xce, 0x68, 0x92, 0xa4, 0xac, 0xbe, 0x38, 0xda,
+ 0xff, 0xd2, 0x76, 0x87, 0xa3, 0x5f, 0x00, 0xdf,
+ 0x97, 0xd6, 0x75, 0xa8, 0xb7, 0xf7, 0xa6, 0xd7,
+ 0xf3, 0xbd, 0x31, 0x7e, 0x32, 0xdc, 0x35, 0xf7,
+ 0xd0, 0xe3, 0x01, 0xbd, 0x53, 0xcf, 0xd1, 0x32,
+ 0x16, 0x41, 0x31, 0x0e, 0xa1, 0xa1, 0x4a, 0xe7,
+ 0x93, 0xcb, 0xe1, 0xdd, 0x4b, 0xa2, 0xcf, 0xbf,
+ 0x8b, 0xb7, 0x39, 0x17, 0x28, 0xe2, 0xce, 0x7e,
+ 0x1b, 0x71, 0x9b, 0xf1, 0xbf, 0xf4, 0xb9, 0xe4,
+ 0xf9, 0x02, 0x95, 0x40, 0x7a, 0x11, 0xf8, 0x7f,
+ 0x54, 0xd4, 0x80, 0x1c, 0x8d, 0x14, 0xdb, 0xa0,
+ 0xc0, 0x5f, 0xc6, 0x49, 0x79, 0x11, 0x5f, 0x8d,
+ 0x6c, 0x3b, 0x13, 0x3b, 0x37, 0xdd, 0x9a, 0x4c,
+ 0x2f, 0x25, 0x71, 0xdb, 0x94, 0x0f, 0x84, 0x70,
+ 0xa1, 0x4e, 0xea, 0x6c, 0xac, 0x50, 0x12, 0x85,
+ 0xa5, 0xe4, 0xdf, 0x13, 0x84, 0x94, 0x3d, 0x40,
+ 0xbc, 0xac, 0x0f, 0x7d, 0x58, 0x79, 0x00, 0x11,
+ 0x29, 0xb2, 0x9e, 0x14, 0x2f, 0x5f, 0xc0, 0x7c,
+ 0xe3, 0xf1, 0x96, 0x9d, 0xea, 0xcd, 0x34, 0xf9,
+ 0x69, 0x26, 0x98, 0x79, 0xb5, 0x24, 0xa3, 0x63,
+ 0x2d, 0xd4, 0xc1, 0x32, 0xe8, 0xec, 0x40, 0x25,
+ 0xf5, 0x74, 0xf4, 0x07, 0x48, 0x5d, 0xc7, 0x56,
+ 0xc1, 0xde, 0x8d, 0xb5, 0x60, 0x32, 0x72, 0x92,
+ 0xc6, 0xe1, 0xcb, 0xb1, 0x5c, 0xab, 0x17, 0xef,
+ 0xb7, 0x0c, 0x20, 0x85, 0xe8, 0xdf, 0xa4, 0x69,
+ 0xba, 0x9d, 0x90, 0xff, 0x48, 0x51, 0xf1, 0xde,
+ 0x7a, 0xdf, 0x2a, 0xac, 0x40, 0x0b, 0xf4, 0x3b,
+ 0x61, 0xe2, 0x94, 0xea, 0x75, 0x53, 0x58, 0xe0,
+ 0xbd, 0x8f, 0xde, 0xf4, 0x4d, 0x3d, 0x05, 0x78,
+ 0xfa, 0x80, 0x6a, 0x6a, 0xd0, 0x8d, 0x3e, 0xb8,
+ 0xb4, 0x21, 0x2c, 0x81, 0x89, 0x1b, 0x18, 0x14,
+ 0x89, 0xcf, 0xf8, 0x23, 0x1b, 0x8b, 0x17, 0xd1,
+ 0x71, 0xea, 0xcd, 0x25, 0x15, 0x72, 0x03, 0x04,
+ 0x58, 0x39, 0x9c, 0x94, 0xe1, 0x3d, 0xad, 0x91,
+ 0xd9, 0x68, 0x10, 0xbb, 0xbb, 0xe6, 0x7a, 0xb3,
+ 0xaf, 0x7b, 0xd9, 0xba, 0x26, 0x0d, 0xd4, 0x78,
+ 0x11, 0x14, 0xf5, 0xc0, 0xfb, 0x09, 0xa9, 0xe8,
+ 0x8b, 0x09, 0x99, 0x04, 0x05, 0x40, 0xa0, 0x2a,
+ 0xfd, 0x2a, 0x36, 0xae, 0x33, 0x79, 0x83, 0xdb,
+ 0x8f, 0xfa, 0x85, 0x5c, 0xa7, 0x44, 0xf7, 0x58,
+ 0x3e, 0x3b, 0x7b, 0xfd, 0x81, 0xf3, 0xa4, 0xb4,
+ 0x6f, 0x1b, 0x08, 0xa5, 0xd9, 0xc1, 0xd9, 0x95,
+ 0x50, 0x8a, 0x9e, 0x0f, 0x6a, 0xc5, 0xae, 0x7d,
+ 0x21, 0x74, 0x35, 0x5f, 0xfe, 0x4b, 0x8c, 0x9d,
+ 0x2a, 0xa3, 0x5f, 0xfe, 0x1e, 0xfb, 0x61, 0x04,
+ 0xf7, 0xc2, 0x20, 0x77, 0x4d, 0xa4, 0x30, 0x53,
+ 0x17, 0xb3, 0x3d, 0x6c, 0x64, 0xda, 0x2b, 0x49,
+ 0x4f, 0x75, 0x78, 0x4d, 0x3f, 0x8d, 0xec, 0x65,
+ 0x53, 0x3c, 0x78, 0x93, 0x4e, 0x51, 0x97, 0x19,
+ 0xc2, 0x36, 0x2f, 0x9f, 0x1d, 0xf8, 0xe7, 0x41,
+ 0xfe, 0xb5, 0xe9, 0xeb, 0x56, 0x95, 0x94, 0x7d,
+ 0x7d, 0xea, 0xb8, 0xdc, 0x7e, 0xf6, 0x43, 0xaf,
+ 0x37, 0x9b, 0x22, 0x4b, 0x78, 0x38, 0x87, 0x52,
+ 0x52, 0x1f, 0x2c, 0x8b, 0x26, 0x5a, 0x5a, 0xd2,
+ 0xb3, 0xd8, 0x83, 0xba, 0x42, 0xce, 0xb2, 0x4d,
+ 0xf1, 0x8f, 0x2d, 0x0e, 0x82, 0x0d, 0xee, 0xe2,
+ 0x0f, 0x4d, 0x7b, 0xc9, 0x97, 0x09, 0xd4, 0x6d,
+ 0x4f, 0xaf, 0xcd, 0x65, 0xfb, 0x6d, 0xf2, 0x54,
+ 0x02, 0x36, 0x69, 0x92, 0xee, 0xb3, 0x6f, 0x52,
+ 0xfa, 0xe7, 0x52, 0xd1, 0xbe, 0xa6, 0xb3, 0x4c,
+ 0x6c, 0xbe, 0x65, 0xd2, 0x83, 0x11, 0x9e, 0xa7,
+ 0xd2, 0x54, 0x2f, 0x6a, 0x5e, 0x24, 0x3a, 0x27,
+ 0x37, 0x9f, 0x6c, 0x87, 0x9e, 0x15, 0x71, 0x34,
+ 0x73, 0x8e, 0x68, 0xbe, 0x60, 0xcb, 0x35, 0xbf,
+ 0xd1, 0x00, 0xc5, 0xa5, 0xc4, 0xe7, 0x3d, 0xbb,
+ 0x1d, 0x24, 0x65, 0x0b, 0x49, 0xdf, 0x8b, 0x18,
+ 0x6a, 0xeb, 0x37, 0x7a, 0xd9, 0xc4, 0x16, 0x00,
+ 0xfe, 0x99, 0xdf, 0xb8, 0x5d, 0x3c, 0xac, 0x7b,
+ 0xc4, 0xe3, 0x7b, 0x09, 0x14, 0x19, 0x43, 0xa8,
+ 0x9f, 0x27, 0xb3, 0xd8, 0xbe, 0x11, 0xd6, 0xeb,
+ 0xc3, 0x45, 0x60, 0xf7, 0x76, 0x27, 0x96, 0xbe,
+ 0x2e, 0x50, 0x17, 0x9f, 0x3c, 0x31, 0x5e, 0xac,
+ 0xe8, 0xf1, 0x4f, 0xf5, 0x47, 0x1a, 0xa7, 0xc8,
+ 0x37, 0x02, 0xc5, 0xc8, 0x9c, 0xfe, 0xb9, 0x49,
+ 0x0b, 0x97, 0x80, 0x22, 0x7a, 0x41, 0xe3, 0x28,
+ 0xa8, 0x82, 0xe5, 0xa2, 0x13, 0x97, 0x4e, 0x0f,
+ 0x57, 0x6b, 0x6f, 0x12, 0x02, 0x24, 0x63, 0x88,
+ 0xda, 0xc7, 0x15, 0xd5, 0x0c, 0xb4, 0x44, 0x2f,
+ 0x8c, 0xcb, 0x84, 0x1a, 0x5f, 0x28, 0x47, 0xe7,
+ 0xd5, 0xf4, 0x04, 0x71, 0x4a, 0xd6, 0xe2, 0x2c,
+ 0x75, 0x87, 0x07, 0xcf, 0x0a, 0x2d, 0x77, 0x95,
+ 0x88, 0xbd, 0xeb, 0xa4, 0x10, 0x16, 0xe5, 0x75,
+ 0x0c, 0x38, 0x33, 0xe7, 0xf9, 0x09, 0x2a, 0x3e,
+ 0xcc, 0x0e, 0x1b, 0x6c, 0xa0, 0xd9, 0xc6, 0x7c,
+ 0xb8, 0x8e, 0xfa, 0xdd, 0xe8, 0xbe, 0x2c, 0xbf,
+ 0x51, 0xd3, 0x1c, 0xe1, 0x87, 0xf5, 0xbf, 0x20,
+ 0x6f, 0x62, 0xc9, 0xbd, 0x55, 0x0f, 0xa1, 0xdd,
+ 0xdf, 0x7a, 0x0d, 0x7d, 0x1c, 0x39, 0x59, 0x1e,
+ 0x94, 0x4e, 0x43, 0x5e, 0xb8, 0x0f, 0xcb, 0x0d,
+ 0x1d, 0x49, 0x05, 0x20, 0x63, 0x65, 0x5c, 0xe6,
+ 0x37, 0x68, 0x0f, 0xd7, 0x0b, 0xf4, 0xaf, 0xab,
+ 0xc9, 0xce, 0x54, 0xee, 0xbf, 0xb2, 0xbd, 0x36,
+ 0x44, 0x40, 0x36, 0xcd, 0x8d, 0x26, 0xe5, 0xc5,
+ 0x5a, 0xbb, 0xd3, 0x94, 0xa3, 0x41, 0x2f, 0x0d,
+ 0xd5, 0x22, 0x8a, 0x1f, 0x61, 0xc6, 0x07, 0xd9,
+ 0xae, 0x45, 0x8d, 0x24, 0x16, 0xae, 0x93, 0x9b,
+ 0xc2, 0x92, 0xd4, 0x72, 0x69, 0x98, 0x22, 0xbb,
+ 0x4a, 0x00, 0xdf, 0xf0, 0xbb, 0x01, 0xba, 0xbd,
+ 0x27, 0x90, 0xa1, 0x7e, 0x90, 0x5e, 0xd9, 0xaf,
+ 0x9b, 0x48, 0xe5, 0x42, 0x70, 0xc4, 0x5b, 0x31,
+ 0x56, 0x12, 0xf5, 0xb6, 0x14, 0x1d, 0x53, 0xce,
+ 0xc2, 0x57, 0x62, 0xdd, 0xe6, 0x28, 0x42, 0x97,
+ 0x67, 0xbf, 0xa6, 0x56, 0x8a, 0xa4, 0xa8, 0x90,
+ 0x86, 0x61, 0x88, 0x21, 0x64, 0x1d, 0x3f, 0xc7,
+ 0x9c, 0x44, 0xe2, 0x96, 0xa8, 0x3a, 0x4d, 0xfc,
+ 0xfc, 0x0b, 0xd8, 0x7a, 0x97, 0x81, 0x05, 0x75,
+ 0x72, 0xf1, 0xee, 0xcd, 0x21, 0x67, 0x54, 0x2d,
+ 0x1a, 0xc5, 0x6a, 0x51, 0x14, 0xf9, 0x12, 0x59,
+ 0x33, 0x5b, 0xf7, 0x3c, 0x5b, 0xca, 0x37, 0xb6,
+ 0xa9, 0xcb, 0x6f, 0x2e, 0xfa, 0x24, 0x16, 0x3c,
+ 0xd9, 0xfe, 0x3b, 0x5e, 0xc2, 0x38, 0x19, 0x4f,
+ 0xcb, 0x33, 0x88, 0x7d, 0x33, 0xf4, 0x1b, 0x0d,
+ 0xb3, 0xf8, 0xa2, 0xca, 0x88, 0xdc, 0x58, 0x87,
+ 0x11, 0x21, 0x3d, 0xb7, 0x47, 0x20, 0x56, 0x8f,
+ 0x4c, 0x54, 0xec, 0xa4, 0x09, 0x65, 0x47, 0xe4,
+ 0x7f, 0x4e, 0x19, 0xdc, 0x4e, 0x4a, 0x81, 0x51,
+ 0xb8, 0x5c, 0x7b, 0x2f, 0x33, 0xdd, 0xb9, 0x2b,
+ 0x13, 0xa4, 0xc4, 0x11, 0xb0, 0x35, 0x74, 0x9f,
+ 0xea, 0x06, 0xce, 0xe9, 0xec, 0x69, 0x0d, 0x7e,
+ 0xf5, 0x10, 0x82, 0x10, 0xcf, 0xbd, 0xa8, 0x7f,
+ 0xe5, 0x50, 0x05, 0x61, 0x30, 0x96, 0x99, 0xee,
+ 0x62, 0xcd, 0x9c, 0x15, 0x2e, 0x0f, 0xee, 0x80,
+ 0x37, 0x87, 0x9b, 0xd7, 0x64, 0x04, 0xa6, 0x66,
+ 0x85, 0xf8, 0xc5, 0xed, 0xe0, 0x2c, 0x7c, 0x26,
+ 0x4d, 0x69, 0x91, 0xe4, 0xcd, 0x44, 0xd2, 0xda,
+ 0x27, 0x91, 0x33, 0xea, 0xf8, 0xe0, 0xae, 0x46,
+ 0x44, 0x47, 0x10, 0xd4, 0x83, 0x55, 0x2c, 0x37,
+ 0x92, 0xce, 0x16, 0x89, 0x2f, 0x1d, 0x1a, 0xa2,
+ 0xb9, 0x41, 0xe0, 0xce, 0x16, 0xce, 0x4a, 0x18,
+ 0x1a, 0x5f, 0x97, 0xd7, 0x3f, 0x2f, 0x4c, 0x07,
+ 0xf8, 0xcf, 0x03, 0x26, 0x2a, 0x00, 0xa3, 0xe4,
+ 0x28, 0x45, 0x68, 0x8c, 0x6c, 0x98, 0xa8, 0x96,
+ 0x09, 0x08, 0x99, 0x34, 0xec, 0x2e, 0x29, 0x1a,
+ 0xe5, 0x97, 0x37, 0x8d, 0x43, 0x9f, 0x2f, 0xfa,
+ 0x75, 0xb5, 0x6c, 0xa9, 0x88, 0x77, 0x5e, 0x57,
+ 0x4d, 0x07, 0x50, 0x4d, 0xb8, 0x32, 0x9f, 0xbd,
+ 0x6f, 0x59, 0xb1, 0x46, 0x83, 0xef, 0xff, 0x63,
+ 0xdc, 0x03, 0x49, 0x17, 0xb8, 0x29, 0x32, 0xbf,
+ 0xc8, 0x71, 0x61, 0xba, 0x8e, 0x35, 0x2d, 0xce,
+ 0xf4, 0x75, 0x77, 0xe6, 0xab, 0xaf, 0x9c, 0xc5,
+ 0xd7, 0x4e, 0xb9, 0xfa, 0x53, 0x1b, 0x9a, 0xe7,
+ 0x52, 0xb6, 0x4f, 0x9a, 0x1d, 0xe9, 0x10, 0x0a,
+ 0x79, 0xd2, 0xae, 0xb1, 0x61, 0xa3, 0x80, 0x48,
+ 0x36, 0x4e, 0xc7, 0x47, 0x4a, 0x8d, 0x66, 0x8d,
+ 0xf1, 0x06, 0xb9, 0x23, 0x27, 0x4b, 0xdf, 0x36,
+ 0x9f, 0xb8, 0x2a, 0x62, 0xf1, 0x65, 0x65, 0x4d,
+ 0xa1, 0x5b, 0xaf, 0x0c, 0x0f, 0xb3, 0x9c, 0xc5,
+ 0x46, 0xff, 0xab, 0x46, 0x80, 0x88, 0xc0, 0x2e,
+ 0x64, 0xcd, 0x1f, 0x60, 0x3d, 0x52, 0xdf, 0x36,
+ 0x49, 0x14, 0x6c, 0x8e, 0x0a, 0x11, 0x41, 0x3c,
+ 0x93, 0x01, 0xe5, 0xf5, 0x46, 0xca, 0x3e, 0x9b,
+ 0xf8, 0xa3, 0x42, 0xfe, 0x2b, 0x0b, 0xf5, 0xdc,
+ 0x8d, 0x64, 0x02, 0xd7, 0x27, 0xb9, 0x90, 0xec,
+ 0x4d, 0xa7, 0x13, 0xc5, 0x92, 0xb8, 0x8b, 0x9b,
+ 0x7e, 0xc4, 0x3f, 0x25, 0x3d, 0x56, 0xf6, 0x6e,
+ 0xdc, 0xae, 0xc6, 0xb5, 0x7a, 0x6e, 0x8c, 0x45,
+ 0x92, 0xbc, 0x88, 0x17, 0x45, 0xd5, 0x35, 0x96,
+ 0x10, 0xec, 0xaf, 0x61, 0x45, 0xe9, 0x71, 0x26,
+ 0xd2, 0xf4, 0xb4, 0xe6, 0x11, 0x25, 0xf8, 0x8b,
+ 0xe1, 0x6d, 0xb0, 0x05, 0x52, 0x53, 0x96, 0xba,
+ 0x61, 0x9b, 0x94, 0x49, 0xf7, 0x03, 0xa7, 0x1a,
+ 0x85, 0x10, 0x8e, 0x93, 0xb9, 0xf4, 0xad, 0x0d,
+ 0x15, 0x0c, 0x58, 0xa3, 0xea, 0xab, 0x17, 0xbd,
+ 0xbd, 0x88, 0x38, 0x61, 0x73, 0x41, 0xa1, 0xc2,
+ 0x7d, 0x15, 0x8c, 0x2d, 0x6b, 0xb5, 0x19, 0x63,
+ 0x46, 0xb7, 0xc3, 0xf7, 0x62, 0x39, 0xd0, 0xbb,
+ 0x1a, 0x7a, 0xc4, 0x12, 0x11, 0x0f, 0x96, 0xd0,
+ 0x03, 0x96, 0x8a, 0x8f, 0x83, 0xc8, 0xad, 0xb8,
+ 0x12, 0x5c, 0xdd, 0xb3, 0xed, 0xc5, 0x55, 0x92,
+ 0x67, 0xef, 0xf8, 0xdc, 0xfa, 0x60, 0xe2, 0xae,
+ 0x4b, 0x52, 0xce, 0xbc, 0x97, 0x0c, 0x18, 0xbe,
+ 0xc3, 0x11, 0xa3, 0xaa, 0x29, 0xe7, 0xfc, 0xf4,
+ 0x8a, 0x34, 0x49, 0x14, 0x04, 0x29, 0xa2, 0xb1,
+ 0xe4, 0xf1, 0x38, 0x3c, 0xb0, 0x1f, 0x08, 0x97,
+ 0xbd, 0xe1, 0xf4, 0x8e, 0xd8, 0x57, 0x3d, 0x95,
+ 0x38, 0x45, 0x21, 0x74, 0xa2, 0xd4, 0x56, 0xdb,
+ 0x0e, 0x11, 0xc9, 0x11, 0x6c, 0x67, 0x5b, 0xa4,
+ 0xa6, 0x4a, 0x65, 0x78, 0xdb, 0xc3, 0x44, 0x10,
+ 0x40, 0x3f, 0xc3, 0xbf, 0x5d, 0xbf, 0xb1, 0x86,
+ 0xfe, 0xb5, 0xc9, 0x36, 0xcf, 0x3a, 0xc4, 0x04,
+ 0xbe, 0x05, 0x11, 0xb4, 0x54, 0x03, 0x5c, 0x72,
+ 0xcf, 0x1a, 0xbf, 0x3a, 0x02, 0xfd, 0x9d, 0xfa,
+ 0xe8, 0xa4, 0x8e, 0x69, 0x03, 0x96, 0x3e, 0x89,
+ 0xc4, 0x41, 0x13, 0x95, 0x45, 0x6e, 0xc1, 0xb6,
+ 0x8a, 0xdd, 0x0c, 0x6d, 0xc9, 0x6f, 0xd3, 0x4e,
+ 0xb3, 0xd0, 0x94, 0x93, 0x90, 0x08, 0x8e, 0x23,
+ 0x64, 0x96, 0x59, 0x63, 0x8d, 0x82, 0x3a, 0x8c,
+ 0x24, 0xc5, 0x4f, 0x6b, 0x32, 0xa3, 0x3c, 0x6c,
+ 0x2c, 0x70, 0xbc, 0x9a, 0x57, 0x57, 0x1b, 0x18,
+ 0x57, 0x91, 0xb3, 0xc4, 0xc9, 0x12, 0x76, 0xb0,
+ 0x2c, 0x10, 0xa2, 0xe4, 0xd2, 0xdd, 0x96, 0x99,
+ 0x15, 0x81, 0xa6, 0xe7, 0xe6, 0x58, 0x83, 0xcb,
+ 0xc0, 0xa1, 0x71, 0xdb, 0x67, 0x41, 0xda, 0x58,
+ 0x8b, 0x90, 0x5d, 0x32, 0xa7, 0x6d, 0x98, 0x9a,
+ 0x72, 0x9c, 0x17, 0x07, 0x38, 0xc6, 0xad, 0x38,
+ 0x28, 0x56, 0x73, 0x95, 0x70, 0x6b, 0xad, 0x66,
+ 0xc5, 0x91, 0x5b, 0x0c, 0x82, 0x82, 0xaf, 0x4d,
+ 0xf8, 0xba, 0x3f, 0xd1, 0x03, 0xc4, 0x0c, 0x10,
+ 0xa3, 0xc0, 0x85, 0x15, 0xdd, 0x46, 0xe0, 0x12,
+ 0xb0, 0xb6, 0x40, 0x9e, 0x92, 0x38, 0xfd, 0x7e,
+ 0xa3, 0x87, 0xb1, 0x04, 0x08, 0x3c, 0x24, 0xc8,
+ 0xac, 0xa2, 0x5a, 0xb4, 0x28, 0xd6, 0xc2, 0xad,
+ 0x2e, 0xa8, 0x2d, 0xc7, 0x40, 0xb1, 0x0d, 0x1f,
+ 0xfd, 0xbe, 0x7e, 0x60, 0x49, 0xf5, 0x20, 0x4d,
+ 0x23, 0xfd, 0x07, 0x22, 0x04, 0xbf, 0x44, 0xfd,
+ 0x98, 0x99, 0x4d, 0x58, 0xc8, 0x21, 0x7d, 0x59,
+ 0x46, 0xd0, 0x9c, 0x97, 0x59, 0x4f, 0x0a, 0x84,
+ 0xc7, 0x2c, 0x89, 0x84, 0x9e, 0x9a, 0x1e, 0xc7,
+ 0xc1, 0x31, 0x5c, 0x68, 0xf2, 0x80, 0x7f, 0xf6,
+ 0xb9, 0x4e, 0x14, 0xb8, 0xf9, 0xa3, 0xf8, 0x26,
+ 0xc4, 0xf4, 0xad, 0xdd, 0xaf, 0x3b, 0xd5, 0xc6,
+ 0xd2, 0x05, 0xe2, 0xdf, 0xb8, 0x2b, 0x91, 0x26,
+ 0x3c, 0x10, 0xbc, 0x0c, 0x37, 0x51, 0x9b, 0x29,
+ 0x1e, 0x3d, 0x99, 0x6e, 0xa5, 0x8e, 0xcc, 0xd4,
+ 0x59, 0x25, 0xc4, 0xcb, 0x5c, 0xef, 0xbb, 0x25,
+ 0x5b, 0x79, 0xa3, 0x32, 0x4c, 0xbd, 0x1f, 0xaa,
+ 0x2b, 0x5a, 0xc7, 0x65, 0x54, 0x1d, 0x13, 0xad,
+ 0x9f, 0xae, 0x13, 0x29, 0xb5, 0x8e, 0x30, 0x57,
+ 0xef, 0xb6, 0x9d, 0x5b, 0x66, 0xeb, 0xaf, 0x49,
+ 0x6a, 0xc0, 0x56, 0xf9, 0x76, 0x94, 0xc5, 0x91,
+ 0xbf, 0x20, 0xd7, 0x8d, 0x66, 0x7f, 0xe4, 0x63,
+ 0x60, 0x93, 0x47, 0x3f, 0x60, 0x06, 0xe5, 0x93,
+ 0xbd, 0x2b, 0xc4, 0x8e, 0x22, 0xe8, 0xba, 0x49,
+ 0x2d, 0x19, 0xad, 0x87, 0x69, 0x7b, 0x20, 0x6f,
+ 0x66, 0x5c, 0x11, 0x30, 0xeb, 0xc1, 0x6e, 0x15,
+ 0x5f, 0x60, 0x67, 0xb9, 0x80, 0xbb, 0x07, 0x95,
+ 0xf9, 0x6d, 0x30, 0x4b, 0x7a, 0x59, 0xd1, 0x99,
+ 0x11, 0x6c, 0x0d, 0x92, 0x81, 0x8e, 0xe3, 0xcb,
+ 0x72, 0x3f, 0x4e, 0x37, 0x89, 0x8f, 0xff, 0x72,
+ 0xc5, 0x3d, 0x27, 0x41, 0x2c, 0xc4, 0x74, 0xd2,
+ 0x39, 0xe7, 0x95, 0xf4, 0xf7, 0xac, 0xcc, 0x76,
+ 0x6e, 0x55, 0xe0, 0x98, 0x98, 0x64, 0xde, 0xdf,
+ 0xa2, 0x70, 0x07, 0x4c, 0x69, 0x5a, 0xe4, 0xec,
+ 0x88, 0x51, 0xd3, 0x2f, 0xba, 0x49, 0x2c, 0x70,
+ 0x55, 0x68, 0x90, 0x6c, 0x83, 0xb3, 0xfe, 0xf0,
+ 0xe8, 0x6d, 0x30, 0x60, 0x74, 0x70, 0x96, 0xa7,
+ 0xce, 0x4c, 0x61, 0x36, 0xfa, 0x3e, 0x07, 0x1f,
+ 0x49, 0xe9, 0x50, 0xea, 0x1f, 0xf2, 0x6c, 0x6c,
+ 0x87, 0xa7, 0x4f, 0x2e, 0x1b, 0x3d, 0x26, 0xde,
+ 0x3a, 0x2f, 0xda, 0x7b, 0x1c, 0x6c, 0x1f, 0x37,
+ 0xd1, 0xdd, 0x58, 0xb4, 0xe1, 0x45, 0x9e, 0xbb,
+ 0xe8, 0xae, 0xed, 0xa1, 0x4b, 0x83, 0x50, 0xfe,
+ 0x98, 0xb7, 0xc1, 0x7e, 0x50, 0x03, 0xc4, 0xae,
+ 0x4c, 0x07, 0x82, 0xc3, 0x59, 0x94, 0x58, 0x45,
+ 0x6a, 0xf8, 0xd4, 0x20, 0xf2, 0x39, 0xf4, 0xb3,
+ 0x34, 0xab, 0xb0, 0xc3, 0x73, 0xc6, 0xd9, 0x7f,
+ 0x1c, 0x13, 0xe1, 0x18, 0x23, 0xa5, 0xff, 0x53,
+ 0xe7, 0x71, 0x79, 0xe3, 0x66, 0xc3, 0x5b, 0xe4,
+ 0x07, 0xf4, 0x1f, 0xe6, 0xd4, 0x9d, 0xb9, 0x42,
+ 0x4e, 0xce, 0x91, 0x94, 0x69, 0xea, 0xa7, 0x79,
+ 0x70, 0x84, 0x8a, 0x2d, 0xe7, 0x61, 0xca, 0x1f,
+ 0xf0, 0x8d, 0x88, 0x7c, 0x15, 0xa9, 0x30, 0x38,
+ 0x86, 0x0b, 0x49, 0x1c, 0xf3, 0x92, 0xfd, 0xa8,
+ 0xf6, 0x91, 0x1f, 0x42, 0x95, 0x9b, 0x29, 0xdc,
+ 0x35, 0x2c, 0xf8, 0xc9, 0xf1, 0x77, 0x60, 0xe3,
+ 0x0a, 0x7b, 0xa5, 0x21, 0xff, 0xb2, 0x93, 0x45,
+ 0x50, 0xf2, 0xb9, 0xce, 0xd4, 0xbd, 0x68, 0x82,
+ 0x31, 0xea, 0xa8, 0x7b, 0x4e, 0x0b, 0x12, 0x1d,
+ 0x07, 0x97, 0x91, 0xb2, 0xb7, 0x6e, 0xeb, 0x76,
+ 0xf5, 0x3b, 0x1a, 0xa4, 0x79, 0x83, 0x80, 0xfc,
+ 0x0f, 0x80, 0x73, 0xfd, 0x54, 0x2c, 0xa6, 0x14,
+ 0xb8, 0xad, 0xdd, 0x2c, 0x84, 0xf7, 0xd9, 0xf1,
+ 0x6f, 0x74, 0x2c, 0xe7, 0xe7, 0xfa, 0x16, 0x03,
+ 0x3e, 0xe5, 0xa3, 0x69, 0x59, 0x3c, 0x16, 0x59,
+ 0x00, 0xa2, 0x8a, 0xa4, 0x37, 0x06, 0xbe, 0x10,
+ 0xef, 0x24, 0xec, 0x06, 0x84, 0xb6, 0xd2, 0x23,
+ 0xa8, 0x00, 0x10, 0x06, 0x80, 0xdd, 0x6a, 0xb7,
+ 0x21, 0x50, 0xae, 0xf0, 0x51, 0xba, 0x5b, 0x29,
+ 0xe0, 0x8f, 0xb0, 0x11, 0x11, 0x47, 0x79, 0x47,
+ 0x66, 0x42, 0x44, 0x8e, 0x00, 0x6c, 0x13, 0x7f,
+ 0xcc, 0xff, 0xa1, 0xcb, 0x36, 0xf6, 0x2d, 0x09,
+ 0x72, 0x45, 0x81, 0xce, 0xf6, 0x84, 0xff, 0x51,
+ 0xf3, 0x7b, 0x4b, 0x44, 0xcb, 0xeb, 0xec, 0xbd,
+ 0x2d, 0xee, 0xe6, 0x71, 0x6f, 0x8a, 0xa4, 0x2b,
+ 0x28, 0xdf, 0x15, 0xa5, 0xfc, 0xce, 0xfe, 0x95,
+ 0x2d, 0xda, 0x17, 0x40, 0x0c, 0xce, 0xad, 0x53,
+ 0xb1, 0x18, 0x7b, 0x26, 0x85, 0x82, 0xce, 0x77,
+ 0x44, 0x2c, 0x4f, 0x78, 0xdd, 0x1c, 0x5b, 0xd0,
+ 0x0e, 0xe9, 0x9b, 0xf2, 0xa2, 0x25, 0xeb, 0x74,
+ 0x90, 0x62, 0x7a, 0x43, 0xe4, 0x91, 0xf8, 0xad,
+ 0x52, 0xbd, 0xbe, 0xec, 0x83, 0x06, 0x5a, 0x4b,
+ 0x2b, 0x06, 0x6e, 0x3a, 0xc6, 0xec, 0x60, 0x0e,
+ 0x0a, 0x86, 0xbf, 0x69, 0x21, 0x74, 0x5a, 0xd2,
+ 0xbf, 0x79, 0x3b, 0xd4, 0x17, 0xc4, 0x94, 0x25,
+ 0xed, 0x6c, 0xec, 0x2a, 0xeb, 0x3f, 0xf9, 0x3a,
+ 0xba, 0xf4, 0x4d, 0xda, 0xfc, 0x6e, 0x46, 0x93,
+ 0xd7, 0x24, 0x2f, 0xb2, 0xec, 0xbb, 0x2f, 0x16,
+ 0x7a, 0xee, 0x2a, 0xcf, 0xf6, 0x2e, 0xf5, 0x5f,
+ 0xb1, 0x79, 0xdf, 0xc1, 0x46, 0xb1, 0xc0, 0x60,
+ 0x65, 0x88, 0x96, 0x75, 0x5e, 0xfd, 0x29, 0xe4,
+ 0xf0, 0x01, 0x9d, 0xcd, 0x8f, 0xf8, 0x16, 0xb4,
+ 0xfd, 0x6f, 0x27, 0x6b, 0xf9, 0x3c, 0x18, 0xb6,
+ 0x94, 0x67, 0xb4, 0x4c, 0x29, 0x53, 0xa3, 0x83,
+ 0xa2, 0x44, 0x4b, 0xfd, 0x1d, 0xc3, 0xe4, 0xe0,
+ 0x5c, 0x3c, 0x45, 0x25, 0x02, 0x68, 0x67, 0xdc,
+ 0x84, 0x92, 0x1b, 0x5b, 0x42, 0xf7, 0x19, 0x6d,
+ 0xbc, 0x3e, 0x0f, 0x9d, 0xe4, 0xf2, 0x2d, 0x48,
+ 0xc3, 0xc4, 0x8c, 0xa7, 0x58, 0x2f, 0x55, 0xdd,
+ 0x37, 0x22, 0x2c, 0x34, 0xba, 0x5c, 0x48, 0x7a,
+ 0x05, 0x5b, 0x75, 0x62, 0x74, 0x17, 0x1d, 0xec,
+ 0xd3, 0x61, 0x6f, 0xbc, 0x31, 0x49, 0x9b, 0xc1,
+ 0x6e, 0x53, 0x8e, 0xf3, 0xea, 0x00, 0x7f, 0xad,
+ 0xe9, 0xd2, 0xb1, 0x3e, 0x92, 0x9e, 0x72, 0xe9,
+ 0x09, 0xfe, 0x61, 0x82, 0x75, 0x41, 0xc4, 0x9e,
+ 0xe9, 0x81, 0x7b, 0xe4, 0x60, 0x4e, 0x2d, 0xf5,
+ 0xb6, 0x71, 0x43, 0x15, 0x43, 0x33, 0x34, 0x3e,
+ 0x7d, 0x8f, 0xb5, 0xc9, 0xe7, 0x13, 0xdc, 0x95,
+ 0xf1, 0x18, 0x43, 0x83, 0x68, 0x3b, 0x2c, 0x11,
+ 0xc2, 0x75, 0x34, 0x44, 0x96, 0x70, 0x5e, 0xfc,
+ 0x95, 0x10, 0x06, 0xe9, 0xff, 0xd8, 0x4f, 0x51,
+ 0x39, 0x9e, 0xb8, 0x00, 0x1c, 0x07, 0x9f, 0x83,
+ 0xfe, 0x3f, 0x3b, 0xcb, 0xda, 0xfe, 0xbe, 0x61,
+ 0xe8, 0xa9, 0x13, 0xf5, 0x0f, 0xcf, 0x69, 0xf1,
+ 0xc2, 0xcf, 0xf2, 0x2f, 0xe9, 0x06, 0x3b, 0x75,
+ 0x1e, 0xd2, 0x01, 0x85, 0x1b, 0xa3, 0x44, 0x55,
+ 0x4c, 0x79, 0x23, 0xeb, 0x69, 0xa2, 0x3d, 0x30,
+ 0x45, 0xd8, 0xc5, 0x95, 0xfb, 0xe8, 0x86, 0x36,
+ 0x67, 0xb5, 0x8c, 0x81, 0x1d, 0x39, 0xfe, 0x0e,
+ 0x4d, 0x53, 0xaf, 0x06, 0x7a, 0x14, 0xcc, 0xf0,
+ 0xba, 0x04, 0xf8, 0x43, 0x07, 0x19, 0xc0, 0x2e,
+ 0xd6, 0x61, 0xb8, 0xf5, 0x4c, 0x2f, 0x49, 0x27,
+ 0x70, 0xd1, 0x14, 0xa3, 0xbc, 0x5f, 0xdd, 0x15,
+ 0x52, 0x0e, 0x6f, 0x4f, 0xbe, 0x8a, 0x6d, 0xf7,
+ 0x44, 0x6a, 0x52, 0x76, 0xb7, 0xb3, 0x7e, 0x3c,
+ 0xd7, 0x3a, 0x44, 0xf3, 0x0c, 0x87, 0xa4, 0x85,
+ 0x19, 0x96, 0xbd, 0x84, 0x60, 0x05, 0x3b, 0x8f,
+ 0x2d, 0xfa, 0x1c, 0x2e, 0xae, 0x43, 0xca, 0xca,
+ 0x9a, 0x9f, 0xd5, 0x82, 0xa2, 0x15, 0x86, 0xad,
+ 0xc7, 0x88, 0xc6, 0x8a, 0x1f, 0xdd, 0xac, 0x12,
+ 0x82, 0x73, 0x06, 0x01, 0xf2, 0x8a, 0x81, 0xeb,
+ 0x00, 0x05, 0x77, 0xbd, 0xea, 0xf5, 0x25, 0xc6,
+ 0x1d, 0xce, 0xac, 0xa9, 0x5d, 0x16, 0xa0, 0x17,
+ 0xbb, 0x46, 0xde, 0x15, 0x2c, 0xfa, 0x8b, 0xf7,
+ 0x73, 0xa6, 0x5c, 0x93, 0x2f, 0xa4, 0x05, 0x1a,
+ 0x2b, 0x44, 0xe3, 0x28, 0xab, 0xfc, 0x14, 0x31,
+ 0xcd, 0xae, 0x9b, 0xed, 0xa5, 0xe6, 0x07, 0x24,
+ 0x22, 0xdf, 0xdd, 0x42, 0x61, 0x46, 0x2c, 0x54,
+ 0x5f, 0x35, 0x72, 0x76, 0xa7, 0xda, 0x3d, 0xff,
+ 0x93, 0x1b, 0x89, 0x4d, 0xe4, 0x49, 0xa5, 0xaa,
+ 0xd4, 0x59, 0x16, 0xfe, 0xd6, 0xf6, 0x12, 0xc5,
+ 0x96, 0x1a, 0x3d, 0x3b, 0x12, 0xac, 0x5f, 0x40,
+ 0xaa, 0x42, 0x7f, 0x8f, 0x24, 0xa3, 0x70, 0x10,
+ 0x03, 0x68, 0x73, 0x2e, 0x20, 0x04, 0x63, 0xdb,
+ 0x08, 0xce, 0x22, 0x17, 0x49, 0xf7, 0x43, 0xf1,
+ 0x20, 0x23, 0x2b, 0x5b, 0x50, 0x09, 0x22, 0xfa,
+ 0x38, 0x70, 0x32, 0x08, 0x0e, 0xda, 0xf2, 0xcc,
+ 0xef, 0x9f, 0xe0, 0x4f, 0x4f, 0x6c, 0x8f, 0x76,
+ 0x42, 0x6f, 0x91, 0xa1, 0xdb, 0x34, 0xcd, 0xa6,
+ 0x45, 0xab, 0x85, 0x3f, 0xf6, 0x5f, 0xa8, 0x73,
+ 0x21, 0x58, 0x7b, 0x5b, 0xa3, 0xcc, 0x0b, 0x1f,
+ 0x69, 0x64, 0x1d, 0x5e, 0x13, 0x6d, 0x35, 0x27,
+ 0x02, 0x99, 0xce, 0x64, 0x0c, 0x13, 0xaf, 0x10,
+ 0x91, 0x46, 0x0e, 0x9c, 0x8e, 0xb8, 0x4f, 0x25,
+ 0x50, 0x90, 0xd0, 0x16, 0x41, 0xc6, 0x02, 0xec,
+ 0x82, 0x47, 0xf4, 0xa0, 0x71, 0x72, 0xcd, 0xf0,
+ 0x7a, 0x3e, 0x60, 0x14, 0xe3, 0x0a, 0x8a, 0xe5,
+ 0xe6, 0x1c, 0x32, 0x48, 0xb3, 0x77, 0xb5, 0x0d,
+ 0x50, 0xbc, 0x98, 0xcd, 0xb9, 0xd2, 0xb0, 0xc8,
+ 0x7a, 0x7b, 0xd3, 0xb6, 0x69, 0xaa, 0x6e, 0xc2,
+ 0x22, 0x7d, 0x2a, 0xbd, 0x3a, 0xfc, 0x11, 0x3f,
+ 0xdd, 0x3e, 0x49, 0xfe, 0xe7, 0x49, 0x6b, 0x5b,
+ 0x95, 0x35, 0xf9, 0xa1, 0x39, 0x66, 0x85, 0xe0,
+ 0x14, 0x91, 0x1f, 0xdc, 0x19, 0x65, 0x35, 0x3c,
+ 0xdf, 0x5e, 0xf2, 0x5e, 0xad, 0x49, 0x67, 0x16,
+ 0xbd, 0x3b, 0x4a, 0xdb, 0x44, 0xb8, 0xaf, 0xff,
+ 0x4e, 0x88, 0x5c, 0x42, 0x40, 0xfc, 0x2c, 0xaf,
+ 0xb1, 0xc4, 0x58, 0x97, 0xf6, 0xeb, 0xaf, 0x1c,
+ 0xac, 0xfe, 0x91, 0xcd, 0x5d, 0xa1, 0x8f, 0x24,
+ 0x8f, 0x02, 0x3c, 0xea, 0x48, 0x0b, 0xb4, 0x95,
+ 0x45, 0xf7, 0xc7, 0xbc, 0x2a, 0x6a, 0x99, 0xd2,
+ 0x0f, 0xed, 0x70, 0xe6, 0xbb, 0x95, 0x8d, 0x08,
+ 0x65, 0x8b, 0xe0, 0x19, 0xd2, 0x61, 0x68, 0xe3,
+ 0x88, 0x67, 0xd5, 0x89, 0x97, 0xd0, 0x16, 0x3d,
+ 0xa5, 0x8f, 0xfc, 0x06, 0xa3, 0xd8, 0xa0, 0x88,
+ 0xc0, 0x5c, 0xf9, 0x03, 0xd3, 0x64, 0x2c, 0xf0,
+ 0xb7, 0x63, 0x3c, 0xfb, 0xdc, 0x9a, 0x19, 0x35,
+ 0x2f, 0x8b, 0xe8, 0x3e, 0x7b, 0xd4, 0x90, 0xd7,
+ 0x18, 0xbb, 0x62, 0xaa, 0x90, 0x54, 0xbe, 0x95,
+ 0xbc, 0x29, 0x9f, 0xf2, 0xca, 0x62, 0x0f, 0xfa,
+ 0x8d, 0xe7, 0x7c, 0xad, 0x3e, 0xe5, 0x6c, 0xa9,
+ 0x7f, 0xa7, 0xd4, 0xeb, 0x87, 0x05, 0xe3, 0xd8,
+ 0xa4, 0x66, 0x0a, 0xc9, 0x0e, 0x61, 0x47, 0xaf,
+ 0x86, 0x50, 0x61, 0x41, 0x23, 0x35, 0x59, 0x41,
+ 0x17, 0xa2, 0xe7, 0x33, 0x6e, 0x8b, 0x4d, 0x10,
+ 0x83, 0x70, 0xaa, 0xbd, 0x66, 0x2f, 0x71, 0x5e,
+ 0x8e, 0x15, 0x5b, 0x50, 0x8c, 0x0e, 0x77, 0xd4,
+ 0x66, 0x34, 0x4a, 0x3b, 0x6d, 0x6e, 0x1a, 0x28,
+ 0xcf, 0x8d, 0x4b, 0x8a, 0xba, 0x19, 0xfe, 0xb3,
+ 0xbe, 0x8b, 0x11, 0x98, 0xa3, 0x8e, 0x00, 0x5a,
+ 0x9b, 0x0e, 0x57, 0x42, 0x9d, 0xd8, 0x8a, 0x61,
+ 0xd8, 0x2d, 0x74, 0x7e, 0xdb, 0x49, 0xe0, 0x33,
+ 0xaa, 0xe5, 0xc7, 0x1a, 0x5e, 0x82, 0x8b, 0x09,
+ 0x2c, 0xc1, 0xeb, 0x12, 0x20, 0xb3, 0xc4, 0x7b,
+ 0x6b, 0xbb, 0xb6, 0x70, 0x29, 0x01, 0x7e, 0x36,
+ 0xf6, 0x8c, 0x6a, 0xc9, 0x5d, 0x34, 0x00, 0xec,
+ 0x4d, 0x5b, 0x32, 0xdb, 0xe8, 0xda, 0x87, 0x66,
+ 0xe3, 0x17, 0xd2, 0x9a, 0x85, 0x87, 0xc7, 0x1d,
+ 0xfd, 0x14, 0x99, 0xdc, 0xa1, 0xa1, 0xef, 0xa4,
+ 0xae, 0x7e, 0x4d, 0xa4, 0xd1, 0x13, 0x03, 0x85,
+ 0x21, 0xe6, 0x55, 0xef, 0xec, 0xf4, 0x88, 0xe5,
+ 0x13, 0x81, 0x88, 0xcd, 0xd5, 0x68, 0xd4, 0x76,
+ 0x0c, 0x64, 0x0a, 0x42, 0xc1, 0x16, 0x70, 0x00,
+ 0x6b, 0xec, 0x32, 0x14, 0xab, 0xa2, 0x4b, 0x19,
+ 0x9f, 0xde, 0x8a, 0xa6, 0x92, 0x95, 0x97, 0x4a,
+ 0x72, 0x3d, 0x8f, 0x9d, 0x1b, 0x15, 0x2e, 0x06,
+ 0x94, 0x65, 0xc3, 0x00, 0xf9, 0xe7, 0x32, 0x41,
+ 0x54, 0xdd, 0x35, 0xf1, 0x0a, 0x63, 0xc9, 0xfd,
+ 0x38, 0x1e, 0xa0, 0x17, 0xa2, 0xbb, 0x7b, 0xc0,
+ 0x08, 0xd1, 0xdd, 0x76, 0x8d, 0xb4, 0x98, 0x28,
+ 0xf2, 0x5e, 0xe4, 0x8f, 0xcd, 0xcb, 0x72, 0x5c,
+ 0x8b, 0x2f, 0x73, 0x09, 0x88, 0x92, 0x91, 0xf1,
+ 0xb7, 0x68, 0xb1, 0xec, 0xa8, 0xc3, 0x64, 0x2e,
+ 0x15, 0x6f, 0x02, 0x37, 0x59, 0x47, 0x38, 0x62,
+ 0x2c, 0x17, 0xdb, 0x1e, 0xa7, 0xb8, 0x10, 0xb2,
+ 0x2b, 0x63, 0x85, 0x0b, 0x5c, 0xcb, 0x6f, 0xb4,
+ 0x5c, 0x20, 0x94, 0x04, 0xf8, 0x85, 0x9b, 0x5e,
+ 0x78, 0xff, 0x7a, 0xc8, 0x69, 0x14, 0x70, 0xb0,
+ 0xac, 0x89, 0x3f, 0x70, 0xc6, 0x67, 0x76, 0xd3,
+ 0x12, 0x22, 0x81, 0x79, 0xfc, 0x0d, 0x07, 0xce,
+ 0xc1, 0xb6, 0x4a, 0x7c, 0x7d, 0x89, 0xbc, 0x94,
+ 0xf8, 0x9d, 0x59, 0xa8, 0xe5, 0x58, 0xe1, 0x01,
+ 0xef, 0xa8, 0x26, 0x8c, 0x78, 0x2f, 0xeb, 0xf5,
+ 0xfb, 0xa3, 0x1c, 0x5a, 0xf6, 0x2a, 0x96, 0xeb,
+ 0x36, 0x8c, 0xfd, 0xc4, 0x08, 0x10, 0x72, 0xaa,
+ 0xd8, 0xc5, 0x8a, 0xf8, 0xe5, 0x1f, 0xb9, 0x9d,
+ 0x9a, 0x65, 0x97, 0x90, 0x95, 0xf8, 0x79, 0xae,
+ 0x77, 0x13, 0x87, 0xc8, 0x2b, 0x30, 0x71, 0x3d,
+ 0x69, 0xd0, 0x0a, 0x7a, 0xbd, 0x9d, 0x4c, 0x31,
+ 0x63, 0xfe, 0x14, 0x64, 0x8d, 0x9e, 0xda, 0xcb,
+ 0x0a, 0xd2, 0x77, 0x31, 0xb7, 0x17, 0x26, 0xfc,
+ 0x91, 0x4e, 0x32, 0xa9, 0x03, 0x4a, 0x53, 0xef,
+ 0xb7, 0x3f, 0x79, 0x45, 0x26, 0x50, 0xbf, 0x3a,
+ 0x73, 0x32, 0x07, 0x66, 0xf0, 0x7d, 0xab, 0x34,
+ 0x41, 0x74, 0xba, 0x56, 0x0c, 0x43, 0xe8, 0x0a,
+ 0x39, 0x01, 0xce, 0x6f, 0xd8, 0x18, 0xc3, 0xa1,
+ 0x3b, 0x86, 0xf2, 0x2f, 0xf2, 0x25, 0x4f, 0x65,
+ 0xf5, 0x84, 0x88, 0x99, 0x3d, 0xdc, 0x4e, 0x38,
+ 0xc4, 0xc2, 0xf2, 0x57, 0x07, 0x6a, 0xe8, 0x58,
+ 0xe4, 0x12, 0xbf, 0xcf, 0xe2, 0x3d, 0xd1, 0xac,
+ 0x78, 0xef, 0x17, 0x38, 0x26, 0x28, 0xc0, 0x7a,
+ 0x36, 0x9a, 0x8a, 0xde, 0xe0, 0xd5, 0x90, 0x58,
+ 0x62, 0x26, 0xc2, 0x02, 0x3d, 0xbd, 0xbe, 0x94,
+ 0xd2, 0x42, 0xa0, 0x51, 0xcc, 0x53, 0x70, 0xdb,
+ 0x16, 0xe2, 0x15, 0x82, 0x76, 0xf8, 0xc9, 0x91,
+ 0x86, 0xd4, 0x67, 0xf6, 0xa1, 0xfb, 0x38, 0x8a,
+ 0x0f, 0x94, 0x98, 0x01, 0xbb, 0x31, 0x4c, 0x9f,
+ 0xea, 0xf8, 0x7e, 0xc0, 0xbd, 0x05, 0x69, 0xeb,
+ 0x25, 0x32, 0xd1, 0xd0, 0x08, 0xa3, 0x9f, 0x5c,
+ 0x18, 0x40, 0x02, 0xd0, 0xea, 0xb2, 0xf9, 0x4f,
+ 0x77, 0xcc, 0x18, 0xa6, 0x2a, 0x54, 0xa0, 0x1c,
+ 0xc1, 0x9b, 0x1d, 0x87, 0x29, 0xcd, 0x79, 0x33,
+ 0xc6, 0x33, 0x26, 0x68, 0x3a, 0x5f, 0x2b, 0xe3,
+ 0xb4, 0x24, 0xa0, 0x20, 0xf9, 0x90, 0xcd, 0xad,
+ 0x34, 0x66, 0x90, 0x93, 0x22, 0xfe, 0x77, 0xc9,
+ 0xb3, 0x83, 0x2d, 0x3c, 0xda, 0x71, 0x81, 0x15,
+ 0xb1, 0xda, 0x30, 0x8a, 0x9a, 0xf5, 0x21, 0x86,
+ 0x8e, 0x40, 0x36, 0x71, 0x45, 0x05, 0x7a, 0xcc,
+ 0xc7, 0x0b, 0x06, 0x4c, 0x14, 0xd7, 0x09, 0x20,
+ 0x8c, 0xb3, 0xbc, 0x7b, 0xa7, 0xed, 0x71, 0x46,
+ 0xc3, 0xe5, 0xd8, 0xe1, 0xca, 0x9c, 0xfb, 0x2a,
+ 0xc2, 0x19, 0xb1, 0xfd, 0xbd, 0x94, 0xae, 0x58,
+ 0xb6, 0x89, 0x7d, 0x95, 0x06, 0xe3, 0xd3, 0xe1,
+ 0xf8, 0x7b, 0x35, 0xcb, 0x31, 0x15, 0xb6, 0xa1,
+ 0x34, 0x78, 0xba, 0xbc, 0x94, 0xb0, 0xf9, 0x9f,
+ 0x0c, 0xbe, 0xdc, 0x2e, 0x1c, 0xa6, 0x33, 0xe4,
+ 0x75, 0x9a, 0xa8, 0xbe, 0x0d, 0xd6, 0xfd, 0x30,
+ 0x1b, 0x43, 0xfa, 0x26, 0x5a, 0x05, 0xf4, 0x1a,
+ 0x7c, 0x8d, 0x0a, 0x64, 0xb7, 0xe3, 0x13, 0x06,
+ 0x10, 0xf5, 0xb4, 0xf0, 0xd7, 0xef, 0x35, 0xbf,
+ 0x26, 0x27, 0x60, 0x65, 0x85, 0xc7, 0xd1, 0xef,
+ 0xf7, 0x0c, 0x33, 0x6f, 0x84, 0x99, 0xb4, 0xc7,
+ 0xd4, 0x4f, 0x59, 0x64, 0x92, 0xa3, 0xe9, 0xff,
+ 0x13, 0x20, 0x29, 0x4e, 0x5c, 0x66, 0x86, 0x88,
+ 0xd1, 0x09, 0x0c, 0xab, 0xc3, 0xc7, 0xd8, 0xf6,
+ 0x2f, 0x5f, 0x65, 0x79, 0xbe, 0xbf, 0xdd, 0xf6,
+ 0x30, 0x33, 0x5c, 0x6f, 0x85, 0x91, 0xdf, 0xe1,
+ 0xe6, 0x5c, 0x78, 0x7f, 0xa4, 0xa5, 0xa6, 0xf9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x09, 0x11, 0x18, 0x21, 0x28,
+ 0x30, 0x39, 0x40, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0xb8, 0xdd, 0x1b, 0x8f, 0x82, 0x82, 0x8e, 0x9f,
+ 0x0a, 0x02, 0x15, 0xbd, 0x8f, 0xa8, 0x63, 0x72,
+ 0xd4, 0x3f, 0x9c, 0xcf, 0xea, 0x88, 0x2a, 0x53,
+ 0x95, 0x67, 0xe9, 0x96, 0xd0, 0xe3, 0x7e, 0x3c,
+ 0x95, 0x1c, 0xc0, 0x8f, 0x83, 0x5e, 0x86, 0x4a,
+ 0xd1, 0x52, 0x41, 0x68, 0xad, 0x66, 0xa7, 0xf8,
+ 0xc8, 0xe5, 0xed, 0x99, 0x55, 0xf9, 0xce, 0xd6,
+ 0x85, 0x3a, 0x8c, 0xe1, 0x48, 0xca, 0x2a, 0xcc,
+ 0x7b, 0x4d, 0x4e, 0xe8, 0x47, 0x75, 0x35, 0x92,
+ 0x24, 0xad, 0x7f, 0x35, 0x1f, 0xa6, 0x6c, 0xa2,
+ 0x6d, 0xab, 0xe3, 0xc8, 0xf7, 0xde, 0xaa, 0x2d,
+ 0xb4, 0x88, 0xbb, 0x55, 0x17, 0x49, 0x2a, 0x71,
+ 0x17, 0xda, 0x4d, 0xc6, 0xc5, 0xc1, 0xd6, 0xc6,
+ 0xb7, 0x8b, 0xa2, 0x86, 0xbd, 0x19, 0x2d, 0xc8,
+ 0x42, 0x3b, 0xa6, 0x56, 0x82, 0xc9, 0x4e, 0xfd,
+ 0x96, 0x46, 0xe2, 0xb8, 0x2b, 0xb4, 0x1f, 0x42,
+ 0xb6, 0x4f, 0x25, 0xa4, 0x6e, 0xe3, 0xad, 0xd3,
+ 0xc1, 0xc6, 0x54, 0xca, 0x62, 0x98, 0xf5, 0x8d,
+ 0xc0, 0xc2, 0x58, 0xcb, 0xf2, 0x22, 0x19, 0xa4,
+ 0x4e, 0xdc, 0xea, 0x7b, 0x36, 0x9f, 0x68, 0x06,
+ 0x9d, 0x24, 0x3e, 0xa3, 0xef, 0xc7, 0x00, 0xfc,
+ 0xb3, 0x78, 0x41, 0x4c, 0xc8, 0x9e, 0x83, 0x93,
+ 0x64, 0x1b, 0x14, 0x80, 0xdb, 0xcc, 0xfd, 0xa7,
+ 0xe2, 0x56, 0x13, 0x93, 0x79, 0xfd, 0xf9, 0xd2,
+ 0x02, 0x71, 0x9c, 0xec, 0x2a, 0xa6, 0x39, 0xfe,
+ 0xac, 0x25, 0x3c, 0x4b, 0x8c, 0xac, 0x8b, 0x82,
+ 0x3c, 0xde, 0xb0, 0x63, 0x52, 0x7f, 0xc5, 0xfe,
+ 0x8f, 0x90, 0xa1, 0x18, 0x71, 0xdd, 0x10, 0xb8,
+ 0xc7, 0xf6, 0x4c, 0xaa, 0x87, 0xf2, 0xec, 0x66,
+ 0xd7, 0xfe, 0x8a, 0xf0, 0x0e, 0x70, 0x88, 0x9d,
+ 0x21, 0x9e, 0x07, 0xe6, 0x11, 0x61, 0xcc, 0x19,
+ 0xb2, 0xa4, 0x79, 0x98, 0xff, 0xdc, 0xe2, 0xf5,
+ 0x4d, 0x04, 0xd9, 0x94, 0x51, 0x89, 0x28, 0x06,
+ 0xb5, 0x8a, 0x7b, 0xb5, 0x6d, 0x03, 0x24, 0xe4,
+ 0x37, 0x60, 0x43, 0xf4, 0x08, 0x26, 0xcc, 0xa1,
+ 0x32, 0xeb, 0x28, 0x1b, 0x70, 0x5c, 0xc0, 0x2f,
+ 0xcf, 0x7b, 0x05, 0x2a, 0x0f, 0x38, 0xf4, 0x15,
+ 0x1a, 0xc9, 0xbd, 0x94, 0x9d, 0x4a, 0x4c, 0xd7,
+ 0x63, 0x31, 0x83, 0xab, 0xc5, 0x0d, 0xb0, 0xce,
+ 0xfc, 0x24, 0x1f, 0xee, 0xa6, 0xac, 0xe5, 0x85,
+ 0xe3, 0xcc, 0x29, 0xf4, 0x9b, 0x21, 0x1a, 0x1a,
+ 0xa9, 0x5a, 0xf6, 0x5e, 0x2e, 0xe1, 0xd8, 0xa0,
+ 0x1e, 0x04, 0xdf, 0x76, 0xfe, 0xf2, 0x34, 0x7a,
+ 0xa1, 0xfd, 0xda, 0x9c, 0x8e, 0x9b, 0xd3, 0x6f,
+ 0xf3, 0x92, 0x19, 0xd6, 0x8d, 0xf5, 0x61, 0x1e,
+ 0xd6, 0x9d, 0xb9, 0x15, 0x2d, 0xcb, 0x5c, 0xb0,
+ 0x6f, 0x86, 0xb6, 0xa1, 0x5e, 0x2c, 0x88, 0x59,
+ 0xc7, 0x39, 0xfb, 0x20, 0xc9, 0x07, 0x12, 0x16,
+ 0x92, 0x92, 0xdb, 0x59, 0xaf, 0x63, 0xe3, 0xb4,
+ 0x05, 0x5e, 0x4a, 0x62, 0xcf, 0xe7, 0x07, 0x39,
+ 0x74, 0x7e, 0xc8, 0xc3, 0x1d, 0x2e, 0x07, 0xa1,
+ 0x25, 0x33, 0x6e, 0xce, 0x35, 0xfd, 0x61, 0xd8,
+ 0xd5, 0xb4, 0x6d, 0xe2, 0xd1, 0x0a, 0x04, 0x95,
+ 0x4b, 0xc9, 0x78, 0x4e, 0xb0, 0xa9, 0xf6, 0x71,
+ 0xc3, 0x8e, 0xff, 0xea, 0xcb, 0x0b, 0x7b, 0xca,
+ 0x13, 0x2a, 0x23, 0x4b, 0x4d, 0x0a, 0xad, 0x6f,
+ 0x9b, 0xa3, 0x58, 0x69, 0x5b, 0xdc, 0x5c, 0xaa,
+ 0xfc, 0x8e, 0xbc, 0xf9, 0xcd, 0x6f, 0xf5, 0x1c,
+ 0xe8, 0x66, 0x10, 0x61, 0xac, 0x5c, 0xb7, 0x78,
+ 0x8a, 0x4e, 0x1f, 0xce, 0x7f, 0x35, 0xfc, 0x6c,
+ 0x1a, 0xd7, 0xf3, 0x7b, 0x95, 0x2d, 0x2b, 0x8d,
+ 0xf9, 0x97, 0x1d, 0x6e, 0x2d, 0x1b, 0x92, 0xd7,
+ 0xcd, 0x5f, 0xac, 0x0b, 0x18, 0xdf, 0x04, 0x09,
+ 0x69, 0x4e, 0x8e, 0xb7, 0xe2, 0x63, 0x30, 0xb7,
+ 0x72, 0x32, 0x25, 0x5c, 0x7e, 0x30, 0xdd, 0x1a,
+ 0x4f, 0x9f, 0x9f, 0x32, 0xe0, 0x63, 0x2c, 0x68,
+ 0x9d, 0xc6, 0xd5, 0x63, 0x5e, 0x8c, 0x41, 0x00,
+ 0xf3, 0x70, 0x2e, 0xf2, 0x7d, 0x1a, 0x59, 0x84,
+ 0xc5, 0xc5, 0x3d, 0xfd, 0xf5, 0x36, 0xba, 0x00,
+ 0x34, 0x7b, 0x87, 0x5c, 0xa0, 0xe2, 0xd1, 0x5c,
+ 0x26, 0xd7, 0xd6, 0xc6, 0x4a, 0x0c, 0xfe, 0xde,
+ 0xf0, 0xc8, 0xa4, 0x44, 0xea, 0xc3, 0x86, 0xcf,
+ 0x70, 0xeb, 0x01, 0xfb, 0x3e, 0xa4, 0xb4, 0x20,
+ 0x10, 0x23, 0x5e, 0xde, 0x52, 0xf2, 0x19, 0x20,
+ 0x62, 0x67, 0x26, 0x76, 0x5c, 0x70, 0xd2, 0x5c,
+ 0xd1, 0xbe, 0x68, 0xa0, 0xe0, 0x48, 0x12, 0xe1,
+ 0xda, 0x4c, 0x25, 0x7f, 0xf2, 0xca, 0xf6, 0xd6,
+ 0x4d, 0xd6, 0x10, 0x5e, 0xe5, 0xab, 0x47, 0x5b,
+ 0x03, 0xb7, 0x0c, 0x1c, 0xca, 0x09, 0x2c, 0x0f,
+ 0x6f, 0x50, 0x6f, 0xc4, 0x2e, 0x6c, 0x1d, 0x95,
+ 0x4a, 0xee, 0x1d, 0x67, 0x37, 0x12, 0x91, 0xef,
+ 0xd4, 0x3b, 0xc4, 0xb0, 0x82, 0x37, 0x7c, 0x9b,
+ 0x18, 0x13, 0xa8, 0x18, 0xdf, 0xe1, 0x68, 0xbb,
+ 0xfa, 0x22, 0x66, 0x58, 0xb5, 0xac, 0xa9, 0x4f,
+ 0xbd, 0x19, 0x38, 0x8b, 0x70, 0x58, 0xa1, 0x48,
+ 0xcc, 0xf1, 0x6b, 0xdd, 0xd4, 0xf7, 0xb4, 0x59,
+ 0x6c, 0x47, 0x30, 0x7c, 0x29, 0x6f, 0xca, 0xbf,
+ 0xfa, 0xd9, 0x1e, 0x46, 0x9e, 0x2a, 0x78, 0x45,
+ 0x1a, 0xe9, 0x65, 0x8e, 0x8e, 0xe9, 0x4a, 0xfa,
+ 0xf1, 0xca, 0x6b, 0x7f, 0xdc, 0xf4, 0x04, 0x4e,
+ 0xb7, 0x6e, 0x7e, 0x9b, 0x45, 0xee, 0xfb, 0xca,
+ 0x0f, 0xa6, 0xe1, 0x45, 0x48, 0xd9, 0xf0, 0xfd,
+ 0xc8, 0x4b, 0xc2, 0x09, 0x7e, 0xd7, 0x97, 0xb9,
+ 0x88, 0xbb, 0x0c, 0x16, 0x55, 0x4f, 0x68, 0x55,
+ 0x83, 0xd2, 0xd8, 0xd6, 0x0b, 0x9d, 0x1c, 0xb6,
+ 0x4f, 0xbf, 0x99, 0x4b, 0x31, 0xd4, 0x6f, 0x80,
+ 0x07, 0x9f, 0x6c, 0xfe, 0x7d, 0x59, 0xf7, 0x3d,
+ 0xd2, 0xb3, 0x62, 0xd3, 0xf6, 0x1e, 0x6c, 0xc1,
+ 0x75, 0x45, 0x9a, 0x84, 0x7a, 0x7d, 0x31, 0x67,
+ 0x06, 0x5a, 0x72, 0xbe, 0x25, 0x3a, 0x30, 0x12,
+ 0xba, 0xe2, 0x0e, 0xa0, 0x6e, 0x5d, 0x72, 0xbc,
+ 0x8d, 0x58, 0x7f, 0xcb, 0x20, 0x57, 0x15, 0xe1,
+ 0x33, 0xdb, 0x90, 0xd4, 0xa6, 0xe1, 0xb0, 0x15,
+ 0xa1, 0x2f, 0xf1, 0x6f, 0x76, 0x42, 0xfa, 0xfd,
+ 0xdf, 0x66, 0x44, 0x0b, 0xf1, 0xe2, 0x47, 0xfd,
+ 0x1b, 0xc6, 0x95, 0xbe, 0x89, 0xdc, 0x3a, 0x53,
+ 0x6e, 0xbb, 0x70, 0xad, 0xb5, 0xa9, 0x8b, 0x7a,
+ 0x7e, 0xbb, 0x1e, 0x6e, 0x4f, 0x27, 0x1c, 0x0d,
+ 0xb1, 0x21, 0x4e, 0xaa, 0xb2, 0x47, 0x9e, 0x2b,
+ 0x17, 0x18, 0x41, 0x04, 0x83, 0x1a, 0x35, 0xe9,
+ 0xd6, 0xdc, 0x71, 0x06, 0x1e, 0x1c, 0x1b, 0x56,
+ 0x08, 0x86, 0xbd, 0x68, 0x12, 0xf8, 0x38, 0xdc,
+ 0xeb, 0x72, 0xc4, 0xda, 0x8a, 0x89, 0x67, 0xa6,
+ 0x13, 0x13, 0x27, 0x31, 0x47, 0x70, 0x12, 0x87,
+ 0x9b, 0x9f, 0xbb, 0x01, 0x76, 0x5b, 0x07, 0x9b,
+ 0x03, 0x78, 0xf1, 0x19, 0xd8, 0x8b, 0x92, 0x8c,
+ 0xb6, 0xcc, 0x43, 0x4d, 0x10, 0xbf, 0xac, 0x81,
+ 0x3e, 0x98, 0x8f, 0xcd, 0x43, 0x93, 0x9a, 0x8e,
+ 0x73, 0x47, 0x21, 0x34, 0x1d, 0x01, 0x85, 0x44,
+ 0xa8, 0xc9, 0x9c, 0xda, 0x0d, 0xcd, 0x4c, 0xe7,
+ 0xbd, 0xd7, 0xf5, 0x69, 0x95, 0xa0, 0x80, 0x5b,
+ 0x25, 0x3a, 0xe1, 0x93, 0x03, 0xbb, 0xa1, 0xdd,
+ 0xe5, 0x2c, 0xd0, 0x80, 0x5d, 0xb9, 0x4a, 0xb9,
+ 0x3d, 0x98, 0x95, 0x9d, 0x86, 0x07, 0xdf, 0x62,
+ 0x98, 0x19, 0x49, 0xdf, 0x8c, 0x36, 0x07, 0x2e,
+ 0x33, 0x1b, 0xbf, 0x7d, 0x64, 0x99, 0x01, 0xc0,
+ 0x2b, 0xcd, 0xba, 0x62, 0xf9, 0x72, 0x0d, 0x48,
+ 0xec, 0xd6, 0xde, 0xb7, 0x51, 0x03, 0x12, 0x05,
+ 0x09, 0x92, 0xee, 0xda, 0x0b, 0x16, 0x4b, 0xbe,
+ 0x1e, 0xc2, 0x9b, 0x5c, 0xcc, 0x9e, 0x2f, 0xc5,
+ 0xd5, 0x41, 0x22, 0x30, 0xb1, 0xff, 0xc4, 0x38,
+ 0x41, 0x05, 0xb5, 0x47, 0x9c, 0x16, 0xd0, 0x66,
+ 0x67, 0x64, 0xc6, 0x81, 0xad, 0xe7, 0x8d, 0x82,
+ 0x03, 0x2e, 0x2a, 0xfa, 0x22, 0xe4, 0x9d, 0x0f,
+ 0xf4, 0xfe, 0x83, 0x4f, 0x0e, 0x99, 0xcb, 0xcb,
+ 0x62, 0x3e, 0x1e, 0x07, 0x65, 0x6e, 0x51, 0x72,
+ 0x28, 0x00, 0xcb, 0xab, 0xb6, 0x76, 0xf0, 0x9d,
+ 0x3a, 0xa4, 0x82, 0xd6, 0x4c, 0xb6, 0x72, 0xf4,
+ 0x58, 0xdb, 0x5c, 0x65, 0x29, 0xf5, 0xe0, 0x00,
+ 0xa0, 0x33, 0x11, 0xe3, 0xff, 0x6b, 0x39, 0x27,
+ 0x36, 0x95, 0x12, 0x46, 0xe3, 0xe4, 0x1b, 0x04,
+ 0x78, 0xc1, 0x09, 0xf8, 0x3e, 0x76, 0x73, 0xff,
+ 0x4d, 0xc3, 0xc8, 0x4b, 0xb9, 0xec, 0xef, 0x04,
+ 0x4a, 0x3e, 0x63, 0x42, 0x31, 0x51, 0x34, 0x42,
+ 0xe2, 0x92, 0xe4, 0xf8, 0xe2, 0x4a, 0x35, 0x82,
+ 0x6f, 0x07, 0x77, 0x86, 0xc0, 0x1d, 0xef, 0x15,
+ 0xde, 0x7e, 0xc0, 0xff, 0x69, 0x04, 0x38, 0xad,
+ 0x95, 0xfa, 0x0e, 0x93, 0xd8, 0x7f, 0x05, 0xe9,
+ 0xd2, 0x3c, 0x94, 0xf8, 0xb7, 0x4c, 0x3f, 0x7f,
+ 0xbf, 0x8b, 0x10, 0x60, 0xc0, 0x8e, 0x76, 0x64,
+ 0x00, 0xdb, 0xeb, 0x9e, 0x94, 0x14, 0x99, 0x31,
+ 0x3c, 0x79, 0xef, 0xa1, 0x90, 0x7e, 0x22, 0xa6,
+ 0x22, 0x21, 0xb3, 0x70, 0x20, 0x7d, 0x49, 0x38,
+ 0x24, 0x7b, 0x49, 0x75, 0x56, 0x97, 0x6c, 0xe1,
+ 0x62, 0xd6, 0x3b, 0xed, 0xbd, 0xe8, 0x13, 0x33,
+ 0x3b, 0x55, 0x9a, 0xaf, 0x4a, 0x76, 0x22, 0x73,
+ 0xf6, 0xfd, 0xce, 0xeb, 0xd7, 0xc5, 0xa7, 0x79,
+ 0xd5, 0x24, 0xef, 0x08, 0x3b, 0x9a, 0x06, 0x54,
+ 0x5c, 0xfa, 0x87, 0x8a, 0x36, 0x2f, 0x67, 0xa5,
+ 0x56, 0x39, 0x33, 0x1a, 0xe9, 0xc9, 0x75, 0xbd,
+ 0xfe, 0xff, 0xd5, 0x09, 0xad, 0xfe, 0xa6, 0x83,
+ 0x7b, 0x1e, 0x88, 0x1a, 0xf5, 0xca, 0x3b, 0x2e,
+ 0xf4, 0xfa, 0x50, 0x62, 0x8f, 0x1f, 0xc8, 0xa6,
+ 0x93, 0x18, 0x59, 0x45, 0x03, 0xa2, 0xc0, 0x76,
+ 0x35, 0x0d, 0x08, 0x64, 0x88, 0x73, 0x90, 0x3f,
+ 0xb9, 0x08, 0xc8, 0xe8, 0xd0, 0x50, 0x3b, 0x0a,
+ 0xe6, 0xa8, 0x42, 0xab, 0x20, 0x5d, 0x2d, 0x91,
+ 0xe9, 0x10, 0x03, 0x46, 0x68, 0x06, 0x10, 0xa8,
+ 0x1a, 0x3c, 0x55, 0x20, 0x13, 0x14, 0x96, 0x27,
+ 0xba, 0xcc, 0xc9, 0xf6, 0xf9, 0xa9, 0x14, 0x13,
+ 0x9e, 0x09, 0xee, 0x2e, 0x34, 0x1f, 0xab, 0x6f,
+ 0xbc, 0x5b, 0x19, 0x78, 0xd4, 0x8e, 0xc7, 0x2e,
+ 0x19, 0x0b, 0x6d, 0x17, 0x14, 0xbc, 0x41, 0x2c,
+ 0x83, 0x7b, 0x09, 0x8e, 0x06, 0x49, 0x4d, 0x18,
+ 0x91, 0xda, 0xac, 0x7f, 0x77, 0xf9, 0x4e, 0x28,
+ 0x40, 0x65, 0xc5, 0x63, 0xce, 0x9f, 0xe2, 0xd2,
+ 0x97, 0x04, 0x28, 0xe5, 0x23, 0xf9, 0x88, 0xc5,
+ 0x65, 0xfa, 0xe5, 0x15, 0xb4, 0x05, 0xb9, 0x7c,
+ 0xd2, 0x89, 0x4e, 0x8b, 0x36, 0x5b, 0x7a, 0xfe,
+ 0x41, 0xd5, 0x38, 0x86, 0x67, 0xbb, 0xed, 0xde,
+ 0x09, 0xf2, 0x25, 0x9f, 0x74, 0x9e, 0xb9, 0xd1,
+ 0x4c, 0x88, 0x00, 0xbb, 0xff, 0x28, 0x8e, 0x57,
+ 0x27, 0x2a, 0xc6, 0xfa, 0xc3, 0x82, 0x84, 0xd6,
+ 0xfc, 0x10, 0x2f, 0xcd, 0x07, 0xec, 0x7c, 0x38,
+ 0xb7, 0xf1, 0x95, 0xb9, 0x39, 0x98, 0x88, 0x7d,
+ 0x30, 0x9e, 0x0c, 0x14, 0x54, 0xcb, 0xe7, 0x00,
+ 0xd6, 0xaf, 0x86, 0x31, 0x11, 0x81, 0x80, 0x0a,
+ 0x47, 0xa8, 0xa0, 0xbc, 0x09, 0x01, 0xca, 0xb7,
+ 0xfa, 0x90, 0x37, 0xd9, 0xe1, 0x8e, 0x02, 0x4f,
+ 0x42, 0x26, 0x6a, 0xad, 0x90, 0x11, 0x7c, 0x9a,
+ 0xf7, 0x99, 0x92, 0x72, 0xcc, 0x3b, 0x00, 0x86,
+ 0x8d, 0x24, 0xc9, 0xb2, 0x05, 0xd7, 0x69, 0x3b,
+ 0x07, 0x36, 0xbf, 0x9f, 0xfc, 0xb0, 0x56, 0x24,
+ 0xfb, 0x9e, 0xc4, 0xe0, 0xba, 0x16, 0x87, 0xb1,
+ 0xfe, 0x7d, 0x35, 0x32, 0xa3, 0xa2, 0xdb, 0x2b,
+ 0x52, 0x82, 0x88, 0xdf, 0x4a, 0x25, 0x60, 0xc9,
+ 0x0a, 0xc0, 0xd0, 0x06, 0xfe, 0x91, 0x78, 0x37,
+ 0x38, 0xc3, 0xe8, 0x3a, 0x60, 0x89, 0x7a, 0x14,
+ 0xf7, 0xad, 0x0c, 0x2f, 0x71, 0x54, 0xf4, 0xb7,
+ 0x4f, 0x69, 0x20, 0x1f, 0xa2, 0x48, 0xb3, 0x66,
+ 0x0d, 0xbf, 0xb9, 0x90, 0x34, 0x32, 0x64, 0x23,
+ 0x53, 0x05, 0x74, 0xa0, 0x49, 0x56, 0x73, 0x6c,
+ 0xbb, 0x23, 0xd1, 0x58, 0x8a, 0xd8, 0x6c, 0x7d,
+ 0xf8, 0x30, 0x7c, 0x21, 0xf7, 0xaf, 0xfe, 0x49,
+ 0x5a, 0x68, 0x83, 0x76, 0xaa, 0x74, 0x14, 0x6c,
+ 0xa1, 0x0f, 0x61, 0xc3, 0xfe, 0x79, 0xb3, 0x3d,
+ 0xd5, 0x9b, 0x31, 0x18, 0xdc, 0xc9, 0xbd, 0x4a,
+ 0xd0, 0x7d, 0x8a, 0x9f, 0xdd, 0xb8, 0xa0, 0x4c,
+ 0xb6, 0xf2, 0x88, 0xd7, 0xc6, 0x32, 0x36, 0x45,
+ 0xe0, 0x00, 0x27, 0x02, 0x44, 0x83, 0x1d, 0x9d,
+ 0xc8, 0xa5, 0x99, 0x17, 0x96, 0xbd, 0x3e, 0x8f,
+ 0xa6, 0x79, 0xd7, 0xfb, 0xdf, 0xe2, 0x1b, 0xa4,
+ 0xb7, 0x1c, 0x40, 0x0c, 0x55, 0xf9, 0xcd, 0x18,
+ 0x78, 0x7f, 0xc4, 0x71, 0xdd, 0xd5, 0x75, 0x11,
+ 0xc0, 0x67, 0x87, 0xfb, 0x87, 0x31, 0x8a, 0x6f,
+ 0x54, 0x89, 0x0c, 0x0f, 0xcb, 0x26, 0x0f, 0xb2,
+ 0x96, 0x41, 0x19, 0x0c, 0xc5, 0x94, 0x65, 0x98,
+ 0xb9, 0x52, 0xe5, 0x7b, 0x67, 0xa2, 0xe1, 0xde,
+ 0x4e, 0xe8, 0xf3, 0x10, 0x2c, 0xcc, 0x40, 0xbd,
+ 0x07, 0x9e, 0x95, 0x9c, 0xae, 0x3f, 0x84, 0xeb,
+ 0x0f, 0xb0, 0xfb, 0x79, 0x1a, 0x89, 0x22, 0x59,
+ 0x33, 0x45, 0x86, 0x6d, 0x58, 0x75, 0x20, 0xb4,
+ 0xd8, 0x37, 0xc8, 0x2a, 0x35, 0x65, 0x7c, 0x2f,
+ 0x8e, 0x7d, 0xd6, 0xc0, 0x64, 0x80, 0xd8, 0x88,
+ 0x4b, 0xf3, 0x1e, 0x7f, 0x94, 0x73, 0x5c, 0x88,
+ 0x21, 0xf3, 0xc8, 0x18, 0x81, 0x08, 0xc1, 0x6b,
+ 0xaa, 0x5b, 0x80, 0x2b, 0x67, 0x0c, 0xcf, 0x9a,
+ 0x58, 0xbe, 0xbc, 0xff, 0x25, 0x7f, 0x07, 0xf2,
+ 0xdd, 0x02, 0xf7, 0xd2, 0x0d, 0xec, 0xd4, 0x4a,
+ 0x13, 0x37, 0x6d, 0xbf, 0xaa, 0xbc, 0x67, 0xf3,
+ 0x99, 0xf9, 0x35, 0x9a, 0x7b, 0x2f, 0x2d, 0x61,
+ 0x69, 0x14, 0x89, 0x3d, 0xd7, 0xcd, 0x7a, 0xac,
+ 0xba, 0xda, 0xe2, 0x4f, 0xc0, 0x0b, 0xf1, 0x15,
+ 0xbd, 0x4e, 0x37, 0xbc, 0xe2, 0x36, 0x93, 0xb8,
+ 0xad, 0xa3, 0x0a, 0x35, 0x76, 0x88, 0x34, 0x50,
+ 0x76, 0x40, 0xb3, 0xdc, 0xaf, 0xf2, 0x1f, 0xfe,
+ 0xd7, 0x2e, 0xf9, 0x44, 0xff, 0xda, 0xf2, 0x89,
+ 0xbf, 0x3c, 0xc7, 0xdc, 0x3b, 0x0a, 0x70, 0xc9,
+ 0x0b, 0x6a, 0x6e, 0x79, 0xce, 0x27, 0xba, 0x8c,
+ 0x52, 0x98, 0x71, 0x04, 0xba, 0xd7, 0x6a, 0x52,
+ 0x94, 0x41, 0xa0, 0xae, 0xd4, 0xcb, 0xc7, 0xd9,
+ 0x87, 0xea, 0x1d, 0x1a, 0x04, 0xa4, 0x51, 0x4a,
+ 0x9b, 0xfb, 0x42, 0xe9, 0x2f, 0x60, 0x12, 0xb2,
+ 0x7b, 0x76, 0x81, 0xfc, 0xc1, 0x9b, 0xc0, 0x4d,
+ 0x16, 0x53, 0x44, 0x2f, 0x48, 0x86, 0x42, 0x41,
+ 0x2c, 0xb3, 0x1f, 0x4d, 0xa9, 0x9d, 0xb9, 0xf9,
+ 0x93, 0x78, 0x18, 0x05, 0x90, 0xb3, 0x49, 0xdb,
+ 0x1b, 0xfa, 0x57, 0xbb, 0x94, 0xa8, 0xd8, 0x37,
+ 0xf6, 0x92, 0xc5, 0x15, 0xa4, 0x47, 0xa3, 0x0f,
+ 0x4e, 0x09, 0x0d, 0x2d, 0xdd, 0xac, 0xd2, 0xbd,
+ 0xeb, 0x46, 0xe1, 0x32, 0x7a, 0x51, 0x21, 0xd8,
+ 0xd3, 0x9e, 0xbf, 0xf1, 0x7a, 0xbc, 0x65, 0xd9,
+ 0x31, 0xfe, 0xbb, 0xd2, 0x48, 0xf8, 0x62, 0x02,
+ 0x4d, 0x59, 0x17, 0xd2, 0x78, 0x68, 0xbd, 0xc2,
+ 0xb6, 0xc5, 0x7e, 0x5f, 0x12, 0x51, 0x58, 0x3a,
+ 0xd3, 0x60, 0x96, 0x26, 0x30, 0xfd, 0x72, 0x81,
+ 0x46, 0xaa, 0x75, 0xe7, 0xa4, 0xc4, 0x97, 0xe3,
+ 0x64, 0x1a, 0xb7, 0x6e, 0x9e, 0x60, 0xe4, 0x59,
+ 0x40, 0x3d, 0x2d, 0xe0, 0x2e, 0xbb, 0x90, 0xa5,
+ 0xe4, 0xfb, 0xc2, 0xf0, 0xad, 0x4a, 0xa1, 0x3d,
+ 0x91, 0xdf, 0x9c, 0x89, 0x69, 0x04, 0x13, 0xd0,
+ 0x71, 0x9b, 0xe1, 0x37, 0x99, 0x82, 0x0e, 0xf4,
+ 0x53, 0x66, 0xf5, 0x03, 0x89, 0xe1, 0x0f, 0x17,
+ 0x3a, 0x87, 0xf3, 0x2d, 0xad, 0x67, 0xc4, 0xd0,
+ 0x3c, 0x86, 0x28, 0x4f, 0x89, 0x68, 0x23, 0x88,
+ 0x2d, 0xb3, 0xb2, 0x28, 0xd7, 0xd0, 0x8b, 0xbf,
+ 0x38, 0x87, 0x02, 0x5f, 0x02, 0x51, 0xeb, 0xc6,
+ 0xa0, 0x7d, 0xb0, 0x9d, 0xa2, 0x14, 0x55, 0xd1,
+ 0x34, 0xda, 0x01, 0x1b, 0x02, 0x9e, 0x7a, 0x74,
+ 0xa3, 0x9c, 0xa5, 0xe7, 0xb9, 0x96, 0x84, 0x31,
+ 0xb1, 0x59, 0xc3, 0xe3, 0xf3, 0x41, 0xa7, 0xb7,
+ 0x0e, 0x9e, 0x3f, 0x38, 0x82, 0xac, 0x3e, 0x42,
+ 0x8e, 0x13, 0x45, 0xea, 0xd5, 0xde, 0x77, 0xe0,
+ 0xe8, 0x14, 0x82, 0x95, 0x46, 0xac, 0x4c, 0xe0,
+ 0x74, 0x54, 0x5e, 0x5d, 0x05, 0x54, 0x8d, 0x0f,
+ 0x4e, 0x23, 0xe7, 0x37, 0x28, 0xd2, 0xfd, 0xc9,
+ 0xb9, 0x11, 0x1b, 0xe7, 0x2f, 0x2f, 0x85, 0x3e,
+ 0x18, 0xf5, 0x03, 0x56, 0x37, 0x5b, 0xae, 0x67,
+ 0x5f, 0x9e, 0x0e, 0x9f, 0x39, 0xe2, 0x1a, 0x5b,
+ 0x63, 0xbb, 0x6a, 0x1b, 0xeb, 0x16, 0x3a, 0x5c,
+ 0x83, 0xdb, 0xb4, 0xf6, 0x42, 0xa5, 0x51, 0x40,
+ 0xf3, 0x5c, 0xcf, 0x91, 0x51, 0x3d, 0x41, 0x7e,
+ 0xd2, 0x18, 0xca, 0x39, 0x54, 0x13, 0x9c, 0xc4,
+ 0xa9, 0xb3, 0x86, 0x79, 0xfe, 0x80, 0xf9, 0x87,
+ 0x8f, 0xf5, 0x43, 0xbe, 0x4c, 0xb6, 0x78, 0xd6,
+ 0x5a, 0xe4, 0x53, 0x08, 0xcc, 0xad, 0xd1, 0x02,
+ 0x8f, 0xeb, 0xab, 0x49, 0x3b, 0x68, 0x3d, 0x16,
+ 0x5b, 0x6f, 0x48, 0x2c, 0x83, 0x22, 0x73, 0x14,
+ 0xb6, 0x8c, 0x1d, 0x60, 0x56, 0x19, 0x03, 0x49,
+ 0x03, 0x62, 0x58, 0x37, 0xf7, 0xc6, 0xe0, 0x25,
+ 0x39, 0x4c, 0x85, 0x8e, 0x8e, 0xbc, 0xc1, 0xcd,
+ 0xce, 0x8a, 0x71, 0x9e, 0xa2, 0x22, 0x7c, 0x0a,
+ 0x03, 0x92, 0xfa, 0x36, 0x49, 0x9f, 0x25, 0xc9,
+ 0xc0, 0xda, 0xcf, 0x97, 0x2f, 0x50, 0x5b, 0xa6,
+ 0x1e, 0x19, 0xb6, 0x13, 0xed, 0x01, 0xc2, 0x8d,
+ 0xef, 0x80, 0xde, 0x6d, 0x83, 0xa8, 0x8f, 0xb5,
+ 0x78, 0xeb, 0x2c, 0x3c, 0x6f, 0x8e, 0x58, 0x9f,
+ 0x28, 0xcf, 0x5b, 0xc3, 0xfe, 0x0e, 0x51, 0xc1,
+ 0x0c, 0x4f, 0xfa, 0xa0, 0xb9, 0x39, 0x12, 0x17,
+ 0x99, 0x0c, 0xcd, 0xcb, 0x78, 0x71, 0xbd, 0x94,
+ 0x05, 0xc4, 0x46, 0xd5, 0xf1, 0x94, 0xf6, 0xc3,
+ 0x88, 0x15, 0xc1, 0x1c, 0x77, 0x75, 0xd1, 0x71,
+ 0x0c, 0xd9, 0x99, 0x36, 0xcd, 0xb1, 0x75, 0x87,
+ 0xbd, 0x31, 0xba, 0xff, 0x20, 0xdb, 0xcf, 0x58,
+ 0xe8, 0x51, 0xfc, 0xd4, 0xd4, 0x89, 0x37, 0x01,
+ 0x30, 0xc8, 0x6e, 0xe5, 0xa6, 0x52, 0xec, 0xd6,
+ 0xaf, 0x1d, 0x96, 0x2d, 0x74, 0xd0, 0x1a, 0x98,
+ 0xd9, 0x46, 0x4c, 0x6f, 0x34, 0xcf, 0x92, 0x41,
+ 0x33, 0xff, 0x8f, 0xb8, 0xaa, 0x9f, 0x5d, 0x51,
+ 0x11, 0x9b, 0xca, 0xf9, 0x26, 0xf3, 0xe5, 0xda,
+ 0x33, 0x20, 0xe7, 0x6e, 0xe4, 0x7b, 0x92, 0xab,
+ 0x39, 0x21, 0x20, 0xe6, 0x58, 0xe8, 0x36, 0x24,
+ 0x53, 0x55, 0x66, 0x6b, 0x11, 0x74, 0xab, 0x17,
+ 0x6c, 0xc3, 0x67, 0xd2, 0xf6, 0x70, 0x63, 0x86,
+ 0x51, 0xe4, 0x53, 0xbe, 0xa4, 0xf3, 0xe0, 0x67,
+ 0x41, 0x17, 0x44, 0x70, 0xc3, 0xc0, 0xbe, 0x98,
+ 0x8a, 0x8b, 0x5a, 0x65, 0x4d, 0xec, 0x5a, 0xc6,
+ 0xec, 0xc6, 0x66, 0xf2, 0x3a, 0x75, 0xd4, 0xab,
+ 0xb4, 0x14, 0x5b, 0xc6, 0xf8, 0x6f, 0xe1, 0x99,
+ 0xd0, 0x57, 0x42, 0x29, 0x35, 0x09, 0x99, 0x65,
+ 0x99, 0x98, 0xd8, 0xa7, 0xc6, 0x78, 0xa1, 0xd0,
+ 0x16, 0x7b, 0xb0, 0x03, 0x4d, 0x79, 0x81, 0x45,
+ 0x8c, 0x07, 0x3c, 0xa0, 0x59, 0xa2, 0xdf, 0xf5,
+ 0xa7, 0xb0, 0x18, 0x00, 0x8d, 0x10, 0xca, 0x4a,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0xb8, 0xdd, 0x1b, 0x8f, 0x82, 0x82, 0x8e, 0x9f,
+ 0x0a, 0x02, 0x15, 0xbd, 0x8f, 0xa8, 0x63, 0x72,
+ 0xd4, 0x3f, 0x9c, 0xcf, 0xea, 0x88, 0x2a, 0x53,
+ 0x95, 0x67, 0xe9, 0x96, 0xd0, 0xe3, 0x7e, 0x3c,
+ 0xb3, 0x07, 0x79, 0x82, 0x09, 0x81, 0x90, 0xdd,
+ 0xd5, 0x5d, 0x1b, 0xaa, 0x4e, 0x98, 0xe0, 0xc7,
+ 0x63, 0x73, 0xcd, 0x4c, 0xba, 0x8f, 0xd4, 0xed,
+ 0xc7, 0xa9, 0x98, 0x67, 0x35, 0x99, 0xa9, 0x54,
+ 0xc9, 0x30, 0x92, 0x0b, 0x78, 0x80, 0xed, 0x66,
+ 0x7d, 0x60, 0x24, 0x27, 0x53, 0x1b, 0x1b, 0x77,
+ 0x1c, 0x6b, 0x7f, 0xd7, 0x70, 0x91, 0x79, 0x84,
+ 0x42, 0x44, 0xce, 0x36, 0xcf, 0xa9, 0x1e, 0xb8,
+ 0x21, 0x80, 0x29, 0xb5, 0x93, 0x63, 0x50, 0x7e,
+ 0xb0, 0xa7, 0x44, 0x66, 0x48, 0x1d, 0x66, 0xb8,
+ 0xd5, 0x63, 0x37, 0xb9, 0x34, 0xac, 0x69, 0x5f,
+ 0x73, 0xd5, 0x08, 0xcd, 0x15, 0x97, 0x0e, 0x6d,
+ 0xd4, 0x38, 0x08, 0x03, 0x26, 0x51, 0xa1, 0x42,
+ 0x68, 0x18, 0x87, 0x10, 0x80, 0x22, 0x84, 0x0a,
+ 0x15, 0x88, 0x4c, 0x18, 0x21, 0x98, 0x44, 0x21,
+ 0x0a, 0x87, 0x21, 0x41, 0x00, 0x92, 0x58, 0x12,
+ 0x86, 0x10, 0xa8, 0x60, 0x82, 0x34, 0x26, 0x04,
+ 0x91, 0x21, 0x1b, 0x22, 0x40, 0x02, 0x06, 0x80,
+ 0xc1, 0x12, 0x6e, 0x54, 0x28, 0x72, 0xa3, 0x22,
+ 0x11, 0x0a, 0xb9, 0x90, 0x5b, 0x10, 0x6c, 0x43,
+ 0xa8, 0x05, 0x12, 0x82, 0x60, 0x4b, 0x08, 0x68,
+ 0x12, 0xa9, 0x04, 0x21, 0xb4, 0x8d, 0x12, 0x88,
+ 0x41, 0x14, 0x14, 0x4d, 0x20, 0x30, 0x40, 0xa1,
+ 0x88, 0x90, 0x89, 0x34, 0x0c, 0x84, 0x82, 0x6d,
+ 0x10, 0x18, 0x06, 0xd4, 0x24, 0x69, 0x4b, 0xb4,
+ 0x70, 0xc9, 0x14, 0x48, 0xc0, 0x36, 0x66, 0x0b,
+ 0xc8, 0x04, 0x53, 0x86, 0x8c, 0xd2, 0x92, 0x11,
+ 0xc4, 0xb8, 0x90, 0xa3, 0xa2, 0x71, 0x59, 0x24,
+ 0x09, 0x21, 0x33, 0x6d, 0x5c, 0x94, 0x84, 0x20,
+ 0x18, 0x4d, 0x08, 0x88, 0x09, 0x18, 0x27, 0x60,
+ 0xcc, 0x36, 0x41, 0xc2, 0x16, 0x44, 0x1b, 0x44,
+ 0x4a, 0xa3, 0x22, 0x0c, 0x0c, 0xb5, 0x04, 0x24,
+ 0xa7, 0x08, 0xc0, 0x08, 0x8d, 0xe4, 0x22, 0x80,
+ 0xd4, 0x20, 0x85, 0x43, 0x84, 0x01, 0x09, 0x19,
+ 0x10, 0x83, 0xa0, 0x80, 0x91, 0xa8, 0x2d, 0x1c,
+ 0x26, 0x20, 0x08, 0x09, 0x24, 0x44, 0x36, 0x4d,
+ 0x0b, 0x92, 0x44, 0x9b, 0x20, 0x29, 0x04, 0xc0,
+ 0x21, 0x99, 0x84, 0x45, 0x88, 0xa2, 0x20, 0x24,
+ 0x19, 0x4e, 0x89, 0x80, 0x28, 0x8c, 0x26, 0x08,
+ 0x08, 0xc4, 0x0c, 0xc0, 0x20, 0x2c, 0x18, 0x05,
+ 0x8d, 0x0c, 0x81, 0x44, 0x0a, 0x29, 0x86, 0x10,
+ 0x38, 0x25, 0x9b, 0x12, 0x0d, 0x9a, 0xa2, 0x88,
+ 0x8a, 0x34, 0x64, 0x1c, 0x47, 0x2a, 0xcc, 0xb8,
+ 0x81, 0xa2, 0xb4, 0x25, 0x18, 0x36, 0x11, 0xc9,
+ 0x34, 0x28, 0x8c, 0x40, 0x40, 0xe1, 0xc4, 0x91,
+ 0xd0, 0x48, 0x0e, 0x0b, 0xa8, 0x85, 0x13, 0x89,
+ 0x6c, 0xc1, 0x00, 0x61, 0x4c, 0x36, 0x89, 0xd2,
+ 0x12, 0x2e, 0xc0, 0x22, 0x10, 0xc4, 0xa6, 0x40,
+ 0x62, 0x30, 0x32, 0xc4, 0xa0, 0x10, 0x09, 0xa2,
+ 0x68, 0x1b, 0xb5, 0x45, 0x63, 0x86, 0x91, 0xa2,
+ 0x42, 0x2a, 0x1a, 0xc3, 0x8d, 0x01, 0x16, 0x28,
+ 0x0a, 0x91, 0x60, 0x0a, 0x18, 0x08, 0x03, 0xa8,
+ 0x6c, 0xdc, 0x96, 0x20, 0x21, 0x43, 0x4e, 0x41,
+ 0x86, 0x31, 0x14, 0xa6, 0x50, 0x4c, 0x02, 0x86,
+ 0x43, 0x34, 0x92, 0xa3, 0x02, 0x0c, 0x11, 0x05,
+ 0x28, 0x49, 0xc4, 0x40, 0x08, 0x19, 0x48, 0x0b,
+ 0x47, 0x6a, 0x1c, 0x15, 0x22, 0x11, 0xa6, 0x4c,
+ 0x51, 0x38, 0x0d, 0xc3, 0x12, 0x91, 0x00, 0x06,
+ 0x04, 0x4a, 0x80, 0x48, 0x59, 0x24, 0x71, 0xc1,
+ 0x86, 0x41, 0x00, 0x29, 0x65, 0x1a, 0x01, 0x09,
+ 0x02, 0xc1, 0x88, 0x22, 0xb3, 0x4d, 0x01, 0x92,
+ 0x91, 0x4c, 0x20, 0x45, 0x1c, 0x19, 0x68, 0x83,
+ 0x96, 0x80, 0x24, 0x44, 0x01, 0xc3, 0x00, 0x6c,
+ 0x91, 0x84, 0x80, 0xc4, 0xb6, 0x50, 0x0c, 0xc9,
+ 0x84, 0x1b, 0xc9, 0x24, 0x53, 0xa8, 0x6c, 0x22,
+ 0x80, 0x6d, 0xa3, 0x38, 0x62, 0x0c, 0x40, 0x50,
+ 0x1c, 0x13, 0x65, 0x19, 0x40, 0x08, 0x89, 0x92,
+ 0x90, 0x5b, 0x98, 0x28, 0x18, 0x00, 0x2e, 0x1b,
+ 0x17, 0x20, 0x8a, 0xb6, 0x10, 0x20, 0x26, 0x49,
+ 0xa1, 0x04, 0x69, 0x09, 0x47, 0x25, 0x02, 0x02,
+ 0x65, 0x59, 0xb4, 0x51, 0x49, 0xa4, 0x4c, 0xdb,
+ 0x46, 0x68, 0xdc, 0x10, 0x52, 0x40, 0xb0, 0x45,
+ 0x59, 0x14, 0x51, 0x50, 0x86, 0x8c, 0x9b, 0x28,
+ 0x41, 0x98, 0x96, 0x08, 0x60, 0xb2, 0x6c, 0x13,
+ 0x23, 0x91, 0x02, 0xc7, 0x70, 0x9b, 0x08, 0x90,
+ 0x44, 0xa2, 0x2d, 0x09, 0x05, 0x72, 0x19, 0x38,
+ 0x8e, 0x09, 0x21, 0x44, 0x92, 0x94, 0x90, 0x98,
+ 0x80, 0x65, 0x63, 0x94, 0x2d, 0x23, 0x25, 0x46,
+ 0x59, 0x84, 0x44, 0x8c, 0x32, 0x10, 0x04, 0x07,
+ 0x06, 0x04, 0xa4, 0x70, 0x40, 0x26, 0x88, 0x18,
+ 0x87, 0x8d, 0x12, 0x30, 0x90, 0xe3, 0x00, 0x60,
+ 0x48, 0x40, 0x88, 0x60, 0x88, 0x4c, 0x0b, 0x06,
+ 0x65, 0x00, 0x27, 0x6a, 0x5c, 0x00, 0x2a, 0x12,
+ 0x25, 0x8d, 0x92, 0x26, 0x92, 0x1a, 0x49, 0x44,
+ 0x1b, 0xb4, 0x84, 0x03, 0xa9, 0x4d, 0xd9, 0xb6,
+ 0x2c, 0x63, 0x48, 0x4c, 0x0c, 0x46, 0x42, 0x1a,
+ 0x10, 0x91, 0xc3, 0x44, 0x89, 0x9a, 0xc2, 0x31,
+ 0xd0, 0x92, 0x41, 0x0c, 0x32, 0x60, 0x89, 0x24,
+ 0x6c, 0x10, 0x15, 0x49, 0xe3, 0x06, 0x0d, 0x09,
+ 0x11, 0x52, 0xdc, 0xa2, 0x50, 0x13, 0x14, 0x26,
+ 0x64, 0x90, 0x61, 0xca, 0xc2, 0x45, 0xe0, 0x48,
+ 0x52, 0x11, 0xa5, 0x2d, 0x61, 0x12, 0x22, 0xc8,
+ 0x30, 0x06, 0x0c, 0x07, 0x4d, 0xc2, 0x10, 0x6a,
+ 0x80, 0x44, 0x2d, 0x03, 0x34, 0x61, 0x4b, 0x94,
+ 0x0c, 0x49, 0x94, 0x4d, 0x54, 0x24, 0x61, 0xd4,
+ 0x30, 0x20, 0x11, 0x49, 0x81, 0x04, 0x01, 0x30,
+ 0x50, 0x34, 0x66, 0x14, 0x36, 0x29, 0x81, 0x12,
+ 0x52, 0x20, 0xa8, 0x00, 0x08, 0x04, 0x2a, 0xd4,
+ 0x42, 0x40, 0xe4, 0x02, 0x50, 0x88, 0xb8, 0x81,
+ 0x18, 0xc1, 0x4d, 0x1c, 0x23, 0x06, 0x0b, 0x28,
+ 0x22, 0x61, 0x42, 0x72, 0x09, 0x24, 0x21, 0x44,
+ 0xb2, 0x28, 0xd4, 0x02, 0x09, 0x04, 0x41, 0x0e,
+ 0x23, 0x20, 0x2e, 0x19, 0x93, 0x20, 0x10, 0x20,
+ 0x25, 0xa1, 0x32, 0x05, 0x49, 0x96, 0x60, 0x1a,
+ 0x40, 0x2e, 0xe3, 0x46, 0x86, 0x21, 0x11, 0x4a,
+ 0x00, 0x17, 0x46, 0x0c, 0xb7, 0x88, 0x5b, 0x32,
+ 0x30, 0x04, 0x30, 0x46, 0x9c, 0xc6, 0x48, 0xd3,
+ 0x02, 0x28, 0x21, 0xb0, 0x25, 0x8c, 0x26, 0x85,
+ 0x52, 0xb4, 0x25, 0xc4, 0x80, 0x49, 0x24, 0x43,
+ 0x82, 0x12, 0x27, 0x60, 0x20, 0x28, 0x88, 0x54,
+ 0x44, 0x00, 0x12, 0x01, 0x51, 0x13, 0x45, 0x69,
+ 0x5c, 0x34, 0x2a, 0x80, 0x96, 0x84, 0x02, 0x34,
+ 0x12, 0xc4, 0x40, 0x22, 0xd2, 0xa4, 0x0d, 0x93,
+ 0x40, 0x48, 0x21, 0x42, 0x12, 0x64, 0x20, 0x2a,
+ 0x9a, 0x94, 0x2c, 0x64, 0xb2, 0x48, 0xd2, 0xa2,
+ 0x28, 0x48, 0x12, 0x64, 0x00, 0x22, 0x70, 0xda,
+ 0x08, 0x45, 0xa4, 0x32, 0x46, 0x50, 0x28, 0x52,
+ 0x08, 0x26, 0x29, 0xc2, 0x48, 0x0a, 0xca, 0x18,
+ 0x61, 0x94, 0x14, 0x68, 0xd3, 0xb8, 0x6c, 0x02,
+ 0x15, 0x0d, 0xa3, 0xb8, 0x88, 0x02, 0xa9, 0x24,
+ 0x0b, 0xa4, 0x0d, 0x13, 0xc0, 0x49, 0xc9, 0xa6,
+ 0x51, 0xe2, 0x32, 0x2e, 0x5a, 0x22, 0x66, 0x11,
+ 0x83, 0x4c, 0x20, 0x19, 0x4a, 0xc2, 0x42, 0x11,
+ 0x1a, 0x08, 0x89, 0x22, 0x41, 0x6e, 0xd8, 0x46,
+ 0x6d, 0x4a, 0x22, 0x4c, 0x99, 0x42, 0x70, 0xd1,
+ 0xb6, 0x0d, 0x22, 0xb7, 0x65, 0x08, 0x24, 0x68,
+ 0xc3, 0xa8, 0x10, 0x63, 0x40, 0x64, 0x23, 0x20,
+ 0x2e, 0x41, 0x30, 0x2e, 0x10, 0xa2, 0x6d, 0x81,
+ 0x42, 0x86, 0x09, 0x22, 0x90, 0xd1, 0x28, 0x22,
+ 0x20, 0x22, 0x91, 0xd3, 0x10, 0x90, 0x02, 0x31,
+ 0x92, 0x1a, 0x10, 0x46, 0xc4, 0x94, 0x0c, 0x80,
+ 0x32, 0x29, 0xcc, 0xc4, 0x24, 0xd2, 0x38, 0x30,
+ 0xca, 0x82, 0x10, 0x82, 0x94, 0x29, 0xc0, 0xb0,
+ 0x61, 0x51, 0x40, 0x00, 0x01, 0xb2, 0x4d, 0x10,
+ 0xc8, 0x0d, 0x09, 0x22, 0x42, 0x04, 0x86, 0x2c,
+ 0xc4, 0x08, 0x0d, 0xa1, 0x20, 0x50, 0x4b, 0xc4,
+ 0x05, 0x0a, 0x12, 0x80, 0x00, 0xa3, 0x00, 0x52,
+ 0x20, 0x04, 0x02, 0x14, 0x60, 0x14, 0x87, 0x88,
+ 0x0b, 0xa6, 0x70, 0x04, 0x27, 0x2c, 0x90, 0x94,
+ 0x44, 0x0b, 0x10, 0x4a, 0x49, 0xb4, 0x70, 0xd9,
+ 0x44, 0x2a, 0x19, 0x85, 0x21, 0x64, 0x98, 0x8c,
+ 0x22, 0xb9, 0x68, 0x21, 0xa7, 0x69, 0xcc, 0x34,
+ 0x81, 0x0c, 0xa9, 0x6c, 0x59, 0x40, 0x22, 0x13,
+ 0x96, 0x31, 0x00, 0x44, 0x05, 0x98, 0xa4, 0x4c,
+ 0x49, 0x98, 0x01, 0x54, 0x22, 0x2d, 0x9b, 0x42,
+ 0x49, 0x01, 0xb1, 0x8d, 0x60, 0x02, 0x68, 0x64,
+ 0x42, 0x62, 0x61, 0x00, 0x4c, 0x60, 0xc0, 0x64,
+ 0x9a, 0x02, 0x24, 0xc2, 0x36, 0x92, 0x24, 0x11,
+ 0x85, 0x24, 0x28, 0x49, 0x20, 0x80, 0x8c, 0x21,
+ 0xb2, 0x70, 0x88, 0x80, 0x60, 0xd3, 0x28, 0x2c,
+ 0x61, 0x18, 0x32, 0xe2, 0xc8, 0x64, 0xe3, 0xa0,
+ 0x49, 0x5b, 0xc2, 0x88, 0xd0, 0x16, 0x45, 0xd4,
+ 0x46, 0x89, 0xcc, 0x02, 0x84, 0xc1, 0x40, 0x0e,
+ 0x40, 0xb4, 0x50, 0x10, 0x17, 0x80, 0x99, 0x48,
+ 0x4c, 0xda, 0x26, 0x44, 0xa3, 0x12, 0x25, 0x0b,
+ 0x31, 0x12, 0x82, 0x88, 0x30, 0xe1, 0x82, 0x05,
+ 0xc3, 0x34, 0x01, 0x23, 0x07, 0x4e, 0x0c, 0x48,
+ 0x0c, 0x1c, 0xc6, 0x41, 0xca, 0x34, 0x51, 0xd0,
+ 0x40, 0x8e, 0x53, 0x84, 0x0c, 0x8a, 0x34, 0x05,
+ 0x1a, 0x25, 0x26, 0x63, 0x18, 0x82, 0x23, 0x41,
+ 0x89, 0x14, 0x01, 0x0d, 0x81, 0x10, 0x29, 0x50,
+ 0x10, 0x40, 0x4c, 0x38, 0x89, 0x4b, 0x48, 0x84,
+ 0x10, 0x42, 0x66, 0x03, 0x49, 0x29, 0x11, 0x15,
+ 0x8e, 0x9b, 0x00, 0x2c, 0x0a, 0x07, 0x51, 0x19,
+ 0x14, 0x28, 0x24, 0xc0, 0x01, 0x98, 0xb4, 0x04,
+ 0x81, 0x10, 0x91, 0x58, 0x08, 0x51, 0x24, 0x05,
+ 0x21, 0x41, 0xc8, 0x30, 0x01, 0x07, 0x88, 0x00,
+ 0x06, 0x80, 0xe1, 0xc6, 0x84, 0xd0, 0x44, 0x21,
+ 0x9a, 0xb8, 0x49, 0xa1, 0x16, 0x52, 0x00, 0x06,
+ 0x48, 0x41, 0x04, 0x85, 0x63, 0xc6, 0x81, 0x84,
+ 0xb8, 0x40, 0x22, 0xb0, 0x2c, 0x94, 0x22, 0x46,
+ 0x24, 0x90, 0x88, 0x64, 0x24, 0x88, 0x8c, 0x00,
+ 0x2c, 0x99, 0x16, 0x8c, 0x22, 0xa5, 0x69, 0x18,
+ 0x98, 0x31, 0xc1, 0x12, 0x92, 0xcb, 0x14, 0x51,
+ 0x11, 0xc0, 0x29, 0x89, 0x44, 0x11, 0xdc, 0x26,
+ 0x6d, 0x64, 0xa0, 0x09, 0x03, 0x01, 0x24, 0x58,
+ 0xb2, 0x6c, 0x01, 0xb9, 0x70, 0x64, 0x88, 0x10,
+ 0x18, 0x31, 0x28, 0x21, 0x31, 0x89, 0x14, 0x05,
+ 0x66, 0x19, 0x03, 0x04, 0x21, 0x80, 0x45, 0x8b,
+ 0x48, 0x04, 0x8b, 0x10, 0x2c, 0x24, 0xb5, 0x45,
+ 0x18, 0x32, 0x4a, 0x09, 0x22, 0x46, 0x1b, 0x24,
+ 0x6e, 0x19, 0x84, 0x8d, 0x1a, 0xb2, 0x4d, 0xc8,
+ 0x42, 0x44, 0x24, 0x03, 0x65, 0x98, 0x80, 0x84,
+ 0x8c, 0x24, 0x4c, 0x21, 0x01, 0x70, 0x22, 0x08,
+ 0x40, 0x01, 0xa5, 0x0d, 0x49, 0x26, 0x0e, 0x03,
+ 0xc3, 0x84, 0x9c, 0x14, 0x71, 0x02, 0xb1, 0x09,
+ 0x00, 0x86, 0x88, 0x61, 0x16, 0x85, 0xd9, 0x92,
+ 0x11, 0xe1, 0x02, 0x4c, 0x02, 0xa4, 0x49, 0x20,
+ 0x13, 0x90, 0x8c, 0x92, 0x70, 0x91, 0x00, 0x0e,
+ 0x24, 0x43, 0x31, 0x11, 0x80, 0x08, 0x19, 0xb8,
+ 0x2d, 0x4c, 0x40, 0x50, 0x14, 0x28, 0x0c, 0xc4,
+ 0x46, 0x12, 0x1c, 0xb3, 0x45, 0x13, 0x94, 0x11,
+ 0x85, 0xff, 0x3f, 0x7c, 0x1f, 0x3c, 0xdf, 0xaa,
+ 0x0d, 0x8d, 0x48, 0x38, 0x01, 0x1c, 0x3d, 0x1f,
+ 0x73, 0xea, 0x12, 0xc0, 0x82, 0x87, 0x8f, 0xf7,
+ 0xdf, 0x85, 0xb6, 0x47, 0xf4, 0x66, 0xa0, 0x5e,
+ 0xc3, 0xe1, 0x3f, 0x81, 0x7a, 0x3c, 0x94, 0x1a,
+ 0xa3, 0xe8, 0x9e, 0x45, 0x4b, 0x8c, 0xab, 0x46,
+ 0xbf, 0xbe, 0x75, 0x11, 0x1c, 0xa0, 0xc1, 0xc5,
+ 0x00, 0x53, 0xcd, 0x61, 0x01, 0x52, 0x68, 0x0c,
+ 0x17, 0xcc, 0xa1, 0xa1, 0x24, 0x19, 0x59, 0x10,
+ 0x6d, 0x7d, 0x29, 0x8d, 0x10, 0x54, 0x7e, 0x78,
+ 0x3a, 0x14, 0x74, 0xd2, 0x6d, 0xd5, 0x34, 0xca,
+ 0xb5, 0x05, 0xcd, 0x9c, 0x77, 0x87, 0x3b, 0x86,
+ 0x41, 0xdd, 0x92, 0x87, 0x4d, 0xa6, 0x05, 0x31,
+ 0xba, 0xbd, 0x21, 0xb4, 0x0e, 0xfc, 0x2a, 0xe7,
+ 0x5e, 0xd4, 0xf8, 0xdc, 0x12, 0x9e, 0xc2, 0x93,
+ 0x44, 0xdc, 0xc3, 0x28, 0x0a, 0xcc, 0xa0, 0x3c,
+ 0xa3, 0x2f, 0x9d, 0x95, 0xce, 0xa3, 0x9c, 0x08,
+ 0x9d, 0x3e, 0x8c, 0x91, 0x5a, 0x4e, 0xb6, 0x8c,
+ 0x5d, 0xc2, 0x79, 0x1f, 0xe2, 0x98, 0xf9, 0x3b,
+ 0x3a, 0x4e, 0x55, 0xc7, 0x59, 0xc8, 0xd3, 0x7e,
+ 0xb4, 0xee, 0x9b, 0x09, 0x44, 0x03, 0xcc, 0x88,
+ 0x32, 0x06, 0x8f, 0x68, 0x08, 0xae, 0xf3, 0x82,
+ 0x2e, 0xc7, 0x06, 0xb3, 0x3c, 0x54, 0x33, 0xc7,
+ 0xd3, 0x91, 0xe9, 0x85, 0xa3, 0x09, 0x79, 0x01,
+ 0xe5, 0xe7, 0x49, 0xe5, 0x8a, 0x2e, 0xfb, 0xc5,
+ 0xdd, 0x89, 0x00, 0xa9, 0xb2, 0x32, 0x88, 0x6a,
+ 0x3e, 0xb1, 0xcd, 0x43, 0x66, 0xf1, 0x46, 0xdb,
+ 0xda, 0x4b, 0x39, 0xf1, 0x06, 0x8f, 0x21, 0x57,
+ 0xab, 0xa5, 0x8c, 0x79, 0x89, 0x8d, 0x0e, 0xd2,
+ 0x9f, 0x8e, 0xf7, 0x15, 0xbd, 0xe7, 0xe6, 0xd1,
+ 0x53, 0xfb, 0x98, 0x89, 0x9e, 0xc5, 0xcb, 0xbe,
+ 0xe8, 0x9b, 0xdc, 0xbd, 0xa9, 0x97, 0xae, 0x73,
+ 0x1d, 0xb8, 0x8f, 0xfc, 0x0d, 0xab, 0xb6, 0x31,
+ 0x1c, 0x93, 0xe7, 0xc9, 0x32, 0x76, 0xb7, 0x06,
+ 0x34, 0xff, 0x28, 0x21, 0xf7, 0xf1, 0xdd, 0xa0,
+ 0x11, 0x13, 0x89, 0xe2, 0x9d, 0x9f, 0xd1, 0x10,
+ 0xd1, 0xff, 0xa7, 0x33, 0x9d, 0x38, 0x35, 0x1c,
+ 0x77, 0xb8, 0x35, 0xaa, 0xef, 0x72, 0xf2, 0xa5,
+ 0x68, 0x5d, 0xe4, 0xe1, 0x89, 0x70, 0x7e, 0x24,
+ 0xa9, 0x69, 0xd6, 0xfb, 0x7d, 0x35, 0x2d, 0x58,
+ 0xde, 0x41, 0x28, 0x64, 0xa4, 0xb4, 0xd2, 0xb2,
+ 0x46, 0x33, 0xd2, 0x7f, 0x0b, 0x38, 0x0b, 0x44,
+ 0xca, 0xfd, 0x7f, 0x9d, 0x7c, 0x3a, 0x4e, 0xc3,
+ 0xac, 0xb0, 0x73, 0x99, 0x61, 0x06, 0x62, 0xf0,
+ 0xc8, 0x7d, 0x38, 0x82, 0xe2, 0x86, 0x0c, 0xc8,
+ 0x65, 0x91, 0x83, 0xfb, 0x3e, 0x41, 0x49, 0x48,
+ 0x3c, 0xbb, 0xdc, 0xa0, 0xb2, 0xc6, 0xce, 0x70,
+ 0x15, 0x1a, 0x2c, 0xc4, 0x8e, 0xdf, 0x6f, 0xd3,
+ 0xc8, 0x92, 0xdc, 0x10, 0x7f, 0x87, 0x76, 0x4c,
+ 0xb1, 0x05, 0x7c, 0x7c, 0xc6, 0x11, 0xc3, 0x20,
+ 0x52, 0x1b, 0xd2, 0xee, 0xa7, 0x71, 0xe3, 0xef,
+ 0x7d, 0x3a, 0xcc, 0x3d, 0xd3, 0xc1, 0x00, 0xb0,
+ 0x95, 0x83, 0xb7, 0xba, 0x2b, 0x3e, 0x1f, 0x45,
+ 0x86, 0x4d, 0xec, 0x0c, 0x12, 0xc1, 0x7d, 0x2e,
+ 0x7f, 0x7f, 0xdd, 0xf6, 0xa9, 0x69, 0x10, 0x5b,
+ 0x24, 0x3a, 0x39, 0x31, 0x1f, 0x54, 0xe4, 0x96,
+ 0x47, 0x73, 0x92, 0x60, 0xe3, 0xa3, 0x34, 0xba,
+ 0x20, 0xed, 0xa0, 0xa0, 0x8c, 0x7a, 0xac, 0xf1,
+ 0x0d, 0xca, 0xba, 0x78, 0x76, 0x48, 0x77, 0xfa,
+ 0xdc, 0xf1, 0xdd, 0xdf, 0x6e, 0x5c, 0x00, 0x23,
+ 0x61, 0x7f, 0xdb, 0xe6, 0xdb, 0xec, 0x5a, 0x0e,
+ 0x29, 0xae, 0x1f, 0x33, 0x33, 0xc8, 0x7c, 0x21,
+ 0xbd, 0xe0, 0x55, 0xa8, 0x07, 0xb5, 0x11, 0x6e,
+ 0x3e, 0x4b, 0x3a, 0xb6, 0x11, 0xe2, 0x0d, 0x87,
+ 0x4c, 0xb7, 0xae, 0xf0, 0x25, 0xa7, 0x81, 0x5c,
+ 0x45, 0xc8, 0x95, 0xcb, 0x6d, 0xd4, 0x91, 0x2f,
+ 0x9c, 0xf3, 0x25, 0x9a, 0x29, 0x8f, 0x9a, 0x30,
+ 0xd5, 0x15, 0x89, 0xfa, 0x66, 0xd0, 0x62, 0x81,
+ 0x14, 0x99, 0x4f, 0x11, 0x78, 0xd3, 0x83, 0x4e,
+ 0x5a, 0x08, 0x8c, 0x74, 0x55, 0x18, 0xf0, 0x0b,
+ 0xd5, 0xf9, 0x80, 0xda, 0x3d, 0xfa, 0xc8, 0x91,
+ 0x94, 0x2e, 0xf5, 0x74, 0x69, 0x4a, 0x26, 0x2f,
+ 0x7c, 0xa3, 0x42, 0x8f, 0xdb, 0xc9, 0x18, 0xd6,
+ 0xa1, 0x02, 0x9a, 0x09, 0xf9, 0x5e, 0x59, 0x51,
+ 0xe2, 0x75, 0x87, 0x38, 0x15, 0x2e, 0x5d, 0x95,
+ 0x7c, 0xc7, 0x2e, 0xe4, 0xc3, 0x40, 0x55, 0x0d,
+ 0xca, 0xba, 0x51, 0x02, 0x9e, 0x8c, 0x94, 0xfe,
+ 0x3e, 0x64, 0xae, 0x7e, 0xe4, 0x88, 0xa7, 0x5e,
+ 0xfe, 0xf0, 0x81, 0xfa, 0xbc, 0xd3, 0x14, 0x1c,
+ 0x87, 0x88, 0x76, 0x44, 0x4a, 0x4c, 0x63, 0x70,
+ 0xa2, 0x1f, 0x50, 0xb5, 0xab, 0x56, 0x31, 0xc4,
+ 0x65, 0x85, 0x2e, 0x37, 0xb4, 0x3b, 0xba, 0xbf,
+ 0xf0, 0xea, 0x64, 0x00, 0xa3, 0xdc, 0x30, 0x21,
+ 0x12, 0x26, 0x76, 0x01, 0x4c, 0x53, 0x52, 0x01,
+ 0x32, 0xe8, 0x77, 0x6a, 0x48, 0x31, 0xf8, 0x91,
+ 0xf0, 0xa3, 0xa0, 0xfc, 0x47, 0xd1, 0x54, 0xc3,
+ 0x08, 0x70, 0x68, 0xb6, 0x7d, 0xda, 0x1f, 0x22,
+ 0x0d, 0x55, 0xe8, 0xda, 0x55, 0x3b, 0x91, 0x30,
+ 0xe5, 0xce, 0x65, 0x37, 0x77, 0x23, 0x06, 0x18,
+ 0x45, 0xf6, 0x4a, 0xa4, 0x27, 0xeb, 0xdb, 0x1e,
+ 0x22, 0x8e, 0x9d, 0x5f, 0xb5, 0xa3, 0xae, 0x54,
+ 0xe7, 0x72, 0xbe, 0xca, 0x93, 0xe1, 0x0b, 0xc2,
+ 0xdf, 0x00, 0x00, 0xcf, 0x88, 0x13, 0x3c, 0xeb,
+ 0xd0, 0xa5, 0xa5, 0xd4, 0x57, 0x35, 0xe5, 0x4f,
+ 0xf2, 0x1e, 0x45, 0xb0, 0x3b, 0x20, 0x13, 0x68,
+ 0x74, 0x97, 0x17, 0x50, 0x4b, 0xf1, 0x67, 0xf2,
+ 0x46, 0x42, 0xf3, 0xc5, 0x85, 0x49, 0x29, 0xc3,
+ 0x00, 0x60, 0xff, 0x31, 0x0e, 0x41, 0x15, 0x5e,
+ 0x58, 0x6c, 0x40, 0x1f, 0xfc, 0xdd, 0x76, 0x12,
+ 0xee, 0x61, 0x41, 0xec, 0x9a, 0x42, 0x18, 0xb2,
+ 0xf5, 0x13, 0x24, 0xba, 0xda, 0x10, 0xe5, 0x9c,
+ 0x50, 0x6a, 0xf6, 0x41, 0xac, 0x87, 0xb4, 0x0b,
+ 0xc5, 0x84, 0xb6, 0x84, 0x34, 0xd5, 0xc5, 0xa8,
+ 0xbb, 0xb4, 0x4b, 0xef, 0xc9, 0x10, 0xe8, 0xb2,
+ 0x86, 0x7a, 0x2e, 0xdb, 0xf5, 0xaf, 0x18, 0xfb,
+ 0x8f, 0x55, 0x7c, 0x45, 0x2c, 0x1a, 0x64, 0xaa,
+ 0x68, 0xfa, 0xcd, 0xaf, 0x07, 0xb2, 0x4a, 0x4f,
+ 0x2e, 0x02, 0xc5, 0x5b, 0x64, 0x24, 0x35, 0xe1,
+ 0x93, 0xc7, 0xf5, 0xa8, 0xda, 0x6e, 0x1d, 0x3f,
+ 0xd2, 0xd6, 0x50, 0x13, 0x55, 0xfa, 0x0c, 0x4d,
+ 0x68, 0x0c, 0x53, 0xa5, 0xd9, 0x6f, 0x8f, 0x8c,
+ 0x87, 0x21, 0x13, 0x0f, 0x1c, 0xf6, 0x4a, 0xa0,
+ 0x40, 0x0d, 0x74, 0x82, 0xaf, 0x5b, 0xe1, 0x84,
+ 0x15, 0x35, 0x64, 0xc7, 0xee, 0x33, 0x10, 0x00,
+ 0x27, 0x9e, 0x8e, 0xe0, 0x09, 0xf5, 0x75, 0xe7,
+ 0x82, 0xea, 0xe6, 0xc4, 0xd5, 0x69, 0x06, 0x0a,
+ 0x7d, 0xbc, 0xde, 0x5d, 0x41, 0xad, 0xd5, 0xf4,
+ 0x0b, 0x31, 0xaa, 0xba, 0x33, 0xf1, 0xc4, 0x47,
+ 0x0d, 0x18, 0x4d, 0x6b, 0xfe, 0xd9, 0xa3, 0xea,
+ 0xce, 0x19, 0x29, 0xb2, 0xf4, 0x50, 0x78, 0xd0,
+ 0xb1, 0x83, 0x5c, 0x23, 0x1d, 0xcb, 0x6b, 0xd6,
+ 0x54, 0xa8, 0x38, 0x72, 0xea, 0xa7, 0xbe, 0x6e,
+ 0x75, 0xa0, 0x41, 0x4d, 0xa5, 0x58, 0xb8, 0xa9,
+ 0xa0, 0x21, 0xc5, 0xe0, 0x69, 0x65, 0xe2, 0x64,
+ 0x43, 0xbe, 0x6c, 0x83, 0x14, 0x02, 0xf8, 0x22,
+ 0x40, 0x99, 0x7b, 0xff, 0x0d, 0x1c, 0xbd, 0x36,
+ 0xd7, 0x66, 0xf3, 0xef, 0xce, 0xa2, 0x6d, 0xb5,
+ 0x12, 0xde, 0x22, 0xa8, 0xf5, 0x14, 0x4b, 0x30,
+ 0xdf, 0x06, 0xf6, 0x24, 0x70, 0x33, 0xef, 0xb5,
+ 0xd4, 0x50, 0x64, 0x5c, 0x6b, 0x20, 0x3e, 0x5d,
+ 0x19, 0x90, 0xe3, 0x4c, 0x82, 0x10, 0x9a, 0x26,
+ 0x7c, 0xbd, 0x6a, 0x4b, 0x56, 0x9c, 0xac, 0x8b,
+ 0xc6, 0xa4, 0xda, 0xfd, 0x77, 0xf9, 0xa8, 0x75,
+ 0x50, 0x0f, 0xd0, 0x0d, 0xc8, 0x8f, 0xf4, 0x14,
+ 0x4a, 0xfa, 0x68, 0x61, 0x04, 0x36, 0x57, 0x89,
+ 0xa9, 0x93, 0xad, 0xf3, 0x4a, 0x58, 0x62, 0x2c,
+ 0xe8, 0x71, 0x1d, 0x28, 0x5a, 0xf3, 0xcc, 0xe0,
+ 0x08, 0xb8, 0x1e, 0xe9, 0xc5, 0xd4, 0xf7, 0xf8,
+ 0x43, 0x88, 0x19, 0x8f, 0x35, 0xfc, 0xba, 0x5d,
+ 0x56, 0x80, 0x3c, 0xaa, 0xf3, 0x8f, 0x6d, 0xa5,
+ 0xd8, 0xb7, 0xfa, 0x5c, 0x99, 0x2b, 0x94, 0xcd,
+ 0xc0, 0x1e, 0xa6, 0x6e, 0x66, 0x37, 0x9e, 0x32,
+ 0xdb, 0x19, 0x7c, 0x77, 0x48, 0x69, 0x26, 0x3f,
+ 0xf3, 0xbf, 0x84, 0x3f, 0x8b, 0xf1, 0x58, 0x60,
+ 0x2b, 0xd2, 0xca, 0xb1, 0x68, 0x8a, 0x3c, 0x90,
+ 0xe4, 0x08, 0x10, 0x95, 0x35, 0x98, 0xc4, 0x5d,
+ 0x1b, 0x83, 0x67, 0x09, 0xe2, 0xac, 0x89, 0x8f,
+ 0x5a, 0x84, 0xf8, 0x2e, 0xb1, 0xde, 0x02, 0x9a,
+ 0x28, 0x14, 0xb5, 0xae, 0x3a, 0x5a, 0x25, 0x13,
+ 0x26, 0x1d, 0x09, 0xc2, 0xaa, 0xcf, 0xc7, 0x34,
+ 0xa8, 0x0c, 0xd0, 0x1a, 0x38, 0xff, 0x9f, 0x29,
+ 0xe2, 0xa2, 0xfd, 0x9e, 0xfa, 0x36, 0x03, 0x41,
+ 0x06, 0x32, 0x9c, 0x0f, 0x0e, 0x32, 0x5b, 0xbb,
+ 0x07, 0x36, 0xd2, 0x08, 0x78, 0x0c, 0x26, 0x43,
+ 0x9c, 0x4f, 0x70, 0x2a, 0xf6, 0xe5, 0x9e, 0x6f,
+ 0xda, 0xd4, 0xc8, 0x15, 0xc3, 0x7b, 0x29, 0x65,
+ 0xdb, 0x6f, 0x15, 0x2a, 0xfe, 0x78, 0xb4, 0xdd,
+ 0x06, 0x63, 0x52, 0xb6, 0xf3, 0x80, 0x11, 0x53,
+ 0xa5, 0x41, 0xd1, 0x29, 0x46, 0x87, 0x8d, 0x7c,
+ 0xb0, 0xae, 0x5d, 0xa0, 0x4f, 0x28, 0x95, 0xf0,
+ 0xfb, 0x96, 0x52, 0xd6, 0x36, 0xff, 0x8b, 0x7b,
+ 0x54, 0xa4, 0x29, 0x28, 0xdb, 0xaf, 0x43, 0xc8,
+ 0x4a, 0xe3, 0xc3, 0xcf, 0xe6, 0xd0, 0xfe, 0x22,
+ 0x60, 0x20, 0xb6, 0x0f, 0xc2, 0x71, 0x05, 0xa5,
+ 0x64, 0xf9, 0xd3, 0xe3, 0x03, 0x45, 0x43, 0xbe,
+ 0x8e, 0x00, 0xca, 0xd6, 0xf6, 0x0d, 0xb2, 0x98,
+ 0xa9, 0xd6, 0x93, 0xf8, 0x5e, 0xb4, 0x8d, 0x04,
+ 0x04, 0xc4, 0x13, 0x78, 0x40, 0xb4, 0x62, 0x5e,
+ 0x74, 0xbd, 0x80, 0x2f, 0xbf, 0x7b, 0xe6, 0xf0,
+ 0x99, 0x29, 0x7a, 0x6b, 0x24, 0x74, 0xb3, 0x2d,
+ 0xd3, 0xb0, 0xd3, 0x33, 0x6f, 0x21, 0xaf, 0x1f,
+ 0xce, 0x4f, 0xea, 0x35, 0x26, 0x91, 0x93, 0xef,
+ 0xbc, 0xf6, 0x04, 0x92, 0x4f, 0x12, 0x70, 0x82,
+ 0xb2, 0xbf, 0x12, 0x46, 0x97, 0xb2, 0x84, 0x98,
+ 0xe9, 0x29, 0xd2, 0xa1, 0x72, 0xa7, 0x30, 0x6d,
+ 0xa3, 0xcf, 0x36, 0xc7, 0x68, 0x2a, 0xad, 0x42,
+ 0xa4, 0x32, 0xdf, 0xc6, 0x04, 0x70, 0xc7, 0xee,
+ 0x0e, 0xb5, 0x96, 0x0c, 0x53, 0xbf, 0x7f, 0x81,
+ 0xe7, 0xfe, 0x20, 0x71, 0x6b, 0x08, 0xa6, 0x27,
+ 0x47, 0xf2, 0xf8, 0x9e, 0x86, 0x57, 0xd5, 0x28,
+ 0xcf, 0x33, 0x0e, 0x1d, 0x5e, 0xfe, 0x93, 0x2b,
+ 0x08, 0xad, 0x70, 0x70, 0x06, 0xff, 0xbd, 0x97,
+ 0x48, 0x25, 0xba, 0x09, 0x4b, 0x3f, 0xa3, 0x63,
+ 0x52, 0xec, 0x13, 0xed, 0xa4, 0x82, 0xae, 0x4e,
+ 0xd5, 0xc3, 0xc6, 0x4f, 0x2f, 0x4c, 0x1e, 0xd1,
+ 0x15, 0xf5, 0xed, 0xc2, 0xd6, 0x7a, 0xef, 0xf6,
+ 0x3a, 0x18, 0xdd, 0x36, 0xa5, 0x9b, 0xf5, 0x09,
+ 0xe0, 0x79, 0xc0, 0x73, 0x7b, 0xcb, 0x14, 0x28,
+ 0x58, 0x5e, 0x6c, 0x30, 0x30, 0x7e, 0x71, 0xbd,
+ 0x73, 0x47, 0xe4, 0xd3, 0xbb, 0xe6, 0xda, 0xe7,
+ 0xa4, 0xe2, 0xec, 0x3c, 0xff, 0xde, 0x6e, 0xe1,
+ 0x69, 0x35, 0x59, 0x12, 0x0d, 0x7e, 0xf9, 0xb2,
+ 0x79, 0x38, 0x04, 0x18, 0xb0, 0x5b, 0x50, 0x7d,
+ 0xe3, 0x98, 0x1d, 0xba, 0xb1, 0x54, 0x15, 0x8a,
+ 0xa6, 0xbf, 0xfd, 0xee, 0x00, 0xda, 0x18, 0xe8,
+ 0x54, 0xac, 0x70, 0x44, 0x22, 0xa5, 0x7a, 0xfc,
+ 0xed, 0x2d, 0x30, 0xe3, 0xb6, 0x05, 0x03, 0x02,
+ 0x66, 0xde, 0xf5, 0x36, 0x4d, 0x65, 0x11, 0x57,
+ 0x2e, 0xb5, 0x87, 0x9e, 0x41, 0xc5, 0x98, 0x1e,
+ 0x7c, 0x5e, 0x79, 0x32, 0x34, 0x6c, 0x01, 0x65,
+ 0xa5, 0x20, 0x9a, 0x2e, 0x87, 0xf4, 0x1d, 0x3a,
+ 0x13, 0x36, 0x41, 0x05, 0x82, 0xa1, 0xe0, 0x5a,
+ 0xcf, 0x5d, 0x53, 0x1d, 0x12, 0xfd, 0xe5, 0x13,
+ 0xdb, 0xf6, 0x89, 0x3c, 0x82, 0xde, 0xee, 0x03,
+ 0x2e, 0x4c, 0xdc, 0xf6, 0xbe, 0x09, 0xc4, 0xa0,
+ 0xb8, 0x6b, 0xde, 0x89, 0xf4, 0xac, 0xa9, 0x58,
+ 0x42, 0x78, 0xa0, 0x95, 0x89, 0x27, 0xd7, 0xdc,
+ 0xb2, 0xc8, 0x1f, 0x05, 0x81, 0xb0, 0xde, 0xd3,
+ 0xf0, 0xd7, 0x2f, 0xb3, 0x5c, 0x57, 0x6c, 0xa6,
+ 0xcf, 0x21, 0xaa, 0x6d, 0x33, 0x3a, 0x07, 0x52,
+ 0xc5, 0x5e, 0x27, 0xd2, 0xa1, 0x63, 0x7d, 0x6e,
+ 0x49, 0x11, 0x4f, 0xc0, 0xb4, 0xfe, 0xd0, 0xbd,
+ 0xc5, 0xa1, 0xc2, 0x59, 0xd2, 0x2a, 0x01, 0x1d,
+ 0xd5, 0xcb, 0xb5, 0x40, 0x90, 0x41, 0x8e, 0x6c,
+ 0x8d, 0x08, 0xe7, 0xaa, 0x83, 0xb0, 0xb5, 0x23,
+ 0xe3, 0x4d, 0xe3, 0x76, 0x4e, 0xb5, 0xeb, 0xdd,
+ 0x41, 0x40, 0x4a, 0x62, 0xa6, 0x61, 0xbe, 0x5a,
+ 0x63, 0xa8, 0xc4, 0x11, 0x8b, 0x62, 0x22, 0x82,
+ 0x99, 0x02, 0x9d, 0x26, 0x08, 0x94, 0x8e, 0x90,
+ 0x7a, 0x78, 0x0c, 0x59, 0x54, 0x8f, 0x72, 0xc9,
+ 0x4b, 0x78, 0xb3, 0xb0, 0xe2, 0xfe, 0x94, 0x05,
+ 0x5d, 0xfd, 0x00, 0xc7, 0x8c, 0xf8, 0xd0, 0x03,
+ 0xeb, 0xab, 0xcc, 0xbc, 0x68, 0xf5, 0x01, 0xfd,
+ 0xb6, 0x10, 0x72, 0xc6, 0xa3, 0xb6, 0x5b, 0xc7,
+ 0xc7, 0xb4, 0x16, 0x91, 0x2d, 0x8f, 0xf2, 0x2f,
+ 0x3b, 0xf2, 0x6d, 0x16, 0x6b, 0x0d, 0x70, 0x4d,
+ 0x96, 0xdc, 0x5e, 0x45, 0xfd, 0x05, 0x4f, 0xaa,
+ 0x31, 0x92, 0xfc, 0x51, 0x35, 0xd3, 0x76, 0x3b,
+ 0x95, 0xc9, 0x91, 0x5a, 0x52, 0xc6, 0x81, 0x55,
+ 0xcb, 0x9a, 0xa8, 0x78, 0xc1, 0xbe, 0xc2, 0x80,
+ 0xd5, 0xdb, 0x25, 0xbc, 0xd0, 0xe0, 0xd1, 0xe4,
+ 0x63, 0xf2, 0x1b, 0x75, 0x5a, 0x69, 0x1f, 0x58,
+ 0x2d, 0xd2, 0xed, 0x4a, 0xf7, 0x66, 0xed, 0x66,
+ 0x9f, 0x7f, 0x79, 0x5e, 0x0b, 0x50, 0xfa, 0x28,
+ 0xb4, 0xb2, 0x5e, 0x47, 0x14, 0x11, 0x3d, 0xd8,
+ 0xef, 0x7b, 0x44, 0xb2, 0x0b, 0xbb, 0xc7, 0xd1,
+ 0x24, 0xb1, 0x8e, 0xd5, 0xd3, 0xd0, 0x3d, 0x93,
+ 0xd5, 0xba, 0x2e, 0xf0, 0x71, 0xaa, 0xc5, 0x53,
+ 0x47, 0x94, 0x6b, 0x49, 0x19, 0x95, 0x08, 0x89,
+ 0xf5, 0x09, 0xd8, 0x45, 0x14, 0x7f, 0x10, 0x0c,
+ 0x25, 0x10, 0x2d, 0x19, 0x40, 0x7c, 0x12, 0x74,
+ 0xff, 0x81, 0xc8, 0xc2, 0xce, 0xdd, 0x28, 0xb2,
+ 0x03, 0x9a, 0x91, 0x7a, 0x90, 0x0f, 0x20, 0xd6,
+ 0xf5, 0x6a, 0xd8, 0x3d, 0x64, 0x81, 0xe1, 0xcc,
+ 0xcf, 0xd9, 0xf7, 0x22, 0xa6, 0xc6, 0xf6, 0xa2,
+ 0xf8, 0xa6, 0xb4, 0x49, 0xff, 0x53, 0xb2, 0xc7,
+ 0xea, 0xa2, 0x86, 0xdb, 0x03, 0xc8, 0xa6, 0xbc,
+ 0xa2, 0x5e, 0xe1, 0x23, 0x82, 0x65, 0xaf, 0x50,
+ 0xde, 0x55, 0xb9, 0x36, 0xc8, 0x07, 0x91, 0xd8,
+ 0x6a, 0x82, 0xb2, 0x4d, 0xe6, 0xa4, 0x88, 0x57,
+ 0xbd, 0x5a, 0x09, 0xdb, 0xe0, 0x98, 0x55, 0x41,
+ 0x09, 0x3c, 0x7d, 0x1a, 0x86, 0xdb, 0xab, 0x42,
+ 0xf5, 0x8b, 0xd0, 0x45, 0x49, 0x74, 0x60, 0x0a,
+ 0x30, 0x40, 0x14, 0xfe, 0x6e, 0x17, 0xd4, 0x1b,
+ 0x07, 0x5d, 0x90, 0x56, 0x7f, 0x91, 0xe2, 0x2b,
+ 0x3d, 0xcf, 0x62, 0x0c, 0x62, 0xff, 0x83, 0xbc,
+ 0x0a, 0xf5, 0xa2, 0x46, 0x98, 0x3c, 0x11, 0x35,
+ 0x11, 0x32, 0x44, 0x3c, 0x55, 0x3a, 0xec, 0x4d,
+ 0x82, 0xe5, 0x9d, 0x6f, 0x2d, 0xd6, 0xdf, 0x43,
+ 0x36, 0xcb, 0x89, 0x6b, 0x52, 0x17, 0x38, 0x39,
+ 0x3a, 0xd0, 0xb3, 0xad, 0x27, 0xc1, 0xf3, 0x74,
+ 0x2b, 0x95, 0x38, 0x9e, 0x6b, 0x0f, 0xe2, 0xdd,
+ 0xf2, 0xc8, 0x3c, 0x16, 0x1e, 0x14, 0x58, 0x54,
+ 0xe7, 0x3f, 0xa6, 0x46, 0x5b, 0xd0, 0xcf, 0xe0,
+ 0x38, 0x60, 0x0d, 0x49, 0xa8, 0xc8, 0xce, 0x0c,
+ 0x1a, 0xee, 0x6b, 0xc6, 0xdb, 0xf1, 0x5c, 0x28,
+ 0xb0, 0x80, 0xeb, 0xed, 0x8b, 0x1f, 0xd0, 0x68,
+ 0xd5, 0x62, 0x9a, 0x30, 0xb4, 0x6e, 0x28, 0x17,
+ 0x21, 0x73, 0x41, 0x13, 0x43, 0xb6, 0x18, 0xc5,
+ 0xab, 0x42, 0xb9, 0xed, 0xd5, 0xf0, 0xea, 0x93,
+ 0x05, 0x05, 0x8c, 0x31, 0x05, 0xad, 0xb4, 0x5c,
+ 0xa5, 0x88, 0x1f, 0x70, 0x85, 0x33, 0x15, 0x53,
+ 0x93, 0xaf, 0x31, 0xf2, 0x63, 0x38, 0x8a, 0xdf,
+ 0x91, 0xc3, 0x05, 0xda, 0x64, 0x28, 0x0e, 0x8c,
+ 0x1b, 0xe0, 0xaf, 0x1f, 0xc7, 0x56, 0xbf, 0x05,
+ 0x7c, 0x88, 0x12, 0xe3, 0x24, 0x77, 0xb4, 0x8a,
+ 0x5f, 0x7c, 0xaa, 0x55, 0xbf, 0x9e, 0x64, 0x58,
+ 0xb5, 0x00, 0xa4, 0x50, 0x11, 0x52, 0xb6, 0xd6,
+ 0x93, 0x52, 0xad, 0xb7, 0xa1, 0x80, 0x43, 0xfb,
+ 0x2a, 0xdf, 0xf9, 0x6a, 0xc2, 0xde, 0x10, 0x15,
+ 0x5e, 0xdf, 0x0c, 0xdc, 0xff, 0x58, 0x67, 0x84,
+ 0x06, 0x66, 0xff, 0xca, 0x7b, 0x12, 0x53, 0x7e,
+ 0xc1, 0x63, 0x8b, 0x93, 0xef, 0xe8, 0xc0, 0xf8,
+ 0x11, 0xb1, 0xc4, 0x21, 0xd8, 0x3a, 0x4c, 0x4f,
+ 0x78, 0x4f, 0x1e, 0xb2, 0x2f, 0xea, 0x36, 0x1b,
+ 0x85, 0x43, 0x4b, 0xf2, 0x12, 0x9d, 0xd7, 0xb1,
+ 0x36, 0x44, 0xc5, 0xd5, 0x88, 0x3b, 0x79, 0x2a,
+ 0x40, 0x5e, 0xaf, 0x84, 0xe2, 0x00, 0xfd, 0x20,
+ 0xd8, 0xb9, 0xd6, 0x37, 0x87, 0xec, 0xd9, 0x44,
+ 0x4e, 0xc4, 0x21, 0xd9, 0x93, 0xc7, 0xa9, 0x9c,
+ 0xbd, 0xba, 0x0f, 0xfa, 0xbe, 0xbd, 0x52, 0xf7,
+ 0xe5, 0x5b, 0xd8, 0xad, 0x5d, 0x42, 0x8c, 0x14,
+ 0xc3, 0xea, 0xba, 0x3b, 0x1d, 0x75, 0xfa, 0xd9,
+ 0x47, 0xc5, 0xf9, 0xd0, 0xef, 0x22, 0x83, 0xa0,
+ 0x25, 0x93, 0xfc, 0xc6, 0x99, 0x23, 0x01, 0xa5,
+ 0x89, 0x91, 0x3e, 0x79, 0xb0, 0x23, 0x08, 0xc9,
+ 0x6b, 0xbb, 0x4f, 0xf2, 0x29, 0x09, 0xa5, 0x09,
+ 0x53, 0xd9, 0xa3, 0xbf, 0xb3, 0x2b, 0x1b, 0x3e,
+ 0x0c, 0x56, 0x3b, 0xa2, 0x30, 0x88, 0x1c, 0x63,
+ 0x3f, 0x46, 0x12, 0xf9, 0x61, 0xe3, 0xee, 0x64,
+ 0x63, 0x0e, 0xdd, 0x0f, 0x1d, 0x59, 0x97, 0x88,
+ 0x71, 0x18, 0xfd, 0x83, 0x67, 0x93, 0x99, 0x37,
+ 0x12, 0x91, 0xb5, 0xe8, 0x5c, 0xa2, 0xbf, 0x56,
+ 0xc5, 0xda, 0x28, 0xe1, 0xd4, 0x19, 0x4f, 0x0c,
+ 0x03, 0x73, 0xd0, 0xac, 0x52, 0xb1, 0x14, 0x42,
+ 0x56, 0x76, 0x8d, 0x8d, 0x01, 0x13, 0xd2, 0x88,
+ 0x9d, 0xd6, 0x25, 0x3c, 0x4f, 0xe2, 0x1e, 0xd9,
+ 0x8b, 0xeb, 0x60, 0x2d, 0x33, 0x5d, 0x4c, 0xaa,
+ 0xbb, 0xd2, 0xed, 0xac, 0x07, 0x54, 0x8e, 0x9d,
+ 0x4f, 0xde, 0xec, 0xcf, 0x31, 0x3d, 0xbb, 0x1a,
+ 0x08, 0x68, 0xee, 0x5e, 0xda, 0x29, 0x22, 0x8a,
+ 0x50, 0x4a, 0x91, 0xdf, 0x37, 0x18, 0xd0, 0x2a,
+ 0x52, 0x47, 0xc3, 0x97, 0x22, 0xa7, 0x1e, 0x8a,
+ 0xc8, 0xc3, 0xaa, 0xed, 0xde, 0x27, 0x73, 0xc1,
+ 0xe1, 0xaa, 0x40, 0x14, 0x5c, 0x2a, 0x02, 0xbf,
+ 0x66, 0xbd, 0xda, 0xc7, 0x2f, 0xa6, 0x52, 0x77,
+ 0x6c, 0x8a, 0x5b, 0x92, 0x03, 0x23, 0x5f, 0x14,
+ 0x5d, 0x19, 0xd0, 0x6c, 0x8f, 0x35, 0x94, 0x5e,
+ 0x8b, 0x0f, 0x00, 0x32, 0x6c, 0xf8, 0xa8, 0xe8,
+ 0x18, 0xb5, 0x5c, 0xbd, 0xc3, 0x70, 0x94, 0xcd,
+ 0x72, 0x15, 0x3e, 0x82, 0x37, 0xaa, 0x74, 0xd3,
+ 0x79, 0xe0, 0x2e, 0x47, 0x4c, 0x72, 0xfd, 0xb8,
+ 0x25, 0x40, 0xe0, 0x7a, 0x0f, 0xbf, 0xcf, 0xbf,
+ 0x63, 0xa1, 0x33, 0x8e, 0x45, 0x2c, 0xcc, 0x33,
+ 0x7f, 0xdc, 0x7f, 0xaf, 0x42, 0xf8, 0xa6, 0x10,
+ 0xc1, 0x6f, 0x81, 0x4f, 0xb4, 0xba, 0x6c, 0x22,
+ 0xc6, 0x52, 0x16, 0x9a, 0xd1, 0x10, 0x3b, 0x37,
+ 0x34, 0xa8, 0xa6, 0xe9, 0xae, 0x48, 0xdb, 0x61,
+ 0x2f, 0xf8, 0x75, 0x06, 0x23, 0x26, 0x21, 0xb1,
+ 0x38, 0x2b, 0xbe, 0x47, 0x5e, 0x69, 0xad, 0x58,
+ 0x93, 0x42, 0xd6, 0xcd, 0x04, 0x1f, 0x2f, 0x2f,
+ 0xda, 0x28, 0x0e, 0x9c, 0x85, 0x61, 0x47, 0x5a,
+ 0x81, 0xf0, 0x18, 0x1d, 0xf0, 0xce, 0xd7, 0x16,
+ 0x35, 0x48, 0xea, 0x5d, 0x04, 0xa9, 0x94, 0x40,
+ 0xb6, 0x7a, 0x6a, 0x51, 0x61, 0x3a, 0x9a, 0xd1,
+ 0xf3, 0xe1, 0x05, 0xc2, 0xc8, 0xc8, 0x3d, 0x0b,
+ 0x56, 0xd2, 0xd1, 0x6e, 0x65, 0xa4, 0xd3, 0x02,
+ 0x49, 0xe3, 0xf4, 0x6c, 0x41, 0x3d, 0x0b, 0xc1,
+ 0x9f, 0xd0, 0xae, 0xfc, 0x62, 0x90, 0xff, 0x17,
+ 0x28, 0x88, 0xa8, 0x81, 0xf7, 0x16, 0x5b, 0x4d,
+ 0x1d, 0xa0, 0x71, 0x0f, 0x45, 0xaa, 0x61, 0xad,
+ 0x78, 0x90, 0xc0, 0xf9, 0xbb, 0xb0, 0x83, 0x68,
+ 0x24, 0xa9, 0xf1, 0x51, 0x30, 0xe7, 0x37, 0x06,
+ 0xb9, 0x66, 0x90, 0xe9, 0xe4, 0x85, 0x97, 0xd8,
+ 0xb5, 0x28, 0x19, 0x62, 0x79, 0x09, 0xf6, 0x38,
+ 0x94, 0x25, 0xaf, 0xa0, 0x9c, 0xe6, 0xaf, 0x6a,
+ 0xb1, 0x62, 0x10, 0xe8, 0xf8, 0x5a, 0x1f, 0xbc,
+ 0x5e, 0x6e, 0x25, 0x0c, 0x99, 0x42, 0xa6, 0xfb,
+ 0xb6, 0xf1, 0x64, 0xf0, 0x4e, 0x3d, 0xee, 0x52,
+ 0xd3, 0x54, 0x9d, 0x47, 0x66, 0x05, 0x59, 0x40,
+ 0x6d, 0xc7, 0x7c, 0xbd, 0xf9, 0x7a, 0x5a, 0xd0,
+ 0xf0, 0xae, 0xe5, 0x2d, 0xbb, 0xd7, 0xf2, 0x8d,
+ 0x98, 0x29, 0x08, 0x2e, 0x02, 0xaf, 0x9c, 0x5e,
+ 0x8c, 0xf5, 0x8c, 0x01, 0xf8, 0xbf, 0x1b, 0xa9,
+ 0xde, 0x4e, 0xa6, 0xc8, 0xce, 0x20, 0x8f, 0x57,
+ 0xb5, 0x2a, 0x92, 0xd0, 0x19, 0x9a, 0x63, 0x03,
+ 0xa4, 0xbd, 0xef, 0xd2, 0x17, 0x05, 0x4a, 0xf9,
+ 0x0b, 0xcc, 0x06, 0xa9, 0xa6, 0xe7, 0x49, 0x95,
+ 0x0a, 0x7f, 0x25, 0x46, 0x69, 0xe0, 0x7a, 0x5f,
+ 0x29, 0xdf, 0xca, 0x39, 0xe4, 0x87, 0xe2, 0x6f,
+ 0x6c, 0x22, 0x1b, 0xb7, 0x54, 0xec, 0x9a, 0x5e,
+ 0x11, 0x62, 0x45, 0xf6, 0x0c, 0x7e, 0x8c, 0x1d,
+ 0xdd, 0x9e, 0x7f, 0x68, 0x76, 0xd7, 0xa4, 0xba,
+ 0x37, 0x6c, 0xbe, 0xf0, 0xc4, 0x27, 0x00, 0x9a,
+ 0x7c, 0x13, 0x7b, 0x7a, 0x5d, 0x6e, 0x95, 0x49,
+ 0x4a, 0xb0, 0x65, 0x46, 0xa1, 0x5e, 0x83, 0xba,
+ 0x77, 0x04, 0x4a, 0xe5, 0x72, 0x48, 0x0c, 0x03,
+ 0x00, 0x59, 0x23, 0x54, 0xf6, 0x4a, 0xa0, 0xad,
+ 0xba, 0x50, 0x44, 0x6a, 0x06, 0xb6, 0x0a, 0x7b,
+ 0xf6, 0x5d, 0xfe, 0xcd, 0x96, 0x3e, 0x51, 0x2f,
+ 0x29, 0x73, 0xba, 0x23, 0x75, 0x31, 0xe3, 0x93,
+ 0xcd, 0xa5, 0x62, 0xce, 0x70, 0x58, 0x1a, 0x2d,
+ 0xfc, 0xa1, 0xe2, 0x60, 0x08, 0x16, 0xd4, 0xd3,
+ 0x8c, 0x4c, 0x23, 0x87, 0xf9, 0xf4, 0x5a, 0x7e,
+ 0x3a, 0x2a, 0xae, 0x7a, 0xc0, 0x20, 0xcb, 0xe4,
+ 0xf0, 0x36, 0x63, 0x42, 0xdf, 0x6e, 0x08, 0xa9,
+ 0x57, 0x9d, 0x01, 0x7b, 0xd7, 0xab, 0xac, 0x48,
+ 0xbb, 0x90, 0xc4, 0xbb, 0x30, 0x5e, 0xe7, 0xe7,
+ 0x3c, 0xe3, 0x4e, 0x0b, 0xf5, 0xc4, 0x9d, 0x92,
+ 0xee, 0x1d, 0xd1, 0x75, 0xc0, 0x3c, 0xf4, 0xcc,
+ 0x7f, 0x1e, 0x38, 0xe6, 0xc3, 0x56, 0x43, 0xd6,
+ 0x66, 0x8b, 0x0e, 0x4f, 0xb0, 0xa7, 0xf8, 0x99,
+ 0xea, 0x8c, 0x63, 0x64, 0xdd, 0xdb, 0xce, 0xff,
+ 0x10, 0x73, 0x09, 0x37, 0xf8, 0xa3, 0x5a, 0xcf,
+ 0x40, 0x19, 0x6c, 0x42, 0x02, 0xca, 0x5a, 0xec,
+ 0xf1, 0xe8, 0xf3, 0x01, 0x4c, 0x15, 0x8b, 0x9f,
+ 0x30, 0xf5, 0x7c, 0xe3, 0xff, 0x7f, 0x07, 0xd5,
+ 0x2f, 0x5c, 0x91, 0xf8, 0x06, 0x20, 0x11, 0xda,
+ 0x5a, 0x96, 0x21, 0xfc, 0x57, 0xe1, 0x83, 0x22,
+ 0x65, 0xf8, 0xdd, 0xb1, 0xff, 0xd0, 0xfa, 0xb2,
+ 0x1a, 0x9b, 0xfb, 0x8a, 0x0a, 0xb8, 0xdc, 0xd5,
+ 0xc6, 0x21, 0x3f, 0xf1, 0x80, 0xa7, 0x45, 0xbd,
+ 0xe3, 0x04, 0xfc, 0x96, 0xf7, 0x05, 0x9a, 0xd6,
+ 0xc5, 0x9d, 0xe9, 0x87, 0x5d, 0x67, 0xc2, 0xc9,
+ 0xc1, 0x9d, 0x4f, 0x91, 0x3f, 0x4e, 0x9d, 0x24,
+ 0xb2, 0x3e, 0xc2, 0xef, 0x9a, 0x48, 0xd0, 0xdf,
+ 0x16, 0x22, 0x84, 0xb7, 0x25, 0xc7, 0xf5, 0x02,
+ 0xc0, 0x4c, 0x67, 0xe1, 0xd0, 0xe2, 0x9f, 0xec,
+ 0xf5, 0xca, 0x73, 0x61, 0x41, 0xdf, 0x43, 0xc5,
+ 0xaa, 0xfb, 0x36, 0x5a, 0x80, 0x6b, 0x1f, 0xb4,
+ 0x90, 0xdf, 0x22, 0xbd, 0x19, 0xe9, 0x4f, 0xeb,
+ 0x8c, 0x1c, 0xe7, 0xe1, 0x87, 0x16, 0x3f, 0x2d,
+ 0x9e, 0xbc, 0xa3, 0xfb, 0x11, 0x6c, 0x90, 0x85,
+ 0xff, 0xd9, 0x8d, 0xa8, 0x40, 0xfe, 0x94, 0x6c,
+ 0x3b, 0x9d, 0xbc, 0xba, 0xbc, 0x1c, 0xca, 0x57,
+ 0x88, 0x53, 0x81, 0x9f, 0xd3, 0xd4, 0x0c, 0xc9,
+ 0x97, 0x8f, 0x08, 0x78, 0xf7, 0x2f, 0xc2, 0xb8,
+ 0xcb, 0xf0, 0x89, 0x4d, 0x9b, 0x03, 0x9e, 0xa2,
+ 0xe2, 0x85, 0x70, 0xc2, 0x82, 0x2f, 0xa2, 0x89,
+ 0x1c, 0x10, 0xd6, 0x17, 0x28, 0xf3, 0xf9, 0xb6,
+ 0x67, 0xf4, 0x54, 0x28, 0x0e, 0xbf, 0x82, 0xe6,
+ 0xd0, 0xe0, 0x94, 0x02, 0x68, 0x3d, 0xf8, 0xcc,
+ 0xfe, 0x92, 0x88, 0x58, 0x53, 0x6c, 0xd4, 0xee,
+ 0xfc, 0x3d, 0x1d, 0x5e, 0x67, 0x4c, 0xcf, 0xa2,
+ 0x66, 0xe1, 0x66, 0xba, 0x12, 0xff, 0x4b, 0xdd,
+ 0xb1, 0x5b, 0xd6, 0x36, 0xdd, 0x63, 0x91, 0x4c,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x36, 0xf0, 0x59, 0x02, 0xad, 0xbc, 0xce, 0x83,
+ 0xe2, 0xe5, 0x4d, 0x6d, 0x0c, 0x61, 0xbd, 0x20,
+ 0x27, 0x5f, 0x55, 0x63, 0xc7, 0x02, 0x8f, 0xd5,
+ 0x01, 0x45, 0xb9, 0x4f, 0x41, 0x27, 0xd8, 0x0d,
+ 0x87, 0x63, 0xb3, 0x53, 0x67, 0xa1, 0x82, 0x5f,
+ 0xf3, 0xff, 0xef, 0xd0, 0x1b, 0x34, 0x9d, 0x27,
+ 0xf0, 0xbb, 0xb9, 0x66, 0x4e, 0xbd, 0x25, 0x57,
+ 0xae, 0x21, 0xf9, 0x2f, 0x7f, 0x46, 0x71, 0x11,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0x27, 0x29, 0xe8, 0x15, 0x0d, 0x05, 0x00, 0xb6,
+ 0xc3, 0xb9, 0x44, 0xfc, 0x1e, 0xbd, 0xc3, 0x83,
+ 0x2b, 0x43, 0x95, 0x93, 0x14, 0x69, 0x36, 0x9d,
+ 0x65, 0x8c, 0xf6, 0x3f, 0xcb, 0x1e, 0x09, 0xa9,
+ 0x9b, 0x31, 0x52, 0xd8, 0x85, 0x08, 0x5c, 0xbd,
+ 0xfb, 0x7e, 0x43, 0xb8, 0x7b, 0x56, 0x14, 0xfc,
+ 0x08, 0x13, 0x59, 0x87, 0x4e, 0xd9, 0xc0, 0xdb,
+ 0xfc, 0xd4, 0x71, 0x81, 0x56, 0x35, 0x86, 0x90,
+ 0x2e, 0x74, 0x71, 0x67, 0xe3, 0x1c, 0xc6, 0x59,
+ 0x97, 0x4e, 0x05, 0x0f, 0xfc, 0xf3, 0x31, 0x00,
+ 0x90, 0x94, 0x93, 0x89, 0x6b, 0x8b, 0xfe, 0x2d,
+ 0xb2, 0xa1, 0x27, 0x15, 0x4a, 0x92, 0xec, 0x6c,
+ 0xa9, 0x29, 0x0f, 0x7f, 0x3c, 0x30, 0x7a, 0x27,
+ 0xe2, 0x37, 0x06, 0x8c, 0x4a, 0x7d, 0x8b, 0x3d,
+ 0x8d, 0xee, 0x89, 0x40, 0xd1, 0x64, 0x03, 0xf7,
+ 0x9e, 0x6d, 0x23, 0x25, 0xfd, 0xcb, 0x16, 0x12,
+ 0xcb, 0x2e, 0x7e, 0x87, 0x5c, 0x66, 0x9a, 0x9c,
+ 0x0f, 0x78, 0xd3, 0x71, 0xbb, 0xc6, 0xce, 0x38,
+ 0x68, 0x2c, 0xae, 0x8a, 0x28, 0xce, 0x61, 0xed,
+ 0x22, 0xd1, 0x5c, 0xb2, 0x3a, 0xc7, 0xa8, 0x90,
+ 0xb8, 0xfb, 0x35, 0xca, 0x85, 0x6a, 0xab, 0xbd,
+ 0x48, 0xae, 0x2d, 0x4b, 0x53, 0x6f, 0xa0, 0x46,
+ 0xad, 0x30, 0x82, 0xdf, 0x01, 0xb1, 0x6f, 0x65,
+ 0x8c, 0x29, 0xab, 0xc7, 0x19, 0xfc, 0x97, 0x01,
+ 0x13, 0x5a, 0x7c, 0xc1, 0x06, 0x29, 0x26, 0xbc,
+ 0x8b, 0xa1, 0xca, 0x77, 0xca, 0x5e, 0xa4, 0x09,
+ 0x14, 0xf4, 0xbb, 0xfc, 0xac, 0x46, 0x1f, 0xb0,
+ 0xd9, 0xf5, 0x9a, 0x16, 0xab, 0x32, 0xd3, 0x15,
+ 0xd3, 0xe6, 0x4e, 0x09, 0xa7, 0x6c, 0x50, 0x76,
+ 0x47, 0xee, 0x27, 0xbe, 0x85, 0x9b, 0xc2, 0xad,
+ 0xb7, 0x95, 0x30, 0x26, 0x75, 0x32, 0xdc, 0xfe,
+ 0x4b, 0x6f, 0x76, 0x48, 0xa9, 0x48, 0x68, 0x3d,
+ 0x44, 0x5b, 0xf0, 0xcd, 0xce, 0x24, 0x91, 0x91,
+ 0x74, 0x4f, 0x9f, 0x4b, 0x32, 0xd3, 0x87, 0x9a,
+ 0x4a, 0x8c, 0xe4, 0x13, 0xc0, 0x3b, 0xc0, 0x56,
+ 0x57, 0xc9, 0x4e, 0x49, 0xff, 0x64, 0x0a, 0xa8,
+ 0x94, 0x6a, 0xa2, 0xdb, 0x60, 0x29, 0xd3, 0x16,
+ 0x09, 0x48, 0x30, 0x59, 0x85, 0x61, 0x23, 0xb8,
+ 0x9c, 0x77, 0xab, 0xeb, 0xed, 0xc8, 0xe5, 0x6a,
+ 0xef, 0xbc, 0x24, 0xc0, 0x80, 0x74, 0x54, 0xe3,
+ 0xf4, 0xea, 0xdc, 0xc3, 0x97, 0x62, 0xc7, 0x99,
+ 0xb6, 0x9b, 0x20, 0x86, 0x86, 0xd0, 0x35, 0x1a,
+ 0x37, 0xee, 0xca, 0x18, 0x88, 0xd4, 0xf0, 0xb0,
+ 0x18, 0xad, 0x63, 0x80, 0x89, 0x04, 0xaa, 0x78,
+ 0x93, 0x6a, 0x58, 0x64, 0x84, 0x8c, 0x10, 0x95,
+ 0x5b, 0x7b, 0x18, 0x62, 0x5f, 0xce, 0xf1, 0x51,
+ 0xde, 0x8c, 0xd7, 0x4c, 0x98, 0x1d, 0x03, 0x7b,
+ 0xa0, 0x41, 0x20, 0x9d, 0x71, 0xcd, 0xb3, 0xf4,
+ 0x16, 0x36, 0x93, 0x53, 0x2e, 0x1c, 0x25, 0xfc,
+ 0xaa, 0xed, 0xaf, 0x54, 0x26, 0x52, 0xa3, 0xd0,
+ 0x60, 0xc5, 0xad, 0x3b, 0x52, 0x6b, 0x70, 0x19,
+ 0xa3, 0x0f, 0x5f, 0x7f, 0x36, 0x9e, 0xe2, 0x32,
+ 0xb2, 0xe2, 0xc1, 0xd2, 0xca, 0xbd, 0x42, 0xa8,
+ 0xb9, 0x82, 0x7b, 0x12, 0xf5, 0x84, 0x49, 0x17,
+ 0x7a, 0x66, 0x76, 0xf9, 0x95, 0x2c, 0x66, 0xf7,
+ 0x2e, 0xa4, 0xdc, 0x5d, 0xd1, 0x15, 0xc7, 0x9e,
+ 0x19, 0x3d, 0x0e, 0x91, 0xdc, 0xcd, 0x14, 0xbc,
+ 0xef, 0x59, 0x10, 0xcd, 0x3b, 0x73, 0x47, 0xe5,
+ 0xe1, 0x50, 0x1f, 0xbb, 0x1f, 0xf2, 0x14, 0xe3,
+ 0x13, 0xd5, 0x61, 0x71, 0x1d, 0xf5, 0x0f, 0x10,
+ 0x2c, 0x4b, 0xde, 0x31, 0x99, 0x6f, 0x7b, 0x23,
+ 0x08, 0x29, 0x36, 0x15, 0x93, 0x61, 0xe4, 0x5a,
+ 0xce, 0xe1, 0xcb, 0x2b, 0x20, 0x5d, 0x87, 0xf4,
+ 0x39, 0x83, 0xf4, 0xf3, 0xfa, 0xb7, 0xc5, 0x86,
+ 0x2e, 0x37, 0x62, 0x6d, 0x6b, 0xbd, 0x9d, 0xcd,
+ 0x65, 0xe4, 0x9e, 0x12, 0xe0, 0xf0, 0x79, 0x16,
+ 0xe6, 0x62, 0x3c, 0xb6, 0x5e, 0x9e, 0x78, 0x90,
+ 0xee, 0xd7, 0x46, 0x41, 0x88, 0xdf, 0x3a, 0xe3,
+ 0x28, 0xa3, 0x0b, 0x66, 0xa3, 0xb2, 0x80, 0x9d,
+ 0x26, 0x68, 0x07, 0x58, 0x94, 0xbd, 0x2a, 0x90,
+ 0x2d, 0x2c, 0x22, 0x7e, 0x89, 0xff, 0x8b, 0xbb,
+ 0xb3, 0x1e, 0xbe, 0x43, 0xee, 0x35, 0x3c, 0x2d,
+ 0x45, 0xf0, 0x14, 0x4d, 0xe2, 0xca, 0x01, 0x57,
+ 0x0b, 0x12, 0xf2, 0xe1, 0x8a, 0x0e, 0x47, 0x1b,
+ 0xa6, 0x7f, 0xef, 0xa4, 0x82, 0xc3, 0x88, 0x34,
+ 0xd7, 0xe2, 0xec, 0x0b, 0xf4, 0x1e, 0xf5, 0x81,
+ 0x14, 0x40, 0xac, 0x50, 0xf3, 0x06, 0x2b, 0xec,
+ 0x12, 0x7b, 0x68, 0x24, 0x22, 0x03, 0x0f, 0xe9,
+ 0x69, 0x9f, 0x4f, 0x73, 0x26, 0x79, 0x0b, 0x00,
+ 0x24, 0x6a, 0x84, 0x7d, 0xa7, 0x74, 0xa0, 0xee,
+ 0x95, 0x46, 0x1f, 0x8d, 0x72, 0x19, 0xd5, 0x1a,
+ 0x4d, 0xe5, 0x0a, 0x69, 0x3d, 0xe0, 0x42, 0x5c,
+ 0xc4, 0x6b, 0x8f, 0xb1, 0xd9, 0xe4, 0x4e, 0xf6,
+ 0x34, 0xc0, 0xcc, 0x66, 0x7d, 0x23, 0xb0, 0xc4,
+ 0xde, 0x41, 0x41, 0xe6, 0xf9, 0x7d, 0x9a, 0x71,
+ 0x5a, 0xfd, 0x81, 0x28, 0xd6, 0x17, 0x14, 0xc8,
+ 0xc9, 0x51, 0x06, 0xb6, 0xb7, 0xa2, 0xeb, 0xbe,
+ 0x04, 0xc5, 0xbf, 0xa1, 0xeb, 0x8b, 0xf9, 0x69,
+ 0xb6, 0x31, 0xec, 0xd8, 0xb3, 0x71, 0x6c, 0x67,
+ 0x22, 0x33, 0xe6, 0x90, 0x3e, 0xe6, 0xa7, 0x7c,
+ 0xd7, 0x36, 0x2e, 0x06, 0x30, 0x3c, 0x36, 0xf4,
+ 0xca, 0xdc, 0xe6, 0xaa, 0xee, 0x1c, 0x84, 0x3b,
+ 0x43, 0x64, 0x65, 0x0e, 0xb4, 0xc9, 0x68, 0x9e,
+ 0x53, 0x21, 0x95, 0x8e, 0x49, 0xbc, 0x77, 0xfa,
+ 0x30, 0x7d, 0x72, 0x81, 0x30, 0x76, 0x34, 0x75,
+ 0x06, 0xa9, 0xc9, 0x1a, 0x95, 0xf1, 0xd7, 0x7b,
+ 0x0e, 0xe3, 0x11, 0xdb, 0xe8, 0x3e, 0xd4, 0x8f,
+ 0xb9, 0xc1, 0x85, 0x30, 0x1b, 0xb2, 0x73, 0xc7,
+ 0x63, 0x8c, 0x70, 0x4a, 0x8b, 0x61, 0xc3, 0xca,
+ 0x8e, 0xcd, 0x95, 0xd2, 0x51, 0x9b, 0xae, 0x58,
+ 0xbc, 0x0a, 0x26, 0x31, 0x98, 0x28, 0x8e, 0xed,
+ 0x96, 0x81, 0x28, 0xec, 0x0a, 0xb6, 0x75, 0xa1,
+ 0xd1, 0x77, 0xc9, 0xc7, 0x9a, 0x30, 0xf3, 0xe8,
+ 0xea, 0xae, 0x41, 0x61, 0x92, 0x9c, 0xd7, 0xec,
+ 0x69, 0x53, 0x4f, 0xd3, 0x7d, 0xee, 0x3b, 0x98,
+ 0xf9, 0x9e, 0xa0, 0xe9, 0x47, 0xd4, 0x8f, 0xdc,
+ 0x19, 0x25, 0xff, 0x72, 0xeb, 0x96, 0x48, 0x16,
+ 0x63, 0x44, 0xb1, 0xb1, 0xec, 0x93, 0x3f, 0x0c,
+ 0xd3, 0x7c, 0x57, 0xa3, 0x75, 0xb0, 0x58, 0xcf,
+ 0xbc, 0x73, 0xdf, 0xb6, 0xb9, 0xe6, 0x54, 0x6a,
+ 0x84, 0x02, 0x01, 0xc9, 0xb2, 0x37, 0x52, 0x58,
+ 0x72, 0xb0, 0x17, 0xe5, 0xe9, 0x05, 0xf9, 0x79,
+ 0x6f, 0xf0, 0xab, 0x67, 0x33, 0xf2, 0xaf, 0xd4,
+ 0x00, 0x3e, 0x51, 0xc2, 0x03, 0x3f, 0x95, 0x08,
+ 0x99, 0xc4, 0x91, 0x3e, 0xff, 0x97, 0x5f, 0xf6,
+ 0x0e, 0x5a, 0xcf, 0x6f, 0x24, 0xbb, 0x6c, 0x70,
+ 0x26, 0x24, 0x51, 0x32, 0xd9, 0x6d, 0xa9, 0xcb,
+ 0x7d, 0x8c, 0x76, 0xb4, 0x34, 0x30, 0x7d, 0xb9,
+ 0x9d, 0x69, 0xe5, 0x22, 0x42, 0xf8, 0x6c, 0x77,
+ 0xdc, 0x0b, 0x87, 0x00, 0xd9, 0x22, 0x72, 0x94,
+ 0x82, 0x0e, 0xd5, 0xa3, 0x3b, 0x92, 0xeb, 0xee,
+ 0x1e, 0xe8, 0x73, 0xb4, 0xab, 0x41, 0x55, 0x10,
+ 0x53, 0x6a, 0x61, 0x54, 0x76, 0xa0, 0x94, 0x90,
+ 0xd5, 0xe4, 0x74, 0x2c, 0xdb, 0xe3, 0x94, 0x5c,
+ 0x09, 0x31, 0x1e, 0x16, 0x2e, 0x0a, 0xb5, 0x34,
+ 0x85, 0x15, 0x43, 0x5a, 0x41, 0x83, 0xcb, 0xd1,
+ 0xda, 0xbf, 0x71, 0xcc, 0x77, 0x09, 0x82, 0xc6,
+ 0x08, 0x79, 0xf3, 0x78, 0x1f, 0xfd, 0xef, 0x8c,
+ 0x56, 0xe5, 0x7d, 0x68, 0x06, 0x93, 0xf9, 0x4b,
+ 0x91, 0x07, 0xb4, 0x09, 0x4d, 0xc6, 0xb1, 0xf5,
+ 0x92, 0x62, 0x3d, 0x2f, 0x35, 0x49, 0xaf, 0x15,
+ 0xb9, 0x6c, 0xab, 0x2e, 0xa7, 0x9e, 0x20, 0x59,
+ 0xe7, 0x7d, 0xf6, 0x8d, 0x18, 0x5e, 0xed, 0x68,
+ 0x5c, 0x94, 0xf5, 0x45, 0x44, 0xb5, 0x5d, 0x86,
+ 0x4c, 0xe3, 0x69, 0x0f, 0xe3, 0x29, 0xb2, 0xf6,
+ 0x2a, 0xd4, 0xee, 0x7c, 0x9b, 0xe6, 0xad, 0xcf,
+ 0x90, 0x34, 0x85, 0xca, 0xc5, 0xa1, 0x36, 0xdd,
+ 0x7b, 0xaf, 0x36, 0x5e, 0x7c, 0xf3, 0x55, 0xf9,
+ 0xae, 0x8d, 0x23, 0xcf, 0x33, 0x98, 0xdc, 0x4e,
+ 0x09, 0xcb, 0x81, 0x12, 0x2f, 0x88, 0x52, 0x5a,
+ 0xd8, 0xeb, 0x56, 0x86, 0xab, 0x30, 0x57, 0xe9,
+ 0x26, 0x62, 0x02, 0xfd, 0xb0, 0xf4, 0xfd, 0xff,
+ 0xf7, 0xf7, 0xe5, 0x65, 0x94, 0x7e, 0x3b, 0xc5,
+ 0x76, 0x4e, 0x3f, 0x4d, 0x31, 0xc8, 0x46, 0xbe,
+ 0xbf, 0x98, 0x70, 0x46, 0x71, 0x61, 0xd1, 0x02,
+ 0x98, 0xd9, 0xf8, 0xc0, 0xcc, 0x0c, 0x08, 0x09,
+ 0x71, 0x10, 0xb1, 0x30, 0xa9, 0x7f, 0x0a, 0x21,
+ 0xf9, 0xc5, 0x28, 0x35, 0x23, 0x1e, 0xfe, 0xab,
+ 0x03, 0x18, 0x2a, 0x34, 0xe0, 0xcb, 0x5c, 0x19,
+ 0x45, 0x2b, 0xec, 0x63, 0xfe, 0xaf, 0x60, 0x72,
+ 0x61, 0x2e, 0x7a, 0xd9, 0x7d, 0x08, 0xb2, 0xd7,
+ 0x90, 0x7a, 0xc8, 0xbe, 0x4d, 0xf6, 0xa1, 0xf5,
+ 0xe4, 0xe5, 0xd1, 0x6d, 0x02, 0xec, 0x2a, 0x01,
+ 0x9c, 0xc4, 0xee, 0x41, 0x10, 0x47, 0xee, 0x22,
+ 0x30, 0x12, 0xf6, 0xd3, 0x3c, 0x0e, 0xa6, 0x78,
+ 0x77, 0x2e, 0x61, 0xfd, 0xa2, 0x5f, 0x73, 0x9c,
+ 0x25, 0xbc, 0xa3, 0xf2, 0x72, 0xe0, 0xc6, 0xdc,
+ 0xb6, 0xc7, 0x7b, 0xb5, 0x93, 0xc2, 0x60, 0x1e,
+ 0x52, 0xd3, 0x25, 0x28, 0xbd, 0xd0, 0x0d, 0xd7,
+ 0x31, 0xd9, 0x2c, 0xe8, 0xb3, 0xb9, 0x5c, 0x1e,
+ 0x74, 0x6b, 0x91, 0xff, 0xd2, 0x0f, 0x03, 0x32,
+ 0x36, 0x75, 0x26, 0x12, 0xee, 0xa0, 0x25, 0xdb,
+ 0x23, 0x5f, 0x3e, 0x6f, 0x36, 0x7f, 0x4e, 0x89,
+ 0xa3, 0x4d, 0x30, 0xd6, 0xa2, 0xe4, 0x66, 0xfc,
+ 0x0b, 0x4b, 0x07, 0x53, 0xa9, 0xd6, 0x61, 0x7b,
+ 0x4b, 0xa4, 0xe9, 0x5a, 0xe6, 0xf6, 0xed, 0xe5,
+ 0x9b, 0xb0, 0xc0, 0x6a, 0xa6, 0x7e, 0x13, 0xa4,
+ 0x66, 0xb9, 0x39, 0xf5, 0x2a, 0x27, 0x26, 0x35,
+ 0x58, 0x36, 0x73, 0x8c, 0x7a, 0x9d, 0x69, 0x31,
+ 0x25, 0xd5, 0x14, 0xdf, 0x21, 0x68, 0xe3, 0xa3,
+ 0xa4, 0x43, 0x07, 0x2d, 0x0b, 0x7f, 0x8b, 0xa5,
+ 0x0b, 0x13, 0xe0, 0xe2, 0x0b, 0xcf, 0xc6, 0x9b,
+ 0xe6, 0xe4, 0x39, 0x13, 0xf7, 0x2a, 0x44, 0x76,
+ 0x60, 0x88, 0x96, 0xd9, 0xe4, 0xf1, 0xe0, 0xc9,
+ 0xc8, 0xf4, 0x17, 0x56, 0x4c, 0x06, 0xda, 0x2d,
+ 0xea, 0xf4, 0x6b, 0x51, 0xb1, 0xff, 0xbc, 0x2e,
+ 0x08, 0xbd, 0x8f, 0xe2, 0x40, 0xac, 0x78, 0x7a,
+ 0x16, 0xf7, 0xb8, 0xd5, 0x31, 0xd0, 0x3c, 0xab,
+ 0x75, 0x0f, 0xf1, 0xd0, 0x29, 0x6c, 0x88, 0xa6,
+ 0x08, 0x64, 0xb0, 0x21, 0x6a, 0x0d, 0x21, 0xfb,
+ 0x36, 0xd0, 0xe4, 0x65, 0xe8, 0x82, 0x95, 0x35,
+ 0xfb, 0xde, 0x07, 0x10, 0xfd, 0x84, 0xc0, 0xf8,
+ 0x99, 0xe2, 0x58, 0xa3, 0x16, 0xe0, 0xb6, 0x62,
+ 0xf2, 0xa1, 0xd9, 0xb0, 0xf4, 0x28, 0xa0, 0xbf,
+ 0x2a, 0x40, 0x5c, 0xef, 0xa3, 0xbc, 0xb1, 0x2e,
+ 0x45, 0xd8, 0xbc, 0x21, 0x5d, 0x9d, 0x91, 0x33,
+ 0xc1, 0x38, 0xd5, 0x68, 0x61, 0x67, 0x8e, 0xb0,
+ 0x37, 0xf8, 0x6d, 0xf6, 0xc5, 0x5d, 0x89, 0xd0,
+ 0x5a, 0x4f, 0xde, 0x74, 0x9a, 0x3d, 0x70, 0x79,
+ 0xfc, 0xa7, 0x18, 0x4f, 0x52, 0xd9, 0xbc, 0x5c,
+ 0x60, 0xd6, 0xfb, 0x95, 0x8f, 0xa9, 0x90, 0xc0,
+ 0x71, 0xe7, 0xc4, 0x51, 0xbd, 0x10, 0x13, 0xcf,
+ 0xf9, 0x3a, 0x04, 0xae, 0x92, 0x1e, 0xd3, 0x6a,
+ 0x54, 0x67, 0x92, 0xa7, 0x14, 0x04, 0x67, 0x53,
+ 0xb9, 0x9f, 0xe1, 0xd2, 0xfc, 0x50, 0x20, 0xd5,
+ 0x98, 0x02, 0xb7, 0xbc, 0x72, 0xac, 0xf6, 0x53,
+ 0x1f, 0x7b, 0x8d, 0x05, 0x21, 0xdd, 0x43, 0x43,
+ 0x38, 0x11, 0x8b, 0x1c, 0x11, 0xb0, 0x27, 0x87,
+ 0xba, 0xf3, 0x09, 0xc2, 0x2a, 0x2b, 0x89, 0x49,
+ 0x2c, 0xdc, 0xc4, 0x95, 0x92, 0x3a, 0x8e, 0xec,
+ 0x7b, 0xf4, 0x18, 0xf0, 0xc2, 0x39, 0x6c, 0xaa,
+ 0x24, 0xc6, 0xd3, 0x36, 0x73, 0x48, 0xe5, 0x33,
+ 0x02, 0x8a, 0x5c, 0x03, 0xee, 0x9f, 0xa7, 0x04,
+ 0x87, 0x85, 0x28, 0x03, 0xd5, 0x6b, 0xca, 0x0a,
+ 0xac, 0xfd, 0xb6, 0xc7, 0x1e, 0x5d, 0x50, 0xf9,
+ 0x7e, 0xc9, 0x61, 0x59, 0xb5, 0x31, 0xe2, 0x30,
+ 0xd5, 0xa6, 0xac, 0x44, 0x3d, 0x47, 0x04, 0x18,
+ 0x54, 0x67, 0xae, 0x0a, 0xea, 0x3d, 0xd0, 0x33,
+ 0x24, 0xb3, 0x56, 0x55, 0xe8, 0xea, 0x07, 0xa4,
+ 0x6a, 0x0e, 0xd3, 0xbd, 0x56, 0x7f, 0x8a, 0x5a,
+ 0xbf, 0xd3, 0x40, 0xd4, 0xd8, 0x3e, 0xa3, 0xe6,
+ 0xc0, 0x4e, 0x01, 0x4d, 0x6a, 0xe9, 0x7e, 0x91,
+ 0x8b, 0x1f, 0x3d, 0x6d, 0x38, 0x4a, 0xbd, 0xdb,
+ 0x8e, 0xf3, 0x0a, 0x1d, 0xb7, 0x2c, 0x95, 0xb7,
+ 0xff, 0xaf, 0x6d, 0xed, 0x68, 0xd4, 0x68, 0x20,
+ 0x86, 0x13, 0x45, 0x19, 0xc4, 0x50, 0x6c, 0x94,
+ 0xc2, 0x71, 0xea, 0x69, 0x9d, 0x12, 0xff, 0xe1,
+ 0xd0, 0xc7, 0x1b, 0x9f, 0x21, 0xce, 0x1d, 0x19,
+ 0x3a, 0x3c, 0xf3, 0x5f, 0x24, 0x89, 0x95, 0x2a,
+ 0x37, 0x85, 0x18, 0xd7, 0x4f, 0xf4, 0x6f, 0x53,
+ 0x9c, 0x63, 0xce, 0x41, 0x0f, 0x76, 0x99, 0xa1,
+ 0x23, 0xdd, 0x30, 0x52, 0xde, 0x56, 0xe1, 0xe5,
+ 0xef, 0xbf, 0x9e, 0x96, 0xd5, 0x1f, 0x3b, 0x37,
+ 0x3d, 0x2b, 0xd1, 0xaf, 0xf2, 0x00, 0x70, 0xa5,
+ 0x03, 0xe0, 0xb2, 0xcb, 0xa1, 0xa5, 0x77, 0xb0,
+ 0xc3, 0xfe, 0xb9, 0x55, 0xe2, 0x45, 0x7f, 0xf4,
+ 0x10, 0xe0, 0x0d, 0x58, 0x4c, 0x80, 0x2a, 0xb1,
+ 0xf0, 0x2f, 0x69, 0xc1, 0x14, 0xa1, 0xe0, 0x47,
+ 0xed, 0x02, 0x1e, 0x6c, 0x70, 0x83, 0x61, 0xc9,
+ 0xa5, 0x6d, 0xeb, 0xfd, 0xb7, 0x3d, 0x76, 0x39,
+ 0xd8, 0x8e, 0xbc, 0xbc, 0x5a, 0xe1, 0xe0, 0x01,
+ 0x8d, 0xb7, 0xd9, 0x1c, 0x97, 0x2b, 0xb6, 0x12,
+ 0x6f, 0x61, 0x29, 0x08, 0xe9, 0x59, 0xb6, 0x88,
+ 0x37, 0x47, 0x7d, 0x91, 0xc2, 0x6c, 0x84, 0x1f,
+ 0xc0, 0xc8, 0x93, 0x98, 0xe3, 0xc3, 0xdc, 0x74,
+ 0x1d, 0x3e, 0xe3, 0x8e, 0x1e, 0xd3, 0x4f, 0x57,
+ 0x92, 0xd0, 0xf5, 0x12, 0x93, 0xe3, 0x27, 0x8d,
+ 0x0e, 0xa1, 0xad, 0x6a, 0x04, 0x4e, 0xac, 0x79,
+ 0xb1, 0xff, 0x35, 0x36, 0x57, 0x2a, 0x18, 0x1e,
+ 0xcc, 0xe2, 0x8e, 0x4b, 0x58, 0x76, 0x6b, 0xc8,
+ 0xe7, 0x8b, 0x0f, 0x18, 0xe0, 0x56, 0xa7, 0x87,
+ 0x21, 0xd0, 0xd5, 0xd9, 0x76, 0x44, 0x6b, 0xd0,
+ 0xe7, 0x0d, 0xaa, 0x4b, 0x3c, 0xb9, 0x15, 0x68,
+ 0xfe, 0xad, 0x89, 0x9f, 0x11, 0x6d, 0x6d, 0x29,
+ 0x51, 0xc4, 0x07, 0x95, 0x9d, 0x33, 0xa2, 0xee,
+ 0x02, 0xab, 0x31, 0x65, 0xfd, 0x8c, 0x5c, 0x3a,
+ 0x38, 0x46, 0xcb, 0x29, 0x33, 0x53, 0xd9, 0x81,
+ 0xdd, 0xbb, 0x4a, 0x71, 0xfc, 0x7d, 0xd4, 0x38,
+ 0xf2, 0x81, 0x6c, 0xbc, 0xb5, 0x4d, 0x1e, 0xd6,
+ 0x6c, 0x21, 0x51, 0x4d, 0x63, 0x28, 0x57, 0x9f,
+ 0x8f, 0xd4, 0x7f, 0x92, 0x70, 0x4f, 0xe7, 0x0d,
+ 0x2f, 0xe0, 0x74, 0x28, 0x16, 0xf0, 0x40, 0x97,
+ 0x5c, 0xd0, 0x37, 0x93, 0x23, 0x57, 0xa1, 0xb7,
+ 0x2f, 0x44, 0xd8, 0xd1, 0x1b, 0xea, 0x10, 0x85,
+ 0x76, 0x3b, 0xa6, 0xb3, 0x94, 0x26, 0x26, 0xa8,
+ 0xd7, 0xbf, 0x69, 0x43, 0x1c, 0xdd, 0x58, 0xb7,
+ 0x3b, 0x4d, 0x77, 0xae, 0x0d, 0xea, 0x35, 0x73,
+ 0xa7, 0x5e, 0xe1, 0x94, 0xa8, 0xc4, 0x3f, 0x42,
+ 0xef, 0x79, 0x19, 0xf3, 0xbf, 0x4f, 0xd7, 0x65,
+ 0x81, 0xe0, 0xcd, 0x5d, 0x98, 0x5c, 0x30, 0x1c,
+ 0x51, 0x25, 0xb8, 0xfe, 0x04, 0x93, 0x45, 0x9c,
+ 0xee, 0xee, 0x4d, 0x03, 0x75, 0x35, 0x08, 0x1e,
+ 0x94, 0x08, 0x50, 0xa8, 0x6b, 0x14, 0x4e, 0xbe,
+ 0x92, 0x48, 0x9f, 0xd7, 0x9c, 0x34, 0x0f, 0xa2,
+ 0x31, 0x49, 0xe9, 0xd7, 0x9d, 0xed, 0x08, 0xcf,
+ 0xb2, 0x28, 0xd6, 0x4f, 0x78, 0xfc, 0x84, 0xca,
+ 0xb4, 0xeb, 0xa8, 0x61, 0x31, 0xe5, 0xcc, 0xfd,
+ 0x4d, 0x24, 0x31, 0xb0, 0x18, 0x4c, 0x68, 0x45,
+ 0x0d, 0xcd, 0x3f, 0xbc, 0x1d, 0xa5, 0xec, 0xe4,
+ 0xe1, 0x66, 0xaa, 0x52, 0x2c, 0xc2, 0x0b, 0xdc,
+ 0xeb, 0xf4, 0xe3, 0x31, 0xc6, 0x86, 0xb2, 0x32,
+ 0x24, 0x44, 0x95, 0x0a, 0x3d, 0x87, 0x97, 0xc7,
+ 0xff, 0x40, 0x65, 0x75, 0x04, 0x51, 0x4d, 0x81,
+ 0x2f, 0x60, 0x8e, 0x58, 0xf9, 0x66, 0x10, 0xb2,
+ 0x5e, 0xdb, 0xf0, 0x64, 0x9c, 0x49, 0x8b, 0x91,
+ 0xb7, 0x2e, 0x47, 0xf9, 0xaf, 0x80, 0x5c, 0x34,
+ 0xf4, 0x32, 0x12, 0x76, 0x91, 0x9b, 0x46, 0x1c,
+ 0xce, 0xa5, 0x94, 0xb8, 0xd3, 0x97, 0xfc, 0x35,
+ 0xc0, 0x40, 0xc0, 0xd6, 0x49, 0xd9, 0x32, 0x2c,
+ 0x0a, 0x1e, 0xab, 0x00, 0xab, 0xf5, 0xd6, 0xd6,
+ 0x77, 0xad, 0xc4, 0xfd, 0x2a, 0x48, 0xc7, 0x73,
+ 0xbc, 0xc6, 0x63, 0x53, 0x7c, 0x2b, 0x92, 0xdf,
+ 0xd8, 0x33, 0xec, 0x34, 0x1e, 0xd0, 0x29, 0x8a,
+ 0x52, 0xd8, 0xf7, 0xd3, 0xcb, 0xd1, 0x55, 0x3b,
+ 0x0d, 0x14, 0xb6, 0x96, 0xf1, 0x62, 0xc5, 0x09,
+ 0x30, 0xee, 0xef, 0x0f, 0xef, 0xf9, 0x5b, 0x96,
+ 0x0a, 0xf2, 0x06, 0x82, 0x5f, 0x25, 0x59, 0xaa,
+ 0xa4, 0xa3, 0x65, 0x33, 0xa1, 0x0c, 0xd5, 0xeb,
+ 0xf2, 0xf3, 0xc2, 0x40, 0x06, 0x4a, 0xb3, 0x9c,
+ 0xd2, 0xc7, 0x3f, 0xa1, 0xd6, 0xe9, 0xb3, 0x0a,
+ 0x4e, 0x3b, 0x37, 0x40, 0x17, 0x76, 0xd7, 0x3d,
+ 0x8e, 0xff, 0x40, 0x13, 0xa8, 0xe9, 0xee, 0x68,
+ 0x06, 0xdd, 0x8b, 0x0d, 0x83, 0x11, 0xd3, 0x86,
+ 0x6b, 0x1d, 0x19, 0x51, 0xa2, 0xd7, 0x16, 0x45,
+ 0xd6, 0x98, 0x75, 0xf7, 0x6d, 0x6f, 0x61, 0x95,
+ 0x5f, 0x7e, 0xe2, 0xf7, 0x42, 0x82, 0x0c, 0x72,
+ 0x69, 0xa9, 0x15, 0xb3, 0x2a, 0xc0, 0xc5, 0x5d,
+ 0x89, 0x41, 0x7f, 0xa7, 0x12, 0xa3, 0x03, 0x7e,
+ 0x3e, 0x76, 0x38, 0xc7, 0xb6, 0x1c, 0xc0, 0xb6,
+ 0x2f, 0xe7, 0x17, 0x80, 0x8a, 0xd0, 0xee, 0x38,
+ 0xbc, 0x63, 0xe2, 0xa1, 0xd6, 0x34, 0x3d, 0xa9,
+ 0x97, 0x6c, 0x5f, 0x39, 0xac, 0x1c, 0x25, 0x87,
+ 0xc1, 0x1f, 0x2b, 0x4b, 0xda, 0x09, 0xa3, 0xb9,
+ 0x91, 0x71, 0xdb, 0x48, 0x79, 0xd2, 0xa2, 0xfb,
+ 0x5f, 0x36, 0xfd, 0x74, 0x1f, 0x40, 0x51, 0x5f,
+ 0xc3, 0x21, 0x33, 0x7a, 0xea, 0x03, 0x94, 0x83,
+ 0x89, 0x73, 0x08, 0x91, 0xf5, 0x6a, 0x1d, 0x31,
+ 0x69, 0x86, 0xd1, 0xed, 0xf8, 0x0a, 0x7c, 0xe4,
+ 0xb8, 0xfb, 0x4f, 0x3d, 0x14, 0x73, 0xe7, 0xdc,
+ 0x7a, 0xb9, 0xd0, 0xaf, 0xad, 0x0d, 0x15, 0x08,
+ 0xb4, 0xb9, 0x0a, 0x48, 0x06, 0xe8, 0xbb, 0xd4,
+ 0x7e, 0xf7, 0xee, 0xdd, 0x65, 0x88, 0x6a, 0xbc,
+ 0x6b, 0x40, 0x49, 0x5b, 0x53, 0x11, 0x10, 0x17,
+ 0x92, 0x0a, 0xb9, 0x4a, 0xfd, 0xa2, 0x4c, 0xe4,
+ 0x18, 0xd8, 0xbb, 0x6e, 0x60, 0xb1, 0xba, 0x36,
+ 0xd0, 0xa6, 0xd2, 0x2f, 0x6b, 0x42, 0x9f, 0x31,
+ 0xaf, 0xe0, 0x36, 0x5c, 0xc0, 0x64, 0x48, 0x07,
+ 0xd6, 0x2a, 0xe3, 0xb5, 0x9e, 0xcf, 0x26, 0x9a,
+ 0x8e, 0x49, 0xaf, 0xe5, 0xd7, 0x94, 0x5b, 0x20,
+ 0xab, 0x59, 0x3b, 0xe2, 0xdb, 0x39, 0xab, 0x65,
+ 0xda, 0xdb, 0x56, 0xfc, 0x20, 0x0e, 0xb7, 0xa5,
+ 0xa4, 0x96, 0x1f, 0xd2, 0xe4, 0xce, 0x7a, 0xba,
+ 0x83, 0x00, 0xac, 0x89, 0x9b, 0xcb, 0x01, 0x3d,
+ 0xba, 0xf0, 0x57, 0x47, 0xba, 0xdd, 0xa1, 0xf7,
+ 0xe3, 0x84, 0x28, 0xdf, 0xf7, 0x70, 0xd3, 0x08,
+ 0xcf, 0xb9, 0x9b, 0x97, 0x14, 0x48, 0x80, 0x40,
+ 0xd8, 0x6b, 0x1e, 0xaa, 0xa1, 0x5b, 0x42, 0x17,
+ 0x05, 0xe9, 0x61, 0x8f, 0x98, 0x5f, 0x26, 0x19,
+ 0x84, 0x26, 0x30, 0x94, 0x52, 0xce, 0x50, 0xaa,
+ 0x9b, 0x13, 0x0c, 0xad, 0x97, 0x96, 0xcb, 0x10,
+ 0xc1, 0xb0, 0x85, 0x7b, 0x7c, 0xe9, 0xc6, 0xae,
+ 0x96, 0x39, 0xfc, 0x43, 0x7c, 0x77, 0x12, 0x53,
+ 0x70, 0xf0, 0xec, 0x95, 0x2a, 0x7c, 0x60, 0x18,
+ 0x50, 0x3f, 0x0d, 0x35, 0x88, 0x0b, 0xc1, 0x7b,
+ 0xba, 0x55, 0xc6, 0xad, 0x4b, 0xc8, 0x52, 0x11,
+ 0xec, 0xe3, 0x60, 0xc1, 0xe1, 0x79, 0xb4, 0x57,
+ 0x3f, 0x84, 0x9a, 0xb6, 0xef, 0x6f, 0x7e, 0x57,
+ 0xba, 0xcc, 0xae, 0xd4, 0xca, 0x5f, 0xe1, 0xb5,
+ 0x11, 0x5a, 0x44, 0x91, 0x3a, 0x2e, 0x5c, 0xbc,
+ 0xd2, 0x13, 0x4f, 0x00, 0x58, 0x69, 0xbf, 0xa4,
+ 0x14, 0x89, 0xcf, 0x88, 0x9a, 0xf4, 0x6c, 0x16,
+ 0x3a, 0xdb, 0x83, 0x0b, 0x4d, 0xe7, 0x69, 0x37,
+ 0x17, 0xe1, 0xf0, 0xfb, 0x1c, 0xab, 0x20, 0xac,
+ 0xe7, 0x54, 0x4a, 0xd6, 0x0f, 0x6e, 0x61, 0x30,
+ 0xbe, 0xff, 0xbf, 0x1e, 0x3f, 0xaf, 0x25, 0x62,
+ 0x17, 0x25, 0xfc, 0xca, 0x39, 0x36, 0x74, 0xed,
+ 0xa9, 0xfa, 0x35, 0xd3, 0xa6, 0xf7, 0x6f, 0xa5,
+ 0x4a, 0x33, 0x6b, 0x58, 0x82, 0x5d, 0x79, 0x71,
+ 0x9c, 0x9f, 0x38, 0xb6, 0x98, 0xe1, 0x4f, 0xce,
+ 0xa3, 0xbb, 0x6e, 0xb4, 0x6c, 0x7f, 0xd1, 0x99,
+ 0x02, 0x36, 0xbd, 0xa1, 0xe9, 0xc9, 0xbc, 0x8b,
+ 0xeb, 0xbf, 0xf1, 0xb8, 0xea, 0xda, 0x71, 0x39,
+ 0xd4, 0x95, 0xc5, 0xb7, 0x6c, 0x2a, 0x92, 0xc9,
+ 0xd7, 0x68, 0xd8, 0xd2, 0xc1, 0x5e, 0xda, 0xac,
+ 0x0a, 0x44, 0x6c, 0x0a, 0x1f, 0xaf, 0x0a, 0x2f,
+ 0xa1, 0x1c, 0x7e, 0x2b, 0x53, 0x47, 0x7c, 0x60,
+ 0x36, 0x7a, 0xb2, 0x9a, 0x01, 0xec, 0x8a, 0x72,
+ 0x08, 0xe8, 0xb9, 0xc5, 0x03, 0x86, 0x13, 0x6b,
+ 0x88, 0x20, 0xf3, 0x5e, 0x53, 0x22, 0x08, 0x9b,
+ 0x43, 0xce, 0x4e, 0x6d, 0x98, 0xed, 0xb5, 0x7b,
+ 0x9e, 0x9b, 0xc0, 0xda, 0xff, 0x8e, 0x55, 0x40,
+ 0x4d, 0xdb, 0xe5, 0xc0, 0x34, 0x18, 0x4c, 0x6f,
+ 0x7a, 0x10, 0xac, 0x8d, 0xc0, 0xf1, 0xdd, 0xdc,
+ 0xa7, 0xea, 0x86, 0xcf, 0x8e, 0x73, 0x31, 0x54,
+ 0x0b, 0x1f, 0x1d, 0x1d, 0xa3, 0x9a, 0x92, 0x14,
+ 0x72, 0xc6, 0x2b, 0x9f, 0x36, 0x25, 0xbe, 0x4a,
+ 0x6f, 0xe4, 0xfd, 0xe9, 0xd4, 0x44, 0x12, 0xff,
+ 0xbd, 0xfa, 0xc4, 0xac, 0xe6, 0xad, 0x15, 0x60,
+ 0x75, 0x76, 0x54, 0x76, 0x05, 0xb8, 0xde, 0xed,
+ 0x73, 0xd2, 0x91, 0x1a, 0x23, 0x11, 0xde, 0x4b,
+ 0x49, 0x7d, 0xd4, 0xdd, 0x77, 0x45, 0xb5, 0xc6,
+ 0xfc, 0xb7, 0x55, 0x29, 0x84, 0x03, 0x8a, 0xcc,
+ 0x5a, 0x88, 0x88, 0xb0, 0x6c, 0x14, 0x33, 0xc7,
+ 0xab, 0x79, 0x75, 0x9a, 0x46, 0xa1, 0xab, 0x5e,
+ 0x93, 0x8f, 0x2c, 0x4f, 0xc7, 0x54, 0xaa, 0x27,
+ 0x64, 0x91, 0xbe, 0xb6, 0xa0, 0xc3, 0x9e, 0x08,
+ 0xea, 0x06, 0x8f, 0x7e, 0x0c, 0x50, 0x1f, 0xfc,
+ 0x2e, 0xd3, 0xdf, 0x06, 0x23, 0x35, 0xa7, 0xbb,
+ 0x0d, 0xe6, 0xd2, 0x18, 0x24, 0x7a, 0xbd, 0xa7,
+ 0x0c, 0x40, 0x69, 0x92, 0x62, 0xec, 0xe3, 0x04,
+ 0x9e, 0x43, 0x16, 0xb8, 0xa3, 0x5f, 0x3d, 0x00,
+ 0xf3, 0xc6, 0xfc, 0x73, 0x8c, 0xa8, 0xda, 0x76,
+ 0xaf, 0x20, 0x3c, 0x0c, 0xdb, 0xc4, 0x21, 0x86,
+ 0xcd, 0x21, 0xac, 0x2c, 0xd4, 0x8e, 0xc3, 0x18,
+ 0xdb, 0x6b, 0xa6, 0xe3, 0x84, 0xcc, 0xd2, 0xa0,
+ 0x0a, 0xb0, 0x83, 0x56, 0xbf, 0x24, 0x6b, 0x25,
+ 0xa1, 0xe7, 0xe4, 0x58, 0x13, 0x5d, 0xa2, 0x25,
+ 0x09, 0xae, 0x97, 0x79, 0x1e, 0x2e, 0x56, 0xb7,
+ 0x35, 0x55, 0xf0, 0x1a, 0xa1, 0x7b, 0x11, 0x0c,
+ 0x4b, 0xad, 0x83, 0x26, 0x6e, 0x14, 0xea, 0x89,
+ 0x6d, 0x39, 0x7d, 0x27, 0x67, 0x9b, 0xaf, 0x05,
+ 0x58, 0x25, 0xc9, 0x99, 0xe8, 0x9a, 0x3c, 0xff,
+ 0xc9, 0x1c, 0x1a, 0x3c, 0xeb, 0x87, 0xba, 0xd4,
+ 0xcb, 0x7d, 0x9a, 0x36, 0x42, 0xb7, 0xa3, 0x62,
+ 0xed, 0xf2, 0xd2, 0x67, 0x48, 0x63, 0x82, 0xc1,
+ 0x77, 0x10, 0x04, 0x74, 0x24, 0x66, 0x28, 0x9f,
+ 0xd5, 0xcb, 0x0d, 0xbb, 0x74, 0x3f, 0x1a, 0x02,
+ 0xcc, 0x47, 0x8d, 0x59, 0xba, 0xcf, 0xc6, 0xe8,
+ 0xcb, 0x7f, 0xbc, 0xc5, 0xdf, 0x08, 0x12, 0xd0,
+ 0x88, 0x1c, 0x6f, 0xa3, 0xad, 0xdd, 0x67, 0x90,
+ 0x23, 0x4e, 0xe9, 0x07, 0x77, 0x62, 0x4f, 0x1e,
+ 0x4c, 0xa8, 0x3b, 0xe7, 0xcf, 0x37, 0xfb, 0xa1,
+ 0x7f, 0x13, 0xe5, 0x90, 0xd7, 0xdf, 0x96, 0x10,
+ 0x16, 0x9a, 0x3e, 0x40, 0x73, 0x77, 0x11, 0x72,
+ 0x04, 0x7e, 0x31, 0x37, 0xdf, 0x14, 0xdf, 0xcc,
+ 0x83, 0xaf, 0xa8, 0x44, 0xf3, 0x68, 0xb6, 0xe6,
+ 0x6c, 0x21, 0x0c, 0x28, 0x2e, 0xdb, 0xd0, 0xd8,
+ 0x11, 0x33, 0x54, 0x4c, 0x9a, 0x89, 0x95, 0x81,
+ 0xbd, 0x2b, 0x73, 0x2c, 0x63, 0x80, 0x91, 0xef,
+ 0x0d, 0x29, 0xdc, 0xb3, 0x31, 0xfb, 0xc7, 0x3e,
+ 0x02, 0x2f, 0x37, 0x68, 0x2d, 0xa2, 0xf3, 0x39,
+ 0x20, 0xb1, 0x99, 0xc6, 0x91, 0xd6, 0x7a, 0xa7,
+ 0x23, 0x7e, 0x09, 0x72, 0xb8, 0x4f, 0x19, 0x43,
+ 0xba, 0x5a, 0x2e, 0x9b, 0xea, 0x07, 0xcf, 0xab,
+ 0x95, 0x14, 0x2a, 0xdc, 0xf7, 0x6a, 0x67, 0xe9,
+ 0xf5, 0xf9, 0x08, 0x4b, 0x9d, 0x1e, 0x44, 0x9e,
+ 0x25, 0x3e, 0xb6, 0x2f, 0xc9, 0xa0, 0x6a, 0x53,
+ 0xdd, 0xaa, 0x6d, 0xc7, 0xba, 0x0a, 0x83, 0x82,
+ 0xda, 0x28, 0x8b, 0x08, 0xd9, 0xc1, 0xcf, 0xb5,
+ 0x12, 0xea, 0x57, 0xf2, 0xc7, 0x2b, 0x6e, 0xdd,
+ 0xdc, 0xff, 0x2e, 0xf6, 0xa8, 0xe1, 0x52, 0xd4,
+ 0x93, 0x85, 0x02, 0x4a, 0x5f, 0xc7, 0x94, 0x4b,
+ 0x4c, 0x79, 0xfb, 0xd4, 0xfd, 0xc2, 0x97, 0x47,
+ 0xf0, 0xce, 0xda, 0x16, 0x17, 0xf7, 0xf8, 0x2f,
+ 0x70, 0x74, 0x9e, 0xe5, 0xb9, 0x30, 0x86, 0x3f,
+ 0x6d, 0xed, 0x56, 0x81, 0xb7, 0x6d, 0xf6, 0x60,
+ 0x6f, 0xc4, 0xd0, 0x98, 0x13, 0xa3, 0xd9, 0x43,
+ 0x12, 0x4f, 0xa0, 0x62, 0xfa, 0xfe, 0xe6, 0xbb,
+ 0xea, 0x5e, 0xd6, 0xdf, 0x01, 0x83, 0x21, 0x40,
+ 0xc5, 0x8b, 0x3d, 0xc7, 0xaf, 0x01, 0xdd, 0xa9,
+ 0x18, 0x17, 0x2a, 0x70, 0x24, 0x03, 0x78, 0xc0,
+ 0xe3, 0x6a, 0x06, 0xcf, 0xd2, 0x7f, 0xa3, 0x44,
+ 0x9e, 0xa0, 0xbc, 0x1a, 0x7b, 0x4e, 0x2c, 0x3f,
+ 0x13, 0x31, 0xf3, 0x58, 0x1f, 0x37, 0x11, 0x3d,
+ 0x16, 0x25, 0x9e, 0x31, 0x15, 0x61, 0xa2, 0x64,
+ 0xc0, 0x01, 0xe3, 0x1c, 0x20, 0x59, 0x63, 0x04,
+ 0x36, 0x1b, 0x10, 0x6d, 0x3a, 0x30, 0xac, 0x40,
+ 0x99, 0x76, 0xdf, 0x47, 0xc0, 0x89, 0x64, 0x2b,
+ 0x85, 0x07, 0x18, 0x6d, 0x40, 0x47, 0xe7, 0x03,
+ 0x31, 0x29, 0x33, 0xc5, 0x46, 0x51, 0x4f, 0x0c,
+ 0x79, 0xb2, 0x45, 0x0e, 0xd9, 0xa9, 0xe7, 0xed,
+ 0x15, 0x60, 0xa7, 0xec, 0xbd, 0x15, 0x47, 0xba,
+ 0x40, 0x7a, 0xa6, 0xb2, 0x29, 0x13, 0xcc, 0xc3,
+ 0x3b, 0xbc, 0x00, 0x69, 0xc6, 0x4a, 0x16, 0xc4,
+ 0x60, 0xc2, 0x9a, 0x30, 0xd2, 0x16, 0x67, 0x83,
+ 0x03, 0xee, 0x01, 0x62, 0xb7, 0xa5, 0x15, 0x62,
+ 0x89, 0x09, 0xd0, 0x9b, 0x71, 0x58, 0x4f, 0x8b,
+ 0x1a, 0x14, 0x85, 0xfd, 0x39, 0x69, 0x06, 0x5b,
+ 0xb5, 0xf2, 0xe1, 0x4b, 0xcf, 0xaa, 0x7b, 0x76,
+ 0xe3, 0x17, 0x2f, 0x6e, 0x1c, 0xd0, 0xb9, 0x5b,
+ 0xa7, 0x5a, 0x65, 0x6e, 0x46, 0x8d, 0x7b, 0xb2,
+ 0xec, 0x39, 0x08, 0x2f, 0x6d, 0xaf, 0x0a, 0xe2,
+ 0xcd, 0xa7, 0xc6, 0xea, 0x59, 0xfe, 0xc0, 0x5d,
+ 0x31, 0x3e, 0x5d, 0x90, 0x67, 0x2f, 0xee, 0xd4,
+ 0xad, 0xde, 0xdb, 0x08, 0x1d, 0x0d, 0x9a, 0xfa,
+ 0xe4, 0xea, 0xa0, 0x02, 0xf8, 0x4f, 0x70, 0x5d,
+ 0xda, 0x0b, 0xb2, 0x16, 0x7c, 0x5c, 0xbf, 0x91,
+ 0x10, 0x6f, 0x6d, 0x8a, 0x57, 0x45, 0x2a, 0x20,
+ 0xe0, 0xd5, 0x94, 0x69, 0x84, 0x49, 0xd6, 0x0e,
+ 0x94, 0x5f, 0x40, 0x15, 0xf6, 0x6c, 0xa1, 0xbc,
+ 0xef, 0x79, 0x8c, 0xdd, 0x86, 0xe3, 0x74, 0x91,
+ 0x1d, 0xc6, 0x7b, 0x95, 0xc2, 0x4d, 0x26, 0xec,
+ 0x26, 0x98, 0xc8, 0x13, 0xdc, 0x86, 0xfb, 0x50,
+ 0x15, 0x2d, 0xce, 0x19, 0x71, 0x1c, 0x78, 0xad,
+ 0x9e, 0xc5, 0x92, 0xa3, 0x68, 0xf4, 0x87, 0xf4,
+ 0x6d, 0x74, 0xd2, 0x4e, 0x63, 0x0b, 0x98, 0x17,
+ 0xdf, 0x47, 0xa5, 0x73, 0x1f, 0x99, 0xac, 0x16,
+ 0xd8, 0x44, 0xff, 0xc4, 0xf7, 0x5c, 0xec, 0x51,
+ 0xd1, 0x55, 0xb9, 0xcb, 0x2b, 0xa7, 0x5b, 0x95,
+ 0xe8, 0x9c, 0x22, 0x6c, 0x2d, 0x75, 0xab, 0x74,
+ 0x56, 0xd7, 0x75, 0x3b, 0x32, 0xfa, 0x63, 0x90,
+ 0x03, 0x32, 0x94, 0xfa, 0x8c, 0x0b, 0x1e, 0x0b,
+ 0xa9, 0x8b, 0x65, 0x15, 0x17, 0xd1, 0x2c, 0x12,
+ 0x7c, 0xa5, 0xaa, 0x12, 0x56, 0x09, 0x33, 0x02,
+ 0xa5, 0xd7, 0x51, 0xc0, 0xa2, 0x96, 0x9d, 0x92,
+ 0x2f, 0x92, 0xfd, 0x9a, 0x7e, 0xca, 0x14, 0x54,
+ 0xa6, 0xbf, 0xa8, 0x68, 0x80, 0xff, 0x0e, 0x2f,
+ 0xe4, 0x8b, 0xef, 0x29, 0xa5, 0x84, 0x01, 0x5d,
+ 0xa1, 0x18, 0xe8, 0x29, 0x16, 0xfa, 0x88, 0xdc,
+ 0x06, 0x1a, 0x0f, 0xb2, 0xf8, 0x66, 0x9c, 0x7d,
+ 0x55, 0x3e, 0x7f, 0xf8, 0x8b, 0xbc, 0x35, 0x19,
+ 0x82, 0x73, 0x4e, 0xe8, 0x89, 0x40, 0x6d, 0x2f,
+ 0xec, 0xa2, 0x28, 0x11, 0x3b, 0x8d, 0xa3, 0x91,
+ 0xa4, 0xbd, 0x03, 0x2d, 0xbe, 0x53, 0x1f, 0x7d,
+ 0x86, 0x6d, 0x0d, 0xf2, 0x1c, 0x5b, 0x2b, 0xe0,
+ 0x30, 0xc8, 0xf9, 0xe9, 0x38, 0x17, 0xa5, 0x4b,
+ 0x0e, 0xa5, 0xba, 0xb6, 0x4a, 0xfc, 0xf7, 0x01,
+ 0xd2, 0x84, 0x13, 0x81, 0x77, 0xad, 0x0a, 0x19,
+ 0x0a, 0x42, 0xc2, 0xb0, 0x62, 0x17, 0x18, 0x6f,
+ 0xee, 0x85, 0x04, 0x52, 0xef, 0x60, 0x9a, 0xf2,
+ 0x22, 0xfe, 0x60, 0x50, 0xbd, 0x40, 0x77, 0x22,
+ 0x30, 0x80, 0x98, 0xcd, 0x3f, 0xbd, 0xc1, 0xc2,
+ 0x8e, 0x0c, 0xd1, 0xae, 0xa4, 0x24, 0x1f, 0x6e,
+ 0x88, 0x22, 0x49, 0x47, 0x5c, 0x18, 0xc3, 0xc2,
+ 0xd6, 0xc7, 0x60, 0x63, 0x6a, 0xc0, 0x91, 0x21,
+ 0x43, 0x14, 0xd8, 0x6e, 0x87, 0xa0, 0xe4, 0xf2,
+ 0xd2, 0x15, 0x69, 0xdf, 0xfb, 0x2e, 0x30, 0x98,
+ 0x1e, 0xba, 0xa6, 0xfd, 0x9f, 0xc2, 0x10, 0x49,
+ 0x63, 0xe3, 0x1b, 0x62, 0x53, 0x7d, 0xb6, 0x5a,
+ 0xd0, 0xcb, 0x96, 0x06, 0x78, 0x9d, 0x6b, 0x3b,
+ 0x5e, 0xa4, 0x97, 0x68, 0xb7, 0x64, 0xd0, 0xbd,
+ 0x12, 0x04, 0x04, 0xcf, 0x33, 0x86, 0x44, 0xc7,
+ 0x82, 0xac, 0xb5, 0x60, 0xb2, 0x3a, 0x27, 0x1c,
+ 0x61, 0xc9, 0x22, 0x61, 0x62, 0x2d, 0xd8, 0x85,
+ 0xa8, 0x1e, 0x10, 0x97, 0xf8, 0x01, 0x8f, 0x0c,
+ 0x89, 0xdc, 0x08, 0xdf, 0xbc, 0x56, 0xff, 0x05,
+ 0xaf, 0xc4, 0x4c, 0xa8, 0x86, 0xec, 0x4a, 0xc1,
+ 0xdd, 0x87, 0x49, 0x62, 0x85, 0xa3, 0x2e, 0x3a,
+ 0x07, 0x65, 0xa3, 0xb4, 0x1b, 0x94, 0xc6, 0x89,
+ 0x31, 0xfc, 0xca, 0x2c, 0x1b, 0xdc, 0xab, 0x07,
+ 0x73, 0xed, 0xc3, 0xf8, 0xd8, 0x98, 0xd0, 0x04,
+ 0x8a, 0xf2, 0x47, 0xad, 0x70, 0x31, 0x8e, 0x3e,
+ 0x68, 0x25, 0x2b, 0x1d, 0x2e, 0xda, 0x01, 0x69,
+ 0x76, 0xec, 0x59, 0xe0, 0x7f, 0xc0, 0x98, 0x5a,
+ 0xed, 0x58, 0xa0, 0x34, 0x0b, 0x9c, 0x33, 0x26,
+ 0x9a, 0x21, 0x8c, 0x9c, 0x57, 0x3b, 0x44, 0x91,
+ 0xdc, 0x46, 0x7a, 0x6f, 0xed, 0xc9, 0x6b, 0xb1,
+ 0x96, 0x2e, 0x98, 0x4d, 0x46, 0xe3, 0xe8, 0x6e,
+ 0x07, 0xa6, 0x14, 0xec, 0xeb, 0x7d, 0xb7, 0xb1,
+ 0x8f, 0x4e, 0x1b, 0x26, 0xe1, 0xda, 0xde, 0xc0,
+ 0xdf, 0x91, 0xa7, 0xa6, 0xaa, 0xc5, 0x5a, 0x47,
+ 0x73, 0x5f, 0xa2, 0x42, 0x8a, 0x9a, 0x5b, 0x42,
+ 0x75, 0x18, 0x7f, 0x95, 0xf0, 0x2a, 0x85, 0x38,
+ 0x9a, 0x79, 0xdc, 0x75, 0x1a, 0x4a, 0xb2, 0x50,
+ 0x0e, 0x00, 0xaf, 0x0b, 0x22, 0xf5, 0x0e, 0xe8,
+ 0x8f, 0x29, 0xca, 0x6e, 0x14, 0x30, 0x35, 0xbd,
+ 0xbe, 0x3b, 0x2d, 0x61, 0xaa, 0xd3, 0x88, 0x3d,
+ 0x24, 0x85, 0x06, 0xaf, 0x20, 0xec, 0x0b, 0xe3,
+ 0xaf, 0x95, 0x60, 0x8c, 0x57, 0xff, 0x5c, 0x0b,
+ 0x73, 0xc5, 0x8e, 0x92, 0xe0, 0xdc, 0x32, 0x0c,
+ 0xf2, 0x5c, 0xb7, 0x17, 0x6f, 0x27, 0x1e, 0x85,
+ 0x78, 0xb4, 0x20, 0x65, 0x72, 0xab, 0x25, 0x20,
+ 0x4a, 0x2a, 0xe0, 0x1c, 0x1b, 0x80, 0xa0, 0x5f,
+ 0xa5, 0x9c, 0x43, 0x5b, 0xbe, 0xa1, 0x09, 0xce,
+ 0x26, 0xce, 0x04, 0x73, 0xa2, 0x1b, 0x4e, 0x03,
+ 0x1a, 0xa7, 0x76, 0xc3, 0x07, 0x35, 0xec, 0x9f,
+ 0x00, 0xa0, 0x3a, 0xc5, 0xed, 0x9d, 0x88, 0xc8,
+ 0x56, 0xdf, 0x0a, 0xd4, 0xa9, 0x06, 0xab, 0x0f,
+ 0xcf, 0x87, 0xb0, 0xd7, 0x6f, 0x10, 0xe9, 0x62,
+ 0x5c, 0x0c, 0x0b, 0x2d, 0x82, 0x94, 0x18, 0x34,
+ 0xda, 0xdc, 0xd8, 0x19, 0x36, 0xc5, 0xaf, 0x39,
+ 0x74, 0xd4, 0xf4, 0x75, 0x63, 0x70, 0x27, 0xdd,
+ 0x6f, 0xf5, 0xe6, 0xa9, 0x71, 0x5a, 0xd2, 0xdf,
+ 0x2c, 0x23, 0x95, 0x0c, 0x3e, 0x35, 0x63, 0x71,
+ 0xc9, 0xab, 0x90, 0x1c, 0x2a, 0x83, 0xc2, 0x2d,
+ 0x6d, 0x22, 0x23, 0x9c, 0x49, 0x97, 0x07, 0x6b,
+ 0xaf, 0x70, 0xdd, 0x07, 0x6a, 0x1c, 0x1e, 0x36,
+ 0xee, 0x1e, 0x17, 0xf2, 0x52, 0x52, 0x3a, 0xf6,
+ 0xe8, 0xc4, 0x57, 0x9b, 0x64, 0xa7, 0xf5, 0xcd,
+ 0xf3, 0xdd, 0xc4, 0xd2, 0x53, 0x1b, 0x9a, 0xa0,
+ 0x58, 0x22, 0x29, 0xde, 0x8b, 0xd8, 0xd5, 0x0f,
+ 0xd7, 0x0a, 0x61, 0x2d, 0xee, 0x80, 0x2d, 0x5e,
+ 0x16, 0x57, 0x07, 0x09, 0xce, 0x19, 0x58, 0xfd,
+ 0xfd, 0x27, 0xa1, 0x15, 0xe1, 0x22, 0xf9, 0x4a,
+ 0x8c, 0x46, 0x11, 0xf8, 0x67, 0x64, 0x44, 0x95,
+ 0x9f, 0x13, 0x0a, 0xd7, 0x24, 0x26, 0x2a, 0x6c,
+ 0x51, 0xd4, 0x19, 0xec, 0xd8, 0xd1, 0x9f, 0x81,
+ 0x28, 0x77, 0xc8, 0x24, 0xf6, 0xbf, 0x48, 0xab,
+ 0x85, 0xa1, 0x85, 0x69, 0x68, 0x2f, 0x53, 0x84,
+ 0xd0, 0x43, 0x68, 0x86, 0x20, 0xd8, 0x71, 0x1f,
+ 0xc3, 0x97, 0xaa, 0x71, 0x97, 0xe7, 0x1d, 0x4b,
+ 0xf1, 0x1f, 0x8e, 0x1b, 0x66, 0x82, 0xd8, 0x4f,
+ 0xcc, 0xfe, 0xee, 0x59, 0xdc, 0xb8, 0x3e, 0x36,
+ 0x27, 0x05, 0x60, 0x3d, 0x72, 0x22, 0x03, 0xbb,
+ 0x5b, 0xd8, 0x95, 0x6d, 0xa1, 0xd3, 0xd4, 0xef,
+ 0x6e, 0xe9, 0xe9, 0x2c, 0x93, 0x72, 0xec, 0x52,
+ 0xac, 0x4d, 0xf9, 0x8a, 0xb8, 0xd1, 0x7d, 0x65,
+ 0xf3, 0x1f, 0x07, 0xab, 0x1f, 0x53, 0xcf, 0x3b,
+ 0x21, 0x9b, 0xa9, 0xc1, 0xc4, 0xd6, 0xdb, 0x31,
+ 0x75, 0xa9, 0xb0, 0xdf, 0xe4, 0xf9, 0x16, 0x30,
+ 0x3f, 0x46, 0x58, 0x61, 0x9f, 0xa2, 0xce, 0xf4,
+ 0x3b, 0x4c, 0x84, 0xac, 0xc4, 0xd2, 0xed, 0xf1,
+ 0x1b, 0x42, 0x7d, 0x9c, 0xaf, 0xc4, 0xd2, 0xf6,
+ 0xff, 0x17, 0x1c, 0x24, 0x43, 0x55, 0x5a, 0x5b,
+ 0x63, 0x66, 0x6b, 0x6e, 0x97, 0xa6, 0xb1, 0xb3,
+ 0xd7, 0x56, 0x57, 0x60, 0xdc, 0xe9, 0xfc, 0x08,
+ 0x15, 0x24, 0x35, 0x4d, 0x55, 0x90, 0x94, 0x97,
+ 0xae, 0xc2, 0x00, 0x07, 0x0e, 0x18, 0x20, 0x29,
+ 0x39, 0x3f, 0x4a, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0xa3, 0xf7, 0x20, 0x75, 0xd5, 0x7e, 0x0a, 0xaa,
+ 0xcc, 0x5c, 0xfb, 0x8c, 0xdd, 0x90, 0x74, 0xe4,
+ 0xc6, 0x08, 0xdd, 0x16, 0xf7, 0xd3, 0xbd, 0xa9,
+ 0x05, 0xba, 0xf9, 0xc5, 0xac, 0x63, 0x0e, 0x22,
+ 0xb5, 0x97, 0x18, 0x5e, 0x6c, 0x69, 0x5b, 0x1e,
+ 0x00, 0x7c, 0xb4, 0x33, 0x5c, 0xe0, 0x1e, 0x8e,
+ 0x6a, 0x4a, 0xc7, 0x7c, 0xb6, 0x85, 0xa1, 0xc1,
+ 0x31, 0x0d, 0x50, 0x4f, 0x6e, 0x57, 0x03, 0x4d,
+ 0x3d, 0x77, 0x40, 0x5b, 0x87, 0xaf, 0xd2, 0xf9,
+ 0xf4, 0xd0, 0xa5, 0x9e, 0x12, 0x86, 0x17, 0x17,
+ 0xc6, 0x13, 0x78, 0x8d, 0xaa, 0x6a, 0x54, 0xb8,
+ 0x62, 0x82, 0xc2, 0x78, 0x76, 0x7c, 0x4e, 0xfd,
+ 0x5b, 0x8b, 0x19, 0x82, 0x25, 0x4f, 0x6c, 0xf2,
+ 0xf0, 0x50, 0x5b, 0x1d, 0x2d, 0xa9, 0x32, 0xf0,
+ 0x0d, 0x46, 0x34, 0xca, 0xa2, 0x7d, 0xe5, 0x32,
+ 0x0b, 0x8b, 0x6c, 0x8e, 0xab, 0x92, 0xb8, 0xc1,
+ 0x6a, 0x9c, 0x4a, 0x4e, 0x4b, 0x2f, 0xf2, 0x66,
+ 0xcf, 0xd3, 0x3e, 0x87, 0xe1, 0x0e, 0x90, 0xdb,
+ 0x7f, 0xc1, 0x6b, 0xf9, 0x70, 0xdc, 0x7a, 0xc5,
+ 0x86, 0x7e, 0x49, 0x17, 0x0f, 0xdf, 0xbd, 0x72,
+ 0x36, 0x24, 0x5a, 0x4f, 0x55, 0x6d, 0xe0, 0xce,
+ 0x9c, 0x3b, 0x7a, 0x5c, 0xd8, 0xa3, 0xf1, 0xe8,
+ 0x3c, 0x17, 0x9f, 0x88, 0x64, 0x82, 0xe0, 0xeb,
+ 0x10, 0xa2, 0x94, 0xbf, 0x08, 0xe4, 0x42, 0x5d,
+ 0xbe, 0xad, 0x4a, 0xd3, 0x61, 0x8c, 0x97, 0x5b,
+ 0xab, 0xb1, 0xae, 0xbe, 0xe2, 0x51, 0xf4, 0x47,
+ 0xc8, 0xcf, 0x3c, 0x22, 0xbb, 0xee, 0xb9, 0x66,
+ 0x2e, 0x83, 0xe6, 0x0b, 0x49, 0x96, 0x23, 0xad,
+ 0xa7, 0xe1, 0xad, 0x21, 0x2c, 0x86, 0xa1, 0xcc,
+ 0xcd, 0xb3, 0x5e, 0x8e, 0x46, 0xa9, 0x2f, 0x59,
+ 0x6c, 0x67, 0xbb, 0x4b, 0x44, 0x8b, 0xfe, 0xee,
+ 0x76, 0x90, 0x95, 0x8d, 0xdc, 0x14, 0x42, 0x72,
+ 0x5a, 0x0b, 0x24, 0x56, 0x77, 0x74, 0x17, 0x90,
+ 0x06, 0x93, 0xe1, 0x1a, 0x4c, 0x2b, 0x8e, 0x96,
+ 0xa2, 0x2d, 0xa0, 0xb0, 0x55, 0xcc, 0x9e, 0xda,
+ 0x5e, 0xc3, 0x7c, 0x22, 0xd9, 0x23, 0x58, 0xf9,
+ 0x02, 0x22, 0x7b, 0xb1, 0x02, 0x60, 0xfc, 0xa8,
+ 0x54, 0x22, 0x07, 0x9f, 0x11, 0x51, 0x67, 0xef,
+ 0xf3, 0x67, 0x40, 0x43, 0x8f, 0xa7, 0x5a, 0xcc,
+ 0xb9, 0x1d, 0xd5, 0x43, 0x99, 0x67, 0x30, 0x46,
+ 0x6d, 0x7c, 0x7a, 0x56, 0x7a, 0xef, 0x6c, 0x88,
+ 0x87, 0xa4, 0xdd, 0xa3, 0xfd, 0x72, 0x9b, 0xc4,
+ 0xfb, 0xb1, 0xb4, 0xc1, 0xf6, 0xf2, 0x5d, 0x23,
+ 0xa1, 0x05, 0xe7, 0xb4, 0xeb, 0x8c, 0x35, 0xf6,
+ 0x55, 0x98, 0x64, 0x23, 0xca, 0x3a, 0x14, 0xfd,
+ 0x1e, 0x22, 0xe0, 0xae, 0x67, 0xfa, 0x07, 0x48,
+ 0xda, 0x3f, 0xb5, 0x12, 0xec, 0xb1, 0xe8, 0x7c,
+ 0xc3, 0xc7, 0x2e, 0x69, 0x23, 0xda, 0x4a, 0x62,
+ 0xdd, 0x8a, 0xba, 0xca, 0xe7, 0x19, 0xb2, 0x84,
+ 0x00, 0x39, 0xce, 0x1e, 0x90, 0x47, 0x2b, 0x85,
+ 0x02, 0xe9, 0xfe, 0x96, 0x60, 0x2b, 0x47, 0x5d,
+ 0xd5, 0x5e, 0xb5, 0x47, 0xc2, 0xec, 0x34, 0xf5,
+ 0x99, 0x91, 0xc6, 0xc2, 0x83, 0x93, 0x0c, 0xee,
+ 0x90, 0xda, 0x42, 0x62, 0x4b, 0xba, 0x33, 0x10,
+ 0xb2, 0xb4, 0x73, 0x41, 0xe6, 0x83, 0x56, 0xe2,
+ 0x4f, 0x1c, 0x3d, 0x81, 0x85, 0xfd, 0xc2, 0xa1,
+ 0x7b, 0x74, 0x9c, 0x7f, 0x6b, 0x08, 0x17, 0xe7,
+ 0xc3, 0xb7, 0xd4, 0xf3, 0x89, 0x88, 0x69, 0xe5,
+ 0xee, 0xc5, 0x97, 0xe8, 0x08, 0x0f, 0xa4, 0x0d,
+ 0xe2, 0x52, 0xaa, 0xb1, 0x15, 0xa7, 0x17, 0xd0,
+ 0x54, 0x56, 0x75, 0x1d, 0xc9, 0x69, 0x95, 0x24,
+ 0x82, 0x32, 0xcd, 0x93, 0x48, 0xa6, 0xfd, 0xec,
+ 0xe7, 0x75, 0x0e, 0xef, 0x65, 0xa0, 0x2d, 0x69,
+ 0x54, 0xba, 0x93, 0xd7, 0x9a, 0x48, 0x22, 0x8d,
+ 0xb8, 0x38, 0x4a, 0x1b, 0x61, 0x38, 0x00, 0x8f,
+ 0xd1, 0xb1, 0x89, 0x74, 0xba, 0x57, 0x16, 0xa5,
+ 0x2f, 0x22, 0x03, 0x17, 0xa0, 0x4b, 0x61, 0xdb,
+ 0x2c, 0xa8, 0xa6, 0x6c, 0x2e, 0xb4, 0x4e, 0x15,
+ 0xe4, 0x41, 0x9b, 0xb1, 0x66, 0x66, 0xc5, 0x0f,
+ 0xef, 0xa0, 0x71, 0xd9, 0xa5, 0xbc, 0x1b, 0x6d,
+ 0x40, 0xd1, 0xe6, 0xee, 0xe9, 0x03, 0x1f, 0x81,
+ 0x9d, 0x57, 0xb1, 0x16, 0xf8, 0xe4, 0x6e, 0x36,
+ 0x81, 0xff, 0x09, 0x65, 0x1a, 0x6f, 0x71, 0xcd,
+ 0x94, 0x91, 0x2e, 0x41, 0x0a, 0xf2, 0x4b, 0x5f,
+ 0x7a, 0xf1, 0xe2, 0x97, 0x96, 0xca, 0x05, 0x38,
+ 0x5b, 0xa6, 0x00, 0xec, 0x1c, 0x8a, 0xac, 0x15,
+ 0x21, 0x8e, 0xe5, 0x97, 0xd1, 0xd9, 0xd8, 0x70,
+ 0x98, 0xdd, 0xde, 0xd7, 0xc6, 0x91, 0x84, 0x8b,
+ 0x8c, 0xf6, 0x86, 0x89, 0x72, 0x8c, 0x5f, 0xae,
+ 0xe8, 0x2b, 0x32, 0xbf, 0x07, 0xa4, 0x48, 0x26,
+ 0x0e, 0xad, 0xce, 0x9e, 0xeb, 0x22, 0xc7, 0xae,
+ 0x5a, 0x56, 0xe4, 0x2d, 0xc2, 0x19, 0x4d, 0x64,
+ 0xbd, 0xe4, 0xcd, 0xd5, 0x63, 0xd2, 0xc5, 0x5a,
+ 0xf1, 0x8f, 0x55, 0xb9, 0x86, 0x1b, 0x55, 0xc6,
+ 0x41, 0x60, 0x74, 0x92, 0xe3, 0x12, 0x01, 0xda,
+ 0x75, 0xb9, 0x55, 0x60, 0xb6, 0xa5, 0xca, 0x50,
+ 0x5b, 0x9c, 0x0c, 0x62, 0x31, 0xdc, 0x8f, 0x61,
+ 0x1e, 0x43, 0xe4, 0xc3, 0x9a, 0x58, 0xc5, 0x22,
+ 0x60, 0xd3, 0x0d, 0x49, 0xaf, 0x12, 0x97, 0x86,
+ 0x72, 0x43, 0x9f, 0x5d, 0x05, 0x78, 0x39, 0xa9,
+ 0x2e, 0x93, 0xe7, 0x91, 0x57, 0x71, 0xdb, 0x0e,
+ 0xee, 0x8f, 0x05, 0xdb, 0x06, 0xf4, 0x44, 0xa5,
+ 0x3b, 0xee, 0xa5, 0x16, 0x70, 0xc3, 0xfa, 0x30,
+ 0x9c, 0x20, 0x86, 0x1c, 0x3c, 0x83, 0x2b, 0xed,
+ 0xaf, 0x46, 0xd6, 0xe3, 0x0a, 0xb7, 0xfe, 0x15,
+ 0xa1, 0x14, 0x4e, 0xf9, 0x5a, 0x40, 0x5c, 0x83,
+ 0xda, 0x95, 0x89, 0x47, 0xce, 0x43, 0xc0, 0x33,
+ 0x61, 0x0d, 0x79, 0xcd, 0xc1, 0x11, 0xa8, 0xe2,
+ 0xb8, 0xbf, 0x4d, 0x7c, 0x61, 0x9b, 0xf3, 0x7d,
+ 0x8f, 0x91, 0x8a, 0xe2, 0x85, 0x3f, 0x14, 0x98,
+ 0x5b, 0xf6, 0x8d, 0x40, 0xa8, 0x7e, 0x18, 0xba,
+ 0xca, 0x4c, 0xaf, 0x52, 0xdd, 0xf1, 0x62, 0x78,
+ 0x48, 0x50, 0xec, 0x9b, 0x08, 0x9d, 0x5e, 0xf6,
+ 0xa0, 0xa5, 0x91, 0x0d, 0x25, 0x74, 0x44, 0x4e,
+ 0xdd, 0x93, 0x80, 0x82, 0xe6, 0x84, 0x3a, 0xc8,
+ 0x63, 0xbb, 0x91, 0x9b, 0xf7, 0x71, 0xb4, 0xeb,
+ 0xff, 0x11, 0xe6, 0x14, 0x1b, 0xba, 0x13, 0x4d,
+ 0x0f, 0x0f, 0xce, 0xa8, 0x65, 0xac, 0xc6, 0x0f,
+ 0x6c, 0x36, 0x93, 0x8b, 0x3a, 0x8b, 0xa5, 0xe4,
+ 0xef, 0xf1, 0xe0, 0xd7, 0x5e, 0x26, 0x95, 0x73,
+ 0xaa, 0xe1, 0x6b, 0x1f, 0x7a, 0xaa, 0x4b, 0xb3,
+ 0x89, 0x92, 0xd9, 0x56, 0x69, 0x26, 0x05, 0xa9,
+ 0xbc, 0xde, 0xc0, 0x65, 0x36, 0x87, 0xfd, 0x95,
+ 0x91, 0x13, 0x2c, 0xf2, 0xbd, 0x36, 0x8b, 0x10,
+ 0x8c, 0xba, 0xcf, 0xb4, 0x0d, 0x6b, 0xd9, 0x73,
+ 0xb3, 0x78, 0x1e, 0x75, 0x25, 0xb0, 0x98, 0x81,
+ 0xe6, 0x7f, 0xdf, 0x4f, 0x7d, 0x6e, 0x2c, 0x03,
+ 0x8c, 0xd3, 0xfc, 0xb6, 0xbf, 0x61, 0x2d, 0x94,
+ 0xfa, 0x0f, 0xc4, 0xf9, 0xe0, 0xc9, 0xbe, 0xe7,
+ 0x28, 0xd8, 0x84, 0x95, 0x3b, 0x9d, 0xe9, 0xb9,
+ 0x09, 0x0a, 0x0a, 0xcf, 0x9d, 0x63, 0xe3, 0x0b,
+ 0x58, 0xcc, 0x30, 0xc1, 0xb4, 0x68, 0xd0, 0x9d,
+ 0x27, 0xce, 0xe3, 0xff, 0x1c, 0x89, 0xa4, 0x78,
+ 0x94, 0x04, 0xce, 0x71, 0x31, 0xbb, 0xeb, 0xeb,
+ 0x19, 0x81, 0x16, 0xe4, 0xb6, 0x9e, 0xea, 0x3d,
+ 0x74, 0xd0, 0xa0, 0x12, 0x9f, 0x39, 0x21, 0x56,
+ 0x65, 0xef, 0x34, 0x69, 0x33, 0xc9, 0xd9, 0xf3,
+ 0xea, 0xe8, 0xf1, 0x21, 0xad, 0x7d, 0x43, 0x77,
+ 0xbe, 0x23, 0x13, 0x2b, 0x9b, 0xe8, 0xbc, 0x3f,
+ 0x34, 0x97, 0x87, 0xf0, 0xc8, 0xd3, 0x35, 0xff,
+ 0xe4, 0xcd, 0x20, 0x5d, 0x44, 0xa9, 0x17, 0xc6,
+ 0x9a, 0x5e, 0x89, 0x24, 0x26, 0x45, 0x34, 0xca,
+ 0x34, 0xf3, 0x99, 0xde, 0x9e, 0x96, 0x27, 0xf8,
+ 0x2a, 0xd1, 0xc0, 0x04, 0x29, 0xf3, 0x14, 0x11,
+ 0xca, 0xf3, 0x68, 0x31, 0x42, 0x13, 0x12, 0xce,
+ 0x40, 0x48, 0xeb, 0x35, 0xb7, 0x7a, 0xbe, 0xbf,
+ 0x9b, 0x28, 0x15, 0x73, 0x5e, 0xb1, 0x30, 0x9d,
+ 0xad, 0xbc, 0xd9, 0x29, 0x90, 0xcf, 0xe6, 0x95,
+ 0xe6, 0xd1, 0x48, 0xa1, 0x59, 0xc3, 0xce, 0xb4,
+ 0xa3, 0x35, 0x7c, 0x61, 0x51, 0x3d, 0x1f, 0x00,
+ 0x6e, 0xc8, 0xcc, 0x43, 0xd8, 0xa4, 0x91, 0x1a,
+ 0x8e, 0x09, 0xde, 0x01, 0x67, 0x65, 0x3c, 0x48,
+ 0xad, 0xfa, 0x7a, 0x57, 0xaa, 0x47, 0xed, 0x56,
+ 0x44, 0x3f, 0x88, 0x12, 0x02, 0xe8, 0x9a, 0x53,
+ 0xfc, 0xd7, 0xe4, 0xf5, 0x95, 0x33, 0x90, 0x90,
+ 0x3e, 0x6b, 0x41, 0xb0, 0x05, 0x2e, 0x57, 0x5c,
+ 0x2f, 0x55, 0xd0, 0x36, 0xd4, 0x9a, 0xfa, 0xd7,
+ 0xa8, 0x1b, 0xa6, 0xba, 0x10, 0x6c, 0xf2, 0x0b,
+ 0x3d, 0x06, 0x44, 0x1a, 0x2a, 0x29, 0x85, 0xe6,
+ 0x01, 0xb3, 0x5f, 0x04, 0x87, 0xc3, 0xd0, 0xe1,
+ 0xef, 0xc3, 0x2c, 0xc6, 0x93, 0xea, 0x9d, 0x48,
+ 0x13, 0xcf, 0x07, 0xd0, 0x7a, 0x00, 0xb8, 0x9d,
+ 0x80, 0xe9, 0xa1, 0x7e, 0x25, 0xb7, 0x91, 0x9f,
+ 0x1c, 0x30, 0xb9, 0xf7, 0xce, 0x92, 0x14, 0x5c,
+ 0x10, 0xd6, 0x4c, 0xa5, 0xb2, 0x43, 0x38, 0xad,
+ 0xbd, 0xcc, 0x5f, 0x93, 0x13, 0x8f, 0x6d, 0x05,
+ 0x4f, 0x16, 0x96, 0x50, 0x33, 0x5a, 0x20, 0x22,
+ 0x45, 0xf9, 0xf5, 0xb4, 0xa6, 0xf3, 0xd5, 0xde,
+ 0xa7, 0x99, 0x78, 0xb8, 0x81, 0xee, 0x8d, 0x3f,
+ 0xa6, 0xa5, 0x8b, 0x84, 0xf3, 0x3e, 0xfc, 0x6b,
+ 0x42, 0x96, 0xae, 0x4b, 0x78, 0x57, 0x19, 0x9a,
+ 0x38, 0xa9, 0xbe, 0x66, 0x51, 0xe8, 0x57, 0xc1,
+ 0xf6, 0xd7, 0xf6, 0xee, 0xe7, 0xd9, 0x24, 0xba,
+ 0x9a, 0x02, 0x52, 0x8e, 0x6a, 0xea, 0x3d, 0x16,
+ 0x02, 0x8d, 0x51, 0x15, 0xae, 0x45, 0x7f, 0x6d,
+ 0x05, 0xcf, 0xa5, 0x25, 0xf0, 0xe4, 0x52, 0xcd,
+ 0xae, 0x79, 0x8f, 0xf2, 0x1b, 0xaa, 0xe3, 0xe8,
+ 0x7a, 0x2b, 0x93, 0xde, 0x35, 0x5e, 0xbf, 0xa6,
+ 0x4f, 0x3f, 0x78, 0x40, 0x6e, 0x3a, 0x25, 0x53,
+ 0x6e, 0x24, 0xad, 0xeb, 0x17, 0x61, 0x73, 0x12,
+ 0xde, 0x6a, 0xb1, 0x51, 0xa6, 0xc2, 0xdb, 0xf3,
+ 0xe3, 0xbf, 0x28, 0xb5, 0x8b, 0x2e, 0x71, 0xc6,
+ 0x3e, 0x98, 0x92, 0x97, 0x4e, 0xc1, 0x10, 0xc4,
+ 0x90, 0x97, 0x2b, 0xe0, 0x88, 0x8a, 0xf0, 0x4b,
+ 0x3e, 0xbd, 0xc4, 0xb0, 0x16, 0xd2, 0x36, 0xca,
+ 0x30, 0xbb, 0xf6, 0x48, 0xbb, 0xf9, 0xf1, 0x0b,
+ 0x85, 0x51, 0x7c, 0xab, 0x73, 0x0a, 0x49, 0x2c,
+ 0xbb, 0xdb, 0x3c, 0xbd, 0x43, 0x5f, 0x8d, 0xfe,
+ 0x5d, 0xcf, 0x11, 0xe8, 0xe0, 0xba, 0x54, 0x67,
+ 0x83, 0x08, 0x1a, 0x20, 0x53, 0x01, 0x5b, 0x59,
+ 0x2d, 0xf7, 0x1c, 0xd1, 0x57, 0x1c, 0x43, 0x3b,
+ 0x57, 0x9c, 0xa7, 0x65, 0xc7, 0x6f, 0x61, 0x58,
+ 0xac, 0x25, 0xdd, 0xf2, 0x5e, 0x73, 0xff, 0x3e,
+ 0x58, 0xd5, 0x96, 0x3d, 0x9e, 0x2c, 0x7b, 0x35,
+ 0x19, 0x55, 0x23, 0xc7, 0xd2, 0x63, 0x66, 0xc8,
+ 0x8f, 0xee, 0x40, 0x55, 0x7f, 0x97, 0x78, 0x69,
+ 0x0e, 0xee, 0x2d, 0xff, 0xd0, 0x7e, 0xe7, 0x7d,
+ 0x8c, 0x20, 0xa8, 0x08, 0x1e, 0x8d, 0x0e, 0x89,
+ 0xf1, 0x21, 0x73, 0xe8, 0x71, 0x12, 0xbe, 0x0f,
+ 0x4d, 0x2f, 0x11, 0xee, 0x5e, 0xec, 0x19, 0x91,
+ 0x52, 0x6b, 0x22, 0x94, 0x7c, 0xc2, 0x64, 0x84,
+ 0x66, 0x4e, 0xd4, 0x8d, 0xae, 0x14, 0xda, 0x9d,
+ 0xd7, 0xb6, 0xdc, 0xc6, 0x8f, 0x76, 0x17, 0xc5,
+ 0x8e, 0x19, 0x92, 0x35, 0x61, 0x8d, 0x1d, 0xeb,
+ 0x30, 0x9f, 0x6c, 0xff, 0xa3, 0xa8, 0xa4, 0xfe,
+ 0x96, 0x56, 0x18, 0xdc, 0xe6, 0x3b, 0x6c, 0x96,
+ 0x4c, 0x14, 0x9d, 0x5b, 0x25, 0x3d, 0xff, 0x63,
+ 0xc4, 0x8f, 0x54, 0x47, 0xa0, 0x57, 0xf6, 0xcc,
+ 0xf1, 0x8e, 0x77, 0xcb, 0xd0, 0xb0, 0x2c, 0x11,
+ 0x7e, 0xf6, 0x6f, 0xdc, 0x84, 0xba, 0xa2, 0x3c,
+ 0x4d, 0x4b, 0x7b, 0xca, 0x0f, 0x27, 0x0e, 0xd4,
+ 0x23, 0x90, 0xc2, 0xbf, 0xb2, 0x2e, 0x57, 0x07,
+ 0x3d, 0xa1, 0x47, 0x64, 0x2b, 0x44, 0x57, 0xb8,
+ 0x01, 0x31, 0x1e, 0x59, 0x44, 0xbb, 0x45, 0xe0,
+ 0xd4, 0x73, 0x88, 0xa1, 0x7f, 0x51, 0x6e, 0xd5,
+ 0x92, 0x36, 0x0a, 0x27, 0x3c, 0x3d, 0x82, 0x22,
+ 0xc5, 0x56, 0x1b, 0x42, 0x1f, 0x47, 0xa2, 0x71,
+ 0xa9, 0xf9, 0xfd, 0xa1, 0x86, 0x35, 0x77, 0x97,
+ 0x03, 0x23, 0xe6, 0xfe, 0x75, 0x70, 0x20, 0x61,
+ 0x89, 0x69, 0x40, 0x8b, 0x18, 0xa0, 0x9d, 0xb0,
+ 0x6a, 0x14, 0xe2, 0xa1, 0x88, 0xa4, 0x01, 0xa5,
+ 0xb5, 0x9c, 0xe6, 0x22, 0x06, 0x65, 0x59, 0x25,
+ 0x3b, 0x46, 0x62, 0xac, 0x87, 0x83, 0x17, 0x4a,
+ 0xce, 0xe0, 0x17, 0x64, 0x10, 0x6b, 0x8a, 0xb6,
+ 0xa5, 0xf5, 0x69, 0x6e, 0x55, 0x78, 0x8d, 0x8e,
+ 0x16, 0xe8, 0xca, 0xda, 0x3a, 0x7a, 0xc0, 0x16,
+ 0x35, 0x34, 0x7c, 0xf8, 0x53, 0xb0, 0x92, 0x0c,
+ 0x53, 0x7b, 0xaa, 0xe6, 0x0a, 0x01, 0xec, 0x39,
+ 0x2b, 0x7d, 0x23, 0x41, 0x18, 0xc7, 0x96, 0x21,
+ 0x6b, 0x3b, 0xae, 0x78, 0xd6, 0xf9, 0xae, 0x98,
+ 0x84, 0x3a, 0xf1, 0x1f, 0xef, 0x5b, 0xb4, 0x0b,
+ 0x4a, 0x47, 0xf1, 0xdd, 0x2d, 0xac, 0x5d, 0x70,
+ 0xa7, 0x05, 0x63, 0x27, 0x49, 0x28, 0x54, 0x67,
+ 0x40, 0xb2, 0xfe, 0x72, 0x2f, 0xdf, 0x27, 0x4b,
+ 0x64, 0x9b, 0xa5, 0x5f, 0xe3, 0xfc, 0xc5, 0x82,
+ 0x1b, 0x7b, 0xce, 0x4a, 0x53, 0xdc, 0xb7, 0xf4,
+ 0xab, 0xf1, 0xac, 0xb9, 0xe4, 0xe0, 0x2d, 0xa1,
+ 0xd0, 0x50, 0x6d, 0x31, 0x1e, 0x64, 0xfa, 0x6b,
+ 0xee, 0xc0, 0xf6, 0xd6, 0xa2, 0x3e, 0x41, 0x22,
+ 0xde, 0xac, 0x08, 0xc9, 0xbf, 0x9f, 0x3a, 0xf8,
+ 0x17, 0x96, 0x46, 0x51, 0x38, 0x78, 0x66, 0x5e,
+ 0x0d, 0x46, 0x55, 0x3e, 0x0b, 0x18, 0x2d, 0x0d,
+ 0xc4, 0xbe, 0x4e, 0x8b, 0x57, 0xc8, 0x9f, 0x60,
+ 0x17, 0xfa, 0xd7, 0xff, 0x96, 0x23, 0xeb, 0xe3,
+ 0x1c, 0xf9, 0x4e, 0x07, 0x3a, 0x0e, 0x4d, 0xf8,
+ 0xfb, 0x2c, 0x15, 0x41, 0xe1, 0x80, 0x26, 0xfd,
+ 0xbf, 0x57, 0x10, 0xc1, 0xdc, 0xfd, 0x7f, 0x1a,
+ 0xb7, 0xeb, 0x81, 0x3e, 0x4e, 0x0e, 0x59, 0x19,
+ 0xff, 0x8e, 0xc9, 0xd9, 0xc9, 0x43, 0x98, 0xaa,
+ 0x32, 0xe5, 0x3b, 0xfe, 0x5d, 0x53, 0xae, 0x30,
+ 0x6f, 0x05, 0xfa, 0x16, 0x3e, 0xb2, 0x8a, 0x05,
+ 0xb8, 0x9f, 0x81, 0x5c, 0xcc, 0x8f, 0xc5, 0xd9,
+ 0xe0, 0x0d, 0x7d, 0xd1, 0x64, 0xa3, 0xfd, 0xe6,
+ 0x9c, 0x1e, 0x45, 0xea, 0x63, 0xcd, 0x58, 0x0b,
+ 0x91, 0xea, 0x9c, 0xb8, 0x82, 0x39, 0xca, 0x5a,
+ 0xbd, 0x46, 0xce, 0xb3, 0x41, 0x5c, 0x8f, 0x60,
+ 0xb2, 0xd3, 0x76, 0x7a, 0x99, 0x8a, 0x9b, 0xd3,
+ 0x68, 0x54, 0x6a, 0x74, 0xb8, 0x52, 0x27, 0xaa,
+ 0xe4, 0xf4, 0x3c, 0x94, 0xb1, 0x96, 0xa5, 0x5b,
+ 0xa8, 0x6b, 0x8e, 0xff, 0xe1, 0xd0, 0xfa, 0x5d,
+ 0x19, 0xdc, 0x62, 0xde, 0x52, 0xa1, 0xe6, 0xeb,
+ 0xd3, 0x92, 0x67, 0x92, 0x6e, 0x7d, 0xe4, 0x43,
+ 0x44, 0x55, 0xd5, 0xe3, 0xbc, 0xb8, 0x0e, 0x75,
+ 0x64, 0x17, 0x72, 0x2f, 0xe9, 0xb0, 0x6d, 0x7f,
+ 0x4b, 0x9a, 0xdd, 0x11, 0xaa, 0x74, 0xe1, 0xa3,
+ 0x1e, 0x8a, 0xf0, 0xdf, 0x9b, 0x79, 0x37, 0xed,
+ 0xb8, 0xc6, 0xf9, 0x11, 0x3a, 0xe8, 0x99, 0xd0,
+ 0xde, 0xae, 0x68, 0x17, 0x29, 0x41, 0xed, 0xb0,
+ 0xb7, 0x41, 0x2f, 0xd7, 0x5c, 0x37, 0x92, 0x7a,
+ 0x34, 0x1a, 0x2b, 0xb5, 0x8a, 0xd2, 0x0b, 0x95,
+ 0x69, 0xe0, 0x8b, 0xaf, 0x45, 0xa5, 0xfa, 0x30,
+ 0xe8, 0xec, 0xa3, 0x23, 0x54, 0x88, 0x29, 0xc1,
+ 0x7a, 0x19, 0xe9, 0x94, 0x7f, 0xd1, 0x27, 0x01,
+ 0x81, 0xa3, 0x48, 0xaa, 0x88, 0x2c, 0x70, 0x2e,
+ 0x35, 0x26, 0xac, 0x6d, 0x1d, 0xa6, 0x24, 0x92,
+ 0xfb, 0xf1, 0xfc, 0x2f, 0xef, 0xfd, 0xc1, 0x7b,
+ 0xeb, 0xe8, 0x4a, 0x39, 0x35, 0x2e, 0x9a, 0x89,
+ 0x5a, 0x8a, 0x28, 0x60, 0xcb, 0x2f, 0x64, 0x54,
+ 0x0a, 0xdd, 0xce, 0x33, 0xab, 0x24, 0xf6, 0x31,
+ 0x26, 0xca, 0x81, 0xf1, 0x46, 0x97, 0x53, 0x4a,
+ 0x39, 0x36, 0x15, 0xa0, 0x40, 0x32, 0x0f, 0x7f,
+ 0xcd, 0x5f, 0xc1, 0xae, 0x9b, 0x40, 0x11, 0x2e,
+ 0x2d, 0x18, 0x8c, 0x86, 0x2d, 0x0d, 0x29, 0x00,
+ 0x97, 0x09, 0x55, 0xe5, 0x0d, 0x72, 0x85, 0x02,
+ 0x07, 0x48, 0x62, 0xf4, 0xf6, 0x02, 0x84, 0x4b,
+ 0x11, 0x18, 0xbe, 0x62, 0xfe, 0xaa, 0xf3, 0x32,
+ 0xcc, 0x5c, 0xa7, 0x77, 0x4e, 0xa3, 0x87, 0x8c,
+ 0xc2, 0x3a, 0x1a, 0x66, 0xdb, 0xc8, 0xf7, 0xc0,
+ 0x4a, 0x9c, 0x2d, 0x4b, 0xaf, 0x25, 0x4f, 0xe6,
+ 0x58, 0x56, 0xe9, 0xc5, 0x8a, 0xde, 0x6c, 0xac,
+ 0xe6, 0xc0, 0x85, 0xa0, 0xf7, 0x7b, 0xb2, 0xd8,
+ 0xde, 0xea, 0x9a, 0xe3, 0xcf, 0xbc, 0xba, 0xa8,
+ 0xcd, 0x73, 0xbd, 0xd0, 0x7e, 0x6d, 0x98, 0xa1,
+ 0xb9, 0xa1, 0x9a, 0xc6, 0x33, 0x27, 0x58, 0x0f,
+ 0xba, 0x2e, 0xb2, 0x48, 0x0b, 0x0c, 0xd9, 0xb7,
+ 0xaa, 0xf7, 0xe9, 0xa4, 0x4b, 0x0f, 0xc9, 0xec,
+ 0x21, 0x84, 0x7a, 0xeb, 0x34, 0x35, 0xf4, 0xf4,
+ 0x69, 0x1a, 0x67, 0xcc, 0x85, 0x64, 0x51, 0x30,
+ 0xbc, 0xcd, 0x55, 0x99, 0xf9, 0x48, 0x47, 0x84,
+ 0x7d, 0x09, 0xa2, 0x0f, 0xf6, 0x60, 0xe6, 0x23,
+ 0x40, 0x6b, 0x33, 0xa8, 0x6b, 0x74, 0xc5, 0x47,
+ 0xb7, 0xad, 0xf3, 0x71, 0xd7, 0x69, 0xe6, 0xb9,
+ 0xfa, 0x98, 0x43, 0xb1, 0x89, 0x8a, 0x9a, 0xbf,
+ 0xee, 0x59, 0x0d, 0x34, 0xf5, 0xa4, 0x47, 0x9f,
+ 0xa0, 0xe2, 0x76, 0x39, 0xb4, 0xe8, 0x63, 0x9a,
+ 0xdc, 0x3b, 0x34, 0x99, 0x02, 0x0a, 0xa9, 0x94,
+ 0x07, 0x9f, 0x07, 0x96, 0x58, 0xf0, 0xd8, 0x71,
+ 0x64, 0x7e, 0xbb, 0x5c, 0xa4, 0xb4, 0x8f, 0x41,
+ 0xc8, 0x20, 0x3a, 0x7e, 0x05, 0x63, 0x9e, 0x0a,
+ 0x78, 0x93, 0x34, 0xd3, 0x49, 0xd2, 0x12, 0x0a,
+ 0x2b, 0xff, 0x9e, 0x4c, 0x52, 0x51, 0xa1, 0x33,
+ 0x6c, 0xb6, 0x00, 0x67, 0x64, 0xed, 0x13, 0xf9,
+ 0xff, 0x6c, 0x78, 0xf5, 0xb3, 0x79, 0x6d, 0xbf,
+ 0xc3, 0xfc, 0xe3, 0xa3, 0x35, 0x5f, 0x58, 0xcf,
+ 0xa8, 0x4f, 0x65, 0x4d, 0x64, 0x7a, 0xf2, 0x0d,
+ 0x7f, 0xc7, 0xbd, 0x3a, 0xfa, 0x22, 0x44, 0x7a,
+ 0x66, 0xcb, 0x42, 0xdf, 0x79, 0x94, 0xf3, 0xa7,
+ 0xf7, 0x22, 0xea, 0x3c, 0x54, 0xe3, 0xac, 0x22,
+ 0x7e, 0xbb, 0x6e, 0x52, 0x96, 0x89, 0x7c, 0xac,
+ 0xab, 0xfc, 0x66, 0x86, 0xb2, 0x7a, 0xcd, 0xed,
+ 0xd4, 0x1d, 0x08, 0xd9, 0x06, 0xb4, 0xf0, 0x1c,
+ 0x58, 0x30, 0xe0, 0x2f, 0x56, 0xcb, 0xe7, 0x70,
+ 0xfe, 0xb0, 0x49, 0xe8, 0xe5, 0x05, 0x66, 0x35,
+ 0x38, 0x24, 0x64, 0x26, 0x7c, 0x1f, 0x08, 0xef,
+ 0x4e, 0xe3, 0x11, 0x29, 0x91, 0xc0, 0xf7, 0x6d,
+ 0x85, 0x59, 0xe1, 0x0c, 0xcc, 0xde, 0x7d, 0x24,
+ 0x23, 0xce, 0xfa, 0xec, 0x99, 0x83, 0x16, 0x74,
+ 0x22, 0x08, 0xd0, 0xd2, 0xd3, 0x9d, 0x43, 0xc1,
+ 0x82, 0x2b, 0x14, 0x3d, 0x94, 0xdb, 0xc6, 0x2c,
+ 0x93, 0x98, 0x3e, 0xad, 0xff, 0x9b, 0x26, 0xd5,
+ 0xdd, 0x18, 0x53, 0x7e, 0xd8, 0x4d, 0x68, 0xc7,
+ 0xa2, 0x75, 0xfc, 0x53, 0xa1, 0x20, 0x54, 0xad,
+ 0x85, 0x42, 0x07, 0x66, 0xad, 0xc1, 0xd4, 0x02,
+ 0xb3, 0x22, 0x08, 0x96, 0x44, 0x46, 0x60, 0x5f,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0xa3, 0xf7, 0x20, 0x75, 0xd5, 0x7e, 0x0a, 0xaa,
+ 0xcc, 0x5c, 0xfb, 0x8c, 0xdd, 0x90, 0x74, 0xe4,
+ 0xc6, 0x08, 0xdd, 0x16, 0xf7, 0xd3, 0xbd, 0xa9,
+ 0x05, 0xba, 0xf9, 0xc5, 0xac, 0x63, 0x0e, 0x22,
+ 0xcb, 0x85, 0xb2, 0xd4, 0xfa, 0x81, 0xda, 0xb8,
+ 0xf9, 0x51, 0xe7, 0x5a, 0x4a, 0x2f, 0x63, 0x63,
+ 0x97, 0x7d, 0xf5, 0x72, 0xb3, 0x8c, 0x5a, 0xd6,
+ 0x9f, 0xd0, 0x8b, 0x72, 0xcd, 0x03, 0x2f, 0x7d,
+ 0x1b, 0x89, 0xce, 0xb4, 0x83, 0xc0, 0xdc, 0xf9,
+ 0x99, 0x92, 0x02, 0x9b, 0x2c, 0x46, 0x59, 0x10,
+ 0xd9, 0x41, 0x5a, 0x4f, 0x65, 0xd7, 0xa1, 0xe2,
+ 0x70, 0x11, 0x2c, 0x26, 0x25, 0xe2, 0x20, 0x09,
+ 0x6b, 0xe5, 0xd9, 0x71, 0x1d, 0xa6, 0x95, 0xab,
+ 0xa0, 0xa8, 0x88, 0xd0, 0x5c, 0x08, 0x78, 0xfd,
+ 0x9b, 0x5e, 0xd0, 0x5f, 0x34, 0xe6, 0x55, 0xe6,
+ 0x83, 0x18, 0xfb, 0x09, 0xff, 0x93, 0x4f, 0x9d,
+ 0xd1, 0x42, 0x2e, 0x14, 0x22, 0x44, 0x14, 0x22,
+ 0x61, 0x21, 0x34, 0x44, 0x0a, 0x13, 0x0d, 0xa2,
+ 0x16, 0x89, 0x49, 0x90, 0x20, 0xd4, 0x94, 0x01,
+ 0x59, 0xc2, 0x6d, 0x91, 0x18, 0x92, 0x0c, 0x32,
+ 0x10, 0xcc, 0x30, 0x68, 0x4b, 0x06, 0x42, 0x61,
+ 0xc6, 0x60, 0x18, 0x31, 0x6d, 0x99, 0x90, 0x89,
+ 0x03, 0x46, 0x6a, 0xc8, 0x04, 0x69, 0xcc, 0x26,
+ 0x22, 0x14, 0x38, 0x01, 0xc2, 0x04, 0x92, 0x0a,
+ 0xc0, 0x29, 0x03, 0x14, 0x69, 0x62, 0x92, 0x41,
+ 0x11, 0x90, 0x21, 0x20, 0x18, 0x48, 0x5c, 0x36,
+ 0x8d, 0xca, 0x34, 0x04, 0xc2, 0x30, 0x60, 0x09,
+ 0x02, 0x0d, 0x02, 0x36, 0x20, 0x88, 0xa4, 0x05,
+ 0x1c, 0x42, 0x60, 0x4c, 0xb2, 0x0d, 0xe3, 0x36,
+ 0x22, 0xd2, 0xc8, 0x10, 0x80, 0xa4, 0x68, 0xc0,
+ 0x40, 0x2d, 0x84, 0x26, 0x4e, 0xe0, 0x88, 0x90,
+ 0x20, 0x43, 0x6c, 0xa0, 0x30, 0x6c, 0xc0, 0x46,
+ 0x88, 0x4c, 0xa0, 0x40, 0x81, 0x10, 0x32, 0xc9,
+ 0x48, 0x02, 0x12, 0x11, 0x2e, 0xd1, 0x96, 0x89,
+ 0xd3, 0xa8, 0x6d, 0x58, 0xb8, 0x88, 0xd9, 0x36,
+ 0x8a, 0x53, 0xa0, 0x0d, 0x4a, 0xb0, 0x6c, 0x93,
+ 0x82, 0x10, 0x90, 0x92, 0x40, 0xdc, 0xb8, 0x2c,
+ 0x4b, 0x48, 0x4d, 0xa0, 0x12, 0x11, 0x93, 0x16,
+ 0x89, 0x5c, 0xb8, 0x00, 0xa2, 0x14, 0x49, 0x1a,
+ 0x07, 0x0e, 0xd8, 0x40, 0x60, 0x5a, 0x14, 0x0e,
+ 0x82, 0x36, 0x0c, 0xcc, 0xb8, 0x0c, 0x04, 0xc8,
+ 0x6d, 0x8b, 0x34, 0x72, 0x5b, 0x26, 0x49, 0x21,
+ 0x90, 0x4c, 0x5c, 0xa8, 0x10, 0x04, 0x27, 0x42,
+ 0x19, 0x86, 0x50, 0x03, 0x40, 0x8d, 0x9b, 0x32,
+ 0x30, 0xe2, 0x46, 0x85, 0xd8, 0xc8, 0x44, 0x10,
+ 0x12, 0x8d, 0x4c, 0x94, 0x50, 0x50, 0x16, 0x48,
+ 0xc4, 0x06, 0x20, 0x02, 0x32, 0x60, 0xe2, 0x22,
+ 0x84, 0x11, 0x20, 0x02, 0x92, 0x32, 0x86, 0xcb,
+ 0xb8, 0x2d, 0x98, 0xc6, 0x50, 0x50, 0x22, 0x8a,
+ 0x14, 0x40, 0x00, 0x94, 0xa6, 0x60, 0x1c, 0x86,
+ 0x49, 0x4b, 0x18, 0x65, 0x4a, 0x36, 0x11, 0x1b,
+ 0x01, 0x6e, 0x52, 0x98, 0x01, 0x91, 0xb8, 0x24,
+ 0x00, 0xa3, 0x30, 0x42, 0x94, 0x84, 0x41, 0x04,
+ 0x88, 0x5a, 0x42, 0x31, 0x14, 0xc8, 0x4d, 0xc0,
+ 0x10, 0x51, 0x22, 0x06, 0x86, 0xe2, 0xb6, 0x21,
+ 0x20, 0x21, 0x2c, 0x04, 0x24, 0x0e, 0xc3, 0x44,
+ 0x88, 0x1c, 0x89, 0x08, 0x1b, 0xb6, 0x81, 0x11,
+ 0xa7, 0x89, 0xda, 0x08, 0x12, 0x0a, 0x42, 0x70,
+ 0x9c, 0x12, 0x84, 0x5a, 0xb0, 0x60, 0x92, 0x86,
+ 0x80, 0x98, 0xa2, 0x51, 0x60, 0xa4, 0x8d, 0xe1,
+ 0x86, 0x51, 0x9a, 0x44, 0x85, 0x4a, 0xb2, 0x4d,
+ 0x08, 0x12, 0x8c, 0xca, 0x18, 0x0e, 0xe2, 0x26,
+ 0x8e, 0xa4, 0x08, 0x66, 0x89, 0x10, 0x4d, 0x14,
+ 0xc0, 0x50, 0x22, 0xa7, 0x71, 0x61, 0xa0, 0x0c,
+ 0xcc, 0x94, 0x28, 0x14, 0x18, 0x82, 0xcb, 0x40,
+ 0x88, 0x60, 0x06, 0x6d, 0xd3, 0x84, 0x20, 0x50,
+ 0x30, 0x06, 0x03, 0x49, 0x86, 0x23, 0x25, 0x85,
+ 0x5b, 0x98, 0x45, 0x21, 0x46, 0x46, 0xe3, 0xa6,
+ 0x88, 0x01, 0x12, 0x6d, 0xa4, 0x20, 0x12, 0x9a,
+ 0x26, 0x85, 0x1a, 0xc3, 0x90, 0x0b, 0xb8, 0x84,
+ 0x13, 0xb0, 0x31, 0xd0, 0x86, 0x44, 0x23, 0xc5,
+ 0x29, 0xa3, 0xc0, 0x8c, 0x53, 0x06, 0x62, 0xc8,
+ 0xa4, 0x88, 0x20, 0x26, 0x32, 0x0b, 0xb0, 0x48,
+ 0xe1, 0x30, 0x89, 0x09, 0x28, 0x22, 0x09, 0xb0,
+ 0x31, 0x93, 0x34, 0x02, 0x14, 0x25, 0x0a, 0x61,
+ 0x22, 0x88, 0xe1, 0x06, 0x4c, 0x4b, 0x20, 0x45,
+ 0xdb, 0x80, 0x90, 0x03, 0x41, 0x6a, 0x48, 0x34,
+ 0x4c, 0xc3, 0x08, 0x80, 0xda, 0x06, 0x24, 0x18,
+ 0x28, 0x48, 0x99, 0x22, 0x32, 0x88, 0x38, 0x68,
+ 0xc3, 0x88, 0x20, 0x09, 0x48, 0x8c, 0x81, 0xb8,
+ 0x09, 0x23, 0x33, 0x02, 0x04, 0xa4, 0x50, 0x5c,
+ 0xc8, 0x49, 0xd4, 0x94, 0x49, 0x81, 0x34, 0x05,
+ 0x82, 0x22, 0x0e, 0x24, 0x18, 0x00, 0xa4, 0xa0,
+ 0x6d, 0x18, 0x28, 0x2e, 0x94, 0x06, 0x0c, 0x4c,
+ 0x08, 0x90, 0x61, 0x30, 0x45, 0xe3, 0x16, 0x32,
+ 0x1c, 0x05, 0x80, 0xc0, 0x46, 0x11, 0x14, 0x97,
+ 0x71, 0xdc, 0x36, 0x40, 0x10, 0x29, 0x0d, 0x24,
+ 0xc9, 0x30, 0x01, 0xc8, 0x85, 0x61, 0x10, 0x2c,
+ 0x22, 0x26, 0x48, 0x22, 0x89, 0x08, 0x22, 0xc3,
+ 0x51, 0xc3, 0x22, 0x90, 0x00, 0x43, 0x88, 0x8c,
+ 0x22, 0x61, 0xc2, 0x42, 0x28, 0x03, 0x40, 0x00,
+ 0x9a, 0xa8, 0x61, 0x4a, 0x28, 0x50, 0x52, 0x18,
+ 0x21, 0xa1, 0xa6, 0x4c, 0x13, 0x84, 0x24, 0x82,
+ 0x38, 0x71, 0x1b, 0x01, 0x60, 0x19, 0xb3, 0x70,
+ 0xdc, 0x20, 0x4d, 0x13, 0x15, 0x21, 0x98, 0xc8,
+ 0x40, 0x01, 0x33, 0x86, 0xa3, 0x92, 0x6c, 0xd2,
+ 0x12, 0x42, 0x24, 0x36, 0x8e, 0x20, 0x47, 0x69,
+ 0x40, 0x30, 0x6d, 0x94, 0x04, 0x6c, 0x5b, 0x06,
+ 0x6a, 0xd2, 0x22, 0x42, 0x41, 0x12, 0x92, 0x0c,
+ 0xa1, 0x28, 0x8b, 0x46, 0x0e, 0x41, 0x32, 0x90,
+ 0xcc, 0x42, 0x86, 0x1c, 0x24, 0x29, 0x00, 0x16,
+ 0x65, 0x1c, 0x33, 0x41, 0x9b, 0x44, 0x25, 0x88,
+ 0x48, 0x84, 0x8c, 0x22, 0x2a, 0xc8, 0x48, 0x2d,
+ 0x52, 0x42, 0x86, 0x61, 0x44, 0x21, 0x13, 0x91,
+ 0x09, 0x64, 0x90, 0x0d, 0x20, 0x92, 0x44, 0xda,
+ 0x24, 0x32, 0xd2, 0x38, 0x05, 0x01, 0xc3, 0x31,
+ 0xa2, 0x90, 0x08, 0x14, 0xb4, 0x84, 0x92, 0xc6,
+ 0x71, 0x51, 0x88, 0x10, 0x80, 0x48, 0x2a, 0x63,
+ 0x46, 0x06, 0x12, 0xb3, 0x65, 0x48, 0x28, 0x40,
+ 0x50, 0x00, 0x85, 0xa4, 0x92, 0x04, 0xa2, 0x08,
+ 0x8e, 0xc9, 0x22, 0x8e, 0x0a, 0x00, 0x11, 0x5b,
+ 0x30, 0x2a, 0x0a, 0x23, 0x41, 0xd0, 0xc4, 0x08,
+ 0x8c, 0xc6, 0x05, 0x43, 0x00, 0x0c, 0x0c, 0xc4,
+ 0x01, 0x81, 0xb2, 0x50, 0x1b, 0xc1, 0x6c, 0x90,
+ 0x84, 0x05, 0x1c, 0x03, 0x30, 0x52, 0x22, 0x08,
+ 0xa4, 0x32, 0x90, 0xe0, 0x88, 0x70, 0xa4, 0x96,
+ 0x64, 0x12, 0xb5, 0x51, 0x43, 0x38, 0x64, 0xe4,
+ 0x80, 0x89, 0x22, 0x23, 0x48, 0x83, 0x92, 0x50,
+ 0xc9, 0xc8, 0x21, 0x9a, 0x22, 0x32, 0x5a, 0x18,
+ 0x29, 0x20, 0xc3, 0x0d, 0x14, 0x21, 0x66, 0x09,
+ 0x04, 0x09, 0xd9, 0x86, 0x81, 0x49, 0x46, 0x91,
+ 0xda, 0x22, 0x28, 0x93, 0x04, 0x25, 0x09, 0xb1,
+ 0x6c, 0x84, 0xa2, 0x31, 0x0c, 0x89, 0x40, 0x0c,
+ 0x89, 0x69, 0xc8, 0x46, 0x70, 0x8b, 0x44, 0x26,
+ 0x44, 0x22, 0x25, 0xcc, 0x84, 0x2d, 0x20, 0x32,
+ 0x70, 0x8a, 0x84, 0x21, 0x08, 0x10, 0x86, 0x0b,
+ 0x03, 0x90, 0x44, 0x94, 0x41, 0xc3, 0x08, 0x0a,
+ 0xc2, 0x24, 0x48, 0xd1, 0x98, 0x6c, 0x10, 0x26,
+ 0x8c, 0x52, 0xc6, 0x8d, 0xc2, 0xa0, 0x61, 0x58,
+ 0x34, 0x4e, 0x1c, 0xb6, 0x41, 0x5a, 0xb8, 0x50,
+ 0xc2, 0x28, 0x26, 0x61, 0x14, 0x6e, 0x19, 0x47,
+ 0x0a, 0x4b, 0x92, 0x80, 0xc0, 0x88, 0x01, 0xda,
+ 0x18, 0x11, 0x8c, 0x34, 0x32, 0x24, 0x47, 0x82,
+ 0xe0, 0x40, 0x49, 0x50, 0x08, 0x6c, 0x03, 0x20,
+ 0x05, 0x24, 0x83, 0x40, 0x12, 0x23, 0x49, 0x02,
+ 0x82, 0x0c, 0x13, 0xb9, 0x0d, 0x44, 0xa2, 0x80,
+ 0x82, 0x20, 0x71, 0x52, 0x38, 0x68, 0xc9, 0xa2,
+ 0x09, 0x92, 0x40, 0x09, 0x54, 0x10, 0x6c, 0x81,
+ 0x38, 0x4e, 0x23, 0x25, 0x91, 0x59, 0xc0, 0x68,
+ 0xc0, 0x44, 0x72, 0x93, 0x06, 0x0a, 0xd0, 0x20,
+ 0x70, 0xa4, 0xc0, 0x25, 0x0b, 0x18, 0x8a, 0x0a,
+ 0x01, 0x61, 0x13, 0xc5, 0x40, 0x58, 0xa4, 0x90,
+ 0x23, 0x24, 0x70, 0x8c, 0x24, 0x6c, 0x4a, 0xb4,
+ 0x04, 0x09, 0x96, 0x05, 0x08, 0x92, 0x4c, 0xcc,
+ 0xc2, 0x85, 0x60, 0x88, 0x6d, 0x52, 0xb6, 0x4d,
+ 0x09, 0x28, 0x66, 0x83, 0x42, 0x4e, 0x9c, 0x18,
+ 0x26, 0xd9, 0x28, 0x11, 0x98, 0x28, 0x01, 0x1a,
+ 0x32, 0x28, 0xc8, 0xb8, 0x29, 0xd9, 0x22, 0x8d,
+ 0x9a, 0x42, 0x44, 0x0b, 0x33, 0x28, 0xc2, 0x36,
+ 0x2e, 0x10, 0x88, 0x21, 0x54, 0x12, 0x61, 0x0a,
+ 0xa1, 0x2c, 0x08, 0xc5, 0x29, 0x63, 0x14, 0x8d,
+ 0x00, 0x28, 0x0c, 0x0b, 0x49, 0x0e, 0x12, 0x47,
+ 0x64, 0xdc, 0x80, 0x61, 0x02, 0x24, 0x12, 0x1c,
+ 0x12, 0x04, 0x11, 0x13, 0x31, 0x0b, 0xb8, 0x81,
+ 0xca, 0x04, 0x01, 0x11, 0x27, 0x28, 0x1c, 0x02,
+ 0x2a, 0xd2, 0xc8, 0x45, 0xc9, 0xc4, 0x89, 0x09,
+ 0xc5, 0x64, 0x22, 0x23, 0x86, 0x0a, 0xa2, 0x29,
+ 0x40, 0xc0, 0x91, 0x58, 0xc2, 0x40, 0x40, 0x82,
+ 0x41, 0x61, 0xb2, 0x8d, 0x4a, 0x92, 0x21, 0xd0,
+ 0x00, 0x66, 0x19, 0xa3, 0x6c, 0xdc, 0xb4, 0x90,
+ 0x01, 0x37, 0x6a, 0x04, 0x01, 0x91, 0x99, 0x40,
+ 0x0c, 0x1c, 0xc0, 0x50, 0x59, 0xa4, 0x8d, 0xd4,
+ 0x80, 0x80, 0x13, 0x14, 0x4c, 0xd4, 0x00, 0x45,
+ 0xa1, 0xa4, 0x84, 0x13, 0x12, 0x4d, 0xc2, 0x90,
+ 0x30, 0x89, 0x82, 0x48, 0x10, 0xa8, 0x04, 0x9a,
+ 0xa2, 0x04, 0x01, 0x21, 0x51, 0x8a, 0x30, 0x31,
+ 0x8a, 0xa6, 0x8c, 0x00, 0xc2, 0x68, 0x59, 0x84,
+ 0x68, 0x89, 0x06, 0x90, 0x98, 0x36, 0x61, 0x48,
+ 0x84, 0x01, 0x8c, 0x24, 0x90, 0xc8, 0x94, 0x90,
+ 0xd9, 0x06, 0x88, 0x8c, 0x26, 0x21, 0xa4, 0x48,
+ 0x4d, 0xd2, 0x20, 0x69, 0x14, 0xa6, 0x0c, 0xa0,
+ 0xa6, 0x0d, 0x0c, 0x90, 0x44, 0x22, 0x06, 0x50,
+ 0x64, 0x18, 0x0e, 0x13, 0x15, 0x49, 0x99, 0xa4,
+ 0x49, 0x9c, 0x14, 0x62, 0xa3, 0x32, 0x42, 0xd1,
+ 0xb6, 0x85, 0x0c, 0xb5, 0x24, 0x00, 0x26, 0x0a,
+ 0xdc, 0x98, 0x60, 0x54, 0x48, 0x88, 0x0a, 0x27,
+ 0x69, 0xd4, 0x20, 0x65, 0x0b, 0xc0, 0x80, 0x99,
+ 0xa6, 0x70, 0x14, 0x08, 0x25, 0xc2, 0x86, 0x49,
+ 0x8c, 0x14, 0x08, 0x94, 0x22, 0x91, 0x8a, 0x16,
+ 0x11, 0xc8, 0x38, 0x48, 0x94, 0x82, 0x25, 0xa2,
+ 0x02, 0x46, 0x13, 0xb7, 0x88, 0xd9, 0x84, 0x01,
+ 0x18, 0x02, 0x4e, 0xd3, 0x30, 0x32, 0x61, 0x06,
+ 0x68, 0x1b, 0x37, 0x92, 0x5a, 0x16, 0x65, 0x01,
+ 0x93, 0x48, 0x60, 0x98, 0x29, 0x44, 0x08, 0x4c,
+ 0x49, 0xb0, 0x41, 0x10, 0x06, 0x05, 0x89, 0x46,
+ 0x66, 0xc2, 0x40, 0x2c, 0x8b, 0xa2, 0x70, 0x8c,
+ 0x10, 0x84, 0x91, 0xa6, 0x4d, 0x21, 0x95, 0x8d,
+ 0x02, 0x11, 0x44, 0x23, 0x42, 0x60, 0x4a, 0x12,
+ 0x00, 0x13, 0x05, 0x42, 0x61, 0x16, 0x66, 0x5c,
+ 0x06, 0x8e, 0x20, 0xb2, 0x81, 0x14, 0x43, 0x90,
+ 0x23, 0x35, 0x48, 0x9a, 0x22, 0x2e, 0xc3, 0x30,
+ 0x72, 0x5b, 0x18, 0x8e, 0xc4, 0xb2, 0x20, 0x8b,
+ 0x26, 0x02, 0x18, 0x22, 0x46, 0x60, 0xa2, 0x04,
+ 0x62, 0x46, 0x20, 0x63, 0x12, 0x60, 0x61, 0x18,
+ 0x62, 0x0a, 0xa1, 0x71, 0xdb, 0x16, 0x4e, 0x8c,
+ 0x16, 0x06, 0x23, 0x43, 0x86, 0x50, 0x28, 0x44,
+ 0x92, 0x02, 0x59, 0x5f, 0x39, 0xcd, 0x46, 0x24,
+ 0x12, 0x1e, 0xb3, 0xb7, 0xfc, 0x96, 0x20, 0xe7,
+ 0xa8, 0x9d, 0x65, 0xc0, 0xa7, 0xd3, 0x5e, 0x8a,
+ 0x96, 0x22, 0x3f, 0x35, 0xd3, 0x25, 0xe7, 0xd4,
+ 0x7b, 0xcb, 0xb7, 0x1a, 0x90, 0x85, 0xe4, 0x95,
+ 0x84, 0x1b, 0x1d, 0xf0, 0xa0, 0x44, 0x24, 0x0a,
+ 0x1b, 0x94, 0x66, 0xed, 0x0b, 0x99, 0x11, 0x97,
+ 0xcc, 0x57, 0x64, 0x2a, 0x08, 0x0d, 0x52, 0xbc,
+ 0x9b, 0x19, 0xc8, 0x1e, 0x75, 0x2a, 0xd5, 0x6f,
+ 0x61, 0xbe, 0x42, 0x4b, 0x14, 0x10, 0x75, 0x21,
+ 0xac, 0xc8, 0x75, 0xcc, 0xfe, 0x1d, 0xf6, 0x01,
+ 0xc0, 0x70, 0x26, 0x22, 0xef, 0xca, 0x37, 0x69,
+ 0x27, 0x43, 0x2b, 0x68, 0x2b, 0x1f, 0x36, 0x3d,
+ 0x55, 0x90, 0xbe, 0x21, 0xc2, 0x32, 0x0d, 0x54,
+ 0x89, 0xcd, 0xd6, 0x27, 0xc6, 0x03, 0x87, 0x64,
+ 0x29, 0x43, 0x4c, 0x70, 0x32, 0x1f, 0xb3, 0x83,
+ 0xf7, 0xa4, 0x28, 0xd3, 0xb4, 0x4a, 0x42, 0x26,
+ 0x0c, 0xf5, 0xe7, 0x68, 0x8f, 0x4a, 0x7d, 0xc0,
+ 0x85, 0x4e, 0x8d, 0x86, 0x65, 0x8a, 0xb8, 0x22,
+ 0xad, 0x0d, 0x32, 0x3f, 0x82, 0x46, 0xe7, 0x43,
+ 0xeb, 0xd3, 0x1d, 0xcd, 0xbe, 0xc4, 0xc6, 0xdb,
+ 0xad, 0x9e, 0xa3, 0x17, 0x3d, 0x01, 0xf6, 0x47,
+ 0x77, 0x2d, 0x3d, 0x6b, 0xc6, 0x53, 0xf8, 0x73,
+ 0x1a, 0x1b, 0x31, 0xda, 0x9b, 0xe6, 0x4d, 0x45,
+ 0xed, 0xe0, 0x35, 0xe7, 0xd7, 0x1e, 0x93, 0x07,
+ 0xaa, 0x43, 0x6c, 0x7e, 0xec, 0xf3, 0xc1, 0x95,
+ 0x52, 0xa0, 0x22, 0x35, 0x58, 0x86, 0xf9, 0x0e,
+ 0x03, 0xca, 0xe7, 0x5e, 0xae, 0x9f, 0x2c, 0xbd,
+ 0x4d, 0xfd, 0x42, 0x66, 0x4d, 0x23, 0xcd, 0x17,
+ 0xcb, 0x75, 0xb3, 0x9d, 0x6a, 0xc8, 0x1d, 0x58,
+ 0xf7, 0x86, 0xeb, 0xb6, 0xa1, 0xe1, 0x47, 0xbd,
+ 0x2d, 0xa4, 0xd9, 0xda, 0x8b, 0x57, 0x5f, 0xeb,
+ 0xd7, 0x4c, 0x7f, 0x9a, 0xc2, 0x2c, 0x89, 0x1e,
+ 0xa0, 0x0f, 0x5f, 0x03, 0xc7, 0x9b, 0xb8, 0xf0,
+ 0xec, 0x4a, 0x27, 0x0c, 0x89, 0x50, 0xe7, 0x08,
+ 0x4a, 0xb3, 0x71, 0xca, 0x57, 0x92, 0xdd, 0x2f,
+ 0x10, 0x5f, 0x5b, 0xf2, 0x0f, 0x71, 0x10, 0x99,
+ 0xdd, 0xa7, 0x5b, 0x92, 0xe4, 0xc2, 0x1d, 0xb2,
+ 0x41, 0x4a, 0xc2, 0xca, 0xba, 0xf1, 0x74, 0xca,
+ 0xe1, 0x60, 0xcc, 0x36, 0xb1, 0x7c, 0xfd, 0x1e,
+ 0x90, 0xbf, 0x1f, 0x19, 0xd4, 0x9a, 0x01, 0x59,
+ 0x4a, 0x5d, 0x87, 0xa3, 0x28, 0x00, 0x43, 0xea,
+ 0x13, 0x34, 0xa2, 0xdf, 0xe8, 0xdb, 0x1e, 0x28,
+ 0xf7, 0x7e, 0x5b, 0x2e, 0xb0, 0xd7, 0xa3, 0x7b,
+ 0x5b, 0x2b, 0x7d, 0xf4, 0x9b, 0x49, 0x3e, 0x5e,
+ 0xb2, 0xf3, 0x1a, 0xc7, 0x59, 0xb5, 0x27, 0xfc,
+ 0x11, 0xfe, 0x47, 0xba, 0xf8, 0xe7, 0x01, 0x65,
+ 0x08, 0x1d, 0x8b, 0xc3, 0xf2, 0x7c, 0xef, 0x89,
+ 0xaa, 0x40, 0xdf, 0x29, 0x74, 0xb0, 0x09, 0x97,
+ 0xac, 0xbd, 0xf8, 0x3e, 0x11, 0x71, 0x30, 0xed,
+ 0x38, 0x9f, 0x95, 0x15, 0x78, 0xc7, 0xe6, 0x01,
+ 0x0e, 0xaa, 0x1a, 0xae, 0xfc, 0x61, 0xf2, 0xc9,
+ 0x75, 0x0e, 0xf8, 0x74, 0x4b, 0x30, 0x4e, 0x79,
+ 0x17, 0x54, 0x66, 0xa6, 0x8f, 0xb1, 0x40, 0x8d,
+ 0x7e, 0xbd, 0x46, 0xc4, 0x80, 0x7b, 0xca, 0x2c,
+ 0x52, 0x11, 0xe9, 0x17, 0x6e, 0xde, 0x56, 0xcb,
+ 0xcc, 0x61, 0xe7, 0x35, 0x46, 0x89, 0x3e, 0xc6,
+ 0x97, 0xc5, 0x56, 0x13, 0x50, 0x20, 0x36, 0xee,
+ 0x08, 0x10, 0x93, 0xf5, 0x75, 0x87, 0xc9, 0x6d,
+ 0x99, 0x2a, 0x00, 0x5c, 0x90, 0xfc, 0x04, 0xf1,
+ 0xf2, 0xc8, 0x89, 0x09, 0x2a, 0xe2, 0x51, 0xe6,
+ 0x66, 0x18, 0x65, 0x86, 0x84, 0x9e, 0x06, 0x4d,
+ 0xf7, 0xdd, 0x33, 0x25, 0x4c, 0x24, 0xe9, 0xaa,
+ 0x45, 0x66, 0xca, 0x3d, 0x92, 0x5e, 0x23, 0xe3,
+ 0x98, 0x74, 0x50, 0xce, 0x91, 0xac, 0xaf, 0x3f,
+ 0x08, 0xf6, 0x4e, 0x2d, 0xbf, 0xd6, 0x39, 0x29,
+ 0x82, 0xa0, 0xfd, 0x72, 0x03, 0x00, 0xfe, 0x7a,
+ 0xbe, 0x5a, 0xd1, 0x40, 0xf5, 0xe7, 0xfe, 0x12,
+ 0xcb, 0x36, 0x12, 0x43, 0xd0, 0x82, 0x77, 0xf5,
+ 0x92, 0x3d, 0x3e, 0x6f, 0xf2, 0x11, 0xc4, 0x92,
+ 0xb9, 0xa2, 0x5a, 0xae, 0x74, 0x46, 0x85, 0xaa,
+ 0x43, 0xfb, 0xe4, 0x90, 0x6e, 0xcd, 0xe9, 0x52,
+ 0xf8, 0xea, 0xac, 0xdb, 0x92, 0xe8, 0x38, 0x14,
+ 0x12, 0xe8, 0x0f, 0xfc, 0x94, 0x78, 0x6f, 0xe0,
+ 0x5a, 0x35, 0x46, 0x19, 0xc8, 0xa1, 0x47, 0x47,
+ 0xf1, 0xe9, 0xc3, 0xc2, 0xe5, 0x2a, 0x28, 0x40,
+ 0x55, 0xbe, 0x41, 0x28, 0x38, 0x29, 0x2f, 0x6f,
+ 0x53, 0xd8, 0xe6, 0xe3, 0x4b, 0x84, 0xa4, 0xf7,
+ 0x5a, 0x07, 0xbf, 0x75, 0x97, 0x00, 0x69, 0xde,
+ 0x84, 0x17, 0xc4, 0xe3, 0x11, 0x32, 0x8d, 0xcd,
+ 0x33, 0x5b, 0x5f, 0x6a, 0x7e, 0x99, 0x93, 0x65,
+ 0xeb, 0xe8, 0xa9, 0x20, 0x93, 0x69, 0x4e, 0x63,
+ 0x58, 0xe2, 0x1b, 0x7c, 0x18, 0xea, 0x18, 0xb1,
+ 0xe0, 0x78, 0x0d, 0x3d, 0x8e, 0x4e, 0xc0, 0x1d,
+ 0xfc, 0x8f, 0xd9, 0xd4, 0x90, 0xd8, 0x3b, 0x6e,
+ 0x51, 0x69, 0x0e, 0xc2, 0x19, 0xca, 0xf4, 0xbf,
+ 0x11, 0xb5, 0x8b, 0xb3, 0xdb, 0xd8, 0x0f, 0x9d,
+ 0x71, 0xdd, 0x38, 0x7e, 0x41, 0xb4, 0x5f, 0xff,
+ 0xf4, 0x40, 0x38, 0xdc, 0xa1, 0xf8, 0x19, 0xe3,
+ 0x23, 0xeb, 0x02, 0x03, 0xd6, 0x70, 0xba, 0x2c,
+ 0x79, 0x27, 0xf0, 0xc4, 0x84, 0x9a, 0xe5, 0x58,
+ 0x98, 0x1e, 0x3f, 0xc7, 0x35, 0x1f, 0xfe, 0x99,
+ 0xe9, 0xab, 0x9b, 0x51, 0xec, 0xeb, 0xeb, 0xb0,
+ 0x95, 0xb8, 0xe9, 0x3d, 0x8a, 0x49, 0x80, 0x89,
+ 0xec, 0xfa, 0x6f, 0xac, 0x77, 0x45, 0x9a, 0xba,
+ 0xe0, 0xef, 0x05, 0x5f, 0x13, 0xaf, 0x9a, 0x96,
+ 0xcd, 0xff, 0x8e, 0x43, 0x6f, 0x88, 0xe8, 0xa5,
+ 0xf8, 0x93, 0x9e, 0xa8, 0x86, 0xc8, 0x76, 0x88,
+ 0xf3, 0xa3, 0x4a, 0xcf, 0x5e, 0x3b, 0x68, 0xd1,
+ 0x80, 0x70, 0x60, 0x0a, 0x1c, 0xcf, 0xb3, 0x44,
+ 0xc4, 0x1c, 0xea, 0x05, 0x2f, 0x51, 0x79, 0xfe,
+ 0x13, 0xc4, 0x43, 0xa3, 0x79, 0x7e, 0x9e, 0x6b,
+ 0xa6, 0xb4, 0xae, 0x7e, 0x8e, 0xef, 0x81, 0x26,
+ 0x15, 0x80, 0xd7, 0x7d, 0x49, 0xd4, 0x2b, 0x9e,
+ 0x51, 0x60, 0x60, 0xe1, 0xeb, 0x46, 0x8e, 0xb2,
+ 0x3a, 0x7f, 0x07, 0x05, 0xf1, 0xcd, 0xc2, 0xe8,
+ 0xf1, 0xe4, 0x6e, 0xcd, 0x87, 0xcd, 0x0e, 0xf7,
+ 0x74, 0x80, 0xdd, 0xd2, 0x47, 0x60, 0x25, 0x5f,
+ 0x90, 0x55, 0xab, 0xfd, 0x3d, 0x95, 0xeb, 0x66,
+ 0xc9, 0xfb, 0x72, 0x43, 0x48, 0x85, 0xc4, 0x8a,
+ 0x4c, 0x09, 0x1c, 0x91, 0x74, 0x01, 0x2d, 0x07,
+ 0x97, 0x9e, 0x98, 0xbb, 0x8f, 0xa8, 0x31, 0xd7,
+ 0x05, 0x11, 0xfd, 0xf6, 0x06, 0x7a, 0x1e, 0xa4,
+ 0x42, 0x1a, 0x2b, 0x1f, 0xe5, 0xa1, 0x0f, 0x08,
+ 0x24, 0xa6, 0xf1, 0x16, 0x59, 0x67, 0xde, 0xbd,
+ 0x72, 0x61, 0x9f, 0xe0, 0x95, 0xea, 0xfd, 0x61,
+ 0x34, 0x4d, 0x9c, 0xda, 0x8d, 0x56, 0xe4, 0x8f,
+ 0xba, 0xea, 0x09, 0x2d, 0x6d, 0x72, 0x1e, 0x0b,
+ 0xa4, 0xf3, 0xa7, 0x2d, 0xcc, 0x65, 0xa1, 0x1f,
+ 0x09, 0x89, 0x70, 0x7d, 0x6b, 0x28, 0x21, 0x11,
+ 0xa3, 0xbc, 0xb6, 0x70, 0x46, 0xa4, 0x04, 0x67,
+ 0xd0, 0xae, 0x99, 0xad, 0xbf, 0x08, 0x7a, 0xcf,
+ 0xb5, 0x5c, 0xb8, 0x25, 0xe9, 0x7a, 0x67, 0x80,
+ 0xd3, 0x0f, 0x78, 0x66, 0xef, 0x97, 0x64, 0x12,
+ 0x31, 0x84, 0xc6, 0x62, 0x31, 0x78, 0xf3, 0xdb,
+ 0x4e, 0xbe, 0x60, 0x66, 0x6f, 0xe0, 0x27, 0x0e,
+ 0x3d, 0xa5, 0x6b, 0xef, 0x90, 0x5f, 0x3e, 0xf2,
+ 0x04, 0xbc, 0xf8, 0xb5, 0x76, 0x20, 0xe7, 0xa0,
+ 0xbf, 0x26, 0x29, 0x06, 0xfa, 0xd6, 0x38, 0x2b,
+ 0xe6, 0x30, 0x46, 0x57, 0x45, 0x4c, 0x0b, 0x0a,
+ 0xd8, 0x53, 0x9f, 0xe7, 0x6f, 0x6f, 0x66, 0xba,
+ 0xcf, 0x86, 0x48, 0x9a, 0xf9, 0x95, 0x90, 0x6b,
+ 0x4b, 0xd8, 0x4c, 0x3b, 0xf3, 0x53, 0xb7, 0x51,
+ 0xaa, 0x71, 0xbe, 0x1c, 0x9e, 0x00, 0x1a, 0x14,
+ 0xeb, 0x19, 0xcd, 0x6d, 0xe4, 0xc3, 0x30, 0xac,
+ 0xdc, 0xdb, 0xa3, 0xbb, 0xe7, 0x24, 0xaf, 0xad,
+ 0xf4, 0xde, 0xc5, 0xff, 0x3d, 0x07, 0x31, 0x29,
+ 0x81, 0x19, 0x2d, 0x25, 0x39, 0xf2, 0xb3, 0x9e,
+ 0x35, 0xa3, 0x45, 0x91, 0xbb, 0x13, 0x22, 0xd3,
+ 0x50, 0xca, 0x4f, 0x90, 0xde, 0xc5, 0xf1, 0xde,
+ 0x78, 0x50, 0x0c, 0xe3, 0x83, 0x8d, 0x8b, 0x91,
+ 0x4b, 0x2c, 0x5d, 0xb1, 0x4c, 0x5c, 0x06, 0x08,
+ 0x7e, 0xbf, 0xdb, 0xf5, 0x76, 0xc3, 0x76, 0x25,
+ 0x2e, 0xa4, 0xaf, 0x14, 0xe5, 0x26, 0x05, 0x9f,
+ 0x36, 0x5d, 0xb3, 0x7f, 0xa0, 0x2f, 0x01, 0x20,
+ 0x02, 0x8c, 0x0a, 0xda, 0x2b, 0xc2, 0x19, 0x2d,
+ 0xa0, 0x42, 0x9c, 0x04, 0xbf, 0x96, 0x75, 0x72,
+ 0x64, 0x12, 0x51, 0x6a, 0xf0, 0x34, 0xa1, 0xad,
+ 0x0d, 0x8b, 0x79, 0xc2, 0x04, 0x95, 0x25, 0xb2,
+ 0xed, 0x24, 0xa1, 0x47, 0xdd, 0x76, 0x98, 0x08,
+ 0x76, 0xbb, 0x02, 0x92, 0x35, 0xc5, 0xc5, 0x3f,
+ 0xcb, 0x7c, 0x9e, 0x3a, 0x7d, 0xb4, 0x29, 0x3a,
+ 0x8d, 0x67, 0x45, 0xca, 0x68, 0x4d, 0x3e, 0xf9,
+ 0x12, 0x33, 0xd0, 0xbe, 0xfb, 0x4d, 0xb8, 0xc1,
+ 0x11, 0x5f, 0xdb, 0xbc, 0x42, 0x02, 0x78, 0x6e,
+ 0x2b, 0xee, 0x20, 0x60, 0x6f, 0xd2, 0xab, 0xee,
+ 0xbe, 0x21, 0x7a, 0x69, 0xb5, 0xfa, 0x5d, 0x3c,
+ 0x55, 0x41, 0xd0, 0x39, 0x8c, 0x49, 0xaa, 0xfe,
+ 0xe0, 0xfe, 0x3d, 0x67, 0xdf, 0xeb, 0xfe, 0xd7,
+ 0x64, 0x4f, 0x5f, 0x51, 0xba, 0x4c, 0x2a, 0x6a,
+ 0xca, 0x3d, 0xd2, 0xed, 0x6c, 0xf6, 0x29, 0xe6,
+ 0x9a, 0x81, 0xf1, 0x05, 0xa5, 0x0d, 0xb3, 0xea,
+ 0x9e, 0x28, 0xfa, 0xba, 0x12, 0x17, 0xd6, 0x2e,
+ 0xbd, 0xdb, 0xc9, 0x32, 0x96, 0xbb, 0xd7, 0x0e,
+ 0xab, 0x1e, 0xb0, 0x1b, 0xfd, 0x56, 0x5e, 0x98,
+ 0x15, 0xd2, 0xd5, 0x50, 0x5e, 0x98, 0x17, 0x40,
+ 0xb3, 0x50, 0x9a, 0xd6, 0x99, 0x7d, 0x64, 0xe9,
+ 0xd0, 0xcc, 0x37, 0x7d, 0x17, 0xfb, 0xe5, 0x55,
+ 0x05, 0x2c, 0xc1, 0x8a, 0x69, 0xf7, 0xa6, 0xcf,
+ 0x8c, 0xe2, 0xa6, 0xcd, 0x7c, 0x3d, 0x49, 0xbe,
+ 0xc2, 0x8f, 0xf7, 0xd6, 0x1b, 0xfe, 0x2e, 0xb9,
+ 0x7e, 0xab, 0x9c, 0x16, 0xe2, 0xd9, 0x1a, 0x79,
+ 0x53, 0x7f, 0xcc, 0x7b, 0x94, 0x71, 0x9c, 0xf8,
+ 0x62, 0x9c, 0xa4, 0x55, 0x23, 0xc2, 0xba, 0xcd,
+ 0x04, 0x7f, 0xc9, 0xce, 0x62, 0x3e, 0x83, 0xc2,
+ 0x0d, 0x80, 0x23, 0x29, 0x1b, 0x92, 0x7f, 0x69,
+ 0x5b, 0xaf, 0x34, 0x7d, 0xaf, 0x1a, 0x04, 0x9b,
+ 0xd0, 0x4e, 0xf1, 0x3d, 0x7a, 0xef, 0x03, 0xf5,
+ 0xb9, 0x87, 0xde, 0x29, 0x11, 0x16, 0x48, 0xb7,
+ 0x09, 0x82, 0x7b, 0xf7, 0x74, 0xbd, 0x1f, 0x69,
+ 0xc8, 0xfc, 0x6f, 0xbb, 0x07, 0x8d, 0x48, 0x42,
+ 0x5b, 0xae, 0x71, 0x43, 0x30, 0x65, 0x1c, 0x2e,
+ 0xc6, 0x46, 0xd9, 0xb8, 0xde, 0x0a, 0xc6, 0xee,
+ 0x22, 0xe8, 0x6f, 0xb4, 0x6d, 0x51, 0x18, 0x11,
+ 0x8e, 0x2d, 0x4d, 0x0a, 0x02, 0xd3, 0x86, 0x05,
+ 0xb7, 0xd6, 0xc0, 0x90, 0xef, 0xa8, 0xb1, 0xf9,
+ 0x22, 0x0d, 0xc7, 0xdc, 0xac, 0x47, 0x61, 0xbd,
+ 0xe3, 0x98, 0x6d, 0x18, 0x0d, 0x79, 0x60, 0x87,
+ 0x00, 0x07, 0xd8, 0x12, 0x33, 0x0f, 0xb2, 0x10,
+ 0x07, 0x06, 0x1c, 0xcb, 0x07, 0x25, 0xf0, 0x6c,
+ 0x3f, 0x1e, 0xe6, 0x57, 0xed, 0x26, 0x55, 0x82,
+ 0xfe, 0x2d, 0x72, 0x35, 0x98, 0x89, 0x68, 0xa7,
+ 0x32, 0x4c, 0xbe, 0xb2, 0xb0, 0x77, 0x66, 0x96,
+ 0x6d, 0x00, 0x9d, 0xf1, 0x8b, 0x69, 0xaa, 0xd4,
+ 0xa2, 0x37, 0x86, 0x8b, 0xbf, 0xbd, 0x13, 0xe3,
+ 0xb0, 0x9d, 0x6c, 0xa3, 0xf1, 0xf5, 0xdc, 0x9e,
+ 0xb2, 0xc5, 0x77, 0x22, 0xa7, 0x27, 0x8e, 0x9e,
+ 0xb9, 0xa7, 0xa9, 0x16, 0x9a, 0x48, 0x0a, 0x1e,
+ 0x17, 0x9e, 0xeb, 0xf1, 0x4f, 0x36, 0x73, 0xa1,
+ 0x53, 0x26, 0x74, 0x00, 0x38, 0x9c, 0x3f, 0x0c,
+ 0xad, 0x23, 0x0c, 0xb3, 0xf6, 0x05, 0xd4, 0xbe,
+ 0xc2, 0xbd, 0x8e, 0xf7, 0x5f, 0xb6, 0x18, 0x86,
+ 0xc8, 0x32, 0x4d, 0xef, 0x8b, 0x5a, 0xd1, 0x06,
+ 0x6c, 0xe0, 0x50, 0xc1, 0xfa, 0x89, 0x72, 0xa2,
+ 0x02, 0x85, 0x78, 0xb2, 0x0b, 0xa5, 0xbf, 0x63,
+ 0x5e, 0xad, 0x3d, 0xc7, 0x76, 0x09, 0x91, 0xd8,
+ 0x81, 0x85, 0x33, 0xb8, 0x96, 0xa4, 0x15, 0x03,
+ 0xa2, 0x18, 0x9b, 0xa3, 0xd6, 0x4b, 0x80, 0xaa,
+ 0xb8, 0x70, 0x62, 0x16, 0x30, 0x15, 0xef, 0xc0,
+ 0xfe, 0xfc, 0x29, 0x00, 0x20, 0x5e, 0x3f, 0x14,
+ 0xec, 0x32, 0x8e, 0x3a, 0x45, 0xab, 0xc9, 0x3c,
+ 0xb8, 0xbe, 0xc4, 0x6e, 0x54, 0x86, 0x7a, 0x4e,
+ 0x76, 0xc5, 0x2d, 0xde, 0x05, 0x19, 0x1a, 0x5b,
+ 0x5c, 0xea, 0x15, 0x7f, 0x7b, 0xbe, 0x75, 0xe4,
+ 0x2e, 0xa9, 0xcb, 0xcc, 0x6d, 0xf5, 0x95, 0x3c,
+ 0x78, 0x20, 0x7f, 0x6a, 0x34, 0xac, 0xd4, 0xc1,
+ 0xc3, 0xd0, 0xea, 0x40, 0xf4, 0xdf, 0x06, 0xba,
+ 0x2b, 0xf2, 0xed, 0x42, 0x59, 0x29, 0x0e, 0xe0,
+ 0x07, 0xb4, 0x81, 0x2e, 0x8e, 0xa6, 0x79, 0xdf,
+ 0xe5, 0x65, 0x3f, 0x0d, 0x93, 0xef, 0xa3, 0xc7,
+ 0xe3, 0x41, 0x0a, 0x45, 0x06, 0xa1, 0x13, 0xb4,
+ 0x07, 0x09, 0xa0, 0xf2, 0x6c, 0x8b, 0x0c, 0xc4,
+ 0x07, 0xbf, 0x5b, 0xb7, 0x17, 0xe7, 0x76, 0x60,
+ 0x63, 0x6e, 0x01, 0x42, 0xe1, 0xff, 0xbe, 0xfe,
+ 0xdd, 0x23, 0xa9, 0x0a, 0x46, 0xa9, 0xce, 0xb4,
+ 0x85, 0x73, 0x0e, 0x07, 0x5a, 0x59, 0x66, 0xfd,
+ 0xc3, 0x1a, 0x92, 0x67, 0xc2, 0x11, 0xf3, 0xbd,
+ 0x3d, 0xbd, 0xe4, 0x03, 0x0a, 0x66, 0x58, 0xee,
+ 0xfa, 0x7b, 0x0f, 0x75, 0xd8, 0x9b, 0xf4, 0xdc,
+ 0x67, 0x2b, 0x72, 0xb8, 0x9a, 0xbb, 0xc3, 0x3f,
+ 0x1c, 0xb5, 0x02, 0xcf, 0xeb, 0x1b, 0xca, 0x76,
+ 0xf2, 0x3d, 0xe7, 0xf6, 0x21, 0x99, 0xf4, 0x38,
+ 0xc5, 0x8f, 0xa2, 0x9c, 0x1e, 0x52, 0xcf, 0xdc,
+ 0xe2, 0x50, 0xcf, 0x6a, 0xfb, 0x8b, 0x24, 0xd8,
+ 0xec, 0xc1, 0x66, 0x8b, 0x57, 0x19, 0xc5, 0x40,
+ 0x02, 0xac, 0x91, 0xaf, 0xe6, 0xb5, 0xaa, 0x09,
+ 0xfc, 0x74, 0x7b, 0x1f, 0xe6, 0x43, 0xc7, 0xeb,
+ 0xe4, 0x26, 0x3c, 0xbc, 0xa4, 0xe5, 0xef, 0x10,
+ 0xd6, 0x9e, 0x19, 0xa6, 0x1b, 0x50, 0xb6, 0x25,
+ 0x3d, 0x64, 0x34, 0x21, 0xfc, 0x9d, 0xde, 0x08,
+ 0xeb, 0x20, 0x5b, 0x8a, 0x84, 0x14, 0x44, 0x08,
+ 0x93, 0xa4, 0xcb, 0x34, 0xc6, 0xaa, 0x52, 0x38,
+ 0xfe, 0x3d, 0x6b, 0x99, 0x73, 0x4a, 0xa1, 0x06,
+ 0x1d, 0xc5, 0x63, 0xcc, 0xd5, 0x42, 0xb8, 0xb4,
+ 0x5c, 0x2f, 0x8f, 0x67, 0x59, 0x58, 0x69, 0x32,
+ 0x6d, 0x93, 0x5b, 0x2d, 0x39, 0xa6, 0x22, 0x52,
+ 0x84, 0xdc, 0x44, 0x68, 0xd6, 0x4d, 0x07, 0xfe,
+ 0xd4, 0xbd, 0x54, 0xc7, 0x60, 0x68, 0x64, 0x37,
+ 0xf6, 0x42, 0x36, 0xe0, 0x8b, 0xa7, 0x1f, 0x7e,
+ 0x7f, 0x75, 0xb1, 0x1d, 0xdd, 0xf9, 0x64, 0xfc,
+ 0x4e, 0xd6, 0xee, 0xaf, 0x78, 0x6e, 0xb7, 0x63,
+ 0x28, 0xaa, 0x60, 0xa7, 0x22, 0x44, 0xe2, 0xcc,
+ 0xfa, 0xda, 0x68, 0xcc, 0x1e, 0xdc, 0xf5, 0xfc,
+ 0x57, 0x3a, 0x3a, 0xbe, 0x43, 0x43, 0x1c, 0xdd,
+ 0x0c, 0x9a, 0x45, 0x2b, 0xad, 0x82, 0x67, 0x3e,
+ 0xdb, 0x90, 0x55, 0x63, 0xd2, 0xf3, 0xda, 0xbc,
+ 0x68, 0xa4, 0x44, 0xbc, 0xd2, 0x9d, 0x5f, 0x46,
+ 0x5c, 0xe6, 0xd8, 0x6d, 0x00, 0xd4, 0x99, 0xdf,
+ 0x72, 0x4f, 0xe1, 0x0f, 0xdc, 0xed, 0xf2, 0x5f,
+ 0x9b, 0x9b, 0x78, 0xf0, 0x9e, 0xda, 0x35, 0x6e,
+ 0x43, 0x59, 0xd3, 0x77, 0xb1, 0x6d, 0x1b, 0xd6,
+ 0x1d, 0x79, 0x3b, 0x03, 0x52, 0xab, 0x1f, 0xdf,
+ 0xa4, 0x21, 0x14, 0x53, 0xd2, 0xe9, 0x55, 0x3c,
+ 0xc1, 0xf3, 0x38, 0x70, 0x29, 0x2d, 0x73, 0x6d,
+ 0x14, 0xf0, 0x62, 0x9f, 0x52, 0x15, 0x34, 0xcb,
+ 0xaa, 0xe7, 0x48, 0x7a, 0x99, 0x1c, 0x4d, 0x79,
+ 0xb0, 0xfe, 0x99, 0xbc, 0xbb, 0x58, 0xd8, 0xc0,
+ 0xf0, 0x2a, 0xb2, 0x92, 0xaa, 0xa9, 0xd2, 0xf2,
+ 0xaf, 0x47, 0x30, 0xbf, 0xad, 0x5c, 0xf1, 0x52,
+ 0x51, 0x3d, 0x4a, 0x9b, 0x11, 0x25, 0x7b, 0xfc,
+ 0xa4, 0x96, 0x8e, 0xfd, 0xde, 0x0b, 0xe9, 0x78,
+ 0x04, 0x1d, 0x5c, 0x61, 0xe2, 0xd9, 0x96, 0xe5,
+ 0xa7, 0x42, 0x33, 0x63, 0x21, 0x3d, 0xa8, 0x12,
+ 0x30, 0x0f, 0x1f, 0x22, 0x64, 0xf2, 0x2c, 0x49,
+ 0xa5, 0xc1, 0xb6, 0xb4, 0x5a, 0x56, 0xd9, 0x6e,
+ 0x73, 0x8b, 0x17, 0xa2, 0x01, 0xb6, 0x16, 0x95,
+ 0x00, 0x42, 0x28, 0x4f, 0xa7, 0x35, 0x91, 0x8f,
+ 0xd3, 0x38, 0x9c, 0xad, 0x9c, 0x63, 0x16, 0x2c,
+ 0x02, 0x29, 0x87, 0x8d, 0xae, 0x23, 0xc8, 0xcf,
+ 0xbc, 0x13, 0xbc, 0xd1, 0x41, 0xb4, 0x34, 0x02,
+ 0x8e, 0x80, 0x1c, 0xaa, 0x42, 0xaa, 0xc0, 0x64,
+ 0x06, 0xb5, 0xbe, 0x48, 0xc1, 0xea, 0x7a, 0x43,
+ 0xd9, 0x5f, 0xe8, 0x53, 0x77, 0xdb, 0xdb, 0x23,
+ 0x2a, 0xad, 0x75, 0xfb, 0x94, 0x8d, 0xff, 0xb0,
+ 0xdb, 0x70, 0x58, 0xbc, 0x28, 0xd4, 0xfc, 0x14,
+ 0x96, 0x9e, 0xdb, 0x91, 0x4f, 0x0f, 0x34, 0x4b,
+ 0x25, 0x7a, 0x87, 0x20, 0xe9, 0xa7, 0x08, 0xed,
+ 0x8b, 0x3a, 0x5e, 0xe3, 0xaf, 0x9f, 0x9d, 0xfd,
+ 0x5c, 0xe8, 0xcc, 0x51, 0xfa, 0xda, 0x83, 0x0c,
+ 0x69, 0x68, 0x61, 0x9f, 0x50, 0x15, 0xaa, 0x55,
+ 0x94, 0xc4, 0x6e, 0xfb, 0xd3, 0xbc, 0x34, 0xc9,
+ 0x6c, 0xb4, 0x15, 0x9e, 0xc2, 0x94, 0x5c, 0x9d,
+ 0x2b, 0xa0, 0x5c, 0xe2, 0x13, 0x98, 0x67, 0x72,
+ 0x4e, 0x42, 0x89, 0x70, 0xdc, 0x90, 0xb6, 0x4a,
+ 0xa8, 0xed, 0xbb, 0x63, 0x34, 0x4b, 0x14, 0x26,
+ 0xe7, 0x06, 0xaa, 0xa1, 0xfd, 0x8b, 0xa8, 0x5f,
+ 0xbe, 0xab, 0x27, 0x2e, 0x2b, 0xc8, 0xa8, 0xd4,
+ 0x52, 0xbd, 0x10, 0xbe, 0x17, 0x01, 0x02, 0x88,
+ 0xd5, 0x0e, 0x9d, 0x2f, 0x55, 0xcf, 0xe5, 0x8f,
+ 0x5b, 0xdc, 0xe4, 0x89, 0x7e, 0xcd, 0x7d, 0x73,
+ 0xa0, 0x8d, 0xb6, 0x11, 0xaa, 0xa6, 0xba, 0x41,
+ 0x5f, 0x66, 0xd9, 0x59, 0x59, 0x18, 0xc7, 0xec,
+ 0x7c, 0xce, 0xee, 0x9e, 0xbc, 0x9a, 0x79, 0x93,
+ 0xf5, 0x31, 0x1c, 0xf5, 0xc3, 0x62, 0x71, 0xed,
+ 0x55, 0x6a, 0xae, 0xf9, 0xea, 0xc4, 0xce, 0x30,
+ 0xb9, 0x1e, 0xb1, 0xb7, 0xe7, 0x9c, 0xb3, 0xe8,
+ 0x22, 0xb1, 0xc0, 0x35, 0xec, 0x7d, 0x82, 0xbd,
+ 0xdf, 0x25, 0xc3, 0x03, 0x17, 0x11, 0x55, 0x92,
+ 0x03, 0xa3, 0x65, 0xa0, 0x1f, 0xb0, 0x64, 0xc5,
+ 0xf4, 0x8e, 0xa1, 0x3b, 0x7d, 0x73, 0x7b, 0xac,
+ 0xe0, 0x77, 0x6c, 0x2a, 0xbb, 0x78, 0x6d, 0x5a,
+ 0xfb, 0x5a, 0x9a, 0x9a, 0xd9, 0x33, 0x49, 0x17,
+ 0xb1, 0x4b, 0x25, 0xaa, 0x82, 0xfa, 0x66, 0x93,
+ 0x69, 0x75, 0xee, 0x4d, 0x1b, 0x8a, 0x5f, 0x45,
+ 0xf2, 0x2f, 0xed, 0xee, 0x52, 0xe9, 0x9e, 0x83,
+ 0x97, 0x23, 0x2c, 0x19, 0xe3, 0x15, 0x1e, 0xac,
+ 0x69, 0xea, 0xde, 0xb9, 0xd2, 0xd1, 0x52, 0x3e,
+ 0x8c, 0x0f, 0xc0, 0x31, 0xb1, 0x0e, 0x3c, 0xb0,
+ 0x36, 0x2e, 0xb2, 0x59, 0x4f, 0x24, 0xa8, 0x1f,
+ 0x06, 0x77, 0x87, 0x43, 0x54, 0x8a, 0xd7, 0x5d,
+ 0x4e, 0xd4, 0xad, 0x86, 0xe5, 0xf2, 0xa8, 0x82,
+ 0x13, 0xd9, 0x60, 0x6c, 0xd3, 0x9c, 0x7c, 0x5a,
+ 0x0a, 0x1c, 0xdd, 0x96, 0xa0, 0xd9, 0xf5, 0xdd,
+ 0x95, 0xa0, 0xbe, 0xca, 0xd5, 0xfb, 0xc8, 0xe4,
+ 0x9d, 0x5f, 0x7b, 0x77, 0x06, 0xaf, 0x54, 0xe2,
+ 0x49, 0xd7, 0xf0, 0xf6, 0x1a, 0x65, 0x28, 0x44,
+ 0x3b, 0xaf, 0x8f, 0x21, 0xbd, 0x65, 0xc2, 0xe0,
+ 0x43, 0x31, 0x1d, 0xa0, 0x42, 0x0d, 0x10, 0x51,
+ 0xa2, 0xa1, 0x53, 0xb7, 0x88, 0x24, 0x57, 0xf2,
+ 0xda, 0x1f, 0xa0, 0xc9, 0x5d, 0x9b, 0xb9, 0xec,
+ 0x84, 0x8d, 0x89, 0x53, 0x7f, 0xe5, 0x13, 0xdc,
+ 0x43, 0x90, 0x9a, 0x85, 0x62, 0x40, 0x13, 0x11,
+ 0xe0, 0x0a, 0x2b, 0x54, 0x41, 0x43, 0xab, 0x2f,
+ 0xcb, 0x96, 0x28, 0x1c, 0x1e, 0xfd, 0x28, 0x28,
+ 0x94, 0x21, 0x71, 0x0b, 0x56, 0x6f, 0xfb, 0xa8,
+ 0x3e, 0xdf, 0xec, 0x35, 0x94, 0xad, 0xa8, 0x5d,
+ 0x46, 0xe5, 0x48, 0x00, 0x27, 0x2a, 0x07, 0xa0,
+ 0x68, 0xc1, 0x1e, 0xab, 0x09, 0x07, 0x75, 0x7b,
+ 0xd3, 0x0b, 0xef, 0x04, 0x38, 0x10, 0x9b, 0x4c,
+ 0xac, 0x87, 0xce, 0x04, 0x4e, 0x38, 0x54, 0x1f,
+ 0x2e, 0x8b, 0xb4, 0x57, 0x73, 0x6c, 0x62, 0x64,
+ 0xdb, 0x52, 0x0f, 0xad, 0xbf, 0xef, 0x9c, 0xee,
+ 0xcd, 0xd0, 0x05, 0x0a, 0xd2, 0x1b, 0x90, 0x4e,
+ 0xcc, 0x5f, 0xb6, 0xb8, 0xce, 0x6a, 0xc7, 0xfd,
+ 0xe2, 0xbe, 0xa4, 0xdb, 0xdc, 0x3f, 0x48, 0x20,
+ 0xb6, 0x87, 0xb7, 0x72, 0x9c, 0x24, 0x44, 0xc2,
+ 0xcc, 0x5d, 0x19, 0xb6, 0x17, 0xef, 0xd9, 0x5e,
+ 0x18, 0xab, 0xf4, 0x27, 0x2b, 0xc5, 0x45, 0x8b,
+ 0x65, 0xb3, 0x5d, 0x19, 0x5d, 0xd7, 0x1d, 0xb2,
+ 0x56, 0xa6, 0x3c, 0x9b, 0x8b, 0xf9, 0xcf, 0x36,
+ 0xb4, 0x08, 0x67, 0x86, 0xb7, 0x92, 0x6f, 0x08,
+ 0x9a, 0xa1, 0xdb, 0x29, 0xcd, 0x2b, 0xc3, 0x9a,
+ 0xaf, 0x73, 0x3f, 0xb5, 0xd7, 0xf0, 0xee, 0x16,
+ 0x00, 0xc8, 0x92, 0xa6, 0xff, 0x76, 0x7b, 0x1c,
+ 0x3b, 0xd1, 0x4f, 0xf6, 0xd3, 0x7d, 0x40, 0xe2,
+ 0x70, 0xae, 0xdb, 0x8c, 0x42, 0x59, 0xd8, 0xe6,
+ 0x53, 0x3e, 0x87, 0xbe, 0x6f, 0xf4, 0xad, 0xa1,
+ 0x2d, 0xb7, 0xf0, 0xc9, 0xbb, 0xa4, 0x49, 0x4f,
+ 0xcb, 0x9a, 0x30, 0x17, 0x02, 0xa9, 0x23, 0x72,
+ 0x05, 0x6e, 0x43, 0xe3, 0x06, 0x32, 0x43, 0xc0,
+ 0xb1, 0x4f, 0x36, 0xfb, 0xf9, 0x6f, 0xb6, 0x95,
+ 0x98, 0x33, 0xcb, 0x00, 0x5d, 0xdf, 0x11, 0xc3,
+ 0xaa, 0x0d, 0x15, 0xca, 0x31, 0xb3, 0x2d, 0x0e,
+ 0xbe, 0xa2, 0xd0, 0x86, 0x64, 0x9a, 0x30, 0x56,
+ 0x0d, 0xeb, 0xb1, 0x1e, 0xf0, 0x69, 0x5e, 0x58,
+ 0x74, 0x51, 0x96, 0x2d, 0x18, 0xe8, 0x3e, 0xdc,
+ 0x0d, 0x2c, 0x32, 0xba, 0xac, 0x99, 0x9d, 0x0c,
+ 0xcb, 0x08, 0xdf, 0xd4, 0x06, 0x3d, 0x60, 0x74,
+ 0x48, 0xb0, 0x0b, 0xad, 0x7b, 0x0d, 0x2a, 0xc7,
+ 0x09, 0xd9, 0x7c, 0x9d, 0x52, 0xfc, 0x58, 0x79,
+ 0x3e, 0x43, 0x77, 0x49, 0x4b, 0xd2, 0xd5, 0x5b,
+ 0x77, 0x7b, 0x1f, 0xc2, 0x5d, 0x43, 0x00, 0x1c,
+ 0x6f, 0xd9, 0x4e, 0x05, 0xb2, 0x83, 0x1b, 0xe1,
+ 0x90, 0xf6, 0x28, 0x11, 0x50, 0xb7, 0xdc, 0x86,
+ 0xd2, 0x85, 0x75, 0x2f, 0x71, 0xd8, 0xfd, 0x75,
+ 0x26, 0x03, 0x43, 0x53, 0x43, 0xb8, 0x37, 0x1b,
+ 0xea, 0x7f, 0xb8, 0xd2, 0x58, 0x07, 0x6e, 0x84,
+ 0x01, 0xd5, 0xc4, 0x89, 0xdf, 0x39, 0x38, 0x5d,
+ 0xa3, 0xb1, 0x83, 0xa0, 0x3c, 0x2b, 0x87, 0xef,
+ 0x80, 0x57, 0xa1, 0x3a, 0x67, 0xd8, 0xb9, 0x24,
+ 0x91, 0x0c, 0xee, 0x50, 0x57, 0x11, 0xbd, 0x4f,
+ 0xcb, 0x5b, 0xd7, 0xae, 0xd5, 0x40, 0xb8, 0xa6,
+ 0xa6, 0x25, 0xb3, 0xe6, 0x6d, 0x96, 0x42, 0xac,
+ 0x85, 0x06, 0x44, 0xa0, 0x88, 0x84, 0x7d, 0x2d,
+ 0xa1, 0x6e, 0xbd, 0x91, 0x53, 0x39, 0x3c, 0x3b,
+ 0x0b, 0x83, 0x58, 0xbe, 0xd4, 0x0b, 0xf7, 0xf5,
+ 0xee, 0xf4, 0x0d, 0xb8, 0xca, 0x6d, 0xf0, 0x2d,
+ 0xab, 0x7f, 0x66, 0xc0, 0xce, 0xac, 0x98, 0x10,
+ 0x12, 0x3d, 0xe2, 0x6d, 0xff, 0x52, 0x97, 0x0c,
+ 0xaa, 0xb6, 0xfb, 0x75, 0x7b, 0x59, 0x94, 0x88,
+ 0x96, 0xcf, 0x6b, 0x1d, 0x0d, 0x70, 0x30, 0xb7,
+ 0xda, 0x3d, 0x89, 0x64, 0x5c, 0xb7, 0x25, 0xe1,
+ 0x0c, 0xdc, 0xbe, 0xc2, 0xe9, 0xa2, 0x05, 0x39,
+ 0x3d, 0x5e, 0xd7, 0xbf, 0xa0, 0x03, 0xc3, 0x2d,
+ 0xe5, 0x30, 0x95, 0xfd, 0xad, 0xa0, 0xa0, 0x55,
+ 0xb5, 0x7e, 0x0e, 0xbf, 0x96, 0xf6, 0xe2, 0x44,
+ 0x68, 0xe6, 0x09, 0xac, 0xa2, 0x84, 0xf6, 0x19,
+ 0xe0, 0xbc, 0x75, 0xe9, 0x93, 0x28, 0x18, 0x41,
+ 0x8e, 0x07, 0x38, 0xce, 0x0a, 0xa9, 0xef, 0xa7,
+ 0x54, 0x47, 0x28, 0x1a, 0x32, 0xfa, 0x04, 0x58,
+ 0x44, 0xd9, 0x36, 0xfa, 0xa8, 0x32, 0xd4, 0xcd,
+ 0x2d, 0x8f, 0x3e, 0x82, 0x00, 0x10, 0xfc, 0x02,
+ 0x00, 0x37, 0x25, 0x60, 0x27, 0x41, 0xab, 0x0e,
+ 0xc3, 0x8b, 0x8b, 0xe0, 0xfa, 0x73, 0xfc, 0x4d,
+ 0xcb, 0xdb, 0x40, 0xa1, 0x6e, 0xd5, 0xfb, 0xd3,
+ 0xc5, 0x08, 0x72, 0xc0, 0x08, 0xeb, 0xb0, 0xb4,
+ 0x04, 0xd3, 0xc4, 0x5e, 0x9c, 0x71, 0xb0, 0xe7,
+ 0x18, 0x0f, 0x6c, 0x4e, 0x61, 0xff, 0x9a, 0x10,
+ 0x76, 0x0a, 0x5b, 0x03, 0xba, 0xee, 0x0b, 0x97,
+ 0x99, 0x77, 0x5d, 0x50, 0xfc, 0x99, 0x1d, 0xa5,
+ 0xc6, 0x30, 0x80, 0xb3, 0x81, 0x74, 0xe2, 0x35,
+ 0x5e, 0x2e, 0x1f, 0x0f, 0xb6, 0x0b, 0x50, 0xc1,
+ 0x2f, 0xaa, 0x0a, 0x88, 0x07, 0x93, 0x46, 0x68,
+ 0xb1, 0xd4, 0xa3, 0xce, 0x28, 0x29, 0xd2, 0x77,
+ 0xa2, 0x8b, 0x6a, 0x2a, 0xce, 0x61, 0x97, 0x58,
+ 0x55, 0x7e, 0x7a, 0xa2, 0x8b, 0x68, 0xc3, 0x22,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x19, 0xfd, 0x12, 0x30, 0xc8, 0x56, 0x97, 0xfe,
+ 0xef, 0x73, 0x3a, 0x1c, 0xac, 0x0d, 0xf5, 0x25,
+ 0x5a, 0x83, 0x4f, 0x56, 0xc5, 0x9a, 0x51, 0x17,
+ 0x8e, 0x9d, 0xf5, 0x0a, 0x01, 0x7d, 0x66, 0x45,
+ 0xef, 0x9d, 0xf3, 0x3d, 0xdc, 0xfd, 0x5e, 0x1a,
+ 0x03, 0x2c, 0xee, 0xda, 0x2a, 0x25, 0xf8, 0x3c,
+ 0xa1, 0xb6, 0x59, 0x91, 0x23, 0x1d, 0xd4, 0x59,
+ 0x34, 0x86, 0xff, 0x44, 0x23, 0xe9, 0x5a, 0x2f,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0x50, 0x14, 0x5c, 0x77, 0x80, 0x36, 0x1f, 0x7a,
+ 0x46, 0x7c, 0xc7, 0xf0, 0x5a, 0xd6, 0xff, 0xaa,
+ 0x7b, 0x40, 0x9c, 0x6e, 0xb7, 0x93, 0xdf, 0x30,
+ 0xad, 0x2e, 0xc5, 0x84, 0x80, 0x68, 0x0f, 0x58,
+ 0xac, 0xbe, 0x9f, 0xc0, 0x7a, 0x74, 0xe9, 0x10,
+ 0xae, 0x8e, 0x50, 0x39, 0xd5, 0x17, 0x94, 0x10,
+ 0x74, 0xfc, 0x16, 0x3a, 0xda, 0xd0, 0xef, 0xb8,
+ 0x4e, 0xeb, 0xd6, 0x6e, 0x3a, 0xb0, 0x5a, 0xc1,
+ 0x2d, 0x2a, 0x7a, 0x76, 0xc6, 0x72, 0xa6, 0x12,
+ 0x7a, 0xf1, 0x19, 0xae, 0x7c, 0x34, 0x8c, 0x09,
+ 0x1b, 0x26, 0x0a, 0x5b, 0x5a, 0xa1, 0xc9, 0xfe,
+ 0x5b, 0x5c, 0x8f, 0xf6, 0x1a, 0x75, 0x09, 0xf5,
+ 0x80, 0xc1, 0xbc, 0xe0, 0xf3, 0x0e, 0x73, 0xa8,
+ 0xd6, 0xe8, 0xac, 0x52, 0xe5, 0x8b, 0xe3, 0x88,
+ 0x8e, 0x50, 0x22, 0x1f, 0xf5, 0x48, 0x1d, 0xa4,
+ 0x64, 0x71, 0xd6, 0xba, 0x9e, 0x7d, 0x91, 0xfe,
+ 0x54, 0xed, 0x88, 0x60, 0xff, 0x5e, 0x05, 0x46,
+ 0x55, 0x26, 0x15, 0xf0, 0xe9, 0xec, 0x56, 0x83,
+ 0xce, 0x8d, 0x95, 0x8a, 0x22, 0x14, 0x4c, 0xf9,
+ 0xea, 0xd9, 0x07, 0xd6, 0xff, 0xed, 0x39, 0x92,
+ 0x7c, 0xfc, 0x85, 0xec, 0x2d, 0x8a, 0x11, 0x39,
+ 0x44, 0xcc, 0xa5, 0x7d, 0xd9, 0xa1, 0x83, 0xb6,
+ 0xe3, 0x7f, 0x74, 0x60, 0x00, 0xc4, 0x9b, 0xb3,
+ 0xeb, 0xe7, 0x77, 0xf3, 0x1a, 0x82, 0xfb, 0x5f,
+ 0xb4, 0x36, 0x91, 0x20, 0x40, 0x26, 0x33, 0xa7,
+ 0x9c, 0xfc, 0x34, 0xb6, 0x20, 0xa2, 0x41, 0xf2,
+ 0x67, 0xc9, 0x38, 0x31, 0x47, 0xd0, 0x43, 0xd0,
+ 0xb8, 0xc0, 0x67, 0x08, 0x3b, 0x22, 0xfa, 0xad,
+ 0x2a, 0x2a, 0x8d, 0x6d, 0x26, 0x19, 0x8c, 0x7a,
+ 0x31, 0x95, 0x7a, 0xc0, 0xe9, 0xfa, 0xa5, 0x85,
+ 0xc4, 0xee, 0x3a, 0x79, 0x58, 0xb6, 0x77, 0x4f,
+ 0xe9, 0x65, 0xb7, 0x4d, 0xff, 0x9c, 0x43, 0x18,
+ 0xc1, 0xbc, 0xac, 0x47, 0xae, 0x43, 0xc1, 0x34,
+ 0xad, 0x52, 0xbf, 0xf6, 0x6e, 0x64, 0x8e, 0xb1,
+ 0x05, 0x3a, 0xc1, 0x6a, 0xc7, 0x3a, 0x50, 0x2a,
+ 0x83, 0x56, 0x9c, 0x7e, 0x04, 0x28, 0xac, 0x89,
+ 0x83, 0xba, 0xbc, 0x06, 0xbe, 0xef, 0x85, 0x55,
+ 0x01, 0xe3, 0xd5, 0x03, 0xfe, 0x3b, 0xd2, 0xda,
+ 0xfd, 0x60, 0xef, 0x9f, 0x7c, 0xa7, 0xa1, 0x8e,
+ 0xe4, 0x88, 0x0d, 0xbf, 0xc4, 0xa7, 0xce, 0xc5,
+ 0x9b, 0x26, 0x4a, 0x5d, 0xf1, 0xa3, 0x52, 0x4c,
+ 0x47, 0xbe, 0x0e, 0x5b, 0x59, 0x7e, 0x9e, 0x86,
+ 0xa0, 0xa3, 0x5d, 0xa0, 0x58, 0x2f, 0x1e, 0x2c,
+ 0x2f, 0x60, 0x5e, 0x4f, 0xd1, 0x84, 0xea, 0x4b,
+ 0xdb, 0x0e, 0x21, 0xa3, 0xcb, 0xb8, 0x6e, 0x19,
+ 0x7c, 0x58, 0x11, 0x5b, 0xe4, 0xa9, 0x88, 0x7e,
+ 0x16, 0xa2, 0x85, 0xe7, 0x7a, 0xdb, 0xe8, 0x11,
+ 0x66, 0x4e, 0x67, 0x77, 0x4f, 0xdf, 0x09, 0xca,
+ 0x07, 0xec, 0x93, 0x6b, 0xe5, 0x4e, 0xe2, 0xf7,
+ 0xeb, 0xe2, 0x57, 0xd6, 0xb0, 0x56, 0x4e, 0x82,
+ 0x14, 0x86, 0x81, 0x06, 0x7c, 0x11, 0xad, 0x65,
+ 0x0b, 0x3c, 0x05, 0x76, 0x14, 0x0d, 0xd7, 0x0e,
+ 0xb3, 0xcb, 0x0f, 0x97, 0x03, 0x2b, 0x6b, 0x5b,
+ 0x22, 0x57, 0x2b, 0x12, 0x5c, 0x97, 0x53, 0xb3,
+ 0x90, 0xd0, 0x0a, 0xc7, 0x3f, 0xa1, 0x73, 0xf4,
+ 0x07, 0x75, 0xad, 0x30, 0x60, 0x34, 0x41, 0x3d,
+ 0xf2, 0x1c, 0x3e, 0x79, 0x31, 0x17, 0xa9, 0x85,
+ 0xc6, 0xbc, 0x6f, 0x3d, 0x9d, 0xb2, 0xf6, 0xce,
+ 0xba, 0xa5, 0x3c, 0xb4, 0x7e, 0x59, 0x69, 0xeb,
+ 0x43, 0xba, 0x69, 0xea, 0xe0, 0xa5, 0x0f, 0x7f,
+ 0xc9, 0xe1, 0xfb, 0xfe, 0x97, 0x66, 0x87, 0x55,
+ 0x6f, 0x9b, 0xf9, 0x67, 0x5e, 0x95, 0xd5, 0x24,
+ 0xa6, 0xf0, 0x2a, 0x66, 0xe3, 0xbd, 0x22, 0xe1,
+ 0xa1, 0x33, 0x1d, 0x40, 0x3c, 0x03, 0x34, 0xd8,
+ 0x5c, 0x83, 0x37, 0x35, 0xbc, 0xa5, 0x61, 0x87,
+ 0x25, 0xc4, 0x7b, 0x94, 0x38, 0x04, 0x8c, 0x12,
+ 0xd6, 0x6d, 0x42, 0xed, 0x36, 0x94, 0x8e, 0x03,
+ 0xa3, 0x74, 0x0e, 0x88, 0x31, 0x73, 0xd3, 0x4e,
+ 0x02, 0x2b, 0x74, 0x4d, 0x3b, 0x24, 0x56, 0x98,
+ 0x57, 0xfe, 0xce, 0x94, 0x22, 0x18, 0xc5, 0x8d,
+ 0x32, 0xb6, 0x86, 0xbc, 0x41, 0x0f, 0x2e, 0x27,
+ 0x30, 0xce, 0xd7, 0xa5, 0xdb, 0xad, 0x25, 0x3a,
+ 0x8a, 0x7b, 0xd5, 0x3d, 0x36, 0x29, 0x76, 0xd0,
+ 0xb3, 0xd3, 0x1e, 0x7f, 0x75, 0x6b, 0x6a, 0x13,
+ 0xa2, 0x79, 0x9e, 0x72, 0x16, 0x3c, 0xbc, 0x76,
+ 0xdb, 0x2b, 0xb9, 0x3a, 0x7c, 0x94, 0x68, 0x17,
+ 0x3e, 0x43, 0xaf, 0x3f, 0x45, 0x94, 0xa8, 0xc8,
+ 0xdc, 0xb6, 0x02, 0x0e, 0xbe, 0xd5, 0x61, 0xfe,
+ 0xa7, 0xe1, 0x70, 0x7d, 0x42, 0xf6, 0xa0, 0xef,
+ 0x9b, 0x1a, 0x66, 0x5f, 0x02, 0x3b, 0x59, 0x93,
+ 0x92, 0xa4, 0x29, 0xa4, 0x6a, 0x35, 0x3c, 0x8d,
+ 0x58, 0x49, 0xe4, 0x1b, 0x52, 0x88, 0xdd, 0xd4,
+ 0xfc, 0xaa, 0xa1, 0x68, 0xa4, 0x50, 0xad, 0x24,
+ 0xc8, 0x81, 0x6c, 0xe8, 0x21, 0x3e, 0x3f, 0x4d,
+ 0x40, 0xdb, 0xfa, 0x24, 0xb6, 0x54, 0xb1, 0xf4,
+ 0x9b, 0x44, 0xee, 0x78, 0x63, 0x05, 0x28, 0x3e,
+ 0xc8, 0xda, 0xd7, 0x35, 0x56, 0x04, 0x83, 0xc9,
+ 0xd0, 0xcb, 0x4c, 0x8e, 0xbf, 0xe0, 0x1c, 0xa8,
+ 0x75, 0x43, 0x36, 0x10, 0xcd, 0xd9, 0xdb, 0x7e,
+ 0x86, 0xde, 0xc9, 0xfe, 0x13, 0x3f, 0x40, 0xcd,
+ 0xa7, 0x6d, 0xd4, 0x62, 0x21, 0x54, 0xea, 0xb3,
+ 0x94, 0x75, 0xdd, 0x01, 0xc9, 0x49, 0x66, 0x24,
+ 0x3a, 0xdf, 0xf1, 0x5f, 0x7b, 0xab, 0x51, 0xad,
+ 0x7d, 0x9a, 0x7a, 0xe0, 0x5d, 0x6f, 0xc9, 0xf9,
+ 0xcc, 0x30, 0xc3, 0xcb, 0x46, 0xdb, 0xed, 0x64,
+ 0x08, 0x07, 0xcf, 0x7b, 0xff, 0xc8, 0x44, 0xb2,
+ 0xe3, 0x02, 0xb9, 0xf7, 0x03, 0xcf, 0x47, 0x7d,
+ 0x26, 0x81, 0xd2, 0x1a, 0x46, 0x04, 0x81, 0x33,
+ 0x0f, 0xc9, 0x90, 0x0c, 0x3b, 0xac, 0xf4, 0x16,
+ 0x2b, 0xc0, 0x5a, 0x74, 0x3a, 0x3d, 0xc6, 0x74,
+ 0x7b, 0x02, 0x28, 0xd8, 0xde, 0x9b, 0x6e, 0x6a,
+ 0xc1, 0xae, 0x98, 0x2f, 0x7e, 0xf5, 0x32, 0xf0,
+ 0xc0, 0xbc, 0x22, 0xbd, 0xe3, 0x1a, 0x36, 0x38,
+ 0x06, 0x74, 0xd0, 0x31, 0x47, 0x68, 0xda, 0x31,
+ 0xe3, 0x25, 0x39, 0xca, 0x3f, 0xfb, 0x6a, 0x4b,
+ 0x5f, 0x53, 0xbb, 0xa7, 0x39, 0x7d, 0xfc, 0x2f,
+ 0xd0, 0xb8, 0xfc, 0xf3, 0x35, 0x2c, 0x61, 0xb4,
+ 0x29, 0x32, 0x23, 0xf6, 0xac, 0x59, 0x81, 0x60,
+ 0x58, 0x97, 0x31, 0xab, 0xae, 0x20, 0xa6, 0xb9,
+ 0x78, 0x4a, 0x41, 0xdd, 0x0b, 0xa4, 0xcf, 0x3f,
+ 0xf4, 0x67, 0x42, 0xd4, 0x3e, 0xa5, 0x03, 0x91,
+ 0x32, 0x89, 0xae, 0x77, 0x32, 0xcd, 0x17, 0xc9,
+ 0x0b, 0xf1, 0x48, 0xf7, 0x54, 0xb1, 0x04, 0x53,
+ 0x6f, 0x50, 0xf3, 0x25, 0x96, 0xc4, 0x15, 0x28,
+ 0x37, 0xf3, 0xd5, 0x26, 0x2b, 0x72, 0x32, 0x00,
+ 0xae, 0xda, 0x7c, 0x3f, 0xa1, 0x50, 0x99, 0x85,
+ 0x02, 0x2d, 0x5f, 0x0c, 0x06, 0xe9, 0x59, 0x7a,
+ 0xdd, 0x47, 0xa4, 0xdb, 0xdf, 0x21, 0xd7, 0x5a,
+ 0x3b, 0x95, 0x40, 0x13, 0x99, 0x76, 0x60, 0xe0,
+ 0x5d, 0x5c, 0xc2, 0x77, 0xd5, 0xfa, 0x3a, 0x8b,
+ 0x3e, 0x47, 0x56, 0xe4, 0xcf, 0x82, 0x80, 0xef,
+ 0x06, 0x8c, 0x38, 0x68, 0x1b, 0x38, 0xde, 0xbe,
+ 0xb7, 0x7e, 0x2b, 0x20, 0xac, 0x7c, 0x0e, 0x4d,
+ 0x39, 0x5d, 0xcc, 0x78, 0xb9, 0xc5, 0x1c, 0x9d,
+ 0x23, 0x07, 0xc2, 0x17, 0x10, 0x20, 0x6d, 0x22,
+ 0xe8, 0xc5, 0xde, 0xd9, 0xd6, 0x5e, 0x44, 0x96,
+ 0x99, 0x78, 0xc1, 0xb6, 0x4f, 0xce, 0x55, 0xb8,
+ 0x49, 0x95, 0x62, 0xa6, 0x84, 0x65, 0x92, 0x7b,
+ 0x4a, 0x4a, 0xc0, 0x55, 0x88, 0xcc, 0xf0, 0xf8,
+ 0xa4, 0xc7, 0xd9, 0x9e, 0x8a, 0xc2, 0xe8, 0x05,
+ 0xfe, 0x3f, 0x7b, 0x37, 0xea, 0xb4, 0x4f, 0x16,
+ 0xcc, 0x4d, 0xe2, 0x26, 0x64, 0x52, 0x47, 0x2f,
+ 0x4f, 0xea, 0x58, 0xe8, 0xbc, 0xd3, 0x3d, 0x32,
+ 0x9a, 0x79, 0x65, 0x96, 0xa7, 0x75, 0x55, 0x55,
+ 0x10, 0x94, 0xe9, 0xcc, 0x43, 0x44, 0xd3, 0xe7,
+ 0x25, 0xff, 0xc5, 0xc2, 0x41, 0xe9, 0xaa, 0x68,
+ 0xb8, 0xad, 0xd9, 0x15, 0x51, 0x4f, 0xb8, 0xc2,
+ 0x0f, 0x68, 0x2b, 0xdc, 0x2d, 0xb0, 0x01, 0xf8,
+ 0xd3, 0xbd, 0xd4, 0x72, 0x3b, 0x60, 0xf3, 0xc0,
+ 0xfe, 0x3e, 0xe2, 0x9b, 0xde, 0x68, 0xea, 0x76,
+ 0xea, 0x48, 0xf5, 0x85, 0x7b, 0x39, 0x1f, 0xfb,
+ 0xcd, 0x6a, 0x86, 0xa1, 0x77, 0xe9, 0xaa, 0x95,
+ 0x8c, 0x6e, 0x6b, 0xc8, 0x06, 0x1a, 0xbe, 0x32,
+ 0x23, 0xb5, 0x08, 0xc7, 0x92, 0xb0, 0xfa, 0x12,
+ 0xbc, 0x48, 0x85, 0xf8, 0x1a, 0xe2, 0xa2, 0x2a,
+ 0x92, 0x4d, 0x3a, 0xb6, 0x29, 0xb8, 0xc5, 0x88,
+ 0x77, 0x0e, 0x58, 0x38, 0xea, 0xbb, 0x73, 0xd3,
+ 0x20, 0xed, 0x0d, 0x96, 0x26, 0xde, 0x01, 0xde,
+ 0x26, 0xf8, 0x71, 0x60, 0x62, 0x42, 0x51, 0xf0,
+ 0x61, 0x46, 0x5a, 0x70, 0x4d, 0xe5, 0x36, 0xef,
+ 0x3f, 0xcb, 0xaf, 0x51, 0xfb, 0xc3, 0xfc, 0x61,
+ 0x72, 0xad, 0x6f, 0x65, 0x66, 0x16, 0x25, 0x47,
+ 0x6b, 0xfc, 0xb5, 0x06, 0x6f, 0x19, 0x97, 0x87,
+ 0x45, 0xb5, 0x5c, 0x44, 0x44, 0x14, 0x2e, 0xb7,
+ 0xd8, 0x18, 0x68, 0x59, 0x24, 0x4d, 0x69, 0xbe,
+ 0x7b, 0x6a, 0xa0, 0xc5, 0xb5, 0x3f, 0xd6, 0x75,
+ 0x2e, 0xa6, 0x56, 0x53, 0xb2, 0x07, 0x3d, 0x2e,
+ 0x8d, 0x83, 0x49, 0xd3, 0x0d, 0x88, 0x1c, 0x27,
+ 0xb5, 0x66, 0x8d, 0x0f, 0x62, 0xd9, 0x89, 0xac,
+ 0xe8, 0x3f, 0xa0, 0x80, 0x29, 0x5d, 0xf2, 0x8f,
+ 0x98, 0x73, 0x89, 0x0b, 0x17, 0x11, 0xcb, 0x21,
+ 0xb7, 0x6d, 0xfb, 0xf4, 0x7b, 0x39, 0x9a, 0xe6,
+ 0x35, 0xc6, 0xfe, 0x54, 0xf5, 0xe9, 0xa4, 0x29,
+ 0x8d, 0x96, 0x2d, 0xbf, 0x24, 0x2b, 0x66, 0x82,
+ 0xa2, 0x60, 0xac, 0xae, 0x5d, 0x33, 0x35, 0xf0,
+ 0xce, 0x64, 0x61, 0x73, 0x72, 0x0c, 0x3e, 0x09,
+ 0x82, 0xd5, 0xb3, 0x8b, 0xff, 0x52, 0x08, 0x4a,
+ 0xdd, 0x86, 0x21, 0xd2, 0x17, 0x3d, 0xc2, 0x66,
+ 0x16, 0x7e, 0xc7, 0x27, 0xe3, 0xc5, 0xaa, 0x69,
+ 0x33, 0x43, 0x4b, 0xa9, 0x4f, 0x5f, 0x05, 0x4e,
+ 0x5e, 0xeb, 0x0c, 0x66, 0xf3, 0xee, 0x2c, 0x84,
+ 0x49, 0x3d, 0x8f, 0xb4, 0x04, 0x1b, 0xe5, 0xae,
+ 0xce, 0xd0, 0x2a, 0xf9, 0x1d, 0x5b, 0x1c, 0x7d,
+ 0x28, 0x8e, 0xe3, 0x14, 0x55, 0x71, 0x72, 0x6d,
+ 0xb3, 0x90, 0x09, 0x0d, 0xa1, 0xad, 0x6c, 0xe2,
+ 0x0c, 0x20, 0x1d, 0xb5, 0xb1, 0x48, 0x41, 0x0d,
+ 0x58, 0x8e, 0xe9, 0x8b, 0x3b, 0x6c, 0x90, 0xf4,
+ 0x7d, 0x4b, 0x16, 0x3d, 0xc5, 0x4f, 0xf2, 0x49,
+ 0x4a, 0x12, 0x32, 0xd0, 0x33, 0xda, 0xdd, 0x20,
+ 0xa3, 0xe4, 0x70, 0x73, 0x4e, 0x1d, 0xfc, 0xba,
+ 0xbe, 0x76, 0x7a, 0x73, 0xca, 0xc6, 0xf8, 0x29,
+ 0x1d, 0xdd, 0xb3, 0xa8, 0x1a, 0x5c, 0x50, 0x8d,
+ 0xf5, 0x19, 0x31, 0xad, 0xf6, 0x5a, 0x7c, 0x3c,
+ 0x71, 0x3b, 0x3f, 0x55, 0xb1, 0xa5, 0x84, 0xfd,
+ 0x64, 0x40, 0x9d, 0xe9, 0x85, 0x0d, 0xb3, 0x38,
+ 0x92, 0x37, 0x63, 0xd1, 0xd6, 0x6b, 0x79, 0x73,
+ 0x17, 0x5e, 0x56, 0xd2, 0xcd, 0xff, 0xc0, 0x08,
+ 0x77, 0x3f, 0xef, 0x26, 0xa1, 0x2d, 0x9f, 0x98,
+ 0x80, 0x0b, 0x3b, 0x67, 0x7a, 0x2e, 0xe9, 0xab,
+ 0x72, 0x27, 0xea, 0x7f, 0x2a, 0xaf, 0x54, 0xf2,
+ 0xb5, 0xf5, 0xfe, 0x50, 0x01, 0x3c, 0x4f, 0x55,
+ 0x86, 0x7b, 0x22, 0x73, 0xbb, 0x34, 0xcd, 0x2d,
+ 0xe1, 0xce, 0xab, 0x13, 0xbd, 0x41, 0xcf, 0x3b,
+ 0xfa, 0x18, 0x59, 0xb3, 0x87, 0x33, 0x92, 0xd8,
+ 0x00, 0x09, 0x7b, 0x6d, 0xc4, 0x46, 0x6c, 0x64,
+ 0xd6, 0x6b, 0x94, 0x7d, 0x0b, 0xb0, 0x80, 0xe3,
+ 0xa3, 0xd9, 0xcf, 0x22, 0xb1, 0x38, 0x1f, 0xa6,
+ 0x0d, 0x47, 0x3d, 0xc6, 0x7c, 0xe0, 0xc0, 0xc6,
+ 0x32, 0xbd, 0x39, 0x1f, 0xfc, 0xd8, 0x61, 0x6c,
+ 0x18, 0xea, 0x35, 0x47, 0x73, 0x57, 0x36, 0xa5,
+ 0x8b, 0x04, 0xe3, 0x92, 0xdb, 0x6e, 0xb1, 0x79,
+ 0x6c, 0x3e, 0x5a, 0x7a, 0x58, 0x74, 0xe4, 0xf0,
+ 0xd9, 0x41, 0xdd, 0x22, 0xb6, 0xc6, 0xa1, 0x8f,
+ 0x56, 0xcc, 0x3d, 0xad, 0x59, 0x3f, 0xc6, 0x3d,
+ 0xab, 0xbf, 0x14, 0x60, 0x91, 0x16, 0xe7, 0x8b,
+ 0x40, 0x80, 0xc6, 0x6c, 0xb0, 0xf1, 0x65, 0x79,
+ 0x12, 0x6b, 0x20, 0xd2, 0x77, 0x02, 0x3e, 0x6e,
+ 0xa2, 0x20, 0x3b, 0xe1, 0xa1, 0xf6, 0xf6, 0x3c,
+ 0xd1, 0xc8, 0x4c, 0x8f, 0xd2, 0xd9, 0xf4, 0x5f,
+ 0xf1, 0x1b, 0xc0, 0x9a, 0x2d, 0xa1, 0x68, 0xd9,
+ 0xe1, 0x49, 0xcf, 0x36, 0xa8, 0xa7, 0x63, 0x5f,
+ 0x9e, 0x14, 0x78, 0x6c, 0x44, 0xcc, 0x02, 0x59,
+ 0x34, 0x32, 0x26, 0x11, 0xcf, 0x89, 0x69, 0x41,
+ 0x2c, 0x09, 0x12, 0xff, 0xa9, 0x52, 0xea, 0x53,
+ 0x0a, 0x66, 0xe1, 0xc2, 0x86, 0x66, 0x74, 0x86,
+ 0xd1, 0xdc, 0xfd, 0x0b, 0xb3, 0xb6, 0x4b, 0xe9,
+ 0x5f, 0xec, 0x8e, 0xde, 0xfd, 0x9d, 0xbb, 0x4e,
+ 0x77, 0x15, 0x6c, 0xd9, 0x26, 0xd7, 0xbb, 0x60,
+ 0x0d, 0x00, 0x3c, 0x4d, 0x92, 0x2d, 0x92, 0xd5,
+ 0x59, 0xd8, 0xa6, 0xbe, 0xb6, 0x81, 0xe4, 0x6a,
+ 0xff, 0x8a, 0xbb, 0x3c, 0x44, 0xb0, 0x93, 0xf2,
+ 0x06, 0xb7, 0x90, 0xf4, 0x20, 0x7b, 0xbb, 0x7e,
+ 0x9f, 0xd9, 0x36, 0xa1, 0xa5, 0x74, 0x2c, 0xff,
+ 0xa0, 0xd9, 0xbc, 0x20, 0xde, 0xc2, 0x99, 0x4a,
+ 0xe3, 0xd7, 0x4f, 0x30, 0xc2, 0x0c, 0xc1, 0xbf,
+ 0x51, 0x46, 0x5b, 0x7a, 0x05, 0x41, 0x94, 0x55,
+ 0x37, 0x83, 0x7b, 0xd0, 0x3f, 0xf3, 0x9c, 0x1d,
+ 0x0f, 0x04, 0x32, 0x5e, 0x7e, 0xee, 0x02, 0x5c,
+ 0x18, 0x1f, 0xd9, 0xe2, 0x0f, 0x89, 0xc8, 0x6f,
+ 0x3f, 0xee, 0xc2, 0x08, 0xcc, 0x69, 0xe8, 0xb2,
+ 0xce, 0x82, 0x22, 0x0c, 0xc8, 0xa5, 0x02, 0x38,
+ 0x85, 0xfe, 0x7b, 0x8c, 0x58, 0xbb, 0x16, 0x34,
+ 0x7a, 0xf2, 0x76, 0xe7, 0xd2, 0x49, 0x41, 0x9c,
+ 0xa5, 0xc7, 0xde, 0xe4, 0x9c, 0x96, 0xd4, 0xd1,
+ 0xef, 0x3d, 0xd1, 0x69, 0x13, 0xb2, 0xb3, 0x39,
+ 0x0c, 0x55, 0x78, 0x25, 0x71, 0x47, 0xf3, 0x69,
+ 0xf1, 0xf0, 0x6d, 0x71, 0xc7, 0xd2, 0xf2, 0x4d,
+ 0xaf, 0x02, 0x31, 0x83, 0x56, 0xd2, 0x7d, 0xf4,
+ 0xa4, 0x8c, 0xeb, 0x1d, 0xd6, 0x20, 0xf8, 0xf6,
+ 0xf3, 0x4b, 0x59, 0xda, 0x9a, 0xcd, 0xe2, 0x85,
+ 0x8c, 0x69, 0xa1, 0xed, 0x11, 0xe9, 0xd1, 0xe2,
+ 0xbc, 0x40, 0xe1, 0xc8, 0x27, 0x45, 0xf5, 0xf0,
+ 0x7b, 0x37, 0x27, 0x6a, 0x4f, 0x11, 0x19, 0x83,
+ 0xbf, 0x6c, 0xcd, 0x3b, 0x49, 0xaa, 0x06, 0x86,
+ 0x4c, 0x26, 0x09, 0xdf, 0x7d, 0x42, 0x0e, 0xf2,
+ 0xee, 0xec, 0x07, 0xa1, 0x26, 0xe0, 0xb5, 0x49,
+ 0x04, 0x27, 0xd7, 0x5b, 0x80, 0xbb, 0x16, 0xe4,
+ 0x10, 0xb6, 0x5d, 0xf6, 0x0f, 0x59, 0x51, 0xb2,
+ 0xc6, 0xca, 0x8a, 0x8b, 0x89, 0x86, 0x18, 0x43,
+ 0xc6, 0xee, 0x60, 0x2b, 0x97, 0x59, 0xb6, 0x0b,
+ 0xe8, 0xe2, 0xa4, 0x55, 0x3e, 0x47, 0x1d, 0x54,
+ 0x1a, 0x6a, 0xcb, 0xdb, 0x03, 0xcf, 0x35, 0x78,
+ 0x3c, 0x48, 0x14, 0xcd, 0x6b, 0x61, 0xd2, 0x34,
+ 0x86, 0xc9, 0x03, 0xbb, 0x7f, 0x28, 0x7c, 0x43,
+ 0xa2, 0xd8, 0x2f, 0x81, 0x98, 0x17, 0x1e, 0xf3,
+ 0xd0, 0xec, 0x24, 0x26, 0xd1, 0x4d, 0xda, 0xad,
+ 0x7b, 0x0b, 0xe7, 0x15, 0xe3, 0x4e, 0xe3, 0xe9,
+ 0x73, 0x0e, 0x3f, 0xa8, 0xd1, 0xb0, 0xb3, 0xc5,
+ 0x89, 0x10, 0xf0, 0x6a, 0x62, 0xf9, 0xa6, 0x02,
+ 0x4f, 0x0a, 0x44, 0x44, 0xf4, 0xa7, 0xc7, 0x03,
+ 0x56, 0xa5, 0x13, 0x9d, 0x3a, 0x94, 0x56, 0xfa,
+ 0x17, 0xec, 0xb4, 0x5f, 0x46, 0xef, 0x2d, 0x7b,
+ 0x16, 0xa5, 0x71, 0x6b, 0xb3, 0xaa, 0x8c, 0x9c,
+ 0x12, 0x48, 0xde, 0xe2, 0x03, 0x6d, 0x19, 0x75,
+ 0x05, 0x02, 0xde, 0x7a, 0x41, 0x04, 0xbf, 0xdb,
+ 0x0c, 0xa4, 0x80, 0xe0, 0xd5, 0x1c, 0x10, 0x26,
+ 0xaa, 0x47, 0x2d, 0x49, 0x34, 0x06, 0x16, 0xac,
+ 0xe4, 0x10, 0x7f, 0x1e, 0x0f, 0x24, 0xb7, 0x43,
+ 0xd9, 0x0e, 0x21, 0xd3, 0x1b, 0xe8, 0xcb, 0xb3,
+ 0x7c, 0xf5, 0x58, 0x8c, 0xda, 0xa8, 0x90, 0x4c,
+ 0xf9, 0x44, 0x9c, 0xf2, 0xf5, 0x28, 0xf9, 0xc4,
+ 0x8e, 0xde, 0x4e, 0x7e, 0x6e, 0x70, 0xd9, 0x66,
+ 0xcc, 0xf5, 0xe0, 0xfb, 0x94, 0x03, 0xc5, 0x29,
+ 0x42, 0x7d, 0x08, 0xe6, 0xe7, 0xd7, 0x6c, 0xb0,
+ 0x52, 0xab, 0x6a, 0x0d, 0x5e, 0x06, 0x51, 0xcd,
+ 0xa5, 0xfa, 0x2f, 0x1b, 0x7c, 0xd7, 0xc3, 0xca,
+ 0xfe, 0x60, 0xb4, 0x51, 0x44, 0x5f, 0xe6, 0x77,
+ 0xb5, 0x5e, 0xb7, 0x17, 0x5a, 0xb3, 0x71, 0x88,
+ 0x8f, 0x22, 0x1b, 0xb6, 0x7f, 0xad, 0x4b, 0xcf,
+ 0x37, 0x92, 0x13, 0xa8, 0x33, 0x2f, 0xbb, 0xeb,
+ 0x90, 0x1d, 0xc0, 0x04, 0x14, 0x34, 0x02, 0x87,
+ 0x8b, 0xca, 0xed, 0x91, 0xb4, 0x12, 0xdd, 0xa9,
+ 0xeb, 0x6d, 0xc2, 0x84, 0x4c, 0x4b, 0xf6, 0xb2,
+ 0xab, 0xfd, 0x52, 0x17, 0xed, 0xcb, 0x28, 0xa8,
+ 0xe5, 0xf0, 0xf6, 0xef, 0xdf, 0x65, 0x66, 0x46,
+ 0x9b, 0xf3, 0x37, 0x35, 0xdf, 0xb1, 0x62, 0x24,
+ 0xf0, 0x5b, 0x4c, 0x3e, 0x4d, 0x36, 0x99, 0xea,
+ 0x13, 0xc2, 0xa0, 0x8c, 0xa0, 0x2b, 0xf8, 0x16,
+ 0x97, 0x6a, 0xc4, 0x51, 0x3a, 0x30, 0x56, 0xf1,
+ 0x90, 0xf7, 0x37, 0x42, 0xac, 0xb3, 0x06, 0x52,
+ 0x9a, 0x90, 0x8e, 0x37, 0x8e, 0xf3, 0x9e, 0xda,
+ 0x04, 0xf7, 0xdb, 0xd9, 0x50, 0x64, 0x97, 0x38,
+ 0x08, 0x03, 0x49, 0x6c, 0xc6, 0x25, 0x0f, 0x4c,
+ 0x6b, 0x3b, 0x67, 0xb8, 0x24, 0x21, 0x19, 0x04,
+ 0xe8, 0x4e, 0xa7, 0xee, 0xef, 0x97, 0x01, 0x7d,
+ 0xd5, 0xb1, 0x81, 0xb3, 0x6b, 0xae, 0x37, 0x6b,
+ 0xd5, 0x39, 0x98, 0xb7, 0x94, 0xa2, 0xda, 0x8b,
+ 0xc3, 0x66, 0xc5, 0x64, 0x03, 0x23, 0x11, 0x97,
+ 0x2f, 0xfe, 0xaf, 0x53, 0x11, 0x3f, 0xfe, 0xe9,
+ 0x78, 0x24, 0x2e, 0xcd, 0x6a, 0xbf, 0x0e, 0xb8,
+ 0xf1, 0xb9, 0x78, 0x40, 0x65, 0xee, 0x5e, 0xe9,
+ 0x29, 0x78, 0xe3, 0x9f, 0x84, 0x31, 0x72, 0x9a,
+ 0x62, 0x0a, 0x8f, 0xae, 0x0b, 0x2b, 0x2e, 0x10,
+ 0xa6, 0xc0, 0x59, 0xa5, 0x37, 0x30, 0xe9, 0x47,
+ 0x71, 0x8f, 0x2c, 0x1a, 0x9a, 0x08, 0x8c, 0x80,
+ 0x50, 0x86, 0x76, 0x4d, 0x2a, 0x74, 0xed, 0x83,
+ 0xb9, 0x28, 0xca, 0xd9, 0xe1, 0xe1, 0x17, 0x83,
+ 0x7b, 0x68, 0x94, 0x75, 0x13, 0x0b, 0xf5, 0x6e,
+ 0xc0, 0x15, 0xff, 0xab, 0xa5, 0x7b, 0x16, 0x43,
+ 0x96, 0x2e, 0xc3, 0x80, 0xec, 0xd0, 0x33, 0x37,
+ 0x3b, 0x81, 0x7e, 0x10, 0x2e, 0xe1, 0x96, 0xc9,
+ 0xbf, 0x72, 0xf3, 0xd8, 0x78, 0x5a, 0xde, 0x4e,
+ 0x9c, 0x1c, 0xf9, 0x1d, 0xcc, 0x1b, 0xc7, 0x9f,
+ 0xc8, 0x19, 0x62, 0x4a, 0xf0, 0xbb, 0x10, 0x52,
+ 0x55, 0xeb, 0x88, 0x19, 0xdf, 0x25, 0x4d, 0xb0,
+ 0x46, 0xaa, 0x63, 0x70, 0x4b, 0xb9, 0xc3, 0x10,
+ 0x6a, 0xf4, 0x52, 0x72, 0x80, 0x49, 0xff, 0xec,
+ 0x36, 0x0d, 0x7d, 0x0e, 0x99, 0x0c, 0xc6, 0x95,
+ 0xa1, 0xbc, 0x10, 0xa9, 0xe1, 0x10, 0xb2, 0xad,
+ 0x0e, 0x1b, 0x6a, 0x9f, 0x20, 0x30, 0xad, 0x04,
+ 0xe5, 0xaa, 0x3e, 0x87, 0xf3, 0xfa, 0x54, 0x9e,
+ 0xc7, 0x1d, 0x39, 0xce, 0x27, 0x6e, 0x59, 0x0e,
+ 0x2a, 0xbb, 0xe3, 0xa1, 0x93, 0xdb, 0x4b, 0xe6,
+ 0xbe, 0x29, 0xc1, 0x96, 0x90, 0x42, 0x1f, 0x77,
+ 0xa2, 0x97, 0x23, 0x52, 0x5a, 0x40, 0x1b, 0xf0,
+ 0x31, 0x97, 0x76, 0x12, 0xfb, 0xf5, 0x24, 0x87,
+ 0x11, 0x46, 0x25, 0xc9, 0x17, 0xb9, 0xe7, 0x39,
+ 0xf6, 0xd9, 0x94, 0x57, 0x09, 0xf0, 0x18, 0x16,
+ 0x9c, 0xf1, 0x01, 0x47, 0x98, 0x2d, 0x38, 0x8c,
+ 0xbb, 0x45, 0x53, 0x34, 0xfe, 0x7c, 0xa9, 0x0e,
+ 0x99, 0x3e, 0x47, 0xcb, 0xf9, 0xd9, 0x56, 0x35,
+ 0xb7, 0x1f, 0x37, 0xc3, 0xc2, 0x2f, 0x95, 0xff,
+ 0x9e, 0x1a, 0x85, 0xd4, 0x2a, 0x91, 0x28, 0x63,
+ 0xb8, 0x98, 0x74, 0x53, 0x50, 0xf5, 0x3c, 0xdf,
+ 0xc7, 0x36, 0x77, 0xf8, 0xc0, 0x95, 0x7d, 0x7c,
+ 0x02, 0x20, 0x9d, 0x9e, 0x47, 0x8a, 0xed, 0x70,
+ 0x95, 0x08, 0xc1, 0x51, 0x6b, 0x2f, 0xa3, 0xbb,
+ 0xb3, 0x00, 0xaf, 0x6c, 0x25, 0xaf, 0x2f, 0x83,
+ 0x36, 0xae, 0xc9, 0xbe, 0xde, 0x91, 0x24, 0xef,
+ 0x9d, 0x5d, 0x77, 0xa2, 0x6c, 0x79, 0x3e, 0xb2,
+ 0x83, 0x09, 0x67, 0xa3, 0x46, 0x42, 0xbf, 0xdd,
+ 0x50, 0xbc, 0xd2, 0x9a, 0xb3, 0xb3, 0x78, 0xe4,
+ 0xb1, 0xb2, 0x1c, 0x43, 0xaa, 0x48, 0x2e, 0x10,
+ 0x60, 0x19, 0x94, 0xf0, 0xb9, 0xf7, 0x19, 0xa2,
+ 0x54, 0x9d, 0x72, 0xcd, 0x25, 0x1c, 0x37, 0xb8,
+ 0x20, 0xe5, 0x66, 0xa0, 0xf7, 0xce, 0xfd, 0x5d,
+ 0x84, 0xb1, 0x60, 0xea, 0x41, 0xe5, 0xd2, 0x40,
+ 0x59, 0x0c, 0xcc, 0x47, 0x4c, 0x82, 0x94, 0x6e,
+ 0xe5, 0xfc, 0x4e, 0x0b, 0x6a, 0x40, 0x67, 0x40,
+ 0xab, 0x4e, 0x3c, 0x80, 0x2e, 0x71, 0xf2, 0x32,
+ 0xf7, 0x02, 0x7a, 0x88, 0x5e, 0x35, 0x3f, 0x02,
+ 0x57, 0x47, 0xed, 0xd2, 0x61, 0xfe, 0x07, 0x3a,
+ 0x37, 0xb1, 0x39, 0xb6, 0x97, 0x4d, 0xd2, 0xa8,
+ 0xfd, 0xdc, 0xaa, 0x7f, 0x2b, 0x84, 0x37, 0x91,
+ 0xef, 0xc4, 0x01, 0xfa, 0xc7, 0x6e, 0x17, 0x3d,
+ 0x44, 0xda, 0xfd, 0xd6, 0xf6, 0xd3, 0xfe, 0x28,
+ 0x32, 0xf1, 0xae, 0x49, 0x9a, 0xe9, 0x70, 0xe6,
+ 0x5c, 0x66, 0x20, 0xb1, 0xea, 0xbb, 0x40, 0x05,
+ 0xee, 0x90, 0xc5, 0xe6, 0xf2, 0x94, 0x43, 0x06,
+ 0x1e, 0xa7, 0xce, 0xb1, 0x41, 0xba, 0xc2, 0xeb,
+ 0x83, 0x7c, 0x63, 0x2c, 0x87, 0x09, 0x51, 0xb4,
+ 0x03, 0x5d, 0x8c, 0x23, 0x6f, 0x00, 0xc1, 0x73,
+ 0x42, 0x94, 0xe8, 0x28, 0x2f, 0x9a, 0x16, 0x3b,
+ 0x98, 0x21, 0x7e, 0x21, 0x02, 0x7a, 0xcf, 0x30,
+ 0x60, 0x4a, 0x68, 0xc2, 0xe2, 0x2a, 0x30, 0x98,
+ 0xce, 0x44, 0x67, 0x82, 0xfa, 0x8e, 0x4e, 0xca,
+ 0x89, 0x59, 0x6d, 0x2c, 0xbe, 0xeb, 0xe1, 0xd2,
+ 0xd7, 0xda, 0xf5, 0x69, 0xe3, 0x1e, 0x2e, 0xd3,
+ 0x59, 0x9a, 0x0c, 0xea, 0xc5, 0xc1, 0x2b, 0x81,
+ 0x02, 0x86, 0xd4, 0x3c, 0x52, 0xe6, 0xf6, 0x34,
+ 0x9b, 0x5b, 0x1b, 0x2f, 0x6c, 0x9e, 0x4f, 0x40,
+ 0x3e, 0xa9, 0xb1, 0x1c, 0x8b, 0x5e, 0x2e, 0xe2,
+ 0xd3, 0x96, 0xf9, 0x3f, 0x03, 0x12, 0xd2, 0x4b,
+ 0x62, 0xe3, 0x04, 0x68, 0x73, 0x8c, 0xb3, 0xfd,
+ 0xc2, 0x20, 0x56, 0x77, 0x1f, 0xa7, 0x76, 0xef,
+ 0x8e, 0x24, 0xf9, 0x90, 0x59, 0x3f, 0x53, 0x70,
+ 0x8d, 0x59, 0x94, 0xef, 0x68, 0x12, 0xaa, 0x61,
+ 0x60, 0x10, 0xcd, 0xc2, 0x08, 0x89, 0x2b, 0x33,
+ 0x0a, 0x62, 0xed, 0x7b, 0x67, 0x9b, 0x27, 0xa3,
+ 0x2b, 0x3c, 0xf0, 0x77, 0x20, 0x27, 0x36, 0xd3,
+ 0x38, 0x62, 0xd9, 0xf3, 0x9c, 0x20, 0x2e, 0xaa,
+ 0x96, 0xe3, 0xa7, 0x32, 0xdd, 0xf1, 0x40, 0x82,
+ 0x9b, 0xbb, 0x62, 0x8a, 0xb8, 0xa7, 0xc3, 0x6d,
+ 0x2b, 0x57, 0x11, 0x5c, 0x14, 0x22, 0x49, 0x34,
+ 0x64, 0x15, 0x80, 0xc7, 0x16, 0xfa, 0x2b, 0xae,
+ 0xed, 0x47, 0xdb, 0x5b, 0x56, 0xe0, 0xa8, 0x45,
+ 0x75, 0xd1, 0x56, 0x76, 0x65, 0x58, 0x1a, 0xe2,
+ 0xd8, 0xef, 0xa9, 0x19, 0x05, 0xdb, 0xca, 0x80,
+ 0xf6, 0x0c, 0xd2, 0x02, 0xe1, 0x3c, 0xd8, 0x20,
+ 0xeb, 0xaf, 0xaf, 0x99, 0xd8, 0x49, 0x5c, 0xf5,
+ 0x42, 0xf6, 0x44, 0x80, 0x99, 0xa1, 0xeb, 0x0e,
+ 0x4f, 0x53, 0xb9, 0xd3, 0x4f, 0xfc, 0x59, 0x2d,
+ 0x42, 0x64, 0x1e, 0xc4, 0x33, 0x8e, 0x5e, 0x13,
+ 0xf2, 0x83, 0x12, 0xa5, 0xcc, 0x7d, 0x31, 0x62,
+ 0x64, 0x76, 0x61, 0x1c, 0x58, 0xce, 0x04, 0xee,
+ 0xfb, 0x7c, 0xcc, 0xd0, 0x4a, 0x0e, 0x36, 0x8a,
+ 0x96, 0x83, 0x3c, 0x22, 0xa4, 0xa6, 0xa5, 0x07,
+ 0x88, 0xea, 0x13, 0x76, 0x88, 0x6e, 0x58, 0x0b,
+ 0xa0, 0x0e, 0x68, 0xc8, 0xa1, 0x88, 0x1a, 0x26,
+ 0x72, 0xed, 0x24, 0xf1, 0xb6, 0x7c, 0x5d, 0x6a,
+ 0xe7, 0x5b, 0x7d, 0x20, 0x14, 0xea, 0x27, 0x60,
+ 0x0d, 0x9f, 0xb0, 0x9a, 0x75, 0xa5, 0x88, 0x25,
+ 0xe9, 0xab, 0x94, 0x0e, 0x04, 0x69, 0xa4, 0xf5,
+ 0x04, 0x81, 0xf9, 0x58, 0x34, 0x7a, 0x44, 0x71,
+ 0x0f, 0xd7, 0x1f, 0x40, 0xaa, 0x8c, 0xc7, 0x6f,
+ 0x56, 0x42, 0x3c, 0xbd, 0x00, 0x7e, 0xef, 0x92,
+ 0xa5, 0xa5, 0x16, 0xc0, 0xcc, 0x2a, 0x9c, 0x54,
+ 0x6b, 0xb2, 0xa6, 0x8e, 0x7d, 0x56, 0x07, 0x74,
+ 0x4d, 0xba, 0xeb, 0xed, 0x48, 0x82, 0x58, 0xfa,
+ 0xdc, 0xef, 0x76, 0x6b, 0xc4, 0x1a, 0xf1, 0x0c,
+ 0x51, 0x0b, 0xd5, 0x41, 0xdf, 0x15, 0xe3, 0x0d,
+ 0xfc, 0x4e, 0xdb, 0x33, 0x0c, 0xc6, 0xcb, 0xc3,
+ 0x00, 0x91, 0xf3, 0x8f, 0xa9, 0x05, 0x81, 0x7f,
+ 0x83, 0x77, 0xd1, 0x69, 0x4f, 0xfb, 0xab, 0x76,
+ 0x4d, 0x95, 0xe1, 0xa3, 0x8f, 0x5e, 0xf6, 0x49,
+ 0x89, 0x36, 0x03, 0x18, 0x73, 0x73, 0xd5, 0xee,
+ 0xde, 0xe4, 0x25, 0xf3, 0x15, 0x34, 0xca, 0xc3,
+ 0x63, 0xbe, 0x63, 0xab, 0x75, 0x33, 0xc0, 0x88,
+ 0x32, 0xa4, 0xae, 0xfb, 0x71, 0x65, 0xb7, 0x8c,
+ 0x70, 0x99, 0x02, 0x9a, 0x79, 0x69, 0x30, 0xc7,
+ 0xe7, 0xde, 0xd2, 0x47, 0xe5, 0x81, 0x70, 0xbe,
+ 0x63, 0x45, 0x5c, 0x6e, 0x76, 0xdd, 0xd2, 0xf9,
+ 0xa6, 0xf7, 0x51, 0xca, 0x48, 0x77, 0xdd, 0x9f,
+ 0x93, 0x8e, 0x14, 0xe2, 0xd7, 0x17, 0xb0, 0x5e,
+ 0x0d, 0x49, 0xb7, 0x32, 0x78, 0x9a, 0xbe, 0x8a,
+ 0xcd, 0x16, 0x56, 0x35, 0x51, 0xfc, 0x1b, 0xb5,
+ 0x10, 0x59, 0x0e, 0xb5, 0x22, 0x98, 0xcf, 0x5f,
+ 0x53, 0xae, 0xbf, 0xe5, 0x8d, 0xa0, 0xaa, 0xe3,
+ 0xa0, 0x91, 0x7b, 0xd4, 0xd5, 0x1d, 0xc4, 0x81,
+ 0x66, 0xb0, 0x69, 0xef, 0x1c, 0x7c, 0x5b, 0x1f,
+ 0x6e, 0x9a, 0x97, 0x48, 0xc6, 0xde, 0xfe, 0x64,
+ 0x93, 0x84, 0xba, 0x63, 0xa4, 0xe3, 0x0d, 0xa1,
+ 0xda, 0x2b, 0xbd, 0xbe, 0xa6, 0xc1, 0xfb, 0xbb,
+ 0xb4, 0x05, 0x38, 0x8e, 0x0c, 0x4c, 0x32, 0xd4,
+ 0x92, 0xc1, 0x48, 0xed, 0x05, 0x5e, 0x8c, 0x3f,
+ 0xb1, 0x49, 0x4e, 0x77, 0x9e, 0x6c, 0x11, 0xfc,
+ 0x14, 0x8c, 0xbe, 0x27, 0x5f, 0xfb, 0x9b, 0x82,
+ 0xbc, 0xdf, 0x7e, 0x10, 0x9d, 0x75, 0x89, 0xfa,
+ 0xc7, 0x23, 0xdb, 0x4e, 0x39, 0xba, 0xe6, 0x75,
+ 0xdf, 0x36, 0x6d, 0x40, 0x36, 0xbe, 0x43, 0x72,
+ 0x0f, 0x04, 0x3c, 0xf1, 0xc8, 0x4c, 0x33, 0x94,
+ 0xb4, 0x98, 0x3e, 0x47, 0x78, 0x7e, 0x5b, 0x9b,
+ 0x64, 0xa7, 0x5e, 0x2c, 0x43, 0x7b, 0x98, 0xfa,
+ 0xdb, 0x2e, 0x69, 0xaf, 0x7e, 0xb9, 0x42, 0x93,
+ 0x93, 0x21, 0xf5, 0x9b, 0x39, 0x40, 0xca, 0x3e,
+ 0xfc, 0xb3, 0x4a, 0xef, 0x13, 0xf2, 0xe3, 0x7b,
+ 0xfa, 0x5f, 0x84, 0xf4, 0x13, 0x2e, 0x00, 0x7c,
+ 0x31, 0x9d, 0x16, 0xbd, 0x78, 0x39, 0x9e, 0x88,
+ 0x81, 0x42, 0x36, 0xf7, 0x05, 0x8a, 0x49, 0xe6,
+ 0xb6, 0x60, 0xdd, 0xf0, 0xe3, 0xef, 0x70, 0x21,
+ 0x63, 0x17, 0xca, 0xb9, 0xbd, 0x17, 0x0d, 0xcb,
+ 0x7e, 0xaf, 0xdd, 0x2d, 0x8b, 0x5f, 0xef, 0xcd,
+ 0xe7, 0xce, 0xb6, 0x8a, 0x5e, 0xbb, 0xed, 0x11,
+ 0x7d, 0x8a, 0xd9, 0x7b, 0xaf, 0x55, 0xcc, 0x04,
+ 0x87, 0x71, 0xae, 0x9c, 0xe2, 0x57, 0x8d, 0xc8,
+ 0x7a, 0x50, 0xed, 0x6e, 0x8e, 0x44, 0x80, 0xa3,
+ 0x06, 0xad, 0xa7, 0xab, 0xa1, 0x86, 0x7c, 0xe6,
+ 0xc6, 0x0d, 0xbf, 0x74, 0xcb, 0xbe, 0x9d, 0xa6,
+ 0x39, 0x7a, 0x40, 0x5d, 0x79, 0x60, 0xe6, 0xae,
+ 0x68, 0x66, 0x9b, 0x50, 0xd4, 0x14, 0xff, 0x7d,
+ 0x08, 0xa3, 0x1e, 0x14, 0x81, 0x28, 0xbb, 0x0a,
+ 0x92, 0xa7, 0xfd, 0x5e, 0x81, 0x65, 0x2c, 0x39,
+ 0x81, 0x8a, 0xf7, 0x71, 0x5c, 0xab, 0x35, 0xae,
+ 0xc9, 0x04, 0xf8, 0x6f, 0xd6, 0x56, 0x4f, 0x44,
+ 0x81, 0x54, 0x96, 0x2c, 0x53, 0x73, 0xb1, 0xf7,
+ 0x50, 0x7a, 0xc6, 0xdb, 0x7c, 0x23, 0x70, 0x76,
+ 0x81, 0x44, 0xcf, 0x62, 0x74, 0x2b, 0xc2, 0x87,
+ 0x49, 0x7d, 0x32, 0xd4, 0x27, 0xcb, 0xbf, 0x41,
+ 0xc5, 0x68, 0xf6, 0xba, 0xfa, 0x59, 0x32, 0x7e,
+ 0x17, 0x9c, 0x8c, 0x0a, 0xd5, 0xa3, 0xb2, 0x2c,
+ 0x91, 0xc0, 0xda, 0x7f, 0xbc, 0x51, 0xe4, 0xfb,
+ 0x0d, 0x66, 0x53, 0x8c, 0x22, 0xfa, 0xa6, 0xae,
+ 0xf1, 0xbd, 0x38, 0x30, 0xe0, 0x63, 0xea, 0xfc,
+ 0x8a, 0x52, 0xbd, 0x17, 0xeb, 0x42, 0x2c, 0xb5,
+ 0x4c, 0x8e, 0x80, 0xb6, 0xe5, 0x8c, 0xdc, 0xea,
+ 0xe5, 0x64, 0x09, 0xe4, 0x5f, 0x59, 0x97, 0x2d,
+ 0x33, 0x70, 0x7e, 0xb6, 0xc7, 0x03, 0x83, 0xca,
+ 0xd2, 0x5b, 0xe8, 0x5c, 0xcd, 0xf6, 0xe1, 0xde,
+ 0xd6, 0xbf, 0x31, 0x6d, 0xfa, 0xaf, 0x38, 0x9a,
+ 0x4e, 0xdd, 0xfb, 0xd5, 0x60, 0x80, 0xf8, 0x4b,
+ 0x15, 0x56, 0x62, 0x33, 0x4a, 0x7f, 0x87, 0x4c,
+ 0x5b, 0xca, 0xb8, 0xf0, 0x3f, 0xc3, 0xdc, 0x53,
+ 0xd8, 0xa8, 0xf3, 0x84, 0xfa, 0x04, 0x21, 0x75,
+ 0x67, 0x8c, 0x82, 0xd6, 0x38, 0x70, 0xe2, 0xbf,
+ 0x82, 0x8b, 0xa8, 0x4a, 0x7d, 0xb8, 0x11, 0x8b,
+ 0x0a, 0xe4, 0x70, 0xac, 0x2f, 0x3d, 0x2d, 0x7c,
+ 0xb9, 0x70, 0x96, 0xc5, 0xec, 0x40, 0x43, 0x55,
+ 0x4d, 0xc1, 0x3c, 0x68, 0x1c, 0x1d, 0x88, 0x2f,
+ 0x2d, 0xdd, 0xed, 0x7d, 0x29, 0x53, 0xdb, 0x25,
+ 0x89, 0x3c, 0xeb, 0x94, 0xc3, 0xd7, 0x4d, 0xd8,
+ 0x80, 0xef, 0x9f, 0x25, 0xb1, 0x8f, 0x69, 0x64,
+ 0xa2, 0xc5, 0x02, 0xff, 0x07, 0xc0, 0x2e, 0xf2,
+ 0xd4, 0x82, 0x97, 0xaf, 0x79, 0x20, 0xe4, 0xc6,
+ 0x3e, 0xd2, 0xcd, 0xa7, 0x49, 0x01, 0xc6, 0xa2,
+ 0x05, 0x42, 0x20, 0x1f, 0xf9, 0x7a, 0x50, 0x83,
+ 0x77, 0x98, 0xa4, 0x31, 0x73, 0x5a, 0x9e, 0x67,
+ 0x53, 0xdb, 0xd7, 0xa7, 0x8d, 0xd0, 0x4a, 0x71,
+ 0x5b, 0x80, 0x4a, 0xcd, 0x07, 0xd6, 0x00, 0x4c,
+ 0x29, 0x42, 0x54, 0x68, 0x9d, 0x2b, 0x7e, 0x6e,
+ 0x0b, 0x17, 0xb9, 0x41, 0xc2, 0x64, 0x5c, 0x8f,
+ 0x70, 0x4b, 0x2e, 0xe4, 0x26, 0x9a, 0xf8, 0x36,
+ 0x2c, 0x33, 0xba, 0x83, 0x01, 0x69, 0x75, 0x30,
+ 0xc7, 0xdc, 0xad, 0xdc, 0xf7, 0x35, 0xe6, 0xad,
+ 0x6c, 0xa7, 0xe9, 0xb2, 0x4f, 0xe1, 0xef, 0xef,
+ 0x59, 0xcf, 0xc5, 0x78, 0x47, 0x51, 0xfb, 0xc0,
+ 0xac, 0x1d, 0x34, 0xb9, 0x5a, 0x76, 0x4f, 0x2b,
+ 0xd8, 0xf8, 0x5d, 0x79, 0x75, 0x7a, 0x74, 0x4a,
+ 0xb8, 0x57, 0xed, 0xa1, 0x0f, 0x72, 0x9b, 0x41,
+ 0x41, 0x95, 0x5e, 0x55, 0xe4, 0x16, 0xf2, 0x12,
+ 0x08, 0xaf, 0xd9, 0x59, 0xf1, 0x46, 0x46, 0x22,
+ 0xf7, 0xb8, 0xd3, 0x19, 0xdf, 0x84, 0x39, 0xd4,
+ 0x13, 0xe5, 0x55, 0x57, 0x51, 0x8a, 0x5c, 0xc6,
+ 0x40, 0xad, 0x21, 0xa5, 0xee, 0x7a, 0x54, 0x2b,
+ 0xbe, 0xd4, 0x9c, 0x0b, 0x6d, 0x84, 0x15, 0x14,
+ 0xe7, 0xd2, 0xdb, 0xe3, 0xb7, 0xb5, 0x38, 0x8d,
+ 0xba, 0x7f, 0x88, 0x0f, 0xf5, 0x99, 0x9f, 0xde,
+ 0xc3, 0x41, 0x5d, 0x1e, 0xc3, 0xf9, 0x54, 0x12,
+ 0x3b, 0x3e, 0x84, 0x52, 0xe4, 0x79, 0x6c, 0x2a,
+ 0x8c, 0x99, 0xa9, 0x05, 0x0d, 0xad, 0x96, 0xec,
+ 0xe1, 0xea, 0x5e, 0xa6, 0x9e, 0xeb, 0x6d, 0x5e,
+ 0xaa, 0x3b, 0x58, 0x20, 0xf1, 0xa7, 0x1a, 0x90,
+ 0x4d, 0x06, 0x63, 0x1c, 0x07, 0xd0, 0x64, 0xef,
+ 0xdb, 0x0e, 0x58, 0x60, 0x15, 0xab, 0x99, 0x9b,
+ 0xd8, 0xc4, 0xf0, 0xfc, 0x18, 0xcb, 0x21, 0xc4,
+ 0x4c, 0x97, 0xf8, 0xbf, 0x34, 0xed, 0x53, 0x62,
+ 0x4f, 0xb9, 0xc2, 0xc1, 0x3e, 0x5d, 0x2a, 0x29,
+ 0x86, 0xde, 0x8f, 0xe8, 0x72, 0xc9, 0xf1, 0xc2,
+ 0xec, 0x1f, 0x24, 0xf9, 0xf4, 0xef, 0x64, 0xae,
+ 0x6c, 0x6d, 0x34, 0x8c, 0x84, 0xb7, 0x85, 0xa0,
+ 0x6a, 0x7a, 0x14, 0x07, 0xb0, 0x27, 0x9f, 0x68,
+ 0xc9, 0x31, 0x97, 0xbe, 0xb9, 0x97, 0x28, 0x5a,
+ 0x82, 0x4c, 0xe9, 0x1a, 0x3a, 0x1e, 0xe9, 0x46,
+ 0x06, 0x33, 0x78, 0xc2, 0x91, 0xc2, 0x1f, 0x1d,
+ 0x10, 0x7e, 0x33, 0x30, 0x31, 0xc4, 0x5f, 0xab,
+ 0x40, 0xf0, 0x6a, 0x6c, 0x94, 0xc5, 0x4d, 0x82,
+ 0x57, 0xe7, 0x13, 0x43, 0x7d, 0x6b, 0xb5, 0xe4,
+ 0x4f, 0xa2, 0xa4, 0x0a, 0x1e, 0xee, 0x86, 0xe5,
+ 0x5c, 0x5f, 0x49, 0xba, 0x0c, 0xd8, 0x5d, 0x9d,
+ 0xed, 0xba, 0x74, 0xe6, 0x01, 0xb9, 0xed, 0xb8,
+ 0x67, 0xdc, 0x88, 0x3d, 0xf0, 0xe0, 0x84, 0xb0,
+ 0x89, 0xaa, 0x6d, 0xe3, 0x7d, 0x6d, 0xf2, 0x6d,
+ 0xa3, 0x2d, 0x08, 0xf1, 0xb9, 0x18, 0x3b, 0xfa,
+ 0x61, 0x09, 0x85, 0xfa, 0x1d, 0x6f, 0x8f, 0x5c,
+ 0x08, 0xfe, 0xa9, 0x50, 0x70, 0x26, 0x0f, 0xc1,
+ 0xf6, 0x2e, 0x82, 0x5a, 0x15, 0x86, 0xdb, 0xe8,
+ 0xd1, 0xe5, 0xa2, 0x59, 0x94, 0x86, 0xe8, 0x48,
+ 0x3a, 0x74, 0x72, 0x92, 0xc2, 0xa1, 0x1e, 0x7a,
+ 0x3f, 0xc3, 0xc5, 0x89, 0xd9, 0x9a, 0x90, 0x42,
+ 0x6d, 0x8e, 0x07, 0x63, 0x34, 0x63, 0x2b, 0xe8,
+ 0xc8, 0xca, 0xb1, 0xca, 0xa8, 0x77, 0x9b, 0xbd,
+ 0x6b, 0xa6, 0xc7, 0x66, 0x25, 0x36, 0x84, 0x15,
+ 0x11, 0x39, 0x3c, 0x27, 0xdc, 0x30, 0xfe, 0xcb,
+ 0x12, 0x46, 0xdf, 0xee, 0x78, 0xf5, 0xd9, 0x53,
+ 0xf8, 0x19, 0x4d, 0x8c, 0xb3, 0xe4, 0x97, 0xc9,
+ 0x99, 0xe2, 0xbb, 0xa6, 0xa4, 0x86, 0x66, 0xc9,
+ 0x40, 0xf4, 0x36, 0xd6, 0x2a, 0xaf, 0x01, 0xe4,
+ 0x35, 0x3b, 0x89, 0x2a, 0xbb, 0x41, 0x06, 0x79,
+ 0xd0, 0x84, 0xbf, 0xd3, 0x30, 0x31, 0x20, 0x8d,
+ 0xb2, 0xab, 0xe2, 0x46, 0x41, 0x3b, 0xd2, 0x94,
+ 0x58, 0xa4, 0x45, 0xa3, 0x5f, 0xaa, 0xb8, 0x86,
+ 0xf5, 0x14, 0xf5, 0x3d, 0xb3, 0x44, 0xec, 0xe1,
+ 0xa7, 0xf8, 0x69, 0x10, 0x3a, 0xc0, 0x5e, 0xbf,
+ 0xf3, 0xf3, 0x65, 0x34, 0x41, 0x3e, 0x03, 0x80,
+ 0xbd, 0x2d, 0x70, 0xe5, 0x25, 0x40, 0x01, 0x2b,
+ 0x8b, 0x07, 0x98, 0xb6, 0x0d, 0xa5, 0x2f, 0x2c,
+ 0xc5, 0x77, 0x62, 0x7b, 0x89, 0x4f, 0xfb, 0x8e,
+ 0x8e, 0x62, 0xb7, 0x80, 0xfe, 0x8c, 0x43, 0x95,
+ 0x56, 0x5f, 0x5c, 0x4b, 0x6c, 0x4c, 0x61, 0x9b,
+ 0x8b, 0xa3, 0xd0, 0xd6, 0xef, 0x0d, 0x1b, 0x2c,
+ 0x65, 0x86, 0x8e, 0x99, 0xd7, 0xdc, 0xfd, 0x24,
+ 0x5f, 0x66, 0x6a, 0xb6, 0xc6, 0xe4, 0x24, 0x34,
+ 0x46, 0x4f, 0xa0, 0xb5, 0xdf, 0x08, 0x33, 0x37,
+ 0x73, 0xa4, 0xa7, 0xb3, 0x0a, 0x23, 0x27, 0x39,
+ 0x49, 0x4d, 0x72, 0xd6, 0xdc, 0x60, 0x63, 0x89,
+ 0xb0, 0xb2, 0xce, 0xdc, 0x11, 0x5c, 0x72, 0x82,
+ 0x9a, 0x9d, 0xcc, 0xe5, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x05, 0x0f, 0x16, 0x1d, 0x24,
+ 0x2d, 0x34, 0x3c, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0x32, 0x34, 0xe3, 0x52, 0x81, 0xc5, 0x69, 0x1b,
+ 0x0f, 0xb2, 0xb2, 0x44, 0x0b, 0xeb, 0x56, 0xcd,
+ 0x74, 0x0e, 0xb7, 0x30, 0x81, 0x42, 0xa3, 0x78,
+ 0x6c, 0x57, 0x88, 0x93, 0xc3, 0x48, 0xf3, 0x95,
+ 0x61, 0x20, 0xc7, 0x7c, 0xd3, 0xfa, 0x9f, 0x7a,
+ 0x8b, 0x2c, 0x64, 0xaf, 0x2b, 0x1c, 0xda, 0xb4,
+ 0x34, 0x33, 0xd9, 0x8e, 0x1c, 0xdb, 0x82, 0xfd,
+ 0x58, 0xd5, 0x76, 0xf3, 0x74, 0x0b, 0x81, 0x12,
+ 0xab, 0x15, 0x08, 0xe3, 0x14, 0x75, 0xff, 0x38,
+ 0x1e, 0x6c, 0x1f, 0x2c, 0x8c, 0x20, 0x57, 0xf7,
+ 0xc5, 0x73, 0x85, 0x9c, 0x54, 0x7e, 0x8f, 0x64,
+ 0x82, 0xf7, 0x53, 0x26, 0x1a, 0xad, 0x1a, 0xc2,
+ 0x04, 0x25, 0x67, 0xae, 0x7c, 0x26, 0x0f, 0xf9,
+ 0xe0, 0xb4, 0x0c, 0x7c, 0x91, 0xf5, 0x5f, 0x17,
+ 0xfc, 0xdc, 0xb9, 0x6c, 0x52, 0x52, 0x6d, 0xb7,
+ 0x78, 0xf8, 0xa1, 0x0d, 0x35, 0xe9, 0x71, 0xa1,
+ 0xad, 0x4a, 0xa3, 0x0d, 0x41, 0xaf, 0x2e, 0x82,
+ 0xf6, 0x24, 0xaf, 0x46, 0x77, 0xa5, 0x05, 0xd3,
+ 0xc3, 0xf0, 0xb9, 0xc7, 0x0c, 0x42, 0x42, 0xa2,
+ 0x5f, 0x2b, 0x93, 0xc9, 0xce, 0x05, 0x2c, 0x83,
+ 0xd4, 0x1a, 0xf0, 0x3b, 0x72, 0x84, 0xcc, 0xff,
+ 0x6a, 0x39, 0xdb, 0xb4, 0xdf, 0xc0, 0x6c, 0xba,
+ 0x42, 0x55, 0x7f, 0x2d, 0x09, 0x65, 0x4a, 0x65,
+ 0x7a, 0xa3, 0xbc, 0xdc, 0x2f, 0x69, 0x06, 0x76,
+ 0x4e, 0xe0, 0x08, 0x56, 0xb1, 0x2c, 0x46, 0x71,
+ 0xb1, 0xc2, 0x94, 0x76, 0xcb, 0x27, 0xd1, 0x5a,
+ 0x32, 0x1b, 0x1a, 0xd0, 0x54, 0xac, 0xa9, 0x73,
+ 0xd3, 0x95, 0x4b, 0xe0, 0x1b, 0x3a, 0x48, 0xd9,
+ 0x90, 0x6f, 0x6d, 0x82, 0x95, 0x7c, 0xf1, 0x8f,
+ 0xec, 0x67, 0xbc, 0x72, 0x91, 0x93, 0x52, 0xdb,
+ 0x48, 0x34, 0x16, 0x57, 0xb2, 0x7d, 0x5b, 0x56,
+ 0xce, 0x33, 0x97, 0x47, 0xd4, 0xee, 0x97, 0x0b,
+ 0x39, 0xd4, 0xf0, 0x0b, 0x29, 0x74, 0x29, 0xab,
+ 0x66, 0xb6, 0x0d, 0xe5, 0x0f, 0xed, 0xfa, 0x8d,
+ 0x4d, 0xe4, 0x93, 0x40, 0xf3, 0x51, 0x14, 0x78,
+ 0x40, 0x25, 0x09, 0x6f, 0xdb, 0xea, 0xa8, 0x94,
+ 0x45, 0xaa, 0xbc, 0x09, 0xea, 0x92, 0xcd, 0x90,
+ 0xc2, 0xe5, 0xa8, 0x66, 0xba, 0x8f, 0x49, 0x18,
+ 0xa4, 0x7c, 0xc2, 0xc6, 0xa4, 0xb4, 0xed, 0xcd,
+ 0xb0, 0x87, 0xa2, 0xc7, 0x41, 0xac, 0xd1, 0xdc,
+ 0x83, 0x12, 0xde, 0x71, 0x81, 0x65, 0x4c, 0x2f,
+ 0xad, 0xca, 0xb4, 0x68, 0x47, 0x64, 0xa2, 0x7e,
+ 0x8c, 0xee, 0xfe, 0x4a, 0xca, 0xb0, 0x05, 0xf3,
+ 0x21, 0xb8, 0xca, 0x4a, 0x76, 0x6b, 0x73, 0x8d,
+ 0xed, 0x53, 0x02, 0x6d, 0x79, 0x42, 0x15, 0xed,
+ 0xb7, 0xb9, 0xff, 0x18, 0x2b, 0x53, 0x0d, 0xf4,
+ 0x29, 0x35, 0xe3, 0x5e, 0xc2, 0x49, 0x1c, 0x71,
+ 0x3d, 0x80, 0xa0, 0x56, 0x59, 0x19, 0xe4, 0x44,
+ 0x67, 0x10, 0x00, 0x22, 0xb2, 0x9b, 0x7a, 0xfa,
+ 0xbd, 0x0a, 0xdf, 0xe1, 0x7d, 0x57, 0xdf, 0xac,
+ 0x3f, 0xcc, 0xb3, 0x85, 0xd9, 0x63, 0xbc, 0xd8,
+ 0xd0, 0xa9, 0x5b, 0xd3, 0xd3, 0x82, 0x72, 0x21,
+ 0x5c, 0x7f, 0xe2, 0xba, 0x1e, 0x54, 0x99, 0x3a,
+ 0x29, 0x9e, 0x66, 0x9c, 0x3d, 0xb0, 0xb2, 0xec,
+ 0x85, 0xee, 0x9d, 0xbb, 0x81, 0xb8, 0xb7, 0x52,
+ 0x10, 0xb0, 0xa0, 0x18, 0x28, 0xd0, 0x83, 0x34,
+ 0x8c, 0xbe, 0x3e, 0x69, 0xfb, 0xad, 0x5c, 0x53,
+ 0xd9, 0x67, 0x60, 0x2a, 0x49, 0x2d, 0x68, 0xe7,
+ 0x0b, 0x37, 0xdd, 0xb5, 0xa0, 0xa0, 0x32, 0x6e,
+ 0xa2, 0x1e, 0x18, 0x19, 0x2c, 0x3c, 0x5d, 0x7e,
+ 0x55, 0x7b, 0x03, 0x70, 0xeb, 0x70, 0x72, 0x16,
+ 0x1b, 0x2f, 0x28, 0xe0, 0xc6, 0x4a, 0x4f, 0xea,
+ 0x76, 0x20, 0x98, 0x09, 0x20, 0xf3, 0x01, 0x23,
+ 0xcd, 0x96, 0x35, 0x33, 0xb6, 0x01, 0xa1, 0xd5,
+ 0x2e, 0x5a, 0x96, 0x9c, 0xa0, 0xf2, 0x80, 0x76,
+ 0x0a, 0x14, 0x53, 0xd9, 0xfc, 0x61, 0x4c, 0x48,
+ 0xce, 0xfd, 0xa6, 0xf4, 0x3c, 0x2a, 0xef, 0x8e,
+ 0x8c, 0xb4, 0xb3, 0xa2, 0x8e, 0x1a, 0x29, 0x32,
+ 0xb2, 0xc3, 0x9e, 0x66, 0xa6, 0x2b, 0xa4, 0x2e,
+ 0x1b, 0xf5, 0xb8, 0x89, 0xd4, 0x7e, 0x33, 0x46,
+ 0xd0, 0x07, 0x29, 0x95, 0x19, 0xe2, 0x98, 0x49,
+ 0x15, 0xca, 0x30, 0x62, 0x18, 0x37, 0xed, 0x40,
+ 0xf8, 0xa3, 0xe0, 0x8b, 0xbb, 0xe2, 0x81, 0x28,
+ 0xbf, 0xa4, 0xa5, 0xb8, 0x60, 0x29, 0x2a, 0xa6,
+ 0x0d, 0x64, 0x36, 0x1b, 0xfa, 0x90, 0x8a, 0xe3,
+ 0xae, 0x96, 0x4e, 0x89, 0xfc, 0x1f, 0x2a, 0x95,
+ 0xef, 0xcd, 0x7c, 0xb2, 0xac, 0xe3, 0x03, 0x9f,
+ 0x26, 0xc9, 0x55, 0xc4, 0x87, 0xfb, 0xb6, 0xc5,
+ 0x71, 0xc3, 0x2a, 0xfd, 0x57, 0xd0, 0x92, 0x34,
+ 0x9e, 0x49, 0x4b, 0xfe, 0x55, 0x08, 0xb8, 0xdc,
+ 0x5c, 0xbf, 0xa4, 0x4e, 0xa0, 0xbe, 0xcf, 0xb1,
+ 0x63, 0x7f, 0xfa, 0x85, 0xa3, 0xee, 0xb2, 0x6a,
+ 0xeb, 0x76, 0x89, 0x67, 0x55, 0xf8, 0xe4, 0x44,
+ 0xaf, 0xb4, 0xc1, 0x55, 0x74, 0x35, 0x8b, 0xe6,
+ 0x86, 0xb8, 0xce, 0x24, 0xc7, 0xa4, 0xbe, 0x3d,
+ 0x82, 0x4e, 0x1c, 0x08, 0xd3, 0xfd, 0x03, 0xc5,
+ 0x98, 0xb9, 0xdf, 0x3e, 0x62, 0x23, 0xe2, 0x89,
+ 0xbf, 0xa3, 0x28, 0x01, 0x7d, 0x16, 0x26, 0x1f,
+ 0xe0, 0xc4, 0x2a, 0x0f, 0xd6, 0x6b, 0x76, 0xa1,
+ 0xd3, 0x79, 0xc3, 0x5b, 0x9b, 0x2d, 0x24, 0x7b,
+ 0xb2, 0x00, 0xf6, 0x91, 0xb0, 0x96, 0x1b, 0x92,
+ 0x32, 0x75, 0x76, 0x59, 0xb3, 0xd1, 0x7d, 0x26,
+ 0xde, 0xb8, 0x99, 0xfe, 0xa3, 0x6d, 0x96, 0x8c,
+ 0xc1, 0x45, 0xcc, 0x89, 0x44, 0xa2, 0xb2, 0x19,
+ 0xee, 0x26, 0xa0, 0x38, 0xf8, 0x28, 0xd2, 0x38,
+ 0x79, 0x3b, 0xd1, 0xce, 0x56, 0x61, 0x7f, 0xa3,
+ 0x77, 0x4a, 0xd3, 0x79, 0xeb, 0x8a, 0x9f, 0x06,
+ 0x2a, 0x0e, 0xee, 0x59, 0xfb, 0x1e, 0xff, 0xfd,
+ 0x77, 0x9c, 0x1c, 0xbb, 0xea, 0x7e, 0xe6, 0x16,
+ 0xb5, 0x06, 0x79, 0x5f, 0xa4, 0xcf, 0xd2, 0x7e,
+ 0xaf, 0x5a, 0x34, 0x2a, 0xb1, 0x56, 0xf6, 0x13,
+ 0x67, 0x9e, 0x29, 0x0c, 0xa7, 0x80, 0xa9, 0x46,
+ 0xaf, 0x3a, 0xc6, 0x58, 0x59, 0xb7, 0xf6, 0x17,
+ 0x7f, 0x26, 0x8c, 0xa7, 0x07, 0x45, 0xbc, 0x72,
+ 0xa7, 0xc6, 0x3f, 0x58, 0x5a, 0xde, 0xbe, 0xad,
+ 0x7a, 0x43, 0x8b, 0x4b, 0x80, 0xd9, 0xbf, 0x97,
+ 0xa8, 0x8f, 0xa2, 0x17, 0xba, 0x5a, 0x90, 0x64,
+ 0xf8, 0xb8, 0x64, 0xd6, 0x43, 0x3d, 0x9f, 0x51,
+ 0xb6, 0x7b, 0xdf, 0xc3, 0xee, 0x82, 0x36, 0x6f,
+ 0xe6, 0xc5, 0x2a, 0x58, 0xae, 0xc7, 0x46, 0x0e,
+ 0x0e, 0x9f, 0x41, 0x74, 0xc2, 0xcf, 0x1a, 0x45,
+ 0x70, 0x45, 0x35, 0x9c, 0x33, 0x4e, 0x45, 0xb6,
+ 0xc7, 0xc6, 0xbe, 0x01, 0xff, 0x54, 0x9c, 0xca,
+ 0x49, 0x87, 0x6f, 0xbb, 0x8d, 0x92, 0xf0, 0x0c,
+ 0xef, 0x63, 0x8d, 0x2b, 0xc0, 0xef, 0x95, 0xd7,
+ 0xb1, 0x89, 0xd5, 0xb7, 0x8e, 0xeb, 0x95, 0xbb,
+ 0x42, 0x97, 0xcf, 0xfe, 0x8e, 0xfa, 0x35, 0x55,
+ 0x48, 0x44, 0xb1, 0x4d, 0xc9, 0x35, 0xc0, 0x50,
+ 0x33, 0x41, 0xe0, 0x8a, 0x18, 0x31, 0x19, 0x51,
+ 0x47, 0xbb, 0xc0, 0x82, 0x78, 0x5f, 0x62, 0xba,
+ 0x89, 0x27, 0xa1, 0x01, 0xce, 0xa7, 0x65, 0x47,
+ 0x7c, 0x90, 0xc3, 0xb6, 0x75, 0x06, 0x9e, 0x48,
+ 0x56, 0xe5, 0x16, 0xad, 0x90, 0xe9, 0xea, 0xcc,
+ 0xd5, 0xfb, 0xf2, 0x5b, 0x33, 0xa6, 0xc4, 0x4c,
+ 0xa8, 0x1b, 0xd6, 0x39, 0x80, 0xec, 0x86, 0x71,
+ 0x9f, 0x63, 0x8d, 0x15, 0x86, 0x7a, 0xd5, 0xe7,
+ 0x78, 0xd3, 0x9b, 0xd0, 0x17, 0xc0, 0xa5, 0x85,
+ 0xf8, 0x15, 0x47, 0x50, 0x4b, 0x4a, 0xf1, 0x3d,
+ 0xf9, 0x07, 0x01, 0x1c, 0x58, 0x4c, 0x9b, 0x1c,
+ 0x31, 0x4f, 0xe7, 0xda, 0x60, 0x68, 0x25, 0x29,
+ 0x8c, 0x16, 0x82, 0xc5, 0x61, 0x9f, 0x4d, 0xf3,
+ 0x17, 0xd0, 0x94, 0x40, 0x8d, 0xe2, 0xbc, 0xfb,
+ 0xd8, 0xb5, 0xf3, 0x18, 0x5d, 0xee, 0x49, 0xff,
+ 0x6d, 0x5e, 0x20, 0x9e, 0x42, 0xbb, 0x95, 0xb3,
+ 0x24, 0x1b, 0xaa, 0x76, 0x9e, 0x8d, 0xf0, 0xea,
+ 0xbc, 0x12, 0x6f, 0xf6, 0x9a, 0x85, 0x18, 0x49,
+ 0xfd, 0x73, 0x48, 0x24, 0xe6, 0xfe, 0x00, 0xed,
+ 0x63, 0x54, 0x35, 0xdd, 0x90, 0x91, 0x1b, 0x2f,
+ 0x12, 0x87, 0x17, 0xd3, 0x18, 0x7a, 0xc0, 0x85,
+ 0x17, 0x10, 0x76, 0xbc, 0x60, 0x26, 0x40, 0xae,
+ 0xb0, 0xb4, 0x5a, 0x9e, 0x12, 0xb8, 0x1d, 0x19,
+ 0x2c, 0x20, 0xd9, 0x52, 0x4b, 0x62, 0xf7, 0x9c,
+ 0xd6, 0xfd, 0x71, 0xba, 0xc7, 0x48, 0xa6, 0x0e,
+ 0x33, 0x16, 0x6c, 0x9e, 0x54, 0x3b, 0x97, 0xa4,
+ 0x42, 0x20, 0xb4, 0x69, 0x37, 0x2b, 0x84, 0x49,
+ 0xeb, 0xd7, 0xd9, 0xc1, 0x60, 0x2c, 0xdc, 0x2d,
+ 0xa4, 0x24, 0xcc, 0xf8, 0x5e, 0x1b, 0xfb, 0x23,
+ 0x21, 0x22, 0x2e, 0x92, 0x8d, 0x54, 0x93, 0x34,
+ 0xd1, 0x25, 0x24, 0xb6, 0x4b, 0xfb, 0xd7, 0xf4,
+ 0x54, 0x05, 0xab, 0xe8, 0x7e, 0xa3, 0x5b, 0x05,
+ 0x0f, 0x55, 0x9e, 0xcf, 0x7e, 0x93, 0xbc, 0x85,
+ 0x69, 0xf8, 0x8a, 0x85, 0x02, 0xdc, 0xa2, 0x25,
+ 0x01, 0x54, 0xc2, 0xb5, 0xe2, 0x7f, 0xcd, 0xc3,
+ 0x68, 0x68, 0x41, 0xc2, 0x3a, 0x5e, 0x47, 0xae,
+ 0x74, 0x61, 0x43, 0x02, 0xf8, 0x6e, 0x66, 0x5c,
+ 0x7f, 0x98, 0xb5, 0xb5, 0x75, 0xd5, 0x4a, 0x2e,
+ 0x98, 0xb1, 0xb7, 0xeb, 0xa2, 0xa6, 0xe8, 0x34,
+ 0xa1, 0xe5, 0x05, 0xe7, 0xf3, 0x62, 0x71, 0x4e,
+ 0x38, 0xca, 0x60, 0x5b, 0xaa, 0x2e, 0x15, 0x2d,
+ 0xff, 0x19, 0x43, 0xe7, 0xce, 0x1a, 0x5d, 0x7e,
+ 0x9a, 0xa4, 0x01, 0xe3, 0x3d, 0x01, 0xcd, 0x3e,
+ 0x17, 0x84, 0xe9, 0x80, 0x82, 0x7f, 0xc5, 0x3a,
+ 0x05, 0x45, 0xfe, 0x19, 0xb0, 0x1e, 0x8b, 0xbb,
+ 0xdb, 0xbf, 0x19, 0x38, 0xfa, 0x52, 0xd8, 0x2d,
+ 0x6a, 0x23, 0x86, 0xe3, 0x0b, 0x28, 0x94, 0xc8,
+ 0xa1, 0xcc, 0x49, 0xc2, 0x98, 0x2d, 0x56, 0x56,
+ 0x0b, 0x0d, 0x3e, 0x6d, 0xdc, 0xb9, 0xfa, 0x8e,
+ 0x56, 0xab, 0x01, 0x8d, 0x58, 0x3c, 0x4b, 0x04,
+ 0x82, 0xb1, 0x97, 0xd0, 0x92, 0xfe, 0xb6, 0xc4,
+ 0x5b, 0xe0, 0x37, 0x50, 0xc7, 0xac, 0xe2, 0xf4,
+ 0xed, 0xf2, 0x05, 0x8c, 0x9d, 0x78, 0x4d, 0xf7,
+ 0x9d, 0x59, 0xdb, 0xaa, 0x67, 0x9a, 0xd5, 0x48,
+ 0x27, 0x41, 0x89, 0x5b, 0xea, 0x29, 0x26, 0x41,
+ 0x76, 0xa8, 0x5f, 0x6d, 0x34, 0x04, 0xd2, 0x5f,
+ 0xb9, 0xdc, 0x20, 0xee, 0x04, 0x82, 0x24, 0x7a,
+ 0x09, 0x33, 0xf5, 0x02, 0x46, 0xa1, 0xc3, 0x58,
+ 0xb5, 0xb6, 0x1b, 0x44, 0x21, 0x34, 0x12, 0x54,
+ 0x23, 0xc6, 0x08, 0xa7, 0x54, 0xe4, 0x85, 0xed,
+ 0xe5, 0x50, 0x25, 0x20, 0x19, 0xc4, 0x5a, 0x40,
+ 0x9e, 0xde, 0x77, 0xd3, 0xe9, 0x1a, 0xe6, 0x7b,
+ 0xfc, 0x94, 0x5c, 0x28, 0xb8, 0x40, 0x9f, 0x85,
+ 0xa6, 0xa8, 0x18, 0x48, 0x75, 0x3f, 0x0c, 0x3e,
+ 0x8a, 0x34, 0x8f, 0x7e, 0xc2, 0x74, 0x71, 0xc2,
+ 0x30, 0x6c, 0x55, 0x3c, 0x11, 0xfc, 0x0c, 0xae,
+ 0x30, 0x7f, 0xda, 0x71, 0x29, 0x66, 0xd6, 0x46,
+ 0xed, 0x1c, 0xa1, 0xb0, 0x08, 0x63, 0xa4, 0xd4,
+ 0xb2, 0xec, 0x16, 0xdb, 0xde, 0x22, 0x20, 0xeb,
+ 0xe3, 0x8b, 0x7b, 0x2d, 0xac, 0x49, 0xec, 0x2a,
+ 0x06, 0x39, 0xa7, 0xaf, 0x24, 0x8c, 0x58, 0x09,
+ 0xe6, 0x58, 0x80, 0x3e, 0x8e, 0x2a, 0x0d, 0xbf,
+ 0x9c, 0x51, 0x16, 0xe9, 0x95, 0x4a, 0x98, 0x68,
+ 0x52, 0x16, 0xc2, 0x6f, 0x94, 0x2f, 0xdc, 0x3b,
+ 0xc6, 0x7e, 0x90, 0x2c, 0xf6, 0x84, 0x10, 0x90,
+ 0x9c, 0xe7, 0x31, 0x09, 0x8a, 0xe3, 0xad, 0x1f,
+ 0x6d, 0x87, 0x74, 0x02, 0xce, 0x85, 0x47, 0x69,
+ 0x3b, 0x33, 0x82, 0x51, 0x2a, 0xc8, 0xb4, 0x48,
+ 0x22, 0x95, 0x77, 0xd1, 0x90, 0xa3, 0x80, 0xf4,
+ 0x28, 0x74, 0xc1, 0x1d, 0x26, 0x7a, 0x79, 0xeb,
+ 0x6d, 0x76, 0x64, 0x34, 0x6f, 0x90, 0xd9, 0xe5,
+ 0xd0, 0xa8, 0xd9, 0x3d, 0x2a, 0x23, 0x6b, 0x9c,
+ 0x58, 0x49, 0xef, 0xa2, 0x61, 0xdd, 0xcd, 0x5c,
+ 0xbf, 0xef, 0x38, 0x3e, 0xa0, 0x2b, 0xe9, 0x71,
+ 0x89, 0xd7, 0xfc, 0xa1, 0x0b, 0x70, 0x68, 0xda,
+ 0xe5, 0x32, 0x30, 0x51, 0x65, 0xe0, 0x13, 0xd7,
+ 0x4f, 0xf0, 0xca, 0xa1, 0x0c, 0x49, 0xaf, 0xde,
+ 0x70, 0x52, 0xdc, 0x72, 0x7c, 0x29, 0x6d, 0x1c,
+ 0x28, 0x3e, 0x5a, 0x75, 0xec, 0xea, 0xfb, 0x97,
+ 0xcb, 0x81, 0xf2, 0x74, 0xd7, 0xe0, 0xc2, 0x8f,
+ 0x74, 0x6c, 0x06, 0x65, 0x12, 0x69, 0x3c, 0x26,
+ 0xbf, 0x37, 0x4c, 0xd8, 0xb2, 0x39, 0x1c, 0x1a,
+ 0x26, 0x27, 0x63, 0xa9, 0x70, 0x45, 0x65, 0x03,
+ 0x0a, 0x97, 0x75, 0xad, 0x37, 0xc1, 0x0a, 0xb3,
+ 0x16, 0x35, 0x15, 0x81, 0xc3, 0x3f, 0xa5, 0xcd,
+ 0x31, 0x27, 0x67, 0x95, 0xb2, 0x78, 0x0c, 0x91,
+ 0x12, 0x1a, 0x54, 0xfe, 0x14, 0xac, 0xc9, 0x54,
+ 0x04, 0x51, 0xa2, 0x3d, 0x0f, 0xb5, 0x2c, 0xab,
+ 0x07, 0x72, 0x01, 0x17, 0xef, 0x5c, 0xe7, 0x05,
+ 0x05, 0x08, 0x10, 0xa7, 0xf5, 0x30, 0x7c, 0x3e,
+ 0xd5, 0x5d, 0xf2, 0xbd, 0x10, 0x58, 0xd1, 0x26,
+ 0x12, 0x04, 0xd1, 0x91, 0x5c, 0x49, 0x90, 0x6f,
+ 0xb9, 0x1e, 0x57, 0xf8, 0x58, 0x74, 0x3c, 0xe9,
+ 0x6f, 0x92, 0x84, 0x95, 0x2f, 0x23, 0xce, 0x63,
+ 0x9c, 0x80, 0xf3, 0x6e, 0xc7, 0xc5, 0x0f, 0xcc,
+ 0x76, 0xbf, 0x46, 0xf2, 0x0e, 0xe6, 0xc8, 0x22,
+ 0x44, 0x6e, 0xbe, 0x74, 0xd5, 0x12, 0x1b, 0x27,
+ 0x55, 0xa4, 0x15, 0x4f, 0x14, 0x46, 0xec, 0xed,
+ 0x81, 0x60, 0x19, 0x37, 0xa3, 0x38, 0x72, 0x97,
+ 0x5e, 0xcd, 0xe6, 0x6f, 0x70, 0x05, 0x67, 0x46,
+ 0x7b, 0xd9, 0x95, 0xc7, 0xe4, 0x1c, 0xa2, 0x81,
+ 0x1a, 0x1c, 0x07, 0x6a, 0x3e, 0xfd, 0xe0, 0xd8,
+ 0x4d, 0xac, 0xe5, 0x1d, 0xca, 0xd9, 0xca, 0x02,
+ 0x64, 0x2b, 0xe5, 0xbe, 0x80, 0x84, 0x72, 0x3a,
+ 0x67, 0x0d, 0xd1, 0x70, 0xda, 0xda, 0x4d, 0x40,
+ 0xfb, 0x2a, 0x91, 0x5e, 0x7f, 0x87, 0xb8, 0x5d,
+ 0xf0, 0x90, 0x9b, 0x86, 0x44, 0x72, 0xfc, 0xb6,
+ 0x91, 0x32, 0xcc, 0xe1, 0xbb, 0x17, 0x55, 0xda,
+ 0x9f, 0x39, 0x3f, 0x38, 0x44, 0xb7, 0x8c, 0x08,
+ 0x86, 0x17, 0xbb, 0xc3, 0xe6, 0x46, 0x1e, 0xe1,
+ 0xbd, 0xfd, 0x15, 0xec, 0x4e, 0x16, 0x76, 0xbb,
+ 0xed, 0xe0, 0xf2, 0xfe, 0x72, 0xbe, 0xac, 0x05,
+ 0xcb, 0x31, 0x3e, 0xb2, 0x97, 0x72, 0xcb, 0x92,
+ 0x66, 0x93, 0xc0, 0x91, 0xb0, 0xfa, 0x37, 0x04,
+ 0xad, 0x6f, 0x25, 0xe1, 0x70, 0x6d, 0xd3, 0x3d,
+ 0x8b, 0xe8, 0xdd, 0x73, 0xd1, 0xb1, 0x67, 0xa9,
+ 0x5b, 0x4c, 0xad, 0x71, 0xc5, 0x27, 0x87, 0x01,
+ 0x76, 0x9f, 0x4f, 0x9e, 0x56, 0xf0, 0xf0, 0xe4,
+ 0xe9, 0x63, 0x08, 0x52, 0xc1, 0x89, 0xbb, 0xb4,
+ 0x77, 0x86, 0xa5, 0xf3, 0xc1, 0x3e, 0xd4, 0x3c,
+ 0x0f, 0x32, 0x3e, 0x83, 0xed, 0x36, 0x7a, 0x9a,
+ 0x83, 0x6c, 0x30, 0x42, 0x23, 0xdd, 0xd9, 0xd2,
+ 0xe1, 0x02, 0x44, 0x5c, 0x78, 0x70, 0x35, 0x22,
+ 0x3b, 0x8d, 0x05, 0xe8, 0xba, 0x1f, 0x68, 0xa3,
+ 0x12, 0x25, 0xe2, 0xc2, 0x71, 0xdc, 0xb9, 0x66,
+ 0x28, 0x58, 0x4d, 0x3d, 0x89, 0x69, 0x12, 0xca,
+ 0xb2, 0x13, 0x9d, 0x8c, 0x84, 0x91, 0x61, 0x67,
+ 0x78, 0xb1, 0xc2, 0x29, 0xe4, 0x66, 0x11, 0xb1,
+ 0xf5, 0xb2, 0x02, 0xf2, 0x2a, 0x2b, 0x22, 0xc5,
+ 0x63, 0x09, 0x6e, 0xfe, 0x16, 0x3c, 0x9e, 0x99,
+ 0xa6, 0x9d, 0xc0, 0x4d, 0x2d, 0x37, 0x6e, 0x04,
+ 0x74, 0x3f, 0x21, 0xdb, 0xa9, 0xf9, 0xef, 0x41,
+ 0x31, 0x54, 0x94, 0xf9, 0x99, 0xaa, 0x03, 0xa3,
+ 0x97, 0xfd, 0x5d, 0xa4, 0xf8, 0xd8, 0xc0, 0x99,
+ 0xca, 0xd9, 0x33, 0x32, 0x96, 0x5a, 0x89, 0x27,
+ 0xc7, 0x5d, 0x37, 0xe2, 0xd0, 0x5f, 0x2f, 0x06,
+ 0xd8, 0x41, 0x84, 0x4e, 0xdc, 0xef, 0x92, 0x62,
+ 0x7a, 0xe5, 0x7b, 0x12, 0x75, 0x81, 0xde, 0x95,
+ 0x53, 0xca, 0x5b, 0xd0, 0x97, 0x25, 0x5c, 0x2c,
+ 0xc7, 0xdc, 0xf6, 0x82, 0x2c, 0x6f, 0x5e, 0xef,
+ 0x61, 0x2a, 0x35, 0x1b, 0xb8, 0xb5, 0x23, 0x63,
+ 0xd5, 0x05, 0xe2, 0x76, 0x1a, 0xe6, 0xbb, 0xd6,
+ 0x92, 0x60, 0x2b, 0x3f, 0x93, 0x92, 0x21, 0xa8,
+ 0x4a, 0xe5, 0x6b, 0x6d, 0xcc, 0x80, 0x6a, 0x97,
+ 0xf3, 0x32, 0xd1, 0xa3, 0xa4, 0x62, 0x62, 0xcb,
+ 0xff, 0x89, 0x1c, 0xdc, 0x3d, 0xb3, 0xdd, 0x48,
+ 0x3b, 0xcb, 0x4e, 0xb5, 0x29, 0xfd, 0xe7, 0x08,
+ 0xe6, 0xf2, 0xdd, 0x57, 0x9e, 0xc0, 0x0b, 0x92,
+ 0xbd, 0x90, 0x43, 0xd4, 0x0c, 0x6d, 0xac, 0x2a,
+ 0xcc, 0xab, 0x1d, 0x84, 0x03, 0x1b, 0xe6, 0xf2,
+ 0x45, 0x6b, 0x22, 0x6c, 0x9a, 0xf6, 0xdf, 0x53,
+ 0x1b, 0x77, 0x12, 0x27, 0xd5, 0x90, 0x76, 0xfd,
+ 0x7e, 0x1e, 0x8f, 0x27, 0x94, 0x18, 0xc1, 0x16,
+ 0x62, 0x9b, 0xda, 0xd6, 0x71, 0x98, 0x47, 0xe3,
+ 0x70, 0xb0, 0xf9, 0x60, 0x3d, 0x58, 0x6f, 0x78,
+ 0x75, 0xb5, 0xb0, 0xf9, 0x92, 0x1f, 0x05, 0x65,
+ 0x0e, 0x52, 0xe7, 0x5d, 0x39, 0x58, 0x89, 0x08,
+ 0x62, 0xe4, 0x5a, 0xe9, 0x93, 0xe4, 0xe4, 0xd0,
+ 0xf8, 0x27, 0xc6, 0xe0, 0x96, 0x91, 0x2b, 0xc9,
+ 0x67, 0x80, 0x38, 0x85, 0xc9, 0xcc, 0x1b, 0x70,
+ 0x44, 0xdc, 0x96, 0xe0, 0x49, 0x41, 0xbf, 0x0e,
+ 0x57, 0x76, 0x8f, 0xd7, 0x8d, 0x71, 0xcb, 0x6a,
+ 0x1b, 0x92, 0xb3, 0xe7, 0x96, 0xf4, 0xf0, 0x0a,
+ 0x0b, 0xe7, 0x9c, 0x16, 0x64, 0xfa, 0xe4, 0xce,
+ 0x7a, 0xda, 0x1a, 0xc5, 0x6e, 0x81, 0xc0, 0x21,
+ 0x4d, 0x5d, 0xae, 0x74, 0xe3, 0x1b, 0xa4, 0xd3,
+ 0x1a, 0x12, 0x7e, 0x65, 0x1b, 0xe7, 0x92, 0xbe,
+ 0x1a, 0xc3, 0xf8, 0xd3, 0x84, 0x92, 0xb2, 0x7e,
+ 0x5d, 0x40, 0x10, 0xaf, 0x61, 0x60, 0x21, 0x1f,
+ 0x54, 0x54, 0xe3, 0x76, 0xa0, 0xa8, 0xda, 0xaa,
+ 0x0f, 0x29, 0xa7, 0xa9, 0x99, 0xa9, 0xb3, 0xd2,
+ 0xd4, 0xd1, 0xef, 0x8a, 0x94, 0x1d, 0xc5, 0x61,
+ 0x54, 0xa2, 0x94, 0xaf, 0xcb, 0xad, 0x4b, 0x23,
+ 0x6c, 0xb6, 0x50, 0x33, 0xeb, 0xac, 0x6e, 0x58,
+ 0xf1, 0xd4, 0xd3, 0x7a, 0x1f, 0x95, 0x00, 0x9d,
+ 0x9c, 0xf6, 0x84, 0x71, 0xe3, 0xe5, 0xd3, 0x4d,
+ 0x28, 0x3b, 0x2d, 0xcb, 0x2b, 0xc1, 0x90, 0xf5,
+ 0xee, 0x02, 0x22, 0xa2, 0x8a, 0xf1, 0x3c, 0x17,
+ 0xeb, 0x40, 0x67, 0xd3, 0x57, 0x62, 0x8b, 0x9b,
+ 0xec, 0xc1, 0xeb, 0x96, 0x55, 0xde, 0xa7, 0x6c,
+ 0xaf, 0xcb, 0x5f, 0xf3, 0xc3, 0x11, 0x49, 0xae,
+ 0x09, 0x3f, 0x66, 0x75, 0xce, 0x3f, 0x0d, 0x95,
+ 0xb6, 0x4b, 0xc2, 0xbb, 0x7d, 0x81, 0xea, 0x2a,
+ 0x9e, 0x22, 0xac, 0x2f, 0xbd, 0xcf, 0x8b, 0x18,
+ 0x82, 0xeb, 0x86, 0xfb, 0x5b, 0x9a, 0x28, 0x0e,
+ 0x11, 0xc8, 0x3e, 0x55, 0xd6, 0x1f, 0xe1, 0xe0,
+ 0x30, 0x70, 0x4c, 0x54, 0xbf, 0x35, 0xec, 0x2f,
+ 0x89, 0x53, 0xab, 0x81, 0x10, 0x7a, 0x42, 0x12,
+ 0x6f, 0x3a, 0xec, 0xf7, 0x6b, 0x92, 0x85, 0x01,
+ 0xab, 0x97, 0x23, 0x4e, 0xa4, 0xfc, 0x41, 0x2b,
+ 0x90, 0xbb, 0x16, 0x73, 0x81, 0xeb, 0xd4, 0xdc,
+ 0x84, 0x7f, 0x8a, 0xd8, 0x1f, 0x8d, 0x40, 0xce,
+ 0xc0, 0xb5, 0x69, 0x8d, 0x42, 0xed, 0xb7, 0x87,
+ 0x84, 0x00, 0x8e, 0x8e, 0x60, 0x46, 0x0a, 0x9e,
+ 0x3c, 0xf6, 0x6a, 0xc6, 0x3b, 0x7a, 0x48, 0x64,
+ 0x83, 0x7b, 0x3f, 0x02, 0x6e, 0x54, 0xd3, 0xa7,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0x32, 0x34, 0xe3, 0x52, 0x81, 0xc5, 0x69, 0x1b,
+ 0x0f, 0xb2, 0xb2, 0x44, 0x0b, 0xeb, 0x56, 0xcd,
+ 0x74, 0x0e, 0xb7, 0x30, 0x81, 0x42, 0xa3, 0x78,
+ 0x6c, 0x57, 0x88, 0x93, 0xc3, 0x48, 0xf3, 0x95,
+ 0x9d, 0x40, 0x07, 0xb3, 0x42, 0x5f, 0x61, 0xa2,
+ 0x5f, 0x0d, 0xd6, 0x5b, 0xfe, 0xae, 0xf3, 0x4d,
+ 0xa3, 0x20, 0x19, 0x54, 0xde, 0xfb, 0x6a, 0x5e,
+ 0xe7, 0xc6, 0x3f, 0x4b, 0x39, 0xaf, 0x72, 0x93,
+ 0xf1, 0xca, 0x0e, 0x28, 0x05, 0x9a, 0x73, 0x26,
+ 0x51, 0xc9, 0x9e, 0xb8, 0x68, 0x44, 0x9e, 0xc9,
+ 0x0e, 0x0e, 0x21, 0x0c, 0xa9, 0x6b, 0xb7, 0x5e,
+ 0x68, 0x6f, 0x39, 0xdf, 0xb6, 0x7a, 0xdc, 0x69,
+ 0xed, 0xf9, 0xac, 0xbb, 0xe4, 0xa6, 0x23, 0x9f,
+ 0xfd, 0x47, 0x1f, 0x7c, 0x52, 0x49, 0x1a, 0x90,
+ 0xa7, 0xa2, 0x2a, 0xf6, 0xa2, 0x37, 0x91, 0xc6,
+ 0x59, 0x7b, 0x00, 0x1e, 0x32, 0xc4, 0x9e, 0xc5,
+ 0x12, 0xc6, 0x20, 0x24, 0x19, 0x65, 0x24, 0x22,
+ 0x10, 0x03, 0xc1, 0x81, 0x5c, 0x42, 0x69, 0x91,
+ 0x96, 0x25, 0xa2, 0x48, 0x41, 0x99, 0xc8, 0x45,
+ 0x5c, 0xb0, 0x69, 0x14, 0x95, 0x8c, 0x08, 0x34,
+ 0x86, 0x89, 0xb2, 0x00, 0x8a, 0x20, 0x0a, 0xd9,
+ 0x96, 0x4d, 0x1c, 0xb1, 0x29, 0x88, 0xa0, 0x91,
+ 0x40, 0x48, 0x0c, 0xd1, 0x00, 0x4d, 0x60, 0x02,
+ 0x42, 0x42, 0x02, 0x20, 0x9b, 0x00, 0x8c, 0x18,
+ 0x03, 0x20, 0xcc, 0xc0, 0x29, 0xa4, 0x20, 0x2e,
+ 0xc9, 0xc4, 0x49, 0x40, 0x18, 0x32, 0x10, 0x95,
+ 0x41, 0xa1, 0xc2, 0x61, 0x02, 0xc1, 0x64, 0xcc,
+ 0xb2, 0x09, 0x54, 0x80, 0x6d, 0xd9, 0x26, 0x02,
+ 0xa4, 0xc0, 0x8d, 0x40, 0x06, 0x25, 0x48, 0x32,
+ 0x11, 0x1b, 0xa6, 0x90, 0x1c, 0xa7, 0x4d, 0x02,
+ 0x40, 0x30, 0xc4, 0x48, 0x45, 0x02, 0x36, 0x48,
+ 0xca, 0xa8, 0x25, 0xc2, 0x38, 0x04, 0xc3, 0x18,
+ 0x64, 0x20, 0x33, 0x82, 0xda, 0x22, 0x22, 0x9c,
+ 0x94, 0x01, 0xe1, 0x90, 0x25, 0xc2, 0x36, 0x82,
+ 0x50, 0x40, 0x6e, 0xe0, 0x44, 0x6e, 0x10, 0x40,
+ 0x51, 0xe0, 0x46, 0x00, 0x20, 0x40, 0x11, 0x04,
+ 0x99, 0x24, 0xd4, 0x04, 0x64, 0xd3, 0x20, 0x12,
+ 0x0b, 0x23, 0x12, 0x0b, 0x02, 0x2c, 0x88, 0xa0,
+ 0x41, 0x49, 0xa2, 0x10, 0xd0, 0xa6, 0x60, 0x24,
+ 0x93, 0x01, 0x24, 0x10, 0x80, 0x42, 0xc2, 0x50,
+ 0x1a, 0x21, 0x31, 0x62, 0x88, 0x0c, 0x08, 0xc7,
+ 0x6d, 0x84, 0x16, 0x2c, 0x1c, 0xc6, 0x2d, 0xe0,
+ 0x30, 0x06, 0x22, 0x04, 0x8c, 0x08, 0x47, 0x32,
+ 0x44, 0x06, 0x88, 0x18, 0x28, 0x12, 0x0c, 0xc1,
+ 0x8d, 0x8b, 0x48, 0x21, 0xcc, 0x44, 0x04, 0x02,
+ 0xc3, 0x85, 0x90, 0xb6, 0x64, 0x0b, 0x30, 0x45,
+ 0xa0, 0xa8, 0x88, 0x4a, 0xc8, 0x24, 0x5a, 0x32,
+ 0x4d, 0xa0, 0x98, 0x48, 0xe4, 0x82, 0x88, 0x1a,
+ 0x97, 0x44, 0x18, 0x32, 0x8c, 0x0b, 0x29, 0x45,
+ 0x9c, 0x96, 0x65, 0x14, 0xc0, 0x2d, 0xe0, 0xb8,
+ 0x4c, 0x09, 0x07, 0x05, 0x14, 0xc3, 0x70, 0x23,
+ 0x36, 0x64, 0x4a, 0x16, 0x80, 0x19, 0x83, 0x00,
+ 0x8c, 0x02, 0x05, 0x13, 0x21, 0x4a, 0x63, 0x08,
+ 0x51, 0x14, 0x16, 0x00, 0x54, 0x30, 0x45, 0x43,
+ 0xb0, 0x84, 0x1a, 0x45, 0x44, 0x23, 0xb0, 0x4c,
+ 0x14, 0x89, 0x68, 0xd1, 0xc4, 0x88, 0x12, 0x00,
+ 0x42, 0x90, 0x34, 0x52, 0x0b, 0x84, 0x31, 0xdc,
+ 0x40, 0x2d, 0x64, 0x32, 0x70, 0x14, 0x95, 0x4d,
+ 0xe2, 0xa0, 0x89, 0xc1, 0x10, 0x85, 0xd8, 0xb0,
+ 0x68, 0x0a, 0xb1, 0x30, 0x49, 0xa2, 0x90, 0x8c,
+ 0xc0, 0x00, 0x1c, 0x86, 0x25, 0x09, 0x10, 0x42,
+ 0x0c, 0x08, 0x42, 0x89, 0x08, 0x41, 0x13, 0xb3,
+ 0x05, 0x81, 0x26, 0x6d, 0xd9, 0x12, 0x91, 0xe2,
+ 0xb4, 0x61, 0x84, 0x20, 0x0d, 0x49, 0x92, 0x70,
+ 0x89, 0x46, 0x01, 0x23, 0x38, 0x30, 0x52, 0x14,
+ 0x48, 0x40, 0x92, 0x40, 0x20, 0xb7, 0x08, 0x22,
+ 0x89, 0x0d, 0x14, 0x95, 0x4c, 0xcb, 0x92, 0x61,
+ 0x04, 0x15, 0x8d, 0x50, 0x38, 0x90, 0x81, 0x14,
+ 0x86, 0xe1, 0x42, 0x2c, 0x0b, 0x93, 0x20, 0xd1,
+ 0x14, 0x10, 0x54, 0xc8, 0x88, 0x99, 0x86, 0x31,
+ 0x11, 0x37, 0x71, 0x22, 0x00, 0x68, 0xa2, 0x00,
+ 0x2c, 0x13, 0x47, 0x08, 0x84, 0xa4, 0x60, 0x4a,
+ 0xb2, 0x51, 0x1b, 0xb3, 0x0d, 0x09, 0x45, 0x25,
+ 0x9a, 0x10, 0x4a, 0xc4, 0xa4, 0x91, 0x14, 0x35,
+ 0x6e, 0xe1, 0x28, 0x0c, 0xe1, 0x24, 0x48, 0xc4,
+ 0x36, 0x8d, 0x62, 0x40, 0x0d, 0x13, 0x00, 0x6d,
+ 0xa2, 0x98, 0x70, 0x9b, 0x46, 0x51, 0xa1, 0xa4,
+ 0x40, 0x24, 0x28, 0x71, 0x84, 0x02, 0x6a, 0xd0,
+ 0x80, 0x88, 0xe1, 0x38, 0x0c, 0x03, 0x09, 0x08,
+ 0xc0, 0x86, 0x0c, 0xc2, 0xc8, 0x8c, 0x01, 0x07,
+ 0x8d, 0x42, 0x82, 0x10, 0x23, 0xc3, 0x08, 0x13,
+ 0x14, 0x30, 0x14, 0xa6, 0x51, 0x00, 0xa9, 0x51,
+ 0xda, 0x12, 0x6a, 0xe1, 0x90, 0x21, 0x1c, 0x03,
+ 0x8c, 0xda, 0xa0, 0x90, 0x94, 0xa2, 0x68, 0xe4,
+ 0x30, 0x81, 0xa4, 0x94, 0x21, 0x00, 0x97, 0x65,
+ 0x01, 0xa7, 0x20, 0x18, 0xa6, 0x70, 0x40, 0x06,
+ 0x72, 0xca, 0x48, 0x40, 0x04, 0x23, 0x0d, 0xc1,
+ 0x48, 0x61, 0x92, 0x94, 0x8d, 0x59, 0x10, 0x04,
+ 0x13, 0x38, 0x4c, 0xe4, 0xb6, 0x10, 0x01, 0x43,
+ 0x21, 0x1c, 0x19, 0x0d, 0x04, 0x28, 0x8e, 0xd2,
+ 0x04, 0x8e, 0x83, 0xa4, 0x05, 0x8a, 0xa8, 0x65,
+ 0x20, 0x08, 0x6e, 0x01, 0x29, 0x66, 0x24, 0x17,
+ 0x08, 0x19, 0x21, 0x48, 0x10, 0xb2, 0x2d, 0xd1,
+ 0x04, 0x8d, 0x0c, 0x45, 0x6d, 0x5a, 0x92, 0x6c,
+ 0x08, 0x18, 0x89, 0x80, 0x20, 0x44, 0x54, 0x08,
+ 0x0a, 0x83, 0x28, 0x70, 0x1b, 0x41, 0x06, 0xc1,
+ 0x02, 0x49, 0x09, 0x42, 0x50, 0x00, 0xc0, 0x41,
+ 0xd0, 0x90, 0x09, 0x61, 0x44, 0x0e, 0x4c, 0x02,
+ 0x51, 0x08, 0xc1, 0x2c, 0x00, 0x25, 0x04, 0x98,
+ 0x94, 0x10, 0x08, 0x32, 0x00, 0x02, 0x48, 0x24,
+ 0x40, 0xb0, 0x25, 0x93, 0x20, 0x89, 0x1c, 0x06,
+ 0x70, 0xd1, 0xa6, 0x4c, 0xc2, 0x34, 0x86, 0x22,
+ 0xc7, 0x30, 0xdb, 0xc0, 0x41, 0x4b, 0xa2, 0x45,
+ 0x0b, 0x29, 0x21, 0x82, 0x98, 0x0c, 0xc3, 0x94,
+ 0x71, 0x0a, 0x39, 0x42, 0x23, 0x24, 0x4c, 0x19,
+ 0x36, 0x82, 0x93, 0x06, 0x28, 0x4b, 0x16, 0x04,
+ 0xd9, 0x82, 0x01, 0xd1, 0x18, 0x50, 0x4b, 0x90,
+ 0x61, 0x89, 0xb4, 0x45, 0x23, 0x81, 0x89, 0xd3,
+ 0xa6, 0x50, 0x23, 0x92, 0x24, 0x1c, 0x06, 0x68,
+ 0xc8, 0x32, 0x86, 0x0a, 0x93, 0x49, 0xe2, 0x18,
+ 0x6c, 0x41, 0x16, 0x08, 0x1c, 0x17, 0x44, 0xa0,
+ 0x12, 0x28, 0x42, 0x46, 0x50, 0x80, 0x12, 0x72,
+ 0x21, 0x94, 0x25, 0x0a, 0x81, 0x00, 0x13, 0xa2,
+ 0x49, 0xa4, 0x38, 0x85, 0x0b, 0x16, 0x04, 0x08,
+ 0xa7, 0x69, 0x0a, 0x47, 0x4d, 0xd0, 0x94, 0x11,
+ 0x81, 0x16, 0x6d, 0x12, 0x87, 0x69, 0xa1, 0x80,
+ 0x6d, 0x01, 0xc9, 0x80, 0x98, 0xa4, 0x2c, 0x11,
+ 0x88, 0x65, 0x1a, 0x35, 0x91, 0x84, 0xb6, 0x24,
+ 0x11, 0x47, 0x8e, 0x94, 0xb0, 0x4c, 0x03, 0x96,
+ 0x05, 0x00, 0x01, 0x04, 0x64, 0xa6, 0x10, 0xc9,
+ 0xb4, 0x50, 0xa1, 0x96, 0x70, 0xc2, 0x84, 0x71,
+ 0x1b, 0x24, 0x66, 0x04, 0x15, 0x0a, 0x9c, 0x34,
+ 0x29, 0x5b, 0x08, 0x25, 0x53, 0x46, 0x12, 0xd8,
+ 0x36, 0x26, 0x5c, 0x40, 0x09, 0x52, 0xa6, 0x4c,
+ 0x1b, 0xa6, 0x05, 0xe2, 0x10, 0x22, 0x48, 0x24,
+ 0x6a, 0xd4, 0xc0, 0x20, 0x62, 0x42, 0x60, 0x04,
+ 0xc8, 0x49, 0x10, 0x40, 0x25, 0x04, 0x43, 0x09,
+ 0x4c, 0xb6, 0x81, 0x11, 0x45, 0x86, 0x58, 0x30,
+ 0x6e, 0x48, 0x02, 0x0a, 0x04, 0x45, 0x01, 0xc9,
+ 0x06, 0x72, 0x02, 0xa2, 0x88, 0x90, 0x34, 0x48,
+ 0x61, 0x80, 0x25, 0x02, 0xa2, 0x85, 0x90, 0x26,
+ 0x41, 0x02, 0xc6, 0x70, 0x62, 0xc8, 0x30, 0x0c,
+ 0xc6, 0x11, 0x0c, 0x98, 0x49, 0x04, 0x42, 0x2c,
+ 0x0a, 0x28, 0x44, 0x58, 0x44, 0x10, 0x82, 0x26,
+ 0x11, 0x64, 0xa6, 0x08, 0x19, 0x48, 0x64, 0x19,
+ 0x95, 0x89, 0x1c, 0x87, 0x50, 0x03, 0x06, 0x29,
+ 0x5c, 0x16, 0x48, 0x4a, 0xa0, 0x2c, 0xcb, 0x06,
+ 0x30, 0xd2, 0xb8, 0x25, 0x50, 0x44, 0x92, 0x40,
+ 0x08, 0x71, 0xdc, 0x06, 0x45, 0x8b, 0x36, 0x8d,
+ 0xe2, 0xb8, 0x61, 0x03, 0xc4, 0x29, 0x00, 0x82,
+ 0x48, 0x20, 0x04, 0x6c, 0x0a, 0xb7, 0x84, 0x91,
+ 0x94, 0x50, 0x1c, 0x10, 0x01, 0x4c, 0x80, 0x41,
+ 0x44, 0x96, 0x0d, 0x03, 0x01, 0x28, 0x09, 0x26,
+ 0x51, 0x0a, 0xa9, 0x41, 0x24, 0x25, 0x64, 0x02,
+ 0x48, 0x8a, 0x18, 0xa0, 0x71, 0x18, 0x36, 0x88,
+ 0x00, 0x17, 0x72, 0x4c, 0xb0, 0x91, 0x22, 0xa1,
+ 0x85, 0x5c, 0xc2, 0x64, 0x04, 0x06, 0x4d, 0x11,
+ 0xa2, 0x01, 0x82, 0x48, 0x31, 0x49, 0x38, 0x69,
+ 0x0b, 0x49, 0x0c, 0x02, 0x89, 0x4d, 0xa2, 0xa4,
+ 0x4d, 0x48, 0x10, 0x90, 0x24, 0x21, 0x52, 0x82,
+ 0xa4, 0x00, 0x54, 0x82, 0x10, 0x19, 0x25, 0x72,
+ 0x13, 0x27, 0x92, 0x12, 0x38, 0x2a, 0x44, 0x12,
+ 0x05, 0x08, 0xb1, 0x85, 0x0b, 0x28, 0x24, 0x14,
+ 0xb4, 0x29, 0x5b, 0x00, 0x45, 0x49, 0x20, 0x49,
+ 0x82, 0x46, 0x0e, 0x9b, 0xa8, 0x45, 0x12, 0xa6,
+ 0x30, 0x0b, 0x24, 0x81, 0x01, 0x29, 0x71, 0x1b,
+ 0x15, 0x04, 0x10, 0x92, 0x25, 0x80, 0x40, 0x20,
+ 0x20, 0x28, 0x40, 0xdc, 0xa2, 0x4d, 0x24, 0x21,
+ 0x41, 0x04, 0x02, 0x28, 0xd4, 0x08, 0x24, 0x50,
+ 0x40, 0x69, 0xe0, 0x04, 0x4e, 0x61, 0x24, 0x4e,
+ 0x12, 0x44, 0x61, 0x89, 0x24, 0x82, 0x1b, 0x10,
+ 0x11, 0x1b, 0x13, 0x71, 0x91, 0x42, 0x62, 0x8b,
+ 0x00, 0x22, 0x64, 0x44, 0x84, 0xc2, 0x42, 0x72,
+ 0x0c, 0xa3, 0x24, 0x19, 0x38, 0x70, 0x8a, 0x08,
+ 0x31, 0x19, 0x04, 0x68, 0x09, 0x14, 0x50, 0x20,
+ 0xb2, 0x6c, 0x51, 0x00, 0x64, 0x4b, 0xc4, 0x61,
+ 0x23, 0x27, 0x31, 0x0c, 0x45, 0x64, 0x5b, 0x10,
+ 0x02, 0xa0, 0x00, 0x88, 0x99, 0xa6, 0x4d, 0xc0,
+ 0xa4, 0x68, 0x83, 0x26, 0x86, 0x20, 0xc5, 0x70,
+ 0x89, 0x04, 0x2d, 0xd1, 0x44, 0x46, 0xa2, 0x06,
+ 0x71, 0x5c, 0x40, 0x42, 0xa2, 0x94, 0x4c, 0x92,
+ 0x16, 0x85, 0x8a, 0x26, 0x48, 0x22, 0xa8, 0x88,
+ 0xa2, 0x32, 0x82, 0x08, 0xb6, 0x60, 0x60, 0x44,
+ 0x31, 0x13, 0x01, 0x4c, 0x51, 0xb0, 0x29, 0x9c,
+ 0x10, 0x70, 0x09, 0x38, 0x8d, 0x80, 0x08, 0x29,
+ 0xc8, 0x24, 0x68, 0x63, 0x26, 0x00, 0x19, 0x28,
+ 0x6a, 0x01, 0x94, 0x2d, 0x54, 0x92, 0x49, 0x0c,
+ 0x91, 0x29, 0x81, 0x14, 0x02, 0x01, 0x00, 0x81,
+ 0xda, 0xa8, 0x8d, 0x90, 0x34, 0x88, 0x00, 0x44,
+ 0x69, 0xa3, 0x12, 0x2e, 0x50, 0x02, 0x11, 0x18,
+ 0xb5, 0x04, 0xd4, 0xc6, 0x21, 0x02, 0x46, 0x00,
+ 0xc4, 0xb0, 0x65, 0xd2, 0x36, 0x31, 0x09, 0xc6,
+ 0x44, 0x5b, 0x26, 0x52, 0xe1, 0xc4, 0x61, 0x43,
+ 0xb2, 0x68, 0x24, 0x02, 0x04, 0x92, 0xa2, 0x0d,
+ 0x0a, 0x93, 0x09, 0xd2, 0x20, 0x22, 0x1c, 0x97,
+ 0x60, 0x44, 0x18, 0x11, 0x51, 0xc6, 0x6d, 0x01,
+ 0xa4, 0x05, 0xcb, 0x30, 0x6c, 0xda, 0x02, 0x8a,
+ 0x19, 0x06, 0x45, 0x24, 0xa6, 0x0d, 0x51, 0x32,
+ 0x49, 0xcb, 0x12, 0x09, 0x5a, 0xc2, 0x65, 0x99,
+ 0x32, 0x51, 0x62, 0x10, 0x52, 0x01, 0x81, 0x4d,
+ 0x1a, 0x49, 0x51, 0x00, 0x45, 0x69, 0x13, 0x47,
+ 0x50, 0x12, 0x90, 0x44, 0x54, 0x96, 0x65, 0x00,
+ 0x06, 0x52, 0x03, 0x39, 0x80, 0x44, 0x82, 0x88,
+ 0x94, 0x80, 0x30, 0xe3, 0x44, 0x6e, 0xe4, 0x00,
+ 0x62, 0x08, 0x97, 0x45, 0x03, 0x46, 0x51, 0x50,
+ 0x30, 0x88, 0x64, 0x44, 0x86, 0x1a, 0x06, 0x48,
+ 0x55, 0x15, 0x7d, 0x51, 0xdd, 0xfd, 0x05, 0x5a,
+ 0x67, 0xfb, 0x6d, 0x06, 0x10, 0xf8, 0xf3, 0x41,
+ 0x6c, 0x7a, 0x54, 0xaa, 0xd3, 0xba, 0xb8, 0x10,
+ 0x11, 0x9d, 0x7b, 0xf8, 0xda, 0xa6, 0x96, 0x54,
+ 0xa3, 0x4d, 0xad, 0x4c, 0x6f, 0x38, 0x4d, 0x2c,
+ 0x64, 0x43, 0xdf, 0xe6, 0x6c, 0x2d, 0x92, 0xbd,
+ 0x22, 0xa3, 0x54, 0x3a, 0x34, 0x94, 0x37, 0x71,
+ 0x7d, 0xdd, 0x52, 0x24, 0x23, 0x7e, 0x15, 0xd0,
+ 0x15, 0xac, 0x4c, 0x79, 0x53, 0x67, 0x0e, 0x18,
+ 0x28, 0xb4, 0x13, 0x1e, 0x46, 0x83, 0x54, 0xdd,
+ 0xfd, 0x4d, 0x74, 0xce, 0x56, 0x9e, 0x99, 0x61,
+ 0xa9, 0x29, 0xa0, 0x6f, 0x1b, 0x2b, 0x11, 0x9a,
+ 0xe5, 0xde, 0x6d, 0xea, 0x11, 0x7a, 0x31, 0xbe,
+ 0xfd, 0x52, 0x0f, 0x91, 0xab, 0x5b, 0x87, 0xd7,
+ 0xc0, 0x26, 0xaf, 0xff, 0xaa, 0xd9, 0xcb, 0x17,
+ 0x83, 0x19, 0xf2, 0x01, 0x93, 0xb3, 0x5b, 0x71,
+ 0xdc, 0xc6, 0x30, 0x62, 0x92, 0xe8, 0x5b, 0xbd,
+ 0x6e, 0x86, 0x0a, 0xd3, 0x25, 0x87, 0xc6, 0x4c,
+ 0x41, 0xf0, 0xe8, 0xec, 0x01, 0x28, 0xf1, 0xbd,
+ 0x5b, 0x16, 0x8e, 0xf4, 0xdb, 0x54, 0x5d, 0xb6,
+ 0x4e, 0x74, 0x9a, 0x78, 0x98, 0x27, 0x63, 0x22,
+ 0xb1, 0x2f, 0x6a, 0x48, 0x9e, 0x3a, 0x5a, 0x22,
+ 0x52, 0xb4, 0x83, 0xf4, 0x6e, 0xe0, 0x28, 0xe9,
+ 0x98, 0xe7, 0xb7, 0xd7, 0x13, 0xcd, 0xa7, 0xad,
+ 0xb0, 0x56, 0xa4, 0xd2, 0xee, 0xed, 0xf4, 0x6c,
+ 0xb0, 0xe2, 0xd8, 0x4d, 0x9d, 0x5f, 0xe5, 0x6c,
+ 0x2f, 0xb2, 0x78, 0x06, 0x7a, 0x8e, 0xca, 0x53,
+ 0x3a, 0x60, 0xef, 0x35, 0xf0, 0xa6, 0x81, 0x6d,
+ 0x6c, 0xbf, 0x74, 0xaa, 0x7c, 0x0d, 0x93, 0x65,
+ 0x63, 0xfa, 0x0f, 0x61, 0x74, 0xa2, 0x19, 0x06,
+ 0x2c, 0x6d, 0x08, 0x7e, 0x35, 0x1d, 0x91, 0xed,
+ 0x88, 0xa8, 0xa9, 0x1b, 0xf8, 0x65, 0xc3, 0xc6,
+ 0xc5, 0xab, 0xa5, 0x7c, 0x84, 0x29, 0xda, 0x0e,
+ 0xb9, 0x45, 0x82, 0xd2, 0xa3, 0x11, 0x19, 0x6d,
+ 0xe3, 0x2e, 0x86, 0xd8, 0xf0, 0x25, 0x76, 0x8b,
+ 0xb4, 0xdb, 0xb3, 0x97, 0x0f, 0xa4, 0x1d, 0x68,
+ 0x5d, 0x07, 0x09, 0xbd, 0x67, 0x69, 0x26, 0xb0,
+ 0x9f, 0xfa, 0x63, 0xe5, 0xe7, 0x16, 0x56, 0xc3,
+ 0x23, 0x1c, 0xd3, 0xd9, 0xc7, 0x77, 0x22, 0x18,
+ 0x94, 0x54, 0x56, 0x40, 0x83, 0xa8, 0xdd, 0x02,
+ 0xd8, 0xcc, 0x0c, 0x01, 0xe9, 0x17, 0xff, 0xb2,
+ 0x51, 0x49, 0xaa, 0xdc, 0xc1, 0x29, 0xf5, 0x93,
+ 0x68, 0x81, 0xd9, 0xe8, 0xe2, 0x5a, 0x7c, 0x91,
+ 0x6e, 0xb0, 0x59, 0x36, 0xfb, 0x50, 0xd7, 0x55,
+ 0x3d, 0x8e, 0x55, 0xca, 0x5b, 0xa9, 0x17, 0x6b,
+ 0xeb, 0x71, 0x97, 0xe1, 0xea, 0xba, 0xd4, 0x4b,
+ 0xfb, 0x17, 0x11, 0x50, 0x7e, 0x4d, 0x67, 0x0e,
+ 0xd6, 0x80, 0x8a, 0xcb, 0x93, 0x86, 0x14, 0x4a,
+ 0xc1, 0x40, 0x42, 0x96, 0x00, 0x7b, 0xf4, 0x76,
+ 0xef, 0x3a, 0x4f, 0xd8, 0x14, 0x7a, 0xdf, 0x4d,
+ 0x7b, 0x46, 0x59, 0x2f, 0x20, 0xb6, 0x0d, 0x49,
+ 0x6c, 0xc2, 0xfe, 0x3d, 0xe7, 0x2a, 0x65, 0x90,
+ 0x02, 0x05, 0xf8, 0xe3, 0xed, 0x56, 0x08, 0x2e,
+ 0x41, 0x5a, 0x84, 0x18, 0x6f, 0xb4, 0x46, 0xdd,
+ 0x92, 0x02, 0x1a, 0x10, 0x32, 0x29, 0x8e, 0x65,
+ 0x4f, 0x65, 0x6c, 0xc5, 0xbe, 0xac, 0x2f, 0xf1,
+ 0x41, 0x12, 0xdd, 0x29, 0x3a, 0x7a, 0xae, 0xea,
+ 0xbb, 0x1c, 0x54, 0x92, 0x35, 0xa2, 0x74, 0x0f,
+ 0x3c, 0x59, 0x38, 0x4b, 0x79, 0x4d, 0x93, 0x4c,
+ 0xbb, 0xc6, 0x5e, 0x77, 0x39, 0x4a, 0x1d, 0x8e,
+ 0x2c, 0x2c, 0x5a, 0x85, 0x98, 0x63, 0xd3, 0x6a,
+ 0x3d, 0x11, 0x60, 0x50, 0xf3, 0xb7, 0xff, 0x61,
+ 0x48, 0x2d, 0x3c, 0xb0, 0x9b, 0x7b, 0x6b, 0xa8,
+ 0x7a, 0x6e, 0x94, 0xcc, 0x39, 0x33, 0x5b, 0x1d,
+ 0x58, 0x10, 0x82, 0xf3, 0x95, 0x13, 0xed, 0x9b,
+ 0x44, 0xdc, 0xab, 0x76, 0x30, 0xad, 0x14, 0x70,
+ 0xf2, 0xd4, 0x71, 0xfc, 0x10, 0x35, 0x75, 0xc9,
+ 0xec, 0x59, 0x0c, 0x6f, 0x55, 0xb7, 0x1b, 0x03,
+ 0x71, 0xa6, 0x5a, 0x29, 0x13, 0x63, 0xaf, 0xa0,
+ 0xc2, 0xd0, 0x0f, 0x8f, 0xb2, 0x8b, 0x7b, 0x46,
+ 0xe8, 0x0d, 0xeb, 0xe9, 0xb0, 0xcd, 0x43, 0xa2,
+ 0x30, 0x9f, 0x35, 0x88, 0xdb, 0x71, 0x32, 0x7d,
+ 0x40, 0x64, 0xfd, 0xed, 0x35, 0x28, 0xf5, 0x98,
+ 0x92, 0x97, 0x87, 0xcc, 0xdf, 0x00, 0xc4, 0xb8,
+ 0xc9, 0xf6, 0xf4, 0x2c, 0x41, 0x21, 0x91, 0x60,
+ 0xc4, 0xab, 0x86, 0xb7, 0x10, 0xeb, 0x0a, 0x17,
+ 0xba, 0xad, 0x3c, 0xc6, 0x0b, 0xe4, 0x4c, 0xbc,
+ 0xf3, 0x10, 0xda, 0x1e, 0x41, 0x69, 0xa0, 0x15,
+ 0x9f, 0x8a, 0x8e, 0x2f, 0xf6, 0x30, 0xa7, 0xed,
+ 0x37, 0xa2, 0x7c, 0x5f, 0x5a, 0x3a, 0xab, 0x3f,
+ 0x79, 0xa9, 0x7d, 0x7c, 0xb6, 0x98, 0x4a, 0x15,
+ 0x4c, 0x30, 0xff, 0xcd, 0x2e, 0x7e, 0x56, 0xc7,
+ 0xe4, 0x42, 0xd3, 0x52, 0x60, 0x3e, 0x5b, 0x9f,
+ 0x8d, 0xc9, 0x13, 0x58, 0x88, 0x68, 0xc5, 0x66,
+ 0xed, 0x68, 0x82, 0x00, 0x05, 0xf4, 0x08, 0x22,
+ 0xbd, 0x7a, 0x75, 0xad, 0xb8, 0xb2, 0xd6, 0xfa,
+ 0x53, 0x4e, 0xa5, 0x4b, 0xdc, 0x40, 0x53, 0x77,
+ 0x0a, 0x9e, 0x9e, 0xb5, 0xc3, 0xed, 0x9d, 0x6d,
+ 0xf2, 0xeb, 0xe3, 0xd1, 0x59, 0x27, 0xe4, 0x2a,
+ 0x14, 0x1a, 0x4e, 0x07, 0xdc, 0x5e, 0xb8, 0xe6,
+ 0x99, 0x63, 0x63, 0x02, 0x2a, 0x35, 0x6c, 0xa3,
+ 0xae, 0xe8, 0x8b, 0xb4, 0x20, 0xf2, 0x1a, 0x62,
+ 0xd9, 0x11, 0xe8, 0x67, 0xe5, 0x2f, 0x9f, 0xce,
+ 0x76, 0x5f, 0x86, 0x00, 0xe9, 0xea, 0x18, 0x40,
+ 0x71, 0xde, 0xf6, 0x25, 0x37, 0xef, 0x09, 0x98,
+ 0x90, 0x16, 0xc7, 0x95, 0xd1, 0x79, 0x07, 0x6e,
+ 0x9a, 0x81, 0xcd, 0x35, 0x5f, 0x87, 0xbd, 0xcd,
+ 0x13, 0x8f, 0x16, 0x37, 0xf2, 0x42, 0x2e, 0xc2,
+ 0xc2, 0xc5, 0x98, 0xda, 0x75, 0x52, 0x95, 0x46,
+ 0xb0, 0xf0, 0xd2, 0x61, 0x8d, 0x52, 0x9d, 0x81,
+ 0xd2, 0xcb, 0x7b, 0x10, 0x13, 0x14, 0x99, 0x58,
+ 0x16, 0x31, 0x31, 0x4f, 0x61, 0xc0, 0xdb, 0xf5,
+ 0x26, 0xf3, 0x07, 0xd5, 0xd8, 0x43, 0xfa, 0x44,
+ 0x6d, 0xd1, 0x07, 0x6b, 0x3b, 0xc2, 0x51, 0x5d,
+ 0x39, 0xa6, 0x65, 0xd4, 0x8e, 0x06, 0x88, 0xe5,
+ 0x9d, 0xc4, 0xe5, 0x19, 0x99, 0x14, 0x11, 0x77,
+ 0xad, 0x20, 0x05, 0x70, 0x0f, 0xc5, 0x29, 0xa2,
+ 0x78, 0x3e, 0x6e, 0x63, 0xff, 0x21, 0xd4, 0x65,
+ 0xe9, 0xcc, 0x36, 0x70, 0x02, 0x2d, 0x62, 0x84,
+ 0xfa, 0xfe, 0xff, 0x31, 0x29, 0x38, 0x0c, 0x93,
+ 0x7d, 0xb3, 0xb4, 0xeb, 0x08, 0xe6, 0xd2, 0x63,
+ 0xd9, 0x21, 0x70, 0x70, 0x48, 0xc4, 0xb2, 0x44,
+ 0xee, 0xd2, 0x50, 0x05, 0xac, 0xa6, 0x1b, 0x4f,
+ 0xd8, 0xa8, 0x8b, 0xa9, 0x84, 0x60, 0x05, 0x63,
+ 0xa0, 0x79, 0xab, 0xf4, 0xcb, 0x3b, 0x68, 0x37,
+ 0xfa, 0xb0, 0x2e, 0x42, 0x12, 0xd6, 0x04, 0x4b,
+ 0x69, 0x22, 0xa3, 0x0d, 0xab, 0x6a, 0x54, 0xa7,
+ 0x6d, 0xf8, 0xa0, 0x9a, 0xc6, 0xe3, 0x28, 0xa1,
+ 0x89, 0x44, 0xed, 0x5c, 0x69, 0x4f, 0xad, 0xfd,
+ 0xc0, 0x22, 0xd4, 0x04, 0x93, 0xba, 0x1f, 0x1c,
+ 0x94, 0x46, 0x5f, 0xbb, 0x04, 0x0f, 0x23, 0xcc,
+ 0xf1, 0xbe, 0x47, 0x6a, 0x04, 0xad, 0x89, 0x61,
+ 0xbe, 0x65, 0xa5, 0x98, 0x39, 0x36, 0x78, 0x80,
+ 0xf7, 0x18, 0xfc, 0x46, 0xed, 0xfa, 0x34, 0x85,
+ 0x42, 0xfe, 0x5b, 0x32, 0xe1, 0xe6, 0x47, 0x1b,
+ 0x0f, 0x84, 0x74, 0xb7, 0x30, 0xfd, 0xd8, 0xed,
+ 0x05, 0xa4, 0xc8, 0xe0, 0x48, 0x54, 0xe3, 0xa4,
+ 0x0f, 0x63, 0xdc, 0x84, 0x8d, 0xfa, 0x29, 0xe7,
+ 0x57, 0xd0, 0x60, 0x9d, 0x80, 0x86, 0x22, 0x35,
+ 0xb3, 0x13, 0x11, 0x44, 0x53, 0x18, 0xc9, 0x9f,
+ 0x30, 0xf1, 0xd4, 0xbe, 0x93, 0xf8, 0x07, 0x3e,
+ 0xfd, 0x36, 0x29, 0xef, 0x40, 0x73, 0x14, 0xe9,
+ 0xdd, 0xa9, 0x87, 0xcb, 0x5a, 0xac, 0x15, 0x43,
+ 0x54, 0xe0, 0xe8, 0x94, 0xf9, 0x3a, 0x5a, 0xd8,
+ 0xde, 0x10, 0xab, 0xef, 0x86, 0x4d, 0xd3, 0x0a,
+ 0xd5, 0xc7, 0xaa, 0x42, 0xea, 0x0f, 0x44, 0xfb,
+ 0x7e, 0x43, 0x90, 0x74, 0xee, 0x84, 0xbb, 0xab,
+ 0xd9, 0x63, 0xf6, 0xbb, 0x8b, 0x92, 0x36, 0xe7,
+ 0xbe, 0x46, 0x39, 0x62, 0x11, 0xc5, 0xed, 0x3b,
+ 0xd2, 0x1e, 0xb2, 0xe0, 0xe3, 0x12, 0x8d, 0x89,
+ 0x9a, 0xcb, 0x35, 0x55, 0x39, 0x5a, 0xdc, 0x95,
+ 0x4f, 0x47, 0xa1, 0x3d, 0x69, 0x69, 0x35, 0xb2,
+ 0xc0, 0x79, 0x5e, 0xd5, 0x9d, 0x77, 0x20, 0x5b,
+ 0x05, 0x4d, 0xc9, 0xef, 0x2c, 0xed, 0x2f, 0x82,
+ 0xd0, 0x7a, 0x85, 0x70, 0xc1, 0x7e, 0x08, 0x37,
+ 0x6f, 0xf9, 0x80, 0x33, 0xd3, 0x92, 0xda, 0x21,
+ 0xaa, 0x4f, 0xb5, 0x77, 0xdb, 0x5d, 0x54, 0x1f,
+ 0x0f, 0x47, 0x33, 0x35, 0xa2, 0x50, 0x24, 0xfd,
+ 0x6c, 0x6e, 0xc7, 0x86, 0x54, 0xe4, 0xaf, 0x03,
+ 0x80, 0x3a, 0x34, 0xa2, 0xa3, 0x59, 0xfd, 0xc5,
+ 0xbf, 0xc9, 0x36, 0xe7, 0x63, 0x09, 0xc9, 0xf4,
+ 0x18, 0x90, 0xc6, 0x1c, 0x83, 0x70, 0xf4, 0x3f,
+ 0xca, 0xa8, 0xda, 0x14, 0xb4, 0x5a, 0xbb, 0x0c,
+ 0xf1, 0x42, 0xfa, 0xe8, 0xb4, 0x7d, 0x31, 0x52,
+ 0xbc, 0x9c, 0x03, 0x70, 0x3f, 0x0f, 0x26, 0x89,
+ 0x5b, 0xdd, 0xee, 0xf7, 0xcf, 0x94, 0x26, 0xa1,
+ 0x21, 0x54, 0x69, 0x4f, 0x40, 0xdd, 0x29, 0x61,
+ 0x43, 0xdb, 0x43, 0x9c, 0x54, 0xca, 0x96, 0x17,
+ 0x6f, 0xbc, 0xfe, 0x9b, 0x19, 0x45, 0xa8, 0x11,
+ 0x65, 0x4f, 0x6a, 0xe5, 0x97, 0xcf, 0x93, 0x27,
+ 0x2a, 0xfc, 0x7f, 0xf5, 0x37, 0x7f, 0xd3, 0x5c,
+ 0x35, 0xc7, 0x22, 0x23, 0x02, 0x1f, 0xec, 0xba,
+ 0xbf, 0x0d, 0x25, 0x90, 0x81, 0x3e, 0x9e, 0xcd,
+ 0x4c, 0xfd, 0x7c, 0x25, 0xea, 0xe4, 0xe1, 0xfe,
+ 0x31, 0xc8, 0x63, 0x2e, 0x57, 0xe0, 0xed, 0x68,
+ 0x0e, 0x77, 0xba, 0xb5, 0x70, 0x36, 0xf9, 0xb7,
+ 0x00, 0x7e, 0xb1, 0x36, 0x35, 0xab, 0x23, 0xc6,
+ 0x76, 0x06, 0x18, 0x10, 0x3d, 0x6c, 0xc0, 0x11,
+ 0x49, 0x28, 0x1a, 0x11, 0x1d, 0xa3, 0xab, 0x5c,
+ 0x4b, 0xb0, 0x60, 0x6f, 0xd3, 0x06, 0xc5, 0x54,
+ 0x0b, 0x3f, 0x65, 0x2b, 0x42, 0x58, 0x9d, 0x32,
+ 0x40, 0x6f, 0x90, 0x04, 0x33, 0xc5, 0xbd, 0xad,
+ 0x5e, 0xb0, 0x13, 0xe4, 0x32, 0x6c, 0x56, 0xc4,
+ 0x47, 0x2e, 0xdc, 0xa7, 0x84, 0xb8, 0xf2, 0xd9,
+ 0x39, 0x0b, 0x42, 0xbc, 0x45, 0x07, 0xb4, 0xc6,
+ 0xf0, 0xc2, 0x94, 0xca, 0xb3, 0x4e, 0x8c, 0xe4,
+ 0x73, 0x9b, 0x32, 0xd7, 0x37, 0x31, 0x22, 0x28,
+ 0xf3, 0xf1, 0x92, 0xd1, 0xe8, 0xdf, 0xc4, 0xbd,
+ 0xce, 0x9b, 0x59, 0xd0, 0x70, 0x43, 0x8e, 0xb5,
+ 0xc8, 0x60, 0xd0, 0x2f, 0x06, 0x27, 0x1f, 0x1d,
+ 0xdc, 0x76, 0x6a, 0xfd, 0xdc, 0xec, 0xf0, 0x38,
+ 0x5e, 0xca, 0x3a, 0xdf, 0xeb, 0x4b, 0xa3, 0xbb,
+ 0x64, 0xa9, 0x41, 0x08, 0x1b, 0xb2, 0xd8, 0x69,
+ 0x69, 0xfe, 0x9e, 0x30, 0x61, 0x79, 0xb0, 0x29,
+ 0xe4, 0x3b, 0xea, 0xb5, 0x3b, 0x5b, 0x0e, 0x0f,
+ 0xb2, 0x0f, 0x15, 0x1c, 0x2c, 0xf3, 0xa1, 0x3f,
+ 0xd4, 0x11, 0xc6, 0x20, 0xd1, 0x8b, 0xb6, 0x0c,
+ 0xad, 0xd0, 0x94, 0x3e, 0x48, 0xcc, 0xf4, 0x92,
+ 0x7e, 0xa8, 0x8a, 0x72, 0x37, 0xe4, 0xb1, 0xcb,
+ 0x51, 0xbc, 0x53, 0xac, 0x21, 0x3a, 0xfb, 0xb2,
+ 0x87, 0xf5, 0xba, 0xc9, 0xaf, 0x27, 0xa1, 0x20,
+ 0x67, 0x51, 0x3c, 0xf9, 0x37, 0x1d, 0x02, 0xfd,
+ 0x7e, 0xef, 0x1d, 0xfb, 0x09, 0x25, 0xe9, 0xa4,
+ 0xf6, 0x3f, 0x7b, 0x8a, 0x88, 0x16, 0xaf, 0x6d,
+ 0x40, 0xe1, 0xd9, 0xee, 0xca, 0x46, 0x89, 0x54,
+ 0x42, 0x29, 0x47, 0xfe, 0x2f, 0xa7, 0xfb, 0x73,
+ 0xda, 0xdb, 0x3b, 0x49, 0xb9, 0x1e, 0xaf, 0x39,
+ 0xd9, 0x4d, 0xc8, 0xcc, 0x53, 0x04, 0xd2, 0x50,
+ 0x18, 0xc9, 0xd4, 0x4a, 0xe1, 0x53, 0x18, 0xcc,
+ 0xff, 0x26, 0xb3, 0x38, 0xef, 0xf5, 0x26, 0x07,
+ 0x8e, 0x73, 0x1d, 0x89, 0xa6, 0x66, 0xaa, 0xff,
+ 0xf5, 0xa4, 0xc2, 0xd6, 0x38, 0x83, 0xd0, 0x9b,
+ 0x5f, 0x1c, 0xee, 0x8d, 0xd1, 0x1d, 0x1f, 0xb3,
+ 0x2f, 0x98, 0x12, 0x88, 0x47, 0xb2, 0x89, 0x26,
+ 0x5e, 0xa0, 0x13, 0x5f, 0xc9, 0x0e, 0x49, 0x02,
+ 0x4f, 0x6b, 0xf1, 0xf5, 0x10, 0xb9, 0x82, 0x8c,
+ 0xb7, 0xbb, 0x6b, 0xf5, 0x0b, 0x1b, 0x46, 0x96,
+ 0x55, 0x40, 0xd1, 0xf9, 0x06, 0x20, 0xc3, 0x54,
+ 0x0b, 0xc3, 0x48, 0x96, 0xfa, 0x9f, 0xdb, 0x51,
+ 0x93, 0xb1, 0x14, 0x64, 0x45, 0x9f, 0x5a, 0x76,
+ 0x0a, 0xc9, 0xab, 0x2a, 0xf7, 0x74, 0xc9, 0x1c,
+ 0x0f, 0x95, 0x32, 0x43, 0xd5, 0xa6, 0x86, 0x6f,
+ 0x53, 0x37, 0x1e, 0xc2, 0xb9, 0xd3, 0x42, 0x60,
+ 0x52, 0xbe, 0xf1, 0x60, 0x02, 0x8b, 0x91, 0x15,
+ 0x2c, 0x4b, 0x3b, 0x7d, 0x22, 0x77, 0x4f, 0xe8,
+ 0x77, 0x2a, 0x1f, 0x26, 0xa9, 0x0a, 0xe5, 0x86,
+ 0x3d, 0x73, 0x32, 0x86, 0xa6, 0x97, 0x9a, 0x33,
+ 0x07, 0x74, 0x72, 0xd7, 0xb6, 0x09, 0xd0, 0x54,
+ 0x56, 0x2a, 0x90, 0x32, 0xd3, 0x59, 0xb5, 0xff,
+ 0x7e, 0x4a, 0x78, 0xf5, 0x18, 0x5c, 0xb8, 0xcb,
+ 0xe0, 0xe7, 0xa5, 0xeb, 0xe0, 0x85, 0x77, 0xe8,
+ 0xd6, 0x12, 0x60, 0xe5, 0xa5, 0xee, 0x71, 0xe5,
+ 0x71, 0xb1, 0x3f, 0x14, 0x87, 0xaf, 0xfb, 0xdb,
+ 0xf2, 0x00, 0x98, 0x86, 0xeb, 0x45, 0xda, 0x4a,
+ 0x46, 0x61, 0xe5, 0x44, 0x2b, 0xa6, 0x72, 0x62,
+ 0x7e, 0x62, 0x94, 0x31, 0x6a, 0x6e, 0xb3, 0xf0,
+ 0x1c, 0x13, 0xc4, 0x6d, 0x85, 0xcb, 0xaf, 0x5e,
+ 0xa8, 0xb4, 0x1c, 0xd1, 0xae, 0x79, 0xfc, 0x00,
+ 0x7d, 0xdb, 0xed, 0xb4, 0x5d, 0x82, 0xc9, 0x26,
+ 0x69, 0x86, 0xd3, 0x1c, 0x3b, 0xcd, 0xad, 0x5f,
+ 0x49, 0xc3, 0xf5, 0x89, 0x93, 0x97, 0x08, 0xde,
+ 0x4b, 0xa2, 0x62, 0xfa, 0xba, 0xea, 0xfe, 0x27,
+ 0x39, 0xab, 0x5f, 0x55, 0x5d, 0x1b, 0x74, 0x93,
+ 0xac, 0x12, 0xaa, 0x2d, 0xfc, 0x6e, 0xe2, 0xbe,
+ 0x9e, 0xda, 0x6a, 0x58, 0xe8, 0x81, 0x2a, 0x08,
+ 0x01, 0x04, 0xd2, 0x62, 0x81, 0xa2, 0xdb, 0x1f,
+ 0x29, 0xc4, 0x30, 0xfb, 0xc0, 0x31, 0x52, 0x07,
+ 0x57, 0xef, 0xa8, 0x94, 0xf4, 0x1b, 0xe7, 0xbe,
+ 0x13, 0xc2, 0x0b, 0xea, 0x03, 0xda, 0xf3, 0x1c,
+ 0xbf, 0x27, 0xdf, 0x1e, 0xb5, 0x8a, 0x67, 0x7d,
+ 0x9b, 0xb9, 0x56, 0x4a, 0xa3, 0x1e, 0xa2, 0xef,
+ 0xaa, 0x4b, 0xf9, 0x88, 0x81, 0x2b, 0xee, 0x66,
+ 0x98, 0x75, 0x50, 0x63, 0x91, 0xfc, 0x1e, 0xaa,
+ 0x73, 0xb2, 0x19, 0xb5, 0x67, 0x8b, 0x87, 0xf4,
+ 0xff, 0xfc, 0x57, 0x33, 0x16, 0xb1, 0xb7, 0xdc,
+ 0x8c, 0x88, 0x80, 0xcf, 0x91, 0x11, 0xfb, 0x1e,
+ 0xaa, 0xe4, 0xaa, 0x81, 0xf3, 0x92, 0xa4, 0x6b,
+ 0x0b, 0x20, 0x47, 0x74, 0x1e, 0x82, 0x8b, 0xc4,
+ 0x16, 0x5f, 0xcd, 0xfc, 0x31, 0xb8, 0xe2, 0xa5,
+ 0xf4, 0x45, 0x9d, 0xbb, 0x51, 0x8f, 0x74, 0x97,
+ 0x2b, 0x96, 0xc9, 0x55, 0xc6, 0x60, 0x80, 0x1e,
+ 0x52, 0xe0, 0x89, 0xad, 0xca, 0x70, 0x62, 0xd1,
+ 0xcb, 0x5c, 0x76, 0x27, 0x5d, 0x2a, 0x36, 0xb6,
+ 0x52, 0xe2, 0xc0, 0x13, 0x0a, 0x59, 0xd2, 0xea,
+ 0x44, 0xc9, 0x78, 0x93, 0xb7, 0xf9, 0x9b, 0x68,
+ 0xf8, 0x93, 0x51, 0x96, 0x49, 0x02, 0x5e, 0x9d,
+ 0xf2, 0x1b, 0xe3, 0x53, 0xf3, 0x66, 0x52, 0x59,
+ 0x93, 0xd2, 0x96, 0xaa, 0x2f, 0x0f, 0xc1, 0xdc,
+ 0x86, 0xe8, 0xfb, 0x85, 0x9d, 0xee, 0x21, 0x4a,
+ 0xc4, 0x08, 0x95, 0x7d, 0xfb, 0x4c, 0xb7, 0xbd,
+ 0x32, 0xa0, 0xb1, 0x77, 0x37, 0xcb, 0x18, 0xfd,
+ 0x8a, 0xc8, 0x62, 0x16, 0x0e, 0xa8, 0xc0, 0x0d,
+ 0x4a, 0x99, 0x45, 0x2c, 0x81, 0x4d, 0xd7, 0x4f,
+ 0x5e, 0x1f, 0xb9, 0x30, 0x4e, 0xe7, 0x54, 0x99,
+ 0xcf, 0x14, 0xf4, 0x4a, 0x6e, 0x78, 0xb3, 0x20,
+ 0xf4, 0x16, 0x53, 0x10, 0x95, 0xf1, 0x28, 0xca,
+ 0x74, 0xc7, 0x6a, 0x5d, 0x5b, 0x2e, 0xed, 0x08,
+ 0xc3, 0x92, 0x2a, 0xd0, 0x5b, 0x2c, 0x7b, 0xd7,
+ 0x56, 0x8a, 0xa7, 0xda, 0x3b, 0x9e, 0x52, 0x18,
+ 0xcc, 0x7b, 0xf7, 0xb5, 0xc1, 0xba, 0x2e, 0xa7,
+ 0x37, 0xaf, 0xb7, 0x5b, 0x28, 0x66, 0x74, 0xd6,
+ 0x77, 0x1a, 0x86, 0x1f, 0xce, 0x63, 0x84, 0x4b,
+ 0x86, 0x5c, 0x79, 0x4e, 0xd2, 0xd0, 0xf4, 0x88,
+ 0xd4, 0x44, 0x52, 0x4a, 0xc0, 0xd8, 0x2d, 0xe6,
+ 0xf5, 0x01, 0x37, 0xf4, 0x46, 0x69, 0xc3, 0x6f,
+ 0xa2, 0x73, 0x72, 0x44, 0x0a, 0x86, 0x91, 0xb8,
+ 0x38, 0x36, 0x98, 0x3e, 0xb3, 0x02, 0xad, 0xa8,
+ 0xf9, 0x9d, 0x3b, 0x46, 0xb5, 0xeb, 0x72, 0xa9,
+ 0xa5, 0x69, 0x01, 0xf9, 0xee, 0x26, 0xf9, 0x4d,
+ 0xd4, 0x48, 0xf0, 0x95, 0x72, 0x5e, 0x21, 0x2b,
+ 0x82, 0x80, 0x53, 0xc9, 0x4b, 0x2b, 0x44, 0x74,
+ 0x44, 0xb1, 0x90, 0xce, 0x2b, 0xcb, 0x8f, 0xe9,
+ 0x30, 0x52, 0x25, 0x60, 0x5a, 0x06, 0x1a, 0x3d,
+ 0x27, 0x12, 0xae, 0x33, 0x34, 0x83, 0xf4, 0xc8,
+ 0x25, 0x9c, 0x7e, 0x51, 0x4c, 0xaa, 0xb8, 0x8f,
+ 0x63, 0xb8, 0x71, 0x6e, 0x09, 0x90, 0xc7, 0xc7,
+ 0x17, 0x7c, 0xaf, 0xa0, 0x22, 0x9d, 0x1e, 0x7f,
+ 0x85, 0x3b, 0x18, 0x50, 0x94, 0x0a, 0xfb, 0x43,
+ 0x79, 0x61, 0x71, 0x6e, 0xbe, 0x47, 0x98, 0x36,
+ 0x9f, 0x81, 0xea, 0x8c, 0xb7, 0x1e, 0x43, 0xbe,
+ 0x0f, 0x59, 0x6a, 0x32, 0xd5, 0x60, 0xe7, 0x05,
+ 0x1e, 0x65, 0xc9, 0x74, 0xda, 0x97, 0x09, 0x49,
+ 0x44, 0x81, 0x14, 0xac, 0x63, 0xdc, 0x5a, 0xaa,
+ 0x41, 0x33, 0x3b, 0x91, 0x95, 0xe5, 0xac, 0x20,
+ 0x80, 0x07, 0x2b, 0xc9, 0x7a, 0xc2, 0xbb, 0x23,
+ 0x8f, 0x67, 0x66, 0x0a, 0x96, 0x84, 0xfa, 0x52,
+ 0x3b, 0x6b, 0x8d, 0x07, 0x56, 0x13, 0x6f, 0xe9,
+ 0xbe, 0x95, 0x99, 0xc6, 0x30, 0x2b, 0x62, 0x88,
+ 0xab, 0x0f, 0xb1, 0x3c, 0xbe, 0x0a, 0x8d, 0x5d,
+ 0x95, 0x00, 0x96, 0x1b, 0x6b, 0x87, 0xc7, 0x6b,
+ 0x23, 0xee, 0x03, 0x90, 0x7d, 0x10, 0xbc, 0x9e,
+ 0xdc, 0x44, 0x04, 0xca, 0x20, 0x70, 0x6e, 0xe2,
+ 0x79, 0x80, 0x7b, 0xb4, 0x06, 0x4a, 0x09, 0x24,
+ 0x18, 0x5c, 0x50, 0x95, 0xe5, 0x41, 0x89, 0xc5,
+ 0x32, 0x74, 0x03, 0x46, 0x4d, 0x9b, 0xf0, 0x35,
+ 0x42, 0x9f, 0xf2, 0xfc, 0xff, 0xc4, 0x11, 0x00,
+ 0x0d, 0x23, 0x95, 0x18, 0x99, 0x5e, 0xaa, 0xda,
+ 0xbf, 0x9e, 0x0a, 0x17, 0x31, 0xc1, 0x41, 0x95,
+ 0xba, 0xb5, 0x2f, 0x2d, 0x40, 0x85, 0x11, 0xcd,
+ 0x38, 0x2b, 0x69, 0x4d, 0x9f, 0xbe, 0x82, 0x4b,
+ 0xd1, 0xab, 0xeb, 0x97, 0x40, 0x6f, 0xfb, 0x10,
+ 0x2c, 0x1d, 0x0c, 0x16, 0xd9, 0x0f, 0x24, 0x96,
+ 0x14, 0x0e, 0x73, 0x4f, 0x15, 0xe7, 0x8f, 0x78,
+ 0x44, 0xa4, 0xe8, 0xe9, 0xea, 0x10, 0x6b, 0x65,
+ 0xd5, 0xce, 0x32, 0xb5, 0xcf, 0x72, 0xff, 0x82,
+ 0x2a, 0xbe, 0x37, 0xbe, 0x3b, 0x07, 0x54, 0xa6,
+ 0x68, 0xdf, 0x5c, 0x7a, 0x3c, 0x18, 0x9c, 0x8e,
+ 0x4a, 0x2b, 0xf1, 0x3d, 0x3e, 0xb5, 0x5e, 0xcb,
+ 0x45, 0x96, 0xea, 0xd7, 0x91, 0x6e, 0xb9, 0x8a,
+ 0xd0, 0x87, 0x29, 0xfc, 0xe7, 0xb9, 0xb3, 0x4e,
+ 0x6a, 0x44, 0x68, 0x15, 0xb5, 0x59, 0x43, 0xf1,
+ 0x52, 0x55, 0xbe, 0x18, 0x12, 0x87, 0xdc, 0xff,
+ 0x8f, 0x1e, 0xb1, 0x48, 0x7c, 0x0d, 0xfc, 0x13,
+ 0xa9, 0xf1, 0x5e, 0x85, 0x15, 0xc8, 0xda, 0x1e,
+ 0xb5, 0xf3, 0xfd, 0x81, 0xa8, 0x60, 0x97, 0xfc,
+ 0xfd, 0x62, 0x3b, 0x26, 0x9e, 0x92, 0x69, 0xe3,
+ 0xe0, 0x44, 0x2c, 0x7c, 0x90, 0x1f, 0x39, 0x43,
+ 0x13, 0x68, 0x31, 0xb5, 0xe3, 0xaa, 0xdc, 0xf7,
+ 0x04, 0x39, 0xb4, 0x0e, 0x2d, 0xa0, 0xf0, 0x18,
+ 0x93, 0xbb, 0xb2, 0x4d, 0x28, 0x2a, 0xfa, 0xa5,
+ 0x74, 0x28, 0xaa, 0x2a, 0x6c, 0x81, 0xea, 0x38,
+ 0xef, 0x18, 0xe2, 0xfa, 0x08, 0x2d, 0x21, 0x9d,
+ 0x7d, 0xd3, 0xcb, 0x7e, 0x8e, 0x5b, 0x1a, 0x17,
+ 0x28, 0xb3, 0xbb, 0x09, 0x72, 0xcb, 0x44, 0x51,
+ 0xcc, 0x6e, 0xfa, 0x01, 0x39, 0xed, 0x65, 0x6f,
+ 0x54, 0xf0, 0xe2, 0xe6, 0x1e, 0x61, 0xd6, 0x4a,
+ 0x81, 0xfc, 0x90, 0x4b, 0x94, 0x27, 0xc6, 0xc6,
+ 0x91, 0x00, 0xd5, 0x05, 0x93, 0x64, 0x4d, 0x67,
+ 0x0b, 0x72, 0x52, 0x59, 0x3a, 0x7f, 0x01, 0x72,
+ 0x26, 0x9e, 0x46, 0x70, 0x19, 0xe1, 0x82, 0x64,
+ 0x4b, 0xb3, 0x7a, 0x9d, 0x4b, 0xbe, 0x34, 0x61,
+ 0xfd, 0x32, 0xcd, 0x82, 0x33, 0x37, 0x64, 0xb3,
+ 0xb0, 0x54, 0x13, 0x45, 0xcb, 0x46, 0xde, 0x66,
+ 0x3a, 0xa5, 0x3e, 0x61, 0xc9, 0xb5, 0xd3, 0x50,
+ 0xb7, 0xc6, 0x26, 0xa3, 0xe0, 0x89, 0x94, 0xe9,
+ 0x9f, 0xe2, 0x26, 0x58, 0x92, 0x21, 0x54, 0xd2,
+ 0x70, 0x94, 0x25, 0x5c, 0xf7, 0x64, 0x8f, 0x43,
+ 0x4e, 0x0a, 0x63, 0xec, 0x05, 0x1b, 0xaa, 0xdd,
+ 0x78, 0xa0, 0x13, 0x9e, 0xee, 0x9d, 0xcc, 0xa4,
+ 0xb6, 0x26, 0x9c, 0x32, 0xbb, 0x14, 0x26, 0xb2,
+ 0x5f, 0x09, 0xec, 0x3f, 0x8c, 0x58, 0x5c, 0x3a,
+ 0x16, 0x7c, 0x3f, 0xde, 0x9f, 0xb1, 0x3e, 0x79,
+ 0x8f, 0xa6, 0x39, 0x40, 0x36, 0xd7, 0x11, 0x65,
+ 0x1a, 0x82, 0x7f, 0x19, 0xc3, 0xb5, 0xe6, 0xd4,
+ 0xd1, 0x42, 0xab, 0x47, 0x22, 0x75, 0x52, 0xe3,
+ 0x30, 0x85, 0x99, 0xe1, 0xad, 0xac, 0xbb, 0xdc,
+ 0x29, 0xde, 0xdf, 0xc6, 0x24, 0x6a, 0x88, 0xcd,
+ 0xb9, 0x39, 0x3d, 0xcb, 0xe6, 0xbc, 0x09, 0x76,
+ 0xe1, 0x5d, 0x2e, 0x4a, 0xd2, 0xe6, 0x1e, 0x4f,
+ 0x20, 0x1f, 0x7b, 0xdb, 0x3c, 0x8e, 0x36, 0x47,
+ 0xb7, 0x2e, 0x1c, 0x10, 0x57, 0xe9, 0x1e, 0x13,
+ 0xb1, 0x54, 0xd4, 0x94, 0x42, 0xee, 0xd1, 0x17,
+ 0x77, 0x4d, 0x42, 0x4d, 0x45, 0xad, 0xd0, 0x01,
+ 0x43, 0x23, 0x56, 0xba, 0x87, 0xb1, 0x46, 0x66,
+ 0x06, 0x47, 0x43, 0xb7, 0x56, 0xd9, 0x02, 0xab,
+ 0xcd, 0x39, 0xa9, 0xe4, 0xc0, 0x2e, 0xea, 0x45,
+ 0x72, 0x64, 0x08, 0x44, 0xec, 0x44, 0x8f, 0x1d,
+ 0x86, 0xa6, 0x4a, 0xca, 0x2c, 0xd4, 0xab, 0xee,
+ 0x2c, 0x78, 0xd1, 0x24, 0x69, 0xd2, 0x58, 0x95,
+ 0xda, 0x31, 0xd5, 0x96, 0x26, 0x19, 0x28, 0xbf,
+ 0xac, 0xfc, 0x5f, 0x90, 0x31, 0x35, 0x16, 0xe4,
+ 0xd5, 0x69, 0xec, 0xbb, 0x4a, 0xb5, 0xd2, 0x86,
+ 0x37, 0x2c, 0x08, 0x6e, 0x10, 0x9d, 0xbc, 0x3d,
+ 0xec, 0xcb, 0x53, 0xbb, 0xf4, 0x1a, 0x01, 0xa1,
+ 0xd2, 0x21, 0x0d, 0xfb, 0x33, 0x14, 0xa7, 0xdf,
+ 0xb7, 0xd7, 0xc3, 0xd3, 0xed, 0x64, 0x31, 0xe7,
+ 0xfe, 0x63, 0xbf, 0xdf, 0xcf, 0xa0, 0xd7, 0xd0,
+ 0x49, 0xf4, 0xf5, 0x59, 0xc8, 0x29, 0x0e, 0xed,
+ 0xf0, 0x89, 0x52, 0xd1, 0x8a, 0xb0, 0xa4, 0x83,
+ 0xb6, 0x4f, 0x75, 0xc3, 0x92, 0x8c, 0x3c, 0x06,
+ 0xb3, 0x1f, 0xf5, 0x36, 0x6c, 0x36, 0xb5, 0x4f,
+ 0x99, 0x4c, 0x98, 0x9f, 0xe2, 0x3b, 0x1a, 0xb4,
+ 0x8e, 0xed, 0xe6, 0x1e, 0x52, 0x1e, 0xbc, 0xa5,
+ 0x8c, 0xb8, 0xcf, 0x25, 0x40, 0x24, 0x37, 0x62,
+ 0x31, 0x9e, 0x76, 0x65, 0x36, 0xc1, 0xd8, 0xe8,
+ 0xc6, 0xd7, 0xaa, 0xc1, 0x2d, 0x49, 0x89, 0x77,
+ 0xf8, 0x19, 0xa9, 0x53, 0xd8, 0x54, 0x46, 0xc1,
+ 0xd3, 0x06, 0x2e, 0x1e, 0x9f, 0x48, 0xc0, 0x93,
+ 0x02, 0xd1, 0x2b, 0xf2, 0x5b, 0x2e, 0xfe, 0x25,
+ 0x26, 0xf7, 0x49, 0xb5, 0x7f, 0xe6, 0x3f, 0xdd,
+ 0x99, 0xd2, 0x58, 0xfc, 0x47, 0xc2, 0x90, 0x7f,
+ 0x2e, 0x52, 0xac, 0x54, 0x47, 0x68, 0x8c, 0x2b,
+ 0x6d, 0xfb, 0xa7, 0x27, 0x32, 0x17, 0x5f, 0x47,
+ 0x66, 0x57, 0x4f, 0xb8, 0x73, 0x0c, 0x82, 0x04,
+ 0xc8, 0xc4, 0xaa, 0x31, 0xfd, 0xb0, 0xed, 0x46,
+ 0xe8, 0xf2, 0x63, 0xce, 0x05, 0x79, 0x5d, 0xcf,
+ 0x30, 0xe3, 0x78, 0x2e, 0x67, 0x8d, 0xfa, 0x0f,
+ 0x41, 0xd3, 0xa2, 0x35, 0xff, 0x76, 0x0c, 0x06,
+ 0x25, 0x15, 0xd4, 0x5b, 0xaf, 0x2c, 0xa7, 0x11,
+ 0xc5, 0x21, 0x9e, 0x90, 0x22, 0xf0, 0x25, 0xb0,
+ 0x53, 0xfc, 0xdb, 0xec, 0xa6, 0x41, 0x94, 0x04,
+ 0x82, 0x95, 0x92, 0xaa, 0xe5, 0x00, 0xf3, 0xb1,
+ 0x59, 0x33, 0x8e, 0x75, 0xb9, 0x9e, 0xdc, 0x99,
+ 0x86, 0xfc, 0xbf, 0xe2, 0x8e, 0xd0, 0xfd, 0x6e,
+ 0x6e, 0x4b, 0x44, 0x70, 0x92, 0x59, 0xea, 0x46,
+ 0xc0, 0x9b, 0x93, 0x03, 0x7b, 0x1e, 0xa1, 0xb8,
+ 0x73, 0x56, 0xfd, 0xc2, 0xa1, 0x9e, 0x9b, 0x1b,
+ 0x92, 0xda, 0x67, 0x64, 0xd0, 0x3d, 0xd1, 0xd1,
+ 0xa3, 0x1f, 0x3c, 0x77, 0xa1, 0x4a, 0x9f, 0x44,
+ 0x98, 0xe0, 0x6e, 0x0e, 0x3b, 0xe2, 0xae, 0x4e,
+ 0x39, 0x7a, 0xe5, 0xa5, 0x03, 0xe1, 0x97, 0x9f,
+ 0xfc, 0x97, 0x97, 0xff, 0x5d, 0x93, 0x1b, 0x27,
+ 0x3c, 0x15, 0x3d, 0x34, 0x88, 0x99, 0x28, 0x47,
+ 0x25, 0xfa, 0xe8, 0xe4, 0x34, 0x79, 0x31, 0xa3,
+ 0x3a, 0xa8, 0x24, 0x44, 0x54, 0xc9, 0x66, 0xd0,
+ 0xcc, 0xf5, 0x77, 0xe4, 0xa7, 0x09, 0x81, 0x33,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0x2d, 0x76, 0xc8, 0x74, 0x90, 0x71, 0x73, 0x7c,
+ 0xd5, 0xa0, 0x78, 0x8f, 0xe9, 0x97, 0x0e, 0x3a,
+ 0xdc, 0x3f, 0x38, 0x40, 0x28, 0x39, 0xa2, 0xfe,
+ 0xcc, 0xdc, 0x86, 0x77, 0xb5, 0x76, 0xb0, 0x5c,
+ 0x25, 0xbd, 0x6d, 0xe1, 0x6d, 0x00, 0x47, 0x6a,
+ 0x26, 0xb5, 0xda, 0x38, 0x75, 0x9e, 0xcf, 0xff,
+ 0x97, 0x67, 0x36, 0x41, 0xda, 0x9b, 0xa8, 0x1c,
+ 0xba, 0x15, 0xa6, 0x65, 0xba, 0x7a, 0x55, 0x73,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0x7a, 0x5d, 0xe3, 0x9b, 0x46, 0x7c, 0x10, 0xd8,
+ 0x40, 0x60, 0x48, 0x83, 0x19, 0x53, 0xcb, 0xcc,
+ 0xff, 0xef, 0x34, 0x9d, 0xdb, 0x02, 0x5f, 0xa8,
+ 0x8b, 0x3f, 0xac, 0x51, 0x14, 0x42, 0x9c, 0x3f,
+ 0xef, 0xcd, 0x1d, 0x65, 0x34, 0x49, 0xd7, 0xce,
+ 0x0f, 0x6a, 0x32, 0xb8, 0x8d, 0x39, 0x1e, 0x8c,
+ 0x67, 0x56, 0xa7, 0xa4, 0x64, 0x4c, 0xcd, 0xb5,
+ 0x77, 0xf8, 0x64, 0xa9, 0x08, 0x1d, 0xc8, 0x44,
+ 0x0a, 0x0b, 0xb2, 0xcf, 0x5b, 0xac, 0x9d, 0xb7,
+ 0x88, 0xb8, 0x91, 0x51, 0xb0, 0x91, 0xbd, 0xe1,
+ 0x11, 0xc4, 0x7a, 0x02, 0xbf, 0x3b, 0x44, 0x21,
+ 0x34, 0x6e, 0x45, 0x00, 0x2e, 0x09, 0x66, 0x04,
+ 0xe4, 0x95, 0xc9, 0xe4, 0xee, 0xa8, 0x49, 0x92,
+ 0x6a, 0x41, 0x6c, 0x55, 0x4f, 0x17, 0x09, 0x4c,
+ 0x84, 0x19, 0xe9, 0xa2, 0xa6, 0x32, 0xb6, 0x1a,
+ 0x28, 0x5c, 0x23, 0x93, 0x7f, 0x9a, 0xd0, 0x74,
+ 0x47, 0xc4, 0x40, 0xe1, 0xd3, 0xb6, 0x4a, 0x0a,
+ 0x39, 0x5a, 0x3d, 0xb1, 0xfe, 0x74, 0xf2, 0xc4,
+ 0x4c, 0x42, 0x4f, 0xea, 0x73, 0x1f, 0xd9, 0x03,
+ 0xf7, 0x2f, 0x04, 0x0e, 0x52, 0x50, 0x86, 0xc1,
+ 0x77, 0x30, 0x8b, 0xdf, 0x94, 0x1c, 0x7d, 0x51,
+ 0xdf, 0x3e, 0x46, 0xd4, 0xeb, 0x30, 0x5d, 0xe1,
+ 0xea, 0x3a, 0x55, 0xeb, 0xfd, 0xe2, 0xab, 0x02,
+ 0x92, 0x79, 0xe7, 0x1a, 0xc7, 0x74, 0xd8, 0x8e,
+ 0xf3, 0x65, 0x5f, 0x19, 0x7d, 0x3d, 0x2b, 0xc0,
+ 0x75, 0x15, 0x41, 0xe0, 0x6e, 0xf4, 0xe4, 0xea,
+ 0xf8, 0xcf, 0x40, 0x51, 0xd4, 0x85, 0xc0, 0xcd,
+ 0xe9, 0x2b, 0x12, 0x62, 0x02, 0xf4, 0xf2, 0xc5,
+ 0xc4, 0xd2, 0x70, 0x13, 0xa8, 0xee, 0x69, 0x57,
+ 0x0b, 0x17, 0x42, 0x99, 0xe9, 0x0f, 0xfa, 0x95,
+ 0x2c, 0x32, 0x4e, 0x9e, 0xa4, 0x49, 0xc2, 0x9a,
+ 0x19, 0x90, 0xba, 0x3d, 0x7a, 0xc0, 0x7c, 0xeb,
+ 0x84, 0xe6, 0x45, 0x86, 0xf6, 0x37, 0x0b, 0xdd,
+ 0x20, 0x8a, 0x8d, 0xc4, 0x59, 0x4e, 0x34, 0x91,
+ 0x91, 0x39, 0xd1, 0x25, 0x89, 0x0e, 0x78, 0x81,
+ 0x28, 0x3c, 0xf0, 0x67, 0x90, 0x30, 0xfe, 0x72,
+ 0x53, 0x66, 0xce, 0xcd, 0x17, 0x62, 0xbf, 0x38,
+ 0x1c, 0x9f, 0x7f, 0x74, 0x21, 0x94, 0x26, 0xb0,
+ 0x2d, 0x20, 0xe3, 0x56, 0x36, 0xa8, 0x6c, 0x7c,
+ 0xc3, 0x5d, 0xc1, 0x7d, 0xbd, 0xe1, 0x95, 0xdc,
+ 0x7d, 0xc6, 0xf4, 0x93, 0xaf, 0xfc, 0x61, 0x2c,
+ 0xcb, 0x4c, 0x10, 0x7f, 0x22, 0xfb, 0xcc, 0x05,
+ 0x41, 0x00, 0x8c, 0xf6, 0xfc, 0x25, 0x62, 0xd5,
+ 0xc8, 0xbc, 0x69, 0xfd, 0xef, 0xc6, 0x84, 0x89,
+ 0x64, 0xcd, 0xa4, 0x5c, 0x5a, 0x7f, 0x0b, 0x55,
+ 0xdf, 0x7e, 0x33, 0x14, 0x2f, 0x92, 0xe4, 0x49,
+ 0x0c, 0x99, 0x07, 0xe2, 0x59, 0x28, 0xfc, 0x96,
+ 0xa9, 0x5a, 0x06, 0xc0, 0xda, 0x18, 0xe8, 0x4b,
+ 0x9a, 0x35, 0xbe, 0x36, 0xad, 0x00, 0x46, 0x0a,
+ 0xe6, 0x75, 0xcf, 0x8c, 0x98, 0x08, 0x9b, 0x4b,
+ 0x0f, 0x78, 0x1a, 0x19, 0x93, 0x8d, 0x72, 0x03,
+ 0xe9, 0x21, 0xbe, 0x74, 0x32, 0xb8, 0xa2, 0x10,
+ 0xa2, 0x86, 0xc3, 0xb4, 0xf3, 0x8b, 0xd9, 0x1e,
+ 0x7b, 0x85, 0x9b, 0x7d, 0x6c, 0x9a, 0x68, 0x01,
+ 0x0d, 0x26, 0xf1, 0x93, 0xcc, 0xdd, 0xae, 0xeb,
+ 0x89, 0x56, 0x23, 0xcd, 0x05, 0x29, 0x43, 0xa2,
+ 0x87, 0xa2, 0x72, 0x99, 0xef, 0xb6, 0x26, 0x2c,
+ 0x99, 0x90, 0xb2, 0x89, 0xe8, 0x42, 0xfe, 0x16,
+ 0x2d, 0x38, 0xb4, 0xe3, 0xef, 0x6f, 0x3c, 0xd9,
+ 0x65, 0x32, 0xed, 0xbd, 0xca, 0x32, 0x82, 0x8a,
+ 0xaa, 0x3a, 0x4f, 0xb3, 0xc5, 0xda, 0x82, 0x40,
+ 0x51, 0x62, 0xdc, 0xfa, 0xa3, 0xd5, 0x21, 0x67,
+ 0x7a, 0x6a, 0xda, 0x0e, 0xea, 0xe0, 0xdb, 0x68,
+ 0x51, 0xbe, 0x9c, 0xd5, 0x3a, 0xec, 0xd1, 0xa9,
+ 0x73, 0xa1, 0xc8, 0xbf, 0x05, 0x3b, 0xec, 0xe0,
+ 0x41, 0xc1, 0x91, 0x8c, 0x3f, 0x31, 0xb5, 0x16,
+ 0x68, 0x81, 0xad, 0xdf, 0x63, 0x9d, 0xb7, 0x2c,
+ 0x8b, 0x5c, 0x66, 0x01, 0x53, 0x75, 0x4d, 0x90,
+ 0xfb, 0x29, 0x17, 0x8e, 0xc5, 0x16, 0x84, 0x8f,
+ 0x08, 0xfa, 0x9e, 0x4b, 0xfa, 0xb0, 0xa6, 0x1f,
+ 0xd7, 0xa0, 0xf3, 0x7b, 0x9f, 0x26, 0x88, 0x75,
+ 0x3a, 0x9a, 0xc8, 0xb7, 0x1c, 0xa1, 0x84, 0xad,
+ 0xb4, 0xf4, 0xf2, 0x78, 0xa7, 0xda, 0xeb, 0x55,
+ 0x5f, 0x89, 0x69, 0xa8, 0x3f, 0xbb, 0x93, 0x74,
+ 0x72, 0xb8, 0x29, 0xc0, 0xb3, 0x4a, 0xb6, 0x06,
+ 0x57, 0x79, 0xff, 0xd5, 0xe2, 0x89, 0x7e, 0xa2,
+ 0xc2, 0x1a, 0xeb, 0x11, 0xb7, 0x86, 0x26, 0xd6,
+ 0x20, 0xa4, 0xd8, 0x1b, 0x03, 0x7b, 0x5c, 0x4a,
+ 0x4d, 0x60, 0x90, 0x19, 0x96, 0xa3, 0x64, 0x5f,
+ 0x91, 0x6b, 0x03, 0xfb, 0x43, 0xd0, 0xa4, 0x51,
+ 0xa2, 0x8a, 0xad, 0x55, 0x61, 0x23, 0xef, 0xe0,
+ 0x87, 0xc0, 0xba, 0xe2, 0x3b, 0xdb, 0x11, 0x26,
+ 0x94, 0x1f, 0x65, 0xf5, 0x20, 0x67, 0x36, 0xce,
+ 0x5a, 0xee, 0x24, 0xad, 0xbe, 0xc0, 0x32, 0xa5,
+ 0xa5, 0xf3, 0x92, 0x47, 0x55, 0xee, 0x67, 0xf8,
+ 0x1a, 0x8a, 0xd6, 0x69, 0x50, 0x07, 0x96, 0x43,
+ 0xcd, 0x01, 0x74, 0x78, 0x71, 0x40, 0xc4, 0x32,
+ 0x89, 0x07, 0xe0, 0x16, 0x59, 0x11, 0x41, 0x4a,
+ 0x60, 0x19, 0x89, 0xe4, 0xc8, 0x76, 0x02, 0xce,
+ 0xd0, 0xa8, 0x26, 0xdd, 0xc1, 0xad, 0xb6, 0x13,
+ 0xd1, 0x11, 0x30, 0x32, 0x93, 0xcd, 0xf8, 0xfe,
+ 0xcb, 0x78, 0xcf, 0x4c, 0x58, 0xb8, 0x94, 0x22,
+ 0xe1, 0x38, 0xa4, 0xb5, 0xbe, 0x78, 0x08, 0x9e,
+ 0x15, 0x8a, 0xa9, 0x73, 0x15, 0x6d, 0x5d, 0x2f,
+ 0xd0, 0x29, 0x28, 0xa1, 0x8f, 0xde, 0x86, 0x1b,
+ 0xbb, 0xc2, 0xb1, 0x6f, 0xea, 0x7b, 0xb0, 0xa5,
+ 0x8b, 0x91, 0xb6, 0xee, 0x77, 0xe1, 0xf2, 0x10,
+ 0x18, 0xa0, 0x67, 0x88, 0x85, 0x97, 0xb9, 0x26,
+ 0x44, 0xdc, 0x37, 0x9a, 0xda, 0xdf, 0xf0, 0x60,
+ 0xda, 0x10, 0x7d, 0x03, 0x0d, 0xa1, 0x04, 0x3e,
+ 0x2a, 0xd2, 0xaf, 0x46, 0xae, 0x24, 0x57, 0xff,
+ 0x7f, 0x8b, 0xb0, 0xb3, 0xd2, 0xb6, 0xe1, 0x09,
+ 0x24, 0xe0, 0x65, 0xbd, 0xcf, 0x08, 0x3e, 0xcc,
+ 0x93, 0xd5, 0x00, 0x59, 0xf1, 0x71, 0x8d, 0x26,
+ 0x10, 0xff, 0xa4, 0x64, 0x50, 0x7d, 0x8d, 0xcc,
+ 0xc0, 0x14, 0x10, 0x38, 0x19, 0xe6, 0x3c, 0x5b,
+ 0x86, 0xf9, 0xe5, 0xf5, 0x95, 0x56, 0x9b, 0xbb,
+ 0x21, 0xbd, 0x61, 0x39, 0xbf, 0xa3, 0xe7, 0xea,
+ 0xd7, 0x3d, 0x05, 0xe1, 0x89, 0xce, 0x8e, 0xb5,
+ 0x49, 0x47, 0x6c, 0xc5, 0x34, 0x9d, 0x32, 0x9f,
+ 0x1f, 0xba, 0x45, 0xef, 0xa1, 0xea, 0x55, 0xac,
+ 0xfc, 0x21, 0x71, 0xcd, 0xb2, 0x20, 0x97, 0xfc,
+ 0x8e, 0xa4, 0xc7, 0x0c, 0x92, 0x7c, 0x20, 0x0b,
+ 0xab, 0xe2, 0xa9, 0xec, 0x30, 0x34, 0x73, 0xbc,
+ 0x11, 0x9a, 0xbd, 0xf2, 0x55, 0x98, 0x84, 0xb4,
+ 0xfb, 0x01, 0xc4, 0x27, 0xff, 0x40, 0xe5, 0x0c,
+ 0x20, 0x46, 0x39, 0x8a, 0x08, 0x06, 0x79, 0x10,
+ 0x0b, 0x8c, 0xf9, 0xda, 0x22, 0x56, 0xe4, 0xdb,
+ 0x2e, 0xb1, 0x99, 0xae, 0x41, 0x96, 0x43, 0x74,
+ 0x4f, 0xcf, 0xf3, 0xba, 0xaf, 0xca, 0xe8, 0xe9,
+ 0xd0, 0xbc, 0x7e, 0x28, 0x73, 0x2c, 0xa9, 0x61,
+ 0xcf, 0xb0, 0x57, 0xc4, 0x6c, 0x2a, 0xb3, 0xc8,
+ 0x47, 0xba, 0x45, 0x14, 0x80, 0xf5, 0x91, 0xb8,
+ 0xf5, 0xc8, 0x08, 0x0e, 0x6f, 0x3f, 0x7e, 0xa8,
+ 0xc9, 0x60, 0xe2, 0xb0, 0x35, 0xbc, 0xa0, 0x75,
+ 0xe7, 0x83, 0x04, 0xa0, 0xfa, 0x79, 0xdd, 0x5d,
+ 0x39, 0xf9, 0x8d, 0x37, 0x92, 0x70, 0xa8, 0x87,
+ 0xd0, 0xfb, 0x83, 0xa5, 0xaf, 0x4d, 0xa4, 0xcc,
+ 0x86, 0xd4, 0xac, 0xfe, 0xae, 0xde, 0x22, 0x1c,
+ 0x32, 0xb1, 0x97, 0x62, 0x78, 0x88, 0xd6, 0xbc,
+ 0x88, 0x6d, 0x61, 0xda, 0xd5, 0xce, 0xb3, 0x98,
+ 0xc4, 0x0f, 0xd3, 0x6e, 0x19, 0xdb, 0x45, 0xa2,
+ 0x6d, 0x77, 0xb4, 0x17, 0x2c, 0x95, 0xd0, 0x49,
+ 0x38, 0xa1, 0xef, 0xcb, 0x5d, 0x52, 0xc9, 0xcd,
+ 0x22, 0xbe, 0x2b, 0x52, 0x9b, 0x25, 0x91, 0x2d,
+ 0x24, 0xe4, 0xc6, 0x75, 0xc6, 0xd2, 0x76, 0x73,
+ 0xf6, 0x73, 0xbe, 0x87, 0x35, 0x50, 0x7f, 0xeb,
+ 0x11, 0x8e, 0x31, 0xb4, 0x9f, 0x00, 0xcb, 0x0b,
+ 0x37, 0x77, 0xf7, 0xef, 0x7f, 0x28, 0x1a, 0x5c,
+ 0x04, 0xc6, 0x4b, 0x35, 0x47, 0xb4, 0xa3, 0xf1,
+ 0xde, 0x9b, 0x2a, 0x11, 0x76, 0xad, 0x1b, 0xa4,
+ 0x59, 0xf3, 0xeb, 0x9a, 0xa6, 0xf5, 0xd4, 0x30,
+ 0x17, 0x00, 0x44, 0xab, 0x3a, 0x99, 0x6b, 0x5a,
+ 0x7a, 0x29, 0x5f, 0xce, 0x78, 0x49, 0x73, 0x7b,
+ 0xf1, 0xbf, 0xcf, 0x69, 0xa4, 0x79, 0xa1, 0x45,
+ 0x78, 0x95, 0xae, 0xe7, 0x6e, 0x71, 0xb9, 0x47,
+ 0x51, 0xb0, 0xa0, 0xac, 0xc5, 0xeb, 0x17, 0x52,
+ 0xbf, 0x6e, 0x94, 0xe1, 0x2b, 0x59, 0xca, 0x7d,
+ 0xba, 0x40, 0xe2, 0xb0, 0x32, 0xeb, 0x3f, 0x31,
+ 0x17, 0x39, 0x2c, 0x9c, 0xe7, 0xf7, 0xb3, 0xc1,
+ 0x50, 0x0c, 0x1d, 0xa4, 0x2a, 0x00, 0xb1, 0x8d,
+ 0x0c, 0x55, 0x68, 0xb3, 0xf5, 0x45, 0x38, 0x6b,
+ 0x6b, 0x5f, 0xcc, 0xa2, 0x16, 0x8e, 0x41, 0xd6,
+ 0xa7, 0xee, 0xaf, 0x4c, 0xea, 0x9c, 0x80, 0x46,
+ 0x4b, 0x65, 0x06, 0xf4, 0x0b, 0x8e, 0xd1, 0x75,
+ 0x3a, 0x7c, 0x4c, 0x1b, 0x3f, 0x65, 0xce, 0x61,
+ 0xa8, 0xa3, 0x6e, 0xa8, 0x1d, 0xfe, 0x55, 0xc0,
+ 0x96, 0x9d, 0x19, 0xcc, 0x5b, 0x6e, 0x01, 0x8b,
+ 0xf7, 0xfe, 0x61, 0x73, 0x48, 0x9d, 0x1c, 0xf8,
+ 0xc2, 0xd2, 0x0b, 0x18, 0xde, 0x6c, 0x2c, 0x87,
+ 0x89, 0xd4, 0x4e, 0x37, 0x39, 0x67, 0x36, 0xe4,
+ 0x23, 0x88, 0x49, 0x5a, 0x0f, 0x43, 0xc6, 0x8c,
+ 0x60, 0x9f, 0xb6, 0x04, 0xa0, 0x2d, 0x31, 0xb4,
+ 0x8d, 0xef, 0x4b, 0x5c, 0xc7, 0x2b, 0xf5, 0x8f,
+ 0x47, 0xf1, 0x4f, 0x47, 0xff, 0x41, 0x06, 0xfa,
+ 0x50, 0x4f, 0x7f, 0x1b, 0x87, 0xad, 0xed, 0x2a,
+ 0xc5, 0x65, 0x0d, 0x53, 0x5f, 0xc2, 0x71, 0x95,
+ 0xa5, 0xeb, 0x59, 0x6b, 0xef, 0xf9, 0x5d, 0x32,
+ 0x4a, 0x09, 0xfa, 0x01, 0xaa, 0x3f, 0x70, 0x43,
+ 0x1c, 0x16, 0x06, 0x01, 0x28, 0xa1, 0xfb, 0x82,
+ 0xd8, 0x60, 0x79, 0xd2, 0x67, 0xd2, 0xcc, 0xd9,
+ 0xce, 0xaf, 0x53, 0x45, 0xcd, 0x7d, 0x08, 0xf8,
+ 0x22, 0x8e, 0x37, 0x4a, 0x4c, 0x12, 0xf2, 0xe2,
+ 0x90, 0x2d, 0xe9, 0x27, 0x53, 0x44, 0x6d, 0x57,
+ 0x2f, 0xd6, 0x19, 0x04, 0xe2, 0xe0, 0x3e, 0x23,
+ 0x4a, 0xcf, 0x52, 0x1a, 0x9a, 0x0d, 0x7e, 0x62,
+ 0xac, 0xd9, 0xee, 0xf2, 0x1d, 0x16, 0x59, 0x4d,
+ 0x83, 0x7f, 0x44, 0x5e, 0x4e, 0x39, 0x63, 0x09,
+ 0x10, 0xd4, 0xe2, 0xf3, 0x71, 0x54, 0xfd, 0xff,
+ 0x2b, 0x82, 0x69, 0x6f, 0x1a, 0x7f, 0x63, 0xdd,
+ 0x7f, 0x2a, 0xb6, 0x52, 0x42, 0xbb, 0x43, 0xef,
+ 0xf5, 0x25, 0xf7, 0x96, 0xf6, 0x7b, 0x6c, 0x00,
+ 0x1f, 0xda, 0xdc, 0x35, 0x1a, 0x44, 0x1b, 0xb5,
+ 0xe5, 0x03, 0x97, 0x96, 0x67, 0x19, 0x13, 0x7a,
+ 0xda, 0xd9, 0xc2, 0xe8, 0xec, 0xb1, 0xc6, 0x12,
+ 0x88, 0xc5, 0x5c, 0xd7, 0x56, 0x76, 0xc2, 0x27,
+ 0x0a, 0xf5, 0x94, 0x58, 0x0e, 0x70, 0xf1, 0x63,
+ 0xbe, 0x13, 0xe1, 0x41, 0x17, 0xb4, 0x04, 0xe9,
+ 0xad, 0x9a, 0x4c, 0x0b, 0x03, 0x1d, 0xe5, 0x7b,
+ 0x5a, 0xaf, 0xc1, 0x15, 0x0a, 0xe1, 0x87, 0x2a,
+ 0x0b, 0x1c, 0xd1, 0x44, 0x2e, 0x5a, 0x8b, 0x49,
+ 0x47, 0xfc, 0xb2, 0x62, 0xd6, 0x16, 0xc8, 0xbf,
+ 0x79, 0xab, 0x52, 0x2d, 0xbd, 0x52, 0x3c, 0xbd,
+ 0x49, 0x95, 0x2a, 0xd8, 0x9d, 0x2d, 0xd4, 0x5d,
+ 0x6b, 0xbb, 0x7e, 0x8e, 0xa0, 0x8f, 0x17, 0xf0,
+ 0x48, 0xc7, 0xf3, 0x3a, 0x4e, 0x47, 0x7b, 0x5e,
+ 0x1d, 0xb4, 0x45, 0xdd, 0x3c, 0x76, 0x71, 0x07,
+ 0x99, 0x7c, 0xd0, 0xbc, 0x91, 0x8a, 0x18, 0x65,
+ 0xec, 0xc2, 0x56, 0x65, 0x9b, 0x80, 0x7e, 0x65,
+ 0xfc, 0xb2, 0xbb, 0xa3, 0xf3, 0xc2, 0xb1, 0x2a,
+ 0xe5, 0x63, 0x7b, 0x15, 0xed, 0x20, 0x33, 0x61,
+ 0xe2, 0x97, 0xdc, 0xb6, 0x53, 0x40, 0x11, 0x62,
+ 0xf3, 0x17, 0x9a, 0xc9, 0x88, 0x1f, 0xf3, 0xd9,
+ 0x3c, 0x9b, 0x66, 0xf5, 0x1c, 0x4a, 0x1e, 0xb5,
+ 0x97, 0x14, 0x26, 0x2f, 0xf1, 0x13, 0x24, 0xb1,
+ 0xb8, 0x1d, 0x2d, 0x04, 0xf5, 0x20, 0xbb, 0xb5,
+ 0x4b, 0x39, 0x6d, 0x4d, 0xb2, 0xdd, 0x29, 0x82,
+ 0x71, 0xce, 0x85, 0x20, 0x3c, 0xe3, 0x54, 0x71,
+ 0x75, 0xd4, 0x7b, 0x90, 0xe7, 0x60, 0x1a, 0x3c,
+ 0x6a, 0x6f, 0xe4, 0x67, 0xd8, 0xec, 0x7e, 0x56,
+ 0x09, 0x79, 0x34, 0x1c, 0xd8, 0xf8, 0x76, 0xe2,
+ 0xae, 0xef, 0x29, 0x4f, 0xcf, 0xb9, 0xf7, 0x0d,
+ 0xd0, 0xd5, 0x89, 0xdd, 0x2c, 0x9a, 0xf0, 0x1a,
+ 0xd0, 0x68, 0xc2, 0x31, 0x81, 0x1f, 0xed, 0xc7,
+ 0x20, 0xd9, 0xa7, 0x2d, 0xbe, 0xd3, 0x77, 0xb0,
+ 0x76, 0x55, 0x00, 0x0a, 0xbd, 0x0c, 0x19, 0x52,
+ 0x80, 0x46, 0x5e, 0xec, 0x5f, 0x5b, 0xa5, 0x29,
+ 0x5c, 0xaf, 0x41, 0xe3, 0xb8, 0x4e, 0xd3, 0x8d,
+ 0xd2, 0xfb, 0x6a, 0xe7, 0xa3, 0x9c, 0xba, 0x41,
+ 0xb4, 0x93, 0x90, 0x4d, 0x7d, 0x56, 0x1d, 0x50,
+ 0x57, 0xa9, 0x28, 0xd9, 0xf2, 0x9f, 0x51, 0x3d,
+ 0x44, 0xdd, 0x39, 0x39, 0x97, 0xd8, 0xc8, 0x52,
+ 0xc6, 0xb7, 0xed, 0x50, 0x1e, 0x58, 0x22, 0x7d,
+ 0x69, 0xcf, 0xb6, 0x61, 0xf4, 0xd5, 0x10, 0x61,
+ 0xa8, 0x13, 0xdb, 0xd0, 0x7c, 0xc1, 0x7f, 0x3b,
+ 0x7d, 0x80, 0x43, 0x37, 0x21, 0x44, 0x4a, 0xb7,
+ 0x14, 0x63, 0xfa, 0x6a, 0x57, 0x7a, 0x55, 0xb1,
+ 0x27, 0x7b, 0x6c, 0x66, 0x97, 0xc9, 0x7b, 0xdf,
+ 0x4d, 0x32, 0x2b, 0x85, 0x57, 0x3d, 0x3b, 0x00,
+ 0x38, 0xec, 0x8f, 0xba, 0xe3, 0xb6, 0xb9, 0x4c,
+ 0x80, 0xc5, 0xe3, 0x8d, 0x73, 0x65, 0x5d, 0x74,
+ 0x91, 0xe6, 0x6d, 0xf3, 0x4b, 0xd7, 0xc3, 0x34,
+ 0x1b, 0x40, 0xd2, 0xc0, 0x10, 0x7d, 0x74, 0xf2,
+ 0xa1, 0x8d, 0xb9, 0x74, 0x84, 0x9e, 0x10, 0xcc,
+ 0x53, 0xc9, 0xca, 0x36, 0x9f, 0x4a, 0x86, 0xa8,
+ 0xf3, 0x23, 0xea, 0xbe, 0x7c, 0x2a, 0x94, 0x3d,
+ 0x2b, 0x35, 0xa2, 0x4c, 0xab, 0xf0, 0x5e, 0x78,
+ 0x81, 0x60, 0x74, 0x5f, 0x51, 0xe3, 0x74, 0xe5,
+ 0x92, 0xa0, 0x82, 0xbd, 0x92, 0x50, 0xc9, 0x20,
+ 0x81, 0xeb, 0x6f, 0xdc, 0x49, 0x56, 0xb8, 0x87,
+ 0x27, 0x2c, 0xd7, 0x4b, 0x1e, 0x31, 0x89, 0x85,
+ 0x5d, 0x12, 0x9b, 0xcf, 0xf7, 0x7c, 0x51, 0x24,
+ 0xce, 0x2d, 0x45, 0x61, 0xbb, 0x72, 0xcb, 0x3b,
+ 0xc5, 0xf9, 0x90, 0x80, 0x51, 0x6b, 0x98, 0x09,
+ 0xb2, 0x0c, 0xe9, 0x06, 0x64, 0x1f, 0x5d, 0xd9,
+ 0x2c, 0xee, 0x35, 0xd5, 0x72, 0xe6, 0xca, 0xfe,
+ 0x3d, 0xc6, 0x9a, 0x57, 0x45, 0x2e, 0x60, 0xc3,
+ 0xfb, 0xb5, 0x4f, 0x45, 0x68, 0x35, 0x37, 0x5c,
+ 0x8b, 0x4b, 0x73, 0x92, 0x1b, 0x14, 0x18, 0x6e,
+ 0x51, 0x6b, 0x60, 0x6e, 0x66, 0x5e, 0x45, 0x61,
+ 0xf9, 0x56, 0x2f, 0x12, 0xb1, 0x14, 0x0e, 0x42,
+ 0xc9, 0xed, 0x53, 0x5c, 0x7c, 0x7a, 0x84, 0xb5,
+ 0x6e, 0xff, 0xda, 0xc3, 0xc5, 0x1e, 0x32, 0x67,
+ 0x1c, 0x40, 0xdc, 0xc4, 0x7b, 0x9e, 0xac, 0x82,
+ 0xe3, 0x22, 0xcb, 0x62, 0x3b, 0xb2, 0x3f, 0xcc,
+ 0xc7, 0x29, 0xa4, 0xcc, 0x59, 0x9b, 0xff, 0x74,
+ 0x1c, 0x15, 0xd4, 0xd6, 0xc4, 0x8a, 0x4f, 0x04,
+ 0xa6, 0xd8, 0x87, 0x6a, 0x37, 0x9c, 0x4f, 0x6d,
+ 0xde, 0x39, 0x56, 0xa2, 0x00, 0x19, 0x10, 0x8d,
+ 0x3b, 0xa6, 0x79, 0x7a, 0xa0, 0x1b, 0x68, 0x0e,
+ 0xff, 0x22, 0x53, 0x48, 0x0a, 0xae, 0x97, 0x17,
+ 0x40, 0x13, 0x2d, 0xe1, 0x2e, 0xba, 0x56, 0xd4,
+ 0xd7, 0x13, 0xf7, 0x96, 0xdc, 0x29, 0x9a, 0x3b,
+ 0x9f, 0x07, 0xf4, 0xe0, 0x4e, 0x9b, 0x1d, 0x6f,
+ 0xf7, 0xfd, 0x3a, 0x30, 0xbe, 0xc5, 0x25, 0xb4,
+ 0xbc, 0x54, 0xb4, 0x3e, 0xc9, 0x6b, 0xdc, 0x67,
+ 0xa4, 0x47, 0xa7, 0xef, 0xad, 0xe7, 0x94, 0x43,
+ 0x0e, 0x80, 0xd8, 0xab, 0xee, 0x76, 0x09, 0xc2,
+ 0x28, 0x37, 0x63, 0x74, 0x5f, 0xf9, 0x97, 0x54,
+ 0xcb, 0x78, 0xbb, 0x6c, 0xc5, 0xdc, 0x7d, 0x45,
+ 0x08, 0x25, 0x24, 0xc3, 0xe7, 0x72, 0xc1, 0x6b,
+ 0x3d, 0xe5, 0x0f, 0x5d, 0x08, 0x20, 0x7e, 0xa0,
+ 0x53, 0x0b, 0x0d, 0x06, 0x0c, 0xed, 0x23, 0xbb,
+ 0x39, 0x1a, 0x71, 0x2d, 0x4e, 0xbd, 0x6f, 0xb5,
+ 0x44, 0x8d, 0x4b, 0x62, 0x82, 0x43, 0x42, 0x57,
+ 0xd1, 0x98, 0x30, 0x16, 0x81, 0x5f, 0xa4, 0x07,
+ 0x7e, 0x06, 0xc7, 0x51, 0xf6, 0xa4, 0x4a, 0x1c,
+ 0x9d, 0xd7, 0x08, 0x43, 0xcd, 0x72, 0x07, 0xf9,
+ 0xc6, 0x96, 0xde, 0x99, 0x6c, 0x9f, 0x0d, 0xb9,
+ 0x7e, 0xc7, 0x30, 0x76, 0x26, 0xf7, 0x2c, 0xd9,
+ 0x0e, 0xfd, 0xeb, 0x76, 0xea, 0x40, 0xfa, 0x10,
+ 0x5f, 0x33, 0x19, 0x82, 0x8c, 0x1c, 0x8c, 0xf8,
+ 0xc1, 0x81, 0x33, 0xba, 0xa5, 0x6b, 0xef, 0xb5,
+ 0xbe, 0x70, 0xc3, 0x3a, 0xec, 0x7b, 0x7f, 0x44,
+ 0xc1, 0x67, 0xf6, 0xd3, 0xa9, 0x6a, 0x7e, 0x52,
+ 0x24, 0x9c, 0x9e, 0x80, 0xe1, 0xa9, 0x2f, 0x33,
+ 0xfc, 0xd6, 0x1d, 0x20, 0xce, 0x0f, 0x9e, 0xe7,
+ 0xdc, 0x10, 0xf7, 0x5c, 0x49, 0x43, 0x4a, 0x08,
+ 0x49, 0x83, 0x57, 0x42, 0x4c, 0xce, 0x62, 0x0e,
+ 0x66, 0xdd, 0x5d, 0x3f, 0xcb, 0xf6, 0x58, 0x62,
+ 0xb9, 0x6c, 0xe3, 0xd3, 0xef, 0xaa, 0x79, 0x57,
+ 0xe6, 0xcf, 0xdc, 0x5a, 0x12, 0x2d, 0xca, 0x15,
+ 0xb7, 0xcd, 0x4b, 0x0e, 0x1f, 0xdd, 0x02, 0x8f,
+ 0xfe, 0x25, 0xdd, 0xe1, 0xdc, 0xe3, 0x45, 0x88,
+ 0x3f, 0x43, 0x36, 0x75, 0xaf, 0x2f, 0xed, 0x0a,
+ 0x22, 0xc0, 0xfd, 0x1a, 0x06, 0x56, 0x26, 0xf7,
+ 0x68, 0xd5, 0x12, 0x02, 0xea, 0xc5, 0x60, 0xef,
+ 0x3f, 0x46, 0x8b, 0x3d, 0xb1, 0x40, 0x1d, 0xdc,
+ 0xfd, 0x88, 0x83, 0x81, 0xec, 0xfd, 0xf5, 0x21,
+ 0xa0, 0x1c, 0x53, 0xfc, 0x79, 0x1e, 0xc5, 0xbe,
+ 0x6c, 0x18, 0x9d, 0x7e, 0x40, 0x9a, 0xeb, 0x1a,
+ 0x04, 0x41, 0x5f, 0xd9, 0x63, 0xe8, 0x0c, 0x78,
+ 0xda, 0xad, 0x0b, 0xbb, 0x91, 0x2f, 0x88, 0x04,
+ 0xc3, 0xd5, 0x41, 0x5d, 0x2a, 0x36, 0x71, 0x66,
+ 0x61, 0xa3, 0x05, 0xfb, 0xd2, 0xc3, 0x61, 0x05,
+ 0x03, 0x64, 0xf0, 0xb8, 0xf2, 0x73, 0xc8, 0xde,
+ 0x86, 0xca, 0xad, 0xa4, 0x8c, 0x2b, 0xf5, 0xd2,
+ 0x3f, 0x84, 0x82, 0x07, 0xbc, 0x5d, 0x75, 0xb3,
+ 0x37, 0xa3, 0x83, 0x99, 0x23, 0x61, 0x27, 0xbc,
+ 0xa3, 0x5a, 0x22, 0x01, 0x14, 0x22, 0x88, 0x61,
+ 0x7b, 0x42, 0x8f, 0x26, 0xb9, 0x99, 0xda, 0xdb,
+ 0x9c, 0xec, 0x14, 0xe2, 0x96, 0x83, 0x66, 0xc7,
+ 0xeb, 0x4b, 0xfb, 0xc2, 0x8a, 0x00, 0xf7, 0xac,
+ 0x8c, 0x73, 0x1b, 0xc6, 0xd9, 0x6b, 0x6d, 0x37,
+ 0x7a, 0x94, 0xf1, 0xeb, 0x1b, 0x52, 0x2e, 0xab,
+ 0x8b, 0xfc, 0x77, 0x25, 0x8f, 0x21, 0x4a, 0x07,
+ 0x7d, 0x99, 0xf4, 0x55, 0x22, 0xcc, 0x49, 0xdd,
+ 0x26, 0x35, 0x15, 0xe7, 0x40, 0xac, 0xac, 0x8c,
+ 0xd0, 0x58, 0x9d, 0xd4, 0x72, 0x10, 0x81, 0xc9,
+ 0xc0, 0x46, 0x09, 0x2e, 0x12, 0xb9, 0x74, 0x1d,
+ 0xa2, 0x80, 0xce, 0x9e, 0x04, 0x42, 0xf6, 0x55,
+ 0xc1, 0xe9, 0xc5, 0xe4, 0x92, 0x56, 0xe0, 0xb8,
+ 0x7d, 0x3d, 0x21, 0x39, 0x58, 0x05, 0x50, 0xfd,
+ 0x54, 0xb8, 0x08, 0xe1, 0xc2, 0x32, 0xe2, 0x89,
+ 0xee, 0x0e, 0x8a, 0x57, 0xb0, 0xe2, 0x29, 0x9f,
+ 0x78, 0x0f, 0x56, 0x37, 0x5e, 0x34, 0x96, 0xdc,
+ 0x6d, 0xde, 0xc0, 0xad, 0x27, 0xf9, 0xa2, 0x57,
+ 0xec, 0xa9, 0x30, 0x9e, 0x8e, 0xf1, 0x5c, 0xc5,
+ 0xfd, 0x20, 0x83, 0x28, 0x26, 0x2a, 0xbc, 0x22,
+ 0x8d, 0x92, 0x65, 0xe2, 0xf7, 0x3d, 0x60, 0xe5,
+ 0xeb, 0x44, 0x1c, 0xa0, 0xde, 0x04, 0x07, 0x19,
+ 0x52, 0x60, 0xb1, 0x07, 0x34, 0x97, 0xec, 0x81,
+ 0x25, 0x9f, 0x59, 0xe9, 0x67, 0x73, 0x5e, 0x40,
+ 0xd3, 0xc9, 0x50, 0xa8, 0x6e, 0x2b, 0xff, 0x97,
+ 0x40, 0x1d, 0xd0, 0x4b, 0xa4, 0x04, 0x39, 0x01,
+ 0x13, 0xe3, 0x30, 0x85, 0x20, 0x0b, 0x76, 0xae,
+ 0x40, 0x0f, 0x64, 0x0d, 0x60, 0xcc, 0x84, 0x8e,
+ 0xf4, 0x86, 0xc3, 0x3d, 0x8f, 0x38, 0x94, 0xde,
+ 0xfc, 0xfe, 0x58, 0xcd, 0x76, 0x67, 0x3d, 0xb0,
+ 0xfb, 0x27, 0x4a, 0x1a, 0x8f, 0xe4, 0xad, 0xb7,
+ 0x74, 0x81, 0x19, 0x98, 0x3d, 0xea, 0xe3, 0x63,
+ 0x78, 0x44, 0xb9, 0x86, 0xcb, 0xe9, 0x79, 0xc6,
+ 0x08, 0x55, 0xe4, 0xbf, 0xe7, 0xd3, 0xfb, 0x08,
+ 0xd7, 0xfb, 0x96, 0x9a, 0x6b, 0xd1, 0xb4, 0xf3,
+ 0x8a, 0xbb, 0xb4, 0xfd, 0x1b, 0x0f, 0x45, 0xf9,
+ 0x40, 0xd8, 0x13, 0x68, 0xfa, 0xc4, 0x41, 0xb4,
+ 0x3e, 0xe1, 0xbd, 0x7d, 0xfc, 0xa3, 0xb9, 0x7e,
+ 0x79, 0x7f, 0x3b, 0x0c, 0xa6, 0x97, 0x80, 0x0b,
+ 0x1d, 0x98, 0x80, 0x3f, 0xe4, 0x22, 0x3a, 0xf5,
+ 0x48, 0x98, 0x93, 0x41, 0x75, 0x0e, 0x23, 0x11,
+ 0xab, 0x39, 0x29, 0x11, 0xfc, 0x5a, 0x1f, 0xde,
+ 0x1a, 0x61, 0xa7, 0xbc, 0x54, 0x9d, 0x02, 0xa3,
+ 0xb8, 0xd9, 0xdd, 0xb0, 0x13, 0x0f, 0x45, 0x3e,
+ 0x0b, 0x18, 0x1b, 0x2b, 0x4a, 0x8b, 0x25, 0x77,
+ 0x8d, 0xdf, 0x9f, 0x41, 0xa7, 0xea, 0x09, 0xb4,
+ 0x57, 0x11, 0xae, 0x36, 0x92, 0x13, 0x5a, 0xc1,
+ 0x1a, 0xf2, 0xa4, 0x22, 0x6e, 0x02, 0x4b, 0xf9,
+ 0xa5, 0xbe, 0xda, 0x56, 0x07, 0x4b, 0x5d, 0x39,
+ 0xf1, 0x4e, 0xbc, 0xba, 0x03, 0x64, 0x6b, 0xa7,
+ 0x51, 0x7e, 0x32, 0x05, 0xe8, 0x39, 0x0b, 0xfa,
+ 0x7a, 0x7f, 0xb0, 0x51, 0xe7, 0x7c, 0xe0, 0xd9,
+ 0x05, 0x36, 0x25, 0xef, 0xf2, 0xb7, 0x60, 0xec,
+ 0x68, 0x25, 0xac, 0xd1, 0xb3, 0x0b, 0xc5, 0x9f,
+ 0x73, 0xde, 0xb0, 0xb5, 0x03, 0x68, 0xfb, 0xd6,
+ 0xc6, 0x41, 0xce, 0x9b, 0x8e, 0x41, 0x73, 0xa6,
+ 0x72, 0x71, 0x5d, 0x15, 0xa6, 0x09, 0xbb, 0x78,
+ 0xbd, 0x94, 0x52, 0x2e, 0x59, 0x46, 0x36, 0xbe,
+ 0x58, 0x17, 0xa7, 0xbb, 0xbe, 0x95, 0xa4, 0xca,
+ 0x25, 0x4f, 0x02, 0xed, 0x09, 0xc4, 0x5e, 0x0f,
+ 0xf1, 0x64, 0xd1, 0x36, 0x7b, 0x5c, 0xd6, 0xe7,
+ 0xc4, 0xcb, 0x62, 0x00, 0x67, 0xc7, 0x26, 0x4f,
+ 0xf1, 0x85, 0x68, 0xef, 0xcc, 0xb3, 0xda, 0xc0,
+ 0x70, 0xbf, 0xd6, 0x89, 0x24, 0x28, 0xbd, 0x52,
+ 0xf7, 0x45, 0x68, 0xc6, 0x33, 0x5a, 0x35, 0x2c,
+ 0xca, 0x3d, 0xac, 0xa3, 0x26, 0xb0, 0x5d, 0xf9,
+ 0x15, 0x7b, 0xa7, 0xd4, 0xb6, 0xe4, 0xc9, 0x57,
+ 0xdd, 0x04, 0x42, 0xd5, 0x61, 0x1b, 0xe8, 0x29,
+ 0xd8, 0x36, 0xf3, 0x2c, 0x5b, 0x6e, 0xc5, 0x13,
+ 0xf2, 0x39, 0x79, 0x01, 0x0f, 0xcf, 0x04, 0x4e,
+ 0x62, 0x59, 0x40, 0xa9, 0x21, 0x37, 0xb9, 0x8d,
+ 0x09, 0x17, 0x6e, 0x3f, 0x09, 0x03, 0xd5, 0x50,
+ 0xb3, 0x14, 0x07, 0x1e, 0x38, 0x52, 0x42, 0xbd,
+ 0x81, 0x8e, 0xf1, 0xe9, 0x43, 0xe3, 0xc9, 0xbf,
+ 0x86, 0x1e, 0xac, 0xcb, 0xa0, 0xa1, 0x3c, 0x2f,
+ 0x2b, 0xab, 0xe2, 0x95, 0x48, 0xfb, 0x62, 0xe0,
+ 0x29, 0xae, 0x03, 0xaf, 0x67, 0x2e, 0x3c, 0xa8,
+ 0xbf, 0xa2, 0xb7, 0x14, 0x79, 0x0d, 0x37, 0x7d,
+ 0x0b, 0x95, 0x36, 0x98, 0x72, 0x12, 0x27, 0x60,
+ 0xd8, 0x74, 0x66, 0xf2, 0x05, 0xe6, 0x32, 0x7c,
+ 0x8c, 0x81, 0x7a, 0x15, 0x68, 0xf1, 0x46, 0x34,
+ 0xcd, 0x3c, 0x46, 0x9c, 0xa9, 0x1b, 0x90, 0x17,
+ 0xed, 0xd2, 0x2b, 0x85, 0xd9, 0xc4, 0x93, 0x0b,
+ 0xa6, 0xb8, 0x60, 0x19, 0x84, 0x02, 0x13, 0xe2,
+ 0x8f, 0x5e, 0xa7, 0x9c, 0x20, 0x90, 0x12, 0xda,
+ 0xeb, 0x2c, 0xf7, 0x30, 0x29, 0x4b, 0xe6, 0x6d,
+ 0xb0, 0xad, 0x9e, 0x1f, 0x92, 0xda, 0x2a, 0xa8,
+ 0x3a, 0xa0, 0x10, 0xde, 0x63, 0x67, 0xb5, 0x08,
+ 0xff, 0x70, 0xfc, 0xbb, 0x2b, 0x8c, 0x8a, 0xf6,
+ 0xac, 0x53, 0x5e, 0xb5, 0x80, 0x23, 0x08, 0x37,
+ 0x2b, 0x11, 0xb6, 0x19, 0xaa, 0xd4, 0x36, 0x12,
+ 0xbc, 0xfa, 0x5d, 0x80, 0x0d, 0x6e, 0xbf, 0xb9,
+ 0xf6, 0x9b, 0x09, 0xd7, 0x9f, 0xc2, 0x5a, 0xef,
+ 0x11, 0xd7, 0x86, 0x6e, 0x76, 0xac, 0x08, 0xb1,
+ 0x72, 0xb4, 0x3c, 0x60, 0x18, 0x67, 0xa5, 0x68,
+ 0x94, 0xac, 0xcf, 0xb2, 0xe6, 0x2d, 0xd6, 0x40,
+ 0x8b, 0x1f, 0xc0, 0x47, 0xb8, 0x59, 0x35, 0xdf,
+ 0x2d, 0x7c, 0xfc, 0x36, 0x1a, 0xbe, 0x4e, 0xb9,
+ 0x6e, 0x86, 0xff, 0x45, 0xc1, 0xcf, 0x67, 0xd2,
+ 0xf6, 0x0d, 0x8c, 0x25, 0xc7, 0x3d, 0xee, 0x90,
+ 0x07, 0xd8, 0x16, 0x6a, 0xa5, 0xac, 0x1a, 0x58,
+ 0xb2, 0xe2, 0x9f, 0x2a, 0x23, 0x66, 0x45, 0xbf,
+ 0x1b, 0x2d, 0xed, 0x7a, 0x48, 0x7b, 0x79, 0x54,
+ 0x6b, 0xca, 0xe8, 0x17, 0xca, 0x73, 0x55, 0x12,
+ 0x0d, 0x37, 0x82, 0xa5, 0x81, 0x65, 0x74, 0x20,
+ 0xbe, 0x8e, 0xdd, 0x02, 0x7b, 0x85, 0x4d, 0x5a,
+ 0xaa, 0xcc, 0x69, 0xc0, 0x77, 0xb3, 0x34, 0xaf,
+ 0x25, 0xab, 0x68, 0xf4, 0x76, 0x8f, 0xf9, 0x33,
+ 0x5b, 0x97, 0xd7, 0x2c, 0x60, 0xed, 0xff, 0x49,
+ 0xf0, 0xf4, 0xb3, 0x98, 0x0d, 0x88, 0xd4, 0xd8,
+ 0xaa, 0x09, 0x59, 0xcb, 0x3a, 0x29, 0x72, 0x60,
+ 0x88, 0xe0, 0xd0, 0xd2, 0x03, 0xb5, 0x05, 0xf5,
+ 0x1b, 0xa6, 0xc3, 0x02, 0x0a, 0x5c, 0xe2, 0xc1,
+ 0xf8, 0x73, 0x22, 0x01, 0x8c, 0x70, 0x1b, 0x9a,
+ 0xdb, 0xda, 0x66, 0x64, 0xf2, 0xd1, 0x76, 0xef,
+ 0xa4, 0x5b, 0xef, 0xc3, 0x78, 0x0e, 0x83, 0x03,
+ 0x23, 0xc4, 0x3d, 0xa3, 0xaf, 0xd4, 0x7e, 0x39,
+ 0xf6, 0x30, 0xf5, 0x5c, 0x6d, 0x6b, 0xaa, 0xc8,
+ 0x4f, 0xe8, 0xc4, 0xfc, 0xe4, 0x8f, 0xa2, 0x87,
+ 0x3c, 0x2b, 0x13, 0x3f, 0xe4, 0x0a, 0xf7, 0x90,
+ 0x47, 0x1e, 0x78, 0x58, 0x69, 0x9e, 0x93, 0xa4,
+ 0xb0, 0x33, 0x86, 0x3b, 0x0b, 0x4f, 0xaa, 0xb5,
+ 0x09, 0xff, 0xa3, 0x25, 0x24, 0x60, 0xed, 0x23,
+ 0xa5, 0x63, 0x27, 0x44, 0xf9, 0x82, 0xbd, 0x7b,
+ 0x84, 0x1d, 0x50, 0xf4, 0x84, 0xcb, 0x90, 0x45,
+ 0xb2, 0x35, 0x30, 0x2a, 0x41, 0x9e, 0x19, 0xc7,
+ 0xbe, 0x70, 0x9a, 0xff, 0x94, 0x1d, 0xaf, 0x7f,
+ 0xa5, 0x41, 0x85, 0x7a, 0x5b, 0x78, 0x98, 0x0c,
+ 0xa6, 0x39, 0x3b, 0xb9, 0xa5, 0xfe, 0xca, 0xd2,
+ 0x21, 0x8b, 0x84, 0xc1, 0x2e, 0xa4, 0x0f, 0x59,
+ 0x84, 0x51, 0x16, 0xb5, 0xef, 0x62, 0x3f, 0x78,
+ 0xc0, 0x7e, 0x2d, 0x5f, 0xd1, 0x88, 0x89, 0x05,
+ 0xda, 0xdf, 0x73, 0x1a, 0x04, 0xa1, 0x1b, 0xa4,
+ 0x04, 0x29, 0xdf, 0x00, 0x44, 0x02, 0xa9, 0xd6,
+ 0x0b, 0x4a, 0x52, 0x65, 0x99, 0x1e, 0x1a, 0x6c,
+ 0xc1, 0xc1, 0xb0, 0x36, 0x07, 0x61, 0x92, 0xc2,
+ 0x22, 0x12, 0x5a, 0x09, 0x36, 0x66, 0x07, 0xe2,
+ 0x6c, 0x84, 0xd4, 0xf3, 0x72, 0x07, 0xf1, 0x49,
+ 0x48, 0x20, 0xe3, 0x8d, 0x8b, 0x56, 0xf1, 0xf5,
+ 0x9e, 0x93, 0x93, 0x48, 0x42, 0xa3, 0xf9, 0x95,
+ 0x6d, 0x9a, 0xd8, 0x1c, 0x06, 0x05, 0x93, 0x4f,
+ 0x89, 0x51, 0x1f, 0x41, 0xd8, 0xed, 0x6d, 0x59,
+ 0x1c, 0x43, 0x0f, 0x34, 0x78, 0xaf, 0x9b, 0x78,
+ 0xe9, 0x48, 0x4f, 0x7f, 0x0d, 0x57, 0x3b, 0x2b,
+ 0x47, 0xab, 0x1d, 0xb0, 0xaa, 0x41, 0xbe, 0xd2,
+ 0x52, 0x28, 0x27, 0x27, 0xf7, 0xc3, 0x6d, 0x88,
+ 0xcd, 0x28, 0x2b, 0x50, 0xa0, 0xc4, 0x1b, 0x47,
+ 0xb9, 0x57, 0x7f, 0xec, 0xda, 0x6a, 0xe2, 0xaa,
+ 0x39, 0xde, 0x3d, 0x90, 0x04, 0x00, 0x41, 0xd9,
+ 0x69, 0xe8, 0x4e, 0x60, 0x56, 0xb5, 0xd8, 0x80,
+ 0xf2, 0x32, 0x8c, 0xe0, 0x01, 0x99, 0x2e, 0x4c,
+ 0xc0, 0x4f, 0xe0, 0x2c, 0x4a, 0xc7, 0x76, 0xb7,
+ 0xbb, 0xa6, 0x5a, 0x69, 0x83, 0x2d, 0xa3, 0xb0,
+ 0x01, 0x09, 0xd3, 0x6b, 0x19, 0xb0, 0x41, 0x57,
+ 0x4f, 0x2e, 0x14, 0x18, 0xc9, 0xfc, 0x08, 0xd8,
+ 0x3c, 0x85, 0xfe, 0x8f, 0xd6, 0xc3, 0x93, 0x6f,
+ 0xe0, 0xc1, 0x13, 0x7f, 0x36, 0xc8, 0x0a, 0x58,
+ 0x1d, 0x32, 0x72, 0x45, 0xa9, 0x0d, 0xc2, 0x3c,
+ 0xc7, 0xa5, 0x3f, 0xf6, 0x1a, 0xd0, 0x35, 0x9e,
+ 0x47, 0x85, 0x7c, 0x8c, 0x5c, 0x38, 0xce, 0x9d,
+ 0xd5, 0x68, 0xbd, 0x6f, 0x2e, 0x9a, 0xf9, 0x0d,
+ 0x51, 0xa3, 0x7e, 0x42, 0x3c, 0x95, 0x4e, 0x19,
+ 0xe8, 0x57, 0xd3, 0x29, 0xb8, 0x5c, 0x7b, 0x6b,
+ 0x64, 0xb8, 0xa6, 0x9d, 0x7f, 0x95, 0xde, 0x09,
+ 0xd1, 0x84, 0x7f, 0x86, 0xe5, 0xfa, 0xb5, 0x66,
+ 0x6c, 0x52, 0x9f, 0x59, 0xe5, 0x29, 0x6d, 0x58,
+ 0x52, 0x59, 0x2c, 0x2c, 0x10, 0x59, 0xb9, 0x1f,
+ 0x92, 0x4e, 0x9e, 0xc2, 0xf7, 0xc5, 0x53, 0xb7,
+ 0x4f, 0x48, 0xfa, 0x4e, 0xea, 0x73, 0x93, 0x55,
+ 0x97, 0x26, 0x3f, 0xd0, 0xf7, 0x9e, 0x1f, 0xad,
+ 0xfb, 0x57, 0x7b, 0x1f, 0x12, 0xcd, 0x81, 0xe1,
+ 0x0e, 0x5b, 0x7d, 0xda, 0x97, 0xbd, 0x2a, 0xa3,
+ 0x1c, 0xed, 0xc1, 0x83, 0x84, 0x92, 0x09, 0x17,
+ 0x14, 0x8c, 0x49, 0xd1, 0x8d, 0x98, 0xf9, 0xdb,
+ 0x9d, 0xbf, 0x07, 0x64, 0x12, 0xfa, 0x46, 0x9e,
+ 0x22, 0x3a, 0x2d, 0x9a, 0xda, 0xf1, 0x99, 0xb6,
+ 0xbf, 0x1e, 0x79, 0x91, 0x2b, 0x2b, 0x86, 0x2d,
+ 0xbe, 0x67, 0xb0, 0x0a, 0x46, 0x32, 0xbf, 0x24,
+ 0xeb, 0xa7, 0xf0, 0x57, 0x75, 0xa6, 0xf6, 0x3b,
+ 0x75, 0x5d, 0x6c, 0x72, 0x0e, 0x70, 0x9c, 0x85,
+ 0x6e, 0x26, 0xaa, 0x7d, 0xb8, 0x4d, 0xf5, 0xb4,
+ 0x74, 0xb9, 0x05, 0xcc, 0xcb, 0xa6, 0xef, 0x15,
+ 0x75, 0x30, 0xab, 0xc9, 0xab, 0x20, 0xc7, 0x58,
+ 0xbe, 0x20, 0x0d, 0x5e, 0xaa, 0x37, 0x9c, 0xc8,
+ 0x22, 0x39, 0x7b, 0x80, 0xb3, 0xbd, 0xd8, 0x18,
+ 0x62, 0x10, 0xd9, 0xa7, 0x1f, 0xee, 0x8e, 0x8b,
+ 0x90, 0x52, 0x1f, 0xa3, 0xe0, 0x07, 0xc2, 0x81,
+ 0xeb, 0x68, 0x74, 0x6d, 0xef, 0xf8, 0xb4, 0xbb,
+ 0xbf, 0x08, 0xe8, 0x8b, 0x21, 0x00, 0xa7, 0x53,
+ 0x2b, 0xd6, 0x95, 0x45, 0xb0, 0xb2, 0x3b, 0x08,
+ 0xe2, 0x49, 0xf6, 0xb2, 0xae, 0xc1, 0xf6, 0x19,
+ 0xd1, 0x0a, 0xf0, 0x73, 0xbd, 0x01, 0x89, 0xd0,
+ 0x68, 0xc2, 0xbb, 0xdb, 0x67, 0x6c, 0x8c, 0xe5,
+ 0x9f, 0x09, 0xff, 0x80, 0x74, 0x61, 0xe7, 0xa9,
+ 0x1a, 0xbe, 0xca, 0x0b, 0x2a, 0x1d, 0x6a, 0x6c,
+ 0x04, 0xa0, 0x61, 0x40, 0x70, 0x85, 0x2f, 0x24,
+ 0x72, 0xec, 0x1a, 0x4b, 0xa0, 0x35, 0x95, 0x06,
+ 0xa9, 0x7c, 0x1f, 0x90, 0x77, 0xd5, 0xb6, 0xdd,
+ 0x7f, 0x41, 0x0f, 0xcd, 0x82, 0xd0, 0x19, 0xc4,
+ 0x7e, 0x89, 0xd6, 0x33, 0x8a, 0x68, 0x9d, 0x44,
+ 0x74, 0x2e, 0x6a, 0x84, 0xb4, 0xe4, 0x86, 0x35,
+ 0xd9, 0x19, 0x21, 0x44, 0x57, 0x80, 0x20, 0xb0,
+ 0xf0, 0xdb, 0xcd, 0xe7, 0x50, 0x17, 0x0c, 0x00,
+ 0x79, 0x28, 0xb6, 0xe0, 0xfa, 0x94, 0xc2, 0x96,
+ 0x8d, 0xf9, 0xc4, 0x8c, 0x02, 0xb9, 0x4a, 0x6f,
+ 0xa4, 0x57, 0x73, 0x91, 0x1b, 0x31, 0x29, 0xfc,
+ 0x7d, 0x53, 0x61, 0x01, 0x95, 0xd8, 0x5c, 0xa6,
+ 0x1f, 0xc4, 0x72, 0xf5, 0xd2, 0x98, 0xc6, 0xa9,
+ 0x50, 0x2a, 0x40, 0x01, 0xe4, 0xb0, 0x0a, 0x4c,
+ 0x38, 0x2c, 0x3a, 0xdc, 0x2a, 0x4e, 0x23, 0x69,
+ 0x55, 0x1a, 0x21, 0xcd, 0x14, 0xae, 0x22, 0xe9,
+ 0x42, 0x31, 0xa3, 0x0a, 0x73, 0x77, 0x8e, 0x80,
+ 0x56, 0xc0, 0x9e, 0xc2, 0xca, 0xb2, 0x0f, 0xb5,
+ 0x1e, 0x3a, 0x96, 0xf5, 0x32, 0xc5, 0x46, 0xd1,
+ 0x02, 0x96, 0x50, 0x9c, 0x2a, 0xd4, 0xef, 0x06,
+ 0x04, 0xc2, 0x61, 0xf6, 0xb8, 0x41, 0x08, 0x74,
+ 0x04, 0xbc, 0x4e, 0x18, 0xc8, 0x72, 0x18, 0xc2,
+ 0xc8, 0xbe, 0xde, 0x52, 0x7d, 0xc0, 0x83, 0xc0,
+ 0x9b, 0xe2, 0xd8, 0xbd, 0x38, 0x38, 0xd9, 0xa3,
+ 0xa9, 0x5c, 0x6e, 0xba, 0x38, 0xe6, 0x4e, 0xea,
+ 0x7c, 0xb1, 0x10, 0x59, 0x41, 0x9e, 0x64, 0xd9,
+ 0x41, 0x01, 0xbc, 0x94, 0x77, 0x0b, 0x12, 0x1e,
+ 0xbf, 0x92, 0x98, 0xbc, 0xe9, 0x8b, 0xb0, 0x25,
+ 0x1f, 0xb5, 0xe0, 0xcb, 0x7d, 0xd2, 0x15, 0xa3,
+ 0x0e, 0x67, 0x50, 0x30, 0x80, 0xe2, 0x83, 0xe2,
+ 0x5f, 0xe8, 0xa8, 0x44, 0x84, 0x89, 0x30, 0x2c,
+ 0x66, 0x26, 0x7e, 0x22, 0xba, 0xfa, 0xa5, 0xd0,
+ 0x15, 0x82, 0x9d, 0x2c, 0x23, 0x49, 0x79, 0x22,
+ 0x91, 0x94, 0xc0, 0x73, 0xe8, 0xf8, 0x05, 0x26,
+ 0x8c, 0x5c, 0xc4, 0xf0, 0xae, 0x88, 0x53, 0xce,
+ 0x5d, 0x7b, 0xaf, 0x39, 0x07, 0x33, 0x7a, 0x3d,
+ 0x9b, 0xe3, 0x4a, 0x5a, 0xbe, 0xeb, 0xed, 0x0f,
+ 0x3b, 0xfe, 0xe2, 0x44, 0x59, 0x52, 0xdc, 0xab,
+ 0x76, 0xfa, 0x44, 0xb8, 0x8e, 0x63, 0x9c, 0x86,
+ 0xeb, 0x9e, 0x3f, 0x36, 0x07, 0x49, 0xf5, 0x06,
+ 0x70, 0xa2, 0x92, 0x24, 0xff, 0x82, 0x3b, 0xd2,
+ 0x31, 0x37, 0x71, 0x66, 0xe4, 0x1d, 0x56, 0x6e,
+ 0x55, 0x53, 0xb0, 0x7c, 0x5d, 0x16, 0xa6, 0xb3,
+ 0x1d, 0x6f, 0x53, 0x8c, 0x79, 0x2e, 0xe2, 0xe8,
+ 0xa5, 0x94, 0x41, 0x33, 0xaf, 0xc6, 0x5c, 0x10,
+ 0xd9, 0x2f, 0xa7, 0xf0, 0xbe, 0xf1, 0xe5, 0x3b,
+ 0x60, 0x72, 0x74, 0xc3, 0x26, 0x9b, 0x01, 0x6f,
+ 0xa2, 0x67, 0xa4, 0xcf, 0x00, 0xb8, 0x31, 0xf5,
+ 0xda, 0x6b, 0x69, 0x30, 0x4f, 0x39, 0x37, 0x2c,
+ 0x90, 0xf3, 0x2e, 0xff, 0x49, 0x4b, 0xfd, 0x1b,
+ 0xd6, 0xa1, 0xfe, 0xbd, 0x14, 0x2d, 0x8f, 0xad,
+ 0x73, 0xb0, 0x43, 0xa1, 0x48, 0x85, 0xa0, 0xf0,
+ 0x53, 0xcc, 0xd5, 0xf3, 0xe9, 0x58, 0xb2, 0xca,
+ 0x53, 0x02, 0x0b, 0x44, 0x86, 0xec, 0xe2, 0x1e,
+ 0xc8, 0xca, 0x07, 0x5b, 0x1d, 0xb4, 0x2f, 0x8e,
+ 0xe4, 0xf4, 0x38, 0x5b, 0xb0, 0x0a, 0xb9, 0xa3,
+ 0xe7, 0xe7, 0x05, 0x98, 0x5a, 0x56, 0x19, 0x59,
+ 0x46, 0xd8, 0xa9, 0xd1, 0xd8, 0x45, 0x3c, 0xcb,
+ 0x3f, 0xe4, 0xbf, 0x4f, 0x14, 0xfc, 0x88, 0x1d,
+ 0xb7, 0x7b, 0xf4, 0x95, 0xb6, 0xcc, 0x79, 0xc3,
+ 0x25, 0x9d, 0x7a, 0x95, 0x7a, 0xa2, 0xfb, 0xbf,
+ 0xf2, 0x32, 0x3a, 0x7d, 0x18, 0x84, 0x8b, 0xc2,
+ 0x1e, 0x9c, 0x86, 0x52, 0x70, 0xe4, 0x4d, 0x74,
+ 0x4f, 0xe0, 0xa3, 0x0a, 0x2a, 0x31, 0x03, 0x47,
+ 0x0d, 0x3c, 0xab, 0xb9, 0xc0, 0xf5, 0x09, 0x3d,
+ 0x5e, 0x5f, 0x62, 0x7c, 0xc0, 0xd4, 0x1f, 0x26,
+ 0x4b, 0x53, 0x5f, 0x63, 0x65, 0x7e, 0xb2, 0xba,
+ 0xd6, 0x24, 0x60, 0xc8, 0xe8, 0xf7, 0xf9, 0x05,
+ 0x34, 0xaf, 0xed, 0xef, 0xf9, 0x3f, 0x75, 0x7b,
+ 0x99, 0xa0, 0xc7, 0xca, 0x40, 0x63, 0x67, 0x6c,
+ 0x90, 0xa0, 0xb6, 0xe6, 0xed, 0xf1, 0x12, 0x73,
+ 0x77, 0x8e, 0x97, 0xa5, 0xa7, 0xb1, 0xd1, 0xf3,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x06, 0x0e, 0x19, 0x1f, 0x25,
+ 0x2c, 0x36, 0x40, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0x02, 0xc2, 0x08, 0xda, 0x0f, 0x0e, 0x0c, 0x49,
+ 0x39, 0xab, 0x53, 0x31, 0x83, 0x2e, 0x41, 0x5d,
+ 0xe4, 0x76, 0x31, 0x1e, 0x65, 0x71, 0xe5, 0xb6,
+ 0x8d, 0xe8, 0xb3, 0xa5, 0xd9, 0x9e, 0xb7, 0x99,
+ 0x1a, 0x3d, 0x3e, 0xa9, 0x54, 0xf8, 0xb3, 0x74,
+ 0xe7, 0x01, 0x02, 0x4e, 0x23, 0xbf, 0x9b, 0xd3,
+ 0x2a, 0x03, 0xd6, 0x1a, 0x96, 0x7f, 0xf8, 0xc2,
+ 0xc5, 0x36, 0x3b, 0x4f, 0xe1, 0x96, 0x93, 0x59,
+ 0x06, 0x28, 0x64, 0xce, 0x2e, 0x73, 0xad, 0xab,
+ 0xf6, 0x57, 0xe1, 0x84, 0x1c, 0x7d, 0x7b, 0x9b,
+ 0x70, 0x33, 0x12, 0x48, 0x04, 0xe6, 0x1c, 0x6b,
+ 0x5b, 0x45, 0x37, 0xcd, 0x5f, 0x00, 0x2e, 0x21,
+ 0xb9, 0xd5, 0x86, 0x2d, 0x3e, 0x50, 0x30, 0x42,
+ 0x2b, 0x13, 0xf8, 0x7b, 0x81, 0x6c, 0x4e, 0xe6,
+ 0x17, 0xa3, 0x5e, 0xa8, 0x34, 0x53, 0x64, 0x15,
+ 0xf3, 0xb6, 0xf5, 0x90, 0x8f, 0xa6, 0x23, 0x7f,
+ 0x88, 0x71, 0xea, 0x25, 0x0a, 0x17, 0xc9, 0xd1,
+ 0x34, 0x2c, 0xb4, 0xc5, 0x14, 0xa4, 0x03, 0xe1,
+ 0x07, 0x01, 0xba, 0x22, 0x57, 0x97, 0xcd, 0x3b,
+ 0xe0, 0xfc, 0xb1, 0xe5, 0xa4, 0x22, 0x72, 0xcb,
+ 0x88, 0xb7, 0xaa, 0x84, 0x75, 0xae, 0x62, 0xff,
+ 0x1a, 0x9f, 0x45, 0xd6, 0x2f, 0xd6, 0xad, 0x29,
+ 0xa3, 0x4c, 0x9c, 0x7c, 0x55, 0xc5, 0xec, 0x4c,
+ 0xc2, 0x7a, 0xad, 0x60, 0x65, 0x06, 0xfc, 0x7d,
+ 0xf2, 0x67, 0xce, 0xf8, 0x11, 0xea, 0xbf, 0xd8,
+ 0x84, 0x94, 0xf2, 0x13, 0xa2, 0xa8, 0x39, 0xe1,
+ 0x0d, 0x47, 0x94, 0x8b, 0x1d, 0x4b, 0x51, 0xd3,
+ 0xf9, 0x2f, 0x91, 0x76, 0x20, 0x4e, 0x22, 0xf8,
+ 0x81, 0xc4, 0xac, 0xf6, 0xf1, 0x2f, 0x38, 0x2a,
+ 0x78, 0x00, 0xa8, 0xbb, 0x9e, 0xfa, 0xa8, 0x1c,
+ 0xaa, 0xc4, 0x7e, 0x6e, 0x30, 0xcc, 0x79, 0x17,
+ 0xc6, 0x4e, 0x85, 0x9a, 0x96, 0x13, 0xef, 0x85,
+ 0x7d, 0x7a, 0x91, 0x61, 0xfa, 0x8b, 0x8b, 0xdb,
+ 0x85, 0x22, 0x69, 0x4a, 0x64, 0x36, 0x12, 0xc1,
+ 0x9e, 0x13, 0x8e, 0x63, 0xaf, 0x35, 0xf4, 0xc8,
+ 0x11, 0x9a, 0x77, 0xfa, 0x52, 0xe3, 0x63, 0x8a,
+ 0xdc, 0x62, 0x91, 0xcd, 0xe1, 0x13, 0xe3, 0x4d,
+ 0x9d, 0xfc, 0xd1, 0xb1, 0x42, 0xbb, 0x67, 0xcd,
+ 0x2c, 0xc8, 0xb3, 0x14, 0x36, 0x95, 0xba, 0x7e,
+ 0xbb, 0x84, 0xa0, 0x34, 0x8b, 0x63, 0x5f, 0x8e,
+ 0x55, 0xb8, 0xde, 0x9f, 0x09, 0x7b, 0x43, 0x61,
+ 0xac, 0x7d, 0x99, 0xa6, 0xc5, 0x2d, 0xb1, 0x2d,
+ 0x37, 0xde, 0x54, 0x9a, 0x46, 0x70, 0x2f, 0xc0,
+ 0xdf, 0xb8, 0x2b, 0x9c, 0xbe, 0x91, 0x77, 0x10,
+ 0xb4, 0xb9, 0x75, 0xe4, 0xe2, 0xb3, 0x70, 0x09,
+ 0x5c, 0x34, 0x14, 0x69, 0x9c, 0x00, 0xcf, 0x47,
+ 0x4a, 0x2d, 0xf1, 0x14, 0xdb, 0xc1, 0xca, 0xf6,
+ 0xcd, 0x8f, 0x2e, 0x03, 0xfc, 0x36, 0xa4, 0x5b,
+ 0x11, 0x95, 0x5f, 0x42, 0x77, 0xf9, 0x03, 0x7c,
+ 0xe8, 0x2f, 0x99, 0xd7, 0x59, 0x75, 0x62, 0xb1,
+ 0x70, 0x01, 0x8d, 0x11, 0x32, 0xe3, 0xbb, 0xad,
+ 0x0d, 0x97, 0x0f, 0x1a, 0xe0, 0x36, 0x6b, 0x0c,
+ 0x2e, 0xf9, 0x47, 0xfa, 0xb6, 0xae, 0x65, 0x07,
+ 0x1e, 0xf6, 0x8a, 0x89, 0x54, 0xbe, 0xa8, 0x98,
+ 0xce, 0x08, 0xf2, 0xe5, 0xbf, 0x86, 0xed, 0x35,
+ 0x8b, 0xc0, 0x6b, 0x75, 0x06, 0x1f, 0x4a, 0xb1,
+ 0x21, 0x95, 0xf3, 0x61, 0xcf, 0x4e, 0x64, 0xab,
+ 0x61, 0x34, 0xf4, 0x54, 0x4c, 0xe1, 0x60, 0x8a,
+ 0xba, 0x2b, 0x71, 0x7c, 0xf5, 0xe2, 0x38, 0xfa,
+ 0x75, 0xad, 0x09, 0x43, 0x45, 0x0d, 0x0d, 0x1b,
+ 0x24, 0xe0, 0x92, 0xe8, 0xdf, 0xcd, 0xe6, 0x98,
+ 0xde, 0x4b, 0xc1, 0xda, 0x7b, 0x91, 0xc8, 0x80,
+ 0x0f, 0xe6, 0xee, 0xeb, 0x77, 0x21, 0xe7, 0xb3,
+ 0x7c, 0x30, 0xaa, 0xb0, 0x49, 0xfe, 0x43, 0x40,
+ 0xbd, 0x62, 0x24, 0xb3, 0x96, 0xaa, 0x3c, 0x5a,
+ 0x3e, 0x7d, 0x5f, 0xc6, 0x7d, 0x5b, 0x09, 0xf0,
+ 0x92, 0xdf, 0x07, 0x00, 0xb8, 0xac, 0x46, 0x8f,
+ 0x87, 0x5b, 0x18, 0x93, 0x6c, 0x59, 0xf7, 0xdf,
+ 0x6a, 0xa3, 0x7a, 0xf6, 0xcb, 0x75, 0x85, 0xee,
+ 0x0e, 0x86, 0xd6, 0xb4, 0x0a, 0xa3, 0x29, 0xc9,
+ 0x8b, 0x94, 0xc9, 0xa2, 0x6d, 0xbe, 0x4e, 0xd7,
+ 0xf9, 0x6e, 0xff, 0xde, 0x01, 0x63, 0x3f, 0x4d,
+ 0xd0, 0x4b, 0xb5, 0x8a, 0xfb, 0x8f, 0x9e, 0xd3,
+ 0x6d, 0xba, 0x3c, 0x5c, 0x24, 0xae, 0xb1, 0x8e,
+ 0x54, 0xfc, 0x3f, 0x62, 0xf3, 0x0e, 0xf7, 0x7b,
+ 0x74, 0xc8, 0x4a, 0x88, 0x0a, 0xc1, 0x2f, 0x94,
+ 0x6b, 0x30, 0xdd, 0xeb, 0x9f, 0xd6, 0x9c, 0x6d,
+ 0x09, 0xf3, 0x78, 0x35, 0x85, 0x24, 0xf2, 0x9f,
+ 0xf3, 0xf3, 0x26, 0xc2, 0x18, 0x82, 0x4d, 0xe7,
+ 0x78, 0xad, 0x9e, 0x3e, 0x3a, 0xe1, 0xab, 0xe6,
+ 0x35, 0x53, 0x8f, 0x1a, 0xf8, 0x07, 0xb6, 0x70,
+ 0x9c, 0xd4, 0x2b, 0x36, 0xd4, 0xbd, 0xde, 0xae,
+ 0x12, 0x79, 0x1b, 0x25, 0x56, 0x14, 0xea, 0x6e,
+ 0x9f, 0x2e, 0xc6, 0xc6, 0xeb, 0xc3, 0x20, 0xc4,
+ 0x44, 0x34, 0xda, 0x0a, 0x3f, 0x36, 0x78, 0xdd,
+ 0x9f, 0xef, 0xc6, 0x18, 0x34, 0x6d, 0x4f, 0xa3,
+ 0x86, 0x26, 0xdb, 0x97, 0x2f, 0x85, 0xee, 0xe1,
+ 0x4d, 0xfa, 0xbd, 0x50, 0xc7, 0x5d, 0x2a, 0xaf,
+ 0x59, 0x38, 0xca, 0xea, 0xfb, 0x11, 0x50, 0xcb,
+ 0x71, 0x8a, 0x4e, 0xcc, 0xe9, 0x5e, 0x2d, 0xf4,
+ 0x06, 0xe7, 0x9f, 0x2f, 0xcb, 0xea, 0x49, 0x8a,
+ 0x67, 0x9d, 0x07, 0x35, 0xfc, 0x5a, 0x34, 0x73,
+ 0xd7, 0x79, 0x3c, 0x93, 0x24, 0xf7, 0x2c, 0x2a,
+ 0xe0, 0x23, 0x2c, 0x39, 0x66, 0x8e, 0x17, 0x36,
+ 0x29, 0xef, 0xcb, 0xfc, 0x1c, 0xba, 0x25, 0xa3,
+ 0xeb, 0x18, 0x25, 0xaa, 0x28, 0x85, 0x51, 0xab,
+ 0x83, 0x5f, 0xe3, 0x49, 0x8a, 0xf4, 0x35, 0x81,
+ 0x34, 0xd0, 0x03, 0xc8, 0x8c, 0x3e, 0xc3, 0x4c,
+ 0x9c, 0xcd, 0x61, 0xfe, 0x1f, 0xf4, 0x69, 0xa1,
+ 0x84, 0x27, 0x66, 0x37, 0xf0, 0x50, 0xad, 0x2e,
+ 0xcd, 0xa4, 0xe7, 0xf8, 0x8c, 0xc0, 0xcf, 0x45,
+ 0xed, 0x91, 0x55, 0xa0, 0x01, 0x88, 0x93, 0xd8,
+ 0x28, 0x16, 0x3f, 0x46, 0x1e, 0x06, 0x32, 0x3d,
+ 0x0b, 0x71, 0xc2, 0x4b, 0x79, 0xd2, 0x5e, 0xfa,
+ 0xea, 0x1c, 0xa9, 0xcd, 0xfe, 0x1e, 0x18, 0x68,
+ 0x44, 0x17, 0x02, 0xea, 0x8b, 0xaf, 0xd6, 0xfe,
+ 0xb0, 0x67, 0xdb, 0x9f, 0x64, 0x04, 0x29, 0x58,
+ 0xd7, 0x74, 0x40, 0x4d, 0x29, 0xee, 0x72, 0x1c,
+ 0x11, 0xe9, 0x66, 0x44, 0x49, 0x6c, 0x26, 0x4d,
+ 0x0b, 0xec, 0x26, 0x0a, 0x64, 0x89, 0x32, 0x48,
+ 0xe4, 0x28, 0x35, 0x0e, 0x42, 0x6a, 0xf0, 0x6b,
+ 0x6b, 0x84, 0x0a, 0x3d, 0xf7, 0x42, 0x81, 0x38,
+ 0x0d, 0x77, 0x58, 0x6f, 0x41, 0x86, 0x13, 0x5e,
+ 0x25, 0x95, 0x3d, 0xb8, 0x22, 0x9f, 0x25, 0xc8,
+ 0x65, 0xf2, 0x72, 0x7c, 0xa0, 0xae, 0xa5, 0xfc,
+ 0xcb, 0x91, 0x72, 0x5f, 0x04, 0x3a, 0xe1, 0x64,
+ 0xea, 0x6c, 0x1b, 0x1d, 0xad, 0xfa, 0x63, 0xdd,
+ 0x30, 0x8f, 0x98, 0xb8, 0x8f, 0x17, 0xaf, 0x38,
+ 0x5a, 0x12, 0xaa, 0x3f, 0x7b, 0xf4, 0xc2, 0xa3,
+ 0x9b, 0x74, 0xa1, 0x98, 0xf3, 0xb5, 0xb1, 0x50,
+ 0x74, 0x36, 0x14, 0x6d, 0x9b, 0x8a, 0xae, 0xfe,
+ 0xd9, 0x40, 0xf9, 0x59, 0x65, 0x57, 0x38, 0xe8,
+ 0x1a, 0xa8, 0x7d, 0xfc, 0xac, 0xd1, 0xd7, 0x45,
+ 0x2e, 0x40, 0xfa, 0xdc, 0x33, 0x61, 0x32, 0x30,
+ 0x24, 0x20, 0x45, 0x44, 0xbb, 0x0b, 0x04, 0xb3,
+ 0xf0, 0x07, 0x0a, 0x4c, 0x27, 0xf6, 0xdb, 0x6d,
+ 0x5d, 0x5e, 0x07, 0x1e, 0x52, 0x19, 0x8a, 0x40,
+ 0x01, 0x3b, 0xeb, 0x68, 0x90, 0x13, 0xc3, 0x4a,
+ 0x7a, 0xe3, 0xb9, 0x3a, 0xd7, 0x19, 0x8d, 0xbb,
+ 0xcd, 0x09, 0x10, 0xc7, 0x16, 0x3f, 0x0a, 0xf8,
+ 0xdd, 0x32, 0x84, 0x40, 0x0e, 0xe7, 0xc5, 0xf7,
+ 0x7e, 0x00, 0x1a, 0xb1, 0x62, 0xa5, 0xcf, 0x2f,
+ 0xf8, 0xf2, 0x99, 0x17, 0xd7, 0x4e, 0x76, 0xe0,
+ 0x07, 0xe7, 0xd4, 0xc0, 0x50, 0xf8, 0xfb, 0xb9,
+ 0xce, 0x1d, 0x3c, 0x6b, 0xbd, 0x4d, 0xc5, 0xfc,
+ 0xc9, 0xc0, 0x46, 0xb4, 0xbe, 0x70, 0x9c, 0x5e,
+ 0x26, 0xdb, 0x91, 0x75, 0xd1, 0x6d, 0x87, 0x3c,
+ 0x97, 0xac, 0x44, 0xac, 0x7b, 0x5a, 0x57, 0xca,
+ 0x3d, 0x28, 0x77, 0x51, 0x99, 0x0f, 0x2e, 0x63,
+ 0x87, 0x35, 0xed, 0x72, 0x3c, 0x66, 0x01, 0x1e,
+ 0xf2, 0x09, 0xc0, 0xa7, 0xf9, 0xe8, 0x63, 0x8a,
+ 0x69, 0x4e, 0x39, 0x5e, 0xdd, 0x39, 0x5f, 0x5b,
+ 0x82, 0xc9, 0xc4, 0x90, 0x79, 0x76, 0x75, 0x73,
+ 0x6e, 0x5e, 0xbc, 0x1a, 0xa5, 0xae, 0x62, 0xd2,
+ 0x1b, 0x7d, 0xe0, 0x16, 0xe2, 0x9c, 0x75, 0xc2,
+ 0x9c, 0x38, 0x08, 0x5b, 0xe5, 0x41, 0x59, 0x8e,
+ 0x6d, 0xd9, 0x0c, 0x32, 0x5e, 0x84, 0x63, 0xb0,
+ 0x5e, 0xad, 0x81, 0x7a, 0x4e, 0xfc, 0xcc, 0xfd,
+ 0x71, 0x05, 0x91, 0x06, 0x73, 0x34, 0xee, 0xc2,
+ 0xba, 0xbb, 0x84, 0x8a, 0x9c, 0xf4, 0x95, 0xc7,
+ 0xee, 0x3c, 0xd4, 0xc0, 0xbf, 0x7a, 0x5d, 0x73,
+ 0x64, 0x9b, 0xff, 0x6a, 0x51, 0x4b, 0xe4, 0x85,
+ 0xbf, 0x77, 0x5e, 0xc0, 0x32, 0x57, 0x3f, 0x0f,
+ 0xe3, 0xbc, 0xf2, 0xcf, 0x36, 0x86, 0x85, 0xd4,
+ 0x01, 0xd2, 0x99, 0xf7, 0x23, 0xe9, 0x25, 0xa4,
+ 0x54, 0x2c, 0xf6, 0x12, 0x97, 0xc3, 0x1b, 0xc4,
+ 0x55, 0xc4, 0x59, 0xb7, 0x3b, 0x5d, 0xa0, 0x88,
+ 0xa6, 0x80, 0xf7, 0x7f, 0x92, 0x06, 0xd3, 0x47,
+ 0x35, 0x7c, 0xbb, 0xf5, 0x0a, 0x01, 0xc9, 0x5a,
+ 0xdd, 0x8d, 0x31, 0x2e, 0xe5, 0xcf, 0x09, 0x93,
+ 0x76, 0x9c, 0x55, 0xc7, 0xe0, 0x4f, 0xef, 0x4d,
+ 0x53, 0x63, 0x5d, 0x4f, 0x2d, 0x00, 0x5a, 0x40,
+ 0x83, 0xc4, 0x61, 0xb5, 0x62, 0x5f, 0x95, 0x22,
+ 0x02, 0xc9, 0x34, 0xa1, 0x3b, 0xf7, 0x5e, 0x9a,
+ 0xbc, 0xaf, 0xba, 0xa1, 0x3b, 0xe1, 0x15, 0x9d,
+ 0x29, 0xa9, 0xd5, 0x16, 0x9e, 0x96, 0x1a, 0x4e,
+ 0x2a, 0xe0, 0x30, 0x88, 0x56, 0x62, 0x9a, 0x89,
+ 0x49, 0x6b, 0x54, 0x02, 0x8d, 0x59, 0x87, 0xc6,
+ 0x8b, 0x08, 0xc9, 0xfd, 0x0e, 0x35, 0x64, 0x8f,
+ 0xc7, 0x78, 0xde, 0x3b, 0x7f, 0x8a, 0x43, 0xa1,
+ 0x18, 0xbc, 0x56, 0xec, 0xab, 0x4e, 0x35, 0x50,
+ 0x1f, 0x22, 0x3e, 0xd1, 0x78, 0x07, 0x3d, 0x9e,
+ 0xb3, 0xa0, 0x06, 0x7e, 0x59, 0xd7, 0x7f, 0xd6,
+ 0xf6, 0xe9, 0xf6, 0x15, 0x9f, 0xf8, 0x51, 0xfb,
+ 0xe2, 0x16, 0x62, 0x36, 0xfb, 0xca, 0x9f, 0x36,
+ 0x64, 0x6f, 0xba, 0x6b, 0x99, 0x68, 0x43, 0xe6,
+ 0xd5, 0x53, 0x84, 0xfa, 0xa9, 0x27, 0x04, 0x5c,
+ 0x66, 0x7a, 0x41, 0x63, 0x09, 0x95, 0x4e, 0xa3,
+ 0xe6, 0xc9, 0x62, 0x47, 0x3e, 0xb3, 0x50, 0xdf,
+ 0x8c, 0xee, 0xe0, 0xe9, 0x02, 0xd0, 0xf3, 0x14,
+ 0xc1, 0x26, 0x18, 0xd8, 0xd2, 0xef, 0xa8, 0xac,
+ 0x1b, 0x03, 0x49, 0x34, 0x67, 0x1d, 0xd8, 0xb4,
+ 0xad, 0x98, 0xdd, 0xd9, 0x47, 0x26, 0x12, 0xd0,
+ 0x3c, 0x47, 0x89, 0x09, 0x23, 0xc9, 0x7d, 0xba,
+ 0xba, 0x48, 0x65, 0x44, 0xe6, 0x24, 0xcb, 0xb1,
+ 0x60, 0x48, 0x44, 0x5c, 0xdb, 0x37, 0x95, 0x7f,
+ 0x95, 0xf8, 0x41, 0x92, 0x91, 0x96, 0xd0, 0xf9,
+ 0xef, 0x54, 0xdf, 0x88, 0x77, 0x58, 0x8e, 0xae,
+ 0x33, 0xea, 0xa4, 0x39, 0x9f, 0x00, 0xf5, 0x6e,
+ 0x4e, 0x50, 0x15, 0xe1, 0x9e, 0x09, 0xb7, 0x5d,
+ 0xab, 0xb2, 0x4b, 0x00, 0xcc, 0x13, 0x10, 0x44,
+ 0x0b, 0xb1, 0xb9, 0x3b, 0xed, 0x8d, 0x8c, 0x53,
+ 0x22, 0x5b, 0x78, 0x91, 0xce, 0x0d, 0xa0, 0x85,
+ 0x33, 0x5f, 0x93, 0x55, 0xc2, 0xf2, 0xec, 0xef,
+ 0x71, 0xb7, 0x61, 0x4f, 0x43, 0x32, 0xfa, 0xf4,
+ 0x4b, 0x1d, 0xb8, 0xe0, 0x9b, 0xb8, 0x28, 0xcb,
+ 0xc2, 0xa6, 0x76, 0x6c, 0x2c, 0xdd, 0x2d, 0xe3,
+ 0x1e, 0x78, 0xc3, 0xd0, 0xe0, 0x64, 0xfd, 0xf9,
+ 0x47, 0x2f, 0xd7, 0x7c, 0x9e, 0x12, 0x49, 0x17,
+ 0x1a, 0x0c, 0xd2, 0xab, 0xd7, 0xf5, 0x53, 0xb3,
+ 0x02, 0x16, 0xc8, 0xd9, 0xdd, 0x1f, 0x4d, 0xaa,
+ 0xc1, 0xe6, 0xf5, 0xfd, 0x6b, 0xee, 0xb8, 0x54,
+ 0x7c, 0x6b, 0x82, 0x77, 0xd0, 0x94, 0x42, 0xca,
+ 0x66, 0xaf, 0xdb, 0x17, 0xae, 0xff, 0x37, 0x83,
+ 0x98, 0x59, 0x08, 0x0e, 0xd2, 0xb4, 0x7c, 0x58,
+ 0x87, 0xaa, 0xb9, 0xad, 0x75, 0x5e, 0x24, 0xab,
+ 0xb9, 0xed, 0xd4, 0x00, 0x7d, 0xb8, 0x68, 0xf4,
+ 0xc4, 0x92, 0x97, 0x89, 0x54, 0x2e, 0xd1, 0x1c,
+ 0x9a, 0xd8, 0xf4, 0xb2, 0xb1, 0x15, 0xbb, 0x06,
+ 0x74, 0x37, 0xb5, 0xb5, 0xcd, 0x7b, 0x77, 0x7f,
+ 0x8d, 0xdd, 0x66, 0xd4, 0xd9, 0xd9, 0x25, 0x20,
+ 0xbc, 0x87, 0x2a, 0xe2, 0xff, 0x7e, 0xd1, 0x96,
+ 0xea, 0x12, 0x48, 0xc6, 0x09, 0xc1, 0x93, 0x2d,
+ 0x5f, 0x02, 0x10, 0x90, 0xb3, 0x86, 0x0b, 0x47,
+ 0x2e, 0x43, 0xf0, 0xe4, 0x6c, 0xa3, 0x0f, 0x45,
+ 0x1c, 0x8e, 0x09, 0x4c, 0x71, 0xde, 0x2d, 0x99,
+ 0x90, 0x31, 0x13, 0x60, 0x29, 0x34, 0xef, 0x6d,
+ 0x6d, 0x95, 0xab, 0x77, 0x7e, 0xa2, 0xb4, 0x6a,
+ 0xa5, 0x63, 0xa8, 0x94, 0x4a, 0xd7, 0x95, 0xf3,
+ 0xa5, 0xe1, 0x23, 0x53, 0x51, 0x9d, 0xd7, 0xe4,
+ 0xeb, 0xe5, 0xee, 0xdf, 0xbe, 0x96, 0x3a, 0x38,
+ 0xef, 0x06, 0xa9, 0x44, 0xf0, 0xad, 0xab, 0x37,
+ 0xc2, 0x67, 0xcf, 0x63, 0xc3, 0xd6, 0x22, 0x2e,
+ 0x16, 0x3b, 0x5a, 0xa3, 0xf6, 0xf8, 0x0b, 0xdf,
+ 0xf8, 0xa5, 0xcb, 0x19, 0x29, 0x65, 0xad, 0x8e,
+ 0xec, 0x42, 0xec, 0x0b, 0x1d, 0x16, 0xc9, 0xf7,
+ 0x0f, 0x74, 0xd1, 0x26, 0x9e, 0x22, 0xca, 0xc1,
+ 0xfb, 0x7d, 0x4f, 0x73, 0x02, 0x44, 0x88, 0x55,
+ 0x40, 0x57, 0xfa, 0xc7, 0xaf, 0xfd, 0xb2, 0x9d,
+ 0xe0, 0xf9, 0x6c, 0x32, 0xc1, 0x70, 0x51, 0x38,
+ 0x1f, 0xce, 0x95, 0x77, 0x55, 0xde, 0xca, 0x0d,
+ 0x59, 0x89, 0x3d, 0x88, 0x63, 0x25, 0x77, 0x00,
+ 0x3d, 0x96, 0x48, 0x39, 0xde, 0xf5, 0x83, 0x77,
+ 0xe3, 0x11, 0x0c, 0x75, 0x0c, 0x89, 0x5c, 0x79,
+ 0x75, 0x88, 0x21, 0x6e, 0xdc, 0x01, 0x6f, 0xee,
+ 0xb6, 0x16, 0xaa, 0xb1, 0x99, 0x86, 0x30, 0x89,
+ 0x8f, 0x95, 0xf4, 0xf1, 0x3b, 0xd3, 0x11, 0xe1,
+ 0x48, 0x3a, 0x6c, 0x26, 0x0c, 0x3d, 0x6e, 0x0b,
+ 0x6f, 0xf4, 0x21, 0x10, 0x17, 0xf1, 0x11, 0xc3,
+ 0xb8, 0xde, 0x69, 0xce, 0x12, 0x26, 0x17, 0xc9,
+ 0x66, 0xd7, 0x88, 0x23, 0xd8, 0xd9, 0xe8, 0xe5,
+ 0x4b, 0x19, 0x7c, 0x9c, 0xcf, 0x45, 0x76, 0x58,
+ 0x3c, 0x55, 0xaa, 0x4d, 0x4a, 0x44, 0xfb, 0x0b,
+ 0xf2, 0x0f, 0x4b, 0x50, 0xad, 0xe5, 0x59, 0xda,
+ 0x43, 0x25, 0x0f, 0x8b, 0x7c, 0xc6, 0x84, 0xed,
+ 0x2f, 0x11, 0xc5, 0x66, 0x71, 0x43, 0x56, 0x03,
+ 0x1b, 0xab, 0x30, 0xba, 0x0f, 0x56, 0xa8, 0x14,
+ 0x91, 0x85, 0x65, 0x54, 0x8c, 0xbb, 0x6a, 0xa8,
+ 0x9d, 0x5d, 0x73, 0xd9, 0xdd, 0xa2, 0x34, 0xb5,
+ 0xba, 0x8d, 0x90, 0x1e, 0xf9, 0x3a, 0xc2, 0x7e,
+ 0xcf, 0x6e, 0x59, 0x8b, 0xc9, 0x84, 0x4e, 0x8b,
+ 0x50, 0x99, 0xa7, 0x5b, 0x4b, 0x7e, 0xc2, 0x1b,
+ 0x36, 0xef, 0x8d, 0xce, 0x58, 0x7c, 0xf9, 0xad,
+ 0x6a, 0x59, 0xca, 0xbe, 0x8c, 0x78, 0xf6, 0x43,
+ 0x1f, 0x32, 0xe3, 0x4a, 0xa1, 0xde, 0x6d, 0xdc,
+ 0xc9, 0x54, 0xd8, 0x02, 0x45, 0x96, 0xbe, 0x78,
+ 0x0b, 0xfd, 0x81, 0x2d, 0x6c, 0xff, 0xa5, 0x8e,
+ 0x57, 0x07, 0x30, 0xa3, 0x00, 0x57, 0x1a, 0x4a,
+ 0x52, 0x6c, 0xa1, 0xc2, 0x29, 0xcf, 0x81, 0x4d,
+ 0xdb, 0x87, 0xa8, 0x43, 0xa6, 0x5b, 0xe6, 0x86,
+ 0x90, 0x5a, 0x46, 0xac, 0x86, 0x35, 0x1d, 0xfe,
+ 0x28, 0xc8, 0x56, 0x39, 0xde, 0x31, 0x3a, 0x8d,
+ 0x93, 0x77, 0xaa, 0xa0, 0x4e, 0xfd, 0x09, 0xc8,
+ 0xf6, 0x22, 0x1f, 0xe9, 0x7a, 0x16, 0xf0, 0x43,
+ 0xcc, 0xc7, 0x24, 0x81, 0x9d, 0xfb, 0x62, 0xbd,
+ 0xf6, 0xf1, 0x8e, 0x7b, 0xae, 0x59, 0x9d, 0x14,
+ 0xb6, 0x1f, 0x27, 0x1b, 0x3f, 0x58, 0x81, 0x8e,
+ 0xc3, 0x08, 0xd6, 0x10, 0x9b, 0x44, 0xdb, 0x98,
+ 0xd6, 0xec, 0x9e, 0x4a, 0x59, 0xd1, 0xe8, 0xcf,
+ 0x36, 0x0c, 0x35, 0x06, 0xbd, 0x5a, 0xdc, 0x51,
+ 0xa3, 0x25, 0xe6, 0x50, 0x2b, 0x90, 0x8c, 0x84,
+ 0x20, 0xf3, 0x2c, 0xec, 0x36, 0xf7, 0xf9, 0x52,
+ 0x2a, 0x8d, 0xb0, 0xba, 0x79, 0x2b, 0xce, 0x9b,
+ 0x7f, 0xe8, 0x28, 0x85, 0x0a, 0xa6, 0x7b, 0x59,
+ 0xb9, 0x10, 0xe5, 0x3d, 0x2b, 0x3b, 0x98, 0x24,
+ 0xe0, 0xe2, 0x72, 0x6b, 0x62, 0x61, 0x2e, 0xe7,
+ 0xb4, 0x79, 0xfc, 0x6d, 0x06, 0x6a, 0x70, 0x26,
+ 0x6e, 0x60, 0x2d, 0x2f, 0x17, 0xd2, 0xa0, 0xc7,
+ 0x5e, 0xca, 0x68, 0x52, 0x15, 0x56, 0x4f, 0x6d,
+ 0x18, 0xde, 0x98, 0x14, 0xa2, 0x78, 0xd0, 0xb8,
+ 0xc4, 0xab, 0xd3, 0x2a, 0x0e, 0x59, 0x9c, 0xec,
+ 0xa6, 0x9d, 0x67, 0xbc, 0x47, 0xd7, 0xc7, 0x86,
+ 0xbe, 0x6f, 0x1b, 0xa7, 0x81, 0x87, 0x45, 0x50,
+ 0x5e, 0xd7, 0x66, 0x4c, 0x24, 0x28, 0xab, 0xa0,
+ 0xe4, 0x59, 0xe5, 0xdb, 0x8b, 0x79, 0x62, 0xa0,
+ 0x94, 0xcb, 0x6c, 0x1e, 0xfc, 0xdb, 0xa2, 0x2b,
+ 0x02, 0x29, 0xf5, 0xa3, 0xed, 0xfc, 0x00, 0x86,
+ 0x19, 0x5f, 0x68, 0x31, 0x86, 0xd9, 0x63, 0x90,
+ 0x78, 0xb7, 0xec, 0xbd, 0x84, 0x61, 0xeb, 0xfd,
+ 0x8d, 0xcd, 0xfd, 0xa0, 0xeb, 0xb3, 0x76, 0xc0,
+ 0x0e, 0x98, 0xc7, 0x4c, 0x42, 0x7d, 0x92, 0xec,
+ 0x2e, 0x9a, 0xf7, 0x2a, 0x20, 0x35, 0xe1, 0x3b,
+ 0x43, 0x6b, 0xec, 0x0a, 0xd1, 0x4f, 0xc0, 0x59,
+ 0x04, 0x9c, 0x2b, 0x38, 0x56, 0xcc, 0x01, 0xdc,
+ 0x40, 0x48, 0xf9, 0x9d, 0xa4, 0x08, 0xb9, 0xb5,
+ 0x42, 0x45, 0x07, 0x78, 0x52, 0x44, 0x07, 0x29,
+ 0x97, 0x1c, 0x0b, 0xc4, 0x1c, 0x69, 0xc8, 0x45,
+ 0xa1, 0x2b, 0xbf, 0x40, 0x78, 0x0e, 0xee, 0xc0,
+ 0x23, 0xd8, 0x1e, 0x8f, 0x48, 0x85, 0x89, 0x58,
+ 0xc0, 0x46, 0x91, 0xd2, 0x88, 0x17, 0x89, 0x9c,
+ 0x4b, 0xb6, 0x6b, 0xac, 0xbb, 0x85, 0x99, 0x65,
+ 0x16, 0x39, 0xec, 0x3c, 0x76, 0x4f, 0x51, 0x12,
+ 0xc3, 0xfc, 0x2f, 0x71, 0x2e, 0x35, 0x77, 0x0d,
+ 0x66, 0xab, 0x5b, 0x7f, 0x09, 0x63, 0xfd, 0x12,
+ 0xf6, 0xac, 0xe8, 0x1f, 0xdd, 0xd6, 0x25, 0x7e,
+ 0x52, 0x52, 0x0d, 0xc9, 0xe5, 0x32, 0x0a, 0x45,
+ 0xff, 0x0e, 0x78, 0x8c, 0x72, 0x4f, 0x28, 0xac,
+ 0x7b, 0xfa, 0xab, 0x7b, 0x76, 0x42, 0xad, 0x64,
+ 0xb6, 0xa3, 0xe6, 0xda, 0x64, 0x1a, 0x17, 0xa5,
+ 0x20, 0x00, 0x5c, 0x2a, 0xa9, 0xe5, 0xb3, 0x9e,
+ 0x57, 0xf9, 0x65, 0x2b, 0x4a, 0x86, 0xa4, 0x5a,
+ 0x36, 0x6e, 0xed, 0x68, 0x72, 0x47, 0xfc, 0xea,
+ 0xb1, 0x14, 0x0b, 0xf6, 0x7a, 0x11, 0x1b, 0xe7,
+ 0x7d, 0x57, 0xe9, 0x28, 0x10, 0xaf, 0x25, 0x01,
+ 0x57, 0x4f, 0x4b, 0x0b, 0x9f, 0xa6, 0xcb, 0x1f,
+ 0x20, 0x79, 0x4f, 0xe3, 0xc2, 0xc4, 0xf6, 0x45,
+ 0xcf, 0x8c, 0xb7, 0x7b, 0x5e, 0x28, 0x58, 0x39,
+ 0xfe, 0xa7, 0xad, 0x55, 0x65, 0x50, 0x6b, 0xd7,
+ 0x44, 0x0f, 0x46, 0x24, 0xec, 0xac, 0x9f, 0xf9,
+ 0xa0, 0x8a, 0xda, 0xdd, 0x25, 0x01, 0x6d, 0x07,
+ 0x5c, 0x31, 0x4c, 0x15, 0xcc, 0x63, 0x23, 0x31,
+ 0x10, 0xfa, 0x03, 0x05, 0x6f, 0xc9, 0xe3, 0x1b,
+ 0x7a, 0x93, 0x07, 0xa0, 0x1d, 0x06, 0x02, 0x62,
+ 0x35, 0xd7, 0x88, 0x62, 0xa5, 0x87, 0x45, 0x6b,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0x02, 0xc2, 0x08, 0xda, 0x0f, 0x0e, 0x0c, 0x49,
+ 0x39, 0xab, 0x53, 0x31, 0x83, 0x2e, 0x41, 0x5d,
+ 0xe4, 0x76, 0x31, 0x1e, 0x65, 0x71, 0xe5, 0xb6,
+ 0x8d, 0xe8, 0xb3, 0xa5, 0xd9, 0x9e, 0xb7, 0x99,
+ 0x0a, 0x1b, 0x59, 0x71, 0xbd, 0x88, 0x1d, 0xd6,
+ 0xbe, 0xc9, 0x42, 0xd8, 0x83, 0x4b, 0xa4, 0x45,
+ 0xfc, 0x46, 0x4c, 0x85, 0xcc, 0x74, 0xb6, 0xcf,
+ 0xf5, 0xc1, 0x16, 0x59, 0xb3, 0x10, 0x98, 0xd1,
+ 0x90, 0x33, 0x0e, 0x22, 0x92, 0x0d, 0x93, 0x19,
+ 0x4b, 0x13, 0x20, 0xbd, 0x2c, 0xe9, 0x74, 0x7e,
+ 0xbe, 0xc6, 0xf7, 0x80, 0x57, 0x54, 0x43, 0x78,
+ 0xe5, 0x37, 0xec, 0xcf, 0xe0, 0x80, 0xc9, 0x64,
+ 0x38, 0x21, 0x44, 0x4f, 0x3d, 0x43, 0x72, 0xdd,
+ 0xd2, 0x10, 0xeb, 0xd7, 0x5b, 0x0c, 0xef, 0xe1,
+ 0x5d, 0xca, 0xd9, 0x11, 0x4a, 0x10, 0x3b, 0xf6,
+ 0xf5, 0xcc, 0xee, 0x07, 0x40, 0x43, 0x6a, 0x03,
+ 0x12, 0x21, 0x09, 0x5b, 0xc2, 0x6d, 0xca, 0x90,
+ 0x89, 0x03, 0x00, 0x30, 0x23, 0xa9, 0x0d, 0xdb,
+ 0xb2, 0x4d, 0x91, 0x90, 0x40, 0x93, 0x34, 0x8a,
+ 0x93, 0xb8, 0x08, 0x59, 0x12, 0x28, 0x9c, 0xb0,
+ 0x20, 0x0a, 0x42, 0x6e, 0x0c, 0x34, 0x62, 0x5b,
+ 0x44, 0x72, 0x63, 0x48, 0x01, 0x62, 0x44, 0x4a,
+ 0x24, 0x03, 0x2e, 0x4c, 0x42, 0x86, 0x08, 0x90,
+ 0x60, 0x20, 0x29, 0x0c, 0xd3, 0x24, 0x52, 0x8b,
+ 0x08, 0x88, 0x22, 0x90, 0x0c, 0x50, 0x92, 0x64,
+ 0x98, 0x36, 0x10, 0x54, 0x24, 0x0a, 0x64, 0x16,
+ 0x06, 0x1c, 0xa3, 0x08, 0x51, 0xa4, 0x28, 0x21,
+ 0x13, 0x0a, 0x88, 0xc6, 0x25, 0x52, 0x16, 0x82,
+ 0x1b, 0x38, 0x09, 0xc1, 0xc6, 0x70, 0x64, 0x86,
+ 0x50, 0xca, 0xa2, 0x88, 0x1c, 0xb9, 0x81, 0xc0,
+ 0x14, 0x2e, 0x00, 0x82, 0x40, 0x08, 0x41, 0x42,
+ 0x13, 0x01, 0x70, 0x83, 0x40, 0x6c, 0x11, 0x22,
+ 0x0e, 0xca, 0x18, 0x11, 0xd3, 0x18, 0x62, 0x94,
+ 0x38, 0x89, 0xe0, 0xc8, 0x70, 0x21, 0xb7, 0x68,
+ 0xa1, 0xc4, 0x71, 0x09, 0x99, 0x40, 0xda, 0x14,
+ 0x4c, 0x52, 0xc4, 0x65, 0x5c, 0x46, 0x21, 0xa2,
+ 0x16, 0x6c, 0x21, 0x14, 0x80, 0xcc, 0x98, 0x30,
+ 0x5a, 0x08, 0x4e, 0xe2, 0xc0, 0x49, 0x0c, 0x82,
+ 0x84, 0x62, 0x26, 0x0e, 0x40, 0x24, 0x11, 0x11,
+ 0x28, 0x8a, 0xd4, 0x42, 0x8e, 0x0a, 0x06, 0x86,
+ 0x20, 0xc1, 0x44, 0x22, 0x05, 0x49, 0xe3, 0x04,
+ 0x6a, 0x1a, 0x96, 0x11, 0x13, 0x28, 0x4a, 0x04,
+ 0x16, 0x92, 0x94, 0x14, 0x8d, 0x00, 0x32, 0x71,
+ 0x49, 0x04, 0x60, 0xc8, 0x10, 0x72, 0x21, 0x82,
+ 0x00, 0x4a, 0x16, 0x46, 0xa3, 0x04, 0x11, 0xcb,
+ 0x30, 0x88, 0xc0, 0x04, 0x66, 0x91, 0xc4, 0x49,
+ 0x90, 0x30, 0x6c, 0x40, 0xa0, 0x90, 0xc4, 0x14,
+ 0x66, 0x04, 0x14, 0x22, 0x48, 0xa6, 0x45, 0x02,
+ 0xa3, 0x29, 0x84, 0x84, 0x21, 0x4a, 0xa0, 0x2d,
+ 0x13, 0x24, 0x11, 0x12, 0x06, 0x6c, 0x53, 0x20,
+ 0x84, 0xd3, 0x48, 0x0d, 0x4c, 0x14, 0x01, 0x99,
+ 0x44, 0x20, 0xa1, 0x18, 0x91, 0x1a, 0xb2, 0x05,
+ 0x24, 0xc2, 0x10, 0x44, 0xa4, 0x28, 0xe4, 0xc6,
+ 0x00, 0x02, 0xc4, 0x0d, 0x82, 0x32, 0x4e, 0xa2,
+ 0xa4, 0x2c, 0x20, 0x06, 0x05, 0x0a, 0x42, 0x4d,
+ 0x10, 0x13, 0x20, 0xc4, 0x36, 0x01, 0x61, 0x48,
+ 0x6e, 0xcb, 0xc8, 0x6d, 0x19, 0x33, 0x29, 0x04,
+ 0xc6, 0x25, 0xa1, 0x08, 0x4c, 0x4b, 0x24, 0x85,
+ 0x53, 0x00, 0x25, 0x13, 0x15, 0x00, 0x08, 0x16,
+ 0x6a, 0xcc, 0x48, 0x04, 0x09, 0x03, 0x20, 0x08,
+ 0x87, 0x11, 0xc8, 0x06, 0x21, 0x64, 0x88, 0x2c,
+ 0x9b, 0x90, 0x90, 0x99, 0xa4, 0x8d, 0xca, 0x08,
+ 0x46, 0x19, 0xb0, 0x4d, 0x48, 0x34, 0x8e, 0x0b,
+ 0x05, 0x4a, 0xe3, 0x84, 0x50, 0x18, 0x07, 0x24,
+ 0xd2, 0x10, 0x02, 0x12, 0x97, 0x60, 0x1b, 0xc6,
+ 0x81, 0x24, 0x28, 0x71, 0x22, 0x08, 0x48, 0x24,
+ 0xc8, 0x45, 0x0c, 0x86, 0x60, 0xa0, 0x48, 0x0e,
+ 0x44, 0xa6, 0x44, 0x81, 0x14, 0x66, 0xc9, 0xa8,
+ 0x25, 0x22, 0xa5, 0x69, 0x1a, 0x30, 0x6a, 0x41,
+ 0x32, 0x22, 0x08, 0xc7, 0x65, 0x22, 0x20, 0x2d,
+ 0x03, 0x09, 0x4e, 0x42, 0x08, 0x48, 0x01, 0x13,
+ 0x64, 0x98, 0x44, 0x86, 0xc4, 0xc6, 0x71, 0x10,
+ 0xa1, 0x71, 0xd3, 0xc0, 0x51, 0xc4, 0x44, 0x24,
+ 0x50, 0x14, 0x32, 0x24, 0x17, 0x12, 0x61, 0x42,
+ 0x8d, 0x19, 0xc0, 0x81, 0x13, 0x02, 0x62, 0x5a,
+ 0x90, 0x68, 0x09, 0xb2, 0x6d, 0x19, 0x46, 0x46,
+ 0xcb, 0xb6, 0x08, 0x14, 0x83, 0x61, 0xe4, 0x98,
+ 0x68, 0x40, 0xa2, 0x91, 0x9c, 0x06, 0x66, 0x59,
+ 0x12, 0x2e, 0x20, 0x25, 0x6e, 0xd8, 0x42, 0x61,
+ 0xca, 0xb6, 0x45, 0x9a, 0x82, 0x2c, 0x08, 0x30,
+ 0x92, 0xc8, 0x22, 0x22, 0x0c, 0x38, 0x2d, 0x48,
+ 0x82, 0x65, 0xd9, 0x26, 0x86, 0x00, 0x14, 0x51,
+ 0x81, 0xb8, 0x11, 0x11, 0x06, 0x6c, 0x08, 0x49,
+ 0x80, 0x9a, 0xb0, 0x81, 0x4c, 0x08, 0x84, 0x59,
+ 0xb0, 0x05, 0x22, 0x10, 0x25, 0xd4, 0xc4, 0x90,
+ 0x1a, 0x21, 0x4d, 0x03, 0x94, 0x60, 0x4a, 0x02,
+ 0x48, 0x18, 0xc9, 0x05, 0x4b, 0x38, 0x41, 0x21,
+ 0x41, 0x80, 0x4a, 0x46, 0x60, 0x02, 0x17, 0x12,
+ 0x20, 0xa3, 0x61, 0x23, 0x47, 0x6c, 0xc2, 0x12,
+ 0x61, 0xd0, 0x42, 0x04, 0xda, 0x34, 0x65, 0x03,
+ 0x18, 0x69, 0x02, 0x26, 0x89, 0x1b, 0x40, 0x81,
+ 0xca, 0x02, 0x6c, 0x61, 0x28, 0x29, 0x92, 0x90,
+ 0x08, 0x53, 0x02, 0x0d, 0x54, 0x18, 0x68, 0x01,
+ 0x06, 0x68, 0xdc, 0x46, 0x11, 0xa3, 0x16, 0x0c,
+ 0x89, 0x10, 0x89, 0xcb, 0xc2, 0x45, 0x02, 0x97,
+ 0x65, 0xda, 0x38, 0x88, 0x53, 0x36, 0x05, 0x91,
+ 0x34, 0x12, 0xc4, 0x20, 0x25, 0x90, 0x12, 0x92,
+ 0x59, 0x90, 0x30, 0x13, 0x26, 0x25, 0xd4, 0x08,
+ 0x60, 0x91, 0x02, 0x88, 0x11, 0x48, 0x44, 0xa3,
+ 0x44, 0x30, 0x11, 0xc7, 0x09, 0xd0, 0x08, 0x6a,
+ 0x0c, 0x23, 0x72, 0x84, 0x38, 0x0e, 0xd4, 0x92,
+ 0x30, 0x01, 0x20, 0x01, 0x8b, 0x36, 0x6e, 0xe2,
+ 0x88, 0x81, 0x0b, 0x34, 0x49, 0xd8, 0x48, 0x32,
+ 0x18, 0xa9, 0x51, 0xcb, 0x08, 0x52, 0x89, 0x42,
+ 0x0e, 0x0c, 0x40, 0x48, 0x1b, 0xc9, 0x20, 0xd9,
+ 0x38, 0x44, 0x41, 0xb2, 0x08, 0x61, 0x02, 0x44,
+ 0xdc, 0x16, 0x2c, 0x00, 0x81, 0x91, 0x23, 0xa0,
+ 0x28, 0x24, 0xa1, 0x70, 0x11, 0x48, 0x6c, 0x89,
+ 0x38, 0x65, 0x82, 0xb0, 0x51, 0xd1, 0x22, 0x44,
+ 0x53, 0x06, 0x20, 0xd2, 0xc0, 0x48, 0x41, 0x18,
+ 0x69, 0x11, 0x96, 0x0d, 0x1b, 0x32, 0x11, 0x52,
+ 0x40, 0x80, 0x63, 0x06, 0x48, 0xd9, 0x22, 0x49,
+ 0xd4, 0x30, 0x61, 0x5c, 0x48, 0x6c, 0xc2, 0x22,
+ 0x4c, 0x01, 0x19, 0x40, 0x89, 0x82, 0x0c, 0xe3,
+ 0x34, 0x69, 0x01, 0x06, 0x91, 0x04, 0x83, 0x21,
+ 0x14, 0x08, 0x08, 0x5b, 0x96, 0x48, 0x58, 0x84,
+ 0x51, 0x9b, 0xb6, 0x81, 0xd0, 0x88, 0x48, 0x23,
+ 0xb7, 0x24, 0x01, 0x01, 0x92, 0x10, 0x08, 0x6e,
+ 0x9c, 0x34, 0x25, 0x19, 0x40, 0x6d, 0x20, 0x11,
+ 0x22, 0xc4, 0x10, 0x66, 0x19, 0x09, 0x11, 0xca,
+ 0x02, 0x6a, 0x21, 0x12, 0x6e, 0x9b, 0x20, 0x45,
+ 0xd9, 0xc2, 0x08, 0x12, 0x37, 0x91, 0x5b, 0x34,
+ 0x2d, 0x24, 0x15, 0x85, 0xa4, 0x80, 0x31, 0xda,
+ 0xb4, 0x41, 0xe0, 0x06, 0x08, 0xa3, 0x18, 0x21,
+ 0x50, 0x86, 0x8d, 0x13, 0x20, 0x8d, 0x9a, 0x24,
+ 0x85, 0x02, 0xb4, 0x4c, 0x23, 0x04, 0x62, 0x13,
+ 0x43, 0x00, 0x4a, 0x06, 0x49, 0x9c, 0x04, 0x02,
+ 0x12, 0x02, 0x28, 0x00, 0x20, 0x4e, 0x44, 0xa0,
+ 0x6c, 0xca, 0x40, 0x32, 0x5c, 0x04, 0x2c, 0x0c,
+ 0xa9, 0x71, 0x00, 0x11, 0x21, 0x04, 0x13, 0x31,
+ 0x04, 0x34, 0x32, 0x13, 0xb4, 0x30, 0x54, 0x04,
+ 0x0d, 0x1c, 0x20, 0x60, 0x04, 0x11, 0x09, 0x84,
+ 0x98, 0x68, 0x22, 0x23, 0x84, 0x98, 0x80, 0x84,
+ 0x5a, 0x24, 0x8e, 0x20, 0x35, 0x29, 0x44, 0xa8,
+ 0x0d, 0x24, 0x39, 0x20, 0x84, 0x98, 0x21, 0xd0,
+ 0x84, 0x29, 0xd8, 0x40, 0x49, 0x00, 0xb3, 0x2c,
+ 0x9b, 0x22, 0x61, 0x1b, 0x38, 0x32, 0x42, 0xc4,
+ 0x29, 0x18, 0x44, 0x00, 0xa4, 0x14, 0x72, 0xe1,
+ 0x02, 0x20, 0x09, 0x30, 0x25, 0x1c, 0x24, 0x26,
+ 0x92, 0x14, 0x62, 0x98, 0x06, 0x48, 0x1c, 0x90,
+ 0x88, 0x11, 0x95, 0x31, 0x12, 0x36, 0x28, 0x51,
+ 0x80, 0x69, 0xdc, 0x06, 0x50, 0x5b, 0xb8, 0x31,
+ 0x1a, 0x42, 0x25, 0x22, 0x10, 0x30, 0xa2, 0x88,
+ 0x44, 0xdb, 0x32, 0x84, 0xd4, 0x38, 0x51, 0xd4,
+ 0x18, 0x50, 0x58, 0x36, 0x88, 0xd9, 0x48, 0x51,
+ 0x63, 0x86, 0x2c, 0x1b, 0x40, 0x66, 0x9a, 0xa6,
+ 0x45, 0x5a, 0x16, 0x24, 0x02, 0x42, 0x64, 0x54,
+ 0x04, 0x30, 0x12, 0x12, 0x72, 0x0c, 0xa8, 0x48,
+ 0x93, 0x26, 0x62, 0x20, 0x25, 0x30, 0x13, 0x38,
+ 0x04, 0x02, 0x35, 0x85, 0xa4, 0xb2, 0x31, 0xdb,
+ 0x92, 0x10, 0x24, 0x04, 0x4a, 0xcc, 0x38, 0x2a,
+ 0x50, 0x16, 0x88, 0x0c, 0x11, 0x42, 0x12, 0x83,
+ 0x60, 0x22, 0x43, 0x8d, 0x10, 0x43, 0x06, 0xe1,
+ 0x36, 0x6c, 0x01, 0xb3, 0x6d, 0xc3, 0x18, 0x6d,
+ 0x24, 0x90, 0x45, 0x0c, 0x07, 0x82, 0x59, 0x18,
+ 0x32, 0x03, 0x09, 0x84, 0x5b, 0x24, 0x01, 0x99,
+ 0xb6, 0x68, 0x01, 0x09, 0x61, 0xc4, 0x38, 0x40,
+ 0x94, 0xb2, 0x90, 0x4b, 0x22, 0x09, 0x00, 0x49,
+ 0x04, 0x24, 0x38, 0x90, 0xa4, 0xb0, 0x69, 0x18,
+ 0x42, 0x71, 0xc2, 0x10, 0x8d, 0x13, 0x36, 0x12,
+ 0x11, 0x30, 0x6a, 0xc3, 0x42, 0x2d, 0x63, 0xa8,
+ 0x20, 0x81, 0x08, 0x06, 0x62, 0xb4, 0x69, 0x62,
+ 0x92, 0x50, 0xcc, 0xc2, 0x6d, 0x51, 0xb6, 0x05,
+ 0x21, 0x18, 0x51, 0x14, 0x46, 0x51, 0x20, 0x32,
+ 0x20, 0x94, 0x48, 0x05, 0xc1, 0x14, 0x65, 0x49,
+ 0x26, 0x21, 0x88, 0x34, 0x20, 0xd2, 0x24, 0x42,
+ 0x03, 0x00, 0x92, 0xd8, 0x10, 0x90, 0x09, 0x86,
+ 0x24, 0x60, 0x22, 0x92, 0x02, 0xa3, 0x11, 0xc2,
+ 0x20, 0x88, 0x64, 0xc6, 0x31, 0xd0, 0x26, 0x8e,
+ 0x0b, 0x21, 0x70, 0xa2, 0xb4, 0x88, 0x82, 0x22,
+ 0x08, 0x13, 0x47, 0x71, 0x50, 0xb4, 0x6d, 0x12,
+ 0x48, 0x4e, 0x1a, 0x38, 0x01, 0x61, 0x14, 0x66,
+ 0x13, 0x91, 0x61, 0x5c, 0x28, 0x21, 0x03, 0xa1,
+ 0x69, 0x58, 0x12, 0x44, 0x08, 0x93, 0x21, 0x59,
+ 0x46, 0x21, 0x00, 0x02, 0x11, 0x94, 0x40, 0x31,
+ 0x09, 0x96, 0x64, 0x98, 0x82, 0x80, 0x64, 0x20,
+ 0x70, 0xa0, 0xa4, 0x60, 0x22, 0x17, 0x09, 0x20,
+ 0xa5, 0x65, 0xa3, 0x06, 0x8c, 0xc1, 0x32, 0x0a,
+ 0x04, 0x08, 0x89, 0x02, 0xc6, 0x60, 0x14, 0x89,
+ 0x2c, 0x0b, 0xb6, 0x05, 0xd8, 0x04, 0x0e, 0x58,
+ 0x12, 0x65, 0x18, 0xc6, 0x90, 0x02, 0x17, 0x64,
+ 0x41, 0x40, 0x0c, 0x60, 0x96, 0x24, 0x23, 0x91,
+ 0x45, 0x10, 0x48, 0x44, 0xe2, 0x26, 0x8e, 0x23,
+ 0xa8, 0x25, 0xd4, 0x94, 0x2c, 0x23, 0x11, 0x45,
+ 0x04, 0x33, 0x68, 0x53, 0x18, 0x0a, 0x13, 0x84,
+ 0x45, 0x0c, 0x09, 0x32, 0xd8, 0x16, 0x4c, 0x41,
+ 0x30, 0x09, 0xd2, 0x86, 0x20, 0xe3, 0xc8, 0x44,
+ 0x84, 0xc4, 0x8d, 0x0b, 0x89, 0x4c, 0x21, 0x45,
+ 0x65, 0x58, 0xc8, 0x2c, 0x49, 0x28, 0x51, 0x00,
+ 0x87, 0x8c, 0x51, 0x14, 0x64, 0x12, 0x09, 0x25,
+ 0x60, 0x04, 0x09, 0xc2, 0x06, 0x86, 0xa0, 0x04,
+ 0x45, 0xe1, 0xb4, 0x41, 0x0a, 0xb6, 0x40, 0x51,
+ 0xb2, 0x2c, 0x08, 0x12, 0x6c, 0x84, 0xc4, 0x45,
+ 0x9c, 0xc8, 0x30, 0x1a, 0x03, 0x32, 0xe1, 0x44,
+ 0x06, 0x54, 0x18, 0x90, 0xd1, 0x22, 0x0c, 0x08,
+ 0xa7, 0x40, 0x03, 0x01, 0x71, 0x89, 0xc2, 0x70,
+ 0xdc, 0x06, 0x43, 0x43, 0x23, 0xc1, 0x51, 0xf9,
+ 0xee, 0xe2, 0x92, 0x0d, 0xa1, 0xea, 0x57, 0x8e,
+ 0x01, 0x35, 0x37, 0x13, 0xcc, 0xca, 0x47, 0xd9,
+ 0xe4, 0x6b, 0x43, 0x90, 0xb2, 0x12, 0xc3, 0x4c,
+ 0x88, 0x45, 0x02, 0xf7, 0xa2, 0xb5, 0x9d, 0x4b,
+ 0x3f, 0x51, 0x45, 0xad, 0x53, 0xea, 0x26, 0xc5,
+ 0xf3, 0x41, 0x67, 0xf4, 0x35, 0xda, 0x98, 0x7a,
+ 0x04, 0x54, 0xd9, 0x97, 0x91, 0xbc, 0xa7, 0x75,
+ 0xa3, 0x78, 0x10, 0xec, 0xb0, 0x09, 0xfe, 0x18,
+ 0x19, 0x99, 0x56, 0xd0, 0x31, 0xeb, 0xc3, 0xb8,
+ 0x90, 0x25, 0x88, 0xe5, 0x28, 0x2f, 0x18, 0x39,
+ 0x8d, 0x7d, 0x52, 0x9e, 0x89, 0xca, 0x2f, 0xad,
+ 0x72, 0x00, 0x27, 0xde, 0x67, 0x2d, 0x4e, 0x3c,
+ 0xcf, 0x32, 0xf5, 0x5f, 0xc1, 0x13, 0x6f, 0xba,
+ 0x3f, 0xf1, 0x96, 0x76, 0x15, 0xee, 0xc8, 0xf0,
+ 0x21, 0x19, 0x51, 0x91, 0x2a, 0xa4, 0x9d, 0xb9,
+ 0x57, 0x07, 0xbb, 0xb6, 0xd5, 0xfa, 0x99, 0x23,
+ 0xa1, 0x0c, 0x61, 0xb6, 0x90, 0x45, 0x3b, 0x89,
+ 0x45, 0x59, 0xce, 0x4f, 0x4f, 0xfd, 0x92, 0x96,
+ 0xd4, 0x67, 0x20, 0xf4, 0x66, 0x0b, 0xd3, 0x5d,
+ 0xcd, 0x49, 0xe6, 0xdb, 0x9c, 0xea, 0x11, 0x68,
+ 0x7e, 0x93, 0xe6, 0x91, 0x3e, 0x0e, 0x6c, 0xb6,
+ 0x3f, 0x98, 0x67, 0xf5, 0x33, 0x91, 0x22, 0x4c,
+ 0x25, 0x44, 0xa4, 0x33, 0x2e, 0x49, 0xcd, 0x96,
+ 0x7b, 0x03, 0x47, 0xef, 0x07, 0x39, 0xfa, 0xe5,
+ 0xbd, 0x28, 0x7b, 0x2d, 0x41, 0x13, 0x6d, 0x30,
+ 0xa0, 0x86, 0xf4, 0x0c, 0x44, 0xca, 0x0a, 0x73,
+ 0xd1, 0x41, 0xf2, 0x76, 0x6e, 0x30, 0x16, 0x00,
+ 0xf6, 0xfe, 0xbd, 0x18, 0xfc, 0x20, 0x33, 0xa5,
+ 0x3a, 0xfb, 0x49, 0x8a, 0xd3, 0xc0, 0xbe, 0x00,
+ 0x54, 0x59, 0xa4, 0x7a, 0x3e, 0xa5, 0x2b, 0x31,
+ 0xd4, 0x00, 0xad, 0xc1, 0x78, 0x9e, 0x11, 0x31,
+ 0x99, 0x4e, 0x2c, 0x9d, 0x83, 0x36, 0x29, 0x6f,
+ 0x49, 0x8b, 0xfe, 0xb1, 0x2f, 0xc6, 0x07, 0x7b,
+ 0xb4, 0x6b, 0x0e, 0x8e, 0xa5, 0x19, 0x8c, 0x4d,
+ 0x5a, 0x1f, 0xa4, 0x6e, 0x1b, 0x1c, 0xd9, 0x5a,
+ 0x42, 0x2d, 0x39, 0x8f, 0x3b, 0x22, 0x08, 0x50,
+ 0xc5, 0x1d, 0x09, 0xab, 0x06, 0xd1, 0xf6, 0x01,
+ 0x00, 0x5e, 0x65, 0x4a, 0x41, 0x0c, 0x24, 0x8e,
+ 0x98, 0x11, 0x71, 0x54, 0x26, 0x8d, 0x27, 0x3c,
+ 0xf5, 0x8b, 0x67, 0xf6, 0xa6, 0x79, 0xf1, 0x03,
+ 0x7b, 0xa0, 0x26, 0x03, 0xd0, 0xb6, 0xe2, 0x27,
+ 0xd8, 0x9f, 0x3a, 0x38, 0xd0, 0x0a, 0xe8, 0x79,
+ 0x4b, 0x2f, 0xc1, 0x80, 0xdd, 0x66, 0x3b, 0xf5,
+ 0x7e, 0x1d, 0x66, 0x40, 0x61, 0x79, 0xf4, 0xbe,
+ 0xe0, 0x93, 0x13, 0x16, 0x7f, 0x0d, 0x1a, 0x8f,
+ 0x35, 0x07, 0x1c, 0x7c, 0x72, 0x63, 0xfa, 0x74,
+ 0x31, 0x32, 0x3c, 0xd1, 0x6d, 0x3e, 0xf4, 0x4c,
+ 0xc4, 0xc8, 0x00, 0x54, 0xf6, 0x46, 0xee, 0xaa,
+ 0xb8, 0x35, 0x4f, 0x33, 0x91, 0x0f, 0x17, 0x69,
+ 0x8f, 0xc8, 0x16, 0xe5, 0x13, 0x81, 0x32, 0xed,
+ 0x43, 0x34, 0xa0, 0xd0, 0xcf, 0x20, 0x3e, 0x61,
+ 0x66, 0x22, 0xe1, 0x30, 0xfb, 0x07, 0xc9, 0x9e,
+ 0xd6, 0x83, 0xcf, 0x13, 0xc7, 0xc7, 0xef, 0xf3,
+ 0x97, 0x8e, 0xd6, 0x9f, 0xf4, 0x72, 0xb4, 0xc9,
+ 0x39, 0xba, 0x16, 0x7c, 0x1e, 0xb1, 0x95, 0xca,
+ 0x8f, 0x06, 0x5c, 0xd2, 0x99, 0x08, 0x82, 0x40,
+ 0xf2, 0x5c, 0x3e, 0x1f, 0x69, 0x0b, 0xbd, 0x79,
+ 0xee, 0xc8, 0x31, 0xf1, 0x16, 0xe2, 0x4f, 0xbc,
+ 0x2d, 0x1d, 0x7a, 0x03, 0x4c, 0x47, 0x85, 0x1f,
+ 0xd3, 0x19, 0x40, 0xd9, 0xd6, 0xcc, 0x95, 0xb1,
+ 0x61, 0xd2, 0x7f, 0x73, 0xe5, 0x16, 0xcc, 0x80,
+ 0x64, 0x75, 0xfe, 0x76, 0x1c, 0xed, 0x9f, 0x4f,
+ 0xd0, 0xe3, 0x3e, 0x9a, 0x89, 0xb9, 0x84, 0xc2,
+ 0x4c, 0x56, 0xda, 0xef, 0x3a, 0x05, 0x4d, 0xb8,
+ 0xcf, 0x42, 0xc8, 0xdb, 0xfb, 0x7d, 0x03, 0xa6,
+ 0xa1, 0xfb, 0x7e, 0x38, 0x29, 0xd4, 0x08, 0x74,
+ 0xbb, 0xaf, 0x0f, 0x36, 0x60, 0x44, 0x6e, 0x44,
+ 0x29, 0x12, 0xea, 0x8b, 0x4e, 0xd2, 0x37, 0x54,
+ 0xdb, 0x21, 0x0b, 0x9c, 0xfa, 0x33, 0x72, 0x64,
+ 0x43, 0x0a, 0x6f, 0xd7, 0x05, 0x9d, 0xb2, 0xf1,
+ 0xf4, 0x36, 0xf6, 0x0f, 0x06, 0x12, 0x13, 0x96,
+ 0x70, 0x55, 0x18, 0x80, 0x3d, 0x0b, 0x64, 0xad,
+ 0x85, 0xdb, 0xe9, 0x44, 0xd9, 0x60, 0x65, 0x38,
+ 0xb2, 0x4a, 0xac, 0x7a, 0x4b, 0x4b, 0xcb, 0x3d,
+ 0x18, 0xac, 0x8c, 0x5b, 0x02, 0x2d, 0xbf, 0x57,
+ 0xe4, 0xde, 0x99, 0x2a, 0xff, 0x84, 0xef, 0x72,
+ 0xcc, 0xc7, 0xe0, 0x5d, 0x6d, 0xad, 0xdf, 0x2d,
+ 0x1a, 0xa4, 0x47, 0x56, 0x9c, 0x59, 0x87, 0x36,
+ 0x7f, 0xfd, 0x39, 0xbf, 0xb6, 0xe4, 0x24, 0xcc,
+ 0x81, 0x83, 0x34, 0xfb, 0xe5, 0xee, 0x52, 0x83,
+ 0xce, 0x37, 0x2d, 0xc5, 0x2a, 0xff, 0x54, 0x50,
+ 0x24, 0x55, 0x1f, 0x8f, 0xae, 0xfc, 0x3d, 0x1e,
+ 0x8b, 0x26, 0x88, 0x8f, 0xf9, 0x5c, 0x10, 0xdc,
+ 0x5f, 0xbe, 0x34, 0x39, 0x6e, 0x00, 0x41, 0xe3,
+ 0x65, 0x3e, 0x0b, 0xd6, 0x56, 0xdb, 0x4c, 0x1f,
+ 0xf8, 0x9b, 0xd8, 0x0b, 0xe3, 0xd4, 0x90, 0x04,
+ 0x41, 0x96, 0x97, 0xcc, 0x0e, 0xae, 0x4a, 0xf6,
+ 0xb8, 0xe5, 0xd6, 0x9b, 0x99, 0x8e, 0x8b, 0x60,
+ 0x71, 0xc2, 0xa6, 0x89, 0x0d, 0x58, 0x72, 0x4e,
+ 0xb5, 0xcd, 0x6e, 0xf1, 0xeb, 0xd3, 0xcf, 0x15,
+ 0xa4, 0x75, 0x46, 0x16, 0x93, 0x66, 0x28, 0x2e,
+ 0x51, 0x2b, 0xb6, 0x37, 0x7a, 0x35, 0xd8, 0xa0,
+ 0x6f, 0xa4, 0x1c, 0xe8, 0xd8, 0xee, 0x76, 0xe3,
+ 0x66, 0x1c, 0x56, 0xed, 0x99, 0x59, 0xb9, 0x20,
+ 0x86, 0x22, 0x88, 0x62, 0xab, 0x84, 0x8e, 0x3f,
+ 0x04, 0xd2, 0x8b, 0x88, 0xa2, 0x0e, 0x48, 0x51,
+ 0x65, 0x29, 0x64, 0xf5, 0xd6, 0x69, 0x9b, 0x3b,
+ 0xda, 0xdf, 0xb8, 0xac, 0x02, 0x9d, 0xa9, 0x56,
+ 0x41, 0xb1, 0x88, 0xed, 0x4f, 0x0d, 0x04, 0xd1,
+ 0x75, 0x9c, 0xb5, 0x9e, 0x06, 0xc4, 0x74, 0xe5,
+ 0x5b, 0xb6, 0x2b, 0xf7, 0x61, 0xde, 0x64, 0xf2,
+ 0x9e, 0x0f, 0x21, 0xd2, 0x39, 0xc6, 0x67, 0x18,
+ 0xc8, 0x79, 0xc5, 0x90, 0x8d, 0x5c, 0xcc, 0x5d,
+ 0x54, 0x5e, 0x67, 0xc4, 0x5e, 0x8c, 0x90, 0xca,
+ 0xf2, 0x12, 0x6f, 0xd7, 0xae, 0x1f, 0xdd, 0x49,
+ 0xbb, 0xb6, 0x8e, 0x51, 0xc3, 0x82, 0x1d, 0x46,
+ 0x28, 0x5e, 0xe0, 0x96, 0x7b, 0x2c, 0x59, 0x0b,
+ 0xc0, 0x03, 0x56, 0xa7, 0x46, 0x56, 0x72, 0x86,
+ 0xb8, 0xe9, 0x4d, 0x1d, 0xc7, 0xbe, 0x8f, 0x26,
+ 0x45, 0xc2, 0x12, 0x0e, 0x6c, 0x3b, 0x06, 0x74,
+ 0x47, 0xfa, 0x76, 0xc6, 0xfa, 0xa5, 0xf4, 0x25,
+ 0xc9, 0x90, 0x35, 0x0c, 0xa4, 0x0c, 0xcd, 0x28,
+ 0x69, 0x8e, 0x4e, 0x8c, 0xb1, 0x16, 0xde, 0xf9,
+ 0x9a, 0x86, 0xa3, 0x1b, 0x73, 0x46, 0xca, 0x3e,
+ 0x56, 0xf1, 0x63, 0x59, 0x11, 0x20, 0x6c, 0x05,
+ 0x11, 0x98, 0x54, 0x81, 0xaa, 0x31, 0x69, 0x60,
+ 0x26, 0xe6, 0xbe, 0x72, 0x0a, 0x65, 0x3d, 0x71,
+ 0x43, 0x45, 0xb3, 0xdd, 0x09, 0x7a, 0xc7, 0x1c,
+ 0x46, 0xba, 0x33, 0xac, 0x13, 0x20, 0xcc, 0xf9,
+ 0xc3, 0x8c, 0x14, 0xe1, 0xcd, 0x01, 0x12, 0x52,
+ 0x1a, 0x2a, 0x1b, 0xff, 0x10, 0x7d, 0xe5, 0x18,
+ 0xfa, 0x8e, 0xea, 0x9e, 0xc2, 0x07, 0xc1, 0xda,
+ 0x65, 0x82, 0xa6, 0xe9, 0x5c, 0x05, 0x9b, 0x61,
+ 0x5a, 0x9f, 0x31, 0x05, 0x60, 0x3f, 0x09, 0x9b,
+ 0x3c, 0xa8, 0xfb, 0xac, 0xa6, 0xd7, 0x2c, 0x3d,
+ 0xa8, 0x01, 0x20, 0xf6, 0x92, 0x44, 0x5e, 0xe4,
+ 0xe2, 0x6e, 0xc0, 0x5f, 0xe6, 0xb1, 0xec, 0x90,
+ 0x2a, 0xe4, 0xd7, 0x3f, 0x83, 0x88, 0xa2, 0x24,
+ 0x12, 0xc5, 0x42, 0xf6, 0xff, 0xb1, 0xbd, 0xc5,
+ 0xb7, 0x1f, 0x6d, 0xc0, 0x82, 0xa2, 0x5e, 0xf9,
+ 0x46, 0xc9, 0x86, 0xf2, 0xd1, 0x9a, 0xab, 0xb4,
+ 0x25, 0x1f, 0x76, 0x74, 0xf5, 0xa1, 0xb2, 0xda,
+ 0x70, 0x27, 0x1a, 0xac, 0x3b, 0x4a, 0xc3, 0xb5,
+ 0x77, 0x0e, 0x72, 0x7d, 0x5a, 0xac, 0xc4, 0x4a,
+ 0x6f, 0x34, 0xcd, 0xc3, 0x68, 0x4c, 0xb4, 0x9f,
+ 0x34, 0x0b, 0x35, 0xbe, 0x63, 0xf7, 0x94, 0xd4,
+ 0x55, 0x06, 0xea, 0x2d, 0x19, 0x01, 0x28, 0xfd,
+ 0x74, 0x6c, 0x63, 0x50, 0x39, 0x6b, 0x23, 0x26,
+ 0x0c, 0xcd, 0x59, 0x07, 0x42, 0x9d, 0x17, 0xed,
+ 0xdd, 0x08, 0x77, 0xaa, 0x26, 0xc9, 0x59, 0x12,
+ 0x69, 0x2f, 0x84, 0x55, 0x5b, 0xc2, 0xe9, 0x42,
+ 0x91, 0x53, 0xdf, 0xe9, 0xe2, 0xb7, 0xa3, 0x5b,
+ 0xc5, 0x39, 0xc5, 0x81, 0x0a, 0xb5, 0x43, 0x1c,
+ 0x4a, 0xd1, 0x35, 0xed, 0xac, 0x9f, 0xb5, 0xac,
+ 0x8f, 0x4a, 0xf4, 0xee, 0xce, 0x26, 0x95, 0x6b,
+ 0xb0, 0x2e, 0x10, 0xbe, 0x2d, 0x7d, 0xea, 0x86,
+ 0xba, 0x9d, 0x2a, 0x86, 0x0b, 0xe2, 0x09, 0x00,
+ 0x0b, 0x11, 0xb0, 0x97, 0xae, 0xb7, 0x53, 0x9d,
+ 0x11, 0x0b, 0xa9, 0x3b, 0x10, 0x0f, 0x20, 0x9d,
+ 0xbf, 0x60, 0xe4, 0x02, 0x80, 0x35, 0xc7, 0x88,
+ 0x52, 0x03, 0xa3, 0xc1, 0x2e, 0x59, 0x79, 0x8a,
+ 0x8e, 0x5e, 0xfd, 0x58, 0xa1, 0x94, 0x7a, 0xdc,
+ 0x94, 0x67, 0x6f, 0x33, 0x00, 0x31, 0x8d, 0xce,
+ 0x91, 0x76, 0xe6, 0x03, 0x97, 0x85, 0x34, 0x58,
+ 0x01, 0xe3, 0xe2, 0x9b, 0x59, 0x0c, 0x96, 0x67,
+ 0x86, 0xf4, 0x1f, 0x2b, 0x89, 0x76, 0xf7, 0xa0,
+ 0xaf, 0x12, 0xcd, 0xf9, 0x59, 0x8a, 0x8d, 0x76,
+ 0x28, 0xb3, 0x3b, 0x47, 0x01, 0x5d, 0x5e, 0xf4,
+ 0xad, 0x12, 0x8e, 0xb1, 0xf1, 0x41, 0x5e, 0xb8,
+ 0x59, 0x17, 0x99, 0x20, 0x17, 0xce, 0x3d, 0xd2,
+ 0x02, 0x39, 0x51, 0x84, 0x41, 0x21, 0x1a, 0x1f,
+ 0x30, 0x7a, 0x96, 0x48, 0x29, 0x1d, 0x7c, 0x15,
+ 0xba, 0x2b, 0x22, 0x91, 0x2b, 0xce, 0xd9, 0xe2,
+ 0x60, 0x30, 0x24, 0xaa, 0x7d, 0xbd, 0xb6, 0x3d,
+ 0x58, 0x63, 0xfc, 0xb1, 0xe7, 0xa4, 0xff, 0x3f,
+ 0x7e, 0xfc, 0xa4, 0x39, 0x49, 0xb8, 0x33, 0x72,
+ 0xf4, 0xa1, 0xbf, 0x73, 0x59, 0x0f, 0x71, 0xca,
+ 0x44, 0xf7, 0x38, 0xe0, 0x40, 0x0a, 0x99, 0x53,
+ 0xd3, 0xe6, 0xaa, 0xbf, 0xee, 0xae, 0x91, 0x4d,
+ 0x7c, 0x74, 0xa6, 0x26, 0xd1, 0x9e, 0x11, 0x14,
+ 0xf1, 0x2a, 0x73, 0x57, 0x94, 0x83, 0x47, 0x6a,
+ 0x9c, 0x04, 0xa6, 0x44, 0x73, 0x82, 0x9e, 0xab,
+ 0xac, 0x6f, 0xe7, 0x99, 0xa9, 0xf9, 0x46, 0x15,
+ 0xda, 0xf4, 0x2b, 0xe5, 0xd2, 0x89, 0x2c, 0x13,
+ 0x97, 0x10, 0xea, 0xc2, 0xd5, 0x21, 0xf7, 0xa1,
+ 0x64, 0xf4, 0x70, 0x8c, 0x7b, 0xae, 0x6d, 0x9e,
+ 0x2f, 0x3c, 0x85, 0xb3, 0x4d, 0xc4, 0xcc, 0x6f,
+ 0x53, 0x6a, 0xe4, 0xfc, 0x2b, 0xaa, 0x21, 0x55,
+ 0x32, 0x5a, 0xed, 0xa5, 0x75, 0x3e, 0xd1, 0xf6,
+ 0x69, 0x64, 0x71, 0x44, 0x1d, 0xb9, 0x47, 0xca,
+ 0x06, 0x0a, 0x50, 0x96, 0x50, 0x8a, 0xce, 0xce,
+ 0x34, 0xbb, 0x34, 0xda, 0x90, 0xe5, 0x84, 0xd2,
+ 0x42, 0x88, 0x3d, 0xac, 0xcb, 0x84, 0x46, 0x69,
+ 0x4b, 0xe2, 0x73, 0x7d, 0x45, 0x3c, 0x22, 0x7c,
+ 0xf7, 0xde, 0x59, 0xf6, 0xef, 0xfc, 0xaa, 0x45,
+ 0xab, 0xf1, 0x99, 0x91, 0x49, 0x4a, 0x3b, 0x73,
+ 0xd7, 0x78, 0x20, 0x5d, 0x74, 0x50, 0xd8, 0x98,
+ 0x7c, 0x27, 0x49, 0x9b, 0xaf, 0xf9, 0x8d, 0x02,
+ 0x70, 0x23, 0x56, 0x9c, 0x1c, 0x24, 0xb4, 0x42,
+ 0xa6, 0xc4, 0x06, 0xd5, 0xd1, 0x97, 0x9d, 0x36,
+ 0x9a, 0xfa, 0xdd, 0xbc, 0x66, 0x6b, 0x25, 0x11,
+ 0x8a, 0xa7, 0x82, 0x12, 0x52, 0x7c, 0x85, 0x95,
+ 0x56, 0xc4, 0x76, 0xf6, 0x1c, 0x20, 0xe4, 0xea,
+ 0x24, 0xf7, 0x1a, 0xdf, 0xb0, 0x50, 0x50, 0x40,
+ 0xfc, 0x2e, 0x33, 0xc4, 0xd4, 0xa5, 0x9f, 0x01,
+ 0xc8, 0x1c, 0x0d, 0x2a, 0xdc, 0x5e, 0x8c, 0x61,
+ 0x8e, 0xf9, 0x49, 0xd1, 0xea, 0x08, 0x50, 0x17,
+ 0x9d, 0x78, 0x63, 0x20, 0x2b, 0x7b, 0x04, 0x46,
+ 0x64, 0xdc, 0xfb, 0x32, 0x8b, 0xe1, 0xd4, 0xc3,
+ 0x65, 0x27, 0xfa, 0xeb, 0x57, 0xb7, 0x91, 0xf9,
+ 0xf6, 0x78, 0x53, 0x93, 0x2e, 0x78, 0x83, 0x15,
+ 0xc7, 0x18, 0x38, 0x0b, 0xbe, 0xc9, 0x53, 0x70,
+ 0xd2, 0x76, 0x0f, 0xdc, 0xd9, 0xc9, 0x8b, 0xbe,
+ 0xf4, 0xc8, 0x83, 0xbc, 0xd3, 0x63, 0x1f, 0x5b,
+ 0x27, 0xcf, 0x01, 0x7d, 0xe6, 0xa7, 0xa2, 0x57,
+ 0x81, 0x16, 0x79, 0x8b, 0x77, 0x7f, 0xbd, 0x9b,
+ 0x8e, 0xfc, 0xb9, 0x01, 0x45, 0x45, 0xca, 0x91,
+ 0xcd, 0x3d, 0xbf, 0x9b, 0x21, 0xb5, 0xfa, 0xe6,
+ 0xf9, 0x1a, 0xe2, 0xa3, 0x97, 0xca, 0xab, 0x9a,
+ 0xaf, 0x00, 0x0e, 0x0d, 0x70, 0xeb, 0x2a, 0x22,
+ 0xd7, 0xfb, 0x38, 0xa1, 0x0e, 0x12, 0x0b, 0x31,
+ 0x6b, 0x36, 0x50, 0xdb, 0x25, 0xd8, 0x3c, 0xfc,
+ 0xf7, 0x56, 0xac, 0xdb, 0x0e, 0x5f, 0x95, 0xf0,
+ 0x4b, 0xd2, 0x94, 0xd1, 0xf9, 0xf2, 0x7b, 0xa0,
+ 0x6d, 0xa6, 0x3d, 0x01, 0xfe, 0xac, 0x9f, 0x69,
+ 0x69, 0x9a, 0x2c, 0xa7, 0x26, 0x65, 0x0b, 0x38,
+ 0x17, 0x94, 0x33, 0x1a, 0x6c, 0xf3, 0xe6, 0xb0,
+ 0x59, 0x13, 0x16, 0xc4, 0xc0, 0xe1, 0x8d, 0xa6,
+ 0x58, 0xa3, 0xc8, 0xa6, 0x6c, 0xb0, 0x33, 0xd3,
+ 0x44, 0xb2, 0x1f, 0x31, 0x54, 0xa1, 0x68, 0x3f,
+ 0x8a, 0xf0, 0x81, 0xc7, 0x65, 0xd6, 0xb7, 0xfb,
+ 0x3b, 0x4c, 0x92, 0x91, 0x2a, 0xda, 0xe0, 0x50,
+ 0x12, 0x47, 0x6a, 0xb5, 0xfb, 0x5b, 0xbd, 0x0a,
+ 0x7b, 0x24, 0x13, 0x0b, 0x94, 0x46, 0x6f, 0xdd,
+ 0xff, 0x7e, 0xe7, 0xa3, 0x41, 0x5a, 0x18, 0x8f,
+ 0xb1, 0xdb, 0xdf, 0x28, 0xae, 0xbe, 0x4b, 0xdb,
+ 0x37, 0xb1, 0x91, 0x62, 0x4b, 0x8a, 0x21, 0xce,
+ 0x08, 0x44, 0xd0, 0x81, 0xa3, 0x7a, 0xa1, 0x34,
+ 0xc8, 0xfc, 0x33, 0x69, 0xa3, 0x2f, 0x3d, 0xb6,
+ 0xc3, 0xb8, 0x9d, 0x9d, 0x1c, 0x06, 0x56, 0xd8,
+ 0x9d, 0x17, 0x51, 0x7f, 0xd4, 0xcb, 0x8e, 0x42,
+ 0x37, 0x98, 0x09, 0x60, 0x60, 0xe6, 0xdd, 0x51,
+ 0xec, 0x96, 0xee, 0x24, 0x04, 0xe8, 0xa8, 0xdd,
+ 0x84, 0xce, 0x0b, 0x12, 0x6b, 0x5c, 0x51, 0x33,
+ 0xd2, 0x43, 0xb7, 0xcc, 0xac, 0x78, 0xb8, 0x29,
+ 0x42, 0x7b, 0x06, 0xd8, 0xf4, 0x2a, 0x69, 0x41,
+ 0xdb, 0x03, 0x33, 0xb0, 0x41, 0x0e, 0xcd, 0xcb,
+ 0x4a, 0x7d, 0xec, 0xe4, 0xb9, 0xf0, 0x9f, 0x44,
+ 0x0e, 0x36, 0x9f, 0x8f, 0xc9, 0xbb, 0xd6, 0x4f,
+ 0x33, 0xbb, 0x7f, 0xf5, 0x72, 0x7d, 0x23, 0x03,
+ 0xfb, 0x33, 0x27, 0x3a, 0x2f, 0x0c, 0x7c, 0xa0,
+ 0xe7, 0x69, 0x3d, 0x03, 0x6c, 0x3c, 0x85, 0x73,
+ 0xed, 0xe7, 0x58, 0xae, 0x24, 0x0a, 0xb7, 0xeb,
+ 0xf4, 0xd4, 0x7a, 0x54, 0x28, 0x1c, 0x58, 0x9d,
+ 0x2c, 0xa8, 0x11, 0x6f, 0x94, 0x95, 0xab, 0x74,
+ 0x7b, 0x55, 0xaa, 0xcb, 0x30, 0x51, 0x69, 0x2a,
+ 0xab, 0x9c, 0x9a, 0xa1, 0x44, 0x4d, 0x49, 0xac,
+ 0x7c, 0xc7, 0xc3, 0xa7, 0x5d, 0xca, 0xad, 0x57,
+ 0x5e, 0xf0, 0x11, 0xcb, 0xbd, 0x1e, 0x9e, 0xf0,
+ 0x0c, 0xc5, 0x7d, 0xdc, 0x30, 0x6e, 0x45, 0x75,
+ 0x4e, 0xfa, 0xdf, 0xe8, 0x1b, 0xec, 0xd5, 0x2a,
+ 0x19, 0xf7, 0xea, 0xb8, 0x82, 0xbf, 0xc1, 0x0a,
+ 0xa2, 0x06, 0x9b, 0x50, 0xe3, 0xc2, 0xc7, 0xc5,
+ 0xaf, 0x18, 0x96, 0x24, 0xc8, 0x8f, 0xef, 0xc4,
+ 0x2e, 0x98, 0xa1, 0xa8, 0xd0, 0xac, 0x65, 0xa1,
+ 0x0e, 0xb8, 0x8c, 0x39, 0x2e, 0xbd, 0x2c, 0x57,
+ 0xfd, 0x16, 0x24, 0x8a, 0x5a, 0x71, 0xbb, 0x05,
+ 0xb8, 0xc4, 0xeb, 0x1c, 0x48, 0xe3, 0x4e, 0x5c,
+ 0xd5, 0x0a, 0x6e, 0x88, 0x38, 0xa1, 0x0c, 0x04,
+ 0xc5, 0xce, 0x66, 0x50, 0x21, 0xa8, 0x7d, 0x92,
+ 0x9c, 0x80, 0xf8, 0x5a, 0xf3, 0x88, 0xce, 0x27,
+ 0x4b, 0x2b, 0x45, 0xe2, 0x7b, 0xca, 0xb7, 0xae,
+ 0x97, 0x68, 0xc4, 0x85, 0x2d, 0x65, 0x86, 0xd1,
+ 0xe6, 0x99, 0xc3, 0xa5, 0xca, 0xa9, 0x8c, 0x35,
+ 0xaa, 0x5d, 0x17, 0x67, 0xb5, 0x49, 0x4c, 0xf2,
+ 0x64, 0x97, 0xf0, 0xde, 0x5f, 0x0b, 0x21, 0xb6,
+ 0x4f, 0x82, 0xd7, 0x40, 0x9d, 0x27, 0xf8, 0x4e,
+ 0xf4, 0x46, 0x70, 0x87, 0x67, 0x44, 0xe4, 0x44,
+ 0x78, 0xc5, 0x7d, 0xea, 0xd3, 0x4d, 0x0d, 0x6b,
+ 0xe6, 0x7c, 0xba, 0xf6, 0xe3, 0x27, 0xc6, 0xa2,
+ 0xbb, 0x4f, 0x53, 0xeb, 0x2f, 0x8f, 0xe9, 0x7f,
+ 0xb4, 0x6e, 0x20, 0xd5, 0xa5, 0x5a, 0xf5, 0x53,
+ 0x20, 0xaa, 0x29, 0x84, 0x74, 0xe1, 0xe8, 0x68,
+ 0x18, 0x2f, 0x74, 0x6f, 0x48, 0xea, 0x0e, 0xb9,
+ 0x04, 0x52, 0x29, 0xd6, 0xb6, 0x85, 0x1a, 0x20,
+ 0xf8, 0xbd, 0xa9, 0x6d, 0xd0, 0xc6, 0xde, 0xc3,
+ 0xad, 0xf8, 0xd3, 0x07, 0xd3, 0x94, 0x37, 0xc2,
+ 0x9a, 0x4f, 0x81, 0x0d, 0x68, 0xd5, 0x17, 0xc3,
+ 0xb4, 0x05, 0x87, 0x30, 0x03, 0x91, 0xd2, 0xfa,
+ 0x08, 0x3a, 0xdc, 0xda, 0x0c, 0xfa, 0xab, 0xf4,
+ 0xf9, 0xc0, 0xe7, 0x66, 0x87, 0x76, 0xce, 0x41,
+ 0x25, 0x23, 0xc5, 0xea, 0xd8, 0x58, 0x24, 0x60,
+ 0x85, 0x2b, 0xe6, 0x9c, 0x04, 0x59, 0xf5, 0xcd,
+ 0x99, 0xf6, 0x97, 0x5d, 0xbc, 0xc1, 0xf3, 0xb3,
+ 0xb0, 0x08, 0x81, 0xc8, 0x48, 0x0d, 0x51, 0x3f,
+ 0x6f, 0x7d, 0xcb, 0xd0, 0x9d, 0xce, 0xa7, 0xa5,
+ 0x1f, 0x09, 0x3c, 0x75, 0x77, 0x96, 0xa7, 0x65,
+ 0xd3, 0x6a, 0xf9, 0x47, 0x87, 0xe0, 0x0e, 0x87,
+ 0x89, 0x5c, 0xaa, 0x90, 0x4d, 0x80, 0xe3, 0x1b,
+ 0x09, 0x47, 0xd4, 0x4f, 0xf8, 0x95, 0x42, 0xdc,
+ 0xd0, 0xc7, 0x6c, 0x83, 0x8b, 0xe9, 0xe0, 0xad,
+ 0xdd, 0x46, 0xb7, 0xec, 0xdc, 0xac, 0x4c, 0xfb,
+ 0xa8, 0x6e, 0x56, 0xa0, 0x54, 0x25, 0xf3, 0xe6,
+ 0xb6, 0xf7, 0xdc, 0x92, 0xdf, 0x26, 0x3a, 0x69,
+ 0x6d, 0xca, 0xf2, 0x87, 0xe9, 0x99, 0xc4, 0x80,
+ 0x4b, 0xbd, 0xbd, 0x00, 0xd1, 0x59, 0x0f, 0x4d,
+ 0x8d, 0xfe, 0x51, 0x0c, 0x69, 0x6b, 0x17, 0x92,
+ 0xfe, 0xfd, 0xc6, 0x36, 0xfe, 0x68, 0x4b, 0xda,
+ 0x4c, 0xae, 0xea, 0x5a, 0x7d, 0xf2, 0xf0, 0xcf,
+ 0x67, 0x48, 0x29, 0x55, 0xc5, 0xbd, 0xe5, 0xe5,
+ 0x73, 0x1e, 0x07, 0xb8, 0x90, 0x86, 0x3f, 0xbf,
+ 0xe8, 0x87, 0x31, 0xd0, 0x6f, 0x8b, 0xaf, 0xcb,
+ 0x2c, 0xb2, 0x46, 0x70, 0x04, 0x8c, 0x73, 0x90,
+ 0xa2, 0x26, 0xda, 0x70, 0x2b, 0x22, 0x7f, 0x98,
+ 0x3b, 0x59, 0x8b, 0xea, 0x19, 0x7a, 0xcb, 0x63,
+ 0xd7, 0x95, 0xc1, 0x59, 0x8c, 0xac, 0xa1, 0xf7,
+ 0x45, 0x3e, 0xb2, 0x5b, 0x81, 0x6e, 0x8f, 0x9c,
+ 0x24, 0x38, 0xdd, 0x16, 0xce, 0x5f, 0x2a, 0xfb,
+ 0x4e, 0x93, 0x38, 0xc7, 0xae, 0xe7, 0x9d, 0x43,
+ 0x15, 0xb6, 0x52, 0xe4, 0x94, 0xe9, 0x63, 0xd7,
+ 0x74, 0x08, 0x6e, 0xf3, 0x01, 0xac, 0xc1, 0x8c,
+ 0x17, 0x45, 0xd6, 0xa9, 0xf0, 0x24, 0x1f, 0x9b,
+ 0xcd, 0xa7, 0x8f, 0xbf, 0xfe, 0x36, 0x09, 0x7b,
+ 0x02, 0xcd, 0x45, 0x9b, 0x16, 0x88, 0xae, 0xc3,
+ 0x89, 0x98, 0xbb, 0x06, 0x32, 0x7d, 0x54, 0xb3,
+ 0x8d, 0x6f, 0xb4, 0xc8, 0x4f, 0xff, 0x7d, 0x6d,
+ 0x03, 0x9f, 0xe8, 0x78, 0xd9, 0x95, 0x8f, 0x8b,
+ 0xd9, 0x4b, 0x14, 0x86, 0xa7, 0xc9, 0x5f, 0x86,
+ 0x2f, 0x17, 0x2b, 0x56, 0xe0, 0xaa, 0x41, 0x7a,
+ 0xa0, 0x70, 0xcf, 0xac, 0xf6, 0xfe, 0x86, 0x17,
+ 0x68, 0x05, 0x20, 0x4f, 0x7d, 0x21, 0x2d, 0xca,
+ 0xf8, 0x21, 0x13, 0x5e, 0x19, 0x98, 0x03, 0x2b,
+ 0x75, 0x99, 0xc1, 0xfd, 0x80, 0xd6, 0xce, 0x60,
+ 0xec, 0x67, 0x41, 0x96, 0x81, 0x73, 0x46, 0x41,
+ 0x39, 0xe7, 0xb9, 0x4d, 0x38, 0x67, 0x83, 0x5d,
+ 0x9e, 0x72, 0x4d, 0x8a, 0x5b, 0xc1, 0xde, 0x4d,
+ 0x23, 0x04, 0x9c, 0xbe, 0xf0, 0x94, 0x02, 0x15,
+ 0x88, 0x9b, 0x8f, 0x85, 0x3e, 0x06, 0x29, 0x78,
+ 0xc2, 0x2f, 0x61, 0xa1, 0xbd, 0x67, 0x1a, 0xaf,
+ 0xaf, 0xe0, 0xd2, 0x3c, 0xb9, 0x29, 0xcf, 0x99,
+ 0xc5, 0xb8, 0x73, 0x95, 0xd4, 0x49, 0xdc, 0xd1,
+ 0xe7, 0xa0, 0x72, 0x8a, 0x77, 0x2b, 0x1b, 0x08,
+ 0xf1, 0xcb, 0xc0, 0x0b, 0xfa, 0x60, 0xfa, 0x15,
+ 0x41, 0x2f, 0xa7, 0x13, 0x91, 0xff, 0x00, 0x84,
+ 0xbd, 0xb8, 0x88, 0xa3, 0x54, 0xb3, 0x60, 0x72,
+ 0xcd, 0x0e, 0x24, 0xfb, 0x5b, 0x42, 0x32, 0x7c,
+ 0x00, 0x4c, 0x7c, 0xe9, 0xc2, 0x32, 0x12, 0x29,
+ 0x30, 0xb6, 0x2b, 0xb7, 0x08, 0x32, 0x0c, 0xa4,
+ 0xbb, 0x61, 0x09, 0x3f, 0xe2, 0x72, 0x07, 0x00,
+ 0x16, 0x04, 0x6a, 0x15, 0xd9, 0x20, 0xaf, 0x36,
+ 0x53, 0x34, 0x39, 0x17, 0xa5, 0x16, 0xa3, 0x76,
+ 0x9b, 0x6f, 0x14, 0x2a, 0x35, 0x67, 0x0d, 0x06,
+ 0xd5, 0x15, 0xe0, 0x1e, 0x65, 0xdf, 0x92, 0x05,
+ 0x92, 0x24, 0x9c, 0xcd, 0x49, 0xbb, 0x2f, 0xfd,
+ 0x4c, 0xfb, 0x59, 0x33, 0xf6, 0x6e, 0xa0, 0x37,
+ 0xa9, 0xf6, 0xa4, 0xa7, 0xd8, 0x26, 0xe3, 0x2a,
+ 0x71, 0x07, 0x25, 0x13, 0xbe, 0x93, 0x7e, 0x69,
+ 0x8f, 0x77, 0x96, 0xb3, 0x1a, 0xe7, 0x6f, 0x97,
+ 0x1c, 0x78, 0xe8, 0x28, 0xbd, 0xf9, 0x39, 0x63,
+ 0xa0, 0xb4, 0xa5, 0xa1, 0xcc, 0x8c, 0x30, 0x92,
+ 0x09, 0x18, 0x14, 0xe8, 0xeb, 0xe7, 0xf1, 0xdb,
+ 0x72, 0x94, 0x8d, 0xb0, 0x93, 0x88, 0x66, 0xb3,
+ 0x21, 0xda, 0x46, 0x72, 0x93, 0xbf, 0x49, 0x14,
+ 0x24, 0x4d, 0x1b, 0x5f, 0x3b, 0x9c, 0xc8, 0xa0,
+ 0x13, 0xb4, 0x81, 0x18, 0x2a, 0xef, 0x8f, 0x44,
+ 0x79, 0xda, 0xfe, 0xe9, 0x65, 0x10, 0x79, 0xac,
+ 0xd3, 0xa2, 0x80, 0xb1, 0x9f, 0x43, 0xd9, 0x28,
+ 0xba, 0x6f, 0x88, 0xfe, 0x86, 0xe7, 0xee, 0x21,
+ 0xc3, 0x9d, 0x4e, 0xff, 0xb3, 0x1b, 0xa6, 0x90,
+ 0xe0, 0xc3, 0x4f, 0xbb, 0xb7, 0xd3, 0xe8, 0xd2,
+ 0x3d, 0x0b, 0x04, 0x28, 0x86, 0x03, 0xa5, 0x90,
+ 0x24, 0x12, 0x0c, 0x62, 0xc7, 0x2a, 0x6b, 0xa8,
+ 0x71, 0x8e, 0x53, 0x78, 0x5e, 0x56, 0xc4, 0x58,
+ 0x01, 0x40, 0x97, 0x6b, 0x7c, 0x58, 0x78, 0x26,
+ 0x35, 0x34, 0x4e, 0xe7, 0x0f, 0xa7, 0xa2, 0x60,
+ 0xc7, 0x8b, 0xb6, 0xde, 0xb1, 0xda, 0xdb, 0x05,
+ 0xf9, 0xea, 0x4f, 0x58, 0x12, 0xa7, 0x75, 0xd3,
+ 0x6d, 0x15, 0xdb, 0x29, 0x83, 0x3f, 0x0f, 0x04,
+ 0x54, 0x16, 0x28, 0xbf, 0xee, 0x02, 0x2d, 0xc2,
+ 0x26, 0x25, 0xae, 0xf6, 0xe4, 0xa1, 0x88, 0x6b,
+ 0x6d, 0xa4, 0x8e, 0x97, 0xd9, 0x4a, 0xd2, 0xd4,
+ 0x6d, 0x12, 0x88, 0x0d, 0x6d, 0x5c, 0xac, 0xa2,
+ 0x79, 0x83, 0x82, 0x99, 0xd5, 0x41, 0x34, 0xfd,
+ 0xd8, 0xd6, 0x4d, 0x9c, 0x4b, 0x13, 0x99, 0xb6,
+ 0xfa, 0x22, 0x57, 0xc5, 0x52, 0x3f, 0x5c, 0x67,
+ 0xc4, 0xa0, 0x1e, 0x05, 0xab, 0x5c, 0xfe, 0x43,
+ 0xc9, 0xaf, 0x6a, 0xca, 0xa3, 0x9f, 0x0c, 0x06,
+ 0xe0, 0xdc, 0xc0, 0x3f, 0x35, 0x26, 0x51, 0x70,
+ 0x20, 0x0d, 0x24, 0x75, 0x9d, 0x20, 0x92, 0xeb,
+ 0x9c, 0x48, 0xcf, 0x93, 0x82, 0x60, 0x45, 0x27,
+ 0xa8, 0x51, 0x23, 0x8d, 0x06, 0x31, 0xb3, 0x89,
+ 0x9c, 0x75, 0xf1, 0x3e, 0x45, 0x3e, 0x2d, 0x44,
+ 0x8e, 0x2b, 0x6a, 0x88, 0x53, 0x2b, 0x0d, 0x2c,
+ 0x0e, 0x60, 0xe5, 0xe8, 0x75, 0x50, 0x48, 0xc1,
+ 0x96, 0x84, 0x41, 0x9e, 0xbc, 0xa9, 0x31, 0x74,
+ 0x77, 0x2b, 0x67, 0x67, 0xf2, 0xac, 0xe6, 0xf2,
+ 0xf5, 0x30, 0xfb, 0x40, 0x40, 0x0f, 0x1e, 0x97,
+ 0xe9, 0x94, 0x2e, 0x14, 0x52, 0x09, 0xed, 0x66,
+ 0x2f, 0x63, 0x37, 0x81, 0xfe, 0xa5, 0x26, 0xa2,
+ 0x73, 0x1e, 0x74, 0xda, 0x03, 0x05, 0x71, 0xc8,
+ 0xbe, 0xc4, 0xf8, 0x3b, 0xcc, 0xdd, 0x1a, 0x60,
+ 0xf1, 0x5e, 0x52, 0x3a, 0xfb, 0x29, 0x09, 0x31,
+ 0xa5, 0x35, 0x00, 0x78, 0x5d, 0x57, 0x4b, 0x73,
+ 0x85, 0x5b, 0x7f, 0xb6, 0x79, 0x88, 0xcc, 0x3d,
+ 0xc0, 0xbc, 0x2a, 0x80, 0x89, 0x81, 0x4d, 0x1f,
+ 0xf7, 0x33, 0xc2, 0xe6, 0x54, 0xa8, 0x3a, 0x71,
+ 0x5c, 0xb5, 0x87, 0xba, 0xe6, 0xfd, 0x43, 0x23,
+ 0xa7, 0x32, 0xa4, 0x1e, 0x8c, 0xe8, 0x49, 0x71,
+ 0x0a, 0x16, 0x31, 0x10, 0xa4, 0x14, 0x20, 0xb4,
+ 0xe9, 0xd6, 0x62, 0x33, 0x0a, 0x25, 0xa6, 0xfa,
+ 0xb9, 0xa9, 0x89, 0xcd, 0xa4, 0x7f, 0x29, 0x48,
+ 0x5f, 0x64, 0x71, 0x95, 0x2a, 0x29, 0xcc, 0x6e,
+ 0xc4, 0xad, 0x5f, 0xf2, 0xd8, 0x95, 0x52, 0x00,
+ 0xc3, 0x53, 0x5b, 0x49, 0xa9, 0x67, 0xaa, 0xe2,
+ 0xa8, 0x37, 0x44, 0x9d, 0xaf, 0xba, 0xcf, 0xdc,
+ 0x99, 0x80, 0xd6, 0x5d, 0x94, 0xb4, 0x4a, 0xe4,
+ 0xe8, 0xc6, 0xf5, 0x41, 0x19, 0xe3, 0xed, 0x8a,
+ 0xe3, 0x4f, 0xf0, 0x54, 0x9c, 0xef, 0xd4, 0x2f,
+ 0x9c, 0x5c, 0xfe, 0xdf, 0x3d, 0xf6, 0xd9, 0x13,
+ 0xd7, 0x01, 0xdb, 0xf2, 0x75, 0xc7, 0x4e, 0x36,
+ 0x00, 0x2c, 0xc5, 0xa3, 0xa6, 0xb0, 0x0b, 0xfd,
+ 0x58, 0x13, 0x85, 0xf2, 0xf3, 0x42, 0x07, 0x95,
+ 0xe4, 0x99, 0xa1, 0x18, 0x05, 0x5d, 0x1c, 0x88,
+ 0x19, 0xc2, 0x1c, 0x97, 0x95, 0x54, 0x43, 0x2f,
+ 0x1e, 0x79, 0x42, 0xbf, 0xa1, 0x89, 0x47, 0xf4,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0xb0, 0xfd, 0x6d, 0x90, 0x96, 0x40, 0xee, 0x80,
+ 0xa5, 0x07, 0x91, 0x96, 0xd4, 0xe9, 0x23, 0xc2,
+ 0x33, 0xd3, 0x66, 0xb8, 0xc9, 0xe0, 0x42, 0xf6,
+ 0x4e, 0x58, 0x30, 0x2b, 0xa3, 0xda, 0x04, 0x98,
+ 0x0e, 0x08, 0x1b, 0x1c, 0x6a, 0x05, 0xdb, 0xb2,
+ 0xa1, 0x45, 0xe4, 0xc2, 0x8f, 0x6e, 0x6d, 0x3a,
+ 0x43, 0x78, 0xa7, 0x34, 0x72, 0x6e, 0xb0, 0x1f,
+ 0x60, 0x9d, 0x88, 0xbb, 0xf9, 0xf2, 0x37, 0xae,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0x25, 0x09, 0x7a, 0x53, 0x87, 0x5b, 0xd7, 0x3d,
+ 0xc4, 0xfc, 0xec, 0x46, 0x67, 0xb5, 0x52, 0xbf,
+ 0xf0, 0x43, 0x67, 0xd8, 0x55, 0xdc, 0x45, 0xbf,
+ 0x0e, 0x71, 0xa0, 0xaf, 0x6d, 0x90, 0x16, 0x62,
+ 0x09, 0x50, 0x05, 0x6a, 0xdf, 0xf9, 0x2e, 0x97,
+ 0xaa, 0x17, 0x1d, 0x8a, 0xc3, 0xd8, 0x16, 0x80,
+ 0xc7, 0xec, 0xed, 0xf7, 0x77, 0x92, 0xaa, 0x7e,
+ 0xa0, 0xa9, 0x61, 0xb9, 0x0c, 0xfe, 0x3a, 0x38,
+ 0x8a, 0x75, 0xda, 0x7f, 0x21, 0x3d, 0x8a, 0x2c,
+ 0x6e, 0x2d, 0xe3, 0xb3, 0x4d, 0xe1, 0xba, 0xa7,
+ 0xed, 0xa2, 0xf9, 0x7a, 0x5c, 0xa9, 0xa5, 0x78,
+ 0x86, 0xb8, 0x18, 0xb8, 0xe9, 0x62, 0xa8, 0xa6,
+ 0x69, 0x34, 0x36, 0xbb, 0x93, 0xb7, 0xf2, 0x6b,
+ 0x25, 0x5e, 0x6c, 0x28, 0x8e, 0x92, 0xf7, 0x50,
+ 0x81, 0xe7, 0xba, 0x07, 0x75, 0x31, 0xd2, 0xcb,
+ 0x6f, 0x50, 0xc4, 0x49, 0x25, 0x6b, 0xd1, 0x07,
+ 0x98, 0x40, 0xe3, 0x75, 0x19, 0xe8, 0xad, 0xd2,
+ 0x91, 0x30, 0xd3, 0x34, 0xd2, 0xd3, 0x8e, 0x0f,
+ 0xc7, 0x13, 0x1f, 0xed, 0xd6, 0x88, 0x13, 0xf0,
+ 0x73, 0xd7, 0x65, 0x32, 0xeb, 0xa6, 0x0a, 0x5a,
+ 0x17, 0x4f, 0x86, 0xd6, 0x37, 0x24, 0x95, 0xcc,
+ 0xdd, 0xd3, 0x76, 0xaf, 0x4e, 0xc7, 0x54, 0xa8,
+ 0x8a, 0xbf, 0x7b, 0xb8, 0xf3, 0xe7, 0x45, 0xd7,
+ 0x7e, 0x76, 0xd3, 0x24, 0x7b, 0x95, 0xd8, 0xbc,
+ 0x52, 0xde, 0xe5, 0x5a, 0x33, 0x6a, 0x2e, 0x3d,
+ 0x2a, 0xd6, 0x93, 0x72, 0x74, 0x69, 0xfe, 0x6d,
+ 0xb7, 0x26, 0x14, 0x83, 0x6c, 0xc3, 0xa2, 0x1c,
+ 0xde, 0x17, 0x1b, 0x09, 0xf7, 0x52, 0x3a, 0x26,
+ 0xa1, 0xfa, 0xd3, 0x0d, 0xf2, 0xb7, 0x2f, 0x94,
+ 0xcf, 0xdb, 0xf0, 0x58, 0x42, 0x46, 0xf2, 0xc5,
+ 0x64, 0xfd, 0x2d, 0x7e, 0x60, 0x7e, 0x13, 0x23,
+ 0x46, 0x62, 0xd2, 0xf6, 0x4d, 0x07, 0xf8, 0xd1,
+ 0x7c, 0xfc, 0xd2, 0x88, 0x18, 0xb2, 0xe2, 0x68,
+ 0xb7, 0x6c, 0xb4, 0x87, 0xee, 0x59, 0x35, 0xd2,
+ 0xf5, 0x3e, 0x4e, 0x9e, 0xfc, 0xc2, 0x93, 0x84,
+ 0x1a, 0x18, 0x5e, 0x09, 0x70, 0x9e, 0xb9, 0x5a,
+ 0xba, 0x9b, 0x68, 0x22, 0x6c, 0x8b, 0xb3, 0x4f,
+ 0xc9, 0x9e, 0x7a, 0x77, 0xf4, 0x32, 0x66, 0xa3,
+ 0x1b, 0xf7, 0x59, 0x15, 0xa3, 0xfb, 0x92, 0x54,
+ 0x6b, 0x56, 0x8b, 0x19, 0x4c, 0x9e, 0x8d, 0x49,
+ 0x56, 0x5e, 0x3d, 0x47, 0x99, 0x16, 0x5b, 0x00,
+ 0xa0, 0x4e, 0x41, 0xbb, 0x42, 0x9f, 0xbd, 0x31,
+ 0x3f, 0xe0, 0x40, 0x22, 0xd8, 0xf7, 0x42, 0x54,
+ 0xcc, 0xbd, 0x2b, 0xbf, 0x7d, 0x09, 0x69, 0x18,
+ 0xa6, 0x8e, 0x72, 0x3a, 0x8b, 0x69, 0x90, 0x91,
+ 0x6f, 0xbb, 0x83, 0x34, 0x47, 0x2d, 0xfe, 0xb8,
+ 0x72, 0xe4, 0xe0, 0xfc, 0xf6, 0x41, 0x2e, 0xb5,
+ 0xed, 0x17, 0x4f, 0x91, 0xfe, 0x4c, 0xa6, 0xaa,
+ 0xec, 0x1c, 0xfd, 0x6f, 0x25, 0x46, 0xf6, 0x84,
+ 0xfe, 0x95, 0x03, 0xb3, 0xe1, 0xf3, 0xa7, 0x35,
+ 0x18, 0x4d, 0x73, 0x8c, 0x1e, 0xab, 0x7a, 0x0c,
+ 0xc7, 0xde, 0x2f, 0x84, 0x91, 0x29, 0x67, 0x95,
+ 0x8d, 0xfe, 0x6f, 0x83, 0xb8, 0xd0, 0xba, 0xd5,
+ 0xa2, 0xf7, 0xbb, 0xd1, 0xe2, 0x80, 0x8e, 0x62,
+ 0xbc, 0xed, 0x56, 0x88, 0x0e, 0x05, 0x0c, 0xa4,
+ 0xc6, 0xa7, 0xfb, 0x78, 0xc8, 0x52, 0x51, 0x56,
+ 0x7e, 0xa2, 0xa9, 0xeb, 0x0a, 0xc1, 0xb7, 0xc3,
+ 0x9f, 0x10, 0x91, 0xe1, 0xb8, 0x82, 0xa9, 0x63,
+ 0xd1, 0x11, 0x39, 0x72, 0x45, 0xac, 0x98, 0xbd,
+ 0x03, 0x4c, 0xd3, 0x15, 0x4d, 0x87, 0xcd, 0x8b,
+ 0x35, 0x3f, 0xd0, 0x8a, 0x6d, 0xb7, 0x34, 0x85,
+ 0xb7, 0xcc, 0xe5, 0xc2, 0xfc, 0xb8, 0x6d, 0xb6,
+ 0x90, 0x3a, 0xef, 0x6f, 0x53, 0x02, 0x0c, 0x6c,
+ 0x7d, 0x79, 0x51, 0xb8, 0xdf, 0x54, 0xa9, 0xf5,
+ 0xf6, 0x9b, 0x80, 0xed, 0x97, 0x3b, 0x7e, 0xa1,
+ 0xce, 0x3e, 0xa2, 0xd3, 0xce, 0xb2, 0x0c, 0x16,
+ 0x28, 0x73, 0xf1, 0x5d, 0xeb, 0xc8, 0x6a, 0x10,
+ 0x41, 0xbb, 0x14, 0x65, 0x48, 0x78, 0x18, 0xa3,
+ 0x90, 0xb1, 0xc8, 0x5b, 0xf3, 0x65, 0xb3, 0xcb,
+ 0x7c, 0x49, 0x87, 0x61, 0xa8, 0xf4, 0xdc, 0x58,
+ 0x21, 0x12, 0x4b, 0xb8, 0x04, 0xf1, 0x1c, 0x7e,
+ 0x7a, 0xd0, 0xc9, 0xde, 0x3f, 0x72, 0x5e, 0x5e,
+ 0x6b, 0xf6, 0x73, 0x3e, 0x7c, 0x3d, 0xaf, 0x39,
+ 0x9a, 0x3b, 0xa5, 0x8b, 0xea, 0x13, 0xa6, 0xb5,
+ 0x3c, 0x13, 0xa1, 0x98, 0xa0, 0xbb, 0x75, 0xd2,
+ 0xca, 0x0e, 0x3d, 0x8a, 0x08, 0x9f, 0x98, 0xb1,
+ 0x5c, 0x59, 0x3a, 0xa5, 0x14, 0x3f, 0xc7, 0xfa,
+ 0x71, 0xb8, 0xc0, 0x50, 0xa4, 0x35, 0xdd, 0x11,
+ 0xaf, 0x10, 0x05, 0xc4, 0x66, 0x1c, 0xae, 0x9b,
+ 0x43, 0xf3, 0x4f, 0xbd, 0xb1, 0xac, 0x3f, 0x7d,
+ 0xe6, 0x99, 0xfc, 0xd3, 0x54, 0xc7, 0x82, 0xcc,
+ 0xdc, 0xda, 0xe4, 0x1b, 0x15, 0x19, 0x70, 0x0a,
+ 0xd0, 0x4a, 0xe2, 0x9d, 0x4c, 0xe9, 0x59, 0x12,
+ 0x01, 0xab, 0x30, 0xfb, 0xe6, 0xe0, 0x74, 0x54,
+ 0x25, 0xb5, 0xd9, 0x0e, 0x79, 0xba, 0x1b, 0x0b,
+ 0x02, 0x4b, 0x0e, 0xf8, 0x81, 0x63, 0xf5, 0x54,
+ 0xa0, 0xec, 0xf4, 0x80, 0x4a, 0x54, 0x2e, 0xda,
+ 0xc4, 0x44, 0x97, 0xe4, 0xcb, 0xd5, 0x5f, 0x5a,
+ 0x75, 0x21, 0x8d, 0xfd, 0x78, 0xed, 0x15, 0x97,
+ 0x54, 0xd0, 0x77, 0x70, 0x8a, 0x62, 0xc7, 0x74,
+ 0xd4, 0x1c, 0x7e, 0x28, 0x63, 0xae, 0x9d, 0xeb,
+ 0x9e, 0xba, 0x40, 0x55, 0x52, 0x7e, 0x0d, 0xe9,
+ 0x48, 0x20, 0x6d, 0x07, 0x39, 0xd0, 0x1a, 0x08,
+ 0x1a, 0xea, 0xca, 0xbc, 0x96, 0x92, 0xaf, 0x34,
+ 0xe6, 0x69, 0xe4, 0x23, 0xa7, 0x1e, 0x45, 0xbe,
+ 0xd4, 0x7e, 0xd2, 0xb6, 0xb8, 0x86, 0xa3, 0x1d,
+ 0xfd, 0x8e, 0xa0, 0x46, 0xca, 0x0e, 0xfe, 0xc9,
+ 0xf5, 0x58, 0x44, 0x09, 0xf0, 0x5e, 0x1a, 0xf2,
+ 0x0f, 0x88, 0x0f, 0x54, 0xf8, 0xb8, 0xcc, 0x2f,
+ 0x1c, 0xd0, 0xe4, 0xd3, 0x21, 0x45, 0x66, 0x2e,
+ 0x40, 0x59, 0xb8, 0x1e, 0x51, 0x19, 0x5a, 0x5c,
+ 0x58, 0x6b, 0xb0, 0xde, 0xc8, 0x31, 0x77, 0xee,
+ 0x02, 0xa0, 0xe3, 0xef, 0x84, 0x36, 0x48, 0xae,
+ 0xa9, 0x41, 0x0c, 0x1b, 0xa4, 0xa2, 0xf7, 0x3e,
+ 0x5d, 0xab, 0xd0, 0x02, 0x8b, 0x34, 0x4b, 0x42,
+ 0x2c, 0xaf, 0x07, 0x32, 0x52, 0xc4, 0x2e, 0x8a,
+ 0xbb, 0x37, 0xa5, 0x3c, 0x47, 0x19, 0x29, 0xde,
+ 0x04, 0x87, 0xb6, 0x8d, 0xd5, 0x9c, 0x98, 0xa6,
+ 0x06, 0x60, 0xf0, 0x37, 0x53, 0x29, 0x54, 0x98,
+ 0xf0, 0x52, 0x8a, 0xb0, 0x6a, 0x1b, 0x8a, 0xde,
+ 0x32, 0x1d, 0x4f, 0x53, 0x4f, 0x21, 0x48, 0x77,
+ 0x97, 0xe6, 0x9e, 0x5a, 0x96, 0x34, 0x11, 0x67,
+ 0xb8, 0xef, 0x9c, 0xad, 0x28, 0xee, 0xdf, 0xd2,
+ 0x86, 0xdd, 0x0a, 0xfa, 0x5f, 0x2b, 0x39, 0xb3,
+ 0x65, 0xda, 0xa6, 0xf7, 0x19, 0x15, 0xd1, 0x8f,
+ 0x30, 0x2f, 0xfa, 0x24, 0x2f, 0x8a, 0x78, 0x72,
+ 0x91, 0xdd, 0x28, 0x73, 0xfa, 0x2f, 0x6b, 0x1e,
+ 0x8f, 0x60, 0x65, 0xa0, 0x93, 0x24, 0x3d, 0xdd,
+ 0xc7, 0xed, 0x44, 0xba, 0x45, 0xa8, 0x60, 0xa4,
+ 0x70, 0xaf, 0x6e, 0x2f, 0xc0, 0x86, 0xc6, 0x5e,
+ 0xed, 0xed, 0xad, 0x7d, 0x10, 0xe4, 0x48, 0x04,
+ 0xd7, 0xd8, 0x48, 0xfa, 0xbe, 0x5b, 0x5d, 0x43,
+ 0x47, 0x0b, 0xcc, 0x75, 0x31, 0xed, 0x6e, 0x97,
+ 0xb8, 0xff, 0x8c, 0x0d, 0x3b, 0x47, 0xdd, 0xff,
+ 0x88, 0xd6, 0x98, 0x65, 0x76, 0xc2, 0x1b, 0xf6,
+ 0xf0, 0x69, 0xcb, 0xaf, 0xa6, 0x79, 0x49, 0x99,
+ 0xaf, 0xae, 0x7e, 0xa1, 0xa7, 0x1b, 0xc8, 0xc5,
+ 0xf5, 0x40, 0xf6, 0xc9, 0x6a, 0xa4, 0xc1, 0xcb,
+ 0x15, 0x35, 0x09, 0xb7, 0x85, 0x88, 0xc3, 0x6a,
+ 0xcb, 0xc2, 0xa7, 0x5e, 0xcd, 0xc2, 0xe5, 0x7b,
+ 0x92, 0xab, 0xd3, 0x6f, 0x59, 0x63, 0xe4, 0xb3,
+ 0x50, 0x2f, 0x62, 0xad, 0x96, 0x00, 0x34, 0x60,
+ 0x47, 0x0c, 0xef, 0x85, 0x70, 0xf9, 0xfd, 0x01,
+ 0xaa, 0x3a, 0xcc, 0xc5, 0x22, 0x2e, 0xf7, 0xec,
+ 0x4a, 0x5d, 0x08, 0x1d, 0x70, 0xa4, 0xe8, 0x51,
+ 0x9a, 0x14, 0xa9, 0xda, 0xa2, 0xb3, 0x63, 0x44,
+ 0x2e, 0x58, 0xb3, 0x32, 0xe2, 0x9c, 0x35, 0x0d,
+ 0x02, 0x2f, 0x6c, 0xc1, 0xb9, 0xe9, 0x0f, 0x13,
+ 0x02, 0x37, 0xdc, 0xc1, 0x97, 0xe2, 0x32, 0x1e,
+ 0x6f, 0xba, 0xb8, 0xd1, 0xfd, 0xf0, 0xd5, 0x23,
+ 0xe0, 0x7d, 0xae, 0x85, 0x1e, 0x9d, 0x0d, 0x7b,
+ 0xfe, 0x40, 0xe8, 0x0d, 0xf1, 0x2c, 0xf0, 0xa9,
+ 0xf7, 0x77, 0xbe, 0xb3, 0x8f, 0xe8, 0x47, 0xc2,
+ 0x6a, 0x7d, 0x9a, 0xf4, 0x4e, 0xeb, 0x17, 0x8c,
+ 0x62, 0xda, 0xcc, 0x85, 0x7b, 0x00, 0x9b, 0xc3,
+ 0x14, 0xa4, 0x5b, 0xc6, 0xaf, 0x49, 0x6e, 0xf8,
+ 0x2e, 0x76, 0x36, 0x05, 0xce, 0x19, 0x83, 0x7a,
+ 0xdb, 0xcd, 0x99, 0x7a, 0x92, 0x0e, 0x1d, 0xd1,
+ 0xfe, 0xc9, 0xec, 0x6f, 0xec, 0xdc, 0x96, 0x26,
+ 0x71, 0x1b, 0x48, 0x72, 0x22, 0xe2, 0xf6, 0xbf,
+ 0xc0, 0x34, 0xfe, 0x6c, 0xff, 0x3b, 0xc2, 0x9a,
+ 0x73, 0x52, 0xbf, 0xc8, 0xda, 0x4a, 0xe5, 0xc4,
+ 0x89, 0x3c, 0x81, 0x9c, 0x29, 0xa9, 0xee, 0x7d,
+ 0x17, 0x71, 0xf0, 0xf6, 0x8d, 0x78, 0xac, 0x8a,
+ 0x79, 0xfe, 0xfb, 0x37, 0x7e, 0xb3, 0x1a, 0xff,
+ 0xf3, 0xd8, 0xd8, 0xa8, 0x15, 0x0e, 0xa0, 0x40,
+ 0xf0, 0x1a, 0xa6, 0x1b, 0xc4, 0x63, 0x47, 0x65,
+ 0x91, 0x32, 0xf5, 0x8a, 0x09, 0xe8, 0xb2, 0x14,
+ 0xc8, 0xdb, 0x55, 0x66, 0x84, 0x17, 0x70, 0x96,
+ 0x59, 0xd4, 0xcb, 0x13, 0xa1, 0x7e, 0x07, 0xa5,
+ 0x55, 0x2e, 0xe0, 0xe6, 0xda, 0x4b, 0x7a, 0x6a,
+ 0x19, 0x8b, 0x4c, 0x63, 0xc6, 0xaf, 0xe0, 0xeb,
+ 0xe0, 0xf7, 0x0a, 0xe2, 0x04, 0x6f, 0xdd, 0xda,
+ 0x39, 0xc0, 0xcf, 0xee, 0xab, 0xed, 0xec, 0x33,
+ 0xfb, 0xf9, 0xcc, 0xb6, 0xc3, 0xa7, 0xa6, 0xc2,
+ 0x22, 0x0c, 0xeb, 0xe1, 0x59, 0x8c, 0x34, 0x78,
+ 0xe5, 0xa5, 0x11, 0xca, 0x6d, 0x46, 0x81, 0xbe,
+ 0x84, 0x44, 0x8e, 0x31, 0x24, 0x5c, 0x6b, 0xdd,
+ 0x2a, 0x13, 0xe1, 0x00, 0x94, 0xbb, 0x3b, 0x16,
+ 0xfc, 0x72, 0xa3, 0xc6, 0x24, 0x0a, 0xd1, 0x10,
+ 0x03, 0x66, 0x16, 0xb9, 0x94, 0x1b, 0x96, 0xca,
+ 0x99, 0x27, 0xd2, 0xb7, 0xb4, 0xfe, 0x3e, 0x25,
+ 0xec, 0x57, 0xdf, 0x45, 0x7b, 0x53, 0x01, 0xf3,
+ 0x07, 0xb9, 0x77, 0xfa, 0x85, 0x1d, 0x69, 0x69,
+ 0x2a, 0xbd, 0xcd, 0x9c, 0x73, 0x07, 0xf8, 0x26,
+ 0xce, 0xaf, 0x18, 0x94, 0xd5, 0x08, 0x3e, 0x6c,
+ 0xb8, 0x64, 0x57, 0xb8, 0xfc, 0xc1, 0xa2, 0xed,
+ 0xf3, 0x20, 0x17, 0xe8, 0x93, 0x27, 0x3e, 0xc6,
+ 0x4b, 0xf1, 0x2f, 0x21, 0x16, 0x1f, 0x60, 0x52,
+ 0x94, 0x0b, 0x25, 0x42, 0x8a, 0x2e, 0x0b, 0x5d,
+ 0x42, 0x91, 0xca, 0x77, 0x52, 0x8e, 0xbd, 0x3d,
+ 0x82, 0x2b, 0xd5, 0xed, 0x53, 0x4a, 0x84, 0x9a,
+ 0x9d, 0xc4, 0xb1, 0x75, 0x87, 0x95, 0x19, 0xa6,
+ 0x46, 0x7f, 0xb8, 0xd0, 0x56, 0x18, 0xf8, 0xa6,
+ 0x8f, 0xce, 0x64, 0xcd, 0xa5, 0x34, 0xf4, 0xd7,
+ 0x02, 0x5e, 0xe1, 0xb1, 0x8f, 0x42, 0x3b, 0xbe,
+ 0x18, 0x4d, 0xf8, 0x26, 0xa4, 0x1e, 0x5c, 0xf0,
+ 0xd5, 0x73, 0x28, 0xdf, 0xaa, 0x73, 0x08, 0xee,
+ 0x72, 0x52, 0x3d, 0x63, 0xfb, 0x82, 0x71, 0x88,
+ 0xe5, 0x35, 0x54, 0xbc, 0xf8, 0x3f, 0xd0, 0x39,
+ 0x1c, 0xc7, 0x86, 0x86, 0x80, 0x37, 0x1c, 0x88,
+ 0xf0, 0xff, 0x65, 0x3d, 0x94, 0x07, 0x7f, 0x97,
+ 0x65, 0xd2, 0xb2, 0xf6, 0xb2, 0xd8, 0x56, 0x23,
+ 0xe4, 0xbb, 0xfe, 0xef, 0x80, 0x53, 0x7b, 0xd3,
+ 0x44, 0x11, 0xb2, 0x32, 0x8b, 0x93, 0xea, 0x15,
+ 0x2d, 0x3b, 0x80, 0x38, 0xdc, 0xfe, 0x80, 0x78,
+ 0xd9, 0x01, 0x60, 0xc3, 0x03, 0xce, 0x96, 0x89,
+ 0x00, 0x9e, 0x48, 0xa4, 0xfa, 0x33, 0x08, 0xe6,
+ 0x1d, 0xca, 0xff, 0xbc, 0xbf, 0x2c, 0xa3, 0xfd,
+ 0xf4, 0x6d, 0x25, 0x5c, 0xf7, 0x83, 0x0e, 0x9b,
+ 0x97, 0xbf, 0xea, 0x8a, 0xcc, 0x7f, 0x74, 0xac,
+ 0x77, 0xc6, 0x99, 0xb7, 0x02, 0xd0, 0xc7, 0x65,
+ 0x76, 0x8e, 0x43, 0x0a, 0x23, 0xdc, 0xb5, 0x76,
+ 0x85, 0x04, 0x2b, 0xc7, 0xf7, 0x67, 0xc4, 0xa8,
+ 0xbc, 0x02, 0x91, 0xdb, 0x24, 0x50, 0xb8, 0x51,
+ 0xb5, 0x74, 0xb2, 0x04, 0xeb, 0x83, 0x51, 0x0d,
+ 0xa2, 0x74, 0xea, 0x72, 0xc8, 0x2f, 0x08, 0x61,
+ 0x46, 0xa5, 0x5a, 0x09, 0x97, 0x9c, 0x2d, 0x81,
+ 0xb4, 0x1b, 0x94, 0x75, 0x4a, 0x96, 0x30, 0x26,
+ 0xda, 0xf8, 0x32, 0xb3, 0x07, 0xa6, 0xa7, 0x66,
+ 0xdf, 0xca, 0xfd, 0xdf, 0x47, 0xcf, 0x66, 0x58,
+ 0x81, 0x4c, 0x82, 0x58, 0xba, 0xa9, 0x03, 0xf9,
+ 0xa9, 0xed, 0xd2, 0xf6, 0xe5, 0xec, 0x26, 0xf0,
+ 0xa6, 0xc9, 0x54, 0x6f, 0x9a, 0x4b, 0x64, 0x93,
+ 0xc3, 0xf9, 0xb6, 0x0a, 0xc2, 0x36, 0x5c, 0x23,
+ 0xed, 0xfc, 0x0f, 0x6c, 0x91, 0x23, 0x69, 0x48,
+ 0xbf, 0x3c, 0x85, 0x41, 0x8d, 0xd0, 0xcf, 0x28,
+ 0x3a, 0x71, 0x63, 0x91, 0x04, 0x85, 0x81, 0x70,
+ 0x06, 0x3e, 0x6c, 0x73, 0x8a, 0x33, 0xeb, 0x93,
+ 0x52, 0xd5, 0x13, 0x55, 0xe5, 0xcb, 0x49, 0x60,
+ 0x74, 0x44, 0xe1, 0xaf, 0xe2, 0xd5, 0xae, 0x0f,
+ 0x7c, 0x3f, 0x9a, 0x15, 0x05, 0x1f, 0xdf, 0x39,
+ 0x51, 0x45, 0xca, 0x26, 0xda, 0x03, 0xd1, 0x90,
+ 0x23, 0xd9, 0x35, 0xf8, 0x93, 0x31, 0xec, 0xe3,
+ 0xfe, 0x73, 0xe3, 0xbd, 0xa9, 0x33, 0x90, 0x9b,
+ 0xcf, 0x5b, 0x31, 0x3d, 0xfe, 0x05, 0x1a, 0xb8,
+ 0x69, 0xe3, 0xb6, 0xe8, 0x39, 0xe5, 0x68, 0x98,
+ 0x85, 0x8e, 0x90, 0x7b, 0x97, 0x85, 0x2e, 0x98,
+ 0x98, 0x17, 0xd8, 0x6f, 0x9c, 0x39, 0x75, 0x1b,
+ 0x74, 0x43, 0x53, 0xae, 0x1c, 0xd0, 0xa1, 0x0a,
+ 0x66, 0xf0, 0xc9, 0x66, 0xb8, 0xde, 0xcf, 0x15,
+ 0xbb, 0x71, 0x73, 0xb0, 0x84, 0xed, 0x0f, 0x0d,
+ 0x5e, 0xdc, 0xb8, 0x3f, 0xa5, 0x56, 0xd9, 0x0a,
+ 0x24, 0xb5, 0x84, 0x7b, 0xf4, 0x50, 0xd6, 0x88,
+ 0x0f, 0x16, 0x35, 0x7f, 0x47, 0xf4, 0xfd, 0xb0,
+ 0x0c, 0x03, 0xfc, 0x87, 0x7b, 0xa0, 0x37, 0x0e,
+ 0xbd, 0xd5, 0x57, 0x5b, 0xa5, 0x19, 0xec, 0x52,
+ 0xd8, 0x57, 0x7e, 0x81, 0xc8, 0x33, 0x6d, 0xc4,
+ 0x7f, 0x41, 0xb0, 0x0d, 0xee, 0x53, 0x3b, 0x69,
+ 0x14, 0x63, 0x1e, 0xe1, 0xc9, 0xa8, 0x00, 0xb2,
+ 0x9f, 0x6a, 0x84, 0x69, 0x49, 0x38, 0x78, 0x0b,
+ 0x20, 0xcf, 0x9e, 0x1e, 0x86, 0x41, 0xc8, 0x3f,
+ 0x86, 0x65, 0x68, 0x45, 0x1a, 0x8d, 0x56, 0x5b,
+ 0x80, 0xf9, 0xad, 0x03, 0x65, 0x32, 0xa0, 0xc6,
+ 0x6d, 0x95, 0x81, 0x79, 0x89, 0x98, 0x1d, 0x74,
+ 0x61, 0xe2, 0x0a, 0xa9, 0x88, 0x4d, 0xa3, 0x50,
+ 0x3c, 0xfd, 0x10, 0x9a, 0x38, 0x06, 0x93, 0xb3,
+ 0x2a, 0xef, 0x17, 0xcb, 0x24, 0xa5, 0x41, 0x5b,
+ 0xdc, 0xb5, 0x6b, 0x31, 0x8d, 0xa7, 0x58, 0x0b,
+ 0xb1, 0xc8, 0xc6, 0x1f, 0x2f, 0x28, 0x0e, 0x76,
+ 0x63, 0x49, 0x89, 0x73, 0x23, 0xf8, 0x2b, 0x53,
+ 0xc7, 0xd1, 0x9a, 0x69, 0x2c, 0x13, 0xd8, 0x1b,
+ 0x99, 0x09, 0x53, 0xd3, 0x7d, 0xc2, 0x59, 0xd4,
+ 0x4c, 0x99, 0x4f, 0xb5, 0x55, 0x0b, 0x64, 0xaa,
+ 0x61, 0x08, 0x2d, 0xb2, 0x60, 0xe1, 0x69, 0x00,
+ 0x24, 0xc9, 0x32, 0x5d, 0xb9, 0x03, 0xe6, 0x84,
+ 0xd8, 0xcf, 0xa3, 0xa5, 0x57, 0xc2, 0x88, 0x23,
+ 0xf0, 0x4a, 0x11, 0x7f, 0x34, 0xa5, 0x4f, 0xe9,
+ 0xda, 0xfb, 0xbc, 0x81, 0x0c, 0xae, 0xaa, 0xa7,
+ 0x83, 0xe7, 0xa9, 0x31, 0x2b, 0x69, 0xf3, 0x8a,
+ 0x84, 0x0a, 0xeb, 0xf7, 0xb0, 0x3b, 0x48, 0x7d,
+ 0x04, 0x0c, 0xb4, 0xaa, 0xb9, 0x16, 0x0e, 0x2c,
+ 0xbd, 0x0d, 0x9d, 0x4a, 0x88, 0xe2, 0x80, 0x85,
+ 0x2a, 0xd0, 0xb0, 0x65, 0x65, 0x4e, 0xbb, 0xf9,
+ 0x33, 0x89, 0x08, 0xdf, 0x30, 0xcb, 0x7e, 0x6b,
+ 0x78, 0x3a, 0x7d, 0xeb, 0x64, 0x44, 0x50, 0x22,
+ 0xd1, 0xe9, 0x50, 0xc4, 0x7b, 0x5c, 0x86, 0x79,
+ 0x88, 0xb5, 0x2a, 0x54, 0xed, 0x37, 0x06, 0x1e,
+ 0x08, 0xc5, 0xfb, 0xb1, 0x13, 0xb4, 0x73, 0x0a,
+ 0x5e, 0x0a, 0x88, 0x01, 0x57, 0x0c, 0x92, 0x18,
+ 0x6c, 0xac, 0x83, 0x45, 0xa0, 0x96, 0x69, 0xdf,
+ 0xb5, 0x18, 0xf7, 0x0e, 0x4e, 0x6c, 0x34, 0xe3,
+ 0x65, 0x83, 0xde, 0x40, 0xa0, 0xa7, 0x17, 0xfc,
+ 0x48, 0x87, 0x82, 0x4c, 0x0d, 0xa0, 0xd4, 0xc4,
+ 0x4a, 0x21, 0x1b, 0x75, 0xbd, 0x05, 0x31, 0x9b,
+ 0x24, 0x47, 0x0f, 0x44, 0x50, 0x06, 0x6e, 0xac,
+ 0x28, 0xd6, 0x2e, 0xf5, 0xce, 0xcf, 0x4c, 0xd2,
+ 0x23, 0xf1, 0x8c, 0x79, 0xad, 0x56, 0x64, 0xb1,
+ 0x6a, 0x5e, 0x51, 0x16, 0x4e, 0x66, 0xd0, 0xfa,
+ 0x34, 0x80, 0xab, 0x10, 0x9c, 0xdf, 0xc5, 0xa3,
+ 0x3e, 0xd6, 0xdc, 0x0c, 0x8e, 0x36, 0xc3, 0x5d,
+ 0xde, 0x13, 0xea, 0x6e, 0x0a, 0xb4, 0x31, 0x62,
+ 0x50, 0x06, 0xad, 0xff, 0x0f, 0xe6, 0x7e, 0x51,
+ 0xd9, 0xe8, 0x59, 0x8f, 0x83, 0xf2, 0x7c, 0x4b,
+ 0x36, 0x60, 0xb0, 0x3d, 0xa0, 0x74, 0xc9, 0x95,
+ 0xb1, 0xd9, 0x8d, 0x4d, 0x03, 0xc9, 0x31, 0xbd,
+ 0x50, 0x58, 0xed, 0x8a, 0x73, 0xaf, 0x12, 0x6b,
+ 0xa5, 0x1b, 0x87, 0xec, 0xc0, 0xea, 0xc3, 0x30,
+ 0x5c, 0x7f, 0xab, 0xec, 0xb1, 0xfd, 0x82, 0x8d,
+ 0xf9, 0x12, 0x28, 0xca, 0x62, 0xff, 0x60, 0xfd,
+ 0xf1, 0xf0, 0xc9, 0x9a, 0x54, 0xf0, 0x81, 0x48,
+ 0xed, 0xe4, 0x08, 0x12, 0xa6, 0x5f, 0x9a, 0xf8,
+ 0x96, 0xaa, 0x49, 0x7d, 0xf2, 0x85, 0x6d, 0x4f,
+ 0x0b, 0x19, 0xcc, 0xbe, 0x62, 0xaa, 0xbb, 0x15,
+ 0xb4, 0x2b, 0x10, 0xb1, 0x4e, 0xcf, 0xe8, 0x31,
+ 0xbc, 0xa1, 0x61, 0x8a, 0x31, 0x4e, 0xda, 0x8a,
+ 0xcd, 0xe9, 0x81, 0x4f, 0xd5, 0xb5, 0x54, 0xf3,
+ 0x93, 0x7d, 0x0c, 0x19, 0x65, 0xc1, 0x3d, 0xa5,
+ 0x74, 0xee, 0xe3, 0xe1, 0x53, 0x70, 0x3b, 0xe1,
+ 0x01, 0x0b, 0x10, 0xb8, 0x41, 0x89, 0x01, 0x76,
+ 0xe9, 0xff, 0x7d, 0x68, 0x86, 0xfc, 0x79, 0x73,
+ 0xac, 0xce, 0x6c, 0xc5, 0x90, 0xe1, 0x13, 0x91,
+ 0xbd, 0x9b, 0x94, 0xdf, 0x64, 0xba, 0x6c, 0xd1,
+ 0x5a, 0x4f, 0x0a, 0xf5, 0x99, 0xaa, 0x2b, 0x2f,
+ 0x51, 0xd6, 0x82, 0x52, 0xe8, 0x42, 0x8c, 0xbe,
+ 0xed, 0x5c, 0x87, 0x7e, 0xe8, 0xd3, 0x6e, 0x29,
+ 0x89, 0x3a, 0x0f, 0xaa, 0xb4, 0x8c, 0x72, 0x31,
+ 0x5c, 0x82, 0x4e, 0xaa, 0x21, 0xa3, 0x50, 0x5a,
+ 0xa7, 0x89, 0x09, 0x2b, 0xdd, 0x2a, 0xad, 0xb0,
+ 0x0a, 0xb9, 0x48, 0x15, 0x4c, 0x4c, 0xd5, 0x08,
+ 0x8c, 0x26, 0x6a, 0xd0, 0x06, 0x8b, 0x95, 0xdd,
+ 0x81, 0x1d, 0x19, 0x2d, 0x1b, 0xa5, 0x7c, 0x0c,
+ 0xb0, 0x68, 0x7d, 0x60, 0x89, 0x6f, 0x41, 0xde,
+ 0x90, 0xfc, 0x51, 0x25, 0xe9, 0x1b, 0x3c, 0xe5,
+ 0xc0, 0x36, 0xf4, 0x7d, 0x0e, 0x53, 0xa5, 0x78,
+ 0xca, 0x06, 0xd9, 0x8d, 0xdf, 0x1c, 0xc6, 0x5a,
+ 0x72, 0x8e, 0xcf, 0x4f, 0xc4, 0x5a, 0x79, 0x65,
+ 0xe2, 0x71, 0xb8, 0xa9, 0x4a, 0x12, 0x29, 0xcc,
+ 0x7e, 0x1b, 0x64, 0x93, 0xc7, 0x5b, 0x2a, 0x12,
+ 0x2d, 0x30, 0xc1, 0x55, 0x2f, 0xea, 0xb3, 0xa4,
+ 0xfd, 0x2b, 0xa0, 0xc3, 0x65, 0x46, 0x60, 0xaf,
+ 0x56, 0xea, 0x79, 0xf2, 0x7e, 0xaf, 0x73, 0xbc,
+ 0x91, 0xd2, 0xd4, 0xa5, 0x9e, 0x6f, 0x62, 0x34,
+ 0x53, 0x6c, 0x8f, 0x29, 0x17, 0x68, 0x47, 0xea,
+ 0xed, 0xec, 0x8a, 0x25, 0x6d, 0x6c, 0x83, 0x16,
+ 0x7d, 0x93, 0xd3, 0x44, 0xbd, 0x56, 0x30, 0xbd,
+ 0x64, 0x20, 0xa0, 0xfb, 0x40, 0xf5, 0x62, 0x77,
+ 0xe6, 0x08, 0x91, 0x35, 0x3a, 0x0a, 0xc4, 0x2d,
+ 0x74, 0x76, 0xca, 0x6d, 0x73, 0xb2, 0x23, 0x84,
+ 0xe7, 0x4a, 0xc6, 0xd2, 0xa1, 0xbe, 0xd5, 0x71,
+ 0xac, 0xfe, 0x19, 0x77, 0xde, 0x6c, 0x40, 0xc4,
+ 0x41, 0x34, 0x2c, 0x8f, 0x7c, 0x3d, 0x2d, 0xfe,
+ 0x1f, 0x96, 0xf3, 0x5e, 0xfa, 0x33, 0xf8, 0xe6,
+ 0xfe, 0x93, 0x88, 0xf6, 0xec, 0x46, 0xf8, 0x5e,
+ 0xd7, 0x56, 0xf2, 0x39, 0x8d, 0xee, 0x24, 0x40,
+ 0x0e, 0x77, 0xf4, 0xe0, 0xfe, 0x37, 0x15, 0xa8,
+ 0x7a, 0x21, 0xbd, 0x13, 0x82, 0x03, 0xa6, 0xb7,
+ 0x3c, 0x90, 0xdd, 0xa7, 0x60, 0x20, 0x9f, 0xc4,
+ 0xad, 0xfe, 0xaf, 0xb3, 0x6e, 0xe9, 0xc6, 0x29,
+ 0x69, 0x47, 0x6d, 0x04, 0x80, 0x5c, 0x9e, 0x76,
+ 0x22, 0x93, 0x18, 0x5e, 0x29, 0xec, 0xff, 0xf6,
+ 0x0b, 0x99, 0xbc, 0xa8, 0x6e, 0xd7, 0x72, 0xf7,
+ 0xb7, 0xbd, 0xb7, 0xd3, 0x8e, 0x85, 0x28, 0xc3,
+ 0xb3, 0x96, 0xa9, 0x2c, 0x56, 0x5c, 0xab, 0x9a,
+ 0x86, 0x16, 0xb3, 0x55, 0x51, 0x31, 0x1d, 0x2c,
+ 0x8a, 0x20, 0xa1, 0x2b, 0xee, 0xd3, 0x2b, 0xf1,
+ 0xb6, 0xe3, 0xa8, 0xda, 0x32, 0xd3, 0xae, 0x51,
+ 0x75, 0xd1, 0x1c, 0xe9, 0xe1, 0x26, 0xc4, 0x7f,
+ 0x68, 0x84, 0xb5, 0xbb, 0xca, 0xae, 0x11, 0x90,
+ 0xb1, 0x18, 0x71, 0xab, 0x00, 0x03, 0x6e, 0xff,
+ 0x96, 0x33, 0x92, 0x20, 0x3b, 0xdd, 0xd0, 0x4d,
+ 0xd1, 0x2b, 0x64, 0x8c, 0xda, 0xf1, 0x93, 0xf6,
+ 0xd3, 0xdc, 0x22, 0x88, 0x19, 0xf2, 0xa7, 0x79,
+ 0x27, 0xc2, 0x23, 0xa7, 0x4c, 0x4c, 0xd8, 0x5d,
+ 0xa5, 0x20, 0xbe, 0x60, 0x2e, 0x75, 0x96, 0xd0,
+ 0xbf, 0x39, 0x71, 0xb5, 0x16, 0xce, 0xbf, 0x37,
+ 0xb5, 0x5a, 0xfc, 0xfd, 0x14, 0x7a, 0xac, 0x13,
+ 0x87, 0x95, 0xcd, 0x1b, 0x89, 0x73, 0xcb, 0xd7,
+ 0xdf, 0xee, 0x2e, 0xb1, 0xf3, 0x2a, 0xde, 0x77,
+ 0xc9, 0x6c, 0x5c, 0xce, 0x77, 0x0d, 0xdd, 0x71,
+ 0x13, 0x7a, 0xa2, 0xfc, 0xd5, 0x66, 0xc8, 0xf7,
+ 0xb6, 0x98, 0xf8, 0xf1, 0x3b, 0x3f, 0x6f, 0x0e,
+ 0xfe, 0x49, 0xb1, 0xbf, 0xf8, 0x29, 0xc9, 0x4c,
+ 0x8b, 0xda, 0xcd, 0x15, 0x6b, 0xa5, 0xac, 0x0d,
+ 0x7f, 0x4e, 0x3d, 0x15, 0x48, 0x19, 0x19, 0x59,
+ 0x6a, 0xdd, 0xa7, 0x49, 0x91, 0x31, 0xe6, 0x72,
+ 0x82, 0xc8, 0x27, 0x53, 0xa0, 0xcb, 0x47, 0xf4,
+ 0x58, 0xd2, 0x1f, 0xd8, 0x04, 0x90, 0xc3, 0x5b,
+ 0x02, 0xc2, 0x8f, 0x4a, 0x09, 0x81, 0xd0, 0xe6,
+ 0x6e, 0x84, 0x82, 0x37, 0xa6, 0xb5, 0x55, 0x7e,
+ 0xfd, 0xa2, 0x2b, 0x90, 0xd2, 0x2c, 0x6b, 0xab,
+ 0x9b, 0x16, 0xf8, 0xe0, 0xe6, 0x02, 0xcd, 0x29,
+ 0x68, 0x99, 0xaa, 0xe5, 0xca, 0x31, 0xe0, 0x7e,
+ 0xca, 0x4a, 0xa4, 0xdd, 0x8c, 0x04, 0x43, 0x44,
+ 0x3b, 0x73, 0x78, 0x76, 0xa6, 0x4c, 0x02, 0xf1,
+ 0x00, 0x4e, 0xbc, 0xfa, 0x2e, 0xc8, 0xbc, 0x82,
+ 0x04, 0x9f, 0xf5, 0x17, 0xc4, 0x91, 0x6d, 0x97,
+ 0x60, 0xaf, 0xa7, 0x92, 0xd7, 0xd3, 0x19, 0x97,
+ 0xba, 0x79, 0x43, 0xa2, 0x62, 0x9a, 0xf6, 0x46,
+ 0xa5, 0x13, 0xa8, 0xd9, 0x7c, 0x9a, 0x31, 0x66,
+ 0x5b, 0x26, 0x84, 0x69, 0x52, 0x23, 0x09, 0x49,
+ 0xc5, 0x8b, 0x79, 0x16, 0x8e, 0xa0, 0x22, 0xd8,
+ 0x05, 0xb6, 0x9b, 0xd3, 0xc1, 0x71, 0xec, 0xaa,
+ 0xc7, 0xba, 0x07, 0xb3, 0x47, 0xbe, 0x76, 0x3b,
+ 0x2b, 0x20, 0x87, 0x8f, 0xcd, 0x35, 0x91, 0x8b,
+ 0x28, 0xb9, 0xa7, 0x68, 0x98, 0x82, 0x3f, 0xfb,
+ 0xe3, 0x51, 0x17, 0x5c, 0xc6, 0xad, 0x81, 0xe7,
+ 0x6d, 0x93, 0xf5, 0xe8, 0xc2, 0x27, 0x1a, 0xf3,
+ 0x66, 0x08, 0x41, 0xa2, 0x84, 0x7f, 0x8b, 0x29,
+ 0xee, 0xec, 0x77, 0xc7, 0x9b, 0x60, 0x6a, 0xc3,
+ 0xb2, 0x97, 0x4b, 0x37, 0xd9, 0x69, 0xf2, 0xfe,
+ 0x5f, 0xd7, 0x47, 0xff, 0x5b, 0xe1, 0x9b, 0x14,
+ 0x9d, 0xb0, 0x4f, 0xd1, 0xc4, 0xc0, 0x70, 0x56,
+ 0xa9, 0x64, 0xa3, 0x1c, 0xf0, 0xbd, 0x4e, 0x25,
+ 0x15, 0xa6, 0x39, 0xbd, 0x7c, 0xcd, 0x06, 0x06,
+ 0x55, 0x81, 0x56, 0xe7, 0x87, 0xe8, 0xb6, 0xff,
+ 0xdf, 0xdd, 0x6c, 0x5f, 0x8a, 0xbb, 0x20, 0x25,
+ 0x98, 0xb6, 0xbd, 0x6b, 0x20, 0x79, 0x74, 0x67,
+ 0x5e, 0x43, 0xae, 0x3e, 0x9c, 0xca, 0xef, 0xdc,
+ 0x1e, 0x7e, 0xaf, 0xa0, 0x63, 0x33, 0xe0, 0xb1,
+ 0x32, 0xb7, 0xbc, 0x4e, 0x41, 0x9b, 0x42, 0xe4,
+ 0xad, 0xb3, 0x67, 0x79, 0x8b, 0x41, 0xc2, 0xa4,
+ 0x84, 0xac, 0x1d, 0xc1, 0xfe, 0xc0, 0xae, 0x35,
+ 0x3f, 0xca, 0xc7, 0x2e, 0x02, 0x91, 0xd1, 0x1b,
+ 0xfc, 0xa8, 0x12, 0xd2, 0x92, 0xdd, 0x53, 0x40,
+ 0xa0, 0x55, 0xbd, 0x23, 0x3a, 0x88, 0xcf, 0x3f,
+ 0x76, 0xf1, 0x31, 0x81, 0x7c, 0x0c, 0x17, 0x39,
+ 0x94, 0xf6, 0xcc, 0x55, 0x4c, 0xe7, 0x85, 0xa6,
+ 0xca, 0xc0, 0x30, 0x9a, 0x7e, 0x11, 0x41, 0x35,
+ 0xb6, 0x9c, 0xa0, 0xb4, 0x08, 0xa9, 0xe4, 0x2e,
+ 0x0f, 0xa6, 0x8f, 0x73, 0xb5, 0x42, 0x04, 0x7c,
+ 0x69, 0x61, 0xc7, 0x5d, 0x67, 0x45, 0x6f, 0x3c,
+ 0x82, 0xab, 0xac, 0x21, 0x1c, 0x11, 0x03, 0x98,
+ 0x1a, 0xa4, 0xc5, 0x1b, 0x4e, 0x3e, 0xb6, 0x5e,
+ 0x0a, 0xb3, 0xc3, 0x25, 0x01, 0xd2, 0x03, 0x78,
+ 0xe2, 0x8b, 0x3a, 0xf5, 0xac, 0xbc, 0x48, 0xf5,
+ 0x4a, 0x91, 0xc6, 0x69, 0xfb, 0x88, 0x2e, 0x52,
+ 0x46, 0x96, 0xd5, 0xf6, 0x07, 0x30, 0x95, 0x85,
+ 0x1e, 0xbe, 0x2d, 0x5c, 0x45, 0x72, 0xd4, 0xcc,
+ 0xef, 0xfc, 0x28, 0x1b, 0xbe, 0xc4, 0x2c, 0xa5,
+ 0x03, 0x15, 0xf9, 0x1e, 0x26, 0x4f, 0x47, 0xc3,
+ 0x52, 0xab, 0x4b, 0x93, 0x37, 0xa3, 0x8b, 0x1c,
+ 0x13, 0xbe, 0x89, 0xa3, 0x42, 0x65, 0x8c, 0x0d,
+ 0x00, 0x2f, 0xce, 0x10, 0x88, 0x6e, 0x02, 0x77,
+ 0x45, 0x28, 0xd0, 0xd8, 0xfc, 0xd3, 0xc2, 0x9f,
+ 0x76, 0xcb, 0xf1, 0x1e, 0x67, 0xae, 0xa4, 0xde,
+ 0xe4, 0xdc, 0x84, 0x12, 0x42, 0x15, 0x04, 0x89,
+ 0xa0, 0xe1, 0xfb, 0xfe, 0x16, 0x07, 0x8d, 0x34,
+ 0x55, 0xb7, 0x01, 0x2a, 0x6e, 0x8d, 0x50, 0xaa,
+ 0x3d, 0x5e, 0x42, 0xf5, 0x6d, 0xa3, 0x0a, 0x9d,
+ 0xc2, 0x91, 0xcf, 0x1d, 0x0a, 0x84, 0xbd, 0xb9,
+ 0xdc, 0xa6, 0xcc, 0xa6, 0x6a, 0x96, 0x69, 0x79,
+ 0xe7, 0x5b, 0xb9, 0xf9, 0x6b, 0x24, 0xf1, 0xc8,
+ 0x92, 0xe2, 0x1e, 0x2a, 0x22, 0xa4, 0x7b, 0x70,
+ 0xd2, 0xd7, 0xf2, 0xf1, 0x93, 0x79, 0x92, 0x0c,
+ 0x4f, 0xc4, 0xad, 0x95, 0x25, 0x29, 0x04, 0xea,
+ 0x72, 0xe3, 0xce, 0xd5, 0xd0, 0xc1, 0x23, 0xad,
+ 0x6f, 0x3d, 0xd6, 0xa9, 0x39, 0x2b, 0x24, 0x8d,
+ 0xa7, 0x72, 0x23, 0xeb, 0xa5, 0xa4, 0x11, 0x10,
+ 0x4a, 0x89, 0x2f, 0x7b, 0xe5, 0x06, 0xa2, 0xaa,
+ 0xd8, 0xe8, 0x96, 0xeb, 0xf1, 0x7b, 0x74, 0x06,
+ 0x65, 0x10, 0x8b, 0xc3, 0xa9, 0x0f, 0xae, 0x73,
+ 0xd5, 0xb0, 0xea, 0x25, 0x77, 0xfd, 0xa6, 0x41,
+ 0x55, 0x85, 0x72, 0xa6, 0x9d, 0xf3, 0x94, 0x5f,
+ 0x00, 0x37, 0x6f, 0x63, 0x64, 0x0c, 0x99, 0xde,
+ 0x36, 0x29, 0x89, 0x98, 0x88, 0x9e, 0xd9, 0x97,
+ 0x63, 0xd8, 0xfa, 0x13, 0x7a, 0x1f, 0x7e, 0x47,
+ 0x6a, 0xe9, 0xac, 0x18, 0x11, 0x69, 0xf4, 0x92,
+ 0x04, 0xc9, 0xec, 0x54, 0xaa, 0x69, 0x79, 0x8b,
+ 0xbb, 0x49, 0x81, 0x54, 0xeb, 0x3e, 0x87, 0xcc,
+ 0x63, 0xee, 0x1b, 0x07, 0x4b, 0x75, 0x93, 0x8a,
+ 0x81, 0x1b, 0x5e, 0xc3, 0x05, 0x6d, 0x1d, 0x8d,
+ 0x27, 0x59, 0xf7, 0xc6, 0xe9, 0x37, 0xf4, 0x71,
+ 0xcd, 0x1e, 0x27, 0x84, 0xd6, 0x4e, 0x1f, 0x07,
+ 0x1f, 0xe1, 0xf0, 0xaa, 0xc2, 0x71, 0x6b, 0x4f,
+ 0x15, 0xcf, 0x55, 0x62, 0xda, 0xcb, 0xe1, 0x49,
+ 0x7c, 0x46, 0xee, 0x58, 0x6e, 0x57, 0x09, 0xd8,
+ 0xef, 0xed, 0xa3, 0x8c, 0xa2, 0x63, 0x4a, 0x23,
+ 0x55, 0x04, 0x49, 0x0d, 0x47, 0x2a, 0x22, 0xf8,
+ 0x1f, 0xfd, 0x99, 0xab, 0x59, 0x18, 0x45, 0x9c,
+ 0xce, 0xd5, 0x37, 0x84, 0xc9, 0xe7, 0x5c, 0x9c,
+ 0xb8, 0xc8, 0x91, 0x4f, 0xc7, 0x97, 0xd2, 0x1f,
+ 0xb0, 0x0f, 0x2e, 0x08, 0xaa, 0x10, 0x1d, 0x21,
+ 0xb9, 0xbe, 0xb3, 0xa6, 0x3b, 0x09, 0xe0, 0x40,
+ 0x05, 0xc1, 0x93, 0x32, 0x9e, 0xea, 0x73, 0x9e,
+ 0x30, 0xe5, 0x74, 0x72, 0xcb, 0xf2, 0xfe, 0xf9,
+ 0x83, 0xf5, 0x8c, 0xc8, 0x39, 0xc7, 0x90, 0xe9,
+ 0x31, 0x0e, 0xcf, 0x0e, 0xa3, 0x11, 0xee, 0x74,
+ 0xd9, 0x13, 0x40, 0x42, 0xd7, 0x04, 0xbd, 0x68,
+ 0x60, 0xcd, 0xe5, 0x7c, 0x40, 0x96, 0xee, 0x88,
+ 0x5e, 0x1a, 0xea, 0x17, 0x40, 0x5a, 0x95, 0xe6,
+ 0xa9, 0xb2, 0x5e, 0xcb, 0x8a, 0x4f, 0xca, 0x18,
+ 0x35, 0x62, 0x39, 0x02, 0xdb, 0x7b, 0x92, 0x16,
+ 0x03, 0x18, 0xca, 0x84, 0xf0, 0xa5, 0x23, 0xb7,
+ 0x82, 0x6e, 0x47, 0x72, 0xaa, 0x07, 0xe5, 0x27,
+ 0x9f, 0x8a, 0x78, 0xd8, 0xa3, 0xca, 0xa4, 0x8f,
+ 0xee, 0xcc, 0xda, 0x45, 0x8a, 0x56, 0x5e, 0x0f,
+ 0x83, 0x10, 0x14, 0x0c, 0x71, 0x2a, 0x8b, 0xc7,
+ 0xa5, 0x25, 0x06, 0x07, 0x64, 0x2f, 0x6a, 0xac,
+ 0x70, 0x36, 0xce, 0x47, 0xda, 0x1c, 0xc6, 0x80,
+ 0xcb, 0xd1, 0x89, 0xd7, 0xdf, 0xfc, 0xd3, 0xb1,
+ 0x15, 0xd1, 0x51, 0xa6, 0x25, 0xa0, 0xfa, 0x2d,
+ 0x1a, 0x8e, 0xad, 0xc5, 0xa7, 0xeb, 0x26, 0x2c,
+ 0x48, 0xf7, 0x26, 0x4e, 0x61, 0x0f, 0x79, 0x3f,
+ 0x4c, 0x4d, 0x7d, 0x5c, 0x2e, 0x3d, 0x39, 0x16,
+ 0x77, 0x00, 0x31, 0x1d, 0x75, 0xdf, 0xb3, 0x88,
+ 0xf7, 0x4b, 0x2e, 0x30, 0x42, 0x8e, 0xbb, 0xd4,
+ 0x0b, 0xf7, 0xfd, 0x4d, 0x41, 0xb5, 0x75, 0x50,
+ 0xf9, 0x04, 0x3d, 0xf6, 0xbb, 0x0b, 0xf1, 0x5f,
+ 0x51, 0xac, 0x3a, 0xb8, 0x95, 0xb3, 0x35, 0xf7,
+ 0xea, 0x0f, 0x1b, 0xb5, 0x9c, 0xef, 0xa2, 0x34,
+ 0x6e, 0xf4, 0x19, 0x47, 0xb6, 0xc8, 0xfb, 0x63,
+ 0x3f, 0x60, 0x5f, 0xc6, 0x6e, 0x29, 0xce, 0x37,
+ 0xe6, 0xf9, 0xf4, 0xae, 0xb7, 0xe3, 0x6b, 0x65,
+ 0xd8, 0x63, 0xf0, 0x37, 0xbf, 0x53, 0xdf, 0xd4,
+ 0xeb, 0xa1, 0xf1, 0xb0, 0x73, 0xe8, 0x0c, 0x12,
+ 0xac, 0x71, 0xca, 0xb4, 0x0f, 0x66, 0xf6, 0x1b,
+ 0x01, 0xcf, 0x36, 0x33, 0x33, 0xf0, 0xff, 0x56,
+ 0x5d, 0x1b, 0x01, 0xb3, 0x12, 0x9d, 0x1e, 0x5f,
+ 0x49, 0xd3, 0x56, 0x0a, 0x3d, 0xcf, 0xf7, 0x1e,
+ 0x25, 0x39, 0xaf, 0x68, 0xd9, 0xa5, 0xbf, 0x5b,
+ 0xed, 0x23, 0x14, 0xfb, 0x0c, 0xed, 0x74, 0x09,
+ 0xd2, 0x4b, 0x81, 0x22, 0x1b, 0x4c, 0x38, 0x00,
+ 0xae, 0x62, 0xf5, 0xc0, 0x72, 0x3c, 0xa8, 0x83,
+ 0x4a, 0xd8, 0x6f, 0x6f, 0xbb, 0x71, 0x18, 0x68,
+ 0x9f, 0x44, 0x6a, 0x6a, 0x4f, 0x93, 0x6e, 0x01,
+ 0xd1, 0x40, 0x10, 0x2c, 0xaa, 0xf1, 0x94, 0xb6,
+ 0x3a, 0x90, 0xb0, 0x8d, 0xa2, 0x4f, 0xaf, 0x70,
+ 0xb2, 0x98, 0x4b, 0x40, 0x06, 0x47, 0x04, 0x82,
+ 0x6e, 0x93, 0x09, 0x97, 0xd7, 0x96, 0x9c, 0x94,
+ 0x76, 0xda, 0x01, 0xad, 0xbd, 0x2a, 0x67, 0xc3,
+ 0x31, 0xd6, 0x46, 0x8b, 0x7d, 0x37, 0x4e, 0x1c,
+ 0xa3, 0x24, 0xb9, 0x3a, 0x65, 0x19, 0x44, 0x85,
+ 0xdf, 0x45, 0x35, 0x10, 0xc4, 0x68, 0x78, 0x45,
+ 0x99, 0x60, 0x14, 0x91, 0x0b, 0x3e, 0xe3, 0xa4,
+ 0xfe, 0xe6, 0x08, 0x12, 0xae, 0xc3, 0xa2, 0x8d,
+ 0x48, 0xd0, 0x11, 0xd7, 0x7a, 0xd4, 0xde, 0x94,
+ 0x09, 0xa5, 0xb0, 0xec, 0x3f, 0xf7, 0x49, 0xd0,
+ 0x8e, 0x46, 0xf2, 0xc3, 0x3d, 0x6b, 0xaa, 0xca,
+ 0x1e, 0xfa, 0x5a, 0xa6, 0x9f, 0x53, 0xca, 0x3c,
+ 0xdb, 0x4b, 0xf3, 0xa0, 0xe5, 0xc9, 0xd8, 0x08,
+ 0xac, 0xe0, 0x95, 0x49, 0xf0, 0x2a, 0x02, 0x29,
+ 0xe0, 0xc1, 0x87, 0x53, 0x8e, 0xa4, 0xab, 0xff,
+ 0xc1, 0x3f, 0x2c, 0xaf, 0x0f, 0xbd, 0x0b, 0xfc,
+ 0x43, 0x2e, 0xb6, 0x9d, 0xa1, 0x93, 0x87, 0x88,
+ 0xc5, 0xc4, 0x47, 0xac, 0x61, 0xa2, 0x62, 0xbf,
+ 0x35, 0xab, 0x11, 0x41, 0x5d, 0xf4, 0x3b, 0x3f,
+ 0xb4, 0xaa, 0x51, 0x9e, 0xee, 0x6c, 0x70, 0xc3,
+ 0x4e, 0xed, 0x49, 0xfc, 0x40, 0xb2, 0x02, 0x34,
+ 0x5e, 0x82, 0x30, 0x68, 0x7e, 0x1a, 0xe6, 0xcd,
+ 0x84, 0xef, 0xe4, 0x33, 0x45, 0x42, 0xc4, 0x8e,
+ 0x54, 0xb9, 0x4c, 0x9d, 0xbf, 0x3b, 0x76, 0xfb,
+ 0xfb, 0x27, 0xd8, 0xcd, 0x2f, 0x74, 0x3c, 0xda,
+ 0x0f, 0xba, 0x3d, 0x2b, 0x92, 0x48, 0x14, 0x6e,
+ 0xec, 0x6d, 0x26, 0xe3, 0xa6, 0x57, 0x55, 0x82,
+ 0xd0, 0x38, 0xe2, 0xef, 0xab, 0xa7, 0xb1, 0x2b,
+ 0x33, 0xe6, 0xf5, 0xa3, 0x61, 0x48, 0xb2, 0xf0,
+ 0x2e, 0x37, 0x94, 0x38, 0x99, 0x39, 0x8c, 0x70,
+ 0x4f, 0x50, 0xa6, 0x16, 0x03, 0x45, 0x2c, 0xae,
+ 0x8e, 0x75, 0x0d, 0x6e, 0x3c, 0x54, 0xab, 0x15,
+ 0xf9, 0x8d, 0xa8, 0x49, 0x54, 0x93, 0x62, 0x4e,
+ 0x3d, 0xfb, 0x52, 0x32, 0xb4, 0x5e, 0xe0, 0xd5,
+ 0xb9, 0xec, 0x2e, 0x26, 0x5d, 0x6d, 0x3d, 0xf0,
+ 0xac, 0x54, 0x3c, 0xb0, 0x9d, 0xcf, 0x63, 0x22,
+ 0x8e, 0x2a, 0xe3, 0xe7, 0xf0, 0x4f, 0x51, 0x1b,
+ 0xf2, 0x4c, 0xe3, 0xb4, 0xa0, 0x78, 0x2d, 0xdb,
+ 0x98, 0x99, 0xc0, 0xb9, 0x43, 0xf9, 0xbe, 0x72,
+ 0x90, 0x6f, 0x21, 0x41, 0xff, 0xac, 0x63, 0x61,
+ 0x5f, 0x54, 0x65, 0xde, 0x2d, 0x63, 0x76, 0xbc,
+ 0x3c, 0x35, 0x62, 0xb8, 0x21, 0xa8, 0x5e, 0x4c,
+ 0xf4, 0xfd, 0xa9, 0x73, 0x4f, 0x8b, 0xb9, 0xd1,
+ 0x07, 0x64, 0x37, 0x92, 0x66, 0x1f, 0x41, 0xe1,
+ 0xa1, 0xc7, 0xd9, 0x04, 0xc7, 0x1c, 0x81, 0x6a,
+ 0x7f, 0x6d, 0x80, 0xec, 0xed, 0x84, 0x8b, 0xf3,
+ 0xc3, 0xa7, 0xcb, 0x12, 0x2b, 0xd6, 0x27, 0x20,
+ 0x20, 0x99, 0x30, 0x37, 0x50, 0xc4, 0xac, 0x63,
+ 0x12, 0xb3, 0x8a, 0xcb, 0x16, 0xf1, 0x52, 0x7d,
+ 0xa5, 0xab, 0xc4, 0xea, 0x83, 0xdb, 0x52, 0xbb,
+ 0x97, 0x4c, 0xf7, 0x3c, 0x81, 0x67, 0x5b, 0xd8,
+ 0xf8, 0xbc, 0xab, 0xf5, 0x7c, 0x93, 0x19, 0x41,
+ 0x38, 0xa6, 0x0a, 0x78, 0x07, 0x03, 0xfd, 0x66,
+ 0x9b, 0x5e, 0xc0, 0x60, 0x3f, 0xf8, 0xe1, 0x12,
+ 0xd9, 0x1b, 0x72, 0x80, 0x75, 0xfa, 0x38, 0xc9,
+ 0xbb, 0x41, 0x6a, 0x29, 0xd0, 0x26, 0x5d, 0xa9,
+ 0xa5, 0x26, 0x05, 0x5e, 0xea, 0x1f, 0x63, 0x8b,
+ 0xa0, 0x41, 0x09, 0x58, 0x21, 0xa8, 0x33, 0x02,
+ 0x32, 0xaf, 0x86, 0xf7, 0xdd, 0x4d, 0x80, 0xdd,
+ 0x48, 0x14, 0x03, 0xe9, 0xbf, 0xed, 0xff, 0xbd,
+ 0x11, 0x18, 0x49, 0x63, 0x67, 0x6d, 0x96, 0xc2,
+ 0xec, 0xef, 0xf8, 0x6d, 0x7f, 0x8f, 0x99, 0xaf,
+ 0xc4, 0x0b, 0x4f, 0x61, 0x67, 0x86, 0x8b, 0x97,
+ 0x35, 0x98, 0xd0, 0xd5, 0xfc, 0x0d, 0x35, 0x3d,
+ 0x47, 0x55, 0x56, 0x66, 0x68, 0xc5, 0xfd, 0x03,
+ 0x52, 0x83, 0xa0, 0xcd, 0xea, 0x05, 0x41, 0x4a,
+ 0xa5, 0xe1, 0xec, 0x14, 0x1e, 0x26, 0x29, 0x2c,
+ 0x39, 0x51, 0x9c, 0x9e, 0xe5, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0b, 0x11, 0x18, 0x1d, 0x27,
+ 0x2d, 0x33, 0x3d, },
+ }, {
+ .what = "pure rejection vector",
+ .algo = "ml-dsa87",
+ .pk_len = DILITHIUM87_PUBLICKEYBYTES,
+ .pk = (const u8[DILITHIUM87_PUBLICKEYBYTES]){
+ 0xf0, 0xb2, 0xb4, 0x8a, 0x7e, 0x17, 0x02, 0xdf,
+ 0x75, 0xc1, 0x1f, 0xd7, 0x0f, 0xfd, 0x02, 0x86,
+ 0x74, 0x08, 0xb2, 0x1a, 0xf6, 0xbd, 0xbe, 0x4e,
+ 0xad, 0x38, 0x2c, 0x48, 0x2e, 0x83, 0x71, 0xbb,
+ 0xc0, 0x3b, 0xa0, 0x34, 0xd5, 0xfa, 0x3e, 0xfd,
+ 0xba, 0x87, 0x19, 0x3a, 0x7f, 0xe0, 0x71, 0x45,
+ 0x4d, 0x0a, 0xa2, 0x15, 0x93, 0x4a, 0x0a, 0x0a,
+ 0x7e, 0xb5, 0xc7, 0x1b, 0x28, 0xb1, 0x13, 0x7c,
+ 0x00, 0xc6, 0x89, 0xaf, 0x7f, 0x9c, 0x44, 0xec,
+ 0x31, 0xff, 0x27, 0x53, 0x7b, 0x16, 0x45, 0xe0,
+ 0x9f, 0x1d, 0x80, 0x70, 0x00, 0xe2, 0xa8, 0xd7,
+ 0x69, 0x7d, 0xfc, 0x43, 0xef, 0x59, 0xaf, 0xfe,
+ 0xdb, 0x79, 0x1a, 0x5b, 0xc2, 0x8b, 0x73, 0x1b,
+ 0x6f, 0xf0, 0x8a, 0x6f, 0xd2, 0x74, 0x75, 0xbc,
+ 0x13, 0xee, 0xb3, 0x70, 0x07, 0x82, 0x66, 0x1a,
+ 0xb5, 0xee, 0xa4, 0xec, 0xae, 0xce, 0x3e, 0xc1,
+ 0x21, 0xa0, 0x9e, 0xa9, 0x9d, 0x15, 0x5c, 0x9d,
+ 0xa8, 0xef, 0xb2, 0x1e, 0x90, 0x41, 0x70, 0xe2,
+ 0x39, 0x05, 0xed, 0xb6, 0x8a, 0x09, 0xfd, 0x81,
+ 0x6e, 0x9b, 0xf6, 0x77, 0xd6, 0x5c, 0x1d, 0xd2,
+ 0x04, 0xb8, 0x2e, 0xae, 0xdc, 0x5e, 0x5a, 0x23,
+ 0x4a, 0x07, 0x3f, 0x95, 0x96, 0xc0, 0x94, 0x1f,
+ 0xd2, 0x8b, 0x58, 0x17, 0x0b, 0x7b, 0xd3, 0x70,
+ 0x90, 0xe2, 0xf9, 0xcf, 0x42, 0x92, 0xc6, 0x3e,
+ 0x96, 0x29, 0x4b, 0xd3, 0x76, 0xd5, 0xf3, 0xdc,
+ 0xda, 0x33, 0x52, 0xfd, 0x30, 0x72, 0xc8, 0x9c,
+ 0xd0, 0xca, 0x3b, 0x52, 0xfa, 0x7c, 0x2f, 0xca,
+ 0x99, 0x97, 0xdf, 0x03, 0x62, 0xf2, 0x90, 0x94,
+ 0xb4, 0x89, 0xda, 0x72, 0x16, 0x3d, 0xed, 0x0e,
+ 0xdc, 0xe0, 0x23, 0x80, 0x43, 0x05, 0xdc, 0x42,
+ 0xf8, 0x16, 0xdf, 0x4a, 0xd2, 0xeb, 0x7d, 0xb3,
+ 0x5c, 0xb0, 0x86, 0xb8, 0x43, 0xd5, 0x9b, 0x88,
+ 0xd0, 0xb3, 0xa0, 0x68, 0x7f, 0x1e, 0x3b, 0xe1,
+ 0x2d, 0x1c, 0x3d, 0x9f, 0x12, 0x61, 0xc2, 0x55,
+ 0xce, 0xd1, 0xda, 0x6e, 0x1a, 0xd5, 0x10, 0xb3,
+ 0x60, 0xde, 0x90, 0x58, 0x87, 0x94, 0x73, 0x40,
+ 0xde, 0xdc, 0x0d, 0x8d, 0x36, 0x0b, 0xb5, 0x2a,
+ 0x28, 0xae, 0xfb, 0x39, 0x90, 0x04, 0x55, 0xfd,
+ 0x88, 0x81, 0x4e, 0x68, 0x0a, 0xf0, 0xed, 0xa7,
+ 0x69, 0x25, 0xd2, 0xc3, 0xcd, 0x32, 0x75, 0x49,
+ 0xac, 0xc5, 0xc8, 0xb9, 0x02, 0x1a, 0xb3, 0x57,
+ 0xa5, 0x30, 0xa7, 0xc1, 0x03, 0x44, 0xcf, 0x58,
+ 0x00, 0xeb, 0x23, 0x4b, 0xb6, 0x3b, 0x6b, 0x5e,
+ 0x20, 0xcd, 0xac, 0x4a, 0x8e, 0xc6, 0xca, 0x33,
+ 0xb6, 0x17, 0x5c, 0x76, 0x15, 0x30, 0xc8, 0xb5,
+ 0x6b, 0x4c, 0x68, 0x46, 0x88, 0x31, 0xca, 0xae,
+ 0x45, 0xe6, 0x8f, 0x2a, 0x69, 0x29, 0xfd, 0x7c,
+ 0x95, 0x31, 0xa0, 0x8b, 0xc9, 0x35, 0x50, 0x24,
+ 0xb6, 0xc4, 0x94, 0xf8, 0x74, 0xe0, 0xb0, 0x5a,
+ 0xd5, 0x30, 0x11, 0x49, 0x37, 0x8a, 0x53, 0x68,
+ 0x9e, 0xc3, 0x9e, 0xc2, 0x4e, 0x51, 0x97, 0xd8,
+ 0x1b, 0x03, 0x4f, 0xa3, 0xc8, 0x6d, 0xdf, 0xdb,
+ 0x2a, 0xfe, 0xf7, 0x78, 0xf7, 0xc3, 0xa7, 0xc6,
+ 0x9e, 0xce, 0xb3, 0x77, 0x8c, 0xf7, 0x95, 0x26,
+ 0xe5, 0x84, 0xa0, 0x0d, 0xc6, 0x8c, 0xae, 0x1e,
+ 0xed, 0x23, 0xa0, 0x0c, 0xaa, 0xa1, 0x35, 0x63,
+ 0x96, 0x4a, 0x8a, 0x83, 0xee, 0x96, 0xdd, 0xf1,
+ 0x1d, 0xdb, 0xc3, 0x1c, 0x6d, 0xe7, 0x5b, 0xe6,
+ 0x9c, 0x89, 0xe5, 0xe6, 0x8b, 0xf3, 0x61, 0xa4,
+ 0xfd, 0x9a, 0xc6, 0xc1, 0x21, 0xb3, 0x39, 0x75,
+ 0xcc, 0x1d, 0x84, 0x1f, 0x5b, 0xb9, 0xbd, 0x21,
+ 0x6b, 0x3b, 0xdc, 0x7b, 0x52, 0x2d, 0x65, 0xcb,
+ 0x1b, 0x47, 0x8c, 0xb6, 0x33, 0x6f, 0x07, 0xb1,
+ 0xc8, 0x7e, 0x9a, 0x50, 0x69, 0xfc, 0x04, 0x43,
+ 0xf1, 0x79, 0xf1, 0xd6, 0x34, 0x71, 0x35, 0x82,
+ 0x8f, 0xdd, 0xab, 0x09, 0xe9, 0x74, 0xa3, 0xdf,
+ 0x4a, 0x51, 0x70, 0xe5, 0x68, 0xae, 0x03, 0x3d,
+ 0x3c, 0xab, 0x2b, 0x4c, 0x82, 0xfb, 0xd2, 0x3d,
+ 0xcc, 0x83, 0x18, 0xaf, 0xc0, 0x0e, 0xa2, 0x0c,
+ 0x7a, 0x10, 0x61, 0x8a, 0x2d, 0xc0, 0x69, 0xf5,
+ 0x63, 0x3d, 0x46, 0x35, 0x3e, 0xd6, 0x58, 0xe0,
+ 0x91, 0xbf, 0xf8, 0xe3, 0xd6, 0xb7, 0xce, 0x93,
+ 0xa7, 0xc7, 0x4c, 0x62, 0xb9, 0xc6, 0xba, 0xcf,
+ 0x4e, 0x4a, 0xb2, 0x24, 0x6a, 0xab, 0x2e, 0xdb,
+ 0x5f, 0x80, 0x6a, 0x6b, 0xfe, 0x5e, 0xe2, 0x94,
+ 0x4e, 0x5c, 0xde, 0x5a, 0x19, 0xee, 0xe6, 0xc2,
+ 0xe0, 0x22, 0xf6, 0x20, 0x31, 0x5e, 0x33, 0x6a,
+ 0xc5, 0xfb, 0xa1, 0x0a, 0x6a, 0x15, 0xde, 0x1c,
+ 0x5f, 0xce, 0x3f, 0x33, 0xa7, 0x7e, 0x0f, 0x07,
+ 0x57, 0x7e, 0x40, 0x67, 0xd1, 0x95, 0x3f, 0x87,
+ 0xb2, 0x9a, 0xef, 0xb0, 0xa2, 0x9c, 0x13, 0xf6,
+ 0x45, 0xb2, 0x69, 0x3c, 0x31, 0x09, 0x2d, 0x0d,
+ 0x29, 0x87, 0xb1, 0x7a, 0xb5, 0x7a, 0x03, 0x87,
+ 0xc6, 0x42, 0x63, 0x72, 0xee, 0x01, 0x0f, 0xda,
+ 0xb8, 0x1a, 0x14, 0x2d, 0x5d, 0x83, 0x4f, 0x56,
+ 0x04, 0x83, 0xd2, 0x35, 0x37, 0xaa, 0xf8, 0xd3,
+ 0xd6, 0xca, 0x2f, 0xcd, 0xfd, 0xef, 0xb3, 0xa9,
+ 0x27, 0xbd, 0x93, 0xe3, 0x20, 0xda, 0xb4, 0x9e,
+ 0x65, 0x33, 0x39, 0x10, 0xc2, 0x19, 0x0e, 0x6c,
+ 0xaa, 0x5d, 0xc6, 0xe6, 0x96, 0x96, 0xa9, 0x78,
+ 0xd1, 0x86, 0x09, 0x24, 0x2b, 0x6a, 0xce, 0x79,
+ 0xa4, 0x94, 0xe1, 0xc0, 0x57, 0xac, 0x35, 0xb9,
+ 0xff, 0xb2, 0x0b, 0xdf, 0x98, 0xc6, 0x0d, 0xbf,
+ 0xb1, 0x4b, 0xe7, 0x30, 0x8c, 0x1c, 0x9e, 0x41,
+ 0x2c, 0xa8, 0x8c, 0xb3, 0x98, 0xa0, 0x98, 0x43,
+ 0x39, 0xb5, 0x0c, 0x6a, 0x6f, 0xa3, 0x1c, 0x32,
+ 0xb0, 0x20, 0xe7, 0x52, 0xf2, 0x79, 0x43, 0xa7,
+ 0xa8, 0xd5, 0xbc, 0x04, 0x89, 0xf3, 0x2d, 0x77,
+ 0xf4, 0x44, 0x54, 0x98, 0xb2, 0xbb, 0x53, 0xbc,
+ 0xc5, 0x70, 0x3f, 0x5b, 0xda, 0xcc, 0x14, 0xac,
+ 0xad, 0x94, 0xd1, 0x72, 0x3f, 0x0e, 0xaa, 0x52,
+ 0xc4, 0xab, 0xe8, 0xf2, 0x2a, 0x9e, 0x22, 0xda,
+ 0x5f, 0x02, 0xc8, 0x0d, 0x54, 0x89, 0xfc, 0x3c,
+ 0x2b, 0x44, 0x18, 0x38, 0x94, 0xbd, 0x67, 0x74,
+ 0x5c, 0x27, 0x13, 0x35, 0xa0, 0x0b, 0x70, 0x19,
+ 0xc4, 0xcc, 0xeb, 0xa9, 0xdf, 0xcf, 0x69, 0x9d,
+ 0xcf, 0x31, 0x86, 0xa1, 0xfc, 0x0f, 0x99, 0xbe,
+ 0xfb, 0xb1, 0x02, 0x0d, 0x62, 0x13, 0xc0, 0x2b,
+ 0xa5, 0x53, 0x0c, 0xa1, 0x8c, 0x52, 0x47, 0xe3,
+ 0x5d, 0x31, 0xdb, 0xa0, 0xf8, 0xd2, 0x13, 0xc4,
+ 0xa0, 0x75, 0x37, 0x46, 0x57, 0x82, 0x50, 0xcd,
+ 0x7f, 0x22, 0x93, 0x5d, 0x06, 0x26, 0x32, 0x22,
+ 0x49, 0xf6, 0xd5, 0x8f, 0xab, 0x64, 0x1c, 0x63,
+ 0x3b, 0xe5, 0xf9, 0xb4, 0x6e, 0x8a, 0xfe, 0x9d,
+ 0x14, 0x46, 0x34, 0xc7, 0x79, 0x03, 0x21, 0x44,
+ 0xf6, 0x9c, 0xad, 0x67, 0xd4, 0x79, 0x82, 0xf2,
+ 0x66, 0x66, 0x8b, 0xd7, 0x9c, 0x1a, 0x83, 0xa0,
+ 0xc4, 0x79, 0x9d, 0x37, 0x02, 0x1b, 0x37, 0xb3,
+ 0x22, 0xea, 0x59, 0x58, 0xe1, 0x28, 0xa5, 0x7a,
+ 0x69, 0x88, 0x00, 0x2f, 0xaf, 0x4f, 0x5a, 0x85,
+ 0x9b, 0x17, 0xdd, 0x0e, 0x56, 0x40, 0xb5, 0xde,
+ 0x26, 0xfd, 0x31, 0xeb, 0x2a, 0x9f, 0x7d, 0xaf,
+ 0x55, 0xfb, 0x10, 0x27, 0xd1, 0x84, 0x2c, 0xab,
+ 0xd9, 0xee, 0x1d, 0xff, 0x30, 0x73, 0xdf, 0x34,
+ 0x0d, 0xe1, 0x5c, 0x9f, 0xec, 0x46, 0x0f, 0x63,
+ 0xd1, 0x7a, 0x59, 0xd2, 0x9b, 0xdb, 0x98, 0xa5,
+ 0x5c, 0xbd, 0x09, 0xc5, 0xce, 0xa4, 0x78, 0xf1,
+ 0xf5, 0x69, 0x4a, 0x63, 0xbd, 0xae, 0x6b, 0xcb,
+ 0x90, 0xa9, 0x68, 0x90, 0x30, 0x04, 0x43, 0xdd,
+ 0xba, 0xed, 0xfb, 0x6e, 0xab, 0x9d, 0x35, 0xcc,
+ 0x45, 0xa4, 0x07, 0xe1, 0xfd, 0x05, 0x89, 0x93,
+ 0xc1, 0x09, 0xe7, 0xc0, 0x3f, 0x91, 0x95, 0xbb,
+ 0xba, 0x37, 0xa7, 0x33, 0xef, 0xae, 0x1a, 0x33,
+ 0xde, 0xa9, 0x41, 0x9e, 0x4a, 0x98, 0x17, 0x10,
+ 0x55, 0x83, 0xee, 0x9c, 0x8e, 0x51, 0x75, 0x87,
+ 0x7d, 0xcb, 0xbf, 0x4e, 0x1f, 0x0d, 0xf6, 0x43,
+ 0x20, 0x5d, 0x0d, 0xf5, 0x50, 0x9e, 0x6b, 0x47,
+ 0x7b, 0x8a, 0xa6, 0xa7, 0xdc, 0x78, 0xde, 0xc1,
+ 0x2d, 0x5e, 0x3e, 0x94, 0x41, 0xbe, 0x59, 0x6e,
+ 0x76, 0x16, 0x72, 0x31, 0xf2, 0x76, 0xb1, 0x6a,
+ 0xa3, 0x74, 0x01, 0x77, 0xc5, 0x6c, 0x32, 0x7c,
+ 0xb8, 0xd3, 0x09, 0x57, 0x22, 0xaa, 0x3e, 0x93,
+ 0x94, 0x7d, 0x70, 0xc9, 0x81, 0xfb, 0x64, 0x6e,
+ 0xaf, 0xcc, 0xe7, 0x97, 0x6b, 0x33, 0x8f, 0x3c,
+ 0x82, 0xd4, 0xf6, 0xa0, 0x9a, 0x15, 0x03, 0x94,
+ 0xdc, 0x35, 0xf5, 0x00, 0x66, 0xf8, 0xee, 0x85,
+ 0x9c, 0xc4, 0xb1, 0xe8, 0x6b, 0x1b, 0xb2, 0x16,
+ 0x0c, 0xd8, 0x86, 0xa1, 0x69, 0x34, 0x49, 0xb7,
+ 0x5a, 0xe0, 0xff, 0x8b, 0x51, 0xf7, 0xbb, 0x2e,
+ 0x35, 0x9e, 0xcf, 0x32, 0x01, 0x1e, 0xd0, 0x6f,
+ 0xff, 0x37, 0xfe, 0xcb, 0x29, 0xc2, 0xc4, 0x74,
+ 0xcd, 0xea, 0x41, 0x68, 0x06, 0x7b, 0x82, 0x1b,
+ 0x23, 0xf6, 0x4a, 0x67, 0xad, 0xe2, 0x6c, 0x69,
+ 0x48, 0x1b, 0x10, 0xf8, 0x14, 0x74, 0x8f, 0x87,
+ 0x80, 0x2c, 0xfa, 0xd7, 0xb5, 0x3c, 0xdb, 0xbf,
+ 0x2a, 0xdb, 0xe3, 0x74, 0x63, 0x36, 0xae, 0x46,
+ 0x05, 0xec, 0x14, 0xbf, 0x41, 0x97, 0xea, 0x19,
+ 0x49, 0x49, 0x12, 0x1e, 0xab, 0x92, 0x8e, 0x95,
+ 0x38, 0x02, 0x06, 0x82, 0x87, 0x52, 0xca, 0x37,
+ 0x4c, 0x88, 0x76, 0xe3, 0x0f, 0x19, 0x64, 0x52,
+ 0xab, 0x78, 0x11, 0xea, 0x12, 0xa4, 0x1f, 0x75,
+ 0x8c, 0x29, 0x0d, 0x78, 0x25, 0x92, 0x32, 0xf5,
+ 0xe6, 0xb2, 0x84, 0xfe, 0x4b, 0x9e, 0xbf, 0xbe,
+ 0x9a, 0x08, 0x97, 0x0e, 0xaa, 0x1e, 0x1a, 0x4c,
+ 0x79, 0xca, 0xe1, 0x47, 0x98, 0xf4, 0xdb, 0xc1,
+ 0xe0, 0x09, 0x6f, 0xcf, 0x14, 0xbc, 0x2d, 0x18,
+ 0xb5, 0x14, 0x09, 0xdd, 0x27, 0x21, 0xca, 0xa6,
+ 0xe8, 0x01, 0xc7, 0xd7, 0xc2, 0xad, 0x77, 0xa7,
+ 0x6c, 0xd4, 0x60, 0xfc, 0x32, 0x6d, 0xfe, 0xbd,
+ 0x91, 0x06, 0x0e, 0x3d, 0x1f, 0xc8, 0xbf, 0x88,
+ 0x69, 0x2d, 0x6f, 0x48, 0x6f, 0x1e, 0x8b, 0xf8,
+ 0xa6, 0x81, 0x2e, 0x04, 0x98, 0xb6, 0xbd, 0x0f,
+ 0x10, 0x0e, 0x96, 0xf2, 0xbc, 0xfd, 0x54, 0x4e,
+ 0xd3, 0x76, 0x18, 0x98, 0x68, 0xc8, 0x7c, 0x33,
+ 0x0b, 0x16, 0x35, 0xf8, 0x51, 0x89, 0xd8, 0xe5,
+ 0x91, 0x70, 0xac, 0x5a, 0x25, 0x6f, 0xe1, 0xf3,
+ 0x1f, 0xe1, 0xd8, 0xf1, 0xd2, 0xb2, 0x03, 0xb2,
+ 0xb6, 0x11, 0x58, 0x19, 0xf0, 0x2c, 0xd5, 0x21,
+ 0xca, 0x2f, 0xc3, 0x15, 0xb9, 0x8d, 0xfa, 0x52,
+ 0x42, 0x4c, 0x9a, 0x78, 0x38, 0xf4, 0x57, 0xee,
+ 0x75, 0xbe, 0x33, 0x89, 0x9b, 0x0a, 0xa3, 0xe7,
+ 0x97, 0xc4, 0x77, 0xdf, 0xa5, 0xe6, 0x05, 0xf0,
+ 0x7a, 0xb9, 0x84, 0x6c, 0xa1, 0x60, 0x51, 0x46,
+ 0x9d, 0xce, 0x5b, 0x30, 0x56, 0x42, 0xf2, 0x30,
+ 0xf1, 0xe4, 0x5f, 0x18, 0x13, 0xe3, 0xd0, 0xea,
+ 0xa1, 0xc8, 0x48, 0xb3, 0x22, 0x3b, 0x32, 0x72,
+ 0x92, 0x29, 0xa4, 0xc5, 0x8e, 0xcc, 0xdd, 0x0e,
+ 0x6d, 0x8b, 0x49, 0x3e, 0xe9, 0xb5, 0xbd, 0x86,
+ 0x9f, 0x8d, 0xa8, 0xf4, 0x24, 0x10, 0xf6, 0x57,
+ 0xd1, 0x62, 0x8f, 0xe8, 0x31, 0x8f, 0xec, 0x4b,
+ 0x86, 0xc4, 0xd0, 0x33, 0x1b, 0xac, 0x4f, 0xab,
+ 0x61, 0x27, 0x1a, 0xb5, 0xa9, 0x0f, 0x30, 0x6f,
+ 0x51, 0x42, 0x42, 0xd6, 0x8c, 0x7e, 0x10, 0x6b,
+ 0x0b, 0xa1, 0xf9, 0x64, 0x62, 0xc7, 0x9d, 0xbf,
+ 0xc6, 0xca, 0x5f, 0x6e, 0xbc, 0xc4, 0xdf, 0x7a,
+ 0x5c, 0x62, 0x9e, 0xd9, 0x93, 0x8a, 0x96, 0xaa,
+ 0x60, 0x96, 0x30, 0xbc, 0x96, 0xc6, 0x94, 0x15,
+ 0xde, 0x12, 0x93, 0x58, 0xb5, 0x5f, 0x75, 0x67,
+ 0xf7, 0x0d, 0x52, 0x3a, 0xd1, 0xb1, 0xae, 0xee,
+ 0x92, 0x1c, 0x75, 0x56, 0xa3, 0x38, 0x81, 0xe2,
+ 0x07, 0x32, 0x44, 0xd4, 0x17, 0xd2, 0x50, 0x9c,
+ 0x8e, 0xe2, 0x80, 0x7a, 0xd3, 0x52, 0x8b, 0x33,
+ 0xf8, 0xaf, 0x93, 0x93, 0xd5, 0x84, 0x85, 0xf5,
+ 0x4d, 0x44, 0x71, 0x35, 0x88, 0x9e, 0x6d, 0x03,
+ 0xfa, 0xea, 0x06, 0x06, 0x7c, 0x6c, 0x02, 0x88,
+ 0xee, 0xc1, 0xd1, 0xf4, 0xe8, 0x51, 0x39, 0xa1,
+ 0x39, 0x05, 0x5e, 0x8b, 0x37, 0x6f, 0x93, 0xf0,
+ 0xfb, 0x4a, 0x38, 0x35, 0x5b, 0x6f, 0x75, 0x24,
+ 0xbb, 0xa1, 0x42, 0xd5, 0x39, 0xbe, 0x18, 0x58,
+ 0x1b, 0x6f, 0xd1, 0xd3, 0x0a, 0x9b, 0xeb, 0xa1,
+ 0x6e, 0xa5, 0x69, 0xe8, 0x76, 0xd9, 0x75, 0xf1,
+ 0x6d, 0x2f, 0xc2, 0xb7, 0x30, 0x0b, 0x99, 0xe2,
+ 0x33, 0x87, 0x88, 0x5a, 0xc2, 0x64, 0x0b, 0x0e,
+ 0x06, 0xd6, 0x28, 0x68, 0x8c, 0xaa, 0xaa, 0xf6,
+ 0x9a, 0x30, 0xd4, 0x83, 0x90, 0x15, 0x0e, 0x83,
+ 0xe7, 0x8d, 0x26, 0x58, 0x6c, 0xff, 0xa3, 0x33,
+ 0xcd, 0x19, 0xe8, 0xe8, 0xa6, 0x93, 0x79, 0x45,
+ 0x68, 0x85, 0xcb, 0x0a, 0x3b, 0x88, 0x74, 0x40,
+ 0x40, 0x1d, 0xbc, 0x08, 0xfb, 0x6b, 0x17, 0xe7,
+ 0xf1, 0x9e, 0x2b, 0x98, 0xe1, 0x87, 0xd6, 0x21,
+ 0xb1, 0x9d, 0x47, 0xf4, 0xe3, 0x9f, 0xfb, 0xc7,
+ 0x97, 0x13, 0x31, 0x59, 0x59, 0x46, 0x69, 0x5c,
+ 0xbd, 0xb7, 0xb8, 0x97, 0x4b, 0x6c, 0x46, 0x34,
+ 0x49, 0xc6, 0x6e, 0xd7, 0x62, 0x66, 0x54, 0x9f,
+ 0x29, 0x66, 0x54, 0x75, 0x67, 0xf0, 0x68, 0x00,
+ 0x43, 0x5e, 0xac, 0xf8, 0x24, 0xbf, 0xf5, 0xfd,
+ 0xb8, 0xbc, 0x6c, 0x73, 0x7f, 0x34, 0xa4, 0x27,
+ 0x31, 0xdd, 0x73, 0x3b, 0x57, 0xa7, 0x76, 0x01,
+ 0x98, 0xdc, 0x6c, 0x97, 0x70, 0x60, 0xbb, 0x08,
+ 0x53, 0x29, 0x26, 0x53, 0x5f, 0xd6, 0x1d, 0x4e,
+ 0x25, 0xa0, 0x02, 0xd3, 0x10, 0x04, 0x96, 0xa2,
+ 0xcb, 0x86, 0xb4, 0xd0, 0x91, 0x30, 0xe9, 0xe4,
+ 0xe5, 0x2e, 0xe3, 0x22, 0x6c, 0x2c, 0xc8, 0xb2,
+ 0xa8, 0xa6, 0x0c, 0xf0, 0x18, 0xf8, 0xf1, 0x76,
+ 0x8a, 0x18, 0xd1, 0xc7, 0x98, 0x3c, 0x59, 0x62,
+ 0xa2, 0xcb, 0x05, 0xeb, 0xc7, 0x0d, 0xec, 0xf4,
+ 0x01, 0x36, 0x94, 0x32, 0x2a, 0xe6, 0x51, 0x77,
+ 0xd7, 0x8f, 0x00, 0xea, 0x7a, 0x8e, 0x58, 0x10,
+ 0xc1, 0x8a, 0x7d, 0x4c, 0x0d, 0x9c, 0x1e, 0x0d,
+ 0xd8, 0x9c, 0x3f, 0xf0, 0xd7, 0xaa, 0xd7, 0xf3,
+ 0x43, 0x88, 0x26, 0x30, 0x68, 0xd6, 0xf1, 0x07,
+ 0x0e, 0x70, 0x4c, 0xd6, 0xfb, 0x10, 0xe1, 0xd6,
+ 0xae, 0x41, 0xdf, 0x78, 0x7a, 0xc6, 0x54, 0x39,
+ 0x45, 0x78, 0x1d, 0x26, 0x95, 0x0b, 0x20, 0x66,
+ 0x16, 0x54, 0xad, 0x5f, 0x1c, 0x66, 0xf4, 0xc2,
+ 0x68, 0x54, 0xfd, 0x3e, 0x61, 0x61, 0x0a, 0xd7,
+ 0x23, 0xc4, 0x5b, 0xef, 0x36, 0x3d, 0x31, 0x95,
+ 0xf4, 0x42, 0x8a, 0xf7, 0x5a, 0xf8, 0x83, 0x9e,
+ 0xe8, 0x68, 0x57, 0x01, 0x4e, 0x18, 0x50, 0x5b,
+ 0x82, 0xcd, 0x52, 0x7d, 0xa4, 0xb6, 0x1c, 0xe5,
+ 0xd9, 0x8b, 0x9c, 0xd3, 0xfa, 0xfe, 0x5b, 0x6b,
+ 0x89, 0x1c, 0x1d, 0xd3, 0xd2, 0x8a, 0xf8, 0xcb,
+ 0x6d, 0xcb, 0x30, 0xc4, 0x66, 0x06, 0xfb, 0x83,
+ 0xec, 0xc4, 0xae, 0x59, 0xbb, 0x6c, 0xae, 0x0e,
+ 0x34, 0xe5, 0x32, 0xbf, 0x1a, 0xd6, 0x72, 0x7f,
+ 0x49, 0x43, 0x85, 0x1b, 0x66, 0x22, 0x9b, 0x69,
+ 0x8e, 0x46, 0x05, 0x6e, 0x95, 0xa7, 0x20, 0xc0,
+ 0xc8, 0x0a, 0x0c, 0x51, 0x3c, 0x70, 0xde, 0x92,
+ 0x82, 0xd3, 0x2a, 0x2a, 0x89, 0x8e, 0x9d, 0xc3,
+ 0x01, 0xaa, 0x80, 0x61, 0x21, 0x3e, 0x7d, 0x86,
+ 0x74, 0x38, 0x78, 0x37, 0x5a, 0x1e, 0xa3, 0x8d,
+ 0xa5, 0xdb, 0x05, 0xdc, 0x48, 0x8a, 0x2f, 0x80,
+ 0x46, 0x7f, 0xde, 0x4b, 0x99, 0x01, 0x55, 0x0f,
+ 0xe7, 0x6c, 0x49, 0x65, 0x66, 0xae, 0xc2, 0xf9,
+ 0x86, 0x71, 0x26, 0xf2, 0xbd, 0x00, 0x01, 0x38,
+ 0x80, 0x9a, 0x42, 0xcc, 0xb0, 0xae, 0xda, 0x5f,
+ 0xf6, 0xab, 0x27, 0xa6, 0x89, 0x6a, 0xce, 0x49,
+ 0xbe, 0x5d, 0x3d, 0xc3, 0xde, 0x4c, 0xc7, 0x85,
+ 0x39, 0x44, 0xe0, 0x33, 0x0a, 0x05, 0x96, 0x2f,
+ 0x6f, 0xfa, 0x58, 0xf3, 0x63, 0xbf, 0x28, 0xc3,
+ 0xef, 0xf6, 0xcb, 0xf1, 0xee, 0x36, 0x15, 0x3f,
+ 0xc2, 0x94, 0xc3, 0xe0, 0xa9, 0x5f, 0x2e, 0x1d,
+ 0x35, 0xc5, 0xf8, 0xb0, 0xf9, 0xde, 0xd7, 0xcd,
+ 0xbd, 0x11, 0x04, 0x37, 0x72, 0x40, 0x9c, 0x33,
+ 0xff, 0x17, 0xed, 0x3b, 0x0e, 0xbc, 0x02, 0x43,
+ 0xe1, 0x09, 0xa0, 0xb8, 0x13, 0x7c, 0xcc, 0xe5,
+ 0x0d, 0x1a, 0xdf, 0x0a, 0x88, 0xff, 0x6c, 0xfc,
+ 0x01, 0x86, 0x51, 0x7a, 0x7e, 0x4b, 0x7b, 0x98,
+ 0x45, 0xed, 0x32, 0xbf, 0x3c, 0x15, 0xef, 0xa7,
+ 0x08, 0xa2, 0x34, 0x9f, 0xf5, 0x0b, 0x05, 0xed,
+ 0x71, 0x2d, 0x1e, 0xa5, 0xe6, 0xe7, 0x74, 0x69,
+ 0x9e, 0x3e, 0x64, 0x56, 0xf5, 0x4f, 0x4f, 0xf7,
+ 0x77, 0x89, 0x1b, 0xd2, 0x73, 0xaa, 0x04, 0x73,
+ 0x6d, 0x23, 0xd6, 0x60, 0x17, 0x1f, 0x95, 0xdd,
+ 0x38, 0xa1, 0x9a, 0x1b, 0x4f, 0x53, 0x09, 0x8c,
+ 0x59, 0xa0, 0x14, 0xd4, 0x92, 0x52, 0x4f, 0x0e,
+ 0x43, 0x85, 0x2d, 0xfb, 0x98, 0x1a, 0x20, 0x46,
+ 0x10, 0x81, 0xbb, 0x76, 0x17, 0xa2, 0xb2, 0xc8,
+ 0xc7, 0xf5, 0xc2, 0xe5, 0x64, 0xbf, 0x53, 0xe5,
+ 0x66, 0xd7, 0x08, 0x45, 0xa9, 0xb3, 0x79, 0xde,
+ 0x5f, 0x2d, 0xbf, 0x96, 0xfd, 0x06, 0x51, 0xc9,
+ 0x92, 0x78, 0x9b, 0x85, 0xdc, 0x77, 0x9f, 0xb7,
+ 0x21, 0x52, 0xaf, 0x4b, 0x39, 0x10, 0x33, 0xef,
+ 0x8c, 0x80, 0xac, 0x3e, 0x7b, 0x8a, 0x0f, 0x42,
+ 0xed, 0x8f, 0xe1, 0xbc, 0x34, 0x32, 0x3b, 0xbd,
+ 0xed, 0x94, 0x38, 0xa6, 0x77, 0x1a, 0xbf, 0xf6,
+ 0x85, 0x22, 0xb7, 0x19, 0x9f, 0x27, 0xdf, 0x7a,
+ 0x17, 0xcf, 0xc3, 0x61, 0x0d, 0xd5, 0x13, 0x6c,
+ 0x3b, 0xa7, 0xb4, 0x26, 0x7b, 0x24, 0xf6, 0xd2,
+ 0x6f, 0xdc, 0x48, 0xb3, 0xfc, 0x21, 0x68, 0x9f,
+ 0xb3, 0xaf, 0x1e, 0x55, 0x7e, 0x7c, 0x2c, 0xa9,
+ 0xb7, 0x19, 0x65, 0xf0, 0xc5, 0x79, 0x4b, 0x2c,
+ 0x66, 0x83, 0xb7, 0xef, 0x00, 0x80, 0x8e, 0x1b,
+ 0xc7, 0x62, 0xaf, 0x4d, 0x01, 0x96, 0x83, 0xb2,
+ 0xda, 0x70, 0x0d, 0x18, 0xfa, 0x46, 0x2f, 0xaa,
+ 0xaa, 0x2f, 0x99, 0x09, 0xa4, 0x85, 0x8a, 0xf7,
+ 0x09, 0x20, 0xba, 0x08, 0x9c, 0xba, 0x87, 0xa1,
+ 0x8c, 0xb0, 0x73, 0xee, 0x38, 0xb8, 0xde, 0x17,
+ 0xe1, 0x8c, 0xcf, 0xa1, 0x2b, 0x98, 0xcf, 0x51,
+ 0x7c, 0x60, 0x80, 0x26, 0x4a, 0x16, 0x0f, 0x50,
+ 0x96, 0xab, 0x1e, 0x92, 0x12, 0xd3, 0x83, 0x4e,
+ 0x50, 0x93, 0x19, 0x21, 0xdb, 0x69, 0x06, 0xf4,
+ 0x69, 0xea, 0xc7, 0x1c, 0x86, 0xe5, 0x76, 0xb4,
+ 0x4e, 0xc3, 0x15, 0xf8, 0x8a, 0xa9, 0xea, 0x1c,
+ 0x41, 0x8f, 0xb1, 0xc4, 0x94, 0x8e, 0xed, 0x3a,
+ 0xc0, 0xdf, 0x72, 0x6a, 0x49, 0x84, 0x2a, 0xa6,
+ 0xe4, 0x14, 0x6d, 0xa1, 0x46, 0xa1, 0x0e, 0x61,
+ 0xda, 0x38, 0xd3, 0x09, 0x8e, 0x03, 0xdf, 0x3c,
+ 0xd9, 0x16, 0x34, 0x41, 0x8a, 0xb8, 0x71, 0x8f,
+ 0x30, 0x44, 0x8f, 0x8f, 0xdf, 0x8d, 0x58, 0x30,
+ 0xe1, 0xdc, 0x87, 0xf5, 0x74, 0xd3, 0xb9, 0xb0,
+ 0xc9, 0xdd, 0x51, 0x2c, 0x4c, 0x2b, 0x56, 0xb3,
+ 0xf8, 0xbe, 0x70, 0x21, 0xb4, 0x67, 0xc7, 0x06,
+ 0x9b, 0xbd, 0x89, 0xb6, 0xfb, 0x7b, 0x5e, 0x37,
+ },
+ .sk_len = DILITHIUM87_SECRETKEYBYTES,
+ .sk = (const u8[DILITHIUM87_SECRETKEYBYTES]){
+ 0xf0, 0xb2, 0xb4, 0x8a, 0x7e, 0x17, 0x02, 0xdf,
+ 0x75, 0xc1, 0x1f, 0xd7, 0x0f, 0xfd, 0x02, 0x86,
+ 0x74, 0x08, 0xb2, 0x1a, 0xf6, 0xbd, 0xbe, 0x4e,
+ 0xad, 0x38, 0x2c, 0x48, 0x2e, 0x83, 0x71, 0xbb,
+ 0xd3, 0x4d, 0x79, 0x41, 0x41, 0x19, 0x8b, 0xbb,
+ 0x39, 0xd0, 0xd3, 0xc0, 0xb4, 0x2f, 0xf3, 0x9b,
+ 0x89, 0x5d, 0x35, 0x68, 0xe0, 0x96, 0xd9, 0x67,
+ 0xde, 0x32, 0xaf, 0xae, 0xcc, 0x9a, 0xbd, 0x02,
+ 0xef, 0x73, 0xf3, 0x1e, 0x19, 0xd7, 0x38, 0xc0,
+ 0xfb, 0x33, 0x5a, 0xe2, 0x6c, 0xdb, 0xe9, 0xf8,
+ 0x7b, 0xe7, 0x10, 0x17, 0xc3, 0x9c, 0x2c, 0x0a,
+ 0x41, 0xe4, 0x2b, 0xad, 0xde, 0x10, 0xf1, 0x3b,
+ 0x56, 0x0b, 0x7a, 0x76, 0xf6, 0xf8, 0x61, 0x71,
+ 0x82, 0x42, 0x08, 0xf7, 0xe4, 0xfb, 0x4e, 0x88,
+ 0xbd, 0x8c, 0x35, 0x9b, 0xd7, 0x18, 0x97, 0x5e,
+ 0x6c, 0x4f, 0xb5, 0xfc, 0x48, 0x3b, 0xbf, 0x5c,
+ 0x48, 0x94, 0x41, 0xc4, 0xb6, 0x0c, 0x0b, 0xb2,
+ 0x41, 0x8b, 0x02, 0x32, 0x9c, 0xa4, 0x31, 0x03,
+ 0x39, 0x90, 0x1b, 0x90, 0x24, 0x14, 0xc9, 0x51,
+ 0x00, 0xa1, 0x91, 0x8c, 0x80, 0x2c, 0x0a, 0xa9,
+ 0x85, 0x0a, 0xa0, 0x28, 0x11, 0xa7, 0x28, 0x0c,
+ 0x35, 0x84, 0xd8, 0x82, 0x0d, 0x09, 0xa8, 0x04,
+ 0x58, 0x92, 0x64, 0x1b, 0xa1, 0x45, 0x8a, 0x94,
+ 0x40, 0xd0, 0x48, 0x0c, 0x63, 0x38, 0x06, 0x88,
+ 0x22, 0x41, 0x18, 0xa9, 0x30, 0xa1, 0x36, 0x51,
+ 0xc1, 0x08, 0x51, 0xcc, 0xb6, 0x41, 0x53, 0x38,
+ 0x26, 0x18, 0x91, 0x60, 0xda, 0x06, 0x6d, 0x13,
+ 0x26, 0x08, 0x53, 0xb4, 0x40, 0x00, 0x29, 0x22,
+ 0x14, 0x08, 0x24, 0x04, 0x83, 0x60, 0x1a, 0xa5,
+ 0x28, 0x52, 0x02, 0x22, 0xd1, 0xc0, 0x8c, 0x14,
+ 0x30, 0x52, 0x92, 0x20, 0x71, 0x18, 0x86, 0x64,
+ 0xd4, 0x44, 0x80, 0x23, 0xb5, 0x29, 0xcb, 0x14,
+ 0x08, 0x43, 0xc0, 0x08, 0x24, 0x83, 0x49, 0x63,
+ 0xa4, 0x4d, 0x61, 0xc4, 0x31, 0x1b, 0xc6, 0x71,
+ 0xd3, 0x10, 0x4a, 0x12, 0xb2, 0x28, 0x4b, 0xb2,
+ 0x28, 0x88, 0x42, 0x49, 0xcb, 0x42, 0x81, 0x19,
+ 0xc5, 0x49, 0x10, 0xa2, 0x01, 0x12, 0x45, 0x90,
+ 0x01, 0x46, 0x12, 0xc0, 0x24, 0x31, 0xca, 0x10,
+ 0x6c, 0x1a, 0x34, 0x86, 0xc0, 0x04, 0x61, 0x64,
+ 0xc0, 0x69, 0x20, 0x93, 0x91, 0x0b, 0x49, 0x70,
+ 0xc8, 0xc4, 0x69, 0x0c, 0xa8, 0x50, 0x89, 0x96,
+ 0x68, 0x43, 0xb4, 0x6d, 0xe2, 0x42, 0x31, 0xd4,
+ 0x20, 0x2e, 0xe2, 0x06, 0x72, 0x0a, 0x24, 0x12,
+ 0x4c, 0xa0, 0x20, 0x4a, 0x00, 0x25, 0x81, 0xc6,
+ 0x65, 0x5a, 0x28, 0x48, 0x1a, 0x91, 0x40, 0xdc,
+ 0x84, 0x90, 0x20, 0x33, 0x4a, 0x00, 0x41, 0x40,
+ 0x00, 0x33, 0x12, 0x03, 0x04, 0x90, 0x12, 0xa9,
+ 0x61, 0x5b, 0xc4, 0x21, 0x1b, 0x12, 0x31, 0x92,
+ 0x28, 0x29, 0x60, 0xa2, 0x29, 0x0a, 0xa2, 0x51,
+ 0x10, 0x07, 0x86, 0x54, 0x94, 0x6c, 0xda, 0x84,
+ 0x81, 0x12, 0x90, 0x20, 0x23, 0x39, 0x22, 0x92,
+ 0xa4, 0x68, 0x9c, 0x96, 0x90, 0x12, 0xa1, 0x71,
+ 0x12, 0x08, 0x26, 0xe4, 0x04, 0x40, 0xca, 0x30,
+ 0x25, 0xe3, 0x10, 0x31, 0x48, 0x48, 0x21, 0x54,
+ 0x80, 0x70, 0x84, 0x38, 0x11, 0x5c, 0x08, 0x85,
+ 0x03, 0x49, 0x0d, 0x02, 0x07, 0x0d, 0x44, 0x98,
+ 0x0c, 0x81, 0x48, 0x10, 0x24, 0x99, 0x85, 0x11,
+ 0x20, 0x0d, 0x8a, 0x44, 0x08, 0x02, 0x13, 0x6a,
+ 0x93, 0x46, 0x81, 0x18, 0x47, 0x0e, 0xa1, 0x18,
+ 0x25, 0x0b, 0xb8, 0x61, 0x54, 0x28, 0x52, 0x41,
+ 0xc4, 0x00, 0x9c, 0x08, 0x84, 0x11, 0x97, 0x08,
+ 0xa1, 0x32, 0x28, 0x18, 0x27, 0x49, 0x09, 0x12,
+ 0x68, 0x04, 0xb7, 0x84, 0xe1, 0x08, 0x0c, 0x11,
+ 0x83, 0x11, 0xd3, 0xc0, 0x11, 0xcb, 0x32, 0x84,
+ 0xc3, 0x46, 0x48, 0x13, 0xb5, 0x51, 0x23, 0x32,
+ 0x09, 0xc0, 0x32, 0x22, 0x81, 0x96, 0x09, 0xe3,
+ 0x94, 0x21, 0x18, 0x97, 0x90, 0xa2, 0x08, 0x4e,
+ 0x22, 0xa9, 0x24, 0x59, 0xa4, 0x0d, 0x48, 0x04,
+ 0x01, 0xd2, 0x08, 0x62, 0x0a, 0x37, 0x6e, 0x53,
+ 0x92, 0x10, 0x14, 0x21, 0x41, 0x13, 0x24, 0x52,
+ 0x80, 0xc2, 0x01, 0x61, 0xb4, 0x24, 0x5a, 0x30,
+ 0x32, 0x5c, 0x02, 0x8c, 0x1a, 0x94, 0x6d, 0x11,
+ 0xa1, 0x69, 0x5c, 0x00, 0x90, 0x40, 0xb6, 0x10,
+ 0x04, 0x83, 0x00, 0x10, 0xa5, 0x0d, 0x10, 0x45,
+ 0x4c, 0x19, 0x89, 0x24, 0x13, 0x02, 0x66, 0x03,
+ 0x90, 0x28, 0x93, 0x44, 0x4e, 0x64, 0x02, 0x44,
+ 0xd2, 0x32, 0x0c, 0x14, 0x25, 0x69, 0x22, 0x41,
+ 0x0c, 0x08, 0x32, 0x84, 0x02, 0xc9, 0x84, 0x12,
+ 0x42, 0x24, 0x03, 0xa2, 0x0c, 0x0b, 0x01, 0x06,
+ 0x23, 0x88, 0x90, 0x02, 0x32, 0x11, 0x04, 0x30,
+ 0x4a, 0xd2, 0x24, 0x52, 0x59, 0x88, 0x4c, 0x94,
+ 0x14, 0x88, 0x19, 0xa6, 0x4d, 0x63, 0x32, 0x29,
+ 0x0b, 0x19, 0x49, 0x9c, 0x96, 0x81, 0x9b, 0xb0,
+ 0x20, 0x18, 0x38, 0x24, 0xcc, 0x04, 0x11, 0xdc,
+ 0xb4, 0x4d, 0x09, 0x36, 0x08, 0x61, 0x88, 0x40,
+ 0x4a, 0x00, 0x72, 0xd0, 0x94, 0x31, 0x14, 0x96,
+ 0x2d, 0x04, 0xc8, 0x85, 0xa2, 0xc2, 0x4c, 0xcc,
+ 0xa2, 0x90, 0xcc, 0x84, 0x49, 0xc2, 0xb4, 0x31,
+ 0x19, 0x02, 0x20, 0x84, 0x30, 0x85, 0x12, 0x30,
+ 0x11, 0x12, 0x26, 0x01, 0xa0, 0x28, 0x00, 0x1b,
+ 0xb9, 0x48, 0x02, 0x46, 0x8c, 0x01, 0x98, 0x64,
+ 0xd1, 0x88, 0x51, 0x8c, 0xb0, 0x44, 0x0c, 0x42,
+ 0x86, 0x0b, 0xb0, 0x61, 0x58, 0x82, 0x70, 0x53,
+ 0x48, 0x25, 0xe0, 0xc6, 0x85, 0x1c, 0x39, 0x86,
+ 0x44, 0x06, 0x29, 0x18, 0x91, 0x08, 0x94, 0xa4,
+ 0x41, 0x0b, 0x89, 0x4d, 0x02, 0x14, 0x30, 0x08,
+ 0x91, 0x2c, 0x02, 0x49, 0x12, 0x4c, 0x16, 0x6c,
+ 0x54, 0xa8, 0x88, 0x10, 0xc8, 0x69, 0x64, 0x40,
+ 0x71, 0x02, 0x25, 0x60, 0x22, 0x16, 0x21, 0x13,
+ 0x00, 0x44, 0x4b, 0x88, 0x2d, 0x08, 0x94, 0x05,
+ 0xcc, 0x12, 0x01, 0x90, 0x08, 0x05, 0x03, 0xc4,
+ 0x80, 0xd2, 0x86, 0x91, 0x90, 0x40, 0x24, 0xe2,
+ 0x10, 0x88, 0x98, 0x32, 0x10, 0xd9, 0x10, 0x2c,
+ 0x0a, 0x35, 0x05, 0x1a, 0x91, 0x51, 0x01, 0x22,
+ 0x05, 0xda, 0xb0, 0x25, 0x59, 0x04, 0x29, 0xa3,
+ 0x36, 0x24, 0x13, 0xc6, 0x11, 0x1c, 0x44, 0x30,
+ 0x04, 0x06, 0x09, 0x0b, 0xc5, 0x29, 0x1a, 0xc0,
+ 0x6d, 0x0a, 0x99, 0x21, 0x1c, 0x23, 0x12, 0xca,
+ 0x00, 0x26, 0x14, 0x03, 0x29, 0xdb, 0xa6, 0x44,
+ 0x24, 0x16, 0x46, 0x09, 0x23, 0x0a, 0x14, 0x21,
+ 0x50, 0x12, 0x35, 0x0c, 0x84, 0x44, 0x72, 0x93,
+ 0x12, 0x8c, 0x13, 0x16, 0x49, 0x49, 0x08, 0x2d,
+ 0x12, 0xc0, 0x21, 0x82, 0x24, 0x61, 0x9a, 0x36,
+ 0x02, 0xc4, 0x28, 0x26, 0x13, 0x24, 0x20, 0x08,
+ 0x29, 0x45, 0x8c, 0x46, 0x88, 0x4a, 0x90, 0x71,
+ 0x21, 0x42, 0x52, 0x24, 0x35, 0x2a, 0x64, 0x26,
+ 0x28, 0x01, 0x27, 0x88, 0x00, 0x49, 0x4a, 0xcb,
+ 0x18, 0x01, 0x8b, 0x94, 0x89, 0x82, 0x10, 0x62,
+ 0x13, 0x44, 0x68, 0x81, 0x20, 0x40, 0x48, 0x32,
+ 0x06, 0xe3, 0xa4, 0x48, 0x11, 0xa1, 0x29, 0x21,
+ 0x17, 0x4d, 0x8b, 0xb8, 0x91, 0x10, 0x24, 0x20,
+ 0x4b, 0x14, 0x02, 0x9a, 0xc0, 0x28, 0xcc, 0xa8,
+ 0x10, 0xdb, 0xb6, 0x90, 0x81, 0x26, 0x8d, 0x41,
+ 0x90, 0x6c, 0x52, 0x80, 0x2d, 0xc8, 0x40, 0x20,
+ 0x53, 0xc4, 0x30, 0x82, 0xc0, 0x51, 0xcb, 0x82,
+ 0x31, 0x43, 0xc8, 0x4d, 0x23, 0xa2, 0x28, 0x24,
+ 0x25, 0x12, 0x19, 0x47, 0x05, 0xa2, 0x22, 0x0c,
+ 0xd0, 0x22, 0x6e, 0x13, 0x41, 0x6c, 0x80, 0x40,
+ 0x8c, 0x51, 0x16, 0x25, 0xe1, 0x14, 0x42, 0x20,
+ 0x14, 0x0a, 0x91, 0x06, 0x10, 0xda, 0xb4, 0x50,
+ 0x18, 0xa0, 0x65, 0x18, 0x80, 0x71, 0x04, 0xa8,
+ 0x01, 0x4a, 0xc4, 0x40, 0xa3, 0x04, 0x32, 0x1c,
+ 0x15, 0x0d, 0x19, 0xb1, 0x21, 0xd3, 0x32, 0x4c,
+ 0x80, 0x40, 0x0d, 0x64, 0x24, 0x52, 0x0b, 0xa2,
+ 0x51, 0x21, 0x90, 0x10, 0xc9, 0xb8, 0x69, 0x09,
+ 0xa4, 0x05, 0x82, 0x88, 0x30, 0xa0, 0x92, 0x51,
+ 0x13, 0x11, 0x91, 0x58, 0x44, 0x8a, 0x09, 0x06,
+ 0x00, 0xdc, 0x38, 0x72, 0x44, 0x44, 0x88, 0xc0,
+ 0xa8, 0x0c, 0xe3, 0x46, 0x61, 0x5a, 0xb0, 0x25,
+ 0xc3, 0x10, 0x66, 0xd4, 0x82, 0x69, 0x24, 0x49,
+ 0x92, 0x98, 0xb8, 0x21, 0x00, 0x41, 0x48, 0x88,
+ 0x12, 0x61, 0x4b, 0xc4, 0x85, 0x42, 0x32, 0x4d,
+ 0x11, 0x20, 0x92, 0x00, 0xa5, 0x64, 0xa0, 0x86,
+ 0x45, 0xa1, 0x42, 0x0c, 0x89, 0x90, 0x60, 0x4a,
+ 0x18, 0x10, 0x5a, 0xb4, 0x51, 0x08, 0xc0, 0x71,
+ 0xe4, 0x22, 0x8a, 0x21, 0x00, 0x41, 0x04, 0x37,
+ 0x02, 0xd2, 0xb0, 0x50, 0x98, 0xc4, 0x6d, 0x19,
+ 0x08, 0x69, 0x1b, 0x09, 0x66, 0x61, 0x92, 0x81,
+ 0x0b, 0x91, 0x40, 0x03, 0xc7, 0x51, 0xd8, 0xa8,
+ 0x10, 0x94, 0x08, 0x32, 0x88, 0x80, 0x4d, 0x59,
+ 0xb4, 0x68, 0x94, 0xb0, 0x90, 0x02, 0x09, 0x4d,
+ 0x0a, 0x93, 0x65, 0x9b, 0x46, 0x20, 0x40, 0x90,
+ 0x31, 0x24, 0x48, 0x70, 0x0c, 0xc1, 0x0c, 0x81,
+ 0xc4, 0x2c, 0x98, 0x02, 0x06, 0x5a, 0x02, 0x0e,
+ 0xc9, 0x10, 0x6a, 0x08, 0xc7, 0x29, 0x03, 0x92,
+ 0x65, 0x9a, 0x10, 0x52, 0x94, 0xb0, 0x70, 0x09,
+ 0x10, 0x64, 0x81, 0x02, 0x2e, 0xa4, 0xa6, 0x08,
+ 0x58, 0xa2, 0x40, 0x91, 0x10, 0x20, 0x61, 0x38,
+ 0x85, 0x5b, 0x40, 0x6c, 0x20, 0x20, 0x2c, 0x9b,
+ 0x00, 0x4c, 0x4b, 0xb8, 0x0c, 0x0a, 0x84, 0x4c,
+ 0xe0, 0x98, 0x80, 0x64, 0x24, 0x42, 0x19, 0x07,
+ 0x25, 0xe0, 0x96, 0x30, 0xd2, 0x30, 0x48, 0xa3,
+ 0xc8, 0x80, 0x9b, 0xb4, 0x69, 0x80, 0xb4, 0x31,
+ 0x63, 0x38, 0x20, 0x82, 0x80, 0x69, 0xe0, 0x32,
+ 0x62, 0xd2, 0x86, 0x0d, 0xc1, 0x36, 0x2e, 0xd0,
+ 0xc2, 0x49, 0x18, 0x88, 0x69, 0xcc, 0x44, 0x48,
+ 0xa3, 0x36, 0x6d, 0xe0, 0xc0, 0x04, 0xa2, 0xb2,
+ 0x84, 0x63, 0xc4, 0x65, 0x42, 0x16, 0x28, 0xd3,
+ 0xb4, 0x01, 0x1a, 0x48, 0x32, 0x81, 0x06, 0x68,
+ 0x40, 0x04, 0x46, 0x5a, 0xa4, 0x91, 0x10, 0x02,
+ 0x8a, 0xc3, 0x90, 0x40, 0x1c, 0x23, 0x0a, 0xa4,
+ 0x80, 0x04, 0xe3, 0x12, 0x2d, 0x12, 0xc8, 0x8c,
+ 0x48, 0x80, 0x85, 0x43, 0x08, 0x71, 0x1a, 0x97,
+ 0x30, 0x02, 0x48, 0x60, 0x1b, 0xc4, 0x10, 0x93,
+ 0x16, 0x25, 0x63, 0x96, 0x60, 0x44, 0xc6, 0x91,
+ 0x02, 0x25, 0x21, 0x84, 0x34, 0x8a, 0x13, 0x21,
+ 0x08, 0xcb, 0xa4, 0x61, 0x84, 0x80, 0x88, 0xa4,
+ 0xc6, 0x69, 0x91, 0x94, 0x24, 0x13, 0x83, 0x61,
+ 0xa2, 0x42, 0x29, 0xa4, 0xb2, 0x71, 0xc3, 0xa6,
+ 0x05, 0xc3, 0xb4, 0x70, 0x61, 0xb8, 0x30, 0x03,
+ 0xb5, 0x85, 0xe1, 0x08, 0x8d, 0x51, 0x02, 0x30,
+ 0x0c, 0x86, 0x85, 0x02, 0x14, 0x60, 0x88, 0x16,
+ 0x8e, 0x8c, 0x24, 0x2e, 0x0c, 0x38, 0x48, 0xd1,
+ 0x80, 0x20, 0x90, 0x16, 0x84, 0x98, 0x14, 0x69,
+ 0x59, 0x30, 0x10, 0xc2, 0x26, 0x0a, 0xc9, 0x02,
+ 0x8c, 0xc4, 0x00, 0x00, 0x40, 0x08, 0x8d, 0x1c,
+ 0x26, 0x21, 0x13, 0x46, 0x0e, 0x8b, 0x42, 0x00,
+ 0x62, 0x34, 0x2a, 0x9b, 0x48, 0x70, 0x24, 0xa0,
+ 0x0c, 0x20, 0x95, 0x60, 0x49, 0x42, 0x0e, 0x98,
+ 0x20, 0x4c, 0x44, 0xb4, 0x20, 0xcb, 0x44, 0x92,
+ 0xc9, 0x00, 0x61, 0xd4, 0x24, 0x0e, 0x18, 0xb4,
+ 0x4d, 0xa3, 0x88, 0x68, 0x9b, 0x10, 0x4c, 0xa1,
+ 0x32, 0x2e, 0xa4, 0x26, 0x21, 0x99, 0x34, 0x4c,
+ 0x23, 0xa9, 0x64, 0xd3, 0x40, 0x44, 0xa3, 0x40,
+ 0x88, 0xd4, 0x02, 0x72, 0x88, 0x24, 0x64, 0x89,
+ 0x80, 0x69, 0x58, 0x10, 0x60, 0x09, 0x82, 0x4c,
+ 0xce, 0xcf, 0x93, 0xe3, 0x9d, 0x2d, 0xdd, 0xd9,
+ 0x57, 0x7f, 0xfe, 0xed, 0x18, 0x14, 0x8f, 0xf2,
+ 0x0b, 0xc3, 0x0a, 0x93, 0xa2, 0x65, 0x76, 0x3e,
+ 0xa4, 0x15, 0x9c, 0x0f, 0xd7, 0x85, 0x2b, 0xc4,
+ 0xa3, 0x96, 0xcf, 0x07, 0xe5, 0x55, 0x84, 0xb7,
+ 0x6f, 0xac, 0xbb, 0xf9, 0x87, 0x9e, 0x67, 0x50,
+ 0xce, 0x58, 0xbc, 0xcb, 0x83, 0x9b, 0xb8, 0x15,
+ 0x1b, 0x99, 0x45, 0x97, 0x55, 0x1e, 0x39, 0xee,
+ 0xbf, 0x38, 0x32, 0xef, 0xae, 0x4d, 0x52, 0x42,
+ 0xdf, 0x66, 0xc8, 0x52, 0x6e, 0x13, 0x8c, 0x9b,
+ 0x65, 0x54, 0xb0, 0x7e, 0xc0, 0xb5, 0x10, 0x27,
+ 0x60, 0xe8, 0x27, 0x9b, 0x5f, 0xd0, 0xe9, 0xb5,
+ 0x63, 0x8c, 0xbc, 0xbe, 0x47, 0xe4, 0x56, 0x6c,
+ 0x68, 0x82, 0xfd, 0x9e, 0x9b, 0xdc, 0xbb, 0xcf,
+ 0x7a, 0x30, 0xc6, 0x5e, 0x82, 0xeb, 0xb8, 0x8e,
+ 0x68, 0xa3, 0xb5, 0xfb, 0x26, 0xa8, 0x0a, 0x0c,
+ 0x4d, 0x35, 0xcf, 0xd6, 0x85, 0xc9, 0x4d, 0xea,
+ 0xf1, 0x4b, 0xfa, 0x4a, 0x1d, 0x4c, 0x6c, 0xca,
+ 0x92, 0xc4, 0xf5, 0x88, 0x5c, 0x4e, 0x43, 0xd0,
+ 0x69, 0x51, 0x24, 0xa8, 0x17, 0xed, 0x50, 0xd8,
+ 0x82, 0x45, 0x0f, 0x05, 0x50, 0xa1, 0xb7, 0x13,
+ 0xe3, 0x82, 0x31, 0x08, 0xe1, 0xbc, 0x0c, 0x6b,
+ 0xc2, 0xd6, 0xd1, 0xad, 0xae, 0x49, 0xb3, 0x93,
+ 0x7a, 0xb8, 0x98, 0x9d, 0x65, 0x2a, 0xbb, 0xde,
+ 0x75, 0xf7, 0x75, 0x85, 0x25, 0xcf, 0x1f, 0xcb,
+ 0xec, 0x28, 0x1b, 0x47, 0xce, 0x77, 0x5d, 0xab,
+ 0x5e, 0x48, 0x84, 0xf3, 0x49, 0x82, 0x2f, 0x16,
+ 0x8a, 0x1b, 0xb3, 0x0c, 0x26, 0xf8, 0xd6, 0xcf,
+ 0x92, 0x92, 0x79, 0x38, 0x8e, 0xf5, 0xf4, 0xb0,
+ 0x6f, 0x70, 0x3a, 0x20, 0x8c, 0x90, 0x4b, 0xff,
+ 0xa1, 0xc3, 0xab, 0x43, 0x8d, 0x3f, 0x46, 0x5f,
+ 0xf8, 0x1d, 0xe0, 0x94, 0x96, 0xbf, 0x37, 0x68,
+ 0x8a, 0x03, 0xf6, 0x1c, 0xa6, 0xe0, 0x02, 0xf6,
+ 0x83, 0x99, 0xb5, 0x26, 0x8c, 0x40, 0x9f, 0xbc,
+ 0xf7, 0x62, 0xdc, 0xfe, 0x2f, 0x9b, 0x99, 0x01,
+ 0x0b, 0xbf, 0x36, 0x8d, 0x39, 0x7a, 0x96, 0x86,
+ 0x5e, 0x9d, 0x2d, 0x00, 0x33, 0x07, 0x38, 0x67,
+ 0x7f, 0x65, 0x9e, 0xa6, 0x76, 0x92, 0xa0, 0xb4,
+ 0x9c, 0x44, 0xba, 0xf5, 0xf2, 0xe2, 0x9c, 0x7c,
+ 0x83, 0x22, 0xab, 0x74, 0x4a, 0x11, 0x07, 0xcf,
+ 0xb8, 0x13, 0xf1, 0x42, 0x08, 0x6e, 0x7f, 0xce,
+ 0x3b, 0x83, 0xff, 0xe4, 0x90, 0xa4, 0x30, 0x55,
+ 0x63, 0x8c, 0xa6, 0x19, 0x47, 0x97, 0xc2, 0x6a,
+ 0xe5, 0xe7, 0x7b, 0xf8, 0xba, 0x32, 0x87, 0x3c,
+ 0xe0, 0xfb, 0x35, 0x0f, 0x00, 0xf7, 0x93, 0xe2,
+ 0x3e, 0x1e, 0xb5, 0x3a, 0xa0, 0x43, 0x60, 0x6f,
+ 0x87, 0x43, 0xe9, 0x74, 0xe3, 0x73, 0xb0, 0x2b,
+ 0x6a, 0x10, 0xab, 0x19, 0xa0, 0x72, 0x9f, 0xb4,
+ 0x79, 0x7d, 0x71, 0x67, 0x0b, 0x7b, 0x0a, 0xaa,
+ 0x6b, 0xb4, 0x31, 0xf2, 0x10, 0xbd, 0x19, 0xdf,
+ 0xe1, 0x31, 0x70, 0x92, 0x4e, 0x48, 0x56, 0x73,
+ 0x94, 0x6b, 0xb4, 0x80, 0xdf, 0x90, 0xc6, 0x05,
+ 0x59, 0x7f, 0x63, 0xef, 0xa7, 0x80, 0x79, 0xcb,
+ 0xa4, 0x2e, 0xf3, 0x77, 0x9a, 0x0a, 0xe8, 0x5c,
+ 0x48, 0x33, 0xae, 0x9d, 0x24, 0xeb, 0x79, 0xb1,
+ 0xcc, 0x0b, 0x79, 0xc2, 0xae, 0xa2, 0x5c, 0x93,
+ 0xeb, 0xa9, 0x6a, 0xe1, 0xb0, 0xff, 0xed, 0xfc,
+ 0x24, 0xa3, 0xdc, 0x58, 0x67, 0x0b, 0xed, 0x81,
+ 0xcb, 0xd2, 0x5c, 0xc9, 0xbf, 0xc6, 0x4d, 0x2c,
+ 0x1e, 0x61, 0x41, 0x78, 0x0e, 0x7e, 0x2b, 0x17,
+ 0x6e, 0xcc, 0x4c, 0xcf, 0xde, 0x1a, 0x29, 0xf1,
+ 0x28, 0xa3, 0xa4, 0x2f, 0x94, 0xe0, 0xc8, 0x6f,
+ 0x9a, 0x4e, 0x9e, 0x9b, 0x11, 0x1b, 0xe8, 0x30,
+ 0xb3, 0xe6, 0x62, 0xd2, 0xac, 0xa0, 0x0f, 0x45,
+ 0x37, 0xc4, 0x67, 0xd0, 0x5f, 0x6a, 0x8c, 0x7c,
+ 0x61, 0x34, 0x7c, 0xe0, 0xaa, 0x1f, 0x15, 0x89,
+ 0xca, 0x71, 0x6c, 0xec, 0xc7, 0x47, 0x44, 0x9d,
+ 0xfe, 0xc6, 0x7a, 0x37, 0xc7, 0x2e, 0x58, 0xf2,
+ 0xa6, 0xc8, 0x8f, 0x35, 0x11, 0x75, 0xe1, 0x6c,
+ 0x25, 0xfc, 0x3e, 0xf3, 0xab, 0x99, 0x41, 0x8a,
+ 0x62, 0x1d, 0xc1, 0x3d, 0xc1, 0x1c, 0x75, 0x9a,
+ 0xf4, 0xc4, 0x05, 0x4f, 0xd7, 0x42, 0xbf, 0xe0,
+ 0xbf, 0x2a, 0xb9, 0x9e, 0xea, 0x00, 0xc0, 0xae,
+ 0x61, 0xf2, 0x45, 0xb2, 0x19, 0xae, 0x86, 0x0c,
+ 0x43, 0x30, 0xb1, 0x3b, 0xe5, 0xf4, 0xe8, 0xfe,
+ 0x0a, 0x4a, 0x4b, 0xac, 0x5d, 0x6e, 0xbb, 0x6d,
+ 0x4c, 0xa5, 0xe1, 0xd2, 0xca, 0xa7, 0x57, 0xa2,
+ 0xb9, 0x9f, 0x03, 0x86, 0x80, 0x33, 0x66, 0x09,
+ 0x6b, 0x44, 0xde, 0x9c, 0x49, 0xf2, 0x50, 0xa9,
+ 0x68, 0x19, 0x95, 0x60, 0x16, 0x8f, 0x70, 0xfa,
+ 0x87, 0x1e, 0x33, 0x58, 0x40, 0x69, 0xfe, 0x57,
+ 0x0b, 0xb1, 0x86, 0x87, 0x42, 0x1a, 0x45, 0x45,
+ 0x84, 0x35, 0xd5, 0xea, 0xf3, 0xab, 0xe8, 0x7e,
+ 0x85, 0x21, 0xf4, 0xe6, 0xb9, 0xd7, 0x26, 0xbd,
+ 0xdf, 0xd4, 0xff, 0xc9, 0x66, 0x5c, 0x99, 0x6d,
+ 0xab, 0x56, 0x34, 0x8a, 0xa2, 0x6a, 0x2e, 0x50,
+ 0xfb, 0x45, 0x8d, 0xc9, 0xbb, 0xc2, 0x18, 0xc6,
+ 0x5b, 0x3a, 0xaa, 0xbc, 0x2f, 0x59, 0x0f, 0x0a,
+ 0x91, 0x85, 0x69, 0x08, 0x4b, 0x0f, 0xc6, 0xd3,
+ 0xdf, 0x10, 0xcc, 0x2b, 0xa8, 0x06, 0xeb, 0x8a,
+ 0xfb, 0x16, 0x97, 0xd5, 0xe9, 0x8d, 0xd6, 0x79,
+ 0x30, 0xf8, 0x95, 0xa7, 0x4c, 0x0d, 0x42, 0x7c,
+ 0x68, 0xda, 0xe8, 0x7e, 0x3b, 0x41, 0x86, 0x38,
+ 0x76, 0x4e, 0x12, 0x05, 0x0e, 0x22, 0x89, 0xe1,
+ 0xd3, 0x9e, 0x36, 0x30, 0xda, 0xbc, 0x83, 0xe9,
+ 0xdf, 0x1c, 0x78, 0x29, 0x09, 0x9a, 0xef, 0x49,
+ 0x86, 0x37, 0xc6, 0xb2, 0x82, 0x24, 0xb0, 0x2c,
+ 0xac, 0xc8, 0xd7, 0x61, 0x7c, 0x44, 0xca, 0xeb,
+ 0x6d, 0x4c, 0x7c, 0xdc, 0xe8, 0x6a, 0x25, 0x26,
+ 0xa4, 0x69, 0xc1, 0xd6, 0x8b, 0x99, 0xc5, 0x4f,
+ 0xbd, 0x45, 0x27, 0x33, 0x17, 0x68, 0x0e, 0x0c,
+ 0xc6, 0x8e, 0xa7, 0x44, 0xac, 0x48, 0x33, 0xb9,
+ 0x4f, 0x41, 0xac, 0xcd, 0x2e, 0x92, 0x60, 0xe1,
+ 0x98, 0x18, 0x06, 0x8f, 0x99, 0xd4, 0x99, 0xfd,
+ 0xe6, 0xb1, 0x31, 0x4b, 0x81, 0x30, 0xfb, 0x34,
+ 0x22, 0xd6, 0x45, 0xf0, 0x8d, 0xd1, 0x7b, 0x45,
+ 0xb7, 0xc3, 0xa4, 0x24, 0x35, 0x6d, 0x1f, 0x04,
+ 0xa0, 0x86, 0xb6, 0x1f, 0xfc, 0xaf, 0xca, 0x7a,
+ 0xda, 0x81, 0xdd, 0x7c, 0x96, 0xc1, 0xcb, 0xf4,
+ 0x3a, 0x13, 0x23, 0x08, 0x28, 0x2d, 0x4f, 0x87,
+ 0x00, 0x52, 0x88, 0xf0, 0xf1, 0x09, 0xbf, 0xa0,
+ 0x79, 0xcb, 0x8e, 0x69, 0x3d, 0xf9, 0xd2, 0xfc,
+ 0x38, 0x8c, 0x52, 0x04, 0x7e, 0xe9, 0xd1, 0x9e,
+ 0x89, 0x31, 0x09, 0x38, 0x5e, 0x73, 0xbc, 0xa5,
+ 0x6b, 0x8b, 0x4b, 0x4e, 0xcb, 0xce, 0x4a, 0xcd,
+ 0x9b, 0x42, 0x6d, 0xa4, 0x62, 0xb1, 0x60, 0x2d,
+ 0xab, 0x14, 0x0c, 0x7b, 0xbb, 0xa4, 0xc7, 0xf7,
+ 0x05, 0x97, 0x1c, 0xbb, 0xe1, 0xf2, 0x28, 0x16,
+ 0x9a, 0xa0, 0xec, 0x5e, 0xa9, 0x65, 0xb5, 0x1e,
+ 0xf2, 0xb9, 0xb4, 0xbb, 0x6f, 0x6d, 0x3a, 0x7e,
+ 0x71, 0x1f, 0xae, 0x1f, 0x34, 0xc0, 0xf7, 0xb3,
+ 0xc9, 0x3c, 0x3c, 0x12, 0xb3, 0xba, 0xfb, 0x40,
+ 0x79, 0xdb, 0xbd, 0x52, 0x5c, 0xb4, 0x42, 0xad,
+ 0xba, 0xb4, 0xa9, 0x0a, 0x24, 0x02, 0x85, 0x6c,
+ 0x24, 0xee, 0x46, 0xb7, 0xd4, 0x49, 0xe3, 0x8a,
+ 0x71, 0x3f, 0xfb, 0xa8, 0x46, 0x54, 0x01, 0xc0,
+ 0x59, 0xe5, 0xa0, 0xc2, 0x62, 0xd4, 0xae, 0x9f,
+ 0xf8, 0xf1, 0x0f, 0x52, 0xa1, 0x87, 0xdc, 0xa3,
+ 0x48, 0x20, 0x36, 0x85, 0xb2, 0xcd, 0x28, 0xf4,
+ 0x72, 0x1c, 0x9d, 0xe3, 0x59, 0x71, 0x08, 0x37,
+ 0xd5, 0xd4, 0xc9, 0xb5, 0x7a, 0x34, 0x1d, 0xe5,
+ 0xaa, 0xa7, 0x50, 0x54, 0xba, 0x60, 0x05, 0xad,
+ 0x73, 0x84, 0x48, 0xad, 0x2c, 0xdb, 0x09, 0xa4,
+ 0xfb, 0xe5, 0x12, 0x05, 0x30, 0x2d, 0xe7, 0xab,
+ 0x89, 0x34, 0x2d, 0x58, 0xa6, 0xb4, 0xe9, 0xe1,
+ 0xe9, 0x0d, 0xac, 0x92, 0x52, 0xb3, 0xc3, 0xcf,
+ 0x8b, 0x78, 0x51, 0x25, 0x2b, 0x74, 0xed, 0xaf,
+ 0xd2, 0x19, 0x98, 0xfa, 0x15, 0x0d, 0x28, 0xd3,
+ 0xc0, 0xab, 0x8b, 0x37, 0xbc, 0xf4, 0x44, 0x7c,
+ 0xed, 0xa7, 0xb0, 0x94, 0xc0, 0x55, 0x45, 0x3d,
+ 0xac, 0x9c, 0x37, 0x26, 0xeb, 0xb9, 0x40, 0xa8,
+ 0x3a, 0x74, 0x22, 0xba, 0x69, 0xc3, 0xc0, 0x3b,
+ 0xa5, 0xbd, 0x84, 0x6d, 0x57, 0x76, 0x3a, 0x21,
+ 0x50, 0x4e, 0x8e, 0xd4, 0xdc, 0x2f, 0x55, 0x79,
+ 0xfa, 0x45, 0xa3, 0x5f, 0xa0, 0x1e, 0x07, 0x2b,
+ 0x2c, 0x15, 0xff, 0x9e, 0x9c, 0xd7, 0x0c, 0x3d,
+ 0x9e, 0x22, 0x00, 0x0c, 0x90, 0x32, 0x92, 0xaa,
+ 0x9e, 0xa3, 0xf8, 0x66, 0x65, 0xf6, 0x40, 0x15,
+ 0x06, 0xc0, 0x33, 0x18, 0x85, 0x43, 0xe1, 0xa7,
+ 0x1f, 0xa8, 0x94, 0xac, 0xc3, 0x65, 0x96, 0xda,
+ 0x1b, 0x1e, 0x26, 0xfa, 0x22, 0x7b, 0x46, 0x66,
+ 0xdc, 0xca, 0x3d, 0x47, 0x7a, 0x46, 0x95, 0xab,
+ 0xb5, 0xcf, 0xe6, 0x71, 0x2b, 0x02, 0xbe, 0xc8,
+ 0x39, 0x50, 0xd5, 0xb0, 0x02, 0x75, 0xb4, 0x00,
+ 0x43, 0xf3, 0x85, 0xdf, 0xa9, 0x9c, 0xd2, 0xe7,
+ 0x93, 0xc1, 0xc9, 0x15, 0x79, 0xe1, 0x8c, 0x47,
+ 0x7e, 0xa4, 0xfc, 0x64, 0x78, 0xf5, 0x86, 0x7d,
+ 0x65, 0xb9, 0xf4, 0x8d, 0x57, 0x5e, 0x4e, 0xb4,
+ 0x9d, 0xfa, 0x25, 0xaa, 0xab, 0x39, 0xf8, 0x47,
+ 0x5d, 0x48, 0x62, 0x5d, 0x05, 0xb3, 0x4f, 0x7f,
+ 0x87, 0x62, 0x84, 0x68, 0x12, 0xe9, 0xd3, 0xd9,
+ 0x19, 0x07, 0xcc, 0xca, 0xa7, 0xce, 0x85, 0x05,
+ 0x21, 0x95, 0x21, 0x90, 0x58, 0xf7, 0xdf, 0x5e,
+ 0x52, 0xfd, 0xbb, 0x6f, 0xac, 0x7f, 0x48, 0x67,
+ 0x81, 0xe0, 0xe0, 0x9b, 0x41, 0xa9, 0x1f, 0xf0,
+ 0xb0, 0x13, 0x38, 0xcf, 0xd2, 0x96, 0xa8, 0x3d,
+ 0x42, 0xf7, 0xfa, 0x41, 0x28, 0xf1, 0x4e, 0x77,
+ 0x11, 0x08, 0xe7, 0x3d, 0xff, 0xb3, 0xfc, 0xcd,
+ 0x80, 0xc2, 0x36, 0x79, 0x55, 0x57, 0x91, 0x02,
+ 0xe8, 0x4d, 0xfc, 0xf8, 0xdb, 0xe6, 0xfb, 0xaf,
+ 0x29, 0xc0, 0xa1, 0x9f, 0x5f, 0x6a, 0xbe, 0x24,
+ 0x41, 0x35, 0x2b, 0xc2, 0xfb, 0x7d, 0x05, 0x2f,
+ 0x4e, 0x1b, 0x28, 0xf6, 0xc4, 0x3c, 0x34, 0x98,
+ 0xa7, 0x55, 0xf7, 0xac, 0xbd, 0xad, 0xd4, 0x06,
+ 0x42, 0x56, 0x87, 0x79, 0x57, 0xa1, 0x86, 0xce,
+ 0x41, 0xed, 0x3a, 0x5e, 0x9d, 0xac, 0xbd, 0x63,
+ 0x1b, 0x26, 0x86, 0x82, 0x6e, 0x3f, 0x9b, 0x1f,
+ 0x41, 0xb3, 0x77, 0x0a, 0xc5, 0xdc, 0xa9, 0x71,
+ 0x85, 0xce, 0x2a, 0x40, 0x6d, 0x20, 0x0e, 0xf2,
+ 0xd1, 0x40, 0x60, 0xc1, 0xab, 0x5e, 0x01, 0xb8,
+ 0xa4, 0xcd, 0xd6, 0xbd, 0xcd, 0x61, 0xa2, 0xe3,
+ 0x92, 0x4c, 0x89, 0x3f, 0x68, 0x65, 0x28, 0x43,
+ 0x85, 0xce, 0x32, 0x86, 0xfa, 0x71, 0xea, 0xe9,
+ 0xe8, 0x68, 0x6d, 0xd2, 0xd1, 0x1a, 0xf2, 0x70,
+ 0xca, 0x52, 0xb3, 0x2c, 0xa4, 0xff, 0xd5, 0xa9,
+ 0x0c, 0xe3, 0x49, 0x4a, 0xcc, 0x17, 0x34, 0xcc,
+ 0x2c, 0xd6, 0x6f, 0x3e, 0x02, 0xe2, 0x84, 0x52,
+ 0x0b, 0x43, 0xfb, 0xf6, 0x1a, 0x58, 0x71, 0x51,
+ 0x5b, 0x50, 0x1a, 0x0b, 0x9a, 0x8f, 0xbc, 0x02,
+ 0xe5, 0xa3, 0x57, 0xcd, 0xbe, 0x1c, 0x6f, 0xf1,
+ 0x54, 0x7d, 0x06, 0xad, 0xc8, 0xc9, 0x01, 0x1a,
+ 0x94, 0x3f, 0xb5, 0xa1, 0x10, 0xf0, 0x94, 0x19,
+ 0x18, 0x91, 0x01, 0x2e, 0x6f, 0x6b, 0x7a, 0x97,
+ 0xbb, 0xe6, 0xf8, 0x21, 0xa8, 0x57, 0x25, 0x90,
+ 0x00, 0x25, 0xf7, 0x2b, 0x20, 0x1a, 0x03, 0x8a,
+ 0x3c, 0x29, 0x42, 0xa8, 0x8f, 0x68, 0x08, 0x19,
+ 0x42, 0x3d, 0x99, 0x87, 0x59, 0xfb, 0x00, 0xc4,
+ 0xff, 0x3b, 0xa0, 0xf8, 0x32, 0x33, 0xf5, 0xe6,
+ 0x44, 0xd6, 0xd0, 0x5a, 0xf5, 0xf3, 0xe2, 0x70,
+ 0x3a, 0x39, 0x44, 0xc1, 0x32, 0xb3, 0x62, 0xdf,
+ 0x3c, 0xc4, 0x04, 0xd4, 0x7e, 0x15, 0x09, 0x5f,
+ 0x88, 0xa1, 0xfd, 0x58, 0x03, 0x51, 0x91, 0x24,
+ 0x29, 0x47, 0x03, 0xc8, 0xb2, 0xc0, 0xba, 0x53,
+ 0x41, 0x1f, 0x52, 0x37, 0x4c, 0xe2, 0x23, 0xf5,
+ 0xe4, 0x6d, 0xe2, 0x05, 0xd0, 0xbf, 0xe3, 0x44,
+ 0xd4, 0xc6, 0x5a, 0x6d, 0x73, 0xa3, 0x27, 0x27,
+ 0xc9, 0xa9, 0xb2, 0x57, 0xf8, 0xae, 0x4b, 0x1b,
+ 0x37, 0xb0, 0x5d, 0xbb, 0x01, 0xb8, 0x81, 0x12,
+ 0x1d, 0x0c, 0x93, 0x9b, 0x58, 0x87, 0x43, 0xf6,
+ 0x6a, 0x82, 0x0e, 0x0c, 0xb7, 0x49, 0xfb, 0x1b,
+ 0x37, 0xb6, 0xee, 0x2a, 0xae, 0x0b, 0xed, 0xf7,
+ 0x51, 0x8b, 0x10, 0x5d, 0x40, 0x40, 0x22, 0xc6,
+ 0x9e, 0xc1, 0x52, 0xf5, 0xf9, 0x24, 0x01, 0x0a,
+ 0x4d, 0x7a, 0xbf, 0xd7, 0x02, 0x9f, 0x68, 0xfb,
+ 0x3a, 0x57, 0xa7, 0xea, 0x62, 0x04, 0x4f, 0xab,
+ 0x41, 0x3a, 0x15, 0x9b, 0xa7, 0x87, 0x97, 0x1d,
+ 0x93, 0xa2, 0x23, 0x5f, 0x11, 0xf5, 0x69, 0x65,
+ 0x15, 0x84, 0xe4, 0xd8, 0x91, 0x24, 0x2d, 0x4c,
+ 0x6d, 0x75, 0x62, 0xe9, 0x9a, 0x70, 0xb5, 0xce,
+ 0x1c, 0xe1, 0x09, 0xaf, 0x84, 0x6f, 0x42, 0xae,
+ 0xb2, 0x7f, 0x22, 0x3f, 0x89, 0xee, 0x8d, 0xfa,
+ 0x19, 0xac, 0xea, 0xd2, 0x7d, 0x9f, 0xe2, 0xa2,
+ 0xf3, 0x3c, 0xff, 0x29, 0xb7, 0xbf, 0xb3, 0x0d,
+ 0xb6, 0x6c, 0xc2, 0xe8, 0x30, 0x75, 0x35, 0x0d,
+ 0x3c, 0x80, 0xa3, 0xcb, 0xa9, 0x22, 0xda, 0x58,
+ 0x43, 0x16, 0x8a, 0x30, 0x8d, 0x52, 0x79, 0x2d,
+ 0x31, 0x6a, 0x8b, 0x62, 0xf7, 0x42, 0x19, 0xcf,
+ 0xad, 0x15, 0x0a, 0x24, 0x18, 0xe4, 0x43, 0x83,
+ 0x1b, 0x24, 0x05, 0x85, 0x22, 0x9f, 0x75, 0xd9,
+ 0xf7, 0x78, 0xe7, 0x4e, 0x8e, 0xfa, 0x2e, 0x72,
+ 0xa2, 0x9a, 0xb4, 0x12, 0x14, 0x8d, 0xcf, 0x35,
+ 0x99, 0x59, 0xb4, 0x23, 0x3d, 0xbc, 0x70, 0x21,
+ 0xb5, 0x0a, 0xa2, 0xae, 0x95, 0x60, 0x63, 0xb9,
+ 0xed, 0x23, 0xe4, 0x0f, 0x0d, 0x3e, 0xe2, 0x73,
+ 0x73, 0xb9, 0x52, 0x91, 0x39, 0x88, 0x1f, 0x59,
+ 0x15, 0xad, 0xc2, 0x65, 0x12, 0xae, 0xf9, 0x40,
+ 0x7f, 0x46, 0x75, 0xa9, 0x3a, 0xa7, 0xe3, 0x7f,
+ 0xd0, 0x47, 0xe0, 0x5e, 0x50, 0x1c, 0x87, 0xfe,
+ 0xdc, 0x9d, 0x45, 0x0d, 0x6a, 0xb1, 0x98, 0xd1,
+ 0x20, 0xa6, 0xbc, 0x56, 0xbe, 0x34, 0xbd, 0xe2,
+ 0x25, 0xbd, 0xdf, 0x4e, 0xb7, 0x8e, 0x03, 0xb6,
+ 0x58, 0x2c, 0x95, 0x7b, 0x25, 0xfb, 0xeb, 0x7d,
+ 0x31, 0xf0, 0x20, 0xb7, 0xcf, 0x53, 0x27, 0x37,
+ 0x8a, 0xd8, 0x06, 0x44, 0x38, 0xe9, 0xaf, 0x9b,
+ 0xe8, 0x65, 0x9b, 0x8d, 0xa4, 0xb6, 0x37, 0x1e,
+ 0x24, 0xef, 0xae, 0x4b, 0xc5, 0xb1, 0x6d, 0x7f,
+ 0xda, 0x9c, 0x61, 0xac, 0x69, 0xea, 0x8e, 0x1b,
+ 0x92, 0xf7, 0x6f, 0x02, 0x5f, 0x26, 0x80, 0x90,
+ 0x60, 0x93, 0xbf, 0xaa, 0x21, 0xec, 0x5a, 0x4b,
+ 0xec, 0xec, 0x16, 0x46, 0x9e, 0xa3, 0xf4, 0x72,
+ 0x62, 0x34, 0x03, 0x99, 0xaf, 0x68, 0xc0, 0x60,
+ 0x82, 0x1f, 0x07, 0x7b, 0xbb, 0x7d, 0x73, 0x6e,
+ 0x8f, 0x68, 0x17, 0xd2, 0x58, 0xac, 0x33, 0x87,
+ 0x2a, 0x41, 0x6a, 0x64, 0x3e, 0x83, 0x10, 0x60,
+ 0xf0, 0x08, 0x21, 0x65, 0xa2, 0x60, 0x2b, 0x8d,
+ 0xdc, 0x03, 0x64, 0x24, 0xee, 0x66, 0xc5, 0x3e,
+ 0x35, 0xb7, 0x7f, 0x6b, 0xce, 0x63, 0x10, 0x04,
+ 0x12, 0xf5, 0x38, 0xb4, 0xef, 0xa7, 0x72, 0x75,
+ 0x22, 0x6a, 0x98, 0xf8, 0xfe, 0xda, 0x0c, 0x5e,
+ 0x40, 0x41, 0x63, 0x57, 0x43, 0x6c, 0x88, 0x35,
+ 0x86, 0x4c, 0xc6, 0x0b, 0xb1, 0x07, 0xd1, 0xb3,
+ 0x96, 0x88, 0x76, 0x44, 0xcf, 0x69, 0x24, 0xb1,
+ 0x8b, 0xd5, 0xa4, 0x9c, 0xf8, 0xf5, 0x47, 0x6b,
+ 0x61, 0x23, 0xde, 0xfc, 0xba, 0xef, 0x4c, 0x7f,
+ 0x86, 0x3d, 0x6a, 0x9b, 0x13, 0xf4, 0x87, 0xe2,
+ 0x2b, 0xbc, 0x41, 0x32, 0x64, 0x0e, 0x7b, 0x8f,
+ 0x3c, 0xeb, 0x17, 0x42, 0xdd, 0x4d, 0x9d, 0x53,
+ 0x4d, 0xb8, 0x21, 0x41, 0x86, 0x36, 0x58, 0x1f,
+ 0x99, 0x3f, 0x33, 0xef, 0x33, 0x96, 0x76, 0x39,
+ 0x89, 0x45, 0x1e, 0x70, 0x0f, 0x4e, 0xf0, 0xf9,
+ 0x82, 0x88, 0xbe, 0x95, 0x10, 0xef, 0x0b, 0xb0,
+ 0xf3, 0xe8, 0xdf, 0xa1, 0xcd, 0x66, 0x24, 0x84,
+ 0x96, 0xe5, 0x24, 0xdb, 0x23, 0x2d, 0x5e, 0x53,
+ 0xa4, 0x89, 0x7e, 0x16, 0x54, 0x66, 0xa0, 0xdb,
+ 0xab, 0x84, 0x4a, 0xa3, 0x56, 0xdd, 0x2d, 0x6e,
+ 0xc6, 0x36, 0xe3, 0xb9, 0x50, 0x7f, 0xf3, 0xab,
+ 0xc2, 0xa2, 0x3c, 0x0b, 0xca, 0x54, 0xc4, 0x70,
+ 0xa7, 0xc2, 0x36, 0x4e, 0x40, 0x2f, 0x4b, 0x13,
+ 0x45, 0x31, 0x13, 0x17, 0x44, 0x93, 0x34, 0x47,
+ 0x6c, 0x68, 0xa8, 0xa4, 0x32, 0x29, 0x0e, 0x7a,
+ 0x81, 0xa5, 0x60, 0xf6, 0x90, 0x6a, 0x09, 0x66,
+ 0xd6, 0xc7, 0x19, 0xf2, 0x6d, 0x30, 0x48, 0xb4,
+ 0xf3, 0x1c, 0x4e, 0xd3, 0xd0, 0xd1, 0xef, 0xea,
+ 0x9f, 0xdc, 0x7f, 0x34, 0x33, 0x58, 0xa4, 0x75,
+ 0x9f, 0x69, 0xd6, 0x5b, 0xba, 0xf3, 0xd3, 0x74,
+ 0x22, 0xdf, 0xb1, 0x46, 0x5e, 0xde, 0x86, 0xbe,
+ 0x80, 0xe3, 0x15, 0x99, 0x2e, 0x56, 0xe5, 0xf5,
+ 0x43, 0x4c, 0xb2, 0xd5, 0x42, 0x80, 0x75, 0xd1,
+ 0xbc, 0xb7, 0x68, 0x31, 0xb4, 0xcd, 0xb9, 0x05,
+ 0x40, 0xb9, 0x41, 0xcb, 0x6b, 0x65, 0x6f, 0xcb,
+ 0x60, 0x35, 0x21, 0x89, 0x03, 0x25, 0xf7, 0xb5,
+ 0xa4, 0xe7, 0x08, 0xbd, 0x04, 0x2f, 0xa2, 0xf3,
+ 0x67, 0xe2, 0x40, 0xc4, 0x8e, 0xe2, 0xa3, 0x13,
+ 0xfa, 0xe4, 0xa1, 0x5e, 0x16, 0x3b, 0x64, 0x81,
+ 0x92, 0xe1, 0x43, 0x80, 0x51, 0x01, 0x26, 0x0c,
+ 0xd3, 0x28, 0x5a, 0xc1, 0x69, 0x64, 0xf6, 0xb3,
+ 0x4e, 0xb7, 0x03, 0xea, 0xd5, 0x81, 0xb9, 0xca,
+ 0x67, 0x04, 0xcc, 0xa3, 0x87, 0x76, 0x22, 0x68,
+ 0xea, 0xa7, 0xfc, 0xf6, 0x9f, 0x05, 0xbe, 0xd8,
+ 0xf6, 0xe4, 0x67, 0x3c, 0xe7, 0xf1, 0xed, 0x4b,
+ 0xbe, 0xcc, 0x92, 0x3b, 0xd7, 0x68, 0x90, 0x6a,
+ 0x31, 0xb1, 0x6a, 0x06, 0x36, 0xb2, 0xe0, 0x13,
+ 0x7f, 0xb1, 0xdc, 0x32, 0xbb, 0x98, 0x6e, 0xc7,
+ 0xda, 0x34, 0xec, 0x76, 0xc9, 0x2e, 0x10, 0xe3,
+ 0xea, 0x73, 0x99, 0x7e, 0xc7, 0x18, 0xab, 0x96,
+ 0x65, 0x43, 0xd8, 0xb6, 0x77, 0xcd, 0x14, 0x07,
+ 0x4f, 0x6f, 0xb6, 0x9d, 0x0a, 0xa0, 0x7c, 0x08,
+ 0x6b, 0xf2, 0xfa, 0xb8, 0xfa, 0xd5, 0x3f, 0x2e,
+ 0x61, 0x0e, 0x40, 0xeb, 0x09, 0x9f, 0xc5, 0xb6,
+ 0xb8, 0x79, 0xdd, 0x1d, 0xa5, 0x15, 0x6c, 0xe7,
+ 0x74, 0x81, 0x55, 0xa4, 0xa9, 0xd5, 0x38, 0xd6,
+ 0x4d, 0x7f, 0xde, 0x94, 0x1b, 0x28, 0x6f, 0x00,
+ 0xdb, 0xdf, 0xf9, 0x68, 0xd4, 0x56, 0xf3, 0x6f,
+ 0x79, 0x8b, 0xac, 0x6a, 0xe5, 0xb4, 0xf9, 0x96,
+ 0x83, 0x95, 0x60, 0x69, 0x20, 0x0f, 0x97, 0xf9,
+ 0x1d, 0x14, 0xea, 0x48, 0xf8, 0x5d, 0x07, 0x92,
+ 0x21, 0xa4, 0xf6, 0x88, 0x86, 0xea, 0xe9, 0x2a,
+ 0x20, 0x8b, 0xcb, 0xb8, 0x6e, 0x38, 0xab, 0x61,
+ 0x23, 0x1d, 0x0e, 0xfa, 0x64, 0x86, 0x1f, 0xe7,
+ 0x2f, 0x68, 0x60, 0xf6, 0x28, 0xe1, 0xe2, 0xb1,
+ 0xec, 0x8c, 0xb6, 0x4c, 0x5b, 0x27, 0x98, 0x02,
+ 0xb1, 0x11, 0x96, 0x26, 0x51, 0x62, 0x51, 0x99,
+ 0x11, 0xde, 0xb9, 0x9e, 0x4c, 0x84, 0x11, 0x66,
+ 0x6a, 0x91, 0xce, 0x02, 0xa6, 0x75, 0x08, 0xeb,
+ 0xdf, 0x73, 0x42, 0x79, 0x00, 0x03, 0xac, 0x59,
+ 0xb4, 0x3c, 0x63, 0x4e, 0x78, 0x2b, 0x12, 0x49,
+ 0x78, 0x69, 0x55, 0x1d, 0x3f, 0x1d, 0x2f, 0x77,
+ 0x52, 0x81, 0x9d, 0x3b, 0x20, 0xa5, 0xe7, 0x47,
+ 0xab, 0xe2, 0x10, 0xd9, 0x8f, 0x16, 0x35, 0xa2,
+ 0xfb, 0x1e, 0xf1, 0x41, 0x33, 0x0e, 0x59, 0xfe,
+ 0xee, 0xd6, 0x34, 0x9e, 0x08, 0xec, 0xb5, 0xab,
+ 0xf9, 0x45, 0xbd, 0x69, 0xc1, 0xc7, 0xfc, 0xe2,
+ 0x0e, 0x89, 0xcc, 0xf3, 0xa9, 0xec, 0xfb, 0x3c,
+ 0xc3, 0x84, 0x95, 0xe3, 0xd7, 0x38, 0x74, 0x73,
+ 0x94, 0x3b, 0xfb, 0x74, 0xbd, 0x3f, 0x86, 0x95,
+ 0xda, 0xee, 0xcc, 0x8b, 0x6e, 0x8d, 0x99, 0x63,
+ 0xa7, 0x71, 0x19, 0x6b, 0xb1, 0x82, 0xf8, 0x0f,
+ 0x74, 0xdb, 0x4f, 0x6d, 0xec, 0x31, 0x6f, 0xfb,
+ 0x8d, 0xb6, 0x0d, 0xce, 0xda, 0x29, 0xa5, 0x1b,
+ 0xad, 0xd4, 0x1f, 0x70, 0xdb, 0x3b, 0x9d, 0x88,
+ 0x5f, 0x5e, 0x29, 0xf6, 0x96, 0x6f, 0x86, 0xe9,
+ 0xd9, 0x13, 0x41, 0x05, 0x08, 0xe7, 0xf8, 0x6d,
+ 0x0f, 0x62, 0xa8, 0x29, 0x03, 0xc1, 0x20, 0xae,
+ 0x3d, 0xc9, 0x3f, 0xd3, 0xe9, 0xe5, 0x0a, 0xf6,
+ 0xc1, 0xc5, 0xcf, 0x20, 0x15, 0xf0, 0xce, 0xc1,
+ 0x82, 0xb9, 0xfb, 0xbd, 0x36, 0x66, 0x67, 0xef,
+ 0x15, 0x39, 0xcb, 0x6b, 0x61, 0x50, 0xe4, 0xf1,
+ 0x70, 0x92, 0x64, 0x86, 0xe4, 0xea, 0xf6, 0xe8,
+ 0xdf, 0x82, 0x65, 0xca, 0x37, 0x34, 0xd6, 0x10,
+ 0xcf, 0x2e, 0xf0, 0x93, 0x1e, 0x16, 0xad, 0x46,
+ 0xf8, 0x1f, 0x62, 0x24, 0x03, 0x98, 0x97, 0xb7,
+ 0xcd, 0xff, 0x5b, 0xa3, 0xed, 0xb3, 0x18, 0x97,
+ 0x40, 0x6c, 0xff, 0x65, 0x7d, 0xea, 0xf6, 0x9a,
+ 0x51, 0xa3, 0x6e, 0x16, 0x65, 0xa1, 0x88, 0xb7,
+ 0x01, 0xf1, 0x59, 0xee, 0x45, 0xce, 0xb2, 0x6c,
+ 0xb3, 0x34, 0x6c, 0x0f, 0xc6, 0x06, 0xc4, 0x7b,
+ 0x0a, 0xe5, 0x8c, 0x19, 0xa8, 0xe6, 0x89, 0x8f,
+ 0x04, 0xb2, 0xfe, 0x5f, 0xd1, 0xcc, 0x4f, 0x63,
+ 0xe9, 0x20, 0x44, 0xa0, 0x06, 0xf5, 0xce, 0x8c,
+ 0x7f, 0x16, 0xa9, 0x1a, 0x58, 0xfc, 0x26, 0x12,
+ 0xc6, 0xd4, 0xaf, 0xcf, 0x35, 0x00, 0x6a, 0x6f,
+ 0x3a, 0xdd, 0xfc, 0xdf, 0xa6, 0x43, 0x68, 0xf2,
+ 0x0f, 0xba, 0x3f, 0x65, 0xbb, 0x75, 0xcf, 0xbf,
+ 0x54, 0xdf, 0x94, 0xc0, 0x15, 0x8e, 0xc6, 0xe8,
+ 0xfc, 0x6e, 0x5e, 0x07, 0x17, 0x35, 0xf4, 0xfd,
+ 0x0a, 0x1e, 0xf7, 0x29, 0x9d, 0x5a, 0xab, 0x14,
+ 0x75, 0x53, 0x95, 0x56, 0x4d, 0x17, 0xa5, 0xac,
+ 0x07, 0x95, 0x20, 0x4a, 0x9a, 0x03, 0xa2, 0x0b,
+ 0x8c, 0xce, 0xc3, 0xf0, 0x4c, 0xe1, 0xb6, 0xc3,
+ 0x50, 0xe8, 0x39, 0x0d, 0x42, 0x69, 0x8f, 0x57,
+ 0x88, 0xe6, 0x2a, 0xb2, 0xd2, 0xbc, 0x26, 0x09,
+ 0x7c, 0xf2, 0x75, 0x82, 0x19, 0xee, 0x4b, 0x26,
+ 0x93, 0xd5, 0x75, 0x5e, 0x7d, 0x31, 0x08, 0xa0,
+ 0x13, 0x14, 0x7f, 0xb1, 0xef, 0x7c, 0x40, 0xcf,
+ 0xb3, 0x20, 0x77, 0x05, 0x9e, 0xb9, 0x0b, 0xf9,
+ 0x69, 0xf9, 0x9f, 0x65, 0x8d, 0xfd, 0x58, 0x89,
+ 0x39, 0x0d, 0xa7, 0x15, 0xfd, 0x74, 0x9b, 0xd6,
+ 0x8b, 0xfc, 0xe4, 0xc9, 0xef, 0x01, 0xc9, 0x52,
+ 0xc1, 0x44, 0xc6, 0xae, 0x64, 0x60, 0xf1, 0x6d,
+ 0x48, 0xa2, 0xee, 0xd6, 0x4c, 0xf5, 0x3a, 0x46,
+ 0x8c, 0x79, 0x59, 0xf0, 0x03, 0x53, 0x8d, 0xf6,
+ 0x28, 0xa5, 0x05, 0x39, 0xfb, 0x61, 0xb7, 0x4f,
+ 0xce, 0x79, 0xe1, 0xfa, 0x3a, 0x96, 0x38, 0x5e,
+ 0xfd, 0x18, 0x48, 0x30, 0x15, 0xb2, 0x49, 0x04,
+ 0xfd, 0x92, 0xb5, 0xc1, 0x78, 0xa8, 0x67, 0x90,
+ 0xd9, 0x1a, 0xb9, 0x64, 0xf3, 0xf6, 0x68, 0xf4,
+ 0x08, 0x7d, 0x00, 0xcc, 0x89, 0xf9, 0x0b, 0xe2,
+ 0xfc, 0x8a, 0x44, 0x85, 0x14, 0xbf, 0x67, 0x23,
+ 0x96, 0x7a, 0x76, 0x7c, 0x7a, 0xb9, 0x0c, 0x27,
+ 0x78, 0xb3, 0x87, 0x2c, 0xff, 0xd1, 0x99, 0xb7,
+ 0xbb, 0xb9, 0xbb, 0xeb, 0x17, 0xac, 0x31, 0x5d,
+ 0x26, 0x16, 0x02, 0x47, 0xb7, 0x5e, 0x47, 0x70,
+ 0x2f, 0x76, 0xc6, 0x96, 0xe7, 0x6a, 0xdb, 0xa5,
+ 0x5c, 0x95, 0x42, 0x8c, 0x65, 0xd6, 0xa9, 0x77,
+ 0xf1, 0xc2, 0x95, 0x57, 0xcb, 0xad, 0xfe, 0x6e,
+ 0x23, 0x26, 0xf5, 0x89, 0x04, 0x28, 0xb3, 0x38,
+ 0xa7, 0x5e, 0xda, 0xaf, 0xb1, 0x10, 0x9d, 0x2b,
+ 0x55, 0x3a, 0x84, 0xde, 0x62, 0x81, 0x90, 0x44,
+ 0x21, 0x8a, 0x25, 0xf9, 0x8d, 0x4e, 0x38, 0x2b,
+ 0xaf, 0xe1, 0x5b, 0x9c, 0x5b, 0x6b, 0x4b, 0x29,
+ 0x1c, 0xfc, 0x9b, 0x8d, 0x6d, 0x63, 0x3a, 0x0e,
+ 0x2b, 0xbc, 0xa9, 0x75, 0x00, 0x2d, 0x3e, 0xa6,
+ 0x65, 0xe3, 0x45, 0xdb, 0xf5, 0xb6, 0x82, 0x8a,
+ 0x77, 0xe0, 0x45, 0x05, 0x97, 0x28, 0xfb, 0xaf,
+ 0xf8, 0x0a, 0x43, 0xf2, 0x45, 0x28, 0xba, 0x06,
+ 0x92, 0x12, 0x43, 0x79, 0x4d, 0x80, 0x8a, 0xcc,
+ 0xea, 0x2b, 0xc5, 0xe9, 0x3a, 0x1c, 0xf8, 0x51,
+ 0xda, 0xd5, 0x10, 0xbc, 0xa7, 0xbc, 0x16, 0xa3,
+ 0x6e, 0x43, 0xde, 0x86, 0xb3, 0x73, 0x6a, 0x01,
+ 0x12, 0x52, 0xcd, 0x31, 0x13, 0xbf, 0x54, 0xfe,
+ 0xca, 0xa0, 0x53, 0x62, 0x3f, 0xce, 0x96, 0x16,
+ 0x77, 0x33, 0xee, 0x24, 0xe8, 0x67, 0xa4, 0xe0,
+ 0x81, 0x02, 0xcb, 0x72, 0xa6, 0x06, 0xda, 0xcc,
+ 0xcb, 0x39, 0x98, 0x10, 0x65, 0x75, 0xbf, 0x93,
+ 0x38, 0x6a, 0x05, 0xc7, 0xe2, 0x66, 0x8d, 0x0b,
+ 0xe1, 0x91, 0xcb, 0xb9, 0xbc, 0x96, 0xc3, 0xdb,
+ },
+ .msg_len = 64,
+ .msg = (const u8[64]){
+ 0xa2, 0xec, 0x18, 0x06, 0x52, 0x37, 0x8a, 0x91,
+ 0x70, 0xea, 0x93, 0x79, 0xad, 0x55, 0x5f, 0x11,
+ 0xe6, 0x4a, 0xc7, 0x80, 0x05, 0x18, 0x36, 0xfd,
+ 0x12, 0xa6, 0x8b, 0x61, 0x5c, 0xf8, 0xea, 0xb0,
+ 0x34, 0x02, 0xc2, 0x5a, 0x1b, 0x22, 0x61, 0x78,
+ 0xb2, 0x97, 0xb8, 0xd5, 0x5a, 0x9b, 0x6d, 0x09,
+ 0xb6, 0xaf, 0x84, 0x0b, 0xb2, 0x51, 0x6e, 0x9f,
+ 0x9e, 0x30, 0xec, 0x80, 0x79, 0xda, 0x14, 0x22,
+ },
+ .sig_len = DILITHIUM87_CRYPTO_BYTES,
+ .sig = (const u8[DILITHIUM87_CRYPTO_BYTES]){
+ 0x48, 0x35, 0xc3, 0x69, 0x56, 0x2d, 0xef, 0xbf,
+ 0xd9, 0x1b, 0x71, 0xce, 0x99, 0x94, 0x1c, 0x02,
+ 0xc6, 0x8c, 0x36, 0xc6, 0x76, 0x91, 0x59, 0xfa,
+ 0xbf, 0x68, 0xf3, 0x68, 0xe4, 0x6c, 0x75, 0x1c,
+ 0x5d, 0x63, 0xbb, 0x33, 0x55, 0x39, 0x83, 0x85,
+ 0xeb, 0x76, 0x5d, 0x84, 0xf5, 0x46, 0x42, 0x89,
+ 0x69, 0xf7, 0x51, 0x5c, 0xf9, 0x83, 0x77, 0xde,
+ 0xbb, 0xfe, 0x08, 0xb2, 0x63, 0x2e, 0x91, 0x6b,
+ 0x76, 0x88, 0x3a, 0xea, 0xcd, 0xd5, 0x70, 0x84,
+ 0x06, 0x5d, 0xab, 0x55, 0x51, 0x75, 0x8e, 0xfa,
+ 0x09, 0xea, 0x73, 0x38, 0xe4, 0xf8, 0xbc, 0x98,
+ 0x26, 0x2f, 0x1f, 0x61, 0x93, 0x86, 0xd8, 0x1d,
+ 0xcf, 0x2d, 0xa5, 0x60, 0x16, 0x91, 0x9a, 0xc2,
+ 0x04, 0xc3, 0x26, 0x56, 0xf2, 0x1d, 0x68, 0x87,
+ 0xaa, 0xdd, 0xf8, 0xff, 0x80, 0xaa, 0x63, 0x1e,
+ 0xa8, 0x6e, 0xed, 0xff, 0xbf, 0x2c, 0x69, 0x35,
+ 0x41, 0x77, 0xa3, 0x5f, 0x1e, 0xb1, 0xb9, 0x2b,
+ 0x60, 0x7e, 0x9d, 0x4e, 0xee, 0x3d, 0x52, 0x88,
+ 0x23, 0x58, 0xf8, 0x35, 0x19, 0x5d, 0x74, 0x7c,
+ 0x84, 0xac, 0x16, 0xa6, 0x77, 0xfd, 0x2c, 0xee,
+ 0x1a, 0xdc, 0x98, 0xe4, 0x05, 0xbb, 0xd3, 0x2c,
+ 0x57, 0xd9, 0x25, 0x6d, 0x0f, 0x7f, 0x7c, 0xd8,
+ 0xa7, 0x16, 0x37, 0xc9, 0x34, 0x12, 0xb0, 0xb3,
+ 0x33, 0x82, 0x26, 0xb7, 0x60, 0xec, 0xbf, 0xde,
+ 0x39, 0xe7, 0x2f, 0x8c, 0x9f, 0x50, 0xce, 0x65,
+ 0x86, 0xd1, 0xe8, 0x5b, 0x35, 0x87, 0x1a, 0xc0,
+ 0x30, 0x34, 0x3c, 0xef, 0x06, 0x07, 0x97, 0x8c,
+ 0x4d, 0x9b, 0x75, 0x15, 0xce, 0x70, 0x87, 0xd3,
+ 0xd0, 0x7f, 0xfd, 0x08, 0xfe, 0x51, 0x23, 0xed,
+ 0x07, 0x6c, 0xc4, 0x44, 0x47, 0x45, 0xf7, 0x15,
+ 0x0c, 0x52, 0xe9, 0xfe, 0x16, 0xbc, 0x0f, 0x7d,
+ 0x2a, 0x96, 0x0f, 0xa2, 0xf8, 0x4d, 0x7f, 0x27,
+ 0x0f, 0x2a, 0xa4, 0xab, 0x73, 0x96, 0x68, 0xe1,
+ 0xe8, 0xdb, 0x6a, 0xa1, 0x0e, 0x64, 0x08, 0x1d,
+ 0x71, 0xb9, 0x79, 0x04, 0x72, 0xe1, 0x7c, 0x29,
+ 0x3d, 0xe4, 0x41, 0xd2, 0x34, 0x15, 0x08, 0x68,
+ 0xdc, 0x7b, 0x79, 0x19, 0xab, 0xb9, 0xcb, 0x0a,
+ 0x6a, 0x56, 0x3c, 0x56, 0xbd, 0xe3, 0x9b, 0xea,
+ 0xc4, 0x09, 0xae, 0xf8, 0x8b, 0xe0, 0x2d, 0xb0,
+ 0xff, 0x3c, 0xd3, 0xc5, 0xe2, 0x5b, 0xf6, 0xfa,
+ 0x5e, 0x58, 0xa6, 0x72, 0xcf, 0xa3, 0xdb, 0x66,
+ 0x2e, 0x21, 0x71, 0x76, 0xfd, 0x68, 0x07, 0xea,
+ 0x21, 0xaf, 0xa0, 0xc5, 0x17, 0x32, 0x6e, 0x10,
+ 0x60, 0xeb, 0x86, 0xe9, 0x02, 0x43, 0x32, 0xcf,
+ 0x81, 0x64, 0x0c, 0xff, 0xcc, 0x92, 0x19, 0xbd,
+ 0x73, 0x99, 0x0e, 0xd3, 0x4b, 0xdd, 0xc6, 0x7b,
+ 0xc5, 0xff, 0xef, 0x04, 0xc0, 0x79, 0x7e, 0x88,
+ 0x17, 0xcf, 0x09, 0x37, 0x5c, 0x87, 0x18, 0xd4,
+ 0xd0, 0x21, 0x68, 0xc0, 0xea, 0x47, 0xec, 0xcf,
+ 0xec, 0xab, 0x98, 0x61, 0x88, 0xec, 0x02, 0x4f,
+ 0x22, 0x8c, 0x77, 0xbb, 0x6e, 0x5b, 0xfc, 0xfc,
+ 0xd0, 0x0d, 0xca, 0x49, 0xda, 0x37, 0x0a, 0x0a,
+ 0xdf, 0x6f, 0xab, 0x75, 0xba, 0xbe, 0x7c, 0x70,
+ 0x09, 0x83, 0x56, 0xcd, 0x12, 0x56, 0x25, 0x31,
+ 0xbd, 0x41, 0x50, 0x93, 0x1f, 0x18, 0x74, 0x48,
+ 0xbd, 0x7c, 0x19, 0x03, 0x0a, 0x06, 0x97, 0x28,
+ 0x51, 0x4f, 0x5b, 0x8e, 0xa6, 0xf6, 0x7f, 0x50,
+ 0x15, 0x69, 0xee, 0x56, 0xa0, 0x97, 0x9d, 0x76,
+ 0x40, 0x5e, 0x7d, 0x10, 0x23, 0xd5, 0xba, 0x0b,
+ 0x2a, 0x9e, 0x8f, 0x57, 0xf8, 0x58, 0x12, 0x0f,
+ 0x0b, 0x4c, 0xee, 0x39, 0x77, 0xec, 0x86, 0xb6,
+ 0x1e, 0xb9, 0x5d, 0x11, 0x9d, 0xac, 0x4d, 0x15,
+ 0xa9, 0x6f, 0x45, 0xbf, 0xb0, 0x56, 0xd2, 0xc0,
+ 0xc8, 0x63, 0xf2, 0x53, 0x90, 0xf3, 0x68, 0x88,
+ 0xc8, 0xc9, 0xdd, 0x9b, 0xdd, 0x6c, 0x4e, 0x6e,
+ 0xd0, 0x63, 0xd7, 0x6f, 0x8a, 0x39, 0xd9, 0x96,
+ 0xf9, 0x0d, 0x4e, 0x0a, 0xf3, 0xc6, 0x80, 0x34,
+ 0x10, 0xab, 0xfd, 0xc2, 0x52, 0xec, 0xc7, 0x00,
+ 0x34, 0xb4, 0xbc, 0xc9, 0x11, 0xdd, 0x6d, 0xa0,
+ 0xba, 0x94, 0xe8, 0xa2, 0xf9, 0x2d, 0x58, 0x70,
+ 0xd5, 0x92, 0xa9, 0xae, 0x7f, 0x8b, 0x32, 0x44,
+ 0x9b, 0xf6, 0x17, 0x23, 0x03, 0x7c, 0x06, 0x55,
+ 0x91, 0xdc, 0x85, 0x1b, 0x13, 0x44, 0x9c, 0x36,
+ 0xbb, 0x19, 0x0b, 0xc8, 0x05, 0x96, 0xbe, 0xf3,
+ 0x1e, 0xd1, 0x9d, 0xbb, 0xf8, 0x4f, 0x5a, 0xd8,
+ 0x95, 0x90, 0x49, 0xab, 0x23, 0x95, 0x3b, 0x63,
+ 0x4c, 0xcb, 0x6b, 0x61, 0xf7, 0x2b, 0x88, 0xce,
+ 0x42, 0x6d, 0x7e, 0x57, 0x4e, 0xfd, 0x43, 0xc5,
+ 0xe5, 0xe0, 0xd3, 0xe4, 0x87, 0x63, 0xdd, 0xe8,
+ 0x36, 0x58, 0x41, 0x4e, 0x46, 0x44, 0x3b, 0x9d,
+ 0x85, 0xba, 0x29, 0xe0, 0xad, 0x21, 0x17, 0x1b,
+ 0xd4, 0x7a, 0xa6, 0xb6, 0xf7, 0x0e, 0x9a, 0xc3,
+ 0x29, 0xd1, 0x9e, 0xba, 0x16, 0x4c, 0xee, 0xd5,
+ 0x8d, 0x73, 0xf7, 0xe3, 0xe9, 0xbb, 0x2a, 0xad,
+ 0x3e, 0xe2, 0x32, 0xfa, 0x9f, 0x5a, 0x2f, 0x59,
+ 0x06, 0x49, 0x8b, 0x73, 0xa0, 0x2c, 0xd2, 0xa4,
+ 0x79, 0xa1, 0x9b, 0xf1, 0x4a, 0x19, 0x8e, 0x68,
+ 0x18, 0xf1, 0xd7, 0x5d, 0x43, 0xa6, 0xcd, 0x69,
+ 0x9e, 0xda, 0x2b, 0x4f, 0x61, 0x5b, 0x48, 0xb5,
+ 0x09, 0x3c, 0x91, 0x44, 0x6d, 0x99, 0xc4, 0xaf,
+ 0xae, 0x83, 0x74, 0x66, 0xe8, 0x06, 0x6e, 0x54,
+ 0x6b, 0x5b, 0x4e, 0x7f, 0xaf, 0xbb, 0x18, 0x43,
+ 0x62, 0xc2, 0xb6, 0xd6, 0x23, 0x77, 0x02, 0xdc,
+ 0x3a, 0x1c, 0x24, 0x74, 0x3d, 0x6f, 0x01, 0x1a,
+ 0xc0, 0x52, 0xa0, 0xe8, 0xa8, 0xe8, 0xc1, 0xd4,
+ 0x64, 0xc1, 0x9f, 0x92, 0xcd, 0x14, 0x9c, 0x86,
+ 0x01, 0x4c, 0xf0, 0x77, 0x64, 0x97, 0xdf, 0xd5,
+ 0xd7, 0x37, 0x72, 0x3a, 0x25, 0x9a, 0x36, 0xb0,
+ 0xc1, 0x6e, 0x1a, 0xc2, 0x3d, 0x3f, 0x49, 0xf3,
+ 0x89, 0x98, 0xb9, 0x35, 0x0f, 0x8f, 0x53, 0x49,
+ 0x4e, 0x65, 0xa9, 0xe1, 0x30, 0x9f, 0xa6, 0x2c,
+ 0xbe, 0xd2, 0x60, 0x4a, 0x57, 0x51, 0xb9, 0x16,
+ 0x7c, 0x72, 0x82, 0xf4, 0x93, 0x4e, 0x34, 0xeb,
+ 0x60, 0xb2, 0x2f, 0x2a, 0xe5, 0x43, 0x14, 0xa7,
+ 0x9c, 0x04, 0xf3, 0x76, 0xfe, 0x7d, 0xf7, 0x9e,
+ 0xb3, 0xe7, 0xbb, 0x16, 0x0c, 0xb0, 0xb3, 0x4f,
+ 0xd0, 0x18, 0x2e, 0x57, 0x2c, 0x93, 0xaf, 0xed,
+ 0xf3, 0x4a, 0x2b, 0x91, 0xfe, 0x29, 0x0e, 0x83,
+ 0x9d, 0x6a, 0x20, 0xe4, 0x3e, 0x42, 0x64, 0x54,
+ 0x0b, 0xce, 0x78, 0xaa, 0xf6, 0x86, 0x21, 0xf8,
+ 0xf4, 0x81, 0x75, 0xe2, 0xb1, 0xb9, 0x6d, 0x00,
+ 0xb4, 0x5f, 0x7a, 0x1c, 0xd3, 0x1b, 0x7b, 0x76,
+ 0xd1, 0x62, 0x6f, 0xb0, 0xb7, 0x41, 0xfc, 0xea,
+ 0xa2, 0xd0, 0xc2, 0x37, 0x14, 0xaf, 0x89, 0x61,
+ 0x78, 0x23, 0x2b, 0x35, 0x65, 0xf9, 0xab, 0xfe,
+ 0xeb, 0xe2, 0x34, 0x02, 0x55, 0x65, 0xe1, 0xa9,
+ 0x3b, 0xe5, 0x5e, 0x45, 0xce, 0x17, 0x91, 0xd6,
+ 0x68, 0xb2, 0x9d, 0xa1, 0x2f, 0x4a, 0x4b, 0xdb,
+ 0x23, 0xfb, 0xbc, 0x73, 0x04, 0x0d, 0x42, 0x24,
+ 0x37, 0x22, 0x22, 0x76, 0x74, 0xc7, 0xc9, 0xfc,
+ 0xb0, 0x4b, 0x62, 0x85, 0xd5, 0x12, 0xa4, 0x65,
+ 0xb7, 0xb0, 0x88, 0xe1, 0x0f, 0xec, 0xaa, 0x81,
+ 0xcd, 0x76, 0x10, 0x0f, 0x53, 0x62, 0x23, 0x0a,
+ 0xf6, 0xb2, 0x1a, 0xe6, 0xf4, 0xb9, 0xef, 0xb1,
+ 0x3d, 0x16, 0x8a, 0xef, 0x6d, 0x7b, 0xfb, 0x42,
+ 0x27, 0xbf, 0x16, 0x7d, 0xab, 0xb0, 0x4e, 0x57,
+ 0x32, 0x31, 0x96, 0x65, 0xac, 0xf3, 0x43, 0x3e,
+ 0xa1, 0x8a, 0xbb, 0xa9, 0xcc, 0x2c, 0x7e, 0xbd,
+ 0xda, 0x0a, 0x65, 0x91, 0x83, 0x17, 0x02, 0x3f,
+ 0x4f, 0xe6, 0xa2, 0xf9, 0x69, 0x3b, 0xeb, 0xb7,
+ 0xea, 0x05, 0x9e, 0x8f, 0x38, 0xd1, 0x2b, 0xa1,
+ 0x0a, 0x6c, 0x0c, 0xb2, 0x17, 0xe5, 0x71, 0x77,
+ 0x93, 0xdc, 0x94, 0x70, 0x1d, 0x65, 0x41, 0x9d,
+ 0x49, 0xde, 0xb7, 0xf9, 0x23, 0x2a, 0xd4, 0x0a,
+ 0xa9, 0x25, 0x4f, 0x87, 0xec, 0x31, 0x7b, 0x7e,
+ 0x1c, 0x3c, 0xf6, 0x62, 0x2e, 0x76, 0x5a, 0x83,
+ 0x2b, 0x41, 0x9b, 0xb0, 0x44, 0xbd, 0x11, 0xf2,
+ 0x67, 0x53, 0xcb, 0x52, 0x38, 0xcd, 0xed, 0x23,
+ 0xd6, 0xd1, 0x95, 0xb0, 0xa5, 0x83, 0x50, 0x41,
+ 0x0c, 0x1b, 0x87, 0xa1, 0xed, 0x99, 0x10, 0x8c,
+ 0x3f, 0x44, 0x68, 0xc2, 0x76, 0x99, 0x07, 0x3d,
+ 0x5c, 0x67, 0x57, 0x5f, 0x66, 0xfc, 0x74, 0x2d,
+ 0xae, 0xec, 0x90, 0xa3, 0x09, 0x54, 0xc8, 0xbd,
+ 0xbe, 0xd1, 0x57, 0x99, 0xc1, 0xdf, 0x8c, 0xa1,
+ 0xf2, 0x29, 0x5d, 0xc0, 0xbe, 0x2c, 0x08, 0x35,
+ 0x46, 0x3d, 0x37, 0x8c, 0xde, 0x9f, 0xff, 0x4c,
+ 0x0d, 0xc4, 0x6b, 0xf9, 0x57, 0x17, 0xf0, 0x9d,
+ 0xa8, 0x32, 0xa8, 0xfa, 0xe0, 0x98, 0x8f, 0x7f,
+ 0x91, 0x77, 0xc7, 0x9c, 0x2e, 0x8d, 0x4d, 0x27,
+ 0x66, 0xbf, 0x6b, 0x0a, 0x74, 0x74, 0x70, 0xdb,
+ 0x03, 0x6e, 0x0f, 0x36, 0xd7, 0xa5, 0x7d, 0x93,
+ 0x32, 0xa7, 0xde, 0xa9, 0xe1, 0x97, 0xd8, 0x63,
+ 0x11, 0x34, 0x20, 0x1b, 0x57, 0xbc, 0x90, 0xd5,
+ 0x40, 0x83, 0xdc, 0xae, 0xb0, 0x47, 0x81, 0x7c,
+ 0x4c, 0x9b, 0x4d, 0xa8, 0x34, 0xba, 0x14, 0xe1,
+ 0x1e, 0xee, 0x3b, 0xfd, 0xb4, 0x20, 0xdb, 0x6a,
+ 0xd9, 0x15, 0x41, 0xf6, 0x8c, 0xa6, 0x87, 0x63,
+ 0xc6, 0x95, 0xae, 0x65, 0x40, 0x33, 0x26, 0x8a,
+ 0x78, 0x86, 0x97, 0x25, 0xac, 0xb4, 0xe8, 0xf8,
+ 0x96, 0xd3, 0x3b, 0xd4, 0x92, 0xaf, 0xa9, 0x60,
+ 0x21, 0x3c, 0xb5, 0x92, 0x9d, 0xa8, 0x87, 0x82,
+ 0xcc, 0x25, 0xe2, 0x1b, 0xbb, 0x99, 0xfe, 0x68,
+ 0x6f, 0x0b, 0x44, 0x47, 0x3c, 0x90, 0x89, 0x12,
+ 0xb8, 0xd7, 0xcf, 0x87, 0x82, 0x6c, 0xb0, 0x00,
+ 0x79, 0xf0, 0xe1, 0xcf, 0xfe, 0x85, 0xec, 0x58,
+ 0x8e, 0x47, 0xd6, 0x65, 0xcd, 0xe4, 0xc3, 0x4f,
+ 0x80, 0xeb, 0xf6, 0xd1, 0x01, 0x9f, 0xe1, 0x08,
+ 0xae, 0x44, 0x9e, 0x29, 0xa3, 0x6d, 0xad, 0xd7,
+ 0x7e, 0x32, 0x83, 0x29, 0x9a, 0x65, 0xbd, 0xfe,
+ 0x9a, 0x3f, 0x8f, 0xa5, 0x72, 0x63, 0xd2, 0xf7,
+ 0xe0, 0x99, 0x61, 0x0f, 0xbb, 0xb7, 0x76, 0xe6,
+ 0xf7, 0xa7, 0x49, 0x51, 0xc4, 0x0c, 0xea, 0xfb,
+ 0xd3, 0xc7, 0xbd, 0x47, 0x9b, 0xf9, 0x5d, 0x6e,
+ 0xe0, 0x44, 0xcb, 0xbc, 0x2c, 0x44, 0xd2, 0x1e,
+ 0xae, 0xb6, 0x89, 0x2b, 0xfa, 0x51, 0x75, 0xdf,
+ 0x81, 0x70, 0x5f, 0x6b, 0x4e, 0x15, 0xb4, 0x6c,
+ 0xfd, 0xfb, 0x1c, 0x58, 0x22, 0xbd, 0xee, 0xab,
+ 0xc9, 0x59, 0x81, 0xcf, 0x82, 0x3c, 0xe3, 0x6f,
+ 0x6c, 0xb9, 0xcc, 0xcc, 0x3d, 0x77, 0x48, 0x4b,
+ 0x8a, 0xee, 0x0c, 0x8d, 0x8a, 0xcb, 0x5a, 0x31,
+ 0x0c, 0x7e, 0xe2, 0x08, 0xeb, 0x02, 0x13, 0xe8,
+ 0xa9, 0x3c, 0xd7, 0xd5, 0x89, 0x5a, 0x36, 0xd4,
+ 0x49, 0x4c, 0xc3, 0x48, 0x21, 0x4c, 0x7d, 0x00,
+ 0x78, 0xc3, 0x6c, 0xc3, 0x89, 0xdc, 0x20, 0xf1,
+ 0xcf, 0xb1, 0x91, 0x8a, 0x4f, 0x4d, 0x4a, 0x22,
+ 0xb7, 0xec, 0xff, 0x8e, 0xd2, 0xd1, 0x5f, 0x3e,
+ 0x78, 0x6b, 0x32, 0xd6, 0x76, 0x12, 0x4f, 0x33,
+ 0xe7, 0x02, 0xf6, 0xbe, 0xc8, 0xd8, 0x27, 0x0b,
+ 0xc9, 0xef, 0x1a, 0x30, 0x44, 0x4a, 0xb1, 0x55,
+ 0x5f, 0xbc, 0xc6, 0x5b, 0x57, 0x9f, 0xa9, 0x5a,
+ 0x3c, 0xec, 0xb5, 0x3a, 0x20, 0xdc, 0xae, 0xeb,
+ 0x1c, 0x66, 0xc9, 0x84, 0x05, 0xb3, 0x18, 0xcc,
+ 0x07, 0x93, 0xed, 0xd3, 0xf3, 0x6c, 0x2b, 0xe9,
+ 0x38, 0x1a, 0x0f, 0xc8, 0x19, 0x63, 0xa4, 0x9b,
+ 0x95, 0x07, 0x8c, 0x26, 0xa2, 0x68, 0x78, 0x1b,
+ 0xbf, 0x8f, 0x90, 0xfd, 0xdd, 0x96, 0xf5, 0xe2,
+ 0xc7, 0x25, 0xc8, 0xbc, 0x80, 0x3e, 0x49, 0x05,
+ 0xf5, 0x62, 0xc4, 0x57, 0xe5, 0xa0, 0x42, 0xee,
+ 0xd6, 0xfe, 0x3d, 0xf4, 0x9e, 0x61, 0xf8, 0x6e,
+ 0x34, 0x7b, 0xea, 0x75, 0x9c, 0x29, 0xf0, 0xff,
+ 0xd0, 0x45, 0xf2, 0x9c, 0x0a, 0x0f, 0x05, 0xc1,
+ 0x71, 0xed, 0x42, 0xb4, 0x46, 0x2b, 0x22, 0xce,
+ 0x06, 0xad, 0x67, 0x64, 0x7f, 0x2c, 0x7d, 0x07,
+ 0x54, 0x12, 0x01, 0xee, 0x35, 0xd8, 0xbd, 0x66,
+ 0x1c, 0xc8, 0x2f, 0xe8, 0x9a, 0xda, 0x40, 0xb7,
+ 0x31, 0xdf, 0x59, 0x35, 0x3e, 0x67, 0xf2, 0xf2,
+ 0x10, 0x31, 0x11, 0x60, 0x2b, 0x2d, 0x85, 0x88,
+ 0x71, 0xfd, 0x34, 0x03, 0x83, 0x98, 0xf7, 0x11,
+ 0x2b, 0xc0, 0x25, 0x0b, 0x39, 0xe4, 0xd0, 0xa9,
+ 0x00, 0xa9, 0xa8, 0x88, 0x38, 0x87, 0x64, 0xc0,
+ 0xb3, 0xc3, 0x5f, 0x9f, 0xd3, 0x48, 0x4c, 0xc3,
+ 0x4c, 0x5f, 0x42, 0x6f, 0x2d, 0xfd, 0xb1, 0x52,
+ 0x35, 0xf8, 0xf1, 0x83, 0x94, 0x89, 0xf0, 0x9a,
+ 0xc0, 0x70, 0x66, 0xa6, 0x06, 0x6b, 0x7b, 0x4d,
+ 0xe1, 0xb5, 0x37, 0xc6, 0xa8, 0xe3, 0x67, 0xdb,
+ 0x23, 0x40, 0x98, 0xd4, 0xf0, 0x5d, 0x6f, 0xe9,
+ 0x21, 0x28, 0x13, 0xe5, 0xbb, 0x06, 0x9e, 0xc6,
+ 0x11, 0xa4, 0xa3, 0x2c, 0x0f, 0x31, 0x15, 0x75,
+ 0xe2, 0x95, 0x04, 0x0c, 0xc5, 0x94, 0x7e, 0xea,
+ 0x77, 0x05, 0x47, 0xe9, 0x9b, 0x71, 0x80, 0xd6,
+ 0x01, 0xa4, 0x78, 0x9f, 0xdc, 0x62, 0xc3, 0x0f,
+ 0x8b, 0x6f, 0x4c, 0x7e, 0xc1, 0x97, 0x87, 0x01,
+ 0x9c, 0xc1, 0x46, 0x45, 0x98, 0xa6, 0x65, 0x93,
+ 0xc5, 0x3c, 0xa1, 0x55, 0x3a, 0x7d, 0xf7, 0xa6,
+ 0x31, 0x7c, 0x5d, 0x2c, 0x4c, 0xe7, 0x74, 0xb2,
+ 0x02, 0x1f, 0xb4, 0x2e, 0x24, 0x5f, 0x8c, 0xa0,
+ 0x7c, 0xd1, 0xc4, 0x29, 0x14, 0x49, 0xfa, 0x4b,
+ 0x09, 0x97, 0x8e, 0x30, 0xea, 0x3f, 0xd9, 0x16,
+ 0x1c, 0x38, 0x72, 0x3c, 0xe9, 0x2a, 0x84, 0x20,
+ 0xb4, 0xa7, 0x34, 0x52, 0x5b, 0xa6, 0x68, 0x49,
+ 0xa6, 0xd6, 0xe0, 0x72, 0xa9, 0x28, 0x83, 0xf7,
+ 0x4f, 0x96, 0xbc, 0x7f, 0x97, 0x07, 0xe2, 0x9a,
+ 0xdf, 0xe0, 0x89, 0xdd, 0x0c, 0x37, 0xb8, 0x90,
+ 0xde, 0xc8, 0x53, 0x51, 0xb1, 0x36, 0xcf, 0xd3,
+ 0x42, 0xf6, 0xed, 0x7c, 0x3f, 0xd2, 0x05, 0x67,
+ 0xe0, 0x23, 0x6c, 0x4e, 0xae, 0x3c, 0xa4, 0x8b,
+ 0x67, 0x0e, 0xda, 0x62, 0xd4, 0xf0, 0x3f, 0x33,
+ 0xdb, 0x23, 0x00, 0x0e, 0xc8, 0x2e, 0xd0, 0xb0,
+ 0x7a, 0x58, 0x66, 0xa1, 0x62, 0x02, 0x84, 0xf2,
+ 0xad, 0xf8, 0xf6, 0xf0, 0x0a, 0xd8, 0xc4, 0xa9,
+ 0x58, 0x50, 0x45, 0xf6, 0x56, 0x58, 0x26, 0x95,
+ 0xb2, 0xe1, 0x5b, 0x5d, 0x8a, 0x2b, 0x94, 0x6d,
+ 0xc1, 0xf5, 0xbe, 0xdb, 0xef, 0x67, 0x1d, 0x1f,
+ 0xff, 0xb3, 0x28, 0x14, 0x9d, 0xe2, 0xcf, 0xc2,
+ 0xf2, 0x84, 0xbc, 0xf1, 0xd1, 0x49, 0xc4, 0x26,
+ 0x57, 0x88, 0xf9, 0x53, 0xb8, 0x62, 0xf4, 0x07,
+ 0x7b, 0xf4, 0xf8, 0x77, 0x4b, 0x4d, 0x54, 0x56,
+ 0xbe, 0xff, 0x7f, 0x18, 0x5f, 0xc2, 0x7e, 0x3a,
+ 0x32, 0x92, 0x69, 0x3b, 0xbf, 0x8e, 0xde, 0xa0,
+ 0x40, 0xd3, 0x13, 0xa4, 0xdb, 0x3b, 0x92, 0x7a,
+ 0x9d, 0x72, 0x05, 0xdd, 0x8e, 0x1a, 0x6a, 0x53,
+ 0xa0, 0x56, 0x74, 0x63, 0x5a, 0x32, 0xd4, 0x6c,
+ 0xad, 0xad, 0xd1, 0x16, 0x3a, 0xb7, 0x34, 0x34,
+ 0x19, 0xf1, 0x16, 0x53, 0xf9, 0x3a, 0x28, 0xde,
+ 0xb3, 0x69, 0x53, 0x9e, 0xad, 0x25, 0xbc, 0xcf,
+ 0xae, 0xda, 0xae, 0x77, 0xa8, 0xc8, 0x80, 0x70,
+ 0x3c, 0x8e, 0xf8, 0x97, 0x16, 0x95, 0x2e, 0xd2,
+ 0xf9, 0xe3, 0x73, 0xf8, 0x70, 0xd4, 0x70, 0x90,
+ 0xdf, 0xd3, 0x60, 0x3f, 0x92, 0xd7, 0x7f, 0xb9,
+ 0xd7, 0xce, 0x6c, 0x6a, 0x08, 0xb7, 0x78, 0x16,
+ 0x9b, 0x5e, 0x7b, 0x73, 0xeb, 0x76, 0x4f, 0x13,
+ 0xbd, 0x1b, 0xf9, 0x7c, 0xfa, 0x3d, 0x36, 0x0f,
+ 0x04, 0x04, 0xe5, 0x07, 0x45, 0xfc, 0xda, 0x4d,
+ 0xc6, 0x4c, 0x64, 0xc1, 0xc5, 0x1a, 0x52, 0xb8,
+ 0x38, 0x34, 0x46, 0xda, 0x4f, 0xeb, 0x46, 0x9f,
+ 0x33, 0x35, 0x02, 0xbb, 0xc5, 0x3c, 0xb0, 0xa7,
+ 0x25, 0x7f, 0xf4, 0xdd, 0x75, 0x65, 0x65, 0x4c,
+ 0x23, 0xce, 0x68, 0x88, 0xe7, 0xde, 0xdd, 0x14,
+ 0x7b, 0x9f, 0xb0, 0x42, 0xdf, 0x81, 0x8c, 0xa8,
+ 0xa8, 0xd5, 0xfd, 0x01, 0xdf, 0xd1, 0x85, 0xec,
+ 0xdd, 0x57, 0xfe, 0xcc, 0x60, 0x5e, 0x10, 0x42,
+ 0x82, 0xa1, 0x12, 0x45, 0x56, 0x53, 0x35, 0x49,
+ 0x4e, 0xa3, 0xbe, 0xd3, 0xae, 0x86, 0x79, 0x3d,
+ 0xa0, 0x2f, 0xbc, 0xb4, 0x2d, 0x06, 0xb9, 0x92,
+ 0x96, 0x0e, 0x1c, 0xba, 0xea, 0x1a, 0x72, 0xa1,
+ 0xe1, 0xc7, 0x90, 0xcb, 0x6f, 0xbc, 0x05, 0x32,
+ 0x91, 0x5f, 0xa2, 0x67, 0xd6, 0x9f, 0x3a, 0xce,
+ 0x70, 0x60, 0x6a, 0xfd, 0xcf, 0xd1, 0x46, 0xd6,
+ 0x7d, 0x25, 0x7f, 0xee, 0x88, 0x6d, 0xe6, 0x87,
+ 0x51, 0xf0, 0x5a, 0xf8, 0xfe, 0x0d, 0xb8, 0x5a,
+ 0xd7, 0xb1, 0x33, 0x34, 0xa3, 0x63, 0xa2, 0x48,
+ 0xa2, 0x77, 0x94, 0x4f, 0x61, 0x53, 0x05, 0x75,
+ 0x30, 0xfe, 0x03, 0x67, 0xf8, 0xef, 0xb7, 0x4a,
+ 0x36, 0x0d, 0xed, 0x6c, 0xfa, 0x6a, 0x0f, 0x93,
+ 0xb1, 0xd5, 0xbc, 0xe9, 0x0c, 0x45, 0x58, 0x0d,
+ 0x02, 0xc0, 0x4b, 0x1f, 0x86, 0x59, 0x7b, 0x50,
+ 0x4c, 0x20, 0xc8, 0xf6, 0x7b, 0xf0, 0x36, 0xf1,
+ 0xa6, 0x81, 0xa1, 0x1e, 0x55, 0x9f, 0x94, 0x6c,
+ 0xa2, 0xa8, 0xe7, 0xcd, 0x27, 0xa3, 0xc5, 0x71,
+ 0x69, 0xf2, 0x0d, 0x91, 0xba, 0x75, 0x9e, 0xbc,
+ 0x01, 0x27, 0x27, 0x72, 0xe7, 0xd6, 0xb1, 0x93,
+ 0x39, 0xde, 0x13, 0xbf, 0x68, 0x7a, 0xd0, 0xa3,
+ 0xc8, 0x1d, 0x9f, 0x81, 0x66, 0x59, 0x3c, 0x3e,
+ 0x5d, 0xe4, 0xb5, 0x25, 0x10, 0xb2, 0x06, 0xb8,
+ 0x5c, 0x28, 0x07, 0x39, 0x64, 0x40, 0xd2, 0x75,
+ 0xee, 0x9c, 0x1c, 0xed, 0xad, 0xb4, 0xa0, 0x68,
+ 0xad, 0xb0, 0x69, 0xe6, 0xb2, 0x66, 0x9b, 0x44,
+ 0x4d, 0xe1, 0xb9, 0xa6, 0xc5, 0x0b, 0xdc, 0x52,
+ 0x31, 0x22, 0xd4, 0xec, 0x03, 0xd4, 0xa4, 0x9b,
+ 0x26, 0x3b, 0xfc, 0x2b, 0x90, 0x3c, 0x76, 0xda,
+ 0x11, 0xd2, 0x97, 0x8b, 0x08, 0x18, 0xf0, 0x7b,
+ 0xfe, 0x12, 0x28, 0x3a, 0x95, 0x38, 0xc9, 0x0f,
+ 0x01, 0x65, 0xad, 0xf2, 0xc9, 0xe0, 0xbf, 0x56,
+ 0x85, 0x0e, 0x17, 0x69, 0x38, 0x26, 0x39, 0x07,
+ 0x60, 0xc3, 0xb8, 0x27, 0x86, 0x4d, 0x80, 0xea,
+ 0x71, 0xac, 0xb7, 0xad, 0x08, 0xf9, 0xbb, 0xd7,
+ 0x9a, 0x16, 0x01, 0xb8, 0x51, 0x5f, 0xb4, 0x82,
+ 0xd0, 0x20, 0x00, 0x47, 0x37, 0x15, 0xa7, 0x92,
+ 0x33, 0x06, 0x9d, 0xd0, 0xcc, 0x1c, 0xa6, 0xa3,
+ 0x8c, 0x47, 0x4e, 0xcf, 0x67, 0xbf, 0x6c, 0x3a,
+ 0xc2, 0x9b, 0x93, 0xfc, 0x81, 0x21, 0xb1, 0xc9,
+ 0x8a, 0x46, 0x46, 0xbe, 0x38, 0x36, 0x21, 0x1b,
+ 0x4a, 0x5a, 0xa8, 0xb8, 0x85, 0xd7, 0x55, 0x60,
+ 0x51, 0xf2, 0xee, 0x51, 0x32, 0xf7, 0x32, 0x87,
+ 0x6c, 0x2e, 0xfb, 0x9d, 0x6d, 0x73, 0x98, 0x26,
+ 0xde, 0x21, 0x9c, 0xc1, 0x7e, 0x99, 0x0e, 0xdc,
+ 0x34, 0x95, 0xd3, 0x72, 0x0e, 0x1d, 0xae, 0xca,
+ 0xca, 0xdf, 0x75, 0x67, 0x6a, 0x86, 0x97, 0x27,
+ 0x18, 0x47, 0x33, 0x2d, 0xc6, 0x99, 0x6f, 0x89,
+ 0x1c, 0xfb, 0xf3, 0x1d, 0xfd, 0xf1, 0x68, 0x22,
+ 0x23, 0xfd, 0xb7, 0x9d, 0x7d, 0x5b, 0xe2, 0xaf,
+ 0x4d, 0xa9, 0x87, 0xeb, 0x05, 0x5e, 0xa0, 0x52,
+ 0x16, 0x61, 0x47, 0xb7, 0x07, 0xc8, 0x54, 0x86,
+ 0x8d, 0x7e, 0xcb, 0x8d, 0xb4, 0x04, 0x4d, 0x9c,
+ 0x51, 0x96, 0xd3, 0x4f, 0x87, 0x80, 0x69, 0x1c,
+ 0x73, 0x57, 0xef, 0x39, 0x1c, 0xdc, 0x17, 0xe2,
+ 0xfd, 0xed, 0x9d, 0x93, 0xb8, 0x7d, 0x5c, 0x7a,
+ 0x16, 0xb6, 0x30, 0xa1, 0xd6, 0x75, 0xf8, 0x74,
+ 0xe7, 0x0d, 0xbd, 0xd6, 0x44, 0x0d, 0x5d, 0x15,
+ 0xad, 0x02, 0xa1, 0x8c, 0x82, 0xb6, 0xb2, 0x94,
+ 0xf6, 0x0a, 0x5c, 0xda, 0x2b, 0x0d, 0x9c, 0x1e,
+ 0x38, 0x1e, 0x42, 0xad, 0xa4, 0x7f, 0x8f, 0x9d,
+ 0x60, 0xfd, 0x84, 0xec, 0x30, 0x72, 0x65, 0x59,
+ 0xb8, 0xf6, 0xd9, 0x10, 0xe2, 0xae, 0x26, 0xcd,
+ 0x09, 0x01, 0x88, 0x70, 0x59, 0x02, 0xde, 0xee,
+ 0x77, 0x6d, 0x73, 0xd2, 0xf7, 0x6e, 0xfd, 0x9d,
+ 0xf3, 0x0f, 0x9a, 0xfa, 0x21, 0x54, 0x2a, 0xb5,
+ 0xbe, 0x7b, 0x0d, 0x53, 0x93, 0x59, 0xa5, 0x54,
+ 0xab, 0xdb, 0x4d, 0x08, 0x52, 0xdd, 0xaf, 0xda,
+ 0xa4, 0x81, 0x8a, 0xa2, 0x66, 0x22, 0xdb, 0x51,
+ 0x82, 0xd6, 0x0d, 0xbe, 0x3f, 0x8c, 0xd9, 0x90,
+ 0xc9, 0x2e, 0x93, 0x5c, 0x2a, 0x6a, 0x47, 0x47,
+ 0xe6, 0x7f, 0x29, 0x1d, 0xa8, 0x17, 0x81, 0x02,
+ 0x98, 0xb9, 0xce, 0x8c, 0xb9, 0x4f, 0xe7, 0x25,
+ 0x7c, 0x6c, 0x1e, 0xf0, 0x14, 0x1e, 0xae, 0x77,
+ 0x31, 0xd5, 0x69, 0x81, 0x77, 0x25, 0x59, 0x4e,
+ 0x71, 0xf3, 0xf4, 0x3a, 0x1a, 0xd1, 0x1b, 0xbd,
+ 0xd9, 0x08, 0x2d, 0x14, 0x3a, 0xb9, 0x8d, 0xb2,
+ 0x30, 0xf8, 0xfe, 0x74, 0x18, 0xb7, 0x63, 0x05,
+ 0x16, 0x07, 0xfc, 0x79, 0x54, 0x95, 0xbc, 0x0d,
+ 0x4d, 0x3b, 0xa4, 0x26, 0x2e, 0x22, 0xd7, 0x47,
+ 0x9c, 0x75, 0x43, 0x4e, 0xe3, 0xca, 0x65, 0xe6,
+ 0xd6, 0x8d, 0xac, 0xd7, 0xb7, 0xbd, 0x10, 0x1d,
+ 0x5e, 0x96, 0x35, 0x49, 0x04, 0x43, 0x2b, 0xe5,
+ 0x33, 0x3a, 0xfc, 0x80, 0x6c, 0xfa, 0xad, 0x27,
+ 0x57, 0xef, 0xa0, 0xc9, 0xef, 0x4a, 0x37, 0x1b,
+ 0xab, 0xaa, 0x51, 0x02, 0xe2, 0xe8, 0x56, 0xea,
+ 0xa4, 0x4a, 0x54, 0xe5, 0x80, 0xd6, 0xc4, 0x8e,
+ 0xb8, 0x18, 0x52, 0x4f, 0xe9, 0x6f, 0x79, 0xcc,
+ 0x24, 0x79, 0xfb, 0x47, 0x87, 0xef, 0xcd, 0x90,
+ 0x76, 0x70, 0x8c, 0x2a, 0xce, 0xef, 0x10, 0xbb,
+ 0xd7, 0x10, 0x9b, 0xb8, 0x59, 0x89, 0x95, 0x9b,
+ 0x81, 0xe5, 0x7e, 0x15, 0xae, 0xc8, 0x93, 0xd5,
+ 0x12, 0x4a, 0xba, 0x78, 0xde, 0x04, 0xd8, 0x0f,
+ 0x34, 0xbb, 0xa0, 0xb8, 0x85, 0xe9, 0x90, 0x02,
+ 0xeb, 0x92, 0x26, 0xe8, 0xda, 0x92, 0x6d, 0x45,
+ 0x31, 0x30, 0x5d, 0xd3, 0x6f, 0x51, 0x34, 0x9c,
+ 0x62, 0x2b, 0xbb, 0xc0, 0xc2, 0xa6, 0x3a, 0xd3,
+ 0xfd, 0xfe, 0x7e, 0x71, 0x21, 0xf0, 0xfe, 0x74,
+ 0x2f, 0xba, 0x2c, 0xdc, 0x15, 0xc2, 0xaf, 0xc2,
+ 0xee, 0x90, 0x84, 0x5b, 0x40, 0x02, 0xba, 0xcb,
+ 0xc4, 0x71, 0x58, 0x8c, 0xa7, 0x1f, 0x7a, 0xe2,
+ 0xf6, 0x66, 0xae, 0x0d, 0x17, 0x4c, 0x25, 0x16,
+ 0x39, 0x1b, 0xbe, 0x04, 0x87, 0x14, 0x30, 0xe9,
+ 0x17, 0x36, 0x23, 0xa8, 0x6f, 0x86, 0x00, 0xb3,
+ 0x2a, 0x64, 0xdc, 0xb4, 0xd2, 0xaa, 0xf0, 0xb4,
+ 0x4f, 0x73, 0xf6, 0xc2, 0x7e, 0x48, 0x46, 0xd4,
+ 0xb3, 0x08, 0xa9, 0x33, 0x9c, 0xb9, 0x95, 0x67,
+ 0xa9, 0xa6, 0x0f, 0xc4, 0x2a, 0xc0, 0xe9, 0x45,
+ 0xf5, 0x7f, 0x1d, 0x08, 0x02, 0x3b, 0x09, 0xb0,
+ 0x04, 0x57, 0xca, 0xf9, 0x21, 0x97, 0x03, 0x51,
+ 0xd4, 0xfb, 0x58, 0xb1, 0x9f, 0xb4, 0xf0, 0x97,
+ 0xdc, 0xa8, 0x93, 0x38, 0x8f, 0xd0, 0x1a, 0x54,
+ 0x41, 0xe1, 0x0e, 0xd3, 0xba, 0xb2, 0x21, 0xaa,
+ 0x8e, 0x42, 0x2d, 0x60, 0x20, 0x9c, 0x39, 0xf3,
+ 0x4f, 0xe6, 0x03, 0xce, 0xdd, 0xfc, 0xc6, 0x27,
+ 0x9b, 0x87, 0x4d, 0xd8, 0x9e, 0x09, 0x56, 0x15,
+ 0xfd, 0xbe, 0x86, 0xed, 0xfa, 0x91, 0x04, 0x1b,
+ 0xf8, 0x34, 0x30, 0xba, 0xc3, 0x0c, 0x90, 0x88,
+ 0x48, 0x32, 0x43, 0x2d, 0x30, 0xf1, 0xf1, 0xec,
+ 0xdd, 0x06, 0x02, 0xe6, 0x45, 0xa4, 0xac, 0x5a,
+ 0x3e, 0x1c, 0x27, 0x63, 0xd9, 0x62, 0x78, 0x68,
+ 0xc8, 0x91, 0x0d, 0x70, 0xff, 0xb4, 0xee, 0xc6,
+ 0xac, 0x3e, 0x66, 0x76, 0x15, 0xc2, 0x90, 0x02,
+ 0xb6, 0x80, 0x80, 0x52, 0xb4, 0xb4, 0x64, 0x4b,
+ 0xef, 0x9b, 0xa9, 0xf3, 0x4e, 0x49, 0x10, 0x47,
+ 0xa9, 0x0a, 0x5d, 0x27, 0xe3, 0x86, 0xdc, 0xf6,
+ 0xfd, 0xe3, 0xc4, 0x90, 0xfb, 0x11, 0xd9, 0x38,
+ 0x62, 0x81, 0xaa, 0xed, 0x61, 0xd5, 0x0f, 0x7a,
+ 0x27, 0x1c, 0x7a, 0x4d, 0x7b, 0xe6, 0xd0, 0x60,
+ 0x35, 0xf5, 0xd3, 0x40, 0x47, 0x08, 0xba, 0x3f,
+ 0x11, 0x29, 0xd7, 0x22, 0x47, 0xde, 0x1d, 0x9e,
+ 0x19, 0xa5, 0x1f, 0x12, 0xea, 0xe8, 0xef, 0x72,
+ 0x77, 0x6c, 0x8d, 0xf3, 0x05, 0x5a, 0xee, 0xdc,
+ 0x6b, 0xf6, 0xc0, 0x81, 0x08, 0x0f, 0xa9, 0x84,
+ 0x79, 0x5e, 0x68, 0xc3, 0x22, 0x21, 0x82, 0x94,
+ 0x1b, 0xbb, 0x81, 0x09, 0x9a, 0x06, 0x15, 0xf5,
+ 0xf6, 0x6d, 0xb2, 0x36, 0x84, 0x22, 0xfa, 0xc7,
+ 0xbb, 0x0d, 0x17, 0x20, 0x16, 0x82, 0xa2, 0xc8,
+ 0x8a, 0xe7, 0x5d, 0x7a, 0x8a, 0xa8, 0x0c, 0x4a,
+ 0x23, 0xe5, 0x27, 0xad, 0xf4, 0x15, 0x4c, 0x61,
+ 0xae, 0x00, 0x79, 0x54, 0x1d, 0x1c, 0x6e, 0x26,
+ 0x02, 0x99, 0xf0, 0x0a, 0xeb, 0xe9, 0x10, 0xd2,
+ 0xf9, 0x17, 0x75, 0xd0, 0x6a, 0x88, 0xaa, 0xbc,
+ 0x64, 0xe3, 0x07, 0xff, 0x4f, 0xc2, 0xf1, 0xd2,
+ 0xfe, 0x2a, 0xae, 0x68, 0xb8, 0xa6, 0x4b, 0x50,
+ 0x6f, 0xc0, 0x7d, 0x94, 0xe2, 0xc7, 0x25, 0xad,
+ 0x31, 0xcf, 0x3a, 0xe7, 0xca, 0x2c, 0x5f, 0x56,
+ 0x3a, 0xe7, 0x8d, 0x63, 0xe3, 0xfe, 0x88, 0x34,
+ 0xf5, 0xf8, 0xcd, 0x9f, 0x7d, 0x76, 0x0b, 0x3e,
+ 0xf6, 0xda, 0xae, 0x74, 0xb2, 0x4a, 0x0f, 0xfd,
+ 0x60, 0x9f, 0x6f, 0xa6, 0xfa, 0xef, 0xc1, 0xdd,
+ 0x79, 0x8f, 0xe8, 0x0d, 0x76, 0xc6, 0xd9, 0x34,
+ 0x06, 0x72, 0x8e, 0xf8, 0xda, 0xb9, 0x60, 0xa6,
+ 0x01, 0xdd, 0xae, 0x30, 0x35, 0xf7, 0xf9, 0xac,
+ 0x22, 0xb1, 0x67, 0xd7, 0x2f, 0x5f, 0x68, 0xef,
+ 0x4c, 0xe7, 0xc9, 0xd1, 0x00, 0xbb, 0x27, 0x98,
+ 0x98, 0x7e, 0x40, 0xae, 0x14, 0x38, 0x8e, 0x1b,
+ 0xcd, 0x78, 0x86, 0xa2, 0xb1, 0x04, 0x9c, 0x04,
+ 0xc4, 0xa6, 0x46, 0x3a, 0xc8, 0x1f, 0x33, 0x69,
+ 0xe5, 0x2b, 0xf1, 0x03, 0x09, 0x44, 0x7f, 0x60,
+ 0x49, 0xd2, 0x9c, 0x61, 0x0e, 0xf1, 0x8c, 0x13,
+ 0x68, 0x2f, 0x9b, 0x18, 0x03, 0x69, 0xed, 0xc6,
+ 0x8e, 0xf2, 0x84, 0x72, 0xaa, 0xa8, 0x5b, 0x2d,
+ 0x3a, 0xfd, 0x0a, 0x71, 0xbe, 0xef, 0x07, 0xb8,
+ 0xdb, 0xc2, 0x66, 0x05, 0x14, 0xf8, 0x29, 0x38,
+ 0x0e, 0x7f, 0xae, 0xf1, 0xc3, 0x41, 0x8a, 0xe2,
+ 0x6f, 0xac, 0x20, 0x80, 0xcf, 0x18, 0xf1, 0x97,
+ 0x09, 0xba, 0x86, 0x25, 0xb9, 0x4b, 0xca, 0x7e,
+ 0x8e, 0x75, 0x30, 0x6d, 0x11, 0x96, 0xb5, 0xf2,
+ 0x60, 0x75, 0xf6, 0x9b, 0x8d, 0xca, 0x3c, 0x9e,
+ 0x7f, 0xd4, 0xf3, 0x25, 0x5c, 0x09, 0x92, 0x31,
+ 0x9a, 0x54, 0x2c, 0x3a, 0xc6, 0x62, 0x52, 0xb4,
+ 0x9f, 0x38, 0x1a, 0xc4, 0x69, 0x27, 0xe4, 0xe0,
+ 0x01, 0x74, 0x57, 0xe7, 0x35, 0xbc, 0x36, 0x8e,
+ 0xdc, 0xd3, 0x17, 0x4d, 0x6a, 0x67, 0xe7, 0x8f,
+ 0x8d, 0x78, 0x26, 0x13, 0x37, 0x21, 0xa9, 0x41,
+ 0x81, 0x75, 0xde, 0x04, 0xaf, 0x9c, 0xa6, 0xab,
+ 0xb3, 0x6a, 0x51, 0xba, 0xb2, 0xd5, 0xb4, 0x64,
+ 0x5c, 0xae, 0x2a, 0xec, 0x92, 0x17, 0xdd, 0x7a,
+ 0x26, 0x44, 0x46, 0x73, 0xdc, 0x51, 0x94, 0x26,
+ 0x1c, 0xc0, 0x6d, 0xff, 0xa8, 0x43, 0x5c, 0xc5,
+ 0xec, 0x51, 0x93, 0xb5, 0x27, 0x13, 0x75, 0xef,
+ 0x6f, 0xc3, 0xe1, 0x7c, 0xbd, 0x72, 0x07, 0x7b,
+ 0xae, 0xa5, 0x9f, 0xe3, 0x5f, 0x67, 0xd4, 0xad,
+ 0x65, 0x19, 0x92, 0x6b, 0x10, 0xf8, 0xc2, 0xa3,
+ 0x39, 0xa5, 0x96, 0x7a, 0xf5, 0x9d, 0x49, 0xd6,
+ 0x62, 0x81, 0x0e, 0x63, 0x2e, 0xe7, 0x12, 0x5b,
+ 0x9e, 0xd8, 0xde, 0x15, 0x86, 0x22, 0x6e, 0x9a,
+ 0xe9, 0xae, 0x5a, 0x35, 0x8f, 0xe0, 0x40, 0xdd,
+ 0x59, 0x15, 0x77, 0x40, 0x09, 0xa0, 0x50, 0xef,
+ 0x8c, 0xca, 0x4c, 0x61, 0x24, 0x9a, 0x5e, 0x75,
+ 0x9d, 0x6d, 0xae, 0x76, 0x04, 0xa7, 0xd5, 0x84,
+ 0xde, 0xf4, 0xd5, 0xbb, 0xea, 0x2b, 0x87, 0xaa,
+ 0x0e, 0xa1, 0x17, 0x90, 0x33, 0xb6, 0x0e, 0xa1,
+ 0x05, 0xce, 0xb9, 0x7d, 0x92, 0x51, 0x87, 0xe2,
+ 0x6f, 0xf5, 0xad, 0xb2, 0x77, 0xe8, 0x0a, 0xb8,
+ 0xb3, 0xef, 0x9c, 0x19, 0x6b, 0x11, 0xdf, 0x23,
+ 0xb5, 0xe4, 0xe3, 0xbf, 0xba, 0xf7, 0x4e, 0x80,
+ 0x1c, 0xc7, 0x86, 0xfe, 0xce, 0x75, 0xfb, 0xa3,
+ 0xa8, 0x78, 0x15, 0xb8, 0x72, 0x76, 0x1a, 0x20,
+ 0x2f, 0xec, 0xde, 0x0f, 0x8d, 0xa8, 0xb6, 0x58,
+ 0xf4, 0x95, 0x0e, 0x81, 0x2b, 0x31, 0x0d, 0x54,
+ 0x41, 0xd7, 0x6c, 0xb3, 0xa7, 0xe5, 0x73, 0x94,
+ 0x6f, 0xa2, 0x54, 0x34, 0xfa, 0xdc, 0xfc, 0x9c,
+ 0x1b, 0x56, 0xea, 0x58, 0x1d, 0xdd, 0xd2, 0x0e,
+ 0xef, 0x2b, 0x73, 0xdb, 0x19, 0xa7, 0x7a, 0x5c,
+ 0x7a, 0x49, 0x85, 0x27, 0x25, 0x42, 0x5a, 0x7c,
+ 0xf2, 0x7f, 0x3e, 0xde, 0x1d, 0x07, 0x5d, 0x59,
+ 0xdd, 0xe8, 0x1d, 0x29, 0xe4, 0x66, 0x45, 0x0b,
+ 0xfe, 0x8e, 0xf4, 0x30, 0x1e, 0x31, 0x21, 0x3c,
+ 0x14, 0xa2, 0xfd, 0x74, 0xda, 0xb0, 0xd8, 0xb7,
+ 0x71, 0x90, 0x9a, 0x6e, 0x04, 0x90, 0x71, 0x4f,
+ 0x40, 0x47, 0xb1, 0x36, 0x33, 0xdd, 0x57, 0xcc,
+ 0x05, 0xe4, 0x7b, 0xcd, 0xf3, 0x17, 0xad, 0xe3,
+ 0x7c, 0x92, 0xdd, 0x28, 0x8d, 0xce, 0x16, 0xba,
+ 0xbb, 0x71, 0x76, 0x53, 0x73, 0x5e, 0x2e, 0xb5,
+ 0x4e, 0xc9, 0x89, 0xd4, 0x61, 0x6e, 0xe9, 0x08,
+ 0x10, 0xfe, 0x4a, 0xbe, 0xc5, 0xef, 0xcb, 0xd2,
+ 0x0d, 0x29, 0x0f, 0x10, 0xc7, 0x3c, 0xbd, 0xdd,
+ 0x84, 0x11, 0x40, 0x97, 0xb1, 0xfb, 0x10, 0x59,
+ 0x02, 0xce, 0xef, 0x8b, 0xa6, 0x99, 0xf3, 0x37,
+ 0x85, 0x3e, 0x84, 0x65, 0x3e, 0x06, 0xbb, 0x4c,
+ 0x0b, 0x72, 0xcb, 0x51, 0x5d, 0x4c, 0x24, 0x16,
+ 0x19, 0xd4, 0x96, 0xe7, 0x64, 0xe3, 0x05, 0x1d,
+ 0x99, 0xa8, 0x23, 0x3f, 0xe2, 0x0b, 0xd6, 0x24,
+ 0xc2, 0x67, 0xc8, 0xb8, 0x48, 0xe7, 0xe8, 0x5a,
+ 0x7d, 0x5b, 0x53, 0xa1, 0xe6, 0xde, 0x9f, 0x59,
+ 0x4f, 0xf2, 0x28, 0x77, 0x79, 0xcd, 0xe2, 0xab,
+ 0x7d, 0x9e, 0xfa, 0xb0, 0x62, 0xf9, 0xe7, 0xf8,
+ 0xd9, 0x17, 0xd8, 0x74, 0xfc, 0x07, 0xd2, 0x82,
+ 0xd0, 0xe9, 0x6c, 0x92, 0xf8, 0x81, 0x1c, 0xfc,
+ 0x1b, 0xbf, 0x68, 0xbc, 0x65, 0xe9, 0xe3, 0x83,
+ 0xe3, 0x16, 0x76, 0x85, 0xd7, 0xe0, 0x65, 0xc1,
+ 0x61, 0xa6, 0x87, 0x4e, 0x6d, 0x5c, 0x0f, 0x08,
+ 0x2f, 0xcb, 0xc6, 0xd0, 0x63, 0x5c, 0x2a, 0xa0,
+ 0x8e, 0xfa, 0x46, 0x9f, 0xe7, 0x3b, 0xf3, 0x0e,
+ 0x60, 0xeb, 0x0d, 0x96, 0x6f, 0x4c, 0xd1, 0x36,
+ 0x67, 0xce, 0x4c, 0x5b, 0xec, 0x36, 0xd1, 0x69,
+ 0x0b, 0x1c, 0x3e, 0x39, 0x9e, 0xbe, 0x11, 0xae,
+ 0xe4, 0x4e, 0xa7, 0xe8, 0x81, 0x19, 0xe7, 0xab,
+ 0x27, 0x5f, 0xd1, 0x0a, 0x89, 0xb6, 0x8f, 0x04,
+ 0x5a, 0xb5, 0x3e, 0x30, 0x11, 0xf7, 0xb2, 0xb2,
+ 0xf8, 0x7d, 0x65, 0x1c, 0x01, 0x5c, 0xfe, 0x57,
+ 0x96, 0x04, 0x8c, 0x80, 0x62, 0x4c, 0xa8, 0x57,
+ 0xf2, 0x56, 0x74, 0x83, 0xce, 0xff, 0xf9, 0xaa,
+ 0xca, 0x0b, 0x04, 0xfe, 0x2c, 0xc2, 0x14, 0x49,
+ 0x8d, 0xf2, 0x1f, 0xa0, 0xb0, 0xa1, 0x16, 0x16,
+ 0x9a, 0xce, 0x73, 0xd4, 0x04, 0x8a, 0x3f, 0x52,
+ 0x95, 0xf7, 0x8d, 0x13, 0x69, 0xb4, 0xc7, 0x20,
+ 0x9e, 0x61, 0xcf, 0x3f, 0x51, 0xee, 0xc7, 0x67,
+ 0x86, 0x3e, 0x15, 0xb4, 0xb9, 0x33, 0x72, 0xea,
+ 0xe9, 0xd7, 0xf0, 0x34, 0xdc, 0xde, 0x42, 0xd0,
+ 0xba, 0x30, 0x8f, 0x93, 0xa0, 0xdd, 0x9b, 0x00,
+ 0xb0, 0x25, 0x08, 0x59, 0x2f, 0x9b, 0xed, 0x46,
+ 0x3e, 0x60, 0x18, 0xce, 0x1d, 0xa3, 0x92, 0x2b,
+ 0xec, 0x10, 0xa8, 0xf4, 0x0c, 0x62, 0xba, 0x27,
+ 0xfb, 0x0d, 0xcc, 0x51, 0xb4, 0xa0, 0x70, 0x63,
+ 0xd4, 0xf7, 0xda, 0x79, 0x21, 0x69, 0x49, 0x5e,
+ 0xd9, 0x50, 0xd6, 0x2a, 0x74, 0xea, 0xce, 0x4c,
+ 0xe9, 0x70, 0x51, 0x37, 0xf8, 0x11, 0xef, 0x11,
+ 0x1a, 0x5c, 0x38, 0xec, 0x30, 0xbc, 0xd6, 0x90,
+ 0xaa, 0x84, 0x2e, 0x14, 0xd5, 0x5a, 0xe0, 0xb5,
+ 0xb6, 0xbd, 0x2c, 0xb8, 0x4d, 0x89, 0xa6, 0x6d,
+ 0xfe, 0x9f, 0xcd, 0x9e, 0xb7, 0xa2, 0x1b, 0x0f,
+ 0x84, 0xb0, 0x91, 0x38, 0x9a, 0xac, 0xcd, 0xa5,
+ 0xbe, 0x70, 0x54, 0x98, 0x1c, 0x07, 0x64, 0x68,
+ 0xeb, 0x55, 0x52, 0x8e, 0x35, 0x97, 0x74, 0x7f,
+ 0x2d, 0x15, 0x62, 0x3f, 0xbe, 0x11, 0x57, 0x11,
+ 0x4d, 0xa7, 0x99, 0x53, 0xc3, 0xd9, 0xcd, 0xd0,
+ 0xe6, 0x53, 0xb5, 0xfd, 0x2b, 0xaa, 0x29, 0x3e,
+ 0x69, 0x03, 0xef, 0x11, 0xe9, 0x88, 0x2f, 0x0d,
+ 0xed, 0x5f, 0xd4, 0x3a, 0x31, 0xf0, 0x4c, 0x3a,
+ 0xfb, 0xe8, 0x01, 0x61, 0x47, 0x95, 0xf5, 0xd2,
+ 0x7d, 0x1a, 0xab, 0x7e, 0xc9, 0xd1, 0xd5, 0x13,
+ 0x0a, 0xed, 0xc5, 0x62, 0xee, 0x0b, 0x3f, 0x1d,
+ 0xd1, 0x46, 0xc9, 0x62, 0x25, 0xd2, 0x13, 0x1d,
+ 0x51, 0xee, 0xb2, 0x2d, 0x4b, 0x42, 0x33, 0xe5,
+ 0x50, 0xe5, 0x21, 0x80, 0xac, 0x4f, 0xd0, 0x7a,
+ 0x67, 0x62, 0x1c, 0x74, 0x51, 0x04, 0x69, 0x54,
+ 0x5b, 0x5d, 0x39, 0xfb, 0x17, 0x5f, 0xee, 0xd5,
+ 0x9a, 0xb1, 0xaa, 0x9f, 0xed, 0x45, 0xf4, 0x2e,
+ 0x6b, 0x45, 0xba, 0xc3, 0xec, 0x45, 0xba, 0x6e,
+ 0x44, 0x92, 0x9f, 0xc4, 0xe1, 0xf5, 0xd0, 0x67,
+ 0xab, 0x19, 0xfd, 0x64, 0x31, 0x4a, 0xfa, 0xfc,
+ 0x1c, 0xb9, 0x41, 0x41, 0xbf, 0xdc, 0x84, 0xe1,
+ 0x06, 0x84, 0xab, 0x79, 0xdc, 0x32, 0xc4, 0x3b,
+ 0xcd, 0xfe, 0x0e, 0x3d, 0x41, 0xd9, 0xdb, 0x89,
+ 0xb4, 0x3c, 0x05, 0xab, 0xd3, 0x03, 0x05, 0x96,
+ 0x03, 0xfb, 0x24, 0x2a, 0x9a, 0xfc, 0x2c, 0xce,
+ 0x32, 0x47, 0x46, 0xa1, 0x9f, 0xca, 0x5f, 0x2b,
+ 0xdd, 0x15, 0xd7, 0x02, 0x1d, 0x30, 0x54, 0x42,
+ 0xcf, 0x77, 0xf9, 0xd1, 0x26, 0xf4, 0xa6, 0x84,
+ 0xce, 0x69, 0x58, 0xba, 0xd3, 0xd6, 0xa6, 0x6c,
+ 0xcd, 0x57, 0x0e, 0x6c, 0xa3, 0x98, 0xaf, 0xe1,
+ 0x5f, 0x59, 0x5a, 0x7b, 0xf2, 0x2f, 0x3d, 0xf9,
+ 0x0b, 0xf2, 0xb0, 0xda, 0x37, 0x94, 0x6a, 0xf8,
+ 0x7f, 0x51, 0xfa, 0x48, 0x73, 0xa6, 0xe0, 0x12,
+ 0x05, 0x36, 0x38, 0x3a, 0x43, 0x57, 0x67, 0x81,
+ 0x95, 0xb5, 0xcb, 0xf8, 0x01, 0x0a, 0x13, 0x17,
+ 0x2d, 0x67, 0xae, 0xbc, 0xed, 0x5d, 0xaf, 0xb9,
+ 0xce, 0xcf, 0xd1, 0x0b, 0x19, 0x90, 0xab, 0xe0,
+ 0x30, 0x48, 0x62, 0x73, 0x75, 0x8d, 0x93, 0x98,
+ 0xab, 0xdf, 0xe9, 0xf4, 0x1a, 0x60, 0x6c, 0x70,
+ 0xa8, 0xb4, 0xe0, 0xe6, 0xf2, 0xff, 0x0b, 0x62,
+ 0x6a, 0x87, 0x8a, 0xb0, 0xcf, 0xe6, 0xee, 0x38,
+ 0x79, 0x7c, 0x80, 0x84, 0xa9, 0xe2, 0xe4, 0xe7,
+ 0x00, 0x00, 0x00, 0x0c, 0x15, 0x1b, 0x20, 0x2c,
+ 0x36, 0x3f, 0x48, },
+ },
diff --git a/crypto/ml_dsa/dilithium_selftest.c b/crypto/ml_dsa/dilithium_selftest.c
index 5bc5f11c4ced..5703b90ed539 100644
--- a/crypto/ml_dsa/dilithium_selftest.c
+++ b/crypto/ml_dsa/dilithium_selftest.c
@@ -40,6 +40,9 @@ static const struct dilithium_testvector dilithium44_testvectors[] = {
static const struct dilithium_testvector dilithium65_testvectors[] = {
#include "dilithium_pure_rejection_vectors_65.h"
};
+static const struct dilithium_testvector dilithium87_testvectors[] = {
+#include "dilithium_pure_rejection_vectors_87.h"
+};
/*
* Allow kunit to free a crypto signature processing object.
@@ -152,9 +155,23 @@ static void dilithium65_kunit_test(struct kunit *test)
KUNIT_SUCCEED(test);
}
+static void dilithium87_kunit_test(struct kunit *test)
+{
+ const struct dilithium_testvector *tc = dilithium87_testvectors;
+ int count = ARRAY_SIZE(dilithium87_testvectors);
+
+ for (int index = 0; index < count; index++) {
+ dilithium_siggen_test_one(test, index, &tc[index]);
+ dilithium_sigver_test_one(test, index, &tc[index]);
+ }
+
+ KUNIT_SUCCEED(test);
+}
+
static struct kunit_case __refdata dilithium_kunit_cases[] = {
KUNIT_CASE(dilithium44_kunit_test),
KUNIT_CASE(dilithium65_kunit_test),
+ KUNIT_CASE(dilithium87_kunit_test),
{}
};
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 15/17] pkcs7: Allow the signing algo to calculate the digest itself
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (13 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 14/17] crypto: Add ML-DSA-87 " David Howells
@ 2025-10-17 14:42 ` David Howells
2025-10-17 14:43 ` [PATCH v6 16/17] pkcs7, x509: Add ML-DSA support David Howells
2025-10-17 14:43 ` [PATCH v6 17/17] modsign: Enable ML-DSA module signing David Howells
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:42 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
The ML-DSA public key algorithm really wants to calculate the message
digest itself, rather than having the digest precalculated and fed to it
separately as RSA does[*]. The kernel's PKCS#7 parser, however, is
designed around the latter approach.
[*] ML-DSA does allow for an "external mu", but CMS doesn't yet have that
standardised.
Fix this by noting in the public_key_signature struct when the signing
algorithm is going to want this and then, rather than doing the digest of
the authenticatedAttributes ourselves and overwriting the sig->digest with
that, replace sig->digest with a copy of the contents of the
authenticatedAttributes section and adjust the digest length to match.
This will then be fed to the public key algorithm as normal which can do
what it wants with the data.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Lukas Wunner <lukas@wunner.de>
cc: Ignat Korchagin <ignat@cloudflare.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: keyrings@vger.kernel.org
cc: linux-crypto@vger.kernel.org
---
crypto/asymmetric_keys/pkcs7_parser.c | 4 +--
crypto/asymmetric_keys/pkcs7_verify.c | 48 ++++++++++++++++++---------
include/crypto/public_key.h | 1 +
3 files changed, 36 insertions(+), 17 deletions(-)
diff --git a/crypto/asymmetric_keys/pkcs7_parser.c b/crypto/asymmetric_keys/pkcs7_parser.c
index 423d13c47545..3cdbab3b9f50 100644
--- a/crypto/asymmetric_keys/pkcs7_parser.c
+++ b/crypto/asymmetric_keys/pkcs7_parser.c
@@ -599,8 +599,8 @@ int pkcs7_sig_note_set_of_authattrs(void *context, size_t hdrlen,
}
/* We need to switch the 'CONT 0' to a 'SET OF' when we digest */
- sinfo->authattrs = value - (hdrlen - 1);
- sinfo->authattrs_len = vlen + (hdrlen - 1);
+ sinfo->authattrs = value - hdrlen;
+ sinfo->authattrs_len = vlen + hdrlen;
return 0;
}
diff --git a/crypto/asymmetric_keys/pkcs7_verify.c b/crypto/asymmetric_keys/pkcs7_verify.c
index 6d6475e3a9bf..0f9f515b784d 100644
--- a/crypto/asymmetric_keys/pkcs7_verify.c
+++ b/crypto/asymmetric_keys/pkcs7_verify.c
@@ -70,8 +70,6 @@ static int pkcs7_digest(struct pkcs7_message *pkcs7,
* digest we just calculated.
*/
if (sinfo->authattrs) {
- u8 tag;
-
if (!sinfo->msgdigest) {
pr_warn("Sig %u: No messageDigest\n", sinfo->index);
ret = -EKEYREJECTED;
@@ -97,20 +95,40 @@ static int pkcs7_digest(struct pkcs7_message *pkcs7,
* as the contents of the digest instead. Note that we need to
* convert the attributes from a CONT.0 into a SET before we
* hash it.
+ *
+ * However, for certain algorithms, such as ML-DSA, the digest
+ * is integrated into the signing algorithm. In such a case,
+ * we copy the authattrs, modifying the tag type, and set that
+ * as the digest.
*/
- memset(sig->digest, 0, sig->digest_size);
-
- ret = crypto_shash_init(desc);
- if (ret < 0)
- goto error;
- tag = ASN1_CONS_BIT | ASN1_SET;
- ret = crypto_shash_update(desc, &tag, 1);
- if (ret < 0)
- goto error;
- ret = crypto_shash_finup(desc, sinfo->authattrs,
- sinfo->authattrs_len, sig->digest);
- if (ret < 0)
- goto error;
+ if (sig->algo_does_hash) {
+ kfree(sig->digest);
+
+ ret = -ENOMEM;
+ sig->digest = kmalloc(umax(sinfo->authattrs_len, sig->digest_size),
+ GFP_KERNEL);
+ if (!sig->digest)
+ goto error_no_desc;
+
+ sig->digest_size = sinfo->authattrs_len;
+ memcpy(sig->digest, sinfo->authattrs, sinfo->authattrs_len);
+ ((u8 *)sig->digest)[0] = ASN1_CONS_BIT | ASN1_SET;
+ ret = 0;
+ } else {
+ u8 tag = ASN1_CONS_BIT | ASN1_SET;
+
+ ret = crypto_shash_init(desc);
+ if (ret < 0)
+ goto error;
+ ret = crypto_shash_update(desc, &tag, 1);
+ if (ret < 0)
+ goto error;
+ ret = crypto_shash_finup(desc, sinfo->authattrs + 1,
+ sinfo->authattrs_len - 1,
+ sig->digest);
+ if (ret < 0)
+ goto error;
+ }
pr_devel("AADigest = [%*ph]\n", 8, sig->digest);
}
diff --git a/include/crypto/public_key.h b/include/crypto/public_key.h
index 81098e00c08f..e4ec8003a3a4 100644
--- a/include/crypto/public_key.h
+++ b/include/crypto/public_key.h
@@ -46,6 +46,7 @@ struct public_key_signature {
u8 *digest;
u32 s_size; /* Number of bytes in signature */
u32 digest_size; /* Number of bytes in digest */
+ bool algo_does_hash; /* Public key algo does its own hashing */
const char *pkey_algo;
const char *hash_algo;
const char *encoding;
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 16/17] pkcs7, x509: Add ML-DSA support
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (14 preceding siblings ...)
2025-10-17 14:42 ` [PATCH v6 15/17] pkcs7: Allow the signing algo to calculate the digest itself David Howells
@ 2025-10-17 14:43 ` David Howells
2025-10-17 14:43 ` [PATCH v6 17/17] modsign: Enable ML-DSA module signing David Howells
16 siblings, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:43 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Add support for ML-DSA keys and signatures to the PKCS#7 and X.509
implementations.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Lukas Wunner <lukas@wunner.de>
cc: Ignat Korchagin <ignat@cloudflare.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: keyrings@vger.kernel.org
cc: linux-crypto@vger.kernel.org
---
crypto/asymmetric_keys/pkcs7_parser.c | 15 ++++++++++++++
crypto/asymmetric_keys/public_key.c | 7 +++++++
crypto/asymmetric_keys/x509_cert_parser.c | 24 +++++++++++++++++++++++
include/linux/oid_registry.h | 5 +++++
4 files changed, 51 insertions(+)
diff --git a/crypto/asymmetric_keys/pkcs7_parser.c b/crypto/asymmetric_keys/pkcs7_parser.c
index 3cdbab3b9f50..d7c88b90a4fd 100644
--- a/crypto/asymmetric_keys/pkcs7_parser.c
+++ b/crypto/asymmetric_keys/pkcs7_parser.c
@@ -297,6 +297,21 @@ int pkcs7_sig_note_pkey_algo(void *context, size_t hdrlen,
ctx->sinfo->sig->pkey_algo = "ecrdsa";
ctx->sinfo->sig->encoding = "raw";
break;
+ case OID_id_ml_dsa_44:
+ ctx->sinfo->sig->pkey_algo = "ml-dsa44";
+ ctx->sinfo->sig->encoding = "raw";
+ ctx->sinfo->sig->algo_does_hash = true;
+ break;
+ case OID_id_ml_dsa_65:
+ ctx->sinfo->sig->pkey_algo = "ml-dsa65";
+ ctx->sinfo->sig->encoding = "raw";
+ ctx->sinfo->sig->algo_does_hash = true;
+ break;
+ case OID_id_ml_dsa_87:
+ ctx->sinfo->sig->pkey_algo = "ml-dsa87";
+ ctx->sinfo->sig->encoding = "raw";
+ ctx->sinfo->sig->algo_does_hash = true;
+ break;
default:
printk("Unsupported pkey algo: %u\n", ctx->last_oid);
return -ENOPKG;
diff --git a/crypto/asymmetric_keys/public_key.c b/crypto/asymmetric_keys/public_key.c
index e5b177c8e842..96e084668d1b 100644
--- a/crypto/asymmetric_keys/public_key.c
+++ b/crypto/asymmetric_keys/public_key.c
@@ -142,6 +142,13 @@ software_key_determine_akcipher(const struct public_key *pkey,
if (strcmp(hash_algo, "streebog256") != 0 &&
strcmp(hash_algo, "streebog512") != 0)
return -EINVAL;
+ } else if (strcmp(pkey->pkey_algo, "ml-dsa44") == 0 ||
+ strcmp(pkey->pkey_algo, "ml-dsa65") == 0 ||
+ strcmp(pkey->pkey_algo, "ml-dsa87") == 0) {
+ if (strcmp(encoding, "raw") != 0)
+ return -EINVAL;
+ if (!hash_algo)
+ return -EINVAL;
} else {
/* Unknown public key algorithm */
return -ENOPKG;
diff --git a/crypto/asymmetric_keys/x509_cert_parser.c b/crypto/asymmetric_keys/x509_cert_parser.c
index 8df3fa60a44f..6a2a77a647a5 100644
--- a/crypto/asymmetric_keys/x509_cert_parser.c
+++ b/crypto/asymmetric_keys/x509_cert_parser.c
@@ -257,6 +257,15 @@ int x509_note_sig_algo(void *context, size_t hdrlen, unsigned char tag,
case OID_gost2012Signature512:
ctx->cert->sig->hash_algo = "streebog512";
goto ecrdsa;
+ case OID_id_ml_dsa_44:
+ ctx->cert->sig->pkey_algo = "ml-dsa44";
+ goto ml_dsa;
+ case OID_id_ml_dsa_65:
+ ctx->cert->sig->pkey_algo = "ml-dsa65";
+ goto ml_dsa;
+ case OID_id_ml_dsa_87:
+ ctx->cert->sig->pkey_algo = "ml-dsa87";
+ goto ml_dsa;
}
rsa_pkcs1:
@@ -274,6 +283,12 @@ int x509_note_sig_algo(void *context, size_t hdrlen, unsigned char tag,
ctx->cert->sig->encoding = "x962";
ctx->sig_algo = ctx->last_oid;
return 0;
+ml_dsa:
+ ctx->cert->sig->algo_does_hash = true;
+ ctx->cert->sig->hash_algo = ctx->cert->sig->pkey_algo;
+ ctx->cert->sig->encoding = "raw";
+ ctx->sig_algo = ctx->last_oid;
+ return 0;
}
/*
@@ -524,6 +539,15 @@ int x509_extract_key_data(void *context, size_t hdrlen,
return -ENOPKG;
}
break;
+ case OID_id_ml_dsa_44:
+ ctx->cert->pub->pkey_algo = "ml-dsa44";
+ break;
+ case OID_id_ml_dsa_65:
+ ctx->cert->pub->pkey_algo = "ml-dsa65";
+ break;
+ case OID_id_ml_dsa_87:
+ ctx->cert->pub->pkey_algo = "ml-dsa87";
+ break;
default:
return -ENOPKG;
}
diff --git a/include/linux/oid_registry.h b/include/linux/oid_registry.h
index 6de479ebbe5d..30821a6a4f72 100644
--- a/include/linux/oid_registry.h
+++ b/include/linux/oid_registry.h
@@ -145,6 +145,11 @@ enum OID {
OID_id_rsassa_pkcs1_v1_5_with_sha3_384, /* 2.16.840.1.101.3.4.3.15 */
OID_id_rsassa_pkcs1_v1_5_with_sha3_512, /* 2.16.840.1.101.3.4.3.16 */
+ /* NIST FIPS-204 ML-DSA (Dilithium) */
+ OID_id_ml_dsa_44, /* 2.16.840.1.101.3.4.3.17 */
+ OID_id_ml_dsa_65, /* 2.16.840.1.101.3.4.3.18 */
+ OID_id_ml_dsa_87, /* 2.16.840.1.101.3.4.3.19 */
+
OID__NR
};
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v6 17/17] modsign: Enable ML-DSA module signing
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
` (15 preceding siblings ...)
2025-10-17 14:43 ` [PATCH v6 16/17] pkcs7, x509: Add ML-DSA support David Howells
@ 2025-10-17 14:43 ` David Howells
2025-10-21 13:51 ` Petr Pavlu
2025-11-06 17:37 ` David Howells
16 siblings, 2 replies; 23+ messages in thread
From: David Howells @ 2025-10-17 14:43 UTC (permalink / raw)
To: Eric Biggers
Cc: David Howells, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Petr Pavlu, Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
Allow ML-DSA module signing to be enabled.
Note that openssl's CMS_*() function suite does not, as of openssl-3.5.1,
support the use of CMS_NOATTR with ML-DSA, so the prohibition against using
authenticatedAttributes with module signing has to be removed. The selected
digest then applies only to the algorithm used to calculate the digest
stored in the messageDigest attribute.
The ML-DSA algorithm uses its own internal choice of digest (SHAKE256)
without regard to what's specified in the CMS message. This is, in theory,
configurable, but there's currently no hook in the crypto_sig API to do
that, though possibly it could be done by parameterising the name of the
algorithm, e.g. ("ml-dsa87(sha512)").
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Lukas Wunner <lukas@wunner.de>
cc: Ignat Korchagin <ignat@cloudflare.com>
cc: Stephan Mueller <smueller@chronox.de>
cc: Eric Biggers <ebiggers@kernel.org>
cc: Herbert Xu <herbert@gondor.apana.org.au>
cc: keyrings@vger.kernel.org
cc: linux-crypto@vger.kernel.org
---
Documentation/admin-guide/module-signing.rst | 15 +++++------
certs/Kconfig | 24 ++++++++++++++++++
certs/Makefile | 3 +++
crypto/asymmetric_keys/pkcs7_verify.c | 4 ---
kernel/module/Kconfig | 5 ++++
scripts/sign-file.c | 26 ++++++++++++++------
6 files changed, 58 insertions(+), 19 deletions(-)
diff --git a/Documentation/admin-guide/module-signing.rst b/Documentation/admin-guide/module-signing.rst
index a8667a777490..6daff80c277b 100644
--- a/Documentation/admin-guide/module-signing.rst
+++ b/Documentation/admin-guide/module-signing.rst
@@ -28,10 +28,11 @@ trusted userspace bits.
This facility uses X.509 ITU-T standard certificates to encode the public keys
involved. The signatures are not themselves encoded in any industrial standard
-type. The built-in facility currently only supports the RSA & NIST P-384 ECDSA
-public key signing standard (though it is pluggable and permits others to be
-used). The possible hash algorithms that can be used are SHA-2 and SHA-3 of
-sizes 256, 384, and 512 (the algorithm is selected by data in the signature).
+type. The built-in facility currently only supports the RSA, NIST P-384 ECDSA
+and NIST FIPS-204 ML-DSA (Dilithium) public key signing standards (though it is
+pluggable and permits others to be used). For RSA and ECDSA, the possible hash
+algorithms that can be used are SHA-2 and SHA-3 of sizes 256, 384, and 512 (the
+algorithm is selected by data in the signature); ML-DSA uses SHAKE256.
==========================
@@ -146,9 +147,9 @@ into vmlinux) using parameters in the::
file (which is also generated if it does not already exist).
-One can select between RSA (``MODULE_SIG_KEY_TYPE_RSA``) and ECDSA
-(``MODULE_SIG_KEY_TYPE_ECDSA``) to generate either RSA 4k or NIST
-P-384 keypair.
+One can select between RSA (``MODULE_SIG_KEY_TYPE_RSA``), ECDSA
+(``MODULE_SIG_KEY_TYPE_ECDSA``) and ML-DSA (``MODULE_SIG_KEY_TYPE_ML_DSA``) to
+generate an RSA 4k, a NIST P-384 keypair or an ML-DSA keypair.
It is strongly recommended that you provide your own x509.genkey file.
diff --git a/certs/Kconfig b/certs/Kconfig
index 78307dc25559..a09db4b2c87c 100644
--- a/certs/Kconfig
+++ b/certs/Kconfig
@@ -39,6 +39,30 @@ config MODULE_SIG_KEY_TYPE_ECDSA
Note: Remove all ECDSA signing keys, e.g. certs/signing_key.pem,
when falling back to building Linux 5.14 and older kernels.
+config MODULE_SIG_KEY_TYPE_ML_DSA_44
+ bool "ML-DSA (Dilithium) 44"
+ select CRYPTO_ML_DSA
+ select LIB_SHA3
+ help
+ Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
+ with a SHAKE256 'hash' of the message.
+
+config MODULE_SIG_KEY_TYPE_ML_DSA_65
+ bool "ML-DSA (Dilithium) 65"
+ select CRYPTO_ML_DSA
+ select LIB_SHA3
+ help
+ Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
+ with a SHAKE256 'hash' of the message.
+
+config MODULE_SIG_KEY_TYPE_ML_DSA_87
+ bool "ML-DSA (Dilithium) 87"
+ select CRYPTO_ML_DSA
+ select LIB_SHA3
+ help
+ Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
+ with a SHAKE256 'hash' of the message.
+
endchoice
config SYSTEM_TRUSTED_KEYRING
diff --git a/certs/Makefile b/certs/Makefile
index f6fa4d8d75e0..231379c91b86 100644
--- a/certs/Makefile
+++ b/certs/Makefile
@@ -43,6 +43,9 @@ targets += x509_certificate_list
ifeq ($(CONFIG_MODULE_SIG_KEY),certs/signing_key.pem)
keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_ECDSA) := -newkey ec -pkeyopt ec_paramgen_curve:secp384r1
+keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_ML_DSA_44) := -newkey ml-dsa-44
+keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_ML_DSA_65) := -newkey ml-dsa-65
+keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_ML_DSA_87) := -newkey ml-dsa-87
quiet_cmd_gen_key = GENKEY $@
cmd_gen_key = openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days 36500 \
diff --git a/crypto/asymmetric_keys/pkcs7_verify.c b/crypto/asymmetric_keys/pkcs7_verify.c
index 0f9f515b784d..f7ea1d41771d 100644
--- a/crypto/asymmetric_keys/pkcs7_verify.c
+++ b/crypto/asymmetric_keys/pkcs7_verify.c
@@ -424,10 +424,6 @@ int pkcs7_verify(struct pkcs7_message *pkcs7,
pr_warn("Invalid module sig (not pkcs7-data)\n");
return -EKEYREJECTED;
}
- if (pkcs7->have_authattrs) {
- pr_warn("Invalid module sig (has authattrs)\n");
- return -EKEYREJECTED;
- }
break;
case VERIFYING_FIRMWARE_SIGNATURE:
if (pkcs7->data_type != OID_data) {
diff --git a/kernel/module/Kconfig b/kernel/module/Kconfig
index 2a1beebf1d37..4b5d1601d537 100644
--- a/kernel/module/Kconfig
+++ b/kernel/module/Kconfig
@@ -327,6 +327,10 @@ config MODULE_SIG_SHA3_512
bool "SHA3-512"
select CRYPTO_SHA3
+config MODULE_SIG_SHAKE256
+ bool "SHAKE256"
+ select CRYPTO_SHA3
+
endchoice
config MODULE_SIG_HASH
@@ -339,6 +343,7 @@ config MODULE_SIG_HASH
default "sha3-256" if MODULE_SIG_SHA3_256
default "sha3-384" if MODULE_SIG_SHA3_384
default "sha3-512" if MODULE_SIG_SHA3_512
+ default "shake256" if MODULE_SIG_SHAKE256
config MODULE_COMPRESS
bool "Module compression"
diff --git a/scripts/sign-file.c b/scripts/sign-file.c
index 7070245edfc1..b726581075f9 100644
--- a/scripts/sign-file.c
+++ b/scripts/sign-file.c
@@ -315,18 +315,28 @@ int main(int argc, char **argv)
ERR(!digest_algo, "EVP_get_digestbyname");
#ifndef USE_PKCS7
+
+ unsigned int flags =
+ CMS_NOCERTS |
+ CMS_PARTIAL |
+ CMS_BINARY |
+ CMS_DETACHED |
+ CMS_STREAM |
+ CMS_NOSMIMECAP |
+ CMS_NO_SIGNING_TIME |
+ use_keyid;
+ if (!EVP_PKEY_is_a(private_key, "ML-DSA-44") &&
+ !EVP_PKEY_is_a(private_key, "ML-DSA-65") &&
+ !EVP_PKEY_is_a(private_key, "ML-DSA-87"))
+ flags |= use_signed_attrs;
+
/* Load the signature message from the digest buffer. */
- cms = CMS_sign(NULL, NULL, NULL, NULL,
- CMS_NOCERTS | CMS_PARTIAL | CMS_BINARY |
- CMS_DETACHED | CMS_STREAM);
+ cms = CMS_sign(NULL, NULL, NULL, NULL, flags);
ERR(!cms, "CMS_sign");
- ERR(!CMS_add1_signer(cms, x509, private_key, digest_algo,
- CMS_NOCERTS | CMS_BINARY |
- CMS_NOSMIMECAP | use_keyid |
- use_signed_attrs),
+ ERR(!CMS_add1_signer(cms, x509, private_key, digest_algo, flags),
"CMS_add1_signer");
- ERR(CMS_final(cms, bm, NULL, CMS_NOCERTS | CMS_BINARY) != 1,
+ ERR(CMS_final(cms, bm, NULL, flags) != 1,
"CMS_final");
#else
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH v6 01/17] s390/sha3: Rename conflicting functions
2025-10-17 14:42 ` [PATCH v6 01/17] s390/sha3: Rename conflicting functions David Howells
@ 2025-10-18 8:59 ` Christophe Leroy
2025-10-18 12:17 ` David Howells
1 sibling, 0 replies; 23+ messages in thread
From: Christophe Leroy @ 2025-10-18 8:59 UTC (permalink / raw)
To: David Howells, Eric Biggers
Cc: Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu, Stephan Mueller,
Lukas Wunner, Ignat Korchagin, Luis Chamberlain, Petr Pavlu,
Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel, Harald Freudenberger, Holger Dengler,
linux-s390
Le 17/10/2025 à 16:42, David Howells a écrit :
> Rename the s390 sha3_* functions to have an "s390_" prefix to avoid
> conflict with generic code.
The functions are static, why would they conflict with generic code ?
Also generic code doesn't have such functions at the moment, are they
added by a follow patch ?
Christophe
>
> Signed-off-by: David Howells <dhowells@redhat.com>
> Acked-By: Harald Freudenberger <freude@linux.ibm.com>
> cc: Eric Biggers <ebiggers@kernel.org>
> cc: Jason A. Donenfeld <Jason@zx2c4.com>
> cc: Ard Biesheuvel <ardb@kernel.org>
> cc: Holger Dengler <dengler@linux.ibm.com>
> cc: Herbert Xu <herbert@gondor.apana.org.au>
> cc: Stephan Mueller <smueller@chronox.de>
> cc: linux-crypto@vger.kernel.org
> cc: linux-s390@vger.kernel.org
> ---
> arch/s390/crypto/sha3_256_s390.c | 26 +++++++++++++-------------
> arch/s390/crypto/sha3_512_s390.c | 26 +++++++++++++-------------
> 2 files changed, 26 insertions(+), 26 deletions(-)
>
> diff --git a/arch/s390/crypto/sha3_256_s390.c b/arch/s390/crypto/sha3_256_s390.c
> index 03bb4f4bab70..fd5ecae60a57 100644
> --- a/arch/s390/crypto/sha3_256_s390.c
> +++ b/arch/s390/crypto/sha3_256_s390.c
> @@ -19,7 +19,7 @@
>
> #include "sha.h"
>
> -static int sha3_256_init(struct shash_desc *desc)
> +static int s390_sha3_256_init(struct shash_desc *desc)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
>
> @@ -32,7 +32,7 @@ static int sha3_256_init(struct shash_desc *desc)
> return 0;
> }
>
> -static int sha3_256_export(struct shash_desc *desc, void *out)
> +static int s390_sha3_256_export(struct shash_desc *desc, void *out)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
> union {
> @@ -50,7 +50,7 @@ static int sha3_256_export(struct shash_desc *desc, void *out)
> return 0;
> }
>
> -static int sha3_256_import(struct shash_desc *desc, const void *in)
> +static int s390_sha3_256_import(struct shash_desc *desc, const void *in)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
> union {
> @@ -68,22 +68,22 @@ static int sha3_256_import(struct shash_desc *desc, const void *in)
> return 0;
> }
>
> -static int sha3_224_import(struct shash_desc *desc, const void *in)
> +static int s390_sha3_224_import(struct shash_desc *desc, const void *in)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
>
> - sha3_256_import(desc, in);
> + s390_sha3_256_import(desc, in);
> sctx->func = CPACF_KIMD_SHA3_224;
> return 0;
> }
>
> static struct shash_alg sha3_256_alg = {
> .digestsize = SHA3_256_DIGEST_SIZE, /* = 32 */
> - .init = sha3_256_init,
> + .init = s390_sha3_256_init,
> .update = s390_sha_update_blocks,
> .finup = s390_sha_finup,
> - .export = sha3_256_export,
> - .import = sha3_256_import,
> + .export = s390_sha3_256_export,
> + .import = s390_sha3_256_import,
> .descsize = S390_SHA_CTX_SIZE,
> .statesize = SHA3_STATE_SIZE,
> .base = {
> @@ -96,22 +96,22 @@ static struct shash_alg sha3_256_alg = {
> }
> };
>
> -static int sha3_224_init(struct shash_desc *desc)
> +static int s390_sha3_224_init(struct shash_desc *desc)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
>
> - sha3_256_init(desc);
> + s390_sha3_256_init(desc);
> sctx->func = CPACF_KIMD_SHA3_224;
> return 0;
> }
>
> static struct shash_alg sha3_224_alg = {
> .digestsize = SHA3_224_DIGEST_SIZE,
> - .init = sha3_224_init,
> + .init = s390_sha3_224_init,
> .update = s390_sha_update_blocks,
> .finup = s390_sha_finup,
> - .export = sha3_256_export, /* same as for 256 */
> - .import = sha3_224_import, /* function code different! */
> + .export = s390_sha3_256_export, /* same as for 256 */
> + .import = s390_sha3_224_import, /* function code different! */
> .descsize = S390_SHA_CTX_SIZE,
> .statesize = SHA3_STATE_SIZE,
> .base = {
> diff --git a/arch/s390/crypto/sha3_512_s390.c b/arch/s390/crypto/sha3_512_s390.c
> index a5c9690eecb1..f4b52a3a0433 100644
> --- a/arch/s390/crypto/sha3_512_s390.c
> +++ b/arch/s390/crypto/sha3_512_s390.c
> @@ -18,7 +18,7 @@
>
> #include "sha.h"
>
> -static int sha3_512_init(struct shash_desc *desc)
> +static int s390_sha3_512_init(struct shash_desc *desc)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
>
> @@ -31,7 +31,7 @@ static int sha3_512_init(struct shash_desc *desc)
> return 0;
> }
>
> -static int sha3_512_export(struct shash_desc *desc, void *out)
> +static int s390_sha3_512_export(struct shash_desc *desc, void *out)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
> union {
> @@ -49,7 +49,7 @@ static int sha3_512_export(struct shash_desc *desc, void *out)
> return 0;
> }
>
> -static int sha3_512_import(struct shash_desc *desc, const void *in)
> +static int s390_sha3_512_import(struct shash_desc *desc, const void *in)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
> union {
> @@ -67,22 +67,22 @@ static int sha3_512_import(struct shash_desc *desc, const void *in)
> return 0;
> }
>
> -static int sha3_384_import(struct shash_desc *desc, const void *in)
> +static int s390_sha3_384_import(struct shash_desc *desc, const void *in)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
>
> - sha3_512_import(desc, in);
> + s390_sha3_512_import(desc, in);
> sctx->func = CPACF_KIMD_SHA3_384;
> return 0;
> }
>
> static struct shash_alg sha3_512_alg = {
> .digestsize = SHA3_512_DIGEST_SIZE,
> - .init = sha3_512_init,
> + .init = s390_sha3_512_init,
> .update = s390_sha_update_blocks,
> .finup = s390_sha_finup,
> - .export = sha3_512_export,
> - .import = sha3_512_import,
> + .export = s390_sha3_512_export,
> + .import = s390_sha3_512_import,
> .descsize = S390_SHA_CTX_SIZE,
> .statesize = SHA3_STATE_SIZE,
> .base = {
> @@ -97,22 +97,22 @@ static struct shash_alg sha3_512_alg = {
>
> MODULE_ALIAS_CRYPTO("sha3-512");
>
> -static int sha3_384_init(struct shash_desc *desc)
> +static int s390_sha3_384_init(struct shash_desc *desc)
> {
> struct s390_sha_ctx *sctx = shash_desc_ctx(desc);
>
> - sha3_512_init(desc);
> + s390_sha3_512_init(desc);
> sctx->func = CPACF_KIMD_SHA3_384;
> return 0;
> }
>
> static struct shash_alg sha3_384_alg = {
> .digestsize = SHA3_384_DIGEST_SIZE,
> - .init = sha3_384_init,
> + .init = s390_sha3_384_init,
> .update = s390_sha_update_blocks,
> .finup = s390_sha_finup,
> - .export = sha3_512_export, /* same as for 512 */
> - .import = sha3_384_import, /* function code different! */
> + .export = s390_sha3_512_export, /* same as for 512 */
> + .import = s390_sha3_384_import, /* function code different! */
> .descsize = S390_SHA_CTX_SIZE,
> .statesize = SHA3_STATE_SIZE,
> .base = {
>
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v6 02/17] arm64/sha3: Rename conflicting functions
2025-10-17 14:42 ` [PATCH v6 02/17] arm64/sha3: " David Howells
@ 2025-10-18 9:00 ` Christophe Leroy
0 siblings, 0 replies; 23+ messages in thread
From: Christophe Leroy @ 2025-10-18 9:00 UTC (permalink / raw)
To: David Howells, Eric Biggers
Cc: Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu, Stephan Mueller,
Lukas Wunner, Ignat Korchagin, Luis Chamberlain, Petr Pavlu,
Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel, Catalin Marinas, Will Deacon,
linux-arm-kernel
Le 17/10/2025 à 16:42, David Howells a écrit :
> Rename the arm64 sha3_* functions to have an "arm64_" prefix to avoid
> conflict with generic code.
Same comment as previous patch, the functions are static, why would they
conflict with generic code ?
Also generic code doesn't have such functions at the moment, are they
added by a follow patch ?
Christophe
>
> Signed-off-by: David Howells <dhowells@redhat.com>
> cc: Eric Biggers <ebiggers@kernel.org>
> cc: Jason A. Donenfeld <Jason@zx2c4.com>
> cc: Ard Biesheuvel <ardb@kernel.org>
> cc: Catalin Marinas <catalin.marinas@arm.com>
> cc: Will Deacon <will@kernel.org>
> cc: Herbert Xu <herbert@gondor.apana.org.au>
> cc: Stephan Mueller <smueller@chronox.de>
> cc: linux-crypto@vger.kernel.org
> cc: linux-arm-kernel@lists.infradead.org
> ---
> arch/arm64/crypto/sha3-ce-glue.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm64/crypto/sha3-ce-glue.c b/arch/arm64/crypto/sha3-ce-glue.c
> index b4f1001046c9..426d8044535a 100644
> --- a/arch/arm64/crypto/sha3-ce-glue.c
> +++ b/arch/arm64/crypto/sha3-ce-glue.c
> @@ -31,7 +31,7 @@ MODULE_ALIAS_CRYPTO("sha3-512");
> asmlinkage int sha3_ce_transform(u64 *st, const u8 *data, int blocks,
> int md_len);
>
> -static int sha3_update(struct shash_desc *desc, const u8 *data,
> +static int arm64_sha3_update(struct shash_desc *desc, const u8 *data,
> unsigned int len)
> {
> struct sha3_state *sctx = shash_desc_ctx(desc);
> @@ -55,8 +55,8 @@ static int sha3_update(struct shash_desc *desc, const u8 *data,
> return len;
> }
>
> -static int sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
> - u8 *out)
> +static int arm64_sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
> + u8 *out)
> {
> struct sha3_state *sctx = shash_desc_ctx(desc);
> struct crypto_shash *tfm = desc->tfm;
> @@ -90,8 +90,8 @@ static int sha3_finup(struct shash_desc *desc, const u8 *src, unsigned int len,
> static struct shash_alg algs[] = { {
> .digestsize = SHA3_224_DIGEST_SIZE,
> .init = crypto_sha3_init,
> - .update = sha3_update,
> - .finup = sha3_finup,
> + .update = arm64_sha3_update,
> + .finup = arm64_sha3_finup,
> .descsize = SHA3_STATE_SIZE,
> .base.cra_name = "sha3-224",
> .base.cra_driver_name = "sha3-224-ce",
> @@ -102,8 +102,8 @@ static struct shash_alg algs[] = { {
> }, {
> .digestsize = SHA3_256_DIGEST_SIZE,
> .init = crypto_sha3_init,
> - .update = sha3_update,
> - .finup = sha3_finup,
> + .update = arm64_sha3_update,
> + .finup = arm64_sha3_finup,
> .descsize = SHA3_STATE_SIZE,
> .base.cra_name = "sha3-256",
> .base.cra_driver_name = "sha3-256-ce",
> @@ -114,8 +114,8 @@ static struct shash_alg algs[] = { {
> }, {
> .digestsize = SHA3_384_DIGEST_SIZE,
> .init = crypto_sha3_init,
> - .update = sha3_update,
> - .finup = sha3_finup,
> + .update = arm64_sha3_update,
> + .finup = arm64_sha3_finup,
> .descsize = SHA3_STATE_SIZE,
> .base.cra_name = "sha3-384",
> .base.cra_driver_name = "sha3-384-ce",
> @@ -126,8 +126,8 @@ static struct shash_alg algs[] = { {
> }, {
> .digestsize = SHA3_512_DIGEST_SIZE,
> .init = crypto_sha3_init,
> - .update = sha3_update,
> - .finup = sha3_finup,
> + .update = arm64_sha3_update,
> + .finup = arm64_sha3_finup,
> .descsize = SHA3_STATE_SIZE,
> .base.cra_name = "sha3-512",
> .base.cra_driver_name = "sha3-512-ce",
>
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v6 01/17] s390/sha3: Rename conflicting functions
2025-10-17 14:42 ` [PATCH v6 01/17] s390/sha3: Rename conflicting functions David Howells
2025-10-18 8:59 ` Christophe Leroy
@ 2025-10-18 12:17 ` David Howells
1 sibling, 0 replies; 23+ messages in thread
From: David Howells @ 2025-10-18 12:17 UTC (permalink / raw)
To: Christophe Leroy
Cc: dhowells, Eric Biggers, Jason A . Donenfeld, Ard Biesheuvel,
Herbert Xu, Stephan Mueller, Lukas Wunner, Ignat Korchagin,
Luis Chamberlain, Petr Pavlu, Daniel Gomez, Sami Tolvanen,
linux-crypto, keyrings, linux-modules, linux-kernel,
Harald Freudenberger, Holger Dengler, linux-s390
Christophe Leroy <christophe.leroy@csgroup.eu> wrote:
> Le 17/10/2025 à 16:42, David Howells a écrit :
> > Rename the s390 sha3_* functions to have an "s390_" prefix to avoid
> > conflict with generic code.
>
> The functions are static, why would they conflict with generic code ?
Because of #include <crypto/sha3.h>
> Also generic code doesn't have such functions at the moment, are they added by
> a follow patch ?
Yes. See patch 3.
David
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v6 17/17] modsign: Enable ML-DSA module signing
2025-10-17 14:43 ` [PATCH v6 17/17] modsign: Enable ML-DSA module signing David Howells
@ 2025-10-21 13:51 ` Petr Pavlu
2025-11-06 17:37 ` David Howells
1 sibling, 0 replies; 23+ messages in thread
From: Petr Pavlu @ 2025-10-21 13:51 UTC (permalink / raw)
To: David Howells
Cc: Eric Biggers, Jason A . Donenfeld, Ard Biesheuvel, Herbert Xu,
Stephan Mueller, Lukas Wunner, Ignat Korchagin, Luis Chamberlain,
Daniel Gomez, Sami Tolvanen, linux-crypto, keyrings,
linux-modules, linux-kernel
On 10/17/25 4:43 PM, David Howells wrote:
> Allow ML-DSA module signing to be enabled.
>
> Note that openssl's CMS_*() function suite does not, as of openssl-3.5.1,
> support the use of CMS_NOATTR with ML-DSA, so the prohibition against using
> authenticatedAttributes with module signing has to be removed. The selected
> digest then applies only to the algorithm used to calculate the digest
> stored in the messageDigest attribute.
>
> The ML-DSA algorithm uses its own internal choice of digest (SHAKE256)
> without regard to what's specified in the CMS message. This is, in theory,
> configurable, but there's currently no hook in the crypto_sig API to do
> that, though possibly it could be done by parameterising the name of the
> algorithm, e.g. ("ml-dsa87(sha512)").
>
> Signed-off-by: David Howells <dhowells@redhat.com>
> cc: Lukas Wunner <lukas@wunner.de>
> cc: Ignat Korchagin <ignat@cloudflare.com>
> cc: Stephan Mueller <smueller@chronox.de>
> cc: Eric Biggers <ebiggers@kernel.org>
> cc: Herbert Xu <herbert@gondor.apana.org.au>
> cc: keyrings@vger.kernel.org
> cc: linux-crypto@vger.kernel.org
> ---
> Documentation/admin-guide/module-signing.rst | 15 +++++------
> certs/Kconfig | 24 ++++++++++++++++++
> certs/Makefile | 3 +++
> crypto/asymmetric_keys/pkcs7_verify.c | 4 ---
> kernel/module/Kconfig | 5 ++++
> scripts/sign-file.c | 26 ++++++++++++++------
> 6 files changed, 58 insertions(+), 19 deletions(-)
>
> diff --git a/Documentation/admin-guide/module-signing.rst b/Documentation/admin-guide/module-signing.rst
> index a8667a777490..6daff80c277b 100644
> --- a/Documentation/admin-guide/module-signing.rst
> +++ b/Documentation/admin-guide/module-signing.rst
> @@ -28,10 +28,11 @@ trusted userspace bits.
>
> This facility uses X.509 ITU-T standard certificates to encode the public keys
> involved. The signatures are not themselves encoded in any industrial standard
> -type. The built-in facility currently only supports the RSA & NIST P-384 ECDSA
> -public key signing standard (though it is pluggable and permits others to be
> -used). The possible hash algorithms that can be used are SHA-2 and SHA-3 of
> -sizes 256, 384, and 512 (the algorithm is selected by data in the signature).
> +type. The built-in facility currently only supports the RSA, NIST P-384 ECDSA
> +and NIST FIPS-204 ML-DSA (Dilithium) public key signing standards (though it is
> +pluggable and permits others to be used). For RSA and ECDSA, the possible hash
> +algorithms that can be used are SHA-2 and SHA-3 of sizes 256, 384, and 512 (the
> +algorithm is selected by data in the signature); ML-DSA uses SHAKE256.
This update looks ok to me. However, I'll note some problems that
I noticed in the original text, notably:
The text doesn't match the implementation because kernel/module/Kconfig
still allows selecting SHA-1 for module signing. What happened is that
commit 16ab7cb5825f ("crypto: pkcs7 - remove sha1 support") initially
removed CONFIG_MODULE_SIG_SHA1. Then, commit f2b88bab69c8
("Documentation/module-signing.txt: bring up to date") removed it from
the documentation. However, commit 203a6763ab69 ("Revert "crypto: pkcs7
- remove sha1 support"") brought back CONFIG_MODULE_SIG_SHA1 without
reverting the documentation update.
Another problem is that for MODULE_SIG_KEY_TYPE_ECDSA, certs/Kconfig
contains the line
"depends on !(MODULE_SIG_SHA256 || MODULE_SIG_SHA3_256)",
which intends to allow ECDSA only with MODULE_SIG_SHA384,
MODULE_SIG_SHA512, MODULE_SIG_SHA3_384 and MODULE_SIG_SHA3_512. This
restriction was added in commit d4f5bfe20da9 ("certs: Limit
MODULE_SIG_KEY_TYPE_ECDSA to SHA384 or SHA512") and 446b1e0b7b39
("module: enable automatic module signing with FIPS 202 SHA-3").
However, the documentation suggests that ECDSA can still be used with
SHA-2/3 of size 256.
I'll prepare fixes for these issues. For the first problem, I think we
can drop CONFIG_MODULE_SIG_SHA1 instead of correcting the documentation.
>
>
> ==========================
> @@ -146,9 +147,9 @@ into vmlinux) using parameters in the::
>
> file (which is also generated if it does not already exist).
>
> -One can select between RSA (``MODULE_SIG_KEY_TYPE_RSA``) and ECDSA
> -(``MODULE_SIG_KEY_TYPE_ECDSA``) to generate either RSA 4k or NIST
> -P-384 keypair.
> +One can select between RSA (``MODULE_SIG_KEY_TYPE_RSA``), ECDSA
> +(``MODULE_SIG_KEY_TYPE_ECDSA``) and ML-DSA (``MODULE_SIG_KEY_TYPE_ML_DSA``) to
> +generate an RSA 4k, a NIST P-384 keypair or an ML-DSA keypair.
>
> It is strongly recommended that you provide your own x509.genkey file.
>
> diff --git a/certs/Kconfig b/certs/Kconfig
> index 78307dc25559..a09db4b2c87c 100644
> --- a/certs/Kconfig
> +++ b/certs/Kconfig
> @@ -39,6 +39,30 @@ config MODULE_SIG_KEY_TYPE_ECDSA
> Note: Remove all ECDSA signing keys, e.g. certs/signing_key.pem,
> when falling back to building Linux 5.14 and older kernels.
>
> +config MODULE_SIG_KEY_TYPE_ML_DSA_44
> + bool "ML-DSA (Dilithium) 44"
> + select CRYPTO_ML_DSA
> + select LIB_SHA3
> + help
> + Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
> + with a SHAKE256 'hash' of the message.
Copy-and-paste error in the help message: 87 -> 44.
> +
> +config MODULE_SIG_KEY_TYPE_ML_DSA_65
> + bool "ML-DSA (Dilithium) 65"
> + select CRYPTO_ML_DSA
> + select LIB_SHA3
> + help
> + Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
> + with a SHAKE256 'hash' of the message.
Similarly here: 87 -> 65.
> +
> +config MODULE_SIG_KEY_TYPE_ML_DSA_87
> + bool "ML-DSA (Dilithium) 87"
> + select CRYPTO_ML_DSA
> + select LIB_SHA3
> + help
> + Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
> + with a SHAKE256 'hash' of the message.
> +
Should all MODULE_SIG_KEY_TYPE_ML_DSA_* options depend on
MODULE_SIG_SHAKE256 to match the updated
Documentation/admin-guide/module-signing.rst?
Similarly, do MODULE_SIG_KEY_TYPE_RSA and MODULE_SIG_KEY_TYPE_ECDSA
require any "depends on" update with respect to the addition of
MODULE_SIG_SHAKE256?
--
Thanks,
Petr
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v6 17/17] modsign: Enable ML-DSA module signing
2025-10-17 14:43 ` [PATCH v6 17/17] modsign: Enable ML-DSA module signing David Howells
2025-10-21 13:51 ` Petr Pavlu
@ 2025-11-06 17:37 ` David Howells
1 sibling, 0 replies; 23+ messages in thread
From: David Howells @ 2025-11-06 17:37 UTC (permalink / raw)
To: Petr Pavlu
Cc: dhowells, Eric Biggers, Jason A . Donenfeld, Ard Biesheuvel,
Herbert Xu, Stephan Mueller, Lukas Wunner, Ignat Korchagin,
Luis Chamberlain, Daniel Gomez, Sami Tolvanen, linux-crypto,
keyrings, linux-modules, linux-kernel
Petr Pavlu <petr.pavlu@suse.com> wrote:
> This update looks ok to me. However, I'll note some problems that
> I noticed in the original text, notably:
>
> The text doesn't match the implementation because kernel/module/Kconfig
> still allows selecting SHA-1 for module signing. What happened is that
> commit 16ab7cb5825f ("crypto: pkcs7 - remove sha1 support") initially
> removed CONFIG_MODULE_SIG_SHA1. Then, commit f2b88bab69c8
> ("Documentation/module-signing.txt: bring up to date") removed it from
> the documentation. However, commit 203a6763ab69 ("Revert "crypto: pkcs7
> - remove sha1 support"") brought back CONFIG_MODULE_SIG_SHA1 without
> reverting the documentation update.
>
> Another problem is that for MODULE_SIG_KEY_TYPE_ECDSA, certs/Kconfig
> contains the line
> "depends on !(MODULE_SIG_SHA256 || MODULE_SIG_SHA3_256)",
> which intends to allow ECDSA only with MODULE_SIG_SHA384,
> MODULE_SIG_SHA512, MODULE_SIG_SHA3_384 and MODULE_SIG_SHA3_512. This
> restriction was added in commit d4f5bfe20da9 ("certs: Limit
> MODULE_SIG_KEY_TYPE_ECDSA to SHA384 or SHA512") and 446b1e0b7b39
> ("module: enable automatic module signing with FIPS 202 SHA-3").
> However, the documentation suggests that ECDSA can still be used with
> SHA-2/3 of size 256.
>
> I'll prepare fixes for these issues. For the first problem, I think we
> can drop CONFIG_MODULE_SIG_SHA1 instead of correcting the documentation.
Sounds good.
> > + Use an ML-DSA (Dilithium) 87 key (NIST FIPS 204) for module signing
> > + with a SHAKE256 'hash' of the message.
>
> Copy-and-paste error in the help message: 87 -> 44.
> ...
> Similarly here: 87 -> 65.
Fixed.
> Should all MODULE_SIG_KEY_TYPE_ML_DSA_* options depend on
> MODULE_SIG_SHAKE256 to match the updated
> Documentation/admin-guide/module-signing.rst?
>
> Similarly, do MODULE_SIG_KEY_TYPE_RSA and MODULE_SIG_KEY_TYPE_ECDSA
> require any "depends on" update with respect to the addition of
> MODULE_SIG_SHAKE256?
Um. In theory ML-DSA can use hashes other than SHAKE256, but I'm not sure
that OIDs exist yet to indicate that. Also, I'm not sure how to implement the
crypto API interface such that you can ask for, say, "ml-dsa87(sha512)" from
crypto_sig.
Anyway, for the moment, I'm going to post a v7 as I've made some substantial
cleanups.
David
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2025-11-06 17:37 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-17 14:42 [PATCH v6 00/17] lib/crypto: Move SHA3 to lib/crypto, add SHAKE* and add ML-DSA signing David Howells
2025-10-17 14:42 ` [PATCH v6 01/17] s390/sha3: Rename conflicting functions David Howells
2025-10-18 8:59 ` Christophe Leroy
2025-10-18 12:17 ` David Howells
2025-10-17 14:42 ` [PATCH v6 02/17] arm64/sha3: " David Howells
2025-10-18 9:00 ` Christophe Leroy
2025-10-17 14:42 ` [PATCH v6 03/17] lib/crypto: Add SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256 David Howells
2025-10-17 14:42 ` [PATCH v6 04/17] lib/crypto: Move the SHA3 Iota transform into the single round function David Howells
2025-10-17 14:42 ` [PATCH v6 05/17] lib/crypto: Add SHA3 kunit tests David Howells
2025-10-17 14:42 ` [PATCH v6 06/17] crypto/jitterentropy: Use lib/crypto/sha3 David Howells
2025-10-17 14:42 ` [PATCH v6 07/17] crypto/sha3: " David Howells
2025-10-17 14:42 ` [PATCH v6 08/17] crypto/sha3: Add SHAKE128/256 support David Howells
2025-10-17 14:42 ` [PATCH v6 09/17] crypto: SHAKE tests David Howells
2025-10-17 14:42 ` [PATCH v6 10/17] crypto: Add ML-DSA/Dilithium support David Howells
2025-10-17 14:42 ` [PATCH v6 11/17] crypto: Add ML-DSA/Dilithium keypair generation support David Howells
2025-10-17 14:42 ` [PATCH v6 12/17] crypto: Add ML-DSA-44 pure rejection test vectors as a kunit test David Howells
2025-10-17 14:42 ` [PATCH v6 13/17] crypto: Add ML-DSA-65 " David Howells
2025-10-17 14:42 ` [PATCH v6 14/17] crypto: Add ML-DSA-87 " David Howells
2025-10-17 14:42 ` [PATCH v6 15/17] pkcs7: Allow the signing algo to calculate the digest itself David Howells
2025-10-17 14:43 ` [PATCH v6 16/17] pkcs7, x509: Add ML-DSA support David Howells
2025-10-17 14:43 ` [PATCH v6 17/17] modsign: Enable ML-DSA module signing David Howells
2025-10-21 13:51 ` Petr Pavlu
2025-11-06 17:37 ` David Howells
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).