diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 74b64749d..5b7ef1dd2 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -1142,6 +1142,7 @@ jobs: - name: Verify nRF52 infrastructure trims and unchanged Companion scope run: | python3 -B test/test_nrf52_flash_trim.py -v + python3 -B test/test_nrf52_gnss_version_trim.py -v python3 -B test/test_nrf52_program_lifetime.py -v python3 -B test/test_nrf52_tft_font_trim.py -v python3 -B test/test_ota_sd_cache.py -v diff --git a/docs/ota_wizard.md b/docs/ota_wizard.md index 3056449bc..31926a8e0 100644 --- a/docs/ota_wizard.md +++ b/docs/ota_wizard.md @@ -35,10 +35,6 @@ saved contact routes. Some Full Companion boards borrow queue space for OTA and retain up to 128 unread messages during an update. If more are waiting, sync them with an app first; the wizard refuses to discard them to make room. -For this wizard, use an ESP32 source instead of RAK4631 Full. The RAK image's -current flash limit prevents adding the new direct admin helper. RAK4631 -Repeaters and Room Servers remain supported destinations. - The source and destination must already use the same main-channel settings and hear each other directly. The destination needs working LoRa OTA support and its admin password. A stock nRF52 bootloader may need a matching local diff --git a/examples/companion_radio/CompanionFeatures.h b/examples/companion_radio/CompanionFeatures.h index aae0bc4ff..b7e9839ba 100644 --- a/examples/companion_radio/CompanionFeatures.h +++ b/examples/companion_radio/CompanionFeatures.h @@ -74,14 +74,9 @@ #ifndef COMPANION_FEATURE_OTA_CLI #define COMPANION_FEATURE_OTA_CLI 0 #endif -// Keep RAK4631 Full's existing feature set inside its application boundary. -// Other Full boards expose the new USB OTA admin helper by default. +// Full builds expose the USB OTA admin helper with their existing OTA CLI. #ifndef COMPANION_FEATURE_DIRECT_OTA_ADMIN - #if defined(NRF52_PLATFORM) && defined(RAK_4631) - #define COMPANION_FEATURE_DIRECT_OTA_ADMIN 0 - #else - #define COMPANION_FEATURE_DIRECT_OTA_ADMIN COMPANION_FEATURE_OTA_CLI - #endif + #define COMPANION_FEATURE_DIRECT_OTA_ADMIN COMPANION_FEATURE_OTA_CLI #endif #ifndef COMPANION_FEATURE_NETWORK_TERMINAL #define COMPANION_FEATURE_NETWORK_TERMINAL 0 diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 68b626008..a42ce16f3 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -6312,10 +6312,7 @@ __attribute__((noinline, cold)) bool MyMesh::handleDirectOtaFrame(size_t len) { memcpy(peer.pub_key, key, PUB_KEY_SIZE); if (!_ota_direct_admin.matches(peer, _ms->getMillis())) { closeDirectOtaAdmin(); - ContactInfo* contact = lookupContactByPubKey(key, PUB_KEY_SIZE); - if (contact) { - _ota_direct_contact = *contact; - } else { + if (!lookupContactByPubKey(key, PUB_KEY_SIZE)) { // Empty anonymous slots are RAM-only. Never evict another request, // add an accepted contact, or schedule a contact-store write. for (unsigned i = 0; i < MAX_ANON_CONTACTS; ++i) { @@ -6333,14 +6330,10 @@ __attribute__((noinline, cold)) bool MyMesh::handleDirectOtaFrame(size_t len) { resetContactValue(*_ota_direct_transient); _ota_direct_transient->id = peer; _ota_direct_transient->out_path_len = 0; - _ota_direct_contact.id = peer; - } - if (!_ota_direct_contact.setPath(nullptr, 0)) { - closeDirectOtaAdmin(); - writeErrFrame(ERR_CODE_BAD_STATE); - return true; } + _ota_direct_contact.id = peer; _ota_direct_contact.type = type; + _ota_direct_contact.out_path_len = 0; _ota_direct_contact.sync_since = 0; _ota_direct_contact.tx_radio = mesh::RADIO_TX_PRIMARY; } diff --git a/scripts/nrf52_flash_trim.py b/scripts/nrf52_flash_trim.py index a90096781..4d1a19f4b 100644 --- a/scripts/nrf52_flash_trim.py +++ b/scripts/nrf52_flash_trim.py @@ -247,6 +247,11 @@ def install(build_env): print("nRF52 infrastructure flash trim: compact crypto, unused USB device classes/GPS cache/vendor splash, compact OTA target names") else: print("nRF52 Companion flash trim: small crypto table, unused USB device classes/GPS cache/vendor splash; fonts and Reader retained") + hook_path = build_env.subst("$PROJECT_DIR/scripts/nrf52_gnss_version_trim.py") + hook_spec = importlib.util.spec_from_file_location("mesh_nrf52_gnss_trim", hook_path) + hook = importlib.util.module_from_spec(hook_spec) + hook_spec.loader.exec_module(hook) + hook.install(build_env) framework = platform.get_package_dir("framework-arduinoadafruitnrf52") values = flag_defines(flags, cppdefines) if "MESH_NRF52_NO_PROGRAM_EXIT" not in values and supported_program_lifetime(framework): diff --git a/scripts/nrf52_gnss_version_trim.py b/scripts/nrf52_gnss_version_trim.py new file mode 100644 index 000000000..eb3397d29 --- /dev/null +++ b/scripts/nrf52_gnss_version_trim.py @@ -0,0 +1,79 @@ +"""Keep the reviewed GNSS version parser without linking the scanf engine. + +Only the qualified nRF52 Companion trim installs this middleware. Compile a +private copy of the reviewed SparkFun GNSS sources; never change downloaded dependencies. +Unknown sources or headers retain their ordinary implementation. +""" + +import hashlib +from pathlib import Path + + +SOURCE_NAME = "SparkFun_u-blox_GNSS_Arduino_Library.cpp" +SOURCE_SHA256 = "8ed1d313177df864b6821b3cb3e4fbcc59d850d09e2460269d571f70cd2b9f1c" +HEADERS = { + "SparkFun_u-blox_GNSS_Arduino_Library.h": "5da7a95ddd4b24e26ca474d017a6a5347137a31aee58fb7b450a4ce85bbcc07a", + "u-blox_config_keys.h": "86cae35ec200871f748be21d6d59583c48db82621f4c5504e257e8358a241499", + "u-blox_structs.h": "59c0a7db1e3fe8eb78692a3ef9411f12048573a6513c41937e51e9d5ede06498", +} +ORIGINAL_CONVERSION = ''' int scanned = sscanf(ptr, "%d.%d", &protHi, &protLo);''' +VERSION_CONVERSION = ''' // Preserve %d.%d conversion, including signs and leading whitespace. + // strtol is already used by the application; scanf needs a separate engine. + char *versionEnd; + protHi = static_cast(strtol(ptr, &versionEnd, 10)); + int scanned = 0; + if (versionEnd != ptr && *versionEnd == '.') + { + const char *minor = versionEnd + 1; + protLo = static_cast(strtol(minor, &versionEnd, 10)); + if (versionEnd != minor) + scanned = 2; + }''' +INCLUDE = '#include "SparkFun_u-blox_GNSS_Arduino_Library.h"' + + +def digest(source): + return hashlib.sha256(source.encode("utf-8")).hexdigest() + + +def patched_source(source): + source = source.replace("\r\n", "\n") + if (digest(source) != SOURCE_SHA256 or source.count(ORIGINAL_CONVERSION) != 1 + or source.count(INCLUDE) != 1): + raise RuntimeError("changed reviewed SparkFun GNSS source") + return source.replace(INCLUDE, "#include \n" + INCLUDE, 1).replace( + ORIGINAL_CONVERSION, VERSION_CONVERSION, 1) + + +def write_if_changed(path, content): + if not path.exists() or path.read_text(encoding="utf-8") != content: + path.write_text(content, encoding="utf-8") + + +def replace_gnss_source(build_env, node): + source = Path(node.srcnode().get_abspath()) + if source.name != SOURCE_NAME or source.parent.name != "src": + return node + try: + patched = patched_source(source.read_text(encoding="utf-8")) + headers = {} + for name, expected in HEADERS.items(): + header = (source.parent / name).read_text(encoding="utf-8").replace("\r\n", "\n") + if digest(header) != expected: + raise RuntimeError("changed reviewed SparkFun GNSS header: " + name) + headers[name] = header + except (OSError, UnicodeError, RuntimeError) as error: + print("nRF52 Companion GNSS trim: ordinary source retained (" + str(error) + ")") + return node + destination = Path(build_env.subst("$BUILD_DIR")) / "trimmed-nrf52-gnss" / source.name + destination.parent.mkdir(parents=True, exist_ok=True) + # Keep its quoted sibling includes bound to the same reviewed library. + for name, header in headers.items(): + write_if_changed(destination.parent / name, header) + write_if_changed(destination, patched) + print("nRF52 Companion GNSS trim: reviewed version conversion uses strtol") + return build_env.File(str(destination)) + + +def install(build_env): + build_env.AddBuildMiddleware(replace_gnss_source, "*" + SOURCE_NAME) diff --git a/src/helpers/CompanionReader.cpp b/src/helpers/CompanionReader.cpp index 3f454a126..26d16945d 100644 --- a/src/helpers/CompanionReader.cpp +++ b/src/helpers/CompanionReader.cpp @@ -4,7 +4,9 @@ #include #include "bible/ReaderLookup.h" -#if defined(NRF52_PLATFORM) +#if defined(NRF52_PLATFORM) && COMPANION_READER_COMPACT_STREAM +#include "bible/ReaderCompactStreamData.generated.h" +#elif defined(NRF52_PLATFORM) #include "bible/ReaderStreamData.generated.h" #else #include "bible/ReaderData.generated.h" diff --git a/src/helpers/CompanionReaderConfig.h b/src/helpers/CompanionReaderConfig.h index 04e53db9c..258535495 100644 --- a/src/helpers/CompanionReaderConfig.h +++ b/src/helpers/CompanionReaderConfig.h @@ -9,6 +9,10 @@ #endif #endif +#ifndef COMPANION_READER_COMPACT_STREAM + #define COMPANION_READER_COMPACT_STREAM 0 +#endif + #if COMPANION_FEATURE_READER \ && !(defined(COMPANION_RADIO_FULL) && defined(ENABLE_USB_INTERFACE) \ && (defined(ESP32_PLATFORM) || defined(NRF52_PLATFORM))) diff --git a/src/helpers/bible/ReaderCompactStreamData.generated.h b/src/helpers/bible/ReaderCompactStreamData.generated.h new file mode 100644 index 000000000..4abe6526e --- /dev/null +++ b/src/helpers/bible/ReaderCompactStreamData.generated.h @@ -0,0 +1,1428 @@ +// Generated by tools/bible/pack_reader_stream.py --compact; do not edit. +// Offline Reader corpus. Public domain; see tools/bible/README.md. +// Google Zopfli, 1000 iterations, 4096-byte history; exact ASCII text retained. +// Canonical source SHA-256: 916bf9d1feae0ad410d69f61e6c5f328ac6acba10651d751b5bb29719732c49e +#pragma once +#include "ReaderStreamLookup.h" +namespace mesh { namespace bible { namespace generated { +static_assert(kBlockSize == 4096, "Reader history must remain 4096 bytes"); +static const uint8_t readerData[] = { + 0x9d,0xb7,0x6b,0x77,0x1c,0xc5,0xb5,0x3e,0xae,0x8f,0x52,0xf6,0x1b,0x25,0x6b,0xd5,0x99,0x0f,0x10,0xbd, + 0xd0,0x22,0x57,0xc8,0x39,0x81,0xac,0x98,0xdf,0xca,0xca,0x79,0xd7,0x9a,0x2e,0x49,0x13,0xf5,0x74,0xeb, + 0x74,0xb5,0x2c,0xe6,0xbc,0xea,0xee,0x19,0xb5,0x47,0x92,0x9b,0x01,0x6b,0x2c,0x89,0x91,0x62,0x59,0xb2, + 0xc7,0x32,0x32,0x96,0x7c,0x89,0x6c,0x03,0x71,0x8c,0xc0,0xa0,0x88,0x04,0x06,0x13,0x63,0x6e,0x72,0x42, + 0x64,0x8e,0x83,0x81,0x24,0x07,0x27,0x21,0x41,0x60,0xf1,0x7f,0x76,0x55,0xf7,0x8c,0x64,0x93,0xff,0x2d, + 0x17,0x6b,0xba,0xbb,0x6a,0xd7,0xae,0x7d,0x79,0xf6,0xf3,0x3c,0x60,0xfb,0xab,0x3d,0x39,0xdb,0xce,0xd9, + 0x3d,0x63,0x3e,0xfb,0xb1,0xe3,0x9a,0x3c,0xd4,0x7f,0xc7,0x66,0xcf,0x34,0x7f,0x9e,0xc9,0xb4,0xbd,0xc1, + 0xa4,0x91,0x17,0x63,0xd5,0xe6,0xf2,0x59,0xbc,0xbc,0xcf,0xb2,0x9e,0x38,0xff,0x24,0xf3,0x7a,0x5d,0x67, + 0xa0,0xa7,0xb7,0x94,0x61,0x3f,0xce,0x79,0xbd,0xce,0x80,0x57,0xe2,0xf3,0xbd,0x64,0xf1,0xc9,0xe2,0xe2, + 0xaa,0xb0,0x9f,0xcc,0xb4,0x3d,0x60,0x97,0xc6,0x9e,0x87,0xb9,0xe7,0x71,0x88,0x95,0xeb,0xe9,0xf5,0xca, + 0x13,0x36,0x6c,0xea,0xdf,0x4c,0x62,0xb1,0x90,0x55,0x9f,0x99,0x86,0xdb,0x87,0x5f,0x92,0x87,0xad,0xdf, + 0x8b,0x76,0xbb,0xc7,0x9c,0xbd,0xc2,0xcd,0x3a,0x79,0xb1,0x8c,0x4d,0xae,0x38,0xd6,0x58,0x79,0x66,0xea, + 0x0c,0xaf,0x48,0xc1,0x6c,0x72,0x8a,0x7d,0xdf,0xe9,0xb5,0x13,0x17,0xf1,0x51,0x36,0xd8,0x60,0xce,0x53, + 0x76,0x8a,0x31,0xcb,0xab,0x23,0x3c,0x21,0xbd,0x5c,0x77,0xe1,0x74,0x72,0x3c,0x2f,0x5e,0xd1,0x1f,0x0e, + 0xb7,0x9c,0x6f,0xbb,0x5f,0x8c,0xcd,0xa7,0xdf,0xe7,0xc6,0x9e,0xf9,0x57,0x7b,0xe9,0x20,0xcf,0x1d,0x10, + 0xfa,0xa9,0xc8,0x84,0xad,0x7e,0x08,0x5b,0x32,0x01,0x37,0x0b,0x8e,0x0d,0x8f,0xe0,0x2c,0x02,0x70,0xcb, + 0x3f,0xa4,0xcc,0x56,0xfd,0x43,0xb8,0xd2,0xa1,0xb1,0x56,0xa8,0xe8,0xf1,0x3d,0xba,0x99,0x2b,0xb2,0x4e, + 0x8f,0x9d,0xfb,0x6f,0xa1,0x1c,0x38,0x16,0x4d,0x32,0x67,0xd0,0xe6,0xe1,0xd3,0x95,0xf3,0xea,0x17,0xad, + 0x79,0x1c,0x9f,0xbe,0x39,0xe0,0x35,0xe4,0x4a,0xa1,0x21,0x1f,0x37,0x4b,0x3c,0xda,0x8a,0x5f,0xf3,0x99, + 0x4b,0xa7,0x46,0xab,0x14,0x96,0x33,0xed,0x92,0x65,0x7b,0x73,0x96,0xe9,0x0a,0x9b,0x47,0x4f,0x57,0x0e, + 0x57,0x27,0x55,0x64,0xbe,0xd1,0x36,0xd8,0xeb,0x9c,0x67,0x5d,0x8e,0x6b,0xf3,0xf9,0x32,0xeb,0xb2,0x1c, + 0xc7,0xe4,0xb7,0xdd,0xb2,0x3f,0x52,0xf6,0x59,0xb7,0x25,0x64,0x6f,0xf2,0xb4,0xc2,0xe7,0xca,0x2a,0xc9, + 0x94,0xee,0xd5,0x2c,0xb6,0xea,0xcf,0x21,0x2e,0xb9,0x57,0x98,0x8d,0xbc,0x63,0xf7,0xb0,0x01,0x89,0x04, + 0x8b,0xe3,0x93,0xac,0xc7,0x72,0xdc,0x02,0x67,0x72,0x20,0xdb,0xab,0x7f,0x37,0x64,0xd9,0xbf,0x63,0x15, + 0xd4,0x41,0xef,0x97,0xfd,0xfd,0x9c,0x75,0x0f,0x58,0x56,0x99,0xf5,0xb8,0x46,0x56,0x84,0x14,0x2d,0xaf, + 0x37,0xd3,0x46,0x59,0x4a,0x82,0x99,0x13,0xe6,0x69,0x94,0xcb,0xfd,0x82,0x65,0x5d,0xfc,0x3e,0xc7,0x6f, + 0x22,0x5a,0x9c,0xed,0x7e,0xb8,0x37,0x27,0xc7,0xe2,0x72,0x25,0x5f,0x1f,0xe2,0xac,0xfd,0x7e,0x51,0x39, + 0x29,0x1b,0xdd,0x9e,0x70,0x27,0x16,0x71,0x9a,0xdb,0x6f,0x48,0x29,0xcc,0x09,0x3e,0x1d,0x8f,0xad,0xfe, + 0x45,0x4c,0x64,0xda,0x77,0xb7,0x7d,0xd7,0x75,0xf2,0x93,0xea,0x34,0xca,0xf7,0x8d,0x2b,0x8f,0x9b,0xfa, + 0xd0,0xd7,0x1d,0x5b,0xff,0xc8,0xb4,0x7d,0xd7,0x71,0x91,0x39,0x63,0x70,0xec,0xa8,0x9d,0x86,0x9f,0xfd, + 0xc0,0x91,0x02,0xb7,0xf9,0xde,0x36,0xff,0xce,0x23,0x15,0x86,0x85,0x44,0x98,0xe9,0xaa,0xd1,0x3f,0x66, + 0xda,0x1e,0x74,0x36,0x17,0x37,0xec,0x33,0x0d,0xaf,0x61,0x17,0x3e,0xc8,0xb0,0x37,0x9a,0xb7,0xe4,0x95, + 0x5a,0xd5,0xc7,0x4f,0xe9,0xe4,0xe9,0xc2,0x8b,0xcc,0x14,0x59,0xcb,0x70,0x85,0x89,0x64,0xd1,0x2d,0x6a, + 0xaa,0x28,0xdb,0xa5,0xbe,0x30,0xe2,0x57,0xe0,0x17,0xfd,0x13,0xcf,0xb0,0x7e,0x37,0x87,0x17,0x32,0x64, + 0xff,0x21,0xf6,0xe6,0xf0,0x6d,0xea,0xad,0xa8,0x21,0xfb,0x4a,0xb8,0xfb,0x8f,0x7b,0x9d,0x85,0xa0,0x73, + 0x37,0xaa,0xa0,0x69,0x8b,0x87,0x94,0x7f,0x3c,0x62,0xf7,0x5c,0xdc,0x7c,0x8d,0xc5,0x0f,0x34,0xf2,0xf3, + 0xfe,0x1f,0x33,0xbb,0xdb,0xde,0x28,0x60,0xbb,0x30,0xb5,0x01,0xc3,0xf3,0xed,0x4e,0x76,0x9f,0x2b,0x02, + 0xf6,0x1d,0x2b,0xf7,0x53,0xa3,0xb7,0x73,0x37,0x62,0x3c,0x94,0xac,0xcf,0xec,0x66,0xbb,0xe9,0x9b,0xff, + 0x07,0xf5,0xfa,0x31,0xbc,0x7e,0xd0,0x51,0x26,0x86,0xf6,0x45,0x2d,0x0f,0xd8,0xf7,0x90,0x72,0x24,0xbb, + 0x61,0x37,0x6c,0x39,0x28,0xdc,0xe8,0x5d,0xd6,0x65,0x64,0xfb,0x50,0x56,0xcf,0xe8,0x12,0xc0,0x31,0x6b, + 0xc1,0xcd,0xd3,0x81,0x2b,0x85,0xd5,0x4d,0x0e,0xa7,0x27,0xf8,0x6c,0xaf,0x93,0xcb,0x8a,0xf2,0x26,0xb2, + 0x5a,0x40,0x42,0x11,0xa0,0x41,0x14,0xa5,0x70,0x29,0x37,0xc8,0xe7,0x0f,0x8c,0x3e,0xc1,0xa4,0xe7,0x1a, + 0x54,0xb9,0xf8,0x66,0x14,0x50,0x86,0x6f,0xf3,0xf6,0x86,0xac,0x4b,0x23,0x67,0xf4,0xfa,0x7f,0x18,0x22, + 0x77,0x36,0x65,0xe5,0x02,0x60,0xe3,0x99,0xf3,0x53,0xfe,0xaf,0x32,0x3b,0x2f,0x58,0xf0,0xed,0xb5,0x00, + 0xee,0xf4,0x7b,0x48,0x14,0xcb,0x75,0x07,0x0b,0x88,0x02,0x6a,0x38,0xb9,0x2e,0x7e,0xd1,0xe5,0x54,0xa5, + 0x3d,0xb6,0x45,0x4e,0xa5,0x6b,0xab,0x38,0x0d,0x75,0xc4,0xe7,0x54,0x29,0x07,0xf0,0xe2,0x63,0xb9,0x59, + 0xc9,0x07,0x6b,0x88,0xef,0x0c,0x75,0x5e,0xcd,0xdf,0x6c,0x16,0x1b,0x72,0x8b,0x3c,0x89,0x6e,0xe1,0x22, + 0xd8,0x54,0x69,0x0a,0x6a,0xe4,0xc7,0x86,0xa5,0xbc,0xef,0xaf,0xb7,0xe7,0xe7,0xd9,0xa0,0xe3,0x7a,0xbd, + 0x85,0x88,0xa1,0xa7,0xa4,0xb0,0xc9,0x6f,0x29,0x9e,0x38,0xbf,0x66,0xe3,0xa8,0x6f,0x0a,0xaf,0xd7,0xb0, + 0x0b,0xab,0x80,0x02,0xd3,0x47,0x1d,0xb8,0xa6,0x61,0xf3,0xb3,0xaa,0x20,0xc6,0x12,0x87,0x10,0x1d,0x6a, + 0x37,0x5b,0x3c,0xe2,0x7d,0xce,0xe3,0xe3,0xa3,0x09,0x60,0x20,0x0d,0x21,0x05,0xf3,0x9b,0xa2,0xd7,0xb1, + 0x4c,0xee,0xb3,0xff,0x30,0xf2,0x5d,0x65,0x40,0xdd,0xbb,0xb2,0x81,0x70,0xf9,0x4c,0xe6,0xec,0xb2,0x7f, + 0x68,0x97,0x2e,0xb1,0x66,0xa3,0xdc,0xa7,0xdc,0x86,0xfb,0x2b,0xf7,0x78,0xde,0xec,0x95,0xb6,0x07,0xa8, + 0x96,0x66,0x4a,0x7c,0x6e,0x7a,0x9c,0x4a,0x5d,0x3a,0x76,0xfd,0x58,0xcb,0x9b,0x34,0x40,0xc5,0xf8,0xd2, + 0xea,0xef,0xa3,0xba,0x74,0x0d,0x61,0xe1,0x52,0x3b,0x7b,0x36,0x6d,0xd3,0x07,0x86,0x37,0x6c,0x9f,0xed, + 0xe9,0xcf,0xb9,0x39,0xaa,0x4e,0x99,0x15,0xb6,0x89,0x2f,0x00,0x8b,0x3e,0xd1,0x58,0xdb,0x2b,0xce,0x95, + 0x63,0x63,0xaf,0x00,0x8c,0x2d,0x7f,0x22,0xcc,0x3b,0x25,0xe0,0xff,0x5d,0x58,0x87,0x6a,0xae,0x3c,0x33, + 0x11,0xdd,0x95,0x9d,0xa1,0x68,0x02,0x97,0x79,0xc8,0xae,0xe4,0x09,0x48,0x83,0x91,0x8d,0xaf,0x38,0x23, + 0xfc,0x04,0xff,0xdc,0x29,0xd5,0xe2,0x4a,0xba,0x99,0x06,0xc7,0xfd,0x8e,0x55,0x48,0xd6,0xd2,0x4d,0xe1, + 0x5e,0x38,0xdc,0x72,0xbb,0x38,0x5e,0xf3,0xdf,0x2f,0x9f,0xc1,0x75,0xee,0xeb,0x31,0x72,0x36,0xf7,0x93, + 0xb8,0x27,0x19,0x41,0x2d,0xd0,0x3c,0x63,0xde,0xa0,0x53,0x9e,0xbc,0x2e,0x79,0xdb,0xc7,0x31,0x65,0x15, + 0x45,0xd7,0xf0,0x46,0x1b,0x32,0x86,0x73,0x16,0x1e,0xbe,0x32,0x33,0xbb,0x90,0x77,0xda,0x78,0x5d,0xc6, + 0x86,0x6b,0x96,0x5e,0x05,0xae,0x17,0x1e,0x15,0xe6,0x68,0xa6,0xed,0x67,0xcc,0x1b,0x40,0xe1,0x9b,0xe1, + 0xf1,0xad,0x47,0x61,0x1e,0xbb,0xa3,0xad,0xa4,0x49,0x17,0x02,0x65,0x1f,0x6f,0xa7,0xd1,0x89,0x68,0x3f, + 0xd5,0x7d,0x3f,0x32,0xba,0xba,0x72,0xbb,0xd9,0xd7,0x06,0x7b,0x73,0xd9,0xde,0x5a,0x74,0x93,0xaf,0x52, + 0x5a,0x10,0x16,0x24,0xd4,0xa3,0xa6,0x7f,0x58,0x18,0xd9,0x5e,0xe1,0x7e,0x1d,0x6b,0x07,0xf1,0x57,0xc0, + 0x8c,0xf4,0x0c,0x6a,0x34,0xd5,0x84,0xda,0xfe,0xb7,0x30,0x0e,0xc2,0x8d,0x0c,0x99,0x3d,0x16,0x1e,0x3f, + 0x1b,0x8f,0xa5,0x6b,0xc8,0x33,0xf5,0x5b,0x98,0xb3,0xa5,0xe2,0xe7,0x99,0xba,0x37,0x86,0x89,0x86,0xb1, + 0xe5,0xf5,0x32,0xcc,0x6c,0x37,0xd3,0xf6,0x90,0x2d,0xca,0x3e,0x5d,0xa6,0x42,0x77,0x51,0xc1,0x09,0x71, + 0x97,0xd2,0x18,0xbb,0xcf,0xc6,0x64,0x19,0xe4,0x6c,0x0f,0x01,0xd9,0xcb,0x00,0xb5,0x2e,0xd7,0xf1,0xe0, + 0x02,0x35,0xce,0x6f,0x58,0xb7,0x33,0x60,0x9b,0x6a,0x5a,0xa5,0xef,0x93,0x95,0x74,0x67,0xd5,0xb7,0x62, + 0x58,0x2f,0xf2,0xd9,0x0f,0x84,0x94,0xe8,0xf4,0x5d,0xcd,0x7b,0xde,0x7d,0xcb,0x3f,0x7e,0x9d,0x8c,0x92, + 0x21,0x20,0xb0,0x57,0x8a,0x46,0x33,0xa3,0xcd,0x64,0x94,0x54,0x06,0xae,0x2e,0x68,0xeb,0xfe,0xba,0x5d, + 0x86,0x93,0xb6,0xd1,0x9b,0x61,0x57,0xc1,0x21,0x0c,0xcb,0x5a,0xfd,0x92,0x7d,0x4b,0xf4,0xf7,0x1a,0xb2, + 0x69,0xfe,0x95,0xd4,0xb4,0xe1,0xe5,0xe0,0xd0,0xcb,0x5f,0xa7,0x6b,0xa6,0xf9,0x47,0x70,0x4c,0x81,0xef, + 0xe8,0x3c,0x61,0x46,0xd7,0xce,0xdd,0x62,0xdf,0xc3,0x04,0xb0,0x84,0xe0,0x61,0xac,0x1d,0x66,0x7f,0xca, + 0x8c,0xea,0x3b,0x7c,0xd7,0xb1,0x2c,0x67,0x70,0x22,0xb3,0x1b,0x23,0x61,0x90,0xfd,0x69,0x6c,0x4a,0x75, + 0x39,0x60,0xcb,0x34,0x50,0x0c,0xd9,0x9c,0x57,0x28,0x27,0x61,0x0a,0x5f,0xce,0xb4,0xfd,0x29,0xd9,0xfe, + 0xa0,0x41,0x48,0x80,0x56,0xba,0x27,0x14,0x25,0xf4,0xae,0x1e,0x43,0x55,0x35,0x9d,0xc2,0x53,0xfe,0x1f, + 0x24,0x67,0x83,0x08,0xa0,0xf8,0xc6,0x68,0x19,0x3b,0xff,0xdb,0x70,0x71,0x02,0x4f,0xae,0x29,0x71,0x2f, + 0x3a,0x3c,0x35,0xa8,0xcd,0x7d,0xcb,0xb0,0x31,0x98,0xae,0x39,0x34,0xb3,0x10,0xc7,0x93,0xe7,0x5a,0x1b, + 0x51,0x59,0x7f,0xd2,0x8b,0xd2,0x92,0x68,0xfb,0xd9,0xf1,0x96,0x43,0xdb,0x01,0xe7,0x74,0xa9,0x55,0xd8, + 0x0d,0x5b,0xf7,0x3e,0x66,0x53,0xd5,0x14,0x48,0x48,0xb5,0x92,0xaf,0xdd,0xa6,0xd1,0x23,0x72,0xde,0xae, + 0x7b,0x1c,0xb8,0xdf,0x19,0x5c,0x0b,0x66,0x26,0x3a,0x77,0x8f,0x3e,0xa6,0x8d,0xfc,0x45,0xb0,0x3f,0x7d, + 0x19,0xf0,0x8b,0xc1,0x79,0x86,0x5b,0x0a,0x17,0x3c,0x23,0xd7,0x83,0x09,0x8b,0xa0,0xd6,0x8f,0x07,0xdb, + 0x6f,0xf0,0x58,0xb3,0xe8,0x79,0xb0,0x40,0xfd,0xb9,0x8b,0x21,0xb5,0xff,0x0e,0xa7,0xca,0xda,0x85,0x5d, + 0xf0,0x38,0xb1,0x9a,0x35,0x06,0xa4,0xa8,0x47,0x96,0x19,0x00,0x20,0x1e,0x38,0x1e,0x68,0xdb,0xb6,0x80, + 0xad,0x6d,0x07,0xb4,0xaf,0x05,0x87,0x3b,0xd9,0xd5,0x91,0x0d,0x8c,0x7e,0x41,0x80,0xf2,0xc4,0x2f,0x7d, + 0x29,0x76,0xe9,0xe6,0x20,0x43,0x88,0xb7,0xf7,0x0b,0xab,0xc0,0xeb,0xbf,0x0e,0xae,0xf0,0x18,0x6b,0xba, + 0x3d,0x85,0x33,0x0a,0xad,0x98,0xd3,0x2f,0x6c,0x6a,0x73,0xbf,0x61,0xf7,0x08,0x4b,0x96,0xcf,0x34,0x9a, + 0xa0,0xb3,0x0d,0x80,0xee,0xc0,0x55,0xf6,0x03,0x43,0x21,0x3e,0x45,0xdd,0x35,0x3f,0xe7,0xbe,0x2b,0xc6, + 0x1a,0x37,0x4c,0x53,0xe1,0x28,0x72,0x62,0x94,0xd3,0x4a,0xca,0x8c,0xb6,0xb3,0xbc,0xea,0x89,0x31,0x2c, + 0x02,0x2a,0x9c,0x1a,0xab,0xd2,0xdc,0x37,0xf9,0x2c,0x41,0x4d,0xe4,0xeb,0x5d,0x99,0xb6,0x1f,0xf7,0x0a, + 0x9b,0xc6,0xa5,0x2d,0x98,0x6b,0xd8,0xe7,0x78,0x73,0x9f,0xf6,0xfc,0x8d,0xc2,0xf0,0x6d,0xf5,0x95,0xd2, + 0x38,0x14,0xc5,0x2e,0xd5,0x92,0x93,0xc7,0x5c,0xf9,0x6c,0x4d,0xc8,0xe2,0x70,0xb4,0x36,0x1b,0x84,0x13, + 0x9d,0xec,0x07,0x05,0xd5,0xcc,0x8b,0xf3,0xac,0x20,0xbc,0x93,0x19,0x5c,0x3d,0x27,0x9b,0x86,0x30,0x3e, + 0x84,0xbb,0xd7,0xb0,0x3d,0x99,0x00,0x11,0xc1,0x6c,0x7c,0x53,0x46,0x01,0x5f,0x5b,0xd6,0x95,0x0d,0x27, + 0xcf,0x63,0xc8,0x3c,0xa2,0x01,0x99,0xf5,0x3b,0x9e,0x2c,0x03,0x35,0xc0,0x69,0xb1,0xd7,0xc3,0x57,0x35, + 0x21,0xfd,0x13,0xed,0x6a,0x7a,0xb3,0xfe,0x01,0x37,0xd7,0xad,0xd0,0x05,0xf5,0x64,0x7b,0x00,0x57,0xfc, + 0x26,0x08,0x61,0x8e,0x4b,0x34,0x4a,0x88,0x09,0x8f,0xfa,0x5a,0x36,0xfa,0x73,0x22,0x4b,0xf7,0xd7,0x28, + 0xf5,0xdd,0x9c,0x65,0xf9,0xdb,0xce,0x98,0xd5,0xbf,0x01,0x5b,0x7b,0x1c,0xc0,0x54,0x37,0x3e,0x0b,0x73, + 0xeb,0x75,0x78,0xdc,0xe5,0xe6,0xf2,0x99,0x26,0xba,0x51,0xef,0x99,0xae,0x31,0xb8,0x9e,0x17,0xe7,0x78, + 0xf8,0xee,0x32,0x16,0xb8,0x03,0x96,0x70,0x89,0xce,0x62,0xa4,0x79,0x89,0x81,0xc8,0xe9,0x5b,0x4e,0x42, + 0xba,0xf3,0x3b,0xf3,0xf0,0x8f,0x30,0x93,0xa3,0xdf,0x54,0xe4,0x59,0x85,0x55,0x33,0xad,0x99,0xb3,0xcb, + 0xc7,0xa6,0xd8,0xd7,0xba,0x06,0xbc,0x66,0xa8,0xc0,0x45,0xd4,0x89,0x76,0xb2,0xe7,0x9d,0xaf,0xf3,0xbb, + 0x6c,0x7e,0xa9,0x9c,0x34,0x45,0x8f,0xeb,0x38,0xf9,0xb6,0x8f,0x75,0xbe,0xbe,0x93,0x28,0x01,0x65,0x46, + 0x48,0x1f,0x2d,0xaa,0xce,0xf9,0x0d,0x0f,0x2f,0xfa,0xac,0x67,0x80,0x38,0xe0,0x30,0x0c,0x0f,0xd8,0x7d, + 0xac,0x1b,0x61,0x42,0x51,0xfa,0x76,0xf1,0x48,0x8d,0x68,0x85,0x14,0x00,0xb4,0x61,0xd6,0x27,0xfa,0xbd, + 0xe6,0x3e,0x14,0xbc,0x97,0xb3,0xde,0x44,0x2d,0xd3,0xe4,0x4f,0x35,0x58,0x79,0xf2,0x59,0x39,0xfa,0xde, + 0x5d,0x25,0xc7,0xc3,0xdf,0x27,0x14,0xbd,0x23,0x44,0x8d,0x1d,0x36,0xab,0x18,0xc0,0x8a,0x21,0x8c,0xf3, + 0xf8,0x86,0xed,0xad,0x0d,0xda,0x11,0x76,0xf4,0xa3,0x7f,0x8c,0x81,0x3c,0x8f,0x79,0x38,0x99,0x54,0x08, + 0x9f,0x4c,0x01,0x5c,0x72,0xda,0xda,0xd1,0x1a,0x19,0x94,0x79,0x5c,0x77,0xf0,0x73,0x49,0xb4,0xe5,0x87, + 0x20,0xe2,0x24,0xc9,0xca,0xfe,0x89,0xb1,0x86,0xc7,0x7a,0x3f,0xe6,0xe1,0x28,0x2c,0xbf,0x1e,0xbd,0x45, + 0xa9,0xd2,0x00,0x57,0xa5,0xe1,0x92,0xef,0xb7,0xc4,0xd3,0x95,0x75,0xcb,0x64,0xce,0x23,0xe0,0x03,0x1f, + 0x8a,0x7e,0x1e,0x82,0x1f,0x28,0x81,0x97,0x05,0x0c,0xf4,0xe0,0xa8,0x32,0x4e,0xb7,0x05,0x0e,0xca,0x79, + 0x1e,0xee,0x44,0x16,0x9e,0x6c,0x30,0xc0,0x77,0x7f,0x19,0x45,0xe5,0x9a,0x32,0x44,0x9c,0x70,0xda,0x95, + 0x73,0xe5,0xd4,0x24,0x07,0xf1,0x46,0xe7,0xc3,0x5c,0xe8,0x2b,0xcb,0x1d,0x00,0xec,0x7e,0xd4,0x3d,0xa4, + 0x44,0xcb,0x70,0xbb,0x36,0x1c,0x2a,0xf5,0x48,0xc5,0x38,0xe8,0xe7,0x5c,0x54,0x40,0x17,0x94,0x0d,0x48, + 0xba,0xa3,0x1c,0xf3,0x95,0x3b,0xf1,0x10,0x89,0x0f,0xd0,0x53,0x1f,0x24,0x0e,0xec,0xc5,0x15,0xbb,0xd8, + 0xb7,0x1d,0xe2,0x2c,0x79,0xbc,0x5c,0xda,0xdf,0x2e,0xa9,0xad,0xa4,0x68,0xe0,0xd9,0xed,0x13,0x5e,0xbf, + 0x05,0xe1,0xb0,0x4b,0x75,0xd7,0x75,0x09,0x5e,0x93,0x17,0xf9,0x2e,0x81,0xd3,0x8b,0xcb,0x63,0x7f,0x85, + 0xa5,0xff,0x84,0x92,0x98,0x0e,0x5c,0xbd,0x67,0x84,0x01,0x8b,0x26,0x5e,0x27,0xbc,0x38,0xb1,0xef,0xb1, + 0x94,0xa8,0x3f,0x0b,0x1e,0x2b,0x7b,0x51,0xce,0x03,0x92,0x6f,0xe0,0xda,0xc5,0x60,0x8d,0xce,0xee,0x24, + 0xcc,0xa3,0x4a,0xff,0x36,0x2a,0xc4,0x75,0x0a,0xe3,0xe9,0x8d,0xc3,0xaa,0xee,0xa7,0xcf,0x65,0x7d,0x84, + 0x81,0x41,0x4b,0xb1,0x9c,0x98,0x54,0xe4,0xdb,0x43,0xc9,0x4f,0x7b,0x85,0x7f,0xa3,0xd6,0x2d,0x08,0xc3, + 0x95,0xe0,0x56,0x03,0xe0,0xde,0xe9,0xfe,0x5d,0x90,0xe6,0x96,0x15,0xa4,0x3b,0x9b,0xc6,0x70,0x1e,0xa4, + 0x65,0xfc,0x45,0x33,0xb4,0x65,0xd4,0x80,0x63,0x16,0x74,0xf7,0xec,0x8b,0xc7,0xf4,0x0e,0x73,0xca,0x07, + 0x04,0x1a,0x26,0x9f,0xdc,0x79,0xdd,0x78,0x68,0x9c,0x78,0xc5,0x61,0xd3,0xff,0x73,0xe8,0x1f,0x38,0x32, + 0x7a,0x61,0x28,0x43,0x28,0x72,0x31,0x1e,0xab,0xbe,0xd5,0xf0,0xfc,0x66,0xa1,0x70,0x66,0x0e,0xb8,0xb8, + 0x65,0xd2,0x32,0x7c,0x05,0x5b,0x12,0x8d,0xca,0x99,0xd3,0x45,0x4d,0x82,0xaf,0xa8,0xe6,0x23,0xf1,0x7b, + 0x4a,0xec,0x8e,0x2a,0xc2,0x28,0x6c,0x48,0x33,0xe9,0xbd,0x84,0xde,0x3f,0x18,0xbf,0xd3,0x94,0xd7,0x60, + 0x68,0x07,0x63,0xb5,0xc0,0xc6,0x84,0x9a,0x6e,0xd8,0xf4,0x32,0x4a,0x75,0xfa,0xdf,0x56,0x3a,0xa6,0xe3, + 0x97,0xde,0xf9,0x6c,0xac,0xba,0xa2,0x9c,0x51,0xe0,0xbc,0x52,0xf6,0x7f,0xa5,0x8e,0xc3,0x4c,0xce,0x65, + 0x1d,0x53,0xe4,0x11,0xf7,0x46,0xda,0xc8,0x27,0xb4,0xf6,0x1e,0x7d,0x85,0xd9,0x24,0x4d,0xc2,0x6d,0x84, + 0x8c,0xdf,0x98,0x29,0x06,0x0b,0x0d,0xe6,0x69,0xf2,0x75,0x72,0xea,0x0c,0x9f,0xbe,0x0d,0x81,0x63,0xd8, + 0x94,0xaf,0x67,0x25,0xf2,0xc6,0x7f,0x7b,0xa6,0x36,0x5b,0xca,0x50,0xe6,0xb6,0x0d,0x19,0xcc,0x18,0xfe, + 0xdb,0xcd,0x9a,0x52,0x8b,0x0d,0x1b,0xec,0x29,0xc6,0x26,0xf8,0xbc,0x01,0xb1,0xae,0xa6,0x9c,0xe9,0xe4, + 0xb1,0xa7,0xe9,0x4d,0x73,0x9e,0xd2,0xb2,0xc6,0xca,0xaa,0xda,0x78,0x31,0xae,0x31,0x4c,0xe5,0x4e,0xea, + 0xf0,0xf8,0x1f,0x0d,0x26,0x05,0x60,0xd6,0xfc,0xe0,0x56,0xda,0xb1,0x30,0x35,0xe8,0xe4,0xbb,0x42,0xbd, + 0x5a,0x15,0xcf,0x57,0x7b,0x50,0xd6,0xe8,0x15,0x26,0x24,0x39,0x75,0xe6,0x1f,0xb7,0xb6,0x7b,0x03,0x6c, + 0x31,0xbc,0x23,0xc9,0x06,0xa4,0x0a,0x7d,0xd2,0x5b,0xd3,0x7f,0x32,0x6c,0xe7,0x37,0x6d,0xa6,0xc6,0xa4, + 0xe6,0xdc,0x6d,0x69,0xb3,0x00,0xec,0xac,0x62,0x7d,0x28,0xa2,0x39,0x7d,0x95,0xe1,0x5a,0xde,0x95,0xd5, + 0x66,0x08,0x40,0xcd,0xdf,0x20,0x34,0x33,0x59,0x17,0xb8,0x94,0x3c,0xbb,0x0c,0xa7,0x80,0xb0,0x11,0x0f, + 0x03,0x30,0xce,0x65,0xb9,0x0e,0xd8,0xe0,0x73,0x6b,0x1a,0x88,0x4f,0xca,0xa9,0xf0,0xec,0x72,0xed,0xa3, + 0x0c,0x10,0xbd,0xd6,0x4c,0x7d,0xe5,0x2e,0x0f,0xb6,0x47,0xf0,0xb1,0x6d,0x01,0xa4,0x5e,0x5a,0xed,0x4c, + 0x53,0xa2,0x54,0x6f,0x9a,0xc2,0x84,0x5d,0xf0,0x90,0x0e,0xd2,0x44,0x02,0x0a,0x40,0x35,0x5f,0xdb,0xb6, + 0xc8,0xdd,0x78,0xb5,0x78,0xe4,0xc6,0x4c,0x98,0x56,0x55,0x19,0x4f,0x90,0x15,0x70,0x95,0xb6,0x3d,0xce, + 0x00,0x36,0xb8,0x8a,0x47,0xca,0x16,0xf2,0xa6,0x5b,0x71,0x13,0x34,0x3a,0x70,0xc6,0x2a,0x3c,0xa1,0x17, + 0x1d,0xe6,0x0c,0x0d,0x3e,0x12,0x1c,0x86,0x50,0x85,0x45,0x45,0x32,0xf0,0xb1,0x13,0x45,0xb9,0xb9,0xa8, + 0xb9,0x85,0x30,0x6f,0xa9,0xd7,0x90,0x43,0xe8,0xaf,0xe4,0x55,0xaa,0x9e,0x12,0xa2,0x01,0x35,0x5a,0x55, + 0x2f,0x80,0xe2,0x52,0x53,0x46,0x08,0x2d,0xe0,0xb9,0xf9,0xba,0x9a,0x52,0x60,0x2d,0xde,0x5d,0x4a,0x5b, + 0x60,0xf5,0xba,0x8a,0x7e,0x62,0x63,0x35,0xdd,0xc1,0xdb,0x3c,0xe4,0xb1,0x42,0xe1,0x3c,0x2c,0xab,0xa5, + 0x4f,0xe7,0x19,0xe6,0x40,0x4e,0xf6,0xf2,0xb9,0xe1,0xff,0x7d,0x3e,0xd3,0xf6,0x5d,0xc7,0x3d,0xb3,0xfe, + 0x94,0xe9,0x1f,0x82,0x0e,0x7c,0x6d,0xf2,0x8e,0x55,0x50,0xd1,0x7e,0x9f,0x17,0xff,0x6f,0x77,0xa8,0x56, + 0x94,0x02,0x22,0xe0,0xfd,0x5b,0xfe,0xa1,0xe8,0x45,0x6c,0x9f,0x2b,0xfa,0x87,0x3e,0x5d,0x65,0x12,0x7e, + 0x13,0x37,0x55,0x6c,0xbe,0x44,0x5d,0x56,0x21,0x23,0xb5,0xf9,0x17,0xcd,0x0c,0xc3,0x03,0xb8,0x0b,0x05, + 0x6a,0x11,0x72,0xff,0x45,0xf3,0x77,0x68,0xf2,0xc5,0x79,0x00,0x83,0xaf,0x3a,0xb5,0xec,0xa7,0xe7,0x93, + 0x76,0xd3,0x8a,0xd7,0xff,0x39,0x2f,0x82,0x2e,0x53,0x93,0x2e,0x9e,0xc4,0x59,0x3c,0x9c,0xb0,0xe1,0x2e, + 0x33,0x81,0xca,0x74,0x75,0xa0,0x15,0xb5,0xc5,0x2f,0x93,0x35,0x7c,0x1a,0x88,0x4f,0x23,0xb5,0x4f,0x9e, + 0x47,0x50,0x72,0x96,0xf2,0xb7,0x55,0x4c,0x38,0x5e,0xbd,0x66,0xc4,0x85,0x64,0xb2,0x29,0xd4,0x4e,0x9d, + 0x8c,0x52,0x23,0xcc,0x42,0x09,0x4c,0x6a,0x33,0x97,0x56,0x99,0x78,0xa4,0x1f,0x39,0x30,0x15,0x4c,0xc5, + 0x64,0xc2,0x67,0x40,0x29,0xaf,0xf7,0xa4,0x6c,0xee,0x28,0x26,0xab,0x2f,0xaf,0xfe,0x1e,0xfe,0x16,0x86, + 0x71,0xbd,0x35,0x5b,0x54,0xa1,0x40,0xf5,0x20,0xa6,0x62,0xe3,0xa3,0xc7,0x88,0x02,0xde,0xc2,0x9e,0x8f, + 0x41,0xf0,0x07,0x00,0xaf,0x14,0x92,0xd6,0xbc,0x9d,0xdd,0x0a,0x53,0x89,0x8b,0xc3,0x48,0x8d,0x9d,0x1a, + 0xdb,0xae,0xd7,0xbf,0x63,0x3b,0x36,0xb3,0x51,0x72,0x6c,0x0f,0x06,0x7f,0x9e,0x1f,0x24,0xa0,0x43,0xd2, + 0xb3,0xbd,0xba,0xd7,0x89,0x6f,0x2a,0x15,0x78,0xbe,0x69,0xa6,0xa3,0xed,0x2f,0x5a,0xf3,0x2a,0x7a,0xa8, + 0xf2,0x32,0x68,0xdf,0x62,0xfd,0xc8,0xa7,0x63,0x63,0xb0,0xbb,0xa0,0xef,0x0d,0x66,0xe6,0x64,0xff,0x80, + 0x27,0x1a,0x2e,0xae,0x79,0xc7,0x67,0xfd,0x28,0xea,0xb2,0xda,0xd6,0x8e,0x61,0x37,0x0b,0xea,0x75,0xe2, + 0xb4,0x26,0x7e,0xb9,0x2c,0x54,0x15,0x6d,0xc4,0x29,0x91,0x5a,0xb1,0x03,0x39,0xe3,0xca,0xd8,0x6c,0xb0, + 0x8a,0x40,0x9b,0x3e,0x3e,0xba,0x26,0x4a,0x39,0xaa,0xe4,0x83,0x6d,0xc2,0x9c,0xaf,0x2a,0xcd,0x11,0x37, + 0xa5,0x3c,0x0f,0x9b,0xc9,0xa9,0x35,0x15,0x0a,0xa2,0x46,0xb6,0x1f,0xa3,0x46,0x5e,0xa1,0xe6,0x7e,0x7c, + 0x9e,0xc4,0xce,0x6f,0x97,0xa9,0x6c,0x8e,0xda,0xa5,0xa9,0xa4,0x3b,0xae,0x06,0xa0,0x4e,0x16,0xc6,0x79, + 0xda,0xb3,0x00,0x22,0x92,0x0b,0x8d,0xfc,0xbc,0xff,0x47,0xde,0x3e,0x47,0xbf,0x29,0x15,0xcf,0xac,0xfe, + 0x45,0x94,0x80,0x45,0xa8,0xbf,0xc5,0x84,0xbb,0xd5,0xb6,0x73,0xb8,0x8e,0x39,0x60,0x9f,0x9b,0x43,0x3d, + 0x97,0xb7,0xbf,0xe6,0x15,0x06,0x9c,0x90,0x21,0xa0,0x4a,0xe2,0x92,0xae,0xf8,0xa9,0x93,0xcb,0x0a,0xa9, + 0xb5,0x86,0x55,0x38,0xb8,0x63,0x31,0x50,0x75,0x2f,0x7d,0xce,0x30,0x15,0xd4,0x25,0xf6,0x53,0xa7,0x50, + 0x7b,0x92,0x75,0x0f,0x58,0x16,0x75,0x81,0xea,0xcd,0x6a,0x16,0x3b,0xa5,0xe0,0x73,0x75,0xf5,0x08,0x00, + 0xd0,0x2f,0x32,0x6d,0xbb,0xe1,0x1a,0xf0,0xaf,0xd1,0x85,0xd9,0x59,0x53,0xff,0x5e,0x51,0xed,0x52,0x9b, + 0xf2,0x35,0xc6,0xac,0x5a,0x8e,0xdd,0x23,0xa3,0xe4,0x29,0x7c,0x55,0x96,0x93,0x9f,0x58,0x46,0x5b,0x75, + 0x48,0xd2,0xad,0x6d,0x44,0x38,0xe2,0xc5,0x0d,0x9b,0x7c,0x37,0x79,0xb9,0x18,0x37,0x53,0x00,0x8e,0x77, + 0x7b,0xf3,0x71,0x39,0xd9,0xc2,0x32,0x8a,0xca,0xe3,0x66,0xf3,0xc5,0x22,0xf1,0xfe,0x49,0xfc,0x63,0x58, + 0xd1,0x38,0x2f,0x9e,0xa9,0x51,0xb1,0x0b,0xd5,0x47,0x71,0x25,0x7f,0x66,0xf1,0x99,0x57,0xa5,0x7f,0x00, + 0x5a,0xa9,0x63,0xfa,0xcc,0x51,0x99,0xa2,0xf2,0xac,0x33,0xe0,0x4d,0x18,0x12,0x7c,0x0c,0xb5,0xb1,0xff, + 0x29,0xe9,0xbf,0xcf,0xc3,0xc5,0xa3,0xf6,0x95,0x27,0x6e,0x4d,0x82,0x2c,0x92,0x04,0x57,0x38,0xe0,0xbf, + 0xbf,0xf8,0xbf,0xcf,0xf3,0xb9,0xcd,0x0a,0x95,0x9c,0xd3,0x25,0x0a,0x58,0x88,0xc6,0xa1,0x21,0x89,0xd7, + 0x80,0x34,0xea,0xe6,0xf2,0x99,0x4f,0xe4,0x1d,0xaa,0x01,0x15,0x48,0x90,0xe7,0xb7,0xdf,0x29,0xfa,0xbf, + 0xba,0x40,0x37,0x29,0x8e,0x8e,0x11,0x3f,0x23,0x81,0xd6,0x6a,0x0c,0x4c,0x46,0x57,0x5c,0x97,0xbf,0x54, + 0xf5,0xd8,0xf6,0x35,0xc3,0xf2,0x7a,0x09,0x7c,0x46,0x5f,0x52,0x28,0xa5,0x97,0x21,0xe6,0x68,0xbd,0xaf, + 0xf3,0xb6,0x5e,0x81,0xe6,0xee,0xf6,0x74,0xfb,0x91,0xca,0xa3,0x62,0x07,0x28,0xa7,0x5c,0x9a,0xc2,0xa1, + 0x48,0x86,0x30,0x23,0x34,0x82,0x94,0x29,0x96,0xa1,0xe7,0x30,0xec,0x72,0x46,0xa6,0x6d,0x8f,0x13,0x1f, + 0x8b,0x1a,0x2c,0x9b,0xf3,0x0a,0xe5,0xf4,0xed,0x97,0x6c,0x4f,0x01,0x2c,0xd4,0xe5,0xaa,0x3f,0x55,0x0b, + 0x65,0x85,0x55,0x46,0xa9,0x10,0x33,0x2e,0xb2,0xef,0x1b,0x59,0xa7,0xeb,0xb5,0x68,0x72,0xdd,0x4e,0x95, + 0x7d,0x9b,0x7a,0xd5,0x2e,0x6f,0x58,0x96,0x12,0x8a,0xa3,0xfb,0xf8,0xaa,0x92,0x52,0x39,0x17,0xe4,0x6b, + 0x12,0xe5,0x33,0xe0,0x82,0xcb,0x72,0x20,0x2a,0x11,0xf8,0x57,0x7c,0x2c,0xcc,0xd4,0xbd,0xb1,0xd3,0x3e, + 0xa9,0x35,0xaf,0x57,0xa9,0x3e,0x0c,0x08,0xa2,0x03,0x86,0xdd,0x74,0x04,0x6d,0x49,0xe2,0x25,0x51,0x57, + 0xa3,0x89,0x70,0xfc,0x5e,0x6e,0xaf,0x98,0x40,0x9f,0x83,0x91,0xf5,0x21,0xb0,0x48,0x25,0xa2,0x71,0xe1, + 0x9a,0x2d,0x1a,0x10,0x75,0xb7,0x7c,0x75,0x17,0xe2,0x8f,0x10,0x62,0x8e,0x63,0x22,0x85,0x89,0x39,0xcf, + 0xb0,0xb5,0xfd,0x7d,0x4d,0xb2,0x52,0x5b,0x2e,0x06,0xca,0xd3,0x06,0xfb,0x3e,0x38,0x4e,0x43,0xf6,0x4d, + 0x27,0x86,0xa7,0x26,0x78,0xe3,0xae,0x7d,0x20,0x28,0xec,0x6b,0x38,0xed,0x04,0xb4,0x2c,0xe2,0x6d,0x61, + 0x9b,0x9c,0x6d,0xad,0x91,0x99,0xaf,0x63,0x5e,0x2b,0x0f,0x1f,0xe8,0x0e,0xde,0x81,0x4c,0xc2,0xcc,0x2a, + 0x9f,0xe1,0x61,0x65,0xb9,0x56,0x51,0x2a,0x95,0xb5,0x6f,0x77,0x9d,0xb7,0x07,0x97,0x86,0x71,0xa2,0x30, + 0x4b,0x3c,0x8c,0x2f,0x0d,0x1f,0xb5,0x03,0xe0,0x2f,0x11,0xc9,0xe4,0xbe,0xa8,0x19,0x7d,0xae,0x76,0x77, + 0x4f,0xce,0xe5,0xc1,0xb0,0xc2,0x0e,0x1d,0x96,0x59,0x1e,0x52,0x1c,0x6b,0x70,0x46,0xf4,0x13,0xcf,0x38, + 0x0b,0x52,0xde,0x23,0xbc,0xe2,0x0e,0x33,0x9d,0x6d,0x44,0x1f,0x74,0x9b,0x63,0xb4,0xa8,0xc9,0xdf,0xad, + 0xc6,0x8c,0xce,0x23,0xaf,0xbc,0x06,0x12,0x4f,0x86,0x42,0xb2,0x8a,0x9b,0x2f,0xbf,0x84,0x40,0xbc,0x37, + 0x09,0x21,0x82,0x99,0xec,0x0a,0x3b,0x9c,0x24,0x83,0x02,0x32,0x3a,0xdb,0x07,0x4e,0x92,0xdc,0x31,0x95, + 0x88,0x15,0x7d,0x1b,0x59,0x1e,0xd7,0xe7,0x8d,0xa0,0xc6,0x72,0xa0,0x24,0xcf,0xf1,0xb6,0xae,0x01,0x3d, + 0xaa,0xd3,0x15,0x89,0x06,0x2d,0xd6,0x47,0x8e,0x96,0x46,0x98,0x4d,0x9f,0xd2,0xc5,0x00,0xad,0xed,0x1f, + 0x95,0xb2,0xad,0x96,0x1a,0xf0,0x2a,0xa1,0x7e,0xa0,0x6a,0xc4,0xc0,0xf1,0xbf,0xd7,0x23,0x0c,0xee,0xaf, + 0x88,0xcd,0xd1,0x89,0xc4,0x03,0xbe,0x5e,0xac,0x2b,0x72,0x84,0x58,0x24,0xf6,0x0b,0x54,0xca,0x39,0x8f, + 0x18,0xf0,0x15,0x3a,0xa8,0x00,0x89,0xa4,0x83,0x48,0xbc,0x37,0xad,0x2b,0x87,0x03,0x9e,0x2d,0x8b,0x94, + 0xcf,0x80,0xec,0x82,0x2a,0x3c,0x89,0x65,0xad,0xa3,0x1e,0xa3,0xcc,0x22,0xf7,0xea,0x63,0x66,0x77,0x5a, + 0x8e,0x57,0x87,0xe0,0x25,0x72,0xdb,0xfc,0xc4,0xdb,0xdb,0xfe,0x12,0x0c,0x5f,0x60,0xdd,0x08,0x9a,0x7e, + 0x03,0x98,0x02,0xda,0x04,0x6f,0x0e,0xd7,0xe6,0x53,0xe3,0xc4,0x48,0x73,0x32,0x18,0x1e,0x22,0x40,0xb2, + 0x0a,0x5f,0x75,0xa1,0x3a,0x51,0x95,0xac,0x80,0x15,0xa2,0xf0,0x7f,0x00,0xee,0x34,0x53,0x27,0x95,0xd0, + 0x86,0xc6,0x14,0x66,0x75,0x1c,0x90,0x01,0x79,0x6d,0xe4,0x88,0xdd,0x9d,0xb8,0x59,0xac,0xbe,0x55,0xf3, + 0xff,0x7e,0x16,0x7b,0x1d,0xe8,0x21,0x46,0xdd,0xee,0x45,0xe9,0xf2,0x6d,0xb7,0xfd,0x31,0x1d,0xc6,0x0f, + 0x4f,0x70,0x5f,0x35,0x5f,0x3a,0xaf,0x2e,0xa6,0x81,0xda,0x66,0xf7,0xb6,0x5b,0x7d,0x6b,0x24,0x48,0x6d, + 0xf8,0xfb,0x31,0xab,0xd2,0x87,0xe2,0x91,0x40,0x11,0xde,0x0c,0xfb,0xb1,0x48,0xdf,0x11,0xf1,0xec,0x98, + 0x46,0xab,0x5b,0x7b,0xd5,0x80,0x05,0xec,0x9f,0x50,0x74,0x43,0x9f,0x74,0x12,0x63,0xf2,0xcd,0x1a,0xbf, + 0xa8,0x78,0x47,0x73,0x13,0xee,0x34,0xd2,0x3a,0xa1,0x9a,0x30,0xf3,0x50,0x73,0x13,0x10,0xa1,0xfd,0x1b, + 0x7d,0x92,0x49,0xb0,0x83,0x68,0x75,0xb2,0xb5,0x07,0x80,0xff,0x3d,0xc7,0x4c,0x79,0x3c,0x0f,0x9f,0xae, + 0xa4,0xdf,0x4a,0x6a,0x28,0xa5,0x4f,0x77,0xd9,0xbb,0x3b,0xda,0x0f,0xcc,0x14,0xd9,0x0f,0x84,0x94,0x39, + 0xa3,0x37,0x8d,0x03,0xc6,0x7f,0xed,0xcb,0x3f,0x66,0x18,0xe9,0xc8,0x78,0xf1,0x24,0x8f,0x47,0x68,0xc0, + 0x59,0x06,0xd5,0xcd,0x80,0xbc,0xf2,0xc4,0xb6,0x48,0x62,0x42,0xc7,0xdc,0xdf,0xac,0xbc,0x8a,0x1e,0xa7, + 0x61,0x4f,0xbc,0xd5,0x26,0xa9,0x79,0x8c,0x08,0x4c,0xa2,0x2a,0x48,0x6d,0x8e,0xbd,0x0a,0xc3,0xb3,0x0d, + 0x7d,0x72,0x07,0x71,0x98,0xdb,0x9b,0x43,0x89,0xa0,0x5e,0x40,0xf3,0x3b,0x0e,0x0d,0x83,0x69,0xc0,0x8c, + 0xe3,0xaa,0xd7,0x85,0xb5,0xe0,0xd5,0xd9,0xd8,0x45,0xd3,0xed,0x71,0x7c,0xbd,0x4d,0x01,0x7e,0xec,0x26, + 0x4d,0xd1,0xef,0x78,0xfc,0x86,0xed,0x6d,0x03,0x3e,0x0e,0x0e,0xe3,0x27,0xc9,0xe7,0x6d,0xbb,0xbf,0x85, + 0x3e,0xe2,0x1b,0x8d,0x95,0x0a,0x08,0xfe,0x84,0x26,0x27,0x1e,0x21,0x48,0xb1,0x3e,0x0c,0x4a,0x97,0x21, + 0x61,0x36,0xbe,0xea,0xff,0xb1,0x13,0x01,0x29,0xc0,0xd0,0xb9,0x72,0x6a,0xe5,0x7c,0x93,0xbf,0x40,0x1f, + 0xd8,0xfe,0x84,0x61,0x0f,0x02,0x0e,0x04,0xf7,0xa1,0xa0,0x07,0xdc,0x1e,0x02,0xad,0x9b,0xf8,0xdc,0x64, + 0x4b,0x0c,0xf0,0x92,0xd1,0x6a,0x7c,0x28,0xda,0x52,0x9d,0xa2,0xe0,0x37,0xa2,0x0f,0x45,0x5d,0x24,0xa7, + 0x29,0xee,0xd7,0x25,0xe0,0x77,0xb3,0x61,0x2b,0x01,0x48,0x28,0x6c,0x48,0xad,0x80,0x41,0x3f,0x54,0xb1, + 0x96,0x40,0xd1,0x94,0x8f,0x6a,0x2b,0x01,0x8e,0x36,0xf8,0x03,0x8d,0xe7,0xb5,0x68,0xcd,0x1f,0x29,0x97, + 0x2a,0xcf,0x4c,0x84,0x51,0x23,0x0b,0x27,0xfb,0x2d,0xd0,0x79,0xcd,0x58,0x13,0x21,0x17,0xdc,0x44,0x3b, + 0x62,0xde,0x2e,0x28,0x9a,0xd8,0x8d,0x9a,0x43,0x29,0xdb,0x5e,0xaf,0x64,0xa8,0xe7,0x9c,0x85,0x32,0xa4, + 0x94,0x48,0xaf,0xbd,0x93,0x7d,0x53,0x28,0x0a,0x47,0x8a,0x49,0x69,0x8c,0xd7,0xd1,0x9f,0xa2,0x20,0x64, + 0xa8,0xb2,0xd1,0x40,0xc9,0x82,0x65,0x58,0xa6,0x24,0x1e,0xbc,0xc0,0x10,0x02,0x4f,0x4c,0xa7,0xdb,0x7f, + 0xa7,0xd8,0x06,0x03,0xb0,0xf6,0xcb,0xc7,0x25,0x32,0xd2,0x43,0xfb,0x7a,0x92,0x06,0xed,0x76,0x07,0x72, + 0x1e,0xa0,0x8a,0x17,0x59,0x17,0xee,0x1a,0x57,0xd6,0x07,0x41,0xbe,0x92,0xe5,0x97,0x53,0xfe,0x15,0xf5, + 0x08,0x5a,0x4e,0x84,0x04,0x1d,0xe7,0x53,0x48,0x35,0x45,0xc1,0x0d,0x40,0x33,0xb0,0x87,0x87,0x49,0xac, + 0xf4,0x4e,0x10,0xbf,0x07,0x9e,0x09,0x22,0xf5,0x50,0x9c,0x3e,0x12,0x0c,0x13,0xd0,0x59,0x06,0x74,0x06, + 0x68,0x36,0x7b,0x48,0x9d,0x3d,0x9c,0xbe,0x00,0x20,0x0c,0xff,0x03,0x7c,0x00,0x32,0x42,0xbf,0xa2,0x71, + 0xe9,0x3a,0xf9,0xa2,0x4a,0xf2,0x4a,0xa1,0xec,0x6f,0x1b,0x5f,0x50,0x2e,0x25,0xb0,0xc0,0x03,0xe5,0xa4, + 0xd2,0x78,0xa5,0xc5,0x74,0x29,0x4f,0xe2,0xab,0x4b,0x88,0x6a,0xf3,0xe2,0x76,0x3b,0xc7,0xd0,0x52,0x7e, + 0x61,0xb5,0x87,0x6a,0x24,0x52,0x7a,0x60,0x76,0x6b,0xa7,0x34,0x60,0xde,0xa0,0xf3,0x39,0x5a,0x17,0xca, + 0xae,0xa0,0xf8,0xce,0x61,0xf3,0x60,0x79,0xf2,0x00,0x11,0x71,0x14,0xaf,0x3e,0x1d,0x27,0x3e,0xe8,0x0c, + 0xde,0x38,0xcc,0xe7,0x0f,0x96,0x03,0x97,0x1a,0xa7,0x63,0xfa,0xc6,0x30,0xd1,0xa6,0x69,0x60,0x5a,0xc2, + 0x94,0x79,0x38,0x53,0x1c,0xaf,0x55,0x31,0xff,0x4c,0x50,0x64,0x72,0x62,0x6f,0xce,0x71,0xcb,0xfe,0xa1, + 0xa6,0x52,0xd1,0x47,0xc5,0x54,0xda,0x53,0x38,0x39,0xc4,0x8f,0x16,0x3b,0xa2,0xa0,0x8f,0xbe,0xd4,0xba, + 0x65,0xb1,0xf1,0x87,0x45,0x60,0xb8,0x63,0x23,0x17,0x93,0x0c,0xda,0x82,0x65,0x09,0x01,0xdd,0x42,0x86, + 0xee,0x18,0x1f,0x6b,0xee,0xe4,0x7e,0xf2,0x0b,0xd7,0x7d,0x1c,0x9d,0x80,0x8a,0xa0,0x81,0xbb,0x61,0x5f, + 0xf1,0x9f,0x28,0xc6,0xef,0x55,0xdf,0x52,0x85,0x03,0x32,0x4c,0x12,0xae,0x70,0x0a,0x87,0x46,0xc9,0x73, + 0xa6,0xed,0x67,0xc7,0xf6,0x3d,0x17,0x51,0xdf,0x19,0xe5,0xa6,0xb9,0xb3,0xf1,0x93,0xc9,0xf8,0xbb,0x05, + 0xe2,0x6a,0x6b,0xda,0x3d,0xd6,0xf8,0xc5,0xed,0x2e,0x4b,0x20,0x16,0x15,0x29,0xd6,0xed,0x31,0x30,0xa5, + 0x2c,0x2a,0x12,0x5b,0x01,0x7c,0xb6,0x31,0x90,0xcf,0xb4,0x29,0x70,0xd2,0x54,0xf2,0xc2,0xc9,0x73,0x89, + 0x0c,0x6b,0x79,0x19,0xd3,0xc1,0xa5,0x50,0xa7,0xa2,0x18,0x5f,0x3a,0x09,0xea,0x05,0x0e,0x6d,0x81,0xb8, + 0xf1,0xe9,0x78,0x8c,0x9c,0xec,0x77,0x72,0x36,0xe4,0x91,0x29,0x50,0xb5,0xf0,0x2d,0x61,0x46,0xff,0xc7, + 0x86,0x66,0x94,0x41,0x02,0x23,0x1b,0xcf,0xca,0x90,0x78,0xad,0x89,0xd2,0xe2,0xc1,0x48,0xf5,0x36,0x0d, + 0xd0,0xc3,0xd4,0xcb,0x89,0x7f,0xad,0x91,0x45,0x27,0xac,0x42,0x2f,0x68,0xee,0x00,0x5e,0x2c,0xa4,0x06, + 0xca,0x92,0x9a,0xaf,0x81,0x4b,0x5b,0x33,0xec,0xaa,0xbb,0x6e,0x2b,0x4e,0x81,0xaf,0xec,0x8d,0x95,0xc3, + 0xa6,0x7f,0xa0,0x38,0xfa,0x05,0x16,0x85,0xe4,0xf2,0x24,0x2d,0x02,0x19,0x94,0xf1,0xd8,0x47,0xb0,0xc7, + 0x89,0xbe,0xbb,0x7b,0x0d,0xdb,0x93,0x13,0x5e,0x29,0x44,0xe5,0xf7,0x3b,0xc4,0x72,0x15,0xfe,0x60,0xfc, + 0xba,0xfa,0x30,0x6d,0x6f,0x17,0x95,0x63,0x5c,0xfd,0xaf,0x01,0x22,0x9e,0xe5,0x2d,0x3d,0x71,0x2e,0xc6, + 0xab,0x3d,0x86,0x1d,0x11,0x1f,0x58,0xf5,0x88,0x59,0x31,0x14,0xda,0x3e,0xe5,0xd3,0x4f,0x84,0xc4,0x0b, + 0xd3,0x28,0x50,0x30,0x24,0x8a,0xdb,0x4e,0xc8,0x28,0x47,0xc2,0xa8,0xd6,0x15,0xde,0x96,0x54,0x95,0xfb, + 0xc9,0xf0,0x7d,0xa7,0xb8,0x8c,0xd8,0x15,0xd5,0xb2,0xea,0x91,0x51,0x7d,0xb9,0x1d,0x57,0xba,0x1f,0x15, + 0xad,0x38,0x54,0xc5,0x12,0xb4,0x8c,0x44,0x11,0x8d,0xfb,0xda,0x73,0x74,0x48,0x16,0xa1,0x7c,0xb6,0x38, + 0xfa,0x5e,0x5a,0x36,0xf7,0x66,0x2e,0xb3,0x4d,0x67,0xfb,0x54,0x09,0xba,0x78,0xca,0xfe,0x09,0x1e,0x8e, + 0x22,0x42,0xaf,0x47,0x6f,0x65,0xda,0xd0,0x1e,0xd5,0xb7,0x5e,0xf1,0x3f,0x14,0xfd,0x84,0x39,0x82,0x16, + 0xd6,0x1a,0x48,0xa8,0x63,0xf1,0x23,0xb5,0x2f,0xab,0x70,0xa2,0xcb,0x15,0x83,0x70,0xed,0x9b,0x04,0x31, + 0xd2,0x34,0x76,0xa7,0x07,0x6a,0x66,0x82,0x28,0x66,0xf1,0x5e,0xc1,0xbb,0x84,0x90,0x40,0x0c,0x34,0x4b, + 0x7c,0xa1,0xfc,0x74,0xe5,0xbc,0xaa,0x36,0xce,0xba,0xc0,0x72,0x4d,0x8e,0x8f,0x18,0x23,0x98,0x4a,0x24, + 0x05,0x0c,0xab,0x00,0x2d,0xce,0x91,0xa4,0x9c,0x47,0xe3,0xca,0x47,0x0b,0x93,0xd5,0x94,0xde,0x41,0xa5, + 0x37,0xec,0x86,0xdd,0x23,0x2c,0x78,0x8a,0xfc,0x35,0xbc,0x5f,0x7c,0x20,0x6f,0xf9,0xca,0xb3,0x90,0xa1, + 0xd5,0x5c,0xa4,0xe6,0xf5,0x64,0x31,0x0d,0x58,0x47,0xc5,0x19,0x79,0xe8,0x27,0x3a,0xf3,0x9b,0x86,0xba, + 0xba,0x5e,0xb8,0xcd,0xec,0x18,0x0a,0x17,0x29,0xfd,0x4c,0x13,0xca,0x9c,0x24,0xa9,0x19,0x5f,0x40,0xa4, + 0x7e,0xb1,0x42,0x92,0xa3,0x72,0x01,0xd2,0x58,0x39,0x3d,0xad,0x38,0x9f,0x57,0xf8,0x37,0x91,0xc3,0x34, + 0xc1,0x08,0x80,0xe0,0xd5,0xad,0x32,0x7a,0xbc,0xc4,0xac,0x02,0x6c,0x62,0x3d,0x0f,0xdf,0x29,0xc6,0xad, + 0x3d,0x0d,0x46,0x92,0xf4,0x03,0x1e,0x6b,0x42,0x8e,0xa8,0x7d,0xdb,0x09,0x70,0x30,0x1a,0x68,0xf5,0x49, + 0xf0,0x3b,0x1a,0x90,0x6a,0xe5,0xca,0x63,0x4d,0x7a,0x36,0x7c,0x7b,0x13,0xaa,0x0a,0x52,0x31,0xb9,0xdc, + 0xc5,0xc4,0xd3,0x5a,0xf3,0x92,0x7c,0x8e,0xa9,0xa9,0x59,0x6f,0xcf,0xa7,0xb4,0x22,0x05,0x73,0xba,0xae, + 0xd4,0xdd,0x32,0xd1,0x6a,0x91,0xfb,0x5c,0x5c,0x8c,0xbf,0x4b,0x53,0x28,0x6f,0x80,0xcf,0xc0,0xa0,0x45, + 0x1a,0xe7,0x81,0x7c,0x5e,0x98,0x39,0x18,0xb7,0x0a,0xdc,0x5f,0x19,0x23,0x8f,0x78,0x18,0x39,0x7d,0xaf, + 0x4f,0xd2,0x3a,0xbd,0x8c,0xf0,0x1f,0x35,0x51,0xfc,0x7c,0x0c,0xc2,0x05,0x33,0x59,0x75,0x34,0xaa,0xf6, + 0x04,0x4c,0x57,0xc6,0x58,0x76,0x00,0x1e,0xd1,0x5c,0xf6,0x6a,0x7e,0xf3,0x7b,0xdd,0xab,0xcd,0x23,0xb9, + 0x83,0x10,0xf6,0xd3,0x41,0x04,0xf6,0xeb,0xba,0x05,0xe4,0x53,0x8d,0xf2,0xfb,0xc5,0x63,0x34,0x76,0x31, + 0xe2,0x9e,0x9c,0xc0,0x79,0x43,0xd1,0x04,0x66,0xd2,0xc3,0x46,0x9f,0x48,0xbc,0x4b,0x9c,0x6b,0x67,0x08, + 0x8d,0xed,0x17,0x9a,0x81,0x43,0x42,0x6b,0xfe,0x4a,0x65,0x28,0x0a,0xbe,0x6a,0x7d,0x7b,0xa7,0x26,0x09, + 0x15,0x9d,0x4f,0x52,0xb5,0x33,0x95,0xe5,0x31,0x3e,0x3d,0x7a,0x61,0x96,0xf8,0xb8,0xcd,0x21,0x46,0x5d, + 0x67,0xd0,0x24,0x55,0x56,0xf5,0xff,0x9e,0xb4,0xc2,0x20,0x40,0x6e,0x94,0x46,0xb9,0x6d,0x96,0xaa,0x40, + 0x75,0x81,0xb1,0x2f,0x42,0x1d,0xb4,0x64,0x86,0x07,0x0b,0x14,0x16,0xe8,0x20,0x10,0x56,0x35,0x55,0xa0, + 0x03,0x94,0x5a,0x52,0x24,0x50,0xa0,0xf6,0x51,0x5f,0xb6,0xe6,0x68,0x6f,0xac,0x24,0xac,0x09,0x51,0xb4, + 0x4c,0xff,0x04,0x3a,0x7a,0xb4,0x72,0xe1,0xc9,0x12,0x0c,0xa8,0xa9,0x30,0x8e,0x50,0xa0,0x6b,0xfd,0x13, + 0x44,0xc1,0xd1,0xb1,0x03,0xc0,0x9b,0xd1,0x70,0x5d,0x73,0xe9,0xbe,0x9c,0x65,0x95,0xf8,0xc1,0xf8,0x3d, + 0xea,0xcf,0x3b,0xad,0x60,0xd2,0xbd,0x46,0x1f,0xd3,0x54,0x65,0x3f,0x15,0x01,0xd6,0x29,0x5a,0x42,0x79, + 0x5f,0xaf,0x37,0xf2,0xcd,0x87,0xc8,0x81,0x0f,0xad,0x63,0xf6,0xf9,0x27,0x94,0xe9,0x2b,0xbe,0xf2,0xbb, + 0x75,0xc2,0xfc,0x1d,0xab,0x40,0xb4,0xa8,0x4f,0x34,0x4f,0xe1,0x73,0xa7,0xbe,0x3c,0xa3,0x86,0xd3,0x7e, + 0x8e,0xa8,0x92,0xb9,0x97,0x98,0xf8,0xaf,0x01,0xc3,0x9a,0x3d,0x43,0x00,0xae,0xcf,0x77,0xa4,0xf7,0x0b, + 0xab,0xa0,0x68,0x8d,0xff,0x3e,0x0e,0xb1,0xd7,0x54,0x24,0xca,0x2f,0xf1,0xb9,0xcf,0xe2,0x0d,0xe9,0xef, + 0x5f,0xc3,0x53,0x86,0xc1,0x05,0xd5,0x4f,0x4f,0xc4,0x6b,0x42,0x72,0x5c,0xc7,0x7f,0xff,0x14,0x7e,0x01, + 0xc7,0xfa,0xc4,0x60,0x4e,0xea,0x09,0xe9,0xef,0x5f,0x6c,0x74,0x77,0x8b,0x2c,0x51,0xf9,0x69,0xff,0x7d, + 0x14,0xa5,0xec,0x75,0x06,0x65,0xe9,0x0a,0x46,0xdd,0x4b,0x58,0x4d,0xb3,0x7d,0x44,0xbd,0x2b,0xa5,0x2a, + 0x53,0x5d,0x54,0xfe,0x12,0x06,0x79,0x31,0xb8,0x9c,0x30,0x60,0x65,0xac,0x81,0xb3,0x99,0x6b,0xc0,0xb6, + 0xf4,0x69,0xea,0x98,0xe1,0x51,0xb9,0xf5,0x3c,0x67,0x84,0xbc,0xeb,0x38,0xfd,0xa8,0x7c,0x3e,0xaa,0xe4, + 0x63,0x7c,0x92,0x40,0x70,0x99,0x38,0xf0,0xa2,0xbc,0xbd,0xc9,0xe7,0xe2,0xc5,0xa3,0xf6,0x95,0x9f,0x47, + 0x70,0xa1,0xcd,0x03,0x63,0xbe,0x72,0x59,0x8f,0x6a,0x3c,0xab,0xed,0x30,0x5d,0x48,0xde,0xec,0x27,0x9f, + 0x2a,0xf0,0x0d,0xd5,0x95,0x2e,0xda,0xf1,0xb4,0xbf,0xf2,0x0c,0x78,0x6d,0x1a,0x27,0x0a,0x53,0x5c,0xc1, + 0x1c,0x95,0x4b,0x07,0xc2,0xc3,0x92,0xb8,0xe5,0x22,0x88,0x5b,0xa8,0xb7,0x9c,0xbc,0xf5,0x73,0x3e,0xb7, + 0x08,0xe4,0x93,0x52,0x98,0xe7,0x92,0x59,0x79,0xeb,0x79,0xd0,0x97,0xd6,0xee,0x9d,0xca,0x46,0xdf,0x6c, + 0x24,0x36,0x70,0x6c,0xf9,0x4c,0xbb,0x64,0x7b,0x89,0xea,0x75,0x40,0x9d,0xe0,0xd5,0x88,0x9a,0x12,0xcd, + 0x60,0x2c,0x3e,0x5f,0x7d,0x29,0xb9,0x7e,0xfc,0x5a,0x84,0x08,0x44,0xc3,0x78,0x43,0xcc,0xf2,0xd4,0x6b, + 0xa5,0x06,0xb4,0x8a,0xe3,0x82,0xaa,0x81,0x0a,0x3f,0xa2,0xaa,0xf0,0xe7,0xa8,0x8a,0x5a,0x63,0xdd,0x2e, + 0xaf,0x24,0x5c,0x37,0x09,0x6e,0xc3,0x1b,0xe7,0xd3,0xa9,0x17,0xd5,0x23,0x57,0x2a,0x0b,0x55,0x3f,0xca, + 0x77,0x49,0x72,0x62,0x52,0x9f,0xdf,0xf6,0xf1,0xc8,0xc9,0x73,0x1d,0x4f,0x57,0x88,0xb5,0x5d,0x73,0x4c, + 0x0e,0x4a,0x82,0x08,0x0f,0xb8,0xae,0x4e,0x6d,0xf9,0x79,0x38,0xa8,0x3e,0xc2,0x9b,0x9c,0x75,0xcf,0xe7, + 0x9f,0x63,0x50,0x50,0x25,0x95,0x97,0xc0,0xbd,0xba,0x75,0x3d,0x65,0xd8,0x7d,0xb2,0x8e,0x13,0x78,0xfd, + 0xc5,0x8e,0x70,0xe9,0xe7,0x35,0xe6,0x12,0xe4,0x0a,0x0c,0x3c,0x7e,0x50,0x49,0xf0,0x8d,0xbe,0x25,0x2a, + 0xd5,0x11,0x3e,0x07,0xce,0xbe,0x84,0xa8,0x4f,0x20,0xea,0x0f,0x74,0xd7,0x13,0xce,0x55,0x38,0xad,0x8c, + 0xf1,0x25,0xb0,0x1e,0xcf,0x16,0x52,0x02,0x8d,0xf6,0x62,0x04,0x9a,0x38,0xcb,0xab,0x25,0x50,0xd9,0xa2, + 0xa1,0xf2,0xf4,0x44,0xa6,0x3e,0x53,0xf4,0xf5,0x0b,0x50,0xfa,0xc2,0x91,0x78,0xfb,0x47,0xcd,0x9c,0xa1, + 0x4e,0x87,0x9f,0x89,0xd8,0xf7,0x9d,0x5e,0x1b,0x7c,0x62,0xb1,0x45,0xef,0x22,0xa5,0x38,0x93,0x46,0xdd, + 0x6e,0xa4,0xfe,0x78,0x6d,0x7e,0x6a,0x05,0x35,0xe3,0x0c,0x22,0x11,0xb8,0xcd,0x4d,0xea,0x6c,0x54,0xee, + 0x2a,0x44,0xec,0x5e,0x61,0x52,0x36,0xc6,0x7c,0xd6,0x35,0xe0,0xda,0xb8,0x34,0xd5,0x7f,0x8e,0x7e,0xd0, + 0x54,0xec,0x07,0xc5,0x3e,0x3f,0x42,0x62,0x25,0x65,0xf4,0xd3,0x0d,0x8d,0xf9,0x60,0x90,0x16,0x45,0xe3, + 0xde,0xd3,0x86,0x6b,0x69,0x9f,0xfc,0xb2,0x58,0x56,0x7e,0x76,0x4c,0xfb,0xba,0x65,0x8e,0xf8,0xfb,0x5f, + 0x9b,0xd8,0x26,0x6b,0x50,0x58,0xc4,0xb7,0xf5,0xc7,0x62,0x7d,0x8d,0x37,0x03,0x37,0xc1,0x8b,0x28,0x1e, + 0x8a,0xe7,0x1b,0xfb,0x5f,0xe2,0x08,0x2c,0xdf,0x76,0x53,0xc4,0x89,0x5d,0x1d,0x4e,0x95,0x3c,0x11,0xc4, + 0xa4,0x06,0x1a,0x1e,0xb4,0xd6,0x07,0xfc,0xb6,0xbb,0x61,0x4f,0x4e,0xe7,0x11,0x29,0x4a,0xd2,0xf0,0xe4, + 0x01,0xaa,0x49,0xc2,0xdb,0x80,0x1f,0x54,0x52,0xed,0x70,0x09,0x4d,0xf8,0x0c,0x72,0x75,0x95,0x61,0xd0, + 0x82,0x27,0xf8,0x7f,0x96,0xf8,0xc4,0x88,0xf8,0xf7,0x15,0xab,0x5b,0xc1,0xf0,0xff,0xa2,0x5c,0x10,0xa5, + 0x05,0xbf,0x70,0xa4,0xe9,0x13,0x9c,0xf9,0x89,0xf0,0x82,0x91,0xf9,0x93,0xd1,0x04,0x35,0xfe,0xf0,0xf3, + 0xc8,0x23,0x99,0x7b,0x9c,0xf5,0x58,0x8e,0x5b,0x98,0x9a,0xb0,0x55,0x34,0xea,0x33,0x01,0x3e,0xab,0xa3, + 0xd1,0x1d,0x4f,0x55,0x83,0x84,0xce,0x63,0xf5,0xf0,0xc9,0xea,0xd2,0x7e,0x74,0x8c,0x4d,0x84,0x23,0x0c, + 0xd4,0x66,0x24,0xbd,0x3b,0xa9,0x05,0xd4,0xb6,0xc2,0x3e,0xfd,0x3d,0x18,0x79,0x1c,0x5d,0x8c,0xac,0x51, + 0x5d,0x06,0x87,0x79,0x25,0x3d,0x27,0x95,0x97,0xb0,0xa0,0xab,0xd0,0xd7,0x1f,0x8a,0x27,0xe5,0x94,0x0f, + 0x4c,0x3d,0xd3,0xd9,0xb6,0x5b,0x77,0x8f,0xbe,0x50,0x7d,0x04,0x21,0x07,0x10,0x07,0x91,0xbf,0x5f,0x71, + 0xef,0xda,0x66,0x45,0xbf,0x91,0x81,0x6e,0x4e,0x86,0x66,0x17,0x92,0xdf,0xa9,0xe4,0x83,0x61,0x26,0x71, + 0x49,0x17,0xbd,0xd6,0xaf,0xdb,0x98,0xe5,0xba,0x83,0xc3,0x66,0xb2,0x22,0xb8,0x74,0x78,0xa2,0x63,0x3a, + 0x66,0x83,0xae,0xe3,0x09,0x44,0x84,0xee,0x8b,0x05,0x3a,0xaa,0x93,0x78,0xad,0x48,0x93,0xe4,0xd8,0x3e, + 0x38,0x12,0x1c,0x5e,0x3a,0x20,0x31,0x10,0x5b,0x6c,0x6f,0x34,0x99,0x4b,0xa8,0xd5,0x84,0x27,0xe4,0x4c, + 0x51,0x26,0xd6,0xd8,0x92,0x0b,0xa0,0x77,0xa7,0xbe,0xc4,0x40,0xa0,0x57,0x0f,0xe7,0xba,0x84,0x9b,0x33, + 0x24,0xc6,0x64,0x42,0xde,0x1e,0xa5,0x29,0x7c,0xd0,0x2f,0x1c,0x9f,0x7c,0x56,0x1e,0x89,0xdf,0xbb,0x93, + 0x72,0x39,0x0c,0x07,0x62,0x8e,0xe0,0x2a,0x79,0x12,0x35,0x46,0x8e,0xba,0x03,0xf5,0xed,0x81,0x0c,0xcd, + 0x4e,0x5e,0x97,0x8a,0x50,0xfa,0xec,0x87,0x80,0x39,0x87,0x9a,0xc0,0x6f,0x71,0x4e,0xb0,0x5d,0xd6,0xfb, + 0x31,0x4d,0x17,0x2d,0x92,0x71,0x01,0x10,0x0f,0x25,0x93,0x37,0x48,0x08,0xa6,0xbc,0x71,0x2c,0x21,0x39, + 0x98,0xca,0x43,0x11,0xfb,0x93,0xe2,0x02,0x02,0x32,0xfc,0x46,0x84,0xde,0x29,0xfc,0x13,0x15,0x2b,0xc5, + 0x65,0x2d,0xea,0xd1,0x51,0x43,0xe3,0x91,0xaa,0x9c,0x12,0xb4,0xc8,0x4b,0xef,0x7c,0x16,0x5f,0x5a,0xcb, + 0xb4,0xfd,0x49,0xb1,0xab,0x87,0x07,0x1d,0xd6,0x8b,0x49,0x0f,0xc2,0x02,0x24,0xb5,0xa1,0x2b,0x73,0xd4, + 0x01,0x5e,0x6f,0xf9,0x9f,0x00,0x08,0x39,0xd0,0xdd,0x9d,0xcb,0xe6,0xc0,0xd4,0xa7,0xb7,0x78,0x51,0x0b, + 0xd2,0xcd,0xf2,0xd6,0xe5,0xc7,0x1b,0x70,0xce,0xf3,0x2c,0x92,0xa4,0x90,0xce,0x65,0xdc,0x89,0xb3,0xfb, + 0x60,0x85,0x48,0xf0,0x1e,0xea,0xbd,0x97,0x51,0x58,0x5d,0xae,0xae,0x0c,0xa2,0x0e,0x6d,0xbb,0x29,0xd5, + 0x0d,0xe8,0xf3,0x42,0x0c,0x06,0xb9,0xa8,0x79,0x71,0x97,0xe1,0x5a,0xa2,0x00,0x3e,0x88,0xd6,0x97,0x21, + 0x09,0x48,0xbc,0x97,0xbd,0x98,0x9c,0x0b,0xf0,0xbf,0x01,0x3b,0x3d,0xeb,0x2b,0x85,0x4e,0xe2,0x6c,0x44, + 0x8f,0xb0,0xca,0x4f,0x84,0x12,0xe2,0x4c,0x84,0x17,0x02,0x00,0xa1,0x24,0xde,0xce,0xf2,0x03,0xd9,0x5e, + 0x04,0x07,0x31,0xad,0x16,0xff,0x0e,0x6a,0xe2,0xf8,0x13,0x36,0xc5,0x9c,0x64,0x4d,0x95,0xd9,0x03,0x79, + 0x64,0xef,0xb4,0x3e,0xd6,0x23,0x9d,0x40,0x41,0x06,0xad,0xf3,0x93,0xd3,0x79,0x98,0x30,0xf6,0xa3,0xf6, + 0x2f,0xfb,0x24,0x8f,0x89,0xf7,0x7a,0x6e,0xae,0x8b,0xe8,0x48,0xe4,0xe3,0x7e,0x21,0xfe,0x89,0x74,0x86, + 0x3d,0x4a,0x0b,0xd9,0x6d,0x4e,0xef,0x53,0x65,0x5f,0x79,0xde,0x90,0xca,0x0f,0x35,0x1f,0xf5,0x5c,0x35, + 0x35,0x1f,0xf6,0x0b,0xe7,0xb1,0xc0,0x02,0x0d,0xe3,0xf1,0x50,0x84,0x78,0x91,0x48,0x53,0x12,0xe7,0x75, + 0x5f,0xd3,0x0e,0x9b,0xf5,0xe7,0x44,0x56,0xc8,0x23,0x0b,0x4a,0x07,0x31,0x55,0x19,0x9a,0x55,0xad,0xc2, + 0x47,0xe9,0x69,0x61,0x54,0x20,0x05,0x42,0xa9,0x36,0xb7,0x5e,0xe7,0x61,0x62,0x13,0x91,0x13,0x96,0x8a, + 0x27,0x98,0xa1,0x27,0x67,0x77,0x5a,0x9c,0xf2,0xbf,0x22,0xda,0xfc,0xc8,0xf9,0xd6,0x39,0xaf,0x3c,0x5d, + 0xb9,0x40,0xc5,0x22,0x6c,0xed,0xed,0xbe,0x34,0xcc,0xc7,0xfd,0x67,0x8f,0x40,0x3d,0xf9,0x05,0x8a,0xbf, + 0x92,0x55,0x84,0xeb,0x56,0xc1,0xff,0x43,0xe5,0xa4,0xbc,0xa5,0xc4,0x3f,0x55,0x2a,0x98,0x5b,0x56,0x28, + 0x58,0x2b,0xe2,0xa2,0xa7,0xa3,0x93,0xe1,0xbb,0xa5,0x57,0xa6,0xb3,0x22,0x22,0xda,0x24,0x4a,0x4c,0x31, + 0xb1,0x59,0x2a,0x8f,0xe7,0xa2,0x56,0x53,0xbc,0xf2,0x92,0x3e,0x4d,0x75,0x3d,0x56,0x1c,0xe3,0x88,0x8b, + 0x16,0x32,0x91,0x6a,0x43,0x00,0x6e,0xe1,0x1f,0xc2,0x44,0x1f,0x75,0x39,0x44,0xd1,0xcf,0x7f,0xa4,0xbc, + 0x55,0xdf,0xa2,0x6d,0xe2,0xbc,0xee,0x8d,0xbd,0xc9,0x4c,0xc3,0xed,0x83,0x64,0xbb,0x00,0x44,0xdc,0xc2, + 0x46,0x5a,0x33,0x16,0x11,0x8f,0x78,0x25,0xe9,0x19,0x92,0xfb,0x26,0x54,0x96,0x33,0x88,0xb3,0xd2,0x7b, + 0x16,0x2e,0x30,0x30,0x60,0xc0,0x38,0x85,0xd0,0x86,0x92,0x51,0x91,0x72,0xdc,0x44,0xd8,0x80,0x59,0x1a, + 0x10,0x03,0x1c,0x3d,0x3e,0xaa,0x38,0x35,0xb6,0xde,0x51,0xe7,0x87,0x8c,0x28,0x34,0x8d,0x26,0x1b,0xa8, + 0x1d,0x69,0x17,0x3b,0x42,0x5c,0xbf,0xd1,0x0d,0xd2,0x65,0x2a,0x34,0x42,0xaa,0xb7,0xb4,0x0e,0xa8,0x67, + 0x98,0x42,0xc1,0xd5,0xe4,0xeb,0x6e,0x5c,0x4d,0x0d,0xb3,0x7d,0xd1,0xe3,0xa5,0xe4,0x82,0x99,0x7a,0x4b, + 0x7a,0xe8,0x37,0x40,0x03,0xd4,0xe7,0xc7,0x67,0x61,0xf5,0xa3,0x0c,0x3a,0xcd,0xc7,0x61,0x8f,0x78,0x9f, + 0x73,0xff,0x85,0x22,0x3c,0x73,0x1c,0xf3,0xce,0xbd,0xd8,0x75,0xbc,0x48,0xed,0x70,0x5b,0xbf,0x57,0x56, + 0xf0,0xcc,0x41,0x6a,0xb2,0xa2,0xdf,0xf3,0x37,0xab,0x47,0x10,0x64,0x24,0x3b,0x8f,0x6a,0x80,0x8a,0xe0, + 0x61,0x71,0xf4,0x02,0xfc,0x42,0x98,0x09,0x99,0xd2,0x50,0xcf,0xd1,0xa2,0x6b,0xb6,0x20,0x7c,0x6c,0x40, + 0xae,0x01,0x7d,0xd3,0x89,0xad,0x16,0xc8,0xa9,0x26,0x1c,0x1e,0x4b,0x02,0xf0,0x77,0x78,0xd9,0xf0,0x84, + 0xff,0xcf,0x44,0x54,0xbe,0x7d,0x41,0x75,0x52,0x52,0xfe,0x2f,0xec,0x3b,0x5e,0x1c,0x1d,0xc3,0x41,0xe4, + 0xcc,0x6d,0x17,0xe6,0x11,0xd3,0x2d,0x3d,0x8b,0xae,0x79,0xc9,0xb1,0x32,0x3c,0xb6,0x2d,0xad,0x7c,0x83, + 0xa2,0x3d,0x9a,0xf6,0x4f,0xa2,0x48,0xbe,0xe2,0xc6,0x7c,0x9b,0x22,0xfa,0x11,0xa8,0x7b,0x8e,0x5f,0x7c, + 0x2f,0x38,0x09,0x98,0x21,0xe0,0x48,0x49,0x7a,0x4a,0x1f,0x83,0x8d,0xbe,0x09,0x3e,0x7f,0x30,0x38,0xfe, + 0xac,0xe4,0x73,0x07,0x83,0x86,0x07,0x23,0x29,0x00,0xa5,0x2d,0x9a,0xf2,0x3d,0xa2,0x02,0xd3,0x68,0x1e, + 0x04,0xfa,0x08,0xd5,0x38,0x1a,0x5c,0x60,0x57,0xfa,0xea,0x13,0x19,0x81,0xba,0x1e,0x01,0xf1,0x64,0x3f, + 0x30,0xec,0x91,0xa3,0x51,0xa0,0x68,0xfe,0x19,0x90,0x05,0x72,0xcb,0x82,0x47,0x2a,0xcf,0x43,0xfb,0x22, + 0x2d,0xd6,0x0c,0x0f,0xe8,0x20,0xbd,0x1b,0x6b,0xbc,0x78,0xe3,0xb2,0xb2,0x9e,0x70,0x91,0xf2,0x19,0xed, + 0x6a,0xda,0x64,0xfa,0x75,0xf9,0x0c,0x46,0xf7,0xe1,0x2a,0xf1,0x83,0xc5,0x67,0xee,0xb6,0xe4,0xdb,0x6b, + 0xc1,0xda,0x74,0xe3,0x59,0x32,0xb5,0x11,0x1e,0x0e,0x3a,0x19,0xbd,0x55,0xfb,0xf0,0xa1,0xb3,0xed,0xa1, + 0x01,0x97,0x75,0x2b,0xa4,0x90,0x94,0x95,0x15,0xdb,0xa8,0xc2,0x6a,0xce,0x32,0x85,0x4b,0xec,0x8f,0xe8, + 0xe4,0x72,0xed,0xaf,0x90,0x8d,0xf7,0x8b,0xd7,0xb6,0xfe,0x79,0xae,0x1c,0x23,0x02,0x76,0x44,0x20,0x90, + 0x69,0xa7,0xa6,0xa6,0xca,0xdd,0xa9,0x6e,0x96,0x29,0x7d,0x7a,0xf4,0x56,0x5e,0x0b,0xfc,0x74,0x0f,0x9f, + 0x5b,0xda,0x7f,0x54,0x06,0x8a,0xf0,0x89,0xf4,0xa5,0x16,0x13,0xff,0x2c,0x9f,0xa9,0x15,0x8f,0x9c,0x24, + 0xed,0x9d,0xbc,0x0f,0x49,0x74,0x10,0x6c,0xb4,0x2e,0xf3,0x36,0x6f,0x58,0xa8,0x32,0x79,0x94,0x0d,0xc8, + 0xf1,0x7f,0x12,0xa0,0x24,0x4d,0xd3,0xc8,0xc3,0xc0,0xf3,0x19,0xdc,0xcb,0xa1,0xc2,0x3b,0x29,0xa3,0x89, + 0x91,0xf9,0x55,0x9a,0x56,0x3d,0x2e,0xc4,0x64,0x85,0x5e,0x1e,0x96,0xd5,0x89,0x11,0x66,0xd3,0xcf,0x55, + 0xd5,0xb2,0xd2,0x2b,0x68,0xde,0x03,0xad,0x19,0x14,0x83,0xe1,0x0d,0x7b,0x02,0x28,0x59,0x10,0x9e,0x66, + 0x05,0x98,0xdd,0x96,0xf5,0x74,0x25,0xef,0xc3,0xe5,0x89,0x11,0x70,0x27,0xa5,0x5e,0xc8,0x74,0x7d,0xa4, + 0x7a,0x9b,0xc1,0x0f,0x58,0x01,0x20,0x9c,0x53,0x17,0xa8,0x0f,0x9f,0x84,0xeb,0x53,0xfa,0x9a,0xf3,0xd1, + 0xda,0x36,0x82,0x5d,0x52,0xfc,0x5a,0x25,0x2b,0xa5,0xdb,0xbc,0x58,0xbe,0x42,0xba,0x09,0xb6,0x3e,0x25, + 0xc0,0x16,0x0a,0xbb,0xf9,0xdc,0xa7,0x5a,0x84,0x95,0x5e,0x57,0xcd,0x8c,0x39,0xff,0x79,0x6b,0xa3,0xbf, + 0x89,0x8d,0xe9,0x64,0x45,0x9b,0x55,0x20,0x18,0xdf,0x0f,0x71,0xab,0xd2,0xa7,0x8a,0xf6,0xd5,0x47,0xee, + 0xdd,0x8c,0xd8,0x9d,0xd8,0x87,0x42,0x72,0xf1,0x3f,0x61,0xfe,0x8d,0xc4,0xeb,0x50,0x1a,0xaf,0x23,0xc7, + 0x5a,0xb1,0xd6,0x41,0xa6,0x2f,0x24,0xad,0xc6,0x47,0xb9,0xbf,0x6e,0x13,0x07,0x96,0xa2,0xbf,0x97,0x57, + 0xa4,0x48,0xca,0x23,0x64,0x79,0xd5,0x50,0x37,0x66,0x3a,0x89,0x95,0xa3,0xae,0x84,0x8c,0x6f,0xa2,0x30, + 0x40,0x10,0x5b,0xc6,0xda,0x51,0xa0,0x98,0xe0,0x7f,0x11,0x5a,0x75,0xeb,0xfe,0xd0,0x3e,0xa8,0x31,0x9d, + 0xf2,0x4a,0xa2,0x36,0x9b,0xc4,0x11,0x11,0xdb,0xdf,0xfa,0x14,0x16,0x85,0x93,0xb2,0xb4,0xfd,0x2e,0xd5, + 0x66,0x1c,0x80,0x8c,0x7f,0xad,0xfa,0x7f,0x90,0x38,0xee,0x8d,0xc2,0xc8,0x15,0xe4,0xd0,0x20,0x75,0xfe, + 0xca,0x99,0x4c,0x3b,0x53,0xc7,0xb5,0x22,0x43,0x9a,0x71,0xca,0xdf,0x1f,0x2e,0x62,0x6c,0x19,0xa8,0x61, + 0x93,0x53,0xda,0xe8,0x3c,0xaf,0xd8,0xb0,0x69,0xc9,0xe2,0x86,0xed,0xef,0x4f,0x91,0x2e,0xae,0xd4,0xa6, + 0xce,0x20,0xbb,0xfa,0x6d,0x53,0x41,0x72,0x2d,0x40,0x11,0x61,0xd2,0x9d,0x70,0x40,0x57,0x19,0xe8,0xf9, + 0xff,0x6d,0xbb,0x84,0x34,0xcf,0xc1,0xf6,0xd3,0xcc,0xfd,0x73,0x47,0x55,0x73,0xed,0x80,0x26,0x5c,0xe5, + 0xe5,0x70,0x9e,0xd6,0x6a,0xdb,0x09,0xdb,0xdf,0x99,0x98,0x7a,0xb7,0x5e,0x4f,0xcb,0x65,0x79,0xfc,0x9f, + 0x3c,0xd6,0x4a,0x75,0x9a,0x2e,0x9b,0x61,0x3f,0x11,0x92,0xe3,0x84,0xfa,0xc8,0xd1,0x69,0xff,0xf9,0xb2, + 0x7f,0xa8,0xb6,0xc4,0xba,0x2d,0x21,0x7b,0x93,0xcc,0x67,0x1d,0x1b,0x83,0xda,0x04,0x60,0x37,0xb9,0xf7, + 0x4d,0x1c,0x81,0xac,0x24,0xf4,0x7c,0x7c,0x85,0x7a,0x69,0x52,0x6f,0x8a,0x14,0x09,0xbc,0xa7,0xa3,0x29, + 0x0c,0xbf,0x0d,0xe8,0x9b,0xaf,0xd7,0x95,0x13,0x18,0xa3,0xb9,0x06,0x9e,0x3e,0x49,0x83,0x12,0xca,0x55, + 0x4b,0x87,0xe7,0xb7,0xe9,0x06,0xf4,0x8b,0xf2,0x3b,0x71,0x2a,0x59,0x8f,0x47,0xb5,0x81,0xc4,0xfc,0x57, + 0x56,0x2d,0xf5,0x53,0xb2,0xa5,0xa6,0xe0,0xb3,0x6a,0x0a,0x1a,0x3f,0xc9,0xbe,0x9a,0x36,0xa3,0x5e,0xfe, + 0x3f,0x9d,0xa1,0x62,0x85,0x04,0xe2,0xa0,0x6a,0x09,0x1d,0x2d,0xd3,0x28,0xef,0x7f,0x86,0xde,0xa9,0xcf, + 0x07,0xcb,0x28,0x85,0xf5,0xb8,0xc2,0xba,0x61,0x50,0xde,0x99,0x18,0x39,0x95,0xbc,0x4e,0xbb,0x76,0x67, + 0xaf,0xfc,0x1b,0x02,0x09,0xee,0xe6,0xdc,0x03,0x9a,0xa1,0x4e,0x3b,0x4b,0x3c,0x02,0x42,0x6d,0x4f,0x95, + 0xe2,0xd6,0x24,0x26,0xaa,0xfe,0xff,0xf0,0x86,0x8c,0x93,0xf2,0xad,0x6e,0xe3,0x26,0xba,0x6b,0x56,0x0a, + 0x8a,0x23,0x5f,0xf4,0x0b,0xa4,0x10,0xc7,0x79,0x93,0x4e,0x35,0x58,0x2f,0x5e,0x50,0xfe,0x76,0x11,0xd0, + 0x51,0xfa,0x60,0x5f,0x22,0xc1,0xd1,0x32,0xb2,0x06,0x24,0x1b,0x9d,0x21,0xb5,0xf8,0x52,0x11,0xfb,0x9b, + 0x4d,0xdf,0xf0,0x60,0x22,0xd2,0x8d,0x28,0xe4,0x38,0x76,0x29,0x45,0x05,0x4e,0x00,0x9a,0x6b,0x89,0xce, + 0xb6,0x37,0xec,0xcf,0x48,0x09,0x5d,0xda,0x48,0xb2,0xda,0x90,0x59,0x94,0x0c,0xe9,0x85,0xb3,0xf1,0xd8, + 0xea,0x5f,0xb0,0x02,0x9d,0x87,0xe1,0xd9,0x9f,0x83,0x48,0xaa,0x00,0x94,0x21,0xc5,0x74,0xac,0x59,0xbf, + 0xeb,0x74,0xe7,0x3c,0xa9,0xc0,0x0b,0x6f,0x0f,0x40,0x0b,0xbf,0x1a,0x05,0x0b,0xc9,0x5a,0x1e,0x2e,0x3c, + 0xaf,0x65,0x36,0xc4,0xc6,0x7a,0x5e,0x94,0x83,0x8a,0x06,0xd6,0xdd,0x34,0xfa,0x46,0xdf,0x99,0xf2,0x57, + 0x7b,0x72,0x36,0xb1,0xb9,0x0a,0x48,0x4b,0xe5,0x3d,0xfa,0x06,0xac,0x5e,0x1e,0xab,0x5c,0x5a,0xf5,0x5c, + 0xa3,0x40,0x22,0x52,0xd0,0xed,0xb1,0x3a,0xf1,0xbb,0x3e,0x3c,0x14,0x05,0xc5,0xdb,0x29,0x6a,0xf0,0xdf, + 0x2e,0xd7,0x00,0xa2,0xa5,0x57,0x96,0xf6,0x67,0x20,0xd7,0x70,0x53,0x1d,0x3c,0x10,0x43,0x30,0xd8,0x6c, + 0x5f,0xa8,0x78,0x98,0x30,0x6f,0x03,0xb7,0x20,0xa7,0x4a,0xa0,0xf1,0x98,0x24,0x7e,0x42,0x81,0x61,0x59, + 0x09,0xed,0x53,0x58,0x65,0x7b,0xd1,0x35,0x22,0x30,0x7c,0x2d,0x40,0x28,0xb5,0x2c,0x79,0x4c,0x8f,0x9c, + 0xa8,0x92,0xbf,0x74,0xe3,0x5a,0x27,0x94,0xbb,0x7f,0x40,0x96,0x09,0x08,0x7e,0x2c,0x86,0x4f,0x46,0x87, + 0xc3,0x99,0x62,0xb0,0xe0,0xff,0x91,0x23,0x6c,0x69,0x51,0x9d,0xa1,0x91,0xa4,0x41,0x2f,0x67,0xc2,0x72, + 0x9d,0x65,0x7b,0x1d,0x07,0xe1,0xe6,0xcd,0x33,0xc3,0xcd,0x72,0x80,0x4c,0x9a,0x62,0x6f,0xce,0xc2,0x49, + 0x50,0x24,0xf1,0x17,0x40,0xda,0x01,0xd3,0x90,0x1a,0x74,0xd5,0xd9,0x75,0x99,0x85,0xbc,0x72,0x3c,0x3e, + 0xbd,0x3c,0x16,0xa7,0xe1,0xe0,0xab,0x38,0x62,0xb3,0x9c,0x9a,0xca,0x6c,0xd7,0xa7,0x63,0x29,0xe3,0xac, + 0x36,0xe5,0xe8,0x74,0x7c,0x09,0x2e,0xa8,0xf7,0x55,0x3a,0x40,0x18,0xd0,0x9f,0x27,0xd6,0xa9,0xe8,0x22, + 0xb0,0x6c,0xcb,0x2a,0x69,0x6d,0xd9,0x12,0x94,0x3e,0xfb,0xae,0xfa,0xc9,0xbe,0xe9,0x00,0x2b,0x64,0x53, + 0x60,0xde,0x9f,0x6b,0x0a,0x34,0x09,0x68,0x28,0xd1,0xfd,0x44,0xbf,0xe1,0x7a,0x53,0x20,0x4e,0xe1,0xb5, + 0x5b,0x89,0xf5,0x62,0xe0,0x5e,0x97,0xa7,0x2e,0x6f,0x04,0xae,0x66,0x2a,0x47,0x82,0x35,0xd5,0xca,0xb7, + 0x37,0x31,0x26,0x80,0x62,0x5e,0xaf,0xf2,0x4f,0x8a,0xac,0x2b,0xe0,0x57,0x2f,0xbc,0x8c,0x37,0xfa,0x64, + 0xb4,0x3a,0x63,0x33,0x88,0x76,0xdb,0x2a,0x00,0xed,0x82,0x35,0x75,0x21,0xe6,0xa2,0x69,0x0c,0x4b,0x41, + 0x49,0xb7,0x66,0x01,0xb0,0xa4,0xd8,0xff,0x64,0xd3,0x17,0x55,0x31,0x68,0xeb,0x16,0x60,0x15,0x3e,0x58, + 0x9c,0xa7,0x09,0x7e,0x92,0xcf,0x05,0xee,0x07,0x35,0xcd,0x16,0x60,0xcb,0x30,0x0b,0xe8,0xae,0x43,0x28, + 0x1b,0x0a,0x09,0xc8,0x0f,0x52,0x32,0xb7,0xac,0x7e,0xc8,0x09,0x7e,0xb0,0xae,0x14,0x6f,0xae,0xbb,0x70, + 0x7a,0x99,0x17,0x97,0xa5,0x76,0x7f,0x81,0x51,0x8e,0x80,0xf6,0xd7,0x5e,0x8f,0x92,0x20,0x65,0xea,0x8d, + 0xbc,0xb2,0xff,0xd1,0xeb,0xd1,0xb8,0x7e,0xc5,0x0f,0x2e,0x7d,0x50,0x53,0xef,0x58,0xf7,0x80,0x95,0x70, + 0x42,0xf4,0xba,0xd2,0x87,0xaa,0xdf,0xe1,0x59,0x4c,0xda,0xa0,0x20,0xcc,0x66,0x72,0x54,0x5b,0x5c,0x6c, + 0xdd,0x84,0xf8,0x73,0xf3,0x14,0xee,0xdb,0xf1,0x29,0x94,0xf0,0xeb,0x7c,0x9e,0xf5,0x0f,0x74,0x59,0xb9, + 0x2c,0x66,0xd1,0x5c,0x43,0x2e,0x9f,0x4f,0x83,0x97,0x21,0x70,0x57,0x99,0x2c,0x35,0xbc,0x74,0x57,0x38, + 0x94,0x2a,0xfb,0x5a,0xac,0x26,0x70,0x2a,0x74,0x35,0x12,0xc0,0x1d,0x35,0x7d,0xfd,0x17,0xe4,0xdf,0x4a, + 0xa4,0x79,0xf3,0x42,0x09,0x65,0x28,0xed,0x6b,0x8e,0xb9,0x82,0xa6,0x7c,0x48,0xb9,0x42,0x2f,0x31,0x27, + 0xd7,0xf9,0x5c,0x4c,0xd3,0xd3,0x94,0xfe,0x0b,0x0d,0x49,0xf5,0x87,0x5b,0xfd,0x44,0x78,0xb7,0x37,0xbf, + 0x48,0x92,0x55,0x2e,0x4d,0xd3,0xc9,0x2e,0x2a,0x47,0x5f,0x67,0x79,0xec,0x4d,0x08,0xb6,0x9c,0x69,0x5a, + 0xa2,0x9c,0x3a,0x35,0x4a,0xf7,0x00,0x65,0xf7,0x44,0x1e,0x12,0x31,0xd4,0xa0,0xa7,0xfd,0x87,0xde,0x73, + 0xf7,0x0a,0x84,0x6b,0xdb,0x48,0x42,0xa1,0x8c,0xaf,0xcc,0xe0,0x5c,0xcf,0x83,0x2b,0x3c,0x91,0xd9,0x09, + 0x69,0x23,0xf5,0x67,0x0e,0x64,0x91,0x33,0x53,0x0d,0x29,0x4d,0xd7,0x0b,0xb0,0x6d,0x64,0xa9,0xb4,0x90, + 0x86,0x7c,0xce,0x16,0x10,0x24,0x8a,0x70,0x3d,0x90,0x4e,0x4e,0x2d,0xae,0x65,0xb4,0x36,0x39,0x82,0xe9, + 0x39,0x73,0xda,0x6f,0xee,0xe0,0xa8,0x42,0x41,0xb7,0x5e,0x06,0x01,0x20,0x25,0x97,0xeb,0x46,0x86,0x5f, + 0xc5,0x97,0xa9,0x25,0x2a,0x3c,0x35,0x5d,0x5e,0x95,0x53,0x2f,0xa1,0x4c,0x27,0x89,0xd0,0xb1,0x1e,0xcb, + 0x71,0x91,0x8c,0xb8,0x82,0x37,0xbe,0x7e,0x22,0x7e,0x57,0x52,0x5a,0x17,0xdd,0x7d,0x9b,0x0d,0xd8,0x6e, + 0x0e,0x57,0x14,0xce,0x80,0x24,0x36,0x50,0xa3,0xfa,0x24,0x34,0x48,0xf9,0xf0,0xd1,0x80,0xc6,0xdc,0xa0, + 0x66,0x9a,0xb7,0x6d,0xa0,0x22,0xeb,0x13,0xa2,0x5f,0xaa,0xb7,0xc4,0xcc,0x0b,0x6b,0xd0,0x1d,0xba,0x43, + 0x27,0x28,0x8f,0x2f,0x3c,0x46,0x40,0x35,0x4c,0x98,0x81,0xfc,0x29,0xe8,0xc7,0xe1,0x7a,0x41,0xd0,0xd4, + 0x02,0x0f,0xbc,0xb7,0xa9,0xca,0x36,0x0c,0xae,0x24,0x81,0x3d,0x58,0x5e,0x56,0x54,0x46,0x48,0x10,0xcd, + 0x80,0x65,0x73,0x6e,0x76,0x20,0x9f,0xcd,0xc9,0x9c,0x63,0xb3,0xaf,0xd9,0x60,0x42,0xcb,0xb5,0xb2,0x76, + 0x89,0xcf,0x95,0xfd,0x74,0x96,0x7d,0x9d,0x87,0x90,0x4d,0x7b,0x20,0x8d,0xf0,0xbc,0x6d,0x97,0x68,0x40, + 0x76,0x15,0x54,0x54,0xe9,0xc7,0xe3,0x72,0x87,0xc1,0xd6,0x16,0x5e,0x54,0x17,0x49,0x2c,0x5f,0x06,0x09, + 0x47,0x8d,0xf7,0x81,0xf7,0x2c,0x04,0x0d,0x22,0xe3,0xb3,0x13,0x07,0xeb,0x4f,0x36,0x56,0xc0,0x4c,0xa8, + 0x20,0x48,0xbe,0xc6,0x86,0xe5,0xf5,0x16,0x5a,0x16,0x3a,0xb5,0xa2,0x7a,0xb1,0x91,0xcd,0x3a,0xae,0x9a, + 0x43,0x8d,0xfe,0x7e,0xd4,0x99,0x61,0x67,0x91,0xdb,0x17,0x59,0x33,0xbc,0x3f,0xcf,0x24,0x3c,0x93,0x66, + 0xcb,0x56,0xf9,0xad,0x16,0x7f,0x8d,0xc1,0xda,0x0b,0x69,0x10,0x3b,0xdb,0xbe,0x29,0x7a,0x1d,0xcb,0xe4, + 0xf1,0xab,0x32,0x29,0x5d,0x0e,0x8e,0x76,0x53,0x4d,0xad,0xa8,0x94,0xc1,0x00,0xb6,0x97,0x57,0xe1,0xb6, + 0x3b,0x60,0x21,0x00,0x8a,0x56,0xcc,0x14,0xc7,0x55,0x46,0x21,0xae,0xff,0xd8,0xd9,0x94,0xb3,0x37,0x66, + 0xce,0x8e,0xaf,0x9c,0x94,0x53,0x7c,0xee,0xa2,0xff,0xc7,0x93,0x92,0xdf,0xde,0x1c,0x99,0x39,0x1b,0xe3, + 0x05,0xc1,0x3e,0xc8,0x96,0x8b,0xf1,0x7f,0xae,0x9a,0x16,0x3b,0x6f,0x96,0x59,0x98,0x14,0xf8,0x55,0x44, + 0xce,0xeb,0x9d,0x01,0xf1,0x98,0x39,0x8b,0x3a,0x9b,0xca,0xd4,0x87,0xe7,0x4f,0x96,0x55,0xa5,0xa1,0xa4, + 0x50,0xb4,0x49,0x15,0x55,0xf2,0x8a,0x4a,0xcd,0x20,0xda,0x33,0xa0,0xec,0xb4,0xb4,0xc4,0xc3,0x18,0x45, + 0x4d,0x34,0x5d,0xf5,0xfd,0xbe,0xe8,0xdd,0x52,0xc7,0x1c,0x06,0xa1,0x65,0xe4,0xcc,0x06,0x50,0xfa,0x0e, + 0x16,0x4e,0xb2,0x5e,0xb0,0x92,0x0b,0x1a,0x01,0x55,0x4f,0x96,0xfd,0x17,0x30,0x12,0x0f,0x9b,0x28,0x42, + 0xa6,0x09,0x3e,0x09,0x64,0xe5,0x7c,0x8c,0x72,0xc1,0x21,0x6b,0x6a,0x34,0x3e,0x2b,0x7f,0xf9,0xf4,0x91, + 0xf1,0x95,0xc5,0x35,0xb4,0xcf,0x88,0x42,0x8f,0x5f,0x11,0xf9,0xf0,0x5f,0x68,0x81,0x07,0x41,0x19,0x04, + 0x44,0xe8,0x33,0xdc,0x49,0x74,0xb3,0x7e,0xdc,0x56,0x42,0x86,0xfb,0xbf,0x7a,0xa6,0xdc,0x9d,0xcb,0x22, + 0x72,0x51,0xc3,0x75,0xf1,0xaa,0x84,0xee,0xb6,0x47,0x55,0x32,0x46,0x56,0x67,0x83,0x06,0x66,0xa3,0xe7, + 0x59,0x42,0x03,0x3e,0xb3,0x00,0x41,0x08,0xa5,0x6f,0xd7,0xaf,0x45,0x5a,0x18,0x5d,0x1d,0x81,0xcc,0x0e, + 0xb5,0x37,0x10,0xd5,0xb6,0x09,0xa1,0x75,0x55,0x23,0xf5,0x49,0x0a,0x93,0xa6,0xb2,0x43,0x0a,0xbc,0xb6, + 0x34,0xb3,0x4c,0x81,0x6e,0x64,0x7c,0xe5,0x5a,0xf1,0xc6,0xb6,0xad,0x25,0x34,0x10,0x52,0x1e,0x5f,0x03, + 0x96,0x7e,0x3b,0x27,0x41,0xac,0xa8,0x3a,0x35,0xee,0xb1,0xef,0xb9,0x42,0xf4,0xc9,0x50,0xa7,0x25,0x7d, + 0xec,0x6c,0x23,0x2d,0x5c,0x1b,0x3f,0x50,0x24,0x65,0xd4,0xae,0x9c,0xe1,0x3b,0xbc,0xe9,0x68,0x0f,0x59, + 0xbb,0x3a,0x0e,0xce,0xf0,0x20,0xf1,0xac,0x5d,0x0f,0xef,0x3b,0x9a,0xb3,0x86,0xac,0xc7,0x15,0x00,0x26, + 0xb0,0xd7,0x16,0xf4,0x01,0xf4,0xc1,0x40,0xc3,0xa4,0x2e,0xe0,0x73,0x8a,0x48,0xb5,0x54,0x7e,0x72,0x42, + 0xba,0x12,0x88,0x4c,0xc2,0x5a,0x77,0x01,0x6f,0x94,0xde,0x00,0x41,0xf4,0xff,0xbc,0x38,0xc4,0xa7,0x66, + 0x73,0x76,0x69,0x04,0x6c,0x0b,0x6c,0xdd,0xcd,0xa1,0x06,0x65,0x39,0xa1,0x1a,0x98,0xeb,0x9e,0x62,0x95, + 0xc8,0x72,0x3c,0x34,0x7e,0x1a,0xed,0xa3,0x49,0xd7,0x91,0xa7,0x57,0xad,0x9c,0xa0,0x25,0xd5,0xd2,0xf9, + 0xe8,0xf1,0x0c,0x23,0x75,0x0d,0xb5,0x66,0x15,0x92,0x15,0x63,0xaa,0x3e,0x8e,0xda,0xfc,0xe0,0xa8,0x52, + 0xe9,0x78,0x50,0x40,0x96,0xeb,0x56,0xa2,0x05,0x0c,0xb0,0x80,0xb2,0xd9,0x97,0x12,0x50,0xe4,0xfd,0x80, + 0x6c,0x92,0xd0,0xb4,0x2b,0xfe,0x80,0x93,0x5b,0xf3,0x42,0xb3,0xe4,0x3f,0x62,0x86,0xc0,0x9b,0x75,0x3d, + 0x58,0x28,0xac,0x1c,0x78,0x8e,0x62,0x3b,0x57,0x4e,0xe7,0x1e,0x7a,0xc9,0xa0,0x0e,0xf5,0xff,0x3c,0x54, + 0xa4,0x2a,0x2c,0xfb,0xe5,0x6e,0xd9,0x4f,0xe5,0x55,0x66,0xdf,0x06,0xd6,0x83,0xe4,0x4f,0xb1,0x6f,0x02, + 0x92,0x2d,0xd1,0x2b,0xf2,0x20,0x24,0x98,0xc0,0x96,0xd1,0x23,0xce,0xea,0xaf,0x63,0xc4,0xcd,0x1c,0x20, + 0x21,0x42,0xa0,0x12,0xeb,0x02,0x64,0xaa,0xfe,0x0b,0x07,0xcb,0xa5,0x0c,0x3e,0x10,0x0c,0x5c,0x1a,0xd6, + 0x55,0x28,0xcc,0x12,0x4f,0xfb,0x03,0xed,0x21,0xef,0x50,0x59,0x26,0x85,0xba,0xef,0x58,0x74,0x77,0x15, + 0xff,0xaa,0x03,0x90,0xa0,0x49,0x04,0x10,0x98,0x88,0x45,0xc0,0xba,0xc8,0xaf,0x12,0x8e,0x4c,0xf7,0x3d, + 0xa6,0x46,0xe3,0x8a,0xd2,0x99,0x5f,0x20,0x0f,0x7d,0x62,0x7c,0x65,0x17,0xf5,0x8a,0x1e,0x45,0x57,0x17, + 0x14,0x99,0xc4,0x44,0xd3,0x03,0x13,0x90,0x47,0xf7,0xdd,0x2b,0x1a,0x88,0x68,0x0a,0x2f,0x98,0x32,0xea, + 0xf1,0x57,0xd4,0x94,0x9d,0x94,0xbd,0xf1,0x17,0x8a,0x08,0x13,0xf5,0xbb,0x42,0xce,0x1a,0xcb,0x0e,0xb8, + 0x52,0x91,0x88,0x07,0x73,0x59,0x07,0xa0,0x3f,0x20,0xd9,0xd7,0x7a,0x45,0xe5,0x18,0x78,0x2e,0xb3,0x09, + 0xfc,0x12,0x22,0xb8,0xf5,0x75,0x72,0xb8,0x8d,0x78,0xbd,0x96,0x23,0xd8,0xfd,0x62,0x63,0xe5,0xb7,0xcb, + 0xbf,0x51,0xfa,0xb7,0xc4,0xa8,0xfc,0x1d,0xdb,0xb0,0xac,0x42,0x38,0x23,0x3f,0x8b,0x71,0x0a,0x5d,0xa6, + 0xa0,0x78,0xed,0x7d,0xae,0x08,0x4e,0x4d,0x35,0xf3,0xc2,0xf6,0x00,0x61,0xb3,0xbd,0xe1,0x46,0xf1,0xf6, + 0x1f,0x16,0x1b,0x2e,0xf0,0xde,0x6e,0x65,0x0d,0xae,0x7c,0x27,0x91,0xd6,0x18,0xe7,0x91,0x9e,0x84,0x80, + 0x1a,0x29,0x78,0x5b,0x17,0x54,0x07,0xbd,0xf4,0x01,0xf8,0x03,0x36,0xb8,0xe3,0x43,0x4a,0x71,0x29,0x6a, + 0xc9,0x68,0x13,0x83,0x61,0xab,0x50,0xf5,0x09,0x67,0x88,0xeb,0xf3,0xf8,0xd8,0x73,0x4d,0x42,0xc0,0xc3, + 0x2b,0x3e,0xdc,0x74,0xf0,0x13,0xd7,0x23,0xe9,0xc4,0xa4,0xe1,0x41,0x6b,0xa5,0x4c,0x61,0x0b,0x59,0x63, + 0x12,0x1d,0xd4,0x25,0x08,0x6a,0x68,0x98,0xd0,0xeb,0x06,0x1a,0x34,0x6f,0xd8,0xef,0xda,0xd5,0x86,0x39, + 0x60,0x79,0x38,0x06,0x7b,0x35,0x57,0x90,0xc2,0x8b,0xdd,0x6a,0x4a,0x44,0x78,0x1b,0x8a,0xb4,0x10,0x59, + 0x66,0x89,0xca,0x94,0x1a,0x9f,0x70,0x9c,0x75,0xc3,0x57,0x73,0x5c,0x19,0x69,0x99,0xe0,0xd8,0x45,0x1e, + 0x37,0xb2,0x9e,0x72,0xbf,0x9a,0x06,0x95,0xeb,0x61,0x46,0x33,0x2b,0xff,0xb1,0x30,0x21,0x98,0x49,0x3e, + 0x11,0xb5,0x90,0xe0,0x57,0x64,0x05,0x42,0x9d,0x51,0xc1,0xfb,0xf6,0x5a,0x70,0xf3,0x74,0xec,0xaa,0x38, + 0x0f,0x8d,0x6b,0x5a,0x89,0x22,0xc2,0x54,0x2c,0xc0,0x23,0x78,0x3e,0x8c,0xf6,0xf0,0xd4,0xe4,0xc1,0x7c, + 0x43,0x04,0x4b,0xe5,0x0c,0x35,0x8d,0x06,0x8b,0x7e,0x61,0xaa,0xbb,0x0f,0x82,0x16,0x0a,0x40,0x4b,0x8f, + 0x4b,0x7e,0xce,0x42,0x9e,0xe7,0x08,0x35,0x35,0xcd,0x82,0x25,0xc8,0x7a,0x98,0x1d,0xa0,0x42,0xeb,0x53, + 0xe6,0x63,0x06,0xb1,0x0b,0xa1,0xf3,0x7a,0xa8,0x6b,0x18,0x30,0x52,0x9b,0x75,0x06,0x3c,0x26,0x73,0x1a, + 0xfd,0x02,0x0d,0x35,0x00,0x1e,0x17,0x94,0xff,0x37,0xda,0xfd,0x06,0x22,0x45,0xba,0xa9,0xc7,0xc8,0xd9, + 0xf1,0xff,0x2b,0x07,0x70,0xab,0x14,0x17,0x96,0x55,0x15,0x92,0x2b,0x7b,0x73,0x59,0xb4,0xdb,0x2b,0x7e, + 0xce,0xa5,0x27,0x99,0xcd,0x09,0x9a,0xd4,0x28,0x8a,0x73,0x9b,0xaf,0x6c,0xf2,0x54,0xe3,0x4d,0xf9,0x0c, + 0x43,0x18,0xf1,0xe0,0x8a,0xc5,0x47,0x1a,0x38,0x33,0x50,0x2e,0x96,0xe8,0xf6,0x1a,0x16,0xfc,0x99,0xf5, + 0x75,0x46,0xce,0x7e,0x38,0xc6,0x9b,0x19,0x04,0xbb,0xe7,0xf0,0xed,0x63,0x98,0x78,0x9d,0x1f,0x8f,0x5d, + 0x4d,0x73,0x69,0x19,0x3f,0xbb,0x10,0xb8,0x3a,0x8a,0xae,0xec,0x64,0x20,0x59,0xe8,0x77,0x78,0x80,0x96, + 0xb1,0x95,0x8a,0xeb,0x15,0x9a,0xcc,0x6e,0x72,0xf6,0x76,0x66,0xf7,0xa8,0x7a,0x10,0x39,0x42,0xad,0xb5, + 0x7a,0x73,0x61,0x86,0x7d,0xcf,0x21,0xc5,0x62,0x14,0x00,0x95,0xae,0x93,0x7f,0xf3,0x0e,0xa7,0xa8,0x69, + 0xc9,0x98,0x46,0x87,0xef,0xe3,0xa3,0x5f,0x20,0xb2,0xc9,0x20,0x7f,0xa0,0x91,0x87,0xfb,0x94,0xce,0xb2, + 0x7f,0x48,0x09,0xfe,0x47,0xe5,0xc4,0xc8,0xbc,0xd6,0x5a,0x3e,0x33,0x0d,0xb7,0x8f,0xb8,0x1f,0x9f,0x1b, + 0x19,0x4e,0xd7,0x3d,0x9f,0x51,0x40,0xa1,0xd5,0xd3,0xd5,0xa6,0xde,0xd0,0x02,0x07,0x03,0xcf,0xd5,0xaf, + 0x90,0xab,0x02,0x78,0xec,0x5e,0x34,0x9e,0xd9,0x14,0x93,0x68,0x3e,0x9b,0xa8,0x69,0x73,0x97,0xa6,0x0c, + 0x4b,0xad,0x2d,0x09,0x71,0x98,0xae,0x83,0x58,0x1c,0x9b,0xe2,0x21,0xcd,0xcd,0x8f,0x3a,0xe6,0x14,0x8d, + 0xd0,0xaf,0x80,0x3b,0xea,0x25,0xe6,0xed,0x36,0x66,0xe5,0x6b,0x21,0x9f,0xa9,0xbf,0x78,0x7b,0x33,0xd3, + 0x96,0x9e,0xb3,0xf6,0x22,0x5f,0xfa,0x79,0x6a,0x92,0x24,0x8f,0xca,0x0e,0x9f,0xc3,0xcf,0x59,0x7f,0xbf, + 0x26,0xd7,0x5e,0xbb,0x3c,0xf5,0xd7,0x6a,0xa0,0xfa,0xa3,0xe8,0xb7,0x3c,0x29,0x43,0x9d,0x3a,0x49,0x4b, + 0xd7,0x92,0x7b,0xb4,0x21,0x5e,0x9b,0x95,0xc4,0x7b,0xe0,0x6d,0xe2,0x7f,0xa8,0x6c,0x6d,0x7b,0xad,0xf9, + 0x0d,0x14,0x7a,0xa9,0xa9,0x64,0x02,0x77,0x7f,0xe7,0xee,0x51,0xc5,0x80,0x67,0x98,0xad,0x93,0x37,0x71, + 0xdb,0x85,0xde,0x87,0x54,0x7c,0x67,0x82,0x07,0x97,0x66,0x96,0xf6,0x9f,0xa2,0x48,0x7d,0xa1,0x06,0x15, + 0xb1,0x2f,0x4c,0x62,0x39,0x80,0x76,0x6e,0xc8,0x38,0x41,0x91,0x26,0x27,0xcb,0x30,0x25,0x61,0xd2,0x11, + 0x71,0x2f,0x67,0xfa,0xd9,0xd0,0xbe,0xe7,0x22,0xc5,0xa7,0x11,0xab,0x06,0x8a,0x82,0x87,0x81,0xa2,0x04, + 0xf8,0x83,0xb1,0x23,0xe8,0xc6,0xa8,0x0e,0x99,0x61,0x9a,0x11,0x5c,0x6b,0x12,0x82,0x84,0xa6,0x60,0xab, + 0x62,0x20,0x8a,0x7a,0xbe,0xc4,0x0f,0xc6,0x37,0x25,0x6f,0xd1,0x87,0x8f,0x76,0xf0,0x87,0xfb,0x05,0xba, + 0x55,0x0d,0x8e,0xa9,0x55,0x5b,0x80,0xfa,0x66,0x88,0xea,0x35,0xba,0x9c,0xbd,0x02,0x15,0xb1,0x50,0x1e, + 0x3f,0xa4,0x04,0x27,0xfe,0x22,0x84,0x08,0x4b,0x50,0xdc,0xe9,0x44,0xc7,0xf4,0x6f,0x83,0xc3,0x45,0x2c, + 0x89,0xf9,0xce,0x0f,0x3b,0xe3,0xe8,0x2c,0x04,0x88,0xa1,0x3e,0xea,0xfb,0x03,0xd2,0xfb,0xac,0x3e,0x0c, + 0x2d,0x45,0xa5,0x1c,0x05,0x53,0x7e,0xda,0x9f,0x38,0x62,0x78,0xa5,0xf0,0x44,0xf4,0x6a,0x18,0xbd,0xf8, + 0x37,0x74,0x45,0x4a,0x7a,0x5b,0xbc,0x14,0x23,0xf2,0x89,0x23,0x75,0xea,0x7d,0xd0,0x51,0x44,0xbb,0x7e, + 0x53,0x0b,0xf3,0x37,0xd4,0xbc,0x64,0x00,0x0a,0xe1,0xa2,0x51,0x8b,0x31,0x3a,0xe5,0xb4,0xbf,0x3f,0x95, + 0xe5,0x9a,0x73,0x06,0xc3,0x68,0x84,0x6e,0x0f,0x10,0xe5,0xbf,0x0f,0x71,0x80,0xee,0xf5,0xed,0x60,0x64, + 0x46,0x7b,0x1f,0xd6,0xd7,0x14,0x1b,0x4f,0xb9,0x70,0x43,0x2e,0xed,0x4f,0x52,0x37,0xc1,0xeb,0x37,0x89, + 0x7a,0x2a,0x29,0x06,0x4f,0x66,0x27,0xc0,0x64,0xf7,0x2f,0xe2,0x40,0x85,0x1b,0x13,0xba,0x34,0x51,0xa5, + 0x4a,0xea,0xaf,0xf9,0x4f,0x14,0x17,0x18,0x12,0x6d,0x48,0x4d,0xee,0xd1,0xbf,0x32,0xfe,0x82,0x0c,0xa4, + 0x3c,0x58,0x79,0xf5,0xf4,0x89,0xca,0x85,0xc3,0x66,0x49,0x71,0xb2,0xe0,0x93,0xea,0xd2,0x01,0xf2,0x66, + 0x41,0x73,0x9b,0xa5,0xeb,0x92,0x48,0xe9,0x8c,0x4f,0x8f,0x10,0x34,0x61,0xf2,0x63,0x04,0xba,0xaa,0x4f, + 0x04,0xac,0xdb,0xa5,0x89,0x98,0xce,0xd1,0x1f,0x8b,0x05,0x76,0x5f,0x97,0x6b,0xf4,0x1a,0xf9,0x76,0x99, + 0x92,0x19,0x1e,0x0e,0x37,0x35,0x6b,0x15,0xa4,0xdf,0x36,0xc1,0x61,0x22,0x4d,0xfe,0x54,0x64,0x31,0x25, + 0x14,0xd9,0x5c,0x7d,0x52,0x99,0x6b,0x6f,0xca,0x38,0x0c,0x1a,0xef,0x17,0x56,0xa1,0xfe,0x6b,0x00,0xb6, + 0x48,0x66,0x6e,0x45,0x0d,0x9e,0x9c,0x27,0x29,0xb7,0x35,0x5f,0xd9,0x03,0xe4,0xed,0x35,0x30,0x6e,0xe9, + 0x55,0xa6,0xed,0xbe,0xed,0xef,0x34,0x99,0x20,0x9a,0x08,0x6a,0xa4,0xc7,0xf4,0x34,0x99,0xca,0xb0,0xfb, + 0xd6,0xed,0x4f,0xa4,0xfe,0x0d,0x1d,0xb7,0xcf,0x7f,0x5f,0xdd,0x48,0xea,0x2b,0xa1,0x84,0x56,0xd5,0x0f, + 0x25,0x80,0x48,0x7a,0x14,0x83,0xaf,0xba,0x1a,0x35,0x4a,0x4b,0xa0,0xf2,0x83,0x4b,0x07,0x14,0x4d,0x96, + 0xb7,0xff,0x5e,0x0d,0xb0,0xeb,0x26,0xd5,0xc8,0xf0,0x86,0x3d,0xbb,0xb4,0xbf,0x23,0x0c,0x4e,0xad,0xe1, + 0x31,0xa0,0xc7,0xc0,0x4d,0x14,0x66,0x2b,0x74,0x0f,0x0d,0xa4,0xef,0x6a,0xe9,0x39,0x99,0xb4,0x4e,0x91, + 0x96,0xf3,0xad,0xc3,0x89,0xac,0x59,0xa6,0x2b,0x6c,0xf4,0xfb,0x9a,0xaf,0x74,0xae,0x2c,0xa7,0x9f,0xd5, + 0x54,0x7c,0x73,0x9b,0x4b,0x8d,0x95,0xca,0x22,0x26,0x7e,0x90,0xe4,0x2d,0x29,0xd9,0x33,0x99,0x74,0x03, + 0x55,0xeb,0xda,0x38,0x72,0xdc,0x34,0xb5,0xcd,0x39,0x92,0x49,0xba,0x6f,0xc4,0xf9,0x79,0x84,0xd5,0xb5, + 0x11,0x63,0xf1,0xc8,0x80,0x61,0xb1,0x5c,0x1e,0x23,0x01,0x80,0xe6,0x15,0xd0,0xfd,0x62,0x78,0x73,0x3f, + 0x3f,0x93,0x2a,0xd0,0xa6,0xd7,0x67,0xce,0x37,0x6d,0xc1,0xd7,0xa7,0x26,0x50,0x99,0xc7,0xce,0x85,0xc3, + 0x27,0xe9,0x78,0x10,0xf1,0xfa,0x30,0xce,0x6e,0x49,0x3e,0x42,0x52,0x12,0xfc,0x8a,0x6e,0xa6,0xfd,0xb3, + 0xc4,0xa0,0x5b,0x44,0xb6,0xb7,0x13,0x44,0x38,0x6b,0x20,0x7b,0x09,0x64,0xe0,0x16,0x4b,0x07,0xe0,0xf5, + 0x42,0xcb,0x5d,0x8c,0x1a,0x01,0x86,0x0c,0x70,0xc2,0xe8,0x01,0x09,0x5b,0xa3,0x17,0x32,0xe7,0x8a,0xed, + 0x57,0xc2,0x78,0x1a,0x6b,0x90,0x8e,0x83,0x79,0xe1,0xb6,0x1a,0x9e,0x87,0x49,0xa5,0xe0,0xcc,0x6a,0x5a, + 0xec,0x07,0x7d,0x80,0xee,0x6d,0xfd,0x40,0xa2,0x91,0x5a,0x17,0xba,0x99,0x44,0x9c,0xe0,0xf8,0x71,0x47, + 0x91,0xbf,0x8e,0xe9,0xb8,0x46,0xaf,0x0c,0x17,0xdd,0x91,0x9c,0x53,0xa6,0x25,0x52,0x25,0xe3,0x60,0xfd, + 0xd7,0xa9,0x3d,0x35,0x81,0x0e,0xab,0x6b,0xe6,0xb2,0xbd,0xe5,0x20,0xe5,0x0b,0x72,0x42,0x95,0x6e,0x67, + 0xbd,0xbb,0xb5,0x96,0x0d,0x22,0x14,0xc1,0xfc,0xe1,0x89,0x4e,0xea,0xf5,0x5a,0xf9,0x0c,0xd1,0x58,0xff, + 0x80,0x2c,0xeb,0xd8,0x8d,0x33,0x1d,0x8d,0x35,0x1d,0x0b,0x7e,0x30,0x58,0x98,0x2f,0xab,0x0c,0xd8,0xfe, + 0x09,0x2a,0x28,0x10,0x61,0x7c,0xba,0x71,0xf3,0x86,0x65,0xa1,0x74,0x1b,0x6c,0x8f,0x91,0x37,0xa0,0x77, + 0x0c,0x1b,0xed,0xd8,0x40,0x60,0x30,0x9e,0x54,0x9f,0x51,0xa2,0xc8,0x48,0xfa,0x12,0x83,0x0d,0x6d,0x62, + 0x3b,0x98,0x2a,0x08,0xa4,0x99,0x93,0xea,0x61,0x42,0x5d,0xa5,0x4e,0x0b,0x37,0xfa,0x96,0xe8,0xd6,0x4a, + 0x25,0x21,0xf7,0xc8,0x78,0x6d,0xb3,0xb2,0x01,0x29,0xf9,0x22,0xee,0x9b,0x74,0x2c,0x57,0x2d,0x9b,0xeb, + 0x6e,0x24,0xac,0x9b,0xf5,0x09,0xd1,0x2f,0x01,0x2c,0xf1,0x88,0x86,0x82,0x0d,0x1c,0x86,0x40,0x25,0xfe, + 0xea,0x1a,0x03,0xc9,0xbc,0x81,0x36,0x4b,0x1d,0x69,0x56,0x28,0x61,0xb9,0x89,0xf9,0xf5,0x9e,0xff,0x07, + 0x89,0x2e,0x22,0xac,0x80,0x76,0x5c,0xb9,0xc7,0x26,0x30,0x12,0x63,0xac,0x9c,0x58,0x6e,0x6f,0x23,0x52, + 0x9f,0x28,0x51,0xf7,0x97,0xcc,0x69,0xf6,0x57,0x6a,0x97,0x57,0x94,0xe5,0x4e,0xf6,0xc6,0x1f,0xa4,0xfa, + 0x45,0x09,0x76,0xd6,0x02,0x8d,0x6c,0x8a,0x8a,0x9c,0x8b,0x56,0x9b,0x41,0xea,0xae,0x27,0xc2,0xb0,0x90, + 0x12,0x0e,0x15,0x81,0x9a,0xc2,0xea,0x4c,0xdd,0xab,0x2d,0xed,0xaf,0x34,0xa5,0xa3,0x9c,0xe0,0xe5,0x4a, + 0x3e,0xb8,0x59,0x8c,0x6b,0x74,0xf2,0x19,0x54,0xea,0xf0,0xfc,0x8c,0x5d,0x42,0x74,0x67,0x4a,0x19,0xe4, + 0x79,0x88,0x6e,0xa1,0x08,0x49,0x89,0xb7,0xd7,0x2f,0xad,0x2a,0x01,0x15,0x70,0x5d,0x47,0x8a,0x04,0x63, + 0x61,0xa8,0xee,0x38,0x49,0x75,0x7e,0xb7,0xf3,0xcc,0x15,0x3f,0x75,0xa0,0xc3,0xcc,0x68,0x63,0xe9,0x73, + 0xaa,0xea,0xe3,0xcb,0xe1,0x18,0x8e,0x37,0x4c,0x35,0x7a,0x53,0x6a,0xb5,0xa0,0x46,0x39,0xeb,0xc6,0xb0, + 0x29,0xe0,0x17,0x4a,0x88,0x78,0xe7,0x2e,0x92,0x07,0x22,0xd8,0xb0,0x53,0x6b,0x74,0x49,0xdd,0xb4,0xdb, + 0x13,0xb8,0xfa,0x17,0x91,0x2e,0x38,0x76,0x8b,0x89,0x47,0x72,0xd2,0x53,0x64,0xb6,0xce,0xee,0xfb,0x41, + 0xda,0xeb,0x7e,0x21,0x72,0xfa,0x5e,0xd7,0x0c,0x5a,0x46,0x9a,0x51,0x37,0x3c,0xdc,0x73,0x94,0xf5,0xe6, + 0xcc,0x97,0x42,0x22,0xbe,0xe5,0xa6,0xc0,0x61,0xbd,0x4a,0x96,0x5c,0xb3,0x85,0x5a,0x89,0x91,0x96,0x12, + 0xdb,0xf2,0x16,0x0f,0xd7,0x59,0xbf,0x21,0x25,0xc8,0x73,0x86,0xe6,0x54,0xfa,0xc0,0xe3,0xe3,0x48,0x76, + 0x97,0x05,0x58,0x9d,0x62,0x5d,0x39,0xd7,0xeb,0xc5,0xf4,0xcb,0xc9,0xeb,0x12,0x74,0x5f,0xa8,0xa9,0xf5, + 0x23,0xa3,0xab,0x2b,0xc7,0x2b,0xd4,0x42,0x36,0x2a,0x65,0x7c,0x05,0xf4,0x6e,0x12,0xdb,0x01,0x91,0x9e, + 0xe4,0xc5,0x78,0x4c,0x21,0x97,0x36,0x91,0xa6,0x93,0x44,0xfa,0x0a,0x61,0x1f,0xed,0xe2,0xb7,0xdd,0xf7, + 0x5a,0x1b,0xe6,0x8a,0x29,0x12,0x9e,0xd1,0x2a,0x65,0xf5,0xf7,0x34,0x29,0x1f,0x00,0x6a,0x48,0x4f,0x7d, + 0x49,0xbf,0x97,0x88,0xb1,0x0d,0x02,0x8d,0xc5,0x72,0x0d,0x49,0x78,0x43,0x0b,0xd2,0x1a,0x4d,0x28,0x82, + 0x94,0x8b,0xc4,0xc0,0x0d,0x5b,0x2d,0x56,0x3d,0x6f,0x11,0xeb,0xa9,0xfa,0x87,0x78,0x7d,0x3b,0x65,0x46, + 0x28,0x15,0xb0,0x5c,0x18,0x1a,0xe7,0x31,0xe0,0xce,0xf0,0x9a,0x5a,0x83,0x3f,0x89,0x43,0x4d,0x28,0x01, + 0x69,0x60,0x82,0x19,0xbc,0x61,0x3b,0x39,0x1b,0xb4,0xc1,0xd7,0x97,0x59,0xc1,0x30,0x10,0x05,0x21,0xb1, + 0x00,0xcb,0x78,0xdb,0xc7,0x3a,0xeb,0xdf,0x73,0xf8,0x58,0x2f,0x40,0xac,0xdf,0x71,0xac,0x32,0xdb,0x93, + 0xb3,0x1c,0x23,0xbf,0x9b,0x7d,0x6d,0x90,0x40,0x67,0xc2,0xb0,0x25,0xdb,0xbd,0x07,0x17,0xdd,0xfd,0xf5, + 0x0c,0xdb,0xe3,0xc4,0x48,0x10,0x31,0x3b,0xec,0x40,0xe8,0xc2,0x63,0xac,0xcb,0xc8,0xf6,0x6d,0x50,0x45, + 0x27,0xf9,0x45,0x6f,0xc1,0x4f,0x04,0x50,0x86,0x4f,0x57,0x8e,0x23,0x98,0xfa,0x68,0xd4,0xc6,0x10,0x75, + 0x05,0x61,0xe6,0x78,0x5c,0x21,0xa1,0x1a,0xae,0xf6,0xf4,0x08,0x0a,0xf0,0x43,0x54,0xa8,0xf2,0x7c,0x2a, + 0x0f,0xbc,0x5a,0x8c,0x49,0xb2,0xc7,0xc3,0x38,0x62,0xce,0x8e,0x4f,0xf7,0x0b,0xa5,0xd4,0xa4,0x2a,0xfe, + 0x12,0x16,0xdd,0xaf,0x8d,0x82,0x05,0xa9,0xc1,0xb8,0xef,0x7c,0x2a,0xe9,0xb0,0xd6,0x19,0xc4,0x34,0x51, + 0xd7,0x65,0x50,0x66,0x48,0xb4,0xe2,0x8c,0x94,0xcb,0xfb,0x56,0xbe,0x1c,0x55,0x81,0x6a,0xc6,0x67,0x49, + 0xad,0xe3,0xd0,0x7f,0x13,0xe8,0xb3,0xef,0x39,0xd1,0xce,0x60,0x84,0x63,0xc0,0x07,0x5c,0xbe,0x9e,0x5c, + 0x3e,0xd4,0x97,0xaf,0x3f,0x6e,0x32,0x49,0x49,0xd1,0xb0,0x54,0x48,0x0b,0x2c,0x61,0xdf,0x71,0x67,0xea, + 0xa0,0x6e,0x5c,0xe5,0x62,0xaa,0xc1,0x4b,0x95,0x0b,0xab,0x22,0xa9,0xb1,0xc8,0xff,0x15,0x69,0x82,0x31, + 0x80,0x2e,0x2a,0x13,0x6d,0x7b,0x71,0xf4,0x49,0x95,0xa1,0x30,0xf1,0x7c,0x52,0xb9,0x97,0xd1,0x6a,0x6a, + 0x9f,0xff,0xab,0x53,0xfa,0x24,0xe0,0xee,0x60,0xfc,0x38,0xbe,0x6a,0x27,0x70,0x58,0xaa,0x5f,0x59,0xff, + 0x80,0x47,0x06,0xee,0x24,0x17,0xab,0x27,0x0e,0x6f,0xc0,0x87,0x3d,0x10,0xdc,0xfb,0xca,0xfe,0xaf,0x86, + 0xd2,0xaa,0xae,0xcd,0x4f,0x9d,0x01,0xd5,0xd6,0xf3,0x4c,0x21,0x88,0x9f,0x3a,0x82,0x10,0xeb,0xe4,0x0c, + 0xe9,0x88,0x52,0x79,0x82,0x20,0xd4,0x1a,0xba,0x77,0xdc,0x35,0xa5,0xe1,0x9f,0x95,0x9d,0xc8,0x97,0x83, + 0xe1,0x37,0x06,0x5c,0xdc,0x9b,0x93,0x39,0x47,0xeb,0xe6,0xad,0xb4,0x28,0x74,0x68,0xd2,0x2a,0x7c,0x4e, + 0x85,0xc8,0xf0,0x48,0xed,0x97,0x70,0x72,0x72,0xcb,0x24,0x5b,0x69,0xd4,0x70,0x8d,0x5a,0xe3,0x0f,0x1a, + 0x9d,0xa8,0xf1,0x0e,0xff,0xad,0x84,0xde,0x6c,0x45,0x2d,0xbc,0xd0,0xbc,0x3a,0xc7,0xf8,0x47,0xb9,0xf8, + 0x85,0x2f,0xfd,0xb4,0x2b,0xd1,0x6b,0xad,0xef,0xa8,0x74,0xe5,0x80,0x62,0x19,0x72,0x3c,0x70,0xd7,0x6d, + 0x4e,0x68,0xbb,0xa3,0xd1,0x89,0x59,0xfa,0x36,0xa2,0x10,0xbf,0xb9,0x41,0xa5,0x92,0x93,0xa9,0xad,0xc7, + 0x14,0x0d,0x17,0x33,0xc5,0x71,0x05,0xce,0xd8,0x1c,0xee,0x04,0x89,0x8e,0xb6,0x2e,0xc4,0x1b,0xd9,0xc0, + 0x56,0xc9,0x6f,0xa8,0x6c,0x77,0x00,0x54,0x2a,0xdb,0xf3,0x97,0x7e,0xa0,0x3c,0xd5,0xca,0x8d,0x1e,0x81, + 0x81,0x25,0xfb,0x4a,0xf4,0x38,0xf2,0xea,0xf4,0x4b,0x99,0x1d,0x47,0x0e,0x11,0xe9,0x3e,0xe8,0x17,0x58, + 0xb7,0xc0,0x0b,0xd3,0x3f,0xd1,0x31,0xed,0x9f,0xb8,0xf0,0xbb,0x06,0xc6,0x93,0x30,0x8b,0x34,0x29,0xed, + 0xc2,0xca,0x25,0xe2,0x03,0xdd,0x42,0xca,0x52,0x43,0xfe,0x91,0xc7,0x18,0x0a,0x48,0x3b,0xd0,0xf3,0x7f, + 0x92,0xb0,0xa7,0x10,0xa5,0xb2,0xb7,0xf3,0x50,0x2a,0x03,0x0a,0xd7,0x4a,0x25,0xe9,0x4f,0x64,0x54,0x90, + 0xa8,0xff,0x80,0x87,0x09,0x28,0x80,0x01,0xeb,0x89,0x15,0x81,0x41,0xa8,0xdb,0xaf,0x34,0xf3,0x4e,0xce, + 0x8a,0x7d,0x4d,0x2e,0x30,0x03,0x87,0xe2,0xd6,0x47,0xf6,0x90,0xc2,0x6b,0x34,0x62,0x7d,0x6d,0xe6,0x1b, + 0x45,0xfc,0xa4,0x92,0xaf,0x27,0x27,0xf1,0x37,0x55,0x19,0x2a,0xa6,0x98,0x56,0xc2,0x7b,0xf1,0x5a,0x14, + 0xa8,0x0c,0xbc,0xa7,0xab,0x21,0xad,0x05,0xd5,0xb2,0x2a,0x6d,0xc4,0x49,0x7f,0x07,0xae,0xa6,0x30,0xd8, + 0x52,0xa3,0x25,0xc3,0x88,0xfe,0x25,0xec,0x0d,0xa4,0x66,0xf9,0xb9,0x4e,0x76,0x95,0xfc,0x39,0xa5,0x5f, + 0xad,0x02,0x57,0xc5,0xe4,0x75,0xc9,0xd7,0x82,0x4e,0x3a,0xb0,0x2a,0x07,0x2c,0xd2,0xad,0xe1,0x90,0x1a, + 0x75,0x93,0xd7,0xf9,0xdc,0x8d,0x85,0xeb,0xe0,0xc2,0x18,0x62,0xd4,0x5e,0x74,0xc9,0x33,0x8b,0x5f,0xd8, + 0x91,0x7e,0xa1,0xa6,0x6a,0x43,0x4e,0x8f,0xaf,0x24,0x99,0x3b,0x1b,0x9f,0x94,0x53,0xe4,0xfa,0x8a,0x72, + 0x09,0xde,0x36,0xf2,0xc6,0x7f,0xe3,0x9a,0xbb,0xe8,0xd8,0x74,0x81,0xe2,0xf8,0x69,0x4d,0xab,0xfe,0x4b, + 0x4d,0xa3,0xb6,0x5a,0xce,0x47,0x49,0xb4,0x30,0x3f,0x74,0x3a,0x1d,0x1b,0xf5,0x4e,0xd8,0x2f,0x7b,0x73, + 0x60,0x41,0xe5,0x33,0xc4,0x30,0x27,0x47,0x78,0x9c,0x6c,0x90,0x11,0x86,0xca,0x9e,0x1c,0x06,0xaa,0x7f, + 0x68,0xb5,0xc7,0xb0,0x97,0x17,0x9b,0x2a,0x89,0x28,0x7a,0xb9,0xa8,0x6d,0x24,0x07,0xfb,0xea,0xe0,0xf2, + 0x7a,0x5e,0xd0,0xbb,0x56,0xa9,0x92,0x76,0x19,0x5f,0x39,0x4f,0x2d,0x1f,0xa3,0x7c,0x06,0x2c,0x53,0x8b, + 0xc7,0x96,0xb0,0xb8,0x7a,0xbe,0x61,0x79,0x4e,0x8f,0xa0,0xbe,0x57,0x1b,0xab,0x4a,0x15,0xf3,0x10,0x91, + 0xf6,0x84,0x91,0xed,0x65,0x03,0xd4,0xa3,0x04,0x78,0x34,0x94,0xc5,0x60,0xe9,0x1c,0x64,0x21,0xb9,0x50, + 0xf4,0x0b,0x17,0xf4,0x44,0xb7,0x4b,0xe7,0x78,0xa8,0x94,0x8d,0x42,0xe3,0x78,0x48,0xf1,0xcb,0xe0,0x70, + 0x15,0xf2,0xf5,0x8c,0x4e,0xaa,0x16,0xd7,0xb5,0x98,0xb3,0xb7,0x79,0xb1,0x7e,0xf9,0x70,0xb5,0xa4,0x49, + 0x85,0x72,0x61,0x18,0x07,0x7b,0xbd,0x1b,0xe0,0x3f,0xe1,0x72,0x2d,0xae,0xbc,0x2a,0x67,0x03,0x55,0x72, + 0x64,0xe7,0x6d,0x5e,0x3f,0xbc,0x6b,0x77,0x18,0x37,0x43,0x65,0x92,0x2c,0x55,0x30,0x7b,0xec,0xd6,0xf8, + 0xa1,0xe9,0x9f,0xf3,0xe2,0xd3,0x15,0x45,0x3c,0x2f,0x6f,0x74,0x84,0xf8,0xbd,0x71,0x59,0x15,0x82,0xbe, + 0x3f,0xcc,0x3c,0xdc,0x8b,0xec,0x02,0x00,0x2b,0xe7,0x67,0x4b,0xe4,0x36,0xb5,0x5a,0x5a,0xf5,0xe0,0x80, + 0x37,0x4e,0xb5,0x26,0x7f,0x4b,0x4e,0xe9,0x77,0x50,0x25,0xc3,0xb7,0x29,0x1c,0x1d,0x73,0x6f,0x2a,0x62, + 0xf9,0x63,0xb1,0x81,0xc9,0xa0,0xba,0x2d,0x70,0xe9,0xc3,0x27,0x48,0xf6,0x0e,0x52,0xb4,0x59,0xd1,0x69, + 0xff,0xc7,0x2b,0xfe,0x9a,0xe3,0xde,0xf2,0x3f,0x14,0xfd,0xac,0x1b,0x9c,0x0a,0x69,0xcf,0x5a,0xb9,0x7c, + 0x97,0x7c,0x1d,0x39,0xd2,0x73,0x8e,0xd1,0x5c,0x45,0x0d,0xa0,0x75,0x44,0x77,0xd8,0x60,0xae,0xd3,0xd5, + 0x25,0x5c,0xc5,0xa4,0x37,0x2b,0xff,0x90,0x55,0x65,0xa1,0xe6,0x7f,0xd8,0x8f,0xb5,0x66,0x99,0x2c,0xa1, + 0xd1,0x59,0x0f,0xf8,0x2a,0x81,0xb6,0x70,0x55,0xea,0xa5,0xaf,0xde,0x4c,0x23,0x74,0xb4,0x22,0xad,0xb6, + 0x49,0xb6,0x97,0xe8,0x1f,0xa1,0x0d,0x40,0xdc,0xb2,0xa4,0x92,0x22,0x58,0xf0,0x0a,0xb3,0x8d,0xbc,0x08, + 0x19,0x54,0xbf,0x29,0xb7,0x90,0x4a,0x0c,0x2f,0x55,0x57,0x31,0x46,0x15,0xb2,0x27,0xcf,0xa5,0x2b,0x79, + 0x7c,0x4d,0x48,0xcc,0xf1,0xad,0x0e,0x65,0xf9,0xd1,0x12,0x9f,0xf6,0x0b,0x33,0xa9,0x61,0x94,0xcf,0xc8, + 0x2b,0xb7,0x89,0x2e,0x3c,0x0a,0x20,0xf0,0x5c,0xc3,0xee,0x11,0x2e,0x9f,0x1b,0x61,0xdd,0x96,0x10,0x53, + 0xa5,0x0e,0xac,0x55,0x3d,0xe2,0xeb,0xf5,0xe5,0xe6,0x1a,0x99,0x41,0xa0,0xbf,0x18,0x27,0xac,0x32,0xba, + 0x2c,0x81,0x88,0xcf,0xf9,0x05,0xd5,0xe5,0xa9,0xa6,0xfb,0x2c,0x1e,0xfb,0x75,0x4e,0x4d,0x93,0x9f,0xed, + 0x43,0x46,0x9e,0xdb,0x49,0x3b,0x15,0x39,0x82,0x3f,0xed,0x12,0xd1,0xc1,0x8c,0xb4,0xac,0xca,0x31,0x78, + 0x39,0xb1,0x40,0x71,0xc4,0x45,0x64,0x98,0x04,0x12,0x9d,0x46,0xeb,0xb6,0x01,0x48,0x04,0x93,0x20,0x0f, + 0x3e,0x6d,0xac,0x27,0x3d,0x48,0x71,0x9e,0xe0,0x31,0xe4,0xbc,0x04,0xe7,0xc5,0xd0,0x1c,0xb9,0x56,0x0d, + 0xaf,0x9d,0x0b,0x47,0x54,0x39,0x13,0xc9,0xf4,0x06,0x5c,0xba,0xae,0x4e,0xd3,0x1d,0xab,0x70,0x12,0x3c, + 0x16,0xd6,0x0c,0x8b,0x2b,0x09,0x8d,0xc2,0x37,0x05,0x2e,0xe7,0x14,0x32,0xf5,0x63,0x68,0x89,0xcb,0xc3, + 0xcf,0xf3,0xf0,0xf2,0xf0,0x72,0xa3,0x0b,0xf7,0x01,0x2c,0x59,0x05,0x54,0x08,0x9d,0x7a,0xcd,0x31,0x75, + 0x2a,0xc1,0x04,0x9b,0xbf,0x99,0x65,0x14,0xe4,0xda,0xa0,0x3d,0xf9,0xfc,0xb4,0x4e,0x30,0x89,0xb9,0x06, + 0xb8,0x31,0xa6,0x00,0xeb,0xfd,0x98,0x87,0xf3,0x0d,0xbd,0x90,0x27,0x75,0x45,0xc9,0xa1,0x95,0x7c,0x43, + 0x12,0xcd,0xb4,0xba,0x53,0x36,0x49,0x19,0xc5,0xed,0xd5,0xb7,0x50,0x65,0x41,0xe2,0x20,0xbd,0x44,0xda, + 0x86,0x97,0xed,0xd5,0x1f,0x43,0x26,0xb3,0x86,0xe7,0x21,0x3e,0x34,0xae,0x9b,0x27,0xe9,0x1d,0x07,0xe3, + 0x6d,0x87,0xa7,0x92,0x37,0x8b,0xa9,0x92,0x78,0xb7,0xf3,0x1e,0xf5,0x19,0x25,0xf5,0x40,0x34,0xda,0xf3, + 0x33,0xf6,0x2b,0xea,0xa1,0xa3,0x0d,0x39,0xb0,0x1b,0xd2,0xdf,0x3f,0x23,0x27,0xf0,0x65,0xc6,0xdf,0x9f, + 0xa9,0xd3,0x2d,0x71,0xc9,0xa5,0xe7,0x53,0x33,0xc3,0xba,0x03,0xf0,0x70,0x04,0xba,0x74,0x5c,0x75,0x08, + 0x96,0x11,0x83,0xd6,0x65,0xb8,0x75,0x0a,0xf5,0x5c,0x18,0x21,0x19,0x9f,0x56,0x32,0x0a,0x4e,0x35,0xf6, + 0x26,0x5c,0x75,0xb2,0x7d,0xb3,0x9b,0xda,0x8b,0x94,0x73,0xec,0x7f,0x0a,0xe7,0x1d,0x6c,0x1d,0x45,0x28, + 0xf3,0xee,0xf2,0x73,0x99,0xb6,0x07,0x9d,0xcd,0x77,0xe5,0x32,0xf1,0xb8,0xa9,0x09,0x3e,0xa7,0x16,0x2c, + 0x63,0xc5,0x2b,0x4a,0xa6,0x65,0xea,0xc3,0xa0,0x7e,0x83,0xc2,0x8d,0xd2,0xf7,0x3c,0x6c,0xbe,0xa2,0xed, + 0x20,0x7d,0xe3,0x14,0xe2,0xfc,0xc7,0x79,0x8c,0xd6,0xa9,0xa5,0xfd,0xa9,0xb2,0x69,0xb4,0xb8,0x8f,0x0b, + 0x80,0x79,0x4e,0x31,0x20,0xff,0xc4,0xc1,0x32,0xf0,0xe5,0x00,0x49,0x5d,0xc3,0x2e,0x94,0xb7,0xf4,0x28, + 0x5e,0x4c,0x34,0x6b,0x58,0xab,0x4a,0xc3,0x16,0xbb,0xf4,0x20,0x4b,0xab,0x92,0x90,0xb0,0x45,0xbb,0xde, + 0x90,0x62,0x61,0xde,0x27,0x06,0x2c,0xcb,0x9b,0x70,0x44,0x4a,0xa1,0x74,0x4e,0x62,0x82,0x94,0x24,0x92, + 0xa2,0x3e,0xe4,0xd0,0x3f,0xd3,0xc9,0xfb,0x48,0xa1,0x41,0x32,0x06,0x12,0xe6,0xc5,0x6b,0xcb,0x30,0x0d, + 0xa6,0xe9,0xb3,0xef,0x0a,0x14,0x32,0xde,0x7f,0x5b,0x98,0x39,0xa4,0x9f,0xbc,0xf6,0xde,0x52,0x2c,0x94, + 0x0d,0x12,0x25,0x76,0x79,0x38,0x8a,0x9f,0x86,0x45,0x7c,0xba,0xda,0x14,0x64,0x55,0xf0,0x3c,0xcb,0x81, + 0xf9,0x76,0x89,0x13,0xdd,0x6c,0x6f,0x86,0xe8,0xd9,0xb1,0x86,0x52,0x1f,0x25,0x0d,0xa2,0x8a,0x28,0x5a, + 0xb8,0xfc,0x48,0xc0,0x7a,0x91,0x47,0xcc,0x8b,0x2a,0x78,0xa2,0x24,0x70,0x12,0x9d,0xf5,0xee,0x60,0xc1, + 0xff,0x23,0xff,0x35,0xde,0xb2,0x7e,0x0b,0x7c,0xd6,0x2a,0x10,0x00,0xb4,0x86,0x3c,0x66,0xfc,0x1a,0xd1, + 0x3d,0x24,0x58,0xcb,0xa6,0x62,0x7d,0xad,0xba,0xb4,0x1f,0x07,0x12,0x50,0x71,0x44,0x13,0xce,0x48,0x0f, + 0xba,0xfa,0xf4,0x84,0xc2,0x46,0xbd,0x9c,0x1f,0x0c,0x50,0x39,0x4b,0x54,0xed,0x0d,0x59,0x27,0x43,0x08, + 0x79,0x01,0x8f,0xad,0x92,0xa1,0xea,0xdb,0xa2,0x32,0x7a,0x74,0x02,0x37,0x3d,0xfa,0xbf,0xcf,0xa3,0xff, + 0xa9,0x8a,0xf4,0x1c,0x65,0x40,0xd0,0x9c,0xec,0xe5,0xe1,0xed,0xcd,0x91,0xa4,0x41,0xb6,0xce,0x95,0x97, + 0x50,0xf7,0x64,0x68,0x7f,0x65,0xf1,0xa8,0xbd,0x15,0x4d,0xd4,0x18,0x28,0x98,0x81,0xf8,0xfc,0xf2,0x4a, + 0x86,0xa1,0x92,0x6a,0x0d,0xc2,0xac,0xd6,0x7a,0xe5,0x28,0x6d,0x79,0x20,0xf4,0xf7,0x2f,0x6c,0x36,0x65, + 0xef,0x89,0x6d,0xb2,0xf7,0xb9,0x48,0xff,0x28,0x65,0xd2,0x7b,0x0f,0x33,0x09,0xf6,0x68,0x07,0x2b,0x05, + 0x34,0x93,0xbe,0x35,0x55,0x16,0xfb,0xae,0xe3,0x1e,0x29,0x3f,0xad,0x5f,0xa0,0x3e,0xd4,0xae,0x89,0x4e, + 0xa2,0xc4,0x34,0xaa,0xc1,0x49,0xe9,0xea,0xfa,0x75,0x30,0xdd,0x48,0xf7,0xf2,0xb9,0x69,0xe4,0xdb,0x90, + 0x68,0x87,0x7c,0x01,0x71,0xe1,0xab,0xc8,0x61,0x63,0x85,0xb3,0xbc,0xd1,0x87,0x31,0x45,0x65,0x7e,0xa6, + 0x15,0x73,0x6a,0xe9,0xe5,0xbf,0x56,0x03,0x17,0x05,0x3f,0x88,0x91,0xf6,0xc0,0x10,0x0f,0x16,0xae,0x99, + 0xb2,0xbd,0x13,0x54,0x21,0xfe,0x72,0x0b,0x3f,0x79,0x54,0xc9,0xfb,0x07,0xca,0x67,0x8e,0xb1,0xaf,0x7d, + 0xec,0xff,0x19,0xfd,0x8f,0x2d,0xab,0xa4,0x64,0xfa,0x84,0xfd,0x75,0xde,0x66,0x3a,0xc1,0xcd,0x72,0x09, + 0x4b,0xf6,0x33,0x54,0x73,0x16,0xa9,0xc9,0x09,0x33,0x7c,0xe6,0x96,0x7f,0x08,0xe6,0xae,0x36,0x5d,0x11, + 0xbc,0xfd,0x60,0x7d,0x08,0xaf,0x08,0x34,0xc0,0x03,0xd4,0x01,0x75,0xba,0xc1,0x5a,0x22,0x90,0x11,0x3d, + 0xae,0x92,0xa9,0x13,0xcb,0x72,0xf8,0x0c,0x1f,0x35,0x7f,0x0c,0xf4,0x17,0x7e,0x38,0x59,0xcc,0x8b,0xc1, + 0xe5,0x99,0xf0,0x70,0xd1,0xdf,0x5f,0xab,0x12,0xb0,0x54,0x7d,0xd5,0x8a,0x85,0x75,0x92,0x57,0x14,0x62, + 0x91,0xfb,0x6f,0x81,0x29,0x48,0x8a,0x15,0xa4,0x38,0xe7,0x22,0x2d,0x04,0xa7,0x89,0x86,0x7b,0x6e,0x15, + 0x68,0x0f,0x9a,0xf4,0x7d,0xc7,0x05,0x2a,0xdf,0xf2,0xff,0x7e,0x16,0x3f,0x7b,0x6d,0x90,0x54,0xa3,0xdf, + 0xcb,0x11,0xab,0x6b,0x78,0xbf,0xc1,0x6e,0x44,0xd7,0x28,0x80,0x4f,0xb9,0x42,0xb7,0xf0,0xb1,0xa8,0x44, + 0x45,0x43,0x9d,0x49,0xeb,0xab,0x26,0x08,0xf9,0x7b,0xb7,0x9f,0xc5,0x38,0xa7,0x22,0x2a,0x28,0xda,0x5b, + 0x54,0xa6,0x86,0x4e,0x83,0x31,0x33,0xcf,0x1d,0x10,0xf0,0x8b,0xb6,0x1e,0x36,0xab,0x25,0x65,0xe7,0x41, + 0x30,0xc7,0x5f,0xac,0x8c,0x81,0x2f,0x64,0xfb,0x38,0xfb,0x0f,0xe3,0xbf,0x0d,0x77,0x40,0x4e,0xb1,0x6f, + 0x82,0x73,0x61,0x19,0x2f,0x63,0x46,0x62,0x90,0x18,0x3d,0x02,0xd4,0xd4,0x70,0x0b,0x61,0x4c,0xd4,0x42, + 0x52,0x53,0xd2,0x33,0x16,0xa9,0x46,0x2d,0xaa,0x8f,0x95,0x0b,0x2d,0x91,0xff,0xf6,0x2c,0xa3,0x9f,0x04, + 0x4c,0x21,0xda,0xb8,0x9f,0x94,0x47,0xb7,0x10,0xde,0x2c,0x0c,0xf4,0x1a,0x39,0x97,0x57,0xa4,0x40,0xda, + 0x14,0xd4,0xa6,0xc7,0x6a,0x2f,0xd0,0xc6,0xc9,0x11,0x72,0xdf,0x33,0x68,0x62,0x82,0x1b,0xc5,0xb5,0x56, + 0xa9,0x83,0x79,0x3c,0x0d,0xb9,0x34,0xac,0x4b,0xbf,0xd1,0xdd,0x2d,0xb2,0x04,0x18,0x35,0xbd,0x73,0x37, + 0xa5,0xea,0xe2,0x28,0x31,0xa9,0x65,0x1e,0xa7,0xaa,0x52,0x7d,0x43,0xad,0xcb,0xda,0x7c,0xc4,0x4c,0x6c, + 0xeb,0x45,0x55,0xfa,0x5a,0x50,0x94,0xcf,0xf0,0xe2,0x99,0x76,0xf9,0xfe,0xe5,0x55,0xf5,0xac,0xca,0xe5, + 0x95,0x65,0x18,0x42,0x5c,0x46,0x9f,0x32,0x93,0x3b,0xf2,0x6d,0xd7,0x0e,0x53,0x6f,0x35,0x3d,0xd9,0x17, + 0x2b,0xba,0x19,0x27,0x11,0x4c,0x73,0xc4,0xbc,0x41,0xe7,0x73,0x59,0x45,0x2a,0xe3,0x31,0x5c,0xc8,0x6e, + 0x74,0x63,0xef,0x78,0x3c,0x14,0xf9,0xd7,0x25,0xdc,0xfa,0x0f,0xe1,0xb5,0xcb,0x6b,0xb7,0xd8,0xf7,0x07, + 0xe0,0xcf,0x73,0x54,0x2b,0xd7,0x65,0x53,0xb2,0xff,0x08,0x82,0x37,0xc7,0xfd,0x13,0xe7,0xd9,0x4f,0x69, + 0xe6,0x78,0x6e,0x01,0x11,0x48,0xfa,0x34,0x80,0x68,0x72,0x45,0xf0,0x11,0x72,0xf7,0x5c,0x27,0xf5,0x8d, + 0x26,0x8a,0x28,0x47,0xbc,0xc1,0xa1,0xc2,0x82,0x54,0x42,0x8d,0xba,0xb2,0xfc,0xb9,0x45,0x7a,0x13,0x20, + 0xd7,0x58,0x51,0xe0,0x09,0x6f,0x3e,0xe7,0xa9,0xb4,0x06,0x73,0xc8,0x03,0x2d,0xa0,0x78,0x69,0x56,0xab, + 0x95,0xe5,0xf1,0x43,0x69,0xa9,0xb7,0x76,0x30,0x5b,0x89,0xd6,0x38,0xdd,0x20,0xf9,0x41,0xbd,0x5c,0x21, + 0x7d,0xb5,0xa4,0xa9,0xb0,0xa6,0xad,0xea,0x8e,0x45,0x1e,0x6b,0xa6,0xfa,0xd0,0x80,0xcb,0xba,0xdd,0x9c, + 0xb0,0xcd,0x34,0x60,0x8b,0xac,0x1b,0x6c,0x8f,0x06,0xb0,0x25,0x00,0x8d,0x73,0x20,0x4b,0x1f,0xad,0x63, + 0x12,0xa2,0x05,0xfa,0x44,0xe9,0x5c,0x99,0xa9,0xf7,0x3a,0x18,0xfb,0x34,0xbd,0x26,0x31,0x77,0xd7,0xb6, + 0x78,0x84,0xb9,0x90,0x87,0x28,0xf0,0x24,0x4b,0x17,0xbe,0xb0,0xcb,0x93,0x69,0x5e,0xfd,0x42,0xd2,0xa2, + 0x5e,0x31,0xfe,0xa2,0xcc,0x3c,0x83,0x66,0x06,0x36,0x48,0xaf,0x9a,0x98,0x87,0xda,0x1c,0x85,0x87,0x29, + 0xe0,0xfb,0x36,0x0e,0x4a,0x1c,0xac,0x91,0x15,0x53,0x31,0x09,0x54,0x83,0x61,0x4e,0x13,0x8f,0x86,0x6f, + 0x80,0xfd,0xb1,0x79,0xc4,0x97,0xaf,0xa3,0xcf,0x0f,0x03,0x6b,0xa9,0xbd,0x50,0xb8,0x08,0x07,0x92,0x69, + 0xa9,0x5c,0x46,0x25,0x4d,0xe7,0xf3,0x86,0xdc,0xc7,0x2b,0xb5,0x2f,0xd9,0xb7,0x73,0x66,0x01,0x9c,0x81, + 0x0f,0x45,0x54,0xf8,0x96,0xe5,0x0c,0xb6,0x32,0x7f,0xea,0x1a,0x2f,0xde,0xb8,0x8c,0x21,0x2d,0x66,0xb5, + 0xfe,0xbd,0x38,0x7a,0x0c,0x31,0xee,0xa6,0xc9,0x55,0x8c,0x2f,0x40,0x46,0x55,0xfd,0x28,0xdf,0x45,0x2f, + 0xdc,0xcf,0xe5,0xef,0x54,0x97,0xa6,0x2d,0x39,0xc6,0x6c,0xe8,0xf0,0xb7,0xf8,0x69,0x90,0x40,0x04,0x5c, + 0xd8,0x54,0x71,0x66,0xce,0x20,0x20,0x49,0x26,0x3b,0xe4,0x39,0xfb,0x29,0xba,0x4f,0x98,0x84,0x4f,0x68, + 0x41,0x35,0x13,0xd3,0x62,0x0e,0x55,0xaf,0xf2,0x88,0x14,0xbb,0x74,0x2c,0xb1,0xf5,0x37,0x00,0x52,0xda, + 0x8a,0x54,0xab,0x17,0x93,0x85,0xaa,0xb0,0x47,0xc7,0x52,0x12,0xf7,0x21,0xd0,0x2a,0x9c,0xf0,0x4a,0x7c, + 0x4e,0x19,0x48,0x0a,0xbd,0xea,0x53,0xb9,0x49,0x91,0x50,0x9d,0x64,0xeb,0x50,0x34,0x9a,0xe6,0x0f,0x32, + 0x85,0x64,0x21,0xa2,0xb7,0x94,0x1e,0x72,0x09,0xa5,0x33,0x4c,0xb7,0x47,0xac,0xbf,0x03,0x46,0xf6,0x66, + 0x7d,0xa6,0xf8,0x19,0xc5,0x34,0x40,0x0f,0xa0,0x23,0xcf,0x8c,0x1c,0x0d,0x32,0x4a,0xf2,0xc4,0x2e,0x49, + 0xb0,0xa6,0x77,0x48,0x7d,0x4e,0x0a,0xea,0x97,0xf4,0x98,0x12,0x8d,0x8d,0x99,0x62,0x9c,0x7c,0x81,0x37, + 0xc8,0xf5,0x80,0x8b,0x0a,0xd1,0x3c,0x02,0xc5,0x0a,0x72,0xf1,0xf9,0x36,0x6b,0x48,0xee,0xce,0x45,0xa1, + 0xff,0x3c,0x49,0x91,0xca,0x61,0x59,0x9d,0x18,0xc1,0xad,0x00,0x77,0xa8,0xf0,0xbd,0x82,0x33,0x62,0x8b, + 0x54,0x81,0xe4,0xaa,0x6a,0x77,0x87,0x9c,0x54,0x1f,0x65,0x48,0xcb,0xd3,0x71,0x8d,0xef,0x19,0x46,0xa2, + 0x72,0xbc,0x13,0xd9,0xec,0x15,0xda,0xaf,0x9f,0x08,0x09,0x45,0x09,0x16,0x77,0x32,0x3a,0x5c,0x54,0x4c, + 0x83,0x90,0x86,0xc7,0x95,0x93,0x12,0xf3,0x08,0x2e,0x11,0x7e,0x7c,0x78,0x61,0x68,0x5c,0x85,0x96,0xf2, + 0x17,0x7e,0xa9,0x73,0xb3,0x0d,0x64,0xa5,0xc8,0xba,0x02,0x44,0x3d,0x85,0xc1,0x37,0xd8,0xc3,0x24,0x7c, + 0x85,0x5b,0x43,0x48,0xc3,0x9a,0x12,0x50,0xf8,0x12,0xa4,0xe6,0x28,0x69,0x30,0xa8,0x78,0x1f,0xfb,0xaf, + 0x01,0x60,0x92,0x55,0x08,0x61,0x1e,0xf5,0xa9,0xbb,0x65,0x9e,0x15,0x84,0x77,0xf2,0x56,0x13,0xd7,0xf9, + 0xdc,0x18,0xc1,0x54,0x92,0x38,0xe4,0x97,0x4a,0xc0,0x3f,0x01,0x45,0x1a,0xbb,0x69,0x72,0xc3,0xf3,0x49, + 0xb1,0xe0,0x24,0x04,0xf1,0xa2,0x5f,0x38,0xae,0x1d,0x2d,0x7e,0xc8,0xe8,0xa0,0xd7,0xb7,0x9f,0x74,0x8e, + 0x3f,0x2a,0x4c,0xac,0x4a,0x1c,0x46,0x38,0x6a,0x1f,0x45,0x54,0xce,0xd1,0x0d,0xd1,0x8f,0x2e,0x4a,0x79, + 0x88,0x2a,0x33,0xcc,0xb0,0xb3,0xa3,0x63,0xe1,0xf1,0x12,0xff,0x50,0x75,0x09,0x48,0x6e,0xc3,0xd3,0x93, + 0x42,0x19,0x88,0x4a,0xff,0xef,0xea,0x48,0xdf,0x7e,0x74,0xdf,0xf1,0xd8,0xc5,0x29,0x74,0x72,0xe8,0x9f, + 0xd0,0xbf,0x2a,0xc7,0x70,0x13,0x1e,0x63,0x62,0x38,0x86,0xad,0x0a,0x56,0xf6,0xe7,0xdc,0x9c,0x17,0x8e, + 0x31,0x0f,0x7d,0x01,0x50,0x33,0x79,0xdb,0xc7,0x84,0x37,0x30,0xe1,0x8a,0xe1,0x80,0x01,0x19,0x4c,0x10, + 0x5f,0x8c,0x56,0x70,0x37,0xed,0xc0,0xc9,0x70,0x83,0x6a,0xe8,0x46,0xbf,0xa7,0x58,0x26,0xad,0xde,0x23, + 0x08,0x69,0x07,0x21,0x0c,0xb2,0xbd,0xcd,0x41,0x14,0x5f,0x98,0x2e,0xed,0xa2,0x8e,0xce,0x0b,0x4d,0xb0, + 0xbf,0xe5,0x0c,0x58,0x26,0xfc,0x1c,0x5f,0xe1,0x15,0x45,0x83,0x85,0x99,0x10,0xe1,0x52,0x65,0x2c,0xa1, + 0xc2,0xc3,0xa7,0x58,0x9f,0xe8,0xc7,0x92,0x29,0x66,0x12,0xd6,0x13,0xb0,0xef,0xe3,0xcf,0x69,0x8f,0x89, + 0xf3,0xbe,0xc4,0x8f,0xa9,0x08,0x12,0xcd,0x1b,0x5c,0x1e,0x6b,0x20,0xeb,0xa8,0xcf,0xb0,0xa1,0x67,0x02, + 0xa9,0x83,0xe7,0xa4,0xb7,0x0c,0x0a,0xa7,0x46,0x1e,0x10,0x8b,0x8a,0xc9,0x57,0x5f,0x11,0xee,0x74,0x88, + 0xf9,0x49,0x51,0xd1,0xc9,0x0a,0xe9,0xf8,0x50,0x12,0xde,0x57,0xc6,0x3f,0x40,0x62,0x6a,0x64,0x4f,0xd8, + 0xd9,0x5e,0x3e,0x1d,0x2f,0x22,0xd6,0x6a,0x4d,0x82,0x41,0xdb,0x1a,0x08,0xc0,0x86,0xfb,0x40,0xed,0x16, + 0x29,0x2b,0x87,0x4d,0x1e,0x5c,0xda,0x40,0x61,0xeb,0x79,0x4a,0xf5,0xef,0xf8,0x05,0x30,0xcc,0x6d,0x2e, + 0x4c,0xa1,0xbe,0x7c,0x65,0x0d,0x44,0xc3,0xa2,0x1b,0x66,0x46,0x99,0x45,0xe8,0x65,0xbe,0x3e,0xa9,0x82, + 0x11,0x92,0xe3,0xdf,0x35,0x28,0xa9,0xbc,0xfe,0xcb,0xbe,0xa0,0x98,0x0a,0x10,0x61,0x46,0x20,0x60,0xe8, + 0xf0,0xa0,0x61,0xc1,0xa0,0x4c,0x75,0x09,0xd4,0x12,0xd4,0xcc,0x0b,0x0c,0x92,0x1c,0xe6,0x34,0xbe,0xd5, + 0xd1,0x49,0x24,0x72,0xd1,0x6c,0xcf,0x4c,0x24,0x15,0x11,0x53,0x7b,0xc5,0x2c,0xeb,0xa2,0x48,0x66,0x1b, + 0x90,0x02,0x03,0xa6,0x26,0xe0,0x2d,0xd4,0xe7,0x27,0xcf,0xed,0xa2,0x29,0x96,0x04,0xe5,0xd8,0x39,0xce, + 0xba,0x60,0x4e,0xa9,0x4c,0xdc,0xde,0xf1,0x66,0xd9,0xa0,0x6b,0xf4,0x53,0x29,0x49,0x1e,0xa2,0x36,0x8d, + 0xac,0x18,0xd3,0xaf,0x84,0xa9,0x4f,0x86,0xe5,0xac,0x85,0x92,0xcc,0xd0,0x64,0xa1,0x9b,0xb8,0x82,0xe8, + 0x1e,0x8d,0x86,0xd2,0xb5,0xb4,0xde,0x57,0x08,0x98,0x2b,0xc7,0x22,0xcd,0xa3,0x8e,0x7f,0x36,0xfa,0x1e, + 0x91,0x30,0x35,0x72,0xd7,0xa9,0x5a,0x12,0x0c,0x88,0xfc,0x5f,0x85,0x28,0xbb,0x2d,0xff,0x89,0x23,0xa3, + 0x17,0xd6,0x6c,0x25,0xef,0xb3,0x24,0xef,0x59,0x3f,0x2e,0x21,0x3d,0xb9,0x2f,0xf4,0x7f,0xc5,0x7a,0x54, + 0xac,0x84,0x89,0x83,0xe1,0x40,0x36,0x07,0xa9,0xaf,0x2b,0xd8,0xf0,0x16,0x6e,0xac,0x51,0x0d,0x11,0x61, + 0x1f,0x5f,0xc1,0xb8,0x5f,0x29,0x3c,0x2b,0x11,0xc2,0xee,0x1b,0x5a,0x85,0x97,0x1a,0x96,0xaa,0x99,0x5c, + 0x9f,0x18,0xe7,0x9a,0x28,0xe2,0x79,0xe4,0x70,0x15,0x0e,0xfb,0xec,0x47,0x18,0x60,0xb6,0x1c,0x39,0x19, + 0xbe,0x4b,0xbe,0xb0,0x2e,0x5c,0x8a,0xa1,0x00,0xfe,0x1e,0xd2,0xbf,0xcc,0x56,0xea,0x4c,0xd3,0xac,0xc6, + 0x2f,0x36,0xcb,0xb8,0xeb,0xb7,0x8c,0x9c,0xd1,0xdf,0x6b,0x48,0x45,0xec,0x59,0x2f,0x98,0x41,0xe2,0x67, + 0x91,0x15,0x30,0xa7,0xb8,0x0e,0xc8,0xd5,0x99,0xf9,0x5e,0x45,0x63,0xaf,0xf0,0x36,0xdb,0x71,0xd7,0x02, + 0x85,0x27,0x39,0x13,0x7c,0x61,0xb9,0xd6,0x30,0xf7,0x1a,0xb6,0x07,0x28,0x02,0xd4,0x4c,0x43,0x8b,0x15, + 0x37,0x57,0x3e,0xa5,0xae,0x06,0x47,0xeb,0x17,0x0e,0x49,0xbd,0xb0,0xe8,0x57,0x2c,0x91,0x1c,0x3f,0x9f, + 0xa8,0x23,0x3d,0xfe,0xe3,0xf7,0x50,0x8c,0x37,0xc7,0xcb,0x2f,0xf1,0xb9,0x7f,0xe1,0x41,0x8c,0x47,0x07, + 0xa4,0x5f,0xe6,0x04,0xc6,0xd9,0x25,0x6d,0x39,0xb1,0x85,0xc6,0x9f,0x6f,0x3e,0xdc,0x01,0xca,0xce,0x15, + 0x63,0x96,0x27,0x7a,0x73,0x2a,0x09,0x71,0xd4,0x23,0xe8,0xcf,0xad,0x4d,0x9f,0xb2,0x60,0x99,0xe0,0x5a, + 0xe5,0x33,0x95,0x05,0x26,0xa1,0x54,0x3d,0x95,0x01,0x80,0x91,0x61,0x12,0xad,0x98,0x2a,0x7e,0x3e,0x3d, + 0x08,0xf8,0x55,0xe5,0xaf,0xf2,0x02,0x79,0x83,0x82,0xd4,0x06,0x59,0xff,0x80,0x57,0x4a,0xf8,0x67,0x06, + 0xfd,0xad,0x18,0x96,0x30,0x6f,0xb3,0xbc,0xe3,0x0a,0x85,0x0c,0x56,0x21,0xd1,0xe9,0x7c,0x0e,0xcb,0xfa, + 0xd1,0xb4,0xc2,0x9c,0x42,0x5f,0xde,0xf2,0x95,0x31,0xf0,0x40,0x35,0xfa,0x31,0xd3,0xe1,0x87,0x70,0x89, + 0xd1,0xf2,0x08,0x05,0x90,0xf3,0x0a,0x5f,0xb2,0xef,0xf4,0xf7,0xba,0x46,0x2e,0x4f,0x93,0xac,0x25,0x13, + 0x66,0x27,0xaf,0x4b,0x05,0xfb,0x3e,0xfb,0xa1,0x21,0x25,0x91,0x26,0xd4,0xe0,0x58,0xc3,0x23,0xfd,0xc1, + 0x88,0x2b,0xa0,0xe8,0x5e,0x9f,0x6a,0xda,0x8f,0xde,0x5a,0xfd,0x8b,0x68,0xad,0xe5,0x11,0x9c,0x76,0xa1, + 0x6e,0xb7,0x24,0xf1,0x4a,0xa9,0x26,0x83,0x16,0x35,0xd3,0xa3,0xe1,0x17,0xb3,0x9b,0x0d,0x5b,0xe1,0x70, + 0x43,0xfa,0x05,0xea,0x74,0xc7,0x6c,0xa9,0x73,0x5d,0x8b,0x48,0x34,0xa9,0x90,0xbe,0x7f,0xf3,0xf0,0x10, + 0x13,0x65,0x4c,0xd8,0x44,0xe4,0xb3,0x6e,0x92,0xfd,0xa8,0x08,0x40,0x06,0x79,0xb8,0xb3,0xc8,0x51,0xe3, + 0x17,0x68,0x69,0xfe,0x63,0x24,0x8d,0x18,0xa9,0x4d,0x55,0xfa,0x0e,0xd8,0x34,0x8f,0x3f,0xc5,0xf8,0x86, + 0xe0,0xf7,0x96,0x79,0x2b,0xb8,0x5a,0x61,0x91,0x83,0x1c,0x28,0xf7,0xc8,0xe7,0x72,0xe7,0x45,0x46,0xd1, + 0x76,0xa9,0xa4,0x39,0xdb,0x94,0x1b,0xbc,0x72,0x21,0x85,0x39,0x5e,0xc9,0xc7,0x0c,0x01,0x94,0x14,0x72, + 0x4d,0x03,0x15,0x90,0x3d,0x59,0x02,0x28,0x0e,0xa0,0xd3,0x5d,0x9a,0x5c,0x09,0x92,0xe2,0x34,0x77,0x2f, + 0xa6,0xc6,0x5c,0xd3,0xd2,0x66,0xf9,0xe9,0x0a,0xa8,0x22,0xae,0x83,0x00,0x18,0x5d,0x16,0xf1,0xba,0x16, + 0x21,0x52,0x70,0xc8,0xfa,0x09,0x29,0xca,0x4d,0x55,0x54,0xa6,0xd8,0x52,0x4d,0xbb,0x26,0x67,0xd4,0x85, + 0xb8,0xba,0xc8,0xe6,0xd0,0x03,0x3c,0x4c,0x65,0xd4,0x68,0x3b,0x4d,0xc2,0xaf,0x16,0x50,0x50,0x7e,0x7a, + 0x38,0x8f,0x81,0x08,0x5a,0x16,0xe0,0x0d,0x21,0x75,0x8d,0x1e,0x17,0xb2,0x57,0x94,0xfd,0xe6,0x39,0x14, + 0x13,0xd2,0x19,0x86,0xac,0xa3,0x66,0xdd,0x9c,0xe3,0x71,0xb6,0x27,0x87,0x42,0x6b,0x97,0xeb,0x36,0xdf, + 0x2c,0xa3,0x44,0x78,0xe5,0xd2,0xaa,0xe7,0x1a,0x85,0x12,0x1f,0xe2,0x6d,0xc8,0x5b,0x61,0x8c,0x06,0x56, + 0xd3,0xc2,0xba,0x65,0x4e,0x23,0x8d,0x2e,0xcd,0x3b,0x5c,0x01,0x35,0x8f,0x00,0xd9,0x30,0x95,0x0b,0x8f, + 0xda,0x91,0x8f,0x8b,0x39,0xae,0x4e,0x62,0x0c,0xb0,0x9d,0x3f,0x08,0xb8,0x35,0xb0,0x68,0x5a,0x7f,0x01, + 0x50,0xc7,0x98,0x58,0x1e,0x65,0x97,0x87,0x70,0x7d,0x2f,0xd2,0xef,0x33,0x38,0x20,0x08,0x5f,0x1e,0xe1, + 0xe8,0x78,0xa0,0x3c,0x8d,0x1e,0xc3,0xfa,0x6c,0x8c,0xda,0xe4,0xd6,0xb2,0x42,0xc5,0xd1,0x21,0x02,0x69, + 0xc2,0xac,0xd8,0x55,0xa0,0x95,0x61,0x20,0x13,0x8b,0x7a,0x56,0x4e,0xfb,0x9f,0x97,0x41,0x04,0x50,0x9e, + 0x86,0x95,0x69,0x03,0xd6,0x25,0x03,0x62,0x58,0x9f,0x3a,0x1b,0xf0,0x39,0xa5,0xd2,0x93,0xb7,0x34,0x0f, + 0xee,0xc3,0xa0,0x74,0x7b,0x04,0x86,0x81,0x33,0x68,0xee,0x43,0x23,0x10,0x20,0xa2,0x8d,0x48,0xbd,0x21, + 0xbb,0x1d,0xa1,0x5f,0x38,0xc6,0xe7,0xa7,0x11,0x74,0x22,0xfd,0x1a,0x0d,0xd2,0x02,0xdb,0x48,0x53,0x7d, + 0x8a,0x2a,0xe5,0xc2,0xdd,0xa5,0x02,0x6f,0xef,0x2a,0x60,0x05,0x70,0xe0,0x19,0xb8,0x1a,0x5d,0x29,0xdd, + 0x9e,0x00,0xc0,0x29,0xde,0xd6,0x25,0xb2,0x06,0x6e,0x7e,0xa7,0x91,0x55,0xcd,0x57,0x2e,0xa9,0xf9,0x90, + 0x12,0x41,0x8c,0x86,0xd1,0x4c,0xdb,0x43,0x36,0xb0,0x49,0x3c,0xe2,0x7d,0xde,0xd0,0x7a,0xf7,0x85,0x0b, + 0x27,0xd3,0xc6,0xc9,0x30,0x1a,0x6f,0x7e,0x61,0x27,0x49,0x8f,0xde,0xe2,0x6d,0xe8,0x48,0x2a,0x38,0x9f, + 0x75,0x51,0x29,0x00,0xf7,0xca,0x08,0x89,0x61,0xe5,0x99,0x87,0x0c,0x4a,0xc5,0xd0,0xa2,0x09,0xe1,0x01, + 0xee,0xf5,0x58,0x3c,0x87,0x28,0xdf,0xef,0x48,0xc3,0xb6,0x8d,0x5d,0xec,0x9b,0xa4,0x69,0x84,0x59,0x03, + 0x49,0x55,0xea,0xcf,0xc0,0x64,0x82,0x98,0x07,0x77,0xf8,0x77,0x98,0x2f,0xd7,0xa5,0x6b,0x08,0x6b,0x17, + 0xc8,0x00,0x4f,0x32,0xa9,0x45,0x4b,0x23,0xb0,0x7b,0xd6,0xec,0x3e,0x51,0xe0,0xd4,0x05,0x77,0x96,0xa1, + 0x52,0xe5,0x72,0xed,0xaf,0xa8,0xa6,0x6f,0x3b,0x48,0xc2,0x6a,0x03,0x95,0x99,0x43,0x9d,0x9b,0x06,0x81, + 0x07,0x50,0x88,0xfd,0x27,0x0d,0x12,0xf4,0xa4,0xd2,0xf4,0x81,0xab,0xcc,0x9f,0x94,0xd4,0xbc,0x9e,0x87, + 0x9f,0x77,0x1a,0xca,0x5c,0x3b,0xc5,0xd1,0xf2,0x48,0x65,0xe6,0xe4,0x75,0x49,0x58,0xcf,0x70,0x9c,0x70, + 0x31,0xf7,0x49,0x74,0x36,0xbc,0xdf,0xf0,0xb9,0x8b,0xb8,0x7e,0x53,0xbc,0x73,0x1f,0x41,0x01,0x40,0xe4, + 0x45,0xbe,0x8b,0xe0,0xb9,0x48,0xcb,0xce,0xff,0xf5,0x34,0xae,0x8b,0x64,0xd2,0x40,0xa5,0x17,0x11,0xb5, + 0xe7,0x0b,0xfb,0x8a,0x63,0xb3,0xa5,0x8b,0xf1,0x97,0x69,0x72,0xce,0x95,0x89,0x64,0x85,0x49,0x72,0x4b, + 0x49,0x76,0x41,0x13,0x91,0x50,0xa0,0x20,0xdc,0x3a,0x8d,0xca,0xa4,0xb9,0xca,0x54,0xee,0x4e,0xf9,0x2f, + 0xa4,0x9a,0xe8,0x60,0x92,0x89,0x98,0x4e,0x18,0x7f,0x16,0xd6,0x7f,0xb5,0x6f,0x48,0xc1,0x79,0x82,0x9d, + 0x2d,0xc2,0x18,0x50,0xc6,0x81,0x91,0x18,0x61,0x6a,0x28,0x36,0xa3,0xe0,0x1f,0x5a,0xbc,0x66,0x0b,0xa5, + 0xa2,0x4b,0x7a,0xb8,0xa1,0x2a,0xcf,0xff,0x82,0x7d,0x0f,0x79,0xeb,0x93,0xca,0xd8,0xd3,0x15,0x02,0xec, + 0x08,0xaa,0xce,0x95,0xbd,0xb9,0xfe,0x86,0x97,0x56,0x83,0x06,0x1b,0x8e,0xbb,0x01,0xe9,0xfe,0xc4,0x2b, + 0x63,0x53,0x0a,0xef,0x24,0xa2,0x6e,0x94,0xd9,0xf7,0x0c,0x2b,0x67,0x09,0x62,0x8c,0xb2,0x0f,0x17,0x6b, + 0x52,0xf3,0x9c,0xcb,0x6f,0x60,0x0e,0x41,0x1d,0x6c,0x8c,0xe2,0xc4,0x3f,0x1d,0x23,0xe6,0xc1,0xee,0xa3, + 0x1e,0x1f,0xe4,0x61,0x95,0x79,0x03,0xae,0xcd,0x93,0xe7,0x63,0xb3,0xb0,0x8b,0x16,0xc1,0x8a,0x51,0xcc, + 0xaf,0xc7,0xb6,0x48,0x8c,0x7c,0xb0,0x78,0x72,0xda,0x7f,0xbf,0x4c,0xa3,0x24,0x5a,0x6d,0x25,0x01,0x3a, + 0xd4,0x91,0xde,0x2f,0xac,0x02,0x58,0x22,0xff,0x2d,0x15,0x2f,0xb4,0x76,0x99,0x0d,0xf6,0xa2,0x86,0x95, + 0x9a,0x97,0x98,0x69,0x82,0xb0,0x34,0x54,0xda,0x8a,0x2f,0x7f,0x22,0x5f,0x59,0x46,0xa0,0xba,0x93,0x3e, + 0x47,0x3f,0x01,0xf4,0x97,0x93,0x8f,0xab,0x86,0x2b,0x15,0xcd,0x06,0xc0,0x0d,0xe4,0x70,0x59,0x90,0xb5, + 0xa7,0xe4,0xe4,0xf3,0x23,0xe0,0x73,0x52,0x2c,0x2b,0xf5,0x86,0x72,0xf4,0x04,0xde,0x55,0xc7,0x0f,0x8d, + 0x00,0x21,0x44,0xff,0x72,0xf4,0xbf,0xcf,0x83,0xf6,0x24,0x93,0x43,0x43,0xb6,0x9c,0xe0,0x8a,0x93,0x3d, + 0x3a,0xa1,0xda,0xc7,0x15,0xf5,0x46,0x9e,0x23,0xc8,0x4b,0xea,0x33,0xe2,0x30,0x72,0x6a,0x35,0x53,0xbf, + 0x7b,0x8b,0xbf,0x7f,0x04,0x79,0x03,0x6d,0x41,0xd1,0xec,0x46,0x56,0x96,0xd6,0x07,0xac,0x5a,0x53,0x3b, + 0x90,0x25,0xdc,0x4a,0xf6,0xe2,0x5a,0xf5,0x9b,0x9d,0xac,0x3d,0xa1,0xb1,0x4c,0x02,0xb8,0x26,0xa6,0xc6, + 0x3f,0x68,0xef,0xa4,0xeb,0xd4,0x8f,0x45,0xe3,0x1f,0x4c,0x27,0x85,0x83,0x22,0xd2,0x8b,0x92,0x90,0x15, + 0x02,0x57,0xb5,0xda,0x2e,0x68,0x0e,0xbb,0xa1,0x09,0xea,0x31,0x54,0x23,0x93,0x7d,0x4d,0xe1,0xf7,0xc0, + 0xb0,0x62,0x63,0xad,0x20,0x2f,0x87,0x23,0xe9,0xf6,0xe5,0xe7,0x52,0x92,0xe9,0xbf,0x50,0xd1,0x93,0xf8, + 0x95,0x90,0xea,0x71,0x79,0xa8,0xb8,0x7c,0x01,0xd8,0xab,0x7a,0x86,0x7c,0x7d,0x88,0x8e,0x95,0x04,0xac, + 0xf7,0xd9,0x0d,0xbb,0x47,0x58,0x8b,0x5f,0xd8,0x11,0xaa,0x0d,0x09,0x25,0xe9,0xd0,0x9b,0x93,0xfa,0xf4, + 0x45,0x74,0xda,0xc9,0xe9,0x25,0x85,0x84,0x7c,0x6e,0x3a,0x70,0xd5,0x2f,0x4d,0x26,0x6a,0xfe,0xcf,0xcb, + 0xe3,0x87,0x94,0x16,0xf1,0x09,0xee,0x68,0xde,0x20,0xea,0xab,0xb8,0x9b,0xf4,0xce,0x65,0xda,0x50,0x2f, + 0x75,0x52,0x6c,0x08,0x6e,0xca,0xf2,0xa7,0x92,0x74,0xf3,0x11,0x66,0xba,0xc6,0xe0,0x95,0x84,0xd8,0x45, + 0x4b,0x94,0x73,0xcd,0x27,0x69,0x76,0x3c,0xab,0xbb,0xec,0x95,0xcf,0x58,0x5f,0x0e,0xb3,0x52,0x63,0x65, + 0xac,0xc8,0x20,0xf5,0xeb,0x63,0x25,0xa2,0x15,0x62,0x98,0x6e,0x46,0xd1,0xb1,0x8c,0xc1,0xa2,0xff,0xc7, + 0x4f,0xe4,0x34,0xb1,0x58,0x54,0x81,0x33,0xb8,0x16,0xdc,0xe4,0xac,0xfd,0x0d,0x5d,0x91,0x28,0x19,0xe9, + 0xad,0xa6,0x2e,0x20,0x0d,0x10,0xf0,0xb5,0x71,0xfd,0x4d,0x49,0x2c,0xc5,0x4d,0x21,0xd3,0xbd,0x06,0x16, + 0x79,0x9e,0x25,0x50,0xa1,0xe8,0x13,0x18,0x26,0xc8,0xaf,0xcd,0x06,0xc8,0x2d,0x48,0x9a,0x7e,0x1b,0x0c, + 0x27,0xef,0x79,0x11,0x30,0xe6,0xf6,0x11,0xfd,0x02,0xbb,0x26,0x44,0x22,0x8a,0xe1,0x21,0x3c,0x81,0xae, + 0x44,0x22,0x76,0x04,0x9e,0x3b,0x57,0xcd,0x9c,0x8d,0x6b,0x1f,0x65,0x20,0x4a,0x76,0xd8,0x3a,0x5c,0x6d, + 0x5a,0x0d,0x2e,0xaf,0x02,0x17,0x44,0x8b,0x66,0xaa,0x0f,0xc0,0xbe,0xd1,0x21,0x82,0x2c,0x1e,0xc6,0x4d, + 0x56,0x18,0x82,0xe6,0x9a,0x2f,0x4d,0x6d,0xa9,0xc1,0x83,0xf4,0x3a,0x40,0x55,0x85,0x3c,0xeb,0x44,0xf6, + 0x41,0x7d,0x70,0x2f,0xa8,0x7c,0xbf,0x40,0x80,0x49,0xcc,0xbe,0x8d,0xf8,0x97,0x7f,0x00,0xf8,0x0d,0xba, + 0xde,0xeb,0xff,0x41,0x0f,0xb5,0x55,0xd6,0x3d,0x60,0x69,0xf2,0xc0,0x8f,0xc4,0x5f,0x7c,0x83,0xa4,0x60, + 0x65,0xf1,0xb0,0xa9,0xb8,0xbe,0xe6,0x58,0x9d,0xec,0x61,0xa7,0x92,0x5f,0xf4,0x1b,0x6e,0x9e,0xe6,0x00, + 0xe8,0xd2,0xef,0x11,0xba,0x16,0x04,0x02,0x6b,0xb3,0x89,0xc2,0x3d,0xcc,0xa7,0xb5,0xf9,0xa1,0xe7,0xbe, + 0xd1,0xb6,0xfb,0x7e,0xb1,0xa8,0xd5,0x2d,0x88,0x68,0xce,0xd5,0x22,0x2f,0x46,0x93,0xba,0xa0,0x0e,0xea, + 0x55,0x8c,0x9b,0x50,0x37,0x4a,0xb8,0xf9,0xe9,0xc6,0x6c,0xba,0x88,0x87,0x44,0xef,0xb3,0x22,0xb7,0x57, + 0xcc,0xa6,0xab,0xc2,0x4b,0x1a,0x89,0xc2,0xfa,0xa5,0xd8,0xb0,0xb6,0x50,0x2f,0x0f,0xe8,0x83,0x28,0x2e, + 0x17,0xe3,0xe3,0x93,0x5a,0x7b,0xf2,0xf0,0x8b,0x72,0x09,0x15,0x4a,0xd5,0x80,0x32,0xa7,0x49,0xa6,0x04, + 0x8e,0x4d,0x93,0x95,0xb9,0x03,0x16,0x2a,0x9f,0x24,0x97,0x92,0x8e,0xbf,0xd2,0xc1,0xa1,0x31,0xdd,0x8d, + 0x85,0xcb,0x7c,0x1d,0xe3,0xe1,0x12,0xcd,0x2a,0x1a,0xd7,0xa8,0xae,0xff,0xe1,0x6d,0x7f,0xf1,0x0b,0x4f, + 0x99,0x13,0x20,0x4a,0xac,0x5f,0x8d,0x04,0x45,0xd5,0x7f,0x79,0xa6,0xf9,0x0c,0x18,0x4c,0x46,0x68,0x22, + 0xbe,0x1c,0x3a,0xfa,0xb0,0xac,0x4e,0xf0,0xc3,0x72,0x1e,0xff,0xce,0x55,0x4b,0x15,0x48,0x51,0xc2,0xab, + 0x0d,0x39,0xb1,0x21,0xf5,0xd3,0x03,0xc3,0x27,0x1b,0xb2,0xa1,0xb3,0x7b,0xcb,0x3f,0xc4,0x8b,0x95,0x74, + 0xdb,0xe5,0xf9,0x4f,0xb6,0xd5,0x4d,0x0b,0xbd,0x12,0xd5,0x2b,0xa3,0x25,0x02,0x03,0x19,0xaa,0x8a,0x42, + 0xc0,0xeb,0xc4,0x70,0x5e,0x2c,0x65,0x48,0xeb,0xd5,0x8f,0xcd,0x47,0x2f,0xc2,0xda,0x5c,0xa4,0x90,0xc7, + 0x3f,0xa4,0x8e,0x45,0x1a,0x7f,0x2a,0xb2,0x1e,0x50,0x2c,0xd9,0xf4,0xb8,0x36,0xc1,0x17,0x37,0x2b,0x2f, + 0x4a,0xec,0x7c,0xe3,0x40,0xb1,0xfe,0xc5,0xc8,0x8b,0x25,0xaa,0x43,0xb4,0xef,0xe7,0x6a,0xbe,0xd5,0xbf, + 0x98,0x9f,0x52,0xad,0xc9,0xe7,0xfc,0xfd,0xf0,0xf9,0xb5,0x89,0x86,0x26,0xe3,0x44,0x07,0xf9,0x67,0xf5, + 0x4f,0x6f,0x86,0xf8,0xe7,0x55,0x25,0xcc,0x27,0x5b,0x5f,0x6a,0x40,0x5c,0xf6,0xc6,0x13,0xfb,0x8e,0xd4, + 0x5f,0xd5,0x81,0x87,0x30,0xd8,0xbf,0x38,0x04,0xb1,0xbe,0x5e,0x7f,0x55,0x4f,0x34,0xd4,0x66,0x32,0xb2, + 0xca,0xdb,0xe9,0x39,0x9f,0x81,0x53,0xc5,0xc9,0x0f,0x2e,0x9c,0x2c,0xc6,0x97,0x92,0x32,0x9f,0x1a,0x3f, + 0x14,0xf9,0xfb,0x53,0x9e,0xf1,0x14,0xe8,0xaf,0x33,0x68,0x57,0xce,0x57,0x71,0xc7,0xf8,0x29,0x73,0x0b, + 0x44,0x48,0xd8,0x98,0x34,0xdf,0x1e,0x70,0xf1,0x39,0x21,0xe9,0x9c,0x46,0xf6,0xde,0x9c,0x95,0x6c,0xfa, + 0x9d,0x62,0x93,0x3e,0x15,0x51,0xf9,0x5f,0x73,0xe0,0x28,0x21,0xbf,0x20,0x35,0xca,0x0d,0x7f,0xff,0x85, + 0xa3,0xf6,0x95,0x27,0x6e,0x4d,0x42,0x25,0x49,0xd0,0x86,0xf8,0xd8,0xd4,0x99,0x70,0xec,0xa3,0xe8,0x0c, + 0x6f,0x33,0x5c,0x0c,0x9c,0xa9,0xf4,0x30,0x08,0x7c,0xcc,0xd7,0x06,0xe9,0xd8,0xc9,0x73,0xc2,0x85,0x62, + 0x74,0x29,0x0c,0x92,0x60,0x80,0x28,0x7f,0x34,0x28,0x2c,0x70,0x77,0xd7,0xc0,0x6a,0x53,0x3d,0x35,0x30, + 0x34,0x6c,0xdc,0x64,0x10,0xe5,0xa3,0x98,0x79,0x4c,0xb2,0x00,0xc8,0x8c,0x37,0x1e,0x54,0x26,0x48,0x9b, + 0x21,0x73,0xa8,0xf4,0xd5,0x1e,0x4c,0xd4,0xb1,0x5e,0xff,0xba,0x4c,0x24,0x40,0xa4,0x34,0xc0,0xd6,0xac, + 0x4f,0x66,0x8a,0x63,0xa9,0x55,0x6d,0xb0,0xa4,0x4c,0x1d,0x8b,0xf4,0xa5,0x5e,0xa6,0xf3,0x87,0xa2,0x12, + 0xa7,0x7e,0x5e,0x0b,0xc6,0x7a,0x97,0x94,0x09,0x82,0x3c,0x85,0xa0,0x57,0xa9,0x6a,0x66,0x3e,0x03,0x3c, + 0xaf,0xe1,0xba,0x6f,0x82,0x28,0x8f,0x34,0x49,0x15,0xb3,0xc8,0x0f,0xe4,0xea,0x87,0x02,0x7f,0xb5,0x91, + 0xab,0x23,0xcc,0xa6,0x0a,0x4d,0x0d,0xed,0xda,0x3d,0xaa,0xec,0x3c,0xd0,0xad,0xea,0x6f,0xac,0x37,0xe0, + 0xc1,0xf0,0x6d,0x46,0x39,0x9b,0x25,0x9e,0xad,0x9d,0x48,0x1d,0x98,0xd7,0x9b,0x14,0x9d,0x3e,0xb5,0x44, + 0x21,0x0d,0x97,0x62,0xc3,0x24,0x0e,0xa9,0x97,0xec,0x01,0xe8,0xa1,0xc6,0x2b,0xc0,0x0b,0x1a,0x8a,0x26, + 0x56,0xe2,0x3c,0x61,0xca,0x68,0x58,0x29,0x1e,0x1c,0x40,0x5a,0xab,0xc6,0x14,0x6b,0x82,0x5b,0xf8,0x9e, + 0x05,0x73,0x07,0x7d,0xbc,0xba,0xa0,0x7f,0xf1,0xb9,0xf9,0x2b,0xe5,0x20,0xa3,0x80,0x29,0x7e,0xa7,0x94, + 0xca,0x99,0x8e,0x7d,0xf1,0x10,0xf9,0xbf,0x30,0x7f,0x45,0xaf,0x23,0xe7,0x9c,0x8b,0xf1,0x05,0x58,0x24, + 0x08,0x52,0xd6,0x39,0xd5,0xc8,0xf6,0xf4,0xc1,0x8d,0x6c,0xdf,0x1d,0x24,0x57,0x42,0xbf,0x0e,0xda,0xcf, + 0xf1,0x58,0xcd,0x09,0x30,0xd9,0x00,0x41,0x1b,0x06,0xca,0x46,0x41,0x67,0xdb,0x55,0xe0,0x9f,0x65,0x4d, + 0x60,0xda,0x3c,0x2c,0x0c,0xb0,0x6c,0xb7,0x3d,0x64,0xed,0x6f,0x67,0xda,0xd9,0xd5,0x9b,0xeb,0xf0,0xd4, + 0x75,0xd1,0x75,0xb8,0xf2,0xf4,0x3a,0xc2,0x4c,0x8d,0x5c,0xf7,0x6d,0x0e,0x00,0x0d,0x7d,0x96,0xac,0xe7, + 0xc3,0xe4,0x45,0x90,0x38,0x11,0x9c,0x62,0x04,0xe2,0x1e,0x72,0x9e,0xaa,0xea,0x76,0xa9,0x3e,0xe9,0x86, + 0x1c,0x3e,0x6a,0x07,0x0d,0x9b,0x89,0x47,0x0c,0xa5,0xae,0x8b,0xc1,0xa7,0xa7,0xd6,0x1a,0x32,0xf1,0x66, + 0x07,0xdd,0x6a,0xa4,0x5c,0xa6,0x36,0xaf,0x45,0x83,0x70,0x7f,0x39,0x09,0xa2,0x44,0x32,0xd3,0x16,0x39, + 0xb2,0x5c,0xdb,0xac,0xd4,0x9e,0x69,0x7e,0x8c,0x2b,0xcf,0x94,0xc8,0xc3,0x60,0x46,0x8d,0x19,0xd6,0xa5, + 0x25,0xc0,0x42,0x80,0x11,0x1e,0xac,0x6d,0xe1,0x13,0x65,0xf9,0xd5,0xbf,0x51,0x84,0xeb,0x33,0x95,0x7c, + 0x7d,0x18,0x23,0x0a,0x6d,0x60,0x77,0x40,0x1e,0xfd,0xf9,0xf2,0xf6,0x21,0xc2,0xda,0x09,0x72,0x60,0x56, + 0xfe,0x73,0x76,0x62,0x31,0x9d,0xbc,0x93,0xb1,0xb0,0x9e,0x93,0xde,0x44,0xa6,0xbd,0xed,0xbb,0xae,0x93, + 0x7f,0xf3,0x0e,0x87,0x9f,0x00,0x82,0x65,0xd6,0x4b,0x35,0x6c,0x4b,0x5e,0xbc,0xd8,0xfa,0x1d,0x5c,0x3e, + 0x5c,0x44,0xcc,0xe2,0x1d,0x97,0x8a,0x2b,0x8f,0xcb,0x4a,0x9e,0x8a,0xb0,0xce,0x70,0xb2,0xc9,0x1f,0x97, + 0x13,0x1d,0x21,0xbd,0x9d,0xc0,0x4f,0x82,0x55,0xa4,0x96,0x04,0xd1,0xe8,0x05,0xd0,0x88,0x78,0xac,0xc9, + 0xce,0xaa,0x8c,0x44,0x58,0x0e,0x33,0x24,0x61,0xf1,0x39,0x72,0x73,0x77,0xcb,0x74,0x71,0xb3,0x1c,0x8c, + 0xa8,0x72,0x21,0x13,0x6f,0x5c,0x97,0x08,0x95,0x03,0x92,0xdc,0xf0,0xd2,0x3c,0x70,0x1a,0x48,0x08,0xfa, + 0x23,0xc2,0x3c,0x0d,0xed,0xf7,0x05,0xc9,0x32,0xa1,0x65,0x73,0x7e,0xf4,0x29,0x93,0x8f,0x35,0x45,0x3f, + 0x67,0x54,0x64,0xe8,0x29,0xdc,0x16,0x2a,0x12,0x59,0x46,0x93,0x27,0xed,0xb0,0x6f,0x35,0xdb,0x87,0x2a, + 0x37,0x51,0xf2,0xa1,0xae,0xfb,0x87,0x85,0x65,0x41,0xfb,0x56,0x96,0x6b,0x65,0x98,0x7d,0x55,0x92,0xc8, + 0x69,0x99,0x50,0x55,0xc8,0x1b,0x32,0x1e,0xe3,0x77,0x52,0x5b,0x3c,0xa1,0xef,0x6a,0x4e,0xd7,0x96,0x15, + 0x87,0x79,0x8c,0x1a,0xd1,0xab,0xc5,0x11,0x12,0x33,0x72,0x74,0x9c,0xf5,0xe7,0x04,0xe8,0xd8,0x3f,0x2f, + 0x22,0x4b,0x66,0x8e,0x10,0x62,0x39,0xb3,0x9b,0xa9,0xa2,0x4f,0x9e,0xfd,0x74,0x09,0x8f,0x5f,0x5b,0x8e, + 0x34,0x2a,0x72,0x7f,0xdd,0x2e,0x6b,0xf0,0x48,0x01,0x12,0x34,0x8e,0x84,0x48,0x6b,0xb5,0x6f,0xb3,0x3d, + 0x86,0x67,0xd8,0xff,0x10,0xe6,0x2d,0x9a,0x1b,0xf6,0xa8,0xbe,0x06,0xb1,0xdf,0x60,0x8d,0xaf,0xb1,0xff, + 0x1a,0xc8,0x65,0xfb,0xac,0x82,0xc6,0xf9,0xdb,0x5d,0x8e,0x59,0x68,0x06,0xe6,0x1d,0x50,0xa8,0x02,0x08, + 0x5e,0x54,0x52,0xd5,0xbc,0x9e,0x17,0x09,0x69,0xf1,0xf8,0x41,0xed,0xc1,0x05,0x9f,0xe1,0x70,0x51,0x00, + 0xc7,0x7d,0x84,0x17,0x13,0xd3,0xdf,0x1c,0x28,0x7c,0xf6,0xc4,0x0d,0x05,0x06,0xd3,0xc9,0xd4,0xe0,0xbb, + 0x99,0xe3,0x16,0xe3,0x4f,0x8f,0xc2,0x86,0x47,0xea,0x29,0xd2,0x7a,0x3f,0x11,0x40,0x09,0xee,0x3f,0x6e, + 0x16,0x69,0x56,0x63,0x82,0xf1,0x98,0xf4,0x2e,0xcb,0xe5,0xf3,0xc2,0xcc,0xa1,0xdc,0xe1,0x5f,0xdd,0x1b, + 0x63,0xb6,0x62,0x56,0xaa,0x62,0xe2,0x0b,0x10,0x5d,0xe7,0xf8,0x28,0x21,0x05,0x1c,0x4f,0xd4,0xcc,0x22, + 0x98,0xce,0x36,0x51,0x19,0x9e,0xd9,0xf9,0xa2,0xaa,0x3a,0xe6,0x9e,0x97,0xfc,0xcc,0xc8,0xa9,0x94,0x93, + 0x97,0xaa,0x2f,0x81,0xb2,0x8d,0x34,0x1f,0x77,0xf8,0xd0,0xf6,0x1f,0x9a,0x6f,0xa6,0x5c,0x8f,0xd7,0x47, + 0x56,0x67,0x83,0x9d,0x34,0x14,0x85,0x08,0x82,0xee,0x02,0xe5,0x46,0x36,0xfa,0x30,0xbf,0xd1,0xee,0x43, + 0x91,0x7f,0x02,0x4d,0x96,0x4a,0x97,0x8f,0x78,0x00,0x14,0x22,0xa6,0xce,0xdb,0xd7,0xdf,0x44,0x31,0x23, + 0x69,0x88,0xd6,0x60,0x6b,0x22,0xd7,0x8f,0x46,0x01,0xc0,0xe2,0xa9,0xb4,0x96,0x33,0x88,0xb6,0xf4,0x08, + 0x38,0x9e,0x32,0x03,0x80,0x4e,0xf3,0x03,0x98,0x64,0x61,0x9c,0x51,0x83,0x11,0xdf,0x18,0x99,0x29,0x06, + 0x0b,0x4b,0xa8,0x70,0x82,0x80,0xe1,0xa7,0xa6,0xd3,0x55,0xf7,0x80,0xfb,0xd9,0x85,0xe0,0xa3,0x4e,0x8c, + 0x03,0x3c,0xdc,0xe3,0xd4,0xa3,0x6a,0xb2,0x3c,0xaa,0xf4,0xec,0x20,0x78,0x9f,0x4c,0xa7,0x4a,0xba,0x99, + 0x8a,0x42,0x2f,0xad,0x3f,0x1a,0xbc,0xd9,0x59,0x87,0x9c,0x33,0x0a,0x40,0xdc,0xa5,0xe7,0xa7,0x03,0xa5, + 0x48,0x54,0x79,0x01,0x59,0x82,0xe4,0x43,0xe0,0x3e,0x3f,0x3d,0xd1,0xc9,0xb6,0xe1,0x02,0x68,0x9d,0x83, + 0x27,0xe1,0x42,0x11,0x2b,0x36,0xe7,0x3a,0x83,0x98,0x65,0x5e,0xce,0x0a,0x50,0xff,0xc2,0x46,0x56,0x26, + 0x50,0x6a,0xae,0x10,0x1f,0x80,0x4e,0x01,0xc2,0x69,0x11,0x66,0x48,0xa0,0x88,0xe5,0x6a,0x4b,0xc4,0x41, + 0x2d,0x5b,0x39,0x5c,0xbf,0x7a,0xa6,0xf9,0xf3,0x54,0x95,0xb8,0x9a,0xbd,0xb4,0x1f,0x40,0x8c,0x62,0x95, + 0x62,0x61,0xa5,0x80,0x1f,0x79,0x21,0x21,0x11,0x97,0xcf,0xc3,0xd2,0x3a,0xaf,0x5f,0x1a,0x86,0x1e,0x0e, + 0x32,0x74,0xef,0x08,0xac,0x90,0x88,0x8b,0x68,0xfc,0x1d,0xfe,0x13,0xe4,0x5f,0x0b,0xb7,0xbf,0x42,0x8e, + 0x4f,0x3e,0x17,0x8e,0x3c,0x1e,0x68,0xd5,0xd3,0x51,0x3c,0x4b,0xea,0x13,0xac,0x1f,0x02,0xf4,0x54,0xa6, + 0xed,0xea,0xcc,0xd9,0xfa,0x35,0x1e,0x02,0x85,0xc1,0x05,0xa8,0x8b,0x1e,0xc6,0x59,0x86,0x4c,0x83,0x75, + 0x63,0x4d,0x69,0x88,0x60,0xe1,0x23,0x25,0x74,0x28,0x6e,0x37,0xf4,0xd2,0xce,0xe6,0x24,0x7d,0xa0,0x91, + 0x57,0x6f,0xb8,0x8f,0x8b,0x0d,0x40,0x6d,0x85,0xfe,0xf3,0x24,0xd3,0x36,0x4f,0x4a,0x62,0x52,0x98,0x1e, + 0x59,0xd1,0xef,0x51,0x3c,0xa8,0xf7,0x26,0x14,0xe8,0x5f,0x98,0xb1,0x27,0x78,0x70,0x69,0x78,0x06,0x17, + 0x3d,0x95,0x61,0x09,0x40,0x07,0x33,0xa5,0x70,0x78,0xc3,0x26,0x61,0xf8,0xa7,0x66,0xba,0x64,0x2f,0x05, + 0x57,0xc2,0x52,0x58,0x84,0xda,0x13,0x36,0x59,0x99,0xc6,0x9b,0x4c,0xd3,0x83,0xfb,0xc1,0x3c,0xeb,0x68, + 0x8a,0xd9,0x80,0x49,0xe8,0xf5,0x86,0xaa,0xe1,0x0f,0xc0,0x3d,0x83,0xf9,0x19,0xcc,0xca,0x3f,0x75,0x92, + 0x40,0x5a,0xdc,0xb0,0x27,0xf0,0x7f,0x7f,0xff,0x36,0xc9,0xb6,0x27,0xb5,0xdd,0xde,0xd9,0xa6,0xb2,0x14, + 0xa8,0x29,0x50,0xa5,0xc3,0xfc,0xfd,0xd5,0x89,0x4e,0x10,0x55,0x59,0xa4,0x94,0xd7,0x5f,0x4d,0xb8,0x69, + 0x07,0x71,0x53,0x66,0x41,0x28,0x80,0x39,0x83,0xdc,0x82,0x55,0x39,0x6e,0x1f,0xd2,0x9c,0xe4,0x6f,0x62, + 0x87,0x81,0x0e,0xe0,0x06,0x13,0x96,0x14,0x87,0x27,0x80,0x25,0x54,0xe7,0x7a,0x79,0xbb,0x12,0xb6,0x77, + 0x0d,0x1b,0x45,0xe1,0x7d,0xb5,0x00,0x87,0xae,0xf1,0x78,0x64,0xed,0x54,0x47,0x88,0x7f,0xd3,0xa1,0xa9, + 0x3f,0xfd,0x12,0x03,0x93,0x1f,0x54,0xb9,0x5f,0xda,0x4f,0x68,0x82,0x4f,0xb0,0x1c,0x8c,0x00,0xa7,0xab, + 0x4b,0x4a,0xd1,0x23,0xe9,0x6b,0xcb,0x1c,0x94,0x12,0x73,0xb2,0x05,0x14,0xfe,0xfb,0x2a,0xf6,0xb4,0x0e, + 0x04,0x5f,0xe1,0xd8,0xf6,0xf5,0xea,0xe3,0x53,0x88,0x57,0x9f,0x10,0xfd,0x4b,0xad,0x6e,0x96,0xf8,0x30, + 0x42,0xda,0xa3,0x40,0xe9,0x84,0x3f,0x47,0x83,0xa4,0x31,0xd9,0xb7,0x40,0x03,0xa5,0xc0,0x01,0xbc,0x18, + 0x5f,0x06,0x94,0x28,0x49,0xfc,0x8d,0x36,0x7c,0x63,0x7b,0xd4,0x00,0x2c,0x27,0x25,0x51,0xc9,0xfb,0x87, + 0x74,0xd3,0x3d,0xce,0xa7,0x97,0xb5,0x26,0xd8,0x28,0x85,0x89,0x46,0x2d,0x01,0x6d,0x66,0x4a,0x7c,0x3a, + 0xd6,0x71,0x9d,0x0d,0xc2,0x91,0xd5,0x6a,0x40,0xc7,0xce,0xa3,0x6d,0x90,0xdc,0x00,0x61,0xec,0xef,0x35, + 0x6c,0x99,0x41,0x35,0x13,0xf3,0xb8,0x47,0x3d,0x23,0xdc,0x87,0x46,0x36,0x26,0x6e,0x2b,0xb1,0xd4,0x31, + 0x17,0xe0,0x37,0xb5,0x94,0x52,0x8b,0x75,0x65,0x96,0x07,0x23,0xea,0xef,0x29,0x6a,0xaf,0xe2,0xe7,0x01, + 0xd0,0x86,0x32,0xb5,0x84,0x2b,0x05,0x88,0x7b,0x58,0xa7,0x13,0x1f,0x22,0x46,0xb8,0xfd,0xee,0xa1,0x8a, + 0x86,0xdc,0xe2,0x45,0x9a,0xc7,0xd2,0xb1,0xc1,0x62,0x9e,0x92,0xb0,0x8d,0x95,0xf4,0x63,0x64,0xf5,0x29, + 0xf3,0x15,0xb2,0x51,0x1f,0x79,0x0a,0x33,0x76,0x84,0xb9,0x08,0x81,0x61,0xa9,0x52,0x89,0xa8,0x90,0xd5, + 0x9c,0x61,0x5f,0x43,0xc0,0xd2,0x19,0xf7,0xf5,0xb4,0xb4,0x3f,0x5b,0x4c,0xe8,0x87,0x30,0x01,0x7c,0xa7, + 0xa3,0x64,0x6f,0xe0,0xaa,0xcd,0xa8,0x4b,0x1e,0xce,0x47,0xfe,0xa1,0x26,0x83,0x86,0x2e,0x5b,0xc1,0x91, + 0xa8,0x0b,0x9d,0xa2,0x03,0x19,0xf6,0x83,0xc2,0x7e,0x75,0xee,0x0d,0x84,0xa5,0x14,0xb2,0x3c,0x8a,0x8a, + 0x64,0xb4,0x02,0x8c,0xd9,0x92,0xd2,0x62,0x3a,0xc6,0x4f,0x4d,0xe8,0xbf,0xc9,0x4e,0x49,0x12,0xec,0x48, + 0x00,0x38,0xaa,0xd1,0xcb,0x7c,0xce,0x16,0x24,0xba,0xda,0xa5,0x92,0x8a,0xbb,0x1f,0x18,0x56,0x22,0x37, + 0x0a,0x92,0x99,0x20,0x3d,0xe0,0x21,0x45,0x0f,0x25,0x33,0x1b,0xa0,0xd6,0x07,0x3c,0x7f,0x5b,0xf2,0x7d, + 0x74,0x94,0x55,0x48,0x52,0x4e,0xb9,0xde,0x3f,0xa2,0xf8,0x52,0x5a,0x5d,0x23,0xcc,0x23,0xf6,0x19,0x5c, + 0x79,0x42,0x47,0x08,0xc7,0x99,0x41,0xf9,0x4a,0x11,0x93,0x05,0xc6,0x7e,0x88,0x6f,0xa2,0xae,0x13,0x0d, + 0xe3,0xb8,0x13,0xeb,0x57,0xaf,0x30,0x45,0x3a,0xe6,0x21,0xe6,0x0e,0x1d,0x95,0x1c,0x0f,0xf8,0xf4,0x2f, + 0x91,0xb4,0x49,0x32,0xe9,0xe3,0xf2,0x2a,0x4d,0x6d,0x17,0x04,0x11,0xf8,0x86,0x75,0x26,0x43,0x9b,0xd7, + 0x09,0x31,0xd1,0xf2,0x0f,0xa0,0x6f,0x1a,0x84,0x56,0x21,0x4a,0x49,0xd1,0x1d,0x18,0x6e,0xaf,0xa3,0xf2, + 0x4d,0x85,0x48,0x24,0x5d,0x9d,0x5c,0x56,0x98,0x07,0xeb,0x43,0x7a,0x35,0xba,0xac,0xa3,0x7d,0xda,0xdf, + 0x5f,0x6b,0x72,0xd7,0x3a,0xe4,0x3e,0x2c,0x12,0x08,0xef,0x60,0x94,0xeb,0x77,0x31,0x4a,0xaa,0x60,0x5d, + 0x91,0xaf,0xb2,0x3c,0x80,0x69,0x36,0xe0,0x40,0x81,0x7e,0x28,0x47,0x70,0x1b,0xff,0xd0,0x49,0x89,0x6e, + 0x5a,0x9c,0x57,0x7d,0x38,0xa1,0x82,0x5a,0xf4,0x0f,0x5d,0x46,0x59,0x3e,0x45,0x7d,0x46,0x2a,0x56,0x17, + 0x22,0xa6,0x89,0x16,0xb6,0xeb,0xf5,0xb5,0x0c,0xbb,0xcf,0xcd,0x49,0x45,0xd8,0xbc,0x76,0x79,0x6d,0x2a, + 0x76,0x81,0x22,0x1a,0x82,0xd1,0x69,0x82,0x21,0x43,0xe8,0x85,0xa5,0xfd,0x35,0x30,0x17,0x08,0x0b,0x1a, + 0xb1,0xdf,0x51,0xb0,0xd3,0xe5,0x1a,0x76,0xb6,0xb7,0x3a,0x51,0xd4,0x75,0xb0,0x6a,0x40,0x02,0xb8,0x03, + 0x48,0x57,0xfc,0xae,0xa4,0x78,0x64,0xd8,0xf6,0x75,0x45,0x7c,0x97,0xe9,0x02,0x78,0x3c,0x60,0x0b,0xf0, + 0xe5,0xe5,0xcb,0x78,0xad,0xee,0xa3,0x3f,0x21,0xbc,0x0b,0xbf,0xd3,0x5f,0x4d,0x2d,0x75,0x0e,0x96,0xfd, + 0x03,0x47,0xea,0xc3,0x5f,0xd8,0x94,0xd8,0x1f,0x89,0xbc,0x91,0xb3,0x93,0xde,0x82,0xe3,0xd2,0x4f,0xac, + 0x03,0x09,0xb6,0xbb,0xf0,0xca,0x32,0x15,0xfc,0x6f,0x97,0x3f,0x91,0x55,0x5f,0x5f,0x60,0x3d,0x4d,0x27, + 0xad,0x0c,0xf8,0x6f,0x83,0x4f,0x28,0x40,0xb8,0xa5,0xfe,0x4e,0x12,0x2c,0xb5,0x25,0x94,0xee,0xad,0x60, + 0xef,0x04,0x8e,0x29,0x91,0xdf,0x2a,0xd6,0x89,0xf3,0xd3,0x0d,0x25,0xea,0x27,0x14,0x3b,0x58,0x53,0xb1, + 0x86,0x21,0x34,0x92,0x0e,0x03,0xec,0xf2,0xb8,0xa6,0x66,0xd3,0xa0,0x7d,0xae,0x21,0x1b,0x89,0xd5,0xb0, + 0x36,0x2b,0xa0,0x8f,0x3b,0x42,0xbf,0x00,0x81,0x46,0x9e,0x6c,0x71,0xbd,0x6a,0xeb,0x16,0x22,0x9b,0x73, + 0x05,0xc7,0xa7,0x05,0xd6,0x35,0xe0,0xe2,0xee,0x0a,0x39,0xc9,0x54,0x88,0xce,0xfa,0xa4,0x1a,0x70,0x85, + 0xb1,0x9f,0x29,0x54,0x06,0x1f,0x90,0x6a,0xf9,0xf2,0xc8,0x2a,0x64,0xd3,0x74,0x40,0xe9,0xb2,0xc7,0x91, + 0xa1,0x6d,0x44,0xaf,0x18,0xc0,0xef,0x6d,0x6e,0x77,0x84,0xeb,0x90,0x07,0xa0,0x42,0x2a,0x7b,0x36,0x95, + 0xc2,0x22,0xd5,0x67,0xfd,0x14,0x31,0xa8,0x0c,0x4b,0x22,0xbb,0xf4,0x94,0x3a,0xf9,0x1e,0xc0,0xc6,0xf9, + 0x9f,0xe0,0xa3,0x2e,0x1a,0xa2,0x5d,0x58,0xd1,0xef,0x11,0xa5,0xd8,0x8e,0x6c,0x9f,0x54,0x27,0x69,0x3f, + 0x92,0xa5,0x7b,0x9d,0x17,0x97,0xd8,0x4f,0x9d,0xc2,0x65,0xba,0x40,0x58,0x0c,0x5c,0xf5,0xb0,0xfa,0x24, + 0x09,0x2d,0x0b,0x4e,0x3f,0xdc,0x9b,0x93,0xb5,0x6d,0xa7,0x6c,0x27,0x78,0xad,0x93,0xc8,0xbd,0xb6,0xef, + 0xe9,0x3e,0x79,0x6a,0xf1,0xf6,0xe6,0x2f,0xc7,0x79,0x71,0x5d,0x29,0xed,0x84,0x4d,0x4d,0x3e,0x3f,0x3d, + 0x89,0x4b,0xe6,0x00,0x0f,0x92,0xea,0x67,0x29,0x7d,0x50,0xba,0x4f,0xc5,0xac,0xae,0x0f,0x09,0xa8,0xcb, + 0x12,0x3a,0xba,0x56,0x57,0xc2,0x37,0x48,0x55,0xa6,0x44,0x23,0xa5,0xbf,0x93,0x21,0xf2,0x99,0x96,0x9b, + 0x6b,0x54,0x10,0x68,0xa5,0xfa,0xf0,0x97,0x41,0x62,0x1a,0x8b,0x15,0xc7,0xd4,0x23,0xaf,0x58,0x27,0x48, + 0x98,0x02,0x66,0xd7,0x87,0x9f,0x9c,0x51,0x85,0x7a,0xf5,0x3d,0x18,0x20,0x79,0x09,0x7d,0x39,0xc1,0xe7, + 0xea,0x5a,0x69,0x06,0x61,0xa3,0xbf,0xdf,0xc9,0xd9,0x1e,0xf4,0x32,0x49,0xdf,0x6b,0x61,0xab,0x69,0x10, + 0x9f,0xe4,0xe7,0xa7,0x9f,0x74,0x14,0x3f,0x6b,0xce,0xdf,0xb2,0xbf,0x3f,0x05,0xbd,0xf8,0xf2,0xd1,0xe5, + 0x48,0x65,0x5b,0x5f,0x27,0x0d,0x72,0x70,0xb9,0x19,0x36,0xca,0x1e,0xe6,0x22,0x0d,0x70,0x19,0x80,0xfd, + 0x14,0x97,0x17,0xd5,0x83,0x39,0x91,0xa0,0x0a,0x1d,0xad,0x52,0x7c,0x1e,0x70,0xc1,0xfd,0x43,0x97,0x9e, + 0x5a,0x96,0x0c,0x95,0xaa,0x6e,0x78,0x30,0x58,0x98,0xa7,0xd7,0x4c,0x12,0x9e,0xa4,0x4e,0x9f,0xa3,0x57, + 0xfb,0x52,0xab,0xba,0x0b,0x45,0xbe,0x0b,0x9a,0xea,0x80,0xc2,0xdb,0x6f,0xb0,0xf6,0xfb,0xfe,0xa5,0x56, + 0x27,0x20,0xf4,0x0b,0x6a,0xd2,0x89,0xec,0x00,0x39,0xc2,0xfd,0x02,0xc4,0x45,0xf3,0x45,0x90,0xa1,0x05, + 0xba,0x9c,0x0e,0xe8,0x6f,0x54,0x7c,0x18,0x59,0x0a,0xbf,0xf0,0x62,0xed,0x8a,0xbe,0xe8,0xb4,0x0e,0x43, + 0xbb,0x54,0x4c,0x87,0x1f,0xf4,0x0b,0x8a,0x4a,0x92,0x68,0x56,0x2c,0xf5,0xc2,0xfc,0xc9,0x10,0x30,0xb1, + 0x05,0x23,0x97,0xe6,0x87,0x2f,0xe0,0x12,0x50,0xf6,0x6f,0xfa,0x85,0xe1,0xdb,0x44,0x18,0x31,0xb5,0xa7, + 0xfd,0x9c,0x4b,0x6f,0xd5,0x10,0xd3,0xb7,0x99,0xe0,0xfa,0x2f,0x38,0xa3,0xb6,0x01,0x8b,0xe8,0xa9,0x46, + 0x1e,0x35,0xb2,0x95,0x10,0xa7,0x23,0xb7,0x37,0x15,0xe1,0x7a,0x8f,0x0c,0xe3,0xbb,0x32,0xad,0x03,0x46, + 0xd6,0x37,0xec,0xf0,0x94,0x0e,0x2c,0xeb,0x42,0x0e,0x26,0x00,0x95,0xca,0xf3,0xf1,0xe6,0x28,0x5e,0x2f, + 0xfa,0x07,0x40,0x9b,0x50,0xf5,0xdd,0x18,0x7a,0xc2,0x3c,0x32,0xf6,0xd7,0x2a,0xb9,0x62,0x19,0x83,0x18, + 0x1f,0x6f,0x14,0x92,0x0c,0xcd,0x3a,0x03,0xa0,0x20,0x8a,0x5f,0x64,0xda,0xdb,0x48,0x87,0xd8,0xdb,0x46, + 0xe2,0xe2,0x49,0x0e,0x65,0xac,0xa7,0x60,0x14,0x4c,0x01,0xcf,0xfd,0xbb,0x19,0x11,0x70,0xd3,0xc9,0x42, + 0x63,0x4a,0xfa,0x1a,0xd3,0x88,0x94,0x1e,0x14,0xdb,0xe9,0x09,0xd4,0x23,0xc2,0x9a,0x3c,0xf2,0x83,0xc1, + 0x30,0x31,0xdb,0x89,0x29,0x7f,0xb5,0x27,0x67,0x93,0x46,0xdf,0x3e,0x9f,0xd7,0x8b,0x01,0x5d,0x72,0x55, + 0x3b,0x62,0x46,0x98,0xd4,0x03,0x79,0x0c,0x44,0x08,0xd3,0x02,0x38,0xdb,0x80,0x47,0xf5,0xf0,0x3f,0xe8, + 0x88,0x9f,0x08,0xc9,0xfd,0x0f,0x6a,0x54,0x8a,0xd4,0x03,0x15,0xaa,0x58,0xd6,0x87,0x0b,0x4a,0xd0,0x22, + 0xea,0x8b,0xbe,0x62,0x5c,0xee,0x46,0x9a,0x55,0x6d,0x60,0xfe,0x45,0x67,0x94,0x8d,0x35,0x3a,0x07,0xc9, + 0x1b,0x9e,0x9f,0x01,0x75,0xbe,0xed,0xea,0x39,0xa5,0x47,0x1f,0x7d,0xc2,0xc8,0xf3,0x3f,0x38,0x49,0xd3, + 0x8e,0xb9,0x49,0xa1,0x15,0xd5,0xa8,0x3d,0xbd,0x95,0xa9,0x53,0x5b,0xfd,0x5a,0x2d,0x6b,0x79,0x0f,0xe6, + 0x3a,0x96,0x50,0x88,0x37,0x15,0x87,0xa5,0x8a,0xe0,0xe1,0x6d,0x5b,0x94,0x03,0x34,0x90,0x9c,0x48,0x95, + 0x26,0x69,0xbc,0x76,0x5a,0x76,0xb0,0x75,0x1a,0x5f,0x77,0x01,0xc1,0x8b,0x4c,0x67,0x46,0x93,0x00,0xa0, + 0x04,0x5d,0x06,0xfd,0x64,0x09,0x29,0xc1,0xa4,0x13,0x19,0xf2,0x8d,0xba,0x57,0x8b,0x02,0xb7,0x61,0x52, + 0xa5,0x1b,0x3d,0xa2,0x58,0xbf,0x46,0x73,0xae,0x63,0x1a,0x40,0x53,0xa7,0x5a,0x54,0x8f,0xbc,0x95,0xb4, + 0x44,0xcd,0x81,0x5f,0xaa,0x6a,0xa1,0x65,0xd7,0x78,0x92,0xc3,0x12,0x5e,0x6a,0xdd,0x8e,0xcc,0x22,0x59, + 0x59,0xc7,0x46,0x90,0x3c,0xff,0xd0,0x69,0xaa,0x2e,0x7e,0x9a,0xb9,0x24,0xed,0x05,0xf4,0x9a,0x0d,0x27, + 0x78,0x78,0xfa,0xe7,0x1d,0x6d,0x46,0x17,0x4a,0x84,0x3e,0xa7,0xc5,0x7f,0xb8,0x3a,0x91,0xbe,0xdd,0xb9, + 0x3c,0x25,0xf3,0x60,0xa2,0xda,0x87,0x8d,0x09,0x10,0x74,0x4d,0x65,0xf5,0x86,0x9f,0xc3,0x46,0x4a,0x1c, + 0xc6,0x0f,0x2d,0xa2,0x22,0x5e,0x34,0xa9,0x0e,0x34,0x33,0x1b,0x5e,0x29,0x3c,0x11,0x41,0x42,0xcc,0x05, + 0xcd,0xc9,0xba,0xf5,0x26,0xfa,0xc6,0x19,0xa4,0xc8,0xf0,0x8b,0xf1,0x3d,0xd5,0xa7,0x6f,0xd1,0x33,0x90, + 0x33,0x45,0x70,0xeb,0x4a,0xf2,0x72,0x3a,0x1e,0x99,0x7f,0x75,0xea,0xa5,0x8e,0x39,0x85,0x67,0x31,0x82, + 0x2b,0xb1,0xea,0x55,0x9a,0xaf,0x23,0x18,0x63,0x59,0x0b,0x92,0x32,0x0a,0x9e,0x28,0x2e,0x24,0x55,0x44, + 0x9d,0x39,0x92,0x4c,0xb1,0xc2,0x04,0x6d,0x7f,0x77,0xea,0xb3,0x9a,0x22,0x93,0x61,0x73,0x83,0xc2,0xc0, + 0xfb,0x2c,0xeb,0x89,0x22,0x66,0xd8,0x82,0xfa,0xd8,0xb1,0xaf,0x3e,0x54,0x04,0xed,0x28,0x7f,0xd5,0xd2, + 0xdd,0xf7,0xdd,0xc5,0xeb,0x83,0x91,0x79,0xe2,0xf2,0xf7,0xf5,0x60,0xe2,0x35,0xee,0xf9,0x86,0x4f,0xbb, + 0xdb,0xf6,0x80,0xed,0x96,0x27,0xaf,0xcb,0x7d,0x43,0x51,0x6b,0x22,0xed,0x26,0x61,0x54,0x1b,0x2f,0xc6, + 0x37,0xa5,0xe2,0xd2,0xac,0xfd,0x1e,0xcb,0x69,0xb0,0x79,0xf8,0xdc,0x57,0x59,0xee,0x68,0x0f,0xb1,0x2b, + 0x15,0x11,0xd7,0x22,0x92,0x89,0xbb,0xd1,0x14,0x43,0xfb,0xb6,0x5b,0xbf,0xd7,0x72,0x7b,0x27,0xfb,0xb1, + 0x58,0x53,0x33,0x29,0xae,0xdd,0xa4,0x40,0x61,0x97,0x2b,0xfe,0x22,0x46,0x09,0x48,0xb3,0x02,0x22,0xc4, + 0x2c,0xfa,0x50,0x82,0x28,0x4c,0xf4,0x2c,0xaa,0x1e,0x0c,0x3e,0x1e,0x8a,0xb6,0x60,0xf6,0xdb,0x4e,0x50, + 0xfd,0xaf,0x81,0x9c,0xab,0x41,0x4d,0x49,0x01,0x28,0xa2,0xbf,0x8d,0x73,0x80,0xf7,0xff,0x8f,0x2b,0x40, + 0xd7,0xb6,0x24,0x66,0x31,0x18,0xb9,0x21,0xfa,0x43,0x20,0x99,0x9a,0xdf,0x73,0x50,0x4c,0x29,0xdb,0x05, + 0xa3,0x1a,0x59,0x55,0xcd,0x05,0xdc,0x43,0x1d,0xb9,0xea,0x37,0xe4,0xb6,0xa7,0x08,0xce,0x2d,0xe2,0x02, + 0x48,0x23,0x4e,0xcb,0x1b,0x36,0xbf,0xf8,0xe1,0x51,0xc9,0xba,0x72,0x2e,0x15,0x92,0x5a,0x78,0x30,0x76, + 0x3f,0x58,0x3c,0xa9,0xda,0xe6,0xe2,0x87,0x8b,0xc8,0x27,0x09,0x2d,0xf0,0x27,0x9f,0x65,0xe1,0x8b,0xc9, + 0x3f,0x4c,0xc4,0x47,0x0a,0x11,0x7e,0xc3,0x46,0xed,0xc9,0xde,0xb4,0xca,0x69,0x9a,0xe3,0x84,0x62,0x83, + 0xf5,0x0e,0xe0,0x80,0x55,0xc4,0xac,0x06,0x7c,0x76,0xed,0x5b,0xfe,0xa1,0x8c,0x8e,0x5d,0xf0,0xe6,0xb0, + 0x3a,0x0a,0xe3,0x79,0x64,0x23,0x78,0x8e,0x87,0xba,0xfb,0x9b,0x37,0x00,0x84,0x6c,0x8e,0xbc,0xab,0x59, + 0x0b,0x35,0xf6,0x14,0xd5,0x92,0x16,0x7a,0x08,0x30,0x84,0xe1,0x7f,0x0d,0x10,0xa2,0x3a,0xd0,0x90,0x6c, + 0x9b,0xea,0xd6,0xa3,0xfb,0xf2,0x5d,0xa3,0x7b,0x44,0x8f,0xee,0xff,0x63,0xa3,0xbb,0xde,0xe4,0xc1,0x30, + 0x3e,0x0b,0x73,0x7e,0x9b,0x60,0x26,0x36,0xdb,0x47,0x21,0x7e,0x9c,0xdf,0xcb,0x94,0x5a,0x94,0xaa,0x0a, + 0xa4,0xea,0x19,0x70,0x05,0x4a,0x5d,0xf6,0x0b,0x91,0xed,0x55,0x21,0x6a,0xe1,0xf0,0xc5,0x7a,0xaa,0x0f, + 0xbe,0x62,0x2d,0x9f,0x1b,0xf9,0x75,0xc0,0xfa,0x2d,0xd4,0xbd,0x55,0x38,0xed,0xef,0x4f,0x75,0x6b,0x4b, + 0xe6,0x77,0x84,0x0a,0xc8,0x6e,0x46,0x41,0xb1,0xde,0x54,0xe8,0xd3,0x01,0x6f,0xfb,0x8b,0xbf,0xff,0xa5, + 0xa7,0x64,0x40,0xc3,0x83,0x68,0x63,0x38,0x7c,0xd8,0x2c,0xd6,0x8f,0x4d,0x9d,0x81,0x89,0x63,0x18,0x37, + 0xe1,0xf0,0x49,0x04,0x36,0xe9,0x29,0x9e,0x48,0x2f,0xff,0x50,0x48,0x25,0x8e,0x5a,0xbd,0x3f,0x27,0xaf, + 0x4b,0x2d,0x52,0xbf,0x29,0x7a,0x1d,0xe4,0xef,0xcd,0x60,0xe1,0x55,0xb8,0x9b,0x3a,0xc3,0x43,0x34,0x14, + 0x9e,0x6f,0xdf,0x73,0x3d,0xd2,0x45,0x37,0x66,0x8a,0xc1,0x0c,0x49,0x3d,0xf2,0x8d,0xd9,0x18,0x71,0xd3, + 0xc8,0x33,0x18,0x60,0xd4,0xcc,0x01,0x21,0x6c,0x61,0xfc,0xc6,0xe1,0x62,0x40,0x4e,0x91,0xbe,0x4d,0x6a, + 0xff,0xcd,0xc3,0x9d,0x6d,0xc9,0x99,0xad,0x28,0x71,0x56,0x10,0xc0,0xd4,0xc5,0x37,0x4f,0x22,0xd8,0xa8, + 0x49,0xe8,0x68,0xcf,0xa3,0xf2,0xe2,0x9a,0xd6,0x91,0xe9,0x49,0xa2,0x45,0x7f,0xa7,0x8c,0xe8,0xdb,0x4c, + 0x34,0x2c,0xbc,0xa6,0xb9,0xe7,0x01,0x5c,0xe7,0xd5,0x13,0x3f,0x08,0x11,0x37,0x4b,0xf4,0xa3,0x35,0x50, + 0x8a,0xd5,0x89,0xe0,0xf2,0xb0,0x16,0x9c,0x99,0xba,0xed,0x1f,0x0a,0x86,0x53,0x51,0xd9,0x31,0x87,0xea, + 0x15,0xc2,0x7d,0x7d,0x17,0x08,0xb4,0x83,0x83,0xe0,0x0d,0xa2,0x44,0xee,0x0e,0xa9,0xbd,0xbe,0x8d,0x8e, + 0xeb,0xf6,0xe0,0xe1,0xeb,0x93,0x4c,0xc0,0xc7,0x28,0xc6,0xc9,0x36,0x8f,0x87,0x70,0x99,0xef,0x2a,0xd5, + 0xc0,0x7d,0xd5,0x17,0xdf,0xd3,0x18,0x19,0xb8,0xef,0xf3,0x22,0xfe,0xb9,0x7c,0x2a,0x45,0xcd,0xa0,0xa3, + 0x4d,0x33,0xe7,0xe0,0xb5,0x52,0x03,0x18,0x8c,0x97,0x5e,0x41,0x1d,0x76,0x85,0x75,0x63,0x9e,0xf5,0xf2, + 0x75,0x14,0xe3,0xff,0x3e,0x1f,0x5d,0xa9,0xe4,0x83,0xe1,0xa3,0x36,0x24,0xbd,0xe2,0xe1,0xff,0xfb,0x3c, + 0x07,0x82,0x7c,0x3a,0x13,0x70,0xff,0x8e,0x55,0x50,0xd2,0xef,0x0c,0x0f,0x4b,0x58,0xf4,0x0c,0x1f,0xfd, + 0x23,0x6e,0xd8,0x12,0x17,0xc1,0x1d,0x9f,0x09,0x03,0xbd,0x9a,0xa9,0x0f,0x37,0xb2,0xb8,0x43,0xbf,0x85, + 0xce,0x13,0xa6,0xe6,0x4b,0x47,0xc8,0xea,0x44,0xb4,0xa6,0x32,0xc7,0xf7,0xf3,0x26,0x9c,0xcf,0x06,0x2e, + 0x85,0x94,0x91,0x34,0x9b,0xf5,0xd5,0xeb,0xc2,0x91,0xfa,0x85,0x59,0x08,0x5e,0x04,0x01,0x1c,0x2d,0x27, + 0x3d,0xa1,0x66,0xd0,0xef,0xb1,0x92,0xaa,0x31,0xf2,0x11,0x46,0xa7,0xdf,0x12,0xda,0xd5,0x09,0x62,0xa2, + 0x19,0xf6,0x46,0xe1,0x7c,0xe0,0x22,0x7b,0xf4,0x6a,0x2b,0x9a,0xa0,0x17,0x5a,0x8e,0x04,0xee,0x01,0x75, + 0x28,0xb8,0xc5,0x8c,0x5d,0xbc,0xf2,0x84,0xee,0x44,0xda,0xb8,0x30,0xa5,0x4a,0xf8,0x80,0xd4,0xce,0xd5, + 0xf1,0x4f,0xb4,0x45,0x52,0xec,0x71,0x73,0x8b,0x87,0xef,0x4c,0x33,0x89,0x9a,0xa3,0x7a,0x0e,0x94,0x35, + 0xd4,0x76,0xa0,0x48,0xa5,0xea,0x80,0x69,0xf0,0x0e,0x2a,0x3c,0xfd,0x00,0x2e,0x3c,0x37,0xfd,0x74,0xe2, + 0x10,0x9f,0x86,0x64,0x83,0x33,0xc9,0x3c,0xd2,0xc3,0x88,0x5e,0x10,0x98,0x48,0xfd,0xc8,0x43,0x94,0x4b, + 0x2b,0x78,0xd5,0x2d,0x25,0x3b,0x75,0x93,0x56,0xc9,0x1a,0x32,0xbf,0x80,0x1f,0x7a,0x9d,0xae,0x4f,0x22, + 0x0c,0xf7,0x3b,0x56,0x01,0xd1,0x23,0x32,0xbc,0xa5,0x84,0xe2,0x40,0x4f,0x6f,0x12,0x17,0x7d,0x0b,0xe4, + 0x0b,0x18,0xb1,0x99,0x2a,0xa5,0x1b,0x0b,0xe0,0x13,0x84,0xd3,0x60,0x43,0x5b,0x64,0xaf,0xae,0x82,0xb2, + 0x55,0x4d,0x36,0x65,0x12,0xd1,0x96,0xfa,0x9e,0x61,0x0f,0xa2,0x82,0xcb,0x5b,0x35,0x66,0x01,0xbc,0x88, + 0x22,0xe3,0xa3,0xbf,0x6e,0x97,0x49,0x5f,0x22,0xfd,0x59,0x6a,0x2b,0x9c,0xf1,0x67,0x96,0x27,0x6a,0xb1, + 0x8d,0xbf,0x26,0x54,0x0b,0xb4,0x06,0x3e,0xdf,0xa4,0xc2,0xc5,0x71,0xca,0x9b,0x61,0xa5,0xf7,0x34,0x6c, + 0x55,0xb7,0xf4,0xa4,0xc1,0x75,0x29,0x51,0x48,0x0e,0x62,0xab,0x45,0x84,0xb9,0x05,0xfe,0xa2,0xa4,0x46, + 0xea,0x3c,0xae,0x4e,0x8f,0x69,0xc8,0xe7,0x41,0x42,0xdf,0xdd,0x9a,0xa2,0xe8,0xe0,0x97,0x8a,0x01,0x9e, + 0xb0,0x36,0x67,0x6d,0x12,0x89,0xfc,0xea,0xbd,0x7b,0xa0,0xb3,0x89,0xe1,0xd2,0x95,0x35,0x01,0xc1,0x10, + 0x72,0x0f,0xd4,0xf4,0x6f,0xe4,0x48,0x22,0xab,0xb7,0xd2,0x8d,0xeb,0xf5,0xe1,0x67,0xb6,0xd4,0x34,0xf8, + 0xae,0xe3,0x82,0x8e,0x2b,0x55,0x21,0xeb,0x4c,0x26,0x56,0x96,0xa8,0x4e,0xe9,0x56,0xc9,0x3d,0x4e,0x81, + 0xc2,0xeb,0x6f,0x2a,0x8d,0xa9,0xd1,0xdd,0x0f,0x3a,0xde,0x34,0x62,0x80,0xa6,0x59,0xab,0x2b,0xe7,0xa9, + 0x3e,0x4e,0x55,0x46,0xc0,0xcd,0xd2,0xb4,0xc1,0xfa,0x01,0xde,0xe6,0xe1,0xea,0x88,0xd1,0x95,0xd5,0xcd, + 0x8e,0xc4,0xf3,0x00,0xed,0xb1,0x40,0x22,0xbf,0x5e,0x0d,0xe8,0x24,0x1c,0xb1,0x59,0x05,0x10,0x76,0x14, + 0xfd,0x43,0x97,0x0f,0xeb,0x1a,0x7c,0x23,0x69,0x14,0x9d,0x72,0x5d,0xb9,0xf7,0x64,0x7e,0x93,0xb7,0x3d, + 0x50,0x45,0x25,0x07,0xd5,0xa4,0x2a,0x88,0x16,0x74,0x8b,0xac,0x87,0x41,0xbb,0xc9,0xc9,0xda,0x0c,0x59, + 0x0b,0x9f,0x42,0xb9,0xa7,0x67,0x3f,0x65,0xc2,0x7a,0x82,0x29,0x75,0xca,0x39,0x28,0x02,0xf9,0x90,0x94, + 0xc7,0xea,0xec,0xc4,0x59,0x44,0x56,0x99,0xdb,0x58,0xda,0xe1,0xc4,0x34,0xed,0xa5,0xa6,0x65,0xdd,0x20, + 0xba,0xa6,0x41,0x85,0xa2,0x12,0xf0,0xa3,0x94,0x83,0xee,0x87,0xb2,0x5c,0x24,0xba,0x62,0x07,0x98,0xae, + 0xef,0x04,0x68,0x35,0x29,0xde,0x49,0x9a,0x8a,0x24,0xf2,0x56,0x52,0x94,0x1c,0x5c,0x2d,0x8f,0xb8,0x2f, + 0xcf,0xd8,0xb8,0xf4,0x53,0xb3,0x47,0xc8,0xf4,0xe5,0x55,0xba,0x4b,0x1d,0x9d,0xb2,0x5b,0x31,0xe4,0xd1, + 0x0b,0x6a,0xfa,0x1d,0x00,0x77,0xbc,0x61,0x7b,0xe7,0x66,0xc1,0xcb,0x14,0xa0,0xf9,0xac,0xcb,0x75,0x9c, + 0x3e,0xf6,0xef,0x39,0xd3,0x45,0xa9,0x9e,0xf5,0x5d,0x31,0xd6,0x60,0x3d,0xd0,0xe2,0x80,0xcc,0x5b,0x47, + 0xe2,0x10,0x0b,0xff,0x21,0x4c,0x85,0x09,0xec,0xfb,0x03,0xa6,0x21,0x79,0x65,0xd5,0x43,0x86,0x84,0x59, + 0xe2,0xa7,0xde,0xf1,0xff,0xce,0xa7,0x47,0xcb,0x9e,0xb0,0x27,0x3c,0xec,0x84,0x55,0x94,0xaa,0x5a,0xe5, + 0xdb,0xa4,0x0a,0xf7,0xa2,0x0f,0xdf,0xb5,0x1b,0x88,0x8c,0x67,0x64,0x7b,0x89,0xdf,0x94,0xd7,0x2d,0x33, + 0x27,0x5c,0x19,0x96,0xbb,0x73,0x59,0xfc,0x9d,0x52,0x64,0x44,0x74,0x13,0x8d,0x46,0xcb,0xc8,0xd0,0xff, + 0x15,0x3f,0x46,0xa6,0x98,0x45,0x3c,0xcc,0xb5,0x25,0x8f,0x5c,0x00,0x3e,0xd0,0xe0,0x86,0xd1,0x4f,0x3c, + 0xa1,0xed,0x67,0xfb,0xf8,0x0c,0xec,0x5e,0xf1,0x9f,0x28,0x9e,0x4f,0xf4,0x21,0x1e,0x31,0x18,0xe9,0x62, + 0xa1,0x22,0x6c,0xe0,0x81,0xce,0x42,0xc0,0x2c,0xdc,0x0c,0x9f,0xa6,0x15,0x3f,0x7c,0x8c,0x26,0xe7,0xcf, + 0xca,0xec,0x41,0xe3,0xbf,0xc1,0x6a,0x51,0x76,0xbb,0x47,0xf5,0x5a,0x20,0x49,0x9c,0xd9,0xad,0x2f,0x77, + 0x6a,0xdb,0xed,0xc6,0x40,0xe3,0x3f,0xc6,0xf6,0xd9,0x2d,0x2d,0x32,0xf6,0xc5,0xad,0xf5,0x7c,0xb7,0x5f, + 0xc0,0x71,0xac,0xcb,0xc8,0xf6,0x0d,0x22,0x58,0x21,0xeb,0x16,0x96,0x15,0x01,0x91,0x5d,0xa4,0x13,0xe1, + 0xa2,0x21,0x8e,0x1d,0x8a,0xa2,0x7c,0x95,0x43,0x0c,0x84,0xf5,0x6e,0x7f,0x30,0x70,0xc9,0x3c,0x4d,0xc1, + 0x62,0x9d,0x9c,0xaa,0x77,0xef,0x0b,0x36,0xfa,0xa0,0xbd,0x2c,0xe1,0x21,0x79,0xd7,0xa8,0xc3,0x48,0x1d, + 0xed,0xd6,0x7d,0x70,0xe0,0x1e,0x54,0x39,0x12,0x7f,0x01,0x0b,0x0f,0x75,0xa7,0xf8,0x84,0x5a,0x57,0xc8, + 0x04,0x1d,0x47,0x84,0x3c,0x07,0xf6,0xfa,0xf2,0xbe,0x34,0x31,0x0d,0x26,0x31,0x6b,0x30,0xae,0x4d,0x57, + 0x0c,0x2e,0x73,0xa6,0x00,0xab,0xcf,0x67,0xbd,0x30,0x9a,0xa4,0xa3,0x5d,0x0b,0x4f,0x64,0x02,0xe4,0x22, + 0x3b,0xe0,0x95,0xbb,0x27,0xb5,0x48,0xa2,0xd9,0x05,0x28,0x4a,0xbf,0x62,0x1d,0x55,0xe2,0x18,0xfb,0x81, + 0x61,0x65,0x7b,0x07,0x54,0x92,0x86,0xa2,0x97,0xe1,0xcb,0x0f,0x41,0xac,0xf4,0x39,0xb7,0x96,0xe5,0x87, + 0xe8,0x14,0xec,0x82,0xa5,0xfe,0x23,0xd0,0x1d,0xe4,0x20,0x93,0xbd,0x86,0x65,0xd5,0xe7,0xd5,0xf4,0xb0, + 0x0a,0xf0,0x05,0xa2,0x77,0xb9,0x93,0xd4,0x83,0xbf,0xad,0x6c,0xb8,0x4f,0xa8,0x9e,0xa7,0x74,0xe8,0xc2, + 0xe1,0xa1,0x9f,0x54,0x50,0xd9,0x3f,0x01,0x37,0x72,0xff,0x2d,0xcc,0xd1,0x90,0x75,0x51,0xf4,0x4b,0xbc, + 0xed,0x63,0x84,0x0c,0xf2,0x90,0xdd,0x67,0xdb,0x86,0xfc,0x0d,0x44,0xd0,0x18,0xeb,0x56,0x6d,0xfa,0x6f, + 0x39,0xfb,0xdf,0x2c,0x63,0x30,0x62,0xdf,0x32,0x72,0x46,0x7f,0x2f,0x95,0xf3,0xd8,0xf6,0x1b,0x17,0x59, + 0x01,0x57,0x53,0xe5,0xbe,0x3c,0xd6,0x5c,0x54,0x81,0x5e,0xcd,0x49,0x4c,0xe7,0x13,0x45,0xbc,0x15,0x8f, + 0xf4,0x0b,0x33,0x07,0xaf,0x8a,0x9b,0x2b,0x9f,0x12,0x4a,0x60,0x72,0x4f,0xa7,0x63,0x36,0x93,0x84,0xf9, + 0x51,0xf8,0xc3,0x1b,0xf2,0xbd,0x44,0xf9,0x5c,0xa7,0x51,0x31,0x58,0xbc,0x3e,0x86,0xc6,0xdd,0x11,0x62, + 0x1e,0xa2,0xbd,0xaa,0xb3,0xa3,0xb7,0xe8,0x86,0x03,0xae,0x57,0xde,0xf1,0xb5,0xa3,0xad,0x6b,0xc0,0x7b, + 0x39,0xad,0xc4,0x86,0xe7,0xaf,0x39,0xee,0x39,0x09,0x7d,0x98,0x61,0x14,0x20,0x6d,0x9a,0x57,0xee,0xb5, + 0xaa,0x7a,0xe1,0x8b,0x28,0x76,0x2b,0x34,0xb0,0xd4,0x3e,0x8e,0xf0,0x28,0x28,0xf5,0xaa,0x2f,0x03,0x13, + 0x6d,0x1f,0xa8,0x91,0x33,0x5b,0xdf,0x75,0xc2,0xee,0x73,0x45,0x70,0x6a,0xb3,0x3c,0xbe,0xd2,0x0e,0xba, + 0x89,0x3a,0xbd,0x5f,0x0c,0xe9,0x9a,0x9f,0x47,0x05,0x11,0x31,0x48,0x73,0x2e,0x9b,0x19,0x38,0x9f,0xb8, + 0x87,0xb6,0x4d,0x6b,0xeb,0xc9,0x06,0x48,0xa8,0x2b,0xca,0xb8,0x93,0x61,0x49,0x3e,0x8d,0xa8,0x65,0x41, + 0x1f,0x15,0xf1,0x60,0x68,0x18,0x1a,0xd0,0xe9,0x6c,0x7b,0x19,0xb3,0x96,0x27,0x26,0xc2,0xf4,0xe3,0x4b, + 0xf0,0x70,0xfb,0x85,0xf6,0xa9,0x4e,0x1a,0x3d,0x0d,0x84,0x09,0x4f,0x4f,0x32,0x4f,0xa0,0x30,0xb0,0x0c, + 0x85,0xa6,0xfa,0xfa,0x81,0x2f,0x98,0x03,0x1c,0xb0,0x0a,0x11,0x30,0xb4,0xde,0xb0,0xd0,0x25,0x92,0x79, + 0x86,0xba,0xec,0xff,0xc8,0xb0,0xea,0x63,0x07,0x28,0x96,0x00,0xc0,0x9d,0xd0,0x5f,0x27,0x84,0x97,0xa9, + 0x0f,0x69,0xf5,0x80,0x2b,0x65,0xd1,0x82,0xd4,0xe6,0x85,0xb5,0x80,0x84,0x49,0x27,0x29,0x89,0xa7,0x2b, + 0xc3,0x31,0x7a,0x7b,0xe2,0xb3,0x3a,0x1a,0x3f,0xc3,0x52,0x06,0x5c,0x98,0xf1,0x9f,0x38,0x52,0x1f,0x4a, + 0x80,0x35,0xbe,0x30,0x34,0xce,0x37,0xcb,0x69,0x2c,0x92,0x7b,0xbc,0xc2,0xa4,0x05,0x64,0x82,0xc7,0xb3, + 0x93,0xac,0xf7,0x63,0x4e,0x7a,0x53,0x73,0xe9,0x86,0x2d,0x07,0x85,0xbb,0x23,0x59,0xe0,0xab,0x7d,0xa2, + 0x88,0x9a,0x4f,0xee,0xd2,0x5d,0x87,0x54,0x51,0x83,0x9a,0xc3,0x6d,0x49,0x83,0xb4,0xac,0x07,0x37,0xc8, + 0x6f,0xae,0xfb,0x86,0x85,0xf7,0x83,0xe4,0xe9,0xaa,0xe1,0x4d,0x60,0x9b,0x2a,0xf2,0x67,0x4a,0xba,0xf8, + 0xb7,0x55,0xf6,0x8e,0x43,0x34,0x82,0xeb,0xda,0x1c,0xbb,0x37,0xda,0x8c,0x04,0xb4,0x12,0x17,0x57,0x17, + 0x30,0x74,0x50,0x01,0x88,0x34,0x5f,0x08,0x54,0x05,0xa0,0x11,0x6d,0xcc,0xeb,0xe5,0x70,0x5b,0x29,0x3c, + 0x04,0xde,0xd3,0xaa,0x85,0x9d,0x55,0xcb,0x57,0x15,0xbc,0xa0,0xa1,0x0d,0x0f,0x92,0xb3,0x5c,0xaa,0x48, + 0x41,0x88,0xf1,0xf2,0x05,0x0d,0x22,0x7c,0x88,0x62,0x91,0x33,0x71,0x50,0x7d,0x23,0xa8,0xfa,0xc9,0xbc, + 0x99,0x2d,0xe1,0x32,0x3f,0x14,0x40,0xfd,0x7d,0xe9,0x89,0x50,0x94,0x2c,0x97,0xcf,0xa3,0xdd,0x0c,0x0f, + 0xf0,0xe0,0x33,0x0c,0x2b,0x89,0x05,0x2c,0x0b,0xd1,0x29,0x4c,0xe2,0x31,0xd4,0xe9,0xa3,0xfb,0xa6,0x9a, + 0xd7,0x46,0x23,0xfd,0xd0,0x35,0x84,0x07,0xae,0x38,0x90,0xcf,0xd4,0xbd,0x31,0x3a,0x99,0xd4,0x51,0x93, + 0x85,0xbc,0x87,0x73,0xff,0xb1,0x63,0x19,0x4d,0x68,0x0d,0xa6,0xf3,0xab,0x38,0x1a,0x60,0x0a,0x19,0x33, + 0xa7,0xdf,0x60,0xbb,0x87,0xb5,0x86,0x94,0x98,0x97,0x40,0x86,0x1f,0xe6,0x70,0x2b,0xb1,0x8f,0x1a,0x2c, + 0xda,0x52,0x11,0xf9,0x31,0xc0,0x18,0x1c,0x7e,0x40,0xaa,0x29,0xbe,0x16,0xa0,0xcd,0x70,0xff,0xe7,0xa4, + 0x37,0xbe,0x92,0x4e,0x1e,0xca,0xea,0xf8,0xca,0x79,0x1c,0xdc,0xd0,0x99,0x35,0x1d,0x60,0xd8,0x8d,0x4b, + 0x78,0x31,0xdc,0x12,0xe6,0xa5,0xd7,0x41,0x5a,0x77,0xa7,0x27,0xe8,0x69,0xf3,0x30,0x26,0x7b,0x29,0x70, + 0xb5,0xe7,0x3c,0x7c,0xb1,0x84,0x93,0x80,0xa6,0x8a,0xe0,0xba,0x0c,0x50,0x86,0xd1,0xa5,0xa4,0xb8,0x7f, + 0x42,0x8b,0xc3,0x07,0xbc,0x1a,0xa3,0x61,0xd0,0x63,0x58,0xd3,0xe0,0x41,0x11,0xeb,0x1f,0xf0,0x52,0xa5, + 0x67,0x0a,0x80,0x60,0x73,0x7c,0x94,0x47,0xef,0x19,0x20,0x9c,0x26,0xc8,0xb3,0x28,0x38,0xaa,0xe1,0xcf, + 0x18,0x86,0x95,0x59,0xd6,0xbb,0xe2,0x4f,0x19,0x30,0xaf,0x79,0x7d,0x80,0xd6,0x73,0x3b,0x43,0xf8,0xe5, + 0x28,0x0f,0xe1,0x41,0x02,0x21,0x3e,0xfb,0x77,0x98,0x00,0x36,0xa7,0x65,0x4d,0xb5,0x7f,0x73,0xfc,0x15, + 0x75,0x93,0x6e,0xce,0x1c,0xf7,0x3d,0x8d,0x5e,0xf2,0xd7,0xc1,0x69,0x14,0x71,0x62,0x57,0x0d,0xc0,0x76, + 0x28,0x43,0xf6,0x7d,0x31,0xc8,0x1b,0xf9,0x7a,0x27,0xbb,0xaa,0x15,0x8f,0xad,0x82,0x1b,0xde,0x45,0x17, + 0x5a,0xb1,0x0b,0x48,0xc5,0x50,0x26,0x86,0x83,0x35,0x5b,0xa8,0x53,0x61,0xeb,0x07,0x05,0xe5,0x87,0xe9, + 0xe4,0x6b,0xf3,0xe5,0x71,0x40,0x43,0xf7,0x52,0xfa,0xe2,0x3c,0x9e,0x21,0x16,0x97,0x9a,0x35,0x7c,0x89, + 0x75,0x53,0x34,0x78,0xb1,0x4e,0x69,0x59,0x6d,0x99,0x8e,0xfc,0x13,0x19,0x46,0x74,0x7d,0xa9,0x65,0x6c, + 0x2a,0x76,0x45,0x2b,0x55,0xad,0x7b,0x37,0x18,0x0d,0x78,0xdf,0xee,0xdc,0x3d,0x4a,0xe7,0x5f,0xbd,0x49, + 0x93,0x5c,0xbf,0xcc,0x30,0x90,0xe4,0x71,0x74,0x85,0x21,0x1d,0xbb,0x3e,0xbc,0x2a,0x6c,0x74,0xac,0x6b, + 0xf3,0x70,0xba,0xf5,0xf2,0x24,0xc8,0x34,0x1c,0xf8,0x34,0xed,0xfb,0xc8,0x4f,0x49,0xf8,0x77,0x12,0x4d, + 0x5d,0xa9,0x95,0x93,0x77,0xcc,0x22,0xb1,0x67,0xcb,0x68,0x89,0xed,0x75,0x72,0xd9,0x96,0x3b,0xda,0x1b, + 0x8a,0x45,0x42,0xdb,0xd1,0xc4,0x29,0x54,0x69,0xfa,0xf7,0x1c,0xae,0xc4,0xc3,0x84,0xce,0xe0,0xda,0xb6, + 0x79,0x1b,0x54,0x46,0xe6,0xe4,0x74,0x03,0xf1,0x35,0xdc,0x1e,0x81,0xea,0x2d,0x29,0x8d,0x12,0x0c,0xe3, + 0xd5,0x80,0xf4,0x9c,0x3c,0xb9,0x85,0x96,0x86,0xa7,0x62,0x3d,0x2f,0xa8,0x9e,0x82,0xc6,0xf6,0xce,0xd0, + 0x65,0xc8,0x51,0xff,0x83,0x08,0xe7,0x44,0x94,0x2e,0x8e,0x76,0x14,0x03,0xe6,0x4e,0xe1,0x0a,0xa6,0xbe, + 0x33,0xe0,0xa1,0x84,0x12,0x60,0x84,0x00,0x40,0xb3,0xa0,0xe3,0xbe,0x69,0xb8,0x46,0x17,0x3c,0xd9,0xb5, + 0x9b,0xc6,0x65,0xf3,0x11,0x94,0xd4,0x75,0xba,0xba,0x70,0x08,0x78,0x01,0xd3,0xb7,0xf4,0xed,0xc8,0xe9, + 0x1b,0x05,0xf1,0xb2,0x9c,0x9e,0x1e,0xf4,0x0e,0xb0,0x20,0xe1,0x96,0xcc,0x1b,0x54,0x32,0x98,0x91,0x72, + 0xb7,0xe5,0xad,0x86,0x42,0x0b,0x3b,0xa4,0x4e,0x58,0xbe,0x33,0x19,0x1b,0x26,0x0f,0x89,0xf4,0x48,0x89, + 0x6d,0xd5,0x06,0x5e,0xbb,0x18,0x0d,0x04,0x42,0x44,0x35,0x08,0x53,0xd4,0x4c,0x4c,0x5c,0xbb,0xdf,0x00, + 0x0e,0xa7,0x17,0xd8,0xb5,0x3b,0xf4,0xf5,0x57,0x0d,0xf0,0x78,0x4b,0x07,0xdb,0x89,0x4f,0x2a,0xb6,0x69, + 0x60,0x93,0x79,0x51,0xd7,0x70,0x50,0x3a,0x17,0x41,0x9f,0x04,0x10,0x11,0xf5,0x7f,0x1d,0x70,0x54,0xed, + 0xbe,0x63,0xe7,0xf8,0x0d,0x83,0x76,0xf8,0xda,0xed,0x72,0x72,0x8d,0xd0,0xbf,0xdb,0xd1,0xe4,0xd0,0x1d, + 0xa7,0xf9,0x2b,0xbb,0xf4,0x5c,0xda,0xb7,0xb3,0x53,0x5a,0xd3,0xfa,0x78,0x09,0x23,0x2c,0x4d,0x40,0x1a, + 0xff,0x6f,0x81,0xfa,0xa1,0xdc,0x76,0xb1,0xf4,0xc7,0xee,0xd4,0xf8,0xbd,0x20,0x04,0x26,0xa8,0x17,0x95, + 0xf8,0xf4,0xff,0xed,0x5d,0xde,0x38,0xf1,0x98,0x2a,0x44,0x81,0x12,0x02,0x50,0xf1,0xf0,0x15,0x06,0x86, + 0x43,0x3f,0x63,0xa6,0x78,0x48,0x44,0x90,0xc2,0x0f,0xc6,0x4f,0xbe,0xe4,0xbf,0x5f,0x3e,0x93,0x49,0x1c, + 0x4f,0x4e,0xa6,0xd1,0x3b,0xae,0xdc,0x8b,0xc7,0x94,0xd0,0x6f,0x74,0xbb,0x46,0x0e,0x90,0x7f,0xbf,0x00, + 0xf8,0xec,0xc0,0x1e,0x15,0xf2,0x51,0x55,0xf3,0xe8,0xd7,0x85,0x60,0x0a,0x05,0x8f,0xd2,0x1d,0x7d,0xad, + 0x74,0x5b,0x8f,0xdb,0xcc,0x3d,0x8d,0x8a,0x0e,0x0f,0x5e,0x25,0x10,0xc5,0xa8,0xff,0xb6,0x43,0x4f,0x48, + 0xcc,0x30,0xeb,0x77,0xb0,0xba,0x59,0xb9,0x41,0x98,0xbe,0x49,0xaf,0x1c,0xa4,0xc0,0x72,0xf5,0xd2,0xf0, + 0x6d,0xfd,0xad,0xe1,0x5d,0xc1,0x7d,0x27,0xf8,0x6f,0x97,0xcf,0x43,0x57,0x06,0x53,0x8d,0x2e,0x74,0x43, + 0xd2,0x0c,0x71,0xa5,0x85,0x22,0x13,0x51,0xb0,0x08,0x79,0x20,0x0c,0x1a,0x5f,0x32,0x67,0x67,0x30,0xb8, + 0xbd,0x71,0x9e,0xdc,0x76,0x6c,0x83,0x20,0xa2,0x79,0x72,0x89,0xcf,0x81,0xd6,0x66,0x91,0x3a,0xf3,0x5c, + 0x92,0x23,0x4c,0x90,0x20,0xfd,0x8c,0x5e,0x09,0x68,0x4c,0x63,0xe8,0x09,0x69,0xb8,0xa0,0xdf,0xdd,0x58, + 0x6a,0x9b,0xbb,0x5a,0x30,0xa1,0x24,0xa1,0x7c,0x49,0x43,0xcf,0xab,0x12,0x2e,0x26,0x8b,0x93,0xfa,0x60, + 0x49,0x44,0x28,0xcc,0x89,0x30,0x4c,0xe9,0xe1,0xe8,0xb9,0x90,0x61,0x96,0xad,0x0d,0xda,0x77,0xfc,0x9f, + 0x33,0x09,0x8f,0x1b,0x5e,0xe3,0xef,0x5f,0xb2,0xdd,0x6f,0xa0,0xd9,0xf7,0x0a,0xaa,0xbd,0xdd,0x7c,0xae, + 0x0a,0x62,0xd0,0x05,0xe5,0x00,0xcf,0xbe,0x47,0x4d,0x8a,0x99,0x82,0x2b,0x29,0xde,0x4c,0xb9,0x11,0xfd, + 0x86,0xab,0x20,0x9b,0x7d,0xdb,0x28,0x94,0x5b,0x30,0xc1,0x1b,0xde,0x69,0x1f,0xf7,0x7f,0x04,0x00,0x86, + 0x1a,0x74,0x33,0xc4,0x30,0x01,0x47,0xad,0x12,0x0e,0x5c,0xd5,0x6d,0xbb,0x68,0x74,0xa6,0x21,0x40,0xce, + 0x40,0xda,0x66,0x4b,0xbb,0x58,0xf2,0x37,0x2d,0xd4,0xd2,0x5d,0x95,0xba,0x47,0xc9,0x89,0x34,0x5d,0x89, + 0x29,0x92,0x5b,0x3b,0xbb,0xe1,0x31,0x5d,0x97,0xb7,0x55,0x74,0xe6,0x5a,0x91,0x01,0xa9,0xb6,0xe3,0x6d, + 0x03,0x39,0xda,0x8a,0x56,0x13,0x63,0xf0,0x43,0x91,0xee,0x82,0x86,0x1d,0xd2,0x17,0x0d,0xf8,0x82,0x7a, + 0x54,0x6d,0xcf,0x57,0x55,0xd3,0x4e,0x52,0xd3,0x4a,0x88,0x56,0x3f,0x09,0x98,0x65,0x64,0x45,0xb9,0xc1, + 0xf6,0xf4,0x0d,0x58,0xd6,0x6e,0x7e,0xa4,0xf6,0xe5,0xf6,0xb8,0x39,0x56,0x8f,0x83,0xb8,0xed,0xe6,0x6d, + 0x83,0x54,0xb9,0x7e,0xa1,0x75,0x56,0x89,0x87,0xb3,0x25,0x20,0x99,0x93,0x8c,0x49,0x7e,0x87,0x89,0x1c, + 0xfd,0x62,0x44,0xff,0x37,0x79,0x38,0x5a,0xf5,0x31,0xbe,0x4d,0xd3,0x6a,0x0e,0x65,0x36,0xe8,0x3a,0x9e, + 0x68,0x30,0x2f,0xe7,0x59,0xe2,0x14,0x4f,0xf0,0xce,0xd7,0x1e,0xa9,0x8a,0x1c,0xfb,0x2b,0x4e,0xfd,0xfe, + 0x77,0xf6,0xfc,0x9f,0x3d,0xec,0xa1,0xef,0xb2,0x07,0xef,0xfb,0xcf,0xfb,0x7e,0xf4,0x9d,0x87,0xef,0xe7, + 0xec,0xe1,0xfb,0xbf,0xc3,0xfe,0xfd,0x81,0x07,0xbf,0x87,0xb7,0xea,0xf7,0xf7,0xbf,0xf3,0xe3,0x3d,0x48, + 0xa6,0xaa,0xe1,0x95,0x02,0x29,0x2c,0xd4,0xad,0x39,0xae,0x2d,0xf3,0x69,0xff,0xef,0x67,0x47,0xc7,0x5a, + 0xae,0x8e,0x31,0x1b,0x14,0x0b,0xe7,0xe4,0xbc,0x42,0x47,0xb8,0x3c,0xf6,0xd7,0xe6,0x15,0xab,0xec,0x3f, + 0x50,0x03,0x18,0x71,0x55,0xf6,0x3d,0x57,0x88,0x3e,0x40,0xe5,0xce,0x3c,0xc0,0x34,0x7a,0x32,0xc9,0x20, + 0x7c,0x53,0xad,0x88,0x7b,0xe4,0xe8,0xa9,0xfd,0x8d,0x14,0x76,0x79,0xfb,0x1c,0x1e,0x7b,0x53,0x29,0x92, + 0xbe,0xce,0xec,0x6e,0x6f,0x11,0x07,0x3d,0xf1,0xea,0xc3,0x7f,0xe5,0xf8,0x7f,0x46,0x0d,0x9a,0x64,0x1e, + 0xf0,0x8b,0x7e,0xe1,0x42,0xcb,0xdd,0x51,0x8e,0x0c,0x4e,0xa6,0x28,0x2a,0xc3,0x27,0x59,0x37,0xc1,0x12, + 0xea,0xd5,0x43,0xde,0x98,0xa0,0x0e,0xd2,0x3b,0x1b,0xea,0x65,0x47,0x78,0x0a,0x13,0x77,0xc0,0xce,0x65, + 0x95,0x86,0x4b,0x7e,0x8f,0xcd,0x02,0x40,0xa9,0x39,0xf2,0x20,0xe3,0x28,0x6c,0x7b,0xca,0x8f,0xfa,0x01, + 0xd5,0xaa,0x85,0xf0,0x29,0xa3,0x26,0xdd,0x50,0xb4,0x99,0x08,0x40,0xf8,0xf7,0x1f,0x02,0x42,0x79,0x9e, + 0xb4,0x8b,0xbb,0x8c,0x59,0x97,0x35,0x88,0xfa,0x3b,0x9e,0x9c,0x5e,0x26,0x66,0x96,0x45,0x5a,0xc1,0x93, + 0x97,0x47,0x56,0xf9,0xee,0xa2,0xff,0xe7,0xaf,0xa0,0x66,0x37,0x25,0x47,0x49,0x15,0x94,0x53,0xc2,0x5c, + 0x6a,0xde,0xa0,0x91,0x77,0xa0,0xa6,0x88,0xc2,0x6f,0xb3,0xb9,0xc4,0xb2,0xf8,0x4b,0xf2,0x26,0x25,0x88, + 0x69,0x38,0xde,0x43,0xbb,0x3f,0xa1,0x66,0x7b,0x2a,0x56,0x46,0xdb,0x75,0x8d,0x9c,0x9f,0x64,0x79,0xed, + 0x6c,0xfa,0x03,0xc8,0x22,0x31,0x4b,0xf1,0x06,0xd2,0xde,0x05,0xff,0x1e,0xcc,0x75,0x43,0xd5,0x7d,0xcb, + 0x72,0xfa,0x0d,0xb0,0x51,0xf5,0x12,0xff,0xf4,0x98,0x86,0x25,0x6c,0x91,0xd1,0x15,0x73,0x71,0xf4,0x78, + 0xd3,0x50,0xe8,0x5f,0xaf,0xe4,0xe3,0xa7,0xcc,0x6d,0x12,0x31,0x1e,0x8a,0xd2,0xcf,0x94,0x34,0x27,0x6f, + 0xd8,0x7c,0x35,0xe9,0xfc,0x75,0x9b,0xda,0xde,0xc6,0x12,0xff,0xfa,0x0e,0x44,0xd0,0xeb,0xd1,0xec,0xdf, + 0x75,0xc1,0x44,0x14,0x72,0x70,0xff,0x3a,0x12,0x19,0xbb,0xb0,0x86,0x31,0x89,0x57,0x79,0x38,0x70,0x5f, + 0x37,0x9c,0x1d,0xe7,0xa3,0x7c,0x03,0xa7,0x15,0xaf,0x3c,0x71,0xfe,0x4d,0x9a,0x50,0x10,0xe8,0x08,0xe0, + 0x57,0x46,0x35,0x2d,0x29,0x84,0xca,0x95,0x1e,0x06,0x1f,0x41,0x58,0x83,0x61,0xce,0x61,0xda,0xd1,0x3a, + 0xab,0xcc,0xa0,0x68,0x05,0x82,0x0d,0xd9,0x24,0x3c,0xdc,0xa0,0x63,0xdd,0x2f,0x28,0x56,0xcd,0x64,0x3f, + 0x22,0x2f,0xf4,0x2a,0x3f,0x5d,0x76,0x87,0xf5,0x16,0x80,0x75,0xfd,0x3c,0x8c,0x2d,0x73,0xb9,0xe1,0xd1, + 0x65,0x89,0xc2,0x29,0xd8,0x1d,0xdd,0x77,0xe1,0x71,0xb3,0xb9,0x14,0xb1,0x48,0x18,0x7b,0xea,0x24,0x6e, + 0x88,0xeb,0xb3,0x2e,0x52,0x37,0xc4,0x54,0xc2,0xd7,0x5e,0x9f,0xc4,0x31,0x39,0x74,0x44,0x12,0x5d,0x74, + 0xc3,0xc1,0xaf,0x80,0x58,0xbe,0x5e,0xf4,0xb1,0x0d,0x19,0x96,0x44,0x5f,0x3f,0x49,0xfb,0x1e,0x7f,0xf7, + 0x68,0x78,0x66,0x5f,0xfb,0x4b,0x31,0xfd,0x3d,0x46,0xbe,0xa3,0xe4,0x0c,0x6b,0xf3,0xeb,0x5c,0x49,0xeb, + 0x72,0xd2,0x84,0x45,0x3f,0xe7,0x32,0xa8,0x07,0x99,0x86,0x0a,0x43,0xa1,0x4f,0xd8,0x61,0x53,0x21,0xad, + 0xbe,0x6b,0x6b,0xdc,0xdb,0x51,0x54,0xc7,0x42,0xbd,0xd0,0x57,0x7b,0xcb,0xfe,0x6f,0x42,0x04,0x44,0xe5, + 0xac,0xb2,0x0d,0x29,0x66,0x4b,0x1d,0x6d,0x5d,0x03,0x1e,0xfa,0xf1,0x58,0x34,0x1a,0x1e,0x2f,0xc6,0x63, + 0xbf,0x23,0x75,0x41,0xa2,0x9a,0x44,0x19,0x4c,0x08,0x03,0xad,0x49,0x26,0x80,0xab,0x88,0x01,0x7a,0x91, + 0xc4,0x75,0x4a,0xec,0xfa,0xf1,0x6f,0x16,0x81,0x51,0x18,0x38,0xab,0xee,0x60,0xb8,0x3b,0x25,0x22,0xeb, + 0xb2,0x1c,0xc7,0x24,0x65,0x8b,0x42,0x38,0x76,0x8e,0xe0,0xb9,0xb2,0xb8,0x61,0x2f,0x26,0x8c,0x1a,0x4e, + 0xf0,0x70,0x52,0x3f,0xa0,0x6d,0x0a,0x8a,0x21,0x0b,0x1a,0x42,0x33,0xb2,0x18,0xff,0x5a,0x26,0xdc,0x9a, + 0x98,0xda,0xe1,0x4c,0x1b,0x08,0x3b,0x35,0x0b,0xeb,0x25,0x2d,0x6f,0x0b,0xf3,0x2b,0x2b,0x08,0xb3,0x09, + 0x81,0xb7,0x21,0x73,0x47,0xe6,0xd3,0x70,0xd1,0x70,0xef,0x31,0x72,0x76,0xd2,0xfc,0x7f,0x4e,0x5a,0x77, + 0x84,0xc1,0xb9,0xbe,0x3b,0xa5,0x4a,0xde,0x2f,0xa4,0x97,0xc1,0x52,0x55,0xb4,0x74,0x10,0x67,0xdf,0x77, + 0xa4,0xe8,0xef,0x2d,0xb3,0xfb,0xdc,0x5c,0x9e,0x46,0xaa,0x30,0xb4,0x98,0xbe,0x5e,0x1e,0x05,0x64,0x48, + 0x91,0x75,0x85,0x67,0x15,0xa6,0x59,0x37,0x2e,0x4e,0xc0,0xb8,0x33,0x77,0xb1,0xf6,0xee,0x5d,0x4a,0x10, + 0x9a,0x1a,0xe5,0x50,0x48,0x59,0xe2,0x6b,0x25,0xd6,0x2f,0x20,0xf6,0xa5,0x44,0xc1,0xd0,0x7d,0x8f,0xed, + 0x0b,0xd1,0x3e,0xb4,0x72,0x52,0x2f,0x6c,0x7b,0x30,0x97,0x75,0x4c,0x91,0x1f,0x90,0xbc,0xd2,0xf0,0x7e, + 0x83,0x0c,0xbd,0xc2,0x6c,0xa5,0x88,0x4e,0x1d,0xd3,0x1c,0x56,0xa9,0xfa,0x3c,0x46,0xf7,0x80,0x2b,0xca, + 0x4b,0xae,0xdb,0x1b,0x36,0x2c,0x47,0x48,0x7e,0xba,0xc1,0x7a,0x07,0x6c,0x13,0x03,0x93,0xfd,0x88,0xda, + 0x19,0xc4,0x08,0x8f,0x48,0x61,0x3a,0x2e,0xb5,0x2b,0x1c,0x35,0x42,0x1f,0x96,0xab,0xcc,0x42,0xfd,0xdb, + 0x1a,0xa1,0xe4,0xac,0x4f,0x05,0x9e,0x15,0x12,0x97,0xf1,0x13,0xad,0x81,0xab,0xd5,0x22,0xd6,0x35,0xe0, + 0xc2,0x2d,0xf4,0x63,0x15,0x13,0x27,0xde,0x56,0x47,0x3e,0x46,0x59,0x83,0xf0,0xcf,0x44,0xa8,0xeb,0xb6, + 0x9f,0xfc,0xc4,0x3b,0x5b,0x0c,0x46,0xf9,0xae,0xea,0x91,0xdb,0x2b,0x17,0x14,0x92,0xb3,0x82,0xf0,0x48, + 0x69,0x59,0xa0,0x8e,0x04,0xc9,0xfc,0x20,0x4c,0xb7,0xdf,0xdd,0x3c,0x68,0x0d,0x1f,0xdb,0xf4,0x20,0x6b, + 0x78,0xac,0xf7,0xe3,0xaf,0xa3,0x24,0xd5,0xa6,0x51,0x9c,0xa5,0x7c,0xb8,0xe3,0xff,0xe6,0xf3,0xb2,0x7f, + 0x43,0xf4,0xf1,0x9d,0xa8,0x47,0xd3,0x9f,0x61,0x9b,0x55,0xc0,0x20,0xe8,0xcd,0x59,0x62,0x19,0x38,0xe1, + 0xa1,0x34,0x98,0x69,0xb8,0x7d,0x3c,0x22,0xc3,0x1c,0xb5,0xee,0xe3,0x2d,0xaa,0xe4,0x02,0xbc,0xd1,0x1d, + 0x34,0x45,0x5f,0x92,0x36,0xfa,0x90,0xb9,0x86,0x1d,0x1e,0x8b,0xd8,0x1e,0xaa,0xca,0x97,0xc3,0x28,0x69, + 0x1e,0x80,0xe7,0xe8,0x53,0x66,0xa2,0x28,0x50,0x40,0xc3,0x7a,0xab,0xcf,0xde,0x3e,0x57,0xd6,0x86,0x6f, + 0xac,0xa1,0x71,0x66,0xce,0xfa,0x85,0x61,0xe5,0x2e,0xf8,0x90,0xb6,0xf8,0x72,0x98,0x9a,0x50,0xec,0x04, + 0xb2,0x05,0x7f,0xa3,0x41,0xc4,0x29,0x39,0x16,0x9d,0x82,0xef,0x74,0x6e,0xd4,0x23,0x68,0x21,0x06,0x48, + 0xb2,0xe3,0x1c,0x5e,0xbe,0x0c,0x6f,0x68,0xe5,0x6f,0x90,0x45,0xcf,0x71,0x48,0xe9,0x84,0xaa,0x7a,0xf1, + 0xa3,0xca,0xe3,0xe3,0xfe,0x8e,0x1c,0x32,0xab,0xa0,0xd1,0xbd,0x83,0x02,0x1e,0x53,0x33,0xff,0xa3,0x4a, + 0xf1,0x4e,0x2e,0x74,0x8c,0x3f,0x8a,0xef,0xe0,0x34,0x8a,0xba,0xc3,0x2c,0x55,0xe0,0x57,0xda,0xe0,0x6d, + 0x1f,0xfb,0xfa,0x45,0x91,0x42,0xa5,0xe5,0xda,0xbc,0xfe,0x36,0xbb,0x73,0x03,0x1a,0xc2,0x75,0xa8,0x05, + 0x5f,0xaf,0x36,0xfe,0xfe,0xca,0x32,0xf0,0xba,0x5b,0x95,0x9c,0xdd,0x0c,0xde,0xb1,0xdf,0xa8,0x3b,0x9c, + 0xc2,0xa9,0x55,0xc0,0xf1,0xf1,0xf0,0xb0,0xa9,0x9a,0xba,0x21,0xc9,0x4d,0x0d,0x3a,0x33,0xfe,0x9f,0x39, + 0x35,0x0e,0xea,0x8e,0xb9,0x39,0x29,0xa6,0x7c,0x05,0x49,0xca,0xd2,0x75,0x89,0xa0,0x51,0xc0,0x21,0x98, + 0x73,0x6e,0x73,0xcc,0x48,0x3d,0x3d,0xa9,0x0c,0xc6,0x92,0xc1,0x76,0x8e,0x10,0xa9,0xe1,0xd1,0x69,0x37, + 0x04,0x05,0x8b,0xb8,0x62,0x43,0x7e,0x78,0xa3,0xdf,0xe3,0x1f,0x32,0x49,0x11,0x14,0xa6,0x0e,0x60,0x12, + 0x01,0x5c,0xf4,0xc3,0xe3,0x44,0xf0,0x1a,0x18,0x21,0x96,0xac,0x52,0xf1,0x78,0x02,0xc8,0xe6,0x79,0x14, + 0x86,0x4d,0x18,0x23,0xfc,0xa7,0xbf,0xe8,0x76,0xe1,0xf1,0xb3,0xbe,0xea,0xa2,0xf2,0xe8,0x05,0xca,0xb4, + 0x4d,0x29,0x54,0xdd,0x1f,0xb7,0xc6,0x28,0x6c,0x14,0x16,0x02,0xed,0x00,0x48,0xef,0x9e,0xde,0xa6,0x38, + 0xcc,0x1a,0x03,0x52,0xf8,0x69,0xfd,0x2c,0xb1,0xb7,0x79,0x58,0xbf,0xab,0x72,0x12,0xfd,0xf5,0xe1,0x85, + 0xa1,0x71,0xb8,0x8c,0x1e,0x07,0xe0,0x35,0x5c,0x6a,0xd8,0xf0,0xf8,0x68,0x72,0x4d,0x1e,0xaa,0x90,0x15, + 0x97,0xc7,0x46,0x33,0x6d,0x3f,0x1b,0x8a,0xfe,0xd5,0xd9,0xec,0xc7,0xbd,0xce,0x42,0x90,0xd6,0xcb,0xb4, + 0xf6,0x85,0x33,0x39,0xd0,0xdf,0xef,0x48,0xaa,0x84,0x68,0x35,0x6d,0x5a,0x20,0xbc,0x56,0x65,0x7b,0x72, + 0x30,0x96,0xeb,0x0e,0x86,0xc1,0x62,0x5c,0x37,0x97,0xf0,0x6b,0xfe,0xeb,0x89,0xb3,0x41,0xe2,0x21,0x7c, + 0x1e,0x79,0x57,0xbd,0x85,0xaf,0xe9,0xe9,0x94,0x85,0x8c,0xb2,0x9f,0xf8,0x1c,0x6a,0x73,0x3f,0xc2,0xa4, + 0x73,0xec,0xdc,0xae,0xdd,0x47,0x6a,0xd1,0x4d,0xd2,0xb0,0xc2,0xc8,0x12,0x85,0x48,0x77,0xa6,0x64,0x93, + 0x18,0xc6,0x04,0x94,0xec,0x30,0x3d,0xa0,0x2a,0x1a,0x32,0x0b,0x25,0x25,0xcc,0x68,0x69,0x7f,0xc7,0xdc, + 0xb5,0x68,0x09,0xd0,0xa7,0x19,0x78,0xf8,0x6b,0x84,0xb2,0x1d,0x5c,0x41,0xaf,0xc0,0x2d,0xb0,0x24,0x0c, + 0xdc,0xfd,0x3c,0x5a,0x3a,0x83,0xbf,0x67,0x32,0x60,0xa3,0x3b,0xa1,0xe1,0x58,0x18,0x59,0x26,0xaa,0xa8, + 0xf8,0xe1,0x85,0x0d,0xdb,0xa7,0xa0,0x17,0xe3,0x0b,0x43,0x84,0xf4,0xf0,0x20,0xa3,0xe5,0x2e,0xe0,0x42, + 0x80,0x3e,0xc2,0xdc,0x9d,0xe2,0xe7,0xbc,0x09,0x32,0xe1,0x45,0x7f,0xcd,0x71,0xe5,0x79,0xc4,0x30,0x8b, + 0x24,0x9f,0x85,0x95,0xf3,0x0d,0x29,0x45,0xbe,0x8b,0x66,0x4e,0x6b,0x00,0x8c,0x1e,0x0b,0x55,0x79,0x99, + 0x4d,0x39,0x90,0x80,0xc5,0x0f,0x71,0x5f,0xb1,0x1a,0x05,0x49,0x5a,0x63,0x4a,0x6b,0x4c,0xba,0x1f,0xcc, + 0x62,0x6b,0x12,0x10,0x27,0x43,0x3d,0x47,0xd1,0xf7,0xd7,0xe5,0xbe,0xf3,0xac,0xc7,0x32,0x4c,0x4c,0xe6, + 0xe3,0xf0,0x13,0xb9,0xdd,0x07,0x2b,0xcf,0x6d,0x37,0xc3,0xee,0x93,0xfe,0xfe,0xc5,0x67,0x26,0xb8,0x72, + 0x77,0xbd,0xce,0x24,0x82,0xb0,0xd3,0xba,0x9a,0xdf,0x88,0x95,0x79,0x67,0x2b,0x85,0xac,0x1f,0x89,0xac, + 0x80,0x96,0xf2,0xd9,0xfd,0x0e,0x66,0xf3,0x1e,0x45,0x64,0x76,0xb5,0x41,0xca,0x4e,0xf7,0xe0,0x75,0xc3, + 0x26,0xad,0xaa,0x48,0xa6,0x2d,0x39,0x2a,0x11,0x1d,0xaf,0x3e,0xd8,0x5b,0x99,0xba,0x92,0xbb,0x1e,0x2a, + 0xfd,0xab,0x56,0x25,0x9f,0x68,0x7c,0xaa,0x5e,0x7c,0x18,0x7d,0x69,0x48,0xe2,0x0a,0x68,0x29,0x61,0xed, + 0x15,0xfc,0x4b,0xf6,0xed,0x9c,0x59,0xa0,0x69,0x36,0x86,0xcc,0xce,0x6e,0x5d,0x1c,0x3d,0x96,0x69,0x4b, + 0x11,0x4e,0xe2,0x7a,0x25,0xad,0x01,0x55,0x62,0x40,0xbb,0x60,0x25,0xd6,0x3e,0xff,0x1f,0xdb,0x12,0x52, + 0xd6,0x37,0xaa,0x2a,0x4a,0x3e,0x69,0x15,0xdb,0x83,0x61,0xdb,0xc8,0x59,0x92,0x13,0xf3,0x5b,0x22,0xbe, + 0xd6,0x23,0xdc,0x5b,0x77,0x7f,0x0c,0xd5,0x57,0x6c,0xbb,0xa5,0x63,0xcb,0xeb,0x23,0xf3,0x87,0xd3,0x09, + 0xcf,0x04,0x4d,0xd3,0xcf,0x25,0x7f,0x6e,0x12,0xc9,0xac,0xd2,0xf7,0x30,0x71,0x7c,0x6c,0x76,0x2b,0x33, + 0x7a,0x8c,0xab,0x94,0xd3,0xbc,0x4f,0xb2,0xce,0xef,0xce,0x2d,0xc2,0xba,0x33,0xb5,0x8a,0x2b,0x27,0x46, + 0x54,0xb8,0x51,0xe4,0xb1,0x2b,0x02,0x37,0xf1,0x90,0x87,0x1b,0xe4,0x0e,0xe4,0x5f,0xeb,0x13,0x9e,0x13, + 0x71,0x78,0x6b,0x29,0xa9,0x00,0xd5,0x0a,0xab,0x6c,0xc0,0xee,0x82,0xf4,0x15,0x7b,0xa9,0xd3,0xe7,0x56, + 0x93,0x5f,0x38,0x45,0xdb,0x7f,0xac,0x44,0xed,0x56,0x60,0x6f,0x87,0x4b,0x67,0x74,0x1b,0x95,0x5a,0xd8, + 0x12,0x20,0x90,0x13,0x3c,0x18,0x06,0xc2,0xb2,0x6f,0x52,0xfc,0x84,0xb9,0xf0,0x74,0x65,0x78,0x7e,0xc3, + 0x0e,0xf1,0x2e,0x15,0x93,0xa3,0xef,0xad,0x14,0x74,0x0a,0x9e,0x95,0x55,0x0a,0x9e,0x40,0x15,0x41,0x20, + 0x23,0x20,0xfc,0xc8,0xc2,0xfc,0x5f,0xab,0xe3,0xac,0x0b,0x98,0xa1,0x58,0x22,0xda,0x64,0xe1,0xaf,0xc4, + 0xc3,0x8a,0xa3,0x35,0xff,0x8f,0xdc,0x7f,0xbf,0x7c,0x06,0xfd,0x93,0x7a,0x15,0x5c,0x1e,0x7e,0x1e,0x09, + 0xb2,0x8d,0x94,0xf5,0x6b,0x02,0x35,0xfa,0xfb,0x97,0x80,0xd5,0xd7,0x25,0x50,0x93,0xc4,0x59,0x99,0x3d, + 0x9c,0xeb,0x12,0x6e,0xce,0x90,0x34,0x70,0x7e,0xff,0xd2,0x38,0x53,0xd4,0x55,0x0f,0x25,0x9e,0xc4,0xad, + 0x55,0x29,0xec,0x41,0xe2,0x5c,0xb6,0x21,0x2c,0x68,0x1c,0xfc,0x85,0x6c,0x35,0x2c,0x8c,0x74,0xc4,0xdd, + 0x5f,0xb7,0x65,0x99,0xfd,0xa7,0xe8,0x12,0x26,0x3d,0x6e,0x53,0xe6,0x65,0xca,0x66,0x3a,0x43,0x13,0xd3, + 0xba,0x90,0x1e,0x68,0xcf,0x7f,0x84,0x3c,0xc8,0x54,0x85,0x15,0x80,0x06,0xba,0xea,0x16,0x4e,0xb1,0xac, + 0x93,0xa7,0x91,0x16,0xa8,0x0f,0xdb,0x19,0x2c,0xcd,0x6b,0x3d,0x27,0x11,0x0b,0xc3,0xcb,0xc0,0x4b,0xc3, + 0x4b,0x98,0x18,0x48,0x09,0xa2,0x8d,0x5f,0xf3,0xca,0x26,0x95,0xfe,0xc5,0xcf,0x2f,0xfc,0xee,0x24,0x1f, + 0xd5,0x85,0x72,0xc7,0x5f,0x45,0x96,0xd5,0x10,0x46,0x10,0xb6,0x63,0xf5,0x3e,0xed,0xd2,0xb7,0xc0,0x50, + 0x40,0xd4,0x6c,0x3e,0x1c,0xa0,0xad,0x94,0x3e,0x8c,0x18,0x9a,0xb6,0x93,0xbc,0x50,0x09,0x7e,0xd0,0x41, + 0xb2,0xee,0x17,0xc9,0x72,0xe8,0x49,0xd4,0xb6,0xf0,0x20,0x23,0x5c,0xf2,0x40,0xd5,0x4b,0x59,0x7b,0xc6, + 0xc3,0x60,0x84,0xca,0xcc,0x5c,0x47,0x0e,0x76,0xa7,0xf2,0x73,0x79,0x1f,0x0f,0xdf,0xf4,0x0b,0xe7,0x71, + 0x76,0x03,0x58,0x05,0x69,0xeb,0x1a,0x83,0xcb,0xd5,0x69,0xff,0x85,0xb2,0x8a,0x45,0xa6,0x8d,0xee,0x73, + 0x7d,0x9f,0x62,0x36,0x43,0xd1,0xcb,0x4a,0x00,0xb5,0x4b,0xd5,0x84,0x98,0x99,0x17,0x13,0xc6,0x10,0x63, + 0x38,0xc0,0x75,0xbc,0x06,0xae,0x0c,0xba,0x44,0xc0,0xc1,0xfb,0xb3,0x38,0x56,0xcf,0xa4,0x97,0xc0,0xd9, + 0x40,0x09,0x6d,0x03,0x6d,0xf2,0x75,0x1e,0x92,0xf2,0x16,0x83,0x2f,0xdd,0x52,0x59,0x57,0x71,0xf1,0xd3, + 0x56,0x3f,0x56,0x25,0xda,0xe0,0x79,0x96,0x50,0x5e,0x63,0x1f,0xbc,0x9b,0x67,0xdd,0x86,0x3b,0x85,0x0f, + 0x1f,0xf3,0xb9,0xd3,0x2a,0x99,0x29,0x83,0xcd,0x0e,0x74,0xe5,0x3c,0x49,0x43,0xe6,0xeb,0x9c,0x7c,0xef, + 0x21,0xda,0xab,0x62,0xa0,0x74,0x5e,0x7a,0x09,0x78,0xea,0x17,0xae,0x79,0xe7,0xee,0x28,0x1b,0x80,0xcd, + 0x06,0x3e,0x80,0x16,0x93,0x8b,0x96,0x24,0x9d,0x3b,0xab,0x56,0x86,0xff,0x54,0xb3,0xeb,0xce,0x32,0x72, + 0x90,0x0c,0x63,0xa2,0xd2,0x08,0x59,0xd9,0x57,0x0b,0x8e,0x60,0xba,0xfd,0x14,0xe4,0x23,0x49,0x2c,0x82, + 0xaf,0x03,0x80,0x32,0x78,0x1d,0xf7,0x32,0x71,0x2d,0x75,0x7a,0x44,0xe7,0x68,0x17,0x36,0x53,0x67,0x61, + 0xa0,0xdb,0x2b,0xfc,0x1b,0xdd,0x5d,0xb0,0x1e,0x02,0x5f,0xed,0x1d,0xfb,0x0e,0x20,0x14,0x21,0x71,0x60, + 0x11,0xae,0x9c,0x5f,0x5f,0x29,0x70,0x65,0x84,0xa0,0x30,0x72,0xed,0xa6,0x2f,0xdf,0x02,0x9b,0x09,0x91, + 0xff,0x44,0x7a,0x75,0x23,0x7f,0xc8,0xc2,0x83,0xa4,0x66,0x50,0x3f,0xc4,0x60,0xc1,0x9c,0xfe,0x6b,0x80, + 0x2e,0xa6,0x0a,0x97,0xa6,0x7a,0xe7,0xee,0x19,0x5c,0x40,0xe7,0x86,0x28,0x1e,0x26,0x10,0x38,0xbe,0xff, + 0x4f,0xfe,0xda,0x32,0x6c,0x86,0xfa,0x56,0x88,0x78,0x9f,0x18,0x04,0x9d,0xa2,0x74,0xe7,0x64,0xed,0x4d, + 0x5f,0x29,0x6c,0xf3,0x83,0xe2,0xe8,0xd8,0xef,0x23,0x74,0x4c,0x83,0x5a,0x36,0xbe,0xa0,0x28,0x97,0x9d, + 0x72,0x2e,0x1d,0xd5,0x0b,0xe4,0x90,0xb0,0xc1,0xb8,0x5a,0x5e,0xf1,0xd1,0xa1,0x94,0x1c,0xc3,0x0f,0xf5, + 0x83,0xaf,0xdb,0x65,0xe8,0x25,0xdb,0xe8,0xe5,0x6b,0xc1,0x53,0x13,0x50,0xd9,0xae,0xf8,0x25,0x40,0x00, + 0xa5,0x4c,0xe5,0x4b,0xfe,0xfe,0x44,0xa0,0xa7,0xdf,0xee,0x08,0x66,0x8a,0xf5,0xe1,0x46,0x77,0xb7,0xc8, + 0x12,0xe1,0x9f,0x0e,0x32,0xad,0x15,0xdf,0x15,0xc2,0x5c,0x42,0x86,0xf2,0x5d,0x32,0x29,0xfb,0xd2,0x73, + 0x0d,0xd2,0x59,0x8e,0x6d,0x7e,0xf0,0x2f,0x4e,0xfa,0xff,0x74,0xc0,0xc3,0x98,0x92,0x4b,0x1f,0x8a,0xfe, + 0xd4,0x7a,0x12,0x87,0xaf,0xb6,0xbd,0xcd,0x06,0x4e,0x79,0x79,0x0c,0x39,0x05,0xda,0x09,0xf3,0x60,0xac, + 0x98,0x5e,0x6b,0x33,0x91,0x97,0x9d,0xab,0x5b,0x27,0xbe,0xcd,0x83,0x19,0xa5,0x7d,0x74,0x7b,0x67,0xd8, + 0xd5,0x7b,0xbc,0x1b,0x6d,0x5d,0x5e,0xf9,0xd6,0xf6,0x03,0x47,0x7a,0xbf,0xb0,0x0a,0xf5,0x5f,0x07,0xfc, + 0x62,0x70,0x3e,0x00,0xfc,0x07,0xa8,0x3c,0x85,0xe2,0x81,0x4b,0xc4,0x9a,0x04,0xb5,0x45,0x3c,0x24,0xc0, + 0x0f,0xdb,0x03,0x3d,0xca,0x30,0x02,0x9f,0x60,0x81,0x81,0x3f,0x71,0x00,0x81,0xf4,0x30,0x92,0xb3,0xbd, + 0xe7,0xd4,0x7c,0xc1,0x24,0x4c,0xa4,0xef,0x88,0xb6,0x13,0x84,0x8a,0xd5,0x15,0x82,0xb3,0x01,0xd1,0x4e, + 0x65,0x24,0xba,0x86,0xa0,0x40,0x59,0xc5,0xe0,0x0e,0xcf,0xe6,0xba,0x89,0xe1,0xbf,0xf2,0x19,0x03,0x61, + 0x84,0xa0,0x35,0x89,0x48,0xc4,0x97,0x40,0x4a,0x1c,0x17,0x9f,0xce,0x64,0x58,0x8b,0x66,0x24,0xce,0x83, + 0xfa,0x3b,0x83,0x13,0x34,0x59,0x50,0x13,0x8a,0xfb,0xc1,0x80,0x06,0x07,0x7e,0xbc,0x71,0xfd,0x51,0x75, + 0x77,0x2a,0xbe,0x31,0x3f,0x91,0x51,0xfe,0x66,0xe5,0xc2,0x29,0x66,0x09,0xc3,0x06,0x45,0x81,0x28,0x05, + 0x1f,0x94,0x1e,0x26,0x85,0xe2,0xa5,0xc2,0x0d,0x55,0x90,0x55,0x04,0x2b,0xb5,0x8f,0xa2,0x55,0xcf,0x35, + 0x0a,0xa8,0xf6,0xb6,0x1f,0x0a,0x94,0x2a,0xdf,0x50,0x02,0x66,0x28,0x1a,0x55,0x0b,0x3e,0x3b,0x3d,0xbe, + 0xd2,0xd9,0x9c,0x81,0x0f,0x74,0xd7,0xe1,0xb1,0xcc,0xb9,0x24,0xc1,0xa5,0x67,0x14,0x30,0x49,0x21,0x01, + 0xeb,0x27,0xf9,0x67,0xb5,0x62,0x14,0x74,0xb2,0xab,0x8f,0x92,0xa3,0xe4,0xcc,0x4d,0x98,0xd9,0x47,0x10, + 0xdf,0x40,0xf2,0x7b,0xfc,0x26,0xbb,0x2c,0x8e,0x5f,0xbf,0x44,0x81,0x31,0x73,0x18,0xc7,0x3f,0x11,0xde, + 0x28,0x81,0xf7,0xcd,0xa8,0x54,0x8c,0xd3,0xd7,0x7c,0xee,0xff,0xc5,0x49,0xfa,0x90,0x1a,0x6e,0xcc,0x3c, + 0x5c,0x8e,0xd4,0xb2,0x3c,0xad,0x26,0x23,0x32,0x88,0xa3,0x04,0xfd,0x46,0x30,0xc5,0x4c,0x71,0x92,0x0d, + 0xe6,0x3c,0x1b,0xb9,0xa9,0x31,0xcf,0x1d,0x10,0xa4,0x44,0x31,0x97,0xd2,0xf9,0xfc,0xc4,0x91,0xd1,0xf7, + 0xf8,0x11,0xf0,0x71,0xbf,0x70,0xe9,0xca,0xea,0x5f,0x79,0x3d,0x21,0xef,0xa2,0xa8,0xf8,0x9f,0x7f,0x48, + 0xe9,0x2d,0xf2,0x6d,0x18,0x2a,0xcc,0xc9,0x4f,0xfb,0x6a,0x72,0xcb,0xe2,0xa5,0xd5,0xbf,0x66,0xda,0xfe, + 0x2f, +}; +static const uint8_t readerWords[] = { + 0x1d,0x52,0x57,0xb2,0xa4,0x30,0x0c,0xf4,0x51,0x38,0xcb,0xe6,0x9c,0xe3,0xa7,0x06,0x04,0x68,0xc7,0x58, + 0x94,0xc3,0x52,0x73,0xfb,0xd7,0xad,0x0f,0x53,0x8a,0x2d,0x75,0x8b,0xa9,0xef,0x9a,0xa6,0x87,0x8f,0x34, + 0x49,0x59,0x12,0x5c,0xe9,0x69,0xda,0xed,0x48,0x53,0x13,0x63,0xc0,0x19,0xd4,0xaa,0xab,0x57,0x54,0xfa, + 0x8a,0xac,0xfc,0x87,0x75,0x59,0xce,0x69,0x7a,0xa7,0x6d,0xb4,0x34,0xbd,0x12,0xd6,0x20,0x85,0xc4,0xea, + 0x39,0xfb,0x85,0x82,0xdd,0x09,0xda,0x2e,0x34,0x03,0xa8,0xea,0xac,0x16,0x8d,0x5e,0xe1,0x5e,0x82,0x36, + 0x2b,0x69,0xba,0xe9,0x2c,0xa3,0x29,0xa7,0x18,0x42,0x07,0x2c,0x1a,0x74,0xcb,0xc6,0x1a,0xbc,0xb5,0xfa, + 0x41,0xe0,0x9a,0x62,0x5e,0x60,0x64,0x80,0xdc,0x8b,0x5f,0x44,0xc8,0xa6,0x81,0x6c,0x7d,0x87,0x3b,0x3a, + 0x87,0xdb,0x0c,0x7b,0x8b,0x89,0x6f,0xd3,0x34,0x0b,0x81,0x8b,0x77,0xf2,0x42,0xcf,0x21,0x0b,0x7c,0xa9, + 0x4a,0x0a,0x17,0x10,0xb3,0xb3,0x72,0xf6,0x98,0x2f,0x5c,0xe4,0x81,0x7c,0x6e,0xe4,0x70,0x73,0x42,0xbe, + 0xf6,0x85,0xb8,0xca,0x9e,0x7f,0x63,0xd9,0x0e,0x2d,0x88,0x1a,0x5e,0xa4,0x49,0x93,0xad,0x21,0xa2,0x93, + 0x50,0x8b,0x82,0x66,0x5b,0x01,0xb0,0xd6,0x2e,0x56,0x02,0xa0,0x84,0xcc,0xb4,0x7d,0x90,0x85,0x6c,0x91, + 0x39,0x18,0xca,0xb6,0x2a,0xcc,0x91,0xbb,0xf5,0xb1,0xd0,0x14,0xec,0xc1,0x71,0x1a,0x67,0x69,0x9a,0x57, + 0x50,0x84,0xf3,0x65,0x97,0x6a,0x4d,0x15,0xab,0x2e,0x0e,0x57,0x3b,0x0f,0xd0,0x95,0x57,0x59,0xad,0xb6, + 0x8e,0x32,0xb4,0xb6,0x53,0xe5,0x8e,0x19,0xd0,0x22,0xce,0x26,0xcc,0x8f,0x13,0xaf,0x64,0x6d,0x2d,0xfd, + 0xf5,0x91,0x7e,0xec,0x8a,0xb4,0x53,0x9f,0x8b,0x7a,0xd4,0xd1,0x24,0xeb,0x91,0x3e,0x78,0x0d,0x91,0x15, + 0xd1,0x2e,0x77,0x52,0x72,0x4c,0xb3,0x36,0xdb,0x99,0x03,0xab,0xaa,0x2c,0x18,0x52,0x21,0x3f,0x3a,0x16, + 0x26,0xf1,0x39,0xab,0x9f,0xbb,0x92,0xbb,0xf2,0x2a,0x78,0xdf,0xbd,0xc0,0x7b,0x14,0xd9,0x7c,0x1b,0xc4, + 0x21,0xab,0xe7,0x3b,0x08,0x74,0x40,0x1b,0x45,0xb7,0xd2,0x1d,0x89,0x58,0xc5,0x71,0xfa,0xc4,0xff,0xf1, + 0xcb,0x6e,0xd9,0x4e,0xf4,0xcf,0xd5,0xce,0x3e,0xa0,0xf0,0xea,0x60,0x49,0xae,0x45,0x32,0x07,0x1f,0xa1, + 0x5d,0x71,0xcc,0xa9,0xd6,0xbb,0x52,0x6b,0x2f,0x33,0xf2,0xc4,0x98,0xce,0x2c,0xb3,0x12,0xd6,0x43,0x6a, + 0x2d,0xa1,0xd2,0x8d,0x7b,0xa3,0x23,0x7e,0x76,0x2f,0x28,0x58,0x24,0xb4,0x72,0x92,0xf4,0x38,0x90,0x1e, + 0x40,0x92,0x4c,0x56,0x4f, +}; +static const StreamTokenCorpus readerCorpus = { + "WEB", + "World English Bible - public domain (eBible.org).", + readerData, sizeof(readerData), 50732, + readerWords, 425, 805, + 128, kVerseCount, 0 +}; +}}} diff --git a/src/helpers/ota/OtaCli.cpp b/src/helpers/ota/OtaCli.cpp index 40116eba8..8f8e889bf 100644 --- a/src/helpers/ota/OtaCli.cpp +++ b/src/helpers/ota/OtaCli.cpp @@ -19,6 +19,27 @@ namespace mesh { namespace ota { +// Read complete whitespace-delimited words, never truncated scanf fields. +// Three also denotes an overlong word, so callers reject the whole command. +static __attribute__((noinline)) int parse_two_words(const char* text, + char* first, size_t first_capacity, char* second, size_t second_capacity) { + int count = 0; + for (;;) { + while (*text == ' ' || (*text >= '\t' && *text <= '\r')) ++text; + if (!*text) return count; + if (count == 2) return 3; + char* word = count ? second : first; + const size_t capacity = count ? second_capacity : first_capacity; + size_t length = 0; + do { + if (length + 1 >= capacity) return 3; + word[length++] = *text++; + } while (*text && *text != ' ' && (*text < '\t' || *text > '\r')); + word[length] = 0; + ++count; + } +} + static bool parse_page(const char* s, uint16_t& page) { while (*s == ' ') s++; if (*s == 0) { page = 1; return true; } @@ -573,8 +594,8 @@ static __attribute__((noinline)) bool handle_control_command( if (c.apply_pending) { strcpy(reply, "ERR busy applying"); return true; } // Parse exact destination/options. Prefix matches used to accept typos such as "flashgarbage" and an // ignored third token, which is especially unsafe for the explicit no-EndF rescue acknowledgement. - char destination[8] = {0}, option[10] = {0}, extra[2] = {0}; - int parts = sscanf(dst, "%7s %9s %1s", destination, option, extra); + char destination[8] = {0}, option[10] = {0}; + int parts = parse_two_words(dst, destination, sizeof(destination), option, sizeof(option)); if (parts < 1 || parts > 2) { snprintf(reply, 160, "ERR %s", pull_usage); return true; @@ -1093,8 +1114,8 @@ static __attribute__((noinline)) bool handle_control_command( if (!is_cmd(rest, "install", &confirm)) { strcpy(reply, "ERR usage: ota bootloader install "); return true; } - char midtxt[9] = {0}, hashtxt[17] = {0}, extra[2] = {0}; - if (sscanf(confirm, "%8s %16s %1s", midtxt, hashtxt, extra) != 2) { + char midtxt[9] = {0}, hashtxt[17] = {0}; + if (parse_two_words(confirm, midtxt, sizeof(midtxt), hashtxt, sizeof(hashtxt)) != 2) { strcpy(reply, "ERR usage: ota bootloader install "); return true; } uint8_t operator_mid[4], operator_hash8[8]; diff --git a/test/fixtures/ota_folder_resume.cpp b/test/fixtures/ota_folder_resume.cpp index c0ba3ed9f..9637eab14 100644 --- a/test/fixtures/ota_folder_resume.cpp +++ b/test/fixtures/ota_folder_resume.cpp @@ -319,7 +319,36 @@ static void established_capture_still_refuses_replacement_file() { assert(f.host.begins == 0 && f.flight.manifests == 0); } +static void pull_parser_accepts_only_complete_destination_words() { + for (const char* text : {"pull 1 folder", "pull 1 folder ", + "pull 1 \tfolder\v\fvalidate\r\n", "pull 1 folder validate"}) { + Fixture f; + char reply[160] = {}; + assert(pull_command(text, reply, f.context)); + assert(strncmp(reply, "OK ", 3) == 0); + } + // Reaching the seeder policy proves both flash syntaxes parsed successfully. + for (const char* text : {"pull 1 flash", "pull 1 \tflash\v\frescue\r\n"}) { + Fixture f; + char reply[160] = {}; + assert(pull_command(text, reply, f.context)); + assert(strcmp(reply, "ERR seeder-only build cannot stage or install firmware; use `folder`") == 0); + } + for (const char* text : {"pull 1 \t\r\n", "pull 1 flashgarbage", + "pull 1 folders", "pull 1 folderss", "pull 1 folder validates", + "pull 1 folder validatess", "pull 1 folder validate extra", + "pull 1 flash rescue extra", "pull 1 folder rescue", "pull 1 flash validate", + "pull 1 foldervalidate"}) { + Fixture f; + char reply[160] = {}; + assert(pull_command(text, reply, f.context)); + assert(strncmp(reply, "ERR usage:", 10) == 0); + assert(f.host.begins == 0 && f.flight.manifests == 0); + } +} + int main() { + pull_parser_accepts_only_complete_destination_words(); for (auto failure : {HostStream::Timeout, HostStream::Truncated, HostStream::BadChecksum, HostStream::Error, HostStream::ShortWrite, HostStream::WrongOp}) { for (bool retry_by_pull : {false, true}) { diff --git a/test/test_bootloader_update_cli.py b/test/test_bootloader_update_cli.py index fc09b0d12..88bac4a3e 100644 --- a/test/test_bootloader_update_cli.py +++ b/test/test_bootloader_update_cli.py @@ -157,6 +157,28 @@ int main() { expect("bootloader install 12345678 0123456789ABCDEF extra", "ERR usage: ota bootloader install ", c); assert(c.staged_installs == 1); + for (const char* text : { + "bootloader install 12345678 0123456789ABCDEF ", + "bootloader install \t12345678\v\f0123456789ABCDEF\r\n"}) { + expect(text, "OK | staged install", c); + } + assert(c.staged_installs == 3); + for (const char* text : { + "bootloader install \t\n", "bootloader install 12345678", + "bootloader install 123456789 0123456789ABCDEF", + "bootloader install 12345678 0123456789ABCDEFF", + "bootloader install 123456780123456789ABCDEF", + "bootloader install 12345678 0123456789ABCDEF \t extra"}) { + expect(text, "ERR usage: ota bootloader install ", c); + } + for (const char* text : { + "bootloader install 1234567 0123456789ABCDEF", + "bootloader install 12345678 0123456789ABCDE", + "bootloader install 1234567Z 0123456789ABCDEF", + "bootloader install 12345678 0123456789ABCDEZ"}) { + expect(text, "ERR MID must be 8 hex and HASH must be 16 hex characters", c); + } + assert(c.staged_installs == 3); #else expect("bootloader install 12345678 0123456789ABCDEF", "ERR this build cannot update its bootloader over LoRa", c); @@ -171,7 +193,8 @@ def harness(): context = (ROOT / "src/helpers/ota/OtaContext.h").read_text(encoding="utf-8") return (SOURCE.replace("@IDLE@", body(context, "bool embeddedBootloaderIdle() const")) .replace("@HELPERS@", "\n".join(body(cli, signature) for signature in ( - "static bool is_cmd(", "static bool parse_hex_exact("))) + "static bool is_cmd(", "static bool parse_hex_exact(", + "static __attribute__((noinline)) int parse_two_words("))) .replace("@COMMAND@", body(cli, 'if (is_cmd(a, "bootloader|blupdate", &rest))'))) diff --git a/test/test_companion_direct_admin_guard.py b/test/test_companion_direct_admin_guard.py index 920a7ad50..062147544 100644 --- a/test/test_companion_direct_admin_guard.py +++ b/test/test_companion_direct_admin_guard.py @@ -25,19 +25,23 @@ HARNESS = r''' #define TXT_TYPE_CLI_DATA 1 struct ContactInfo { mesh::Identity id; - uint8_t type=0, out_path_len=0, tx_radio=0; + uint8_t type=0, out_path_len=0, tx_radio=0, flags=0; + char name[32]{}; uint32_t sync_since=0; - uint8_t out_path[64]{},secret[32]{}; - const uint8_t* getSharedSecret(const mesh::LocalIdentity&) {memset(secret,0x44,32);return secret;} + uint8_t out_path[64]{}; + mutable uint8_t secret[32]{}; + const uint8_t* getSharedSecret(const mesh::LocalIdentity&) const {memset(secret,0x44,32);return secret;} bool setPath(const uint8_t*,uint8_t length){out_path_len=length;memset(out_path,0,sizeof(out_path));return true;} }; struct BaseSerialInterface {BaseSerialInterface* route=this;BaseSerialInterface* captureReplyRoute(){return route;}}; struct Timer { uint32_t now=100;uint32_t getMillis()const{return now;} }; struct BaseChatMesh:mesh::Mesh { ContactInfo contact,anonymous[MAX_ANON_CONTACTS]; - int data_calls=0,path_calls=0,login_calls=0,clear_calls=0; - BaseChatMesh(){memset(contact.id.pub_key,0x11,32);contact.type=2;contact.out_path_len=2;contact.out_path[0]=0xAA;} + int data_calls=0,path_calls=0,login_calls=0,clear_calls=0,lookup_length=0; + BaseChatMesh(){memset(contact.id.pub_key,0x11,32);contact.type=2;contact.out_path_len=2;contact.out_path[0]=0xAA; + contact.flags=31;contact.sync_since=987;contact.tx_radio=2;strcpy(contact.name,"Saved contact");} ContactInfo* lookupContactByPubKey(const uint8_t* key,int n){ + lookup_length=n; for(auto& p:anonymous) if(!memcmp(key,p.id.pub_key,n)) return &p; return !memcmp(key,contact.id.pub_key,n)?&contact:nullptr; } @@ -45,7 +49,13 @@ struct BaseChatMesh:mesh::Mesh { bool isTransientContact(const ContactInfo& p){for(auto& a:anonymous)if(&a==&p)return true;return false;} void resetContactValue(ContactInfo& c){c=ContactInfo();} bool clearTransientContact(ContactInfo& c){assert(isTransientContact(c));resetContactValue(c);++clear_calls;return true;} - uint8_t getContactTxRadio(const mesh::Identity&)const{return 2;} + virtual uint8_t getContactTxRadio(const mesh::Identity&)const{return 2;} + int sendLogin(const ContactInfo&,const char*,uint32_t&); + int sendContactPacket(const ContactInfo& peer,mesh::Packet* packet,uint32_t& timeout){ + assert(peer.out_path_len==0);timeout=0; + packet->tx_radio=getContactTxRadio(peer.id); + return sendDirect(packet,nullptr,peer.out_path_len)?1:0; + } void onPeerDataRecv(mesh::Packet*,uint8_t,int,const uint8_t*,uint8_t*,size_t){++data_calls;} bool onPeerPathRecv(mesh::Packet*,int,const uint8_t*,uint8_t*,uint8_t,uint8_t,uint8_t*,uint8_t){++path_calls;return true;} void onContactResponse(const ContactInfo&,const uint8_t*,uint8_t){++login_calls;} @@ -71,9 +81,9 @@ struct MyMesh:BaseChatMesh { bool handleDirectOtaFrame(size_t len); bool handleDirectOtaCommand(const char*,uint32_t,char*,size_t); void closeDirectOtaAdmin(); - void mode(int value,const mesh::Identity* peer=nullptr){ + void mode(int value,const mesh::Identity* peer=nullptr,uint8_t type=ADV_TYPE_REPEATER){ cmd_frame[0]=52;cmd_frame[1]=value;memcpy(cmd_frame+2,(peer?peer->pub_key:contact.id.pub_key),32); - cmd_frame[34]=2;dispatch(value==1?35:34); + cmd_frame[34]=type;dispatch(value==1?35:34); } bool command(const char* command,uint32_t stamp,char* reply){ #if FULL @@ -84,7 +94,11 @@ struct MyMesh:BaseChatMesh { } void expect(const char* prefix){cmd_frame[0]=52;cmd_frame[1]=4;memcpy(cmd_frame+2,contact.id.pub_key,32);memcpy(cmd_frame+34,prefix,3);dispatch(37);assert(response==0);} void onPeerDataRecv(mesh::Packet*,uint8_t,int,const uint8_t*,uint8_t*,size_t); +#if FULL uint8_t getContactTxRadio(const mesh::Identity&)const; +#else + uint8_t getContactTxRadio(const mesh::Identity& peer)const override{return BaseChatMesh::getContactTxRadio(peer);} +#endif bool onPeerPathRecv(mesh::Packet*,int,const uint8_t*,uint8_t*,uint8_t,uint8_t,uint8_t*,uint8_t); void rawRoute(mesh::Packet* pkt){ #if FULL @@ -96,6 +110,7 @@ struct MyMesh:BaseChatMesh { }; @CALLBACKS@ @BINARY@ +@SEND_LOGIN@ static void repeaterPrefix(char*& command,char*& reply){@REPEATER_PREFIX@} static void roomPrefix(char*& command,char*& reply){@ROOM_PREFIX@} [[maybe_unused]] static void body(uint8_t* data,uint32_t stamp,const char* prefix,const char* text){ @@ -119,7 +134,12 @@ int main(){ #if FULL assert(m.response==0&&m.calls==0); // capability negotiation has no RF assert(m.contact.out_path_len==2&&m.contact.out_path[0]==0xAA); + assert(m.lookup_length==PUB_KEY_SIZE&&m._ota_direct_contact.id.matches(m.contact.id)); assert(m._ota_direct_contact.out_path_len==0&&m._ota_direct_contact.tx_radio==1); + assert(m._ota_direct_contact.type==ADV_TYPE_REPEATER&&m._ota_direct_contact.sync_since==0); + assert(m._ota_direct_contact.flags==0&&m._ota_direct_contact.name[0]==0); + assert(m.contact.flags==31&&m.contact.sync_since==987&&m.contact.tx_radio==2); + assert(!strcmp(m.contact.name,"Saved contact")); assert(m.getContactTxRadio(m.contact.id)==mesh::RADIO_TX_PRIMARY); mesh::Identity another;assert(m.getContactTxRadio(another)==2); mesh::Packet ota;ota.payload_type=12;m.rawRoute(&ota);assert(ota.tx_radio==mesh::RADIO_TX_PRIMARY); @@ -181,8 +201,22 @@ int main(){ m.mode(3);assert(m.response==0&&!m._ota_direct_admin.active(m.timer.now)); assert(m.getContactTxRadio(m.contact.id)==2); m.mode(3);assert(m.response==0); // cleanup is idempotent + m.contact.type=ADV_TYPE_ROOM; + m.mode(1,nullptr,ADV_TYPE_ROOM); + assert(m.response==0&&m._ota_direct_contact.type==ADV_TYPE_ROOM); + assert(m._ota_direct_contact.sync_since==0&&m._ota_direct_contact.id.matches(m.contact.id)); + uint32_t timeout=0; + assert(m.sendLogin(m._ota_direct_contact,"secret",timeout)==1); + assert(m.type==PAYLOAD_TYPE_ANON_REQ&&m.packet.tx_radio==mesh::RADIO_TX_PRIMARY); + assert(m.sent.size()==14&&!memcmp(m.sent.data()+8,"secret",6)); + for(unsigned i=4;i<8;++i)assert(m.sent[i]==0); // Room login requests no historical cursor. + assert(m.contact.type==ADV_TYPE_ROOM&&m.contact.sync_since==987); + assert(m.contact.out_path_len==2&&m.contact.out_path[0]==0xAA&&m.contact.tx_radio==2); + m.mode(3);assert(m.response==0); mesh::Identity fresh;memset(fresh.pub_key,0x22,32);m.mode(1,&fresh); assert(m.response==0&&m._ota_direct_transient); + assert(m._ota_direct_contact.id.matches(fresh)&&m._ota_direct_contact.type==ADV_TYPE_REPEATER); + assert(m._ota_direct_contact.out_path_len==0&&m._ota_direct_contact.tx_radio==mesh::RADIO_TX_PRIMARY); assert(m._ota_direct_transient->type==ADV_TYPE_NONE&&m.contact.out_path_len==2); m.mode(3,&fresh);assert(m.response==0&&m.clear_calls==1); for(auto& slot:m.anonymous){memset(slot.id.pub_key,0x33,32);slot.type=ADV_TYPE_NONE;} @@ -206,6 +240,8 @@ class CompanionDirectAdminGuardTest(unittest.TestCase): binary = extract_braced(source, "bool MyMesh::handleDirectOtaFrame(") getter = extract_braced(source, "bool MyMesh::handleDirectOtaCommand(") closer = extract_braced(source, "void MyMesh::closeDirectOtaAdmin(") + base = (ROOT / "src/helpers/BaseChatMesh.cpp").read_text() + send_login = extract_braced(base, "int BaseChatMesh::sendLogin(") callbacks = "\n".join(extract_braced(source, signature) for signature in ( "uint8_t MyMesh::getContactTxRadio(", "void MyMesh::onPeerDataRecv(", "bool MyMesh::onPeerPathRecv(")) raw = extract_braced(source, "if (pkt->getPayloadType() == PAYLOAD_TYPE_OTA\n && _ota_direct_admin.active") @@ -233,6 +269,7 @@ class CompanionDirectAdminGuardTest(unittest.TestCase): code = HARNESS.replace("@BINARY@", (binary + "\n" + getter + "\n" + closer) if full else "") code = code.replace("@RAW_ROUTE@", raw) code = code.replace("@CALLBACKS@", callbacks if full else "") + code = code.replace("@SEND_LOGIN@", send_login if full else "") code = code.replace("@REPEATER_PREFIX@", prefix_blocks[0]) code = code.replace("@ROOM_PREFIX@", prefix_blocks[1]) (folder / "test.cpp").write_text(code) @@ -255,9 +292,9 @@ class CompanionDirectAdminGuardTest(unittest.TestCase): full = ["COMPANION_RADIO_FULL=1", "ENABLE_OTA=1", "ENABLE_USB_INTERFACE=1", "BLE_PIN_CODE=123456"] cases = (("esp32", full + ["ESP32_PLATFORM=1", "WIFI_SSID=fixture"], 1, 1), ("nrf52", full + ["NRF52_PLATFORM=1"], 1, 1), - ("rak4631", full + ["NRF52_PLATFORM=1", "RAK_4631=1"], 0, 1), + ("rak4631", full + ["NRF52_PLATFORM=1", "RAK_4631=1"], 1, 1), ("reduced", ["NRF52_PLATFORM=1", "RAK_4631=1"], 0, 0), - ("rak override", full + ["NRF52_PLATFORM=1", "RAK_4631=1", "COMPANION_FEATURE_DIRECT_OTA_ADMIN=1"], 1, 1)) + ("rak opt-out", full + ["NRF52_PLATFORM=1", "RAK_4631=1", "COMPANION_FEATURE_DIRECT_OTA_ADMIN=0"], 0, 1)) code = ('#include "examples/companion_radio/CompanionFeatures.h"\n' 'DIRECT_HELPER COMPANION_FEATURE_DIRECT_OTA_ADMIN\n' 'EXISTING_OTA COMPANION_FEATURE_OTA_CLI\n' diff --git a/test/test_companion_reader.py b/test/test_companion_reader.py index c7da05a09..4373d2f9c 100644 --- a/test/test_companion_reader.py +++ b/test/test_companion_reader.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 """Compare the real firmware decoder and CLI output against every source verse.""" import copy +import configparser import importlib.util import json import os @@ -55,6 +56,12 @@ class CompanionReaderTest(unittest.TestCase): self.assertEqual(actual, list(self.expected_verses.values())) def test_arm_reader_decode_frames_fit_existing_loop_stack(self): + self.check_arm_reader_stack() + + def test_compact_arm_reader_decode_frames_fit_existing_loop_stack(self): + self.check_arm_reader_stack(compact=True) + + def check_arm_reader_stack(self, compact=False): # Use the actual Cortex-M4 compiler when installed. This does not # invoke PlatformIO or reserve decode buffers in ordinary commands. tool = shutil.which("arm-none-eabi-g++") @@ -74,6 +81,8 @@ class CompanionReaderTest(unittest.TestCase): "-fstack-usage", "-DNRF52_PLATFORM=1", "-DCOMPANION_RADIO_FULL=1", "-DENABLE_USB_INTERFACE=1", "-I" + str(directory), "-I" + str(ROOT / "src"), "-I" + str(FIXTURE)] + if compact: + flags.append("-DCOMPANION_READER_COMPACT_STREAM=1") self.run_checked([tool, "-std=gnu++17", "-fno-exceptions", "-fno-rtti", *flags, "-c", str(ROOT / "src/helpers/CompanionReader.cpp"), "-o", str(directory / "reader.o")]) self.run_checked([cc, "-std=gnu11", *flags, "-c", @@ -229,8 +238,10 @@ class CompanionReaderTest(unittest.TestCase): self.skipTest("host GCC and G++ required") with tempfile.TemporaryDirectory(prefix="meshcore-reader-") as directory: directory = Path(directory) - for platform in ("ESP32_PLATFORM", "NRF52_PLATFORM"): + for platform, compact in (("ESP32_PLATFORM", False), ("NRF52_PLATFORM", False), ("NRF52_PLATFORM", True)): flags = [f"-D{platform}=1", "-DCOMPANION_RADIO_FULL=1", "-DENABLE_USB_INTERFACE=1"] + if compact: + flags.append("-DCOMPANION_READER_COMPACT_STREAM=1") obj, binary = directory / "tinf.o", directory / "reader.exe" self.run_checked([cc, "-std=c11", "-Os", *flags, "-c", str(ROOT / "src/helpers/ota/OtaTinf.c"), "-o", str(obj)]) @@ -242,6 +253,27 @@ class CompanionReaderTest(unittest.TestCase): actual = dict(line.split("\t", 1) for line in result.splitlines()) self.assertEqual(actual, self.expected_verses) + def test_compact_asset_is_opted_into_by_rak4631_full_only(self): + config = configparser.ConfigParser(interpolation=None) + config.read(ROOT / "variants/rak4631/platformio.ini") + opted_in = [section for section in config.sections() + if "-D COMPANION_READER_COMPACT_STREAM=1" in config.get(section, "build_flags", fallback="")] + self.assertEqual(opted_in, ["env:RAK_4631_companion_radio_full"]) + cxx = shutil.which("g++") + if not cxx: + self.skipTest("host G++ required") + for platform, compact, expected in (("NRF52_PLATFORM", False, 3), ("NRF52_PLATFORM", True, 0), + ("ESP32_PLATFORM", True, None)): + flags = [f"-D{platform}=1", "-DCOMPANION_RADIO_FULL=1", "-DENABLE_USB_INTERFACE=1"] + if compact: + flags.append("-DCOMPANION_READER_COMPACT_STREAM=1") + result = self.run_checked([cxx, "-E", "-P", *flags, + "-I" + str(FIXTURE), str(ROOT / "src/helpers/CompanionReader.cpp")]) + if expected is None: + self.assertIn("using ReaderCorpus = TokenCorpusT;", result) + else: + self.assertIn(f"128, kVerseCount, {expected}", result) + def test_other_profiles_exclude_corpus(self): cxx = shutil.which("g++") if not cxx: diff --git a/test/test_nrf52_gnss_version_trim.py b/test/test_nrf52_gnss_version_trim.py new file mode 100644 index 000000000..c633b24d4 --- /dev/null +++ b/test/test_nrf52_gnss_version_trim.py @@ -0,0 +1,189 @@ +"""Qualify the private GNSS transform and native scanf replacement behavior.""" + +import contextlib +import importlib.util +import io +import os +from pathlib import Path +import shutil +import subprocess +import tempfile +import unittest +from unittest.mock import patch + +from test_ota_cli_listing import function + + +ROOT = Path(__file__).resolve().parents[1] +SPEC = importlib.util.spec_from_file_location("gnss_trim", ROOT / "scripts/nrf52_gnss_version_trim.py") +TRIM = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(TRIM) +SOURCE = TRIM.INCLUDE + "\nvoid version(const char* ptr) {\n" + TRIM.ORIGINAL_CONVERSION + "\n}\n" +HEADERS = {name: "// fixture: " + name + "\n" for name in TRIM.HEADERS} + + +class Node: + def __init__(self, path): + self.path = Path(path) + + def srcnode(self): + return self + + def get_abspath(self): + return str(self.path) + + +class BuildEnv: + def __init__(self, path): + self.path = Path(path) + self.registrations = [] + + def subst(self, value): + assert value == "$BUILD_DIR" + return str(self.path) + + def File(self, path): + return Path(path) + + def AddBuildMiddleware(self, callback, pattern): + self.registrations.append((callback, pattern)) + + +class GnssVersionTrimTests(unittest.TestCase): + def test_private_copy_checks_source_and_all_headers_and_preserves_downloads(self): + # Small synthetic dependencies test the transform mechanics; production + # fingerprints remain fixed to the complete reviewed library files. + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + source = root / "libdeps/gnss/src" / TRIM.SOURCE_NAME + source.parent.mkdir(parents=True) + source.write_bytes(SOURCE.replace("\n", "\r\n").encode()) + for name, text in HEADERS.items(): + (source.parent / name).write_text(text) + original = {path.name: path.read_bytes() for path in source.parent.iterdir()} + env = BuildEnv(root / "build") + with patch.object(TRIM, "SOURCE_SHA256", TRIM.digest(SOURCE)), patch.object( + TRIM, "HEADERS", {name: TRIM.digest(text) for name, text in HEADERS.items()}): + destination = TRIM.replace_gnss_source(env, Node(source)) + self.assertEqual(destination, env.path / "trimmed-nrf52-gnss" / TRIM.SOURCE_NAME) + output = destination.read_text() + self.assertNotIn("sscanf", output) + self.assertIn(TRIM.VERSION_CONVERSION, output) + times = {path.name: path.stat().st_mtime_ns for path in destination.parent.iterdir()} + self.assertEqual(TRIM.replace_gnss_source(env, Node(source)), destination) + self.assertEqual(times, {path.name: path.stat().st_mtime_ns for path in destination.parent.iterdir()}) + self.assertEqual(original, {path.name: path.read_bytes() for path in source.parent.iterdir()}) + for name, text in HEADERS.items(): + self.assertEqual((destination.parent / name).read_text(), text) + for change in ("source", *HEADERS): + with self.subTest(change=change), patch.object(TRIM, "SOURCE_SHA256", TRIM.digest(SOURCE)), patch.object( + TRIM, "HEADERS", {name: TRIM.digest(text) for name, text in HEADERS.items()}): + target = source if change == "source" else source.parent / change + before = target.read_bytes() + target.write_bytes(before + b"// unreviewed\n") + other_env = BuildEnv(root / ("unknown-" + change)) + notice = io.StringIO() + node = Node(source) + with contextlib.redirect_stdout(notice): + self.assertIs(TRIM.replace_gnss_source(other_env, node), node) + self.assertIn("ordinary source retained", notice.getvalue()) + self.assertFalse(other_env.path.exists()) + target.write_bytes(before) + + def test_only_qualified_companion_installs_middleware(self): + spec = importlib.util.spec_from_file_location("flash_trim", ROOT / "scripts/nrf52_flash_trim.py") + policy = importlib.util.module_from_spec(spec) + spec.loader.exec_module(policy) + + class Env(dict): + def PioPlatform(self): + class Platform: + name = "nordicnrf52" + def get_package_dir(self, _name): return "" + return Platform() + def BoardConfig(self): return {"build.mcu": "nrf52840"} + def AppendUnique(self, **kwargs): + for name, value in kwargs.items(): self.setdefault(name, []).extend(value) + def subst(self, value): return value.replace("$PROJECT_DIR", str(ROOT)) + def AddBuildMiddleware(self, callback, pattern): self.setdefault("middleware", []).append(pattern) + + for role, flags, expected in (("companion_radio", "", True), + ("companion_radio", "-DMESH_NRF52_COMPANION_TRIM=0", False), + ("simple_repeater", "", False), ("custom", "", False)): + with self.subTest(role=role, flags=flags): + env = Env(BUILD_FLAGS=flags, CPPDEFINES=[], PIOENV="custom", + SRC_FILTER="+<../examples/" + role + ">") + policy.install(env) + self.assertEqual("*" + TRIM.SOURCE_NAME in env.get("middleware", []), expected) + + def test_native_gnss_conversion_parity_and_bounded_cli_tokens(self): + compiler = shutil.which("g++") or shutil.which("clang++") + if not compiler: + self.skipTest("a native C++ compiler is required") + cli = (ROOT / "src/helpers/ota/OtaCli.cpp").read_text() + native = r''' +#include +#include +#include +#include +#include +#include +struct Version { bool valid; uint8_t high, low; }; +static Version original(const char* ptr) { + int protHi = 0, protLo = 0; +@ORIGINAL@ + return {scanned == 2, uint8_t(protHi), uint8_t(protLo)}; +} +static Version trimmed(const char* ptr) { + int protHi = 0, protLo = 0; +@CONVERSION@ + return {scanned == 2, uint8_t(protHi), uint8_t(protLo)}; +} +static void parity(const char* text) { + const Version before = original(text), after = trimmed(text); + assert(before.valid == after.valid); + if (before.valid) assert(before.high == after.high && before.low == after.low); +} +@TOKENS@ +int main() { + for (const char* text : {"18.00", "27.12", "0.0", "255.255", "256.256", + " +27.\t+12 extra", "\t\r\n-1.\v\f-2 trailing", "0018.0000", + "", " ", "18", "18.", ".12", "18 .12", "18.x", "x18.12", + "+.12", "18.+", "18.12.34", "18.0x20", "0x18.12", + "2147483647.2147483647", "-2147483648.-2147483648", + "2147483648.2147483648", "-2147483649.-2147483649", + "9999999999999999999999999999999.12", + "18.-9999999999999999999999999999999"}) parity(text); + uint32_t random = 0xB43A1123; + for (unsigned n = 0; n < 3000; ++n) { + random = random * 1664525U + 1013904223U; + char text[96]; + snprintf(text, sizeof(text), "\t%ld. %ld extra", long(int32_t(random)), long(int32_t(random ^ 0x91D43AA5U))); + parity(text); + } + struct { char first[8]; uint8_t guard1; char second[10]; uint8_t guard2; } words = {}; + words.guard1 = words.guard2 = 0xA5; + assert(parse_two_words("\t1234567\v\fabcdefghi\r\n", words.first, sizeof(words.first), words.second, sizeof(words.second)) == 2); + assert(!strcmp(words.first, "1234567") && !strcmp(words.second, "abcdefghi")); + for (const char* text : {"12345678 x", "x abcdefghij", "x y z"}) + assert(parse_two_words(text, words.first, sizeof(words.first), words.second, sizeof(words.second)) == 3); + assert(words.guard1 == 0xA5 && words.guard2 == 0xA5); + assert(parse_two_words(" \t\r\n", words.first, sizeof(words.first), words.second, sizeof(words.second)) == 0); +} +'''.replace("@ORIGINAL@", TRIM.ORIGINAL_CONVERSION).replace("@CONVERSION@", TRIM.VERSION_CONVERSION).replace( + "@TOKENS@", function(cli, "parse_two_words")) + native = "#include \n" + native + sanitizers = [] if os.name == "nt" else ["-fsanitize=address,undefined", "-fno-sanitize-recover=all", "-fno-pie", "-no-pie"] + with tempfile.TemporaryDirectory() as directory: + source = Path(directory) / "parity.cpp" + source.write_text(native) + binary = Path(directory) / ("parity.exe" if os.name == "nt" else "parity") + built = subprocess.run([compiler, "-std=c++11", "-O1", "-Wall", "-Wextra", "-Werror", + *sanitizers, str(source), "-o", str(binary)], capture_output=True, text=True, timeout=60) + self.assertEqual(built.returncode, 0, built.stdout + built.stderr) + tested = subprocess.run([str(binary)], capture_output=True, text=True, timeout=30) + self.assertEqual(tested.returncode, 0, tested.stdout + tested.stderr) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_ota_folder_resume.py b/test/test_ota_folder_resume.py index ef4f2ab05..9b5b0fa0d 100644 --- a/test/test_ota_folder_resume.py +++ b/test/test_ota_folder_resume.py @@ -20,7 +20,7 @@ class OtaFolderResumeTest(unittest.TestCase): start = cli.index(' } else if (is_cmd(a, "pull|get|download", &rest)) {') end = cli.index(' // ---- discard the current session', start) harness = (ROOT / "test/fixtures/ota_folder_resume.cpp").read_text() - helpers = "\n\n".join(function(cli, name) for name in ("is_cmd", "state_word")) + helpers = "\n\n".join(function(cli, name) for name in ("is_cmd", "state_word", "parse_two_words")) harness = harness.replace("// @CLI_HELPERS@", helpers).replace("// @CLI_PULL@", cli[start:end]) with tempfile.TemporaryDirectory(prefix="meshcore-ota-folder-resume-") as temporary: work = Path(temporary) diff --git a/test/test_reader_stream.py b/test/test_reader_stream.py index adc48181b..010a8694b 100644 --- a/test/test_reader_stream.py +++ b/test/test_reader_stream.py @@ -116,6 +116,13 @@ class ReaderStreamTest(unittest.TestCase): spec.loader.exec_module(packer) document = json.loads(packer.blocks.SOURCE.read_text(encoding="utf-8")) self.assertEqual(packer.HEADER.read_text(encoding="ascii"), packer.render(document)) + self.assertEqual(packer.COMPACT_HEADER.read_text(encoding="ascii"), packer.render(document, compact=True)) + normal, plain, _, normal_chunks = packer.encode(document) + compact, compact_plain, _, compact_chunks = packer.encode(document, compact=True) + self.assertEqual((normal_chunks, compact_chunks), (3, 0)) + self.assertEqual(plain, compact_plain) + self.assertEqual(zlib.decompress(compact, wbits=-12), plain) + self.assertEqual(len(normal) - len(compact), 661) pinned = json.loads(packer.TOKENS.read_text(encoding="ascii")) self.assertLessEqual(len(pinned), 128) self.assertEqual(len(pinned), len(set(pinned))) @@ -126,8 +133,8 @@ class ReaderStreamTest(unittest.TestCase): sys.path.remove(path) def test_all_879_verses_match_independently_normalized_source(self): - binary = self.compile(r""" -#include + body = r""" +#include #include #include #include @@ -148,13 +155,16 @@ int main() { } } } -""", "corpus") +""" document = json.loads((ROOT / "tools/bible/reader-web.json").read_text()) typography = str.maketrans({"\u00a0": " ", "\u2013": "-", "\u2014": "-", "\u2018": "'", "\u2019": "'", "\u201c": '\"', "\u201d": '\"'}) expected = b"".join(text.translate(typography).encode("ascii") + b"\0" for text in document["verses"].values()) - self.assertEqual(self.run_binary(binary), expected) + for name in ("ReaderStreamData.generated.h", "ReaderCompactStreamData.generated.h"): + with self.subTest(header=name): + binary = self.compile(body.replace("@HEADER@", name), "corpus" + name.split("Data")[0]) + self.assertEqual(self.run_binary(binary), expected) def test_ring_bounds_truncation_distances_and_deterministic_mutations(self): cases = [] @@ -247,7 +257,7 @@ int main() { document = json.loads(packer.blocks.SOURCE.read_text()) document["verses"] = dict.fromkeys(packer.blocks.references(), None) document["verses"]["1:1"] = "q" * 4095 - rendered = packer.render(document) + rendered = packer.render(document, compact=True) finally: sys.path.remove(path) header = self.directory / "literal.h" @@ -260,6 +270,7 @@ int main() { using namespace mesh::bible; char scratch[kBlockSize];const char* text=nullptr; const auto& c=generated::readerCorpus; + assert(c.chunk_count==0); assert(lookup(c,{1,1},scratch,sizeof(scratch),text)==LookupResult::Found); assert(strlen(text)==4095);for(unsigned n=0;n<4095;++n) assert(text[n]=='q'); assert(lookup(c,{1,2},scratch,sizeof(scratch),text)==LookupResult::Missing);assert(!text); @@ -386,6 +397,9 @@ void check(const uint8_t* data,unsigned data_size,unsigned plain_size,const uint # against the unchanged block decoder using identical host options. binary = self.compile(r""" #include +#define generated compact_generated +#include +#undef generated #define generated old_generated #include #undef generated @@ -405,8 +419,9 @@ template double bench(const Corpus& corpus) { assert(sum>0); return std::chrono::duration(std::chrono::steady_clock::now()-start).count()/80; } -int main() { printf("Reader last verse host ms: block=%.4f stream=%.4f\n", - bench(mesh::bible::old_generated::readerCorpus),bench(mesh::bible::generated::readerCorpus)); } +int main() { printf("Reader last verse host ms: block=%.4f stream=%.4f compact=%.4f\n", + bench(mesh::bible::old_generated::readerCorpus),bench(mesh::bible::generated::readerCorpus), + bench(mesh::bible::compact_generated::readerCorpus)); } """, "benchmark") print(self.run_binary(binary).decode().strip()) diff --git a/tools/bible/README.md b/tools/bible/README.md index 114a2987a..56e6ad2f2 100644 --- a/tools/bible/README.md +++ b/tools/bible/README.md @@ -321,6 +321,14 @@ independent blocks. Native tests compare every verse and output byte, exercise malformed inputs, and check the actual ARM stack against the existing 8 KiB loop stack. Linked-ELF tests retain the same text and reply checks. +RAK4631 Full opts into `COMPANION_READER_COMPACT_STREAM=1` and a separate +single-stream asset. Its data and vocabulary occupy 28,126 bytes, saving another +661 bytes while retaining every verse, font and the same 4 KiB scratch. +The tradeoff is a cold lookup that may decode up to 50,732 encoded bytes before +the selected verse. Other nRF52 boards retain the three-stream asset and its +shorter cold lookup. The single stream uses the existing unframed format; +larger custom corpora still use bounded, independently framed streams. + `reader-stream-tokens.json` is the pinned compression vocabulary. It substitutes only exact source byte strings, including substrings of words. Host-only Google Zopfli uses 1,000 iterations with a 4 KiB match window; its Apache-2.0 source, @@ -330,5 +338,6 @@ committed header and require no extra downloads. ```sh python tools/bible/pack_reader_stream.py --check +python tools/bible/pack_reader_stream.py --compact --check python test/test_reader_stream.py ``` diff --git a/tools/bible/pack_reader_stream.py b/tools/bible/pack_reader_stream.py index ef93caa0c..3951b3655 100644 --- a/tools/bible/pack_reader_stream.py +++ b/tools/bible/pack_reader_stream.py @@ -14,9 +14,11 @@ import zlib import pack_reader as blocks HEADER = blocks.ROOT / "src/helpers/bible/ReaderStreamData.generated.h" +COMPACT_HEADER = blocks.ROOT / "src/helpers/bible/ReaderCompactStreamData.generated.h" TOKENS = Path(__file__).with_name("reader-stream-tokens.json") COMPRESSOR = Path(__file__).with_name("zopfli4k") STREAM_LIMIT = 17000 +COMPACT_STREAM_LIMIT = 60000 @lru_cache(maxsize=1) @@ -55,7 +57,7 @@ def token_dictionary(verses): return [word for word in words if any(word in verse for verse in verses)] -def encode(document): +def encode(document, *, compact=False): verses = blocks.source_verses(document) words = token_dictionary(verses) tokens = {word: bytes([128 + index]) for index, word in enumerate(words)} @@ -72,13 +74,15 @@ def encode(document): records = [verse + b"\0" for verse in encoded_verses] chunks, first, current = [], 0, b"" for index, record in enumerate(records): - if current and len(current) + len(record) > STREAM_LIMIT: + if current and len(current) + len(record) > (COMPACT_STREAM_LIMIT if compact else STREAM_LIMIT): chunks.append((first, current)) first, current = index, b"" current += record chunks.append((first, current)) - # Independent 12-bit histories bound cold lookup work without adding a - # buffer. Headers keep both compressed and decoded lengths bounded. + # A single stream needs no framing. Larger corpora retain independently + # bounded 12-bit histories and six-byte headers, without another buffer. + if compact and len(chunks) == 1: + return compress_4k(chunks[0][1]), b"".join(records), words, 0 packed = bytearray() for first, plain in chunks: compressed = compress_4k(plain) @@ -87,13 +91,14 @@ def encode(document): return bytes(packed), b"".join(records), words, len(chunks) -def render(document): - packed, plain, words, chunk_count = encode(document) +def render(document, *, compact=False): + packed, plain, words, chunk_count = encode(document, compact=compact) dictionary_plain = b"\0".join(words) + b"\0" if words else b"" dictionary = compress_4k(dictionary_plain) if words else b"" digest = hashlib.sha256(json.dumps(document, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode()).hexdigest() - lines = ["// Generated by tools/bible/pack_reader_stream.py; do not edit.", + command = "tools/bible/pack_reader_stream.py" + (" --compact" if compact else "") + lines = [f"// Generated by {command}; do not edit.", "// Offline Reader corpus. Public domain; see tools/bible/README.md.", "// Google Zopfli, 1000 iterations, 4096-byte history; exact ASCII text retained.", f"// Canonical source SHA-256: {digest}", @@ -120,22 +125,24 @@ def render(document): def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--source", type=Path, default=blocks.SOURCE) - parser.add_argument("--output", type=Path, default=HEADER) + parser.add_argument("--output", type=Path) + parser.add_argument("--compact", action="store_true", help="RAK4631 Full: smaller asset with slower cold lookup") parser.add_argument("--check", action="store_true") args = parser.parse_args() document = json.loads(args.source.read_text(encoding="utf-8")) - header = render(document) + output = args.output or (COMPACT_HEADER if args.compact else HEADER) + header = render(document, compact=args.compact) if args.check: - if args.output.read_text(encoding="ascii") != header: + if output.read_text(encoding="ascii") != header: raise SystemExit("Reader stream header differs; regenerate with tools/bible/pack_reader_stream.py") else: - args.output.write_text(header, encoding="ascii", newline="\n") - packed, plain, words, chunk_count = encode(document) + output.write_text(header, encoding="ascii", newline="\n") + packed, plain, words, chunk_count = encode(document, compact=args.compact) dictionary_plain = b"\0".join(words) + b"\0" if words else b"" dictionary_size = len(compress_4k(dictionary_plain)) if words else 0 print(f"Reader stream: {len(blocks.references())} unchanged verses, " f"{len(plain)} encoded bytes -> {len(packed)} DEFLATE + " - f"{dictionary_size} dictionary bytes; {chunk_count} independent streams, 4096-byte history") + f"{dictionary_size} dictionary bytes; {chunk_count or 1} independent streams, 4096-byte history") if __name__ == "__main__": diff --git a/tools/lora_ota/ota_wizard_companion.py b/tools/lora_ota/ota_wizard_companion.py index a87f1a6d3..2214942e8 100644 --- a/tools/lora_ota/ota_wizard_companion.py +++ b/tools/lora_ota/ota_wizard_companion.py @@ -374,8 +374,7 @@ class CompanionTransport: await self._guard_mode(key, 1, bytes([contact["type"]])) except CompanionError as exc: raise CompanionError( - "The USB radio needs current Full Companion firmware with the zero-hop OTA admin guard. " - "RAK4631 Full cannot fit this helper; use an ESP32 Full Companion or USB Repeater.") from exc + "The USB radio needs current Full Companion firmware with the version 2 zero-hop OTA admin guard.") from exc self._guarded_key = key if key not in self._authenticated: # The library's send_login_sync accepts any login-success diff --git a/variants/rak4631/platformio.ini b/variants/rak4631/platformio.ini index 6b814a1d6..a43f0225d 100644 --- a/variants/rak4631/platformio.ini +++ b/variants/rak4631/platformio.ini @@ -482,6 +482,7 @@ build_flags = -D ETHERNET_USE_RAK13800 -D ETHERNET_CLASS=RAK13800EthernetInterface -D MESHCORE_REQUIRES_COMPANION_RADIO_FULL=1 + -D COMPANION_READER_COMPACT_STREAM=1 build_src_filter = ${env:RAK_4631_companion_radio_usb.build_src_filter} + +