diff --git a/.github/workflows/create_nightly_release.yml b/.github/workflows/create_nightly_release.yml index 68c28732..3204b272 100644 --- a/.github/workflows/create_nightly_release.yml +++ b/.github/workflows/create_nightly_release.yml @@ -49,7 +49,7 @@ jobs: run: docker run -e VERSION_STRING=${{ steps.version_date.outputs.date }} -i -v ${{ github.workspace }}:/havoc portapack-dev - name: Create Small SD Card ZIP - No World Map run: | - mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version_date.outputs.date }}.bin && zip -r sdcard-no-map.zip sdcard + mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version_date.outputs.date }}.bin && mkdir -p sdcard/APPS && cp build/firmware/application/*.ppma sdcard/APPS && zip -r sdcard-no-map.zip sdcard - name: Download world map run: | wget https://github.com/eried/portapack-mayhem/releases/download/world_map/world_map.zip @@ -61,7 +61,7 @@ jobs: zip -j firmware.zip build/firmware/portapack-h1_h2-mayhem.bin && cd flashing && zip -r ../firmware.zip * - name: Create SD Card ZIP run: | - mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version_date.outputs.date }}.bin && zip -r sdcard.zip sdcard + mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version_date.outputs.date }}.bin && mkdir -p sdcard/APPS && cp build/firmware/application/*.ppma sdcard/APPS && zip -r sdcard.zip sdcard - name: Create changelog env: GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/create_stable_release.yml b/.github/workflows/create_stable_release.yml index bf22fe30..051bf72a 100644 --- a/.github/workflows/create_stable_release.yml +++ b/.github/workflows/create_stable_release.yml @@ -33,7 +33,7 @@ jobs: run: docker run -e VERSION_STRING=${{ steps.version.outputs.version }} -i -v ${{ github.workspace }}:/havoc portapack-dev - name: Create Small SD Card ZIP - No World Map run: | - mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version.outputs.version }}.bin && zip -r sdcard-no-map.zip sdcard + mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version.outputs.version }}.bin && mkdir -p sdcard/APPS && cp build/firmware/application/*.ppma sdcard/APPS && zip -r sdcard-no-map.zip sdcard - name: Download world map run: | wget https://github.com/eried/portapack-mayhem/releases/download/world_map/world_map.zip @@ -45,7 +45,7 @@ jobs: zip -j firmware.zip build/firmware/portapack-h1_h2-mayhem.bin && cd flashing && zip -r ../firmware.zip * - name: Create SD Card ZIP run: | - mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version.outputs.version }}.bin && zip -r sdcard.zip sdcard + mkdir -p sdcard/FIRMWARE && cp build/firmware/portapack-h1_h2-mayhem.bin sdcard/FIRMWARE/portapack-mayhem_${{ steps.version.outputs.version }}.bin && mkdir -p sdcard/APPS && cp build/firmware/application/*.ppma sdcard/APPS && zip -r sdcard.zip sdcard - name: Create changelog env: GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d5bde41..5d49cb2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,12 @@ if ("$ENV{VERSION_STRING}" STREQUAL "") endif (GIT_VERSION_FOUND) endif() +execute_process( + COMMAND bash "-c" "echo ${VERSION} | md5sum | head -c 8" + OUTPUT_VARIABLE VERSION_MD5 +) +set(VERSION_MD5 "0x${VERSION_MD5}") + set(LICENSE_PATH ${CMAKE_CURRENT_LIST_DIR}/LICENSE) set(HARDWARE_PATH ${CMAKE_CURRENT_LIST_DIR}/hardware) diff --git a/firmware/CMakeLists.txt b/firmware/CMakeLists.txt index 3b40b418..071f0f74 100644 --- a/firmware/CMakeLists.txt +++ b/firmware/CMakeLists.txt @@ -26,6 +26,7 @@ set(CHIBIOS ${PROJECT_SOURCE_DIR}/chibios) set(CHIBIOS_PORTAPACK ${PROJECT_SOURCE_DIR}/chibios-portapack) set(EXTRACT_CPLD_DATA ${PROJECT_SOURCE_DIR}/tools/extract_cpld_data.py) +set(EXPORT_EXTERNAL_APP_IMAGES ${PROJECT_SOURCE_DIR}/tools/export_external_apps.py) set(MAKE_SPI_IMAGE ${PROJECT_SOURCE_DIR}/tools/make_spi_image.py) set(MAKE_IMAGE_CHUNK ${PROJECT_SOURCE_DIR}/tools/make_image_chunk.py) set(LZ4 lz4) @@ -55,8 +56,15 @@ add_custom_target( program COMMAND dfu-util --device 1fc9:000c --download ${HACKRF_FIRMWARE_DFU_IMAGE} || (exit 0) # We need to add it for dfu-utils v.011 , (in v.09 it is not necessary) COMMAND sleep 3s - COMMAND hackrf_spiflash -w ${FIRMWARE_FILENAME} - DEPENDS ${FIRMWARE_FILENAME} + COMMAND hackrf_spiflash -i -R -w ${FIRMWARE_FILENAME} + DEPENDS firmware ${FIRMWARE_FILENAME} +) + +add_custom_target( + program-external-apps + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${PROJECT_SOURCE_DIR}/tools/copy_external_apps.sh + DEPENDS program ) # TODO: Bad hack to fix location of LICENSE file for tar. diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 4ab4504e..014f9a86 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -32,7 +32,7 @@ include(CheckCXXCompilerFlag) project(application) # Compiler options here. -set(USE_OPT "-Os -g --specs=nano.specs") +set(USE_OPT "-Os -g --specs=nano.specs -specs=nosys.specs") # C specific options here (added to USE_OPT). set(USE_COPT "-std=gnu99") @@ -97,6 +97,7 @@ include(${CHIBIOS_PORTAPACK}/os/ports/GCC/ARMCMx/LPC43xx_M0/port.cmake) include(${CHIBIOS}/os/kernel/kernel.cmake) include(${CHIBIOS_PORTAPACK}/os/various/fatfs_bindings/fatfs.cmake) include(${CHIBIOS}/test/test.cmake) +include(external/external.cmake) # Define linker script file here set(LDSCRIPT ${PORTLD}/LPC43xx_M0.ld) @@ -256,7 +257,6 @@ set(CPPSRC apps/ui_about_simple.cpp apps/ui_adsb_rx.cpp apps/ui_adsb_tx.cpp - apps/ui_afsk_rx.cpp apps/ui_aprs_rx.cpp apps/ui_aprs_tx.cpp apps/ui_bht_tx.cpp @@ -322,6 +322,9 @@ set(CPPSRC ${CPLD_20150901_DATA_CPP} ${CPLD_20170522_DATA_CPP} ${HACKRF_CPLD_DATA_CPP} + ui_external_items_menu_loader.cpp + + ${EXTCPPSRC} ) # C sources to be compiled in ARM mode regardless of the global setting. @@ -397,7 +400,7 @@ set(CPPWARN "-Wall -Wextra -Wno-psabi") # List all default C defines here, like -D_DEBUG=1 # TODO: Switch -DCRT0_INIT_DATA depending on load from RAM or SPIFI? # NOTE: _RANDOM_TCC to kill a GCC 4.9.3 error with std::max argument types -set(DDEFS "-DLPC43XX -DLPC43XX_M0 -D__NEWLIB__ -DHACKRF_ONE -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -D_RANDOM_TCC=0 -D'VERSION_STRING=\"${VERSION}\"'") +set(DDEFS "-DLPC43XX -DLPC43XX_M0 -D__NEWLIB__ -DHACKRF_ONE -DTOOLCHAIN_GCC -DTOOLCHAIN_GCC_ARM -D_RANDOM_TCC=0 -D'VERSION_STRING=\"${VERSION}\"' -DVERSION_MD5=${VERSION_MD5}") # List all default ASM defines here, like -D_DEBUG=1 set(DADEFS) @@ -466,12 +469,13 @@ set_target_properties(${PROJECT_NAME}.elf PROPERTIES LINK_DEPENDS ${LDSCRIPT}) add_definitions(${DEFS}) include_directories(. ${INCDIR}) link_directories(${LLIBDIR}) -target_link_libraries(${PROJECT_NAME}.elf ${LIBS}) +target_link_libraries(${PROJECT_NAME}.elf ${LIBS} "-L${CMAKE_CURRENT_LIST_DIR}/external") target_link_libraries(${PROJECT_NAME}.elf -Wl,-Map=${PROJECT_NAME}.map) add_custom_command( OUTPUT ${PROJECT_NAME}.bin - COMMAND ${CMAKE_OBJCOPY} -O binary ${PROJECT_NAME}.elf ${PROJECT_NAME}.bin + COMMAND ${CMAKE_OBJCOPY} -v -O binary ${PROJECT_NAME}.elf ${PROJECT_NAME}.bin --remove-section=.external_app_* + COMMAND ${EXPORT_EXTERNAL_APP_IMAGES} ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_OBJCOPY} ${EXTAPPLIST} DEPENDS ${PROJECT_NAME}.elf ) diff --git a/firmware/application/baseband_api.cpp b/firmware/application/baseband_api.cpp index fe5bd9ba..c4f76c42 100644 --- a/firmware/application/baseband_api.cpp +++ b/firmware/application/baseband_api.cpp @@ -329,6 +329,30 @@ void run_image(const spi_flash::image_tag_t image_tag) { } } +void run_prepared_image(const uint32_t m4_code) { + if (baseband_image_running) { + chDbgPanic("BBRunning"); + } + + creg::m4txevent::clear(); + shared_memory.clear_baseband_ready(); + + m4_init_prepared(m4_code, false); + baseband_image_running = true; + + creg::m4txevent::enable(); + + if constexpr (enforce_core_sync) { + // Wait up to 3 seconds for baseband to start handling events. + auto count = 3'000u; + while (!shared_memory.baseband_ready && --count) + chThdSleepMilliseconds(1); + + if (count == 0) + chDbgPanic("Baseband Sync Fail"); + } +} + void shutdown() { if (!baseband_image_running) { return; diff --git a/firmware/application/baseband_api.hpp b/firmware/application/baseband_api.hpp index df652d90..b635aa15 100644 --- a/firmware/application/baseband_api.hpp +++ b/firmware/application/baseband_api.hpp @@ -89,6 +89,7 @@ void set_spectrum_painter_config(const uint16_t width, const uint16_t height, bo void request_beep(); void run_image(const portapack::spi_flash::image_tag_t image_tag); +void run_prepared_image(const uint32_t m4_code); void shutdown(); void spectrum_streaming_start(); diff --git a/firmware/application/core_control.cpp b/firmware/application/core_control.cpp index f4237af3..b7711f70 100644 --- a/firmware/application/core_control.cpp +++ b/firmware/application/core_control.cpp @@ -59,6 +59,19 @@ void m4_init(const spi_flash::image_tag_t image_tag, const memory::region_t to, chDbgPanic("NoImg"); } +void m4_init_prepared(const uint32_t m4_code, const bool full_reset) { + /* M4 core is assumed to be sleeping with interrupts off, so we can mess + * with its address space and RAM without concern. + */ + LPC_CREG->M4MEMMAP = m4_code; + + /* Reset M4 core and optionally all peripherals */ + LPC_RGU->RESET_CTRL[0] = (full_reset) ? (1 << 1) // PERIPH_RST + : (1 << 13); // M4_RST + + return; +} + void m4_request_shutdown() { baseband::shutdown(); } diff --git a/firmware/application/core_control.hpp b/firmware/application/core_control.hpp index 4cd2ac21..0e0fd484 100644 --- a/firmware/application/core_control.hpp +++ b/firmware/application/core_control.hpp @@ -28,6 +28,7 @@ #include "spi_image.hpp" void m4_init(const portapack::spi_flash::image_tag_t image_tag, const portapack::memory::region_t to, const bool full_reset); +void m4_init_prepared(const uint32_t m4_code, const bool full_reset); void m4_request_shutdown(); void m0_halt(); diff --git a/firmware/application/external/afsk_rx/main.cpp b/firmware/application/external/afsk_rx/main.cpp new file mode 100644 index 00000000..aa2b3341 --- /dev/null +++ b/firmware/application/external/afsk_rx/main.cpp @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2023 Bernd Herzog + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui.hpp" +#include "ui_afsk_rx.hpp" +#include "ui_navigation.hpp" +#include "external_app.hpp" + +namespace ui::external_app::afsk_rx { +void initialize_app(ui::NavigationView& nav) { + nav.push(); +} +} // namespace ui::external_app::afsk_rx + +extern "C" { + +__attribute__((section(".external_app.app_afsk_rx.application_information"), used)) application_information_t _application_information_afsk_rx = { + /*.memory_location = */ (uint8_t*)0x00000000, + /*.externalAppEntry = */ ui::external_app::afsk_rx::initialize_app, + /*.header_version = */ CURRENT_HEADER_VERSION, + /*.app_version = */ VERSION_MD5, + + /*.app_name = */ "AFSK", + /*.bitmap_data = */ { + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xF8, + 0x1F, + 0x04, + 0x20, + 0x02, + 0x40, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xAB, + 0xDF, + 0xAB, + 0xDF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + }, + /*.icon_color = */ ui::Color::yellow().v, + /*.menu_location = */ app_location_t::RX, + + /*.m4_app_tag = portapack::spi_flash::image_tag_afsk_rx */ {'P', 'A', 'F', 'R'}, + /*.m4_app_offset = */ 0x00000000, // will be filled at compile time +}; +} diff --git a/firmware/application/apps/ui_afsk_rx.cpp b/firmware/application/external/afsk_rx/ui_afsk_rx.cpp similarity index 96% rename from firmware/application/apps/ui_afsk_rx.cpp rename to firmware/application/external/afsk_rx/ui_afsk_rx.cpp index d1253811..2b43ca23 100644 --- a/firmware/application/apps/ui_afsk_rx.cpp +++ b/firmware/application/external/afsk_rx/ui_afsk_rx.cpp @@ -32,20 +32,21 @@ using namespace portapack; using namespace modems; +using namespace ui; + +namespace ui::external_app::afsk_rx { void AFSKLogger::log_raw_data(const std::string& data) { log_file.write_entry(data); } -namespace ui { - void AFSKRxView::focus() { field_frequency.focus(); } AFSKRxView::AFSKRxView(NavigationView& nav) : nav_{nav} { - baseband::run_image(portapack::spi_flash::image_tag_afsk_rx); + baseband::run_prepared_image(portapack::memory::map::m4_code.base()); add_children({&rssi, &channel, @@ -147,4 +148,4 @@ AFSKRxView::~AFSKRxView() { baseband::shutdown(); } -} /* namespace ui */ +} // namespace ui::external_app::afsk_rx diff --git a/firmware/application/apps/ui_afsk_rx.hpp b/firmware/application/external/afsk_rx/ui_afsk_rx.hpp similarity index 96% rename from firmware/application/apps/ui_afsk_rx.hpp rename to firmware/application/external/afsk_rx/ui_afsk_rx.hpp index f876ded6..30f480cb 100644 --- a/firmware/application/apps/ui_afsk_rx.hpp +++ b/firmware/application/external/afsk_rx/ui_afsk_rx.hpp @@ -33,6 +33,10 @@ #include "log_file.hpp" #include "utility.hpp" +using namespace ui; + +namespace ui::external_app::afsk_rx { + class AFSKLogger { public: Optional append(const std::string& filename) { @@ -45,8 +49,6 @@ class AFSKLogger { LogFile log_file{}; }; -namespace ui { - class AFSKRxView : public View { public: AFSKRxView(NavigationView& nav); @@ -116,6 +118,6 @@ class AFSKRxView : public View { }}; }; -} /* namespace ui */ +} // namespace ui::external_app::afsk_rx #endif /*__UI_AFSK_RX_H__*/ diff --git a/firmware/application/external/external.cmake b/firmware/application/external/external.cmake new file mode 100644 index 00000000..b4f52f30 --- /dev/null +++ b/firmware/application/external/external.cmake @@ -0,0 +1,15 @@ +set(EXTCPPSRC + + #pacman + external/pacman/main.cpp + external/pacman/ui_pacman.cpp + + #afsk_rx + external/afsk_rx/main.cpp + external/afsk_rx/ui_afsk_rx.cpp +) + +set(EXTAPPLIST + pacman + afsk_rx +) diff --git a/firmware/application/external/external.ld b/firmware/application/external/external.ld new file mode 100644 index 00000000..80604fb6 --- /dev/null +++ b/firmware/application/external/external.ld @@ -0,0 +1,37 @@ +/* + Copyright (C) 2023 Bernd Herzog + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +MEMORY +{ + /* external apps: regions can't overlap so addresses are corrected after build */ + ram_external_app_pacman (rwx) : org = 0xEEE90000, len = 40k + ram_external_app_afsk_rx (rwx) : org = 0xEEEA0000, len = 40k +} + +SECTIONS +{ + .external_app_pacman : ALIGN(16) SUBALIGN(16) + { + KEEP(*(.external_app.app_pacman.application_information)); + *(*ui*external_app*pacman*); + } > ram_external_app_pacman + + .external_app_afsk_rx : ALIGN(16) SUBALIGN(16) + { + KEEP(*(.external_app.app_afsk_rx.application_information)); + *(*ui*external_app*afsk_rx*); + } > ram_external_app_afsk_rx +} diff --git a/firmware/application/external/pacman/DrawIndexedMap.h b/firmware/application/external/pacman/DrawIndexedMap.h new file mode 100644 index 00000000..09d35713 --- /dev/null +++ b/firmware/application/external/pacman/DrawIndexedMap.h @@ -0,0 +1,66 @@ +/******************************************************************************/ +/* */ +/* PACMAN GAME FOR ARDUINO DUE */ +/* */ +/******************************************************************************/ +/* Copyright (c) 2014 Dr. NCX (mirracle.mxx@gmail.com) */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL */ +/* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR */ +/* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES */ +/* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, */ +/* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ +/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS */ +/* SOFTWARE. */ +/* */ +/* MIT license, all text above must be included in any redistribution. */ + +// #include "ili9328.h" + +typedef uint16_t ushort; + +#define C16(_rr, _gg, _bb) ((ushort)(((_rr & 0xF8) << 8) | ((_gg & 0xFC) << 3) | ((_bb & 0xF8) >> 3))) + +uint16_t _paletteW[] = + { + C16(0, 0, 0), + C16(255, 0, 0), // 1 red + C16(222, 151, 81), // 2 brown + C16(255, 0, 255), // 3 pink + + C16(0, 0, 0), + C16(0, 255, 255), // 5 cyan + C16(71, 84, 255), // 6 mid blue + C16(255, 184, 81), // 7 lt brown + + C16(0, 0, 0), + C16(255, 255, 0), // 9 yellow + C16(0, 0, 0), + C16(33, 33, 255), // 11 blue + + C16(0, 255, 0), // 12 green + C16(71, 84, 174), // 13 aqua + C16(255, 184, 174), // 14 lt pink + C16(222, 222, 255), // 15 whiteish +}; + +void drawIndexedmap(uint8_t* indexmap, int16_t x, uint16_t y) { + ui::Painter painter; + + byte i = 0; + word color = (word)_paletteW[indexmap[0]]; + for (byte tmpY = 0; tmpY < 8; tmpY++) { + byte width = 1; + for (byte tmpX = 0; tmpX < 8; tmpX++) { + word next_color = (word)_paletteW[indexmap[++i]]; + if ((color != next_color && width >= 1) || tmpX == 7) { + painter.draw_hline({x + tmpX - width + 1, y + tmpY}, width, ui::Color(color)); + + color = next_color; + width = 0; + } + width++; + } + } +} diff --git a/firmware/application/external/pacman/PacmanTiles.h b/firmware/application/external/pacman/PacmanTiles.h new file mode 100644 index 00000000..5b0e0dda --- /dev/null +++ b/firmware/application/external/pacman/PacmanTiles.h @@ -0,0 +1,2462 @@ +/******************************************************************************/ +/* */ +/* PACMAN GAME FOR ARDUINO DUE */ +/* */ +/******************************************************************************/ +/* Copyright (c) 2014 Dr. NCX (mirracle.mxx@gmail.com) */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL */ +/* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR */ +/* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES */ +/* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, */ +/* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ +/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS */ +/* SOFTWARE. */ +/* */ +/* MIT license, all text above must be included in any redistribution. */ + +#ifndef byte +typedef unsigned char byte; +typedef unsigned short ushort; +typedef unsigned long ulong; +#endif + +#ifndef uchar +typedef unsigned char uchar; +#endif + +#define PROGMEM +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +// typedef unsigned long uint32_t; +#define pgm_read_byte(_x) (*(_x)) +#define pgm_read_word(_x) (*(_x)) + +#ifndef _max +#define _max(_a, _b) (((_a) > (_b)) ? (_a) : (_b)) +#define _min(_a, _b) (((_a) < (_b)) ? (_a) : (_b)) +#endif + +#define ASSERT(_x) \ + if (!(_x)) assertFailed(NULL, __LINE__); + +// Playfield (36 tiles) +const byte playTiles[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0 + 0x0F, 0x30, 0x40, 0x47, 0x88, 0x90, 0x90, 0x90, // 1 + 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, // 2 + 0xFF, 0x00, 0x00, 0xE0, 0x10, 0x08, 0x08, 0x08, // 3 + 0xFF, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, // 4 + 0xF0, 0x0C, 0x02, 0xE2, 0x11, 0x09, 0x09, 0x09, // 5 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, // 6 + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, // 7 - Dot + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, // 8 + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // 9 + 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, // 10 + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x08, // 11 + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, // 12 + 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x10, 0x10, // 13 + 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, // 14 - Pill + 0x08, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, // 15 + 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, // 16 + 0x10, 0x10, 0x20, 0xC0, 0x00, 0x00, 0x00, 0x00, // 17 + 0x00, 0x00, 0x00, 0xE0, 0x10, 0x08, 0x08, 0x08, // 18 + 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, // 19 + 0x90, 0x90, 0x90, 0x88, 0x47, 0x40, 0x30, 0x0F, // 20 + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, // 21 + 0x10, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, 0x00, // 22 + 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, // 23 + 0x09, 0x09, 0x09, 0x11, 0xE2, 0x02, 0x0C, 0xF0, // 24 + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x09, // 25 + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x01, 0xFF, // 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, // 27 + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x80, 0xFF, // 28 + 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0x10, 0x90, // 29 + 0x09, 0x08, 0x08, 0x0F, 0x00, 0x00, 0x00, 0x00, // 30 + 0x90, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, // 31 + 0x90, 0x90, 0x90, 0x88, 0x87, 0x80, 0x80, 0x80, // 32 ascii space + 0x09, 0x09, 0x09, 0x11, 0xE1, 0x01, 0x01, 0x01, // 33 + 0x80, 0x80, 0x80, 0x87, 0x88, 0x90, 0x90, 0x90, // 34 + 0x01, 0x01, 0x01, 0xE1, 0x11, 0x09, 0x09, 0x09, // 35 + + // 0x24 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x24 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, // 0x25 . + 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, 0x00, 0x00, // 0x26 " + 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, 0x00, 0x00, // 0x27 " + 0xFE, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, // 0x28 n + 0x1F, 0x1F, 0x00, 0x3F, 0x3F, 0x30, 0x3F, 0x3F, // 0x29 + 0x8F, 0xCF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // 0x2A a + 0xF8, 0xFC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // 0x2B m + 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, // 0x2C c + 0x1F, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x1F, // 0x2D + 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, // 0x2E o + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x2F + + // ASCII 0..9 + 0x1C, 0x26, 0x63, 0x63, 0x63, 0x32, 0x1C, 0x00, // 0x30 0 + 0x0C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00, // 0x31 1 + 0x3E, 0x63, 0x07, 0x1E, 0x3C, 0x70, 0x7F, 0x00, // 0x32 2 + 0x3F, 0x06, 0x0C, 0x1E, 0x03, 0x63, 0x3E, 0x00, // 0x33 3 + 0x0E, 0x1E, 0x36, 0x66, 0x7F, 0x06, 0x06, 0x00, // 0x34 4 + 0x7E, 0x60, 0x7E, 0x03, 0x03, 0x63, 0x3E, 0x00, // 0x35 5 + 0x1E, 0x30, 0x60, 0x7E, 0x63, 0x63, 0x3E, 0x00, // 0x36 6 + 0x7F, 0x63, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x00, // 0x37 7 + 0x3C, 0x62, 0x72, 0x3C, 0x4F, 0x43, 0x3E, 0x00, // 0x38 8 + 0x3E, 0x63, 0x63, 0x3F, 0x03, 0x06, 0x3C, 0x00, // 0x39 9 + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, // 0x3A / + 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, // 0x3B - + 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // 0x3C + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, // 0x3D + 0xFF, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // 0x3E + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xFF, // 0x3F + + // ASCII A starts at 65 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x40 ' ' + 0x1C, 0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x00, // 0x41 a + 0x7E, 0x63, 0x63, 0x7E, 0x63, 0x63, 0x7E, 0x00, // 0x42 b + 0x1E, 0x33, 0x60, 0x60, 0x60, 0x33, 0x1E, 0x00, // 0x43 c + 0x7C, 0x66, 0x63, 0x63, 0x63, 0x66, 0x7C, 0x00, // 0x44 d + 0x3F, 0x30, 0x30, 0x3E, 0x30, 0x30, 0x3F, 0x00, // 0x45 e + 0x7F, 0x60, 0x60, 0x7E, 0x60, 0x60, 0x60, 0x00, // 0x46 f + 0x1F, 0x30, 0x60, 0x67, 0x63, 0x33, 0x1F, 0x00, // 0x47 g + 0x63, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x00, // 0x48 h + 0x3F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00, // 0x49 i + 0x03, 0x03, 0x03, 0x03, 0x03, 0x63, 0x3E, 0x00, // 0x4A j + 0x63, 0x66, 0x6C, 0x78, 0x7C, 0x6E, 0x67, 0x00, // 0x4B k + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x00, // 0x4C l + 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00, // 0x4D m + 0x63, 0x73, 0x7B, 0x7F, 0x6F, 0x67, 0x63, 0x00, // 0x4E n + 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, // 0x4F o + 0x7E, 0x63, 0x63, 0x63, 0x7E, 0x60, 0x60, 0x00, // 0x50 p + 0x3E, 0x63, 0x63, 0x63, 0x6F, 0x66, 0x3D, 0x00, // 0x51 q + 0x7E, 0x63, 0x63, 0x67, 0x7C, 0x6E, 0x67, 0x00, // 0x52 r + 0x3C, 0x66, 0x60, 0x3E, 0x03, 0x63, 0x3E, 0x00, // 0x53 s + 0x3F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, // 0x54 t + 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, // 0x55 u + 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x08, 0x00, // 0x56 v + 0x63, 0x63, 0x6B, 0x7F, 0x7F, 0x77, 0x63, 0x00, // 0x57 w + 0x63, 0x77, 0x3E, 0x1C, 0x3E, 0x77, 0x63, 0x00, // 0x58 x + 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x0C, 0x00, // 0x59 y + 0x7F, 0x07, 0x0E, 0x1C, 0x38, 0x70, 0x7F, 0x00, // 0x5A z + 0x0E, 0x0E, 0x1C, 0x18, 0x10, 0x00, 0x20, 0x00, // 0x5B ! + 0x3C, 0x42, 0x99, 0xA1, 0xA1, 0x99, 0x42, 0x3C, // 0x5C copyright + 0x00, 0x00, 0xF3, 0x88, 0xF0, 0x80, 0x80, 0x00, // 0x5D p + 0x00, 0x00, 0xE7, 0x88, 0x87, 0x80, 0x8F, 0x00, // 0x5E t + 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, // 0x5F s + +}; + +#define EXCM ('Z' + 1) + +// Playfield map 28x32 +const byte playMap1[] = { + 0x00, 0x00, 0x00, '1', 'U', 'P', 0x00, 0x00, 0x00, 'H', 'I', 'G', 'H', 0x00, 'S', 'C', 'O', 'R', 'E', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, '0', '0', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x0E, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x00, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x00, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x0E, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x15, 0x15, 0x15, 0x0D, 0x07, 0x08, 0x16, 0x0C, 0x0C, 0x0D, 0x00, 0x08, 0x09, 0x00, 0x0B, 0x0C, 0x0C, 0x17, 0x09, 0x07, 0x0B, 0x15, 0x15, 0x15, 0x15, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x13, 0x10, 0x10, 0x11, 0x00, 0x0F, 0x11, 0x00, 0x0F, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x00, 0x19, 0x15, 0x1A, 0x1B, 0x1B, 0x1C, 0x15, 0x1D, 0x00, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x11, 0x07, 0x0F, 0x11, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0x11, 0x07, 0x0F, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x15, 0x15, 0x15, 0x15, 0x15, 0x0D, 0x07, 0x0B, 0x0D, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0B, 0x0D, 0x07, 0x0B, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x00, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1F, 0x00, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00, 'R', 'E', 'A', 'D', 'Y', EXCM, 0x00, 0x00, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x00, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x00, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x11, 0x07, 0x0F, 0x11, 0x00, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x00, 0x0F, 0x11, 0x07, 0x0F, 0x02, 0x02, 0x02, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x12, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x13, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x0E, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x0E, 0x0A, + 0x20, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x21, + 0x22, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x23, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x18, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ + +// Playfield map 28x32 +const byte playMap2[] = { + 0x00, 0x00, 0x00, '1', 'U', 'P', 0x00, 0x00, 0x00, 'H', 'I', 'G', 'H', 0x00, 'S', 'C', 'O', 'R', 'E', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, '0', '0', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x15, 0x18, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x02, 0x02, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x02, 0x02, + 0x00, 0x00, 0x00, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x00, 0x00, 0x00, + 0x15, 0x15, 0x0D, 0x07, 0x08, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x09, 0x07, 0x0B, 0x15, 0x15, + 0x00, 0x00, 0x06, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x19, 0x15, 0x1A, 0x1B, 0x1B, 0x1C, 0x15, 0x1D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x13, 0x10, 0x10, 0x11, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x02, 0x02, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1F, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x02, 0x02, + 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x00, 'R', 'E', 'A', 'D', 'Y', EXCM, 0x00, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x15, 0x15, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x15, 0x15, + 0x00, 0x00, 0x06, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, 0x00, 0x00, + 0x01, 0x02, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x13, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x18, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ +// Playfield map 28x32 +const byte playMap3[] = { + 0x00, 0x00, 0x00, '1', 'U', 'P', 0x00, 0x00, 0x00, 'H', 'I', 'G', 'H', 0x00, 'S', 'C', 'O', 'R', 'E', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, '0', '0', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x15, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x15, + 0x01, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x13, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0E, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x12, 0x09, 0x07, 0x08, 0x16, 0x0C, 0x0C, 0x0C, 0x0C, 0x17, 0x09, 0x07, 0x08, 0x13, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, + 0x01, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x19, 0x15, 0x1A, 0x1B, 0x1B, 0x1C, 0x15, 0x1D, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0F, 0x11, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0F, 0x11, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x12, 0x09, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x08, 0x13, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1F, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x00, 'R', 'E', 'A', 'D', 'Y', EXCM, 0x00, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x15, 0x18, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, 0x00, 0x00, + 0x02, 0x02, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x02, 0x02, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x15, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x15, + 0x01, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x05, + 0x06, 0x07, 0x07, 0x0E, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x0E, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x18, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ +// Playfield map 28x32 +const byte playMap4[] = { + 0x00, 0x00, 0x00, '1', 'U', 'P', 0x00, 0x00, 0x00, 'H', 'I', 'G', 'H', 0x00, 'S', 'C', 'O', 'R', 'E', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, '0', '0', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x13, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x11, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0F, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x18, + 0x02, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x02, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0B, 0x0D, 0x07, 0x0B, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x19, 0x15, 0x1A, 0x1B, 0x1B, 0x1C, 0x15, 0x1D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1F, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 'R', 'E', 'A', 'D', 'Y', EXCM, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x13, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x18, + 0x01, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x13, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x0E, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x18, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ +// Playfield map 28x32 +const byte playMap5[] = { + 0x00, 0x00, 0x00, '1', 'U', 'P', 0x00, 0x00, 0x00, 'H', 'I', 'G', 'H', 0x00, 'S', 'C', 'O', 'R', 'E', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, '0', '0', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x13, 0x10, 0x10, 0x10, 0x10, 0x12, 0x09, 0x07, 0x08, 0x00, 0x00, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x16, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x17, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x15, 0x18, + 0x00, 0x00, 0x06, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x12, 0x13, 0x10, 0x10, 0x11, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, + 0x02, 0x02, 0x11, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x19, 0x15, 0x1A, 0x1B, 0x1B, 0x1C, 0x15, 0x1D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0F, 0x02, 0x02, + 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, + 0x0C, 0x0C, 0x0C, 0x0C, 0x17, 0x09, 0x0E, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x0E, 0x08, 0x16, 0x0C, 0x0C, 0x0C, 0x0C, + 0x10, 0x10, 0x10, 0x10, 0x12, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x13, 0x10, 0x10, 0x10, 0x10, + 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1F, 0x07, 0x08, 0x09, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, + 0x15, 0x15, 0x0D, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x00, 'R', 'E', 'A', 'D', 'Y', EXCM, 0x00, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x0B, 0x15, 0x15, + 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x07, 0x08, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x09, 0x07, 0x07, 0x07, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x0B, 0x0D, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0B, 0x0D, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x07, 0x08, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x09, 0x07, 0x0A, 0x00, 0x00, + 0x01, 0x02, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x02, 0x05, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x06, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x08, 0x16, 0x0C, 0x0C, 0x0C, 0x0C, 0x17, 0x09, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x0D, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x13, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x12, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x08, 0x09, 0x07, 0x0B, 0x0C, 0x17, 0x16, 0x0C, 0x0C, 0x0D, 0x07, 0x0B, 0x0D, 0x07, 0x0B, 0x0C, 0x0C, 0x17, 0x16, 0x0C, 0x0D, 0x07, 0x08, 0x09, 0x07, 0x0A, + 0x06, 0x07, 0x0F, 0x11, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x08, 0x09, 0x07, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x07, 0x0F, 0x11, 0x07, 0x0A, + 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x09, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0A, + 0x14, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x18, 0x14, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x18, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + // 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; + +/******************************************************************************/ +/******************************************************************************/ +/******************************************************************************/ + +// 8x8 sprites 256,1 bit +const byte textTiles[] = { + 0x00, 0x1C, 0x26, 0x63, 0x63, 0x63, 0x32, 0x1C, // 0x00 + 0x00, 0x0C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, // 0x01 + 0x00, 0x3E, 0x63, 0x07, 0x1E, 0x3C, 0x70, 0x7F, // 0x02 + 0x00, 0x3F, 0x06, 0x0C, 0x1E, 0x03, 0x63, 0x3E, // 0x03 + 0x00, 0x0E, 0x1E, 0x36, 0x66, 0x7F, 0x06, 0x06, // 0x04 + 0x00, 0x7E, 0x60, 0x7E, 0x03, 0x03, 0x63, 0x3E, // 0x05 + 0x00, 0x1E, 0x30, 0x60, 0x7E, 0x63, 0x63, 0x3E, // 0x06 + 0x00, 0x7F, 0x63, 0x06, 0x0C, 0x18, 0x18, 0x18, // 0x07 + 0x00, 0x3C, 0x62, 0x72, 0x3C, 0x4F, 0x43, 0x3E, // 0x08 + 0x00, 0x3E, 0x63, 0x63, 0x3F, 0x03, 0x06, 0x3C, // 0x09 + 0x00, 0x1C, 0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, // 0x0A + 0x00, 0x7E, 0x63, 0x63, 0x7E, 0x63, 0x63, 0x7E, // 0x0B + 0x00, 0x1E, 0x33, 0x60, 0x60, 0x60, 0x33, 0x1E, // 0x0C + 0x00, 0x7C, 0x66, 0x63, 0x63, 0x63, 0x66, 0x7C, // 0x0D + 0x00, 0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E, // 0x0E + 0x00, 0xFE, 0xC0, 0xC0, 0xFC, 0xC0, 0xC0, 0xC0, // 0x0F + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, // 0x10 + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, // 0x11 + 0x00, 0x00, 0x30, 0x78, 0x78, 0x30, 0x00, 0x00, // 0x12 + 0x00, 0x00, 0x30, 0x78, 0x78, 0x30, 0x00, 0x00, // 0x13 + 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, // 0x14 + 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, // 0x15 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x19 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x1A + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x1B + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x1C + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x1D + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x1E + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x1F + + 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0x78, // 0x20 pacman + 0x00, 0x00, 0x07, 0x0F, 0x1F, 0x07, 0x01, 0x00, // 0x21 + 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, // 0x22 + 0x01, 0x07, 0x1F, 0x0F, 0x07, 0x00, 0x00, 0x00, // 0x23 + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x24 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, // 0x25 . + 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, 0x00, 0x00, // 0x26 " + 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, 0x00, 0x00, // 0x27 " + 0xFE, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, // 0x28 n + 0x1F, 0x1F, 0x00, 0x3F, 0x3F, 0x30, 0x3F, 0x3F, // 0x29 + 0x8F, 0xCF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // 0x2A a + 0xF8, 0xFC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // 0x2B m + 0x7F, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0x7F, // 0x2C c + 0x1F, 0x3F, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x1F, // 0x2D + 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, // 0x2E o + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x2F + + 0x1C, 0x26, 0x63, 0x63, 0x63, 0x32, 0x1C, 0x00, // 0x30 0 + 0x0C, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00, // 0x31 1 + 0x3E, 0x63, 0x07, 0x1E, 0x3C, 0x70, 0x7F, 0x00, // 0x32 2 + 0x3F, 0x06, 0x0C, 0x1E, 0x03, 0x63, 0x3E, 0x00, // 0x33 3 + 0x0E, 0x1E, 0x36, 0x66, 0x7F, 0x06, 0x06, 0x00, // 0x34 4 + 0x7E, 0x60, 0x7E, 0x03, 0x03, 0x63, 0x3E, 0x00, // 0x35 5 + 0x1E, 0x30, 0x60, 0x7E, 0x63, 0x63, 0x3E, 0x00, // 0x36 6 + 0x7F, 0x63, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x00, // 0x37 7 + 0x3C, 0x62, 0x72, 0x3C, 0x4F, 0x43, 0x3E, 0x00, // 0x38 8 + 0x3E, 0x63, 0x63, 0x3F, 0x03, 0x06, 0x3C, 0x00, // 0x39 9 + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, // 0x3A / + 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, // 0x3B - + 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // 0x3C + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, // 0x3D + 0xFF, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // 0x3E + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xFF, // 0x3F + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x40 ' ' + 0x1C, 0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x00, // 0x41 a + 0x7E, 0x63, 0x63, 0x7E, 0x63, 0x63, 0x7E, 0x00, // 0x42 b + 0x1E, 0x33, 0x60, 0x60, 0x60, 0x33, 0x1E, 0x00, // 0x43 c + 0x7C, 0x66, 0x63, 0x63, 0x63, 0x66, 0x7C, 0x00, // 0x44 d + 0x3F, 0x30, 0x30, 0x3E, 0x30, 0x30, 0x3F, 0x00, // 0x45 e + 0x7F, 0x60, 0x60, 0x7E, 0x60, 0x60, 0x60, 0x00, // 0x46 f + 0x1F, 0x30, 0x60, 0x67, 0x63, 0x33, 0x1F, 0x00, // 0x47 g + 0x63, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x00, // 0x48 h + 0x3F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00, // 0x49 i + 0x03, 0x03, 0x03, 0x03, 0x03, 0x63, 0x3E, 0x00, // 0x4A j + 0x63, 0x66, 0x6C, 0x78, 0x7C, 0x6E, 0x67, 0x00, // 0x4B k + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3F, 0x00, // 0x4C l + 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00, // 0x4D m + 0x63, 0x73, 0x7B, 0x7F, 0x6F, 0x67, 0x63, 0x00, // 0x4E n + 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, // 0x4F o + 0x7E, 0x63, 0x63, 0x63, 0x7E, 0x60, 0x60, 0x00, // 0x50 p + 0x3E, 0x63, 0x63, 0x63, 0x6F, 0x66, 0x3D, 0x00, // 0x51 q + 0x7E, 0x63, 0x63, 0x67, 0x7C, 0x6E, 0x67, 0x00, // 0x52 r + 0x3C, 0x66, 0x60, 0x3E, 0x03, 0x63, 0x3E, 0x00, // 0x53 s + 0x3F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, // 0x54 t + 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, // 0x55 u + 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x08, 0x00, // 0x56 v + 0x63, 0x63, 0x6B, 0x7F, 0x7F, 0x77, 0x63, 0x00, // 0x57 w + 0x63, 0x77, 0x3E, 0x1C, 0x3E, 0x77, 0x63, 0x00, // 0x58 x + 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x0C, 0x00, // 0x59 y + 0x7F, 0x07, 0x0E, 0x1C, 0x38, 0x70, 0x7F, 0x00, // 0x5A z + 0x0E, 0x0E, 0x1C, 0x18, 0x10, 0x00, 0x20, 0x00, // 0x5B ! + 0x3C, 0x42, 0x99, 0xA1, 0xA1, 0x99, 0x42, 0x3C, // 0x5C copyright + 0x00, 0x00, 0xF3, 0x88, 0xF0, 0x80, 0x80, 0x00, // 0x5D p + 0x00, 0x00, 0xE7, 0x88, 0x87, 0x80, 0x8F, 0x00, // 0x5E t + 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, // 0x5F s + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // 0x60 - weird geometry + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x61 + 0x00, 0x00, 0x78, 0x78, 0x7C, 0x7E, 0x7F, 0x7F, // 0x62 + 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x63 + 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xFC, 0xFF, 0xFF, // 0x64 + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x65 + 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, // 0x66 + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x67 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xFF, 0xFF, // 0x68 + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x69 + 0x00, 0x00, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, // 0x6A + 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x6B + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, // 0x6C + 0x0F, 0x1F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x6D + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x6E + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x6F + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 - mapped to 0x70 + 0x11, 0x32, 0x12, 0x12, 0x12, 0x12, 0x39, 0x00, // 0x81 10 + 0xF9, 0x12, 0x22, 0x12, 0x0A, 0x8A, 0x71, 0x00, // 0x82 30 + 0xF9, 0x82, 0xF2, 0x0A, 0x0A, 0x8A, 0x71, 0x00, // 0x83 50 + 0xF9, 0x8A, 0x12, 0x12, 0x22, 0x22, 0x21, 0x00, // 0x84 70 + 0x8C, 0x52, 0x52, 0x52, 0x52, 0x52, 0x8C, 0x00, // 0x85 00 + 0x46, 0xC9, 0x49, 0x49, 0x49, 0x49, 0xE6, 0x00, // 0x86 10 + 0x01, 0x02, 0x02, 0x00, 0x00, 0x01, 0x03, 0x00, // 0x87 + 0xC6, 0x29, 0x29, 0x49, 0x89, 0x09, 0xE6, 0x00, // 0x88 20 + 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, // 0x89 + 0xE6, 0x49, 0x89, 0x49, 0x29, 0x29, 0xC6, 0x00, // 0x8A 30 + 0x03, 0x02, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, // 0x8B + 0xE6, 0x09, 0xC9, 0x29, 0x29, 0x29, 0xC6, 0x00, // 0x8C 50 + 0x31, 0x4A, 0x4A, 0x4A, 0x4A, 0x4A, 0x31, 0x00, // 0x8D 00 + 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, // 0x8E + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F +}; + +// 8x8 sprites 256,2 bit +const byte pacman8x8x2[] = { + // pacman + 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0xA8, 0x00, 0xAA, 0x00, 0xAA, 0x80, 0xAA, 0x80, 0x2A, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0xAA, 0x02, 0xAA, 0x00, 0x2A, 0x00, 0x02, 0x00, 0x00, + 0xAA, 0x80, 0xAA, 0x80, 0xAA, 0x00, 0xA8, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x2A, 0x02, 0xAA, 0x00, 0xAA, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // cherry + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x05, 0x50, 0x51, 0x00, 0x01, 0x00, 0x04, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xF4, 0x0F, 0xDF, + 0xDF, 0x00, 0xDF, 0xC0, 0xFF, 0xC0, 0xBF, 0xC0, 0xEF, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFC, 0x0E, 0xF3, 0x0F, 0xB3, 0x03, 0xF3, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // #if 0 + // strawberry + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x5F, 0x00, 0xFE, 0xC0, 0xEF, 0xC0, 0xFF, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x03, 0xD5, 0x0F, 0xFD, 0x0E, 0xFF, 0x0F, 0xEE, + 0xFB, 0xC0, 0xFF, 0x00, 0xFF, 0x00, 0xE0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0x03, 0xBE, 0x03, 0xFF, 0x00, 0xFB, 0x00, 0x3F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + + // peach + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x55, 0x40, 0x15, 0x00, 0xBF, 0x00, 0xFF, 0xC0, 0xFF, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFA, 0x03, 0xFE, 0x0F, 0xFF, + 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xC0, 0xFF, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0x0F, 0xFF, 0x0F, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, + + // bell + 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0xF3, 0x00, 0xCF, 0x03, 0xCF, + 0xFF, 0xC0, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF0, 0xA5, 0x70, 0xA5, 0x40, 0x00, 0x00, + 0x03, 0xCF, 0x03, 0xFF, 0x0F, 0x3F, 0x0F, 0x3F, 0x0F, 0xFF, 0x0D, 0x55, 0x01, 0x55, 0x00, 0x00, + + // apple + 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3F, 0x00, 0xFF, 0xC0, 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF1, 0x0F, 0xFD, 0x0F, 0xFF, 0x0F, 0xFF, 0x0F, 0xFF, + 0xFE, 0xF0, 0xFE, 0xF0, 0xFB, 0xC0, 0xFF, 0xC0, 0xFF, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0x0F, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x00, 0xFF, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, + + // grape + 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0xC0, 0x00, 0x90, 0x00, 0xD5, 0x00, 0x57, 0x40, 0x6D, 0x40, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x15, 0x00, 0x7B, 0x00, 0x5D, + 0x77, 0x50, 0xD6, 0xD0, 0x75, 0x50, 0xED, 0x40, 0x57, 0x40, 0x5D, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x01, 0xB5, 0x01, 0xD6, 0x01, 0xB5, 0x00, 0x5E, 0x00, 0x57, 0x00, 0x1D, 0x00, 0x01, 0x00, 0x00, + + // galaxian + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC0, 0x50, 0xC0, 0x96, 0xC0, 0xAA, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x05, 0x0C, 0x15, 0x0E, 0x59, 0x0E, 0xA9, + 0xAB, 0xC0, 0x2F, 0x00, 0x3C, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xAA, 0x03, 0xE2, 0x00, 0xF2, 0x00, 0x32, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + + // key + 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x14, 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x50, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x08, + 0xA0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0xA0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, + /// #endif +}; + +// 16x16 sprites 2 bit +// Pixels are swizzled within byte 3210 instead of 0123 +const byte pacman16x16[] = { + // 0 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x50, + 0x05, + 0x00, + 0x00, + 0x55, + 0x55, + 0x00, + 0x40, + 0x55, + 0x55, + 0x01, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x69, + 0x69, + 0x05, + 0x54, + 0x69, + 0x69, + 0x15, + 0x54, + 0x55, + 0x55, + 0x15, + 0x54, + 0x55, + 0x55, + 0x15, + 0x94, + 0x96, + 0x96, + 0x16, + 0x64, + 0x69, + 0x69, + 0x19, + 0x54, + 0x55, + 0x55, + 0x15, + 0x14, + 0x15, + 0x54, + 0x14, + 0x04, + 0x14, + 0x14, + 0x10, + 0x00, + 0x00, + 0x00, + 0x00, + // 1 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x50, + 0x05, + 0x00, + 0x00, + 0x55, + 0x55, + 0x00, + 0x40, + 0x55, + 0x55, + 0x01, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x69, + 0x69, + 0x05, + 0x54, + 0x69, + 0x69, + 0x15, + 0x54, + 0x55, + 0x55, + 0x15, + 0x54, + 0x55, + 0x55, + 0x15, + 0x94, + 0x96, + 0x96, + 0x16, + 0x64, + 0x69, + 0x69, + 0x19, + 0x54, + 0x55, + 0x55, + 0x15, + 0x54, + 0x51, + 0x45, + 0x15, + 0x50, + 0x40, + 0x01, + 0x05, + 0x00, + 0x00, + 0x00, + 0x00, + // 2 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xBE, + 0xEA, + 0x0B, + 0xA0, + 0xFF, + 0xFA, + 0x0F, + 0xA0, + 0x5F, + 0xFA, + 0x05, + 0xA8, + 0x5F, + 0xFA, + 0x25, + 0xA8, + 0xBE, + 0xEA, + 0x2B, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0x28, + 0x2A, + 0xA8, + 0x28, + 0x08, + 0x28, + 0x28, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, + // 3 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xBE, + 0xEA, + 0x0B, + 0xA0, + 0xFF, + 0xFA, + 0x0F, + 0xA0, + 0x5F, + 0xFA, + 0x05, + 0xA8, + 0x5F, + 0xFA, + 0x25, + 0xA8, + 0xBE, + 0xEA, + 0x2B, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xA2, + 0x8A, + 0x2A, + 0xA0, + 0x80, + 0x02, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + // 4 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x0A, + 0xA0, + 0xAF, + 0xFA, + 0x0A, + 0xE0, + 0xBF, + 0xFE, + 0x0B, + 0xE8, + 0xBF, + 0xFE, + 0x2B, + 0xE8, + 0xB5, + 0x5E, + 0x2B, + 0xA8, + 0xA5, + 0x5A, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0x28, + 0x2A, + 0xA8, + 0x28, + 0x08, + 0x28, + 0x28, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, + // 5 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x0A, + 0xA0, + 0xAF, + 0xFA, + 0x0A, + 0xE0, + 0xBF, + 0xFE, + 0x0B, + 0xE8, + 0xBF, + 0xFE, + 0x2B, + 0xE8, + 0xB5, + 0x5E, + 0x2B, + 0xA8, + 0xA5, + 0x5A, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xA2, + 0x8A, + 0x2A, + 0xA0, + 0x80, + 0x02, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + // 6 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0xE0, + 0xAB, + 0xBE, + 0x0A, + 0xF0, + 0xAF, + 0xFF, + 0x0A, + 0x50, + 0xAF, + 0xF5, + 0x0A, + 0x58, + 0xAF, + 0xF5, + 0x2A, + 0xE8, + 0xAB, + 0xBE, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0x28, + 0x2A, + 0xA8, + 0x28, + 0x08, + 0x28, + 0x28, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, + // 7 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0xE0, + 0xAB, + 0xBE, + 0x0A, + 0xF0, + 0xAF, + 0xFF, + 0x0A, + 0x50, + 0xAF, + 0xF5, + 0x0A, + 0x58, + 0xAF, + 0xF5, + 0x2A, + 0xE8, + 0xAB, + 0xBE, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xA2, + 0x8A, + 0x2A, + 0xA0, + 0x80, + 0x02, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + // 8 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xA5, + 0x5A, + 0x00, + 0xC0, + 0xB5, + 0x5E, + 0x03, + 0xE0, + 0xBF, + 0xFE, + 0x0B, + 0xE0, + 0xBF, + 0xFE, + 0x0B, + 0xA0, + 0xAF, + 0xFA, + 0x0A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0x28, + 0x2A, + 0xA8, + 0x28, + 0x08, + 0x28, + 0x28, + 0x20, + 0x00, + 0x00, + 0x00, + 0x00, + // 9 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x0A, + 0x00, + 0x00, + 0xA5, + 0x5A, + 0x00, + 0xC0, + 0xB5, + 0x5E, + 0x03, + 0xE0, + 0xBF, + 0xFE, + 0x0B, + 0xE0, + 0xBF, + 0xFE, + 0x0B, + 0xA0, + 0xAF, + 0xFA, + 0x0A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0xA8, + 0xA2, + 0x8A, + 0x2A, + 0xA0, + 0x80, + 0x02, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + // 10 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xFC, + 0xC0, + 0x03, + 0x0F, + 0x03, + 0x33, + 0xCC, + 0x30, + 0x03, + 0x33, + 0xCC, + 0x30, + 0xC0, + 0x30, + 0xCC, + 0x30, + 0x30, + 0x30, + 0xCC, + 0x30, + 0x0C, + 0x30, + 0xCC, + 0x30, + 0xFF, + 0xC3, + 0x03, + 0x0F, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 11 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xC0, + 0xC0, + 0x03, + 0x0F, + 0xF0, + 0x30, + 0xCC, + 0x30, + 0xCC, + 0x30, + 0xCC, + 0x30, + 0xC3, + 0x30, + 0xCC, + 0x30, + 0xFF, + 0x33, + 0xCC, + 0x30, + 0xC0, + 0x30, + 0xCC, + 0x30, + 0xC0, + 0xC0, + 0x03, + 0x0F, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 12 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xFC, + 0xC0, + 0x03, + 0x0F, + 0x03, + 0x33, + 0xCC, + 0x30, + 0x03, + 0x33, + 0xCC, + 0x30, + 0xFC, + 0x30, + 0xCC, + 0x30, + 0x03, + 0x33, + 0xCC, + 0x30, + 0x03, + 0x33, + 0xCC, + 0x30, + 0xFC, + 0xC0, + 0x03, + 0x0F, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 13 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xC3, + 0x0F, + 0x0F, + 0x3C, + 0x33, + 0xC0, + 0x30, + 0xC3, + 0x33, + 0xC0, + 0x30, + 0xC3, + 0xF3, + 0xCF, + 0x30, + 0xC3, + 0x33, + 0xCC, + 0x30, + 0xC3, + 0x33, + 0xCC, + 0x30, + 0xC3, + 0xC3, + 0x03, + 0x0F, + 0x3C, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 14 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x80, + 0xAA, + 0x0A, + 0x00, + 0xA0, + 0xAA, + 0x02, + 0x00, + 0xA0, + 0xAA, + 0x00, + 0x00, + 0xA8, + 0x2A, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x00, + 0xA8, + 0x02, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x00, + 0xA8, + 0x2A, + 0x00, + 0x00, + 0xA0, + 0xAA, + 0x00, + 0x00, + 0xA0, + 0xAA, + 0x02, + 0x00, + 0x80, + 0xAA, + 0x0A, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 15 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x00, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA8, + 0x2A, + 0xAA, + 0x0A, + 0xA8, + 0x0A, + 0xA8, + 0x0A, + 0xA8, + 0x02, + 0xA0, + 0x0A, + 0xA8, + 0x00, + 0x80, + 0x0A, + 0x28, + 0x00, + 0x00, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 16 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x00, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA8, + 0xAA, + 0x2A, + 0x00, + 0xA8, + 0xAA, + 0x00, + 0x00, + 0xA8, + 0x02, + 0x00, + 0x00, + 0xA8, + 0xAA, + 0x00, + 0x00, + 0xA8, + 0xAA, + 0x2A, + 0x00, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0x80, + 0xAA, + 0xAA, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 17 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x00, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA8, + 0xAA, + 0xAA, + 0x0A, + 0xA8, + 0x2A, + 0xAA, + 0x0A, + 0xA8, + 0x2A, + 0xAA, + 0x0A, + 0xA8, + 0x0A, + 0xA8, + 0x0A, + 0xA8, + 0x0A, + 0xA8, + 0x0A, + 0xA0, + 0x0A, + 0xA8, + 0x02, + 0xA0, + 0x02, + 0xA0, + 0x02, + 0x80, + 0x02, + 0xA0, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 18 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x80, + 0xAA, + 0xAA, + 0x00, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA8, + 0xAA, + 0xAA, + 0x0A, + 0xA8, + 0xAA, + 0xAA, + 0x0A, + 0xA8, + 0xAA, + 0xAA, + 0x0A, + 0xA8, + 0xAA, + 0xAA, + 0x0A, + 0xA8, + 0xAA, + 0xAA, + 0x0A, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0xA0, + 0xAA, + 0xAA, + 0x02, + 0x80, + 0xAA, + 0xAA, + 0x00, + 0x00, + 0xA8, + 0x0A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 19 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x2A, + 0x00, + 0x00, + 0xAA, + 0xAA, + 0x02, + 0x80, + 0xAA, + 0xAA, + 0x0A, + 0x80, + 0xAA, + 0xAA, + 0x0A, + 0x00, + 0xA8, + 0xAA, + 0x2A, + 0x00, + 0x00, + 0xAA, + 0x2A, + 0x00, + 0x00, + 0x80, + 0x2A, + 0x00, + 0x00, + 0xAA, + 0x2A, + 0x00, + 0xA8, + 0xAA, + 0x2A, + 0x80, + 0xAA, + 0xAA, + 0x0A, + 0x80, + 0xAA, + 0xAA, + 0x0A, + 0x00, + 0xAA, + 0xAA, + 0x02, + 0x00, + 0xA0, + 0x2A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 20 + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xA0, + 0x2A, + 0x00, + 0x00, + 0xA0, + 0xAA, + 0x02, + 0x00, + 0x80, + 0xAA, + 0x0A, + 0x00, + 0x00, + 0xAA, + 0x0A, + 0x00, + 0x00, + 0xA8, + 0x2A, + 0x00, + 0x00, + 0xA0, + 0x2A, + 0x00, + 0x00, + 0x80, + 0x2A, + 0x00, + 0x00, + 0xA0, + 0x2A, + 0x00, + 0x00, + 0xA8, + 0x2A, + 0x00, + 0x00, + 0xAA, + 0x0A, + 0x00, + 0x80, + 0xAA, + 0x0A, + 0x00, + 0xA0, + 0xAA, + 0x02, + 0x00, + 0xA0, + 0x2A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // 21 = CHERRY + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x0F, + 0x00, + 0x00, + 0xF0, + 0x0F, + 0x00, + 0x00, + 0xCF, + 0x00, + 0x00, + 0xC0, + 0xC0, + 0x00, + 0x40, + 0x35, + 0x30, + 0x00, + 0x50, + 0x5D, + 0x0C, + 0x00, + 0x50, + 0x15, + 0x5D, + 0x00, + 0x90, + 0x45, + 0x5D, + 0x01, + 0x50, + 0x46, + 0x55, + 0x01, + 0x40, + 0x45, + 0x56, + 0x01, + 0x00, + 0x40, + 0x59, + 0x01, + 0x00, + 0x00, + 0x55, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + + // 22 = STRAWBERRY + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x80, + 0x00, + 0x00, + 0x00, + 0xBF, + 0x3F, + 0x00, + 0x40, + 0xFD, + 0x5F, + 0x00, + 0x50, + 0xD5, + 0x95, + 0x01, + 0x90, + 0x55, + 0x59, + 0x01, + 0x50, + 0x99, + 0x55, + 0x01, + 0x50, + 0x55, + 0x65, + 0x01, + 0x40, + 0x96, + 0x55, + 0x00, + 0x40, + 0x55, + 0x55, + 0x00, + 0x00, + 0x65, + 0x19, + 0x00, + 0x00, + 0x54, + 0x05, + 0x00, + 0x00, + 0x40, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + + // 23 = PEACH + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x3C, + 0x00, + 0x00, + 0x80, + 0xFF, + 0x03, + 0x00, + 0x80, + 0xFC, + 0x00, + 0x00, + 0xA5, + 0x56, + 0x00, + 0x40, + 0x95, + 0x55, + 0x01, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x55, + 0x55, + 0x05, + 0x50, + 0x55, + 0x55, + 0x05, + 0x40, + 0x55, + 0x55, + 0x01, + 0x40, + 0x55, + 0x55, + 0x01, + 0x00, + 0x54, + 0x15, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + + // 24 = BELL + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x40, + 0x01, + 0x00, + 0x00, + 0x14, + 0x14, + 0x00, + 0x00, + 0x55, + 0x15, + 0x00, + 0x40, + 0x41, + 0x55, + 0x00, + 0x40, + 0x54, + 0x55, + 0x01, + 0x50, + 0x54, + 0x55, + 0x01, + 0x50, + 0x54, + 0x55, + 0x05, + 0x50, + 0x55, + 0x55, + 0x05, + 0x10, + 0x55, + 0x55, + 0x05, + 0x14, + 0x55, + 0x55, + 0x15, + 0x54, + 0x55, + 0x55, + 0x15, + 0x54, + 0x55, + 0x55, + 0x15, + 0x04, + 0x00, + 0x2A, + 0x14, + 0x00, + 0x00, + 0x2A, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + + // 25 = APPLE + 0x00, + 0x00, + 0x03, + 0x00, + 0xA0, + 0xC2, + 0xA8, + 0x02, + 0xA8, + 0xEA, + 0xAA, + 0x2A, + 0xAA, + 0xAA, + 0xAA, + 0x2A, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xAA, + 0xA9, + 0xAA, + 0xAA, + 0xAA, + 0xA9, + 0xAA, + 0xAA, + 0xAA, + 0xA9, + 0xA8, + 0xAA, + 0x6A, + 0x2A, + 0xA8, + 0xAA, + 0x6A, + 0x2A, + 0xA8, + 0xAA, + 0xAA, + 0x2A, + 0x80, + 0xAA, + 0xAA, + 0x02, + 0x00, + 0xAA, + 0xAA, + 0x00, + 0x00, + 0x28, + 0x2A, + 0x00, + + // 26 = GRAPE + 0x00, + 0x03, + 0x00, + 0x00, + 0x00, + 0xFC, + 0x3F, + 0x00, + 0x00, + 0xC0, + 0x00, + 0x00, + 0x00, + 0xD0, + 0x09, + 0x00, + 0x00, + 0xD0, + 0x09, + 0x00, + 0x00, + 0xD5, + 0x55, + 0x00, + 0x40, + 0x7F, + 0xD5, + 0x01, + 0x40, + 0x5D, + 0x7F, + 0x01, + 0xD0, + 0x57, + 0xD7, + 0x05, + 0xD0, + 0xF5, + 0xD5, + 0x07, + 0xD0, + 0x57, + 0x57, + 0x05, + 0x40, + 0xFD, + 0x7F, + 0x01, + 0x40, + 0xFD, + 0x7F, + 0x01, + 0x40, + 0x75, + 0xD5, + 0x01, + 0x00, + 0x55, + 0x55, + 0x00, + 0x00, + 0x50, + 0x0B, + 0x00, + + // 27 = GALAXIAN + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xC0, + 0x00, + 0x00, + 0x10, + 0xF0, + 0x03, + 0x01, + 0x10, + 0xFC, + 0x0F, + 0x01, + 0x90, + 0xEF, + 0xBE, + 0x01, + 0x90, + 0xEA, + 0xAA, + 0x01, + 0x50, + 0xAA, + 0x6A, + 0x01, + 0x40, + 0x89, + 0x58, + 0x00, + 0x00, + 0x85, + 0x14, + 0x00, + 0x00, + 0x84, + 0x04, + 0x00, + 0x00, + 0x80, + 0x00, + 0x00, + 0x00, + 0x80, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + + // 28 = KEY + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x50, + 0x01, + 0x00, + 0x00, + 0x05, + 0x14, + 0x00, + 0x00, + 0x55, + 0x15, + 0x00, + 0x00, + 0x55, + 0x15, + 0x00, + 0x00, + 0x55, + 0x15, + 0x00, + 0x00, + 0xE0, + 0x02, + 0x00, + 0x00, + 0xE0, + 0x0A, + 0x00, + 0x00, + 0xE0, + 0x02, + 0x00, + 0x00, + 0xE0, + 0x03, + 0x00, + 0x00, + 0xE0, + 0x02, + 0x00, + 0x00, + 0xE0, + 0x0A, + 0x00, + 0x00, + 0xE0, + 0x02, + 0x00, + 0x00, + 0x80, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, +}; diff --git a/firmware/application/external/pacman/crntsc.h b/firmware/application/external/pacman/crntsc.h new file mode 100644 index 00000000..1bf18ad3 --- /dev/null +++ b/firmware/application/external/pacman/crntsc.h @@ -0,0 +1,2858 @@ +/******************************************************************************/ +/* */ +/* PACMAN GAME FOR ARDUINO DUE */ +/* */ +/******************************************************************************/ +/* Copyright (c) 2014 Dr. NCX (mirracle.mxx@gmail.com) */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL */ +/* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR */ +/* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES */ +/* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, */ +/* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ +/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS */ +/* SOFTWARE. */ +/* */ +/* MIT license, all text above must be included in any redistribution. */ + +const uint16_t cbtab[176] = { + 0x1e3c, 0x593e, 0x1e37, 0x5942, 0x1f33, 0x5746, 0x212f, 0x554a, + 0x232b, 0x534d, 0x2628, 0x5051, 0x2925, 0x4d54, 0x2c22, 0x4956, + 0x3020, 0x4558, 0x341f, 0x4159, 0x391e, 0x3c59, 0x3c1e, 0x3859, + 0x411e, 0x3459, 0x451f, 0x3058, 0x4920, 0x2c56, 0x4d22, 0x2854, + 0x5025, 0x2551, 0x5327, 0x224d, 0x552b, 0x214a, 0x572f, 0x1f46, + 0x5932, 0x1e41, 0x5937, 0x1e3d, 0x593c, 0x1e3a, 0x5940, 0x1e35, + 0x5845, 0x2031, 0x5649, 0x222d, 0x544d, 0x2429, 0x514f, 0x2726, + 0x4f51, 0x2a24, 0x4b54, 0x2e21, 0x4756, 0x311f, 0x4358, 0x351e, + 0x3e59, 0x3c1e, 0x3c5a, 0x3f1e, 0x3559, 0x451e, 0x3258, 0x4820, + 0x2d57, 0x4a21, 0x2a55, 0x4e24, 0x2752, 0x5126, 0x254f, 0x5429, + 0x204d, 0x572d, 0x1f47, 0x5830, 0x1e44, 0x5936, 0x1e3e, 0x5938, + 0x1e3c, 0x593e, 0x1e37, 0x5942, 0x1f33, 0x5746, 0x212f, 0x554a, + 0x232b, 0x534d, 0x2628, 0x5051, 0x2925, 0x4d54, 0x2c22, 0x4956, + 0x3020, 0x4558, 0x341f, 0x4159, 0x391e, 0x3c59, 0x3c1e, 0x3859, + 0x411e, 0x3459, 0x451f, 0x3058, 0x4920, 0x2c56, 0x4d22, 0x2854, + 0x5025, 0x2551, 0x5327, 0x224d, 0x552b, 0x214a, 0x572f, 0x1f46, + 0x5932, 0x1e41, 0x5937, 0x1e3d, 0x593c, 0x1e3a, 0x5940, 0x1e35, + 0x5845, 0x2031, 0x5649, 0x222d, 0x544d, 0x2429, 0x514f, 0x2726, + 0x4f51, 0x2a24, 0x4b54, 0x2e21, 0x4756, 0x311f, 0x4358, 0x351e, + 0x3e59, 0x3c1e, 0x3c5a, 0x3f1e, 0x3559, 0x451e, 0x3258, 0x4820, + 0x2d57, 0x4a21, 0x2a55, 0x4e24, 0x2752, 0x5126, 0x254f, 0x5429, + 0x204d, 0x572d, 0x1f47, 0x5830, 0x1e44, 0x5936, 0x1e3e, 0x5938}; +const uint16_t crtab[88][256] = { + {0x4747, 0x6047, 0x7a48, 0x9348, 0x4d48, 0x6749, 0x8049, 0x994a, + 0x534a, 0x6d4a, 0x864b, 0xa04b, 0x5a4b, 0x734b, 0x8d4c, 0xa64c, + 0x604c, 0x7a4d, 0x934d, 0xac4e, 0x664e, 0x804e, 0x994f, 0xb34f, + 0x6d4f, 0x8650, 0xa050, 0xb951, 0x7351, 0x8d51, 0xa652, 0xbf52, + 0x4959, 0x6359, 0x7c5a, 0x965a, 0x505a, 0x695b, 0x835b, 0x9c5c, + 0x565c, 0x6f5c, 0x895d, 0xa25d, 0x5c5d, 0x765e, 0x8f5e, 0xa95f, + 0x635f, 0x7c5f, 0x9660, 0xaf60, 0x6960, 0x8261, 0x9c61, 0xb561, + 0x6f61, 0x8962, 0xa262, 0xbc63, 0x7663, 0x8f63, 0xa964, 0xc264, + 0x4c6b, 0x656c, 0x7f6c, 0x986d, 0x526d, 0x6c6d, 0x856e, 0x9f6e, + 0x596e, 0x726e, 0x8b6f, 0xa56f, 0x5f6f, 0x7870, 0x9270, 0xab71, + 0x6571, 0x7f71, 0x9872, 0xb272, 0x6c72, 0x8573, 0x9e73, 0xb874, + 0x7274, 0x8b74, 0xa575, 0xbe75, 0x7875, 0x9276, 0xab76, 0xc576, + 0x4f7d, 0x687e, 0x817e, 0x9b7f, 0x557f, 0x6e7f, 0x8880, 0xa180, + 0x5b80, 0x7581, 0x8e81, 0xa882, 0x6182, 0x7b82, 0x9483, 0xae83, + 0x6883, 0x8183, 0x9b84, 0xb484, 0x6e84, 0x8885, 0xa185, 0xbb86, + 0x7486, 0x8e86, 0xa787, 0xc187, 0x7b87, 0x9488, 0xae88, 0xc789, + 0x5190, 0x6b90, 0x8491, 0x9d91, 0x5791, 0x7191, 0x8a92, 0xa492, + 0x5e92, 0x7793, 0x9193, 0xaa94, 0x6494, 0x7e94, 0x9795, 0xb095, + 0x6a95, 0x8496, 0x9d96, 0xb797, 0x7197, 0x8a97, 0xa498, 0xbd98, + 0x7798, 0x9199, 0xaa99, 0xc399, 0x7d99, 0x979a, 0xb09a, 0xca9b, + 0x54a2, 0x6da2, 0x87a3, 0xa0a3, 0x5aa3, 0x73a4, 0x8da4, 0xa6a5, + 0x60a5, 0x7aa5, 0x93a6, 0xada6, 0x67a6, 0x80a6, 0x9aa7, 0xb3a7, + 0x6da7, 0x86a8, 0xa0a8, 0xb9a9, 0x73a9, 0x8da9, 0xa6aa, 0xc0aa, + 0x7aaa, 0x93ab, 0xadab, 0xc6ac, 0x80ac, 0x99ac, 0xb3ad, 0xccad, + 0x56b4, 0x70b4, 0x89b5, 0xa3b5, 0x5db5, 0x76b6, 0x8fb6, 0xa9b7, + 0x63b7, 0x7cb7, 0x96b8, 0xafb8, 0x69b8, 0x83b9, 0x9cb9, 0xb6ba, + 0x70ba, 0x89ba, 0xa2bb, 0xbcbb, 0x76bb, 0x8fbc, 0xa9bc, 0xc2bc, + 0x7cbc, 0x96bd, 0xafbd, 0xc9be, 0x83be, 0x9cbe, 0xb5bf, 0xcfbf, + 0x59c6, 0x72c7, 0x8cc7, 0xa5c8, 0x5fc8, 0x79c8, 0x92c9, 0xacc9, + 0x66c9, 0x7fc9, 0x98ca, 0xb2ca, 0x6cca, 0x85cb, 0x9fcb, 0xb8cc, + 0x72cc, 0x8ccc, 0xa5cd, 0xbfcd, 0x78cd, 0x92ce, 0xabce, 0xc5cf, + 0x7fcf, 0x98cf, 0xb2d0, 0xcbd0, 0x85d0, 0x9fd1, 0xb8d1, 0xd2d2}, + {0x4747, 0x374f, 0x2857, 0x1860, 0x575d, 0x4865, 0x386e, 0x2976, + 0x6773, 0x587c, 0x4884, 0x398c, 0x788a, 0x6892, 0x599a, 0x49a3, + 0x88a0, 0x78a8, 0x69b1, 0x59b9, 0x98b7, 0x89bf, 0x79c7, 0x6acf, + 0xa9cd, 0x99d5, 0x8add, 0x7ae6, 0xb9e3, 0xa9eb, 0x9af4, 0x8afc, + 0x5141, 0x4149, 0x3251, 0x2259, 0x6157, 0x525f, 0x4268, 0x3370, + 0x726d, 0x6276, 0x537e, 0x4386, 0x8284, 0x728c, 0x6394, 0x539c, + 0x929a, 0x83a2, 0x73ab, 0x64b3, 0xa2b0, 0x93b9, 0x83c1, 0x74c9, + 0xb3c7, 0xa3cf, 0x94d7, 0x84e0, 0xc3dd, 0xb4e5, 0xa4ee, 0x95f6, + 0x5b3b, 0x4c43, 0x3c4b, 0x2d53, 0x6b51, 0x5c59, 0x4c61, 0x3d6a, + 0x7c67, 0x6c70, 0x5d78, 0x4d80, 0x8c7e, 0x7c86, 0x6d8e, 0x5d96, + 0x9c94, 0x8d9c, 0x7da5, 0x6ead, 0xadaa, 0x9db3, 0x8ebb, 0x7ec3, + 0xbdc1, 0xadc9, 0x9ed1, 0x8ed9, 0xcdd7, 0xbedf, 0xaee8, 0x9ff0, + 0x6535, 0x563d, 0x4645, 0x374d, 0x764b, 0x6653, 0x575b, 0x4764, + 0x8661, 0x766a, 0x6772, 0x577a, 0x9678, 0x8780, 0x7788, 0x6890, + 0xa68e, 0x9796, 0x879e, 0x78a7, 0xb7a4, 0xa7ad, 0x98b5, 0x88bd, + 0xc7bb, 0xb8c3, 0xa8cb, 0x99d3, 0xd7d1, 0xc8d9, 0xb8e2, 0xa9ea, + 0x6f2e, 0x6037, 0x503f, 0x4147, 0x8045, 0x704d, 0x6155, 0x515e, + 0x905b, 0x8163, 0x716c, 0x6274, 0xa072, 0x917a, 0x8182, 0x728a, + 0xb188, 0xa190, 0x9298, 0x82a1, 0xc19e, 0xb1a6, 0xa2af, 0x92b7, + 0xd1b5, 0xc2bd, 0xb2c5, 0xa3cd, 0xe2cb, 0xd2d3, 0xc3db, 0xb3e4, + 0x7a28, 0x6a31, 0x5b39, 0x4b41, 0x8a3f, 0x7a47, 0x6b4f, 0x5b58, + 0x9a55, 0x8b5d, 0x7b66, 0x6c6e, 0xaa6b, 0x9b74, 0x8b7c, 0x7c84, + 0xbb82, 0xab8a, 0x9c92, 0x8c9b, 0xcb98, 0xbca0, 0xaca9, 0x9db1, + 0xdbaf, 0xccb7, 0xbcbf, 0xadc7, 0xecc5, 0xdccd, 0xcdd5, 0xbdde, + 0x8422, 0x742b, 0x6533, 0x553b, 0x9439, 0x8541, 0x7549, 0x6651, + 0xa44f, 0x9557, 0x8560, 0x7668, 0xb565, 0xa56e, 0x9676, 0x867e, + 0xc57c, 0xb584, 0xa68c, 0x9695, 0xd592, 0xc69a, 0xb6a3, 0xa7ab, + 0xe6a8, 0xd6b1, 0xc7b9, 0xb7c1, 0xf6bf, 0xe6c7, 0xd7cf, 0xc7d8, + 0x8e1c, 0x7e25, 0x6f2d, 0x5f35, 0x9e33, 0x8f3b, 0x7f43, 0x704b, + 0xaf49, 0x9f51, 0x9059, 0x8062, 0xbf5f, 0xaf68, 0xa070, 0x9078, + 0xcf76, 0xc07e, 0xb086, 0xa18e, 0xdf8c, 0xd094, 0xc09d, 0xb1a5, + 0xf0a2, 0xe0ab, 0xd1b3, 0xc1bb, 0xffb9, 0xf0c1, 0xe1c9, 0xd1d1}, + {0x4747, 0x614a, 0x7a4e, 0x9451, 0x4f47, 0x684b, 0x824e, 0x9c52, + 0x5748, 0x704c, 0x8a4f, 0xa452, 0x5e49, 0x784c, 0x9250, 0xac53, + 0x664a, 0x804d, 0x9a50, 0xb454, 0x6e4a, 0x884e, 0xa251, 0xbc54, + 0x764b, 0x904e, 0xaa52, 0xc355, 0x7e4c, 0x984f, 0xb152, 0xcb56, + 0x4858, 0x615c, 0x7b5f, 0x9563, 0x5059, 0x695d, 0x8360, 0x9d63, + 0x575a, 0x715d, 0x8b61, 0xa564, 0x5f5b, 0x795e, 0x9361, 0xad65, + 0x675b, 0x815f, 0x9b62, 0xb565, 0x6f5c, 0x895f, 0xa363, 0xbc66, + 0x775d, 0x9160, 0xaa63, 0xc467, 0x7f5d, 0x9961, 0xb264, 0xcc68, + 0x496a, 0x626d, 0x7c71, 0x9674, 0x506b, 0x6a6e, 0x8472, 0x9e75, + 0x586b, 0x726f, 0x8c72, 0xa676, 0x606c, 0x7a70, 0x9473, 0xae76, + 0x686d, 0x8270, 0x9c74, 0xb577, 0x706e, 0x8a71, 0xa374, 0xbd78, + 0x786e, 0x9272, 0xab75, 0xc578, 0x806f, 0x9972, 0xb376, 0xcd79, + 0x497c, 0x637f, 0x7d83, 0x9786, 0x517c, 0x6b80, 0x8583, 0x9f87, + 0x597d, 0x7381, 0x8d84, 0xa787, 0x617e, 0x7b81, 0x9585, 0xae88, + 0x697f, 0x8382, 0x9d85, 0xb689, 0x717f, 0x8b83, 0xa486, 0xbe89, + 0x7980, 0x9283, 0xac87, 0xc68a, 0x8181, 0x9a84, 0xb487, 0xce8b, + 0x4a8d, 0x6491, 0x7e94, 0x9898, 0x528e, 0x6c91, 0x8695, 0xa098, + 0x5a8f, 0x7492, 0x8e96, 0xa799, 0x6290, 0x7c93, 0x9696, 0xaf9a, + 0x6a90, 0x8494, 0x9d97, 0xb79a, 0x7291, 0x8b94, 0xa598, 0xbf9b, + 0x7a92, 0x9395, 0xad98, 0xc79c, 0x8192, 0x9b96, 0xb599, 0xcf9d, + 0x4b9f, 0x65a2, 0x7fa6, 0x99a9, 0x53a0, 0x6da3, 0x87a7, 0xa0aa, + 0x5ba0, 0x75a4, 0x8fa7, 0xa8ab, 0x63a1, 0x7da5, 0x96a8, 0xb0ab, + 0x6ba2, 0x85a5, 0x9ea9, 0xb8ac, 0x73a3, 0x8ca6, 0xa6a9, 0xc0ad, + 0x7aa3, 0x94a7, 0xaeaa, 0xc8ad, 0x82a4, 0x9ca7, 0xb6ab, 0xd0ae, + 0x4cb1, 0x66b4, 0x80b8, 0x99bb, 0x54b1, 0x6eb5, 0x88b8, 0xa1bc, + 0x5cb2, 0x76b6, 0x8fb9, 0xa9bc, 0x64b3, 0x7eb6, 0x97ba, 0xb1bd, + 0x6cb4, 0x85b7, 0x9fba, 0xb9be, 0x73b4, 0x8db8, 0xa7bb, 0xc1be, + 0x7bb5, 0x95b8, 0xafbc, 0xc9bf, 0x83b6, 0x9db9, 0xb7bc, 0xd1c0, + 0x4dc2, 0x67c6, 0x81c9, 0x9acd, 0x55c3, 0x6fc6, 0x88ca, 0xa2cd, + 0x5dc4, 0x77c7, 0x90cb, 0xaace, 0x65c4, 0x7ec8, 0x98cb, 0xb2cf, + 0x6cc5, 0x86c9, 0xa0cc, 0xbacf, 0x74c6, 0x8ec9, 0xa8cd, 0xc2d0, + 0x7cc7, 0x96ca, 0xb0cd, 0xcad1, 0x84c7, 0x9ecb, 0xb8ce, 0xd2d2}, + {0x4747, 0x374c, 0x2751, 0x1857, 0x555e, 0x4663, 0x3668, 0x276e, + 0x6475, 0x557a, 0x457f, 0x3585, 0x738c, 0x6391, 0x5496, 0x449c, + 0x82a3, 0x72a8, 0x62ad, 0x53b2, 0x90ba, 0x81bf, 0x71c4, 0x61c9, + 0x9fd0, 0x8fd6, 0x80db, 0x70e0, 0xaee7, 0x9eed, 0x8ef2, 0x7ff7, + 0x5341, 0x4347, 0x334c, 0x2451, 0x6158, 0x525e, 0x4263, 0x3268, + 0x706f, 0x6075, 0x517a, 0x417f, 0x7f86, 0x6f8c, 0x5f91, 0x5096, + 0x8d9d, 0x7ea2, 0x6ea8, 0x5ead, 0x9cb4, 0x8cb9, 0x7dbf, 0x6dc4, + 0xabcb, 0x9bd0, 0x8cd6, 0x7cdb, 0xbae2, 0xaae7, 0x9aed, 0x8bf2, + 0x5e3c, 0x4f41, 0x3f47, 0x2f4c, 0x6d53, 0x5d58, 0x4e5d, 0x3e63, + 0x7c6a, 0x6c6f, 0x5d74, 0x4d7a, 0x8b81, 0x7b86, 0x6b8b, 0x5c91, + 0x9998, 0x8a9d, 0x7aa2, 0x6aa8, 0xa8af, 0x98b4, 0x89b9, 0x79bf, + 0xb7c6, 0xa7cb, 0x97d0, 0x88d6, 0xc5dd, 0xb6e2, 0xa6e7, 0x96ed, + 0x6a37, 0x5b3c, 0x4b41, 0x3b46, 0x794d, 0x6953, 0x5a58, 0x4a5d, + 0x8864, 0x786a, 0x686f, 0x5974, 0x967b, 0x8781, 0x7786, 0x678b, + 0xa592, 0x9598, 0x869d, 0x76a2, 0xb4a9, 0xa4af, 0x94b4, 0x85b9, + 0xc2c0, 0xb3c6, 0xa3cb, 0x94d0, 0xd1d7, 0xc2dd, 0xb2e2, 0xa2e7, + 0x7631, 0x6636, 0x573c, 0x4741, 0x8548, 0x754d, 0x6553, 0x5658, + 0x935f, 0x8464, 0x746a, 0x656f, 0xa276, 0x927b, 0x8381, 0x7386, + 0xb18d, 0xa192, 0x9298, 0x829d, 0xc0a4, 0xb0a9, 0xa0af, 0x91b4, + 0xcebb, 0xbfc0, 0xafc5, 0x9fcb, 0xddd2, 0xcdd7, 0xbedc, 0xaee2, + 0x822c, 0x7231, 0x6336, 0x533c, 0x9143, 0x8148, 0x714d, 0x6253, + 0x9f5a, 0x905f, 0x8064, 0x706a, 0xae71, 0x9e76, 0x8f7b, 0x7f80, + 0xbd88, 0xad8d, 0x9d92, 0x8e97, 0xcb9e, 0xbca4, 0xaca9, 0x9cae, + 0xdab5, 0xcabb, 0xbbc0, 0xabc5, 0xe9cc, 0xd9d2, 0xcad7, 0xbadc, + 0x8e26, 0x7e2c, 0x6e31, 0x5f36, 0x9c3d, 0x8d43, 0x7d48, 0x6d4d, + 0xab54, 0x9b5a, 0x8c5f, 0x7c64, 0xba6b, 0xaa70, 0x9a76, 0x8b7b, + 0xc882, 0xb987, 0xa98d, 0x9a92, 0xd799, 0xc89e, 0xb8a4, 0xa8a9, + 0xe6b0, 0xd6b5, 0xc7bb, 0xb7c0, 0xf5c7, 0xe5cc, 0xd5d2, 0xc6d7, + 0x9921, 0x8a26, 0x7a2b, 0x6b31, 0xa838, 0x993d, 0x8942, 0x7948, + 0xb74f, 0xa754, 0x9859, 0x885f, 0xc666, 0xb66b, 0xa670, 0x9776, + 0xd47d, 0xc582, 0xb587, 0xa58d, 0xe394, 0xd399, 0xc49e, 0xb4a4, + 0xf2ab, 0xe2b0, 0xd2b5, 0xc3bb, 0xffc2, 0xf1c7, 0xe1cc, 0xd1d1}, + {0x4747, 0x604d, 0x7a53, 0x945a, 0x5047, 0x6a4d, 0x8454, 0x9d5a, + 0x5a47, 0x734e, 0x8d54, 0xa75a, 0x6347, 0x7d4e, 0x9754, 0xb05a, + 0x6d48, 0x864e, 0xa054, 0xba5b, 0x7648, 0x904e, 0xaa55, 0xc35b, + 0x8048, 0x994e, 0xb355, 0xcd5b, 0x8948, 0xa34f, 0xbd55, 0xd65b, + 0x4658, 0x605e, 0x7964, 0x936b, 0x5058, 0x695e, 0x8365, 0x9d6b, + 0x5958, 0x735e, 0x8c65, 0xa66b, 0x6358, 0x7c5f, 0x9665, 0xb06b, + 0x6c58, 0x865f, 0x9f65, 0xb96c, 0x7659, 0x8f5f, 0xa965, 0xc36c, + 0x7f59, 0x995f, 0xb266, 0xcc6c, 0x8959, 0xa260, 0xbc66, 0xd66c, + 0x4569, 0x5f6f, 0x7975, 0x937c, 0x4f69, 0x696f, 0x8275, 0x9c7c, + 0x5869, 0x726f, 0x8c76, 0xa67c, 0x6269, 0x7c70, 0x9576, 0xaf7c, + 0x6b69, 0x8570, 0x9f76, 0xb97c, 0x756a, 0x8f70, 0xa876, 0xc27d, + 0x7e6a, 0x9870, 0xb277, 0xcc7d, 0x886a, 0xa270, 0xbb77, 0xd57d, + 0x4579, 0x5e80, 0x7886, 0x928c, 0x4e7a, 0x6880, 0x8286, 0x9b8d, + 0x587a, 0x7180, 0x8b87, 0xa58d, 0x617a, 0x7b80, 0x9587, 0xae8d, + 0x6b7a, 0x8481, 0x9e87, 0xb88d, 0x747a, 0x8e81, 0xa887, 0xc18e, + 0x7e7b, 0x9781, 0xb187, 0xcb8e, 0x877b, 0xa181, 0xbb88, 0xd48e, + 0x448a, 0x5e91, 0x7797, 0x919d, 0x4d8a, 0x6791, 0x8197, 0x9b9e, + 0x578b, 0x7191, 0x8a97, 0xa49e, 0x608b, 0x7a91, 0x9498, 0xae9e, + 0x6a8b, 0x8491, 0x9d98, 0xb79e, 0x738b, 0x8d92, 0xa798, 0xc19e, + 0x7d8c, 0x9792, 0xb098, 0xca9f, 0x868c, 0xa092, 0xba99, 0xd49f, + 0x439b, 0x5da2, 0x77a8, 0x90ae, 0x4d9b, 0x66a2, 0x80a8, 0x9aae, + 0x569c, 0x70a2, 0x8aa8, 0xa3af, 0x609c, 0x79a2, 0x93a9, 0xadaf, + 0x699c, 0x83a2, 0x9da9, 0xb6af, 0x739c, 0x8ca3, 0xa6a9, 0xc0af, + 0x7c9c, 0x96a3, 0xb0a9, 0xc9b0, 0x869d, 0x9fa3, 0xb9a9, 0xd3b0, + 0x43ac, 0x5cb2, 0x76b9, 0x90bf, 0x4cac, 0x66b3, 0x7fb9, 0x99bf, + 0x56ac, 0x6fb3, 0x89b9, 0xa3c0, 0x5fad, 0x79b3, 0x92b9, 0xacc0, + 0x69ad, 0x82b3, 0x9cba, 0xb6c0, 0x72ad, 0x8cb3, 0xa5ba, 0xbfc0, + 0x7cad, 0x95b4, 0xafba, 0xc9c0, 0x85ae, 0x9fb4, 0xb8ba, 0xd2c1, + 0x42bd, 0x5cc3, 0x75ca, 0x8fd0, 0x4bbd, 0x65c3, 0x7fca, 0x99d0, + 0x55bd, 0x6fc4, 0x88ca, 0xa2d0, 0x5ebe, 0x78c4, 0x92ca, 0xacd1, + 0x68be, 0x82c4, 0x9bca, 0xb5d1, 0x71be, 0x8bc4, 0xa5cb, 0xbfd1, + 0x7bbe, 0x95c5, 0xaecb, 0xc8d1, 0x84be, 0x9ec5, 0xb8cb, 0xd2d2}, + {0x4747, 0x3749, 0x284b, 0x194e, 0x545e, 0x4460, 0x3563, 0x2665, + 0x6175, 0x5278, 0x427a, 0x337c, 0x6e8d, 0x5f8f, 0x4f91, 0x4094, + 0x7ba4, 0x6ca6, 0x5ca9, 0x4dab, 0x88bb, 0x79be, 0x69c0, 0x5ac2, + 0x95d3, 0x86d5, 0x76d7, 0x67da, 0xa2ea, 0x93ec, 0x83ef, 0x74f1, + 0x5442, 0x4545, 0x3547, 0x2649, 0x615a, 0x525c, 0x425e, 0x3361, + 0x6e71, 0x5f73, 0x5076, 0x4078, 0x7b88, 0x6c8b, 0x5d8d, 0x4d8f, + 0x88a0, 0x79a2, 0x6aa4, 0x5aa7, 0x95b7, 0x86b9, 0x77bc, 0x67be, + 0xa2ce, 0x93d1, 0x84d3, 0x74d5, 0xb0e6, 0xa0e8, 0x91ea, 0x81ed, + 0x613e, 0x5240, 0x4342, 0x3345, 0x6e55, 0x5f57, 0x505a, 0x405c, + 0x7c6c, 0x6c6f, 0x5d71, 0x4d73, 0x8984, 0x7986, 0x6a88, 0x5b8b, + 0x969b, 0x869d, 0x77a0, 0x68a2, 0xa3b2, 0x93b5, 0x84b7, 0x75b9, + 0xb0ca, 0xa0cc, 0x91ce, 0x82d1, 0xbde1, 0xaee3, 0x9ee6, 0x8fe8, + 0x6f39, 0x5f3c, 0x503e, 0x4140, 0x7c51, 0x6c53, 0x5d55, 0x4e58, + 0x8968, 0x7a6a, 0x6a6d, 0x5b6f, 0x967f, 0x8782, 0x7784, 0x6886, + 0xa397, 0x9499, 0x849b, 0x759e, 0xb0ae, 0xa1b0, 0x91b3, 0x82b5, + 0xbdc5, 0xaec8, 0x9eca, 0x8fcc, 0xcadd, 0xbbdf, 0xabe1, 0x9ce4, + 0x7c35, 0x6d37, 0x5d39, 0x4e3c, 0x894c, 0x7a4e, 0x6a51, 0x5b53, + 0x9663, 0x8766, 0x7868, 0x686a, 0xa37b, 0x947d, 0x857f, 0x7582, + 0xb092, 0xa194, 0x9297, 0x8299, 0xbda9, 0xaeac, 0x9fae, 0x8fb0, + 0xcac1, 0xbbc3, 0xacc5, 0x9cc8, 0xd8d8, 0xc8da, 0xb9dd, 0xa9df, + 0x8930, 0x7a33, 0x6b35, 0x5b37, 0x9748, 0x874a, 0x784c, 0x684f, + 0xa45f, 0x9461, 0x8564, 0x7666, 0xb176, 0xa179, 0x927b, 0x837d, + 0xbe8d, 0xae90, 0x9f92, 0x9095, 0xcba5, 0xbba7, 0xacaa, 0x9dac, + 0xd8bc, 0xc8bf, 0xb9c1, 0xaac3, 0xe5d3, 0xd6d6, 0xc6d8, 0xb7db, + 0x972c, 0x872e, 0x7830, 0x6933, 0xa443, 0x9445, 0x8548, 0x764a, + 0xb15a, 0xa25d, 0x925f, 0x8361, 0xbe72, 0xaf74, 0x9f76, 0x9079, + 0xcb89, 0xbc8b, 0xac8e, 0x9d90, 0xd8a0, 0xc9a3, 0xb9a5, 0xaaa7, + 0xe5b8, 0xd6ba, 0xc6bc, 0xb7bf, 0xf2cf, 0xe3d1, 0xd4d4, 0xc4d6, + 0xa427, 0x9529, 0x852c, 0x762e, 0xb13e, 0xa241, 0x9243, 0x8346, + 0xbe56, 0xaf58, 0xa05b, 0x905d, 0xcb6d, 0xbc6f, 0xad72, 0x9d74, + 0xd884, 0xc987, 0xba89, 0xaa8c, 0xe59c, 0xd69e, 0xc7a0, 0xb7a3, + 0xf2b3, 0xe3b5, 0xd4b8, 0xc4ba, 0xffca, 0xf0cd, 0xe1cf, 0xd1d1}, + {0x4747, 0x6050, 0x7959, 0x9263, 0x5247, 0x6b50, 0x8459, 0x9e63, + 0x5d47, 0x7650, 0x9059, 0xa963, 0x6847, 0x8150, 0x9b59, 0xb462, + 0x7347, 0x8d50, 0xa659, 0xbf62, 0x7f47, 0x9850, 0xb159, 0xca62, + 0x8a47, 0xa350, 0xbc59, 0xd562, 0x9546, 0xae50, 0xc759, 0xe162, + 0x4557, 0x5e60, 0x7769, 0x9072, 0x5057, 0x6960, 0x8269, 0x9b72, + 0x5b57, 0x7460, 0x8d69, 0xa772, 0x6657, 0x7f60, 0x9969, 0xb272, + 0x7156, 0x8a60, 0xa469, 0xbd72, 0x7c56, 0x9660, 0xaf69, 0xc872, + 0x8856, 0xa160, 0xba69, 0xd372, 0x9356, 0xac60, 0xc569, 0xde72, + 0x4267, 0x5c70, 0x7579, 0x8e82, 0x4e66, 0x6770, 0x8079, 0x9982, + 0x5966, 0x7270, 0x8b79, 0xa482, 0x6466, 0x7d70, 0x9679, 0xb082, + 0x6f66, 0x8870, 0xa279, 0xbb82, 0x7a66, 0x9370, 0xad79, 0xc682, + 0x8566, 0x9f70, 0xb879, 0xd182, 0x9166, 0xaa70, 0xc379, 0xdc82, + 0x4076, 0x5a80, 0x7389, 0x8c92, 0x4b76, 0x6580, 0x7e89, 0x9792, + 0x5776, 0x7080, 0x8989, 0xa292, 0x6276, 0x7b80, 0x9489, 0xad92, + 0x6d76, 0x8680, 0x9f89, 0xb992, 0x7876, 0x917f, 0xab89, 0xc492, + 0x8376, 0x9d7f, 0xb689, 0xcf92, 0x8e76, 0xa87f, 0xc189, 0xda92, + 0x3e86, 0x5790, 0x7199, 0x8aa2, 0x4986, 0x6390, 0x7c99, 0x95a2, + 0x5486, 0x6e8f, 0x8799, 0xa0a2, 0x6086, 0x798f, 0x9299, 0xaba2, + 0x6b86, 0x848f, 0x9d99, 0xb6a2, 0x7686, 0x8f8f, 0xa899, 0xc2a2, + 0x8186, 0x9a8f, 0xb499, 0xcda2, 0x8c86, 0xa68f, 0xbf99, 0xd8a2, + 0x3c96, 0x559f, 0x6ea9, 0x88b2, 0x4796, 0x609f, 0x7aa9, 0x93b2, + 0x5296, 0x6c9f, 0x85a9, 0x9eb2, 0x5d96, 0x779f, 0x90a9, 0xa9b2, + 0x6996, 0x829f, 0x9ba9, 0xb4b2, 0x7496, 0x8d9f, 0xa6a9, 0xbfb2, + 0x7f96, 0x989f, 0xb1a8, 0xcbb2, 0x8a96, 0xa39f, 0xbda8, 0xd6b2, + 0x3aa6, 0x53af, 0x6cb9, 0x85c2, 0x45a6, 0x5eaf, 0x77b9, 0x91c2, + 0x50a6, 0x69af, 0x83b9, 0x9cc2, 0x5ba6, 0x75af, 0x8eb8, 0xa7c2, + 0x66a6, 0x80af, 0x99b8, 0xb2c2, 0x72a6, 0x8baf, 0xa4b8, 0xbdc2, + 0x7da6, 0x96af, 0xafb8, 0xc8c2, 0x88a6, 0xa1af, 0xbab8, 0xd4c2, + 0x38b6, 0x51bf, 0x6ac8, 0x83d2, 0x43b6, 0x5cbf, 0x75c8, 0x8fd2, + 0x4eb6, 0x67bf, 0x80c8, 0x9ad2, 0x59b6, 0x72bf, 0x8cc8, 0xa5d2, + 0x64b6, 0x7ebf, 0x97c8, 0xb0d2, 0x6fb6, 0x89bf, 0xa2c8, 0xbbd2, + 0x7bb6, 0x94bf, 0xadc8, 0xc6d2, 0x86b6, 0x9fbf, 0xb8c8, 0xd2d2}, + {0x4747, 0x3846, 0x2946, 0x1b45, 0x525e, 0x435e, 0x355d, 0x265d, + 0x5e76, 0x4f75, 0x4075, 0x3274, 0x698d, 0x5a8d, 0x4c8c, 0x3d8c, + 0x74a5, 0x66a4, 0x57a4, 0x48a3, 0x80bc, 0x71bc, 0x62bb, 0x54ba, + 0x8bd4, 0x7cd3, 0x6ed2, 0x5fd2, 0x96eb, 0x88ea, 0x79ea, 0x6ae9, + 0x5543, 0x4743, 0x3842, 0x2a42, 0x615b, 0x525a, 0x445a, 0x3559, + 0x6c72, 0x5e72, 0x4f71, 0x4071, 0x788a, 0x6989, 0x5a89, 0x4c88, + 0x83a1, 0x74a1, 0x66a0, 0x57a0, 0x8eb9, 0x80b8, 0x71b8, 0x62b7, + 0x9ad0, 0x8bd0, 0x7ccf, 0x6ece, 0xa5e8, 0x96e7, 0x88e7, 0x79e6, + 0x6440, 0x563f, 0x473f, 0x383e, 0x7057, 0x6157, 0x5256, 0x4456, + 0x7b6f, 0x6c6e, 0x5e6e, 0x4f6d, 0x8686, 0x7886, 0x6985, 0x5a85, + 0x929e, 0x839d, 0x749d, 0x669c, 0x9db5, 0x8eb5, 0x80b4, 0x71b4, + 0xa8cd, 0x9acc, 0x8bcc, 0x7dcb, 0xb4e4, 0xa5e4, 0x97e3, 0x88e3, + 0x733d, 0x643c, 0x563b, 0x473b, 0x7e54, 0x7053, 0x6153, 0x5252, + 0x8a6b, 0x7b6b, 0x6c6a, 0x5e6a, 0x9583, 0x8682, 0x7882, 0x6981, + 0xa09a, 0x929a, 0x8399, 0x7499, 0xacb2, 0x9db1, 0x8fb1, 0x80b0, + 0xb7c9, 0xa9c9, 0x9ac8, 0x8bc8, 0xc3e1, 0xb4e0, 0xa5e0, 0x97df, + 0x8239, 0x7339, 0x6438, 0x5637, 0x8d51, 0x7e50, 0x704f, 0x614f, + 0x9868, 0x8a67, 0x7b67, 0x6c66, 0xa480, 0x957f, 0x867e, 0x787e, + 0xaf97, 0xa096, 0x9296, 0x8395, 0xbbae, 0xacae, 0x9dad, 0x8fad, + 0xc6c6, 0xb7c5, 0xa9c5, 0x9ac4, 0xd1dd, 0xc3dd, 0xb4dc, 0xa5dc, + 0x9036, 0x8235, 0x7335, 0x6434, 0x9c4d, 0x8d4d, 0x7e4c, 0x704c, + 0xa765, 0x9864, 0x8a64, 0x7b63, 0xb27c, 0xa47c, 0x957b, 0x877a, + 0xbe94, 0xaf93, 0xa192, 0x9292, 0xc9ab, 0xbbaa, 0xacaa, 0x9da9, + 0xd5c2, 0xc6c2, 0xb7c1, 0xa9c1, 0xe0da, 0xd1d9, 0xc3d9, 0xb4d8, + 0x9f32, 0x9032, 0x8231, 0x7331, 0xaa4a, 0x9c49, 0x8d49, 0x7e48, + 0xb661, 0xa761, 0x9960, 0x8a60, 0xc179, 0xb378, 0xa478, 0x9577, + 0xcd90, 0xbe90, 0xaf8f, 0xa18f, 0xd8a8, 0xc9a7, 0xbba7, 0xaca6, + 0xe3bf, 0xd5bf, 0xc6be, 0xb7bd, 0xefd7, 0xe0d6, 0xd1d5, 0xc3d5, + 0xae2f, 0x9f2e, 0x902e, 0x822d, 0xb946, 0xab46, 0x9c45, 0x8d45, + 0xc55e, 0xb65d, 0xa75d, 0x995c, 0xd075, 0xc175, 0xb374, 0xa474, + 0xdb8d, 0xcd8c, 0xbe8c, 0xaf8b, 0xe7a4, 0xd8a4, 0xc9a3, 0xbba3, + 0xf2bc, 0xe3bb, 0xd5bb, 0xc6ba, 0xfdd3, 0xefd3, 0xe0d2, 0xd2d1}, + {0x4747, 0x5f53, 0x775f, 0x906b, 0x5447, 0x6c53, 0x845f, 0x9d6b, + 0x6047, 0x7953, 0x915f, 0xa96b, 0x6d47, 0x8653, 0x9e5f, 0xb66b, + 0x7a47, 0x9253, 0xab5f, 0xc36b, 0x8746, 0x9f53, 0xb85f, 0xd06b, + 0x9446, 0xac53, 0xc45f, 0xdd6b, 0xa146, 0xb953, 0xd15f, 0xea6b, + 0x4355, 0x5c62, 0x746e, 0x8c7a, 0x5055, 0x6862, 0x816e, 0x997a, + 0x5d55, 0x7561, 0x8e6e, 0xa67a, 0x6a55, 0x8261, 0x9a6e, 0xb37a, + 0x7755, 0x8f61, 0xa76d, 0xc07a, 0x8455, 0x9c61, 0xb46d, 0xcc7a, + 0x9055, 0xa961, 0xc16d, 0xd979, 0x9d55, 0xb661, 0xce6d, 0xe679, + 0x4064, 0x5870, 0x707c, 0x8988, 0x4d64, 0x6570, 0x7d7c, 0x9688, + 0x5a64, 0x7270, 0x8a7c, 0xa388, 0x6664, 0x7f70, 0x977c, 0xaf88, + 0x7364, 0x8c70, 0xa47c, 0xbc88, 0x8064, 0x9870, 0xb17c, 0xc988, + 0x8d64, 0xa570, 0xbe7c, 0xd688, 0x9a64, 0xb270, 0xca7c, 0xe388, + 0x3c73, 0x557f, 0x6d8b, 0x8597, 0x4973, 0x627f, 0x7a8b, 0x9297, + 0x5673, 0x6e7f, 0x878b, 0x9f97, 0x6373, 0x7b7f, 0x948b, 0xac97, + 0x7073, 0x887f, 0xa08b, 0xb997, 0x7d73, 0x957f, 0xad8b, 0xc697, + 0x8972, 0xa27f, 0xba8b, 0xd297, 0x9672, 0xaf7f, 0xc78b, 0xdf97, + 0x3981, 0x518e, 0x6a9a, 0x82a6, 0x4681, 0x5e8e, 0x769a, 0x8fa6, + 0x5381, 0x6b8d, 0x839a, 0x9ca6, 0x5f81, 0x788d, 0x909a, 0xa8a6, + 0x6c81, 0x858d, 0x9d9a, 0xb5a6, 0x7981, 0x928d, 0xaa99, 0xc2a6, + 0x8681, 0x9e8d, 0xb799, 0xcfa6, 0x9381, 0xab8d, 0xc499, 0xdca5, + 0x3690, 0x4e9c, 0x66a8, 0x7eb5, 0x4290, 0x5b9c, 0x73a8, 0x8bb4, + 0x4f90, 0x689c, 0x80a8, 0x98b4, 0x5c90, 0x749c, 0x8da8, 0xa5b4, + 0x6990, 0x819c, 0x9aa8, 0xb2b4, 0x7690, 0x8e9c, 0xa6a8, 0xbfb4, + 0x8390, 0x9b9c, 0xb3a8, 0xccb4, 0x8f90, 0xa89c, 0xc0a8, 0xd8b4, + 0x329f, 0x4aab, 0x63b7, 0x7bc3, 0x3f9f, 0x57ab, 0x70b7, 0x88c3, + 0x4c9f, 0x64ab, 0x7cb7, 0x95c3, 0x599f, 0x71ab, 0x89b7, 0xa2c3, + 0x659f, 0x7eab, 0x96b7, 0xaec3, 0x729f, 0x8bab, 0xa3b7, 0xbbc3, + 0x7f9e, 0x97ab, 0xb0b7, 0xc8c3, 0x8c9e, 0xa4ab, 0xbdb7, 0xd5c3, + 0x2fad, 0x47ba, 0x5fc6, 0x78d2, 0x3bad, 0x54ba, 0x6cc6, 0x84d2, + 0x48ad, 0x61ba, 0x79c6, 0x91d2, 0x55ad, 0x6db9, 0x86c6, 0x9ed2, + 0x62ad, 0x7ab9, 0x93c6, 0xabd2, 0x6fad, 0x87b9, 0x9fc5, 0xb8d2, + 0x7cad, 0x94b9, 0xacc5, 0xc5d2, 0x89ad, 0xa1b9, 0xb9c5, 0xd1d2}, + {0x4747, 0x3943, 0x2c40, 0x1e3d, 0x505e, 0x435b, 0x3557, 0x2854, + 0x5a75, 0x4d72, 0x3f6f, 0x326b, 0x648d, 0x568a, 0x4986, 0x3b83, + 0x6ea4, 0x60a1, 0x539e, 0x459a, 0x77bc, 0x6ab8, 0x5cb5, 0x4fb2, + 0x81d3, 0x73d0, 0x66cc, 0x58c9, 0x8bea, 0x7de7, 0x70e4, 0x62e0, + 0x5745, 0x4941, 0x3c3e, 0x2e3b, 0x605c, 0x5359, 0x4555, 0x3852, + 0x6a73, 0x5d70, 0x4f6d, 0x4169, 0x748b, 0x6687, 0x5984, 0x4b81, + 0x7ea2, 0x709f, 0x629b, 0x5598, 0x87b9, 0x7ab6, 0x6cb3, 0x5faf, + 0x91d1, 0x83cd, 0x76ca, 0x68c7, 0x9be8, 0x8de5, 0x80e2, 0x72de, + 0x6743, 0x593f, 0x4b3c, 0x3e39, 0x705a, 0x6357, 0x5553, 0x4850, + 0x7a71, 0x6c6e, 0x5f6b, 0x5167, 0x8489, 0x7685, 0x6982, 0x5b7f, + 0x8da0, 0x809d, 0x7299, 0x6596, 0x97b7, 0x8ab4, 0x7cb1, 0x6fad, + 0xa1cf, 0x93cb, 0x86c8, 0x78c5, 0xabe6, 0x9de3, 0x8fdf, 0x82dc, + 0x7640, 0x693d, 0x5b3a, 0x4e36, 0x8058, 0x7354, 0x6551, 0x584e, + 0x8a6f, 0x7c6c, 0x6f68, 0x6165, 0x9486, 0x8683, 0x7980, 0x6b7d, + 0x9d9e, 0x909b, 0x8297, 0x7594, 0xa7b5, 0x9ab2, 0x8caf, 0x7eab, + 0xb1cd, 0xa3c9, 0x96c6, 0x88c3, 0xbae4, 0xade1, 0x9fdd, 0x92da, + 0x863e, 0x793b, 0x6b38, 0x5e34, 0x9056, 0x8352, 0x754f, 0x674c, + 0x9a6d, 0x8c6a, 0x7f66, 0x7163, 0xa484, 0x9681, 0x887e, 0x7b7a, + 0xad9c, 0xa098, 0x9295, 0x8592, 0xb7b3, 0xa9b0, 0x9cac, 0x8ea9, + 0xc1ca, 0xb3c7, 0xa6c4, 0x98c0, 0xcae2, 0xbdde, 0xafdb, 0xa2d8, + 0x963c, 0x8939, 0x7b36, 0x6e32, 0xa054, 0x9250, 0x854d, 0x774a, + 0xaa6b, 0x9c68, 0x8f64, 0x8161, 0xb382, 0xa67f, 0x987c, 0x8b78, + 0xbd9a, 0xb096, 0xa293, 0x9590, 0xc7b1, 0xb9ae, 0xacaa, 0x9ea7, + 0xd1c8, 0xc3c5, 0xb6c2, 0xa8be, 0xdae0, 0xcddc, 0xbfd9, 0xb2d6, + 0xa63a, 0x9937, 0x8b33, 0x7e30, 0xb051, 0xa24e, 0x954b, 0x8747, + 0xba69, 0xac65, 0x9f62, 0x915f, 0xc380, 0xb67d, 0xa879, 0x9b76, + 0xcd98, 0xc094, 0xb291, 0xa48e, 0xd7af, 0xc9ac, 0xbca8, 0xaea5, + 0xe1c6, 0xd3c3, 0xc5c0, 0xb8bc, 0xeade, 0xddda, 0xcfd7, 0xc2d4, + 0xb638, 0xa935, 0x9b31, 0x8e2e, 0xc04f, 0xb24c, 0xa549, 0x9745, + 0xca67, 0xbc63, 0xae60, 0xa15d, 0xd37e, 0xc67b, 0xb877, 0xab74, + 0xdd95, 0xcf92, 0xc28f, 0xb48b, 0xe7ad, 0xd9a9, 0xcca6, 0xbea3, + 0xf0c4, 0xe3c1, 0xd5bd, 0xc8ba, 0xfadb, 0xedd8, 0xdfd5, 0xd2d1}, + {0x4747, 0x5e56, 0x7564, 0x8c73, 0x5547, 0x6c56, 0x8365, 0x9a73, + 0x6447, 0x7b56, 0x9265, 0xa974, 0x7247, 0x8956, 0xa065, 0xb774, + 0x8147, 0x9856, 0xaf65, 0xc674, 0x8f48, 0xa656, 0xbd65, 0xd474, + 0x9e48, 0xb557, 0xcc65, 0xe374, 0xac48, 0xc357, 0xda66, 0xf174, + 0x4254, 0x5963, 0x7072, 0x8781, 0x5154, 0x6863, 0x7f72, 0x9681, + 0x5f54, 0x7663, 0x8d72, 0xa481, 0x6e55, 0x8563, 0x9c72, 0xb381, + 0x7c55, 0x9364, 0xaa72, 0xc181, 0x8b55, 0xa264, 0xb973, 0xd081, + 0x9955, 0xb064, 0xc773, 0xde82, 0xa855, 0xbf64, 0xd673, 0xed82, + 0x3e61, 0x5570, 0x6c7f, 0x838e, 0x4c62, 0x6370, 0x7a7f, 0x918e, + 0x5b62, 0x7271, 0x897f, 0xa08e, 0x6962, 0x8071, 0x9780, 0xae8e, + 0x7862, 0x8f71, 0xa680, 0xbd8f, 0x8662, 0x9d71, 0xb480, 0xcb8f, + 0x9562, 0xac71, 0xc380, 0xda8f, 0xa363, 0xba71, 0xd180, 0xe88f, + 0x396f, 0x507d, 0x678c, 0x7e9b, 0x486f, 0x5f7e, 0x768c, 0x8d9b, + 0x566f, 0x6d7e, 0x848d, 0x9b9b, 0x656f, 0x7c7e, 0x938d, 0xaa9c, + 0x736f, 0x8a7e, 0xa18d, 0xb89c, 0x826f, 0x997e, 0xb08d, 0xc79c, + 0x9070, 0xa77e, 0xbe8d, 0xd59c, 0x9f70, 0xb67f, 0xcd8d, 0xe49c, + 0x357c, 0x4c8b, 0x639a, 0x7aa8, 0x437c, 0x5a8b, 0x719a, 0x88a9, + 0x527c, 0x698b, 0x809a, 0x97a9, 0x607c, 0x778b, 0x8e9a, 0xa5a9, + 0x6f7d, 0x868b, 0x9d9a, 0xb4a9, 0x7d7d, 0x948c, 0xab9a, 0xc2a9, + 0x8c7d, 0xa38c, 0xba9b, 0xd1a9, 0x9a7d, 0xb18c, 0xc89b, 0xdfaa, + 0x3089, 0x4798, 0x5ea7, 0x75b6, 0x3f89, 0x5698, 0x6da7, 0x84b6, + 0x4d8a, 0x6498, 0x7ba7, 0x92b6, 0x5c8a, 0x7399, 0x8aa7, 0xa1b6, + 0x6a8a, 0x8199, 0x98a8, 0xafb6, 0x798a, 0x9099, 0xa7a8, 0xbeb7, + 0x878a, 0x9e99, 0xb5a8, 0xccb7, 0x968a, 0xad99, 0xc4a8, 0xdbb7, + 0x2b97, 0x42a5, 0x5ab4, 0x71c3, 0x3a97, 0x51a6, 0x68b4, 0x7fc3, + 0x4897, 0x5fa6, 0x77b5, 0x8ec3, 0x5797, 0x6ea6, 0x85b5, 0x9cc4, + 0x6597, 0x7ca6, 0x94b5, 0xabc4, 0x7497, 0x8ba6, 0xa2b5, 0xb9c4, + 0x8298, 0x99a6, 0xb1b5, 0xc8c4, 0x9198, 0xa8a7, 0xbfb5, 0xd6c4, + 0x27a4, 0x3eb3, 0x55c1, 0x6cd0, 0x35a4, 0x4cb3, 0x63c2, 0x7ad0, + 0x44a4, 0x5bb3, 0x72c2, 0x89d1, 0x52a4, 0x69b3, 0x80c2, 0x97d1, + 0x61a4, 0x78b3, 0x8fc2, 0xa6d1, 0x6fa5, 0x86b3, 0x9dc2, 0xb4d1, + 0x7ea5, 0x95b4, 0xacc2, 0xc3d1, 0x8ca5, 0xa3b4, 0xbac3, 0xd1d2}, + {0x4747, 0x3b41, 0x2f3b, 0x2335, 0x4f5e, 0x4358, 0x3752, 0x2b4c, + 0x5775, 0x4b6f, 0x3f69, 0x3363, 0x5f8c, 0x5386, 0x4780, 0x3b7a, + 0x67a3, 0x5b9d, 0x4f97, 0x4391, 0x6fba, 0x63b4, 0x57ae, 0x4ba8, + 0x77d1, 0x6bcb, 0x5fc5, 0x53bf, 0x7fe8, 0x73e2, 0x67dc, 0x5bd6, + 0x5846, 0x4c40, 0x403a, 0x3334, 0x605d, 0x5457, 0x4851, 0x3c4b, + 0x6874, 0x5c6e, 0x5068, 0x4462, 0x708b, 0x6485, 0x587f, 0x4c79, + 0x78a2, 0x6c9c, 0x6096, 0x5490, 0x80b9, 0x74b3, 0x68ad, 0x5ca7, + 0x88d0, 0x7cca, 0x70c4, 0x64be, 0x90e7, 0x84e1, 0x78db, 0x6cd5, + 0x6945, 0x5d40, 0x503a, 0x4434, 0x715c, 0x6557, 0x5951, 0x4c4b, + 0x7973, 0x6d6e, 0x6168, 0x5562, 0x818b, 0x7585, 0x697f, 0x5d79, + 0x89a2, 0x7d9c, 0x7196, 0x6590, 0x91b9, 0x85b3, 0x79ad, 0x6da7, + 0x99d0, 0x8dca, 0x81c4, 0x75be, 0xa1e7, 0x95e1, 0x89db, 0x7dd5, + 0x7945, 0x6d3f, 0x6139, 0x5533, 0x825c, 0x7656, 0x6950, 0x5d4a, + 0x8a73, 0x7e6d, 0x7267, 0x6561, 0x928a, 0x8684, 0x7a7e, 0x6e78, + 0x9aa1, 0x8e9b, 0x8295, 0x768f, 0xa2b8, 0x96b2, 0x8aac, 0x7ea6, + 0xaacf, 0x9ec9, 0x92c3, 0x86bd, 0xb2e6, 0xa6e0, 0x9ada, 0x8ed4, + 0x8a44, 0x7e3e, 0x7238, 0x6632, 0x925b, 0x8655, 0x7a4f, 0x6e49, + 0x9b72, 0x8e6c, 0x8266, 0x7660, 0xa389, 0x9783, 0x8b7d, 0x7e77, + 0xaba0, 0x9f9a, 0x9394, 0x878e, 0xb3b7, 0xa7b1, 0x9bab, 0x8fa5, + 0xbbce, 0xafc8, 0xa3c2, 0x97bc, 0xc3e5, 0xb7df, 0xabd9, 0x9fd3, + 0x9b43, 0x8f3e, 0x8338, 0x7732, 0xa35b, 0x9755, 0x8b4f, 0x7f49, + 0xab72, 0x9f6c, 0x9366, 0x8760, 0xb489, 0xa783, 0x9b7d, 0x8f77, + 0xbca0, 0xb09a, 0xa494, 0x978e, 0xc4b7, 0xb8b1, 0xacab, 0xa0a5, + 0xccce, 0xc0c8, 0xb4c2, 0xa8bc, 0xd4e5, 0xc8df, 0xbcd9, 0xb0d3, + 0xac43, 0xa03d, 0x9437, 0x8831, 0xb45a, 0xa854, 0x9c4e, 0x9048, + 0xbc71, 0xb06b, 0xa465, 0x985f, 0xc488, 0xb882, 0xac7c, 0xa076, + 0xcd9f, 0xc099, 0xb493, 0xa88d, 0xd5b6, 0xc9b0, 0xbcaa, 0xb0a4, + 0xddcd, 0xd1c7, 0xc5c1, 0xb9bb, 0xe5e4, 0xd9de, 0xcdd8, 0xc1d2, + 0xbd42, 0xb13c, 0xa536, 0x9930, 0xc559, 0xb953, 0xad4d, 0xa147, + 0xcd70, 0xc16a, 0xb564, 0xa95e, 0xd587, 0xc981, 0xbd7b, 0xb175, + 0xdd9e, 0xd198, 0xc592, 0xb98c, 0xe6b5, 0xd9af, 0xcda9, 0xc1a3, + 0xeecc, 0xe2c6, 0xd5c0, 0xc9ba, 0xf6e3, 0xeadd, 0xded7, 0xd2d1}, + {0x4747, 0x5c58, 0x7169, 0x877b, 0x5747, 0x6c59, 0x826a, 0x977b, + 0x6748, 0x7c59, 0x926b, 0xa77c, 0x7749, 0x8c5a, 0xa26b, 0xb77d, + 0x8749, 0x9d5b, 0xb26c, 0xc77d, 0x974a, 0xad5b, 0xc26d, 0xd77e, + 0xa74b, 0xbd5c, 0xd26d, 0xe77f, 0xb74b, 0xcd5c, 0xe26e, 0xf87f, + 0x4153, 0x5764, 0x6c75, 0x8187, 0x5153, 0x6764, 0x7c76, 0x9287, + 0x6254, 0x7765, 0x8c76, 0xa288, 0x7254, 0x8766, 0x9c77, 0xb288, + 0x8255, 0x9766, 0xac78, 0xc289, 0x9256, 0xa767, 0xbd78, 0xd28a, + 0xa256, 0xb768, 0xcd79, 0xe28a, 0xb257, 0xc768, 0xdd7a, 0xf28b, + 0x3c5e, 0x5170, 0x6781, 0x7c92, 0x4c5f, 0x6170, 0x7782, 0x8c93, + 0x5c60, 0x7171, 0x8782, 0x9c94, 0x6c60, 0x8271, 0x9783, 0xac94, + 0x7c61, 0x9272, 0xa783, 0xbc95, 0x8c61, 0xa273, 0xb784, 0xcc95, + 0x9c62, 0xb273, 0xc785, 0xdd96, 0xad63, 0xc274, 0xd785, 0xed97, + 0x366a, 0x4c7b, 0x618d, 0x779e, 0x476b, 0x5c7c, 0x718d, 0x879f, + 0x576b, 0x6c7d, 0x818e, 0x979f, 0x676c, 0x7c7d, 0x918f, 0xa7a0, + 0x776d, 0x8c7e, 0xa28f, 0xb7a1, 0x876d, 0x9c7f, 0xb290, 0xc7a1, + 0x976e, 0xac7f, 0xc290, 0xd7a2, 0xa76e, 0xbd80, 0xd291, 0xe7a2, + 0x3176, 0x4687, 0x5c98, 0x71aa, 0x4176, 0x5688, 0x6c99, 0x81aa, + 0x5177, 0x6788, 0x7c9a, 0x91ab, 0x6178, 0x7789, 0x8c9a, 0xa1ac, + 0x7178, 0x878a, 0x9c9b, 0xb2ac, 0x8279, 0x978a, 0xac9c, 0xc2ad, + 0x927a, 0xa78b, 0xbc9c, 0xd2ae, 0xa27a, 0xb78c, 0xcc9d, 0xe2ae, + 0x2c82, 0x4193, 0x56a4, 0x6cb6, 0x3c82, 0x5194, 0x66a5, 0x7cb6, + 0x4c83, 0x6194, 0x77a5, 0x8cb7, 0x5c83, 0x7195, 0x87a6, 0x9cb7, + 0x6c84, 0x8195, 0x97a7, 0xacb8, 0x7c85, 0x9196, 0xa7a7, 0xbcb9, + 0x8c85, 0xa297, 0xb7a8, 0xccb9, 0x9c86, 0xb297, 0xc7a9, 0xdcba, + 0x268d, 0x3c9f, 0x51b0, 0x66c1, 0x368e, 0x4c9f, 0x61b1, 0x76c2, + 0x468f, 0x5ca0, 0x71b1, 0x86c3, 0x568f, 0x6ca1, 0x81b2, 0x97c3, + 0x6790, 0x7ca1, 0x91b3, 0xa7c4, 0x7790, 0x8ca2, 0xa1b3, 0xb7c4, + 0x8791, 0x9ca2, 0xb1b4, 0xc7c5, 0x9792, 0xaca3, 0xc2b4, 0xd7c6, + 0x2199, 0x36aa, 0x4bbc, 0x61cd, 0x319a, 0x46ab, 0x5cbc, 0x71ce, + 0x419a, 0x56ac, 0x6cbd, 0x81ce, 0x519b, 0x66ac, 0x7cbe, 0x91cf, + 0x619c, 0x76ad, 0x8cbe, 0xa1d0, 0x719c, 0x87ae, 0x9cbf, 0xb1d0, + 0x819d, 0x97ae, 0xacc0, 0xc1d1, 0x919d, 0xa7af, 0xbcc0, 0xd1d2}, + {0x4747, 0x3d3e, 0x3236, 0x282e, 0x4d5d, 0x4355, 0x394d, 0x2f44, + 0x5474, 0x4a6b, 0x3f63, 0x355b, 0x5a8a, 0x5082, 0x4679, 0x3c71, + 0x61a1, 0x5798, 0x4c90, 0x4288, 0x67b7, 0x5daf, 0x53a6, 0x499e, + 0x6ecd, 0x64c5, 0x59bd, 0x4fb4, 0x74e4, 0x6adc, 0x60d3, 0x56cb, + 0x5848, 0x4e3f, 0x4437, 0x3a2f, 0x5f5e, 0x5556, 0x4a4d, 0x4045, + 0x6575, 0x5b6c, 0x5164, 0x475c, 0x6c8b, 0x6283, 0x587a, 0x4d72, + 0x73a1, 0x6899, 0x5e91, 0x5489, 0x79b8, 0x6fb0, 0x65a7, 0x5a9f, + 0x80ce, 0x75c6, 0x6bbe, 0x61b5, 0x86e5, 0x7cdc, 0x72d4, 0x67cc, + 0x6a49, 0x6040, 0x5638, 0x4b30, 0x715f, 0x6657, 0x5c4e, 0x5246, + 0x7776, 0x6d6d, 0x6365, 0x585d, 0x7e8c, 0x7384, 0x697b, 0x5f73, + 0x84a2, 0x7a9a, 0x7092, 0x6689, 0x8bb9, 0x80b1, 0x76a8, 0x6ca0, + 0x91cf, 0x87c7, 0x7dbf, 0x73b6, 0x98e6, 0x8edd, 0x83d5, 0x79cd, + 0x7c4a, 0x7241, 0x6739, 0x5d31, 0x8260, 0x7858, 0x6e4f, 0x6447, + 0x8976, 0x7f6e, 0x7466, 0x6a5d, 0x8f8d, 0x8585, 0x7b7c, 0x7174, + 0x96a3, 0x8c9b, 0x8193, 0x778a, 0x9cba, 0x92b1, 0x88a9, 0x7ea1, + 0xa3d0, 0x99c8, 0x8ec0, 0x84b7, 0xa9e7, 0x9fde, 0x95d6, 0x8bce, + 0x8d4b, 0x8342, 0x793a, 0x6f32, 0x9461, 0x8a59, 0x8050, 0x7548, + 0x9b77, 0x906f, 0x8667, 0x7c5e, 0xa18e, 0x9786, 0x8d7d, 0x8275, + 0xa8a4, 0x9d9c, 0x9394, 0x898b, 0xaebb, 0xa4b2, 0x9aaa, 0x8fa2, + 0xb5d1, 0xaac9, 0xa0c1, 0x96b8, 0xbbe8, 0xb1df, 0xa7d7, 0x9ccf, + 0x9f4b, 0x9543, 0x8b3b, 0x8032, 0xa662, 0x9b5a, 0x9151, 0x8749, + 0xac78, 0xa270, 0x9868, 0x8e5f, 0xb38f, 0xa986, 0x9e7e, 0x9476, + 0xb9a5, 0xaf9d, 0xa595, 0x9b8c, 0xc0bc, 0xb6b3, 0xabab, 0xa1a3, + 0xc6d2, 0xbcca, 0xb2c1, 0xa8b9, 0xcde9, 0xc3e0, 0xb8d8, 0xaed0, + 0xb14c, 0xa744, 0x9c3c, 0x9233, 0xb763, 0xad5b, 0xa352, 0x994a, + 0xbe79, 0xb471, 0xa969, 0x9f60, 0xc490, 0xba87, 0xb07f, 0xa677, + 0xcba6, 0xc19e, 0xb696, 0xac8d, 0xd1bd, 0xc7b4, 0xbdac, 0xb3a4, + 0xd8d3, 0xcecb, 0xc4c2, 0xb9ba, 0xdfea, 0xd4e1, 0xcad9, 0xc0d1, + 0xc34d, 0xb845, 0xae3d, 0xa434, 0xc964, 0xbf5b, 0xb553, 0xaa4b, + 0xd07a, 0xc572, 0xbb6a, 0xb161, 0xd691, 0xcc88, 0xc280, 0xb778, + 0xdda7, 0xd29f, 0xc896, 0xbe8e, 0xe3be, 0xd9b5, 0xcfad, 0xc4a5, + 0xead4, 0xdfcc, 0xd5c3, 0xcbbb, 0xf0ea, 0xe6e2, 0xdcda, 0xd2d1}, + {0x4747, 0x5a5a, 0x6d6e, 0x8182, 0x5848, 0x6c5c, 0x7f6f, 0x9283, + 0x6a49, 0x7d5d, 0x9171, 0xa484, 0x7c4b, 0x8f5e, 0xa272, 0xb685, + 0x8d4c, 0xa160, 0xb473, 0xc787, 0x9f4d, 0xb261, 0xc674, 0xd988, + 0xb04f, 0xc462, 0xd776, 0xeb89, 0xc250, 0xd564, 0xe977, 0xfc8b, + 0x4151, 0x5464, 0x6778, 0x7b8c, 0x5252, 0x6666, 0x7979, 0x8c8d, + 0x6453, 0x7767, 0x8b7b, 0x9e8e, 0x7555, 0x8968, 0x9c7c, 0xb090, + 0x8756, 0x9a6a, 0xae7d, 0xc191, 0x9957, 0xac6b, 0xbf7f, 0xd392, + 0xaa59, 0xbe6c, 0xd180, 0xe494, 0xbc5a, 0xcf6e, 0xe381, 0xf695, + 0x3b5b, 0x4e6f, 0x6182, 0x7596, 0x4c5c, 0x6070, 0x7383, 0x8697, + 0x5e5e, 0x7171, 0x8585, 0x9898, 0x6f5f, 0x8373, 0x9686, 0xaa9a, + 0x8160, 0x9474, 0xa887, 0xbb9b, 0x9362, 0xa675, 0xb989, 0xcd9c, + 0xa463, 0xb876, 0xcb8a, 0xde9e, 0xb664, 0xc978, 0xdd8b, 0xf09f, + 0x3465, 0x4879, 0x5b8c, 0x6fa0, 0x4666, 0x597a, 0x6d8e, 0x80a1, + 0x5868, 0x6b7b, 0x7e8f, 0x92a2, 0x6969, 0x7d7d, 0x9090, 0xa3a4, + 0x7b6a, 0x8e7e, 0xa292, 0xb5a5, 0x8d6c, 0xa07f, 0xb393, 0xc7a6, + 0x9e6d, 0xb281, 0xc594, 0xd8a8, 0xb06e, 0xc382, 0xd695, 0xeaa9, + 0x2e6f, 0x4283, 0x5596, 0x69aa, 0x4071, 0x5384, 0x6798, 0x7aab, + 0x5272, 0x6585, 0x7899, 0x8cad, 0x6373, 0x7787, 0x8a9a, 0x9dae, + 0x7574, 0x8888, 0x9c9c, 0xafaf, 0x8676, 0x9a89, 0xad9d, 0xc1b1, + 0x9877, 0xab8b, 0xbf9e, 0xd2b2, 0xaa78, 0xbd8c, 0xd0a0, 0xe4b3, + 0x2879, 0x3c8d, 0x4fa0, 0x62b4, 0x3a7b, 0x4d8e, 0x61a2, 0x74b5, + 0x4c7c, 0x5f90, 0x72a3, 0x86b7, 0x5d7d, 0x7191, 0x84a4, 0x97b8, + 0x6f7f, 0x8292, 0x95a6, 0xa9b9, 0x8080, 0x9493, 0xa7a7, 0xbabb, + 0x9281, 0xa595, 0xb9a8, 0xccbc, 0xa482, 0xb796, 0xcaaa, 0xdebd, + 0x2283, 0x3697, 0x49ab, 0x5cbe, 0x3485, 0x4798, 0x5bac, 0x6ec0, + 0x4586, 0x599a, 0x6cad, 0x80c1, 0x5787, 0x6a9b, 0x7eaf, 0x91c2, + 0x6989, 0x7c9c, 0x8fb0, 0xa3c3, 0x7a8a, 0x8e9e, 0xa1b1, 0xb4c5, + 0x8c8b, 0x9f9f, 0xb3b2, 0xc6c6, 0x9d8d, 0xb1a0, 0xc4b4, 0xd8c7, + 0x1c8e, 0x30a1, 0x43b5, 0x56c8, 0x2e8f, 0x41a2, 0x54b6, 0x68ca, + 0x3f90, 0x53a4, 0x66b7, 0x79cb, 0x5191, 0x64a5, 0x78b9, 0x8bcc, + 0x6393, 0x76a6, 0x89ba, 0x9dce, 0x7494, 0x88a8, 0x9bbb, 0xaecf, + 0x8695, 0x99a9, 0xadbd, 0xc0d0, 0x9797, 0xabaa, 0xbebe, 0xd1d2}, + {0x4747, 0x3f3c, 0x3732, 0x2e27, 0x4c5c, 0x4452, 0x3c48, 0x343d, + 0x5172, 0x4968, 0x415d, 0x3953, 0x5688, 0x4e7d, 0x4673, 0x3e68, + 0x5b9d, 0x5393, 0x4b88, 0x437e, 0x60b3, 0x58a9, 0x509e, 0x4894, + 0x65c9, 0x5dbe, 0x55b4, 0x4da9, 0x6ade, 0x62d4, 0x5ac9, 0x52bf, + 0x5949, 0x513f, 0x4935, 0x412a, 0x5e5f, 0x5655, 0x4e4a, 0x4640, + 0x6375, 0x5b6a, 0x5360, 0x4b55, 0x688a, 0x6080, 0x5875, 0x506b, + 0x6da0, 0x6596, 0x5d8b, 0x5581, 0x72b6, 0x6aab, 0x62a1, 0x5a96, + 0x77cb, 0x6fc1, 0x67b6, 0x5fac, 0x7ce1, 0x74d7, 0x6ccc, 0x64c2, + 0x6b4c, 0x6342, 0x5b37, 0x532d, 0x7062, 0x6857, 0x604d, 0x5842, + 0x7577, 0x6d6d, 0x6562, 0x5d58, 0x7a8d, 0x7283, 0x6a78, 0x626e, + 0x7fa3, 0x7798, 0x6f8e, 0x6783, 0x85b8, 0x7cae, 0x74a3, 0x6c99, + 0x8ace, 0x82c4, 0x79b9, 0x71af, 0x8fe4, 0x87d9, 0x7fcf, 0x76c4, + 0x7d4f, 0x7544, 0x6d3a, 0x652f, 0x8264, 0x7a5a, 0x724f, 0x6a45, + 0x887a, 0x7f70, 0x7765, 0x6f5b, 0x8d90, 0x8585, 0x7c7b, 0x7470, + 0x92a5, 0x8a9b, 0x8290, 0x7986, 0x97bb, 0x8fb1, 0x87a6, 0x7e9c, + 0x9cd1, 0x94c6, 0x8cbc, 0x84b1, 0xa1e6, 0x99dc, 0x91d1, 0x89c7, + 0x9051, 0x8847, 0x7f3c, 0x7732, 0x9567, 0x8d5d, 0x8552, 0x7c48, + 0x9a7d, 0x9272, 0x8a68, 0x815d, 0x9f92, 0x9788, 0x8f7d, 0x8773, + 0xa4a8, 0x9c9d, 0x9493, 0x8c89, 0xa9be, 0xa1b3, 0x99a9, 0x919e, + 0xaed3, 0xa6c9, 0x9ebe, 0x96b4, 0xb3e9, 0xabde, 0xa3d4, 0x9bca, + 0xa254, 0x9a4a, 0x923f, 0x8a35, 0xa76a, 0x9f5f, 0x9755, 0x8f4a, + 0xac7f, 0xa475, 0x9c6a, 0x9460, 0xb195, 0xa98a, 0xa180, 0x9976, + 0xb6ab, 0xaea0, 0xa696, 0x9e8b, 0xbbc0, 0xb3b6, 0xabab, 0xa3a1, + 0xc0d6, 0xb8cb, 0xb0c1, 0xa8b7, 0xc5ec, 0xbde1, 0xb5d7, 0xadcc, + 0xb457, 0xac4c, 0xa442, 0x9c37, 0xb96c, 0xb162, 0xa957, 0xa14d, + 0xbe82, 0xb677, 0xae6d, 0xa663, 0xc398, 0xbb8d, 0xb383, 0xab78, + 0xc8ad, 0xc0a3, 0xb898, 0xb08e, 0xcdc3, 0xc5b8, 0xbdae, 0xb5a4, + 0xd2d9, 0xcace, 0xc2c4, 0xbab9, 0xd8ee, 0xcfe4, 0xc7d9, 0xbfcf, + 0xc659, 0xbe4f, 0xb644, 0xae3a, 0xcb6f, 0xc364, 0xbb5a, 0xb350, + 0xd085, 0xc87a, 0xc070, 0xb865, 0xd59a, 0xcd90, 0xc585, 0xbd7b, + 0xdbb0, 0xd2a5, 0xca9b, 0xc291, 0xe0c6, 0xd8bb, 0xcfb1, 0xc7a6, + 0xe5db, 0xddd1, 0xd5c6, 0xccbc, 0xeaf1, 0xe2e6, 0xdadc, 0xd2d1}, + {0x4747, 0x585c, 0x6972, 0x7a87, 0x5a49, 0x6b5f, 0x7c74, 0x8d8a, + 0x6d4b, 0x7e61, 0x8f76, 0xa08c, 0x804d, 0x9163, 0xa278, 0xb38e, + 0x9350, 0xa465, 0xb57b, 0xc690, 0xa652, 0xb767, 0xc87d, 0xd992, + 0xb954, 0xca6a, 0xdb7f, 0xec95, 0xcc56, 0xdd6c, 0xee81, 0xff97, + 0x404f, 0x5165, 0x627a, 0x7490, 0x5351, 0x6467, 0x757c, 0x8792, + 0x6654, 0x7769, 0x887f, 0x9a94, 0x7956, 0x8a6b, 0x9b81, 0xac96, + 0x8c58, 0x9d6e, 0xae83, 0xbf99, 0x9f5a, 0xb070, 0xc185, 0xd29b, + 0xb25c, 0xc372, 0xd487, 0xe59d, 0xc55f, 0xd674, 0xe78a, 0xf89f, + 0x3a58, 0x4b6d, 0x5c83, 0x6d98, 0x4d5a, 0x5e6f, 0x6f85, 0x809a, + 0x605c, 0x7171, 0x8287, 0x939d, 0x735e, 0x8474, 0x9589, 0xa69f, + 0x8660, 0x9776, 0xa88b, 0xb9a1, 0x9963, 0xaa78, 0xbb8e, 0xcca3, + 0xac65, 0xbd7a, 0xce90, 0xdfa5, 0xbf67, 0xd07d, 0xe192, 0xf2a8, + 0x3360, 0x4475, 0x558b, 0x67a1, 0x4662, 0x5778, 0x688d, 0x7aa3, + 0x5964, 0x6a7a, 0x7b8f, 0x8da5, 0x6c67, 0x7d7c, 0x8e92, 0xa0a7, + 0x7f69, 0x907e, 0xa194, 0xb3a9, 0x926b, 0xa380, 0xb496, 0xc5ac, + 0xa56d, 0xb683, 0xc798, 0xd8ae, 0xb86f, 0xc985, 0xda9a, 0xebb0, + 0x2d68, 0x3e7e, 0x4f93, 0x60a9, 0x406a, 0x5180, 0x6296, 0x73ab, + 0x536d, 0x6482, 0x7598, 0x86ad, 0x666f, 0x7784, 0x889a, 0x99b0, + 0x7971, 0x8a87, 0x9b9c, 0xacb2, 0x8c73, 0x9d89, 0xae9e, 0xbfb4, + 0x9f76, 0xb08b, 0xc1a1, 0xd2b6, 0xb278, 0xc38d, 0xd4a3, 0xe5b8, + 0x2671, 0x3786, 0x489c, 0x5ab1, 0x3973, 0x4a88, 0x5b9e, 0x6db4, + 0x4c75, 0x5d8b, 0x6ea0, 0x80b6, 0x5f77, 0x708d, 0x81a2, 0x93b8, + 0x7279, 0x838f, 0x94a5, 0xa6ba, 0x857c, 0x9691, 0xa7a7, 0xb9bc, + 0x987e, 0xa993, 0xbaa9, 0xcbbf, 0xab80, 0xbc96, 0xcdab, 0xdec1, + 0x2079, 0x318f, 0x42a4, 0x53ba, 0x337b, 0x4491, 0x55a6, 0x66bc, + 0x467d, 0x5793, 0x68a9, 0x79be, 0x5980, 0x6a95, 0x7bab, 0x8cc0, + 0x6c82, 0x7d97, 0x8ead, 0x9fc3, 0x7f84, 0x909a, 0xa1af, 0xb2c5, + 0x9286, 0xa39c, 0xb4b1, 0xc5c7, 0xa588, 0xb69e, 0xc7b4, 0xd8c9, + 0x1981, 0x2a97, 0x3bac, 0x4dc2, 0x2c84, 0x3d99, 0x4eaf, 0x60c4, + 0x3f86, 0x509b, 0x61b1, 0x73c6, 0x5288, 0x639e, 0x74b3, 0x86c9, + 0x658a, 0x76a0, 0x87b5, 0x99cb, 0x788c, 0x89a2, 0x9ab8, 0xaccd, + 0x8b8f, 0x9ca4, 0xadba, 0xbfcf, 0x9e91, 0xafa6, 0xc0bc, 0xd1d2}, + {0x4747, 0x413b, 0x3b2e, 0x3622, 0x4b5b, 0x454f, 0x3f43, 0x3937, + 0x4e70, 0x4964, 0x4358, 0x3d4b, 0x5285, 0x4c78, 0x476c, 0x4160, + 0x5699, 0x508d, 0x4a81, 0x4575, 0x5aae, 0x54a2, 0x4e96, 0x4889, + 0x5dc3, 0x58b6, 0x52aa, 0x4c9e, 0x61d7, 0x5bcb, 0x56bf, 0x50b3, + 0x594b, 0x543f, 0x4e33, 0x4826, 0x5d60, 0x5754, 0x5247, 0x4c3b, + 0x6174, 0x5b68, 0x555c, 0x5050, 0x6589, 0x5f7d, 0x5971, 0x5364, + 0x689e, 0x6392, 0x5d85, 0x5779, 0x6cb2, 0x66a6, 0x619a, 0x5b8e, + 0x70c7, 0x6abb, 0x64af, 0x5fa2, 0x74dc, 0x6ed0, 0x68c3, 0x62b7, + 0x6c50, 0x6643, 0x6037, 0x5b2b, 0x7064, 0x6a58, 0x644c, 0x5e40, + 0x7379, 0x6e6d, 0x6860, 0x6254, 0x778e, 0x7181, 0x6c75, 0x6669, + 0x7ba2, 0x7596, 0x6f8a, 0x6a7d, 0x7fb7, 0x79ab, 0x739e, 0x6d92, + 0x82cc, 0x7dbf, 0x77b3, 0x71a7, 0x86e0, 0x80d4, 0x7bc8, 0x75bb, + 0x7e54, 0x7948, 0x733b, 0x6d2f, 0x8269, 0x7c5c, 0x7750, 0x7144, + 0x867d, 0x8071, 0x7a65, 0x7559, 0x8a92, 0x8486, 0x7e79, 0x786d, + 0x8da7, 0x889a, 0x828e, 0x7c82, 0x91bb, 0x8baf, 0x86a3, 0x8097, + 0x95d0, 0x8fc4, 0x89b7, 0x84ab, 0x99e5, 0x93d8, 0x8dcc, 0x87c0, + 0x9158, 0x8b4c, 0x8540, 0x8034, 0x956d, 0x8f61, 0x8955, 0x8348, + 0x9882, 0x9375, 0x8d69, 0x875d, 0x9c96, 0x968a, 0x917e, 0x8b72, + 0xa0ab, 0x9a9f, 0x9493, 0x8f86, 0xa4c0, 0x9eb3, 0x98a7, 0x929b, + 0xa7d4, 0xa2c8, 0x9cbc, 0x96b0, 0xabe9, 0xa5dd, 0xa0d1, 0x9ac4, + 0xa35d, 0x9e51, 0x9844, 0x9238, 0xa771, 0xa165, 0x9c59, 0x964d, + 0xab86, 0xa57a, 0x9f6e, 0x9a61, 0xaf9b, 0xa98f, 0xa382, 0x9d76, + 0xb2af, 0xada3, 0xa797, 0xa18b, 0xb6c4, 0xb0b8, 0xabac, 0xa59f, + 0xbad9, 0xb4cc, 0xaec0, 0xa9b4, 0xbeed, 0xb8e1, 0xb2d5, 0xacc9, + 0xb661, 0xb055, 0xaa49, 0xa53c, 0xba76, 0xb46a, 0xae5d, 0xa851, + 0xbd8a, 0xb87e, 0xb272, 0xac66, 0xc19f, 0xbb93, 0xb687, 0xb07a, + 0xc5b4, 0xbfa8, 0xb99b, 0xb48f, 0xc9c8, 0xc3bc, 0xbdb0, 0xb7a4, + 0xccdd, 0xc7d1, 0xc1c5, 0xbbb8, 0xd0f2, 0xcae6, 0xc5d9, 0xbfcd, + 0xc866, 0xc359, 0xbd4d, 0xb741, 0xcc7a, 0xc66e, 0xc162, 0xbb56, + 0xd08f, 0xca83, 0xc476, 0xbf6a, 0xd4a4, 0xce97, 0xc88b, 0xc27f, + 0xd7b8, 0xd2ac, 0xcca0, 0xc694, 0xdbcd, 0xd5c1, 0xd0b4, 0xcaa8, + 0xdfe2, 0xd9d5, 0xd3c9, 0xcebd, 0xe3f6, 0xddea, 0xd7de, 0xd2d1}, + {0x4747, 0x555e, 0x6475, 0x728c, 0x5b4a, 0x6a61, 0x7878, 0x8790, + 0x6f4d, 0x7e65, 0x8c7c, 0x9b93, 0x8351, 0x9268, 0xa17f, 0xaf96, + 0x9854, 0xa66b, 0xb582, 0xc399, 0xac57, 0xba6e, 0xc986, 0xd89d, + 0xc05b, 0xcf72, 0xdd89, 0xeca0, 0xd45e, 0xe375, 0xf28c, 0xffa3, + 0x404d, 0x4f65, 0x5d7c, 0x6c93, 0x5451, 0x6368, 0x717f, 0x8096, + 0x6954, 0x776b, 0x8682, 0x9499, 0x7d57, 0x8b6e, 0x9a86, 0xa89d, + 0x915b, 0xa072, 0xae89, 0xbda0, 0xa55e, 0xb475, 0xc28c, 0xd1a3, + 0xba61, 0xc878, 0xd78f, 0xe5a7, 0xce64, 0xdc7c, 0xeb93, 0xf9aa, + 0x3954, 0x486b, 0x5782, 0x6599, 0x4e57, 0x5c6e, 0x6b86, 0x799d, + 0x625b, 0x7072, 0x7f89, 0x8ea0, 0x765e, 0x8575, 0x938c, 0xa2a3, + 0x8a61, 0x9978, 0xa88f, 0xb6a7, 0x9f64, 0xad7c, 0xbc93, 0xcaaa, + 0xb368, 0xc17f, 0xd096, 0xdfad, 0xc76b, 0xd682, 0xe499, 0xf3b1, + 0x335b, 0x4172, 0x5089, 0x5ea0, 0x475e, 0x5675, 0x648c, 0x73a3, + 0x5b61, 0x6a78, 0x788f, 0x87a7, 0x6f64, 0x7e7c, 0x8d93, 0x9baa, + 0x8468, 0x927f, 0xa196, 0xafad, 0x986b, 0xa782, 0xb599, 0xc4b1, + 0xac6e, 0xbb85, 0xc99d, 0xd8b4, 0xc072, 0xcf89, 0xdea0, 0xecb7, + 0x2c61, 0x3b78, 0x498f, 0x58a7, 0x4064, 0x4f7c, 0x5d93, 0x6caa, + 0x5568, 0x637f, 0x7296, 0x80ad, 0x696b, 0x7782, 0x8699, 0x95b1, + 0x7d6e, 0x8c85, 0x9a9d, 0xa9b4, 0x9172, 0xa089, 0xaea0, 0xbdb7, + 0xa675, 0xb48c, 0xc3a3, 0xd1ba, 0xba78, 0xc88f, 0xd7a7, 0xe5be, + 0x2568, 0x347f, 0x4396, 0x51ad, 0x3a6b, 0x4882, 0x5799, 0x65b1, + 0x4e6e, 0x5d85, 0x6b9d, 0x7ab4, 0x6272, 0x7189, 0x7fa0, 0x8eb7, + 0x7675, 0x858c, 0x94a3, 0xa2ba, 0x8b78, 0x998f, 0xa8a7, 0xb6be, + 0x9f7b, 0xad93, 0xbcaa, 0xcbc1, 0xb37f, 0xc296, 0xd0ad, 0xdfc4, + 0x1f6e, 0x2d85, 0x3c9d, 0x4bb4, 0x3372, 0x4289, 0x50a0, 0x5fb7, + 0x4775, 0x568c, 0x64a3, 0x73ba, 0x5c78, 0x6a8f, 0x79a7, 0x87be, + 0x707b, 0x7e93, 0x8daa, 0x9bc1, 0x847f, 0x9396, 0xa1ad, 0xb0c4, + 0x9882, 0xa799, 0xb5b0, 0xc4c8, 0xac85, 0xbb9d, 0xcab4, 0xd8cb, + 0x1875, 0x278c, 0x35a3, 0x44ba, 0x2c78, 0x3b8f, 0x4aa7, 0x58be, + 0x417b, 0x4f93, 0x5eaa, 0x6cc1, 0x557f, 0x6396, 0x72ad, 0x81c4, + 0x6982, 0x7899, 0x86b0, 0x95c8, 0x7d85, 0x8c9d, 0x9ab4, 0xa9cb, + 0x9289, 0xa0a0, 0xafb7, 0xbdce, 0xa68c, 0xb4a3, 0xc3ba, 0xd1d2}, + {0x4747, 0x4439, 0x412b, 0x3e1e, 0x495a, 0x464d, 0x433f, 0x4031, + 0x4c6e, 0x4960, 0x4652, 0x4345, 0x4f81, 0x4b74, 0x4866, 0x4558, + 0x5195, 0x4e87, 0x4b79, 0x486c, 0x54a8, 0x519a, 0x4e8d, 0x4b7f, + 0x56bc, 0x53ae, 0x50a0, 0x4d93, 0x59cf, 0x56c1, 0x53b4, 0x50a6, + 0x594d, 0x563f, 0x5332, 0x5024, 0x5c60, 0x5953, 0x5645, 0x5337, + 0x5e74, 0x5b66, 0x5859, 0x554b, 0x6187, 0x5e7a, 0x5b6c, 0x585e, + 0x649b, 0x618d, 0x5e80, 0x5b72, 0x66ae, 0x63a1, 0x6093, 0x5d85, + 0x69c2, 0x66b4, 0x63a6, 0x6099, 0x6bd5, 0x68c8, 0x65ba, 0x62ac, + 0x6c53, 0x6945, 0x6638, 0x632a, 0x6e67, 0x6b59, 0x684b, 0x653e, + 0x717a, 0x6e6c, 0x6b5f, 0x6851, 0x748e, 0x7180, 0x6e72, 0x6a65, + 0x76a1, 0x7393, 0x7086, 0x6d78, 0x79b5, 0x76a7, 0x7399, 0x708c, + 0x7bc8, 0x78ba, 0x75ad, 0x729f, 0x7edc, 0x7bce, 0x78c0, 0x75b3, + 0x7e59, 0x7b4c, 0x783e, 0x7530, 0x816d, 0x7e5f, 0x7b51, 0x7844, + 0x8480, 0x8073, 0x7d65, 0x7a57, 0x8694, 0x8386, 0x8078, 0x7d6b, + 0x89a7, 0x869a, 0x838c, 0x807e, 0x8bbb, 0x88ad, 0x859f, 0x8292, + 0x8ece, 0x8bc1, 0x88b3, 0x85a5, 0x91e2, 0x8dd4, 0x8ac6, 0x87b9, + 0x9160, 0x8e52, 0x8b44, 0x8837, 0x9373, 0x9065, 0x8d58, 0x8a4a, + 0x9687, 0x9379, 0x906b, 0x8d5d, 0x999a, 0x968c, 0x937f, 0x9071, + 0x9bad, 0x98a0, 0x9592, 0x9284, 0x9ec1, 0x9bb3, 0x98a6, 0x9598, + 0xa0d4, 0x9dc7, 0x9ab9, 0x97ab, 0xa3e8, 0xa0da, 0x9dcd, 0x9abf, + 0xa366, 0xa058, 0x9d4a, 0x9a3d, 0xa679, 0xa36c, 0xa05e, 0x9d50, + 0xa98d, 0xa67f, 0xa271, 0x9f64, 0xaba0, 0xa893, 0xa585, 0xa277, + 0xaeb4, 0xaba6, 0xa898, 0xa58b, 0xb0c7, 0xadb9, 0xaaac, 0xa79e, + 0xb3db, 0xb0cd, 0xadbf, 0xaab2, 0xb6ee, 0xb3e0, 0xafd3, 0xacc5, + 0xb66c, 0xb35e, 0xb051, 0xad43, 0xb97f, 0xb572, 0xb264, 0xaf56, + 0xbb93, 0xb885, 0xb578, 0xb26a, 0xbea6, 0xbb99, 0xb88b, 0xb57d, + 0xc0ba, 0xbdac, 0xba9f, 0xb791, 0xc3cd, 0xc0c0, 0xbdb2, 0xbaa4, + 0xc6e1, 0xc2d3, 0xbfc5, 0xbcb8, 0xc8f4, 0xc5e7, 0xc2d9, 0xbfcb, + 0xc872, 0xc564, 0xc257, 0xbf49, 0xcb86, 0xc878, 0xc56a, 0xc25d, + 0xce99, 0xcb8b, 0xc87e, 0xc570, 0xd0ad, 0xcd9f, 0xca91, 0xc784, + 0xd3c0, 0xd0b2, 0xcda5, 0xca97, 0xd5d4, 0xd2c6, 0xcfb8, 0xccab, + 0xd8e7, 0xd5d9, 0xd2cc, 0xcfbe, 0xdbfb, 0xd8ed, 0xd5df, 0xd2d1}, + {0x4747, 0x535f, 0x5e78, 0x6a90, 0x5c4b, 0x6864, 0x747c, 0x8095, + 0x7150, 0x7d68, 0x8981, 0x9599, 0x8754, 0x926d, 0x9e85, 0xaa9e, + 0x9c59, 0xa871, 0xb48a, 0xbfa2, 0xb15e, 0xbd76, 0xc98e, 0xd5a7, + 0xc762, 0xd27b, 0xde93, 0xeaab, 0xdc67, 0xe87f, 0xf498, 0xffb0, + 0x404c, 0x4c64, 0x587c, 0x6495, 0x5550, 0x6169, 0x6d81, 0x7999, + 0x6b55, 0x776d, 0x8286, 0x8e9e, 0x8059, 0x8c72, 0x988a, 0xa4a3, + 0x955e, 0xa176, 0xad8f, 0xb9a7, 0xab62, 0xb77b, 0xc293, 0xceac, + 0xc067, 0xcc7f, 0xd898, 0xe4b0, 0xd56b, 0xe184, 0xed9c, 0xf9b5, + 0x3a50, 0x4569, 0x5181, 0x5d9a, 0x4f55, 0x5b6d, 0x6786, 0x729e, + 0x6459, 0x7072, 0x7c8a, 0x88a3, 0x7a5e, 0x8576, 0x918f, 0x9da7, + 0x8f63, 0x9b7b, 0xa793, 0xb2ac, 0xa467, 0xb080, 0xbc98, 0xc8b0, + 0xb96c, 0xc584, 0xd19d, 0xddb5, 0xcf70, 0xdb89, 0xe6a1, 0xf2ba, + 0x3355, 0x3f6e, 0x4b86, 0x579e, 0x485a, 0x5472, 0x608b, 0x6ca3, + 0x5e5e, 0x6a77, 0x758f, 0x81a8, 0x7363, 0x7f7b, 0x8b94, 0x97ac, + 0x8867, 0x9480, 0xa098, 0xacb1, 0x9e6c, 0xa984, 0xb59d, 0xc1b5, + 0xb370, 0xbf89, 0xcba1, 0xd6ba, 0xc875, 0xd48d, 0xe0a6, 0xecbe, + 0x2d5a, 0x3872, 0x448b, 0x50a3, 0x425e, 0x4e77, 0x5a8f, 0x65a8, + 0x5763, 0x637b, 0x6f94, 0x7bac, 0x6c68, 0x7880, 0x8498, 0x90b1, + 0x826c, 0x8e85, 0x999d, 0xa5b5, 0x9771, 0xa389, 0xafa2, 0xbbba, + 0xac75, 0xb88e, 0xc4a6, 0xd0bf, 0xc27a, 0xcd92, 0xd9ab, 0xe5c3, + 0x265f, 0x3277, 0x3e90, 0x49a8, 0x3b63, 0x477c, 0x5394, 0x5fad, + 0x5168, 0x5c80, 0x6899, 0x74b1, 0x666c, 0x7285, 0x7e9d, 0x89b6, + 0x7b71, 0x8789, 0x93a2, 0x9fba, 0x9075, 0x9c8e, 0xa8a6, 0xb4bf, + 0xa67a, 0xb292, 0xbdab, 0xc9c3, 0xbb7f, 0xc797, 0xd3af, 0xdfc8, + 0x1f64, 0x2b7c, 0x3794, 0x43ad, 0x3568, 0x4181, 0x4c99, 0x58b1, + 0x4a6d, 0x5685, 0x629d, 0x6eb6, 0x5f71, 0x6b8a, 0x77a2, 0x83ba, + 0x7576, 0x808e, 0x8ca7, 0x98bf, 0x8a7a, 0x9693, 0xa2ab, 0xadc4, + 0x9f7f, 0xab97, 0xb7b0, 0xc3c8, 0xb583, 0xc09c, 0xccb4, 0xd8cd, + 0x1968, 0x2581, 0x3199, 0x3cb2, 0x2e6d, 0x3a85, 0x469e, 0x52b6, + 0x4371, 0x4f8a, 0x5ba2, 0x67bb, 0x5976, 0x658e, 0x70a7, 0x7cbf, + 0x6e7b, 0x7a93, 0x86ab, 0x92c4, 0x837f, 0x8f98, 0x9bb0, 0xa7c8, + 0x9984, 0xa59c, 0xb0b5, 0xbccd, 0xae88, 0xbaa1, 0xc6b9, 0xd1d2}, + {0x4747, 0x4738, 0x4629, 0x461b, 0x4859, 0x484a, 0x483b, 0x482d, + 0x4a6b, 0x4a5c, 0x4a4e, 0x493f, 0x4c7d, 0x4b6e, 0x4b60, 0x4b51, + 0x4d8f, 0x4d81, 0x4d72, 0x4d63, 0x4fa1, 0x4f93, 0x4e84, 0x4e75, + 0x51b4, 0x50a5, 0x5096, 0x5087, 0x52c6, 0x52b7, 0x52a8, 0x519a, + 0x594f, 0x5940, 0x5931, 0x5823, 0x5b61, 0x5a52, 0x5a43, 0x5a35, + 0x5c73, 0x5c64, 0x5c56, 0x5c47, 0x5e85, 0x5e76, 0x5d68, 0x5d59, + 0x6097, 0x5f89, 0x5f7a, 0x5f6b, 0x61a9, 0x619b, 0x618c, 0x607d, + 0x63bc, 0x63ad, 0x629e, 0x628f, 0x64ce, 0x64bf, 0x64b0, 0x64a2, + 0x6b57, 0x6b48, 0x6b39, 0x6b2b, 0x6d69, 0x6d5a, 0x6c4b, 0x6c3d, + 0x6f7b, 0x6e6c, 0x6e5e, 0x6e4f, 0x708d, 0x707e, 0x7070, 0x6f61, + 0x729f, 0x7291, 0x7182, 0x7173, 0x73b1, 0x73a3, 0x7394, 0x7385, + 0x75c4, 0x75b5, 0x75a6, 0x7497, 0x77d6, 0x76c7, 0x76b8, 0x76aa, + 0x7e5f, 0x7d50, 0x7d41, 0x7d32, 0x7f71, 0x7f62, 0x7f53, 0x7f45, + 0x8183, 0x8174, 0x8066, 0x8057, 0x8395, 0x8286, 0x8278, 0x8269, + 0x84a7, 0x8499, 0x848a, 0x837b, 0x86b9, 0x86ab, 0x859c, 0x858d, + 0x87cc, 0x87bd, 0x87ae, 0x879f, 0x89de, 0x89cf, 0x89c0, 0x88b2, + 0x9067, 0x9058, 0x8f49, 0x8f3a, 0x9279, 0x916a, 0x915b, 0x914d, + 0x938b, 0x937c, 0x936e, 0x925f, 0x959d, 0x958e, 0x9480, 0x9471, + 0x96af, 0x96a1, 0x9692, 0x9683, 0x98c1, 0x98b3, 0x98a4, 0x9795, + 0x9ad4, 0x99c5, 0x99b6, 0x99a7, 0x9be6, 0x9bd7, 0x9bc8, 0x9bba, + 0xa26f, 0xa260, 0xa251, 0xa242, 0xa481, 0xa472, 0xa363, 0xa355, + 0xa693, 0xa584, 0xa576, 0xa567, 0xa7a5, 0xa796, 0xa788, 0xa679, + 0xa9b7, 0xa9a9, 0xa89a, 0xa88b, 0xaac9, 0xaabb, 0xaaac, 0xaa9d, + 0xacdc, 0xaccd, 0xacbe, 0xabaf, 0xaeee, 0xaddf, 0xadd0, 0xadc2, + 0xb577, 0xb468, 0xb459, 0xb44a, 0xb689, 0xb67a, 0xb66b, 0xb55d, + 0xb89b, 0xb88c, 0xb77e, 0xb76f, 0xb9ad, 0xb99e, 0xb990, 0xb981, + 0xbbbf, 0xbbb1, 0xbba2, 0xba93, 0xbdd1, 0xbcc3, 0xbcb4, 0xbca5, + 0xbee4, 0xbed5, 0xbec6, 0xbeb7, 0xc0f6, 0xc0e7, 0xbfd8, 0xbfca, + 0xc77f, 0xc770, 0xc661, 0xc652, 0xc891, 0xc882, 0xc873, 0xc865, + 0xcaa3, 0xca94, 0xca85, 0xc977, 0xccb5, 0xcba6, 0xcb98, 0xcb89, + 0xcdc7, 0xcdb9, 0xcdaa, 0xcd9b, 0xcfd9, 0xcfcb, 0xcebc, 0xcead, + 0xd1ec, 0xd0dd, 0xd0ce, 0xd0bf, 0xd2fe, 0xd2ef, 0xd2e0, 0xd2d1}, + {0x4747, 0x5060, 0x5979, 0x6293, 0x5d4d, 0x6666, 0x6f7f, 0x7899, + 0x7353, 0x7c6c, 0x8585, 0x8e9f, 0x8959, 0x9272, 0x9b8b, 0xa4a5, + 0x9f5f, 0xa878, 0xb191, 0xbaaa, 0xb665, 0xbf7e, 0xc897, 0xd1b0, + 0xcc6b, 0xd584, 0xde9d, 0xe7b6, 0xe270, 0xeb8a, 0xf4a3, 0xfdbc, + 0x414a, 0x4a63, 0x537c, 0x5b96, 0x5750, 0x6069, 0x6982, 0x729c, + 0x6d56, 0x766f, 0x7f88, 0x88a2, 0x835c, 0x8c75, 0x958e, 0x9ea8, + 0x9962, 0xa27b, 0xab94, 0xb4ad, 0xaf68, 0xb881, 0xc19a, 0xcab3, + 0xc66e, 0xcf87, 0xd8a0, 0xe1b9, 0xdc73, 0xe58d, 0xeea6, 0xf7bf, + 0x3a4d, 0x4366, 0x4c7f, 0x5599, 0x5153, 0x5a6c, 0x6285, 0x6b9f, + 0x6759, 0x7072, 0x798b, 0x82a5, 0x7d5f, 0x8678, 0x8f91, 0x98ab, + 0x9365, 0x9c7e, 0xa597, 0xaeb1, 0xa96b, 0xb284, 0xbb9d, 0xc4b6, + 0xbf71, 0xc88a, 0xd1a3, 0xdabc, 0xd677, 0xdf90, 0xe8a9, 0xf0c2, + 0x3450, 0x3d69, 0x4682, 0x4f9c, 0x4a56, 0x536f, 0x5c88, 0x65a2, + 0x605c, 0x6975, 0x728e, 0x7ba8, 0x7762, 0x807b, 0x8994, 0x92ae, + 0x8d68, 0x9681, 0x9f9a, 0xa8b4, 0xa36e, 0xac87, 0xb5a0, 0xbeb9, + 0xb974, 0xc28d, 0xcba6, 0xd4bf, 0xcf7a, 0xd893, 0xe1ac, 0xeac5, + 0x2e53, 0x376c, 0x4085, 0x499f, 0x4459, 0x4d72, 0x568b, 0x5fa5, + 0x5a5f, 0x6378, 0x6c91, 0x75ab, 0x7065, 0x797e, 0x8297, 0x8bb1, + 0x876b, 0x9084, 0x999d, 0xa2b7, 0x9d71, 0xa68a, 0xafa3, 0xb8bd, + 0xb377, 0xbc90, 0xc5a9, 0xcec2, 0xc97d, 0xd296, 0xdbaf, 0xe4c8, + 0x2856, 0x316f, 0x3a88, 0x43a2, 0x3e5c, 0x4775, 0x508e, 0x59a8, + 0x5462, 0x5d7b, 0x6694, 0x6fae, 0x6a68, 0x7381, 0x7c9a, 0x85b4, + 0x806e, 0x8987, 0x92a0, 0x9bba, 0x9774, 0xa08d, 0xa9a6, 0xb2c0, + 0xad7a, 0xb693, 0xbfac, 0xc8c5, 0xc380, 0xcc99, 0xd5b2, 0xdecb, + 0x2259, 0x2b72, 0x348b, 0x3ca5, 0x385f, 0x4178, 0x4a91, 0x53ab, + 0x4e65, 0x577e, 0x6097, 0x69b1, 0x646b, 0x6d84, 0x769d, 0x7fb7, + 0x7a71, 0x838a, 0x8ca3, 0x95bd, 0x9077, 0x9990, 0xa2a9, 0xabc3, + 0xa77d, 0xb096, 0xb9af, 0xc2c9, 0xbd83, 0xc69c, 0xcfb5, 0xd8ce, + 0x1b5c, 0x2475, 0x2d8e, 0x36a8, 0x3262, 0x3b7b, 0x4394, 0x4cae, + 0x4868, 0x5181, 0x5a9a, 0x63b4, 0x5e6e, 0x6787, 0x70a0, 0x79ba, + 0x7474, 0x7d8d, 0x86a6, 0x8fc0, 0x8a7a, 0x9393, 0x9cac, 0xa5c6, + 0xa080, 0xa999, 0xb2b2, 0xbbcc, 0xb786, 0xc09f, 0xc9b8, 0xd1d2}, + {0x4747, 0x4937, 0x4c28, 0x4f19, 0x4857, 0x4a48, 0x4d39, 0x5029, + 0x4868, 0x4b59, 0x4e49, 0x503a, 0x4979, 0x4c69, 0x4f5a, 0x514b, + 0x4a89, 0x4d7a, 0x506b, 0x525b, 0x4b9a, 0x4e8b, 0x507b, 0x536c, + 0x4cab, 0x4f9b, 0x518c, 0x547d, 0x4dbc, 0x4fac, 0x529d, 0x558d, + 0x5950, 0x5b41, 0x5e32, 0x6122, 0x5961, 0x5c52, 0x5f42, 0x6133, + 0x5a72, 0x5d62, 0x6053, 0x6244, 0x5b83, 0x5e73, 0x6064, 0x6354, + 0x5c93, 0x5f84, 0x6174, 0x6465, 0x5da4, 0x6095, 0x6285, 0x6576, + 0x5eb5, 0x60a5, 0x6396, 0x6686, 0x5fc5, 0x61b6, 0x64a6, 0x6797, + 0x6a5a, 0x6d4b, 0x703b, 0x722c, 0x6b6b, 0x6e5c, 0x714c, 0x733d, + 0x6c7c, 0x6f6c, 0x715d, 0x744d, 0x6d8c, 0x707d, 0x726d, 0x755e, + 0x6e9d, 0x708e, 0x737e, 0x766f, 0x6fae, 0x719e, 0x748f, 0x777f, + 0x70be, 0x72af, 0x75a0, 0x7890, 0x70cf, 0x73c0, 0x76b0, 0x78a1, + 0x7c64, 0x7f55, 0x8245, 0x8436, 0x7d75, 0x8065, 0x8256, 0x8546, + 0x7e85, 0x8176, 0x8367, 0x8657, 0x7f96, 0x8187, 0x8477, 0x8768, + 0x80a7, 0x8297, 0x8588, 0x8878, 0x81b7, 0x83a8, 0x8699, 0x8889, + 0x81c8, 0x84b9, 0x87a9, 0x899a, 0x82d9, 0x85c9, 0x88ba, 0x8aab, + 0x8e6e, 0x915e, 0x934f, 0x9640, 0x8f7e, 0x926f, 0x9460, 0x9750, + 0x908f, 0x9280, 0x9570, 0x9861, 0x91a0, 0x9390, 0x9681, 0x9972, + 0x91b0, 0x94a1, 0x9792, 0x9982, 0x92c1, 0x95b2, 0x98a2, 0x9a93, + 0x93d2, 0x96c2, 0x99b3, 0x9ba4, 0x94e2, 0x97d3, 0x99c4, 0x9cb4, + 0xa077, 0xa368, 0xa559, 0xa849, 0xa188, 0xa379, 0xa669, 0xa95a, + 0xa299, 0xa489, 0xa77a, 0xaa6b, 0xa2a9, 0xa59a, 0xa88b, 0xaa7b, + 0xa3ba, 0xa6ab, 0xa99b, 0xab8c, 0xa4cb, 0xa7bb, 0xa9ac, 0xac9d, + 0xa5dc, 0xa8cc, 0xaabd, 0xadad, 0xa6ec, 0xa9dd, 0xabcd, 0xaebe, + 0xb281, 0xb472, 0xb762, 0xba53, 0xb392, 0xb582, 0xb873, 0xbb64, + 0xb3a3, 0xb693, 0xb984, 0xbb74, 0xb4b3, 0xb7a4, 0xba94, 0xbc85, + 0xb5c4, 0xb8b5, 0xbaa5, 0xbd96, 0xb6d5, 0xb9c5, 0xbbb6, 0xbea6, + 0xb7e5, 0xbad6, 0xbcc6, 0xbfb7, 0xb8f6, 0xbae7, 0xbdd7, 0xc0c8, + 0xc38b, 0xc67c, 0xc96c, 0xcb5d, 0xc49c, 0xc78c, 0xca7d, 0xcc6d, + 0xc5ac, 0xc89d, 0xcb8d, 0xcd7e, 0xc6bd, 0xc9ae, 0xcb9e, 0xce8f, + 0xc7ce, 0xcabe, 0xccaf, 0xcf9f, 0xc8de, 0xcacf, 0xcdc0, 0xd0b0, + 0xc9ef, 0xcbe0, 0xced0, 0xd1c1, 0xcaff, 0xccf0, 0xcfe1, 0xd2d1}, + {0x4747, 0x4d60, 0x537a, 0x5994, 0x5e4e, 0x6468, 0x6a82, 0x709b, + 0x7456, 0x7a6f, 0x8089, 0x87a3, 0x8b5d, 0x9177, 0x9791, 0x9daa, + 0xa265, 0xa87e, 0xae98, 0xb4b2, 0xb96c, 0xbf86, 0xc5a0, 0xcbb9, + 0xd074, 0xd68d, 0xdca7, 0xe2c1, 0xe77b, 0xed95, 0xf3af, 0xf9c8, + 0x4148, 0x4762, 0x4d7c, 0x5395, 0x5850, 0x5e69, 0x6483, 0x6a9d, + 0x6f57, 0x7571, 0x7b8b, 0x81a4, 0x865e, 0x8c78, 0x9292, 0x98ac, + 0x9c66, 0xa380, 0xa999, 0xafb3, 0xb36d, 0xb987, 0xbfa1, 0xc5bb, + 0xca75, 0xd08f, 0xd6a8, 0xdcc2, 0xe17c, 0xe796, 0xedb0, 0xf3ca, + 0x3c49, 0x4263, 0x487d, 0x4e97, 0x5251, 0x586b, 0x5e84, 0x659e, + 0x6958, 0x6f72, 0x758c, 0x7ba6, 0x8060, 0x867a, 0x8c93, 0x92ad, + 0x9767, 0x9d81, 0xa39b, 0xa9b5, 0xae6f, 0xb489, 0xbaa2, 0xc0bc, + 0xc576, 0xcb90, 0xd1aa, 0xd7c3, 0xdb7e, 0xe197, 0xe7b1, 0xedcb, + 0x364b, 0x3c64, 0x427e, 0x4898, 0x4d52, 0x536c, 0x5986, 0x5f9f, + 0x645a, 0x6a73, 0x708d, 0x76a7, 0x7a61, 0x807b, 0x8795, 0x8dae, + 0x9169, 0x9782, 0x9d9c, 0xa3b6, 0xa870, 0xae8a, 0xb4a4, 0xbabd, + 0xbf78, 0xc591, 0xcbab, 0xd1c5, 0xd67f, 0xdc99, 0xe2b3, 0xe8cc, + 0x304c, 0x3666, 0x3c7f, 0x4299, 0x4753, 0x4d6d, 0x5387, 0x59a1, + 0x5e5b, 0x6475, 0x6a8e, 0x70a8, 0x7562, 0x7b7c, 0x8196, 0x87b0, + 0x8c6a, 0x9284, 0x989d, 0x9eb7, 0xa371, 0xa98b, 0xafa5, 0xb5bf, + 0xb979, 0xbf93, 0xc5ac, 0xcbc6, 0xd080, 0xd69a, 0xdcb4, 0xe2ce, + 0x2b4d, 0x3167, 0x3781, 0x3d9b, 0x4255, 0x486f, 0x4e88, 0x54a2, + 0x585c, 0x5e76, 0x6590, 0x6ba9, 0x6f64, 0x757d, 0x7b97, 0x81b1, + 0x866b, 0x8c85, 0x929f, 0x98b8, 0x9d73, 0xa38c, 0xa9a6, 0xafc0, + 0xb47a, 0xba94, 0xc0ae, 0xc6c7, 0xcb82, 0xd19b, 0xd7b5, 0xddcf, + 0x254f, 0x2b68, 0x3182, 0x379c, 0x3c56, 0x4270, 0x488a, 0x4ea3, + 0x535e, 0x5977, 0x5f91, 0x65ab, 0x6a65, 0x707f, 0x7699, 0x7cb2, + 0x806d, 0x8786, 0x8da0, 0x93ba, 0x9774, 0x9d8e, 0xa3a7, 0xa9c1, + 0xae7b, 0xb495, 0xbaaf, 0xc0c9, 0xc583, 0xcb9d, 0xd1b6, 0xd7d0, + 0x2050, 0x266a, 0x2c83, 0x329d, 0x3657, 0x3c71, 0x428b, 0x49a5, + 0x4d5f, 0x5379, 0x5992, 0x5fac, 0x6466, 0x6a80, 0x709a, 0x76b4, + 0x7b6e, 0x8188, 0x87a1, 0x8dbb, 0x9275, 0x988f, 0x9ea9, 0xa4c3, + 0xa97d, 0xaf97, 0xb5b0, 0xbbca, 0xbf84, 0xc59e, 0xcbb8, 0xd1d2}, + {0x4747, 0x4c37, 0x5227, 0x5818, 0x4756, 0x4d46, 0x5237, 0x5827, + 0x4765, 0x4d55, 0x5346, 0x5836, 0x4874, 0x4d64, 0x5355, 0x5945, + 0x4883, 0x4e74, 0x5364, 0x5954, 0x4892, 0x4e83, 0x5473, 0x5963, + 0x49a1, 0x4e92, 0x5482, 0x5973, 0x49b1, 0x4fa1, 0x5491, 0x5a82, + 0x5852, 0x5d43, 0x6333, 0x6923, 0x5861, 0x5e52, 0x6342, 0x6932, + 0x5870, 0x5e61, 0x6451, 0x6941, 0x5980, 0x5e70, 0x6460, 0x6a51, + 0x598f, 0x5f7f, 0x646f, 0x6a60, 0x599e, 0x5f8e, 0x657e, 0x6a6f, + 0x5aad, 0x5f9d, 0x658e, 0x6b7e, 0x5abc, 0x60ac, 0x659d, 0x6b8d, + 0x695e, 0x6f4e, 0x743e, 0x7a2f, 0x696d, 0x6f5d, 0x744d, 0x7a3e, + 0x6a7c, 0x6f6c, 0x755d, 0x7a4d, 0x6a8b, 0x707b, 0x756c, 0x7b5c, + 0x6a9a, 0x708a, 0x757b, 0x7b6b, 0x6ba9, 0x709a, 0x768a, 0x7b7a, + 0x6bb8, 0x70a9, 0x7699, 0x7c89, 0x6bc7, 0x71b8, 0x76a8, 0x7c98, + 0x7a69, 0x8059, 0x854a, 0x8b3a, 0x7a78, 0x8068, 0x8659, 0x8b49, + 0x7b87, 0x8078, 0x8668, 0x8c58, 0x7b96, 0x8187, 0x8677, 0x8c67, + 0x7ba5, 0x8196, 0x8786, 0x8c77, 0x7cb5, 0x81a5, 0x8795, 0x8c86, + 0x7cc4, 0x82b4, 0x87a4, 0x8d95, 0x7cd3, 0x82c3, 0x87b3, 0x8da4, + 0x8b74, 0x9165, 0x9655, 0x9c45, 0x8b84, 0x9174, 0x9764, 0x9c55, + 0x8c93, 0x9183, 0x9773, 0x9d64, 0x8ca2, 0x9292, 0x9782, 0x9d73, + 0x8cb1, 0x92a1, 0x9892, 0x9d82, 0x8dc0, 0x92b0, 0x98a1, 0x9e91, + 0x8dcf, 0x93bf, 0x98b0, 0x9ea0, 0x8dde, 0x93cf, 0x99bf, 0x9eaf, + 0x9c80, 0xa270, 0xa761, 0xad51, 0x9d8f, 0xa27f, 0xa870, 0xad60, + 0x9d9e, 0xa28e, 0xa87f, 0xae6f, 0x9dad, 0xa39e, 0xa88e, 0xae7e, + 0x9ebc, 0xa3ad, 0xa99d, 0xae8d, 0x9ecb, 0xa3bc, 0xa9ac, 0xaf9c, + 0x9eda, 0xa4cb, 0xa9bb, 0xafac, 0x9eea, 0xa4da, 0xaaca, 0xafbb, + 0xad8b, 0xb37c, 0xb96c, 0xbe5c, 0xae9a, 0xb38b, 0xb97b, 0xbe6b, + 0xaea9, 0xb49a, 0xb98a, 0xbf7b, 0xaeb9, 0xb4a9, 0xba99, 0xbf8a, + 0xafc8, 0xb4b8, 0xbaa8, 0xbf99, 0xafd7, 0xb5c7, 0xbab8, 0xc0a8, + 0xafe6, 0xb5d6, 0xbac7, 0xc0b7, 0xb0f5, 0xb5e5, 0xbbd6, 0xc0c6, + 0xbe97, 0xc487, 0xca77, 0xcf68, 0xbfa6, 0xc496, 0xca86, 0xd077, + 0xbfb5, 0xc5a5, 0xca96, 0xd086, 0xbfc4, 0xc5b4, 0xcba5, 0xd095, + 0xc0d3, 0xc5c3, 0xcbb4, 0xd1a4, 0xc0e2, 0xc6d3, 0xcbc3, 0xd1b3, + 0xc0f1, 0xc6e2, 0xccd2, 0xd1c2, 0xc1ff, 0xc6f1, 0xcce1, 0xd2d1}, + {0x4747, 0x4a61, 0x4d7a, 0x5094, 0x5e50, 0x616a, 0x6483, 0x679d, + 0x7559, 0x7873, 0x7b8c, 0x7fa6, 0x8d62, 0x907c, 0x9396, 0x96af, + 0xa46b, 0xa785, 0xaa9f, 0xadb8, 0xbb74, 0xbe8e, 0xc1a8, 0xc4c2, + 0xd27d, 0xd597, 0xd8b1, 0xdccb, 0xea86, 0xeda0, 0xf0ba, 0xf3d4, + 0x4246, 0x4560, 0x487a, 0x4b94, 0x5950, 0x5c69, 0x5f83, 0x639d, + 0x7159, 0x7472, 0x778c, 0x7aa6, 0x8862, 0x8b7b, 0x8e95, 0x91af, + 0x9f6b, 0xa285, 0xa59e, 0xa8b8, 0xb674, 0xb98e, 0xbca7, 0xc0c1, + 0xce7d, 0xd197, 0xd4b1, 0xd7ca, 0xe586, 0xe8a0, 0xebba, 0xeed3, + 0x3d46, 0x4060, 0x437a, 0x4693, 0x544f, 0x5869, 0x5b83, 0x5e9d, + 0x6c58, 0x6f72, 0x728c, 0x75a6, 0x8361, 0x867b, 0x8995, 0x8caf, + 0x9a6a, 0x9d84, 0xa09e, 0xa4b8, 0xb274, 0xb58d, 0xb8a7, 0xbbc1, + 0xc97d, 0xcc96, 0xcfb0, 0xd2ca, 0xe086, 0xe3a0, 0xe6b9, 0xe9d3, + 0x3846, 0x3c60, 0x3f79, 0x4293, 0x504f, 0x5369, 0x5682, 0x599c, + 0x6758, 0x6a72, 0x6d8c, 0x70a5, 0x7e61, 0x817b, 0x8495, 0x88ae, + 0x966a, 0x9984, 0x9c9e, 0x9fb7, 0xad73, 0xb08d, 0xb3a7, 0xb6c1, + 0xc47c, 0xc796, 0xcab0, 0xcdca, 0xdb85, 0xde9f, 0xe1b9, 0xe5d3, + 0x3445, 0x375f, 0x3a79, 0x3d93, 0x4b4f, 0x4e68, 0x5182, 0x549c, + 0x6258, 0x6571, 0x688b, 0x6ba5, 0x7961, 0x7d7b, 0x8094, 0x83ae, + 0x916a, 0x9484, 0x979d, 0x9ab7, 0xa873, 0xab8d, 0xaea6, 0xb1c0, + 0xbf7c, 0xc296, 0xc5b0, 0xc9c9, 0xd785, 0xda9f, 0xddb9, 0xe0d2, + 0x2f45, 0x325f, 0x3579, 0x3893, 0x464e, 0x4968, 0x4c82, 0x4f9c, + 0x5d57, 0x6171, 0x648b, 0x67a5, 0x7560, 0x787a, 0x7b94, 0x7eae, + 0x8c6a, 0x8f83, 0x929d, 0x95b7, 0xa373, 0xa68c, 0xa9a6, 0xadc0, + 0xbb7c, 0xbe95, 0xc1af, 0xc4c9, 0xd285, 0xd59f, 0xd8b8, 0xdbd2, + 0x2a45, 0x2d5f, 0x3078, 0x3392, 0x414e, 0x4568, 0x4882, 0x4b9b, + 0x5957, 0x5c71, 0x5f8b, 0x62a4, 0x7060, 0x737a, 0x7694, 0x79ad, + 0x8769, 0x8a83, 0x8d9d, 0x90b7, 0x9e72, 0xa28c, 0xa5a6, 0xa8c0, + 0xb67b, 0xb995, 0xbcaf, 0xbfc9, 0xcd84, 0xd09e, 0xd3b8, 0xd6d2, + 0x2545, 0x295e, 0x2c78, 0x2f92, 0x3d4e, 0x4067, 0x4381, 0x469b, + 0x5457, 0x5771, 0x5a8a, 0x5da4, 0x6b60, 0x6e7a, 0x7193, 0x74ad, + 0x8269, 0x8683, 0x899c, 0x8cb6, 0x9a72, 0x9d8c, 0xa0a6, 0xa3bf, + 0xb17b, 0xb495, 0xb7af, 0xbac8, 0xc884, 0xcb9e, 0xceb8, 0xd1d2}, + {0x4747, 0x4f37, 0x5828, 0x6018, 0x4754, 0x4f45, 0x5835, 0x6026, + 0x4762, 0x4f52, 0x5843, 0x6033, 0x476f, 0x4f60, 0x5850, 0x6041, + 0x477d, 0x4f6d, 0x585e, 0x604e, 0x478a, 0x4f7b, 0x586b, 0x605c, + 0x4798, 0x4f88, 0x5879, 0x6069, 0x47a5, 0x4f96, 0x5886, 0x6077, + 0x5754, 0x5f44, 0x6835, 0x7125, 0x5761, 0x5f52, 0x6842, 0x7133, + 0x576f, 0x5f5f, 0x6850, 0x7140, 0x577c, 0x5f6d, 0x685d, 0x714e, + 0x578a, 0x5f7a, 0x686b, 0x715b, 0x5797, 0x5f88, 0x6878, 0x7169, + 0x57a5, 0x5f95, 0x6886, 0x7176, 0x57b2, 0x5fa3, 0x6893, 0x7184, + 0x6761, 0x7051, 0x7842, 0x8132, 0x676e, 0x705f, 0x784f, 0x8140, + 0x677c, 0x706c, 0x785d, 0x814d, 0x6789, 0x707a, 0x786a, 0x815b, + 0x6797, 0x7087, 0x7878, 0x8168, 0x67a4, 0x7095, 0x7885, 0x8176, + 0x67b2, 0x70a2, 0x7893, 0x8183, 0x67bf, 0x70b0, 0x78a0, 0x8191, + 0x776e, 0x805e, 0x884f, 0x913f, 0x777b, 0x806c, 0x885c, 0x914d, + 0x7789, 0x8079, 0x886a, 0x915a, 0x7796, 0x8087, 0x8877, 0x9168, + 0x77a4, 0x8094, 0x8885, 0x9175, 0x77b1, 0x80a2, 0x8892, 0x9183, + 0x77bf, 0x80af, 0x88a0, 0x9190, 0x77cc, 0x80bd, 0x88ad, 0x919e, + 0x877b, 0x906b, 0x985c, 0xa14c, 0x8788, 0x9079, 0x9869, 0xa15a, + 0x8796, 0x9086, 0x9877, 0xa167, 0x87a3, 0x9094, 0x9884, 0xa175, + 0x87b1, 0x90a1, 0x9892, 0xa182, 0x87be, 0x90af, 0x989f, 0xa190, + 0x87cb, 0x90bc, 0x98ad, 0xa19d, 0x87d9, 0x90ca, 0x98ba, 0xa1ab, + 0x9888, 0xa078, 0xa969, 0xb159, 0x9895, 0xa086, 0xa976, 0xb167, + 0x98a3, 0xa093, 0xa984, 0xb174, 0x98b0, 0xa0a1, 0xa991, 0xb182, + 0x98be, 0xa0ae, 0xa99f, 0xb18f, 0x98cb, 0xa0bc, 0xa9ac, 0xb19d, + 0x98d8, 0xa0c9, 0xa9ba, 0xb1aa, 0x98e6, 0xa0d6, 0xa9c7, 0xb1b8, + 0xa895, 0xb085, 0xb976, 0xc166, 0xa8a2, 0xb093, 0xb983, 0xc174, + 0xa8b0, 0xb0a0, 0xb991, 0xc181, 0xa8bd, 0xb0ae, 0xb99e, 0xc18f, + 0xa8ca, 0xb0bb, 0xb9ac, 0xc19c, 0xa8d8, 0xb0c8, 0xb9b9, 0xc1aa, + 0xa8e5, 0xb0d6, 0xb9c7, 0xc1b7, 0xa8f3, 0xb0e3, 0xb9d4, 0xc1c5, + 0xb8a2, 0xc092, 0xc983, 0xd173, 0xb8af, 0xc0a0, 0xc990, 0xd181, + 0xb8bd, 0xc0ad, 0xc99e, 0xd18e, 0xb8ca, 0xc0bb, 0xc9ab, 0xd19c, + 0xb8d7, 0xc0c8, 0xc9b9, 0xd1a9, 0xb8e5, 0xc0d5, 0xc9c6, 0xd1b7, + 0xb8f2, 0xc0e3, 0xc9d3, 0xd1c4, 0xb8ff, 0xc0f0, 0xc9e1, 0xd2d1}, + {0x4747, 0x4760, 0x477a, 0x4793, 0x5e51, 0x5e6b, 0x5f84, 0x5f9e, + 0x765c, 0x7676, 0x768f, 0x76a8, 0x8d67, 0x8d80, 0x8d9a, 0x8eb3, + 0xa572, 0xa58b, 0xa5a5, 0xa5be, 0xbc7c, 0xbc96, 0xbcaf, 0xbdc9, + 0xd387, 0xd4a1, 0xd4ba, 0xd4d3, 0xeb92, 0xebab, 0xebc5, 0xebde, + 0x4345, 0x435e, 0x4378, 0x4491, 0x5a50, 0x5b69, 0x5b82, 0x5b9c, + 0x725a, 0x7274, 0x728d, 0x72a7, 0x8965, 0x8a7f, 0x8a98, 0x8ab1, + 0xa170, 0xa189, 0xa1a3, 0xa1bc, 0xb87b, 0xb894, 0xb9ad, 0xb9c7, + 0xd085, 0xd09f, 0xd0b8, 0xd0d2, 0xe790, 0xe7aa, 0xe8c3, 0xe8dc, + 0x3f43, 0x405d, 0x4076, 0x408f, 0x574e, 0x5767, 0x5781, 0x579a, + 0x6e59, 0x6e72, 0x6f8b, 0x6fa5, 0x8663, 0x867d, 0x8696, 0x86b0, + 0x9d6e, 0x9d88, 0x9da1, 0x9eba, 0xb579, 0xb592, 0xb5ac, 0xb5c5, + 0xcc84, 0xcc9d, 0xccb6, 0xcdd0, 0xe48e, 0xe4a8, 0xe4c1, 0xe4db, + 0x3c41, 0x3c5b, 0x3c74, 0x3c8d, 0x534c, 0x5365, 0x537f, 0x5498, + 0x6b57, 0x6b70, 0x6b8a, 0x6ba3, 0x8262, 0x827b, 0x8294, 0x83ae, + 0x996c, 0x9a86, 0x9a9f, 0x9ab8, 0xb177, 0xb190, 0xb1aa, 0xb1c3, + 0xc882, 0xc99b, 0xc9b5, 0xc9ce, 0xe08d, 0xe0a6, 0xe0bf, 0xe0d9, + 0x3840, 0x3859, 0x3872, 0x388c, 0x4f4a, 0x5064, 0x507d, 0x5096, + 0x6755, 0x676e, 0x6788, 0x67a1, 0x7e60, 0x7e79, 0x7f93, 0x7fac, + 0x966b, 0x9684, 0x969d, 0x96b7, 0xad75, 0xad8f, 0xaea8, 0xaec1, + 0xc580, 0xc599, 0xc5b3, 0xc5cc, 0xdc8b, 0xdca4, 0xdcbe, 0xddd7, + 0x343e, 0x3457, 0x3570, 0x358a, 0x4c48, 0x4c62, 0x4c7b, 0x4c95, + 0x6353, 0x636d, 0x6386, 0x649f, 0x7b5e, 0x7b77, 0x7b91, 0x7baa, + 0x9269, 0x9282, 0x929b, 0x93b5, 0xa973, 0xaa8d, 0xaaa6, 0xaac0, + 0xc17e, 0xc198, 0xc1b1, 0xc1ca, 0xd889, 0xd9a2, 0xd9bc, 0xd9d5, + 0x313c, 0x3155, 0x316f, 0x3188, 0x4847, 0x4860, 0x4879, 0x4893, + 0x5f51, 0x606b, 0x6084, 0x609e, 0x775c, 0x7776, 0x778f, 0x77a8, + 0x8e67, 0x8f80, 0x8f9a, 0x8fb3, 0xa672, 0xa68b, 0xa6a4, 0xa6be, + 0xbd7c, 0xbd96, 0xbeaf, 0xbec9, 0xd587, 0xd5a1, 0xd5ba, 0xd5d3, + 0x2d3a, 0x2d53, 0x2d6d, 0x2d86, 0x4445, 0x445e, 0x4578, 0x4591, + 0x5c50, 0x5c69, 0x5c82, 0x5c9c, 0x735a, 0x7374, 0x748d, 0x74a7, + 0x8b65, 0x8b7e, 0x8b98, 0x8bb1, 0xa270, 0xa289, 0xa2a3, 0xa3bc, + 0xba7b, 0xba94, 0xbaad, 0xbac7, 0xd185, 0xd19f, 0xd1b8, 0xd1d2}, + {0x4747, 0x5238, 0x5e29, 0x691a, 0x4753, 0x5244, 0x5e35, 0x6926, + 0x475e, 0x524f, 0x5d41, 0x6932, 0x476a, 0x525b, 0x5d4c, 0x693e, + 0x4676, 0x5267, 0x5d58, 0x6949, 0x4682, 0x5273, 0x5d64, 0x6955, + 0x468e, 0x527f, 0x5d70, 0x6961, 0x4699, 0x528b, 0x5d7c, 0x696d, + 0x5655, 0x6146, 0x6d37, 0x7829, 0x5661, 0x6152, 0x6d43, 0x7834, + 0x566d, 0x615e, 0x6c4f, 0x7840, 0x5679, 0x616a, 0x6c5b, 0x784c, + 0x5584, 0x6175, 0x6c67, 0x7858, 0x5590, 0x6181, 0x6c72, 0x7864, + 0x559c, 0x618d, 0x6c7e, 0x786f, 0x55a8, 0x6199, 0x6c8a, 0x787b, + 0x6564, 0x7055, 0x7c46, 0x8737, 0x656f, 0x7060, 0x7c52, 0x8743, + 0x657b, 0x706c, 0x7b5d, 0x874f, 0x6587, 0x7078, 0x7b69, 0x875a, + 0x6493, 0x7084, 0x7b75, 0x8766, 0x649f, 0x7090, 0x7b81, 0x8772, + 0x64aa, 0x709b, 0x7b8d, 0x877e, 0x64b6, 0x70a7, 0x7b98, 0x878a, + 0x7472, 0x7f63, 0x8b54, 0x9645, 0x747e, 0x7f6f, 0x8b60, 0x9651, + 0x748a, 0x7f7b, 0x8a6c, 0x965d, 0x7495, 0x7f86, 0x8a78, 0x9669, + 0x73a1, 0x7f92, 0x8a83, 0x9675, 0x73ad, 0x7f9e, 0x8a8f, 0x9680, + 0x73b9, 0x7faa, 0x8a9b, 0x968c, 0x73c5, 0x7fb6, 0x8aa7, 0x9698, + 0x8380, 0x8e71, 0x9a63, 0xa554, 0x838c, 0x8e7d, 0x9a6e, 0xa560, + 0x8398, 0x8e89, 0x997a, 0xa56b, 0x83a4, 0x8e95, 0x9986, 0xa577, + 0x82b0, 0x8ea1, 0x9992, 0xa583, 0x82bb, 0x8eac, 0x999e, 0xa58f, + 0x82c7, 0x8eb8, 0x99a9, 0xa59b, 0x82d3, 0x8ec4, 0x99b5, 0xa5a6, + 0x928f, 0x9d80, 0xa971, 0xb462, 0x929a, 0x9d8c, 0xa97d, 0xb46e, + 0x92a6, 0x9d97, 0xa889, 0xb47a, 0x92b2, 0x9da3, 0xa894, 0xb486, + 0x91be, 0x9daf, 0xa8a0, 0xb491, 0x91ca, 0x9dbb, 0xa8ac, 0xb49d, + 0x91d6, 0x9dc7, 0xa8b8, 0xb4a9, 0x91e1, 0x9dd2, 0xa8c4, 0xb4b5, + 0xa19d, 0xac8e, 0xb87f, 0xc370, 0xa1a9, 0xac9a, 0xb88b, 0xc37c, + 0xa1b5, 0xaca6, 0xb797, 0xc388, 0xa1c0, 0xacb2, 0xb7a3, 0xc394, + 0xa0cc, 0xacbd, 0xb7af, 0xc3a0, 0xa0d8, 0xacc9, 0xb7ba, 0xc3ac, + 0xa0e4, 0xacd5, 0xb7c6, 0xc3b7, 0xa0f0, 0xace1, 0xb7d2, 0xc3c3, + 0xb0ab, 0xbb9d, 0xc78e, 0xd27f, 0xb0b7, 0xbba8, 0xc79a, 0xd28b, + 0xb0c3, 0xbbb4, 0xc6a5, 0xd296, 0xafcf, 0xbbc0, 0xc6b1, 0xd2a2, + 0xafdb, 0xbbcc, 0xc6bd, 0xd2ae, 0xafe6, 0xbbd8, 0xc6c9, 0xd2ba, + 0xaff2, 0xbbe3, 0xc6d5, 0xd2c6, 0xaffe, 0xbbef, 0xc6e0, 0xd2d1}, + {0x4747, 0x445f, 0x4178, 0x3f91, 0x5e53, 0x5c6c, 0x5984, 0x569d, + 0x7660, 0x7378, 0x7091, 0x6ea9, 0x8d6c, 0x8a85, 0x889d, 0x85b6, + 0xa478, 0xa291, 0x9faa, 0x9cc2, 0xbc85, 0xb99d, 0xb7b6, 0xb4cf, + 0xd391, 0xd1aa, 0xcec2, 0xcbdb, 0xeb9e, 0xe8b6, 0xe5cf, 0xe3e7, + 0x4444, 0x425c, 0x3f75, 0x3c8d, 0x5c50, 0x5969, 0x5681, 0x549a, + 0x735c, 0x7075, 0x6e8e, 0x6ba6, 0x8b69, 0x8881, 0x859a, 0x83b3, + 0xa275, 0x9f8e, 0x9da6, 0x9abf, 0xb982, 0xb79a, 0xb4b3, 0xb1cb, + 0xd18e, 0xcea7, 0xcbbf, 0xc9d8, 0xe89b, 0xe6b3, 0xe3cc, 0xe0e4, + 0x4240, 0x3f59, 0x3d72, 0x3a8a, 0x594d, 0x5765, 0x547e, 0x5197, + 0x7159, 0x6e72, 0x6b8a, 0x69a3, 0x8866, 0x857e, 0x8397, 0x80b0, + 0x9f72, 0x9d8b, 0x9aa3, 0x98bc, 0xb77f, 0xb497, 0xb2b0, 0xafc8, + 0xce8b, 0xcca4, 0xc9bc, 0xc6d5, 0xe697, 0xe3b0, 0xe0c9, 0xdee1, + 0x3f3d, 0x3d56, 0x3a6e, 0x3787, 0x574a, 0x5462, 0x527b, 0x4f94, + 0x6e56, 0x6c6f, 0x6987, 0x66a0, 0x8663, 0x837b, 0x8094, 0x7eac, + 0x9d6f, 0x9a88, 0x98a0, 0x95b9, 0xb47b, 0xb294, 0xafad, 0xacc5, + 0xcc88, 0xc9a0, 0xc7b9, 0xc4d2, 0xe394, 0xe1ad, 0xdec5, 0xdbde, + 0x3d3a, 0x3a53, 0x386b, 0x3584, 0x5447, 0x525f, 0x4f78, 0x4c90, + 0x6c53, 0x696c, 0x6684, 0x649d, 0x835f, 0x8178, 0x7e91, 0x7ba9, + 0x9b6c, 0x9884, 0x959d, 0x93b6, 0xb278, 0xaf91, 0xada9, 0xaac2, + 0xc985, 0xc79d, 0xc4b6, 0xc1ce, 0xe191, 0xdeaa, 0xdcc2, 0xd9db, + 0x3a37, 0x3850, 0x3568, 0x3381, 0x5243, 0x4f5c, 0x4d75, 0x4a8d, + 0x6950, 0x6768, 0x6481, 0x619a, 0x815c, 0x7e75, 0x7b8d, 0x79a6, + 0x9869, 0x9581, 0x939a, 0x90b3, 0xb075, 0xad8e, 0xaaa6, 0xa8bf, + 0xc782, 0xc49a, 0xc2b3, 0xbfcb, 0xde8e, 0xdca7, 0xd9bf, 0xd6d8, + 0x3834, 0x354c, 0x3365, 0x307e, 0x4f40, 0x4d59, 0x4a71, 0x488a, + 0x674d, 0x6465, 0x627e, 0x5f97, 0x7e59, 0x7c72, 0x798a, 0x76a3, + 0x9666, 0x937e, 0x9097, 0x8eaf, 0xad72, 0xaa8b, 0xa8a3, 0xa5bc, + 0xc47e, 0xc297, 0xbfb0, 0xbdc8, 0xdc8b, 0xd9a3, 0xd7bc, 0xd4d5, + 0x3631, 0x3349, 0x3062, 0x2e7b, 0x4d3d, 0x4a56, 0x486e, 0x4587, + 0x644a, 0x6262, 0x5f7b, 0x5c93, 0x7c56, 0x796f, 0x7787, 0x74a0, + 0x9362, 0x917b, 0x8e94, 0x8bac, 0xab6f, 0xa887, 0xa5a0, 0xa3b9, + 0xc27b, 0xbf94, 0xbdac, 0xbac5, 0xd988, 0xd7a0, 0xd4b9, 0xd1d1}, + {0x4747, 0x5539, 0x632b, 0x711d, 0x4751, 0x5543, 0x6335, 0x7127, + 0x475b, 0x554d, 0x633f, 0x7131, 0x4765, 0x5557, 0x6349, 0x723c, + 0x476f, 0x5561, 0x6354, 0x7246, 0x4779, 0x556c, 0x645e, 0x7250, + 0x4784, 0x5576, 0x6468, 0x725a, 0x478e, 0x5680, 0x6472, 0x7264, + 0x5456, 0x6349, 0x713b, 0x7f2d, 0x5461, 0x6353, 0x7145, 0x7f37, + 0x556b, 0x635d, 0x714f, 0x7f41, 0x5575, 0x6367, 0x7159, 0x7f4b, + 0x557f, 0x6371, 0x7163, 0x7f55, 0x5589, 0x637b, 0x716d, 0x7f5f, + 0x5593, 0x6385, 0x7177, 0x7f6a, 0x559d, 0x638f, 0x7182, 0x8074, + 0x6266, 0x7058, 0x7e4a, 0x8d3c, 0x6270, 0x7062, 0x7e54, 0x8d47, + 0x627a, 0x706c, 0x7f5f, 0x8d51, 0x6284, 0x7177, 0x7f69, 0x8d5b, + 0x628f, 0x7181, 0x7f73, 0x8d65, 0x6399, 0x718b, 0x7f7d, 0x8d6f, + 0x63a3, 0x7195, 0x7f87, 0x8d79, 0x63ad, 0x719f, 0x7f91, 0x8d83, + 0x7076, 0x7e68, 0x8c5a, 0x9a4c, 0x7080, 0x7e72, 0x8c64, 0x9a56, + 0x708a, 0x7e7c, 0x8c6e, 0x9a60, 0x7094, 0x7e86, 0x8c78, 0x9b6a, + 0x709e, 0x7e90, 0x8c82, 0x9b75, 0x70a8, 0x7e9a, 0x8d8d, 0x9b7f, + 0x70b2, 0x7ea5, 0x8d97, 0x9b89, 0x70bd, 0x7faf, 0x8da1, 0x9b93, + 0x7d85, 0x8c77, 0x9a6a, 0xa85c, 0x7d8f, 0x8c82, 0x9a74, 0xa866, + 0x7e9a, 0x8c8c, 0x9a7e, 0xa870, 0x7ea4, 0x8c96, 0x9a88, 0xa87a, + 0x7eae, 0x8ca0, 0x9a92, 0xa884, 0x7eb8, 0x8caa, 0x9a9c, 0xa88e, + 0x7ec2, 0x8cb4, 0x9aa6, 0xa898, 0x7ecc, 0x8cbe, 0x9ab0, 0xa9a3, + 0x8b95, 0x9987, 0xa779, 0xb66b, 0x8b9f, 0x9991, 0xa783, 0xb675, + 0x8ba9, 0x999b, 0xa88d, 0xb680, 0x8bb3, 0x99a5, 0xa898, 0xb68a, + 0x8bbd, 0x9ab0, 0xa8a2, 0xb694, 0x8bc8, 0x9aba, 0xa8ac, 0xb69e, + 0x8cd2, 0x9ac4, 0xa8b6, 0xb6a8, 0x8cdc, 0x9ace, 0xa8c0, 0xb6b2, + 0x99a5, 0xa797, 0xb589, 0xc37b, 0x99af, 0xa7a1, 0xb593, 0xc385, + 0x99b9, 0xa7ab, 0xb59d, 0xc38f, 0x99c3, 0xa7b5, 0xb5a7, 0xc399, + 0x99cd, 0xa7bf, 0xb5b1, 0xc4a3, 0x99d7, 0xa7c9, 0xb5bb, 0xc4ae, + 0x99e1, 0xa7d3, 0xb6c6, 0xc4b8, 0x99eb, 0xa7de, 0xb6d0, 0xc4c2, + 0xa6b4, 0xb5a6, 0xc398, 0xd18b, 0xa6be, 0xb5b0, 0xc3a3, 0xd195, + 0xa7c8, 0xb5bb, 0xc3ad, 0xd19f, 0xa7d3, 0xb5c5, 0xc3b7, 0xd1a9, + 0xa7dd, 0xb5cf, 0xc3c1, 0xd1b3, 0xa7e7, 0xb5d9, 0xc3cb, 0xd1bd, + 0xa7f1, 0xb5e3, 0xc3d5, 0xd1c7, 0xa7fb, 0xb5ed, 0xc3df, 0xd2d2}, + {0x4747, 0x415e, 0x3c76, 0x378d, 0x5e55, 0x596c, 0x5384, 0x4e9b, + 0x7563, 0x707a, 0x6a92, 0x65a9, 0x8c71, 0x8788, 0x82a0, 0x7cb7, + 0xa37f, 0x9e96, 0x99ae, 0x93c5, 0xba8d, 0xb5a5, 0xb0bc, 0xaad3, + 0xd29b, 0xccb3, 0xc7ca, 0xc2e1, 0xe9a9, 0xe3c1, 0xded8, 0xd9f0, + 0x4642, 0x405a, 0x3b71, 0x3689, 0x5d51, 0x5868, 0x527f, 0x4d97, + 0x745f, 0x6f76, 0x698d, 0x64a5, 0x8b6d, 0x8684, 0x809b, 0x7bb3, + 0xa27b, 0x9d92, 0x98aa, 0x92c1, 0xb989, 0xb4a0, 0xafb8, 0xa9cf, + 0xd097, 0xcbae, 0xc6c6, 0xc1dd, 0xe8a5, 0xe2bc, 0xddd4, 0xd8eb, + 0x453e, 0x3f56, 0x3a6d, 0x3584, 0x5c4c, 0x5764, 0x517b, 0x4c92, + 0x735a, 0x6e72, 0x6889, 0x63a1, 0x8a68, 0x8580, 0x7f97, 0x7aaf, + 0xa177, 0x9c8e, 0x97a5, 0x91bd, 0xb885, 0xb39c, 0xaeb3, 0xa8cb, + 0xcf93, 0xcaaa, 0xc5c1, 0xc0d9, 0xe7a1, 0xe1b8, 0xdcd0, 0xd7e7, + 0x443a, 0x3e51, 0x3969, 0x3480, 0x5b48, 0x555f, 0x5077, 0x4b8e, + 0x7256, 0x6d6d, 0x6785, 0x629c, 0x8964, 0x847c, 0x7e93, 0x79aa, + 0xa072, 0x9b8a, 0x96a1, 0x90b8, 0xb780, 0xb298, 0xadaf, 0xa7c6, + 0xce8e, 0xc9a6, 0xc4bd, 0xbed5, 0xe69d, 0xe0b4, 0xdbcb, 0xd6e3, + 0x4336, 0x3d4d, 0x3864, 0x337c, 0x5a44, 0x545b, 0x4f72, 0x4a8a, + 0x7152, 0x6c69, 0x6681, 0x6198, 0x8860, 0x8377, 0x7d8f, 0x78a6, + 0x9f6e, 0x9a85, 0x959d, 0x8fb4, 0xb67c, 0xb193, 0xacab, 0xa6c2, + 0xcd8a, 0xc8a2, 0xc3b9, 0xbdd0, 0xe598, 0xdfb0, 0xdac7, 0xd5de, + 0x4231, 0x3c49, 0x3760, 0x3277, 0x593f, 0x5357, 0x4e6e, 0x4986, + 0x704d, 0x6b65, 0x657c, 0x6094, 0x875c, 0x8273, 0x7c8a, 0x77a2, + 0x9e6a, 0x9981, 0x9398, 0x8eb0, 0xb578, 0xb08f, 0xaba7, 0xa5be, + 0xcc86, 0xc79d, 0xc2b5, 0xbccc, 0xe394, 0xdeab, 0xd9c3, 0xd4da, + 0x412d, 0x3b44, 0x365c, 0x3173, 0x583b, 0x5252, 0x4d6a, 0x4881, + 0x6f49, 0x6a61, 0x6478, 0x5f8f, 0x8657, 0x816f, 0x7b86, 0x769d, + 0x9d65, 0x987d, 0x9294, 0x8dac, 0xb473, 0xaf8b, 0xaaa2, 0xa4ba, + 0xcb82, 0xc699, 0xc1b0, 0xbbc8, 0xe290, 0xdda7, 0xd8be, 0xd3d6, + 0x4029, 0x3a40, 0x3557, 0x306f, 0x5737, 0x514e, 0x4c66, 0x477d, + 0x6e45, 0x685c, 0x6374, 0x5e8b, 0x8553, 0x806a, 0x7a82, 0x7599, + 0x9c61, 0x9778, 0x9190, 0x8ca7, 0xb36f, 0xae87, 0xa99e, 0xa3b5, + 0xca7d, 0xc595, 0xc0ac, 0xbac3, 0xe18b, 0xdca3, 0xd7ba, 0xd1d1}, + {0x4747, 0x573a, 0x682e, 0x7921, 0x474f, 0x5843, 0x6936, 0x792a, + 0x4858, 0x584b, 0x693f, 0x7a32, 0x4860, 0x5954, 0x6a47, 0x7a3b, + 0x4969, 0x595c, 0x6a50, 0x7b43, 0x4971, 0x5a65, 0x6b58, 0x7b4c, + 0x4a7a, 0x5a6d, 0x6b61, 0x7c54, 0x4a82, 0x5b76, 0x6c69, 0x7c5d, + 0x5357, 0x644b, 0x743e, 0x8532, 0x5360, 0x6453, 0x7547, 0x863b, + 0x5468, 0x655c, 0x754f, 0x8643, 0x5471, 0x6564, 0x7658, 0x874b, + 0x5579, 0x666d, 0x7660, 0x8754, 0x5582, 0x6675, 0x7769, 0x885c, + 0x568a, 0x677e, 0x7771, 0x8865, 0x5693, 0x6786, 0x787a, 0x896d, + 0x5f68, 0x705c, 0x814f, 0x9143, 0x6071, 0x7064, 0x8158, 0x924b, + 0x6079, 0x716d, 0x8260, 0x9254, 0x6182, 0x7175, 0x8269, 0x935c, + 0x618a, 0x727e, 0x8371, 0x9365, 0x6293, 0x7286, 0x837a, 0x946d, + 0x629b, 0x738f, 0x8382, 0x9476, 0x63a3, 0x7397, 0x848b, 0x957e, + 0x6b79, 0x7c6c, 0x8d60, 0x9d53, 0x6c81, 0x7c75, 0x8d68, 0x9e5c, + 0x6c8a, 0x7d7d, 0x8e71, 0x9e64, 0x6d92, 0x7d86, 0x8e79, 0x9f6d, + 0x6d9b, 0x7e8e, 0x8f82, 0x9f75, 0x6ea3, 0x7e97, 0x8f8a, 0xa07e, + 0x6eac, 0x7f9f, 0x9093, 0xa086, 0x6fb4, 0x7fa8, 0x909b, 0xa18f, + 0x7789, 0x887d, 0x9971, 0xaa64, 0x7892, 0x8985, 0x9979, 0xaa6d, + 0x789a, 0x898e, 0x9a82, 0xab75, 0x79a3, 0x8a96, 0x9a8a, 0xab7e, + 0x79ab, 0x8a9f, 0x9b92, 0xac86, 0x7ab4, 0x8ba7, 0x9b9b, 0xac8e, + 0x7abc, 0x8bb0, 0x9ca3, 0xad97, 0x7bc5, 0x8cb8, 0x9cac, 0xad9f, + 0x849a, 0x948e, 0xa581, 0xb675, 0x84a3, 0x9596, 0xa58a, 0xb67d, + 0x85ab, 0x959f, 0xa692, 0xb786, 0x85b4, 0x96a7, 0xa69b, 0xb78e, + 0x86bc, 0x96b0, 0xa7a3, 0xb897, 0x86c5, 0x97b8, 0xa7ac, 0xb89f, + 0x86cd, 0x97c1, 0xa8b4, 0xb9a8, 0x87d6, 0x98c9, 0xa8bd, 0xb9b0, + 0x90ab, 0xa09e, 0xb192, 0xc285, 0x90b3, 0xa1a7, 0xb29a, 0xc28e, + 0x91bc, 0xa1af, 0xb2a3, 0xc396, 0x91c4, 0xa2b8, 0xb3ab, 0xc39f, + 0x92cd, 0xa2c0, 0xb3b4, 0xc4a7, 0x92d5, 0xa3c9, 0xb4bc, 0xc4b0, + 0x93de, 0xa3d1, 0xb4c5, 0xc5b8, 0x93e6, 0xa4da, 0xb5cd, 0xc5c1, + 0x9cbc, 0xadaf, 0xbda3, 0xce96, 0x9cc4, 0xadb8, 0xbeab, 0xcf9f, + 0x9dcc, 0xaec0, 0xbeb4, 0xcfa7, 0x9dd5, 0xaec9, 0xbfbc, 0xd0b0, + 0x9edd, 0xafd1, 0xbfc5, 0xd0b8, 0x9ee6, 0xafd9, 0xc0cd, 0xd1c1, + 0x9fee, 0xb0e2, 0xc0d5, 0xd1c9, 0x9ff7, 0xb0ea, 0xc1de, 0xd2d2}, + {0x4747, 0x3f5d, 0x3772, 0x2f88, 0x5d56, 0x566c, 0x4e82, 0x4698, + 0x7466, 0x6c7c, 0x6492, 0x5da8, 0x8b76, 0x838c, 0x7ba1, 0x73b7, + 0xa186, 0x999b, 0x92b1, 0x8ac7, 0xb895, 0xb0ab, 0xa8c1, 0xa1d7, + 0xcea5, 0xc7bb, 0xbfd1, 0xb7e6, 0xe5b5, 0xddcb, 0xd6e0, 0xcef6, + 0x4742, 0x4057, 0x386d, 0x3083, 0x5e51, 0x5667, 0x4e7d, 0x4793, + 0x7561, 0x6d77, 0x658d, 0x5da2, 0x8b71, 0x8386, 0x7c9c, 0x74b2, + 0xa280, 0x9a96, 0x92ac, 0x8ac2, 0xb890, 0xb1a6, 0xa9bc, 0xa1d1, + 0xcfa0, 0xc7b6, 0xbfcb, 0xb8e1, 0xe6af, 0xdec5, 0xd6db, 0xcef1, + 0x483c, 0x4052, 0x3868, 0x317e, 0x5e4c, 0x5762, 0x4f78, 0x478d, + 0x755c, 0x6d72, 0x6687, 0x5e9d, 0x8c6b, 0x8481, 0x7c97, 0x74ad, + 0xa27b, 0x9b91, 0x93a7, 0x8bbd, 0xb98b, 0xb1a1, 0xa9b6, 0xa2cc, + 0xcf9b, 0xc8b0, 0xc0c6, 0xb8dc, 0xe6aa, 0xdec0, 0xd7d6, 0xcfec, + 0x4837, 0x414d, 0x3963, 0x3178, 0x5f47, 0x575d, 0x4f72, 0x4888, + 0x7656, 0x6e6c, 0x6682, 0x5e98, 0x8c66, 0x847c, 0x7d92, 0x75a8, + 0xa376, 0x9b8c, 0x93a2, 0x8cb7, 0xb986, 0xb29b, 0xaab1, 0xa2c7, + 0xd095, 0xc8ab, 0xc1c1, 0xb9d7, 0xe7a5, 0xdfbb, 0xd7d1, 0xcfe6, + 0x4932, 0x4148, 0x395d, 0x3273, 0x5f42, 0x5857, 0x506d, 0x4883, + 0x7651, 0x6e67, 0x677d, 0x5f93, 0x8d61, 0x8577, 0x7d8d, 0x75a2, + 0xa371, 0x9c86, 0x949c, 0x8cb2, 0xba80, 0xb296, 0xaaac, 0xa3c2, + 0xd190, 0xc9a6, 0xc1bc, 0xb9d1, 0xe7a0, 0xdfb6, 0xd8cb, 0xd0e1, + 0x492d, 0x4242, 0x3a58, 0x326e, 0x603c, 0x5852, 0x5168, 0x497e, + 0x774c, 0x6f62, 0x6778, 0x5f8d, 0x8d5c, 0x8572, 0x7e87, 0x769d, + 0xa46b, 0x9c81, 0x9497, 0x8dad, 0xba7b, 0xb391, 0xaba7, 0xa3bd, + 0xd18b, 0xc9a1, 0xc2b6, 0xbacc, 0xe89b, 0xe0b0, 0xd8c6, 0xd0dc, + 0x4a27, 0x423d, 0x3a53, 0x3369, 0x6137, 0x594d, 0x5163, 0x4978, + 0x7747, 0x6f5d, 0x6872, 0x6088, 0x8e56, 0x866c, 0x7e82, 0x7798, + 0xa466, 0x9d7c, 0x9592, 0x8da8, 0xbb76, 0xb38c, 0xaba2, 0xa4b7, + 0xd286, 0xca9b, 0xc2b1, 0xbac7, 0xe895, 0xe0ab, 0xd9c1, 0xd1d7, + 0x4a22, 0x4338, 0x3b4e, 0x3364, 0x6132, 0x5948, 0x525d, 0x4a73, + 0x7842, 0x7057, 0x686d, 0x6083, 0x8e51, 0x8767, 0x7f7d, 0x7793, + 0xa561, 0x9d77, 0x958d, 0x8ea2, 0xbc71, 0xb486, 0xac9c, 0xa4b2, + 0xd280, 0xca96, 0xc3ac, 0xbbc2, 0xe990, 0xe1a6, 0xd9bc, 0xd1d1}, + {0x4747, 0x5a3c, 0x6d31, 0x8027, 0x484e, 0x5b43, 0x6e38, 0x812d, + 0x4955, 0x5c4a, 0x6f3f, 0x8234, 0x4a5b, 0x5d51, 0x7046, 0x833b, + 0x4b62, 0x5e58, 0x714d, 0x8442, 0x4c69, 0x5f5f, 0x7254, 0x8649, + 0x4d70, 0x6165, 0x745b, 0x8750, 0x4f77, 0x626c, 0x7562, 0x8857, + 0x5158, 0x644e, 0x7743, 0x8a38, 0x525f, 0x6554, 0x794a, 0x8c3f, + 0x5466, 0x675b, 0x7a51, 0x8d46, 0x556d, 0x6862, 0x7b58, 0x8e4d, + 0x5674, 0x6969, 0x7c5e, 0x8f54, 0x577b, 0x6a70, 0x7d65, 0x905b, + 0x5882, 0x6b77, 0x7e6c, 0x9162, 0x5989, 0x6c7e, 0x7f73, 0x9268, + 0x5c6a, 0x6f5f, 0x8254, 0x954a, 0x5d71, 0x7066, 0x835b, 0x9651, + 0x5e78, 0x716d, 0x8462, 0x9757, 0x5f7e, 0x7274, 0x8569, 0x985e, + 0x6085, 0x737b, 0x8670, 0x9965, 0x618c, 0x7482, 0x8877, 0x9b6c, + 0x6393, 0x7688, 0x897e, 0x9c73, 0x649a, 0x778f, 0x8a85, 0x9d7a, + 0x667b, 0x7971, 0x8c66, 0xa05b, 0x6782, 0x7b77, 0x8e6d, 0xa162, + 0x6989, 0x7c7e, 0x8f74, 0xa269, 0x6a90, 0x7d85, 0x907b, 0xa370, + 0x6b97, 0x7e8c, 0x9181, 0xa477, 0x6c9e, 0x7f93, 0x9288, 0xa57e, + 0x6da5, 0x809a, 0x938f, 0xa685, 0x6eac, 0x81a1, 0x9496, 0xa78b, + 0x718d, 0x8482, 0x9777, 0xaa6d, 0x7294, 0x8589, 0x987e, 0xab74, + 0x739b, 0x8690, 0x9985, 0xac7a, 0x74a2, 0x8797, 0x9a8c, 0xad81, + 0x75a8, 0x889e, 0x9b93, 0xaf88, 0x76af, 0x8aa5, 0x9d9a, 0xb08f, + 0x78b6, 0x8bab, 0x9ea1, 0xb196, 0x79bd, 0x8cb2, 0x9fa8, 0xb29d, + 0x7b9e, 0x8e94, 0xa289, 0xb57e, 0x7da5, 0x909a, 0xa390, 0xb685, + 0x7eac, 0x91a1, 0xa497, 0xb78c, 0x7fb3, 0x92a8, 0xa59e, 0xb893, + 0x80ba, 0x93af, 0xa6a4, 0xb99a, 0x81c1, 0x94b6, 0xa7ab, 0xbaa1, + 0x82c8, 0x95bd, 0xa8b2, 0xbba8, 0x83cf, 0x96c4, 0xa9b9, 0xbcae, + 0x86b0, 0x99a5, 0xac9a, 0xbf90, 0x87b7, 0x9aac, 0xada1, 0xc097, + 0x88be, 0x9bb3, 0xaea8, 0xc19d, 0x89c5, 0x9cba, 0xafaf, 0xc2a4, + 0x8acb, 0x9dc1, 0xb1b6, 0xc4ab, 0x8cd2, 0x9fc8, 0xb2bd, 0xc5b2, + 0x8dd9, 0xa0cf, 0xb3c4, 0xc6b9, 0x8ee0, 0xa1d5, 0xb4cb, 0xc7c0, + 0x90c1, 0xa4b7, 0xb7ac, 0xcaa1, 0x92c8, 0xa5be, 0xb8b3, 0xcba8, + 0x93cf, 0xa6c4, 0xb9ba, 0xccaf, 0x94d6, 0xa7cb, 0xbac1, 0xcdb6, + 0x95dd, 0xa8d2, 0xbbc8, 0xcebd, 0x96e4, 0xa9d9, 0xbcce, 0xcfc4, + 0x97eb, 0xaae0, 0xbdd5, 0xd0cb, 0x98f2, 0xabe7, 0xbedc, 0xd2d2}, + {0x4747, 0x3d5b, 0x336f, 0x2982, 0x5d58, 0x536c, 0x4980, 0x3f94, + 0x7269, 0x697d, 0x5f91, 0x55a5, 0x887a, 0x7e8e, 0x74a2, 0x6bb6, + 0x9e8c, 0x94a0, 0x8ab4, 0x80c7, 0xb49d, 0xaab1, 0xa0c5, 0x96d9, + 0xcaae, 0xc0c2, 0xb6d6, 0xacea, 0xe0bf, 0xd6d3, 0xcce7, 0xc2fb, + 0x4941, 0x3f55, 0x3569, 0x2b7c, 0x5f52, 0x5566, 0x4b7a, 0x418e, + 0x7563, 0x6b77, 0x618b, 0x579f, 0x8b75, 0x8188, 0x779c, 0x6db0, + 0xa086, 0x979a, 0x8dae, 0x83c1, 0xb697, 0xacab, 0xa2bf, 0x99d3, + 0xcca8, 0xc2bc, 0xb8d0, 0xaee4, 0xe2b9, 0xd8cd, 0xcee1, 0xc4f5, + 0x4b3b, 0x414f, 0x3763, 0x2d77, 0x614c, 0x5760, 0x4d74, 0x4388, + 0x775d, 0x6d71, 0x6385, 0x5999, 0x8d6f, 0x8382, 0x7996, 0x6faa, + 0xa380, 0x9994, 0x8fa8, 0x85bc, 0xb991, 0xafa5, 0xa5b9, 0x9bcd, + 0xcea2, 0xc4b6, 0xbbca, 0xb1de, 0xe4b4, 0xdac7, 0xd0db, 0xc6ef, + 0x4d35, 0x4349, 0x3a5d, 0x3071, 0x6346, 0x595a, 0x4f6e, 0x4582, + 0x7957, 0x6f6b, 0x657f, 0x5b93, 0x8f69, 0x857d, 0x7b90, 0x71a4, + 0xa57a, 0x9b8e, 0x91a2, 0x87b6, 0xbb8b, 0xb19f, 0xa7b3, 0x9dc7, + 0xd19c, 0xc7b0, 0xbdc4, 0xb3d8, 0xe6ae, 0xddc1, 0xd3d5, 0xc9e9, + 0x502f, 0x4643, 0x3c57, 0x326b, 0x6540, 0x5c54, 0x5268, 0x487c, + 0x7b51, 0x7165, 0x6779, 0x5e8d, 0x9163, 0x8777, 0x7d8a, 0x739e, + 0xa774, 0x9d88, 0x939c, 0x89b0, 0xbd85, 0xb399, 0xa9ad, 0x9fc1, + 0xd396, 0xc9aa, 0xbfbe, 0xb5d2, 0xe9a8, 0xdfbc, 0xd5cf, 0xcbe3, + 0x5229, 0x483d, 0x3e51, 0x3465, 0x683a, 0x5e4e, 0x5462, 0x4a76, + 0x7e4b, 0x745f, 0x6a73, 0x6087, 0x935d, 0x8971, 0x8085, 0x7698, + 0xa96e, 0x9f82, 0x9596, 0x8baa, 0xbf7f, 0xb593, 0xaba7, 0xa1bb, + 0xd590, 0xcba4, 0xc1b8, 0xb7cc, 0xeba2, 0xe1b6, 0xd7c9, 0xcddd, + 0x5423, 0x4a37, 0x404b, 0x365f, 0x6a34, 0x6048, 0x565c, 0x4c70, + 0x8046, 0x7659, 0x6c6d, 0x6281, 0x9657, 0x8c6b, 0x827f, 0x7892, + 0xab68, 0xa27c, 0x9890, 0x8ea4, 0xc179, 0xb78d, 0xada1, 0xa4b5, + 0xd78b, 0xcd9e, 0xc3b2, 0xb9c6, 0xed9c, 0xe3b0, 0xd9c4, 0xcfd7, + 0x561d, 0x4c31, 0x4245, 0x3859, 0x6c2e, 0x6242, 0x5856, 0x4e6a, + 0x8240, 0x7854, 0x6e67, 0x647b, 0x9851, 0x8e65, 0x8479, 0x7a8d, + 0xae62, 0xa476, 0x9a8a, 0x909e, 0xc473, 0xba87, 0xb09b, 0xa6af, + 0xd985, 0xd098, 0xc6ac, 0xbcc0, 0xef96, 0xe5aa, 0xdbbe, 0xd1d1}, + {0x4747, 0x5c3e, 0x7135, 0x862d, 0x494c, 0x5e44, 0x733b, 0x8832, + 0x4b52, 0x6049, 0x7540, 0x8a38, 0x4d57, 0x624e, 0x7746, 0x8c3d, + 0x4f5c, 0x6454, 0x794b, 0x8e42, 0x5162, 0x6659, 0x7b51, 0x9048, + 0x5367, 0x685f, 0x7d56, 0x924d, 0x556d, 0x6a64, 0x7f5b, 0x9453, + 0x5059, 0x6550, 0x7a48, 0x8f3f, 0x525e, 0x6756, 0x7c4d, 0x9144, + 0x5364, 0x695b, 0x7e52, 0x934a, 0x5569, 0x6b60, 0x8058, 0x954f, + 0x576f, 0x6d66, 0x825d, 0x9755, 0x5974, 0x6e6b, 0x8463, 0x995a, + 0x5b79, 0x7071, 0x8668, 0x9b5f, 0x5d7f, 0x7276, 0x886e, 0x9d65, + 0x586b, 0x6d62, 0x835a, 0x9851, 0x5a70, 0x6f68, 0x855f, 0x9a56, + 0x5c76, 0x716d, 0x8665, 0x9c5c, 0x5e7b, 0x7373, 0x886a, 0x9e61, + 0x6081, 0x7578, 0x8a6f, 0xa067, 0x6286, 0x777d, 0x8c75, 0xa16c, + 0x648b, 0x7983, 0x8e7a, 0xa372, 0x6691, 0x7b88, 0x9080, 0xa577, + 0x617d, 0x7674, 0x8b6c, 0xa063, 0x6382, 0x787a, 0x8d71, 0xa269, + 0x6588, 0x7a7f, 0x8f77, 0xa46e, 0x678d, 0x7c85, 0x917c, 0xa673, + 0x6993, 0x7e8a, 0x9381, 0xa879, 0x6b98, 0x8090, 0x9587, 0xaa7e, + 0x6d9e, 0x8295, 0x978c, 0xac84, 0x6fa3, 0x849a, 0x9992, 0xae89, + 0x6a8f, 0x7f87, 0x947e, 0xa975, 0x6c95, 0x818c, 0x9683, 0xab7b, + 0x6e9a, 0x8391, 0x9889, 0xad80, 0x709f, 0x8597, 0x9a8e, 0xaf85, + 0x72a5, 0x879c, 0x9c94, 0xb18b, 0x74aa, 0x89a2, 0x9e99, 0xb390, + 0x76b0, 0x8ba7, 0xa09e, 0xb596, 0x78b5, 0x8dac, 0xa2a4, 0xb79b, + 0x73a1, 0x8899, 0x9d90, 0xb287, 0x75a7, 0x8a9e, 0x9f95, 0xb48d, + 0x77ac, 0x8ca3, 0xa19b, 0xb692, 0x79b2, 0x8ea9, 0xa3a0, 0xb898, + 0x7bb7, 0x90ae, 0xa5a6, 0xba9d, 0x7dbc, 0x92b4, 0xa7ab, 0xbca2, + 0x7fc2, 0x94b9, 0xa9b1, 0xbea8, 0x81c7, 0x96bf, 0xabb6, 0xc0ad, + 0x7cb3, 0x91ab, 0xa6a2, 0xbb99, 0x7eb9, 0x93b0, 0xa8a8, 0xbd9f, + 0x80be, 0x95b6, 0xaaad, 0xbfa4, 0x82c4, 0x97bb, 0xacb2, 0xc1aa, + 0x84c9, 0x99c0, 0xaeb8, 0xc3af, 0x85ce, 0x9bc6, 0xb0bd, 0xc5b5, + 0x87d4, 0x9dcb, 0xb2c3, 0xc7ba, 0x89d9, 0x9ed1, 0xb4c8, 0xc9bf, + 0x84c5, 0x9abd, 0xafb4, 0xc4ac, 0x86cb, 0x9cc2, 0xb1ba, 0xc6b1, + 0x88d0, 0x9dc8, 0xb3bf, 0xc8b6, 0x8ad6, 0x9fcd, 0xb5c4, 0xcabc, + 0x8cdb, 0xa1d3, 0xb7ca, 0xccc1, 0x8ee1, 0xa3d8, 0xb8cf, 0xcec7, + 0x90e6, 0xa5dd, 0xbad5, 0xd0cc, 0x92eb, 0xa7e3, 0xbcda, 0xd2d2}, + {0x4747, 0x3b58, 0x2f6a, 0x237c, 0x5c59, 0x506b, 0x447d, 0x388e, + 0x716c, 0x657e, 0x598f, 0x4da1, 0x867f, 0x7a90, 0x6ea2, 0x62b4, + 0x9a91, 0x8fa3, 0x83b5, 0x77c6, 0xafa4, 0xa4b6, 0x98c7, 0x8cd9, + 0xc4b7, 0xb8c8, 0xadda, 0xa1ec, 0xd9c9, 0xcddb, 0xc2ed, 0xb6fe, + 0x4b40, 0x3f52, 0x3364, 0x2775, 0x6053, 0x5465, 0x4876, 0x3c88, + 0x7566, 0x6977, 0x5d89, 0x519b, 0x8978, 0x7e8a, 0x729c, 0x66ad, + 0x9e8b, 0x939d, 0x87ae, 0x7bc0, 0xb39e, 0xa8af, 0x9cc1, 0x90d3, + 0xc8b0, 0xbcc2, 0xb1d4, 0xa5e5, 0xddc3, 0xd1d5, 0xc6e6, 0xbaf8, + 0x4f3a, 0x434c, 0x375d, 0x2b6f, 0x644d, 0x585e, 0x4c70, 0x4082, + 0x795f, 0x6d71, 0x6183, 0x5594, 0x8d72, 0x8284, 0x7695, 0x6aa7, + 0xa285, 0x9796, 0x8ba8, 0x7fba, 0xb797, 0xaba9, 0xa0bb, 0x94cc, + 0xccaa, 0xc0bc, 0xb5cd, 0xa9df, 0xe1bd, 0xd5ce, 0xcae0, 0xbef2, + 0x5333, 0x4745, 0x3b57, 0x2f69, 0x6846, 0x5c58, 0x506a, 0x447b, + 0x7c59, 0x716b, 0x657c, 0x598e, 0x916b, 0x867d, 0x7a8f, 0x6ea1, + 0xa67e, 0x9b90, 0x8fa2, 0x83b3, 0xbb91, 0xafa2, 0xa4b4, 0x98c6, + 0xd0a3, 0xc4b5, 0xb9c7, 0xadd9, 0xe5b6, 0xd9c8, 0xcdd9, 0xc2eb, + 0x572d, 0x4b3f, 0x3f50, 0x3362, 0x6c40, 0x6051, 0x5463, 0x4875, + 0x8052, 0x7564, 0x6976, 0x5d87, 0x9565, 0x8a77, 0x7e88, 0x729a, + 0xaa78, 0x9e89, 0x939b, 0x87ad, 0xbf8a, 0xb39c, 0xa8ae, 0x9cbf, + 0xd49d, 0xc8af, 0xbdc0, 0xb1d2, 0xe9b0, 0xddc1, 0xd1d3, 0xc6e5, + 0x5b27, 0x4f38, 0x434a, 0x375c, 0x6f39, 0x644b, 0x585d, 0x4c6e, + 0x844c, 0x795e, 0x6d6f, 0x6181, 0x995f, 0x8e70, 0x8282, 0x7694, + 0xae71, 0xa283, 0x9795, 0x8ba6, 0xc384, 0xb796, 0xaca7, 0xa0b9, + 0xd897, 0xcca8, 0xc0ba, 0xb5cc, 0xeda9, 0xe1bb, 0xd5cd, 0xcade, + 0x5f20, 0x5332, 0x4744, 0x3b55, 0x7333, 0x6845, 0x5c56, 0x5068, + 0x8846, 0x7d57, 0x7169, 0x657b, 0x9d58, 0x916a, 0x867c, 0x7a8d, + 0xb26b, 0xa67d, 0x9b8e, 0x8fa0, 0xc77e, 0xbb8f, 0xb0a1, 0xa4b3, + 0xdc90, 0xd0a2, 0xc4b4, 0xb9c5, 0xf1a3, 0xe5b5, 0xd9c6, 0xced8, + 0x621a, 0x572c, 0x4b3d, 0x3f4f, 0x772c, 0x6c3e, 0x6050, 0x5462, + 0x8c3f, 0x8051, 0x7563, 0x6974, 0xa152, 0x9563, 0x8a75, 0x7e87, + 0xb664, 0xaa76, 0x9f88, 0x939a, 0xcb77, 0xbf89, 0xb39a, 0xa8ac, + 0xe08a, 0xd49b, 0xc8ad, 0xbdbf, 0xf59c, 0xe9ae, 0xddc0, 0xd1d1}, + {0x4747, 0x5e40, 0x743a, 0x8b34, 0x4a4b, 0x6145, 0x773e, 0x8e38, + 0x4d4f, 0x6449, 0x7a42, 0x913c, 0x5053, 0x674d, 0x7d46, 0x9440, + 0x5357, 0x6a51, 0x804a, 0x9744, 0x565b, 0x6d55, 0x834e, 0x9a48, + 0x595f, 0x7059, 0x8653, 0x9d4c, 0x5c63, 0x735d, 0x8957, 0xa050, + 0x4e59, 0x6553, 0x7b4d, 0x9246, 0x515d, 0x6857, 0x7e51, 0x954a, + 0x5461, 0x6b5b, 0x8155, 0x984e, 0x5765, 0x6e5f, 0x8459, 0x9b53, + 0x5a69, 0x7163, 0x875d, 0x9e57, 0x5d6e, 0x7467, 0x8a61, 0xa15b, + 0x6072, 0x776b, 0x8d65, 0xa45f, 0x6376, 0x7a6f, 0x9069, 0xa763, + 0x556c, 0x6c65, 0x825f, 0x9959, 0x5870, 0x6f69, 0x8563, 0x9c5d, + 0x5b74, 0x726d, 0x8867, 0x9f61, 0x5e78, 0x7572, 0x8b6b, 0xa265, + 0x617c, 0x7876, 0x8e6f, 0xa569, 0x6480, 0x7b7a, 0x9173, 0xa86d, + 0x6784, 0x7e7e, 0x9477, 0xab71, 0x6a88, 0x8182, 0x977c, 0xae75, + 0x5c7e, 0x7378, 0x8972, 0xa06b, 0x5f82, 0x767c, 0x8c76, 0xa36f, + 0x6286, 0x7980, 0x8f7a, 0xa673, 0x658a, 0x7c84, 0x937e, 0xa977, + 0x688e, 0x7f88, 0x9682, 0xac7b, 0x6b92, 0x828c, 0x9986, 0xaf80, + 0x6e97, 0x8590, 0x9c8a, 0xb284, 0x719b, 0x8894, 0x9f8e, 0xb588, + 0x6391, 0x7a8a, 0x9184, 0xa77e, 0x6695, 0x7d8e, 0x9488, 0xaa82, + 0x6999, 0x8092, 0x978c, 0xad86, 0x6c9d, 0x8396, 0x9a90, 0xb08a, + 0x6fa1, 0x869b, 0x9d94, 0xb38e, 0x72a5, 0x899f, 0xa098, 0xb692, + 0x75a9, 0x8ca3, 0xa39c, 0xb996, 0x78ad, 0x8fa7, 0xa6a0, 0xbc9a, + 0x6aa3, 0x819d, 0x9896, 0xae90, 0x6da7, 0x84a1, 0x9b9a, 0xb194, + 0x70ab, 0x87a5, 0x9e9f, 0xb498, 0x73af, 0x8aa9, 0xa1a3, 0xb79c, + 0x76b3, 0x8dad, 0xa4a7, 0xbaa0, 0x79b7, 0x90b1, 0xa7ab, 0xbda4, + 0x7cbb, 0x93b5, 0xaaaf, 0xc0a9, 0x7fbf, 0x96b9, 0xadb3, 0xc3ad, + 0x71b5, 0x88af, 0x9fa9, 0xb5a3, 0x74ba, 0x8bb3, 0xa2ad, 0xb8a7, + 0x77be, 0x8eb7, 0xa5b1, 0xbbab, 0x7ac2, 0x91bb, 0xa8b5, 0xbeaf, + 0x7dc6, 0x94bf, 0xabb9, 0xc1b3, 0x80ca, 0x97c4, 0xaebd, 0xc4b7, + 0x83ce, 0x9ac8, 0xb1c1, 0xc7bb, 0x86d2, 0x9dcc, 0xb4c5, 0xcabf, + 0x78c8, 0x8fc2, 0xa6bb, 0xbcb5, 0x7bcc, 0x92c6, 0xa9bf, 0xbfb9, + 0x7ed0, 0x95ca, 0xacc3, 0xc2bd, 0x81d4, 0x98ce, 0xafc8, 0xc5c1, + 0x84d8, 0x9bd2, 0xb2cc, 0xc8c5, 0x87dc, 0x9ed6, 0xb5d0, 0xcbc9, + 0x8ae0, 0xa1da, 0xb8d4, 0xcecd, 0x8de4, 0xa4de, 0xbbd8, 0xd2d2}, + {0x4747, 0x3956, 0x2c65, 0x1f74, 0x5b5b, 0x4d6a, 0x4079, 0x3288, + 0x6e6f, 0x617e, 0x548d, 0x469c, 0x8283, 0x7592, 0x67a1, 0x5ab0, + 0x9697, 0x89a6, 0x7bb5, 0x6ec4, 0xaaaa, 0x9cba, 0x8fc9, 0x82d8, + 0xbebe, 0xb0ce, 0xa3dd, 0x95ec, 0xd1d2, 0xc4e2, 0xb7f1, 0xa9ff, + 0x4c40, 0x3f4f, 0x325f, 0x246e, 0x6054, 0x5363, 0x4672, 0x3882, + 0x7468, 0x6777, 0x5986, 0x4c96, 0x887c, 0x7b8b, 0x6d9a, 0x60aa, + 0x9c90, 0x8e9f, 0x81ae, 0x74be, 0xafa4, 0xa2b3, 0x95c2, 0x87d1, + 0xc3b8, 0xb6c7, 0xa9d6, 0x9be5, 0xd7cc, 0xcadb, 0xbcea, 0xaff9, + 0x5239, 0x4549, 0x3858, 0x2a67, 0x664d, 0x595d, 0x4b6c, 0x3e7b, + 0x7a61, 0x6c71, 0x5f80, 0x528f, 0x8e75, 0x8085, 0x7394, 0x66a3, + 0xa189, 0x9498, 0x87a8, 0x79b7, 0xb59d, 0xa8ac, 0x9bbc, 0x8dcb, + 0xc9b1, 0xbcc0, 0xaed0, 0xa1df, 0xddc5, 0xcfd4, 0xc2e3, 0xb5f3, + 0x5833, 0x4b42, 0x3d51, 0x3060, 0x6c47, 0x5e56, 0x5165, 0x4474, + 0x805b, 0x726a, 0x6579, 0x5888, 0x936f, 0x867e, 0x798d, 0x6b9c, + 0xa783, 0x9a92, 0x8ca1, 0x7fb0, 0xbb97, 0xaea6, 0xa0b5, 0x93c4, + 0xcfaa, 0xc1ba, 0xb4c9, 0xa7d8, 0xe3be, 0xd5ce, 0xc8dd, 0xbbec, + 0x5e2c, 0x503b, 0x434b, 0x365a, 0x7240, 0x644f, 0x575f, 0x496e, + 0x8554, 0x7863, 0x6b72, 0x5d82, 0x9968, 0x8c77, 0x7e86, 0x7196, + 0xad7c, 0xa08b, 0x929a, 0x85aa, 0xc190, 0xb39f, 0xa6ae, 0x99be, + 0xd5a4, 0xc7b3, 0xbac2, 0xacd1, 0xe8b8, 0xdbc7, 0xced6, 0xc0e5, + 0x6326, 0x5635, 0x4944, 0x3b53, 0x7739, 0x6a49, 0x5d58, 0x4f67, + 0x8b4d, 0x7e5d, 0x706c, 0x637b, 0x9f61, 0x9271, 0x8480, 0x778f, + 0xb375, 0xa585, 0x9894, 0x8ba3, 0xc689, 0xb998, 0xaca8, 0x9eb7, + 0xda9d, 0xcdac, 0xc0bc, 0xb2cb, 0xeeb1, 0xe1c0, 0xd3d0, 0xc6df, + 0x691f, 0x5c2e, 0x4f3d, 0x414d, 0x7d33, 0x7042, 0x6251, 0x5560, + 0x9147, 0x8356, 0x7665, 0x6974, 0xa55b, 0x976a, 0x8a79, 0x7d88, + 0xb86f, 0xab7e, 0x9e8d, 0x909c, 0xcc83, 0xbf92, 0xb2a1, 0xa4b0, + 0xe097, 0xd3a6, 0xc5b5, 0xb8c4, 0xf4ab, 0xe6ba, 0xd9c9, 0xccd8, + 0x6f18, 0x6227, 0x5437, 0x4746, 0x832c, 0x753b, 0x684b, 0x5b5a, + 0x9740, 0x894f, 0x7c5f, 0x6f6e, 0xaa54, 0x9d63, 0x9073, 0x8282, + 0xbe68, 0xb177, 0xa386, 0x9696, 0xd27c, 0xc58b, 0xb79a, 0xaaaa, + 0xe690, 0xd89f, 0xcbae, 0xbebe, 0xfaa4, 0xecb3, 0xdfc2, 0xd1d1}, + {0x4747, 0x5f43, 0x773f, 0x8f3c, 0x4b4a, 0x6346, 0x7b42, 0x933e, + 0x4f4c, 0x6749, 0x8045, 0x9841, 0x534f, 0x6c4c, 0x8448, 0x9c44, + 0x5852, 0x704f, 0x884b, 0xa047, 0x5c55, 0x7451, 0x8c4e, 0xa44a, + 0x6058, 0x7854, 0x9051, 0xa94d, 0x645b, 0x7c57, 0x9553, 0xad50, + 0x4c59, 0x6456, 0x7c52, 0x944e, 0x505c, 0x6858, 0x8155, 0x9951, + 0x545f, 0x6d5b, 0x8558, 0x9d54, 0x5962, 0x715e, 0x895a, 0xa157, + 0x5d65, 0x7561, 0x8d5d, 0xa55a, 0x6168, 0x7964, 0x9160, 0xaa5c, + 0x656b, 0x7e67, 0x9663, 0xae5f, 0x6a6d, 0x826a, 0x9a66, 0xb262, + 0x516c, 0x6968, 0x8264, 0x9a61, 0x556f, 0x6e6b, 0x8667, 0x9e64, + 0x5a72, 0x726e, 0x8a6a, 0xa266, 0x5e74, 0x7671, 0x8e6d, 0xa669, + 0x6277, 0x7a74, 0x9270, 0xab6c, 0x667a, 0x7f76, 0x9773, 0xaf6f, + 0x6b7d, 0x8379, 0x9b76, 0xb372, 0x6f80, 0x877c, 0x9f78, 0xb775, + 0x567e, 0x6f7b, 0x8777, 0x9f73, 0x5b81, 0x737e, 0x8b7a, 0xa376, + 0x5f84, 0x7780, 0x8f7d, 0xa779, 0x6387, 0x7b83, 0x9380, 0xac7c, + 0x678a, 0x8086, 0x9882, 0xb07f, 0x6c8d, 0x8489, 0x9c85, 0xb482, + 0x7090, 0x888c, 0xa088, 0xb884, 0x7492, 0x8c8f, 0xa48b, 0xbd87, + 0x5c91, 0x748d, 0x8c89, 0xa486, 0x6094, 0x7890, 0x908c, 0xa889, + 0x6497, 0x7c93, 0x948f, 0xad8c, 0x689a, 0x8196, 0x9992, 0xb18e, + 0x6d9c, 0x8599, 0x9d95, 0xb591, 0x719f, 0x899c, 0xa198, 0xb994, + 0x75a2, 0x8d9e, 0xa59b, 0xbe97, 0x79a5, 0x91a1, 0xaa9e, 0xc29a, + 0x61a3, 0x79a0, 0x919c, 0xa998, 0x65a6, 0x7da3, 0x969f, 0xae9b, + 0x69a9, 0x82a5, 0x9aa2, 0xb29e, 0x6eac, 0x86a8, 0x9ea5, 0xb6a1, + 0x72af, 0x8aab, 0xa2a8, 0xbaa4, 0x76b2, 0x8eae, 0xa6aa, 0xbfa7, + 0x7ab5, 0x92b1, 0xabad, 0xc3aa, 0x7fb8, 0x97b4, 0xafb0, 0xc7ac, + 0x66b6, 0x7eb2, 0x97af, 0xafab, 0x6ab9, 0x83b5, 0x9bb1, 0xb3ae, + 0x6fbc, 0x87b8, 0x9fb4, 0xb7b1, 0x73bf, 0x8bbb, 0xa3b7, 0xbbb3, + 0x77c2, 0x8fbe, 0xa7ba, 0xc0b6, 0x7bc4, 0x93c1, 0xacbd, 0xc4b9, + 0x80c7, 0x98c4, 0xb0c0, 0xc8bc, 0x84ca, 0x9cc6, 0xb4c3, 0xccbf, + 0x6bc9, 0x84c5, 0x9cc1, 0xb4bd, 0x70cb, 0x88c8, 0xa0c4, 0xb8c0, + 0x74ce, 0x8ccb, 0xa4c7, 0xbcc3, 0x78d1, 0x90cd, 0xa8ca, 0xc1c6, + 0x7cd4, 0x95d0, 0xadcd, 0xc5c9, 0x81d7, 0x99d3, 0xb1cf, 0xc9cc, + 0x85da, 0x9dd6, 0xb5d2, 0xcdcf, 0x89dd, 0xa1d9, 0xb9d5, 0xd2d2}, + {0x4747, 0x3853, 0x2a60, 0x1b6c, 0x595c, 0x4b68, 0x3c75, 0x2e81, + 0x6c71, 0x5d7d, 0x4f8a, 0x4096, 0x7e86, 0x7092, 0x619f, 0x53ac, + 0x919b, 0x82a7, 0x74b4, 0x65c1, 0xa3b0, 0x95bd, 0x86c9, 0x78d6, + 0xb6c5, 0xa7d2, 0x99de, 0x8aeb, 0xc8da, 0xbae7, 0xabf3, 0x9dff, + 0x4e40, 0x404d, 0x3159, 0x2366, 0x6155, 0x5262, 0x446e, 0x357b, + 0x736a, 0x6577, 0x5683, 0x4890, 0x867f, 0x778c, 0x6998, 0x5aa5, + 0x9894, 0x8aa1, 0x7bad, 0x6dba, 0xaba9, 0x9cb6, 0x8ec2, 0x7fcf, + 0xbdbe, 0xafcb, 0xa0d8, 0x92e4, 0xd0d4, 0xc1e0, 0xb3ed, 0xa4f9, + 0x563a, 0x4746, 0x3953, 0x2a5f, 0x684f, 0x5a5b, 0x4b68, 0x3d74, + 0x7b64, 0x6c70, 0x5e7d, 0x4f89, 0x8d79, 0x7f85, 0x7092, 0x629e, + 0xa08e, 0x919a, 0x83a7, 0x74b3, 0xb2a3, 0xa4af, 0x95bc, 0x87c8, + 0xc5b8, 0xb6c4, 0xa8d1, 0x99dd, 0xd7cd, 0xc9d9, 0xbae6, 0xacf3, + 0x5d33, 0x4f3f, 0x404c, 0x3259, 0x7048, 0x6155, 0x5361, 0x446e, + 0x825d, 0x746a, 0x6576, 0x5783, 0x9572, 0x867f, 0x788b, 0x6998, + 0xa787, 0x9994, 0x8aa0, 0x7cad, 0xba9c, 0xaba9, 0x9db5, 0x8ec2, + 0xccb1, 0xbebe, 0xafca, 0xa1d7, 0xdfc6, 0xd0d3, 0xc2df, 0xb3ec, + 0x652c, 0x5639, 0x4845, 0x3952, 0x7741, 0x694e, 0x5a5a, 0x4c67, + 0x8a56, 0x7b63, 0x6d70, 0x5e7c, 0x9c6b, 0x8e78, 0x7f85, 0x7191, + 0xaf81, 0xa08d, 0x929a, 0x83a6, 0xc196, 0xb3a2, 0xa4af, 0x96bb, + 0xd4ab, 0xc5b7, 0xb7c4, 0xa8d0, 0xe6c0, 0xd8cc, 0xc9d9, 0xbbe5, + 0x6c26, 0x5e32, 0x4f3f, 0x414b, 0x7f3b, 0x7047, 0x6254, 0x5360, + 0x9150, 0x835c, 0x7469, 0x6675, 0xa465, 0x9571, 0x877e, 0x788a, + 0xb67a, 0xa886, 0x9993, 0x8ba0, 0xc98f, 0xba9c, 0xaca8, 0x9db5, + 0xdba4, 0xcdb1, 0xbebd, 0xb0ca, 0xeeb9, 0xdfc6, 0xd1d2, 0xc2df, + 0x741f, 0x662c, 0x5738, 0x4845, 0x8734, 0x7841, 0x694d, 0x5b5a, + 0x9949, 0x8b56, 0x7c62, 0x6d6f, 0xac5e, 0x9d6b, 0x8e77, 0x8084, + 0xbe73, 0xaf80, 0xa18c, 0x9299, 0xd188, 0xc295, 0xb3a1, 0xa5ae, + 0xe39d, 0xd4aa, 0xc6b7, 0xb7c3, 0xf5b3, 0xe7bf, 0xd8cc, 0xcad8, + 0x7c19, 0x6d25, 0x5f32, 0x503e, 0x8e2e, 0x803a, 0x7147, 0x6353, + 0xa143, 0x924f, 0x845c, 0x7568, 0xb358, 0xa564, 0x9671, 0x887d, + 0xc66d, 0xb779, 0xa986, 0x9a92, 0xd882, 0xca8e, 0xbb9b, 0xada7, + 0xeb97, 0xdca3, 0xceb0, 0xbfbc, 0xfdac, 0xefb8, 0xe0c5, 0xd1d1}, + {0x4747, 0x6046, 0x7945, 0x9244, 0x4c49, 0x6548, 0x7f47, 0x9846, + 0x524a, 0x6b49, 0x8449, 0x9d48, 0x584c, 0x714b, 0x8a4a, 0xa349, + 0x5d4e, 0x764d, 0x8f4c, 0xa84b, 0x6350, 0x7c4f, 0x954e, 0xae4d, + 0x6852, 0x8151, 0x9b50, 0xb44f, 0x6e54, 0x8753, 0xa052, 0xb951, + 0x4a59, 0x6358, 0x7c57, 0x9656, 0x505b, 0x695a, 0x8259, 0x9b58, + 0x555d, 0x6f5c, 0x885b, 0xa15a, 0x5b5f, 0x745e, 0x8d5d, 0xa65c, + 0x6161, 0x7a60, 0x935f, 0xac5e, 0x6662, 0x7f61, 0x9860, 0xb260, + 0x6c64, 0x8563, 0x9e62, 0xb761, 0x7166, 0x8b65, 0xa464, 0xbd63, + 0x4e6c, 0x676b, 0x806a, 0x9969, 0x536d, 0x6c6c, 0x866b, 0x9f6a, + 0x596f, 0x726e, 0x8b6d, 0xa46c, 0x5e71, 0x7870, 0x916f, 0xaa6e, + 0x6473, 0x7d72, 0x9671, 0xaf70, 0x6a75, 0x8374, 0x9c73, 0xb572, + 0x6f77, 0x8876, 0xa175, 0xbb74, 0x7578, 0x8e78, 0xa777, 0xc076, + 0x517e, 0x6a7d, 0x837c, 0x9c7b, 0x5780, 0x707f, 0x897e, 0xa27d, + 0x5c82, 0x7581, 0x8f80, 0xa87f, 0x6283, 0x7b82, 0x9482, 0xad81, + 0x6885, 0x8184, 0x9a83, 0xb382, 0x6d87, 0x8686, 0x9f85, 0xb884, + 0x7389, 0x8c88, 0xa587, 0xbe86, 0x788b, 0x918a, 0xab89, 0xc488, + 0x5590, 0x6e8f, 0x878e, 0xa08d, 0x5a92, 0x7391, 0x8c90, 0xa68f, + 0x6094, 0x7993, 0x9292, 0xab91, 0x6596, 0x7e95, 0x9894, 0xb193, + 0x6b98, 0x8497, 0x9d96, 0xb695, 0x719a, 0x8a99, 0xa398, 0xbc97, + 0x769b, 0x8f9a, 0xa899, 0xc299, 0x7c9d, 0x959c, 0xae9b, 0xc79a, + 0x58a3, 0x71a2, 0x8aa1, 0xa3a0, 0x5ea5, 0x77a4, 0x90a3, 0xa9a2, + 0x63a6, 0x7ca5, 0x95a4, 0xafa3, 0x69a8, 0x82a7, 0x9ba6, 0xb4a5, + 0x6eaa, 0x88a9, 0xa1a8, 0xbaa7, 0x74ac, 0x8dab, 0xa6aa, 0xbfa9, + 0x7aae, 0x93ad, 0xacac, 0xc5ab, 0x7fb0, 0x98af, 0xb1ae, 0xcbad, + 0x5cb5, 0x75b4, 0x8eb3, 0xa7b2, 0x61b7, 0x7ab6, 0x93b5, 0xacb4, + 0x67b9, 0x80b8, 0x99b7, 0xb2b6, 0x6cbb, 0x85ba, 0x9fb9, 0xb8b8, + 0x72bc, 0x8bbb, 0xa4bb, 0xbdba, 0x77be, 0x91bd, 0xaabc, 0xc3bb, + 0x7dc0, 0x96bf, 0xafbe, 0xc8bd, 0x83c2, 0x9cc1, 0xb5c0, 0xcebf, + 0x5fc7, 0x78c6, 0x91c5, 0xaac5, 0x65c9, 0x7ec8, 0x97c7, 0xb0c6, + 0x6acb, 0x83ca, 0x9cc9, 0xb6c8, 0x70cd, 0x89cc, 0xa2cb, 0xbbca, + 0x75cf, 0x8ece, 0xa8cd, 0xc1cc, 0x7bd1, 0x94d0, 0xadcf, 0xc6ce, + 0x81d3, 0x9ad2, 0xb3d1, 0xccd0, 0x86d4, 0x9fd3, 0xb8d2, 0xd2d2}, + {0x4747, 0x3750, 0x285a, 0x1964, 0x585d, 0x4966, 0x3970, 0x2a7a, + 0x6973, 0x5a7c, 0x4a86, 0x3b90, 0x7a89, 0x6b92, 0x5b9c, 0x4ca6, + 0x8b9f, 0x7ca8, 0x6cb2, 0x5dbc, 0x9cb5, 0x8dbe, 0x7ec8, 0x6ed2, + 0xadcb, 0x9ed4, 0x8fde, 0x7fe8, 0xbee1, 0xafea, 0xa0f4, 0x90fe, + 0x5040, 0x414a, 0x3254, 0x225e, 0x6156, 0x5260, 0x436a, 0x3374, + 0x726c, 0x6376, 0x5480, 0x4489, 0x8382, 0x748c, 0x6596, 0x559f, + 0x9498, 0x85a2, 0x76ac, 0x66b5, 0xa5ae, 0x96b8, 0x87c2, 0x78cb, + 0xb6c4, 0xa7ce, 0x98d8, 0x89e1, 0xc7da, 0xb8e4, 0xa9ee, 0x9af7, + 0x593a, 0x4a44, 0x3b4e, 0x2c57, 0x6a50, 0x5b5a, 0x4c64, 0x3d6d, + 0x7b66, 0x6c70, 0x5d79, 0x4e83, 0x8d7c, 0x7d86, 0x6e8f, 0x5f99, + 0x9e92, 0x8e9c, 0x7fa5, 0x70af, 0xafa8, 0x9fb2, 0x90bb, 0x81c5, + 0xc0be, 0xb0c8, 0xa1d1, 0x92db, 0xd1d4, 0xc2de, 0xb2e7, 0xa3f1, + 0x6334, 0x533e, 0x4447, 0x3551, 0x744a, 0x6453, 0x555d, 0x4667, + 0x8560, 0x7669, 0x6673, 0x577d, 0x9676, 0x877f, 0x7789, 0x6893, + 0xa78c, 0x9895, 0x889f, 0x79a9, 0xb8a2, 0xa9ab, 0x99b5, 0x8abf, + 0xc9b8, 0xbac1, 0xaacb, 0x9bd5, 0xdace, 0xcbd7, 0xbce1, 0xaceb, + 0x6c2e, 0x5d37, 0x4d41, 0x3e4b, 0x7d43, 0x6e4d, 0x5e57, 0x4f61, + 0x8e59, 0x7f63, 0x706d, 0x6077, 0x9f6f, 0x9079, 0x8183, 0x718d, + 0xb085, 0xa18f, 0x9299, 0x82a3, 0xc19b, 0xb2a5, 0xa3af, 0x93b8, + 0xd2b1, 0xc3bb, 0xb4c5, 0xa5ce, 0xe3c7, 0xd4d1, 0xc5db, 0xb6e4, + 0x7527, 0x6631, 0x573b, 0x4744, 0x863d, 0x7747, 0x6851, 0x595a, + 0x9753, 0x885d, 0x7967, 0x6a70, 0xa869, 0x9973, 0x8a7d, 0x7b86, + 0xba7f, 0xaa89, 0x9b92, 0x8c9c, 0xcb95, 0xbb9f, 0xaca8, 0x9db2, + 0xdcab, 0xccb5, 0xbdbe, 0xaec8, 0xedc1, 0xddcb, 0xced4, 0xbfde, + 0x7f21, 0x6f2b, 0x6034, 0x513e, 0x9037, 0x8041, 0x714a, 0x6254, + 0xa14d, 0x9157, 0x8260, 0x736a, 0xb263, 0xa36d, 0x9376, 0x8480, + 0xc379, 0xb482, 0xa48c, 0x9596, 0xd48f, 0xc598, 0xb5a2, 0xa6ac, + 0xe5a5, 0xd6ae, 0xc6b8, 0xb7c2, 0xf6bb, 0xe7c4, 0xd7ce, 0xc8d8, + 0x881b, 0x7924, 0x692e, 0x5a38, 0x9931, 0x8a3a, 0x7a44, 0x6b4e, + 0xaa47, 0x9b50, 0x8b5a, 0x7c64, 0xbb5c, 0xac66, 0x9d70, 0x8d7a, + 0xcc72, 0xbd7c, 0xae86, 0x9e90, 0xdd88, 0xce92, 0xbf9c, 0xafa6, + 0xee9e, 0xdfa8, 0xd0b2, 0xc0bc, 0xffb4, 0xf0be, 0xe1c8, 0xd1d1}, + {0x4747, 0x6049, 0x7a4b, 0x944d, 0x4e48, 0x684a, 0x814c, 0x9b4e, + 0x5549, 0x6f4b, 0x884d, 0xa24f, 0x5c4a, 0x764c, 0x8f4e, 0xa950, + 0x634b, 0x7d4d, 0x964f, 0xb051, 0x6a4c, 0x844e, 0x9e50, 0xb752, + 0x714d, 0x8b4f, 0xa551, 0xbe53, 0x784e, 0x9250, 0xac52, 0xc554, + 0x4859, 0x625b, 0x7c5d, 0x965e, 0x505a, 0x695c, 0x835e, 0x9d60, + 0x575b, 0x705d, 0x8a5f, 0xa461, 0x5e5c, 0x775e, 0x9160, 0xab62, + 0x655d, 0x7f5f, 0x9861, 0xb263, 0x6c5e, 0x8660, 0x9f62, 0xb964, + 0x735f, 0x8d61, 0xa663, 0xc065, 0x7a60, 0x9462, 0xad64, 0xc766, + 0x4a6b, 0x646d, 0x7e6f, 0x9770, 0x516c, 0x6b6e, 0x8570, 0x9e71, + 0x586d, 0x726f, 0x8c71, 0xa573, 0x5f6e, 0x7970, 0x9372, 0xad74, + 0x676f, 0x8071, 0x9a73, 0xb475, 0x6e70, 0x8772, 0xa174, 0xbb76, + 0x7571, 0x8e73, 0xa875, 0xc277, 0x7c72, 0x9674, 0xaf76, 0xc978, + 0x4c7d, 0x667f, 0x7f80, 0x9982, 0x537e, 0x6d80, 0x8682, 0xa083, + 0x5a7f, 0x7481, 0x8d83, 0xa784, 0x6180, 0x7b82, 0x9584, 0xae86, + 0x6881, 0x8283, 0x9c85, 0xb587, 0x6f82, 0x8984, 0xa386, 0xbc88, + 0x7683, 0x9085, 0xaa87, 0xc489, 0x7e84, 0x9786, 0xb188, 0xcb8a, + 0x4e8f, 0x6791, 0x8192, 0x9b94, 0x5590, 0x6e92, 0x8893, 0xa295, + 0x5c91, 0x7693, 0x8f95, 0xa996, 0x6392, 0x7d94, 0x9696, 0xb097, + 0x6a93, 0x8495, 0x9d97, 0xb799, 0x7194, 0x8b96, 0xa498, 0xbe9a, + 0x7895, 0x9297, 0xac99, 0xc59b, 0x7f96, 0x9998, 0xb39a, 0xcc9c, + 0x4fa1, 0x69a2, 0x83a4, 0x9ca6, 0x56a2, 0x70a4, 0x8aa5, 0xa4a7, + 0x5ea3, 0x77a5, 0x91a6, 0xaba8, 0x65a4, 0x7ea6, 0x98a8, 0xb2a9, + 0x6ca5, 0x85a7, 0x9fa9, 0xb9aa, 0x73a6, 0x8da8, 0xa6aa, 0xc0ac, + 0x7aa7, 0x94a9, 0xadab, 0xc7ad, 0x81a8, 0x9baa, 0xb4ac, 0xceae, + 0x51b3, 0x6bb4, 0x84b6, 0x9eb8, 0x58b4, 0x72b5, 0x8cb7, 0xa5b9, + 0x5fb5, 0x79b7, 0x93b8, 0xacba, 0x66b6, 0x80b8, 0x9ab9, 0xb3bb, + 0x6db7, 0x87b9, 0xa1bb, 0xbbbc, 0x75b8, 0x8eba, 0xa8bc, 0xc2bd, + 0x7cb9, 0x95bb, 0xafbd, 0xc9bf, 0x83ba, 0x9cbc, 0xb6be, 0xd0c0, + 0x53c4, 0x6dc6, 0x86c8, 0xa0ca, 0x5ac6, 0x74c7, 0x8dc9, 0xa7cb, + 0x61c7, 0x7bc8, 0x94ca, 0xaecc, 0x68c8, 0x82ca, 0x9bcb, 0xb5cd, + 0x6fc9, 0x89cb, 0xa3cc, 0xbcce, 0x76ca, 0x90cc, 0xaace, 0xc3cf, + 0x7dcb, 0x97cd, 0xb1cf, 0xcad0, 0x84cc, 0x9ece, 0xb8d0, 0xd2d2}, + {0x4747, 0x374e, 0x2854, 0x185b, 0x565d, 0x4764, 0x376b, 0x2772, + 0x6674, 0x567b, 0x4782, 0x3788, 0x758b, 0x6692, 0x5698, 0x469f, + 0x85a1, 0x75a8, 0x66af, 0x56b6, 0x94b8, 0x85bf, 0x75c6, 0x65cd, + 0xa4cf, 0x94d6, 0x85dc, 0x75e3, 0xb3e6, 0xa4ec, 0x94f3, 0x84fa, + 0x5241, 0x4248, 0x334f, 0x2355, 0x6158, 0x525e, 0x4265, 0x326c, + 0x716e, 0x6175, 0x527c, 0x4283, 0x8085, 0x718c, 0x6193, 0x5199, + 0x909c, 0x80a3, 0x71a9, 0x61b0, 0x9fb2, 0x90b9, 0x80c0, 0x70c7, + 0xafc9, 0x9fd0, 0x90d7, 0x80dd, 0xbee0, 0xafe7, 0x9fed, 0x8ff4, + 0x5d3b, 0x4d42, 0x3e49, 0x2e50, 0x6c52, 0x5d59, 0x4d5f, 0x3d66, + 0x7c69, 0x6c6f, 0x5d76, 0x4d7d, 0x8b7f, 0x7c86, 0x6c8d, 0x5c94, + 0x9b96, 0x8b9d, 0x7ca4, 0x6caa, 0xaaad, 0x9bb3, 0x8bba, 0x7bc1, + 0xbac3, 0xaaca, 0x9bd1, 0x8bd8, 0xc9da, 0xbae1, 0xaae8, 0x9aee, + 0x6835, 0x583c, 0x4943, 0x394a, 0x774c, 0x6853, 0x585a, 0x4860, + 0x8763, 0x776a, 0x6870, 0x5877, 0x9679, 0x8780, 0x7787, 0x678e, + 0xa690, 0x9697, 0x879e, 0x77a5, 0xb5a7, 0xa6ae, 0x96b4, 0x86bb, + 0xc5be, 0xb5c4, 0xa6cb, 0x96d2, 0xd4d4, 0xc5db, 0xb5e2, 0xa5e9, + 0x7330, 0x6336, 0x543d, 0x4444, 0x8246, 0x734d, 0x6354, 0x535b, + 0x925d, 0x8264, 0x736b, 0x6371, 0xa174, 0x927b, 0x8281, 0x7288, + 0xb18a, 0xa191, 0x9298, 0x829f, 0xc0a1, 0xb1a8, 0xa1af, 0x91b5, + 0xd0b8, 0xc0bf, 0xb1c5, 0xa1cc, 0xdfce, 0xd0d5, 0xc0dc, 0xb0e3, + 0x7e2a, 0x6e31, 0x5f37, 0x4f3e, 0x8d41, 0x7e47, 0x6e4e, 0x5e55, + 0x9d57, 0x8d5e, 0x7e65, 0x6e6c, 0xac6e, 0x9d75, 0x8d7c, 0x7d82, + 0xbc85, 0xac8b, 0x9d92, 0x8d99, 0xcb9b, 0xbca2, 0xaca9, 0x9cb0, + 0xdbb2, 0xcbb9, 0xbcc0, 0xacc6, 0xeac9, 0xdbcf, 0xcbd6, 0xbbdd, + 0x8924, 0x792b, 0x6a32, 0x5a38, 0x983b, 0x8942, 0x7948, 0x694f, + 0xa852, 0x9858, 0x895f, 0x7966, 0xb768, 0xa86f, 0x9876, 0x887d, + 0xc77f, 0xb786, 0xa88c, 0x9893, 0xd696, 0xc79c, 0xb7a3, 0xa7aa, + 0xe6ac, 0xd6b3, 0xc7ba, 0xb7c1, 0xf5c3, 0xe6ca, 0xd6d0, 0xc6d7, + 0x941e, 0x8425, 0x752c, 0x6533, 0xa335, 0x943c, 0x8443, 0x7449, + 0xb34c, 0xa353, 0x9459, 0x8460, 0xc262, 0xb369, 0xa370, 0x9377, + 0xd279, 0xc280, 0xb387, 0xa38d, 0xe190, 0xd297, 0xc29d, 0xb2a4, + 0xf1a6, 0xe1ad, 0xd2b4, 0xc2bb, 0xffbd, 0xf1c4, 0xe1cb, 0xd1d1}, + {0x4747, 0x614c, 0x7a50, 0x9455, 0x4f47, 0x694c, 0x8351, 0x9d56, + 0x5848, 0x724c, 0x8c51, 0xa656, 0x6148, 0x7b4d, 0x9452, 0xae57, + 0x6948, 0x834d, 0x9d52, 0xb757, 0x7249, 0x8c4e, 0xa653, 0xc058, + 0x7b49, 0x954e, 0xae53, 0xc858, 0x844a, 0x9d4f, 0xb754, 0xd158, + 0x4758, 0x615d, 0x7a62, 0x9467, 0x5058, 0x695d, 0x8362, 0x9d67, + 0x5859, 0x725e, 0x8c63, 0xa668, 0x6159, 0x7b5e, 0x9463, 0xae68, + 0x6a5a, 0x835f, 0x9d64, 0xb768, 0x725a, 0x8c5f, 0xa664, 0xc069, + 0x7b5b, 0x9560, 0xaf64, 0xc869, 0x845b, 0x9d60, 0xb765, 0xd16a, + 0x4769, 0x616e, 0x7b73, 0x9478, 0x506a, 0x696f, 0x8374, 0x9d78, + 0x586a, 0x726f, 0x8c74, 0xa679, 0x616b, 0x7b70, 0x9574, 0xae79, + 0x6a6b, 0x8370, 0x9d75, 0xb77a, 0x726c, 0x8c70, 0xa675, 0xc07a, + 0x7b6c, 0x9571, 0xaf76, 0xc87b, 0x846c, 0x9d71, 0xb776, 0xd17b, + 0x477b, 0x6180, 0x7b84, 0x9489, 0x507b, 0x6980, 0x8385, 0x9d8a, + 0x587c, 0x7280, 0x8c85, 0xa68a, 0x617c, 0x7b81, 0x9586, 0xae8b, + 0x6a7c, 0x8481, 0x9d86, 0xb78b, 0x727d, 0x8c82, 0xa687, 0xc08b, + 0x7b7d, 0x9582, 0xaf87, 0xc88c, 0x847e, 0x9e83, 0xb787, 0xd18c, + 0x478c, 0x6191, 0x7b96, 0x959b, 0x508c, 0x6a91, 0x8396, 0x9d9b, + 0x588d, 0x7292, 0x8c97, 0xa69b, 0x618d, 0x7b92, 0x9597, 0xaf9c, + 0x6a8e, 0x8493, 0x9d97, 0xb79c, 0x728e, 0x8c93, 0xa698, 0xc09d, + 0x7b8f, 0x9593, 0xaf98, 0xc99d, 0x848f, 0x9e94, 0xb799, 0xd19e, + 0x479d, 0x61a2, 0x7ba7, 0x95ac, 0x509e, 0x6aa3, 0x83a7, 0x9dac, + 0x599e, 0x72a3, 0x8ca8, 0xa6ad, 0x619f, 0x7ba3, 0x95a8, 0xafad, + 0x6a9f, 0x84a4, 0x9da9, 0xb7ae, 0x739f, 0x8ca4, 0xa6a9, 0xc0ae, + 0x7ba0, 0x95a5, 0xafaa, 0xc9ae, 0x84a0, 0x9ea5, 0xb8aa, 0xd1af, + 0x47af, 0x61b3, 0x7bb8, 0x95bd, 0x50af, 0x6ab4, 0x84b9, 0x9dbe, + 0x59af, 0x72b4, 0x8cb9, 0xa6be, 0x61b0, 0x7bb5, 0x95ba, 0xafbe, + 0x6ab0, 0x84b5, 0x9eba, 0xb7bf, 0x73b1, 0x8cb6, 0xa6ba, 0xc0bf, + 0x7bb1, 0x95b6, 0xafbb, 0xc9c0, 0x84b2, 0x9eb6, 0xb8bb, 0xd1c0, + 0x47c0, 0x61c5, 0x7bca, 0x95ce, 0x50c0, 0x6ac5, 0x84ca, 0x9dcf, + 0x59c1, 0x72c6, 0x8cca, 0xa6cf, 0x61c1, 0x7bc6, 0x95cb, 0xafd0, + 0x6ac2, 0x84c6, 0x9ecb, 0xb7d0, 0x73c2, 0x8dc7, 0xa6cc, 0xc0d1, + 0x7bc2, 0x95c7, 0xafcc, 0xc9d1, 0x84c3, 0x9ec8, 0xb8cd, 0xd2d2}, + {0x4747, 0x374b, 0x284e, 0x1852, 0x555e, 0x4562, 0x3666, 0x2669, + 0x6375, 0x5379, 0x437d, 0x3481, 0x708c, 0x6190, 0x5194, 0x4298, + 0x7ea3, 0x6fa7, 0x5fab, 0x50af, 0x8cbb, 0x7dbe, 0x6dc2, 0x5ec6, + 0x9ad2, 0x8bd6, 0x7bd9, 0x6bdd, 0xa8e9, 0x98ed, 0x89f1, 0x79f4, + 0x5342, 0x4446, 0x3449, 0x254d, 0x6159, 0x525d, 0x4261, 0x3364, + 0x6f70, 0x6074, 0x5078, 0x407c, 0x7d87, 0x6d8b, 0x5e8f, 0x4e93, + 0x8b9e, 0x7ba2, 0x6ca6, 0x5caa, 0x99b6, 0x89b9, 0x7abd, 0x6ac1, + 0xa7cd, 0x97d1, 0x88d4, 0x78d8, 0xb5e4, 0xa5e8, 0x95ec, 0x86ef, + 0x603d, 0x5041, 0x4144, 0x3148, 0x6e54, 0x5e58, 0x4f5c, 0x3f5f, + 0x7c6b, 0x6c6f, 0x5d73, 0x4d77, 0x8a82, 0x7a86, 0x6b8a, 0x5b8e, + 0x9799, 0x889d, 0x78a1, 0x69a5, 0xa5b1, 0x96b4, 0x86b8, 0x77bc, + 0xb3c8, 0xa4cc, 0x94cf, 0x85d3, 0xc1df, 0xb2e3, 0xa2e7, 0x93ea, + 0x6d38, 0x5d3c, 0x4d3f, 0x3e43, 0x7a4f, 0x6b53, 0x5b57, 0x4c5a, + 0x8866, 0x796a, 0x696e, 0x5a72, 0x967d, 0x8781, 0x7785, 0x6889, + 0xa494, 0x9598, 0x859c, 0x75a0, 0xb2ac, 0xa2af, 0x93b3, 0x83b7, + 0xc0c3, 0xb0c7, 0xa1ca, 0x91ce, 0xceda, 0xbede, 0xafe2, 0x9fe5, + 0x7933, 0x6a37, 0x5a3a, 0x4a3e, 0x874a, 0x774e, 0x6852, 0x5855, + 0x9561, 0x8565, 0x7669, 0x666d, 0xa378, 0x937c, 0x8480, 0x7484, + 0xb18f, 0xa193, 0x9297, 0x829b, 0xbfa7, 0xafaa, 0x9fae, 0x90b2, + 0xccbe, 0xbdc2, 0xadc5, 0x9ec9, 0xdad5, 0xcbd9, 0xbbdd, 0xace0, + 0x862e, 0x7632, 0x6735, 0x5739, 0x9445, 0x8449, 0x754d, 0x6550, + 0xa15c, 0x9260, 0x8264, 0x7368, 0xaf73, 0xa077, 0x907b, 0x817f, + 0xbd8a, 0xae8e, 0x9e92, 0x8f96, 0xcba2, 0xbca5, 0xaca9, 0x9dad, + 0xd9b9, 0xcabd, 0xbac0, 0xaac4, 0xe7d0, 0xd7d4, 0xc8d8, 0xb8db, + 0x9229, 0x832d, 0x7330, 0x6434, 0xa040, 0x9144, 0x8148, 0x724b, + 0xae57, 0x9f5b, 0x8f5f, 0x7f63, 0xbc6e, 0xac72, 0x9d76, 0x8d7a, + 0xca86, 0xba89, 0xab8d, 0x9b91, 0xd89d, 0xc8a0, 0xb9a4, 0xa9a8, + 0xe6b4, 0xd6b8, 0xc7bb, 0xb7bf, 0xf4cb, 0xe4cf, 0xd4d3, 0xc5d6, + 0x9f24, 0x8f28, 0x802b, 0x702f, 0xad3b, 0x9d3f, 0x8e43, 0x7e46, + 0xbb52, 0xab56, 0x9c5a, 0x8c5e, 0xc969, 0xb96d, 0xa971, 0x9a75, + 0xd681, 0xc784, 0xb788, 0xa88c, 0xe498, 0xd59c, 0xc59f, 0xb6a3, + 0xf2af, 0xe3b3, 0xd3b7, 0xc4ba, 0xffc6, 0xf1ca, 0xe1ce, 0xd1d1}, + {0x4747, 0x604f, 0x7a56, 0x935e, 0x5147, 0x6b4f, 0x8456, 0x9e5e, + 0x5b47, 0x754f, 0x8e57, 0xa85e, 0x6647, 0x7f4f, 0x9957, 0xb25e, + 0x7047, 0x8a4f, 0xa357, 0xbd5e, 0x7a47, 0x944f, 0xad57, 0xc75f, + 0x8547, 0x9e4f, 0xb857, 0xd15f, 0x8f47, 0xa94f, 0xc257, 0xdc5f, + 0x4557, 0x5f5f, 0x7867, 0x926f, 0x5057, 0x695f, 0x8367, 0x9c6f, + 0x5a57, 0x735f, 0x8d67, 0xa76f, 0x6457, 0x7e5f, 0x9767, 0xb16f, + 0x6f57, 0x885f, 0xa267, 0xbb6f, 0x7957, 0x925f, 0xac67, 0xc66f, + 0x8358, 0x9d5f, 0xb667, 0xd06f, 0x8e58, 0xa75f, 0xc167, 0xda6f, + 0x4468, 0x5d6f, 0x7777, 0x907f, 0x4e68, 0x686f, 0x8177, 0x9b7f, + 0x5968, 0x7270, 0x8c77, 0xa57f, 0x6368, 0x7c70, 0x9677, 0xaf7f, + 0x6d68, 0x8770, 0xa077, 0xba7f, 0x7868, 0x9170, 0xab78, 0xc47f, + 0x8268, 0x9b70, 0xb578, 0xce7f, 0x8c68, 0xa670, 0xbf78, 0xd97f, + 0x4278, 0x5c80, 0x7588, 0x8f8f, 0x4d78, 0x6680, 0x8088, 0x9990, + 0x5778, 0x7180, 0x8a88, 0xa490, 0x6178, 0x7b80, 0x9488, 0xae90, + 0x6c78, 0x8580, 0x9f88, 0xb890, 0x7678, 0x9080, 0xa988, 0xc390, + 0x8078, 0x9a80, 0xb388, 0xcd90, 0x8b78, 0xa480, 0xbe88, 0xd790, + 0x4188, 0x5a90, 0x7498, 0x8ea0, 0x4b88, 0x6590, 0x7e98, 0x98a0, + 0x5689, 0x6f90, 0x8998, 0xa2a0, 0x6089, 0x7990, 0x9398, 0xada0, + 0x6a89, 0x8490, 0x9d98, 0xb7a0, 0x7589, 0x8e91, 0xa898, 0xc1a0, + 0x7f89, 0x9891, 0xb298, 0xcca0, 0x8989, 0xa391, 0xbc98, 0xd6a0, + 0x4099, 0x59a1, 0x73a8, 0x8cb0, 0x4a99, 0x63a1, 0x7da8, 0x96b0, + 0x5499, 0x6ea1, 0x87a9, 0xa1b0, 0x5f99, 0x78a1, 0x92a9, 0xabb0, + 0x6999, 0x82a1, 0x9ca9, 0xb5b1, 0x7399, 0x8da1, 0xa6a9, 0xc0b1, + 0x7d99, 0x97a1, 0xb1a9, 0xcab1, 0x8899, 0xa1a1, 0xbba9, 0xd4b1, + 0x3ea9, 0x58b1, 0x71b9, 0x8bc1, 0x48a9, 0x62b1, 0x7bb9, 0x95c1, + 0x53a9, 0x6cb1, 0x86b9, 0x9fc1, 0x5da9, 0x77b1, 0x90b9, 0xaac1, + 0x67a9, 0x81b1, 0x9ab9, 0xb4c1, 0x72a9, 0x8bb1, 0xa5b9, 0xbec1, + 0x7caa, 0x96b1, 0xafb9, 0xc9c1, 0x86aa, 0xa0b1, 0xb9b9, 0xd3c1, + 0x3dba, 0x56c1, 0x70c9, 0x89d1, 0x47ba, 0x60c1, 0x7ac9, 0x94d1, + 0x51ba, 0x6bc2, 0x84c9, 0x9ed1, 0x5cba, 0x75c2, 0x8fc9, 0xa8d1, + 0x66ba, 0x7fc2, 0x99c9, 0xb3d1, 0x70ba, 0x8ac2, 0xa3ca, 0xbdd1, + 0x7bba, 0x94c2, 0xaeca, 0xc7d1, 0x85ba, 0x9ec2, 0xb8ca, 0xd2d2}, + {0x4747, 0x3848, 0x2949, 0x1a49, 0x535e, 0x445f, 0x3560, 0x2661, + 0x5f76, 0x5076, 0x4177, 0x3278, 0x6b8d, 0x5c8e, 0x4d8f, 0x3e90, + 0x78a4, 0x69a5, 0x5aa6, 0x4aa7, 0x84bc, 0x75bd, 0x66be, 0x57bf, + 0x90d3, 0x81d4, 0x72d5, 0x63d6, 0x9ceb, 0x8dec, 0x7eed, 0x6fed, + 0x5543, 0x4644, 0x3745, 0x2845, 0x615a, 0x525b, 0x435c, 0x345d, + 0x6d72, 0x5e73, 0x4f73, 0x4074, 0x7989, 0x6a8a, 0x5b8b, 0x4c8c, + 0x86a0, 0x77a1, 0x68a2, 0x59a3, 0x92b8, 0x83b9, 0x74ba, 0x65bb, + 0x9ecf, 0x8fd0, 0x80d1, 0x71d2, 0xaae7, 0x9be8, 0x8ce9, 0x7de9, + 0x633f, 0x5440, 0x4541, 0x3641, 0x6f56, 0x6057, 0x5158, 0x4259, + 0x7b6e, 0x6c6f, 0x5d6f, 0x4e70, 0x8885, 0x7886, 0x6987, 0x5a88, + 0x949c, 0x859d, 0x769e, 0x679f, 0xa0b4, 0x91b5, 0x82b6, 0x73b7, + 0xaccb, 0x9dcc, 0x8ecd, 0x7fce, 0xb8e3, 0xa9e4, 0x9ae5, 0x8be5, + 0x713b, 0x623c, 0x533d, 0x443d, 0x7d52, 0x6e53, 0x5f54, 0x5055, + 0x896a, 0x7a6b, 0x6b6b, 0x5c6c, 0x9681, 0x8782, 0x7783, 0x6884, + 0xa298, 0x9399, 0x849a, 0x759b, 0xaeb0, 0x9fb1, 0x90b2, 0x81b3, + 0xbac7, 0xabc8, 0x9cc9, 0x8dca, 0xc6df, 0xb7e0, 0xa8e1, 0x99e1, + 0x7f37, 0x7038, 0x6139, 0x5239, 0x8b4e, 0x7c4f, 0x6d50, 0x5e51, + 0x9766, 0x8867, 0x7967, 0x6a68, 0xa47d, 0x957e, 0x867f, 0x7680, + 0xb095, 0xa195, 0x9296, 0x8397, 0xbcac, 0xadad, 0x9eae, 0x8faf, + 0xc8c3, 0xb9c4, 0xaac5, 0x9bc6, 0xd5db, 0xc5dc, 0xb6dd, 0xa7dd, + 0x8d33, 0x7e34, 0x6f35, 0x6035, 0x994a, 0x8a4b, 0x7b4c, 0x6c4d, + 0xa562, 0x9663, 0x8763, 0x7864, 0xb279, 0xa37a, 0x947b, 0x857c, + 0xbe91, 0xaf91, 0xa092, 0x9193, 0xcaa8, 0xbba9, 0xacaa, 0x9dab, + 0xd6bf, 0xc7c0, 0xb8c1, 0xa9c2, 0xe3d7, 0xd4d8, 0xc4d9, 0xb5d9, + 0x9b2f, 0x8c30, 0x7d31, 0x6e31, 0xa746, 0x9847, 0x8948, 0x7a49, + 0xb35e, 0xa45f, 0x955f, 0x8660, 0xc075, 0xb176, 0xa277, 0x9378, + 0xcc8d, 0xbd8d, 0xae8e, 0x9f8f, 0xd8a4, 0xc9a5, 0xbaa6, 0xaba7, + 0xe4bb, 0xd5bc, 0xc6bd, 0xb7be, 0xf1d3, 0xe2d4, 0xd3d5, 0xc3d5, + 0xa92b, 0x9a2c, 0x8b2d, 0x7c2e, 0xb542, 0xa643, 0x9744, 0x8845, + 0xc25a, 0xb25b, 0xa35b, 0x945c, 0xce71, 0xbf72, 0xb073, 0xa174, + 0xda89, 0xcb89, 0xbc8a, 0xad8b, 0xe6a0, 0xd7a1, 0xc8a2, 0xb9a3, + 0xf2b7, 0xe3b8, 0xd4b9, 0xc5ba, 0xffcf, 0xf0d0, 0xe1d1, 0xd1d1}, + {0x4747, 0x6051, 0x785c, 0x9167, 0x5347, 0x6c51, 0x845c, 0x9d67, + 0x5f47, 0x7851, 0x905c, 0xa967, 0x6b47, 0x8451, 0x9c5c, 0xb567, + 0x7746, 0x9051, 0xa85c, 0xc167, 0x8346, 0x9c51, 0xb45c, 0xcd67, + 0x8f46, 0xa851, 0xc05c, 0xd966, 0x9b46, 0xb451, 0xcc5c, 0xe566, + 0x4456, 0x5d61, 0x766b, 0x8e76, 0x5056, 0x6961, 0x826b, 0x9a76, + 0x5c56, 0x7561, 0x8e6b, 0xa676, 0x6856, 0x8161, 0x9a6b, 0xb276, + 0x7456, 0x8d60, 0xa66b, 0xbe76, 0x8056, 0x9960, 0xb26b, 0xca76, + 0x8c56, 0xa560, 0xbe6b, 0xd676, 0x9856, 0xb160, 0xca6b, 0xe276, + 0x4165, 0x5a70, 0x737b, 0x8c86, 0x4d65, 0x6670, 0x7f7b, 0x9885, + 0x5965, 0x7270, 0x8b7b, 0xa485, 0x6565, 0x7e70, 0x977b, 0xb085, + 0x7165, 0x8a70, 0xa37a, 0xbc85, 0x7d65, 0x9670, 0xaf7a, 0xc885, + 0x8965, 0xa270, 0xbb7a, 0xd485, 0x9565, 0xae70, 0xc77a, 0xe085, + 0x3e75, 0x577f, 0x708a, 0x8995, 0x4a75, 0x637f, 0x7c8a, 0x9595, + 0x5675, 0x6f7f, 0x888a, 0xa195, 0x6274, 0x7b7f, 0x948a, 0xad95, + 0x6e74, 0x877f, 0xa08a, 0xb995, 0x7a74, 0x937f, 0xac8a, 0xc594, + 0x8674, 0x9f7f, 0xb88a, 0xd194, 0x9274, 0xab7f, 0xc48a, 0xdd94, + 0x3b84, 0x548f, 0x6d99, 0x86a4, 0x4784, 0x608f, 0x7999, 0x92a4, + 0x5384, 0x6c8f, 0x8599, 0x9ea4, 0x5f84, 0x788e, 0x9199, 0xaaa4, + 0x6b84, 0x848e, 0x9d99, 0xb6a4, 0x7784, 0x908e, 0xa999, 0xc2a4, + 0x8384, 0x9c8e, 0xb599, 0xcea4, 0x9083, 0xa88e, 0xc199, 0xdaa4, + 0x3993, 0x519e, 0x6aa9, 0x83b3, 0x4593, 0x5d9e, 0x76a9, 0x8fb3, + 0x5193, 0x699e, 0x82a9, 0x9bb3, 0x5d93, 0x759e, 0x8ea8, 0xa7b3, + 0x6993, 0x819e, 0x9aa8, 0xb3b3, 0x7593, 0x8d9e, 0xa6a8, 0xbfb3, + 0x8193, 0x999e, 0xb2a8, 0xcbb3, 0x8d93, 0xa69d, 0xbea8, 0xd7b3, + 0x36a3, 0x4fad, 0x67b8, 0x80c3, 0x42a2, 0x5bad, 0x73b8, 0x8cc3, + 0x4ea2, 0x67ad, 0x7fb8, 0x98c3, 0x5aa2, 0x73ad, 0x8bb8, 0xa4c2, + 0x66a2, 0x7fad, 0x97b8, 0xb0c2, 0x72a2, 0x8bad, 0xa3b8, 0xbcc2, + 0x7ea2, 0x97ad, 0xafb8, 0xc8c2, 0x8aa2, 0xa3ad, 0xbcb7, 0xd4c2, + 0x33b2, 0x4cbd, 0x65c7, 0x7dd2, 0x3fb2, 0x58bd, 0x71c7, 0x89d2, + 0x4bb2, 0x64bc, 0x7dc7, 0x95d2, 0x57b2, 0x70bc, 0x89c7, 0xa1d2, + 0x63b2, 0x7cbc, 0x95c7, 0xadd2, 0x6fb1, 0x88bc, 0xa1c7, 0xb9d2, + 0x7bb1, 0x94bc, 0xadc7, 0xc5d2, 0x87b1, 0xa0bc, 0xb9c7, 0xd1d2}, + {0x4747, 0x3945, 0x2a43, 0x1c41, 0x515e, 0x435c, 0x355a, 0x2758, + 0x5c76, 0x4e74, 0x4072, 0x3170, 0x668d, 0x588b, 0x4a89, 0x3c87, + 0x71a5, 0x63a3, 0x55a1, 0x469f, 0x7bbc, 0x6dba, 0x5fb8, 0x51b6, + 0x86d3, 0x78d1, 0x6acf, 0x5cce, 0x91eb, 0x82e9, 0x74e7, 0x66e5, + 0x5644, 0x4842, 0x3a40, 0x2c3e, 0x615b, 0x5259, 0x4457, 0x3656, + 0x6b73, 0x5d71, 0x4f6f, 0x416d, 0x768a, 0x6888, 0x5986, 0x4b84, + 0x80a2, 0x72a0, 0x649e, 0x569c, 0x8bb9, 0x7db7, 0x6fb5, 0x60b3, + 0x95d1, 0x87cf, 0x79cd, 0x6bcb, 0xa0e8, 0x92e6, 0x84e4, 0x75e2, + 0x6541, 0x573f, 0x493d, 0x3b3b, 0x7059, 0x6257, 0x5455, 0x4653, + 0x7b70, 0x6c6e, 0x5e6c, 0x506a, 0x8588, 0x7786, 0x6984, 0x5b82, + 0x909f, 0x819d, 0x739b, 0x6599, 0x9ab6, 0x8cb4, 0x7eb2, 0x70b1, + 0xa5ce, 0x97cc, 0x88ca, 0x7ac8, 0xafe5, 0xa1e3, 0x93e1, 0x85df, + 0x753e, 0x673c, 0x583a, 0x4a39, 0x7f56, 0x7154, 0x6352, 0x5550, + 0x8a6d, 0x7c6b, 0x6e69, 0x5f67, 0x9485, 0x8683, 0x7881, 0x6a7f, + 0x9f9c, 0x919a, 0x8398, 0x7596, 0xa9b4, 0x9bb2, 0x8db0, 0x7fae, + 0xb4cb, 0xa6c9, 0x98c7, 0x8ac5, 0xbfe2, 0xb0e1, 0xa2df, 0x94dd, + 0x843c, 0x763a, 0x6838, 0x5a36, 0x8f53, 0x8151, 0x724f, 0x644d, + 0x996b, 0x8b69, 0x7d67, 0x6f65, 0xa482, 0x9680, 0x877e, 0x797c, + 0xae99, 0xa097, 0x9295, 0x8494, 0xb9b1, 0xabaf, 0x9dad, 0x8eab, + 0xc3c8, 0xb5c6, 0xa7c4, 0x99c2, 0xcee0, 0xc0de, 0xb2dc, 0xa3da, + 0x9339, 0x8537, 0x7735, 0x6933, 0x9e50, 0x904e, 0x824c, 0x744a, + 0xa968, 0x9a66, 0x8c64, 0x7e62, 0xb37f, 0xa57d, 0x977b, 0x8979, + 0xbe97, 0xaf95, 0xa193, 0x9391, 0xc8ae, 0xbaac, 0xacaa, 0x9ea8, + 0xd3c5, 0xc5c4, 0xb6c2, 0xa8c0, 0xdddd, 0xcfdb, 0xc1d9, 0xb3d7, + 0xa336, 0x9534, 0x8632, 0x7830, 0xad4d, 0x9f4c, 0x914a, 0x8348, + 0xb865, 0xaa63, 0x9c61, 0x8d5f, 0xc27c, 0xb47a, 0xa678, 0x9877, + 0xcd94, 0xbf92, 0xb190, 0xa38e, 0xd8ab, 0xc9a9, 0xbba7, 0xada5, + 0xe2c3, 0xd4c1, 0xc6bf, 0xb8bd, 0xedda, 0xded8, 0xd0d6, 0xc2d4, + 0xb233, 0xa431, 0x962f, 0x882d, 0xbd4b, 0xaf49, 0xa047, 0x9245, + 0xc762, 0xb960, 0xab5e, 0x9d5c, 0xd27a, 0xc478, 0xb576, 0xa774, + 0xdc91, 0xce8f, 0xc08d, 0xb28b, 0xe7a8, 0xd9a7, 0xcba5, 0xbca3, + 0xf1c0, 0xe3be, 0xd5bc, 0xc7ba, 0xfcd7, 0xeed5, 0xe0d3, 0xd2d1}, + {0x4747, 0x5e54, 0x7662, 0x8e6f, 0x5447, 0x6c54, 0x8462, 0x9c6f, + 0x6247, 0x7a54, 0x9262, 0xa96f, 0x7047, 0x8854, 0x9f62, 0xb76f, + 0x7d47, 0x9554, 0xad62, 0xc56f, 0x8b47, 0xa354, 0xbb62, 0xd26f, + 0x9947, 0xb154, 0xc862, 0xe06f, 0xa647, 0xbe54, 0xd662, 0xee6f, + 0x4355, 0x5a62, 0x7270, 0x8a7d, 0x5055, 0x6862, 0x8070, 0x987d, + 0x5e55, 0x7662, 0x8e70, 0xa57d, 0x6c55, 0x8362, 0x9b70, 0xb37d, + 0x7955, 0x9162, 0xa970, 0xc17d, 0x8755, 0x9f62, 0xb770, 0xce7d, + 0x9555, 0xad62, 0xc470, 0xdc7d, 0xa255, 0xba62, 0xd270, 0xea7d, + 0x3f63, 0x5670, 0x6e7e, 0x868b, 0x4c63, 0x6470, 0x7c7e, 0x948b, + 0x5a63, 0x7270, 0x8a7e, 0xa18b, 0x6863, 0x7f70, 0x977e, 0xaf8b, + 0x7563, 0x8d70, 0xa57e, 0xbd8b, 0x8363, 0x9b70, 0xb37e, 0xca8b, + 0x9163, 0xa870, 0xc07e, 0xd88b, 0x9e63, 0xb670, 0xce7e, 0xe68b, + 0x3b71, 0x527e, 0x6a8c, 0x8299, 0x4871, 0x607e, 0x788c, 0x9099, + 0x5671, 0x6e7e, 0x858c, 0x9d99, 0x6471, 0x7b7e, 0x938c, 0xab99, + 0x7171, 0x897e, 0xa18c, 0xb999, 0x7f71, 0x977e, 0xaf8c, 0xc699, + 0x8d71, 0xa47e, 0xbc8c, 0xd499, 0x9a71, 0xb27e, 0xca8c, 0xe299, + 0x377f, 0x4e8c, 0x669a, 0x7ea7, 0x447f, 0x5c8c, 0x749a, 0x8ba7, + 0x527f, 0x6a8c, 0x819a, 0x99a7, 0x607f, 0x778c, 0x8f9a, 0xa7a7, + 0x6d7f, 0x858c, 0x9d9a, 0xb5a7, 0x7b7f, 0x938c, 0xaa9a, 0xc2a7, + 0x897f, 0xa08c, 0xb89a, 0xd0a7, 0x967f, 0xae8c, 0xc69a, 0xdea7, + 0x338d, 0x4a9a, 0x62a8, 0x7ab5, 0x408d, 0x589a, 0x70a8, 0x87b5, + 0x4e8d, 0x669a, 0x7da8, 0x95b5, 0x5c8d, 0x739a, 0x8ba8, 0xa3b5, + 0x698d, 0x819a, 0x99a8, 0xb1b5, 0x778d, 0x8f9a, 0xa6a8, 0xbeb5, + 0x858d, 0x9c9a, 0xb4a8, 0xccb5, 0x928d, 0xaa9a, 0xc2a8, 0xdab5, + 0x2f9b, 0x46a8, 0x5eb6, 0x76c3, 0x3c9b, 0x54a8, 0x6cb6, 0x83c3, + 0x4a9b, 0x62a8, 0x79b6, 0x91c3, 0x589b, 0x6fa8, 0x87b6, 0x9fc3, + 0x659b, 0x7da8, 0x95b6, 0xacc3, 0x739b, 0x8ba8, 0xa2b6, 0xbac3, + 0x819b, 0x98a8, 0xb0b6, 0xc8c3, 0x8e9b, 0xa6a8, 0xbeb6, 0xd6c3, + 0x2ba9, 0x42b6, 0x5ac4, 0x72d1, 0x38a9, 0x50b6, 0x68c4, 0x7fd1, + 0x46a9, 0x5eb6, 0x75c4, 0x8dd1, 0x54a9, 0x6bb6, 0x83c4, 0x9bd1, + 0x61a9, 0x79b6, 0x91c4, 0xa8d1, 0x6fa9, 0x87b6, 0x9ec4, 0xb6d1, + 0x7da9, 0x94b6, 0xacc4, 0xc4d1, 0x8aa9, 0xa2b6, 0xbac4, 0xd1d2}, + {0x4747, 0x3a42, 0x2d3d, 0x2039, 0x505e, 0x4359, 0x3655, 0x2950, + 0x5975, 0x4c71, 0x3f6c, 0x3267, 0x618c, 0x5588, 0x4883, 0x3b7e, + 0x6aa4, 0x5d9f, 0x519a, 0x4496, 0x73bb, 0x66b6, 0x59b2, 0x4dad, + 0x7cd2, 0x6fcd, 0x62c9, 0x56c4, 0x85e9, 0x78e5, 0x6be0, 0x5edb, + 0x5745, 0x4a41, 0x3d3c, 0x3137, 0x605d, 0x5358, 0x4653, 0x3a4f, + 0x6974, 0x5c6f, 0x4f6a, 0x4266, 0x728b, 0x6586, 0x5882, 0x4b7d, + 0x7ba2, 0x6e9e, 0x6199, 0x5494, 0x84b9, 0x77b5, 0x6ab0, 0x5dab, + 0x8dd1, 0x80cc, 0x73c7, 0x66c3, 0x95e8, 0x89e3, 0x7cdf, 0x6fda, + 0x6844, 0x5b3f, 0x4e3b, 0x4136, 0x715b, 0x6457, 0x5752, 0x4a4d, + 0x7972, 0x6d6e, 0x6069, 0x5364, 0x828a, 0x7585, 0x6980, 0x5c7c, + 0x8ba1, 0x7e9c, 0x7198, 0x6593, 0x94b8, 0x87b3, 0x7aaf, 0x6eaa, + 0x9dcf, 0x90cb, 0x83c6, 0x76c1, 0xa6e6, 0x99e2, 0x8cdd, 0x7fd9, + 0x7843, 0x6b3e, 0x5e39, 0x5235, 0x815a, 0x7455, 0x6750, 0x5a4c, + 0x8a71, 0x7d6c, 0x7068, 0x6363, 0x9388, 0x8684, 0x797f, 0x6c7a, + 0x9c9f, 0x8f9b, 0x8296, 0x7591, 0xa5b7, 0x98b2, 0x8bad, 0x7ea9, + 0xadce, 0xa1c9, 0x94c5, 0x87c0, 0xb6e5, 0xa9e0, 0x9ddc, 0x90d7, + 0x8941, 0x7c3c, 0x6f38, 0x6233, 0x9158, 0x8554, 0x784f, 0x6b4a, + 0x9a70, 0x8d6b, 0x8166, 0x7462, 0xa387, 0x9682, 0x897d, 0x7d79, + 0xac9e, 0x9f99, 0x9295, 0x8690, 0xb5b5, 0xa8b1, 0x9bac, 0x8ea7, + 0xbecc, 0xb1c8, 0xa4c3, 0x97be, 0xc7e4, 0xbadf, 0xadda, 0xa0d6, + 0x9940, 0x8c3b, 0x7f36, 0x7232, 0xa257, 0x9552, 0x884e, 0x7b49, + 0xab6e, 0x9e6a, 0x9165, 0x8460, 0xb485, 0xa781, 0x9a7c, 0x8d77, + 0xbd9d, 0xb098, 0xa393, 0x968f, 0xc5b4, 0xb9af, 0xacab, 0x9fa6, + 0xcecb, 0xc1c6, 0xb5c2, 0xa8bd, 0xd7e2, 0xcade, 0xbdd9, 0xb1d4, + 0xa93e, 0x9d3a, 0x9035, 0x8330, 0xb256, 0xa551, 0x994c, 0x8c48, + 0xbb6d, 0xae68, 0xa163, 0x955f, 0xc484, 0xb77f, 0xaa7b, 0x9e76, + 0xcd9b, 0xc097, 0xb392, 0xa68d, 0xd6b2, 0xc9ae, 0xbca9, 0xafa4, + 0xdfca, 0xd2c5, 0xc5c0, 0xb8bc, 0xe8e1, 0xdbdc, 0xced8, 0xc1d3, + 0xba3d, 0xad38, 0xa034, 0x932f, 0xc354, 0xb650, 0xa94b, 0x9c46, + 0xcc6b, 0xbf67, 0xb262, 0xa55d, 0xd483, 0xc87e, 0xbb79, 0xae75, + 0xdd9a, 0xd195, 0xc491, 0xb78c, 0xe6b1, 0xd9ac, 0xcda8, 0xc0a3, + 0xefc8, 0xe2c4, 0xd5bf, 0xc9ba, 0xf8df, 0xebdb, 0xded6, 0xd2d1}, + {0x4747, 0x5d57, 0x7367, 0x8977, 0x5647, 0x6c57, 0x8367, 0x9977, + 0x6547, 0x7c58, 0x9268, 0xa878, 0x7548, 0x8b58, 0xa168, 0xb778, + 0x8448, 0x9a58, 0xb068, 0xc779, 0x9349, 0xaa59, 0xc069, 0xd679, + 0xa349, 0xb959, 0xcf69, 0xe579, 0xb249, 0xc859, 0xde6a, 0xf57a, + 0x4253, 0x5863, 0x6e74, 0x8484, 0x5154, 0x6764, 0x7e74, 0x9484, + 0x6054, 0x7764, 0x8d74, 0xa384, 0x7054, 0x8665, 0x9c75, 0xb285, + 0x7f55, 0x9565, 0xab75, 0xc285, 0x8e55, 0xa565, 0xbb75, 0xd185, + 0x9e56, 0xb466, 0xca76, 0xe086, 0xad56, 0xc366, 0xd976, 0xf086, + 0x3d60, 0x5370, 0x6980, 0x7f90, 0x4c60, 0x6270, 0x7880, 0x8f91, + 0x5b61, 0x7271, 0x8881, 0x9e91, 0x6b61, 0x8171, 0x9781, 0xad91, + 0x7a61, 0x9071, 0xa682, 0xbd92, 0x8962, 0x9f72, 0xb682, 0xcc92, + 0x9962, 0xaf72, 0xc582, 0xdb92, 0xa862, 0xbe73, 0xd483, 0xeb93, + 0x386c, 0x4e7c, 0x648d, 0x7a9d, 0x476d, 0x5d7d, 0x738d, 0x8a9d, + 0x566d, 0x6d7d, 0x838d, 0x999d, 0x666d, 0x7c7e, 0x928e, 0xa89e, + 0x756e, 0x8b7e, 0xa18e, 0xb89e, 0x846e, 0x9a7e, 0xb18e, 0xc79f, + 0x946f, 0xaa7f, 0xc08f, 0xd69f, 0xa36f, 0xb97f, 0xcf8f, 0xe69f, + 0x3379, 0x4989, 0x5f99, 0x75a9, 0x4279, 0x5889, 0x6e9a, 0x85aa, + 0x517a, 0x688a, 0x7e9a, 0x94aa, 0x617a, 0x778a, 0x8d9a, 0xa3aa, + 0x707a, 0x868b, 0x9c9b, 0xb3ab, 0x7f7b, 0x958b, 0xac9b, 0xc2ab, + 0x8f7b, 0xa58b, 0xbb9b, 0xd1ab, 0x9e7c, 0xb48c, 0xca9c, 0xe1ac, + 0x2e85, 0x4496, 0x5aa6, 0x70b6, 0x3d86, 0x5396, 0x69a6, 0x80b6, + 0x4c86, 0x6396, 0x79a6, 0x8fb7, 0x5c87, 0x7297, 0x88a7, 0x9eb7, + 0x6b87, 0x8197, 0x97a7, 0xaeb7, 0x7a87, 0x9097, 0xa7a8, 0xbdb8, + 0x8a88, 0xa098, 0xb6a8, 0xccb8, 0x9988, 0xaf98, 0xc5a8, 0xdcb8, + 0x2992, 0x3fa2, 0x55b2, 0x6bc2, 0x3892, 0x4ea3, 0x64b3, 0x7bc3, + 0x4793, 0x5da3, 0x74b3, 0x8ac3, 0x5793, 0x6da3, 0x83b3, 0x99c3, + 0x6694, 0x7ca4, 0x92b4, 0xa9c4, 0x7594, 0x8ba4, 0xa2b4, 0xb8c4, + 0x8494, 0x9ba4, 0xb1b4, 0xc7c5, 0x9495, 0xaaa5, 0xc0b5, 0xd7c5, + 0x249f, 0x3aaf, 0x50bf, 0x66cf, 0x339f, 0x49af, 0x5fbf, 0x76cf, + 0x429f, 0x58af, 0x6fc0, 0x85d0, 0x52a0, 0x68b0, 0x7ec0, 0x94d0, + 0x61a0, 0x77b0, 0x8dc0, 0xa4d0, 0x70a0, 0x86b1, 0x9dc1, 0xb3d1, + 0x7fa1, 0x96b1, 0xacc1, 0xc2d1, 0x8fa1, 0xa5b1, 0xbbc1, 0xd1d2}, + {0x4747, 0x3c40, 0x3038, 0x2531, 0x4e5e, 0x4356, 0x384f, 0x2c48, + 0x5574, 0x4a6d, 0x3f66, 0x345f, 0x5d8b, 0x5184, 0x467d, 0x3b76, + 0x64a2, 0x599b, 0x4e93, 0x428c, 0x6bb9, 0x60b1, 0x55aa, 0x4aa3, + 0x72cf, 0x67c8, 0x5cc1, 0x51ba, 0x7ae6, 0x6fdf, 0x63d8, 0x58d1, + 0x5847, 0x4d40, 0x4239, 0x3731, 0x5f5e, 0x5456, 0x494f, 0x3e48, + 0x6774, 0x5b6d, 0x5066, 0x455f, 0x6e8b, 0x6384, 0x587d, 0x4c76, + 0x75a2, 0x6a9b, 0x5f94, 0x548c, 0x7db9, 0x71b2, 0x66aa, 0x5ba3, + 0x84cf, 0x79c8, 0x6dc1, 0x62ba, 0x8be6, 0x80df, 0x75d8, 0x6ad1, + 0x6947, 0x5e40, 0x5339, 0x4832, 0x715e, 0x6657, 0x5a4f, 0x4f48, + 0x7875, 0x6d6d, 0x6266, 0x565f, 0x7f8b, 0x7484, 0x697d, 0x5e76, + 0x87a2, 0x7b9b, 0x7094, 0x658d, 0x8eb9, 0x83b2, 0x77aa, 0x6ca3, + 0x95d0, 0x8ac8, 0x7fc1, 0x74ba, 0x9ce6, 0x91df, 0x86d8, 0x7bd1, + 0x7b47, 0x7040, 0x6439, 0x5932, 0x825e, 0x7757, 0x6c50, 0x6048, + 0x8975, 0x7e6e, 0x7366, 0x685f, 0x918b, 0x8584, 0x7a7d, 0x6f76, + 0x98a2, 0x8d9b, 0x8294, 0x768d, 0x9fb9, 0x94b2, 0x89ab, 0x7ea3, + 0xa6d0, 0x9bc9, 0x90c1, 0x85ba, 0xaee6, 0xa3df, 0x97d8, 0x8cd1, + 0x8c47, 0x8140, 0x7639, 0x6a32, 0x935e, 0x8857, 0x7d50, 0x7249, + 0x9b75, 0x8f6e, 0x8466, 0x795f, 0xa28c, 0x9784, 0x8c7d, 0x8076, + 0xa9a2, 0x9e9b, 0x9394, 0x888d, 0xb1b9, 0xa5b2, 0x9aab, 0x8fa4, + 0xb8d0, 0xadc9, 0xa1c2, 0x96ba, 0xbfe7, 0xb4df, 0xa9d8, 0x9ed1, + 0x9d47, 0x9240, 0x8739, 0x7c32, 0xa55e, 0x9957, 0x8e50, 0x8349, + 0xac75, 0xa16e, 0x9667, 0x8a5f, 0xb38c, 0xa885, 0x9d7d, 0x9276, + 0xbba2, 0xaf9b, 0xa494, 0x998d, 0xc2b9, 0xb7b2, 0xabab, 0xa0a4, + 0xc9d0, 0xbec9, 0xb3c2, 0xa8ba, 0xd0e7, 0xc5e0, 0xbad8, 0xafd1, + 0xaf48, 0xa440, 0x9839, 0x8d32, 0xb65e, 0xab57, 0xa050, 0x9449, + 0xbd75, 0xb26e, 0xa767, 0x9c60, 0xc58c, 0xb985, 0xae7d, 0xa376, + 0xcca3, 0xc19b, 0xb594, 0xaa8d, 0xd3b9, 0xc8b2, 0xbdab, 0xb2a4, + 0xdad0, 0xcfc9, 0xc4c2, 0xb9bb, 0xe2e7, 0xd7e0, 0xcbd9, 0xc0d1, + 0xc048, 0xb541, 0xaa39, 0x9e32, 0xc75e, 0xbc57, 0xb150, 0xa649, + 0xcf75, 0xc36e, 0xb867, 0xad60, 0xd68c, 0xcb85, 0xc07e, 0xb476, + 0xdda3, 0xd29c, 0xc794, 0xbc8d, 0xe4b9, 0xd9b2, 0xceab, 0xc3a4, + 0xecd0, 0xe1c9, 0xd5c2, 0xcabb, 0xf3e7, 0xe8e0, 0xddd9, 0xd2d1}, + {0x4747, 0x5b59, 0x706c, 0x847e, 0x5848, 0x6c5a, 0x806d, 0x957f, + 0x6849, 0x7d5b, 0x916e, 0xa680, 0x794a, 0x8e5c, 0xa26f, 0xb781, + 0x8a4b, 0x9f5d, 0xb370, 0xc782, 0x9b4b, 0xaf5e, 0xc470, 0xd883, + 0xac4c, 0xc05f, 0xd571, 0xe984, 0xbd4d, 0xd160, 0xe672, 0xfa85, + 0x4152, 0x5564, 0x6a77, 0x7e89, 0x5253, 0x6665, 0x7b78, 0x8f8a, + 0x6354, 0x7766, 0x8c79, 0xa08b, 0x7455, 0x8867, 0x9c7a, 0xb18c, + 0x8455, 0x9968, 0xad7a, 0xc28d, 0x9556, 0xaa69, 0xbe7b, 0xd38e, + 0xa657, 0xbb6a, 0xcf7c, 0xe38f, 0xb758, 0xcb6b, 0xe07d, 0xf490, + 0x3b5d, 0x506f, 0x6482, 0x7894, 0x4c5e, 0x6070, 0x7583, 0x8995, + 0x5d5f, 0x7171, 0x8684, 0x9a96, 0x6e5f, 0x8272, 0x9784, 0xab97, + 0x7f60, 0x9373, 0xa785, 0xbc98, 0x9061, 0xa474, 0xb886, 0xcd99, + 0xa062, 0xb575, 0xc987, 0xde9a, 0xb163, 0xc676, 0xda88, 0xee9b, + 0x3568, 0x4a7a, 0x5e8d, 0x739f, 0x4669, 0x5b7b, 0x6f8e, 0x83a0, + 0x5769, 0x6c7c, 0x808e, 0x94a1, 0x686a, 0x7c7d, 0x918f, 0xa5a2, + 0x796b, 0x8d7e, 0xa290, 0xb6a3, 0x8a6c, 0x9e7f, 0xb391, 0xc7a4, + 0x9b6d, 0xaf80, 0xc392, 0xd8a5, 0xab6e, 0xc081, 0xd493, 0xe9a6, + 0x3073, 0x4485, 0x5898, 0x6daa, 0x4073, 0x5586, 0x6998, 0x7eab, + 0x5174, 0x6687, 0x7a99, 0x8fac, 0x6275, 0x7788, 0x8b9a, 0x9fad, + 0x7376, 0x8789, 0x9c9b, 0xb0ae, 0x8477, 0x988a, 0xad9c, 0xc1af, + 0x9578, 0xa98b, 0xbe9d, 0xd2b0, 0xa679, 0xba8c, 0xce9e, 0xe3b1, + 0x2a7d, 0x3e90, 0x53a2, 0x67b5, 0x3b7e, 0x4f91, 0x63a3, 0x78b6, + 0x4c7f, 0x6092, 0x74a4, 0x89b7, 0x5c80, 0x7193, 0x85a5, 0x9ab8, + 0x6d81, 0x8294, 0x96a6, 0xaab9, 0x7e82, 0x9395, 0xa7a7, 0xbbba, + 0x8f83, 0xa396, 0xb8a8, 0xccbb, 0xa084, 0xb497, 0xc9a9, 0xddbc, + 0x2488, 0x389b, 0x4dad, 0x61c0, 0x3589, 0x499c, 0x5eae, 0x72c1, + 0x468a, 0x5a9d, 0x6faf, 0x83c2, 0x578b, 0x6b9e, 0x7fb0, 0x94c3, + 0x678c, 0x7c9f, 0x90b1, 0xa5c4, 0x788d, 0x8da0, 0xa1b2, 0xb6c5, + 0x898e, 0x9ea1, 0xb2b3, 0xc6c6, 0x9a8f, 0xaea2, 0xc3b4, 0xd7c7, + 0x1e93, 0x33a6, 0x47b8, 0x5bcb, 0x2f94, 0x43a7, 0x58b9, 0x6ccc, + 0x4095, 0x54a8, 0x69ba, 0x7dcd, 0x5196, 0x65a9, 0x7abb, 0x8ece, + 0x6297, 0x76aa, 0x8abc, 0x9fcf, 0x7398, 0x87ab, 0x9bbd, 0xb0d0, + 0x8399, 0x98ac, 0xacbe, 0xc1d1, 0x949a, 0xa9ad, 0xbdbf, 0xd1d2}, + {0x4747, 0x3e3d, 0x3434, 0x2b2a, 0x4d5d, 0x4353, 0x3a4a, 0x3141, + 0x5273, 0x4969, 0x4060, 0x3757, 0x5889, 0x4f80, 0x4676, 0x3d6d, + 0x5e9f, 0x5596, 0x4b8c, 0x4283, 0x64b5, 0x5aac, 0x51a2, 0x4899, + 0x69cb, 0x60c2, 0x57b8, 0x4eaf, 0x6fe1, 0x66d8, 0x5dce, 0x54c5, + 0x5949, 0x503f, 0x4636, 0x3d2c, 0x5f5f, 0x5555, 0x4c4c, 0x4342, + 0x6475, 0x5b6b, 0x5262, 0x4958, 0x6a8b, 0x6181, 0x5878, 0x4e6f, + 0x70a1, 0x6797, 0x5d8e, 0x5485, 0x76b7, 0x6cad, 0x63a4, 0x5a9b, + 0x7bcd, 0x72c4, 0x69ba, 0x60b1, 0x81e3, 0x78da, 0x6fd0, 0x66c7, + 0x6b4a, 0x6241, 0x5837, 0x4f2e, 0x7060, 0x6757, 0x5e4e, 0x5544, + 0x7676, 0x6d6d, 0x6464, 0x5b5a, 0x7c8d, 0x7383, 0x6a7a, 0x6070, + 0x82a3, 0x7999, 0x6f90, 0x6686, 0x88b9, 0x7eaf, 0x75a6, 0x6c9c, + 0x8dcf, 0x84c5, 0x7bbc, 0x72b3, 0x93e5, 0x8adb, 0x81d2, 0x78c9, + 0x7d4c, 0x7343, 0x6a39, 0x6130, 0x8262, 0x7959, 0x704f, 0x6746, + 0x8878, 0x7f6f, 0x7665, 0x6d5c, 0x8e8e, 0x8585, 0x7c7b, 0x7272, + 0x94a4, 0x8b9b, 0x8192, 0x7888, 0x9aba, 0x90b1, 0x87a8, 0x7e9e, + 0x9fd1, 0x96c7, 0x8dbe, 0x84b4, 0xa5e7, 0x9cdd, 0x93d4, 0x8aca, + 0x8f4e, 0x8544, 0x7c3b, 0x7332, 0x9464, 0x8b5b, 0x8251, 0x7948, + 0x9a7a, 0x9171, 0x8867, 0x7f5e, 0xa090, 0x9787, 0x8e7d, 0x8474, + 0xa6a6, 0x9d9d, 0x9393, 0x8a8a, 0xacbc, 0xa2b3, 0x99a9, 0x90a0, + 0xb1d2, 0xa8c9, 0x9fbf, 0x96b6, 0xb7e8, 0xaedf, 0xa5d6, 0x9ccc, + 0xa150, 0x9746, 0x8e3d, 0x8533, 0xa666, 0x9d5c, 0x9453, 0x8b49, + 0xac7c, 0xa372, 0x9a69, 0x9160, 0xb292, 0xa988, 0xa07f, 0x9676, + 0xb8a8, 0xaf9f, 0xa595, 0x9c8c, 0xbebe, 0xb4b5, 0xabab, 0xa2a2, + 0xc3d4, 0xbacb, 0xb1c1, 0xa8b8, 0xc9ea, 0xc0e1, 0xb7d7, 0xaece, + 0xb351, 0xa948, 0xa03f, 0x9735, 0xb868, 0xaf5e, 0xa655, 0x9d4b, + 0xbe7e, 0xb574, 0xac6b, 0xa361, 0xc494, 0xbb8a, 0xb281, 0xa877, + 0xcaaa, 0xc1a0, 0xb797, 0xae8d, 0xd0c0, 0xc6b6, 0xbdad, 0xb4a4, + 0xd5d6, 0xcccc, 0xc3c3, 0xbaba, 0xdbec, 0xd2e3, 0xc9d9, 0xc0d0, + 0xc553, 0xbb4a, 0xb240, 0xa937, 0xca69, 0xc160, 0xb856, 0xaf4d, + 0xd07f, 0xc776, 0xbe6d, 0xb563, 0xd695, 0xcd8c, 0xc483, 0xba79, + 0xdcac, 0xd3a2, 0xc999, 0xc08f, 0xe2c2, 0xd8b8, 0xcfaf, 0xc6a5, + 0xe7d8, 0xdece, 0xd5c5, 0xccbb, 0xedee, 0xe4e4, 0xdbdb, 0xd2d1}, + {0x4747, 0x595b, 0x6b70, 0x7e85, 0x5948, 0x6b5d, 0x7e72, 0x9086, + 0x6b4a, 0x7e5f, 0x9073, 0xa288, 0x7e4c, 0x9061, 0xa275, 0xb48a, + 0x904e, 0xa262, 0xb577, 0xc78c, 0xa24f, 0xb564, 0xc779, 0xd98d, + 0xb551, 0xc766, 0xd97a, 0xeb8f, 0xc753, 0xd968, 0xec7c, 0xfe91, + 0x4050, 0x5365, 0x6579, 0x778e, 0x5352, 0x6566, 0x777b, 0x8a90, + 0x6553, 0x7768, 0x8a7d, 0x9c91, 0x7755, 0x8a6a, 0x9c7e, 0xae93, + 0x8a57, 0x9c6c, 0xae80, 0xc095, 0x9c59, 0xae6d, 0xc182, 0xd397, + 0xae5a, 0xc16f, 0xd384, 0xe598, 0xc15c, 0xd371, 0xe585, 0xf79a, + 0x3a59, 0x4c6e, 0x5f82, 0x7197, 0x4c5b, 0x5f70, 0x7184, 0x8399, + 0x5f5d, 0x7171, 0x8386, 0x969b, 0x715e, 0x8373, 0x9688, 0xa89c, + 0x8360, 0x9675, 0xa889, 0xba9e, 0x9662, 0xa877, 0xba8b, 0xcca0, + 0xa864, 0xba78, 0xcd8d, 0xdfa2, 0xba65, 0xcd7a, 0xdf8f, 0xf1a3, + 0x3463, 0x4677, 0x588c, 0x6ba0, 0x4664, 0x5879, 0x6b8d, 0x7da2, + 0x5866, 0x6b7b, 0x7d8f, 0x8fa4, 0x6b68, 0x7d7c, 0x8f91, 0xa2a6, + 0x7d69, 0x8f7e, 0xa293, 0xb4a7, 0x8f6b, 0xa280, 0xb494, 0xc6a9, + 0xa26d, 0xb482, 0xc696, 0xd8ab, 0xb46f, 0xc683, 0xd998, 0xebac, + 0x2d6c, 0x4080, 0x5295, 0x64aa, 0x406d, 0x5282, 0x6497, 0x77ab, + 0x526f, 0x6484, 0x7798, 0x89ad, 0x6471, 0x7786, 0x899a, 0x9baf, + 0x7773, 0x8987, 0x9b9c, 0xaeb1, 0x8974, 0x9b89, 0xae9e, 0xc0b2, + 0x9b76, 0xae8b, 0xc09f, 0xd2b4, 0xae78, 0xc08d, 0xd2a1, 0xe4b6, + 0x2775, 0x398a, 0x4c9e, 0x5eb3, 0x3977, 0x4c8b, 0x5ea0, 0x70b5, + 0x4c78, 0x5e8d, 0x70a2, 0x83b6, 0x5e7a, 0x708f, 0x83a3, 0x95b8, + 0x707c, 0x8391, 0x95a5, 0xa7ba, 0x837e, 0x9592, 0xa7a7, 0xbabc, + 0x957f, 0xa794, 0xbaa9, 0xccbd, 0xa781, 0xba96, 0xccaa, 0xdebf, + 0x217e, 0x3393, 0x45a7, 0x58bc, 0x3380, 0x4595, 0x58a9, 0x6abe, + 0x4582, 0x5896, 0x6aab, 0x7cc0, 0x5883, 0x6a98, 0x7cad, 0x8fc1, + 0x6a85, 0x7c9a, 0x8fae, 0xa1c3, 0x7c87, 0x8f9c, 0xa1b0, 0xb3c5, + 0x8f89, 0xa19d, 0xb3b2, 0xc6c7, 0xa18a, 0xb39f, 0xc6b4, 0xd8c8, + 0x1a88, 0x2d9c, 0x3fb1, 0x51c5, 0x2d89, 0x3f9e, 0x51b2, 0x64c7, + 0x3f8b, 0x51a0, 0x64b4, 0x76c9, 0x518d, 0x64a1, 0x76b6, 0x88cb, + 0x648e, 0x76a3, 0x88b8, 0x9bcc, 0x7690, 0x88a5, 0x9bb9, 0xadce, + 0x8892, 0x9ba7, 0xadbb, 0xbfd0, 0x9b94, 0xada8, 0xbfbd, 0xd1d2}, + {0x4747, 0x403b, 0x3930, 0x3225, 0x4b5c, 0x4451, 0x3d45, 0x363a, + 0x5071, 0x4966, 0x425a, 0x3b4f, 0x5486, 0x4d7b, 0x4670, 0x3f64, + 0x589b, 0x5190, 0x4b85, 0x4479, 0x5db1, 0x56a5, 0x4f9a, 0x488f, + 0x61c6, 0x5aba, 0x53af, 0x4ca4, 0x66db, 0x5fd0, 0x58c4, 0x51b9, + 0x594a, 0x523f, 0x4b34, 0x4428, 0x5e5f, 0x5754, 0x5049, 0x493d, + 0x6275, 0x5b69, 0x545e, 0x4d52, 0x668a, 0x5f7e, 0x5873, 0x5268, + 0x6b9f, 0x6494, 0x5d88, 0x567d, 0x6fb4, 0x68a9, 0x619d, 0x5a92, + 0x74c9, 0x6dbe, 0x66b3, 0x5fa7, 0x78df, 0x71d3, 0x6ac8, 0x63bc, + 0x6c4e, 0x6542, 0x5e37, 0x572c, 0x7063, 0x6958, 0x624c, 0x5b41, + 0x7478, 0x6d6d, 0x6661, 0x6056, 0x798d, 0x7282, 0x6b77, 0x646b, + 0x7da3, 0x7697, 0x6f8c, 0x6880, 0x81b8, 0x7bac, 0x74a1, 0x6d96, + 0x86cd, 0x7fc1, 0x78b6, 0x71ab, 0x8ae2, 0x83d7, 0x7ccb, 0x76c0, + 0x7e51, 0x7746, 0x703b, 0x692f, 0x8266, 0x7b5b, 0x7450, 0x6e44, + 0x877c, 0x8070, 0x7965, 0x725a, 0x8b91, 0x8485, 0x7d7a, 0x766f, + 0x8fa6, 0x899b, 0x828f, 0x7b84, 0x94bb, 0x8db0, 0x86a4, 0x7f99, + 0x98d0, 0x91c5, 0x8aba, 0x84ae, 0x9de6, 0x96da, 0x8fcf, 0x88c3, + 0x9055, 0x8949, 0x823e, 0x7c33, 0x956a, 0x8e5f, 0x8753, 0x8048, + 0x997f, 0x9274, 0x8b68, 0x845d, 0x9d94, 0x9789, 0x907e, 0x8972, + 0xa2aa, 0x9b9e, 0x9493, 0x8d87, 0xa6bf, 0x9fb3, 0x98a8, 0x929d, + 0xabd4, 0xa4c9, 0x9dbd, 0x96b2, 0xafe9, 0xa8de, 0xa1d2, 0x9ac7, + 0xa358, 0x9c4d, 0x9542, 0x8e36, 0xa76e, 0xa062, 0x9957, 0x924b, + 0xab83, 0xa577, 0x9e6c, 0x9761, 0xb098, 0xa98c, 0xa281, 0x9b76, + 0xb4ad, 0xada2, 0xa696, 0xa08b, 0xb9c2, 0xb2b7, 0xabab, 0xa4a0, + 0xbdd7, 0xb6cc, 0xafc1, 0xa8b5, 0xc1ed, 0xbbe1, 0xb4d6, 0xadca, + 0xb55c, 0xae50, 0xa745, 0xa03a, 0xb971, 0xb366, 0xac5a, 0xa54f, + 0xbe86, 0xb77b, 0xb06f, 0xa964, 0xc29b, 0xbb90, 0xb485, 0xae79, + 0xc7b1, 0xc0a5, 0xb99a, 0xb28e, 0xcbc6, 0xc4ba, 0xbdaf, 0xb6a4, + 0xcfdb, 0xc9d0, 0xc2c4, 0xbbb9, 0xd4f0, 0xcde5, 0xc6d9, 0xbfce, + 0xc75f, 0xc154, 0xba49, 0xb33d, 0xcc75, 0xc569, 0xbe5e, 0xb752, + 0xd08a, 0xc97e, 0xc273, 0xbc68, 0xd59f, 0xce94, 0xc788, 0xc07d, + 0xd9b4, 0xd2a9, 0xcb9d, 0xc492, 0xddc9, 0xd7be, 0xd0b3, 0xc9a7, + 0xe2de, 0xdbd3, 0xd4c8, 0xcdbc, 0xe6f4, 0xdfe8, 0xd8dd, 0xd2d1}, + {0x4747, 0x575d, 0x6674, 0x768a, 0x5a49, 0x6a60, 0x7a76, 0x8a8d, + 0x6e4c, 0x7e63, 0x8e79, 0x9e8f, 0x824f, 0x9265, 0xa17c, 0xb192, + 0x9552, 0xa568, 0xb57e, 0xc595, 0xa954, 0xb96b, 0xc981, 0xd898, + 0xbd57, 0xcc6e, 0xdc84, 0xec9a, 0xd05a, 0xe070, 0xf087, 0xff9d, + 0x404e, 0x5065, 0x607b, 0x7091, 0x5451, 0x6467, 0x737e, 0x8394, + 0x6754, 0x776a, 0x8781, 0x9797, 0x7b56, 0x8b6d, 0x9b83, 0xab9a, + 0x8f59, 0x9f70, 0xae86, 0xbe9c, 0xa25c, 0xb272, 0xc289, 0xd29f, + 0xb65f, 0xc675, 0xd68b, 0xe6a2, 0xca61, 0xd978, 0xe98e, 0xf9a5, + 0x3a56, 0x496c, 0x5983, 0x6999, 0x4d58, 0x5d6f, 0x6d85, 0x7d9c, + 0x615b, 0x7172, 0x8188, 0x909e, 0x745e, 0x8474, 0x948b, 0xa4a1, + 0x8861, 0x9877, 0xa88d, 0xb8a4, 0x9c63, 0xac7a, 0xbb90, 0xcba7, + 0xaf66, 0xbf7d, 0xcf93, 0xdfa9, 0xc369, 0xd37f, 0xe396, 0xf3ac, + 0x335d, 0x4374, 0x538a, 0x62a0, 0x4760, 0x5676, 0x668d, 0x76a3, + 0x5a63, 0x6a79, 0x7a8f, 0x8aa6, 0x6e65, 0x7e7c, 0x8e92, 0x9da9, + 0x8168, 0x917f, 0xa195, 0xb1ab, 0x956b, 0xa581, 0xb598, 0xc5ae, + 0xa96e, 0xb984, 0xc89a, 0xd8b1, 0xbc70, 0xcc87, 0xdc9d, 0xecb4, + 0x2c65, 0x3c7b, 0x4c92, 0x5ca8, 0x4067, 0x507e, 0x6094, 0x70ab, + 0x546a, 0x6381, 0x7397, 0x83ad, 0x676d, 0x7783, 0x879a, 0x97b0, + 0x7b70, 0x8b86, 0x9b9c, 0xaab3, 0x8f72, 0x9e89, 0xae9f, 0xbeb6, + 0xa275, 0xb28b, 0xc2a2, 0xd2b8, 0xb678, 0xc68e, 0xd5a5, 0xe5bb, + 0x266c, 0x3683, 0x4599, 0x55af, 0x396f, 0x4985, 0x599c, 0x69b2, + 0x4d72, 0x5d88, 0x6d9e, 0x7db5, 0x6174, 0x708b, 0x80a1, 0x90b8, + 0x7477, 0x848e, 0x94a4, 0xa4ba, 0x887a, 0x9890, 0xa8a7, 0xb7bd, + 0x9c7d, 0xab93, 0xbba9, 0xcbc0, 0xaf7f, 0xbf96, 0xcfac, 0xdfc3, + 0x1f74, 0x2f8a, 0x3fa1, 0x4fb7, 0x3376, 0x438d, 0x52a3, 0x62ba, + 0x4679, 0x5690, 0x66a6, 0x76bc, 0x5a7c, 0x6a92, 0x7aa9, 0x8abf, + 0x6e7f, 0x7d95, 0x8dab, 0x9dc2, 0x8181, 0x9198, 0xa1ae, 0xb1c5, + 0x9584, 0xa59a, 0xb5b1, 0xc4c7, 0xa987, 0xb89d, 0xc8b4, 0xd8ca, + 0x187b, 0x2892, 0x38a8, 0x48be, 0x2c7e, 0x3c94, 0x4cab, 0x5cc1, + 0x4081, 0x5097, 0x5fad, 0x6fc4, 0x5383, 0x639a, 0x73b0, 0x83c7, + 0x6786, 0x779c, 0x87b3, 0x97c9, 0x7b89, 0x8b9f, 0x9ab6, 0xaacc, + 0x8e8c, 0x9ea2, 0xaeb8, 0xbecf, 0xa28e, 0xb2a5, 0xc2bb, 0xd1d2}, + {0x4747, 0x423a, 0x3e2d, 0x3a20, 0x4a5b, 0x464e, 0x4141, 0x3d34, + 0x4d6f, 0x4962, 0x4455, 0x4048, 0x5083, 0x4c76, 0x4769, 0x435c, + 0x5397, 0x4f8a, 0x4b7d, 0x4670, 0x57ab, 0x529e, 0x4e91, 0x4984, + 0x5abf, 0x55b2, 0x51a5, 0x4d98, 0x5dd3, 0x58c6, 0x54b9, 0x50ac, + 0x594c, 0x553f, 0x5132, 0x4c25, 0x5c60, 0x5853, 0x5446, 0x4f39, + 0x6074, 0x5b67, 0x575a, 0x524d, 0x6388, 0x5e7b, 0x5a6e, 0x5661, + 0x669c, 0x628f, 0x5d82, 0x5975, 0x69b1, 0x65a4, 0x6097, 0x5c8a, + 0x6cc5, 0x68b8, 0x63ab, 0x5f9e, 0x6fd9, 0x6bcc, 0x67bf, 0x62b2, + 0x6c51, 0x6744, 0x6337, 0x5f2a, 0x6f65, 0x6b58, 0x664b, 0x623e, + 0x727a, 0x6e6d, 0x6960, 0x6553, 0x758e, 0x7181, 0x6d74, 0x6867, + 0x78a2, 0x7495, 0x7088, 0x6b7b, 0x7cb6, 0x77a9, 0x739c, 0x6e8f, + 0x7fca, 0x7abd, 0x76b0, 0x72a3, 0x82de, 0x7ed1, 0x79c4, 0x75b7, + 0x7e57, 0x7a4a, 0x763d, 0x7130, 0x826b, 0x7d5e, 0x7951, 0x7444, + 0x857f, 0x8072, 0x7c65, 0x7858, 0x8893, 0x8386, 0x7f79, 0x7b6c, + 0x8ba7, 0x879a, 0x828d, 0x7e80, 0x8ebb, 0x8aae, 0x85a1, 0x8194, + 0x91cf, 0x8dc2, 0x89b5, 0x84a8, 0x94e3, 0x90d6, 0x8cc9, 0x87bc, + 0x915c, 0x8d4f, 0x8842, 0x8435, 0x9470, 0x9063, 0x8b56, 0x8749, + 0x9784, 0x9377, 0x8e6a, 0x8a5d, 0x9a98, 0x968b, 0x927e, 0x8d71, + 0x9eac, 0x999f, 0x9592, 0x9085, 0xa1c0, 0x9cb3, 0x98a6, 0x9499, + 0xa4d5, 0x9fc8, 0x9bbb, 0x97ae, 0xa7e9, 0xa3dc, 0x9ecf, 0x9ac2, + 0xa361, 0x9f54, 0x9b47, 0x963a, 0xa775, 0xa268, 0x9e5b, 0x994e, + 0xaa89, 0xa57c, 0xa16f, 0x9d62, 0xad9e, 0xa991, 0xa484, 0xa077, + 0xb0b2, 0xaca5, 0xa798, 0xa38b, 0xb3c6, 0xafb9, 0xaaac, 0xa69f, + 0xb6da, 0xb2cd, 0xaec0, 0xa9b3, 0xbaee, 0xb5e1, 0xb1d4, 0xacc7, + 0xb667, 0xb25a, 0xad4d, 0xa940, 0xb97b, 0xb56e, 0xb061, 0xac54, + 0xbc8f, 0xb882, 0xb475, 0xaf68, 0xbfa3, 0xbb96, 0xb789, 0xb27c, + 0xc3b7, 0xbeaa, 0xba9d, 0xb590, 0xc6cb, 0xc1be, 0xbdb1, 0xb9a4, + 0xc9df, 0xc5d2, 0xc0c5, 0xbcb8, 0xccf3, 0xc8e6, 0xc3d9, 0xbfcc, + 0xc96c, 0xc45f, 0xc052, 0xbb45, 0xcc80, 0xc773, 0xc366, 0xbf59, + 0xcf94, 0xca87, 0xc67a, 0xc26d, 0xd2a8, 0xce9b, 0xc98e, 0xc581, + 0xd5bc, 0xd1af, 0xcca2, 0xc895, 0xd8d0, 0xd4c3, 0xd0b6, 0xcba9, + 0xdbe4, 0xd7d7, 0xd3ca, 0xcebd, 0xdff9, 0xdaec, 0xd6df, 0xd2d1}, + {0x4747, 0x545f, 0x6176, 0x6e8e, 0x5c4b, 0x6963, 0x767a, 0x8392, + 0x704f, 0x7e66, 0x8b7e, 0x9896, 0x8552, 0x926a, 0xa082, 0xad9a, + 0x9a56, 0xa76e, 0xb486, 0xc29e, 0xaf5a, 0xbc72, 0xc98a, 0xd6a2, + 0xc35e, 0xd176, 0xde8e, 0xeba6, 0xd862, 0xe67a, 0xf392, 0xffaa, + 0x404c, 0x4d64, 0x5b7c, 0x6894, 0x5550, 0x6268, 0x6f80, 0x7d98, + 0x6a54, 0x776c, 0x8484, 0x919c, 0x7e58, 0x8c70, 0x9988, 0xa6a0, + 0x935c, 0xa074, 0xae8c, 0xbba4, 0xa860, 0xb578, 0xc390, 0xd0a8, + 0xbd64, 0xca7c, 0xd794, 0xe5ab, 0xd268, 0xdf80, 0xec97, 0xf9af, + 0x3952, 0x476a, 0x5482, 0x619a, 0x4e56, 0x5b6e, 0x6986, 0x769e, + 0x635a, 0x7072, 0x7e8a, 0x8ba2, 0x785e, 0x8576, 0x928e, 0xa0a5, + 0x8d62, 0x9a7a, 0xa791, 0xb4a9, 0xa166, 0xaf7e, 0xbc95, 0xc9ad, + 0xb66a, 0xc381, 0xd199, 0xdeb1, 0xcb6d, 0xd885, 0xe59d, 0xf3b5, + 0x3358, 0x4070, 0x4d88, 0x5b9f, 0x485c, 0x5574, 0x628b, 0x6fa3, + 0x5c60, 0x6a77, 0x778f, 0x84a7, 0x7164, 0x7e7b, 0x8c93, 0x99ab, + 0x8667, 0x937f, 0xa097, 0xaeaf, 0x9b6b, 0xa883, 0xb59b, 0xc2b3, + 0xb06f, 0xbd87, 0xca9f, 0xd7b7, 0xc473, 0xd28b, 0xdfa3, 0xecbb, + 0x2c5e, 0x3975, 0x478d, 0x54a5, 0x4161, 0x4e79, 0x5b91, 0x69a9, + 0x5665, 0x637d, 0x7095, 0x7dad, 0x6b69, 0x7881, 0x8599, 0x92b1, + 0x7f6d, 0x8d85, 0x9a9d, 0xa7b5, 0x9471, 0xa189, 0xafa1, 0xbcb9, + 0xa975, 0xb68d, 0xc3a5, 0xd1bd, 0xbe79, 0xcb91, 0xd8a9, 0xe5c0, + 0x2663, 0x337b, 0x4093, 0x4dab, 0x3a67, 0x487f, 0x5597, 0x62af, + 0x4f6b, 0x5c83, 0x6a9b, 0x77b3, 0x646f, 0x7187, 0x7e9f, 0x8cb6, + 0x7973, 0x868b, 0x93a3, 0xa0ba, 0x8e77, 0x9b8f, 0xa8a6, 0xb5be, + 0xa27b, 0xb093, 0xbdaa, 0xcac2, 0xb77f, 0xc496, 0xd2ae, 0xdfc6, + 0x1f69, 0x2c81, 0x3999, 0x47b0, 0x346d, 0x4185, 0x4e9d, 0x5bb4, + 0x4971, 0x5689, 0x63a0, 0x70b8, 0x5d75, 0x6b8c, 0x78a4, 0x85bc, + 0x7279, 0x7f90, 0x8da8, 0x9ac0, 0x877c, 0x9494, 0xa1ac, 0xafc4, + 0x9c80, 0xa998, 0xb6b0, 0xc3c8, 0xb084, 0xbe9c, 0xcbb4, 0xd8cc, + 0x186f, 0x2686, 0x339e, 0x40b6, 0x2d73, 0x3a8a, 0x48a2, 0x55ba, + 0x4276, 0x4f8e, 0x5ca6, 0x6abe, 0x577a, 0x6492, 0x71aa, 0x7ec2, + 0x6b7e, 0x7996, 0x86ae, 0x93c6, 0x8082, 0x8d9a, 0x9bb2, 0xa8ca, + 0x9586, 0xa29e, 0xafb6, 0xbdce, 0xaa8a, 0xb7a2, 0xc4ba, 0xd1d2}, + {0x4747, 0x4538, 0x432a, 0x421c, 0x495a, 0x474b, 0x463d, 0x442f, + 0x4b6c, 0x495e, 0x4850, 0x4642, 0x4d7f, 0x4b71, 0x4a63, 0x4854, + 0x4f92, 0x4d84, 0x4c76, 0x4a67, 0x51a5, 0x5097, 0x4e88, 0x4c7a, + 0x53b8, 0x52a9, 0x509b, 0x4e8d, 0x55cb, 0x54bc, 0x52ae, 0x50a0, + 0x594e, 0x5840, 0x5631, 0x5423, 0x5b61, 0x5a52, 0x5844, 0x5636, + 0x5d74, 0x5c65, 0x5a57, 0x5849, 0x5f86, 0x5e78, 0x5c6a, 0x5a5c, + 0x6299, 0x608b, 0x5e7d, 0x5d6e, 0x64ac, 0x629e, 0x6090, 0x5f81, + 0x66bf, 0x64b1, 0x62a2, 0x6194, 0x68d2, 0x66c3, 0x64b5, 0x63a7, + 0x6c55, 0x6a47, 0x6838, 0x672a, 0x6e68, 0x6c5a, 0x6a4b, 0x693d, + 0x707b, 0x6e6c, 0x6c5e, 0x6b50, 0x728d, 0x707f, 0x6f71, 0x6d63, + 0x74a0, 0x7292, 0x7184, 0x6f76, 0x76b3, 0x74a5, 0x7397, 0x7188, + 0x78c6, 0x77b8, 0x75a9, 0x739b, 0x7ad9, 0x79cb, 0x77bc, 0x75ae, + 0x7e5c, 0x7c4e, 0x7b40, 0x7931, 0x806f, 0x7f61, 0x7d52, 0x7b44, + 0x8282, 0x8173, 0x7f65, 0x7d57, 0x8495, 0x8386, 0x8178, 0x7f6a, + 0x86a7, 0x8599, 0x838b, 0x817d, 0x89ba, 0x87ac, 0x859e, 0x848f, + 0x8bcd, 0x89bf, 0x87b1, 0x86a2, 0x8de0, 0x8bd2, 0x89c3, 0x88b5, + 0x9163, 0x8f55, 0x8d47, 0x8c38, 0x9376, 0x9168, 0x8f59, 0x8e4b, + 0x9589, 0x937b, 0x916c, 0x905e, 0x979c, 0x958d, 0x937f, 0x9271, + 0x99ae, 0x97a0, 0x9692, 0x9484, 0x9bc1, 0x99b3, 0x98a5, 0x9697, + 0x9dd4, 0x9bc6, 0x9ab8, 0x98a9, 0x9fe7, 0x9dd9, 0x9cca, 0x9abc, + 0xa36a, 0xa15c, 0xa04e, 0x9e3f, 0xa57d, 0xa36f, 0xa261, 0xa052, + 0xa790, 0xa582, 0xa473, 0xa265, 0xa9a3, 0xa894, 0xa686, 0xa478, + 0xabb6, 0xaaa7, 0xa899, 0xa68b, 0xadc8, 0xacba, 0xaaac, 0xa89e, + 0xb0db, 0xaecd, 0xacbf, 0xabb0, 0xb2ee, 0xb0e0, 0xaed2, 0xadc3, + 0xb571, 0xb463, 0xb255, 0xb047, 0xb884, 0xb676, 0xb468, 0xb359, + 0xba97, 0xb889, 0xb67a, 0xb56c, 0xbcaa, 0xba9c, 0xb88d, 0xb77f, + 0xbebd, 0xbcae, 0xbaa0, 0xb992, 0xc0d0, 0xbec1, 0xbdb3, 0xbba5, + 0xc2e2, 0xc0d4, 0xbfc6, 0xbdb8, 0xc4f5, 0xc2e7, 0xc1d9, 0xbfca, + 0xc878, 0xc66a, 0xc55c, 0xc34e, 0xca8b, 0xc87d, 0xc76f, 0xc560, + 0xcc9e, 0xca90, 0xc982, 0xc773, 0xceb1, 0xcca3, 0xcb94, 0xc986, + 0xd0c4, 0xcfb6, 0xcda7, 0xcb99, 0xd2d7, 0xd1c8, 0xcfba, 0xcdac, + 0xd4e9, 0xd3db, 0xd1cd, 0xcfbf, 0xd6fc, 0xd5ee, 0xd3e0, 0xd2d1}, + {0x4747, 0x5160, 0x5c79, 0x6691, 0x5d4c, 0x6765, 0x717e, 0x7c97, + 0x7251, 0x7d6a, 0x8783, 0x929c, 0x8856, 0x926f, 0x9d88, 0xa7a1, + 0x9e5c, 0xa875, 0xb38e, 0xbda6, 0xb461, 0xbe7a, 0xc893, 0xd3ac, + 0xc966, 0xd47f, 0xde98, 0xe9b1, 0xdf6b, 0xea84, 0xf49d, 0xfeb6, + 0x404b, 0x4b64, 0x557c, 0x6095, 0x5650, 0x6169, 0x6b82, 0x759b, + 0x6c55, 0x766e, 0x8187, 0x8ba0, 0x825a, 0x8c73, 0x968c, 0xa1a5, + 0x9760, 0xa279, 0xac91, 0xb7aa, 0xad65, 0xb87e, 0xc297, 0xccb0, + 0xc36a, 0xcd83, 0xd89c, 0xe2b5, 0xd96f, 0xe388, 0xeea1, 0xf8ba, + 0x3a4f, 0x4467, 0x4f80, 0x5999, 0x5054, 0x5a6d, 0x6586, 0x6f9f, + 0x6559, 0x7072, 0x7a8b, 0x85a4, 0x7b5e, 0x8677, 0x9090, 0x9aa9, + 0x9164, 0x9b7c, 0xa695, 0xb0ae, 0xa769, 0xb182, 0xbc9b, 0xc6b4, + 0xbd6e, 0xc787, 0xd1a0, 0xdcb9, 0xd273, 0xdd8c, 0xe7a5, 0xf2be, + 0x3452, 0x3e6b, 0x4884, 0x539d, 0x4958, 0x5471, 0x5e8a, 0x69a2, + 0x5f5d, 0x6976, 0x748f, 0x7ea8, 0x7562, 0x7f7b, 0x8a94, 0x94ad, + 0x8b67, 0x9580, 0x9f99, 0xaab2, 0xa06d, 0xab86, 0xb59e, 0xc0b7, + 0xb672, 0xc18b, 0xcba4, 0xd5bd, 0xcc77, 0xd690, 0xe1a9, 0xebc2, + 0x2d56, 0x386f, 0x4288, 0x4ca1, 0x435c, 0x4d75, 0x588d, 0x62a6, + 0x5961, 0x637a, 0x6d93, 0x78ac, 0x6e66, 0x797f, 0x8398, 0x8eb1, + 0x846b, 0x8f84, 0x999d, 0xa3b6, 0x9a71, 0xa489, 0xafa2, 0xb9bb, + 0xb076, 0xba8f, 0xc5a8, 0xcfc1, 0xc57b, 0xd094, 0xdaad, 0xe5c6, + 0x275a, 0x3173, 0x3c8c, 0x46a5, 0x3c60, 0x4778, 0x5191, 0x5caa, + 0x5265, 0x5d7e, 0x6797, 0x72af, 0x686a, 0x7283, 0x7d9c, 0x87b5, + 0x7e6f, 0x8888, 0x93a1, 0x9dba, 0x9474, 0x9e8d, 0xa8a6, 0xb3bf, + 0xa97a, 0xb493, 0xbeac, 0xc9c4, 0xbf7f, 0xc998, 0xd4b1, 0xdeca, + 0x205e, 0x2b77, 0x3590, 0x40a9, 0x3663, 0x407c, 0x4b95, 0x55ae, + 0x4c69, 0x5682, 0x619a, 0x6bb3, 0x626e, 0x6c87, 0x76a0, 0x81b9, + 0x7773, 0x828c, 0x8ca5, 0x97be, 0x8d78, 0x9891, 0xa2aa, 0xacc3, + 0xa37e, 0xad97, 0xb8af, 0xc2c8, 0xb983, 0xc39c, 0xcdb5, 0xd8ce, + 0x1a62, 0x247b, 0x2f94, 0x39ad, 0x3067, 0x3a80, 0x4599, 0x4fb2, + 0x456d, 0x5085, 0x5a9e, 0x65b7, 0x5b72, 0x668b, 0x70a4, 0x7abd, + 0x7177, 0x7b90, 0x86a9, 0x90c2, 0x877c, 0x9195, 0x9cae, 0xa6c7, + 0x9c82, 0xa79a, 0xb1b3, 0xbccc, 0xb287, 0xbda0, 0xc7b9, 0xd1d2}, + {0x4747, 0x4838, 0x4929, 0x4a19, 0x4858, 0x4949, 0x4a3a, 0x4c2b, + 0x496a, 0x4a5a, 0x4c4b, 0x4d3c, 0x4a7b, 0x4c6c, 0x4d5d, 0x4e4e, + 0x4c8c, 0x4d7d, 0x4e6e, 0x4f5f, 0x4d9e, 0x4e8f, 0x4f80, 0x5071, + 0x4eaf, 0x4fa0, 0x5091, 0x5282, 0x4fc1, 0x50b2, 0x52a3, 0x5393, + 0x5950, 0x5a41, 0x5b31, 0x5c22, 0x5a61, 0x5b52, 0x5c43, 0x5e34, + 0x5b72, 0x5c63, 0x5e54, 0x5f45, 0x5c84, 0x5e75, 0x5f66, 0x6057, + 0x5e95, 0x5f86, 0x6077, 0x6168, 0x5fa7, 0x6098, 0x6189, 0x6379, + 0x60b8, 0x61a9, 0x639a, 0x648b, 0x61ca, 0x63bb, 0x64ab, 0x659c, + 0x6b58, 0x6c49, 0x6d3a, 0x6f2b, 0x6c6a, 0x6d5b, 0x6f4c, 0x703d, + 0x6d7b, 0x6f6c, 0x705d, 0x714e, 0x6f8d, 0x707e, 0x716f, 0x725f, + 0x709e, 0x718f, 0x7280, 0x7371, 0x71b0, 0x72a1, 0x7391, 0x7582, + 0x72c1, 0x73b2, 0x75a3, 0x7694, 0x73d3, 0x75c3, 0x76b4, 0x77a5, + 0x7d61, 0x7e52, 0x7f43, 0x8134, 0x7e73, 0x7f64, 0x8155, 0x8245, + 0x7f84, 0x8175, 0x8266, 0x8357, 0x8196, 0x8287, 0x8377, 0x8468, + 0x82a7, 0x8398, 0x8489, 0x857a, 0x83b9, 0x84a9, 0x869a, 0x878b, + 0x84ca, 0x86bb, 0x87ac, 0x889d, 0x86db, 0x87cc, 0x88bd, 0x89ae, + 0x8f6a, 0x905b, 0x924c, 0x933d, 0x907c, 0x926d, 0x935d, 0x944e, + 0x928d, 0x937e, 0x946f, 0x9560, 0x939f, 0x948f, 0x9580, 0x9671, + 0x94b0, 0x95a1, 0x9692, 0x9883, 0x95c1, 0x96b2, 0x98a3, 0x9994, + 0x96d3, 0x98c4, 0x99b5, 0x9aa5, 0x98e4, 0x99d5, 0x9ac6, 0x9bb7, + 0xa173, 0xa264, 0xa455, 0xa546, 0xa285, 0xa475, 0xa566, 0xa657, + 0xa496, 0xa587, 0xa678, 0xa769, 0xa5a7, 0xa698, 0xa789, 0xa87a, + 0xa6b9, 0xa7aa, 0xa89b, 0xaa8b, 0xa7ca, 0xa8bb, 0xaaac, 0xab9d, + 0xa9dc, 0xaacd, 0xabbd, 0xacae, 0xaaed, 0xabde, 0xaccf, 0xadc0, + 0xb37c, 0xb46d, 0xb65e, 0xb74f, 0xb58d, 0xb67e, 0xb76f, 0xb860, + 0xb69f, 0xb790, 0xb881, 0xb971, 0xb7b0, 0xb8a1, 0xb992, 0xbb83, + 0xb8c2, 0xb9b3, 0xbba3, 0xbc94, 0xb9d3, 0xbbc4, 0xbcb5, 0xbda6, + 0xbbe5, 0xbcd5, 0xbdc6, 0xbeb7, 0xbcf6, 0xbde7, 0xbed8, 0xbfc9, + 0xc585, 0xc776, 0xc867, 0xc957, 0xc796, 0xc887, 0xc978, 0xca69, + 0xc8a8, 0xc999, 0xca89, 0xcb7a, 0xc9b9, 0xcaaa, 0xcb9b, 0xcd8c, + 0xcacb, 0xcbbb, 0xcdac, 0xce9d, 0xcbdc, 0xcdcd, 0xcebe, 0xcfaf, + 0xcded, 0xcede, 0xcfcf, 0xd0c0, 0xceff, 0xcff0, 0xd0e1, 0xd2d1}, + {0x4747, 0x4e60, 0x567a, 0x5d93, 0x5d4d, 0x6567, 0x6c81, 0x749a, + 0x7454, 0x7b6e, 0x8387, 0x8aa1, 0x8a5b, 0x9274, 0x998e, 0xa1a8, + 0xa162, 0xa87b, 0xb095, 0xb7ae, 0xb768, 0xbf82, 0xc69b, 0xceb5, + 0xce6f, 0xd589, 0xdda2, 0xe4bc, 0xe476, 0xec8f, 0xf3a9, 0xfbc2, + 0x4149, 0x4862, 0x507c, 0x5796, 0x5750, 0x5f69, 0x6683, 0x6e9c, + 0x6e56, 0x7570, 0x7d89, 0x84a3, 0x845d, 0x8c77, 0x9390, 0x9baa, + 0x9b64, 0xa27d, 0xaa97, 0xb1b0, 0xb16a, 0xb984, 0xc09e, 0xc8b7, + 0xc871, 0xd08b, 0xd7a4, 0xdfbe, 0xdf78, 0xe691, 0xeeab, 0xf5c5, + 0x3b4b, 0x4265, 0x4a7e, 0x5198, 0x5152, 0x596b, 0x6085, 0x689e, + 0x6858, 0x6f72, 0x778c, 0x7fa5, 0x7e5f, 0x8679, 0x8e92, 0x95ac, + 0x9566, 0x9d7f, 0xa499, 0xacb3, 0xac6d, 0xb386, 0xbba0, 0xc2b9, + 0xc273, 0xca8d, 0xd1a6, 0xd9c0, 0xd97a, 0xe094, 0xe8ad, 0xefc7, + 0x354d, 0x3c67, 0x4480, 0x4c9a, 0x4b54, 0x536d, 0x5b87, 0x62a1, + 0x625b, 0x6a74, 0x718e, 0x79a7, 0x7961, 0x807b, 0x8894, 0x8fae, + 0x8f68, 0x9782, 0x9e9b, 0xa6b5, 0xa66f, 0xad88, 0xb5a2, 0xbcbb, + 0xbc75, 0xc48f, 0xcba9, 0xd3c2, 0xd37c, 0xda96, 0xe2af, 0xe9c9, + 0x2f4f, 0x3769, 0x3e83, 0x469c, 0x4656, 0x4d70, 0x5589, 0x5ca3, + 0x5c5d, 0x6476, 0x6b90, 0x73aa, 0x7363, 0x7a7d, 0x8297, 0x89b0, + 0x896a, 0x9184, 0x989d, 0xa0b7, 0xa071, 0xa78a, 0xafa4, 0xb6be, + 0xb678, 0xbe91, 0xc5ab, 0xcdc4, 0xcd7e, 0xd498, 0xdcb1, 0xe3cb, + 0x2952, 0x316b, 0x3885, 0x409e, 0x4058, 0x4772, 0x4f8b, 0x56a5, + 0x565f, 0x5e79, 0x6592, 0x6dac, 0x6d66, 0x747f, 0x7c99, 0x83b2, + 0x836c, 0x8b86, 0x929f, 0x9ab9, 0x9a73, 0xa18d, 0xa9a6, 0xb0c0, + 0xb07a, 0xb893, 0xbfad, 0xc7c6, 0xc780, 0xce9a, 0xd6b4, 0xddcd, + 0x2354, 0x2b6d, 0x3287, 0x3aa0, 0x3a5a, 0x4174, 0x498e, 0x50a7, + 0x5061, 0x587b, 0x5f94, 0x67ae, 0x6768, 0x6e81, 0x769b, 0x7db5, + 0x7d6f, 0x8588, 0x8ca2, 0x94bb, 0x9475, 0x9b8f, 0xa3a8, 0xaac2, + 0xaa7c, 0xb295, 0xb9af, 0xc1c9, 0xc183, 0xc89c, 0xd0b6, 0xd7cf, + 0x1d56, 0x256f, 0x2c89, 0x34a3, 0x345d, 0x3b76, 0x4390, 0x4aa9, + 0x4a63, 0x527d, 0x5996, 0x61b0, 0x616a, 0x6884, 0x709d, 0x77b7, + 0x7771, 0x7f8a, 0x86a4, 0x8ebd, 0x8e77, 0x9591, 0x9dab, 0xa4c4, + 0xa47e, 0xac98, 0xb3b1, 0xbbcb, 0xbb85, 0xc29e, 0xcab8, 0xd1d2}, + {0x4747, 0x4b37, 0x4f28, 0x5318, 0x4757, 0x4b47, 0x5038, 0x5428, + 0x4867, 0x4c57, 0x5047, 0x5438, 0x4876, 0x4d67, 0x5157, 0x5548, + 0x4986, 0x4d77, 0x5167, 0x5558, 0x4a96, 0x4e87, 0x5277, 0x5668, + 0x4aa6, 0x4e97, 0x5287, 0x5777, 0x4bb6, 0x4fa7, 0x5397, 0x5787, + 0x5851, 0x5c42, 0x6132, 0x6523, 0x5961, 0x5d52, 0x6142, 0x6533, + 0x5971, 0x5d62, 0x6252, 0x6642, 0x5a81, 0x5e71, 0x6262, 0x6652, + 0x5a91, 0x5f81, 0x6372, 0x6762, 0x5ba1, 0x5f91, 0x6382, 0x6772, + 0x5cb1, 0x60a1, 0x6492, 0x6882, 0x5cc1, 0x60b1, 0x64a2, 0x6992, + 0x6a5c, 0x6e4c, 0x723d, 0x762d, 0x6a6c, 0x6e5c, 0x734d, 0x773d, + 0x6b7c, 0x6f6c, 0x735d, 0x774d, 0x6b8c, 0x707c, 0x746d, 0x785d, + 0x6c9c, 0x708c, 0x747c, 0x786d, 0x6dab, 0x719c, 0x758c, 0x797d, + 0x6dbb, 0x71ac, 0x759c, 0x798d, 0x6ecb, 0x72bc, 0x76ac, 0x7a9d, + 0x7b67, 0x7f57, 0x8347, 0x8838, 0x7c76, 0x8067, 0x8457, 0x8848, + 0x7c86, 0x8077, 0x8567, 0x8958, 0x7d96, 0x8187, 0x8577, 0x8968, + 0x7da6, 0x8297, 0x8687, 0x8a77, 0x7eb6, 0x82a6, 0x8697, 0x8a87, + 0x7fc6, 0x83b6, 0x87a7, 0x8b97, 0x7fd6, 0x83c6, 0x87b7, 0x8ca7, + 0x8d71, 0x9162, 0x9552, 0x9942, 0x8d81, 0x9171, 0x9662, 0x9a52, + 0x8e91, 0x9281, 0x9672, 0x9a62, 0x8ea1, 0x9391, 0x9782, 0x9b72, + 0x8fb1, 0x93a1, 0x9792, 0x9b82, 0x90c1, 0x94b1, 0x98a1, 0x9c92, + 0x90d1, 0x94c1, 0x98b1, 0x9ca2, 0x91e0, 0x95d1, 0x99c1, 0x9db2, + 0x9e7c, 0xa26c, 0xa65d, 0xab4d, 0x9f8c, 0xa37c, 0xa76c, 0xab5d, + 0x9f9c, 0xa38c, 0xa87c, 0xac6d, 0xa0ab, 0xa49c, 0xa88c, 0xac7d, + 0xa0bb, 0xa5ac, 0xa99c, 0xad8d, 0xa1cb, 0xa5bc, 0xa9ac, 0xad9d, + 0xa2db, 0xa6cc, 0xaabc, 0xaeac, 0xa2eb, 0xa6db, 0xaacc, 0xafbc, + 0xb086, 0xb477, 0xb867, 0xbc58, 0xb096, 0xb487, 0xb977, 0xbd67, + 0xb1a6, 0xb597, 0xb987, 0xbd77, 0xb1b6, 0xb6a6, 0xba97, 0xbe87, + 0xb2c6, 0xb6b6, 0xbaa7, 0xbe97, 0xb2d6, 0xb7c6, 0xbbb7, 0xbfa7, + 0xb3e6, 0xb7d6, 0xbbc7, 0xbfb7, 0xb4f6, 0xb8e6, 0xbcd6, 0xc0c7, + 0xc191, 0xc581, 0xc972, 0xce62, 0xc2a1, 0xc691, 0xca82, 0xce72, + 0xc2b1, 0xc6a1, 0xcb92, 0xcf82, 0xc3c1, 0xc7b1, 0xcba1, 0xcf92, + 0xc3d0, 0xc8c1, 0xccb1, 0xd0a2, 0xc4e0, 0xc8d1, 0xccc1, 0xd0b2, + 0xc5f0, 0xc9e1, 0xcdd1, 0xd1c2, 0xc5ff, 0xc9f1, 0xcde1, 0xd2d1}, + {0x4747, 0x4b61, 0x507a, 0x5494, 0x5e4f, 0x6269, 0x6783, 0x6c9c, + 0x7557, 0x7971, 0x7e8b, 0x83a5, 0x8c60, 0x9179, 0x9593, 0x9aad, + 0xa368, 0xa882, 0xac9b, 0xb1b5, 0xba70, 0xbf8a, 0xc3a4, 0xc8be, + 0xd178, 0xd692, 0xdaac, 0xdfc6, 0xe881, 0xed9a, 0xf1b4, 0xf6ce, + 0x4247, 0x4661, 0x4b7b, 0x4f95, 0x5950, 0x5d69, 0x6283, 0x669d, + 0x7058, 0x7472, 0x798b, 0x7da5, 0x8760, 0x8b7a, 0x9094, 0x94ae, + 0x9e68, 0xa282, 0xa79c, 0xacb6, 0xb571, 0xb98a, 0xbea4, 0xc3be, + 0xcc79, 0xd193, 0xd5ad, 0xdac6, 0xe381, 0xe89b, 0xecb5, 0xf1cf, + 0x3c48, 0x4162, 0x457b, 0x4a95, 0x5350, 0x586a, 0x5d84, 0x619d, + 0x6a58, 0x6f72, 0x748c, 0x78a6, 0x8261, 0x867a, 0x8b94, 0x8fae, + 0x9969, 0x9d83, 0xa29c, 0xa6b6, 0xb071, 0xb48b, 0xb9a5, 0xbdbf, + 0xc779, 0xcb93, 0xd0ad, 0xd4c7, 0xde82, 0xe29b, 0xe7b5, 0xeccf, + 0x3748, 0x3c62, 0x407c, 0x4596, 0x4e50, 0x536a, 0x5784, 0x5c9e, + 0x6559, 0x6a73, 0x6e8c, 0x73a6, 0x7c61, 0x817b, 0x8595, 0x8aae, + 0x9369, 0x9883, 0x9d9d, 0xa1b7, 0xaa72, 0xaf8b, 0xb4a5, 0xb8bf, + 0xc27a, 0xc694, 0xcbad, 0xcfc7, 0xd982, 0xdd9c, 0xe2b6, 0xe6d0, + 0x3249, 0x3662, 0x3b7c, 0x4096, 0x4951, 0x4e6b, 0x5285, 0x579e, + 0x6059, 0x6573, 0x698d, 0x6ea7, 0x7762, 0x7c7b, 0x8095, 0x85af, + 0x8e6a, 0x9384, 0x979d, 0x9cb7, 0xa572, 0xaa8c, 0xaea6, 0xb3c0, + 0xbc7a, 0xc194, 0xc5ae, 0xcac8, 0xd383, 0xd89c, 0xddb6, 0xe1d0, + 0x2d49, 0x3163, 0x367d, 0x3a97, 0x4451, 0x486b, 0x4d85, 0x519f, + 0x5b5a, 0x5f74, 0x648d, 0x69a7, 0x7262, 0x767c, 0x7b96, 0x80af, + 0x896a, 0x8e84, 0x929e, 0x97b8, 0xa073, 0xa58c, 0xa9a6, 0xaec0, + 0xb77b, 0xbc95, 0xc0ae, 0xc5c8, 0xce83, 0xd39d, 0xd7b7, 0xdcd1, + 0x284a, 0x2c63, 0x317d, 0x3597, 0x3f52, 0x436c, 0x4886, 0x4c9f, + 0x565a, 0x5a74, 0x5f8e, 0x63a8, 0x6d62, 0x717c, 0x7696, 0x7ab0, + 0x846b, 0x8885, 0x8d9e, 0x91b8, 0x9b73, 0x9f8d, 0xa4a7, 0xa9c0, + 0xb27b, 0xb795, 0xbbaf, 0xc0c9, 0xc984, 0xce9d, 0xd2b7, 0xd7d1, + 0x224a, 0x2764, 0x2b7e, 0x3098, 0x3952, 0x3e6c, 0x4386, 0x47a0, + 0x505b, 0x5574, 0x5a8e, 0x5ea8, 0x6863, 0x6c7d, 0x7197, 0x75b0, + 0x7f6b, 0x8385, 0x889f, 0x8cb9, 0x9674, 0x9a8d, 0x9fa7, 0xa3c1, + 0xad7c, 0xb196, 0xb6af, 0xbac9, 0xc484, 0xc89e, 0xcdb8, 0xd1d2}, + {0x4747, 0x4e37, 0x5528, 0x5c18, 0x4755, 0x4e45, 0x5536, 0x5c26, + 0x4763, 0x4e54, 0x5544, 0x5c35, 0x4772, 0x4e62, 0x5552, 0x5c43, + 0x4780, 0x4e70, 0x5561, 0x5d51, 0x478e, 0x4e7f, 0x566f, 0x5d5f, + 0x489d, 0x4f8d, 0x567d, 0x5d6e, 0x48ab, 0x4f9b, 0x568c, 0x5d7c, + 0x5753, 0x5e43, 0x6634, 0x6d24, 0x5861, 0x5f52, 0x6642, 0x6d32, + 0x5870, 0x5f60, 0x6650, 0x6d41, 0x587e, 0x5f6e, 0x665f, 0x6d4f, + 0x588c, 0x5f7d, 0x666d, 0x6d5d, 0x589a, 0x5f8b, 0x667b, 0x6d6c, + 0x58a9, 0x5f99, 0x668a, 0x6d7a, 0x58b7, 0x5fa7, 0x6698, 0x6e88, + 0x685f, 0x6f50, 0x7640, 0x7d30, 0x686d, 0x6f5e, 0x764e, 0x7d3f, + 0x687c, 0x6f6c, 0x765d, 0x7e4d, 0x688a, 0x707a, 0x776b, 0x7e5b, + 0x6998, 0x7089, 0x7779, 0x7e6a, 0x69a7, 0x7097, 0x7787, 0x7e78, + 0x69b5, 0x70a5, 0x7796, 0x7e86, 0x69c3, 0x70b4, 0x77a4, 0x7e94, + 0x796b, 0x805c, 0x874c, 0x8e3d, 0x797a, 0x806a, 0x875a, 0x8e4b, + 0x7988, 0x8078, 0x8769, 0x8e59, 0x7996, 0x8087, 0x8777, 0x8e67, + 0x79a5, 0x8095, 0x8785, 0x8e76, 0x79b3, 0x80a3, 0x8894, 0x8f84, + 0x79c1, 0x81b2, 0x88a2, 0x8f92, 0x7acf, 0x81c0, 0x88b0, 0x8fa1, + 0x8978, 0x9068, 0x9858, 0x9f49, 0x8986, 0x9176, 0x9867, 0x9f57, + 0x8a94, 0x9185, 0x9875, 0x9f65, 0x8aa2, 0x9193, 0x9883, 0x9f74, + 0x8ab1, 0x91a1, 0x9892, 0x9f82, 0x8abf, 0x91af, 0x98a0, 0x9f90, + 0x8acd, 0x91be, 0x98ae, 0x9f9f, 0x8adc, 0x91cc, 0x98bc, 0xa0ad, + 0x9a84, 0xa174, 0xa865, 0xaf55, 0x9a92, 0xa182, 0xa873, 0xaf63, + 0x9aa0, 0xa191, 0xa881, 0xb072, 0x9aaf, 0xa19f, 0xa98f, 0xb080, + 0x9bbd, 0xa2ad, 0xa99e, 0xb08e, 0x9bcb, 0xa2bc, 0xa9ac, 0xb09c, + 0x9bda, 0xa2ca, 0xa9ba, 0xb0ab, 0x9be8, 0xa2d8, 0xa9c9, 0xb0b9, + 0xab90, 0xb280, 0xb971, 0xc061, 0xab9e, 0xb28f, 0xb97f, 0xc06f, + 0xabad, 0xb29d, 0xb98d, 0xc07e, 0xabbb, 0xb2ab, 0xb99c, 0xc08c, + 0xabc9, 0xb2ba, 0xb9aa, 0xc09a, 0xabd8, 0xb2c8, 0xb9b8, 0xc1a9, + 0xabe6, 0xb3d6, 0xbac7, 0xc1b7, 0xacf4, 0xb3e5, 0xbad5, 0xc1c5, + 0xbb9c, 0xc28d, 0xc97d, 0xd16d, 0xbbaa, 0xc39b, 0xca8b, 0xd17c, + 0xbcb9, 0xc3a9, 0xca9a, 0xd18a, 0xbcc7, 0xc3b7, 0xcaa8, 0xd198, + 0xbcd5, 0xc3c6, 0xcab6, 0xd1a7, 0xbce4, 0xc3d4, 0xcac4, 0xd1b5, + 0xbcf2, 0xc3e2, 0xcad3, 0xd1c3, 0xbcff, 0xc3f1, 0xcae1, 0xd2d1}, + {0x4747, 0x4860, 0x4a7a, 0x4c94, 0x5e51, 0x606a, 0x6184, 0x639e, + 0x765b, 0x7774, 0x798e, 0x7aa7, 0x8d64, 0x8f7e, 0x9098, 0x92b1, + 0xa46e, 0xa688, 0xa8a2, 0xa9bb, 0xbc78, 0xbd92, 0xbfac, 0xc1c5, + 0xd382, 0xd59c, 0xd6b5, 0xd8cf, 0xea8c, 0xeca6, 0xeebf, 0xefd9, + 0x4246, 0x445f, 0x4679, 0x4793, 0x5a50, 0x5b69, 0x5d83, 0x5f9c, + 0x7159, 0x7373, 0x758d, 0x76a6, 0x8963, 0x8a7d, 0x8c97, 0x8eb0, + 0xa06d, 0xa287, 0xa3a1, 0xa5ba, 0xb777, 0xb991, 0xbbab, 0xbcc4, + 0xcf81, 0xd09b, 0xd2b4, 0xd4ce, 0xe68b, 0xe8a5, 0xe9be, 0xebd8, + 0x3e45, 0x405e, 0x4178, 0x4392, 0x564f, 0x5768, 0x5982, 0x5a9b, + 0x6d58, 0x6f72, 0x708c, 0x72a5, 0x8462, 0x867c, 0x8896, 0x89af, + 0x9c6c, 0x9d86, 0x9fa0, 0xa1b9, 0xb376, 0xb590, 0xb6a9, 0xb8c3, + 0xcb80, 0xcc9a, 0xceb3, 0xcfcd, 0xe28a, 0xe4a4, 0xe5bd, 0xe7d7, + 0x3a44, 0x3c5d, 0x3d77, 0x3f90, 0x514d, 0x5367, 0x5581, 0x569a, + 0x6957, 0x6a71, 0x6c8b, 0x6ea4, 0x8061, 0x827b, 0x8395, 0x85ae, + 0x986b, 0x9985, 0x9b9e, 0x9cb8, 0xaf75, 0xb18f, 0xb2a8, 0xb4c2, + 0xc67f, 0xc899, 0xcab2, 0xcbcc, 0xde89, 0xdfa3, 0xe1bc, 0xe3d6, + 0x3642, 0x375c, 0x3976, 0x3b8f, 0x4d4c, 0x4f66, 0x5080, 0x5299, + 0x6456, 0x6670, 0x688a, 0x69a3, 0x7c60, 0x7d7a, 0x7f93, 0x81ad, + 0x936a, 0x9584, 0x969d, 0x98b7, 0xab74, 0xac8e, 0xaea7, 0xb0c1, + 0xc27e, 0xc498, 0xc5b1, 0xc7cb, 0xd988, 0xdba1, 0xddbb, 0xded5, + 0x3141, 0x335b, 0x3575, 0x368e, 0x494b, 0x4a65, 0x4c7f, 0x4e98, + 0x6055, 0x626f, 0x6388, 0x65a2, 0x785f, 0x7979, 0x7b92, 0x7cac, + 0x8f69, 0x9183, 0x929c, 0x94b6, 0xa673, 0xa88d, 0xaaa6, 0xabc0, + 0xbe7d, 0xbf96, 0xc1b0, 0xc3ca, 0xd587, 0xd7a0, 0xd8ba, 0xdad4, + 0x2d40, 0x2f5a, 0x3074, 0x328d, 0x454a, 0x4664, 0x487d, 0x4997, + 0x5c54, 0x5e6e, 0x5f87, 0x61a1, 0x735e, 0x7578, 0x7791, 0x78ab, + 0x8b68, 0x8c82, 0x8e9b, 0x90b5, 0xa272, 0xa48b, 0xa5a5, 0xa7bf, + 0xba7c, 0xbb95, 0xbdaf, 0xbec9, 0xd186, 0xd39f, 0xd4b9, 0xd6d3, + 0x293f, 0x2b59, 0x2c72, 0x2e8c, 0x4049, 0x4263, 0x447c, 0x4596, + 0x5853, 0x596d, 0x5b86, 0x5da0, 0x6f5d, 0x7177, 0x7290, 0x74aa, + 0x8667, 0x8880, 0x8a9a, 0x8bb4, 0x9e71, 0x9f8a, 0xa1a4, 0xa3be, + 0xb57b, 0xb794, 0xb8ae, 0xbac8, 0xcd85, 0xce9e, 0xd0b8, 0xd1d2}, + {0x4747, 0x5138, 0x5b28, 0x6519, 0x4753, 0x5144, 0x5b35, 0x6526, + 0x4760, 0x5151, 0x5b42, 0x6532, 0x476d, 0x515d, 0x5b4e, 0x653f, + 0x4679, 0x506a, 0x5b5b, 0x654c, 0x4686, 0x5077, 0x5a68, 0x6458, + 0x4693, 0x5083, 0x5a74, 0x6465, 0x469f, 0x5090, 0x5a81, 0x6472, + 0x5654, 0x6045, 0x6a36, 0x7427, 0x5661, 0x6052, 0x6a43, 0x7433, + 0x566e, 0x605f, 0x6a4f, 0x7440, 0x567a, 0x606b, 0x6a5c, 0x744d, + 0x5687, 0x6078, 0x6a69, 0x7459, 0x5694, 0x6084, 0x6a75, 0x7466, + 0x56a0, 0x6091, 0x6a82, 0x7473, 0x56ad, 0x609e, 0x6a8f, 0x747f, + 0x6662, 0x7053, 0x7a44, 0x8435, 0x666f, 0x7060, 0x7a50, 0x8441, + 0x667b, 0x706c, 0x7a5d, 0x844e, 0x6688, 0x7079, 0x7a6a, 0x845a, + 0x6695, 0x7086, 0x7a76, 0x8467, 0x66a1, 0x7092, 0x7a83, 0x8474, + 0x66ae, 0x709f, 0x7a90, 0x8480, 0x65bb, 0x70ab, 0x7a9c, 0x848d, + 0x7670, 0x8061, 0x8a51, 0x9442, 0x757c, 0x7f6d, 0x895e, 0x934f, + 0x7589, 0x7f7a, 0x896b, 0x935b, 0x7596, 0x7f87, 0x8977, 0x9368, + 0x75a2, 0x7f93, 0x8984, 0x9375, 0x75af, 0x7fa0, 0x8991, 0x9381, + 0x75bc, 0x7fac, 0x899d, 0x938e, 0x75c8, 0x7fb9, 0x89aa, 0x939b, + 0x857e, 0x8f6e, 0x995f, 0xa350, 0x858a, 0x8f7b, 0x996c, 0xa35d, + 0x8597, 0x8f88, 0x9978, 0xa369, 0x85a3, 0x8f94, 0x9985, 0xa376, + 0x85b0, 0x8fa1, 0x9992, 0xa382, 0x85bd, 0x8fae, 0x999e, 0xa38f, + 0x85c9, 0x8fba, 0x99ab, 0xa39c, 0x85d6, 0x8fc7, 0x99b8, 0xa3a8, + 0x958b, 0x9f7c, 0xa96d, 0xb35e, 0x9598, 0x9f89, 0xa979, 0xb36a, + 0x95a5, 0x9f95, 0xa986, 0xb377, 0x95b1, 0x9fa2, 0xa993, 0xb384, + 0x94be, 0x9eaf, 0xa89f, 0xb290, 0x94ca, 0x9ebb, 0xa8ac, 0xb29d, + 0x94d7, 0x9ec8, 0xa8b9, 0xb2a9, 0x94e4, 0x9ed5, 0xa8c5, 0xb2b6, + 0xa499, 0xae8a, 0xb87b, 0xc26b, 0xa4a6, 0xae96, 0xb887, 0xc278, + 0xa4b2, 0xaea3, 0xb894, 0xc285, 0xa4bf, 0xaeb0, 0xb8a0, 0xc291, + 0xa4cc, 0xaebc, 0xb8ad, 0xc29e, 0xa4d8, 0xaec9, 0xb8ba, 0xc2ab, + 0xa4e5, 0xaed6, 0xb8c6, 0xc2b7, 0xa4f1, 0xaee2, 0xb8d3, 0xc2c4, + 0xb4a7, 0xbe97, 0xc888, 0xd279, 0xb4b3, 0xbea4, 0xc895, 0xd286, + 0xb4c0, 0xbeb1, 0xc8a2, 0xd292, 0xb4cd, 0xbebd, 0xc8ae, 0xd29f, + 0xb4d9, 0xbeca, 0xc8bb, 0xd2ac, 0xb4e6, 0xbed7, 0xc8c7, 0xd2b8, + 0xb4f2, 0xbee3, 0xc8d4, 0xd2c5, 0xb3ff, 0xbdf0, 0xc7e1, 0xd2d1}, + {0x4747, 0x4560, 0x4479, 0x4392, 0x5e52, 0x5d6b, 0x5c84, 0x5a9d, + 0x765e, 0x7477, 0x7390, 0x72a9, 0x8d6a, 0x8c83, 0x8b9c, 0x89b5, + 0xa575, 0xa38e, 0xa2a7, 0xa1c0, 0xbc81, 0xbb9a, 0xbab3, 0xb8cc, + 0xd48c, 0xd2a5, 0xd1be, 0xd0d7, 0xeb98, 0xeab1, 0xe8ca, 0xe7e3, + 0x4444, 0x425d, 0x4176, 0x408f, 0x5b50, 0x5a69, 0x5982, 0x579b, + 0x735b, 0x7174, 0x708e, 0x6fa7, 0x8a67, 0x8980, 0x8899, 0x86b2, + 0xa173, 0xa08c, 0x9fa5, 0x9ebe, 0xb97e, 0xb897, 0xb6b0, 0xb5c9, + 0xd08a, 0xcfa3, 0xcebc, 0xcdd5, 0xe895, 0xe7ae, 0xe5c7, 0xe4e0, + 0x4142, 0x3f5b, 0x3e74, 0x3d8d, 0x584d, 0x5766, 0x557f, 0x5498, + 0x6f59, 0x6e72, 0x6d8b, 0x6ca4, 0x8765, 0x867e, 0x8497, 0x83b0, + 0x9e70, 0x9d89, 0x9ca2, 0x9bbb, 0xb67c, 0xb595, 0xb3ae, 0xb2c7, + 0xcd87, 0xcca0, 0xcbb9, 0xcad2, 0xe593, 0xe4ac, 0xe2c5, 0xe1de, + 0x3d3f, 0x3c58, 0x3b71, 0x3a8a, 0x554b, 0x5464, 0x527d, 0x5196, + 0x6c56, 0x6b6f, 0x6a89, 0x69a2, 0x8462, 0x837b, 0x8194, 0x80ad, + 0x9b6e, 0x9a87, 0x99a0, 0x98b9, 0xb379, 0xb192, 0xb0ab, 0xafc4, + 0xca85, 0xc99e, 0xc8b7, 0xc6d0, 0xe290, 0xe0a9, 0xdfc2, 0xdedb, + 0x3a3d, 0x3956, 0x386f, 0x3788, 0x5248, 0x5161, 0x4f7a, 0x4e93, + 0x6954, 0x686d, 0x6786, 0x669f, 0x8160, 0x7f79, 0x7e92, 0x7dab, + 0x986b, 0x9784, 0x969d, 0x94b6, 0xb077, 0xae90, 0xada9, 0xacc2, + 0xc782, 0xc69b, 0xc5b4, 0xc3cd, 0xdf8e, 0xdda7, 0xdcc0, 0xdbd9, + 0x373a, 0x3653, 0x356c, 0x3385, 0x4f46, 0x4d5f, 0x4c78, 0x4b91, + 0x6651, 0x656a, 0x6484, 0x629d, 0x7e5d, 0x7c76, 0x7b8f, 0x7aa8, + 0x9569, 0x9482, 0x939b, 0x91b4, 0xad74, 0xab8d, 0xaaa6, 0xa9bf, + 0xc480, 0xc399, 0xc1b2, 0xc0cb, 0xdb8b, 0xdaa4, 0xd9bd, 0xd8d6, + 0x3438, 0x3351, 0x326a, 0x3083, 0x4c43, 0x4a5c, 0x4975, 0x488e, + 0x634f, 0x6268, 0x6181, 0x5f9a, 0x7b5b, 0x7974, 0x788d, 0x77a6, + 0x9266, 0x917f, 0x8f98, 0x8eb1, 0xa972, 0xa88b, 0xa7a4, 0xa6bd, + 0xc17d, 0xc096, 0xbeaf, 0xbdc8, 0xd889, 0xd7a2, 0xd6bb, 0xd5d4, + 0x3135, 0x304e, 0x2f67, 0x2d80, 0x4841, 0x475a, 0x4673, 0x458c, + 0x604c, 0x5f65, 0x5d7f, 0x5c98, 0x7758, 0x7671, 0x758a, 0x74a3, + 0x8f64, 0x8e7d, 0x8c96, 0x8baf, 0xa66f, 0xa588, 0xa4a1, 0xa3ba, + 0xbe7b, 0xbd94, 0xbbad, 0xbac6, 0xd586, 0xd49f, 0xd3b8, 0xd1d2}, + {0x4747, 0x5438, 0x602a, 0x6d1c, 0x4752, 0x5443, 0x6035, 0x6d26, + 0x475d, 0x544e, 0x6040, 0x6d31, 0x4768, 0x5459, 0x604b, 0x6d3c, + 0x4773, 0x5364, 0x6056, 0x6d47, 0x477e, 0x536f, 0x6061, 0x6d52, + 0x4789, 0x537a, 0x606c, 0x6d5d, 0x4793, 0x5385, 0x6077, 0x6d68, + 0x5556, 0x6247, 0x6f39, 0x7c2b, 0x5561, 0x6252, 0x6f44, 0x7c36, + 0x556c, 0x625d, 0x6f4f, 0x7c40, 0x5577, 0x6268, 0x6f5a, 0x7c4b, + 0x5582, 0x6273, 0x6f65, 0x7b56, 0x558d, 0x627e, 0x6f70, 0x7b61, + 0x5598, 0x6289, 0x6f7b, 0x7b6c, 0x55a3, 0x6294, 0x6f86, 0x7b77, + 0x6365, 0x7056, 0x7d48, 0x8a3a, 0x6370, 0x7061, 0x7d53, 0x8a45, + 0x637b, 0x706c, 0x7d5e, 0x8a50, 0x6386, 0x7077, 0x7d69, 0x8a5a, + 0x6391, 0x7082, 0x7d74, 0x8a65, 0x639c, 0x708d, 0x7d7f, 0x8a70, + 0x63a7, 0x7098, 0x7d8a, 0x8a7b, 0x63b2, 0x70a3, 0x7d95, 0x8a86, + 0x7274, 0x7f65, 0x8b57, 0x9849, 0x727f, 0x7f70, 0x8b62, 0x9854, + 0x728a, 0x7f7b, 0x8b6d, 0x985f, 0x7295, 0x7f86, 0x8b78, 0x986a, + 0x72a0, 0x7f91, 0x8b83, 0x9874, 0x72ab, 0x7f9c, 0x8b8e, 0x987f, + 0x72b6, 0x7ea7, 0x8b99, 0x988a, 0x72c1, 0x7eb2, 0x8ba4, 0x9895, + 0x8083, 0x8d74, 0x9a66, 0xa758, 0x808e, 0x8d7f, 0x9a71, 0xa763, + 0x8099, 0x8d8a, 0x9a7c, 0xa76e, 0x80a4, 0x8d95, 0x9a87, 0xa779, + 0x80af, 0x8da0, 0x9a92, 0xa784, 0x80ba, 0x8dab, 0x9a9d, 0xa78e, + 0x80c5, 0x8db6, 0x9aa8, 0xa699, 0x80d0, 0x8dc1, 0x9ab3, 0xa6a4, + 0x8e92, 0x9b84, 0xa875, 0xb567, 0x8e9d, 0x9b8e, 0xa880, 0xb572, + 0x8ea8, 0x9b99, 0xa88b, 0xb57d, 0x8eb3, 0x9ba4, 0xa896, 0xb588, + 0x8ebe, 0x9baf, 0xa8a1, 0xb593, 0x8ec9, 0x9bba, 0xa8ac, 0xb59e, + 0x8ed4, 0x9bc5, 0xa8b7, 0xb5a8, 0x8edf, 0x9bd0, 0xa8c2, 0xb5b3, + 0x9da1, 0xaa93, 0xb684, 0xc376, 0x9dac, 0xaa9e, 0xb68f, 0xc381, + 0x9db7, 0xaaa8, 0xb69a, 0xc38c, 0x9dc2, 0xaab3, 0xb6a5, 0xc397, + 0x9dcd, 0xaabe, 0xb6b0, 0xc3a2, 0x9dd8, 0xaac9, 0xb6bb, 0xc3ad, + 0x9de3, 0xaad4, 0xb6c6, 0xc3b8, 0x9dee, 0xaadf, 0xb6d1, 0xc3c2, + 0xabb0, 0xb8a2, 0xc593, 0xd285, 0xabbb, 0xb8ad, 0xc59e, 0xd290, + 0xabc6, 0xb8b8, 0xc5a9, 0xd29b, 0xabd1, 0xb8c2, 0xc5b4, 0xd2a6, + 0xabdc, 0xb8cd, 0xc5bf, 0xd2b1, 0xabe7, 0xb8d8, 0xc5ca, 0xd2bc, + 0xabf2, 0xb8e3, 0xc5d5, 0xd2c7, 0xabfd, 0xb8ee, 0xc5e0, 0xd2d2}, + {0x4747, 0x435f, 0x3f77, 0x3b8f, 0x5e54, 0x5a6c, 0x5684, 0x529c, + 0x7561, 0x7179, 0x6d91, 0x69a9, 0x8d6f, 0x8987, 0x859f, 0x81b7, + 0xa47c, 0xa094, 0x9cac, 0x98c4, 0xbb89, 0xb7a1, 0xb3b9, 0xafd1, + 0xd396, 0xcfae, 0xcbc6, 0xc7de, 0xeaa4, 0xe6bc, 0xe2d4, 0xdeec, + 0x4543, 0x415b, 0x3d73, 0x398b, 0x5c50, 0x5868, 0x5480, 0x5098, + 0x745e, 0x7076, 0x6c8e, 0x68a6, 0x8b6b, 0x8783, 0x839b, 0x7fb3, + 0xa278, 0x9e90, 0x9aa8, 0x96c0, 0xb985, 0xb59d, 0xb1b5, 0xadcd, + 0xd193, 0xcdab, 0xc9c3, 0xc5db, 0xe8a0, 0xe4b8, 0xe0d0, 0xdce8, + 0x433f, 0x3f57, 0x3b6f, 0x3787, 0x5b4d, 0x5765, 0x537d, 0x4f95, + 0x725a, 0x6e72, 0x6a8a, 0x66a2, 0x8967, 0x857f, 0x8197, 0x7daf, + 0xa074, 0x9c8c, 0x98a4, 0x94bc, 0xb882, 0xb49a, 0xb0b2, 0xacca, + 0xcf8f, 0xcba7, 0xc7bf, 0xc3d7, 0xe69c, 0xe2b4, 0xdecc, 0xdae4, + 0x413c, 0x3d54, 0x396c, 0x3584, 0x5949, 0x5561, 0x5179, 0x4d91, + 0x7056, 0x6c6e, 0x6886, 0x649e, 0x8763, 0x837b, 0x7f93, 0x7bab, + 0x9f71, 0x9b89, 0x97a1, 0x93b9, 0xb67e, 0xb296, 0xaeae, 0xaac6, + 0xcd8b, 0xc9a3, 0xc5bb, 0xc1d3, 0xe598, 0xe1b0, 0xddc8, 0xd9e0, + 0x4038, 0x3c50, 0x3868, 0x3480, 0x5745, 0x535d, 0x4f75, 0x4b8d, + 0x6e52, 0x6a6a, 0x6682, 0x629a, 0x8660, 0x8278, 0x7e90, 0x7aa8, + 0x9d6d, 0x9985, 0x959d, 0x91b5, 0xb47a, 0xb092, 0xacaa, 0xa8c2, + 0xcb87, 0xc79f, 0xc3b7, 0xbfcf, 0xe395, 0xdfad, 0xdbc5, 0xd7dd, + 0x3e34, 0x3a4c, 0x3664, 0x327c, 0x5541, 0x5159, 0x4d71, 0x4989, + 0x6d4f, 0x6967, 0x657f, 0x6197, 0x845c, 0x8074, 0x7c8c, 0x78a4, + 0x9b69, 0x9781, 0x9399, 0x8fb1, 0xb276, 0xae8e, 0xaaa6, 0xa6be, + 0xca84, 0xc69c, 0xc2b4, 0xbecc, 0xe191, 0xdda9, 0xd9c1, 0xd5d9, + 0x3c30, 0x3848, 0x3460, 0x3078, 0x533e, 0x4f56, 0x4b6e, 0x4786, + 0x6b4b, 0x6763, 0x637b, 0x5f93, 0x8258, 0x7e70, 0x7a88, 0x76a0, + 0x9965, 0x957d, 0x9195, 0x8dad, 0xb173, 0xad8b, 0xa9a3, 0xa5bb, + 0xc880, 0xc498, 0xc0b0, 0xbcc8, 0xdf8d, 0xdba5, 0xd7bd, 0xd3d5, + 0x3a2d, 0x3645, 0x325d, 0x2e75, 0x523a, 0x4e52, 0x4a6a, 0x4682, + 0x6947, 0x655f, 0x6177, 0x5d8f, 0x8054, 0x7c6c, 0x7884, 0x749c, + 0x9862, 0x947a, 0x9092, 0x8caa, 0xaf6f, 0xab87, 0xa79f, 0xa3b7, + 0xc67c, 0xc294, 0xbeac, 0xbac4, 0xdd89, 0xd9a1, 0xd5b9, 0xd1d1}, + {0x4747, 0x563a, 0x662c, 0x751f, 0x4750, 0x5643, 0x6636, 0x7528, + 0x4759, 0x574c, 0x663f, 0x7632, 0x4863, 0x5755, 0x6748, 0x763b, + 0x486c, 0x575f, 0x6752, 0x7644, 0x4875, 0x5868, 0x675b, 0x774e, + 0x487f, 0x5871, 0x6764, 0x7757, 0x4988, 0x587b, 0x686d, 0x7760, + 0x5457, 0x634a, 0x733d, 0x822f, 0x5460, 0x6353, 0x7346, 0x8239, + 0x546a, 0x645c, 0x734f, 0x8342, 0x5473, 0x6466, 0x7358, 0x834b, + 0x557c, 0x646f, 0x7462, 0x8355, 0x5585, 0x6478, 0x746b, 0x835e, + 0x558f, 0x6582, 0x7474, 0x8467, 0x5698, 0x658b, 0x747e, 0x8470, + 0x6167, 0x705a, 0x804d, 0x8f3f, 0x6170, 0x7063, 0x8056, 0x8f49, + 0x617a, 0x716d, 0x805f, 0x9052, 0x6183, 0x7176, 0x8069, 0x905b, + 0x628c, 0x717f, 0x8172, 0x9065, 0x6296, 0x7188, 0x817b, 0x906e, + 0x629f, 0x7292, 0x8184, 0x9177, 0x62a8, 0x729b, 0x818e, 0x9181, + 0x6e77, 0x7d6a, 0x8c5d, 0x9c50, 0x6e81, 0x7d73, 0x8d66, 0x9c59, + 0x6e8a, 0x7e7d, 0x8d6f, 0x9c62, 0x6e93, 0x7e86, 0x8d79, 0x9d6c, + 0x6f9c, 0x7e8f, 0x8e82, 0x9d75, 0x6fa6, 0x7e99, 0x8e8b, 0x9d7e, + 0x6faf, 0x7fa2, 0x8e95, 0x9e87, 0x6fb8, 0x7fab, 0x8e9e, 0x9e91, + 0x7a87, 0x8a7a, 0x996d, 0xa960, 0x7b91, 0x8a84, 0x9a76, 0xa969, + 0x7b9a, 0x8a8d, 0x9a80, 0xa972, 0x7ba3, 0x8b96, 0x9a89, 0xaa7c, + 0x7bad, 0x8b9f, 0x9a92, 0xaa85, 0x7cb6, 0x8ba9, 0x9b9c, 0xaa8e, + 0x7cbf, 0x8cb2, 0x9ba5, 0xaa98, 0x7cc9, 0x8cbb, 0x9bae, 0xaba1, + 0x8798, 0x978a, 0xa67d, 0xb670, 0x88a1, 0x9794, 0xa787, 0xb679, + 0x88aa, 0x979d, 0xa790, 0xb683, 0x88b4, 0x98a6, 0xa799, 0xb78c, + 0x88bd, 0x98b0, 0xa7a2, 0xb795, 0x89c6, 0x98b9, 0xa8ac, 0xb79f, + 0x89cf, 0x98c2, 0xa8b5, 0xb7a8, 0x89d9, 0x99cc, 0xa8be, 0xb8b1, + 0x94a8, 0xa49b, 0xb38d, 0xc380, 0x95b1, 0xa4a4, 0xb497, 0xc38a, + 0x95ba, 0xa4ad, 0xb4a0, 0xc393, 0x95c4, 0xa5b7, 0xb4a9, 0xc49c, + 0x95cd, 0xa5c0, 0xb4b3, 0xc4a5, 0x96d6, 0xa5c9, 0xb5bc, 0xc4af, + 0x96e0, 0xa5d2, 0xb5c5, 0xc4b8, 0x96e9, 0xa6dc, 0xb5cf, 0xc5c1, + 0xa1b8, 0xb1ab, 0xc09e, 0xd090, 0xa1c1, 0xb1b4, 0xc0a7, 0xd09a, + 0xa2cb, 0xb1bd, 0xc1b0, 0xd0a3, 0xa2d4, 0xb1c7, 0xc1ba, 0xd0ac, + 0xa2dd, 0xb2d0, 0xc1c3, 0xd1b6, 0xa3e7, 0xb2d9, 0xc1cc, 0xd1bf, + 0xa3f0, 0xb2e3, 0xc2d5, 0xd1c8, 0xa3f9, 0xb3ec, 0xc2df, 0xd2d2}, + {0x4747, 0x405d, 0x3a74, 0x338b, 0x5e56, 0x576c, 0x5183, 0x4a9a, + 0x7565, 0x6e7b, 0x6792, 0x61a8, 0x8b73, 0x858a, 0x7ea1, 0x78b7, + 0xa282, 0x9c99, 0x95b0, 0x8fc6, 0xb991, 0xb3a8, 0xacbf, 0xa6d5, + 0xd0a0, 0xcab7, 0xc3cd, 0xbce4, 0xe7af, 0xe0c6, 0xdadc, 0xd3f3, + 0x4642, 0x4059, 0x396f, 0x3386, 0x5d51, 0x5768, 0x507e, 0x4a95, + 0x7460, 0x6e76, 0x678d, 0x61a4, 0x8b6f, 0x8585, 0x7e9c, 0x78b3, + 0xa27e, 0x9c94, 0x95ab, 0x8ec2, 0xb98c, 0xb2a3, 0xacba, 0xa5d0, + 0xd09b, 0xc9b2, 0xc3c9, 0xbcdf, 0xe7aa, 0xe0c1, 0xdad8, 0xd3ee, + 0x463d, 0x4054, 0x396a, 0x3381, 0x5d4c, 0x5763, 0x5079, 0x4990, + 0x745b, 0x6d72, 0x6788, 0x609f, 0x8b6a, 0x8481, 0x7e97, 0x77ae, + 0xa279, 0x9b8f, 0x95a6, 0x8ebd, 0xb988, 0xb29e, 0xacb5, 0xa5cc, + 0xd097, 0xc9ad, 0xc2c4, 0xbcdb, 0xe6a6, 0xe0bc, 0xd9d3, 0xd3e9, + 0x4638, 0x3f4f, 0x3966, 0x327c, 0x5d47, 0x565e, 0x5075, 0x498b, + 0x7456, 0x6d6d, 0x6783, 0x609a, 0x8b65, 0x847c, 0x7e92, 0x77a9, + 0xa274, 0x9b8b, 0x94a1, 0x8eb8, 0xb883, 0xb29a, 0xabb0, 0xa5c7, + 0xcf92, 0xc9a8, 0xc2bf, 0xbcd6, 0xe6a1, 0xe0b7, 0xd9ce, 0xd3e5, + 0x4634, 0x3f4a, 0x3961, 0x3278, 0x5d42, 0x5659, 0x4f70, 0x4986, + 0x7351, 0x6d68, 0x667f, 0x6095, 0x8a60, 0x8477, 0x7d8e, 0x77a4, + 0xa16f, 0x9b86, 0x949d, 0x8eb3, 0xb87e, 0xb295, 0xabab, 0xa5c2, + 0xcf8d, 0xc9a4, 0xc2ba, 0xbbd1, 0xe69c, 0xdfb3, 0xd9c9, 0xd2e0, + 0x452f, 0x3f45, 0x385c, 0x3273, 0x5c3e, 0x5654, 0x4f6b, 0x4982, + 0x734d, 0x6d63, 0x667a, 0x6091, 0x8a5c, 0x8472, 0x7d89, 0x769f, + 0xa16a, 0x9a81, 0x9498, 0x8dae, 0xb879, 0xb190, 0xaba7, 0xa4bd, + 0xcf88, 0xc89f, 0xc2b6, 0xbbcc, 0xe697, 0xdfae, 0xd9c4, 0xd2db, + 0x452a, 0x3f41, 0x3857, 0x316e, 0x5c39, 0x5650, 0x4f66, 0x487d, + 0x7348, 0x6c5e, 0x6675, 0x5f8c, 0x8a57, 0x836d, 0x7d84, 0x769b, + 0xa166, 0x9a7c, 0x9493, 0x8daa, 0xb875, 0xb18b, 0xaba2, 0xa4b8, + 0xcf83, 0xc89a, 0xc1b1, 0xbbc7, 0xe592, 0xdfa9, 0xd8c0, 0xd2d6, + 0x4525, 0x3e3c, 0x3853, 0x3169, 0x5c34, 0x554b, 0x4f61, 0x4878, + 0x7343, 0x6c5a, 0x6670, 0x5f87, 0x8a52, 0x8369, 0x7c7f, 0x7696, + 0xa061, 0x9a77, 0x938e, 0x8da5, 0xb770, 0xb186, 0xaa9d, 0xa4b4, + 0xce7f, 0xc895, 0xc1ac, 0xbbc3, 0xe58e, 0xdfa4, 0xd8bb, 0xd1d1}, + {0x4747, 0x593b, 0x6b2f, 0x7d24, 0x484e, 0x5943, 0x6b37, 0x7d2c, + 0x4856, 0x5a4a, 0x6c3f, 0x7e33, 0x495e, 0x5b52, 0x6d47, 0x7f3b, + 0x4a65, 0x5c5a, 0x6e4e, 0x8043, 0x4b6d, 0x5d62, 0x6e56, 0x804a, + 0x4b75, 0x5d69, 0x6f5e, 0x8152, 0x4c7d, 0x5e71, 0x7065, 0x825a, + 0x5258, 0x644c, 0x7641, 0x8835, 0x5360, 0x6554, 0x7748, 0x893d, + 0x5467, 0x665c, 0x7850, 0x8944, 0x546f, 0x6663, 0x7858, 0x8a4c, + 0x5577, 0x676b, 0x795f, 0x8b54, 0x567e, 0x6873, 0x7a67, 0x8c5b, + 0x5786, 0x697a, 0x7b6f, 0x8d63, 0x588e, 0x6982, 0x7b76, 0x8d6b, + 0x5d69, 0x6f5d, 0x8152, 0x9346, 0x5e71, 0x7065, 0x8259, 0x944e, + 0x5f78, 0x716d, 0x8361, 0x9555, 0x6080, 0x7274, 0x8469, 0x965d, + 0x6188, 0x737c, 0x8470, 0x9665, 0x618f, 0x7384, 0x8578, 0x976d, + 0x6297, 0x748b, 0x8680, 0x9874, 0x639f, 0x7593, 0x8788, 0x997c, + 0x697a, 0x7b6e, 0x8d63, 0x9f57, 0x6a82, 0x7c76, 0x8d6b, 0x9f5f, + 0x6a89, 0x7c7e, 0x8e72, 0xa067, 0x6b91, 0x7d86, 0x8f7a, 0xa16e, + 0x6c99, 0x7e8d, 0x9082, 0xa276, 0x6da1, 0x7f95, 0x9189, 0xa37e, + 0x6ea8, 0x7f9d, 0x9191, 0xa385, 0x6eb0, 0x80a4, 0x9299, 0xa48d, + 0x748b, 0x8680, 0x9874, 0xaa68, 0x7593, 0x8787, 0x997c, 0xab70, + 0x769b, 0x888f, 0x9a83, 0xac78, 0x77a2, 0x8897, 0x9a8b, 0xac7f, + 0x77aa, 0x899e, 0x9b93, 0xad87, 0x78b2, 0x8aa6, 0x9c9a, 0xae8f, + 0x79b9, 0x8bae, 0x9da2, 0xaf96, 0x7ac1, 0x8cb5, 0x9daa, 0xaf9e, + 0x809c, 0x9191, 0xa385, 0xb579, 0x80a4, 0x9298, 0xa48d, 0xb681, + 0x81ac, 0x93a0, 0xa594, 0xb789, 0x82b3, 0x94a8, 0xa69c, 0xb891, + 0x83bb, 0x95af, 0xa7a4, 0xb898, 0x83c3, 0x95b7, 0xa7ac, 0xb9a0, + 0x84ca, 0x96bf, 0xa8b3, 0xbaa8, 0x85d2, 0x97c7, 0xa9bb, 0xbbaf, + 0x8bae, 0x9da2, 0xaf96, 0xc18b, 0x8cb5, 0x9eaa, 0xb09e, 0xc192, + 0x8cbd, 0x9eb1, 0xb0a6, 0xc29a, 0x8dc5, 0x9fb9, 0xb1ad, 0xc3a2, + 0x8ecc, 0xa0c1, 0xb2b5, 0xc4a9, 0x8fd4, 0xa1c8, 0xb3bd, 0xc5b1, + 0x90dc, 0xa2d0, 0xb3c4, 0xc5b9, 0x90e3, 0xa2d8, 0xb4cc, 0xc6c0, + 0x96bf, 0xa8b3, 0xbaa7, 0xcc9c, 0x97c6, 0xa9bb, 0xbbaf, 0xcda3, + 0x98ce, 0xaac2, 0xbcb7, 0xceab, 0x99d6, 0xabca, 0xbcbe, 0xceb3, + 0x99dd, 0xabd2, 0xbdc6, 0xcfba, 0x9ae5, 0xacd9, 0xbece, 0xd0c2, + 0x9bed, 0xade1, 0xbfd5, 0xd1ca, 0x9cf4, 0xaee9, 0xc0dd, 0xd2d2}, + {0x4747, 0x3e5c, 0x3571, 0x2c85, 0x5d57, 0x546c, 0x4b81, 0x4296, + 0x7368, 0x6a7d, 0x6292, 0x59a6, 0x8a78, 0x818d, 0x78a2, 0x6fb7, + 0xa089, 0x979e, 0x8eb2, 0x85c7, 0xb699, 0xadae, 0xa4c3, 0x9bd8, + 0xccaa, 0xc3bf, 0xbbd3, 0xb2e8, 0xe3ba, 0xdacf, 0xd1e4, 0xc8f9, + 0x4841, 0x3f56, 0x366b, 0x2d80, 0x5e52, 0x5567, 0x4d7b, 0x4490, + 0x7562, 0x6c77, 0x638c, 0x5aa1, 0x8b73, 0x8287, 0x799c, 0x70b1, + 0xa183, 0x9898, 0x8fad, 0x87c2, 0xb794, 0xafa8, 0xa6bd, 0x9dd2, + 0xcea4, 0xc5b9, 0xbcce, 0xb3e3, 0xe4b5, 0xdbc9, 0xd2de, 0xc9f3, + 0x493c, 0x4150, 0x3865, 0x2f7a, 0x604c, 0x5761, 0x4e76, 0x458b, + 0x765c, 0x6d71, 0x6486, 0x5b9b, 0x8c6d, 0x8382, 0x7b97, 0x72ac, + 0xa37d, 0x9a92, 0x91a7, 0x88bc, 0xb98e, 0xb0a3, 0xa7b8, 0x9ecd, + 0xcf9e, 0xc6b3, 0xbdc8, 0xb4dd, 0xe5af, 0xdcc4, 0xd4d9, 0xcbee, + 0x4b36, 0x424b, 0x3960, 0x3075, 0x6146, 0x585b, 0x4f70, 0x4685, + 0x7757, 0x6e6c, 0x6681, 0x5d96, 0x8e67, 0x857c, 0x7c91, 0x73a6, + 0xa478, 0x9b8d, 0x92a2, 0x89b7, 0xba88, 0xb19d, 0xa8b2, 0xa0c7, + 0xd099, 0xc8ae, 0xbfc3, 0xb6d7, 0xe7a9, 0xdebe, 0xd5d3, 0xcce8, + 0x4c30, 0x4345, 0x3a5a, 0x326f, 0x6241, 0x5a56, 0x516b, 0x487f, + 0x7951, 0x7066, 0x677b, 0x5e90, 0x8f62, 0x8677, 0x7d8c, 0x74a0, + 0xa572, 0x9c87, 0x939c, 0x8bb1, 0xbc83, 0xb398, 0xaaac, 0xa1c1, + 0xd293, 0xc9a8, 0xc0bd, 0xb7d2, 0xe8a4, 0xdfb9, 0xd6cd, 0xcde2, + 0x4e2b, 0x4540, 0x3c54, 0x3369, 0x643b, 0x5b50, 0x5265, 0x497a, + 0x7a4c, 0x7161, 0x6875, 0x5f8a, 0x905c, 0x8771, 0x7f86, 0x769b, + 0xa76d, 0x9e81, 0x9596, 0x8cab, 0xbd7d, 0xb492, 0xaba7, 0xa2bc, + 0xd38e, 0xcaa2, 0xc1b7, 0xb9cc, 0xe99e, 0xe1b3, 0xd8c8, 0xcfdd, + 0x4f25, 0x463a, 0x3d4f, 0x3464, 0x6536, 0x5c4a, 0x535f, 0x4b74, + 0x7b46, 0x735b, 0x6a70, 0x6185, 0x9256, 0x896b, 0x8080, 0x7795, + 0xa867, 0x9f7c, 0x9691, 0x8da6, 0xbe77, 0xb58c, 0xaca1, 0xa4b6, + 0xd588, 0xcc9d, 0xc3b2, 0xbac7, 0xeb98, 0xe2ad, 0xd9c2, 0xd0d7, + 0x501f, 0x4734, 0x3f49, 0x365e, 0x6730, 0x5e45, 0x555a, 0x4c6f, + 0x7d40, 0x7455, 0x6b6a, 0x627f, 0x9351, 0x8a66, 0x817b, 0x7890, + 0xa961, 0xa076, 0x988b, 0x8fa0, 0xc072, 0xb787, 0xae9c, 0xa5b1, + 0xd682, 0xcd97, 0xc4ac, 0xbbc1, 0xec93, 0xe3a8, 0xdabd, 0xd1d1}, + {0x4747, 0x5b3d, 0x6f33, 0x832a, 0x484d, 0x5c43, 0x7039, 0x8530, + 0x4a53, 0x5e49, 0x7240, 0x8636, 0x4b59, 0x5f4f, 0x7446, 0x883c, + 0x4d5f, 0x6156, 0x754c, 0x8942, 0x4e65, 0x625c, 0x7752, 0x8b48, + 0x506c, 0x6462, 0x7858, 0x8c4e, 0x5172, 0x6568, 0x7a5e, 0x8e55, + 0x5059, 0x654f, 0x7945, 0x8d3b, 0x525f, 0x6655, 0x7a4b, 0x8e42, + 0x5365, 0x685b, 0x7c51, 0x9048, 0x556b, 0x6961, 0x7d58, 0x914e, + 0x5771, 0x6b67, 0x7f5e, 0x9354, 0x5877, 0x6c6e, 0x8064, 0x945a, + 0x5a7d, 0x6e74, 0x826a, 0x9660, 0x5b84, 0x6f7a, 0x8370, 0x9766, + 0x5a6a, 0x6e61, 0x8257, 0x964d, 0x5c71, 0x7067, 0x845d, 0x9853, + 0x5d77, 0x716d, 0x8563, 0x995a, 0x5f7d, 0x7373, 0x8769, 0x9b60, + 0x6083, 0x7479, 0x8870, 0x9d66, 0x6289, 0x767f, 0x8a76, 0x9e6c, + 0x638f, 0x7786, 0x8b7c, 0xa072, 0x6595, 0x798c, 0x8d82, 0xa178, + 0x647c, 0x7873, 0x8c69, 0xa05f, 0x6582, 0x7979, 0x8e6f, 0xa265, + 0x6789, 0x7b7f, 0x8f75, 0xa36b, 0x688f, 0x7c85, 0x917b, 0xa572, + 0x6a95, 0x7e8b, 0x9281, 0xa678, 0x6b9b, 0x8091, 0x9488, 0xa87e, + 0x6da1, 0x8197, 0x958e, 0xa984, 0x6ea7, 0x839e, 0x9794, 0xab8a, + 0x6d8e, 0x8284, 0x967b, 0xaa71, 0x6f94, 0x838b, 0x9781, 0xab77, + 0x719a, 0x8591, 0x9987, 0xad7d, 0x72a1, 0x8697, 0x9a8d, 0xae83, + 0x74a7, 0x889d, 0x9c93, 0xb08a, 0x75ad, 0x89a3, 0x9d99, 0xb190, + 0x77b3, 0x8ba9, 0x9fa0, 0xb396, 0x78b9, 0x8caf, 0xa0a6, 0xb49c, + 0x77a0, 0x8b96, 0x9f8d, 0xb483, 0x79a6, 0x8d9c, 0xa193, 0xb589, + 0x7aac, 0x8ea3, 0xa299, 0xb78f, 0x7cb2, 0x90a9, 0xa49f, 0xb895, + 0x7db9, 0x91af, 0xa5a5, 0xba9b, 0x7fbf, 0x93b5, 0xa7ab, 0xbba2, + 0x80c5, 0x94bb, 0xa9b1, 0xbda8, 0x82cb, 0x96c1, 0xaab8, 0xbeae, + 0x81b2, 0x95a8, 0xa99e, 0xbd95, 0x82b8, 0x96ae, 0xaba4, 0xbf9b, + 0x84be, 0x98b4, 0xacab, 0xc0a1, 0x85c4, 0x9abb, 0xaeb1, 0xc2a7, + 0x87ca, 0x9bc1, 0xafb7, 0xc3ad, 0x88d1, 0x9dc7, 0xb1bd, 0xc5b3, + 0x8ad7, 0x9ecd, 0xb2c3, 0xc6ba, 0x8bdd, 0xa0d3, 0xb4c9, 0xc8c0, + 0x8bc4, 0x9fba, 0xb3b0, 0xc7a6, 0x8cca, 0xa0c0, 0xb4b6, 0xc8ad, + 0x8ed0, 0xa2c6, 0xb6bc, 0xcab3, 0x8fd6, 0xa3cc, 0xb7c3, 0xcbb9, + 0x91dc, 0xa5d2, 0xb9c9, 0xcdbf, 0x92e2, 0xa6d9, 0xbacf, 0xcec5, + 0x94e9, 0xa8df, 0xbcd5, 0xd0cb, 0x95ef, 0xa9e5, 0xbddb, 0xd2d2}, + {0x4747, 0x3c5a, 0x316c, 0x267f, 0x5c59, 0x516c, 0x467e, 0x3b91, + 0x726b, 0x677e, 0x5c90, 0x51a3, 0x877d, 0x7c8f, 0x71a2, 0x66b5, + 0x9c8f, 0x92a1, 0x87b4, 0x7cc7, 0xb2a1, 0xa7b3, 0x9cc6, 0x91d9, + 0xc7b3, 0xbcc5, 0xb1d8, 0xa7eb, 0xddc5, 0xd2d7, 0xc7ea, 0xbcfd, + 0x4a41, 0x3f53, 0x3466, 0x2979, 0x5f53, 0x5465, 0x4978, 0x3e8b, + 0x7564, 0x6a77, 0x5f8a, 0x549d, 0x8a76, 0x7f89, 0x749c, 0x69af, + 0xa088, 0x959b, 0x8aae, 0x7fc1, 0xb59a, 0xaaad, 0x9fc0, 0x94d3, + 0xcaac, 0xbfbf, 0xb5d2, 0xaae5, 0xe0be, 0xd5d1, 0xcae4, 0xbff7, + 0x4d3a, 0x424d, 0x3760, 0x2c73, 0x624c, 0x575f, 0x4c72, 0x4285, + 0x785e, 0x6d71, 0x6284, 0x5797, 0x8d70, 0x8283, 0x7796, 0x6ca9, + 0xa382, 0x9895, 0x8da8, 0x82bb, 0xb894, 0xada7, 0xa2ba, 0x97cd, + 0xcda6, 0xc3b9, 0xb8cc, 0xaddf, 0xe3b8, 0xd8cb, 0xcdde, 0xc2f1, + 0x5034, 0x4547, 0x3a5a, 0x2f6d, 0x6546, 0x5a59, 0x506c, 0x457f, + 0x7b58, 0x706b, 0x657e, 0x5a91, 0x906a, 0x857d, 0x7a90, 0x6fa2, + 0xa67c, 0x9b8f, 0x90a2, 0x85b4, 0xbb8e, 0xb0a1, 0xa5b4, 0x9ac6, + 0xd1a0, 0xc6b3, 0xbbc6, 0xb0d8, 0xe6b2, 0xdbc5, 0xd0d8, 0xc5ea, + 0x532e, 0x4841, 0x3d54, 0x3266, 0x6840, 0x5e53, 0x5366, 0x4878, + 0x7e52, 0x7365, 0x6877, 0x5d8a, 0x9364, 0x8877, 0x7d89, 0x739c, + 0xa976, 0x9e89, 0x939b, 0x88ae, 0xbe88, 0xb39b, 0xa8ad, 0x9dc0, + 0xd49a, 0xc9ad, 0xbebf, 0xb3d2, 0xe9ac, 0xdebe, 0xd3d1, 0xc8e4, + 0x5628, 0x4b3b, 0x404d, 0x3560, 0x6c3a, 0x614c, 0x565f, 0x4b72, + 0x814c, 0x765e, 0x6b71, 0x6084, 0x965e, 0x8b70, 0x8183, 0x7696, + 0xac70, 0xa182, 0x9695, 0x8ba8, 0xc182, 0xb694, 0xaba7, 0xa0ba, + 0xd793, 0xcca6, 0xc1b9, 0xb6cc, 0xeca5, 0xe1b8, 0xd6cb, 0xcbde, + 0x5921, 0x4e34, 0x4347, 0x385a, 0x6f33, 0x6446, 0x5959, 0x4e6c, + 0x8445, 0x7958, 0x6e6b, 0x637e, 0x9957, 0x8f6a, 0x847d, 0x7990, + 0xaf69, 0xa47c, 0x998f, 0x8ea2, 0xc47b, 0xb98e, 0xaea1, 0xa4b4, + 0xda8d, 0xcfa0, 0xc4b3, 0xb9c6, 0xef9f, 0xe4b2, 0xd9c5, 0xced8, + 0x5c1b, 0x512e, 0x4641, 0x3c54, 0x722d, 0x6740, 0x5c53, 0x5166, + 0x873f, 0x7c52, 0x7165, 0x6678, 0x9d51, 0x9264, 0x8777, 0x7c8a, + 0xb263, 0xa776, 0x9c89, 0x919c, 0xc775, 0xbc88, 0xb29b, 0xa7ae, + 0xdd87, 0xd29a, 0xc7ad, 0xbcc0, 0xf299, 0xe7ac, 0xdcbf, 0xd1d1}, + {0x4747, 0x5d3f, 0x7338, 0x8930, 0x494b, 0x5f44, 0x753c, 0x8b35, + 0x4c50, 0x6249, 0x7841, 0x8e3a, 0x4e55, 0x644d, 0x7a46, 0x903e, + 0x515a, 0x6752, 0x7d4b, 0x9343, 0x535e, 0x6957, 0x7f4f, 0x9548, + 0x5663, 0x6c5c, 0x8254, 0x974d, 0x5868, 0x6e60, 0x8459, 0x9a51, + 0x4f59, 0x6552, 0x7b4a, 0x9143, 0x515e, 0x6756, 0x7d4f, 0x9347, + 0x5463, 0x6a5b, 0x8054, 0x964c, 0x5667, 0x6c60, 0x8258, 0x9851, + 0x596c, 0x6f64, 0x855d, 0x9b55, 0x5b71, 0x7169, 0x8762, 0x9d5a, + 0x5d75, 0x736e, 0x8966, 0x9f5f, 0x607a, 0x7673, 0x8c6b, 0xa264, + 0x576b, 0x6d64, 0x835c, 0x9955, 0x5970, 0x6f69, 0x8561, 0x9b5a, + 0x5c75, 0x726d, 0x8866, 0x9e5e, 0x5e7a, 0x7472, 0x8a6b, 0xa063, + 0x607e, 0x7677, 0x8c6f, 0xa268, 0x6383, 0x797c, 0x8f74, 0xa56c, + 0x6588, 0x7b80, 0x9179, 0xa771, 0x688c, 0x7e85, 0x947d, 0xaa76, + 0x5f7e, 0x7576, 0x8b6f, 0xa167, 0x6182, 0x777b, 0x8d73, 0xa36c, + 0x6387, 0x7980, 0x8f78, 0xa571, 0x668c, 0x7c84, 0x927d, 0xa875, + 0x6891, 0x7e89, 0x9482, 0xaa7a, 0x6b95, 0x818e, 0x9786, 0xad7f, + 0x6d9a, 0x8393, 0x998b, 0xaf84, 0x709f, 0x8697, 0x9c90, 0xb288, + 0x6690, 0x7c88, 0x9281, 0xa879, 0x6995, 0x7f8d, 0x9586, 0xab7e, + 0x6b99, 0x8192, 0x978a, 0xad83, 0x6e9e, 0x8497, 0x9a8f, 0xb088, + 0x70a3, 0x869b, 0x9c94, 0xb28c, 0x73a8, 0x89a0, 0x9f99, 0xb591, + 0x75ac, 0x8ba5, 0xa19d, 0xb796, 0x78b1, 0x8eaa, 0xa4a2, 0xba9b, + 0x6ea2, 0x849b, 0x9a93, 0xb08c, 0x71a7, 0x87a0, 0x9d98, 0xb391, + 0x73ac, 0x89a4, 0x9f9d, 0xb595, 0x76b0, 0x8ca9, 0xa2a1, 0xb89a, + 0x78b5, 0x8eae, 0xa4a6, 0xba9f, 0x7bba, 0x91b2, 0xa7ab, 0xbda3, + 0x7dbf, 0x93b7, 0xa9b0, 0xbfa8, 0x80c3, 0x96bc, 0xacb4, 0xc2ad, + 0x76b5, 0x8cad, 0xa2a6, 0xb89e, 0x79b9, 0x8fb2, 0xa5aa, 0xbba3, + 0x7bbe, 0x91b7, 0xa7af, 0xbda8, 0x7ec3, 0x94bb, 0xaab4, 0xc0ac, + 0x80c8, 0x96c0, 0xacb9, 0xc2b1, 0x83cc, 0x99c5, 0xafbd, 0xc5b6, + 0x85d1, 0x9bc9, 0xb1c2, 0xc7ba, 0x88d6, 0x9ece, 0xb4c7, 0xcabf, + 0x7ec7, 0x94bf, 0xaab8, 0xc0b0, 0x81cc, 0x97c4, 0xadbd, 0xc3b5, + 0x83d0, 0x99c9, 0xafc1, 0xc5ba, 0x86d5, 0x9cce, 0xb2c6, 0xc8bf, + 0x88da, 0x9ed2, 0xb4cb, 0xcac3, 0x8bdf, 0xa1d7, 0xb7d0, 0xcdc8, + 0x8de3, 0xa3dc, 0xb9d4, 0xcfcd, 0x90e8, 0xa6e1, 0xbcd9, 0xd2d2}, + {0x4747, 0x3a57, 0x2d68, 0x2178, 0x5b5a, 0x4f6b, 0x427b, 0x358b, + 0x706d, 0x637e, 0x568e, 0x4a9f, 0x8481, 0x7791, 0x6ba2, 0x5eb2, + 0x9894, 0x8ca5, 0x7fb5, 0x72c5, 0xada7, 0xa0b8, 0x93c8, 0x87d9, + 0xc1bb, 0xb4cb, 0xa8dc, 0x9bec, 0xd5ce, 0xc9de, 0xbcef, 0xb0ff, + 0x4c40, 0x3f51, 0x3261, 0x2672, 0x6054, 0x5364, 0x4774, 0x3a85, + 0x7467, 0x6877, 0x5b88, 0x4e98, 0x897a, 0x7c8b, 0x6f9b, 0x63ac, + 0x9d8d, 0x919e, 0x84ae, 0x77bf, 0xb2a1, 0xa5b1, 0x98c2, 0x8cd2, + 0xc6b4, 0xb9c5, 0xadd5, 0xa0e6, 0xdac7, 0xced8, 0xc1e8, 0xb4f9, + 0x503a, 0x444a, 0x375b, 0x2b6b, 0x654d, 0x585d, 0x4c6e, 0x3f7e, + 0x7960, 0x6d71, 0x6081, 0x5392, 0x8e74, 0x8184, 0x7495, 0x68a5, + 0xa287, 0x9597, 0x89a8, 0x7cb8, 0xb69a, 0xaaab, 0x9dbb, 0x90cc, + 0xcbae, 0xbebe, 0xb1cf, 0xa5df, 0xdfc1, 0xd3d1, 0xc6e2, 0xb9f2, + 0x5533, 0x4944, 0x3c54, 0x2f64, 0x6a46, 0x5d57, 0x5067, 0x4478, + 0x7e5a, 0x716a, 0x657b, 0x588b, 0x926d, 0x867e, 0x798e, 0x6d9e, + 0xa780, 0x9a91, 0x8ea1, 0x81b2, 0xbb94, 0xafa4, 0xa2b5, 0x95c5, + 0xd0a7, 0xc3b7, 0xb6c8, 0xaad8, 0xe4ba, 0xd7cb, 0xcbdb, 0xbeec, + 0x5a2d, 0x4e3d, 0x414d, 0x345e, 0x6f40, 0x6250, 0x5561, 0x4971, + 0x8353, 0x7664, 0x6a74, 0x5d85, 0x9766, 0x8b77, 0x7e87, 0x7198, + 0xac7a, 0x9f8a, 0x929b, 0x86ab, 0xc08d, 0xb39e, 0xa7ae, 0x9abf, + 0xd4a0, 0xc8b1, 0xbbc1, 0xafd2, 0xe9b4, 0xdcc4, 0xd0d5, 0xc3e5, + 0x5f26, 0x5236, 0x4647, 0x3957, 0x7339, 0x674a, 0x5a5a, 0x4e6b, + 0x884d, 0x7b5d, 0x6f6e, 0x627e, 0x9c60, 0x9070, 0x8381, 0x7691, + 0xb173, 0xa484, 0x9794, 0x8ba5, 0xc587, 0xb897, 0xaca8, 0x9fb8, + 0xd99a, 0xcdaa, 0xc0bb, 0xb3cb, 0xeead, 0xe1be, 0xd4ce, 0xc8df, + 0x641f, 0x5730, 0x4b40, 0x3e51, 0x7833, 0x6c43, 0x5f54, 0x5264, + 0x8d46, 0x8057, 0x7367, 0x6777, 0xa159, 0x946a, 0x887a, 0x7b8b, + 0xb56d, 0xa97d, 0x9c8e, 0x909e, 0xca80, 0xbd90, 0xb1a1, 0xa4b1, + 0xde93, 0xd2a4, 0xc5b4, 0xb8c5, 0xf3a7, 0xe6b7, 0xd9c8, 0xcdd8, + 0x6919, 0x5c29, 0x4f3a, 0x434a, 0x7d2c, 0x703d, 0x644d, 0x575e, + 0x913f, 0x8550, 0x7860, 0x6c71, 0xa653, 0x9963, 0x8d74, 0x8084, + 0xba66, 0xae77, 0xa187, 0x9498, 0xcf79, 0xc28a, 0xb59a, 0xa9ab, + 0xe38d, 0xd69d, 0xcaae, 0xbdbe, 0xf7a0, 0xebb1, 0xdec1, 0xd1d1}, + {0x4747, 0x5e42, 0x763d, 0x8d38, 0x4a4a, 0x6245, 0x7940, 0x913b, + 0x4e4e, 0x6549, 0x7d44, 0x953f, 0x5251, 0x694c, 0x8147, 0x9842, + 0x5555, 0x6d50, 0x844a, 0x9c45, 0x5958, 0x7053, 0x884e, 0x9f49, + 0x5c5b, 0x7456, 0x8b51, 0xa34c, 0x605f, 0x775a, 0x8f55, 0xa650, + 0x4d59, 0x6454, 0x7c4f, 0x934a, 0x505d, 0x6858, 0x8053, 0x974e, + 0x5460, 0x6c5b, 0x8356, 0x9b51, 0x5864, 0x6f5f, 0x875a, 0x9e55, + 0x5b67, 0x7362, 0x8a5d, 0xa258, 0x5f6b, 0x7665, 0x8e60, 0xa55b, + 0x626e, 0x7a69, 0x9264, 0xa95f, 0x6671, 0x7e6c, 0x9567, 0xad62, + 0x536c, 0x6b67, 0x8262, 0x9a5d, 0x576f, 0x6e6a, 0x8665, 0x9d60, + 0x5a73, 0x726e, 0x8969, 0xa164, 0x5e76, 0x7571, 0x8d6c, 0xa467, + 0x617a, 0x7975, 0x9070, 0xa86a, 0x657d, 0x7d78, 0x9473, 0xac6e, + 0x6981, 0x807b, 0x9876, 0xaf71, 0x6c84, 0x847f, 0x9b7a, 0xb375, + 0x597e, 0x7179, 0x8874, 0xa06f, 0x5d82, 0x747d, 0x8c78, 0xa373, + 0x6085, 0x7880, 0x8f7b, 0xa776, 0x6489, 0x7b84, 0x937f, 0xab7a, + 0x688c, 0x7f87, 0x9782, 0xae7d, 0x6b90, 0x838b, 0x9a86, 0xb280, + 0x6f93, 0x868e, 0x9e89, 0xb584, 0x7296, 0x8a91, 0xa18c, 0xb987, + 0x5f91, 0x778c, 0x8e87, 0xa682, 0x6394, 0x7a8f, 0x928a, 0xa985, + 0x6798, 0x7e93, 0x968e, 0xad89, 0x6a9b, 0x8296, 0x9991, 0xb18c, + 0x6e9f, 0x859a, 0x9d95, 0xb490, 0x71a2, 0x899d, 0xa098, 0xb893, + 0x75a6, 0x8ca1, 0xa49b, 0xbb96, 0x78a9, 0x90a4, 0xa89f, 0xbf9a, + 0x65a3, 0x7d9e, 0x9599, 0xac94, 0x69a7, 0x81a2, 0x989d, 0xb098, + 0x6daa, 0x84a5, 0x9ca0, 0xb39b, 0x70ae, 0x88a9, 0x9fa4, 0xb79f, + 0x74b1, 0x8bac, 0xa3a7, 0xbaa2, 0x77b5, 0x8fb0, 0xa6ab, 0xbea6, + 0x7bb8, 0x93b3, 0xaaae, 0xc2a9, 0x7fbc, 0x96b7, 0xaeb1, 0xc5ac, + 0x6cb6, 0x83b1, 0x9bac, 0xb2a7, 0x6fb9, 0x87b4, 0x9eaf, 0xb6aa, + 0x73bd, 0x8ab8, 0xa2b3, 0xb9ae, 0x76c0, 0x8ebb, 0xa5b6, 0xbdb1, + 0x7ac4, 0x92bf, 0xa9ba, 0xc1b5, 0x7ec7, 0x95c2, 0xadbd, 0xc4b8, + 0x81cb, 0x99c6, 0xb0c1, 0xc8bc, 0x85ce, 0x9cc9, 0xb4c4, 0xcbbf, + 0x72c8, 0x89c3, 0xa1be, 0xb8b9, 0x75cc, 0x8dc7, 0xa4c2, 0xbcbd, + 0x79cf, 0x90ca, 0xa8c5, 0xc0c0, 0x7dd3, 0x94ce, 0xacc9, 0xc3c4, + 0x80d6, 0x98d1, 0xafcc, 0xc7c7, 0x84da, 0x9bd5, 0xb3d0, 0xcacb, + 0x87dd, 0x9fd8, 0xb6d3, 0xcece, 0x8be1, 0xa2dc, 0xbad7, 0xd2d2}, + {0x4747, 0x3955, 0x2b63, 0x1d70, 0x5a5b, 0x4c69, 0x3e77, 0x3085, + 0x6d70, 0x5f7e, 0x518c, 0x4399, 0x8084, 0x7292, 0x64a0, 0x56ae, + 0x9399, 0x85a7, 0x77b5, 0x69c3, 0xa7ad, 0x99bb, 0x8bc9, 0x7dd7, + 0xbac2, 0xacd0, 0x9ede, 0x90ec, 0xcdd6, 0xbfe4, 0xb1f2, 0xa3ff, + 0x4d40, 0x3f4e, 0x315c, 0x236a, 0x6155, 0x5363, 0x4570, 0x377e, + 0x7469, 0x6677, 0x5885, 0x4a93, 0x877e, 0x798c, 0x6b99, 0x5da7, + 0x9a92, 0x8ca0, 0x7eae, 0x70bc, 0xada7, 0x9fb5, 0x91c2, 0x83d0, + 0xc0bb, 0xb2c9, 0xa4d7, 0x96e5, 0xd4d0, 0xc6de, 0xb8ec, 0xaaf9, + 0x5439, 0x4647, 0x3855, 0x2a63, 0x674e, 0x595c, 0x4b6a, 0x3d78, + 0x7a62, 0x6c70, 0x5e7e, 0x508c, 0x8e77, 0x8085, 0x7293, 0x64a1, + 0xa18c, 0x9399, 0x85a7, 0x77b5, 0xb4a0, 0xa6ae, 0x98bc, 0x8aca, + 0xc7b5, 0xb9c2, 0xabd0, 0x9dde, 0xdac9, 0xccd7, 0xbee5, 0xb0f3, + 0x5b33, 0x4d41, 0x3f4f, 0x315c, 0x6e47, 0x6055, 0x5263, 0x4471, + 0x815c, 0x736a, 0x6578, 0x5786, 0x9470, 0x867e, 0x788c, 0x6a9a, + 0xa785, 0x9993, 0x8ba1, 0x7daf, 0xbb99, 0xada7, 0x9fb5, 0x91c3, + 0xceae, 0xc0bc, 0xb2ca, 0xa4d8, 0xe1c2, 0xd3d0, 0xc5de, 0xb7ec, + 0x612c, 0x533a, 0x4548, 0x3756, 0x7541, 0x674f, 0x595c, 0x4b6a, + 0x8855, 0x7a63, 0x6c71, 0x5e7f, 0x9b6a, 0x8d78, 0x7f85, 0x7193, + 0xae7e, 0xa08c, 0x929a, 0x84a8, 0xc193, 0xb3a1, 0xa5af, 0x97bc, + 0xd4a7, 0xc6b5, 0xb8c3, 0xaad1, 0xe7bc, 0xdaca, 0xccd8, 0xbee5, + 0x6825, 0x5a33, 0x4c41, 0x3e4f, 0x7b3a, 0x6d48, 0x5f56, 0x5164, + 0x8e4f, 0x805c, 0x726a, 0x6478, 0xa163, 0x9471, 0x867f, 0x788d, + 0xb578, 0xa785, 0x9993, 0x8ba1, 0xc88c, 0xba9a, 0xaca8, 0x9eb6, + 0xdba1, 0xcdae, 0xbfbc, 0xb1ca, 0xeeb5, 0xe0c3, 0xd2d1, 0xc4df, + 0x6f1f, 0x612d, 0x533b, 0x4549, 0x8233, 0x7441, 0x664f, 0x585d, + 0x9548, 0x8756, 0x7964, 0x6b72, 0xa85c, 0x9a6a, 0x8c78, 0x7e86, + 0xbb71, 0xad7f, 0x9f8d, 0x919b, 0xce85, 0xc093, 0xb3a1, 0xa5af, + 0xe29a, 0xd4a8, 0xc6b6, 0xb8c4, 0xf5ae, 0xe7bc, 0xd9ca, 0xcbd8, + 0x7518, 0x6726, 0x5934, 0x4b42, 0x882d, 0x7a3b, 0x6c48, 0x5f56, + 0x9c41, 0x8e4f, 0x805d, 0x726b, 0xaf56, 0xa164, 0x9372, 0x857f, + 0xc26a, 0xb478, 0xa686, 0x9894, 0xd57f, 0xc78d, 0xb99b, 0xaba8, + 0xe893, 0xdaa1, 0xccaf, 0xbebd, 0xfba8, 0xedb6, 0xdfc4, 0xd1d1}, + {0x4747, 0x5f44, 0x7842, 0x9140, 0x4c49, 0x6447, 0x7d44, 0x9642, + 0x514b, 0x6949, 0x8247, 0x9b44, 0x554e, 0x6e4b, 0x8749, 0x9f47, + 0x5a50, 0x734e, 0x8c4b, 0xa449, 0x5f52, 0x7850, 0x914e, 0xa94b, + 0x6455, 0x7d52, 0x9550, 0xae4e, 0x6957, 0x8255, 0x9a52, 0xb350, + 0x4b59, 0x6457, 0x7c55, 0x9552, 0x505c, 0x6959, 0x8157, 0x9a55, + 0x555e, 0x6e5c, 0x8659, 0x9f57, 0x5a60, 0x725e, 0x8b5c, 0xa459, + 0x5f63, 0x7760, 0x905e, 0xa95c, 0x6465, 0x7c63, 0x9560, 0xae5e, + 0x6867, 0x8165, 0x9a63, 0xb360, 0x6d6a, 0x8667, 0x9f65, 0xb763, + 0x4f6c, 0x6869, 0x8167, 0x9a65, 0x546e, 0x6d6c, 0x8669, 0x9e67, + 0x5970, 0x726e, 0x8b6c, 0xa369, 0x5e73, 0x7770, 0x906e, 0xa86c, + 0x6375, 0x7c73, 0x9470, 0xad6e, 0x6877, 0x8175, 0x9973, 0xb270, + 0x6d7a, 0x8577, 0x9e75, 0xb773, 0x727c, 0x8a7a, 0xa377, 0xbc75, + 0x547e, 0x6c7c, 0x857a, 0x9e77, 0x5981, 0x717e, 0x8a7c, 0xa379, + 0x5e83, 0x7681, 0x8f7e, 0xa87c, 0x6285, 0x7b83, 0x9481, 0xad7e, + 0x6788, 0x8085, 0x9983, 0xb181, 0x6c8a, 0x8588, 0x9e85, 0xb683, + 0x718c, 0x8a8a, 0xa388, 0xbb85, 0x768f, 0x8f8c, 0xa78a, 0xc088, + 0x5891, 0x718e, 0x8a8c, 0xa28a, 0x5d93, 0x7691, 0x8e8e, 0xa78c, + 0x6295, 0x7b93, 0x9391, 0xac8e, 0x6798, 0x8095, 0x9893, 0xb191, + 0x6c9a, 0x8498, 0x9d95, 0xb693, 0x719c, 0x899a, 0xa298, 0xbb95, + 0x769f, 0x8e9c, 0xa79a, 0xc098, 0x7aa1, 0x939f, 0xac9c, 0xc49a, + 0x5ca3, 0x75a1, 0x8e9f, 0xa79c, 0x61a6, 0x7aa3, 0x93a1, 0xab9e, + 0x66a8, 0x7fa6, 0x98a3, 0xb0a1, 0x6baa, 0x84a8, 0x9da6, 0xb5a3, + 0x70ad, 0x89aa, 0xa1a8, 0xbaa5, 0x75af, 0x8ead, 0xa6aa, 0xbfa8, + 0x7ab1, 0x93af, 0xabad, 0xc4aa, 0x7fb4, 0x97b1, 0xb0af, 0xc9ad, + 0x61b6, 0x7ab3, 0x92b1, 0xabaf, 0x66b8, 0x7eb6, 0x97b3, 0xb0b1, + 0x6bba, 0x83b8, 0x9cb6, 0xb5b3, 0x70bd, 0x88ba, 0xa1b8, 0xbab6, + 0x74bf, 0x8dbd, 0xa6ba, 0xbeb8, 0x79c1, 0x92bf, 0xabbd, 0xc3ba, + 0x7ec4, 0x97c1, 0xb0bf, 0xc8bd, 0x83c6, 0x9cc4, 0xb4c1, 0xcdbf, + 0x65c8, 0x7ec6, 0x97c3, 0xafc1, 0x6acb, 0x83c8, 0x9bc6, 0xb4c3, + 0x6fcd, 0x88cb, 0xa0c8, 0xb9c6, 0x74cf, 0x8dcd, 0xa5cb, 0xbec8, + 0x79d2, 0x91cf, 0xaacd, 0xc3ca, 0x7ed4, 0x96d2, 0xafcf, 0xc8cd, + 0x83d6, 0x9bd4, 0xb4d2, 0xcdcf, 0x87d9, 0xa0d6, 0xb9d4, 0xd2d2}, + {0x4747, 0x3852, 0x295d, 0x1a68, 0x595c, 0x4a67, 0x3b73, 0x2c7e, + 0x6a72, 0x5b7d, 0x4c88, 0x3e93, 0x7c87, 0x6d92, 0x5e9e, 0x4fa9, + 0x8e9d, 0x7fa8, 0x70b3, 0x61be, 0xa0b2, 0x91be, 0x82c9, 0x73d4, + 0xb2c8, 0xa3d3, 0x94de, 0x85e9, 0xc3de, 0xb4e9, 0xa5f4, 0x96ff, + 0x4f40, 0x404b, 0x3157, 0x2262, 0x6156, 0x5261, 0x436c, 0x3477, + 0x736b, 0x6476, 0x5582, 0x468d, 0x8581, 0x768c, 0x6797, 0x58a2, + 0x9696, 0x87a2, 0x78ad, 0x6ab8, 0xa8ac, 0x99b7, 0x8ac2, 0x7bcd, + 0xbac1, 0xabcd, 0x9cd8, 0x8de3, 0xccd7, 0xbde2, 0xaeed, 0x9ff8, + 0x583a, 0x4945, 0x3a50, 0x2b5b, 0x694f, 0x5a5a, 0x4c66, 0x3d71, + 0x7b65, 0x6c70, 0x5d7b, 0x4e86, 0x8d7a, 0x7e86, 0x6f91, 0x609c, + 0x9f90, 0x909b, 0x81a6, 0x72b1, 0xb1a5, 0xa2b1, 0x93bc, 0x84c7, + 0xc2bb, 0xb3c6, 0xa4d1, 0x96dc, 0xd4d1, 0xc5dc, 0xb6e7, 0xa7f2, + 0x6033, 0x513e, 0x424a, 0x3355, 0x7249, 0x6354, 0x545f, 0x456a, + 0x845e, 0x7569, 0x6675, 0x5780, 0x9574, 0x867f, 0x788a, 0x6995, + 0xa789, 0x9895, 0x89a0, 0x7aab, 0xb99f, 0xaaaa, 0x9bb5, 0x8cc0, + 0xcbb5, 0xbcc0, 0xadcb, 0x9ed6, 0xddca, 0xced5, 0xbfe0, 0xb0eb, + 0x682d, 0x5a38, 0x4b43, 0x3c4e, 0x7a42, 0x6b4d, 0x5c59, 0x4d64, + 0x8c58, 0x7d63, 0x6e6e, 0x5f79, 0x9e6d, 0x8f79, 0x8084, 0x718f, + 0xb083, 0xa18e, 0x9299, 0x83a4, 0xc198, 0xb3a4, 0xa4af, 0x95ba, + 0xd3ae, 0xc4b9, 0xb5c4, 0xa6cf, 0xe5c4, 0xd6cf, 0xc7da, 0xb8e5, + 0x7126, 0x6231, 0x533d, 0x4448, 0x833c, 0x7447, 0x6552, 0x565d, + 0x9551, 0x865d, 0x7768, 0x6873, 0xa667, 0x9772, 0x887d, 0x7988, + 0xb87c, 0xa988, 0x9a93, 0x8b9e, 0xca92, 0xbb9d, 0xaca8, 0x9db3, + 0xdca8, 0xcdb3, 0xbebe, 0xafc9, 0xedbd, 0xdfc8, 0xd0d3, 0xc1de, + 0x7920, 0x6a2b, 0x5b36, 0x4d41, 0x8b35, 0x7c40, 0x6d4c, 0x5e57, + 0x9d4b, 0x8e56, 0x7f61, 0x706c, 0xaf60, 0xa06c, 0x9177, 0x8282, + 0xc176, 0xb281, 0xa38c, 0x9497, 0xd28c, 0xc397, 0xb4a2, 0xa5ad, + 0xe4a1, 0xd5ac, 0xc6b7, 0xb7c2, 0xf6b7, 0xe7c2, 0xd8cd, 0xc9d8, + 0x8219, 0x7324, 0x6430, 0x553b, 0x942f, 0x853a, 0x7645, 0x6750, + 0xa544, 0x9650, 0x875b, 0x7966, 0xb75a, 0xa865, 0x9970, 0x8a7b, + 0xc96f, 0xba7b, 0xab86, 0x9c91, 0xdb85, 0xcc90, 0xbd9b, 0xaea6, + 0xed9b, 0xdea6, 0xcfb1, 0xc0bc, 0xfeb0, 0xefbb, 0xe0c6, 0xd1d1}}; diff --git a/firmware/application/external/pacman/crpal.h b/firmware/application/external/pacman/crpal.h new file mode 100644 index 00000000..382ea917 --- /dev/null +++ b/firmware/application/external/pacman/crpal.h @@ -0,0 +1,2342 @@ +/******************************************************************************/ +/* */ +/* PACMAN GAME FOR ARDUINO DUE */ +/* */ +/******************************************************************************/ +/* Copyright (c) 2014 Dr. NCX (mirracle.mxx@gmail.com) */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL */ +/* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR */ +/* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES */ +/* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, */ +/* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ +/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS */ +/* SOFTWARE. */ +/* */ +/* MIT license, all text above must be included in any redistribution. */ + +const uint16_t cbotab[60] = { + 0x3126, 0x2e59, 0x5829, 0x2237, 0x4055, 0x4e1f, 0x1e49, 0x5146, + 0x3d1f, 0x2456, 0x5934, 0x2b2b, 0x3459, 0x5624, 0x1f3d, 0x4651, + 0x491e, 0x1f4e, 0x5540, 0x3822, 0x2858, 0x592e, 0x2630, 0x3a58, + 0x5321, 0x1e43, 0x4c4c, 0x431e, 0x2153, 0x583a, 0x3226, 0x2d59, + 0x5829, 0x2336, 0x4154, 0x4f1f, 0x1e4a, 0x5146, 0x3d20, 0x2556, + 0x5934, 0x2b2b, 0x3459, 0x5624, 0x203d, 0x4551, 0x4a1e, 0x1f4e, + 0x5441, 0x3623, 0x2858, 0x592d, 0x2630, 0x3858, 0x5221, 0x1e43, + 0x4c4c, 0x431e, 0x2152, 0x5738}; +const uint16_t cbetab[60] = { + 0x1f51, 0x563d, 0x3424, 0x2b59, 0x592b, 0x2434, 0x3d56, 0x511f, + 0x1e46, 0x4e49, 0x401f, 0x2255, 0x5837, 0x2e28, 0x3159, 0x5726, + 0x213a, 0x4352, 0x4b1e, 0x1e4b, 0x5243, 0x3a21, 0x2658, 0x5931, + 0x282e, 0x3758, 0x5523, 0x1f40, 0x4a4f, 0x461e, 0x1f51, 0x563d, + 0x3424, 0x2a59, 0x592b, 0x2534, 0x3e56, 0x511f, 0x1e46, 0x4f4a, + 0x401f, 0x2255, 0x5838, 0x2e29, 0x3259, 0x5826, 0x213a, 0x4353, + 0x4d1e, 0x1e4c, 0x5343, 0x3921, 0x2657, 0x5931, 0x282d, 0x3558, + 0x5522, 0x1f41, 0x494e, 0x471e}; +const uint16_t crotab[36][256] = { + {0x3c3c, 0x5346, 0x6a50, 0x825b, 0x3e53, 0x555e, 0x6d68, 0x8472, + 0x406b, 0x5875, 0x6f80, 0x878a, 0x4383, 0x5a8d, 0x7297, 0x89a2, + 0x459b, 0x5da5, 0x74af, 0x8cba, 0x48b2, 0x5fbd, 0x77c7, 0x8ed1, + 0x4aca, 0x62d4, 0x79df, 0x91e9, 0x4de2, 0x64ec, 0x7cf7, 0x93ff, + 0x4435, 0x5c3f, 0x7349, 0x8b54, 0x474c, 0x5e57, 0x7661, 0x8d6c, + 0x4964, 0x616f, 0x7879, 0x9083, 0x4c7c, 0x6386, 0x7b91, 0x929b, + 0x4e94, 0x669e, 0x7da8, 0x95b3, 0x51ac, 0x68b6, 0x80c0, 0x97cb, + 0x53c3, 0x6bce, 0x82d8, 0x9ae2, 0x56db, 0x6de5, 0x85f0, 0x9cfa, + 0x4d2e, 0x6538, 0x7c43, 0x944d, 0x5046, 0x6750, 0x7f5a, 0x9665, + 0x525d, 0x6a68, 0x8172, 0x997d, 0x5575, 0x6c80, 0x848a, 0x9b94, + 0x578d, 0x6f97, 0x86a2, 0x9eac, 0x5aa5, 0x71af, 0x89b9, 0xa0c4, + 0x5cbd, 0x74c7, 0x8bd1, 0xa2dc, 0x5fd4, 0x76df, 0x8de9, 0xa5f3, + 0x5627, 0x6e32, 0x853c, 0x9d46, 0x593f, 0x7049, 0x8854, 0x9f5e, + 0x5b57, 0x7361, 0x8a6b, 0xa276, 0x5e6e, 0x7579, 0x8d83, 0xa48e, + 0x6086, 0x7891, 0x8f9b, 0xa6a5, 0x639e, 0x7aa8, 0x91b3, 0xa9bd, + 0x65b6, 0x7cc0, 0x94ca, 0xabd5, 0x67ce, 0x7fd8, 0x96e2, 0xaeed, + 0x5f20, 0x772b, 0x8e35, 0xa63f, 0x6238, 0x7943, 0x914d, 0xa857, + 0x6450, 0x7c5a, 0x9365, 0xaa6f, 0x6768, 0x7e72, 0x957c, 0xad87, + 0x697f, 0x808a, 0x9894, 0xaf9f, 0x6b97, 0x83a2, 0x9aac, 0xb2b6, + 0x6eaf, 0x85b9, 0x9dc4, 0xb4ce, 0x70c7, 0x88d1, 0x9fdb, 0xb7e6, + 0x681a, 0x8024, 0x972e, 0xae39, 0x6b31, 0x823c, 0x9946, 0xb150, + 0x6d49, 0x8454, 0x9c5e, 0xb368, 0x6f61, 0x876b, 0x9e76, 0xb680, + 0x7279, 0x8983, 0xa18d, 0xb898, 0x7490, 0x8c9b, 0xa3a5, 0xbbb0, + 0x77a8, 0x8eb3, 0xa6bd, 0xbdc7, 0x79c0, 0x91ca, 0xa8d5, 0xc0df, + 0x7113, 0x881d, 0xa028, 0xb732, 0x732b, 0x8b35, 0xa23f, 0xba4a, + 0x7642, 0x8d4d, 0xa557, 0xbc61, 0x785a, 0x9065, 0xa76f, 0xbf79, + 0x7b72, 0x927c, 0xaa87, 0xc191, 0x7d8a, 0x9594, 0xac9e, 0xc4a9, + 0x80a1, 0x97ac, 0xafb6, 0xc6c1, 0x82b9, 0x9ac4, 0xb1ce, 0xc9d8, + 0x7a0c, 0x9116, 0xa921, 0xc02b, 0x7c24, 0x942e, 0xab39, 0xc343, + 0x7f3c, 0x9646, 0xae50, 0xc55b, 0x8153, 0x995e, 0xb068, 0xc872, + 0x846b, 0x9b76, 0xb380, 0xca8a, 0x8683, 0x9e8d, 0xb598, 0xcda2, + 0x899b, 0xa0a5, 0xb8af, 0xcfba, 0x8bb2, 0xa3bd, 0xbac7, 0xd2d1}, + {0x3c3c, 0x3f2e, 0x4220, 0x4612, 0x5545, 0x5837, 0x5b29, 0x5f1b, + 0x6e4f, 0x7141, 0x7533, 0x7825, 0x8759, 0x8a4b, 0x8e3d, 0x912f, + 0xa063, 0xa355, 0xa747, 0xaa39, 0xb96d, 0xbd5f, 0xc051, 0xc343, + 0xd276, 0xd668, 0xd95a, 0xdc4c, 0xeb80, 0xef72, 0xf264, 0xf656, + 0x364d, 0x3a3f, 0x3d31, 0x4023, 0x4f57, 0x5349, 0x563b, 0x5a2d, + 0x6961, 0x6c53, 0x6f45, 0x7337, 0x826b, 0x855d, 0x884f, 0x8c41, + 0x9b74, 0x9e66, 0xa258, 0xa54a, 0xb47e, 0xb770, 0xbb62, 0xbe54, + 0xcd88, 0xd17a, 0xd46c, 0xd75e, 0xe692, 0xea84, 0xed76, 0xf068, + 0x315f, 0x3551, 0x3843, 0x3b35, 0x4a69, 0x4e5b, 0x514d, 0x543f, + 0x6372, 0x6764, 0x6a56, 0x6e48, 0x7d7c, 0x806e, 0x8360, 0x8752, + 0x9686, 0x9978, 0x9c6a, 0xa05c, 0xaf90, 0xb282, 0xb674, 0xb966, + 0xc89a, 0xcb8c, 0xcf7e, 0xd270, 0xe1a3, 0xe595, 0xe887, 0xeb79, + 0x2c70, 0x2f62, 0x3354, 0x3646, 0x457a, 0x496c, 0x4c5e, 0x4f50, + 0x5e84, 0x6276, 0x6568, 0x685a, 0x778e, 0x7b80, 0x7e72, 0x8264, + 0x9198, 0x948a, 0x977c, 0x9b6e, 0xaaa1, 0xad93, 0xb085, 0xb477, + 0xc3ab, 0xc69d, 0xca8f, 0xcd81, 0xdcb5, 0xdfa7, 0xe399, 0xe68b, + 0x2782, 0x2a74, 0x2e66, 0x3158, 0x408c, 0x437e, 0x4770, 0x4a62, + 0x5996, 0x5d88, 0x607a, 0x636c, 0x729f, 0x7691, 0x7983, 0x7c75, + 0x8ba9, 0x8f9b, 0x928d, 0x967f, 0xa5b3, 0xa8a5, 0xab97, 0xaf89, + 0xbebd, 0xc1af, 0xc4a1, 0xc893, 0xd7c7, 0xdab9, 0xdeab, 0xe19d, + 0x2294, 0x2586, 0x2878, 0x2c6a, 0x3b9d, 0x3e8f, 0x4281, 0x4573, + 0x54a7, 0x5799, 0x5b8b, 0x5e7d, 0x6db1, 0x71a3, 0x7495, 0x7787, + 0x86bb, 0x8aad, 0x8d9f, 0x9091, 0x9fc5, 0xa3b7, 0xa6a9, 0xaa9b, + 0xb9ce, 0xbcc0, 0xbfb2, 0xc3a4, 0xd2d8, 0xd5ca, 0xd8bc, 0xdcae, + 0x1da5, 0x2097, 0x2389, 0x277b, 0x36af, 0x39a1, 0x3c93, 0x4085, + 0x4fb9, 0x52ab, 0x569d, 0x598f, 0x68c3, 0x6bb5, 0x6fa7, 0x7299, + 0x81cc, 0x85be, 0x88b0, 0x8ba2, 0x9ad6, 0x9ec8, 0xa1ba, 0xa4ac, + 0xb3e0, 0xb7d2, 0xbac4, 0xbeb6, 0xcdea, 0xd0dc, 0xd3ce, 0xd7c0, + 0x17b7, 0x1ba9, 0x1e9b, 0x228d, 0x31c1, 0x34b3, 0x37a5, 0x3b97, + 0x4aca, 0x4dbc, 0x50ae, 0x54a0, 0x63d4, 0x66c6, 0x6ab8, 0x6daa, + 0x7cde, 0x7fd0, 0x83c2, 0x86b4, 0x95e8, 0x98da, 0x9ccc, 0x9fbe, + 0xaef2, 0xb2e4, 0xb5d6, 0xb8c8, 0xc7fb, 0xcbed, 0xcedf, 0xd1d2}, + {0x3c3c, 0x3256, 0x2871, 0x1f8c, 0x4241, 0x385b, 0x2e76, 0x2591, + 0x4846, 0x3e61, 0x357b, 0x2b96, 0x4e4b, 0x4466, 0x3b81, 0x319b, + 0x5451, 0x4a6b, 0x4186, 0x37a1, 0x5a56, 0x5071, 0x478b, 0x3da6, + 0x605b, 0x5776, 0x4d91, 0x43ab, 0x6661, 0x5d7b, 0x5396, 0x49b1, + 0x4f40, 0x455b, 0x3c76, 0x3290, 0x5545, 0x4b60, 0x427b, 0x3896, + 0x5b4b, 0x5265, 0x4880, 0x3e9b, 0x6150, 0x586b, 0x4e85, 0x44a0, + 0x6755, 0x5e70, 0x548b, 0x4ba5, 0x6d5b, 0x6475, 0x5a90, 0x51ab, + 0x7460, 0x6a7b, 0x6095, 0x57b0, 0x7a65, 0x7080, 0x669b, 0x5db5, + 0x6245, 0x5960, 0x4f7a, 0x4695, 0x684a, 0x5f65, 0x5580, 0x4c9a, + 0x6f4f, 0x656a, 0x5b85, 0x52a0, 0x7555, 0x6b6f, 0x618a, 0x58a5, + 0x7b5a, 0x7175, 0x688f, 0x5eaa, 0x815f, 0x777a, 0x6e95, 0x64af, + 0x8765, 0x7d7f, 0x749a, 0x6ab5, 0x8d6a, 0x8485, 0x7a9f, 0x70ba, + 0x764a, 0x6c64, 0x637f, 0x599a, 0x7c4f, 0x726a, 0x6984, 0x5f9f, + 0x8254, 0x786f, 0x6f8a, 0x65a4, 0x8859, 0x7f74, 0x758f, 0x6baa, + 0x8e5f, 0x8579, 0x7b94, 0x71af, 0x9464, 0x8b7f, 0x8199, 0x78b4, + 0x9a69, 0x9184, 0x879f, 0x7eb9, 0xa16f, 0x9789, 0x8da4, 0x84bf, + 0x894e, 0x8069, 0x7684, 0x6c9e, 0x8f54, 0x866e, 0x7c89, 0x73a4, + 0x9559, 0x8c74, 0x828e, 0x79a9, 0x9c5e, 0x9279, 0x8894, 0x7fae, + 0xa263, 0x987e, 0x8e99, 0x85b4, 0xa869, 0x9e83, 0x959e, 0x8bb9, + 0xae6e, 0xa489, 0x9ba3, 0x91be, 0xb473, 0xaa8e, 0xa1a9, 0x97c3, + 0x9d53, 0x936e, 0x8988, 0x80a3, 0xa358, 0x9973, 0x908e, 0x86a8, + 0xa95e, 0x9f78, 0x9693, 0x8cae, 0xaf63, 0xa57e, 0x9c98, 0x92b3, + 0xb568, 0xac83, 0xa29e, 0x98b8, 0xbb6d, 0xb288, 0xa8a3, 0x9ebe, + 0xc173, 0xb88d, 0xaea8, 0xa5c3, 0xc778, 0xbe93, 0xb4ad, 0xabc8, + 0xb058, 0xa772, 0x9d8d, 0x93a8, 0xb65d, 0xad78, 0xa392, 0x99ad, + 0xbc62, 0xb37d, 0xa998, 0xa0b2, 0xc268, 0xb982, 0xaf9d, 0xa6b8, + 0xc96d, 0xbf88, 0xb5a2, 0xacbd, 0xcf72, 0xc58d, 0xbba8, 0xb2c2, + 0xd577, 0xcb92, 0xc2ad, 0xb8c8, 0xdb7d, 0xd197, 0xc8b2, 0xbecd, + 0xc45c, 0xba77, 0xb092, 0xa7ac, 0xca62, 0xc07c, 0xb697, 0xadb2, + 0xd067, 0xc682, 0xbd9c, 0xb3b7, 0xd66c, 0xcc87, 0xc3a2, 0xb9bc, + 0xdc72, 0xd28c, 0xc9a7, 0xbfc2, 0xe277, 0xd892, 0xcfac, 0xc5c7, + 0xe87c, 0xdf97, 0xd5b2, 0xcbcc, 0xee81, 0xe59c, 0xdbb7, 0xd2d2}, + {0x3c3c, 0x5738, 0x7335, 0x8f31, 0x4455, 0x6051, 0x7c4e, 0x984b, + 0x4d6e, 0x696b, 0x8567, 0xa164, 0x5687, 0x7284, 0x8e81, 0xaa7d, + 0x5fa1, 0x7b9d, 0x979a, 0xb396, 0x68ba, 0x84b7, 0xa0b3, 0xbbb0, + 0x71d3, 0x8dd0, 0xa9cc, 0xc4c9, 0x7aec, 0x96e9, 0xb1e6, 0xcde2, + 0x3c39, 0x5836, 0x7432, 0x902f, 0x4552, 0x614f, 0x7d4c, 0x9948, + 0x4e6c, 0x6a68, 0x8665, 0xa161, 0x5785, 0x7382, 0x8e7e, 0xaa7b, + 0x609e, 0x7c9b, 0x9797, 0xb394, 0x69b8, 0x84b4, 0xa0b1, 0xbcad, + 0x71d1, 0x8dcd, 0xa9ca, 0xc5c7, 0x7aea, 0x96e7, 0xb2e3, 0xcee0, + 0x3d37, 0x5933, 0x7430, 0x902c, 0x4650, 0x614d, 0x7d49, 0x9946, + 0x4e69, 0x6a66, 0x8662, 0xa25f, 0x5783, 0x737f, 0x8f7c, 0xab78, + 0x609c, 0x7c98, 0x9895, 0xb492, 0x69b5, 0x85b2, 0xa1ae, 0xbdab, + 0x72ce, 0x8ecb, 0xaac8, 0xc6c4, 0x7be8, 0x97e4, 0xb3e1, 0xcedd, + 0x3d34, 0x5931, 0x752e, 0x912a, 0x464e, 0x624a, 0x7e47, 0x9a43, + 0x4f67, 0x6b63, 0x8760, 0xa35d, 0x5880, 0x747d, 0x9079, 0xac76, + 0x6199, 0x7d96, 0x9993, 0xb48f, 0x6ab3, 0x86af, 0xa1ac, 0xbda9, + 0x73cc, 0x8fc9, 0xaac5, 0xc6c2, 0x7ce5, 0x97e2, 0xb3de, 0xcfdb, + 0x3e32, 0x5a2f, 0x762b, 0x9128, 0x474b, 0x6348, 0x7e44, 0x9a41, + 0x5064, 0x6c61, 0x875e, 0xa35a, 0x597e, 0x747a, 0x9077, 0xac74, + 0x6197, 0x7d94, 0x9990, 0xb58d, 0x6ab0, 0x86ad, 0xa2aa, 0xbea6, + 0x73ca, 0x8fc6, 0xabc3, 0xc7bf, 0x7ce3, 0x98df, 0xb4dc, 0xd0d9, + 0x3f30, 0x5a2c, 0x7629, 0x9225, 0x4749, 0x6345, 0x7f42, 0x9b3f, + 0x5062, 0x6c5f, 0x885b, 0xa458, 0x597b, 0x7578, 0x9175, 0xad71, + 0x6295, 0x7e91, 0x9a8e, 0xb68a, 0x6bae, 0x87ab, 0xa3a7, 0xbfa4, + 0x74c7, 0x90c4, 0xacc0, 0xc7bd, 0x7de1, 0x99dd, 0xb4da, 0xd0d6, + 0x3f2d, 0x5b2a, 0x7726, 0x9323, 0x4846, 0x6443, 0x8040, 0x9c3c, + 0x5160, 0x6d5c, 0x8959, 0xa455, 0x5a79, 0x7676, 0x9172, 0xad6f, + 0x6392, 0x7f8f, 0x9a8b, 0xb688, 0x6cac, 0x87a8, 0xa3a5, 0xbfa1, + 0x74c5, 0x90c1, 0xacbe, 0xc8bb, 0x7dde, 0x99db, 0xb5d7, 0xd1d4, + 0x402b, 0x5c27, 0x7724, 0x9321, 0x4944, 0x6441, 0x803d, 0x9c3a, + 0x525d, 0x6d5a, 0x8956, 0xa553, 0x5a77, 0x7673, 0x9270, 0xae6c, + 0x6390, 0x7f8c, 0x9b89, 0xb786, 0x6ca9, 0x88a6, 0xa4a2, 0xc09f, + 0x75c2, 0x91bf, 0xadbc, 0xc9b8, 0x7edc, 0x9ad8, 0xb6d5, 0xd2d1}, + {0x3c3c, 0x3238, 0x2934, 0x2030, 0x543f, 0x4a3b, 0x4137, 0x3833, + 0x6c42, 0x633e, 0x593a, 0x5036, 0x8445, 0x7b41, 0x713d, 0x6839, + 0x9c48, 0x9344, 0x8a40, 0x803c, 0xb44b, 0xab47, 0xa243, 0x993f, + 0xcd4e, 0xc34a, 0xba46, 0xb142, 0xe551, 0xdc4d, 0xd249, 0xc946, + 0x3d4f, 0x334c, 0x2a48, 0x2144, 0x5553, 0x4c4f, 0x424b, 0x3947, + 0x6d56, 0x6452, 0x5b4e, 0x514a, 0x8559, 0x7c55, 0x7351, 0x694d, + 0x9d5c, 0x9458, 0x8b54, 0x8250, 0xb65f, 0xac5b, 0xa357, 0x9a53, + 0xce62, 0xc55e, 0xbb5a, 0xb256, 0xe665, 0xdd61, 0xd35d, 0xca5a, + 0x3e63, 0x3560, 0x2b5c, 0x2258, 0x5667, 0x4d63, 0x445f, 0x3a5b, + 0x6e6a, 0x6566, 0x5c62, 0x525e, 0x876d, 0x7d69, 0x7465, 0x6b61, + 0x9f70, 0x956c, 0x8c68, 0x8364, 0xb773, 0xae6f, 0xa46b, 0x9b67, + 0xcf76, 0xc672, 0xbd6e, 0xb36a, 0xe779, 0xde75, 0xd571, 0xcb6e, + 0x3f77, 0x3674, 0x2d70, 0x236c, 0x577b, 0x4e77, 0x4573, 0x3b6f, + 0x707e, 0x667a, 0x5d76, 0x5472, 0x8881, 0x7e7d, 0x7579, 0x6c75, + 0xa084, 0x9780, 0x8d7c, 0x8478, 0xb887, 0xaf83, 0xa67f, 0x9c7b, + 0xd08a, 0xc786, 0xbe82, 0xb47e, 0xe98d, 0xdf89, 0xd685, 0xcd82, + 0x408b, 0x3788, 0x2e84, 0x2480, 0x598f, 0x4f8b, 0x4687, 0x3d83, + 0x7192, 0x678e, 0x5e8a, 0x5586, 0x8995, 0x8091, 0x768d, 0x6d89, + 0xa198, 0x9894, 0x8f90, 0x858c, 0xb99b, 0xb097, 0xa793, 0x9d8f, + 0xd29e, 0xc89a, 0xbf96, 0xb692, 0xeaa1, 0xe09d, 0xd799, 0xce96, + 0x429f, 0x389c, 0x2f98, 0x2694, 0x5aa3, 0x509f, 0x479b, 0x3e97, + 0x72a6, 0x69a2, 0x5f9e, 0x569a, 0x8aa9, 0x81a5, 0x78a1, 0x6e9d, + 0xa2ac, 0x99a8, 0x90a4, 0x86a0, 0xbbaf, 0xb1ab, 0xa8a7, 0x9fa3, + 0xd3b2, 0xc9ae, 0xc0aa, 0xb7a6, 0xebb5, 0xe2b1, 0xd8ad, 0xcfaa, + 0x43b3, 0x3ab0, 0x30ac, 0x27a8, 0x5bb7, 0x52b3, 0x48af, 0x3fab, + 0x73ba, 0x6ab6, 0x61b2, 0x57ae, 0x8bbd, 0x82b9, 0x79b5, 0x70b1, + 0xa4c0, 0x9abc, 0x91b8, 0x88b4, 0xbcc3, 0xb2bf, 0xa9bb, 0xa0b7, + 0xd4c6, 0xcbc2, 0xc1be, 0xb8ba, 0xecc9, 0xe3c5, 0xdac1, 0xd0be, + 0x44c7, 0x3bc4, 0x31c0, 0x28bc, 0x5ccb, 0x53c7, 0x4ac3, 0x40bf, + 0x74ce, 0x6bca, 0x62c6, 0x59c2, 0x8dd1, 0x83cd, 0x7ac9, 0x71c5, + 0xa5d4, 0x9cd0, 0x92cc, 0x89c8, 0xbdd7, 0xb4d3, 0xaacf, 0xa1cb, + 0xd5da, 0xccd6, 0xc3d2, 0xb9ce, 0xeddd, 0xe4d9, 0xdbd5, 0xd1d2}, + {0x3c3c, 0x3e56, 0x4171, 0x448c, 0x3c48, 0x3f63, 0x427e, 0x4599, + 0x3d55, 0x4070, 0x438b, 0x46a6, 0x3e62, 0x417d, 0x4498, 0x47b2, + 0x3f6f, 0x428a, 0x45a4, 0x48bf, 0x407c, 0x4397, 0x46b1, 0x49cc, + 0x4189, 0x44a3, 0x47be, 0x4ad9, 0x4295, 0x45b0, 0x48cb, 0x4be6, + 0x4f39, 0x5253, 0x556e, 0x5889, 0x5045, 0x5360, 0x567b, 0x5996, + 0x5152, 0x546d, 0x5788, 0x59a3, 0x525f, 0x547a, 0x5795, 0x5ab0, + 0x526c, 0x5587, 0x58a2, 0x5bbc, 0x5379, 0x5694, 0x59ae, 0x5cc9, + 0x5486, 0x57a0, 0x5abb, 0x5dd6, 0x5592, 0x58ad, 0x5bc8, 0x5ee3, + 0x6236, 0x6551, 0x686b, 0x6b86, 0x6343, 0x665d, 0x6978, 0x6c93, + 0x644f, 0x676a, 0x6a85, 0x6da0, 0x655c, 0x6877, 0x6b92, 0x6ead, + 0x6669, 0x6984, 0x6c9f, 0x6fb9, 0x6776, 0x6a91, 0x6dac, 0x70c6, + 0x6883, 0x6b9e, 0x6db8, 0x70d3, 0x6890, 0x6baa, 0x6ec5, 0x71e0, + 0x7533, 0x784e, 0x7b68, 0x7e83, 0x7640, 0x795a, 0x7c75, 0x7f90, + 0x774c, 0x7a67, 0x7d82, 0x809d, 0x7859, 0x7b74, 0x7e8f, 0x81aa, + 0x7966, 0x7c81, 0x7f9c, 0x82b7, 0x7a73, 0x7d8e, 0x80a9, 0x83c3, + 0x7b80, 0x7e9b, 0x81b5, 0x84d0, 0x7c8d, 0x7fa7, 0x82c2, 0x85dd, + 0x8830, 0x8b4b, 0x8e66, 0x9180, 0x893d, 0x8c58, 0x8f72, 0x928d, + 0x8a4a, 0x8d64, 0x907f, 0x939a, 0x8b56, 0x8e71, 0x918c, 0x94a7, + 0x8c63, 0x8f7e, 0x9299, 0x95b4, 0x8d70, 0x908b, 0x93a6, 0x96c1, + 0x8e7d, 0x9198, 0x94b3, 0x97cd, 0x8f8a, 0x92a5, 0x95bf, 0x98da, + 0x9c2d, 0x9f48, 0xa263, 0xa57d, 0x9d3a, 0xa055, 0xa26f, 0xa58a, + 0x9d47, 0xa061, 0xa37c, 0xa697, 0x9e54, 0xa16e, 0xa489, 0xa7a4, + 0x9f60, 0xa27b, 0xa596, 0xa8b1, 0xa06d, 0xa388, 0xa6a3, 0xa9be, + 0xa17a, 0xa495, 0xa7b0, 0xaaca, 0xa287, 0xa5a2, 0xa8bc, 0xabd7, + 0xaf2a, 0xb245, 0xb560, 0xb87b, 0xb037, 0xb352, 0xb66d, 0xb987, + 0xb144, 0xb45f, 0xb779, 0xba94, 0xb251, 0xb56b, 0xb886, 0xbba1, + 0xb35d, 0xb678, 0xb993, 0xbbae, 0xb46a, 0xb685, 0xb9a0, 0xbcbb, + 0xb477, 0xb792, 0xbaad, 0xbdc8, 0xb584, 0xb89f, 0xbbba, 0xbed4, + 0xc227, 0xc542, 0xc85d, 0xcb78, 0xc334, 0xc64f, 0xc96a, 0xcc84, + 0xc441, 0xc75c, 0xca76, 0xcd91, 0xc54e, 0xc869, 0xcb83, 0xce9e, + 0xc65b, 0xc975, 0xcc90, 0xcfab, 0xc767, 0xca82, 0xcd9d, 0xd0b8, + 0xc874, 0xcb8f, 0xceaa, 0xd1c5, 0xc981, 0xcc9c, 0xcfb7, 0xd2d2}, + {0x3c3c, 0x532e, 0x6b20, 0x8312, 0x4c51, 0x6444, 0x7c36, 0x9328, + 0x5d67, 0x755a, 0x8c4c, 0xa43e, 0x6e7d, 0x8570, 0x9d62, 0xb554, + 0x7f93, 0x9686, 0xae78, 0xc66a, 0x8fa9, 0xa79c, 0xbf8e, 0xd680, + 0xa0bf, 0xb8b2, 0xcfa4, 0xe796, 0xb1d5, 0xc9c8, 0xe0ba, 0xf8ac, + 0x3641, 0x4e33, 0x6525, 0x7d18, 0x4757, 0x5e49, 0x763b, 0x8e2e, + 0x586d, 0x6f5f, 0x8751, 0x9f44, 0x6883, 0x8075, 0x9867, 0xaf5a, + 0x7999, 0x918b, 0xa87d, 0xc070, 0x8aaf, 0xa2a1, 0xb993, 0xd185, + 0x9bc5, 0xb2b7, 0xcaa9, 0xe29b, 0xabdb, 0xc3cd, 0xdbbf, 0xf2b1, + 0x3146, 0x4838, 0x602b, 0x781d, 0x415c, 0x594e, 0x7141, 0x8833, + 0x5272, 0x6a64, 0x8157, 0x9949, 0x6388, 0x7b7a, 0x926d, 0xaa5f, + 0x749e, 0x8b90, 0xa383, 0xbb75, 0x84b4, 0x9ca6, 0xb499, 0xcb8b, + 0x95ca, 0xadbc, 0xc4af, 0xdca1, 0xa6e0, 0xbed2, 0xd5c5, 0xedb7, + 0x2b4c, 0x433e, 0x5a30, 0x7222, 0x3c62, 0x5354, 0x6b46, 0x8338, + 0x4d77, 0x646a, 0x7c5c, 0x944e, 0x5d8d, 0x7580, 0x8d72, 0xa464, + 0x6ea3, 0x8696, 0x9d88, 0xb57a, 0x7fb9, 0x97ac, 0xae9e, 0xc690, + 0x90cf, 0xa7c2, 0xbfb4, 0xd7a6, 0xa0e5, 0xb8d8, 0xd0ca, 0xe7bc, + 0x2651, 0x3d43, 0x5535, 0x6d28, 0x3667, 0x4e59, 0x664b, 0x7d3e, + 0x477d, 0x5f6f, 0x7661, 0x8e54, 0x5893, 0x7085, 0x8777, 0x9f6a, + 0x69a9, 0x809b, 0x988d, 0xb080, 0x79bf, 0x91b1, 0xa9a3, 0xc096, + 0x8ad5, 0xa2c7, 0xbab9, 0xd1ab, 0x9beb, 0xb3dd, 0xcacf, 0xe2c1, + 0x2056, 0x3848, 0x4f3b, 0x672d, 0x316c, 0x495e, 0x6051, 0x7843, + 0x4282, 0x5974, 0x7167, 0x8959, 0x5298, 0x6a8a, 0x827d, 0x996f, + 0x63ae, 0x7ba0, 0x9293, 0xaa85, 0x74c4, 0x8cb6, 0xa3a9, 0xbb9b, + 0x85da, 0x9ccc, 0xb4bf, 0xccb1, 0x95f0, 0xade2, 0xc5d5, 0xdcc7, + 0x1b5c, 0x324e, 0x4a40, 0x6232, 0x2b72, 0x4364, 0x5b56, 0x7248, + 0x3c88, 0x547a, 0x6b6c, 0x835e, 0x4d9d, 0x6590, 0x7c82, 0x9474, + 0x5eb3, 0x75a6, 0x8d98, 0xa58a, 0x6ec9, 0x86bc, 0x9eae, 0xb5a0, + 0x7fdf, 0x97d2, 0xafc4, 0xc6b6, 0x90f5, 0xa8e8, 0xbfda, 0xd7cc, + 0x1561, 0x2d53, 0x4445, 0x5c38, 0x2677, 0x3e69, 0x555b, 0x6d4e, + 0x378d, 0x4e7f, 0x6671, 0x7e64, 0x47a3, 0x5f95, 0x7787, 0x8e7a, + 0x58b9, 0x70ab, 0x889d, 0x9f90, 0x69cf, 0x81c1, 0x98b3, 0xb0a6, + 0x7ae5, 0x91d7, 0xa9c9, 0xc1bc, 0x8afb, 0xa2ed, 0xbadf, 0xd1d1}, + {0x3c3c, 0x2b45, 0x1b4f, 0x0b59, 0x4e3b, 0x3e45, 0x2e4f, 0x1d59, + 0x613b, 0x5145, 0x414f, 0x3059, 0x743b, 0x6445, 0x534f, 0x4359, + 0x873b, 0x7745, 0x664f, 0x5659, 0x9a3b, 0x8945, 0x794f, 0x6959, + 0xad3b, 0x9c45, 0x8c4f, 0x7c59, 0xbf3b, 0xaf45, 0x9f4f, 0x8e59, + 0x454d, 0x3557, 0x2461, 0x146b, 0x584d, 0x4857, 0x3761, 0x276b, + 0x6b4d, 0x5a57, 0x4a61, 0x3a6a, 0x7e4d, 0x6d57, 0x5d60, 0x4d6a, + 0x904d, 0x8056, 0x7060, 0x606a, 0xa34d, 0x9356, 0x8360, 0x726a, + 0xb64c, 0xa656, 0x9560, 0x856a, 0xc94c, 0xb956, 0xa860, 0x986a, + 0x4f5e, 0x3e68, 0x2e72, 0x1e7c, 0x615e, 0x5168, 0x4172, 0x317c, + 0x745e, 0x6468, 0x5472, 0x437c, 0x875e, 0x7768, 0x6772, 0x567c, + 0x9a5e, 0x8a68, 0x7972, 0x697c, 0xad5e, 0x9d68, 0x8c72, 0x7c7c, + 0xc05e, 0xaf68, 0x9f72, 0x8f7c, 0xd35e, 0xc268, 0xb272, 0xa27b, + 0x586f, 0x4879, 0x3883, 0x278d, 0x6b6f, 0x5b79, 0x4a83, 0x3a8d, + 0x7e6f, 0x6e79, 0x5d83, 0x4d8d, 0x916f, 0x8079, 0x7083, 0x608d, + 0xa46f, 0x9379, 0x8383, 0x738d, 0xb66f, 0xa679, 0x9683, 0x868d, + 0xc96f, 0xb979, 0xa983, 0x988d, 0xdc6f, 0xcc79, 0xbb83, 0xab8d, + 0x6280, 0x528a, 0x4194, 0x319e, 0x7580, 0x648a, 0x5494, 0x449e, + 0x8780, 0x778a, 0x6794, 0x579e, 0x9a80, 0x8a8a, 0x7a94, 0x699e, + 0xad80, 0x9d8a, 0x8d94, 0x7c9e, 0xc080, 0xb08a, 0x9f94, 0x8f9e, + 0xd380, 0xc38a, 0xb294, 0xa29e, 0xe680, 0xd58a, 0xc594, 0xb59e, + 0x6b92, 0x5b9b, 0x4ba5, 0x3aaf, 0x7e91, 0x6e9b, 0x5ea5, 0x4daf, + 0x9191, 0x819b, 0x70a5, 0x60af, 0xa491, 0x949b, 0x83a5, 0x73af, + 0xb791, 0xa69b, 0x96a5, 0x86af, 0xca91, 0xb99b, 0xa9a5, 0x99af, + 0xdc91, 0xcc9b, 0xbca5, 0xacaf, 0xef91, 0xdf9b, 0xcfa5, 0xbeaf, + 0x75a3, 0x65ad, 0x54b7, 0x44c1, 0x88a3, 0x78ad, 0x67b7, 0x57c1, + 0x9ba3, 0x8aad, 0x7ab7, 0x6ac0, 0xada3, 0x9dad, 0x8db7, 0x7dc0, + 0xc0a3, 0xb0ad, 0xa0b6, 0x8fc0, 0xd3a3, 0xc3ac, 0xb3b6, 0xa2c0, + 0xe6a2, 0xd6ac, 0xc5b6, 0xb5c0, 0xf9a2, 0xe9ac, 0xd8b6, 0xc8c0, + 0x7fb4, 0x6ebe, 0x5ec8, 0x4ed2, 0x91b4, 0x81be, 0x71c8, 0x60d2, + 0xa4b4, 0x94be, 0x84c8, 0x73d2, 0xb7b4, 0xa7be, 0x96c8, 0x86d2, + 0xcab4, 0xbabe, 0xa9c8, 0x99d2, 0xddb4, 0xccbe, 0xbcc8, 0xacd2, + 0xf0b4, 0xdfbe, 0xcfc8, 0xbfd2, 0xffb4, 0xf2be, 0xe2c8, 0xd2d2}, + {0x3c3c, 0x4c4e, 0x5c61, 0x6d74, 0x3c50, 0x4c63, 0x5d75, 0x6d88, + 0x3c64, 0x4c77, 0x5d8a, 0x6d9c, 0x3c78, 0x4d8b, 0x5d9e, 0x6eb1, + 0x3c8d, 0x4d9f, 0x5db2, 0x6ec5, 0x3da1, 0x4db4, 0x5ec7, 0x6ed9, + 0x3db5, 0x4dc8, 0x5edb, 0x6eee, 0x3dca, 0x4edc, 0x5eef, 0x6fff, + 0x4a35, 0x5a47, 0x6b5a, 0x7b6d, 0x4a49, 0x5a5c, 0x6b6e, 0x7b81, + 0x4a5d, 0x5b70, 0x6b83, 0x7c96, 0x4a71, 0x5b84, 0x6b97, 0x7caa, + 0x4b86, 0x5b99, 0x6cab, 0x7cbe, 0x4b9a, 0x5bad, 0x6cc0, 0x7cd2, + 0x4bae, 0x5cc1, 0x6cd4, 0x7ce7, 0x4bc3, 0x5cd5, 0x6ce8, 0x7dfb, + 0x582e, 0x6840, 0x7953, 0x8966, 0x5842, 0x6855, 0x7968, 0x897a, + 0x5856, 0x6969, 0x797c, 0x8a8f, 0x586b, 0x697d, 0x7990, 0x8aa3, + 0x597f, 0x6992, 0x7aa4, 0x8ab7, 0x5993, 0x69a6, 0x7ab9, 0x8acb, + 0x59a7, 0x6aba, 0x7acd, 0x8be0, 0x59bc, 0x6ace, 0x7ae1, 0x8bf4, + 0x6627, 0x763a, 0x874c, 0x975f, 0x663b, 0x774e, 0x8761, 0x9873, + 0x664f, 0x7762, 0x8775, 0x9888, 0x6764, 0x7776, 0x8889, 0x989c, + 0x6778, 0x778b, 0x889d, 0x98b0, 0x678c, 0x789f, 0x88b2, 0x99c5, + 0x67a0, 0x78b3, 0x88c6, 0x99d9, 0x67b5, 0x78c8, 0x88da, 0x99ed, + 0x7420, 0x8533, 0x9545, 0xa658, 0x7434, 0x8547, 0x955a, 0xa66d, + 0x7448, 0x855b, 0x956e, 0xa681, 0x755d, 0x8570, 0x9682, 0xa695, + 0x7571, 0x8584, 0x9697, 0xa6a9, 0x7585, 0x8698, 0x96ab, 0xa7be, + 0x759a, 0x86ac, 0x96bf, 0xa7d2, 0x76ae, 0x86c1, 0x97d3, 0xa7e6, + 0x8219, 0x932c, 0xa33f, 0xb451, 0x822d, 0x9340, 0xa353, 0xb466, + 0x8342, 0x9354, 0xa467, 0xb47a, 0x8356, 0x9369, 0xa47b, 0xb48e, + 0x836a, 0x947d, 0xa490, 0xb5a2, 0x837e, 0x9491, 0xa4a4, 0xb5b7, + 0x8493, 0x94a5, 0xa5b8, 0xb5cb, 0x84a7, 0x94ba, 0xa5cd, 0xb5df, + 0x9012, 0xa125, 0xb138, 0xc24a, 0x9126, 0xa139, 0xb14c, 0xc25f, + 0x913b, 0xa14d, 0xb260, 0xc273, 0x914f, 0xa162, 0xb274, 0xc287, + 0x9163, 0xa276, 0xb289, 0xc39c, 0x9177, 0xa28a, 0xb29d, 0xc3b0, + 0x928c, 0xa29f, 0xb3b1, 0xc3c4, 0x92a0, 0xa2b3, 0xb3c6, 0xc3d8, + 0x9e0b, 0xaf1e, 0xbf31, 0xd043, 0x9f1f, 0xaf32, 0xc045, 0xd058, + 0x9f34, 0xaf46, 0xc059, 0xd06c, 0x9f48, 0xb05b, 0xc06e, 0xd180, + 0x9f5c, 0xb06f, 0xc082, 0xd195, 0xa071, 0xb083, 0xc196, 0xd1a9, + 0xa085, 0xb098, 0xc1aa, 0xd1bd, 0xa099, 0xb1ac, 0xc1bf, 0xd2d1}, + {0x3c3c, 0x482b, 0x551a, 0x6109, 0x534b, 0x5f3a, 0x6c29, 0x7818, + 0x6a5a, 0x7649, 0x8338, 0x8f27, 0x8169, 0x8d58, 0x9a47, 0xa637, + 0x9878, 0xa467, 0xb156, 0xbe46, 0xaf87, 0xbb76, 0xc866, 0xd555, + 0xc696, 0xd285, 0xdf75, 0xec64, 0xdda5, 0xea94, 0xf684, 0xff73, + 0x3449, 0x4138, 0x4e28, 0x5a17, 0x4c58, 0x5847, 0x6537, 0x7126, + 0x6367, 0x6f56, 0x7c46, 0x8835, 0x7a76, 0x8666, 0x9355, 0x9f44, + 0x9185, 0x9d75, 0xaa64, 0xb653, 0xa894, 0xb484, 0xc173, 0xce62, + 0xbfa4, 0xcb93, 0xd882, 0xe571, 0xd6b3, 0xe2a2, 0xef91, 0xfc80, + 0x2d57, 0x3a46, 0x4735, 0x5324, 0x4566, 0x5155, 0x5e44, 0x6a33, + 0x5c75, 0x6864, 0x7553, 0x8142, 0x7384, 0x7f73, 0x8c62, 0x9852, + 0x8a93, 0x9682, 0xa371, 0xaf61, 0xa1a2, 0xad91, 0xba81, 0xc770, + 0xb8b1, 0xc4a0, 0xd190, 0xde7f, 0xcfc0, 0xdbaf, 0xe89f, 0xf58e, + 0x2664, 0x3353, 0x4043, 0x4c32, 0x3d73, 0x4a62, 0x5752, 0x6341, + 0x5582, 0x6171, 0x6e61, 0x7a50, 0x6c91, 0x7881, 0x8570, 0x915f, + 0x83a0, 0x8f90, 0x9c7f, 0xa86e, 0x9aaf, 0xa69f, 0xb38e, 0xbf7d, + 0xb1bf, 0xbdae, 0xca9d, 0xd78c, 0xc8ce, 0xd4bd, 0xe1ac, 0xee9b, + 0x1f72, 0x2c61, 0x3950, 0x453f, 0x3681, 0x4370, 0x505f, 0x5c4e, + 0x4e90, 0x5a7f, 0x676e, 0x735e, 0x659f, 0x718e, 0x7e7d, 0x8a6d, + 0x7cae, 0x889d, 0x958c, 0xa17c, 0x93bd, 0x9fac, 0xac9c, 0xb88b, + 0xaacc, 0xb6bb, 0xc3ab, 0xd09a, 0xc1db, 0xcdca, 0xdaba, 0xe7a9, + 0x187f, 0x256e, 0x325e, 0x3e4d, 0x2f8e, 0x3c7d, 0x496d, 0x555c, + 0x469d, 0x538c, 0x607c, 0x6c6b, 0x5eac, 0x6a9c, 0x778b, 0x837a, + 0x75bb, 0x81ab, 0x8e9a, 0x9a89, 0x8ccb, 0x98ba, 0xa5a9, 0xb198, + 0xa3da, 0xafc9, 0xbcb8, 0xc8a7, 0xbae9, 0xc6d8, 0xd3c7, 0xe0b6, + 0x118d, 0x1e7c, 0x2b6b, 0x375a, 0x289c, 0x358b, 0x427a, 0x4e69, + 0x3fab, 0x4c9a, 0x5989, 0x6579, 0x57ba, 0x63a9, 0x7098, 0x7c88, + 0x6ec9, 0x7ab8, 0x87a7, 0x9397, 0x85d8, 0x91c7, 0x9eb7, 0xaaa6, + 0x9ce7, 0xa8d6, 0xb5c6, 0xc1b5, 0xb3f6, 0xbfe5, 0xccd5, 0xd9c4, + 0x0a9a, 0x1789, 0x2379, 0x3068, 0x21a9, 0x2e98, 0x3b88, 0x4777, + 0x38b8, 0x45a7, 0x5297, 0x5e86, 0x4fc7, 0x5cb7, 0x69a6, 0x7595, + 0x67d6, 0x73c6, 0x80b5, 0x8ca4, 0x7ee6, 0x8ad5, 0x97c4, 0xa3b3, + 0x95f5, 0xa1e4, 0xaed3, 0xbac2, 0xacff, 0xb8f3, 0xc5e2, 0xd1d2}, + {0x3c3c, 0x2d51, 0x1e67, 0x0f7d, 0x473d, 0x3853, 0x2969, 0x1a7f, + 0x523f, 0x4355, 0x346b, 0x2581, 0x5d41, 0x4e57, 0x3f6d, 0x3083, + 0x6842, 0x5958, 0x4a6e, 0x3b84, 0x7344, 0x645a, 0x5570, 0x4686, + 0x7e46, 0x6f5c, 0x6072, 0x5188, 0x8948, 0x7a5d, 0x6b73, 0x5c89, + 0x4c46, 0x3d5c, 0x2e72, 0x1f88, 0x5748, 0x485d, 0x3973, 0x2a89, + 0x6249, 0x535f, 0x4475, 0x368b, 0x6e4b, 0x5f61, 0x5077, 0x418d, + 0x794d, 0x6a63, 0x5b79, 0x4c8f, 0x844e, 0x7564, 0x667a, 0x5790, + 0x8f50, 0x8066, 0x717c, 0x6292, 0x9a52, 0x8b68, 0x7c7e, 0x6d94, + 0x5d50, 0x4e66, 0x3f7c, 0x3092, 0x6852, 0x5968, 0x4a7e, 0x3b94, + 0x7354, 0x6469, 0x557f, 0x4695, 0x7e55, 0x6f6b, 0x6081, 0x5197, + 0x8957, 0x7a6d, 0x6b83, 0x5c99, 0x9559, 0x866f, 0x7785, 0x689b, + 0xa05a, 0x9170, 0x8286, 0x739c, 0xab5c, 0x9c72, 0x8d88, 0x7e9e, + 0x6e5a, 0x5f70, 0x5086, 0x419c, 0x795c, 0x6a72, 0x5b88, 0x4c9e, + 0x845e, 0x7574, 0x668a, 0x57a0, 0x8f60, 0x8076, 0x718b, 0x62a1, + 0x9a61, 0x8b77, 0x7c8d, 0x6da3, 0xa563, 0x9679, 0x878f, 0x78a5, + 0xb065, 0xa17b, 0x9291, 0x83a7, 0xbc66, 0xad7c, 0x9e92, 0x8fa8, + 0x7e65, 0x6f7b, 0x6091, 0x51a7, 0x8a66, 0x7b7c, 0x6c92, 0x5da8, + 0x9568, 0x867e, 0x7794, 0x68aa, 0xa06a, 0x9180, 0x8296, 0x73ac, + 0xab6c, 0x9c82, 0x8d97, 0x7ead, 0xb66d, 0xa783, 0x9899, 0x89af, + 0xc16f, 0xb285, 0xa39b, 0x94b1, 0xcc71, 0xbd87, 0xae9d, 0x9fb3, + 0x8f6f, 0x8085, 0x719b, 0x62b1, 0x9a71, 0x8b87, 0x7c9d, 0x6db3, + 0xa572, 0x9688, 0x879e, 0x78b4, 0xb174, 0xa28a, 0x93a0, 0x84b6, + 0xbc76, 0xad8c, 0x9ea2, 0x8fb8, 0xc778, 0xb88e, 0xa9a4, 0x9ab9, + 0xd279, 0xc38f, 0xb4a5, 0xa5bb, 0xdd7b, 0xce91, 0xbfa7, 0xb0bd, + 0xa079, 0x918f, 0x82a5, 0x73bb, 0xab7b, 0x9c91, 0x8da7, 0x7ebd, + 0xb67d, 0xa793, 0x98a9, 0x89bf, 0xc17e, 0xb294, 0xa3aa, 0x94c0, + 0xcc80, 0xbd96, 0xaeac, 0x9fc2, 0xd782, 0xc998, 0xbaae, 0xabc4, + 0xe384, 0xd49a, 0xc5b0, 0xb6c5, 0xee85, 0xdf9b, 0xd0b1, 0xc1c7, + 0xb184, 0xa29a, 0x93b0, 0x84c5, 0xbc85, 0xad9b, 0x9eb1, 0x8fc7, + 0xc787, 0xb89d, 0xa9b3, 0x9ac9, 0xd289, 0xc39f, 0xb4b5, 0xa5cb, + 0xdd8a, 0xcea0, 0xbfb6, 0xb0cc, 0xe88c, 0xd9a2, 0xcab8, 0xbbce, + 0xf38e, 0xe4a4, 0xd5ba, 0xc6d0, 0xfe90, 0xefa6, 0xe0bc, 0xd2d2}, + {0x3c3c, 0x5541, 0x6f47, 0x894d, 0x4054, 0x5a5a, 0x7360, 0x8d65, + 0x446d, 0x5e73, 0x7879, 0x927e, 0x4886, 0x628c, 0x7c91, 0x9697, + 0x4d9f, 0x66a4, 0x80aa, 0x9ab0, 0x51b8, 0x6bbd, 0x84c3, 0x9ec9, + 0x55d0, 0x6fd6, 0x89dc, 0xa3e1, 0x59e9, 0x73ef, 0x8df5, 0xa7fa, + 0x4236, 0x5b3b, 0x7541, 0x8f47, 0x464e, 0x6054, 0x7a5a, 0x9360, + 0x4a67, 0x646d, 0x7e73, 0x9878, 0x4e80, 0x6886, 0x828c, 0x9c91, + 0x5399, 0x6c9f, 0x86a4, 0xa0aa, 0x57b2, 0x71b7, 0x8bbd, 0xa4c3, + 0x5bcb, 0x75d0, 0x8fd6, 0xa9dc, 0x5fe3, 0x79e9, 0x93ef, 0xadf4, + 0x4830, 0x6236, 0x7b3b, 0x9541, 0x4c49, 0x664e, 0x8054, 0x995a, + 0x5061, 0x6a67, 0x846d, 0x9e73, 0x547a, 0x6e80, 0x8886, 0xa28b, + 0x5993, 0x7399, 0x8c9e, 0xa6a4, 0x5dac, 0x77b2, 0x91b7, 0xabbd, + 0x61c5, 0x7bca, 0x95d0, 0xafd6, 0x66de, 0x7fe3, 0x99e9, 0xb3ef, + 0x4e2a, 0x6830, 0x8135, 0x9b3b, 0x5243, 0x6c49, 0x864e, 0xa054, + 0x565c, 0x7061, 0x8a67, 0xa46d, 0x5b74, 0x747a, 0x8e80, 0xa886, + 0x5f8d, 0x7993, 0x9399, 0xac9e, 0x63a6, 0x7dac, 0x97b1, 0xb1b7, + 0x67bf, 0x81c5, 0x9bca, 0xb5d0, 0x6cd8, 0x85dd, 0x9fe3, 0xb9e9, + 0x5424, 0x6e2a, 0x8830, 0xa135, 0x583d, 0x7243, 0x8c48, 0xa64e, + 0x5c56, 0x765c, 0x9061, 0xaa67, 0x616f, 0x7a74, 0x947a, 0xae80, + 0x6587, 0x7f8d, 0x9993, 0xb299, 0x69a0, 0x83a6, 0x9dac, 0xb7b1, + 0x6db9, 0x87bf, 0xa1c4, 0xbbca, 0x72d2, 0x8cd8, 0xa5dd, 0xbfe3, + 0x5a1e, 0x7424, 0x8e2a, 0xa72f, 0x5e37, 0x783d, 0x9243, 0xac48, + 0x6250, 0x7c56, 0x965b, 0xb061, 0x6769, 0x816f, 0x9a74, 0xb47a, + 0x6b82, 0x8587, 0x9f8d, 0xb993, 0x6f9a, 0x89a0, 0xa3a6, 0xbdac, + 0x74b3, 0x8db9, 0xa7bf, 0xc1c4, 0x78cc, 0x92d2, 0xabd7, 0xc5dd, + 0x6019, 0x7a1e, 0x9424, 0xae2a, 0x6431, 0x7e37, 0x983d, 0xb242, + 0x694a, 0x8250, 0x9c56, 0xb65b, 0x6d63, 0x8769, 0xa16e, 0xba74, + 0x717c, 0x8b81, 0xa587, 0xbf8d, 0x7595, 0x8f9a, 0xa9a0, 0xc3a6, + 0x7aad, 0x93b3, 0xadb9, 0xc7bf, 0x7ec6, 0x98cc, 0xb2d2, 0xcbd7, + 0x6613, 0x8018, 0x9a1e, 0xb424, 0x6a2c, 0x8431, 0x9e37, 0xb83d, + 0x6f44, 0x894a, 0xa250, 0xbc55, 0x735d, 0x8d63, 0xa769, 0xc06e, + 0x7776, 0x917c, 0xab81, 0xc587, 0x7b8f, 0x9594, 0xaf9a, 0xc9a0, + 0x80a8, 0x9aad, 0xb3b3, 0xcdb9, 0x84c0, 0x9ec6, 0xb8cc, 0xd2d1}, + {0x3c3c, 0x3a30, 0x3925, 0x381a, 0x5543, 0x5438, 0x522c, 0x5121, + 0x6e4a, 0x6d3f, 0x6c34, 0x6b28, 0x8851, 0x8646, 0x853b, 0x8430, + 0xa159, 0xa04d, 0x9f42, 0x9d37, 0xba60, 0xb955, 0xb849, 0xb73e, + 0xd467, 0xd35c, 0xd151, 0xd046, 0xed6e, 0xec63, 0xeb58, 0xe94d, + 0x384e, 0x3743, 0x3638, 0x342d, 0x5156, 0x504b, 0x4f3f, 0x4e34, + 0x6b5d, 0x6a52, 0x6847, 0x673b, 0x8464, 0x8359, 0x824e, 0x8143, + 0x9e6c, 0x9c60, 0x9b55, 0x9a4a, 0xb773, 0xb668, 0xb55c, 0xb351, + 0xd07a, 0xcf6f, 0xce64, 0xcd58, 0xea81, 0xe876, 0xe76b, 0xe660, + 0x3561, 0x3356, 0x324b, 0x3140, 0x4e69, 0x4d5d, 0x4c52, 0x4a47, + 0x6770, 0x6665, 0x655a, 0x644e, 0x8177, 0x806c, 0x7e61, 0x7d56, + 0x9a7f, 0x9973, 0x9868, 0x975d, 0xb486, 0xb27b, 0xb16f, 0xb064, + 0xcd8d, 0xcc82, 0xca77, 0xc96b, 0xe694, 0xe589, 0xe47e, 0xe373, + 0x3174, 0x3069, 0x2f5e, 0x2e53, 0x4b7c, 0x4970, 0x4865, 0x475a, + 0x6483, 0x6378, 0x626c, 0x6061, 0x7d8a, 0x7c7f, 0x7b74, 0x7a69, + 0x9792, 0x9686, 0x947b, 0x9370, 0xb099, 0xaf8e, 0xae82, 0xac77, + 0xc9a0, 0xc895, 0xc78a, 0xc67e, 0xe3a7, 0xe29c, 0xe091, 0xdf86, + 0x2e87, 0x2d7c, 0x2b71, 0x2a66, 0x478f, 0x4683, 0x4578, 0x446d, + 0x6196, 0x5f8b, 0x5e7f, 0x5d74, 0x7a9d, 0x7992, 0x7787, 0x767b, + 0x93a4, 0x9299, 0x918e, 0x9083, 0xadac, 0xaba1, 0xaa95, 0xa98a, + 0xc6b3, 0xc5a8, 0xc49d, 0xc291, 0xdfba, 0xdeaf, 0xdda4, 0xdc99, + 0x2a9a, 0x298f, 0x2884, 0x2779, 0x44a2, 0x4396, 0x418b, 0x4080, + 0x5da9, 0x5c9e, 0x5b92, 0x5987, 0x76b0, 0x75a5, 0x749a, 0x738e, + 0x90b7, 0x8fac, 0x8da1, 0x8c96, 0xa9bf, 0xa8b3, 0xa7a8, 0xa69d, + 0xc3c6, 0xc1bb, 0xc0b0, 0xbfa4, 0xdccd, 0xdbc2, 0xdab7, 0xd8ac, + 0x27ad, 0x26a2, 0x2597, 0x238c, 0x40b5, 0x3fa9, 0x3e9e, 0x3d93, + 0x5abc, 0x58b1, 0x57a5, 0x569a, 0x73c3, 0x72b8, 0x71ad, 0x6fa1, + 0x8cca, 0x8bbf, 0x8ab4, 0x89a9, 0xa6d2, 0xa5c6, 0xa3bb, 0xa2b0, + 0xbfd9, 0xbece, 0xbdc2, 0xbcb7, 0xd9e0, 0xd7d5, 0xd6ca, 0xd5bf, + 0x24c0, 0x22b5, 0x21aa, 0x209f, 0x3dc7, 0x3cbc, 0x3ab1, 0x39a6, + 0x56cf, 0x55c4, 0x54b8, 0x53ad, 0x70d6, 0x6ecb, 0x6dc0, 0x6cb4, + 0x89dd, 0x88d2, 0x87c7, 0x85bc, 0xa2e5, 0xa1d9, 0xa0ce, 0x9fc3, + 0xbcec, 0xbbe1, 0xb9d5, 0xb8ca, 0xd5f3, 0xd4e8, 0xd3dd, 0xd1d2}, + {0x3c3c, 0x3657, 0x3073, 0x2a8f, 0x3f43, 0x3a5f, 0x347b, 0x2e96, + 0x434b, 0x3e66, 0x3882, 0x329e, 0x4752, 0x426e, 0x3c8a, 0x36a6, + 0x4b5a, 0x4676, 0x4091, 0x3aad, 0x4f62, 0x4a7d, 0x4499, 0x3eb5, + 0x5369, 0x4e85, 0x48a1, 0x42bc, 0x5771, 0x518d, 0x4ca8, 0x46c4, + 0x4f3d, 0x4a59, 0x4475, 0x3e90, 0x5345, 0x4e61, 0x487c, 0x4298, + 0x574d, 0x5268, 0x4c84, 0x46a0, 0x5b54, 0x5670, 0x508c, 0x4aa7, + 0x5f5c, 0x5a78, 0x5493, 0x4eaf, 0x6364, 0x5d7f, 0x589b, 0x52b7, + 0x676b, 0x6187, 0x5ca3, 0x56be, 0x6b73, 0x658f, 0x60aa, 0x5ac6, + 0x633f, 0x5e5b, 0x5877, 0x5292, 0x6747, 0x6263, 0x5c7e, 0x569a, + 0x6b4f, 0x666a, 0x6086, 0x5aa2, 0x6f56, 0x6972, 0x648e, 0x5ea9, + 0x735e, 0x6d7a, 0x6895, 0x62b1, 0x7766, 0x7181, 0x6c9d, 0x66b9, + 0x7b6d, 0x7589, 0x70a5, 0x6ac0, 0x7f75, 0x7991, 0x74ac, 0x6ec8, + 0x7741, 0x725d, 0x6c79, 0x6694, 0x7b49, 0x7665, 0x7080, 0x6a9c, + 0x7f51, 0x796c, 0x7488, 0x6ea4, 0x8358, 0x7d74, 0x7890, 0x72ab, + 0x8760, 0x817c, 0x7c97, 0x76b3, 0x8b67, 0x8583, 0x809f, 0x7abb, + 0x8f6f, 0x898b, 0x84a6, 0x7ec2, 0x9377, 0x8d92, 0x88ae, 0x82ca, + 0x8b43, 0x855f, 0x807b, 0x7a96, 0x8f4b, 0x8967, 0x8482, 0x7e9e, + 0x9352, 0x8d6e, 0x888a, 0x82a6, 0x975a, 0x9176, 0x8c91, 0x86ad, + 0x9b62, 0x957d, 0x9099, 0x8ab5, 0x9f69, 0x9985, 0x94a1, 0x8ebc, + 0xa371, 0x9d8d, 0x97a8, 0x92c4, 0xa779, 0xa194, 0x9bb0, 0x96cc, + 0x9f45, 0x9961, 0x947c, 0x8e98, 0xa34d, 0x9d68, 0x9884, 0x92a0, + 0xa754, 0xa170, 0x9c8c, 0x96a7, 0xab5c, 0xa578, 0xa093, 0x9aaf, + 0xaf64, 0xa97f, 0xa49b, 0x9eb7, 0xb36b, 0xad87, 0xa7a3, 0xa2be, + 0xb773, 0xb18f, 0xabaa, 0xa6c6, 0xbb7b, 0xb596, 0xafb2, 0xaace, + 0xb347, 0xad63, 0xa87e, 0xa29a, 0xb74f, 0xb16a, 0xac86, 0xa6a2, + 0xbb56, 0xb572, 0xb08e, 0xaaa9, 0xbf5e, 0xb97a, 0xb395, 0xaeb1, + 0xc366, 0xbd81, 0xb79d, 0xb2b9, 0xc76d, 0xc189, 0xbba5, 0xb6c0, + 0xcb75, 0xc591, 0xbfac, 0xbac8, 0xcf7d, 0xc998, 0xc3b4, 0xbed0, + 0xc749, 0xc165, 0xbc80, 0xb69c, 0xcb51, 0xc56c, 0xbf88, 0xbaa4, + 0xcf58, 0xc974, 0xc390, 0xbeab, 0xd360, 0xcd7c, 0xc797, 0xc2b3, + 0xd767, 0xd183, 0xcb9f, 0xc6bb, 0xdb6f, 0xd58b, 0xcfa7, 0xcac2, + 0xdf77, 0xd992, 0xd3ae, 0xceca, 0xe37e, 0xdd9a, 0xd7b6, 0xd2d2}, + {0x3c3c, 0x5734, 0x722d, 0x8e25, 0x4754, 0x624d, 0x7e45, 0x993e, + 0x536d, 0x6e65, 0x895e, 0xa556, 0x5e86, 0x797e, 0x9577, 0xb06f, + 0x6a9e, 0x8597, 0xa08f, 0xbc88, 0x75b7, 0x90af, 0xaca8, 0xc7a1, + 0x81d0, 0x9cc8, 0xb7c1, 0xd3b9, 0x8ce8, 0xa7e1, 0xc3d9, 0xded2, + 0x3a3b, 0x5534, 0x702d, 0x8c25, 0x4554, 0x614d, 0x7c45, 0x973e, + 0x516d, 0x6c65, 0x875e, 0xa356, 0x5c86, 0x787e, 0x9377, 0xae6f, + 0x689e, 0x8397, 0x9e8f, 0xba88, 0x73b7, 0x8faf, 0xaaa8, 0xc5a0, + 0x7fd0, 0x9ac8, 0xb6c1, 0xd1b9, 0x8ae8, 0xa6e1, 0xc1d9, 0xdcd2, + 0x383b, 0x5334, 0x6f2c, 0x8a25, 0x4354, 0x5f4d, 0x7a45, 0x963e, + 0x4f6d, 0x6a65, 0x865e, 0xa156, 0x5a85, 0x767e, 0x9177, 0xad6f, + 0x669e, 0x8197, 0x9d8f, 0xb888, 0x71b7, 0x8daf, 0xa8a8, 0xc4a0, + 0x7dd0, 0x98c8, 0xb4c1, 0xcfb9, 0x88e8, 0xa4e1, 0xbfd9, 0xdbd2, + 0x363b, 0x5134, 0x6d2c, 0x8825, 0x4254, 0x5d4d, 0x7845, 0x943e, + 0x4d6d, 0x6865, 0x845e, 0x9f56, 0x5985, 0x747e, 0x8f76, 0xab6f, + 0x649e, 0x7f97, 0x9b8f, 0xb688, 0x70b7, 0x8baf, 0xa6a8, 0xc2a0, + 0x7bcf, 0x96c8, 0xb2c1, 0xcdb9, 0x87e8, 0xa2e1, 0xbdd9, 0xd9d2, + 0x343b, 0x5034, 0x6b2c, 0x8625, 0x4054, 0x5b4c, 0x7745, 0x923e, + 0x4b6d, 0x6765, 0x825e, 0x9d56, 0x5785, 0x727e, 0x8e76, 0xa96f, + 0x629e, 0x7e97, 0x998f, 0xb488, 0x6eb7, 0x89af, 0xa5a8, 0xc0a0, + 0x79cf, 0x95c8, 0xb0c0, 0xcbb9, 0x85e8, 0xa0e1, 0xbcd9, 0xd7d2, + 0x323b, 0x4e34, 0x692c, 0x8525, 0x3e54, 0x594c, 0x7545, 0x903d, + 0x496d, 0x6565, 0x805e, 0x9c56, 0x5585, 0x707e, 0x8c76, 0xa76f, + 0x609e, 0x7c96, 0x978f, 0xb388, 0x6cb7, 0x87af, 0xa3a8, 0xbea0, + 0x77cf, 0x93c8, 0xaec0, 0xcab9, 0x83e8, 0x9ee1, 0xbad9, 0xd5d2, + 0x313b, 0x4c34, 0x672c, 0x8325, 0x3c54, 0x574c, 0x7345, 0x8e3d, + 0x486d, 0x6365, 0x7e5e, 0x9a56, 0x5385, 0x6f7e, 0x8a76, 0xa56f, + 0x5f9e, 0x7a96, 0x958f, 0xb187, 0x6ab7, 0x86af, 0xa1a8, 0xbca0, + 0x76cf, 0x91c8, 0xacc0, 0xc8b9, 0x81e8, 0x9de0, 0xb8d9, 0xd3d2, + 0x2f3b, 0x4a34, 0x662c, 0x8125, 0x3a54, 0x564c, 0x7145, 0x8c3d, + 0x466c, 0x6165, 0x7d5e, 0x9856, 0x5185, 0x6d7e, 0x8876, 0xa36f, + 0x5d9e, 0x7896, 0x948f, 0xaf87, 0x68b7, 0x84af, 0x9fa8, 0xbaa0, + 0x74cf, 0x8fc8, 0xabc0, 0xc6b9, 0x7fe8, 0x9be0, 0xb6d9, 0xd2d1}, + {0x3c3c, 0x2f3c, 0x233d, 0x163d, 0x523d, 0x463e, 0x393e, 0x2d3f, + 0x693f, 0x5d3f, 0x5040, 0x4441, 0x8040, 0x7441, 0x6741, 0x5b42, + 0x9742, 0x8a42, 0x7e43, 0x7144, 0xae43, 0xa144, 0x9544, 0x8845, + 0xc445, 0xb845, 0xac46, 0x9f47, 0xdb46, 0xcf47, 0xc247, 0xb648, + 0x3f4f, 0x3350, 0x2750, 0x1a51, 0x5651, 0x4a51, 0x3d52, 0x3153, + 0x6d52, 0x6153, 0x5453, 0x4854, 0x8454, 0x7754, 0x6b55, 0x5f56, + 0x9b55, 0x8e56, 0x8257, 0x7557, 0xb257, 0xa557, 0x9958, 0x8c59, + 0xc858, 0xbc59, 0xaf5a, 0xa35a, 0xdf5a, 0xd35a, 0xc65b, 0xba5c, + 0x4363, 0x3763, 0x2a64, 0x1e65, 0x5a64, 0x4e65, 0x4166, 0x3566, + 0x7166, 0x6566, 0x5867, 0x4c68, 0x8867, 0x7b68, 0x6f69, 0x6369, + 0x9f69, 0x9269, 0x866a, 0x796b, 0xb66a, 0xa96b, 0x9d6c, 0x906c, + 0xcc6c, 0xc06d, 0xb36d, 0xa76e, 0xe36d, 0xd76e, 0xca6f, 0xbe6f, + 0x4776, 0x3b77, 0x2e78, 0x2278, 0x5e78, 0x5279, 0x4579, 0x397a, + 0x7579, 0x697a, 0x5c7b, 0x507b, 0x8c7b, 0x7f7c, 0x737c, 0x667d, + 0xa37c, 0x967d, 0x8a7e, 0x7d7e, 0xb97e, 0xad7f, 0xa17f, 0x9480, + 0xd07f, 0xc480, 0xb781, 0xab81, 0xe781, 0xdb82, 0xce82, 0xc283, + 0x4b8a, 0x3f8b, 0x328b, 0x268c, 0x628c, 0x568c, 0x498d, 0x3d8e, + 0x798d, 0x6c8e, 0x608e, 0x548f, 0x908f, 0x838f, 0x7790, 0x6a91, + 0xa790, 0x9a91, 0x8e91, 0x8192, 0xbd92, 0xb192, 0xa493, 0x9894, + 0xd493, 0xc894, 0xbb94, 0xaf95, 0xeb95, 0xdf95, 0xd296, 0xc697, + 0x4f9e, 0x439e, 0x369f, 0x2aa0, 0x669f, 0x5aa0, 0x4da0, 0x41a1, + 0x7da1, 0x70a1, 0x64a2, 0x57a3, 0x94a2, 0x87a3, 0x7ba4, 0x6ea4, + 0xaaa4, 0x9ea4, 0x92a5, 0x85a6, 0xc1a5, 0xb5a6, 0xa8a7, 0x9ca7, + 0xd8a7, 0xcca7, 0xbfa8, 0xb3a9, 0xefa8, 0xe3a9, 0xd6aa, 0xcaaa, + 0x53b1, 0x47b2, 0x3ab3, 0x2eb3, 0x6ab3, 0x5eb3, 0x51b4, 0x45b5, + 0x81b4, 0x74b5, 0x68b6, 0x5bb6, 0x98b6, 0x8bb6, 0x7fb7, 0x72b8, + 0xaeb7, 0xa2b8, 0x96b9, 0x89b9, 0xc5b9, 0xb9ba, 0xacba, 0xa0bb, + 0xdcba, 0xd0bb, 0xc3bc, 0xb7bc, 0xf3bc, 0xe6bd, 0xdabd, 0xcebe, + 0x57c5, 0x4bc6, 0x3ec6, 0x32c7, 0x6ec6, 0x61c7, 0x55c8, 0x49c8, + 0x85c8, 0x78c9, 0x6cc9, 0x5fca, 0x9cc9, 0x8fca, 0x83cb, 0x76cb, + 0xb2cb, 0xa6cc, 0x99cc, 0x8dcd, 0xc9cc, 0xbdcd, 0xb0ce, 0xa4ce, + 0xe0ce, 0xd4cf, 0xc7cf, 0xbbd0, 0xf7d0, 0xead0, 0xded1, 0xd1d2}, + {0x3c3c, 0x4354, 0x4b6d, 0x5286, 0x3c4b, 0x4364, 0x4b7d, 0x5396, + 0x3c5a, 0x4373, 0x4b8c, 0x53a5, 0x3c6a, 0x4483, 0x4b9c, 0x53b5, + 0x3c79, 0x4492, 0x4bab, 0x53c4, 0x3c89, 0x44a2, 0x4cbb, 0x53d4, + 0x3c98, 0x44b1, 0x4cca, 0x53e3, 0x3da8, 0x44c1, 0x4cda, 0x53f3, + 0x4e37, 0x5550, 0x5d69, 0x6482, 0x4e46, 0x555f, 0x5d78, 0x6591, + 0x4e56, 0x556f, 0x5d88, 0x65a1, 0x4e65, 0x567e, 0x5d97, 0x65b0, + 0x4e75, 0x568e, 0x5da7, 0x65c0, 0x4e84, 0x569d, 0x5eb6, 0x65cf, + 0x4e94, 0x56ad, 0x5ec6, 0x65de, 0x4fa3, 0x56bc, 0x5ed5, 0x65ee, + 0x6032, 0x674b, 0x6f64, 0x767d, 0x6041, 0x675a, 0x6f73, 0x778c, + 0x6051, 0x676a, 0x6f83, 0x779c, 0x6060, 0x6879, 0x6f92, 0x77ab, + 0x6070, 0x6889, 0x6fa2, 0x77bb, 0x607f, 0x6898, 0x70b1, 0x77ca, + 0x608f, 0x68a8, 0x70c1, 0x77da, 0x619e, 0x68b7, 0x70d0, 0x77e9, + 0x722d, 0x7946, 0x815f, 0x8878, 0x723d, 0x7956, 0x816f, 0x8988, + 0x724c, 0x7965, 0x817e, 0x8997, 0x725c, 0x7a75, 0x818e, 0x89a7, + 0x726b, 0x7a84, 0x819d, 0x89b6, 0x727b, 0x7a94, 0x82ad, 0x89c6, + 0x728a, 0x7aa3, 0x82bc, 0x89d5, 0x739a, 0x7ab3, 0x82cc, 0x89e4, + 0x8429, 0x8b41, 0x935a, 0x9a73, 0x8438, 0x8b51, 0x936a, 0x9b83, + 0x8447, 0x8b60, 0x9379, 0x9b92, 0x8457, 0x8c70, 0x9389, 0x9ba2, + 0x8466, 0x8c7f, 0x9398, 0x9bb1, 0x8476, 0x8c8f, 0x94a8, 0x9bc1, + 0x8485, 0x8c9e, 0x94b7, 0x9bd0, 0x8595, 0x8cae, 0x94c7, 0x9be0, + 0x9624, 0x9d3d, 0xa556, 0xac6f, 0x9633, 0x9d4c, 0xa565, 0xad7e, + 0x9643, 0x9d5c, 0xa575, 0xad8e, 0x9652, 0x9e6b, 0xa584, 0xad9d, + 0x9662, 0x9e7b, 0xa594, 0xadad, 0x9671, 0x9e8a, 0xa6a3, 0xadbc, + 0x9681, 0x9e9a, 0xa6b3, 0xadcc, 0x9790, 0x9ea9, 0xa6c2, 0xaddb, + 0xa81f, 0xaf38, 0xb751, 0xbe6a, 0xa82f, 0xaf47, 0xb760, 0xbf79, + 0xa83e, 0xaf57, 0xb770, 0xbf89, 0xa84d, 0xb066, 0xb77f, 0xbf98, + 0xa85d, 0xb076, 0xb78f, 0xbfa8, 0xa86c, 0xb085, 0xb89e, 0xbfb7, + 0xa87c, 0xb095, 0xb8ae, 0xbfc7, 0xa98b, 0xb0a4, 0xb8bd, 0xbfd6, + 0xba1a, 0xc133, 0xc94c, 0xd065, 0xba2a, 0xc143, 0xc95c, 0xd175, + 0xba39, 0xc152, 0xc96b, 0xd184, 0xba49, 0xc262, 0xc97b, 0xd194, + 0xba58, 0xc271, 0xc98a, 0xd1a3, 0xba68, 0xc281, 0xca9a, 0xd1b3, + 0xba77, 0xc290, 0xcaa9, 0xd1c2, 0xbb87, 0xc2a0, 0xcab9, 0xd2d1}, + {0x3c3c, 0x502c, 0x651c, 0x790c, 0x4f4f, 0x6340, 0x7830, 0x8c20, + 0x6263, 0x7654, 0x8b44, 0xa034, 0x7577, 0x8a68, 0x9e58, 0xb348, + 0x888b, 0x9d7c, 0xb16c, 0xc65c, 0x9b9f, 0xb090, 0xc580, 0xd970, + 0xafb3, 0xc3a4, 0xd894, 0xec84, 0xc2c7, 0xd6b8, 0xeba8, 0xff98, + 0x3544, 0x4a34, 0x5e24, 0x7315, 0x4858, 0x5d48, 0x7138, 0x8629, + 0x5b6c, 0x705c, 0x844c, 0x993d, 0x6e80, 0x8370, 0x9860, 0xac51, + 0x8294, 0x9684, 0xab74, 0xbf65, 0x95a8, 0xa998, 0xbe88, 0xd378, + 0xa8bb, 0xbdac, 0xd19c, 0xe68c, 0xbbcf, 0xd0c0, 0xe4b0, 0xf9a0, + 0x2e4c, 0x433c, 0x582d, 0x6c1d, 0x4260, 0x5650, 0x6b40, 0x7f31, + 0x5574, 0x6964, 0x7e54, 0x9245, 0x6888, 0x7c78, 0x9168, 0xa659, + 0x7b9c, 0x908c, 0xa47c, 0xb96d, 0x8eb0, 0xa3a0, 0xb790, 0xcc81, + 0xa1c4, 0xb6b4, 0xcba4, 0xdf95, 0xb5d8, 0xc9c8, 0xdeb8, 0xf2a9, + 0x2854, 0x3c44, 0x5135, 0x6625, 0x3b68, 0x5058, 0x6449, 0x7939, + 0x4e7c, 0x636c, 0x775d, 0x8c4d, 0x6190, 0x7680, 0x8a71, 0x9f61, + 0x74a4, 0x8994, 0x9e85, 0xb275, 0x88b8, 0x9ca8, 0xb199, 0xc589, + 0x9bcc, 0xafbc, 0xc4ac, 0xd99d, 0xaee0, 0xc3d0, 0xd7c0, 0xecb1, + 0x215c, 0x364d, 0x4a3d, 0x5f2d, 0x3470, 0x4961, 0x5e51, 0x7241, + 0x4884, 0x5c74, 0x7165, 0x8555, 0x5b98, 0x6f88, 0x8479, 0x9969, + 0x6eac, 0x839c, 0x978d, 0xac7d, 0x81c0, 0x96b0, 0xaaa1, 0xbf91, + 0x94d4, 0xa9c4, 0xbdb5, 0xd2a5, 0xa7e8, 0xbcd8, 0xd1c9, 0xe5b9, + 0x1b64, 0x2f55, 0x4445, 0x5835, 0x2e78, 0x4269, 0x5759, 0x6c49, + 0x418c, 0x567d, 0x6a6d, 0x7f5d, 0x54a0, 0x6991, 0x7d81, 0x9271, + 0x67b4, 0x7ca5, 0x9195, 0xa585, 0x7bc8, 0x8fb9, 0xa4a9, 0xb899, + 0x8edc, 0xa2cd, 0xb7bd, 0xcbad, 0xa1f0, 0xb5e0, 0xcad1, 0xdfc1, + 0x146d, 0x295d, 0x3d4d, 0x523e, 0x2781, 0x3c71, 0x5061, 0x6552, + 0x3a95, 0x4f85, 0x6475, 0x7865, 0x4ea8, 0x6299, 0x7789, 0x8b79, + 0x61bc, 0x75ad, 0x8a9d, 0x9f8d, 0x74d0, 0x89c1, 0x9db1, 0xb2a1, + 0x87e4, 0x9cd5, 0xb0c5, 0xc5b5, 0x9af8, 0xafe9, 0xc3d9, 0xd8c9, + 0x0d75, 0x2265, 0x3755, 0x4b46, 0x2189, 0x3579, 0x4a69, 0x5e5a, + 0x349d, 0x488d, 0x5d7d, 0x726e, 0x47b1, 0x5ca1, 0x7091, 0x8582, + 0x5ac5, 0x6fb5, 0x83a5, 0x9896, 0x6dd9, 0x82c9, 0x97b9, 0xabaa, + 0x81ed, 0x95dd, 0xaacd, 0xbebe, 0x94ff, 0xa8f1, 0xbde1, 0xd1d1}, + {0x3c3c, 0x2b4a, 0x1a58, 0x0967, 0x4c3c, 0x3b4a, 0x2a58, 0x1967, + 0x5c3c, 0x4b4a, 0x3b58, 0x2a67, 0x6d3c, 0x5c4a, 0x4b58, 0x3a67, + 0x7d3c, 0x6c4a, 0x5b58, 0x4b67, 0x8d3c, 0x7d4a, 0x6c58, 0x5b67, + 0x9e3c, 0x8d4a, 0x7c58, 0x6b67, 0xae3c, 0x9d4a, 0x8d58, 0x7c67, + 0x484b, 0x3759, 0x2668, 0x1576, 0x584b, 0x4759, 0x3668, 0x2676, + 0x694b, 0x5859, 0x4768, 0x3676, 0x794b, 0x6859, 0x5768, 0x4676, + 0x894b, 0x7859, 0x6868, 0x5776, 0x9a4b, 0x8959, 0x7868, 0x6776, + 0xaa4b, 0x9959, 0x8868, 0x7876, 0xba4b, 0xaa59, 0x9968, 0x8876, + 0x545a, 0x4368, 0x3277, 0x2285, 0x645a, 0x5468, 0x4377, 0x3285, + 0x755a, 0x6468, 0x5377, 0x4285, 0x855a, 0x7468, 0x6477, 0x5385, + 0x965a, 0x8568, 0x7477, 0x6385, 0xa65a, 0x9568, 0x8477, 0x7385, + 0xb65a, 0xa668, 0x9577, 0x8485, 0xc75a, 0xb668, 0xa577, 0x9485, + 0x6069, 0x4f78, 0x3f86, 0x2e94, 0x7169, 0x6078, 0x4f86, 0x3e94, + 0x8169, 0x7078, 0x5f86, 0x4f94, 0x9169, 0x8178, 0x7086, 0x5f94, + 0xa269, 0x9178, 0x8086, 0x6f94, 0xb269, 0xa178, 0x9186, 0x8094, + 0xc369, 0xb278, 0xa186, 0x9094, 0xd369, 0xc278, 0xb186, 0xa094, + 0x6d79, 0x5c87, 0x4b95, 0x3aa4, 0x7d79, 0x6c87, 0x5b95, 0x4aa4, + 0x8d79, 0x7c87, 0x6c95, 0x5ba4, 0x9e79, 0x8d87, 0x7c95, 0x6ba4, + 0xae79, 0x9d87, 0x8c95, 0x7ca4, 0xbe79, 0xae87, 0x9d95, 0x8ca4, + 0xcf79, 0xbe87, 0xad95, 0x9ca4, 0xdf79, 0xce87, 0xbe95, 0xada4, + 0x7988, 0x6896, 0x57a5, 0x46b3, 0x8988, 0x7896, 0x67a5, 0x57b3, + 0x9a88, 0x8996, 0x78a5, 0x67b3, 0xaa88, 0x9996, 0x88a5, 0x77b3, + 0xba88, 0xa996, 0x99a5, 0x88b3, 0xcb88, 0xba96, 0xa9a5, 0x98b3, + 0xdb88, 0xca96, 0xb9a5, 0xa9b3, 0xeb88, 0xdb96, 0xcaa5, 0xb9b3, + 0x8597, 0x74a5, 0x63b4, 0x53c2, 0x9597, 0x85a5, 0x74b4, 0x63c2, + 0xa697, 0x95a5, 0x84b4, 0x73c2, 0xb697, 0xa5a5, 0x95b4, 0x84c2, + 0xc797, 0xb6a5, 0xa5b4, 0x94c2, 0xd797, 0xc6a5, 0xb5b4, 0xa4c2, + 0xe797, 0xd7a5, 0xc6b4, 0xb5c2, 0xf897, 0xe7a5, 0xd6b4, 0xc5c2, + 0x91a6, 0x80b5, 0x70c3, 0x5fd1, 0xa2a6, 0x91b5, 0x80c3, 0x6fd1, + 0xb2a6, 0xa1b5, 0x90c3, 0x80d1, 0xc2a6, 0xb2b5, 0xa1c3, 0x90d1, + 0xd3a6, 0xc2b5, 0xb1c3, 0xa0d1, 0xe3a6, 0xd2b5, 0xc2c3, 0xb1d1, + 0xf4a6, 0xe3b5, 0xd2c3, 0xc1d1, 0xffa6, 0xf3b5, 0xe2c3, 0xd1d2}, + {0x3c3c, 0x504a, 0x6459, 0x7868, 0x3d52, 0x5161, 0x656f, 0x797e, + 0x3e68, 0x5277, 0x6686, 0x7b94, 0x3f7e, 0x538d, 0x679c, 0x7cab, + 0x4094, 0x54a3, 0x68b2, 0x7dc1, 0x41ab, 0x55b9, 0x6ac8, 0x7ed7, + 0x42c1, 0x56d0, 0x6bde, 0x7fed, 0x43d7, 0x57e6, 0x6cf5, 0x80ff, + 0x4734, 0x5b43, 0x7052, 0x8461, 0x484b, 0x5d59, 0x7168, 0x8577, + 0x4961, 0x5e70, 0x727e, 0x868d, 0x4a77, 0x5f86, 0x7395, 0x87a3, + 0x4c8d, 0x609c, 0x74ab, 0x88ba, 0x4da4, 0x61b2, 0x75c1, 0x89d0, + 0x4eba, 0x62c9, 0x76d7, 0x8be6, 0x4fd0, 0x63df, 0x77ee, 0x8cfc, + 0x532d, 0x673c, 0x7b4b, 0x905a, 0x5443, 0x6852, 0x7c61, 0x9170, + 0x555a, 0x6968, 0x7e77, 0x9286, 0x5670, 0x6a7f, 0x7f8d, 0x939c, + 0x5786, 0x6b95, 0x80a4, 0x94b2, 0x589c, 0x6dab, 0x81ba, 0x95c9, + 0x59b3, 0x6ec1, 0x82d0, 0x96df, 0x5ac9, 0x6fd8, 0x83e6, 0x97f5, + 0x5e26, 0x7335, 0x8744, 0x9b52, 0x603c, 0x744b, 0x885a, 0x9c69, + 0x6153, 0x7561, 0x8970, 0x9d7f, 0x6269, 0x7678, 0x8a86, 0x9f95, + 0x637f, 0x778e, 0x8b9d, 0xa0ab, 0x6495, 0x78a4, 0x8cb3, 0xa1c2, + 0x65ac, 0x79ba, 0x8ec9, 0xa2d8, 0x66c2, 0x7ad1, 0x8fdf, 0xa3ee, + 0x6a1f, 0x7e2e, 0x933c, 0xa74b, 0x6b35, 0x7f44, 0x9453, 0xa861, + 0x6c4b, 0x815a, 0x9569, 0xa978, 0x6d62, 0x8270, 0x967f, 0xaa8e, + 0x6e78, 0x8387, 0x9795, 0xaba4, 0x708e, 0x849d, 0x98ac, 0xacba, + 0x71a4, 0x85b3, 0x99c2, 0xadd1, 0x72bb, 0x86c9, 0x9ad8, 0xafe7, + 0x7618, 0x8a27, 0x9e35, 0xb344, 0x772e, 0x8b3d, 0x9f4c, 0xb45a, + 0x7844, 0x8c53, 0xa062, 0xb571, 0x795b, 0x8d69, 0xa278, 0xb687, + 0x7a71, 0x8e80, 0xa38e, 0xb79d, 0x7b87, 0x8f96, 0xa4a5, 0xb8b3, + 0x7c9d, 0x91ac, 0xa5bb, 0xb9ca, 0x7db3, 0x92c2, 0xa6d1, 0xbae0, + 0x8111, 0x961f, 0xaa2e, 0xbe3d, 0x8227, 0x9736, 0xab44, 0xbf53, + 0x843d, 0x984c, 0xac5b, 0xc069, 0x8553, 0x9962, 0xad71, 0xc180, + 0x866a, 0x9a78, 0xae87, 0xc396, 0x8780, 0x9b8f, 0xaf9d, 0xc4ac, + 0x8896, 0x9ca5, 0xb0b4, 0xc5c2, 0x89ac, 0x9dbb, 0xb2ca, 0xc6d9, + 0x8d0a, 0xa118, 0xb627, 0xca36, 0x8e20, 0xa22f, 0xb73d, 0xcb4c, + 0x8f36, 0xa345, 0xb854, 0xcc62, 0x904c, 0xa55b, 0xb96a, 0xcd79, + 0x9162, 0xa671, 0xba80, 0xce8f, 0x9279, 0xa787, 0xbb96, 0xcfa5, + 0x948f, 0xa89e, 0xbcac, 0xd0bb, 0x95a5, 0xa9b4, 0xbdc3, 0xd2d1}, + {0x3c3c, 0x442c, 0x4c1c, 0x540c, 0x5448, 0x5c38, 0x6428, 0x6c19, + 0x6c54, 0x7445, 0x7c35, 0x8425, 0x8561, 0x8d51, 0x9541, 0x9d31, + 0x9d6d, 0xa55d, 0xad4e, 0xb53e, 0xb57a, 0xbd6a, 0xc55a, 0xcd4a, + 0xce86, 0xd676, 0xde67, 0xe657, 0xe693, 0xee83, 0xf673, 0xfe63, + 0x354b, 0x3d3b, 0x452c, 0x4d1c, 0x4d58, 0x5648, 0x5e38, 0x6628, + 0x6664, 0x6e54, 0x7645, 0x7e35, 0x7e71, 0x8661, 0x8e51, 0x9641, + 0x977d, 0x9f6d, 0xa75d, 0xaf4e, 0xaf89, 0xb77a, 0xbf6a, 0xc75a, + 0xc796, 0xcf86, 0xd776, 0xdf67, 0xe0a2, 0xe893, 0xf083, 0xf873, + 0x2f5b, 0x374b, 0x3f3b, 0x472c, 0x4767, 0x4f58, 0x5748, 0x5f38, + 0x5f74, 0x6864, 0x7054, 0x7844, 0x7880, 0x8071, 0x8861, 0x9051, + 0x908d, 0x987d, 0xa06d, 0xa85d, 0xa999, 0xb189, 0xb97a, 0xc16a, + 0xc1a6, 0xc996, 0xd186, 0xd976, 0xd9b2, 0xe1a2, 0xe993, 0xf183, + 0x286b, 0x305b, 0x384b, 0x403b, 0x4177, 0x4967, 0x5158, 0x5948, + 0x5984, 0x6174, 0x6964, 0x7154, 0x7190, 0x7980, 0x8270, 0x8a61, + 0x8a9d, 0x928d, 0x9a7d, 0xa26d, 0xa2a9, 0xaa99, 0xb289, 0xba7a, + 0xbbb5, 0xc3a6, 0xcb96, 0xd386, 0xd3c2, 0xdbb2, 0xe3a2, 0xeb92, + 0x227b, 0x2a6b, 0x325b, 0x3a4b, 0x3a87, 0x4277, 0x4a67, 0x5258, + 0x5393, 0x5b84, 0x6374, 0x6b64, 0x6ba0, 0x7390, 0x7b80, 0x8370, + 0x83ac, 0x8b9d, 0x948d, 0x9c7d, 0x9cb9, 0xa4a9, 0xac99, 0xb489, + 0xb4c5, 0xbcb5, 0xc4a6, 0xcc96, 0xcdd2, 0xd5c2, 0xddb2, 0xe5a2, + 0x1c8a, 0x247a, 0x2c6b, 0x345b, 0x3497, 0x3c87, 0x4477, 0x4c67, + 0x4ca3, 0x5493, 0x5c84, 0x6474, 0x65b0, 0x6da0, 0x7590, 0x7d80, + 0x7dbc, 0x85ac, 0x8d9c, 0x958d, 0x95c9, 0x9db9, 0xa5a9, 0xae99, + 0xaed5, 0xb6c5, 0xbeb5, 0xc6a6, 0xc6e1, 0xced2, 0xd6c2, 0xdeb2, + 0x159a, 0x1d8a, 0x257a, 0x2d6b, 0x2ea6, 0x3697, 0x3e87, 0x4677, + 0x46b3, 0x4ea3, 0x5693, 0x5e84, 0x5ebf, 0x66b0, 0x6ea0, 0x7690, + 0x77cc, 0x7fbc, 0x87ac, 0x8f9c, 0x8fd8, 0x97c8, 0x9fb9, 0xa7a9, + 0xa7e5, 0xafd5, 0xb7c5, 0xc0b5, 0xc0f1, 0xc8e1, 0xd0d2, 0xd8c2, + 0x0faa, 0x179a, 0x1f8a, 0x277a, 0x27b6, 0x2fa6, 0x3797, 0x3f87, + 0x40c3, 0x48b3, 0x50a3, 0x5893, 0x58cf, 0x60bf, 0x68b0, 0x70a0, + 0x70dc, 0x78cc, 0x80bc, 0x88ac, 0x89e8, 0x91d8, 0x99c8, 0xa1b9, + 0xa1f4, 0xa9e5, 0xb1d5, 0xb9c5, 0xb9ff, 0xc1f1, 0xc9e1, 0xd1d1}, + {0x3c3c, 0x2f54, 0x226d, 0x1586, 0x443f, 0x3758, 0x2b70, 0x1e89, + 0x4d42, 0x405b, 0x3374, 0x268c, 0x5545, 0x485e, 0x3c77, 0x2f90, + 0x5e49, 0x5161, 0x447a, 0x3893, 0x664c, 0x5965, 0x4d7e, 0x4096, + 0x6f4f, 0x6268, 0x5581, 0x499a, 0x7753, 0x6a6b, 0x5e84, 0x519d, + 0x4e43, 0x415c, 0x3474, 0x288d, 0x5646, 0x4a5f, 0x3d78, 0x3091, + 0x5f4a, 0x5262, 0x467b, 0x3994, 0x674d, 0x5b66, 0x4e7e, 0x4197, + 0x7050, 0x6369, 0x5782, 0x4a9a, 0x7854, 0x6c6c, 0x5f85, 0x529e, + 0x8157, 0x7470, 0x6888, 0x5ba1, 0x895a, 0x7d73, 0x708c, 0x63a4, + 0x604b, 0x5463, 0x477c, 0x3a95, 0x694e, 0x5c67, 0x4f7f, 0x4398, + 0x7151, 0x656a, 0x5883, 0x4b9b, 0x7a54, 0x6d6d, 0x6086, 0x549f, + 0x8258, 0x7671, 0x6989, 0x5ca2, 0x8b5b, 0x7e74, 0x718d, 0x65a5, + 0x935e, 0x8777, 0x7a90, 0x6da9, 0x9c62, 0x8f7a, 0x8293, 0x76ac, + 0x7352, 0x666b, 0x5984, 0x4c9c, 0x7b55, 0x6e6e, 0x6287, 0x55a0, + 0x8459, 0x7771, 0x6a8a, 0x5ea3, 0x8c5c, 0x7f75, 0x738d, 0x66a6, + 0x955f, 0x8878, 0x7b91, 0x6faa, 0x9d63, 0x907b, 0x8494, 0x77ad, + 0xa666, 0x997f, 0x8c97, 0x80b0, 0xae69, 0xa182, 0x959b, 0x88b3, + 0x855a, 0x7872, 0x6c8b, 0x5fa4, 0x8d5d, 0x8176, 0x748e, 0x67a7, + 0x9660, 0x8979, 0x7d92, 0x70aa, 0x9e63, 0x927c, 0x8595, 0x78ae, + 0xa767, 0x9a80, 0x8e98, 0x81b1, 0xaf6a, 0xa383, 0x969c, 0x89b4, + 0xb86d, 0xab86, 0x9f9f, 0x92b8, 0xc171, 0xb489, 0xa7a2, 0x9abb, + 0x9761, 0x8b7a, 0x7e93, 0x71ab, 0xa064, 0x937d, 0x8696, 0x7aaf, + 0xa868, 0x9c80, 0x8f99, 0x82b2, 0xb16b, 0xa484, 0x979c, 0x8bb5, + 0xb96e, 0xad87, 0xa0a0, 0x93b9, 0xc272, 0xb58a, 0xa8a3, 0x9cbc, + 0xca75, 0xbe8e, 0xb1a6, 0xa4bf, 0xd378, 0xc691, 0xb9aa, 0xadc2, + 0xaa69, 0x9d81, 0x909a, 0x84b3, 0xb26c, 0xa585, 0x999d, 0x8cb6, + 0xbb6f, 0xae88, 0xa1a1, 0x95b9, 0xc373, 0xb68b, 0xaaa4, 0x9dbd, + 0xcc76, 0xbf8f, 0xb2a7, 0xa6c0, 0xd479, 0xc792, 0xbbab, 0xaec3, + 0xdd7c, 0xd095, 0xc3ae, 0xb7c7, 0xe580, 0xd999, 0xccb1, 0xbfca, + 0xbc70, 0xaf89, 0xa3a2, 0x96ba, 0xc473, 0xb88c, 0xaba5, 0x9ebe, + 0xcd77, 0xc08f, 0xb4a8, 0xa7c1, 0xd57a, 0xc993, 0xbcac, 0xafc4, + 0xde7d, 0xd196, 0xc5af, 0xb8c8, 0xe781, 0xda99, 0xcdb2, 0xc0cb, + 0xef84, 0xe29d, 0xd6b5, 0xc9ce, 0xf887, 0xeba0, 0xdeb9, 0xd2d2}, + {0x3c3c, 0x573d, 0x723e, 0x8d3f, 0x4255, 0x5d56, 0x7957, 0x9458, + 0x486e, 0x646f, 0x7f70, 0x9a71, 0x4f87, 0x6a89, 0x858a, 0xa18b, + 0x55a1, 0x71a2, 0x8ca3, 0xa7a4, 0x5cba, 0x77bb, 0x92bc, 0xaebd, + 0x62d3, 0x7dd5, 0x99d6, 0xb4d7, 0x69ed, 0x84ee, 0x9fef, 0xbbf0, + 0x3f37, 0x5a38, 0x7539, 0x913a, 0x4550, 0x6152, 0x7c53, 0x9754, + 0x4c6a, 0x676b, 0x826c, 0x9e6d, 0x5283, 0x6d84, 0x8985, 0xa486, + 0x599c, 0x749e, 0x8f9f, 0xaaa0, 0x5fb6, 0x7ab7, 0x96b8, 0xb1b9, + 0x65cf, 0x81d0, 0x9cd1, 0xb7d2, 0x6ce8, 0x87e9, 0xa3eb, 0xbeec, + 0x4233, 0x5d34, 0x7935, 0x9436, 0x494c, 0x644d, 0x7f4e, 0x9a4f, + 0x4f65, 0x6a67, 0x8668, 0xa169, 0x557f, 0x7180, 0x8c81, 0xa782, + 0x5c98, 0x7799, 0x929a, 0xae9b, 0x62b1, 0x7eb2, 0x99b4, 0xb4b5, + 0x69cb, 0x84cc, 0x9fcd, 0xbbce, 0x6fe4, 0x8ae5, 0xa6e6, 0xc1e7, + 0x452e, 0x6130, 0x7c31, 0x9732, 0x4c48, 0x6749, 0x824a, 0x9e4b, + 0x5261, 0x6e62, 0x8963, 0xa464, 0x597a, 0x747b, 0x8f7d, 0xab7e, + 0x5f94, 0x7a95, 0x9696, 0xb197, 0x66ad, 0x81ae, 0x9caf, 0xb7b0, + 0x6cc6, 0x87c7, 0xa3c9, 0xbeca, 0x72e0, 0x8ee1, 0xa9e2, 0xc4e3, + 0x492a, 0x642b, 0x7f2c, 0x9b2d, 0x4f43, 0x6a44, 0x8646, 0xa147, + 0x565d, 0x715e, 0x8c5f, 0xa760, 0x5c76, 0x7777, 0x9378, 0xae79, + 0x628f, 0x7e90, 0x9992, 0xb493, 0x69a9, 0x84aa, 0x9fab, 0xbbac, + 0x6fc2, 0x8bc3, 0xa6c4, 0xc1c5, 0x76db, 0x91dc, 0xacdd, 0xc8df, + 0x4c26, 0x6727, 0x8328, 0x9e29, 0x523f, 0x6e40, 0x8941, 0xa442, + 0x5958, 0x7459, 0x8f5b, 0xab5c, 0x5f72, 0x7b73, 0x9674, 0xb175, + 0x668b, 0x818c, 0x9c8d, 0xb88e, 0x6ca4, 0x87a5, 0xa3a6, 0xbea8, + 0x73be, 0x8ebf, 0xa9c0, 0xc4c1, 0x79d7, 0x94d8, 0xb0d9, 0xcbda, + 0x4f21, 0x6a22, 0x8624, 0xa125, 0x563b, 0x713c, 0x8c3d, 0xa83e, + 0x5c54, 0x7755, 0x9356, 0xae57, 0x636d, 0x7e6e, 0x996f, 0xb471, + 0x6987, 0x8488, 0xa089, 0xbb8a, 0x6fa0, 0x8ba1, 0xa6a2, 0xc1a3, + 0x76b9, 0x91ba, 0xacbb, 0xc8bd, 0x7cd3, 0x98d4, 0xb3d5, 0xced6, + 0x521d, 0x6e1e, 0x891f, 0xa420, 0x5936, 0x7437, 0x9038, 0xab3a, + 0x5f50, 0x7b51, 0x9652, 0xb153, 0x6669, 0x816a, 0x9c6b, 0xb86c, + 0x6c82, 0x8883, 0xa384, 0xbe86, 0x739c, 0x8e9d, 0xa99e, 0xc59f, + 0x79b5, 0x94b6, 0xb0b7, 0xcbb8, 0x80ce, 0x9bcf, 0xb6d0, 0xd2d1}, + {0x3c3c, 0x3634, 0x312c, 0x2b24, 0x5540, 0x4f39, 0x4a31, 0x4429, + 0x6e45, 0x683e, 0x6336, 0x5d2e, 0x874a, 0x8143, 0x7c3b, 0x7633, + 0xa04f, 0x9a48, 0x9540, 0x8f38, 0xb954, 0xb34d, 0xae45, 0xa83d, + 0xd259, 0xcc52, 0xc74a, 0xc142, 0xeb5e, 0xe557, 0xe04f, 0xda47, + 0x3a4f, 0x3547, 0x2f40, 0x2a38, 0x5354, 0x4e4c, 0x4845, 0x433d, + 0x6c59, 0x6751, 0x614a, 0x5c42, 0x855e, 0x8056, 0x7a4f, 0x7547, + 0x9e63, 0x995b, 0x9354, 0x8e4c, 0xb868, 0xb260, 0xad59, 0xa751, + 0xd16d, 0xcb65, 0xc65e, 0xc056, 0xea72, 0xe46a, 0xdf63, 0xd95b, + 0x3963, 0x335b, 0x2e53, 0x284c, 0x5268, 0x4d60, 0x4758, 0x4251, + 0x6b6d, 0x6665, 0x605d, 0x5b56, 0x8472, 0x7f6a, 0x7962, 0x745b, + 0x9d77, 0x986f, 0x9267, 0x8d60, 0xb67c, 0xb174, 0xab6c, 0xa665, + 0xcf81, 0xca79, 0xc471, 0xbf6a, 0xe886, 0xe37e, 0xdd76, 0xd86f, + 0x3877, 0x326f, 0x2d67, 0x275f, 0x517c, 0x4b74, 0x466c, 0x4064, + 0x6a81, 0x6479, 0x5f71, 0x5969, 0x8386, 0x7d7e, 0x7876, 0x726e, + 0x9c8b, 0x9683, 0x917b, 0x8b73, 0xb590, 0xaf88, 0xaa80, 0xa478, + 0xce95, 0xc98d, 0xc385, 0xbe7d, 0xe79a, 0xe292, 0xdc8a, 0xd782, + 0x368b, 0x3183, 0x2b7b, 0x2673, 0x4f90, 0x4a88, 0x4480, 0x3f78, + 0x6995, 0x638d, 0x5e85, 0x587d, 0x829a, 0x7c92, 0x778a, 0x7182, + 0x9b9f, 0x9597, 0x908f, 0x8a87, 0xb4a4, 0xae9c, 0xa994, 0xa38c, + 0xcda9, 0xc7a1, 0xc299, 0xbc91, 0xe6ae, 0xe0a6, 0xdb9e, 0xd596, + 0x359e, 0x3097, 0x2a8f, 0x2587, 0x4ea3, 0x499c, 0x4394, 0x3e8c, + 0x67a8, 0x62a1, 0x5c99, 0x5791, 0x80ad, 0x7ba6, 0x759e, 0x7096, + 0x99b2, 0x94ab, 0x8ea3, 0x899b, 0xb2b7, 0xadb0, 0xa7a8, 0xa2a0, + 0xcbbc, 0xc6b5, 0xc0ad, 0xbba5, 0xe5c1, 0xdfba, 0xdab2, 0xd4aa, + 0x34b2, 0x2eaa, 0x29a3, 0x239b, 0x4db7, 0x47af, 0x42a8, 0x3ca0, + 0x66bc, 0x60b4, 0x5bad, 0x55a5, 0x7fc1, 0x7ab9, 0x74b2, 0x6faa, + 0x98c6, 0x93be, 0x8db7, 0x88af, 0xb1cb, 0xacc3, 0xa6bc, 0xa1b4, + 0xcad0, 0xc5c8, 0xbfc1, 0xbab9, 0xe3d5, 0xdecd, 0xd8c6, 0xd3be, + 0x33c6, 0x2dbe, 0x28b6, 0x22af, 0x4ccb, 0x46c3, 0x41bb, 0x3bb4, + 0x65d0, 0x5fc8, 0x5ac0, 0x54b9, 0x7ed5, 0x78cd, 0x73c5, 0x6dbe, + 0x97da, 0x91d2, 0x8cca, 0x86c3, 0xb0df, 0xaad7, 0xa5cf, 0x9fc8, + 0xc9e4, 0xc3dc, 0xbed4, 0xb8cd, 0xe2e9, 0xdce1, 0xd7d9, 0xd1d2}, + {0x3c3c, 0x3a57, 0x3873, 0x378f, 0x3e46, 0x3c61, 0x3b7d, 0x3999, + 0x4050, 0x3e6c, 0x3d87, 0x3ba3, 0x425a, 0x4176, 0x3f92, 0x3dad, + 0x4464, 0x4380, 0x419c, 0x40b7, 0x476e, 0x458a, 0x43a6, 0x42c2, + 0x4979, 0x4794, 0x46b0, 0x44cc, 0x4b83, 0x499f, 0x48ba, 0x46d6, + 0x4f3b, 0x4e57, 0x4c72, 0x4b8e, 0x5245, 0x5061, 0x4e7d, 0x4d98, + 0x544f, 0x526b, 0x5187, 0x4fa2, 0x5659, 0x5475, 0x5391, 0x51ad, + 0x5864, 0x577f, 0x559b, 0x54b7, 0x5b6e, 0x598a, 0x57a5, 0x56c1, + 0x5d78, 0x5b94, 0x5aaf, 0x58cb, 0x5f82, 0x5d9e, 0x5cba, 0x5ad5, + 0x633a, 0x6256, 0x6072, 0x5e8d, 0x6544, 0x6460, 0x627c, 0x6198, + 0x684f, 0x666a, 0x6586, 0x63a2, 0x6a59, 0x6875, 0x6790, 0x65ac, + 0x6c63, 0x6b7f, 0x699a, 0x67b6, 0x6e6d, 0x6d89, 0x6ba5, 0x6ac0, + 0x7177, 0x6f93, 0x6daf, 0x6ccb, 0x7382, 0x719d, 0x70b9, 0x6ed5, + 0x773a, 0x7655, 0x7471, 0x728d, 0x7944, 0x785f, 0x767b, 0x7597, + 0x7c4e, 0x7a6a, 0x7885, 0x77a1, 0x7e58, 0x7c74, 0x7b90, 0x79ab, + 0x8062, 0x7e7e, 0x7d9a, 0x7bb6, 0x826d, 0x8188, 0x7fa4, 0x7ec0, + 0x8577, 0x8392, 0x81ae, 0x80ca, 0x8781, 0x859d, 0x84b8, 0x82d4, + 0x8b39, 0x8955, 0x8870, 0x868c, 0x8d43, 0x8c5f, 0x8a7b, 0x8896, + 0x8f4d, 0x8e69, 0x8c85, 0x8ba0, 0x9257, 0x9073, 0x8f8f, 0x8dab, + 0x9462, 0x927d, 0x9199, 0x8fb5, 0x966c, 0x9588, 0x93a3, 0x91bf, + 0x9876, 0x9792, 0x95ae, 0x94c9, 0x9b80, 0x999c, 0x97b8, 0x96d3, + 0x9f38, 0x9d54, 0x9c70, 0x9a8b, 0xa142, 0xa05e, 0x9e7a, 0x9c96, + 0xa34d, 0xa268, 0xa084, 0x9fa0, 0xa657, 0xa473, 0xa28e, 0xa1aa, + 0xa861, 0xa67d, 0xa598, 0xa3b4, 0xaa6b, 0xa887, 0xa7a3, 0xa5be, + 0xac75, 0xab91, 0xa9ad, 0xa8c9, 0xaf80, 0xad9b, 0xabb7, 0xaad3, + 0xb338, 0xb153, 0xb06f, 0xae8b, 0xb542, 0xb35e, 0xb279, 0xb095, + 0xb74c, 0xb668, 0xb483, 0xb29f, 0xb956, 0xb872, 0xb68e, 0xb5a9, + 0xbc60, 0xba7c, 0xb998, 0xb7b4, 0xbe6b, 0xbc86, 0xbba2, 0xb9be, + 0xc075, 0xbf90, 0xbdac, 0xbbc8, 0xc27f, 0xc19b, 0xbfb6, 0xbed2, + 0xc737, 0xc553, 0xc46e, 0xc28a, 0xc941, 0xc75d, 0xc679, 0xc494, + 0xcb4b, 0xca67, 0xc883, 0xc69f, 0xcd56, 0xcc71, 0xca8d, 0xc9a9, + 0xd060, 0xce7b, 0xcc97, 0xcbb3, 0xd26a, 0xd086, 0xcfa1, 0xcdbd, + 0xd474, 0xd290, 0xd1ac, 0xcfc7, 0xd67e, 0xd59a, 0xd3b6, 0xd2d1}, + {0x3c3c, 0x5531, 0x6f26, 0x891b, 0x4a53, 0x6448, 0x7e3d, 0x9832, + 0x586b, 0x7260, 0x8c55, 0xa64a, 0x6682, 0x8077, 0x9a6c, 0xb461, + 0x749a, 0x8e8f, 0xa884, 0xc279, 0x82b1, 0x9ca6, 0xb69b, 0xd090, + 0x91c9, 0xabbe, 0xc4b3, 0xdea8, 0x9fe0, 0xb9d6, 0xd3cb, 0xedc0, + 0x383e, 0x5233, 0x6c28, 0x861d, 0x4656, 0x604b, 0x7a40, 0x9435, + 0x546d, 0x6e62, 0x8857, 0xa24c, 0x6285, 0x7c7a, 0x966f, 0xb064, + 0x709c, 0x8a91, 0xa486, 0xbe7b, 0x7eb4, 0x98a9, 0xb29e, 0xcc93, + 0x8dcb, 0xa7c1, 0xc1b6, 0xdbab, 0x9be3, 0xb5d8, 0xcfcd, 0xe9c2, + 0x3441, 0x4e36, 0x682b, 0x8220, 0x4258, 0x5c4d, 0x7642, 0x9037, + 0x5070, 0x6a65, 0x845a, 0x9e4f, 0x5e87, 0x787c, 0x9271, 0xac66, + 0x6c9f, 0x8694, 0xa089, 0xba7e, 0x7bb6, 0x95ac, 0xafa1, 0xc996, + 0x89ce, 0xa3c3, 0xbdb8, 0xd7ad, 0x97e6, 0xb1db, 0xcbd0, 0xe5c5, + 0x3043, 0x4a38, 0x642d, 0x7e22, 0x3e5b, 0x5850, 0x7245, 0x8c3a, + 0x4c72, 0x6667, 0x805c, 0x9a51, 0x5a8a, 0x747f, 0x8e74, 0xa869, + 0x69a1, 0x8396, 0x9d8c, 0xb781, 0x77b9, 0x91ae, 0xaba3, 0xc598, + 0x85d1, 0x9fc6, 0xb9bb, 0xd3b0, 0x93e8, 0xaddd, 0xc7d2, 0xe1c7, + 0x2c46, 0x463b, 0x6030, 0x7a25, 0x3a5d, 0x5452, 0x6e47, 0x883c, + 0x4875, 0x626a, 0x7c5f, 0x9654, 0x568c, 0x7081, 0x8a77, 0xa46c, + 0x65a4, 0x7f99, 0x998e, 0xb383, 0x73bc, 0x8db1, 0xa7a6, 0xc19b, + 0x81d3, 0x9bc8, 0xb5bd, 0xcfb2, 0x8feb, 0xa9e0, 0xc3d5, 0xddca, + 0x2848, 0x423d, 0x5c32, 0x7627, 0x3660, 0x5055, 0x6a4a, 0x843f, + 0x4477, 0x5e6c, 0x7861, 0x9257, 0x538f, 0x6d84, 0x8779, 0xa16e, + 0x61a7, 0x7b9c, 0x9591, 0xaf86, 0x6fbe, 0x89b3, 0xa3a8, 0xbd9d, + 0x7dd6, 0x97cb, 0xb1c0, 0xcbb5, 0x8bed, 0xa5e2, 0xbfd7, 0xd9cc, + 0x244b, 0x3e40, 0x5835, 0x722a, 0x3262, 0x4c57, 0x664c, 0x8042, + 0x417a, 0x5b6f, 0x7564, 0x8f59, 0x4f92, 0x6987, 0x837c, 0x9d71, + 0x5da9, 0x779e, 0x9193, 0xab88, 0x6bc1, 0x85b6, 0x9fab, 0xb9a0, + 0x79d8, 0x93cd, 0xadc2, 0xc7b7, 0x87f0, 0xa1e5, 0xbbda, 0xd5cf, + 0x204d, 0x3a42, 0x5437, 0x6e2d, 0x2f65, 0x495a, 0x624f, 0x7c44, + 0x3d7d, 0x5772, 0x7167, 0x8b5c, 0x4b94, 0x6589, 0x7f7e, 0x9973, + 0x59ac, 0x73a1, 0x8d96, 0xa78b, 0x67c3, 0x81b8, 0x9bad, 0xb5a2, + 0x75db, 0x8fd0, 0xa9c5, 0xc3ba, 0x84f2, 0x9ee7, 0xb8dc, 0xd1d1}, + {0x3c3c, 0x2d41, 0x1e46, 0x0f4b, 0x513c, 0x4241, 0x3347, 0x244c, + 0x663c, 0x5742, 0x4847, 0x394c, 0x7b3d, 0x6c42, 0x5d48, 0x4e4d, + 0x903d, 0x8143, 0x7248, 0x634d, 0xa53e, 0x9643, 0x8748, 0x784e, + 0xba3e, 0xab44, 0x9c49, 0x8d4e, 0xcf3f, 0xc044, 0xb149, 0xa24f, + 0x424e, 0x3353, 0x2559, 0x165e, 0x574f, 0x4854, 0x3a59, 0x2b5f, + 0x6c4f, 0x5d54, 0x4f5a, 0x405f, 0x8150, 0x7255, 0x645a, 0x555f, + 0x9650, 0x8855, 0x795b, 0x6a60, 0xab51, 0x9d56, 0x8e5b, 0x7f60, + 0xc051, 0xb256, 0xa35c, 0x9461, 0xd551, 0xc757, 0xb85c, 0xa961, + 0x4961, 0x3a66, 0x2b6b, 0x1d71, 0x5e61, 0x4f67, 0x406c, 0x3271, + 0x7362, 0x6467, 0x556c, 0x4772, 0x8862, 0x7968, 0x6a6d, 0x5c72, + 0x9d63, 0x8e68, 0x7f6d, 0x7173, 0xb263, 0xa369, 0x946e, 0x8673, + 0xc764, 0xb869, 0xa96e, 0x9b74, 0xdc64, 0xcd69, 0xbe6f, 0xb074, + 0x5074, 0x4179, 0x327e, 0x2383, 0x6574, 0x5679, 0x477f, 0x3884, + 0x7a75, 0x6b7a, 0x5c7f, 0x4d84, 0x8f75, 0x807a, 0x7180, 0x6285, + 0xa475, 0x957b, 0x8680, 0x7785, 0xb976, 0xaa7b, 0x9b81, 0x8c86, + 0xce76, 0xbf7c, 0xb081, 0xa186, 0xe377, 0xd47c, 0xc581, 0xb687, + 0x5786, 0x488c, 0x3991, 0x2a96, 0x6c87, 0x5d8c, 0x4e91, 0x3f97, + 0x8187, 0x728c, 0x6392, 0x5497, 0x9688, 0x878d, 0x7892, 0x6998, + 0xab88, 0x9c8d, 0x8d93, 0x7e98, 0xc089, 0xb18e, 0xa293, 0x9398, + 0xd589, 0xc68e, 0xb794, 0xa899, 0xea8a, 0xdb8f, 0xcc94, 0xbd99, + 0x5d99, 0x4f9e, 0x40a4, 0x31a9, 0x7299, 0x649f, 0x55a4, 0x46a9, + 0x879a, 0x799f, 0x6aa4, 0x5baa, 0x9c9a, 0x8ea0, 0x7fa5, 0x70aa, + 0xb19b, 0xa3a0, 0x94a5, 0x85ab, 0xc69b, 0xb8a1, 0xa9a6, 0x9aab, + 0xdb9c, 0xcda1, 0xbea6, 0xafac, 0xf09c, 0xe2a2, 0xd3a7, 0xc4ac, + 0x64ac, 0x55b1, 0x46b6, 0x38bc, 0x79ac, 0x6ab1, 0x5bb7, 0x4dbc, + 0x8ead, 0x7fb2, 0x70b7, 0x62bc, 0xa3ad, 0x94b2, 0x85b8, 0x77bd, + 0xb8ae, 0xa9b3, 0x9bb8, 0x8cbd, 0xcdae, 0xbeb3, 0xb0b9, 0xa1be, + 0xe2ae, 0xd3b4, 0xc5b9, 0xb6be, 0xf7af, 0xe8b4, 0xdaba, 0xcbbf, + 0x6bbe, 0x5cc4, 0x4dc9, 0x3ece, 0x80bf, 0x71c4, 0x62c9, 0x53cf, + 0x95bf, 0x86c5, 0x77ca, 0x68cf, 0xaac0, 0x9bc5, 0x8cca, 0x7dd0, + 0xbfc0, 0xb0c5, 0xa1cb, 0x92d0, 0xd4c1, 0xc5c6, 0xb6cb, 0xa7d1, + 0xe9c1, 0xdac6, 0xcbcc, 0xbcd1, 0xfec2, 0xefc7, 0xe0cc, 0xd1d2}, + {0x3c3c, 0x4852, 0x5468, 0x607e, 0x3b4e, 0x4864, 0x547a, 0x6090, + 0x3b60, 0x4876, 0x548c, 0x60a2, 0x3b72, 0x4788, 0x549e, 0x60b4, + 0x3b84, 0x479a, 0x54b0, 0x60c6, 0x3b96, 0x47ac, 0x53c2, 0x60d8, + 0x3ba8, 0x47be, 0x53d4, 0x60ea, 0x3bba, 0x47d0, 0x53e6, 0x60fc, + 0x4c35, 0x584c, 0x6462, 0x7078, 0x4c47, 0x585e, 0x6474, 0x708a, + 0x4c59, 0x5870, 0x6486, 0x709c, 0x4c6b, 0x5882, 0x6498, 0x70ae, + 0x4b7d, 0x5894, 0x64aa, 0x70c0, 0x4b8f, 0x58a6, 0x64bc, 0x70d2, + 0x4ba1, 0x57b8, 0x64ce, 0x70e4, 0x4bb3, 0x57ca, 0x64e0, 0x70f6, + 0x5c2f, 0x6846, 0x745c, 0x8172, 0x5c41, 0x6858, 0x746e, 0x8184, + 0x5c53, 0x686a, 0x7480, 0x8196, 0x5c65, 0x687c, 0x7492, 0x80a8, + 0x5c77, 0x688e, 0x74a4, 0x80ba, 0x5c89, 0x68a0, 0x74b6, 0x80cc, + 0x5c9b, 0x68b2, 0x74c8, 0x80de, 0x5bad, 0x68c4, 0x74da, 0x80f0, + 0x6c29, 0x793f, 0x8556, 0x916c, 0x6c3b, 0x7851, 0x8568, 0x917e, + 0x6c4d, 0x7863, 0x857a, 0x9190, 0x6c5f, 0x7875, 0x858c, 0x91a2, + 0x6c71, 0x7887, 0x849e, 0x91b4, 0x6c83, 0x7899, 0x84b0, 0x91c6, + 0x6c95, 0x78ab, 0x84c2, 0x90d8, 0x6ca7, 0x78bd, 0x84d4, 0x90ea, + 0x7d23, 0x8939, 0x9550, 0xa166, 0x7d35, 0x894b, 0x9562, 0xa178, + 0x7c47, 0x895d, 0x9574, 0xa18a, 0x7c59, 0x896f, 0x9586, 0xa19c, + 0x7c6b, 0x8881, 0x9598, 0xa1ae, 0x7c7d, 0x8893, 0x95aa, 0xa1c0, + 0x7c8f, 0x88a5, 0x95bc, 0xa1d2, 0x7ca1, 0x88b7, 0x94ce, 0xa1e4, + 0x8d1d, 0x9933, 0xa549, 0xb260, 0x8d2f, 0x9945, 0xa55b, 0xb172, + 0x8d41, 0x9957, 0xa56d, 0xb184, 0x8d53, 0x9969, 0xa57f, 0xb196, + 0x8d65, 0x997b, 0xa591, 0xb1a8, 0x8c77, 0x998d, 0xa5a3, 0xb1ba, + 0x8c89, 0x999f, 0xa5b5, 0xb1cc, 0x8c9b, 0x99b1, 0xa5c7, 0xb1de, + 0x9d17, 0xa92d, 0xb643, 0xc25a, 0x9d29, 0xa93f, 0xb655, 0xc26c, + 0x9d3b, 0xa951, 0xb567, 0xc27e, 0x9d4d, 0xa963, 0xb579, 0xc290, + 0x9d5f, 0xa975, 0xb58b, 0xc1a2, 0x9d71, 0xa987, 0xb59d, 0xc1b4, + 0x9d83, 0xa999, 0xb5af, 0xc1c6, 0x9d95, 0xa9ab, 0xb5c1, 0xc1d8, + 0xad11, 0xba27, 0xc63d, 0xd253, 0xad23, 0xba39, 0xc64f, 0xd265, + 0xad35, 0xba4b, 0xc661, 0xd277, 0xad47, 0xb95d, 0xc673, 0xd289, + 0xad59, 0xb96f, 0xc685, 0xd29b, 0xad6b, 0xb981, 0xc597, 0xd2ad, + 0xad7d, 0xb993, 0xc5a9, 0xd2bf, 0xad8f, 0xb9a5, 0xc5bb, 0xd2d1}, + {0x3c3c, 0x4c2b, 0x5d1a, 0x6e09, 0x514d, 0x623c, 0x722c, 0x831b, + 0x665f, 0x774e, 0x883d, 0x992d, 0x7b70, 0x8c60, 0x9d4f, 0xae3e, + 0x9182, 0xa271, 0xb261, 0xc350, 0xa694, 0xb783, 0xc872, 0xd962, + 0xbba5, 0xcc95, 0xdd84, 0xee73, 0xd1b7, 0xe2a6, 0xf296, 0xff85, + 0x3446, 0x4536, 0x5625, 0x6714, 0x4a58, 0x5b47, 0x6b37, 0x7c26, + 0x5f6a, 0x7059, 0x8148, 0x9238, 0x747b, 0x856b, 0x965a, 0xa749, + 0x8a8d, 0x9a7c, 0xab6c, 0xbc5b, 0x9f9f, 0xb08e, 0xc17d, 0xd16d, + 0xb4b0, 0xc5a0, 0xd68f, 0xe77e, 0xcac2, 0xdab1, 0xeba1, 0xfc90, + 0x2d51, 0x3e41, 0x4f30, 0x601f, 0x4363, 0x5352, 0x6442, 0x7531, + 0x5875, 0x6964, 0x7a53, 0x8a43, 0x6d86, 0x7e76, 0x8f65, 0xa054, + 0x8398, 0x9387, 0xa477, 0xb566, 0x98aa, 0xa999, 0xba88, 0xca78, + 0xadbb, 0xbeab, 0xcf9a, 0xe089, 0xc2cd, 0xd3bc, 0xe4ab, 0xf59b, + 0x265c, 0x374c, 0x483b, 0x592a, 0x3c6e, 0x4c5d, 0x5d4d, 0x6e3c, + 0x5180, 0x626f, 0x735e, 0x834e, 0x6691, 0x7781, 0x8870, 0x995f, + 0x7ba3, 0x8c92, 0x9d82, 0xae71, 0x91b5, 0xa2a4, 0xb293, 0xc382, + 0xa6c6, 0xb7b5, 0xc8a5, 0xd994, 0xbbd8, 0xccc7, 0xddb6, 0xeea6, + 0x1f67, 0x3057, 0x4146, 0x5235, 0x3479, 0x4568, 0x5658, 0x6747, + 0x4a8b, 0x5b7a, 0x6b69, 0x7c58, 0x5f9c, 0x708b, 0x817b, 0x926a, + 0x74ae, 0x859d, 0x968c, 0xa77c, 0x8abf, 0x9aaf, 0xab9e, 0xbc8d, + 0x9fd1, 0xb0c0, 0xc1b0, 0xd19f, 0xb4e3, 0xc5d2, 0xd6c1, 0xe7b1, + 0x1872, 0x2962, 0x3a51, 0x4b40, 0x2d84, 0x3e73, 0x4f62, 0x6052, + 0x4395, 0x5385, 0x6474, 0x7563, 0x58a7, 0x6996, 0x7a86, 0x8a75, + 0x6db9, 0x7ea8, 0x8f97, 0xa087, 0x83ca, 0x93ba, 0xa4a9, 0xb598, + 0x98dc, 0xa9cb, 0xbabb, 0xcaaa, 0xadee, 0xbedd, 0xcfcc, 0xe0bc, + 0x117d, 0x226c, 0x335c, 0x434b, 0x268f, 0x377e, 0x486d, 0x595d, + 0x3ca0, 0x4c90, 0x5d7f, 0x6e6e, 0x51b2, 0x62a1, 0x7391, 0x8380, + 0x66c4, 0x77b3, 0x88a2, 0x9992, 0x7bd5, 0x8cc5, 0x9db4, 0xaea3, + 0x91e7, 0xa2d6, 0xb2c6, 0xc3b5, 0xa6f9, 0xb7e8, 0xc8d7, 0xd9c7, + 0x0a88, 0x1b77, 0x2b67, 0x3c56, 0x1f9a, 0x3089, 0x4178, 0x5268, + 0x34ab, 0x459b, 0x568a, 0x6779, 0x4abd, 0x5bac, 0x6b9c, 0x7c8b, + 0x5fcf, 0x70be, 0x81ad, 0x929d, 0x74e0, 0x85d0, 0x96bf, 0xa7ae, + 0x8af2, 0x9be1, 0xabd1, 0xbcc0, 0x9fff, 0xb0f3, 0xc1e2, 0xd1d1}, + {0x3c3c, 0x2b4e, 0x1b60, 0x0a73, 0x493c, 0x394f, 0x2961, 0x1873, + 0x573d, 0x474f, 0x3662, 0x2674, 0x653d, 0x5450, 0x4462, 0x3475, + 0x733e, 0x6250, 0x5263, 0x4175, 0x803e, 0x7051, 0x6063, 0x4f76, + 0x8e3f, 0x7e52, 0x6d64, 0x5d76, 0x9c40, 0x8c52, 0x7b65, 0x6b77, + 0x4a48, 0x3a5b, 0x296d, 0x1980, 0x5849, 0x485b, 0x376e, 0x2780, + 0x664a, 0x555c, 0x456f, 0x3581, 0x744a, 0x635d, 0x536f, 0x4282, + 0x814b, 0x715d, 0x6170, 0x5082, 0x8f4b, 0x7f5e, 0x6e70, 0x5e83, + 0x9d4c, 0x8c5e, 0x7c71, 0x6c83, 0xab4d, 0x9a5f, 0x8a72, 0x7984, + 0x5955, 0x4868, 0x387a, 0x288d, 0x6756, 0x5668, 0x467b, 0x358d, + 0x7457, 0x6469, 0x547b, 0x438e, 0x8257, 0x726a, 0x617c, 0x518f, + 0x9058, 0x806a, 0x6f7d, 0x5f8f, 0x9e58, 0x8d6b, 0x7d7d, 0x6d90, + 0xac59, 0x9b6b, 0x8b7e, 0x7a90, 0xb95a, 0xa96c, 0x997e, 0x8891, + 0x6862, 0x5775, 0x4787, 0x369a, 0x7563, 0x6575, 0x5588, 0x449a, + 0x8363, 0x7376, 0x6288, 0x529b, 0x9164, 0x8077, 0x7089, 0x609b, + 0x9f65, 0x8e77, 0x7e8a, 0x6d9c, 0xac65, 0x9c78, 0x8c8a, 0x7b9d, + 0xba66, 0xaa78, 0x998b, 0x899d, 0xc866, 0xb879, 0xa78b, 0x979e, + 0x766f, 0x6682, 0x5594, 0x45a7, 0x8470, 0x7482, 0x6395, 0x53a7, + 0x9270, 0x8183, 0x7195, 0x61a8, 0xa071, 0x8f83, 0x7f96, 0x6ea8, + 0xad72, 0x9d84, 0x8d96, 0x7ca9, 0xbb72, 0xab85, 0x9a97, 0x8aaa, + 0xc973, 0xb885, 0xa898, 0x98aa, 0xd773, 0xc686, 0xb698, 0xa5ab, + 0x857c, 0x748f, 0x64a1, 0x54b3, 0x937d, 0x828f, 0x72a2, 0x61b4, + 0xa07d, 0x9090, 0x80a2, 0x6fb5, 0xae7e, 0x9e90, 0x8da3, 0x7db5, + 0xbc7e, 0xac91, 0x9ba3, 0x8bb6, 0xca7f, 0xb992, 0xa9a4, 0x99b6, + 0xd880, 0xc792, 0xb7a5, 0xa6b7, 0xe580, 0xd593, 0xc5a5, 0xb4b8, + 0x9489, 0x839b, 0x73ae, 0x62c0, 0xa18a, 0x919c, 0x81af, 0x70c1, + 0xaf8a, 0x9f9d, 0x8eaf, 0x7ec2, 0xbd8b, 0xac9d, 0x9cb0, 0x8cc2, + 0xcb8b, 0xba9e, 0xaab0, 0x99c3, 0xd88c, 0xc89e, 0xb8b1, 0xa7c3, + 0xe68d, 0xd69f, 0xc5b2, 0xb5c4, 0xf48d, 0xe4a0, 0xd3b2, 0xc3c5, + 0xa296, 0x92a8, 0x81bb, 0x71cd, 0xb097, 0xa0a9, 0x8fbb, 0x7fce, + 0xbe97, 0xadaa, 0x9dbc, 0x8dcf, 0xcc98, 0xbbaa, 0xabbd, 0x9acf, + 0xd998, 0xc9ab, 0xb9bd, 0xa8d0, 0xe799, 0xd7ab, 0xc6be, 0xb6d0, + 0xf59a, 0xe4ac, 0xd4be, 0xc4d1, 0xff9a, 0xf2ad, 0xe2bf, 0xd1d2}, + {0x3c3c, 0x5346, 0x6a50, 0x825b, 0x3e53, 0x555e, 0x6d68, 0x8472, + 0x406b, 0x5875, 0x6f80, 0x878a, 0x4383, 0x5a8d, 0x7297, 0x89a2, + 0x459b, 0x5da5, 0x74af, 0x8cba, 0x48b2, 0x5fbd, 0x77c7, 0x8ed1, + 0x4aca, 0x62d4, 0x79df, 0x91e9, 0x4de2, 0x64ec, 0x7cf7, 0x93ff, + 0x4435, 0x5c3f, 0x7349, 0x8b54, 0x474c, 0x5e57, 0x7661, 0x8d6c, + 0x4964, 0x616f, 0x7879, 0x9083, 0x4c7c, 0x6386, 0x7b91, 0x929b, + 0x4e94, 0x669e, 0x7da8, 0x95b3, 0x51ac, 0x68b6, 0x80c0, 0x97cb, + 0x53c3, 0x6bce, 0x82d8, 0x9ae2, 0x56db, 0x6de5, 0x85f0, 0x9cfa, + 0x4d2e, 0x6538, 0x7c43, 0x944d, 0x5046, 0x6750, 0x7f5a, 0x9665, + 0x525d, 0x6a68, 0x8172, 0x997d, 0x5575, 0x6c80, 0x848a, 0x9b94, + 0x578d, 0x6f97, 0x86a2, 0x9eac, 0x5aa5, 0x71af, 0x89b9, 0xa0c4, + 0x5cbd, 0x74c7, 0x8bd1, 0xa2dc, 0x5fd4, 0x76df, 0x8de9, 0xa5f3, + 0x5627, 0x6e32, 0x853c, 0x9d46, 0x593f, 0x7049, 0x8854, 0x9f5e, + 0x5b57, 0x7361, 0x8a6b, 0xa276, 0x5e6e, 0x7579, 0x8d83, 0xa48e, + 0x6086, 0x7891, 0x8f9b, 0xa6a5, 0x639e, 0x7aa8, 0x91b3, 0xa9bd, + 0x65b6, 0x7cc0, 0x94ca, 0xabd5, 0x67ce, 0x7fd8, 0x96e2, 0xaeed, + 0x5f20, 0x772b, 0x8e35, 0xa63f, 0x6238, 0x7943, 0x914d, 0xa857, + 0x6450, 0x7c5a, 0x9365, 0xaa6f, 0x6768, 0x7e72, 0x957c, 0xad87, + 0x697f, 0x808a, 0x9894, 0xaf9f, 0x6b97, 0x83a2, 0x9aac, 0xb2b6, + 0x6eaf, 0x85b9, 0x9dc4, 0xb4ce, 0x70c7, 0x88d1, 0x9fdb, 0xb7e6, + 0x681a, 0x8024, 0x972e, 0xae39, 0x6b31, 0x823c, 0x9946, 0xb150, + 0x6d49, 0x8454, 0x9c5e, 0xb368, 0x6f61, 0x876b, 0x9e76, 0xb680, + 0x7279, 0x8983, 0xa18d, 0xb898, 0x7490, 0x8c9b, 0xa3a5, 0xbbb0, + 0x77a8, 0x8eb3, 0xa6bd, 0xbdc7, 0x79c0, 0x91ca, 0xa8d5, 0xc0df, + 0x7113, 0x881d, 0xa028, 0xb732, 0x732b, 0x8b35, 0xa23f, 0xba4a, + 0x7642, 0x8d4d, 0xa557, 0xbc61, 0x785a, 0x9065, 0xa76f, 0xbf79, + 0x7b72, 0x927c, 0xaa87, 0xc191, 0x7d8a, 0x9594, 0xac9e, 0xc4a9, + 0x80a1, 0x97ac, 0xafb6, 0xc6c1, 0x82b9, 0x9ac4, 0xb1ce, 0xc9d8, + 0x7a0c, 0x9116, 0xa921, 0xc02b, 0x7c24, 0x942e, 0xab39, 0xc343, + 0x7f3c, 0x9646, 0xae50, 0xc55b, 0x8153, 0x995e, 0xb068, 0xc872, + 0x846b, 0x9b76, 0xb380, 0xca8a, 0x8683, 0x9e8d, 0xb598, 0xcda2, + 0x899b, 0xa0a5, 0xb8af, 0xcfba, 0x8bb2, 0xa3bd, 0xbac7, 0xd2d1}, + {0x3c3c, 0x3f2e, 0x4220, 0x4612, 0x5545, 0x5837, 0x5b29, 0x5f1b, + 0x6e4f, 0x7141, 0x7533, 0x7825, 0x8759, 0x8a4b, 0x8e3d, 0x912f, + 0xa063, 0xa355, 0xa747, 0xaa39, 0xb96d, 0xbd5f, 0xc051, 0xc343, + 0xd276, 0xd668, 0xd95a, 0xdc4c, 0xeb80, 0xef72, 0xf264, 0xf656, + 0x364d, 0x3a3f, 0x3d31, 0x4023, 0x4f57, 0x5349, 0x563b, 0x5a2d, + 0x6961, 0x6c53, 0x6f45, 0x7337, 0x826b, 0x855d, 0x884f, 0x8c41, + 0x9b74, 0x9e66, 0xa258, 0xa54a, 0xb47e, 0xb770, 0xbb62, 0xbe54, + 0xcd88, 0xd17a, 0xd46c, 0xd75e, 0xe692, 0xea84, 0xed76, 0xf068, + 0x315f, 0x3551, 0x3843, 0x3b35, 0x4a69, 0x4e5b, 0x514d, 0x543f, + 0x6372, 0x6764, 0x6a56, 0x6e48, 0x7d7c, 0x806e, 0x8360, 0x8752, + 0x9686, 0x9978, 0x9c6a, 0xa05c, 0xaf90, 0xb282, 0xb674, 0xb966, + 0xc89a, 0xcb8c, 0xcf7e, 0xd270, 0xe1a3, 0xe595, 0xe887, 0xeb79, + 0x2c70, 0x2f62, 0x3354, 0x3646, 0x457a, 0x496c, 0x4c5e, 0x4f50, + 0x5e84, 0x6276, 0x6568, 0x685a, 0x778e, 0x7b80, 0x7e72, 0x8264, + 0x9198, 0x948a, 0x977c, 0x9b6e, 0xaaa1, 0xad93, 0xb085, 0xb477, + 0xc3ab, 0xc69d, 0xca8f, 0xcd81, 0xdcb5, 0xdfa7, 0xe399, 0xe68b, + 0x2782, 0x2a74, 0x2e66, 0x3158, 0x408c, 0x437e, 0x4770, 0x4a62, + 0x5996, 0x5d88, 0x607a, 0x636c, 0x729f, 0x7691, 0x7983, 0x7c75, + 0x8ba9, 0x8f9b, 0x928d, 0x967f, 0xa5b3, 0xa8a5, 0xab97, 0xaf89, + 0xbebd, 0xc1af, 0xc4a1, 0xc893, 0xd7c7, 0xdab9, 0xdeab, 0xe19d, + 0x2294, 0x2586, 0x2878, 0x2c6a, 0x3b9d, 0x3e8f, 0x4281, 0x4573, + 0x54a7, 0x5799, 0x5b8b, 0x5e7d, 0x6db1, 0x71a3, 0x7495, 0x7787, + 0x86bb, 0x8aad, 0x8d9f, 0x9091, 0x9fc5, 0xa3b7, 0xa6a9, 0xaa9b, + 0xb9ce, 0xbcc0, 0xbfb2, 0xc3a4, 0xd2d8, 0xd5ca, 0xd8bc, 0xdcae, + 0x1da5, 0x2097, 0x2389, 0x277b, 0x36af, 0x39a1, 0x3c93, 0x4085, + 0x4fb9, 0x52ab, 0x569d, 0x598f, 0x68c3, 0x6bb5, 0x6fa7, 0x7299, + 0x81cc, 0x85be, 0x88b0, 0x8ba2, 0x9ad6, 0x9ec8, 0xa1ba, 0xa4ac, + 0xb3e0, 0xb7d2, 0xbac4, 0xbeb6, 0xcdea, 0xd0dc, 0xd3ce, 0xd7c0, + 0x17b7, 0x1ba9, 0x1e9b, 0x228d, 0x31c1, 0x34b3, 0x37a5, 0x3b97, + 0x4aca, 0x4dbc, 0x50ae, 0x54a0, 0x63d4, 0x66c6, 0x6ab8, 0x6daa, + 0x7cde, 0x7fd0, 0x83c2, 0x86b4, 0x95e8, 0x98da, 0x9ccc, 0x9fbe, + 0xaef2, 0xb2e4, 0xb5d6, 0xb8c8, 0xc7fb, 0xcbed, 0xcedf, 0xd1d2}, + {0x3c3c, 0x3256, 0x2871, 0x1f8c, 0x4241, 0x385b, 0x2e76, 0x2591, + 0x4846, 0x3e61, 0x357b, 0x2b96, 0x4e4b, 0x4466, 0x3b81, 0x319b, + 0x5451, 0x4a6b, 0x4186, 0x37a1, 0x5a56, 0x5071, 0x478b, 0x3da6, + 0x605b, 0x5776, 0x4d91, 0x43ab, 0x6661, 0x5d7b, 0x5396, 0x49b1, + 0x4f40, 0x455b, 0x3c76, 0x3290, 0x5545, 0x4b60, 0x427b, 0x3896, + 0x5b4b, 0x5265, 0x4880, 0x3e9b, 0x6150, 0x586b, 0x4e85, 0x44a0, + 0x6755, 0x5e70, 0x548b, 0x4ba5, 0x6d5b, 0x6475, 0x5a90, 0x51ab, + 0x7460, 0x6a7b, 0x6095, 0x57b0, 0x7a65, 0x7080, 0x669b, 0x5db5, + 0x6245, 0x5960, 0x4f7a, 0x4695, 0x684a, 0x5f65, 0x5580, 0x4c9a, + 0x6f4f, 0x656a, 0x5b85, 0x52a0, 0x7555, 0x6b6f, 0x618a, 0x58a5, + 0x7b5a, 0x7175, 0x688f, 0x5eaa, 0x815f, 0x777a, 0x6e95, 0x64af, + 0x8765, 0x7d7f, 0x749a, 0x6ab5, 0x8d6a, 0x8485, 0x7a9f, 0x70ba, + 0x764a, 0x6c64, 0x637f, 0x599a, 0x7c4f, 0x726a, 0x6984, 0x5f9f, + 0x8254, 0x786f, 0x6f8a, 0x65a4, 0x8859, 0x7f74, 0x758f, 0x6baa, + 0x8e5f, 0x8579, 0x7b94, 0x71af, 0x9464, 0x8b7f, 0x8199, 0x78b4, + 0x9a69, 0x9184, 0x879f, 0x7eb9, 0xa16f, 0x9789, 0x8da4, 0x84bf, + 0x894e, 0x8069, 0x7684, 0x6c9e, 0x8f54, 0x866e, 0x7c89, 0x73a4, + 0x9559, 0x8c74, 0x828e, 0x79a9, 0x9c5e, 0x9279, 0x8894, 0x7fae, + 0xa263, 0x987e, 0x8e99, 0x85b4, 0xa869, 0x9e83, 0x959e, 0x8bb9, + 0xae6e, 0xa489, 0x9ba3, 0x91be, 0xb473, 0xaa8e, 0xa1a9, 0x97c3, + 0x9d53, 0x936e, 0x8988, 0x80a3, 0xa358, 0x9973, 0x908e, 0x86a8, + 0xa95e, 0x9f78, 0x9693, 0x8cae, 0xaf63, 0xa57e, 0x9c98, 0x92b3, + 0xb568, 0xac83, 0xa29e, 0x98b8, 0xbb6d, 0xb288, 0xa8a3, 0x9ebe, + 0xc173, 0xb88d, 0xaea8, 0xa5c3, 0xc778, 0xbe93, 0xb4ad, 0xabc8, + 0xb058, 0xa772, 0x9d8d, 0x93a8, 0xb65d, 0xad78, 0xa392, 0x99ad, + 0xbc62, 0xb37d, 0xa998, 0xa0b2, 0xc268, 0xb982, 0xaf9d, 0xa6b8, + 0xc96d, 0xbf88, 0xb5a2, 0xacbd, 0xcf72, 0xc58d, 0xbba8, 0xb2c2, + 0xd577, 0xcb92, 0xc2ad, 0xb8c8, 0xdb7d, 0xd197, 0xc8b2, 0xbecd, + 0xc45c, 0xba77, 0xb092, 0xa7ac, 0xca62, 0xc07c, 0xb697, 0xadb2, + 0xd067, 0xc682, 0xbd9c, 0xb3b7, 0xd66c, 0xcc87, 0xc3a2, 0xb9bc, + 0xdc72, 0xd28c, 0xc9a7, 0xbfc2, 0xe277, 0xd892, 0xcfac, 0xc5c7, + 0xe87c, 0xdf97, 0xd5b2, 0xcbcc, 0xee81, 0xe59c, 0xdbb7, 0xd2d2}, + {0x3c3c, 0x5738, 0x7335, 0x8f31, 0x4455, 0x6051, 0x7c4e, 0x984b, + 0x4d6e, 0x696b, 0x8567, 0xa164, 0x5687, 0x7284, 0x8e81, 0xaa7d, + 0x5fa1, 0x7b9d, 0x979a, 0xb396, 0x68ba, 0x84b7, 0xa0b3, 0xbbb0, + 0x71d3, 0x8dd0, 0xa9cc, 0xc4c9, 0x7aec, 0x96e9, 0xb1e6, 0xcde2, + 0x3c39, 0x5836, 0x7432, 0x902f, 0x4552, 0x614f, 0x7d4c, 0x9948, + 0x4e6c, 0x6a68, 0x8665, 0xa161, 0x5785, 0x7382, 0x8e7e, 0xaa7b, + 0x609e, 0x7c9b, 0x9797, 0xb394, 0x69b8, 0x84b4, 0xa0b1, 0xbcad, + 0x71d1, 0x8dcd, 0xa9ca, 0xc5c7, 0x7aea, 0x96e7, 0xb2e3, 0xcee0, + 0x3d37, 0x5933, 0x7430, 0x902c, 0x4650, 0x614d, 0x7d49, 0x9946, + 0x4e69, 0x6a66, 0x8662, 0xa25f, 0x5783, 0x737f, 0x8f7c, 0xab78, + 0x609c, 0x7c98, 0x9895, 0xb492, 0x69b5, 0x85b2, 0xa1ae, 0xbdab, + 0x72ce, 0x8ecb, 0xaac8, 0xc6c4, 0x7be8, 0x97e4, 0xb3e1, 0xcedd, + 0x3d34, 0x5931, 0x752e, 0x912a, 0x464e, 0x624a, 0x7e47, 0x9a43, + 0x4f67, 0x6b63, 0x8760, 0xa35d, 0x5880, 0x747d, 0x9079, 0xac76, + 0x6199, 0x7d96, 0x9993, 0xb48f, 0x6ab3, 0x86af, 0xa1ac, 0xbda9, + 0x73cc, 0x8fc9, 0xaac5, 0xc6c2, 0x7ce5, 0x97e2, 0xb3de, 0xcfdb, + 0x3e32, 0x5a2f, 0x762b, 0x9128, 0x474b, 0x6348, 0x7e44, 0x9a41, + 0x5064, 0x6c61, 0x875e, 0xa35a, 0x597e, 0x747a, 0x9077, 0xac74, + 0x6197, 0x7d94, 0x9990, 0xb58d, 0x6ab0, 0x86ad, 0xa2aa, 0xbea6, + 0x73ca, 0x8fc6, 0xabc3, 0xc7bf, 0x7ce3, 0x98df, 0xb4dc, 0xd0d9, + 0x3f30, 0x5a2c, 0x7629, 0x9225, 0x4749, 0x6345, 0x7f42, 0x9b3f, + 0x5062, 0x6c5f, 0x885b, 0xa458, 0x597b, 0x7578, 0x9175, 0xad71, + 0x6295, 0x7e91, 0x9a8e, 0xb68a, 0x6bae, 0x87ab, 0xa3a7, 0xbfa4, + 0x74c7, 0x90c4, 0xacc0, 0xc7bd, 0x7de1, 0x99dd, 0xb4da, 0xd0d6, + 0x3f2d, 0x5b2a, 0x7726, 0x9323, 0x4846, 0x6443, 0x8040, 0x9c3c, + 0x5160, 0x6d5c, 0x8959, 0xa455, 0x5a79, 0x7676, 0x9172, 0xad6f, + 0x6392, 0x7f8f, 0x9a8b, 0xb688, 0x6cac, 0x87a8, 0xa3a5, 0xbfa1, + 0x74c5, 0x90c1, 0xacbe, 0xc8bb, 0x7dde, 0x99db, 0xb5d7, 0xd1d4, + 0x402b, 0x5c27, 0x7724, 0x9321, 0x4944, 0x6441, 0x803d, 0x9c3a, + 0x525d, 0x6d5a, 0x8956, 0xa553, 0x5a77, 0x7673, 0x9270, 0xae6c, + 0x6390, 0x7f8c, 0x9b89, 0xb786, 0x6ca9, 0x88a6, 0xa4a2, 0xc09f, + 0x75c2, 0x91bf, 0xadbc, 0xc9b8, 0x7edc, 0x9ad8, 0xb6d5, 0xd2d1}, + {0x3c3c, 0x3238, 0x2934, 0x2030, 0x543f, 0x4a3b, 0x4137, 0x3833, + 0x6c42, 0x633e, 0x593a, 0x5036, 0x8445, 0x7b41, 0x713d, 0x6839, + 0x9c48, 0x9344, 0x8a40, 0x803c, 0xb44b, 0xab47, 0xa243, 0x993f, + 0xcd4e, 0xc34a, 0xba46, 0xb142, 0xe551, 0xdc4d, 0xd249, 0xc946, + 0x3d4f, 0x334c, 0x2a48, 0x2144, 0x5553, 0x4c4f, 0x424b, 0x3947, + 0x6d56, 0x6452, 0x5b4e, 0x514a, 0x8559, 0x7c55, 0x7351, 0x694d, + 0x9d5c, 0x9458, 0x8b54, 0x8250, 0xb65f, 0xac5b, 0xa357, 0x9a53, + 0xce62, 0xc55e, 0xbb5a, 0xb256, 0xe665, 0xdd61, 0xd35d, 0xca5a, + 0x3e63, 0x3560, 0x2b5c, 0x2258, 0x5667, 0x4d63, 0x445f, 0x3a5b, + 0x6e6a, 0x6566, 0x5c62, 0x525e, 0x876d, 0x7d69, 0x7465, 0x6b61, + 0x9f70, 0x956c, 0x8c68, 0x8364, 0xb773, 0xae6f, 0xa46b, 0x9b67, + 0xcf76, 0xc672, 0xbd6e, 0xb36a, 0xe779, 0xde75, 0xd571, 0xcb6e, + 0x3f77, 0x3674, 0x2d70, 0x236c, 0x577b, 0x4e77, 0x4573, 0x3b6f, + 0x707e, 0x667a, 0x5d76, 0x5472, 0x8881, 0x7e7d, 0x7579, 0x6c75, + 0xa084, 0x9780, 0x8d7c, 0x8478, 0xb887, 0xaf83, 0xa67f, 0x9c7b, + 0xd08a, 0xc786, 0xbe82, 0xb47e, 0xe98d, 0xdf89, 0xd685, 0xcd82, + 0x408b, 0x3788, 0x2e84, 0x2480, 0x598f, 0x4f8b, 0x4687, 0x3d83, + 0x7192, 0x678e, 0x5e8a, 0x5586, 0x8995, 0x8091, 0x768d, 0x6d89, + 0xa198, 0x9894, 0x8f90, 0x858c, 0xb99b, 0xb097, 0xa793, 0x9d8f, + 0xd29e, 0xc89a, 0xbf96, 0xb692, 0xeaa1, 0xe09d, 0xd799, 0xce96, + 0x429f, 0x389c, 0x2f98, 0x2694, 0x5aa3, 0x509f, 0x479b, 0x3e97, + 0x72a6, 0x69a2, 0x5f9e, 0x569a, 0x8aa9, 0x81a5, 0x78a1, 0x6e9d, + 0xa2ac, 0x99a8, 0x90a4, 0x86a0, 0xbbaf, 0xb1ab, 0xa8a7, 0x9fa3, + 0xd3b2, 0xc9ae, 0xc0aa, 0xb7a6, 0xebb5, 0xe2b1, 0xd8ad, 0xcfaa, + 0x43b3, 0x3ab0, 0x30ac, 0x27a8, 0x5bb7, 0x52b3, 0x48af, 0x3fab, + 0x73ba, 0x6ab6, 0x61b2, 0x57ae, 0x8bbd, 0x82b9, 0x79b5, 0x70b1, + 0xa4c0, 0x9abc, 0x91b8, 0x88b4, 0xbcc3, 0xb2bf, 0xa9bb, 0xa0b7, + 0xd4c6, 0xcbc2, 0xc1be, 0xb8ba, 0xecc9, 0xe3c5, 0xdac1, 0xd0be, + 0x44c7, 0x3bc4, 0x31c0, 0x28bc, 0x5ccb, 0x53c7, 0x4ac3, 0x40bf, + 0x74ce, 0x6bca, 0x62c6, 0x59c2, 0x8dd1, 0x83cd, 0x7ac9, 0x71c5, + 0xa5d4, 0x9cd0, 0x92cc, 0x89c8, 0xbdd7, 0xb4d3, 0xaacf, 0xa1cb, + 0xd5da, 0xccd6, 0xc3d2, 0xb9ce, 0xeddd, 0xe4d9, 0xdbd5, 0xd1d2}, + {0x3c3c, 0x3e56, 0x4171, 0x448c, 0x3c48, 0x3f63, 0x427e, 0x4599, + 0x3d55, 0x4070, 0x438b, 0x46a6, 0x3e62, 0x417d, 0x4498, 0x47b2, + 0x3f6f, 0x428a, 0x45a4, 0x48bf, 0x407c, 0x4397, 0x46b1, 0x49cc, + 0x4189, 0x44a3, 0x47be, 0x4ad9, 0x4295, 0x45b0, 0x48cb, 0x4be6, + 0x4f39, 0x5253, 0x556e, 0x5889, 0x5045, 0x5360, 0x567b, 0x5996, + 0x5152, 0x546d, 0x5788, 0x59a3, 0x525f, 0x547a, 0x5795, 0x5ab0, + 0x526c, 0x5587, 0x58a2, 0x5bbc, 0x5379, 0x5694, 0x59ae, 0x5cc9, + 0x5486, 0x57a0, 0x5abb, 0x5dd6, 0x5592, 0x58ad, 0x5bc8, 0x5ee3, + 0x6236, 0x6551, 0x686b, 0x6b86, 0x6343, 0x665d, 0x6978, 0x6c93, + 0x644f, 0x676a, 0x6a85, 0x6da0, 0x655c, 0x6877, 0x6b92, 0x6ead, + 0x6669, 0x6984, 0x6c9f, 0x6fb9, 0x6776, 0x6a91, 0x6dac, 0x70c6, + 0x6883, 0x6b9e, 0x6db8, 0x70d3, 0x6890, 0x6baa, 0x6ec5, 0x71e0, + 0x7533, 0x784e, 0x7b68, 0x7e83, 0x7640, 0x795a, 0x7c75, 0x7f90, + 0x774c, 0x7a67, 0x7d82, 0x809d, 0x7859, 0x7b74, 0x7e8f, 0x81aa, + 0x7966, 0x7c81, 0x7f9c, 0x82b7, 0x7a73, 0x7d8e, 0x80a9, 0x83c3, + 0x7b80, 0x7e9b, 0x81b5, 0x84d0, 0x7c8d, 0x7fa7, 0x82c2, 0x85dd, + 0x8830, 0x8b4b, 0x8e66, 0x9180, 0x893d, 0x8c58, 0x8f72, 0x928d, + 0x8a4a, 0x8d64, 0x907f, 0x939a, 0x8b56, 0x8e71, 0x918c, 0x94a7, + 0x8c63, 0x8f7e, 0x9299, 0x95b4, 0x8d70, 0x908b, 0x93a6, 0x96c1, + 0x8e7d, 0x9198, 0x94b3, 0x97cd, 0x8f8a, 0x92a5, 0x95bf, 0x98da, + 0x9c2d, 0x9f48, 0xa263, 0xa57d, 0x9d3a, 0xa055, 0xa26f, 0xa58a, + 0x9d47, 0xa061, 0xa37c, 0xa697, 0x9e54, 0xa16e, 0xa489, 0xa7a4, + 0x9f60, 0xa27b, 0xa596, 0xa8b1, 0xa06d, 0xa388, 0xa6a3, 0xa9be, + 0xa17a, 0xa495, 0xa7b0, 0xaaca, 0xa287, 0xa5a2, 0xa8bc, 0xabd7, + 0xaf2a, 0xb245, 0xb560, 0xb87b, 0xb037, 0xb352, 0xb66d, 0xb987, + 0xb144, 0xb45f, 0xb779, 0xba94, 0xb251, 0xb56b, 0xb886, 0xbba1, + 0xb35d, 0xb678, 0xb993, 0xbbae, 0xb46a, 0xb685, 0xb9a0, 0xbcbb, + 0xb477, 0xb792, 0xbaad, 0xbdc8, 0xb584, 0xb89f, 0xbbba, 0xbed4, + 0xc227, 0xc542, 0xc85d, 0xcb78, 0xc334, 0xc64f, 0xc96a, 0xcc84, + 0xc441, 0xc75c, 0xca76, 0xcd91, 0xc54e, 0xc869, 0xcb83, 0xce9e, + 0xc65b, 0xc975, 0xcc90, 0xcfab, 0xc767, 0xca82, 0xcd9d, 0xd0b8, + 0xc874, 0xcb8f, 0xceaa, 0xd1c5, 0xc981, 0xcc9c, 0xcfb7, 0xd2d2}}; +const uint16_t cretab[36][256] = { + {0x3c3c, 0x573c, 0x723d, 0x8e3d, 0x473d, 0x623e, 0x7e3e, 0x993f, + 0x533f, 0x6e3f, 0x8940, 0xa541, 0x5e40, 0x7941, 0x9541, 0xb042, + 0x6a42, 0x8542, 0xa043, 0xbc44, 0x7543, 0x9044, 0xac44, 0xc745, + 0x8145, 0x9c45, 0xb746, 0xd347, 0x8c46, 0xa747, 0xc347, 0xde48, + 0x3a4f, 0x5550, 0x7050, 0x8c51, 0x4551, 0x6151, 0x7c52, 0x9753, + 0x5152, 0x6c53, 0x8753, 0xa354, 0x5c54, 0x7854, 0x9355, 0xae56, + 0x6855, 0x8356, 0x9e57, 0xba57, 0x7357, 0x8f57, 0xaa58, 0xc559, + 0x7f58, 0x9a59, 0xb65a, 0xd15a, 0x8a5a, 0xa65a, 0xc15b, 0xdc5c, + 0x3863, 0x5363, 0x6f64, 0x8a65, 0x4364, 0x5f65, 0x7a66, 0x9666, + 0x4f66, 0x6a66, 0x8667, 0xa168, 0x5a67, 0x7668, 0x9169, 0xad69, + 0x6669, 0x8169, 0x9d6a, 0xb86b, 0x716a, 0x8d6b, 0xa86c, 0xc46c, + 0x7d6c, 0x986d, 0xb46d, 0xcf6e, 0x886d, 0xa46e, 0xbf6f, 0xdb6f, + 0x3676, 0x5177, 0x6d78, 0x8878, 0x4278, 0x5d79, 0x7879, 0x947a, + 0x4d79, 0x687a, 0x847b, 0x9f7b, 0x597b, 0x747c, 0x8f7c, 0xab7d, + 0x647c, 0x7f7d, 0x9b7e, 0xb67e, 0x707e, 0x8b7f, 0xa67f, 0xc280, + 0x7b7f, 0x9680, 0xb281, 0xcd81, 0x8781, 0xa282, 0xbd82, 0xd983, + 0x348a, 0x508b, 0x6b8b, 0x868c, 0x408c, 0x5b8c, 0x778d, 0x928e, + 0x4b8d, 0x678e, 0x828e, 0x9d8f, 0x578f, 0x728f, 0x8e90, 0xa991, + 0x6290, 0x7e91, 0x9991, 0xb492, 0x6e92, 0x8992, 0xa593, 0xc094, + 0x7993, 0x9594, 0xb094, 0xcb95, 0x8595, 0xa095, 0xbc96, 0xd797, + 0x329e, 0x4e9e, 0x699f, 0x85a0, 0x3e9f, 0x59a0, 0x75a0, 0x90a1, + 0x49a1, 0x65a1, 0x80a2, 0x9ca3, 0x55a2, 0x70a3, 0x8ca4, 0xa7a4, + 0x60a4, 0x7ca4, 0x97a5, 0xb3a6, 0x6ca5, 0x87a6, 0xa3a7, 0xbea7, + 0x77a7, 0x93a7, 0xaea8, 0xcaa9, 0x83a8, 0x9ea9, 0xbaaa, 0xd5aa, + 0x31b1, 0x4cb2, 0x67b3, 0x83b3, 0x3cb3, 0x57b3, 0x73b4, 0x8eb5, + 0x48b4, 0x63b5, 0x7eb6, 0x9ab6, 0x53b6, 0x6fb6, 0x8ab7, 0xa5b8, + 0x5fb7, 0x7ab8, 0x95b9, 0xb1b9, 0x6ab9, 0x86ba, 0xa1ba, 0xbcbb, + 0x76ba, 0x91bb, 0xacbc, 0xc8bc, 0x81bc, 0x9dbd, 0xb8bd, 0xd3be, + 0x2fc5, 0x4ac6, 0x66c6, 0x81c7, 0x3ac6, 0x56c7, 0x71c8, 0x8cc8, + 0x46c8, 0x61c9, 0x7dc9, 0x98ca, 0x51c9, 0x6dca, 0x88cb, 0xa3cb, + 0x5dcb, 0x78cc, 0x94cc, 0xafcd, 0x68cc, 0x84cd, 0x9fce, 0xbace, + 0x74ce, 0x8fcf, 0xabcf, 0xc6d0, 0x7fd0, 0x9bd0, 0xb6d1, 0xd2d2}, + {0x3c3c, 0x3634, 0x302d, 0x2a25, 0x3f54, 0x3a4d, 0x3445, 0x2e3e, + 0x436d, 0x3e65, 0x385e, 0x3256, 0x4786, 0x427e, 0x3c77, 0x366f, + 0x4b9e, 0x4697, 0x408f, 0x3a88, 0x4fb7, 0x4aaf, 0x44a8, 0x3ea1, + 0x53d0, 0x4ec8, 0x48c1, 0x42b9, 0x57e8, 0x51e1, 0x4cd9, 0x46d2, + 0x4f3b, 0x4a34, 0x442d, 0x3e25, 0x5354, 0x4e4d, 0x4845, 0x423e, + 0x576d, 0x5265, 0x4c5e, 0x4656, 0x5b86, 0x567e, 0x5077, 0x4a6f, + 0x5f9e, 0x5a97, 0x548f, 0x4e88, 0x63b7, 0x5daf, 0x58a8, 0x52a0, + 0x67d0, 0x61c8, 0x5cc1, 0x56b9, 0x6be8, 0x65e1, 0x60d9, 0x5ad2, + 0x633b, 0x5e34, 0x582c, 0x5225, 0x6754, 0x624d, 0x5c45, 0x563e, + 0x6b6d, 0x6665, 0x605e, 0x5a56, 0x6f85, 0x697e, 0x6477, 0x5e6f, + 0x739e, 0x6d97, 0x688f, 0x6288, 0x77b7, 0x71af, 0x6ca8, 0x66a0, + 0x7bd0, 0x75c8, 0x70c1, 0x6ab9, 0x7fe8, 0x79e1, 0x74d9, 0x6ed2, + 0x773b, 0x7234, 0x6c2c, 0x6625, 0x7b54, 0x764d, 0x7045, 0x6a3e, + 0x7f6d, 0x7965, 0x745e, 0x6e56, 0x8385, 0x7d7e, 0x7876, 0x726f, + 0x879e, 0x8197, 0x7c8f, 0x7688, 0x8bb7, 0x85af, 0x80a8, 0x7aa0, + 0x8fcf, 0x89c8, 0x84c1, 0x7eb9, 0x93e8, 0x8de1, 0x88d9, 0x82d2, + 0x8b3b, 0x8534, 0x802c, 0x7a25, 0x8f54, 0x894c, 0x8445, 0x7e3e, + 0x936d, 0x8d65, 0x885e, 0x8256, 0x9785, 0x917e, 0x8c76, 0x866f, + 0x9b9e, 0x9597, 0x908f, 0x8a88, 0x9fb7, 0x99af, 0x94a8, 0x8ea0, + 0xa3cf, 0x9dc8, 0x97c0, 0x92b9, 0xa7e8, 0xa1e1, 0x9bd9, 0x96d2, + 0x9f3b, 0x9934, 0x942c, 0x8e25, 0xa354, 0x9d4c, 0x9845, 0x923d, + 0xa76d, 0xa165, 0x9c5e, 0x9656, 0xab85, 0xa57e, 0xa076, 0x9a6f, + 0xaf9e, 0xa996, 0xa48f, 0x9e88, 0xb3b7, 0xadaf, 0xa7a8, 0xa2a0, + 0xb7cf, 0xb1c8, 0xabc0, 0xa6b9, 0xbbe8, 0xb5e1, 0xafd9, 0xaad2, + 0xb33b, 0xad34, 0xa82c, 0xa225, 0xb754, 0xb14c, 0xac45, 0xa63d, + 0xbb6d, 0xb565, 0xb05e, 0xaa56, 0xbf85, 0xb97e, 0xb376, 0xae6f, + 0xc39e, 0xbd96, 0xb78f, 0xb287, 0xc7b7, 0xc1af, 0xbba8, 0xb6a0, + 0xcbcf, 0xc5c8, 0xbfc0, 0xbab9, 0xcfe8, 0xc9e0, 0xc3d9, 0xbed2, + 0xc73b, 0xc134, 0xbc2c, 0xb625, 0xcb54, 0xc54c, 0xbf45, 0xba3d, + 0xcf6c, 0xc965, 0xc35e, 0xbe56, 0xd385, 0xcd7e, 0xc776, 0xc26f, + 0xd79e, 0xd196, 0xcb8f, 0xc687, 0xdbb7, 0xd5af, 0xcfa8, 0xcaa0, + 0xdfcf, 0xd9c8, 0xd3c0, 0xceb9, 0xe3e8, 0xdde0, 0xd7d9, 0xd2d1}, + {0x3c3c, 0x3a57, 0x3973, 0x388f, 0x5543, 0x545f, 0x527b, 0x5196, + 0x6e4b, 0x6d66, 0x6c82, 0x6b9e, 0x8852, 0x866e, 0x858a, 0x84a6, + 0xa15a, 0xa076, 0x9f91, 0x9dad, 0xba62, 0xb97d, 0xb899, 0xb7b5, + 0xd469, 0xd385, 0xd1a1, 0xd0bc, 0xed71, 0xec8d, 0xeba8, 0xe9c4, + 0x383d, 0x3759, 0x3675, 0x3490, 0x5145, 0x5061, 0x4f7c, 0x4e98, + 0x6b4d, 0x6a68, 0x6884, 0x67a0, 0x8454, 0x8370, 0x828c, 0x81a7, + 0x9e5c, 0x9c78, 0x9b93, 0x9aaf, 0xb764, 0xb67f, 0xb59b, 0xb3b7, + 0xd06b, 0xcf87, 0xcea3, 0xcdbe, 0xea73, 0xe88f, 0xe7aa, 0xe6c6, + 0x353f, 0x335b, 0x3277, 0x3192, 0x4e47, 0x4d63, 0x4c7e, 0x4a9a, + 0x674f, 0x666a, 0x6586, 0x64a2, 0x8156, 0x8072, 0x7e8e, 0x7da9, + 0x9a5e, 0x997a, 0x9895, 0x97b1, 0xb466, 0xb281, 0xb19d, 0xb0b9, + 0xcd6d, 0xcc89, 0xcaa5, 0xc9c0, 0xe675, 0xe591, 0xe4ac, 0xe3c8, + 0x3141, 0x305d, 0x2f79, 0x2e94, 0x4b49, 0x4965, 0x4880, 0x479c, + 0x6451, 0x636c, 0x6288, 0x60a4, 0x7d58, 0x7c74, 0x7b90, 0x7aab, + 0x9760, 0x967c, 0x9497, 0x93b3, 0xb067, 0xaf83, 0xae9f, 0xacbb, + 0xc96f, 0xc88b, 0xc7a6, 0xc6c2, 0xe377, 0xe292, 0xe0ae, 0xdfca, + 0x2e43, 0x2d5f, 0x2b7b, 0x2a96, 0x474b, 0x4667, 0x4582, 0x449e, + 0x6152, 0x5f6e, 0x5e8a, 0x5da6, 0x7a5a, 0x7976, 0x7791, 0x76ad, + 0x9362, 0x927d, 0x9199, 0x90b5, 0xad69, 0xab85, 0xaaa1, 0xa9bc, + 0xc671, 0xc58d, 0xc4a8, 0xc2c4, 0xdf79, 0xde94, 0xddb0, 0xdccc, + 0x2a45, 0x2961, 0x287c, 0x2798, 0x444d, 0x4368, 0x4184, 0x40a0, + 0x5d54, 0x5c70, 0x5b8c, 0x59a7, 0x765c, 0x7578, 0x7493, 0x73af, + 0x9064, 0x8f7f, 0x8d9b, 0x8cb7, 0xa96b, 0xa887, 0xa7a3, 0xa6be, + 0xc373, 0xc18f, 0xc0aa, 0xbfc6, 0xdc7b, 0xdb96, 0xdab2, 0xd8ce, + 0x2747, 0x2663, 0x257e, 0x239a, 0x404f, 0x3f6a, 0x3e86, 0x3da2, + 0x5a56, 0x5872, 0x578e, 0x56a9, 0x735e, 0x727a, 0x7195, 0x6fb1, + 0x8c66, 0x8b81, 0x8a9d, 0x89b9, 0xa66d, 0xa589, 0xa3a5, 0xa2c0, + 0xbf75, 0xbe91, 0xbdac, 0xbcc8, 0xd97d, 0xd798, 0xd6b4, 0xd5d0, + 0x2449, 0x2265, 0x2180, 0x209c, 0x3d51, 0x3c6c, 0x3a88, 0x39a4, + 0x5658, 0x5574, 0x5490, 0x53ab, 0x7060, 0x6e7c, 0x6d97, 0x6cb3, + 0x8967, 0x8883, 0x879f, 0x85bb, 0xa26f, 0xa18b, 0xa0a7, 0x9fc2, + 0xbc77, 0xbb92, 0xb9ae, 0xb8ca, 0xd57e, 0xd49a, 0xd3b6, 0xd1d2}, + {0x3c3c, 0x5530, 0x6f25, 0x891a, 0x4043, 0x5a38, 0x732c, 0x8d21, + 0x444a, 0x5e3f, 0x7834, 0x9228, 0x4851, 0x6246, 0x7c3b, 0x9630, + 0x4d59, 0x664d, 0x8042, 0x9a37, 0x5160, 0x6b55, 0x8449, 0x9e3e, + 0x5567, 0x6f5c, 0x8951, 0xa346, 0x596e, 0x7363, 0x8d58, 0xa74d, + 0x424e, 0x5b43, 0x7538, 0x8f2d, 0x4656, 0x604b, 0x7a3f, 0x9334, + 0x4a5d, 0x6452, 0x7e47, 0x983b, 0x4e64, 0x6859, 0x824e, 0x9c43, + 0x536c, 0x6c60, 0x8655, 0xa04a, 0x5773, 0x7168, 0x8b5c, 0xa451, + 0x5b7a, 0x756f, 0x8f64, 0xa958, 0x5f81, 0x7976, 0x936b, 0xad60, + 0x4861, 0x6256, 0x7b4b, 0x9540, 0x4c69, 0x665d, 0x8052, 0x9947, + 0x5070, 0x6a65, 0x845a, 0x9e4e, 0x5477, 0x6e6c, 0x8861, 0xa256, + 0x597f, 0x7373, 0x8c68, 0xa65d, 0x5d86, 0x777b, 0x916f, 0xab64, + 0x618d, 0x7b82, 0x9577, 0xaf6b, 0x6694, 0x7f89, 0x997e, 0xb373, + 0x4e74, 0x6869, 0x815e, 0x9b53, 0x527c, 0x6c70, 0x8665, 0xa05a, + 0x5683, 0x7078, 0x8a6c, 0xa461, 0x5b8a, 0x747f, 0x8e74, 0xa869, + 0x5f92, 0x7986, 0x937b, 0xac70, 0x6399, 0x7d8e, 0x9782, 0xb177, + 0x67a0, 0x8195, 0x9b8a, 0xb57e, 0x6ca7, 0x859c, 0x9f91, 0xb986, + 0x5487, 0x6e7c, 0x8871, 0xa166, 0x588f, 0x7283, 0x8c78, 0xa66d, + 0x5c96, 0x768b, 0x907f, 0xaa74, 0x619d, 0x7a92, 0x9487, 0xae7b, + 0x65a4, 0x7f99, 0x998e, 0xb283, 0x69ac, 0x83a1, 0x9d95, 0xb78a, + 0x6db3, 0x87a8, 0xa19d, 0xbb91, 0x72ba, 0x8caf, 0xa5a4, 0xbf99, + 0x5a9a, 0x748f, 0x8e84, 0xa779, 0x5ea2, 0x7896, 0x928b, 0xac80, + 0x62a9, 0x7c9e, 0x9692, 0xb087, 0x67b0, 0x81a5, 0x9a9a, 0xb48e, + 0x6bb7, 0x85ac, 0x9fa1, 0xb996, 0x6fbf, 0x89b3, 0xa3a8, 0xbd9d, + 0x74c6, 0x8dbb, 0xa7b0, 0xc1a4, 0x78cd, 0x92c2, 0xabb7, 0xc5ac, + 0x60ad, 0x7aa2, 0x9497, 0xae8c, 0x64b5, 0x7ea9, 0x989e, 0xb293, + 0x69bc, 0x82b1, 0x9ca5, 0xb69a, 0x6dc3, 0x87b8, 0xa1ad, 0xbaa1, + 0x71ca, 0x8bbf, 0xa5b4, 0xbfa9, 0x75d2, 0x8fc6, 0xa9bb, 0xc3b0, + 0x7ad9, 0x93ce, 0xadc2, 0xc7b7, 0x7ee0, 0x98d5, 0xb2ca, 0xcbbf, + 0x66c0, 0x80b5, 0x9aaa, 0xb49f, 0x6ac7, 0x84bc, 0x9eb1, 0xb8a6, + 0x6fcf, 0x89c4, 0xa2b8, 0xbcad, 0x73d6, 0x8dcb, 0xa7c0, 0xc0b4, + 0x77dd, 0x91d2, 0xabc7, 0xc5bc, 0x7be5, 0x95d9, 0xafce, 0xc9c3, + 0x80ec, 0x9ae1, 0xb3d5, 0xcdca, 0x84f3, 0x9ee8, 0xb8dd, 0xd2d2}, + {0x3c3c, 0x2d41, 0x1e47, 0x0f4d, 0x4754, 0x385a, 0x2960, 0x1a65, + 0x526d, 0x4373, 0x3479, 0x257e, 0x5d86, 0x4e8c, 0x3f91, 0x3097, + 0x689f, 0x59a4, 0x4aaa, 0x3bb0, 0x73b8, 0x64bd, 0x55c3, 0x46c9, + 0x7ed0, 0x6fd6, 0x60dc, 0x51e1, 0x89e9, 0x7aef, 0x6bf5, 0x5cfa, + 0x4c36, 0x3d3b, 0x2e41, 0x1f47, 0x574e, 0x4854, 0x395a, 0x2a60, + 0x6267, 0x536d, 0x4473, 0x3678, 0x6e80, 0x5f86, 0x508c, 0x4191, + 0x7999, 0x6a9f, 0x5ba4, 0x4caa, 0x84b2, 0x75b7, 0x66bd, 0x57c3, + 0x8fcb, 0x80d0, 0x71d6, 0x62dc, 0x9ae3, 0x8be9, 0x7cef, 0x6df4, + 0x5d30, 0x4e36, 0x3f3b, 0x3041, 0x6849, 0x594e, 0x4a54, 0x3b5a, + 0x7361, 0x6467, 0x556d, 0x4673, 0x7e7a, 0x6f80, 0x6086, 0x518b, + 0x8993, 0x7a99, 0x6b9e, 0x5ca4, 0x95ac, 0x86b2, 0x77b7, 0x68bd, + 0xa0c5, 0x91ca, 0x82d0, 0x73d6, 0xabde, 0x9ce3, 0x8de9, 0x7eef, + 0x6e2a, 0x5f30, 0x5035, 0x413b, 0x7943, 0x6a49, 0x5b4e, 0x4c54, + 0x845c, 0x7561, 0x6667, 0x576d, 0x8f74, 0x807a, 0x7180, 0x6286, + 0x9a8d, 0x8b93, 0x7c99, 0x6d9e, 0xa5a6, 0x96ac, 0x87b1, 0x78b7, + 0xb0bf, 0xa1c5, 0x92ca, 0x83d0, 0xbcd8, 0xaddd, 0x9ee3, 0x8fe9, + 0x7e24, 0x6f2a, 0x6030, 0x5135, 0x8a3d, 0x7b43, 0x6c48, 0x5d4e, + 0x9556, 0x865c, 0x7761, 0x6867, 0xa06f, 0x9174, 0x827a, 0x7380, + 0xab87, 0x9c8d, 0x8d93, 0x7e99, 0xb6a0, 0xa7a6, 0x98ac, 0x89b1, + 0xc1b9, 0xb2bf, 0xa3c4, 0x94ca, 0xccd2, 0xbdd8, 0xaedd, 0x9fe3, + 0x8f1e, 0x8024, 0x712a, 0x622f, 0x9a37, 0x8b3d, 0x7c43, 0x6d48, + 0xa550, 0x9656, 0x875b, 0x7861, 0xb169, 0xa26f, 0x9374, 0x847a, + 0xbc82, 0xad87, 0x9e8d, 0x8f93, 0xc79a, 0xb8a0, 0xa9a6, 0x9aac, + 0xd2b3, 0xc3b9, 0xb4bf, 0xa5c4, 0xddcc, 0xced2, 0xbfd7, 0xb0dd, + 0xa019, 0x911e, 0x8224, 0x732a, 0xab31, 0x9c37, 0x8d3d, 0x7e42, + 0xb64a, 0xa750, 0x9856, 0x895b, 0xc163, 0xb269, 0xa36e, 0x9474, + 0xcc7c, 0xbd81, 0xae87, 0x9f8d, 0xd795, 0xc99a, 0xbaa0, 0xaba6, + 0xe3ad, 0xd4b3, 0xc5b9, 0xb6bf, 0xeec6, 0xdfcc, 0xd0d2, 0xc1d7, + 0xb113, 0xa218, 0x931e, 0x8424, 0xbc2c, 0xad31, 0x9e37, 0x8f3d, + 0xc744, 0xb84a, 0xa950, 0x9a55, 0xd25d, 0xc363, 0xb469, 0xa56e, + 0xdd76, 0xce7c, 0xbf81, 0xb087, 0xe88f, 0xd994, 0xca9a, 0xbba0, + 0xf3a8, 0xe4ad, 0xd5b3, 0xc6b9, 0xfec0, 0xefc6, 0xe0cc, 0xd2d1}, + {0x3c3c, 0x4851, 0x5567, 0x617d, 0x533d, 0x5f53, 0x6c69, 0x787f, + 0x6a3f, 0x7655, 0x836b, 0x8f81, 0x8141, 0x8d57, 0x9a6d, 0xa683, + 0x9842, 0xa458, 0xb16e, 0xbe84, 0xaf44, 0xbb5a, 0xc870, 0xd586, + 0xc646, 0xd25c, 0xdf72, 0xec88, 0xdd48, 0xea5d, 0xf673, 0xff89, + 0x3446, 0x415c, 0x4e72, 0x5a88, 0x4c48, 0x585d, 0x6573, 0x7189, + 0x6349, 0x6f5f, 0x7c75, 0x888b, 0x7a4b, 0x8661, 0x9377, 0x9f8d, + 0x914d, 0x9d63, 0xaa79, 0xb68f, 0xa84e, 0xb464, 0xc17a, 0xce90, + 0xbf50, 0xcb66, 0xd87c, 0xe592, 0xd652, 0xe268, 0xef7e, 0xfc94, + 0x2d50, 0x3a66, 0x477c, 0x5392, 0x4552, 0x5168, 0x5e7e, 0x6a94, + 0x5c54, 0x6869, 0x757f, 0x8195, 0x7355, 0x7f6b, 0x8c81, 0x9897, + 0x8a57, 0x966d, 0xa383, 0xaf99, 0xa159, 0xad6f, 0xba85, 0xc79b, + 0xb85a, 0xc470, 0xd186, 0xde9c, 0xcf5c, 0xdb72, 0xe888, 0xf59e, + 0x265a, 0x3370, 0x4086, 0x4c9c, 0x3d5c, 0x4a72, 0x5788, 0x639e, + 0x555e, 0x6174, 0x6e8a, 0x7aa0, 0x6c60, 0x7876, 0x858b, 0x91a1, + 0x8361, 0x8f77, 0x9c8d, 0xa8a3, 0x9a63, 0xa679, 0xb38f, 0xbfa5, + 0xb165, 0xbd7b, 0xca91, 0xd7a7, 0xc866, 0xd47c, 0xe192, 0xeea8, + 0x1f65, 0x2c7b, 0x3991, 0x45a7, 0x3666, 0x437c, 0x5092, 0x5ca8, + 0x4e68, 0x5a7e, 0x6794, 0x73aa, 0x656a, 0x7180, 0x7e96, 0x8aac, + 0x7c6c, 0x8882, 0x9597, 0xa1ad, 0x936d, 0x9f83, 0xac99, 0xb8af, + 0xaa6f, 0xb685, 0xc39b, 0xd0b1, 0xc171, 0xcd87, 0xda9d, 0xe7b3, + 0x186f, 0x2585, 0x329b, 0x3eb1, 0x2f71, 0x3c87, 0x499d, 0x55b3, + 0x4672, 0x5388, 0x609e, 0x6cb4, 0x5e74, 0x6a8a, 0x77a0, 0x83b6, + 0x7576, 0x818c, 0x8ea2, 0x9ab8, 0x8c78, 0x988e, 0xa5a4, 0xb1b9, + 0xa379, 0xaf8f, 0xbca5, 0xc8bb, 0xba7b, 0xc691, 0xd3a7, 0xe0bd, + 0x1179, 0x1e8f, 0x2ba5, 0x37bb, 0x287b, 0x3591, 0x42a7, 0x4ebd, + 0x3f7d, 0x4c93, 0x59a9, 0x65bf, 0x577e, 0x6394, 0x70aa, 0x7cc0, + 0x6e80, 0x7a96, 0x87ac, 0x93c2, 0x8582, 0x9198, 0x9eae, 0xaac4, + 0x9c84, 0xa89a, 0xb5b0, 0xc1c5, 0xb385, 0xbf9b, 0xccb1, 0xd9c7, + 0x0a84, 0x179a, 0x23b0, 0x30c5, 0x2185, 0x2e9b, 0x3bb1, 0x47c7, + 0x3887, 0x459d, 0x52b3, 0x5ec9, 0x4f89, 0x5c9f, 0x69b5, 0x75cb, + 0x678a, 0x73a0, 0x80b6, 0x8ccc, 0x7e8c, 0x8aa2, 0x97b8, 0xa3ce, + 0x958e, 0xa1a4, 0xaeba, 0xbad0, 0xac90, 0xb8a6, 0xc5bc, 0xd1d2}, + {0x3c3c, 0x4c2b, 0x5c1a, 0x6d09, 0x3c4b, 0x4c3a, 0x5d29, 0x6d18, + 0x3c5a, 0x4c49, 0x5d38, 0x6d27, 0x3c69, 0x4d58, 0x5d47, 0x6e37, + 0x3c78, 0x4d67, 0x5d56, 0x6e46, 0x3d87, 0x4d76, 0x5e66, 0x6e55, + 0x3d96, 0x4d85, 0x5e75, 0x6e64, 0x3da5, 0x4e94, 0x5e84, 0x6f73, + 0x4a49, 0x5a38, 0x6b28, 0x7b17, 0x4a58, 0x5a47, 0x6b37, 0x7b26, + 0x4a67, 0x5b56, 0x6b46, 0x7c35, 0x4a76, 0x5b66, 0x6b55, 0x7c44, + 0x4b85, 0x5b75, 0x6c64, 0x7c53, 0x4b94, 0x5b84, 0x6c73, 0x7c62, + 0x4ba4, 0x5c93, 0x6c82, 0x7c71, 0x4bb3, 0x5ca2, 0x6c91, 0x7d80, + 0x5857, 0x6846, 0x7935, 0x8924, 0x5866, 0x6855, 0x7944, 0x8933, + 0x5875, 0x6964, 0x7953, 0x8a42, 0x5884, 0x6973, 0x7962, 0x8a52, + 0x5993, 0x6982, 0x7a71, 0x8a61, 0x59a2, 0x6991, 0x7a81, 0x8a70, + 0x59b1, 0x6aa0, 0x7a90, 0x8b7f, 0x59c0, 0x6aaf, 0x7a9f, 0x8b8e, + 0x6664, 0x7653, 0x8743, 0x9732, 0x6673, 0x7762, 0x8752, 0x9841, + 0x6682, 0x7771, 0x8761, 0x9850, 0x6791, 0x7781, 0x8870, 0x985f, + 0x67a0, 0x7790, 0x887f, 0x986e, 0x67af, 0x789f, 0x888e, 0x997d, + 0x67bf, 0x78ae, 0x889d, 0x998c, 0x67ce, 0x78bd, 0x88ac, 0x999b, + 0x7472, 0x8561, 0x9550, 0xa63f, 0x7481, 0x8570, 0x955f, 0xa64e, + 0x7490, 0x857f, 0x956e, 0xa65e, 0x759f, 0x858e, 0x967d, 0xa66d, + 0x75ae, 0x859d, 0x968c, 0xa67c, 0x75bd, 0x86ac, 0x969c, 0xa78b, + 0x75cc, 0x86bb, 0x96ab, 0xa79a, 0x76db, 0x86ca, 0x97ba, 0xa7a9, + 0x827f, 0x936e, 0xa35e, 0xb44d, 0x828e, 0x937d, 0xa36d, 0xb45c, + 0x839d, 0x938c, 0xa47c, 0xb46b, 0x83ac, 0x939c, 0xa48b, 0xb47a, + 0x83bb, 0x94ab, 0xa49a, 0xb589, 0x83cb, 0x94ba, 0xa4a9, 0xb598, + 0x84da, 0x94c9, 0xa5b8, 0xb5a7, 0x84e9, 0x94d8, 0xa5c7, 0xb5b6, + 0x908d, 0xa17c, 0xb16b, 0xc25a, 0x919c, 0xa18b, 0xb17a, 0xc269, + 0x91ab, 0xa19a, 0xb289, 0xc279, 0x91ba, 0xa1a9, 0xb298, 0xc288, + 0x91c9, 0xa2b8, 0xb2a7, 0xc397, 0x91d8, 0xa2c7, 0xb2b7, 0xc3a6, + 0x92e7, 0xa2d6, 0xb3c6, 0xc3b5, 0x92f6, 0xa2e5, 0xb3d5, 0xc3c4, + 0x9e9a, 0xaf89, 0xbf79, 0xd068, 0x9fa9, 0xaf98, 0xc088, 0xd077, + 0x9fb8, 0xafa7, 0xc097, 0xd086, 0x9fc7, 0xb0b7, 0xc0a6, 0xd195, + 0x9fd6, 0xb0c6, 0xc0b5, 0xd1a4, 0xa0e6, 0xb0d5, 0xc1c4, 0xd1b3, + 0xa0f5, 0xb0e4, 0xc1d3, 0xd1c2, 0xa0ff, 0xb1f3, 0xc1e2, 0xd2d2}, + {0x3c3c, 0x2b4e, 0x1b61, 0x0b74, 0x4e50, 0x3e63, 0x2e75, 0x1d88, + 0x6164, 0x5177, 0x418a, 0x309c, 0x7478, 0x648b, 0x539e, 0x43b1, + 0x878d, 0x779f, 0x66b2, 0x56c5, 0x9aa1, 0x89b4, 0x79c7, 0x69d9, + 0xadb5, 0x9cc8, 0x8cdb, 0x7cee, 0xbfca, 0xafdc, 0x9fef, 0x8eff, + 0x4535, 0x3547, 0x245a, 0x146d, 0x5849, 0x485c, 0x376e, 0x2781, + 0x6b5d, 0x5a70, 0x4a83, 0x3a96, 0x7e71, 0x6d84, 0x5d97, 0x4daa, + 0x9086, 0x8099, 0x70ab, 0x60be, 0xa39a, 0x93ad, 0x83c0, 0x72d2, + 0xb6ae, 0xa6c1, 0x95d4, 0x85e7, 0xc9c3, 0xb9d5, 0xa8e8, 0x98fb, + 0x4f2e, 0x3e40, 0x2e53, 0x1e66, 0x6142, 0x5155, 0x4168, 0x317a, + 0x7456, 0x6469, 0x547c, 0x438f, 0x876b, 0x777d, 0x6790, 0x56a3, + 0x9a7f, 0x8a92, 0x79a4, 0x69b7, 0xad93, 0x9da6, 0x8cb9, 0x7ccb, + 0xc0a7, 0xafba, 0x9fcd, 0x8fe0, 0xd3bc, 0xc2ce, 0xb2e1, 0xa2f4, + 0x5827, 0x483a, 0x384c, 0x275f, 0x6b3b, 0x5b4e, 0x4a61, 0x3a73, + 0x7e4f, 0x6e62, 0x5d75, 0x4d88, 0x9164, 0x8076, 0x7089, 0x609c, + 0xa478, 0x938b, 0x839d, 0x73b0, 0xb68c, 0xa69f, 0x96b2, 0x86c5, + 0xc9a0, 0xb9b3, 0xa9c6, 0x98d9, 0xdcb5, 0xccc8, 0xbbda, 0xabed, + 0x6220, 0x5233, 0x4145, 0x3158, 0x7534, 0x6447, 0x545a, 0x446d, + 0x8748, 0x775b, 0x676e, 0x5781, 0x9a5d, 0x8a70, 0x7a82, 0x6995, + 0xad71, 0x9d84, 0x8d97, 0x7ca9, 0xc085, 0xb098, 0x9fab, 0x8fbe, + 0xd39a, 0xc3ac, 0xb2bf, 0xa2d2, 0xe6ae, 0xd5c1, 0xc5d3, 0xb5e6, + 0x6b19, 0x5b2c, 0x4b3f, 0x3a51, 0x7e2d, 0x6e40, 0x5e53, 0x4d66, + 0x9142, 0x8154, 0x7067, 0x607a, 0xa456, 0x9469, 0x837b, 0x738e, + 0xb76a, 0xa67d, 0x9690, 0x86a2, 0xca7e, 0xb991, 0xa9a4, 0x99b7, + 0xdc93, 0xcca5, 0xbcb8, 0xaccb, 0xefa7, 0xdfba, 0xcfcd, 0xbedf, + 0x7512, 0x6525, 0x5438, 0x444a, 0x8826, 0x7839, 0x674c, 0x575f, + 0x9b3b, 0x8a4d, 0x7a60, 0x6a73, 0xad4f, 0x9d62, 0x8d74, 0x7d87, + 0xc063, 0xb076, 0xa089, 0x8f9c, 0xd377, 0xc38a, 0xb39d, 0xa2b0, + 0xe68c, 0xd69f, 0xc5b1, 0xb5c4, 0xf9a0, 0xe9b3, 0xd8c6, 0xc8d8, + 0x7f0b, 0x6e1e, 0x5e31, 0x4e43, 0x911f, 0x8132, 0x7145, 0x6058, + 0xa434, 0x9446, 0x8459, 0x736c, 0xb748, 0xa75b, 0x966e, 0x8680, + 0xca5c, 0xba6f, 0xa982, 0x9995, 0xdd71, 0xcc83, 0xbc96, 0xaca9, + 0xf085, 0xdf98, 0xcfaa, 0xbfbd, 0xff99, 0xf2ac, 0xe2bf, 0xd2d1}, + {0x3c3c, 0x5345, 0x6b4f, 0x8359, 0x4c3b, 0x6445, 0x7c4f, 0x9359, + 0x5d3b, 0x7545, 0x8c4f, 0xa459, 0x6e3b, 0x8545, 0x9d4f, 0xb559, + 0x7f3b, 0x9645, 0xae4f, 0xc659, 0x8f3b, 0xa745, 0xbf4f, 0xd659, + 0xa03b, 0xb845, 0xcf4f, 0xe759, 0xb13b, 0xc945, 0xe04f, 0xf859, + 0x364d, 0x4e57, 0x6561, 0x7d6b, 0x474d, 0x5e57, 0x7661, 0x8e6b, + 0x584d, 0x6f57, 0x8761, 0x9f6a, 0x684d, 0x8057, 0x9860, 0xaf6a, + 0x794d, 0x9156, 0xa860, 0xc06a, 0x8a4d, 0xa256, 0xb960, 0xd16a, + 0x9b4c, 0xb256, 0xca60, 0xe26a, 0xab4c, 0xc356, 0xdb60, 0xf26a, + 0x315e, 0x4868, 0x6072, 0x787c, 0x415e, 0x5968, 0x7172, 0x887c, + 0x525e, 0x6a68, 0x8172, 0x997c, 0x635e, 0x7b68, 0x9272, 0xaa7c, + 0x745e, 0x8b68, 0xa372, 0xbb7c, 0x845e, 0x9c68, 0xb472, 0xcb7c, + 0x955e, 0xad68, 0xc472, 0xdc7c, 0xa65e, 0xbe68, 0xd572, 0xed7b, + 0x2b6f, 0x4379, 0x5a83, 0x728d, 0x3c6f, 0x5379, 0x6b83, 0x838d, + 0x4d6f, 0x6479, 0x7c83, 0x948d, 0x5d6f, 0x7579, 0x8d83, 0xa48d, + 0x6e6f, 0x8679, 0x9d83, 0xb58d, 0x7f6f, 0x9779, 0xae83, 0xc68d, + 0x906f, 0xa779, 0xbf83, 0xd78d, 0xa06f, 0xb879, 0xd083, 0xe78d, + 0x2680, 0x3d8a, 0x5594, 0x6d9e, 0x3680, 0x4e8a, 0x6694, 0x7d9e, + 0x4780, 0x5f8a, 0x7694, 0x8e9e, 0x5880, 0x708a, 0x8794, 0x9f9e, + 0x6980, 0x808a, 0x9894, 0xb09e, 0x7980, 0x918a, 0xa994, 0xc09e, + 0x8a80, 0xa28a, 0xba94, 0xd19e, 0x9b80, 0xb38a, 0xca94, 0xe29e, + 0x2092, 0x389b, 0x4fa5, 0x67af, 0x3191, 0x499b, 0x60a5, 0x78af, + 0x4291, 0x599b, 0x71a5, 0x89af, 0x5291, 0x6a9b, 0x82a5, 0x99af, + 0x6391, 0x7b9b, 0x92a5, 0xaaaf, 0x7491, 0x8c9b, 0xa3a5, 0xbbaf, + 0x8591, 0x9c9b, 0xb4a5, 0xccaf, 0x9591, 0xad9b, 0xc5a5, 0xdcaf, + 0x1ba3, 0x32ad, 0x4ab7, 0x62c1, 0x2ba3, 0x43ad, 0x5bb7, 0x72c1, + 0x3ca3, 0x54ad, 0x6bb7, 0x83c0, 0x4da3, 0x65ad, 0x7cb7, 0x94c0, + 0x5ea3, 0x75ad, 0x8db6, 0xa5c0, 0x6ea3, 0x86ac, 0x9eb6, 0xb5c0, + 0x7fa2, 0x97ac, 0xafb6, 0xc6c0, 0x90a2, 0xa8ac, 0xbfb6, 0xd7c0, + 0x15b4, 0x2dbe, 0x44c8, 0x5cd2, 0x26b4, 0x3ebe, 0x55c8, 0x6dd2, + 0x37b4, 0x4ebe, 0x66c8, 0x7ed2, 0x47b4, 0x5fbe, 0x77c8, 0x8ed2, + 0x58b4, 0x70be, 0x88c8, 0x9fd2, 0x69b4, 0x81be, 0x98c8, 0xb0d2, + 0x7ab4, 0x91be, 0xa9c8, 0xc1d2, 0x8ab4, 0xa2be, 0xbac8, 0xd1d2}, + {0x3c3c, 0x3e2e, 0x4120, 0x4412, 0x3c51, 0x3f44, 0x4236, 0x4528, + 0x3d67, 0x405a, 0x434c, 0x463e, 0x3e7d, 0x4170, 0x4462, 0x4754, + 0x3f93, 0x4286, 0x4578, 0x486a, 0x40a9, 0x439c, 0x468e, 0x4980, + 0x41bf, 0x44b2, 0x47a4, 0x4a96, 0x42d5, 0x45c8, 0x48ba, 0x4bac, + 0x4f41, 0x5233, 0x5525, 0x5818, 0x5057, 0x5349, 0x563b, 0x592e, + 0x516d, 0x545f, 0x5751, 0x5944, 0x5283, 0x5475, 0x5767, 0x5a5a, + 0x5299, 0x558b, 0x587d, 0x5b70, 0x53af, 0x56a1, 0x5993, 0x5c85, + 0x54c5, 0x57b7, 0x5aa9, 0x5d9b, 0x55db, 0x58cd, 0x5bbf, 0x5eb1, + 0x6246, 0x6538, 0x682b, 0x6b1d, 0x635c, 0x664e, 0x6941, 0x6c33, + 0x6472, 0x6764, 0x6a57, 0x6d49, 0x6588, 0x687a, 0x6b6d, 0x6e5f, + 0x669e, 0x6990, 0x6c83, 0x6f75, 0x67b4, 0x6aa6, 0x6d99, 0x708b, + 0x68ca, 0x6bbc, 0x6daf, 0x70a1, 0x68e0, 0x6bd2, 0x6ec5, 0x71b7, + 0x754c, 0x783e, 0x7b30, 0x7e22, 0x7662, 0x7954, 0x7c46, 0x7f38, + 0x7777, 0x7a6a, 0x7d5c, 0x804e, 0x788d, 0x7b80, 0x7e72, 0x8164, + 0x79a3, 0x7c96, 0x7f88, 0x827a, 0x7ab9, 0x7dac, 0x809e, 0x8390, + 0x7bcf, 0x7ec2, 0x81b4, 0x84a6, 0x7ce5, 0x7fd8, 0x82ca, 0x85bc, + 0x8851, 0x8b43, 0x8e35, 0x9128, 0x8967, 0x8c59, 0x8f4b, 0x923e, + 0x8a7d, 0x8d6f, 0x9061, 0x9354, 0x8b93, 0x8e85, 0x9177, 0x946a, + 0x8ca9, 0x8f9b, 0x928d, 0x9580, 0x8dbf, 0x90b1, 0x93a3, 0x9696, + 0x8ed5, 0x91c7, 0x94b9, 0x97ab, 0x8feb, 0x92dd, 0x95cf, 0x98c1, + 0x9c56, 0x9f48, 0xa23b, 0xa52d, 0x9d6c, 0xa05e, 0xa251, 0xa543, + 0x9d82, 0xa074, 0xa367, 0xa659, 0x9e98, 0xa18a, 0xa47d, 0xa76f, + 0x9fae, 0xa2a0, 0xa593, 0xa885, 0xa0c4, 0xa3b6, 0xa6a9, 0xa99b, + 0xa1da, 0xa4cc, 0xa7bf, 0xaab1, 0xa2f0, 0xa5e2, 0xa8d5, 0xabc7, + 0xaf5c, 0xb24e, 0xb540, 0xb832, 0xb072, 0xb364, 0xb656, 0xb948, + 0xb188, 0xb47a, 0xb76c, 0xba5e, 0xb29d, 0xb590, 0xb882, 0xbb74, + 0xb3b3, 0xb6a6, 0xb998, 0xbb8a, 0xb4c9, 0xb6bc, 0xb9ae, 0xbca0, + 0xb4df, 0xb7d2, 0xbac4, 0xbdb6, 0xb5f5, 0xb8e8, 0xbbda, 0xbecc, + 0xc261, 0xc553, 0xc845, 0xcb38, 0xc377, 0xc669, 0xc95b, 0xcc4e, + 0xc48d, 0xc77f, 0xca71, 0xcd64, 0xc5a3, 0xc895, 0xcb87, 0xce7a, + 0xc6b9, 0xc9ab, 0xcc9d, 0xcf90, 0xc7cf, 0xcac1, 0xcdb3, 0xd0a6, + 0xc8e5, 0xcbd7, 0xcec9, 0xd1bc, 0xc9fb, 0xcced, 0xcfdf, 0xd2d1}, + {0x3c3c, 0x3256, 0x2971, 0x208c, 0x5448, 0x4a63, 0x417e, 0x3899, + 0x6c55, 0x6370, 0x598b, 0x50a6, 0x8462, 0x7b7d, 0x7198, 0x68b2, + 0x9c6f, 0x938a, 0x8aa4, 0x80bf, 0xb47c, 0xab97, 0xa2b1, 0x99cc, + 0xcd89, 0xc3a3, 0xbabe, 0xb1d9, 0xe595, 0xdcb0, 0xd2cb, 0xc9e6, + 0x3d39, 0x3353, 0x2a6e, 0x2189, 0x5545, 0x4c60, 0x427b, 0x3996, + 0x6d52, 0x646d, 0x5b88, 0x51a3, 0x855f, 0x7c7a, 0x7395, 0x69b0, + 0x9d6c, 0x9487, 0x8ba2, 0x82bc, 0xb679, 0xac94, 0xa3ae, 0x9ac9, + 0xce86, 0xc5a0, 0xbbbb, 0xb2d6, 0xe692, 0xddad, 0xd3c8, 0xcae3, + 0x3e36, 0x3551, 0x2b6b, 0x2286, 0x5643, 0x4d5d, 0x4478, 0x3a93, + 0x6e4f, 0x656a, 0x5c85, 0x52a0, 0x875c, 0x7d77, 0x7492, 0x6bad, + 0x9f69, 0x9584, 0x8c9f, 0x83b9, 0xb776, 0xae91, 0xa4ac, 0x9bc6, + 0xcf83, 0xc69e, 0xbdb8, 0xb3d3, 0xe790, 0xdeaa, 0xd5c5, 0xcbe0, + 0x3f33, 0x364e, 0x2d68, 0x2383, 0x5740, 0x4e5a, 0x4575, 0x3b90, + 0x704c, 0x6667, 0x5d82, 0x549d, 0x8859, 0x7e74, 0x758f, 0x6caa, + 0xa066, 0x9781, 0x8d9c, 0x84b7, 0xb873, 0xaf8e, 0xa6a9, 0x9cc3, + 0xd080, 0xc79b, 0xbeb5, 0xb4d0, 0xe98d, 0xdfa7, 0xd6c2, 0xcddd, + 0x4030, 0x374b, 0x2e66, 0x2480, 0x593d, 0x4f58, 0x4672, 0x3d8d, + 0x714a, 0x6764, 0x5e7f, 0x559a, 0x8956, 0x8071, 0x768c, 0x6da7, + 0xa163, 0x987e, 0x8f99, 0x85b4, 0xb970, 0xb08b, 0xa7a6, 0x9dc1, + 0xd27d, 0xc898, 0xbfb3, 0xb6cd, 0xea8a, 0xe0a5, 0xd7bf, 0xceda, + 0x422d, 0x3848, 0x2f63, 0x267d, 0x5a3a, 0x5055, 0x476f, 0x3e8a, + 0x7247, 0x6961, 0x5f7c, 0x5697, 0x8a54, 0x816e, 0x7889, 0x6ea4, + 0xa260, 0x997b, 0x9096, 0x86b1, 0xbb6d, 0xb188, 0xa8a3, 0x9fbe, + 0xd37a, 0xc995, 0xc0b0, 0xb7ca, 0xeb87, 0xe2a2, 0xd8bc, 0xcfd7, + 0x432a, 0x3a45, 0x3060, 0x277b, 0x5b37, 0x5252, 0x486d, 0x3f87, + 0x7344, 0x6a5f, 0x6179, 0x5794, 0x8b51, 0x826b, 0x7986, 0x70a1, + 0xa45d, 0x9a78, 0x9193, 0x88ae, 0xbc6a, 0xb285, 0xa9a0, 0xa0bb, + 0xd477, 0xcb92, 0xc1ad, 0xb8c8, 0xec84, 0xe39f, 0xdaba, 0xd0d4, + 0x4427, 0x3b42, 0x315d, 0x2878, 0x5c34, 0x534f, 0x4a6a, 0x4084, + 0x7441, 0x6b5c, 0x6276, 0x5991, 0x8d4e, 0x8369, 0x7a83, 0x719e, + 0xa55b, 0x9c75, 0x9290, 0x89ab, 0xbd67, 0xb482, 0xaa9d, 0xa1b8, + 0xd574, 0xcc8f, 0xc3aa, 0xb9c5, 0xed81, 0xe49c, 0xdbb7, 0xd1d2}, + {0x3c3c, 0x5738, 0x7334, 0x8f30, 0x443f, 0x603b, 0x7c37, 0x9833, + 0x4d42, 0x693e, 0x853a, 0xa136, 0x5645, 0x7241, 0x8e3d, 0xaa39, + 0x5f48, 0x7b44, 0x9740, 0xb33c, 0x684b, 0x8447, 0xa043, 0xbb3f, + 0x714e, 0x8d4a, 0xa946, 0xc442, 0x7a51, 0x964d, 0xb149, 0xcd46, + 0x3c4f, 0x584c, 0x7448, 0x9044, 0x4553, 0x614f, 0x7d4b, 0x9947, + 0x4e56, 0x6a52, 0x864e, 0xa14a, 0x5759, 0x7355, 0x8e51, 0xaa4d, + 0x605c, 0x7c58, 0x9754, 0xb350, 0x695f, 0x845b, 0xa057, 0xbc53, + 0x7162, 0x8d5e, 0xa95a, 0xc556, 0x7a65, 0x9661, 0xb25d, 0xce5a, + 0x3d63, 0x5960, 0x745c, 0x9058, 0x4667, 0x6163, 0x7d5f, 0x995b, + 0x4e6a, 0x6a66, 0x8662, 0xa25e, 0x576d, 0x7369, 0x8f65, 0xab61, + 0x6070, 0x7c6c, 0x9868, 0xb464, 0x6973, 0x856f, 0xa16b, 0xbd67, + 0x7276, 0x8e72, 0xaa6e, 0xc66a, 0x7b79, 0x9775, 0xb371, 0xce6e, + 0x3d77, 0x5974, 0x7570, 0x916c, 0x467b, 0x6277, 0x7e73, 0x9a6f, + 0x4f7e, 0x6b7a, 0x8776, 0xa372, 0x5881, 0x747d, 0x9079, 0xac75, + 0x6184, 0x7d80, 0x997c, 0xb478, 0x6a87, 0x8683, 0xa17f, 0xbd7b, + 0x738a, 0x8f86, 0xaa82, 0xc67e, 0x7c8d, 0x9789, 0xb385, 0xcf82, + 0x3e8b, 0x5a88, 0x7684, 0x9180, 0x478f, 0x638b, 0x7e87, 0x9a83, + 0x5092, 0x6c8e, 0x878a, 0xa386, 0x5995, 0x7491, 0x908d, 0xac89, + 0x6198, 0x7d94, 0x9990, 0xb58c, 0x6a9b, 0x8697, 0xa293, 0xbe8f, + 0x739e, 0x8f9a, 0xab96, 0xc792, 0x7ca1, 0x989d, 0xb499, 0xd096, + 0x3f9f, 0x5a9c, 0x7698, 0x9294, 0x47a3, 0x639f, 0x7f9b, 0x9b97, + 0x50a6, 0x6ca2, 0x889e, 0xa49a, 0x59a9, 0x75a5, 0x91a1, 0xad9d, + 0x62ac, 0x7ea8, 0x9aa4, 0xb6a0, 0x6baf, 0x87ab, 0xa3a7, 0xbfa3, + 0x74b2, 0x90ae, 0xacaa, 0xc7a6, 0x7db5, 0x99b1, 0xb4ad, 0xd0aa, + 0x3fb3, 0x5bb0, 0x77ac, 0x93a8, 0x48b7, 0x64b3, 0x80af, 0x9cab, + 0x51ba, 0x6db6, 0x89b2, 0xa4ae, 0x5abd, 0x76b9, 0x91b5, 0xadb1, + 0x63c0, 0x7fbc, 0x9ab8, 0xb6b4, 0x6cc3, 0x87bf, 0xa3bb, 0xbfb7, + 0x74c6, 0x90c2, 0xacbe, 0xc8ba, 0x7dc9, 0x99c5, 0xb5c1, 0xd1be, + 0x40c7, 0x5cc4, 0x77c0, 0x93bc, 0x49cb, 0x64c7, 0x80c3, 0x9cbf, + 0x52ce, 0x6dca, 0x89c6, 0xa5c2, 0x5ad1, 0x76cd, 0x92c9, 0xaec5, + 0x63d4, 0x7fd0, 0x9bcc, 0xb7c8, 0x6cd7, 0x88d3, 0xa4cf, 0xc0cb, + 0x75da, 0x91d6, 0xadd2, 0xc9ce, 0x7edd, 0x9ad9, 0xb6d5, 0xd2d2}, + {0x3c3c, 0x3238, 0x2835, 0x1f31, 0x4255, 0x3851, 0x2e4e, 0x254b, + 0x486e, 0x3e6b, 0x3567, 0x2b64, 0x4e87, 0x4484, 0x3b81, 0x317d, + 0x54a1, 0x4a9d, 0x419a, 0x3796, 0x5aba, 0x50b7, 0x47b3, 0x3db0, + 0x60d3, 0x57d0, 0x4dcc, 0x43c9, 0x66ec, 0x5de9, 0x53e6, 0x49e2, + 0x4f39, 0x4536, 0x3c32, 0x322f, 0x5552, 0x4b4f, 0x424c, 0x3848, + 0x5b6c, 0x5268, 0x4865, 0x3e61, 0x6185, 0x5882, 0x4e7e, 0x447b, + 0x679e, 0x5e9b, 0x5497, 0x4b94, 0x6db8, 0x64b4, 0x5ab1, 0x51ad, + 0x74d1, 0x6acd, 0x60ca, 0x57c7, 0x7aea, 0x70e7, 0x66e3, 0x5de0, + 0x6237, 0x5933, 0x4f30, 0x462c, 0x6850, 0x5f4d, 0x5549, 0x4c46, + 0x6f69, 0x6566, 0x5b62, 0x525f, 0x7583, 0x6b7f, 0x617c, 0x5878, + 0x7b9c, 0x7198, 0x6895, 0x5e92, 0x81b5, 0x77b2, 0x6eae, 0x64ab, + 0x87ce, 0x7dcb, 0x74c8, 0x6ac4, 0x8de8, 0x84e4, 0x7ae1, 0x70dd, + 0x7634, 0x6c31, 0x632e, 0x592a, 0x7c4e, 0x724a, 0x6947, 0x5f43, + 0x8267, 0x7863, 0x6f60, 0x655d, 0x8880, 0x7f7d, 0x7579, 0x6b76, + 0x8e99, 0x8596, 0x7b93, 0x718f, 0x94b3, 0x8baf, 0x81ac, 0x78a9, + 0x9acc, 0x91c9, 0x87c5, 0x7ec2, 0xa1e5, 0x97e2, 0x8dde, 0x84db, + 0x8932, 0x802f, 0x762b, 0x6c28, 0x8f4b, 0x8648, 0x7c44, 0x7341, + 0x9564, 0x8c61, 0x825e, 0x795a, 0x9c7e, 0x927a, 0x8877, 0x7f74, + 0xa297, 0x9894, 0x8e90, 0x858d, 0xa8b0, 0x9ead, 0x95aa, 0x8ba6, + 0xaeca, 0xa4c6, 0x9bc3, 0x91bf, 0xb4e3, 0xaadf, 0xa1dc, 0x97d9, + 0x9d30, 0x932c, 0x8929, 0x8025, 0xa349, 0x9945, 0x9042, 0x863f, + 0xa962, 0x9f5f, 0x965b, 0x8c58, 0xaf7b, 0xa578, 0x9c75, 0x9271, + 0xb595, 0xac91, 0xa28e, 0x988a, 0xbbae, 0xb2ab, 0xa8a7, 0x9ea4, + 0xc1c7, 0xb8c4, 0xaec0, 0xa5bd, 0xc7e1, 0xbedd, 0xb4da, 0xabd6, + 0xb02d, 0xa72a, 0x9d26, 0x9323, 0xb646, 0xad43, 0xa340, 0x993c, + 0xbc60, 0xb35c, 0xa959, 0xa055, 0xc279, 0xb976, 0xaf72, 0xa66f, + 0xc992, 0xbf8f, 0xb58b, 0xac88, 0xcfac, 0xc5a8, 0xbba5, 0xb2a1, + 0xd5c5, 0xcbc1, 0xc2be, 0xb8bb, 0xdbde, 0xd1db, 0xc8d7, 0xbed4, + 0xc42b, 0xba27, 0xb024, 0xa721, 0xca44, 0xc041, 0xb63d, 0xad3a, + 0xd05d, 0xc65a, 0xbd56, 0xb353, 0xd677, 0xcc73, 0xc370, 0xb96c, + 0xdc90, 0xd28c, 0xc989, 0xbf86, 0xe2a9, 0xd8a6, 0xcfa2, 0xc59f, + 0xe8c2, 0xdfbf, 0xd5bc, 0xcbb8, 0xeedc, 0xe5d8, 0xdbd5, 0xd2d1}, + {0x3c3c, 0x3f56, 0x4271, 0x468c, 0x5541, 0x585b, 0x5b76, 0x5f91, + 0x6e46, 0x7161, 0x757b, 0x7896, 0x874b, 0x8a66, 0x8e81, 0x919b, + 0xa051, 0xa36b, 0xa786, 0xaaa1, 0xb956, 0xbd71, 0xc08b, 0xc3a6, + 0xd25b, 0xd676, 0xd991, 0xdcab, 0xeb61, 0xef7b, 0xf296, 0xf6b1, + 0x3640, 0x3a5b, 0x3d76, 0x4090, 0x4f45, 0x5360, 0x567b, 0x5a96, + 0x694b, 0x6c65, 0x6f80, 0x739b, 0x8250, 0x856b, 0x8885, 0x8ca0, + 0x9b55, 0x9e70, 0xa28b, 0xa5a5, 0xb45b, 0xb775, 0xbb90, 0xbeab, + 0xcd60, 0xd17b, 0xd495, 0xd7b0, 0xe665, 0xea80, 0xed9b, 0xf0b5, + 0x3145, 0x3560, 0x387a, 0x3b95, 0x4a4a, 0x4e65, 0x5180, 0x549a, + 0x634f, 0x676a, 0x6a85, 0x6ea0, 0x7d55, 0x806f, 0x838a, 0x87a5, + 0x965a, 0x9975, 0x9c8f, 0xa0aa, 0xaf5f, 0xb27a, 0xb695, 0xb9af, + 0xc865, 0xcb7f, 0xcf9a, 0xd2b5, 0xe16a, 0xe585, 0xe89f, 0xebba, + 0x2c4a, 0x2f64, 0x337f, 0x369a, 0x454f, 0x496a, 0x4c84, 0x4f9f, + 0x5e54, 0x626f, 0x658a, 0x68a4, 0x7759, 0x7b74, 0x7e8f, 0x82aa, + 0x915f, 0x9479, 0x9794, 0x9baf, 0xaa64, 0xad7f, 0xb099, 0xb4b4, + 0xc369, 0xc684, 0xca9f, 0xcdb9, 0xdc6f, 0xdf89, 0xe3a4, 0xe6bf, + 0x274e, 0x2a69, 0x2e84, 0x319e, 0x4054, 0x436e, 0x4789, 0x4aa4, + 0x5959, 0x5d74, 0x608e, 0x63a9, 0x725e, 0x7679, 0x7994, 0x7cae, + 0x8b63, 0x8f7e, 0x9299, 0x96b4, 0xa569, 0xa883, 0xab9e, 0xafb9, + 0xbe6e, 0xc189, 0xc4a3, 0xc8be, 0xd773, 0xda8e, 0xdea9, 0xe1c3, + 0x2253, 0x256e, 0x2888, 0x2ca3, 0x3b58, 0x3e73, 0x428e, 0x45a8, + 0x545e, 0x5778, 0x5b93, 0x5eae, 0x6d63, 0x717e, 0x7498, 0x77b3, + 0x8668, 0x8a83, 0x8d9e, 0x90b8, 0x9f6d, 0xa388, 0xa6a3, 0xaabe, + 0xb973, 0xbc8d, 0xbfa8, 0xc3c3, 0xd278, 0xd593, 0xd8ad, 0xdcc8, + 0x1d58, 0x2072, 0x238d, 0x27a8, 0x365d, 0x3978, 0x3c92, 0x40ad, + 0x4f62, 0x527d, 0x5698, 0x59b2, 0x6868, 0x6b82, 0x6f9d, 0x72b8, + 0x816d, 0x8588, 0x88a2, 0x8bbd, 0x9a72, 0x9e8d, 0xa1a8, 0xa4c2, + 0xb377, 0xb792, 0xbaad, 0xbec8, 0xcd7d, 0xd097, 0xd3b2, 0xd7cd, + 0x175c, 0x1b77, 0x1e92, 0x22ac, 0x3162, 0x347c, 0x3797, 0x3bb2, + 0x4a67, 0x4d82, 0x509c, 0x54b7, 0x636c, 0x6687, 0x6aa2, 0x6dbc, + 0x7c72, 0x7f8c, 0x83a7, 0x86c2, 0x9577, 0x9892, 0x9cac, 0x9fc7, + 0xae7c, 0xb297, 0xb5b2, 0xb8cc, 0xc781, 0xcb9c, 0xceb7, 0xd1d2}, + {0x3c3c, 0x532e, 0x6a20, 0x8212, 0x3e45, 0x5537, 0x6d29, 0x841b, + 0x404f, 0x5841, 0x6f33, 0x8725, 0x4359, 0x5a4b, 0x723d, 0x892f, + 0x4563, 0x5d55, 0x7447, 0x8c39, 0x486d, 0x5f5f, 0x7751, 0x8e43, + 0x4a76, 0x6268, 0x795a, 0x914c, 0x4d80, 0x6472, 0x7c64, 0x9356, + 0x444d, 0x5c3f, 0x7331, 0x8b23, 0x4757, 0x5e49, 0x763b, 0x8d2d, + 0x4961, 0x6153, 0x7845, 0x9037, 0x4c6b, 0x635d, 0x7b4f, 0x9241, + 0x4e74, 0x6666, 0x7d58, 0x954a, 0x517e, 0x6870, 0x8062, 0x9754, + 0x5388, 0x6b7a, 0x826c, 0x9a5e, 0x5692, 0x6d84, 0x8576, 0x9c68, + 0x4d5f, 0x6551, 0x7c43, 0x9435, 0x5069, 0x675b, 0x7f4d, 0x963f, + 0x5272, 0x6a64, 0x8156, 0x9948, 0x557c, 0x6c6e, 0x8460, 0x9b52, + 0x5786, 0x6f78, 0x866a, 0x9e5c, 0x5a90, 0x7182, 0x8974, 0xa066, + 0x5c9a, 0x748c, 0x8b7e, 0xa270, 0x5fa3, 0x7695, 0x8d87, 0xa579, + 0x5670, 0x6e62, 0x8554, 0x9d46, 0x597a, 0x706c, 0x885e, 0x9f50, + 0x5b84, 0x7376, 0x8a68, 0xa25a, 0x5e8e, 0x7580, 0x8d72, 0xa464, + 0x6098, 0x788a, 0x8f7c, 0xa66e, 0x63a1, 0x7a93, 0x9185, 0xa977, + 0x65ab, 0x7c9d, 0x948f, 0xab81, 0x67b5, 0x7fa7, 0x9699, 0xae8b, + 0x5f82, 0x7774, 0x8e66, 0xa658, 0x628c, 0x797e, 0x9170, 0xa862, + 0x6496, 0x7c88, 0x937a, 0xaa6c, 0x679f, 0x7e91, 0x9583, 0xad75, + 0x69a9, 0x809b, 0x988d, 0xaf7f, 0x6bb3, 0x83a5, 0x9a97, 0xb289, + 0x6ebd, 0x85af, 0x9da1, 0xb493, 0x70c7, 0x88b9, 0x9fab, 0xb79d, + 0x6894, 0x8086, 0x9778, 0xae6a, 0x6b9d, 0x828f, 0x9981, 0xb173, + 0x6da7, 0x8499, 0x9c8b, 0xb37d, 0x6fb1, 0x87a3, 0x9e95, 0xb687, + 0x72bb, 0x89ad, 0xa19f, 0xb891, 0x74c5, 0x8cb7, 0xa3a9, 0xbb9b, + 0x77ce, 0x8ec0, 0xa6b2, 0xbda4, 0x79d8, 0x91ca, 0xa8bc, 0xc0ae, + 0x71a5, 0x8897, 0xa089, 0xb77b, 0x73af, 0x8ba1, 0xa293, 0xba85, + 0x76b9, 0x8dab, 0xa59d, 0xbc8f, 0x78c3, 0x90b5, 0xa7a7, 0xbf99, + 0x7bcc, 0x92be, 0xaab0, 0xc1a2, 0x7dd6, 0x95c8, 0xacba, 0xc4ac, + 0x80e0, 0x97d2, 0xafc4, 0xc6b6, 0x82ea, 0x9adc, 0xb1ce, 0xc9c0, + 0x7ab7, 0x91a9, 0xa99b, 0xc08d, 0x7cc1, 0x94b3, 0xaba5, 0xc397, + 0x7fca, 0x96bc, 0xaeae, 0xc5a0, 0x81d4, 0x99c6, 0xb0b8, 0xc8aa, + 0x84de, 0x9bd0, 0xb3c2, 0xcab4, 0x86e8, 0x9eda, 0xb5cc, 0xcdbe, + 0x89f2, 0xa0e4, 0xb8d6, 0xcfc8, 0x8bfb, 0xa3ed, 0xbadf, 0xd2d2}, + {0x3c3c, 0x2b46, 0x1b50, 0x0a5b, 0x4953, 0x395e, 0x2968, 0x1872, + 0x576b, 0x4775, 0x3680, 0x268a, 0x6583, 0x548d, 0x4497, 0x34a2, + 0x739b, 0x62a5, 0x52af, 0x41ba, 0x80b2, 0x70bd, 0x60c7, 0x4fd1, + 0x8eca, 0x7ed4, 0x6ddf, 0x5de9, 0x9ce2, 0x8cec, 0x7bf7, 0x6bff, + 0x4a35, 0x3a3f, 0x2949, 0x1954, 0x584c, 0x4857, 0x3761, 0x276c, + 0x6664, 0x556f, 0x4579, 0x3583, 0x747c, 0x6386, 0x5391, 0x429b, + 0x8194, 0x719e, 0x61a8, 0x50b3, 0x8fac, 0x7fb6, 0x6ec0, 0x5ecb, + 0x9dc3, 0x8cce, 0x7cd8, 0x6ce2, 0xabdb, 0x9ae5, 0x8af0, 0x79fa, + 0x592e, 0x4838, 0x3843, 0x284d, 0x6746, 0x5650, 0x465a, 0x3565, + 0x745d, 0x6468, 0x5472, 0x437d, 0x8275, 0x7280, 0x618a, 0x5194, + 0x908d, 0x8097, 0x6fa2, 0x5fac, 0x9ea5, 0x8daf, 0x7db9, 0x6dc4, + 0xacbd, 0x9bc7, 0x8bd1, 0x7adc, 0xb9d4, 0xa9df, 0x99e9, 0x88f3, + 0x6827, 0x5732, 0x473c, 0x3646, 0x753f, 0x6549, 0x5554, 0x445e, + 0x8357, 0x7361, 0x626b, 0x5276, 0x916e, 0x8079, 0x7083, 0x608e, + 0x9f86, 0x8e91, 0x7e9b, 0x6da5, 0xac9e, 0x9ca8, 0x8cb3, 0x7bbd, + 0xbab6, 0xaac0, 0x99ca, 0x89d5, 0xc8ce, 0xb8d8, 0xa7e2, 0x97ed, + 0x7620, 0x662b, 0x5535, 0x453f, 0x8438, 0x7443, 0x634d, 0x5357, + 0x9250, 0x815a, 0x7165, 0x616f, 0xa068, 0x8f72, 0x7f7c, 0x6e87, + 0xad7f, 0x9d8a, 0x8d94, 0x7c9f, 0xbb97, 0xaba2, 0x9aac, 0x8ab6, + 0xc9af, 0xb8b9, 0xa8c4, 0x98ce, 0xd7c7, 0xc6d1, 0xb6db, 0xa5e6, + 0x851a, 0x7424, 0x642e, 0x5439, 0x9331, 0x823c, 0x7246, 0x6150, + 0xa049, 0x9054, 0x805e, 0x6f68, 0xae61, 0x9e6b, 0x8d76, 0x7d80, + 0xbc79, 0xac83, 0x9b8d, 0x8b98, 0xca90, 0xb99b, 0xa9a5, 0x99b0, + 0xd8a8, 0xc7b3, 0xb7bd, 0xa6c7, 0xe5c0, 0xd5ca, 0xc5d5, 0xb4df, + 0x9413, 0x831d, 0x7328, 0x6232, 0xa12b, 0x9135, 0x813f, 0x704a, + 0xaf42, 0x9f4d, 0x8e57, 0x7e61, 0xbd5a, 0xac65, 0x9c6f, 0x8c79, + 0xcb72, 0xba7c, 0xaa87, 0x9991, 0xd88a, 0xc894, 0xb89e, 0xa7a9, + 0xe6a1, 0xd6ac, 0xc5b6, 0xb5c1, 0xf4b9, 0xe4c4, 0xd3ce, 0xc3d8, + 0xa20c, 0x9216, 0x8121, 0x712b, 0xb024, 0xa02e, 0x8f39, 0x7f43, + 0xbe3c, 0xad46, 0x9d50, 0x8d5b, 0xcc53, 0xbb5e, 0xab68, 0x9a72, + 0xd96b, 0xc976, 0xb980, 0xa88a, 0xe783, 0xd78d, 0xc698, 0xb6a2, + 0xf59b, 0xe4a5, 0xd4af, 0xc4ba, 0xffb2, 0xf2bd, 0xe2c7, 0xd1d1}, + {0x3c3c, 0x4c4e, 0x5d60, 0x6e73, 0x513c, 0x624f, 0x7261, 0x8373, + 0x663d, 0x774f, 0x8862, 0x9974, 0x7b3d, 0x8c50, 0x9d62, 0xae75, + 0x913e, 0xa250, 0xb263, 0xc375, 0xa63e, 0xb751, 0xc863, 0xd976, + 0xbb3f, 0xcc52, 0xdd64, 0xee76, 0xd140, 0xe252, 0xf265, 0xff77, + 0x3448, 0x455b, 0x566d, 0x6780, 0x4a49, 0x5b5b, 0x6b6e, 0x7c80, + 0x5f4a, 0x705c, 0x816f, 0x9281, 0x744a, 0x855d, 0x966f, 0xa782, + 0x8a4b, 0x9a5d, 0xab70, 0xbc82, 0x9f4b, 0xb05e, 0xc170, 0xd183, + 0xb44c, 0xc55e, 0xd671, 0xe783, 0xca4d, 0xda5f, 0xeb72, 0xfc84, + 0x2d55, 0x3e68, 0x4f7a, 0x608d, 0x4356, 0x5368, 0x647b, 0x758d, + 0x5857, 0x6969, 0x7a7b, 0x8a8e, 0x6d57, 0x7e6a, 0x8f7c, 0xa08f, + 0x8358, 0x936a, 0xa47d, 0xb58f, 0x9858, 0xa96b, 0xba7d, 0xca90, + 0xad59, 0xbe6b, 0xcf7e, 0xe090, 0xc25a, 0xd36c, 0xe47e, 0xf591, + 0x2662, 0x3775, 0x4887, 0x599a, 0x3c63, 0x4c75, 0x5d88, 0x6e9a, + 0x5163, 0x6276, 0x7388, 0x839b, 0x6664, 0x7777, 0x8889, 0x999b, + 0x7b65, 0x8c77, 0x9d8a, 0xae9c, 0x9165, 0xa278, 0xb28a, 0xc39d, + 0xa666, 0xb778, 0xc88b, 0xd99d, 0xbb66, 0xcc79, 0xdd8b, 0xee9e, + 0x1f6f, 0x3082, 0x4194, 0x52a7, 0x3470, 0x4582, 0x5695, 0x67a7, + 0x4a70, 0x5b83, 0x6b95, 0x7ca8, 0x5f71, 0x7083, 0x8196, 0x92a8, + 0x7472, 0x8584, 0x9696, 0xa7a9, 0x8a72, 0x9a85, 0xab97, 0xbcaa, + 0x9f73, 0xb085, 0xc198, 0xd1aa, 0xb473, 0xc586, 0xd698, 0xe7ab, + 0x187c, 0x298f, 0x3aa1, 0x4bb3, 0x2d7d, 0x3e8f, 0x4fa2, 0x60b4, + 0x437d, 0x5390, 0x64a2, 0x75b5, 0x587e, 0x6990, 0x7aa3, 0x8ab5, + 0x6d7e, 0x7e91, 0x8fa3, 0xa0b6, 0x837f, 0x9392, 0xa4a4, 0xb5b6, + 0x9880, 0xa992, 0xbaa5, 0xcab7, 0xad80, 0xbe93, 0xcfa5, 0xe0b8, + 0x1189, 0x229b, 0x33ae, 0x43c0, 0x268a, 0x379c, 0x48af, 0x59c1, + 0x3c8a, 0x4c9d, 0x5daf, 0x6ec2, 0x518b, 0x629d, 0x73b0, 0x83c2, + 0x668b, 0x779e, 0x88b0, 0x99c3, 0x7b8c, 0x8c9e, 0x9db1, 0xaec3, + 0x918d, 0xa29f, 0xb2b2, 0xc3c4, 0xa68d, 0xb7a0, 0xc8b2, 0xd9c5, + 0x0a96, 0x1ba8, 0x2bbb, 0x3ccd, 0x1f97, 0x30a9, 0x41bb, 0x52ce, + 0x3497, 0x45aa, 0x56bc, 0x67cf, 0x4a98, 0x5baa, 0x6bbd, 0x7ccf, + 0x5f98, 0x70ab, 0x81bd, 0x92d0, 0x7499, 0x85ab, 0x96be, 0xa7d0, + 0x8a9a, 0x9bac, 0xabbe, 0xbcd1, 0x9f9a, 0xb0ad, 0xc1bf, 0xd1d2}, + {0x3c3c, 0x482b, 0x541a, 0x6009, 0x3b4d, 0x483c, 0x542c, 0x601b, + 0x3b5f, 0x484e, 0x543d, 0x602d, 0x3b70, 0x4760, 0x544f, 0x603e, + 0x3b82, 0x4771, 0x5461, 0x6050, 0x3b94, 0x4783, 0x5372, 0x6062, + 0x3ba5, 0x4795, 0x5384, 0x6073, 0x3bb7, 0x47a6, 0x5396, 0x6085, + 0x4c46, 0x5836, 0x6425, 0x7014, 0x4c58, 0x5847, 0x6437, 0x7026, + 0x4c6a, 0x5859, 0x6448, 0x7038, 0x4c7b, 0x586b, 0x645a, 0x7049, + 0x4b8d, 0x587c, 0x646c, 0x705b, 0x4b9f, 0x588e, 0x647d, 0x706d, + 0x4bb0, 0x57a0, 0x648f, 0x707e, 0x4bc2, 0x57b1, 0x64a1, 0x7090, + 0x5c51, 0x6841, 0x7430, 0x811f, 0x5c63, 0x6852, 0x7442, 0x8131, + 0x5c75, 0x6864, 0x7453, 0x8143, 0x5c86, 0x6876, 0x7465, 0x8054, + 0x5c98, 0x6887, 0x7477, 0x8066, 0x5caa, 0x6899, 0x7488, 0x8078, + 0x5cbb, 0x68ab, 0x749a, 0x8089, 0x5bcd, 0x68bc, 0x74ab, 0x809b, + 0x6c5c, 0x794c, 0x853b, 0x912a, 0x6c6e, 0x785d, 0x854d, 0x913c, + 0x6c80, 0x786f, 0x855e, 0x914e, 0x6c91, 0x7881, 0x8570, 0x915f, + 0x6ca3, 0x7892, 0x8482, 0x9171, 0x6cb5, 0x78a4, 0x8493, 0x9182, + 0x6cc6, 0x78b5, 0x84a5, 0x9094, 0x6cd8, 0x78c7, 0x84b6, 0x90a6, + 0x7d67, 0x8957, 0x9546, 0xa135, 0x7d79, 0x8968, 0x9558, 0xa147, + 0x7c8b, 0x897a, 0x9569, 0xa158, 0x7c9c, 0x898b, 0x957b, 0xa16a, + 0x7cae, 0x889d, 0x958c, 0xa17c, 0x7cbf, 0x88af, 0x959e, 0xa18d, + 0x7cd1, 0x88c0, 0x95b0, 0xa19f, 0x7ce3, 0x88d2, 0x94c1, 0xa1b1, + 0x8d72, 0x9962, 0xa551, 0xb240, 0x8d84, 0x9973, 0xa562, 0xb152, + 0x8d95, 0x9985, 0xa574, 0xb163, 0x8da7, 0x9996, 0xa586, 0xb175, + 0x8db9, 0x99a8, 0xa597, 0xb187, 0x8cca, 0x99ba, 0xa5a9, 0xb198, + 0x8cdc, 0x99cb, 0xa5bb, 0xb1aa, 0x8cee, 0x99dd, 0xa5cc, 0xb1bc, + 0x9d7d, 0xa96c, 0xb65c, 0xc24b, 0x9d8f, 0xa97e, 0xb66d, 0xc25d, + 0x9da0, 0xa990, 0xb57f, 0xc26e, 0x9db2, 0xa9a1, 0xb591, 0xc280, + 0x9dc4, 0xa9b3, 0xb5a2, 0xc192, 0x9dd5, 0xa9c5, 0xb5b4, 0xc1a3, + 0x9de7, 0xa9d6, 0xb5c6, 0xc1b5, 0x9df9, 0xa9e8, 0xb5d7, 0xc1c7, + 0xad88, 0xba77, 0xc667, 0xd256, 0xad9a, 0xba89, 0xc678, 0xd268, + 0xadab, 0xba9b, 0xc68a, 0xd279, 0xadbd, 0xb9ac, 0xc69c, 0xd28b, + 0xadcf, 0xb9be, 0xc6ad, 0xd29d, 0xade0, 0xb9d0, 0xc5bf, 0xd2ae, + 0xadf2, 0xb9e1, 0xc5d1, 0xd2c0, 0xadff, 0xb9f3, 0xc5e2, 0xd2d1}, + {0x3c3c, 0x2d52, 0x1e68, 0x0f7e, 0x514e, 0x4264, 0x337a, 0x2490, + 0x6660, 0x5776, 0x488c, 0x39a2, 0x7b72, 0x6c88, 0x5d9e, 0x4eb4, + 0x9084, 0x819a, 0x72b0, 0x63c6, 0xa596, 0x96ac, 0x87c2, 0x78d8, + 0xbaa8, 0xabbe, 0x9cd4, 0x8dea, 0xcfba, 0xc0d0, 0xb1e6, 0xa2fc, + 0x4235, 0x334c, 0x2562, 0x1678, 0x5747, 0x485e, 0x3a74, 0x2b8a, + 0x6c59, 0x5d70, 0x4f86, 0x409c, 0x816b, 0x7282, 0x6498, 0x55ae, + 0x967d, 0x8894, 0x79aa, 0x6ac0, 0xab8f, 0x9da6, 0x8ebc, 0x7fd2, + 0xc0a1, 0xb2b8, 0xa3ce, 0x94e4, 0xd5b3, 0xc7ca, 0xb8e0, 0xa9f6, + 0x492f, 0x3a46, 0x2b5c, 0x1d72, 0x5e41, 0x4f58, 0x406e, 0x3284, + 0x7353, 0x646a, 0x5580, 0x4796, 0x8865, 0x797c, 0x6a92, 0x5ca8, + 0x9d77, 0x8e8e, 0x7fa4, 0x71ba, 0xb289, 0xa3a0, 0x94b6, 0x86cc, + 0xc79b, 0xb8b2, 0xa9c8, 0x9bde, 0xdcad, 0xcdc4, 0xbeda, 0xb0f0, + 0x5029, 0x413f, 0x3256, 0x236c, 0x653b, 0x5651, 0x4768, 0x387e, + 0x7a4d, 0x6b63, 0x5c7a, 0x4d90, 0x8f5f, 0x8075, 0x718c, 0x62a2, + 0xa471, 0x9587, 0x869e, 0x77b4, 0xb983, 0xaa99, 0x9bb0, 0x8cc6, + 0xce95, 0xbfab, 0xb0c2, 0xa1d8, 0xe3a7, 0xd4bd, 0xc5d4, 0xb6ea, + 0x5723, 0x4839, 0x3950, 0x2a66, 0x6c35, 0x5d4b, 0x4e62, 0x3f78, + 0x8147, 0x725d, 0x6374, 0x548a, 0x9659, 0x876f, 0x7886, 0x699c, + 0xab6b, 0x9c81, 0x8d98, 0x7eae, 0xc07d, 0xb193, 0xa2aa, 0x93c0, + 0xd58f, 0xc6a5, 0xb7bc, 0xa8d2, 0xeaa1, 0xdbb7, 0xccce, 0xbde4, + 0x5d1d, 0x4f33, 0x4049, 0x3160, 0x722f, 0x6445, 0x555b, 0x4672, + 0x8741, 0x7957, 0x6a6d, 0x5b84, 0x9c53, 0x8e69, 0x7f7f, 0x7096, + 0xb165, 0xa37b, 0x9491, 0x85a8, 0xc677, 0xb88d, 0xa9a3, 0x9aba, + 0xdb89, 0xcd9f, 0xbeb5, 0xafcc, 0xf09b, 0xe2b1, 0xd3c7, 0xc4de, + 0x6417, 0x552d, 0x4643, 0x385a, 0x7929, 0x6a3f, 0x5b55, 0x4d6c, + 0x8e3b, 0x7f51, 0x7067, 0x627e, 0xa34d, 0x9463, 0x8579, 0x7790, + 0xb85f, 0xa975, 0x9b8b, 0x8ca2, 0xcd71, 0xbe87, 0xb09d, 0xa1b4, + 0xe283, 0xd399, 0xc5af, 0xb6c6, 0xf795, 0xe8ab, 0xdac1, 0xcbd8, + 0x6b11, 0x5c27, 0x4d3d, 0x3e53, 0x8023, 0x7139, 0x624f, 0x5365, + 0x9535, 0x864b, 0x7761, 0x6877, 0xaa47, 0x9b5d, 0x8c73, 0x7d89, + 0xbf59, 0xb06f, 0xa185, 0x929b, 0xd46b, 0xc581, 0xb697, 0xa7ad, + 0xe97d, 0xda93, 0xcba9, 0xbcbf, 0xfe8f, 0xefa5, 0xe0bb, 0xd1d1}, + {0x3c3c, 0x5541, 0x6f46, 0x894b, 0x4a3c, 0x6441, 0x7e47, 0x984c, + 0x583c, 0x7242, 0x8c47, 0xa64c, 0x663d, 0x8042, 0x9a48, 0xb44d, + 0x743d, 0x8e43, 0xa848, 0xc24d, 0x823e, 0x9c43, 0xb648, 0xd04e, + 0x913e, 0xab44, 0xc449, 0xde4e, 0x9f3f, 0xb944, 0xd349, 0xed4f, + 0x384e, 0x5253, 0x6c59, 0x865e, 0x464f, 0x6054, 0x7a59, 0x945f, + 0x544f, 0x6e54, 0x885a, 0xa25f, 0x6250, 0x7c55, 0x965a, 0xb05f, + 0x7050, 0x8a55, 0xa45b, 0xbe60, 0x7e51, 0x9856, 0xb25b, 0xcc60, + 0x8d51, 0xa756, 0xc15c, 0xdb61, 0x9b51, 0xb557, 0xcf5c, 0xe961, + 0x3461, 0x4e66, 0x686b, 0x8271, 0x4261, 0x5c67, 0x766c, 0x9071, + 0x5062, 0x6a67, 0x846c, 0x9e72, 0x5e62, 0x7868, 0x926d, 0xac72, + 0x6c63, 0x8668, 0xa06d, 0xba73, 0x7b63, 0x9569, 0xaf6e, 0xc973, + 0x8964, 0xa369, 0xbd6e, 0xd774, 0x9764, 0xb169, 0xcb6f, 0xe574, + 0x3074, 0x4a79, 0x647e, 0x7e83, 0x3e74, 0x5879, 0x727f, 0x8c84, + 0x4c75, 0x667a, 0x807f, 0x9a84, 0x5a75, 0x747a, 0x8e80, 0xa885, + 0x6975, 0x837b, 0x9d80, 0xb785, 0x7776, 0x917b, 0xab81, 0xc586, + 0x8576, 0x9f7c, 0xb981, 0xd386, 0x9377, 0xad7c, 0xc781, 0xe187, + 0x2c86, 0x468c, 0x6091, 0x7a96, 0x3a87, 0x548c, 0x6e91, 0x8897, + 0x4887, 0x628c, 0x7c92, 0x9697, 0x5688, 0x708d, 0x8a92, 0xa498, + 0x6588, 0x7f8d, 0x9993, 0xb398, 0x7389, 0x8d8e, 0xa793, 0xc198, + 0x8189, 0x9b8e, 0xb594, 0xcf99, 0x8f8a, 0xa98f, 0xc394, 0xdd99, + 0x2899, 0x429e, 0x5ca4, 0x76a9, 0x3699, 0x509f, 0x6aa4, 0x84a9, + 0x449a, 0x5e9f, 0x78a4, 0x92aa, 0x539a, 0x6da0, 0x87a5, 0xa1aa, + 0x619b, 0x7ba0, 0x95a5, 0xafab, 0x6f9b, 0x89a1, 0xa3a6, 0xbdab, + 0x7d9c, 0x97a1, 0xb1a6, 0xcbac, 0x8b9c, 0xa5a2, 0xbfa7, 0xd9ac, + 0x24ac, 0x3eb1, 0x58b6, 0x72bc, 0x32ac, 0x4cb1, 0x66b7, 0x80bc, + 0x41ad, 0x5bb2, 0x75b7, 0x8fbc, 0x4fad, 0x69b2, 0x83b8, 0x9dbd, + 0x5dae, 0x77b3, 0x91b8, 0xabbd, 0x6bae, 0x85b3, 0x9fb9, 0xb9be, + 0x79ae, 0x93b4, 0xadb9, 0xc7be, 0x87af, 0xa1b4, 0xbbba, 0xd5bf, + 0x20be, 0x3ac4, 0x54c9, 0x6ece, 0x2fbf, 0x49c4, 0x62c9, 0x7ccf, + 0x3dbf, 0x57c5, 0x71ca, 0x8bcf, 0x4bc0, 0x65c5, 0x7fca, 0x99d0, + 0x59c0, 0x73c5, 0x8dcb, 0xa7d0, 0x67c1, 0x81c6, 0x9bcb, 0xb5d1, + 0x75c1, 0x8fc6, 0xa9cc, 0xc3d1, 0x84c2, 0x9ec7, 0xb8cc, 0xd1d2}, + {0x3c3c, 0x3a31, 0x3826, 0x371b, 0x3e53, 0x3c48, 0x3b3d, 0x3932, + 0x406b, 0x3e60, 0x3d55, 0x3b4a, 0x4282, 0x4177, 0x3f6c, 0x3d61, + 0x449a, 0x438f, 0x4184, 0x4079, 0x47b1, 0x45a6, 0x439b, 0x4290, + 0x49c9, 0x47be, 0x46b3, 0x44a8, 0x4be0, 0x49d6, 0x48cb, 0x46c0, + 0x4f3e, 0x4e33, 0x4c28, 0x4b1d, 0x5256, 0x504b, 0x4e40, 0x4d35, + 0x546d, 0x5262, 0x5157, 0x4f4c, 0x5685, 0x547a, 0x536f, 0x5164, + 0x589c, 0x5791, 0x5586, 0x547b, 0x5bb4, 0x59a9, 0x579e, 0x5693, + 0x5dcb, 0x5bc1, 0x5ab6, 0x58ab, 0x5fe3, 0x5dd8, 0x5ccd, 0x5ac2, + 0x6341, 0x6236, 0x602b, 0x5e20, 0x6558, 0x644d, 0x6242, 0x6137, + 0x6870, 0x6665, 0x655a, 0x634f, 0x6a87, 0x687c, 0x6771, 0x6566, + 0x6c9f, 0x6b94, 0x6989, 0x677e, 0x6eb6, 0x6dac, 0x6ba1, 0x6a96, + 0x71ce, 0x6fc3, 0x6db8, 0x6cad, 0x73e6, 0x71db, 0x70d0, 0x6ec5, + 0x7743, 0x7638, 0x742d, 0x7222, 0x795b, 0x7850, 0x7645, 0x753a, + 0x7c72, 0x7a67, 0x785c, 0x7751, 0x7e8a, 0x7c7f, 0x7b74, 0x7969, + 0x80a1, 0x7e96, 0x7d8c, 0x7b81, 0x82b9, 0x81ae, 0x7fa3, 0x7e98, + 0x85d1, 0x83c6, 0x81bb, 0x80b0, 0x87e8, 0x85dd, 0x84d2, 0x82c7, + 0x8b46, 0x893b, 0x8830, 0x8625, 0x8d5d, 0x8c52, 0x8a47, 0x883c, + 0x8f75, 0x8e6a, 0x8c5f, 0x8b54, 0x928c, 0x9081, 0x8f77, 0x8d6c, + 0x94a4, 0x9299, 0x918e, 0x8f83, 0x96bc, 0x95b1, 0x93a6, 0x919b, + 0x98d3, 0x97c8, 0x95bd, 0x94b2, 0x9beb, 0x99e0, 0x97d5, 0x96ca, + 0x9f48, 0x9d3d, 0x9c32, 0x9a27, 0xa160, 0xa055, 0x9e4a, 0x9c3f, + 0xa377, 0xa26c, 0xa061, 0x9f57, 0xa68f, 0xa484, 0xa279, 0xa16e, + 0xa8a7, 0xa69c, 0xa591, 0xa386, 0xaabe, 0xa8b3, 0xa7a8, 0xa59d, + 0xacd6, 0xabcb, 0xa9c0, 0xa8b5, 0xafed, 0xade2, 0xabd7, 0xaacc, + 0xb34b, 0xb140, 0xb035, 0xae2a, 0xb562, 0xb357, 0xb24c, 0xb042, + 0xb77a, 0xb66f, 0xb464, 0xb259, 0xb992, 0xb887, 0xb67c, 0xb571, + 0xbca9, 0xba9e, 0xb993, 0xb788, 0xbec1, 0xbcb6, 0xbbab, 0xb9a0, + 0xc0d8, 0xbfcd, 0xbdc2, 0xbbb7, 0xc2f0, 0xc1e5, 0xbfda, 0xbecf, + 0xc74d, 0xc542, 0xc437, 0xc22d, 0xc965, 0xc75a, 0xc64f, 0xc444, + 0xcb7d, 0xca72, 0xc867, 0xc65c, 0xcd94, 0xcc89, 0xca7e, 0xc973, + 0xd0ac, 0xcea1, 0xcc96, 0xcb8b, 0xd2c3, 0xd0b8, 0xcfad, 0xcda2, + 0xd4db, 0xd2d0, 0xd1c5, 0xcfba, 0xd6f2, 0xd5e7, 0xd3dc, 0xd2d1}, + {0x3c3c, 0x3657, 0x3173, 0x2b8f, 0x5546, 0x4f61, 0x4a7d, 0x4499, + 0x6e50, 0x686c, 0x6387, 0x5da3, 0x875a, 0x8176, 0x7c92, 0x76ad, + 0xa064, 0x9a80, 0x959c, 0x8fb7, 0xb96e, 0xb38a, 0xaea6, 0xa8c2, + 0xd279, 0xcc94, 0xc7b0, 0xc1cc, 0xeb83, 0xe59f, 0xe0ba, 0xdad6, + 0x3a3b, 0x3557, 0x2f72, 0x2a8e, 0x5345, 0x4e61, 0x487d, 0x4398, + 0x6c4f, 0x676b, 0x6187, 0x5ca2, 0x8559, 0x8075, 0x7a91, 0x75ad, + 0x9e64, 0x997f, 0x939b, 0x8eb7, 0xb86e, 0xb28a, 0xada5, 0xa7c1, + 0xd178, 0xcb94, 0xc6af, 0xc0cb, 0xea82, 0xe49e, 0xdfba, 0xd9d5, + 0x393a, 0x3356, 0x2e72, 0x288d, 0x5244, 0x4d60, 0x477c, 0x4298, + 0x6b4f, 0x666a, 0x6086, 0x5ba2, 0x8459, 0x7f75, 0x7990, 0x74ac, + 0x9d63, 0x987f, 0x929a, 0x8db6, 0xb66d, 0xb189, 0xaba5, 0xa6c0, + 0xcf77, 0xca93, 0xc4af, 0xbfcb, 0xe882, 0xe39d, 0xddb9, 0xd8d5, + 0x383a, 0x3255, 0x2d71, 0x278d, 0x5144, 0x4b5f, 0x467b, 0x4097, + 0x6a4e, 0x646a, 0x5f85, 0x59a1, 0x8358, 0x7d74, 0x7890, 0x72ab, + 0x9c62, 0x967e, 0x919a, 0x8bb6, 0xb56d, 0xaf88, 0xaaa4, 0xa4c0, + 0xce77, 0xc992, 0xc3ae, 0xbeca, 0xe781, 0xe29d, 0xdcb8, 0xd7d4, + 0x3639, 0x3155, 0x2b70, 0x268c, 0x4f43, 0x4a5f, 0x447b, 0x3f96, + 0x694d, 0x6369, 0x5e85, 0x58a0, 0x8257, 0x7c73, 0x778f, 0x71ab, + 0x9b62, 0x957d, 0x9099, 0x8ab5, 0xb46c, 0xae88, 0xa9a3, 0xa3bf, + 0xcd76, 0xc792, 0xc2ae, 0xbcc9, 0xe680, 0xe09c, 0xdbb8, 0xd5d3, + 0x3538, 0x3054, 0x2a70, 0x258b, 0x4e42, 0x495e, 0x437a, 0x3e96, + 0x674d, 0x6268, 0x5c84, 0x57a0, 0x8057, 0x7b73, 0x758e, 0x70aa, + 0x9961, 0x947d, 0x8e98, 0x89b4, 0xb26b, 0xad87, 0xa7a3, 0xa2be, + 0xcb75, 0xc691, 0xc0ad, 0xbbc9, 0xe580, 0xdf9b, 0xdab7, 0xd4d3, + 0x3438, 0x2e53, 0x296f, 0x238b, 0x4d42, 0x475e, 0x4279, 0x3c95, + 0x664c, 0x6068, 0x5b83, 0x559f, 0x7f56, 0x7a72, 0x748e, 0x6fa9, + 0x9860, 0x937c, 0x8d98, 0x88b4, 0xb16b, 0xac86, 0xa6a2, 0xa1be, + 0xca75, 0xc590, 0xbfac, 0xbac8, 0xe37f, 0xde9b, 0xd8b6, 0xd3d2, + 0x3337, 0x2d53, 0x286e, 0x228a, 0x4c41, 0x465d, 0x4179, 0x3b94, + 0x654b, 0x5f67, 0x5a83, 0x549f, 0x7e56, 0x7871, 0x738d, 0x6da9, + 0x9760, 0x917b, 0x8c97, 0x86b3, 0xb06a, 0xaa86, 0xa5a1, 0x9fbd, + 0xc974, 0xc390, 0xbeac, 0xb8c7, 0xe27e, 0xdc9a, 0xd7b6, 0xd1d1}, + {0x3c3c, 0x5734, 0x722c, 0x8d24, 0x4240, 0x5d39, 0x7931, 0x9429, + 0x4845, 0x643e, 0x7f36, 0x9a2e, 0x4f4a, 0x6a43, 0x853b, 0xa133, + 0x554f, 0x7148, 0x8c40, 0xa738, 0x5c54, 0x774d, 0x9245, 0xae3d, + 0x6259, 0x7d52, 0x994a, 0xb442, 0x695e, 0x8457, 0x9f4f, 0xbb47, + 0x3f4f, 0x5a47, 0x7540, 0x9138, 0x4554, 0x614c, 0x7c45, 0x973d, + 0x4c59, 0x6751, 0x824a, 0x9e42, 0x525e, 0x6d56, 0x894f, 0xa447, + 0x5963, 0x745b, 0x8f54, 0xaa4c, 0x5f68, 0x7a60, 0x9659, 0xb151, + 0x656d, 0x8165, 0x9c5e, 0xb756, 0x6c72, 0x876a, 0xa363, 0xbe5b, + 0x4263, 0x5d5b, 0x7953, 0x944c, 0x4968, 0x6460, 0x7f58, 0x9a51, + 0x4f6d, 0x6a65, 0x865d, 0xa156, 0x5572, 0x716a, 0x8c62, 0xa75b, + 0x5c77, 0x776f, 0x9267, 0xae60, 0x627c, 0x7e74, 0x996c, 0xb465, + 0x6981, 0x8479, 0x9f71, 0xbb6a, 0x6f86, 0x8a7e, 0xa676, 0xc16f, + 0x4577, 0x616f, 0x7c67, 0x975f, 0x4c7c, 0x6774, 0x826c, 0x9e64, + 0x5281, 0x6e79, 0x8971, 0xa469, 0x5986, 0x747e, 0x8f76, 0xab6e, + 0x5f8b, 0x7a83, 0x967b, 0xb173, 0x6690, 0x8188, 0x9c80, 0xb778, + 0x6c95, 0x878d, 0xa385, 0xbe7d, 0x729a, 0x8e92, 0xa98a, 0xc482, + 0x498b, 0x6483, 0x7f7b, 0x9b73, 0x4f90, 0x6a88, 0x8680, 0xa178, + 0x5695, 0x718d, 0x8c85, 0xa77d, 0x5c9a, 0x7792, 0x938a, 0xae82, + 0x629f, 0x7e97, 0x998f, 0xb487, 0x69a4, 0x849c, 0x9f94, 0xbb8c, + 0x6fa9, 0x8ba1, 0xa699, 0xc191, 0x76ae, 0x91a6, 0xac9e, 0xc896, + 0x4c9e, 0x6797, 0x838f, 0x9e87, 0x52a3, 0x6e9c, 0x8994, 0xa48c, + 0x59a8, 0x74a1, 0x8f99, 0xab91, 0x5fad, 0x7ba6, 0x969e, 0xb196, + 0x66b2, 0x81ab, 0x9ca3, 0xb89b, 0x6cb7, 0x87b0, 0xa3a8, 0xbea0, + 0x73bc, 0x8eb5, 0xa9ad, 0xc4a5, 0x79c1, 0x94ba, 0xb0b2, 0xcbaa, + 0x4fb2, 0x6aaa, 0x86a3, 0xa19b, 0x56b7, 0x71af, 0x8ca8, 0xa8a0, + 0x5cbc, 0x77b4, 0x93ad, 0xaea5, 0x63c1, 0x7eb9, 0x99b2, 0xb4aa, + 0x69c6, 0x84be, 0xa0b7, 0xbbaf, 0x6fcb, 0x8bc3, 0xa6bc, 0xc1b4, + 0x76d0, 0x91c8, 0xacc1, 0xc8b9, 0x7cd5, 0x98cd, 0xb3c6, 0xcebe, + 0x52c6, 0x6ebe, 0x89b6, 0xa4af, 0x59cb, 0x74c3, 0x90bb, 0xabb4, + 0x5fd0, 0x7bc8, 0x96c0, 0xb1b9, 0x66d5, 0x81cd, 0x9cc5, 0xb8be, + 0x6cda, 0x88d2, 0xa3ca, 0xbec3, 0x73df, 0x8ed7, 0xa9cf, 0xc5c8, + 0x79e4, 0x94dc, 0xb0d4, 0xcbcd, 0x80e9, 0x9be1, 0xb6d9, 0xd2d2}, + {0x3c3c, 0x2f3d, 0x223e, 0x153f, 0x4455, 0x3756, 0x2b57, 0x1e58, + 0x4d6e, 0x406f, 0x3370, 0x2671, 0x5587, 0x4889, 0x3c8a, 0x2f8b, + 0x5ea1, 0x51a2, 0x44a3, 0x38a4, 0x66ba, 0x59bb, 0x4dbc, 0x40bd, + 0x6fd3, 0x62d5, 0x55d6, 0x49d7, 0x77ed, 0x6aee, 0x5eef, 0x51f0, + 0x4e37, 0x4138, 0x3439, 0x283a, 0x5650, 0x4a52, 0x3d53, 0x3054, + 0x5f6a, 0x526b, 0x466c, 0x396d, 0x6783, 0x5b84, 0x4e85, 0x4186, + 0x709c, 0x639e, 0x579f, 0x4aa0, 0x78b6, 0x6cb7, 0x5fb8, 0x52b9, + 0x81cf, 0x74d0, 0x68d1, 0x5bd2, 0x89e8, 0x7de9, 0x70eb, 0x63ec, + 0x6033, 0x5434, 0x4735, 0x3a36, 0x694c, 0x5c4d, 0x4f4e, 0x434f, + 0x7165, 0x6567, 0x5868, 0x4b69, 0x7a7f, 0x6d80, 0x6081, 0x5482, + 0x8298, 0x7699, 0x699a, 0x5c9b, 0x8bb1, 0x7eb2, 0x71b4, 0x65b5, + 0x93cb, 0x87cc, 0x7acd, 0x6dce, 0x9ce4, 0x8fe5, 0x82e6, 0x76e7, + 0x732e, 0x6630, 0x5931, 0x4c32, 0x7b48, 0x6e49, 0x624a, 0x554b, + 0x8461, 0x7762, 0x6a63, 0x5e64, 0x8c7a, 0x7f7b, 0x737d, 0x667e, + 0x9594, 0x8895, 0x7b96, 0x6f97, 0x9dad, 0x90ae, 0x84af, 0x77b0, + 0xa6c6, 0x99c7, 0x8cc9, 0x80ca, 0xaee0, 0xa1e1, 0x95e2, 0x88e3, + 0x852a, 0x782b, 0x6c2c, 0x5f2d, 0x8d43, 0x8144, 0x7446, 0x6747, + 0x965d, 0x895e, 0x7d5f, 0x7060, 0x9e76, 0x9277, 0x8578, 0x7879, + 0xa78f, 0x9a90, 0x8e92, 0x8193, 0xafa9, 0xa3aa, 0x96ab, 0x89ac, + 0xb8c2, 0xabc3, 0x9fc4, 0x92c5, 0xc1db, 0xb4dc, 0xa7dd, 0x9adf, + 0x9726, 0x8b27, 0x7e28, 0x7129, 0xa03f, 0x9340, 0x8641, 0x7a42, + 0xa858, 0x9c59, 0x8f5b, 0x825c, 0xb172, 0xa473, 0x9774, 0x8b75, + 0xb98b, 0xad8c, 0xa08d, 0x938e, 0xc2a4, 0xb5a5, 0xa8a6, 0x9ca8, + 0xcabe, 0xbebf, 0xb1c0, 0xa4c1, 0xd3d7, 0xc6d8, 0xb9d9, 0xadda, + 0xaa21, 0x9d22, 0x9024, 0x8425, 0xb23b, 0xa53c, 0x993d, 0x8c3e, + 0xbb54, 0xae55, 0xa156, 0x9557, 0xc36d, 0xb66e, 0xaa6f, 0x9d71, + 0xcc87, 0xbf88, 0xb289, 0xa68a, 0xd4a0, 0xc7a1, 0xbba2, 0xaea3, + 0xddb9, 0xd0ba, 0xc3bb, 0xb7bd, 0xe5d3, 0xd9d4, 0xccd5, 0xbfd6, + 0xbc1d, 0xaf1e, 0xa31f, 0x9620, 0xc436, 0xb837, 0xab38, 0x9e3a, + 0xcd50, 0xc051, 0xb452, 0xa753, 0xd569, 0xc96a, 0xbc6b, 0xaf6c, + 0xde82, 0xd183, 0xc584, 0xb886, 0xe79c, 0xda9d, 0xcd9e, 0xc09f, + 0xefb5, 0xe2b6, 0xd6b7, 0xc9b8, 0xf8ce, 0xebcf, 0xded0, 0xd2d1}, + {0x3c3c, 0x4454, 0x4c6d, 0x5486, 0x543f, 0x5c58, 0x6470, 0x6c89, + 0x6c42, 0x745b, 0x7c74, 0x848c, 0x8545, 0x8d5e, 0x9577, 0x9d90, + 0x9d49, 0xa561, 0xad7a, 0xb593, 0xb54c, 0xbd65, 0xc57e, 0xcd96, + 0xce4f, 0xd668, 0xde81, 0xe69a, 0xe653, 0xee6b, 0xf684, 0xfe9d, + 0x3543, 0x3d5c, 0x4574, 0x4d8d, 0x4d46, 0x565f, 0x5e78, 0x6691, + 0x664a, 0x6e62, 0x767b, 0x7e94, 0x7e4d, 0x8666, 0x8e7e, 0x9697, + 0x9750, 0x9f69, 0xa782, 0xaf9a, 0xaf54, 0xb76c, 0xbf85, 0xc79e, + 0xc757, 0xcf70, 0xd788, 0xdfa1, 0xe05a, 0xe873, 0xf08c, 0xf8a4, + 0x2f4b, 0x3763, 0x3f7c, 0x4795, 0x474e, 0x4f67, 0x577f, 0x5f98, + 0x5f51, 0x686a, 0x7083, 0x789b, 0x7854, 0x806d, 0x8886, 0x909f, + 0x9058, 0x9871, 0xa089, 0xa8a2, 0xa95b, 0xb174, 0xb98d, 0xc1a5, + 0xc15e, 0xc977, 0xd190, 0xd9a9, 0xd962, 0xe17a, 0xe993, 0xf1ac, + 0x2852, 0x306b, 0x3884, 0x409c, 0x4155, 0x496e, 0x5187, 0x59a0, + 0x5959, 0x6171, 0x698a, 0x71a3, 0x715c, 0x7975, 0x828d, 0x8aa6, + 0x8a5f, 0x9278, 0x9a91, 0xa2aa, 0xa263, 0xaa7b, 0xb294, 0xbaad, + 0xbb66, 0xc37f, 0xcb97, 0xd3b0, 0xd369, 0xdb82, 0xe39b, 0xebb3, + 0x225a, 0x2a72, 0x328b, 0x3aa4, 0x3a5d, 0x4276, 0x4a8e, 0x52a7, + 0x5360, 0x5b79, 0x6392, 0x6baa, 0x6b63, 0x737c, 0x7b95, 0x83ae, + 0x8367, 0x8b80, 0x9498, 0x9cb1, 0x9c6a, 0xa483, 0xac9c, 0xb4b4, + 0xb46d, 0xbc86, 0xc49f, 0xccb8, 0xcd71, 0xd589, 0xdda2, 0xe5bb, + 0x1c61, 0x247a, 0x2c93, 0x34ab, 0x3464, 0x3c7d, 0x4496, 0x4caf, + 0x4c68, 0x5480, 0x5c99, 0x64b2, 0x656b, 0x6d84, 0x759c, 0x7db5, + 0x7d6e, 0x8587, 0x8da0, 0x95b9, 0x9572, 0x9d8a, 0xa5a3, 0xaebc, + 0xae75, 0xb68e, 0xbea6, 0xc6bf, 0xc678, 0xce91, 0xd6aa, 0xdec2, + 0x1569, 0x1d81, 0x259a, 0x2db3, 0x2e6c, 0x3685, 0x3e9d, 0x46b6, + 0x466f, 0x4e88, 0x56a1, 0x5eb9, 0x5e73, 0x668b, 0x6ea4, 0x76bd, + 0x7776, 0x7f8f, 0x87a7, 0x8fc0, 0x8f79, 0x9792, 0x9fab, 0xa7c3, + 0xa77c, 0xaf95, 0xb7ae, 0xc0c7, 0xc080, 0xc899, 0xd0b1, 0xd8ca, + 0x0f70, 0x1789, 0x1fa2, 0x27ba, 0x2773, 0x2f8c, 0x37a5, 0x3fbe, + 0x4077, 0x488f, 0x50a8, 0x58c1, 0x587a, 0x6093, 0x68ac, 0x70c4, + 0x707d, 0x7896, 0x80af, 0x88c8, 0x8981, 0x9199, 0x99b2, 0xa1cb, + 0xa184, 0xa99d, 0xb1b5, 0xb9ce, 0xb987, 0xc1a0, 0xc9b9, 0xd1d2}, + {0x3c3c, 0x502c, 0x641c, 0x780c, 0x3d48, 0x5138, 0x6528, 0x7919, + 0x3e54, 0x5245, 0x6635, 0x7b25, 0x3f61, 0x5351, 0x6741, 0x7c31, + 0x406d, 0x545d, 0x684e, 0x7d3e, 0x417a, 0x556a, 0x6a5a, 0x7e4a, + 0x4286, 0x5676, 0x6b67, 0x7f57, 0x4393, 0x5783, 0x6c73, 0x8063, + 0x474b, 0x5b3b, 0x702c, 0x841c, 0x4858, 0x5d48, 0x7138, 0x8528, + 0x4964, 0x5e54, 0x7245, 0x8635, 0x4a71, 0x5f61, 0x7351, 0x8741, + 0x4c7d, 0x606d, 0x745d, 0x884e, 0x4d89, 0x617a, 0x756a, 0x895a, + 0x4e96, 0x6286, 0x7676, 0x8b67, 0x4fa2, 0x6393, 0x7783, 0x8c73, + 0x535b, 0x674b, 0x7b3b, 0x902c, 0x5467, 0x6858, 0x7c48, 0x9138, + 0x5574, 0x6964, 0x7e54, 0x9244, 0x5680, 0x6a71, 0x7f61, 0x9351, + 0x578d, 0x6b7d, 0x806d, 0x945d, 0x5899, 0x6d89, 0x817a, 0x956a, + 0x59a6, 0x6e96, 0x8286, 0x9676, 0x5ab2, 0x6fa2, 0x8393, 0x9783, + 0x5e6b, 0x735b, 0x874b, 0x9b3b, 0x6077, 0x7467, 0x8858, 0x9c48, + 0x6184, 0x7574, 0x8964, 0x9d54, 0x6290, 0x7680, 0x8a70, 0x9f61, + 0x639d, 0x778d, 0x8b7d, 0xa06d, 0x64a9, 0x7899, 0x8c89, 0xa17a, + 0x65b5, 0x79a6, 0x8e96, 0xa286, 0x66c2, 0x7ab2, 0x8fa2, 0xa392, + 0x6a7b, 0x7e6b, 0x935b, 0xa74b, 0x6b87, 0x7f77, 0x9467, 0xa858, + 0x6c93, 0x8184, 0x9574, 0xa964, 0x6da0, 0x8290, 0x9680, 0xaa70, + 0x6eac, 0x839d, 0x978d, 0xab7d, 0x70b9, 0x84a9, 0x9899, 0xac89, + 0x71c5, 0x85b5, 0x99a6, 0xad96, 0x72d2, 0x86c2, 0x9ab2, 0xafa2, + 0x768a, 0x8a7a, 0x9e6b, 0xb35b, 0x7797, 0x8b87, 0x9f77, 0xb467, + 0x78a3, 0x8c93, 0xa084, 0xb574, 0x79b0, 0x8da0, 0xa290, 0xb680, + 0x7abc, 0x8eac, 0xa39c, 0xb78d, 0x7bc9, 0x8fb9, 0xa4a9, 0xb899, + 0x7cd5, 0x91c5, 0xa5b5, 0xb9a6, 0x7de1, 0x92d2, 0xa6c2, 0xbab2, + 0x819a, 0x968a, 0xaa7a, 0xbe6b, 0x82a6, 0x9797, 0xab87, 0xbf77, + 0x84b3, 0x98a3, 0xac93, 0xc084, 0x85bf, 0x99b0, 0xada0, 0xc190, + 0x86cc, 0x9abc, 0xaeac, 0xc39c, 0x87d8, 0x9bc8, 0xafb9, 0xc4a9, + 0x88e5, 0x9cd5, 0xb0c5, 0xc5b5, 0x89f1, 0x9de1, 0xb2d2, 0xc6c2, + 0x8daa, 0xa19a, 0xb68a, 0xca7a, 0x8eb6, 0xa2a6, 0xb797, 0xcb87, + 0x8fc3, 0xa3b3, 0xb8a3, 0xcc93, 0x90cf, 0xa5bf, 0xb9b0, 0xcda0, + 0x91dc, 0xa6cc, 0xbabc, 0xceac, 0x92e8, 0xa7d8, 0xbbc8, 0xcfb9, + 0x94f4, 0xa8e5, 0xbcd5, 0xd0c5, 0x95ff, 0xa9f1, 0xbde1, 0xd2d1}, + {0x3c3c, 0x2b4a, 0x1a59, 0x0968, 0x4c52, 0x3b61, 0x2a6f, 0x197e, + 0x5c68, 0x4b77, 0x3b86, 0x2a94, 0x6d7e, 0x5c8d, 0x4b9c, 0x3aab, + 0x7d94, 0x6ca3, 0x5bb2, 0x4bc1, 0x8dab, 0x7db9, 0x6cc8, 0x5bd7, + 0x9ec1, 0x8dd0, 0x7cde, 0x6bed, 0xaed7, 0x9de6, 0x8df5, 0x7cff, + 0x4834, 0x3743, 0x2652, 0x1561, 0x584b, 0x4759, 0x3668, 0x2677, + 0x6961, 0x5870, 0x477e, 0x368d, 0x7977, 0x6886, 0x5795, 0x46a3, + 0x898d, 0x789c, 0x68ab, 0x57ba, 0x9aa4, 0x89b2, 0x78c1, 0x67d0, + 0xaaba, 0x99c9, 0x88d7, 0x78e6, 0xbad0, 0xaadf, 0x99ee, 0x88fc, + 0x542d, 0x433c, 0x324b, 0x225a, 0x6443, 0x5452, 0x4361, 0x3270, + 0x755a, 0x6468, 0x5377, 0x4286, 0x8570, 0x747f, 0x648d, 0x539c, + 0x9686, 0x8595, 0x74a4, 0x63b2, 0xa69c, 0x95ab, 0x84ba, 0x73c9, + 0xb6b3, 0xa6c1, 0x95d0, 0x84df, 0xc7c9, 0xb6d8, 0xa5e6, 0x94f5, + 0x6026, 0x4f35, 0x3f44, 0x2e52, 0x713c, 0x604b, 0x4f5a, 0x3e69, + 0x8153, 0x7061, 0x5f70, 0x4f7f, 0x9169, 0x8178, 0x7086, 0x5f95, + 0xa27f, 0x918e, 0x809d, 0x6fab, 0xb295, 0xa1a4, 0x91b3, 0x80c2, + 0xc3ac, 0xb2ba, 0xa1c9, 0x90d8, 0xd3c2, 0xc2d1, 0xb1df, 0xa0ee, + 0x6d1f, 0x5c2e, 0x4b3c, 0x3a4b, 0x7d35, 0x6c44, 0x5b53, 0x4a61, + 0x8d4b, 0x7c5a, 0x6c69, 0x5b78, 0x9e62, 0x8d70, 0x7c7f, 0x6b8e, + 0xae78, 0x9d87, 0x8c95, 0x7ca4, 0xbe8e, 0xae9d, 0x9dac, 0x8cba, + 0xcfa4, 0xbeb3, 0xadc2, 0x9cd1, 0xdfbb, 0xcec9, 0xbed8, 0xade7, + 0x7918, 0x6827, 0x5735, 0x4644, 0x892e, 0x783d, 0x674c, 0x575a, + 0x9a44, 0x8953, 0x7862, 0x6771, 0xaa5b, 0x9969, 0x8878, 0x7787, + 0xba71, 0xa980, 0x998e, 0x889d, 0xcb87, 0xba96, 0xa9a5, 0x98b3, + 0xdb9d, 0xcaac, 0xb9bb, 0xa9ca, 0xebb3, 0xdbc2, 0xcad1, 0xb9e0, + 0x8511, 0x741f, 0x632e, 0x533d, 0x9527, 0x8536, 0x7444, 0x6353, + 0xa63d, 0x954c, 0x845b, 0x7369, 0xb653, 0xa562, 0x9571, 0x8480, + 0xc76a, 0xb678, 0xa587, 0x9496, 0xd780, 0xc68f, 0xb59d, 0xa4ac, + 0xe796, 0xd7a5, 0xc6b4, 0xb5c2, 0xf8ac, 0xe7bb, 0xd6ca, 0xc5d9, + 0x910a, 0x8018, 0x7027, 0x5f36, 0xa220, 0x912f, 0x803d, 0x6f4c, + 0xb236, 0xa145, 0x9054, 0x8062, 0xc24c, 0xb25b, 0xa16a, 0x9079, + 0xd362, 0xc271, 0xb180, 0xa08f, 0xe379, 0xd287, 0xc296, 0xb1a5, + 0xf48f, 0xe39e, 0xd2ac, 0xc1bb, 0xffa5, 0xf3b4, 0xe2c3, 0xd1d1}, + {0x3c3c, 0x504a, 0x6558, 0x7967, 0x4f3c, 0x634a, 0x7858, 0x8c67, + 0x623c, 0x764a, 0x8b58, 0xa067, 0x753c, 0x8a4a, 0x9e58, 0xb367, + 0x883c, 0x9d4a, 0xb158, 0xc667, 0x9b3c, 0xb04a, 0xc558, 0xd967, + 0xaf3c, 0xc34a, 0xd858, 0xec67, 0xc23c, 0xd64a, 0xeb58, 0xff67, + 0x354b, 0x4a59, 0x5e68, 0x7376, 0x484b, 0x5d59, 0x7168, 0x8676, + 0x5b4b, 0x7059, 0x8468, 0x9976, 0x6e4b, 0x8359, 0x9868, 0xac76, + 0x824b, 0x9659, 0xab68, 0xbf76, 0x954b, 0xa959, 0xbe68, 0xd376, + 0xa84b, 0xbd59, 0xd168, 0xe676, 0xbb4b, 0xd059, 0xe468, 0xf976, + 0x2e5a, 0x4368, 0x5877, 0x6c85, 0x425a, 0x5668, 0x6b77, 0x7f85, + 0x555a, 0x6968, 0x7e77, 0x9285, 0x685a, 0x7c68, 0x9177, 0xa685, + 0x7b5a, 0x9068, 0xa477, 0xb985, 0x8e5a, 0xa368, 0xb777, 0xcc85, + 0xa15a, 0xb668, 0xcb77, 0xdf85, 0xb55a, 0xc968, 0xde77, 0xf285, + 0x2869, 0x3c78, 0x5186, 0x6694, 0x3b69, 0x5078, 0x6486, 0x7994, + 0x4e69, 0x6378, 0x7786, 0x8c94, 0x6169, 0x7678, 0x8a86, 0x9f94, + 0x7469, 0x8978, 0x9e86, 0xb294, 0x8869, 0x9c78, 0xb186, 0xc594, + 0x9b69, 0xaf78, 0xc486, 0xd994, 0xae69, 0xc378, 0xd786, 0xec94, + 0x2179, 0x3687, 0x4a95, 0x5fa4, 0x3479, 0x4987, 0x5e95, 0x72a4, + 0x4879, 0x5c87, 0x7195, 0x85a4, 0x5b79, 0x6f87, 0x8495, 0x99a4, + 0x6e79, 0x8387, 0x9795, 0xaca4, 0x8179, 0x9687, 0xaa95, 0xbfa4, + 0x9479, 0xa987, 0xbd95, 0xd2a4, 0xa779, 0xbc87, 0xd195, 0xe5a4, + 0x1b88, 0x2f96, 0x44a5, 0x58b3, 0x2e88, 0x4296, 0x57a5, 0x6cb3, + 0x4188, 0x5696, 0x6aa5, 0x7fb3, 0x5488, 0x6996, 0x7da5, 0x92b3, + 0x6788, 0x7c96, 0x91a5, 0xa5b3, 0x7b88, 0x8f96, 0xa4a5, 0xb8b3, + 0x8e88, 0xa296, 0xb7a5, 0xcbb3, 0xa188, 0xb596, 0xcaa5, 0xdfb3, + 0x1497, 0x29a5, 0x3db4, 0x52c2, 0x2797, 0x3ca5, 0x50b4, 0x65c2, + 0x3a97, 0x4fa5, 0x64b4, 0x78c2, 0x4e97, 0x62a5, 0x77b4, 0x8bc2, + 0x6197, 0x75a5, 0x8ab4, 0x9fc2, 0x7497, 0x89a5, 0x9db4, 0xb2c2, + 0x8797, 0x9ca5, 0xb0b4, 0xc5c2, 0x9a97, 0xafa5, 0xc3b4, 0xd8c2, + 0x0da6, 0x22b5, 0x37c3, 0x4bd1, 0x21a6, 0x35b5, 0x4ac3, 0x5ed1, + 0x34a6, 0x48b5, 0x5dc3, 0x72d1, 0x47a6, 0x5cb5, 0x70c3, 0x85d1, + 0x5aa6, 0x6fb5, 0x83c3, 0x98d1, 0x6da6, 0x82b5, 0x97c3, 0xabd1, + 0x81a6, 0x95b5, 0xaac3, 0xbed1, 0x94a6, 0xa8b5, 0xbdc3, 0xd1d2}, + {0x3c3c, 0x432c, 0x4b1c, 0x520c, 0x3c4f, 0x4340, 0x4b30, 0x5320, + 0x3c63, 0x4354, 0x4b44, 0x5334, 0x3c77, 0x4468, 0x4b58, 0x5348, + 0x3c8b, 0x447c, 0x4b6c, 0x535c, 0x3c9f, 0x4490, 0x4c80, 0x5370, + 0x3cb3, 0x44a4, 0x4c94, 0x5384, 0x3dc7, 0x44b8, 0x4ca8, 0x5398, + 0x4e44, 0x5534, 0x5d24, 0x6415, 0x4e58, 0x5548, 0x5d38, 0x6529, + 0x4e6c, 0x555c, 0x5d4c, 0x653d, 0x4e80, 0x5670, 0x5d60, 0x6551, + 0x4e94, 0x5684, 0x5d74, 0x6565, 0x4ea8, 0x5698, 0x5e88, 0x6578, + 0x4ebb, 0x56ac, 0x5e9c, 0x658c, 0x4fcf, 0x56c0, 0x5eb0, 0x65a0, + 0x604c, 0x673c, 0x6f2d, 0x761d, 0x6060, 0x6750, 0x6f40, 0x7731, + 0x6074, 0x6764, 0x6f54, 0x7745, 0x6088, 0x6878, 0x6f68, 0x7759, + 0x609c, 0x688c, 0x6f7c, 0x776d, 0x60b0, 0x68a0, 0x7090, 0x7781, + 0x60c4, 0x68b4, 0x70a4, 0x7795, 0x61d8, 0x68c8, 0x70b8, 0x77a9, + 0x7254, 0x7944, 0x8135, 0x8825, 0x7268, 0x7958, 0x8149, 0x8939, + 0x727c, 0x796c, 0x815d, 0x894d, 0x7290, 0x7a80, 0x8171, 0x8961, + 0x72a4, 0x7a94, 0x8185, 0x8975, 0x72b8, 0x7aa8, 0x8299, 0x8989, + 0x72cc, 0x7abc, 0x82ac, 0x899d, 0x73e0, 0x7ad0, 0x82c0, 0x89b1, + 0x845c, 0x8b4d, 0x933d, 0x9a2d, 0x8470, 0x8b61, 0x9351, 0x9b41, + 0x8484, 0x8b74, 0x9365, 0x9b55, 0x8498, 0x8c88, 0x9379, 0x9b69, + 0x84ac, 0x8c9c, 0x938d, 0x9b7d, 0x84c0, 0x8cb0, 0x94a1, 0x9b91, + 0x84d4, 0x8cc4, 0x94b5, 0x9ba5, 0x85e8, 0x8cd8, 0x94c9, 0x9bb9, + 0x9664, 0x9d55, 0xa545, 0xac35, 0x9678, 0x9d69, 0xa559, 0xad49, + 0x968c, 0x9d7d, 0xa56d, 0xad5d, 0x96a0, 0x9e91, 0xa581, 0xad71, + 0x96b4, 0x9ea5, 0xa595, 0xad85, 0x96c8, 0x9eb9, 0xa6a9, 0xad99, + 0x96dc, 0x9ecd, 0xa6bd, 0xadad, 0x97f0, 0x9ee0, 0xa6d1, 0xadc1, + 0xa86d, 0xaf5d, 0xb74d, 0xbe3e, 0xa881, 0xaf71, 0xb761, 0xbf52, + 0xa895, 0xaf85, 0xb775, 0xbf65, 0xa8a8, 0xb099, 0xb789, 0xbf79, + 0xa8bc, 0xb0ad, 0xb79d, 0xbf8d, 0xa8d0, 0xb0c1, 0xb8b1, 0xbfa1, + 0xa8e4, 0xb0d5, 0xb8c5, 0xbfb5, 0xa9f8, 0xb0e9, 0xb8d9, 0xbfc9, + 0xba75, 0xc165, 0xc955, 0xd046, 0xba89, 0xc179, 0xc969, 0xd15a, + 0xba9d, 0xc18d, 0xc97d, 0xd16e, 0xbab1, 0xc2a1, 0xc991, 0xd182, + 0xbac5, 0xc2b5, 0xc9a5, 0xd196, 0xbad9, 0xc2c9, 0xcab9, 0xd1aa, + 0xbaed, 0xc2dd, 0xcacd, 0xd1be, 0xbbff, 0xc2f1, 0xcae1, 0xd2d1}, + {0x3c3c, 0x2f54, 0x236d, 0x1686, 0x524b, 0x4664, 0x397d, 0x2d96, + 0x695a, 0x5d73, 0x508c, 0x44a5, 0x806a, 0x7483, 0x679c, 0x5bb5, + 0x9779, 0x8a92, 0x7eab, 0x71c4, 0xae89, 0xa1a2, 0x95bb, 0x88d4, + 0xc498, 0xb8b1, 0xacca, 0x9fe3, 0xdba8, 0xcfc1, 0xc2da, 0xb6f3, + 0x3f37, 0x3350, 0x2769, 0x1a82, 0x5646, 0x4a5f, 0x3d78, 0x3191, + 0x6d56, 0x616f, 0x5488, 0x48a1, 0x8465, 0x777e, 0x6b97, 0x5fb0, + 0x9b75, 0x8e8e, 0x82a7, 0x75c0, 0xb284, 0xa59d, 0x99b6, 0x8ccf, + 0xc894, 0xbcad, 0xafc6, 0xa3de, 0xdfa3, 0xd3bc, 0xc6d5, 0xbaee, + 0x4332, 0x374b, 0x2a64, 0x1e7d, 0x5a41, 0x4e5a, 0x4173, 0x358c, + 0x7151, 0x656a, 0x5883, 0x4c9c, 0x8860, 0x7b79, 0x6f92, 0x63ab, + 0x9f70, 0x9289, 0x86a2, 0x79bb, 0xb67f, 0xa998, 0x9db1, 0x90ca, + 0xcc8f, 0xc0a8, 0xb3c1, 0xa7da, 0xe39e, 0xd7b7, 0xcad0, 0xbee9, + 0x472d, 0x3b46, 0x2e5f, 0x2278, 0x5e3d, 0x5256, 0x456f, 0x3988, + 0x754c, 0x6965, 0x5c7e, 0x5097, 0x8c5c, 0x7f75, 0x738e, 0x66a7, + 0xa36b, 0x9684, 0x8a9d, 0x7db6, 0xb97b, 0xad94, 0xa1ad, 0x94c6, + 0xd08a, 0xc4a3, 0xb7bc, 0xabd5, 0xe79a, 0xdbb3, 0xcecc, 0xc2e4, + 0x4b29, 0x3f41, 0x325a, 0x2673, 0x6238, 0x5651, 0x496a, 0x3d83, + 0x7947, 0x6c60, 0x6079, 0x5492, 0x9057, 0x8370, 0x7789, 0x6aa2, + 0xa766, 0x9a7f, 0x8e98, 0x81b1, 0xbd76, 0xb18f, 0xa4a8, 0x98c1, + 0xd485, 0xc89e, 0xbbb7, 0xafd0, 0xeb95, 0xdfae, 0xd2c7, 0xc6e0, + 0x4f24, 0x433d, 0x3656, 0x2a6f, 0x6633, 0x5a4c, 0x4d65, 0x417e, + 0x7d43, 0x705c, 0x6475, 0x578e, 0x9452, 0x876b, 0x7b84, 0x6e9d, + 0xaa62, 0x9e7b, 0x9294, 0x85ad, 0xc171, 0xb58a, 0xa8a3, 0x9cbc, + 0xd881, 0xcc9a, 0xbfb3, 0xb3cc, 0xef90, 0xe3a9, 0xd6c2, 0xcadb, + 0x531f, 0x4738, 0x3a51, 0x2e6a, 0x6a2f, 0x5e47, 0x5160, 0x4579, + 0x813e, 0x7457, 0x6870, 0x5b89, 0x984d, 0x8b66, 0x7f7f, 0x7298, + 0xae5d, 0xa276, 0x968f, 0x89a8, 0xc56c, 0xb985, 0xac9e, 0xa0b7, + 0xdc7c, 0xd095, 0xc3ae, 0xb7c7, 0xf38b, 0xe6a4, 0xdabd, 0xced6, + 0x571a, 0x4b33, 0x3e4c, 0x3265, 0x6e2a, 0x6143, 0x555c, 0x4975, + 0x8539, 0x7852, 0x6c6b, 0x5f84, 0x9c49, 0x8f62, 0x837b, 0x7694, + 0xb258, 0xa671, 0x998a, 0x8da3, 0xc968, 0xbd81, 0xb09a, 0xa4b3, + 0xe077, 0xd490, 0xc7a9, 0xbbc2, 0xf787, 0xeaa0, 0xdeb9, 0xd1d1}, + {0x3c3c, 0x573c, 0x723d, 0x8e3d, 0x473d, 0x623e, 0x7e3e, 0x993f, + 0x533f, 0x6e3f, 0x8940, 0xa541, 0x5e40, 0x7941, 0x9541, 0xb042, + 0x6a42, 0x8542, 0xa043, 0xbc44, 0x7543, 0x9044, 0xac44, 0xc745, + 0x8145, 0x9c45, 0xb746, 0xd347, 0x8c46, 0xa747, 0xc347, 0xde48, + 0x3a4f, 0x5550, 0x7050, 0x8c51, 0x4551, 0x6151, 0x7c52, 0x9753, + 0x5152, 0x6c53, 0x8753, 0xa354, 0x5c54, 0x7854, 0x9355, 0xae56, + 0x6855, 0x8356, 0x9e57, 0xba57, 0x7357, 0x8f57, 0xaa58, 0xc559, + 0x7f58, 0x9a59, 0xb65a, 0xd15a, 0x8a5a, 0xa65a, 0xc15b, 0xdc5c, + 0x3863, 0x5363, 0x6f64, 0x8a65, 0x4364, 0x5f65, 0x7a66, 0x9666, + 0x4f66, 0x6a66, 0x8667, 0xa168, 0x5a67, 0x7668, 0x9169, 0xad69, + 0x6669, 0x8169, 0x9d6a, 0xb86b, 0x716a, 0x8d6b, 0xa86c, 0xc46c, + 0x7d6c, 0x986d, 0xb46d, 0xcf6e, 0x886d, 0xa46e, 0xbf6f, 0xdb6f, + 0x3676, 0x5177, 0x6d78, 0x8878, 0x4278, 0x5d79, 0x7879, 0x947a, + 0x4d79, 0x687a, 0x847b, 0x9f7b, 0x597b, 0x747c, 0x8f7c, 0xab7d, + 0x647c, 0x7f7d, 0x9b7e, 0xb67e, 0x707e, 0x8b7f, 0xa67f, 0xc280, + 0x7b7f, 0x9680, 0xb281, 0xcd81, 0x8781, 0xa282, 0xbd82, 0xd983, + 0x348a, 0x508b, 0x6b8b, 0x868c, 0x408c, 0x5b8c, 0x778d, 0x928e, + 0x4b8d, 0x678e, 0x828e, 0x9d8f, 0x578f, 0x728f, 0x8e90, 0xa991, + 0x6290, 0x7e91, 0x9991, 0xb492, 0x6e92, 0x8992, 0xa593, 0xc094, + 0x7993, 0x9594, 0xb094, 0xcb95, 0x8595, 0xa095, 0xbc96, 0xd797, + 0x329e, 0x4e9e, 0x699f, 0x85a0, 0x3e9f, 0x59a0, 0x75a0, 0x90a1, + 0x49a1, 0x65a1, 0x80a2, 0x9ca3, 0x55a2, 0x70a3, 0x8ca4, 0xa7a4, + 0x60a4, 0x7ca4, 0x97a5, 0xb3a6, 0x6ca5, 0x87a6, 0xa3a7, 0xbea7, + 0x77a7, 0x93a7, 0xaea8, 0xcaa9, 0x83a8, 0x9ea9, 0xbaaa, 0xd5aa, + 0x31b1, 0x4cb2, 0x67b3, 0x83b3, 0x3cb3, 0x57b3, 0x73b4, 0x8eb5, + 0x48b4, 0x63b5, 0x7eb6, 0x9ab6, 0x53b6, 0x6fb6, 0x8ab7, 0xa5b8, + 0x5fb7, 0x7ab8, 0x95b9, 0xb1b9, 0x6ab9, 0x86ba, 0xa1ba, 0xbcbb, + 0x76ba, 0x91bb, 0xacbc, 0xc8bc, 0x81bc, 0x9dbd, 0xb8bd, 0xd3be, + 0x2fc5, 0x4ac6, 0x66c6, 0x81c7, 0x3ac6, 0x56c7, 0x71c8, 0x8cc8, + 0x46c8, 0x61c9, 0x7dc9, 0x98ca, 0x51c9, 0x6dca, 0x88cb, 0xa3cb, + 0x5dcb, 0x78cc, 0x94cc, 0xafcd, 0x68cc, 0x84cd, 0x9fce, 0xbace, + 0x74ce, 0x8fcf, 0xabcf, 0xc6d0, 0x7fd0, 0x9bd0, 0xb6d1, 0xd2d2}, + {0x3c3c, 0x3634, 0x302d, 0x2a25, 0x3f54, 0x3a4d, 0x3445, 0x2e3e, + 0x436d, 0x3e65, 0x385e, 0x3256, 0x4786, 0x427e, 0x3c77, 0x366f, + 0x4b9e, 0x4697, 0x408f, 0x3a88, 0x4fb7, 0x4aaf, 0x44a8, 0x3ea1, + 0x53d0, 0x4ec8, 0x48c1, 0x42b9, 0x57e8, 0x51e1, 0x4cd9, 0x46d2, + 0x4f3b, 0x4a34, 0x442d, 0x3e25, 0x5354, 0x4e4d, 0x4845, 0x423e, + 0x576d, 0x5265, 0x4c5e, 0x4656, 0x5b86, 0x567e, 0x5077, 0x4a6f, + 0x5f9e, 0x5a97, 0x548f, 0x4e88, 0x63b7, 0x5daf, 0x58a8, 0x52a0, + 0x67d0, 0x61c8, 0x5cc1, 0x56b9, 0x6be8, 0x65e1, 0x60d9, 0x5ad2, + 0x633b, 0x5e34, 0x582c, 0x5225, 0x6754, 0x624d, 0x5c45, 0x563e, + 0x6b6d, 0x6665, 0x605e, 0x5a56, 0x6f85, 0x697e, 0x6477, 0x5e6f, + 0x739e, 0x6d97, 0x688f, 0x6288, 0x77b7, 0x71af, 0x6ca8, 0x66a0, + 0x7bd0, 0x75c8, 0x70c1, 0x6ab9, 0x7fe8, 0x79e1, 0x74d9, 0x6ed2, + 0x773b, 0x7234, 0x6c2c, 0x6625, 0x7b54, 0x764d, 0x7045, 0x6a3e, + 0x7f6d, 0x7965, 0x745e, 0x6e56, 0x8385, 0x7d7e, 0x7876, 0x726f, + 0x879e, 0x8197, 0x7c8f, 0x7688, 0x8bb7, 0x85af, 0x80a8, 0x7aa0, + 0x8fcf, 0x89c8, 0x84c1, 0x7eb9, 0x93e8, 0x8de1, 0x88d9, 0x82d2, + 0x8b3b, 0x8534, 0x802c, 0x7a25, 0x8f54, 0x894c, 0x8445, 0x7e3e, + 0x936d, 0x8d65, 0x885e, 0x8256, 0x9785, 0x917e, 0x8c76, 0x866f, + 0x9b9e, 0x9597, 0x908f, 0x8a88, 0x9fb7, 0x99af, 0x94a8, 0x8ea0, + 0xa3cf, 0x9dc8, 0x97c0, 0x92b9, 0xa7e8, 0xa1e1, 0x9bd9, 0x96d2, + 0x9f3b, 0x9934, 0x942c, 0x8e25, 0xa354, 0x9d4c, 0x9845, 0x923d, + 0xa76d, 0xa165, 0x9c5e, 0x9656, 0xab85, 0xa57e, 0xa076, 0x9a6f, + 0xaf9e, 0xa996, 0xa48f, 0x9e88, 0xb3b7, 0xadaf, 0xa7a8, 0xa2a0, + 0xb7cf, 0xb1c8, 0xabc0, 0xa6b9, 0xbbe8, 0xb5e1, 0xafd9, 0xaad2, + 0xb33b, 0xad34, 0xa82c, 0xa225, 0xb754, 0xb14c, 0xac45, 0xa63d, + 0xbb6d, 0xb565, 0xb05e, 0xaa56, 0xbf85, 0xb97e, 0xb376, 0xae6f, + 0xc39e, 0xbd96, 0xb78f, 0xb287, 0xc7b7, 0xc1af, 0xbba8, 0xb6a0, + 0xcbcf, 0xc5c8, 0xbfc0, 0xbab9, 0xcfe8, 0xc9e0, 0xc3d9, 0xbed2, + 0xc73b, 0xc134, 0xbc2c, 0xb625, 0xcb54, 0xc54c, 0xbf45, 0xba3d, + 0xcf6c, 0xc965, 0xc35e, 0xbe56, 0xd385, 0xcd7e, 0xc776, 0xc26f, + 0xd79e, 0xd196, 0xcb8f, 0xc687, 0xdbb7, 0xd5af, 0xcfa8, 0xcaa0, + 0xdfcf, 0xd9c8, 0xd3c0, 0xceb9, 0xe3e8, 0xdde0, 0xd7d9, 0xd2d1}, + {0x3c3c, 0x3a57, 0x3973, 0x388f, 0x5543, 0x545f, 0x527b, 0x5196, + 0x6e4b, 0x6d66, 0x6c82, 0x6b9e, 0x8852, 0x866e, 0x858a, 0x84a6, + 0xa15a, 0xa076, 0x9f91, 0x9dad, 0xba62, 0xb97d, 0xb899, 0xb7b5, + 0xd469, 0xd385, 0xd1a1, 0xd0bc, 0xed71, 0xec8d, 0xeba8, 0xe9c4, + 0x383d, 0x3759, 0x3675, 0x3490, 0x5145, 0x5061, 0x4f7c, 0x4e98, + 0x6b4d, 0x6a68, 0x6884, 0x67a0, 0x8454, 0x8370, 0x828c, 0x81a7, + 0x9e5c, 0x9c78, 0x9b93, 0x9aaf, 0xb764, 0xb67f, 0xb59b, 0xb3b7, + 0xd06b, 0xcf87, 0xcea3, 0xcdbe, 0xea73, 0xe88f, 0xe7aa, 0xe6c6, + 0x353f, 0x335b, 0x3277, 0x3192, 0x4e47, 0x4d63, 0x4c7e, 0x4a9a, + 0x674f, 0x666a, 0x6586, 0x64a2, 0x8156, 0x8072, 0x7e8e, 0x7da9, + 0x9a5e, 0x997a, 0x9895, 0x97b1, 0xb466, 0xb281, 0xb19d, 0xb0b9, + 0xcd6d, 0xcc89, 0xcaa5, 0xc9c0, 0xe675, 0xe591, 0xe4ac, 0xe3c8, + 0x3141, 0x305d, 0x2f79, 0x2e94, 0x4b49, 0x4965, 0x4880, 0x479c, + 0x6451, 0x636c, 0x6288, 0x60a4, 0x7d58, 0x7c74, 0x7b90, 0x7aab, + 0x9760, 0x967c, 0x9497, 0x93b3, 0xb067, 0xaf83, 0xae9f, 0xacbb, + 0xc96f, 0xc88b, 0xc7a6, 0xc6c2, 0xe377, 0xe292, 0xe0ae, 0xdfca, + 0x2e43, 0x2d5f, 0x2b7b, 0x2a96, 0x474b, 0x4667, 0x4582, 0x449e, + 0x6152, 0x5f6e, 0x5e8a, 0x5da6, 0x7a5a, 0x7976, 0x7791, 0x76ad, + 0x9362, 0x927d, 0x9199, 0x90b5, 0xad69, 0xab85, 0xaaa1, 0xa9bc, + 0xc671, 0xc58d, 0xc4a8, 0xc2c4, 0xdf79, 0xde94, 0xddb0, 0xdccc, + 0x2a45, 0x2961, 0x287c, 0x2798, 0x444d, 0x4368, 0x4184, 0x40a0, + 0x5d54, 0x5c70, 0x5b8c, 0x59a7, 0x765c, 0x7578, 0x7493, 0x73af, + 0x9064, 0x8f7f, 0x8d9b, 0x8cb7, 0xa96b, 0xa887, 0xa7a3, 0xa6be, + 0xc373, 0xc18f, 0xc0aa, 0xbfc6, 0xdc7b, 0xdb96, 0xdab2, 0xd8ce, + 0x2747, 0x2663, 0x257e, 0x239a, 0x404f, 0x3f6a, 0x3e86, 0x3da2, + 0x5a56, 0x5872, 0x578e, 0x56a9, 0x735e, 0x727a, 0x7195, 0x6fb1, + 0x8c66, 0x8b81, 0x8a9d, 0x89b9, 0xa66d, 0xa589, 0xa3a5, 0xa2c0, + 0xbf75, 0xbe91, 0xbdac, 0xbcc8, 0xd97d, 0xd798, 0xd6b4, 0xd5d0, + 0x2449, 0x2265, 0x2180, 0x209c, 0x3d51, 0x3c6c, 0x3a88, 0x39a4, + 0x5658, 0x5574, 0x5490, 0x53ab, 0x7060, 0x6e7c, 0x6d97, 0x6cb3, + 0x8967, 0x8883, 0x879f, 0x85bb, 0xa26f, 0xa18b, 0xa0a7, 0x9fc2, + 0xbc77, 0xbb92, 0xb9ae, 0xb8ca, 0xd57e, 0xd49a, 0xd3b6, 0xd1d2}, + {0x3c3c, 0x5530, 0x6f25, 0x891a, 0x4043, 0x5a38, 0x732c, 0x8d21, + 0x444a, 0x5e3f, 0x7834, 0x9228, 0x4851, 0x6246, 0x7c3b, 0x9630, + 0x4d59, 0x664d, 0x8042, 0x9a37, 0x5160, 0x6b55, 0x8449, 0x9e3e, + 0x5567, 0x6f5c, 0x8951, 0xa346, 0x596e, 0x7363, 0x8d58, 0xa74d, + 0x424e, 0x5b43, 0x7538, 0x8f2d, 0x4656, 0x604b, 0x7a3f, 0x9334, + 0x4a5d, 0x6452, 0x7e47, 0x983b, 0x4e64, 0x6859, 0x824e, 0x9c43, + 0x536c, 0x6c60, 0x8655, 0xa04a, 0x5773, 0x7168, 0x8b5c, 0xa451, + 0x5b7a, 0x756f, 0x8f64, 0xa958, 0x5f81, 0x7976, 0x936b, 0xad60, + 0x4861, 0x6256, 0x7b4b, 0x9540, 0x4c69, 0x665d, 0x8052, 0x9947, + 0x5070, 0x6a65, 0x845a, 0x9e4e, 0x5477, 0x6e6c, 0x8861, 0xa256, + 0x597f, 0x7373, 0x8c68, 0xa65d, 0x5d86, 0x777b, 0x916f, 0xab64, + 0x618d, 0x7b82, 0x9577, 0xaf6b, 0x6694, 0x7f89, 0x997e, 0xb373, + 0x4e74, 0x6869, 0x815e, 0x9b53, 0x527c, 0x6c70, 0x8665, 0xa05a, + 0x5683, 0x7078, 0x8a6c, 0xa461, 0x5b8a, 0x747f, 0x8e74, 0xa869, + 0x5f92, 0x7986, 0x937b, 0xac70, 0x6399, 0x7d8e, 0x9782, 0xb177, + 0x67a0, 0x8195, 0x9b8a, 0xb57e, 0x6ca7, 0x859c, 0x9f91, 0xb986, + 0x5487, 0x6e7c, 0x8871, 0xa166, 0x588f, 0x7283, 0x8c78, 0xa66d, + 0x5c96, 0x768b, 0x907f, 0xaa74, 0x619d, 0x7a92, 0x9487, 0xae7b, + 0x65a4, 0x7f99, 0x998e, 0xb283, 0x69ac, 0x83a1, 0x9d95, 0xb78a, + 0x6db3, 0x87a8, 0xa19d, 0xbb91, 0x72ba, 0x8caf, 0xa5a4, 0xbf99, + 0x5a9a, 0x748f, 0x8e84, 0xa779, 0x5ea2, 0x7896, 0x928b, 0xac80, + 0x62a9, 0x7c9e, 0x9692, 0xb087, 0x67b0, 0x81a5, 0x9a9a, 0xb48e, + 0x6bb7, 0x85ac, 0x9fa1, 0xb996, 0x6fbf, 0x89b3, 0xa3a8, 0xbd9d, + 0x74c6, 0x8dbb, 0xa7b0, 0xc1a4, 0x78cd, 0x92c2, 0xabb7, 0xc5ac, + 0x60ad, 0x7aa2, 0x9497, 0xae8c, 0x64b5, 0x7ea9, 0x989e, 0xb293, + 0x69bc, 0x82b1, 0x9ca5, 0xb69a, 0x6dc3, 0x87b8, 0xa1ad, 0xbaa1, + 0x71ca, 0x8bbf, 0xa5b4, 0xbfa9, 0x75d2, 0x8fc6, 0xa9bb, 0xc3b0, + 0x7ad9, 0x93ce, 0xadc2, 0xc7b7, 0x7ee0, 0x98d5, 0xb2ca, 0xcbbf, + 0x66c0, 0x80b5, 0x9aaa, 0xb49f, 0x6ac7, 0x84bc, 0x9eb1, 0xb8a6, + 0x6fcf, 0x89c4, 0xa2b8, 0xbcad, 0x73d6, 0x8dcb, 0xa7c0, 0xc0b4, + 0x77dd, 0x91d2, 0xabc7, 0xc5bc, 0x7be5, 0x95d9, 0xafce, 0xc9c3, + 0x80ec, 0x9ae1, 0xb3d5, 0xcdca, 0x84f3, 0x9ee8, 0xb8dd, 0xd2d2}, + {0x3c3c, 0x2d41, 0x1e47, 0x0f4d, 0x4754, 0x385a, 0x2960, 0x1a65, + 0x526d, 0x4373, 0x3479, 0x257e, 0x5d86, 0x4e8c, 0x3f91, 0x3097, + 0x689f, 0x59a4, 0x4aaa, 0x3bb0, 0x73b8, 0x64bd, 0x55c3, 0x46c9, + 0x7ed0, 0x6fd6, 0x60dc, 0x51e1, 0x89e9, 0x7aef, 0x6bf5, 0x5cfa, + 0x4c36, 0x3d3b, 0x2e41, 0x1f47, 0x574e, 0x4854, 0x395a, 0x2a60, + 0x6267, 0x536d, 0x4473, 0x3678, 0x6e80, 0x5f86, 0x508c, 0x4191, + 0x7999, 0x6a9f, 0x5ba4, 0x4caa, 0x84b2, 0x75b7, 0x66bd, 0x57c3, + 0x8fcb, 0x80d0, 0x71d6, 0x62dc, 0x9ae3, 0x8be9, 0x7cef, 0x6df4, + 0x5d30, 0x4e36, 0x3f3b, 0x3041, 0x6849, 0x594e, 0x4a54, 0x3b5a, + 0x7361, 0x6467, 0x556d, 0x4673, 0x7e7a, 0x6f80, 0x6086, 0x518b, + 0x8993, 0x7a99, 0x6b9e, 0x5ca4, 0x95ac, 0x86b2, 0x77b7, 0x68bd, + 0xa0c5, 0x91ca, 0x82d0, 0x73d6, 0xabde, 0x9ce3, 0x8de9, 0x7eef, + 0x6e2a, 0x5f30, 0x5035, 0x413b, 0x7943, 0x6a49, 0x5b4e, 0x4c54, + 0x845c, 0x7561, 0x6667, 0x576d, 0x8f74, 0x807a, 0x7180, 0x6286, + 0x9a8d, 0x8b93, 0x7c99, 0x6d9e, 0xa5a6, 0x96ac, 0x87b1, 0x78b7, + 0xb0bf, 0xa1c5, 0x92ca, 0x83d0, 0xbcd8, 0xaddd, 0x9ee3, 0x8fe9, + 0x7e24, 0x6f2a, 0x6030, 0x5135, 0x8a3d, 0x7b43, 0x6c48, 0x5d4e, + 0x9556, 0x865c, 0x7761, 0x6867, 0xa06f, 0x9174, 0x827a, 0x7380, + 0xab87, 0x9c8d, 0x8d93, 0x7e99, 0xb6a0, 0xa7a6, 0x98ac, 0x89b1, + 0xc1b9, 0xb2bf, 0xa3c4, 0x94ca, 0xccd2, 0xbdd8, 0xaedd, 0x9fe3, + 0x8f1e, 0x8024, 0x712a, 0x622f, 0x9a37, 0x8b3d, 0x7c43, 0x6d48, + 0xa550, 0x9656, 0x875b, 0x7861, 0xb169, 0xa26f, 0x9374, 0x847a, + 0xbc82, 0xad87, 0x9e8d, 0x8f93, 0xc79a, 0xb8a0, 0xa9a6, 0x9aac, + 0xd2b3, 0xc3b9, 0xb4bf, 0xa5c4, 0xddcc, 0xced2, 0xbfd7, 0xb0dd, + 0xa019, 0x911e, 0x8224, 0x732a, 0xab31, 0x9c37, 0x8d3d, 0x7e42, + 0xb64a, 0xa750, 0x9856, 0x895b, 0xc163, 0xb269, 0xa36e, 0x9474, + 0xcc7c, 0xbd81, 0xae87, 0x9f8d, 0xd795, 0xc99a, 0xbaa0, 0xaba6, + 0xe3ad, 0xd4b3, 0xc5b9, 0xb6bf, 0xeec6, 0xdfcc, 0xd0d2, 0xc1d7, + 0xb113, 0xa218, 0x931e, 0x8424, 0xbc2c, 0xad31, 0x9e37, 0x8f3d, + 0xc744, 0xb84a, 0xa950, 0x9a55, 0xd25d, 0xc363, 0xb469, 0xa56e, + 0xdd76, 0xce7c, 0xbf81, 0xb087, 0xe88f, 0xd994, 0xca9a, 0xbba0, + 0xf3a8, 0xe4ad, 0xd5b3, 0xc6b9, 0xfec0, 0xefc6, 0xe0cc, 0xd2d1}, + {0x3c3c, 0x4851, 0x5567, 0x617d, 0x533d, 0x5f53, 0x6c69, 0x787f, + 0x6a3f, 0x7655, 0x836b, 0x8f81, 0x8141, 0x8d57, 0x9a6d, 0xa683, + 0x9842, 0xa458, 0xb16e, 0xbe84, 0xaf44, 0xbb5a, 0xc870, 0xd586, + 0xc646, 0xd25c, 0xdf72, 0xec88, 0xdd48, 0xea5d, 0xf673, 0xff89, + 0x3446, 0x415c, 0x4e72, 0x5a88, 0x4c48, 0x585d, 0x6573, 0x7189, + 0x6349, 0x6f5f, 0x7c75, 0x888b, 0x7a4b, 0x8661, 0x9377, 0x9f8d, + 0x914d, 0x9d63, 0xaa79, 0xb68f, 0xa84e, 0xb464, 0xc17a, 0xce90, + 0xbf50, 0xcb66, 0xd87c, 0xe592, 0xd652, 0xe268, 0xef7e, 0xfc94, + 0x2d50, 0x3a66, 0x477c, 0x5392, 0x4552, 0x5168, 0x5e7e, 0x6a94, + 0x5c54, 0x6869, 0x757f, 0x8195, 0x7355, 0x7f6b, 0x8c81, 0x9897, + 0x8a57, 0x966d, 0xa383, 0xaf99, 0xa159, 0xad6f, 0xba85, 0xc79b, + 0xb85a, 0xc470, 0xd186, 0xde9c, 0xcf5c, 0xdb72, 0xe888, 0xf59e, + 0x265a, 0x3370, 0x4086, 0x4c9c, 0x3d5c, 0x4a72, 0x5788, 0x639e, + 0x555e, 0x6174, 0x6e8a, 0x7aa0, 0x6c60, 0x7876, 0x858b, 0x91a1, + 0x8361, 0x8f77, 0x9c8d, 0xa8a3, 0x9a63, 0xa679, 0xb38f, 0xbfa5, + 0xb165, 0xbd7b, 0xca91, 0xd7a7, 0xc866, 0xd47c, 0xe192, 0xeea8, + 0x1f65, 0x2c7b, 0x3991, 0x45a7, 0x3666, 0x437c, 0x5092, 0x5ca8, + 0x4e68, 0x5a7e, 0x6794, 0x73aa, 0x656a, 0x7180, 0x7e96, 0x8aac, + 0x7c6c, 0x8882, 0x9597, 0xa1ad, 0x936d, 0x9f83, 0xac99, 0xb8af, + 0xaa6f, 0xb685, 0xc39b, 0xd0b1, 0xc171, 0xcd87, 0xda9d, 0xe7b3, + 0x186f, 0x2585, 0x329b, 0x3eb1, 0x2f71, 0x3c87, 0x499d, 0x55b3, + 0x4672, 0x5388, 0x609e, 0x6cb4, 0x5e74, 0x6a8a, 0x77a0, 0x83b6, + 0x7576, 0x818c, 0x8ea2, 0x9ab8, 0x8c78, 0x988e, 0xa5a4, 0xb1b9, + 0xa379, 0xaf8f, 0xbca5, 0xc8bb, 0xba7b, 0xc691, 0xd3a7, 0xe0bd, + 0x1179, 0x1e8f, 0x2ba5, 0x37bb, 0x287b, 0x3591, 0x42a7, 0x4ebd, + 0x3f7d, 0x4c93, 0x59a9, 0x65bf, 0x577e, 0x6394, 0x70aa, 0x7cc0, + 0x6e80, 0x7a96, 0x87ac, 0x93c2, 0x8582, 0x9198, 0x9eae, 0xaac4, + 0x9c84, 0xa89a, 0xb5b0, 0xc1c5, 0xb385, 0xbf9b, 0xccb1, 0xd9c7, + 0x0a84, 0x179a, 0x23b0, 0x30c5, 0x2185, 0x2e9b, 0x3bb1, 0x47c7, + 0x3887, 0x459d, 0x52b3, 0x5ec9, 0x4f89, 0x5c9f, 0x69b5, 0x75cb, + 0x678a, 0x73a0, 0x80b6, 0x8ccc, 0x7e8c, 0x8aa2, 0x97b8, 0xa3ce, + 0x958e, 0xa1a4, 0xaeba, 0xbad0, 0xac90, 0xb8a6, 0xc5bc, 0xd1d2}}; diff --git a/firmware/application/external/pacman/main.cpp b/firmware/application/external/pacman/main.cpp new file mode 100644 index 00000000..9d2d4f50 --- /dev/null +++ b/firmware/application/external/pacman/main.cpp @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2023 Bernd Herzog + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui.hpp" +#include "ui_pacman.hpp" +#include "ui_navigation.hpp" +#include "external_app.hpp" + +namespace ui::external_app::pacman { +void initialize_app(ui::NavigationView& nav) { + nav.push(); +} +} // namespace ui::external_app::pacman + +extern "C" { + +__attribute__((section(".external_app.app_pacman.application_information"), used)) application_information_t _application_information_pacman = { + /*.memory_location = */ (uint8_t*)0x00000000, // will be filled at compile time + /*.externalAppEntry = */ ui::external_app::pacman::initialize_app, + /*.header_version = */ CURRENT_HEADER_VERSION, + /*.app_version = */ VERSION_MD5, + + /*.app_name = */ "Pac-Man", + /*.bitmap_data = */ { + 0x00, + 0x00, + 0x00, + 0x00, + 0xC0, + 0x07, + 0xE0, + 0x0F, + 0xF0, + 0x1F, + 0xF8, + 0x07, + 0xF8, + 0x01, + 0x78, + 0x00, + 0xF8, + 0x01, + 0xF8, + 0x07, + 0xF0, + 0x1F, + 0xE0, + 0x0F, + 0xC0, + 0x07, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + }, + /*.icon_color = */ ui::Color::yellow().v, + /*.menu_location = */ app_location_t::UTILITIES, + + /*.m4_app_tag = portapack::spi_flash::image_tag_noop */ {'\0', '\0', '\0', '\0'}, // optional + /*.m4_app_offset = */ 0x00000000, // will be filled at compile time +}; +} diff --git a/firmware/application/external/pacman/playfield.hpp b/firmware/application/external/pacman/playfield.hpp new file mode 100644 index 00000000..7c35b615 --- /dev/null +++ b/firmware/application/external/pacman/playfield.hpp @@ -0,0 +1,1276 @@ + +/******************************************************************************/ +/* MAIN GAME VARIABLES */ +/******************************************************************************/ + +#define BONUS_INACTIVE_TIME 600 +#define BONUS_ACTIVE_TIME 300 + +#define START_LIFES 2 +#define START_LEVEL 1 + +typedef uint8_t byte; +typedef uint32_t word; + +byte SPEED = 2; +byte MAXLIFES = 5; +byte LIFES = START_LIFES; +byte GAMEWIN = 0; +byte GAMEOVER = 0; +byte DEMO = 1; +byte LEVEL = START_LEVEL; +byte ACTUALBONUS = 0; // actual bonus icon +byte ACTIVEBONUS = 0; // status of bonus +byte GAMEPAUSED = 0; + +byte PACMANFALLBACK = 0; + +#include "DrawIndexedMap.h" + +/******************************************************************************/ +/* Controll KEYPAD LOOP */ +/******************************************************************************/ + +typedef bool boolean; + +boolean but_A = false; // 38 +boolean but_B = false; // 40 +boolean but_UP = false; // 52 +boolean but_DOWN = false; // 50 +boolean but_LEFT = false; // 48 +boolean but_RIGHT = false; // 46 + +/******************************************************************************/ +/* GAME VARIABLES AND DEFINITIONS */ +/******************************************************************************/ + +#include "PacmanTiles.h" + +enum GameState { + ReadyState, + PlayState, + DeadGhostState, // Player got a ghost, show score sprite and only move eyes + DeadPlayerState, + EndLevelState +}; + +enum SpriteState { + PenState, + RunState, + FrightenedState, + DeadNumberState, + DeadEyesState, + AteDotState, // pacman + DeadPacmanState +}; + +enum { + MStopped = 0, + MRight = 1, + MDown = 2, + MLeft = 3, + MUp = 4, +}; + +#define ushort uint16_t + +#define BINKY 0 +#define PINKY 1 +#define INKY 2 +#define CLYDE 3 +#define PACMAN 4 +#define BONUS 5 + +const byte _initSprites[] = + { + BINKY, + 14, + 17 - 3, + 31, + MLeft, + PINKY, + 14 - 2, + 17, + 79, + MLeft, + INKY, + 14, + 17, + 137, + MLeft, + CLYDE, + 14 + 2, + 17, + 203, + MRight, + PACMAN, + 14, + 17 + 9, + 0, + MLeft, + BONUS, + 14, + 17 + 3, + 0, + MLeft, +}; + +// Ghost colors +const byte _palette2[] = + { + 0, 11, 1, 15, // BINKY red + 0, 11, 3, 15, // PINKY pink + 0, 11, 5, 15, // INKY cyan + 0, 11, 7, 15, // CLYDE brown + 0, 11, 9, 9, // PACMAN yellow + 0, 11, 15, 15, // FRIGHTENED + 0, 11, 0, 15, // DEADEYES + + 0, 1, 15, 2, // cherry + 0, 1, 15, 12, // strawberry + 0, 7, 2, 12, // peach + 0, 9, 15, 0, // bell + + 0, 15, 1, 2, // apple + 0, 12, 15, 5, // grape + 0, 11, 9, 1, // galaxian + 0, 5, 15, 15, // key + +}; + +const byte _paletteIcon2[] = + { + 0, 9, 9, 9, // PACMAN + + 0, 2, 15, 1, // cherry + 0, 12, 15, 1, // strawberry + 0, 12, 2, 7, // peach + 0, 0, 15, 9, // bell + + 0, 2, 15, 1, // apple + 0, 12, 15, 5, // grape + 0, 1, 9, 11, // galaxian + 0, 5, 15, 15, // key +}; + +#define PACMANICON 1 +#define BONUSICON 2 + +#define FRIGHTENEDPALETTE 5 +#define DEADEYESPALETTE 6 + +#define BONUSPALETTE 7 + +#define FPS 60 +#define CHASE 0 +#define SCATTER 1 + +#define DOT 7 +#define PILL 14 +#define PENGATE 0x1B + +const byte _opposite[] = {MStopped, MLeft, MUp, MRight, MDown}; +#define OppositeDirection(_x) pgm_read_byte(_opposite + _x) + +const byte _scatterChase[] = {7, 20, 7, 20, 5, 20, 5, 0}; +const byte _scatterTargets[] = {2, 0, 25, 0, 0, 35, 27, 35}; // inky/clyde scatter targets are backwards +const char _pinkyTargetOffset[] = {4, 0, 0, 4, (char)-4, 0, (char)-4, 4}; // Includes pinky target bug + +#define FRIGHTENEDGHOSTSPRITE 0 +#define GHOSTSPRITE 2 +#define NUMBERSPRITE 10 +#define PACMANSPRITE 14 + +const byte _pacLeftAnim[] = {5, 6, 5, 4}; +const byte _pacRightAnim[] = {2, 0, 2, 4}; +const byte _pacVAnim[] = {4, 3, 1, 3}; + +word _BonusInactiveTimmer = BONUS_INACTIVE_TIME; +word _BonusActiveTimmer = 0; + +/******************************************************************************/ +/* GAME - Sprite Class */ +/******************************************************************************/ + +class Sprite { + public: + int16_t _x, _y; + int16_t lastx, lasty; + byte cx, cy; // cell x and y + byte tx, ty; // target x and y + + SpriteState state; + byte pentimer; // could be the same + + byte who; + byte _speed; + byte dir; + byte phase; + + // Sprite bits + byte palette2; // 4->16 color map index + byte bits; // index of sprite bits + signed char sy; + + void Init(const byte* s) { + who = pgm_read_byte(s++); + cx = pgm_read_byte(s++); + cy = pgm_read_byte(s++); + pentimer = pgm_read_byte(s++); + dir = pgm_read_byte(s); + _x = lastx = (int16_t)cx * 8 - 4; + _y = lasty = (int16_t)cy * 8; + state = PenState; + _speed = 0; + Target(rand() % 20, rand() % 20); + } + + void Target(byte x, byte y) { + tx = x; + ty = y; + } + + int16_t Distance(byte x, byte y) { + int16_t dx = cx - x; + int16_t dy = cy - y; + return dx * dx + dy * dy; // Distance to target + } + + // once per sprite, not 9 times + void SetupDraw(GameState gameState, byte deadGhostIndex) { + sy = 1; + palette2 = who; + byte p = phase >> 3; + + if (who == BONUS) { + // BONUS ICONS + bits = 21 + ACTUALBONUS; + palette2 = BONUSPALETTE + ACTUALBONUS; + return; + } + + if (who != PACMAN) { + bits = GHOSTSPRITE + ((dir - 1) << 1) + (p & 1); // Ghosts + switch (state) { + case FrightenedState: + bits = FRIGHTENEDGHOSTSPRITE + (p & 1); // frightened + palette2 = FRIGHTENEDPALETTE; + break; + case DeadNumberState: + palette2 = FRIGHTENEDPALETTE; + bits = NUMBERSPRITE + deadGhostIndex; + break; + case DeadEyesState: + palette2 = DEADEYESPALETTE; + break; + default:; + } + return; + } + + // PACMAN animation + byte f = (phase >> 1) & 3; + if (dir == MLeft) + f = pgm_read_byte(_pacLeftAnim + f); + else if (dir == MRight) + f = pgm_read_byte(_pacRightAnim + f); + else + f = pgm_read_byte(_pacVAnim + f); + if (dir == MUp) + sy = -1; + bits = f + PACMANSPRITE; + } + + // Draw this sprite into the tile at x,y + void Draw8(int16_t x, int16_t y, byte* tile) { + int16_t px = x - (_x - 4); + if (px <= -8 || px >= 16) return; + int16_t py = y - (_y - 4); + if (py <= -8 || py >= 16) return; + + // Clip y + int16_t lines = py + 8; + if (lines > 16) + lines = 16; + if (py < 0) { + tile -= py * 8; + py = 0; + } + lines -= py; + + // Clip in X + byte right = 16 - px; + if (right > 8) + right = 8; + byte left = 0; + if (px < 0) { + left = -px; + px = 0; + } + + // Get bitmap + signed char dy = sy; + if (dy < 0) + py = 15 - py; // VFlip + byte* data = (byte*)(pacman16x16 + bits * 64); + data += py << 2; + dy <<= 2; + data += px >> 2; + px &= 3; + + const byte* palette = _palette2 + (palette2 << 2); + while (lines) { + const byte* src = data; + byte d = pgm_read_byte(src++); + d >>= px << 1; + byte sx = 4 - px; + byte x = left; + do { + byte p = d & 3; + if (p) { + p = pgm_read_byte(palette + p); + if (p) + tile[x] = p; + } + d >>= 2; // Next pixel + if (!--sx) { + d = pgm_read_byte(src++); + sx = 4; + } + } while (++x < right); + + tile += 8; + data += dy; + lines--; + } + } +}; + +/******************************************************************************/ +/* GAME - Playfield Class */ +/******************************************************************************/ + +class Playfield { + Sprite _sprites[5]; + + Sprite _BonusSprite; // Bonus + + byte _dotMap[(32 / 4) * (36 - 6)]; + + GameState _state; + long _score; // 7 digits of score + long _hiscore; // 7 digits of score + long _lifescore; + signed char _scoreStr[8]; + signed char _hiscoreStr[8]; + byte _icons[14]; // Along bottom of screen + + ushort _stateTimer; + ushort _frightenedTimer; + byte _frightenedCount; + byte _scIndex; // + ushort _scTimer; // next change of sc status + + bool _inited; + byte* _dirty; + + public: + Playfield() + : _inited(false) { + // Swizzle palette TODO just fix in place + // byte * p = (byte*)_paletteW; + // for (int16_t i = 0; i < 16; i++) + // { + // ushort w = _paletteW[i]; // Swizzle + // *p++ = w >> 8; + // *p++ = w; + // } + } + + // Draw 2 bit BG into 8 bit icon tiles at bottom + void DrawBG2(byte cx, byte cy, byte* tile) { + byte index = 0; + signed char b = 0; + + index = _icons[cx >> 1]; // 13 icons across bottom + if (index == 0) { + memset(tile, 0, 64); + return; + } + index--; + index <<= 2; // 4 tiles per icon + + b = (1 - (cx & 1)) + ((cy & 1) << 1); // Index of tile + + const byte* bg = pacman8x8x2 + ((b + index) << 4); + const byte* palette = _paletteIcon2 + index; + + byte x = 16; + while (x--) { + byte bits = (signed char)pgm_read_byte(bg++); + byte i = 4; + while (i--) { + tile[i] = pgm_read_byte(palette + (bits & 3)); + bits >>= 2; + } + tile += 4; + } + } + + byte GetTile(int16_t cx, int16_t ty) { + if (_state != ReadyState && ty == 20 && cx > 10 && cx < 17) return (0); // READY TEXT ZONE + + if (LEVEL % 5 == 1) return pgm_read_byte(playMap1 + ty * 28 + cx); + if (LEVEL % 5 == 2) return pgm_read_byte(playMap2 + ty * 28 + cx); + if (LEVEL % 5 == 3) return pgm_read_byte(playMap3 + ty * 28 + cx); + if (LEVEL % 5 == 4) return pgm_read_byte(playMap4 + ty * 28 + cx); + if (LEVEL % 5 == 0) return pgm_read_byte(playMap5 + ty * 28 + cx); + } + + // Draw 1 bit BG into 8 bit tile + void DrawBG(byte cx, byte cy, byte* tile) { + if (cy >= 34) // DRAW ICONS BELLOW MAZE + { + DrawBG2(cx, cy, tile); + return; + } + + byte c = 11; + if (LEVEL % 8 == 1) c = 11; // Blue + if (LEVEL % 8 == 2) c = 12; // Green + if (LEVEL % 8 == 3) c = 1; // Red + if (LEVEL % 8 == 4) c = 9; // Yellow + if (LEVEL % 8 == 5) c = 2; // Brown + if (LEVEL % 8 == 6) c = 5; // Cyan + if (LEVEL % 8 == 7) c = 3; // Pink + if (LEVEL % 8 == 0) c = 15; // White + + byte b = GetTile(cx, cy); + const byte* bg; + + // This is a little messy + memset(tile, 0, 64); + if (cy == 20 && cx >= 11 && cx < 17) { + if (DEMO == 1 && ACTIVEBONUS == 1) return; + + if ((_state != ReadyState && GAMEPAUSED != 1 && DEMO != 1) || ACTIVEBONUS == 1) + b = 0; // hide 'READY!' + else if (DEMO == 1 && cx == 11) + b = 0; + else if (DEMO == 1 && cx == 12) + b = 'D'; + else if (DEMO == 1 && cx == 13) + b = 'E'; + else if (DEMO == 1 && cx == 14) + b = 'M'; + else if (DEMO == 1 && cx == 15) + b = 'O'; + else if (DEMO == 1 && cx == 16) + b = 0; + else if (GAMEPAUSED == 1 && cx == 11) + b = 'P'; + else if (GAMEPAUSED == 1 && cx == 12) + b = 'A'; + else if (GAMEPAUSED == 1 && cx == 13) + b = 'U'; + else if (GAMEPAUSED == 1 && cx == 14) + b = 'S'; + else if (GAMEPAUSED == 1 && cx == 15) + b = 'E'; + else if (GAMEPAUSED == 1 && cx == 16) + b = 'D'; + } else if (cy == 1) { + if (cx < 7) + b = _scoreStr[cx]; + else if (cx >= 10 && cx < 17) + b = _hiscoreStr[cx - 10]; // HiScore + } else { + if (b == DOT || b == PILL) // DOT==7 or PILL==16 + { + if (!GetDot(cx, cy)) + return; + c = 14; + } + if (b == PENGATE) + c = 14; + } + + bg = playTiles + (b << 3); + if (b >= '0') + c = 15; // text is white + + for (byte y = 0; y < 8; y++) { + signed char bits = (signed char)pgm_read_byte(bg++); /// WARNING CHAR MUST BE signed !!! + byte x = 0; + while (bits) { + if (bits < 0) + tile[x] = c; + bits <<= 1; + x++; + } + tile += 8; + } + } + + // Draw BG then all sprites in this cell + void Draw(uint16_t x, uint16_t y, bool sprites) { + byte tile[8 * 8]; + + // Fill with BG + if (y == 20 && x >= 11 && x < 17 && DEMO == 1 && ACTIVEBONUS == 1) return; + DrawBG(x, y, tile); + + // Overlay sprites + x <<= 3; + y <<= 3; + if (sprites) { + for (byte i = 0; i < 5; i++) + _sprites[i].Draw8(x, y, tile); + + // AND BONUS + if (ACTIVEBONUS) _BonusSprite.Draw8(x, y, tile); + } + + // Show sprite block +#if 0 + for (byte i = 0; i < 5; i++) + { + Sprite* s = _sprites + i; + if (s->cx == (x >> 3) && s->cy == (y >> 3)) + { + memset(tile, 0, 8); + for (byte j = 1; j < 7; j++) + tile[j * 8] = tile[j * 8 + 7] = 0; + memset(tile + 56, 0, 8); + } + } +#endif + + x += (240 - 224) / 2; + y += (320 - 288) / 2 + 8; + + // Should be a direct Graphics call + + byte n = tile[0]; + byte i = 0; + word color = (word)_paletteW[n]; + + drawIndexedmap(tile, x, y); + } + + boolean updateMap[36][28]; + + // Mark tile as dirty (should not need range checking here) + void Mark(int16_t x, int16_t y, byte* m) { + x -= 4; + y -= 4; + + updateMap[(y >> 3)][(x >> 3)] = true; + updateMap[(y >> 3)][(x >> 3) + 1] = true; + updateMap[(y >> 3)][(x >> 3) + 2] = true; + updateMap[(y >> 3) + 1][(x >> 3)] = true; + updateMap[(y >> 3) + 1][(x >> 3) + 1] = true; + updateMap[(y >> 3) + 1][(x >> 3) + 2] = true; + updateMap[(y >> 3) + 2][(x >> 3)] = true; + updateMap[(y >> 3) + 2][(x >> 3) + 1] = true; + updateMap[(y >> 3) + 2][(x >> 3) + 2] = true; + } + + void DrawAllBG() { + for (byte y = 0; y < 36; y++) + for (byte x = 0; x < 28; x++) { + Draw(x, y, false); + } + } + + // Draw sprites overlayed on cells + void DrawAll() { + byte* m = _dirty; + + // Mark sprite old/new positions as dirty + for (byte i = 0; i < 5; i++) { + Sprite* s = _sprites + i; + Mark(s->lastx, s->lasty, m); + Mark(s->_x, s->_y, m); + } + + // Mark BONUS sprite old/new positions as dirty + Sprite* _s = &_BonusSprite; + Mark(_s->lastx, _s->lasty, m); + Mark(_s->_x, _s->_y, m); + + // Animation + for (byte i = 0; i < 5; i++) + _sprites[i].SetupDraw(_state, _frightenedCount - 1); + + _BonusSprite.SetupDraw(_state, _frightenedCount - 1); + + for (byte tmpY = 0; tmpY < 36; tmpY++) { + for (byte tmpX = 0; tmpX < 28; tmpX++) { + if (updateMap[tmpY][tmpX] == true) Draw(tmpX, tmpY, true); + updateMap[tmpY][tmpX] = false; + } + } + } + + int16_t Chase(Sprite* s, int16_t cx, int16_t cy) { + while (cx < 0) // Tunneling + cx += 28; + while (cx >= 28) + cx -= 28; + + byte t = GetTile(cx, cy); + if (!(t == 0 || t == DOT || t == PILL || t == PENGATE)) + return 0x7FFF; + + if (t == PENGATE) { + if (s->who == PACMAN) + return 0x7FFF; // Pacman can't cross this to enter pen + if (!(InPen(s->cx, s->cy) || s->state == DeadEyesState)) + return 0x7FFF; // Can cross if dead or in pen trying to get out + } + + int16_t dx = s->tx - cx; + int16_t dy = s->ty - cy; + return (dx * dx + dy * dy); // Distance to target + } + + void UpdateTimers() { + // Update scatter/chase selector, low bit of index indicates scatter + if (_scIndex < 8) { + if (_scTimer-- == 0) { + byte duration = pgm_read_byte(_scatterChase + _scIndex++); + _scTimer = duration * FPS; + } + } + + // BONUS timmer + if (ACTIVEBONUS == 0 && _BonusInactiveTimmer-- == 0) { + _BonusActiveTimmer = BONUS_ACTIVE_TIME; // 5*FPS; + ACTIVEBONUS = 1; + } + if (ACTIVEBONUS == 1 && _BonusActiveTimmer-- == 0) { + _BonusInactiveTimmer = BONUS_INACTIVE_TIME; // 10*FPS; + ACTIVEBONUS = 0; + } + + // Release frightened ghosts + if (_frightenedTimer && !--_frightenedTimer) { + for (byte i = 0; i < 4; i++) { + Sprite* s = _sprites + i; + if (s->state == FrightenedState) { + s->state = RunState; + s->dir = OppositeDirection(s->dir); + } + } + } + } + + // Target closes pill, run from ghosts? + void PacmanAI() { + Sprite* pacman; + pacman = _sprites + PACMAN; + + // Chase frightened ghosts + Sprite* closestGhost = NULL; + Sprite* frightenedGhost = NULL; + Sprite* closestAttackingGhost = NULL; + Sprite* DeadEyesStateGhost = NULL; + int16_t dist = 0x7FFF; + int16_t closestfrightenedDist = 0x7FFF; + int16_t closestAttackingDist = 0x7FFF; + for (byte i = 0; i < 4; i++) { + Sprite* s = _sprites + i; + int16_t d = s->Distance(pacman->cx, pacman->cy); + if (d < dist) { + dist = d; + if (s->state == FrightenedState) { + frightenedGhost = s; + closestfrightenedDist = d; + } else { + closestAttackingGhost = s; + closestAttackingDist = d; + } + closestGhost = s; + + if (s->state == DeadEyesState) DeadEyesStateGhost = s; + } + } + + PACMANFALLBACK = 0; + + if (DEMO == 1 && !DeadEyesStateGhost && frightenedGhost) { + pacman->Target(frightenedGhost->cx, frightenedGhost->cy); + return; + } + + // Under threat; just avoid closest ghost + if (DEMO == 1 && !DeadEyesStateGhost && dist <= 32 && closestAttackingDist < closestfrightenedDist) { + if (dist <= 16) { + pacman->Target(pacman->cx * 2 - closestAttackingGhost->cx, pacman->cy * 2 - closestAttackingGhost->cy); + PACMANFALLBACK = 1; + } else { + pacman->Target(pacman->cx * 2 - closestAttackingGhost->cx, pacman->cy * 2 - closestAttackingGhost->cy); + } + return; + } + + if (ACTIVEBONUS == 1) { + pacman->Target(13, 20); + return; + } + + // Go for the pill + if (GetDot(1, 6)) + pacman->Target(1, 6); + else if (GetDot(26, 6)) + pacman->Target(26, 6); + else if (GetDot(1, 26)) + pacman->Target(1, 26); + else if (GetDot(26, 26)) + pacman->Target(26, 26); + else { + // closest dot + int16_t dist = 0x7FFF; + for (byte y = 4; y < 32; y++) { + for (byte x = 1; x < 26; x++) { + if (GetDot(x, y)) { + int16_t d = pacman->Distance(x, y); + if (d < dist) { + dist = d; + pacman->Target(x, y); + } + } + } + } + + if (dist == 0x7FFF) { + GAMEWIN = 1; // No dots, GAME WIN! + } + } + } + + void Scatter(Sprite* s) { + const byte* st = _scatterTargets + (s->who << 1); + s->Target(pgm_read_byte(st), pgm_read_byte(st + 1)); + } + + void UpdateTargets() { + if (_state == ReadyState) + return; + PacmanAI(); + Sprite* pacman = _sprites + PACMAN; + + // Ghost AI + bool scatter = _scIndex & 1; + for (byte i = 0; i < 4; i++) { + Sprite* s = _sprites + i; + + // Deal with returning ghost to pen + if (s->state == DeadEyesState) { + if (s->cx == 14 && s->cy == 17) // returned to pen + { + s->state = PenState; // Revived in pen + s->pentimer = 80; + } else + s->Target(14, 17); // target pen + continue; // + } + + // Release ghost from pen when timer expires + if (s->pentimer) { + if (--s->pentimer) // stay in pen for awhile + continue; + s->state = RunState; + } + + if (InPen(s->cx, s->cy)) { + s->Target(14, 14 - 2); // Get out of pen first + } else { + if (scatter || s->state == FrightenedState) + Scatter(s); + else { + // Chase mode targeting + signed char tx = pacman->cx; + signed char ty = pacman->cy; + switch (s->who) { + case PINKY: { + const char* pto = _pinkyTargetOffset + ((pacman->dir - 1) << 1); + tx += pgm_read_byte(pto); + ty += pgm_read_byte(pto + 1); + } break; + case INKY: { + const char* pto = _pinkyTargetOffset + ((pacman->dir - 1) << 1); + Sprite* binky = _sprites + BINKY; + tx += pgm_read_byte(pto) >> 1; + ty += pgm_read_byte(pto + 1) >> 1; + tx += tx - binky->cx; + ty += ty - binky->cy; + } break; + case CLYDE: { + if (s->Distance(pacman->cx, pacman->cy) < 64) { + const byte* st = _scatterTargets + CLYDE * 2; + tx = pgm_read_byte(st); + ty = pgm_read_byte(st + 1); + } + } break; + } + s->Target(tx, ty); + } + } + } + } + + // Default to current direction + byte ChooseDir(int16_t dir, Sprite* s) { + int16_t choice[4]; + choice[0] = Chase(s, s->cx, s->cy - 1); // Up + choice[1] = Chase(s, s->cx - 1, s->cy); // Left + choice[2] = Chase(s, s->cx, s->cy + 1); // Down + choice[3] = Chase(s, s->cx + 1, s->cy); // Right + + if (DEMO == 0 && s->who == PACMAN && choice[0] < 0x7FFF && but_UP) + dir = MUp; + else if (DEMO == 0 && s->who == PACMAN && choice[1] < 0x7FFF && but_LEFT) + dir = MLeft; + else if (DEMO == 0 && s->who == PACMAN && choice[2] < 0x7FFF && but_DOWN) + dir = MDown; + else if (DEMO == 0 && s->who == PACMAN && choice[3] < 0x7FFF && but_RIGHT) + dir = MRight; + + else if (DEMO == 0 && choice[0] < 0x7FFF && s->who == PACMAN && dir == MUp) + dir = MUp; + else if (DEMO == 0 && choice[1] < 0x7FFF && s->who == PACMAN && dir == MLeft) + dir = MLeft; + else if (DEMO == 0 && choice[2] < 0x7FFF && s->who == PACMAN && dir == MDown) + dir = MDown; + else if (DEMO == 0 && choice[3] < 0x7FFF && s->who == PACMAN && dir == MRight) + dir = MRight; + else if ((DEMO == 0 && s->who != PACMAN) || DEMO == 1) { + // Don't choose opposite of current direction? + + int16_t dist = choice[4 - dir]; // favor current direction + byte opposite = OppositeDirection(dir); + for (byte i = 0; i < 4; i++) { + byte d = 4 - i; + if ((d != opposite && choice[i] < dist) || (s->who == PACMAN && PACMANFALLBACK && choice[i] < dist)) { + if (s->who == PACMAN && PACMANFALLBACK) PACMANFALLBACK = 0; + dist = choice[i]; + dir = d; + } + } + + } else { + dir = MStopped; + } + + return dir; + } + + bool InPen(byte cx, byte cy) { + if (cx <= 10 || cx >= 18) return false; + if (cy <= 14 || cy >= 18) return false; + return true; + } + + byte GetSpeed(Sprite* s) { + if (s->who == PACMAN) + return _frightenedTimer ? 90 : 80; + if (s->state == FrightenedState) + return 40; + if (s->state == DeadEyesState) + return 100; + if (s->cy == 17 && (s->cx <= 5 || s->cx > 20)) + return 40; // tunnel + return 75; + } + + void PackmanDied() { // Noooo... PACMAN DIED :( + + if (LIFES <= 0) { + GAMEOVER = 1; + LEVEL = START_LEVEL; + LIFES = START_LIFES; + DEMO = 1; + Init(); + } else { + LIFES--; + + _inited = true; + _state = ReadyState; + _stateTimer = FPS / 2; + _frightenedCount = 0; + _frightenedTimer = 0; + + const byte* s = _initSprites; + for (int16_t i = 0; i < 5; i++) + _sprites[i].Init(s + i * 5); + + _scIndex = 0; + _scTimer = 1; + + memset(_icons, 0, sizeof(_icons)); + + // AND BONUS + _BonusSprite.Init(s + 5 * 5); + _BonusInactiveTimmer = BONUS_INACTIVE_TIME; + _BonusActiveTimmer = 0; + + for (byte i = 0; i < ACTUALBONUS; i++) { + _icons[13 - i] = BONUSICON + i; + } + + for (byte i = 0; i < LIFES; i++) { + _icons[0 + i] = PACMANICON; + } + + // Draw LIFE and BONUS Icons + for (byte y = 34; y < 36; y++) + for (byte x = 0; x < 28; x++) { + Draw(x, y, false); + } + + DrawAllBG(); + } + } + + void MoveAll() { + UpdateTimers(); + UpdateTargets(); + + // Update game state + if (_stateTimer) { + if (--_stateTimer <= 0) { + switch (_state) { + case ReadyState: + _state = PlayState; + _dirty[20 * 4 + 1] |= 0x1F; // Clear 'READY!' + _dirty[20 * 4 + 2] |= 0x80; + + for (byte tmpX = 11; tmpX < 17; tmpX++) Draw(tmpX, 20, false); // ReDraw (clear) 'READY' position + + break; + case DeadGhostState: + _state = PlayState; + for (byte i = 0; i < 4; i++) { + Sprite* s = _sprites + i; + if (s->state == DeadNumberState) + s->state = DeadEyesState; + } + break; + default:; + } + } else { + if (_state == ReadyState) + return; + } + } + + for (byte i = 0; i < 5; i++) { + Sprite* s = _sprites + i; + + // In DeadGhostState, only eyes move + if (_state == DeadGhostState && s->state != DeadEyesState) + continue; + + // Calculate speed + s->_speed += GetSpeed(s); + if (s->_speed < 100) + continue; + s->_speed -= 100; + + s->lastx = s->_x; + s->lasty = s->_y; + s->phase++; + + int16_t x = s->_x; + int16_t y = s->_y; + + if ((x & 0x7) == 0 && (y & 0x7) == 0) // cell aligned + s->dir = ChooseDir(s->dir, s); // time to choose another direction + + switch (s->dir) { + case MLeft: + x -= SPEED; + break; + case MRight: + x += SPEED; + break; + case MUp: + y -= SPEED; + break; + case MDown: + y += SPEED; + break; + case MStopped: + break; + } + + // Wrap x because of tunnels + while (x < 0) + x += 224; + while (x >= 224) + x -= 224; + + s->_x = x; + s->_y = y; + s->cx = (x + 4) >> 3; + s->cy = (y + 4) >> 3; + + if (s->who == PACMAN) + EatDot(s->cx, s->cy); + } + + // Collide + Sprite* pacman = _sprites + PACMAN; + + // Collide with BONUS + Sprite* _s = &_BonusSprite; + if (ACTIVEBONUS == 1 && _s->cx == pacman->cx && _s->cy == pacman->cy) { + Score(ACTUALBONUS * 50); + ACTUALBONUS++; + if (ACTUALBONUS > 7) { + ACTUALBONUS = 0; + if (LIFES < MAXLIFES) LIFES++; + + // reset all icons + memset(_icons, 0, sizeof(_icons)); + + for (byte i = 0; i < LIFES; i++) { + _icons[0 + i] = PACMANICON; + } + } + + for (byte i = 0; i < ACTUALBONUS; i++) { + _icons[13 - i] = BONUSICON + i; + } + + // REDRAW LIFE and BONUS icons + for (byte y = 34; y < 36; y++) + for (byte x = 0; x < 28; x++) { + Draw(x, y, false); + } + + ACTIVEBONUS = 0; + _BonusInactiveTimmer = BONUS_INACTIVE_TIME; + } + + for (byte i = 0; i < 4; i++) { + Sprite* s = _sprites + i; + // if (s->cx == pacman->cx && s->cy == pacman->cy) + if (s->_x + SPEED >= pacman->_x && s->_x - SPEED <= pacman->_x && s->_y + SPEED >= pacman->_y && s->_y - SPEED <= pacman->_y) + + { + if (s->state == FrightenedState) { + s->state = DeadNumberState; // Killed a ghost + _frightenedCount++; + _state = DeadGhostState; + _stateTimer = 10; + Score((1 << _frightenedCount) * 100); + } else { // pacman died + if (s->state == DeadNumberState || s->state == FrightenedState || s->state == DeadEyesState) { + } else { + PackmanDied(); + } + } + } + } + } + + // Mark a position dirty + void Mark(int16_t pos) { + for (byte tmp = 0; tmp < 28; tmp++) + updateMap[1][tmp] = true; + } + + void SetScoreChar(byte i, signed char c) { + if (_scoreStr[i] == c) + return; + _scoreStr[i] = c; + Mark(i + 32); // Score + // Mark(i+32+10); //HiScore + } + + void SetHiScoreChar(byte i, signed char c) { + if (_hiscoreStr[i] == c) + return; + _hiscoreStr[i] = c; + // Mark(i+32); //Score + Mark(i + 32 + 10); // HiScore + } + + void Score(int16_t delta) { + char str[8]; + _score += delta; + if (DEMO == 0 && _score > _hiscore) _hiscore = _score; + + if (_score > _lifescore && _score % 10000 > 0) { + _lifescore = (_score / 10000 + 1) * 10000; + + LIFES++; // EVERY 10000 points = 1UP + + for (byte i = 0; i < LIFES; i++) { + _icons[0 + i] = PACMANICON; + } + + // REDRAW LIFE and BONUS icons + for (byte y = 34; y < 36; y++) + for (byte x = 0; x < 28; x++) { + Draw(x, y, false); + } + _score = _score + 100; + } + + sprintf(str, "%ld", _score); + byte i = 7 - strlen(str); + byte j = 0; + while (i < 7) + SetScoreChar(i++, str[j++]); + sprintf(str, "%ld", _hiscore); + i = 7 - strlen(str); + j = 0; + while (i < 7) + SetHiScoreChar(i++, str[j++]); + } + + bool GetDot(byte cx, byte cy) { + return _dotMap[(cy - 3) * 4 + (cx >> 3)] & (0x80 >> (cx & 7)); + } + + void EatDot(byte cx, byte cy) { + if (!GetDot(cx, cy)) + return; + byte mask = 0x80 >> (cx & 7); + _dotMap[(cy - 3) * 4 + (cx >> 3)] &= ~mask; + + byte t = GetTile(cx, cy); + if (t == PILL) { + _frightenedTimer = 10 * FPS; + _frightenedCount = 0; + for (byte i = 0; i < 4; i++) { + Sprite* s = _sprites + i; + if (s->state == RunState) { + s->state = FrightenedState; + s->dir = OppositeDirection(s->dir); + } + } + Score(50); + } else + Score(10); + } + + void Init() { + if (GAMEWIN == 1) { + GAMEWIN = 0; + } else { + LEVEL = START_LEVEL; + LIFES = START_LIFES; + ACTUALBONUS = 0; // actual bonus icon + ACTIVEBONUS = 0; // status of bonus + + _score = 0; + _lifescore = 10000; + + memset(_scoreStr, 0, sizeof(_scoreStr)); + _scoreStr[5] = _scoreStr[6] = '0'; + } + + _inited = true; + _state = ReadyState; + _stateTimer = FPS / 2; + _frightenedCount = 0; + _frightenedTimer = 0; + + const byte* s = _initSprites; + for (int16_t i = 0; i < 5; i++) + _sprites[i].Init(s + i * 5); + + // AND BONUS + _BonusSprite.Init(s + 5 * 5); + _BonusInactiveTimmer = BONUS_INACTIVE_TIME; + _BonusActiveTimmer = 0; + + _scIndex = 0; + _scTimer = 1; + + memset(_icons, 0, sizeof(_icons)); + + // SET BONUS icons + for (byte i = 0; i < ACTUALBONUS; i++) { + _icons[13 - i] = BONUSICON + i; + } + + // SET Lifes icons + for (byte i = 0; i < LIFES; i++) { + _icons[0 + i] = PACMANICON; + } + + // Draw LIFE and BONUS Icons + for (byte y = 34; y < 36; y++) + for (byte x = 0; x < 28; x++) { + Draw(x, y, false); + } + + // Init dots from rom + memset(_dotMap, 0, sizeof(_dotMap)); + byte* map = _dotMap; + for (byte y = 3; y < 36 - 3; y++) // 30 interior lines + { + for (byte x = 0; x < 28; x++) { + byte t = GetTile(x, y); + if (t == 7 || t == 14) { + byte s = x & 7; + map[x >> 3] |= (0x80 >> s); + } + } + map += 4; + } + DrawAllBG(); + } + + void Step() { + int16_t keys = 0; + + if (GAMEWIN == 1) { + LEVEL++; + Init(); + } + + // Start GAME + if (but_A && DEMO == 1 && GAMEPAUSED == 0) { + but_A = false; + DEMO = 0; + Init(); + } else if (but_A && DEMO == 0 && GAMEPAUSED == 0) { // Or PAUSE GAME + but_A = false; + GAMEPAUSED = 1; + } + + if (GAMEPAUSED && but_A && DEMO == 0) { + but_A = false; + GAMEPAUSED = 0; + for (byte tmpX = 11; tmpX < 17; tmpX++) Draw(tmpX, 20, false); + } + + // Reset / Start GAME + if (but_B) { + DEMO = 0; + Init(); + } else if (!_inited) { + DEMO = 1; + Init(); + } + + // Create a bitmap of dirty tiles + byte m[(32 / 8) * 36]; // 144 bytes + memset(m, 0, sizeof(m)); + _dirty = m; + + if (!GAMEPAUSED) MoveAll(); // IF GAME is PAUSED STOP ALL + + if ((ACTIVEBONUS == 0 && DEMO == 1) || GAMEPAUSED == 1) + for (byte tmpX = 11; tmpX < 17; tmpX++) Draw(tmpX, 20, false); // Draw 'PAUSED' or 'DEMO' text + + DrawAll(); + } +}; \ No newline at end of file diff --git a/firmware/application/external/pacman/ui_pacman.cpp b/firmware/application/external/pacman/ui_pacman.cpp new file mode 100644 index 00000000..c31b8938 --- /dev/null +++ b/firmware/application/external/pacman/ui_pacman.cpp @@ -0,0 +1,50 @@ +#include "ui_pacman.hpp" +#include "irq_controls.hpp" + +namespace ui::external_app::pacman { + +#pragma GCC diagnostic push +// external code, so ignore warnings +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#pragma GCC diagnostic ignored "-Wreturn-type" +#pragma GCC diagnostic ignored "-Weffc++" +#include "playfield.hpp" +#pragma GCC diagnostic pop + +Playfield _game; + +PacmanView::PacmanView(NavigationView& nav) + : nav_(nav) { + add_children({&dummy}); +} + +void PacmanView::focus() { + dummy.focus(); +} + +void PacmanView::paint(Painter& painter) { + (void)painter; + + if (!initialized) { + initialized = true; + _game.Init(); + } + + auto switches_debounced = get_switches_state().to_ulong(); + + but_RIGHT = (switches_debounced & 0x01) == 0x01; + but_LEFT = (switches_debounced & 0x02) == 0x02; + but_DOWN = (switches_debounced & 0x04) == 0x04; + but_UP = (switches_debounced & 0x08) == 0x08; + but_A = (switches_debounced & 0x10) == 0x10; + + _game.Step(); +} + +void PacmanView::frame_sync() { + set_dirty(); +} + +} // namespace ui::external_app::pacman diff --git a/firmware/application/external/pacman/ui_pacman.hpp b/firmware/application/external/pacman/ui_pacman.hpp new file mode 100644 index 00000000..8d56f075 --- /dev/null +++ b/firmware/application/external/pacman/ui_pacman.hpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2023 Bernd Herzog + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __UI_PACMAN_H__ +#define __UI_PACMAN_H__ + +#include "ui_navigation.hpp" +#include "event_m0.hpp" +#include "message.hpp" + +namespace ui::external_app::pacman { + +class PacmanView : public View { + public: + PacmanView(NavigationView& nav); + + void focus() override; + + std::string title() const override { return "Pac-Man"; }; + + void paint(Painter& painter) override; + void frame_sync(); + + private: + bool initialized = false; + NavigationView& nav_; + + Button dummy{ + {240, 0, 0, 0}, + ""}; + + MessageHandlerRegistration message_handler_sample{ + Message::ID::DisplayFrameSync, + [this](const Message* const) { + this->frame_sync(); + }}; +}; + +} // namespace ui::external_app::pacman + +#endif /*__UI_PACMAN_H__*/ diff --git a/firmware/application/ui/ui_btngrid.cpp b/firmware/application/ui/ui_btngrid.cpp index 4f29e0fe..f287832e 100644 --- a/firmware/application/ui/ui_btngrid.cpp +++ b/firmware/application/ui/ui_btngrid.cpp @@ -116,6 +116,12 @@ void BtnGridView::add_items(std::initializer_list new_items) { update_items(); } +void BtnGridView::add_item(GridItem new_item) { + menu_items.push_back(new_item); + + update_items(); +} + void BtnGridView::update_items() { size_t i = 0; diff --git a/firmware/application/ui/ui_btngrid.hpp b/firmware/application/ui/ui_btngrid.hpp index 82b350de..57b4f97d 100644 --- a/firmware/application/ui/ui_btngrid.hpp +++ b/firmware/application/ui/ui_btngrid.hpp @@ -54,6 +54,7 @@ class BtnGridView : public View { ~BtnGridView(); void add_items(std::initializer_list new_items); + void add_item(GridItem new_item); void set_max_rows(int rows); int rows(); void clear(); diff --git a/firmware/application/ui_external_items_menu_loader.cpp b/firmware/application/ui_external_items_menu_loader.cpp new file mode 100644 index 00000000..2948fcd2 --- /dev/null +++ b/firmware/application/ui_external_items_menu_loader.cpp @@ -0,0 +1,139 @@ +#include "ui_external_items_menu_loader.hpp" + +#include "sd_card.hpp" + +namespace ui { + +/* static */ std::vector> ExternalItemsMenuLoader::bitmaps; + +/* static */ std::vector ExternalItemsMenuLoader::load_external_items(app_location_t app_location, NavigationView& nav) { + bitmaps.clear(); + + std::vector external_apps; + + if (sd_card::status() != sd_card::Status::Mounted) + return external_apps; + + for (const auto& entry : std::filesystem::directory_iterator(u"APPS", u"*.ppma")) { + auto filePath = u"/APPS/" + entry.path(); + File app; + + auto openError = app.open(filePath); + if (openError) + continue; + + application_information_t application_information = {}; + + auto readResult = app.read(&application_information, sizeof(application_information_t)); + if (!readResult) + continue; + + if (application_information.menu_location != app_location) + continue; + + if (application_information.header_version != CURRENT_HEADER_VERSION) + continue; + + bool versionMatches = VERSION_MD5 == application_information.app_version; + + GridItem gridItem = {}; + gridItem.text = reinterpret_cast(&application_information.app_name[0]); + + if (versionMatches) { + gridItem.color = Color((uint16_t)application_information.icon_color); + + auto dyn_bmp = DynamicBitmap<16, 16>{application_information.bitmap_data}; + gridItem.bitmap = dyn_bmp.bitmap(); + bitmaps.push_back(std::move(dyn_bmp)); + + gridItem.on_select = [&nav, app_location, filePath]() { + run_external_app(nav, filePath); + }; + } else { + gridItem.color = Color::light_grey(); + + gridItem.bitmap = &bitmap_sd_card_error; + + gridItem.on_select = [&nav]() { + nav.display_modal("Error", "The .ppma file in your APPS\nfolder is outdated. Please\nupdate your SD Card content."); + }; + } + + external_apps.push_back(gridItem); + } + + return external_apps; +} + +/* static */ void ExternalItemsMenuLoader::run_external_app(ui::NavigationView& nav, std::filesystem::path filePath) { + File app; + + auto openError = app.open(filePath); + if (openError) + chDbgPanic("file gone"); + + application_information_t application_information = {}; + + auto readResult = app.read(&application_information, sizeof(application_information_t)); + + if (!readResult) + chDbgPanic("no data"); + + app.seek(0); + + if (application_information.m4_app_offset != 0) { + // copy application image + for (size_t file_read_index = 0; file_read_index < application_information.m4_app_offset; file_read_index += std::filesystem::max_file_block_size) { + auto bytes_to_read = std::filesystem::max_file_block_size; + if (file_read_index + std::filesystem::max_file_block_size > application_information.m4_app_offset) + bytes_to_read = application_information.m4_app_offset - file_read_index; + + if (bytes_to_read == 0) + break; + + readResult = app.read(&application_information.memory_location[file_read_index], bytes_to_read); + if (!readResult) + chDbgPanic("read error"); + + if (readResult.value() < std::filesystem::max_file_block_size) + break; + } + + // copy baseband image + for (size_t file_read_index = application_information.m4_app_offset;; file_read_index += readResult.value()) { + size_t bytes_to_read = std::filesystem::max_file_block_size; + + // not aligned + if ((file_read_index % std::filesystem::max_file_block_size) != 0) + bytes_to_read = std::filesystem::max_file_block_size - (file_read_index % std::filesystem::max_file_block_size); + + if (bytes_to_read == 0) + break; + + auto target_memory = reinterpret_cast(portapack::memory::map::m4_code.base() + file_read_index - application_information.m4_app_offset); + + readResult = app.read(target_memory, bytes_to_read); + if (!readResult) + chDbgPanic("read error #2"); + + if (readResult.value() != bytes_to_read) + break; + } + } else { + // copy application image + for (size_t file_read_index = 0; file_read_index < 80 * std::filesystem::max_file_block_size; file_read_index += std::filesystem::max_file_block_size) { + auto bytes_to_read = std::filesystem::max_file_block_size; + + readResult = app.read(&application_information.memory_location[file_read_index], bytes_to_read); + if (!readResult) + chDbgPanic("read error #3"); + + if (readResult.value() < std::filesystem::max_file_block_size) + break; + } + } + + application_information.externalAppEntry(nav); +} + +} // namespace ui diff --git a/firmware/application/ui_external_items_menu_loader.hpp b/firmware/application/ui_external_items_menu_loader.hpp new file mode 100644 index 00000000..288a536f --- /dev/null +++ b/firmware/application/ui_external_items_menu_loader.hpp @@ -0,0 +1,66 @@ + +/* + * Copyright (C) 2023 Bernd Herzog + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __EXTERNAL_ITEMS_MENU_LOADER_H__ +#define __EXTERNAL_ITEMS_MENU_LOADER_H__ + +#include "ui.hpp" +#include "ui_navigation.hpp" +#include "external_app.hpp" + +#include "file.hpp" + +namespace ui { + +template +class DynamicBitmap { + public: + static constexpr size_t buffer_size = Width * Height / (sizeof(uint8_t) * 8); // one bit per pixel + + DynamicBitmap(const uint8_t data[buffer_size]) + : _buffer(buffer_size, 0), + _bitmap{new Bitmap{{Width, Height}, &_buffer[0]}} { + memcpy(&_buffer[0], data, buffer_size); + } + + const Bitmap* bitmap() { return _bitmap.get(); } + + private: + // Allocating both members so the class is movable without invalidation. + std::vector _buffer; + std::unique_ptr _bitmap; +}; + +class ExternalItemsMenuLoader { + public: + static std::vector load_external_items(app_location_t, NavigationView&); + ExternalItemsMenuLoader() = delete; + + private: + static std::vector> bitmaps; + + static void run_external_app(ui::NavigationView&, std::filesystem::path); +}; + +} // namespace ui + +#endif /*__EXTERNAL_ITEMS_MENU_LOADER_H__*/ diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index d9bb0c47..75d50f66 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -34,7 +34,6 @@ #include "ui_about_simple.hpp" #include "ui_adsb_rx.hpp" #include "ui_adsb_tx.hpp" -#include "ui_afsk_rx.hpp" #include "ui_aprs_rx.hpp" #include "ui_aprs_tx.hpp" #include "ui_bht_tx.hpp" @@ -80,6 +79,7 @@ #include "ui_touchtunes.hpp" #include "ui_view_wav.hpp" #include "ui_whipcalc.hpp" +#include "ui_external_items_menu_loader.hpp" // #include "acars_app.hpp" #include "ais_app.hpp" @@ -492,7 +492,6 @@ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { add_items({ // {"ACARS", Color::yellow(), &bitmap_icon_adsb, [&nav](){ nav.push(); }}, {"ADS-B", Color::green(), &bitmap_icon_adsb, [&nav]() { nav.push(); }}, - {"AFSK", Color::yellow(), &bitmap_icon_modem, [&nav]() { nav.push(); }}, {"AIS Boats", Color::green(), &bitmap_icon_ais, [&nav]() { nav.push(); }}, {"Analog TV", Color::yellow(), &bitmap_icon_sstv, [&nav]() { nav.push(); }}, {"APRS", Color::green(), &bitmap_icon_aprs, [&nav]() { nav.push(); }}, @@ -512,6 +511,10 @@ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { // {"SSTV", Color::dark_grey(), &bitmap_icon_sstv, [&nav](){ nav.push(); }}, // {"TETRA", Color::dark_grey(), &bitmap_icon_tetra, [&nav](){ nav.push(); }}, }); + + for (auto const& gridItem : ExternalItemsMenuLoader::load_external_items(app_location_t::RX, nav)) { + add_item(gridItem); + }; } /* TransmittersMenuView **************************************************/ @@ -540,6 +543,10 @@ TransmittersMenuView::TransmittersMenuView(NavigationView& nav) { {"TEDI/LCR", ui::Color::yellow(), &bitmap_icon_lcr, [&nav]() { nav.push(); }}, {"TouchTune", ui::Color::green(), &bitmap_icon_touchtunes, [&nav]() { nav.push(); }}, }); + + for (auto const& gridItem : ExternalItemsMenuLoader::load_external_items(app_location_t::TX, nav)) { + add_item(gridItem); + }; } /* UtilitiesMenuView *****************************************************/ @@ -565,6 +572,10 @@ UtilitiesMenuView::UtilitiesMenuView(NavigationView& nav) { {"Wipe SD card", Color::red(), &bitmap_icon_tools_wipesd, [&nav]() { nav.push(); }}, }); + for (auto const& gridItem : ExternalItemsMenuLoader::load_external_items(app_location_t::UTILITIES, nav)) { + add_item(gridItem); + }; + set_max_rows(2); // allow wider buttons } diff --git a/firmware/application/ui_navigation.hpp b/firmware/application/ui_navigation.hpp index d51c7329..d7e00afe 100644 --- a/firmware/application/ui_navigation.hpp +++ b/firmware/application/ui_navigation.hpp @@ -79,6 +79,7 @@ class NavigationView : public View { } void push(View* v); + View* push_view(std::unique_ptr new_view); void replace(View* v); void pop(bool trigger_update = true); @@ -107,7 +108,6 @@ class NavigationView : public View { void free_view(); void update_view(); - View* push_view(std::unique_ptr new_view); }; /* Holds widgets and grows dynamically toward the left. diff --git a/firmware/baseband/CMakeLists.txt b/firmware/baseband/CMakeLists.txt index c6ae7d68..905d42c8 100644 --- a/firmware/baseband/CMakeLists.txt +++ b/firmware/baseband/CMakeLists.txt @@ -265,6 +265,7 @@ include_directories(. ${INCDIR}) ####################################################################### set(BASEBAND_IMAGES) +set(BASEBAND_EXTERNAL_IMAGES) macro(DeclareTargets chunk_tag name) project("baseband_${name}") @@ -279,18 +280,38 @@ macro(DeclareTargets chunk_tag name) target_link_libraries(${PROJECT_NAME}.elf ${LIBS}) target_link_libraries(${PROJECT_NAME}.elf -Wl,-Map=${PROJECT_NAME}.map) - add_custom_command( - OUTPUT ${PROJECT_NAME}.bin ${PROJECT_NAME}.img - COMMAND ${CMAKE_OBJCOPY} -O binary ${PROJECT_NAME}.elf ${PROJECT_NAME}.bin - COMMAND ${LZ4} -f -9 ${PROJECT_NAME}.bin ${PROJECT_NAME}.lz4 - COMMAND ${MAKE_IMAGE_CHUNK} ${PROJECT_NAME}.lz4 ${chunk_tag} ${PROJECT_NAME}.img - DEPENDS ${PROJECT_NAME}.elf ${MAKE_IMAGE_CHUNK} - VERBATIM - ) + if(add_to_firmware) + + add_custom_command( + OUTPUT ${chunk_tag}.bin ${PROJECT_NAME}.img + COMMAND ${CMAKE_OBJCOPY} -O binary ${PROJECT_NAME}.elf ${chunk_tag}.bin + COMMAND ${LZ4} -f -9 ${chunk_tag}.bin ${PROJECT_NAME}.lz4 + COMMAND ${MAKE_IMAGE_CHUNK} ${PROJECT_NAME}.lz4 ${chunk_tag} ${PROJECT_NAME}.img + DEPENDS ${PROJECT_NAME}.elf ${MAKE_IMAGE_CHUNK} + VERBATIM + ) + + set(BASEBAND_IMAGES ${BASEBAND_IMAGES} ${PROJECT_NAME}.img) + + else() + + add_custom_command( + OUTPUT ${chunk_tag}.bin + COMMAND ${CMAKE_OBJCOPY} -O binary ${PROJECT_NAME}.elf ${chunk_tag}.bin + DEPENDS ${PROJECT_NAME}.elf + VERBATIM + ) + + set(BASEBAND_EXTERNAL_IMAGES ${BASEBAND_EXTERNAL_IMAGES} ${chunk_tag}.bin) + + endif() + + - set(BASEBAND_IMAGES ${BASEBAND_IMAGES} ${PROJECT_NAME}.img) endmacro() +set(add_to_firmware TRUE) + ### ACARS RX set(MODE_CPPSRC @@ -312,20 +333,13 @@ set(MODE_CPPSRC ) DeclareTargets(PADT adsbtx) -### AFSK +### AFSK TX set(MODE_CPPSRC proc_afsk.cpp ) DeclareTargets(PAFT afsktx) -### AFSK RX - -set(MODE_CPPSRC - proc_afskrx.cpp -) -DeclareTargets(PAFR afskrx) - ### APRS RX set(MODE_CPPSRC @@ -493,13 +507,6 @@ set(MODE_CPPSRC ) DeclareTargets(PSTX sstvtx) -### Test - -set(MODE_CPPSRC - proc_test.cpp -) -DeclareTargets(PTST test) - ### Tones set(MODE_CPPSRC @@ -586,6 +593,24 @@ set(MODE_CPPSRC ) DeclareTargets(PUSB sd_over_usb) +### Place external app and disabled images below so they don't get added to the firmware +set(add_to_firmware FALSE) + +### AFSK RX + +set(MODE_CPPSRC + proc_afskrx.cpp +) +DeclareTargets(PAFR afskrx) + +### Test + +set(MODE_CPPSRC + proc_test.cpp +) +DeclareTargets(PTST test) + + ### HackRF "factory" firmware add_custom_command( @@ -616,7 +641,7 @@ project(baseband) add_custom_command( OUTPUT ${PROJECT_NAME}.img COMMAND cat ${BASEBAND_IMAGES} > ${PROJECT_NAME}.img - DEPENDS ${BASEBAND_IMAGES} + DEPENDS ${BASEBAND_IMAGES} ${BASEBAND_EXTERNAL_IMAGES} DEPENDS hackrf.img terminator.img VERBATIM ) diff --git a/firmware/chibios-portapack/os/ports/GCC/ARMCMx/LPC43xx_M0/ld/LPC43xx_M0.ld b/firmware/chibios-portapack/os/ports/GCC/ARMCMx/LPC43xx_M0/ld/LPC43xx_M0.ld index 4a6d6a60..53ade6f2 100755 --- a/firmware/chibios-portapack/os/ports/GCC/ARMCMx/LPC43xx_M0/ld/LPC43xx_M0.ld +++ b/firmware/chibios-portapack/os/ports/GCC/ARMCMx/LPC43xx_M0/ld/LPC43xx_M0.ld @@ -33,6 +33,9 @@ __ram_end__ = __ram_start__ + __ram_size__; ENTRY(ResetHandler) + /* external apps */ +INCLUDE external.ld + SECTIONS { . = 0; @@ -142,7 +145,7 @@ SECTIONS *(COMMON) . = ALIGN(4); PROVIDE(_bss_end = .); - } > ram + } > ram } PROVIDE(end = .); diff --git a/firmware/common/external_app.hpp b/firmware/common/external_app.hpp new file mode 100644 index 00000000..396574c8 --- /dev/null +++ b/firmware/common/external_app.hpp @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2023 Bernd Herzog + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __EXTERNAL_APPS_H__ +#define __EXTERNAL_APPS_H__ + +#include "ch.h" +#include "ui_navigation.hpp" +#include "spi_image.hpp" + +#define CURRENT_HEADER_VERSION 0x00000001 + +typedef void (*externalAppEntry_t)(ui::NavigationView& nav); + +enum app_location_t : uint32_t { + UTILITIES = 0, + RX, + TX +}; + +struct application_information_t { + uint8_t* memory_location; + externalAppEntry_t externalAppEntry; + uint32_t header_version; + uint32_t app_version; + + uint8_t app_name[16]; + uint8_t bitmap_data[32]; + uint32_t icon_color; + app_location_t menu_location; + + portapack::spi_flash::image_tag_t m4_app_tag; + uint32_t m4_app_offset; +}; + +#endif /*__EXTERNAL_APPS_H__*/ diff --git a/firmware/tools/copy_external_apps.sh b/firmware/tools/copy_external_apps.sh new file mode 100644 index 00000000..15669dc3 --- /dev/null +++ b/firmware/tools/copy_external_apps.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# +# Copyright (C) 2023 Bernd Herzog +# +# This file is part of PortaPack. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +# This script will copy compiled external apps to the Portapack. + +try=1 +while [ $try -le 180 ] +do + if ls /dev/disk/by-id/*Portapack*part1 1> /dev/null 2>&1; then + disk=$(ls /dev/disk/by-id/*Portapack*part1) + part=$(readlink -f $disk) + mountpoint=$(findmnt -f -o TARGET --noheadings $part) + if [[ ! -z "$mountpoint" ]]; then + + echo "Copying external applications to" $mountpoint + mkdir -p $mountpoint/APPS + cp application/*.ppma $mountpoint/APPS + + echo "Unmounting" $mountpoint + umount $mountpoint + + exit + fi + fi + + if [ "$(( $try %5 ))" -eq "1" ]; then + echo "Please start SD over USB app ..." + fi + + sleep 1 + + try=$(( $try + 1 )) +done diff --git a/firmware/tools/export_external_apps.py b/firmware/tools/export_external_apps.py new file mode 100644 index 00000000..068038c4 --- /dev/null +++ b/firmware/tools/export_external_apps.py @@ -0,0 +1,131 @@ +#!/usr/bin/env python3 + +# +# Copyright (C) 2023 Bernd Herzog +# +# This file is part of PortaPack. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +import os +import sys +import struct +import subprocess + +usage_message = """ +PortaPack external app image creator +This script is used in the build process and should never be run manually. +See firmware/application/CMakeLists.txt > COMMAND ${EXPORT_EXTERNAL_APP_IMAGES} + +Usage: +""" + +maximum_application_size = 40*1024 + +if len(sys.argv) < 4: + print(usage_message) + sys.exit(-1) + +def read_image(path): + f = open(path, 'rb') + data = f.read() + f.close() + return data + +def write_image(data, path): + f = open(path, 'wb') + f.write(data) + f.close() + +def patch_image(image_data, search_address, replace_address): + if (len(image_data) % 4) != 0: + print("file size not divideable by 4") + sys.exit(-1) + + external_application_image = bytearray() + + for x in range(int(len(image_data)/4)): + snippet = image_data[x*4:4*(x+1)] + val = int.from_bytes(snippet, byteorder='little') + + # in firmware/application/external/external.ld the origin is set to something like search_address=0xEEE90000 + # if the value is above the search_address and inside a 40kb window (maximum size of an app) we replace it + # with replace_address=(0x1008000 + m4 size) where the app will actually be located. The reason we do this instead just + # using the right address in external.ld is gcc does not permit to use the same memory range multiple times. + if val > search_address and (val - search_address) < maximum_application_size: + relative_address = val - search_address + new_address = replace_address + relative_address + + new_snippet = new_address.to_bytes(4, byteorder='little') + external_application_image += new_snippet + else: + external_application_image += snippet + + return external_application_image + +project_source_dir = sys.argv[1] #/portapack-mayhem/firmware/application +binary_dir = sys.argv[2] #/portapack-mayhem/build/firmware/application +cmake_objcopy = sys.argv[3] + +memory_location_header_position = 0 +externalAppEntry_header_position = 4 +m4_app_tag_header_position = 72 +m4_app_offset_header_position = 76 + +for external_image_prefix in sys.argv[4:]: + + # COMMAND ${CMAKE_OBJCOPY} -v -O binary ${PROJECT_NAME}.elf ${PROJECT_NAME}_ext_pacman.bin --only-section=.external_app_pacman + himg = "{}/external_app_{}.himg".format(binary_dir, external_image_prefix) + subprocess.run([cmake_objcopy, "-v", "-O", "binary", "{}/application.elf".format(binary_dir), himg, "--only-section=.external_app_{}".format(external_image_prefix)]) + + external_application_image = read_image(himg) + + #m4 image @ 0x44 + chunk_data = external_application_image[m4_app_tag_header_position:m4_app_tag_header_position+4] + + # skip m4 if not set + if (chunk_data[0] == 0 and chunk_data[1] == 0 and chunk_data[2] == 0 and chunk_data[3] == 0): + replace_address = 0x10080000 + search_address = int.from_bytes(external_application_image[externalAppEntry_header_position:externalAppEntry_header_position+4], byteorder='little') & 0xFFFF0000 + external_application_image = patch_image(external_application_image, search_address, replace_address) + external_application_image[memory_location_header_position:memory_location_header_position+4] = replace_address.to_bytes(4, byteorder='little') + + write_image(external_application_image, "{}/{}.ppma".format(binary_dir, external_image_prefix)) + continue + + chunk_tag = chunk_data.decode("utf-8") + m4_image = read_image("{}/../baseband/{}.bin".format(binary_dir, chunk_tag)) + app_image_len = len(external_application_image) + external_application_image += m4_image + + if (len(m4_image) % 4) != 0: + print("m4 file size not divideable by 4") + sys.exit(-1) + + replace_address = 0x10080000 + len(m4_image) + search_address = int.from_bytes(external_application_image[externalAppEntry_header_position:externalAppEntry_header_position+4], byteorder='little') & 0xFFFF0000 + external_application_image = patch_image(external_application_image, search_address, replace_address) + + external_application_image[memory_location_header_position:memory_location_header_position+4] = replace_address.to_bytes(4, byteorder='little') + external_application_image[m4_app_offset_header_position:m4_app_offset_header_position+4] = app_image_len.to_bytes(4, byteorder='little') + + if (len(external_application_image) > maximum_application_size) != 0: + print("application {} can not exceed 40kb: {} bytes used".format(external_image_prefix, len(external_application_image))) + sys.exit(-1) + + # write .ppma (portapack mayhem application) + write_image(external_application_image, "{}/{}.ppma".format(binary_dir, external_image_prefix))