From 8031e60b553eab09d09ab358f4dcf73a2bc447d2 Mon Sep 17 00:00:00 2001 From: mikecarper Date: Sat, 10 Oct 2026 19:24:42 -0700 Subject: [PATCH] Add Companion lost-status replies and repair room mailbox test adapters Save an opt-in off/no/yes answer to private Am I lost questions from known chat contacts. Keep reply traffic and ACK state bounded, preserve pending user delivery, and expose the setting through local CLI and ESP32 WebConfig. Retain compact STM32 application/filesystem boundaries, qualify the Tag BLE queue allowance, and exercise saved-image compatibility and browser controls. Fix stale room mailbox protocol dependencies in the ACL/route test fixtures. Validation: ten Companion builds, sanitized production-path regressions, preference fault/compatibility tests, browser tests, and 86 capacity/build recipe checks passed. No live radio was flashed for this feature. --- .github/workflows/run-unit-tests.yml | 2 + README.md | 2 +- build_legacy.sh | 2 +- docs/cli_command_availability.md | 1 + docs/companion_lost_reply.md | 81 + docs/companion_offline_queue.md | 8 + docs/room_services.md | 3 + docs/test-results/companion_lost_reply.md | 94 + docs/test-results/index.md | 2 + examples/companion_radio/CompanionFeatures.h | 11 + examples/companion_radio/DataStore.cpp | 28 +- examples/companion_radio/MyMesh.cpp | 86 +- examples/companion_radio/MyMesh.h | 8 + examples/companion_radio/NodePrefs.h | 16 +- examples/companion_radio/PrefsStorageLayout.h | 7 +- mkdocs.yml | 1 + src/helpers/BaseChatMesh.cpp | 12 + src/helpers/BaseChatMesh.h | 5 + src/helpers/CompanionLostReply.h | 135 + src/helpers/WebConfigKeys.h | 2 +- src/helpers/esp32/WebConfigHtml.h | 3897 +++++++++-------- src/helpers/esp32/WebConfigServer.cpp | 17 + src/helpers/esp32/WebConfigServer.h | 2 + .../test_client_acl_infrastructure.cpp | 75 + test/fixtures/companion_lost_reply.cpp | 491 +++ .../companion_prefs_storage/legacy_loader.inc | 13 +- .../companion_prefs_storage/legacy_writer.inc | 1 + test/fixtures/room_receive_admission/test.cpp | 3 + test/test_client_acl_infrastructure.py | 39 +- test/test_companion_bluetooth_persistence.py | 8 +- test/test_companion_identity_cli.py | 2 +- test/test_companion_lost_reply.py | 99 + test/test_companion_offline_delivery.py | 32 + .../test_companion_preferences_transaction.py | 11 +- test/test_companion_prefs_image.py | 120 +- test/test_companion_prefs_tail.py | 30 +- test/test_companion_prefs_values.py | 8 +- ...companion_settings_persistence_contract.py | 7 +- test/test_companion_usb_logging.py | 38 +- test/test_local_cli_access.py | 19 + test/test_stored_client_reply_routes.py | 5 +- test/test_webconfig_lost_reply.py | 250 ++ variants/rak_wismesh_tag/platformio.ini | 3 +- variants/tiny_relay/platformio.ini | 1 + variants/wio-e5-dev/platformio.ini | 1 + webui/index.html | 5 + 46 files changed, 3663 insertions(+), 2020 deletions(-) create mode 100644 docs/companion_lost_reply.md create mode 100644 docs/test-results/companion_lost_reply.md create mode 100644 src/helpers/CompanionLostReply.h create mode 100644 test/fixtures/companion_lost_reply.cpp create mode 100644 test/test_companion_lost_reply.py create mode 100644 test/test_webconfig_lost_reply.py diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 3ff790e96..4c88c5862 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -221,6 +221,7 @@ jobs: python3 -B test/test_companion_primary_radio_persistence.py -v python3 -B test/test_companion_response_bounds.py -v python3 -B test/test_companion_ack_delivery.py -v + python3 -B test/test_companion_lost_reply.py -v python3 -B test/test_companion_delayed_reply_delivery.py -v python3 -B test/test_companion_hardware_serial.py -v python3 -B test/test_companion_hardware_serial_gps.py -v @@ -567,6 +568,7 @@ jobs: python3 -B test/test_heltec_v4_wifi_setup_page.py -v python3 -B test/test_sensor_webconfig_capabilities.py -v python3 -B test/test_webconfig_ui_runtime.py + python3 -B test/test_webconfig_lost_reply.py -v MESHCORE_REQUIRE_ROOM_BROWSER=1 python3 -B test/test_room_web_ui.py -v MESHCORE_REQUIRE_ROOM_BROWSER=1 python3 -B test/test_room_mail_web_ui.py -v diff --git a/README.md b/README.md index 63dc047b2..c400282a5 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ * **[Repeater forwarding policies](https://mikecarper.github.io/MeshCore/flood_filtering/).** Actions include dropping, rate limiting, assigning scopes, selecting retries, and controlling forwarding priority. Separate policies cover ordinary radio forwarding, bridges, and profile crossover. * **[Private fleet management](https://mikecarper.github.io/MeshCore/fleet_management/).** Deploy filtering, secondary-radio changes, radio schedules, and clock updates to a whole fleet, existing configured or home regions, a GPS center and radius, one node, or a semicolon-separated target list. The publisher signs each complete command once, splitting longer requests across two packets; receivers hold its public verification key, with replay protection and acknowledgements before radio handoff. * **[Flood retries that account for network topology](https://mikecarper.github.io/MeshCore/halo_keymind_settings/#flood-and-advert-settings).** Configure retry counts, path limits, packet-type limits, target prefixes, ignored repeaters, and channel-specific eligibility. Bridge buckets keep retrying until traffic is heard on the intended sides of a relay or the retry budget expires. Qualifying echoes cancel unnecessary attempts. -* **[Enhanced direct messages and direct-route retries](https://mikecarper.github.io/MeshCore/halo_keymind_settings/#direct-retry-settings).** Adapt the coding rate across bounded retry attempts and cancel unnecessary retries when a qualifying echo is heard. [Single Key DMs](https://mikecarper.github.io/MeshCore/companion_protocol/#private-text-when-only-the-sender-knows-the-recipient) let compatible Companions send private text when only the sender knows the recipient's key, using a signed, encrypted introduction. The recipient accepts the sender through the app or opts into automatic acceptance; compact STM32WL builds omit this feature. +* **[Enhanced direct messages and direct-route retries](https://mikecarper.github.io/MeshCore/halo_keymind_settings/#direct-retry-settings).** Adapt the coding rate across bounded retry attempts and cancel unnecessary retries when a qualifying echo is heard. [Single Key DMs](https://mikecarper.github.io/MeshCore/companion_protocol/#private-text-when-only-the-sender-knows-the-recipient) let compatible Companions send private text when only the sender knows the recipient's key, using a signed, encrypted introduction. The recipient accepts the sender through the app or opts into automatic acceptance; compact STM32WL builds omit this feature. An optional [Companion lost-status responder](https://mikecarper.github.io/MeshCore/companion_lost_reply/) answers private "Am I lost?" questions with a saved Yes or No. * **[Enhanced telemetry history](https://mikecarper.github.io/MeshCore/telemetry_decoder/).** Send compact temperature and battery-voltage snapshots of up to 165 samples per packet, plus external-voltage history in chunks. Read retained GPS history through the CLI; GPS history is not included in the automatic telemetry packets. Decode snapshots and CLI history in the browser. * **[Room topics, mailboxes, history, and access controls](https://mikecarper.github.io/MeshCore/room_services/).** Save an announcement and optionally retain the newest 32 chat posts across reboots. Regular users manage personal mailboxes with public or selected-sender access, explicit receipts, and mailbox-only delivery for sleeping trackers. Room users can manage their own return routes and skip older unread chat by date or keep the newest N messages. Explicit ACL roles persist; full-key bans and per-user post/request limits apply to room sessions. ESP32 images with WebConfig provide local Wi-Fi chat, an information board, and an admin dashboard for mailboxes, routes, delivery, activity, catch-up and access. The existing app's chat and catch-up formats remain supported. * **[Full firmware profiles, Companion transports, and ESP32 bridges](https://mikecarper.github.io/MeshCore/full_profiles/).** Full combines the exact board and role's supported features with runtime controls: Companion transports and firmware serving, or qualified ESP32 infrastructure services and MQTT/ESP-NOW/RS-232 bridges. Includes capacity exceptions, matching application slots, exact-board/role partition migration packages, and nRF52 Full/Reduced supported-sensor packages with LoRa OTA. The picker links supported migration routes; USB layout changes use the matching merged image, since an app-only image cannot change the partition table. diff --git a/build_legacy.sh b/build_legacy.sh index 6701eba77..af4317088 100755 --- a/build_legacy.sh +++ b/build_legacy.sh @@ -4192,7 +4192,7 @@ apply_companion_radio_full_profile() { # Every nRF52 Full Companion lends the upper half of its offline queue # to the cold mOTA context. Keep 256 slots for everyday use and reserve # runtime space for Bluetooth, displays, tasks and filesystem buffers. - append_platformio_build_unflags "-DOFFLINE_QUEUE_SIZE=512 -DOFFLINE_QUEUE_SIZE=128 -DOFFLINE_QUEUE_SIZE=16" + append_platformio_build_unflags "-DOFFLINE_QUEUE_SIZE=512 -DOFFLINE_QUEUE_SIZE=240 -DOFFLINE_QUEUE_SIZE=128 -DOFFLINE_QUEUE_SIZE=16" export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DOFFLINE_QUEUE_SIZE=256 -DOTA_SHARED_COMPANION_QUEUE=1" case "$env_name" in Heltec_t096_companion_radio_full_*) diff --git a/docs/cli_command_availability.md b/docs/cli_command_availability.md index 7c4760d88..4b1105de2 100644 --- a/docs/cli_command_availability.md +++ b/docs/cli_command_availability.md @@ -95,6 +95,7 @@ over the normal binary USB, BLE, or TCP connection: | [`get public.key`](cli_commands.md#view-this-nodes-public-key) | Companion text terminal and binary command `0x42`; read-only, no private-key export feature required | | `get prv.key` | Local terminal and binary command `0x42`; requires private key export enabled | | `get password` | Reports that Companion has no admin password; infrastructure returns its password locally | +| [`get/set lost.reply`](companion_lost_reply.md) | Local Companion CLI and framed command `0x42` when `MESH_ENABLE_LOST_REPLY` is enabled; saved `off`, `no` or `yes` private-message auto response | | `get wifi.pwd`, `get mqttN.password`, `get mqttN.token` | Local terminal and binary command `0x42`; corresponding WiFi/MQTT feature required | | [`board`](cli_commands.md#show-the-hardware-name) | Every Companion text terminal and command `0x42` | | [`version`](cli_commands.md#get-the-version) | Every Companion text terminal and protocol-v14 command `0x42`; returns the untruncated build identity | diff --git a/docs/companion_lost_reply.md b/docs/companion_lost_reply.md new file mode 100644 index 000000000..9034b240b --- /dev/null +++ b/docs/companion_lost_reply.md @@ -0,0 +1,81 @@ + + + + +# Companion lost-status auto response + +Development Companion builds containing this feature can automatically answer a private `Am I lost?` message with `Yes` +or `No`. You choose the saved answer. The default is `off`, and the firmware +does not infer lost status from GPS, distance, or a missing phone connection. + +This is included in nRF52, ESP32 and RP2040 Companion profiles, including +T1000-E and RAK Tag. Compact STM32 Companion images omit it to preserve their +existing application and filesystem boundaries. A custom build can explicitly +enable `MESH_ENABLE_LOST_REPLY=1` when its flash budget permits; the normal +flash and RAM checks still apply. + +Configure it through a directly connected local Companion CLI: + +~~~text +get lost.reply +set lost.reply no +set lost.reply yes +set lost.reply off +~~~ + +The setting survives reboot and takes effect immediately. USB, BLE and other +local Companion transports can use framed command `0x42`. Builds with a text +terminal also accept these commands there. LoRa CLI cannot read or change this +local setting. A failed save restores the previous answer and reports an error. +Older saved preference images load the new setting as `off`. + +ESP32 Companions with WebConfig also have a **Lost-status auto reply** +selection on the radio configuration page. Choose Off, Reply No or Reply Yes +and save. The control is shown only on Companion firmware with this capability. +The existing mobile app protocol needs no new message type; a native app toggle +is not added by this firmware change. + +## Dog tracker example + +The owner's Companion stores the tracker as a normal radio contact. Set the +answer to `no` during normal operation. If the dog is lost, set it to `yes`. +When the tracker sends `Am I lost?` privately to that reachable Companion, it +receives the selected answer, even when the owner's phone is disconnected. +The same configured answer applies to all eligible contacts on this Companion. + +A tracker client can use that answer to choose its reporting behavior, but its +check-in schedule, sleep/wake policy and GPS reporting must be configured in +the tracker client firmware. The tracker must stay awake for the separate +private answer; a delivery ACK for the question is not that answer. These plain +text answers have no request ID, so a delayed answer cannot be precisely +correlated with a newer check-in. The responding Companion must be powered on +and reachable when a question arrives. For mail that waits while a tracker sleeps, +use [a personal room mailbox](room_services.md#sleeping-tracker-example). + +## Matching and traffic limits + +Only an authenticated ordinary private message from a known persistent radio +contact is eligible. The contact must be an ordinary Companion/chat contact; +room-server and repeater contacts are excluded. Temporary unknown senders, +public channels, room chat posts and CLI messages do not trigger a response. + +The exact phrase `am I lost` is matched without regard to ASCII letter case, +with an optional final question mark and surrounding whitespace. Extra words +or commands do not match. The reply is ordinary encrypted private text, `Yes` +or `No`, and neither answer can trigger another automatic reply. + +Automatic responses are limited to one per contact per minute and one globally +per ten seconds. A bounded four-peer cache uses full public keys and the +incoming request timestamp to suppress retries. Its state clears on reboot. +The same retained request is not answered again; a fresh check uses a new +timestamp. An old retry can receive another answer after a newer request +replaces its saved timestamp or its peer slot is evicted. Queueing an answer +records the request even if later delivery fails. An unanswered poll means +unknown, and the tracker should trust replies only from its configured +Companion's full public key. + +The responder leaves packet capacity for normal receive/ACK work, uses a free +ACK-tracking entry, and does not replace pending user messages or their +delivery deadlines. Busy packet or ACK capacity, or a failed send, can prevent an answer; +the tracker should retry later. A full offline app inbox does not disable the +responder. Normal message reception and notification behavior remain in place. diff --git a/docs/companion_offline_queue.md b/docs/companion_offline_queue.md index 022d1c329..286abf3e7 100644 --- a/docs/companion_offline_queue.md +++ b/docs/companion_offline_queue.md @@ -17,6 +17,7 @@ A reboot clears it. | ESP32 without PSRAM | 256 | | nRF52840 with at most 300 contact slots | 256 | | nRF52840 with more than 300 contacts and the contact cache (non-mOTA-shared queue) | 256 total: up to 15 held DMs use slots until accepted | +| RAK WisMesh Tag ordinary BLE Companion | 240 total: up to 15 held DMs use slots until accepted | | nRF52840 with more than 300 contacts but no contact cache | 208 ordinary frames plus a separate 15-DM queue | | nRF52 Full Companion with the memory correction | 256 normally; 128 while mOTA owns shared storage | | RP2040 | 256 | @@ -60,6 +61,13 @@ Uncached high-contact profiles keep the conservative 208-frame default and separate held queue. An explicit target `OFFLINE_QUEUE_SIZE` still takes precedence. +The ordinary RAK WisMesh Tag BLE profile uses 240 frames to retain the runtime +RAM reserve for Bluetooth, filesystem buffers, and the main task. It keeps +350 contact slots and 40 group channels. All 240 slots are available when no +DMs are held; 15 held DMs leave 225 ordinary slots. This saves 2,832 bytes +compared with 256 frames. The Tag Full Companion retains 256 frames normally +and 128 while mOTA borrows queue storage. + Each queue slot currently costs 177 bytes. A 256-frame queue reserves 45,312 bytes, while a 512-frame queue reserves 90,624 bytes. There is no 256-frame protocol limit: the queue length and indexes can represent 512 or more. The diff --git a/docs/room_services.md b/docs/room_services.md index 4d56f24d6..cff99aac2 100644 --- a/docs/room_services.md +++ b/docs/room_services.md @@ -105,6 +105,9 @@ Room Server provides the room-side queue and polling protocol. A tracker still needs client firmware that schedules check-ins and interprets authenticated commands. Ordinary mailbox text is never executed as a CLI command, and does not itself enable a tracker, wake it remotely or change its GPS reporting rate. +For a reachable owner's Companion, the optional +[lost-status auto responder](companion_lost_reply.md) can also answer a private +`Am I lost?` question with a saved `Yes` or `No`. ### Wi-Fi mailbox management diff --git a/docs/test-results/companion_lost_reply.md b/docs/test-results/companion_lost_reply.md new file mode 100644 index 000000000..aad55e54c --- /dev/null +++ b/docs/test-results/companion_lost_reply.md @@ -0,0 +1,94 @@ + + + + +# Companion lost-status response validation + +Validated on 2026-10-10. These are production-path host tests, browser tests +and firmware builds. No lab radio was flashed for this feature; this report +does not qualify a sleeping tracker client or a live LoRa exchange. + +## Automated checks + +The responder test executes the actual private receive callback, message +composition/send functions, ACK handling and local CLI policy. Seven compiled +variants cover normal and shared one-key DM queues, a text terminal, explicit +STM32 enablement, default STM32 exclusion and explicit exclusion elsewhere. +AddressSanitizer and UndefinedBehaviorSanitizer checks passed. + +Coverage includes exact question matching, Yes/No loop avoidance, known full +identities, temporary/unknown contacts, room/channel/CLI exclusions, a full +offline inbox, duplicate requests, cooldowns, clock wrap, busy packet/ACK +capacity, send failures and preservation of pending user messages/deadlines. +Queueing the response preserves the shared send timer. ACK reception retains +the existing shared-timer behavior; independent per-message expiry continues +to protect pending user deliveries. +Excluded builds have no responder state, automatic send, successful setting +command, save or WebConfig capability. + +Saved preference tests cover all three values, all 256 stored byte values, +legacy images loading off, reboot, atomic save failures, recovery copies and +runtime adapter preservation. Existing CLI, delivery, inbox, notifications +and preference regression suites passed after updating adapters for the new +append-only preference byte. + +WebConfig tests execute the actual JSON and settings handlers with +ArduinoJson. Chromium exercises Off -> No -> Yes -> Off, Companion-only +visibility and the absence of the control on infrastructure roles. Existing +browser, authorization, secret masking and generated asset checks passed. +Both new suites are included in the unit-test workflow. + +## Capacity and reliability + +The responder cache is 184 bytes on ARM and retains four complete public keys. +The saved preference uses an existing padding byte in the tested ARM preference +object and one new byte in its explicit storage image. No heap allocation is +introduced by the responder. + +Compact STM32 Companion images exceeded their existing application boundary +when the responder was included. Those default to `MESH_ENABLE_LOST_REPLY=0`, +preserving their existing features and filesystem layout. Explicit opt-in is +tested synthetically and remains subject to the normal capacity checks. + +The ordinary RAK WisMesh Tag BLE queue uses 240 frames, retaining 350 contacts +and 40 channels and saving 2,832 bytes. Source comparison showed that its prior +256-frame recipe was already below the current runtime RAM allowance before +the new 184-byte responder cache. Full retains its 256-frame shared queue. +Sanitized tests exercise real FIFO wrapping, downloads and held-DM isolation +at 240 slots, plus the production Full override. + +Queueing an answer suppresses that request even if later delivery fails. A +tracker needs a fresh timestamp for a later poll, must stay awake for the +private answer, and must authenticate its configured Companion. Plain Yes/No +answers do not contain a poll ID, so delayed replies cannot be precisely +correlated with a newer poll. An unanswered poll means unknown. + +## Firmware build qualification + +All ten final builds passed flash and internal RAM policy checks. Compact +STM32 and both Full targets were also packaged using the normal +`v1.17.1.9-halo-keymind-cascade-dev` label. Ordinary targets used their normal +PlatformIO recipes. Full nRF52 UF2 boundaries and applicable Bluetooth DFU +handoff checks passed. These are local qualification artifacts, not new +published release assets. + +| Companion target | Responder | Flash used / limit (bytes) | Link-time internal RAM available / required (bytes) | +| --- | --- | --- | --- | +| RAK 3x72 USB | Excluded | 228,924 / 229,376 | 24,728 / 17,408 | +| Tiny Relay USB | Excluded | 228,944 / 229,376 | 24,728 / 17,408 | +| Wio-E5 Mini USB | Excluded | 228,888 / 229,376 | 24,704 / 17,408 | +| Wio-E5 USB | Excluded | 229,008 / 229,376 | 24,736 / 17,408 | +| T1000-E Full | Included | 607,480 / 708,608 | 87,064 / 44,864 | +| RAK WisMesh Tag Full | Included | 649,408 / 712,704 | 82,112 / 44,864 | +| T1000-E USB | Included | 426,756 / 708,608 | 48,248 / 38,944 | +| Pico W USB | Included | 640,180 / 1,568,768 | 101,712 / 17,408 | +| Heltec V4 BLE | Included | 1,550,217 / 6,553,600 | 263,448 / 118,560 | +| RAK WisMesh Tag BLE | Included | 459,564 / 712,704 | 46,316 / 44,864 | + +The STM32 historical-size table uses byte entries while retaining a 32-bit +input file size; exhaustive tests reject oversized aliases and partial +images. Tiny Relay and Wio-E5 use the size option already used by neighboring +STM32 recipes. Existing terminal help was combined into fewer writes while +retaining its text, order and 256-byte maximum per write. Supported images +also show the new lost-reply commands. Contacts, channels and filesystem +boundaries are unchanged on those compact boards. diff --git a/docs/test-results/index.md b/docs/test-results/index.md index 0a6c07cd7..33468a895 100644 --- a/docs/test-results/index.md +++ b/docs/test-results/index.md @@ -40,6 +40,7 @@ Completed validation reports, experiments, and test guides are collected here. O ## Companion, USB, BLE, and display +- [Companion lost-status replies](companion_lost_reply.md) - [Contact-cache and NimBLE RAM qualification](companion_contact_cache_results.md) - [USB Companion ASCII default validation](companion_usb_ascii_validation.md) - [USB Companion client compatibility](companion_usb_client_validation.md) @@ -54,6 +55,7 @@ Completed validation reports, experiments, and test guides are collected here. O ## Build, storage, memory, and checklists +- [Personal room mailbox checks](room_mailboxes.md) - [Stock nRF52 bootloader version audit](bootloader_version_stock_audit.md) - [CLI setting dispatch audit](cli_settings_audit.md) - [Hardware validation checklist](hardware_validation_checklist.md) diff --git a/examples/companion_radio/CompanionFeatures.h b/examples/companion_radio/CompanionFeatures.h index f73b9a109..c6a2d65f6 100644 --- a/examples/companion_radio/CompanionFeatures.h +++ b/examples/companion_radio/CompanionFeatures.h @@ -2,6 +2,17 @@ #include #include +// Compact STM32 Companion images retain their existing application/filesystem +// boundary. The persistent preference stays in the shared wire image even +// when the optional private responder is excluded from an image. +#ifndef MESH_ENABLE_LOST_REPLY + #if defined(STM32_PLATFORM) + #define MESH_ENABLE_LOST_REPLY 0 + #else + #define MESH_ENABLE_LOST_REPLY 1 + #endif +#endif + // STM32WL has only 224 KiB of application flash. Keep its established image // within that boundary; larger targets provide the programmable alert engine. #ifndef COMPANION_FEATURE_NOTIFICATIONS diff --git a/examples/companion_radio/DataStore.cpp b/examples/companion_radio/DataStore.cpp index cf8422dbe..5d4a17c4e 100644 --- a/examples/companion_radio/DataStore.cpp +++ b/examples/companion_radio/DataStore.cpp @@ -1052,6 +1052,8 @@ bool DataStore::loadPrefsInt(const char *filename, // Older images have no independent debug preference. Never inherit a // runtime-on value when loading one of those images. loaded_prefs.usb_debug_enabled = 0; + // Old images cannot opt in using an unrelated runtime preference value. + loaded_prefs.lost_reply = 0; double loaded_lat = node_lat; double loaded_lon = node_lon; // The original image ended after ble_pin at byte 84. Later releases only @@ -1059,7 +1061,14 @@ bool DataStore::loadPrefsInt(const char *filename, // actually emitted by those releases, but reject a truncated field/group // or an unknown tail before any value reaches the live preferences. static const uint32_t MIN_PREFS_SIZE = 84; - static const uint16_t KNOWN_PREFS_SIZES[] = { +#if defined(STM32_PLATFORM) + // All published STM32 image lengths fit in one byte. The file size below + // remains wide so oversized files cannot alias an accepted legacy length. + using PrefsImageSize = uint8_t; +#else + using PrefsImageSize = uint16_t; +#endif + static const PrefsImageSize KNOWN_PREFS_SIZES[] = { 84, 85, 90, 91, 92, 93, 140, 141, 142, 143, 144, 155, 156, 157, 158, 159, 159 + sizeof(loaded_prefs.bluetooth_name), @@ -1120,6 +1129,13 @@ bool DataStore::loadPrefsInt(const char *filename, 332, #else 235, +#endif +#ifdef TBEAM_1W + 243, // Opt-in lost reply, appended after independent USB debug +#elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) + 333, +#else + 236, #endif }; const uint32_t prefs_size = file.size(); @@ -1281,6 +1297,7 @@ bool DataStore::loadPrefsInt(const char *filename, sizeof(loaded_prefs.gps_sync_interval_hours)); readOptionalField(&loaded_prefs.usb_debug_enabled, sizeof(loaded_prefs.usb_debug_enabled)); + readOptionalField(&loaded_prefs.lost_reply, sizeof(loaded_prefs.lost_reply)); #endif // Any bytes left over form only part of a historically appended field. @@ -1290,6 +1307,7 @@ bool DataStore::loadPrefsInt(const char *filename, file.close(); if (!success) return false; loaded_prefs.usb_debug_enabled = loaded_prefs.usb_debug_enabled == 1 ? 1 : 0; + loaded_prefs.lost_reply = loaded_prefs.lost_reply <= 2 ? loaded_prefs.lost_reply : 0; if (!_prefs.copyPersistedValuesFrom(loaded_prefs)) return false; node_lat = loaded_lat; node_lon = loaded_lon; @@ -1318,7 +1336,7 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou if (file) { #if defined(STM32_PLATFORM) && defined(__GNUC__) using namespace mesh::companion_prefs; - uint8_t image[235]; + uint8_t image[236]; const uint8_t pad[4] = {}; size_t used = 0; for (const PrefField& field : PREF_FIELDS) { @@ -1337,7 +1355,7 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou #if defined(STM32_PLATFORM) // Keep the explicit wire field list, but make one bounded atomic write. // Other platforms retain direct writes and their existing stack footprint. - uint8_t image[235]; + uint8_t image[236]; size_t image_length = 0; const auto writeField = [&](const void* data, size_t size) -> bool { if (image_length > sizeof(image) @@ -1467,11 +1485,11 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou #endif // Pack only the explicit persisted tail, never the class's padded layout. // memcpy retains the GPS field's established native byte representation. - uint8_t tail[9] = { + uint8_t tail[10] = { _prefs.flood_retry_attempts, _prefs.flood_retry_max_path, _prefs.flood_retry_group_max_path, _prefs.flood_retry_advert_enabled, _prefs.one_key_dm_enabled, _prefs.bluetooth_enabled, 0, 0, - _prefs.usb_debug_enabled}; + _prefs.usb_debug_enabled, _prefs.lost_reply}; memcpy(tail + 6, &_prefs.gps_sync_interval_hours, sizeof(_prefs.gps_sync_interval_hours)); success = success && writeField(tail, sizeof(tail)); diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 4ec99ecab..4ecbdfe59 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -1785,8 +1785,68 @@ bool MyMesh::sendFleetCommandData(mesh::GroupChannel& channel, const uint8_t* en } #endif +#if MESH_ENABLE_LOST_REPLY +void MyMesh::maybeReplyToLostQuestion(const ContactInfo& from, + uint32_t sender_timestamp, const char* text) { + if ((_prefs.lost_reply != mesh::companion::LostReplyNo + && _prefs.lost_reply != mesh::companion::LostReplyYes) + || from.type != ADV_TYPE_CHAT || isTransientContact(from) + || !mesh::companion::isLostReplyQuestion(text)) return; + + // Contact cache references are borrowed. Preserve identity before servicing + // other sends, then acquire the recipient only when ready to compose it. + uint8_t recipient_key[PUB_KEY_SIZE]; + memcpy(recipient_key, from.id.pub_key, sizeof(recipient_key)); + const uint32_t now = _ms->getMillis(); + if (!lost_reply_limiter.canReply(recipient_key, sender_timestamp, now)) return; + + expireExpectedAcks(); + AckTableEntry* available = NULL; + for (AckTableEntry& entry : expected_ack_table) { + if (entry.ack == 0) { available = &entry; break; } + } + // Automatic answers must leave ordinary sends and their ACK/RX reserve + // intact. A busy application can retry its question after capacity returns. + if (available == NULL || _mgr->getFreeCount() <= 2) return; + ContactInfo* recipient = lookupPersistentContactByPubKey(recipient_key, PUB_KEY_SIZE); + if (recipient == NULL || recipient->type != ADV_TYPE_CHAT) return; + const char* answer = _prefs.lost_reply == mesh::companion::LostReplyYes ? "Yes" : "No"; + const uint32_t timestamp = getRTCClock()->getCurrentTimeUnique(); + uint32_t expected_ack = 0, timeout = 0; + // The final argument receives the actual packet hash for ACK cancellation. No + // semantic message retry key is supplied, so user sends are not replaced. + uint8_t retry_key[MAX_HASH_SIZE] = {}; + const int result = sendMessageDetached(*recipient, timestamp, answer, + expected_ack, timeout, retry_key); + // Automatic ACKs use the existing per-entry expiry service. Do not move an + // application or terminal send's shared BaseChatMesh timeout deadline. + if (result == MSG_SEND_FAILED) return; + + lost_reply_limiter.rememberReply(recipient_key, sender_timestamp, now); + if (expected_ack != 0) { + clearExpectedAck(*available, false); + available->msg_sent = now; + available->expires_at = futureMillis(timeout); + available->ack = expected_ack; + available->message_timestamp = timestamp; + available->contact = recipient; + memcpy(available->retry_key, retry_key, sizeof(available->retry_key)); + mesh::Utils::sha256(available->text_fingerprint, sizeof(available->text_fingerprint), + recipient_key, PUB_KEY_SIZE, + (const uint8_t*)answer, strlen(answer)); + // No application or terminal transport owns this automatic send. + available->reply_route = NULL; + expireExpectedAcks(); + } +} +#endif + void MyMesh::onMessageRecv(const ContactInfo &from, mesh::Packet *pkt, uint32_t sender_timestamp, const char *text) { +#if MESH_ENABLE_LOST_REPLY + // Answer independently of app inbox capacity, including held/retried DMs. + maybeReplyToLostQuestion(from, sender_timestamp, text); +#endif #if MESH_ENABLE_ONE_KEY_DM uint8_t dm_id[ONE_KEY_DM_ID_SIZE]; makeOneKeyDMId(dm_id, sender_timestamp, text); @@ -4551,12 +4611,18 @@ void MyMesh::getNodeSnapshot(WebConfigServer::NodeSnapshot& s) { s.rx_ps_rx_us = _prefs.rx_ps_rx_us; s.rx_ps_sleep_us = _prefs.rx_ps_sleep_us; s.power_saving = _prefs.powersaving_enabled; +#if MESH_ENABLE_LOST_REPLY + s.lost_reply = _prefs.lost_reply; +#endif #ifdef WITH_MQTT_BRIDGE s.mqtt_enabled = _mqtt_enabled; #endif s.repeat = _prefs.client_repeat != 0; s.capabilities = WebConfigServer::CAP_LOCATION | WebConfigServer::CAP_AIRTIME | WebConfigServer::CAP_RX_DELAY | WebConfigServer::CAP_POWER_SAVING; +#if MESH_ENABLE_LOST_REPLY + s.capabilities |= WebConfigServer::CAP_LOST_REPLY; +#endif #ifdef BLE_PIN_CODE s.capabilities |= WebConfigServer::CAP_BLUETOOTH_NAME | WebConfigServer::CAP_BLUETOOTH_MAC @@ -9450,9 +9516,9 @@ void MyMesh::handleTerminalCommand(char* command) { " stats-core / stats-radio / stats-radio-diag / stats-packets\r\n" " get prv.key (when private key export is enabled)\r\n" " get password (this role has no admin password)\r\n" - " erase (erase stored settings and identity)\r\n"); - terminalOutput().print(" board\r\n"); - terminalOutput().print(" version\r\n"); + " erase (erase stored settings and identity)\r\n" + " board\r\n" + " version\r\n"); terminalOutput().print(" get storage.layout\r\n"); #if defined(NRF52_PLATFORM) && defined(EXTRAFS) && !defined(QSPIFLASH) terminalOutput().print(" get flash.health\r\n"); @@ -9477,8 +9543,8 @@ void MyMesh::handleTerminalCommand(char* command) { " set display.inbox \r\n" " set display.rotation <0|90|180|270>\r\n" " get display.touch\r\n" - " set display.touch (this boot only)\r\n"); - terminalOutput().print(" get public.key\r\n"); + " set display.touch (this boot only)\r\n" + " get public.key\r\n"); terminalOutput().print( " set {name|lat|lon|freq|tx|af} {value}\r\n" " get wifi|espnow|2.4ghz\r\n" @@ -9495,8 +9561,10 @@ void MyMesh::handleTerminalCommand(char* command) { terminalOutput().print(" get bluetooth.stealth\r\n"); terminalOutput().print(" set bluetooth.stealth on|off\r\n"); #endif - terminalOutput().print(" set pin <0-999999>\r\n"); - terminalOutput().print(" powersaving [on|off]\r\n"); +#if MESH_ENABLE_LOST_REPLY + terminalOutput().print(" get lost.reply\r\n" " set lost.reply \r\n"); +#endif + terminalOutput().print(" set pin <0-999999>\r\n" " powersaving [on|off]\r\n"); #if MESH_USB_LOGGING_AVAILABLE terminalOutput().print( " get usb.logging\r\n" @@ -9642,6 +9710,10 @@ static bool isCompanionRadioPrefsCommand(const char* command) { // Called only for directly attached USB/BLE/TCP/browser clients. Commands // received over LoRa use handleCommand() with a nonzero sender timestamp. bool MyMesh::handleDirectCommand(const char* command, char* reply, size_t reply_size) { +#if MESH_ENABLE_LOST_REPLY + if (mesh::companion::handleLostReplyCommand( + _prefs, command, reply, reply_size, [this]() { return savePrefs(); })) return true; +#endif #ifdef MESH_BUTTON_AUDIO_HIL // Present only in an explicitly instrumented physical-test build. if (_ui && _ui->handleButtonAudioTest(command, reply, reply_size)) return true; diff --git a/examples/companion_radio/MyMesh.h b/examples/companion_radio/MyMesh.h index 329ad9807..fa9f909f0 100644 --- a/examples/companion_radio/MyMesh.h +++ b/examples/companion_radio/MyMesh.h @@ -43,6 +43,9 @@ #include #include #include +#if MESH_ENABLE_LOST_REPLY +#include +#endif #include #include #include @@ -807,6 +810,11 @@ private: }; #define EXPECTED_ACK_TABLE_SIZE 8 AckTableEntry expected_ack_table[EXPECTED_ACK_TABLE_SIZE]; // circular table +#if MESH_ENABLE_LOST_REPLY + mesh::companion::LostReplyLimiter lost_reply_limiter; + void maybeReplyToLostQuestion(const ContactInfo& from, uint32_t sender_timestamp, + const char* text); +#endif #if MESH_ENABLE_ONE_KEY_DM // A recent ACK proves that peer can decrypt our normal text packets. Retry // attempts still send the introduction in case its contact was later erased. diff --git a/examples/companion_radio/NodePrefs.h b/examples/companion_radio/NodePrefs.h index 065566b9f..35abbae71 100644 --- a/examples/companion_radio/NodePrefs.h +++ b/examples/companion_radio/NodePrefs.h @@ -115,6 +115,8 @@ public: // Debug verbosity is independent of the packet/output master switch. Keep // this after the published GPS cadence so legacy images default to quiet. uint8_t usb_debug_enabled = 0; + // Appended opt-in private-message response: 0=off, 1=no, 2=yes. + uint8_t lost_reply = 0; private: class RadioPrefs : public CommonRadioPrefs { @@ -253,22 +255,22 @@ public: // untouched, and leave a normally constructed snapshot's adapters local. bool copyPersistedValuesFrom(const CompanionNodePrefs& source) { if (&source == this) return true; - static_assert(sizeof(usb_debug_enabled) == sizeof(uint8_t), - "The published USB debug preference is one byte"); + static_assert(sizeof(lost_reply) == sizeof(uint8_t), + "The published lost reply preference is one byte"); const uintptr_t first = reinterpret_cast(&airtime_factor); - const uintptr_t last = reinterpret_cast(&usb_debug_enabled); + const uintptr_t last = reinterpret_cast(&lost_reply); if (last < first - || last - first > sizeof(*this) - sizeof(usb_debug_enabled)) { + || last - first > sizeof(*this) - sizeof(lost_reply)) { return false; } const size_t size = static_cast(last - first) - + sizeof(usb_debug_enabled); + + sizeof(lost_reply); const auto bounded = [size](const CompanionNodePrefs& values) -> bool { const uintptr_t object = reinterpret_cast(&values); const uintptr_t begin = reinterpret_cast(&values.airtime_factor); const uintptr_t end = - reinterpret_cast(&values.usb_debug_enabled); + reinterpret_cast(&values.lost_reply); const uintptr_t radio_begin = reinterpret_cast(&values.radio); const uintptr_t custom_begin = reinterpret_cast(&values.custom); // Subtractions happen only after the corresponding ordering checks. @@ -276,7 +278,7 @@ public: return begin >= object && begin - object <= sizeof(values) && size <= sizeof(values) - static_cast(begin - object) && end >= begin - && end - begin == size - sizeof(values.usb_debug_enabled) + && end - begin == size - sizeof(values.lost_reply) && radio_begin >= begin && size <= radio_begin - begin && custom_begin >= begin && size <= custom_begin - begin; }; diff --git a/examples/companion_radio/PrefsStorageLayout.h b/examples/companion_radio/PrefsStorageLayout.h index 307d95b47..180c9197d 100644 --- a/examples/companion_radio/PrefsStorageLayout.h +++ b/examples/companion_radio/PrefsStorageLayout.h @@ -29,8 +29,8 @@ constexpr PrefField prefField() { static_assert(Offset < PrefsLat && Length <= UINT8_MAX, "compact preference field bounds"); static_assert(Offset + Length <= - __builtin_offsetof(CompanionNodePrefs, usb_debug_enabled) - + sizeof(CompanionNodePrefs::usb_debug_enabled), + __builtin_offsetof(CompanionNodePrefs, lost_reply) + + sizeof(CompanionNodePrefs::lost_reply), "preference field stays before runtime adapters"); static_assert(Offset + Length <= sizeof(CompanionNodePrefs), "preference field stays inside its object"); @@ -114,6 +114,7 @@ static constexpr PrefField PREF_FIELDS[] = { PREF_FIELD(bluetooth_enabled, 1), PREF_FIELD(gps_sync_interval_hours, 2), PREF_FIELD(usb_debug_enabled, 1), + PREF_FIELD(lost_reply, 1), }; #undef PREF_FIELD #pragma GCC diagnostic pop @@ -122,7 +123,7 @@ constexpr size_t wireSize(size_t count) { return count == 0 ? 0 : PREF_FIELDS[count - 1].length + wireSize(count - 1); } static_assert(wireSize(MANDATORY_FIELDS) == 84, "published mandatory image size"); -static_assert(wireSize(FIELD_COUNT) == 235, "published STM32 preference image size"); +static_assert(wireSize(FIELD_COUNT) == 236, "published STM32 preference image size"); static const void* prefValue(const PrefField& field, const CompanionNodePrefs& values, diff --git a/mkdocs.yml b/mkdocs.yml index 1ed5d851e..a3f64cb6b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -81,6 +81,7 @@ nav: - WiFi.md - flood_filtering.md - gps_tracking.md + - companion_lost_reply.md - nrf52_power_management.md - CLI and protocol reference: - cli_commands.md diff --git a/src/helpers/BaseChatMesh.cpp b/src/helpers/BaseChatMesh.cpp index 571ffca22..155b0eef4 100644 --- a/src/helpers/BaseChatMesh.cpp +++ b/src/helpers/BaseChatMesh.cpp @@ -671,6 +671,18 @@ int BaseChatMesh::sendMessage(const ContactInfo& recipient, uint32_t timestamp, return rc; } +int BaseChatMesh::sendMessageDetached(const ContactInfo& recipient, + uint32_t timestamp, const char* text, + uint32_t& expected_ack, + uint32_t& est_timeout, + uint8_t* packet_hash) { + const unsigned long previous_timeout = txt_send_timeout; + const int result = sendMessage(recipient, timestamp, 0, text, expected_ack, + est_timeout, packet_hash); + txt_send_timeout = previous_timeout; + return result; +} + int BaseChatMesh::sendCommandData(const ContactInfo& recipient, uint32_t timestamp, uint8_t attempt, uint8_t txt_type, const char* text, diff --git a/src/helpers/BaseChatMesh.h b/src/helpers/BaseChatMesh.h index 7cb8f5645..6ece54f53 100644 --- a/src/helpers/BaseChatMesh.h +++ b/src/helpers/BaseChatMesh.h @@ -100,6 +100,11 @@ class BaseChatMesh : public mesh::Mesh { protected: void sendAckTo(const ContactInfo& dest, const uint8_t* ack_hash, uint8_t ack_len=4); + // Autonomous replies have independent ACK tracking and must preserve the + // application/terminal send's shared timeout. + int sendMessageDetached(const ContactInfo& recipient, uint32_t timestamp, + const char* text, uint32_t& expected_ack, + uint32_t& est_timeout, uint8_t* packet_hash); BaseChatMesh(mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::PacketManager& mgr, mesh::MeshTables& tables) : mesh::Mesh(radio, ms, rng, rtc, mgr, tables) { diff --git a/src/helpers/CompanionLostReply.h b/src/helpers/CompanionLostReply.h new file mode 100644 index 000000000..086a96dd6 --- /dev/null +++ b/src/helpers/CompanionLostReply.h @@ -0,0 +1,135 @@ +#pragma once + +#include +#include +#include +#include + +namespace mesh { +namespace companion { + +// This is an owner-selected answer, never an assessment of a GPS position. +// Values are also the append-only Companion preference representation. +enum LostReply : uint8_t { LostReplyOff = 0, LostReplyNo = 1, LostReplyYes = 2 }; + +inline bool lostReplyWhitespace(char c) { + return c == ' ' || uint8_t(c - '\t') <= uint8_t('\r' - '\t'); +} + +inline bool isLostReplyQuestion(const char* text) { + if (text == NULL) return false; + while (lostReplyWhitespace(*text)) ++text; + static const char question[] = "am i lost"; + for (size_t i = 0; i < sizeof(question) - 1; ++i) { + char c = *text++; + if (c >= 'A' && c <= 'Z') c = char(c + ('a' - 'A')); + if (c != question[i]) return false; + } + if (*text == '?') ++text; + while (lostReplyWhitespace(*text)) ++text; + return *text == 0; +} + +inline const char* lostReplyName(uint8_t value) { + return value == LostReplyNo ? "no" : value == LostReplyYes ? "yes" : "off"; +} + +// Only directly attached clients call this handler. No radio CLI route may +// change the locally saved answer, even with a remote CLI permission flag. +template +bool handleLostReplyCommand(Prefs& prefs, const char* command, char* reply, + size_t capacity, Save save) { + if (strcmp(command, "get lost.reply") == 0) { + snprintf(reply, capacity, "> %s", lostReplyName(prefs.lost_reply)); + return true; + } + const char prefix[] = "set lost.reply "; + if (strncmp(command, prefix, sizeof(prefix) - 1) != 0) return false; + const char* value = command + sizeof(prefix) - 1; + uint8_t selected; + if (strcmp(value, "off") == 0) selected = LostReplyOff; + else if (strcmp(value, "no") == 0) selected = LostReplyNo; + else if (strcmp(value, "yes") == 0) selected = LostReplyYes; + else { + snprintf(reply, capacity, "Error: use off, no or yes"); + return true; + } + const uint8_t previous = prefs.lost_reply; + prefs.lost_reply = selected; + if (!save()) { + prefs.lost_reply = previous; + snprintf(reply, capacity, "Error: could not save lost reply"); + } else { + snprintf(reply, capacity, "> lost.reply %s", value); + } + return true; +} + +// Four retained full peer identities bound both memory and response traffic. +// A peer slot cannot be evicted during its minute-long cooldown. Exact radio +// retries remain suppressed while that peer's last answered request is kept; +// this runtime cache is intentionally cleared by a reboot. +class LostReplyLimiter { +public: + static constexpr size_t PeerCount = 4; + static constexpr size_t KeySize = 32; + static constexpr uint32_t PeerIntervalMillis = 60000; + static constexpr uint32_t GlobalIntervalMillis = 10000; + + LostReplyLimiter() : last_reply_(0), replied_(false) { + memset(peers_, 0, sizeof(peers_)); + } + + bool canReply(const uint8_t* key, uint32_t timestamp, uint32_t now) const { + return replySlot(key, timestamp, now) >= 0; + } + + void rememberReply(const uint8_t* key, uint32_t timestamp, uint32_t now) { + const int chosen = replySlot(key, timestamp, now); + if (chosen < 0) return; + Peer& peer = peers_[chosen]; + memcpy(peer.key, key, KeySize); + peer.timestamp = timestamp; + peer.replied_at = now; + peer.valid = true; + last_reply_ = now; + replied_ = true; + } + +private: + struct Peer { + uint8_t key[KeySize]; + uint32_t timestamp; + uint32_t replied_at; + bool valid; + }; + Peer peers_[PeerCount]; + uint32_t last_reply_; + bool replied_; + + // Share the full identity/cooldown scan between admission and commit. + // Inlining both copies costs flash on constrained Companion targets. +#if defined(__GNUC__) + __attribute__((noinline)) +#endif + int replySlot(const uint8_t* key, uint32_t timestamp, uint32_t now) const { + if (key == NULL || (replied_ && uint32_t(now - last_reply_) < GlobalIntervalMillis)) + return -1; + int available = -1; + for (size_t i = 0; i < PeerCount; ++i) { + const Peer& peer = peers_[i]; + if (peer.valid && memcmp(peer.key, key, KeySize) == 0) { + return peer.timestamp != timestamp + && uint32_t(now - peer.replied_at) >= PeerIntervalMillis ? int(i) : -1; + } + if (available < 0 && (!peer.valid + || uint32_t(now - peer.replied_at) >= PeerIntervalMillis)) available = int(i); + } + return available; + } +}; + +static_assert(sizeof(LostReplyLimiter) <= 192, "lost reply state stays bounded"); + +} // namespace companion +} // namespace mesh diff --git a/src/helpers/WebConfigKeys.h b/src/helpers/WebConfigKeys.h index 117a0470a..9f8020f1b 100644 --- a/src/helpers/WebConfigKeys.h +++ b/src/helpers/WebConfigKeys.h @@ -18,7 +18,7 @@ // separately, see wcIsAdminPasswordKey below. static const char* const WC_ALLOWED_SET_KEYS[] = { // NodePrefs (radio / node) - "name", "bluetooth.name", "bluetooth.mac", "bluetooth.stealth", + "name", "bluetooth.name", "bluetooth.mac", "bluetooth.stealth", "lost.reply", "lat", "lon", "radio", "tx", "af", "rxdelay", "txdelay", "cad", "radio.rxgain", "radio.fem.rxgain", "radio.fem.txgain", "radio.rxps", "powersaving", "repeat", diff --git a/src/helpers/esp32/WebConfigHtml.h b/src/helpers/esp32/WebConfigHtml.h index a69b8496e..3565f9847 100644 --- a/src/helpers/esp32/WebConfigHtml.h +++ b/src/helpers/esp32/WebConfigHtml.h @@ -1,46 +1,46 @@ // Auto-generated by scripts/generate_webconfig_html.py from webui/index.html // DO NOT EDIT - edit webui/index.html instead. // Compressed with Google Zopfli 0.4.3 (gzip, 1000 iterations). -// shipped-page-sha256: a91ff84d309bc581ecd0558b9c1c2985f212564425417a13f95c34b03627a85e +// shipped-page-sha256: d8cd1d7ff869526cb1fd4ee17190076930529bf975fbb5e2cef05b40980469e4 #pragma once #include #include -const uint32_t WEBCONFIG_HTML_GZ_LEN = 34038; -const char WEBCONFIG_HTML_ETAG[] = "\"72583d025af248b5\""; -const char WEBCONFIG_HTML_VERSION[] = "2d0842255cf9e90a"; +const uint32_t WEBCONFIG_HTML_GZ_LEN = 34215; +const char WEBCONFIG_HTML_ETAG[] = "\"8e687818f666d160\""; +const char WEBCONFIG_HTML_VERSION[] = "978998947ecc4961"; const uint16_t WEBCONFIG_HTML_LOADER_LEN = 461; const uint16_t WEBCONFIG_HTML_SUCCESS_LEN = 65; const uint8_t WEBCONFIG_HTML_LOADER[] PROGMEM = { - 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x52,0x47,0x97,0x9c,0x30, - 0x0c,0xfe,0x2b,0xce,0x56,0x3c,0x85,0x65,0x7b,0x01,0x4f,0x0a,0x2f,0xa7,0xf4,0x7e, - 0xf6,0x18,0xb1,0xf8,0xc5,0x23,0xf1,0x84,0x18,0xb6,0xf1,0xdf,0x93,0x69,0xe9,0xd1, - 0x45,0xbd,0x7f,0xd9,0xa3,0x82,0x9c,0xdc,0xd6,0xa0,0x2a,0x99,0x85,0x49,0x36,0x03, - 0xb1,0xca,0x55,0x96,0x1b,0x10,0xd3,0x4a,0x39,0xbe,0x58,0xdb,0xd0,0xce,0xc0,0xcc, - 0x3d,0x74,0x35,0xb1,0x28,0x47,0x28,0x80,0x62,0xb6,0x3a,0x5f,0x48,0x65,0x0a,0x98, - 0x7b,0x07,0xe3,0xa5,0x32,0xf2,0xe8,0xc5,0xdb,0x30,0x6e,0x9c,0x0d,0x60,0x0e,0xb7, - 0x26,0x99,0x78,0x09,0x30,0x79,0x05,0x4d,0x95,0x13,0x83,0xfa,0x02,0xd3,0x9c,0xb0, - 0xf4,0xd7,0xd9,0xc1,0xca,0x93,0x4d,0xa9,0xb8,0x9d,0xbc,0x24,0x5b,0x78,0xbc,0x56, - 0x7f,0xc7,0xed,0x55,0x10,0x82,0xaf,0xd3,0xac,0x71,0xec,0x6b,0x99,0x44,0x65,0x8b, - 0x4e,0x3c,0x61,0xa4,0xef,0xe7,0x96,0x15,0x9a,0x24,0xdd,0x98,0x54,0x20,0x5b,0xac, - 0xed,0xb9,0xe9,0x3c,0x16,0xd4,0xc5,0x4f,0xa7,0xc4,0x92,0x13,0x0a,0x53,0x08,0xc0, - 0x23,0x67,0xf2,0xbd,0x3d,0x84,0x4e,0xe5,0x91,0x1e,0x89,0x71,0x7b,0x7b,0x0d,0xc8, - 0x47,0x3f,0x03,0x6a,0xe5,0xd7,0xe2,0x2e,0xb6,0x8b,0xcc,0x48,0xf7,0xa3,0xcb,0xe4, - 0x3b,0xe9,0xb4,0x04,0x71,0x55,0xb4,0x75,0xd0,0xfa,0xc7,0x73,0x73,0x54,0x24,0x17, - 0x27,0x47,0x47,0xa7,0xa7,0xae,0xbc,0x84,0xcb,0xc4,0x6e,0x8d,0xdc,0xe3,0xfb,0xc6, - 0x5f,0xa3,0x0d,0x57,0x2e,0x5e,0x09,0xfd,0xd5,0x7d,0xaf,0x63,0xa9,0x00,0x7f,0x16, - 0x66,0x7d,0xef,0xcb,0x88,0x63,0xfa,0xaa,0x19,0xa4,0x65,0x54,0x1c,0x0b,0xdc,0x48, - 0xa4,0xd3,0xa5,0xbd,0x11,0x2b,0x6d,0x63,0x8c,0x39,0x49,0x2e,0xf5,0x7d,0x20,0x67, - 0x17,0x69,0x31,0xc3,0x6a,0xb7,0x74,0x9d,0x84,0x6d,0x08,0xbd,0x54,0x4c,0x9d,0x7a, - 0xce,0x4c,0x1c,0x6d,0x09,0x5b,0x6c,0x4a,0x60,0x55,0x5a,0x1f,0xa0,0xd8,0xd2,0x7f, - 0xb5,0xae,0x97,0xad,0x45,0xbb,0x00,0x96,0x37,0x1b,0xcb,0xb2,0x6f,0x6d,0x8c,0x59, - 0x94,0x5c,0xcf,0x94,0x16,0xe4,0xda,0x19,0xa0,0xc4,0x54,0x03,0x46,0xfa,0xa7,0xde, - 0xb1,0x17,0x88,0xea,0x5f,0x2c,0x2e,0x50,0x03,0x8b,0x2b,0xfd,0xe8,0x03,0xff,0xef, - 0x33,0x1c,0x62,0x76,0xac,0x7f,0x39,0xf8,0x62,0xab,0xd1,0x69,0x92,0x0c,0x50,0xa7, - 0x10,0x1a,0x50,0x3f,0xea,0x2e,0x70,0xb1,0xbc,0x4c,0xbe,0xc1,0xdb,0x27,0xb4,0xd3, - 0x00,0x4a,0x68,0xf9,0xe7,0x9f,0x10,0xb9,0x52,0x5b,0x43,0x18,0x6e,0xc5,0xea,0x3d, - 0x2c,0x1d,0x42,0x8a,0x41,0xf8,0x36,0xde,0xea,0x75,0xbf,0x3a,0x5b,0xaf,0x23,0x9d, - 0x1d,0xac,0x21,0xf4,0x0d,0x45,0xc6,0x70,0x47,0xf8,0x02,0x00,0x00, + 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x52,0x45,0x97,0xdb,0x30, + 0x10,0xfe,0x2b,0xea,0xa2,0x15,0xce,0xb2,0x41,0x29,0xf8,0xf5,0x54,0xe6,0xb3,0x22, + 0x8f,0xd7,0x7a,0x55,0x34,0x7e,0xa3,0x71,0xbc,0xe4,0xff,0xde,0x86,0xca,0x9d,0xcb, + 0x30,0x7f,0xd9,0xa3,0x02,0x0d,0xdf,0xd6,0x20,0x2a,0x5e,0xb8,0x59,0xb6,0x00,0xd6, + 0xc2,0x54,0x9a,0x02,0xb0,0x6a,0xb8,0x1c,0x5e,0x6d,0x6d,0x5e,0x2f,0x40,0x2d,0x2d, + 0xb4,0x35,0x12,0x0b,0x83,0x9e,0xc1,0xb3,0xda,0x6b,0x6d,0xc1,0x95,0x2a,0x60,0x69, + 0x0d,0x0c,0xd7,0xca,0xc0,0x7a,0xcb,0x56,0xbb,0x61,0x30,0xda,0x81,0x9a,0xee,0xcd, + 0x32,0xb6,0xec,0x60,0xf6,0x0a,0x42,0x95,0x23,0x81,0xf8,0x02,0xf3,0x1c,0x7d,0x69, + 0xaf,0xb3,0xf1,0xc6,0x93,0xcd,0xb1,0xb8,0x9d,0xbd,0x44,0x5d,0x58,0x7f,0x2d,0xfe, + 0x8e,0x3b,0xaa,0xc0,0x39,0x5b,0xa7,0x59,0x30,0x64,0x6b,0x9e,0x45,0x65,0xe3,0x0d, + 0x5b,0xf4,0x91,0xbc,0x5f,0x6a,0x12,0x5e,0x4d,0xd2,0x9d,0x49,0x38,0xd4,0xc5,0xd6, + 0x9e,0xab,0xd6,0xfa,0x02,0xdb,0xd1,0xd3,0x39,0x12,0xe7,0xe8,0x99,0xd0,0x39,0xa0, + 0x81,0x51,0xf9,0xd1,0x91,0x87,0x56,0xe4,0x91,0x1c,0xb0,0x32,0x47,0x47,0x01,0xf8, + 0xa3,0x5d,0x00,0x36,0xfc,0x6b,0x71,0x33,0xd2,0xab,0xcc,0x48,0x76,0x83,0x78,0xf2, + 0x9d,0x64,0x5a,0x02,0x9b,0x2a,0xda,0x1b,0x37,0xf6,0xf1,0x52,0xc5,0x97,0x57,0x71, + 0x7c,0x15,0x9f,0x5d,0x82,0x31,0x67,0xf1,0xc5,0x74,0x6f,0x60,0x1e,0xdf,0x07,0x7b, + 0xed,0xb5,0x4b,0xcc,0x68,0x23,0x74,0xc9,0x7d,0x27,0x47,0x5c,0x81,0xff,0x59,0x98, + 0xe4,0xbd,0x2d,0x23,0x1a,0xe1,0x57,0x49,0xc0,0x0d,0x79,0x41,0x23,0x86,0x1b,0x8e, + 0x64,0xba,0xb6,0x07,0xd6,0xdc,0x04,0xa5,0xd4,0xd9,0x24,0x96,0xf7,0x0e,0x8d,0x5e, + 0xa5,0x8d,0x08,0x36,0xbb,0xa5,0xdb,0x24,0xdf,0x38,0xd7,0x71,0x45,0xd8,0x8a,0xe7, + 0x44,0x48,0xd1,0x1e,0x93,0xf6,0xa1,0x04,0x12,0xa5,0xb6,0x0e,0x8a,0x3d,0xf9,0x57, + 0xeb,0x7a,0xdd,0x9a,0xa5,0x71,0xa0,0x69,0xb7,0x31,0xaf,0xfb,0xd6,0x4a,0xa9,0x55, + 0xc9,0xed,0x4c,0x69,0x81,0xa6,0x59,0x80,0xe7,0x11,0xd6,0xe0,0x23,0xf9,0x53,0x6f, + 0xc9,0x32,0x44,0xf5,0x2f,0x16,0xe3,0x30,0xc0,0xea,0x4a,0x3f,0xfa,0xc0,0xff,0xfb, + 0xf4,0xfb,0x3e,0x3b,0x95,0xbf,0x1c,0x7c,0xb5,0xd5,0xe0,0x7c,0x32,0xe9,0x79,0x99, + 0x82,0x0b,0x20,0x7e,0xd4,0x5d,0xe1,0x62,0x7d,0x99,0x7c,0x87,0xb7,0x4f,0x5e,0xcf, + 0x1d,0x08,0xc6,0xf5,0x9f,0x7f,0x42,0x24,0x11,0x7b,0x7d,0xe8,0xef,0x8d,0xc4,0xfb, + 0xf5,0x91,0x56,0x01,0x04,0x4c,0xb7,0xa3,0xbd,0x4e,0x76,0x9b,0xb3,0x75,0x32,0x92, + 0xd9,0x78,0x0b,0xa1,0x6f,0xd3,0x7c,0xbf,0x51,0xf8,0x02,0x00,0x00, }; const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = { @@ -262,1916 +262,1927 @@ const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = { 0xc1,0x6e,0xa4,0xf7,0x41,0xb1,0x49,0xc3,0x28,0xd1,0x2e,0xb7,0x00,0x8f,0x44,0x36, 0xa8,0x29,0x6b,0x88,0x6c,0x73,0xc8,0x4a,0xea,0x0a,0xda,0xfe,0xd0,0x4f,0x45,0x4d, 0x3e,0x62,0x47,0xc4,0x0e,0xcd,0x81,0xc5,0xfb,0x1b,0x74,0xe7,0x2d,0xcd,0xbb,0x01, - 0x67,0xee,0x95,0x37,0x7d,0x3d,0x73,0x1d,0xdf,0xab,0x02,0x67,0x43,0xe9,0xfc,0x3f, - 0x3b,0x57,0xde,0xdc,0x36,0xae,0xe4,0xff,0x9f,0x4f,0xd1,0xc5,0xad,0x4a,0xe4,0xda, - 0x88,0x96,0x64,0x59,0x39,0x1c,0x6b,0x2a,0xe7,0x9c,0x3e,0x36,0xf6,0x3b,0xfe,0xdb, - 0x82,0x48,0xc8,0xc2,0x0b,0x45,0x70,0x00,0x30,0xb2,0xe6,0xd3,0x6f,0xa3,0x01,0x88, - 0x94,0x68,0x2a,0xf4,0xb1,0xf7,0x7b,0x6f,0x66,0x24,0x11,0x57,0xa3,0xbb,0xf1,0xeb, - 0x03,0x4d,0x23,0x83,0x2b,0xc4,0x76,0xb9,0xb4,0xb7,0x87,0xae,0xa4,0x1e,0xbf,0xf8, - 0x57,0x00,0x6c,0x7c,0xe1,0x5f,0x08,0xe0,0x0a,0xbf,0x60,0x2d,0x2d,0xb8,0x0a,0xff, - 0x68,0x34,0x89,0xc0,0x79,0x3d,0xf4,0x9d,0x4a,0xf8,0xdf,0xcb,0xdb,0xd3,0x88,0x6a, - 0x92,0xc6,0xf8,0x4f,0x04,0x36,0x59,0x7f,0x1a,0x59,0xd5,0x8e,0x40,0x1b,0x25,0xbf, - 0xf2,0xd3,0xa8,0xca,0x62,0x84,0x67,0xfd,0x30,0x63,0x78,0x40,0x56,0x30,0x61,0xc5, - 0x69,0x44,0xbb,0x88,0x70,0xe1,0x44,0xa8,0x24,0xe3,0x90,0xe0,0xfc,0x43,0xec,0x97, - 0xac,0xdd,0xa7,0xc2,0x51,0xf1,0x28,0x2c,0xd4,0x9c,0xda,0x2f,0x7e,0x88,0x33,0x14, - 0xcc,0x2c,0x20,0x3d,0x8d,0xce,0x5e,0xc6,0x2f,0x01,0xff,0x65,0x13,0x98,0xc0,0xc0, - 0xff,0xff,0x55,0x3c,0x39,0x1b,0x4e,0xe2,0xa3,0xad,0x86,0xa1,0x6f,0x18,0xc7,0xaf, - 0x01,0xff,0x65,0x43,0x7c,0x44,0xdd,0x5d,0xeb,0x38,0x1e,0x9d,0x0d,0x5f,0xc7,0xc3, - 0x9d,0xb6,0xa1,0x6f,0xa3,0x45,0x0f,0x91,0x61,0xf8,0x81,0x2e,0x39,0x24,0x19,0xd3, - 0xfa,0x34,0xa2,0x4a,0x63,0x7a,0xc9,0x62,0x08,0x22,0xc5,0xdf,0x7d,0xfb,0x2a,0x45, - 0xb4,0x79,0xcb,0x01,0x59,0x3f,0xf4,0x23,0x5c,0xb3,0x2e,0x67,0xd1,0x34,0x91,0x39, - 0x72,0xc4,0xa0,0xac,0x9e,0x2d,0xc8,0x65,0x39,0x79,0x7b,0x88,0x5d,0xb0,0xa3,0xff, - 0xa0,0xba,0x0c,0xbf,0x04,0x95,0x9a,0x82,0x4d,0x28,0x44,0x7e,0x0e,0x7a,0x12,0x4d, - 0x91,0x1c,0xec,0x86,0xbd,0x9d,0xba,0x87,0xfe,0x54,0xf4,0xba,0xd5,0x3f,0xa1,0xd8, - 0x18,0x7f,0x52,0x75,0x5e,0xe4,0xba,0x47,0x20,0x73,0x54,0xce,0xe4,0xeb,0x69,0x44, - 0x6e,0xc8,0x07,0xd7,0xa9,0x77,0x10,0xfd,0x60,0x84,0xc9,0xb0,0x9f,0x7f,0x02,0xfd, - 0x3e,0xe8,0xaf,0xa8,0xc2,0x54,0xed,0x0a,0x2c,0x4f,0xa1,0x60,0xda,0x70,0x60,0x50, - 0x28,0x6e,0x6f,0x84,0x52,0x48,0xe8,0x5d,0x8e,0xe8,0x07,0xa6,0x04,0xeb,0x53,0x15, - 0xe3,0x69,0x74,0x51,0xf0,0x1c,0xc2,0xd2,0xd3,0x67,0x37,0xe6,0xe4,0xdf,0xdf,0x1e, - 0xba,0xb5,0x83,0x4a,0x92,0x12,0x2e,0x99,0xb0,0x0f,0xb4,0x8b,0xb3,0x89,0xe4,0x6f, - 0xfd,0x4c,0xe2,0x59,0x8b,0xc2,0x96,0x68,0x33,0xdb,0x8c,0xb7,0xc9,0x70,0xe2,0xfb, - 0x68,0xfa,0x2e,0x45,0xb7,0x05,0x68,0x04,0x4e,0x3b,0xb2,0xca,0x01,0xa4,0xf9,0xa7, - 0x51,0x23,0x31,0xd5,0x72,0xaa,0xbd,0x89,0xa1,0x33,0x1c,0x4d,0x3f,0x59,0x7e,0x80, - 0x59,0x08,0x0d,0xb9,0x4c,0xf9,0x73,0x0d,0x8c,0x96,0x08,0xf5,0x8f,0xd0,0x33,0x0b, - 0x0e,0x1a,0x05,0x8d,0x3c,0xe4,0x50,0x6a,0xe4,0xc0,0x5c,0x2a,0x50,0x7c,0x29,0x0d, - 0x87,0x0f,0xbf,0xff,0xe2,0x06,0x1c,0xc4,0x6f,0x0f,0x0b,0x24,0x07,0xdb,0x96,0xb4, - 0x2f,0xa2,0xb1,0x6f,0x7f,0xee,0xec,0x66,0x8e,0xd2,0x24,0xb6,0xd9,0x79,0x42,0xbf, - 0x62,0x85,0x3b,0xbc,0xf4,0x6b,0xbe,0x3d,0xa4,0x76,0x1c,0x46,0xd5,0x1b,0x5e,0x94, - 0x81,0x22,0x92,0x74,0x6d,0x18,0x95,0x14,0x27,0x72,0x59,0x64,0xdc,0x60,0x37,0xc4, - 0x3c,0xc5,0x91,0x13,0xbe,0xbb,0x6f,0x27,0x2f,0x6b,0x4a,0x2a,0xd7,0x50,0x22,0xb4, - 0x2e,0x41,0x5d,0x50,0x63,0x97,0xc2,0xd4,0x57,0xb0,0x8d,0xd3,0x2b,0xf4,0x63,0x41, - 0xe4,0x41,0xa4,0xdb,0xfb,0x09,0xd9,0xc5,0xfa,0x28,0x7c,0x16,0x6d,0x56,0x3b,0xb4, - 0x4c,0xc0,0xcf,0xf0,0xd3,0x4b,0xbf,0xa1,0x07,0x2b,0xf1,0x27,0x0a,0x7a,0x9f,0x22, - 0xe4,0xd2,0x78,0x45,0x4f,0x72,0xd6,0xa7,0x5f,0xd3,0x5f,0x72,0xb0,0x12,0xfa,0x9b, - 0xf8,0x2c,0x40,0x93,0xbf,0x8d,0xc2,0x93,0x45,0x59,0xfc,0x08,0xbf,0x18,0x1c,0x28, - 0x35,0xd7,0x20,0xe6,0xb0,0x96,0xa5,0x82,0x62,0x61,0x85,0xa8,0x33,0xce,0x0b,0x1d, - 0xff,0xf0,0x96,0xc1,0x42,0xf1,0xf9,0x69,0xf4,0x2f,0xb5,0x03,0x82,0x63,0x2f,0x4a, - 0xd3,0x3b,0x38,0x51,0x78,0x04,0x54,0x0e,0x73,0x96,0x69,0x1e,0x05,0x25,0x6b,0xc6, - 0x1a,0xd1,0x94,0x94,0x5f,0xe4,0x6e,0x85,0x99,0x92,0x2b,0xcd,0xd5,0xdb,0x43,0x36, - 0x05,0x23,0xe1,0x2b,0xae,0xe4,0x97,0x56,0xf2,0x46,0x71,0xad,0x63,0xcf,0x87,0xfa, - 0xbe,0xe8,0x32,0x01,0x19,0x26,0x68,0x6f,0xda,0x14,0xc3,0x0d,0x17,0x64,0x6e,0x19, - 0x29,0x6a,0x6d,0xa3,0xdd,0x07,0x47,0xbb,0x0f,0xc6,0xfe,0x41,0xb5,0x10,0xb5,0xac, - 0xfe,0x1c,0xb6,0x1f,0xac,0x2b,0x24,0x01,0x86,0xf0,0x6c,0x29,0xd2,0x54,0x9a,0x13, - 0xe2,0xe7,0x93,0x9c,0x30,0xbf,0x34,0x4a,0x77,0x2e,0x10,0x9d,0x8a,0x75,0x34,0xfd, - 0xe0,0x20,0xb1,0x3a,0x75,0x96,0x53,0xc4,0x24,0x92,0x62,0xce,0x0d,0x2a,0xee,0x57, - 0xd0,0x12,0x04,0x4a,0x90,0xe5,0xa0,0x38,0x4b,0x16,0x24,0xe6,0xb3,0x7f,0xbb,0xbe, - 0x06,0xe4,0x2f,0x7a,0xcc,0x96,0x93,0x45,0x53,0x3f,0x70,0xef,0xb3,0xe9,0x25,0x81, - 0x15,0x62,0x6e,0xfd,0xac,0xa6,0xbc,0xc8,0xe4,0x7a,0xc9,0x73,0xf3,0x23,0x6a,0xf2, - 0x14,0xae,0xed,0xf2,0x4e,0xe9,0xc0,0x70,0x6d,0x74,0xa5,0x48,0x2e,0x5d,0x82,0x03, - 0x67,0x52,0x1a,0x87,0xd0,0x29,0x33,0xac,0x4f,0x96,0xed,0x68,0xf4,0x72,0x82,0xaf, - 0xd3,0x41,0x99,0x67,0x5c,0x6b,0x4b,0x38,0xa0,0x8e,0x48,0xfb,0xbe,0x5d,0x7e,0xc3, - 0x69,0x12,0xbd,0x20,0xa8,0xfc,0x74,0x75,0xd9,0x3f,0xbf,0xf8,0x1b,0xb5,0xe4,0x3c, - 0xf3,0x20,0x1e,0xc3,0x2f,0x73,0xea,0x55,0x11,0xb4,0xd9,0x33,0x31,0xc4,0x00,0xfb, - 0xc6,0x44,0x66,0xfd,0x19,0x58,0x70,0xc5,0x5f,0x58,0xd8,0x81,0xbf,0x5c,0xbd,0xb7, - 0x3b,0x17,0x2c,0x03,0x66,0x00,0x37,0xe9,0x80,0x38,0x5e,0xa2,0xf9,0x49,0x90,0xda, - 0x58,0x48,0xbb,0x2d,0x02,0x6d,0x55,0xe6,0xb6,0x87,0x0d,0x6f,0x2d,0xdf,0x63,0xad, - 0x45,0x0a,0x71,0x1c,0x87,0x0e,0x5b,0x8d,0xc5,0x6a,0xd3,0x16,0x23,0x53,0xb8,0x13, - 0x89,0x2d,0x2f,0x21,0x8e,0x2c,0xb1,0x97,0x59,0xd8,0x8c,0x4d,0x65,0xca,0xdc,0x22, - 0xdc,0x28,0x81,0x7d,0xd8,0xdc,0x70,0x55,0xdb,0x8c,0xd3,0xf0,0x16,0xd0,0x9b,0x9e, - 0xfb,0x9d,0x5a,0xdb,0x09,0xbd,0xab,0xab,0x5f,0x3e,0x1e,0x78,0xbc,0xdb,0x1e,0x81, - 0xe7,0x68,0x73,0xea,0xbc,0xb7,0x1b,0xed,0x20,0xa2,0x43,0x1d,0x12,0x0c,0x1e,0xdc, - 0xcd,0x46,0x37,0x2a,0x87,0x3f,0x02,0x3c,0xb2,0x42,0x18,0x96,0xa1,0xea,0xe2,0x89, - 0x9a,0xcf,0x03,0x66,0x2a,0x9b,0xf0,0xf5,0x4f,0xfc,0x52,0x2e,0x38,0x8e,0xee,0x02, - 0x49,0x40,0xb8,0xaa,0xe6,0x4e,0x18,0x81,0xe3,0xae,0xa1,0x25,0xab,0x68,0xd3,0x6c, - 0x4a,0x66,0x38,0x8c,0xba,0xd1,0x1d,0xa7,0x6f,0xe2,0xb7,0xf8,0x2b,0xe5,0x38,0x89, - 0x07,0x16,0x99,0x2f,0xa5,0xb5,0x2a,0x72,0x95,0x9f,0x46,0x74,0xb1,0x16,0x17,0x8a, - 0x3e,0x3f,0x92,0xdb,0x8a,0x50,0x54,0x43,0x27,0x89,0x58,0x73,0x85,0x73,0xf6,0x9e, - 0xfb,0xfd,0x3d,0x3f,0x88,0xa6,0xf8,0xa0,0x8e,0xcd,0xc4,0xfd,0xbd,0x32,0x68,0x1a, - 0x9a,0x5a,0x37,0x2a,0x6f,0x8d,0x5a,0x8d,0x4f,0x60,0x77,0x50,0x9d,0xed,0x03,0x4e, - 0x0f,0x30,0x83,0x96,0xf1,0xfc,0xc6,0x3a,0x86,0x93,0xf1,0xae,0x7d,0x42,0x66,0xb7, - 0x72,0x17,0xf4,0x12,0x5c,0x59,0xed,0x9d,0x6c,0x2d,0x2c,0x7e,0x6e,0x58,0xd7,0xe0, - 0x75,0x9d,0x86,0x8a,0x63,0x46,0xde,0xdc,0x64,0xdc,0x9e,0xea,0xb0,0xeb,0x9e,0xc5, - 0x1d,0xcb,0x36,0x5c,0x67,0x87,0x6d,0x3b,0x0e,0x9f,0xc8,0x4d,0x34,0xfd,0x9d,0xe3, - 0x49,0x80,0x59,0xc6,0xf2,0xaf,0x84,0x26,0x2c,0x07,0x2b,0x85,0x70,0x64,0x63,0xa8, - 0xe1,0x43,0x58,0xbf,0x6f,0x87,0x12,0x9b,0x8b,0x85,0x62,0x9a,0x6b,0xe4,0xc9,0x1a, - 0x51,0x05,0xca,0xc2,0x62,0xdd,0xe4,0x88,0x5e,0xce,0x65,0x89,0xe1,0x4a,0x9f,0x00, - 0x83,0xc9,0xb8,0xbf,0x79,0x00,0x78,0xb3,0x07,0xcb,0x52,0x1b,0xdb,0x7f,0xc1,0x6f, - 0x59,0xca,0x13,0xb1,0x64,0x59,0xec,0xe1,0x03,0x46,0xf1,0xf8,0x99,0xc1,0x05,0x74, - 0x71,0xf2,0xd3,0xcf,0x7f,0x06,0x3a,0x34,0x6e,0x39,0x5b,0xc7,0x7b,0xa4,0xdf,0x84, - 0x30,0xaf,0x0e,0x01,0xa6,0x0e,0x09,0xfc,0x02,0x5a,0xdd,0xed,0x85,0xb8,0x57,0x40, - 0x2a,0x35,0xe0,0xba,0x40,0x3b,0x18,0xfb,0x31,0x28,0x7b,0x81,0x6a,0x3c,0x24,0x1d, - 0xc0,0xcf,0x23,0x7b,0xae,0x78,0x41,0x4f,0xfc,0x01,0xab,0xee,0x8b,0x87,0xa3,0x01, - 0x9d,0xe9,0x26,0xcb,0xcf,0xec,0xee,0x97,0xcc,0x78,0xd0,0xdf,0xd9,0xb0,0x92,0x25, - 0xb2,0x89,0x20,0x08,0xcf,0x89,0x5a,0x07,0x98,0x25,0xdc,0x8a,0xc1,0x9e,0x86,0x9c, - 0xa0,0x5f,0x64,0x19,0x21,0x98,0x1f,0xf1,0x5c,0x87,0xad,0xc5,0xf0,0x17,0xcd,0x89, - 0x5f,0xc0,0xc2,0x33,0x28,0xb8,0x5a,0x0a,0x63,0x78,0x0a,0x19,0xe2,0x45,0x86,0xbc, - 0x84,0x77,0x1b,0x4c,0x67,0x5f,0xb9,0x06,0x3e,0x9f,0x23,0x5e,0x78,0xbc,0x73,0xb6, - 0xe1,0x05,0x68,0xe9,0xb8,0x26,0x34,0xfc,0x43,0x8a,0x9c,0xa7,0xbe,0x9d,0xd6,0xa5, - 0x3e,0x60,0xa4,0x8c,0x3b,0x9c,0xca,0x73,0x24,0x9f,0x60,0xb1,0xc9,0xf9,0x26,0xda, - 0xd9,0x7e,0x5b,0x27,0xed,0x68,0x78,0x17,0x2b,0xc3,0xe1,0xb4,0xdd,0x49,0x29,0x9d, - 0xda,0xe7,0x20,0x9d,0xdb,0x64,0x8d,0x07,0x71,0x52,0xe4,0xde,0xb6,0x1a,0x66,0x4a, - 0x6d,0x9f,0x6b,0x76,0xc3,0xf5,0x0e,0xdd,0xed,0xfe,0x63,0x38,0x6f,0xb8,0xd8,0x4f, - 0xb2,0x37,0xc2,0xe3,0x75,0x8e,0xf4,0xbe,0x81,0x2f,0x2c,0x15,0xf2,0xce,0x53,0xe6, - 0x49,0x1b,0x75,0xf4,0xfc,0xc9,0x41,0x19,0x55,0x0e,0x0a,0x4d,0xfc,0x24,0x1e,0x0a, - 0x31,0xde,0x1d,0x1f,0x58,0x70,0xa6,0x80,0xbc,0x0d,0x89,0xec,0x51,0x40,0xce,0x29, - 0xcf,0xa9,0x6c,0x16,0x94,0x5d,0xd2,0x86,0x46,0xd6,0x04,0xea,0x18,0x2e,0x71,0xc3, - 0xc4,0x45,0x0b,0x4c,0xdc,0x90,0x0b,0xe3,0x94,0xc7,0xf1,0xb5,0xd4,0xc4,0xc0,0xa2, - 0x4d,0xe0,0x78,0xab,0x29,0x64,0xee,0x47,0x57,0x42,0x77,0xaf,0xf5,0x04,0xc9,0xa9, - 0x82,0x98,0x4b,0x7a,0x68,0x1f,0xd0,0xbe,0xaf,0x78,0xe6,0x51,0x0c,0x45,0xe3,0xfa, - 0xef,0x11,0xbe,0x2a,0xfa,0x49,0x89,0x0e,0x79,0x07,0x1d,0xbc,0xfe,0x3b,0x14,0x72, - 0xc5,0x15,0xf4,0xd2,0xf7,0xcb,0x83,0x6e,0x10,0x60,0x6e,0xfd,0xb1,0xef,0xbf,0xf6, - 0xe7,0xfe,0x68,0x70,0xbf,0xe3,0xee,0xfe,0xa6,0x00,0x64,0xfc,0x86,0x65,0x7e,0xfd, - 0x6f,0x8c,0x7c,0x8b,0xd9,0x1a,0x14,0x71,0x09,0x05,0x9f,0x32,0xbd,0x38,0x01,0x2a, - 0x65,0xf7,0x5c,0x56,0x65,0xd6,0x50,0xd1,0x86,0x3b,0x78,0xce,0x79,0xba,0x11,0x1a, - 0x8a,0x8b,0x19,0xb0,0x95,0x8d,0xcf,0x0d,0xd8,0x7a,0x23,0x9e,0xfe,0x08,0x1f,0x16, - 0x52,0x6a,0x6e,0x7d,0xa2,0xdf,0xac,0xbb,0xee,0x23,0xa8,0xcd,0x18,0xeb,0x18,0xbd, - 0x00,0x5b,0x8d,0xa1,0x17,0x2e,0x30,0x7e,0x61,0xa5,0x9e,0xdb,0x47,0xbc,0x6f,0xca, - 0x9c,0x83,0x70,0xa7,0xa9,0x19,0x50,0x84,0x88,0xfb,0x5d,0x51,0xec,0x86,0x14,0x18, - 0xcb,0x7e,0x63,0x79,0x82,0xc4,0xf1,0x54,0x18,0x49,0x21,0x43,0x5c,0x3f,0x68,0xcd, - 0xa3,0xb0,0x89,0x4a,0xfb,0x8d,0x90,0x38,0xb4,0x3c,0xcd,0x89,0xf8,0xc2,0x29,0xd9, - 0xee,0xd0,0x73,0xce,0x12,0x24,0x6f,0xbd,0x59,0x22,0xb6,0x81,0x95,0xd0,0x2e,0x16, - 0x36,0x12,0xb4,0x8b,0x0e,0xc9,0x55,0x85,0x8c,0x05,0x6c,0x36,0xd2,0x45,0xc6,0x42, - 0x7b,0x38,0x24,0x7c,0xf6,0xce,0x38,0x1e,0x35,0x9b,0xf5,0xde,0x60,0xd0,0xbe,0x63, - 0x72,0xce,0x57,0x50,0x74,0x0c,0x8d,0xbd,0x4e,0x56,0x4f,0xea,0x10,0x39,0x3c,0xde, - 0x75,0x46,0x72,0xbe,0xaa,0x02,0xe5,0x7d,0xaa,0x39,0x3c,0xae,0x59,0xec,0x2e,0x60, - 0x4e,0x7f,0xf1,0x42,0x2d,0xef,0x47,0x38,0xe6,0x33,0x1f,0x48,0x7a,0xbb,0xde,0xa0, - 0x33,0xd7,0xee,0xcd,0xee,0xc0,0xf6,0x10,0xf1,0xe4,0x3d,0xa6,0x20,0x03,0x5e,0xb7, - 0x8d,0xa3,0x8c,0xd3,0xae,0xcb,0x1c,0xd0,0x86,0x50,0xb2,0x6f,0xb3,0x48,0x5b,0xd3, - 0x5f,0xe1,0x03,0xc2,0xae,0x1e,0x2e,0x62,0x7f,0x00,0x75,0xdc,0xb7,0xd4,0xfe,0x15, - 0x72,0xb2,0x87,0xb5,0x15,0xd0,0xa6,0xfb,0x05,0xbc,0xf1,0x21,0x8b,0xd6,0xb4,0x3d, - 0x0d,0x13,0x74,0x74,0x1f,0x13,0x74,0x54,0x99,0x20,0x37,0x3d,0x36,0xb4,0xe8,0xc0, - 0xc5,0xcc,0x45,0xaa,0x3e,0xd6,0x91,0x4a,0xe0,0x41,0x3b,0xe8,0x62,0xdd,0x97,0x7f, - 0x18,0x13,0xbb,0xfe,0x77,0x06,0x30,0x77,0xea,0xea,0xcf,0x72,0xe5,0x42,0x6a,0xe9, - 0xd7,0xf5,0xa6,0x6b,0x6e,0x81,0x54,0x18,0xcd,0xb3,0x39,0x58,0xa4,0x28,0x67,0x19, - 0x22,0x19,0x4f,0xbd,0xad,0x3f,0x2c,0x50,0xe2,0xdc,0x54,0x26,0x1f,0x7e,0xc9,0xe7, - 0x52,0xb9,0x92,0x34,0x96,0x39,0xbb,0x18,0xd0,0x37,0x97,0xa6,0xca,0x81,0x19,0x59, - 0x88,0x04,0x97,0x53,0x96,0xc4,0x05,0x59,0x49,0x1a,0x84,0x96,0x51,0x71,0xeb,0x7d, - 0xf1,0x94,0x62,0xc7,0xcd,0xe1,0x27,0x46,0x74,0x39,0x3d,0xbf,0xbc,0xbb,0x7e,0x17, - 0x80,0x3f,0xc1,0x81,0x9d,0x79,0x26,0xf0,0xc7,0xb6,0x5b,0xd4,0xe4,0x5f,0x75,0x90, - 0x37,0x0a,0xd6,0x5a,0xe0,0xda,0xc5,0x7c,0x9d,0x73,0xa6,0xb8,0x36,0xc0,0x84,0xb2, - 0x65,0x5f,0x44,0xf0,0x0b,0xe0,0xf1,0x4d,0x6c,0x4d,0xca,0xc7,0x4f,0xe7,0x2e,0xb2, - 0x46,0xf5,0x24,0x37,0x8b,0xb8,0x06,0x36,0xa7,0xdd,0x09,0x48,0x2e,0x56,0x39,0x57, - 0x4e,0x68,0x89,0x0d,0x0d,0xba,0xab,0x8f,0x1d,0xd8,0x0c,0xc6,0xba,0x45,0xc3,0x75, - 0xac,0x69,0xd7,0xb8,0x8b,0xc2,0xeb,0x88,0x57,0x8f,0x10,0xc7,0xd8,0xb0,0xa5,0x46, - 0x32,0x48,0x9f,0x7e,0xb3,0x33,0xb2,0x1c,0x87,0x78,0x57,0xfd,0x17,0x3c,0xbc,0x65, - 0x4a,0x6c,0x21,0x15,0x82,0x5f,0xff,0x76,0xad,0x41,0x4b,0xca,0xf0,0x88,0x84,0x7b, - 0x73,0xad,0xcb,0x82,0x18,0xeb,0xb3,0x41,0x99,0x73,0xb5,0x2c,0x29,0x62,0x59,0x25, - 0x91,0xba,0x33,0x93,0xde,0x59,0xbf,0x9b,0x8f,0xd4,0xb4,0xc3,0x48,0x7a,0xd6,0xe4, - 0x5c,0x67,0xa6,0x50,0x72,0x48,0xdc,0xb5,0x55,0x3a,0x45,0xb4,0x0d,0xf4,0x33,0xaa, - 0x9d,0x58,0xaf,0x53,0xcb,0x25,0x0f,0x6c,0xd8,0xd1,0x13,0x82,0x22,0x97,0x02,0xab, - 0xa1,0x4f,0xc8,0x4b,0x64,0xd2,0xe8,0xa7,0xb2,0x07,0xa3,0x8e,0xf6,0x60,0x07,0xa8, - 0x1b,0xb8,0x7f,0x86,0x6c,0x0c,0xb0,0xef,0x51,0xb3,0x33,0xea,0xef,0x42,0x7c,0x98, - 0xeb,0x0b,0xb7,0xd7,0x56,0x1d,0xd0,0x7d,0xdc,0x0d,0xdd,0x37,0xc6,0x85,0xe6,0xed, - 0xd3,0xbd,0x48,0xe4,0x20,0x7f,0x5c,0x41,0xbe,0x5b,0x15,0x9e,0xb1,0x65,0x71,0x42, - 0x29,0xb2,0x86,0x04,0xfc,0x04,0xed,0x22,0x08,0x7e,0xe9,0x15,0xfb,0x46,0x52,0xdf, - 0x64,0x1e,0x9d,0x1f,0xcf,0x53,0x8a,0x27,0x5f,0x80,0x4d,0x83,0x50,0x43,0xb8,0x98, - 0x40,0x8b,0xbf,0xc9,0x13,0xb2,0x34,0xb5,0xc9,0x10,0xe7,0x88,0xfa,0x38,0x53,0x03, - 0xea,0x9f,0x04,0x57,0x5f,0x63,0x73,0x14,0xca,0xa3,0xf1,0xb5,0xcf,0x43,0x53,0xa8, - 0x82,0x10,0x5f,0x4b,0x2f,0x92,0xbb,0xf6,0x62,0x2b,0x5f,0xc8,0x67,0xa5,0x40,0x9e, - 0x13,0x68,0xdd,0x57,0x7f,0x76,0x98,0x68,0xaf,0x33,0x77,0x75,0xea,0xc8,0xeb,0xd4, - 0x43,0x0c,0xbf,0x65,0x78,0x7d,0x3e,0xca,0xdd,0x22,0x1f,0x39,0x29,0x17,0x7e,0x7a, - 0xc1,0x38,0x7e,0x34,0x74,0xa3,0xfd,0xd6,0x02,0xe7,0xc6,0x07,0x0d,0x99,0x6d,0xbc, - 0xe8,0x66,0x19,0x79,0x75,0x43,0x4c,0x05,0x9d,0x38,0xf4,0x3e,0xbe,0xff,0x5d,0xde, - 0x39,0x4e,0x72,0x57,0x48,0x40,0x8e,0x71,0xfb,0xa5,0x09,0x2b,0x8a,0x7d,0xfa,0x6d, - 0xd8,0x4c,0xd3,0x16,0xdd,0xb7,0x8a,0xd9,0x84,0x70,0x88,0xf6,0xe4,0x4b,0x6d,0xdd, - 0x36,0x6c,0x45,0xec,0x8d,0x01,0x04,0x89,0xd1,0x94,0x0e,0x71,0x5b,0x1f,0xca,0x0d, - 0x46,0x53,0xab,0xc6,0xed,0x7d,0xac,0xf3,0xa1,0x51,0x6a,0xf6,0xa3,0xbd,0x57,0x92, - 0xe1,0x44,0x78,0xc9,0xd6,0x9e,0x41,0x30,0xce,0x1d,0x6c,0x3d,0xd7,0x14,0xdd,0xef, - 0xf3,0xd2,0xce,0x6b,0x19,0x97,0x7b,0x26,0x5c,0xbe,0x9b,0x67,0x1b,0x4e,0x8e,0x5e, - 0x8d,0x37,0x2b,0xbd,0xcf,0x4a,0x6e,0xa4,0x34,0x8b,0xce,0x59,0x9e,0x59,0x18,0x11, - 0xdf,0xb5,0x3c,0xd4,0x2a,0xa2,0x4e,0x23,0x9b,0xd2,0x0a,0x57,0xd1,0xfd,0x67,0x99, - 0x39,0xd9,0x78,0x5c,0xf6,0x3e,0x76,0xbf,0xa9,0x0a,0xa6,0x1e,0x2a,0x12,0xe9,0xef, - 0x00,0x7a,0x8f,0x0d,0xea,0x39,0x50,0x23,0x61,0x2e,0xb3,0x4c,0xae,0x3a,0xb8,0x75, - 0x4d,0x8e,0x4c,0x8e,0x8f,0x8f,0x26,0x4d,0x8e,0x04,0x40,0xbb,0x1f,0x53,0x96,0x2c, - 0xd9,0xe2,0xc9,0x68,0xdc,0xe4,0x49,0x08,0x5f,0xc3,0x0a,0x77,0x32,0xc2,0xf6,0xfb, - 0x30,0xc2,0xd7,0xec,0xf0,0xe5,0x8e,0x37,0x47,0x47,0x6f,0xc6,0xe3,0x37,0xc7,0xc7, - 0x08,0x8b,0x2c,0x4f,0xe5,0x32,0x7c,0xf6,0x29,0xdb,0xd8,0x77,0x69,0x3f,0xa9,0xc2, - 0x53,0x4a,0xf7,0xf5,0xfd,0xdd,0x48,0x0c,0x1f,0x32,0xce,0xb0,0x8d,0x6b,0x5c,0x94, - 0x1c,0x98,0x06,0x05,0xb1,0xbb,0x79,0x4a,0x25,0xa7,0xcb,0x9e,0xad,0x7b,0x23,0xc3, - 0x59,0x86,0xdc,0x98,0x67,0xec,0xa6,0x23,0x43,0xb1,0x3e,0x70,0xf0,0x72,0xd4,0xe4, - 0x68,0x98,0xab,0x91,0x57,0x6a,0xb2,0xd1,0xf7,0xc4,0x39,0x24,0x29,0x04,0x26,0x5f, - 0xb0,0xcd,0x7b,0x38,0x17,0xf3,0xf9,0xdb,0x43,0xf7,0xbc,0xd1,0x9e,0x63,0x73,0x5e, - 0xb5,0xb6,0x67,0xa2,0xf0,0x96,0x36,0xe5,0x05,0xa7,0x42,0x2b,0x90,0x74,0xfb,0x15, - 0xb8,0x11,0xd2,0x2c,0x98,0x6d,0x4d,0xe9,0x05,0x75,0xcd,0xbd,0x09,0xcb,0xd6,0x50, - 0xe6,0x46,0x64,0x40,0x7f,0xda,0x0e,0x0a,0x26,0x14,0xf6,0xf3,0x26,0x8f,0x25,0x09, - 0x2f,0x0c,0x05,0x27,0xce,0x49,0x9c,0x49,0x9c,0x3d,0x85,0x82,0x73,0x85,0x53,0xe5, - 0x9b,0xe9,0x95,0x34,0x8c,0x88,0x56,0x5c,0x22,0x05,0x3a,0xcc,0x83,0x92,0x22,0xbe, - 0x6b,0x6c,0xf8,0xa3,0x14,0x0a,0x09,0xf2,0x76,0xa3,0x95,0xf1,0x64,0xfb,0xea,0xac, - 0x8f,0xda,0x30,0xe5,0x77,0x5c,0xd2,0x94,0x55,0xdc,0xb2,0x37,0x7f,0x96,0x31,0x13, - 0xd2,0xe4,0x2c,0x5f,0x7b,0x50,0x69,0x9d,0x59,0xe6,0x37,0xf7,0x98,0x5a,0xe6,0x77, - 0x4e,0xfd,0x44,0x59,0xa6,0xa6,0x4f,0x83,0x16,0x52,0x6f,0x72,0x41,0x78,0x3e,0xea, - 0x91,0x21,0xd7,0x3e,0xf9,0xe3,0x4b,0x2c,0x10,0x74,0x96,0xd8,0x45,0x6f,0x67,0x82, - 0x1a,0x60,0x13,0x5c,0x97,0x90,0x97,0xab,0xe5,0xa1,0xf6,0x64,0x67,0xfe,0xdb,0x93, - 0x49,0xff,0x3b,0xb2,0x43,0x95,0x84,0x51,0xb3,0xbe,0x30,0x9f,0xe2,0xde,0xaa,0x49, - 0xb2,0x25,0x68,0xc0,0x95,0xaa,0x95,0x19,0x51,0x2f,0x7a,0x19,0x3c,0x9a,0x6e,0xee, - 0x38,0x80,0x15,0x45,0xb6,0xf6,0x97,0x54,0x6d,0x0a,0xf2,0xd9,0x1e,0x36,0x9e,0x27, - 0xeb,0x17,0x30,0x43,0xd9,0xfb,0xbf,0x32,0x7b,0xf5,0x99,0x74,0xe5,0xc3,0x17,0x58, - 0x56,0x37,0x3f,0x14,0x31,0x52,0x1e,0x9d,0xdf,0xa2,0x64,0x6b,0x49,0x08,0x06,0x2b, - 0x85,0xc7,0x80,0x60,0xc8,0xdf,0xcd,0xd4,0x83,0xa7,0xb9,0xc7,0x17,0xa1,0x36,0xf8, - 0x71,0xcb,0x53,0xd2,0x32,0x7f,0x81,0xde,0xe6,0xd7,0xb6,0x88,0xab,0xa2,0x1a,0x7a, - 0x67,0x3f,0xff,0x79,0xf0,0xfd,0xa3,0xa7,0x6e,0x70,0x38,0x0e,0x0a,0x87,0x6f,0x10, - 0x0f,0x06,0xc3,0x70,0x39,0x76,0x3c,0xf0,0x69,0xf2,0x11,0x96,0xe2,0x7f,0x47,0x51, - 0xde,0x07,0x26,0x41,0xef,0x6b,0xe7,0x95,0x67,0xab,0xda,0xba,0x61,0xd9,0x97,0x7e, - 0xd1,0xfa,0x9a,0xf7,0x64,0xc3,0x55,0xa1,0x38,0xb3,0x55,0x87,0xde,0xa2,0x35,0x4d, - 0x4b,0xa0,0x40,0xdb,0x41,0xde,0x2c,0x1c,0xef,0x9a,0x8f,0xe9,0xa4,0xf1,0xe4,0x65, - 0xe3,0xc9,0xab,0xc6,0x93,0xd7,0x8d,0x27,0xc3,0x41,0xf3,0xd1,0xb0,0xf9,0x68,0xd4, - 0xb4,0x50,0xdf,0x39,0x9c,0xb4,0x47,0xc5,0x0c,0x6f,0xdf,0x61,0xa2,0x9e,0x6e,0x87, - 0x0d,0xb2,0xee,0x7f,0x43,0xf3,0x84,0x17,0x34,0xfb,0xc1,0xa2,0x86,0x02,0xbe,0x2a, - 0xb6,0x1f,0xee,0x49,0x3c,0x8e,0x7c,0x74,0x8f,0x09,0x01,0x3a,0xab,0xd6,0x45,0x8e, - 0x78,0x60,0x0c,0x57,0x9b,0xfc,0xd6,0xae,0xbb,0xe2,0x57,0x8b,0x97,0x32,0xe5,0x8f, - 0xf3,0x54,0x1a,0xad,0xbe,0xc8,0x60,0xfa,0x9e,0x3e,0xdb,0x7a,0x79,0xbf,0xc1,0x96, - 0xe9,0xd1,0x17,0xf2,0x3d,0xf6,0x4f,0xd9,0xf7,0x63,0xc2,0xd4,0xf0,0xaf,0xe0,0x9f, - 0xb4,0x8d,0xb3,0x28,0x6e,0x33,0xaf,0x09,0xc6,0x82,0xe1,0xeb,0x3d,0xd5,0xf7,0x5a, - 0x2c,0xb9,0xad,0xd6,0xe9,0x69,0x9e,0xc8,0x3c,0xd5,0xdd,0x74,0x24,0xb0,0xd7,0xb8, - 0xd1,0x3b,0x17,0xf9,0xf8,0x32,0xf1,0xa0,0xba,0xca,0x7f,0x20,0x7c,0x5c,0xe4,0x54, - 0xc3,0x44,0xda,0xfb,0x3d,0x29,0x97,0x7a,0xf6,0xc4,0x92,0xfe,0xa7,0xa4,0x9b,0x2c, - 0x7e,0xac,0xb4,0xc9,0xb7,0xaf,0xc8,0xf7,0x29,0x2b,0x6d,0x98,0x0a,0xd5,0xc3,0xe1, - 0x52,0x01,0xb0,0x70,0x32,0xe3,0xce,0x2e,0x17,0x05,0x08,0x0d,0x48,0x86,0x8f,0x99, - 0x78,0x8a,0xbe,0x78,0x55,0x5a,0x46,0x8e,0x9f,0xa6,0xae,0x9e,0x54,0x6b,0xf1,0x7d, - 0x5e,0x40,0xaa,0xc0,0x57,0x20,0x9b,0xac,0x5d,0x4a,0x78,0x85,0x3e,0x00,0x08,0x13, - 0x57,0x0a,0x06,0x29,0x37,0x3e,0x51,0xe2,0x22,0x0f,0x1d,0x4a,0x1e,0x66,0x12,0x61, - 0x2c,0xee,0xe4,0x12,0x85,0x74,0x4c,0x3b,0x96,0xb5,0x04,0x65,0x55,0x3c,0xf6,0x4e, - 0x28,0xcb,0x64,0x6f,0x31,0x3b,0x09,0x88,0xcd,0x2b,0xf3,0x1d,0xac,0xf7,0xa0,0xb5, - 0xb8,0x83,0xcd,0xfb,0x29,0xea,0x50,0xb7,0x60,0x71,0x5c,0xd5,0x1e,0xfc,0x1d,0xf9, - 0x82,0xbc,0x45,0xd8,0xd5,0xdd,0x62,0x09,0x75,0x4b,0x03,0x9a,0xb4,0x6d,0xdc,0x99, - 0x56,0xc7,0xa2,0x41,0xc7,0xf1,0x70,0x54,0x69,0xb1,0xa7,0xe4,0x3e,0x2c,0x32,0xdf, - 0xa5,0x65,0x9f,0x7d,0x6b,0xd0,0xa6,0xb7,0xc2,0x3a,0x5b,0x18,0xe5,0x9c,0xd8,0xd9, - 0xf4,0xc3,0xbb,0x8f,0xd0,0xa3,0x3a,0x81,0x3c,0x14,0x85,0xd2,0x35,0xd1,0x52,0x18, - 0x3c,0x6d,0x33,0xa4,0x72,0xfa,0xc1,0xd7,0x0f,0x21,0xf5,0xe2,0x9b,0x30,0xeb,0x4a, - 0xf3,0x5c,0x11,0x2e,0x4d,0xb5,0x5d,0xe6,0x6f,0x6e,0xb2,0x68,0x7b,0x83,0x54,0xd5, - 0x30,0x93,0xb7,0xd5,0x16,0x13,0x66,0x1d,0xf7,0x12,0x27,0x28,0xfd,0x24,0xdf,0xa7, - 0x7c,0x38,0xa9,0x48,0xb7,0x12,0x46,0xcf,0x1c,0x29,0x4f,0xe1,0x86,0x89,0xdc,0x53, - 0x7b,0xf5,0xf7,0xe1,0x68,0x72,0x0b,0x8a,0x27,0x5c,0xd8,0x1b,0x04,0xc2,0xb6,0x47, - 0x11,0x4a,0xc1,0x40,0xac,0x6e,0xed,0x22,0xf7,0xa6,0x78,0x34,0x18,0xd7,0xd9,0xfd, - 0xf9,0xd3,0x19,0x04,0xba,0x3d,0xc1,0x9f,0x6e,0x0d,0x57,0x36,0x47,0x35,0x57,0x36, - 0x59,0x8a,0x27,0xb9,0x8f,0x86,0xa1,0xcc,0x38,0xfc,0x7e,0xfe,0xee,0x09,0x08,0x9f, - 0xf3,0xe5,0x43,0x89,0x7f,0x35,0x7c,0x3d,0xaa,0x11,0xff,0x91,0x32,0x66,0x1e,0x7e, - 0x34,0x65,0xf7,0xfd,0x1e,0xbe,0xf0,0xb4,0xc4,0x96,0x94,0x3a,0x10,0x2e,0xfe,0x74, - 0x79,0x05,0x22,0xcd,0x7c,0xef,0x47,0x6d,0x83,0x66,0x70,0xcb,0xed,0xd9,0x41,0x1d, - 0x04,0x06,0xaf,0x27,0x3e,0x8e,0xbb,0x2d,0x74,0x9f,0x8a,0xd8,0x1b,0xdb,0xac,0xeb, - 0xd1,0x5d,0x5b,0xfa,0x58,0x9a,0x75,0x3f,0x59,0x27,0x1e,0xd4,0x29,0x78,0x0c,0x4a, - 0x75,0x62,0x63,0x30,0x8a,0xdb,0x35,0xd8,0xf2,0x4c,0x91,0x97,0xb2,0xd4,0xa1,0xf9, - 0xe1,0x9b,0xb5,0xe4,0xda,0x9c,0xba,0xbd,0xb9,0xe8,0x70,0x38,0x08,0xa4,0xab,0x7d, - 0x3a,0xd3,0xaa,0xdb,0xdc,0x13,0xdc,0x27,0xca,0x24,0xc3,0x1c,0x5f,0xd6,0xe2,0xf5, - 0xd3,0xea,0xd4,0xa1,0xe1,0x95,0xa0,0x95,0x1c,0x42,0x0f,0xf7,0x6a,0x6f,0xec,0xe8, - 0x65,0xf5,0x83,0x36,0xbb,0x8f,0x1a,0x33,0x6a,0x6b,0xc3,0x4a,0xfe,0xa3,0xb6,0x36, - 0x84,0xee,0x71,0x5b,0xdb,0x71,0x34,0x3d,0x86,0xde,0x8c,0x65,0x64,0xad,0x5a,0x97, - 0x46,0x74,0x98,0xb4,0xb5,0xbd,0x8c,0xa6,0x2f,0xdb,0xda,0xf0,0x84,0xbe,0x6a,0x6b, - 0x7b,0x1d,0x55,0x81,0x59,0x83,0x2b,0x03,0x64,0xcb,0xa0,0xad,0x75,0xc9,0xf2,0x92, - 0x21,0x2b,0xcf,0xe8,0x13,0x0c,0x5d,0x82,0xea,0x86,0x0b,0xb4,0x93,0x13,0x71,0xaf, - 0x82,0x37,0xd1,0xa7,0xd0,0x2d,0x91,0x74,0xa5,0x00,0x36,0x7a,0x5d,0xa2,0xea,0xf4, - 0xe7,0x82,0x67,0x69,0x55,0x0c,0xed,0x1f,0xef,0x93,0x7a,0x18,0xda,0x10,0xfc,0xc0, - 0xb9,0x3f,0x16,0x9c,0x96,0xa0,0x1b,0xf1,0x71,0x0b,0x5f,0x26,0xc8,0x97,0x09,0xe8, - 0xf5,0x72,0x26,0x33,0xdd,0xaa,0x0c,0x23,0xd4,0x86,0x51,0xe8,0xd5,0x3d,0x58,0x24, - 0xbd,0x0f,0x61,0x5a,0xd8,0xbb,0x67,0x76,0xab,0xee,0xbb,0xa3,0x09,0x2b,0x91,0xa7, - 0x38,0xb8,0x87,0xf7,0x9d,0x89,0x92,0x27,0x5d,0x3c,0x4a,0x62,0x10,0x2e,0x12,0x7c, - 0xc8,0xc1,0x60,0xb0,0x09,0x32,0xe9,0x7f,0x4d,0x57,0xb2,0x2d,0xbd,0x90,0x71,0x5e, - 0x3c,0x9c,0x04,0x6d,0x87,0x77,0xa7,0xa2,0xdd,0xa1,0xad,0xb8,0x46,0x3f,0x1b,0xdd, - 0x5b,0xcc,0x01,0x09,0xac,0x42,0x4d,0x5e,0x70,0x16,0x6c,0xd8,0x67,0xa9,0x56,0x4c, - 0xa5,0x2e,0x9b,0x65,0x14,0x9b,0xcf,0x45,0x12,0x03,0x46,0x31,0x70,0x0a,0xce,0xb9, - 0xe8,0x53,0x22,0xbb,0xa7,0x8d,0xc8,0xb2,0x50,0xbf,0xa3,0xc9,0x52,0x84,0x72,0x1d, - 0x7d,0x10,0x3f,0xce,0xda,0x11,0x41,0x5d,0x51,0x33,0x38,0x4f,0xd5,0x2d,0xa7,0xbd, - 0xe4,0xac,0xdf,0xe3,0x8c,0xdb,0x93,0xdf,0x54,0x9b,0xc9,0x28,0x9b,0x0f,0x3d,0x94, - 0x47,0xb7,0xb8,0xc4,0x0d,0x88,0x91,0xe5,0x16,0x43,0xb3,0x5d,0x87,0x6e,0x7c,0xa7, - 0x0b,0x3c,0x1d,0xc0,0xa9,0xb5,0x36,0x1d,0x6a,0x3f,0x3e,0x67,0x52,0xa6,0x1b,0xb2, - 0x16,0xaa,0x63,0xb8,0x34,0xb7,0xc3,0xe2,0xfd,0xc4,0x0d,0x27,0xaf,0xf6,0x11,0xf7, - 0x02,0x78,0xa6,0x39,0x1c,0x3d,0xcb,0x29,0x7f,0x89,0xbd,0x89,0xd0,0x6e,0xd9,0xf8, - 0x7a,0xc6,0x95,0x68,0xa9,0x67,0xe5,0x69,0x4f,0x08,0x38,0xfe,0xde,0x1b,0x7f,0x15, - 0xba,0x2d,0xf5,0xfa,0xb3,0x2c,0x20,0x43,0x90,0x35,0xae,0xec,0x84,0xe6,0x0a,0xca, - 0x58,0x4b,0x9f,0xce,0x9d,0xae,0x6a,0xcc,0xc3,0x93,0xd5,0x27,0x34,0x72,0x76,0x9c, - 0x89,0x1c,0xfb,0x08,0xbd,0x86,0xdc,0xbe,0x3d,0x3c,0x93,0xa5,0x7d,0x7b,0xc1,0x48, - 0x89,0x0b,0xaf,0x7c,0x1e,0xb6,0x60,0xca,0xe8,0x70,0xc5,0x43,0xfa,0x2e,0x4b,0x63, - 0x7f,0xd3,0x3b,0x5c,0x71,0x87,0x4b,0x95,0xd1,0xab,0x56,0xcd,0xc2,0x7c,0xbf,0xa7, - 0x7b,0x41,0x1b,0xed,0x2c,0x3e,0x94,0xd2,0x8e,0xc8,0x1a,0xfa,0xeb,0x25,0xe6,0x65, - 0x34,0x19,0xc7,0xe0,0xdf,0xbf,0x01,0xfc,0xde,0x41,0xbd,0x90,0xb6,0xa0,0x5c,0xf7, - 0x27,0xce,0xeb,0xd7,0xc3,0x69,0x7c,0xe5,0x49,0xec,0x18,0x7f,0x11,0x93,0x6b,0x84, - 0x97,0xb9,0x4e,0x64,0xc1,0xd3,0x07,0x73,0x37,0x0e,0x33,0x34,0xb7,0x70,0x9f,0x4a, - 0x70,0x2c,0x95,0xc8,0x04,0xd7,0x60,0x24,0xb8,0xaa,0x44,0xed,0x0a,0x08,0x73,0x19, - 0xaa,0x01,0x69,0x95,0x18,0x02,0x0f,0xf6,0xca,0xa6,0x03,0x8c,0x8d,0x8e,0x27,0x35, - 0xdc,0x92,0x45,0x15,0xbc,0xb5,0xde,0x9b,0xda,0x43,0x16,0xbb,0x6e,0xf7,0xce,0x4e, - 0x21,0x6f,0xc4,0x92,0x9c,0x1e,0xf7,0xa5,0xb5,0x9f,0x4c,0xb9,0xcd,0x3f,0x63,0x47, - 0xff,0xad,0xad,0xa7,0x36,0x4a,0x58,0x42,0xae,0xe8,0xb3,0xd3,0x5d,0xec,0x47,0x85, - 0xe2,0xf5,0x92,0xf6,0x5c,0xf6,0x65,0xf1,0x99,0xf5,0x5f,0xd6,0x80,0x00,0xa3,0xd6, - 0x5b,0xef,0x44,0x2f,0x90,0xd7,0x31,0xb8,0x35,0xb8,0x42,0x54,0x9b,0x73,0x8b,0x0d, - 0xce,0xa6,0x58,0x71,0x65,0x44,0x64,0x1a,0x62,0xe4,0x14,0x97,0x28,0x10,0x97,0xee, - 0xd6,0xca,0x46,0x05,0x07,0xd5,0x94,0x74,0xab,0xc1,0xa5,0x97,0x54,0x5c,0xe2,0x88, - 0xdc,0xf9,0x7d,0x95,0x1d,0xfb,0x2d,0xa2,0x2f,0xee,0x0b,0xd1,0x04,0x7c,0xa2,0x6f, - 0x60,0x17,0xa8,0x64,0xdf,0x60,0xde,0x75,0xa9,0x72,0x77,0xc5,0x24,0xab,0x14,0x96, - 0x65,0x5d,0x06,0x33,0x25,0xbf,0x72,0xe5,0x53,0x5d,0x14,0xfe,0xb8,0xaa,0x3e,0x2e, - 0x54,0xf5,0xd2,0x48,0x93,0x21,0xad,0x5b,0xfd,0x85,0xaa,0x77,0xcd,0xfa,0xe1,0x25, - 0xc6,0xff,0xed,0x15,0xc6,0x21,0xfd,0x77,0x02,0xa2,0x51,0x53,0x1c,0xc3,0x7b,0xba, - 0xe2,0x3d,0x7d,0x9a,0xd2,0xe0,0xff,0xee,0xca,0xe0,0x87,0x55,0xf1,0xfe,0xa7,0x15, - 0xf1,0xb6,0x48,0xb0,0xb5,0x40,0x97,0xec,0x35,0xad,0xf6,0x5c,0xef,0xd4,0xe9,0xa2, - 0x5a,0xf9,0x3a,0xa1,0x83,0x07,0xd6,0xd8,0x76,0x2c,0xb1,0xed,0x76,0x2c,0x2e,0x9d, - 0x76,0xe1,0x69,0x6a,0xf3,0x74,0xae,0x03,0x72,0x91,0x9e,0xd1,0x4b,0x82,0xb6,0xba, - 0xb1,0x2c,0x32,0xc9,0x52,0x7a,0x9d,0xc7,0x9e,0x5e,0x42,0x92,0x3e,0xe0,0x10,0x3b, - 0x97,0x8b,0xe0,0x98,0x3f,0xc4,0x80,0x13,0x88,0xfc,0x1f,0x94,0x9c,0x76,0x55,0x95, - 0xc1,0x9d,0xf1,0x1c,0x68,0x4d,0x97,0x50,0xb9,0x99,0xaf,0xac,0xf7,0xde,0xff,0x25, - 0x57,0x42,0xa6,0xc8,0xe9,0x05,0x95,0xd9,0x1c,0xda,0x46,0x0d,0x34,0x67,0xe8,0xe9, - 0x8a,0xc2,0x1f,0xe5,0xdf,0x13,0x1f,0xdd,0x6c,0x2d,0x4e,0x7e,0x2b,0xc9,0x9e,0xa3, - 0xde,0x18,0x04,0xb2,0xcf,0x18,0xbd,0xb8,0xa3,0xd1,0x00,0x27,0x0b,0x72,0x19,0x11, - 0xe4,0x7c,0x9f,0x8d,0xdf,0x88,0xd2,0x95,0xab,0xc7,0xd3,0xed,0x57,0xbe,0x2f,0xe1, - 0xef,0xd2,0x14,0x14,0x5b,0x01,0xfd,0x21,0xdc,0x40,0xf7,0xbb,0x8c,0x0a,0xc8,0xf3, - 0xd4,0xd5,0x5e,0x95,0x59,0x46,0xda,0x4e,0x7d,0x3c,0xd7,0x69,0xd0,0x13,0xb1,0x1c, - 0xa7,0xba,0x2f,0xd9,0x3e,0xda,0x4e,0xb7,0x19,0x8e,0x8f,0xa9,0xca,0xdd,0x3f,0xa4, - 0x57,0x11,0x7d,0xd5,0x82,0x2f,0x67,0x78,0x02,0x62,0x6f,0x1f,0xaa,0x1b,0xde,0xe3, - 0x57,0x0d,0xa5,0x0e,0x0d,0x60,0xc8,0x7c,0xb2,0x3c,0x75,0x3e,0x9a,0x86,0xde,0xe5, - 0xd5,0x97,0x77,0x67,0xee,0xbe,0xc5,0xe5,0x99,0x0f,0x1e,0xbf,0x83,0x0d,0x1d,0x8f, - 0x8b,0x64,0x5b,0xaf,0xd4,0x7c,0x72,0xdf,0x54,0xd2,0x69,0x75,0x04,0x89,0x1e,0x73, - 0xfb,0xa0,0x2b,0xca,0x77,0x59,0x06,0xd7,0x7f,0x6f,0xeb,0xe1,0xa3,0x01,0x0b,0xa5, - 0xe0,0xbe,0x3b,0xfe,0x75,0x71,0xef,0x76,0xd4,0xa8,0x72,0xe3,0xe8,0x4c,0xe8,0x2e, - 0x08,0x7e,0xe5,0x30,0x29,0x04,0xbb,0x9d,0x63,0x78,0xcf,0x92,0x30,0x6e,0xe7,0x56, - 0x71,0xd2,0xbc,0x1e,0x7a,0x9c,0xac,0xce,0xbd,0x2a,0xd4,0x29,0x5d,0xc8,0xb2,0x53, - 0x60,0xdf,0x50,0xa7,0x06,0xd5,0xa3,0x90,0x3f,0x3a,0x9a,0xb4,0xfa,0x42,0x72,0x6e, - 0x78,0x0e,0x46,0xfe,0x47,0x7b,0xff,0xde,0xdf,0xb6,0x91,0xeb,0x8f,0xe3,0xff,0xfb, - 0x51,0x30,0xdc,0x1e,0x87,0xac,0x28,0x59,0xb6,0x93,0xb4,0x2b,0x85,0xf1,0x2b,0x75, - 0xd3,0x6d,0x4e,0xd3,0x24,0x27,0x76,0xb7,0x7b,0x3e,0x8e,0x37,0x1f,0xd9,0xa2,0x63, - 0x35,0xba,0xad,0x28,0x5f,0xb2,0x96,0x7f,0x8f,0xfd,0x87,0x37,0x30,0xe0,0x5c,0x44, - 0xc9,0xce,0xe6,0xec,0xf7,0x9e,0xbe,0x6a,0x91,0x43,0x0c,0x06,0x83,0xb9,0x61,0x30, - 0x18,0x40,0x25,0x1e,0xb1,0x88,0xf5,0x07,0x04,0x85,0xcf,0x6b,0x12,0x8e,0x2c,0x32, - 0x5e,0xc8,0xc8,0xbb,0x56,0xda,0xfa,0x92,0xfd,0xff,0xba,0x0b,0x1f,0x74,0x96,0x7a, - 0xf7,0x8d,0x0f,0x8b,0x05,0x27,0xc6,0x6a,0x23,0x7f,0xf0,0xfa,0xd7,0xb7,0x6b,0xcd, - 0xa2,0x0f,0xdf,0x1a,0x47,0x2b,0xf7,0x95,0x55,0xc6,0xf3,0x69,0xad,0x68,0x12,0xd8, - 0xe4,0x4e,0x27,0x93,0x21,0x60,0x49,0xfa,0xfc,0x58,0xc7,0x59,0x71,0xc9,0x84,0x05, - 0x1b,0x0e,0xc0,0x74,0xb5,0x3e,0x85,0x59,0xed,0x7a,0xcb,0xcc,0x75,0xc7,0xe4,0xff, - 0x24,0x54,0x34,0x21,0xbd,0x39,0x78,0xf9,0xb7,0xfb,0x48,0xc7,0x73,0x93,0xe5,0x3e, - 0xf5,0xf9,0xf5,0xe0,0xf0,0xbb,0x5f,0x7f,0x3c,0xcc,0x7e,0xdd,0x6d,0xed,0xb4,0xda, - 0xd9,0xaf,0x14,0xab,0x63,0xbb,0xb5,0xc2,0xae,0xab,0x6e,0x33,0x0c,0x5f,0x89,0x15, - 0xad,0xbf,0x1d,0xee,0x63,0x77,0x41,0xdb,0x85,0x7b,0xf5,0x61,0xa5,0xb3,0x25,0x79, - 0xd4,0xcc,0xa7,0xea,0xbc,0xdb,0x8f,0x2c,0x1d,0x77,0x4c,0xf4,0xe8,0x0f,0x11,0xc9, - 0xea,0xe3,0x79,0xb5,0x1c,0xf1,0x41,0xbe,0x9a,0xc7,0xf6,0xbf,0x6a,0xee,0x2e,0xc7, - 0xa3,0xe9,0xdd,0x33,0xb6,0x6d,0x34,0x21,0x07,0x16,0xa2,0x17,0xe3,0xc1,0xfc,0x2e, - 0x71,0x59,0x4b,0x68,0x55,0x19,0xea,0x1b,0xee,0xce,0x8d,0x28,0x2e,0x2e,0xdc,0x73, - 0x23,0xca,0x4e,0x1f,0xec,0x46,0x74,0x95,0x2c,0xca,0x46,0xc6,0x90,0x2f,0x19,0x7e, - 0x26,0x3c,0x15,0xeb,0x06,0x9b,0x59,0x2d,0x1b,0x79,0xb2,0x96,0x2b,0x3a,0x57,0x50, - 0x04,0x63,0x1b,0x8d,0x15,0xd5,0xbd,0x3d,0x4d,0x43,0x9e,0x46,0x82,0x5a,0x33,0xb8, - 0x97,0x82,0x5a,0xd1,0x4f,0x03,0x82,0x85,0x82,0x0f,0xa9,0x2f,0xdf,0x8a,0x4c,0x0b, - 0x3b,0x4a,0xf5,0x99,0x31,0x11,0x59,0x42,0xac,0x20,0xd5,0x61,0xdb,0xff,0x35,0xfc, - 0xf5,0x50,0xbd,0xfe,0x6d,0x0e,0x7b,0x80,0xfc,0xff,0x7c,0x8f,0x3d,0x20,0xe2,0xff, - 0x42,0x2e,0x7b,0x40,0xce,0xff,0xd9,0x3e,0x7b,0x40,0xc4,0xff,0x2b,0x9c,0xf6,0xfc, - 0x3f,0xc2,0x2d,0x8f,0x5a,0xba,0x6c,0x37,0xb7,0x77,0xa3,0x2b,0x98,0xf8,0xab,0xab, - 0x1c,0xeb,0x3c,0x47,0x3c,0x88,0xad,0x75,0xd1,0x63,0x8d,0xbc,0xa1,0x53,0x2c,0x86, - 0xea,0x52,0x8c,0xf6,0x0d,0xc0,0xdf,0xd7,0x46,0x12,0x07,0x3e,0x98,0xcf,0xb4,0xee, - 0x5d,0x3c,0x7c,0xd9,0x9d,0x8d,0x40,0xef,0xdd,0xde,0x79,0x64,0x87,0x94,0x5a,0x35, - 0xd4,0x1f,0xfd,0xda,0x11,0x03,0x38,0x80,0xc5,0x35,0xea,0x5c,0xa3,0xca,0xbd,0x18, - 0xad,0x92,0xe5,0x21,0xc4,0xc0,0xc5,0x0c,0xe4,0x8f,0x21,0x61,0x2a,0xe7,0xb8,0x74, - 0x09,0x63,0xf2,0xb4,0x36,0x8b,0xb4,0x85,0xf5,0x3c,0x91,0x18,0xbb,0xd8,0xf4,0xde, - 0x27,0xc0,0x81,0xc2,0xb4,0x07,0xc9,0x76,0x0c,0xcb,0x80,0x7a,0x33,0xb6,0x2f,0xbf, - 0xd4,0xdb,0x9f,0xbc,0x03,0xd3,0xcd,0x35,0x5c,0x3c,0x71,0xbb,0x7e,0xe9,0x2d,0x61, - 0xf5,0x17,0x49,0x7d,0x05,0xf3,0xb2,0x57,0xc0,0x2b,0x24,0xa3,0x00,0xf1,0x3d,0x49, - 0xcf,0x16,0xfb,0x5d,0x8b,0x38,0xeb,0x57,0xee,0xb7,0x8a,0xab,0xcd,0x8e,0xcc,0x06, - 0xc8,0xce,0x99,0x9b,0xb4,0x02,0x3b,0xd4,0x4e,0x7a,0x73,0x13,0x13,0x26,0xf4,0xa3, - 0x1f,0x68,0x07,0xd1,0xd6,0x61,0x4c,0x2c,0x48,0x82,0xab,0xee,0x44,0x70,0x18,0x3d, - 0xf0,0x41,0x1f,0xef,0xd5,0xa4,0xb8,0x8e,0x80,0x49,0xa6,0x37,0x8d,0x92,0x5f,0x7e, - 0x48,0x19,0xed,0x53,0x09,0x04,0xc7,0xa8,0xa8,0xb0,0xd9,0xa7,0x26,0xbe,0x5b,0x37, - 0xbf,0x7c,0xcc,0xb1,0x25,0x40,0x7a,0x2d,0x12,0x37,0xad,0x70,0x0a,0xa0,0xa6,0xe4, - 0xf5,0x78,0xc6,0x80,0xab,0x47,0x74,0xc7,0x99,0x25,0x36,0x05,0x4d,0xe1,0x67,0xa8, - 0xc0,0x2f,0x6b,0x77,0x33,0x80,0x35,0xdb,0x99,0x7b,0xbb,0xaf,0xc1,0xd0,0xe2,0xe1, - 0x1a,0x7d,0x2e,0xe6,0xad,0xbb,0xba,0xc6,0xe9,0xf0,0x6e,0xf1,0x4e,0x8b,0x76,0xa3, - 0x62,0x06,0x70,0x70,0x3e,0x8d,0x3a,0xca,0x53,0xf8,0x51,0x62,0x8d,0xc4,0x81,0x94, - 0x5c,0x4e,0x97,0xbc,0xf8,0x06,0xeb,0xa5,0x43,0x97,0x45,0xde,0x64,0x87,0x43,0xf7, - 0x13,0x3a,0x36,0xaa,0x01,0x84,0xe5,0xf8,0x77,0xbe,0x1d,0x8d,0x21,0xb4,0x39,0xa4, - 0x03,0x9d,0x6e,0xc4,0x98,0x74,0x18,0xd5,0x13,0xf1,0xa5,0xc2,0x0d,0xfd,0xfc,0x5c, - 0x0c,0xa7,0x28,0xe4,0x9c,0x7e,0x15,0xf9,0x97,0xd5,0xd0,0x1e,0xa3,0x7c,0x69,0x35, - 0x07,0x67,0xc9,0x03,0x7a,0x6c,0x9d,0x5c,0x94,0x9f,0x53,0x7a,0x78,0x77,0x31,0x4e, - 0x8e,0x1e,0x5a,0x7c,0x0f,0x8f,0x89,0x30,0xfb,0xfa,0x3f,0x5e,0x77,0xbe,0xeb,0x89, - 0xca,0x9f,0xe2,0x61,0xad,0x58,0xa2,0x61,0x4f,0x6c,0xbd,0xf1,0x56,0xbb,0x4b,0x74, - 0x82,0xa0,0xd0,0xf7,0xe0,0x03,0x22,0x94,0x44,0xca,0x40,0x9b,0xb4,0xc6,0x00,0xb8, - 0x0a,0x4e,0x11,0xf6,0x48,0x13,0x35,0x42,0xfc,0x35,0x4b,0xd7,0xac,0x13,0xd8,0x6d, - 0x39,0x83,0x71,0x28,0x18,0xd6,0x8b,0xe6,0xb5,0x12,0xfc,0x46,0x39,0x25,0xf7,0xd7, - 0xbc,0x33,0xac,0x84,0x41,0xbe,0x1e,0x4f,0x92,0x13,0xc4,0x0b,0xda,0x35,0x4c,0x82, - 0x9d,0x35,0x88,0x88,0x7a,0x7a,0x4f,0x30,0x58,0xa8,0xb4,0x02,0xc8,0xf5,0xe5,0xcd, - 0xb8,0xe1,0x36,0xe3,0x01,0x7b,0x3d,0x46,0x3b,0xce,0x2e,0x42,0xa9,0xbc,0xb6,0x31, - 0x8d,0xa3,0x77,0x50,0x24,0x33,0x3b,0x79,0x7c,0x7f,0x76,0xd8,0x3b,0x79,0xba,0x85, - 0x87,0x48,0xf9,0xa3,0xf3,0xbe,0x85,0xd9,0xbc,0xc0,0x48,0x14,0x30,0x49,0xe8,0xdb, - 0x04,0x6a,0xd6,0x12,0xf7,0x84,0x25,0x9b,0x87,0xfb,0x45,0x79,0x6a,0x60,0xa8,0x37, - 0x8f,0x06,0x65,0xe9,0xa1,0x16,0x17,0xdd,0x23,0xaa,0xd9,0x80,0xca,0x45,0x00,0x39, - 0x39,0x42,0xa7,0xda,0x40,0xaa,0x92,0xbb,0x6b,0x4a,0x4d,0x50,0xad,0x1a,0xaf,0xcc, - 0x5b,0xf0,0xd2,0xed,0x57,0xd8,0xc4,0x1a,0x46,0x5f,0xb0,0x2f,0x68,0x8f,0x2a,0xa1, - 0x49,0x92,0x10,0x14,0x07,0xeb,0xe7,0xbc,0xba,0xdd,0x83,0x33,0xa4,0xd0,0x4a,0xb3, - 0x39,0xe9,0x46,0x45,0xb2,0xc0,0xcb,0x7a,0xa1,0x62,0x64,0x29,0xf2,0x45,0x08,0x6c, - 0x2c,0x5c,0xc7,0x10,0x2a,0x38,0xae,0x1d,0xa3,0x36,0x1e,0xa5,0x0e,0x30,0x7f,0x3b, - 0x38,0x9b,0x60,0x5d,0x90,0xb3,0xc7,0x38,0x72,0xfd,0x9f,0xc3,0x05,0xd0,0xc9,0x67, - 0xcf,0x7d,0x71,0x69,0x20,0xc4,0x60,0x91,0x3a,0xeb,0xec,0x22,0x5c,0x6e,0x4c,0x94, - 0xce,0xf8,0x99,0xc9,0xae,0x39,0x85,0x87,0xc1,0xfe,0xf6,0x6e,0x3e,0x7e,0xd5,0x6c, - 0xc6,0x7a,0x09,0xde,0xa7,0x82,0x50,0x66,0x7f,0x69,0xf7,0xa8,0xff,0xbe,0x72,0xd9, - 0x41,0x37,0x97,0x4b,0x65,0xee,0xe3,0xa5,0x2a,0x32,0x5c,0xbe,0xab,0x18,0xa1,0xca, - 0x7b,0x3a,0x43,0x81,0x3a,0x71,0x38,0x98,0xeb,0xc6,0x12,0x0b,0x81,0xb2,0x1a,0xf9, - 0x56,0xfb,0xef,0xa8,0x56,0x77,0xe8,0x29,0xc2,0x5e,0x3b,0x18,0x57,0xfc,0xbe,0xeb, - 0xbc,0x1e,0xd1,0x2e,0x75,0x8e,0xc4,0x63,0xed,0x8c,0x6e,0x82,0x4c,0x0a,0x58,0x71, - 0xcd,0xd1,0xc0,0xb4,0x2f,0x2c,0xed,0xbf,0x1e,0x61,0xff,0x15,0x86,0xbd,0x95,0xb0, - 0x03,0x16,0x38,0x74,0xd9,0xb7,0x1c,0xe8,0x92,0xb8,0x29,0xa6,0xd7,0x45,0xe8,0x9b, - 0xdc,0xc4,0x29,0x98,0x0c,0x6b,0x84,0xac,0xc7,0x4b,0x91,0xf2,0xfe,0xdc,0xf5,0xc2, - 0xa7,0xec,0x84,0xf1,0x32,0xce,0x3e,0xa6,0x20,0x6e,0x38,0xa0,0x09,0x70,0xca,0x0e, - 0xaf,0x54,0x6b,0x4b,0xd6,0x08,0x78,0xdf,0xc7,0xd6,0x63,0x88,0x94,0x54,0xfd,0x24, - 0xd2,0x6a,0x81,0x33,0x62,0x3e,0x75,0x1e,0x94,0xc6,0xe4,0xb3,0xf5,0xf4,0x64,0xa6, - 0x2b,0x54,0x8d,0xf4,0x57,0x2b,0xfb,0x91,0x23,0xed,0x5e,0xf9,0xa9,0xe8,0x67,0xd1, - 0xa9,0xfa,0x70,0x64,0x5f,0x0e,0xbf,0x1b,0x8f,0xd5,0x2f,0xc1,0x09,0x1a,0x56,0x4c, - 0xcf,0x16,0xbe,0x1e,0xcc,0x69,0x4f,0x5f,0x5d,0x3c,0x42,0xba,0xdd,0xa2,0x53,0x1d, - 0x50,0x11,0x71,0xe8,0x7e,0xd0,0x3b,0xa3,0x2e,0x05,0x8d,0xd9,0xfe,0xf9,0x6c,0xc2, - 0xee,0xff,0x85,0x5a,0xb1,0xe2,0x6f,0x59,0xf0,0xbf,0x4c,0x68,0xb2,0x25,0xdc,0x35, - 0x54,0x7f,0x47,0x9d,0xcb,0x36,0xfa,0xc5,0x6c,0x48,0x72,0xd2,0x7c,0x3e,0xed,0x6c, - 0x6d,0xd1,0xd5,0x81,0x16,0x19,0x02,0xb6,0x1e,0xb5,0xb6,0x41,0x84,0xc1,0xb6,0x35, - 0x19,0xd6,0x28,0x11,0x6b,0xce,0x45,0xb6,0x1f,0x11,0xe6,0xa0,0x32,0xa0,0xc2,0xa1, - 0xf0,0x61,0x89,0xfa,0xb2,0xd0,0xc7,0x13,0x13,0x8a,0xb1,0xfa,0x8f,0xff,0x76,0x7d, - 0xd2,0xcb,0x75,0xfd,0x41,0x09,0xa7,0x98,0x30,0xfe,0x19,0xe8,0x75,0x69,0xab,0x97, - 0x2c,0x44,0x7c,0xb4,0x1a,0x4c,0x69,0x4a,0xed,0x53,0x99,0xd1,0x07,0x0c,0xe0,0xad, - 0x6b,0x76,0x49,0x23,0xb3,0x94,0x4c,0xa7,0xb3,0x82,0x98,0x89,0x98,0xa5,0x30,0x07, - 0xfa,0x42,0xc7,0x3a,0xed,0x95,0x8e,0x75,0xfa,0x14,0xcf,0x80,0x7d,0x8d,0x7f,0x2c, - 0xe6,0x2f,0x86,0x05,0x1e,0x7f,0xf8,0xfc,0xb2,0x9f,0x3c,0x34,0xa3,0xeb,0x61,0xda, - 0x62,0x0e,0xbe,0xa2,0xe9,0xa2,0x05,0xaf,0x03,0xb4,0x14,0x3c,0x84,0x54,0xfc,0xf0, - 0x7e,0x9e,0x78,0xd0,0xa8,0xf0,0x5e,0x64,0x3d,0xf0,0x08,0xe5,0x77,0x0d,0x6e,0xd1, - 0x46,0xe8,0xf0,0x06,0xe8,0xf2,0xd4,0xa2,0x45,0xca,0x70,0xdf,0x7d,0x64,0x23,0xcb, - 0xe2,0x59,0x67,0x9e,0x9a,0x01,0xcf,0x9e,0x86,0x22,0x0e,0x7d,0xec,0x96,0x26,0xbe, - 0xaa,0x74,0x2b,0xee,0x06,0x1a,0x91,0x81,0x3e,0x75,0x61,0x47,0xe5,0xc7,0x8a,0x80, - 0x25,0x57,0xa0,0xc1,0x24,0x14,0x9b,0xaa,0x4f,0x03,0xc1,0xdd,0x62,0x1b,0x4c,0x57, - 0x77,0xce,0xd7,0xcb,0xee,0xaa,0x3a,0x18,0xe2,0x4f,0x7b,0x3e,0x06,0xc8,0xa6,0x9f, - 0x62,0x6d,0xe3,0x9a,0x06,0x01,0x29,0x61,0x48,0x6a,0x90,0xd6,0x53,0xf2,0x56,0x90, - 0xd0,0x75,0x50,0x3c,0xa9,0x41,0xe1,0x92,0x71,0x3a,0xb9,0x80,0x86,0xab,0xae,0xa9, - 0xa9,0x0b,0x0f,0xa6,0x74,0xd2,0x1a,0xc3,0x09,0xbf,0x31,0xb7,0xeb,0x6e,0x10,0xd7, - 0xa2,0x83,0x17,0xaf,0x0f,0x5f,0xbe,0x7e,0xf1,0x2a,0x8f,0xbf,0x35,0xff,0xe4,0x03, - 0x41,0xe5,0x37,0x30,0xe1,0xeb,0xc4,0x71,0xc6,0x0e,0x30,0xfa,0x1d,0xee,0x6d,0x19, - 0xd9,0xd1,0xc1,0x7f,0x99,0x7d,0xdb,0x1f,0x0e,0xcc,0x0b,0x54,0x4d,0x6f,0xcb,0x4f, - 0x4f,0x1e,0x99,0x77,0x55,0xdf,0x1e,0x88,0xf3,0xbb,0x0a,0xc5,0xb8,0x28,0xfa,0xa5, - 0xd1,0x8a,0x6a,0x1a,0x5b,0x07,0xab,0x33,0x1f,0x93,0x56,0xaa,0xbf,0x4d,0xe7,0xdd, - 0x29,0x9b,0xc4,0xf3,0xb2,0xd3,0xce,0x4e,0xcf,0x3e,0x76,0xc6,0x64,0x22,0x91,0xc1, - 0x14,0xac,0x73,0x73,0x9b,0xf5,0x07,0xb3,0xf9,0x67,0x3c,0x88,0x57,0xe2,0xb2,0x73, - 0x74,0x9c,0x8d,0xb1,0x27,0x07,0x34,0x6f,0xe6,0x71,0x9c,0x36,0xa3,0x17,0x48,0xab, - 0x9d,0x1b,0xa8,0x19,0x18,0x06,0x6a,0x02,0x7a,0xb8,0xcd,0xb0,0x4c,0x1f,0x52,0x4b, - 0x14,0x73,0x54,0x1f,0x6f,0x9a,0x03,0xcf,0x2f,0xa6,0x93,0xd3,0x73,0x7a,0x96,0xe0, - 0x05,0xfa,0x66,0x3c,0x79,0xd1,0x77,0xcc,0xbd,0x5a,0x57,0x03,0xf4,0x8a,0xac,0x76, - 0xf6,0x7b,0x53,0x1a,0xb4,0x85,0xd0,0x0a,0x56,0x29,0x07,0x70,0xfb,0x82,0xb7,0x61, - 0x9a,0xe9,0x96,0xa2,0x52,0x5d,0x8c,0xe5,0x58,0xe5,0x9b,0xa4,0x4c,0x6f,0xcc,0x70, - 0xaf,0x66,0x0c,0x92,0x86,0x67,0x9f,0x45,0xed,0x38,0x99,0x11,0xc0,0xad,0x03,0xef, - 0x66,0x78,0x3e,0x9b,0xd1,0x2d,0x59,0x9a,0x22,0xe7,0x13,0x08,0x38,0xad,0x72,0x88, - 0x69,0x1f,0xea,0xce,0xa4,0x1e,0x17,0xe4,0xd6,0x32,0x75,0xf1,0xb1,0x44,0x90,0x8c, - 0xd2,0x1b,0x74,0x8a,0x79,0xfe,0x4d,0x12,0xff,0x89,0x93,0xe2,0xb4,0x3b,0x6f,0x61, - 0xea,0xdb,0x97,0x78,0x9c,0xf9,0x88,0xde,0xed,0x7c,0x45,0xa3,0x25,0xe1,0x2d,0x3c, - 0xc1,0xf1,0xce,0xd2,0x5c,0xf4,0x4d,0xe6,0xad,0x0f,0x08,0x5a,0x46,0x7f,0x73,0x6a, - 0x1b,0x4d,0xd5,0xe2,0x92,0xf4,0x66,0xbe,0x34,0xeb,0x29,0xa2,0xdb,0x6c,0x87,0x6e, - 0xf5,0xba,0xc4,0x91,0x7c,0x67,0x6b,0xcb,0xb6,0x9d,0xe3,0x8f,0x94,0x40,0xf9,0x78, - 0x13,0x96,0x6c,0x1d,0x6d,0x3e,0x7d,0x16,0x1f,0x6f,0x7d,0xcc,0xaa,0x02,0x4e,0x15, - 0xfc,0x26,0xde,0x8c,0x3b,0x31,0x1f,0x24,0xc7,0x59,0xfc,0x14,0xcf,0xc3,0x39,0x1e, - 0x9f,0xe1,0xf1,0x23,0x1e,0x1f,0xc6,0x0f,0xe9,0xf1,0x1f,0x17,0x13,0x7a,0xb9,0x3d, - 0x3a,0x3d,0xbe,0x75,0xcb,0xae,0xd1,0xef,0x93,0x40,0x99,0xde,0xf0,0xe8,0xe1,0x1d, - 0x68,0x5e,0x3f,0xc3,0x33,0x1c,0x92,0x9e,0xcf,0x89,0x60,0x12,0x14,0xa9,0x82,0xde, - 0x91,0x42,0x9c,0xa6,0xdd,0x0d,0xe8,0x05,0x18,0x4b,0x2a,0xe4,0xca,0xa8,0x04,0x23, - 0x72,0x4e,0x6e,0xb1,0xc4,0x9a,0x3b,0x67,0x24,0x94,0xc7,0x7e,0x00,0xe0,0x9e,0x6c, - 0x7e,0x3b,0x2e,0x08,0x8a,0x76,0x5b,0x4d,0xe0,0x7e,0xc6,0xa4,0xd8,0x89,0x71,0x30, - 0x61,0x60,0xca,0x80,0x3c,0x7b,0x0c,0x12,0x67,0x9c,0x47,0x24,0xd4,0x8e,0xd9,0x06, - 0xa7,0xf5,0xb9,0x74,0x77,0x11,0x67,0xc9,0x72,0x41,0x69,0x23,0x96,0xdd,0x46,0x45, - 0x5e,0xaa,0x55,0xe0,0x50,0x3f,0x09,0xbd,0x5a,0x7e,0xa3,0xea,0xb3,0xf9,0x5f,0x8b, - 0x59,0x62,0x58,0x7c,0x76,0x95,0x97,0x04,0x79,0xb5,0x58,0xd0,0x10,0x1d,0xe5,0x5b, - 0x7f,0x4f,0x2e,0xf7,0xde,0xf7,0x1b,0xef,0x5b,0xfa,0x27,0xd9,0xeb,0xf0,0x6f,0xba, - 0x97,0x6e,0xb5,0x8a,0xeb,0xe2,0x34,0x39,0xbb,0x4a,0x0d,0x1b,0xf3,0xd1,0xde,0xe8, - 0x68,0xfb,0xb8,0x93,0x70,0xfe,0x8b,0xf1,0xa7,0x31,0x1c,0xca,0x43,0x9f,0x87,0x7d, - 0x91,0xb0,0x7f,0xab,0x49,0x42,0x48,0xd2,0x5c,0x7c,0x43,0xd9,0xe1,0xe1,0x10,0xd9, - 0xd3,0xb2,0x91,0xc7,0x48,0x8f,0xbb,0x91,0xf3,0x6f,0x6b,0x2b,0x7a,0x73,0xf8,0xfc, - 0xc3,0xfe,0xcf,0xcf,0x5f,0xd3,0x5c,0xfa,0xe1,0xf0,0xf9,0x5f,0xf2,0x93,0x62,0xde, - 0x03,0xe0,0x06,0xdf,0x9b,0x60,0x74,0x48,0xaa,0xc5,0x87,0x0f,0x40,0x28,0x98,0x7a, - 0x11,0xde,0xf9,0x36,0x8d,0x1e,0x1a,0x64,0x84,0x80,0x4f,0x21,0x36,0x4c,0x57,0xa7, - 0x9a,0x93,0x8b,0xc3,0x61,0x7f,0xaf,0x24,0x26,0x26,0x71,0x43,0xdf,0x1b,0x71,0x1a, - 0x77,0x4a,0x8f,0x6f,0xa4,0xc3,0x48,0xe0,0xa9,0x35,0x23,0xd5,0x7b,0x49,0xbc,0xc3, - 0x4f,0x8e,0x3f,0x8b,0xc5,0xcd,0xad,0xf4,0x33,0xbc,0xd1,0xac,0x40,0x8a,0x8d,0xd4, - 0x3e,0x42,0x70,0x6b,0xb2,0x07,0xb0,0xb8,0x0b,0xb2,0x06,0x6f,0x0e,0x22,0xfe,0x50, - 0x42,0xc3,0x41,0x6b,0xd4,0xcf,0x87,0x64,0x5e,0xf1,0xfc,0xed,0xcb,0xe8,0x2f,0x2f, - 0x0e,0xcb,0xa8,0x47,0x37,0x9d,0xd8,0x13,0x56,0x09,0x16,0x96,0xc0,0x0b,0x5c,0x7a, - 0x3d,0x7f,0x73,0xd3,0x48,0xc8,0xcf,0x4f,0xa8,0x19,0xf7,0xa5,0xa7,0x93,0xc5,0xb5, - 0x69,0x4c,0xf2,0x8d,0x93,0xe3,0xc0,0x37,0xf8,0x4a,0x5d,0x80,0x91,0xc0,0x3d,0x77, - 0x6f,0x98,0x13,0x94,0x79,0xec,0x6e,0xd4,0x4f,0x1e,0x80,0xe8,0x01,0x47,0x42,0xb3, - 0x85,0x5b,0x3e,0xf7,0x25,0x95,0x9a,0x0a,0x3a,0xb6,0x71,0x78,0xd2,0x82,0x7b,0x27, - 0x8b,0x85,0x68,0x02,0xf5,0x33,0x63,0x89,0x48,0x63,0xec,0x51,0x7b,0x3b,0xbd,0x41, - 0x07,0x7e,0x85,0xc8,0x50,0x44,0xd4,0xfc,0x1c,0xf7,0xd3,0x40,0xf0,0x8b,0xd9,0x8c, - 0x66,0xe0,0x18,0x2b,0x64,0x9c,0x56,0x25,0xcc,0x5a,0x7f,0x94,0xa0,0x87,0x38,0x49, - 0x45,0x59,0xd4,0x8a,0x79,0xf2,0x29,0x0d,0x51,0x50,0x27,0x84,0xe5,0x3a,0xdb,0xdb, - 0x60,0xfa,0xfa,0xcc,0x27,0xdf,0x7a,0x6a,0x8e,0x11,0xa6,0xc8,0xd1,0x6a,0xb7,0x21, - 0xd1,0x7f,0x08,0xea,0x07,0xc0,0xbd,0xb9,0xa9,0xb4,0x3f,0xc8,0x73,0x0a,0xb0,0x6a, - 0x78,0x5c,0xe4,0xb6,0xb4,0x3f,0x5a,0x05,0x7e,0x17,0x8b,0x24,0xe6,0x66,0x8c,0x1b, - 0x9a,0x85,0xe6,0x9e,0x42,0x6b,0xae,0x69,0x94,0x42,0x87,0x55,0x24,0x6a,0xfc,0x21, - 0xbf,0xf4,0x4e,0x1a,0x2f,0x7a,0xa3,0xbf,0x86,0x17,0x85,0xc3,0xdf,0x3f,0xe8,0x19, - 0xfc,0xf6,0xc7,0xef,0x74,0x52,0xce,0x85,0xe9,0x08,0xeb,0xa7,0xb3,0xb0,0xed,0x9e, - 0x37,0xa3,0x82,0x36,0x3c,0xfd,0x4e,0x4c,0x16,0x2e,0x87,0x71,0x26,0xf1,0xd6,0xca, - 0xce,0x4d,0x6c,0xa6,0xaa,0xe6,0xe1,0xe7,0x29,0xe6,0x0e,0xb8,0x68,0x32,0x4e,0x9a, - 0xb7,0xc0,0xe5,0xf8,0x96,0x11,0x76,0xfe,0xf3,0xe0,0xcd,0xeb,0x56,0xc9,0x4b,0x00, - 0x45,0xef,0x4f,0xb8,0x10,0x6f,0xc2,0x1e,0x7d,0x7a,0x57,0xfc,0x83,0x66,0x5f,0xc3, - 0x8e,0x1e,0xb3,0xe3,0x37,0x52,0xdb,0x7d,0xcf,0xcb,0x64,0xf2,0xbd,0x0c,0x7b,0xd3, - 0x4f,0x4f,0x67,0x9f,0xa7,0xf3,0xc9,0xe6,0xa6,0xfc,0x62,0xba,0x7e,0xc7,0xbe,0xf2, - 0xfe,0xca,0x77,0x89,0xd2,0xfa,0xe4,0xa4,0x97,0x76,0x65,0xc0,0x9f,0x11,0x93,0x79, - 0x21,0xc8,0xdb,0xdd,0xc1,0xd3,0xef,0xbb,0x83,0x46,0x23,0xed,0x1d,0x0d,0x8e,0xf3, - 0x5f,0xa9,0xae,0x2d,0x3e,0xb2,0x48,0xf8,0x71,0xc6,0xd9,0x93,0xf4,0x5b,0xba,0xc6, - 0x41,0x99,0x57,0x2c,0xdc,0xa3,0xde,0x54,0x96,0xed,0x9e,0x5d,0xc9,0x4e,0xd2,0x1b, - 0x01,0xa7,0xc7,0xa7,0xdb,0x4f,0xf6,0xe2,0x36,0x71,0x87,0x66,0x55,0x72,0x89,0x31, - 0x31,0x4b,0xe1,0x36,0x50,0x52,0x5f,0x41,0x54,0x8f,0x84,0xbe,0x05,0x13,0x03,0xf5, - 0xb2,0x9f,0x8a,0x1e,0x84,0x92,0x12,0x5c,0x21,0xd1,0xe1,0xe1,0x91,0x1e,0x34,0x1e, - 0xd3,0xf6,0x83,0x2a,0xf1,0xa2,0xe7,0xf6,0xdf,0x62,0x48,0x60,0xc5,0xd0,0x59,0xa1, - 0x65,0x15,0x4c,0x44,0xac,0xce,0x1e,0x24,0x94,0x04,0xb1,0x6c,0xf3,0x35,0x1f,0xe6, - 0x26,0x04,0x0b,0x84,0x65,0xc1,0xc9,0x69,0x0a,0x0a,0xcc,0x1c,0x0c,0x1e,0x90,0x4c, - 0x34,0xeb,0xb3,0x4c,0xb1,0x74,0x39,0x4c,0x1a,0xa3,0x02,0x4a,0xab,0xa7,0x7b,0x14, - 0x9e,0xd0,0xdd,0xa0,0x05,0xf8,0x89,0xf2,0xa8,0x56,0x71,0xcb,0x77,0x07,0xb7,0xa2, - 0x66,0xeb,0x2a,0x46,0x29,0x4b,0xd2,0x6c,0x8a,0xaa,0x08,0xd3,0x42,0xeb,0x04,0xe5, - 0x5e,0x5d,0x19,0xb4,0x43,0x79,0x25,0x66,0x0a,0x84,0xb4,0x12,0x99,0xf7,0x48,0x6a, - 0x7e,0xb2,0xeb,0x60,0x0c,0x4f,0xf5,0xd7,0x36,0x88,0xbb,0xa4,0xbb,0x58,0x37,0xf6, - 0xa2,0xf8,0x7f,0xd8,0x1a,0x20,0xde,0xe8,0xdc,0x17,0x67,0x2b,0x96,0xe6,0x46,0x03, - 0xfb,0x5e,0xf5,0xd3,0xb5,0x9c,0xf6,0xf6,0x02,0xd2,0x11,0x90,0x2c,0x7b,0x0d,0x5d, - 0x31,0x86,0x03,0xd2,0x56,0xe7,0xc4,0xab,0x3f,0xc1,0x2d,0xac,0x71,0xae,0x72,0xe4, - 0x38,0x5d,0x45,0x23,0x74,0x29,0xab,0x40,0xa6,0xf2,0xa3,0x22,0xa5,0xa1,0x4a,0x8e, - 0xd3,0xd2,0x50,0x70,0x05,0x29,0x32,0x5a,0x28,0x3f,0x25,0xca,0x9e,0xc7,0x17,0xc5, - 0x70,0x34,0xb8,0x8e,0x02,0x7c,0x57,0x12,0x0c,0x6c,0x8a,0xdf,0x3a,0x22,0x90,0xbe, - 0x8a,0x0a,0x65,0xdf,0xee,0x7a,0x80,0x72,0x3e,0xbd,0x03,0x22,0x3c,0xcb,0x5c,0x0b, - 0xec,0x45,0xbb,0x4b,0xbd,0xfe,0x15,0x7f,0x49,0xec,0xbb,0xd2,0xc4,0xda,0xbc,0x10, - 0x47,0xce,0x62,0x18,0x46,0xd9,0xac,0xfb,0x66,0x4a,0xe4,0xbc,0xaf,0x9e,0xbf,0x6e, - 0xc5,0x5a,0xb8,0x0d,0xf6,0x13,0x16,0xce,0xa1,0x7f,0x50,0xa0,0x04,0xb7,0x41,0xf1, - 0xa5,0x1b,0x09,0x48,0x71,0x78,0x31,0x16,0x42,0x24,0xe2,0x02,0x5b,0x21,0x7d,0x87, - 0xd9,0x04,0x3b,0xa0,0xfa,0xcd,0x7e,0x3e,0xfc,0x95,0x76,0xc5,0x12,0x2f,0x61,0x8d, - 0xf3,0xec,0x10,0x89,0x38,0x8c,0x4e,0x5b,0xaa,0xe6,0x71,0xd6,0x7e,0xe3,0x8f,0xfc, - 0xd6,0x9b,0x85,0xb1,0x75,0xc7,0xe4,0x8b,0x75,0x30,0xde,0xa2,0xbf,0x5b,0xe6,0x02, - 0x44,0xb8,0xc2,0x43,0x76,0xa3,0x96,0xc2,0x9e,0x3c,0x2f,0xf9,0xa7,0x4b,0xaf,0xb2, - 0x35,0xa7,0x04,0x3c,0x74,0x6d,0x57,0xcd,0x1f,0x3c,0x20,0x20,0x7a,0xe8,0x56,0x03, - 0x87,0x93,0x88,0xa8,0x2e,0xd0,0x94,0x73,0xb8,0x03,0x38,0x84,0xc9,0x0b,0x24,0x2b, - 0x7c,0x9a,0x9b,0x97,0x0f,0xf2,0x0d,0x19,0x35,0x89,0x0c,0x39,0x72,0x07,0x80,0x66, - 0xb0,0x0f,0xe6,0x44,0x6b,0xb1,0x78,0xfc,0x68,0x5b,0x58,0x10,0x1e,0x84,0xae,0x19, - 0xe3,0x21,0x01,0x18,0xe4,0xee,0xb4,0xc5,0xf4,0xe0,0xed,0xc3,0x14,0xaf,0xf8,0xb8, - 0x3c,0xfd,0x32,0x90,0xa6,0x7e,0x28,0x35,0x19,0x74,0x7b,0x0a,0x06,0xc0,0x49,0xca, - 0x07,0x85,0x06,0x42,0x7f,0x96,0x01,0x90,0xa4,0x7c,0x98,0x98,0x24,0x00,0x49,0xbe, - 0x03,0xa8,0x0d,0x1d,0x34,0x25,0xde,0xbb,0x66,0xb5,0xc9,0x4b,0xfc,0xf4,0x4e,0x06, - 0xa4,0xc3,0x1f,0x14,0x24,0x55,0xb7,0x39,0xa3,0x28,0x1c,0x72,0xdb,0x22,0x7b,0xbc, - 0xdc,0x53,0x6d,0x93,0xb2,0xc5,0x7e,0x76,0x8a,0x0f,0x00,0xa1,0x0c,0x54,0x30,0x9c, - 0x3c,0x8e,0xaa,0x84,0x76,0xb6,0x94,0x14,0xe6,0x69,0xa7,0x1d,0x2a,0x07,0xb3,0x53, - 0x8b,0x5b,0x63,0xd4,0x2f,0x9f,0xb5,0x53,0xf2,0x32,0xfd,0xe1,0xd7,0xe7,0x7f,0xcb, - 0x6d,0x22,0xd3,0x82,0xad,0x92,0xd9,0x29,0x75,0x75,0xa7,0x40,0x29,0xfc,0xfb,0x81, - 0xe6,0xab,0x42,0xbf,0xf0,0xe9,0x50,0xc9,0x3f,0x9a,0xc4,0x57,0x1f,0x00,0x8c,0x5f, - 0x4e,0x84,0xe8,0xfd,0x03,0xde,0xf6,0x09,0x7f,0x62,0xbe,0x70,0x61,0x66,0xee,0x90, - 0xa0,0xc2,0xc1,0x98,0x2b,0x5b,0x94,0x08,0xac,0xea,0xdf,0x39,0x56,0x60,0x84,0x18, - 0x0e,0x61,0x41,0x01,0xed,0x6c,0xbe,0x25,0xc1,0xd4,0xee,0xfb,0x34,0x41,0x4a,0x94, - 0x59,0xf8,0x84,0xa5,0x07,0x8d,0x31,0x9c,0x76,0x4f,0x6a,0xb4,0x07,0x32,0xaf,0x29, - 0xb7,0x26,0x7d,0xde,0x36,0x8b,0x4d,0x42,0x7a,0x73,0x12,0x4c,0x2f,0x2f,0x0e,0x7f, - 0x7b,0x1b,0x03,0x8d,0x37,0x37,0x2a,0xf8,0x2d,0x84,0xbb,0x30,0x0f,0xcd,0x5c,0xf1, - 0xad,0x54,0x46,0x63,0x17,0xaf,0x9e,0x5c,0x7d,0xa9,0xcb,0x4a,0x7c,0x4e,0x47,0xb1, - 0x53,0x81,0x51,0x60,0xc5,0xcb,0x1b,0x09,0x55,0x62,0x58,0x15,0xd7,0xed,0x6d,0xda, - 0x71,0x5f,0x6b,0x36,0x09,0x53,0x99,0x42,0x0c,0x50,0x3e,0xd5,0xa7,0xc5,0xe2,0xe8, - 0xd8,0xac,0xb2,0x3a,0xa3,0x78,0xfb,0x9d,0xdb,0x6a,0x13,0x4b,0xdf,0x43,0x06,0x5a, - 0x3b,0x0d,0x05,0xbc,0x51,0x97,0xf1,0x48,0xb8,0x5d,0xa2,0xbd,0x90,0xad,0x4a,0xd1, - 0x32,0x37,0x2b,0x69,0x93,0x62,0xf6,0x4f,0x37,0xab,0x3a,0x44,0xec,0xd8,0x19,0x9f, - 0xf5,0x06,0x08,0xca,0xd2,0xe4,0xd8,0x9d,0x9f,0xe1,0x31,0xa8,0xeb,0xec,0x05,0xd9, - 0xb3,0xf5,0x4e,0x1b,0x6a,0xa2,0x70,0x03,0x02,0x42,0x93,0xcb,0xf4,0xe6,0x28,0xfe, - 0x93,0x06,0x6c,0xce,0xf0,0x28,0x8a,0x3b,0x3c,0x8b,0x2b,0xfa,0xe3,0x65,0x31,0x6b, - 0xd0,0x07,0x6d,0xf4,0xb7,0xbe,0x55,0xa9,0xa0,0x6f,0x08,0xf3,0x9a,0xae,0x57,0x69, - 0x82,0xb0,0x2d,0xa9,0x81,0x23,0x01,0x42,0x24,0x91,0xae,0xe8,0x00,0x66,0x45,0xb3, - 0x37,0x1b,0xe1,0x32,0xf2,0x67,0x5e,0xd9,0xe8,0x7b,0xc4,0xeb,0x09,0xce,0x28,0x64, - 0xb1,0xa3,0xb1,0x8e,0x85,0x14,0x8f,0x1c,0x10,0x18,0xeb,0xe2,0xc6,0xc5,0x14,0xc3, - 0x19,0xa7,0xc5,0x3f,0xc0,0xaa,0x23,0xa8,0xbd,0x34,0xa7,0x34,0x59,0x62,0xb9,0x90, - 0x4a,0xe7,0x75,0xa2,0x3d,0xa7,0xa8,0xdd,0x0b,0x9c,0x77,0x82,0xca,0x62,0x4c,0xa3, - 0x4f,0xe3,0x2a,0x67,0xb6,0x1d,0x2f,0x21,0x7b,0x5e,0x2e,0x9d,0x8c,0x9a,0x81,0x39, - 0x1f,0xe7,0x16,0x2b,0xbd,0x51,0xdd,0xa0,0x22,0xd2,0x20,0xf7,0x39,0xf4,0x47,0x5d, - 0x0b,0x41,0xfb,0xd1,0xa0,0xd1,0x31,0xd5,0xc8,0x56,0x5d,0x06,0x83,0x10,0xfb,0x35, - 0xfb,0xc4,0x8d,0xba,0x8d,0xe2,0x8d,0x2e,0x0a,0x1d,0x4b,0x0c,0x44,0xf8,0xb4,0xc5, - 0xa6,0x8c,0xb7,0xd4,0xba,0x1b,0xcb,0x1a,0x82,0x70,0xa3,0x1f,0xee,0xc6,0x75,0x7c, - 0x96,0x1d,0xdd,0x44,0x67,0x7f,0x74,0xfe,0xb8,0xad,0xc3,0x76,0x4d,0x6c,0xf4,0x38, - 0xc3,0x2a,0x35,0x1e,0x8f,0xd7,0x2d,0xa8,0x1f,0xa8,0x3b,0xa7,0x37,0x3a,0x32,0x95, - 0x71,0x75,0xb4,0x82,0x65,0xf7,0x18,0xa4,0xe1,0x18,0x35,0xc3,0x7b,0x5d,0x5b,0x5c, - 0xb7,0x2a,0x8d,0x41,0x0c,0x18,0x1d,0x86,0x10,0xf0,0x6b,0x26,0xa7,0x9a,0xea,0x04, - 0xd8,0x57,0x0e,0x6f,0x2e,0x25,0x36,0xfa,0x03,0xdb,0x7d,0xad,0x39,0xe5,0x0d,0x2b, - 0x12,0xb4,0x4b,0x20,0x8d,0xfa,0xc4,0xd2,0x54,0x67,0x19,0xa6,0x04,0x38,0x03,0xa0, - 0x8e,0x64,0x4f,0x55,0x40,0x47,0x0a,0xb4,0xa1,0x4f,0x3e,0xa5,0x37,0x18,0x8c,0xb4, - 0xf9,0xa6,0xcd,0xd1,0xff,0x26,0x5e,0xfe,0x6f,0xde,0x15,0xcd,0x45,0xb0,0x55,0x5f, - 0xde,0xe2,0xc2,0x59,0x3a,0x54,0x26,0x5a,0x1b,0x2a,0x9b,0x50,0xc8,0x3e,0x25,0x97, - 0x97,0x6c,0x94,0xcd,0xf2,0x53,0x11,0x31,0xb2,0x7f,0xd0,0x13,0x84,0x33,0x52,0xc1, - 0xf1,0x7a,0xce,0x87,0x0e,0x57,0x94,0x08,0x99,0x87,0x5b,0x3e,0x19,0xe5,0x9f,0x5a, - 0x23,0x26,0x72,0xeb,0xef,0x00,0x4d,0x8e,0xb6,0x9b,0x7f,0x3e,0x4e,0xdf,0xb7,0x92, - 0xf7,0x57,0x8d,0xf4,0x9b,0xad,0x34,0x15,0x95,0x7c,0x99,0x27,0xff,0x68,0x01,0x09, - 0xcf,0xe2,0xe9,0x51,0x03,0x7a,0xcd,0xe6,0xf6,0x31,0x6b,0xf7,0x00,0x70,0x99,0x97, - 0x47,0xa3,0xa3,0x9d,0xe3,0x63,0x73,0x68,0x48,0x09,0x39,0x8e,0x20,0xf6,0xe2,0xb8, - 0x63,0xd4,0x04,0x97,0x54,0x77,0xb9,0x23,0x8b,0x2a,0x6f,0xe0,0x6e,0xb8,0xc4,0x8a, - 0xe8,0x54,0xdd,0x1c,0xaf,0x5d,0x7c,0x08,0xe3,0x39,0x58,0x90,0xea,0xc3,0x07,0x7c, - 0x10,0x51,0xc1,0xe6,0xd0,0x60,0x07,0xb5,0x19,0x28,0xbd,0x16,0x5e,0xbd,0xfa,0xd7, - 0xe5,0x31,0xdf,0xf6,0x70,0x17,0xb1,0x03,0xf3,0x2c,0xcd,0x0e,0x5f,0xf4,0x9a,0xc1, - 0x54,0x70,0xd6,0xa2,0xc4,0xb4,0x2b,0x9f,0x01,0x1f,0x7e,0xa6,0xc4,0xd4,0x64,0x9f, - 0x5f,0x2f,0x7f,0x9e,0x5f,0x9b,0xcc,0xbd,0xb3,0xe5,0x8f,0xbd,0x33,0xcd,0xaa,0xee, - 0x25,0x97,0x40,0xcc,0x07,0x83,0x64,0xbe,0x0a,0xcc,0x7c,0x50,0x74,0x70,0x9f,0x68, - 0x6b,0x4e,0x6f,0x6e,0x5d,0x01,0xe1,0xfb,0x2d,0xb4,0xa0,0x92,0xb0,0xcc,0x99,0xd0, - 0x5b,0xa0,0xcd,0x82,0xc4,0x0f,0x6b,0xb2,0xa9,0x7f,0x32,0xcd,0x80,0x97,0x7d,0x1e, - 0x24,0x17,0x45,0x32,0x53,0x82,0x5d,0x37,0x7e,0x16,0xb5,0x93,0xba,0x8c,0xdb,0x73, - 0x89,0xac,0x79,0x12,0x19,0x32,0x2d,0xf3,0x11,0x5d,0x39,0x05,0x04,0x3a,0x95,0xec, - 0xb2,0x83,0xec,0xaa,0xe5,0x0d,0x59,0x5a,0x87,0x48,0x61,0x17,0x8b,0xed,0xc7,0x4a, - 0x78,0xe8,0xb2,0x77,0x2d,0x25,0x80,0xfa,0xb0,0x8e,0x1a,0x00,0xdc,0x9b,0x22,0x45, - 0xb8,0x4c,0x95,0xba,0xbb,0xb2,0x9c,0x94,0x84,0x65,0x26,0xaa,0x0b,0x9b,0x9a,0x9e, - 0xcb,0x9f,0xb0,0x61,0x53,0xa4,0xa1,0xbf,0x9e,0x35,0x59,0x3e,0x08,0x44,0x98,0xd3, - 0x3a,0xca,0x59,0x97,0x57,0x61,0x34,0xb7,0x75,0x39,0xe3,0xd6,0x08,0xa9,0x1f,0x24, - 0x55,0xe0,0x42,0x17,0x5a,0xcb,0x45,0x08,0xc0,0x07,0x05,0xf0,0xa9,0xbb,0x23,0xb7, - 0x12,0xb8,0x02,0x87,0x4a,0x02,0x9a,0x4d,0x67,0x24,0xe7,0x9e,0x97,0x22,0xbc,0xe2, - 0x57,0x19,0x85,0xaa,0xf5,0xb3,0x1f,0xf1,0x66,0xbf,0xd9,0xdb,0x17,0x16,0xc2,0xa6, - 0x49,0x11,0xc1,0x6d,0x97,0x90,0xf0,0xab,0x96,0x7c,0xff,0x60,0xbe,0x53,0x37,0x51, - 0xa2,0x3d,0x17,0x30,0x9a,0xed,0x1f,0x9a,0xb2,0xdc,0x59,0x5c,0xaf,0x29,0x16,0x5c, - 0x12,0x84,0x66,0xeb,0x6b,0xc4,0x7e,0xc7,0xab,0x8b,0x40,0x64,0x1a,0x0b,0x60,0x12, - 0xc2,0x19,0xca,0x73,0x8d,0x60,0xa1,0x35,0xa5,0x9e,0x3a,0xf8,0x23,0xb0,0xb0,0x78, - 0xab,0x47,0x3b,0xbf,0xb6,0x50,0xf4,0xe2,0x7c,0x99,0x39,0x5f,0xe8,0xa5,0xb6,0x98, - 0xd5,0xbd,0x84,0x6a,0x1b,0x74,0x8c,0xe0,0xda,0xbe,0xc5,0xad,0x69,0x61,0xc5,0xc3, - 0x2c,0xab,0xcb,0xb2,0x30,0x1f,0xea,0x4b,0x9d,0x4f,0x6d,0x79,0x78,0xb3,0x1f,0xd5, - 0xb5,0x8a,0xfd,0xcc,0xef,0x5a,0xbe,0xfa,0x24,0xb1,0xdf,0xe5,0x5d,0x10,0xd8,0xfb, - 0xc1,0xf6,0xb3,0x26,0x09,0x86,0xe0,0x62,0x6e,0x48,0xb9,0x05,0xff,0x20,0x00,0x4a, - 0x36,0xdf,0x93,0xb5,0x48,0xf1,0x1a,0x72,0x27,0xb8,0xe9,0x1a,0x40,0x7f,0xa8,0x3e, - 0x60,0xff,0x66,0x87,0xa2,0x7b,0xf0,0x3f,0x84,0x7c,0x56,0x0c,0xcd,0x56,0x72,0xa8, - 0xa7,0xe1,0xf6,0xda,0x6e,0x6a,0x50,0xd2,0x37,0x4e,0x0b,0x86,0x82,0xfd,0xca,0xe2, - 0x9b,0x87,0x9c,0xea,0xf2,0x02,0xc8,0xb3,0xcb,0x35,0xe8,0x2d,0xde,0x3c,0xb9,0xa4, - 0x4f,0x40,0xae,0x87,0x3f,0x8a,0x35,0xbf,0x74,0xf1,0x6a,0x40,0xa5,0xfd,0xca,0x22, - 0xe4,0x45,0x9f,0xe4,0xc8,0xe4,0x54,0xec,0x42,0xcc,0x01,0x9e,0xbe,0xb9,0xaa,0x66, - 0x6a,0xd6,0x32,0x7f,0x73,0x02,0x5f,0x2e,0xf6,0x4c,0x08,0xea,0x02,0x72,0xae,0xf0, - 0x76,0x86,0x28,0x79,0x60,0x15,0xe5,0x06,0x20,0x9f,0x13,0x29,0x52,0xa1,0xa3,0xcc, - 0x9c,0x19,0x2c,0xdd,0xd8,0xdc,0xf4,0xbf,0x1e,0x39,0x5f,0x8f,0x69,0x37,0x5e,0xca, - 0xfc,0xe0,0x25,0x53,0xa6,0x07,0x77,0x60,0x9f,0x5e,0x09,0x72,0x9b,0x5d,0x53,0x8f, - 0x89,0x3f,0x6a,0x68,0x44,0xd5,0xac,0x29,0x5d,0xe1,0xd0,0xcc,0xfa,0xb9,0xd6,0x44, - 0x46,0xf7,0x3f,0xa2,0x9a,0xbf,0x0b,0x34,0x67,0xe0,0xfa,0x0a,0x5b,0xd2,0xe2,0x58, - 0xcf,0x14,0x04,0xaa,0x7f,0x40,0x55,0xce,0xef,0xc7,0xcb,0xbd,0x35,0xac,0xec,0xd4, - 0x31,0x92,0xdb,0xc9,0x2b,0xa8,0x9e,0xe1,0x5f,0xc7,0x47,0x85,0xba,0x93,0x9b,0xba, - 0xd9,0xe4,0x4d,0x61,0x14,0x90,0xb6,0xa2,0x2f,0x88,0x16,0xe9,0xae,0xe6,0xb9,0xdd, - 0x90,0x1e,0x8b,0x43,0xe2,0x32,0xe0,0x61,0xcd,0x49,0x16,0x36,0x1e,0xb2,0x5d,0x09, - 0xaa,0xf5,0xe9,0x58,0x0c,0xba,0xf2,0x4b,0x4b,0x0e,0x25,0x7a,0x27,0x6f,0xf5,0x67, - 0x63,0x76,0x76,0xd0,0x33,0xc8,0x4f,0xc4,0x40,0x2a,0xc8,0x19,0xe0,0xdd,0xda,0x43, - 0x3f,0x2e,0x30,0x96,0x72,0x45,0x91,0x04,0x44,0xf2,0x4a,0x60,0xfc,0x40,0x34,0xd0, - 0xf8,0x66,0xb6,0xf5,0x0b,0x0e,0x3c,0xe7,0x7c,0x91,0xdd,0x6b,0x1d,0x03,0x4e,0x25, - 0x6c,0x52,0x3d,0x0b,0xbc,0x33,0xd8,0xb3,0xd1,0xca,0x6a,0xf9,0xb5,0x22,0x48,0xae, - 0x57,0x35,0xed,0x84,0x65,0x11,0x41,0xb7,0xa9,0xd6,0x42,0x3f,0xb2,0x54,0x9f,0xde, - 0x84,0x44,0xda,0x6f,0x6b,0x1a,0xa9,0x18,0xe6,0x4c,0xa7,0x46,0x92,0x79,0xd8,0xf8, - 0xd4,0x78,0xa8,0x87,0x5d,0x44,0x60,0xc5,0x60,0x0f,0x21,0x91,0x61,0xcf,0x7f,0x75, - 0x36,0xec,0xbf,0xc3,0xa7,0x9c,0x01,0xf6,0x27,0xe4,0x27,0x38,0x49,0x33,0x7e,0xf9, - 0x91,0x1b,0xfd,0xc1,0x29,0xd2,0x5e,0xfc,0x23,0xf1,0xc0,0x33,0xd3,0x0f,0x0c,0xa1, - 0xb6,0x2f,0x80,0x9c,0x95,0x5c,0x5b,0xd7,0xd4,0xb6,0xc8,0xd4,0xf0,0xc9,0x49,0xd1, - 0x86,0x95,0xe2,0x72,0x8f,0x94,0x9a,0x1e,0xa0,0x80,0xc1,0x24,0x85,0x3d,0x53,0x0d, - 0xbf,0xf5,0xd3,0x3d,0xd9,0x0d,0xd0,0x7b,0x30,0x1c,0x60,0x96,0xdf,0x64,0x97,0x4a, - 0x44,0x9f,0xbf,0xa3,0x44,0xb9,0x1b,0x21,0x03,0x54,0x0b,0x0a,0xb7,0x73,0x6a,0x4a, - 0x82,0xe4,0x0f,0x46,0x90,0x34,0x0b,0x92,0x2c,0x9f,0xa0,0x4a,0xfc,0x8c,0xe7,0xe6, - 0xa0,0xdf,0x00,0x73,0x5a,0x8a,0x13,0x0c,0x75,0x37,0x1d,0x00,0x68,0x32,0x60,0x98, - 0xcd,0x9c,0xe3,0x59,0xbe,0xbd,0xb9,0x29,0x7e,0xcb,0xf3,0xed,0xb6,0x16,0xc5,0x09, - 0x51,0xdc,0xe0,0xdf,0x46,0x92,0x54,0x28,0xf3,0x7c,0xfb,0xc9,0x62,0xe1,0xbc,0xee, - 0xee,0xa4,0x7b,0x71,0xa4,0x09,0x94,0x45,0x1f,0x3b,0x6c,0xf4,0x10,0x6c,0x02,0x84, - 0x92,0x19,0xed,0x51,0x48,0x67,0xf2,0xe4,0xf1,0x93,0x9d,0xc7,0x69,0x23,0xa6,0x4c, - 0xfe,0x77,0xf6,0xc5,0x2c,0x20,0xf0,0xbd,0xec,0xeb,0x92,0xe1,0x85,0x8d,0xb9,0xa9, - 0x06,0x4c,0x86,0x4b,0x61,0x3b,0x99,0x64,0xb4,0x54,0x26,0xfc,0x0a,0x00,0x38,0x11, - 0x9f,0x45,0xff,0x6e,0xe0,0x17,0x8b,0x07,0xfc,0xa1,0x92,0x02,0x4c,0x7a,0x25,0x72, - 0x3c,0x08,0x5a,0x47,0x5a,0x64,0xbc,0xaa,0x35,0xba,0x78,0xd2,0xd9,0x61,0xcc,0xdc, - 0x1e,0x83,0xd3,0x7b,0xa6,0xca,0xe3,0xb4,0xa3,0xbe,0xcc,0xbb,0x1b,0x01,0x85,0xca, - 0x4a,0x10,0x69,0x30,0xf8,0x8c,0x0a,0x9a,0x25,0x4c,0x45,0xeb,0xec,0x05,0x89,0x1d, - 0xb0,0x33,0x28,0x67,0x76,0x5d,0x5f,0x42,0xd0,0x54,0xcb,0x19,0xb9,0xa1,0x82,0xbc, - 0x2b,0x9b,0x31,0x18,0x0c,0xbc,0xfa,0xf9,0x4d,0xeb,0x7e,0x1e,0xd1,0xed,0xe1,0x7b, - 0x37,0xb0,0x36,0xce,0xda,0x86,0x56,0x2a,0xa5,0xc1,0x84,0xe7,0xb9,0x64,0xc8,0x73, - 0x6d,0x03,0x3b,0x78,0xee,0x6c,0x0b,0x39,0x44,0x73,0xfd,0xa3,0xaf,0x39,0x76,0x15, - 0x88,0xd4,0xe6,0x09,0xfc,0xc9,0xaf,0xc9,0xab,0x59,0x41,0xb6,0xeb,0x24,0x8c,0xbb, - 0xad,0x4e,0x11,0xe0,0x14,0xbe,0x08,0x30,0xd9,0x9e,0xac,0x69,0x62,0x1e,0x71,0xeb, - 0x5b,0x12,0x86,0x26,0xc1,0x1c,0xa0,0xf4,0xe2,0xcc,0xa8,0x1d,0xaf,0x1b,0xf3,0xb7, - 0x4c,0xa9,0xb9,0xb9,0xa6,0xe5,0x04,0xde,0xf6,0x31,0xec,0x04,0x42,0xe5,0x75,0xdb, - 0x34,0x22,0x73,0xa0,0x03,0x6c,0x6e,0x72,0xb2,0x2b,0x0c,0xb9,0x38,0xdc,0xc5,0x07, - 0x29,0xff,0xd2,0xf2,0xd3,0x77,0x56,0x1e,0xe9,0x75,0xf8,0xc3,0xab,0x4f,0xe2,0x96, - 0x96,0x31,0x29,0x99,0x10,0xed,0x34,0x64,0x9d,0xa9,0x84,0x4e,0x26,0xb0,0x01,0x22, - 0x57,0x6e,0x9d,0xe5,0x20,0x17,0xc6,0x71,0xbb,0x1b,0xe1,0x62,0xf8,0x99,0x0d,0x7c, - 0xaa,0x16,0x8c,0xf7,0x2f,0x68,0xb1,0x1b,0x69,0x96,0xad,0xd2,0x71,0x70,0x5f,0x46, - 0x24,0xf0,0x45,0x7c,0xce,0x02,0x17,0x93,0x23,0x3a,0xaf,0x22,0x35,0x41,0x31,0xfc, - 0x0c,0xa7,0x19,0x94,0x03,0xce,0xb6,0xe9,0x03,0x07,0x97,0x55,0x1f,0x17,0x40,0x1e, - 0xbf,0xa2,0xc6,0xd4,0x68,0x09,0xd1,0xa0,0x04,0xf2,0xde,0xf0,0xf4,0x62,0xc8,0xee, - 0x77,0x89,0x77,0x7e,0x28,0x71,0x89,0xac,0x68,0x63,0x2d,0xca,0x11,0x18,0x54,0x27, - 0xfd,0x96,0xbf,0x2b,0x74,0x85,0x08,0x19,0xb5,0xd3,0x9c,0xb4,0xe0,0xb0,0x00,0xab, - 0x84,0x83,0x55,0xc6,0x5f,0xd3,0x23,0x47,0xa2,0x22,0xb8,0x5c,0xe7,0xcb,0x5b,0xbb, - 0x80,0x4c,0x5b,0x08,0x88,0xd8,0x88,0x33,0xea,0x6c,0xad,0x93,0x2b,0xf3,0x50,0x9e, - 0x99,0x87,0xd3,0xd9,0xd2,0x1a,0x21,0x7b,0xbd,0x64,0x68,0xcd,0xff,0x75,0x3a,0xc1, - 0xad,0x81,0xbc,0x01,0xc3,0x5d,0xe7,0x1a,0x01,0x9a,0xdf,0x03,0x76,0x9e,0x5b,0x78, - 0x66,0xa8,0x9c,0x33,0x57,0x54,0xd9,0xe3,0x62,0xc1,0xb4,0x64,0x39,0x72,0x2a,0x0b, - 0x3a,0xe7,0x42,0x2f,0xf6,0x8a,0xd4,0x7d,0xb2,0xd9,0x07,0x88,0x7a,0x32,0x3f,0xed, - 0x9a,0xbe,0x0e,0xfe,0xa9,0x54,0x63,0x9e,0xab,0x5b,0x19,0xb2,0x77,0xd0,0x24,0xb6, - 0x3a,0xb1,0x58,0xd6,0xef,0x37,0x02,0xbb,0xaa,0x1b,0x36,0x45,0x38,0xc0,0x29,0x06, - 0x75,0x68,0xeb,0x11,0x2e,0xed,0xda,0x0f,0x6c,0x64,0xa3,0xe9,0xb7,0x1b,0xb6,0x51, - 0x3f,0xad,0x6a,0x53,0xe1,0xf4,0xa7,0xdc,0xdd,0x00,0x64,0x97,0x79,0x75,0xb8,0xc3, - 0x74,0xa2,0x92,0x22,0xca,0x07,0xbb,0x82,0xf0,0x90,0x56,0xc7,0xaa,0x99,0x03,0xc9, - 0x78,0x09,0x88,0xf9,0xee,0x27,0xce,0xa3,0x5a,0x67,0xf4,0x05,0x1f,0xa8,0x7d,0xe8, - 0xdb,0xe6,0x26,0xfd,0x09,0xee,0x69,0xc4,0x2d,0xc4,0x21,0x8d,0x59,0x66,0x23,0xc6, - 0x9f,0x9e,0x2b,0x66,0x23,0xa5,0xd9,0x2a,0x41,0xf6,0x5f,0x63,0xa5,0xa8,0x87,0x7d, - 0x9a,0xe9,0xce,0xce,0xad,0x79,0x74,0x6d,0x34,0xe7,0x50,0x41,0x97,0x5f,0x5f,0x6d, - 0x35,0xe4,0x0b,0x43,0x26,0xae,0x5b,0x70,0x4e,0x55,0xcf,0x6d,0x44,0xf4,0xa5,0xcc, - 0x91,0x18,0xdb,0x1c,0x05,0x51,0xeb,0x8e,0xb3,0x3b,0x20,0xc3,0x90,0x75,0xeb,0x26, - 0x5d,0xb3,0x06,0x3c,0x48,0x2a,0x6a,0x36,0x37,0xab,0xc7,0x96,0xc1,0x80,0xba,0xdb, - 0x23,0xcb,0x2a,0x17,0x2a,0x5d,0x7e,0x1e,0x9f,0xfe,0x28,0xd0,0xc6,0xca,0x80,0xed, - 0x36,0x54,0x04,0x54,0x66,0xda,0xee,0x84,0xf7,0x60,0x4b,0xd3,0xed,0x9d,0xfd,0x4c, - 0x33,0x34,0xf2,0x59,0xcb,0xe0,0x6d,0xb2,0x0c,0xce,0x2b,0x53,0x21,0x36,0x11,0xbe, - 0x31,0xd2,0x07,0x7a,0xfc,0x4f,0x58,0x92,0xcb,0xe4,0x1b,0x7f,0x44,0x64,0x83,0xb4, - 0x5b,0x0b,0x64,0x47,0x07,0x60,0x6e,0x99,0xec,0xb7,0x50,0xb3,0x12,0xcc,0x90,0x66, - 0x60,0x26,0xba,0x5e,0x05,0xe5,0x4d,0x39,0xdd,0xc0,0x88,0xc0,0x4e,0x7f,0x66,0x67, - 0xef,0x8b,0x4b,0xb5,0xdc,0xb9,0xd9,0x38,0xd2,0xc3,0x90,0x38,0x73,0x8f,0x45,0xea, - 0x8c,0x2b,0xa6,0x54,0x9d,0xc1,0xb5,0x19,0xad,0x38,0x57,0xf1,0x96,0xeb,0x87,0x0d, - 0xf9,0xde,0x78,0xd8,0xc2,0x37,0x57,0xf2,0xa9,0x07,0xd3,0x93,0x17,0x40,0xda,0x16, - 0x4d,0xf4,0x44,0x1c,0x42,0xcb,0x62,0x51,0xbd,0x8d,0x9d,0x17,0xed,0x4c,0xcb,0xb6, - 0xeb,0x76,0x31,0xa6,0x09,0x24,0x53,0xc5,0xc2,0x65,0xee,0x2a,0x24,0xd2,0x9b,0x65, - 0x35,0x80,0x1c,0xb5,0x7b,0x1a,0x03,0xde,0x12,0x12,0x86,0x75,0xd2,0xc0,0x27,0xdc, - 0x4c,0xd5,0x5c,0x22,0x13,0x40,0x73,0x81,0xd3,0xc7,0xd4,0x76,0x24,0x4d,0xf5,0x8e, - 0xd0,0x16,0x0b,0x49,0x0b,0x0f,0xb4,0xd2,0xda,0x76,0x0a,0xdb,0xda,0xaf,0xb5,0x16, - 0xa5,0xd7,0x07,0xd0,0xc9,0x38,0x54,0x9f,0x4c,0x61,0x0f,0x3c,0x25,0x25,0x41,0xe7, - 0xd3,0xde,0xac,0x2c,0x7e,0x82,0xaf,0xa1,0xc4,0xb6,0x0d,0xc8,0xb6,0xad,0x06,0x15, - 0xa9,0x27,0xa5,0x0c,0x4a,0xf2,0xf8,0x37,0x98,0x17,0x09,0x1d,0xa3,0x6e,0x6e,0xf6, - 0xce,0x9e,0xe5,0xed,0xbd,0xf8,0xff,0x47,0xe2,0x9c,0x31,0x8f,0xa7,0x4b,0x8d,0xfd, - 0x04,0xb1,0x70,0xb6,0x08,0xa2,0xb1,0x9d,0xa6,0x5b,0xb4,0x41,0x6c,0xc4,0xff,0x11, - 0xf5,0x29,0x7a,0x57,0xc4,0xd1,0xbb,0xe2,0x8e,0x68,0x87,0xd5,0xc8,0xa6,0xc6,0x78, - 0x05,0xd7,0x8a,0x42,0xdb,0x15,0xdd,0x5a,0x93,0x09,0xcb,0x9c,0xef,0xfa,0x75,0x6b, - 0xb4,0x45,0x56,0xa9,0x46,0x0a,0x50,0x82,0x84,0x89,0x29,0x96,0x33,0xf7,0xde,0x57, - 0x7a,0xf7,0x72,0x57,0x8f,0x58,0xb5,0x88,0xa7,0x00,0x7e,0x39,0x26,0x7b,0x56,0x62, - 0x44,0xdf,0x45,0x8d,0x5c,0x83,0x7e,0x56,0xa9,0xbb,0xd3,0x00,0x95,0x2a,0x15,0x6a, - 0x36,0xf8,0xa2,0xd1,0x0b,0x0a,0x56,0x0d,0x93,0x1d,0x36,0xee,0xd7,0xc6,0xc3,0xfa, - 0x89,0x74,0xc2,0x1a,0xa7,0x09,0xc9,0x0e,0x95,0xaa,0x61,0xe2,0xd0,0x84,0xc1,0x62, - 0x47,0x88,0x8b,0xd0,0x02,0xd1,0x53,0x3d,0x4d,0xd0,0x5e,0x85,0x7a,0x2f,0xa5,0xcb, - 0x42,0xdc,0x8b,0xb2,0x89,0x74,0x31,0x47,0x72,0xab,0x2f,0x71,0xf6,0x51,0x75,0x8d, - 0xfe,0x1c,0x7d,0xe7,0x5a,0x8a,0xe2,0x26,0xab,0x87,0xad,0x2a,0x28,0xad,0x62,0x0a, - 0x14,0x84,0x82,0x3c,0xc1,0x55,0xb7,0xd0,0xd4,0x72,0x18,0x42,0x01,0x59,0x9a,0xd8, - 0x38,0xf1,0x62,0x93,0x16,0x89,0x7d,0x1e,0xfb,0xd0,0x84,0x2f,0x0a,0x0a,0x6a,0x32, - 0xa6,0x09,0x9c,0x85,0x27,0xd2,0x0f,0xb7,0x4c,0x38,0xb8,0x96,0x78,0x3d,0xd4,0x19, - 0x34,0x6f,0x6e,0x77,0xdf,0x3d,0xff,0xf1,0xe5,0x9b,0x0f,0x6f,0xdf,0xbd,0x20,0x7b, - 0xc6,0x83,0x9a,0x29,0x37,0x1b,0x30,0xe3,0x54,0xb9,0x26,0xe5,0x08,0x1f,0xa6,0x29, - 0x11,0x98,0x8e,0xf2,0x01,0xaf,0x7d,0x86,0xa5,0x23,0x0c,0x4b,0x23,0x3c,0x8c,0xd2, - 0x4e,0xa2,0x75,0xf1,0x26,0xaa,0xbd,0x18,0xf4,0xc7,0x1d,0xc9,0xa4,0x4a,0x26,0x47, - 0xb1,0x0e,0xee,0x2c,0xdd,0x87,0x75,0x95,0x92,0x9b,0x9b,0x56,0xa4,0x72,0x9f,0xad, - 0xa2,0x8c,0xf6,0x10,0xe9,0xb2,0x5a,0x77,0x59,0x19,0xee,0x7e,0x3d,0xce,0xab,0x6e, - 0xb8,0x7e,0x88,0x5b,0x34,0x2b,0xc7,0xf3,0x83,0x55,0x93,0x00,0x91,0xab,0x85,0x00, - 0x67,0x2c,0x95,0x5f,0xd1,0xdf,0x97,0x14,0xb4,0xfe,0x77,0x10,0xac,0x8b,0x5c,0x7d, - 0xff,0xf5,0xce,0x8a,0x4c,0x67,0xf3,0xde,0x20,0xab,0x6b,0x65,0x6a,0x85,0x3d,0x97, - 0x27,0xb5,0x74,0x62,0x66,0x09,0xcb,0x41,0x92,0xfb,0xa2,0xa5,0x58,0x95,0x63,0x80, - 0x20,0x28,0xe6,0xd6,0x37,0xea,0x0a,0x16,0x9f,0x1b,0xa3,0xc4,0x72,0x35,0xa4,0x55, - 0xe7,0x32,0x9d,0xdc,0xac,0x35,0xd3,0xe9,0x5f,0x07,0xe5,0x00,0x1a,0x92,0x07,0x18, - 0x43,0x62,0xb8,0xe9,0x0a,0xa2,0x26,0xd6,0x53,0x19,0x5c,0x92,0x10,0xb7,0x3f,0x75, - 0x22,0xab,0xdc,0x31,0xce,0xc6,0x14,0x9a,0x68,0xd3,0xa2,0x77,0xf2,0x35,0xc7,0xc1, - 0xfe,0x7a,0xdc,0x48,0xc6,0xd0,0x79,0xed,0xc5,0xc6,0x33,0x4f,0xdc,0xd1,0xa7,0x32, - 0xb8,0x6a,0xe5,0x38,0x05,0xba,0x71,0xb6,0x85,0xe1,0x46,0xcd,0x6c,0xa5,0x79,0x68, - 0xea,0xb3,0xdc,0xbf,0x8e,0xc5,0x93,0x50,0xd1,0x87,0x1c,0x2e,0x63,0xea,0xe0,0xd5, - 0x9b,0x43,0x18,0x7b,0xbf,0x7a,0xf1,0x3a,0xbf,0x99,0x53,0xc4,0x87,0x71,0xe7,0xd1, - 0x77,0xd9,0x45,0x59,0xcc,0x60,0x7e,0xd5,0xd9,0xdd,0xae,0xae,0xdf,0xd3,0xbd,0xa2, - 0x4c,0xbc,0xd5,0xe1,0x89,0x63,0x06,0x74,0xfe,0xfc,0x38,0xeb,0x5d,0xf4,0x07,0x70, - 0xaa,0x44,0x89,0xb7,0xc2,0xd6,0xb7,0xbf,0x1c,0x7e,0x38,0xfc,0xef,0xb7,0x2f,0x0e, - 0xf2,0xa3,0xa3,0x76,0x16,0xbf,0x7b,0xf1,0x5f,0x24,0x89,0x1f,0x6d,0xe3,0xe9,0xe0, - 0xed,0x9b,0xd7,0x07,0x2f,0xf0,0xba,0x93,0xc5,0x87,0x7f,0xa3,0x92,0x0f,0xfe,0x82, - 0xb7,0xdd,0x2c,0x7e,0xbe,0xff,0x0b,0x9e,0x1e,0xd1,0xd3,0x8f,0x7f,0x7d,0xf1,0xee, - 0x90,0x5e,0x36,0x8e,0x1e,0x67,0xf1,0x5f,0xde,0xbd,0xfd,0x40,0x90,0xf8,0xf6,0x44, - 0xde,0x7e,0xa4,0xb8,0x27,0x78,0xfd,0x8e,0x40,0x5f,0xbf,0x79,0xfd,0xc1,0x14,0xf0, - 0x7d,0x16,0xbf,0x7d,0x7e,0xf8,0x33,0x1e,0xff,0x4c,0xc8,0xdf,0x3d,0xdf,0x7f,0xc1, - 0x38,0xb6,0x89,0x86,0x5f,0x7f,0x7b,0x75,0xf8,0xf2,0xed,0x73,0xc2,0x0a,0x4a,0x88, - 0x94,0xfd,0x37,0xaf,0x0f,0xdf,0xbd,0x79,0xc5,0xaf,0x44,0xca,0xac,0xe0,0x9a,0xf5, - 0xf9,0x7d,0x37,0x78,0x7f,0x64,0xdf,0x05,0x21,0x51,0xf5,0xee,0xf9,0xef,0x1f,0xf6, - 0x7f,0x3b,0x38,0x7c,0xf3,0x6b,0x7c,0x7c,0x6c,0xab,0xfd,0xfa,0xf9,0xaf,0x2f,0x7e, - 0xd4,0x9e,0x47,0x0e,0x3f,0xa8,0x5f,0x26,0xb0,0x92,0xa3,0x76,0x54,0xae,0xd4,0xcd, - 0xa3,0xdc,0x54,0xd3,0xa3,0x6d,0x1c,0x9b,0xda,0xb2,0xd2,0x0a,0xe3,0x11,0xbe,0x51, - 0x17,0xe3,0x38,0x64,0xfb,0x34,0x2c,0x92,0xf4,0x38,0x9f,0x1e,0xb5,0x8f,0xbd,0x71, - 0x70,0xc6,0x02,0x3a,0x05,0xab,0xf8,0x94,0xa0,0x83,0x99,0x81,0x30,0xd7,0xdd,0x1a, - 0xd2,0xac,0xcd,0x1e,0x43,0xb4,0xe8,0xcb,0xc8,0x08,0x81,0x73,0x9e,0x6f,0x16,0x0b, - 0xfe,0xa5,0xf3,0xca,0xea,0xe8,0xbb,0x7d,0xfd,0x13,0xfd,0xb3,0x30,0x70,0xed,0x68, - 0x3f,0xaa,0x06,0xb2,0xfc,0x94,0xb7,0xb3,0xc9,0x27,0x73,0x6e,0x47,0x7b,0x79,0xea, - 0x77,0xd4,0xe1,0xb2,0xba,0xf5,0x8f,0x04,0xbc,0x8a,0x3a,0xca,0x82,0x57,0x43,0x49, - 0x36,0xc6,0xb2,0x83,0xa2,0xb6,0xfe,0x7e,0xd4,0x26,0x4b,0xc5,0xc6,0x37,0xe6,0x96, - 0x33,0x01,0xa6,0xe9,0x58,0x64,0xc3,0x97,0x63,0x7e,0xcf,0x48,0x84,0xb3,0x33,0x1b, - 0x25,0xf8,0x1c,0xa2,0x45,0xc5,0xb6,0x09,0x65,0xb5,0xdc,0x5c,0x02,0x95,0xe3,0xd4, - 0xf1,0xd3,0xf6,0x62,0x31,0x7e,0x46,0x96,0x53,0x37,0x44,0x95,0x88,0x5c,0x52,0xcd, - 0xdb,0x0d,0x54,0x70,0x91,0x27,0xdb,0x4f,0x9f,0x42,0x5f,0xe6,0x28,0x73,0x26,0x9f, - 0xf6,0xf0,0xad,0xa3,0x5c,0xba,0x0d,0xdb,0xe3,0x90,0x18,0x9d,0x00,0x44,0x66,0x41, - 0x3c,0x11,0x17,0x05,0xdc,0x70,0x91,0xd9,0xdd,0x75,0xbf,0xea,0x07,0xe6,0xb5,0xb0, - 0x98,0x44,0xed,0x1c,0xf6,0xf5,0xfe,0x95,0xd0,0xed,0x27,0xbc,0xe1,0x33,0x59,0x37, - 0x41,0xe0,0x20,0x4d,0x09,0xb6,0x35,0xbd,0x28,0xcf,0x93,0x81,0x25,0x14,0x69,0x72, - 0x81,0x33,0x0b,0xa6,0x95,0x52,0x37,0x80,0x3f,0xcf,0x47,0xc3,0x64,0x90,0x9d,0x65, - 0x30,0x0c,0xc8,0xf8,0xca,0x7d,0x06,0x8d,0x60,0x75,0x43,0xf4,0xa1,0xe7,0x4e,0x36, - 0x2a,0xcf,0x9a,0x0f,0x1b,0x67,0x8d,0x87,0x95,0x1f,0xd9,0x87,0x0d,0xfe,0x6d,0x3c, - 0xac,0xf5,0x52,0xfe,0xb0,0x81,0x5f,0x02,0xf7,0x9c,0xe5,0x3f,0x6c,0x0c,0x68,0xb7, - 0x25,0x78,0xee,0xe9,0xf0,0xba,0xc6,0xf5,0x1e,0x15,0x9d,0x80,0xd4,0x3d,0x8f,0x44, - 0xa4,0xe0,0x13,0x7e,0x41,0x14,0xdc,0x98,0x3c,0xec,0x3c,0x7c,0x98,0x56,0x2f,0xfe, - 0xdd,0x62,0x67,0x9f,0x2b,0xbc,0x30,0xbd,0x94,0x4c,0x35,0x8a,0x32,0xb7,0x23,0x98, - 0x4c,0x79,0xbd,0xd1,0xab,0xec,0x11,0x36,0x68,0xe9,0xd3,0x4f,0xeb,0x9d,0xc1,0x4f, - 0xcf,0xf2,0x98,0x6b,0x1f,0x8b,0x2a,0x1c,0x6f,0x18,0xd4,0x60,0x68,0x24,0xfe,0xec, - 0x34,0x21,0xc2,0xc3,0x36,0x3d,0x58,0x0f,0x4d,0xc2,0xf0,0xe0,0x5e,0xee,0xaa,0x66, - 0x92,0xae,0x68,0xfd,0xfd,0xa2,0xa2,0x42,0x55,0x59,0xa1,0xda,0x20,0xec,0xf5,0xf1, - 0x65,0xc3,0xc6,0x52,0x6c,0xc8,0x62,0x8b,0x42,0x85,0x3f,0x82,0xdb,0xcc,0x2d,0xe5, - 0xf0,0x32,0x4c,0x8f,0xc8,0x58,0xe7,0x13,0x73,0x38,0xfe,0xa4,0x0c,0x82,0x3d,0x90, - 0xe1,0x51,0x07,0x63,0x04,0xc1,0x42,0xd4,0x29,0x9a,0x60,0xfe,0x17,0x10,0x59,0x37, - 0xc4,0x3e,0x2a,0xd7,0x3b,0x11,0x65,0xb8,0x18,0x05,0x9e,0xcf,0x00,0xb4,0xdc,0xb9, - 0x7e,0x3f,0x1f,0x9c,0x22,0x5e,0xd0,0x67,0x2c,0xc8,0x4c,0x87,0xe8,0xb3,0x25,0xc4, - 0x92,0x75,0x45,0x65,0xc2,0x29,0xb5,0x22,0x27,0xb0,0x1f,0x79,0x2d,0xd3,0x50,0x43, - 0xa2,0xeb,0xee,0x5d,0x99,0x7c,0x65,0x57,0xc3,0x21,0x21,0x5d,0x6d,0xbb,0x04,0xf3, - 0x18,0x6b,0xb8,0x99,0x5c,0xe0,0x65,0x1a,0x32,0x25,0x26,0x78,0xf1,0x2f,0x8d,0xbe, - 0xaa,0x48,0x34,0xa2,0x93,0xba,0x84,0xae,0xe9,0xf2,0x35,0xea,0x1d,0x6f,0x6f,0xf7, - 0x4d,0x1e,0x6b,0x73,0xd7,0xee,0x9c,0x74,0xbb,0x30,0xc8,0xcf,0xad,0x34,0x5c,0x6f, - 0x71,0xbe,0x95,0x52,0x0f,0x96,0xb9,0x0c,0x17,0x47,0x29,0x83,0xd5,0x7a,0x62,0x0a, - 0x32,0xea,0x00,0x7c,0x53,0x8d,0x80,0x5d,0x5b,0x9c,0xb5,0xed,0xbc,0xda,0x17,0x00, - 0x74,0xc9,0xf1,0x8c,0x92,0x6e,0x47,0x57,0x2d,0xe1,0xa7,0x27,0x10,0xd3,0x4f,0xaa, - 0xa3,0x50,0x3b,0x7f,0xea,0x12,0x43,0x20,0x52,0x12,0xd6,0x99,0x34,0xa5,0xa5,0xb9, - 0x6d,0xcd,0x0e,0xa8,0x7b,0xe4,0xcb,0xc5,0x53,0x4d,0xa4,0xe7,0xc8,0x92,0x4a,0x4f, - 0x29,0xfd,0xef,0x89,0x7b,0xde,0xfc,0xbf,0x87,0x99,0x5f,0x3a,0x4d,0xdc,0x49,0xf4, - 0xd3,0x5e,0x6c,0xda,0xad,0xea,0x44,0x71,0x27,0x5c,0x4b,0x0c,0x19,0x88,0x58,0xee, - 0x31,0xf2,0xcc,0x14,0x8d,0x0f,0x29,0xfe,0xac,0xde,0x67,0xda,0x06,0x0b,0x15,0x45, - 0xb7,0xe9,0xca,0x69,0x71,0x9f,0x05,0xd3,0x3e,0xad,0x12,0xdc,0x4e,0x37,0xce,0xea, - 0xff,0xf5,0xed,0x01,0xc2,0x6d,0x93,0xa4,0x76,0xcd,0xad,0x6f,0x12,0xdb,0x1a,0x66, - 0x76,0x8a,0x09,0x7d,0xd5,0x5d,0x49,0x45,0x1f,0x32,0x2d,0xb8,0x66,0xaf,0xd6,0x0f, - 0xf5,0xdd,0xfa,0x5c,0x0f,0xf3,0x50,0x88,0xa7,0xb9,0xa3,0xf7,0x9a,0x61,0xe3,0xb1, - 0xcc,0x39,0x6f,0x28,0xab,0x23,0x84,0xf3,0x49,0x09,0xcf,0x47,0x48,0xe0,0x9e,0x8e, - 0x77,0xaf,0xa7,0x9f,0xd3,0x9a,0x83,0x3d,0xdf,0x1d,0xca,0x5d,0x86,0x65,0xff,0x2b, - 0x0f,0x6b,0x3d,0xac,0x37,0x23,0xfc,0x46,0x4d,0x75,0x93,0x8e,0x21,0x6f,0xef,0xeb, - 0xd5,0x8a,0x9f,0xc0,0xd6,0x08,0xd0,0x81,0x41,0xf0,0x8c,0x34,0xe5,0x1b,0x1a,0x29, - 0x56,0xa5,0x20,0xc1,0x16,0x00,0x1e,0xd5,0xe3,0x38,0xe5,0x83,0xbf,0xf8,0x99,0xfc, - 0xb6,0x5a,0x2d,0x97,0x2a,0x54,0x18,0x59,0x9c,0x59,0x15,0xf5,0x34,0xb3,0x36,0x1e, - 0xb5,0xcf,0x2c,0xcd,0xbe,0xf0,0x2f,0x09,0x27,0x86,0x04,0x13,0x31,0x08,0x4d,0xe6, - 0x35,0x13,0x75,0x10,0x3a,0x82,0x59,0xa0,0x2b,0x5e,0x5d,0x14,0x2b,0x46,0x65,0x58, - 0x85,0xfa,0xa2,0x52,0xc0,0x2d,0xa0,0xb6,0x80,0x50,0x66,0x8a,0x79,0xeb,0x14,0x67, - 0xd6,0xf8,0x9b,0x36,0x27,0xa7,0xa7,0xf0,0x28,0xa8,0x5f,0xe2,0xb4,0x26,0x9b,0x6e, - 0xb4,0xe8,0x3b,0x66,0x09,0xfa,0xf9,0x4d,0x53,0xea,0x73,0xd8,0x02,0xbc,0x47,0xd5, - 0x1f,0xac,0xca,0x25,0x1b,0x37,0x5b,0xca,0x01,0xde,0xa5,0x4b,0xae,0x2c,0x68,0x32, - 0xc3,0x37,0x89,0xa7,0x80,0x22,0xe4,0xbd,0x1d,0x11,0xcd,0x72,0x61,0x50,0xe3,0x38, - 0x01,0x12,0x2e,0x2c,0x7b,0x12,0x63,0xae,0x14,0xdc,0xbf,0xbd,0x7b,0x55,0x8b,0x97, - 0x77,0x8e,0x96,0x92,0x43,0xbc,0x46,0xf3,0x62,0x34,0xc5,0xc1,0x2d,0xca,0xb1,0x8e, - 0x8f,0xcb,0x4e,0x74,0x03,0x93,0xf1,0xdb,0xe8,0x46,0x3c,0x39,0xd2,0x03,0x66,0x4b, - 0xfc,0x80,0xab,0xb7,0xb5,0x05,0xe8,0x8e,0xd4,0x96,0xf1,0x9f,0xbf,0x1f,0x46,0x4e, - 0xaa,0xde,0xd6,0x8e,0x9a,0x4e,0x5c,0x0c,0xb4,0xc4,0x16,0x38,0x0a,0xe9,0xf2,0x1c, - 0x88,0x6b,0xc4,0xc1,0x0d,0x4f,0x70,0x04,0xf7,0x9c,0x5b,0xfe,0xe8,0xcd,0xc1,0x7e, - 0x3d,0x3c,0x60,0x41,0x8e,0x0c,0x52,0x65,0x38,0xfe,0xed,0xb2,0x88,0x54,0x7f,0x12, - 0xd5,0x29,0x0b,0x15,0x75,0xe6,0xd0,0xfa,0xd5,0x52,0xba,0xee,0x8b,0xa1,0xae,0x4e, - 0x21,0x9e,0xfa,0xae,0x0e,0x7c,0x92,0x1f,0x5d,0x2f,0x57,0x24,0x8e,0x91,0x09,0x1a, - 0x9b,0x37,0x8f,0xdd,0x3b,0xa6,0x12,0xa2,0x4a,0x26,0x08,0x5a,0xca,0xf0,0x93,0x22, - 0xe3,0x54,0x67,0x6a,0xbe,0xf9,0x9e,0x9b,0xcf,0x3a,0x39,0xec,0xe9,0x43,0x27,0x21, - 0xe0,0x3d,0xfa,0xbf,0xc5,0x70,0x1d,0xb3,0xd7,0xb4,0x4e,0xcb,0x7e,0xed,0x4d,0x55, - 0x4b,0xc1,0x10,0x84,0x44,0x47,0x9e,0x8e,0x24,0xfb,0x01,0x29,0x68,0x50,0xda,0xd4, - 0x6a,0x9a,0x16,0x94,0x6d,0xe8,0xd8,0x59,0x0f,0xae,0x50,0x35,0x28,0x54,0x17,0xb2, - 0x8c,0x1a,0xc3,0x61,0x39,0x99,0xbb,0xfd,0x72,0xb2,0x76,0xcb,0xe5,0x2f,0xb2,0x7a, - 0x75,0x50,0xa7,0x07,0xba,0xed,0xbe,0xf5,0xad,0x41,0x0d,0x4b,0x6a,0x16,0xb0,0x33, - 0xb3,0x4c,0x5c,0xd5,0x4b,0x29,0xb4,0x25,0x88,0x1b,0x67,0xdc,0x85,0xae,0xd2,0xab, - 0x35,0x1e,0x16,0xa4,0x80,0xa3,0x33,0x35,0x01,0x5c,0x7b,0x3c,0x22,0x5a,0xab,0xbb, - 0xce,0x47,0xb2,0xd1,0x92,0xfa,0x74,0x73,0x33,0x19,0xe5,0x48,0x58,0x2f,0x41,0x4a, - 0xb7,0x93,0x4b,0x8b,0x1b,0x47,0xee,0x79,0x66,0x66,0xcf,0x2d,0xeb,0xce,0x06,0xb1, - 0xe4,0xd6,0x9e,0x89,0xe2,0x43,0xc6,0x77,0x1d,0xd3,0x55,0x6a,0xfe,0xa9,0xb2,0x12, - 0x8c,0x04,0x91,0xa1,0xd4,0xca,0xb5,0xe1,0x71,0x58,0x27,0x28,0x79,0x98,0x44,0x68, - 0xea,0x8a,0x02,0x73,0x2d,0x27,0x71,0x49,0xbb,0x8e,0x91,0x27,0x96,0x8f,0x4a,0xc8, - 0xde,0x52,0x0a,0x1f,0x3f,0xe8,0xb6,0x87,0x4e,0x20,0xd8,0x57,0xa4,0x58,0x06,0x9e, - 0xf8,0x93,0x05,0xfc,0xd7,0xe6,0x27,0x96,0x42,0x64,0x50,0xd5,0x4d,0x07,0x27,0xc0, - 0x39,0x83,0xd0,0x1e,0x34,0x23,0x49,0x55,0x5e,0x88,0x59,0xaa,0x22,0x72,0xa6,0xad, - 0x93,0x3b,0xa5,0xf9,0xaf,0x97,0x0f,0x1d,0x71,0x9d,0x4a,0x07,0x0b,0xd7,0x88,0xa6, - 0xc1,0xcd,0x5f,0xd8,0x4c,0xfc,0x34,0x99,0xc1,0x30,0x83,0x34,0x47,0xa3,0x52,0x0f, - 0x6f,0x6a,0x0d,0x30,0x40,0x39,0x7d,0xf0,0x78,0x45,0x0b,0x52,0xbe,0xde,0x18,0x83, - 0x20,0x52,0xfa,0xdf,0x9a,0x63,0x08,0x77,0xd4,0x7f,0xa3,0x2a,0x04,0x8d,0x0b,0xc7, - 0x24,0xc6,0xde,0x32,0xc6,0x36,0x46,0xc6,0xdf,0x6b,0x4c,0x8a,0x31,0xd0,0xe1,0xd8, - 0x92,0xf4,0x4a,0xf1,0xe4,0x13,0x35,0x02,0xdf,0x73,0xee,0x9e,0x7a,0x9b,0x08,0x22, - 0xbf,0xbb,0x51,0x43,0x8c,0x78,0x49,0x4c,0x5b,0x88,0x8c,0x36,0xee,0xef,0x9f,0x93, - 0x10,0x9a,0x9c,0xfa,0x92,0x29,0x74,0xd0,0xc2,0xa9,0x32,0x21,0x8c,0xb3,0x5e,0x06, - 0xce,0x32,0xa5,0xd4,0xf6,0xa4,0xd8,0x60,0x65,0x7c,0xbd,0xee,0xbc,0xa4,0x89,0xcd, - 0x51,0x33,0x67,0x9a,0x71,0xda,0xcb,0xb7,0x74,0x74,0xaa,0xbe,0xae,0x97,0xee,0x55, - 0x39,0x8f,0x7a,0xc7,0x95,0xe2,0x70,0xaf,0xdd,0xd9,0x4e,0x3b,0x3b,0xa6,0xff,0x9d, - 0x2c,0x67,0x3c,0x71,0x33,0x9e,0xd4,0x64,0x54,0x2b,0x2a,0xea,0x32,0x27,0x8b,0x45, - 0xaf,0xc5,0x81,0x97,0x8a,0x7d,0x04,0x6a,0x9e,0x15,0x94,0x9d,0xaa,0x5b,0x6f,0x04, - 0x2d,0xf5,0xc3,0xf1,0xb9,0x7b,0xb6,0x6e,0x9a,0x09,0x77,0xfa,0x73,0x80,0x74,0x04, - 0x4c,0x7c,0x1a,0x0a,0x8b,0x36,0x37,0xf9,0xa7,0x25,0xc6,0x67,0x29,0xdc,0xdd,0xb9, - 0x21,0xdb,0xc6,0x86,0x73,0xf6,0xc3,0xf4,0x2a,0x4c,0x0f,0x2e,0xe6,0x05,0x5f,0x83, - 0xbb,0xcd,0xe1,0xc7,0xf0,0x22,0xb3,0x0b,0x90,0x82,0x70,0x43,0x99,0x28,0x5f,0x41, - 0xb7,0xdb,0x7e,0x02,0xa8,0x27,0x1f,0xd8,0x60,0xd2,0x19,0xb4,0x93,0x2b,0xbd,0x31, - 0x87,0x03,0xaf,0xcd,0xae,0x73,0x3e,0x11,0x97,0x44,0xea,0x1f,0x5a,0x0e,0x0a,0xc4, - 0x75,0x5f,0xe5,0xfd,0xae,0x6b,0x30,0x20,0x91,0xff,0xda,0x23,0x0e,0x71,0xd3,0x10, - 0xb8,0x68,0xd8,0xb0,0xf7,0xed,0xd5,0xc0,0x2c,0x03,0x8a,0xe5,0x1b,0xf7,0x53,0xf2, - 0xd9,0x48,0x2e,0xf7,0x2f,0x86,0xd8,0xee,0x65,0x6d,0xfa,0x0f,0x08,0x32,0x2e,0x24, - 0x93,0xca,0xc0,0xfd,0xc1,0x5d,0xfe,0x40,0x72,0xeb,0x0f,0xa4,0x9e,0x30,0x3d,0x55, - 0xe7,0x4d,0x67,0x7a,0x7a,0xc2,0x8a,0xfa,0x8c,0xd3,0x6c,0xcd,0x81,0xd1,0xf5,0xe0, - 0x48,0x1a,0x62,0xf7,0x7d,0x7b,0x97,0x4a,0x5d,0x8f,0x9e,0x51,0xa0,0x25,0x00,0x19, - 0x58,0x9b,0xdd,0xf3,0xae,0x89,0x64,0xb7,0x33,0x98,0x10,0x99,0x69,0x55,0x71,0x83, - 0x78,0x56,0x48,0x88,0x6e,0x6b,0x75,0x52,0x5b,0x2d,0x5e,0xdf,0xa4,0xb9,0x13,0x37, - 0x3b,0x07,0x86,0xb0,0x38,0x1a,0x42,0xf1,0x5e,0xdc,0xa1,0xa9,0x88,0x1f,0x61,0x0d, - 0x4b,0x68,0x75,0x42,0x5c,0x66,0xcc,0x9f,0x95,0xfd,0xd2,0x25,0x72,0xe9,0x14,0xf7, - 0x6b,0x4d,0xe5,0xf6,0xdd,0x9c,0x5c,0x5f,0xa5,0xf8,0xf9,0x58,0xdc,0x79,0x89,0x20, - 0x12,0x41,0xeb,0x56,0xa0,0x47,0x9b,0x53,0x30,0xf5,0xf6,0x22,0x4e,0x60,0x87,0x9f, - 0x63,0xaf,0x46,0xcb,0x94,0xa2,0x84,0x90,0xd4,0x50,0x39,0xa2,0xd1,0x35,0xcc,0x54, - 0x28,0x43,0xca,0x2c,0x45,0x79,0x38,0x4f,0xe8,0xbc,0x13,0xce,0x14,0xc1,0x97,0x70, - 0xae,0x08,0xbf,0x87,0xb3,0x45,0xfd,0xe7,0x70,0xbe,0x50,0x10,0x99,0xef,0xa8,0x60, - 0xf2,0xe1,0x99,0xf7,0xfa,0x64,0x3d,0xfb,0x96,0x9f,0xa9,0x6b,0x79,0xd4,0x8b,0x60, - 0x23,0x70,0x54,0xbb,0x55,0x0e,0xea,0xe4,0x04,0x1f,0x6b,0x36,0x0b,0x2d,0x58,0xf6, - 0xb8,0x35,0x34,0xa7,0xcb,0x62,0x77,0xf1,0xf1,0xd9,0xe8,0x33,0x9f,0xd6,0xbc,0x32, - 0x1b,0xf4,0x87,0x45,0x99,0xf5,0xb0,0xdc,0x6b,0x1b,0xb0,0xef,0x98,0x39,0x9b,0x88, - 0x03,0x24,0xc7,0x1f,0xdc,0x4b,0x60,0xd0,0x9c,0xff,0xe2,0xd5,0xa2,0x85,0x7b,0x11, - 0x6a,0x9a,0x2f,0xe9,0x57,0x52,0xa2,0xd7,0xaf,0x38,0x65,0x0f,0x83,0x84,0x48,0x41, - 0xfd,0x23,0x73,0xe2,0x2e,0xce,0xe8,0xae,0x7a,0x65,0x34,0xa4,0xd9,0x8d,0xbb,0x97, - 0xa8,0x81,0x27,0x70,0x02,0x4c,0x6e,0x61,0xe2,0x0e,0xe7,0xb2,0xde,0x86,0x58,0x7e, - 0x71,0xe2,0x9d,0xaa,0x8d,0xf3,0x0c,0xa6,0x91,0x1b,0xa1,0x0d,0xee,0xd6,0x8c,0x59, - 0xb2,0x27,0x63,0x8a,0x86,0xe2,0xf8,0x94,0xac,0xb0,0x7e,0x7b,0xf7,0x12,0xab,0xdd, - 0x64,0x0c,0x29,0x42,0x86,0x59,0x76,0x63,0xcc,0xd5,0x3a,0x34,0x45,0xb5,0x6f,0x57, - 0xfa,0xa2,0x65,0xe8,0x07,0xd5,0xe0,0x14,0xf6,0xe8,0xf0,0xb3,0xee,0x6a,0x79,0xf2, - 0x84,0x08,0xc1,0x76,0x6c,0x37,0xf5,0x4e,0x72,0xc3,0xf1,0xc2,0xec,0x97,0xd1,0x1d, - 0x36,0xd7,0x6d,0x46,0x64,0xd5,0x95,0x83,0x8d,0x4d,0x1f,0xab,0xbb,0x10,0xc8,0x28, - 0x9e,0x3e,0xba,0xb3,0xc4,0xa0,0x93,0x34,0xb6,0x6b,0xbb,0x09,0xca,0xfd,0xce,0x2d, - 0x57,0xab,0xab,0xfd,0xf1,0xae,0xf9,0x06,0xe3,0x04,0x79,0xca,0xbc,0x2d,0x37,0xbb, - 0x24,0xae,0x80,0x7e,0x06,0x3f,0x41,0x8d,0xf1,0x99,0x52,0xe3,0xef,0x69,0xae,0xca, - 0xba,0x4f,0xe4,0x58,0xfa,0xcd,0x2f,0x5b,0x03,0x16,0x71,0x28,0xbd,0xc5,0xbe,0x79, - 0xcd,0x6d,0x1d,0x3a,0xd9,0xe4,0x52,0x1a,0x0d,0x79,0x3f,0x25,0xb3,0x5f,0xb8,0xdf, - 0xad,0xea,0x41,0xdb,0xa3,0x01,0x2f,0xe6,0x18,0xc7,0xb6,0x76,0x04,0xa1,0x72,0x8c, - 0x7c,0x86,0xb0,0x54,0x7d,0xd6,0xb4,0x34,0xb0,0x27,0xd4,0x74,0x2e,0x4b,0x9e,0xf3, - 0x5c,0x87,0xb1,0x34,0xc3,0x96,0xcc,0x03,0x4b,0xe4,0xa6,0x0e,0x13,0xf4,0x82,0xa6, - 0x6e,0xef,0x56,0x38,0x95,0x7f,0x28,0x46,0x15,0x91,0xa3,0x74,0x95,0x32,0x8d,0x0e, - 0xc3,0x98,0x31,0xfa,0xd2,0x39,0x64,0xdf,0x37,0xbf,0xc4,0x1d,0x2d,0xd8,0x3a,0x62, - 0xff,0x3b,0xcd,0x28,0xc9,0x64,0x96,0xee,0x1d,0x75,0xb2,0xe3,0xbd,0xf7,0xe5,0xb7, - 0x5b,0x03,0x68,0xaf,0xcc,0xb4,0x6c,0x3d,0xc0,0x5e,0xf5,0x66,0xe3,0x75,0x16,0xc5, - 0x4e,0x45,0x84,0x06,0xd9,0x5e,0x24,0x33,0xaf,0x93,0x72,0xab,0x18,0xd3,0x09,0x69, - 0xa1,0x18,0x62,0xd7,0x5c,0xdc,0xc3,0x57,0xeb,0x65,0xd4,0xa4,0x54,0x1a,0xe3,0xbc, - 0xa9,0x8c,0x9d,0x23,0xe9,0x59,0x25,0x61,0x6d,0xb8,0xc6,0xef,0xcc,0xb2,0x6a,0x92, - 0x7e,0x2e,0x01,0x21,0x74,0xc9,0x70,0x1b,0x3d,0x9c,0xe8,0xbd,0xd6,0x0f,0xd0,0x1c, - 0xc8,0x54,0x7f,0x07,0x1a,0x5d,0x10,0x42,0x54,0xd8,0xe7,0x0b,0x3b,0x92,0x99,0x78, - 0x4c,0x1c,0x4c,0x71,0x6d,0xe3,0x50,0xa3,0x2d,0xe3,0x88,0xb1,0xe8,0xfb,0x37,0x2a, - 0x60,0xb7,0xd4,0x8a,0x0e,0x35,0x50,0x33,0xa6,0x32,0x0d,0x6f,0x11,0x95,0x88,0xc7, - 0x72,0x29,0xd6,0x2f,0xd1,0x15,0x6d,0x44,0x38,0x20,0x8a,0xb0,0xa3,0x6c,0x91,0xff, - 0x4b,0x33,0x05,0x8a,0xd3,0xce,0x29,0x2c,0xd2,0xa2,0x09,0x76,0x63,0x53,0xd2,0x93, - 0xc8,0x99,0x59,0x6f,0xae,0x3e,0x40,0x33,0x94,0x2b,0x61,0x6b,0xf1,0xa4,0x85,0xe0, - 0x16,0xc8,0x2a,0x3e,0x7a,0xc4,0x0f,0x4a,0x0d,0xd6,0x02,0x61,0x80,0x3c,0x14,0x9d, - 0x57,0xa1,0xa1,0x7f,0xd0,0xec,0x15,0xd2,0xe8,0xa7,0x09,0xf6,0xd2,0x80,0xc0,0x9e, - 0xcf,0x81,0x28,0xc6,0x34,0x4d,0x67,0x1c,0x9b,0x35,0xea,0xc1,0xc7,0x4d,0xc6,0x55, - 0x86,0xbd,0xaf,0x20,0xd5,0x28,0xd4,0x83,0x3e,0x81,0x92,0xdf,0x01,0x10,0x58,0xdb, - 0x42,0x77,0x13,0x28,0x9c,0xc6,0x82,0x13,0x99,0x36,0x23,0x4f,0xc7,0xbd,0x8f,0xad, - 0xe8,0x25,0x91,0xa5,0x4c,0x46,0xc0,0xa7,0xd3,0xcf,0xc8,0x4d,0x33,0x8e,0xa0,0x6d, - 0x45,0xbf,0x83,0x55,0x7c,0x67,0x87,0x70,0x69,0xe6,0x4c,0xa8,0x9c,0x90,0xa2,0xa9, - 0x2b,0x37,0x69,0x68,0x84,0x60,0xe1,0xd1,0x66,0xb8,0x28,0x01,0x6d,0x0b,0x15,0x75, - 0x2b,0x2a,0x70,0x5f,0x32,0xd1,0x1b,0x74,0x74,0xb8,0x2d,0x1c,0x36,0x26,0x78,0xa6, - 0x4d,0x69,0xf0,0xf6,0x84,0xdb,0x12,0x2a,0xb7,0xd9,0x2b,0xe1,0x9c,0xbd,0xe8,0xdb, - 0x66,0xce,0x36,0x44,0x12,0x5b,0xd1,0xd6,0x7b,0xf1,0x52,0x2b,0x1a,0x9a,0x8e,0xde, - 0xfc,0x72,0x8c,0x55,0x59,0xc3,0xc1,0xc4,0x9d,0xba,0xd6,0x08,0x50,0x28,0xbf,0x57, - 0xa1,0x88,0x0f,0x4c,0x25,0x57,0x41,0x64,0xd5,0x10,0xca,0x24,0xf1,0x00,0xbc,0x20, - 0x7d,0xd3,0xcc,0x13,0xa1,0x5d,0xc1,0xf5,0xa0,0xc2,0x84,0xf9,0xc3,0xda,0x76,0x1d, - 0x4c,0xce,0xe6,0x72,0xaf,0xe3,0xfe,0xdb,0x1d,0x5d,0xd5,0xef,0xb9,0x85,0x69,0x3f, - 0xaa,0xcb,0x81,0xc5,0xf5,0xe9,0x4e,0xfb,0xfe,0x2b,0x71,0x63,0xdb,0x0a,0x6c,0xf7, - 0x5e,0x89,0x43,0x61,0x3a,0xac,0xf8,0x8d,0x71,0x62,0x88,0xe3,0xb6,0x48,0x7c,0xcb, - 0xc8,0xb9,0x12,0x22,0x65,0x49,0x5c,0x2b,0x52,0xdc,0x9c,0x9c,0x14,0x7c,0xfe,0x2d, - 0x8b,0x31,0x6b,0x7a,0xca,0x8d,0xfb,0x5c,0x67,0xb2,0xd7,0x94,0xfe,0xe5,0x7b,0x40, - 0x72,0x85,0x7b,0xc5,0x65,0x20,0xf9,0x28,0x8a,0x04,0xff,0x8c,0xd5,0x2e,0xdd,0x04, - 0xf7,0x20,0x37,0x90,0x8e,0x4b,0x01,0xfb,0x39,0xbc,0x4f,0x43,0x3d,0x5c,0x8f,0x70, - 0xd5,0x51,0x66,0x8d,0xe3,0x00,0x8b,0x48,0x30,0xaf,0xbf,0x93,0xa3,0x97,0xfa,0x1f, - 0x24,0x56,0xe3,0xed,0xd1,0x9b,0xfe,0x4b,0x97,0x8a,0xc0,0x2f,0xf7,0x76,0xfe,0x91, - 0xb9,0xe3,0xc2,0xf7,0xdf,0x32,0x7d,0x39,0xb9,0xaa,0x1e,0xcb,0xb3,0xea,0xf1,0x74, - 0x76,0x6c,0xcd,0x95,0xc2,0x3b,0x31,0x0e,0x52,0x29,0x05,0x16,0xc3,0x52,0x46,0x60, - 0x52,0xac,0xec,0xae,0x1c,0x00,0xf8,0x77,0xeb,0x33,0x07,0x93,0x61,0x41,0x85,0x2a, - 0xad,0xb9,0x8d,0xaf,0xe5,0xf1,0xe3,0x5b,0xd6,0x9e,0x26,0x55,0x86,0x3d,0x1f,0xb2, - 0xe3,0xe2,0xb6,0xf6,0x70,0xf7,0xbb,0x6c,0xa5,0x66,0x15,0xfd,0xeb,0xfc,0x06,0xdc, - 0xea,0xb4,0xb3,0x93,0xab,0xce,0x76,0x56,0x9e,0x75,0x76,0xb2,0xd3,0x59,0x67,0xf7, - 0x36,0x30,0xc4,0xed,0x6e,0x54,0xcc,0xb7,0xc4,0x1d,0x51,0xfe,0xe3,0xb5,0xbe,0x29, - 0x6c,0x6d,0x31,0x18,0xff,0x4f,0xbe,0x56,0x64,0x2f,0xa5,0x04,0x26,0xbd,0xf5,0xee, - 0x21,0x83,0xc9,0xc3,0xba,0xa2,0xf4,0xdc,0xb0,0xe4,0x37,0xb0,0xf6,0xee,0xa8,0x75, - 0x6f,0x26,0xf3,0x07,0xe2,0x3a,0x99,0x4d,0x1c,0x9e,0x49,0x28,0xab,0x33,0x2a,0x57, - 0x17,0x18,0x22,0x20,0x25,0x8a,0xc3,0x9b,0xa2,0x13,0x03,0x13,0xce,0x2f,0x32,0x3f, - 0xd7,0x62,0xcd,0x73,0xcd,0x53,0xfb,0x19,0xbb,0xd0,0xda,0x29,0xff,0x6b,0x51,0xd6, - 0xbb,0xcb,0x35,0x4b,0xd0,0x4f,0xbc,0x45,0xc5,0x6a,0xcd,0x5b,0x58,0x9d,0x35,0x37, - 0xea,0xb8,0xbc,0x2f,0xee,0x89,0x51,0xc7,0x8a,0xeb,0x04,0x76,0x87,0x17,0x7d,0x55, - 0x10,0xe8,0xce,0x0b,0xa0,0x71,0xfa,0x95,0xa7,0x1f,0x89,0x5a,0x7d,0xa5,0x5d,0xff, - 0x7c,0x03,0x83,0xcc,0xa5,0x26,0x18,0x67,0xea,0x33,0xf5,0xba,0x66,0x6c,0x10,0x70, - 0x76,0x4d,0x2c,0x3d,0xe1,0x43,0xa1,0x23,0xbd,0x70,0x21,0x36,0x26,0xe2,0xb8,0x87, - 0x7e,0x24,0xb8,0x7a,0x26,0xb5,0x5b,0xc6,0x4d,0x52,0xbf,0x78,0xe5,0x8f,0x1b,0xf3, - 0xd5,0x3b,0x91,0x39,0xb5,0x83,0x3d,0x7f,0x99,0xeb,0xdd,0x6d,0x27,0x89,0xe8,0x30, - 0x45,0xa5,0x12,0x99,0x14,0xcf,0x89,0xe8,0x27,0x30,0xbb,0x4e,0x35,0x21,0xf4,0x0e, - 0x1c,0x94,0x68,0xbd,0x03,0x67,0x01,0x76,0xa4,0x85,0xc5,0xda,0x0f,0xd2,0xe0,0xc3, - 0x01,0x4a,0xf0,0xcd,0x8d,0x47,0xf3,0xdf,0xa6,0xf0,0x27,0xcf,0xa7,0xc3,0x6e,0x44, - 0x92,0x72,0xeb,0xfb,0x27,0xd8,0xf0,0x67,0xe7,0x5e,0xea,0x7f,0x70,0xea,0xd6,0xee, - 0x13,0x7c,0x1a,0xf9,0x9f,0x90,0xb8,0xf5,0xa4,0x6d,0xcd,0x55,0xfb,0xcf,0xda,0x7b, - 0xfd,0x46,0xdc,0x8f,0xe2,0xc6,0x79,0x23,0x26,0xdf,0x9d,0xc9,0x39,0xa5,0xe0,0x91, - 0x52,0x46,0x8d,0x98,0x0e,0x8b,0xf9,0xaf,0x17,0x4b,0x6b,0x40,0xd5,0x1c,0x64,0x27, - 0x19,0x11,0x55,0x63,0x09,0x89,0xcf,0xb0,0xc8,0x7c,0x66,0xec,0x45,0x06,0x64,0x40, - 0x42,0xcf,0x27,0x78,0xc6,0x43,0x52,0xee,0x3d,0x24,0xbb,0x4b,0x7a,0x12,0x93,0x8f, - 0xc0,0x54,0xd4,0x29,0xc8,0x6d,0x88,0x1b,0xb7,0x0d,0x20,0x17,0xe9,0x33,0x71,0xde, - 0x46,0x89,0x43,0x94,0xb2,0x97,0xc6,0x31,0x5b,0x52,0x41,0x65,0xbb,0x6d,0x3f,0x12, - 0x99,0xc5,0xc5,0x07,0xe9,0x1e,0x8a,0xf4,0x86,0x2f,0x78,0x29,0x96,0xe0,0x63,0x50, - 0x5c,0xfb,0xd6,0xc1,0xea,0x50,0x15,0x46,0x08,0xa8,0x0f,0x10,0x80,0xa2,0xeb,0x14, - 0x41,0xe8,0xd0,0x9c,0xab,0x49,0x33,0xc8,0xb2,0xf7,0xdd,0x21,0x36,0x86,0x04,0x49, - 0x56,0x3e,0xb1,0xd5,0xe9,0xae,0xcb,0x13,0x9b,0xe5,0xfb,0x24,0xb7,0xd7,0xf4,0xa8, - 0x68,0x84,0xd2,0xfb,0x40,0xab,0x48,0x41,0xb7,0xf4,0x76,0x1e,0x99,0x9d,0x3d,0x9a, - 0xaf,0xf4,0xc2,0x2a,0x6c,0x70,0x83,0xc7,0xbf,0x4d,0xa1,0xfc,0x8a,0x33,0xd3,0x21, - 0x5b,0x17,0xfc,0xfe,0xa1,0x4c,0xd3,0x86,0x81,0xf8,0xa1,0x37,0x27,0xa6,0xd1,0x72, - 0x47,0x5f,0x4f,0xe8,0xf9,0xc3,0xe8,0x92,0x30,0x13,0xeb,0x69,0x6c,0xfc,0x34,0xb8, - 0xa6,0x43,0xc3,0x9d,0x34,0x8b,0xff,0x1a,0x57,0x19,0x7e,0xa2,0xb2,0x23,0x50,0x41, - 0x2b,0xe4,0x49,0x16,0xff,0xf2,0x03,0xb9,0x8c,0x27,0x45,0x29,0x75,0xbd,0x65,0x3a, - 0x29,0x5d,0xc8,0xac,0x72,0x53,0x9c,0x83,0xa8,0x37,0xa4,0x73,0xa9,0x38,0xab,0x01, - 0x87,0x47,0x4c,0x7c,0x94,0x4c,0x40,0x6e,0xcb,0x7d,0x8d,0xd8,0x81,0x11,0x0f,0x8a, - 0x38,0x2b,0x5b,0x63,0xbc,0x66,0x71,0xff,0x87,0x91,0x05,0x79,0x45,0xb3,0x75,0xf4, - 0xee,0xe0,0xe0,0x25,0x00,0x66,0xb4,0x57,0xe2,0xef,0x44,0xdf,0xc1,0xeb,0x77,0xec, - 0xd6,0xbe,0x1c,0xcf,0x2a,0xe0,0xe7,0x83,0x19,0x78,0x11,0x1d,0xfe,0xcd,0xb2,0xa7, - 0x27,0x69,0xe0,0x4f,0x08,0xf6,0xce,0x01,0x23,0x6f,0x29,0x35,0x90,0xb2,0x66,0x97, - 0x80,0x44,0xf1,0xc5,0xe9,0x65,0x86,0x13,0x4a,0x14,0x8c,0x1c,0xf4,0x18,0x82,0x72, - 0xd9,0x44,0x15,0xb5,0xb7,0x65,0x2f,0xdc,0x67,0x12,0x8e,0xad,0xc3,0x0a,0xcd,0x07, - 0x54,0x9a,0x06,0x7c,0xb4,0xc5,0xb8,0x00,0x2e,0x49,0x55,0xa6,0x1f,0x07,0x04,0x37, - 0x0f,0x72,0xf5,0x39,0xd1,0xcf,0x26,0x69,0x9a,0x8f,0xae,0x99,0x44,0xa4,0x93,0xba, - 0x28,0x90,0x67,0x7e,0xfd,0x81,0x9f,0xe9,0x63,0xe2,0xb8,0xca,0x37,0xcd,0xf6,0x5f, - 0x87,0x87,0x16,0x14,0x93,0xbd,0x01,0xee,0xc4,0x96,0xfd,0xd8,0xe6,0x2a,0xfb,0x65, - 0x9b,0x57,0xb5,0x81,0x05,0x7a,0xf9,0x16,0x5f,0x07,0x53,0x3a,0x59,0x69,0x62,0x6a, - 0x65,0x5b,0x7c,0x94,0x87,0xe9,0x18,0xbd,0x80,0x7a,0x55,0xda,0x75,0x53,0xa5,0xa9, - 0xb5,0xc9,0x21,0xf0,0x4e,0xc9,0xe4,0x90,0x25,0x27,0x7e,0x6a,0x72,0x67,0x4c,0x33, - 0x17,0x49,0xda,0x0d,0x81,0x38,0xb3,0x85,0x52,0x64,0xa1,0x9b,0x04,0x11,0xcc,0x87, - 0x79,0x69,0x3d,0x3e,0x77,0xab,0x71,0xaa,0x62,0x9a,0x33,0xce,0xca,0xa1,0x39,0x3c, - 0xdc,0xa3,0x27,0xcf,0xf6,0x5d,0xef,0x5b,0x9f,0xe5,0xc9,0x35,0x0c,0x2f,0xcd,0x05, - 0x93,0x14,0x37,0x4c,0xbc,0xb9,0xf7,0xd3,0x25,0xcf,0xbc,0x98,0x74,0xfd,0xf0,0xc0, - 0x1a,0x86,0x94,0x56,0x86,0x9a,0xa8,0xc6,0xc6,0x06,0x26,0x7a,0xb8,0x01,0xcb,0x43, - 0x2d,0x43,0x6c,0x64,0xa1,0x32,0x4a,0x42,0x4b,0xd9,0xd4,0x33,0x95,0x15,0xf8,0x34, - 0xf5,0xac,0x03,0x65,0xca,0xe1,0x30,0xa7,0x25,0xc8,0x9e,0x7c,0x12,0xa2,0x17,0x8b, - 0x6b,0x38,0x27,0x77,0x6a,0x00,0xdf,0x32,0xf8,0xde,0x88,0x49,0x83,0xcb,0x3d,0x8c, - 0x21,0xe8,0x95,0xfe,0x56,0xde,0x1f,0xeb,0xea,0x29,0x66,0x89,0x04,0x3e,0x36,0xd1, - 0x26,0x84,0x7a,0xb1,0x9b,0xd4,0xa5,0xc7,0xb7,0x38,0x1f,0x0c,0x87,0x94,0x43,0xe0, - 0xd0,0x0e,0xd6,0xe2,0xd2,0xa6,0xa8,0xfd,0x3f,0x25,0x0b,0xfd,0x5e,0xc5,0x1a,0x67, - 0xde,0x6d,0x80,0x0e,0xcd,0x26,0xc6,0x16,0xcf,0x86,0xcf,0x51,0x67,0x27,0xf7,0x90, - 0xa7,0xb9,0x7b,0xf6,0xe0,0xbd,0xb2,0xd7,0xe2,0xe7,0x4b,0x16,0xb1,0x7a,0xa6,0x2f, - 0x3c,0xa3,0xd5,0xba,0xd7,0x2a,0xcf,0x07,0xd8,0xa8,0x3b,0xd9,0xa4,0x4f,0xd2,0xbc, - 0x00,0x51,0xc2,0x74,0x8f,0xfe,0x74,0x96,0x9b,0x80,0x68,0xa2,0x58,0x7a,0x4b,0x93, - 0xee,0xf0,0x1d,0x8e,0x4f,0xc8,0x05,0x2d,0x5c,0x96,0x5f,0x42,0x38,0xa4,0xc1,0xfb, - 0x3b,0x5c,0xb3,0x90,0xdc,0xf0,0xf8,0x49,0x77,0x83,0x12,0xaf,0xf0,0x9a,0x5f,0x7d, - 0x4b,0x08,0xba,0xf4,0x2a,0xc1,0x81,0xf3,0x73,0x7e,0x67,0xcc,0x1f,0x91,0xf5,0x63, - 0xc1,0x2b,0x0a,0x5a,0x3c,0xde,0xc1,0x11,0xe8,0xc7,0x56,0x09,0x9b,0x80,0x84,0xc0, - 0x32,0xfa,0x1f,0x09,0xbc,0x76,0x92,0x52,0x6a,0x9e,0xe0,0x64,0xef,0x2a,0x3b,0x97, - 0x61,0x41,0x44,0x6a,0x85,0x9e,0xee,0xf8,0x66,0xe7,0xe3,0x5c,0x43,0xad,0xb4,0x38, - 0xda,0x86,0x9c,0x0e,0x71,0xad,0xb2,0xd1,0xb5,0xf9,0xd8,0xbb,0x0e,0x3f,0x0a,0x5e, - 0x02,0xc8,0xf3,0xd1,0x38,0xbd,0x19,0x5d,0x37,0x68,0x2b,0x35,0x1a,0x37,0xf3,0xed, - 0xdb,0x0d,0xa2,0x6b,0x8e,0x6b,0x00,0x07,0xdc,0xff,0x99,0xec,0xd1,0x94,0x94,0x5e, - 0x7d,0x4e,0xb0,0xc1,0x54,0xf5,0xc1,0x98,0x8a,0xa4,0xa8,0xa1,0x7a,0xe8,0x14,0xef, - 0x6a,0x71,0xb3,0xd9,0x3b,0x3d,0x8d,0xf5,0x06,0x17,0x4d,0x34,0x7f,0xda,0x39,0xf9, - 0xae,0x5f,0xfc,0x39,0xee,0x52,0x29,0x88,0x5b,0xce,0x9c,0xcc,0x77,0xba,0xf2,0xf6, - 0x9f,0xd4,0x29,0xf2,0x98,0x17,0xa2,0x98,0x92,0x4e,0x8a,0x8f,0x74,0xec,0x47,0x35, - 0x80,0x54,0x07,0xaa,0x97,0xe5,0xd7,0xcb,0x4c,0x6f,0xbf,0x5c,0xe7,0x83,0x2d,0x97, - 0x51,0xcd,0xed,0xf4,0xdb,0xe4,0xaa,0xf9,0x28,0x6d,0xec,0x64,0x9f,0xf3,0xf3,0xe6, - 0xa3,0x66,0x72,0xd9,0xa4,0xba,0x6e,0x51,0xad,0xe9,0x97,0x3e,0x12,0x48,0x1b,0x7c, - 0xd8,0x93,0xc2,0x0f,0x27,0xc9,0x75,0xf6,0x39,0xed,0x7c,0x6c,0x91,0xda,0x41,0xdf, - 0x44,0x9a,0x54,0x8e,0x24,0x78,0xc6,0x68,0x1d,0x0a,0x6f,0x3c,0x4e,0x11,0xc1,0x98, - 0x2a,0xf2,0x18,0x61,0xb0,0xe9,0xca,0x02,0xed,0x13,0x46,0xcd,0x8b,0x01,0x2a,0x82, - 0x46,0x7f,0x4e,0x41,0xb3,0x51,0x39,0xf4,0x8d,0x58,0xd1,0x60,0xfc,0x33,0xd1,0x47, - 0x1e,0xe5,0xc7,0xd9,0x55,0x73,0x27,0xdb,0x0e,0xfc,0xb0,0xe1,0x66,0xf4,0x2f,0xc5, - 0x67,0x0e,0x08,0x93,0xc8,0xfe,0xc2,0x1a,0xae,0xc9,0xfb,0xe6,0xe6,0x8a,0x30,0xac, - 0x0a,0xdf,0x55,0x87,0x0c,0x70,0x2e,0x3f,0x53,0xeb,0x9f,0x5e,0x91,0x6b,0x3e,0x13, - 0x7a,0xc7,0x64,0xe5,0x5e,0xd2,0x2b,0xe8,0x96,0x28,0xb6,0x62,0x9e,0xe8,0x8e,0x34, - 0x46,0x92,0x9a,0xdf,0xe0,0xac,0x14,0xca,0x53,0x04,0x08,0xb6,0x94,0x12,0x2a,0x79, - 0x86,0xb8,0x86,0x9d,0x36,0x0e,0x9c,0xb1,0x13,0x0c,0xa2,0x09,0xab,0x2d,0x06,0x7d, - 0xb1,0xb1,0x89,0x4d,0x05,0xbb,0x5a,0xdf,0x3b,0xea,0x99,0xd1,0xfc,0x43,0x50,0x58, - 0x2e,0x80,0xa3,0xc9,0xaf,0xb1,0x46,0xe3,0x23,0xed,0x98,0xde,0xb8,0x0e,0x6e,0x24, - 0x9c,0x6d,0x6e,0x9e,0xb5,0x68,0x6e,0x20,0x74,0xaf,0x49,0xe9,0x9b,0xba,0x2f,0xb4, - 0xd6,0x94,0xd4,0xb7,0x7f,0x28,0xa8,0x17,0x16,0x09,0x63,0xcc,0x60,0x03,0x7a,0x3d, - 0x3f,0x18,0xb0,0x1e,0x9b,0x50,0x70,0xea,0xea,0xd8,0x28,0xf2,0xb9,0x26,0x72,0xac, - 0xb9,0xc6,0x94,0xd9,0x10,0xb3,0xaa,0x8e,0x00,0xf5,0x72,0xf0,0x57,0x93,0xad,0xb8, - 0x26,0x8c,0xb8,0x7a,0x91,0x2d,0x73,0x76,0x39,0x6a,0xad,0xaa,0x41,0xbe,0x1c,0x27, - 0xe7,0xaa,0x47,0x5a,0xd7,0x2b,0x57,0x45,0x2c,0xad,0x83,0xbd,0xcd,0xb6,0x1f,0xa3, - 0xa3,0xcb,0x6e,0x05,0x1d,0x86,0x51,0xbb,0x93,0x35,0x37,0x13,0x3e,0x61,0x67,0x10, - 0x34,0xe9,0x9a,0xc0,0x6e,0x01,0xdc,0x1a,0xae,0x4b,0xa5,0xbe,0x9c,0xe9,0xff,0x3a, - 0x6b,0x6d,0x4e,0x2f,0x60,0xb4,0x76,0x79,0xdd,0x2c,0xd9,0xb7,0x5c,0x22,0x6d,0x55, - 0x21,0xb9,0x1b,0x0d,0x6f,0xb4,0x39,0xdc,0x9b,0xcc,0x4e,0xa1,0x83,0xb9,0x3f,0xde, - 0xc0,0x47,0x97,0x2d,0xc3,0x61,0x22,0x9c,0xa7,0xd5,0xd7,0xe9,0xe4,0xa2,0xfc,0x1c, - 0x70,0xd0,0xe6,0x70,0xe5,0x33,0x96,0x40,0x54,0xa8,0xc2,0x8c,0xd8,0xec,0x61,0x4a, - 0xec,0x9c,0xf2,0xde,0x9d,0x86,0x46,0x1f,0xfb,0xb7,0xce,0xf6,0xf7,0x1c,0xc8,0x3e, - 0x8c,0xc2,0x1f,0x5e,0x73,0xeb,0xb2,0x25,0x8c,0xad,0xf1,0x9e,0xd9,0x2d,0x52,0x02, - 0x19,0x22,0xe0,0x27,0xdf,0x8e,0x3b,0x36,0x31,0xce,0xb8,0x86,0xc1,0x05,0x98,0xde, - 0xac,0x4c,0x20,0x19,0x8b,0x7a,0x60,0x9c,0xe3,0xf9,0x59,0xf3,0xf1,0xe3,0xbd,0x47, - 0x1d,0x79,0x7c,0xf2,0xdd,0xde,0xae,0x79,0xfc,0xee,0xfb,0xbd,0x9d,0xce,0x76,0x17, - 0x80,0x93,0xba,0xfb,0x2f,0x8f,0x58,0xfb,0x38,0xc1,0x4d,0x11,0x10,0x6a,0x6a,0xaa, - 0xde,0x69,0x3a,0x83,0x31,0x16,0x99,0xe6,0x09,0xed,0xa9,0x3e,0x75,0x25,0x68,0xff, - 0x2e,0x05,0xb9,0x37,0x31,0xf0,0x79,0x59,0xe8,0x6c,0x53,0xc2,0x09,0xa9,0xb5,0x8b, - 0x19,0xc7,0xf3,0xbb,0x28,0x39,0x45,0xe4,0x89,0x0e,0x6d,0xfd,0x77,0x1b,0x83,0x6f, - 0x77,0x49,0xbe,0x02,0x18,0xed,0x5b,0x3e,0xf2,0x4a,0x89,0x0f,0x54,0xfc,0x78,0x2f, - 0x66,0x99,0x14,0x2b,0x2e,0xc9,0x97,0xe6,0x05,0x65,0xa6,0x31,0x0b,0x69,0x2a,0x94, - 0xa9,0x44,0xb8,0x96,0xcc,0xb3,0x61,0x71,0xdd,0xe5,0xf6,0x69,0x0e,0x68,0x1d,0x2b, - 0x3b,0x48,0x68,0xd2,0x16,0x5b,0xa9,0xd9,0x7e,0x8c,0x66,0xa2,0xab,0x27,0x8d,0xd8, - 0x20,0x8e,0xc3,0xbd,0x3c,0xda,0xe6,0x62,0x36,0x14,0xc6,0x87,0x6e,0xd9,0x6c,0x2f, - 0x53,0x79,0x06,0x7b,0x7e,0xc0,0xd7,0x9b,0x85,0xac,0xcd,0x1a,0xd8,0x84,0xe0,0xfb, - 0x58,0x74,0x01,0x5e,0x57,0xaf,0x9f,0x94,0x2a,0x5a,0x97,0x3a,0x8b,0xcc,0x4d,0x6d, - 0xdf,0xc2,0x70,0x8c,0x68,0x62,0x54,0x9a,0x39,0x28,0x54,0xab,0x0a,0x16,0xe7,0x2d, - 0xda,0x71,0x15,0x35,0x69,0xcc,0x86,0x55,0x90,0x22,0x90,0xb3,0xc6,0x3a,0x55,0x01, - 0x4f,0x78,0x9f,0xdc,0xec,0xf1,0x4f,0x75,0x30,0x51,0x14,0x63,0x9c,0xc6,0x73,0xa9, - 0xf8,0x53,0x57,0x12,0xd5,0x1e,0x70,0x47,0x52,0xd4,0xb1,0xef,0xe5,0xce,0xfd,0x42, - 0x1d,0xd5,0x71,0x6f,0x85,0x32,0xee,0x3f,0xc0,0x81,0xed,0x8e,0x11,0x0e,0xfa,0x74, - 0x0f,0x86,0x67,0x7f,0x17,0x36,0xb6,0x37,0x90,0xd7,0x5e,0x88,0xa5,0x9c,0x7a,0xb5, - 0x8a,0x68,0xd6,0xfb,0x5d,0x52,0x03,0x74,0x64,0xf9,0x66,0xcc,0xce,0xec,0x67,0x93, - 0x80,0xd0,0x3a,0x66,0x4f,0x82,0xd1,0x4d,0x1f,0x78,0x7c,0x87,0x57,0x67,0xcb,0x12, - 0x10,0x0e,0x62,0xdb,0x8d,0x1b,0x94,0x44,0x26,0x4c,0x7b,0xf1,0xe6,0x9f,0x28,0xb4, - 0xee,0xce,0x77,0x8f,0xba,0xf0,0xb9,0x04,0x80,0x72,0x44,0x2a,0x91,0x67,0xa7,0xd0, - 0xed,0x85,0x65,0xee,0x01,0xc0,0x46,0xce,0x8c,0x1b,0x52,0x2e,0xb0,0x4a,0xae,0xea, - 0x16,0x6f,0xec,0x6f,0x7f,0x1e,0x3e,0x9d,0xea,0x10,0x0c,0x37,0x96,0x76,0x4a,0xdc, - 0xc1,0x58,0xa3,0x7d,0x92,0xf6,0xb9,0xe8,0x0c,0x03,0x9f,0x2e,0xa9,0x4d,0x31,0x9c, - 0xeb,0x76,0x49,0x77,0x8e,0x98,0xff,0xd1,0x86,0xbf,0x7f,0x25,0x30,0xd0,0x8c,0x9d, - 0x99,0x90,0x1f,0x6a,0xee,0xd7,0xb8,0x87,0x32,0x17,0x33,0x58,0xe0,0x42,0x93,0xdd, - 0xa8,0x89,0xe0,0xcb,0x7e,0x5e,0x27,0xfe,0x68,0x58,0x57,0x8e,0x56,0x52,0x2b,0xcb, - 0xe0,0xd1,0x82,0xd0,0x9c,0xae,0x18,0x73,0xc6,0xba,0x5a,0x9a,0xe6,0xcf,0xe6,0x28, - 0x8e,0x9e,0xdd,0x79,0x08,0xe4,0xad,0x71,0x75,0x2f,0x4d,0xb3,0xd2,0x89,0x16,0x95, - 0x49,0xf8,0xe4,0x88,0x4c,0xbd,0xf5,0xdf,0xed,0x71,0xcb,0x66,0x51,0x5f,0xf8,0x9e, - 0xdb,0x71,0x3e,0xb8,0x90,0x80,0xe8,0x78,0xaa,0x3c,0x84,0x91,0x27,0xca,0x13,0xb2, - 0x7c,0x29,0x3b,0x3a,0x1b,0xb8,0xf0,0x75,0x8e,0x7f,0x54,0x32,0x47,0x79,0x58,0x30, - 0xd0,0xeb,0x04,0xa5,0x9b,0x13,0x0d,0xea,0xdb,0xe0,0x56,0xf4,0x3d,0x70,0x7c,0xfa, - 0x2b,0xc4,0x9d,0xee,0xf5,0x6d,0xed,0xb4,0x85,0xb8,0x93,0xdc,0xbb,0x56,0x0a,0xfd, - 0xa5,0x75,0xb2,0xf9,0x50,0xa3,0xa0,0xfb,0x7f,0xfd,0x89,0x10,0x56,0x90,0xe0,0x3c, - 0xe8,0xce,0xdd,0x8d,0xb7,0x25,0x4a,0x05,0x5c,0x2d,0x9d,0xec,0x09,0x8d,0x84,0xeb, - 0xd9,0x58,0x39,0x94,0x02,0x3c,0x99,0x62,0x48,0x9d,0xe3,0x59,0x4d,0x43,0x52,0xc0, - 0x97,0x3b,0x59,0x6e,0x08,0x33,0xb3,0xa3,0xfa,0xe9,0xb6,0xe4,0x99,0x0f,0x32,0x7e, - 0xaa,0x40,0xe6,0xbb,0x3b,0xdf,0x3d,0xf9,0x9e,0x0e,0xc1,0xe5,0x2b,0xdc,0xa4,0xeb, - 0x33,0x1c,0xa5,0xef,0x6e,0x6e,0x3a,0x47,0x31,0x8a,0x81,0x86,0x88,0x3e,0x06,0xce, - 0xde,0x02,0xeb,0xe4,0xfa,0xdb,0x3a,0x90,0x4a,0x4e,0xcf,0x03,0x77,0xa1,0x4a,0x1c, - 0x7d,0xf8,0xd2,0x7a,0x9b,0xc9,0xcc,0xee,0x57,0x9c,0xdb,0xdf,0x9e,0x97,0xb2,0xfc, - 0x68,0xe3,0x66,0xde,0x89,0x7f,0x3b,0x78,0xbe,0xb5,0xdf,0x1b,0xf7,0xfa,0xbd,0x28, - 0x81,0x29,0xd2,0x88,0x1a,0x9a,0xd5,0x83,0xd9,0x59,0x27,0xfe,0xf3,0x76,0xbb,0xf5, - 0x78,0xe7,0x71,0x8c,0x23,0xf5,0xf8,0xc9,0x4e,0x8b,0x9e,0x4a,0x4a,0xfe,0x2e,0xc6, - 0xc9,0x7a,0xfc,0x18,0x21,0x1e,0x81,0xe3,0xf9,0x05,0xe9,0x20,0x48,0x52,0xeb,0x99, - 0x4c,0x8f,0x5b,0xdf,0xb7,0xdb,0x92,0x69,0xe7,0x71,0x5b,0xf2,0x6c,0xb7,0x57,0x65, - 0x8a,0x92,0xd7,0x3d,0x32,0xaa,0xbe,0xd2,0x22,0x9f,0xb4,0x1e,0x7f,0xb7,0xaa,0xc8, - 0xef,0x6b,0x72,0xff,0x4a,0xf3,0x70,0x55,0x70,0x5b,0xb3,0x6e,0x83,0xec,0x12,0xa9, - 0xab,0xca,0xed,0x44,0x07,0xcf,0xb3,0xe8,0xf7,0xe7,0x92,0x77,0x67,0xb7,0xb5,0xbd, - 0x5c,0xd3,0xef,0xeb,0x8b,0x45,0xe6,0xff,0x7a,0xf5,0xe3,0xdd,0x39,0x6d,0xb1,0x3f, - 0xcc,0x7a,0xff,0x1c,0x0c,0xbf,0xa4,0xac,0x17,0xbf,0x6d,0xfd,0xf6,0x8b,0xcf,0x9c, - 0xef,0x9f,0xfc,0xb9,0xf5,0x64,0xfb,0xfb,0x7b,0xe6,0xfc,0xb1,0x98,0xc2,0xd3,0x33, - 0x46,0x95,0xe6,0x46,0x6b,0x86,0x0d,0xb3,0x1d,0x50,0xba,0xff,0xcf,0x82,0xe4,0x8b, - 0x77,0xc5,0xf4,0xe2,0x84,0x26,0x93,0x65,0x02,0x1e,0xed,0xee,0xac,0xef,0x10,0x20, - 0x20,0x7a,0xb4,0xbb,0xfb,0xeb,0xcf,0xff,0x8c,0x92,0x57,0x13,0x52,0x3a,0xbf,0x83, - 0xed,0x98,0x60,0xa0,0xf4,0xd6,0x13,0x94,0xbd,0x96,0x08,0x8b,0x41,0xcb,0x0f,0x72, - 0xaf,0x67,0xc0,0xeb,0x02,0xb7,0x1b,0x86,0xb4,0xd1,0x2d,0x43,0xbe,0xd5,0x93,0xad, - 0xd9,0xae,0xa2,0xff,0x55,0xf4,0x90,0xcf,0x74,0xa8,0xef,0x5a,0xbb,0xdf,0xad,0x65, - 0x58,0x90,0xcd,0x52,0x1b,0xe4,0x5f,0x57,0x2c,0xee,0x8b,0x5f,0x7c,0xec,0x0d,0x51, - 0x63,0xad,0x65,0x4d,0x3e,0xed,0xc9,0x4f,0x96,0xf2,0x7d,0xff,0xe4,0xfb,0xbb,0xab, - 0x69,0xf3,0x1d,0x90,0x49,0xd8,0x3f,0x85,0x3d,0x5f,0xd2,0xab,0xfe,0x3a,0x28,0xe6, - 0xa4,0x97,0x0f,0xaa,0xb8,0xd3,0x6e,0x81,0x33,0xeb,0x7b,0xbf,0xe6,0x0d,0xfa,0x64, - 0x90,0xbf,0x96,0xc5,0x1b,0xc7,0xce,0x49,0xba,0xef,0x37,0xf1,0xc6,0xba,0x09,0x5f, - 0xe3,0x23,0xdc,0x15,0xec,0xc4,0xb4,0x09,0x5b,0x1e,0xb1,0x98,0x1b,0xd3,0x0a,0x37, - 0x1b,0x9c,0xe2,0x03,0x74,0x6c,0x9d,0x48,0xaa,0x90,0xe7,0xf8,0x05,0x31,0x11,0x68, - 0xa2,0x77,0xfc,0xb4,0xda,0x31,0x0b,0x5b,0x3d,0x8a,0x16,0x71,0xe2,0x6f,0x70,0x8c, - 0xf6,0xb7,0xe7,0x18,0x2f,0x91,0xc2,0xf7,0xc4,0x79,0x0d,0xdd,0x51,0x3d,0x52,0x6f, - 0x54,0x66,0x65,0xba,0x3e,0x1a,0x1c,0xc3,0x73,0x8a,0x79,0xfd,0x8c,0xd7,0xa0,0x0c, - 0xdf,0x2b,0x70,0xc8,0x94,0x1f,0xb1,0x1d,0x08,0x78,0x12,0xd1,0xf8,0xb1,0x1b,0x82, - 0x1f,0x7e,0x57,0x16,0xd9,0xb4,0x83,0x9f,0x94,0x5b,0x36,0x6d,0xff,0xdd,0x12,0xe3, - 0xae,0xfe,0xc9,0xa6,0x4f,0x3f,0x0d,0xd8,0xa3,0x9e,0x2e,0xf9,0xae,0x3b,0xcd,0x8c, - 0xa2,0xb3,0xfa,0xce,0x38,0xb1,0x0b,0x72,0xbc,0x75,0x84,0xee,0x2e,0x48,0x0e,0x2f, - 0x86,0x95,0x5d,0xf3,0xac,0xf8,0x48,0xdf,0x36,0xcf,0x8b,0xe1,0x70,0x30,0xed,0x5a, - 0xcf,0x17,0x82,0x80,0xef,0x38,0xb3,0xbf,0xb3,0xfb,0xf8,0xd9,0xdc,0x58,0xe9,0x68, - 0x13,0x44,0xa6,0xa9,0x60,0x1b,0x58,0xa7,0x1a,0xa1,0x2f,0x8f,0x81,0xeb,0xc1,0x63, - 0x4e,0x3b,0x39,0xe2,0x4d,0xbf,0x57,0x9e,0x77,0xe9,0xd8,0xc9,0x65,0xb6,0xe7,0xd8, - 0x43,0x56,0xd9,0x5a,0x94,0xe2,0xa6,0xf3,0xd9,0x2f,0xf4,0xb7,0x0a,0x62,0xab,0xf6, - 0xbf,0x2e,0x02,0x62,0x69,0xe8,0x24,0x01,0x75,0x61,0x7a,0xc9,0x1f,0x68,0x5a,0x06, - 0x6e,0xc5,0xe5,0x4b,0x75,0x7b,0xd6,0x84,0xba,0xdc,0xdc,0xe4,0x5f,0x75,0x89,0xca, - 0x71,0x69,0x37,0xaa,0x96,0x6a,0x12,0x01,0xde,0xbe,0x29,0xde,0x17,0x8a,0x86,0x9f, - 0x3b,0x11,0x1d,0xb5,0xc9,0xb6,0xf2,0x94,0x0d,0x0f,0xd3,0xba,0x1e,0x24,0x9f,0x4f, - 0xae,0xd2,0xb0,0x1b,0xc9,0x87,0xf2,0x2c,0x0d,0xfb,0x92,0x7c,0x38,0x9d,0xf1,0xfe, - 0x96,0x4a,0xd8,0x68,0x08,0xe1,0x4f,0xe9,0x6c,0x32,0xa2,0xa3,0x9c,0xa2,0x1c,0x3f, - 0x9c,0x4b,0x1b,0x47,0x3d,0xd3,0x13,0x7a,0x43,0xd3,0xad,0xa1,0x46,0x62,0xb3,0xc6, - 0xf5,0x1e,0xe2,0x97,0xfb,0x2a,0xf5,0x2e,0xe3,0x51,0xa6,0xc6,0x85,0xbe,0xf1,0x46, - 0x5b,0x31,0x34,0xe3,0xfe,0xc2,0xdc,0xbe,0x34,0xde,0xfd,0xf0,0x2b,0x0d,0x97,0xde, - 0xf0,0x57,0xbf,0x77,0x1b,0x83,0x52,0x89,0x79,0xe0,0xf5,0xca,0xa3,0xc6,0xe5,0x71, - 0x57,0x72,0xf8,0xbd,0xef,0xf6,0xde,0xe6,0x8c,0x7a,0xdf,0x9c,0xb1,0xb8,0x73,0xca, - 0xbf,0x64,0xe5,0x38,0xb5,0x06,0x8e,0x1b,0xeb,0x2c,0x1c,0xb9,0xb4,0x25,0x97,0xba, - 0xd2,0xaf,0xcb,0x2f,0xcf,0x58,0xe3,0x89,0x57,0x20,0x97,0xcf,0x68,0x7e,0xb7,0x87, - 0x2f,0x64,0x77,0x6f,0x0d,0x02,0xc3,0x43,0x19,0xbb,0x5f,0x5b,0x79,0x60,0x53,0x1d, - 0xf9,0xd8,0xd3,0x1d,0xaf,0x38,0x1b,0x98,0x7b,0xb5,0xf5,0xa3,0xa0,0xfe,0x5a,0x03, - 0x48,0x45,0x73,0x2f,0x1b,0x48,0xf5,0x3e,0xfa,0xf5,0x76,0x8b,0x0f,0x14,0x95,0xf2, - 0xca,0x9b,0xbb,0xbb,0x75,0xec,0xae,0xd5,0xde,0x80,0x37,0x3a,0x5b,0x05,0x21,0x2c, - 0x40,0x4b,0x18,0x23,0xa3,0xfb,0xd5,0x84,0x9b,0xb2,0xd2,0x7a,0x0a,0xc3,0x31,0xfe, - 0x97,0x09,0x94,0x79,0x5c,0x61,0x6b,0xb0,0x41,0x51,0x96,0x10,0xfe,0x28,0x1d,0x93, - 0x22,0x9c,0xbc,0x8f,0x66,0x3b,0xd9,0x6e,0xf6,0xa8,0xc6,0xe2,0x10,0x8b,0x84,0xcc, - 0x88,0x71,0x63,0xb0,0xda,0xe4,0x70,0x40,0x7d,0x7a,0xac,0x4a,0xa7,0xf9,0xb4,0x06, - 0x56,0x6d,0x20,0x07,0x4f,0x01,0xa8,0xc6,0xe1,0x4c,0x04,0x15,0x51,0x13,0xa8,0x43, - 0x34,0xf7,0xb4,0x49,0xa4,0xb2,0x77,0xed,0x5d,0x2f,0x37,0x46,0xac,0x75,0x30,0x33, - 0xca,0x2b,0x3b,0x69,0x89,0xf0,0xad,0x03,0xcc,0xc6,0xfb,0x86,0x33,0x05,0x44,0x8a, - 0x94,0xa1,0x4e,0xf5,0x27,0xdf,0xde,0xe6,0x25,0x1f,0x8f,0xba,0x93,0x2f,0xdd,0x3e, - 0xc2,0xc2,0x5d,0xab,0xf0,0x28,0x65,0xe7,0x5c,0xe4,0x09,0x77,0x50,0x5c,0x61,0x1b, - 0x69,0x0c,0x13,0xca,0xd3,0xd9,0x84,0x8e,0x8d,0x27,0xb0,0x0f,0x08,0x9b,0x85,0x7c, - 0x32,0x71,0x6f,0x4b,0x56,0xcc,0xbb,0xdc,0x70,0xbb,0x61,0xae,0x03,0x05,0x4b,0x6c, - 0x93,0xce,0xf0,0xae,0xfe,0x87,0xb4,0x33,0xfb,0x38,0x65,0xc4,0xaf,0x30,0x3e,0x0f, - 0x93,0xe7,0xd7,0xff,0x76,0x73,0x72,0x77,0xfe,0x73,0xa7,0x6d,0x99,0x7b,0xef,0x58, - 0xc0,0x52,0x67,0x91,0x26,0xd2,0x5c,0xc9,0xc1,0xff,0xb2,0x06,0x89,0xa7,0x7d,0x98, - 0x4b,0xf0,0xa7,0xfa,0x3a,0xda,0x5b,0x0f,0x42,0x33,0xb1,0x87,0xb5,0xd6,0x77,0x53, - 0x19,0x5a,0x9c,0x4b,0x9b,0xba,0x36,0x62,0xbb,0x9d,0x47,0x35,0xdd,0x02,0x9f,0x92, - 0xda,0x41,0x21,0x08,0x1e,0xd5,0x75,0x8a,0xba,0x4c,0x68,0xf5,0x7a,0xbf,0x1b,0x35, - 0x95,0x15,0x5f,0xb2,0xea,0x1e,0x67,0xaf,0xf3,0xbe,0xb5,0x60,0x1f,0x39,0xef,0x5b, - 0xa9,0x78,0xd1,0x20,0x88,0xb4,0x3e,0x9c,0xe4,0xbd,0x03,0x5e,0xae,0xc1,0xee,0x3b, - 0x4d,0xaf,0xe1,0xbb,0xef,0x37,0xfd,0x5e,0x4d,0x70,0x8f,0xdb,0x07,0x1b,0xf7,0xba, - 0x7e,0xb0,0x71,0xe7,0xfd,0x03,0x00,0xd5,0xdf,0x40,0xa8,0xef,0x05,0x61,0x23,0x4e, - 0x27,0xd3,0x37,0x17,0x73,0xdf,0x96,0x16,0x3e,0x9f,0x7a,0xc3,0xad,0xe2,0x7a,0x80, - 0xd9,0x67,0x44,0x1b,0xf5,0x49,0x9f,0xb6,0xb2,0x6f,0x0e,0x0e,0xe3,0x95,0xb7,0xb1, - 0x37,0x37,0x67,0x2d,0x9c,0xca,0x81,0x3c,0x64,0x6c,0xd2,0x4b,0x60,0x20,0xcb,0x00, - 0xd4,0x64,0x0a,0x31,0xb9,0x0c,0x8f,0xe5,0x8d,0xc7,0xf1,0xfa,0x2b,0x12,0xea,0xd9, - 0x63,0x7f,0x72,0x31,0xec,0x43,0x1c,0x9d,0x15,0xd4,0xd4,0xf6,0xe2,0x5d,0x33,0x82, - 0x37,0x04,0xbe,0xcb,0x18,0xa7,0xa1,0xa1,0xff,0x19,0x05,0x06,0xa9,0x36,0x5e,0xc1, - 0xfd,0xa5,0x3d,0xa7,0x57,0x75,0x12,0x6d,0x75,0xd3,0xd4,0x0e,0x12,0xdf,0xbd,0xc0, - 0xd9,0x60,0x3c,0x28,0x61,0xae,0x67,0xe7,0x43,0xbd,0x6e,0x74,0x70,0x31,0x05,0x0b, - 0xab,0x05,0xbe,0x3a,0x31,0xc8,0x41,0x47,0xac,0x60,0xd8,0x91,0xe5,0x5e,0x8c,0x07, - 0xfb,0xc9,0x86,0x74,0x01,0x72,0x2d,0x8b,0x37,0x0e,0xe2,0x4e,0xcc,0xfa,0xd8,0x7f, - 0x30,0xd5,0x62,0x0e,0xe0,0x7a,0xd5,0xd0,0x19,0x55,0xa8,0x44,0x7d,0x4a,0xe6,0x9b, - 0xa7,0x29,0x9d,0x1a,0xd0,0x7a,0x79,0xaa,0xf0,0xcf,0x3d,0xc0,0x32,0xea,0x4f,0x88, - 0x93,0x46,0xcc,0xa7,0x6c,0xb5,0x51,0xa6,0xdd,0xf5,0x46,0xdd,0x44,0x50,0xd8,0x33, - 0xf2,0xe6,0x9c,0xf5,0xab,0xb5,0xd0,0xaa,0x03,0xf0,0x31,0xe1,0xa8,0xd1,0x80,0x12, - 0xd3,0xbb,0x1a,0x1b,0x43,0x38,0x5b,0x6e,0xc4,0x6c,0x4a,0xa8,0xfb,0x9b,0xcb,0x14, - 0x09,0x6a,0x0f,0x88,0x86,0x00,0x2a,0x36,0x59,0xd5,0x03,0xae,0x38,0xeb,0x7b,0x87, - 0x26,0xd5,0xea,0x1b,0xa4,0xc6,0x09,0xaa,0xc5,0x3b,0x15,0xeb,0x30,0x42,0x2f,0x17, - 0xdf,0x11,0x43,0x5a,0xc2,0x1d,0xf7,0xdd,0x78,0xce,0x5d,0x4b,0x89,0xe5,0x72,0x66, - 0x51,0xee,0x25,0x7d,0x37,0xf0,0xf0,0x5e,0xfc,0x2d,0xff,0xa3,0x5d,0x52,0x02,0xc1, - 0x49,0xa9,0x27,0x62,0x6c,0x6f,0xf3,0xe0,0x93,0xea,0x06,0x6c,0x5a,0x93,0x89,0x05, - 0x98,0x40,0x1d,0xce,0x04,0x91,0x43,0xfa,0xe6,0xeb,0x37,0xbf,0x47,0x5b,0x11,0x93, - 0xa6,0x3a,0xed,0x2c,0xde,0x97,0x27,0x9c,0x47,0xa2,0xff,0x05,0x3a,0xef,0xb4,0x01, - 0x7a,0xfd,0x44,0x50,0x11,0x19,0x0f,0x1a,0x70,0x96,0x73,0x31,0x98,0x09,0x31,0x5a, - 0x7c,0xbf,0x46,0xdc,0x11,0x2a,0x5e,0x63,0x2c,0x8a,0xcf,0xc7,0x5a,0x20,0x73,0xe4, - 0x44,0x9e,0xa4,0x54,0x07,0xb1,0xa4,0x92,0xc8,0x66,0x53,0x91,0x39,0xef,0xd4,0x25, - 0xac,0x8b,0xd8,0x31,0x3b,0x4d,0x53,0x42,0x34,0xbd,0xd5,0x06,0x7b,0x27,0x1b,0x1c, - 0x57,0x3e,0xd9,0x8b,0xb1,0x84,0x4d,0x8b,0x7e,0xe4,0xf1,0x3c,0x99,0x4d,0xf7,0x66, - 0xd3,0x16,0x4c,0xb1,0x9b,0x91,0x1c,0xeb,0xce,0x4e,0xad,0xb4,0xa0,0xe7,0xb2,0xc4, - 0x69,0xe6,0x9e,0x50,0x2e,0x46,0xb6,0x0e,0x1e,0xcb,0xab,0xf9,0x35,0x78,0xc3,0xd6, - 0xdb,0x53,0x38,0x6a,0x8f,0x33,0xa4,0x11,0x76,0x18,0x5a,0x0b,0x50,0xcd,0xf4,0x81, - 0xeb,0xee,0xe1,0x70,0x5f,0x2c,0x82,0x29,0x24,0x65,0xcc,0xc1,0x50,0x8e,0xb3,0x00, - 0x6a,0x2f,0xe6,0x68,0xf5,0xce,0x40,0xd0,0x52,0xad,0x5c,0xee,0x2c,0xe0,0xe9,0x0d, - 0x38,0x26,0x46,0xe4,0x71,0x56,0xcb,0x23,0xeb,0x60,0xce,0x62,0xb1,0x19,0xdf,0x9c, - 0x88,0xad,0xae,0x76,0x84,0x23,0x5f,0x7c,0xb6,0x03,0x35,0x4c,0xf7,0x28,0x14,0x5c, - 0x2f,0x11,0x21,0x21,0x4b,0x14,0x07,0x5c,0x68,0x06,0x18,0x34,0x35,0xc8,0x4f,0xe2, - 0xff,0x6f,0xd3,0xa9,0xba,0xc5,0x4f,0xab,0xb8,0xf1,0xb9,0xa2,0xa2,0xe7,0x62,0x16, - 0xe0,0xb2,0xc9,0x1a,0x3d,0x3e,0x95,0x1a,0x21,0x31,0x22,0x59,0x26,0xce,0x28,0x4d, - 0xcd,0x86,0xb7,0x77,0xf6,0xf0,0x56,0x92,0x12,0xbe,0x20,0x59,0x7b,0x7b,0x87,0x26, - 0x2d,0x5c,0x18,0xe9,0x20,0x9f,0x14,0x58,0x8c,0xaa,0xf2,0x8a,0x11,0x9d,0x68,0x87, - 0xe5,0x69,0xb2,0x94,0x57,0x8c,0xdc,0xe2,0xe4,0x4b,0x46,0x89,0xf7,0x72,0xa3,0x3b, - 0x45,0x49,0xd6,0x77,0xb0,0x8c,0x87,0xb0,0xbc,0xe0,0xa3,0xf8,0xc5,0xc1,0xc2,0xa0, - 0xbe,0xc9,0x84,0x00,0x36,0xfa,0x26,0xd0,0x6c,0xea,0xc4,0xac,0x61,0xcf,0x61,0x5e, - 0x2c,0x92,0xfe,0x92,0x4d,0x8b,0x5d,0x67,0x1f,0x6c,0xfd,0x3d,0xc1,0xb4,0x46,0x22, - 0x97,0xcc,0x2e,0xef,0x75,0x7a,0xf9,0x66,0xa1,0x5d,0xf3,0x9b,0x05,0x7a,0xc8,0x37, - 0x0b,0x1e,0x41,0xdf,0x2c,0xe6,0xd7,0xdf,0x2c,0x40,0xe3,0x7b,0xd3,0x25,0xcc,0x0b, - 0x5a,0x57,0xd3,0xc1,0x18,0x79,0x16,0xc6,0xf1,0xf3,0x92,0xc0,0x78,0xab,0x2e,0xc2, - 0x84,0xab,0xa0,0xdb,0x30,0xd6,0xf1,0xa9,0x54,0xc6,0x19,0x7f,0xf1,0x3c,0x61,0xc4, - 0x8e,0x94,0xcf,0xcb,0x9c,0xa7,0x8a,0xc3,0x2a,0x66,0x46,0x7f,0xa8,0xd3,0xe2,0xfd, - 0x30,0xa4,0x2d,0xdd,0x21,0xe9,0x6a,0x18,0xc4,0xb0,0x7f,0x50,0x7f,0xde,0x6f,0xca, - 0x84,0x31,0x7e,0x70,0xaf,0xe8,0xed,0xb0,0xa0,0x1e,0x0c,0x12,0xa3,0x5e,0xe4,0xae, - 0x7f,0x11,0x8d,0x3c,0xd2,0x57,0x6e,0xa7,0xf6,0x86,0x92,0x29,0xd8,0xce,0x70,0x9b, - 0x9b,0xe1,0x96,0x45,0x0d,0x06,0xee,0x2a,0x90,0x98,0x34,0x99,0xd0,0x4f,0x4f,0x2e, - 0x08,0x1b,0x65,0x9f,0x29,0x73,0x27,0x8d,0x9a,0x2c,0x76,0x95,0x11,0x09,0x26,0x53, - 0xf1,0x9f,0x40,0xdd,0xa7,0xf9,0xdb,0x81,0x7a,0xd2,0x2d,0x2d,0x55,0xab,0x9d,0x34, - 0x61,0xa7,0xe0,0xfa,0x66,0x5a,0x43,0x96,0x00,0x34,0xe2,0x8a,0x02,0x8b,0x3f,0x9c, - 0xca,0x94,0x03,0xe6,0x8d,0xc2,0x6f,0x3c,0x6f,0xfe,0xaf,0x5e,0xf3,0x9f,0xc7,0x37, - 0xbb,0xb7,0xea,0x9a,0x4f,0x5b,0xe7,0x7e,0xd3,0x4a,0x8c,0x9d,0xc1,0x9d,0x1c,0x63, - 0x13,0x45,0x62,0xd8,0x6e,0x93,0x76,0x2b,0x78,0xc4,0xdc,0x65,0xd4,0xa5,0xd1,0x29, - 0x16,0xc6,0x84,0xef,0xe5,0xa0,0x02,0x2e,0xf9,0x2b,0x11,0xab,0xe4,0x78,0xa2,0x7a, - 0x7c,0xf1,0x65,0x97,0x9d,0xb0,0x73,0xc4,0xfc,0xc4,0x05,0xee,0x9e,0x84,0x5e,0xea, - 0xbc,0xcf,0xf9,0x7a,0x57,0x5c,0xec,0x11,0x0a,0x97,0x4f,0xcc,0x57,0x9e,0xc5,0xe2, - 0x43,0xe2,0x14,0x12,0xd1,0xeb,0x90,0xd2,0xf5,0xbc,0x5e,0xdd,0x88,0x80,0x20,0x7a, - 0x89,0xcc,0x6e,0x09,0x8c,0xd7,0xa9,0x1b,0x22,0x20,0xf0,0x42,0xe4,0x53,0x24,0xb5, - 0x10,0x95,0x98,0xd9,0x47,0x68,0x4e,0xc7,0x87,0x8b,0x75,0xd9,0x41,0x26,0x8b,0xc5, - 0x74,0xae,0x9e,0x5b,0xd4,0x71,0x05,0xfc,0x1d,0x93,0xf4,0x06,0xf7,0xd4,0xf4,0x2e, - 0x2e,0xad,0x00,0xe0,0xb9,0xb5,0x62,0xd7,0x3b,0x95,0x73,0x2b,0xf2,0x3c,0x72,0x26, - 0x11,0x06,0x14,0x0d,0x2f,0x9d,0x70,0x88,0x05,0xdf,0x1d,0xa4,0x3d,0x29,0x0a,0xd1, - 0x43,0x96,0xd1,0xfb,0x58,0xd4,0x82,0xe2,0x20,0xe3,0xc1,0xfb,0x98,0x7d,0x7e,0x58, - 0xff,0x2f,0xdc,0xf5,0x89,0x93,0xbb,0xed,0xa8,0x14,0xd7,0x18,0xc0,0x0e,0x00,0xb8, - 0x8d,0x29,0x8d,0x77,0xc3,0x8b,0x29,0x87,0x71,0xcc,0x28,0x97,0x75,0x25,0x82,0xc2, - 0xcc,0x47,0x30,0x98,0x11,0x4b,0x6c,0x10,0xd4,0xc0,0xfa,0xb0,0x13,0x6f,0x3c,0xd6, - 0x75,0x88,0xe3,0xb4,0x03,0xe7,0x14,0x4d,0xe3,0x9f,0xab,0xda,0x0a,0x61,0x66,0xf2, - 0x7c,0xf4,0xa8,0x6a,0x66,0x4d,0x4f,0x5b,0xb5,0xad,0x52,0x07,0x8a,0x14,0x9a,0x01, - 0xde,0xbe,0x24,0xfc,0x83,0xdc,0x7b,0x89,0xe8,0xa9,0x9c,0xe3,0xaa,0xcf,0x64,0x1c, - 0x54,0x45,0x9c,0xdc,0x88,0x2f,0xb0,0x56,0xec,0x12,0x60,0xdd,0x50,0x85,0x1e,0xa7, - 0xc2,0x75,0xe4,0xda,0xae,0x23,0x8e,0xbb,0xa9,0x6b,0xf1,0xa2,0xa4,0x77,0x8b,0x19, - 0x95,0x99,0xea,0xd7,0x8d,0x50,0xc0,0xa9,0xa1,0x61,0x88,0x3f,0xba,0x66,0x1f,0x4e, - 0xec,0x1f,0xd0,0xa0,0x57,0xd3,0x3b,0xbe,0xef,0x14,0xb8,0x0a,0xb4,0x4e,0x85,0xc2, - 0x7e,0x1a,0xf8,0x17,0x7a,0x28,0xf2,0xb6,0x9d,0xe6,0xe1,0x87,0x3b,0x7e,0xf8,0xef, - 0xf5,0x32,0xa4,0xdc,0xaf,0x73,0x31,0x64,0x3b,0x10,0x77,0x37,0x83,0xaf,0xc6,0xeb, - 0x4b,0x54,0x4e,0x26,0xe3,0x75,0xae,0x5f,0x54,0xfa,0x13,0xb9,0xc3,0x08,0x85,0x66, - 0x9b,0x91,0xaf,0x9b,0x67,0x3c,0xef,0x4c,0x89,0x9f,0x51,0xbd,0x08,0x95,0xe7,0xb0, - 0xea,0x8a,0x74,0x3b,0x63,0xd0,0x80,0x57,0xbe,0x5f,0x9e,0x88,0x24,0x69,0x75,0xd8, - 0x43,0x9a,0x5e,0xb6,0x27,0x68,0x45,0x5e,0x2b,0x94,0x75,0x8d,0x40,0x6d,0xe0,0x05, - 0xe0,0x8e,0x30,0x39,0xdf,0xb1,0x45,0x8a,0x5b,0x91,0xba,0x0f,0xaa,0x2b,0x5f,0x67, - 0x1d,0x53,0x74,0x7f,0xd0,0xa7,0x07,0x34,0x1e,0x7b,0x93,0xef,0xc1,0x91,0x92,0x2e, - 0xda,0xda,0x1a,0x81,0x57,0xa1,0x7a,0x3a,0x5b,0x11,0xfa,0x0c,0xdc,0xe8,0x4b,0xab, - 0x8b,0x57,0x21,0x34,0xfb,0x43,0xaa,0x2f,0x11,0x40,0xdb,0xf1,0x87,0xc8,0x7e,0x36, - 0xe0,0x49,0xa9,0xac,0x69,0xeb,0x3b,0x3d,0xfc,0x60,0xab,0x55,0xdb,0xc2,0xfe,0x24, - 0x12,0xa8,0x54,0xc2,0x0c,0x3a,0x98,0x58,0x13,0x24,0x1f,0x3f,0x0c,0xc6,0x1f,0x46, - 0xe5,0x9e,0x5e,0x2e,0x4b,0xb6,0x33,0x7e,0x3c,0x2d,0x06,0xc3,0xc4,0x87,0x91,0x0b, - 0xcc,0x69,0x67,0xb7,0xed,0x5e,0x64,0x32,0x4e,0xcd,0x54,0x9e,0x32,0x13,0x7a,0x12, - 0x4b,0x32,0x4f,0x45,0xc2,0x6f,0x6a,0xab,0xbd,0x58,0xcf,0xe2,0x3d,0xef,0xac,0x5c, - 0x08,0xb4,0x58,0x4b,0x8a,0xab,0xfa,0xc1,0x1b,0xf8,0x85,0x72,0xc7,0xea,0x15,0x66, - 0x3a,0x9a,0xcf,0xc0,0x6e,0x3b,0x8b,0x23,0x7a,0x13,0xd6,0x18,0xa8,0x09,0x68,0xaa, - 0x63,0x97,0x81,0xab,0x7c,0x1c,0xad,0x73,0x59,0xa1,0x95,0x12,0xa3,0x57,0x4c,0x45, - 0x15,0x68,0xa8,0xcc,0x72,0xc8,0x26,0xdf,0xc9,0x59,0x45,0x4b,0x36,0x1f,0xcc,0x87, - 0x45,0x46,0xc3,0xd5,0x2c,0x44,0x66,0x42,0x14,0x1e,0x34,0xf9,0x6b,0x30,0x2d,0x72, - 0xda,0x62,0x61,0x0a,0xd7,0xdb,0xee,0x6e,0x2e,0x2a,0x21,0xc8,0x43,0x29,0x22,0x94, - 0x0c,0xa6,0x24,0x0d,0xe7,0x0e,0x2c,0x7c,0x47,0x53,0xf1,0x74,0x33,0xe0,0x93,0x9f, - 0xdc,0x44,0x92,0xd9,0x72,0x62,0xda,0x44,0x6e,0xd2,0x05,0xe6,0xf1,0xf9,0x7c,0x3e, - 0xed,0x6c,0x6d,0xd1,0x3e,0x63,0xda,0x88,0xb7,0xe2,0xae,0x64,0xf6,0x8a,0x23,0x38, - 0x4d,0x3e,0x27,0x6d,0xa8,0xbc,0xa3,0xe4,0x95,0xd7,0xa7,0xcc,0xb9,0x6f,0x0d,0xae, - 0x38,0xf6,0x50,0xc5,0x7f,0x8a,0x15,0x55,0xdd,0xe5,0xa0,0x5b,0xcb,0x87,0xf5,0xca, - 0x4a,0xb9,0x14,0x62,0x98,0xbe,0x58,0xec,0xb6,0xbb,0x4e,0x46,0xbe,0xdb,0x1a,0x86, - 0x49,0x94,0x3c,0x73,0xcf,0x91,0x82,0xdb,0x33,0xc7,0xcd,0xe6,0x9d,0x38,0xc8,0x83, - 0xc4,0x18,0xc6,0xc8,0x12,0xed,0x2d,0x7f,0x4c,0xe3,0x4e,0x7b,0x02,0x61,0x38,0x2b, - 0xd0,0xfb,0xac,0x6f,0x84,0x8b,0x92,0x06,0xc1,0x29,0xad,0xec,0x05,0x02,0x11,0x34, - 0xd9,0x0c,0xb7,0x56,0x9b,0xcb,0x0b,0xdc,0xe4,0x53,0xe8,0xa0,0x61,0x9e,0x76,0xe1, - 0x9b,0x1a,0x50,0x2d,0x71,0x0c,0x9a,0xa4,0xb7,0xab,0x2f,0xde,0x0a,0x4d,0xed,0x1a, - 0x2c,0x1b,0x61,0xbd,0xbc,0xfd,0x95,0x56,0x01,0xb1,0xcf,0x7a,0x91,0xb4,0xd2,0x56, - 0xfc,0xec,0x1d,0x97,0xf8,0x74,0xab,0x47,0x6e,0x2c,0xe2,0xff,0x9e,0x5c,0xd0,0x89, - 0xb0,0xb9,0xef,0x15,0xcd,0x75,0x80,0x9a,0xbb,0xc0,0x19,0x4f,0x25,0x2a,0x6a,0xec, - 0xbf,0x7a,0x89,0x80,0x90,0xf9,0xce,0xa3,0x6e,0xf5,0x4e,0x01,0x19,0x7f,0x80,0x69, - 0xe5,0x51,0x2c,0x51,0x44,0x7e,0xa2,0x49,0xe5,0x0a,0xc1,0xa8,0xe8,0xb5,0xa4,0x4a, - 0x70,0x5c,0xc4,0x98,0x6f,0x9f,0xd1,0xd7,0x1f,0xf0,0xcb,0x8b,0xcf,0x39,0x3d,0x30, - 0xdc,0x60,0x7c,0x36,0x11,0xa0,0x53,0x5c,0xd3,0x81,0x86,0x84,0x7a,0x02,0xa6,0x7f, - 0x95,0x8c,0x38,0x3d,0x4a,0x7e,0x3b,0xdc,0x4f,0x05,0x90,0x3d,0x12,0x00,0xb0,0xc0, - 0xbc,0xa5,0x00,0x37,0x6c,0x7b,0xdf,0x34,0x3d,0xe7,0x56,0x40,0x65,0xbb,0xe0,0x22, - 0xb5,0xf7,0x9d,0x23,0xf9,0x28,0x80,0x23,0xea,0xf5,0xf0,0x03,0x11,0xff,0x5c,0xf4, - 0xa6,0x4c,0xe1,0xdb,0x83,0x77,0xcf,0x7f,0x8d,0xd8,0xd7,0x04,0x1c,0x39,0x0c,0x61, - 0xb7,0x5b,0xce,0xa3,0x13,0x14,0x26,0x79,0xaa,0xe8,0x5b,0x94,0xed,0x35,0x6f,0xdf, - 0xce,0x0b,0xe3,0x3c,0x8f,0x0d,0x4c,0x32,0xd9,0xc9,0xc1,0x27,0x00,0x63,0x24,0xbe, - 0xfa,0x19,0xcd,0x58,0x43,0x5d,0x7e,0x9c,0x91,0xdc,0x01,0x29,0x44,0xbe,0x61,0x7d, - 0xba,0x79,0xf2,0x88,0x2e,0xf7,0x5f,0xe3,0xda,0xc5,0xac,0x49,0x42,0x95,0xa9,0x12, - 0xed,0x02,0x4e,0x29,0xd3,0xac,0xe5,0x16,0xff,0xbc,0xfc,0x64,0x73,0x22,0xb2,0x8c, - 0xb8,0x1a,0x34,0x82,0xec,0xa8,0x2c,0x86,0x97,0x45,0x19,0xe4,0xa7,0x9f,0x69,0x81, - 0xcc,0xfb,0xe2,0x9f,0xc3,0x29,0x5a,0x3e,0x45,0x09,0xab,0xcb,0x98,0x6d,0x55,0x61, - 0xa2,0xb4,0x36,0x2d,0x41,0x43,0x8e,0x74,0x42,0x23,0x6d,0x8c,0x1e,0xcf,0xfa,0x0f, - 0xcb,0xe8,0xf9,0xfe,0xab,0x08,0x1f,0x06,0x25,0xfa,0x40,0xb9,0x5c,0x95,0xe8,0x66, - 0x30,0x9e,0x7f,0x6f,0x6a,0xd4,0xeb,0x23,0xf6,0x28,0xe3,0x00,0x97,0xc6,0x91,0x24, - 0x60,0x25,0x8a,0x12,0x18,0x1f,0xc3,0x3e,0xd7,0x05,0x6d,0x91,0x35,0xdf,0xe4,0x7c, - 0x32,0xad,0xc9,0x62,0x79,0x80,0x25,0x46,0x05,0x87,0xa2,0x37,0x97,0xfc,0x88,0x26, - 0x23,0x3b,0x70,0x04,0x98,0x99,0x7d,0xd6,0xed,0x78,0x6f,0xd6,0x1b,0x59,0xd7,0x71, - 0xa5,0xec,0xde,0xf8,0x40,0x94,0x8e,0x43,0x33,0x78,0x1f,0x9b,0x19,0x62,0x79,0x0c, - 0x46,0xea,0xe2,0x87,0x5c,0xdd,0x49,0x27,0xf4,0xa3,0xb5,0x01,0x27,0x8f,0xc7,0x62, - 0x66,0xb8,0xce,0x19,0x68,0x8c,0xce,0x0a,0x30,0x9c,0x7e,0xaa,0xef,0x51,0xc2,0xce, - 0x32,0x78,0xfb,0x91,0x45,0xc6,0xb3,0x46,0xea,0xe6,0x12,0xd4,0x28,0xee,0x6d,0x31, - 0x33,0x6f,0x4d,0xa8,0xd7,0x6b,0xcb,0xe0,0xd2,0x41,0x1a,0x7e,0x9d,0x52,0xd0,0x0d, - 0x33,0xf8,0x02,0xc9,0x22,0xf1,0xfe,0xb0,0x94,0xa9,0xd9,0x1f,0xf4,0x3e,0x52,0xce, - 0x17,0xd7,0x73,0xd8,0x44,0x6b,0x45,0x90,0x3a,0x9e,0x94,0xb4,0x2c,0x9b,0x72,0x86, - 0x13,0x40,0xfd,0x78,0x31,0x9a,0x1a,0x27,0x6e,0x5a,0x79,0xfa,0x50,0x6a,0x58,0x3b, - 0xc7,0x95,0x71,0x95,0x0b,0x6c,0x93,0x86,0xc6,0xaf,0x93,0xeb,0xa3,0xf1,0x2e,0x0f, - 0x46,0xd2,0xd6,0xa5,0x90,0x9b,0xdc,0x6e,0x3e,0x69,0x6c,0xfa,0x09,0x72,0x59,0x98, - 0x62,0xd6,0x2b,0x0b,0xd0,0xc5,0xa7,0x9b,0x40,0x55,0x43,0x9d,0x76,0xdb,0x71,0x09, - 0x69,0x7f,0x50,0x82,0x18,0xac,0x41,0x51,0x6f,0x3e,0xa7,0xf9,0x9c,0x80,0xe5,0x9b, - 0x0f,0x08,0xf1,0x90,0x1b,0xbb,0xd7,0xc7,0x18,0x35,0x30,0xe8,0xc3,0xfd,0xe2,0xfa, - 0xd6,0x03,0x2d,0x05,0xf4,0x77,0xd8,0xff,0xd7,0xc0,0x46,0x37,0xac,0x35,0xd2,0x3c, - 0x04,0xfc,0x71,0x5a,0x12,0x1c,0xda,0x16,0xca,0x6c,0x72,0x57,0xc1,0x94,0xff,0xe5, - 0xed,0x41,0x00,0x72,0x76,0x56,0xc1,0x20,0x54,0xb7,0x0f,0x05,0x08,0x1c,0x5b,0x86, - 0x93,0x22,0x77,0x47,0x5d,0x6a,0x68,0x2e,0x9b,0x8c,0x6a,0xf2,0x15,0x73,0x82,0xe0, - 0x5e,0x39,0xe5,0xd9,0x42,0xad,0x60,0x00,0x46,0xad,0x71,0x4d,0x53,0x34,0x7c,0x7f, - 0xf5,0xe6,0x5b,0x43,0x22,0x54,0xf3,0xd9,0x41,0x3a,0x66,0xae,0xf3,0x71,0x17,0x81, - 0x9e,0x0e,0x2f,0xfa,0x05,0x67,0x25,0xc9,0x71,0xc0,0xe5,0x0e,0x74,0x78,0x96,0x61, - 0x6e,0xd9,0x9e,0x60,0xfe,0xe2,0xd7,0x41,0x29,0xed,0x36,0x1c,0x5c,0xfa,0x28,0xc2, - 0x7c,0xd0,0x9f,0x9d,0x95,0x41,0x3e,0x6d,0xef,0x80,0xd4,0x62,0x2e,0xe7,0x04,0x32, - 0xa8,0x9d,0xa5,0x40,0x92,0x9b,0x92,0xce,0x1a,0x05,0x65,0xb9,0x97,0x43,0x5a,0xe7, - 0x05,0xfc,0xa6,0x9a,0x2c,0x66,0x7e,0xa8,0x87,0x96,0x86,0xfa,0x71,0x50,0xd6,0xc0, - 0x2b,0x3d,0xbe,0xf7,0x5e,0x4b,0xd1,0xb2,0xd3,0x59,0x97,0xac,0x30,0xa3,0xce,0xba, - 0x0a,0x7a,0x63,0x1e,0x16,0x33,0x6a,0xf5,0xc9,0xc8,0xfc,0x34,0x59,0x35,0xd3,0x84, - 0x88,0xa0,0x29,0xbc,0x5f,0x6b,0x9a,0xf1,0xb9,0x30,0x1a,0xc6,0xdb,0x3a,0xf2,0xd4, - 0x2b,0xb0,0x43,0x22,0xfa,0x31,0xed,0x85,0xb1,0xba,0x58,0x72,0x3d,0x57,0xb4,0x75, - 0xe4,0x9a,0xef,0x4a,0xb2,0xbe,0xde,0x4c,0xc6,0x0b,0x62,0xd8,0x6d,0xc6,0x7e,0x1a, - 0xd5,0xd1,0xac,0xef,0xc5,0x56,0xd0,0xa9,0x8e,0x1b,0x18,0x44,0x65,0x06,0xd0,0xe0, - 0x78,0x36,0xba,0xa1,0xbd,0x61,0x53,0xdf,0x9c,0x1a,0x69,0x92,0x0e,0x62,0x4c,0x50, - 0xba,0x56,0x05,0x28,0x12,0x8e,0x1a,0xe2,0xcc,0x5e,0xba,0xf2,0x0c,0xd1,0xef,0xe6, - 0x45,0x69,0x17,0x2a,0x7e,0x8b,0xe4,0xc3,0x64,0x1c,0x48,0x17,0xba,0x0b,0x96,0xdc, - 0x93,0x79,0x4f,0x3c,0xbc,0x83,0x7c,0xfc,0x42,0xd3,0x26,0x7b,0xd9,0x62,0x26,0x4b, - 0xaa,0x98,0x86,0x62,0x14,0x81,0x8b,0xe5,0x79,0x6a,0x73,0xb2,0xf1,0x81,0x8c,0xb2, - 0xab,0x31,0x84,0x37,0x8c,0x6b,0x81,0x42,0xa9,0x2e,0x96,0x0c,0x09,0xba,0xa1,0xb4, - 0x18,0x4e,0xa8,0xe9,0x4f,0xbd,0x76,0x7c,0xc3,0xca,0x54,0x55,0x4e,0x5b,0x52,0x2d, - 0xb8,0xb6,0xd6,0x2a,0xf0,0xe8,0x86,0xc4,0xfd,0xfe,0xe2,0xa4,0x98,0xf7,0x82,0x4e, - 0x84,0x69,0x9e,0x37,0xd4,0xc2,0x0e,0x9d,0xf0,0x85,0xed,0x62,0x10,0xa1,0x0c,0x7b, - 0xf5,0xfc,0x75,0x6d,0x9e,0xa8,0x37,0x5d,0x91,0x4d,0xfc,0x2f,0x5f,0xa9,0x26,0xf0, - 0xf9,0x5b,0xcd,0x3f,0x99,0xfa,0x45,0x22,0xc1,0xc9,0x2a,0x60,0x86,0x31,0xe8,0x07, - 0x28,0xd1,0xea,0x19,0x74,0x75,0xff,0xb4,0x12,0x22,0x13,0xad,0xfd,0x0c,0x63,0xd9, - 0x4e,0xb1,0x92,0x8f,0xc7,0xb9,0x3b,0x47,0x6b,0xa6,0x08,0x89,0x42,0xe0,0xf9,0xc5, - 0x1c,0x33,0x77,0x2d,0x48,0x94,0x94,0xbd,0x11,0x75,0xe7,0x32,0x52,0x4c,0xa6,0xf9, - 0x75,0x55,0x7b,0x81,0xdf,0x60,0x7d,0x8c,0x9a,0x4d,0xab,0x3f,0x41,0x8f,0x50,0xf7, - 0xd2,0xf1,0xf1,0xc6,0xb1,0x15,0xd1,0x7f,0x79,0xf1,0xdf,0x2c,0xa1,0xeb,0x7d,0x73, - 0xda,0x21,0x20,0xd4,0x70,0x16,0x73,0x64,0x9c,0x31,0xcf,0xd0,0x48,0x89,0x4e,0x8a, - 0x73,0x9a,0xa8,0xe0,0x60,0xac,0x9d,0xd1,0xb6,0x0d,0xb3,0xe9,0xe7,0x85,0xf1,0xf1, - 0xb6,0xb8,0x18,0xcf,0x68,0xe4,0x80,0x28,0x8b,0x08,0x93,0x13,0x7a,0xa5,0xbc,0xa2, - 0x6d,0x4e,0xd4,0x9f,0x1a,0x61,0xa0,0x4a,0x2c,0x68,0x7c,0xcb,0x1d,0xdc,0x05,0xdc, - 0x4c,0x03,0x8f,0xbc,0x36,0xf5,0xb5,0xda,0xf2,0xfb,0x98,0x4d,0xd0,0x02,0x6c,0x19, - 0x04,0x63,0x64,0xbe,0x44,0xe6,0x0b,0x91,0xac,0x2a,0xe2,0x28,0xd9,0x6e,0xb2,0xeb, - 0x40,0x2a,0xd5,0x43,0x72,0x51,0x9e,0xd4,0x90,0xf8,0xdb,0xc1,0x0f,0xc2,0xe4,0xaf, - 0x26,0x12,0xf8,0x2d,0xa1,0xc0,0xfb,0x05,0x44,0xca,0x61,0xae,0x3d,0xe1,0xd7,0x74, - 0x5a,0xbc,0xaa,0x75,0x0d,0x2b,0xd9,0x60,0x7e,0xd1,0xb7,0x1f,0x27,0x63,0xfb,0x91, - 0x5e,0x3e,0x7a,0x5f,0xe5,0x02,0x13,0xf4,0xaf,0x10,0x6e,0x9d,0x29,0x4e,0x3e,0x44, - 0xfc,0x61,0x5b,0x66,0xb3,0xd3,0xa1,0x4a,0x3e,0xe2,0x5e,0xc9,0x13,0xd7,0xd1,0x97, - 0x6c,0x9e,0x52,0x33,0x4d,0x67,0x97,0x8c,0x5c,0x25,0xa1,0xea,0xb2,0x2b,0x65,0xa8, - 0xfa,0x5e,0x74,0x43,0x37,0xb8,0x7d,0x61,0x5f,0xe9,0x23,0x33,0xca,0xaa,0xca,0x78, - 0x56,0xbc,0x8e,0xc4,0xaa,0xb2,0x78,0x01,0x99,0x35,0x14,0xc0,0x15,0x0f,0x52,0xb1, - 0xd5,0x84,0x2d,0x45,0x31,0x86,0x9f,0xf3,0x31,0xec,0xf6,0xf5,0xf3,0x1c,0x7d,0x5b, - 0xad,0x03,0xf0,0x8d,0x0c,0x03,0xf4,0x5b,0x0f,0x23,0x54,0x9d,0xda,0x9d,0xf5,0x10, - 0x89,0xa0,0xea,0x35,0x17,0xf3,0xcf,0xa7,0x9f,0x4f,0x87,0xdc,0x5d,0xe8,0x39,0xe2, - 0x17,0xf0,0xe5,0x14,0xfc,0x49,0xae,0x20,0xd2,0x11,0x6f,0xbc,0xcc,0x55,0x73,0x9e, - 0xf6,0xfa,0x86,0xa1,0x05,0x8d,0x02,0x76,0x57,0x13,0xcd,0x69,0x16,0x2d,0xc9,0xcd, - 0xb5,0x74,0x34,0x5e,0xe9,0x62,0x5b,0x61,0xf2,0x8a,0x07,0xf3,0x2a,0xcc,0x54,0x7f, - 0xdb,0xde,0x79,0x72,0x4d,0xfe,0xeb,0x22,0x9a,0x79,0x4a,0xe8,0x90,0xf1,0x61,0x65, - 0xae,0x29,0x04,0x1f,0x02,0x06,0xc1,0x4d,0x10,0x19,0x88,0x19,0xda,0xad,0x87,0xb4, - 0xf2,0x0f,0xa3,0x6d,0xf2,0xb8,0xe4,0x3c,0x62,0x0e,0xeb,0x8d,0x20,0x9a,0x6c,0x3f, - 0x59,0xec,0xee,0x2c,0xc8,0x35,0xdf,0x45,0x19,0x95,0x43,0x5a,0x7e,0xe9,0xc1,0x2d, - 0xe8,0x0a,0xca,0x88,0xfe,0xe4,0x63,0x30,0x13,0xf2,0x47,0x32,0x54,0x88,0x4a,0x9a, - 0x87,0xc6,0x66,0x72,0x46,0x57,0x8c,0x6e,0xda,0xcd,0xed,0x9d,0x36,0xbc,0x21,0x56, - 0x2d,0x45,0x92,0x23,0x29,0x45,0x60,0x74,0x47,0x58,0x58,0x71,0x71,0x56,0xcc,0x10, - 0xd4,0x30,0x92,0x54,0x72,0xa3,0x5f,0xb5,0xcc,0xc7,0xd3,0x16,0x1f,0x8a,0xb6,0x06, - 0x46,0xc1,0x81,0x96,0xfa,0xcb,0x7e,0xc4,0x89,0x91,0x26,0x3a,0x43,0xaa,0xea,0x56, - 0xd7,0xfd,0x82,0x06,0x9d,0x61,0x0a,0x1e,0x69,0x1a,0x2a,0x0b,0xdb,0x1d,0xf4,0xf3, - 0xa1,0x7e,0x96,0xb6,0x03,0xc1,0x3b,0x15,0xa9,0xe2,0x1b,0xb0,0xb5,0x1a,0x1a,0x0b, - 0x36,0x03,0xe9,0xc6,0xa5,0xf4,0x11,0xc8,0x36,0x13,0xfd,0x72,0x22,0x3e,0xf4,0x71, - 0xf1,0x19,0x7d,0xe0,0xec,0x6c,0x70,0xba,0xd4,0x98,0x23,0x5a,0x2d,0x07,0x2d,0xc2, - 0x53,0xf2,0x86,0x8b,0xc0,0x68,0xd3,0xfc,0x0b,0x76,0x4f,0xd8,0x31,0x58,0xae,0x0c, - 0x87,0xa4,0x51,0xc3,0xcc,0xdb,0x9a,0x8c,0x87,0x20,0xeb,0x39,0x52,0x22,0xa4,0x34, - 0x91,0x12,0x41,0x85,0x30,0x97,0xe3,0xbc,0xb2,0x0c,0x8a,0xd1,0xfd,0xb2,0xcb,0xd2, - 0x57,0x2c,0xde,0x48,0xba,0xcb,0x55,0xb4,0xdb,0x05,0x3a,0x78,0xd2,0x8e,0x72,0x2c, - 0x49,0x55,0xd7,0xe6,0x1d,0x78,0x6b,0x09,0x93,0xf8,0x6a,0xac,0xc3,0x44,0x7b,0xe8, - 0xd9,0x4a,0x3c,0xa3,0x1e,0x86,0x27,0x1c,0x61,0xf2,0x3b,0x01,0x4f,0x99,0x91,0x4f, - 0x1e,0xdd,0x2e,0x01,0x9a,0x42,0x0d,0xbc,0xbc,0xac,0xcf,0x70,0x31,0x66,0xd5,0x45, - 0x5f,0xb2,0x08,0x2c,0x1a,0x4e,0xd3,0xa5,0xd0,0x30,0x3f,0xa5,0x4d,0x5b,0xfd,0x62, - 0x4e,0x6d,0xab,0xaa,0x18,0x03,0xd7,0x1b,0x82,0xd3,0x9f,0x11,0xc9,0x70,0xf6,0x59, - 0xd6,0x7d,0x3b,0xad,0x9e,0x93,0xfc,0x55,0x8d,0x36,0x62,0xdf,0x80,0xbc,0x4e,0x2c, - 0xb0,0xe0,0xcc,0x48,0x5a,0xa3,0xc3,0xef,0xd9,0x80,0xf0,0xc9,0xcc,0x09,0x55,0x3d, - 0xc0,0x75,0x3d,0x82,0x87,0x35,0xce,0x1f,0x21,0x81,0xc8,0x59,0x6c,0x2f,0x6c,0x57, - 0x62,0xbb,0x8c,0x16,0x6b,0xc6,0x32,0x63,0xbd,0x82,0x97,0x08,0x2a,0xcb,0x28,0x59, - 0x44,0x27,0xb8,0xb7,0x5c,0x94,0x22,0x3f,0xb2,0xbb,0x19,0xcd,0xf9,0xf1,0xa2,0x70, - 0x8c,0x9f,0x28,0xf7,0x5f,0x90,0x60,0xe5,0x5f,0xed,0x56,0xfd,0xd3,0x16,0xf7,0x40, - 0x5c,0x9d,0x98,0x39,0xab,0xec,0xf3,0x1f,0xf7,0x23,0xfb,0x41,0xc1,0xed,0x39,0x4a, - 0xe6,0xd9,0x0c,0xba,0x0b,0x97,0x1a,0xdd,0x29,0x4c,0x58,0xa6,0x7c,0xd7,0x9d,0x52, - 0x61,0xa0,0xec,0x1e,0xac,0x60,0x4e,0x30,0x3b,0xb1,0xa5,0x04,0x3f,0x17,0xe8,0x2b, - 0x9c,0x97,0xd5,0xcc,0xaa,0x79,0x8d,0x0f,0xcc,0x3d,0x79,0x1b,0x05,0xe4,0xe5,0xdb, - 0x2c,0x42,0x6c,0x88,0x9e,0x9c,0x6c,0x5d,0x18,0xbf,0xaf,0xdb,0x36,0xb3,0xaa,0x36, - 0x70,0xae,0x45,0xd9,0xcc,0x0d,0x7e,0x8d,0xb3,0x74,0x46,0xe3,0x0c,0xde,0x7d,0x5c, - 0x5d,0x87,0x9f,0x7d,0x5c,0xa2,0x67,0xbc,0x3e,0x50,0xbf,0x89,0x59,0xf4,0x91,0x1a, - 0xf9,0xaa,0xf7,0x59,0x16,0x4b,0xaa,0x83,0xf2,0x44,0x64,0x64,0x02,0x55,0x04,0xa8, - 0xb8,0x12,0xef,0x9d,0x16,0xa2,0x78,0xa1,0x1d,0xba,0x99,0x90,0x72,0xcd,0x49,0xeb, - 0x33,0x1a,0x08,0xc6,0x32,0x30,0xb6,0x11,0x07,0xdb,0x4b,0x03,0x1d,0xa7,0x57,0x80, - 0x0b,0x0f,0xf5,0x4e,0x68,0x03,0xbd,0x0c,0x0d,0xc9,0x45,0x15,0x28,0x22,0xb9,0xe8, - 0x5b,0x08,0xe9,0x6f,0x9d,0x7f,0x84,0x46,0x36,0x58,0x6e,0xc2,0x1c,0x1f,0x79,0x7d, - 0xe2,0xdd,0x3b,0xc0,0x96,0xbe,0x9b,0x92,0x5a,0x24,0x1f,0x4d,0x55,0x70,0xe2,0xba, - 0xb3,0x35,0x87,0xa4,0xda,0xe6,0xa9,0xc6,0x17,0x91,0xbc,0x00,0x3f,0x16,0x27,0xb4, - 0x9f,0x04,0x26,0x35,0xf8,0xc2,0xc6,0x5c,0x06,0x3c,0xf2,0x8f,0x7a,0xe5,0x1c,0xb4, - 0x5d,0x0d,0x70,0xbd,0x8e,0x5d,0xf0,0x93,0xca,0x12,0x0e,0x03,0x67,0x15,0x5b,0xd2, - 0x90,0x26,0xc1,0x34,0xbb,0x60,0x0f,0x46,0x60,0xe2,0x39,0x9f,0x7f,0x0a,0x45,0x34, - 0xde,0xf5,0x8b,0x34,0x8b,0x67,0x66,0x97,0xf9,0xe6,0x79,0x34,0x4e,0x45,0x72,0x2a, - 0xa1,0x4b,0x32,0x67,0x4e,0xba,0x52,0x59,0x33,0x18,0xca,0x16,0x5a,0xb3,0x20,0xcc, - 0x74,0x1f,0xd9,0x39,0x1c,0x70,0x84,0x19,0xc3,0xcb,0x67,0x7b,0xd0,0x7e,0xd5,0x79, - 0xca,0x68,0x0b,0x5d,0x6f,0x30,0xe9,0x53,0x0e,0xf9,0x2e,0xa5,0x8b,0xc2,0xa7,0xbe, - 0x9a,0xaa,0xba,0x7c,0x2b,0x64,0x6e,0xc1,0x93,0xad,0xd5,0x24,0xba,0x75,0xd4,0x68, - 0xce,0x58,0x75,0x2e,0xe9,0x28,0x0d,0x8c,0x56,0x5e,0xea,0x27,0x17,0x5c,0xb6,0x5e, - 0xb0,0x8b,0x1a,0xf4,0x1d,0x2e,0xd2,0x1f,0xe1,0xa4,0x7c,0xe7,0xa8,0x34,0x25,0x70, - 0x79,0x99,0xcd,0x9a,0x6a,0x09,0x8b,0x24,0xc5,0x32,0xb1,0xbe,0xd1,0x7a,0x57,0xbc, - 0x28,0x96,0x13,0xe5,0xbb,0x84,0x1a,0xa7,0xf4,0xe8,0x0c,0x82,0xe4,0xaa,0x7c,0xd7, - 0x4b,0x25,0xa9,0xfa,0x7e,0x72,0x29,0x44,0x43,0xd4,0xab,0xcf,0x3c,0xaf,0xc9,0x6c, - 0x57,0x06,0x5e,0xc0,0x4b,0x77,0x77,0x21,0x2b,0x97,0x45,0xe0,0xae,0xa2,0x07,0xb6, - 0xd9,0x80,0x4d,0xbf,0x90,0x18,0xdd,0x7c,0x62,0x85,0x29,0xcd,0xe9,0x29,0xfd,0x95, - 0x02,0xd0,0x6a,0x75,0xf7,0x73,0x6e,0xa6,0x44,0x8e,0x2f,0xf8,0xe0,0x25,0xe8,0xf0, - 0xcb,0xb8,0x5c,0x7a,0x5e,0x2b,0xa2,0x3a,0x92,0x76,0x9a,0xbb,0xbb,0x4f,0x64,0x7d, - 0xb7,0x64,0x59,0x33,0x4f,0x5d,0xac,0xec,0xde,0xa1,0xe6,0x10,0xc3,0x66,0x53,0x6b, - 0x4d,0xcd,0xc6,0x6f,0xaa,0xfd,0xf1,0x6b,0x3d,0x9f,0x82,0xb4,0xc3,0xb7,0x1a,0x42, - 0x3e,0xc1,0x1a,0x21,0x3e,0x69,0x4a,0x52,0x08,0xa4,0x21,0xb4,0xce,0xf7,0xec,0x13, - 0x1b,0xf9,0xa0,0x1d,0x35,0x71,0x60,0xb4,0xdb,0x61,0xa6,0xfd,0x27,0x6b,0x2f,0x71, - 0x1d,0xe3,0xe5,0xdf,0x22,0x4d,0x88,0xb0,0x74,0xf3,0xcc,0xe6,0xc1,0xb5,0x88,0x7b, - 0x65,0xc1,0x33,0xd6,0xe1,0x7e,0x24,0x2f,0x56,0xdc,0xb9,0x21,0xe1,0x17,0xd2,0xdb, - 0xb6,0x15,0x2b,0xca,0xf1,0x88,0x95,0x18,0xaf,0x7f,0x7d,0x8b,0xb3,0x1f,0x6c,0x22, - 0xe4,0x34,0xdc,0x9a,0x81,0x87,0x2d,0x23,0x99,0x5a,0x70,0x4b,0x72,0x31,0xa6,0xdd, - 0x94,0x66,0xaf,0x12,0x2c,0x6d,0x56,0x2b,0x85,0x01,0x80,0x5f,0x55,0xcc,0x84,0x38, - 0x05,0xaa,0x35,0x2d,0x3f,0x85,0x90,0x18,0xc6,0x4d,0x31,0x11,0x41,0x6b,0x79,0x58, - 0x59,0x5e,0x99,0x83,0x8b,0x41,0x1e,0x4d,0xf7,0x80,0x65,0x26,0x53,0x58,0x9d,0xd8, - 0xc4,0x0c,0xc9,0x42,0x06,0x12,0xe4,0xaf,0x90,0x99,0x2e,0x46,0x95,0xe8,0x79,0x42, - 0x4b,0x28,0x8c,0xc5,0x18,0xb0,0xf4,0xb3,0xa1,0x65,0x55,0xf3,0x26,0xdf,0xc1,0x6d, - 0xcc,0x2b,0x2b,0xaa,0x8b,0xc5,0xa2,0xa2,0x87,0x68,0x11,0x71,0x63,0x36,0xa1,0xd1, - 0x31,0x5a,0x9e,0x14,0x4e,0x66,0x83,0xfe,0xc7,0x42,0x57,0x13,0x2e,0x68,0x36,0xe8, - 0x0d,0x75,0x12,0x92,0xcf,0xab,0x72,0x95,0xd4,0x03,0x4e,0x45,0xac,0xd3,0xb9,0xa0, - 0x30,0x59,0x58,0x72,0x1c,0x98,0x59,0x68,0x76,0x4d,0x46,0xb9,0x5e,0xce,0x93,0xde, - 0x05,0x9f,0x8b,0x0a,0x6c,0x29,0x65,0x22,0x91,0x26,0x30,0x5e,0xb7,0x5d,0x60,0xdd, - 0x99,0x28,0x34,0x58,0xc1,0x69,0x01,0x9c,0x69,0x28,0x0b,0xa9,0x09,0x3e,0x18,0xc9, - 0xc5,0x23,0x6c,0x58,0xf4,0xae,0x83,0x52,0x7c,0x45,0x1d,0x33,0xd2,0x8f,0x44,0xf5, - 0xd5,0xac,0x07,0x8b,0xf5,0x05,0xa6,0x5a,0xaf,0xd6,0x05,0x99,0xf6,0xcd,0x6d,0x29, - 0xa6,0x1f,0x69,0x72,0xdb,0x53,0x42,0xfd,0xf0,0xe6,0xf9,0xbb,0x1f,0xad,0x2a,0xca, - 0x44,0xfb,0x29,0x46,0x76,0x17,0x5c,0x93,0xf4,0xd3,0x0c,0x7e,0xc0,0xa9,0x9a,0x90, - 0x0d,0x2f,0x86,0x70,0x43,0xbf,0x6e,0x6b,0x8c,0xbc,0xf3,0x65,0x74,0xf3,0x95,0xe8, - 0x0e,0x57,0xa0,0x3b,0xeb,0x89,0x5b,0x58,0xce,0xd4,0x1b,0x1b,0x6b,0x43,0x9c,0x1d, - 0x42,0xb4,0x27,0xed,0xae,0xb1,0x2e,0x9c,0x0c,0x59,0xa1,0x67,0xb3,0xb3,0xa6,0x28, - 0xc0,0x41,0x82,0x96,0xa0,0x69,0x12,0x80,0x8b,0x04,0x73,0xc7,0x3e,0xef,0x9a,0xdb, - 0xed,0x8c,0xfa,0x3e,0xf6,0x75,0x80,0x3f,0x1f,0xd0,0x0c,0xb2,0xe3,0x21,0x41,0xa2, - 0x22,0x19,0xd7,0xe0,0xe8,0x9d,0xe0,0x18,0x59,0x0a,0xcb,0x22,0x12,0x9b,0x23,0xda, - 0x89,0x33,0x16,0xd7,0x9d,0x88,0xac,0x06,0x3f,0xf7,0xca,0x04,0xb2,0xab,0x1a,0x19, - 0xc1,0x9c,0x8c,0x3f,0xec,0x8f,0xfa,0x65,0x8b,0x8f,0xa9,0xde,0x9c,0x09,0xc4,0xb3, - 0xdc,0x35,0x21,0xa2,0xe9,0xee,0x07,0x85,0x23,0x27,0xd0,0x73,0x74,0xeb,0xf4,0x46, - 0x7d,0x08,0x5c,0x50,0xc6,0x33,0x98,0xea,0x89,0x2b,0x01,0xd8,0x41,0xd1,0x47,0x06, - 0xca,0xf1,0x97,0xe3,0xaf,0x02,0x98,0x5f,0x9e,0x92,0xa3,0xe5,0x7a,0xd7,0x90,0x41, - 0x18,0x8a,0x8b,0xda,0x38,0x14,0x1e,0x29,0xa5,0x90,0xff,0xe1,0x94,0x5e,0x84,0xaa, - 0xc6,0x76,0x4d,0x1c,0x68,0x35,0xa7,0xc8,0xd4,0x79,0x77,0x42,0x31,0x36,0xbe,0x4d, - 0x34,0x43,0xb6,0x03,0x53,0x07,0xcf,0x3c,0xd1,0x65,0x4c,0x7e,0xe9,0x5c,0x59,0x51, - 0xf3,0xca,0x1f,0xa8,0x07,0x14,0xbd,0x31,0xfb,0x3b,0x1b,0xb4,0xa0,0x7f,0x9f,0x93, - 0xb3,0x93,0xc8,0xf9,0xb7,0xb5,0x85,0xb9,0x80,0xa7,0x6f,0x74,0x19,0x59,0x9b,0x07, - 0x25,0x26,0xdb,0x02,0x67,0x89,0x2c,0x35,0x74,0x23,0x76,0xa7,0xca,0xce,0x20,0x80, - 0xa4,0xbf,0xc1,0x9e,0xc3,0xb5,0x86,0x61,0x44,0xdc,0xe0,0xa3,0x5e,0x1c,0xbb,0xce, - 0x6d,0xa4,0xb2,0xfc,0xfd,0xd2,0x70,0x7a,0x1f,0x23,0x82,0x9c,0x01,0x7d,0x47,0xb6, - 0x46,0xb3,0x6b,0x32,0x72,0xb9,0x76,0x83,0xf3,0x5f,0x19,0xab,0x22,0xfe,0x9e,0xf2, - 0xdf,0xd5,0x81,0x32,0xab,0xbe,0xb4,0x3c,0x70,0x53,0x53,0xce,0x7c,0x25,0x49,0xf3, - 0x90,0xa4,0x39,0x93,0x34,0x27,0x92,0xe6,0xb5,0x24,0xf1,0xf7,0x74,0xfe,0xe5,0x24, - 0xcd,0x2d,0x49,0xd6,0x88,0xe5,0xe0,0xd5,0x9b,0x43,0x9e,0x86,0xcc,0xc5,0x8d,0xcc, - 0x3c,0xa8,0x64,0x20,0x42,0x06,0x25,0x9f,0x5e,0x94,0xa4,0xf9,0x55,0x99,0xf7,0x9c, - 0x36,0x86,0x10,0xf2,0x75,0x67,0xc4,0x2b,0xaf,0xf9,0x86,0x37,0xd6,0x2a,0x3c,0x7e, - 0xbc,0xfb,0xb8,0x1b,0xb5,0x21,0xce,0x97,0x11,0x05,0xe4,0x8d,0xfc,0xa3,0x11,0x4a, - 0x9e,0xc9,0xae,0x59,0x1f,0x15,0x9d,0xdd,0xb3,0xeb,0xa3,0x7c,0x98,0x13,0x7e,0xcc, - 0x02,0xfc,0x1b,0x25,0x2a,0x39,0x44,0x27,0x24,0x0b,0x90,0x16,0x40,0x25,0xf1,0x54, - 0xa1,0x69,0xf7,0x60,0x29,0xe7,0x57,0x9e,0x30,0x86,0x34,0xa0,0xb3,0xa8,0x68,0x91, - 0x19,0xde,0x0d,0xb6,0x20,0xb7,0x5b,0x37,0x62,0x5f,0x43,0x0f,0xb0,0x25,0x30,0xf4, - 0xd1,0xd2,0x43,0xea,0x60,0x5e,0xcc,0xfe,0xf3,0xf7,0xc3,0x48,0x5f,0x71,0xd4,0x20, - 0x6b,0x63,0x19,0xbd,0xe8,0xef,0x3c,0x7e,0xbc,0xfd,0x67,0xfa,0x86,0xf0,0x91,0x64, - 0x77,0x3e,0xfe,0x64,0x24,0x31,0x41,0xa1,0x8b,0x7e,0x6c,0xd6,0x4e,0x60,0xc7,0x62, - 0xad,0x02,0x65,0x07,0x21,0x50,0x32,0x3e,0x38,0xce,0x22,0x3e,0x05,0xdb,0x3f,0xf8, - 0x2b,0xc9,0x53,0xbc,0x81,0x2a,0xb7,0x68,0x3e,0x7c,0xec,0x1f,0x60,0x1c,0xfe,0xf7, - 0xdb,0x17,0x07,0x79,0x0c,0x5d,0x30,0xd5,0x75,0x4a,0xfb,0x9e,0x22,0x9b,0x5f,0xcf, - 0x3f,0xc0,0x60,0x8f,0x8a,0xc8,0x44,0xbc,0xce,0x3e,0xce,0xa6,0x1f,0x28,0x99,0x7f, - 0xd1,0xe7,0xb2,0x1e,0x15,0xf1,0x01,0xb9,0xb0,0x99,0xa2,0x99,0xa1,0x77,0x5a,0x64, - 0xa2,0xdc,0xe8,0x11,0x38,0xed,0x46,0xe6,0xa4,0x85,0xce,0x68,0x59,0xfb,0x20,0xdc, - 0x8a,0x9d,0x21,0x6e,0x4b,0xdf,0x7f,0xf3,0xeb,0xdb,0xe7,0xaf,0x5f,0xbe,0x79,0xad, - 0xb6,0x4e,0xc1,0xa9,0x8c,0x1e,0x3b,0xaf,0x3a,0x8a,0xa9,0xb7,0xfe,0x38,0x97,0x03, - 0xd0,0xfb,0x1b,0x70,0xfc,0x8b,0xd6,0x1a,0x35,0x36,0x24,0xfc,0x14,0xe0,0x25,0x47, - 0x44,0x53,0xa3,0xbf,0xd6,0xc9,0xaa,0x8c,0x4a,0xbd,0x3b,0x87,0xbe,0xc6,0xdb,0x9b, - 0x33,0xb1,0xee,0xd2,0xc3,0x32,0x1a,0x6e,0x4c,0x00,0xa0,0x3c,0xcd,0x18,0x54,0x9f, - 0xa8,0x6d,0x87,0xe6,0x3f,0xf0,0x99,0x34,0xa8,0x11,0xa0,0x25,0xdf,0x60,0xc4,0x19, - 0xf8,0x24,0x83,0x84,0x39,0x85,0xe8,0x44,0xf2,0xc1,0xcb,0x7d,0x36,0x81,0xbe,0x53, - 0x49,0x28,0x64,0x73,0x67,0x51,0x39,0x26,0x1c,0x8a,0x06,0x35,0x8a,0xe4,0x4b,0xa4, - 0x9f,0x90,0x93,0x68,0xc7,0x5e,0xc0,0x82,0x99,0xf1,0xa2,0x87,0xa2,0xea,0x7d,0x11, - 0xe6,0x5b,0x83,0x29,0xce,0x44,0x04,0x11,0x75,0xdc,0x4a,0xe7,0x64,0x89,0x05,0x3d, - 0xe8,0xaf,0xe8,0xc0,0xf8,0x65,0x8b,0x84,0xc1,0xb5,0x8e,0x65,0xff,0xcc,0x5c,0x51, - 0x6b,0x66,0xe2,0x10,0x40,0x04,0x3f,0x9e,0xf4,0xa4,0x15,0xcf,0x1d,0xa3,0x65,0xce, - 0x64,0x50,0x61,0x88,0x40,0x8f,0x69,0x0a,0x50,0x2b,0x2e,0xd1,0x8a,0x9b,0x82,0xf6, - 0x01,0xb8,0xbe,0x24,0xe4,0x61,0x81,0xd1,0x9e,0x5e,0x4b,0x31,0xba,0xbf,0xc6,0x00, - 0xad,0xc3,0x50,0x29,0x6d,0x06,0x63,0x66,0xe7,0x84,0x36,0xf0,0xe3,0x10,0x56,0x74, - 0xdf,0x62,0x4c,0x4d,0x6e,0x65,0x46,0x1a,0x4a,0x37,0x3c,0x5d,0x37,0xfd,0x66,0xc4, - 0x64,0xbc,0xbb,0xa0,0xb5,0x4c,0xf5,0xd7,0xba,0x42,0x4e,0xc6,0x6b,0xa8,0xe0,0x21, - 0x0c,0xd5,0x3c,0x7e,0x57,0xc1,0x45,0x06,0x2e,0x52,0x40,0xdb,0x68,0x4c,0x5e,0xef, - 0xca,0x61,0x89,0x91,0x8c,0x4b,0xed,0x28,0xfa,0xce,0x78,0xf4,0xab,0xf2,0xac,0x13, - 0x69,0xc2,0x53,0x34,0x79,0x73,0x32,0x63,0xcf,0x01,0xcf,0xa2,0xa7,0x50,0xcc,0x3e, - 0x8b,0x9d,0x43,0x38,0xcb,0x66,0x97,0xbf,0x9a,0xbd,0x2d,0xa0,0x6c,0xf2,0xaa,0xdd, - 0x04,0xc7,0x6f,0xd0,0x5f,0xc2,0x78,0x10,0xe6,0x2f,0x32,0x8b,0x1a,0x42,0x00,0xa9, - 0x7d,0xc4,0x98,0xd2,0x64,0x15,0xad,0xdc,0x43,0x8a,0x51,0x31,0xfb,0x88,0xc3,0x30, - 0xd5,0xa0,0x4d,0xc6,0x5b,0x22,0xcf,0x86,0x96,0x95,0x18,0xa2,0xbc,0xd5,0x05,0xea, - 0xc0,0x98,0x12,0xcf,0x83,0xb1,0x38,0xa6,0xd7,0x63,0x96,0xb5,0x36,0x7a,0x83,0x92, - 0x1d,0xa5,0xba,0x47,0xf8,0x64,0x3f,0xa0,0x27,0xf7,0xb2,0xe7,0xd2,0x49,0xc3,0x98, - 0x31,0x44,0xc9,0x4f,0x18,0xc3,0xd5,0xe1,0x73,0x47,0xd6,0xce,0xef,0xdb,0xdf,0xb7, - 0x53,0x7b,0x94,0xaf,0x68,0xf0,0x58,0x87,0xc5,0xda,0x32,0x8a,0x36,0x0c,0xa3,0x00, - 0x62,0x83,0x6c,0xbd,0x44,0x59,0x0a,0xbe,0x1c,0xee,0xbf,0xb5,0xbc,0xa5,0x25,0x59, - 0x6d,0x52,0xbf,0xde,0x5e,0xf5,0x0b,0x4d,0x46,0xc3,0x6a,0xa7,0x6b,0xcd,0x93,0xfa, - 0x35,0x8a,0xd6,0x3b,0x8d,0x93,0xee,0x9f,0x49,0x6d,0x94,0xd6,0x66,0xb3,0xc6,0x92, - 0xee,0x5c,0x86,0xc4,0xc9,0xac,0x57,0x99,0x4e,0x8a,0x93,0x9c,0xda,0xda,0x85,0xe6, - 0x96,0x41,0x4e,0xff,0x74,0x37,0x33,0x4a,0x80,0xdb,0x15,0xa8,0xc6,0xd8,0x90,0x0e, - 0xab,0xb5,0x51,0x0e,0x9e,0x41,0xae,0xae,0x7c,0x76,0xfd,0xad,0x47,0x40,0x1d,0xca, - 0xe8,0x48,0xb5,0x3a,0xb0,0x69,0x91,0x94,0x28,0xa1,0xe7,0xa6,0xd9,0xfc,0x3b,0x39, - 0xbf,0xc2,0x9c,0xe5,0xab,0xcd,0x51,0x36,0x8e,0x6b,0x64,0x90,0xff,0x2b,0x1a,0x73, - 0xfc,0x7f,0xc6,0x1c,0xa1,0x65,0x84,0x2b,0x0a,0x4d,0x67,0x83,0x4b,0xcc,0x7a,0x2a, - 0x10,0xaa,0x15,0xc6,0x4a,0x1b,0x90,0xa8,0xde,0x50,0x62,0xbd,0x6d,0x48,0xb4,0xde, - 0x36,0xe4,0x0b,0x6d,0x2c,0xa2,0x7f,0xdd,0xc6,0x22,0xfa,0x0a,0x1b,0x0b,0x45,0xb0, - 0xe6,0x40,0xff,0xeb,0x4c,0x2d,0xb4,0xfa,0x77,0x5b,0x5a,0x7c,0xbd,0x2a,0xea,0x8b, - 0xf5,0x4e,0xa1,0x85,0xc7,0xbe,0x35,0x25,0xa4,0xb2,0xec,0xec,0xfc,0xf5,0x87,0x74, - 0x75,0x07,0x80,0xa1,0x31,0x76,0x62,0x1e,0x74,0x52,0x14,0xeb,0xc2,0x9a,0x93,0x04, - 0x1d,0x3f,0xb3,0xc9,0x5c,0x0e,0x9d,0xec,0xf8,0xd4,0xa4,0x28,0x69,0xab,0xa5,0x90, - 0x51,0x8d,0x62,0x59,0xd5,0x8d,0xb1,0xa0,0x6c,0x2f,0xfe,0x4c,0x67,0xe0,0xdf,0xb7, - 0x17,0x3b,0xdf,0x19,0xe9,0xc8,0x1a,0x8f,0x9a,0x61,0x62,0xad,0x4d,0xdd,0x63,0xe7, - 0xc0,0x96,0xd6,0x42,0x85,0x66,0xa4,0x28,0xc5,0x14,0xf9,0x65,0x16,0xb2,0x96,0x9c, - 0xd0,0x28,0x76,0xc9,0xfe,0x35,0xe4,0xce,0x5d,0x07,0xff,0x0c,0xcf,0x67,0xff,0x10, - 0xc6,0x56,0x5a,0x85,0xdc,0xff,0x1c,0x3e,0xba,0xfb,0x1c,0xfe,0x8e,0xe3,0x68,0xe5, - 0x1a,0x31,0xc2,0x1c,0xa9,0x63,0xf6,0x59,0x73,0x80,0x1f,0x76,0x33,0x73,0x70,0xbf, - 0x60,0xc3,0xf0,0x7f,0xef,0x31,0x76,0x70,0xd4,0x1c,0x25,0xf4,0xd8,0x84,0x7e,0x64, - 0x3a,0xad,0xef,0xb1,0xbe,0x3a,0x94,0x48,0x7a,0x59,0x56,0xeb,0x66,0x62,0x5d,0x5a, - 0xe1,0x16,0xdc,0x84,0xef,0xf2,0xb1,0xe3,0x93,0x57,0x40,0x2e,0x8e,0x4f,0x38,0xf8, - 0xb1,0xe6,0x88,0x6f,0x3d,0x5c,0x14,0x65,0xab,0xd4,0xeb,0x95,0x21,0xea,0xd4,0xa0, - 0x56,0x7b,0xcc,0x3a,0x47,0x1f,0xea,0xf0,0xd8,0x3a,0x5f,0x20,0xc7,0xcb,0x09,0xf9, - 0xfd,0x18,0xe1,0x11,0xe7,0x42,0x0b,0x3d,0x8a,0x5a,0x98,0xd1,0xf9,0xde,0x9c,0xa2, - 0x57,0xbe,0x3a,0x8e,0xda,0xc7,0xa9,0x75,0x80,0xcf,0xd6,0x7b,0xf9,0xb2,0x00,0x61, - 0x7c,0xac,0x2c,0xc5,0xff,0x54,0xea,0xd6,0xf8,0x95,0x4b,0xc4,0x5b,0x48,0x62,0xa6, - 0x85,0x85,0x39,0x1a,0x5f,0x18,0x17,0x23,0xec,0x5c,0x44,0x3a,0x17,0xff,0x94,0x0b, - 0xa3,0x78,0xc0,0xe9,0xc1,0x82,0xcf,0x3f,0x16,0x7a,0x00,0xb4,0x10,0xf7,0x23,0xe2, - 0x78,0x84,0xce,0xec,0xd2,0xb0,0x56,0x55,0x75,0x93,0xf7,0xe6,0xec,0x2d,0xdd,0x63, - 0x3e,0xd0,0x7b,0x75,0x20,0x96,0xee,0xa5,0xdf,0x78,0xb5,0xdf,0x40,0xa5,0xc5,0x39, - 0xd6,0x27,0x61,0x85,0x32,0x16,0x1f,0x54,0x0d,0x48,0x0d,0x94,0xdf,0xb0,0xc6,0xb6, - 0xd3,0xdc,0xce,0xe6,0x27,0xc3,0x0e,0x39,0xdd,0x82,0x98,0x24,0xbf,0xd7,0x48,0xed, - 0xcf,0x68,0x1e,0xe8,0xc4,0x71,0x56,0x5e,0x7c,0x44,0x32,0x6d,0x36,0x91,0x8c,0x18, - 0x2d,0x1d,0xb9,0x0f,0x8c,0x7d,0xd9,0xd8,0x3c,0xd3,0x90,0x93,0xa7,0x5b,0xbf,0x8b, - 0x1d,0x82,0x51,0xaa,0xa5,0xe5,0x11,0xc5,0x7e,0x40,0x8f,0x4c,0x27,0xcb,0x2a,0xe7, - 0x33,0x99,0x6d,0x89,0xcc,0x78,0xa4,0x3a,0x36,0x37,0xe7,0x3b,0x46,0x0d,0x6a,0xd5, - 0xcc,0x79,0x5e,0xa1,0xd2,0xbe,0x85,0x8f,0x54,0x11,0x69,0xf9,0xaa,0x93,0xe6,0x61, - 0x57,0xd4,0xeb,0x92,0x49,0x05,0xb2,0x57,0xa3,0xe6,0xea,0x54,0x97,0xfb,0x52,0xdb, - 0x5b,0xaa,0x4e,0x5e,0xdf,0x41,0x80,0x97,0xda,0xb5,0xcc,0x3f,0x1d,0xed,0xc2,0xe7, - 0xd5,0x4d,0xdc,0xc0,0x53,0x23,0xbe,0x8d,0xcd,0xdd,0x4a,0x6a,0xa2,0x9d,0x63,0xba, - 0xad,0xbb,0x93,0xce,0xa5,0x85,0x64,0x03,0x04,0x38,0x9a,0x9c,0x3e,0x1d,0x6d,0x1f, - 0x1f,0xa7,0x2e,0xdc,0xb6,0x85,0x2b,0x15,0x8e,0xf0,0x45,0x31,0xc3,0x36,0x50,0x18, - 0x32,0xdc,0xd6,0xb8,0xf1,0x22,0x7a,0xbc,0x32,0x82,0x5b,0xe8,0xd8,0x02,0xe8,0xcd, - 0xf8,0x3a,0x47,0x5f,0x40,0xeb,0x94,0x1d,0xe6,0x8f,0x2c,0x02,0x4d,0xa1,0x03,0xfb, - 0xed,0xdd,0x6e,0x14,0xf8,0xf9,0xba,0x8d,0x99,0xc0,0xca,0xe3,0xd0,0x98,0x3c,0x0e, - 0x8d,0x5d,0x8f,0x43,0x63,0xf6,0x38,0xa4,0x5a,0xe9,0x65,0xc6,0x9e,0xf1,0xc8,0xb3, - 0x8d,0x45,0xc1,0x12,0x89,0x07,0xd4,0xfe,0xaa,0x67,0xd5,0x9b,0xda,0x7e,0x75,0xc5, - 0x39,0xd1,0xb8,0x11,0xb7,0xe2,0x06,0x32,0x64,0xea,0x84,0x88,0x92,0x22,0x24,0x81, - 0xd5,0x41,0x15,0xc3,0x3c,0x80,0xac,0xcf,0xa7,0x41,0x37,0xa4,0xc7,0xe5,0xf3,0xae, - 0xed,0x98,0xda,0x2d,0x1d,0x07,0xee,0x41,0xb0,0xa1,0xc1,0x0b,0x72,0x43,0x9f,0xd0, - 0x60,0x34,0x5d,0x66,0x94,0xd3,0x73,0x8b,0x1d,0xe5,0xd1,0x04,0xe3,0x78,0x20,0x4a, - 0xde,0x5f,0x35,0x68,0x70,0x9b,0xb8,0xa9,0xc2,0x87,0x11,0x11,0x40,0x95,0x57,0x85, - 0x7d,0x6a,0xe7,0x4c,0xa4,0x84,0x01,0xb0,0x3c,0x07,0xf1,0x58,0x24,0x6f,0x53,0x58, - 0xa9,0xd0,0xc1,0x10,0x55,0xd9,0x28,0x7d,0xc5,0xde,0x0c,0xcd,0x64,0xf1,0x87,0xcc, - 0x8d,0xd8,0x12,0xb3,0x02,0x55,0x1c,0x95,0x72,0xda,0xce,0x31,0x38,0xf7,0x92,0x3b, - 0xbb,0xa8,0x21,0x30,0xf9,0x1d,0x47,0x31,0x06,0x9d,0x75,0xef,0x28,0xde,0x26,0xf4, - 0x3b,0xf4,0xff,0x2e,0xfd,0xff,0x88,0xfe,0x7f,0x4c,0xff,0x3f,0x89,0x33,0x44,0x33, - 0x40,0x78,0x01,0x44,0x43,0x88,0xb7,0xdb,0xf8,0x03,0xc8,0x6d,0x80,0x6e,0xef,0xc6, - 0xc7,0x1d,0x2e,0xd1,0xce,0xf6,0x3a,0x46,0x97,0x3c,0xf0,0xe3,0xab,0xfa,0x71,0x12, - 0x37,0x57,0x42,0x63,0x49,0xae,0xf7,0xa5,0x47,0xd1,0x8b,0xd6,0x57,0xd3,0x69,0x1c, - 0xdb,0x47,0x55,0x8f,0x2f,0xe2,0xd4,0x94,0x6a,0xfb,0xf5,0x1f,0x54,0xc6,0x1f,0x4f, - 0xfd,0x93,0x5e,0x2d,0xed,0x0f,0x94,0x66,0x5c,0xef,0xf8,0x10,0x47,0x7f,0x88,0xcf, - 0xac,0x13,0xe1,0x3a,0x15,0xb5,0xb9,0x59,0x9d,0xe2,0x9c,0x60,0x3a,0x57,0x82,0x4e, - 0x8e,0x1e,0x1d,0xef,0xe1,0x4f,0x1d,0x11,0x2e,0xef,0xc3,0xbe,0x46,0x8e,0x97,0x68, - 0xda,0x2c,0x33,0xa8,0xe8,0x84,0x0a,0x68,0xc8,0xf8,0x4a,0x3d,0xf4,0x42,0x4d,0x7a, - 0x51,0x6d,0x7f,0x6f,0xfe,0x62,0xdc,0xcf,0x29,0xa1,0x72,0xf9,0x3b,0x6d,0xe0,0x4d, - 0x2c,0xe4,0x7f,0xe6,0x20,0x7c,0xcf,0x9c,0xef,0x92,0xd2,0xd4,0xeb,0xd0,0x7d,0x1b, - 0x42,0xe8,0x94,0xb6,0xd7,0x73,0x0d,0xe8,0x0a,0x67,0xa6,0x97,0x28,0xa3,0x2f,0x47, - 0x57,0xaf,0xa9,0x1f,0xe6,0x44,0x52,0xb7,0xef,0xdd,0x41,0xc7,0x73,0x77,0x03,0xd8, - 0x71,0xdc,0x3e,0x26,0x47,0x1e,0x24,0xbe,0x24,0x7d,0xca,0xc7,0xfe,0x4b,0x12,0xa6, - 0x04,0x69,0x7c,0xd5,0x58,0x9d,0xa6,0x3d,0xa2,0x5d,0x28,0xbe,0xc8,0x4d,0x62,0xc9, - 0x83,0x77,0xd6,0x76,0xf3,0xab,0xf4,0x6b,0xae,0x5b,0xea,0xd5,0x6d,0xa9,0x26,0x55, - 0x27,0xee,0x87,0x5c,0xfc,0x0b,0x8d,0xa9,0xf4,0x46,0x2a,0xa9,0x4c,0x8d,0x3f,0xf2, - 0x15,0x1d,0xaa,0x98,0xe6,0xf2,0xf3,0xb0,0x52,0x9a,0x72,0xb9,0x9c,0xf6,0x3d,0xf1, - 0xc7,0x98,0x36,0x0e,0xe6,0x30,0x48,0x6f,0xa1,0x4d,0xd0,0x7e,0x48,0xfa,0xa1,0x07, - 0x18,0xea,0xc1,0x55,0xd6,0xc1,0x98,0xbd,0x17,0xd3,0x88,0xf5,0x22,0x4a,0x5b,0x58, - 0x6a,0xd9,0x8a,0xae,0xf2,0x73,0x09,0xdb,0x12,0x3a,0x44,0xe0,0x93,0x96,0xb8,0x41, - 0xab,0xf4,0x6c,0xfe,0x57,0x40,0xa5,0xdd,0x00,0xcc,0x13,0xf5,0x4c,0x44,0xee,0x44, - 0xcf,0x7d,0x25,0x71,0x83,0x26,0xa5,0xcb,0xbd,0xf7,0xfd,0xc6,0xfb,0x96,0xfe,0x71, - 0xdc,0x5e,0x9d,0x5d,0x31,0xd4,0x1e,0xb2,0xf2,0xcd,0x31,0xbd,0x86,0x05,0xe5,0x12, - 0xee,0x72,0xd9,0x1b,0x61,0xd6,0xe3,0x23,0x32,0x42,0xfc,0xc7,0xf4,0xc0,0xb7,0x98, - 0xe2,0x65,0xfa,0x0f,0xd4,0xcf,0x11,0xce,0xde,0x20,0xc4,0xc3,0xc8,0x1b,0x87,0x00, - 0x53,0xac,0x3a,0x06,0xad,0xb9,0xed,0x25,0x2e,0x4d,0x45,0xe9,0x1e,0x37,0x36,0xe2, - 0xf7,0xf6,0xba,0xdc,0x53,0xb2,0x10,0x7e,0x66,0xfc,0x2c,0xbd,0x37,0xea,0xa6,0xf7, - 0x71,0x8b,0x9e,0x9f,0x36,0x23,0x2e,0x9b,0x3e,0x4a,0x03,0x96,0x7a,0x04,0xf0,0xf1, - 0x62,0x80,0xf3,0x24,0x38,0xd6,0x2a,0x5b,0xe2,0x99,0x2d,0x20,0xee,0x10,0x97,0x8f, - 0x71,0x66,0x64,0xae,0xb1,0x95,0x17,0xa3,0x11,0x29,0xf6,0xe4,0x38,0xcf,0x9c,0x54, - 0x70,0x91,0x24,0xfc,0x00,0x2b,0x56,0x2f,0xdc,0xca,0x05,0xb6,0xa0,0x6b,0xfd,0x4c, - 0x58,0xac,0x07,0xfc,0x92,0x7b,0xc3,0xa1,0x51,0xd8,0x6e,0x6e,0x2e,0xc9,0xd1,0x37, - 0x46,0xba,0x6e,0x41,0x0a,0x4b,0xe9,0x81,0x4e,0x11,0x12,0x73,0x7e,0x75,0x6c,0xa3, - 0x46,0x6a,0x9f,0xb5,0xed,0x8d,0x53,0x87,0x38,0x13,0x40,0x37,0x99,0x18,0x1a,0x67, - 0x1b,0xd0,0x06,0x47,0x5b,0x66,0x63,0xea,0xff,0x53,0xc5,0xb3,0xa7,0x06,0x7e,0x3f, - 0x06,0x9f,0xb1,0xd0,0x62,0x5e,0x7d,0x16,0x85,0xff,0xa0,0x5e,0x8b,0x7a,0xba,0x83, - 0x11,0xe8,0xb2,0x82,0x7e,0xca,0x97,0x80,0x6d,0x2e,0x71,0xdd,0x53,0x07,0xef,0xec, - 0xd3,0x23,0xd9,0xc3,0x00,0xde,0x18,0xec,0x96,0x0a,0x17,0xaa,0x84,0x15,0x2e,0xd4, - 0xec,0x2a,0xea,0x24,0x64,0xeb,0x9e,0x51,0x66,0x47,0x35,0xff,0xa0,0xce,0x8e,0xcc, - 0xe7,0x50,0xb3,0x4a,0xd8,0x3a,0x1b,0xe6,0x6c,0x20,0xda,0xb2,0x4e,0x02,0x34,0x2f, - 0x5f,0x81,0xe0,0xe8,0xd6,0x24,0xa9,0xbf,0x1f,0x0b,0x16,0x02,0xb4,0xe7,0xa1,0x02, - 0x17,0x1e,0x87,0x12,0x5e,0x0c,0x3c,0xc7,0xc9,0x36,0xd7,0xd2,0x35,0xf8,0xb5,0xd5, - 0x5c,0xb6,0xfb,0x7d,0x3f,0x46,0xcb,0x38,0x56,0xb3,0x4e,0x75,0xa6,0x85,0x9c,0xda, - 0xe8,0xa1,0xbe,0xdd,0xfb,0xa2,0xd4,0x0e,0x8f,0x78,0x33,0x4e,0xea,0xb8,0x31,0x0b, - 0xf5,0xb4,0x4b,0x53,0x4a,0x8c,0x3e,0xaf,0x1d,0x1e,0xfb,0xe8,0xcf,0x3a,0x20,0x92, - 0xb8,0x61,0xf7,0x03,0x66,0x02,0x6f,0xc4,0xf6,0xbc,0xf5,0xd3,0x18,0x9e,0x2e,0x5b, - 0x3c,0x84,0xdf,0xf2,0x80,0x2f,0xa1,0x9a,0xa0,0x39,0x05,0x36,0xfe,0x18,0x9e,0xb0, - 0x44,0x46,0xd1,0x23,0x51,0x46,0xb2,0x6a,0xae,0x68,0xc9,0x41,0x61,0x44,0xea,0xf5, - 0xf9,0xa0,0x30,0x86,0xa8,0xc6,0x77,0x3d,0xc8,0xab,0x9d,0x45,0xc3,0x61,0x78,0x70, - 0xf1,0x11,0x71,0x25,0xec,0x26,0xf8,0x41,0x95,0x8d,0x76,0x3f,0x9e,0xbb,0x16,0x3e, - 0x4c,0x1b,0x8c,0x4b,0x75,0xed,0x12,0x8c,0x67,0x4a,0x23,0x64,0x84,0xa8,0x1e,0x41, - 0x10,0x33,0x3a,0x00,0x0a,0x57,0x87,0x16,0x25,0x93,0x3b,0x64,0x79,0x2c,0x86,0x14, - 0x13,0xc7,0x2f,0xed,0x15,0xbc,0x2a,0x26,0xe7,0xbd,0xcf,0xd9,0x3f,0xbc,0x48,0x22, - 0xff,0x30,0x62,0xc2,0xd6,0xfb,0xb2,0xb1,0xb5,0x24,0x0a,0x01,0xc6,0x93,0x85,0x30, - 0xab,0x98,0xb0,0x21,0xe4,0x54,0x92,0xd0,0x19,0x3b,0x28,0x9b,0x9a,0x3e,0x6d,0x7b, - 0xe1,0x89,0x6e,0xeb,0xc2,0x13,0x29,0x55,0xbf,0xb2,0x2c,0x4b,0x3b,0x5e,0xdd,0xf5, - 0xe5,0xf4,0xcc,0xce,0xd0,0xe8,0x38,0x92,0x96,0x13,0x10,0xc5,0x2b,0xa7,0x78,0x98, - 0x34,0x88,0x6f,0x86,0x66,0xfb,0x49,0xdd,0xa5,0xd3,0xbe,0x35,0x41,0x5b,0x58,0xa2, - 0xe3,0xd0,0xfe,0x82,0xb5,0x94,0x5c,0x97,0x9a,0x8b,0x20,0x04,0x72,0x38,0xc9,0x4b, - 0x5f,0x59,0x01,0x44,0x39,0xe1,0x1b,0x82,0x49,0xe0,0xe2,0x86,0xed,0x7e,0x35,0xde, - 0xdd,0x0d,0xb1,0xf3,0xbc,0x20,0xc1,0xcb,0xc7,0x24,0x36,0x38,0x15,0x53,0x86,0x13, - 0x28,0x42,0xda,0x29,0xe1,0x97,0xfd,0x43,0x41,0x10,0xea,0xc0,0x96,0x4b,0x33,0xcc, - 0x7d,0xfa,0xa8,0x4d,0x73,0xb8,0x36,0xd3,0x3c,0xa3,0x8c,0x29,0xbe,0x6b,0x36,0xbb, - 0x77,0x03,0x2a,0xc9,0xe3,0x71,0x03,0xc9,0xea,0x10,0xf6,0x49,0x3b,0x65,0xd6,0x68, - 0xcb,0x11,0x87,0x5c,0x50,0xe0,0xb5,0xc0,0x8f,0x00,0x2c,0x7c,0x74,0x1b,0x27,0xe4, - 0xa5,0xee,0x40,0xca,0x6a,0xff,0x41,0xf3,0x0c,0x35,0x4f,0xf2,0xfe,0xa0,0x91,0xe2, - 0xb7,0xf5,0x6d,0xb5,0x03,0x79,0x30,0x4a,0x5d,0x41,0xd3,0x6e,0x77,0x75,0x4b,0x83, - 0xbd,0x83,0x01,0x45,0xfa,0x9a,0x66,0xc5,0x7c,0xd7,0xa7,0x42,0x95,0x5a,0xad,0x52, - 0x73,0x44,0xfb,0x5e,0xe5,0x43,0x06,0xc3,0x99,0x7e,0x8e,0x24,0xb3,0xa7,0x27,0x19, - 0x89,0xd3,0x5a,0x34,0x94,0xe6,0x2f,0x4d,0x63,0xc4,0x99,0xe9,0x48,0xf4,0x19,0x51, - 0x93,0x6e,0x80,0xbb,0x61,0x00,0xb5,0x00,0xfa,0x46,0x36,0x6e,0x5d,0x4e,0xf4,0x3e, - 0xc9,0x87,0x5b,0xed,0x41,0xfc,0x29,0xe8,0x45,0x10,0xcd,0xd0,0x79,0x50,0xa7,0xe5, - 0x6e,0x73,0x69,0x4c,0x00,0xfd,0x4c,0x4b,0x5d,0x85,0x90,0x98,0xad,0x26,0x93,0x77, - 0x99,0x69,0x4b,0xbc,0xa6,0xd3,0x7f,0xe6,0x1c,0xf9,0x35,0xd7,0x9d,0xa5,0xcb,0x38, - 0xca,0xc8,0x9c,0x43,0x36,0x9d,0x33,0x41,0xa5,0xbe,0xd4,0xb7,0x2f,0xb0,0x62,0x73, - 0x93,0x11,0xd1,0x42,0xa0,0xb7,0xb3,0x94,0xbd,0xa2,0x8a,0x71,0x04,0x47,0x82,0x45, - 0x30,0x47,0x38,0x3b,0xca,0x70,0xd3,0xa4,0x9f,0x78,0x62,0xc0,0xb6,0x12,0x0e,0xc8, - 0x50,0x10,0x66,0xc6,0xc1,0x18,0xf3,0x41,0x08,0x25,0x8e,0xa7,0x89,0x13,0xc6,0x9c, - 0x4b,0xbd,0xc6,0x73,0x32,0x2d,0xfc,0x92,0xba,0x2e,0x1f,0xac,0xc5,0x20,0xd5,0x2d, - 0x65,0x55,0x33,0x32,0x96,0x4f,0x54,0xee,0x0b,0x3c,0xce,0xcb,0x33,0x7a,0x6b,0xae, - 0x9e,0x89,0xf7,0x62,0x5a,0x34,0x2e,0x8d,0xcb,0x27,0x5e,0x10,0x2f,0xc6,0x17,0x25, - 0xa4,0xd4,0xc4,0x80,0xc9,0xfe,0x98,0x00,0x55,0x84,0x05,0xb0,0x5e,0x00,0x81,0xfd, - 0x0b,0x49,0x2d,0x22,0xd4,0xa2,0x88,0x90,0xc5,0xb2,0x81,0x0e,0x58,0x2c,0x1a,0x90, - 0x6a,0xdb,0xac,0xbd,0x04,0x25,0x3a,0x5b,0x68,0x04,0xca,0x22,0xbc,0xd6,0x7c,0x0c, - 0x42,0xbc,0x52,0xe5,0x98,0x6b,0xed,0x6d,0x3f,0xee,0x8c,0x51,0xb8,0x5b,0xd7,0x70, - 0x55,0x4b,0xaa,0x31,0x5e,0x4d,0xcc,0xfe,0x82,0xc8,0xb2,0x18,0x61,0xd1,0xd5,0x66, - 0xd4,0x42,0xbf,0x73,0x56,0x1c,0x19,0x7c,0x74,0xa6,0x9a,0xfb,0x8b,0x95,0x8c,0x74, - 0x01,0xaf,0xbc,0x66,0xba,0x2b,0xa0,0xe7,0xb1,0xf7,0x3c,0x07,0x79,0x02,0x5d,0x33, - 0xf9,0x22,0x90,0x9b,0x9d,0x19,0xe0,0xb3,0x9f,0x67,0x61,0x1d,0xbf,0x23,0xf4,0x89, - 0x94,0xa6,0x04,0xd2,0x95,0x86,0x5f,0xe5,0x1b,0x82,0xb1,0x35,0x72,0x2f,0x1c,0x40, - 0xf9,0xd1,0x04,0xee,0x1e,0x68,0x94,0x37,0x44,0x04,0x78,0xd8,0x90,0x1c,0x7b,0xf1, - 0xd3,0x0b,0x0a,0x0f,0x80,0xf2,0x10,0x1c,0x80,0x9e,0x79,0x8c,0xa5,0x0d,0x94,0x21, - 0xe1,0x02,0x20,0x2a,0x16,0x34,0x34,0xc9,0x7f,0xd8,0xc0,0x04,0x88,0xc3,0x6b,0x2a, - 0xd1,0x05,0x34,0x44,0xb7,0xc4,0x14,0x90,0x91,0x4b,0x5c,0x72,0x43,0xba,0x75,0xf1, - 0xbe,0xca,0xb5,0x1c,0x7f,0xb4,0xbb,0xd1,0x76,0xd8,0x78,0x6f,0x49,0xc8,0x60,0x7f, - 0x85,0xdf,0xb8,0x7c,0x8f,0x5a,0xe5,0xc7,0xfa,0x50,0x36,0x15,0x0b,0x49,0xe9,0x39, - 0xa0,0xae,0x62,0x5a,0x10,0xf1,0x45,0xea,0xa3,0x18,0x4d,0xc6,0xd2,0x86,0x50,0xaa, - 0x11,0x90,0x90,0x42,0xb7,0x94,0x27,0x14,0xbd,0xf1,0x2a,0x5d,0x4a,0x49,0x6e,0xd8, - 0x90,0xa3,0x43,0x23,0xaf,0x07,0x31,0x30,0xbe,0x95,0xe9,0x2a,0x5c,0xfc,0x51,0xc5, - 0xbe,0x3d,0x07,0x40,0xa7,0xf2,0x97,0xb6,0xee,0x86,0x21,0x4d,0x49,0xa4,0x0e,0x9f, - 0xf4,0xc9,0x05,0x5d,0xbb,0xe3,0xc3,0x37,0xb7,0xd3,0x4e,0x62,0x60,0x1a,0xfd,0x46, - 0x80,0xec,0x3f,0xfc,0x77,0x60,0x55,0x9e,0x85,0x34,0x3d,0x67,0x67,0xbf,0x89,0x32, - 0xa8,0xc8,0x4d,0x56,0x9a,0x61,0xba,0x20,0xb3,0xf0,0x82,0x21,0x0f,0xc6,0xd3,0xdc, - 0x1d,0x23,0x84,0x8e,0x92,0x64,0xa0,0xb0,0x70,0xd0,0xa5,0x57,0x2b,0x48,0x02,0x17, - 0x69,0xcc,0x79,0xa4,0xe8,0x98,0xeb,0xaa,0xf5,0xf3,0xac,0x68,0xca,0x4c,0xd0,0x89, - 0x7a,0x2a,0xe9,0x8a,0x73,0xd5,0x79,0xef,0x13,0x8b,0xc7,0x11,0x59,0xc9,0x40,0x6b, - 0x22,0xfe,0xbe,0x48,0xa4,0xc7,0xa9,0x34,0x97,0x55,0xfa,0xb5,0x80,0xe8,0x42,0xaa, - 0xad,0xa4,0x9e,0xb5,0x37,0x55,0xd1,0x2b,0xf9,0x8e,0x49,0x4a,0xd9,0xc9,0x2b,0xa5, - 0xe5,0x8c,0x49,0xf5,0x87,0x2c,0x42,0x3c,0xd6,0xcc,0x15,0x35,0x82,0x5c,0x36,0x3c, - 0x9d,0x2a,0x4f,0x89,0x3f,0x60,0x91,0xce,0x27,0xab,0x05,0xad,0x31,0x75,0x79,0x51, - 0xed,0x8c,0x9f,0x52,0x7e,0x43,0x2b,0xc5,0xb4,0x7a,0x0a,0x1e,0x57,0xaf,0xf8,0x84, - 0xdb,0x53,0xcf,0xe7,0xc9,0x18,0x6b,0x29,0x3e,0xda,0x84,0x94,0xf4,0xc7,0xdd,0x0d, - 0x14,0x0f,0x38,0x9d,0x2e,0x9c,0xe0,0x5c,0x16,0xf3,0x33,0xaa,0x4f,0xc5,0xad,0x9a, - 0x7a,0x01,0x03,0xa6,0x3d,0x7f,0xee,0xb2,0x3c,0x12,0x47,0x80,0xee,0x58,0xac,0x8d, - 0xc8,0x3d,0x9a,0x60,0x19,0xa1,0x9d,0x4c,0x10,0x95,0xbb,0xb8,0xc4,0xac,0x03,0xd8, - 0x1f,0xe5,0x14,0x36,0x49,0x41,0x62,0x88,0xef,0xfe,0x11,0xbe,0x67,0x75,0x11,0xbe, - 0x31,0x3b,0x48,0x17,0x98,0x69,0x9f,0x76,0xaa,0xd0,0x98,0x55,0xd1,0x87,0x06,0xc2, - 0x22,0x7f,0xc6,0x81,0x80,0x82,0xbd,0x96,0x74,0x31,0xe9,0xd8,0xe5,0xfc,0x48,0x1f, - 0xaa,0x61,0x89,0xb3,0x09,0x86,0xab,0xbe,0x4c,0x35,0xab,0x70,0x3d,0xc8,0xf1,0xec, - 0x49,0xdb,0x82,0x92,0x8f,0xf7,0xb3,0x79,0x38,0x70,0x82,0x4d,0x14,0xc1,0xe9,0x3c, - 0xb2,0x6a,0x48,0xa2,0x8e,0x41,0x31,0x6e,0x4c,0x7c,0x83,0xfc,0xa9,0x74,0xf3,0x16, - 0x9f,0x65,0xe5,0xd5,0x30,0xee,0x6a,0xd9,0x01,0x86,0x5b,0x25,0xaa,0x91,0xf7,0x03, - 0x34,0x9a,0xa3,0xed,0xa6,0x3f,0x0b,0x11,0x70,0x69,0x5a,0x2b,0x3b,0x6b,0x54,0x24, - 0xdc,0xca,0x3e,0xc1,0x7e,0x09,0x98,0x8c,0xa0,0x8d,0xde,0x1a,0x2a,0x43,0xc5,0x52, - 0x5e,0xcd,0x76,0xe4,0x3d,0xf6,0x06,0xa9,0xd4,0x98,0x07,0x7a,0x5b,0x98,0xe3,0x2e, - 0x27,0x63,0xea,0xff,0xb7,0x72,0xf9,0x83,0x5a,0x12,0xf1,0x16,0xfc,0xde,0x1e,0xf6, - 0x31,0x0d,0x0e,0x67,0xfb,0x98,0x5b,0x0b,0x1d,0x12,0xe8,0xad,0x77,0x21,0x82,0x95, - 0xc0,0xcc,0xc3,0xe3,0x5c,0x72,0xb1,0xd5,0xca,0xe8,0x76,0xce,0xbd,0xd0,0xf1,0x1c, - 0x1b,0xd2,0xf5,0xd3,0x60,0x7e,0x3f,0x62,0x48,0xe8,0xaa,0x19,0x87,0x72,0x54,0x80, - 0xb1,0x43,0xdf,0xe5,0xb0,0x0d,0x72,0x15,0x4d,0xae,0x71,0xed,0x20,0xed,0xda,0x99, - 0xd7,0xce,0x0a,0x9a,0xeb,0x39,0x22,0x23,0xff,0x36,0x8d,0x17,0x0b,0xfb,0xfa,0x23, - 0xca,0x34,0xe5,0xf4,0xf3,0x20,0x7d,0x6f,0xbb,0x83,0xee,0x5e,0x57,0x0e,0x90,0xba, - 0x9a,0x88,0xd4,0x2e,0xa6,0x5d,0x74,0x9a,0x60,0x60,0x04,0x8e,0xc4,0xb9,0x9c,0x17, - 0xd0,0x1e,0xa1,0xec,0xfb,0xe0,0xdf,0xdc,0xbc,0xe7,0x5a,0xc0,0x99,0x4e,0x46,0x03, - 0x20,0xa9,0x29,0xb3,0xa4,0x73,0x9c,0x02,0x85,0x86,0xf4,0xd7,0x0b,0x83,0x10,0xb8, - 0xa5,0x2b,0x43,0x22,0xb4,0xfd,0xcc,0x47,0x2d,0xb8,0x87,0xca,0xd8,0x57,0x31,0x91, - 0x4b,0x95,0x3a,0x9d,0xcf,0x86,0xd4,0x12,0xf5,0x0d,0x65,0x95,0xee,0xb7,0x1b,0xf7, - 0xe9,0x1f,0xac,0x54,0xae,0xeb,0x1d,0xa7,0x27,0xe8,0x1e,0x84,0x6e,0xca,0x0a,0xd1, - 0x1f,0x71,0xa8,0xbf,0x10,0x8d,0x92,0x9f,0x6a,0x66,0xa1,0x13,0x4f,0x7c,0xc0,0x41, - 0x46,0x7e,0x7a,0xd2,0xa2,0x79,0x19,0x30,0x49,0x8c,0x84,0x38,0x85,0x9e,0x5c,0xe0, - 0xb7,0x8e,0xde,0xcf,0xde,0x8f,0x8f,0xcd,0xd6,0x00,0x5f,0x53,0x45,0x50,0xdb,0x70, - 0x42,0x13,0x2e,0x61,0xb1,0x84,0x33,0x2b,0x0b,0xce,0xa4,0x1f,0xe0,0x9a,0x23,0xb7, - 0x5c,0xe5,0x32,0x38,0xb1,0x35,0x9f,0x0d,0x46,0x68,0x67,0xe4,0xb5,0xf3,0x13,0xbd, - 0xe0,0xbc,0x8b,0x41,0x1a,0xe6,0xad,0xeb,0xb5,0x8a,0x44,0xfe,0xf0,0x72,0x05,0x3a, - 0x3e,0xda,0x5f,0x22,0x84,0x98,0xaa,0xe4,0x9a,0x4d,0x91,0x69,0xc0,0x51,0x56,0x8c, - 0xc3,0x65,0x79,0xa5,0xd8,0x6b,0xc5,0xde,0xc0,0x71,0xf0,0xe6,0x38,0xe2,0xbe,0x71, - 0xca,0x56,0x72,0xc2,0x65,0x38,0x98,0x13,0xd1,0xd2,0xc6,0x81,0x37,0x72,0x84,0x4b, - 0x99,0xcf,0x26,0x69,0x53,0xdd,0xc5,0x23,0x49,0x95,0x63,0x68,0x86,0xc5,0xfb,0xd9, - 0xe2,0xfd,0x78,0xab,0x46,0xa2,0xb6,0xfa,0xab,0x61,0x4e,0xcf,0x86,0x9b,0xd2,0x84, - 0xc3,0xc5,0x62,0xa8,0x42,0x48,0x9b,0xad,0x62,0xfe,0x14,0x6b,0x1b,0x46,0xe1,0xbf, - 0xad,0x2d,0xb9,0x25,0x24,0x46,0x45,0xe0,0x0a,0x35,0x6f,0xb9,0x31,0xcc,0x87,0x8e, - 0x28,0x95,0xec,0x75,0x8e,0x9e,0x7d,0x73,0xbc,0xd0,0xcb,0x1f,0xef,0xcb,0x6f,0xe9, - 0xfd,0x4f,0xc7,0x69,0xa5,0x2c,0x03,0x9e,0xf9,0x64,0xc8,0xde,0x55,0xa2,0x9e,0xf0, - 0xba,0x2f,0x96,0x7f,0xa7,0xb3,0xc1,0x74,0xce,0xd2,0x8e,0x55,0x34,0x0c,0x7d,0xe3, - 0x0f,0x4a,0x77,0xaf,0x80,0xbd,0x7b,0x79,0xf0,0x0b,0xec,0x68,0xb7,0xfe,0xce,0x77, - 0x79,0xbe,0xa1,0x22,0xf8,0xa1,0xac,0xf1,0xb1,0x56,0x73,0xbf,0xc7,0x35,0xf1,0x74, - 0xef,0xfa,0x00,0x61,0xe5,0x43,0x8e,0x70,0xca,0x46,0xde,0x77,0xc8,0xa9,0x3a,0x64, - 0x49,0x06,0x0e,0x93,0xd1,0xc9,0x55,0x0f,0x90,0xa8,0x73,0xb8,0x85,0x3a,0x93,0x4b, - 0x09,0x9a,0x13,0xcb,0xd0,0xe3,0x1c,0xe0,0xad,0xef,0x40,0x02,0xeb,0x1b,0xdf,0x81, - 0xa5,0x75,0x1e,0x58,0x94,0xec,0x4c,0x5f,0x4f,0x38,0x3c,0xdf,0x81,0xa5,0xc1,0xe1, - 0x1b,0x32,0x83,0x4f,0x48,0x29,0x97,0x4c,0x99,0x59,0x73,0x16,0x49,0x88,0xa2,0x04, - 0x36,0x6a,0x0b,0x32,0x88,0xa1,0xc6,0xa3,0x0c,0x26,0x40,0x90,0x18,0x58,0x60,0xa8, - 0xf8,0x6e,0xe0,0xfb,0xe4,0x6f,0xc7,0x41,0x11,0x84,0x37,0xf2,0x30,0xcc,0x97,0x22, - 0x1a,0x6c,0xb9,0x56,0x1b,0x5e,0x24,0x02,0x94,0xc4,0x96,0x7d,0x0a,0x4a,0xaa,0x7f, - 0xfa,0x28,0x8d,0x57,0xa8,0xf7,0xff,0xd1,0x45,0xa9,0x41,0xfa,0x2c,0x09,0x6c,0x87, - 0xe9,0x15,0x3c,0x0b,0xcc,0x66,0x81,0xbc,0x17,0x5d,0xcd,0xe0,0xf7,0x8a,0x47,0xae, - 0x6c,0x67,0xa4,0x6a,0xda,0x0a,0xea,0x44,0xc2,0xc1,0x0c,0xb3,0xda,0xa5,0x1a,0x9d, - 0xa9,0x91,0xed,0xbf,0x82,0x55,0x35,0x3e,0x21,0xd6,0xf0,0xe6,0x8d,0xa5,0x81,0x8c, - 0x95,0xdf,0x63,0xed,0xe7,0x1c,0x66,0x00,0x96,0x2b,0x3a,0x74,0x68,0x2f,0xf7,0x6e, - 0x50,0x7e,0x2a,0x65,0xce,0xd1,0xb0,0xf8,0xc5,0x98,0x22,0x1a,0x54,0x4a,0x42,0x7c, - 0x5a,0x9e,0x4a,0x4e,0x09,0x5a,0x47,0x5d,0xf8,0xd5,0x86,0xbd,0xa4,0x89,0x4f,0x96, - 0x04,0x04,0x57,0x7c,0x00,0xcc,0x47,0x33,0xb6,0x37,0xb9,0xb1,0xcf,0x64,0x3e,0x53, - 0x8d,0x70,0x24,0x60,0xa9,0xab,0x1b,0xe8,0x96,0xea,0x60,0xae,0xd4,0xe9,0x90,0x7a, - 0x46,0xee,0xcc,0xc4,0xcf,0x8c,0x73,0x73,0x9e,0xde,0xf0,0x31,0xc5,0x47,0x81,0xd0, - 0x5d,0x95,0x01,0xd1,0x5b,0xb4,0x60,0x45,0xee,0xf3,0x24,0x23,0xcd,0x5a,0x1e,0xcc, - 0xef,0xdd,0x15,0x36,0x07,0x19,0x34,0x4a,0x77,0x58,0x0c,0x10,0x88,0x63,0x33,0x10, - 0x23,0x33,0x62,0x5b,0xc6,0x46,0x89,0x7c,0x47,0xf6,0x73,0x37,0x2f,0x82,0x50,0x9e, - 0x7b,0x06,0x07,0x44,0xeb,0x1e,0x2e,0x61,0x71,0xd3,0xeb,0x62,0xb5,0x17,0x77,0x12, - 0x93,0x58,0x94,0xd0,0xbb,0x69,0x6d,0x82,0xb3,0x2a,0xea,0x5a,0xd4,0xab,0x8a,0xd9, - 0x9e,0x92,0xe9,0x1a,0x2d,0x68,0x8c,0xfe,0x2b,0x0d,0xdc,0xef,0x2e,0xa5,0xe6,0x57, - 0x72,0x95,0xf3,0xcf,0xc3,0x02,0x22,0xbc,0x86,0x88,0x4c,0xe2,0x66,0x93,0x24,0xd6, - 0xe4,0xaa,0x81,0xf0,0x6f,0x34,0x2a,0xd3,0x95,0x7d,0x4a,0xf5,0x3d,0x77,0x1a,0x5e, - 0xf4,0x5d,0x3e,0x0c,0xc7,0x86,0x7b,0xe3,0x95,0xb9,0x4a,0x14,0x3a,0xf6,0x78,0xc5, - 0x91,0xa4,0x49,0x8a,0xed,0x7d,0x4e,0xae,0x9a,0xa6,0x52,0x83,0xc6,0xb6,0x56,0x86, - 0x9e,0x34,0xc8,0x0d,0xa2,0x18,0xf2,0x27,0xe2,0x56,0x44,0x45,0xf5,0x3d,0xce,0xd0, - 0xc6,0xdc,0x4f,0x08,0x68,0x38,0xa4,0x32,0x61,0xdf,0x41,0x43,0xa0,0x86,0xaf,0x7d, - 0xe9,0xe9,0xda,0x45,0xf5,0xc0,0xe6,0x8e,0xea,0xcf,0xdd,0xea,0x5f,0x11,0x49,0x73, - 0xaf,0x6a,0xf1,0x1b,0xb8,0x91,0xb3,0x37,0x24,0xe3,0x86,0xe9,0xe7,0x8d,0xd8,0x9c, - 0x3b,0xd2,0x7c,0xab,0x8e,0x9d,0xfb,0x32,0x7f,0x17,0xbc,0x86,0x49,0xcc,0x16,0x4c, - 0xdf,0x50,0xc7,0xc7,0xcb,0xf4,0xce,0x55,0x33,0x8c,0xb1,0xa2,0x1d,0x40,0x77,0xef, - 0x77,0x50,0x3d,0x0b,0xa9,0x9e,0xf9,0x54,0xff,0xfe,0xfc,0xdd,0xeb,0x97,0xaf,0xff, - 0xd2,0x91,0xa0,0x22,0x71,0x43,0x8a,0x90,0x36,0xe8,0xf2,0x2c,0x0f,0xe5,0x64,0x1d, - 0x55,0x33,0x50,0x55,0x6b,0x85,0x41,0xb3,0x0e,0xe4,0x71,0x5a,0xb8,0x8c,0xcc,0x88, - 0x0b,0xd6,0xde,0x2c,0x66,0xe6,0x18,0x5a,0x8a,0x65,0x91,0x59,0x54,0x8b,0xbd,0x5a, - 0xa1,0x12,0xd4,0x6d,0xaa,0x67,0x91,0x77,0xd4,0x71,0x1a,0xd6,0x71,0xba,0xa2,0x8e, - 0xe2,0x85,0x37,0x9c,0xd3,0xa5,0xc1,0x3a,0x2c,0x81,0x06,0x26,0x1f,0x4d,0x7d,0x23, - 0xdb,0x0f,0x39,0x50,0xd6,0x98,0x2c,0xb2,0xe6,0xd2,0x81,0xf4,0x45,0x89,0x3b,0x89, - 0x6a,0x3b,0xc2,0x0c,0xd0,0x5b,0x4c,0x72,0x69,0x03,0x17,0x6c,0x8a,0x3a,0x06,0x4e, - 0xab,0xcb,0xf4,0x27,0xf3,0x71,0x79,0x47,0x1d,0x01,0xe2,0x56,0x13,0xef,0x66,0x04, - 0x7e,0x9c,0xac,0xcc,0x2b,0x77,0x76,0x28,0xfb,0xc7,0x89,0x9b,0xf9,0xe3,0x84,0xb2, - 0x52,0x52,0xdd,0x34,0xa6,0x13,0xd7,0xaa,0x29,0xab,0x0a,0x2e,0x72,0x8f,0x52,0xc7, - 0x93,0x20,0x9e,0x57,0x8f,0xce,0xd9,0x87,0x54,0x36,0xa8,0xf7,0x78,0xf1,0x71,0x22, - 0x55,0xf4,0x47,0x39,0x12,0x03,0xa6,0x01,0xc8,0x95,0xd1,0x21,0x4d,0x0e,0x2b,0x09, - 0x1d,0x5f,0x55,0x3d,0x6e,0xe8,0xbc,0x8b,0xb1,0x65,0xd0,0x79,0xca,0x65,0x6b,0xb2, - 0x90,0x06,0xde,0x28,0x80,0x7f,0x93,0x71,0xa5,0xa5,0xcb,0xc7,0xfe,0xeb,0x9d,0x3a, - 0xbb,0xae,0x20,0x60,0xb5,0x5c,0xee,0x6b,0x3a,0x50,0x21,0x6d,0x8e,0xb1,0x09,0x80, - 0xd3,0xd1,0x97,0x95,0x0d,0x03,0xa8,0xb4,0x6b,0x4c,0x79,0x00,0x82,0x32,0xc6,0xeb, - 0xca,0x30,0xed,0x31,0x94,0xe9,0x68,0x6c,0xf6,0x62,0x08,0x48,0x57,0x82,0x5d,0xf1, - 0x2a,0xcb,0xb1,0x65,0xf3,0x3a,0xe2,0x50,0xda,0xbd,0xcb,0x2a,0xce,0x47,0x06,0x15, - 0x0f,0xb5,0x91,0x75,0xee,0xa1,0x76,0x18,0x91,0x39,0x91,0x83,0x4b,0xc1,0x92,0xa6, - 0x46,0xbd,0x9b,0x34,0xa2,0x3f,0x38,0xc5,0x22,0x1a,0x03,0xb9,0x44,0xb5,0x0a,0x2c, - 0xfe,0xa8,0x51,0xd3,0x7a,0x55,0x7c,0x86,0x29,0xd9,0x6a,0xc3,0x74,0x53,0x16,0xec, - 0x0f,0xb1,0x45,0x03,0x60,0x85,0xcb,0x53,0x6e,0x3a,0x7a,0x39,0xb3,0x25,0x67,0xa4, - 0x79,0x2e,0xc1,0x2d,0x48,0xe7,0x60,0xdf,0x69,0xd8,0xdc,0x58,0xbd,0x82,0xdd,0xc6, - 0xda,0x3c,0x6c,0x51,0x65,0xb3,0xec,0x21,0x83,0x9a,0x75,0xb9,0xf0,0x95,0xa4,0x74, - 0x04,0xd0,0xe3,0xd4,0x6e,0xad,0xad,0x80,0x26,0x9f,0x6c,0x36,0xd3,0x29,0x34,0x39, - 0x60,0xdf,0x0f,0xc4,0x2d,0xea,0x6f,0xc4,0x3e,0xe5,0x1d,0x4d,0x06,0x61,0x73,0x69, - 0xd0,0x44,0xfd,0xd4,0xe2,0x4f,0x1f,0x27,0xe1,0x27,0xb0,0x0c,0x07,0x41,0x46,0xcd, - 0xc1,0x5b,0x82,0x5f,0x0b,0xf2,0xa6,0x90,0xc4,0xb4,0xed,0xe2,0x3b,0x0b,0x9d,0x33, - 0x70,0x2f,0x4e,0xe5,0x63,0x51,0xa6,0xf7,0xb1,0xac,0xb1,0xbd,0xba,0xde,0xc6,0x4d, - 0x0e,0x2e,0x38,0x49,0x21,0x6d,0xfd,0xb5,0x92,0x12,0x08,0x4b,0xad,0xda,0x54,0x00, - 0x2d,0xfe,0x31,0x20,0xf3,0x80,0x4f,0xef,0x8a,0x7f,0xbc,0xec,0x6b,0xa2,0xd8,0x3b, - 0xe5,0xbe,0xba,0xc2,0x95,0x73,0xb7,0xf7,0xe2,0x99,0x19,0x90,0xed,0xad,0x60,0x48, - 0xca,0x78,0x95,0xf1,0xe8,0x06,0xfe,0xe2,0xbb,0x3b,0x37,0x5c,0x5e,0x87,0xff,0x32, - 0xc6,0x0e,0xfe,0xd4,0x85,0x02,0x43,0x67,0xa3,0xe1,0x93,0x58,0xd0,0xac,0x9d,0x31, - 0x61,0x78,0x68,0xaf,0x8a,0xe8,0xb5,0xe1,0x86,0xf4,0xca,0xab,0x90,0x5e,0x37,0xca, - 0x04,0xb6,0xbb,0x49,0xbb,0x82,0xc8,0x4e,0x96,0xca,0x2b,0xce,0x2d,0x1f,0x29,0xf3, - 0xa3,0xf6,0x23,0xce,0x49,0x56,0xaf,0x89,0x24,0x8a,0x4b,0x6c,0x6b,0xce,0x77,0xde, - 0xc3,0x7e,0x47,0x6f,0x22,0x45,0x34,0x25,0x70,0x33,0xd7,0xcf,0x28,0xab,0x8b,0xf9, - 0x33,0xe9,0xe5,0x5a,0x5c,0x53,0x3a,0x13,0xe0,0xdf,0xa5,0x72,0x9f,0x03,0x5f,0x31, - 0xd3,0x89,0xc2,0x89,0xf5,0xa8,0x2d,0x41,0x65,0x72,0x78,0xc7,0x88,0x4d,0x55,0x87, - 0x9f,0xd7,0x15,0xd8,0x5e,0x2c,0xdc,0xf7,0xed,0xdd,0xb0,0x3c,0xe5,0x21,0xc7,0x22, - 0xd3,0xa8,0x97,0x27,0x36,0xa2,0xa5,0x8b,0xfc,0x3e,0x4d,0xa5,0x8b,0x7d,0xd5,0x4f, - 0xf3,0x1b,0x73,0x91,0x1e,0x77,0x63,0xa8,0x52,0x1d,0xd8,0x97,0xcc,0xca,0xc9,0x8c, - 0x1e,0x70,0x65,0x07,0xbf,0x53,0xc2,0x4a,0x35,0x93,0x1b,0x31,0xd8,0x1d,0xb2,0xb1, - 0x76,0xf6,0xc7,0xe4,0x44,0x1e,0x0a,0x44,0xac,0x2d,0x3b,0xed,0xe0,0xb2,0x8c,0x14, - 0xc0,0x51,0x75,0xd0,0x93,0x78,0x3e,0xb2,0xfa,0x73,0xf3,0xb9,0xc5,0x85,0x10,0x5d, - 0x36,0xc5,0x10,0xe4,0xdb,0x14,0x13,0x69,0x79,0xdb,0x79,0x17,0x22,0x29,0xc9,0xc9, - 0x48,0x04,0xe5,0x20,0xa8,0xde,0x14,0x59,0x93,0x84,0x5a,0xe4,0x0c,0x3a,0x63,0x30, - 0xd6,0x05,0x1c,0x42,0xbc,0x2e,0xec,0x98,0x56,0xf0,0x68,0x67,0xf5,0xfa,0xcd,0xe0, - 0x57,0xd8,0x9e,0xa3,0x08,0x8f,0xfa,0xc5,0xc2,0x7f,0x6f,0xc1,0x64,0x78,0xcc,0xfb, - 0x8a,0xd4,0xaf,0xa6,0x6f,0x05,0x1b,0xab,0x88,0x84,0x20,0xf0,0x70,0xe5,0x95,0x7b, - 0xd0,0xae,0x7c,0xd1,0xc0,0xb3,0xd5,0xde,0xbd,0x9f,0x6d,0x7d,0xb4,0xd9,0xc1,0x53, - 0x8f,0xc3,0xf0,0xb1,0x43,0x8e,0x43,0x72,0x7a,0xdc,0xdc,0xa4,0x3f,0x2d,0x56,0x73, - 0xe2,0x81,0x0d,0x40,0x8e,0x65,0x15,0xab,0xb9,0x6a,0x87,0x48,0x43,0xcc,0xf3,0x7a, - 0x2a,0x72,0xc1,0xbb,0xa7,0xf4,0x76,0xf4,0xc1,0x6c,0xd9,0xd9,0x1b,0xd3,0x93,0xfb, - 0x1b,0xc0,0xd7,0x37,0xa7,0x4e,0xcb,0xf5,0xcb,0x34,0xd2,0xd6,0xee,0x15,0xb0,0x73, - 0xa4,0x1e,0x41,0xc5,0xc3,0xcd,0xeb,0x8c,0xaa,0x59,0xf0,0x13,0x81,0xe8,0x9c,0x0c, - 0xbb,0x04,0xb3,0x1c,0x90,0xd7,0xea,0xdb,0xd4,0xb5,0x06,0xa7,0xae,0x87,0xcb,0xc0, - 0xe6,0xe4,0xbc,0xb8,0x3e,0x65,0x21,0x23,0x6e,0xf8,0x79,0x1a,0x31,0x8d,0x70,0xda, - 0x7e,0x74,0xd7,0xcc,0x5d,0x66,0xd7,0xf3,0x60,0x69,0xd4,0xa4,0x4b,0x29,0xce,0xaa, - 0x12,0xac,0x41,0xc1,0xd0,0xb9,0xa9,0x16,0x02,0xbd,0x25,0x96,0x71,0x93,0x76,0xda, - 0x66,0x62,0x60,0x45,0x26,0xb5,0x0c,0x9d,0x04,0x14,0x2d,0xd2,0xeb,0x41,0x0a,0xb3, - 0x38,0xe0,0x4c,0x24,0x58,0x31,0x83,0x6f,0x37,0x2b,0x7a,0x94,0x12,0xba,0x44,0xba, - 0xf6,0x60,0xe6,0x57,0x5e,0xd3,0xd9,0xba,0x1b,0x78,0xc6,0xdc,0xd0,0x68,0x78,0x73, - 0x45,0x17,0xe9,0x86,0xde,0xdc,0xd2,0x1b,0x9a,0x90,0x6f,0xfd,0x9d,0x9d,0xe1,0xbc, - 0x2f,0x35,0x8a,0xae,0x29,0x2b,0xdd,0x33,0x5e,0x72,0xbe,0x35,0xff,0xe2,0x8e,0x7e, - 0x01,0x8a,0x70,0x76,0xf1,0x16,0x58,0x6d,0xc9,0x38,0xab,0xa6,0x56,0xf3,0xcb,0x6c, - 0x34,0x04,0x67,0x06,0x9f,0xe2,0xad,0x59,0x7b,0xa5,0x87,0x86,0xad,0x99,0xe7,0x4b, - 0x2d,0xcd,0xb3,0x7e,0xfd,0x4a,0xbc,0x02,0xcb,0x03,0x8b,0xc5,0xe9,0xfa,0xba,0x14, - 0x3d,0xc3,0xca,0xb4,0xb9,0xa9,0xaf,0x4f,0x1f,0x07,0xeb,0xd4,0xe3,0xf6,0x6e,0xd8, - 0xab,0xbd,0x85,0x4a,0x3b,0xb8,0x86,0x69,0x46,0xb7,0x5d,0x5e,0xfa,0xd2,0x1b,0xaf, - 0xc5,0x28,0xb0,0x63,0xed,0x4c,0xee,0x4e,0xd1,0x72,0xe0,0x1c,0xae,0x2d,0xde,0xe9, - 0x61,0x0d,0x53,0xea,0xbb,0x24,0xbe,0xdf,0xbd,0x2c,0xd5,0x0f,0xb2,0xc5,0xc2,0x26, - 0x99,0xc5,0xd1,0x5b,0x13,0xd6,0x74,0xe8,0xa5,0x8c,0x26,0x24,0x39,0xf5,0x9c,0xa0, - 0xff,0xec,0x29,0x96,0xb8,0x21,0x93,0x0c,0x39,0xa0,0x83,0xb5,0xfe,0x64,0x8c,0x8d, - 0xa3,0x36,0x5f,0x23,0xde,0x64,0x45,0x39,0x41,0x85,0x8b,0x63,0x76,0x63,0xbc,0x5d, - 0x74,0xa8,0x01,0xdb,0x70,0xa2,0xb8,0x14,0xd3,0xb2,0x86,0x1c,0x89,0x47,0x7e,0x57, - 0xaf,0xb9,0x09,0xf9,0xac,0x42,0x48,0xcd,0x3a,0x2b,0xa1,0xa1,0x11,0x5e,0x3c,0x0d, - 0x66,0xc2,0x03,0xf8,0xbc,0xd3,0xfa,0xaa,0xb3,0xa3,0xe2,0x7a,0x8a,0xcb,0x96,0x26, - 0xd2,0xb3,0xf5,0x0a,0x64,0xfa,0x91,0xb7,0x32,0x13,0x5e,0xc9,0xc5,0x17,0x77,0x96, - 0xc5,0x83,0x99,0x79,0x60,0x1a,0x14,0x76,0x73,0xd3,0xeb,0x68,0xa9,0x7d,0xab,0x9f, - 0x34,0x4c,0x66,0x6c,0xfd,0xd2,0x9b,0xa0,0x87,0xe4,0xbe,0x4d,0x80,0x65,0x49,0xd6, - 0xb6,0x3c,0xa9,0x9d,0xf5,0x04,0xab,0x18,0xbb,0x40,0xcc,0x0c,0xfa,0xb4,0x2b,0x32, - 0xf2,0x52,0x3b,0xe3,0x69,0x2e,0xcf,0xcd,0xfc,0x81,0x84,0x3e,0x75,0x05,0x69,0xc3, - 0xe7,0xe8,0x02,0xc9,0x51,0xcd,0x0c,0x79,0x8c,0x08,0xbf,0xb5,0x73,0x16,0x30,0x37, - 0x1a,0x15,0xe4,0x53,0xcd,0x6c,0xf7,0x72,0xc1,0xcc,0xae,0x14,0xdd,0x35,0x4c,0x35, - 0x06,0x76,0xa4,0xa4,0x5b,0x56,0x36,0x1d,0x0e,0x3f,0xdb,0x6d,0xd3,0xbf,0x95,0xcb, - 0xa3,0x5e,0xbb,0x10,0x9f,0xea,0x17,0x43,0x09,0x1c,0x7d,0x52,0x85,0xaf,0x2f,0xfa, - 0x1a,0x79,0x5d,0x65,0x61,0xeb,0x3f,0x84,0xa3,0x3b,0xf4,0xe0,0x96,0x43,0xbb,0x4c, - 0xc8,0x5b,0x9d,0x2e,0xee,0xdd,0x9c,0x5e,0xa5,0xf7,0xc8,0xcb,0x6b,0x07,0x53,0x58, - 0xed,0x9c,0xfb,0xef,0x18,0x56,0xe1,0xec,0xb9,0xed,0x6f,0x1c,0xda,0xbb,0xc1,0xfb, - 0xa3,0xc5,0xa2,0xd1,0x08,0xc7,0xe2,0xb3,0x9d,0xf6,0xda,0x79,0x5b,0xb7,0xb1,0x4b, - 0x83,0xee,0x7f,0x82,0x81,0xdf,0xb5,0xed,0x0e,0x44,0xf6,0xe5,0x75,0x56,0x0c,0x44, - 0x88,0x38,0x00,0x0d,0xd6,0xc1,0x1a,0x41,0x47,0x69,0xd0,0x80,0xbe,0xc1,0xda,0x3b, - 0x2a,0x28,0xfe,0x67,0xbf,0x03,0x77,0xe0,0x87,0x71,0x86,0xd8,0x01,0x3d,0x84,0x22, - 0xec,0x60,0xba,0xcd,0x60,0x1c,0x5b,0xd0,0x96,0xe5,0x26,0x36,0xd2,0x67,0x13,0xb7, - 0xe0,0x68,0xbf,0x4c,0xfa,0x24,0xf5,0xb8,0xbf,0xf5,0x47,0x09,0xb7,0x10,0x19,0xa9, - 0x4c,0xfb,0x9f,0x3b,0xff,0x79,0xf0,0xe6,0x75,0x4b,0xfc,0x75,0x53,0x20,0xd6,0xa4, - 0x5a,0xda,0x43,0xba,0x64,0x91,0xf7,0x56,0xb6,0xc6,0x76,0xb5,0xd8,0xbb,0x4e,0xce, - 0x6e,0xd3,0xfa,0x28,0xc1,0xc1,0xf9,0xbf,0xbf,0x1f,0x24,0x37,0x99,0x68,0xc2,0x60, - 0xb8,0xc9,0x47,0x57,0x87,0x88,0xb6,0xd5,0xdd,0xf5,0x52,0x8c,0x6a,0x7f,0xbb,0xe2, - 0xc8,0xd0,0xe1,0x87,0x35,0xe2,0x74,0xb8,0xd3,0x44,0x3c,0x4a,0xdd,0x6c,0x52,0xe1, - 0x65,0x36,0xe8,0x0f,0x8b,0xd2,0x73,0x01,0x4c,0xb9,0xb6,0xc4,0x6b,0xfb,0x1e,0x67, - 0xac,0x5f,0xd8,0xf8,0x13,0x96,0x35,0x60,0x24,0x10,0xfc,0xdc,0x63,0x25,0x93,0xd9, - 0x14,0x04,0x70,0x04,0x71,0x94,0x1e,0x63,0x8e,0x5c,0xbf,0x9b,0x7f,0x35,0x81,0x43, - 0xc9,0x19,0xa2,0x85,0x4c,0xce,0xe4,0xec,0x4c,0x37,0xf6,0xb2,0x8f,0xc7,0x21,0x3b, - 0x5f,0x7a,0xd4,0x99,0x46,0x8f,0x55,0x81,0xc1,0xdb,0x7d,0xdb,0xf2,0x73,0x2d,0x5f, - 0xa8,0xc2,0x23,0xc9,0x50,0xe9,0x4d,0xbd,0x8f,0xe4,0x7b,0xf3,0x12,0x57,0x3b,0x32, - 0x9e,0x74,0xb4,0x48,0xbf,0x32,0xf6,0x54,0x60,0x8c,0xa3,0x72,0x75,0x3e,0xd8,0x77, - 0x9d,0x16,0xfb,0x1b,0x08,0x22,0x58,0xda,0x83,0xfc,0x39,0x1f,0x1d,0xd7,0x58,0x8d, - 0x5c,0xe3,0x58,0x2e,0x10,0x99,0x79,0x7d,0x01,0x85,0x8d,0xc1,0xb1,0xac,0xba,0xb2, - 0x0d,0xfe,0x94,0x27,0xd7,0x14,0x1e,0xfb,0x81,0x78,0x8b,0xde,0xc3,0x73,0xe7,0x01, - 0xac,0x6a,0xbf,0xa5,0x2a,0xa8,0x78,0x7d,0xcd,0xdb,0xcc,0xcf,0x4e,0x3e,0x7e,0xcf, - 0xbd,0x0f,0x8e,0x21,0xc9,0xb3,0xf7,0xe5,0x9e,0xbd,0x5d,0xc5,0x20,0xa9,0x92,0x33, - 0xf9,0xb4,0xc7,0x5b,0xdd,0x8e,0x4c,0x64,0xfc,0x51,0x07,0x0f,0xc8,0xcb,0x83,0xea, - 0xe9,0x59,0x65,0xd0,0x53,0x68,0x11,0xd5,0x96,0xf2,0x54,0x6b,0x69,0xcd,0xe8,0xa9, - 0xb4,0x6d,0xd2,0x2d,0x1b,0x71,0x9d,0xd2,0xad,0xbb,0xf1,0xc5,0x0d,0xad,0x1a,0x9a, - 0xdb,0x6c,0xe7,0x71,0xdb,0x13,0x67,0x43,0x05,0x59,0x38,0xf4,0xed,0xe2,0xcf,0x08, - 0x67,0xff,0x7e,0x7d,0x9c,0xea,0xad,0xee,0xd4,0xcf,0x69,0x67,0x9c,0xb0,0x03,0xb3, - 0x62,0xc6,0x4a,0xba,0x5e,0x24,0x4d,0x82,0xbb,0xc6,0xfe,0x78,0x0b,0xc6,0x12,0xfa, - 0xfd,0xd3,0x9d,0xf6,0x57,0x8c,0x9a,0xc6,0xb6,0x99,0x83,0x6e,0xb1,0xf6,0x58,0xe4, - 0xb5,0x53,0x00,0x51,0x6b,0x2f,0x8f,0x8a,0xe8,0xe9,0x9f,0x07,0x60,0x0b,0xae,0xad, - 0x7f,0xcf,0x99,0x21,0xdc,0x7a,0x04,0x4d,0xa5,0x27,0xbe,0x93,0x0b,0x42,0xd1,0x17, - 0x01,0x61,0x8d,0xcd,0x05,0x98,0xe2,0x59,0x88,0xe8,0x09,0x65,0x6a,0x8e,0x39,0x65, - 0x23,0x21,0x60,0x09,0x71,0x6d,0xa1,0xb0,0xa9,0x0b,0xac,0xc5,0x31,0xb0,0x1e,0x40, - 0x9b,0xc4,0x14,0x75,0x12,0x57,0x65,0x07,0x93,0xb3,0xb9,0x4a,0xbe,0x98,0x46,0xe5, - 0x5c,0xf4,0x03,0x6e,0xa5,0xc3,0x22,0x2e,0x10,0x23,0xc4,0x88,0x2e,0x12,0x20,0xe1, - 0x90,0xbd,0x00,0x0d,0xd6,0xd9,0xad,0x60,0xf4,0x13,0x82,0x10,0x73,0x6c,0x6d,0xf0, - 0xd3,0xb9,0xc7,0x6e,0x05,0x36,0xdb,0xff,0x83,0xf2,0xa9,0x58,0x78,0xe9,0x79,0xc7, - 0x2f,0x89,0xed,0x63,0x83,0x52,0xed,0xb0,0x70,0x50,0x15,0x1d,0x7a,0x36,0x49,0x90, - 0x07,0xd1,0x50,0x55,0x04,0xfd,0xa8,0xf2,0x1a,0xd8,0x1b,0x42,0x3d,0x9b,0x81,0x17, - 0x6e,0xa9,0xeb,0x1b,0xa1,0xd6,0x74,0xcb,0x32,0x78,0x15,0x81,0x9c,0xc7,0x38,0xec, - 0x6c,0x45,0xef,0x94,0x18,0x49,0x07,0x7d,0x27,0xf8,0x0a,0xd6,0x20,0x78,0x15,0x51, - 0x25,0xda,0xd6,0xf8,0xad,0x9b,0x4f,0xb4,0xf9,0x2a,0x5c,0xbb,0xe6,0x69,0xb6,0xfc, - 0x7f,0x1f,0x83,0xc2,0xfe,0x2c,0xe6,0xcb,0xea,0x2c,0xe8,0x32,0x37,0x62,0xdd,0xe5, - 0xa0,0xbc,0xe8,0x0d,0x71,0xcb,0x06,0x26,0x65,0x99,0x55,0x8f,0xaa,0xa5,0x3b,0xed, - 0xd6,0x38,0xa9,0x49,0x18,0xd6,0xde,0x46,0x16,0xb8,0xcb,0x26,0x49,0x65,0x6b,0xe1, - 0xac,0xdb,0x1c,0x63,0x84,0x72,0xce,0x32,0x0b,0x34,0xc8,0x51,0xfd,0xbf,0xad,0x2d, - 0x66,0xb3,0x7a,0x49,0xe0,0x5c,0x64,0x43,0x57,0xc0,0xc9,0xb2,0x64,0x96,0xab,0x9f, - 0x97,0xde,0xbe,0x1e,0x9e,0x0b,0xf3,0xb9,0xf1,0x5f,0xa5,0x72,0x11,0x3e,0x14,0x70, - 0xef,0x86,0x7a,0x8e,0x7a,0x7c,0x7c,0xf4,0x11,0x31,0x0d,0x2e,0xd8,0x3f,0xe7,0x3e, - 0x2b,0x7d,0xa9,0xbd,0x89,0x53,0xe4,0x8a,0x62,0x4e,0x9c,0x6d,0xce,0xef,0x00,0x68, - 0x3c,0x11,0xb4,0xe5,0x09,0xf3,0x0e,0x2e,0xda,0x4e,0x7a,0x33,0xb9,0x0b,0x51,0x9e, - 0xd4,0x32,0x02,0xcd,0x4e,0x8c,0x60,0x42,0x1a,0x39,0x01,0x2d,0x13,0x39,0x27,0x09, - 0x6f,0x75,0xc9,0xf4,0xb5,0x79,0x79,0x69,0xb2,0x91,0x30,0x28,0x79,0x7a,0x88,0x15, - 0x95,0x73,0x94,0x85,0x19,0x72,0x25,0x04,0x22,0xfc,0x69,0x22,0x03,0x17,0x27,0xad, - 0xca,0x90,0x4f,0xc1,0xa1,0x34,0x68,0x05,0xe4,0x46,0x40,0xbf,0x84,0x5c,0x02,0x66, - 0x0c,0x46,0xe2,0xdd,0xf4,0x1a,0xc6,0x2b,0xb5,0x36,0x43,0xb8,0x3d,0xc2,0x91,0x05, - 0x9d,0x62,0x7d,0xa6,0x7f,0xdb,0x6e,0x3d,0xd9,0x11,0x24,0xe9,0x2a,0x2d,0xfc,0x5d, - 0x27,0xc1,0x32,0xb9,0xd4,0x76,0x59,0xea,0xd1,0xb5,0xe9,0x35,0x1b,0x16,0x1a,0x55, - 0x83,0x7f,0x16,0x71,0x26,0x63,0x21,0xed,0xde,0x3b,0xa3,0xd0,0xa2,0x19,0xfd,0x81, - 0x45,0x80,0xc5,0x8c,0x1a,0x07,0x43,0xab,0xaa,0x94,0xf1,0x2d,0xb2,0x32,0x62,0x82, - 0x31,0x80,0x79,0x60,0xdd,0x90,0xd8,0x6b,0x25,0xe8,0x1c,0xd8,0x5c,0xea,0xa3,0xcc, - 0xfe,0x8e,0xc7,0x15,0xdd,0x92,0x55,0x0c,0x4b,0x20,0x8e,0xd8,0x73,0x71,0xab,0xa4, - 0x19,0x94,0x78,0xa7,0x15,0x72,0x82,0x15,0xb2,0x77,0xd2,0x8d,0x80,0x11,0x51,0x00, - 0x20,0x41,0x0f,0xe6,0x1b,0x3a,0x2b,0x70,0xe9,0x5f,0x7b,0x00,0x7b,0x63,0x2c,0x16, - 0x0e,0x98,0x2c,0xde,0xbb,0xc9,0x24,0xc4,0xf3,0x1b,0x3d,0x3d,0xdd,0x12,0x7b,0xe1, - 0x67,0xf4,0x84,0x7d,0x1a,0x7e,0xcf,0xe7,0xa3,0xe1,0xb3,0x8d,0xff,0x3f,0x0d,0xa7, - 0x4f,0x34,0x3c,0xce,0x01,0x00, + 0x67,0xee,0x95,0x37,0x7d,0x3d,0x73,0x1d,0xdf,0xab,0x02,0x67,0xff,0xcf,0xce,0x93, + 0x76,0xb7,0x8d,0x23,0xf9,0xbd,0x7f,0x45,0x3d,0xee,0x7b,0x89,0xfc,0x36,0xa2,0x2d, + 0x59,0x56,0x0e,0xc7,0xea,0x97,0xa3,0xef,0x8e,0xed,0x8d,0x3d,0xd7,0xa7,0x7d,0x10, + 0x09,0x59,0x9c,0x50,0x04,0x07,0x80,0x22,0xab,0x7f,0xfd,0x56,0x15,0x00,0x51,0x14, + 0x4d,0x85,0x3e,0xf6,0x9e,0x99,0xee,0x96,0x84,0xb3,0x50,0x55,0xa8,0x1b,0xae,0x53, + 0x07,0x11,0x5c,0x49,0x6c,0x17,0x4b,0x7b,0x7b,0xe8,0x4a,0xea,0xf1,0x8b,0x7f,0x02, + 0x40,0xfe,0x85,0x7f,0x10,0x20,0x35,0x7e,0xc1,0x5a,0x5a,0x70,0x15,0xfe,0xd1,0x70, + 0x1c,0x81,0xb3,0x7a,0xf8,0x3b,0x97,0xf0,0xbf,0x57,0xb7,0x67,0x11,0xd7,0x24,0x8d, + 0xf0,0x9f,0x08,0x28,0x58,0x7f,0x16,0x11,0x6b,0x47,0x60,0xac,0x56,0x5f,0xe4,0x59, + 0x54,0x45,0x31,0x42,0x5b,0x3f,0xac,0x18,0x1a,0x58,0x0b,0x26,0xa2,0x3c,0x8b,0xf8, + 0x14,0x11,0x6e,0x9c,0x64,0x3a,0xc9,0x25,0x24,0xb8,0xfe,0x00,0xc7,0x25,0x6b,0xf7, + 0xa9,0x71,0x56,0x3c,0x0c,0x1b,0x35,0x97,0xf6,0x9b,0x1f,0xe2,0x0a,0xa5,0xb0,0x73, + 0x48,0xcf,0xa2,0x4f,0x2f,0xe3,0x97,0x80,0xff,0x8a,0x31,0x8c,0xe1,0xc8,0xff,0xff, + 0x55,0x3c,0xfe,0x34,0x18,0xc7,0xc7,0xb5,0x8e,0x81,0xef,0x18,0xc5,0xaf,0x01,0xff, + 0x15,0x03,0x6c,0xe2,0xe1,0xae,0x77,0x14,0x0f,0x3f,0x0d,0x5e,0xc7,0x83,0x9d,0xbe, + 0x81,0xef,0xe3,0x4d,0x0f,0x11,0x61,0xf8,0x81,0x26,0x39,0x24,0xb9,0x30,0xe6,0x2c, + 0xe2,0x4a,0x63,0x7e,0x64,0x31,0x80,0x2c,0xc5,0xdf,0x7d,0x7a,0x4a,0x11,0x6d,0x5e, + 0x39,0x20,0xea,0x07,0x6e,0x86,0xef,0x36,0xcb,0x69,0x34,0x49,0x54,0x81,0x18,0xb1, + 0x48,0xab,0x67,0x73,0x36,0x59,0x4e,0xdf,0x1e,0xe2,0x10,0x1c,0xe8,0x3f,0xa8,0x2e, + 0x23,0x6c,0xc1,0xa5,0xa6,0x40,0x01,0x85,0xc8,0xaf,0xc1,0x2d,0xd1,0x04,0xc1,0xc1, + 0x61,0x38,0xda,0xb1,0x7b,0x18,0xcf,0x45,0xaf,0xb5,0xf1,0x09,0xfb,0xc6,0xf8,0x93, + 0xab,0xf3,0x22,0x37,0x3c,0x02,0x55,0x20,0x73,0x26,0x5f,0xce,0x22,0x36,0x43,0x3e, + 0xb8,0x41,0xbd,0x83,0xe8,0x3b,0x7a,0x91,0x81,0xe3,0x7c,0x0b,0xf4,0xfb,0x60,0xbe, + 0x64,0x25,0x70,0xb5,0x2b,0x88,0x22,0x85,0x52,0x18,0x2b,0x41,0x40,0xa9,0x25,0x65, + 0x84,0x52,0x48,0xf8,0x2d,0x47,0xf4,0x9d,0xd0,0x99,0xe8,0x73,0x15,0xe3,0x59,0x74, + 0x51,0xca,0x02,0xc2,0xd6,0x93,0x67,0x37,0xf6,0xf4,0xdf,0xdf,0x1e,0xba,0xbd,0x03, + 0x4b,0x32,0x13,0x2e,0x44,0x46,0x0d,0xc6,0xf9,0xd9,0x0c,0xf2,0xd7,0x7e,0xae,0xf0, + 0xae,0x45,0xe1,0x48,0x7c,0x98,0x3a,0xe2,0x29,0x18,0xce,0x78,0x1f,0x4e,0xde,0xa5, + 0x8b,0xac,0x00,0x9e,0x81,0xcb,0x0e,0x89,0x39,0x80,0x39,0xff,0x2c,0xaa,0x07,0xa6, + 0x5a,0x6f,0x75,0x50,0x31,0x7c,0x87,0xa3,0xc9,0x0f,0x84,0x0f,0xb0,0xf3,0xcc,0x40, + 0xa1,0x52,0xf9,0xdc,0x80,0xe0,0x2d,0x42,0xfd,0x23,0xf4,0xec,0x5c,0x82,0x41,0x42, + 0x83,0x2a,0x24,0x2c,0x8d,0x4c,0x61,0xa6,0x34,0x68,0xb9,0x50,0x56,0xc2,0x87,0xdf, + 0x7f,0x71,0x13,0x0e,0xe2,0xb7,0x87,0x25,0x82,0x43,0x21,0x38,0x3e,0x17,0xc3,0xd8, + 0xa7,0x9f,0x3b,0xa7,0x99,0x21,0x35,0x19,0x6d,0xb4,0x4e,0x18,0x57,0xae,0xf0,0x84, + 0x97,0x7e,0xcf,0xb7,0x87,0xdc,0x8f,0xd3,0xb8,0x7a,0xc3,0x93,0x32,0x40,0xe4,0x28, + 0x5d,0x4d,0xe3,0x92,0xe2,0x44,0x2d,0xca,0x5c,0x5a,0x1c,0x86,0x32,0x4f,0x4b,0xc4, + 0x44,0x18,0xee,0xfa,0xd9,0xca,0x9a,0x30,0xcb,0x35,0x98,0x08,0xb5,0x4b,0x60,0x17, + 0xe4,0xd8,0x45,0x66,0xb7,0x77,0xa0,0xce,0xc9,0x15,0xda,0xb1,0x90,0x15,0x81,0xa4, + 0xf5,0xf3,0xf8,0xe8,0x62,0x6d,0x16,0xb6,0x45,0x9b,0xdd,0x0e,0x09,0x09,0x15,0xbf, + 0x1f,0x3a,0xea,0x37,0xf9,0x60,0x95,0xfd,0x81,0x84,0xde,0xc7,0x08,0x85,0xb2,0x9e, + 0xd1,0x93,0x42,0xf4,0xf9,0xd7,0xe4,0x97,0x02,0x88,0x42,0x7f,0xc9,0x7e,0xcc,0xc0, + 0xb0,0xbd,0x5d,0x40,0xa9,0xca,0x65,0xf9,0x3d,0xfc,0x62,0x71,0xa2,0x32,0xd2,0x40, + 0x36,0x83,0xb5,0x5a,0x6a,0x28,0xe7,0x44,0x44,0x93,0x4b,0x59,0x9a,0xf8,0xbb,0xb7, + 0x02,0xe6,0x5a,0xce,0xce,0xa2,0x7f,0xd9,0xba,0x20,0x38,0xf7,0x62,0x69,0x7b,0x07, + 0xa7,0x5a,0xda,0xa5,0x2e,0x60,0x26,0x72,0x23,0xa3,0xc0,0x64,0x4d,0x5f,0x23,0x9a, + 0x30,0xf3,0x67,0x85,0xdb,0x61,0xaa,0xd5,0xca,0x48,0xfd,0xf6,0x50,0x4c,0xc0,0x2a, + 0xf8,0x82,0x3b,0xf9,0xad,0xb5,0xba,0xd1,0xd2,0x98,0x98,0xf1,0x50,0x3f,0x17,0x27, + 0x13,0x10,0x61,0x19,0x9f,0xcd,0xd8,0x72,0xb0,0xc1,0x82,0x2a,0x08,0x91,0xd9,0x56, + 0xdf,0x70,0xb7,0xe1,0x78,0xb7,0x61,0xe4,0x1b,0xaa,0x8d,0xb8,0x67,0xf5,0xc7,0xa0, + 0xfd,0x62,0x5d,0x21,0x08,0x30,0x80,0x67,0x8b,0x2c,0x4d,0x95,0x3d,0x65,0x7c,0x3e, + 0xc9,0x0d,0xf3,0x5b,0x23,0x75,0x67,0x19,0x4a,0xa7,0x72,0x1d,0x4d,0x3e,0x38,0x91, + 0x58,0xdd,0x3a,0xc2,0x14,0x23,0x89,0xa9,0x58,0x48,0x8b,0x8c,0xfb,0x05,0x8c,0x82, + 0x0c,0x29,0x28,0x0a,0xd0,0x52,0x24,0x73,0x26,0xf3,0xa7,0x7f,0xbb,0xbe,0x06,0xc4, + 0x2f,0x5a,0xcc,0x84,0xc9,0xb2,0xc9,0x1f,0x78,0xf6,0xe9,0xe4,0x92,0x85,0x15,0xca, + 0xdc,0xed,0xbb,0x9a,0xca,0x32,0x57,0xeb,0x85,0x2c,0xec,0xf7,0xc8,0xc9,0x13,0xb8, + 0xa6,0xed,0x1d,0xd3,0x81,0x95,0xc6,0x9a,0x8a,0x91,0x5c,0xb8,0x04,0x27,0x4e,0x95, + 0xb2,0x4e,0x42,0xa7,0xc2,0x8a,0x3e,0x6b,0xb6,0xe3,0xe1,0xcb,0x31,0x3e,0xa7,0x83, + 0x65,0x91,0x4b,0x63,0x08,0x70,0x10,0xb9,0x51,0xf4,0xde,0xae,0xb8,0x91,0xbc,0x88, + 0x99,0xb3,0xa8,0xfc,0xe1,0xea,0xb2,0x7f,0x7e,0xf1,0x17,0xee,0x29,0x64,0xee,0x85, + 0x78,0x0c,0xbf,0xcc,0x78,0x54,0x05,0xd0,0xe6,0xcc,0x8c,0x10,0x0b,0xe2,0xab,0xc8, + 0x72,0xb2,0x67,0x60,0x2e,0xb5,0x7c,0x41,0x62,0x07,0xfe,0x74,0xf5,0x9e,0x4e,0x9e, + 0x89,0x1c,0x84,0x05,0x3c,0xa4,0x13,0xc4,0xf1,0x42,0x9a,0x79,0x82,0xd0,0xc6,0x99, + 0xe2,0x63,0x91,0xd0,0xd6,0xcb,0x82,0x46,0x90,0x7b,0x4b,0x78,0x8f,0x8d,0xc9,0x52, + 0x88,0xe3,0x38,0x0c,0xa8,0x75,0x96,0xab,0x4d,0x5f,0x8c,0x48,0x91,0x8e,0x24,0x54, + 0x5e,0xc2,0x18,0x59,0xe0,0x28,0x3b,0xa7,0x88,0x4d,0xa5,0xca,0xdc,0x26,0xd2,0xea, + 0x0c,0xc7,0x88,0x19,0x89,0xd0,0xea,0x30,0x8e,0xc3,0x5b,0x84,0xde,0xe4,0xdc,0x9f, + 0x94,0x74,0x27,0xf4,0xae,0xae,0x7e,0xf9,0x78,0x10,0xe4,0x5d,0x6d,0x06,0xde,0xa3, + 0xcd,0xad,0xf3,0xd6,0x6e,0xb4,0x23,0x11,0x9d,0xd4,0x61,0xc2,0xe0,0xc5,0xdd,0x1c, + 0x74,0xc3,0x72,0xfc,0xc3,0x89,0x47,0x51,0x66,0x56,0xe4,0xc8,0xba,0x78,0xa3,0x66, + 0xb3,0x20,0x33,0x35,0x05,0x7c,0x5d,0x4b,0xd8,0xca,0x39,0xc7,0xd1,0x5d,0x42,0x12, + 0x8c,0x4c,0xaa,0xb5,0x13,0xc1,0xc2,0x71,0x57,0xd1,0xb2,0x56,0xa4,0x30,0x9b,0x56, + 0x39,0x4e,0xe3,0x61,0x9c,0xe3,0xf4,0x5d,0xf2,0x16,0x7f,0xa5,0x12,0x17,0xf1,0x82, + 0x45,0x15,0x0b,0x45,0x5a,0x45,0xad,0x8a,0xb3,0x88,0x13,0x6b,0x71,0xa9,0xf9,0xf3, + 0xa3,0x33,0x5b,0x51,0x4b,0x57,0xd2,0x49,0x95,0xb2,0xb8,0xc2,0x35,0x7b,0xcf,0xfd, + 0xf9,0x9e,0x1f,0x44,0x13,0x6a,0xa8,0x64,0xb3,0xc3,0xfe,0x3e,0x1a,0x34,0x14,0x4d, + 0x6d,0x18,0x97,0xb7,0x46,0xad,0xca,0x27,0xa0,0x3b,0xb0,0x4e,0xfd,0x82,0x73,0x03, + 0x46,0xd0,0x72,0x59,0xdc,0x90,0x61,0x38,0x1e,0xd5,0xf5,0x13,0x23,0xbb,0x15,0xbb, + 0x60,0x16,0xe0,0xca,0x6a,0xef,0x44,0x6b,0x49,0xf2,0xb3,0x42,0x5d,0x1d,0xd7,0x75, + 0x18,0x2a,0x8c,0x59,0x75,0x73,0x93,0x4b,0xba,0xd5,0xe1,0xd4,0x3d,0x92,0x3b,0x84, + 0x36,0xdc,0x67,0x17,0x6d,0x75,0x83,0x2f,0x2b,0x6c,0x34,0xf9,0x5d,0xe2,0x4d,0x80, + 0x69,0x2e,0x8a,0x2f,0x2c,0x4d,0x44,0x01,0x44,0x85,0x70,0x65,0x63,0xa8,0xe4,0xc3, + 0x66,0xff,0x3e,0x4d,0x65,0x34,0x97,0x73,0x2d,0x48,0x03,0x2d,0xc4,0x1a,0xa6,0x12, + 0x96,0x25,0xc9,0xba,0xf1,0x31,0x3f,0xce,0x15,0x89,0x95,0xda,0x9c,0x82,0x80,0xf1, + 0xa8,0xbf,0x69,0x00,0xcc,0xec,0xc1,0x62,0x69,0x2c,0x8d,0x9f,0xcb,0x5b,0x91,0xca, + 0x24,0x5b,0x88,0x3c,0xf6,0xe2,0x03,0x86,0xf1,0xe8,0x99,0xc5,0x0d,0x4c,0x79,0xfa, + 0xd3,0xcf,0x7f,0x04,0x38,0x0c,0xa8,0x22,0x5f,0xc7,0x7b,0xa8,0xdf,0x10,0x61,0x81, + 0x1d,0x82,0x98,0x3a,0x64,0xe1,0x17,0xa4,0xd5,0xdd,0x56,0x88,0x7b,0x02,0x52,0xb1, + 0x81,0x34,0x25,0xea,0xc1,0xd8,0xcf,0x41,0xda,0x67,0xc8,0xc6,0x03,0xe6,0x01,0xfc, + 0x3c,0xa6,0x7b,0x25,0x4b,0x6a,0x09,0x17,0xac,0xca,0x17,0x0f,0x86,0x47,0x7c,0xa7, + 0x9b,0x28,0xff,0x44,0xa7,0x5f,0x08,0xeb,0x84,0xfe,0xee,0x81,0xb5,0x5a,0x22,0x9a, + 0x58,0x04,0x49,0xd4,0x03,0xeb,0x20,0x66,0x59,0x6e,0xc5,0x40,0xb7,0xa1,0x60,0xd1, + 0x9f,0xe5,0x39,0x4b,0x30,0x3f,0xe3,0xb9,0x09,0x47,0x8b,0xe1,0x4f,0x46,0x32,0xbe, + 0x40,0x84,0x36,0x28,0xa5,0x5e,0x64,0xd6,0xca,0x14,0x72,0x95,0x88,0x1c,0x71,0x09, + 0xef,0x36,0x32,0x5d,0x7c,0x91,0x06,0xe4,0x6c,0x26,0x13,0xeb,0xe4,0x9d,0xd7,0x0d, + 0x2f,0xc0,0x28,0x87,0xb5,0xcc,0xc0,0xdf,0x55,0x56,0xc8,0xd4,0xf7,0xf3,0xbe,0x3c, + 0x06,0xac,0x52,0x71,0x87,0x5b,0x79,0x8e,0xe0,0xb3,0x58,0xac,0x30,0xdf,0x2e,0xed, + 0x68,0x5c,0xed,0xa6,0x1d,0x0f,0xee,0x42,0x65,0xb8,0x9c,0x34,0x9c,0x99,0xd2,0xb1, + 0x7d,0x01,0xca,0x99,0x4d,0xa4,0x3c,0x18,0x93,0x59,0xe1,0x75,0xab,0x15,0x76,0x69, + 0xa8,0xdd,0x88,0x1b,0x69,0xea,0x70,0xb7,0xdb,0x8f,0xe1,0xbe,0xd1,0x66,0x3f,0xa9, + 0xde,0x10,0xaf,0xd7,0x39,0xc2,0xfb,0x06,0x3e,0x8b,0x34,0x53,0x77,0xdf,0x32,0x07, + 0xda,0xb0,0xa3,0xe5,0xcf,0x06,0xca,0xb0,0x32,0x50,0x78,0xe1,0x27,0xb1,0x50,0x18, + 0xf1,0xee,0xfa,0xc0,0x5c,0x0a,0x0d,0x6c,0x6d,0x28,0x44,0x8f,0x06,0x36,0x4e,0x65, + 0xc1,0x65,0xb3,0xa0,0x69,0x4b,0x72,0x8d,0x48,0x05,0x9a,0x18,0x2e,0xf1,0xc0,0x8c, + 0x45,0x12,0x4c,0xd2,0xb2,0x09,0xe3,0x98,0xc7,0xe1,0x75,0x69,0x18,0x81,0x65,0x1b, + 0xc1,0x31,0xab,0x99,0xa9,0xc2,0xcf,0xae,0x88,0xee,0x9e,0xf5,0x04,0xca,0xe9,0x92, + 0x91,0xcb,0x7c,0x48,0x0d,0x7c,0xee,0x2b,0x99,0x07,0x29,0x86,0x52,0x81,0xc7,0xef, + 0x21,0xbe,0x2e,0xfb,0xc9,0x12,0x0d,0xf2,0x0e,0x3c,0x78,0xfd,0x57,0x28,0xd5,0x4a, + 0x6a,0xe8,0xa5,0xef,0x17,0x07,0xdd,0x44,0x80,0xbd,0xf5,0xd7,0xbe,0xff,0xda,0xdf, + 0xfb,0xe3,0xa3,0xfb,0x5d,0x77,0xf7,0x37,0x05,0x20,0x97,0x37,0x22,0xf7,0xfb,0x7f, + 0x15,0x6c,0x5b,0x4c,0xd7,0xa0,0x19,0x4b,0x48,0xf8,0x54,0x98,0xf9,0x29,0x70,0x29, + 0xbb,0xc7,0xb2,0x5e,0xe6,0x0d,0x16,0x6d,0x98,0x83,0xe7,0x52,0xa6,0x81,0x68,0x24, + 0x0e,0x84,0x05,0xaa,0x6c,0x7c,0x6e,0x81,0xea,0x8d,0x64,0xfa,0x3d,0x7c,0x98,0x2b, + 0x65,0x24,0xd9,0x44,0xbf,0x91,0xb9,0xee,0x3d,0xa8,0xcd,0x1c,0x32,0x8c,0x5e,0x00, + 0x55,0x63,0x98,0xb9,0x73,0x8c,0x5f,0x10,0xd5,0x0b,0x6a,0x92,0x7d,0xbb,0x2c,0x24, + 0x64,0xee,0x36,0x35,0x1d,0x8a,0xe0,0x71,0xbf,0x2b,0xcb,0x5d,0x97,0x02,0x7d,0xd9, + 0xaf,0xa2,0x48,0x10,0x38,0x99,0x66,0x56,0xb1,0xcb,0x10,0xd7,0x2e,0x5a,0xe3,0x2a, + 0x6c,0xbc,0xd2,0x7e,0xc3,0x25,0x0e,0x3d,0x4f,0x73,0x23,0x3e,0x4b,0x0e,0xb6,0x3b, + 0xe9,0x39,0x13,0x09,0x82,0xb7,0xde,0x6c,0x11,0x93,0x63,0x95,0x19,0xe7,0x0b,0x5b, + 0x05,0xc6,0x79,0x87,0x6c,0xaa,0x42,0x2e,0x82,0x6c,0xb6,0xca,0x79,0xc6,0x99,0x09, + 0xe2,0x90,0xe4,0xb3,0x37,0xc6,0xf1,0xaa,0x51,0xd4,0x7b,0x23,0x83,0xf6,0x5d,0x93, + 0x73,0xb9,0x82,0xb2,0xa3,0x6b,0x1c,0x78,0x32,0xb4,0xd4,0x44,0xe4,0xe0,0x64,0xd7, + 0x18,0x29,0xe4,0xaa,0x72,0x94,0xf7,0xb1,0xe6,0xe0,0x64,0x4b,0x63,0x77,0x11,0xe6, + 0xfc,0x17,0x2f,0xf4,0xe2,0x7e,0x80,0x63,0x3c,0xf3,0x81,0xa0,0xb7,0xf2,0x0d,0xdb, + 0xd1,0xed,0xd6,0x6c,0x5d,0x6c,0x0f,0x50,0x9e,0xbc,0xc7,0x10,0x64,0x90,0xd7,0x6d, + 0xf3,0x38,0xe2,0xb4,0x6b,0x32,0x07,0x69,0xc3,0x52,0xb2,0x4f,0x51,0xa4,0xda,0xf2, + 0x57,0xd8,0xc0,0xb2,0xab,0x87,0x9b,0xd0,0x0f,0xe0,0x81,0xfb,0xb6,0xda,0xbf,0x43, + 0x81,0xfa,0xa5,0xb6,0x03,0xea,0xf4,0xb0,0x81,0x53,0x3e,0xac,0xd1,0x9a,0xba,0xa7, + 0xa1,0x82,0x8e,0xef,0xa3,0x82,0x8e,0x2b,0x15,0xe4,0x96,0xc7,0x8e,0x16,0x1e,0xb8, + 0x98,0x3a,0x4f,0xd5,0xfb,0x3a,0x4a,0x67,0x78,0xd1,0x0e,0xba,0x68,0xf7,0xc5,0x3f, + 0xac,0x8d,0xdd,0xf8,0xbb,0x1d,0x98,0xbb,0x78,0xf5,0x67,0xb5,0x72,0x2e,0xb5,0x0a, + 0xfb,0x3a,0xd5,0x35,0x23,0x41,0x9a,0x59,0x23,0xf3,0x19,0x90,0xa4,0x58,0x4e,0x73, + 0x94,0x64,0x32,0xf5,0xba,0xfe,0xb0,0x44,0x8a,0x4b,0x5b,0xa9,0x7c,0xf8,0xa5,0x98, + 0x29,0xed,0x4a,0xd2,0x44,0xee,0xf4,0x62,0x90,0xbe,0x85,0xb2,0x55,0x0c,0xcc,0xaa, + 0x32,0x4b,0x70,0x3b,0x4d,0x20,0xce,0x59,0x4b,0xf2,0x24,0xd4,0x8c,0x5a,0x92,0xf5, + 0x25,0x53,0xf6,0x1d,0xab,0xcb,0x4f,0x88,0xe8,0x72,0x7b,0x7e,0x79,0x77,0xfd,0x2e, + 0x08,0xfe,0x04,0x27,0x76,0xc6,0x59,0x86,0x3f,0xea,0x66,0x51,0x13,0x7f,0xd5,0x45, + 0xde,0x30,0x58,0x6b,0x81,0x6b,0x17,0xf5,0x75,0x2e,0x85,0x96,0xc6,0x82,0xc8,0x34, + 0x95,0x7d,0x31,0xc0,0x2f,0x40,0xc6,0x37,0x31,0xa9,0x94,0x8f,0x3f,0x9c,0x93,0x02, + 0x61,0x93,0x93,0xcd,0x2c,0xc6,0x1a,0x50,0x4c,0xbb,0x93,0x20,0xb9,0x58,0x15,0x52, + 0x3b,0xa2,0x25,0xe4,0x1a,0x74,0x67,0x1f,0x9a,0xd8,0x74,0xc6,0xba,0x78,0xc3,0x75, + 0x59,0xd3,0xce,0x71,0x17,0xa5,0xe3,0x91,0xc0,0x1e,0xc1,0x8f,0x21,0xb7,0x65,0x0b, + 0x64,0x50,0x3e,0xfc,0x46,0x2b,0x8a,0x02,0xa7,0x30,0x37,0x10,0xa3,0x25,0xf9,0x32, + 0x65,0xb4,0x30,0x0b,0xc1,0xaf,0x7f,0xb9,0x36,0x60,0x14,0x47,0x78,0xb2,0x44,0x7a, + 0x75,0x6d,0x96,0x25,0x21,0x36,0x44,0x83,0x72,0x67,0x6a,0x11,0x28,0xd9,0xa2,0x0a, + 0x22,0x75,0x47,0x26,0xbf,0x59,0xbf,0x1b,0x8f,0xdc,0xb5,0x83,0x48,0x6e,0x6b,0x62, + 0xae,0x33,0x52,0x38,0x38,0x94,0xdd,0x75,0x54,0xbe,0x45,0x7c,0x0c,0xb4,0x33,0xaa, + 0x93,0x90,0xd5,0x69,0xd4,0x42,0x06,0x34,0xec,0xf0,0x09,0x8b,0x22,0x17,0x02,0xab, + 0xa4,0xcf,0x26,0x2e,0x91,0x2b,0x6b,0x9e,0x4a,0x1f,0x0c,0x3b,0xea,0x83,0x1d,0x41, + 0xdd,0x90,0xfb,0x9f,0x10,0x8d,0x41,0xec,0x07,0xa1,0xdc,0x5d,0xea,0xd7,0x45,0x7c, + 0x58,0xeb,0xb3,0xa4,0xb4,0x55,0x07,0xe9,0x3e,0xea,0x26,0xdd,0x37,0xca,0x85,0xd7, + 0xed,0x73,0x5e,0x24,0x72,0x22,0x7f,0x54,0x89,0x7c,0xb7,0x2b,0x3c,0x13,0x8b,0xf2, + 0x94,0x43,0x64,0x4d,0x0a,0xb8,0x05,0xda,0x49,0x10,0xec,0xd2,0x2b,0xf1,0x95,0xa8, + 0x5e,0x45,0x1e,0x9d,0x1d,0x2f,0x53,0xf6,0x27,0x5f,0x00,0x85,0x41,0xb8,0x23,0x24, + 0x26,0x0a,0xdc,0x38,0xc4,0x09,0x45,0x9a,0x52,0x30,0xc4,0x1b,0xa2,0xce,0xcf,0x34, + 0x80,0xfc,0xa7,0xc0,0xd5,0xd7,0x50,0x8c,0x42,0x7b,0x69,0x7c,0xed,0xe3,0xd0,0xec, + 0xaa,0xa0,0x88,0xaf,0xc2,0x8b,0xce,0x5c,0x7b,0x51,0x8b,0x17,0xca,0xe9,0x32,0x03, + 0x55,0xb0,0xd0,0xba,0x37,0xff,0xd4,0x91,0x48,0xe9,0xcc,0x5d,0x9e,0x3a,0x0e,0x3c, + 0xf5,0x00,0xc5,0x4f,0x08,0xdf,0x5e,0x8f,0x63,0xb7,0x88,0x47,0xc9,0xcc,0x85,0x9f, + 0x8e,0x30,0x1e,0x1f,0x0d,0xde,0x68,0xcb,0x5a,0xf0,0xda,0xd8,0xb0,0x4b,0xb3,0xca, + 0x8a,0x6e,0x96,0x91,0x57,0x19,0x62,0x2e,0xe8,0x8c,0x26,0xf7,0xb2,0xfd,0xef,0xb2, + 0xce,0xcb,0xdb,0x3b,0x5d,0x02,0x36,0x8c,0xdb,0x93,0x26,0xa2,0x2c,0xf7,0xf1,0xb7, + 0x15,0x53,0xc3,0x47,0x74,0xdf,0x2a,0x64,0xb3,0x84,0x43,0x69,0xcf,0xb6,0x54,0x2d, + 0xdb,0x50,0xf3,0xd8,0x1b,0x13,0x58,0x24,0x46,0x13,0xbe,0xc4,0x6d,0x63,0x38,0x36, + 0x18,0x4d,0x88,0x8d,0xdb,0xc7,0x90,0xf1,0x61,0x90,0x6a,0xf4,0xd1,0x3e,0x2a,0xc9, + 0x71,0x21,0x4c,0xb2,0xb5,0x47,0x10,0xac,0x33,0x07,0x5b,0xef,0x35,0x7b,0xf7,0xfb, + 0xac,0xb4,0xf3,0xad,0x88,0xcb,0x3d,0x03,0x2e,0xdf,0x8c,0xb3,0x0d,0xc6,0xc7,0xaf, + 0x46,0x9b,0x9d,0xde,0xe7,0x4b,0x69,0x95,0xb2,0xf3,0xce,0x51,0x9e,0x69,0x98,0x11, + 0xdf,0xb5,0x3d,0x6c,0x55,0x44,0x9d,0x45,0x14,0xd2,0x0a,0xa9,0xe8,0xfe,0xb3,0xdc, + 0x9e,0x6e,0x2c,0x2e,0xca,0xc7,0xee,0x57,0x55,0x41,0xd5,0x43,0x05,0x22,0xff,0x1d, + 0x40,0x6f,0xb1,0xc1,0x76,0x0c,0xd4,0x2a,0x98,0xa9,0x3c,0x57,0xab,0xae,0x66,0x5d, + 0x0d,0x23,0xe3,0x93,0x93,0xe3,0x71,0x13,0x23,0x41,0xa0,0xdd,0x0f,0x29,0x0b,0x91, + 0xd4,0x70,0x32,0x1c,0x35,0x71,0x12,0xdc,0xd7,0xb0,0xc3,0x9d,0x88,0xa0,0x71,0x1f, + 0x86,0xf8,0xcc,0x0e,0x1f,0x77,0xbc,0x39,0x3e,0x7e,0x33,0x1a,0xbd,0x39,0x39,0x41, + 0xb1,0x28,0x8a,0x54,0x2d,0xc2,0x67,0x9f,0xa3,0x8d,0x7d,0x17,0xf6,0x53,0x3a,0xb4, + 0x72,0xb8,0xaf,0xef,0x73,0x23,0x31,0x7c,0xc8,0xa5,0xc0,0x3e,0x69,0x70,0x53,0x36, + 0x60,0x1a,0x10,0xc4,0x2e,0xf3,0x94,0x2a,0xc9,0xc9,0x9e,0x5a,0xde,0xc8,0x4a,0x91, + 0x23,0x36,0x66,0xb9,0xb8,0xe9,0x88,0x50,0xac,0x0f,0x3c,0x7a,0x39,0x6c,0x62,0x34, + 0xac,0xd5,0x88,0x2b,0x35,0xd1,0xe8,0x47,0xe2,0x1a,0x8a,0x19,0x02,0xbe,0x8a,0x7c, + 0x19,0x2c,0x9c,0x8b,0xd9,0xec,0xed,0xa1,0x6b,0x6f,0xf4,0x17,0xd8,0x5d,0x54,0xbd, + 0xed,0x91,0x28,0xcc,0xd2,0xa6,0xb2,0x94,0x5c,0x68,0x05,0x8a,0xb3,0x5f,0x01,0x1b, + 0x21,0xcc,0x12,0xc3,0xbb,0x94,0x1f,0xa8,0x1b,0xe9,0x55,0x58,0xbe,0x86,0x65,0x61, + 0xb3,0x1c,0xf8,0x4f,0xdb,0x41,0x29,0x32,0x8d,0xe3,0xbc,0xca,0x13,0x49,0x22,0x4b, + 0xeb,0x9c,0x13,0x36,0x12,0xa7,0xaa,0x20,0xf3,0xaa,0x94,0x52,0xe3,0x52,0xc5,0x66, + 0x79,0xad,0xac,0x60,0xa0,0xb5,0xa4,0xb0,0xbd,0x09,0xeb,0x20,0xa5,0x18,0xef,0x38, + 0x42,0xfe,0x63,0x99,0x69,0x09,0xc2,0xeb,0x8d,0x8e,0x88,0x1f,0x8e,0x87,0x83,0xd1, + 0x28,0x64,0xbd,0x0d,0xca,0x21,0x59,0xe6,0xeb,0xbe,0x3f,0xce,0x86,0x20,0xbf,0x53, + 0x97,0xf3,0xb4,0xd8,0x84,0x04,0x1e,0xd6,0x46,0x15,0x5e,0x29,0xe6,0x21,0xad,0xe4, + 0x80,0x9e,0x2f,0x68,0x3a,0x68,0x23,0x4c,0xa1,0x5c,0x08,0x67,0x0d,0xe7,0xaa,0x6d, + 0xcc,0x5a,0x9a,0x30,0xe8,0x6f,0xd2,0x74,0x21,0x62,0x35,0x1a,0x94,0xc6,0x95,0x49, + 0x12,0x44,0xef,0x16,0xf0,0x0b,0x10,0xd0,0xdf,0x47,0x30,0xd3,0x6a,0xc1,0x46,0x11, + 0x92,0x41,0x67,0x5f,0x85,0x95,0xc4,0xdb,0x9c,0x37,0xb4,0x22,0xb1,0x06,0x56,0x48, + 0x39,0x36,0x73,0x83,0x74,0xc9,0x4c,0x65,0x8b,0xc4,0x40,0xeb,0x73,0x42,0x51,0x4b, + 0xd0,0x34,0x3b,0xcf,0x16,0x99,0x95,0x69,0x0c,0x7f,0x63,0xef,0x61,0xae,0xfc,0x1c, + 0xb7,0x87,0xaa,0xad,0xd5,0x46,0x35,0xb6,0x58,0x6a,0x17,0x26,0x6a,0xd3,0x04,0xbf, + 0x0b,0x9b,0xd9,0x65,0xe5,0x6d,0xee,0x8d,0x7a,0xe6,0xc2,0x86,0xe4,0x86,0x28,0xd6, + 0x2d,0xaa,0xa0,0x62,0x82,0xe2,0xe6,0x1e,0x4b,0xab,0xe2,0xae,0xa5,0x9f,0x2a,0x36, + 0xd8,0xb4,0x44,0xd1,0xae,0x31,0x21,0x82,0xc7,0xb1,0xbb,0x2d,0x7f,0x5e,0x9a,0x90, + 0x3f,0xe7,0x68,0x1e,0xa9,0x8a,0x05,0x0e,0x31,0xf5,0xf8,0xdd,0xae,0x8a,0xa8,0x0c, + 0xce,0x10,0x4d,0xad,0xa2,0x87,0x7b,0x62,0x6a,0xff,0xed,0x21,0xc0,0xff,0x1d,0x31, + 0xbd,0x8a,0xc2,0xc8,0x59,0x9f,0x85,0x4f,0x4c,0xd4,0x2a,0xc9,0xa8,0x70,0x10,0xa4, + 0xd6,0x5b,0xc5,0x61,0x3c,0x8a,0x9f,0xf0,0x47,0x93,0x4d,0x66,0x0a,0x44,0xc9,0xe2, + 0x88,0x53,0x8b,0x6d,0x0c,0xf2,0x23,0x89,0x48,0x59,0x24,0xeb,0x17,0x30,0x45,0xda, + 0xfb,0xbf,0x0d,0x7c,0xf5,0x23,0xf3,0xca,0x87,0xcf,0xb0,0xa8,0xf2,0x75,0xec,0xe7, + 0x73,0xf6,0x43,0xde,0x22,0x65,0xb7,0x42,0x47,0x02,0x56,0x1a,0xaf,0x01,0xcb,0x9f, + 0x90,0x51,0xdb,0x72,0x79,0x67,0x5e,0x2b,0x64,0x7a,0x23,0xf5,0x6f,0x65,0xca,0x5c, + 0xe6,0xcb,0x1e,0xda,0xbc,0x91,0x16,0x72,0x55,0x50,0x43,0xef,0xd3,0xcf,0x7f,0x1c, + 0x7c,0xfb,0xea,0xe9,0x1b,0x9c,0x8e,0x93,0xc2,0xe5,0x3b,0x8a,0x8f,0x8e,0x06,0x21, + 0xa5,0x79,0x72,0xe4,0x93,0x1b,0x43,0x7c,0x40,0xf1,0x0d,0x46,0x79,0x1f,0x90,0x04, + 0xbd,0x2f,0x9d,0x77,0x9e,0xae,0xaa,0x7d,0x37,0xdb,0xbe,0xf4,0x9b,0xd6,0xf6,0xbc, + 0x1f,0x1a,0xae,0x4a,0x2d,0x05,0xd5,0x8a,0x7a,0x3b,0xa4,0xa9,0x7a,0x02,0x04,0x86, + 0x26,0x79,0x3d,0x70,0xb2,0xab,0x37,0x26,0xe3,0x46,0xcb,0xcb,0x46,0xcb,0xab,0x46, + 0xcb,0xeb,0x46,0xcb,0xe0,0xa8,0xd9,0x34,0x68,0x36,0x0d,0x9b,0x2a,0xe9,0x1b,0x97, + 0x93,0xce,0xc8,0x7a,0xa3,0xfd,0x84,0x89,0x7e,0xfc,0x09,0x5b,0xc1,0xba,0x7f,0x5e, + 0xed,0x09,0xd3,0x6a,0xfb,0x85,0xc5,0x96,0x14,0xf0,0xb5,0xcc,0xc1,0x4e,0x31,0x5e, + 0x8e,0x7c,0x74,0xcd,0x2c,0x01,0x3a,0xb3,0xd6,0x45,0x01,0x53,0x61,0xad,0xd4,0x1b, + 0x7b,0x66,0xc7,0x9c,0x09,0xbb,0xc5,0x0b,0x95,0xca,0x47,0xdb,0x97,0xb5,0xde,0x50, + 0x1a,0x32,0x79,0xcf,0x9f,0x6d,0xa3,0xbc,0xb5,0x47,0xc5,0x95,0xfc,0x85,0x2d,0xc6, + 0xfd,0x4b,0xf6,0xfd,0x9c,0xb0,0x34,0xfc,0x2b,0xf8,0x96,0xb6,0x79,0x24,0xc5,0x29, + 0x5e,0x9e,0xa0,0x07,0x1f,0xbe,0xde,0x93,0x7d,0xaf,0xb3,0x85,0xa4,0x1a,0xab,0x9e, + 0x91,0x89,0x2a,0x52,0xd3,0x8d,0x47,0x02,0x7a,0xad,0x9b,0xbd,0x53,0x7e,0x81,0x4f, + 0xc0,0x8f,0xaa,0x02,0x8c,0x07,0x8a,0x8f,0x8b,0x82,0x2b,0xcf,0x98,0x7b,0xbf,0x45, + 0xe5,0xa5,0x99,0xfe,0xa7,0x52,0xfa,0x9f,0x94,0x66,0x14,0x3f,0x92,0xda,0x6c,0xcc, + 0x57,0xe0,0xfb,0x40,0xa3,0xb1,0x42,0x87,0x9a,0xef,0x90,0x0a,0x42,0x83,0x3d,0xcb, + 0xa5,0xd3,0xcb,0x65,0x49,0x96,0x37,0x82,0xe1,0x3c,0x5d,0x36,0xcb,0x3f,0x54,0x05, + 0x81,0x6c,0xf8,0x19,0x1e,0xea,0x41,0x25,0x8d,0xef,0xd0,0x0c,0x4a,0x07,0xbc,0x02, + 0xeb,0x64,0xe3,0x02,0xf9,0x2b,0xb4,0x01,0x20,0xb3,0x71,0xc5,0x60,0x90,0x4a,0xeb, + 0xc3,0x5b,0xce,0x5f,0x34,0xa1,0x50,0x65,0xaa,0x84,0x4e,0xe3,0x4e,0x26,0x51,0x08, + 0xa2,0xb5,0xcb,0xb2,0x36,0x8f,0x6e,0x43,0xa3,0x77,0x99,0x26,0x24,0x07,0x8d,0xd9, + 0x85,0x40,0x62,0x56,0xa9,0xef,0xa0,0xbd,0x8f,0x5a,0x4b,0x72,0xc4,0xac,0x9f,0x22, + 0x0f,0x75,0xf3,0x34,0x47,0x55,0xc5,0xc8,0x5f,0x21,0x95,0x39,0x95,0x92,0x09,0xd3, + 0xcd,0x97,0xd0,0xb7,0x3c,0xa1,0x09,0xdb,0xc6,0x9c,0x69,0x1a,0x16,0x6d,0x70,0x9c, + 0x0c,0x86,0x15,0x17,0x07,0x48,0xee,0x81,0x22,0xfb,0x4d,0x58,0xf6,0xe9,0xb7,0x06, + 0x6c,0xa6,0xe6,0xd6,0x51,0x39,0x9b,0x33,0x62,0xa7,0x93,0x0f,0xef,0x3e,0x42,0x8f, + 0xab,0x3b,0x8a,0x50,0xca,0xcb,0xc9,0xbd,0x45,0x46,0x3e,0xf3,0x14,0xa1,0x9c,0x7c, + 0xf0,0x55,0x5f,0x08,0x7d,0xf6,0x35,0xb3,0xeb,0x8a,0xf3,0x5c,0xe9,0x34,0x2f,0x55, + 0x7f,0x9c,0x61,0x6f,0xf2,0xa8,0x7e,0x40,0xae,0x45,0x99,0xaa,0xdb,0xea,0x88,0x89, + 0x20,0xc3,0x7d,0x89,0x0b,0x2c,0xc3,0x22,0xdf,0x84,0x7c,0x30,0xae,0x40,0x27,0x0a, + 0x4f,0x95,0xa2,0xba,0x14,0xb8,0x11,0x59,0xe1,0xa1,0xbd,0xfa,0xeb,0x60,0x38,0xbe, + 0x05,0x2d,0x13,0x99,0x51,0xde,0x87,0x65,0xdb,0xa3,0x00,0x65,0x67,0x20,0xd6,0xb7, + 0xb4,0xc9,0xbd,0x21,0x1e,0x1e,0x8d,0xb6,0xd1,0xfd,0xe3,0x0f,0x9f,0x20,0xc0,0xed, + 0x01,0xfe,0xe1,0xd6,0x4a,0x4d,0x91,0xc5,0x99,0xa6,0x10,0xb7,0x2c,0xd2,0x3e,0x2a, + 0x86,0x65,0x2e,0xe1,0xf7,0xf3,0x77,0x4f,0x00,0xf8,0x4c,0x2e,0x1e,0x0a,0xfc,0xab, + 0xc1,0xeb,0xe1,0x16,0xf0,0x1f,0x39,0x7a,0xe0,0xc5,0x8f,0xe1,0x9c,0x8c,0x3f,0xc3, + 0x67,0x99,0x2e,0x13,0x19,0x42,0x15,0x24,0x17,0x7f,0xba,0xbc,0x82,0x2c,0xcd,0xfd, + 0xe8,0x47,0x1d,0x83,0x57,0x70,0xdb,0xed,0x3b,0xc1,0x96,0x10,0x38,0x7a,0x3d,0xf6, + 0x7e,0xdc,0x6d,0x69,0xf8,0xdd,0x59,0xd4,0x38,0x66,0x8d,0x8f,0xee,0x38,0xd2,0xc7, + 0xa5,0x5d,0xf7,0x93,0x75,0xe2,0x85,0x3a,0x3b,0x8f,0x81,0xa9,0x4e,0xc9,0x07,0x63, + 0xbf,0xdd,0x70,0xc4,0x26,0x2b,0x96,0x6a,0x69,0x42,0xf7,0xc3,0x0f,0x4b,0xe0,0x52, + 0x26,0x84,0x62,0x3c,0x1d,0x2e,0x07,0x0b,0xe9,0xea,0x9c,0x4e,0xb5,0x9a,0x36,0xf3, + 0x04,0xcf,0x89,0x34,0xc9,0xe5,0x57,0x99,0xb7,0x58,0xfd,0xbc,0x3b,0x0f,0x68,0x58, + 0x25,0xa8,0x25,0x07,0xd0,0xc3,0xb3,0x52,0x9e,0x95,0xff,0xc4,0x40,0x6b,0x44,0x0d, + 0x39,0x66,0xd8,0xd6,0x77,0x1c,0x4d,0x8e,0xdb,0xfa,0x50,0x74,0x8f,0xda,0xfa,0x4e, + 0xa2,0xc9,0x09,0xf4,0xa6,0x22,0x67,0x6d,0xd5,0xba,0x35,0x4a,0x87,0x71,0x5b,0xdf, + 0xcb,0x68,0xf2,0xb2,0xa5,0x8f,0x04,0xe2,0xab,0xb6,0xbe,0xd7,0x51,0xc3,0x31,0xab, + 0xb0,0x72,0x84,0x68,0x39,0x6a,0xeb,0x5d,0x88,0x62,0x29,0x10,0x95,0x9f,0xf8,0x13, + 0x2c,0xa7,0xae,0xef,0x0a,0x1f,0xd6,0x58,0xc2,0x3d,0xe0,0x6f,0x4a,0x9f,0xd2,0xb4, + 0x78,0xd2,0x15,0x03,0x90,0xf7,0xba,0x40,0xd6,0xe9,0xcf,0x32,0x99,0xa7,0x55,0x09, + 0xbb,0x6f,0xde,0x47,0xf5,0x30,0xb5,0x41,0xf8,0x23,0x67,0xfe,0xf8,0x80,0x65,0xc3, + 0x3f,0x6e,0xc1,0xcb,0x18,0xf1,0x32,0x06,0xb3,0x5e,0x4c,0x55,0x6e,0x5a,0x99,0x61, + 0x88,0xdc,0x30,0x0c,0xa3,0xba,0x3b,0x8b,0xcc,0xf7,0xc1,0x4d,0x0b,0x67,0x0f,0xc8, + 0x6e,0xe3,0x7d,0x77,0x35,0x61,0x95,0x15,0x29,0x4e,0xee,0x61,0x96,0x3a,0xd1,0xea, + 0xb4,0x8b,0x45,0x49,0xcb,0xd3,0x26,0xc1,0x86,0x3c,0x3a,0x3a,0xda,0x38,0x99,0xfc, + 0xbf,0x86,0x29,0xd9,0x1a,0x5e,0xc8,0xa5,0x2c,0x1f,0x0e,0x82,0xa1,0xe9,0xed,0x50, + 0x74,0x37,0x68,0x2b,0xac,0xf1,0xcf,0x6a,0xf8,0x7e,0x75,0xc0,0x04,0xab,0xa4,0xa6, + 0x2c,0xa5,0x08,0x3a,0xec,0x47,0xa5,0x57,0x42,0xa7,0x2e,0x9a,0x65,0xb5,0x98,0xcd, + 0xb2,0x24,0x06,0x0a,0xc0,0x9f,0x81,0x33,0x2e,0xfa,0x9c,0x7e,0xe8,0x19,0x9b,0xe5, + 0x79,0xa8,0xba,0x32,0xac,0x29,0x42,0x91,0x95,0x39,0x88,0x1f,0xa7,0xed,0x18,0xa0, + 0xae,0x52,0x33,0x18,0x4f,0x55,0x6e,0x1a,0x53,0xd3,0xb5,0xec,0xdb,0xa8,0x3d,0xf8, + 0xcd,0x15,0xb5,0x82,0x73,0x30,0xd0,0x43,0x7a,0x74,0xf3,0x4b,0xdc,0x84,0x18,0x51, + 0x4e,0x32,0x34,0xdf,0x35,0xe8,0x46,0x77,0x9a,0xc0,0x93,0x23,0x38,0x23,0x6d,0xd3, + 0xa1,0x62,0xe7,0xc7,0x5c,0xa9,0x74,0x03,0xd6,0x5c,0x77,0x74,0x97,0x66,0x34,0x2d, + 0xde,0x0f,0xdc,0x60,0xfc,0x6a,0x1f,0x70,0x2f,0x40,0xe6,0x46,0xc2,0xf1,0xb3,0x82, + 0xe3,0x97,0x38,0x9a,0x01,0xed,0x16,0x8d,0xdf,0x8e,0xb8,0x12,0x2c,0xb5,0xa8,0x3c, + 0x9f,0x89,0x04,0x8e,0xab,0x56,0xc0,0x5f,0xa5,0x69,0x0b,0xbd,0xfe,0xac,0x4a,0x97, + 0x06,0x71,0xc5,0x42,0xbc,0x56,0x60,0xc6,0xad,0xf0,0xe9,0xcc,0xf1,0xaa,0xc1,0x38, + 0x3c,0x6b,0x7d,0x96,0x46,0x4e,0x8f,0x8b,0xac,0xc0,0x31,0x99,0x59,0x43,0x41,0x6f, + 0xbe,0xa7,0x6a,0x49,0x6f,0x4e,0xac,0x52,0xb8,0xf1,0xca,0xc7,0x61,0x4b,0xa1,0xad, + 0x09,0x89,0x39,0xe6,0x77,0xb5,0xb4,0xf4,0x9b,0x5f,0xde,0xc5,0x1d,0x92,0x2a,0xc3, + 0x57,0xad,0x9c,0x85,0xf1,0x7e,0x0f,0xf7,0x9c,0x0f,0xda,0x99,0x7c,0x48,0xa5,0x1a, + 0xc9,0x9a,0xfc,0x1b,0x28,0xe6,0x69,0x34,0x1e,0xc5,0xe0,0x5f,0x4d,0x01,0x7e,0xef, + 0xc0,0x5e,0x08,0x5b,0x60,0xae,0xfb,0x03,0xe7,0xf9,0xeb,0xe1,0x30,0xbe,0x0a,0x20, + 0x76,0xf1,0xbf,0x18,0xc9,0x35,0xc0,0x97,0x85,0x49,0x54,0x29,0xd3,0x07,0x63,0x37, + 0x0e,0x2b,0x34,0x8f,0x70,0x9f,0xfa,0xfd,0x77,0xa5,0xcb,0xdb,0x59,0x05,0xae,0x96, + 0xd4,0xb8,0xb2,0xcf,0x42,0x85,0x1a,0x4e,0xde,0x25,0x86,0x80,0x83,0xbd,0xb4,0xe9, + 0x20,0xc6,0x86,0x27,0xe3,0x2d,0xb9,0xa5,0xca,0xca,0x79,0xdb,0x93,0x57,0x55,0x65, + 0xec,0x86,0xdd,0x3b,0x3a,0x45,0x45,0xec,0x0b,0x36,0x7a,0xdc,0x97,0xd6,0x71,0x2a, + 0x95,0x14,0x7f,0xc6,0x81,0xfe,0x5b,0xdb,0x48,0x63,0x75,0x46,0x80,0x5c,0xf1,0x67, + 0xa7,0xe4,0xeb,0x47,0x8d,0xe4,0xf5,0x94,0x76,0x58,0x0e,0x8f,0x19,0x72,0xb2,0x5f, + 0xd6,0x80,0x02,0x46,0xaf,0x6b,0x2f,0xd9,0xe7,0x82,0x12,0x73,0x6e,0x0f,0xa9,0xe1, + 0x0c,0x66,0x92,0x64,0x83,0xd3,0x29,0x44,0xae,0x9c,0x81,0x4c,0x83,0x8f,0x9c,0xe2, + 0x16,0x25,0xca,0xa5,0x3b,0xb9,0xb2,0x59,0x77,0xc3,0x95,0x40,0xdd,0x2a,0xa7,0xf9, + 0x69,0x91,0x0b,0x1c,0xb1,0x39,0xbf,0xa7,0x1e,0x67,0xbf,0x46,0x0c,0x25,0x99,0xc1, + 0x9b,0x80,0x1f,0xf8,0x1b,0xd0,0x06,0x15,0xed,0x1b,0xc8,0xbb,0x5e,0xea,0xc2,0xa5, + 0x98,0x54,0x15,0xc2,0x22,0xd4,0xe5,0xf4,0x60,0xfb,0x8b,0xd4,0x21,0xd4,0x45,0xee, + 0x8f,0xab,0xc5,0x94,0x99,0xae,0x9e,0xfa,0x34,0x11,0xd2,0x7a,0xd4,0x5f,0xb8,0xe6, + 0xda,0xae,0x1f,0x5e,0x18,0xfe,0xdf,0x5e,0x17,0x1e,0xc2,0x7f,0xa7,0x90,0x35,0x2a, + 0xc1,0x63,0x78,0xcf,0x29,0xde,0xb3,0xa7,0x29,0xe8,0xfe,0x6f,0xaf,0xe7,0x7e,0x50, + 0xed,0xf5,0x7f,0x4e,0xe9,0x75,0x3b,0x05,0x5b,0xcb,0xaa,0x59,0x5f,0xf3,0x6e,0xcf, + 0x4d,0xbd,0xba,0x9a,0xd8,0xca,0x57,0x77,0x1d,0x3c,0xb0,0x32,0xba,0x63,0x61,0x74, + 0xb7,0x6b,0x71,0xe9,0xb8,0x0b,0x6f,0x53,0x9b,0xa5,0x73,0x1d,0x24,0x17,0xf3,0x19, + 0x3f,0xed,0xa4,0x9a,0xd4,0x65,0x99,0x2b,0x91,0xf2,0x23,0x2c,0xba,0xbd,0x2c,0x49, + 0xfa,0x80,0x53,0x68,0x2d,0xe7,0xc1,0x09,0x7f,0x89,0x01,0x17,0xc8,0x8a,0xbf,0x73, + 0x70,0xda,0xd5,0xc2,0x06,0x73,0xc6,0x61,0xa0,0x3d,0x5c,0xc2,0x45,0x82,0xfe,0x3d, + 0x84,0xb7,0xfe,0x2f,0xa5,0xce,0x54,0x8a,0x98,0x9e,0x73,0x71,0xd4,0x21,0x75,0x1a, + 0xe0,0x35,0xc3,0x48,0x57,0xca,0xff,0x28,0xfb,0x9e,0xf1,0xe8,0x56,0x6b,0x31,0xf2, + 0xdb,0x40,0x0e,0x18,0xf5,0xca,0x20,0x80,0xfd,0x49,0xf0,0x73,0x2b,0x83,0x0a,0x38, + 0x99,0xbb,0xf7,0xca,0x79,0xee,0xc7,0x6c,0xec,0x46,0xa4,0xae,0x5a,0x3d,0x1e,0x6e, + 0xb7,0xea,0xbd,0x01,0x7f,0x97,0xa6,0xa0,0xc5,0x0a,0xf8,0xcf,0x17,0x07,0xb8,0xdf, + 0xe5,0x5c,0xf6,0x5f,0xa4,0xae,0x62,0x6e,0x99,0xe7,0xcc,0xed,0x3c,0x26,0x60,0x1d, + 0x27,0x3d,0x15,0xca,0x71,0xa9,0x7b,0x82,0x1d,0xbc,0xed,0xb4,0x8e,0x70,0x6c,0x2e, + 0x95,0xb6,0xa1,0x91,0x1f,0x90,0xba,0xaa,0x85,0x50,0xce,0xf0,0x04,0xc0,0xde,0x3e, + 0x90,0x37,0x82,0xc5,0xaf,0x1b,0x4c,0x1d,0x3a,0xc0,0xb2,0xfa,0x14,0x45,0xea,0x6c, + 0x34,0x03,0xbd,0xcb,0xab,0xcf,0xef,0x3e,0xb9,0x7c,0x8b,0x8b,0x33,0x1f,0x3c,0xfe, + 0x04,0x1b,0x38,0x1e,0xe7,0xc9,0xb6,0xa6,0xd4,0x7c,0x70,0xdf,0x56,0xd4,0x69,0x35, + 0x04,0x19,0x1e,0x7b,0xfb,0xa0,0x14,0xe5,0xbb,0x3c,0x87,0xeb,0xbf,0xb6,0x8d,0xf0, + 0xde,0x00,0x89,0x52,0x70,0xdf,0x1d,0xfe,0x3a,0x99,0x77,0x75,0x36,0xaa,0xcc,0x38, + 0xbe,0x13,0x9d,0x1e,0x0a,0x5d,0x39,0x99,0x14,0x9c,0xdd,0xae,0x3e,0x7c,0x40,0x49, + 0x98,0xb7,0x93,0x55,0x1c,0x57,0xe9,0xa1,0xa7,0xa1,0xd5,0x79,0x60,0x85,0x2d,0x48, + 0xe7,0x6a,0xd9,0xd5,0xb1,0xaf,0xb3,0x53,0x03,0xea,0x61,0x88,0x1f,0x1d,0x8f,0x5b, + 0x6d,0x21,0x35,0xb3,0xb2,0x00,0xab,0x82,0xc5,0xc3,0x17,0x75,0xe7,0x42,0xf4,0x06, + 0xc3,0x3e,0xae,0xf1,0x02,0x7c,0xa9,0x25,0x0c,0x47,0x07,0xf1,0x7d,0xfc,0xff,0x7d, + 0xcf,0x74,0x30,0x97,0xba,0xff,0x9d,0x4e,0x7d,0x15,0xce,0x18,0xfb,0x58,0xc1,0xd5, + 0xf9,0xa7,0xcb,0xbd,0xc5,0xec,0xd7,0x97,0xfe,0xcf,0xe3,0x74,0xb5,0x55,0x0a,0x5b, + 0xde,0x6d,0x9a,0xd4,0x2b,0xa9,0x4b,0xa5,0xfe,0xa3,0xbd,0x7f,0xef,0x6f,0xdb,0x46, + 0xf6,0xc7,0xf1,0xff,0xfd,0x28,0x18,0x6e,0x8f,0x43,0x56,0x94,0x2c,0xdb,0x49,0xda, + 0x4a,0x61,0xf4,0x72,0xdd,0xb4,0xcd,0x69,0x6e,0x27,0x76,0xb7,0x7b,0x3e,0x8e,0x37, + 0x1f,0xd9,0x92,0x6d,0xd5,0xba,0xad,0x28,0x5f,0xb2,0x92,0x7f,0x8f,0xfd,0xf7,0x9e, + 0xc1,0x70,0x08,0x10,0x94,0xec,0x6c,0xce,0x7e,0xef,0xed,0x2b,0x16,0x09,0x0e,0x06, + 0x83,0x01,0x30,0x00,0x06,0x83,0x99,0x21,0xc1,0x62,0xf5,0x79,0x5e,0xc5,0x59,0x71, + 0xa4,0x05,0xd9,0x43,0x6e,0xdb,0x64,0xb6,0x06,0x04,0xc4,0xe1,0x7a,0xcb,0xcc,0x75, + 0xc7,0xe4,0xff,0x04,0x2a,0x08,0xa4,0x77,0x07,0xaf,0xfe,0xf6,0x90,0xd5,0xf1,0x5c, + 0xb2,0x3c,0xa4,0x3e,0x6f,0x0e,0x0e,0xbf,0x7b,0xf3,0xd3,0x61,0xf2,0x66,0xb7,0xb1, + 0xd3,0x68,0x26,0x6f,0x10,0x61,0x65,0xbb,0xb1,0xc2,0xae,0xab,0x6a,0x33,0x4c,0x1e, + 0x2e,0x95,0xd6,0xdf,0x0f,0xf7,0x69,0x77,0x81,0xed,0xc2,0x43,0xfa,0xb0,0xd2,0xd9, + 0x30,0x79,0x72,0x33,0x1f,0xed,0xbc,0xdb,0x4f,0x94,0x8e,0xfb,0x04,0x3d,0xf5,0x87, + 0x00,0x6b,0xf5,0xf1,0x5c,0xa7,0x23,0x3e,0xc8,0xcf,0x8d,0x9a,0x7b,0x5f,0x25,0xbb, + 0xb3,0xf1,0x68,0xba,0x5e,0x62,0xbb,0x8d,0xc6,0xe4,0xb0,0x85,0xe8,0x15,0x42,0x17, + 0xdc,0xbb,0x5c,0x96,0x12,0x1a,0x9a,0xa1,0xba,0xe1,0xee,0xdb,0x88,0xb2,0xd7,0x95, + 0x07,0x6e,0x44,0x8d,0x83,0x13,0xdd,0x88,0xae,0x5a,0x8b,0xb2,0x69,0x38,0xad,0x2f, + 0x19,0x7e,0xc6,0x3c,0x95,0x5b,0x5a,0x9a,0x59,0x5d,0x12,0xb0,0xb0,0x36,0x17,0xab, + 0x6e,0xa0,0x08,0xe6,0x6d,0x34,0xcf,0xa8,0xd6,0x9d,0x77,0x0c,0x79,0x8c,0x04,0xb5, + 0x66,0xb0,0xae,0x72,0x35,0x82,0x9f,0x07,0x80,0xc5,0x3e,0x8c,0x53,0x5f,0xbd,0xe7, + 0x35,0xad,0xb1,0xa3,0x14,0x4f,0x27,0x13,0xb3,0x96,0x10,0xe7,0x4f,0xe2,0x66,0xef, + 0xff,0x1a,0x5e,0x96,0x50,0xaf,0x7f,0x9f,0x9b,0x25,0x20,0xff,0x3f,0xdf,0xcf,0x12, + 0x88,0xf8,0xbf,0x92,0xa3,0x25,0x90,0xf3,0x7f,0xbe,0xa7,0x25,0x10,0xf1,0xff,0x0a, + 0x57,0x4b,0xff,0x4f,0x70,0xa6,0xa4,0x96,0x2e,0xdb,0xf5,0xed,0xdd,0xe0,0x86,0x4d, + 0xfc,0xc5,0xc1,0x51,0xe1,0xf2,0x88,0xfd,0xbe,0xad,0x77,0xac,0x64,0x19,0x79,0x43, + 0xa7,0xd8,0x1f,0xe6,0x8e,0xe0,0xb0,0x6f,0x20,0xfc,0xbd,0xbc,0x91,0xc4,0xed,0x12, + 0xc9,0x33,0xa9,0x47,0x1b,0x0f,0x5f,0x75,0xd3,0x66,0xbb,0xb9,0xf3,0xa4,0x18,0x52, + 0xb9,0x55,0x83,0x7f,0xf4,0xeb,0x8e,0x18,0x82,0x23,0xb0,0xb0,0x42,0x9d,0x2b,0xaa, + 0xdc,0xab,0xd1,0xea,0x1b,0x34,0x63,0x64,0x7c,0xcb,0xeb,0x8f,0x21,0x30,0x65,0x73, + 0xbe,0x2a,0x0b,0x63,0xf2,0xb8,0x3a,0x0b,0xb7,0x45,0xe1,0x2f,0x24,0x12,0xbb,0xd8, + 0xf8,0xe1,0x27,0xc0,0xae,0xc2,0x14,0xa7,0x36,0x28,0x8e,0x2c,0x03,0xaa,0xcd,0xd8, + 0xbe,0xfc,0x2a,0x76,0x6f,0xf2,0x81,0x99,0xce,0x97,0xa7,0xf9,0x89,0xdb,0xf5,0x8b, + 0xef,0x76,0x8b,0x97,0x4f,0xf4,0x15,0x96,0xcb,0x76,0x01,0xaf,0x39,0x39,0x8a,0xc5, + 0x63,0x28,0x9e,0x2d,0xec,0xf7,0x4c,0xe2,0xac,0x5f,0x79,0xe0,0x2c,0x2e,0x36,0x3b, + 0x2c,0x0d,0x38,0x3b,0x67,0xae,0x63,0x06,0xb6,0xa8,0x9d,0x74,0xe7,0x12,0xc9,0xc7, + 0x8d,0x7e,0xe0,0x85,0x33,0x43,0x5b,0x7b,0x91,0xcc,0xb0,0x12,0x5c,0x79,0x27,0x82, + 0x83,0x1f,0x32,0x1f,0xe4,0xf1,0x61,0x4d,0x8a,0xeb,0x08,0x24,0x64,0xba,0xd3,0x20, + 0xfa,0xed,0xc7,0x98,0xd1,0x3e,0x37,0xe1,0xfb,0x18,0x15,0x0a,0x9b,0x5d,0xd6,0xe9, + 0x7b,0xe1,0x9c,0x99,0x8f,0x39,0xb6,0x0c,0x50,0x7e,0x99,0x75,0x90,0xf5,0xf9,0x14, + 0x40,0x4d,0xc9,0x2b,0xf1,0x8c,0x09,0xae,0x1a,0xd1,0xda,0x33,0x4b,0xde,0x14,0x48, + 0x63,0xd4,0xcb,0x0a,0xfc,0xac,0x72,0x37,0x43,0xb0,0xb2,0x9d,0x79,0xb0,0xd3,0x21, + 0x1a,0x5a,0x3c,0x5c,0x83,0xcf,0xfd,0x79,0xe3,0xbe,0xae,0x81,0xfe,0x75,0x5f,0xc7, + 0xd0,0xa2,0xed,0x58,0xa6,0x25,0x38,0x72,0x19,0x4e,0x75,0x94,0x27,0xff,0x23,0x22, + 0xc4,0x84,0xa5,0x55,0x72,0x36,0xf5,0x7c,0x2f,0x3b,0xf3,0xa5,0x4b,0x97,0x22,0xaf, + 0xb3,0x9b,0xa8,0x87,0x2d,0x3a,0x36,0x74,0x00,0xd1,0x74,0xfc,0x07,0xdf,0x69,0xa7, + 0x21,0xb4,0x39,0xc4,0x81,0x4e,0x3b,0x60,0x4c,0x3a,0x8c,0xaa,0x89,0xf8,0xc2,0xc5, + 0x0d,0x7e,0x7e,0xed,0x0f,0xa7,0x54,0xc8,0x05,0x7e,0x05,0xf9,0x17,0xd6,0xb0,0x38, + 0x46,0xf9,0xd2,0x6a,0x0e,0xce,0xa2,0x47,0x78,0x6c,0x9c,0x5c,0x65,0x9f,0x63,0x3c, + 0x7c,0xb8,0x1a,0x47,0x47,0x8f,0x0b,0x7c,0x8f,0x8f,0x41,0x58,0xf1,0xfa,0x3f,0x5e, + 0x77,0xbe,0xa1,0x4b,0x95,0xe7,0xdd,0xe9,0xda,0x65,0x49,0x1e,0xac,0x46,0xea,0x2d, + 0x6f,0x95,0xbb,0x44,0x2b,0x74,0x0d,0xbe,0xbb,0x1f,0x38,0x2c,0x4d,0xa0,0x0c,0xd4, + 0xa4,0x35,0x06,0xc0,0x1a,0x52,0xa4,0xdc,0x23,0x25,0xd6,0x87,0xf1,0xb2,0xad,0x5d, + 0xd3,0x5f,0xb0,0x6b,0x39,0x83,0xb1,0xbf,0x30,0xac,0x5c,0x9a,0x57,0xad,0xe0,0x37, + 0xb2,0x29,0x9c,0x96,0xf3,0xce,0x50,0x17,0x83,0xec,0xd4,0x00,0x2b,0x27,0x5a,0x5e, + 0x60,0xd7,0x30,0x29,0xed,0xac,0x89,0x88,0xa0,0x9b,0xdf,0x13,0xf4,0x27,0x2a,0x26, + 0x8a,0x72,0x7d,0x79,0x33,0x6e,0xd8,0xcd,0x78,0xc0,0xbe,0xaa,0xa9,0x1d,0x67,0x57, + 0xde,0xaa,0xbc,0xaa,0x31,0xc5,0x3d,0xbf,0x30,0x14,0x92,0x1d,0x7e,0xfa,0x5f,0x1c, + 0x76,0x4f,0x9e,0x6f,0xd1,0x83,0xde,0x81,0x17,0x9e,0x5a,0x30,0x9b,0x57,0x34,0x12, + 0x19,0x4c,0x12,0x7a,0x45,0x02,0x9a,0x35,0xa3,0xdb,0xdd,0x92,0xcd,0xc6,0xfd,0x32, + 0x3b,0x15,0x18,0xf4,0xe6,0xd1,0x20,0xcb,0x1c,0xd4,0xc6,0xb1,0xfa,0x08,0x35,0x1b, + 0xa0,0x5c,0x0e,0xfb,0xc7,0xe7,0x0b,0xa8,0x0d,0xad,0xaa,0xcc,0xdd,0x35,0xa1,0xc6, + 0xab,0x96,0xef,0x4b,0x7b,0x8b,0x7d,0xab,0x3b,0x15,0x96,0x08,0xd1,0xdc,0x17,0xf4, + 0x85,0xda,0x43,0x13,0xea,0x58,0x09,0xb1,0xe2,0xe0,0x3e,0x99,0xe7,0xed,0x1e,0xac, + 0x21,0x45,0xad,0x34,0x9b,0x43,0x37,0xca,0x2b,0x0b,0x7e,0x59,0xbf,0xa8,0x18,0x15, + 0x14,0x39,0x4b,0x08,0xde,0x58,0x38,0xee,0x3c,0x64,0xe1,0xb8,0x76,0x8c,0x6a,0x14, + 0x51,0x1d,0x60,0xee,0x76,0x70,0x36,0xa1,0x79,0xc1,0x9c,0x3d,0x86,0x81,0xed,0xb5, + 0x9e,0x1c,0x37,0x9d,0x7c,0x76,0x9c,0x4e,0x67,0x02,0x61,0x0c,0x16,0xd1,0x59,0x67, + 0x57,0xe5,0xe9,0x46,0x62,0xab,0x86,0x2f,0x4c,0x76,0xcd,0xc9,0x3c,0x74,0x17,0x4b, + 0x0f,0xe2,0xe3,0xd7,0x48,0x33,0xd6,0x4b,0xf0,0x3e,0x95,0x08,0x65,0xf6,0x67,0xee, + 0x1e,0xf5,0xdf,0x53,0x2e,0xbb,0x55,0xe7,0x72,0x51,0xe6,0x3e,0xbd,0x68,0x91,0xe5, + 0xe9,0x5b,0x23,0xbb,0xe6,0xbc,0xc7,0x19,0x0a,0xa9,0x13,0x87,0xb8,0xd9,0x2d,0x49, + 0x34,0x11,0xe4,0xac,0xe6,0x7c,0x2b,0xbd,0xae,0xe8,0xec,0xce,0x7a,0x8a,0x52,0xaf, + 0x1d,0x8c,0x95,0xdf,0xf7,0x9d,0xd7,0x73,0x8c,0x52,0xee,0x2a,0xfc,0x58,0x2d,0xd1, + 0x25,0x34,0xa8,0x01,0xeb,0xdf,0x72,0x0c,0x37,0xe9,0x0b,0xfe,0xfe,0xeb,0x09,0xed, + 0xbf,0xca,0xc1,0x8a,0x25,0x58,0x84,0x00,0xfb,0x8e,0x16,0xfd,0xf0,0xa4,0xe0,0xa6, + 0x31,0xbd,0xee,0xfb,0x1e,0xe5,0x39,0xba,0xc4,0x64,0x58,0xb1,0xc8,0x7a,0xea,0xc5, + 0x37,0xfc,0xa1,0xed,0x04,0xbd,0xd9,0x29,0x47,0x39,0x39,0x3b,0x8f,0x89,0xb8,0xe1, + 0x00,0x02,0x70,0xca,0x6e,0xca,0x44,0x6b,0x4b,0xd6,0x08,0xf4,0xbe,0x4f,0x5b,0x8f, + 0x21,0xa5,0xc4,0xb9,0x77,0x4b,0xcc,0x16,0x74,0x46,0xcc,0xa7,0xce,0x83,0x4c,0x4c, + 0x3e,0x1b,0xcf,0x4f,0x66,0x22,0xf4,0xaa,0x56,0x7f,0x95,0x6b,0x3f,0xb8,0x3f,0xef, + 0x66,0x97,0xfd,0x5e,0x12,0x9c,0xaa,0xe7,0x4d,0xf2,0xc0,0xf1,0x87,0xf8,0x19,0x7f, + 0x45,0x9c,0xc0,0xb0,0x62,0x7a,0xb6,0xe8,0xeb,0xc1,0x1c,0x7b,0x7a,0xbd,0x78,0x44, + 0xe9,0xc5,0x16,0x1d,0x75,0xe0,0x8a,0xb0,0x1b,0xfe,0x83,0xee,0x19,0xba,0x14,0x69, + 0xcc,0xf6,0x2f,0xa0,0x46,0xeb,0x7b,0x4e,0x02,0x14,0xfc,0x17,0xf2,0x5f,0x00,0xdc, + 0x15,0x54,0x7f,0x37,0xbd,0xb5,0x1a,0xfd,0x6a,0x36,0xc4,0x3a,0x69,0x3e,0x9f,0xb6, + 0xb6,0xb6,0x70,0x75,0xa0,0x01,0x43,0xc0,0xc6,0x93,0xc6,0x36,0x11,0x21,0xd8,0xb6, + 0x26,0x43,0x5f,0x89,0x58,0x75,0x2e,0xb2,0xfd,0x04,0x98,0x4b,0x95,0x01,0x15,0x36, + 0x85,0x8f,0x33,0xaa,0x2f,0x2f,0xfa,0x58,0x30,0x31,0x0f,0x54,0xff,0xf1,0xdf,0x76, + 0x24,0x01,0x73,0x5d,0x7f,0x90,0xc1,0x95,0x29,0x1b,0xff,0x0c,0xe4,0xba,0xb4,0xa5, + 0x97,0xec,0x07,0x06,0x93,0x6a,0x30,0xa5,0x29,0xa5,0x4f,0x25,0xa2,0x0f,0x18,0x90, + 0x8f,0x35,0xb8,0x1a,0x13,0x8f,0xef,0xd8,0xd2,0xcf,0xfa,0x60,0x26,0x45,0x9a,0x55, + 0x73,0xa0,0x87,0xbb,0x43,0x6a,0xae,0x74,0x87,0xd4,0x43,0x14,0x0a,0xf6,0x10,0x7f, + 0xde,0x9f,0xbf,0x1c,0xf6,0xe9,0xf1,0xc7,0xcf,0xaf,0x7a,0xd1,0x63,0x19,0x5d,0x8f, + 0xe3,0x06,0x73,0xf0,0xf5,0x80,0x9d,0x60,0x8c,0x50,0x9b,0xe8,0x31,0xad,0x8a,0x1f, + 0x3f,0xd0,0x7f,0x12,0x1a,0x95,0x7c,0x4e,0xa9,0xdf,0x24,0xa1,0xfc,0xbe,0xc1,0xcd, + 0xda,0x08,0x1d,0xde,0x04,0xea,0x89,0x16,0x2d,0xd2,0x0c,0xf7,0xdd,0x27,0x1a,0x0f, + 0x98,0x9f,0x55,0xf2,0xf8,0x03,0x9e,0xfd,0x43,0x05,0x1c,0xb0,0xda,0x29,0x8d,0x3d, + 0x8c,0xc9,0x56,0xdc,0x0d,0x0f,0xc3,0x03,0x7d,0x6a,0xc3,0x8e,0xb2,0x73,0x25,0xc0, + 0x77,0xe0,0xea,0x0a,0xa1,0x50,0xaa,0x3e,0xf5,0x17,0xee,0x82,0x6d,0x30,0x5d,0xdd, + 0x39,0xdf,0xfa,0x4e,0xc6,0x5a,0x18,0xe2,0x68,0x4f,0x17,0x03,0xad,0x4d,0x2f,0x43, + 0x6d,0x63,0xbf,0x41,0x40,0x8a,0x17,0x48,0x9c,0x48,0xeb,0x2a,0x79,0xd5,0x24,0xb4, + 0x2d,0x14,0xcf,0x7c,0x14,0x4e,0x45,0x4e,0x27,0x70,0x15,0x10,0x56,0x36,0x35,0xba, + 0xf0,0x60,0x8a,0x93,0xd6,0x90,0x42,0x27,0x88,0xb9,0x5d,0x7b,0x03,0x5c,0x0b,0x0e, + 0x5e,0xbe,0x3d,0x7c,0xf5,0xf6,0xe5,0xeb,0x34,0xfc,0x56,0xfe,0x33,0x1f,0x00,0x95, + 0x2e,0xc8,0x84,0xaf,0x15,0x86,0x09,0x3b,0xc0,0xe8,0xb5,0xb8,0xb7,0x25,0xb0,0xa3, + 0x23,0xaf,0x73,0xc5,0xdb,0xfe,0x70,0x20,0x2f,0xa4,0x6a,0x7a,0x9f,0x5d,0x3e,0x7b, + 0x22,0xef,0xb9,0xfa,0xf6,0xc0,0xb8,0x2c,0x54,0x14,0x63,0x38,0x21,0xce,0xde,0xcb, + 0x47,0x49,0x63,0xeb,0xe0,0xdc,0x05,0x93,0xa4,0x65,0xb9,0x97,0x54,0xeb,0xdd,0x2a, + 0x1b,0xcb,0xf3,0xac,0xd5,0x4c,0x4e,0xcf,0xce,0x5b,0x63,0x98,0x48,0x24,0x64,0x0a, + 0xd6,0x5a,0xdc,0x25,0x3d,0xdc,0x57,0xfc,0x4c,0x0f,0xc6,0x97,0x74,0xd6,0x3a,0x3a, + 0x4e,0xc6,0xbc,0x27,0x07,0x34,0x6f,0xe6,0xe9,0x38,0x6d,0x86,0x17,0x5a,0xad,0xb6, + 0x16,0xa4,0x66,0x20,0x18,0x56,0x13,0xe0,0xe1,0x2e,0xa1,0x69,0xfa,0x10,0x2d,0xd1, + 0x9f,0xa3,0xfa,0xfc,0x26,0x39,0xf8,0xf9,0xe5,0x74,0x72,0x7a,0x81,0x67,0x13,0x72, + 0x22,0x7f,0x13,0xff,0x6b,0xf8,0x4e,0xb2,0x57,0xeb,0x6a,0x80,0x5e,0xc3,0x6a,0x67, + 0xbf,0x3b,0xc5,0xa0,0xed,0x1b,0x5a,0x99,0x55,0xc2,0x01,0xba,0x7d,0xc1,0xdb,0xb0, + 0x3c,0xd3,0x1d,0x62,0x89,0x5d,0x8d,0xcd,0xb1,0xca,0x37,0x51,0x16,0x2f,0x64,0xb8, + 0xab,0xc4,0xc0,0x6a,0x78,0xf6,0xd9,0xa8,0x1d,0x27,0x33,0x00,0xdc,0x59,0xf0,0x76, + 0x86,0xbd,0xd9,0x0c,0xb7,0x64,0x21,0x22,0xe7,0x13,0x5a,0xe0,0x34,0xb2,0x21,0x89, + 0x7d,0x52,0x77,0x46,0xd5,0xb8,0xb0,0x6e,0x45,0x76,0x1b,0x1f,0xaf,0x08,0xa2,0x51, + 0xbc,0xa0,0x4e,0x31,0x4f,0xbf,0x89,0xc2,0xbf,0x70,0x52,0x18,0xb7,0xe7,0x0d,0x12, + 0x7d,0x34,0x45,0x03,0x4f,0x3a,0xc2,0x7b,0x21,0xaf,0x30,0x5a,0x22,0xde,0xc2,0x03, + 0x8e,0x77,0x96,0x72,0xd1,0x37,0x9a,0x37,0x3e,0x5d,0x20,0x2b,0xfe,0xa6,0x68,0x9b, + 0x3c,0x35,0x2f,0x2e,0x8a,0x17,0x73,0x5f,0xea,0x09,0xa2,0xbb,0x64,0x07,0xb7,0x7a, + 0x6d,0xe2,0xb0,0xbe,0xb3,0x6a,0x4b,0xb6,0x9d,0xe3,0x73,0x24,0x20,0x1f,0x6f,0xc2, + 0xa2,0xad,0xa3,0xcd,0xe7,0x2f,0xc2,0xe3,0xad,0xf3,0x44,0x0b,0x38,0xcd,0xc1,0x17, + 0xe1,0x66,0xd8,0x0a,0xf9,0x20,0x39,0x4c,0xc2,0xe7,0xf4,0x3c,0x9c,0xd3,0xe3,0x0b, + 0x7a,0x3c,0xa7,0xc7,0xc7,0xe1,0x63,0x3c,0xfe,0xe3,0x6a,0x82,0x97,0xbb,0xa3,0xd3, + 0xe3,0x3b,0x87,0x31,0xbe,0x7e,0x1f,0x0b,0xca,0x78,0xc1,0xa3,0x87,0x77,0xa0,0x69, + 0xb5,0x84,0x67,0x38,0x4a,0xda,0x9b,0x83,0x60,0x2c,0x14,0x51,0x41,0xe7,0x48,0x21, + 0x8c,0x11,0xe4,0x8c,0xf4,0x02,0x8c,0x25,0x36,0xe4,0xca,0xa8,0x04,0x23,0x52,0x4e, + 0x6e,0xf0,0x8a,0x35,0xb5,0xce,0x48,0x90,0xa7,0xf8,0x40,0x80,0x1d,0xb3,0xf9,0x6d, + 0xd9,0x20,0x28,0xda,0x6e,0x35,0x81,0xfb,0x15,0x42,0x11,0x70,0x07,0x78,0x11,0x98, + 0xcc,0x27,0x4f,0x8e,0x41,0xc2,0x84,0xf3,0x98,0x15,0x6a,0x4b,0xb6,0xc1,0x71,0x65, + 0x2e,0xdd,0x5d,0x84,0x49,0xe4,0x17,0x14,0xd7,0x42,0xb3,0xdb,0x50,0xf2,0xe2,0xbc, + 0x0a,0x1c,0xa0,0x29,0xc2,0xab,0xc5,0x6f,0x20,0x98,0xcd,0xff,0xda,0x9f,0x45,0xc2, + 0xe2,0xb3,0x9b,0x34,0x03,0xe4,0xcd,0x72,0x89,0x21,0x3a,0x4a,0xb7,0xfe,0x1e,0x5d, + 0x77,0x3e,0xf6,0x6a,0x1f,0x1b,0xf9,0x9f,0xa8,0xd3,0xe2,0xdf,0xb8,0x13,0x6f,0x35, + 0xfa,0xb7,0xfd,0xd3,0xe8,0xec,0x26,0x16,0x36,0xa6,0xa3,0xce,0xe8,0x68,0xfb,0xb8, + 0x15,0x71,0xfe,0xab,0xf1,0xe5,0x98,0xc2,0x00,0x90,0x3e,0x8f,0xf6,0x45,0x86,0xfd, + 0x5b,0x75,0x2c,0x42,0xa2,0xfa,0xf2,0x1b,0x64,0x27,0xbf,0x94,0x94,0x3d,0xce,0x6a, + 0x69,0x48,0xe9,0x61,0x3b,0xb0,0xfe,0xdb,0xda,0x0a,0xde,0x1d,0xee,0x7d,0xda,0xff, + 0x75,0xef,0x2d,0x64,0xe9,0xa7,0xc3,0xbd,0x5f,0x52,0x44,0x79,0xef,0x12,0xe0,0x06, + 0xdf,0x9b,0x60,0x74,0x94,0x54,0x85,0x8f,0x3f,0x00,0xa1,0x60,0xea,0x06,0x9c,0x97, + 0xed,0xfe,0xe4,0xd0,0x20,0x01,0x02,0x3e,0x85,0xd8,0x90,0xae,0x8e,0x9a,0xc3,0x31, + 0xe5,0xb0,0xd7,0xc9,0xc0,0xc4,0x28,0xac,0xe5,0xef,0xb5,0x30,0x0e,0x5b,0x99,0xc3, + 0x37,0xe8,0x30,0x22,0xf2,0xaf,0x9b,0x40,0xf5,0x9e,0x81,0x77,0xf4,0x93,0xd2,0x9f, + 0xe5,0x72,0x71,0x67,0xfa,0x19,0xbd,0x41,0x2a,0x40,0xb1,0x11,0xeb,0x23,0xab,0xfd, + 0xeb,0xec,0xb7,0x0d,0xa4,0x81,0xac,0xc1,0xbb,0x83,0x80,0x3f,0x64,0xa4,0xe1,0xc0, + 0x1c,0xf5,0xeb,0x21,0xcc,0x2b,0xf6,0xde,0xbf,0x0a,0x7e,0x79,0x09,0xe7,0xad,0x5d, + 0xdc,0x74,0x62,0xff,0x65,0x19,0xb1,0x30,0x23,0xbc,0x8c,0x4b,0xae,0xe7,0x6f,0x6e, + 0xca,0x0a,0x79,0xef,0x04,0xcd,0xb8,0x6f,0x7a,0x3a,0x2c,0xae,0xa5,0x31,0xe1,0x1b, + 0x27,0xa5,0x03,0xdf,0xd2,0x57,0x74,0x01,0x46,0x42,0x4e,0xd5,0xbb,0xc3,0x14,0x50, + 0xf2,0xd8,0xde,0xa8,0x16,0x1e,0x04,0xd1,0x25,0x1c,0x11,0xa4,0x85,0x5d,0x3e,0xf7, + 0xa5,0x7c,0xd5,0xd4,0xc7,0xb1,0x8d,0xc5,0x93,0x06,0xb9,0x77,0x2a,0xb0,0x80,0x26, + 0xa2,0x7e,0x26,0x96,0x88,0x18,0x63,0x4f,0x9a,0xdb,0xf1,0x82,0x3a,0xf0,0x6b,0x8a, + 0xe7,0x05,0xa2,0xe6,0x17,0x74,0x3f,0x8d,0x08,0x7e,0x39,0x9b,0x41,0x02,0x87,0x34, + 0x43,0x86,0xb1,0x96,0x30,0x6b,0xfc,0x99,0x11,0x3d,0xe0,0x24,0x15,0xa5,0xa8,0x73, + 0xcc,0x93,0xcb,0xd8,0x43,0x71,0x35,0x26,0xcb,0x75,0xb6,0xb7,0x61,0x8f,0x67,0x7c, + 0xf2,0xad,0xa7,0xe6,0xd4,0x27,0x05,0x39,0xb5,0xda,0x5d,0x99,0xe8,0x3f,0x0d,0xea, + 0x47,0x84,0x7b,0x73,0x33,0xa7,0xfd,0x51,0x9a,0x22,0x2c,0xae,0xf0,0xb8,0x9f,0x16, + 0xa5,0xfd,0xd9,0xe8,0xd3,0xef,0x72,0x19,0x85,0xdc,0x8c,0x61,0x2d,0xcf,0x02,0xd9, + 0xd3,0xcf,0x6b,0x9e,0xa7,0x21,0x05,0x87,0x55,0x58,0x6a,0xfc,0x69,0x7e,0xf1,0x0e, + 0x8d,0x17,0xde,0xf0,0x57,0x78,0xd1,0xb7,0xf8,0xfb,0x27,0x9e,0x89,0xdf,0xee,0xf8, + 0x9d,0x4e,0xb2,0xb9,0x61,0x3a,0x05,0x63,0x54,0xa1,0xad,0xdd,0x73,0x31,0xea,0x63, + 0xc3,0xd3,0x6b,0x85,0xb0,0x70,0x39,0x0c,0x13,0x13,0x25,0x2f,0x6b,0x2d,0x42,0x11, + 0x55,0xf5,0x43,0xc8,0x35,0xc8,0x0e,0x72,0xd1,0x24,0xae,0xb5,0xb7,0x88,0xcb,0xe1, + 0x1d,0x23,0x6c,0xfd,0xe7,0xc1,0xbb,0xb7,0x8d,0x8c,0xa7,0x80,0xc1,0xd9,0xe7,0x88, + 0x0b,0x71,0x04,0xf6,0xe8,0xf2,0x43,0xff,0x1f,0x90,0xbe,0xc2,0x8e,0x2e,0xb3,0xe3, + 0x77,0xa8,0xed,0xbe,0xe7,0x69,0x32,0xfa,0xde,0x0c,0x7b,0xe9,0xa7,0xa7,0xb3,0xcf, + 0xd3,0xf9,0x64,0x73,0xd3,0xfc,0x92,0xb8,0xfe,0xc0,0x1e,0x0e,0xff,0xca,0x77,0x89, + 0xe2,0xea,0xe4,0xa8,0x0b,0x1c,0x3c,0xe0,0xcf,0xc0,0x64,0x9e,0x08,0xd2,0x66,0x7b, + 0xf0,0xfc,0xfb,0xf6,0xa0,0x56,0x8b,0xbb,0x47,0x83,0xe3,0xf4,0x0d,0xea,0xda,0xe0, + 0x23,0x8b,0x88,0x1f,0x67,0x9c,0x3d,0x8a,0xbf,0xc5,0x35,0x0e,0x64,0x5e,0x31,0x71, + 0x8f,0xba,0x53,0x33,0x6d,0x77,0x8b,0x99,0xec,0x24,0x5e,0x18,0x70,0x3c,0x3e,0xdf, + 0x7e,0xd6,0x09,0x9b,0xe0,0x0e,0xa4,0x2a,0x5c,0x62,0x4c,0x64,0x2a,0xdc,0x06,0x4a, + 0xea,0x2b,0x14,0x8b,0x25,0xc2,0xb7,0x92,0x60,0x40,0x2f,0xfb,0xb9,0xdf,0x05,0x06, + 0x50,0x0e,0x64,0x58,0x3a,0x3c,0x3e,0xca,0x0f,0x1a,0x8f,0xb1,0xfd,0x40,0x25,0x5e, + 0x76,0xed,0xfe,0xdb,0x1f,0x02,0xac,0x3f,0xb4,0x66,0x68,0x33,0x0b,0x46,0x66,0x59, + 0x9d,0x3c,0x8a,0x90,0x84,0xcc,0xd9,0xe6,0x5b,0x3e,0xcc,0x8d,0x00,0x4b,0x08,0xb3, + 0x3e,0x27,0xc7,0x31,0x51,0x20,0x32,0x98,0x2f,0x6f,0xec,0x63,0xc9,0xc4,0x6b,0x0a, + 0xef,0x72,0x98,0x69,0x0c,0x05,0x8a,0xf5,0xe9,0x01,0x85,0x47,0xb8,0x1b,0xb4,0x04, + 0x3f,0xb9,0x3c,0xd4,0x2a,0x6c,0xb8,0xee,0xe0,0x56,0xd4,0x6c,0x5d,0xc5,0x90,0xe2, + 0xad,0x66,0x63,0x54,0x45,0x99,0xe6,0x5a,0x27,0x54,0x72,0x4f,0xca,0xc0,0x0e,0xe5, + 0xb5,0x31,0x53,0x00,0x52,0x5d,0x32,0x77,0xb0,0x6a,0x7e,0xb6,0xab,0x18,0xfd,0x53, + 0xfd,0x75,0x0d,0x62,0x4f,0xe9,0x0e,0xd6,0x8d,0x4e,0x10,0xfe,0x0f,0x5b,0x03,0x84, + 0x1b,0xad,0x87,0xe2,0x6c,0x84,0xa6,0xb9,0xa9,0x81,0xdd,0x58,0x08,0xf1,0x5a,0x4e, + 0x3b,0x7b,0x01,0xd3,0x11,0x28,0xd9,0xec,0x35,0xf2,0x19,0x63,0x38,0x80,0xb6,0x3a, + 0x05,0xaf,0xfe,0x42,0xce,0x7c,0xc5,0xb9,0xca,0x91,0xed,0x2a,0x17,0x1c,0x6b,0x23, + 0xab,0x81,0x8c,0xcd,0x4f,0xbe,0xa4,0x14,0xaa,0xcc,0x71,0x5a,0xec,0x2e,0x5c,0x85, + 0x14,0x1e,0x2d,0xc8,0x8f,0x44,0xd9,0xf3,0x38,0x4b,0xb1,0x11,0x12,0xd6,0x51,0x40, + 0xdf,0x73,0x12,0x04,0x36,0x96,0x5f,0x8f,0x08,0x86,0xad,0xa6,0x42,0xd9,0xb7,0xbb, + 0x1e,0x20,0x9b,0x4f,0xef,0x81,0x28,0x9f,0x65,0xae,0x05,0x76,0x62,0x14,0xc6,0x4e, + 0xff,0x0a,0xbf,0x24,0x62,0x61,0x26,0x11,0x52,0xaf,0x8c,0xfb,0x6d,0x36,0x0c,0x73, + 0x1c,0x5d,0x06,0x48,0xe4,0xbc,0xaf,0xf7,0xde,0x36,0x42,0x2d,0x5c,0x43,0x34,0x95, + 0x0b,0xe7,0x80,0x4d,0x28,0x50,0x42,0x12,0x51,0xf1,0x99,0x1d,0xbf,0xc9,0xc2,0xa1, + 0x91,0x31,0x3c,0x24,0xc6,0x71,0xb9,0x42,0x3a,0x6e,0xce,0x01,0x3b,0x40,0xfd,0x66, + 0xbf,0x1e,0xbe,0xc1,0xae,0x58,0xa2,0x5c,0xac,0x76,0x79,0xee,0x21,0x21,0x95,0x0b, + 0x70,0xe4,0x6a,0x1e,0x6b,0xee,0x17,0x2f,0xf2,0x77,0x8e,0x14,0x66,0x23,0x04,0xf4, + 0x69,0x9a,0x07,0xc3,0x2d,0xfc,0xdd,0x92,0x0b,0x10,0xe5,0x19,0x3e,0x03,0x50,0x36, + 0x67,0x8f,0x52,0x69,0xc6,0x3f,0x6d,0xbc,0x9a,0xad,0x39,0x12,0xe8,0xa1,0x5d,0x74, + 0xd5,0xf4,0xd1,0x23,0x00,0xe1,0xa1,0xad,0x03,0x87,0x93,0x40,0x54,0x9b,0xd0,0x64, + 0x73,0x72,0x07,0x70,0x48,0x26,0x2f,0x18,0x63,0xfc,0x69,0x2e,0x2f,0x9f,0xcc,0x37, + 0x64,0xd4,0x24,0x18,0x72,0xa4,0x16,0x00,0x24,0xd8,0x27,0x39,0xd1,0x5a,0x2e,0x9f, + 0x3e,0xd9,0x96,0x6e,0xec,0x1e,0x84,0xae,0x1b,0xe3,0x1e,0x01,0xe8,0x75,0xb6,0xd8, + 0x62,0x7a,0xe8,0xed,0xd3,0x94,0x5e,0xf9,0xa3,0x27,0x7e,0x09,0x48,0x53,0x3f,0x65, + 0x79,0x32,0xd1,0xed,0x28,0x18,0x18,0x8e,0x53,0x3e,0xe5,0xd0,0x8c,0xd0,0x91,0x32, + 0x0c,0xc4,0x29,0x9f,0x26,0x92,0xc4,0x40,0x9c,0xef,0x80,0xd4,0x86,0x16,0x9a,0x8c, + 0xde,0xdb,0x32,0xdb,0xa4,0x19,0xfd,0x74,0x4f,0x06,0xd0,0xe1,0x0f,0xfa,0x58,0x55, + 0x37,0x39,0xa3,0x51,0x38,0xa4,0x45,0x8b,0x74,0x78,0xba,0x47,0x6d,0xa3,0xac,0xc1, + 0x7e,0x76,0xfa,0x9f,0x08,0x04,0x19,0x50,0x30,0x39,0x79,0x1c,0x69,0x42,0x33,0xf1, + 0x92,0xca,0x79,0x9a,0x71,0xab,0x49,0x82,0x11,0xc8,0xb8,0x35,0x46,0xbd,0xec,0x45, + 0x33,0x86,0x6f,0xf0,0x4f,0x6f,0xf6,0xfe,0x96,0x16,0x89,0x4c,0x0b,0x6d,0x95,0x64, + 0xa7,0xd4,0xce,0x77,0x0a,0x48,0xe1,0xdf,0x4f,0x90,0x57,0xfd,0xfc,0x0b,0x9f,0x0e, + 0x65,0xfc,0xa3,0xc0,0x13,0x9a,0xa2,0x33,0xf3,0x4b,0x89,0xbc,0xf4,0xfe,0x91,0xde, + 0xf6,0x81,0x3f,0x92,0x2f,0x5c,0x98,0xc8,0x0e,0x09,0x05,0xed,0x8c,0x39,0x60,0x40, + 0x22,0x61,0xcd,0xbd,0x72,0xcb,0xc0,0xe1,0xc0,0xd0,0x2e,0xac,0x50,0x80,0x9d,0xcd, + 0xb7,0x58,0x98,0x16,0xfb,0x3e,0x49,0x90,0x12,0x8d,0x14,0x3e,0x49,0x19,0x89,0x44, + 0x86,0x46,0x74,0x7e,0x4f,0x7b,0xa0,0x72,0x4d,0xb8,0x35,0xe9,0xf1,0xb6,0xd9,0xd8, + 0x24,0xc4,0x8b,0x93,0x92,0x78,0x79,0x79,0xf8,0xfb,0xfb,0x50,0xd1,0xa8,0x6c,0x14, + 0xf0,0x3b,0x5a,0xdc,0x95,0xf3,0x40,0x72,0x85,0x77,0x52,0x19,0xb1,0x47,0x5d,0x2d, + 0x5c,0x4b,0xab,0x2e,0x5d,0xf1,0x59,0x1d,0xa5,0x10,0x05,0xa2,0xc0,0x0a,0xbd,0x8d, + 0x84,0x2a,0x31,0x0a,0x15,0xd7,0xdd,0x5d,0xdc,0xb2,0x5f,0x2b,0x36,0x09,0x53,0x23, + 0x42,0x04,0x28,0x9d,0xca,0x13,0xba,0xd3,0xd1,0xb1,0xce,0xb2,0x46,0xa2,0x38,0xfb, + 0x9d,0x3b,0xdd,0xc4,0xe2,0x7b,0x99,0x81,0x96,0x9d,0x86,0x00,0x2e,0xd4,0xd1,0x3f, + 0x12,0xee,0x3c,0xda,0xfb,0x66,0xab,0xd2,0x6f,0xc8,0xcd,0x4a,0x6c,0x52,0x64,0xff, + 0xb4,0x58,0xd5,0x21,0x42,0xcb,0xce,0xf8,0xac,0x3b,0xa0,0x50,0x3a,0x75,0x8e,0xb8, + 0xfa,0x99,0x3c,0x06,0xb5,0xad,0xbd,0x20,0xfb,0x23,0xdf,0x69,0xb2,0x9a,0xa8,0xb4, + 0x01,0x21,0x42,0xa3,0xeb,0x78,0x71,0x14,0xfe,0x25,0x0f,0xb3,0x9d,0xd0,0xa3,0x51, + 0xdc,0xf1,0x33,0x07,0x10,0x38,0xf6,0x97,0x59,0x83,0x1e,0x68,0xa3,0xbf,0xd5,0xad, + 0x8a,0x82,0xbe,0x01,0xe6,0x35,0x5d,0x4f,0x35,0x41,0xb4,0x2d,0xa9,0x80,0xc3,0x02, + 0xc2,0xac,0x44,0xda,0x46,0x07,0x00,0xa7,0xf5,0xdd,0xd9,0x88,0x2e,0x23,0x7f,0xe6, + 0x99,0x0d,0xdf,0x03,0x9e,0x4f,0x72,0xaf,0xd1,0x26,0xd8,0xf6,0x20,0xe3,0x47,0x0e, + 0xe3,0x4c,0xf3,0xe2,0xc6,0xd5,0x94,0x86,0x33,0x9d,0x16,0xff,0x48,0x56,0x1d,0x4e, + 0xed,0xb5,0x39,0xb9,0xc9,0xa2,0x82,0x0b,0xb1,0xe9,0xbc,0x56,0x8c,0xee,0x98,0x6a, + 0xf7,0x92,0xce,0x3b,0x89,0xca,0xfe,0x18,0xa3,0x2f,0x8f,0x86,0x9d,0x14,0xed,0x78, + 0x4d,0x6b,0xcf,0x6b,0xef,0x64,0x54,0x06,0xe6,0x7c,0x9c,0x16,0x58,0xf1,0x86,0xba, + 0x91,0x8a,0x08,0x13,0x04,0xdf,0x56,0x4e,0x49,0x7f,0xd4,0x2e,0x20,0xb0,0x1f,0x2d, + 0x37,0x3a,0x24,0x04,0x6f,0xd5,0x65,0x30,0x18,0x62,0xbf,0x66,0x9f,0xb8,0x51,0xb5, + 0x51,0x5c,0xe4,0x93,0x42,0x4b,0x89,0xa1,0x35,0x37,0x88,0x61,0x53,0xc6,0x3b,0xb4, + 0xee,0x86,0xaf,0x21,0x70,0x37,0xfa,0xde,0x6e,0x5c,0xc7,0x67,0xd6,0xca,0x37,0xd1, + 0xc9,0x9f,0xad,0x3f,0xef,0xaa,0xb0,0xdd,0x82,0x8d,0x0e,0x67,0x58,0xa5,0xc6,0xe3, + 0xf1,0xb6,0x41,0xea,0x07,0x74,0xe7,0x78,0xa1,0x23,0x53,0x19,0xe7,0xd3,0x4a,0x2c, + 0x7b,0xc0,0x20,0x2d,0x8f,0x51,0x19,0xde,0xeb,0xda,0xe2,0xb6,0xa1,0x1a,0x83,0x90, + 0x61,0x64,0x18,0xf2,0x02,0xdf,0x17,0x4e,0x15,0xd5,0xf1,0xb1,0x57,0x0f,0x6f,0x2e, + 0x25,0xcc,0xf5,0x07,0xda,0x7d,0x0b,0x73,0xca,0x05,0x2b,0x12,0xb4,0x4b,0x20,0x0d, + 0x7d,0xc2,0x13,0x75,0xca,0x30,0x25,0xc0,0x1a,0x00,0x55,0x24,0x3b,0xaa,0x02,0x1c, + 0x29,0x60,0x43,0x1f,0x5d,0xc6,0x0b,0x1a,0x8c,0xd8,0x7c,0x63,0x73,0xf4,0xbf,0xc1, + 0xcb,0xff,0xcd,0xbb,0xa2,0xb9,0x2c,0x6c,0x8d,0x2f,0x6f,0x71,0xe1,0x6c,0x3a,0x54, + 0x62,0xb4,0x36,0x28,0x1b,0x28,0xcc,0x3e,0x25,0x35,0x2f,0xc9,0x28,0x99,0xa5,0xa7, + 0x66,0x89,0x91,0xfc,0x03,0x4f,0xb4,0x38,0x83,0x0a,0x8e,0xe7,0x73,0x3e,0x74,0xb8, + 0x41,0x22,0xad,0x79,0xb8,0xe5,0xa3,0x51,0x7a,0xd9,0x18,0x31,0x91,0x5b,0x7f,0x27, + 0xd0,0xe8,0x68,0xbb,0xfe,0xc3,0x71,0xfc,0xb1,0x11,0x7d,0xbc,0xa9,0xc5,0xdf,0x6c, + 0xc5,0xb1,0x51,0xc9,0x67,0x69,0xf4,0x8f,0x06,0x23,0x21,0x29,0x1e,0x1f,0xd5,0x48, + 0xaf,0x59,0xdf,0x3e,0x66,0xed,0x1e,0x01,0x5c,0xa7,0xd9,0xd1,0xe8,0x68,0xe7,0xf8, + 0x58,0x0e,0x0d,0x91,0x90,0xd2,0x11,0x44,0x27,0x0c,0x5b,0xa2,0x26,0xb8,0x46,0xdd, + 0xcd,0x1d,0x59,0xaa,0xf2,0x06,0xdd,0x0d,0x37,0x11,0x3e,0x5a,0xda,0xcd,0xe9,0xb5, + 0xcd,0x1f,0xdc,0x28,0x1c,0x16,0x88,0x7e,0xf8,0x44,0x1f,0xcc,0x52,0x41,0x73,0x68, + 0x88,0x8a,0xca,0x0c,0x48,0xaf,0x84,0x97,0x58,0x0c,0x95,0x79,0xe4,0x5b,0x87,0xee, + 0x22,0xb6,0xc8,0x3c,0x4b,0xb2,0x5b,0x41,0x03,0xac,0x7c,0x94,0xf8,0x89,0x13,0xd3, + 0xd4,0xb8,0xfb,0x5f,0x2e,0xdd,0x54,0x0e,0x14,0xd0,0xb1,0xd3,0x5c,0xac,0xdd,0xb9, + 0xa2,0x13,0xb6,0x01,0xb6,0x0b,0xc5,0xa2,0x14,0x3a,0xf6,0x3f,0x23,0x31,0x96,0xec, + 0xf3,0x5b,0xff,0xf3,0xfc,0x56,0x32,0x77,0xcf,0xfc,0x8f,0xdd,0x33,0xc9,0xaa,0x4e, + 0x2b,0x3d,0x10,0xf9,0x20,0x48,0xe6,0xab,0xc0,0xe4,0x83,0xa0,0x23,0xa7,0x8c,0x16, + 0x5f,0xf0,0x66,0x73,0x90,0x21,0x1c,0x6f,0x88,0x0a,0x2a,0x09,0x3e,0xbf,0xd5,0x07, + 0xa1,0x9f,0x05,0x89,0x9f,0xd6,0x67,0x63,0xaf,0x67,0x9a,0x01,0x2f,0xfb,0x3c,0xf4, + 0xae,0xfa,0xd1,0x4c,0x08,0xb6,0x9d,0x03,0x5a,0xa8,0xad,0x54,0x0f,0xb7,0xe3,0x68, + 0x59,0xf3,0x44,0x66,0x20,0x36,0xe4,0x23,0x0d,0x90,0x98,0x21,0xd0,0xf5,0xc4,0xf0, + 0xc7,0xcd,0x2e,0xba,0x63,0xaf,0xdd,0x2b,0x11,0x09,0xec,0x72,0xb9,0xfd,0x54,0x08, + 0xf7,0x1d,0x01,0xaf,0xa5,0x04,0x50,0x9f,0xd6,0x52,0x03,0x80,0x87,0x53,0x24,0x08, + 0x7d,0xaa,0xc4,0x89,0x96,0xdd,0xae,0x9c,0xe0,0x33,0x51,0x1d,0xe3,0xf8,0x5d,0x8a, + 0x3f,0xd1,0x36,0x50,0x90,0x7a,0x5e,0x80,0xd6,0x64,0xf9,0x64,0x20,0x34,0xa7,0xe7, + 0x7e,0x67,0x5d,0xde,0x1c,0x46,0x72,0x5b,0x8e,0x6c,0xec,0x1a,0x51,0xea,0x27,0x93, + 0x6a,0xe0,0x3c,0xc7,0x5c,0x5e,0x11,0x06,0xe0,0x53,0x0e,0xe0,0x52,0xb7,0x3e,0xb7, + 0x12,0xb8,0x02,0x87,0x1e,0x6f,0x49,0x36,0x95,0x73,0x7a,0x7b,0x4c,0x11,0xde,0xf0, + 0xab,0x19,0x85,0xaa,0x4b,0xd4,0x8f,0x78,0x93,0x6f,0xee,0x9d,0x0e,0x0b,0x42,0xd3, + 0xa4,0x08,0xe7,0x0e,0x8d,0x47,0xf8,0x4d,0xc3,0x7c,0xff,0x24,0xdf,0xd1,0x4d,0x84, + 0x68,0xc7,0xb1,0x8c,0x66,0xfb,0x47,0x9e,0xe2,0x75,0x16,0xc7,0x17,0x8b,0x82,0x4b, + 0x02,0xd3,0x6c,0x79,0x30,0xd1,0xef,0xfc,0x6a,0x23,0x10,0xd5,0x87,0x02,0x48,0x82, + 0x27,0xa1,0x1c,0x87,0x0b,0x0a,0x9d,0xa7,0xf8,0xd4,0xa9,0x97,0x03,0x85,0xa5,0xb7, + 0x6a,0xb4,0x90,0xd4,0x0a,0x85,0x17,0xeb,0xcb,0xcc,0xfa,0x82,0x97,0xea,0x62,0x56, + 0xf6,0x12,0xd4,0xd6,0xed,0x18,0x65,0x67,0x00,0x8a,0x5b,0xd3,0xfc,0x8a,0xbb,0x59, + 0xd6,0x94,0xa5,0x30,0x5e,0x77,0xd4,0x7b,0xce,0x5a,0x1e,0xbd,0xe9,0x47,0x75,0xd8, + 0xa2,0x9f,0xcd,0xbb,0x96,0x2f,0x9e,0x4e,0xac,0xef,0xfc,0x2e,0x08,0xf4,0xd6,0x71, + 0xf1,0x39,0x4f,0x62,0x0c,0xe5,0xeb,0xbe,0x1e,0xe5,0x0a,0xfe,0xc9,0x00,0x08,0xd9, + 0x7c,0x37,0xd6,0x42,0x4a,0xaf,0x1e,0x77,0xdc,0xfb,0xb3,0x25,0xe8,0x4f,0xfa,0x41, + 0x8e,0xaa,0x64,0x28,0xda,0xe6,0x04,0x43,0x5a,0xf5,0xf5,0x87,0xb2,0x41,0x1d,0xea, + 0x19,0xbb,0x5e,0x06,0x8e,0x05,0x25,0xbe,0x71,0x5a,0x69,0x28,0xe8,0x57,0xb3,0x1e, + 0x77,0x90,0xa3,0x2e,0x2f,0x09,0x79,0x72,0xbd,0x06,0x7d,0x81,0x37,0x8d,0xae,0xf1, + 0x89,0x90,0xcb,0x91,0x92,0x62,0x4d,0xaf,0x1d,0xbc,0x12,0x5c,0x6b,0x5f,0xed,0x4c, + 0x5e,0xf6,0xb0,0x3a,0x8d,0x4e,0x8d,0xb5,0x89,0x1c,0x0b,0xca,0x9b,0xa3,0xc0,0x46, + 0xb3,0x66,0xe9,0xbb,0x13,0xf2,0x10,0x63,0x9d,0x34,0x41,0x09,0x01,0x97,0x0d,0xef, + 0x67,0x14,0x31,0x11,0xac,0xa2,0xdc,0x04,0x68,0x4e,0x9f,0x04,0x8d,0xa1,0x23,0x4b, + 0x2c,0x09,0x16,0x6f,0x6c,0x6e,0xba,0x5f,0x8f,0xac,0xaf,0xc7,0xd8,0xe3,0x67,0x46, + 0x3e,0x38,0xc9,0xc8,0xf4,0x68,0x2d,0x76,0x96,0x80,0x8c,0x5c,0xb3,0x6b,0xea,0x31, + 0xf8,0x93,0x9b,0x2f,0xa1,0x9a,0x6e,0x6e,0x07,0x0e,0xcd,0xac,0x9f,0x2b,0x0d,0x6f, + 0x64,0x57,0x25,0x0a,0xff,0xfb,0x40,0x53,0x06,0xf6,0x2b,0xec,0x92,0x16,0x86,0x72, + 0x52,0x21,0x50,0xbd,0x03,0x54,0x39,0x7d,0x18,0x2f,0x3b,0x6b,0x58,0xd9,0xaa,0x62, + 0x24,0xb7,0x93,0x53,0x50,0x35,0xc3,0xbf,0x8a,0x8f,0x0a,0x75,0x3f,0x37,0x65,0x0b, + 0x7b,0xc7,0x1d,0xb7,0x44,0xda,0x8a,0xbe,0xc0,0xba,0xa9,0xfb,0x9a,0x07,0xff,0x4b, + 0x8f,0xc5,0x46,0x2c,0x2b,0xf1,0xd0,0x3f,0x1f,0xe3,0xed,0x8c,0xd9,0x04,0x95,0xaa, + 0x75,0x79,0x6c,0xcc,0xc4,0xd2,0xeb,0x82,0x1c,0x24,0x3a,0xe7,0x79,0xab,0x4f,0xdc, + 0x50,0x23,0xeb,0x64,0xf3,0x12,0x0c,0x44,0x41,0xd6,0x00,0x6f,0x57,0x1e,0x25,0x72, + 0x81,0xa1,0x29,0x57,0xd4,0x53,0x40,0x64,0x5e,0x01,0xc6,0x0f,0xa0,0x01,0xe3,0x9b, + 0xd9,0xd6,0xeb,0x73,0x10,0x42,0xeb,0x0b,0xef,0x89,0x2b,0x19,0x70,0x6a,0x82,0x31, + 0x55,0xb3,0xc0,0x39,0xd9,0x3d,0x1b,0xad,0xac,0x96,0x5b,0x2b,0x40,0x72,0xbd,0x54, + 0xec,0x94,0xcb,0x02,0x41,0x77,0xb1,0xd4,0x42,0x09,0xe1,0x55,0x3d,0x4a,0xf4,0x89, + 0x94,0x6f,0x6b,0x1a,0x09,0xb7,0x10,0x94,0x4e,0x8a,0x4f,0xf3,0xb8,0x76,0x59,0x7b, + 0x2c,0x47,0x68,0x44,0xa0,0x32,0xd8,0x41,0x08,0x32,0xac,0x53,0x65,0x91,0x86,0x3d, + 0x36,0x1b,0x4c,0x19,0x60,0x7f,0x02,0xef,0xc3,0x51,0x9c,0xf0,0xcb,0x4f,0xdc,0xe8, + 0x8f,0x4e,0x29,0xed,0xe5,0x3f,0x22,0x07,0x3c,0x91,0x7e,0x20,0x84,0x4a,0x5f,0x10, + 0x72,0x56,0x72,0x6d,0x4d,0x53,0x5b,0x45,0xc6,0xc2,0x27,0x49,0xb1,0x9b,0xdc,0x14, + 0x97,0x3a,0xa4,0xf8,0x3d,0x40,0x01,0x5d,0x21,0xc5,0x1b,0x28,0x9f,0xdf,0xfa,0xe9, + 0xa1,0xec,0x06,0xe8,0x43,0x18,0x0e,0xb0,0x82,0xdf,0xb0,0x76,0x05,0xd1,0x17,0x1f, + 0x90,0xc8,0x37,0x2e,0x28,0xd9,0x99,0x99,0x9c,0xed,0x9c,0x1a,0xa8,0x50,0xf2,0x27, + 0x59,0x48,0xca,0x84,0x24,0xd3,0x27,0x51,0xc5,0xce,0xc9,0x53,0x31,0x1f,0x10,0x60, + 0x4e,0x8b,0xe9,0x5c,0x24,0x77,0x62,0x5d,0x02,0xc8,0x93,0x09,0x86,0xd9,0xcc,0x39, + 0x5e,0xa4,0xdb,0x9b,0x9b,0xfc,0xf4,0x3c,0xdd,0x6e,0xe6,0x45,0x71,0x02,0x8e,0x11, + 0xf8,0xb7,0x16,0x45,0x8a,0x32,0x4d,0xb7,0x9f,0x2d,0x97,0xd6,0xeb,0xee,0x4e,0xdc, + 0x09,0x83,0x3c,0x01,0x59,0xf2,0xc7,0x16,0x9b,0x52,0xf8,0xdb,0x71,0x50,0x32,0xc3, + 0x1e,0x05,0x9a,0x98,0x67,0x4f,0x9f,0xed,0x3c,0xc5,0x81,0x05,0x32,0xb9,0xdf,0xd9, + 0xc3,0xb3,0x01,0x69,0xe2,0x3f,0x57,0x43,0x4d,0xbe,0xdd,0x98,0x9b,0xb9,0x59,0x94, + 0x70,0xa9,0xdc,0x4e,0x92,0x4c,0x2d,0x95,0x70,0x35,0xca,0x00,0x9c,0xc8,0x0d,0xc9, + 0x3c,0x17,0xf8,0xe5,0xf2,0x11,0x7f,0xd0,0x55,0x80,0xa4,0xeb,0x92,0xe3,0x51,0xa9, + 0x75,0x4c,0x8b,0x8c,0x57,0xb5,0x46,0x1b,0x4f,0x2a,0x1d,0xc6,0xcc,0xed,0x31,0x71, + 0xba,0x23,0x55,0x1e,0xc7,0x2d,0xf1,0x90,0x8e,0xb6,0x2d,0x51,0x98,0xb3,0x92,0x88, + 0x14,0x0c,0x2e,0xa3,0x4a,0xcd,0xe2,0xa5,0xa2,0x75,0x3a,0xa5,0xc4,0x56,0x33,0xf6, + 0xca,0x99,0xdd,0x56,0x96,0xe0,0x35,0x95,0x97,0x91,0x1b,0xca,0xc9,0xbb,0xb6,0x19, + 0x9d,0xc1,0xc0,0xb3,0x9f,0xdb,0xb4,0xf6,0xe7,0x11,0xee,0x24,0x3f,0xb8,0x81,0xf3, + 0xc6,0x59,0xdf,0xd0,0x42,0xa5,0x69,0x30,0xc3,0xf3,0xd4,0x64,0x48,0xd5,0x4b,0x7d, + 0x31,0x78,0xee,0x6d,0x0b,0x73,0x34,0x67,0x7b,0x5d,0x5f,0x73,0x98,0x6b,0x20,0x62, + 0xc9,0xe3,0x7b,0xa9,0x5f,0x93,0x57,0xb3,0x82,0x6c,0xdb,0xf5,0x18,0x77,0x5b,0x61, + 0x02,0x73,0x8a,0xbe,0x18,0x60,0x58,0xb4,0xac,0x69,0x62,0x1e,0x71,0xeb,0x5b,0x12, + 0xe6,0x2b,0x65,0x19,0x20,0xf4,0xf2,0x49,0x54,0x33,0x5c,0x37,0xe6,0xef,0x98,0x52, + 0xb9,0x0f,0xc7,0xe5,0x78,0x3e,0xfc,0x79,0xd8,0x19,0x08,0xe9,0x3a,0x56,0xd3,0x98, + 0x35,0x07,0x75,0x80,0xcd,0x4d,0x4e,0xb6,0x56,0x1f,0x0e,0x0e,0x67,0xf2,0x41,0xca, + 0xbf,0x34,0xfd,0xf4,0xec,0x99,0x87,0x7b,0x1d,0xfd,0xe1,0xd9,0x27,0xb2,0x4b,0x4b, + 0x98,0x94,0xc4,0x10,0x6d,0x37,0x64,0x85,0x01,0x46,0x2e,0x4c,0xc8,0xb2,0x08,0x0e, + 0xe2,0x5a,0x7e,0xe8,0x0c,0x71,0x07,0x6f,0xc7,0xcd,0x18,0x7e,0x66,0xb3,0x21,0x6d, + 0xc1,0x70,0xff,0x0a,0x93,0xdd,0x28,0xcf,0xb2,0x95,0x59,0x6e,0xf3,0x4d,0xc4,0x53, + 0x3e,0xbd,0x21,0xc7,0x95,0x23,0x9c,0x82,0x41,0x4d,0xd0,0x1f,0x7e,0x26,0x57,0x1c, + 0xc8,0x41,0x2e,0xbc,0xf1,0x81,0x03,0x0d,0x8b,0xe7,0x0c,0x46,0x1e,0xbe,0xa6,0xc6, + 0x94,0x18,0x0c,0x38,0x19,0x23,0xe4,0xdd,0xe1,0xe9,0xd5,0x90,0x9d,0xfa,0x82,0x77, + 0x6e,0x58,0x79,0x89,0xd7,0xa8,0x11,0x1c,0xf9,0x60,0xcd,0xc4,0x52,0x6d,0xb8,0xbb, + 0x42,0x6b,0x11,0x21,0xa3,0x76,0x9a,0x42,0xb7,0x4e,0x76,0x65,0xba,0x38,0x58,0x65, + 0x52,0x36,0x3d,0xb2,0x56,0x54,0x80,0x4b,0x73,0x79,0x79,0x57,0x4c,0x20,0xd3,0x06, + 0x85,0x59,0xac,0x85,0x09,0x3a,0x5b,0xe3,0xe4,0x46,0x1e,0xb2,0x33,0x79,0x38,0x9d, + 0x79,0x73,0x84,0xd9,0xeb,0x45,0xfc,0x28,0x1b,0x3b,0x11,0x27,0x74,0x17,0x21,0xad, + 0x91,0x39,0xb0,0x75,0x39,0x81,0x9b,0xdf,0x06,0xb6,0x9e,0x1b,0xf4,0xcc,0x50,0x29, + 0x67,0x56,0xaa,0x8a,0x43,0x68,0x83,0xc9,0xb3,0x47,0x39,0x35,0x13,0x3a,0xe7,0x42, + 0x2f,0x76,0x8b,0x8c,0x05,0x8b,0xec,0x03,0x8c,0x7a,0x32,0x3d,0x6d,0x4b,0x5f,0x27, + 0xfe,0xe5,0xab,0x1a,0x79,0xd6,0xbb,0x1e,0xb2,0x77,0x90,0x24,0xb6,0x65,0x51,0x2c, + 0xf7,0xed,0x37,0x5c,0x6b,0xad,0x05,0x1b,0x38,0x1c,0xd0,0xd9,0x08,0x3a,0x74,0xe1, + 0x67,0x2e,0x6e,0x3b,0x1f,0x60,0xba,0x23,0xe9,0x77,0x1b,0x45,0xa3,0x5e,0xae,0x6c, + 0x53,0xe6,0xf4,0x65,0x6a,0x6f,0x00,0x92,0xeb,0x54,0x8f,0x8c,0x88,0x4e,0xae,0xa4, + 0x59,0xca,0xbb,0xbb,0x02,0xff,0xe8,0x57,0xc6,0xaa,0xc8,0x40,0x98,0x44,0x11,0x62, + 0xbe,0x51,0x4a,0xa7,0x5c,0x8d,0x33,0x7c,0xa1,0x0f,0x68,0x1f,0x7c,0xdb,0xdc,0xc4, + 0x1f,0xf7,0xc6,0x06,0x60,0x28,0xba,0x69,0xc8,0x6b,0x36,0x30,0xfe,0xf4,0x22,0xc7, + 0x2c,0xab,0x34,0xa9,0x92,0xac,0xfd,0x57,0xdb,0x3e,0xea,0x11,0xa2,0x66,0xd2,0xce, + 0xbd,0x3e,0x8f,0xce,0x8d,0x72,0xba,0x55,0xea,0xf2,0xeb,0xab,0x9d,0x9b,0x07,0x7a, + 0x81,0x18,0xd7,0x4c,0x38,0xa7,0x0d,0x81,0x96,0x25,0xba,0x97,0x39,0x30,0x26,0x3c, + 0x47,0xa5,0x58,0x78,0xc7,0xc9,0x7a,0x48,0x2f,0x10,0xde,0x3a,0xa1,0x2b,0x73,0xc0, + 0xa3,0x48,0xa9,0xd9,0xdc,0xd4,0xc7,0x86,0x60,0xe0,0xba,0xeb,0x41,0xa8,0xe6,0xa2, + 0x4a,0x67,0x9f,0xc7,0xa7,0x12,0x66,0x52,0x6c,0x17,0xd8,0x1a,0x44,0x97,0x80,0xc2, + 0x4c,0x24,0xe9,0xae,0xc4,0xdb,0xd2,0xb4,0xbb,0x67,0xbf,0x42,0x42,0x53,0xbe,0xc2, + 0xde,0x78,0x1b,0xf6,0xc6,0xa9,0x1a,0x20,0xb1,0xe1,0xf1,0x42,0x56,0x1f,0xd4,0xe3, + 0x7f,0xa6,0x29,0x39,0x8b,0xbe,0x71,0x47,0x44,0x32,0x88,0xdb,0x95,0x40,0x32,0x3a, + 0x04,0xe6,0x8e,0xc9,0x7e,0x4f,0x6a,0x56,0xc0,0x0c,0x21,0x81,0x99,0xe8,0x6a,0x15, + 0x94,0x23,0x72,0xda,0x65,0xd3,0x04,0x15,0x34,0xb2,0xb3,0x77,0x97,0x4b,0x95,0xdc, + 0x59,0x6c,0x1c,0x85,0xc2,0xe0,0x30,0xb1,0x8f,0x45,0xaa,0x4c,0x36,0xa6,0xa8,0xce, + 0xe0,0x56,0x46,0x2b,0x1f,0x87,0xdb,0xd3,0xf5,0xe3,0x9a,0xf9,0x5e,0x7b,0xdc,0xc0, + 0x37,0x77,0xe5,0x53,0x0d,0x26,0x27,0x29,0x0c,0xa9,0x2d,0x1a,0xc9,0x39,0x3b,0x2f, + 0x5a,0x96,0x4b,0x7d,0x1b,0x17,0x2f,0xda,0xfb,0x7c,0x8b,0xf8,0x62,0x32,0x86,0x00, + 0x49,0x72,0xc5,0xc2,0x75,0x6a,0x2b,0x24,0xe2,0x85,0xaf,0x06,0x30,0x07,0xf8,0x8e, + 0xc6,0x80,0xb7,0x84,0xc0,0xb0,0x6e,0x35,0x70,0x19,0x0c,0xc6,0x8a,0xc6,0xac,0x09, + 0x48,0x73,0x41,0xa7,0x8f,0xb1,0x76,0x24,0x4d,0xb5,0x8f,0xd0,0x50,0x1b,0x4e,0xf3, + 0x0e,0xb4,0xe2,0xca,0x76,0xf2,0xda,0xda,0xa9,0xb5,0x14,0xa5,0x97,0x12,0xb8,0x27, + 0x72,0x00,0x40,0x16,0x61,0x8f,0x1c,0x25,0x25,0xa0,0x53,0xb8,0xf0,0xc9,0xfa,0x3f, + 0x93,0x07,0xa3,0xc8,0x6e,0x1b,0x90,0xad,0xad,0x46,0x2a,0x52,0x67,0x95,0x32,0xc8, + 0xe0,0x47,0x10,0x77,0xea,0x23,0x1c,0xa3,0x6e,0x6e,0x76,0xcf,0x5e,0xa4,0xcd,0x4e, + 0xf8,0xff,0xc3,0x72,0x4e,0x8c,0xee,0x71,0x55,0xb2,0x17,0x51,0x84,0x9d,0x2d,0x40, + 0xd4,0xb6,0xe3,0x78,0x0b,0x1b,0xc4,0x5a,0xf8,0x1f,0x41,0x0f,0x31,0xc1,0x02,0x8e, + 0x09,0x16,0xb6,0x8c,0x76,0x58,0x4d,0x77,0x7c,0x93,0x18,0xbe,0xac,0xe4,0x5a,0xc4, + 0xe8,0xd6,0x1a,0x86,0x31,0x73,0xbe,0x41,0xd8,0xf6,0xb5,0x45,0x96,0xa1,0x38,0x14, + 0xa0,0x80,0x24,0xc3,0x55,0x9a,0xce,0xec,0xdb,0x64,0xf1,0x83,0xa6,0x3b,0x1f,0xb1, + 0x6a,0x11,0x4f,0x09,0xf8,0xd5,0x18,0x56,0xb2,0x14,0x36,0xde,0x46,0x4d,0xb9,0x06, + 0xbd,0x44,0xd5,0xdd,0x71,0x19,0x95,0x28,0x15,0xfc,0x0d,0xbe,0x68,0xf4,0x5c,0x68, + 0xd6,0x30,0xb9,0xc3,0xc6,0xfe,0x5a,0x7b,0x5c,0x2d,0x48,0x27,0xac,0x71,0x9a,0x60, + 0xed,0xa0,0xaa,0x86,0x89,0x45,0x13,0x0d,0x16,0x1d,0x21,0x4e,0x71,0x05,0x10,0x9e, + 0x94,0x26,0x4f,0x7b,0x55,0xd6,0x7b,0x29,0x5d,0x0a,0xf1,0x20,0xca,0x26,0x32,0xc9, + 0xe9,0xca,0xcd,0x2f,0x51,0xa6,0x3a,0xd5,0x35,0x3a,0x32,0x7a,0xfd,0x5c,0x2a,0xc5, + 0x4d,0x56,0x0f,0x5b,0x4b,0x41,0x29,0x53,0x82,0xcb,0x99,0x90,0x13,0x01,0xa7,0x77, + 0xdb,0x72,0x7b,0x64,0x2c,0x0a,0xf8,0xe6,0x96,0x46,0x9f,0x37,0x96,0x6e,0x81,0xb1, + 0xfa,0x63,0xcf,0x9c,0xe4,0xe1,0x02,0xa1,0x52,0xc6,0x10,0xe0,0xbc,0x78,0x82,0x7e, + 0xb8,0x21,0x41,0xe6,0x1a,0xc6,0x97,0x62,0x2e,0x41,0xd3,0xfa,0x76,0xfb,0xc3,0xde, + 0x4f,0xaf,0xde,0x7d,0x7a,0xff,0xe1,0x25,0xac,0x24,0x0f,0x2a,0x44,0x6e,0x32,0x60, + 0xc6,0xe5,0xca,0x35,0x53,0x8e,0xe1,0xc3,0x34,0x06,0x81,0xf1,0x28,0x1d,0xf0,0xdc, + 0x27,0x2c,0x1d,0xbd,0x48,0x55,0x59,0x30,0x8a,0x5b,0x51,0x5e,0x17,0x47,0x50,0x75, + 0x42,0xa2,0x3f,0x6c,0x49,0x26,0x51,0x32,0x59,0x8a,0x75,0xe2,0x8e,0x77,0xcb,0xd6, + 0x56,0x4a,0x6e,0x6e,0x16,0x4b,0x2a,0xfb,0xb9,0x50,0x94,0x61,0x0f,0x11,0xfb,0x6a, + 0x5d,0x5f,0x19,0x6e,0x7f,0x3d,0x4e,0xb5,0x1b,0xae,0x1f,0xe2,0x8c,0x66,0xbd,0xba, + 0xfc,0xd1,0x2a,0x21,0x40,0xe4,0x4a,0x21,0x84,0x33,0x34,0x95,0x5f,0xd1,0xdf,0x3d, + 0x05,0xad,0xfb,0x5d,0x37,0x1f,0x60,0x4e,0x75,0xff,0x75,0xce,0x8a,0xa4,0xb3,0x39, + 0x6f,0xb4,0x56,0xd7,0xca,0x54,0x2c,0xf6,0x1c,0x9e,0xf8,0x74,0xaa,0x64,0x71,0xca, + 0xe1,0x24,0xfb,0x45,0x4b,0x51,0x95,0x63,0x09,0x41,0xa9,0x98,0x3b,0xd7,0x54,0xac, + 0x34,0xf9,0x2c,0x44,0x89,0x65,0x6b,0x48,0xb5,0x73,0x49,0x27,0x97,0xb9,0x66,0x3a, + 0xfd,0xeb,0x20,0x1b,0x90,0x86,0xe4,0xd1,0x37,0x91,0x98,0x83,0x3a,0x0b,0x51,0x89, + 0x20,0x95,0xb9,0x77,0x25,0xc4,0x99,0x50,0xe5,0x92,0x95,0x6f,0x2e,0x27,0x63,0x04, + 0x3c,0xda,0x2c,0xd0,0x5b,0xf9,0xea,0xe3,0xd2,0xfe,0x7a,0x5c,0x8b,0xc6,0xa4,0xf3, + 0xea,0x84,0xe2,0xef,0x27,0x6c,0xe5,0x4f,0x59,0xe9,0x02,0x97,0xe5,0x6a,0x68,0x61, + 0x6d,0x0b,0xcb,0x1b,0x35,0xd9,0x4a,0xd3,0xd0,0xd4,0x67,0x73,0xab,0x3b,0x34,0xfe, + 0x89,0xfa,0x3d,0x5a,0x87,0x9b,0x31,0x75,0xf0,0xfa,0xdd,0x21,0x99,0x90,0xbf,0x7e, + 0xf9,0x36,0x5d,0xcc,0x11,0x47,0x62,0xdc,0x7a,0xf2,0x5d,0x02,0xb7,0x01,0x33,0x32, + 0xea,0x6a,0xed,0x6e,0xeb,0xa5,0x7e,0xdc,0x56,0x4a,0x8c,0x0f,0x3c,0x7a,0xe2,0x48, + 0x04,0xad,0x1f,0x9e,0xc2,0x57,0x40,0x6f,0x40,0xae,0x9a,0x90,0x78,0x67,0xd8,0xfa, + 0xfe,0xb7,0xc3,0x4f,0x87,0xff,0xfd,0xfe,0xe5,0x41,0x7a,0x74,0xd4,0x4c,0xc2,0x0f, + 0x2f,0xff,0x0b,0x2b,0xf1,0xa3,0x6d,0x7a,0x3a,0x78,0xff,0xee,0xed,0xc1,0x4b,0x7a, + 0xdd,0x49,0xc2,0xc3,0xbf,0xa1,0xe4,0x83,0x5f,0xe8,0x6d,0x37,0x09,0xf7,0xf6,0x7f, + 0xa3,0xa7,0x27,0x78,0xfa,0xe9,0xaf,0x2f,0x3f,0x1c,0xe2,0x65,0xe3,0xe8,0x69,0x12, + 0xfe,0xf2,0xe1,0xfd,0x27,0x40,0xd2,0xb7,0x67,0xe6,0xed,0x27,0x44,0x53,0xa1,0xd7, + 0xef,0x00,0xfa,0xf6,0xdd,0xdb,0x4f,0x52,0xc0,0xf7,0x49,0xf8,0x7e,0xef,0xf0,0x57, + 0x7a,0xfc,0x01,0xc8,0x3f,0xec,0xed,0xbf,0x64,0x1c,0xdb,0xa0,0xe1,0xcd,0xef,0xaf, + 0x0f,0x5f,0xbd,0xdf,0x23,0xac,0xa0,0x04,0xa4,0xec,0xbf,0x7b,0x7b,0xf8,0xe1,0xdd, + 0x6b,0x7e,0x05,0x29,0xb3,0x3e,0xd7,0xac,0xc7,0xef,0xbb,0xa5,0xf7,0x27,0xce,0x3b, + 0x10,0x82,0xaa,0x0f,0x7b,0x7f,0x7c,0xda,0xff,0xfd,0xe0,0xf0,0xdd,0x9b,0xf0,0xf8, + 0xb8,0xa8,0xf6,0xdb,0xbd,0x37,0x2f,0x7f,0xca,0x7b,0x1e,0xdc,0x88,0xa0,0x5f,0x46, + 0x64,0x7b,0x87,0x76,0x54,0xae,0x54,0xc8,0x51,0x6e,0xaa,0xe9,0xd1,0x36,0x1d,0x9b, + 0x16,0x65,0xc5,0x8a,0xf1,0x88,0xbe,0xa1,0x8b,0x71,0x74,0xb3,0x7d,0x0c,0x8b,0x28, + 0x3e,0x4e,0xa7,0x47,0xcd,0x63,0x67,0x1c,0x9c,0xf1,0x02,0x1d,0x21,0x30,0x2e,0x23, + 0xea,0x60,0x32,0x10,0xe6,0xb2,0x5b,0xe3,0xb4,0xc2,0x12,0x90,0x21,0x1a,0xf8,0x32, + 0x92,0x45,0xe0,0x9c,0xe5,0xcd,0x72,0xc9,0xbf,0x38,0xaf,0xd4,0xa3,0xef,0xe6,0xed, + 0xcf,0xf8,0x4f,0x61,0x8c,0x73,0x50,0xfd,0x28,0x1a,0x48,0x14,0x9a,0x36,0x93,0xc9, + 0xa5,0x9c,0xdb,0x61,0x2f,0x8f,0x7e,0x87,0x0e,0x97,0x54,0xcd,0x7f,0x58,0xe0,0x29, + 0x75,0xc8,0x42,0xaf,0x42,0x49,0x32,0xa6,0x69,0x87,0x2f,0x63,0xff,0xfd,0xa8,0x09, + 0xfb,0xc7,0xda,0x37,0x72,0x77,0x1a,0x80,0x71,0x3c,0x36,0x6b,0xc3,0x57,0x63,0x7e, + 0x4f,0xb0,0x84,0x53,0xc9,0x46,0x09,0x2e,0x87,0x68,0x52,0x51,0x0e,0x22,0x6b,0xc1, + 0x4d,0x0f,0xd4,0x1c,0xa7,0x8e,0x9f,0x37,0x97,0xcb,0xf1,0x0b,0x58,0x4e,0x2d,0x40, + 0x95,0x59,0x72,0x99,0x6a,0xde,0x6d,0x50,0x05,0x97,0x69,0xb4,0xfd,0xfc,0xf9,0x58, + 0xd6,0xf5,0xc2,0x80,0xc9,0x65,0x87,0xbe,0xb5,0x72,0x2e,0xdd,0x95,0xdb,0xe3,0x10, + 0x8c,0x8e,0x08,0x84,0xa5,0x20,0x3f,0x81,0x8b,0x06,0x5c,0xb8,0xc8,0xec,0x6e,0xdb, + 0x5f,0xe5,0x83,0xe1,0xb5,0x9c,0xde,0xc3,0xbf,0x00,0x59,0xed,0xbb,0x17,0x4d,0xb7, + 0x9f,0xf1,0x86,0x4f,0xb2,0x6e,0x12,0x81,0x83,0x38,0x06,0x6c,0x63,0x7a,0x95,0x5d, + 0x44,0x03,0x25,0x94,0xf2,0xcb,0xb5,0xd0,0xa4,0x24,0x56,0xb2,0x7c,0x03,0xf8,0xeb, + 0x7c,0x34,0x8c,0x06,0xc9,0x59,0x42,0x86,0x01,0x09,0x5f,0xe4,0x4f,0x48,0x23,0xa8, + 0xf7,0x4e,0x1f,0x3b,0x4e,0x6a,0x83,0xec,0xac,0xfe,0xb8,0x76,0x56,0x7b,0xac,0xde, + 0x69,0x1f,0xd7,0xf8,0xb7,0xf6,0xb8,0xd2,0xf7,0xf9,0xe3,0x1a,0xfd,0x02,0xdc,0x71, + 0xc1,0xff,0xb8,0x36,0xc0,0x6e,0x8b,0xf1,0x3c,0xd8,0x8d,0xb6,0xef,0xd0,0x0f,0x45, + 0x47,0x44,0x6a,0xc7,0x21,0x91,0x52,0xe8,0x13,0xfd,0x82,0x28,0x76,0x8e,0xf2,0xb8, + 0xf5,0xf8,0x71,0xac,0x2f,0xee,0x8d,0x65,0x6b,0x9f,0x6b,0x78,0x21,0xbd,0x14,0xa6, + 0x1a,0xfd,0x2c,0xd5,0x11,0x4c,0xb7,0x73,0x9d,0xd1,0xab,0xec,0xe1,0x5a,0xab,0x87, + 0xeb,0xcb,0xf5,0x2e,0xe6,0xa7,0xf0,0x1d,0xc3,0xb5,0x0f,0x45,0x15,0x8e,0x37,0x1a, + 0xd4,0xc4,0xd0,0xc0,0x78,0xc9,0xcb,0x13,0x02,0x7a,0xd8,0xc6,0x83,0xfa,0x7d,0x12, + 0x86,0xbb,0xb7,0x7d,0x57,0x36,0x93,0xe9,0x8a,0xda,0x4e,0x66,0x43,0xcf,0x54,0x65, + 0x8a,0x6a,0x03,0xd8,0x2b,0xa3,0xd6,0x7a,0x8d,0x25,0xd8,0x38,0x8b,0x14,0x25,0x15, + 0x3e,0x27,0x6e,0x33,0xb7,0x94,0xc3,0x1e,0x4c,0x17,0x64,0xac,0xf3,0xb4,0x39,0x1c, + 0x5f,0x2a,0x83,0xb0,0x00,0x10,0x1e,0xb5,0x30,0x46,0x38,0x04,0x89,0xba,0x5a,0x63, + 0xcc,0xff,0x02,0xa2,0xc2,0xb9,0xb1,0x83,0xca,0xf1,0x79,0x84,0x0c,0x57,0x23,0xd7, + 0x9f,0x1a,0x03,0xf9,0x9d,0xeb,0x8f,0x8b,0xc1,0x29,0x45,0x21,0xfa,0x4c,0x13,0x32, + 0xd3,0x61,0xf4,0xd9,0x26,0x70,0x53,0xe1,0xe0,0x4a,0x82,0x34,0x35,0x02,0x2b,0x5c, + 0x20,0x7c,0xa1,0xe5,0x01,0x8c,0x8c,0xae,0xbb,0x7b,0x23,0xf9,0xb2,0xb6,0x04,0x59, + 0xe2,0x74,0xb5,0xed,0x62,0xcc,0x63,0x9a,0xc3,0x45,0xb8,0x90,0xef,0x6a,0x5e,0x53, + 0x42,0xc0,0x8b,0xd7,0x6a,0x70,0x3f,0x47,0x92,0xc7,0x89,0x52,0x47,0xd3,0x7e,0x97, + 0xf7,0xd5,0x3b,0xee,0xde,0xee,0x9b,0x34,0x94,0xe6,0xae,0xde,0x39,0xe5,0xdb,0x85, + 0x41,0x7a,0xa1,0x2b,0xb6,0x15,0x76,0xec,0x5b,0xf1,0xd1,0xb6,0x4c,0x95,0x74,0x1d, + 0x15,0x19,0x0a,0xad,0x27,0x89,0x20,0x51,0x07,0xd0,0x37,0x11,0x7f,0xd6,0xdc,0x62, + 0xcd,0x6d,0x17,0xba,0x2f,0x20,0x50,0xdf,0x9d,0x8d,0x90,0xae,0xa3,0xab,0x9a,0xf0, + 0xd3,0x13,0x5a,0xa6,0x9f,0xe8,0x51,0x68,0x21,0x3f,0x75,0x8a,0xc1,0x57,0x2e,0x89, + 0xe6,0x99,0x38,0xc6,0xd4,0xdc,0x2c,0xcc,0x0e,0xd0,0x3d,0x52,0xbf,0x78,0xd4,0xc4, + 0xf4,0x1c,0x33,0xa5,0xe2,0x29,0xc6,0x3f,0x67,0xb9,0xe7,0xc8,0xff,0x0e,0x49,0x7e, + 0xd3,0x69,0xc2,0x96,0x0a,0xff,0x4e,0x28,0xed,0xa6,0x9d,0x28,0x6c,0x95,0xe7,0x12, + 0x21,0x83,0xe2,0xa0,0x3b,0x8c,0x3c,0x93,0xa2,0xe9,0x43,0x4c,0x7f,0x56,0xef,0x33, + 0xad,0x06,0x73,0xf6,0x5f,0x5c,0xc9,0x55,0x62,0x71,0x9f,0x17,0xa6,0x3d,0xcc,0x12, + 0xdc,0x4e,0x0b,0x6b,0xf6,0xff,0xfa,0xf6,0x20,0xc2,0x8b,0x26,0x89,0x65,0xce,0x5d, + 0xd9,0x24,0x45,0x6b,0x88,0x74,0x0a,0x81,0x5e,0xbb,0x2b,0x54,0xf4,0x65,0xa6,0xb9, + 0x97,0xf7,0xd5,0xfa,0xa1,0xba,0x5b,0x5f,0xe4,0x87,0x79,0x54,0x88,0xa3,0xb9,0xc3, + 0xbb,0x3f,0x6c,0x5c,0x96,0x59,0xe7,0x0d,0x99,0x1e,0x21,0x5c,0x4c,0x32,0xf8,0x53, + 0xe2,0x04,0xee,0xe9,0xf4,0xee,0xf4,0xf4,0x0b,0xcc,0x39,0xbc,0xe7,0x5b,0xaf,0xdc, + 0x65,0x58,0xf6,0xea,0xf2,0xb8,0xd2,0x6f,0x7b,0x3d,0xa0,0xdf,0xa0,0xae,0xce,0xd7, + 0x1f,0xb7,0xad,0x5b,0x80,0x95,0xcb,0x4f,0xc2,0x56,0x2b,0xa3,0x03,0x83,0xc8,0xdf, + 0xd2,0x94,0xef,0x7d,0xc4,0x34,0x2b,0x95,0x12,0x8a,0x02,0x88,0x47,0xd5,0x38,0x4e, + 0xf9,0xe0,0x2f,0x7c,0x61,0x7e,0x1b,0x8d,0x86,0x4d,0x15,0x55,0x18,0x59,0x6c,0xa9, + 0x4a,0xf5,0x14,0xa9,0x4d,0x8f,0xd2,0x67,0xfc,0xb9,0x26,0x9b,0x87,0x1c,0x01,0x06, + 0x30,0x01,0x83,0x40,0x98,0x7b,0x82,0xda,0x0b,0x48,0xc1,0x2c,0xd0,0xc5,0x49,0x45, + 0x6c,0x2c,0x46,0x25,0xac,0xa2,0xfa,0x72,0xa5,0x80,0xdb,0x80,0x16,0x05,0x94,0xd7, + 0x4c,0x21,0x6f,0x9d,0xc2,0x44,0x8d,0xbf,0xf1,0xb8,0x77,0x7a,0x4a,0x7e,0x0a,0xf3, + 0x2f,0x61,0x5c,0x91,0x2d,0xdf,0x68,0xe1,0x3b,0x49,0x09,0xfc,0xfc,0xae,0x29,0xd5, + 0x39,0xb4,0x00,0xe7,0xf1,0xbd,0x3e,0x56,0xe7,0x32,0x1b,0xb7,0xa2,0x94,0x03,0x7e, + 0xe7,0x2e,0xb9,0xb2,0xa0,0xc9,0x8c,0xbe,0x49,0x94,0x06,0x14,0x61,0xde,0x9b,0x01, + 0x68,0xe6,0x6b,0x88,0x1a,0x1d,0x0a,0x90,0x1c,0x2e,0xb9,0x6b,0x22,0xd7,0x65,0x06, + 0xf7,0xef,0x1f,0x5e,0x57,0xe2,0xe5,0x9d,0x63,0x41,0xc9,0x21,0xbd,0x06,0xf3,0xfe, + 0x68,0x4a,0x07,0xb7,0x54,0x4e,0xe1,0x4e,0x39,0x6b,0x05,0x0b,0x32,0x19,0xbf,0x0b, + 0x16,0xc6,0x3f,0x24,0x1e,0x48,0x5a,0xe2,0x87,0xb9,0x7a,0x57,0x59,0x80,0xec,0x48, + 0x2d,0x9e,0xfe,0xe7,0x1f,0x87,0x81,0x95,0x9a,0xdf,0x01,0x0f,0xea,0x56,0xb4,0x0d, + 0x6a,0x89,0x2d,0xe2,0x68,0xc0,0x77,0x53,0x81,0xb8,0x62,0x39,0xb8,0xe1,0x2c,0x1c, + 0x89,0x7b,0x96,0xef,0x00,0xea,0xcd,0x8e,0x14,0xf0,0x0f,0x58,0x28,0x47,0x42,0xab, + 0x4a,0x7f,0xfc,0xeb,0xb4,0x88,0x54,0x57,0x88,0x8a,0xc8,0x92,0xf1,0xa0,0x32,0xb4, + 0x7a,0xb6,0x34,0x5d,0xf7,0xe5,0xd0,0x9b,0x9d,0x04,0x4f,0x75,0x57,0x67,0x7c,0x9c, + 0x9f,0xba,0x5e,0x9a,0x23,0xb1,0x8d,0x4c,0xd0,0xd8,0xbc,0x79,0x6c,0xdf,0x23,0x4a, + 0x40,0x95,0x11,0x10,0x98,0xca,0x58,0x4e,0x50,0xc6,0x69,0x2e,0xa9,0xf9,0x3e,0x7d, + 0x6a,0x3e,0xab,0x70,0xe8,0xe4,0x0f,0xad,0x08,0xc0,0x1d,0xfc,0x6b,0x30,0x5c,0x4b, + 0xf6,0x9a,0x85,0x2b,0xb4,0x37,0xdd,0x69,0xae,0xa5,0x60,0x08,0x42,0x22,0xe3,0x4b, + 0x55,0x16,0xfa,0x81,0x52,0xa8,0x41,0xb1,0xa9,0x95,0x34,0x2d,0x31,0xd9,0xc8,0xc7, + 0xce,0x7a,0xf0,0x1c,0xaa,0x0a,0x85,0xe8,0x42,0x7c,0xd4,0x34,0x1c,0xfc,0x64,0xee, + 0xf6,0x7e,0x72,0xde,0x2d,0xfd,0x2f,0x66,0xf6,0x6a,0x51,0x9d,0x1e,0xe5,0xdb,0xee, + 0x3b,0xd7,0x1a,0x54,0x58,0x52,0x31,0x81,0x9d,0xc9,0x34,0x71,0x53,0xbd,0x4a,0xc1, + 0x96,0x20,0xac,0x9d,0x71,0x17,0xba,0x89,0x6f,0x56,0x9f,0xbc,0x4a,0x01,0x47,0x67, + 0x62,0x02,0xb8,0xfe,0x78,0x44,0xf4,0x57,0xf7,0x9c,0x8f,0x24,0x23,0x4f,0x7d,0xba, + 0xb9,0x19,0x8d,0x52,0x24,0xac,0x5f,0x41,0x4a,0xb7,0x33,0x57,0x21,0x37,0x8e,0xec, + 0xf3,0xcc,0xc4,0x3a,0xb7,0xf4,0xcf,0x06,0x79,0xca,0xad,0x3a,0x13,0xe5,0x0f,0x09, + 0xdf,0xa0,0x8c,0x57,0xa9,0xf9,0xa7,0xc4,0x4a,0x1d,0x9d,0xf8,0xe0,0xad,0x5a,0xa9, + 0x36,0x3c,0x0e,0x2b,0x16,0x4a,0x2e,0xa6,0x84,0xc1,0xda,0xa2,0xc0,0x5c,0xc3,0x49, + 0xbe,0xfa,0x5d,0xc5,0xc8,0x93,0x82,0x8f,0x39,0x21,0x1d,0x2f,0x85,0x8e,0x1f,0x74, + 0xdb,0x83,0x13,0x88,0x16,0x8f,0x5b,0x96,0x39,0x27,0xae,0xb0,0x20,0xaf,0xb8,0xe9, + 0x89,0x52,0x48,0x19,0x54,0x75,0xd3,0xa2,0x13,0xe0,0x94,0x41,0xb0,0x07,0x4d,0xb0, + 0x52,0x35,0x2f,0x60,0x56,0xae,0x22,0xb2,0xc4,0xd6,0xc9,0xfd,0xab,0xf9,0xaf,0x5e, + 0x1f,0x5a,0xcb,0x75,0x94,0x4e,0x2c,0x5c,0xb3,0x34,0x2d,0xdd,0x27,0x26,0x9b,0x89, + 0x9f,0x27,0xe4,0xa0,0x2a,0x81,0xe6,0x68,0x94,0x91,0xf2,0xbb,0xda,0x00,0x43,0x28, + 0xc7,0x07,0x87,0x57,0x98,0x90,0xd2,0xf5,0xc6,0x18,0x80,0x88,0xf1,0x4f,0xcd,0x31, + 0x84,0x3b,0xea,0x15,0x52,0x14,0x82,0xe2,0x18,0x32,0x0a,0x69,0x6f,0x49,0xdd,0xe7, + 0xd4,0x8c,0xbf,0xb7,0x24,0x14,0x43,0x42,0x47,0xc7,0x96,0xd0,0x2b,0x85,0x93,0x4b, + 0x34,0x02,0xdf,0x9e,0x6e,0x9f,0x3a,0x9b,0x08,0x90,0xdf,0xde,0xa8,0x20,0xc6,0xf8, + 0x5e,0x8c,0x1b,0x14,0x6f,0x6d,0xdc,0xdb,0xbf,0xc0,0x22,0x34,0x3a,0x75,0x57,0xa6, + 0xa4,0x83,0x36,0x9c,0xca,0x22,0x60,0x9c,0x75,0x13,0xe2,0x2c,0x53,0x8a,0xb6,0x87, + 0x62,0x83,0x95,0xf1,0xd5,0xba,0xf3,0x0c,0x82,0xcd,0x52,0x33,0x27,0x92,0x11,0xdd, + 0x28,0xdd,0xd2,0xd1,0x29,0xfa,0xba,0x6e,0xdc,0xd1,0x9c,0x47,0xdd,0x63,0x55,0x1c, + 0x76,0x9a,0xad,0xed,0xb8,0xb5,0x23,0xfd,0xef,0xc4,0xcf,0x78,0x62,0x67,0x3c,0xf1, + 0x33,0xaa,0x15,0x15,0xba,0xcc,0xc9,0x72,0xd9,0x6d,0x70,0x38,0xa7,0x3e,0x4e,0x9d, + 0xd0,0x3b,0xfb,0xc8,0x8e,0xea,0x56,0x1b,0x41,0x9b,0xfa,0xd1,0xf1,0xb9,0x7d,0xb6, + 0x2e,0xcd,0x44,0x9e,0x02,0x52,0x02,0x69,0x19,0x30,0xe3,0x29,0xd1,0xb0,0x68,0x73, + 0x93,0x7f,0x1a,0xc6,0xf8,0x0c,0x96,0xb0,0x91,0x13,0x08,0x6e,0x2c,0x9c,0x2b,0x3e, + 0x4c,0x6f,0xbc,0x74,0xf7,0x62,0x5e,0xf9,0xab,0x7b,0x63,0xda,0xfd,0xe8,0x5f,0x8f, + 0xb6,0x01,0x62,0x22,0x5c,0x28,0x13,0xe5,0x2b,0xe8,0xb6,0xdb,0x4f,0x00,0xe5,0xe4, + 0x83,0x36,0x98,0x38,0x83,0xb6,0x72,0xc5,0x0b,0x39,0x1c,0x78,0x2b,0xbb,0xce,0xf9, + 0xc4,0x38,0x3a,0x8a,0x55,0xfb,0x49,0x0c,0x32,0x0e,0x01,0xd5,0xa7,0x5e,0x5b,0x30, + 0x50,0x22,0xff,0xb5,0x8e,0x38,0xd8,0xf9,0x43,0xc9,0xf1,0xc3,0x86,0xde,0xe2,0x57, + 0x03,0xb3,0x84,0x50,0xf8,0xf7,0xf8,0xa7,0xf0,0x04,0x09,0x47,0xfe,0x57,0x43,0xda, + 0xee,0x25,0x4d,0xfc,0x4f,0x08,0x12,0x2e,0x24,0x91,0xca,0xe0,0x1e,0xc2,0x7d,0x5e, + 0x46,0x52,0xd7,0xcb,0x88,0x47,0x98,0x9e,0xaa,0xf3,0xa6,0x33,0x3e,0x3d,0x61,0x45, + 0x7d,0xc2,0x69,0x5a,0x73,0xc6,0x68,0xfb,0x85,0x84,0x86,0xd8,0x7e,0xdf,0xde,0x45, + 0xa9,0xeb,0xd1,0x33,0x0a,0x6a,0x09,0x40,0x3e,0xc8,0xda,0xcc,0x3f,0x5a,0x34,0xd9, + 0x55,0x82,0x09,0x91,0x89,0x56,0x15,0x37,0x88,0x67,0x7d,0x13,0xf8,0xbb,0xb0,0x3a, + 0xa9,0xac,0x16,0xcf,0x6f,0xa6,0xb9,0x23,0x3b,0x3b,0x87,0x9b,0x28,0x70,0xd4,0x0c, + 0xc5,0x9d,0xb0,0x05,0x51,0xc4,0x8f,0x64,0x0d,0x0b,0xb4,0xb9,0x40,0xf4,0x19,0xf3, + 0x83,0x50,0x2e,0x5d,0x22,0x35,0x9d,0xe2,0x61,0xad,0xa9,0xdc,0x5e,0xcf,0xc9,0x7b, + 0xab,0x14,0xee,0x8d,0xd9,0x49,0x98,0x1c,0x9f,0x05,0xa4,0x75,0xeb,0xa3,0x47,0xab, + 0x71,0xa9,0xf8,0x90,0x31,0xae,0x65,0xe1,0x2e,0xc0,0xa9,0x91,0x4f,0x29,0x97,0xe0, + 0x92,0xea,0x29,0x47,0x34,0x66,0x87,0x11,0x85,0x66,0x48,0xc9,0x54,0x94,0x7a,0x72, + 0x42,0xe4,0x8e,0x2f,0x29,0xf4,0x8b,0x2f,0x2b,0xfc,0xef,0xbe,0xb4,0xf0,0x3f,0xfb, + 0xf2,0x42,0x40,0x44,0xde,0xa1,0x60,0x78,0x06,0x4d,0xbb,0x3d,0x58,0xcf,0xbe,0xe7, + 0x67,0x74,0x2d,0x87,0x7a,0xb3,0xb0,0x31,0x70,0xa8,0x5d,0xb5,0xdb,0x3b,0x31,0x84, + 0xe6,0x39,0x9b,0x17,0x2d,0x34,0xed,0x71,0x6b,0x48,0x4e,0x87,0xc5,0xf6,0xe4,0xe3, + 0xb2,0xd1,0x65,0x3e,0xe6,0xbc,0x2c,0x19,0xf4,0x86,0xfd,0x2c,0xe9,0xd2,0x74,0x2f, + 0x6d,0x60,0x3c,0xd2,0xcc,0xd9,0x44,0x9c,0x40,0x52,0xfc,0x61,0xff,0x5b,0x0c,0x9a, + 0xf2,0x5f,0x7a,0x15,0xb4,0xe2,0x3b,0x08,0x4d,0xf3,0x45,0xfd,0x8a,0x4b,0x74,0xfa, + 0x15,0xa7,0x74,0x78,0x90,0xf4,0x12,0xaa,0x7f,0x20,0x27,0xee,0x5d,0x2e,0xe4,0xa6, + 0x9b,0x05,0xe4,0x44,0x82,0xbb,0x97,0x51,0x03,0x4f,0xc8,0xb5,0x30,0x9c,0xcd,0x84, + 0x2d,0xce,0x55,0xf8,0x30,0xe2,0xf5,0x8b,0x1d,0x45,0x55,0x6c,0x9c,0x67,0x64,0x1a, + 0xb9,0x51,0xb6,0xc1,0xdd,0x9a,0x31,0x4b,0x3a,0x66,0x4c,0x61,0x28,0x8e,0x4f,0x61, + 0x85,0xf5,0xfb,0x87,0x57,0x34,0xdb,0x4d,0xc6,0xb4,0x8a,0x30,0xc3,0x2c,0x59,0x88, + 0xb9,0x5a,0x0b,0x22,0xaa,0x79,0xb7,0xd2,0xc3,0x2d,0x43,0x3f,0xd2,0xc1,0x69,0xd8, + 0xa3,0xc3,0x4f,0x9d,0xe0,0xb2,0xf0,0xa4,0x25,0x04,0xdb,0xb1,0x2d,0x2a,0x5d,0xef, + 0x7a,0x23,0x9b,0xd9,0xcf,0xa3,0xdb,0x6b,0xae,0xbb,0x04,0x64,0x55,0x94,0xc3,0x1b, + 0x9b,0x1e,0xef,0xf1,0x98,0x40,0x46,0xf1,0xfc,0xc9,0xfa,0x12,0xfd,0x4e,0x52,0xdb, + 0x96,0x6e,0xe2,0x97,0xfb,0x9d,0x5d,0xae,0x5d,0x5d,0xee,0x8f,0xeb,0xfb,0x05,0x8f, + 0x13,0xca,0x93,0xa5,0x4d,0xbe,0xd9,0x25,0x21,0x04,0xf3,0xcf,0xcc,0x4f,0x50,0x23, + 0x9e,0x58,0x2a,0xbc,0x48,0xcd,0x73,0x65,0xdd,0x25,0xdc,0x55,0xbf,0xfb,0x6d,0x6b, + 0x60,0x96,0x38,0x03,0x71,0x57,0x22,0xb7,0x75,0x70,0xb2,0xc9,0xa5,0xd4,0x6a,0xe6, + 0xfd,0x14,0x66,0xbf,0xe4,0xd4,0x57,0xeb,0x81,0xed,0xd1,0x80,0x27,0x73,0x1e,0xc7, + 0x5a,0x3b,0x40,0xe4,0xeb,0x18,0xf3,0x99,0x16,0x4b,0xfa,0x39,0x4f,0x8b,0xd5,0x9e, + 0xd0,0x85,0xe5,0xb2,0xcc,0x73,0x9a,0xca,0x30,0x96,0x66,0xd8,0x32,0x72,0xc0,0x23, + 0x37,0xb6,0x98,0xa0,0x17,0x34,0x65,0x7b,0xb7,0xc2,0x55,0xfd,0x63,0x63,0x54,0x11, + 0x58,0x4a,0x57,0x53,0xa6,0xe8,0x30,0xc4,0x8c,0xd1,0x5d,0x9d,0xd3,0xda,0xf7,0xdd, + 0x6f,0x61,0x2b,0x2f,0xb8,0x70,0xef,0xfe,0x77,0x48,0x94,0x68,0x32,0x8b,0x3b,0x47, + 0xad,0xe4,0xb8,0xf3,0x31,0xfb,0x76,0x6b,0x40,0xda,0x2b,0x11,0xcb,0x85,0x5f,0xd9, + 0x9b,0xee,0x6c,0xbc,0xce,0xa2,0xd8,0xaa,0x08,0xd3,0x20,0xdb,0x8b,0x68,0xe6,0x74, + 0x52,0x6e,0x15,0x31,0x9d,0x30,0x2d,0x14,0x06,0x62,0x48,0x1c,0x65,0xb1,0xce,0x97, + 0x41,0x1d,0xa9,0x18,0xe3,0xbc,0xa9,0x0c,0xad,0x23,0xe9,0x99,0xae,0xb0,0x36,0x6c, + 0xe3,0x77,0x66,0x99,0x0a,0xe9,0x3d,0x13,0x66,0x22,0x9f,0x32,0xec,0x46,0xaf,0x12, + 0xf4,0xda,0xfa,0x25,0x34,0x07,0x46,0xd4,0xaf,0x45,0xa3,0x13,0x82,0x87,0x8a,0xf6, + 0xf9,0x12,0x1f,0x73,0x66,0xfc,0x30,0x0e,0xa6,0x74,0x6d,0xe3,0x30,0x8f,0xe1,0x4c, + 0x47,0x8c,0xfd,0x9e,0x7b,0xa3,0x82,0xec,0x96,0x10,0x3a,0x55,0xc3,0x3f,0x93,0x28, + 0x93,0xa0,0x19,0x41,0x46,0x51,0x5e,0xae,0x8d,0xf5,0x4b,0x70,0x83,0x8d,0x08,0x87, + 0x59,0x31,0xec,0xc8,0x1a,0xf0,0xaa,0x29,0x22,0xd0,0xb8,0x02,0x9d,0x92,0x45,0x5a, + 0x30,0xa1,0xdd,0xd8,0x14,0x7a,0x12,0x73,0x66,0xd6,0x9d,0xe7,0x9e,0x45,0x13,0x2a, + 0x57,0x82,0xe1,0xe2,0x29,0x2f,0x84,0x6f,0x81,0xac,0xe0,0xa3,0x43,0x3c,0x08,0x94, + 0x10,0x30,0xb4,0x18,0x80,0xdf,0xa3,0x0b,0x0d,0x38,0xfd,0x63,0x9e,0x5d,0x91,0x06, + 0xe8,0x87,0xd8,0x4b,0x33,0x04,0x76,0x73,0x16,0x44,0x7f,0x0c,0x31,0x9d,0x70,0xc4, + 0xd7,0xa0,0x4b,0x3e,0x6e,0x12,0xae,0x32,0xd9,0xfb,0x32,0x52,0x8d,0x6d,0x3d,0xe8, + 0x01,0x14,0x7e,0x07,0x84,0x40,0xbf,0x85,0xd6,0x13,0xa8,0xb8,0xf8,0x72,0x4a,0x20, + 0x6d,0x06,0xff,0xc9,0xdd,0xf3,0x46,0xf0,0x6a,0x9e,0x29,0x93,0x29,0x8c,0xd4,0xe9, + 0x67,0xca,0x0d,0x89,0x63,0xd0,0x36,0x82,0x3f,0x88,0x55,0x7c,0x67,0x87,0x70,0x49, + 0xe6,0xc4,0x50,0x39,0x81,0xa2,0xa9,0x6d,0x6e,0xd2,0x60,0x84,0x60,0xe2,0xd1,0x66, + 0xb8,0xca,0x00,0x6d,0x15,0x6a,0xd4,0xad,0x5c,0x81,0x87,0x91,0xc9,0xbd,0x21,0x1f, + 0x1d,0x4e,0x0b,0x97,0x1a,0x93,0x79,0x26,0x4d,0x29,0x78,0xbb,0xcc,0x6d,0x09,0xc0, + 0x5b,0xef,0x66,0xe4,0xf2,0x1d,0x18,0xb5,0x99,0x93,0x0d,0xb3,0x12,0x5b,0xd1,0xd6, + 0x9d,0xd0,0x6b,0x45,0xa1,0xe9,0xe8,0xdd,0x6f,0xc7,0x41,0x5d,0xba,0x1d,0xbb,0x13, + 0xf2,0x5a,0xc3,0x47,0x21,0x2c,0x5b,0x89,0x22,0x3c,0x90,0x4a,0xae,0x82,0x48,0x74, + 0x08,0x25,0x26,0xf1,0x80,0x78,0x01,0x7d,0xd3,0xcc,0x59,0x42,0xdb,0x0b,0xd7,0x03, + 0xc5,0x44,0xf2,0xa3,0xb0,0xed,0x3a,0x98,0x9c,0xcd,0xcd,0xbd,0x8e,0x87,0x6f,0x77, + 0x64,0x56,0x7f,0xe8,0x16,0xa6,0xf9,0xa4,0x32,0x07,0x26,0xd7,0xe7,0x3b,0xcd,0x87, + 0xcf,0xc4,0xb5,0x6d,0x59,0x00,0x3c,0x7c,0x26,0xf6,0x17,0xd3,0xe5,0x8a,0x2f,0xc4, + 0x35,0x22,0x1d,0xb7,0x05,0xec,0x5b,0x46,0xce,0x95,0xb2,0xe0,0x46,0xa2,0x65,0x41, + 0x71,0x73,0x72,0xd2,0xe7,0xf3,0x6f,0x33,0x19,0xb3,0xa6,0x27,0xdb,0x78,0xd0,0x75, + 0x26,0xbd,0xa6,0xf4,0x2f,0xdf,0x03,0x32,0x57,0xb8,0x57,0x5c,0x06,0x32,0x1f,0x8d, + 0x22,0xc1,0x39,0x63,0xb5,0xa6,0x6e,0xc0,0x3d,0x4a,0x05,0xd2,0x72,0x29,0x60,0x7d, + 0x2e,0xdd,0xa7,0x41,0x0f,0xd7,0xcb,0x34,0xe2,0x7e,0xb3,0xc2,0x71,0x80,0x22,0x12, + 0xcc,0x6b,0xef,0xe4,0xa8,0x6b,0x82,0x47,0x51,0xa1,0xf1,0x76,0xe8,0x8d,0xff,0x95, + 0x4b,0x45,0xcc,0x2f,0xfb,0x76,0xfe,0x91,0xdc,0x71,0xe1,0xfb,0x6f,0x49,0xfe,0x72, + 0x72,0xa3,0x8f,0xd9,0x99,0x3e,0x9e,0xce,0x8e,0xd5,0x5c,0xc9,0xbb,0x13,0x63,0x21, + 0xe5,0x52,0xd8,0xe2,0xd9,0x94,0xe1,0x9b,0x14,0x33,0xbb,0xd5,0x01,0x80,0x7b,0xb7, + 0x3e,0xb1,0x30,0x09,0x0b,0x14,0x55,0xec,0xdf,0xc6,0xd7,0xf2,0xf8,0xf1,0x3d,0x6b, + 0x4f,0x23,0xcd,0xd0,0x71,0x21,0x5b,0x36,0x6e,0xcb,0x1e,0xee,0x61,0x97,0xad,0xc4, + 0xac,0xa2,0x77,0x9b,0x2e,0x88,0x5b,0xad,0x66,0x72,0x72,0xd3,0xda,0x4e,0xb2,0xb3, + 0xd6,0x4e,0x72,0x3a,0x6b,0xed,0xde,0x95,0x0c,0x71,0xdb,0x1b,0xca,0xfc,0x82,0xb8, + 0x23,0xe4,0x3f,0x5e,0xeb,0x9b,0x42,0x89,0xe7,0xc1,0xf8,0x7f,0xf2,0xb5,0x22,0xbd, + 0x94,0xe2,0xdf,0x27,0xa9,0xf4,0xe0,0xe8,0x0a,0x0f,0x75,0x70,0xe9,0xba,0x61,0x49, + 0x17,0x64,0xed,0xdd,0xca,0xad,0x7b,0x13,0x23,0x3f,0x28,0x5a,0x94,0x6c,0xe2,0xe8, + 0x19,0x8b,0xb2,0x2a,0xa3,0xf2,0x54,0x70,0x98,0x05,0x52,0x24,0x38,0x5c,0x11,0x1d, + 0x09,0x8c,0xaf,0xc8,0xa2,0xee,0x54,0x89,0x35,0x4d,0xf3,0x3c,0x95,0x9f,0x69,0x17, + 0x5a,0x2d,0xf2,0xbf,0x12,0x65,0xb5,0x13,0x5e,0x99,0x82,0x7e,0xe6,0x2d,0x2a,0xcd, + 0xd6,0xbc,0x85,0xcd,0xa5,0xe6,0x46,0x15,0x97,0xf7,0x8d,0xd3,0x63,0xaa,0xa3,0x72, + 0x1d,0x60,0xeb,0x7d,0xf3,0xab,0x82,0x40,0x76,0x5e,0x0c,0x1a,0xc6,0x5f,0x79,0xfa, + 0x11,0x89,0xd5,0x17,0x1a,0xc5,0x39,0xdf,0xe0,0x41,0x66,0x53,0xe3,0x8f,0x33,0xf6, + 0xc4,0x7a,0x5b,0x31,0x36,0x00,0x9c,0xdc,0x82,0xa5,0x27,0x7c,0x28,0x74,0x94,0x5f, + 0xb8,0x30,0x36,0x26,0xc6,0x71,0x0f,0x7e,0x4c,0xc8,0xf6,0xc4,0xd4,0xce,0xc7,0x8d, + 0x55,0x3f,0x53,0x80,0x83,0xb6,0xf9,0xea,0x9d,0xc8,0xfc,0x51,0x6a,0x9d,0xbf,0xcc, + 0xf3,0xbb,0xdb,0x56,0x12,0xe8,0x90,0xa2,0x62,0x13,0xef,0x94,0x9e,0x23,0xd1,0x4f, + 0x64,0x58,0x2d,0x4b,0xc2,0x6a,0x9f,0xc3,0x52,0xa2,0xfa,0x1c,0x4e,0x4a,0xd8,0x29, + 0xcd,0x2b,0x56,0x3f,0x98,0x06,0x1f,0x0e,0xa8,0x04,0xd7,0xdc,0x78,0x34,0xff,0x7d, + 0x4a,0x5e,0xea,0xf9,0x74,0xd8,0x8e,0x73,0x92,0x6d,0x7d,0xff,0x8c,0x36,0xfc,0xc9, + 0x85,0x93,0xfa,0x1f,0x9c,0xba,0xb5,0xfb,0x8c,0x3e,0x8d,0xdc,0x4f,0x94,0xb8,0xf5, + 0xac,0x59,0x98,0xab,0xf6,0x5e,0x34,0x3b,0xbd,0x5a,0xd8,0x83,0x02,0xf2,0xa2,0x16, + 0xc2,0x23,0x68,0x74,0x81,0x14,0x7a,0x44,0xca,0xa8,0x16,0xe2,0xb0,0x98,0xff,0x3a, + 0x11,0xba,0x06,0xa8,0xe6,0x20,0x39,0x49,0x40,0x54,0x85,0x25,0x24,0x7d,0x26,0x8b, + 0xcc,0x17,0x62,0x2f,0x32,0x80,0x01,0x09,0x9e,0x4f,0xe8,0x99,0x1e,0xa2,0xac,0xf3, + 0x18,0x76,0x97,0x78,0x32,0x26,0x1f,0x25,0x53,0x51,0xab,0x20,0xbb,0x21,0x16,0x76, + 0x1b,0xd0,0xba,0x28,0x7f,0x06,0xe7,0x8b,0xd8,0x73,0x29,0x98,0xfa,0x4a,0x1c,0xb3, + 0x45,0x0a,0x95,0xec,0x36,0xdd,0xf8,0x66,0x16,0x2e,0x3a,0x48,0x77,0x50,0xc4,0x0b, + 0xb9,0xe0,0x25,0x58,0xdc,0x8f,0xa5,0xe2,0x9a,0x77,0x16,0x56,0x2d,0xcf,0x8f,0x3b, + 0x50,0x1d,0x76,0x80,0x8a,0xf6,0x15,0x41,0xa6,0x43,0x73,0xae,0x3a,0x24,0x88,0xef, + 0xd3,0x77,0x48,0x1b,0x43,0x40,0xc2,0xca,0x27,0xd4,0xa5,0xde,0xda,0x3c,0xa1,0x4c, + 0xdf,0x27,0xa9,0x75,0x4d,0x2f,0x6b,0x50,0x80,0xbe,0x4f,0x98,0x45,0xfa,0xb8,0xa5, + 0xb7,0xf3,0x44,0x76,0xf6,0xd4,0x7c,0x99,0x13,0xac,0x61,0x83,0x1b,0x3c,0xfc,0x7d, + 0x4a,0xca,0xaf,0x30,0x91,0x0e,0xd9,0xb8,0xe2,0xf7,0x4f,0x59,0x1c,0xd7,0x04,0xe2, + 0xc7,0xee,0x1c,0x4c,0xc3,0x74,0x87,0xaf,0x27,0x78,0xfe,0x34,0xba,0x06,0x66,0xb0, + 0x1e,0x63,0xe3,0xe7,0xc1,0x2d,0x0e,0x0d,0x77,0xe2,0x24,0xfc,0x6b,0xa8,0x19,0x7e, + 0x46,0xd9,0x01,0x51,0x81,0x19,0xf2,0x24,0x09,0x7f,0xfb,0x11,0x8e,0xe8,0xa1,0x28, + 0x45,0xd7,0xf3,0xe9,0x44,0xba,0x21,0x53,0x73,0x23,0x7a,0x42,0xd0,0x1d,0xe2,0x5c, + 0x2a,0x4c,0x3c,0x70,0xf6,0x6a,0xc9,0x1f,0x4d,0x26,0x42,0x5e,0x94,0xfb,0x96,0x22, + 0x12,0x06,0x3c,0x28,0xc2,0x24,0x6b,0x8c,0xe9,0x35,0x09,0x7b,0x3f,0x8e,0x0a,0x90, + 0xd7,0x90,0xd6,0xc1,0x87,0x83,0x83,0x57,0x04,0x30,0xc3,0x5e,0x89,0xbf,0x83,0xbe, + 0x83,0xb7,0x1f,0xd8,0x59,0x7e,0x36,0x9e,0x29,0xf0,0xde,0x60,0x46,0xbc,0x08,0x0e, + 0xff,0x56,0xb0,0x07,0x1b,0x41,0xe1,0x8f,0x07,0xf6,0xc1,0x02,0x9b,0x81,0x4c,0x1f, + 0xd2,0xcc,0xd9,0x19,0x43,0x02,0xa6,0x7f,0x7a,0x9d,0xd0,0x09,0x25,0x0a,0xe6,0x1c, + 0x78,0xf4,0x40,0x0f,0x19,0x34,0x43,0x7b,0x17,0xec,0x25,0xf7,0x99,0xc0,0xb1,0x75, + 0xa8,0x68,0x3e,0x51,0xa5,0x31,0xe0,0x83,0x2d,0xc2,0xc5,0xe0,0x26,0x49,0x33,0xc1, + 0xfe,0x0e,0xdd,0xab,0x94,0xab,0xc7,0x89,0x4e,0x36,0x49,0xd3,0x7c,0x87,0x7f,0x0b, + 0xa0,0x93,0xba,0xea,0x53,0x9e,0xf9,0xed,0x27,0x7e,0xc6,0xc7,0xc8,0x72,0xc0,0x2f, + 0xcd,0xf6,0x5f,0x87,0x87,0x05,0x28,0x09,0x7b,0x01,0x6e,0x85,0x05,0xfb,0x69,0x9b, + 0xab,0xec,0xe7,0x6d,0x9e,0xb6,0x41,0x01,0xf4,0xea,0x3d,0x7d,0x1d,0x4c,0x71,0xb2, + 0x52,0x27,0xd1,0xca,0xb6,0xf8,0x54,0x1e,0xc4,0x31,0xf7,0x02,0xf4,0xaa,0xb8,0x6d, + 0xa7,0x4a,0x53,0x4b,0x93,0x23,0x4b,0x36,0x85,0xc9,0x21,0xaf,0x9c,0xf8,0xa9,0xce, + 0x9d,0x31,0x4e,0x6c,0x24,0x71,0xbb,0x0c,0xc4,0x99,0x0b,0x28,0x41,0xe6,0xb9,0x49, + 0x30,0x0b,0xf3,0x61,0x9a,0x15,0x7e,0xa4,0xdb,0x3a,0x4e,0x79,0x99,0xe6,0x8e,0xb3, + 0x6c,0x28,0x87,0x87,0x1d,0x3c,0x39,0xb6,0xef,0xb7,0x82,0xec,0x2c,0x8d,0x6e,0xc9, + 0xf0,0x52,0x2e,0x98,0xc4,0x74,0xc3,0xc4,0x91,0xbd,0x97,0xd7,0x2c,0x79,0x59,0xe8, + 0xba,0x41,0x87,0x25,0xb8,0x29,0x66,0x86,0x8a,0x58,0xc9,0x62,0x03,0x13,0x3c,0xde, + 0x60,0xcb,0x43,0x29,0x43,0x6c,0x64,0xa1,0x32,0x8a,0xca,0x96,0xb2,0xb1,0x6d,0x2a, + 0x2b,0xf0,0x71,0xec,0x58,0x07,0x1a,0x91,0xc3,0xc1,0x53,0x33,0x22,0x7b,0x72,0x69, + 0x88,0x5e,0x2e,0x6f,0xc9,0xe5,0xb9,0x55,0x03,0xf2,0x2d,0x43,0xdf,0xd1,0xbd,0x26, + 0x97,0xdc,0xc3,0x18,0x02,0xaf,0xf8,0xab,0xde,0x1f,0x2b,0xea,0x29,0x66,0x89,0x00, + 0x1f,0x4b,0x0c,0x0b,0x43,0xbd,0xd8,0x4d,0xca,0xd4,0xe3,0x5a,0x9c,0x0f,0x86,0x43, + 0xe4,0x30,0x70,0xd4,0x0e,0x62,0x71,0xe9,0xa6,0x88,0xfd,0x3f,0x92,0x0d,0xfd,0x4e, + 0xc5,0x6a,0x67,0xce,0x6d,0x80,0x16,0xa4,0x89,0xd8,0xe2,0x15,0x41,0x79,0xc4,0xd9, + 0xc9,0x43,0xd6,0xd3,0xdc,0x3d,0xbb,0xe4,0xbd,0xb2,0xdb,0xe0,0xe7,0x6b,0x5e,0x62, + 0x75,0xa5,0x2f,0xbc,0xc0,0x6c,0xdd,0x6d,0x64,0x17,0x03,0xda,0xa8,0x5b,0xd9,0x4c, + 0x9f,0x84,0x5c,0xa0,0xa5,0x84,0x74,0x8f,0xde,0x74,0x96,0x4a,0x98,0x35,0xa3,0x58, + 0x7a,0x0f,0xa1,0x3b,0xfc,0xd0,0x45,0x06,0xb8,0xa0,0x25,0x47,0xe8,0xd7,0xb4,0x38, + 0xc4,0xe0,0xfd,0x83,0x5c,0xb3,0x60,0xdd,0xf0,0xf4,0x59,0x7b,0x03,0x89,0x37,0xf4, + 0x9a,0xde,0x7c,0x0b,0x04,0x6d,0xbc,0x9a,0x90,0xc3,0xe9,0x05,0xbf,0x33,0xe6,0x73, + 0xca,0x7a,0xde,0xe7,0x19,0x85,0x5a,0x3c,0xdc,0xa1,0x23,0xd0,0xf3,0x46,0x46,0x36, + 0x01,0x11,0xc0,0x12,0xfc,0xa3,0x04,0x9e,0x3b,0xa1,0x94,0x9a,0x47,0x74,0xb2,0x77, + 0x93,0x5c,0x98,0x61,0x41,0x44,0x4a,0x85,0x9e,0xef,0xb8,0x66,0xe7,0xe3,0x34,0x0f, + 0xe0,0xd2,0xe0,0x18,0x1e,0x7c,0x3a,0x64,0x6a,0x95,0x8c,0x6e,0xe5,0x63,0xf7,0xd6, + 0xfb,0xc8,0x78,0x01,0x90,0xa6,0xa3,0x71,0xbc,0x18,0xdd,0xd6,0xb0,0x95,0x1a,0x8d, + 0xeb,0xe9,0xf6,0xdd,0x06,0xe8,0x9a,0xd3,0x35,0x80,0x03,0xee,0xff,0x4c,0xf6,0x68, + 0x0a,0xa5,0x57,0x8f,0x13,0x8a,0x10,0xad,0xf9,0x83,0x98,0x8a,0xc4,0x54,0xc3,0xdc, + 0x43,0xa7,0xf1,0xae,0x16,0xd6,0xeb,0xdd,0xd3,0xd3,0x30,0xbf,0xc1,0x05,0x41,0xf3, + 0x97,0x9d,0x93,0xef,0x7a,0xfd,0x1f,0xc2,0x36,0x4a,0xa1,0x68,0xe8,0xcc,0xc9,0x74, + 0xa7,0x6d,0xde,0xfe,0x13,0x9d,0x22,0x0d,0x79,0x22,0x0a,0x91,0x74,0xd2,0x87,0x2a, + 0xe5,0x3d,0x6a,0xc0,0xeb,0x46,0x50,0xed,0xaf,0x5f,0xaf,0x93,0xfc,0xf6,0xcb,0x6d, + 0x3a,0xd8,0xb2,0x19,0x55,0xdf,0x8e,0xbf,0x8d,0x6e,0xea,0x4f,0xe2,0xda,0x4e,0xf2, + 0x39,0xbd,0xa8,0x3f,0xa9,0x47,0xd7,0x75,0xd4,0x75,0x0b,0xb5,0xc6,0x2f,0x3e,0x02, + 0xa4,0x49,0x7c,0xe8,0x98,0xc2,0x0f,0x27,0xd1,0x6d,0xf2,0x39,0x6e,0x9d,0x37,0x48, + 0xed,0x20,0x6f,0xbc,0x9a,0x54,0x8e,0x44,0xfc,0x8c,0xd1,0x3a,0x14,0xde,0xd8,0x9c, + 0x02,0xc1,0x24,0x2a,0xd2,0x90,0x82,0x6b,0xe3,0xca,0x02,0xf6,0x09,0xa3,0xfa,0xd5, + 0x80,0x2a,0x42,0x8d,0xbe,0x47,0xa1,0xb8,0x51,0x39,0xea,0x1b,0x61,0x8e,0x86,0xc7, + 0x3f,0x11,0x7d,0xe4,0x50,0x7e,0x9c,0xdc,0xd4,0x77,0x92,0x6d,0xd7,0x0f,0x1b,0xdf, + 0x8c,0xfe,0xad,0xff,0x99,0xc3,0xcc,0x44,0x66,0x7f,0x51,0x18,0xae,0x99,0xf7,0xcd, + 0xcd,0xea,0xe0,0xae,0x0a,0xdf,0x56,0x87,0x0c,0xd0,0x31,0xce,0x72,0xeb,0x9f,0x6e, + 0x3f,0xd5,0x7c,0x26,0xa0,0x8f,0x64,0xe5,0x5e,0xd2,0xed,0xe3,0x96,0x28,0x6d,0xc5, + 0x9c,0xa5,0x3b,0xa5,0x31,0x92,0x58,0x7e,0xdd,0xb3,0x52,0x56,0x9e,0x52,0xd8,0x61, + 0xa5,0x14,0xa8,0xe4,0x99,0x96,0x6b,0xb4,0xd3,0x66,0x7f,0x00,0x10,0xf9,0x6e,0x8c, + 0x62,0xb5,0xc5,0xc0,0x97,0x22,0xe2,0xb1,0x54,0xb0,0x9d,0xd7,0xf7,0x9e,0x7a,0x26, + 0x90,0x3f,0x80,0xe2,0xe9,0x02,0x38,0xea,0xfc,0x1a,0x4a,0x75,0xcf,0xa0,0x1d,0xe3, + 0x1b,0xd7,0xfe,0x8d,0x84,0xb3,0xcd,0xcd,0xb3,0x06,0x64,0x03,0xd0,0xbd,0x85,0xd2, + 0x37,0xb6,0x5f,0x30,0xd7,0x64,0xe8,0xdb,0x3f,0xf6,0xd1,0x0b,0xfb,0x11,0x63,0x4c, + 0x60,0x03,0x8a,0x26,0x3c,0x18,0xb0,0x1e,0x1b,0x28,0x38,0x75,0x75,0xc4,0x15,0xfe, + 0x5c,0x15,0x8f,0x56,0xae,0x31,0x25,0x45,0xe0,0x5a,0x51,0x47,0x30,0xf5,0x7c,0xf0, + 0x57,0x95,0xad,0x7f,0x0b,0x8c,0x74,0xf5,0x22,0xf1,0x39,0xeb,0xc7,0xc2,0x55,0x35, + 0xc8,0x17,0xe3,0xe4,0x5c,0xd5,0x48,0xab,0x7a,0xe5,0xaa,0x38,0xa8,0x55,0xb0,0x77, + 0xc9,0xf6,0x53,0xea,0xe8,0xbc,0x5b,0xe1,0x0e,0xc3,0xa8,0x6d,0x61,0xcd,0xcd,0xc4, + 0x9f,0xd0,0x8b,0xdc,0x26,0x5d,0x17,0x2e,0xce,0x85,0x5b,0xcb,0x75,0xae,0xd4,0x97, + 0x33,0xdd,0x67,0xed,0x97,0xe7,0x74,0xc2,0x50,0x4b,0x97,0x97,0xcd,0x92,0xfd,0x96, + 0x9a,0xf8,0x5d,0x1a,0xe8,0xbb,0x56,0x73,0x46,0x9b,0xc5,0xbd,0xc9,0xec,0x94,0x74, + 0x30,0x0f,0xc7,0x5b,0xf6,0xd1,0xa5,0x65,0x58,0x4c,0x24,0xe7,0x69,0xd5,0x75,0x3a, + 0xb9,0xca,0x3e,0x2b,0x07,0xfd,0x1c,0xba,0x3e,0x93,0x0b,0x14,0xb2,0xa8,0x22,0x89, + 0x58,0xef,0x92,0x48,0x6c,0x9d,0xf2,0xde,0x1d,0x43,0xa3,0x47,0xfb,0xb7,0xd6,0x36, + 0xc5,0xe0,0x7f,0xe1,0xc5,0xf6,0x2f,0x5f,0x73,0x6b,0xb3,0x25,0x4c,0x51,0xe3,0x8e, + 0xec,0x16,0x91,0x00,0x43,0x04,0xfa,0x49,0xb7,0xc3,0x56,0x91,0x18,0x26,0x5c,0xc3, + 0xd2,0x05,0x98,0x2e,0x54,0x7a,0xb4,0x32,0x36,0xea,0x81,0x71,0x4a,0xcf,0x2f,0xea, + 0x4f,0x9f,0x76,0x9e,0xb4,0xcc,0xe3,0xb3,0xef,0x3a,0xbb,0xf2,0xf8,0xdd,0xf7,0x9d, + 0x9d,0xd6,0x76,0x9b,0x00,0x27,0x55,0xf7,0x5f,0x9e,0xb0,0xf6,0x71,0x52,0x4b,0xe5, + 0x92,0x9e,0xd4,0x54,0xbc,0xd3,0xb4,0x06,0x63,0x9a,0x64,0xea,0x27,0xd8,0x53,0x5d, + 0xb6,0x79,0xc5,0xd0,0xda,0x45,0xe8,0x7c,0x89,0xac,0xcf,0xd3,0x42,0x6b,0x1b,0x09, + 0x27,0x50,0x6b,0xf7,0x67,0x1c,0x25,0xf0,0x2a,0xe3,0x14,0xb3,0x9e,0x68,0x61,0xeb, + 0xbf,0x5b,0x1b,0x7c,0xbb,0x8b,0xf5,0x15,0x81,0x61,0xdf,0x72,0xce,0x33,0x25,0x7d, + 0x40,0xf1,0xe3,0x4e,0xc8,0x6b,0x52,0x9a,0x71,0xb1,0xbe,0x94,0x17,0x2a,0x33,0x0e, + 0x91,0x45,0xf9,0xf7,0x58,0x57,0x84,0xeb,0xc8,0x3c,0x1b,0xf6,0x6f,0xdb,0xdc,0x3e, + 0xf5,0x01,0xe6,0xb1,0xac,0x45,0x09,0x75,0x6c,0xb1,0x73,0x6a,0xb6,0x9f,0x4e,0x6f, + 0xf9,0xea,0x49,0x2d,0x14,0xc4,0xa1,0xc5,0x58,0x6d,0x9b,0xab,0xd9,0xd0,0x30,0xde, + 0x73,0xcb,0xa6,0xbd,0x4c,0xd7,0x33,0x68,0x2a,0x82,0xf7,0xcd,0x42,0xee,0xcf,0xea, + 0xda,0x84,0xd0,0xf7,0xb1,0xd1,0x05,0x38,0x5d,0xbd,0x5a,0x28,0x29,0xad,0x7e,0x67, + 0x61,0xd9,0xd4,0x74,0x2d,0x0c,0xc7,0x14,0xa3,0x0c,0xa5,0xc9,0x41,0xa1,0x58,0x55, + 0x98,0xe5,0x7c,0x81,0x76,0xac,0xb1,0x98,0xc6,0x6c,0x58,0x45,0xab,0x08,0xca,0xe9, + 0x5b,0xa7,0x2a,0xe0,0x09,0xef,0x93,0xeb,0x5d,0xfe,0xd1,0x83,0x89,0x7e,0x7f,0x4c, + 0xa7,0xf1,0x5c,0x2a,0x23,0xa8,0x28,0x09,0xb5,0x27,0xb8,0x23,0x53,0xd4,0xb1,0xeb, + 0xe5,0xce,0xfe,0x82,0x8e,0x6a,0xb9,0xb7,0xa2,0x32,0x1e,0x3e,0xc0,0x19,0xdb,0xfa, + 0x11,0xce,0xf4,0xc9,0x1e,0x8c,0x9f,0x9d,0x5d,0xd8,0x58,0x6f,0x20,0xaf,0xbf,0x10, + 0x8b,0x9c,0x72,0xb5,0x8a,0x68,0xce,0xef,0x77,0x99,0x1a,0xc4,0x7a,0x2f,0x5b,0xcc, + 0xce,0x8a,0xcf,0x92,0x40,0x01,0x7b,0x64,0x4f,0xc2,0xa3,0x7b,0xcc,0xec,0x8c,0xcb, + 0x57,0x67,0xb3,0x0c,0x10,0x0e,0x62,0xed,0xc6,0x35,0x24,0xc1,0x84,0xa9,0x13,0x6e, + 0xfe,0x05,0x01,0x7b,0x77,0xbe,0x7b,0xd2,0xe6,0x00,0xc6,0x00,0xc8,0x46,0x50,0x89, + 0xbc,0xc0,0x45,0xda,0xd0,0x2b,0xb3,0x43,0x00,0x1a,0x8f,0x13,0x00,0xa6,0x5c,0xc6, + 0xca,0xb9,0xf4,0x16,0x6f,0xe8,0x6e,0x7f,0x1e,0x3f,0x9f,0xe6,0x43,0xb0,0xbc,0xb1, + 0x2c,0x44,0xe2,0x0e,0x8d,0x35,0xec,0x93,0xf2,0x3e,0x17,0x9c,0xd1,0xc0,0xc7,0x25, + 0xb5,0x29,0x0d,0x67,0x7f,0x97,0x74,0xef,0x88,0xf9,0x1f,0x6e,0xf8,0x87,0x57,0x02, + 0x03,0x4d,0x82,0x74,0x09,0xf9,0x65,0xcd,0xfd,0x1a,0xf7,0x50,0x72,0x31,0x83,0x17, + 0x5c,0xd4,0x64,0x8b,0xdc,0x44,0xf0,0x55,0x2f,0xad,0x5a,0xfe,0xe4,0xc1,0x62,0x39, + 0x5a,0x49,0xe5,0x5a,0x06,0x8f,0x16,0x08,0xc9,0x74,0xc1,0x98,0x32,0xd6,0xd5,0xab, + 0x69,0xfe,0x2c,0x47,0x71,0x78,0xb6,0xe5,0x10,0x91,0xb7,0xc6,0xd5,0xbd,0x69,0x9a, + 0x95,0x4e,0xb4,0x50,0x26,0xf0,0xc9,0x11,0x99,0x78,0xeb,0xbf,0xdf,0xe3,0x96,0x66, + 0x51,0x5f,0xf8,0x8e,0xdb,0x71,0x3e,0xb8,0xe0,0xb8,0xe2,0xfc,0xa4,0x1e,0xc2,0xe0, + 0x89,0xf2,0x04,0x96,0x2f,0x59,0x2b,0x97,0x06,0x36,0x7c,0xa5,0xe3,0x9f,0x14,0x90, + 0x52,0x1e,0x4d,0x18,0xd4,0xeb,0x0c,0x4a,0x3b,0x27,0x37,0xa8,0x63,0x83,0xab,0xf4, + 0x3d,0xb2,0x7c,0xfa,0x0b,0xc4,0xfd,0xee,0xf5,0x35,0xb7,0x6a,0x62,0xb9,0x93,0x3c, + 0xb8,0x56,0x02,0xfd,0xc5,0x75,0x92,0x7c,0x52,0x23,0xaf,0xfb,0x7f,0xed,0x89,0x10, + 0xcd,0x20,0xde,0x79,0xd0,0x3d,0xbb,0x1b,0x67,0x4b,0x14,0x33,0xb8,0x5a,0x3a,0x59, + 0x27,0x34,0x1c,0xae,0x67,0x63,0xcd,0x50,0x72,0xf0,0x24,0x39,0x86,0xd8,0x3a,0x9e, + 0xcd,0xd3,0x38,0xc9,0xe5,0xcb,0xbd,0x2c,0x17,0xc2,0x8c,0x74,0x54,0xaf,0xe9,0x05, + 0x79,0xf2,0xc1,0x8c,0x1f,0x0d,0x8f,0xbe,0xbb,0xf3,0xdd,0xb3,0xef,0x71,0x08,0x2e, + 0x5f,0xe1,0xb8,0x5b,0x9f,0xe1,0xbe,0x7b,0x77,0x73,0xd3,0x3a,0x8a,0xc9,0x31,0x60, + 0x88,0xc8,0x63,0xd9,0xd9,0x9b,0x6b,0x9d,0x5c,0x7d,0x5b,0x87,0x57,0x25,0xa7,0x17, + 0xae,0xbb,0x50,0x25,0x0e,0x1f,0xbe,0xb4,0xde,0x22,0xcc,0x8a,0xfd,0x8a,0x75,0xfb, + 0xdb,0xf1,0x52,0x96,0x1e,0x6d,0x2c,0x70,0xda,0xfb,0xfb,0xc1,0xde,0xd6,0x7e,0x77, + 0xdc,0xed,0x75,0x83,0x88,0x4c,0x91,0x46,0x68,0x68,0x56,0x0f,0x26,0x67,0xad,0xf0, + 0x87,0xed,0x66,0xe3,0xe9,0xce,0xd3,0x90,0x8e,0xd4,0xc3,0x67,0x3b,0x0d,0x3c,0x65, + 0x48,0xfe,0x2e,0xa4,0x93,0xf5,0xf0,0x69,0x78,0x97,0x30,0x8e,0xbd,0x2b,0xe8,0x20, + 0xb0,0x52,0xeb,0x4a,0xa6,0xa7,0x8d,0xef,0x9b,0x4d,0x93,0x69,0xe7,0x69,0xd3,0xe4, + 0xd9,0x6e,0xae,0xca,0x14,0x44,0x6f,0xbb,0x30,0xaa,0xbe,0xc9,0x8b,0x7c,0xd6,0x78, + 0xfa,0xdd,0xaa,0x22,0xbf,0xaf,0xc8,0xfd,0x06,0x72,0x58,0x0b,0x6e,0xe6,0x59,0xb7, + 0x77,0x24,0xe7,0x0f,0xab,0xca,0x6d,0x05,0x07,0x7b,0x49,0xf0,0xc7,0x9e,0xc9,0xbb, + 0xb3,0xdb,0xd8,0xf6,0x6b,0xfa,0xbd,0x16,0xeb,0x65,0xfe,0xaf,0xd7,0x3f,0xad,0xcf, + 0xe9,0x16,0xfb,0xe3,0xac,0xfb,0xcf,0xc1,0xf0,0x4b,0xca,0x7a,0xf9,0xfb,0xd6,0xef, + 0xbf,0xb9,0xcc,0xf9,0xfe,0xd9,0x0f,0x8d,0x67,0xdb,0xdf,0x3f,0x30,0xe7,0x4f,0xfd, + 0x29,0x79,0x7a,0xc6,0x08,0xd2,0xdc,0xd2,0x9a,0x4e,0xc3,0x6c,0x97,0x28,0xdd,0xff, + 0x67,0x1f,0xeb,0x8b,0x0f,0xfd,0xe9,0xd5,0x09,0x84,0x89,0x4f,0xc0,0x93,0xdd,0x9d, + 0xb5,0x1d,0x82,0x09,0x08,0x9e,0xec,0xee,0xbe,0xf9,0xf5,0x9f,0x41,0xf4,0x7a,0x02, + 0xa5,0xf3,0x07,0xb2,0x1d,0x33,0x18,0x90,0xde,0x78,0x46,0x65,0xaf,0x27,0x42,0x31, + 0xb8,0xe5,0x6b,0xee,0xf5,0x0c,0x78,0xdb,0xa7,0xdb,0x0d,0x43,0x6c,0x74,0x33,0x97, + 0x6f,0xeb,0xc9,0x7e,0x8b,0xd1,0xf5,0xbf,0xfa,0x5d,0xca,0x27,0x1d,0xea,0xbb,0xc6, + 0xee,0x77,0xeb,0x19,0xe6,0x66,0x73,0xa9,0xd5,0xfc,0x6b,0x8b,0xe5,0xfb,0xe2,0x57, + 0xe7,0xdd,0x21,0xd5,0x58,0x6b,0xe9,0xe5,0xd3,0x9e,0xfc,0xcc,0xcb,0xf7,0xfd,0xb3, + 0xef,0xd7,0x57,0xd3,0xcd,0x77,0x00,0x93,0xb0,0x7f,0x1a,0xf6,0x7c,0x49,0xaf,0xfa, + 0xeb,0xa0,0x3f,0x87,0x5e,0xbe,0x54,0xc5,0x9d,0x66,0x03,0x9c,0x59,0xdf,0xfb,0x35, + 0xaf,0xdf,0x27,0x25,0xff,0x6a,0x16,0x6f,0x1c,0x5b,0x27,0xe9,0xae,0xdf,0xc4,0x45, + 0xe1,0x26,0x7c,0x8d,0x8f,0x70,0x6b,0x61,0x27,0xa6,0x4d,0xbc,0xe5,0x61,0x8b,0xb9, + 0x31,0x66,0xb8,0x19,0xfa,0xf8,0xa9,0xb9,0x13,0xd7,0x0a,0x4c,0x15,0xd2,0x94,0x7f, + 0x41,0x4c,0xc0,0x34,0xe1,0x1d,0x3f,0x8d,0x66,0xc8,0x8b,0xad,0x2e,0xa2,0x45,0x9c, + 0xb8,0x1b,0x1c,0xd1,0xfe,0x76,0x2d,0xe3,0x25,0x28,0x7c,0x4f,0xac,0xd7,0xb2,0x3b, + 0xaa,0x27,0xb9,0x37,0x2a,0x99,0x99,0x6e,0x8f,0x06,0xc7,0xe4,0x39,0x45,0x5e,0x3f, + 0xd3,0xab,0x5b,0x46,0xc9,0x2b,0x70,0x99,0x29,0x3f,0x61,0x3b,0x50,0xe6,0x49,0x40, + 0xe3,0x47,0x37,0x04,0x3f,0xfe,0x91,0xb3,0x48,0xd3,0xe0,0xeb,0x5d,0xb8,0x65,0xa5, + 0xed,0x7f,0xf0,0x18,0x77,0xf3,0x4f,0x36,0x7d,0xfa,0x79,0xc0,0x1e,0xf5,0xf2,0x29, + 0xdf,0x76,0xa7,0x99,0x20,0xe6,0xab,0xeb,0x8c,0x93,0x76,0x41,0x85,0xb7,0x0e,0xcf, + 0xdd,0x05,0xd6,0xe1,0xfd,0xa1,0xda,0x35,0xcf,0xfa,0xe7,0xf8,0xb6,0x79,0xd1,0x1f, + 0x0e,0x07,0xd3,0xb6,0xe5,0xf9,0x82,0x11,0xf0,0x1d,0x67,0xf6,0x77,0xf6,0x10,0x3f, + 0x9b,0x1b,0xab,0x1d,0x6d,0x82,0xc8,0x38,0x36,0xd8,0x06,0xea,0x54,0xc3,0xf3,0xe5, + 0x31,0xb0,0x3d,0x78,0xcc,0xb1,0x93,0x03,0x6f,0x7a,0xdd,0xec,0xa2,0x8d,0x63,0x27, + 0x87,0xd9,0xb6,0x63,0x0f,0x33,0xcb,0x56,0xa3,0x64,0x37,0x9d,0x2f,0x7e,0xc3,0x5f, + 0x0d,0x8d,0x9b,0xdb,0xff,0xda,0x08,0xc0,0x52,0xcf,0x49,0x02,0xea,0xc2,0xf4,0xc2, + 0x1f,0x68,0x9c,0x95,0xdd,0x8a,0xf3,0x17,0xbd,0x3d,0x2b,0xa1,0x2e,0x37,0x37,0xcd, + 0xaf,0x78,0xa9,0xe4,0x68,0xb7,0x1b,0xda,0x52,0x75,0x10,0xe0,0xec,0x9b,0xc2,0x7d, + 0x43,0x11,0x82,0xba,0x06,0x38,0x6a,0x33,0xdb,0xca,0x53,0x36,0x3c,0x8c,0xfd,0x1e, + 0x24,0x9f,0xd1,0x8b,0xe2,0x52,0x37,0x92,0x0f,0xd9,0x59,0xec,0xf6,0x25,0xf9,0x80, + 0xfe,0xc4,0xfb,0x5b,0x94,0xb0,0x51,0x33,0x84,0x3f,0xc7,0xd9,0x64,0x80,0xa3,0x9c, + 0x7e,0x36,0x7e,0x3c,0x37,0x6d,0x1c,0x74,0xa5,0x27,0x74,0x87,0xd2,0xad,0x63,0xde, + 0xf8,0x82,0x37,0xeb,0x3d,0xc4,0xfb,0x7d,0x15,0xbd,0x4b,0x3c,0xca,0x54,0xb8,0xd0, + 0x17,0x6f,0xb4,0xca,0xd0,0x84,0xfb,0x0b,0x73,0xfb,0x5a,0xbc,0xfb,0xe1,0x57,0x1a, + 0x2e,0x5e,0xf0,0x57,0xb7,0x77,0x8b,0x41,0xa9,0x89,0x79,0xe0,0xf4,0xca,0xa3,0xda, + 0xf5,0x71,0xdb,0xe4,0x70,0x7b,0xdf,0xdd,0xc3,0xcd,0x19,0xe5,0xbe,0x39,0x63,0xb1, + 0x65,0xca,0xbf,0x64,0xe5,0x38,0x2d,0x0c,0x1c,0x37,0xd6,0x59,0x38,0x72,0x69,0x9e, + 0x4b,0x5d,0xd3,0xaf,0xb3,0x2f,0xcf,0xe8,0x7b,0xe2,0x15,0x48,0xff,0x8c,0xe6,0x8f, + 0xe2,0xf0,0x05,0x76,0xf7,0x6a,0x10,0xe8,0x1d,0xca,0xe8,0x16,0x65,0xf5,0x81,0x8d, + 0x1e,0xf9,0xe8,0x26,0xdc,0x0f,0x75,0x6f,0x8a,0x5b,0x6d,0xfd,0x68,0x50,0x7f,0xb5, + 0x01,0xa4,0xa0,0x79,0x88,0x0d,0xa4,0x7a,0x1f,0xfd,0x7a,0xbb,0xc5,0x47,0x82,0x4a, + 0x79,0xe5,0xc8,0xee,0x76,0x15,0xbb,0x7d,0xed,0x8d,0xf2,0xc6,0xc8,0x86,0x52,0x08, + 0x0b,0xa1,0xc5,0x89,0x91,0xd1,0xfe,0x6a,0xc2,0xa5,0xac,0xb8,0x9a,0xc2,0xf2,0x18, + 0xff,0x65,0x12,0x8d,0xc5,0x3b,0x4c,0x61,0xb0,0x81,0x28,0x4b,0x14,0xfe,0x28,0x1e, + 0x43,0x11,0x0e,0xef,0xa3,0xc9,0x4e,0xb2,0x9b,0x3c,0xa9,0xb0,0x38,0xc4,0x24,0x21, + 0x12,0x11,0x8e,0xb0,0x56,0x9b,0x1c,0x0e,0xd0,0xa7,0xc7,0x71,0x6e,0xf0,0x31,0xf5, + 0x61,0xd5,0x06,0x72,0xf0,0x9c,0x01,0xc5,0x26,0x91,0x89,0x40,0x11,0x15,0x81,0x3a, + 0x8c,0xe6,0x1e,0x9b,0x44,0x94,0xbd,0xab,0x77,0xbd,0xec,0x18,0xb1,0x96,0x83,0x99, + 0x51,0xaa,0x76,0xd2,0x26,0x6e,0xb8,0x0c,0x30,0x79,0x0b,0x43,0x2e,0x6d,0x42,0x91, + 0x22,0xcd,0x50,0x47,0xfd,0xe1,0xdb,0x5b,0x5e,0xd2,0xf1,0xa8,0x3d,0xf9,0xe2,0xed, + 0x23,0xf9,0x0c,0x96,0x2a,0x3c,0x89,0xd9,0x39,0x17,0x3c,0xe1,0x0e,0xfa,0x37,0xb4, + 0x8d,0x14,0xc3,0x84,0xec,0x74,0x36,0xc1,0xb1,0xf1,0x84,0xec,0x03,0xca,0xcd,0x02, + 0x9f,0x4c,0xdc,0xdb,0xa2,0x15,0x72,0x97,0x1b,0x6e,0xb7,0x9c,0xeb,0x20,0x07,0x8b, + 0xb4,0x49,0x8d,0x10,0xc9,0xfd,0x0f,0x69,0x67,0xb6,0x71,0xca,0x88,0xaf,0x36,0x3e, + 0xf7,0x92,0xe7,0xb7,0xff,0x6e,0x73,0x72,0x57,0xfe,0x59,0x62,0xdb,0xc8,0xde,0x7b, + 0x26,0xb0,0xd8,0x9a,0xa4,0x41,0x9a,0xbd,0x72,0x70,0xbe,0xac,0x43,0xe2,0x68,0x1f, + 0x10,0xad,0x77,0x75,0x98,0x46,0xbd,0xf5,0x20,0x34,0x83,0x3d,0xac,0xb5,0xbe,0x9f, + 0x4a,0xcf,0xe2,0x9c,0xdb,0xd4,0xb6,0x11,0xdb,0x6d,0x3d,0xa9,0xe8,0x16,0xf4,0x29, + 0xaa,0x1e,0x14,0x8c,0xe0,0x49,0x55,0xa7,0xa8,0xca,0xc4,0xad,0x5e,0xed,0x77,0xc3, + 0xaf,0xac,0xf8,0x92,0x15,0xf7,0x38,0x9d,0xd6,0xc7,0xc6,0x92,0x7d,0xe4,0x7c,0x6c, + 0xc4,0xc6,0x8b,0x06,0x20,0xe2,0xea,0x70,0x92,0x0f,0x0c,0x78,0xb9,0x1e,0xbb,0xe3, + 0x34,0xbd,0x82,0xef,0xae,0xdf,0xf4,0x07,0x35,0xc1,0x03,0x6e,0x1f,0x6c,0x3c,0xe8, + 0xfa,0xc1,0xc6,0xfa,0xfb,0x07,0x02,0x54,0x75,0x03,0xa1,0xba,0x17,0xf8,0x8d,0x38, + 0x9d,0x4c,0xdf,0x5d,0xcd,0x5d,0x5b,0x5a,0xf2,0xf9,0xd4,0x1d,0x6e,0xf5,0x6f,0x07, + 0x24,0x7d,0x46,0xd8,0xa8,0x4f,0x7a,0xd8,0xca,0xbe,0x3b,0x38,0x0c,0x57,0xde,0xc6, + 0xde,0xdc,0x9c,0x35,0xe8,0x54,0x8e,0xc8,0xa3,0x8c,0x75,0xbc,0x94,0x0c,0x64,0x19, + 0xa0,0xbd,0xa1,0x10,0x93,0x6b,0xff,0x58,0x9e,0x3d,0x8e,0x57,0x5e,0x91,0x50,0xcf, + 0x1e,0xfb,0x93,0xab,0x61,0x8f,0x96,0xa3,0xb3,0x3e,0x9a,0xba,0xb8,0x78,0x57,0x0f, + 0xc8,0x1b,0x02,0xdf,0x65,0x0c,0xe3,0xb2,0xa1,0xff,0x19,0x02,0x83,0xe8,0xc6,0xab, + 0x74,0x7f,0xa9,0x63,0xf5,0xaa,0x56,0x94,0xb7,0xba,0x34,0xb5,0x85,0xc4,0x75,0x2f, + 0x70,0x86,0x10,0x1d,0x19,0x99,0xeb,0x15,0xf2,0x30,0xbf,0x6e,0x74,0x70,0x35,0x25, + 0x16,0xea,0x04,0xaf,0x27,0x06,0x29,0xd1,0x11,0xe6,0x60,0xb4,0x23,0x4b,0x9d,0x18, + 0x0f,0xfa,0xc9,0x0e,0xe9,0x02,0xe4,0x5a,0x16,0x6f,0x1c,0xd8,0xb9,0x56,0xe1,0x63, + 0xff,0xd1,0x34,0x2f,0xe6,0x80,0x5c,0xaf,0x0a,0x9d,0x81,0xa2,0x62,0x0c,0x11,0xcc, + 0x37,0x4f,0x63,0x9c,0x1a,0x60,0xbe,0x3c,0xcd,0xe1,0xf7,0x1c,0xc0,0x2c,0xe8,0x4d, + 0xc0,0x49,0x59,0xe6,0x23,0x5b,0x65,0x94,0x69,0x67,0xbe,0x11,0x37,0x11,0x08,0x7b, + 0x06,0x6f,0xce,0x49,0x4f,0xe7,0xc2,0xb6,0xc2,0xd3,0xc7,0x88,0xa3,0x46,0x13,0x94, + 0x31,0xbd,0xab,0xb2,0x31,0x84,0xb3,0xe5,0x5a,0x48,0xa6,0x84,0xba,0xbf,0xb9,0x8e, + 0x91,0xa0,0xf6,0x80,0xd4,0x10,0xc0,0x20,0x26,0xab,0x72,0xc0,0x15,0x26,0x3d,0xe7, + 0xd0,0x44,0x67,0xdf,0x52,0x6a,0x18,0x51,0xb5,0x78,0xa7,0x52,0x38,0x8c,0x90,0xcb, + 0x92,0xf7,0xc5,0x90,0x36,0xe1,0x8e,0x7b,0x76,0x3c,0xe7,0xb6,0x45,0x89,0x72,0x39, + 0x29,0x50,0x76,0xa2,0x9e,0x1d,0x78,0xb8,0x13,0x7e,0xcb,0xff,0x61,0x97,0x14,0xd1, + 0xc2,0x29,0xa7,0x1e,0xc4,0x68,0x6f,0x73,0xe1,0x23,0xbd,0x01,0x1b,0x57,0x64,0x32, + 0x0b,0x18,0x57,0x1d,0xce,0x04,0xc1,0x21,0x7d,0xfd,0xed,0xbb,0x3f,0x60,0xdb,0xc9, + 0xa4,0xe5,0x3a,0x6d,0xf8,0x87,0x37,0x4f,0x38,0x6e,0x44,0xff,0xf3,0x3c,0x72,0xc4, + 0x35,0xd0,0x5b,0x4e,0x04,0x15,0x81,0x78,0xd0,0x20,0x67,0x39,0x57,0x83,0x99,0x21, + 0x26,0x2f,0xbe,0x57,0xb1,0xdc,0x31,0x54,0xbc,0xa5,0xb1,0x68,0x7c,0x3e,0x56,0x02, + 0xc9,0x91,0x13,0x3c,0x49,0xe5,0x3a,0x08,0x4f,0x25,0x91,0xcc,0xa6,0xbc,0xe6,0xbc, + 0x5f,0x97,0xb0,0x2e,0x62,0xc7,0xec,0x34,0x8e,0x81,0x68,0x7a,0x97,0x37,0xd8,0x07, + 0xb3,0xc1,0xb1,0xd7,0x27,0xf0,0x83,0x81,0xc7,0x29,0xae,0x0a,0x39,0x3c,0x8f,0x66, + 0xd3,0xce,0x6c,0xda,0x20,0x53,0xec,0x7a,0x60,0x8e,0x75,0x67,0xa7,0xd6,0x6a,0x41, + 0xce,0x65,0xc1,0x69,0xe6,0x9e,0xa1,0x9c,0x8d,0x6c,0x1d,0x3c,0xca,0xab,0xf9,0x2d, + 0xf3,0x86,0xac,0xb7,0xa7,0xe4,0xa8,0x3d,0x4c,0x28,0x0d,0xd8,0xd9,0xd0,0x9a,0x81, + 0x7c,0xf1,0xc1,0xd7,0xdd,0xcb,0xc3,0x7d,0xb9,0x2c,0x89,0x90,0xd8,0x60,0x76,0x87, + 0x72,0x98,0x94,0xa0,0x3a,0x21,0x47,0xab,0x77,0x06,0x82,0x94,0xaa,0xeb,0x72,0xe1, + 0x8b,0x58,0x55,0x13,0x56,0x36,0x22,0x0f,0x93,0x4a,0x1e,0xd9,0x0e,0xe6,0x14,0x8b, + 0x66,0x7c,0x77,0x22,0x7e,0x33,0xa5,0x23,0x1c,0xb9,0xcb,0x67,0x6d,0x73,0x2f,0xdd, + 0xa5,0x90,0x71,0xbd,0xa2,0x08,0x09,0x49,0x94,0xe3,0x20,0x17,0x9a,0x3e,0x06,0x49, + 0x75,0xf2,0x63,0xf9,0xff,0x3b,0xe8,0x16,0xb7,0xf8,0xb1,0xc6,0x8d,0x4f,0x73,0x54, + 0x78,0xee,0xcf,0x7c,0x5c,0x92,0x9c,0x47,0x8f,0x8f,0x4d,0x8d,0x28,0x31,0xc0,0x5a, + 0x26,0x4c,0x90,0x96,0x9b,0x0d,0x6f,0xef,0x74,0xe8,0x2d,0x83,0x12,0xbe,0x8f,0xb5, + 0xf6,0xf6,0x0e,0x84,0x16,0x5d,0x18,0x69,0x21,0x55,0x0a,0xec,0x8f,0xb4,0xbc,0xfe, + 0x08,0x27,0xda,0x7e,0x79,0x9c,0x2c,0xe5,0xf5,0x47,0x76,0x71,0xe6,0x4b,0x82,0xc4, + 0x07,0xb9,0xd1,0x9d,0x4a,0x49,0xe2,0x3b,0xd8,0x8c,0x07,0xaf,0x3c,0xf7,0x23,0x97, + 0x3a,0xc5,0xc4,0xa0,0x6e,0x19,0x0d,0x01,0x6c,0xf4,0x0d,0xd0,0x64,0x6a,0xc5,0xac, + 0x61,0xcf,0x61,0x4e,0x2c,0x92,0x9e,0x6f,0xd3,0xa2,0xf3,0xec,0xa3,0xad,0xbf,0x47, + 0x24,0xd6,0xb0,0xe4,0x32,0xd2,0xe5,0x63,0x2e,0x5e,0xbe,0x59,0xe6,0x5d,0xf3,0x9b, + 0x25,0xf5,0x90,0x6f,0x96,0x3c,0x82,0xbe,0x59,0xce,0x6f,0xbf,0x59,0x12,0x8d,0x1f, + 0xa5,0x4b,0xc8,0x0b,0xb5,0xae,0x3c,0x72,0xe3,0xc8,0x33,0xb3,0x87,0x9f,0xbd,0x05, + 0xe3,0x5d,0x2c,0x4d,0xc4,0xf5,0x63,0xba,0x85,0xb1,0x96,0x4f,0xa5,0x2c,0x4c,0xf8, + 0x8b,0xe3,0x09,0x23,0xb4,0x56,0xf9,0x3c,0xcd,0x39,0xaa,0x38,0x9a,0xc5,0x64,0xf4, + 0x97,0x75,0x5a,0xbc,0x1f,0xa6,0xd5,0x96,0xee,0x90,0x64,0x36,0x2c,0xc5,0xb0,0x7f, + 0x54,0x7d,0xde,0x2f,0x65,0xb2,0x87,0x3c,0xf7,0x5e,0xd1,0xfb,0x61,0x1f,0x3d,0x98, + 0x48,0x84,0xee,0xcd,0x9e,0xff,0x02,0x8c,0x3c,0xe8,0x2b,0xb7,0x63,0xeb,0x86,0x92, + 0x14,0xac,0x12,0x6e,0x73,0xd3,0xdb,0xb2,0xb0,0xf6,0xec,0xfe,0x02,0xc1,0xa4,0xc9, + 0x04,0x3f,0x5d,0x73,0x41,0x58,0x94,0x7d,0x52,0xe6,0x4e,0x1c,0xd4,0x79,0xd9,0x95, + 0x05,0x58,0x98,0x4c,0x8d,0xff,0x04,0x74,0x9f,0xfa,0xef,0x07,0xb9,0x27,0xdd,0xcc, + 0xa2,0x6a,0xa5,0x93,0x26,0xda,0x29,0xd8,0xbe,0x99,0xd6,0x90,0x65,0x00,0x6a,0xa1, + 0x52,0x60,0xe1,0x2f,0x89,0xb2,0x9c,0x03,0xf2,0x86,0xf0,0x1b,0x7b,0xf5,0xff,0xd5, + 0xad,0xff,0xf3,0x78,0xb1,0x7b,0x97,0xbb,0xe6,0xd3,0xd6,0x79,0x90,0x58,0x09,0x69, + 0x67,0x70,0x2f,0xc7,0xd8,0x44,0x11,0x0c,0xdb,0xad,0x63,0xb7,0x42,0x8f,0x24,0xbb, + 0x44,0x5d,0x1a,0x9c,0xd2,0xc4,0x18,0xf1,0xbd,0x1c,0xaa,0x80,0x45,0xfe,0x1a,0xc4, + 0xb2,0x72,0x3c,0x49,0x05,0xc4,0xf8,0xb2,0x4b,0x4e,0xd8,0x39,0x62,0x7a,0x62,0x03, + 0xb7,0x4f,0xca,0x5e,0xea,0x9c,0xcf,0xe9,0x7a,0x57,0x5c,0xec,0x11,0x8a,0x2e,0x9f, + 0xc8,0x57,0x96,0x62,0xe1,0x21,0x38,0x85,0x44,0xee,0x75,0x94,0xd2,0x76,0xbc,0x5e, + 0x2d,0xcc,0x02,0xc1,0xe8,0x25,0x92,0x62,0x4b,0x20,0x5e,0xa7,0x16,0x20,0xa0,0xe4, + 0x85,0xc8,0xa5,0x88,0x6b,0x21,0x2a,0x31,0xd9,0x47,0x48,0x4e,0xdb,0x87,0x4b,0xe1, + 0xb2,0x03,0x26,0x8b,0xfd,0xe9,0x5c,0x3d,0xb7,0x18,0xed,0x3c,0xfb,0x3b,0xc6,0xea, + 0x8d,0xdc,0x53,0xe3,0x9d,0x5d,0x5a,0x31,0x80,0xe3,0xd6,0x8a,0x5d,0xef,0xa8,0x73, + 0x2b,0x78,0x1e,0x39,0x93,0x08,0x03,0x82,0x86,0xa7,0x4e,0xb8,0x7a,0x60,0xdf,0x1d, + 0xd0,0x9e,0xf4,0xfb,0x46,0x0f,0x99,0x05,0x1f,0x43,0xa3,0x16,0x34,0x0e,0x32,0x1e, + 0x7d,0x0c,0xc9,0xe7,0x87,0xe5,0xff,0x85,0xbb,0x3e,0x38,0xb9,0xdb,0x04,0x2e,0x76, + 0x8d,0x41,0xd8,0x01,0xc0,0x6e,0x63,0x32,0xf1,0x6e,0x78,0x35,0xe5,0x30,0x8e,0x09, + 0x72,0x59,0xae,0x44,0x50,0x98,0x7c,0x24,0x06,0x33,0x62,0x89,0x0d,0xc2,0x35,0x50, + 0x9f,0x3c,0xec,0x8d,0xa7,0x70,0x1d,0x62,0x39,0xed,0xa0,0x73,0x8a,0xba,0xf8,0xe7, + 0xd2,0xad,0x10,0x24,0x93,0xe3,0xa3,0x47,0xad,0x6c,0xd6,0xf5,0xb4,0x55,0xdb,0x2a, + 0x71,0xa0,0x88,0xd0,0x0c,0xec,0xed,0x0b,0x75,0xcd,0xc4,0xa1,0x4a,0x80,0xa7,0x6c, + 0x4e,0x57,0x7d,0xc0,0x60,0xb7,0x2a,0xe2,0xe4,0x86,0x7d,0x81,0x35,0x42,0x8b,0x00, + 0xcb,0x0d,0x95,0xeb,0x71,0xca,0x9f,0x47,0x6e,0x75,0x1e,0xb1,0xdd,0x4d,0xdd,0x8a, + 0xfb,0x26,0xd1,0xe3,0x31,0x2a,0x11,0xf5,0xeb,0x46,0x28,0xc3,0x79,0xd7,0xbd,0x64, + 0x3f,0x78,0xcb,0x3e,0x9c,0xd8,0x3f,0xa0,0xa0,0x57,0xd3,0x3b,0xba,0xef,0x54,0x76, + 0x15,0xa8,0x1e,0x51,0xaa,0xfb,0xa9,0xfa,0x17,0x7a,0x2c,0xeb,0x6d,0x15,0xf3,0xe4, + 0x87,0x3b,0x7c,0xfc,0xef,0xf5,0x32,0x24,0xdc,0xaf,0x76,0x31,0xa4,0x1d,0x88,0xbb, + 0x9b,0xe0,0xab,0xf0,0xfa,0x12,0x64,0x93,0xc9,0x78,0xad,0xeb,0x17,0x59,0xfd,0x99, + 0x75,0x87,0x2c,0x0a,0x65,0x9b,0x91,0xae,0x93,0x33,0x8e,0x77,0xa6,0xc8,0xcd,0x28, + 0x5e,0x84,0x30,0xee,0xc8,0xaa,0x2b,0xc8,0xb7,0x33,0x82,0x86,0x79,0xe5,0xf8,0xe5, + 0x09,0xb0,0x92,0xce,0x1d,0xf6,0x40,0xd3,0xcb,0xf6,0x04,0x8d,0xc0,0x69,0x85,0xac, + 0xaa,0x11,0xd0,0x06,0x4e,0x00,0xee,0x80,0x84,0xf3,0x3d,0x5b,0xa4,0xb0,0x11,0xa8, + 0xfb,0xa0,0x8a,0xf2,0x55,0xea,0x98,0xa2,0x7b,0x83,0x1e,0x1e,0xa8,0xf1,0xd8,0x9b, + 0x7c,0x97,0x1d,0x29,0xc9,0xa4,0xad,0xad,0xe1,0x7a,0x15,0xaa,0xa6,0xb3,0x11,0x70, + 0x9f,0x81,0x6e,0x8e,0x5b,0x5d,0xbc,0x0a,0x51,0xb3,0x3f,0x46,0x7d,0x41,0x00,0xb6, + 0xe3,0x8f,0x29,0xfb,0xd9,0x80,0x85,0x52,0xe6,0xb7,0xf5,0xfd,0x1e,0x7e,0x68,0xab, + 0x55,0xd9,0xc2,0x8e,0x10,0x29,0xeb,0xf7,0x4b,0x19,0x74,0x30,0xb1,0x26,0xc8,0x7c, + 0xfc,0x34,0x18,0x7f,0x1a,0x65,0x9d,0xfc,0x72,0x59,0xb4,0x9d,0xf0,0xe3,0x69,0x1f, + 0xfe,0x72,0x5c,0x18,0x73,0x81,0x39,0x6e,0xed,0x36,0xed,0x8b,0x4c,0xe2,0xd4,0x2c, + 0x5f,0x4f,0x89,0x40,0x8f,0x42,0x93,0xcc,0xa2,0xc8,0xf0,0x1b,0x6d,0xd5,0x09,0xf3, + 0xb3,0x78,0xc7,0x3b,0x2b,0x17,0x42,0x5a,0x2c,0x4f,0x71,0x55,0x31,0x78,0x7d,0xbf, + 0x50,0xf6,0x58,0xbd,0x21,0x49,0x07,0x79,0x46,0xec,0x56,0x29,0xce,0xd1,0x9b,0x68, + 0x8e,0x21,0x35,0x01,0x44,0x1d,0xbb,0x0c,0x5c,0xe5,0xe3,0x68,0xad,0xcb,0x0a,0x43, + 0x88,0x18,0xbd,0x92,0x28,0x52,0xd0,0xb2,0x32,0xcb,0x22,0x1b,0xbe,0x93,0x13,0xa5, + 0x25,0x81,0x9b,0xae,0x61,0x3f,0xc1,0x70,0x95,0x89,0x48,0x04,0xa2,0xe1,0x41,0x9d, + 0xbf,0x96,0xc4,0x22,0xa7,0x2d,0x97,0xa6,0x70,0xbd,0xed,0x6e,0xe7,0x42,0x09,0xc8, + 0xe3,0xf9,0x6b,0xe6,0x9d,0xc8,0x14,0xab,0xe1,0xd4,0x82,0x25,0xdf,0xd1,0x28,0x1e, + 0x37,0x03,0x2e,0xdd,0xe4,0x3a,0x25,0xc9,0x96,0x93,0xc4,0x26,0xe5,0x86,0x2e,0x10, + 0x61,0x87,0xe6,0xf3,0x69,0x6b,0x6b,0x0b,0xfb,0x8c,0x69,0x2d,0xdc,0x0a,0xdb,0x26, + 0xb3,0x53,0x1c,0xe0,0xf2,0xe4,0x0b,0x68,0x43,0xe5,0x1d,0x25,0xaf,0xbc,0x3e,0x25, + 0xe7,0xbe,0x15,0xb8,0xc2,0xd0,0x41,0x15,0xfe,0x25,0xf4,0x50,0x61,0xfc,0x28,0x1e, + 0x8b,0x0f,0xeb,0x94,0x95,0x12,0xa2,0x51,0x98,0xbe,0x5c,0xee,0x36,0xdb,0x56,0x46, + 0xbe,0xdb,0x5a,0x0e,0x93,0x68,0xf2,0xcc,0x1d,0x47,0x0a,0x76,0xcf,0x1c,0xd7,0xeb, + 0xf7,0xe2,0x80,0x07,0x89,0x31,0x54,0x13,0x12,0xed,0x2d,0x7d,0xba,0xb9,0xa9,0x3d, + 0x01,0x18,0xce,0xfa,0xe8,0x7d,0x96,0x6f,0x84,0xab,0x0c,0x83,0xe0,0x14,0x33,0x7b, + 0x9f,0x02,0x11,0xd4,0xd9,0x0c,0xb7,0x52,0x9b,0xcb,0x13,0xdc,0xe4,0xb2,0xec,0xa0, + 0x01,0x66,0xa4,0xe4,0x9b,0x9a,0xa0,0x1a,0xc6,0x31,0x28,0x2e,0xca,0xae,0xbc,0x78, + 0x2b,0x34,0x35,0x2b,0xb0,0x6c,0x78,0xf5,0xb2,0xf7,0x57,0x5a,0x05,0xc4,0x3e,0xeb, + 0x06,0xa6,0x95,0xb6,0xc2,0x17,0x1f,0xb8,0xc4,0xe7,0x5b,0x5d,0xb8,0xb1,0x08,0xff, + 0x7b,0x72,0x85,0x13,0x61,0xb9,0xef,0x15,0xcc,0xf3,0x01,0x2a,0x77,0x81,0x13,0x16, + 0x25,0xf9,0x52,0x63,0xff,0xf5,0x2b,0x0a,0x08,0x99,0xee,0x3c,0x69,0xeb,0x3b,0x02, + 0x32,0xfe,0x48,0xa6,0x95,0x47,0xa1,0x89,0x22,0xf2,0x33,0x84,0xca,0x0d,0x05,0xa3, + 0xc2,0x6b,0x86,0x4a,0x70,0x5c,0xc4,0x90,0x6f,0x9f,0xe1,0xeb,0x8f,0xf4,0xcb,0x93, + 0xcf,0x05,0x1e,0x18,0x6e,0x30,0x3e,0x9b,0x18,0x20,0x90,0x40,0xa6,0xbc,0xe1,0x01, + 0x7a,0x02,0x8b,0x7f,0x59,0x19,0x71,0x7a,0x10,0xfd,0x7e,0xb8,0x1f,0x1b,0x40,0xf6, + 0x48,0x10,0xb2,0x30,0x26,0x38,0x01,0x58,0xb0,0xed,0x7d,0x5d,0x7a,0xce,0x9d,0x01, + 0x35,0xdb,0x05,0x0b,0xa9,0x75,0xdf,0x39,0x90,0x8f,0x0c,0x38,0x42,0xaf,0x27,0x3f, + 0x10,0xe1,0xaf,0xb8,0x3f,0xcf,0x14,0xbe,0x3f,0xf8,0xb0,0xf7,0x26,0x60,0x5f,0x13, + 0xe4,0xc8,0x61,0x48,0x76,0xbb,0xd9,0x3c,0xe0,0xcb,0x44,0x26,0x8f,0x46,0xdf,0x42, + 0xb6,0xb7,0xbc,0x7d,0xbb,0xe8,0x8b,0xf3,0x3c,0x36,0x30,0x49,0x78,0x39,0xcb,0x3e, + 0x01,0x18,0x23,0xf8,0xea,0x66,0x94,0xb1,0x46,0x75,0xf9,0x69,0x86,0x75,0x07,0xad, + 0x42,0xe4,0x1b,0xe6,0xa7,0xc5,0xb3,0x27,0xb8,0xdc,0x7f,0x4b,0xd7,0x2e,0x66,0x75, + 0x2c,0xaa,0xa4,0x4a,0xd8,0x05,0x9c,0x22,0xd3,0xac,0x61,0x17,0xbf,0x97,0x5d,0x16, + 0x39,0x39,0x84,0x18,0xbb,0x1a,0x94,0x85,0xec,0x08,0xe6,0x0c,0xd7,0xfd,0xac,0x94, + 0x1f,0x3f,0xd3,0x3e,0x65,0xde,0x37,0xfe,0x39,0xac,0xa2,0xcd,0xa7,0x20,0x62,0x75, + 0x19,0xb3,0x4d,0x0b,0x33,0x4a,0x6b,0x69,0x09,0x0c,0x39,0xe8,0x84,0x46,0x79,0x63, + 0x74,0x59,0xea,0x3f,0xce,0x82,0xbd,0xfd,0xd7,0x01,0x7d,0x18,0x64,0xd4,0x07,0x32, + 0xbf,0x2a,0xc1,0x02,0xfe,0x9c,0xbe,0x97,0x1a,0x75,0x7b,0x20,0x67,0xce,0x38,0x88, + 0x4b,0xe3,0xc0,0x24,0xd0,0x4c,0x14,0x44,0xec,0xea,0x01,0xdb,0x18,0x1b,0xb4,0x01, + 0x6b,0xbe,0xc9,0xc5,0x64,0xea,0x65,0xb1,0x79,0xc0,0x53,0x8c,0x2c,0x1c,0xe0,0x5d, + 0xdf,0xe4,0xa7,0x68,0x32,0x66,0x07,0x8e,0xbc,0x87,0x98,0x7f,0xf8,0x85,0xcc,0x4f, + 0xba,0xa3,0xc2,0x75,0x5c,0x66,0x76,0x6f,0x7c,0x20,0x8a,0xe3,0xd0,0x84,0xbc,0x8f, + 0xcd,0x84,0x58,0x1e,0x83,0x41,0xee,0xe2,0x07,0xae,0xee,0xa4,0x13,0xda,0xd1,0xda, + 0x18,0x27,0x8f,0xc7,0xfe,0x4c,0xb8,0xce,0x19,0x30,0x46,0x67,0x7d,0x62,0x38,0x7e, + 0xf4,0x7b,0x10,0xb1,0xb3,0x0c,0xde,0x7e,0x24,0x81,0x78,0xd6,0x88,0xed,0x5c,0x8c, + 0x9a,0x8b,0x7b,0xdf,0x9f,0xc9,0x5b,0x9d,0xd4,0xeb,0x95,0x65,0x88,0xe9,0x89,0xd1, + 0xd0,0x5a,0xa5,0x50,0x37,0x4c,0xc8,0x17,0x48,0x12,0x18,0xef,0x0f,0x5e,0xa6,0x7a, + 0x6f,0xd0,0x3d,0x47,0xce,0x97,0xb7,0x73,0xb6,0x89,0x96,0x8a,0x50,0xea,0x78,0x92, + 0x61,0x5a,0x96,0x72,0x86,0x13,0x82,0xfa,0xe9,0x6a,0x34,0x15,0x27,0x6e,0x79,0xe5, + 0xf1,0x21,0xd3,0xb0,0x76,0x85,0x2b,0x63,0xcd,0x45,0x6c,0x33,0x0d,0x4d,0xbf,0x56, + 0xae,0x73,0xf1,0x2e,0x4f,0x8c,0xc4,0xd6,0xa5,0x6f,0x6e,0x72,0xdb,0xf9,0x4c,0x63, + 0xe3,0xa7,0x94,0xab,0x80,0xe9,0xcf,0xa0,0x35,0x20,0xba,0xf8,0x74,0x93,0x51,0xf9, + 0xd4,0xe5,0xdd,0x76,0x9c,0xd1,0x6a,0x7f,0x90,0x11,0x31,0x34,0x07,0x05,0xf0,0xfd, + 0x02,0x79,0x0e,0x60,0xf3,0xcd,0x05,0xa4,0xe5,0x21,0x37,0x76,0xb7,0xc7,0x63,0x54, + 0x92,0x17,0x03,0x70,0xe9,0xf6,0xce,0x01,0xcd,0x0c,0xe8,0x1f,0x64,0xff,0x5f,0x01, + 0x1b,0x2c,0x58,0x6b,0x24,0x79,0x08,0xf8,0x7c,0x9a,0x01,0x8e,0xda,0x96,0x94,0xd9, + 0x70,0x57,0xc1,0x94,0xff,0xf2,0xfe,0xa0,0x04,0x72,0x76,0xa6,0x30,0x1c,0xaa,0xdb, + 0x81,0x22,0x08,0x3a,0xb6,0xf4,0x84,0x22,0x75,0xc7,0x7c,0xaa,0x81,0x2c,0x9b,0x8c, + 0xfc,0x7c,0x28,0x01,0x10,0xdc,0x2b,0xa7,0x2c,0x2d,0xd4,0x66,0x0f,0x60,0x68,0x8d, + 0x5b,0x88,0x68,0xf2,0xfd,0xd5,0x9d,0x6f,0x0d,0x41,0xa8,0xe6,0xd3,0x41,0x3a,0x66, + 0xae,0xf3,0x71,0x17,0x40,0x4f,0x87,0x57,0xbd,0x3e,0x67,0xc5,0xca,0x71,0x40,0xe5, + 0x22,0x51,0x80,0x33,0x2f,0x37,0x6f,0x4f,0x48,0x7e,0xf1,0xeb,0x20,0x33,0xed,0x36, + 0x1c,0x5c,0xbb,0x28,0xbc,0x7c,0x53,0x4c,0x66,0x99,0x97,0x4f,0xda,0xdb,0x25,0xb5, + 0x0f,0x68,0x62,0x9b,0x19,0xd4,0xf6,0x54,0xc0,0xc9,0x75,0x93,0xce,0x1a,0x05,0x61, + 0xb9,0x9b,0xc3,0xb4,0xce,0x4b,0xf2,0x9b,0x2a,0x59,0x44,0x3e,0x54,0x42,0x4b,0x43, + 0xfd,0x34,0xc8,0x7c,0x78,0xa5,0xc7,0xf5,0xde,0x6b,0x51,0xe4,0xbb,0x2b,0x75,0xc9, + 0x72,0x32,0xaa,0xd4,0x15,0xd0,0x85,0x3c,0x2c,0x67,0x68,0xf5,0xc9,0x48,0x7e,0xea, + 0xac,0x9a,0xa9,0xd3,0x12,0x21,0x4f,0xe1,0xfd,0x5a,0x5d,0xc6,0xe7,0x52,0x34,0x8c, + 0x77,0x3e,0x79,0xea,0x15,0xd8,0x26,0x91,0xfa,0x31,0xf9,0x7d,0xa2,0x0e,0xa2,0xe4, + 0x3a,0xae,0x68,0xab,0xc8,0x95,0xef,0x42,0xb2,0x82,0x2f,0x26,0xe3,0x25,0x18,0x76, + 0x97,0xb0,0x9f,0x46,0x71,0x34,0x5b,0xf2,0x62,0xcb,0xe8,0xf4,0xf8,0x85,0x30,0x18, + 0x95,0x19,0x83,0xba,0xc7,0xb3,0xc1,0x02,0x7b,0xc3,0x7a,0xfe,0x56,0xd4,0x48,0x01, + 0x64,0x10,0xb3,0x80,0x92,0xb9,0xaa,0x8c,0x22,0xe2,0xa8,0x21,0x96,0xf4,0xca,0x67, + 0x9e,0x21,0xf5,0x3b,0x52,0x9b,0xe8,0xac,0xc3,0x6f,0x81,0xf9,0x30,0x19,0x97,0x57, + 0x17,0xb2,0xdf,0x35,0xb9,0x27,0xf3,0xae,0xf1,0xf0,0xce,0xe4,0xe3,0x97,0x35,0x6d, + 0xbc,0x97,0xed,0xcf,0xcc,0x94,0x6a,0x4c,0x43,0x79,0x14,0x81,0x8b,0xd9,0x45,0xac, + 0x39,0x25,0x8e,0x39,0x8f,0xb2,0x9b,0x31,0x2d,0xde,0x78,0x5c,0x33,0x14,0x97,0x6a, + 0x61,0x11,0x75,0x85,0x6c,0xd5,0x14,0xc3,0x09,0x9a,0xfe,0xd4,0x69,0xc7,0x77,0xac, + 0x4c,0x65,0x55,0xab,0x47,0xaa,0x80,0x4b,0x6b,0xad,0x02,0x0f,0x16,0x58,0xee,0xf7, + 0x96,0x27,0xfd,0x79,0xb7,0xd4,0x89,0x48,0xcc,0xf3,0x86,0xda,0xb0,0x43,0x05,0x3e, + 0xb3,0xdd,0x18,0x44,0xe4,0x0c,0x7b,0xbd,0xf7,0xb6,0x32,0x4f,0xd0,0x9d,0xae,0xca, + 0xc6,0xfe,0x97,0x6f,0x72,0x4d,0xe0,0xde,0xfb,0x3c,0xff,0x64,0xea,0x16,0x89,0x04, + 0x3b,0xab,0x01,0x13,0xc6,0xf0,0xcc,0x2d,0xc8,0x45,0xcf,0x27,0xb3,0xfb,0xe5,0x4a, + 0x88,0xc4,0x68,0xed,0x67,0x3c,0xcc,0x55,0xc4,0x9a,0x7c,0x3c,0xce,0x2d,0x19,0xad, + 0x99,0x48,0x1e,0x08,0x81,0x17,0x57,0x73,0x92,0xdc,0x95,0x20,0xd0,0xc3,0x77,0x47, + 0xe8,0xce,0x20,0x56,0x30,0x49,0xf3,0xe7,0xb3,0xda,0x4b,0xfa,0x2d,0xcd,0x8f,0x41, + 0xbd,0xae,0xfa,0x13,0xea,0x11,0xea,0x5e,0x3a,0x3c,0xde,0x38,0x2e,0x96,0xe8,0xbf, + 0xbd,0xfc,0x6f,0xb3,0x42,0x97,0xfb,0xe6,0xd8,0x21,0x20,0x14,0x2c,0x70,0x72,0x64, + 0x9c,0x31,0x49,0x68,0x4e,0x09,0x4e,0xfa,0x17,0x10,0x54,0xe4,0x60,0xac,0x99,0x60, + 0xdb,0x46,0xd2,0xf4,0xf3,0x52,0x7c,0xbc,0x2d,0xaf,0xc6,0x33,0x8c,0x1c,0x26,0x4a, + 0x11,0x41,0x38,0x71,0xaf,0x34,0xaf,0xd4,0x36,0x27,0xe2,0x4f,0x8d,0x30,0xa0,0x12, + 0x4b,0x8c,0x6f,0x73,0x07,0x77,0x49,0x6e,0xa6,0x81,0x47,0x5e,0xeb,0xf9,0xab,0x6e, + 0xf9,0x5d,0xcc,0x12,0xb4,0x80,0xb6,0x0c,0x06,0x63,0x20,0x5f,0x02,0xf9,0x02,0x92, + 0x73,0x15,0x71,0x10,0x6d,0xd7,0xd9,0x75,0x20,0x4a,0x75,0x90,0x5c,0x65,0x27,0x15, + 0x24,0xfe,0x7e,0xf0,0xa3,0x61,0xf2,0x57,0x13,0x09,0xfc,0x16,0xa1,0xc0,0xfb,0x25, + 0x44,0x9a,0xc3,0x5c,0xeb,0x84,0x5f,0xd2,0x31,0x79,0xe9,0xbc,0x16,0xe0,0x65,0x30, + 0xbf,0xea,0xe9,0x47,0x9a,0xd5,0xf4,0x23,0x5e,0xce,0x9d,0xaf,0xe6,0x02,0x13,0xe9, + 0x5f,0x69,0x71,0x6b,0x89,0x38,0xf3,0x21,0xe0,0x0f,0xdb,0x46,0x9a,0x9d,0x0e,0xf3, + 0x95,0x8f,0x71,0xaf,0xe4,0x2c,0xd7,0xd1,0x97,0xac,0x3c,0x59,0x9e,0x69,0x3a,0xbb, + 0x26,0xe4,0xba,0x12,0xd2,0xcb,0xae,0xc8,0xa0,0x7d,0x2f,0x58,0xe0,0x06,0x77,0x69, + 0xdf,0x22,0xf4,0xc1,0x8c,0x52,0xab,0xcc,0xcf,0x82,0xd7,0x5d,0xb1,0xf2,0x5a,0xbc, + 0xcf,0x6b,0x56,0x77,0x01,0xae,0x78,0x28,0x95,0xb6,0x9a,0xf8,0xb9,0xc2,0xad,0x71, + 0x0e,0x7e,0x00,0xbb,0xfd,0xfc,0xf3,0x1c,0x7d,0x5b,0xad,0x03,0xf0,0x8d,0x0d,0x03, + 0xe4,0x5b,0x17,0x23,0x54,0x9d,0xda,0x9d,0x75,0x4f,0x41,0xbd,0xf6,0x9a,0xab,0xf9, + 0xe7,0xd3,0xcf,0xa7,0x43,0xee,0x2e,0x78,0x0e,0xf8,0x85,0xf8,0x72,0x4a,0xfc,0x89, + 0x6e,0x68,0x49,0x07,0xde,0x38,0x99,0xb5,0x39,0x4f,0xbb,0x3d,0x61,0x68,0x1f,0xa3, + 0x80,0xdd,0xd5,0x04,0x73,0x48,0xd1,0x0c,0x6e,0xae,0x4d,0x47,0xe3,0x99,0x2e,0x2c, + 0x2a,0x0c,0xaf,0x78,0x6c,0x5e,0x05,0x49,0xf5,0xb7,0xed,0x9d,0x67,0xb7,0xf0,0x5f, + 0x17,0x40,0xf2,0x64,0xa4,0x43,0xe6,0x0f,0xab,0x72,0x4d,0x33,0xe4,0x01,0x30,0x11, + 0x5c,0x67,0x22,0x9d,0x65,0x86,0x76,0xeb,0x21,0x66,0xfe,0x61,0xb0,0x0d,0x8f,0x4b, + 0xd6,0x23,0xc9,0xb0,0xee,0x88,0x96,0x26,0xdb,0xcf,0x96,0xbb,0x3b,0x4b,0xb8,0xe6, + 0xbb,0xc2,0x1a,0x70,0x88,0xe9,0x17,0x0f,0x76,0x41,0x37,0xa4,0x8c,0xe8,0x4d,0xce, + 0x4b,0x92,0x90,0x3f,0xc2,0x50,0x21,0xc8,0x20,0x87,0xc6,0x22,0x9c,0xa9,0x2b,0x06, + 0x8b,0x66,0x7d,0x7b,0xa7,0x49,0xde,0x10,0xb5,0xa5,0xb0,0x72,0x84,0x52,0x84,0x8c, + 0xee,0x80,0x85,0x15,0x17,0x67,0xfd,0x19,0x05,0x35,0x0c,0x4c,0x2a,0xdc,0xe8,0x6b, + 0xcb,0x9c,0x9f,0x36,0xf8,0x50,0xb4,0x31,0x10,0x05,0x07,0xb5,0xd4,0x2f,0xfb,0x01, + 0x27,0x06,0x79,0xa2,0x35,0xa4,0xb4,0x5b,0xdd,0xf6,0xfa,0x18,0x74,0xc2,0x14,0x7a, + 0x84,0x18,0xca,0xfa,0xda,0x1d,0xf4,0xf3,0xa1,0x7c,0x96,0xb6,0x23,0x82,0x77,0x94, + 0x54,0xe3,0x1b,0xb0,0xb1,0x12,0x9a,0x27,0x6c,0x03,0x24,0x1b,0x8a,0xcc,0x45,0x20, + 0xdb,0x4c,0xf4,0xcb,0x89,0xf1,0xa1,0x4f,0x17,0x9f,0xa9,0x0f,0x9c,0x9d,0x0d,0x4e, + 0xbd,0xc6,0x1c,0x61,0xb6,0x1c,0x34,0x80,0x27,0xe3,0x0d,0x17,0xc0,0xb0,0x69,0xfe, + 0x8d,0x77,0x4f,0xd8,0x31,0x14,0x5c,0x19,0x0e,0xa1,0x51,0x23,0xc9,0xdb,0x98,0x8c, + 0x87,0x44,0xd6,0x1e,0xa5,0x04,0x94,0x52,0xa7,0x14,0x3c,0x8d,0x26,0x73,0x73,0x9c, + 0x97,0x65,0x5e,0x31,0xbc,0x5c,0x76,0x58,0xfa,0x9a,0x97,0x37,0x9c,0xee,0x72,0x15, + 0xed,0x76,0x45,0x1d,0x3c,0x6a,0x06,0x29,0x4d,0x49,0xda,0xb5,0x79,0x07,0xde,0xf0, + 0x31,0xb1,0xaf,0xc6,0x2a,0x4c,0xd8,0x43,0xcf,0x56,0xe2,0x19,0x75,0x31,0x3c,0xd9, + 0x11,0x26,0xbf,0x03,0x78,0xca,0x8c,0x7c,0xf6,0xe4,0xce,0x03,0x94,0x42,0x05,0xde, + 0xbc,0xac,0xcf,0x70,0x35,0x66,0xd5,0x45,0x4f,0xb2,0x10,0x2c,0x37,0x5c,0x9e,0x6e, + 0x0a,0x2d,0xe7,0x47,0xda,0x14,0xfe,0xe7,0xe6,0x68,0x5b,0x51,0xc5,0xe4,0x70,0xdd, + 0x21,0x71,0x1a,0xb2,0x00,0x57,0x00,0x3f,0x63,0x70,0x39,0x2b,0xc7,0x0b,0xac,0xbf, + 0x74,0xb4,0x81,0x7d,0x83,0x51,0x17,0x16,0x14,0xf8,0x36,0xc3,0x6a,0x0d,0x87,0xdf, + 0xb3,0x01,0xf0,0xc9,0xea,0x15,0x6b,0x60,0x02,0xcf,0xe7,0xa3,0xf7,0x48,0xe0,0xfc, + 0xbc,0xc0,0x07,0x39,0xcb,0xed,0x65,0xd1,0x95,0xd8,0x2e,0xa3,0xc1,0x9a,0xb1,0x44, + 0xac,0x57,0xe8,0x25,0x20,0x95,0x65,0x10,0x2d,0x83,0x13,0x0c,0x00,0xf4,0x2e,0xb3, + 0x7e,0x34,0xee,0x66,0x24,0xe7,0xf9,0x55,0xdf,0x32,0x7e,0x42,0xee,0x5f,0x28,0x41, + 0x57,0xb7,0xda,0xad,0x7a,0xa7,0x0d,0xee,0x81,0x74,0x75,0x62,0x66,0xcd,0xb2,0x7b, + 0x3f,0xed,0x07,0xf6,0x07,0x06,0xb7,0xce,0x51,0x12,0xc7,0x66,0xd0,0x99,0xb8,0xd4, + 0xe8,0x4e,0x60,0x9c,0x32,0xf5,0xbb,0xec,0x94,0xfa,0x39,0x94,0xee,0xc1,0xfa,0xcc, + 0x09,0x66,0x27,0x6d,0x29,0x89,0x9f,0x4b,0xea,0x2b,0x9c,0x97,0xd5,0xcc,0xb9,0xe6, + 0x35,0x3c,0x90,0x7b,0xf2,0x45,0x14,0x90,0x57,0xef,0x93,0x80,0x62,0x43,0x74,0xcd, + 0xc9,0x16,0xfb,0x79,0x95,0xe9,0x45,0x32,0xe7,0xaa,0x0d,0x3a,0xd7,0x42,0x36,0x73, + 0x83,0x5f,0xe3,0x2c,0x9d,0x61,0x9c,0x91,0x77,0x1f,0x47,0xd7,0xe1,0x64,0x1f,0x67, + 0xd4,0x33,0xde,0x1e,0xe4,0x7e,0x13,0x93,0xe0,0x1c,0x8d,0x7c,0xd3,0xfd,0x6c,0x26, + 0x4b,0xd4,0x21,0xe7,0x89,0x59,0x23,0x03,0x54,0x10,0x08,0xf7,0x84,0x78,0xe7,0xb4, + 0x10,0xc5,0x33,0xed,0xa2,0x22,0xf4,0x28,0xe7,0x9c,0x98,0x9f,0xa9,0x81,0xc8,0x58, + 0x86,0x8c,0x6d,0x8c,0x83,0x6d,0x6f,0xa0,0xf3,0xe9,0x15,0xe0,0xca,0x87,0x7a,0x27, + 0xd8,0x40,0xfb,0xd0,0xb4,0x72,0x11,0x05,0x8a,0xac,0x5c,0xe4,0xcd,0x83,0x74,0xb7, + 0xce,0x3f,0xb1,0x46,0xd6,0x9b,0x6e,0x9c,0x1c,0xe7,0x3c,0x3f,0xd1,0xee,0x9d,0xc1, + 0xbc,0xef,0x52,0x52,0x03,0xeb,0xa3,0xa9,0x2e,0x9c,0xa8,0xee,0x6c,0xcd,0xc1,0xa9, + 0x56,0xf3,0xe8,0xf8,0x02,0xc9,0x4b,0xe2,0xc7,0xf2,0x04,0xfb,0x49,0xc6,0x24,0x06, + 0x5f,0xbc,0x31,0xa7,0x5e,0xc7,0xf9,0x47,0x38,0xff,0x21,0xda,0x6e,0x06,0x74,0xbd, + 0x8e,0x5d,0xf0,0x43,0x65,0x49,0x0e,0x03,0x67,0xca,0x96,0xd8,0xa3,0x89,0x31,0xcd, + 0xae,0xd8,0x83,0x11,0x31,0xf1,0x82,0xcf,0x3f,0x0d,0x45,0x18,0xef,0xf2,0x45,0x9a, + 0xc5,0x31,0xb3,0x4b,0x5c,0xf3,0x3c,0x8c,0x53,0xb3,0x72,0xca,0x48,0x97,0x24,0x67, + 0x4e,0x3a,0x53,0xa9,0x19,0x0c,0xb2,0x79,0xd6,0x2c,0x57,0x19,0x72,0x20,0x3b,0x87, + 0x03,0x0e,0x48,0x62,0xb8,0xf9,0xb4,0x07,0xed,0x6b,0xe7,0xc9,0x82,0x2d,0xea,0x7a, + 0x83,0x49,0x0f,0x39,0xcc,0x77,0x53,0xba,0x51,0xf8,0x54,0x57,0x33,0x57,0x5d,0xbe, + 0x37,0x64,0x6e,0xb1,0x27,0x5b,0xd5,0x13,0x3a,0x75,0xe4,0xfd,0x0e,0x03,0xef,0x5d, + 0xe3,0x28,0x8d,0x18,0x9d,0xf3,0x52,0x3e,0x39,0xe0,0x66,0xeb,0x45,0x76,0x51,0x83, + 0x9e,0xc5,0x45,0xfc,0x31,0x9c,0x34,0xdf,0x39,0x2a,0x0d,0x6b,0x47,0x9c,0xcc,0x3c, + 0xa7,0xda,0x84,0xc9,0x2c,0xab,0x4c,0x5c,0xd1,0x68,0xdd,0x1b,0x9e,0x14,0xb3,0x49, + 0xce,0x77,0x13,0x6a,0x1c,0xe9,0xc1,0x19,0x16,0x92,0x2b,0xf3,0xdd,0x7a,0x25,0xe5, + 0xea,0xfb,0xc9,0xb5,0x10,0x8d,0xa5,0x5e,0x75,0xe6,0x79,0x55,0x66,0x9d,0x19,0x78, + 0x02,0xcf,0xec,0xdd,0x85,0x4c,0x63,0x8a,0xc0,0x9e,0x45,0x0f,0xa4,0xd9,0x04,0x5b, + 0xfe,0x05,0xcb,0xe8,0xfa,0x33,0x5d,0x4c,0x69,0x4e,0x47,0xe9,0x2f,0x14,0xa0,0x64, + 0xfb,0xd8,0x60,0xce,0xcd,0x14,0x99,0xe3,0x0b,0x3e,0x78,0x59,0xd5,0xe1,0x15,0x97, + 0x4d,0xcf,0x5b,0x45,0x54,0x41,0xd2,0x4e,0x7d,0x77,0xf7,0x99,0x99,0xdf,0x5d,0xb2, + 0x78,0xc6,0xd2,0xc9,0xaa,0xd8,0x3b,0xf8,0x9a,0x7f,0x27,0x9b,0xd8,0x64,0xda,0x16, + 0x9a,0xb9,0xf6,0xc7,0xad,0xf5,0x7c,0x4a,0xa4,0x1d,0xbe,0x0f,0x64,0xac,0x45,0x34, + 0x47,0x18,0x9f,0x34,0x19,0x14,0x02,0x71,0x19,0x5a,0xe4,0xbd,0xf1,0x89,0xcd,0xf9, + 0xa0,0x1d,0x95,0x38,0x30,0x79,0xb7,0x23,0x49,0xfb,0x4f,0xd6,0x5e,0xd2,0x75,0x8c, + 0x57,0x7f,0x0b,0xf2,0x04,0x0c,0xa5,0x99,0x91,0x6c,0x0e,0x5c,0x03,0xdc,0x43,0x9f, + 0x07,0x38,0x8e,0xa2,0x02,0xf3,0x52,0x2c,0x77,0x16,0x58,0xfc,0xd2,0xea,0x6d,0xbb, + 0x58,0x56,0x64,0xe3,0x11,0x2b,0x31,0xde,0xbe,0x79,0x8f,0xb3,0x1f,0xde,0x44,0xc8, + 0x69,0xb8,0x9a,0x81,0x7b,0x2d,0xc3,0x99,0x1a,0xe4,0x96,0xe4,0x6a,0x4c,0x3b,0x79, + 0xc9,0xae,0x09,0x0e,0x6d,0xa2,0x95,0xe2,0x01,0x80,0x5f,0xd5,0xe3,0xb8,0x38,0x05, + 0xaa,0x31,0xcd,0x2e,0xcb,0x90,0x34,0x8c,0xeb,0x62,0x22,0x82,0xc6,0x71,0xb0,0xf2, + 0x7a,0x65,0xce,0x5c,0x74,0xf3,0x48,0xba,0x0b,0x6c,0x24,0x99,0xc2,0x8a,0x60,0x33, + 0x66,0x48,0x0e,0xa4,0xdd,0xd7,0xde,0xd0,0x9a,0xe9,0x6a,0xa4,0x4b,0xcf,0x13,0x4c, + 0xa1,0x64,0x2c,0xc6,0x80,0x99,0x9b,0x8d,0x5a,0x56,0x34,0x6f,0xf2,0x1d,0xdc,0x66, + 0xb9,0xb2,0xa2,0xba,0x34,0x59,0x28,0x3d,0xa0,0xc5,0x2c,0x37,0x66,0x13,0x8c,0x8e, + 0x91,0x2f,0x14,0x4e,0x66,0x83,0xde,0x79,0xdf,0x9a,0x4d,0x0e,0x20,0x57,0xd1,0xe7, + 0x45,0x08,0x99,0xcf,0xab,0x72,0x65,0xe8,0x01,0xa7,0xdc,0x8f,0x54,0x16,0xf4,0x25, + 0x0b,0xaf,0x1c,0x07,0x22,0x85,0x66,0xb7,0x30,0xca,0x75,0x72,0x9e,0x74,0xaf,0xf8, + 0x5c,0xd4,0xc0,0x66,0xa6,0x4c,0x4a,0x84,0x00,0xe3,0x79,0xdb,0x06,0x96,0x9d,0x89, + 0x42,0x13,0x2b,0x24,0xcd,0x81,0x93,0x86,0x2a,0x20,0x35,0xc1,0x01,0xc3,0xba,0x78, + 0x44,0x1b,0x16,0xbd,0xeb,0x20,0x14,0xdf,0xa0,0x63,0x06,0xf2,0x91,0xa8,0xbe,0x99, + 0x75,0xc9,0x62,0x7d,0x09,0x91,0xea,0xd6,0xba,0x0f,0xd3,0xbe,0x79,0x51,0x8a,0xf4, + 0xa3,0x3c,0xb9,0xe9,0x28,0xa1,0x7e,0x7c,0xb7,0xf7,0xe1,0xa7,0x42,0x15,0x25,0xd1, + 0x7e,0xfa,0x23,0xdd,0x05,0x7b,0x49,0xbc,0xc3,0x27,0x3f,0xe0,0xa8,0x26,0xad,0x0d, + 0xaf,0x86,0xe4,0x86,0x7e,0xcd,0xd6,0x98,0xf3,0xce,0x7d,0x74,0xf3,0x95,0xe8,0x0e, + 0x57,0xa0,0x3b,0xeb,0x1a,0xb7,0xb0,0x9c,0xa9,0x3b,0x16,0x6b,0x43,0x3a,0x3b,0xa4, + 0xa5,0x3d,0xb4,0xbb,0x62,0x5d,0x38,0x19,0x1a,0x85,0x9e,0x66,0x67,0x4d,0x51,0x09, + 0x07,0x16,0x5a,0x06,0x4d,0x1d,0x00,0x0e,0x12,0xc8,0x8e,0x7d,0xde,0x35,0x37,0x9b, + 0x09,0xfa,0x3e,0xed,0xeb,0x08,0xfe,0x62,0x00,0x09,0xb2,0xe3,0x22,0x41,0x62,0x8e, + 0x64,0x5c,0x81,0xa3,0x7b,0x42,0xc7,0xc8,0xa6,0xb0,0x24,0xc0,0xb2,0x39,0xc0,0x4e, + 0x9c,0xb1,0x38,0xee,0x44,0x78,0x36,0xf8,0xb5,0x9b,0x45,0xb4,0x76,0x55,0x23,0x23, + 0x6c,0x18,0xf8,0xc3,0xfe,0x08,0xe6,0x96,0x7c,0x4c,0xf5,0xee,0xcc,0x40,0xbc,0x48, + 0x6d,0x13,0x22,0x88,0xbb,0x1f,0x73,0x38,0x38,0x81,0x9e,0x53,0xb7,0x8e,0x17,0xb9, + 0x0f,0x81,0x2b,0x64,0x3c,0x23,0x53,0x3d,0x76,0x25,0xc0,0x57,0x4e,0xf0,0x91,0x81, + 0x52,0xfc,0x95,0xf8,0xab,0x00,0xe6,0x97,0xe7,0x70,0xb4,0x5c,0xe5,0x1a,0xd2,0x0b, + 0x43,0x71,0x55,0x19,0x87,0xc2,0x21,0x25,0x33,0xe4,0x7f,0x3a,0xc5,0x8b,0xa1,0xaa, + 0xb6,0xad,0x71,0xa0,0x7d,0x73,0x8a,0x24,0x77,0xde,0x1d,0x21,0xc6,0xc6,0xb7,0x51, + 0x9e,0x21,0xd9,0x61,0xab,0x29,0xdb,0x3c,0xd1,0x66,0x4c,0x7a,0x6d,0x5f,0x59,0x11, + 0xf3,0xca,0x1f,0xd1,0x03,0xfa,0xdd,0x31,0xfb,0x3b,0x1b,0x34,0x48,0xff,0x3e,0x87, + 0xb3,0x93,0xc0,0xfa,0x6f,0x6b,0x4b,0x8e,0x05,0x46,0x23,0x74,0x19,0x99,0x9b,0x07, + 0x19,0x09,0xdb,0x3e,0x9d,0x25,0xf2,0xaa,0xa1,0x1d,0xb0,0x3b,0x55,0x76,0x06,0xc1, + 0x4a,0xfc,0x0d,0xf6,0x1c,0xae,0x35,0x2c,0x79,0x79,0x76,0x3f,0xea,0xc5,0xb1,0xdb, + 0xb4,0x88,0x54,0x96,0x7e,0xf4,0x86,0xd3,0xc7,0x90,0x22,0xc8,0x09,0xe8,0x07,0xd8, + 0x1a,0xcd,0x6e,0x61,0xe4,0x72,0x6b,0x07,0xe7,0xbf,0x11,0xab,0x22,0xfe,0x1e,0xf3, + 0xdf,0xd5,0x81,0x32,0xb5,0x2f,0xf9,0x03,0x37,0x96,0x72,0xe6,0x2b,0x49,0x9a,0x97, + 0x49,0x9a,0x33,0x49,0x73,0x90,0x34,0xaf,0x24,0x89,0xbf,0xc7,0xf3,0x2f,0x27,0x69, + 0x2e,0x24,0x39,0x46,0x2c,0x07,0xaf,0xdf,0x1d,0xb2,0x18,0x92,0x8b,0x1b,0x89,0x79, + 0xd0,0x95,0x81,0x59,0x64,0x20,0xf9,0xf4,0x2a,0x83,0xe6,0x37,0x5f,0xf3,0x5e,0x60, + 0x63,0xc8,0x3b,0x5e,0xd9,0x19,0xf1,0xcc,0x2b,0xdf,0xe8,0x8d,0xb5,0x0a,0x4f,0x9f, + 0xee,0x3e,0x6d,0x07,0x4d,0x5a,0xce,0x67,0x01,0x02,0xf2,0x06,0xee,0xd1,0x08,0x92, + 0x67,0xa2,0xfa,0xd5,0x47,0xfe,0x60,0xed,0xd9,0xf5,0x91,0x3f,0xcc,0x81,0x9f,0xa4, + 0x00,0xff,0x06,0x51,0xbe,0x72,0x08,0x4e,0xb0,0x16,0x80,0x16,0x20,0x5f,0x89,0xc7, + 0x02,0x4d,0xbb,0x87,0x82,0x72,0x7e,0x65,0x81,0x01,0x55,0x32,0x64,0x58,0xbf,0x01, + 0x33,0xbc,0x05,0x6d,0x41,0xee,0xb6,0x16,0xc6,0xbe,0x06,0x0f,0x64,0x4b,0x20,0xf4, + 0x61,0xea,0x81,0x3a,0x98,0x27,0xb3,0xff,0xfc,0xe3,0x30,0xc8,0x5f,0xe9,0xa8,0xc1, + 0xcc,0x8d,0x59,0xf0,0xb2,0xb7,0xf3,0xf4,0xe9,0xf6,0x0f,0xf8,0x46,0xe1,0x23,0x61, + 0x77,0x3e,0xbe,0x94,0x95,0x98,0x41,0x91,0x4f,0xfa,0xa1,0xcc,0x9d,0x84,0x1d,0x53, + 0xa2,0x2e,0xd0,0x5b,0x14,0x02,0x25,0xe1,0x83,0xe3,0x24,0xe0,0x53,0xb0,0xfd,0x83, + 0xbf,0x62,0x3d,0xc5,0x1b,0xa8,0x6c,0x0b,0xf2,0xf0,0xa9,0x7b,0x80,0x71,0xf8,0xdf, + 0xef,0x5f,0x1e,0xa4,0x21,0xe9,0x82,0x51,0xd7,0x29,0xf6,0x3d,0xfd,0x64,0x7e,0x3b, + 0xff,0x44,0x06,0x7b,0x28,0x22,0x31,0xcb,0xeb,0xe4,0x7c,0x36,0xfd,0x84,0x64,0xfe, + 0xa5,0x3e,0x97,0x74,0x51,0xc4,0x27,0xca,0x45,0x9b,0x29,0x48,0x06,0x04,0x8a,0x4d, + 0x8c,0x72,0xa3,0x0b,0x70,0xec,0x46,0xe6,0xd0,0x42,0x27,0x98,0xd6,0x3e,0x19,0x6e, + 0x85,0xd6,0x10,0x2f,0x4a,0xdf,0x7f,0xf7,0xe6,0xfd,0xde,0xdb,0x57,0xef,0xde,0xaa, + 0xad,0x93,0x7b,0x2a,0xa3,0xc7,0xce,0x2b,0x8e,0x62,0xaa,0xad,0x3f,0x2e,0xcc,0x01, + 0xe8,0xc3,0x0d,0x38,0xfe,0x55,0x6b,0x0d,0xdf,0x86,0x84,0x9f,0x4a,0x78,0xe1,0x88, + 0x68,0xaa,0x07,0x02,0x46,0x58,0x65,0x41,0x26,0x77,0xe7,0xb8,0xaf,0xf1,0xf6,0xe6, + 0x4c,0xac,0xbb,0xe4,0xb0,0x0c,0xc3,0x8d,0x09,0x20,0x28,0x5b,0x33,0xc6,0xaa,0x4f, + 0xaa,0x6d,0x0b,0xf2,0x8f,0xf8,0x0c,0x0d,0x6a,0xc0,0xd0,0x9c,0x6f,0x30,0xe2,0x0c, + 0x7c,0x92,0x81,0xc5,0x5c,0x0e,0xd1,0x0a,0xe4,0x83,0x9d,0xfb,0x6c,0x42,0xfa,0xce, + 0x9c,0x84,0x3e,0x6f,0xee,0x2c,0x54,0xb6,0x09,0x87,0xa0,0xa1,0x1a,0x05,0xe6,0x4b, + 0x20,0x9f,0x38,0x27,0x68,0xa7,0xbd,0x80,0x0d,0xc6,0xe3,0x45,0x0e,0x45,0xd5,0xa7, + 0x23,0x99,0x6f,0x0d,0xa6,0x74,0x26,0x62,0x10,0xa1,0xe3,0xaa,0xce,0xa9,0x20,0x16, + 0xf4,0x70,0x7f,0x45,0x07,0xe6,0x5f,0xb6,0x48,0x18,0xdc,0xe6,0x63,0xd9,0x3d,0x33, + 0x57,0xd4,0x92,0x19,0x1c,0x62,0x10,0xc6,0x8f,0x27,0x3d,0x69,0xa5,0xe7,0x96,0x68, + 0x99,0x13,0x33,0xa8,0x78,0x88,0x40,0x8f,0x29,0x05,0xf4,0x85,0x6e,0xa3,0x15,0x97, + 0x82,0xd8,0x77,0xe7,0xda,0x92,0x38,0x0f,0x2f,0x18,0x75,0x0d,0x6d,0x8a,0xd1,0xfd, + 0x35,0x06,0x68,0x25,0x06,0x55,0xda,0x0c,0xc6,0xcc,0xce,0x09,0x36,0xf0,0xe3,0x32, + 0x2c,0xeb,0xbe,0xc5,0x98,0x1a,0x6e,0x65,0x46,0x1a,0x4a,0xb7,0x74,0xba,0x2e,0xfd, + 0x66,0xc4,0x64,0x7c,0xb8,0xc2,0x5c,0x26,0xfa,0x6b,0x9d,0x21,0x27,0xe3,0x35,0x54, + 0xf0,0x10,0x66,0xc3,0x2d,0xfc,0xae,0x82,0x0b,0x04,0x2e,0x50,0x40,0x6d,0x34,0x26, + 0xaf,0x7b,0x63,0xb1,0x44,0x56,0xc6,0x99,0xf6,0x21,0x79,0x37,0x78,0xe4,0x2d,0xe7, + 0x59,0x4b,0xb7,0x40,0xcf,0xa9,0xc9,0xeb,0x93,0x19,0x7b,0x0e,0x78,0x11,0x3c,0x27, + 0xc5,0xec,0x8b,0xd0,0x3a,0x84,0x2b,0xd8,0x6c,0xf1,0x57,0xb3,0x37,0xa5,0x3d,0xd0, + 0x3f,0xb4,0x9b,0xd0,0xf1,0x1b,0xf4,0x97,0x6c,0x3c,0x08,0xf3,0x17,0xd9,0x3a,0x09, + 0x21,0x04,0x99,0xf7,0x11,0x31,0xa5,0x49,0x94,0x56,0xee,0x21,0x7d,0x38,0x76,0x3b, + 0xe7,0xc3,0x30,0xd1,0xa0,0x4d,0xc6,0x5b,0x58,0x6f,0xfa,0x96,0x95,0x3c,0x44,0x79, + 0xab,0xcb,0xa8,0x1d,0x63,0x4a,0x7e,0x1e,0x8c,0x8d,0x63,0x7a,0x3d,0x66,0x59,0x67, + 0xa3,0x37,0xc8,0xd8,0x51,0xaa,0x7d,0x84,0x0f,0xfb,0x01,0x3d,0xb9,0xa7,0x3d,0x97, + 0x0a,0x0d,0x31,0x63,0x08,0xa2,0x9f,0x69,0x0c,0xeb,0xe1,0x73,0xcb,0xcc,0x9d,0xdf, + 0x37,0xbf,0x6f,0xc6,0xd6,0x51,0xbe,0xa0,0xc1,0x63,0x25,0x16,0x3d,0x89,0x15,0x55, + 0x2a,0x8f,0x82,0x89,0x1c,0x91,0x9f,0x88,0xb2,0x14,0x7c,0x39,0xdc,0x7f,0x5f,0xf0, + 0x16,0x53,0xb2,0xd8,0xa4,0x7e,0xbd,0xbd,0xea,0x97,0x9a,0x8c,0x96,0xab,0x1d,0xaf, + 0x35,0x4f,0xea,0xf9,0x8a,0xd6,0x7b,0x8d,0x93,0x34,0xd3,0xc3,0x6d,0x94,0xd6,0x67, + 0x53,0x63,0x49,0x5b,0x96,0x51,0xe2,0x64,0xd6,0x55,0xd3,0x49,0xe3,0x24,0xc7,0xab, + 0x5d,0x95,0xb9,0x65,0x29,0xa7,0x7b,0xba,0x9b,0x88,0x12,0xe0,0x6e,0x05,0xaa,0x31, + 0x6d,0x48,0x87,0x3a,0x37,0xca,0xc1,0x33,0xc8,0xd5,0x99,0x4f,0xe7,0xdf,0x6a,0x04, + 0xe8,0x50,0xa2,0x23,0x95,0xea,0xb0,0x4d,0x0b,0xa7,0x20,0x0b,0x9e,0xeb,0xb2,0xf9, + 0xb7,0x72,0x7e,0x85,0x39,0xcb,0x57,0x9b,0xa3,0x6c,0x1c,0x57,0xad,0x41,0x74,0x07, + 0x8d,0xce,0x2e,0x41,0xf0,0x49,0x76,0xe1,0xa5,0x2e,0x55,0xa1,0x2d,0xa8,0x5c,0xd1, + 0xc3,0x83,0x61,0xd0,0x74,0x36,0xb8,0xee,0xce,0x59,0x11,0xa0,0xf3,0x64,0xa1,0xa1, + 0x1c,0x4f,0x96,0x9f,0x79,0x5e,0xf9,0xff,0x6c,0x44,0xfe,0xaf,0x65,0x23,0xe2,0x1a, + 0x5c,0x38,0x2b,0x2c,0x69,0x51,0x5d,0x67,0x8a,0x71,0xc7,0x6a,0xd3,0x92,0xa0,0xda, + 0xfe,0x62,0xbd,0xc9,0x49,0xb0,0xde,0xe4,0xe4,0x0b,0x4d,0x37,0x82,0x7f,0xdd,0x74, + 0x23,0xf8,0x0a,0xd3,0x0d,0x41,0xb0,0xc6,0x4e,0xe0,0xab,0x2d,0x38,0xb8,0xfa,0xf7, + 0x19,0x70,0x7c,0x8d,0x86,0xeb,0x6b,0xd4,0x59,0xae,0xe1,0xc8,0xbe,0x5a,0x28,0xa2, + 0x2c,0x57,0xe8,0x7f,0xfd,0xd9,0x9f,0x7f,0xae,0x58,0xb2,0xf1,0x8e,0xe4,0x41,0x65, + 0x2d,0xeb,0x3b,0xfc,0x03,0x0a,0x1d,0x3f,0xf0,0x24,0x23,0x67,0x59,0x3a,0x3e,0xf3, + 0x24,0xb2,0x30,0x10,0x03,0x24,0xd1,0xb8,0xf2,0x6c,0x2d,0xfb,0x6d,0x83,0xb2,0xb9, + 0xfc,0x01,0x47,0xeb,0xdf,0x37,0x97,0x3b,0xdf,0xc9,0xa2,0xab,0xb0,0x49,0x95,0x61, + 0xa2,0x46,0xac,0xce,0x69,0xb6,0x63,0x69,0xeb,0x40,0xb9,0xd6,0xa9,0x5c,0x8a,0x14, + 0xf9,0x65,0x86,0xb7,0x4a,0x8e,0x67,0x6b,0xeb,0x99,0xd5,0xfa,0x2d,0xb3,0xde,0x9e, + 0x80,0xe1,0xd9,0xa4,0x00,0xe0,0xc1,0x4a,0x63,0x93,0x87,0x1f,0xef,0x07,0xeb,0x8f, + 0xf7,0xef,0x3f,0xe5,0x56,0xae,0x81,0x11,0x72,0x52,0x0f,0xe9,0xb3,0xde,0x2e,0xc0, + 0xed,0x66,0x62,0x0f,0xb0,0x64,0x7b,0xf3,0x7f,0xe7,0xe9,0xb8,0x77,0x82,0x1d,0x44, + 0x78,0xac,0x93,0xda,0x65,0x3a,0xad,0xee,0xb1,0xae,0x96,0x15,0x24,0xbd,0xca,0x74, + 0xde,0x8c,0x0a,0x4f,0x59,0x34,0x61,0x4f,0xf8,0x8a,0x20,0xfb,0x53,0x79,0x0d,0xe4, + 0xe2,0x4f,0x85,0x63,0x2a,0xe7,0x39,0xc2,0x3b,0x07,0x17,0x82,0x77,0x65,0x7a,0x6b, + 0xb3,0x84,0x3a,0x36,0xa8,0xd5,0xcc,0xb3,0xca,0x7f,0xc8,0x86,0xc0,0x14,0x3e,0x1d, + 0xe0,0xcf,0x39,0x82,0x3b,0x91,0x11,0x3d,0xd2,0x71,0xd3,0x32,0x3f,0xe1,0x5a,0xca, + 0xe8,0xfc,0x28,0x87,0xf3,0xea,0x02,0xe4,0xa8,0x79,0x1c,0x5b,0x7e,0xf5,0xc9,0x28, + 0x30,0xf5,0xd7,0x25,0xe2,0xba,0xc5,0x0b,0x2b,0xaa,0xd4,0xad,0x76,0x57,0x17,0x19, + 0x27,0x24,0x91,0x88,0x85,0xa5,0x9c,0xb8,0x2f,0xc5,0x73,0x09,0xfb,0x2c,0x31,0x9d, + 0x8b,0x7f,0xb2,0xa5,0xe8,0x33,0xe8,0x50,0x62,0xc9,0xc7,0x2a,0xcb,0xfc,0x5c,0x69, + 0x69,0xbc,0x9a,0x18,0x7f,0x26,0x38,0x0a,0x8c,0xcb,0xb5,0xd2,0xea,0x46,0x1f,0xe5, + 0x48,0x2f,0xee,0x30,0x1f,0xf0,0xae,0xe7,0x6c,0x71,0x27,0xfe,0xc6,0xa9,0xfd,0x06, + 0x2a,0x2d,0x3e,0xb7,0x2e,0x85,0x15,0xc2,0x58,0xfa,0x20,0xda,0x45,0x6a,0xaf,0x74, + 0xc1,0x8a,0xe0,0x56,0x7d,0x3b,0x99,0x9f,0x0c,0x5b,0xf0,0xe5,0x45,0xcb,0x24,0xf3, + 0x7b,0x4b,0xa9,0xbd,0x19,0xe4,0x40,0x2b,0x0c,0x93,0xec,0xea,0x9c,0x92,0xb1,0x87, + 0xa5,0x64,0x0a,0xfd,0xd2,0x32,0xd7,0x8c,0x69,0xbb,0x37,0x96,0x67,0x0c,0x39,0xf3, + 0x74,0xe7,0x76,0xb1,0x43,0x62,0x94,0x28,0x7f,0xcd,0x88,0x62,0xf7,0xa2,0x47,0xd2, + 0xc9,0x12,0xf5,0x69,0x93,0x14,0x2d,0x91,0x88,0xa3,0xab,0x63,0xb9,0x90,0xdf,0x12, + 0xed,0x6a,0xa1,0xbd,0x4e,0x53,0x45,0x95,0xf7,0x2d,0xfa,0x88,0x8a,0x98,0x96,0xd7, + 0x4e,0x9a,0x96,0xbb,0x62,0x7e,0x0b,0x33,0x52,0x90,0x4e,0x85,0xf6,0xac,0xa5,0x77, + 0x06,0xe3,0xa2,0xb7,0x68,0x27,0xaf,0xec,0x20,0x8c,0x17,0xed,0x9a,0xa5,0x97,0x47, + 0xbb,0xe4,0x4a,0x6b,0x11,0xd6,0xe8,0xa9,0x16,0xde,0x85,0x72,0x65,0x13,0x4d,0xb4, + 0x73,0x8c,0x4b,0xc0,0x3b,0xf1,0xdc,0xb4,0x90,0xd9,0x57,0x11,0x1c,0x84,0xd3,0xe5, + 0xd1,0xf6,0xf1,0x71,0x6c,0xc3,0x6d,0x17,0x70,0x99,0xc2,0xd5,0xc2,0x20,0x64,0xd8, + 0x1a,0x15,0x46,0x19,0xee,0x2a,0xbc,0x83,0x81,0x1e,0xa7,0x0c,0xf7,0x72,0x3b,0xef, + 0x2c,0xe4,0xc2,0x7d,0xa5,0xff,0x30,0x42,0xeb,0x94,0xed,0xe6,0x0f,0x14,0x81,0xe4, + 0x60,0x3b,0x80,0xed,0xdd,0x76,0x50,0x72,0x1f,0x76,0x17,0x32,0x81,0xea,0xc8,0x68, + 0x0c,0x47,0x46,0x63,0xdb,0x91,0xd1,0x98,0x1d,0x19,0xe5,0xca,0x6e,0x9f,0xb1,0x67, + 0x66,0xe4,0x69,0x63,0x21,0x06,0x23,0x78,0x80,0xf6,0xcf,0xd5,0xb7,0x7a,0x01,0xdc, + 0xa9,0xae,0xf1,0x79,0x34,0xc6,0x15,0xfe,0xb0,0x46,0x19,0x12,0xf1,0x6d,0x44,0x49, + 0x01,0x92,0x98,0xd5,0x6e,0x15,0xbd,0x3c,0x04,0x59,0x9d,0x4f,0xae,0xc5,0x4b,0x8f, + 0x4b,0xe7,0x6d,0xed,0x98,0xda,0x2d,0x2d,0xbf,0xf0,0x00,0x75,0x46,0xc4,0x4b,0x78, + 0xb7,0x8f,0x30,0x18,0xa5,0xcb,0x8c,0x52,0x3c,0x37,0xd8,0xff,0x1e,0x04,0x8c,0xe5, + 0xd8,0x28,0xfa,0x78,0x53,0xc3,0xe0,0x96,0x70,0xac,0x86,0x0f,0x23,0x10,0x40,0x95, + 0x97,0x73,0x80,0xb8,0x90,0x99,0x26,0xc5,0x75,0x77,0xe1,0xf8,0x9d,0xa7,0x49,0xf2, + 0x2e,0x26,0xe3,0x17,0x9c,0x37,0xa1,0xca,0xa2,0x4b,0x36,0x66,0x6c,0xdc,0x4c,0x82, + 0xdf,0x67,0x6e,0xc0,0x06,0x9e,0x0a,0x9a,0xe3,0x50,0x9d,0x77,0x21,0x63,0xe8,0x38, + 0x4d,0xae,0x02,0xa3,0x56,0x84,0xa9,0xd4,0xf1,0x04,0x63,0xa9,0xb3,0x76,0x8e,0xc2, + 0x6d,0xa0,0xdf,0xc1,0xbf,0x5d,0xfc,0x7b,0x82,0x7f,0x4f,0xf1,0xef,0x19,0xfe,0x7d, + 0x87,0x7f,0xdf,0xe3,0xdf,0x0f,0xf8,0xb7,0xdd,0xa4,0x3f,0x04,0xb9,0x4d,0xa0,0xdb, + 0xbb,0xe1,0x71,0xcb,0x94,0xa8,0xd2,0x5e,0xc7,0x68,0xd9,0xb1,0x3f,0x7d,0x15,0x9f, + 0x21,0xc6,0x7b,0x96,0xd0,0x98,0xc1,0xa3,0xbf,0xe9,0x51,0x78,0xc9,0xeb,0x2b,0xe9, + 0x34,0x8e,0x8b,0xc7,0x5c,0xeb,0xbe,0x0c,0x63,0x2e,0xd5,0xee,0xd7,0x7f,0xa2,0x8c, + 0x3f,0x9f,0xbb,0x07,0xc8,0x79,0x69,0x7f,0x52,0x69,0xe2,0xd1,0xc7,0x85,0x38,0xfa, + 0xd3,0xb8,0xe2,0x3a,0x31,0x5c,0x47,0x51,0x9b,0x9b,0x7a,0x38,0x74,0xc2,0xe2,0x5c, + 0x08,0x3a,0x39,0x7a,0x72,0xdc,0xc1,0x9f,0x4a,0x22,0x5c,0xde,0xbb,0x7d,0x0d,0xfe, + 0x9c,0x20,0x36,0xb3,0x84,0x34,0x7f,0x42,0x05,0x66,0x17,0xbe,0xa9,0x4f,0xea,0xa6, + 0x3a,0x5e,0xf2,0x43,0x84,0xee,0xfc,0xe5,0xb8,0x97,0x22,0x41,0x3d,0x09,0x4f,0x6b, + 0x78,0x93,0xb8,0xc6,0xbf,0x72,0x6c,0xbf,0x17,0xd6,0x77,0x93,0x52,0xcf,0x6f,0x59, + 0xf7,0x8a,0xc8,0x44,0xa7,0x33,0xd2,0xb2,0x4a,0x70,0x22,0xf2,0x91,0x7a,0xcd,0xd1, + 0x40,0xcd,0x89,0xd8,0x5b,0xf4,0xc3,0x14,0x24,0xb5,0x7b,0xae,0x57,0x02,0x3c,0xb7, + 0x37,0x08,0x3b,0x9d,0xe2,0x8f,0xe1,0x1f,0x04,0xcb,0x97,0xa8,0x87,0x7c,0xec,0x16, + 0x25,0x62,0x4a,0x28,0x8d,0x6f,0x30,0xe7,0xbe,0xd8,0x9e,0x60,0x17,0x8a,0x2f,0x72, + 0x41,0x99,0xf3,0x30,0x24,0x2b,0xd1,0xf9,0xd5,0xf4,0x6b,0xae,0x5b,0xec,0xd4,0xcd, + 0xab,0x89,0x76,0xe2,0x5e,0x99,0x8b,0xbf,0x60,0x4c,0xc5,0x0b,0x53,0xc9,0x9c,0xa9, + 0xe1,0x39,0xdf,0xfc,0x41,0xc5,0xf2,0x5c,0x6e,0x1e,0xd6,0x75,0x23,0x97,0xc3,0x69, + 0xc7,0xc1,0x7f,0x48,0x62,0xe3,0x60,0x4e,0x76,0xee,0x34,0xe3,0xf3,0x51,0x34,0x25, + 0xfd,0xd8,0x25,0x18,0xf4,0x60,0xcd,0x3a,0x18,0xb3,0x53,0x64,0x8c,0x58,0x27,0x50, + 0xb5,0x05,0xbb,0xd8,0x50,0xba,0x70,0xe7,0x86,0x4c,0x56,0x70,0x36,0xc1,0x07,0x38, + 0x61,0x0d,0xb3,0xf4,0x6c,0xfe,0x57,0x82,0x02,0x2f,0x5c,0x30,0x67,0xa9,0x27,0x81, + 0xbe,0xa3,0xfc,0x38,0xd9,0x24,0x6e,0x40,0x28,0x5d,0x77,0x3e,0xf6,0x6a,0x1f,0x1b, + 0xf9,0x1f,0xcb,0x9b,0xd6,0xd9,0x0d,0x43,0x75,0x28,0x2b,0x5f,0x48,0x93,0xdb,0x5d, + 0xac,0xb3,0xc2,0x15,0x31,0xeb,0xa2,0x99,0xe5,0x48,0x12,0x19,0x69,0xf9,0x4f,0xe2, + 0x81,0x2f,0x47,0x85,0x3e,0xfd,0x07,0xea,0x3e,0x89,0x8e,0xf4,0xb0,0x88,0x27,0xdb, + 0x71,0x3a,0x5b,0x98,0xd2,0xac,0x23,0x68,0xe5,0x12,0x99,0xf1,0x94,0xca,0xba,0x7c, + 0xd0,0xbf,0x11,0x7e,0x2c,0x6e,0xe1,0x3d,0x87,0xe1,0xf1,0x0b,0x71,0xdf,0xf4,0x51, + 0xb4,0x58,0x1f,0xc3,0x06,0x9e,0x9f,0xd7,0x03,0x2e,0x1b,0x1f,0x4d,0x03,0x66,0xf9, + 0xc9,0xc2,0xf9,0x15,0x94,0x15,0x3d,0xf6,0xd7,0x95,0x35,0xd8,0xe1,0x5b,0x99,0xb8, + 0x43,0xba,0xd3,0x4c,0x47,0x51,0x72,0x3b,0x2e,0xbb,0x1a,0x8d,0xa0,0x2f,0x94,0x53, + 0x42,0x73,0x00,0xc2,0x45,0x62,0xf1,0x03,0xac,0xbc,0x1a,0xa1,0xcb,0xbe,0x8c,0xcd, + 0x6d,0xc0,0x5f,0x81,0xa5,0x70,0xac,0x9f,0x71,0x6f,0x38,0x14,0x3d,0xf0,0xe6,0xa6, + 0xb7,0x8e,0x5e,0xc8,0xea,0xba,0x41,0xab,0xb0,0x18,0x0f,0x38,0x9c,0x88,0xe4,0x58, + 0xec,0xb8,0x08,0x46,0x29,0x7d,0xd6,0x6e,0x6f,0x1c,0x66,0x84,0x89,0x01,0xb4,0x93, + 0xc1,0x50,0x78,0x8d,0x21,0x25,0x73,0xb0,0x25,0x1b,0x53,0xe7,0x3f,0xd5,0x67,0x3b, + 0xda,0xe5,0x8f,0x63,0xf0,0x99,0x27,0x5a,0x92,0xab,0x2f,0x4a,0x59,0x02,0x36,0xfb, + 0x07,0x27,0x64,0x07,0x63,0xa0,0x33,0x85,0x7e,0xce,0x77,0x8b,0x35,0x97,0xb8,0x12, + 0xaa,0x82,0xb7,0xf6,0xe9,0x81,0xd9,0xc3,0x10,0xbc,0xd8,0x01,0x67,0x02,0xe7,0x69, + 0x9a,0x05,0xce,0x57,0x18,0x0b,0xea,0xa8,0xcc,0xd6,0x8e,0xe8,0xc8,0x03,0xff,0x3f, + 0xd6,0x92,0x07,0xe6,0xb3,0xa7,0xb0,0x05,0xb6,0xd6,0x86,0x1c,0x39,0x80,0x7d,0x6a, + 0xa7,0x28,0x59,0xcd,0xcd,0x0a,0x0e,0x9a,0x8d,0x95,0xfa,0xc7,0xb1,0xc1,0x02,0xc0, + 0xe2,0x98,0x55,0x00,0x4b,0xa7,0xac,0xc0,0x8b,0x81,0x67,0xfb,0xee,0xe6,0x5a,0xda, + 0x76,0xc4,0x45,0x35,0x7d,0x73,0xe2,0x8f,0xe0,0xa6,0x40,0x8b,0xae,0xb5,0xf8,0x6f, + 0xda,0x37,0x87,0x41,0x62,0x2b,0x60,0xed,0x7d,0xa9,0xd4,0x16,0x8f,0x78,0x19,0x27, + 0x55,0xdc,0x98,0x95,0xd5,0xbf,0x9e,0x48,0x09,0xd1,0xe7,0xb5,0xc3,0xd3,0x3e,0xfa, + 0x73,0x3e,0x20,0xa2,0xb0,0x56,0xec,0x07,0x44,0x80,0xd7,0xc2,0xe2,0x18,0xf7,0x72, + 0x4c,0x0e,0x34,0x1b,0x3c,0x84,0xdf,0xf3,0x80,0xcf,0x48,0x35,0x01,0x99,0x42,0x57, + 0x07,0x78,0x78,0x62,0xbb,0xc5,0x7e,0x22,0x8c,0x32,0x92,0x55,0x73,0xfd,0x06,0x9f, + 0x3f,0xd2,0xc9,0x12,0x6c,0xd2,0xfb,0x62,0xdf,0x2a,0x2e,0xf1,0x89,0xbc,0x2a,0x29, + 0xea,0x0d,0xc3,0x83,0xab,0x73,0x84,0xab,0xb0,0x36,0xc1,0x8f,0x34,0x1b,0x76,0x3f, + 0x8e,0x17,0x18,0x56,0x4b,0x0f,0xc6,0x99,0x7a,0x8c,0x71,0xc7,0x33,0xd2,0x80,0x0c, + 0x88,0xaa,0x10,0x78,0xa1,0xa8,0x5d,0x20,0x6f,0x76,0x68,0x20,0x19,0x5e,0x96,0xcd, + 0x63,0x7f,0x88,0x50,0x3b,0x6e,0x69,0xaf,0xc9,0x59,0x63,0x74,0xd1,0xfd,0x9c,0xfc, + 0xc3,0x09,0x50,0xf2,0x0f,0x59,0x26,0x6c,0x7d,0xcc,0x6a,0x5b,0xde,0x52,0x88,0x61, + 0x9c,0xb5,0x10,0xa4,0x8a,0x44,0x23,0x81,0xaf,0x4a,0xa0,0x53,0xf3,0xaa,0x3c,0x35, + 0x7e,0xde,0x74,0xa2,0x1e,0xdd,0x55,0x46,0x3d,0x12,0xaa,0xde,0xf0,0x5a,0x16,0x3b, + 0x5e,0xa1,0x29,0x4b,0xf1,0xcc,0x67,0x00,0x38,0xe5,0xc4,0x74,0x42,0x44,0xf1,0xcc, + 0x69,0x1c,0x57,0x0a,0xe2,0xc5,0x50,0xb6,0x9f,0xe8,0x2e,0xad,0xe6,0x9d,0xc4,0x82, + 0xe1,0x15,0xdd,0x5f,0x49,0x5e,0x18,0xac,0x99,0xc9,0x75,0x9d,0xe7,0x02,0x84,0x81, + 0x1c,0x4e,0xd2,0xcc,0x55,0x56,0x10,0xa2,0x14,0xf8,0x86,0xc4,0x24,0xe2,0xe2,0x86, + 0x76,0xbf,0x2a,0xa7,0xf1,0x42,0xec,0x3c,0xed,0x63,0xe1,0xe5,0x60,0x12,0xd3,0x1e, + 0x65,0xca,0x70,0x42,0x8a,0x90,0x66,0x0c,0xfc,0x66,0xff,0xd0,0x07,0x44,0xee,0x17, + 0x97,0x4b,0x13,0xe6,0x3e,0x7f,0xd2,0xdc,0xdc,0xd4,0x66,0x9a,0x27,0xc8,0x18,0xd3, + 0x77,0xcd,0xa6,0x7b,0x37,0xa0,0x92,0x3c,0x0e,0x37,0x90,0xac,0x7e,0x66,0x9f,0x35, + 0x63,0x66,0x4d,0xde,0x72,0xe0,0x90,0x0d,0xca,0x78,0x15,0xf8,0x89,0x00,0x83,0x8f, + 0x4e,0xe3,0xb8,0xbc,0xd4,0x1d,0x48,0xa6,0xfb,0x0f,0xc8,0x19,0x34,0x4f,0xf4,0xf1, + 0xa0,0x16,0xd3,0x6f,0xe3,0x5b,0xdd,0x81,0x3c,0x1a,0xc5,0xce,0x42,0x53,0xb7,0xbb, + 0xb2,0xa5,0xe1,0xbd,0x83,0x80,0x22,0x7d,0x6d,0xb3,0x42,0xde,0xf5,0xd2,0x4c,0xa9, + 0xcd,0xab,0x54,0x1f,0x61,0xdf,0x9b,0xf3,0x21,0x21,0x7b,0x9c,0x5e,0x4a,0x49,0xb2, + 0xa7,0xc7,0x1a,0x89,0xd3,0x1a,0x18,0x4a,0xf3,0x57,0xd2,0x18,0x61,0x22,0x1d,0x09, + 0x9f,0x29,0x18,0xd3,0x82,0x70,0xd7,0x0c,0xa0,0x16,0x80,0x6f,0x30,0x9d,0x6b,0x73, + 0xa2,0xf3,0xc9,0x7c,0xb8,0x93,0x1e,0x24,0x9f,0xdc,0x5e,0x84,0xa5,0x19,0x77,0x1e, + 0xaa,0x93,0xdf,0x6d,0xae,0xc5,0xb2,0xd0,0xcd,0xe4,0x75,0x15,0x20,0x91,0xad,0x26, + 0x93,0x77,0x9d,0xe4,0x2d,0xf1,0x16,0x46,0x05,0xcc,0x39,0xb8,0x4b,0x97,0x9d,0xa5, + 0xd3,0xac,0xc8,0xc8,0x9c,0xa3,0x6c,0xb9,0xcc,0x64,0x2a,0xe5,0xc5,0x6f,0x5f,0xc5, + 0x8a,0xb9,0x36,0x01,0xd1,0x4c,0xa0,0xb3,0xb3,0x94,0xbd,0xa2,0x2c,0xe3,0x78,0x2b, + 0x0a,0x20,0x57,0x46,0xe8,0x8e,0xd2,0xdf,0x34,0xe9,0x27,0x12,0x0c,0xbc,0xad,0x84, + 0xaa,0x82,0x0a,0x22,0xc9,0x38,0x18,0x43,0x1e,0xf8,0x50,0xec,0xa0,0x07,0x9c,0x10, + 0x2b,0xb1,0xdc,0x19,0x3d,0x27,0x63,0xe2,0x37,0xa9,0x6b,0xf2,0xb1,0x11,0x1a,0xad, + 0xea,0xbc,0xac,0x62,0x9d,0xc6,0xeb,0x13,0x55,0xf6,0xba,0x8e,0xec,0xe5,0x99,0x7a, + 0x6b,0x9a,0x3b,0x3c,0xee,0x84,0x98,0x34,0xae,0xc5,0x93,0x14,0x4f,0x88,0x57,0x63, + 0xa0,0xc2,0x2a,0x35,0x12,0x30,0xb3,0x3f,0x06,0xa0,0x2e,0x61,0x01,0xac,0xf7,0x4a, + 0x60,0x56,0x83,0x55,0x8b,0x59,0xd4,0xa2,0x08,0x8f,0xc5,0x66,0x03,0xed,0xb2,0x58, + 0x7c,0x86,0xe9,0xb6,0x59,0x7b,0x09,0x4a,0xb4,0xb6,0xd0,0x14,0x7f,0x0b,0x78,0x2d, + 0xab,0x34,0x5a,0x95,0x0b,0x55,0x96,0x15,0x58,0x67,0xfb,0x69,0x6b,0xcc,0x85,0x6b, + 0x5d,0xfd,0x59,0x2d,0xd2,0x31,0xae,0x82,0xd9,0x9d,0x10,0x79,0x2d,0x06,0x2c,0xf9, + 0x6c,0x33,0x6a,0x50,0xbf,0xb3,0x66,0x1c,0x71,0x46,0x3b,0xb9,0x4d,0xdd,0xc9,0x4a, + 0x84,0x02,0x83,0xab,0x33,0x4e,0x7b,0x06,0x74,0x1c,0x01,0x5f,0xb0,0x5b,0x5b,0x81, + 0xf6,0x85,0x2f,0xc7,0x87,0x53,0xc9,0x40,0xa1,0x00,0x48,0x0a,0xeb,0xf8,0x1d,0x51, + 0x9f,0x88,0x21,0x12,0xa0,0x2b,0x2d,0x7f,0x95,0x6f,0x88,0xf1,0x56,0x4b,0x9d,0x28, + 0x03,0xd9,0xb9,0xc4,0x03,0x1f,0x68,0xf0,0x38,0x04,0x1a,0x78,0x5c,0x33,0x39,0x3a, + 0xe1,0xf3,0x2b,0x44,0x1d,0xa0,0xf2,0x28,0xe6,0x00,0x9e,0x79,0x8c,0xc5,0x35,0x2a, + 0x43,0x22,0xa2,0x61,0x0d,0xd6,0xc7,0xd0,0x84,0x5b,0xb2,0x81,0xc4,0x9d,0xa3,0xd7, + 0xd8,0x04,0x2d,0x90,0xc8,0xdf,0x12,0xaa,0xc0,0x8c,0x5c,0x70,0xc9,0x8e,0x14,0xd7, + 0xc6,0xfb,0x4a,0x8f,0x75,0xf4,0xd1,0xda,0x8d,0x36,0xcb,0x8d,0xf7,0x1e,0x8b,0x0c, + 0x76,0x83,0xf8,0x8d,0xcd,0xf7,0xa0,0x81,0x6a,0x55,0xc6,0x3c,0x51,0x16,0x42,0xe9, + 0x39,0x40,0x57,0x91,0x16,0xd4,0xb0,0x25,0x5e,0x70,0xa4,0xc9,0xd8,0xb4,0x21,0x29, + 0xd5,0x00,0x64,0x48,0xc1,0xe5,0xe7,0x09,0x82,0x42,0xde,0xc4,0x5e,0x4a,0xb4,0x60, + 0xfb,0x90,0x16,0x46,0x5e,0x97,0x96,0x81,0x21,0x2b,0xc1,0x62,0x6f,0xf2,0xa7,0x2a, + 0xf6,0xe4,0x1c,0x40,0x3a,0x95,0x3b,0xb5,0x49,0x5f,0x43,0xe7,0x92,0x5f,0x74,0xf8, + 0xa8,0x07,0xcf,0x76,0xcd,0x96,0x0b,0x5f,0xdf,0x8e,0x5b,0x91,0xc0,0xd4,0x7a,0xb5, + 0x12,0xb2,0xff,0x70,0xdf,0x09,0xab,0xf0,0xcc,0xa3,0x69,0x8f,0x7d,0x08,0x47,0x39, + 0x83,0xfa,0xa9,0x64,0x85,0x84,0xe1,0x18,0xcb,0x7d,0x27,0xc6,0x32,0x22,0x30,0xa5, + 0xf6,0x18,0x01,0x3a,0x24,0x99,0x81,0xc2,0x8b,0x83,0x36,0xbd,0xea,0x42,0x92,0x70, + 0x41,0x63,0xce,0x23,0x25,0x1f,0x73,0xed,0xdc,0xa8,0x1a,0xd7,0x56,0x8c,0x24,0x80, + 0x31,0xa9,0xda,0x8e,0xb1,0xcf,0xd6,0x79,0xf7,0x92,0x97,0xc7,0x01,0x8c,0x6f,0x58, + 0x6b,0xc2,0x6e,0xc4,0xb0,0xa4,0xa7,0x53,0x69,0x2e,0x2b,0xd3,0x5a,0xa8,0x26,0x1d, + 0xaa,0xad,0xa8,0x9a,0xb5,0x0b,0x2d,0x7a,0x25,0xdf,0x59,0x48,0x09,0x3b,0x79,0xa6, + 0x54,0xce,0xe4,0xa9,0xee,0x90,0xa5,0xc8,0x91,0x15,0xb2,0xa2,0x62,0x21,0x97,0x0c, + 0x4f,0xa7,0xca,0xd3,0x26,0xa9,0xd3,0x54,0x9e,0xac,0x5e,0x68,0x8d,0xd1,0xe5,0x8d, + 0x6a,0x67,0xfc,0x1c,0xf9,0x85,0x56,0x84,0xca,0x7a,0x4e,0x3c,0xd6,0x57,0xfa,0x44, + 0x97,0xb2,0xf6,0xe6,0xd1,0x98,0xe6,0x52,0xfe,0xa8,0x09,0x31,0xf4,0xc7,0xed,0x0d, + 0x2a,0x1e,0xff,0x54,0x5c,0x58,0x31,0xbf,0x0a,0xcc,0x2f,0x50,0x1f,0xe5,0x56,0x45, + 0xbd,0x08,0x03,0x89,0x3d,0x57,0x76,0x15,0x3c,0x32,0xfe,0x05,0xed,0xb1,0x58,0x19, + 0xe8,0x7b,0x34,0xa1,0x69,0x04,0x3b,0x99,0x52,0xb0,0xef,0xfe,0x35,0x49,0x1d,0x82, + 0xfd,0xc9,0x9c,0xc2,0x46,0x31,0x48,0xf4,0xf1,0x3d,0x38,0x70,0xf8,0xac,0x2a,0x70, + 0x38,0x4b,0x07,0xee,0x02,0x33,0x7b,0xb4,0x49,0x15,0x6a,0x33,0x0d,0x6a,0x34,0x10, + 0x16,0x39,0x12,0x87,0x16,0x28,0xb4,0xd7,0x32,0x5d,0x8c,0x3b,0x36,0xe8,0x38,0xca, + 0x1f,0x74,0x58,0xd2,0xd9,0x04,0xc3,0xe9,0x97,0xa9,0x66,0x6d,0xdb,0x59,0x73,0xd6, + 0x63,0xed,0xaa,0x49,0x70,0x1d,0x7f,0x36,0x77,0x07,0x8e,0xa7,0x14,0x01,0x9c,0xca, + 0x91,0xea,0x21,0x29,0x63,0xc0,0x29,0xc6,0x0e,0xb5,0x2f,0xc8,0x9f,0x9b,0x6e,0xde, + 0xe0,0xb3,0xac,0x54,0x87,0x71,0x3b,0x2f,0xbb,0x84,0xe1,0x2e,0x27,0xaa,0x96,0xf6, + 0x4a,0x68,0xf2,0x1c,0x4d,0x3b,0xfd,0x45,0x19,0x01,0x95,0xa6,0xb5,0x2a,0xa4,0x86, + 0x92,0x70,0x27,0xfb,0x04,0xfd,0x52,0x62,0x32,0xc5,0x82,0x74,0xe6,0x50,0x19,0x2a, + 0x9a,0x41,0xa5,0x1d,0x9c,0xd2,0x2e,0x28,0x15,0x8d,0x79,0x90,0x5f,0x42,0xe6,0x70, + 0xce,0xd1,0x18,0xfd,0xff,0xce,0xdc,0x29,0x41,0x4b,0x52,0x18,0x07,0x87,0x75,0x5e, + 0x1f,0xd3,0x98,0x73,0xda,0xc7,0x9c,0x5a,0xc8,0x90,0x90,0xde,0xba,0x1e,0x11,0xac, + 0x04,0x66,0x0e,0x1e,0xeb,0xee,0x4c,0x51,0xad,0x04,0x97,0x7e,0x1e,0x84,0x8e,0x65, + 0x6c,0x99,0xae,0x9f,0x07,0xf3,0x87,0x11,0x83,0x45,0x57,0xc5,0x38,0x34,0x47,0x05, + 0x34,0x76,0xf0,0xdd,0x1c,0xb6,0xd1,0xba,0x0a,0xc2,0x35,0xac,0x1c,0xa4,0xed,0x42, + 0xf2,0xaa,0x54,0xd0,0x5c,0x7b,0x14,0x70,0xf9,0xf7,0x29,0xc2,0x92,0x16,0xaf,0x3f, + 0x51,0x99,0x52,0x4e,0x2f,0x2d,0xa5,0x77,0xb6,0x5b,0xd4,0xdd,0xab,0xca,0x21,0xa4, + 0xb6,0x26,0x22,0x2e,0x26,0xd3,0x36,0x77,0x1a,0x67,0x60,0xb8,0xfe,0xc9,0x85,0x9c, + 0x97,0xa4,0x3d,0x42,0xd9,0x0f,0xc2,0xbf,0xb9,0xf9,0xc0,0xb9,0x80,0x33,0x9d,0x8c, + 0x06,0x84,0xa4,0xa2,0xcc,0x0c,0xe7,0x38,0x7d,0x14,0xea,0xd1,0x5f,0xbd,0x18,0xa4, + 0x05,0xb7,0xf4,0x7d,0xd1,0x71,0x48,0x3f,0x73,0x50,0x1b,0xdc,0xc3,0x9c,0xb1,0xaf, + 0x43,0x90,0x8b,0x4a,0x9d,0xce,0x67,0x43,0xb4,0xc4,0xca,0x86,0x12,0xa5,0x3b,0xfa, + 0xfc,0x03,0xfa,0x07,0x2b,0x95,0xab,0x7a,0xc7,0xe9,0x09,0x75,0x0f,0xa0,0x9b,0xb2, + 0x42,0xf4,0x27,0x3a,0xd4,0x5f,0x8a,0x46,0xc9,0x49,0x15,0x29,0x74,0xe2,0x2c,0x1f, + 0xe8,0x20,0x23,0x3d,0x3d,0x69,0x40,0x2e,0x13,0x4c,0x14,0x52,0x42,0x18,0x6b,0x5c, + 0xc8,0x47,0x5b,0x47,0x1f,0x67,0x1f,0xc7,0xc7,0xb2,0x35,0xa0,0xaf,0xb1,0x22,0xa8, + 0x6c,0x38,0xa6,0x89,0xee,0x76,0xf1,0x0a,0x67,0x96,0xf5,0x39,0x93,0x7c,0x60,0x8f, + 0x1f,0x69,0xc1,0x55,0x2e,0x83,0x13,0x1b,0xb8,0x32,0x36,0xe2,0x76,0x46,0x5e,0x95, + 0x4f,0xf4,0x42,0xe7,0x5d,0x0c,0x52,0x93,0xb7,0xb6,0xd3,0x2a,0x26,0xa0,0x88,0x9b, + 0xcb,0xd5,0xf1,0x61,0x7f,0x49,0x91,0xc9,0x72,0x95,0x5c,0xbd,0x6e,0xd6,0x34,0xcc, + 0x51,0x52,0x8c,0x93,0x27,0x74,0x55,0xec,0x35,0x42,0x67,0xe0,0x58,0x78,0x53,0x3a, + 0xe2,0x5e,0x58,0x65,0x0b,0x39,0xfe,0x34,0xec,0xca,0x44,0x6a,0x69,0xf1,0x0b,0x4e, + 0x39,0xaa,0xa6,0x32,0x65,0x93,0xb4,0x69,0xbe,0x8b,0xa7,0x24,0x55,0x8e,0xa1,0x19, + 0x96,0x1f,0x67,0xcb,0x8f,0xe3,0x2d,0x7f,0x45,0x6d,0xe9,0xaf,0x86,0x29,0x9e,0x85, + 0x9b,0xa6,0x09,0x87,0xcb,0xe5,0x30,0x5f,0x84,0x34,0xd9,0x2a,0xe6,0x2f,0x7a,0x10, + 0xed,0xe9,0x4c,0xb7,0xb6,0xcc,0xe5,0x23,0x36,0x2a,0x62,0xae,0xa0,0x79,0xb3,0x8d, + 0x61,0x3a,0xb4,0x96,0x52,0x88,0x52,0x78,0xf4,0xe2,0x9b,0xe3,0x65,0x7e,0xa7,0xe4, + 0x63,0xf6,0x2d,0xde,0xff,0x72,0x1c,0xab,0xb2,0x0c,0x78,0xc0,0xef,0x21,0x3b,0x6d, + 0x09,0xba,0x86,0xd7,0x3d,0x63,0xf9,0x77,0x3a,0x1b,0x4c,0xe7,0xbc,0xda,0x29,0x14, + 0x0d,0x43,0xd7,0xf8,0x03,0xe9,0xf6,0xcd,0xb2,0x0f,0xaf,0x0e,0x7e,0x23,0xf3,0xdc, + 0xad,0xbf,0xf3,0x15,0xa1,0x6f,0x50,0x04,0x3f,0x64,0x55,0xae,0xdb,0xbc,0x6b,0x43, + 0x8e,0x89,0xa7,0x73,0x85,0x08,0x08,0xd5,0x35,0x1d,0x70,0x9a,0x8d,0xbc,0xeb,0xe7, + 0x53,0x74,0xc8,0x92,0x4c,0x38,0x24,0xa3,0xe6,0x5a,0x05,0x10,0xe5,0x3e,0xe7,0x96, + 0xb9,0x8f,0xba,0x18,0xd0,0x9c,0x98,0x79,0x8e,0xec,0x00,0x5f,0xb8,0x24,0x04,0x58, + 0x4f,0x5c,0x12,0x66,0x85,0x4f,0xc2,0x7e,0x46,0x7e,0x69,0xf4,0x84,0xc3,0x71,0x49, + 0x98,0x09,0x0e,0xd7,0x3e,0x9a,0xf8,0x44,0x29,0x99,0x67,0x21,0xcd,0x9a,0xb3,0xc0, + 0x44,0x3e,0x8a,0xc8,0x46,0x6d,0x09,0x83,0x18,0x34,0x1e,0x32,0x48,0xdc,0x21,0x36, + 0xb0,0xe0,0xa1,0xe2,0x7a,0x97,0xef,0xc1,0x8d,0x8f,0x85,0xa2,0x14,0x35,0xc9,0xc1, + 0x30,0xf7,0x02,0x25,0x6c,0xd9,0x56,0x1b,0x4e,0x80,0x03,0x94,0x24,0xd1,0x4e,0x04, + 0x14,0xaa,0x7f,0x7c,0x34,0x8d,0xd7,0xcf,0x83,0x0a,0x8c,0xae,0x32,0x89,0xfd,0x67, + 0x91,0xc0,0x76,0x98,0x4e,0xc1,0xb3,0xb2,0xd9,0x2c,0x90,0x77,0x83,0x9b,0x19,0xb9, + 0xd3,0xe2,0x91,0x2b,0xdb,0x19,0xaa,0x9a,0xb6,0x82,0xfa,0xa6,0x28,0x30,0x93,0x59, + 0xad,0x57,0xa3,0x33,0x35,0xb2,0xfd,0x17,0xb0,0xe6,0x1a,0x1f,0x0f,0xab,0x7f,0xa1, + 0x47,0x68,0x80,0xb1,0xf2,0x47,0x9a,0xfb,0x39,0x87,0x0c,0xc0,0xac,0xb2,0x43,0xfb, + 0xf6,0x72,0x1f,0x06,0xd9,0x65,0xc6,0x32,0x47,0xa3,0xed,0xf7,0xc7,0x08,0x94,0xa0, + 0x4a,0x42,0xfa,0xe4,0x8b,0x92,0x53,0x40,0xe7,0xa3,0xce,0xfb,0xaa,0xd1,0x34,0x21, + 0xf8,0xcc,0x94,0x40,0x31,0x1b,0x1f,0x11,0xe6,0xa3,0x19,0xdb,0x9b,0x2c,0x8a,0x67, + 0x98,0xcf,0xe8,0x08,0xa7,0x04,0x99,0xea,0xfc,0x81,0xae,0x54,0x97,0x65,0xa5,0x88, + 0x43,0xf4,0x8c,0xd4,0x92,0xc4,0x2f,0xc4,0x67,0x3a,0x8b,0x37,0xfa,0x18,0xd3,0x47, + 0x86,0xd0,0x5d,0x95,0x80,0xe4,0x97,0x73,0x89,0x15,0xa9,0xcb,0x93,0x04,0x9a,0xb5, + 0xb4,0x24,0xdf,0xdb,0x2b,0x6c,0x0e,0x12,0xa8,0x3f,0xee,0xb3,0x18,0x00,0x88,0x65, + 0x33,0x10,0x72,0x66,0x84,0xcc,0x0c,0x45,0x89,0x7c,0x4f,0xf6,0x0b,0x3b,0xef,0x05, + 0x32,0x5d,0x38,0x06,0x07,0xa0,0xb5,0xc3,0x77,0xbb,0xb8,0xe9,0x65,0xb2,0xea,0x40, + 0xff,0x27,0x89,0xfd,0x8c,0xf4,0x6e,0x5c,0x1b,0xff,0xac,0x0a,0x5d,0x0b,0xbd,0xaa, + 0x3f,0xeb,0x08,0x99,0x8e,0xd1,0x42,0x1e,0xfa,0xff,0x26,0x3d,0x60,0x27,0x18,0xf6, + 0x94,0x17,0xcb,0xaf,0xc9,0x95,0xcd,0x3f,0x0f,0xfb,0xb4,0x84,0xcf,0x23,0x4f,0x46, + 0x61,0xbd,0x8e,0x15,0x6b,0x74,0x53,0xa3,0xa8,0x72,0x18,0x95,0xf1,0xca,0x3e,0x25, + 0xfa,0x9e,0xfb,0x0d,0x2f,0x7a,0x36,0x1f,0x86,0x63,0xe1,0xde,0x78,0x65,0xae,0x8c, + 0x0a,0x1d,0x3b,0xbc,0xe2,0x00,0xd5,0x58,0xc5,0x76,0x3f,0x47,0x37,0x75,0xa9,0xd4, + 0xa0,0xb6,0x9d,0x57,0x06,0x4f,0x1a,0x3b,0x07,0x3a,0x31,0xfe,0x04,0x6e,0x05,0x28, + 0xaa,0xe7,0x70,0x06,0x1b,0x73,0x37,0xa1,0x44,0xc3,0x21,0xca,0x24,0xfb,0x0e,0x0c, + 0x81,0x0a,0xbe,0xf6,0xa4,0xa7,0x4b,0x17,0xd5,0x03,0x9b,0xf5,0xd5,0x9f,0xdb,0xd5, + 0xbf,0x01,0x49,0x73,0xa7,0x6a,0xe1,0x3b,0x78,0xa7,0xb3,0x2e,0x5e,0x86,0x35,0xe9, + 0xe7,0xb5,0x50,0xce,0x1d,0x21,0x6f,0x73,0x7f,0xd1,0x3d,0x23,0xbf,0xfb,0x3c,0x87, + 0x71,0x28,0x18,0x16,0xdf,0xa4,0x8e,0x0f,0x7d,0x7a,0xe7,0xb9,0x66,0x98,0xc7,0x8a, + 0xf0,0x4a,0x77,0xef,0xeb,0xa9,0x9e,0x95,0xa9,0x9e,0xb9,0x54,0xff,0xb1,0xf7,0xe1, + 0xed,0xab,0xb7,0xbf,0xb4,0x38,0x56,0x09,0x88,0xe6,0x22,0xa4,0x0d,0xda,0x2c,0xe5, + 0x49,0x39,0x59,0x45,0xd5,0x4c,0xa8,0xf2,0xad,0x30,0x36,0x37,0x79,0x47,0x8d,0x89, + 0x4b,0xd6,0x8c,0x74,0x6f,0xdb,0x91,0x62,0x22,0x63,0x30,0x15,0x9b,0x49,0x66,0xa9, + 0x93,0xbd,0x5a,0xa1,0x9e,0x62,0x6f,0xa6,0xa1,0x09,0xd7,0xd7,0x71,0x5a,0xae,0xe3, + 0x74,0x45,0x1d,0xf9,0xce,0x9f,0x27,0xd3,0x4d,0x83,0xb5,0x78,0x05,0x5a,0x32,0xf9, + 0xa8,0xe7,0x6f,0xb0,0xfd,0x30,0x07,0xca,0x12,0xea,0x45,0xe6,0x5c,0x1c,0x48,0x5f, + 0x65,0x7c,0xd5,0x51,0x6c,0x47,0x98,0x01,0x72,0x39,0x4a,0x2e,0x6d,0x7c,0xc6,0x6b, + 0xbf,0x8a,0x81,0x53,0xbd,0xa3,0x7f,0x32,0x1f,0x67,0xf7,0xd4,0x91,0x40,0xec,0x6a, + 0xd2,0xbb,0x8c,0xc0,0xf3,0xc9,0xca,0xbc,0xe6,0xce,0x0e,0xb2,0x9f,0x4f,0xec,0xcc, + 0xe7,0x13,0x64,0x45,0x52,0x95,0x18,0x13,0xc1,0xb5,0x52,0x64,0x69,0xcc,0x92,0x07, + 0x94,0x3a,0x76,0x8b,0x08,0xf7,0xbb,0x38,0x67,0x1f,0xa2,0x6c,0xa2,0xde,0xe1,0xc5, + 0xf9,0x44,0xaa,0xe8,0x8c,0x72,0x24,0x96,0x99,0x46,0x40,0xd6,0x1a,0x9d,0x57,0x93, + 0x43,0x5d,0xa1,0x33,0x0a,0x51,0x8f,0x0b,0x9d,0xf7,0x31,0x36,0x2b,0x75,0x9e,0xcc, + 0xb3,0x26,0xf3,0x68,0xe0,0x8d,0x02,0xf1,0x6f,0x32,0x56,0x2d,0x5d,0x3a,0x76,0x5f, + 0xef,0xd5,0xd9,0xb5,0x0d,0x02,0x56,0xcb,0xa5,0x8e,0xa6,0x83,0x2b,0x94,0x37,0xc7, + 0x58,0xe2,0xea,0xb4,0xf2,0x97,0x95,0x0d,0x43,0x50,0x71,0x5b,0x4c,0x79,0x08,0x84, + 0xca,0x18,0xaf,0x2b,0x43,0xda,0x63,0x68,0xc4,0xd1,0x58,0xf6,0x62,0x14,0xe7,0x2e, + 0x23,0x76,0x85,0xab,0x2c,0xc7,0x7c,0xf3,0x3a,0x70,0x28,0x6e,0xdf,0x67,0x15,0xe7, + 0x22,0x23,0x15,0x0f,0xda,0x48,0x7d,0x86,0xa8,0x1d,0x46,0x20,0x27,0x72,0xe4,0xa9, + 0x30,0x83,0x68,0xcc,0xef,0x26,0x8d,0xf0,0x87,0x4e,0xb1,0x40,0xa3,0xbb,0x2e,0x51, + 0xad,0x02,0x2f,0x7f,0xd4,0xa8,0x69,0xad,0x2a,0x3e,0x21,0x91,0x6c,0x69,0xc3,0x64, + 0x53,0xe6,0xec,0x0f,0x65,0x8b,0x06,0x40,0xc5,0xe5,0x28,0x37,0x2d,0xbd,0x9c,0x6c, + 0xc9,0x19,0x69,0x9a,0x9a,0x98,0x19,0xd0,0x39,0x14,0xef,0x18,0x36,0x0b,0xd5,0x2b, + 0x38,0xdb,0x58,0x81,0x61,0x8b,0x2a,0x2b,0x4b,0x07,0x19,0xc4,0xac,0xcb,0x85,0xd7, + 0x95,0xd2,0x11,0x81,0x1e,0xc7,0x3a,0x1d,0x58,0x0b,0x34,0xf9,0xa4,0xd9,0x4c,0xa7, + 0xd0,0xe4,0x12,0xfb,0x7e,0x04,0xb7,0xd0,0xdf,0xc0,0xbe,0x9c,0x77,0x10,0x06,0xe5, + 0xe6,0xd2,0x58,0x8c,0xf2,0xa9,0xc1,0x9f,0xce,0x27,0xee,0x27,0xc3,0x32,0x3a,0x08, + 0x12,0x35,0x07,0x6f,0x09,0xde,0xf4,0xe1,0xa4,0x21,0x0a,0xb1,0xed,0xe2,0x3b,0x0b, + 0xad,0x33,0xe2,0x1e,0x32,0xf2,0xc7,0x7e,0x16,0x3f,0xc8,0xb2,0x46,0x7b,0x75,0xb5, + 0x8d,0x9b,0x39,0xb8,0xe0,0x24,0x85,0xd4,0xfa,0x4b,0x25,0x25,0x60,0xa8,0x5a,0xb5, + 0x99,0xbe,0x81,0x5d,0xc3,0x00,0xe6,0x01,0x97,0x1f,0xfa,0xff,0x78,0xd5,0x93,0x44, + 0xb9,0x26,0x9b,0xba,0xea,0x0a,0x7b,0x9d,0xbb,0xdd,0x09,0x67,0x32,0x20,0x9b,0x5b, + 0xa5,0x21,0x69,0xc6,0x2b,0x8f,0x47,0x27,0x9e,0x18,0xdf,0xdd,0x59,0x70,0x79,0x2d, + 0xfe,0xcb,0x18,0x5b,0xf4,0xa7,0x22,0xc2,0x18,0x77,0x36,0x0c,0x9f,0xa8,0x00,0x4d, + 0x9a,0x09,0x13,0x46,0x0f,0xcd,0x55,0x81,0xc2,0x36,0xec,0x48,0x61,0xa9,0x46,0x0a, + 0x5b,0xe4,0x4c,0x60,0xbb,0x9b,0xb8,0xcd,0x88,0x54,0x58,0x2a,0xaf,0x4c,0x6e,0xf3, + 0x11,0x99,0x9f,0x34,0x9f,0x70,0x4e,0x58,0xbd,0x46,0x26,0x51,0x3c,0x6d,0xab,0x39, + 0xdf,0x45,0x97,0xf6,0x3b,0xf9,0x4d,0xa4,0x00,0x22,0x81,0x9b,0xb9,0x5a,0xa2,0xac, + 0x2e,0xe6,0x07,0xe8,0xe5,0x1a,0x5c,0x53,0x9c,0x09,0xf0,0xaf,0x57,0xee,0x1e,0xe1, + 0xeb,0xcf,0x44,0x50,0xd8,0x21,0x24,0xa5,0x25,0xa8,0x4c,0x8e,0x1a,0x19,0xb0,0xa9, + 0xea,0xf0,0xf3,0xba,0x02,0x9b,0xcb,0xa5,0xfd,0xbe,0xbd,0x5b,0x2e,0x4f,0x79,0xc8, + 0x21,0xce,0x24,0x98,0xe6,0x49,0x11,0x28,0xd3,0x46,0xfe,0x80,0xa6,0xd2,0xc9,0x5e, + 0xfb,0x69,0xba,0x90,0xfb,0xf9,0x74,0x37,0x06,0x95,0x6a,0x91,0x7d,0xc9,0x2c,0x9b, + 0xcc,0xf0,0x40,0x57,0x76,0xe8,0x77,0x0a,0xac,0xa8,0x99,0xdc,0x8d,0x81,0x4c,0x65, + 0x63,0xed,0xe4,0xcf,0xc9,0x89,0x79,0xe8,0x53,0x20,0xdc,0xac,0xd5,0x74,0x2f,0xcb, + 0x48,0x01,0x1c,0xac,0x87,0x7a,0x12,0xcb,0x23,0xd5,0x9f,0xab,0xb1,0x30,0x17,0x02, + 0xba,0x8a,0x14,0x21,0xc8,0xb5,0x29,0x06,0x69,0x69,0xd3,0x7a,0x37,0x44,0x22,0xc9, + 0xca,0x08,0x82,0xd4,0xee,0xd8,0x33,0x45,0xd6,0x24,0x43,0x2d,0xe7,0x74,0x3b,0xa3, + 0x3b,0xd6,0x05,0x9c,0x16,0xf1,0x32,0xb1,0xb3,0x58,0xe1,0x47,0xc3,0xf1,0x95,0x9b, + 0xc1,0xaf,0xb0,0x3d,0xa7,0x22,0x1c,0xea,0x97,0x4b,0xf7,0xbd,0x41,0x26,0xc3,0x63, + 0xde,0x57,0xc4,0x6e,0x35,0x5d,0x2b,0xd8,0x30,0x8c,0xf5,0xf2,0xd0,0x09,0x79,0x08, + 0x4b,0x6d,0x68,0x67,0xd7,0x50,0xa3,0xe7,0x42,0x7b,0xf7,0x71,0xb6,0x75,0x5e,0x64, + 0x27,0x9e,0x3a,0x1c,0x26,0xd7,0x3d,0xf0,0x47,0x92,0xe2,0x71,0x73,0x13,0x7f,0x1a, + 0xac,0xe6,0xa4,0x07,0x36,0x00,0x39,0x96,0x59,0xcc,0xbb,0x6a,0xc7,0x01,0x8c,0xb4, + 0xb5,0x7c,0x2a,0x52,0x83,0xb7,0x93,0xd3,0xdb,0xca,0x1f,0x64,0xcb,0xce,0x4e,0x9e, + 0x9e,0x3d,0xdc,0x00,0xbe,0xba,0x39,0x55,0x2c,0x57,0x4f,0xd3,0x48,0x5b,0xbb,0x57, + 0xa0,0x9d,0x23,0x7a,0x04,0x8a,0x27,0xef,0xb1,0x33,0x54,0xb3,0xcf,0x4f,0x00,0xc9, + 0x65,0x32,0xd9,0x25,0xc8,0x74,0x00,0x67,0xd8,0xbc,0x7d,0xd0,0x96,0x41,0xd7,0xa3, + 0xcb,0xc0,0x72,0x72,0xde,0xbf,0x3d,0xe5,0x45,0x46,0x58,0x73,0xf3,0xd4,0x42,0x8c, + 0x70,0x6c,0x3f,0xda,0x6b,0x64,0x97,0xec,0x7a,0x1e,0x79,0xa3,0x26,0xf6,0x52,0xac, + 0x59,0xc5,0x9b,0x83,0x9c,0xa1,0xb3,0xd0,0x89,0x40,0x58,0x1e,0x27,0xdc,0xa4,0xad, + 0xa6,0x08,0x06,0x56,0x64,0xa2,0x65,0x70,0x12,0xd0,0x6f,0x40,0xaf,0xc7,0xab,0x30, + 0xc5,0x41,0x3e,0x4a,0xbc,0x19,0xd3,0xf9,0xb6,0x58,0xd1,0xa3,0x72,0x42,0x3d,0xd2, + 0xb5,0x07,0x13,0xbf,0xd2,0x8a,0xce,0xd6,0xde,0xc0,0x33,0xcb,0x86,0x5a,0xcd,0x91, + 0x15,0x6d,0x4a,0x17,0x7a,0x53,0xa5,0xd7,0x33,0x21,0xdf,0xfa,0x3b,0xfb,0xd8,0xf9, + 0x98,0xe5,0xc1,0x79,0xa5,0xac,0xb8,0x23,0xce,0x77,0xbe,0x95,0xff,0xc2,0x96,0x7c, + 0x01,0x0a,0x5f,0xba,0x38,0x13,0x6c,0xde,0x92,0x61,0xa2,0xa2,0x55,0x7e,0x99,0x8d, + 0x42,0x70,0x22,0xf8,0x72,0xbc,0xfe,0xdc,0xcb,0x3d,0xd4,0x6f,0xcd,0x34,0xf5,0x5a, + 0x9a,0xa5,0xfe,0x9a,0x99,0xd8,0xc7,0xf2,0x48,0xb1,0x58,0x5d,0x5f,0xa7,0xa6,0x17, + 0x34,0x33,0x61,0x2a,0x94,0xd7,0xe7,0x4f,0x4b,0xf3,0xd4,0xd3,0xe6,0xae,0xd7,0xab, + 0xed,0x89,0x4a,0x3a,0xb8,0x46,0x7f,0xa6,0x6e,0xeb,0x4f,0x7d,0xf1,0xc2,0x69,0x31, + 0xc4,0x8b,0xac,0x92,0xe4,0x8e,0x88,0x36,0x07,0xce,0xde,0xdc,0x62,0x9f,0x1e,0xfa, + 0x4c,0xf1,0xbb,0xa4,0x7e,0xbf,0x7f,0x5a,0xaa,0x1e,0x64,0xcb,0x65,0x91,0x24,0x93, + 0xa3,0x33,0x27,0xac,0xe9,0xd0,0x5e,0x46,0x89,0x74,0x8e,0x9e,0x53,0xea,0x3f,0x1d, + 0x9d,0x07,0x6b,0x46,0xc8,0xc0,0xaf,0x1d,0x59,0xeb,0x4f,0xc6,0xb4,0x71,0x94,0x8f, + 0x50,0x8b,0x6c,0xb2,0xa2,0x1c,0x50,0xe5,0xc9,0x31,0x59,0x88,0xb7,0x8b,0x16,0x1a, + 0xb0,0x09,0xdf,0x8c,0x7e,0xa8,0x4c,0x9f,0x1c,0x09,0x73,0x7e,0x5f,0xaf,0x59,0xb8, + 0x7c,0x74,0x16,0x21,0xde,0x3c,0xcb,0x01,0x39,0xc9,0x75,0x4a,0x5c,0x92,0x84,0x07, + 0xe4,0x4a,0x2f,0xaf,0xaf,0xf8,0x50,0x82,0x58,0x9c,0xd2,0x65,0x4b,0x09,0x20,0xad, + 0xce,0x86,0xf2,0x7e,0xe4,0xcc,0xcc,0xc0,0x6b,0x72,0xf1,0xc5,0x1d,0x7f,0x79,0x30, + 0x93,0x07,0xa2,0x41,0x61,0x37,0x37,0x9d,0x8e,0x66,0x49,0xcc,0x6a,0xa1,0x21,0x99, + 0x69,0xeb,0x87,0x7a,0xbb,0x3d,0x24,0xb5,0x6c,0x02,0x1c,0x96,0x24,0x4d,0xe5,0x49, + 0xb5,0xd4,0x13,0xac,0x6c,0xec,0x82,0x65,0xa6,0xdb,0xa7,0xdd,0xa5,0x30,0x4f,0xb5, + 0x33,0x16,0x73,0x69,0x2a,0xf2,0x83,0x12,0x7a,0xe8,0x0a,0xa6,0x0d,0xf7,0xa8,0x0b, + 0x44,0x47,0x15,0x12,0xf2,0x98,0x02,0x07,0x57,0xcb,0x2c,0x60,0xae,0xd5,0x14,0xf2, + 0x39,0x3d,0xb9,0xc7,0xa4,0xae,0xf4,0x56,0x8a,0xee,0x1d,0xa6,0x12,0x5a,0x3b,0xc8, + 0x49,0x2f,0x58,0x59,0xb7,0x38,0xfc,0x62,0xb7,0x89,0xff,0x56,0x4f,0x8f,0x72,0xed, + 0xc2,0xb8,0x6a,0xbf,0x1a,0x9a,0x78,0xd4,0x27,0x1a,0x15,0xbf,0xdf,0x93,0x80,0xee, + 0xba,0x16,0x56,0xff,0x21,0x26,0x68,0x44,0x97,0xdc,0x72,0x48,0x97,0xf1,0x79,0x2b, + 0xe2,0xe2,0xc1,0xcd,0xe9,0x54,0xba,0x03,0xe7,0xb1,0x2d,0x88,0xb0,0x6a,0x99,0xfb, + 0x6f,0x18,0x56,0x9e,0xf4,0xdc,0x76,0x37,0x0e,0xcd,0xdd,0xd2,0xfb,0x93,0xe5,0xb2, + 0x56,0x2b,0x8f,0xc5,0x17,0x3b,0xcd,0xb5,0x72,0x3b,0xdf,0xc6,0x7a,0x83,0xee,0x7f, + 0x82,0x81,0xdf,0x09,0xbb,0x28,0x93,0xec,0xcb,0x2b,0xac,0x18,0x40,0x88,0xf1,0x2b, + 0xea,0xcc,0x83,0x95,0x0b,0x1d,0xa1,0x41,0xe2,0x04,0x7b,0x73,0xef,0x08,0x7e,0xf0, + 0x27,0xbd,0x16,0x79,0x19,0x87,0xb3,0x6a,0x0a,0x49,0xd0,0xa5,0x08,0x87,0x2d,0x12, + 0xb7,0x09,0x19,0xc7,0xf6,0xb1,0x65,0x59,0x84,0xb2,0xfa,0xac,0xd3,0x2d,0x38,0xec, + 0x97,0xa1,0x4f,0xca,0x1d,0xf9,0x6f,0xfd,0x99,0x91,0x5b,0x88,0x04,0x2a,0xd3,0xde, + 0xe7,0xd6,0x7f,0x1e,0xbc,0x7b,0xdb,0x30,0x6e,0xc0,0x11,0xdf,0x35,0xd2,0xa9,0xdd, + 0xa3,0x8b,0x27,0x79,0x67,0x66,0xab,0x6d,0xeb,0x64,0x6f,0xfb,0x4e,0xbb,0x8b,0x2b, + 0x83,0x0f,0x7b,0xe7,0xff,0xce,0x7e,0x10,0xde,0x37,0xe3,0x85,0xb7,0x71,0xe1,0x8f, + 0xb6,0x0e,0x91,0xdb,0x56,0x76,0xd7,0x7e,0xe8,0x6b,0x77,0xbb,0x62,0xad,0xa1,0xdd, + 0x0f,0x6b,0x96,0xd3,0xfe,0x4e,0x93,0xc2,0x5c,0xe6,0x9b,0x4d,0x14,0x9e,0x25,0x83, + 0x1e,0x8e,0xdd,0x1d,0xcf,0xc2,0xc8,0xb5,0x65,0x9c,0xc1,0x77,0x38,0x63,0xf5,0xc4, + 0xc6,0x9f,0x68,0x5a,0x23,0x8c,0x00,0xa1,0x9f,0x87,0xcc,0x64,0x2c,0x4d,0x89,0x00, + 0x0e,0x4c,0x4e,0xa5,0x87,0x90,0x91,0xeb,0x77,0xf3,0xec,0xc2,0x8b,0xac,0x0e,0x20, + 0x45,0x26,0x67,0x7c,0x76,0xa6,0x1b,0x7b,0xb3,0x8f,0xa7,0x43,0x76,0xbe,0xf4,0xa8, + 0x92,0x46,0x8e,0x55,0xb9,0x24,0x67,0x6b,0xaf,0xe5,0xa7,0x79,0xf9,0x86,0x2a,0x7a, + 0xc4,0x1a,0x2a,0x5e,0x54,0xbb,0x5e,0x7e,0x28,0x2f,0xd9,0xbf,0x72,0x42,0x42,0x47, + 0x8b,0x2c,0x55,0x46,0x4f,0x05,0xc6,0x74,0x54,0x9e,0xfb,0x34,0xec,0xd9,0xbe,0x90, + 0xdd,0x0d,0x04,0x08,0x36,0xed,0x01,0x37,0xd1,0x47,0xc7,0x15,0x56,0x23,0xb7,0x7c, + 0x2c,0xe7,0x2e,0x99,0x79,0x7e,0x21,0x0a,0x6b,0x83,0x63,0x9e,0x75,0x65,0x1b,0x7c, + 0x99,0x46,0xb7,0x88,0xba,0xfd,0xc8,0x38,0xa1,0xee,0xd0,0x73,0xeb,0x11,0x59,0xd5, + 0x7e,0x8b,0x2a,0xe4,0xcb,0xeb,0x5b,0xe3,0x3c,0xcd,0xca,0xc7,0xef,0xa9,0xf3,0xc1, + 0x32,0x24,0x79,0xf1,0x31,0xeb,0x14,0xb7,0xab,0x18,0x44,0xd7,0x10,0x93,0xcb,0x0e, + 0x6f,0x75,0x5b,0x46,0x90,0xf1,0x47,0x19,0x3c,0x4c,0x5e,0xea,0x56,0x4f,0xcf,0x2a, + 0x4b,0x3d,0x85,0x26,0x51,0x69,0x29,0x47,0xb5,0x16,0x57,0x8c,0x1e,0xd5,0xb6,0x99, + 0x6e,0x59,0x0b,0xab,0x94,0x6e,0xed,0x8d,0x2f,0x6f,0x68,0xd1,0xd0,0xdc,0x25,0x3b, + 0x4f,0x9b,0xce,0x72,0xb6,0xac,0x20,0xf3,0x86,0xbe,0x4e,0xfe,0x8c,0x70,0xf6,0xef, + 0xd7,0xc7,0xf9,0x7a,0xab,0x6a,0xfd,0x9c,0x76,0xc6,0x09,0x3b,0x30,0xeb,0xcf,0x58, + 0x49,0xd7,0x95,0x70,0x10,0x7c,0xd7,0xd8,0x19,0x6f,0xa5,0xb1,0x44,0xfd,0xfe,0xf9, + 0x4e,0xf3,0x2b,0x46,0x4d,0x6d,0x5b,0x64,0xd0,0x1d,0xcf,0x3d,0x8a,0xbc,0x52,0x04, + 0x80,0xda,0xe2,0xf2,0xa8,0x2c,0x3d,0xed,0xf3,0x00,0xde,0x82,0x4b,0xeb,0x3f,0x54, + 0x32,0xf8,0x5b,0x0f,0xb7,0xa9,0xe4,0xc4,0x77,0x72,0x05,0x14,0x3d,0x59,0x20,0xac, + 0xb1,0xb9,0x00,0x53,0x6c,0x0b,0x11,0x3d,0xa1,0x8c,0xe5,0x98,0x53,0x36,0x12,0x0c, + 0x16,0x81,0x6b,0xcb,0x1c,0x36,0xb6,0x81,0xa5,0x38,0x01,0x96,0x03,0x68,0x49,0x8c, + 0xa9,0x4e,0xc6,0x55,0xd9,0xc1,0xe4,0x6c,0x9e,0xaf,0x7c,0x59,0x8c,0xf2,0xb9,0xe8, + 0x27,0xba,0x95,0x4e,0x16,0x71,0xfe,0xaa,0x0d,0x46,0x74,0x81,0x01,0x12,0x0e,0xe9, + 0x05,0x68,0x66,0x9d,0x6e,0x05,0x83,0x9f,0x29,0xb6,0xb1,0x84,0xec,0xbe,0x1a,0x5b, + 0xf7,0xd8,0x75,0xc1,0x66,0xf7,0x7f,0xb7,0x7c,0x14,0x4b,0x5e,0x7a,0x3e,0xf0,0x4b, + 0x54,0xf4,0xb1,0x41,0x26,0x76,0x58,0x54,0x5e,0x23,0x38,0x74,0x6d,0x92,0xb0,0x1e, + 0xa4,0x86,0xd2,0xc0,0xfc,0x81,0x7a,0x0d,0xec,0x0e,0x49,0x3d,0x9b,0x10,0x2f,0x9c, + 0x52,0xd7,0x36,0x42,0xb5,0xe9,0x96,0x32,0x78,0x15,0x81,0x9c,0x47,0xfc,0x80,0x36, + 0x82,0x0f,0x4a,0x0c,0xa7,0x13,0x7d,0x27,0xfc,0x15,0xac,0xa1,0x98,0x58,0xa0,0xca, + 0x68,0x5b,0xc3,0xf7,0x56,0x3e,0xd1,0xe6,0xe7,0x8b,0x6b,0xdb,0x3c,0x4d,0xcb,0xff, + 0x37,0x32,0xc8,0xef,0xcf,0x6c,0xbe,0x2c,0xce,0x82,0xae,0x53,0x59,0xd6,0x5d,0x0f, + 0xb2,0xab,0xee,0x90,0x6e,0xd9,0x90,0x49,0x59,0x52,0xa8,0x47,0x73,0x4b,0x77,0xec, + 0xd6,0x38,0xa9,0x0e,0x0c,0x6b,0x6f,0x23,0x1b,0xb8,0xeb,0x3a,0x56,0x65,0x6b,0xe1, + 0x0a,0xb7,0x39,0x62,0x84,0x72,0xc1,0x6b,0x16,0xd2,0x20,0x07,0xd5,0xff,0x6d,0x6d, + 0x31,0x9b,0xd5,0xff,0x32,0xe5,0x82,0x0d,0x5d,0x9f,0x7c,0x37,0x9b,0xcc,0xe6,0xea, + 0xe7,0xb5,0xbd,0xaf,0x67,0xcf,0x85,0xe9,0x5c,0xfc,0x57,0xc9,0xba,0x88,0x3f,0xf4, + 0xc9,0xbd,0x1b,0xd5,0x73,0xd4,0xe5,0xe3,0xa3,0x73,0x0a,0x95,0x70,0xc5,0xfe,0x39, + 0xf7,0x59,0xe9,0x8b,0xf6,0x06,0xa7,0xe0,0x8a,0x62,0x0e,0xce,0xd6,0xe7,0xf7,0x00, + 0xd4,0x9e,0x89,0x1e,0xe1,0x84,0x79,0x47,0x2e,0xda,0x4e,0xba,0x33,0x73,0x17,0x22, + 0x3b,0xa9,0x64,0x04,0x35,0x3b,0x18,0xc1,0x84,0xd4,0x52,0x00,0xf9,0x44,0xce,0xb1, + 0xc2,0x5b,0x5d,0x32,0xbe,0xd6,0xaf,0xaf,0x25,0x1b,0x16,0x83,0x26,0x4f,0x97,0x42, + 0x50,0xa5,0x1c,0xbc,0x61,0x46,0xb9,0x22,0x80,0x18,0xfe,0xd4,0x29,0x03,0x17,0x67, + 0x5a,0x95,0x21,0x9f,0x13,0x87,0x62,0xb7,0x15,0x4c,0x6e,0x78,0x91,0x8b,0xe0,0x12, + 0x30,0x61,0x30,0x2c,0xef,0xa6,0xb7,0x6c,0xbc,0x52,0x69,0x33,0x84,0xdb,0x23,0x1c, + 0xb0,0xd0,0x2a,0xd6,0x65,0xfa,0xb7,0xcd,0xc6,0xb3,0x1d,0x83,0x24,0x5e,0xa5,0x85, + 0xbf,0xf7,0x24,0x98,0x85,0x4b,0x65,0x97,0x45,0x8f,0xae,0x4c,0xaf,0xd8,0xb0,0x60, + 0x54,0x0d,0xfe,0x89,0xed,0x8a,0x19,0x0b,0x71,0xfb,0xc1,0x19,0x0d,0x2d,0x9a,0xd1, + 0x19,0x58,0x00,0xec,0xcf,0xd0,0x38,0x34,0xb4,0xb4,0x52,0xe2,0x5b,0x64,0x65,0x20, + 0x06,0x31,0x80,0x79,0xa4,0x06,0x30,0xd6,0xb5,0x12,0x76,0x6d,0x16,0x2f,0xf4,0x91, + 0xa5,0xbf,0xed,0x9d,0x45,0xb7,0x64,0x39,0xc3,0x22,0x2c,0x47,0xec,0x73,0x71,0x55, + 0xd2,0x0c,0x32,0x7e,0xbf,0x41,0x14,0x51,0xa4,0x76,0x4f,0xda,0x01,0x61,0xa4,0xe0, + 0x02,0xb4,0x82,0x1e,0xcc,0x37,0x44,0x2a,0x98,0xd2,0xbf,0xf6,0x00,0x76,0x21,0x16, + 0x0b,0x07,0x4c,0x16,0xef,0xdd,0x8c,0x10,0x62,0xf9,0x86,0xa7,0xe7,0x5b,0xc6,0x5e, + 0xf8,0x05,0x9e,0x68,0x9f,0x46,0xbf,0x17,0xf3,0xd1,0xf0,0xc5,0xc6,0xff,0x1f,0x8e, + 0x09,0x99,0xed,0x9f,0xd0,0x01,0x00, }; const uint8_t WEBCONFIG_HTML_SUCCESS[] PROGMEM = { diff --git a/src/helpers/esp32/WebConfigServer.cpp b/src/helpers/esp32/WebConfigServer.cpp index 255b50b08..686c12f5d 100644 --- a/src/helpers/esp32/WebConfigServer.cpp +++ b/src/helpers/esp32/WebConfigServer.cpp @@ -2092,6 +2092,8 @@ void WebConfigServer::handleConfigGet(AsyncWebServerRequest* req) { radio["bluetooth_name"] = (const char*)node.bluetooth_name; radio["bluetooth_mac"] = (const char*)node.bluetooth_mac; radio["bluetooth_stealth"] = node.bluetooth_stealth; + static const char* const LOST_REPLY_MODES[] = { "off", "no", "yes" }; + radio["lost_reply"] = LOST_REPLY_MODES[node.lost_reply <= 2 ? node.lost_reply : 0]; radio["lat"] = node.lat; radio["lon"] = node.lon; radio["advert_interval"] = node.advert_interval; @@ -2215,6 +2217,21 @@ void WebConfigServer::handleConfigPost(AsyncWebServerRequest* req) { return; } + if (set.containsKey("lost.reply")) { + NodeSnapshot node = {}; + _cb->getNodeSnapshot(node); + if (!(node.capabilities & CAP_LOST_REPLY)) { + req->send(400, "application/json", "{\"error\":\"setting unavailable\",\"key\":\"lost.reply\"}"); + return; + } + const char* value = set["lost.reply"]; + if (!value || (strcmp(value, "off") != 0 && strcmp(value, "no") != 0 + && strcmp(value, "yes") != 0)) { + req->send(400, "application/json", "{\"error\":\"expected off, no or yes\",\"key\":\"lost.reply\"}"); + return; + } + } + if (_mode == MODE_SETUP && _initial_setup && !set.containsKey("password") && (reboot_after || set.containsKey("wifi.ssid"))) { req->send(400, "application/json", diff --git a/src/helpers/esp32/WebConfigServer.h b/src/helpers/esp32/WebConfigServer.h index ff91b7430..aa67aa0f5 100644 --- a/src/helpers/esp32/WebConfigServer.h +++ b/src/helpers/esp32/WebConfigServer.h @@ -92,6 +92,7 @@ public: CAP_ESPNOW_CHANNEL = 1UL << 15, CAP_BLUETOOTH_MAC = 1UL << 16, CAP_BLUETOOTH_STEALTH = 1UL << 17, + CAP_LOST_REPLY = 1UL << 18, CAP_DELAYS = CAP_RX_DELAY | CAP_TX_DELAY, }; @@ -103,6 +104,7 @@ public: char bluetooth_name[32]; // empty = transport's default device name char bluetooth_mac[24]; // empty = chipset factory address bool bluetooth_stealth; // independent of the address policy + uint8_t lost_reply; // 0=off, 1=no, 2=yes (Companion only) char admin_password[32]; // empty = trusted LAN/no login prompt double lat; double lon; diff --git a/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp b/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp index fa312740a..c746e98e4 100644 --- a/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp +++ b/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp @@ -9,6 +9,9 @@ #include #include #include +#ifndef TEST_SENSOR +#include +#endif #define REQ_TYPE_GET_ACCESS_LIST 0x05 #define REQ_TYPE_GET_TELEMETRY_DATA 0x04 @@ -16,6 +19,9 @@ #define SERVER_RESPONSE_DELAY 300 #define OUT_PATH_UNKNOWN 0xFF #define PERM_ACL_ROLE_MASK 7 +#define PERM_ACL_GUEST 0 +#define PERM_ACL_READ_ONLY 1 +#define PERM_ACL_READ_WRITE 2 #define PERM_ACL_ADMIN 3 namespace mesh { @@ -141,6 +147,7 @@ public: size_t = mesh::CLIENT_ACL_DIRECT_REPLY_CAPACITY); int telemetryPrefix(uint8_t*, size_t); MemoryFS fs; + MemoryFS* _fs = &fs; mesh::RoomAccessPolicy room_access; mesh::LogicalMessageCache<8> recent_room_polls; TARGET_CLASS() { metadata_filesystem = &fs; assert(room_access.load(&fs)); } @@ -223,7 +230,75 @@ static void print_legacy(const uint8_t* body, unsigned count, size_t length) { for (size_t i = 0; i < length; ++i) std::cout << hex[body[i] >> 4] << hex[body[i] & 15]; std::cout << '\n'; } +#ifndef TEST_SENSOR +static void verify_mailbox_access() { + const uint8_t roles[] = {0, 1, 2, 3, 4, 5, 6, 7, 131, 255}; + for (uint8_t permissions : roles) { + for (bool active : {false, true}) { + TARGET_CLASS target; + memset(target.sender.id.pub_key, 0xa1, PUB_KEY_SIZE); + target.sender.permissions = permissions; + target.sender.last_activity = active ? 12 : 0; + uint8_t settings[] = {mesh::ROOM_MAIL_REQUEST_SUBTYPE, 0, 0, 0, 0, 0, 0}; + const int length = request(target, &target.sender, settings, sizeof(settings)); + const uint8_t role = permissions & PERM_ACL_ROLE_MASK; + const bool admitted = role == PERM_ACL_READ_ONLY || role == PERM_ACL_READ_WRITE + || role == PERM_ACL_ADMIN || (role == PERM_ACL_GUEST && active); + if (!admitted) assert(length == 0); + else { + assert(length == 17 && target.reply_data[4] == mesh::ROOM_MAIL_REQUEST_SUBTYPE); + assert(target.reply_data[5] == 0 && target.reply_data[6] == 0); + assert(target.reply_data[11] == 0); // Default closed mailbox. + } + assert(target.fs.files.empty()); // A read never provisions an inbox. + + uint8_t recipient[PUB_KEY_SIZE]; memset(recipient, 0xb2, sizeof(recipient)); + uint8_t provision[] = {mesh::ROOM_MAIL_REQUEST_SUBTYPE, 8, 0, 0, 0, 0, 1}; + uint8_t reply[32] = {}; + assert(mesh::handleRoomMailRequest(&target.fs, recipient, false, 1, + provision, sizeof(provision), reply, sizeof(reply)) == 7 && reply[2] == 0); + std::vector send(38); + send[0] = mesh::ROOM_MAIL_REQUEST_SUBTYPE; send[1] = 3; + memcpy(send.data() + 2, recipient, PUB_KEY_SIZE); + mesh::room_mail_protocol_detail::put16(send.data() + 34, 2); + send[36] = 'h'; send[37] = 'i'; + const int sent = request(target, &target.sender, send.data(), send.size()); + const bool can_send = role == PERM_ACL_READ_WRITE || role == PERM_ACL_ADMIN; + if (!admitted) assert(sent == 0); + else { + assert(sent == 11 && target.reply_data[5] == 3); + assert(target.reply_data[6] == (can_send ? 0 : 6)); + } + mesh::RoomMailStatus status; + assert(mesh::getRoomMailStatus(&target.fs, recipient, status) == mesh::RoomMailResult::Success); + assert(status.count == unsigned(admitted && can_send)); + } + } + TARGET_CLASS banned; + memset(banned.sender.id.pub_key, 0xa1, PUB_KEY_SIZE); + banned.sender.permissions = PERM_ACL_READ_WRITE; + uint8_t recipient[PUB_KEY_SIZE]; memset(recipient, 0xb2, sizeof(recipient)); + assert(banned.room_access.addBan(&banned.fs, recipient) == mesh::RoomAccessPolicy::BanResult::Saved); + std::vector send(38); + send[0] = mesh::ROOM_MAIL_REQUEST_SUBTYPE; send[1] = 3; + memcpy(send.data() + 2, recipient, PUB_KEY_SIZE); + mesh::room_mail_protocol_detail::put16(send.data() + 34, 2); + send[36] = 'h'; send[37] = 'i'; + assert(request(banned, &banned.sender, send.data(), send.size()) == 7); + assert(banned.reply_data[6] == 6); + assert(!banned.fs.files.count(mesh::ROOM_MAIL_PRIMARY_PATH)); + for (size_t length = 0; length < send.size(); ++length) { + std::vector truncated(send.begin(), send.begin() + length); + const int used = request(banned, &banned.sender, truncated.data(), length); + assert(used == 0 || used == 7); + } + std::cout << "Room mailbox guest, reader, writer and recipient-ban boundaries passed\n"; +} +#endif int main() { +#ifndef TEST_SENSOR + verify_mailbox_access(); +#endif uint8_t query[] = {REQ_TYPE_GET_ACCESS_LIST, 0, 0}; uint8_t secret[PUB_KEY_SIZE] = {}; unsigned paths = 0; diff --git a/test/fixtures/companion_lost_reply.cpp b/test/fixtures/companion_lost_reply.cpp new file mode 100644 index 000000000..54957363c --- /dev/null +++ b/test/fixtures/companion_lost_reply.cpp @@ -0,0 +1,491 @@ +#include "CompanionFeatures.h" +#include "production_lost_include.inc" +#include +#include +#include +#include +#include +#include +#include + +#define PUB_KEY_SIZE 32 +#define MAX_HASH_SIZE 8 +#define MAX_TEXT_LEN 150 +#define MAX_FRAME_SIZE 172 +#define EXPECTED_ACK_TABLE_SIZE 8 +#define TXT_TYPE_PLAIN 0 +#define TXT_TYPE_CLI_COMMAND 1 +#define TXT_TYPE_SIGNED_PLAIN 2 +#define ADV_TYPE_CHAT 1 +#define ADV_TYPE_ROOM 3 +#define OUT_PATH_UNKNOWN 255 +#define MSG_SEND_FAILED 0 +#define MSG_SEND_SENT_FLOOD 1 +#define MSG_SEND_SENT_DIRECT 2 +#define PAYLOAD_TYPE_TXT_MSG 2 +#define PAYLOAD_TYPE_ACK 3 +#define PAYLOAD_TYPE_RESPONSE 1 +#define ONE_KEY_DM_ID_SIZE 8 +#include "production_constants.inc" + +namespace mesh { +struct Identity { uint8_t pub_key[PUB_KEY_SIZE] = {}; }; +struct GroupChannel { uint8_t secret[16] = {}; }; +struct Packet { + static bool isValidPathLen(uint8_t value) { return value != 254; } + uint8_t path_len = 0; + uint8_t path[8] = {}; + uint8_t payload[5 + MAX_TEXT_LEN + 1] = {}; + uint8_t recipient[PUB_KEY_SIZE] = {}; + bool flood = false, used = false, do_not_retransmit = false; + uint8_t hash = 0; + void calculatePacketHash(uint8_t* out) { memset(out, hash, MAX_HASH_SIZE); } + bool isRouteFlood() const { return flood; } + bool isRouteDirect() const { return !flood; } + int getSNR() const { return 1; } + int getPathHashCount() const { return 0; } + void markDoNotRetransmit() { do_not_retransmit = true; } +}; +namespace Utils { +static void sha256(uint8_t* out, size_t count, const uint8_t* a, size_t alen, + const uint8_t* b, size_t blen) { + // Hashing/encryption are the transport boundary; production composes the + // actual private payload and retains its independently matched ACK here. + uint32_t value = 2166136261U; + for (size_t i = 0; i < alen; ++i) value = (value ^ a[i]) * 16777619U; + for (size_t i = 0; i < blen; ++i) value = (value ^ b[i]) * 16777619U; + for (size_t i = 0; i < count; ++i) out[i] = uint8_t(value >> ((i % 4) * 8)); +} +} +} + +struct ContactInfo { + mesh::Identity id; + uint8_t type = ADV_TYPE_CHAT, out_path_len = 0, flags = 0; + bool transient = false; + uint32_t lastmod = 0; + uint8_t path[8] = {}; + const uint8_t* getPath() const { return path; } + const uint8_t* getSharedSecret(const mesh::Identity&) const { return id.pub_key; } + bool isRemoteCLIAllowed() const { return flags & 0x10; } + bool setPath(const uint8_t* value, uint8_t length) { + if (!mesh::Packet::isValidPathLen(length) || length > sizeof(path)) return false; + memcpy(path, value, length); out_path_len = length; return true; + } +}; +struct Clock { + uint32_t now = 0, sequence = 100; + uint32_t getMillis() const { return now; } + uint32_t getCurrentTimeUnique() { return sequence++; } + uint32_t getCurrentTime() const { return sequence; } +}; +struct Manager { int free = 16; int getFreeCount() const { return free; } }; +struct BaseSerialInterface { + unsigned writes = 0; + bool isConnected() const { return false; } + bool isReplyRouteAvailable(BaseSerialInterface*) const { return true; } + size_t writeFrameToRoute(BaseSerialInterface*, const uint8_t*, size_t n) { ++writes; return n; } + size_t writeFrame(const uint8_t*, size_t n) { ++writes; return n; } +}; +struct UI { void setMessageNotificationOverride(bool) {} }; +struct Terminal { + void print(const char*) {} + template void printf(const char*, T...) {} +}; +struct TerminalDisplay { bool shouldShowChannel(bool) const { return false; } }; +struct ChannelDetails { char name[32] = {}; }; +static const uint8_t EMERGENCY_CHANNEL_SECRET[16] = {1}; +struct Random { int nextInt(int, int) { return 0; } }; +struct LostSnapshot { uint8_t lost_reply = 0; uint32_t capabilities = 0; }; +struct WebConfigServer { static constexpr uint32_t CAP_LOST_REPLY = 1UL << 18; }; + +class MyMesh { +public: + struct Prefs { uint8_t lost_reply = 0; } _prefs; + Clock clock, *_ms = &clock; + Manager manager, *_mgr = &manager; + BaseSerialInterface serial, *_serial = &serial; + UI ui, *_ui = &ui; + mesh::Identity self_id; +#include "production_lost_state.inc" +#include "production_entry.inc" + AckTableEntry expected_ack_table[EXPECTED_ACK_TABLE_SIZE] = {}; + unsigned long txt_send_timeout = 0, next_ack_expiry = 0; + bool has_next_ack_expiry = false; + uint8_t next_ack_idx = 3; + std::vector contacts; + mesh::Packet packets[16]; + mesh::Packet incoming; + unsigned queued = 0, dropped = 0, sends = 0, saves = 0, cancellations = 0; + unsigned normal_marks = 0, contact_writes = 0, replacements = 0; + unsigned path_updates = 0, path_retries = 0, contact_responses = 0; + bool queue_available = true, radio_available = true, allocation_available = true; + bool save_available = true, delivered = false; + std::string last_answer; + uint8_t last_recipient[PUB_KEY_SIZE] = {}; + uint8_t out_frame[MAX_FRAME_SIZE] = {}; + uint8_t app_target_ver = 3; + uint16_t emergency_client_repeats[EMERGENCY_CLIENT_REPEAT_TABLE_SIZE] = {}; + uint8_t emergency_client_repeat_next = 0; + mesh::Packet* emergency_client_repeat_packet = NULL; + uint16_t emergency_client_repeat_key = 0; + unsigned long emergency_client_repeat_send_at = 0; + Random random; + Terminal terminal; + TerminalDisplay _terminal_display; + uint8_t held_dm_count = 0; + unsigned offline_queue_len = 0; + struct Held { uint8_t sender_key[32] = {}, id[ONE_KEY_DM_ID_SIZE] = {}; } held_dms[1]; + + MyMesh() { contacts.reserve(8); } + ContactInfo& contact(uint8_t key, uint8_t suffix = 0) { + contacts.emplace_back(); + contacts.back().id.pub_key[0] = key; + contacts.back().id.pub_key[31] = suffix; + return contacts.back(); + } + void receive(ContactInfo& from, uint32_t timestamp, const char* question = "Am I lost?") { + onMessageRecv(from, &incoming, timestamp, question); + } + bool isTransientContact(const ContactInfo& value) const { return value.transient; } + ContactInfo* lookupPersistentContactByPubKey(const uint8_t* key, int n) { + assert(n == PUB_KEY_SIZE); + for (ContactInfo& c : contacts) if (!c.transient && memcmp(c.id.pub_key, key, n) == 0) return &c; + return NULL; + } + void markConnectionActive(const ContactInfo&) { ++normal_marks; } + void scheduleContactWrite(const ContactInfo&) { ++contact_writes; } + bool queueMessage(const ContactInfo&, uint8_t, mesh::Packet*, uint32_t, + const uint8_t*, size_t, const char*) { + if (queue_available) { ++queued; return true; } ++dropped; return false; + } + bool addToOfflineQueue(const uint8_t*, int) { ++queued; return true; } + bool savePrefs() { ++saves; return save_available; } + void makeOneKeyDMId(uint8_t* id, uint32_t timestamp, const char*) { memset(id, uint8_t(timestamp), ONE_KEY_DM_ID_SIZE); } + bool wasDeliveredOneKeyDM(const uint8_t*, const uint8_t*) { return delivered; } + void removeHeldOneKeyDM(uint8_t) { held_dm_count = 0; } + unsigned getOfflineQueueCapacity() const { return 1; } + void rememberDeliveredOneKeyDM(const uint8_t*, const uint8_t*) {} + bool hasTerminalOutput() const { return false; } + Terminal& terminalOutput() { return terminal; } + void rememberOneKeyAck(ContactInfo&) {} + uint8_t findChannelIdx(const mesh::GroupChannel&) { return 0; } + bool getChannel(int, ChannelDetails&) { return false; } + uint16_t emergencyClientRepeatKey(mesh::Packet*) { return 0; } + bool hasEmergencyClientRepeat(uint16_t) { return false; } + mesh::Packet* obtainNewPacket() { return NULL; } + Random* getRNG() { return &random; } + Clock* getRTCClock() { return &clock; } + unsigned long futureMillis(int millis) const { return uint32_t(clock.now + millis); } + uint32_t getTransmitAirtime(mesh::Packet*) { return 10; } + uint32_t calcFloodTimeoutMillisFor(uint32_t) { return 6000; } + uint32_t calcDirectTimeoutMillisFor(uint32_t, uint8_t) { return 3000; } + bool checkConnectionsAck(const uint8_t*, ContactInfo*& peer) { peer = NULL; return false; } + bool canMutateContacts() const { return true; } + void onContactPathUpdated(const ContactInfo&) { ++path_updates; } + void onContactResponse(const ContactInfo&, uint8_t*, uint8_t) { ++contact_responses; } + void handleReturnPathRetry(const ContactInfo&, const uint8_t*, uint8_t) { ++path_retries; } + bool hasActiveRetries(const uint8_t*) const { return false; } + void cancelActiveRetries(const uint8_t*) { ++cancellations; } + void replaceActiveRetries(mesh::Packet*, const uint8_t*) { ++replacements; } + void replaceActiveMessageRetries(mesh::Packet*, const uint8_t*, uint32_t) { ++replacements; } + mesh::Packet* createDatagram(uint8_t type, const mesh::Identity& to, + const uint8_t*, const uint8_t* data, int len) { + assert(type == PAYLOAD_TYPE_TXT_MSG); + if (!allocation_available) return NULL; + for (mesh::Packet& p : packets) if (!p.used) { + p.used = true; --manager.free; + memset(p.payload, 0, sizeof(p.payload)); memcpy(p.payload, data, len); + memcpy(p.recipient, to.pub_key, 32); p.hash = uint8_t(clock.sequence); + return &p; + } + return NULL; + } + void releasePacket(mesh::Packet* p) { if (p->used) { p->used = false; ++manager.free; } } + bool sendFloodScoped(const ContactInfo&, mesh::Packet* p, uint32_t) { return send(p); } + bool sendDirect(mesh::Packet* p, const uint8_t*, uint8_t, uint32_t) { return send(p); } + bool send(mesh::Packet* p) { + if (radio_available) { + ++sends; last_answer = reinterpret_cast(p->payload + 5); + memcpy(last_recipient, p->recipient, 32); + assert(p->payload[4] == TXT_TYPE_PLAIN); + } + releasePacket(p); return radio_available; + } + void clearExpectedAck(AckTableEntry&, bool = true); + void expireExpectedAcks(); + bool processAck(const uint8_t*, ContactInfo*&); + void onAckRecv(mesh::Packet*, uint32_t); + bool onContactPathRecv(ContactInfo&, uint8_t*, uint8_t, uint8_t*, uint8_t, + uint8_t, uint8_t*, uint8_t); + void snapshot(LostSnapshot&); + void onMessageRecv(const ContactInfo&, mesh::Packet*, uint32_t, const char*); + void onCLICommandRecv(const ContactInfo&, mesh::Packet*, uint32_t, const char*, char*); + bool onSignedMessageRecv(const ContactInfo&, mesh::Packet*, uint32_t, const uint8_t*, const char*); + void onChannelMessageRecv(const mesh::GroupChannel&, mesh::Packet*, uint32_t, const char*); + bool handleDirectCommand(const char*, char*, size_t); + bool handleCommand(const char*, uint32_t, char*); + mesh::Packet* composeMsgPacket(const ContactInfo&, uint32_t, uint8_t, const char*, uint32_t&); + int sendMessage(const ContactInfo&, uint32_t, uint8_t, const char*, uint32_t&, uint32_t&, + uint8_t* = NULL, const uint8_t* = NULL, const uint8_t* = NULL, + uint32_t = 0); + int sendMessageDetached(const ContactInfo&, uint32_t, const char*, uint32_t&, + uint32_t&, uint8_t*); +}; + +#include "production_methods.inc" + +#if MESH_ENABLE_LOST_REPLY +static void matchingAndOrdinaryInbox() { + for (const char* text : {"am i lost", "Am I lost?", "\t AM I LOST? \r\n", "\vam i lost\f"}) { + MyMesh m; ContactInfo& peer = m.contact(1); m._prefs.lost_reply = 2; + m.receive(peer, 7, text); + assert(m.sends == 1 && m.last_answer == "Yes" && m.queued == 1); + assert(m.last_recipient[0] == 1 && m.serial.writes == 0); + assert(m.has_next_ack_expiry && m.expected_ack_table[0].reply_route == NULL); + } + for (const char* text : {"", "a", "am i los", "am i lost??", "am i lost ?", "am i lost?", + "please am i lost?", "am i lost? yes", "am i lost\n?", "Yes", "No", + "!mail send 0123 Am I lost?", "set lost.reply yes", "am i lost\xc2\xa0"}) { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + m.receive(peer, 7, text); assert(m.sends == 0 && m.queued == 1); + } + for (uint8_t setting : {uint8_t(0), uint8_t(255)}) { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = setting; + m.receive(peer, 7); assert(m.sends == 0 && m.queued == 1); + } + MyMesh full; auto& peer = full.contact(1); full._prefs.lost_reply = 1; + LostSnapshot saved; full.snapshot(saved); + assert(saved.lost_reply == 1 && (saved.capabilities & WebConfigServer::CAP_LOST_REPLY)); + full.queue_available = false; full.offline_queue_len = full.getOfflineQueueCapacity(); + for (uint32_t question = 1; question <= 8; ++question) { + full.clock.now = question * 60000; full.receive(peer, question); + } + assert(full.sends == 8 && full.last_answer == "No" && full.dropped == 8); +#if MESH_ENABLE_ONE_KEY_DM + MyMesh held; auto& h = held.contact(2); held._prefs.lost_reply = 2; + held.queue_available = false; held.offline_queue_len = 1; held.held_dm_count = 1; + memcpy(held.held_dms[0].sender_key, h.id.pub_key, 32); + held.makeOneKeyDMId(held.held_dms[0].id, 7, "Am I lost?"); + held.receive(h, 7); assert(held.sends == 1); + held.delivered = true; held.clock.now = 60000; held.receive(h, 7); assert(held.sends == 1); +#endif +} + +static void admissionAndLoops() { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + for (uint8_t type : {uint8_t(0), uint8_t(2), uint8_t(ADV_TYPE_ROOM)}) { + peer.type = type; m.receive(peer, 7); assert(m.sends == 0); + } + peer.type = ADV_TYPE_CHAT; peer.transient = true; m.receive(peer, 7); assert(m.sends == 0); + peer.transient = false; + ContactInfo unknown; unknown.id.pub_key[0] = 2; m.receive(unknown, 7); assert(m.sends == 0); + ContactInfo collision = peer; collision.id.pub_key[31] = 1; + m.receive(collision, 7); assert(m.sends == 0); + uint8_t prefix[4] = {}; m.onSignedMessageRecv(peer, &m.incoming, 7, prefix, "Am I lost?"); + mesh::GroupChannel channel; m.onChannelMessageRecv(channel, &m.incoming, 7, "Am I lost?"); + char reply[160] = {}; m.onCLICommandRecv(peer, &m.incoming, 7, "Am I lost?", reply); + peer.flags = 0x10; reply[0] = 0; + m.onCLICommandRecv(peer, &m.incoming, 7, "Am I lost?", reply); + assert(m.sends == 0); + m.receive(peer, 7); assert(m.sends == 1); + m.receive(peer, 8, "Yes"); m.receive(peer, 9, "No"); assert(m.sends == 1); +} + +static void retriesCooldownAndFullKeys() { + MyMesh m; auto& one = m.contact(1); auto& same_prefix = m.contact(1, 1); + m._prefs.lost_reply = 2; + m.receive(one, 7); assert(m.sends == 1); + for (uint32_t time : {uint32_t(1), uint32_t(59999), uint32_t(60000), uint32_t(3600000)}) { + m.clock.now = time; m.receive(one, 7); assert(m.sends == 1); + } + m.clock.now = 59999; m.receive(one, 8); assert(m.sends == 1); + m.clock.now = 60000; m.receive(one, 8); assert(m.sends == 2); + m.clock.now = 69999; m.receive(same_prefix, 8); assert(m.sends == 2); + m.clock.now = 70000; m.receive(same_prefix, 8); assert(m.sends == 3 && m.last_recipient[31] == 1); + m.clock.now = 120000; m.receive(one, 9); assert(m.sends == 4); + using mesh::companion::LostReplyLimiter; + LostReplyLimiter limiter; + uint8_t keys[5][32] = {}; + for (size_t i = 0; i < 5; ++i) keys[i][31] = uint8_t(i); + for (size_t i = 0; i < 4; ++i) { + uint32_t now = uint32_t(i * 10000); + assert(limiter.canReply(keys[i], 1, now)); limiter.rememberReply(keys[i], 1, now); + } + assert(!limiter.canReply(keys[4], 1, 40000)); + assert(!limiter.canReply(keys[0], 2, 59999)); + assert(limiter.canReply(keys[4], 1, 60000)); + LostReplyLimiter wrap; + const uint32_t start = 0xfffffff0U; + wrap.rememberReply(keys[0], 1, start); + assert(!wrap.canReply(keys[0], 2, uint32_t(start + 59999U))); + assert(wrap.canReply(keys[0], 2, uint32_t(start + 60000U))); + assert(!wrap.canReply(keys[1], 1, uint32_t(start + 9999U))); + assert(wrap.canReply(keys[1], 1, uint32_t(start + 10000U))); +} + +static void queueReserveUserOwnershipAndAck() { + MyMesh normal; auto& ordinary = normal.contact(3); + normal.clock.now = 100; normal.txt_send_timeout = 42; + uint32_t expected = 0, timeout = 0; + assert(normal.sendMessage(ordinary, 1, 0, "ordinary", expected, timeout) != MSG_SEND_FAILED); + assert(expected != 0 && normal.txt_send_timeout == normal.futureMillis(timeout)); + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + auto& user = m.expected_ack_table[0]; + user.ack = 10; user.expires_at = 123456; user.msg_sent = 20; + user.contact = &peer; user.reply_route = &m.serial; + user.retry_key[0] = 31; user.text_fingerprint[0] = 47; + const auto snapshot = user; + m.txt_send_timeout = 654321; + m.receive(peer, 7); + assert(m.sends == 1 && m.txt_send_timeout == 654321 && m.next_ack_idx == 3); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0 && m.replacements == 0); + auto& automatic = m.expected_ack_table[1]; + assert(automatic.ack != 0 && automatic.contact == &peer && automatic.reply_route == NULL); + uint32_t ack = automatic.ack; ContactInfo* matched = NULL; + assert(m.processAck(reinterpret_cast(&ack), matched)); + assert(matched == &peer && automatic.ack == 0 && m.cancellations == 1); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0 && m.serial.writes == 0); + assert(!m.processAck(reinterpret_cast(&ack), matched)); + for (auto& entry : m.expected_ack_table) { entry.ack = 1; entry.expires_at = 123456; } + m.clock.now = 60000; m.receive(peer, 8); assert(m.sends == 1); + m.expected_ack_table[1].ack = 0; + for (int available : {0, 1, 2}) { + m.manager.free = available; m.receive(peer, 8); assert(m.sends == 1); + } + m.manager.free = 3; m.receive(peer, 8); assert(m.sends == 2); + assert(m.txt_send_timeout == 654321 && m.replacements == 0); + for (int failure = 0; failure < 3; ++failure) { + MyMesh f; auto& p = f.contact(1); f._prefs.lost_reply = 1; f.txt_send_timeout = 1234; + if (failure == 0) f.allocation_available = false; + if (failure == 1) f.radio_available = false; + if (failure == 2) p.out_path_len = 254; + f.receive(p, 7); assert(f.sends == 0 && f.txt_send_timeout == 1234); + assert(f.manager.free == 16 && f.expected_ack_table[0].ack == 0); + f.allocation_available = true; f.radio_available = true; p.out_path_len = OUT_PATH_UNKNOWN; + f.receive(p, 7); assert(f.sends == 1 && f.last_answer == "No"); + } +} + +static void automaticAckReceivePreservesUserExpiry() { + for (bool encoded_path : {false, true}) { + for (uint32_t user_deadline : {uint32_t(1000), uint32_t(9000)}) { + MyMesh m; auto& owner = m.contact(1); auto& user_peer = m.contact(2); + m.clock.now = 100; m._prefs.lost_reply = 2; + auto& user = m.expected_ack_table[0]; + user.ack = 10; user.msg_sent = 20; user.expires_at = user_deadline; + user.contact = &user_peer; user.reply_route = &m.serial; + user.retry_key[0] = 31; user.text_fingerprint[0] = 47; + const auto snapshot = user; + m.txt_send_timeout = user_deadline; + m.receive(owner, 7); + auto& automatic = m.expected_ack_table[1]; + const uint32_t automatic_ack = automatic.ack; + assert(automatic_ack != 0 && automatic_ack != user.ack); + assert(m.txt_send_timeout == user_deadline); + assert(m.next_ack_expiry == std::min(user_deadline, automatic.expires_at)); + + mesh::Packet ack_packet; ack_packet.flood = true; + uint8_t ack_bytes[4], path[2] = {3, 4}; + memcpy(ack_bytes, &automatic_ack, sizeof(ack_bytes)); + if (encoded_path) { + assert(m.onContactPathRecv(owner, path, 2, path, 2, + PAYLOAD_TYPE_ACK, ack_bytes, sizeof(ack_bytes))); + assert(m.path_updates == 1 && owner.out_path_len == 2); + } else { + m.onAckRecv(&ack_packet, automatic_ack); + assert(ack_packet.do_not_retransmit && m.path_retries == 1); + } + // BaseChatMesh keeps its existing shared-timer ACK behavior. Companion + // owns each delivery's deadline separately and services it from loop(). + assert(m.txt_send_timeout == 0 && automatic.ack == 0); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0); + assert(m.has_next_ack_expiry && m.next_ack_expiry == user_deadline); + assert(m.cancellations == 1 && m.serial.writes == 0 && m.next_ack_idx == 3); + + // A late duplicate cannot clear a newer shared timer or the user entry. + m.txt_send_timeout = 99999; + if (encoded_path) { + assert(m.onContactPathRecv(owner, path, 2, path, 2, + PAYLOAD_TYPE_ACK, ack_bytes, sizeof(ack_bytes))); + } else { + ack_packet.do_not_retransmit = false; + m.onAckRecv(&ack_packet, automatic_ack); + assert(!ack_packet.do_not_retransmit && m.path_retries == 1); + } + assert(m.txt_send_timeout == 99999 && m.cancellations == 1); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0); + assert(m.has_next_ack_expiry && m.next_ack_expiry == user_deadline); + + // Expiry still works through the actual Companion service without the + // compatibility timer being involved, including after the automatic ACK. + m.txt_send_timeout = 0; + m.clock.now = user_deadline - 1; m.expireExpectedAcks(); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0); + assert(m.has_next_ack_expiry && m.next_ack_expiry == user_deadline); + m.clock.now = user_deadline; m.expireExpectedAcks(); + assert(user.ack == 0 && !m.has_next_ack_expiry && m.next_ack_expiry == 0); + assert(m.serial.writes == 0 && m.cancellations == 1); + } + } +} + +static void localPolicyAndRemoteBoundary() { + MyMesh m; char reply[160] = {}; + assert(m.handleCommand("get lost.reply", 0, reply) && std::string(reply) == "> off"); + for (const char* value : {"no", "yes", "off"}) { + const std::string command = std::string("set lost.reply ") + value; + assert(m.handleCommand(command.c_str(), 0, reply)); + assert(std::string(reply) == std::string("> lost.reply ") + value); + } + assert(m.saves == 3); + for (const char* invalid : {"YES", "on", "yes now", "", "1"}) { + const std::string command = std::string("set lost.reply ") + invalid; + assert(m.handleCommand(command.c_str(), 0, reply)); + assert(std::string(reply).find("Error:") == 0 && m._prefs.lost_reply == 0 && m.saves == 3); + } + m.save_available = false; + assert(m.handleCommand("set lost.reply yes", 0, reply)); + assert(m._prefs.lost_reply == 0 && std::string(reply).find("Error:") == 0); + m.save_available = true; + auto& peer = m.contact(1); peer.flags = 0x10; + for (uint32_t timestamp : {uint32_t(0), uint32_t(1), uint32_t(0xffffffffU)}) { + reply[0] = 0; + m.onCLICommandRecv(peer, &m.incoming, timestamp, "set lost.reply yes", reply); + assert(m._prefs.lost_reply == 0 && m.saves == 4); + reply[0] = 0; + m.onCLICommandRecv(peer, &m.incoming, timestamp, "get lost.reply", reply); + assert(std::string(reply) == "Unknown command"); + } + assert(m.handleCommand("set lost.reply yes", 0, reply) && m._prefs.lost_reply == 2); + m.receive(peer, 7, "set lost.reply no"); assert(m._prefs.lost_reply == 2 && m.saves == 5 && m.sends == 0); +} +#else +// The actual gated MyMesh header fragment supplies neither runtime state nor +// a responder method in this build. The callbacks still admit normal text. +static void excludedFeature() { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + for (uint32_t poll = 0; poll < 8; ++poll) { + m.clock.now = poll * 60000; m.receive(peer, poll); + } + assert(m.sends == 0 && m.queued == 8 && m.normal_marks == 8); + char reply[160] = {}; + for (const char* command : {"get lost.reply", "set lost.reply yes", "set lost.reply no", "set lost.reply off"}) { + assert(!m.handleCommand(command, 0, reply)); + assert(m.saves == 0 && m._prefs.lost_reply == 2 && reply[0] == 0); + } + LostSnapshot hidden; m.snapshot(hidden); + assert(hidden.lost_reply == 0 && !(hidden.capabilities & WebConfigServer::CAP_LOST_REPLY)); +} +#endif + +int main() { +#if MESH_ENABLE_LOST_REPLY + matchingAndOrdinaryInbox(); admissionAndLoops(); retriesCooldownAndFullKeys(); + queueReserveUserOwnershipAndAck(); automaticAckReceivePreservesUserExpiry(); + localPolicyAndRemoteBoundary(); +#else + excludedFeature(); +#endif + std::puts("PASS: Companion lost reply production paths"); +} diff --git a/test/fixtures/companion_prefs_storage/legacy_loader.inc b/test/fixtures/companion_prefs_storage/legacy_loader.inc index 1f5ef925c..ef6dc26b3 100644 --- a/test/fixtures/companion_prefs_storage/legacy_loader.inc +++ b/test/fixtures/companion_prefs_storage/legacy_loader.inc @@ -1,5 +1,6 @@ // Frozen sequential preference serializer from 54e5b0b99. -// Independent of the new storage table; keep its historical field order. +// Independent of the new storage table; historical fields stay unchanged. +// New append-only tails are added explicitly to this scalar reference. bool DataStore::loadPrefsLegacy(const char *filename, CompanionNodePrefs& _prefs, double& node_lat, double& node_lon) { @@ -13,6 +14,7 @@ bool DataStore::loadPrefsLegacy(const char *filename, // Older images have no independent debug preference. Never inherit a // runtime-on value when loading one of those images. loaded_prefs.usb_debug_enabled = 0; + loaded_prefs.lost_reply = 0; double loaded_lat = node_lat; double loaded_lon = node_lon; // The original image ended after ble_pin at byte 84. Later releases only @@ -81,6 +83,13 @@ bool DataStore::loadPrefsLegacy(const char *filename, 332, #else 235, +#endif +#ifdef TBEAM_1W + 243, +#elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) + 333, +#else + 236, #endif }; const uint32_t prefs_size = file.size(); @@ -229,6 +238,7 @@ bool DataStore::loadPrefsLegacy(const char *filename, sizeof(loaded_prefs.gps_sync_interval_hours)); readOptionalField(&loaded_prefs.usb_debug_enabled, sizeof(loaded_prefs.usb_debug_enabled)); + readOptionalField(&loaded_prefs.lost_reply, sizeof(loaded_prefs.lost_reply)); // Any bytes left over form only part of a historically appended field. // Preserve the file and defaults rather than treating that tail as EOF. @@ -237,6 +247,7 @@ bool DataStore::loadPrefsLegacy(const char *filename, file.close(); if (!success) return false; loaded_prefs.usb_debug_enabled = loaded_prefs.usb_debug_enabled == 1 ? 1 : 0; + loaded_prefs.lost_reply = loaded_prefs.lost_reply <= 2 ? loaded_prefs.lost_reply : 0; _prefs = loaded_prefs; node_lat = loaded_lat; node_lon = loaded_lon; diff --git a/test/fixtures/companion_prefs_storage/legacy_writer.inc b/test/fixtures/companion_prefs_storage/legacy_writer.inc index c30cf87be..8bbe0aa70 100644 --- a/test/fixtures/companion_prefs_storage/legacy_writer.inc +++ b/test/fixtures/companion_prefs_storage/legacy_writer.inc @@ -138,6 +138,7 @@ bool DataStore::savePrefsLegacy(const CompanionNodePrefs& _prefs, double node_la success = success && file.write((uint8_t *)&_prefs.bluetooth_enabled, 1) == 1; success = success && file.write((uint8_t *)&_prefs.gps_sync_interval_hours, 2) == 2; success = success && file.write((uint8_t *)&_prefs.usb_debug_enabled, 1) == 1; + success = success && file.write((uint8_t *)&_prefs.lost_reply, 1) == 1; #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM) || defined(ESP32_PLATFORM) || defined(RP2040_PLATFORM) success = file.commit(success); diff --git a/test/fixtures/room_receive_admission/test.cpp b/test/fixtures/room_receive_admission/test.cpp index d596401e0..e37e28e50 100644 --- a/test/fixtures/room_receive_admission/test.cpp +++ b/test/fixtures/room_receive_admission/test.cpp @@ -132,6 +132,9 @@ struct MyMesh : BaseChatMesh { std::vector> saved; MyMesh() { contacts[0].id.pub_key[0] = 77; contacts[1].id.pub_key[0] = 77; contacts[1].id.pub_key[31] = 1; } void markConnectionActive(const ContactInfo&) { ++active; } + // This admission suite keeps the new optional responder disabled; the + // enabled private reply path executes separately in its production suite. + void maybeReplyToLostQuestion(const ContactInfo&, uint32_t, const char*) {} bool scheduleContactWrite(const ContactInfo& from) { saved.emplace_back(from.sync_since, from.lastmod); return true; } int getOfflineQueueCapacity() const; Frame& offlineQueueFrameAt(int); diff --git a/test/test_client_acl_infrastructure.py b/test/test_client_acl_infrastructure.py index ec4fc8eb8..db990747a 100644 --- a/test/test_client_acl_infrastructure.py +++ b/test/test_client_acl_infrastructure.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 """Execute Room/Sensor ACL handlers and encrypted packet assembly with bounds.""" from pathlib import Path +import os import re import shutil import subprocess @@ -15,6 +16,18 @@ ROOT = Path(__file__).resolve().parents[1] FIXTURE = ROOT / "test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp" +def room_mail_crypto_arguments(role): + if role == "sensor": + return [] + candidates = [Path(os.environ["MESHCORE_CRYPTO_DIR"])] if os.environ.get("MESHCORE_CRYPTO_DIR") else [] + candidates += sorted((ROOT / ".pio/libdeps").glob("*/Crypto")) + crypto = next((path for path in candidates if (path / "SHA256.cpp").is_file()), None) + if crypto is None: + raise RuntimeError("Install rweather/Crypto or set MESHCORE_CRYPTO_DIR (no hash mock fallback)") + return ["-DHOST_BUILD", "-I" + str(crypto), str(crypto / "SHA256.cpp"), + str(crypto / "Hash.cpp"), str(crypto / "Crypto.cpp")] + + def production_methods(role, transform=None): sensor = role == "sensor" path = ROOT / ("examples/simple_sensor/SensorMesh.cpp" if sensor @@ -28,7 +41,8 @@ def production_methods(role, transform=None): else " if (payload[0] == REQ_TYPE_GET_STATUS)") prefix = handler[:begin] # The new board protocol has its own admission/storage regression suite. - # Keep this legacy ACL/telemetry fixture on its original request families. + # Keep the complete mailbox prefix: its role/send gates also protect this + # authenticated request dispatcher, and use the actual protocol and store. if not sensor and "if (payload[0] == mesh::ROOM_BOARD_REQUEST_SUBTYPE)" in prefix: board = extract_braced(prefix, "if (payload[0] == mesh::ROOM_BOARD_REQUEST_SUBTYPE)") prefix = prefix.replace(board, "", 1) @@ -74,7 +88,8 @@ class ClientAclInfrastructureTest(unittest.TestCase): (work / "production.inc").write_text(production_methods(role, transform), encoding="ascii") binary = work / "acl.exe" command = [compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", "-Wno-unused-parameter", - "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), str(FIXTURE), "-o", str(binary)] + "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), + str(FIXTURE), *room_mail_crypto_arguments(role), "-o", str(binary)] if role == "sensor": command.insert(1, "-DTEST_SENSOR=1") if sys.platform.startswith("linux"): command[1:1] = ["-fsanitize=address,undefined", "-fno-sanitize-recover=all", "-fno-pie", "-no-pie"] @@ -87,6 +102,8 @@ class ClientAclInfrastructureTest(unittest.TestCase): run = self.execute(role) self.assertEqual(run.returncode, 0, run.stdout + run.stderr) self.assertIn("Room/Sensor ACL route, input, and permission checks passed", run.stdout) + if role == "room": + self.assertIn("Room mailbox guest, reader, writer and recipient-ban boundaries passed", run.stdout) decoded = 0 for line in run.stdout.splitlines(): if not line.startswith("LEGACY:"): continue @@ -116,6 +133,24 @@ class ClientAclInfrastructureTest(unittest.TestCase): return source.replace(" if (payload_len < 3) return 0;", "", 1) self.assertNotEqual(self.execute("room", old).returncode, 0) + def test_room_mailbox_inactive_guest_cannot_bypass_session_gate(self): + def old(source): + handler = extract_braced(source, "int MyMesh::handleRequest(") + mailbox = extract_braced(handler, "if (payload[0] == mesh::ROOM_MAIL_REQUEST_SUBTYPE)") + guard = "role == PERM_ACL_GUEST && sender->last_activity != 0" + self.assertIn(guard, mailbox) + return source.replace(mailbox, mailbox.replace(guard, "role == PERM_ACL_GUEST"), 1) + self.assertNotEqual(self.execute("room", old).returncode, 0) + + def test_room_mailbox_reader_cannot_bypass_send_permission(self): + def old(source): + handler = extract_braced(source, "int MyMesh::handleRequest(") + mailbox = extract_braced(handler, "if (payload[0] == mesh::ROOM_MAIL_REQUEST_SUBTYPE)") + guard = "role == PERM_ACL_READ_WRITE || role == PERM_ACL_ADMIN" + self.assertIn(guard, mailbox) + return source.replace(mailbox, mailbox.replace(guard, "true"), 1) + self.assertNotEqual(self.execute("room", old).returncode, 0) + def test_old_sensor_truncated_packet_overread_is_rejected(self): def old(source): self.assertIn(" if (len < 5) return;", source) diff --git a/test/test_companion_bluetooth_persistence.py b/test/test_companion_bluetooth_persistence.py index 01bc261b5..26ffc2498 100644 --- a/test/test_companion_bluetooth_persistence.py +++ b/test/test_companion_bluetooth_persistence.py @@ -32,13 +32,13 @@ int main(){ assert(mesh.savePrefs()); const auto on_disk=mesh.store.fs.files["/new_prefs"]; #if defined(TBEAM_1W) - assert(on_disk.size()==242); + assert(on_disk.size()==243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(on_disk.size()==332); + assert(on_disk.size()==333); #else - assert(on_disk.size()==235); + assert(on_disk.size()==236); #endif - const size_t bluetooth_offset=on_disk.size()-4; + const size_t bluetooth_offset=on_disk.size()-5; assert(on_disk[bluetooth_offset]==1&&on_disk.back()==0); // Both choices survive a fresh instance reading the actual on-device image. for(bool enabled : {false,true,false}){ diff --git a/test/test_companion_identity_cli.py b/test/test_companion_identity_cli.py index a7c01bbaf..1483d8e35 100644 --- a/test/test_companion_identity_cli.py +++ b/test/test_companion_identity_cli.py @@ -180,7 +180,7 @@ class CompanionIdentityCliTests(unittest.TestCase): terminal = method(source, 'void MyMesh::handleTerminalCommand(') self.assertIn('handleLocalControlCommand(command, local_reply, sizeof(local_reply))', terminal) self.assertIn('terminalOutput().printf(" -> %s\\r\\n", local_reply);', terminal) - self.assertIn('terminalOutput().print(" get public.key\\r\\n");', terminal) + self.assertIn('" get public.key\\r\\n"', terminal) shared = method(source, 'bool MyMesh::handleCommand(') self.assertIn('if (handleLocalControlCommand(command, reply, reply_capacity)) return true;', shared) self.assertIn('return handleCommand(command, 0, reply);', diff --git a/test/test_companion_lost_reply.py b/test/test_companion_lost_reply.py new file mode 100644 index 000000000..290d5875c --- /dev/null +++ b/test/test_companion_lost_reply.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +"""Exercise actual Companion private receive, reply send and local CLI paths.""" + +from pathlib import Path +import os +import re +import shutil +import subprocess +import sys +import tempfile +import unittest + +from test_replay_reset_integration import extract_braced + +ROOT = Path(__file__).resolve().parents[1] +FIXTURE = ROOT / "test/fixtures/companion_lost_reply.cpp" +SANITIZERS = (["-fsanitize=address,undefined", "-fno-sanitize-recover=all", + "-fno-pie", "-no-pie"] if sys.platform.startswith("linux") else []) + + +class CompanionLostReplyTests(unittest.TestCase): + def test_actual_private_callbacks_reply_transport_and_local_config(self): + compiler = os.environ.get("CXX") or shutil.which("g++") or shutil.which("clang++") + if compiler is None: + self.skipTest("a host C++ compiler is required") + source = (ROOT / "examples/companion_radio/MyMesh.cpp").read_text() + header = (ROOT / "examples/companion_radio/MyMesh.h").read_text() + base = (ROOT / "src/helpers/BaseChatMesh.cpp").read_text() + methods = "#if MESH_ENABLE_LOST_REPLY\n" + extract_braced( + source, "void MyMesh::maybeReplyToLostQuestion(") + "\n#endif\n" + methods += "\n".join(extract_braced(source, signature) for signature in ( + "void MyMesh::onMessageRecv(", + "void MyMesh::onCLICommandRecv(", "bool MyMesh::onSignedMessageRecv(", + "void MyMesh::onChannelMessageRecv(", "void MyMesh::clearExpectedAck(", + "void MyMesh::expireExpectedAcks(", "bool MyMesh::processAck(", + )) + methods += "\n" + "\n".join(extract_braced(base, signature).replace( + "BaseChatMesh::", "MyMesh::") for signature in ( + "mesh::Packet* BaseChatMesh::composeMsgPacket(", + "int BaseChatMesh::sendMessage(", + "int BaseChatMesh::sendMessageDetached(", + "void BaseChatMesh::onAckRecv(", + "bool BaseChatMesh::onContactPathRecv(", + )) + direct = extract_braced(source, "bool MyMesh::handleDirectCommand(") + direct_prefix = direct[:direct.index("#ifdef MESH_BUTTON_AUDIO_HIL")] + methods += "\n" + direct_prefix + " return false;\n}\n" + guard = re.search(r"if \(sender_timestamp == 0 && handleDirectCommand\([^\n]+", source) + self.assertIsNotNone(guard) + methods += "\nbool MyMesh::handleCommand(const char* command, uint32_t sender_timestamp, char* reply) {\n" + methods += " const size_t reply_capacity = 160;\n " + guard.group() + methods += '\n return false;\n}\n' + snapshot = extract_braced(source, "void MyMesh::getNodeSnapshot(") + saved = re.search(r"#if MESH_ENABLE_LOST_REPLY\n s\.lost_reply[\s\S]*?#endif", snapshot) + capability = re.search(r"#if MESH_ENABLE_LOST_REPLY\n s\.capabilities \|=[\s\S]*?#endif", snapshot) + self.assertIsNotNone(saved) + self.assertIsNotNone(capability) + methods += "\nvoid MyMesh::snapshot(LostSnapshot& s) {\n" + saved.group() + "\n" + capability.group() + "\n}\n" + include = re.search(r"#if MESH_ENABLE_LOST_REPLY\n#include \n#endif", header) + state = re.search(r"#if MESH_ENABLE_LOST_REPLY\n mesh::companion::LostReplyLimiter[\s\S]*?#endif", header) + self.assertIsNotNone(include) + self.assertIsNotNone(state) + constants = "\n".join(re.findall( + r"^#define (?:EXPECTED_ACK_[A-Z_]+|PUSH_CODE_SEND_CONFIRMED|RESP_CODE_CHANNEL_MSG_RECV(?:_V3)?|PUSH_CODE_MSG_WAITING|EMERGENCY_CLIENT_REPEAT_[A-Z_]+)\s+.+$", + source, re.MULTILINE)) + with tempfile.TemporaryDirectory(prefix="meshcore-lost-reply-") as directory: + work = Path(directory) + (work / "production_constants.inc").write_text(constants, encoding="ascii") + (work / "production_entry.inc").write_text( + extract_braced(header, "struct AckTableEntry") + ";\n", encoding="ascii") + (work / "production_methods.inc").write_text(methods, encoding="ascii") + (work / "production_lost_include.inc").write_text(include.group(), encoding="ascii") + (work / "production_lost_state.inc").write_text(state.group(), encoding="ascii") + variants = ((0, 0, 0, []), (0, 0, 1, []), (1, 0, 0, []), (1, 1, 0, []), + (0, 0, 0, ["-DSTM32_PLATFORM=1", "-DMESH_ENABLE_LOST_REPLY=1"]), + (0, 0, 0, ["-DSTM32_PLATFORM=1"]), + (0, 0, 0, ["-DMESH_ENABLE_LOST_REPLY=0"])) + for number, (one_key, shared, terminal, feature_flags) in enumerate(variants): + with self.subTest(one_key=one_key, shared=shared, terminal=terminal, flags=feature_flags): + binary = work / f"lost-{number}.exe" + compiled = subprocess.run([ + compiler, "-std=c++11", "-Wall", "-Wextra", "-Werror", + "-Wno-unused-parameter", "-Wno-unused-variable", *SANITIZERS, + f"-DMESH_ENABLE_ONE_KEY_DM={one_key}", + f"-DONE_KEY_DM_SHARED_OFFLINE_QUEUE={shared}", + *(["-DENABLE_USB_INTERFACE=1"] if terminal else []), + *feature_flags, + "-DCOMPANION_FEATURE_NOTIFICATIONS=0", + f"-I{work}", f"-I{ROOT / 'src'}", + f"-I{ROOT / 'examples/companion_radio'}", str(FIXTURE), "-o", str(binary), + ], capture_output=True, text=True, timeout=60) + self.assertEqual(compiled.returncode, 0, compiled.stdout + compiled.stderr) + checked = subprocess.run([str(binary)], capture_output=True, text=True, timeout=20) + self.assertEqual(checked.returncode, 0, checked.stdout + checked.stderr) + self.assertIn("PASS: Companion lost reply production paths", checked.stdout) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_companion_offline_delivery.py b/test/test_companion_offline_delivery.py index c020e453e..5503b91f8 100644 --- a/test/test_companion_offline_delivery.py +++ b/test/test_companion_offline_delivery.py @@ -2,7 +2,9 @@ """Run real Companion inbox downloads against bounded UART/TCP transports.""" from pathlib import Path +import configparser import re +import shlex import subprocess import tempfile import unittest @@ -24,7 +26,9 @@ HARNESS = r''' #include #define DISPLAY_CLASS TestDisplay #define MESH_DEBUG_PRINTLN(...) ((void)0) +#ifndef OFFLINE_QUEUE_SIZE #define OFFLINE_QUEUE_SIZE 256 +#endif @CONSTANTS@ @STREAM@ std::deque WiFiServer::incoming; @@ -284,6 +288,33 @@ int main() { class CompanionOfflineDeliveryTest(unittest.TestCase): + def test_tag_ble_capacity_preserves_contacts_channels_and_full_queue(self): + config = configparser.ConfigParser(interpolation=None) + config.read(ROOT / "variants/rak_wismesh_tag/platformio.ini") + flags = shlex.split(config["env:RAK_WisMesh_Tag_companion_radio_ble"]["build_flags"]) + self.assertEqual(flags.count("OFFLINE_QUEUE_SIZE=240"), 1) + self.assertIn("MAX_CONTACTS=350", flags) + self.assertIn("MAX_GROUP_CHANNELS=40", flags) + # Run the production Full overlay without resolving or building any + # PlatformIO environment. It must explicitly replace a BLE override + # if a future Full recipe inherits the BLE base instead of USB. + result = subprocess.run(["bash", "-c", r''' +set -euo pipefail +source build.sh +pio() { echo "unexpected PlatformIO invocation" >&2; return 127; } +PIO_ENV_PLATFORM_BY_NAME[RAK_WisMesh_Tag_companion_radio_full]=NRF52_PLATFORM +PLATFORMIO_BUILD_FLAGS='-DMAX_CONTACTS=350 -DMAX_GROUP_CHANNELS=40' +pio_env_option_contains() { return 1; } +apply_companion_radio_full_profile RAK_WisMesh_Tag_companion_radio_full RAK_WisMesh_Tag_companion_radio_usb +printf '%s\n' "$PLATFORMIO_BUILD_FLAGS" "$PLATFORMIO_BUILD_UNFLAGS" +'''], cwd=ROOT, text=True, capture_output=True, timeout=20) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + self.assertIn("-DMAX_CONTACTS=350", result.stdout) + self.assertIn("-DMAX_GROUP_CHANNELS=40", result.stdout) + self.assertIn("-DOFFLINE_QUEUE_SIZE=256", result.stdout) + self.assertIn("-DOTA_SHARED_COMPANION_QUEUE=1", result.stdout) + self.assertIn("-D OFFLINE_QUEUE_SIZE=240", result.stdout) + def test_real_download_paths_in_every_queue_layout(self): source = (ROOT / "examples/companion_radio/MyMesh.cpp").read_text() header = (ROOT / "examples/companion_radio/MyMesh.h").read_text() @@ -312,6 +343,7 @@ class CompanionOfflineDeliveryTest(unittest.TestCase): configurations = { "circular": [], "held-dm": ["-DONE_KEY_DM_SHARED_OFFLINE_QUEUE=1"], + "tag-ble": ["-DONE_KEY_DM_SHARED_OFFLINE_QUEUE=1", "-DOFFLINE_QUEUE_SIZE=240"], "mota": ["-DOTA_SHARED_COMPANION_QUEUE=1"], "psram": ["-DESP32_PLATFORM=1", "-DBOARD_HAS_PSRAM=1"], } diff --git a/test/test_companion_preferences_transaction.py b/test/test_companion_preferences_transaction.py index 662db367c..f215b23d2 100644 --- a/test/test_companion_preferences_transaction.py +++ b/test/test_companion_preferences_transaction.py @@ -58,6 +58,7 @@ int main(int argc,char** argv){ original.one_key_dm_enabled=1; original.gps_sync_interval_hours=336; original.usb_debug_enabled=1; + original.lost_reply=2; #ifdef TBEAM_1W strcpy(original.fan_mode,"on");original.fan_lo=33;original.fan_hi=42; #endif @@ -96,6 +97,7 @@ int main(int argc,char** argv){ assert(loaded.one_key_dm_enabled==1); assert(loaded.gps_sync_interval_hours==336); assert(loaded.usb_debug_enabled==1); + assert(loaded.lost_reply==2); #ifdef TBEAM_1W assert(!strcmp(loaded.fan_mode,"on")&&loaded.fan_lo==33&&loaded.fan_hi==42); #endif @@ -162,6 +164,7 @@ int main(int argc,char** argv){ assert(reboot.loadPrefs(loaded,lat,lon)); assert(loaded.freq==original.freq&&loaded.ble_pin==original.ble_pin); assert(lat==47.1&&lon==-122.2); + assert(loaded.lost_reply==2); #endif } else if(scenario==3){ // Copy the real adapter-bearing preferences from dirty storage. This @@ -200,7 +203,7 @@ int main(int argc,char** argv){ } else if(scenario==7){ // Pre-consent image: all earlier settings survive with default-off consent. DataStore legacy;legacy.fs.files["/new_prefs"]=disk; - legacy.fs.files["/new_prefs"].resize(disk.size()-5); + legacy.fs.files["/new_prefs"].resize(disk.size()-6); CompanionNodePrefs loaded;double lat=0,lon=0; assert(legacy.loadPrefs(loaded,lat,lon)); assert(loaded.flood_retry_advert_enabled==0); @@ -209,7 +212,7 @@ int main(int argc,char** argv){ // The previous complete image loads with the board policy even when the // receiving prefs object previously held an explicit configured interval. DataStore legacy;legacy.fs.files["/new_prefs"]=disk; - legacy.fs.files["/new_prefs"].resize(disk.size()-3); + legacy.fs.files["/new_prefs"].resize(disk.size()-4); CompanionNodePrefs loaded;loaded.gps_sync_interval_hours=24;loaded.usb_debug_enabled=1; double lat=0,lon=0; assert(legacy.loadPrefs(loaded,lat,lon)); @@ -217,12 +220,12 @@ int main(int argc,char** argv){ assert(loaded.usb_debug_enabled==0); // Half of the two-byte append is never accepted as a complete image. DataStore torn;torn.fs.files["/new_prefs"]=disk; - torn.fs.files["/new_prefs"].resize(disk.size()-2); + torn.fs.files["/new_prefs"].resize(disk.size()-3); assert(!torn.loadPrefsInt("/new_prefs",loaded,lat,lon)); // The complete published GPS image is accepted without borrowing either // GPS byte as the new debug preference. DataStore gps_image;gps_image.fs.files["/new_prefs"]=disk; - gps_image.fs.files["/new_prefs"].resize(disk.size()-1); + gps_image.fs.files["/new_prefs"].resize(disk.size()-2); loaded.usb_debug_enabled=1; assert(gps_image.loadPrefsInt("/new_prefs",loaded,lat,lon)); assert(loaded.gps_sync_interval_hours==336&&loaded.usb_debug_enabled==0); diff --git a/test/test_companion_prefs_image.py b/test/test_companion_prefs_image.py index a8f769b6d..1c16833d0 100644 --- a/test/test_companion_prefs_image.py +++ b/test/test_companion_prefs_image.py @@ -40,6 +40,7 @@ TAIL_FIELDS = ( ('flood_retry_group_max_path', 1), ('flood_retry_advert_enabled', 1), ('one_key_dm_enabled', 1), ('bluetooth_enabled', 1), ('gps_sync_interval_hours', 2), ('usb_debug_enabled', 1), + ('lost_reply', 1), ) OPTIONAL_FIELDS = ( ('defined(TBEAM_1W)', (('fan_mode', 5), ('fan_lo', 1), ('fan_hi', 1))), @@ -48,6 +49,7 @@ OPTIONAL_FIELDS = ( ) TESTS = r''' +#include #include static void seed(CompanionNodePrefs& prefs, uint32_t& random) { @@ -70,11 +72,11 @@ static std::vector golden(const CompanionNodePrefs& prefs, }; @GOLDEN@ #if defined(TBEAM_1W) - assert(bytes.size() == 242); + assert(bytes.size() == 243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(bytes.size() == 332); + assert(bytes.size() == 333); #else - assert(bytes.size() == 235); + assert(bytes.size() == 236); #endif return bytes; } @@ -102,19 +104,122 @@ int main() { } CompanionNodePrefs original; + assert(original.lost_reply == 0); strcpy(original.node_name, "durable image"); original.freq = 915.25f; original.ble_pin = 123456; original.bluetooth_enabled = 1; original.usb_debug_enabled = 1; original.gps_sync_interval_hours = 336; + original.lost_reply = 2; DataStore initial; assert(initial.savePrefs(original, 47.125, -122.25)); const auto before = golden(original, 47.125, -122.25); assert(initial.fs.files.at("/new_prefs") == before); + + // Every complete historical wire boundary stays readable, and an old + // image always disables the new opt-in response even if live RAM was on. + const std::vector legacy_sizes = { + 84, 85, 90, 91, 92, 93, 140, 141, 142, 143, 144, 155, + 156, 157, 158, 159, 191, 193, 200, 207, 214, 215, 226, +#if defined(TBEAM_1W) + // The generic 231-byte compatibility boundary also ends at TBeam's + // complete fan-mode string; preserve that existing accepted image. + 231, 233, 237, 238, 239, 241, 242 +#elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) + 323, 327, 328, 329, 331, 332 +#else + 230, 231, 232, 234, 235 +#endif + }; + for (size_t length : legacy_sizes) { + DataStore reboot; + auto historical = before; historical.resize(length); + reboot.fs.files["/new_prefs"] = historical; + CompanionNodePrefs live; live.lost_reply = 2; + live.getCustom()->setByKey("local_tag", "unchanged"); + double lat = 1, lon = 2; + assert(reboot.loadPrefsInt("/new_prefs", live, lat, lon)); + assert(live.lost_reply == 0 && live.ble_pin == original.ble_pin); + assert(live.freq == original.freq && !strcmp(live.node_name, original.node_name)); + assert(lat == 47.125 && lon == -122.25); + assert(reboot.fs.files.at("/new_prefs") == historical); + char tag[16] = {}; + assert(live.getCustom()->getByKey("local_tag", tag, sizeof(tag))); + assert(!strcmp(tag, "unchanged")); + ++comparisons; + } + // The accepted-size table is an exact allowlist. Check every length through + // a full extra byte range, including sizes that could alias legacy values + // if the underlying file size were accidentally narrowed with the table. + std::vector accepted_sizes = legacy_sizes; + accepted_sizes.push_back(before.size()); + for (size_t length = 0; length <= before.size() + 256; ++length) { + DataStore reboot; + auto candidate = before; + candidate.resize(length); + reboot.fs.files["/new_prefs"] = candidate; + CompanionNodePrefs live; + live.freq = 920.5f; + live.lost_reply = 1; + live.getCustom()->setByKey("length_tag", "unchanged"); + double lat = 1, lon = 2; + const bool expected = std::find(accepted_sizes.begin(), accepted_sizes.end(), + length) != accepted_sizes.end(); + assert(reboot.loadPrefsInt("/new_prefs", live, lat, lon) == expected); + if (expected) { + assert(live.freq == original.freq); + assert(live.lost_reply == (length == before.size() ? 2 : 0)); + assert(lat == 47.125 && lon == -122.25); + } else { + assert(live.freq == 920.5f && live.lost_reply == 1); + assert(lat == 1 && lon == 2); + } + char tag[16] = {}; + assert(live.getCustom()->getByKey("length_tag", tag, sizeof(tag))); + assert(!strcmp(tag, "unchanged")); + assert(reboot.fs.files.at("/new_prefs") == candidate); + ++comparisons; + } + // All 256 byte encodings are preserved by the append-only serializer. + // Only off/no/yes are accepted on reboot; corrupt values normalize off + // without erasing radio settings or changing the committed image. + for (unsigned value = 0; value < 256; ++value) { + CompanionNodePrefs saved; + assert(saved.copyPersistedValuesFrom(original)); + saved.lost_reply = static_cast(value); + DataStore writer; + assert(writer.savePrefs(saved, 47.125, -122.25)); + const auto disk = writer.fs.files.at("/new_prefs"); + assert(disk.back() == value); + assert(std::equal(disk.begin(), disk.end() - 1, before.begin())); + DataStore reboot; reboot.fs.files["/new_prefs"] = disk; + CompanionNodePrefs live; live.lost_reply = 2; + double lat = 1, lon = 2; + assert(reboot.loadPrefsInt("/new_prefs", live, lat, lon)); + assert(live.lost_reply == (value <= 2 ? value : 0)); + assert(live.ble_pin == original.ble_pin && live.freq == original.freq); + assert(live.gps_sync_interval_hours == 336 && live.usb_debug_enabled == 1); + assert(lat == 47.125 && lon == -122.25); + assert(reboot.fs.files.at("/new_prefs") == disk); + ++comparisons; + } + { + DataStore torn; torn.fs.files["/new_prefs"] = before; + torn.fs.fail_read_after = static_cast(before.size() - 1); + CompanionNodePrefs live; live.lost_reply = 1; live.freq = 920.5f; + strcpy(live.node_name, "live unchanged"); + double lat = 1, lon = 2; + assert(!torn.loadPrefsInt("/new_prefs", live, lat, lon)); + assert(live.lost_reply == 1 && live.freq == 920.5f); + assert(!strcmp(live.node_name, "live unchanged") && lat == 1 && lon == 2); + assert(torn.fs.files.at("/new_prefs") == before); + ++comparisons; + } CompanionNodePrefs changed; assert(changed.copyPersistedValuesFrom(original)); strcpy(changed.node_name, "replacement image"); changed.freq = 910.5f; changed.usb_debug_enabled = 0; changed.gps_sync_interval_hours = 24; + changed.lost_reply = 1; const auto after = golden(changed, 42.25, -121.125); // Every possible short write and readback, including every tail byte, @@ -166,6 +271,7 @@ int main() { assert(!strcmp(loaded.node_name, changed.node_name)); assert(loaded.freq == changed.freq && loaded.ble_pin == changed.ble_pin); assert(loaded.gps_sync_interval_hours == 24 && loaded.usb_debug_enabled == 0); + assert(loaded.lost_reply == 1); assert(lat == 42.25 && lon == -121.125); #if defined(STM32_PLATFORM) @@ -208,10 +314,10 @@ class CompanionPrefsImageTests(unittest.TestCase): method(source, signature) for signature in ( 'bool DataStore::loadPrefs(', 'bool DataStore::loadPrefsInt(') ) + '\n' + save - for suffix, capacity in (('TooSmall', 234), ('TooLarge', 236)): + for suffix, capacity in (('TooSmall', 235), ('TooLarge', 237)): variant = save.replace('DataStore::savePrefs(', 'DataStore::savePrefs' + suffix + '(', 1) - self.assertIn('uint8_t image[235];', variant) - variant = variant.replace('uint8_t image[235];', f'uint8_t image[{capacity}];', 1) + self.assertIn('uint8_t image[236];', variant) + variant = variant.replace('uint8_t image[236];', f'uint8_t image[{capacity}];', 1) methods += '\n#if defined(STM32_PLATFORM)\n' + variant + '\n#endif\n' code = HARNESS.split('int main(')[0].replace('@METHODS@', methods) code = code.replace(' bool savePrefs(const CompanionNodePrefs&, double, double);', @@ -219,7 +325,7 @@ class CompanionPrefsImageTests(unittest.TestCase): ' bool savePrefsTooSmall(const CompanionNodePrefs&, double, double);\n' ' bool savePrefsTooLarge(const CompanionNodePrefs&, double, double);') self.assertEqual(sum(size for _, size in WIRE_FIELDS), 226) - self.assertEqual(sum(size for _, size in TAIL_FIELDS), 9) + self.assertEqual(sum(size for _, size in TAIL_FIELDS), 10) generated = {} for seed in (False, True): rows = [field_code(WIRE_FIELDS, seed)] diff --git a/test/test_companion_prefs_tail.py b/test/test_companion_prefs_tail.py index 1fcee61c0..ea5d537f7 100644 --- a/test/test_companion_prefs_tail.py +++ b/test/test_companion_prefs_tail.py @@ -19,6 +19,7 @@ LEGACY_TAIL = r''' success = success && file.write((uint8_t *)&_prefs.bluetooth_enabled, 1) == 1; success = success && file.write((uint8_t *)&_prefs.gps_sync_interval_hours, 2) == 2; success = success && file.write((uint8_t *)&_prefs.usb_debug_enabled, 1) == 1; + success = success && file.write((uint8_t *)&_prefs.lost_reply, 1) == 1; ''' TESTS = r''' @@ -30,6 +31,7 @@ int main() { original.flood_retry_group_max_path=2; original.flood_retry_advert_enabled=1; original.one_key_dm_enabled=1; original.bluetooth_enabled=0; original.gps_sync_interval_hours=336; original.usb_debug_enabled=1; + original.lost_reply=2; #ifdef TBEAM_1W strcpy(original.fan_mode,"on"); original.fan_lo=32; original.fan_hi=45; #endif @@ -48,24 +50,27 @@ int main() { prefs.bluetooth_enabled=uint8_t(value+89); prefs.gps_sync_interval_hours=uint16_t(value*257); prefs.usb_debug_enabled=uint8_t(value+103); + prefs.lost_reply=uint8_t(value); DataStore compact, legacy; assert(compact.savePrefs(prefs,47.1,-122.2)); assert(legacy.savePrefsLegacy(prefs,47.1,-122.2)); const auto& image=compact.fs.files["/new_prefs"]; assert(image==legacy.fs.files["/new_prefs"]); #if defined(TBEAM_1W) - assert(image.size()==242); + assert(image.size()==243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(image.size()==332); + assert(image.size()==333); #else - assert(image.size()==235); + assert(image.size()==236); #endif const uint8_t expected[]={prefs.flood_retry_attempts,prefs.flood_retry_max_path, prefs.flood_retry_group_max_path,prefs.flood_retry_advert_enabled, - prefs.one_key_dm_enabled,prefs.bluetooth_enabled,0,0,prefs.usb_debug_enabled}; - assert(!memcmp(image.data()+image.size()-9,expected,6)); - assert(!memcmp(image.data()+image.size()-3,&prefs.gps_sync_interval_hours,2)); - assert(image.back()==prefs.usb_debug_enabled); + prefs.one_key_dm_enabled,prefs.bluetooth_enabled,0,0,prefs.usb_debug_enabled, + prefs.lost_reply}; + assert(!memcmp(image.data()+image.size()-10,expected,6)); + assert(!memcmp(image.data()+image.size()-4,&prefs.gps_sync_interval_hours,2)); + assert(image[image.size()-2]==prefs.usb_debug_enabled); + assert(image.back()==prefs.lost_reply); } DataStore initial; assert(initial.savePrefs(original,47.1,-122.2)); const auto disk=initial.fs.files["/new_prefs"]; @@ -73,6 +78,7 @@ int main() { strcpy(changed.node_name,"new complete image"); changed.freq=910.5f; changed.flood_retry_attempts=7; changed.bluetooth_enabled=1; changed.gps_sync_interval_hours=24; changed.usb_debug_enabled=0; + changed.lost_reply=1; auto expectOld=[&](DataStore& store) { assert(store.fs.files["/new_prefs"]==disk); assert(!store.fs.exists("/new_prefs.tmp")); @@ -83,13 +89,14 @@ int main() { assert(loaded.freq==original.freq && loaded.ble_pin==original.ble_pin); assert(loaded.flood_retry_attempts==4 && loaded.bluetooth_enabled==0); assert(loaded.gps_sync_interval_hours==336 && loaded.usb_debug_enabled==1); + assert(loaded.lost_reply==2); assert(lat==47.1 && lon==-122.2); }; // A short return at each boundary of the single final write must abort the // transaction, including either byte of the two-byte GPS field. - for (unsigned boundary=0; boundary<9; ++boundary) { + for (unsigned boundary=0; boundary<10; ++boundary) { DataStore store; store.fs.files["/new_prefs"]=disk; - store.fs.fail_write_after=int(disk.size()-9+boundary); + store.fs.fail_write_after=int(disk.size()-10+boundary); assert(!store.savePrefs(changed,42.3,-121.2)); expectOld(store); store.fs.fail_write_after=-1; assert(store.savePrefs(changed,42.3,-121.2)); @@ -97,9 +104,9 @@ int main() { } // Fully written bytes still cannot replace the live image until readback // verifies every final-tail boundary. LittleFS's retries also must fail. - for (unsigned boundary=0; boundary<9; ++boundary) { + for (unsigned boundary=0; boundary<10; ++boundary) { DataStore store; store.fs.files["/new_prefs"]=disk; - store.fs.fail_read_after=int(disk.size()-9+boundary); + store.fs.fail_read_after=int(disk.size()-10+boundary); assert(!store.savePrefs(changed,42.3,-121.2)); expectOld(store); } { @@ -123,6 +130,7 @@ int main() { assert(!strcmp(loaded.node_name,changed.node_name)); assert(loaded.flood_retry_attempts==7 && loaded.bluetooth_enabled==1); assert(loaded.gps_sync_interval_hours==24 && loaded.usb_debug_enabled==0); + assert(loaded.lost_reply==1); assert(lat==42.3 && lon==-121.2); } ''' diff --git a/test/test_companion_prefs_values.py b/test/test_companion_prefs_values.py index 3aa67a737..6df510dd4 100644 --- a/test/test_companion_prefs_values.py +++ b/test/test_companion_prefs_values.py @@ -36,9 +36,9 @@ static size_t adapterOffset(const CompanionNodePrefs& prefs) { // The value helper does not copy the adapters or their inter-field padding. // Use the complete object's byte representation for bounded observation. const uintptr_t first = reinterpret_cast(&prefs); - const uintptr_t last = reinterpret_cast(&prefs.usb_debug_enabled); + const uintptr_t last = reinterpret_cast(&prefs.lost_reply); assert(last >= first && last - first < sizeof(prefs)); - return static_cast(last - first) + sizeof(prefs.usb_debug_enabled); + return static_cast(last - first) + sizeof(prefs.lost_reply); } static std::vector adapterBytes(const CompanionNodePrefs& prefs) { @@ -132,7 +132,7 @@ int main() { 4, 32, 4, 8, 8, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 4}; assert(expected && READ_CALLS == mandatory); - unsigned optional_fields = 45; + unsigned optional_fields = 46; #ifdef TBEAM_1W optional_fields += 3; #endif @@ -185,7 +185,7 @@ class CompanionPrefsValuesTests(unittest.TestCase): r'^\s*(?:float|char|u?int(?:8|16|32)_t)\s+([A-Za-z_][A-Za-z_0-9]*)', prefix, re.M) self.assertEqual(declarations[0], 'airtime_factor') - self.assertEqual(declarations[-1], 'usb_debug_enabled') + self.assertEqual(declarations[-1], 'lost_reply') optional = { 'fan_mode': 'TBEAM_1W', 'fan_lo': 'TBEAM_1W', 'fan_hi': 'TBEAM_1W', 'wifi_ssid': 'defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE)', diff --git a/test/test_companion_settings_persistence_contract.py b/test/test_companion_settings_persistence_contract.py index 29d269792..b9f7bb921 100644 --- a/test/test_companion_settings_persistence_contract.py +++ b/test/test_companion_settings_persistence_contract.py @@ -122,7 +122,12 @@ class CompanionSettingsPersistenceContractTests(unittest.TestCase): "bool copyPersistedValuesFrom(const CompanionNodePrefs& source)", ) self.assertIn("reinterpret_cast(&airtime_factor)", copy) - self.assertIn("reinterpret_cast(&usb_debug_enabled)", copy) + # The appended lost-reply byte is the last persisted value. Both + # snapshots must stop there before either runtime adapter begins. + self.assertIn("reinterpret_cast(&lost_reply)", copy) + self.assertIn("reinterpret_cast(&values.lost_reply)", copy) + self.assertIn("+ sizeof(lost_reply)", copy) + self.assertIn("end - begin == size - sizeof(values.lost_reply)", copy) self.assertIn("reinterpret_cast(&values.radio)", copy) self.assertIn("reinterpret_cast(&values.custom)", copy) self.assertIn("size <= radio_begin - begin", copy) diff --git a/test/test_companion_usb_logging.py b/test/test_companion_usb_logging.py index a61522782..289404fb7 100644 --- a/test/test_companion_usb_logging.py +++ b/test/test_companion_usb_logging.py @@ -55,15 +55,17 @@ int main(){ assert(node.savePrefs()); const auto original=node.store.fs.files["/new_prefs"]; #if defined(TBEAM_1W) - assert(original.size()==242); + assert(original.size()==243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(original.size()==332); + assert(original.size()==333); #else - assert(original.size()==235); + assert(original.size()==236); #endif - assert(original.back()==0&&original[original.size()-4]==0); - assert(original[original.size()-3]==1&&original[original.size()-2]==1); - assert(original[original.size()-5]==1&&original[158]==1); + const size_t debug_offset=original.size()-2; + assert(original[debug_offset]==0&&original[debug_offset-3]==0); + assert(original[debug_offset-2]==1&&original[debug_offset-1]==1); + assert(original[debug_offset-4]==1&&original[158]==1); + assert(original.back()==0); char reply[160]={}; for(const char* malformed : {"set usb.debug","set usb.debug ", "set usb.debug 1","set usb.debug ON","set usb.debug on ", @@ -81,8 +83,9 @@ int main(){ assert(!strncmp(reply,"OK - USB debug on (saved)",24)); assert(node._prefs.usb_debug_enabled==1&&mesh::debug_enabled); const auto enabled_disk=node.store.fs.files["/new_prefs"]; - assert(enabled_disk.back()==1); - for(size_t i=0;i+1\r\n")!=std::string::npos); +#else + assert(text.find("lost.reply")==std::string::npos); +#endif assert(text.find(" get usb.debug\r\n set usb.debug \r\n")!=std::string::npos); #if MESH_USB_CONSOLE_COOPERATIVE assert(text.find(" get usb.watchdog\r\n get usb.watchdog.last\r\n set usb.watchdog (saved; default auto)\r\n")!=std::string::npos); @@ -445,10 +453,12 @@ int main(){ work = Path(directory) self.prepare(work) for native in (0, 1): - with self.subTest(native=native): - self.compile_and_run(work, harness, - [flag + '=1' for flag in features] + ['WIFI_SSID="test"', - 'MESH_USB_CONSOLE_COOPERATIVE=' + str(native)]) + for lost in (0, 1): + with self.subTest(native=native, lost=lost): + self.compile_and_run(work, harness, + [flag + '=1' for flag in features] + ['WIFI_SSID="test"', + 'MESH_USB_CONSOLE_COOPERATIVE=' + str(native), + 'MESH_ENABLE_LOST_REPLY=' + str(lost)]) if __name__ == '__main__': diff --git a/test/test_local_cli_access.py b/test/test_local_cli_access.py index 6eebc2d13..cc19309a1 100644 --- a/test/test_local_cli_access.py +++ b/test/test_local_cli_access.py @@ -20,6 +20,7 @@ PREAMBLE = r''' #include #include #include +#include #include "companion_fleet_dispatch.h" #define ESP32 1 #define WIFI_SSID "test" @@ -72,6 +73,7 @@ struct Store { bool formatFileSystem(){++erased;return success;} }; struct Prefs { + uint8_t lost_reply=0; float tx_delay_factor=0.5f, direct_tx_delay_factor=0.2f; uint8_t interference_threshold=0, agc_reset_interval=0; int8_t tz_offset=0; @@ -164,6 +166,22 @@ SCENARIOS = r''' int main() { MyMesh node; char reply[160] = {}; + assert(node.handleCommand("set lost.reply yes",0,reply)); + assert(node._prefs.lost_reply==2 && !strcmp(reply,"> lost.reply yes")); + assert(node.handleCommand("get lost.reply",0,reply) && !strcmp(reply,"> yes")); + const int lost_saves=node.saves; + for(uint32_t stamp:{0u,100u}) { + reply[0]=0; + node.onCLICommandRecv(ContactInfo{},nullptr,stamp,"set lost.reply no",reply); + assert(node._prefs.lost_reply==2 && node.saves==lost_saves); + reply[0]=0; + node.onCLICommandRecv(ContactInfo{},nullptr,stamp,"A7|get lost.reply",reply); + assert(!strstr(reply,"> yes") && node.saves==lost_saves); + } + node.save_ok=false; + assert(node.handleCommand("set lost.reply no",0,reply)); + assert(node._prefs.lost_reply==2 && strstr(reply,"could not save")); + node.save_ok=true; for (uint32_t timestamp : {0u, 100u}) { node.onCLICommandRecv(ContactInfo{}, nullptr, timestamp, "fleet send 1 all set radio2 off", reply); @@ -373,6 +391,7 @@ int main() { "c++", "-std=c++17", "-x", "c++", "-", "-I"+str(ROOT / "src"), "-I"+str(ROOT / "test/fixtures"), "-DENABLE_PRIVATE_KEY_EXPORT="+str(export), + "-DMESH_ENABLE_LOST_REPLY=1", *(["-DWITH_WEBCONFIG=1"] if webconfig else []), *SANITIZER_FLAGS, "-o", str(binary), ], input=PREAMBLE+implementation+SCENARIOS, text=True, capture_output=True) diff --git a/test/test_stored_client_reply_routes.py b/test/test_stored_client_reply_routes.py index 2fec3bd64..9599abeac 100644 --- a/test/test_stored_client_reply_routes.py +++ b/test/test_stored_client_reply_routes.py @@ -8,7 +8,7 @@ import tempfile import unittest from test_replay_reset_integration import extract_braced -from test_client_acl_infrastructure import production_methods +from test_client_acl_infrastructure import production_methods, room_mail_crypto_arguments ROOT = Path(__file__).resolve().parents[1] @@ -142,7 +142,8 @@ int main() { # Actual Mesh::createMultiAck has a pre-existing signed-size comparison. # Keep other fixture warnings fatal without changing production code. args = [compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", "-Wno-unused-parameter", "-Wno-sign-compare", - "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), str(work / "test.cpp"), "-o", str(binary)] + "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), + str(work / "test.cpp"), *room_mail_crypto_arguments(role), "-o", str(binary)] if sensor: args.insert(1, "-DTEST_SENSOR=1") if sys.platform.startswith("linux"): args[1:1] = ["-fsanitize=address,undefined", "-fno-sanitize-recover=all", "-fno-pie", "-no-pie"] diff --git a/test/test_webconfig_lost_reply.py b/test/test_webconfig_lost_reply.py new file mode 100644 index 000000000..a3b573423 --- /dev/null +++ b/test/test_webconfig_lost_reply.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python3 +"""Exercise the shipped Lost-status control and actual WebConfig JSON handlers.""" + +import json +import html +from pathlib import Path +import re +import unittest +from unittest import mock + +from test_replay_reset_integration import extract_braced +import test_webconfig_recovery_auth as auth_fixture +import test_webconfig_ui_runtime as browser_fixture + + +ROOT = Path(__file__).resolve().parents[1] + + +class LostReplyWebConfigTest(unittest.TestCase): + compile_run = auth_fixture.WebConfigRecoveryAuthTest.compile_run + setup_values = browser_fixture.WebConfigUiRuntimeTest.setup_values + + def run_page(self, prelude, virtual_time=1500): + # Snap Chromium has a private /tmp. Put the HTML in the shared + # workspace, as the Room browser fixture does, so it can load it. + temporary_directory = browser_fixture.tempfile.TemporaryDirectory + cache = ROOT / ".pio" + cache.mkdir(exist_ok=True) + + def workspace_temporary_directory(*args, **kwargs): + kwargs.setdefault("dir", cache) + return temporary_directory(*args, **kwargs) + + with mock.patch.object(browser_fixture.tempfile, "TemporaryDirectory", + workspace_temporary_directory): + return browser_fixture.WebConfigUiRuntimeTest.run_page(self, prelude, virtual_time) + + def fixture(self): + server = (ROOT / "src/helpers/esp32/WebConfigServer.cpp").read_text() + header = (ROOT / "src/helpers/esp32/WebConfigServer.h").read_text() + capability = extract_braced(header, "enum Capability : uint32_t") + ";" + snapshot = extract_braced(header, "struct NodeSnapshot") + ";" + batch_entry = extract_braced(header, "struct BatchEntry") + ";" + allowed = extract_braced(server, "static bool isAllowedSetKey(") + secret = extract_braced(server, "static bool isSecretKey(") + post = extract_braced(server, "void WebConfigServer::handleConfigPost(") + get = extract_braced(server, "void WebConfigServer::handleConfigGet(") + # Execute the actual snapshot-to-radio JSON branch. WiFi/MQTT fields + # after this boundary are unrelated and require peripheral fixtures. + get = get[:get.index(' JsonObject wifi =')] + r''' + } + String out; + serializeJson(doc, out); + req->send(200, "application/json", out); +} +''' + return r''' +#include +#include +#include +#include +#include +#include +#include "helpers/WebConfigKeys.h" +#include "helpers/WebConfigBatch.h" +using String = std::string; +struct WCLock { explicit WCLock(int) {} }; +uint32_t millis() { return 1; } +namespace mesh { +struct Port { template void printf(const char*, Args...) {} }; +Port& usbDebugPort() { static Port port; return port; } +namespace wifi { bool parseEspNowChannel(const char*, uint8_t&) { return false; } } +} +static const char SECRET_SENTINEL[] = "********"; +@ALLOWED@ +@SECRET@ +struct AsyncWebServerRequest { + String input, output; + void* _tempObject = nullptr; + int status = 0; + explicit AsyncWebServerRequest(String body = "") : input(body) { _tempObject = input.data(); } + size_t contentLength() const { return input.size(); } + void send(int code, const char* = nullptr, const String& body = "") { status = code; output = body; } +}; +struct WebConfigServer { + @CAPABILITY@ + @SNAPSHOT@ + @BATCH_ENTRY@ + struct Callbacks { + NodeSnapshot node = {}; + void getNodeSnapshot(NodeSnapshot& result) { result = node; } + } callbacks; + Callbacks* _cb = &callbacks; + enum { MODE_OFF, MODE_SETUP, MODE_LAN, BATCH_CONFIG, BATCH_CLI }; + static constexpr size_t MAX_BODY = 4096; + static constexpr int MAX_BATCH = WebConfigBatch::kMaxBatch; + int _mode = MODE_LAN, _mux = 0, _batch_kind = BATCH_CONFIG; + bool authorized = true, _initial_setup = false, _batch_reboot = false; + bool _batch_reboot_armed = false, _batch_all_ok = true; + bool _standalone_wifi_dirty = false, _setup_wifi_handoff_pending = false; + uint32_t _setup_wifi_handoff_deadline = 0, _diag_until = 0; + char _setup_wifi_handoff_ip[32] = {}, _batch_reqid[17] = {}; + int _batch_count = 0, _batch_next = 0; + void* _mqtt_prefs = nullptr; + BatchEntry _batch[MAX_BATCH] = {}; + WebConfigBatch::State _batch_state = WebConfigBatch::State::Idle; + static constexpr auto BATCH_PENDING = WebConfigBatch::State::Pending; + static WebConfigBatch::State toSpecState(WebConfigBatch::State state) { return state; } + bool checkAuth(AsyncWebServerRequest*) { return authorized; } + void handleConfigGet(AsyncWebServerRequest*); + void handleConfigPost(AsyncWebServerRequest*); +}; +@GET@ +@POST@ +String writeBody(const char* value) { + return String("{\"reqid\":\"0123456789abcdef\",\"set\":{\"lost.reply\":") + value + "}}"; +} +int main() { + const char* modes[] = {"off", "no", "yes"}; + for (int value : {0, 1, 2, 255}) { + WebConfigServer server; + server.callbacks.node.lost_reply = uint8_t(value); + server.callbacks.node.capabilities = WebConfigServer::CAP_LOST_REPLY; + AsyncWebServerRequest get; + server.handleConfigGet(&get); + JsonDocument snapshot; + assert(get.status == 200 && deserializeJson(snapshot, get.output) == DeserializationError::Ok); + assert(strcmp(snapshot["radio"]["lost_reply"].as(), modes[value <= 2 ? value : 0]) == 0); + assert(snapshot["radio"]["capabilities"].as() == (1UL << 18)); + } + for (const char* mode : modes) { + WebConfigServer server; + server.callbacks.node.capabilities = WebConfigServer::CAP_LOST_REPLY; + AsyncWebServerRequest save(writeBody((String("\"") + mode + "\"").c_str())); + server.handleConfigPost(&save); + assert(save.status == 202 && server._batch_count == 1 && !server._batch_reboot); + assert(strcmp(server._batch[0].key, "lost.reply") == 0); + assert(String(server._batch[0].cmd) == String("set lost.reply ") + mode); + // A correlated retry retains the established batch, including when the + // retry carries an invalid value. Classification precedes new validation. + AsyncWebServerRequest retry(writeBody("\"invalid\"")); + server.handleConfigPost(&retry); + assert(retry.status == 202 && String(server._batch[0].cmd) == String("set lost.reply ") + mode); + } + for (const char* invalid : {"null", "true", "2", "\"on\"", "\"YES\"", "\"yes\\n\""}) { + WebConfigServer server; + server.callbacks.node.capabilities = WebConfigServer::CAP_LOST_REPLY; + AsyncWebServerRequest save(writeBody(invalid)); + server.handleConfigPost(&save); + assert(save.status == 400 && save.output.find("expected off, no or yes") != String::npos); + assert(server._batch_count == 0 && server._batch_state == WebConfigBatch::State::Idle); + } + WebConfigServer infrastructure; + AsyncWebServerRequest forged(writeBody("\"yes\"")); + infrastructure.handleConfigPost(&forged); + assert(forged.status == 400 && forged.output.find("setting unavailable") != String::npos); + assert(infrastructure._batch_count == 0); + infrastructure.authorized = false; + AsyncWebServerRequest unauthorized(writeBody("\"yes\"")); + infrastructure.handleConfigPost(&unauthorized); + assert(unauthorized.status == 401 && infrastructure._batch_count == 0); + assert(wcIsAllowedSetKey("lost.reply") && !wcIsAllowedSetKey("lost.reply.extra")); + assert(!wcSetKeyRequiresReboot("lost.reply")); +} +'''.replace("@CAPABILITY@", capability).replace("@SNAPSHOT@", snapshot).replace( + "@BATCH_ENTRY@", batch_entry).replace("@ALLOWED@", allowed).replace( + "@SECRET@", secret).replace("@GET@", get).replace("@POST@", post) + + def test_actual_json_strings_and_capability_gated_settings_batch(self): + # The shared compiler helper needs the production helper include path. + self.compile_run(self.fixture().replace('"helpers/', '"' + (ROOT / "src/helpers").as_posix() + '/')) + + def test_shipped_control_defaults_off_and_saves_no_yes_off(self): + status, config = self.setup_values() + status.update(mode="lan", capabilities=1 << 18) + config["radio"]["lost_reply"] = "off" + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude, virtual_time=3500) + for key, value in (("visible", "true"), ("default", "off"), ("choices", "off,no,yes"), + ("enum", "off,no,yes"), ("saved-no", "no"), ("saved-yes", "yes"), + ("saved-off", "off"), ("reboot", "false"), ("done", "true")): + self.assertIn('data-test-%s="%s"' % (key, value), dom) + saved = re.search(r'data-test-saves="([^"]*)"', dom) + self.assertIsNotNone(saved) + self.assertEqual(json.loads(html.unescape(saved.group(1))), + [{"lost.reply": "no"}, {"lost.reply": "yes"}, {"lost.reply": "off"}]) + self.assertIn("Lost-status auto reply", dom) + self.assertIn("Am I lost?", dom) + + def test_other_roles_hide_setting_and_do_not_offer_cli_key(self): + for role in ("Repeater", "Room Server"): + with self.subTest(role=role): + status, config = self.setup_values() + status.update(mode="lan", role=role, capabilities=1) + config["radio"]["lost_reply"] = "off" + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude) + self.assertIn('data-test-hidden="true"', dom) + self.assertIn('data-test-no-cli="true"', dom) + + +if __name__ == "__main__": + unittest.main() diff --git a/variants/rak_wismesh_tag/platformio.ini b/variants/rak_wismesh_tag/platformio.ini index 8a4e190f3..c9f94a564 100644 --- a/variants/rak_wismesh_tag/platformio.ini +++ b/variants/rak_wismesh_tag/platformio.ini @@ -96,7 +96,8 @@ build_flags = -D MAX_GROUP_CHANNELS=40 -D BLE_PIN_CODE=123456 -D BLE_DEBUG_LOGGING=1 - -D OFFLINE_QUEUE_SIZE=256 + ; Retain 350 contacts/40 channels and the runtime heap reserve for BLE. + -D OFFLINE_QUEUE_SIZE=240 -D PIN_GPS_EN=34 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 diff --git a/variants/tiny_relay/platformio.ini b/variants/tiny_relay/platformio.ini index 3f7cd01d0..dbae4c1c6 100644 --- a/variants/tiny_relay/platformio.ini +++ b/variants/tiny_relay/platformio.ini @@ -76,6 +76,7 @@ build_flags = ${Tiny_Relay.build_flags} -Oz -flto -fno-inline-small-functions + -fno-tree-dominator-opts ; preserve Companion features and the 32 KiB filesystem -fipa-pta -fmerge-all-constants -fno-ipa-cp-clone diff --git a/variants/wio-e5-dev/platformio.ini b/variants/wio-e5-dev/platformio.ini index e278562b7..ab3d0d1cc 100644 --- a/variants/wio-e5-dev/platformio.ini +++ b/variants/wio-e5-dev/platformio.ini @@ -94,6 +94,7 @@ build_flags = ${lora_e5.build_flags} -Oz -flto -fno-inline-small-functions + -fno-tree-dominator-opts ; preserve Companion features and the 32 KiB filesystem -fipa-pta -fmerge-all-constants -fno-ipa-cp-clone diff --git a/webui/index.html b/webui/index.html index 4c54ccd15..49319f3d3 100644 --- a/webui/index.html +++ b/webui/index.html @@ -365,6 +365,9 @@ body.tab-cli{padding-bottom:0}
Independent of the address setting. Advertise normally until first pairing, then accept only that bonded peer. An address rotation reopens pairing. Changes require a reboot.
+
+ +
Reply Yes or No to "Am I lost?" from saved private chat contacts when this device is available. Replies are rate limited. Your choice is saved on this device.
@@ -810,6 +813,7 @@ function cfgVal(k){ // map a `set` key to its current value string, from st.cfg case"name":return r.name;case"bluetooth.name":return r.bluetooth_name||""; case"bluetooth.mac":return r.bluetooth_mac||""; case"bluetooth.stealth":return r.bluetooth_stealth?"on":"off"; + case"lost.reply":return r.lost_reply==="yes"||r.lost_reply==="no"?r.lost_reply:"off"; case"lat":return String(r.lat);case"lon":return String(r.lon); case"tx":return String(r.tx);case"af":return String(r.af); case"rxdelay":return String(r.rxdelay);case"txdelay":return String(r.txdelay); @@ -2084,6 +2088,7 @@ var CLI_COMPANION_VERBS=[ ["reboot","Restart the node"] ]; var CLI_COMPANION_KEYS=[ + ["lost.reply","Lost-status auto reply to saved private chat contacts",0,"off|no|yes"], ["display.inbox","Companion inbox behavior",0,"history|pending|unread"], ["display.mode","Display on battery",0,"off|on|button|pairing|button-pairing|automatic"], ["display.timeout","Battery display timeout in seconds (1-3600)",0],