From 0d611beda0136984059a4804d5ebe64d7a6ad40b Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Fri, 20 Sep 2019 06:42:13 -0400 Subject: [PATCH 01/14] Minor Clang fixes Minor fixes so that Clang doesn't trip with `-Werror` and `-Wextra`. --- transcoder/basisu.h | 2 +- transcoder/basisu_transcoder.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/transcoder/basisu.h b/transcoder/basisu.h index 58b74df..cff7388 100644 --- a/transcoder/basisu.h +++ b/transcoder/basisu.h @@ -142,7 +142,7 @@ namespace basisu inline bool is_pow2(uint32_t x) { return x && ((x & (x - 1U)) == 0U); } inline bool is_pow2(uint64_t x) { return x && ((x & (x - 1U)) == 0U); } - template inline T open_range_check(T v, T minv, T maxv) { assert(v >= minv && v < maxv); return v; } + template inline T open_range_check(T v, T minv, T maxv) { assert(v >= minv && v < maxv); BASISU_NOTE_UNUSED(minv); BASISU_NOTE_UNUSED(maxv); return v; } template inline T open_range_check(T v, T maxv) { assert(v < maxv); BASISU_NOTE_UNUSED(maxv); return v; } inline uint32_t total_bits(uint32_t v) { uint32_t l = 0; for ( ; v > 0U; ++l) v >>= 1; return l; } diff --git a/transcoder/basisu_transcoder.cpp b/transcoder/basisu_transcoder.cpp index 56e892b..725f33a 100644 --- a/transcoder/basisu_transcoder.cpp +++ b/transcoder/basisu_transcoder.cpp @@ -3078,6 +3078,7 @@ namespace basist const uint32_t min_bits = basisu::minimum(x_bits, y_bits); const uint32_t max_bits = basisu::maximum(x_bits, y_bits); const uint32_t swizzle_mask = (1 << (min_bits * 2)) - 1; + BASISU_NOTE_UNUSED(max_bits); uint32_t block_index = 0; @@ -3261,6 +3262,7 @@ namespace basist const uint32_t min_bits = basisu::minimum(x_bits, y_bits); const uint32_t max_bits = basisu::maximum(x_bits, y_bits); const uint32_t swizzle_mask = (1 << (min_bits * 2)) - 1; + BASISU_NOTE_UNUSED(max_bits); uint32_t block_index = 0; From 9482b1ba9dbf2e410ca7fdbad5578abe44ec414c Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Fri, 20 Sep 2019 15:00:02 -0400 Subject: [PATCH 02/14] Initial commit Added combine script. Created initial Emscripten example. --- contrib/.gitignore | 2 + contrib/single_file_transcoder/.gitignore | 2 + .../basisutranslib-in.cpp | 12 + contrib/single_file_transcoder/combine.sh | 124 ++++ .../create_transcoder.sh | 10 + .../examples/emscripten.cpp | 668 ++++++++++++++++++ .../examples/shell.html | 18 + .../examples/testcard.png | Bin 0 -> 12675 bytes 8 files changed, 836 insertions(+) create mode 100644 contrib/.gitignore create mode 100644 contrib/single_file_transcoder/.gitignore create mode 100644 contrib/single_file_transcoder/basisutranslib-in.cpp create mode 100755 contrib/single_file_transcoder/combine.sh create mode 100755 contrib/single_file_transcoder/create_transcoder.sh create mode 100644 contrib/single_file_transcoder/examples/emscripten.cpp create mode 100644 contrib/single_file_transcoder/examples/shell.html create mode 100755 contrib/single_file_transcoder/examples/testcard.png diff --git a/contrib/.gitignore b/contrib/.gitignore new file mode 100644 index 0000000..61937bd --- /dev/null +++ b/contrib/.gitignore @@ -0,0 +1,2 @@ +# Mac finder +.DS_Store diff --git a/contrib/single_file_transcoder/.gitignore b/contrib/single_file_transcoder/.gitignore new file mode 100644 index 0000000..b16a751 --- /dev/null +++ b/contrib/single_file_transcoder/.gitignore @@ -0,0 +1,2 @@ +# Don't commit the generated lib +basisutranslib.cpp diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp new file mode 100644 index 0000000..0595f10 --- /dev/null +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -0,0 +1,12 @@ +/** + * Basis Universal single file library. Generated using: + * \code + * ./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp + * \endcode + * We can add any build options here, e.g.: + * \code + * #define BASISD_SUPPORT_BC7 0 + * \endcode + */ + +#include "basisu_transcoder.cpp" diff --git a/contrib/single_file_transcoder/combine.sh b/contrib/single_file_transcoder/combine.sh new file mode 100755 index 0000000..00b7b26 --- /dev/null +++ b/contrib/single_file_transcoder/combine.sh @@ -0,0 +1,124 @@ +#!/bin/sh -e + +# Tool to bundle multiple C/C++ source files, inlining any includes. +# +# Note: this POSIX-compliant script is many times slower than the original bash +# implementation (due to the grep calls) but it runs and works everywhere. +# +# TODO: ROOTS and FOUND as arrays (since they fail on paths with spaces) +# +# Released under a CC0 license. + +# Common file roots +ROOTS="./" + +# Files previously visited +FOUND="" + +# Optional destination file (empty string to write to stdout) +DESTN="" + +# Prints the script usage then exits +usage() { + echo "Usage: $0 [-r ] [-o ] infile" + echo " -r file root search paths" + echo " -o output file (otherwise stdout)" + echo "Example: $0 -r ../my/path - r ../other/path -o out.c in.c" + exit 1 +} + +# Tests that the grep implementation works as expected (older OSX grep fails) +test_grep() { + if ! echo '#include "foo"' | grep -Eq '^\s*#\s*include\s*".+"'; then + echo "Aborting: the grep implementation fails to parse include lines" + exit 1 + fi +} + +# Tests if list $1 has item $2 (returning zero on a match) +list_has_item() { + if echo "$1" | grep -Eq "(^|\s*)$2(\$|\s*)"; then + return 0 + else + return 1 + fi +} + +# Adds a new line with the supplied arguments to $DESTN (or stdout) +write_line() { + if [ -n "$DESTN" ]; then + printf '%s\n' "$@" >> "$DESTN" + else + printf '%s\n' "$@" + fi +} + +# Adds the contents of $1 with any of its includes inlined +add_file() { + # Match the path + local file= + if [ -f "$1" ]; then + file="$1" + else + for root in $ROOTS; do + if test -f "$root/$1"; then + file="$root/$1" + fi + done + fi + if [ -n "$file" ]; then + # Read the file + local line= + while IFS= read -r line; do + if echo "$line" | grep -Eq '^\s*#\s*include\s*".+"'; then + # We have an include directive so strip the (first) file + local inc=$(echo "$line" | grep -Eo '".*"' | grep -Eo '\w*(\.?\w+)+' | head -1) + if ! list_has_item "$FOUND" "$inc"; then + # And we've not previously encountered it + FOUND="$FOUND $inc" + write_line "/**** start inlining $inc ****/" + add_file "$inc" + write_line "/**** ended inlining $inc ****/" + else + write_line "/**** skipping file: $inc ****/" + fi + else + # Otherwise write the source line + write_line "$line" + fi + done < "$file" + else + write_line "#error Unable to find \"$1\"" + fi +} + +while getopts ":r:o:" opts; do + case $opts in + r) + ROOTS="$OPTARG $ROOTS" + ;; + o) + DESTN="$OPTARG" + ;; + *) + usage + ;; + esac +done +shift $((OPTIND-1)) + +if [ -n "$1" ]; then + if [ -f "$1" ]; then + if [ -n "$DESTN" ]; then + printf "" > "$DESTN" + fi + test_grep + add_file $1 + else + echo "Input file not found: \"$1\"" + exit 1 + fi +else + usage +fi +exit 0 diff --git a/contrib/single_file_transcoder/create_transcoder.sh b/contrib/single_file_transcoder/create_transcoder.sh new file mode 100755 index 0000000..8033017 --- /dev/null +++ b/contrib/single_file_transcoder/create_transcoder.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "Amalgamating files... this can take a while" +./combine.sh -r "../../transcoder" -o basisutranslib.cpp basisutranslib-in.cpp +# Did combining work? +if [ $? -ne 0 ]; then + echo "Combine script: FAILED" + exit 1 +fi +echo "Combine script: PASSED" diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp new file mode 100644 index 0000000..be957c0 --- /dev/null +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -0,0 +1,668 @@ +/** + * \file emscripten.c + * Emscripten example of using the single-file \c zstddeclib. Draws a rotating + * textured quad with data from the in-line Zstd compressed DXT1 texture (DXT1 + * being hardware compression, further compressed with Zstd). + * \n + * Compile using: + * \code + * export CC_FLAGS="-Wall -Wextra -Werror -Os -g0 -flto --llvm-lto 3 -fno-exceptions -fno-rtti -lGL -DNDEBUG=1" + * export EM_FLAGS="-s ENVIRONMENT=web -s WASM=1 --shell-file shell.html --closure 1" + * emcc $CC_FLAGS $EM_FLAGS -o out.html emscripten.cpp + * \endcode + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "../basisutranslib.cpp" + +using namespace basist; + +static etc1_global_selector_codebook* globalCodebook = NULL; + +//************************* Test Data (DXT texture) **************************/ + +/** + * Basis Universal compressed 256x256 texture source. + * \n + * See \c testcard.png for the original. + */ +static uint8_t const srcBasis[] = { + 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0x66, 0xbb, 0x6c, 0x0d, 0x00, 0x00, + 0x1f, 0x4f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x84, 0x00, 0x64, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, + 0x01, 0x01, 0x99, 0x01, 0x00, 0x00, 0x94, 0x02, 0x00, 0x2d, 0x04, 0x00, + 0x00, 0xb8, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0xe5, 0x04, 0x00, 0x00, 0xd4, 0x08, + 0x00, 0x00, 0x06, 0xda, 0x20, 0x40, 0x2c, 0x80, 0x41, 0x10, 0x04, 0xa0, + 0xe0, 0x3d, 0xd2, 0x45, 0x5b, 0x53, 0x26, 0x35, 0xe1, 0x43, 0x0e, 0x04, + 0x78, 0x04, 0x30, 0x0c, 0x82, 0x30, 0xf0, 0x4a, 0xa1, 0x08, 0xb5, 0x91, + 0x2c, 0xd3, 0x3d, 0x86, 0x3d, 0x10, 0xe0, 0x01, 0x00, 0x31, 0x08, 0x82, + 0xc0, 0x67, 0xe6, 0x46, 0xe7, 0x6e, 0xab, 0x4e, 0x0a, 0x11, 0x01, 0x01, + 0x98, 0x00, 0x00, 0x00, 0x80, 0x20, 0x08, 0x80, 0xf0, 0x3a, 0xbd, 0x01, + 0x1d, 0x80, 0x5d, 0x3d, 0xb3, 0xea, 0x60, 0x61, 0x0c, 0x6d, 0xf0, 0xfe, + 0x7b, 0xd1, 0xae, 0x13, 0xc8, 0xd0, 0x2c, 0x00, 0x90, 0x48, 0xa2, 0x01, + 0x12, 0x24, 0xc8, 0x40, 0xa9, 0x3a, 0x4d, 0x84, 0x80, 0x34, 0x01, 0x69, + 0x02, 0x92, 0xa4, 0x0b, 0x48, 0x8d, 0x2e, 0x09, 0xd5, 0xf5, 0xd7, 0x3d, + 0x9e, 0x86, 0xf4, 0x7c, 0xea, 0x7d, 0x7d, 0x26, 0xd7, 0x51, 0x9a, 0x7f, + 0x8c, 0x1e, 0x92, 0xb7, 0xf3, 0x5c, 0x36, 0x1f, 0xfe, 0x3e, 0x37, 0xd7, + 0x7f, 0x6f, 0x7d, 0xe6, 0x6c, 0x47, 0xcc, 0xec, 0xf6, 0xde, 0x2f, 0x22, + 0x56, 0x44, 0x26, 0x6a, 0x7f, 0x0f, 0x96, 0x31, 0x46, 0xdd, 0xbd, 0x11, + 0xf1, 0x55, 0xf5, 0xcc, 0x2c, 0xee, 0x4e, 0x0d, 0x33, 0x6f, 0xef, 0x7d, + 0xa4, 0x3b, 0x95, 0xeb, 0x66, 0xfc, 0xce, 0x06, 0x96, 0xca, 0x74, 0xee, + 0x5f, 0xd4, 0xdd, 0x5e, 0xcf, 0x43, 0x5f, 0xaf, 0x8c, 0x2f, 0xe1, 0x41, + 0x70, 0x7d, 0xd1, 0x46, 0x0e, 0x54, 0x3d, 0x80, 0xe6, 0xd2, 0xcd, 0x5f, + 0x5c, 0xa7, 0xd4, 0x5b, 0x36, 0xb2, 0x8d, 0xd6, 0xc0, 0x42, 0x04, 0x84, + 0xa0, 0xbc, 0x65, 0x4d, 0x01, 0x6c, 0x87, 0xed, 0x15, 0x79, 0x67, 0x6d, + 0x21, 0x4a, 0x42, 0x48, 0x51, 0x9f, 0xbb, 0xda, 0xd5, 0xa1, 0x8f, 0xda, + 0x8c, 0xdc, 0x9a, 0xf3, 0xf4, 0x91, 0xfd, 0x13, 0xb4, 0x5e, 0x59, 0x3f, + 0x05, 0xcc, 0x6c, 0xbf, 0xb7, 0xab, 0xd6, 0xb6, 0xfc, 0xe7, 0xac, 0xd6, + 0xfa, 0xd3, 0x6c, 0xcc, 0xea, 0xce, 0xd6, 0x14, 0xa2, 0x53, 0x66, 0x5c, + 0x2b, 0xaa, 0x65, 0xa3, 0x35, 0x85, 0x84, 0xbc, 0x81, 0x81, 0x07, 0x03, + 0xc3, 0x00, 0x17, 0xfb, 0x27, 0x04, 0x2d, 0x29, 0x08, 0x04, 0xa2, 0xaf, + 0x08, 0xe8, 0x07, 0xe6, 0x7c, 0x68, 0x5d, 0x55, 0x00, 0x00, 0xf0, 0xdf, + 0x39, 0xf7, 0xdc, 0x98, 0xbc, 0xde, 0xd0, 0x93, 0xf8, 0x1a, 0xd2, 0x36, + 0x94, 0x4b, 0x9a, 0xea, 0x1b, 0x32, 0x44, 0x5d, 0x02, 0x2e, 0xe7, 0x41, + 0x28, 0x56, 0x29, 0xbe, 0x42, 0xaa, 0x05, 0x97, 0xe2, 0x1f, 0x70, 0x10, + 0xb4, 0xe8, 0x07, 0xb8, 0x14, 0x87, 0x20, 0x0e, 0xef, 0x49, 0xad, 0x28, + 0x1d, 0x9e, 0xd0, 0x21, 0x64, 0x2a, 0x74, 0xe9, 0x78, 0x5b, 0x45, 0xc4, + 0x0e, 0x16, 0xfa, 0x05, 0x1e, 0xba, 0x74, 0xec, 0x07, 0xa8, 0xba, 0xaa, + 0xaa, 0x6a, 0x01, 0x0a, 0xc6, 0x21, 0x04, 0x29, 0xa5, 0x94, 0x73, 0xce, + 0xa5, 0x94, 0x32, 0x18, 0x0c, 0x06, 0x6d, 0xdb, 0xb6, 0x7b, 0x38, 0x07, + 0x5d, 0xd7, 0xa1, 0x12, 0x63, 0x38, 0x06, 0x8e, 0x63, 0x8c, 0x2a, 0xe0, + 0x24, 0x20, 0x02, 0x11, 0x41, 0x45, 0xa4, 0x8a, 0x2a, 0x15, 0x50, 0x35, + 0x68, 0x34, 0x68, 0x9a, 0xa6, 0x81, 0x06, 0x9a, 0x10, 0xea, 0x95, 0x94, + 0x52, 0x9a, 0x4f, 0xca, 0x97, 0x1a, 0x73, 0x6e, 0x14, 0xca, 0x33, 0x85, + 0x3b, 0x18, 0x15, 0x0a, 0x29, 0x06, 0x42, 0x8c, 0x89, 0x00, 0x01, 0x31, + 0x22, 0x40, 0x20, 0xc5, 0x18, 0x08, 0x31, 0x51, 0xba, 0xa2, 0x74, 0xa5, + 0x74, 0x78, 0x81, 0x3b, 0x14, 0xb5, 0x40, 0xa8, 0xfc, 0x14, 0x83, 0x9f, + 0x11, 0x14, 0x18, 0x33, 0x9e, 0x12, 0xc6, 0x3c, 0x0b, 0x4a, 0xbe, 0x50, + 0xba, 0x4c, 0x29, 0xb9, 0xcd, 0xb9, 0xcd, 0xa5, 0x90, 0xbb, 0x32, 0x2f, + 0x85, 0x9e, 0x0c, 0x85, 0x5e, 0xe9, 0x91, 0xe9, 0x9d, 0xe8, 0xca, 0x75, + 0x60, 0xa6, 0x08, 0x63, 0x4c, 0xc7, 0x8c, 0x03, 0xe1, 0x19, 0xb3, 0x49, + 0x41, 0x37, 0x55, 0x4c, 0x64, 0xd4, 0x18, 0x22, 0x08, 0x3b, 0x84, 0xb3, + 0x81, 0x18, 0xec, 0x70, 0x1e, 0x5b, 0x2b, 0x2c, 0xad, 0x13, 0x04, 0x04, + 0x19, 0x35, 0xce, 0xec, 0x10, 0xce, 0xee, 0x08, 0xd1, 0x79, 0x56, 0xb6, + 0x58, 0xaf, 0xab, 0xe8, 0x9a, 0xf1, 0x3d, 0xa5, 0x6f, 0x73, 0x6e, 0xfb, + 0xe2, 0xde, 0xd8, 0x35, 0xeb, 0xbb, 0xd1, 0xde, 0xe9, 0x96, 0xf9, 0xc2, + 0x42, 0x67, 0xda, 0x71, 0x30, 0x3c, 0x14, 0x42, 0x80, 0x73, 0x5d, 0xd7, + 0xed, 0xa1, 0x74, 0xf4, 0x05, 0x5d, 0x29, 0x25, 0xe7, 0x9c, 0xa5, 0x04, + 0x69, 0x10, 0x85, 0xed, 0x14, 0xb4, 0xa2, 0x4b, 0x83, 0x10, 0x84, 0xc1, + 0xd2, 0x1e, 0xab, 0x6b, 0xd6, 0xb6, 0x2b, 0xb6, 0xd4, 0xc3, 0xdd, 0x55, + 0xf6, 0x92, 0x9d, 0xf7, 0xea, 0xba, 0x91, 0x62, 0x7e, 0xb0, 0xbc, 0x7e, + 0x60, 0x25, 0xa4, 0x49, 0x8c, 0x5d, 0xef, 0xd6, 0xe7, 0x65, 0x66, 0xc6, + 0xf3, 0x25, 0xed, 0x9c, 0x0f, 0x09, 0x47, 0x51, 0x3c, 0xda, 0x94, 0xd4, + 0x29, 0xa8, 0x82, 0xeb, 0x95, 0xe4, 0x90, 0xe3, 0x43, 0xc7, 0x1c, 0xaa, + 0xe2, 0x47, 0x66, 0x58, 0xfb, 0x75, 0xea, 0xf1, 0x95, 0xc5, 0xed, 0x07, + 0x6d, 0xf7, 0xf7, 0xe9, 0x9c, 0x59, 0xcc, 0xb9, 0xf9, 0xcd, 0x9f, 0x5e, + 0x96, 0xec, 0xe0, 0xfe, 0x62, 0x7f, 0xa5, 0x4d, 0xfb, 0x7d, 0xc7, 0x46, + 0xc3, 0xd3, 0x5f, 0x68, 0xde, 0x78, 0xfd, 0x9d, 0x5a, 0x3d, 0x60, 0x70, + 0x61, 0xad, 0x36, 0x1c, 0x0e, 0x87, 0x17, 0xb7, 0x36, 0xdf, 0xcc, 0x39, + 0xe7, 0xa7, 0x0f, 0x4a, 0xce, 0xe5, 0xa5, 0xcc, 0xd7, 0xa3, 0xd4, 0x4f, + 0x62, 0xd7, 0xf6, 0xa1, 0xaa, 0xaa, 0xcd, 0xa6, 0x97, 0x92, 0x57, 0xd3, + 0xfb, 0x45, 0xb9, 0xc1, 0x6e, 0x51, 0x0a, 0xe5, 0x51, 0x4a, 0x92, 0xcd, + 0xa3, 0x28, 0x1e, 0x05, 0x3e, 0x60, 0xbe, 0x63, 0xe9, 0x39, 0x33, 0xb3, + 0xd1, 0xd1, 0xa7, 0xcb, 0x5b, 0x54, 0x07, 0x96, 0x96, 0xe7, 0xbb, 0x28, + 0x1b, 0xcb, 0xb9, 0x0f, 0xab, 0x5d, 0x89, 0x4b, 0x53, 0x4f, 0xfe, 0xd2, + 0xf5, 0xfb, 0x9a, 0x0d, 0xff, 0x7f, 0x96, 0xe4, 0xd1, 0xae, 0xed, 0xfd, + 0x4f, 0x84, 0x53, 0x4f, 0x70, 0x86, 0x8d, 0xcb, 0x3c, 0x7c, 0xe8, 0x8f, + 0xaf, 0xee, 0xba, 0x73, 0xf7, 0xf7, 0xf7, 0xe3, 0xe0, 0xdd, 0xff, 0x16, + 0xa3, 0x65, 0x45, 0x1d, 0x06, 0xf5, 0xe4, 0x63, 0x4f, 0x4e, 0x05, 0x67, + 0x70, 0x79, 0x83, 0x7f, 0x2e, 0x5d, 0x74, 0xf3, 0xc7, 0xf6, 0x95, 0x94, + 0xf4, 0xcd, 0x66, 0x55, 0x55, 0xa1, 0x6f, 0xbb, 0x38, 0xe9, 0xd3, 0xe8, + 0x51, 0x5e, 0x7c, 0x77, 0x7b, 0x71, 0xe5, 0xf1, 0xc9, 0xec, 0xb7, 0x1f, + 0x54, 0x69, 0x49, 0xd4, 0x86, 0xd7, 0x06, 0x35, 0x97, 0x8e, 0x62, 0xd8, + 0xf9, 0xfe, 0xdb, 0x6d, 0xdb, 0x87, 0xa3, 0x41, 0x7a, 0xfb, 0xdc, 0x64, + 0xf8, 0xd6, 0xea, 0xd5, 0xb3, 0x23, 0x46, 0x5f, 0xdc, 0xba, 0x75, 0x15, + 0x3d, 0x3d, 0xbd, 0xbe, 0xef, 0xd1, 0xf7, 0xfd, 0xf5, 0x97, 0xff, 0x9e, + 0x00, 0x01, 0x41, 0x9c, 0x01, 0xcd, 0xf2, 0x0a, 0xc3, 0xf0, 0x45, 0xf3, + 0x74, 0xea, 0x0b, 0x7a, 0x7b, 0x7b, 0xc8, 0x58, 0xfa, 0x0f, 0x0a, 0x4d, + 0x70, 0x0a, 0x3e, 0xa5, 0xb8, 0x75, 0x7d, 0x79, 0xa7, 0x70, 0xc6, 0xae, + 0x4a, 0x5a, 0xec, 0x96, 0xa5, 0x63, 0x7e, 0x4e, 0xc5, 0xd1, 0x03, 0xf9, + 0x36, 0x85, 0xf4, 0x31, 0x64, 0x94, 0x8c, 0x5d, 0x05, 0x0d, 0x59, 0x22, + 0xdf, 0x21, 0x04, 0xe2, 0x50, 0x68, 0x14, 0x51, 0x14, 0x40, 0x73, 0xee, + 0x7b, 0x93, 0x5d, 0x77, 0x35, 0x18, 0x25, 0x4a, 0x2c, 0xec, 0xd4, 0xce, + 0x42, 0x10, 0x41, 0xc4, 0x52, 0x48, 0x61, 0x10, 0xb1, 0x54, 0x41, 0x0b, + 0x21, 0x61, 0x43, 0x50, 0x97, 0x38, 0x91, 0xf9, 0xbd, 0x7b, 0x84, 0x82, + 0x58, 0x98, 0xab, 0xef, 0x35, 0x86, 0xf1, 0x18, 0x42, 0x7d, 0x15, 0x89, + 0x03, 0x07, 0x62, 0x08, 0xad, 0x39, 0xd4, 0x14, 0xe2, 0xb3, 0x06, 0x50, + 0x33, 0xa8, 0x79, 0x14, 0x31, 0xe8, 0xe0, 0xc8, 0xf5, 0xbb, 0xee, 0xb5, + 0xd6, 0x5e, 0xcf, 0xfb, 0x3c, 0x62, 0xaf, 0x2d, 0xde, 0x66, 0x3b, 0x90, + 0xa2, 0x95, 0x88, 0x72, 0xf0, 0xdf, 0x0e, 0x2b, 0xb9, 0x45, 0x80, 0x49, + 0x00, 0x84, 0x20, 0x08, 0x00, 0x01, 0x70, 0x4f, 0x23, 0x31, 0xb0, 0xf8, + 0xc1, 0x2b, 0x47, 0x20, 0x00, 0x7e, 0x27, 0xd9, 0xd3, 0x1e, 0xc0, 0x66, + 0x37, 0x19, 0x6c, 0x31, 0xc8, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, + 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, + 0x4b, 0xc2, 0x90, 0x48, 0x24, 0x12, 0x89, 0x44, 0x22, 0x91, 0x48, 0x24, + 0x12, 0x89, 0x44, 0x22, 0x21, 0x8b, 0xae, 0x3d, 0xda, 0x51, 0xf3, 0xef, + 0x47, 0x19, 0x7f, 0x1b, 0xd9, 0xff, 0x31, 0x36, 0x4b, 0x7a, 0x8c, 0x41, + 0x6a, 0x8c, 0xa1, 0xa1, 0x31, 0x86, 0x2e, 0xf3, 0x72, 0xaf, 0xfd, 0xfc, + 0x9d, 0x6f, 0x7d, 0xf8, 0xa6, 0x57, 0xbf, 0xf2, 0xa9, 0x55, 0x17, 0xaa, + 0x57, 0xbb, 0x2a, 0x4f, 0x6b, 0xdf, 0xb8, 0x9c, 0x7e, 0xff, 0xb2, 0xc7, + 0xef, 0xd8, 0xfb, 0x20, 0x34, 0xc6, 0x50, 0x6a, 0x8c, 0xa1, 0xd4, 0x18, + 0x43, 0xa9, 0x31, 0x86, 0x52, 0x63, 0x0c, 0xa5, 0xc6, 0x13, 0xd2, 0xd1, + 0x3d, 0xd4, 0xce, 0x91, 0x76, 0xb9, 0x6b, 0xfb, 0x7f, 0xbb, 0x5c, 0xda, + 0x5f, 0xb6, 0x0d, 0xfe, 0xb0, 0x28, 0xe5, 0x75, 0xbe, 0xcb, 0x63, 0xaf, + 0xd4, 0x96, 0x6e, 0x51, 0x62, 0x59, 0x94, 0x96, 0x45, 0x89, 0xe5, 0x94, + 0x57, 0x78, 0xcc, 0x75, 0x4f, 0x85, 0xd4, 0x16, 0xa5, 0x68, 0x4a, 0x84, + 0x01, 0x61, 0x40, 0x0b, 0xa1, 0xd6, 0x5a, 0x44, 0x4c, 0xd1, 0x5a, 0x44, + 0x6b, 0x11, 0xad, 0xed, 0x22, 0x1e, 0x5a, 0x5e, 0xe0, 0xe8, 0x71, 0xd7, + 0x7a, 0x54, 0xc2, 0xb6, 0x04, 0x2d, 0x1a, 0x53, 0xa8, 0x35, 0xa9, 0x35, + 0xa9, 0x2d, 0x4d, 0x2d, 0xa2, 0xfd, 0x50, 0x4f, 0xf1, 0xe8, 0xa3, 0xf3, + 0xc5, 0xd3, 0xa6, 0x10, 0x73, 0x44, 0x40, 0x04, 0x44, 0x80, 0x5a, 0xa0, + 0x63, 0x1c, 0xf3, 0xa0, 0xbb, 0x1c, 0x78, 0xe0, 0xd6, 0x3f, 0x0f, 0x9c, + 0xca, 0x9f, 0xb6, 0x4c, 0xdb, 0xd7, 0xb7, 0x1d, 0x3c, 0xb3, 0x6a, 0x6b, + 0x4b, 0xda, 0xda, 0x92, 0xb6, 0xb6, 0xa4, 0xad, 0x2d, 0x69, 0x6b, 0x4b, + 0xda, 0xda, 0xd2, 0xf2, 0xac, 0x67, 0x4f, 0xd2, 0x56, 0x91, 0x26, 0x4b, + 0x05, 0xe4, 0x62, 0x13, 0xd4, 0x58, 0xb2, 0x0d, 0xf7, 0xc7, 0x39, 0x98, + 0xf5, 0xec, 0x25, 0xc3, 0xc9, 0xc8, 0xe7, 0xff, 0xfd, 0xf5, 0x31, 0x46, + 0x24, 0x63, 0x0c, 0xa5, 0xc6, 0x18, 0x4a, 0x8d, 0x31, 0x94, 0x1a, 0x63, + 0x28, 0x35, 0xc6, 0x50, 0x6a, 0x8c, 0xa1, 0xd4, 0xb8, 0x6a, 0x27, 0xe7, + 0xa5, 0x3f, 0xed, 0xd6, 0x7d, 0xb7, 0x05, 0xc8, 0x11, 0x20, 0xd5, 0x88, + 0xa4, 0x38, 0x48, 0x8b, 0xd2, 0x54, 0x8d, 0x48, 0x47, 0xdf, 0xbb, 0x2f, + 0x2a, 0x4d, 0xc9, 0xa1, 0x14, 0xa1, 0x14, 0xa1, 0x14, 0xa1, 0x14, 0xa1, + 0x14, 0xa1, 0x14, 0x31, 0xee, 0xf7, 0xa6, 0xeb, 0xb5, 0x40, 0xa4, 0x50, + 0x6a, 0x19, 0x35, 0x08, 0x85, 0x0c, 0x52, 0xa1, 0xfd, 0x74, 0x68, 0x3e, + 0xf6, 0xfc, 0x7e, 0x54, 0x85, 0x3c, 0x97, 0x25, 0x5b, 0xb2, 0x25, 0x5b, + 0xb2, 0x25, 0x5b, 0xb2, 0x25, 0x2f, 0x56, 0x8b, 0x38, 0xf2, 0xfd, 0xf5, + 0x7b, 0xdb, 0xcb, 0x40, 0x24, 0x5a, 0x28, 0x64, 0x65, 0xc6, 0xd2, 0xa6, + 0xa5, 0x05, 0xcc, 0x97, 0x3e, 0xfb, 0xda, 0xd7, 0xd3, 0xf5, 0xbd, 0x45, + 0xef, 0xa8, 0x77, 0xa9, 0x77, 0xa9, 0x77, 0xa9, 0x77, 0xa9, 0x77, 0xa9, + 0x77, 0xa9, 0x77, 0xa9, 0xbf, 0xba, 0x07, 0x8f, 0x98, 0xf7, 0x58, 0x48, + 0x1d, 0x75, 0x64, 0x83, 0x1a, 0x53, 0x96, 0xaa, 0xcc, 0xb8, 0xde, 0x9c, + 0xf4, 0x09, 0xbf, 0x45, 0xad, 0x0e, 0xf2, 0x85, 0x57, 0xf8, 0x2d, 0xb9, + 0xb0, 0x58, 0x2c, 0x16, 0x7f, 0xc7, 0x3b, 0x3e, 0xf6, 0xfa, 0x2e, 0x5f, + 0xe2, 0x35, 0x5f, 0x91, 0xa8, 0x52, 0xd2, 0xd5, 0x54, 0xa3, 0x2e, 0x5a, + 0x90, 0x4e, 0xef, 0xf6, 0x44, 0x50, 0xcb, 0x42, 0xae, 0x22, 0xc3, 0xc6, + 0x8b, 0xf7, 0x7b, 0x26, 0x2b, 0x6d, 0x18, 0x49, 0xcd, 0x0e, 0x42, 0xc1, + 0xbe, 0x1d, 0x14, 0x1f, 0x3e, 0xbc, 0x67, 0x07, 0xa1, 0x2c, 0x08, 0x05, + 0xe4, 0x14, 0x42, 0x08, 0x21, 0x9a, 0xbd, 0x40, 0xbc, 0x3d, 0x7f, 0x58, + 0x7a, 0xdc, 0xac, 0x90, 0x15, 0x48, 0xa3, 0xc5, 0x24, 0x3d, 0xfd, 0xe8, + 0xaf, 0xdd, 0x3b, 0xea, 0x41, 0xee, 0x41, 0xce, 0x1e, 0xf4, 0x9b, 0x8d, + 0x9f, 0x6f, 0x44, 0x97, 0x7a, 0x60, 0x82, 0x1a, 0x53, 0x96, 0x7a, 0x82, + 0xcf, 0x79, 0xf6, 0xe4, 0xd8, 0xaa, 0x5e, 0xd3, 0x55, 0xd5, 0x90, 0x9b, + 0x10, 0xb9, 0x10, 0x42, 0x08, 0x21, 0xaa, 0x94, 0x74, 0x3d, 0x3c, 0xaa, + 0x17, 0xfb, 0x3f, 0x7f, 0xe2, 0x2a, 0x25, 0x5d, 0x1d, 0xd5, 0xa8, 0x2b, + 0xb5, 0xdf, 0x97, 0xb9, 0xdf, 0x0a, 0x15, 0x51, 0x64, 0x09, 0x72, 0x5a, + 0x13, 0xd2, 0x1b, 0x9f, 0x1d, 0xd7, 0x4a, 0xce, 0xa8, 0x59, 0x3b, 0xf9, + 0xfc, 0xdf, 0xaf, 0x08, 0x50, 0xb3, 0x83, 0x50, 0x16, 0x84, 0x02, 0x72, + 0x0a, 0x21, 0x84, 0x10, 0xcd, 0x0e, 0x42, 0xd2, 0xfb, 0x9f, 0xfb, 0xfd, + 0xb2, 0x59, 0x21, 0x2b, 0x33, 0x5a, 0xb4, 0x7d, 0x3f, 0x9d, 0xa1, 0x05, + 0x3d, 0x98, 0x82, 0xdc, 0x83, 0x9c, 0x53, 0x30, 0x05, 0x3a, 0xbc, 0xe8, + 0x84, 0x26, 0x64, 0x83, 0x1a, 0xe3, 0xa1, 0xdf, 0xbe, 0xdc, 0x66, 0xa8, + 0x51, 0xd2, 0x55, 0xd5, 0x90, 0x9b, 0x10, 0xb9, 0x10, 0x42, 0x08, 0x21, + 0xaa, 0x3b, 0xa9, 0xaa, 0x06, 0xdd, 0xff, 0x3f, 0x31, 0x2f, 0x55, 0x4d, + 0x35, 0xea, 0x3a, 0x2f, 0xcc, 0xb5, 0x33, 0x45, 0xd4, 0xb2, 0x90, 0xcb, + 0x9a, 0xc8, 0xfc, 0xbd, 0xd5, 0xf8, 0x95, 0x3b, 0x22, 0x90, 0x74, 0xe3, + 0x38, 0xf7, 0x43, 0x61, 0x65, 0x68, 0xe1, 0x20, 0x94, 0x05, 0xa1, 0x80, + 0x9c, 0x42, 0x08, 0x21, 0x44, 0xb3, 0x83, 0x50, 0x86, 0x7e, 0xe3, 0x7c, + 0xe8, 0xb1, 0xac, 0x40, 0x9a, 0xf2, 0x8e, 0x9e, 0x6b, 0x64, 0x4a, 0x8b, + 0x1e, 0xe4, 0x4e, 0x2e, 0x07, 0xa5, 0x18, 0xc5, 0xeb, 0x22, 0x4a, 0xb1, + 0x91, 0xd6, 0xf1, 0x82, 0xb3, 0x98, 0xaa, 0x48, 0x54, 0xef, 0x59, 0x8a, + 0xc9, 0x0b, 0xf0, 0x06, 0x70, 0x4f, 0x0e, 0xc0, 0x1b, 0xc0, 0x23, 0xd5, + 0x7b, 0x96, 0xa2, 0x0c, 0x9f, 0x7a, 0xbb, 0xfc, 0x9f, 0x4f, 0xb6, 0x23, + 0x33, 0x1e, 0x88, 0x9a, 0x91, 0xba, 0x28, 0x82, 0x6c, 0xe4, 0x28, 0x4a, + 0x91, 0xb1, 0xf2, 0x41, 0xce, 0xe8, 0x6c, 0x39, 0xeb, 0x19, 0x8f, 0x85, + 0x02, 0xa4, 0xe6, 0x08, 0x2c, 0x43, 0x36, 0x10, 0x20, 0x72, 0x00, 0x02, + 0x44, 0x0b, 0x85, 0xac, 0x0c, 0xcd, 0x7a, 0xf3, 0x06, 0x2b, 0x33, 0xdf, + 0x66, 0xaf, 0xa8, 0x53, 0x20, 0x35, 0x53, 0xc8, 0x5e, 0x4c, 0x7e, 0xc3, + 0x14, 0x52, 0xa1, 0xdd, 0xe9, 0xfa, 0xc8, 0x06, 0xfb, 0xf2, 0xed, 0x65, + 0x64, 0x9f, 0x94, 0xa1, 0xc6, 0x94, 0x65, 0x52, 0x5e, 0x80, 0x00, 0x91, + 0x03, 0x10, 0x20, 0xaa, 0x3b, 0xe9, 0x22, 0x51, 0x9d, 0x0f, 0xaa, 0xb7, + 0x70, 0x33, 0x52, 0xfb, 0x0d, 0xa6, 0x91, 0xaa, 0x28, 0x82, 0x6c, 0xe4, + 0xb0, 0x52, 0x64, 0x42, 0xc9, 0x57, 0x1a, 0x49, 0x6f, 0x3d, 0x11, 0xa1, + 0x50, 0x80, 0xd4, 0xec, 0x20, 0x14, 0x90, 0x0d, 0x04, 0x88, 0x1c, 0x80, + 0x00, 0xd1, 0xac, 0x50, 0x28, 0x43, 0x0b, 0xed, 0xf4, 0x6a, 0x19, 0xa9, + 0xbc, 0xab, 0xc5, 0xc8, 0x4c, 0xa8, 0x93, 0x3d, 0xc8, 0x5f, 0x0f, 0x3a, + 0xa9, 0xa3, 0x7a, 0xe7, 0xc0, 0x04, 0x77, 0x27, 0xab, 0xe9, 0x21, 0x83, + 0x54, 0x93, 0x93, 0xee, 0x62, 0x66, 0x33, 0x6f, 0x44, 0x44, 0x44, 0x44, + 0xd5, 0x49, 0x75, 0x91, 0xa8, 0xce, 0x3f, 0x7a, 0x9e, 0x93, 0x94, 0x55, + 0xa9, 0x55, 0xa3, 0x2a, 0x8a, 0x7c, 0xac, 0xe4, 0x8c, 0x95, 0x8e, 0x98, + 0xd1, 0x1b, 0x08, 0xd9, 0x27, 0x4b, 0x23, 0x68, 0x76, 0x10, 0xca, 0x67, + 0xba, 0x66, 0x85, 0xec, 0xae, 0x05, 0xa8, 0xd9, 0xbf, 0xd3, 0x3d, 0x57, + 0x99, 0x38, 0xc7, 0xd2, 0xc6, 0xd2, 0x82, 0xa9, 0x45, 0x0f, 0xf2, 0xee, + 0x41, 0x6f, 0x81, 0x3a, 0xba, 0x7d, 0x60, 0x83, 0xbb, 0x27, 0xd5, 0xf4, + 0x50, 0x0b, 0x50, 0x4d, 0x91, 0xf4, 0x0e, 0x78, 0x53, 0x74, 0x81, 0x4d, + 0xe8, 0x02, 0x9b, 0xd0, 0x05, 0x36, 0xa1, 0x0b, 0x6c, 0x42, 0x17, 0xd8, + 0x84, 0x2e, 0xb0, 0x09, 0x5d, 0x60, 0x13, 0xba, 0xc0, 0x26, 0x54, 0x77, + 0xd2, 0x15, 0x20, 0x55, 0x67, 0xa7, 0x17, 0xb9, 0x91, 0x3c, 0xa1, 0xc1, + 0x62, 0xa4, 0x2a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x56, 0x8a, 0x6a, 0x14, 0x06, 0xbe, 0x8a, 0xa4, 0xfb, 0xf6, 0x5b, + 0x42, 0x56, 0x35, 0xa8, 0x45, 0x04, 0x5e, 0xad, 0xe9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x85, 0x42, 0x56, 0x35, 0xa8, 0x55, + 0x76, 0x7a, 0x85, 0x48, 0xe5, 0x33, 0xcb, 0xd2, 0x46, 0x0b, 0x34, 0xb5, + 0xe8, 0x6a, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0xe8, 0x2d, 0x50, 0x47, 0xf5, 0xb6, 0xc8, 0x04, 0xcf, 0xe7, 0x5b, 0xb2, + 0xf7, 0xab, 0x65, 0x68, 0x69, 0x04, 0x35, 0x2d, 0xd9, 0x7a, 0x3f, 0x6b, + 0xd2, 0x0d, 0xe9, 0x3d, 0x5b, 0x75, 0x35, 0x1d, 0xff, 0xd6, 0xdf, 0x2d, + 0xff, 0xbe, 0xf5, 0xe0, 0x61, 0xdd, 0xfd, 0x73, 0xae, 0xa6, 0x18, 0x51, + 0xce, 0xd2, 0xe4, 0x09, 0x12, 0xff, 0xa3, 0x5c, 0xfb, 0x8a, 0xac, 0xcc, + 0x50, 0xbd, 0x65, 0x74, 0x05, 0x48, 0xd5, 0xe3, 0x4b, 0xbb, 0xea, 0x35, + 0xdc, 0x05, 0xd2, 0x72, 0x96, 0x53, 0xa3, 0x55, 0x0b, 0x64, 0x4d, 0x0d, + 0xad, 0x59, 0xa1, 0x75, 0x7d, 0x78, 0x78, 0x9f, 0xee, 0x9a, 0xd7, 0xc6, + 0xa6, 0xde, 0xd3, 0x76, 0x9e, 0x2b, 0xa5, 0xb5, 0x91, 0xaa, 0xf8, 0xc3, + 0x98, 0x33, 0xda, 0xd2, 0x0f, 0x39, 0x56, 0x55, 0x80, 0xd4, 0x22, 0x02, + 0xaf, 0x55, 0xeb, 0xda, 0xaf, 0xaf, 0x67, 0xad, 0x5a, 0xdf, 0xac, 0xb6, + 0x4f, 0xeb, 0x30, 0xaf, 0x75, 0xb5, 0xa2, 0x93, 0xd5, 0xe5, 0x6a, 0xc5, + 0xeb, 0x4e, 0x5d, 0x2b, 0x22, 0x2b, 0x33, 0xb4, 0x50, 0x68, 0x96, 0x41, + 0xba, 0xb1, 0x5f, 0x7c, 0xb0, 0x8a, 0x34, 0xbd, 0x3e, 0x76, 0xc6, 0x7a, + 0xae, 0x2e, 0xdb, 0x4b, 0xef, 0x5a, 0x97, 0x7e, 0xa5, 0x1a, 0x5e, 0x66, + 0x4c, 0x9d, 0xeb, 0xc5, 0x76, 0x9d, 0xb5, 0xa3, 0x59, 0x73, 0x35, 0x59, + 0x4a, 0x8b, 0x3e, 0x57, 0x53, 0xdb, 0x79, 0xce, 0x59, 0x90, 0x45, 0x37, + 0xd3, 0x55, 0xfe, 0xf0, 0x29, 0x43, 0x2d, 0x40, 0x55, 0x76, 0x72, 0xbb, + 0xdf, 0x7e, 0x26, 0xa2, 0x1b, 0x65, 0xee, 0xb4, 0xae, 0xf5, 0x36, 0xa8, + 0x9d, 0x7b, 0x97, 0xed, 0x5b, 0x1a, 0xf7, 0xea, 0x04, 0xff, 0xef, 0x98, + 0xbf, 0x9e, 0xb3, 0x43, 0xef, 0x08, 0x77, 0x1a, 0x32, 0x21, 0x91, 0x95, + 0x19, 0xaa, 0xee, 0xe4, 0x76, 0x17, 0x89, 0x53, 0xe7, 0x0b, 0xcf, 0x62, + 0x29, 0x26, 0xb3, 0xb6, 0x3c, 0x78, 0xb5, 0xb4, 0x60, 0xd6, 0xcc, 0xfe, + 0x72, 0x04, 0xaf, 0x9a, 0x7a, 0xfd, 0xe3, 0x76, 0x7c, 0x38, 0x2c, 0x1b, + 0x8e, 0xf7, 0x51, 0xaa, 0x4a, 0x29, 0xa5, 0x98, 0x7c, 0xcf, 0x4a, 0xab, + 0x62, 0xb4, 0x7a, 0x00, 0xac, 0x48, 0x6a, 0x2b, 0xde, 0xe7, 0x45, 0x6e, + 0xa2, 0x8d, 0x00, 0xb5, 0x4a, 0x68, 0x75, 0x1a, 0xa1, 0x8d, 0xb9, 0x7c, + 0x5a, 0x71, 0xb8, 0x75, 0xe5, 0xbf, 0x0e, 0x59, 0x4e, 0x57, 0x6c, 0xac, + 0x35, 0xd6, 0x88, 0x8d, 0x9d, 0xd5, 0xba, 0xf2, 0xaa, 0x2a, 0x59, 0x79, + 0x32, 0x43, 0x2b, 0x0a, 0xcd, 0x22, 0xb1, 0x1f, 0x6e, 0x3d, 0x1e, 0xef, + 0x7b, 0xaa, 0x48, 0xd3, 0x7a, 0xbe, 0xfd, 0xd2, 0x46, 0xa0, 0x52, 0x3d, + 0x1c, 0xab, 0x8d, 0xa9, 0xa3, 0x46, 0x71, 0x2b, 0x6b, 0xcf, 0xa5, 0x6e, + 0x97, 0x0d, 0x08, 0x41, 0xd6, 0xd5, 0x5c, 0x3b, 0x69, 0xff, 0xe9, 0xad, + 0x29, 0xc8, 0x14, 0xd7, 0xf6, 0xce, 0xc5, 0x76, 0xdb, 0xe7, 0x75, 0x3b, + 0x4d, 0x23, 0xa8, 0xed, 0xed, 0x5c, 0x86, 0x23, 0x20, 0x6f, 0xb0, 0xcc, + 0x62, 0x80, 0xda, 0x6e, 0x19, 0x5d, 0x2d, 0x1e, 0x28, 0x17, 0xba, 0x1e, + 0x96, 0x48, 0x8a, 0x23, 0x90, 0xd6, 0x4a, 0xd3, 0xee, 0xe1, 0x4b, 0x8b, + 0x59, 0xa9, 0xe4, 0x53, 0x95, 0x6a, 0x8b, 0xe7, 0x87, 0xe6, 0xd7, 0x55, + 0xa9, 0x66, 0xd4, 0xaa, 0x42, 0xf5, 0x6c, 0xba, 0xf8, 0x4f, 0x7f, 0x0d, + 0x5a, 0x25, 0x54, 0x95, 0x0f, 0x20, 0x66, 0x11, 0xd0, 0xaa, 0x42, 0xb5, + 0x82, 0x7d, 0xf9, 0xc1, 0xcb, 0xd3, 0xb7, 0x4a, 0xa8, 0x2a, 0xb3, 0x9e, + 0x4a, 0x3f, 0x89, 0x1f, 0xed, 0xc1, 0x6c, 0x4a, 0x31, 0xf9, 0xaf, 0xa8, + 0xc4, 0x9b, 0x0b, 0x7a, 0x9f, 0x73, 0x0a, 0x2a, 0x81, 0x0d, 0x6a, 0x59, + 0xb2, 0x4d, 0xaa, 0xbe, 0x7b, 0xe4, 0x9e, 0xb5, 0x44, 0x52, 0xfc, 0xf8, + 0x80, 0x4d, 0x7a, 0x99, 0xc3, 0xe4, 0x61, 0x7a, 0xc1, 0x58, 0xb2, 0x33, + 0x47, 0x35, 0x27, 0xfd, 0x7e, 0x7d, 0xa9, 0xfb, 0x1f, 0x7c, 0xec, 0xa5, + 0x42, 0xa9, 0x6e, 0x8c, 0x34, 0xdb, 0xcb, 0x66, 0x8b, 0xd7, 0x97, 0xe4, + 0xcb, 0xd5, 0xea, 0xde, 0x82, 0xfc, 0x04, 0x12, 0xd9, 0xab, 0xa8, 0x1c, + 0x7f, 0xb5, 0x0f, 0x54, 0x44, 0x85, 0xa4, 0x56, 0x08, 0x15, 0x55, 0x2f, + 0x5c, 0x1c, 0x72, 0x58, 0xdf, 0xcd, 0x91, 0xaa, 0x02, 0xb2, 0xcd, 0x21, + 0x12, 0x22, 0x3b, 0x73, 0xb4, 0xc2, 0x7e, 0xf8, 0xef, 0xea, 0x13, 0xcf, + 0x8e, 0x77, 0x2a, 0xa6, 0x55, 0x42, 0x45, 0xa4, 0x69, 0x69, 0x73, 0x0b, + 0xf4, 0xf6, 0xf7, 0x44, 0xab, 0x73, 0x35, 0x79, 0xb6, 0x40, 0x64, 0x2f, + 0x2d, 0x3f, 0xe9, 0x0d, 0xd7, 0xc5, 0xa8, 0x04, 0x15, 0x99, 0xa0, 0xfa, + 0x92, 0x6d, 0x53, 0x4b, 0x23, 0xf8, 0x71, 0xde, 0x3c, 0xbc, 0xc4, 0xbb, + 0x07, 0xbf, 0xd8, 0x1d, 0xe6, 0x63, 0x69, 0x19, 0x9b, 0x0a, 0xc8, 0x63, + 0x06, 0x6d, 0x76, 0x8a, 0x95, 0x27, 0x33, 0x5c, 0x5f, 0x95, 0x48, 0x36, + 0xf7, 0x2f, 0xf6, 0xe7, 0x23, 0x8f, 0xd8, 0xfd, 0x47, 0x53, 0x80, 0x54, + 0x76, 0xd2, 0x1d, 0x81, 0x34, 0xd9, 0x62, 0xff, 0x5e, 0x8c, 0xf9, 0xb6, + 0xdf, 0xa3, 0xba, 0xd2, 0x6c, 0xf2, 0x20, 0x91, 0xb5, 0x88, 0xee, 0xfa, + 0xe8, 0xf1, 0xfb, 0x7f, 0xb5, 0x20, 0x59, 0x53, 0x33, 0x6a, 0x55, 0xa1, + 0xaa, 0x62, 0x90, 0x48, 0x9c, 0xfd, 0x79, 0xf3, 0xcf, 0x5e, 0xa8, 0x28, + 0x20, 0x8f, 0x19, 0x44, 0x42, 0x64, 0x65, 0x86, 0x6f, 0x75, 0xbc, 0xfb, + 0x2f, 0xdd, 0xf7, 0x6f, 0xee, 0x75, 0x31, 0xe4, 0x26, 0x5a, 0x29, 0xe1, + 0x2a, 0xd2, 0xbc, 0xb4, 0xcd, 0x16, 0x88, 0xb4, 0xaf, 0x77, 0xf8, 0x6c, + 0x9f, 0xab, 0xc9, 0x42, 0x22, 0xeb, 0xe5, 0xd9, 0xf9, 0x54, 0x1c, 0xab, + 0x04, 0xb9, 0xd7, 0x16, 0x35, 0xb0, 0xa8, 0x36, 0x97, 0x6c, 0xd3, 0xe8, + 0x91, 0xf4, 0xd1, 0x95, 0xea, 0xa3, 0xeb, 0x42, 0x6d, 0x9f, 0x2b, 0x4f, + 0xe2, 0x6e, 0x07, 0x9d, 0xfa, 0x7f, 0x5d, 0xa9, 0x3e, 0xba, 0x52, 0x7d, + 0x74, 0xa5, 0xfa, 0xe8, 0x4a, 0xf5, 0xd1, 0x95, 0xea, 0x9f, 0xbb, 0xbe, + 0x2c, 0x97, 0xfd, 0xf1, 0x65, 0x2d, 0x4a, 0xf5, 0x61, 0xa5, 0xca, 0x80, + 0x94, 0x87, 0x95, 0xb2, 0x29, 0x46, 0x9b, 0x2e, 0x6d, 0xee, 0x06, 0xb5, + 0x28, 0x95, 0xa2, 0x54, 0x4a, 0x5e, 0xf9, 0x7d, 0x37, 0xb6, 0x52, 0x41, + 0x64, 0x2b, 0xd9, 0x4a, 0xb6, 0x92, 0xeb, 0xd9, 0xa6, 0x8f, 0x1f, 0x5c, + 0x31, 0xb0, 0x06, 0x6b, 0xb0, 0x06, 0x6b, 0x28, 0x16, 0x6a, 0xa5, 0x84, + 0x3d, 0x47, 0x29, 0x76, 0x29, 0x76, 0x29, 0xf6, 0x52, 0x2c, 0x8b, 0xf3, + 0xa6, 0xdf, 0xbd, 0xe5, 0xfd, 0x4f, 0xcf, 0xef, 0x28, 0x65, 0x67, 0xff, + 0x5b, 0xca, 0x57, 0xfb, 0x6b, 0x29, 0x47, 0xf6, 0x41, 0x9e, 0xf9, 0xbc, + 0x3f, 0x7f, 0xe0, 0x66, 0xcb, 0x99, 0x70, 0xe0, 0x59, 0x8a, 0x84, 0x0d, + 0x36, 0xd8, 0xa0, 0x62, 0x34, 0x2f, 0x6d, 0xb3, 0x06, 0xdd, 0x52, 0x01, + 0xd9, 0x92, 0xad, 0x73, 0xbf, 0xe6, 0xad, 0x5f, 0xf8, 0xbc, 0x37, 0xf2, + 0xe9, 0x9a, 0xc5, 0x0d, 0xb6, 0xcf, 0x68, 0x9f, 0x9b, 0xbe, 0x78, 0xbb, + 0x77, 0xee, 0x15, 0xb2, 0x25, 0x5b, 0xb2, 0x25, 0x5b, 0xb2, 0x25, 0x17, + 0x9b, 0xea, 0x27, 0x06, 0xc9, 0x18, 0x24, 0x4b, 0xc2, 0x90, 0xb0, 0x24, + 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, + 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0x48, 0x24, 0x12, 0x89, 0x44, + 0x22, 0x91, 0x48, 0x24, 0x12, 0x89, 0x44, 0x22, 0x21 +}; + +//*************************** Program and Shaders ***************************/ + +/** + * Program object ID. + */ +static GLuint progId = 0; + +/** + * Vertex shader ID. + */ +static GLuint vertId = 0; + +/** + * Fragment shader ID. + */ +static GLuint fragId = 0; + +//********************************* Uniforms *********************************/ + +/** + * Quad rotation angle ID. + */ +static GLint uRotId = -1; + +/** + * Draw colour ID. + */ +static GLint uTx0Id = -1; + +//******************************* Shader Source ******************************/ + +/** + * Vertex shader to draw texture mapped polys with an applied rotation. + */ +static GLchar const vertShader2D[] = +#if GL_ES_VERSION_2_0 + "#version 100\n" + "precision mediump float;\n" +#else + "#version 120\n" +#endif + "uniform float uRot;" // rotation + "attribute vec2 aPos;" // vertex position coords + "attribute vec2 aUV0;" // vertex texture UV0 + "varying vec2 vUV0;" // (passed to fragment shader) + "void main() {" + " float cosA = cos(radians(uRot));" + " float sinA = sin(radians(uRot));" + " mat3 rot = mat3(cosA, -sinA, 0.0," + " sinA, cosA, 0.0," + " 0.0, 0.0, 1.0);" + " gl_Position = vec4(rot * vec3(aPos, 1.0), 1.0);" + " vUV0 = aUV0;" + "}"; + +/** + * Fragment shader for the above polys. + */ +static GLchar const fragShader2D[] = +#if GL_ES_VERSION_2_0 + "#version 100\n" + "precision mediump float;\n" +#else + "#version 120\n" +#endif + "uniform sampler2D uTx0;" + "varying vec2 vUV0;" // (passed from fragment shader) + "void main() {" + " gl_FragColor = texture2D(uTx0, vUV0);" + "}"; + +/** + * Helper to compile a shader. + * + * \param type shader type + * \param text shader source + * \return the shader ID (or zero if compilation failed) + */ +static GLuint compileShader(GLenum const type, const GLchar* text) { + GLuint shader = glCreateShader(type); + if (shader) { + glShaderSource (shader, 1, &text, NULL); + glCompileShader(shader); + GLint compiled; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); + if (compiled) { + return shader; + } else { + GLint logLen; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &logLen); + if (logLen > 1) { + GLchar* logStr = static_cast(malloc(logLen)); + glGetShaderInfoLog(shader, logLen, NULL, logStr); + #ifndef NDEBUG + printf("Shader compilation error: %s\n", logStr); + #endif + free(logStr); + } + glDeleteShader(shader); + } + } + return 0; +} + +//********************************** Helpers *********************************/ + +/** + * Vertex position index. + */ +#define GL_VERT_POSXY_ID 0 + +/** + * Vertex UV0 index. + */ +#define GL_VERT_TXUV0_ID 1 + + /** + * \c GL vec2 storage type. + */ +struct vec2 { + float x; + float y; +}; + +/** + * Combined 2D vertex and 2D texture coordinates. + */ +struct posTex2d { + struct vec2 pos; + struct vec2 uv0; +}; + +//****************************************************************************/ + +/** + * Current quad rotation angle (in degrees, updated per frame). + */ +static float rotDeg = 0.0f; + +/** + * Emscripten (single) GL context. + */ +static EMSCRIPTEN_WEBGL_CONTEXT_HANDLE glCtx = 0; + +/** + * Emscripten resize handler. + */ +static EM_BOOL resize(int type, const EmscriptenUiEvent* e, void* data) { + double surfaceW; + double surfaceH; + if (emscripten_get_element_css_size ("#canvas", &surfaceW, &surfaceH) == EMSCRIPTEN_RESULT_SUCCESS) { + emscripten_set_canvas_element_size("#canvas", surfaceW, surfaceH); + if (glCtx) { + glViewport(0, 0, (int) surfaceW, (int) surfaceH); + } + } + (void) type; + (void) data; + (void) e; + return EM_FALSE; +} + +/** + * Boilerplate to create a WebGL context. + */ +static EM_BOOL initContext() { + // Default attributes + EmscriptenWebGLContextAttributes attr; + emscripten_webgl_init_context_attributes(&attr); + if ((glCtx = emscripten_webgl_create_context("#canvas", &attr))) { + // Bind the context and fire a resize to get the initial size + emscripten_webgl_make_context_current(glCtx); + emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, NULL, EM_FALSE, resize); + resize(0, NULL, NULL); + return EM_TRUE; + } + return EM_FALSE; +} + +/** + * Called once per frame (clears the screen and draws the rotating quad). + */ +static void tick() { + glClearColor(1.0f, 0.0f, 1.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + if (uRotId >= 0) { + glUniform1f(uRotId, rotDeg); + rotDeg += 0.1f; + if (rotDeg >= 360.0f) { + rotDeg -= 360.0f; + } + } + + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); + glFlush(); +} + +/** + * Creates the texture. + */ +bool upload(GLuint name, const uint8_t * data, size_t size, transcoder_texture_format type = cTFBC1) { + basisu_transcoder_init(); + if (!globalCodebook) { + globalCodebook = new etc1_global_selector_codebook(g_global_selector_cb_size, g_global_selector_cb); + } + basisu_transcoder transcoder(globalCodebook); + if (transcoder.validate_header(data, size)) { + basisu_image_info info; + if (transcoder.get_image_info(data, size, info, 0)) { + uint32_t descW, descH, blocks; + if (transcoder.get_image_level_desc(data, size, 0, 0, descW, descH, blocks)) { + basisu_file_info fileInfo; + transcoder.get_file_info(data, size, fileInfo); + if (transcoder.start_transcoding(data, size)) { + uint32_t decSize = basis_get_bytes_per_block(type) * blocks; + if (void* decBuf = malloc(decSize)) { + if (transcoder.transcode_image_level(data, size, 0, 0, decBuf, blocks, type)) { + GLenum glType; + switch (type) { + case cTFBC1: + glType = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; + break; + case cTFPVRTC1_4_RGB: + glType = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + break; + default: + glType = GL_FALSE; + } + if (glType != GL_FALSE) { + glBindTexture(GL_TEXTURE_2D, name); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glCompressedTexImage2D(GL_TEXTURE_2D, 0, + glType, descW, descH, 0, decSize, decBuf); + } + free(decBuf); + return glType != GL_FALSE; + } + } + } + } + } + } + return false; +} + +/** + * Creates the GL context, shaders and quad data, decompresses the Zstd data + * and 'uploads' the resulting texture. + * + * As a (naive) comparison, removing Zstd and building with "-Os -g0 s WASM=1 + * -lGL emscripten.c" results in a 15kB WebAssembly file; re-adding Zstd + * increases the Wasm by 26kB. + */ +int main() { + if (initContext()) { + // Compile shaders and set the initial GL state + if ((progId = glCreateProgram())) { + vertId = compileShader(GL_VERTEX_SHADER, vertShader2D); + fragId = compileShader(GL_FRAGMENT_SHADER, fragShader2D); + + glBindAttribLocation(progId, GL_VERT_POSXY_ID, "aPos"); + glBindAttribLocation(progId, GL_VERT_TXUV0_ID, "aUV0"); + + glAttachShader(progId, vertId); + glAttachShader(progId, fragId); + glLinkProgram (progId); + glUseProgram (progId); + uRotId = glGetUniformLocation(progId, "uRot"); + uTx0Id = glGetUniformLocation(progId, "uTx0"); + if (uTx0Id >= 0) { + glUniform1i(uTx0Id, 0); + } + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glDisable(GL_DITHER); + + glCullFace(GL_BACK); + glEnable(GL_CULL_FACE); + } + + GLuint vertsBuf = 0; + GLuint indexBuf = 0; + GLuint txName = 0; + // Create the textured quad (vert positions then UVs) + struct posTex2d verts2d[] = { + {{-0.85f, -0.85f}, {0.0f, 0.0f}}, // BL + {{ 0.85f, -0.85f}, {1.0f, 0.0f}}, // BR + {{-0.85f, 0.85f}, {0.0f, 1.0f}}, // TL + {{ 0.85f, 0.85f}, {1.0f, 1.0f}}, // TR + }; + uint16_t index2d[] = { + 0, 1, 2, + 2, 1, 3, + }; + glGenBuffers(1, &vertsBuf); + glBindBuffer(GL_ARRAY_BUFFER, vertsBuf); + glBufferData(GL_ARRAY_BUFFER, + sizeof(verts2d), verts2d, GL_STATIC_DRAW); + glVertexAttribPointer(GL_VERT_POSXY_ID, 2, + GL_FLOAT, GL_FALSE, sizeof(struct posTex2d), 0); + glVertexAttribPointer(GL_VERT_TXUV0_ID, 2, + GL_FLOAT, GL_FALSE, sizeof(struct posTex2d), + (void*) offsetof(struct posTex2d, uv0)); + glGenBuffers(1, &indexBuf); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuf); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, + sizeof(index2d), index2d, GL_STATIC_DRAW); + glEnableVertexAttribArray(GL_VERT_POSXY_ID); + glEnableVertexAttribArray(GL_VERT_TXUV0_ID); + + transcoder_texture_format type = cTFRGB565; + if (emscripten_webgl_enable_extension(glCtx, "WEBKIT_WEBGL_compressed_texture_pvrtc")) { + printf("Has PVRTC!\n"); + type = cTFPVRTC1_4_RGB; + } else { + if (emscripten_webgl_enable_extension(glCtx, "WEBGL_compressed_texture_s3tc")) { + printf("Has BC1!\n"); + type = cTFBC1; + } + } + glGenTextures(1, &txName); + if (upload(txName, srcBasis, sizeof srcBasis, type)) { + printf("Decoded!\n"); + } + + emscripten_set_main_loop(tick, 0, EM_FALSE); + emscripten_exit_with_live_runtime(); + } else { + printf("Failed to init WebGL!\n"); + } + return EXIT_FAILURE; +} diff --git a/contrib/single_file_transcoder/examples/shell.html b/contrib/single_file_transcoder/examples/shell.html new file mode 100644 index 0000000..0e4c5c3 --- /dev/null +++ b/contrib/single_file_transcoder/examples/shell.html @@ -0,0 +1,18 @@ + + + + + + + + Emscripten Shell + + + + +{{{ SCRIPT }}} + + diff --git a/contrib/single_file_transcoder/examples/testcard.png b/contrib/single_file_transcoder/examples/testcard.png new file mode 100755 index 0000000000000000000000000000000000000000..43088bb169697b7ef55841da016b1f1beda3ef68 GIT binary patch literal 12675 zcmc(`2UL^W)+qXgUZnRPiUJBG^iV@bQ4o|WA_NFUdhZw{G^L0lMLGgXQIM(>30*;? z2!iz9oAl26*n6M-pZ|_??tk8UcZ{1sk}qq`wdP#2t-02mMCs~iQjoEd0RTX8^{Q5zS6a~LXU9X#X0024N#Tx>=N@E7wa_#kvJ&m<*$y&KMiJ+`qEYTvq zPOcy{0LUYKT~SsJXiumm+ScA#foG$(fd^`Dt-xa>sSVe5RYlv`U-x%M-}TqgxAJ$e zlCkDNDnjLbWx)xY(4Hu$ual#*hpevx&mZ&3g3lMtFdpb1Af65iJjxdcp~l*}P*oRq zG*nVVO4v$NLJ}%1BO)p#E+Hc$1QmmeB4BU?OjKN0R7zF?E-NMm{p-a8Vsp2)k-ej) z@fR-emjaKSr>Cnd4CdqGBjO`2;^J-#6P1yXfx*RKVq(G|gs_L7vnR?|*x7^kA2X<- zJ*?dAT|MnxoS_#pqAXp!JQa9AO8;Dflk4BpI(z)ZCXit;Uz96MR0Mvpq(1TOo1G%*o4DE<^LOXkUfUu%}!-8DW*8Us(Ury`f^f$DJr@A*t(O+x(m(U*iey(WP z9khpwm%9~O-5bQn`wzlAJnx|Yi#7kja1i|O!LD{Lo-Q7CF8_uJe|P^kR(RUm{2PQ9 zJ^u|9?Q8#UKred!26dHHbw{H-UEK9uTpa(QJG%d%4XUbop(`>_0V8{7YZo66!Hc#3 zH3qGQ@#oFG+ z?|%ffwvx4Rad$$2va@$W*`i^t&bEJG)7F-~;q2jwa<)R>P*dOmNfoiTx0aQbLCCPs|yuHgUtA|+5TUM_&;OjpW}V(&>*}1H+uUgn1_pv zrw_^qoKubsoTT8>m#AOiD z($)x2djFpK|7J-4AF2OqdMi7Wvn?9jk6=9ic0E=u&faMEf0BqR${hu6Luhvo1s)rB z7bhsn)z#77>JP<)c{^MG<=y|*WvHhM^uH|k-{P@GyW9U0=l&VX-y}f)590eD<@BF9 zlK&fWf?e#ef0_{Nf3>bZf2;k;OpOci{IPS%{wq8BPc;$T%49*u__wS4f9KTx#P9O| z*EwD&&L0c^r%>Y`O`t1$|R>%ni0|4-c-B453_Z?mfBK6f* zuh}ceEq_L#a*6b&6bT<6$#v?cSV~@OOT4n0`usv6ixLsXLc{(iMgNEug!ukZx5oxT zHjdo+8q>&FEVqO;*e=3EQbh5Hy8`;3;JR)Fku(9{2>+1xN_UfRIgs z9YpfOwU0u0+4ed6a2JbG*KUWB`k(Fn=0Up#-F1q5e0+~JeSLlH>=v_>L-FwNmRD9* zmY3Hz?VO#RA3pTo>D8P%s-6h0EiW(6%Oi{pyUlWTcGmQ!x>`EW#>S>8GhlBuq+i8X zsRN&w659`*8>x0NZwRhWB$jV_(K%7L@{SS6xrPbT)6;AEeG^tsfMtv{e()e8DT#mc zv%`WQ$>e-js>0=wcURp#Ji3PA%A{Ep+^XTZ`T37GmEfD6GA>yP#k@rryhRRNRdRCj z;-X#F=cFVfFRw~h&U>DAW9f+$Jq8MKPo9t+T3c8^zf2l695JvXk5|hzUVkVoEG#Rd zegDaOjrAu78BXKi@Gyp5Ml6H4w6M6iI5&3|7lPl@)@fEK{%e8`N|l$F*Yumsr4Ev= z3G+>1qg3n>X2gyEX=#OL(XRB{eH-xC2q8e38V>-T*4@S&9zZ?bF;nZNHK4A^OKnfM$^O!asI z>9ySNw>{5+3}%sfRi#LZmK!rcB+)q-s-O` zh%TN4qX59c3x!(De@jscTKt7}AVxuq-rxUKh9)115V!eeTxvQ&705F?A zT*xH8YkPXM+qBA%6Zg?;#n903XSQktI36GEyES`*9upiK*9fG4bUo?Sh-VEP z%%{2#uzW$U1Y5N*Q^stP?9fwcud445Zq(Zh?CKf4G4?u*cyz1zUO!Fn>BcWZGcK9Q z4MVf@H%a@5QG&9Yb(I{wPQfRqrwd)FNeKxA>AO*M{MbhA=s2IA-SP49yZN_LBpnR( z^m;!B9eHuGNOZRM% zpq5BkS(%(kgk8#UD3(J`OH1q7tM6(a9^1&X-*E>A2hq{dzh~NQZEaV4+LV$Ma9C2h ztV4S{JKy~=pZL@FcnR_e$bP(j!hVuH;5%S^vb40+v-#+7F3G^a;ET#&&bxO``|D$e zhlfuYg&$L*2H%@0_z@1_4?%i+dy9-poSmG^8iEzd%;hjO7}gN~kl_&7CQckgY*&n8 zTJh{)#>B+LnX95$v!c3sWAqbU;B?;2r1`nIY+yAiL^=3ck`6YMO7Q^jQRorNa;ov) zEu=Q3tTdc>8yfcIo^*&tJNA8mvqtOf{FlXFg4ghu7t6a9Lqol~yV&XEm~;zm*d=(Y@KU^)-H<;B?_wGye35u%DyfVpbtUH&yqI07em| z8+qQKm^wV#ch+Xh&zd?CuTi66<-yi(wLP|%B=#mO{NOd<-xwJ=X=JF=3Hy9DH80M= zp~3fz4Osr&ENuJTyk>8!V@bE+US~#lQ?_P1_RPklqbi8$5#m=DA5*yM3b|Qxwr!r8 z!jbNDfcc!6(2C8==S5A~YgN#;dyrMX?;mK&Cmx;Gzx4T5xwXt5k)J6ptvPsDorqj{ zU_Pk}LCl;2KUH*)+}x<%9Cg!b=QY8yE}7qRB*!_XXD#jRFq1OAYuBERWq-&#S)xLk zZQ%3q^Wz^koE@uT5j`svn|J6}Wuu*~{U zURYRrD7)8#5N`7=IgFf1#pFv#nvyR`R$KOX_Fm)B?tKVmt{gPvYew&(-15}A8@k6h z2+G#7n-(_|NwfJW=y8ZgKPQ5$Czbb=Txna$NUhx%1hK%;iHlavjT7 zUgI?3gY~biD}jM0qlUl(Y~9JW=E}O1GvYJX3L7f?R3=kGYCt$>77d%8%fK_1v}(+P zD3@%EJZv%3q%pI|ZPT8p~XcSw;lE@&|_TSMLzq+(?x{Ko8bbe|;gs8hkn0Tbs;kEYJVt^!y`# zhMcPcZgDd^ZcKW{XGC%R>+gZ#V`Az(^+(H0?9(*Y3 z>45#V;qon@-~;IoOS-efa{MCd-rFZugKVU~3!+}%_2R`qk>?AxZ_f7{*LHnUKb%pY zs%?+Sjd-8#GLb)Eo=n!$J0^#E40mrAiewhnM8AwECD+or&5)Flc5abRNdONvUOnx7 zJ%OxYDxyGXuF7mSF2?V-x8CZh00QeN8q$w9k9Y%EO-)O`Q+v0JCAO`eu5g)bK5m>W zGJ^=E${&LSt0s|uXrlJkYz$MCb~f{~n7_-)fZGfS<>Hi{8*4@^J$0q`4nE#XxWO`o z(z{2GD`X+}PDAQ>yrEnnor3lcn9Dt{^_uE7a?k@_uSbn~9>EQ1o3asUwU>oFKXSYw zT!jKK*j=8?dCrd`es;k~&)vGb5y6r>h?xi>aHollz-b7JY9neQ}@C29oZ z*;MZWQZ2WwqTd8GEAQTvsoAfM6H7X;HtUn#sc?~P&08UPmy>gKV%U^@D;Pi`8<@-k z-DcWiQc|jhtUq$%>ZcZuob2uWw!5TFO-+wq1UCd?1n=hS8yZfpSCJ$EAEmvP^^;^8 zKY#xGBVW7o>(|CtN*@U(g7(cGKD?UD{hkIl`}KwLW22G>trs1Vl9D)FLIOP#39hq~ zd^M9-GuA>9dOxx`f(oB1EJffA8B|8*Q+9TCVIkQHFr}hzWQ0!@67!uAx3lykjtd#f zfN_<rqnnr8-p+a>zN5~Fd^sw@cZ!h|}qHvn#K zZZ|i#h41OjIhu9^IE~4RkSd)UbK}L8kl#Q09zW%zxd$nwK?o9{WeoxBv*Yzz7z{>5 z&XFw$@bl}W4c*1XjS;}zXTMZcRdsY|3AthOfiwb}SXRl74|qU4YCEpyicY#L;Yr1w zNYNlZ7|E<>M{t(ij1>jV3*_ONRFDII>m~oFr{sME@QhgkG^~m z3tD;K{h=&y{#)<<(X$L+=T?8rn+*SDFf{Aw9lE*lmnha=1%o@TrR6jzrr!OX<7Ip> zR%~r)nOudbbOOP6H&0LB`DQAa6Fz(POxM6*U^JRdk+*_;(iV-LOBS_Sg#n8u7jau8 z4XY*!H8u3XYE1}Ks*;Z%KZ3pyb;u(T`;-aR*4DNc6sDB<{^^q^HGbPRU<{QAQ<<@Q z_z>?sp4FNl2HfYTr!9r(JQ&SZh}#IVNuZsYnmF| z%WFoM4>;3f66lpH`8hdw(oa+u32_D%LYqGo@giem!)Hs4X=GIl3>YpNfQXv9I`&Tb zY+g{u_S~RvnIH#8N8#b&Kl}SFQg}SEU=R=<76u78zJ{UU)lj;(2taqjVq+=oDnsh) zAKX|~U;i^q3dkrI0dyUvdNLBv(quf?U!BzqGJ%0p=7Vvoq=o5Y2sI~!ZGviZWa7*l zRCsBZ@rpFr_rywwhG5}0REjuoDHHxH!r$k2fk{;YBBJpcFY*=IY&pOM#BRPgzMGQ| z#>@#+%7MMd*G6HGEaK>%O0G-nRc1hAW22XsmvJmfI^GaDdsUr$U!PA*Ow0l8#o$#! z$_OlWNB|?}vu?r7<4G}DI=4?`OsfutB7Fbs6m)D}~CH+!?l{SYD^%ri^lu3wKK#bM6lRB-T=*vV*AmI_EPPIjmu;T-37CzbS}1 zf0zv6gU3gOiRjCbJ+-9PezKj<0U=^NDD`keW~RA=Ls6dLc#}_&;X8M``HMX+`{^#A z@Y$3;G6-xSya3t)K#B#-S)oirdO?C&BK49II=7lQg%E-yA}HL|Dp%a15a8 z>FI&n^+1I*u{swrAK@hHO=5C{Qom9+f8f^t6z~sfrNzrO0RoOMV}^%^H#c1`Kzox0 z)9%p%qtSRui%da&y_J_C_iMf14Kg|LQV$bw&t?RyLnuc?Fre>BOib+Q(G}9haw<&b z=U?f(HZ5~0qHR0PHbRvypq>lYi#JK6NWmiMPJh9FL+1Dl(a6kvL(T;wL)Hd=&{N==T?S(1R z*saVTHr+k?_>OA<`0T=%3=4Y&9C#%l1-f99a+{#NU$%*N-M;$+SG9ibAeUgLsq4!%fL12yOauZUKT;p@P zr~_47mO7et&*;t+X6crX)T3Jc7BwY(&QbMEAw{As;3qf0Dr@m?;ByC%(;%T*N zVm(Bw2woNkwS7z!6k5W35mtP`${_5Y7ti0}bX88Hq8!0v`>aEQmfP{?TgwVTZ%Wa9 zkI32Qx_URRpRCg`FrcL&`uh49pkk6JaxHC$3_o&qw=h|$rY5XO7`r4AIV}=7p06gW zPNKiZ{dbaA`+++Cn;?XzP&2Mxs&?B*xUuM^}+|2kIQrtW2Tce(pEc6^KIk(U; zn?88p%mtB2+ zjyp2%Q5m_A7k9#wio_Z^o){jQUpg;F+_s%#s<&BqBg_1tHa1!EVtiv5F^Zfa9z1JG{O-Fi{IKNir+AJG6x`#DA;TxiXrkHeO3FeW7s#~dwx(>;g-e$aS z&ch~x^->U!vlRS9oj~1}Ua!`r@jh}W&h-hCkS9W)6Yn+qT)$NgC)MObFeu`Jtrr0r zah&fM=ptWeY!?(tCcUGK|5R+I@=GJ>syt6wwl<-rNsd_j#!N2F&8wd##t`#&3`z6? zcu&?x?>GqW5$kX1A+9`q$fOc~Ig{A(XBVmMTkD||Jyveduq@{3_86H{#jrckJ{7rtO{I?Fh0`r`2Zwm^8 z^84PM+{f6_2wu5_PIbSU9B8JAc&SNU6`;BaB;pwzFGBVW0FBo)_n%;~1WqR!SBG}%zwDohde?^V6>BwOUxT!*623Q=mz z{S=Qh-rQ7f3!MxGt2$IJ65m45wQ>W7SX+6upOcd_J8Lcc5lBeEpF~K}hOj8=ITH1r zP}dUpwHd>^qvRuVz0>kE3~DfiU2vNwt(@A~`HoWpakHCUh^xlRS}vA}Ua?=RAGR6q zg{b|AFk-)qU~J(L6eRsPyuWgM6$3_J>gwvByh{*QE2H(3^$gO{H~1*ysGEWZ@>(ye zm6hdPF>v)GH4slL3q9N7V_wnI)reKWd#*!3=ruT0bU#VtgQ`BC)J!J{Bcs85WWnmP z?kYY3fV8r-#1!o@Dc!tzQ(e6kjQ7lBFLn5qVrAy_X%suY2^);4Bv8B&?P?X%7Ky)i zr|H9Xi~i@w*Jq^lUojY7Vds-hf!olx8!zjxOAcc zg1N{QokL46${4Mxu!(C|z>}!Y7H`!Zd)ESHN+-HY3fjMiZ!+&S{SeF~5#3A>*9tBb z#Eq-5XE5kTrbLM6yJ)-ZCJYiXAlkT?{Vds{eDBmnufVm~=c!~duaq3`PM@%x;aaSx za`iqZtxUqGOLDJ#-P|X$Z9!@avb8==140S zIlneznw}8x69px%aLQT+Ojtlon<;qvG28L-T6-*qxZK9KT_C!fUpq-`yHP)~)3!;2 zP_0=_9h1p%8prC+PBYLO|{nTK|w0e7L>Bk#>?N_rZ zu;dr=rZPZ+YhgB<_oTU}mW&i8R&2$JnO{HSOHNuDC+04Z)~`tKP(N{8G=&%>@JLw&B`hIwgDif|3#!PtS^*?T_{K zEq@w()#0x7RC^WlawJHFnUO9p)Oy6B53K;a9N_InM?Ezd>e1ic1=Q|QK^LBheMg{( zzT{%dtJ!_n(c35R@nH7fNp;D%dD2`M5s zI&8RAJ33f(Udh_DVHFs0H!SigK0g~sMJ~+EUA}UqW}c!D3%813uVq%ZrhGY_5tTwR zG-sF)Rhqj++7WwSi-XYM3Rp)&1yR8#mSj*>)%Y1v~S!*kP*|X&957p_m z*v0a+dhYm4(Pj|Z9fLwA|5h>epoq{FJaTSrZGktUwQYo1TC0x(zjzXEl`%F6S<-}F zX(_ntH)OVUN4&FZR`YF=;nl%TT6%?tDkg(UobUL*Jr;YJuF?M5a#A2RiQCn3YH@tF-or?NQoX zO?rF8tbDJ7-ElD3z<9psV~+kkvs0czZ)q-t z-z$jYT=3XJUQ~@aKLxUg?Hn9#YH7KDCTuCNv-r%3iL4@B+S6!qD{j7?&>Hvc%bQ>R zK&(}$R_jM%gZ=DFvU=Zzp2V0?SfSS|+?Ml)!2l@<=X+4`(>Yqg9%uzUSgQ?jH!=})~qV~as2(%*JZ zR_tvyNKP07DEv&Jt<&5IPMKXA#w;btp7tYx1{&{&cK6a&pU*7vw^N<_q$j(71i%CD z!|xO7XeP1(@pacfk3vDzHq$A<~QHJ_XW+LGh!Br*_gmf)4X zjt{=Tl)m`wWp0&U4=tJohD4!$s2Y>Ve0g~Pnm^z-8d*w5Wwyt|-BAaK-@i>C_i|0{ zZ3??gYr3IJj5=RZi=%t2N$!uBfdy`W2#@NR^V9_tFPM5^VPKg1rch22Ppp;@L{MAI zm#tO$mOc}@#+Tzuq4rCs$x&4}Dn;KU80XxWg@0=zrPmC5Tnhv`Z#ry7Cn^}`=K>2`uF+?MZ_Jvwk zAfO}F@wP02y}iIHX4cClgLsk?URqf>Ac+SkZHT8ulz)5VmrjD(|G{@Pp4!HT_VTM+ ziNx`ru56^MC#MG^a;90{EVC!*av3nkN__dz><>Jsz^33XUuDqMvve2NA=Nt~ck_xl zyuC&nJsYI}P*X7vb*l-fhwh1Lz{JIWRN0zx;9s9r_Pe_NSYU)&<0sv-VqWf+=VQW; z>4?z@+EW7U-z9Io}Yr!d3-{XnT=v>;w|1WKdQ-*ji^vQxc) zI@O0F!Gd3JVKh};=zRGKFcrZ#^UDXk5cs^+aqW}=^FZY*Qf6r4tV67>zJ7O*NUQ=G zcu;Ck?d|QoT)h?-RerQqukd@cW)~Q<+?xFg<~#cE+^?Dq zHQyf8%-sSPM5xQ$>{#V&e4B3^FY8b1IDS;5 z0;~?s36Feu{7htj(lsf6F_u4T>D^ixWUUkcaCsau$}}j|yU$AtsrUAS+NmhGXm`fO zpYCb@%)ozA|gmJG%Lhu6_MQVJG=gYy&!x|ajx~=l7@?<(Uj|!Cz zb{|slGnu~?zV->VpRk6kzE|OAe(g#V~Cz4vIBI-->2h}|r23a1rWAd!}!}Y@$ z6S_>3SvGpi%ZNpOJiH(#q^MhaqKD5$)ru;B85U=9=zfs4dHZQ8c)i<_lSc<*{5kA4 zIl+Pl&Ryt0aisRJ4c7-NAyhTSRxznkiA8yVQYG6_7JdQYp zDP<}&pVJ{v$-AzQkfPWiq*CB;arQnx*XbiJpQ;o#SHlJ_Tw@O!;rZyEKunlwDtI<- zZE`>Svz zv|7%aq_KByiL106S#2xyx%$J0-5#IIdmV8><5WF#{?XO>J3A4kHt$S1#P`phq;aif zDylS>ehS{mWMq?G&e%WOtDiG8zP17pdR_l%ZnoC^vPg!s-7Lv0L5@*$BxR65&}vfV z>0*}KZCi4{^-W>^WYO4*%z#m81obs$6eL9X^X;=Avt}dPB@YUGzSGsGZ6`0kwtcwu zBwxPa+sGhs5lgRdU|@X`Qm%3{uq)+-flk2Nq#qgjo4Xl5<+NWIDr(f#m6p+%rT6D` z-eqOG$057Cp#{->ExHlf6^tKB`{+=-*agcnFMR6~Fn$l8= zQLWz?t|UiH4yS$ey{?EvJ_0k3ok_5`m>BhYz9g1l=zOZXaq3qYpGpF_o}C2mdZYMqnuwY96T$R#QwKK?a-l zw)m}&>TKI|UNy|koCnM-qX!o>?(5nIlMBcb>sFm`AN72I{+Y*l=Zs0< z`DVA_1Ml%zJE@fFO!|tcqJJ+EYTf&!;ed)n18-@>m6iIW^Ub*f4)d&wtFFiRky)rr zzooUisl#?`OhZG^>!aTT8(8%go*2(3rI8=`f7baN`wvK;Zq&hk##wd8WtCF+?cKbCIU#{a^s1Vtf#P2gyDx=3G%{H?X_s zkHm~Iwt%;d&P(Z=!GQ367dUfPT=1sy-R*6#B;n`a;L5f0d$qxnxDYUbk&bZVVF$Ch zD?#iYKjt^QRJpRQ;iMEi7oWM-JsclIioPznz;GB>ATWhJ{zG)I(2jP{+xL8Q+<5J{goX=`f-?5``h&t8A{ za2ZU+o0^#T?JVjYs6E-oqMF0CGZlkozr_3b`6-=-hZ9wwe+A!RJ)s*D4d)SD!O0T# zeW0J1>b7c+Wnf?cvqIK&c0|5@F<@!Sa({uv9y>BP5DeBc#2cJ9pG}ZTk{JX{w?yUU z@-0&L_4R#ElfhpbeP>!NpK=6Njf8tc0!P8Rp@sQ*Mn*>ed$ksuZ_UXoQ@gFcJmc2= zosyDLSy>6i@3uY%t5JA(c)q90?SthX=C$5k;^d8!DM+^EfbI+h3s&U_K#N-E3LhU> zq+_>6(dUh=uJ!?Q$Y2H>i@cqwNTD69sY$%h2>0EJi>N`it1|Ovh+4Jfs6Q2XP)AZB zAS~>~X2X1mXwyM?Icsxeu!M=8o`e;{6?+y3d8*VFPQivFzony-p%^6lu@hW(Yiny3 zLHZFXm{xnO5yPtB?|JLiEp2TIlHxs&P<%H`(UZ5AA*@Fup$N5(C)7W8G=;G zWA3nXvC(mG2-gidfy&z>gEO+Qz&Hh^YO1P+hE9`&jDp#bZ26|`rlF<=2EpsOM*hg`s0h~$aJ9MGx%fAU8|pf0?^P@w|35k!xFY}n literal 0 HcmV?d00001 From 3174fd67640520be8199bc2ce18415e3badd0504 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Sat, 21 Sep 2019 03:14:49 +0200 Subject: [PATCH 03/14] Added RGBA example --- .../examples/testcard-rgba.png | Bin 0 -> 14594 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/single_file_transcoder/examples/testcard-rgba.png diff --git a/contrib/single_file_transcoder/examples/testcard-rgba.png b/contrib/single_file_transcoder/examples/testcard-rgba.png new file mode 100644 index 0000000000000000000000000000000000000000..7f601a1b1c4c067b00c45f9d5f6cdb33bf733202 GIT binary patch literal 14594 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 literal 0 HcmV?d00001 From 91b8d85473d272be485c5fc2ac80774b7123a86e Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Fri, 20 Sep 2019 23:04:03 -0400 Subject: [PATCH 04/14] Work-in-progress Embedded .basis files with and without alpha. Started adding support to draw both types, as well as ETC. Fixed broken WebGL canvas. --- .../examples/emscripten.cpp | 1133 ++++++++++++----- .../examples/shell.html | 7 + 2 files changed, 818 insertions(+), 322 deletions(-) diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index be957c0..7688c32 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -23,313 +23,749 @@ #include #include +#define BASISD_SUPPORT_DXT5A 0 +#define BASISD_SUPPORT_BC7 0 +//#define BASISD_SUPPORT_ETC2_EAC_A8 0 <-- todo: -Wunused-parameter errors +#define BASISD_SUPPORT_ASTC 0 +#define BASISD_SUPPORT_ATC 0 + #include "../basisutranslib.cpp" using namespace basist; static etc1_global_selector_codebook* globalCodebook = NULL; -//************************* Test Data (DXT texture) **************************/ +//********************************* Test Data ********************************/ /** - * Basis Universal compressed 256x256 texture source. + * Basis Universal compressed 256x256 RGB texture source. * \n - * See \c testcard.png for the original. + * See \c testcard.png for the original. Generate using: + * \code + * basisu -level 5 -max_endpoints 16128 -max_selectors 16128 -linear -y_flip + * \endcode */ -static uint8_t const srcBasis[] = { - 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0x66, 0xbb, 0x6c, 0x0d, 0x00, 0x00, - 0x1f, 0x4f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, +static uint8_t const srcRgb[] = { + 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0xcb, 0x50, 0x69, 0x0d, 0x00, 0x00, + 0x04, 0xef, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x00, 0x64, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, - 0x01, 0x01, 0x99, 0x01, 0x00, 0x00, 0x94, 0x02, 0x00, 0x2d, 0x04, 0x00, - 0x00, 0xb8, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x64, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, + 0x09, 0x01, 0x95, 0x01, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x39, 0x04, 0x00, + 0x00, 0xba, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0xe5, 0x04, 0x00, 0x00, 0xd4, 0x08, - 0x00, 0x00, 0x06, 0xda, 0x20, 0x40, 0x2c, 0x80, 0x41, 0x10, 0x04, 0xa0, - 0xe0, 0x3d, 0xd2, 0x45, 0x5b, 0x53, 0x26, 0x35, 0xe1, 0x43, 0x0e, 0x04, - 0x78, 0x04, 0x30, 0x0c, 0x82, 0x30, 0xf0, 0x4a, 0xa1, 0x08, 0xb5, 0x91, - 0x2c, 0xd3, 0x3d, 0x86, 0x3d, 0x10, 0xe0, 0x01, 0x00, 0x31, 0x08, 0x82, - 0xc0, 0x67, 0xe6, 0x46, 0xe7, 0x6e, 0xab, 0x4e, 0x0a, 0x11, 0x01, 0x01, - 0x98, 0x00, 0x00, 0x00, 0x80, 0x20, 0x08, 0x80, 0xf0, 0x3a, 0xbd, 0x01, - 0x1d, 0x80, 0x5d, 0x3d, 0xb3, 0xea, 0x60, 0x61, 0x0c, 0x6d, 0xf0, 0xfe, - 0x7b, 0xd1, 0xae, 0x13, 0xc8, 0xd0, 0x2c, 0x00, 0x90, 0x48, 0xa2, 0x01, - 0x12, 0x24, 0xc8, 0x40, 0xa9, 0x3a, 0x4d, 0x84, 0x80, 0x34, 0x01, 0x69, - 0x02, 0x92, 0xa4, 0x0b, 0x48, 0x8d, 0x2e, 0x09, 0xd5, 0xf5, 0xd7, 0x3d, - 0x9e, 0x86, 0xf4, 0x7c, 0xea, 0x7d, 0x7d, 0x26, 0xd7, 0x51, 0x9a, 0x7f, - 0x8c, 0x1e, 0x92, 0xb7, 0xf3, 0x5c, 0x36, 0x1f, 0xfe, 0x3e, 0x37, 0xd7, - 0x7f, 0x6f, 0x7d, 0xe6, 0x6c, 0x47, 0xcc, 0xec, 0xf6, 0xde, 0x2f, 0x22, - 0x56, 0x44, 0x26, 0x6a, 0x7f, 0x0f, 0x96, 0x31, 0x46, 0xdd, 0xbd, 0x11, - 0xf1, 0x55, 0xf5, 0xcc, 0x2c, 0xee, 0x4e, 0x0d, 0x33, 0x6f, 0xef, 0x7d, - 0xa4, 0x3b, 0x95, 0xeb, 0x66, 0xfc, 0xce, 0x06, 0x96, 0xca, 0x74, 0xee, - 0x5f, 0xd4, 0xdd, 0x5e, 0xcf, 0x43, 0x5f, 0xaf, 0x8c, 0x2f, 0xe1, 0x41, - 0x70, 0x7d, 0xd1, 0x46, 0x0e, 0x54, 0x3d, 0x80, 0xe6, 0xd2, 0xcd, 0x5f, - 0x5c, 0xa7, 0xd4, 0x5b, 0x36, 0xb2, 0x8d, 0xd6, 0xc0, 0x42, 0x04, 0x84, - 0xa0, 0xbc, 0x65, 0x4d, 0x01, 0x6c, 0x87, 0xed, 0x15, 0x79, 0x67, 0x6d, - 0x21, 0x4a, 0x42, 0x48, 0x51, 0x9f, 0xbb, 0xda, 0xd5, 0xa1, 0x8f, 0xda, - 0x8c, 0xdc, 0x9a, 0xf3, 0xf4, 0x91, 0xfd, 0x13, 0xb4, 0x5e, 0x59, 0x3f, - 0x05, 0xcc, 0x6c, 0xbf, 0xb7, 0xab, 0xd6, 0xb6, 0xfc, 0xe7, 0xac, 0xd6, - 0xfa, 0xd3, 0x6c, 0xcc, 0xea, 0xce, 0xd6, 0x14, 0xa2, 0x53, 0x66, 0x5c, - 0x2b, 0xaa, 0x65, 0xa3, 0x35, 0x85, 0x84, 0xbc, 0x81, 0x81, 0x07, 0x03, - 0xc3, 0x00, 0x17, 0xfb, 0x27, 0x04, 0x2d, 0x29, 0x08, 0x04, 0xa2, 0xaf, - 0x08, 0xe8, 0x07, 0xe6, 0x7c, 0x68, 0x5d, 0x55, 0x00, 0x00, 0xf0, 0xdf, - 0x39, 0xf7, 0xdc, 0x98, 0xbc, 0xde, 0xd0, 0x93, 0xf8, 0x1a, 0xd2, 0x36, - 0x94, 0x4b, 0x9a, 0xea, 0x1b, 0x32, 0x44, 0x5d, 0x02, 0x2e, 0xe7, 0x41, - 0x28, 0x56, 0x29, 0xbe, 0x42, 0xaa, 0x05, 0x97, 0xe2, 0x1f, 0x70, 0x10, - 0xb4, 0xe8, 0x07, 0xb8, 0x14, 0x87, 0x20, 0x0e, 0xef, 0x49, 0xad, 0x28, - 0x1d, 0x9e, 0xd0, 0x21, 0x64, 0x2a, 0x74, 0xe9, 0x78, 0x5b, 0x45, 0xc4, - 0x0e, 0x16, 0xfa, 0x05, 0x1e, 0xba, 0x74, 0xec, 0x07, 0xa8, 0xba, 0xaa, - 0xaa, 0x6a, 0x01, 0x0a, 0xc6, 0x21, 0x04, 0x29, 0xa5, 0x94, 0x73, 0xce, - 0xa5, 0x94, 0x32, 0x18, 0x0c, 0x06, 0x6d, 0xdb, 0xb6, 0x7b, 0x38, 0x07, - 0x5d, 0xd7, 0xa1, 0x12, 0x63, 0x38, 0x06, 0x8e, 0x63, 0x8c, 0x2a, 0xe0, - 0x24, 0x20, 0x02, 0x11, 0x41, 0x45, 0xa4, 0x8a, 0x2a, 0x15, 0x50, 0x35, - 0x68, 0x34, 0x68, 0x9a, 0xa6, 0x81, 0x06, 0x9a, 0x10, 0xea, 0x95, 0x94, - 0x52, 0x9a, 0x4f, 0xca, 0x97, 0x1a, 0x73, 0x6e, 0x14, 0xca, 0x33, 0x85, - 0x3b, 0x18, 0x15, 0x0a, 0x29, 0x06, 0x42, 0x8c, 0x89, 0x00, 0x01, 0x31, - 0x22, 0x40, 0x20, 0xc5, 0x18, 0x08, 0x31, 0x51, 0xba, 0xa2, 0x74, 0xa5, - 0x74, 0x78, 0x81, 0x3b, 0x14, 0xb5, 0x40, 0xa8, 0xfc, 0x14, 0x83, 0x9f, - 0x11, 0x14, 0x18, 0x33, 0x9e, 0x12, 0xc6, 0x3c, 0x0b, 0x4a, 0xbe, 0x50, - 0xba, 0x4c, 0x29, 0xb9, 0xcd, 0xb9, 0xcd, 0xa5, 0x90, 0xbb, 0x32, 0x2f, - 0x85, 0x9e, 0x0c, 0x85, 0x5e, 0xe9, 0x91, 0xe9, 0x9d, 0xe8, 0xca, 0x75, - 0x60, 0xa6, 0x08, 0x63, 0x4c, 0xc7, 0x8c, 0x03, 0xe1, 0x19, 0xb3, 0x49, - 0x41, 0x37, 0x55, 0x4c, 0x64, 0xd4, 0x18, 0x22, 0x08, 0x3b, 0x84, 0xb3, - 0x81, 0x18, 0xec, 0x70, 0x1e, 0x5b, 0x2b, 0x2c, 0xad, 0x13, 0x04, 0x04, - 0x19, 0x35, 0xce, 0xec, 0x10, 0xce, 0xee, 0x08, 0xd1, 0x79, 0x56, 0xb6, - 0x58, 0xaf, 0xab, 0xe8, 0x9a, 0xf1, 0x3d, 0xa5, 0x6f, 0x73, 0x6e, 0xfb, - 0xe2, 0xde, 0xd8, 0x35, 0xeb, 0xbb, 0xd1, 0xde, 0xe9, 0x96, 0xf9, 0xc2, - 0x42, 0x67, 0xda, 0x71, 0x30, 0x3c, 0x14, 0x42, 0x80, 0x73, 0x5d, 0xd7, - 0xed, 0xa1, 0x74, 0xf4, 0x05, 0x5d, 0x29, 0x25, 0xe7, 0x9c, 0xa5, 0x04, - 0x69, 0x10, 0x85, 0xed, 0x14, 0xb4, 0xa2, 0x4b, 0x83, 0x10, 0x84, 0xc1, - 0xd2, 0x1e, 0xab, 0x6b, 0xd6, 0xb6, 0x2b, 0xb6, 0xd4, 0xc3, 0xdd, 0x55, - 0xf6, 0x92, 0x9d, 0xf7, 0xea, 0xba, 0x91, 0x62, 0x7e, 0xb0, 0xbc, 0x7e, - 0x60, 0x25, 0xa4, 0x49, 0x8c, 0x5d, 0xef, 0xd6, 0xe7, 0x65, 0x66, 0xc6, - 0xf3, 0x25, 0xed, 0x9c, 0x0f, 0x09, 0x47, 0x51, 0x3c, 0xda, 0x94, 0xd4, - 0x29, 0xa8, 0x82, 0xeb, 0x95, 0xe4, 0x90, 0xe3, 0x43, 0xc7, 0x1c, 0xaa, - 0xe2, 0x47, 0x66, 0x58, 0xfb, 0x75, 0xea, 0xf1, 0x95, 0xc5, 0xed, 0x07, - 0x6d, 0xf7, 0xf7, 0xe9, 0x9c, 0x59, 0xcc, 0xb9, 0xf9, 0xcd, 0x9f, 0x5e, - 0x96, 0xec, 0xe0, 0xfe, 0x62, 0x7f, 0xa5, 0x4d, 0xfb, 0x7d, 0xc7, 0x46, - 0xc3, 0xd3, 0x5f, 0x68, 0xde, 0x78, 0xfd, 0x9d, 0x5a, 0x3d, 0x60, 0x70, - 0x61, 0xad, 0x36, 0x1c, 0x0e, 0x87, 0x17, 0xb7, 0x36, 0xdf, 0xcc, 0x39, - 0xe7, 0xa7, 0x0f, 0x4a, 0xce, 0xe5, 0xa5, 0xcc, 0xd7, 0xa3, 0xd4, 0x4f, - 0x62, 0xd7, 0xf6, 0xa1, 0xaa, 0xaa, 0xcd, 0xa6, 0x97, 0x92, 0x57, 0xd3, - 0xfb, 0x45, 0xb9, 0xc1, 0x6e, 0x51, 0x0a, 0xe5, 0x51, 0x4a, 0x92, 0xcd, - 0xa3, 0x28, 0x1e, 0x05, 0x3e, 0x60, 0xbe, 0x63, 0xe9, 0x39, 0x33, 0xb3, - 0xd1, 0xd1, 0xa7, 0xcb, 0x5b, 0x54, 0x07, 0x96, 0x96, 0xe7, 0xbb, 0x28, - 0x1b, 0xcb, 0xb9, 0x0f, 0xab, 0x5d, 0x89, 0x4b, 0x53, 0x4f, 0xfe, 0xd2, - 0xf5, 0xfb, 0x9a, 0x0d, 0xff, 0x7f, 0x96, 0xe4, 0xd1, 0xae, 0xed, 0xfd, - 0x4f, 0x84, 0x53, 0x4f, 0x70, 0x86, 0x8d, 0xcb, 0x3c, 0x7c, 0xe8, 0x8f, - 0xaf, 0xee, 0xba, 0x73, 0xf7, 0xf7, 0xf7, 0xe3, 0xe0, 0xdd, 0xff, 0x16, - 0xa3, 0x65, 0x45, 0x1d, 0x06, 0xf5, 0xe4, 0x63, 0x4f, 0x4e, 0x05, 0x67, - 0x70, 0x79, 0x83, 0x7f, 0x2e, 0x5d, 0x74, 0xf3, 0xc7, 0xf6, 0x95, 0x94, - 0xf4, 0xcd, 0x66, 0x55, 0x55, 0xa1, 0x6f, 0xbb, 0x38, 0xe9, 0xd3, 0xe8, - 0x51, 0x5e, 0x7c, 0x77, 0x7b, 0x71, 0xe5, 0xf1, 0xc9, 0xec, 0xb7, 0x1f, - 0x54, 0x69, 0x49, 0xd4, 0x86, 0xd7, 0x06, 0x35, 0x97, 0x8e, 0x62, 0xd8, - 0xf9, 0xfe, 0xdb, 0x6d, 0xdb, 0x87, 0xa3, 0x41, 0x7a, 0xfb, 0xdc, 0x64, - 0xf8, 0xd6, 0xea, 0xd5, 0xb3, 0x23, 0x46, 0x5f, 0xdc, 0xba, 0x75, 0x15, - 0x3d, 0x3d, 0xbd, 0xbe, 0xef, 0xd1, 0xf7, 0xfd, 0xf5, 0x97, 0xff, 0x9e, - 0x00, 0x01, 0x41, 0x9c, 0x01, 0xcd, 0xf2, 0x0a, 0xc3, 0xf0, 0x45, 0xf3, - 0x74, 0xea, 0x0b, 0x7a, 0x7b, 0x7b, 0xc8, 0x58, 0xfa, 0x0f, 0x0a, 0x4d, - 0x70, 0x0a, 0x3e, 0xa5, 0xb8, 0x75, 0x7d, 0x79, 0xa7, 0x70, 0xc6, 0xae, - 0x4a, 0x5a, 0xec, 0x96, 0xa5, 0x63, 0x7e, 0x4e, 0xc5, 0xd1, 0x03, 0xf9, - 0x36, 0x85, 0xf4, 0x31, 0x64, 0x94, 0x8c, 0x5d, 0x05, 0x0d, 0x59, 0x22, - 0xdf, 0x21, 0x04, 0xe2, 0x50, 0x68, 0x14, 0x51, 0x14, 0x40, 0x73, 0xee, - 0x7b, 0x93, 0x5d, 0x77, 0x35, 0x18, 0x25, 0x4a, 0x2c, 0xec, 0xd4, 0xce, - 0x42, 0x10, 0x41, 0xc4, 0x52, 0x48, 0x61, 0x10, 0xb1, 0x54, 0x41, 0x0b, - 0x21, 0x61, 0x43, 0x50, 0x97, 0x38, 0x91, 0xf9, 0xbd, 0x7b, 0x84, 0x82, - 0x58, 0x98, 0xab, 0xef, 0x35, 0x86, 0xf1, 0x18, 0x42, 0x7d, 0x15, 0x89, - 0x03, 0x07, 0x62, 0x08, 0xad, 0x39, 0xd4, 0x14, 0xe2, 0xb3, 0x06, 0x50, - 0x33, 0xa8, 0x79, 0x14, 0x31, 0xe8, 0xe0, 0xc8, 0xf5, 0xbb, 0xee, 0xb5, - 0xd6, 0x5e, 0xcf, 0xfb, 0x3c, 0x62, 0xaf, 0x2d, 0xde, 0x66, 0x3b, 0x90, - 0xa2, 0x95, 0x88, 0x72, 0xf0, 0xdf, 0x0e, 0x2b, 0xb9, 0x45, 0x80, 0x49, - 0x00, 0x84, 0x20, 0x08, 0x00, 0x01, 0x70, 0x4f, 0x23, 0x31, 0xb0, 0xf8, - 0xc1, 0x2b, 0x47, 0x20, 0x00, 0x7e, 0x27, 0xd9, 0xd3, 0x1e, 0xc0, 0x66, - 0x37, 0x19, 0x6c, 0x31, 0xc8, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, - 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, - 0x4b, 0xc2, 0x90, 0x48, 0x24, 0x12, 0x89, 0x44, 0x22, 0x91, 0x48, 0x24, - 0x12, 0x89, 0x44, 0x22, 0x21, 0x8b, 0xae, 0x3d, 0xda, 0x51, 0xf3, 0xef, - 0x47, 0x19, 0x7f, 0x1b, 0xd9, 0xff, 0x31, 0x36, 0x4b, 0x7a, 0x8c, 0x41, - 0x6a, 0x8c, 0xa1, 0xa1, 0x31, 0x86, 0x2e, 0xf3, 0x72, 0xaf, 0xfd, 0xfc, - 0x9d, 0x6f, 0x7d, 0xf8, 0xa6, 0x57, 0xbf, 0xf2, 0xa9, 0x55, 0x17, 0xaa, - 0x57, 0xbb, 0x2a, 0x4f, 0x6b, 0xdf, 0xb8, 0x9c, 0x7e, 0xff, 0xb2, 0xc7, - 0xef, 0xd8, 0xfb, 0x20, 0x34, 0xc6, 0x50, 0x6a, 0x8c, 0xa1, 0xd4, 0x18, - 0x43, 0xa9, 0x31, 0x86, 0x52, 0x63, 0x0c, 0xa5, 0xc6, 0x13, 0xd2, 0xd1, - 0x3d, 0xd4, 0xce, 0x91, 0x76, 0xb9, 0x6b, 0xfb, 0x7f, 0xbb, 0x5c, 0xda, - 0x5f, 0xb6, 0x0d, 0xfe, 0xb0, 0x28, 0xe5, 0x75, 0xbe, 0xcb, 0x63, 0xaf, - 0xd4, 0x96, 0x6e, 0x51, 0x62, 0x59, 0x94, 0x96, 0x45, 0x89, 0xe5, 0x94, - 0x57, 0x78, 0xcc, 0x75, 0x4f, 0x85, 0xd4, 0x16, 0xa5, 0x68, 0x4a, 0x84, - 0x01, 0x61, 0x40, 0x0b, 0xa1, 0xd6, 0x5a, 0x44, 0x4c, 0xd1, 0x5a, 0x44, - 0x6b, 0x11, 0xad, 0xed, 0x22, 0x1e, 0x5a, 0x5e, 0xe0, 0xe8, 0x71, 0xd7, - 0x7a, 0x54, 0xc2, 0xb6, 0x04, 0x2d, 0x1a, 0x53, 0xa8, 0x35, 0xa9, 0x35, - 0xa9, 0x2d, 0x4d, 0x2d, 0xa2, 0xfd, 0x50, 0x4f, 0xf1, 0xe8, 0xa3, 0xf3, - 0xc5, 0xd3, 0xa6, 0x10, 0x73, 0x44, 0x40, 0x04, 0x44, 0x80, 0x5a, 0xa0, - 0x63, 0x1c, 0xf3, 0xa0, 0xbb, 0x1c, 0x78, 0xe0, 0xd6, 0x3f, 0x0f, 0x9c, - 0xca, 0x9f, 0xb6, 0x4c, 0xdb, 0xd7, 0xb7, 0x1d, 0x3c, 0xb3, 0x6a, 0x6b, - 0x4b, 0xda, 0xda, 0x92, 0xb6, 0xb6, 0xa4, 0xad, 0x2d, 0x69, 0x6b, 0x4b, - 0xda, 0xda, 0xd2, 0xf2, 0xac, 0x67, 0x4f, 0xd2, 0x56, 0x91, 0x26, 0x4b, - 0x05, 0xe4, 0x62, 0x13, 0xd4, 0x58, 0xb2, 0x0d, 0xf7, 0xc7, 0x39, 0x98, - 0xf5, 0xec, 0x25, 0xc3, 0xc9, 0xc8, 0xe7, 0xff, 0xfd, 0xf5, 0x31, 0x46, - 0x24, 0x63, 0x0c, 0xa5, 0xc6, 0x18, 0x4a, 0x8d, 0x31, 0x94, 0x1a, 0x63, - 0x28, 0x35, 0xc6, 0x50, 0x6a, 0x8c, 0xa1, 0xd4, 0xb8, 0x6a, 0x27, 0xe7, - 0xa5, 0x3f, 0xed, 0xd6, 0x7d, 0xb7, 0x05, 0xc8, 0x11, 0x20, 0xd5, 0x88, - 0xa4, 0x38, 0x48, 0x8b, 0xd2, 0x54, 0x8d, 0x48, 0x47, 0xdf, 0xbb, 0x2f, - 0x2a, 0x4d, 0xc9, 0xa1, 0x14, 0xa1, 0x14, 0xa1, 0x14, 0xa1, 0x14, 0xa1, - 0x14, 0xa1, 0x14, 0x31, 0xee, 0xf7, 0xa6, 0xeb, 0xb5, 0x40, 0xa4, 0x50, - 0x6a, 0x19, 0x35, 0x08, 0x85, 0x0c, 0x52, 0xa1, 0xfd, 0x74, 0x68, 0x3e, - 0xf6, 0xfc, 0x7e, 0x54, 0x85, 0x3c, 0x97, 0x25, 0x5b, 0xb2, 0x25, 0x5b, - 0xb2, 0x25, 0x5b, 0xb2, 0x25, 0x2f, 0x56, 0x8b, 0x38, 0xf2, 0xfd, 0xf5, - 0x7b, 0xdb, 0xcb, 0x40, 0x24, 0x5a, 0x28, 0x64, 0x65, 0xc6, 0xd2, 0xa6, - 0xa5, 0x05, 0xcc, 0x97, 0x3e, 0xfb, 0xda, 0xd7, 0xd3, 0xf5, 0xbd, 0x45, - 0xef, 0xa8, 0x77, 0xa9, 0x77, 0xa9, 0x77, 0xa9, 0x77, 0xa9, 0x77, 0xa9, - 0x77, 0xa9, 0x77, 0xa9, 0xbf, 0xba, 0x07, 0x8f, 0x98, 0xf7, 0x58, 0x48, - 0x1d, 0x75, 0x64, 0x83, 0x1a, 0x53, 0x96, 0xaa, 0xcc, 0xb8, 0xde, 0x9c, - 0xf4, 0x09, 0xbf, 0x45, 0xad, 0x0e, 0xf2, 0x85, 0x57, 0xf8, 0x2d, 0xb9, - 0xb0, 0x58, 0x2c, 0x16, 0x7f, 0xc7, 0x3b, 0x3e, 0xf6, 0xfa, 0x2e, 0x5f, - 0xe2, 0x35, 0x5f, 0x91, 0xa8, 0x52, 0xd2, 0xd5, 0x54, 0xa3, 0x2e, 0x5a, - 0x90, 0x4e, 0xef, 0xf6, 0x44, 0x50, 0xcb, 0x42, 0xae, 0x22, 0xc3, 0xc6, - 0x8b, 0xf7, 0x7b, 0x26, 0x2b, 0x6d, 0x18, 0x49, 0xcd, 0x0e, 0x42, 0xc1, - 0xbe, 0x1d, 0x14, 0x1f, 0x3e, 0xbc, 0x67, 0x07, 0xa1, 0x2c, 0x08, 0x05, - 0xe4, 0x14, 0x42, 0x08, 0x21, 0x9a, 0xbd, 0x40, 0xbc, 0x3d, 0x7f, 0x58, - 0x7a, 0xdc, 0xac, 0x90, 0x15, 0x48, 0xa3, 0xc5, 0x24, 0x3d, 0xfd, 0xe8, - 0xaf, 0xdd, 0x3b, 0xea, 0x41, 0xee, 0x41, 0xce, 0x1e, 0xf4, 0x9b, 0x8d, - 0x9f, 0x6f, 0x44, 0x97, 0x7a, 0x60, 0x82, 0x1a, 0x53, 0x96, 0x7a, 0x82, - 0xcf, 0x79, 0xf6, 0xe4, 0xd8, 0xaa, 0x5e, 0xd3, 0x55, 0xd5, 0x90, 0x9b, - 0x10, 0xb9, 0x10, 0x42, 0x08, 0x21, 0xaa, 0x94, 0x74, 0x3d, 0x3c, 0xaa, - 0x17, 0xfb, 0x3f, 0x7f, 0xe2, 0x2a, 0x25, 0x5d, 0x1d, 0xd5, 0xa8, 0x2b, - 0xb5, 0xdf, 0x97, 0xb9, 0xdf, 0x0a, 0x15, 0x51, 0x64, 0x09, 0x72, 0x5a, - 0x13, 0xd2, 0x1b, 0x9f, 0x1d, 0xd7, 0x4a, 0xce, 0xa8, 0x59, 0x3b, 0xf9, - 0xfc, 0xdf, 0xaf, 0x08, 0x50, 0xb3, 0x83, 0x50, 0x16, 0x84, 0x02, 0x72, - 0x0a, 0x21, 0x84, 0x10, 0xcd, 0x0e, 0x42, 0xd2, 0xfb, 0x9f, 0xfb, 0xfd, - 0xb2, 0x59, 0x21, 0x2b, 0x33, 0x5a, 0xb4, 0x7d, 0x3f, 0x9d, 0xa1, 0x05, - 0x3d, 0x98, 0x82, 0xdc, 0x83, 0x9c, 0x53, 0x30, 0x05, 0x3a, 0xbc, 0xe8, - 0x84, 0x26, 0x64, 0x83, 0x1a, 0xe3, 0xa1, 0xdf, 0xbe, 0xdc, 0x66, 0xa8, - 0x51, 0xd2, 0x55, 0xd5, 0x90, 0x9b, 0x10, 0xb9, 0x10, 0x42, 0x08, 0x21, - 0xaa, 0x3b, 0xa9, 0xaa, 0x06, 0xdd, 0xff, 0x3f, 0x31, 0x2f, 0x55, 0x4d, - 0x35, 0xea, 0x3a, 0x2f, 0xcc, 0xb5, 0x33, 0x45, 0xd4, 0xb2, 0x90, 0xcb, - 0x9a, 0xc8, 0xfc, 0xbd, 0xd5, 0xf8, 0x95, 0x3b, 0x22, 0x90, 0x74, 0xe3, - 0x38, 0xf7, 0x43, 0x61, 0x65, 0x68, 0xe1, 0x20, 0x94, 0x05, 0xa1, 0x80, - 0x9c, 0x42, 0x08, 0x21, 0x44, 0xb3, 0x83, 0x50, 0x86, 0x7e, 0xe3, 0x7c, - 0xe8, 0xb1, 0xac, 0x40, 0x9a, 0xf2, 0x8e, 0x9e, 0x6b, 0x64, 0x4a, 0x8b, - 0x1e, 0xe4, 0x4e, 0x2e, 0x07, 0xa5, 0x18, 0xc5, 0xeb, 0x22, 0x4a, 0xb1, - 0x91, 0xd6, 0xf1, 0x82, 0xb3, 0x98, 0xaa, 0x48, 0x54, 0xef, 0x59, 0x8a, - 0xc9, 0x0b, 0xf0, 0x06, 0x70, 0x4f, 0x0e, 0xc0, 0x1b, 0xc0, 0x23, 0xd5, - 0x7b, 0x96, 0xa2, 0x0c, 0x9f, 0x7a, 0xbb, 0xfc, 0x9f, 0x4f, 0xb6, 0x23, - 0x33, 0x1e, 0x88, 0x9a, 0x91, 0xba, 0x28, 0x82, 0x6c, 0xe4, 0x28, 0x4a, - 0x91, 0xb1, 0xf2, 0x41, 0xce, 0xe8, 0x6c, 0x39, 0xeb, 0x19, 0x8f, 0x85, - 0x02, 0xa4, 0xe6, 0x08, 0x2c, 0x43, 0x36, 0x10, 0x20, 0x72, 0x00, 0x02, - 0x44, 0x0b, 0x85, 0xac, 0x0c, 0xcd, 0x7a, 0xf3, 0x06, 0x2b, 0x33, 0xdf, - 0x66, 0xaf, 0xa8, 0x53, 0x20, 0x35, 0x53, 0xc8, 0x5e, 0x4c, 0x7e, 0xc3, - 0x14, 0x52, 0xa1, 0xdd, 0xe9, 0xfa, 0xc8, 0x06, 0xfb, 0xf2, 0xed, 0x65, - 0x64, 0x9f, 0x94, 0xa1, 0xc6, 0x94, 0x65, 0x52, 0x5e, 0x80, 0x00, 0x91, - 0x03, 0x10, 0x20, 0xaa, 0x3b, 0xe9, 0x22, 0x51, 0x9d, 0x0f, 0xaa, 0xb7, - 0x70, 0x33, 0x52, 0xfb, 0x0d, 0xa6, 0x91, 0xaa, 0x28, 0x82, 0x6c, 0xe4, - 0xb0, 0x52, 0x64, 0x42, 0xc9, 0x57, 0x1a, 0x49, 0x6f, 0x3d, 0x11, 0xa1, - 0x50, 0x80, 0xd4, 0xec, 0x20, 0x14, 0x90, 0x0d, 0x04, 0x88, 0x1c, 0x80, - 0x00, 0xd1, 0xac, 0x50, 0x28, 0x43, 0x0b, 0xed, 0xf4, 0x6a, 0x19, 0xa9, - 0xbc, 0xab, 0xc5, 0xc8, 0x4c, 0xa8, 0x93, 0x3d, 0xc8, 0x5f, 0x0f, 0x3a, - 0xa9, 0xa3, 0x7a, 0xe7, 0xc0, 0x04, 0x77, 0x27, 0xab, 0xe9, 0x21, 0x83, - 0x54, 0x93, 0x93, 0xee, 0x62, 0x66, 0x33, 0x6f, 0x44, 0x44, 0x44, 0x44, - 0xd5, 0x49, 0x75, 0x91, 0xa8, 0xce, 0x3f, 0x7a, 0x9e, 0x93, 0x94, 0x55, - 0xa9, 0x55, 0xa3, 0x2a, 0x8a, 0x7c, 0xac, 0xe4, 0x8c, 0x95, 0x8e, 0x98, - 0xd1, 0x1b, 0x08, 0xd9, 0x27, 0x4b, 0x23, 0x68, 0x76, 0x10, 0xca, 0x67, - 0xba, 0x66, 0x85, 0xec, 0xae, 0x05, 0xa8, 0xd9, 0xbf, 0xd3, 0x3d, 0x57, - 0x99, 0x38, 0xc7, 0xd2, 0xc6, 0xd2, 0x82, 0xa9, 0x45, 0x0f, 0xf2, 0xee, - 0x41, 0x6f, 0x81, 0x3a, 0xba, 0x7d, 0x60, 0x83, 0xbb, 0x27, 0xd5, 0xf4, - 0x50, 0x0b, 0x50, 0x4d, 0x91, 0xf4, 0x0e, 0x78, 0x53, 0x74, 0x81, 0x4d, - 0xe8, 0x02, 0x9b, 0xd0, 0x05, 0x36, 0xa1, 0x0b, 0x6c, 0x42, 0x17, 0xd8, - 0x84, 0x2e, 0xb0, 0x09, 0x5d, 0x60, 0x13, 0xba, 0xc0, 0x26, 0x54, 0x77, - 0xd2, 0x15, 0x20, 0x55, 0x67, 0xa7, 0x17, 0xb9, 0x91, 0x3c, 0xa1, 0xc1, - 0x62, 0xa4, 0x2a, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x56, 0x8a, 0x6a, 0x14, 0x06, 0xbe, 0x8a, 0xa4, 0xfb, 0xf6, 0x5b, - 0x42, 0x56, 0x35, 0xa8, 0x45, 0x04, 0x5e, 0xad, 0xe9, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x85, 0x42, 0x56, 0x35, 0xa8, 0x55, - 0x76, 0x7a, 0x85, 0x48, 0xe5, 0x33, 0xcb, 0xd2, 0x46, 0x0b, 0x34, 0xb5, - 0xe8, 0x6a, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, - 0xe8, 0x2d, 0x50, 0x47, 0xf5, 0xb6, 0xc8, 0x04, 0xcf, 0xe7, 0x5b, 0xb2, - 0xf7, 0xab, 0x65, 0x68, 0x69, 0x04, 0x35, 0x2d, 0xd9, 0x7a, 0x3f, 0x6b, - 0xd2, 0x0d, 0xe9, 0x3d, 0x5b, 0x75, 0x35, 0x1d, 0xff, 0xd6, 0xdf, 0x2d, - 0xff, 0xbe, 0xf5, 0xe0, 0x61, 0xdd, 0xfd, 0x73, 0xae, 0xa6, 0x18, 0x51, - 0xce, 0xd2, 0xe4, 0x09, 0x12, 0xff, 0xa3, 0x5c, 0xfb, 0x8a, 0xac, 0xcc, - 0x50, 0xbd, 0x65, 0x74, 0x05, 0x48, 0xd5, 0xe3, 0x4b, 0xbb, 0xea, 0x35, - 0xdc, 0x05, 0xd2, 0x72, 0x96, 0x53, 0xa3, 0x55, 0x0b, 0x64, 0x4d, 0x0d, - 0xad, 0x59, 0xa1, 0x75, 0x7d, 0x78, 0x78, 0x9f, 0xee, 0x9a, 0xd7, 0xc6, - 0xa6, 0xde, 0xd3, 0x76, 0x9e, 0x2b, 0xa5, 0xb5, 0x91, 0xaa, 0xf8, 0xc3, - 0x98, 0x33, 0xda, 0xd2, 0x0f, 0x39, 0x56, 0x55, 0x80, 0xd4, 0x22, 0x02, - 0xaf, 0x55, 0xeb, 0xda, 0xaf, 0xaf, 0x67, 0xad, 0x5a, 0xdf, 0xac, 0xb6, - 0x4f, 0xeb, 0x30, 0xaf, 0x75, 0xb5, 0xa2, 0x93, 0xd5, 0xe5, 0x6a, 0xc5, - 0xeb, 0x4e, 0x5d, 0x2b, 0x22, 0x2b, 0x33, 0xb4, 0x50, 0x68, 0x96, 0x41, - 0xba, 0xb1, 0x5f, 0x7c, 0xb0, 0x8a, 0x34, 0xbd, 0x3e, 0x76, 0xc6, 0x7a, - 0xae, 0x2e, 0xdb, 0x4b, 0xef, 0x5a, 0x97, 0x7e, 0xa5, 0x1a, 0x5e, 0x66, - 0x4c, 0x9d, 0xeb, 0xc5, 0x76, 0x9d, 0xb5, 0xa3, 0x59, 0x73, 0x35, 0x59, - 0x4a, 0x8b, 0x3e, 0x57, 0x53, 0xdb, 0x79, 0xce, 0x59, 0x90, 0x45, 0x37, - 0xd3, 0x55, 0xfe, 0xf0, 0x29, 0x43, 0x2d, 0x40, 0x55, 0x76, 0x72, 0xbb, - 0xdf, 0x7e, 0x26, 0xa2, 0x1b, 0x65, 0xee, 0xb4, 0xae, 0xf5, 0x36, 0xa8, - 0x9d, 0x7b, 0x97, 0xed, 0x5b, 0x1a, 0xf7, 0xea, 0x04, 0xff, 0xef, 0x98, - 0xbf, 0x9e, 0xb3, 0x43, 0xef, 0x08, 0x77, 0x1a, 0x32, 0x21, 0x91, 0x95, - 0x19, 0xaa, 0xee, 0xe4, 0x76, 0x17, 0x89, 0x53, 0xe7, 0x0b, 0xcf, 0x62, - 0x29, 0x26, 0xb3, 0xb6, 0x3c, 0x78, 0xb5, 0xb4, 0x60, 0xd6, 0xcc, 0xfe, - 0x72, 0x04, 0xaf, 0x9a, 0x7a, 0xfd, 0xe3, 0x76, 0x7c, 0x38, 0x2c, 0x1b, - 0x8e, 0xf7, 0x51, 0xaa, 0x4a, 0x29, 0xa5, 0x98, 0x7c, 0xcf, 0x4a, 0xab, - 0x62, 0xb4, 0x7a, 0x00, 0xac, 0x48, 0x6a, 0x2b, 0xde, 0xe7, 0x45, 0x6e, - 0xa2, 0x8d, 0x00, 0xb5, 0x4a, 0x68, 0x75, 0x1a, 0xa1, 0x8d, 0xb9, 0x7c, - 0x5a, 0x71, 0xb8, 0x75, 0xe5, 0xbf, 0x0e, 0x59, 0x4e, 0x57, 0x6c, 0xac, - 0x35, 0xd6, 0x88, 0x8d, 0x9d, 0xd5, 0xba, 0xf2, 0xaa, 0x2a, 0x59, 0x79, - 0x32, 0x43, 0x2b, 0x0a, 0xcd, 0x22, 0xb1, 0x1f, 0x6e, 0x3d, 0x1e, 0xef, - 0x7b, 0xaa, 0x48, 0xd3, 0x7a, 0xbe, 0xfd, 0xd2, 0x46, 0xa0, 0x52, 0x3d, - 0x1c, 0xab, 0x8d, 0xa9, 0xa3, 0x46, 0x71, 0x2b, 0x6b, 0xcf, 0xa5, 0x6e, - 0x97, 0x0d, 0x08, 0x41, 0xd6, 0xd5, 0x5c, 0x3b, 0x69, 0xff, 0xe9, 0xad, - 0x29, 0xc8, 0x14, 0xd7, 0xf6, 0xce, 0xc5, 0x76, 0xdb, 0xe7, 0x75, 0x3b, - 0x4d, 0x23, 0xa8, 0xed, 0xed, 0x5c, 0x86, 0x23, 0x20, 0x6f, 0xb0, 0xcc, - 0x62, 0x80, 0xda, 0x6e, 0x19, 0x5d, 0x2d, 0x1e, 0x28, 0x17, 0xba, 0x1e, - 0x96, 0x48, 0x8a, 0x23, 0x90, 0xd6, 0x4a, 0xd3, 0xee, 0xe1, 0x4b, 0x8b, - 0x59, 0xa9, 0xe4, 0x53, 0x95, 0x6a, 0x8b, 0xe7, 0x87, 0xe6, 0xd7, 0x55, - 0xa9, 0x66, 0xd4, 0xaa, 0x42, 0xf5, 0x6c, 0xba, 0xf8, 0x4f, 0x7f, 0x0d, - 0x5a, 0x25, 0x54, 0x95, 0x0f, 0x20, 0x66, 0x11, 0xd0, 0xaa, 0x42, 0xb5, - 0x82, 0x7d, 0xf9, 0xc1, 0xcb, 0xd3, 0xb7, 0x4a, 0xa8, 0x2a, 0xb3, 0x9e, - 0x4a, 0x3f, 0x89, 0x1f, 0xed, 0xc1, 0x6c, 0x4a, 0x31, 0xf9, 0xaf, 0xa8, - 0xc4, 0x9b, 0x0b, 0x7a, 0x9f, 0x73, 0x0a, 0x2a, 0x81, 0x0d, 0x6a, 0x59, - 0xb2, 0x4d, 0xaa, 0xbe, 0x7b, 0xe4, 0x9e, 0xb5, 0x44, 0x52, 0xfc, 0xf8, - 0x80, 0x4d, 0x7a, 0x99, 0xc3, 0xe4, 0x61, 0x7a, 0xc1, 0x58, 0xb2, 0x33, - 0x47, 0x35, 0x27, 0xfd, 0x7e, 0x7d, 0xa9, 0xfb, 0x1f, 0x7c, 0xec, 0xa5, - 0x42, 0xa9, 0x6e, 0x8c, 0x34, 0xdb, 0xcb, 0x66, 0x8b, 0xd7, 0x97, 0xe4, - 0xcb, 0xd5, 0xea, 0xde, 0x82, 0xfc, 0x04, 0x12, 0xd9, 0xab, 0xa8, 0x1c, - 0x7f, 0xb5, 0x0f, 0x54, 0x44, 0x85, 0xa4, 0x56, 0x08, 0x15, 0x55, 0x2f, - 0x5c, 0x1c, 0x72, 0x58, 0xdf, 0xcd, 0x91, 0xaa, 0x02, 0xb2, 0xcd, 0x21, - 0x12, 0x22, 0x3b, 0x73, 0xb4, 0xc2, 0x7e, 0xf8, 0xef, 0xea, 0x13, 0xcf, - 0x8e, 0x77, 0x2a, 0xa6, 0x55, 0x42, 0x45, 0xa4, 0x69, 0x69, 0x73, 0x0b, - 0xf4, 0xf6, 0xf7, 0x44, 0xab, 0x73, 0x35, 0x79, 0xb6, 0x40, 0x64, 0x2f, - 0x2d, 0x3f, 0xe9, 0x0d, 0xd7, 0xc5, 0xa8, 0x04, 0x15, 0x99, 0xa0, 0xfa, - 0x92, 0x6d, 0x53, 0x4b, 0x23, 0xf8, 0x71, 0xde, 0x3c, 0xbc, 0xc4, 0xbb, - 0x07, 0xbf, 0xd8, 0x1d, 0xe6, 0x63, 0x69, 0x19, 0x9b, 0x0a, 0xc8, 0x63, - 0x06, 0x6d, 0x76, 0x8a, 0x95, 0x27, 0x33, 0x5c, 0x5f, 0x95, 0x48, 0x36, - 0xf7, 0x2f, 0xf6, 0xe7, 0x23, 0x8f, 0xd8, 0xfd, 0x47, 0x53, 0x80, 0x54, - 0x76, 0xd2, 0x1d, 0x81, 0x34, 0xd9, 0x62, 0xff, 0x5e, 0x8c, 0xf9, 0xb6, - 0xdf, 0xa3, 0xba, 0xd2, 0x6c, 0xf2, 0x20, 0x91, 0xb5, 0x88, 0xee, 0xfa, - 0xe8, 0xf1, 0xfb, 0x7f, 0xb5, 0x20, 0x59, 0x53, 0x33, 0x6a, 0x55, 0xa1, - 0xaa, 0x62, 0x90, 0x48, 0x9c, 0xfd, 0x79, 0xf3, 0xcf, 0x5e, 0xa8, 0x28, - 0x20, 0x8f, 0x19, 0x44, 0x42, 0x64, 0x65, 0x86, 0x6f, 0x75, 0xbc, 0xfb, - 0x2f, 0xdd, 0xf7, 0x6f, 0xee, 0x75, 0x31, 0xe4, 0x26, 0x5a, 0x29, 0xe1, - 0x2a, 0xd2, 0xbc, 0xb4, 0xcd, 0x16, 0x88, 0xb4, 0xaf, 0x77, 0xf8, 0x6c, - 0x9f, 0xab, 0xc9, 0x42, 0x22, 0xeb, 0xe5, 0xd9, 0xf9, 0x54, 0x1c, 0xab, - 0x04, 0xb9, 0xd7, 0x16, 0x35, 0xb0, 0xa8, 0x36, 0x97, 0x6c, 0xd3, 0xe8, - 0x91, 0xf4, 0xd1, 0x95, 0xea, 0xa3, 0xeb, 0x42, 0x6d, 0x9f, 0x2b, 0x4f, - 0xe2, 0x6e, 0x07, 0x9d, 0xfa, 0x7f, 0x5d, 0xa9, 0x3e, 0xba, 0x52, 0x7d, - 0x74, 0xa5, 0xfa, 0xe8, 0x4a, 0xf5, 0xd1, 0x95, 0xea, 0x9f, 0xbb, 0xbe, - 0x2c, 0x97, 0xfd, 0xf1, 0x65, 0x2d, 0x4a, 0xf5, 0x61, 0xa5, 0xca, 0x80, - 0x94, 0x87, 0x95, 0xb2, 0x29, 0x46, 0x9b, 0x2e, 0x6d, 0xee, 0x06, 0xb5, - 0x28, 0x95, 0xa2, 0x54, 0x4a, 0x5e, 0xf9, 0x7d, 0x37, 0xb6, 0x52, 0x41, - 0x64, 0x2b, 0xd9, 0x4a, 0xb6, 0x92, 0xeb, 0xd9, 0xa6, 0x8f, 0x1f, 0x5c, - 0x31, 0xb0, 0x06, 0x6b, 0xb0, 0x06, 0x6b, 0x28, 0x16, 0x6a, 0xa5, 0x84, - 0x3d, 0x47, 0x29, 0x76, 0x29, 0x76, 0x29, 0xf6, 0x52, 0x2c, 0x8b, 0xf3, - 0xa6, 0xdf, 0xbd, 0xe5, 0xfd, 0x4f, 0xcf, 0xef, 0x28, 0x65, 0x67, 0xff, - 0x5b, 0xca, 0x57, 0xfb, 0x6b, 0x29, 0x47, 0xf6, 0x41, 0x9e, 0xf9, 0xbc, - 0x3f, 0x7f, 0xe0, 0x66, 0xcb, 0x99, 0x70, 0xe0, 0x59, 0x8a, 0x84, 0x0d, - 0x36, 0xd8, 0xa0, 0x62, 0x34, 0x2f, 0x6d, 0xb3, 0x06, 0xdd, 0x52, 0x01, - 0xd9, 0x92, 0xad, 0x73, 0xbf, 0xe6, 0xad, 0x5f, 0xf8, 0xbc, 0x37, 0xf2, - 0xe9, 0x9a, 0xc5, 0x0d, 0xb6, 0xcf, 0x68, 0x9f, 0x9b, 0xbe, 0x78, 0xbb, - 0x77, 0xee, 0x15, 0xb2, 0x25, 0x5b, 0xb2, 0x25, 0x5b, 0xb2, 0x25, 0x17, - 0x9b, 0xea, 0x27, 0x06, 0xc9, 0x18, 0x24, 0x4b, 0xc2, 0x90, 0xb0, 0x24, - 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, - 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0x48, 0x24, 0x12, 0x89, 0x44, - 0x22, 0x91, 0x48, 0x24, 0x12, 0x89, 0x44, 0x22, 0x21 + 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0xf3, 0x04, 0x00, 0x00, 0xc3, 0x08, + 0x00, 0x00, 0xf4, 0xb2, 0x20, 0x40, 0x04, 0x80, 0x41, 0x10, 0x04, 0xa2, + 0xe8, 0xfb, 0x87, 0x59, 0x73, 0x0d, 0x25, 0x66, 0xc2, 0xa6, 0xf7, 0x41, + 0x80, 0x06, 0x10, 0xc2, 0x20, 0x10, 0xf2, 0x39, 0x45, 0x91, 0xba, 0x88, + 0xad, 0xbb, 0x98, 0x53, 0x10, 0xe0, 0x01, 0xc5, 0x20, 0x10, 0x82, 0x50, + 0x1e, 0x9a, 0xf3, 0x73, 0xab, 0xb3, 0xd1, 0x50, 0x8f, 0x00, 0x01, 0x98, + 0x00, 0x00, 0x00, 0x80, 0x20, 0x08, 0x80, 0xf0, 0x6a, 0xc5, 0xec, 0x52, + 0x69, 0x80, 0xaa, 0x51, 0x07, 0xa2, 0x2e, 0x8f, 0xde, 0xb3, 0x17, 0x11, + 0x1d, 0x8f, 0xfa, 0x79, 0xc8, 0x2c, 0x7d, 0x4e, 0x7c, 0xbb, 0xb5, 0xd6, + 0xb8, 0x7b, 0xc4, 0xf0, 0xd5, 0x74, 0x40, 0x68, 0x22, 0x6d, 0x2f, 0x04, + 0x08, 0xb6, 0xb3, 0x0b, 0x6a, 0xaf, 0x72, 0xa4, 0xed, 0xcd, 0x14, 0x76, + 0x81, 0x66, 0x17, 0x68, 0xa6, 0xd8, 0x09, 0xcc, 0x76, 0xec, 0x7c, 0x11, + 0xba, 0xcc, 0x27, 0xe6, 0xca, 0x3c, 0x1e, 0x07, 0x9e, 0x69, 0x2e, 0x03, + 0x99, 0x59, 0xe3, 0xb3, 0xff, 0xe1, 0x4e, 0x7a, 0xc6, 0xff, 0xbc, 0x41, + 0x67, 0xb7, 0x4a, 0xf6, 0x3b, 0x67, 0xaf, 0xe7, 0x62, 0xcb, 0x22, 0x6c, + 0x75, 0xdd, 0xff, 0x3c, 0x4e, 0xaa, 0x5a, 0x55, 0x9d, 0x52, 0x0a, 0xdb, + 0x1d, 0x63, 0x3c, 0x11, 0x19, 0x33, 0x0b, 0x33, 0x3f, 0x33, 0x3b, 0x6b, + 0xda, 0x3b, 0x29, 0x0c, 0x7b, 0x23, 0x22, 0x00, 0x1e, 0x70, 0xcd, 0x9c, + 0x6b, 0xd4, 0xce, 0xfd, 0x7c, 0xaf, 0x4f, 0xd9, 0x7e, 0x71, 0xf8, 0xfc, + 0x52, 0x99, 0x19, 0x90, 0x8c, 0x8c, 0x48, 0xe2, 0x56, 0x11, 0xd9, 0x99, + 0xdf, 0xa5, 0xef, 0x8e, 0x90, 0xf6, 0x15, 0x8d, 0x10, 0x01, 0x21, 0xc4, + 0x9b, 0x72, 0x12, 0x60, 0xa9, 0xd1, 0x7d, 0x57, 0x28, 0x40, 0x05, 0x58, + 0x3b, 0x48, 0xa4, 0x8c, 0x04, 0x3d, 0x0b, 0x44, 0xa0, 0x36, 0x74, 0x7f, + 0x02, 0x47, 0x2f, 0x5e, 0x6f, 0x04, 0x98, 0x50, 0xf8, 0xfe, 0xed, 0x57, + 0x95, 0xbc, 0xbf, 0xd6, 0x84, 0x96, 0xfb, 0xb5, 0x59, 0x1e, 0x79, 0xa1, + 0x77, 0x16, 0xe5, 0xd6, 0x9c, 0x65, 0xd3, 0x8d, 0xbe, 0x11, 0x02, 0x08, + 0xa0, 0x49, 0xf1, 0x58, 0xd8, 0xc8, 0x2e, 0x0b, 0x01, 0xe8, 0x07, 0xe6, + 0x00, 0x68, 0x5c, 0x65, 0x00, 0x00, 0xe0, 0xef, 0xff, 0xdf, 0x7f, 0x69, + 0x72, 0x7d, 0xb5, 0x7f, 0xe2, 0xa5, 0x26, 0x1a, 0xe5, 0x19, 0xaf, 0xed, + 0x29, 0x19, 0x0e, 0x5c, 0x82, 0x2e, 0x7f, 0xe0, 0x94, 0x4a, 0x1d, 0xae, + 0x90, 0x62, 0x75, 0x52, 0x29, 0x22, 0x28, 0x34, 0x6e, 0x0e, 0x0e, 0x2f, + 0xa5, 0x4a, 0x06, 0x87, 0x3b, 0xa9, 0x50, 0xc1, 0xe1, 0x90, 0x16, 0xaa, + 0x83, 0x14, 0x5c, 0x1c, 0x1c, 0x9e, 0x51, 0x9c, 0x0b, 0x8a, 0x38, 0x66, + 0x74, 0xec, 0xd8, 0xa1, 0xea, 0xea, 0xea, 0xff, 0x58, 0x5f, 0x87, 0x52, + 0xca, 0x3a, 0x0a, 0x50, 0xb0, 0x87, 0xfd, 0x10, 0x02, 0xec, 0xef, 0x63, + 0x9a, 0x52, 0xca, 0x39, 0xe7, 0x52, 0x4a, 0xe9, 0xf7, 0xfb, 0xfd, 0xa6, + 0x69, 0x32, 0xc6, 0x63, 0x3c, 0x68, 0x5b, 0x68, 0x23, 0x02, 0xa8, 0x54, + 0x50, 0x81, 0xaa, 0x02, 0x6a, 0x75, 0xad, 0x06, 0xc6, 0xd4, 0xe3, 0x9a, + 0xba, 0xd4, 0xa5, 0x28, 0x54, 0x55, 0x55, 0x29, 0x4a, 0xab, 0x28, 0x68, + 0x29, 0x68, 0x71, 0x8c, 0x80, 0x1f, 0x2b, 0xdc, 0x3c, 0x3c, 0x34, 0x18, + 0x24, 0x64, 0x04, 0x0c, 0xb0, 0xb6, 0xc6, 0xa9, 0x95, 0x18, 0x0c, 0x37, + 0x03, 0x43, 0xc8, 0xe8, 0x61, 0x80, 0x20, 0x28, 0xae, 0xd0, 0xce, 0xb4, + 0x25, 0x28, 0xc2, 0x1e, 0x66, 0x7b, 0xec, 0x40, 0x20, 0x40, 0xa0, 0x0a, + 0x20, 0x12, 0x20, 0x10, 0xe0, 0x0f, 0x0a, 0x64, 0x3a, 0x4a, 0x59, 0x94, + 0x36, 0x53, 0x4a, 0x6e, 0x72, 0x6e, 0x72, 0x29, 0xe4, 0xb6, 0x2c, 0xda, + 0x22, 0x43, 0x21, 0xb7, 0x94, 0xd6, 0x4f, 0xb8, 0x3a, 0x47, 0x50, 0x60, + 0x8f, 0xbd, 0x19, 0x61, 0x4f, 0x69, 0x67, 0xb3, 0x96, 0x2b, 0x8a, 0xc0, + 0x90, 0xb0, 0x39, 0x14, 0xa2, 0xe7, 0x58, 0xd9, 0x62, 0xad, 0x57, 0x45, + 0x57, 0xec, 0x99, 0xb5, 0x53, 0xae, 0x15, 0xb5, 0x85, 0x9d, 0x51, 0xd6, + 0x8c, 0x1b, 0x85, 0xdb, 0x18, 0x15, 0x0a, 0x05, 0x93, 0x18, 0x50, 0xc5, + 0x98, 0x20, 0x25, 0xcb, 0xf1, 0x54, 0xaf, 0x11, 0x5d, 0x48, 0x41, 0x2d, + 0x56, 0x84, 0x78, 0xab, 0x84, 0xd8, 0x96, 0xd2, 0xe2, 0x7f, 0xdc, 0xa6, + 0x48, 0x29, 0x09, 0xa9, 0x47, 0xa8, 0x24, 0xd5, 0x55, 0xf6, 0xc5, 0xf8, + 0xd5, 0x9f, 0xda, 0xeb, 0x07, 0x5d, 0xd3, 0xc6, 0x69, 0x97, 0x46, 0x37, + 0xc8, 0x1e, 0x95, 0x6c, 0x76, 0xb0, 0x98, 0x71, 0x3b, 0x3c, 0xe4, 0xe0, + 0x7a, 0x2b, 0xb6, 0x4d, 0x37, 0x4a, 0xdd, 0x34, 0x73, 0x23, 0x97, 0x47, + 0xfe, 0x19, 0xcf, 0x58, 0x9c, 0x90, 0xf3, 0xd9, 0x45, 0xd3, 0xfe, 0x57, + 0xca, 0x0b, 0x2f, 0x9b, 0x9b, 0x5b, 0xfa, 0x1b, 0x8b, 0x61, 0xe0, 0x72, + 0x14, 0x8f, 0x4c, 0xee, 0x1e, 0xe8, 0xea, 0x8d, 0xb6, 0x0c, 0x4f, 0xa6, + 0xed, 0x4c, 0xb9, 0xc6, 0x42, 0x2d, 0x8f, 0x76, 0x34, 0x5f, 0xbf, 0x2f, + 0x25, 0x4f, 0x36, 0xea, 0xce, 0xc7, 0xf7, 0x6f, 0x39, 0x8a, 0xe2, 0x65, + 0xc2, 0x70, 0xc1, 0x78, 0x2e, 0x1c, 0xbd, 0x48, 0x1d, 0x42, 0xac, 0x9d, + 0x4d, 0x97, 0x86, 0x52, 0x1e, 0x57, 0x61, 0x62, 0x69, 0x79, 0x8b, 0x6a, + 0x7b, 0xd5, 0xea, 0x19, 0xc6, 0xc9, 0xf0, 0x52, 0xa8, 0xc6, 0x79, 0x79, + 0xc9, 0xa4, 0x62, 0x6b, 0xd5, 0xea, 0xf6, 0xc6, 0x99, 0x3e, 0x21, 0x5d, + 0x14, 0x35, 0x21, 0xf4, 0xcf, 0x57, 0xbd, 0x50, 0x7f, 0xb8, 0x6d, 0xfb, + 0x41, 0x8e, 0xc9, 0x64, 0x6d, 0x79, 0x9a, 0xc2, 0x4a, 0xd7, 0xc6, 0x38, + 0x73, 0xfc, 0x97, 0xb6, 0xdb, 0x55, 0x9f, 0xf3, 0xf0, 0xf3, 0xbb, 0x58, + 0x17, 0x4e, 0x1f, 0x0b, 0x3f, 0x6f, 0x3b, 0xfe, 0xe8, 0x8e, 0xd0, 0x7f, + 0xca, 0xce, 0x66, 0x2d, 0xe7, 0x9c, 0x35, 0xe3, 0xb3, 0x4e, 0x16, 0x9c, + 0xde, 0x1d, 0x3b, 0x57, 0xdb, 0xed, 0x5a, 0x5d, 0x57, 0xf2, 0x52, 0x2c, + 0xad, 0xcf, 0xae, 0x97, 0xb9, 0xb9, 0xd7, 0x76, 0xab, 0x68, 0x1f, 0x31, + 0x7e, 0x63, 0xf6, 0xdd, 0xea, 0xcd, 0x93, 0xb7, 0x7e, 0xdf, 0xfe, 0xf4, + 0xee, 0x6c, 0x79, 0xad, 0x48, 0x31, 0x2f, 0xa6, 0xef, 0xbc, 0xfb, 0x65, + 0xa8, 0x5f, 0xf9, 0xe1, 0x7e, 0x8c, 0x11, 0x95, 0xc3, 0xc3, 0x9b, 0x06, + 0xaf, 0x27, 0xf5, 0x85, 0xa7, 0x5f, 0xed, 0xe9, 0xf5, 0xe9, 0x2f, 0xad, + 0xac, 0x8d, 0x36, 0x36, 0x9e, 0x19, 0x0d, 0x06, 0x83, 0xc1, 0xd6, 0x4b, + 0x1b, 0x17, 0x97, 0xc2, 0x79, 0xff, 0x3e, 0xae, 0xbd, 0x57, 0x7e, 0xb9, + 0xd7, 0x5b, 0x09, 0x21, 0xa5, 0x94, 0xbe, 0x28, 0x93, 0xe9, 0x88, 0xd1, + 0xdb, 0x77, 0x8e, 0x26, 0x4d, 0xce, 0xcd, 0xf7, 0xf3, 0xf6, 0x0d, 0x55, + 0x60, 0xa9, 0x17, 0xa4, 0xf4, 0x6b, 0xa1, 0x94, 0xf2, 0xdb, 0x13, 0x9b, + 0xcf, 0x56, 0x4e, 0xee, 0xb1, 0x8e, 0x37, 0xcf, 0x31, 0x7f, 0x3e, 0x7c, + 0xbb, 0xf6, 0xc1, 0x27, 0x1d, 0x74, 0x74, 0x3a, 0x74, 0x5d, 0xd7, 0x75, + 0x00, 0x01, 0x41, 0x5c, 0x01, 0xcd, 0xb3, 0x8c, 0xe2, 0xf8, 0x4f, 0x73, + 0x3a, 0xf9, 0x41, 0xfb, 0x7f, 0xff, 0x1e, 0xb2, 0x28, 0x8e, 0xae, 0x0e, + 0x09, 0x99, 0x4a, 0x0f, 0x68, 0x2f, 0xe1, 0x25, 0x53, 0x79, 0x47, 0xd7, + 0x86, 0x08, 0xba, 0xe5, 0x06, 0x7a, 0x39, 0x56, 0x47, 0x1f, 0x6c, 0x36, + 0x0b, 0xf1, 0x18, 0x33, 0x86, 0xde, 0x42, 0x69, 0x52, 0xb2, 0x04, 0xbe, + 0xe7, 0x0f, 0x88, 0x84, 0xa1, 0x32, 0x85, 0x61, 0x00, 0x9e, 0xe7, 0xfd, + 0xce, 0x99, 0xb9, 0x8e, 0x33, 0xf7, 0x2a, 0x94, 0x6c, 0xc8, 0xca, 0x4a, + 0xb1, 0x51, 0x57, 0xd9, 0x20, 0x85, 0x42, 0x09, 0x0b, 0x21, 0x3b, 0x9b, + 0xfb, 0x77, 0x66, 0xbe, 0x99, 0xf3, 0xf3, 0x3e, 0x4a, 0x41, 0x24, 0x4a, + 0xb9, 0xc4, 0xa8, 0xe2, 0x38, 0x6a, 0x5c, 0x42, 0x7c, 0x4c, 0x05, 0x41, + 0x94, 0x36, 0x89, 0x71, 0x01, 0xf1, 0xd5, 0x3e, 0x12, 0x37, 0x11, 0x1f, + 0x71, 0x23, 0xe0, 0x92, 0x13, 0x97, 0x80, 0xab, 0x18, 0xfd, 0x7f, 0xe7, + 0x9c, 0xaa, 0x5b, 0x75, 0xbf, 0x2e, 0xb8, 0x75, 0x23, 0xa2, 0x19, 0x75, + 0xf7, 0x27, 0x6d, 0x67, 0x20, 0x08, 0xea, 0x34, 0x1c, 0x11, 0x60, 0x12, + 0xc0, 0x28, 0x08, 0x03, 0x51, 0x00, 0x7d, 0xdf, 0xdd, 0xc1, 0xa2, 0x23, + 0x72, 0xb2, 0x3d, 0x98, 0x18, 0x80, 0x00, 0x3e, 0x97, 0xec, 0xf9, 0xb6, + 0xb3, 0x6a, 0x26, 0x83, 0x0d, 0x03, 0x19, 0x12, 0x96, 0x84, 0x21, 0x61, + 0x49, 0x18, 0x12, 0x96, 0x84, 0x21, 0x61, 0x49, 0x18, 0x12, 0x96, 0x84, + 0x21, 0x61, 0x49, 0x18, 0x12, 0x89, 0x44, 0x22, 0x91, 0x48, 0x24, 0x12, + 0x89, 0x44, 0x22, 0x91, 0x48, 0x24, 0x64, 0xd1, 0x75, 0x1c, 0xfb, 0x28, + 0xb5, 0xf3, 0xc8, 0x63, 0xc7, 0xac, 0xb6, 0x39, 0x56, 0x51, 0x36, 0xc7, + 0xa4, 0x34, 0xc7, 0xd4, 0xd0, 0x1c, 0x53, 0xef, 0xe2, 0x81, 0x1f, 0xf9, + 0xf8, 0xbb, 0x3f, 0xbd, 0xff, 0x23, 0x67, 0xb9, 0x3a, 0x7c, 0xbe, 0xd5, + 0xd5, 0x7c, 0x08, 0x67, 0xbe, 0xea, 0x3f, 0x37, 0xfe, 0xe1, 0x9d, 0xbf, + 0xff, 0xe6, 0xb3, 0xdf, 0x6c, 0x3d, 0x48, 0xcd, 0x31, 0x55, 0x9a, 0x63, + 0xaa, 0x34, 0xc7, 0x54, 0x69, 0x8e, 0xa9, 0xd2, 0x1c, 0x53, 0xa5, 0xb9, + 0x90, 0x8e, 0xc5, 0x51, 0xff, 0x77, 0xa4, 0xff, 0x72, 0xd8, 0xf8, 0xff, + 0x3f, 0xa8, 0x7e, 0xd8, 0x36, 0xd0, 0x18, 0x48, 0x71, 0x86, 0x27, 0xfb, + 0xd9, 0x07, 0xc5, 0x9e, 0x73, 0x45, 0x72, 0x38, 0x92, 0x15, 0x90, 0x7e, + 0xf3, 0x73, 0x7d, 0xe6, 0xbb, 0xb7, 0x54, 0xc2, 0x71, 0x70, 0x1c, 0x1c, + 0x07, 0xc7, 0xa1, 0xba, 0x50, 0xd6, 0x1a, 0xee, 0x53, 0xd4, 0xea, 0x5e, + 0xab, 0x7b, 0xad, 0x97, 0xee, 0x8f, 0x35, 0xee, 0x7d, 0xf4, 0x82, 0x33, + 0x3d, 0x5d, 0x9c, 0xba, 0x73, 0x6b, 0x54, 0xa6, 0x50, 0xad, 0x52, 0xad, + 0x52, 0xdd, 0x55, 0xb4, 0x93, 0xf5, 0xab, 0xe5, 0x66, 0x9f, 0xbe, 0xbf, + 0x8a, 0x7f, 0x5d, 0x15, 0x62, 0x0e, 0x77, 0x70, 0x07, 0x77, 0x50, 0x75, + 0x74, 0xcc, 0x63, 0xfc, 0xcb, 0x76, 0xed, 0x3a, 0x94, 0x5d, 0x3d, 0x74, + 0xa8, 0x51, 0xf6, 0x6d, 0x9f, 0x3e, 0xec, 0xd3, 0x88, 0x8e, 0x08, 0x84, + 0x19, 0x98, 0x81, 0x19, 0x98, 0x4d, 0x57, 0xe0, 0x87, 0x66, 0x60, 0x06, + 0x66, 0x60, 0x06, 0x61, 0x46, 0xea, 0x39, 0xaa, 0x4e, 0x1f, 0x48, 0x78, + 0x77, 0xe2, 0x7f, 0xf3, 0xb7, 0x8d, 0xe7, 0x33, 0x3e, 0xf6, 0xdb, 0x9f, + 0xa7, 0xbb, 0xe3, 0xfd, 0x87, 0xbf, 0x6f, 0x9b, 0xa1, 0x3a, 0x79, 0x73, + 0xbf, 0xad, 0xe2, 0x78, 0x20, 0x07, 0x33, 0xec, 0x8f, 0x37, 0xf5, 0xe3, + 0xdf, 0xc7, 0xd7, 0x9b, 0x2f, 0x8a, 0x41, 0xde, 0xbc, 0xa6, 0xe7, 0xb6, + 0xaa, 0x61, 0x49, 0x83, 0xb0, 0x3e, 0xaa, 0x63, 0x48, 0xf7, 0x9f, 0x72, + 0x5b, 0x3d, 0xc2, 0xc8, 0xcd, 0x90, 0xc8, 0xb1, 0x1f, 0x9b, 0x53, 0x3c, + 0xe4, 0xf4, 0x46, 0xfe, 0x55, 0x8c, 0xc8, 0x28, 0x5d, 0x21, 0x53, 0x75, + 0x50, 0x57, 0xdf, 0xff, 0xd9, 0xc2, 0x3b, 0x5e, 0x3c, 0x3b, 0xb8, 0xf5, + 0xa0, 0x2a, 0x0c, 0x72, 0x9b, 0x41, 0x24, 0x44, 0x0e, 0x66, 0xf8, 0x36, + 0x60, 0xa7, 0x72, 0xc2, 0x3f, 0xdf, 0x3d, 0xa1, 0xbe, 0x76, 0x94, 0x21, + 0xcd, 0x82, 0xaa, 0xcc, 0x2c, 0xb6, 0x08, 0x43, 0xf1, 0xf7, 0xa2, 0xab, + 0x17, 0xb2, 0xff, 0xf3, 0xd6, 0xc2, 0xab, 0x93, 0x5b, 0x75, 0x44, 0x8e, + 0x66, 0xd4, 0x8f, 0x97, 0xfb, 0x0a, 0x7b, 0xb5, 0x30, 0xd4, 0x90, 0x4b, + 0xd6, 0xe9, 0x39, 0xaa, 0x76, 0x8d, 0x3a, 0x9c, 0xeb, 0xee, 0x06, 0xcf, + 0xfb, 0x31, 0x6b, 0xb8, 0x0b, 0x83, 0x7c, 0xcc, 0xa1, 0xd9, 0x08, 0x53, + 0xbe, 0x98, 0xe3, 0xbf, 0xe9, 0x7f, 0xc5, 0x27, 0x38, 0xdb, 0x59, 0x18, + 0xa8, 0x9b, 0x15, 0xd3, 0x49, 0x2a, 0x38, 0x8b, 0xd9, 0x62, 0x7b, 0xc4, + 0x73, 0x95, 0xbc, 0x18, 0xf9, 0x20, 0x91, 0x1d, 0xd0, 0xed, 0xf1, 0xc9, + 0xd3, 0xa3, 0x3b, 0x32, 0x8c, 0x20, 0x29, 0x83, 0x50, 0xa8, 0xd8, 0x7e, + 0xb8, 0x70, 0xfb, 0xb2, 0xc3, 0xb3, 0x50, 0xa8, 0xc8, 0x21, 0x9f, 0x73, + 0x88, 0x84, 0xc8, 0x66, 0x8e, 0x2c, 0xec, 0x64, 0x39, 0xb9, 0xf7, 0xea, + 0x78, 0x66, 0x64, 0x21, 0x14, 0x22, 0xf5, 0xea, 0xcb, 0xea, 0xdb, 0xb7, + 0xdf, 0x6c, 0x0f, 0xa7, 0x2c, 0x8b, 0x91, 0x7b, 0x75, 0x44, 0xf6, 0xd2, + 0x59, 0xd6, 0x03, 0xdf, 0x6c, 0x2c, 0xd1, 0x12, 0x19, 0xd4, 0x6d, 0x51, + 0x3e, 0x9f, 0xd7, 0xed, 0x63, 0x4e, 0x56, 0x07, 0x78, 0x87, 0x17, 0xcd, + 0x66, 0x01, 0x76, 0xe1, 0x90, 0x9f, 0x59, 0x0c, 0xd0, 0x66, 0x45, 0x1c, + 0xee, 0xea, 0x65, 0xfe, 0x7f, 0x83, 0x77, 0xa8, 0x14, 0x36, 0xd3, 0x71, + 0x66, 0x7b, 0xb1, 0xdb, 0xdc, 0x2c, 0x3c, 0x90, 0x5a, 0x5e, 0x86, 0x14, + 0x0b, 0x7f, 0xe8, 0xc3, 0x0b, 0x39, 0x92, 0x65, 0x94, 0xa6, 0x4b, 0xd9, + 0xc5, 0xd5, 0x5b, 0x37, 0x81, 0x91, 0x41, 0x28, 0x94, 0x17, 0x20, 0x66, + 0x11, 0x90, 0xa1, 0x50, 0xc8, 0xb9, 0x7a, 0x7c, 0xb8, 0x6f, 0xc9, 0x20, + 0x14, 0xca, 0x2c, 0xab, 0x97, 0x7d, 0xe3, 0xbc, 0xd5, 0x29, 0xce, 0x32, + 0xcb, 0xc9, 0x69, 0x46, 0xa9, 0x4e, 0x5c, 0xba, 0xa0, 0x22, 0x59, 0xd4, + 0x7d, 0xf1, 0xe8, 0xc7, 0x6f, 0xd9, 0xea, 0xa0, 0x0e, 0x2f, 0xda, 0xf6, + 0xcb, 0x59, 0x6c, 0x7b, 0xe7, 0x64, 0x1f, 0x38, 0x29, 0x6c, 0xfc, 0x85, + 0xed, 0x17, 0xec, 0xe4, 0xb8, 0x1b, 0x3b, 0xca, 0xad, 0xa7, 0x60, 0xc5, + 0x3f, 0xd9, 0xc1, 0x9a, 0xce, 0xc4, 0x99, 0x08, 0x0c, 0xb8, 0x27, 0x07, + 0x33, 0xb4, 0x79, 0xd1, 0x65, 0x20, 0x9d, 0x34, 0x37, 0xe2, 0xb5, 0xc2, + 0x49, 0x5a, 0x13, 0x71, 0x49, 0xcf, 0xb8, 0x70, 0xd4, 0x31, 0x96, 0xa6, + 0xb9, 0x9a, 0x5f, 0x8e, 0xb3, 0x9a, 0x9f, 0xd6, 0x9b, 0xab, 0xde, 0xda, + 0x2a, 0x4e, 0xbe, 0xc9, 0x0a, 0x80, 0x1c, 0x1d, 0xa9, 0x90, 0x4e, 0x7f, + 0x71, 0x81, 0xc4, 0x0c, 0x49, 0x37, 0xc1, 0x05, 0x2f, 0xcf, 0x50, 0x0f, + 0x8c, 0xec, 0x84, 0xfa, 0xad, 0x7d, 0xd8, 0x79, 0x8a, 0xad, 0x5e, 0xad, + 0xd0, 0xba, 0x73, 0xb5, 0x96, 0xcd, 0xdb, 0xd5, 0xdb, 0xbe, 0x36, 0x5b, + 0x57, 0xfc, 0x7a, 0xde, 0x36, 0xd7, 0xd2, 0x56, 0x4c, 0x42, 0xe4, 0x60, + 0x86, 0x5c, 0x29, 0xd4, 0x45, 0x62, 0xbb, 0xdd, 0xe2, 0x55, 0xc7, 0x34, + 0x91, 0x96, 0x71, 0x35, 0xee, 0xb1, 0xb1, 0x2c, 0xc6, 0x46, 0xf5, 0xa5, + 0x63, 0x5a, 0x75, 0xe6, 0xdc, 0xd8, 0x8c, 0x52, 0x4a, 0x69, 0xc6, 0xe1, + 0x9b, 0xad, 0x28, 0x64, 0xb9, 0x2f, 0x9d, 0x0d, 0x47, 0xda, 0x78, 0x44, + 0xb2, 0x81, 0x0c, 0x5a, 0x17, 0xf7, 0x3f, 0xcf, 0xba, 0xd6, 0xb2, 0x60, + 0x74, 0xad, 0xe5, 0x7d, 0x7b, 0x63, 0x2e, 0x36, 0x51, 0x17, 0xbb, 0xd9, + 0xf9, 0x66, 0x73, 0x7e, 0x30, 0x86, 0xb6, 0x61, 0xd9, 0x37, 0x23, 0xfb, + 0x96, 0x52, 0xe7, 0xc7, 0xdd, 0xb1, 0x2d, 0xdd, 0xbe, 0xe5, 0x6e, 0x6d, + 0x53, 0x86, 0x7a, 0x60, 0xcc, 0x90, 0xd5, 0xb5, 0x55, 0x4c, 0x91, 0xb8, + 0xf5, 0x72, 0xce, 0x5f, 0x7e, 0xd9, 0x2c, 0x69, 0xf5, 0x7a, 0x7d, 0x5d, + 0x1d, 0x35, 0x9c, 0x5e, 0xe5, 0x1c, 0x57, 0x68, 0xae, 0xe7, 0xcd, 0x16, + 0xb6, 0x69, 0x4c, 0x4c, 0xd9, 0x5f, 0x9b, 0x59, 0xee, 0x6b, 0xa4, 0x69, + 0x48, 0x1d, 0x78, 0x5d, 0xcb, 0xe8, 0xbc, 0xdc, 0xe9, 0x0e, 0xc7, 0x0a, + 0x39, 0x48, 0xd9, 0x08, 0xd9, 0xea, 0x5a, 0xd1, 0xe9, 0x6e, 0xcd, 0xaa, + 0x76, 0xd3, 0x37, 0x6f, 0xa3, 0xec, 0x5e, 0xfb, 0x7a, 0x45, 0xdb, 0x64, + 0x8b, 0xad, 0xc4, 0xba, 0xb4, 0xd5, 0x4c, 0xb9, 0x33, 0x43, 0x36, 0x85, + 0x5c, 0x06, 0x52, 0x06, 0x6f, 0x1f, 0x16, 0xca, 0x34, 0x4f, 0x3d, 0x28, + 0x17, 0xdb, 0xd6, 0x3d, 0x6c, 0xc3, 0xa9, 0x66, 0x46, 0x33, 0x16, 0x31, + 0xac, 0x2d, 0x9d, 0x6e, 0xb8, 0xe1, 0x1b, 0xb8, 0x9c, 0xbc, 0x6f, 0xf4, + 0x58, 0x2c, 0x1c, 0x95, 0x52, 0xae, 0x7e, 0x5a, 0x64, 0xd1, 0xde, 0x1b, + 0x97, 0xcd, 0x9a, 0x2b, 0x55, 0x07, 0xf5, 0xb6, 0x55, 0xb5, 0xd5, 0x96, + 0xc2, 0xa6, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xd0, 0x35, 0xca, 0x9a, 0x5a, + 0x60, 0xb4, 0xdb, 0xd5, 0x7c, 0x08, 0xd7, 0x33, 0x99, 0xe6, 0xa7, 0x56, + 0x9f, 0x61, 0x68, 0x8d, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3a, 0x52, 0x37, 0xa4, 0x0e, 0xe2, 0x3b, 0x24, 0x3d, 0xac, + 0x7f, 0x4c, 0xa8, 0xcb, 0x40, 0xca, 0x4e, 0xa8, 0xaf, 0x30, 0x1d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x57, 0xa8, 0xcb, 0x40, + 0xca, 0xce, 0xa5, 0xbe, 0x2f, 0x92, 0x77, 0x2b, 0xd5, 0x17, 0x86, 0x54, + 0x8a, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe2, + 0x50, 0x0c, 0x95, 0x62, 0xcb, 0xa9, 0x25, 0x83, 0x3e, 0xdf, 0xa4, 0x96, + 0x4f, 0x55, 0x07, 0xf5, 0xf4, 0x62, 0x7a, 0xbf, 0xf0, 0x45, 0x72, 0x25, + 0xbf, 0x8b, 0xeb, 0xe2, 0xba, 0xb8, 0x2e, 0xae, 0x8b, 0xeb, 0xe2, 0xba, + 0xb8, 0x2e, 0x3d, 0x29, 0x4d, 0x55, 0x07, 0xf5, 0xe4, 0x27, 0x7d, 0xd4, + 0x91, 0x21, 0x70, 0x7a, 0x75, 0x64, 0x18, 0x91, 0x57, 0x20, 0x45, 0x75, + 0x14, 0xa0, 0x47, 0x67, 0xf4, 0xd6, 0x14, 0x0a, 0x5f, 0x86, 0x81, 0xd2, + 0x2c, 0x08, 0xe5, 0x35, 0x5d, 0x86, 0x42, 0xe1, 0x31, 0x43, 0x86, 0xde, + 0xab, 0x1c, 0x5f, 0x99, 0xbc, 0xeb, 0xc2, 0xbb, 0x23, 0x15, 0x27, 0x9c, + 0xfc, 0x05, 0x0a, 0x52, 0xa0, 0xe5, 0x51, 0x92, 0x75, 0x3e, 0xff, 0xba, + 0x96, 0x4f, 0x65, 0xe8, 0x49, 0x69, 0x3a, 0xc9, 0x06, 0x7c, 0x06, 0x78, + 0xa8, 0x0e, 0x79, 0x80, 0xaf, 0x81, 0x85, 0x9e, 0x5e, 0x4c, 0x91, 0xe8, + 0xc9, 0xa5, 0xbe, 0x61, 0x1c, 0x69, 0xfd, 0x93, 0xc5, 0xe9, 0xa4, 0x02, + 0x0a, 0xb2, 0xc9, 0x33, 0x90, 0x22, 0x13, 0x48, 0x7c, 0x8f, 0xa4, 0x87, + 0xe6, 0x67, 0x84, 0x42, 0x24, 0x32, 0x08, 0x85, 0xc8, 0x06, 0x04, 0x88, + 0x3c, 0x01, 0x01, 0x22, 0x43, 0xa1, 0x50, 0x86, 0x0c, 0xdd, 0xeb, 0xdb, + 0x22, 0xf9, 0xcc, 0x52, 0xbd, 0x67, 0x0a, 0x0a, 0xb2, 0x9d, 0x7c, 0x87, + 0x13, 0xa4, 0x60, 0xde, 0x9b, 0x0f, 0x3a, 0x06, 0xbd, 0x68, 0xae, 0xef, + 0xd6, 0xb3, 0x3a, 0x45, 0xa2, 0xa7, 0x17, 0x53, 0x64, 0x03, 0x02, 0x54, + 0x1d, 0xf2, 0x00, 0x01, 0xa2, 0xa7, 0x17, 0x53, 0x24, 0x7a, 0x72, 0x57, + 0xce, 0x7e, 0x56, 0xcf, 0x99, 0x72, 0xc7, 0x5b, 0x49, 0x77, 0xa4, 0x02, + 0x0a, 0xb2, 0xc9, 0x33, 0x90, 0x22, 0x13, 0x88, 0xfb, 0x65, 0x64, 0x74, + 0x4a, 0xbc, 0xf2, 0x58, 0x21, 0x12, 0x19, 0x84, 0x42, 0x64, 0x03, 0x02, + 0x44, 0x9e, 0x80, 0x00, 0x91, 0xa1, 0x50, 0x28, 0xc3, 0x4d, 0xe8, 0xe5, + 0x2b, 0x42, 0x99, 0xf2, 0xf0, 0xac, 0x9d, 0x64, 0x4e, 0x90, 0x1d, 0x46, + 0x1e, 0x6e, 0x04, 0x29, 0xca, 0x95, 0xee, 0x1e, 0x92, 0x75, 0x6e, 0xda, + 0x39, 0x7e, 0xe6, 0x57, 0x53, 0x19, 0x3a, 0x6a, 0x79, 0xb3, 0x24, 0x3c, + 0x38, 0x48, 0xfe, 0xea, 0x90, 0xd3, 0x60, 0x30, 0x18, 0xfc, 0x04, 0xdf, + 0xa5, 0xcd, 0x8b, 0x50, 0x18, 0xe8, 0x95, 0xc7, 0x03, 0xce, 0xd3, 0xc3, + 0x19, 0x86, 0x3a, 0xbc, 0xb6, 0x90, 0x02, 0x14, 0x59, 0xe4, 0x0a, 0x50, + 0x64, 0xe2, 0x25, 0x2a, 0x48, 0xca, 0xe0, 0x9f, 0xb8, 0xd4, 0xb5, 0x44, + 0x22, 0xcd, 0x82, 0x50, 0x16, 0x42, 0xe4, 0x42, 0x08, 0x21, 0x84, 0xc8, + 0x20, 0x14, 0xca, 0x70, 0x77, 0xeb, 0xe7, 0xe7, 0x79, 0x22, 0x93, 0x21, + 0xcd, 0xea, 0xc7, 0x0f, 0x65, 0x1a, 0x1a, 0x19, 0x47, 0x72, 0x72, 0x86, + 0x53, 0xab, 0x23, 0x9f, 0xb1, 0x41, 0xb5, 0xba, 0x91, 0x7a, 0x94, 0x37, + 0x56, 0xf6, 0x3b, 0x7d, 0x79, 0x41, 0x03, 0x75, 0xb5, 0xa2, 0x2b, 0x83, + 0xaa, 0x83, 0xe4, 0x90, 0x53, 0x08, 0x21, 0x84, 0xe8, 0x5a, 0xcb, 0x43, + 0xce, 0xa3, 0xc6, 0x4b, 0x5c, 0xf7, 0xb5, 0x96, 0x9b, 0xcd, 0x34, 0xa4, + 0xfe, 0x55, 0x47, 0x1d, 0xd4, 0xb3, 0xc8, 0xd5, 0x41, 0x5d, 0x1a, 0xb6, + 0x34, 0x2f, 0xee, 0x48, 0x3d, 0xa3, 0xec, 0x0a, 0xf5, 0xb3, 0xcb, 0xbf, + 0xe9, 0x0c, 0x65, 0x27, 0xd4, 0x95, 0x85, 0x10, 0xb9, 0x10, 0x42, 0x08, + 0x21, 0xb2, 0x13, 0xea, 0x2d, 0xed, 0x0f, 0xf7, 0xfd, 0x7d, 0x92, 0xec, + 0x0a, 0x75, 0x65, 0x4a, 0x8b, 0x71, 0xc9, 0x97, 0x1e, 0x9c, 0x4a, 0x11, + 0x56, 0x49, 0x86, 0x64, 0xe4, 0x8c, 0x30, 0xb7, 0x1f, 0x17, 0xff, 0x7f, + 0xbb, 0xd7, 0x84, 0x13, 0x92, 0x75, 0x7a, 0x94, 0xb2, 0x21, 0xe9, 0x8f, + 0x2f, 0xef, 0xd5, 0x83, 0xd2, 0x50, 0x06, 0x39, 0x48, 0x72, 0xc8, 0x29, + 0x84, 0x10, 0x42, 0xf4, 0xf0, 0x62, 0x3c, 0x0c, 0x17, 0x79, 0xd1, 0xc1, + 0x53, 0xa7, 0x07, 0xa5, 0xe1, 0x74, 0xa4, 0x8e, 0xd3, 0xd0, 0xa3, 0x53, + 0xbe, 0xa6, 0x81, 0x5a, 0x16, 0xb9, 0x1a, 0xa8, 0x5d, 0xbf, 0xf4, 0x24, + 0x35, 0xa4, 0x46, 0x52, 0x36, 0x42, 0x4d, 0x28, 0x74, 0xe0, 0xe1, 0xfb, + 0x27, 0x71, 0xa4, 0x50, 0x16, 0x42, 0xe4, 0x42, 0x08, 0x21, 0x84, 0xc8, + 0xc6, 0xbe, 0x3b, 0x5a, 0x7d, 0xd7, 0xc9, 0x9d, 0xfd, 0x13, 0x19, 0x0a, + 0x85, 0x48, 0xbd, 0x45, 0xc9, 0x3c, 0xed, 0x89, 0x59, 0x0a, 0xf9, 0x4f, + 0xae, 0x56, 0xe2, 0xdd, 0x5c, 0xa3, 0x92, 0x22, 0xac, 0x14, 0x33, 0x52, + 0x0f, 0x2f, 0x86, 0x1c, 0xa4, 0xef, 0x5e, 0x79, 0x7f, 0xd9, 0xbd, 0x5f, + 0xfb, 0x7c, 0xfe, 0x4f, 0xc3, 0x8b, 0x31, 0x86, 0x4a, 0x63, 0x0c, 0x95, + 0xc6, 0x18, 0x2a, 0x8d, 0x31, 0x54, 0x1a, 0x63, 0xa8, 0x34, 0xc6, 0x50, + 0x69, 0x8c, 0xa1, 0xd2, 0x18, 0x43, 0x43, 0x63, 0xff, 0xe2, 0x44, 0xbc, + 0xed, 0xe9, 0x78, 0xc0, 0xcf, 0x85, 0x16, 0x0e, 0xea, 0x41, 0x69, 0xd8, + 0x4c, 0x07, 0x35, 0x47, 0x42, 0xff, 0xf6, 0xc8, 0x4f, 0x1d, 0x0e, 0x5e, + 0xa4, 0x68, 0x48, 0x16, 0x48, 0x18, 0x06, 0x86, 0x81, 0x61, 0x60, 0x18, + 0x18, 0x06, 0x86, 0x51, 0x4e, 0x70, 0xf2, 0xfc, 0x71, 0xe1, 0x90, 0x0c, + 0xc9, 0x33, 0x4a, 0x57, 0xc8, 0x15, 0x06, 0x12, 0x89, 0xf3, 0xef, 0xcf, + 0x79, 0xe3, 0x4b, 0x59, 0xb8, 0xa6, 0x92, 0xbb, 0xe4, 0x2e, 0xb9, 0x4b, + 0xee, 0x92, 0xbb, 0xe4, 0x2e, 0xf9, 0xa3, 0x6f, 0xb6, 0xdc, 0x4d, 0xf7, + 0xb9, 0xae, 0x9b, 0x30, 0x90, 0x48, 0xa4, 0x29, 0xe4, 0xca, 0xf4, 0x16, + 0xa5, 0x87, 0x41, 0xfa, 0xd6, 0x1e, 0xf9, 0xfe, 0xd6, 0x8a, 0xb5, 0x86, + 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0xb9, + 0x8b, 0xef, 0x89, 0x7d, 0xe6, 0xe8, 0x61, 0x18, 0x52, 0x33, 0x9a, 0x64, + 0x8d, 0x1e, 0x8b, 0xf2, 0x31, 0x06, 0xa5, 0x31, 0x86, 0x4a, 0x63, 0x0c, + 0xbd, 0x51, 0xd9, 0xef, 0xaa, 0xbd, 0x21, 0x5b, 0xbf, 0xd0, 0xf8, 0x77, + 0xa8, 0x34, 0xc6, 0x50, 0x69, 0x8c, 0xa1, 0xd2, 0x18, 0x43, 0xa5, 0x31, + 0x86, 0x4a, 0xe3, 0xe3, 0xd0, 0xdd, 0xf4, 0x85, 0x2f, 0xfe, 0x5d, 0x55, + 0x1a, 0xc3, 0x55, 0xaa, 0x03, 0x4a, 0x3e, 0x5c, 0x25, 0x77, 0x56, 0x47, + 0x0b, 0x8c, 0xe2, 0x48, 0x66, 0x48, 0x66, 0x48, 0x66, 0xf1, 0xe0, 0xc7, + 0x5f, 0x13, 0x90, 0x19, 0x92, 0x19, 0x92, 0x19, 0x92, 0x19, 0x92, 0x2d, + 0x77, 0x6e, 0xdf, 0xb9, 0x3a, 0x77, 0x62, 0x18, 0x18, 0x06, 0x86, 0x81, + 0x61, 0xe0, 0x48, 0x4a, 0xf3, 0xc0, 0xe6, 0x70, 0xc9, 0x5d, 0x72, 0x97, + 0x7c, 0xe7, 0x68, 0xa7, 0xb8, 0xf6, 0x97, 0xcf, 0x7e, 0xdc, 0x37, 0x57, + 0x8d, 0x3d, 0x9f, 0xc0, 0xa5, 0xfc, 0x77, 0xd7, 0xbd, 0xfc, 0xde, 0x75, + 0x24, 0x3f, 0x88, 0x5b, 0x5c, 0xf9, 0x87, 0xc7, 0x5e, 0x67, 0x77, 0x7b, + 0x15, 0x62, 0x16, 0x77, 0x70, 0x07, 0x77, 0x70, 0x07, 0x19, 0x52, 0x1b, + 0xb5, 0x35, 0xa7, 0x35, 0xa9, 0x35, 0xa9, 0x35, 0xa9, 0x35, 0x5d, 0xf1, + 0xc3, 0xcf, 0xfa, 0xd1, 0x7b, 0x39, 0xdd, 0xe1, 0x9e, 0x9a, 0xf7, 0xe6, + 0x34, 0xfd, 0xbd, 0xc6, 0xf7, 0xf9, 0x81, 0x1f, 0xfc, 0xf6, 0xa0, 0x54, + 0x6b, 0x52, 0x6b, 0x52, 0x6b, 0x52, 0x6b, 0x52, 0x6b, 0x52, 0x43, 0x06, + 0x2d, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, + 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, + 0x09, 0x4b, 0xc2, 0x90, 0x48, 0x24, 0x12, 0x89, 0x44, 0x22, 0x91, 0x48, + 0x24, 0x12, 0x89, 0x44, 0x22, 0x21 +}; + +/** + * Basis Universal compressed 256x256 RGBA texture source. + * \n + * See \c testcard-rgba.png for the original. Generate using: + * \code + * basisu -level 5 -max_endpoints 16128 -max_selectors 16128 -linear -y_flip + * \endcode + */ +static uint8_t const srcRgba[] = { + 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0x18, 0xbe, 0x33, 0x13, 0x00, 0x00, + 0xdb, 0x65, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x95, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, + 0x00, 0x02, 0xdf, 0x01, 0x00, 0x00, 0x45, 0x04, 0x00, 0x24, 0x06, 0x00, + 0x00, 0xf1, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0x15, 0x07, 0x00, 0x00, 0xfd, 0x08, + 0x00, 0x00, 0x7f, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x01, 0x40, 0x00, 0x40, 0x00, 0x12, 0x10, 0x00, 0x00, 0x6e, 0x03, 0x00, + 0x00, 0xec, 0xdf, 0x20, 0x40, 0x04, 0x80, 0x41, 0x10, 0x84, 0x82, 0xe8, + 0xbb, 0xaf, 0x62, 0x94, 0x06, 0xcd, 0x35, 0xc8, 0x94, 0x03, 0x01, 0x1e, + 0x40, 0x0c, 0x83, 0x20, 0x0c, 0xec, 0x03, 0xb5, 0x38, 0x9d, 0x40, 0x9c, + 0x84, 0x21, 0x1c, 0x08, 0xf0, 0x80, 0x61, 0x18, 0x84, 0x61, 0x58, 0xdc, + 0xc3, 0x02, 0x74, 0xd3, 0x2a, 0xd1, 0x4b, 0x0e, 0x02, 0x10, 0x01, 0x00, + 0x00, 0x00, 0x41, 0x10, 0x04, 0xe6, 0xcb, 0x54, 0xfa, 0x1c, 0xa4, 0xd6, + 0x60, 0xea, 0x40, 0x4c, 0xe7, 0x0e, 0xc1, 0x73, 0x65, 0x0c, 0x17, 0x35, + 0x02, 0xce, 0xc1, 0xf5, 0x45, 0x10, 0x93, 0xc1, 0x02, 0x80, 0x59, 0x00, + 0x52, 0x87, 0x70, 0xe8, 0x64, 0x90, 0x9a, 0xb0, 0x0d, 0x1c, 0x70, 0x6c, + 0x83, 0xff, 0x17, 0xcf, 0x15, 0x04, 0x96, 0xe9, 0x14, 0xb6, 0xbd, 0xe3, + 0xc1, 0x5e, 0x00, 0xe0, 0xba, 0xf1, 0xf4, 0x04, 0x00, 0x77, 0xc3, 0x00, + 0xd3, 0x8a, 0x3d, 0x00, 0x63, 0x5b, 0x7b, 0x24, 0x42, 0x8f, 0x71, 0x63, + 0xc0, 0x00, 0x58, 0xd3, 0xeb, 0x86, 0xa9, 0x19, 0x44, 0xf4, 0x75, 0xc8, + 0xdf, 0xf4, 0xf0, 0xae, 0x7d, 0xd8, 0xfd, 0x4d, 0x99, 0x9d, 0xf7, 0xf3, + 0x8e, 0xcf, 0x6b, 0xa6, 0xb3, 0x86, 0xed, 0x3b, 0x1f, 0xa2, 0xd7, 0x93, + 0x31, 0xee, 0xb0, 0xda, 0xba, 0x07, 0xad, 0xb5, 0x2b, 0xef, 0x2f, 0x1f, + 0xbc, 0xdd, 0x7d, 0x25, 0x5f, 0x47, 0x44, 0x24, 0xee, 0xfe, 0xaf, 0xeb, + 0x9a, 0xed, 0x96, 0x52, 0x16, 0x42, 0xb0, 0xf7, 0x4e, 0x4a, 0x69, 0xb5, + 0x56, 0x73, 0xce, 0xe6, 0x9c, 0xb5, 0xdd, 0xbd, 0x77, 0x6a, 0xad, 0x89, + 0x31, 0x9e, 0xbb, 0x47, 0x55, 0x67, 0x66, 0x12, 0xd1, 0xcb, 0x39, 0x07, + 0x80, 0x11, 0xe1, 0xb6, 0x6d, 0x57, 0x4a, 0xa9, 0x99, 0xd9, 0xa6, 0xff, + 0x4d, 0xe3, 0xf5, 0x79, 0xce, 0x2c, 0x7d, 0xcb, 0xa7, 0x00, 0x02, 0x14, + 0x4b, 0x7f, 0x6c, 0x9e, 0xdb, 0xf1, 0x1a, 0x9a, 0x7f, 0x11, 0x34, 0x63, + 0x14, 0x63, 0x54, 0xca, 0x4f, 0xfe, 0xc2, 0x1c, 0xda, 0xb9, 0x3c, 0x68, + 0xaa, 0x0a, 0xc9, 0x53, 0x66, 0x5e, 0xd0, 0xdd, 0x14, 0xf4, 0xc2, 0xff, + 0x07, 0x9f, 0x22, 0x62, 0x55, 0x57, 0x45, 0x68, 0x02, 0x48, 0x07, 0x10, + 0x91, 0x12, 0x22, 0x40, 0xeb, 0x54, 0x24, 0x94, 0x19, 0xb3, 0x98, 0x3a, + 0xce, 0x93, 0x8f, 0xe6, 0xb4, 0x4a, 0xe7, 0x9e, 0x98, 0xcb, 0xa6, 0x21, + 0x15, 0xeb, 0xfe, 0xc7, 0xb9, 0xa7, 0xa5, 0x8a, 0xc7, 0xf4, 0xe6, 0xef, + 0x9a, 0xca, 0xec, 0x71, 0xff, 0x13, 0xc4, 0xf3, 0x81, 0x05, 0x31, 0xe8, + 0x07, 0x26, 0x0f, 0xa8, 0xa5, 0x65, 0x19, 0x00, 0xf0, 0xdf, 0xf3, 0x9e, + 0xf7, 0x9c, 0xf9, 0xee, 0xf1, 0xd3, 0xde, 0xb9, 0x9d, 0x19, 0xae, 0x36, + 0xc4, 0xe7, 0x70, 0xad, 0xab, 0x4d, 0x72, 0xcc, 0x16, 0x1a, 0x42, 0xcf, + 0x98, 0xd0, 0x60, 0x2e, 0x8e, 0xa0, 0xe0, 0x26, 0x98, 0xca, 0x85, 0xbb, + 0x12, 0x6c, 0xff, 0x26, 0x22, 0x53, 0x4c, 0x70, 0xa6, 0x8c, 0x20, 0x82, + 0xce, 0xc2, 0x91, 0xb2, 0x8d, 0x8b, 0x16, 0x05, 0xb3, 0xf8, 0x08, 0x23, + 0x6a, 0x36, 0x42, 0x8b, 0x16, 0x6d, 0x86, 0x8a, 0xa8, 0xdd, 0xfc, 0x01, + 0x3d, 0x3c, 0xfc, 0xfc, 0x54, 0xd3, 0x74, 0x3a, 0xd1, 0x5a, 0x6b, 0xd3, + 0xa4, 0x6e, 0x35, 0x6c, 0xc6, 0xa9, 0xb6, 0x69, 0x68, 0x75, 0x18, 0x37, + 0x6c, 0x6c, 0x9d, 0xc8, 0xfd, 0xb2, 0x52, 0x25, 0x76, 0xe9, 0xfd, 0xee, + 0xa8, 0x33, 0x25, 0x24, 0x3d, 0x35, 0x4c, 0x90, 0x54, 0x9c, 0xc2, 0xcc, + 0xdc, 0x29, 0x08, 0x0c, 0x10, 0x34, 0x9c, 0xa0, 0x06, 0x0a, 0x84, 0x2a, + 0x8c, 0xc1, 0xb4, 0xa4, 0xad, 0xe8, 0x68, 0x98, 0x03, 0x8f, 0x14, 0x4d, + 0x8d, 0x26, 0x64, 0x0b, 0x67, 0x43, 0x55, 0x45, 0xa0, 0x10, 0x86, 0xaa, + 0x6c, 0x2c, 0xdc, 0x1b, 0x82, 0x43, 0xf0, 0x31, 0xea, 0x39, 0xde, 0x6d, + 0xb4, 0x77, 0x39, 0xda, 0xb3, 0x4e, 0x0e, 0x89, 0xdb, 0xdc, 0x86, 0x7b, + 0xb8, 0x80, 0x35, 0x3e, 0xc0, 0x42, 0x20, 0x24, 0x3a, 0x99, 0xf6, 0x9d, + 0x9d, 0x14, 0x08, 0x0d, 0xe7, 0x51, 0x50, 0x8f, 0x39, 0x3e, 0xe6, 0xc2, + 0x29, 0xf1, 0x30, 0x51, 0x26, 0x34, 0x6c, 0xe0, 0x33, 0x1c, 0x5d, 0xe2, + 0xb8, 0xa2, 0x20, 0x40, 0x68, 0xc2, 0x92, 0xd3, 0x0b, 0x3c, 0x1c, 0xbc, + 0x7d, 0x15, 0x5a, 0x93, 0x0e, 0x32, 0x5b, 0xcf, 0x36, 0xb5, 0xc6, 0x41, + 0xd2, 0x7a, 0x76, 0x69, 0x4a, 0x1a, 0x74, 0x26, 0x4c, 0x49, 0xc3, 0x27, + 0x09, 0x0a, 0x01, 0x41, 0xc0, 0x40, 0x69, 0x38, 0x11, 0x06, 0x22, 0x44, + 0x39, 0x25, 0xae, 0xb2, 0x44, 0x79, 0x5e, 0x31, 0x05, 0x6b, 0x2a, 0xd4, + 0x12, 0x54, 0x0c, 0x18, 0x44, 0xa9, 0xa8, 0x95, 0x35, 0x31, 0x29, 0x9e, + 0x2f, 0x58, 0xb2, 0x87, 0x44, 0x47, 0x26, 0xfa, 0x5e, 0xba, 0x6e, 0x9a, + 0x9a, 0x7b, 0x07, 0xe4, 0x5b, 0xf8, 0x99, 0x85, 0xf0, 0x01, 0xd6, 0x68, + 0x4b, 0x72, 0xcd, 0xfe, 0x88, 0x4f, 0x1a, 0xf9, 0x12, 0xb1, 0x26, 0x0e, + 0xac, 0xae, 0x73, 0xae, 0x12, 0x4f, 0x71, 0x1b, 0x6e, 0x73, 0x0f, 0x2f, + 0xce, 0x56, 0x9b, 0x14, 0xb5, 0xa5, 0x9a, 0xf3, 0x4a, 0xf6, 0x7b, 0xbb, + 0xa6, 0xf4, 0x69, 0xbe, 0xf4, 0xe5, 0x09, 0x1d, 0x12, 0xd7, 0xe9, 0x55, + 0xaa, 0x64, 0x97, 0xfd, 0x80, 0xc6, 0x8c, 0xfe, 0x38, 0x3b, 0xfa, 0xef, + 0xf4, 0x9d, 0xe8, 0x69, 0x95, 0xea, 0x6a, 0x9f, 0x4e, 0x5a, 0x9b, 0x2a, + 0x36, 0xd3, 0xd4, 0x26, 0x6d, 0x9a, 0xa8, 0xb5, 0x19, 0x86, 0x56, 0x87, + 0xba, 0xdd, 0x70, 0xba, 0x19, 0x31, 0x9c, 0x0c, 0x83, 0x56, 0x87, 0x36, + 0xb1, 0xd9, 0x1a, 0x6d, 0x56, 0xe1, 0x54, 0xb4, 0x14, 0x5a, 0x54, 0x4d, + 0x79, 0x04, 0xb1, 0x43, 0x47, 0xc3, 0xcb, 0x28, 0x58, 0xb1, 0x2f, 0xb4, + 0x33, 0x34, 0x3a, 0x12, 0x26, 0x54, 0xb2, 0x62, 0x2b, 0x3b, 0x3d, 0x5b, + 0x87, 0x64, 0xa6, 0x65, 0x37, 0xe9, 0xad, 0x99, 0x6d, 0x6c, 0xde, 0x39, + 0xbc, 0x82, 0x5a, 0xa1, 0xd6, 0x5a, 0xa1, 0xee, 0x22, 0x2a, 0x96, 0xd8, + 0xc9, 0x6c, 0x68, 0x4b, 0x5a, 0x6b, 0x8d, 0x65, 0x43, 0xcb, 0xb4, 0xc3, + 0x92, 0x0b, 0x4b, 0x12, 0x48, 0x74, 0x66, 0x66, 0x90, 0x9d, 0xde, 0xcd, + 0xcc, 0x02, 0x65, 0x66, 0xc1, 0xcc, 0x6c, 0xde, 0x6e, 0xb7, 0x5b, 0x23, + 0xa3, 0x11, 0x46, 0x23, 0x8c, 0xe3, 0x68, 0x14, 0x71, 0xb4, 0xa4, 0x1e, + 0x6a, 0xf5, 0xfe, 0xa1, 0xa2, 0x8e, 0x0f, 0x59, 0x17, 0x58, 0x7c, 0x08, + 0x04, 0x4a, 0x47, 0xa2, 0x4b, 0x52, 0xb6, 0xd6, 0x9a, 0x5a, 0x55, 0x14, + 0xb1, 0x14, 0x0c, 0x50, 0x82, 0xa0, 0x0a, 0x8f, 0x16, 0xae, 0x40, 0x10, + 0x85, 0x13, 0xfc, 0xb3, 0x60, 0xc7, 0xd7, 0x1b, 0x9b, 0x14, 0xb8, 0xf5, + 0x62, 0xcf, 0x7d, 0x95, 0xde, 0x69, 0x3d, 0x1f, 0xca, 0x9e, 0x71, 0xb7, + 0x48, 0xcb, 0xa2, 0xc5, 0x62, 0xdf, 0x44, 0xae, 0x22, 0x6e, 0x14, 0xe5, + 0x5a, 0xab, 0xe6, 0x11, 0x89, 0x8e, 0xd9, 0x28, 0x1c, 0x59, 0x04, 0x25, + 0xfe, 0x90, 0xe4, 0x47, 0x18, 0x41, 0xa2, 0xa3, 0xbf, 0x47, 0x9e, 0x25, + 0x99, 0x54, 0x0c, 0xe4, 0xcd, 0x9e, 0xd9, 0xff, 0x8b, 0xeb, 0xd7, 0x6a, + 0x1d, 0x86, 0xe1, 0x19, 0xb5, 0x5d, 0x2b, 0xca, 0x8d, 0xe0, 0x1b, 0x1c, + 0x4e, 0xcb, 0xd1, 0x0f, 0x73, 0x38, 0x4e, 0x63, 0xdb, 0x1d, 0x96, 0xcb, + 0xb1, 0x55, 0xa7, 0xd7, 0x1e, 0x64, 0x7b, 0xf9, 0xbc, 0xf3, 0x97, 0x58, + 0xbc, 0x60, 0x35, 0x1c, 0xae, 0x54, 0x5e, 0x38, 0x1e, 0x76, 0x35, 0x8e, + 0xe6, 0x5e, 0x4a, 0xbe, 0xfe, 0x26, 0xb7, 0xdc, 0x12, 0x4f, 0x3e, 0xb9, + 0x97, 0x57, 0xf1, 0xea, 0x4f, 0x4a, 0xc1, 0x2b, 0x4a, 0x79, 0xf7, 0x63, + 0xe5, 0x6e, 0x94, 0xa5, 0x5c, 0x44, 0x13, 0xda, 0x5e, 0x7b, 0x3f, 0xbd, + 0x94, 0xe2, 0x36, 0x15, 0x2b, 0xd4, 0x3d, 0x27, 0xd9, 0x4d, 0x2d, 0xa1, + 0x93, 0x1a, 0xf3, 0xbe, 0xcf, 0x32, 0xbf, 0x97, 0xb6, 0x5b, 0xb6, 0x23, + 0xe3, 0xc8, 0x68, 0x81, 0x81, 0x80, 0x81, 0xa8, 0x14, 0x02, 0xa1, 0x12, + 0x23, 0xcb, 0x49, 0xc4, 0x56, 0xac, 0xaa, 0xb2, 0x6a, 0xa2, 0x0e, 0x05, + 0x82, 0x05, 0xf5, 0xd9, 0x69, 0x38, 0x9b, 0xe7, 0x6c, 0xab, 0x92, 0xdd, + 0x9b, 0xaf, 0xe7, 0x2d, 0xb7, 0xf8, 0xdb, 0xca, 0xe9, 0x81, 0xcd, 0x53, + 0xe2, 0xc6, 0xa3, 0x8c, 0x11, 0x65, 0xf4, 0xa9, 0xba, 0xe5, 0xc1, 0xf3, + 0xce, 0x5f, 0x5e, 0x70, 0x69, 0x58, 0x79, 0xc1, 0xb8, 0x79, 0xe5, 0xdb, + 0x97, 0x5d, 0x36, 0x2e, 0x97, 0xbf, 0xda, 0x95, 0xe2, 0x5c, 0x3b, 0x97, + 0x3b, 0xa4, 0x4a, 0x5d, 0xe6, 0xfe, 0x10, 0xee, 0x58, 0xba, 0x7e, 0x73, + 0x32, 0x9d, 0x7d, 0xc4, 0x6b, 0x69, 0xdf, 0x77, 0x5e, 0x76, 0x55, 0xb9, + 0x72, 0x6c, 0xfc, 0xdc, 0xa7, 0x3d, 0x36, 0x3d, 0x71, 0x91, 0x8b, 0x47, + 0x47, 0x47, 0xda, 0x34, 0x69, 0x7d, 0xf6, 0xf4, 0x62, 0x21, 0x5f, 0xe3, + 0x60, 0xd4, 0xce, 0xae, 0x98, 0x6e, 0x5e, 0x57, 0xab, 0xff, 0x9f, 0x8c, + 0xb3, 0x93, 0x8f, 0x6e, 0x0c, 0xd3, 0xa5, 0x56, 0x4f, 0x5f, 0x3b, 0x0c, + 0xe6, 0xf1, 0x64, 0xb1, 0x58, 0xc4, 0x3c, 0xf5, 0xb2, 0x9b, 0xeb, 0xd9, + 0x77, 0x69, 0xee, 0x67, 0xf3, 0xe3, 0xfa, 0x6f, 0x17, 0x47, 0xea, 0x77, + 0xfe, 0xe5, 0x3f, 0x0f, 0x3e, 0xbd, 0x7e, 0xee, 0x6b, 0xaf, 0x4e, 0x7a, + 0xc7, 0x96, 0xe9, 0xa4, 0x53, 0xf4, 0x83, 0x05, 0x16, 0x3c, 0x81, 0x2c, + 0xcc, 0x43, 0x61, 0x50, 0x4a, 0x29, 0x06, 0x62, 0x6d, 0x81, 0x38, 0xfa, + 0x50, 0xf9, 0xd1, 0xfa, 0x70, 0x98, 0x0c, 0xa6, 0xe9, 0x8b, 0x31, 0x1c, + 0xeb, 0xf3, 0x33, 0xc6, 0x8b, 0xfc, 0xfc, 0xae, 0x55, 0x3c, 0xe6, 0xc2, + 0xe7, 0x1f, 0x17, 0xeb, 0x87, 0x5c, 0xf5, 0xb2, 0x39, 0xfd, 0x72, 0x6a, + 0x6d, 0xfa, 0xcb, 0x9f, 0x7e, 0x70, 0xf5, 0x8e, 0xcd, 0x46, 0xd2, 0x2e, + 0x6c, 0xfe, 0x27, 0x16, 0x2e, 0x7f, 0xe9, 0x5b, 0x5a, 0xde, 0xf7, 0x8f, + 0xc3, 0x4e, 0x6b, 0xad, 0x7d, 0xd5, 0x03, 0x0f, 0xac, 0x8e, 0x8e, 0xcf, + 0xd6, 0xac, 0x2d, 0xcf, 0x7f, 0x76, 0xb3, 0xd9, 0x6c, 0xee, 0xff, 0xfa, + 0xd2, 0xcd, 0x37, 0x0e, 0x87, 0x37, 0xde, 0xba, 0xd7, 0x7e, 0x7f, 0xf8, + 0xc5, 0x5f, 0xbf, 0xf2, 0x36, 0xee, 0x70, 0x07, 0x6f, 0x5b, 0x2c, 0x9e, + 0x2b, 0x94, 0xf2, 0xec, 0xf6, 0x0b, 0xbf, 0xfd, 0xe9, 0x7b, 0xbf, 0x31, + 0x7c, 0xff, 0xef, 0xeb, 0xd3, 0x3f, 0xfb, 0xe6, 0x5b, 0x7f, 0x5c, 0x03, + 0x01, 0x41, 0xdc, 0x01, 0x8d, 0xa4, 0x8a, 0xe3, 0xf8, 0x27, 0xce, 0x13, + 0x0e, 0x32, 0xb0, 0xf3, 0xdd, 0x1f, 0x43, 0x0a, 0xef, 0x90, 0xab, 0x6c, + 0x03, 0x49, 0x48, 0xe3, 0x31, 0x4f, 0xbc, 0x13, 0x8b, 0xb4, 0x43, 0xaa, + 0x30, 0xc4, 0xe6, 0xda, 0x2c, 0xeb, 0xb1, 0x76, 0xdb, 0x8b, 0x90, 0xff, + 0xc2, 0xce, 0xee, 0x62, 0x2c, 0x4e, 0xee, 0x61, 0x22, 0x08, 0x59, 0xd8, + 0x7b, 0xc6, 0x94, 0x4b, 0xb0, 0xba, 0x76, 0x35, 0x81, 0x6d, 0x06, 0xe6, + 0x57, 0x09, 0xc4, 0x81, 0xd8, 0x38, 0xca, 0x30, 0x0c, 0xfb, 0xf9, 0xfe, + 0x99, 0x9d, 0xf1, 0xac, 0x77, 0x8d, 0x37, 0x8b, 0x82, 0x94, 0x04, 0x84, + 0xd2, 0x20, 0x9a, 0x94, 0x08, 0x44, 0x41, 0x87, 0x48, 0x07, 0x12, 0x15, + 0x47, 0x83, 0x14, 0x05, 0xd7, 0x08, 0x24, 0x93, 0x73, 0x0f, 0xef, 0x31, + 0x9e, 0xeb, 0x7f, 0xdf, 0x20, 0x21, 0x1e, 0xdd, 0xda, 0x9a, 0xd6, 0x75, + 0x3c, 0xf6, 0x80, 0x15, 0x60, 0x03, 0xd8, 0x0b, 0x5e, 0xb1, 0x08, 0xac, + 0x01, 0x11, 0x2b, 0xc0, 0x1e, 0xb0, 0x01, 0x2c, 0x04, 0x6f, 0x60, 0x39, + 0x58, 0x01, 0x3a, 0x1a, 0x4b, 0xc0, 0x4b, 0xa2, 0x51, 0xa3, 0x7f, 0x98, + 0x78, 0x43, 0x10, 0xa3, 0x89, 0xe3, 0x8d, 0xfe, 0x0b, 0x4a, 0xe8, 0x21, + 0xa1, 0x91, 0xef, 0xe7, 0xf7, 0x3c, 0xcf, 0x5a, 0xcf, 0xfb, 0x2e, 0xce, + 0xd9, 0x7b, 0xe5, 0xbc, 0xfb, 0x9c, 0xc0, 0x0c, 0xe1, 0x30, 0x03, 0x73, + 0x36, 0xcc, 0x0c, 0xf7, 0x61, 0x98, 0xc3, 0xc0, 0x7c, 0x79, 0x80, 0x07, + 0x00, 0xa2, 0x20, 0x0c, 0x45, 0xdf, 0xd3, 0x2d, 0xa7, 0x7e, 0x73, 0x18, + 0xe9, 0x30, 0x30, 0x35, 0x08, 0xbb, 0xa4, 0x3b, 0xc4, 0x93, 0xc5, 0x07, + 0x02, 0xf6, 0xcb, 0x0c, 0x53, 0x19, 0xad, 0x5e, 0x72, 0x60, 0xbf, 0x5b, + 0xb1, 0x17, 0x1f, 0xf9, 0x01, 0x45, 0x5e, 0xd8, 0xac, 0x86, 0x89, 0x79, + 0x58, 0x8b, 0x34, 0xcb, 0x07, 0x99, 0xfc, 0x66, 0xb7, 0xc2, 0x4b, 0x2c, + 0xf6, 0x63, 0x4d, 0xe7, 0x40, 0x18, 0x18, 0x18, 0xf1, 0x49, 0xbb, 0xf6, + 0x43, 0xf8, 0xd8, 0x1d, 0xf8, 0x51, 0x16, 0x9f, 0xfe, 0xf8, 0x0f, 0x93, + 0x66, 0xbf, 0x8a, 0x8f, 0xb8, 0xda, 0xfa, 0x28, 0x67, 0x59, 0x7c, 0x74, + 0x7e, 0xf5, 0x65, 0xb9, 0x8a, 0x69, 0x6c, 0x99, 0x96, 0xc0, 0xab, 0x2e, + 0x17, 0x57, 0x38, 0x7e, 0xc6, 0x95, 0x3e, 0xed, 0x58, 0xd5, 0xea, 0x16, + 0x59, 0xa8, 0x9d, 0x23, 0xa9, 0xfc, 0xf4, 0x47, 0xfe, 0xc1, 0xe7, 0xbe, + 0x57, 0xf8, 0x60, 0x71, 0xaf, 0xcc, 0xaf, 0xf1, 0xa7, 0xb7, 0xd7, 0xd7, + 0x9d, 0x2a, 0x1d, 0x60, 0x11, 0x9c, 0x2d, 0x4f, 0x65, 0xea, 0xa8, 0x7f, + 0x7f, 0x2a, 0x35, 0x7b, 0xda, 0x28, 0x81, 0x27, 0xad, 0x6d, 0x59, 0xfb, + 0xbf, 0xfa, 0xda, 0x2d, 0x35, 0xab, 0xda, 0xb3, 0x6f, 0xc2, 0x43, 0x6a, + 0x58, 0x2c, 0x8b, 0x5f, 0x22, 0xe7, 0xbe, 0xc6, 0xd6, 0xf6, 0x0f, 0xf8, + 0x1a, 0x23, 0x32, 0x2a, 0xe5, 0x1c, 0xb2, 0x5c, 0x28, 0x67, 0x29, 0x67, + 0x29, 0x97, 0x19, 0x95, 0x72, 0xde, 0x2e, 0xd6, 0xbd, 0xbf, 0xc7, 0x77, + 0x88, 0xa7, 0x19, 0x8d, 0x3c, 0xaf, 0x77, 0x7d, 0xea, 0x80, 0x0b, 0x76, + 0xce, 0x6f, 0xfe, 0xf6, 0x74, 0x2f, 0xe8, 0xea, 0x44, 0xdd, 0xb9, 0xf3, + 0x6d, 0x7f, 0x77, 0x9e, 0x89, 0xfd, 0xfb, 0xcf, 0x9c, 0xb8, 0xdd, 0x44, + 0x69, 0x64, 0x44, 0x1a, 0x19, 0x91, 0x46, 0x46, 0x34, 0xdf, 0x72, 0x77, + 0xa9, 0xbe, 0x34, 0xb2, 0x4b, 0xb7, 0x02, 0x58, 0x37, 0x1f, 0xff, 0x85, + 0x7f, 0x7b, 0x91, 0xe3, 0xc3, 0x7f, 0x38, 0xdc, 0x64, 0x5b, 0x3d, 0xc6, + 0x6c, 0x4c, 0x6a, 0x3c, 0xe4, 0xc0, 0x89, 0xdd, 0x04, 0x48, 0xb6, 0xc3, + 0x0e, 0x0f, 0xc3, 0x66, 0x95, 0xe9, 0x4c, 0x5f, 0x74, 0xff, 0x3a, 0xf8, + 0xfc, 0x9b, 0x59, 0xf9, 0xcc, 0xe7, 0xbe, 0x54, 0x00, 0xdf, 0xdd, 0xf5, + 0xc7, 0xf3, 0x33, 0xac, 0x8f, 0x4f, 0xfd, 0x7e, 0x66, 0x04, 0x3b, 0x0c, + 0xec, 0xb6, 0xcd, 0xe6, 0xdf, 0x3f, 0xef, 0x25, 0x9b, 0xfc, 0x46, 0x73, + 0xdb, 0x0b, 0xf8, 0x72, 0x3b, 0x65, 0xd0, 0xec, 0xc4, 0x30, 0x7d, 0xa1, + 0x37, 0xdb, 0xac, 0x2f, 0x50, 0x45, 0xa0, 0x2f, 0xec, 0xf0, 0x20, 0x0c, + 0x84, 0x1d, 0x1e, 0x9e, 0x35, 0x50, 0x4a, 0x2f, 0x77, 0xf9, 0x7c, 0x03, + 0xf1, 0x96, 0xbb, 0x5f, 0xde, 0xce, 0x44, 0xe5, 0x0a, 0xd8, 0x0e, 0x66, + 0x34, 0xd3, 0x62, 0x7c, 0xe0, 0x71, 0xa9, 0x5f, 0xf4, 0x9b, 0x3c, 0x92, + 0x03, 0x9f, 0x02, 0x09, 0xbb, 0x94, 0xa3, 0xff, 0x66, 0x21, 0x1b, 0xfa, + 0x6a, 0x89, 0x79, 0xbd, 0xe4, 0x09, 0x16, 0xc1, 0xd1, 0xb6, 0xbc, 0xfb, + 0xbf, 0x72, 0x78, 0x7b, 0x73, 0xf4, 0x95, 0x7e, 0xad, 0x49, 0x03, 0x5b, + 0xb9, 0xc2, 0x87, 0xfa, 0x09, 0x24, 0x2c, 0xf8, 0xf8, 0x7b, 0xd8, 0xbc, + 0x8f, 0x33, 0xe6, 0x57, 0x9b, 0x0c, 0xce, 0xfa, 0x4d, 0xcf, 0x25, 0x30, + 0x5f, 0x39, 0x5c, 0xf4, 0xca, 0x8c, 0x46, 0xb0, 0x60, 0x60, 0x99, 0x04, + 0xeb, 0x3f, 0xd9, 0xcf, 0x93, 0xbf, 0x2a, 0x77, 0x70, 0x21, 0x52, 0xb3, + 0x5d, 0x79, 0x59, 0x37, 0xbb, 0x45, 0x6d, 0x6a, 0x67, 0xdd, 0x28, 0xa8, + 0x2f, 0x2c, 0xf8, 0x10, 0x06, 0xc2, 0x82, 0x8f, 0x3a, 0x53, 0xca, 0xe9, + 0x70, 0xb1, 0xd1, 0x5c, 0xc5, 0x45, 0x27, 0x76, 0xc0, 0xce, 0x0f, 0x4d, + 0xde, 0x6e, 0x66, 0x35, 0x7d, 0x52, 0x2f, 0x8d, 0xf4, 0x12, 0x2e, 0x30, + 0xb0, 0x34, 0x89, 0xfe, 0x6e, 0xa1, 0x37, 0xeb, 0xa5, 0x9f, 0x76, 0xe9, + 0x93, 0x68, 0x28, 0x0c, 0x5e, 0x0c, 0x7c, 0xdd, 0xc3, 0x8b, 0xb9, 0x4b, + 0x1e, 0x0e, 0x63, 0x1d, 0x98, 0x6c, 0x01, 0x73, 0x3f, 0x81, 0x5b, 0x2f, + 0x06, 0x90, 0x87, 0x39, 0x46, 0xd9, 0xf9, 0x2f, 0xbd, 0xe1, 0x3f, 0x6f, + 0xcf, 0x67, 0x2f, 0xeb, 0x88, 0xb0, 0x21, 0x7e, 0xbd, 0xd9, 0x7f, 0xd9, + 0xfb, 0x52, 0xf3, 0x24, 0xa4, 0xea, 0xa9, 0x41, 0x6a, 0xd0, 0xe7, 0xbf, + 0x78, 0xab, 0xe6, 0x0f, 0x70, 0xaa, 0x23, 0x16, 0xb7, 0x09, 0x35, 0xf3, + 0x8f, 0x87, 0x29, 0x03, 0x54, 0x37, 0x04, 0x35, 0xf2, 0x04, 0x08, 0x2f, + 0x02, 0xea, 0x46, 0x41, 0x8d, 0x82, 0xe5, 0xb7, 0xd3, 0x0e, 0x87, 0x7e, + 0xd6, 0xc0, 0xb1, 0xf6, 0xec, 0x94, 0x35, 0x50, 0xbc, 0xa0, 0xfb, 0xff, + 0x2a, 0xc1, 0xb0, 0x44, 0x0f, 0x9b, 0xc0, 0x5d, 0x45, 0xa9, 0x04, 0x8b, + 0x37, 0xc8, 0x1c, 0xdf, 0x89, 0x06, 0x7e, 0x81, 0x5e, 0x9f, 0x8e, 0xc7, + 0x36, 0x95, 0x00, 0xe5, 0x19, 0x22, 0x32, 0xec, 0xfe, 0x48, 0xf4, 0xba, + 0x53, 0xe2, 0xef, 0xef, 0xe3, 0xef, 0xa0, 0xe3, 0x6f, 0xb9, 0xd3, 0x9c, + 0xd9, 0x63, 0x67, 0x1d, 0x77, 0x4e, 0xff, 0xe9, 0x82, 0x31, 0xe6, 0x8c, + 0x8e, 0xc9, 0x69, 0xc0, 0x9d, 0x49, 0x74, 0x08, 0x2c, 0x81, 0xad, 0xb1, + 0xc3, 0x43, 0x1e, 0x4f, 0x91, 0xaa, 0x04, 0xd2, 0xe1, 0xcd, 0x99, 0xf9, + 0x4d, 0xfb, 0x90, 0x19, 0x73, 0x93, 0xf4, 0xba, 0xe9, 0x35, 0x7b, 0x09, + 0x0d, 0x49, 0x34, 0x3d, 0x8d, 0x8d, 0x8f, 0xdd, 0xce, 0x34, 0xd6, 0xbd, + 0x2a, 0x73, 0x8c, 0x45, 0xcb, 0x98, 0xfe, 0xa3, 0x4b, 0x25, 0xa5, 0x94, + 0x12, 0xce, 0x2a, 0x52, 0x4d, 0x48, 0xcf, 0x2e, 0xff, 0x16, 0xc1, 0xbc, + 0xc6, 0x49, 0xcc, 0x71, 0x5d, 0x35, 0x67, 0x93, 0xaa, 0x2a, 0x01, 0xaa, + 0x2b, 0x41, 0x75, 0x15, 0x7f, 0x8d, 0x1c, 0x13, 0xdd, 0x49, 0x41, 0x6d, + 0xd7, 0xb5, 0x69, 0x8e, 0x55, 0xfc, 0x59, 0x5b, 0xa2, 0x6d, 0x99, 0xfd, + 0x5a, 0xba, 0xb6, 0xa3, 0x2d, 0xad, 0xa2, 0x08, 0x3b, 0x3c, 0xd4, 0x59, + 0x41, 0x55, 0x35, 0x13, 0x74, 0x9f, 0xe7, 0xd8, 0xd8, 0x01, 0xf5, 0xe5, + 0x88, 0xf4, 0x40, 0x83, 0x78, 0xe1, 0x7c, 0xa5, 0x61, 0x42, 0x2a, 0x63, + 0x6d, 0x4d, 0x24, 0x8d, 0x0d, 0xe9, 0xba, 0xc1, 0xe4, 0x9a, 0x4a, 0xce, + 0x6d, 0xa4, 0x7b, 0x74, 0x29, 0x0b, 0xc0, 0xae, 0x9b, 0x3c, 0xa8, 0x18, + 0xed, 0x55, 0xd4, 0xe6, 0xef, 0x40, 0x52, 0x3b, 0x7e, 0xfa, 0xa9, 0x7a, + 0x8d, 0x6a, 0x26, 0xc8, 0x5d, 0x8a, 0xd4, 0xee, 0x87, 0x70, 0xea, 0x9c, + 0xcc, 0xfc, 0x3c, 0x7e, 0x9d, 0x3a, 0xba, 0xd9, 0xe0, 0x9e, 0xb6, 0x68, + 0x3b, 0xb7, 0xd1, 0x74, 0x64, 0xda, 0x0e, 0x25, 0x4d, 0x67, 0x13, 0x4a, + 0x57, 0x93, 0x4a, 0xc7, 0xad, 0xab, 0xe8, 0x88, 0x08, 0x39, 0xc7, 0x43, + 0xee, 0x52, 0xa4, 0x51, 0x80, 0xb4, 0x6a, 0xfd, 0x81, 0xdf, 0xaf, 0x26, + 0x9b, 0x30, 0xc6, 0x0e, 0xee, 0x3c, 0x6c, 0x72, 0xd0, 0x92, 0xa3, 0x56, + 0x72, 0xe4, 0x31, 0x29, 0x75, 0xfb, 0xc9, 0x48, 0x5d, 0xe2, 0x75, 0x6a, + 0x49, 0xb7, 0x2a, 0x29, 0x39, 0x6f, 0x91, 0x6a, 0x42, 0x2a, 0xc0, 0x21, + 0xb2, 0xa9, 0x69, 0xb1, 0xce, 0xf7, 0x3a, 0x50, 0xa8, 0x2d, 0x04, 0x75, + 0x26, 0x28, 0xb7, 0x45, 0x6d, 0x70, 0x7c, 0xee, 0x68, 0x95, 0xee, 0xda, + 0xc1, 0x6a, 0x70, 0x37, 0x68, 0xe9, 0xda, 0x44, 0xf7, 0xf7, 0x40, 0xa9, + 0x25, 0xb5, 0x3d, 0xda, 0x9e, 0x84, 0x1d, 0x1e, 0xea, 0xac, 0xa0, 0x4e, + 0x09, 0xa4, 0x3a, 0xe2, 0xe2, 0x7a, 0xad, 0x30, 0xb8, 0xec, 0x02, 0x35, + 0x79, 0x98, 0x03, 0x8d, 0x0f, 0x4a, 0x2d, 0x04, 0x2d, 0x4a, 0xa5, 0x18, + 0x8f, 0x08, 0xba, 0x44, 0x24, 0xa2, 0x47, 0x28, 0x70, 0x36, 0x3e, 0xde, + 0xe5, 0x1c, 0x68, 0xbc, 0xf5, 0x8b, 0xbc, 0x38, 0xea, 0xe2, 0x3d, 0x33, + 0x43, 0x75, 0xd4, 0x69, 0x18, 0x6b, 0xa3, 0xb6, 0x10, 0xe4, 0xb1, 0x26, + 0xe6, 0xa6, 0xcb, 0x22, 0xdc, 0x59, 0x60, 0xc0, 0x80, 0x01, 0x03, 0x06, + 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x01, 0x03, 0x06, 0x0c, 0x18, 0x30, + 0x90, 0x5b, 0x45, 0x65, 0xe5, 0x00, 0xe5, 0xc2, 0x32, 0x2d, 0x81, 0x63, + 0x76, 0x3d, 0xe9, 0xe5, 0xdf, 0x5d, 0xe5, 0x29, 0xdd, 0xe4, 0xc1, 0xa0, + 0x04, 0x43, 0x4a, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x54, 0xa4, 0x52, 0x02, 0x65, 0x10, 0xd7, 0xe0, 0x65, 0x2d, 0x4b, + 0x9b, 0xfc, 0x4f, 0x04, 0x15, 0xe5, 0x00, 0xd5, 0x85, 0xa0, 0xdc, 0x82, + 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb3, 0x82, + 0xb2, 0x4a, 0x80, 0xea, 0xcc, 0xb5, 0xae, 0x25, 0x8c, 0xf1, 0x1f, 0xeb, + 0xb1, 0x76, 0x98, 0x03, 0x75, 0x25, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x56, 0xca, 0x39, 0x50, 0x41, 0xdd, 0x71, 0x91, + 0x81, 0x36, 0xb3, 0x55, 0x0c, 0x62, 0x69, 0x34, 0x28, 0x04, 0x79, 0x58, + 0x62, 0x64, 0xdb, 0xb6, 0x65, 0x8c, 0x6c, 0x1f, 0x8c, 0x7d, 0xb3, 0xfd, + 0xd8, 0xf6, 0x63, 0xdb, 0x8f, 0x6d, 0x3f, 0xb6, 0xfd, 0xd8, 0xf6, 0x63, + 0xdb, 0x8f, 0x73, 0x25, 0xaa, 0xa8, 0x2d, 0x04, 0x39, 0x73, 0xa4, 0xe2, + 0xc3, 0x6c, 0x30, 0x63, 0x48, 0x8e, 0xae, 0x6b, 0x4b, 0x54, 0x82, 0xce, + 0x53, 0x46, 0x6a, 0xdb, 0x12, 0x14, 0xd0, 0x37, 0x9a, 0xba, 0x08, 0x05, + 0xb5, 0xf6, 0x28, 0x40, 0xaa, 0x23, 0x02, 0x45, 0x9e, 0xdc, 0xd5, 0x45, + 0x41, 0xc5, 0x96, 0x26, 0x75, 0xd1, 0x42, 0x71, 0x11, 0x99, 0xb3, 0x35, + 0x0e, 0x6b, 0x83, 0x31, 0x68, 0x72, 0x83, 0xc7, 0x52, 0x22, 0x9b, 0x05, + 0x15, 0xc7, 0x93, 0xcc, 0x89, 0xcd, 0xf8, 0xcf, 0x6d, 0x2c, 0x9d, 0x72, + 0x80, 0xf2, 0x30, 0xc7, 0x68, 0x2d, 0xbb, 0x02, 0xec, 0x2d, 0x60, 0x4f, + 0x13, 0xb8, 0x06, 0x7b, 0x03, 0x8c, 0xc9, 0x35, 0x45, 0x8a, 0x30, 0xc8, + 0x99, 0x85, 0xba, 0xe3, 0x58, 0x99, 0x90, 0xf2, 0x3f, 0x54, 0x89, 0x01, + 0x46, 0x03, 0x2a, 0x58, 0xb0, 0xcf, 0x48, 0xd9, 0xcc, 0x48, 0x5c, 0x1b, + 0x1d, 0xa7, 0x39, 0xb5, 0x29, 0x1f, 0x8c, 0xa0, 0x2c, 0x0c, 0xea, 0x4c, + 0x50, 0x16, 0x16, 0x40, 0x80, 0xb0, 0x07, 0x04, 0x88, 0x3a, 0x2b, 0x28, + 0xcb, 0xa4, 0xce, 0x7a, 0xd4, 0x35, 0x4f, 0x48, 0x77, 0x5b, 0x87, 0xaa, + 0x93, 0x4c, 0x35, 0x77, 0x66, 0x17, 0x74, 0x58, 0x02, 0xd7, 0x5d, 0xd0, + 0x61, 0x74, 0xa4, 0x73, 0x71, 0x99, 0xf8, 0x7a, 0x93, 0xd4, 0x70, 0x8c, + 0xb4, 0xc8, 0x49, 0x6a, 0x94, 0x40, 0xca, 0x25, 0x45, 0xb2, 0xb0, 0x00, + 0x02, 0x54, 0x02, 0x7c, 0x06, 0x01, 0x22, 0xe7, 0x1c, 0xa3, 0xc8, 0x24, + 0x67, 0x1e, 0xfc, 0x21, 0xaf, 0x62, 0x36, 0x8b, 0x75, 0xbd, 0xab, 0xa9, + 0x25, 0x50, 0x03, 0x6a, 0xb0, 0x60, 0xdf, 0x20, 0x35, 0x66, 0x83, 0x38, + 0x9d, 0x1a, 0x53, 0xc7, 0xd1, 0x6c, 0xfc, 0x40, 0x8d, 0x30, 0xa8, 0x1b, + 0x82, 0x1a, 0x61, 0x01, 0x04, 0x08, 0x7b, 0x40, 0x80, 0xa8, 0x1b, 0x05, + 0x35, 0x32, 0xb9, 0x6b, 0xf4, 0x6a, 0x13, 0x8d, 0xcc, 0xf6, 0xca, 0x4a, + 0x5d, 0x42, 0x2a, 0x89, 0x16, 0x4b, 0xc2, 0x75, 0x24, 0x0a, 0x46, 0xf2, + 0x0b, 0x5e, 0x31, 0x8c, 0x93, 0x98, 0x78, 0xdd, 0x7d, 0xf0, 0xeb, 0xbc, + 0xda, 0xaa, 0x12, 0xa0, 0xdc, 0x76, 0xb1, 0xcd, 0x26, 0x6c, 0xb0, 0xf7, + 0xd8, 0x6f, 0x38, 0x60, 0x60, 0x60, 0x60, 0x60, 0x5f, 0x63, 0x5f, 0x92, + 0xdb, 0x36, 0x96, 0x22, 0x0c, 0x4e, 0xda, 0x38, 0xc3, 0x54, 0x6d, 0xbc, + 0xfc, 0x66, 0xe9, 0x91, 0x1a, 0x74, 0xc8, 0x1a, 0x48, 0x15, 0x54, 0x6d, + 0x71, 0xa8, 0xa0, 0x6a, 0xd6, 0x83, 0x59, 0xf5, 0x31, 0x0d, 0x5d, 0xfc, + 0x86, 0x6e, 0xb4, 0xfc, 0x97, 0x11, 0x06, 0x75, 0x25, 0xa8, 0xca, 0x16, + 0x21, 0x1c, 0x10, 0x42, 0x08, 0x21, 0xea, 0x4a, 0x50, 0x95, 0xc9, 0xc3, + 0xfd, 0xe5, 0x96, 0xf2, 0xa7, 0x7e, 0xcf, 0x64, 0xb2, 0xa3, 0xc4, 0xf1, + 0xd2, 0x09, 0xa9, 0x43, 0x8d, 0x99, 0x90, 0x12, 0xee, 0xda, 0x44, 0x4e, + 0x48, 0xed, 0x89, 0x27, 0xe4, 0xa7, 0x71, 0xa2, 0x6f, 0x57, 0xfd, 0x7b, + 0xeb, 0x05, 0x1f, 0x7f, 0xff, 0x96, 0x09, 0x94, 0xbb, 0x12, 0x23, 0x0b, + 0x03, 0x25, 0x90, 0x94, 0xc0, 0x9d, 0x10, 0x42, 0x08, 0x91, 0xdb, 0x14, + 0x09, 0x25, 0x7a, 0x5d, 0xbe, 0xce, 0xed, 0xbb, 0x42, 0xe7, 0x0f, 0xb5, + 0x53, 0xe6, 0x17, 0x34, 0x1b, 0x29, 0x41, 0x05, 0x55, 0x5b, 0x1c, 0x2a, + 0xa8, 0x4a, 0xab, 0xf3, 0x76, 0x07, 0xad, 0x68, 0x01, 0x36, 0x62, 0x1a, + 0xd3, 0xeb, 0xe4, 0x8d, 0xdf, 0x79, 0x82, 0xea, 0x4a, 0x50, 0x95, 0x2d, + 0x42, 0x38, 0x20, 0x84, 0x10, 0x42, 0xd4, 0x95, 0xa0, 0x9a, 0xa5, 0xa1, + 0x39, 0xed, 0x93, 0xf3, 0xe5, 0x3a, 0x9f, 0xc9, 0x16, 0xee, 0xdd, 0x3e, + 0xe2, 0x3a, 0xff, 0x2e, 0x49, 0x5d, 0x93, 0x0b, 0x36, 0x38, 0xb4, 0x6d, + 0x29, 0x34, 0x5f, 0xea, 0xff, 0x7d, 0x50, 0xeb, 0x79, 0x7c, 0x12, 0x4f, + 0x76, 0x31, 0x41, 0xbf, 0x6e, 0x78, 0x89, 0xb9, 0xcb, 0x31, 0x92, 0x30, + 0x50, 0x80, 0xa4, 0x00, 0x77, 0x42, 0x08, 0x21, 0x44, 0x6e, 0x53, 0x24, + 0x36, 0x8f, 0x17, 0x7d, 0x90, 0xab, 0x36, 0xd1, 0xdc, 0xef, 0xca, 0x76, + 0xf0, 0x61, 0xbd, 0xf1, 0x6a, 0xc9, 0x87, 0x6a, 0x90, 0xaa, 0x2d, 0x0e, + 0x15, 0x54, 0x3f, 0x3b, 0x6c, 0x2b, 0x71, 0x8e, 0x9d, 0x0b, 0xc1, 0xe2, + 0xee, 0x82, 0x3f, 0xb3, 0xd0, 0x9d, 0xdf, 0xd7, 0xc7, 0xbe, 0xb2, 0x6c, + 0x11, 0xc2, 0x01, 0x21, 0x84, 0x10, 0xa2, 0xae, 0x0c, 0xeb, 0x3f, 0xdb, + 0x5c, 0x6c, 0xf3, 0x6c, 0xa9, 0x9a, 0x73, 0xe1, 0x9d, 0x4b, 0xe0, 0xc3, + 0x4c, 0xb7, 0xe7, 0x84, 0xeb, 0x57, 0xd7, 0x60, 0x83, 0x43, 0xd7, 0xc5, + 0xc5, 0xf3, 0x8b, 0x5d, 0xc3, 0xb4, 0x66, 0x66, 0x8b, 0x80, 0x1f, 0x27, + 0xdc, 0xf3, 0xfd, 0x4b, 0x5d, 0xbe, 0xd9, 0xe0, 0x5b, 0xfe, 0xf3, 0xe6, + 0xff, 0x97, 0x1a, 0x73, 0x4a, 0x39, 0xc7, 0x88, 0x94, 0x73, 0x8c, 0x48, + 0x39, 0xc7, 0x88, 0x94, 0x73, 0x8c, 0x48, 0x39, 0xc7, 0x88, 0x94, 0x73, + 0x8c, 0x48, 0x39, 0xc7, 0x88, 0x94, 0x73, 0x8a, 0x18, 0x5e, 0x9c, 0x87, + 0x4d, 0x2f, 0x35, 0xe3, 0xff, 0xc3, 0xdb, 0x72, 0x51, 0x13, 0x8b, 0x3b, + 0x9f, 0x81, 0xde, 0xf3, 0x51, 0x6d, 0xa6, 0x4d, 0xfb, 0xdd, 0x5c, 0x40, + 0x52, 0x69, 0x90, 0x22, 0x23, 0x11, 0x04, 0x04, 0x01, 0x41, 0x40, 0x10, + 0x10, 0x04, 0x04, 0x41, 0x7f, 0xf6, 0xa7, 0x07, 0xd2, 0x68, 0xed, 0xa6, + 0xf5, 0xef, 0xec, 0x05, 0xb0, 0x7d, 0xdd, 0x1f, 0xfd, 0x4e, 0x9a, 0xde, + 0x9e, 0xfc, 0x9d, 0x5e, 0x89, 0x10, 0xe1, 0x0a, 0x22, 0x20, 0x02, 0x22, + 0x20, 0x02, 0x22, 0x20, 0x02, 0xfa, 0xd8, 0x9c, 0xf7, 0xe1, 0xd3, 0xd3, + 0xbc, 0xd2, 0xed, 0x2a, 0xc7, 0x5e, 0x37, 0x69, 0xfe, 0xc5, 0xc1, 0x17, + 0x80, 0x0b, 0xe5, 0xd7, 0xdd, 0x09, 0x6e, 0x3e, 0x6c, 0xbb, 0xb6, 0xb6, + 0x6d, 0xc9, 0x6d, 0x8e, 0x5c, 0x50, 0x29, 0x52, 0x29, 0x52, 0x29, 0x52, + 0xf1, 0x9a, 0xd2, 0x25, 0xba, 0x73, 0xcf, 0x22, 0x77, 0xe7, 0x3c, 0xb8, + 0x15, 0x1e, 0x4a, 0x76, 0x71, 0x3a, 0xa9, 0x7b, 0xd7, 0x7a, 0xc1, 0xcb, + 0xab, 0xa3, 0x5d, 0x2c, 0x7b, 0xab, 0x8c, 0x7e, 0x68, 0x22, 0x52, 0x53, + 0x55, 0x54, 0x4d, 0x55, 0x51, 0x35, 0x55, 0x45, 0xd5, 0x54, 0x15, 0x55, + 0xd7, 0x55, 0x0f, 0xf3, 0xe5, 0xdc, 0xf4, 0x8f, 0xac, 0x0f, 0xaa, 0x8d, + 0x77, 0x65, 0x07, 0x5c, 0xa4, 0xdf, 0xa2, 0x6b, 0x46, 0x63, 0x05, 0x1b, + 0x7c, 0xe9, 0x4a, 0x5b, 0x6a, 0x25, 0xa8, 0x15, 0xa9, 0x56, 0xa4, 0x5a, + 0x91, 0x6a, 0xb1, 0x16, 0x6d, 0xee, 0xe2, 0xff, 0x95, 0x2b, 0xfa, 0x1d, + 0xf7, 0xed, 0x9b, 0xf0, 0x51, 0x30, 0xbf, 0x97, 0xf8, 0x25, 0xa3, 0x52, + 0x7a, 0x85, 0x4f, 0x4e, 0xb6, 0x85, 0xa7, 0x0b, 0xe7, 0x6c, 0x9f, 0x86, + 0xae, 0x95, 0xdf, 0xc2, 0xa3, 0xe2, 0x31, 0xb4, 0xaf, 0x28, 0x62, 0xad, + 0x5b, 0xdc, 0xdd, 0xfc, 0x2b, 0x96, 0xef, 0x61, 0x5d, 0x8b, 0x3d, 0xaf, + 0x79, 0x01, 0x85, 0x7d, 0xc7, 0xc7, 0xf6, 0x67, 0xef, 0x8f, 0x76, 0x69, + 0x4b, 0x57, 0x3d, 0xe9, 0xb3, 0x3e, 0x6f, 0x7e, 0xa9, 0xab, 0xad, 0x90, + 0xce, 0xc5, 0x8b, 0x2e, 0xb6, 0x7a, 0x7c, 0x1e, 0x3d, 0xd7, 0x25, 0x57, + 0xbf, 0x40, 0xa9, 0xb6, 0xba, 0x87, 0x9f, 0xd8, 0x7e, 0x08, 0x2f, 0x5b, + 0xa3, 0xcf, 0x5e, 0xc8, 0x64, 0xcf, 0xbd, 0x54, 0x21, 0x03, 0x03, 0x33, + 0xc6, 0xae, 0x81, 0xc1, 0xd6, 0x33, 0xf6, 0x0b, 0xf9, 0x8d, 0x97, 0x78, + 0xfe, 0x17, 0x40, 0x18, 0x28, 0xcd, 0xf5, 0x42, 0xb8, 0x05, 0xf6, 0xf3, + 0xc2, 0xa6, 0x32, 0x5a, 0xbd, 0xe4, 0xc0, 0xe7, 0xf5, 0x7a, 0xd0, 0x97, + 0xeb, 0xf9, 0x46, 0x7a, 0xa6, 0xf4, 0x9c, 0x23, 0x3d, 0xc9, 0xf8, 0xa4, + 0x23, 0xcf, 0x76, 0x75, 0xfd, 0xf2, 0x06, 0xa7, 0xed, 0x8d, 0xb8, 0x53, + 0xb9, 0xdd, 0x51, 0x6c, 0x27, 0x9e, 0x63, 0x99, 0x9f, 0x3b, 0x16, 0xfe, + 0x10, 0x7e, 0xa5, 0x0a, 0x2f, 0xfd, 0x62, 0xf8, 0x8a, 0x8b, 0x67, 0xe6, + 0xc9, 0x96, 0xf3, 0xef, 0x66, 0xb8, 0xd7, 0x6d, 0x26, 0xf4, 0x12, 0x36, + 0xf5, 0xdf, 0xe4, 0x87, 0x3b, 0x6d, 0xfb, 0x1d, 0xbd, 0x24, 0x3c, 0x0b, + 0x1f, 0xeb, 0x41, 0x5f, 0xa4, 0x67, 0x19, 0xe9, 0x71, 0x2a, 0x70, 0xe3, + 0xe6, 0xc9, 0xa3, 0x2e, 0xe3, 0xd9, 0xe2, 0xad, 0xff, 0xc3, 0x43, 0x85, + 0x0f, 0x4d, 0xe7, 0xbe, 0x97, 0x8f, 0xd5, 0xe3, 0xb6, 0x7a, 0xe4, 0x87, + 0xfb, 0x7b, 0x3e, 0xdc, 0x0b, 0x0f, 0x69, 0xe8, 0xee, 0x1a, 0x5f, 0x3d, + 0xca, 0x8f, 0xdd, 0x80, 0x7b, 0x57, 0x65, 0xfb, 0x28, 0xe7, 0x69, 0x5b, + 0x9a, 0xe7, 0x2b, 0xdc, 0xe1, 0x62, 0xfa, 0x62, 0x3d, 0x51, 0x85, 0x87, + 0x1d, 0xbc, 0x0d, 0xbe, 0x0a, 0x60, 0x3d, 0xf8, 0x2b, 0xd3, 0xe3, 0x15, + 0xc6, 0x23, 0xde, 0x6e, 0x78, 0xc4, 0xad, 0xff, 0x8b, 0x9b, 0x0a, 0xa0, + 0x99, 0x12, 0x4f, 0xc1, 0x3d, 0x4f, 0x78, 0xae, 0xe7, 0x7a, 0xe8, 0x4f, + 0x66, 0xc6, 0xb5, 0x80, 0x7e, 0x3e, 0x68, 0x0e, 0x4f, 0x5e, 0x80, 0x9f, + 0x0e, 0x43, 0x39, 0x3d, 0xec, 0xe5, 0x72, 0x22, 0x95, 0x2b, 0x60, 0x5e, + 0xba, 0x67, 0x10, 0x5e, 0xe2, 0x16, 0x7d, 0x5c, 0x0a, 0x16, 0x4d, 0x34, + 0xc7, 0xa7, 0x2a, 0x02, 0xfc, 0x72, 0x19, 0xca, 0xe9, 0xa1, 0x66, 0x8b, + 0x94, 0xc0, 0x39, 0x0c, 0x4f, 0x59, 0xe1, 0x75, 0xfe, 0x30, 0x38, 0x17, + 0x69, 0xf0, 0xd7, 0x34, 0xb7, 0xde, 0xc2, 0x2b, 0x3e, 0xc3, 0x4d, 0x7d, + 0x9b, 0x6d, 0x9e, 0xe2, 0x0c, 0xa6, 0x2f, 0x19, 0x1f, 0xb7, 0xc1, 0x1f, + 0x1e, 0xed, 0xed, 0xb0, 0x15, 0x43, 0x17, 0xf1, 0xf4, 0x45, 0x15, 0xe0, + 0x5f, 0xaf, 0xe1, 0x5c, 0x3b, 0xec, 0x93, 0x12, 0x38, 0xf5, 0x57, 0x05, + 0xde, 0xb6, 0x81, 0x53, 0x2d, 0xf4, 0x05, 0x87, 0xfd, 0xe3, 0x83, 0x37, + 0xb7, 0xa1, 0x6c, 0x1f, 0x7e, 0x56, 0xbd, 0x2d, 0x38, 0xf1, 0xb7, 0x06, + 0xde, 0xf5, 0xe0, 0x98, 0x1a, 0x34, 0x4b, 0xf3, 0x84, 0x5b, 0x78, 0xc7, + 0x6f, 0x58, 0x56, 0x8f, 0xde, 0xde, 0x51, 0x18, 0xd3, 0x6c, 0x25, 0x3e, + 0x62, 0x1a, 0x5a, 0xa9, 0x8f, 0x43, 0x9e, 0x20, 0xc0, 0xff, 0x8e, 0x43, + 0xd9, 0x3f, 0xc2, 0x6b, 0xa7, 0x84, 0x5f, 0x3b, 0x70, 0x7c, 0x17, 0x56, + 0x1a, 0xbe, 0x45, 0x38, 0xe2, 0x39, 0xbc, 0x79, 0x08, 0x34, 0x3e, 0x35, + 0x8e, 0xe5, 0x4e, 0x19, 0xf4, 0x5a, 0xf3, 0x5b, 0x6d, 0xe1, 0x88, 0xe7, + 0xb0, 0xac, 0x27, 0x9c, 0xdf, 0x4d, 0x5f, 0x5b, 0x5a, 0xe3, 0x14, 0xb3, + 0xe9, 0x9b, 0xac, 0xb8, 0x0e, 0x0b, 0x3d, 0x80, 0xbe, 0xcd, 0x3a, 0x3d, + 0xe4, 0x4c, 0x4f, 0x6b, 0xc5, 0x75, 0x58, 0x0c, 0x3b, 0x1e, 0x9f, 0xce, + 0xca, 0x4e, 0x0e, 0x8f, 0xf3, 0x5a, 0x71, 0x1d, 0xca, 0xd3, 0xfd, 0xae, + 0x6e, 0x62, 0xfd, 0xcb, 0xc9, 0x8d, 0xad, 0xb8, 0x0e, 0xe9, 0x2f, 0x4e, + 0xfb, 0xb2, 0x9e, 0x7e, 0x69, 0xc6, 0x2c, 0x56, 0x5c, 0x87, 0x05, 0xb3, + 0x16, 0xfb, 0xb4, 0x0e, 0xbf, 0x38, 0x8b, 0xef, 0xb6, 0xe2, 0x3a, 0x2c, + 0xa6, 0x07, 0x8c, 0x6f, 0xb7, 0xea, 0x81, 0x37, 0xf9, 0x1b, 0xac, 0x15, + 0x9e, 0x43, 0x1f, 0xeb, 0x19, 0x5f, 0x6f, 0xfe, 0xd7, 0xfe, 0xd6, 0x7f, + 0x7e, 0x7e, 0xef, 0xfb, 0x60, 0xdc, 0xb7, 0x70, 0xc4, 0x73, 0x98, 0x97, + 0xbf, 0x3c, 0xa0, 0xe1, 0xbb, 0x70, 0xec, 0x1f, 0x84, 0x3b, 0xbd, 0xfe, + 0x29, 0x8e, 0x38, 0x0e, 0xe9, 0xcd, 0xfb, 0xa0, 0x7e, 0x21, 0x7b, 0xc4, + 0x87, 0x7e, 0x7e, 0x98, 0x11, 0x49, 0x9b, 0xe9, 0x3b, 0xa9, 0x7c, 0xe0, + 0x37, 0xf4, 0xf1, 0xa0, 0x96, 0x31, 0xf4, 0x26, 0xcd, 0x9e, 0xf0, 0x5e, + 0xfd, 0x64, 0xbb, 0x34, 0x4c, 0x2d, 0x3c, 0x7d, 0x82, 0x77, 0xdc, 0x86, + 0x34, 0xd7, 0x7d, 0x01, 0x27, 0x9a, 0xb7, 0xdf, 0x03, 0xde, 0xda, 0x9f, + 0xa8, 0xe6, 0xc3, 0xa9, 0xb8, 0x1c, 0x3e, 0x87, 0xca, 0x1b, 0x5e, 0x43, + 0xaf, 0x15, 0x19, 0xd8, 0xd0, 0xdd, 0x7b, 0xef, 0xf8, 0x4f, 0xbf, 0xd2, + 0xcf, 0x83, 0xad, 0x08, 0xcb, 0xfd, 0x98, 0x77, 0x47, 0xe5, 0x0f, 0x3e, + 0x43, 0xcf, 0x4f, 0x35, 0xc3, 0xff, 0x14, 0xe0, 0x8c, 0xcf, 0xbe, 0x9e, + 0x13, 0xaf, 0xf5, 0x5d, 0xd2, 0x8a, 0x4f, 0x38, 0x17, 0xfc, 0xf5, 0xbd, + 0x13, 0xbc, 0xe2, 0x32, 0xa4, 0x79, 0x7f, 0x84, 0x19, 0xb8, 0x80, 0x66, + 0xa6, 0xe3, 0xf7, 0xe0, 0x9f, 0xe9, 0x48, 0x8b, 0x99, 0x71, 0x29, 0xe0, + 0x7c, 0x3e, 0xa1, 0xdb, 0xeb, 0x04, 0x2f, 0x38, 0x0c, 0x69, 0x88, 0x5f, + 0xad, 0x27, 0x16, 0x67, 0x5c, 0x01, 0xbd, 0xc3, 0xf7, 0xe3, 0xe7, 0x74, + 0xf8, 0x65, 0xff, 0x8c, 0x6b, 0x01, 0x8c, 0x9a, 0x7e, 0x7c, 0xdf, 0x47, + 0x26, 0x53, 0x79, 0xc6, 0x5b, 0x5f, 0x4f, 0x69, 0xd2, 0x11, 0xd5, 0x2f, + 0x5a, 0xdc, 0x00, 0x7c, 0x56, 0xbb, 0x7b, 0x3c, 0xf2, 0x73, 0x79, 0x85, + 0xe0, 0xab, 0xf0, 0xf0, 0x64, 0x79, 0x97, 0xc7, 0xbd, 0x70, 0xe6, 0x01, + 0x57, 0xa9, 0xd7, 0x8f, 0x37, 0x79, 0xe9, 0x05, 0xb8, 0x73, 0xd1, 0xf5, + 0x3f, 0xb7, 0xdb, 0x2d, 0xee, 0xdb, 0x9f, 0x4e, 0x2b, 0x51, 0xbf, 0xc6, + 0xbd, 0xf0, 0x31, 0xd2, 0x9b, 0xf2, 0xc9, 0x9b, 0xcb, 0xdd, 0x70, 0xe6, + 0x16, 0x37, 0xa9, 0xaf, 0x7e, 0xb6, 0x79, 0xf8, 0x38, 0xff, 0x77, 0x11, + 0x78, 0xc0, 0x87, 0x66, 0xd1, 0xac, 0xda, 0x1b, 0x6e, 0xf4, 0x33, 0x79, + 0xb6, 0x98, 0x16, 0x78, 0x16, 0x5e, 0xb6, 0xfb, 0xfe, 0x32, 0xcb, 0x4f, + 0xe1, 0x07, 0x36, 0xcb, 0x29, 0xac, 0x5d, 0xac, 0xcf, 0xd2, 0x7a, 0xdd, + 0xd7, 0x53, 0x9a, 0x7c, 0xe4, 0xd3, 0xc7, 0x97, 0xef, 0xef, 0x7e, 0x51, + 0xe1, 0x05, 0x2f, 0x5a, 0x86, 0x3e, 0x4a, 0x9f, 0x98, 0x3e, 0x55, 0x3f, + 0x34, 0xfe, 0xb0, 0xe7, 0xba, 0xd1, 0x0d, 0x4f, 0x3f, 0xc6, 0x7d, 0xca, + 0x1f, 0x89, 0x4f, 0x88, 0x8f, 0xc9, 0x9f, 0x1e, 0x8b, 0x08, 0x5f, 0x01 }; //*************************** Program and Shaders ***************************/ @@ -448,9 +884,9 @@ static GLuint compileShader(GLenum const type, const GLchar* text) { */ #define GL_VERT_TXUV0_ID 1 - /** - * \c GL vec2 storage type. - */ +/** + * \c GL vec2 storage type. + */ struct vec2 { float x; float y; @@ -464,6 +900,21 @@ struct posTex2d { struct vec2 uv0; }; +/** + * Shortcut for \c emscripten_webgl_enable_extension(). + */ +#ifndef GL_HAS_EXT +#define GL_HAS_EXT(ctx, ext) emscripten_webgl_enable_extension(ctx, ext) +#endif + +#ifndef GL_COMPRESSED_RGB8_ETC2 +#define GL_COMPRESSED_RGB8_ETC2 0x9274 +#endif + +#ifndef GL_COMPRESSED_RGBA8_ETC2_EAC +#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#endif + //****************************************************************************/ /** @@ -530,6 +981,59 @@ static void tick() { glFlush(); } +/** + * Returns a supported compressed texture format for a given context. + * + * \param[in] ctx WebGL context + * \param[in] alpha \c true if the texture has an alpha channel + * \return corresponding Basis format + */ +static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, bool const alpha = false) { + static bool const pvr = GL_HAS_EXT(ctx, "WEBKIT_WEBGL_compressed_texture_pvrtc") + || GL_HAS_EXT(ctx, "WEBGL_compressed_texture_pvrtc"); + if (pvr) { + return (alpha) + ? cTFPVRTC1_4_RGBA + : cTFPVRTC1_4_RGB; + } + static bool const etc = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_etc"); + if (etc) { + return (alpha) + ? cTFETC2 + : cTFETC1; + } + static bool const dxt = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_s3tc"); + if (dxt) { + return (alpha) + ? cTFBC5 + : cTFBC1; + } + return (alpha) + ? cTFRGBA4444 + : cTFRGB565; +} + +static GLenum toGlType(transcoder_texture_format const type) { + switch (type) { + case cTFETC1: + return GL_COMPRESSED_RGB8_ETC2; + case cTFETC2: + return GL_COMPRESSED_RGBA8_ETC2_EAC; + case cTFBC1: + return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; + case cTFBC5: + return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; + case cTFPVRTC1_4_RGB: + return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + case cTFPVRTC1_4_RGBA: + return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + case cTFRGB565: + GL_UNSIGNED_SHORT_5_6_5; + default: + return GL_UNSIGNED_SHORT_4_4_4_4; + } +} + /** * Creates the texture. */ @@ -550,22 +1054,16 @@ bool upload(GLuint name, const uint8_t * data, size_t size, transcoder_texture_f uint32_t decSize = basis_get_bytes_per_block(type) * blocks; if (void* decBuf = malloc(decSize)) { if (transcoder.transcode_image_level(data, size, 0, 0, decBuf, blocks, type)) { - GLenum glType; - switch (type) { - case cTFBC1: - glType = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; - break; - case cTFPVRTC1_4_RGB: - glType = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; - break; - default: - glType = GL_FALSE; - } + GLenum glType = toGlType(type); if (glType != GL_FALSE) { glBindTexture(GL_TEXTURE_2D, name); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glCompressedTexImage2D(GL_TEXTURE_2D, 0, - glType, descW, descH, 0, decSize, decBuf); + if (type < cTFTotalBlockTextureFormats) { + glCompressedTexImage2D(GL_TEXTURE_2D, 0, + glType, descW, descH, 0, decSize, decBuf); + } else { + + } } free(decBuf); return glType != GL_FALSE; @@ -644,18 +1142,9 @@ int main() { glEnableVertexAttribArray(GL_VERT_POSXY_ID); glEnableVertexAttribArray(GL_VERT_TXUV0_ID); - transcoder_texture_format type = cTFRGB565; - if (emscripten_webgl_enable_extension(glCtx, "WEBKIT_WEBGL_compressed_texture_pvrtc")) { - printf("Has PVRTC!\n"); - type = cTFPVRTC1_4_RGB; - } else { - if (emscripten_webgl_enable_extension(glCtx, "WEBGL_compressed_texture_s3tc")) { - printf("Has BC1!\n"); - type = cTFBC1; - } - } + (void) srcRgba; glGenTextures(1, &txName); - if (upload(txName, srcBasis, sizeof srcBasis, type)) { + if (upload(txName, srcRgb, sizeof srcRgb, supports(glCtx))) { printf("Decoded!\n"); } diff --git a/contrib/single_file_transcoder/examples/shell.html b/contrib/single_file_transcoder/examples/shell.html index 0e4c5c3..e4af1b1 100644 --- a/contrib/single_file_transcoder/examples/shell.html +++ b/contrib/single_file_transcoder/examples/shell.html @@ -13,6 +13,13 @@ body {background:#333; font-family:"Verdana","Helvetica Neue","Helvetica","Ari + {{{ SCRIPT }}} From 85c81f18711ca60549a1c12085d86888f856b80b Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Tue, 24 Sep 2019 18:43:15 +0200 Subject: [PATCH 05/14] Working demo Demo transcodes to various formats (tested only PVRTC, S3TC and uncompressed for now). Added docs. --- contrib/single_file_transcoder/README.md | 19 ++ .../basisutranslib-in.cpp | 24 +- ...reate_transcoder.sh => create_translib.sh} | 0 .../single_file_transcoder/examples/README.md | 7 + .../examples/emscripten.cpp | 308 ++++++++++-------- 5 files changed, 223 insertions(+), 135 deletions(-) create mode 100644 contrib/single_file_transcoder/README.md rename contrib/single_file_transcoder/{create_transcoder.sh => create_translib.sh} (100%) create mode 100644 contrib/single_file_transcoder/examples/README.md diff --git a/contrib/single_file_transcoder/README.md b/contrib/single_file_transcoder/README.md new file mode 100644 index 0000000..95f6ae9 --- /dev/null +++ b/contrib/single_file_transcoder/README.md @@ -0,0 +1,19 @@ +# Single File Basis Universal Transcoder + +The script `combine.sh` creates an _amalgamated_ source file that can be used with or without `basisu_transcoder.h`. This isn't a _header-only_ file but it does offer a similar level of simplicity when integrating into a project. + +Create `basisutranslib.cpp` from the transcoder source using: +``` +cd basis_universal/contrib/single_file_transcoder +./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp +``` +Then add the resulting file to your project (see the [example files](examples)). + +`create_translib.sh` will run the above script, creating the file `basisutranslib.cpp`. + +Why? +---- + +Because all it now takes to support Basis Universal is the addition of a single file, two if using the header, with no configuration or further build steps. + +The library is small, adding, for example, 181kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7, ASTC and ATC). diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp index 0595f10..a684ea6 100644 --- a/contrib/single_file_transcoder/basisutranslib-in.cpp +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -3,10 +3,26 @@ * \code * ./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp * \endcode - * We can add any build options here, e.g.: - * \code - * #define BASISD_SUPPORT_BC7 0 - * \endcode + * + * \todo -Wunused-parameter errors when removing BASISD_SUPPORT_ETC2_EAC_A8 + * \todo enable and test BASISD_SUPPORT_ASTC in browsers + * \todo BASISD_SUPPORT_DXT5A needs enabling for BC3? */ +/* + * Build options for known platforms. + */ +#ifdef __APPLE__ +#include +#endif +#if TARGET_OS_IPHONE +#define BASISD_SUPPORT_DXT1 0 +#define BASISD_SUPPORT_DXT5A 0 +#endif +#if TARGET_OS_IPHONE || defined(__EMSCRIPTEN__) +#define BASISD_SUPPORT_BC7 0 +#define BASISD_SUPPORT_ASTC 0 +#define BASISD_SUPPORT_ATC 0 +#endif + #include "basisu_transcoder.cpp" diff --git a/contrib/single_file_transcoder/create_transcoder.sh b/contrib/single_file_transcoder/create_translib.sh similarity index 100% rename from contrib/single_file_transcoder/create_transcoder.sh rename to contrib/single_file_transcoder/create_translib.sh diff --git a/contrib/single_file_transcoder/examples/README.md b/contrib/single_file_transcoder/examples/README.md new file mode 100644 index 0000000..c27901f --- /dev/null +++ b/contrib/single_file_transcoder/examples/README.md @@ -0,0 +1,7 @@ +# Single File Basis Universal Examples + +The examples `#include` the generated `basisutranslib.cpp` directly but work equally as well when including `basisu_transcoder.h` and compiling the amalgamated source separately. + +`emscripten.cpp` is a bare-bones [Emscripten](https://github.com/emscripten-core/emscripten) compiled WebGL demo picking the best transcoder format for the sample texture (see the [original PNG image](testcard.png)). + +The example files in this directory are released under a [Creative Commons Zero license](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index 7688c32..dc82f14 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -1,8 +1,7 @@ /** - * \file emscripten.c - * Emscripten example of using the single-file \c zstddeclib. Draws a rotating - * textured quad with data from the in-line Zstd compressed DXT1 texture (DXT1 - * being hardware compression, further compressed with Zstd). + * \file emscripten.cpp + * Emscripten example of using the single-file \c basisutranslib. Draws a + * rotating textured quad with data from the in-line compressed texture. * \n * Compile using: * \code @@ -10,12 +9,13 @@ * export EM_FLAGS="-s ENVIRONMENT=web -s WASM=1 --shell-file shell.html --closure 1" * emcc $CC_FLAGS $EM_FLAGS -o out.html emscripten.cpp * \endcode + * + * Released under a CC0 license. */ -#include -#include -#include -#include +#include +#include +#include #include #include @@ -23,17 +23,7 @@ #include #include -#define BASISD_SUPPORT_DXT5A 0 -#define BASISD_SUPPORT_BC7 0 -//#define BASISD_SUPPORT_ETC2_EAC_A8 0 <-- todo: -Wunused-parameter errors -#define BASISD_SUPPORT_ASTC 0 -#define BASISD_SUPPORT_ATC 0 - -#include "../basisutranslib.cpp" - -using namespace basist; - -static etc1_global_selector_codebook* globalCodebook = NULL; +#include "../basisutranslib.cpp" //<-- can be built without to determine the size //********************************* Test Data ********************************/ @@ -793,7 +783,7 @@ static GLuint fragId = 0; static GLint uRotId = -1; /** - * Draw colour ID. + * Texture ID. */ static GLint uTx0Id = -1; @@ -907,6 +897,9 @@ struct posTex2d { #define GL_HAS_EXT(ctx, ext) emscripten_webgl_enable_extension(ctx, ext) #endif +/* + * Possibly missing GL enums. + */ #ifndef GL_COMPRESSED_RGB8_ETC2 #define GL_COMPRESSED_RGB8_ETC2 0x9274 #endif @@ -915,6 +908,155 @@ struct posTex2d { #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #endif +//***************************** Basis Universal /*****************************/ + +/* + * All of the BasisU code is within this block to enable building with or + * without the library. Not including the transcoder will build a dummy + * implementation to (roughly) determine the size. + */ +#ifdef BASISD_LIB_VERSION + +using namespace basist; + +/** + * Shared codebook instance. + */ +static etc1_global_selector_codebook* globalCodebook = NULL; + +/** + * Returns a supported compressed texture format for a given context. + * + * \param[in] ctx WebGL context + * \param[in] alpha \c true if the texture has an alpha channel + * \return corresponding Basis format + */ +static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, bool const alpha) { + /* + * Test for both prefixed and non-prefixed versions. This should grab iOS + * and other ImgTec GPUs first as a preference. + */ + static bool const pvr = GL_HAS_EXT(ctx, "WEBKIT_WEBGL_compressed_texture_pvrtc") + || GL_HAS_EXT(ctx, "WEBGL_compressed_texture_pvrtc"); + if (pvr) { + return (alpha) + ? cTFPVRTC1_4_RGBA // 9 + : cTFPVRTC1_4_RGB; // 8 + } + /* + * We choose DXT next, since a worry is the browser will claim ETC support + * then transcode (transcoding slower and with more artefacts) + */ + static bool const dxt = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_s3tc"); + if (dxt) { + return (alpha) + ? cTFBC3 // 3 + : cTFBC1; // 2 + } + /* + * Finally ETC then falling back on RGB. + */ + static bool const etc = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_etc"); + if (etc) { + return (alpha) + ? cTFETC2 // 1 + : cTFETC1; // 0 + } + /* + * We choose 8888 over 4444 and 565 (in the hope that is is never chosen). + */ + return cTFRGBA32; +} + +/** + * Returns the equivalent GL type given a BasisU type. + * + * \param[in] type BasisU transcode target + * \return equivalent GL type + */ +static GLenum toGlType(transcoder_texture_format const type) { + switch (type) { + case cTFETC1: + return GL_COMPRESSED_RGB8_ETC2; + case cTFETC2: + return GL_COMPRESSED_RGBA8_ETC2_EAC; + case cTFBC1: + return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; + case cTFBC3: + return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; + case cTFPVRTC1_4_RGB: + return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + case cTFPVRTC1_4_RGBA: + return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + case cTFRGBA32: + return GL_UNSIGNED_BYTE; + case cTFRGB565: + return GL_UNSIGNED_SHORT_5_6_5; + default: + return GL_UNSIGNED_SHORT_4_4_4_4; + } +} + +/** + * Uploads the texture. + * + * \param[in] ctx ctx WebGL context + * \param[in] name texture \e name + * \param[in] data \c .basis file content + * \param[in] size number of bytes in \a data + * \return \c true if the texture was decoded and created + */ +bool upload(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, GLuint const name, const uint8_t* const data, size_t const size) { + bool success = false; + basisu_transcoder_init(); + if (!globalCodebook) { + globalCodebook = new etc1_global_selector_codebook(g_global_selector_cb_size, g_global_selector_cb); + } + basisu_transcoder transcoder(globalCodebook); + if (transcoder.validate_header(data, size)) { + basisu_file_info fileInfo; + if (transcoder.get_file_info(data, size, fileInfo)) { + transcoder_texture_format type = supports(ctx, fileInfo.m_has_alpha_slices); + basisu_image_info info; + if (transcoder.get_image_info(data, size, info, 0)) { + uint32_t descW, descH, blocks; + if (transcoder.get_image_level_desc(data, size, 0, 0, descW, descH, blocks)) { + if (transcoder.start_transcoding(data, size)) { + uint32_t decSize = basis_get_bytes_per_block(type) * blocks; + if (void* decBuf = malloc(decSize)) { + if (type >= cTFTotalBlockTextureFormats) { + // note that blocks becomes total number of pixels for RGB/RGBA + blocks = descW * descH; + } + if (transcoder.transcode_image_level(data, size, 0, 0, decBuf, blocks, type)) { + glBindTexture(GL_TEXTURE_2D, name); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + if (type < cTFTotalBlockTextureFormats) { + glCompressedTexImage2D(GL_TEXTURE_2D, 0, + toGlType(type), descW, descH, 0, decSize, decBuf); + } else { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, + descW, descH, 0, GL_RGBA, toGlType(type), decBuf); + } + success = true; + } + free(decBuf); + } + } + } + } + } + } + return success; +} + +#else +// dummy implementation +bool upload(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE /*ctx*/, GLuint /*name*/, const uint8_t* data, size_t size) { + return (data[0] | data[size - 1]) != 0; +} +#endif + //****************************************************************************/ /** @@ -922,6 +1064,11 @@ struct posTex2d { */ static float rotDeg = 0.0f; +/** + * Decoded textures (0 = opaque, 1 = transparent). + */ +static GLuint txName[2] = {}; + /** * Emscripten (single) GL context. */ @@ -930,7 +1077,7 @@ static EMSCRIPTEN_WEBGL_CONTEXT_HANDLE glCtx = 0; /** * Emscripten resize handler. */ -static EM_BOOL resize(int type, const EmscriptenUiEvent* e, void* data) { +static EM_BOOL resize(int /*type*/, const EmscriptenUiEvent* /*e*/, void* /*data*/) { double surfaceW; double surfaceH; if (emscripten_get_element_css_size ("#canvas", &surfaceW, &surfaceH) == EMSCRIPTEN_RESULT_SUCCESS) { @@ -939,9 +1086,6 @@ static EM_BOOL resize(int type, const EmscriptenUiEvent* e, void* data) { glViewport(0, 0, (int) surfaceW, (int) surfaceH); } } - (void) type; - (void) data; - (void) e; return EM_FALSE; } @@ -968,121 +1112,23 @@ static EM_BOOL initContext() { static void tick() { glClearColor(1.0f, 0.0f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - + if (uRotId >= 0) { glUniform1f(uRotId, rotDeg); rotDeg += 0.1f; if (rotDeg >= 360.0f) { rotDeg -= 360.0f; } + glBindTexture(GL_TEXTURE_2D, txName[(lround(rotDeg / 45) & 1) != 0]); } - + glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); glFlush(); } /** - * Returns a supported compressed texture format for a given context. - * - * \param[in] ctx WebGL context - * \param[in] alpha \c true if the texture has an alpha channel - * \return corresponding Basis format - */ -static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, bool const alpha = false) { - static bool const pvr = GL_HAS_EXT(ctx, "WEBKIT_WEBGL_compressed_texture_pvrtc") - || GL_HAS_EXT(ctx, "WEBGL_compressed_texture_pvrtc"); - if (pvr) { - return (alpha) - ? cTFPVRTC1_4_RGBA - : cTFPVRTC1_4_RGB; - } - static bool const etc = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_etc"); - if (etc) { - return (alpha) - ? cTFETC2 - : cTFETC1; - } - static bool const dxt = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_s3tc"); - if (dxt) { - return (alpha) - ? cTFBC5 - : cTFBC1; - } - return (alpha) - ? cTFRGBA4444 - : cTFRGB565; -} - -static GLenum toGlType(transcoder_texture_format const type) { - switch (type) { - case cTFETC1: - return GL_COMPRESSED_RGB8_ETC2; - case cTFETC2: - return GL_COMPRESSED_RGBA8_ETC2_EAC; - case cTFBC1: - return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; - case cTFBC5: - return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; - case cTFPVRTC1_4_RGB: - return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; - case cTFPVRTC1_4_RGBA: - return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; - case cTFRGB565: - GL_UNSIGNED_SHORT_5_6_5; - default: - return GL_UNSIGNED_SHORT_4_4_4_4; - } -} - -/** - * Creates the texture. - */ -bool upload(GLuint name, const uint8_t * data, size_t size, transcoder_texture_format type = cTFBC1) { - basisu_transcoder_init(); - if (!globalCodebook) { - globalCodebook = new etc1_global_selector_codebook(g_global_selector_cb_size, g_global_selector_cb); - } - basisu_transcoder transcoder(globalCodebook); - if (transcoder.validate_header(data, size)) { - basisu_image_info info; - if (transcoder.get_image_info(data, size, info, 0)) { - uint32_t descW, descH, blocks; - if (transcoder.get_image_level_desc(data, size, 0, 0, descW, descH, blocks)) { - basisu_file_info fileInfo; - transcoder.get_file_info(data, size, fileInfo); - if (transcoder.start_transcoding(data, size)) { - uint32_t decSize = basis_get_bytes_per_block(type) * blocks; - if (void* decBuf = malloc(decSize)) { - if (transcoder.transcode_image_level(data, size, 0, 0, decBuf, blocks, type)) { - GLenum glType = toGlType(type); - if (glType != GL_FALSE) { - glBindTexture(GL_TEXTURE_2D, name); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - if (type < cTFTotalBlockTextureFormats) { - glCompressedTexImage2D(GL_TEXTURE_2D, 0, - glType, descW, descH, 0, decSize, decBuf); - } else { - - } - } - free(decBuf); - return glType != GL_FALSE; - } - } - } - } - } - } - return false; -} - -/** - * Creates the GL context, shaders and quad data, decompresses the Zstd data - * and 'uploads' the resulting texture. - * - * As a (naive) comparison, removing Zstd and building with "-Os -g0 s WASM=1 - * -lGL emscripten.c" results in a 15kB WebAssembly file; re-adding Zstd - * increases the Wasm by 26kB. + * Creates the GL context, shaders and quad data, decompresses the .basis files + * and 'uploads' the resulting textures. */ int main() { if (initContext()) { @@ -1114,7 +1160,6 @@ int main() { GLuint vertsBuf = 0; GLuint indexBuf = 0; - GLuint txName = 0; // Create the textured quad (vert positions then UVs) struct posTex2d verts2d[] = { {{-0.85f, -0.85f}, {0.0f, 0.0f}}, // BL @@ -1142,9 +1187,10 @@ int main() { glEnableVertexAttribArray(GL_VERT_POSXY_ID); glEnableVertexAttribArray(GL_VERT_TXUV0_ID); - (void) srcRgba; - glGenTextures(1, &txName); - if (upload(txName, srcRgb, sizeof srcRgb, supports(glCtx))) { + glGenTextures(2, txName); + if (upload(glCtx, txName[0], srcRgb, sizeof srcRgb) && + upload(glCtx, txName[1], srcRgba, sizeof srcRgba)) + { printf("Decoded!\n"); } From bce834ffbabf1a21d29cb3ba921ec0b3d8343bfa Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 25 Sep 2019 15:27:20 +0200 Subject: [PATCH 06/14] Fixes more -Wunused-parameter warnings These unused params occur when disabling various transcode options. --- transcoder/basisu_transcoder.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/transcoder/basisu_transcoder.cpp b/transcoder/basisu_transcoder.cpp index 725f33a..f3c44d0 100644 --- a/transcoder/basisu_transcoder.cpp +++ b/transcoder/basisu_transcoder.cpp @@ -6339,6 +6339,10 @@ namespace basist (void)transcode_alpha; (void)pAlpha_blocks; (void)pvrtc_wrap_addressing; + // 'pDst_blocks' unused when disabling *all* hardware transcode options + // (and 'bc1_allow_threecolor_blocks' when disabling DXT) + BASISU_NOTE_UNUSED(pDst_blocks); + BASISU_NOTE_UNUSED(bc1_allow_threecolor_blocks); if (!pState) pState = &m_def_state; @@ -6641,9 +6645,8 @@ namespace basist } case cBC1: { - void* pDst_block = static_cast(pDst_blocks) + (block_x + block_y * output_row_pitch_in_blocks_or_pixels) * output_block_or_pixel_stride_in_bytes; - #if BASISD_SUPPORT_DXT1 + void* pDst_block = static_cast(pDst_blocks) + (block_x + block_y * output_row_pitch_in_blocks_or_pixels) * output_block_or_pixel_stride_in_bytes; #if BASISD_ENABLE_DEBUG_FLAGS if (g_debug_flags & (cDebugFlagVisBC1Sels | cDebugFlagVisBC1Endpoints)) convert_etc1s_to_dxt1_vis(static_cast(pDst_block), pEndpoints, pSelector, bc1_allow_threecolor_blocks); @@ -7729,6 +7732,11 @@ namespace basist void* pOutput_blocks, uint32_t output_blocks_buf_size_in_blocks_or_pixels, block_format fmt, uint32_t block_stride_in_bytes, uint32_t output_row_pitch_in_blocks_or_pixels) { + // 'num_blocks_y', 'pOutput_blocks' & 'block_stride_in_bytes' unused + // when disabling BASISD_SUPPORT_ETC2_EAC_A8 *and* BASISD_SUPPORT_DXT5A + BASISU_NOTE_UNUSED(num_blocks_y); + BASISU_NOTE_UNUSED(pOutput_blocks); + BASISU_NOTE_UNUSED(block_stride_in_bytes); BASISU_NOTE_UNUSED(output_blocks_buf_size_in_blocks_or_pixels); if (!output_row_pitch_in_blocks_or_pixels) From 7d65ba367a7afe10751d00736113c3cfbe2ce3a5 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 25 Sep 2019 17:15:49 +0200 Subject: [PATCH 07/14] ASTC support (and improved demo) Exposed the ASTC transcoder. Improved the Emscripten example and tested on ASTC and ETC hardware. Workaround for usused functions and consts when disabling various transcode options. --- contrib/single_file_transcoder/README.md | 2 +- .../basisutranslib-in.cpp | 46 ++++++++++++-- .../examples/emscripten.cpp | 62 ++++++++++++++++--- 3 files changed, 95 insertions(+), 15 deletions(-) diff --git a/contrib/single_file_transcoder/README.md b/contrib/single_file_transcoder/README.md index 95f6ae9..d082120 100644 --- a/contrib/single_file_transcoder/README.md +++ b/contrib/single_file_transcoder/README.md @@ -16,4 +16,4 @@ Why? Because all it now takes to support Basis Universal is the addition of a single file, two if using the header, with no configuration or further build steps. -The library is small, adding, for example, 181kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7, ASTC and ATC). +The library is small, adding, for example, 181kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7, ASTC and ATC; reenabling ASTC adds a further 64kB). diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp index a684ea6..d5c5dff 100644 --- a/contrib/single_file_transcoder/basisutranslib-in.cpp +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -4,9 +4,9 @@ * ./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp * \endcode * - * \todo -Wunused-parameter errors when removing BASISD_SUPPORT_ETC2_EAC_A8 - * \todo enable and test BASISD_SUPPORT_ASTC in browsers - * \todo BASISD_SUPPORT_DXT5A needs enabling for BC3? + * \note BASISD_SUPPORT_DXT5A needs enabling for BC3 + * + * \todo remove the need for -Wno-pragma-once-outside-header when compiling standalone */ /* @@ -21,8 +21,46 @@ #endif #if TARGET_OS_IPHONE || defined(__EMSCRIPTEN__) #define BASISD_SUPPORT_BC7 0 -#define BASISD_SUPPORT_ASTC 0 #define BASISD_SUPPORT_ATC 0 #endif #include "basisu_transcoder.cpp" + +/** + * Collection of unused functions and const variables to work around \c + * -Wunused-function and \c -Wunused-const-variable warnings. + * + * \todo LTO does its thing so any unused are removed but is there a better way? + */ +void _basisu_translib_dummy() { + // These first ones are not used at all + BASISU_NOTE_UNUSED(basisu::byteswap16); + BASISU_NOTE_UNUSED(basisu::byteswap32); + BASISU_NOTE_UNUSED(basisu::BASISU_PATH_SEPERATOR_CHAR); + BASISU_NOTE_UNUSED(basisu::cHuffmanTotalSortedCodelengthCodes); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL0_DELTA_LO); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL0_DELTA_HI); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL1_DELTA_LO); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL1_DELTA_HI); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL2_DELTA_LO); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL2_DELTA_HI); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL2_PREV_HI); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL_MIN_DELTA_B_RUNLEN); + BASISU_NOTE_UNUSED(basist::COLOR5_PAL_DELTA_5_RUNLEN_VLC_BITS); + BASISU_NOTE_UNUSED(basist::NO_ENDPOINT_PRED_INDEX); + BASISU_NOTE_UNUSED(basist::MAX_SELECTOR_HISTORY_BUF_SIZE); +#if BASISD_SUPPORT_ETC2_EAC_A8 + // Unused but only when building with EAC + BASISU_NOTE_UNUSED(basist::g_eac_a8_modifier_table); +#endif +#if BASISD_SUPPORT_PVRTC1 + // Unused but only when building with PVRTC + BASISU_NOTE_UNUSED(basist::g_pvrtc_bilinear_weights); +#else + // Unused only when not building with PVRTC + BASISU_NOTE_UNUSED(basist::g_etc1_inten_tables16); + BASISU_NOTE_UNUSED(basist::g_etc1_inten_tables48); + BASISU_NOTE_UNUSED(basist::g_etc_5_to_8); + BASISU_NOTE_UNUSED(basist::g_etc1_x_selector_unpack); +#endif +} diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index dc82f14..dd20ea2 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -9,8 +9,10 @@ * export EM_FLAGS="-s ENVIRONMENT=web -s WASM=1 --shell-file shell.html --closure 1" * emcc $CC_FLAGS $EM_FLAGS -o out.html emscripten.cpp * \endcode - * - * Released under a CC0 license. + * Alternatively include the transcoder header and build \c basisutranslib + * separately (the resulting binary is exactly the same size). + * \n + * Example code released under a CC0 license. */ #include @@ -899,14 +901,21 @@ struct posTex2d { /* * Possibly missing GL enums. + * + * Note: GL_COMPRESSED_RGB_ETC1_WEBGL is the same as GL_ETC1_RGB8_OES */ +#ifndef GL_ETC1_RGB8_OES +#define GL_ETC1_RGB8_OES 0x8D64 +#endif #ifndef GL_COMPRESSED_RGB8_ETC2 #define GL_COMPRESSED_RGB8_ETC2 0x9274 #endif - #ifndef GL_COMPRESSED_RGBA8_ETC2_EAC #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #endif +#ifndef COMPRESSED_RGBA_ASTC_4x4_KHR +#define COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#endif //***************************** Basis Universal /*****************************/ @@ -932,9 +941,12 @@ static etc1_global_selector_codebook* globalCodebook = NULL; * \return corresponding Basis format */ static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, bool const alpha) { +#if BASISD_SUPPORT_PVRTC1 || !defined(BASISD_SUPPORT_PVRTC1) /* * Test for both prefixed and non-prefixed versions. This should grab iOS * and other ImgTec GPUs first as a preference. + * + * TODO: do older iOS expose ASTC to the browser and does it transcode to RGBA? */ static bool const pvr = GL_HAS_EXT(ctx, "WEBKIT_WEBGL_compressed_texture_pvrtc") || GL_HAS_EXT(ctx, "WEBGL_compressed_texture_pvrtc"); @@ -943,41 +955,68 @@ static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ? cTFPVRTC1_4_RGBA // 9 : cTFPVRTC1_4_RGB; // 8 } +#endif +#if BASISD_SUPPORT_ASTC || !defined(BASISD_SUPPORT_ASTC) + /* + * Then Android, ChromeOS and others with ASTC (newer iOS devices should + * make the list but don't appear to be exposed). + */ + static bool const astc = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_astc"); + if (astc) { + //return cTFASTC_4x4; // 10 + } +#endif +#if BASISD_SUPPORT_DXT1 || !defined(BASISD_SUPPORT_DXT1) /* * We choose DXT next, since a worry is the browser will claim ETC support - * then transcode (transcoding slower and with more artefacts) + * then transcode (transcoding slower and with more artefacts). This gives + * us desktop and various (usually Intel) Android devices. */ - static bool const dxt = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_s3tc"); + static bool const dxt = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_s3tc") + || GL_HAS_EXT(ctx, "WEBKIT_WEBGL_compressed_texture_s3tc"); if (dxt) { return (alpha) ? cTFBC3 // 3 : cTFBC1; // 2 } +#endif /* - * Finally ETC then falling back on RGB. + * Then ETC2 (which may be incorrect). */ - static bool const etc = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_etc"); - if (etc) { + static bool const etc2 = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_etc"); + if (etc2) { return (alpha) ? cTFETC2 // 1 : cTFETC1; // 0 } + /* + * Finally ETC1, falling back on RGBA. + * + * TODO: we might just prefer to transcode to dithered 565 once available + */ + static bool const etc1 = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_etc1"); + if (etc1 && !alpha) { + return cTFETC1; // 0 + } /* * We choose 8888 over 4444 and 565 (in the hope that is is never chosen). */ - return cTFRGBA32; + return cTFRGBA32; // 13 } /** * Returns the equivalent GL type given a BasisU type. * + * \note This relies on \c #supports() returning the supported formats, and so + * only converts to the GL equivalents (without further testing for support). + * * \param[in] type BasisU transcode target * \return equivalent GL type */ static GLenum toGlType(transcoder_texture_format const type) { switch (type) { case cTFETC1: - return GL_COMPRESSED_RGB8_ETC2; + return GL_ETC1_RGB8_OES; case cTFETC2: return GL_COMPRESSED_RGBA8_ETC2_EAC; case cTFBC1: @@ -988,6 +1027,8 @@ static GLenum toGlType(transcoder_texture_format const type) { return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; case cTFPVRTC1_4_RGBA: return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + case cTFASTC_4x4: + return GL_COMPRESSED_RGBA_ASTC_4x4_KHR; case cTFRGBA32: return GL_UNSIGNED_BYTE; case cTFRGB565: @@ -1017,6 +1058,7 @@ bool upload(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, GLuint const name, const basisu_file_info fileInfo; if (transcoder.get_file_info(data, size, fileInfo)) { transcoder_texture_format type = supports(ctx, fileInfo.m_has_alpha_slices); + printf("Type enum: %d\n", type); basisu_image_info info; if (transcoder.get_image_info(data, size, info, 0)) { uint32_t descW, descH, blocks; From 813b382bc8d1750fa359e45343700885eebdc258 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 25 Sep 2019 17:20:46 +0200 Subject: [PATCH 08/14] Minor: moved note --- contrib/single_file_transcoder/basisutranslib-in.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp index d5c5dff..5a50ed0 100644 --- a/contrib/single_file_transcoder/basisutranslib-in.cpp +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -4,13 +4,13 @@ * ./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp * \endcode * - * \note BASISD_SUPPORT_DXT5A needs enabling for BC3 - * * \todo remove the need for -Wno-pragma-once-outside-header when compiling standalone */ /* * Build options for known platforms. + * + * Note: BASISD_SUPPORT_DXT5A needs enabling for BC3 */ #ifdef __APPLE__ #include From 04c814471094d6f135b2d70f409ce7853f8c082d Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 25 Sep 2019 17:34:58 +0200 Subject: [PATCH 09/14] Minor: corrected figures --- contrib/single_file_transcoder/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/single_file_transcoder/README.md b/contrib/single_file_transcoder/README.md index d082120..75e04bd 100644 --- a/contrib/single_file_transcoder/README.md +++ b/contrib/single_file_transcoder/README.md @@ -16,4 +16,4 @@ Why? Because all it now takes to support Basis Universal is the addition of a single file, two if using the header, with no configuration or further build steps. -The library is small, adding, for example, 181kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7, ASTC and ATC; reenabling ASTC adds a further 64kB). +The library is small, adding, for example, 249kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7 and ATC; disabling ASTC can remove a further 64kB). From 4a401d9ec90da2fb6b061084d88dcc96627fa03b Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 25 Sep 2019 17:40:59 +0200 Subject: [PATCH 10/14] Don't add EAC to the demo if not building with EAC --- contrib/single_file_transcoder/examples/emscripten.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index dd20ea2..19eb8c3 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -980,6 +980,7 @@ static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const : cTFBC1; // 2 } #endif +#if BASISD_SUPPORT_ETC2_EAC_A8 || !defined(BASISD_SUPPORT_ETC2_EAC_A8) /* * Then ETC2 (which may be incorrect). */ @@ -989,6 +990,7 @@ static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ? cTFETC2 // 1 : cTFETC1; // 0 } +#endif /* * Finally ETC1, falling back on RGBA. * From 8bf626bb534592d6e3d2774f1cf70bc4440aa0d4 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 25 Sep 2019 20:42:33 +0200 Subject: [PATCH 11/14] Fixed standalone compilation warnings Fixed -Wno-pragma-once-outside-header requirement (removing 'pragma once' in combiner script). Minor docs. --- .../single_file_transcoder/basisutranslib-in.cpp | 9 ++++----- contrib/single_file_transcoder/combine.sh | 16 +++++++++------- .../examples/emscripten.cpp | 13 ++++++++++--- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp index 5a50ed0..219667f 100644 --- a/contrib/single_file_transcoder/basisutranslib-in.cpp +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -3,20 +3,19 @@ * \code * ./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp * \endcode - * - * \todo remove the need for -Wno-pragma-once-outside-header when compiling standalone */ /* - * Build options for known platforms. + * Transcoder build options for known platforms (iOS has ETC, ASTC and PVRTC; + * Emscripten same as iOS plus DXT; other platforms build all). * - * Note: BASISD_SUPPORT_DXT5A needs enabling for BC3 + * Note: BC3 needs BASISD_SUPPORT_DXT5A enabling */ #ifdef __APPLE__ #include #endif #if TARGET_OS_IPHONE -#define BASISD_SUPPORT_DXT1 0 +#define BASISD_SUPPORT_DXT1 0 #define BASISD_SUPPORT_DXT5A 0 #endif #if TARGET_OS_IPHONE || defined(__EMSCRIPTEN__) diff --git a/contrib/single_file_transcoder/combine.sh b/contrib/single_file_transcoder/combine.sh index 00b7b26..ccf11cc 100755 --- a/contrib/single_file_transcoder/combine.sh +++ b/contrib/single_file_transcoder/combine.sh @@ -7,7 +7,7 @@ # # TODO: ROOTS and FOUND as arrays (since they fail on paths with spaces) # -# Released under a CC0 license. +# Script released under a CC0 license. # Common file roots ROOTS="./" @@ -29,10 +29,10 @@ usage() { # Tests that the grep implementation works as expected (older OSX grep fails) test_grep() { - if ! echo '#include "foo"' | grep -Eq '^\s*#\s*include\s*".+"'; then - echo "Aborting: the grep implementation fails to parse include lines" - exit 1 - fi + if ! echo '#include "foo"' | grep -Eq '^\s*#\s*include\s*".+"'; then + echo "Aborting: the grep implementation fails to parse include lines" + exit 1 + fi } # Tests if list $1 has item $2 (returning zero on a match) @@ -83,8 +83,10 @@ add_file() { write_line "/**** skipping file: $inc ****/" fi else - # Otherwise write the source line - write_line "$line" + # Skip any 'pragma once' directives, otherwise write the source line + if echo "$line" | grep -Eqv '^\s*#\s*pragma\s*once\s*'; then + write_line "$line" + fi fi done < "$file" else diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index 19eb8c3..08bd9f4 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -9,10 +9,17 @@ * export EM_FLAGS="-s ENVIRONMENT=web -s WASM=1 --shell-file shell.html --closure 1" * emcc $CC_FLAGS $EM_FLAGS -o out.html emscripten.cpp * \endcode - * Alternatively include the transcoder header and build \c basisutranslib - * separately (the resulting binary is exactly the same size). + * Alternatively include \c basisu_transcoder.h and build \c basisutranslib + * separately (the resulting binary is exactly the same size): + * \code + * emcc $CC_FLAGS $EM_FLAGS -o out.html ../basisutranslib.cpp emscripten.cpp + * \encode + * To determine the WebAssembly size without the transcoder comment the \c + * basisutranslib.cpp include (which stubs the texture creation). * \n * Example code released under a CC0 license. + * + * \todo add mipmap support to the example */ #include @@ -25,7 +32,7 @@ #include #include -#include "../basisutranslib.cpp" //<-- can be built without to determine the size +#include "../basisutranslib.cpp" //********************************* Test Data ********************************/ From fd6b7117e44bf840ae84b61bdab1ae81172cc1a3 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Thu, 26 Sep 2019 03:42:01 +0200 Subject: [PATCH 12/14] Minor docs, minor size tweaks Clarified this is C++ source and not header-only. Added Android build options and excluded BC7 mode 6. --- contrib/single_file_transcoder/README.md | 6 +++--- contrib/single_file_transcoder/basisutranslib-in.cpp | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/contrib/single_file_transcoder/README.md b/contrib/single_file_transcoder/README.md index 75e04bd..dffa10f 100644 --- a/contrib/single_file_transcoder/README.md +++ b/contrib/single_file_transcoder/README.md @@ -1,6 +1,6 @@ # Single File Basis Universal Transcoder -The script `combine.sh` creates an _amalgamated_ source file that can be used with or without `basisu_transcoder.h`. This isn't a _header-only_ file but it does offer a similar level of simplicity when integrating into a project. +The script `combine.sh` creates an _amalgamated_ C++ source file that can be used with or without `basisu_transcoder.h`. This _isn't_ a header-only file but it does offer a similar level of simplicity when integrating into a project. Create `basisutranslib.cpp` from the transcoder source using: ``` @@ -14,6 +14,6 @@ Then add the resulting file to your project (see the [example files](examples)). Why? ---- -Because all it now takes to support Basis Universal is the addition of a single file, two if using the header, with no configuration or further build steps. +Because all it now takes to support Basis Universal is the addition of a single file, two if using the header, with no configuration or further build steps (the out-of-the-box defaults tailor the included formats for various platforms). -The library is small, adding, for example, 249kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7 and ATC; disabling ASTC can remove a further 64kB). +The library is small, adding, for example, 249kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7 and ATC; disabling ASTC can remove a further 64kB, and `gzip` will approximately half the `wasm` file). diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp index 219667f..09018eb 100644 --- a/contrib/single_file_transcoder/basisutranslib-in.cpp +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -7,9 +7,10 @@ /* * Transcoder build options for known platforms (iOS has ETC, ASTC and PVRTC; - * Emscripten same as iOS plus DXT; other platforms build all). + * Emscripten and Android are the same as iOS plus DXT; other platforms build + * all except BC7 mode 6). * - * Note: BC3 needs BASISD_SUPPORT_DXT5A enabling + * See https://github.com/BinomialLLC/basis_universal#shrinking-the-transcoders-compiled-size */ #ifdef __APPLE__ #include @@ -18,9 +19,11 @@ #define BASISD_SUPPORT_DXT1 0 #define BASISD_SUPPORT_DXT5A 0 #endif -#if TARGET_OS_IPHONE || defined(__EMSCRIPTEN__) +#if TARGET_OS_IPHONE || defined(__EMSCRIPTEN__) || defined(__ANDROID__) #define BASISD_SUPPORT_BC7 0 #define BASISD_SUPPORT_ATC 0 +#else +#define BASISD_SUPPORT_BC7_MODE6_OPAQUE_ONLY 0 #endif #include "basisu_transcoder.cpp" From 3e6a742818cd23514d92012681fd15c18933aa7e Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Thu, 26 Sep 2019 18:45:39 +0200 Subject: [PATCH 13/14] WIP (added sources with mipmaps) Mipmaps levels not yet extracted. --- .../examples/emscripten.cpp | 2455 ++++++++++++----- 1 file changed, 1746 insertions(+), 709 deletions(-) diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index 08bd9f4..8afa343 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -37,734 +37,1771 @@ //********************************* Test Data ********************************/ /** - * Basis Universal compressed 256x256 RGB texture source. + * Basis Universal compressed 256x256 RGB texture source (with mipmaps). * \n * See \c testcard.png for the original. Generate using: * \code - * basisu -level 5 -max_endpoints 16128 -max_selectors 16128 -linear -y_flip + * basisu -comp_level 5 -linear -global_sel_pal -y_flip -mipmap * \endcode */ static uint8_t const srcRgb[] = { - 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0xcb, 0x50, 0x69, 0x0d, 0x00, 0x00, - 0x04, 0xef, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0xfc, 0xe8, 0x9e, 0x20, 0x00, 0x00, + 0xcb, 0xa6, 0x09, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x64, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, - 0x09, 0x01, 0x95, 0x01, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x39, 0x04, 0x00, - 0x00, 0xba, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x57, 0x01, 0x1c, 0x01, 0x00, 0x00, 0xf5, 0x02, 0x00, + 0xa3, 0x02, 0x11, 0x04, 0x00, 0x00, 0x62, 0x09, 0x00, 0x73, 0x0d, 0x00, + 0x00, 0x73, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0xf3, 0x04, 0x00, 0x00, 0xc3, 0x08, - 0x00, 0x00, 0xf4, 0xb2, 0x20, 0x40, 0x04, 0x80, 0x41, 0x10, 0x04, 0xa2, - 0xe8, 0xfb, 0x87, 0x59, 0x73, 0x0d, 0x25, 0x66, 0xc2, 0xa6, 0xf7, 0x41, - 0x80, 0x06, 0x10, 0xc2, 0x20, 0x10, 0xf2, 0x39, 0x45, 0x91, 0xba, 0x88, - 0xad, 0xbb, 0x98, 0x53, 0x10, 0xe0, 0x01, 0xc5, 0x20, 0x10, 0x82, 0x50, - 0x1e, 0x9a, 0xf3, 0x73, 0xab, 0xb3, 0xd1, 0x50, 0x8f, 0x00, 0x01, 0x98, - 0x00, 0x00, 0x00, 0x80, 0x20, 0x08, 0x80, 0xf0, 0x6a, 0xc5, 0xec, 0x52, - 0x69, 0x80, 0xaa, 0x51, 0x07, 0xa2, 0x2e, 0x8f, 0xde, 0xb3, 0x17, 0x11, - 0x1d, 0x8f, 0xfa, 0x79, 0xc8, 0x2c, 0x7d, 0x4e, 0x7c, 0xbb, 0xb5, 0xd6, - 0xb8, 0x7b, 0xc4, 0xf0, 0xd5, 0x74, 0x40, 0x68, 0x22, 0x6d, 0x2f, 0x04, - 0x08, 0xb6, 0xb3, 0x0b, 0x6a, 0xaf, 0x72, 0xa4, 0xed, 0xcd, 0x14, 0x76, - 0x81, 0x66, 0x17, 0x68, 0xa6, 0xd8, 0x09, 0xcc, 0x76, 0xec, 0x7c, 0x11, - 0xba, 0xcc, 0x27, 0xe6, 0xca, 0x3c, 0x1e, 0x07, 0x9e, 0x69, 0x2e, 0x03, - 0x99, 0x59, 0xe3, 0xb3, 0xff, 0xe1, 0x4e, 0x7a, 0xc6, 0xff, 0xbc, 0x41, - 0x67, 0xb7, 0x4a, 0xf6, 0x3b, 0x67, 0xaf, 0xe7, 0x62, 0xcb, 0x22, 0x6c, - 0x75, 0xdd, 0xff, 0x3c, 0x4e, 0xaa, 0x5a, 0x55, 0x9d, 0x52, 0x0a, 0xdb, - 0x1d, 0x63, 0x3c, 0x11, 0x19, 0x33, 0x0b, 0x33, 0x3f, 0x33, 0x3b, 0x6b, - 0xda, 0x3b, 0x29, 0x0c, 0x7b, 0x23, 0x22, 0x00, 0x1e, 0x70, 0xcd, 0x9c, - 0x6b, 0xd4, 0xce, 0xfd, 0x7c, 0xaf, 0x4f, 0xd9, 0x7e, 0x71, 0xf8, 0xfc, - 0x52, 0x99, 0x19, 0x90, 0x8c, 0x8c, 0x48, 0xe2, 0x56, 0x11, 0xd9, 0x99, - 0xdf, 0xa5, 0xef, 0x8e, 0x90, 0xf6, 0x15, 0x8d, 0x10, 0x01, 0x21, 0xc4, - 0x9b, 0x72, 0x12, 0x60, 0xa9, 0xd1, 0x7d, 0x57, 0x28, 0x40, 0x05, 0x58, - 0x3b, 0x48, 0xa4, 0x8c, 0x04, 0x3d, 0x0b, 0x44, 0xa0, 0x36, 0x74, 0x7f, - 0x02, 0x47, 0x2f, 0x5e, 0x6f, 0x04, 0x98, 0x50, 0xf8, 0xfe, 0xed, 0x57, - 0x95, 0xbc, 0xbf, 0xd6, 0x84, 0x96, 0xfb, 0xb5, 0x59, 0x1e, 0x79, 0xa1, - 0x77, 0x16, 0xe5, 0xd6, 0x9c, 0x65, 0xd3, 0x8d, 0xbe, 0x11, 0x02, 0x08, - 0xa0, 0x49, 0xf1, 0x58, 0xd8, 0xc8, 0x2e, 0x0b, 0x01, 0xe8, 0x07, 0xe6, - 0x00, 0x68, 0x5c, 0x65, 0x00, 0x00, 0xe0, 0xef, 0xff, 0xdf, 0x7f, 0x69, - 0x72, 0x7d, 0xb5, 0x7f, 0xe2, 0xa5, 0x26, 0x1a, 0xe5, 0x19, 0xaf, 0xed, - 0x29, 0x19, 0x0e, 0x5c, 0x82, 0x2e, 0x7f, 0xe0, 0x94, 0x4a, 0x1d, 0xae, - 0x90, 0x62, 0x75, 0x52, 0x29, 0x22, 0x28, 0x34, 0x6e, 0x0e, 0x0e, 0x2f, - 0xa5, 0x4a, 0x06, 0x87, 0x3b, 0xa9, 0x50, 0xc1, 0xe1, 0x90, 0x16, 0xaa, - 0x83, 0x14, 0x5c, 0x1c, 0x1c, 0x9e, 0x51, 0x9c, 0x0b, 0x8a, 0x38, 0x66, - 0x74, 0xec, 0xd8, 0xa1, 0xea, 0xea, 0xea, 0xff, 0x58, 0x5f, 0x87, 0x52, - 0xca, 0x3a, 0x0a, 0x50, 0xb0, 0x87, 0xfd, 0x10, 0x02, 0xec, 0xef, 0x63, - 0x9a, 0x52, 0xca, 0x39, 0xe7, 0x52, 0x4a, 0xe9, 0xf7, 0xfb, 0xfd, 0xa6, - 0x69, 0x32, 0xc6, 0x63, 0x3c, 0x68, 0x5b, 0x68, 0x23, 0x02, 0xa8, 0x54, - 0x50, 0x81, 0xaa, 0x02, 0x6a, 0x75, 0xad, 0x06, 0xc6, 0xd4, 0xe3, 0x9a, - 0xba, 0xd4, 0xa5, 0x28, 0x54, 0x55, 0x55, 0x29, 0x4a, 0xab, 0x28, 0x68, - 0x29, 0x68, 0x71, 0x8c, 0x80, 0x1f, 0x2b, 0xdc, 0x3c, 0x3c, 0x34, 0x18, - 0x24, 0x64, 0x04, 0x0c, 0xb0, 0xb6, 0xc6, 0xa9, 0x95, 0x18, 0x0c, 0x37, - 0x03, 0x43, 0xc8, 0xe8, 0x61, 0x80, 0x20, 0x28, 0xae, 0xd0, 0xce, 0xb4, - 0x25, 0x28, 0xc2, 0x1e, 0x66, 0x7b, 0xec, 0x40, 0x20, 0x40, 0xa0, 0x0a, - 0x20, 0x12, 0x20, 0x10, 0xe0, 0x0f, 0x0a, 0x64, 0x3a, 0x4a, 0x59, 0x94, - 0x36, 0x53, 0x4a, 0x6e, 0x72, 0x6e, 0x72, 0x29, 0xe4, 0xb6, 0x2c, 0xda, - 0x22, 0x43, 0x21, 0xb7, 0x94, 0xd6, 0x4f, 0xb8, 0x3a, 0x47, 0x50, 0x60, - 0x8f, 0xbd, 0x19, 0x61, 0x4f, 0x69, 0x67, 0xb3, 0x96, 0x2b, 0x8a, 0xc0, - 0x90, 0xb0, 0x39, 0x14, 0xa2, 0xe7, 0x58, 0xd9, 0x62, 0xad, 0x57, 0x45, - 0x57, 0xec, 0x99, 0xb5, 0x53, 0xae, 0x15, 0xb5, 0x85, 0x9d, 0x51, 0xd6, - 0x8c, 0x1b, 0x85, 0xdb, 0x18, 0x15, 0x0a, 0x05, 0x93, 0x18, 0x50, 0xc5, - 0x98, 0x20, 0x25, 0xcb, 0xf1, 0x54, 0xaf, 0x11, 0x5d, 0x48, 0x41, 0x2d, - 0x56, 0x84, 0x78, 0xab, 0x84, 0xd8, 0x96, 0xd2, 0xe2, 0x7f, 0xdc, 0xa6, - 0x48, 0x29, 0x09, 0xa9, 0x47, 0xa8, 0x24, 0xd5, 0x55, 0xf6, 0xc5, 0xf8, - 0xd5, 0x9f, 0xda, 0xeb, 0x07, 0x5d, 0xd3, 0xc6, 0x69, 0x97, 0x46, 0x37, - 0xc8, 0x1e, 0x95, 0x6c, 0x76, 0xb0, 0x98, 0x71, 0x3b, 0x3c, 0xe4, 0xe0, - 0x7a, 0x2b, 0xb6, 0x4d, 0x37, 0x4a, 0xdd, 0x34, 0x73, 0x23, 0x97, 0x47, - 0xfe, 0x19, 0xcf, 0x58, 0x9c, 0x90, 0xf3, 0xd9, 0x45, 0xd3, 0xfe, 0x57, - 0xca, 0x0b, 0x2f, 0x9b, 0x9b, 0x5b, 0xfa, 0x1b, 0x8b, 0x61, 0xe0, 0x72, - 0x14, 0x8f, 0x4c, 0xee, 0x1e, 0xe8, 0xea, 0x8d, 0xb6, 0x0c, 0x4f, 0xa6, - 0xed, 0x4c, 0xb9, 0xc6, 0x42, 0x2d, 0x8f, 0x76, 0x34, 0x5f, 0xbf, 0x2f, - 0x25, 0x4f, 0x36, 0xea, 0xce, 0xc7, 0xf7, 0x6f, 0x39, 0x8a, 0xe2, 0x65, - 0xc2, 0x70, 0xc1, 0x78, 0x2e, 0x1c, 0xbd, 0x48, 0x1d, 0x42, 0xac, 0x9d, - 0x4d, 0x97, 0x86, 0x52, 0x1e, 0x57, 0x61, 0x62, 0x69, 0x79, 0x8b, 0x6a, - 0x7b, 0xd5, 0xea, 0x19, 0xc6, 0xc9, 0xf0, 0x52, 0xa8, 0xc6, 0x79, 0x79, - 0xc9, 0xa4, 0x62, 0x6b, 0xd5, 0xea, 0xf6, 0xc6, 0x99, 0x3e, 0x21, 0x5d, - 0x14, 0x35, 0x21, 0xf4, 0xcf, 0x57, 0xbd, 0x50, 0x7f, 0xb8, 0x6d, 0xfb, - 0x41, 0x8e, 0xc9, 0x64, 0x6d, 0x79, 0x9a, 0xc2, 0x4a, 0xd7, 0xc6, 0x38, - 0x73, 0xfc, 0x97, 0xb6, 0xdb, 0x55, 0x9f, 0xf3, 0xf0, 0xf3, 0xbb, 0x58, - 0x17, 0x4e, 0x1f, 0x0b, 0x3f, 0x6f, 0x3b, 0xfe, 0xe8, 0x8e, 0xd0, 0x7f, - 0xca, 0xce, 0x66, 0x2d, 0xe7, 0x9c, 0x35, 0xe3, 0xb3, 0x4e, 0x16, 0x9c, - 0xde, 0x1d, 0x3b, 0x57, 0xdb, 0xed, 0x5a, 0x5d, 0x57, 0xf2, 0x52, 0x2c, - 0xad, 0xcf, 0xae, 0x97, 0xb9, 0xb9, 0xd7, 0x76, 0xab, 0x68, 0x1f, 0x31, - 0x7e, 0x63, 0xf6, 0xdd, 0xea, 0xcd, 0x93, 0xb7, 0x7e, 0xdf, 0xfe, 0xf4, - 0xee, 0x6c, 0x79, 0xad, 0x48, 0x31, 0x2f, 0xa6, 0xef, 0xbc, 0xfb, 0x65, - 0xa8, 0x5f, 0xf9, 0xe1, 0x7e, 0x8c, 0x11, 0x95, 0xc3, 0xc3, 0x9b, 0x06, - 0xaf, 0x27, 0xf5, 0x85, 0xa7, 0x5f, 0xed, 0xe9, 0xf5, 0xe9, 0x2f, 0xad, - 0xac, 0x8d, 0x36, 0x36, 0x9e, 0x19, 0x0d, 0x06, 0x83, 0xc1, 0xd6, 0x4b, - 0x1b, 0x17, 0x97, 0xc2, 0x79, 0xff, 0x3e, 0xae, 0xbd, 0x57, 0x7e, 0xb9, - 0xd7, 0x5b, 0x09, 0x21, 0xa5, 0x94, 0xbe, 0x28, 0x93, 0xe9, 0x88, 0xd1, - 0xdb, 0x77, 0x8e, 0x26, 0x4d, 0xce, 0xcd, 0xf7, 0xf3, 0xf6, 0x0d, 0x55, - 0x60, 0xa9, 0x17, 0xa4, 0xf4, 0x6b, 0xa1, 0x94, 0xf2, 0xdb, 0x13, 0x9b, - 0xcf, 0x56, 0x4e, 0xee, 0xb1, 0x8e, 0x37, 0xcf, 0x31, 0x7f, 0x3e, 0x7c, - 0xbb, 0xf6, 0xc1, 0x27, 0x1d, 0x74, 0x74, 0x3a, 0x74, 0x5d, 0xd7, 0x75, - 0x00, 0x01, 0x41, 0x5c, 0x01, 0xcd, 0xb3, 0x8c, 0xe2, 0xf8, 0x4f, 0x73, - 0x3a, 0xf9, 0x41, 0xfb, 0x7f, 0xff, 0x1e, 0xb2, 0x28, 0x8e, 0xae, 0x0e, - 0x09, 0x99, 0x4a, 0x0f, 0x68, 0x2f, 0xe1, 0x25, 0x53, 0x79, 0x47, 0xd7, - 0x86, 0x08, 0xba, 0xe5, 0x06, 0x7a, 0x39, 0x56, 0x47, 0x1f, 0x6c, 0x36, - 0x0b, 0xf1, 0x18, 0x33, 0x86, 0xde, 0x42, 0x69, 0x52, 0xb2, 0x04, 0xbe, - 0xe7, 0x0f, 0x88, 0x84, 0xa1, 0x32, 0x85, 0x61, 0x00, 0x9e, 0xe7, 0xfd, - 0xce, 0x99, 0xb9, 0x8e, 0x33, 0xf7, 0x2a, 0x94, 0x6c, 0xc8, 0xca, 0x4a, - 0xb1, 0x51, 0x57, 0xd9, 0x20, 0x85, 0x42, 0x09, 0x0b, 0x21, 0x3b, 0x9b, - 0xfb, 0x77, 0x66, 0xbe, 0x99, 0xf3, 0xf3, 0x3e, 0x4a, 0x41, 0x24, 0x4a, - 0xb9, 0xc4, 0xa8, 0xe2, 0x38, 0x6a, 0x5c, 0x42, 0x7c, 0x4c, 0x05, 0x41, - 0x94, 0x36, 0x89, 0x71, 0x01, 0xf1, 0xd5, 0x3e, 0x12, 0x37, 0x11, 0x1f, - 0x71, 0x23, 0xe0, 0x92, 0x13, 0x97, 0x80, 0xab, 0x18, 0xfd, 0x7f, 0xe7, - 0x9c, 0xaa, 0x5b, 0x75, 0xbf, 0x2e, 0xb8, 0x75, 0x23, 0xa2, 0x19, 0x75, - 0xf7, 0x27, 0x6d, 0x67, 0x20, 0x08, 0xea, 0x34, 0x1c, 0x11, 0x60, 0x12, - 0xc0, 0x28, 0x08, 0x03, 0x51, 0x00, 0x7d, 0xdf, 0xdd, 0xc1, 0xa2, 0x23, - 0x72, 0xb2, 0x3d, 0x98, 0x18, 0x80, 0x00, 0x3e, 0x97, 0xec, 0xf9, 0xb6, - 0xb3, 0x6a, 0x26, 0x83, 0x0d, 0x03, 0x19, 0x12, 0x96, 0x84, 0x21, 0x61, - 0x49, 0x18, 0x12, 0x96, 0x84, 0x21, 0x61, 0x49, 0x18, 0x12, 0x96, 0x84, - 0x21, 0x61, 0x49, 0x18, 0x12, 0x89, 0x44, 0x22, 0x91, 0x48, 0x24, 0x12, - 0x89, 0x44, 0x22, 0x91, 0x48, 0x24, 0x64, 0xd1, 0x75, 0x1c, 0xfb, 0x28, - 0xb5, 0xf3, 0xc8, 0x63, 0xc7, 0xac, 0xb6, 0x39, 0x56, 0x51, 0x36, 0xc7, - 0xa4, 0x34, 0xc7, 0xd4, 0xd0, 0x1c, 0x53, 0xef, 0xe2, 0x81, 0x1f, 0xf9, - 0xf8, 0xbb, 0x3f, 0xbd, 0xff, 0x23, 0x67, 0xb9, 0x3a, 0x7c, 0xbe, 0xd5, - 0xd5, 0x7c, 0x08, 0x67, 0xbe, 0xea, 0x3f, 0x37, 0xfe, 0xe1, 0x9d, 0xbf, - 0xff, 0xe6, 0xb3, 0xdf, 0x6c, 0x3d, 0x48, 0xcd, 0x31, 0x55, 0x9a, 0x63, - 0xaa, 0x34, 0xc7, 0x54, 0x69, 0x8e, 0xa9, 0xd2, 0x1c, 0x53, 0xa5, 0xb9, - 0x90, 0x8e, 0xc5, 0x51, 0xff, 0x77, 0xa4, 0xff, 0x72, 0xd8, 0xf8, 0xff, - 0x3f, 0xa8, 0x7e, 0xd8, 0x36, 0xd0, 0x18, 0x48, 0x71, 0x86, 0x27, 0xfb, - 0xd9, 0x07, 0xc5, 0x9e, 0x73, 0x45, 0x72, 0x38, 0x92, 0x15, 0x90, 0x7e, - 0xf3, 0x73, 0x7d, 0xe6, 0xbb, 0xb7, 0x54, 0xc2, 0x71, 0x70, 0x1c, 0x1c, - 0x07, 0xc7, 0xa1, 0xba, 0x50, 0xd6, 0x1a, 0xee, 0x53, 0xd4, 0xea, 0x5e, - 0xab, 0x7b, 0xad, 0x97, 0xee, 0x8f, 0x35, 0xee, 0x7d, 0xf4, 0x82, 0x33, - 0x3d, 0x5d, 0x9c, 0xba, 0x73, 0x6b, 0x54, 0xa6, 0x50, 0xad, 0x52, 0xad, - 0x52, 0xdd, 0x55, 0xb4, 0x93, 0xf5, 0xab, 0xe5, 0x66, 0x9f, 0xbe, 0xbf, - 0x8a, 0x7f, 0x5d, 0x15, 0x62, 0x0e, 0x77, 0x70, 0x07, 0x77, 0x50, 0x75, - 0x74, 0xcc, 0x63, 0xfc, 0xcb, 0x76, 0xed, 0x3a, 0x94, 0x5d, 0x3d, 0x74, - 0xa8, 0x51, 0xf6, 0x6d, 0x9f, 0x3e, 0xec, 0xd3, 0x88, 0x8e, 0x08, 0x84, - 0x19, 0x98, 0x81, 0x19, 0x98, 0x4d, 0x57, 0xe0, 0x87, 0x66, 0x60, 0x06, - 0x66, 0x60, 0x06, 0x61, 0x46, 0xea, 0x39, 0xaa, 0x4e, 0x1f, 0x48, 0x78, - 0x77, 0xe2, 0x7f, 0xf3, 0xb7, 0x8d, 0xe7, 0x33, 0x3e, 0xf6, 0xdb, 0x9f, - 0xa7, 0xbb, 0xe3, 0xfd, 0x87, 0xbf, 0x6f, 0x9b, 0xa1, 0x3a, 0x79, 0x73, - 0xbf, 0xad, 0xe2, 0x78, 0x20, 0x07, 0x33, 0xec, 0x8f, 0x37, 0xf5, 0xe3, - 0xdf, 0xc7, 0xd7, 0x9b, 0x2f, 0x8a, 0x41, 0xde, 0xbc, 0xa6, 0xe7, 0xb6, - 0xaa, 0x61, 0x49, 0x83, 0xb0, 0x3e, 0xaa, 0x63, 0x48, 0xf7, 0x9f, 0x72, - 0x5b, 0x3d, 0xc2, 0xc8, 0xcd, 0x90, 0xc8, 0xb1, 0x1f, 0x9b, 0x53, 0x3c, - 0xe4, 0xf4, 0x46, 0xfe, 0x55, 0x8c, 0xc8, 0x28, 0x5d, 0x21, 0x53, 0x75, - 0x50, 0x57, 0xdf, 0xff, 0xd9, 0xc2, 0x3b, 0x5e, 0x3c, 0x3b, 0xb8, 0xf5, - 0xa0, 0x2a, 0x0c, 0x72, 0x9b, 0x41, 0x24, 0x44, 0x0e, 0x66, 0xf8, 0x36, - 0x60, 0xa7, 0x72, 0xc2, 0x3f, 0xdf, 0x3d, 0xa1, 0xbe, 0x76, 0x94, 0x21, - 0xcd, 0x82, 0xaa, 0xcc, 0x2c, 0xb6, 0x08, 0x43, 0xf1, 0xf7, 0xa2, 0xab, - 0x17, 0xb2, 0xff, 0xf3, 0xd6, 0xc2, 0xab, 0x93, 0x5b, 0x75, 0x44, 0x8e, - 0x66, 0xd4, 0x8f, 0x97, 0xfb, 0x0a, 0x7b, 0xb5, 0x30, 0xd4, 0x90, 0x4b, - 0xd6, 0xe9, 0x39, 0xaa, 0x76, 0x8d, 0x3a, 0x9c, 0xeb, 0xee, 0x06, 0xcf, - 0xfb, 0x31, 0x6b, 0xb8, 0x0b, 0x83, 0x7c, 0xcc, 0xa1, 0xd9, 0x08, 0x53, - 0xbe, 0x98, 0xe3, 0xbf, 0xe9, 0x7f, 0xc5, 0x27, 0x38, 0xdb, 0x59, 0x18, - 0xa8, 0x9b, 0x15, 0xd3, 0x49, 0x2a, 0x38, 0x8b, 0xd9, 0x62, 0x7b, 0xc4, - 0x73, 0x95, 0xbc, 0x18, 0xf9, 0x20, 0x91, 0x1d, 0xd0, 0xed, 0xf1, 0xc9, - 0xd3, 0xa3, 0x3b, 0x32, 0x8c, 0x20, 0x29, 0x83, 0x50, 0xa8, 0xd8, 0x7e, - 0xb8, 0x70, 0xfb, 0xb2, 0xc3, 0xb3, 0x50, 0xa8, 0xc8, 0x21, 0x9f, 0x73, - 0x88, 0x84, 0xc8, 0x66, 0x8e, 0x2c, 0xec, 0x64, 0x39, 0xb9, 0xf7, 0xea, - 0x78, 0x66, 0x64, 0x21, 0x14, 0x22, 0xf5, 0xea, 0xcb, 0xea, 0xdb, 0xb7, - 0xdf, 0x6c, 0x0f, 0xa7, 0x2c, 0x8b, 0x91, 0x7b, 0x75, 0x44, 0xf6, 0xd2, - 0x59, 0xd6, 0x03, 0xdf, 0x6c, 0x2c, 0xd1, 0x12, 0x19, 0xd4, 0x6d, 0x51, - 0x3e, 0x9f, 0xd7, 0xed, 0x63, 0x4e, 0x56, 0x07, 0x78, 0x87, 0x17, 0xcd, - 0x66, 0x01, 0x76, 0xe1, 0x90, 0x9f, 0x59, 0x0c, 0xd0, 0x66, 0x45, 0x1c, - 0xee, 0xea, 0x65, 0xfe, 0x7f, 0x83, 0x77, 0xa8, 0x14, 0x36, 0xd3, 0x71, - 0x66, 0x7b, 0xb1, 0xdb, 0xdc, 0x2c, 0x3c, 0x90, 0x5a, 0x5e, 0x86, 0x14, - 0x0b, 0x7f, 0xe8, 0xc3, 0x0b, 0x39, 0x92, 0x65, 0x94, 0xa6, 0x4b, 0xd9, - 0xc5, 0xd5, 0x5b, 0x37, 0x81, 0x91, 0x41, 0x28, 0x94, 0x17, 0x20, 0x66, - 0x11, 0x90, 0xa1, 0x50, 0xc8, 0xb9, 0x7a, 0x7c, 0xb8, 0x6f, 0xc9, 0x20, - 0x14, 0xca, 0x2c, 0xab, 0x97, 0x7d, 0xe3, 0xbc, 0xd5, 0x29, 0xce, 0x32, - 0xcb, 0xc9, 0x69, 0x46, 0xa9, 0x4e, 0x5c, 0xba, 0xa0, 0x22, 0x59, 0xd4, - 0x7d, 0xf1, 0xe8, 0xc7, 0x6f, 0xd9, 0xea, 0xa0, 0x0e, 0x2f, 0xda, 0xf6, - 0xcb, 0x59, 0x6c, 0x7b, 0xe7, 0x64, 0x1f, 0x38, 0x29, 0x6c, 0xfc, 0x85, - 0xed, 0x17, 0xec, 0xe4, 0xb8, 0x1b, 0x3b, 0xca, 0xad, 0xa7, 0x60, 0xc5, - 0x3f, 0xd9, 0xc1, 0x9a, 0xce, 0xc4, 0x99, 0x08, 0x0c, 0xb8, 0x27, 0x07, - 0x33, 0xb4, 0x79, 0xd1, 0x65, 0x20, 0x9d, 0x34, 0x37, 0xe2, 0xb5, 0xc2, - 0x49, 0x5a, 0x13, 0x71, 0x49, 0xcf, 0xb8, 0x70, 0xd4, 0x31, 0x96, 0xa6, - 0xb9, 0x9a, 0x5f, 0x8e, 0xb3, 0x9a, 0x9f, 0xd6, 0x9b, 0xab, 0xde, 0xda, - 0x2a, 0x4e, 0xbe, 0xc9, 0x0a, 0x80, 0x1c, 0x1d, 0xa9, 0x90, 0x4e, 0x7f, - 0x71, 0x81, 0xc4, 0x0c, 0x49, 0x37, 0xc1, 0x05, 0x2f, 0xcf, 0x50, 0x0f, - 0x8c, 0xec, 0x84, 0xfa, 0xad, 0x7d, 0xd8, 0x79, 0x8a, 0xad, 0x5e, 0xad, - 0xd0, 0xba, 0x73, 0xb5, 0x96, 0xcd, 0xdb, 0xd5, 0xdb, 0xbe, 0x36, 0x5b, - 0x57, 0xfc, 0x7a, 0xde, 0x36, 0xd7, 0xd2, 0x56, 0x4c, 0x42, 0xe4, 0x60, - 0x86, 0x5c, 0x29, 0xd4, 0x45, 0x62, 0xbb, 0xdd, 0xe2, 0x55, 0xc7, 0x34, - 0x91, 0x96, 0x71, 0x35, 0xee, 0xb1, 0xb1, 0x2c, 0xc6, 0x46, 0xf5, 0xa5, - 0x63, 0x5a, 0x75, 0xe6, 0xdc, 0xd8, 0x8c, 0x52, 0x4a, 0x69, 0xc6, 0xe1, - 0x9b, 0xad, 0x28, 0x64, 0xb9, 0x2f, 0x9d, 0x0d, 0x47, 0xda, 0x78, 0x44, - 0xb2, 0x81, 0x0c, 0x5a, 0x17, 0xf7, 0x3f, 0xcf, 0xba, 0xd6, 0xb2, 0x60, - 0x74, 0xad, 0xe5, 0x7d, 0x7b, 0x63, 0x2e, 0x36, 0x51, 0x17, 0xbb, 0xd9, - 0xf9, 0x66, 0x73, 0x7e, 0x30, 0x86, 0xb6, 0x61, 0xd9, 0x37, 0x23, 0xfb, - 0x96, 0x52, 0xe7, 0xc7, 0xdd, 0xb1, 0x2d, 0xdd, 0xbe, 0xe5, 0x6e, 0x6d, - 0x53, 0x86, 0x7a, 0x60, 0xcc, 0x90, 0xd5, 0xb5, 0x55, 0x4c, 0x91, 0xb8, - 0xf5, 0x72, 0xce, 0x5f, 0x7e, 0xd9, 0x2c, 0x69, 0xf5, 0x7a, 0x7d, 0x5d, - 0x1d, 0x35, 0x9c, 0x5e, 0xe5, 0x1c, 0x57, 0x68, 0xae, 0xe7, 0xcd, 0x16, - 0xb6, 0x69, 0x4c, 0x4c, 0xd9, 0x5f, 0x9b, 0x59, 0xee, 0x6b, 0xa4, 0x69, - 0x48, 0x1d, 0x78, 0x5d, 0xcb, 0xe8, 0xbc, 0xdc, 0xe9, 0x0e, 0xc7, 0x0a, - 0x39, 0x48, 0xd9, 0x08, 0xd9, 0xea, 0x5a, 0xd1, 0xe9, 0x6e, 0xcd, 0xaa, - 0x76, 0xd3, 0x37, 0x6f, 0xa3, 0xec, 0x5e, 0xfb, 0x7a, 0x45, 0xdb, 0x64, - 0x8b, 0xad, 0xc4, 0xba, 0xb4, 0xd5, 0x4c, 0xb9, 0x33, 0x43, 0x36, 0x85, - 0x5c, 0x06, 0x52, 0x06, 0x6f, 0x1f, 0x16, 0xca, 0x34, 0x4f, 0x3d, 0x28, - 0x17, 0xdb, 0xd6, 0x3d, 0x6c, 0xc3, 0xa9, 0x66, 0x46, 0x33, 0x16, 0x31, - 0xac, 0x2d, 0x9d, 0x6e, 0xb8, 0xe1, 0x1b, 0xb8, 0x9c, 0xbc, 0x6f, 0xf4, - 0x58, 0x2c, 0x1c, 0x95, 0x52, 0xae, 0x7e, 0x5a, 0x64, 0xd1, 0xde, 0x1b, - 0x97, 0xcd, 0x9a, 0x2b, 0x55, 0x07, 0xf5, 0xb6, 0x55, 0xb5, 0xd5, 0x96, - 0xc2, 0xa6, 0x53, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xd0, 0x35, 0xca, 0x9a, 0x5a, - 0x60, 0xb4, 0xdb, 0xd5, 0x7c, 0x08, 0xd7, 0x33, 0x99, 0xe6, 0xa7, 0x56, - 0x9f, 0x61, 0x68, 0x8d, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3a, 0x52, 0x37, 0xa4, 0x0e, 0xe2, 0x3b, 0x24, 0x3d, 0xac, - 0x7f, 0x4c, 0xa8, 0xcb, 0x40, 0xca, 0x4e, 0xa8, 0xaf, 0x30, 0x1d, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x57, 0xa8, 0xcb, 0x40, - 0xca, 0xce, 0xa5, 0xbe, 0x2f, 0x92, 0x77, 0x2b, 0xd5, 0x17, 0x86, 0x54, - 0x8a, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe2, - 0x50, 0x0c, 0x95, 0x62, 0xcb, 0xa9, 0x25, 0x83, 0x3e, 0xdf, 0xa4, 0x96, - 0x4f, 0x55, 0x07, 0xf5, 0xf4, 0x62, 0x7a, 0xbf, 0xf0, 0x45, 0x72, 0x25, - 0xbf, 0x8b, 0xeb, 0xe2, 0xba, 0xb8, 0x2e, 0xae, 0x8b, 0xeb, 0xe2, 0xba, - 0xb8, 0x2e, 0x3d, 0x29, 0x4d, 0x55, 0x07, 0xf5, 0xe4, 0x27, 0x7d, 0xd4, - 0x91, 0x21, 0x70, 0x7a, 0x75, 0x64, 0x18, 0x91, 0x57, 0x20, 0x45, 0x75, - 0x14, 0xa0, 0x47, 0x67, 0xf4, 0xd6, 0x14, 0x0a, 0x5f, 0x86, 0x81, 0xd2, - 0x2c, 0x08, 0xe5, 0x35, 0x5d, 0x86, 0x42, 0xe1, 0x31, 0x43, 0x86, 0xde, - 0xab, 0x1c, 0x5f, 0x99, 0xbc, 0xeb, 0xc2, 0xbb, 0x23, 0x15, 0x27, 0x9c, - 0xfc, 0x05, 0x0a, 0x52, 0xa0, 0xe5, 0x51, 0x92, 0x75, 0x3e, 0xff, 0xba, - 0x96, 0x4f, 0x65, 0xe8, 0x49, 0x69, 0x3a, 0xc9, 0x06, 0x7c, 0x06, 0x78, - 0xa8, 0x0e, 0x79, 0x80, 0xaf, 0x81, 0x85, 0x9e, 0x5e, 0x4c, 0x91, 0xe8, - 0xc9, 0xa5, 0xbe, 0x61, 0x1c, 0x69, 0xfd, 0x93, 0xc5, 0xe9, 0xa4, 0x02, - 0x0a, 0xb2, 0xc9, 0x33, 0x90, 0x22, 0x13, 0x48, 0x7c, 0x8f, 0xa4, 0x87, - 0xe6, 0x67, 0x84, 0x42, 0x24, 0x32, 0x08, 0x85, 0xc8, 0x06, 0x04, 0x88, - 0x3c, 0x01, 0x01, 0x22, 0x43, 0xa1, 0x50, 0x86, 0x0c, 0xdd, 0xeb, 0xdb, - 0x22, 0xf9, 0xcc, 0x52, 0xbd, 0x67, 0x0a, 0x0a, 0xb2, 0x9d, 0x7c, 0x87, - 0x13, 0xa4, 0x60, 0xde, 0x9b, 0x0f, 0x3a, 0x06, 0xbd, 0x68, 0xae, 0xef, - 0xd6, 0xb3, 0x3a, 0x45, 0xa2, 0xa7, 0x17, 0x53, 0x64, 0x03, 0x02, 0x54, - 0x1d, 0xf2, 0x00, 0x01, 0xa2, 0xa7, 0x17, 0x53, 0x24, 0x7a, 0x72, 0x57, - 0xce, 0x7e, 0x56, 0xcf, 0x99, 0x72, 0xc7, 0x5b, 0x49, 0x77, 0xa4, 0x02, - 0x0a, 0xb2, 0xc9, 0x33, 0x90, 0x22, 0x13, 0x88, 0xfb, 0x65, 0x64, 0x74, - 0x4a, 0xbc, 0xf2, 0x58, 0x21, 0x12, 0x19, 0x84, 0x42, 0x64, 0x03, 0x02, - 0x44, 0x9e, 0x80, 0x00, 0x91, 0xa1, 0x50, 0x28, 0xc3, 0x4d, 0xe8, 0xe5, - 0x2b, 0x42, 0x99, 0xf2, 0xf0, 0xac, 0x9d, 0x64, 0x4e, 0x90, 0x1d, 0x46, - 0x1e, 0x6e, 0x04, 0x29, 0xca, 0x95, 0xee, 0x1e, 0x92, 0x75, 0x6e, 0xda, - 0x39, 0x7e, 0xe6, 0x57, 0x53, 0x19, 0x3a, 0x6a, 0x79, 0xb3, 0x24, 0x3c, - 0x38, 0x48, 0xfe, 0xea, 0x90, 0xd3, 0x60, 0x30, 0x18, 0xfc, 0x04, 0xdf, - 0xa5, 0xcd, 0x8b, 0x50, 0x18, 0xe8, 0x95, 0xc7, 0x03, 0xce, 0xd3, 0xc3, - 0x19, 0x86, 0x3a, 0xbc, 0xb6, 0x90, 0x02, 0x14, 0x59, 0xe4, 0x0a, 0x50, - 0x64, 0xe2, 0x25, 0x2a, 0x48, 0xca, 0xe0, 0x9f, 0xb8, 0xd4, 0xb5, 0x44, - 0x22, 0xcd, 0x82, 0x50, 0x16, 0x42, 0xe4, 0x42, 0x08, 0x21, 0x84, 0xc8, - 0x20, 0x14, 0xca, 0x70, 0x77, 0xeb, 0xe7, 0xe7, 0x79, 0x22, 0x93, 0x21, - 0xcd, 0xea, 0xc7, 0x0f, 0x65, 0x1a, 0x1a, 0x19, 0x47, 0x72, 0x72, 0x86, - 0x53, 0xab, 0x23, 0x9f, 0xb1, 0x41, 0xb5, 0xba, 0x91, 0x7a, 0x94, 0x37, - 0x56, 0xf6, 0x3b, 0x7d, 0x79, 0x41, 0x03, 0x75, 0xb5, 0xa2, 0x2b, 0x83, - 0xaa, 0x83, 0xe4, 0x90, 0x53, 0x08, 0x21, 0x84, 0xe8, 0x5a, 0xcb, 0x43, - 0xce, 0xa3, 0xc6, 0x4b, 0x5c, 0xf7, 0xb5, 0x96, 0x9b, 0xcd, 0x34, 0xa4, - 0xfe, 0x55, 0x47, 0x1d, 0xd4, 0xb3, 0xc8, 0xd5, 0x41, 0x5d, 0x1a, 0xb6, - 0x34, 0x2f, 0xee, 0x48, 0x3d, 0xa3, 0xec, 0x0a, 0xf5, 0xb3, 0xcb, 0xbf, - 0xe9, 0x0c, 0x65, 0x27, 0xd4, 0x95, 0x85, 0x10, 0xb9, 0x10, 0x42, 0x08, - 0x21, 0xb2, 0x13, 0xea, 0x2d, 0xed, 0x0f, 0xf7, 0xfd, 0x7d, 0x92, 0xec, - 0x0a, 0x75, 0x65, 0x4a, 0x8b, 0x71, 0xc9, 0x97, 0x1e, 0x9c, 0x4a, 0x11, - 0x56, 0x49, 0x86, 0x64, 0xe4, 0x8c, 0x30, 0xb7, 0x1f, 0x17, 0xff, 0x7f, - 0xbb, 0xd7, 0x84, 0x13, 0x92, 0x75, 0x7a, 0x94, 0xb2, 0x21, 0xe9, 0x8f, - 0x2f, 0xef, 0xd5, 0x83, 0xd2, 0x50, 0x06, 0x39, 0x48, 0x72, 0xc8, 0x29, - 0x84, 0x10, 0x42, 0xf4, 0xf0, 0x62, 0x3c, 0x0c, 0x17, 0x79, 0xd1, 0xc1, - 0x53, 0xa7, 0x07, 0xa5, 0xe1, 0x74, 0xa4, 0x8e, 0xd3, 0xd0, 0xa3, 0x53, - 0xbe, 0xa6, 0x81, 0x5a, 0x16, 0xb9, 0x1a, 0xa8, 0x5d, 0xbf, 0xf4, 0x24, - 0x35, 0xa4, 0x46, 0x52, 0x36, 0x42, 0x4d, 0x28, 0x74, 0xe0, 0xe1, 0xfb, - 0x27, 0x71, 0xa4, 0x50, 0x16, 0x42, 0xe4, 0x42, 0x08, 0x21, 0x84, 0xc8, - 0xc6, 0xbe, 0x3b, 0x5a, 0x7d, 0xd7, 0xc9, 0x9d, 0xfd, 0x13, 0x19, 0x0a, - 0x85, 0x48, 0xbd, 0x45, 0xc9, 0x3c, 0xed, 0x89, 0x59, 0x0a, 0xf9, 0x4f, - 0xae, 0x56, 0xe2, 0xdd, 0x5c, 0xa3, 0x92, 0x22, 0xac, 0x14, 0x33, 0x52, - 0x0f, 0x2f, 0x86, 0x1c, 0xa4, 0xef, 0x5e, 0x79, 0x7f, 0xd9, 0xbd, 0x5f, - 0xfb, 0x7c, 0xfe, 0x4f, 0xc3, 0x8b, 0x31, 0x86, 0x4a, 0x63, 0x0c, 0x95, - 0xc6, 0x18, 0x2a, 0x8d, 0x31, 0x54, 0x1a, 0x63, 0xa8, 0x34, 0xc6, 0x50, - 0x69, 0x8c, 0xa1, 0xd2, 0x18, 0x43, 0x43, 0x63, 0xff, 0xe2, 0x44, 0xbc, - 0xed, 0xe9, 0x78, 0xc0, 0xcf, 0x85, 0x16, 0x0e, 0xea, 0x41, 0x69, 0xd8, - 0x4c, 0x07, 0x35, 0x47, 0x42, 0xff, 0xf6, 0xc8, 0x4f, 0x1d, 0x0e, 0x5e, - 0xa4, 0x68, 0x48, 0x16, 0x48, 0x18, 0x06, 0x86, 0x81, 0x61, 0x60, 0x18, - 0x18, 0x06, 0x86, 0x51, 0x4e, 0x70, 0xf2, 0xfc, 0x71, 0xe1, 0x90, 0x0c, - 0xc9, 0x33, 0x4a, 0x57, 0xc8, 0x15, 0x06, 0x12, 0x89, 0xf3, 0xef, 0xcf, - 0x79, 0xe3, 0x4b, 0x59, 0xb8, 0xa6, 0x92, 0xbb, 0xe4, 0x2e, 0xb9, 0x4b, - 0xee, 0x92, 0xbb, 0xe4, 0x2e, 0xf9, 0xa3, 0x6f, 0xb6, 0xdc, 0x4d, 0xf7, - 0xb9, 0xae, 0x9b, 0x30, 0x90, 0x48, 0xa4, 0x29, 0xe4, 0xca, 0xf4, 0x16, - 0xa5, 0x87, 0x41, 0xfa, 0xd6, 0x1e, 0xf9, 0xfe, 0xd6, 0x8a, 0xb5, 0x86, - 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0x93, 0x5a, 0xb9, - 0x8b, 0xef, 0x89, 0x7d, 0xe6, 0xe8, 0x61, 0x18, 0x52, 0x33, 0x9a, 0x64, - 0x8d, 0x1e, 0x8b, 0xf2, 0x31, 0x06, 0xa5, 0x31, 0x86, 0x4a, 0x63, 0x0c, - 0xbd, 0x51, 0xd9, 0xef, 0xaa, 0xbd, 0x21, 0x5b, 0xbf, 0xd0, 0xf8, 0x77, - 0xa8, 0x34, 0xc6, 0x50, 0x69, 0x8c, 0xa1, 0xd2, 0x18, 0x43, 0xa5, 0x31, - 0x86, 0x4a, 0xe3, 0xe3, 0xd0, 0xdd, 0xf4, 0x85, 0x2f, 0xfe, 0x5d, 0x55, - 0x1a, 0xc3, 0x55, 0xaa, 0x03, 0x4a, 0x3e, 0x5c, 0x25, 0x77, 0x56, 0x47, - 0x0b, 0x8c, 0xe2, 0x48, 0x66, 0x48, 0x66, 0x48, 0x66, 0xf1, 0xe0, 0xc7, - 0x5f, 0x13, 0x90, 0x19, 0x92, 0x19, 0x92, 0x19, 0x92, 0x19, 0x92, 0x2d, - 0x77, 0x6e, 0xdf, 0xb9, 0x3a, 0x77, 0x62, 0x18, 0x18, 0x06, 0x86, 0x81, - 0x61, 0xe0, 0x48, 0x4a, 0xf3, 0xc0, 0xe6, 0x70, 0xc9, 0x5d, 0x72, 0x97, - 0x7c, 0xe7, 0x68, 0xa7, 0xb8, 0xf6, 0x97, 0xcf, 0x7e, 0xdc, 0x37, 0x57, - 0x8d, 0x3d, 0x9f, 0xc0, 0xa5, 0xfc, 0x77, 0xd7, 0xbd, 0xfc, 0xde, 0x75, - 0x24, 0x3f, 0x88, 0x5b, 0x5c, 0xf9, 0x87, 0xc7, 0x5e, 0x67, 0x77, 0x7b, - 0x15, 0x62, 0x16, 0x77, 0x70, 0x07, 0x77, 0x70, 0x07, 0x19, 0x52, 0x1b, - 0xb5, 0x35, 0xa7, 0x35, 0xa9, 0x35, 0xa9, 0x35, 0xa9, 0x35, 0x5d, 0xf1, - 0xc3, 0xcf, 0xfa, 0xd1, 0x7b, 0x39, 0xdd, 0xe1, 0x9e, 0x9a, 0xf7, 0xe6, - 0x34, 0xfd, 0xbd, 0xc6, 0xf7, 0xf9, 0x81, 0x1f, 0xfc, 0xf6, 0xa0, 0x54, - 0x6b, 0x52, 0x6b, 0x52, 0x6b, 0x52, 0x6b, 0x52, 0x6b, 0x52, 0x43, 0x06, - 0x2d, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, - 0xc2, 0x90, 0xb0, 0x24, 0x0c, 0x09, 0x4b, 0xc2, 0x90, 0xb0, 0x24, 0x0c, - 0x09, 0x4b, 0xc2, 0x90, 0x48, 0x24, 0x12, 0x89, 0x44, 0x22, 0x91, 0x48, - 0x24, 0x12, 0x89, 0x44, 0x22, 0x21 + 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0xe6, 0x0e, 0x00, 0x00, 0x04, 0x0a, + 0x00, 0x00, 0x47, 0x63, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x20, 0x00, 0x20, 0x00, 0xea, 0x18, 0x00, 0x00, 0xaf, 0x05, 0x00, + 0x00, 0x4c, 0xf0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x40, 0x00, + 0x10, 0x00, 0x10, 0x00, 0x99, 0x1e, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0xd0, 0x9e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x3c, 0x20, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xbc, + 0xfc, 0x00, 0x00, 0x00, 0x04, 0x00, 0x10, 0x00, 0x10, 0x00, 0x04, 0x00, + 0x04, 0x00, 0xb8, 0x20, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xbe, 0x4b, + 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, + 0x00, 0xd9, 0x20, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x04, 0xf6, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, + 0xe2, 0x20, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x29, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0xe5, + 0x20, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xbd, 0xa9, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xe8, 0x20, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfc, 0xab, 0x20, 0x40, 0x04, 0x00, + 0x42, 0x10, 0x04, 0x60, 0xe0, 0x0f, 0x2d, 0xc9, 0x4a, 0xd1, 0x13, 0x30, + 0x43, 0x06, 0x02, 0x3c, 0xa0, 0x00, 0x87, 0x60, 0x18, 0x9a, 0x97, 0xf4, + 0xc3, 0x38, 0x36, 0xbb, 0x51, 0x95, 0xe6, 0x81, 0x00, 0x0f, 0x20, 0x48, + 0x61, 0x10, 0x06, 0x6e, 0x22, 0x45, 0x60, 0xd0, 0x3b, 0x5a, 0x79, 0x03, + 0x09, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00, 0x40, 0x08, 0x14, 0x1e, 0xec, + 0x87, 0x4b, 0x4d, 0x51, 0xc0, 0x60, 0x99, 0x42, 0xd4, 0x84, 0x63, 0x88, + 0x0e, 0x8d, 0x48, 0x59, 0xf7, 0x5c, 0xfa, 0x9c, 0x33, 0x38, 0x3a, 0x1f, + 0xd5, 0x2d, 0x85, 0x1e, 0x44, 0x54, 0x40, 0xa4, 0xc6, 0x0a, 0x88, 0xff, + 0x66, 0xcd, 0x97, 0xf1, 0x7c, 0xa3, 0xf3, 0x9c, 0xa4, 0x56, 0xcb, 0x53, + 0xd0, 0x31, 0x64, 0x65, 0x4c, 0xc8, 0xea, 0x3e, 0x50, 0x3c, 0xce, 0xe9, + 0x5a, 0xed, 0xd4, 0x06, 0xec, 0x15, 0x3d, 0xc3, 0xaf, 0xd6, 0x69, 0x6b, + 0x36, 0x72, 0x2e, 0x51, 0x8b, 0xba, 0x94, 0x33, 0xfa, 0x59, 0x4d, 0xa9, + 0xf1, 0xf4, 0x9b, 0xbe, 0x9d, 0xd1, 0x87, 0xb9, 0xcd, 0x79, 0xdc, 0x97, + 0x52, 0xf2, 0x18, 0xec, 0xe3, 0x4f, 0xae, 0xbb, 0x7d, 0x4a, 0x49, 0x11, + 0xc1, 0x7d, 0x73, 0x02, 0xff, 0xcf, 0x9b, 0x5a, 0xb5, 0x32, 0xa0, 0x92, + 0x54, 0x17, 0xa1, 0x91, 0xd1, 0x0f, 0x6c, 0x22, 0xfd, 0x3c, 0xda, 0x34, + 0xc6, 0xf1, 0x61, 0x59, 0xfe, 0x9d, 0x6a, 0x17, 0x53, 0x30, 0xeb, 0x97, + 0xa2, 0x9d, 0x8e, 0xf4, 0x35, 0xff, 0xa0, 0x21, 0x30, 0xc4, 0x04, 0x40, + 0x8c, 0x98, 0xe4, 0x23, 0xee, 0x46, 0x01, 0x22, 0x65, 0x37, 0xe4, 0xf8, + 0x2b, 0xe7, 0xa7, 0xe5, 0xbc, 0x11, 0x03, 0xe2, 0x45, 0xd8, 0x90, 0xcf, + 0x03, 0xbf, 0x33, 0x70, 0xe0, 0xfa, 0xc8, 0x80, 0xf1, 0x3c, 0x2e, 0x84, + 0xf6, 0xa5, 0x03, 0xe0, 0x98, 0xc7, 0xc3, 0x1f, 0x87, 0xc9, 0xe6, 0xaa, + 0xba, 0x31, 0xc6, 0x80, 0x31, 0xa6, 0x5e, 0xcb, 0x00, 0x02, 0xca, 0xb5, + 0xb5, 0xae, 0x2b, 0xd6, 0x9f, 0x59, 0x7d, 0x61, 0x86, 0xea, 0x79, 0xc3, + 0xfc, 0x84, 0x36, 0x44, 0xdc, 0x45, 0xac, 0xe9, 0x49, 0x8e, 0x8c, 0xc8, + 0xd5, 0x13, 0x98, 0x6c, 0xff, 0xf9, 0xbe, 0xef, 0xe4, 0x92, 0x76, 0x8e, + 0xa3, 0xb6, 0xde, 0x33, 0x96, 0x49, 0x95, 0xa0, 0x67, 0xdb, 0xb6, 0x99, + 0x59, 0x6a, 0xad, 0x7c, 0x3e, 0x1f, 0xd9, 0xce, 0x7d, 0xd4, 0x5b, 0xf7, + 0x3c, 0x5a, 0xa6, 0x1f, 0x63, 0xac, 0xb5, 0xc6, 0x14, 0xe9, 0xf6, 0x97, + 0x93, 0x52, 0xea, 0xb2, 0x2c, 0x23, 0xb9, 0x52, 0x4a, 0xbc, 0xf7, 0xf4, + 0xde, 0x97, 0x73, 0x76, 0xce, 0x39, 0xd3, 0x34, 0x89, 0x99, 0xef, 0xba, + 0x2e, 0x9c, 0x73, 0x39, 0x8e, 0x63, 0xaa, 0xba, 0x7d, 0xdf, 0xbd, 0xef, + 0xfb, 0x44, 0xa4, 0xeb, 0xba, 0xee, 0xb3, 0x16, 0x5e, 0x15, 0x84, 0x10, + 0x50, 0x8d, 0x66, 0x0e, 0x8b, 0x31, 0xc8, 0x39, 0x93, 0xdb, 0xa3, 0x29, + 0xfa, 0x00, 0xf0, 0x8c, 0xc5, 0xc5, 0xb6, 0xcc, 0x2c, 0x66, 0xb6, 0x31, + 0xc6, 0xd7, 0x5c, 0x7f, 0x76, 0xf3, 0x8c, 0x13, 0x5f, 0xcb, 0x21, 0xf8, + 0x23, 0xa2, 0x08, 0xc9, 0x54, 0x49, 0x61, 0x18, 0xe2, 0x9e, 0x34, 0x98, + 0xcd, 0x6e, 0x45, 0xf4, 0x7f, 0x80, 0xac, 0xb2, 0x49, 0x12, 0xa3, 0x81, + 0xd7, 0xde, 0xc4, 0xdf, 0x37, 0xe0, 0x3c, 0xfc, 0xe4, 0x5f, 0x3c, 0x45, + 0x44, 0x5e, 0xf6, 0xec, 0x72, 0xde, 0x70, 0x16, 0x96, 0x7d, 0x1c, 0xfb, + 0xe1, 0x6f, 0xb4, 0x66, 0x8a, 0x7f, 0x2a, 0xcd, 0x13, 0x70, 0x72, 0x22, + 0x10, 0xe3, 0x09, 0xd8, 0x44, 0x06, 0x82, 0xec, 0xee, 0x10, 0xf4, 0x10, + 0x00, 0x21, 0x05, 0x44, 0x60, 0x1c, 0x56, 0xae, 0x56, 0x90, 0x86, 0xa1, + 0x5d, 0xf2, 0x8d, 0xa4, 0x00, 0x90, 0x54, 0x63, 0x58, 0x07, 0x31, 0xbd, + 0xdd, 0x48, 0x00, 0x03, 0x49, 0xe7, 0x70, 0x90, 0x52, 0x52, 0xf9, 0x1e, + 0xa4, 0x24, 0xa0, 0x49, 0x86, 0xc0, 0x08, 0x04, 0x20, 0x04, 0x12, 0x44, + 0x8f, 0xa5, 0x6d, 0x75, 0xbc, 0xda, 0xf3, 0x01, 0xb4, 0x92, 0x5d, 0x5d, + 0x3a, 0x49, 0x3d, 0x4f, 0xcc, 0xb3, 0xe4, 0x3c, 0xd6, 0x43, 0x40, 0xe4, + 0xee, 0xd4, 0x94, 0xd7, 0x70, 0x7e, 0x73, 0x69, 0x8d, 0xf9, 0xc3, 0x4e, + 0x09, 0x04, 0xf0, 0x02, 0x1c, 0xe1, 0xf2, 0xaa, 0x4a, 0x83, 0xe7, 0x65, + 0x81, 0x40, 0x52, 0xaa, 0x50, 0x6b, 0x77, 0xaf, 0xeb, 0xfa, 0xde, 0x30, + 0x0c, 0x16, 0x41, 0xef, 0xf7, 0x86, 0xd8, 0xaf, 0x11, 0xf1, 0x36, 0xd5, + 0xd3, 0x11, 0x12, 0xdf, 0x2c, 0x56, 0x65, 0xf4, 0x8d, 0x1f, 0xd6, 0xdd, + 0x71, 0x3b, 0xad, 0xb7, 0x0c, 0xcf, 0x41, 0xd3, 0x34, 0xe5, 0x38, 0x2d, + 0xed, 0x88, 0x2c, 0x6f, 0x50, 0x5a, 0x36, 0x30, 0x79, 0xfb, 0x24, 0xbf, + 0xd7, 0xa2, 0xac, 0x29, 0xea, 0x1f, 0xff, 0x06, 0x47, 0xdf, 0xb6, 0x6e, + 0x55, 0xa5, 0xce, 0xa1, 0x98, 0x0a, 0x8a, 0xcc, 0x46, 0xaa, 0x49, 0x90, + 0x0a, 0x0a, 0x02, 0xbe, 0x9c, 0x05, 0xe0, 0xf4, 0x89, 0xcb, 0x9a, 0x6e, + 0x3c, 0xa4, 0xf9, 0xd5, 0x29, 0xbe, 0xe2, 0x7c, 0x98, 0xb4, 0x72, 0x8f, + 0xd6, 0x52, 0x2b, 0xcf, 0xaf, 0x4f, 0x8b, 0x0a, 0xe4, 0x1c, 0x98, 0x91, + 0x88, 0x48, 0xa1, 0x4a, 0xad, 0x07, 0x40, 0x79, 0x60, 0xc1, 0xdc, 0xfc, + 0x22, 0x47, 0x4e, 0xdf, 0x28, 0x4d, 0x73, 0xfa, 0x7d, 0x29, 0xff, 0xbe, + 0x4f, 0xef, 0xfc, 0xaf, 0xb6, 0xfd, 0x79, 0xb2, 0x02, 0x22, 0x02, 0x04, + 0x6f, 0x34, 0x04, 0x20, 0x28, 0x00, 0x7f, 0xe4, 0xe7, 0x2d, 0xf4, 0xb2, + 0x70, 0x02, 0x29, 0x93, 0x89, 0x45, 0x19, 0x8d, 0x4c, 0x36, 0xb9, 0x81, + 0x2b, 0xbc, 0x57, 0x46, 0x07, 0x70, 0x1c, 0x72, 0x07, 0x83, 0xe1, 0x91, + 0xb2, 0x5b, 0x94, 0x92, 0x27, 0x1f, 0x98, 0xbc, 0xb1, 0x2d, 0x05, 0x00, + 0x00, 0xc0, 0x7f, 0x45, 0x97, 0xd7, 0x2e, 0x35, 0x47, 0x07, 0x11, 0x27, + 0x1f, 0x27, 0x45, 0x22, 0xe2, 0x54, 0xa9, 0xd4, 0x3c, 0xcd, 0x56, 0x5c, + 0x4a, 0x5d, 0x1c, 0x24, 0xc6, 0x65, 0xe3, 0xb2, 0x0f, 0x87, 0xea, 0x7b, + 0xd1, 0xbd, 0x2d, 0xd6, 0xab, 0x8f, 0x3f, 0x80, 0xe3, 0x4a, 0xc4, 0x28, + 0x49, 0xa7, 0x91, 0xf5, 0x6d, 0x12, 0x8e, 0xc3, 0xcd, 0xcd, 0xf6, 0x0f, + 0x0c, 0x88, 0x88, 0x0f, 0x0f, 0xaa, 0xaa, 0x0f, 0x0f, 0x6a, 0xaa, 0x0f, + 0x0f, 0x69, 0xaa, 0x0f, 0x0f, 0xfb, 0x2a, 0x0b, 0x03, 0xff, 0x78, 0x0b, + 0x01, 0xf9, 0xfa, 0x0a, 0x09, 0xfa, 0xfa, 0x0a, 0x09, 0xea, 0xbf, 0x2e, + 0x00, 0x80, 0x40, 0xed, 0xff, 0x15, 0x00, 0xe0, 0xeb, 0x15, 0x14, 0xea, + 0xed, 0x15, 0x14, 0xec, 0xf5, 0x15, 0x14, 0x6c, 0x75, 0x55, 0x35, 0x75, + 0x75, 0x75, 0x75, 0xb5, 0xff, 0x5f, 0x5d, 0x5d, 0xfd, 0x57, 0x55, 0x55, + 0x45, 0x7c, 0x8e, 0x98, 0xfc, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, + 0xab, 0xa9, 0xab, 0xab, 0x37, 0xdc, 0xfb, 0x9b, 0x96, 0x52, 0x06, 0x00, + 0x27, 0x1d, 0xbe, 0x74, 0x7c, 0xdd, 0xb8, 0xd8, 0xd1, 0x73, 0x58, 0xab, + 0x52, 0xfa, 0x08, 0xff, 0xaa, 0x2e, 0xa4, 0xaa, 0xaa, 0xae, 0xa6, 0xac, + 0xab, 0xaa, 0xaa, 0x0e, 0x1f, 0x44, 0xaa, 0xaa, 0xaa, 0x3f, 0x87, 0xaa, + 0xaa, 0xea, 0x3f, 0x62, 0x47, 0x5d, 0x5d, 0xfd, 0x5f, 0x55, 0x55, 0x95, + 0x7f, 0x75, 0x75, 0xf5, 0x5f, 0x20, 0x68, 0xd9, 0x38, 0x58, 0x37, 0x01, + 0x82, 0x83, 0xbe, 0xc4, 0x0d, 0x7e, 0x7e, 0xd6, 0xfe, 0xfe, 0xfe, 0xd6, + 0xfe, 0xf6, 0xf6, 0xf6, 0xfe, 0xfe, 0xd6, 0xfe, 0xfe, 0x7e, 0x56, 0x7e, + 0x7e, 0xd2, 0xdf, 0xde, 0x4f, 0xf5, 0xfe, 0xfe, 0x5f, 0xf5, 0xfe, 0xfe, + 0x5f, 0x29, 0x71, 0x49, 0x55, 0xb5, 0xbb, 0x5b, 0x55, 0x15, 0x1e, 0x3e, + 0x55, 0x15, 0x1e, 0x3e, 0x4d, 0x15, 0x1e, 0xbe, 0x03, 0x07, 0x07, 0x07, + 0x07, 0x06, 0x06, 0x26, 0x3f, 0x78, 0x05, 0x0c, 0x1c, 0x2c, 0x0c, 0x0c, + 0x0c, 0xac, 0x0e, 0x0d, 0x0c, 0xac, 0x0e, 0x0c, 0x08, 0xa8, 0x5e, 0x3c, + 0xeb, 0x40, 0x02, 0x00, 0xa8, 0x1e, 0xf4, 0x00, 0x00, 0x80, 0x7c, 0x01, + 0x00, 0x80, 0xfe, 0x0f, 0x5e, 0x07, 0x00, 0x00, 0xfc, 0x07, 0x04, 0x04, + 0xf8, 0x07, 0x04, 0x04, 0x58, 0x9d, 0x07, 0x5b, 0x00, 0x00, 0x00, 0xc5, + 0x08, 0x7f, 0x00, 0x00, 0x80, 0xa0, 0x01, 0x00, 0x00, 0xa1, 0x2f, 0x9e, + 0x08, 0xcc, 0x2a, 0x45, 0xb1, 0x49, 0xd3, 0xa0, 0xd7, 0xf1, 0x49, 0x55, + 0x4d, 0x55, 0xbd, 0xa3, 0x73, 0xd0, 0x5a, 0x43, 0x43, 0x43, 0x5b, 0x43, + 0x43, 0x5b, 0xbd, 0xaf, 0x93, 0xf5, 0xf5, 0xf5, 0x75, 0xc4, 0x95, 0x19, + 0x75, 0x75, 0xf5, 0x80, 0xf4, 0xe0, 0x29, 0xe2, 0xf7, 0xef, 0xd3, 0xe6, + 0x63, 0x04, 0xd2, 0x02, 0x89, 0x1f, 0x1e, 0x54, 0x55, 0x1f, 0x1e, 0x54, + 0xd5, 0x1e, 0x1e, 0x54, 0xd3, 0x1e, 0x1e, 0xf4, 0xf5, 0x13, 0x14, 0xf4, + 0xf5, 0x59, 0x82, 0x82, 0x7e, 0x7e, 0xc0, 0x02, 0xde, 0xff, 0xc0, 0x82, + 0xca, 0xbe, 0x80, 0x80, 0xc0, 0xbe, 0x80, 0x80, 0xc0, 0xbf, 0x80, 0x80, + 0xd0, 0xbf, 0xc1, 0x80, 0xc0, 0x7f, 0xf1, 0x2d, 0x3a, 0x30, 0x30, 0xf4, + 0x3f, 0x30, 0x30, 0xb4, 0x36, 0x30, 0x30, 0xb0, 0x3a, 0x20, 0x20, 0xb0, + 0x5a, 0x3c, 0x27, 0x20, 0x60, 0xa5, 0x2a, 0x20, 0x20, 0xb9, 0x2b, 0x22, + 0x26, 0xb9, 0x9e, 0x89, 0x89, 0x49, 0xae, 0xaf, 0x0a, 0x48, 0xae, 0xad, + 0x0a, 0x08, 0x0c, 0xac, 0x0e, 0x0c, 0x0c, 0xac, 0x0d, 0x0d, 0x0c, 0xfc, + 0x0f, 0x0d, 0x0c, 0x14, 0xdf, 0xfe, 0x17, 0x18, 0x30, 0x28, 0xfe, 0x05, + 0x04, 0x04, 0xf6, 0x05, 0x04, 0x04, 0xfe, 0x85, 0x04, 0x04, 0xfe, 0x81, + 0x00, 0x00, 0x0e, 0x5e, 0xfe, 0x03, 0x00, 0x04, 0x48, 0x34, 0x7c, 0x81, + 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x10, 0xb0, 0x1a, 0x10, 0x10, 0xa0, 0x1b, + 0x14, 0x10, 0xa0, 0x19, 0x04, 0x04, 0xa4, 0x0e, 0x04, 0x04, 0xa4, 0x0e, + 0x0c, 0x0c, 0xac, 0x0e, 0x0c, 0x0c, 0xad, 0x0e, 0x08, 0x08, 0xcc, 0x8b, + 0x17, 0x76, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x81, + 0x21, 0xff, 0x01, 0x81, 0x00, 0xfe, 0x01, 0x80, 0x80, 0xfe, 0x01, 0x80, + 0xc0, 0x8b, 0x1b, 0xf8, 0x87, 0x06, 0x06, 0xfe, 0x07, 0x06, 0x0e, 0xfe, + 0x0f, 0x06, 0x06, 0xfe, 0xaf, 0x06, 0x06, 0x7e, 0xaf, 0x06, 0x04, 0x6e, + 0x3f, 0x06, 0x06, 0x26, 0xdf, 0x06, 0x06, 0x26, 0x07, 0x06, 0x06, 0x56, + 0x24, 0xea, 0x00, 0x40, 0xc0, 0x70, 0x40, 0xc0, 0xd0, 0x70, 0x40, 0x80, + 0x90, 0x60, 0x60, 0x90, 0x80, 0x40, 0x70, 0xd0, 0xc0, 0x40, 0x70, 0xc0, + 0x40, 0x00, 0xd0, 0x80, 0x00, 0x00, 0x1c, 0xe1, 0x37, 0x30, 0x00, 0x10, + 0x10, 0x10, 0x10, 0x90, 0x10, 0x10, 0x10, 0x90, 0x3a, 0x00, 0x00, 0xb4, + 0x1b, 0x00, 0x00, 0xc0, 0x1b, 0x00, 0x40, 0x80, 0x0b, 0xdd, 0x0f, 0x01, + 0x00, 0x10, 0x30, 0x80, 0xf0, 0x17, 0x00, 0xc2, 0x1e, 0xdd, 0x70, 0x20, + 0x00, 0x00, 0x00, 0x61, 0xfb, 0x60, 0x2d, 0x07, 0x10, 0x18, 0x50, 0x00, + 0x08, 0x18, 0x50, 0x08, 0x08, 0x08, 0x58, 0x3d, 0x18, 0x06, 0x07, 0x05, + 0x04, 0x40, 0x03, 0x01, 0x00, 0x1c, 0xa4, 0x57, 0x02, 0x02, 0x02, 0xda, + 0xd4, 0xc0, 0xc4, 0xc0, 0xd0, 0xc0, 0xc0, 0xc0, 0xc1, 0x8b, 0x81, 0x81, + 0x81, 0x83, 0x00, 0x81, 0x81, 0x03, 0x00, 0x81, 0x83, 0x06, 0x00, 0x80, + 0x83, 0x16, 0x00, 0x80, 0xd7, 0x57, 0x00, 0x00, 0xbc, 0xfe, 0x03, 0x00, + 0xe8, 0xfe, 0x03, 0x00, 0x01, 0xfe, 0x43, 0x02, 0x03, 0xfe, 0x03, 0x02, + 0x02, 0xfe, 0x03, 0x02, 0x06, 0xbe, 0x03, 0x03, 0x56, 0xbf, 0x03, 0x03, + 0x57, 0xff, 0xab, 0xc0, 0xc0, 0xd0, 0xff, 0xc5, 0xf5, 0x60, 0x60, 0xe0, + 0x7f, 0x60, 0xe0, 0xe0, 0x7f, 0x60, 0x60, 0xe0, 0x6d, 0x60, 0x50, 0xa4, + 0x6d, 0x70, 0x70, 0xe8, 0x7f, 0x70, 0x70, 0xf0, 0x7f, 0x02, 0x0e, 0x04, + 0xf0, 0x0f, 0x09, 0x00, 0xf0, 0x0f, 0x08, 0x08, 0x58, 0x7d, 0xf0, 0xb9, + 0x1a, 0x10, 0x10, 0x70, 0x1b, 0x18, 0x18, 0x78, 0x1b, 0x09, 0x14, 0xf8, + 0x1f, 0x1c, 0x1c, 0xbc, 0xf9, 0x87, 0x06, 0x07, 0xf7, 0x87, 0x02, 0x05, + 0x75, 0x83, 0x06, 0x00, 0x78, 0x03, 0x00, 0x00, 0x70, 0x09, 0x00, 0x00, + 0x08, 0xf8, 0x15, 0x50, 0x6b, 0x39, 0x00, 0x00, 0x40, 0xc3, 0x81, 0x00, + 0xc0, 0xc1, 0x80, 0x40, 0xc0, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xd0, 0xc0, 0xc0, 0xd0, 0xe0, 0xe0, 0xd0, 0xc0, 0xc0, 0xc0, 0xd0, 0xee, + 0xc1, 0xc0, 0xe0, 0xed, 0x07, 0x1b, 0x1c, 0x9e, 0xfc, 0x17, 0x1e, 0x16, + 0xfe, 0x1f, 0x4e, 0x66, 0xfe, 0x4f, 0x4c, 0x44, 0x74, 0x4f, 0x4f, 0x49, + 0x51, 0x4f, 0x4f, 0x49, 0x49, 0x57, 0x4f, 0x49, 0x49, 0x3f, 0x68, 0xce, + 0x26, 0xad, 0xef, 0x53, 0x40, 0xaa, 0xaa, 0x77, 0x60, 0xa0, 0xaf, 0x6f, + 0x60, 0xa0, 0xaf, 0xaf, 0x6c, 0xac, 0xaf, 0x6f, 0x6e, 0xa5, 0xa1, 0xd2, + 0x8b, 0x1f, 0x04, 0x2d, 0x7f, 0xbc, 0xbd, 0x7d, 0x78, 0x96, 0x04, 0x1e, + 0x2b, 0x95, 0x94, 0x2e, 0x0f, 0x94, 0x5b, 0x81, 0xb2, 0xd7, 0xb3, 0xeb, + 0xe8, 0x3a, 0xbd, 0xb8, 0xb8, 0xb8, 0xd8, 0x38, 0xfb, 0x7d, 0xfe, 0xea, + 0xea, 0xea, 0x5f, 0x5a, 0x55, 0x55, 0xfd, 0x6f, 0x9c, 0xe9, 0x29, 0xa6, + 0xac, 0x22, 0xec, 0x34, 0x45, 0x22, 0x6f, 0xd5, 0x87, 0x91, 0x41, 0x6a, + 0x45, 0x45, 0x25, 0x68, 0x45, 0x45, 0x65, 0x75, 0x45, 0x45, 0x45, 0x15, + 0x12, 0x19, 0x6c, 0x0a, 0x52, 0x51, 0x59, 0x09, 0x56, 0x55, 0x55, 0xc9, + 0xe1, 0xaa, 0xaa, 0xaa, 0x94, 0xf7, 0x08, 0xff, 0x01, 0x8e, 0xa5, 0x74, + 0x11, 0x76, 0x53, 0xde, 0x75, 0xac, 0x96, 0x1b, 0xe7, 0xfe, 0xab, 0xaa, + 0xac, 0xfe, 0xa7, 0xae, 0xac, 0x56, 0xaf, 0xae, 0xae, 0x0e, 0x12, 0xf5, + 0xe2, 0xea, 0xea, 0xe2, 0x87, 0x33, 0x95, 0x95, 0x95, 0xeb, 0x65, 0x65, + 0x65, 0xe5, 0xc1, 0x52, 0x65, 0x45, 0x45, 0x65, 0x48, 0x3b, 0xa4, 0x29, + 0x58, 0x51, 0x51, 0xe9, 0x18, 0xd3, 0xad, 0x6c, 0x1d, 0xdd, 0x8d, 0x62, + 0xc7, 0xc7, 0x8e, 0x36, 0xce, 0x87, 0xaa, 0x2a, 0x66, 0xe6, 0xf4, 0xcd, + 0xf4, 0x34, 0x16, 0xd8, 0x3f, 0x90, 0x15, 0xb8, 0xa9, 0xf0, 0xf0, 0xa0, + 0x20, 0x30, 0x57, 0x3c, 0xaf, 0x6a, 0x25, 0x20, 0xb0, 0x7a, 0x21, 0x2a, + 0x40, 0x57, 0x2f, 0x4e, 0x07, 0xf6, 0x2f, 0x04, 0x06, 0xfe, 0x0f, 0x0e, + 0x0e, 0xde, 0x0d, 0x0e, 0x0e, 0x3c, 0x43, 0x01, 0x03, 0x06, 0x12, 0x80, + 0x83, 0x0e, 0x5a, 0x80, 0x83, 0x5e, 0x48, 0x08, 0x38, 0xd0, 0x40, 0x2b, + 0x70, 0xd0, 0x41, 0x1f, 0x74, 0xd0, 0x02, 0x07, 0x7c, 0xd0, 0x03, 0x3d, + 0x3c, 0x40, 0x41, 0x2d, 0x28, 0x40, 0x41, 0x09, 0x28, 0x60, 0xc0, 0x29, + 0x30, 0x60, 0xd0, 0x20, 0x81, 0x01, 0x03, 0x05, 0x83, 0x21, 0x41, 0x01, + 0x85, 0x21, 0xe1, 0x00, 0x0c, 0x25, 0x61, 0x00, 0x0c, 0x45, 0x61, 0x00, + 0x0e, 0x43, 0x41, 0x00, 0x0a, 0x4a, 0x61, 0x01, 0x1a, 0x8e, 0x43, 0x01, + 0xd0, 0x34, 0x0e, 0x02, 0xd1, 0x24, 0x0a, 0x02, 0x60, 0x24, 0x0c, 0x06, + 0xe0, 0xa0, 0x05, 0x05, 0xa0, 0x2c, 0x07, 0x01, 0x28, 0x0d, 0x07, 0x01, + 0x24, 0x0c, 0x06, 0x03, 0x34, 0x18, 0x0c, 0x0a, 0x14, 0x05, 0x83, 0x21, + 0x41, 0x21, 0x81, 0x01, 0xe3, 0x20, 0x81, 0x01, 0x25, 0x60, 0xa0, 0x01, + 0xc5, 0xec, 0x1a, 0x10, 0x34, 0x1c, 0x0a, 0x28, 0x3c, 0x3c, 0x28, 0x29, + 0x3d, 0x3d, 0xa9, 0x2b, 0x30, 0x33, 0x70, 0x65, 0x3f, 0xa6, 0xea, 0x6f, + 0xef, 0x3f, 0xe8, 0x56, 0xfd, 0xef, 0xef, 0x07, 0xfc, 0xef, 0xef, 0x03, + 0xfc, 0xff, 0xfe, 0x7a, 0x40, 0xff, 0xef, 0xef, 0x55, 0xff, 0xef, 0xef, + 0x54, 0xff, 0xfe, 0xfe, 0x01, 0xdb, 0x01, 0x75, 0x68, 0xfa, 0xee, 0xe3, + 0x70, 0xba, 0xae, 0x23, 0x40, 0xba, 0x8e, 0x81, 0x07, 0x88, 0xfe, 0x23, + 0x00, 0x00, 0xd2, 0x2d, 0x00, 0x20, 0xc0, 0x0d, 0xd2, 0x6f, 0x72, 0x63, + 0x3c, 0xeb, 0x8d, 0xc9, 0xdd, 0x8d, 0xaa, 0xe2, 0x99, 0x7f, 0xd8, 0xd8, + 0x38, 0x39, 0xd9, 0xd8, 0x78, 0x98, 0xd9, 0x78, 0xf8, 0x9f, 0xdc, 0x18, + 0xf8, 0x9f, 0x1e, 0x1a, 0xf8, 0xff, 0x1f, 0x18, 0xf8, 0xfd, 0x1d, 0x18, + 0xf8, 0xc7, 0xff, 0xc0, 0xd0, 0xf4, 0xff, 0xc0, 0xc6, 0xe4, 0xff, 0xc3, + 0xc6, 0xcc, 0xff, 0xc8, 0xcc, 0xc8, 0xff, 0xd0, 0xef, 0xc0, 0xfe, 0xfe, + 0x7f, 0xc0, 0xfe, 0xfe, 0x7f, 0xd5, 0xdf, 0xde, 0x5f, 0x45, 0xf2, 0xb7, + 0xf7, 0x57, 0xf2, 0xa7, 0xf7, 0xf7, 0xf7, 0xa7, 0xf3, 0xf3, 0x23, 0x51, + 0x3b, 0xf8, 0x26, 0x90, 0xfb, 0xfd, 0x55, 0xfd, 0xff, 0xf9, 0xd1, 0xf9, + 0x13, 0x7f, 0x7f, 0x7a, 0x7f, 0xb8, 0x1b, 0xd5, 0x09, 0x6b, 0x32, 0xdd, + 0xff, 0xd7, 0x2a, 0x05, 0x28, 0x08, 0x9b, 0x26, 0x42, 0xe8, 0xab, 0x3b, + 0x21, 0x20, 0x30, 0x28, 0x89, 0xc0, 0x02, 0x19, 0x28, 0x30, 0x50, 0xd4, + 0x21, 0x0f, 0x5a, 0x40, 0x00, 0x0e, 0x1a, 0x50, 0x60, 0x3d, 0xfb, 0x28, + 0x0d, 0x0c, 0x18, 0x24, 0xe9, 0x3e, 0x96, 0x98, 0xf0, 0xe0, 0x80, 0x80, + 0xa0, 0xe0, 0xa1, 0x04, 0x32, 0xe0, 0xa3, 0x26, 0x3a, 0xf0, 0xe3, 0x6e, + 0x7a, 0x68, 0xf2, 0xdf, 0x41, 0x07, 0xfd, 0xbf, 0x80, 0x07, 0xfd, 0xf5, + 0x05, 0x05, 0x35, 0xe0, 0xbf, 0xe3, 0x20, 0xe0, 0xee, 0xe3, 0x60, 0x80, + 0xb6, 0xe3, 0x00, 0x00, 0xb2, 0xf7, 0x00, 0xc0, 0x83, 0x74, 0x0b, 0x00, + 0x08, 0x70, 0x83, 0x04, 0x40, 0x81, 0x83, 0x06, 0xc2, 0x1d, 0x16, 0x3f, + 0x58, 0x95, 0x90, 0x92, 0x5a, 0x97, 0x14, 0x13, 0xd9, 0x97, 0x14, 0x13, + 0xc3, 0xbf, 0xf0, 0xb0, 0xf0, 0xff, 0xe4, 0xf0, 0xe0, 0xbf, 0xe0, 0xa1, + 0xe2, 0xbf, 0xa0, 0xdd, 0xc2, 0xaf, 0x81, 0x89, 0xc8, 0x7f, 0x80, 0x80, + 0xc1, 0x3f, 0x00, 0x00, 0xe5, 0x3f, 0x05, 0x05, 0xc5, 0xf8, 0x0f, 0x09, + 0x47, 0xf3, 0x0f, 0x06, 0x43, 0x02, 0x09, 0x06, 0x43, 0x03, 0x0c, 0x4a, + 0xc3, 0x01, 0x06, 0x4b, 0x8b, 0x01, 0x00, 0x48, 0xeb, 0x61, 0x16, 0x9a, + 0x4d, 0xec, 0x10, 0xb4, 0xbd, 0x28, 0x60, 0xa4, 0xbc, 0x6c, 0x28, 0xbe, + 0xbe, 0x28, 0x28, 0xbe, 0xbe, 0xb8, 0xb9, 0xbe, 0xbe, 0xbe, 0xf8, 0x39, + 0xb3, 0x82, 0x59, 0xce, 0x7e, 0x7d, 0x4d, 0xa3, 0xf0, 0x4b, 0x04, 0xa6, + 0x03, 0x66, 0xe0, 0xe1, 0xab, 0xaa, 0xe8, 0xe9, 0xab, 0x28, 0xfa, 0xfa, + 0xfa, 0x28, 0xfa, 0xfa, 0xfa, 0x58, 0x9c, 0xbe, 0xbe, 0x3e, 0x94, 0x83, + 0xe5, 0xaa, 0xaa, 0x2a, 0xc1, 0xca, 0x8a, 0x0a, 0xc1, 0xe2, 0xfb, 0x97, + 0x97, 0x97, 0x96, 0xe6, 0x97, 0x97, 0x97, 0xe6, 0x96, 0x96, 0x96, 0x50, + 0xa7, 0x34, 0x04, 0x54, 0xa7, 0x36, 0x06, 0x54, 0x27, 0x2c, 0x2c, 0x5c, + 0x17, 0x34, 0x2c, 0x54, 0x07, 0x54, 0x2c, 0x57, 0x0f, 0x54, 0x24, 0x55, + 0x37, 0x04, 0x54, 0x57, 0x34, 0x14, 0x5c, 0x6f, 0x0a, 0x0d, 0x05, 0xd7, + 0x2d, 0x2d, 0x2d, 0xd7, 0x7d, 0x7d, 0x7d, 0xd3, 0xfc, 0xfd, 0xff, 0x01, + 0xde, 0xdf, 0xff, 0x81, 0x0e, 0x06, 0x01, 0x0d, 0xfa, 0xfc, 0x7c, 0xfa, + 0x49, 0xe0, 0x3a, 0x3c, 0xbc, 0x6a, 0x2a, 0x3c, 0xbc, 0x6a, 0x1a, 0x34, + 0xde, 0xc2, 0x3f, 0x34, 0x5d, 0xc7, 0x3f, 0x14, 0x54, 0x77, 0xb7, 0xc0, + 0x23, 0xa5, 0x5c, 0x5d, 0xf1, 0xb7, 0xf7, 0x97, 0x18, 0xe1, 0x6f, 0x75, + 0xc4, 0xb7, 0xcd, 0x87, 0x87, 0xaa, 0xaa, 0xec, 0x23, 0x0f, 0x0f, 0xa5, + 0xa5, 0x10, 0x58, 0xa0, 0x09, 0x1f, 0x50, 0x40, 0x09, 0x1b, 0x48, 0x40, + 0x01, 0x33, 0x60, 0x20, 0x81, 0xa3, 0xa2, 0x22, 0x80, 0xa7, 0xa6, 0xa6, + 0xfe, 0xaf, 0xae, 0xae, 0x2e, 0x2f, 0xaf, 0xae, 0xae, 0x1e, 0xfe, 0xa9, + 0xa9, 0xa9, 0xff, 0xab, 0xb5, 0xb5, 0xff, 0xab, 0xd5, 0xb5, 0x25, 0xc6, + 0x1e, 0xdb, 0x14, 0x69, 0x69, 0x19, 0x14, 0x69, 0x69, 0x14, 0x56, 0x16, + 0x0a, 0xb5, 0x5c, 0x2a, 0xb3, 0x51, 0xb3, 0x31, 0x8a, 0x54, 0xb7, 0x8a, + 0xa1, 0x11, 0x68, 0x5a, 0xa7, 0x2b, 0x82, 0xe9, 0xd2, 0xa2, 0xd4, 0xba, + 0xb2, 0xaa, 0x6a, 0x98, 0x3a, 0x58, 0xec, 0x88, 0x12, 0xa6, 0xf6, 0x5a, + 0x70, 0x3f, 0xff, 0x32, 0x86, 0xd6, 0xd7, 0x83, 0x82, 0xf5, 0x89, 0xd1, + 0xc9, 0x0a, 0x05, 0x83, 0xd5, 0x0b, 0x53, 0x81, 0xd5, 0x81, 0xd3, 0x8b, + 0x55, 0x01, 0xd1, 0x8b, 0xd5, 0x01, 0x81, 0x8b, 0x7d, 0x1c, 0x1c, 0x1c, + 0xfc, 0x1f, 0x1c, 0x18, 0xbc, 0x0f, 0x1c, 0x7c, 0xdc, 0x05, 0x1c, 0x74, + 0xfc, 0x57, 0x54, 0x44, 0xfc, 0xd2, 0xc0, 0x41, 0xfe, 0x93, 0xc0, 0x80, + 0xfd, 0x83, 0x82, 0x42, 0xf9, 0xeb, 0x12, 0x05, 0xd3, 0xd3, 0xab, 0x7f, + 0x93, 0xb2, 0xb5, 0x7b, 0xf9, 0x3f, 0xf4, 0x3b, 0xf0, 0xbf, 0xb6, 0x76, + 0xf5, 0x7f, 0xb6, 0x76, 0xf5, 0x3f, 0x36, 0x36, 0x33, 0x33, 0x63, 0x4e, + 0x4e, 0x36, 0x36, 0x4e, 0x4e, 0x66, 0x16, 0x0e, 0x06, 0x06, 0x06, 0x06, + 0xde, 0x26, 0x07, 0x06, 0x3e, 0x6e, 0x07, 0x34, 0xa6, 0x56, 0x07, 0x34, + 0xa4, 0x2c, 0xbf, 0xb8, 0x03, 0x20, 0x20, 0xa0, 0x4a, 0x01, 0x01, 0x81, + 0x2b, 0x03, 0x81, 0x80, 0xff, 0x91, 0x99, 0x91, 0xff, 0x81, 0xdf, 0xa1, + 0xff, 0x05, 0x3b, 0xc1, 0x7f, 0x11, 0x13, 0x83, 0x5f, 0x53, 0x53, 0x29, + 0xd5, 0x91, 0x54, 0x31, 0x50, 0xbd, 0x5c, 0x11, 0x50, 0x7d, 0x4d, 0x52, + 0x60, 0x75, 0x6c, 0x72, 0x70, 0x68, 0x68, 0x70, 0x72, 0x6c, 0x78, 0xf8, + 0x5a, 0xb0, 0x2f, 0xf4, 0xcb, 0x5a, 0x9e, 0x05, 0x70, 0xaa, 0xd4, 0x7f, + 0xbf, 0x8c, 0x44, 0xc0, 0xcc, 0x8c, 0x8d, 0xfd, 0xcf, 0x9c, 0x3c, 0xfc, + 0x0f, 0xfc, 0x0e, 0xad, 0x0e, 0x58, 0x98, 0x7d, 0xb9, 0x23, 0x26, 0x26, + 0xaa, 0x42, 0x66, 0x06, 0xee, 0x83, 0x62, 0x22, 0xaa, 0x02, 0x00, 0x40, + 0x0a, 0xcc, 0x9b, 0xc4, 0xd5, 0x9d, 0xef, 0xca, 0xa7, 0x56, 0xc1, 0x78, + 0x7a, 0xc5, 0x31, 0x0b, 0xb2, 0x0f, 0xd7, 0x8c, 0x98, 0x8d, 0x9b, 0x55, + 0xed, 0x17, 0x53, 0xb5, 0xe3, 0x56, 0x5b, 0x7d, 0xf5, 0xb5, 0x79, 0xf6, + 0xec, 0x50, 0x05, 0x77, 0x40, 0xde, 0xde, 0xde, 0x1e, 0x1c, 0x1e, 0xd3, + 0xc2, 0xf1, 0xd3, 0xff, 0xff, 0x82, 0x82, 0xff, 0x74, 0x0b, 0x80, 0x3b, + 0x20, 0x20, 0xa0, 0x4a, 0x20, 0x20, 0x20, 0x2e, 0xa5, 0xa1, 0x20, 0xab, + 0x80, 0x80, 0x80, 0x9a, 0xaa, 0x5f, 0x50, 0x00, 0x0a, 0x2e, 0x91, 0x91, + 0xc8, 0x7e, 0xdc, 0x0e, 0x0e, 0x1c, 0xec, 0x0e, 0x0d, 0xd4, 0x8e, 0x02, + 0x94, 0x6a, 0xfd, 0x03, 0xec, 0xaa, 0xae, 0x06, 0x88, 0x98, 0xa0, 0xfb, + 0xef, 0xd0, 0xc0, 0xff, 0xff, 0xc0, 0xd0, 0xef, 0xa0, 0x79, 0x94, 0xde, + 0x5c, 0x8a, 0xa8, 0x03, 0x41, 0x43, 0x4f, 0x5c, 0xc5, 0xca, 0x0a, 0x09, + 0xda, 0xaa, 0x81, 0x42, 0xc5, 0xaa, 0x80, 0xe9, 0x85, 0xc4, 0x41, 0x01, + 0xc1, 0xdb, 0x81, 0x6d, 0xa3, 0x8a, 0xc3, 0x5f, 0xf1, 0x8b, 0x8a, 0xc4, + 0x55, 0xc9, 0xe7, 0x8f, 0xa7, 0x2e, 0x45, 0x8c, 0xac, 0x91, 0x68, 0x94, + 0x81, 0x56, 0xf9, 0x49, 0x5c, 0x60, 0x49, 0xb7, 0x3e, 0x79, 0x8a, 0x6e, + 0x42, 0x5d, 0x1b, 0xa5, 0x91, 0x19, 0xa8, 0x3c, 0x76, 0x09, 0x7f, 0x0a, + 0x5b, 0x03, 0x0c, 0x48, 0xbc, 0xd2, 0xb3, 0x5c, 0x89, 0xab, 0xcc, 0x23, + 0xb5, 0xba, 0x60, 0x3a, 0xa0, 0x4c, 0x08, 0xc9, 0xc2, 0xbe, 0x7a, 0x71, + 0xf4, 0xee, 0x2a, 0x88, 0xfb, 0xa1, 0x71, 0xd6, 0x71, 0x1c, 0xbf, 0xd7, + 0xe7, 0xfb, 0x3c, 0x97, 0xfb, 0x93, 0xbb, 0xeb, 0xe5, 0x8f, 0xa9, 0x25, + 0x69, 0xb5, 0xc6, 0xb6, 0x81, 0x08, 0xfe, 0x02, 0xcd, 0xa4, 0xee, 0x15, + 0x44, 0xb2, 0x88, 0xa0, 0x88, 0x7f, 0x8b, 0xf4, 0xb7, 0x10, 0x5d, 0x54, + 0x5c, 0x9c, 0x1d, 0x5c, 0xa4, 0x28, 0xe8, 0x56, 0xc1, 0xe2, 0xe0, 0xe2, + 0xa2, 0x52, 0x28, 0x0a, 0x59, 0xa4, 0x28, 0xa8, 0x88, 0x6e, 0xba, 0xa4, + 0x0e, 0xc5, 0xe2, 0x24, 0x6e, 0xb7, 0xb8, 0x88, 0x0e, 0x25, 0x18, 0xfb, + 0x07, 0x6b, 0x85, 0xfc, 0xbd, 0xa4, 0x97, 0xbb, 0x3c, 0xc9, 0x3d, 0xdf, + 0xe7, 0xf9, 0xbe, 0xc9, 0x85, 0x77, 0xb0, 0xf3, 0x7b, 0x7e, 0xcf, 0x63, + 0xaf, 0x2a, 0xed, 0x24, 0xad, 0x30, 0xd6, 0x58, 0x6b, 0x8b, 0xda, 0x3b, + 0x62, 0x1d, 0xd3, 0x8e, 0xad, 0x96, 0x16, 0x69, 0xc2, 0xb8, 0x80, 0x10, + 0x6b, 0x51, 0x5b, 0xc7, 0x3a, 0x63, 0x0b, 0x1d, 0x14, 0xa3, 0xd4, 0x56, + 0xf7, 0x30, 0x54, 0x95, 0x29, 0x75, 0x01, 0xe3, 0x22, 0xea, 0x06, 0xc6, + 0xb8, 0x8f, 0x48, 0x1b, 0x4b, 0x8a, 0xd8, 0xfe, 0x30, 0xd1, 0x61, 0x88, + 0x65, 0x4a, 0x18, 0x65, 0x5c, 0x40, 0xa9, 0x65, 0x08, 0x26, 0xa8, 0xeb, + 0x09, 0x46, 0x64, 0x50, 0x71, 0x01, 0x49, 0x13, 0xb7, 0x30, 0xee, 0x20, + 0xf8, 0x83, 0x5a, 0x22, 0x2e, 0x22, 0x75, 0x13, 0x09, 0x8a, 0x88, 0xbd, + 0x2e, 0x23, 0x6a, 0x0b, 0x09, 0x62, 0x2f, 0x11, 0x84, 0x88, 0x25, 0x23, + 0xc4, 0x56, 0x17, 0x11, 0x37, 0x30, 0xe3, 0x22, 0x12, 0x37, 0x50, 0x21, + 0x21, 0xf8, 0xc3, 0x5e, 0x57, 0x50, 0x57, 0x90, 0xd7, 0xeb, 0xfd, 0xfe, + 0x7c, 0x3f, 0xcf, 0xe7, 0xfb, 0xfb, 0x7c, 0x7e, 0xcf, 0xf9, 0xfc, 0xce, + 0xef, 0xf9, 0x3d, 0xcf, 0x73, 0xb6, 0x99, 0x79, 0x7e, 0xbf, 0x39, 0xcb, + 0x73, 0x9e, 0xf3, 0x9c, 0xe7, 0x9c, 0xf3, 0x3b, 0x33, 0x73, 0xce, 0x79, + 0xa6, 0x33, 0x6f, 0x0c, 0x60, 0x12, 0x00, 0x21, 0x08, 0xc3, 0x40, 0x00, + 0xdc, 0x83, 0x4a, 0x6b, 0x09, 0x0e, 0x2f, 0x03, 0x04, 0x00, 0x7a, 0x65, + 0x73, 0x6b, 0x4b, 0xcb, 0xf5, 0x21, 0x07, 0xd1, 0x97, 0x11, 0x9c, 0x14, + 0x1c, 0x84, 0xc2, 0x09, 0x08, 0x89, 0x06, 0x82, 0x06, 0x12, 0x0d, 0x04, + 0x0d, 0x24, 0x1a, 0x08, 0x1a, 0x48, 0x34, 0x10, 0x34, 0x90, 0x68, 0x20, + 0x68, 0x20, 0xd1, 0x40, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, + 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0xd0, 0x10, 0x12, 0x71, 0x69, + 0x9b, 0x9a, 0xcb, 0x5a, 0x9b, 0x8e, 0xcd, 0xa6, 0xd5, 0xd6, 0x89, 0xcd, + 0x60, 0x6e, 0x64, 0xac, 0x89, 0xb1, 0x8c, 0x01, 0x11, 0x21, 0x06, 0xbc, + 0xb4, 0xd7, 0xfa, 0x8f, 0xc5, 0x53, 0xfd, 0x55, 0xb3, 0x71, 0xce, 0x6c, + 0x9a, 0x2c, 0x3c, 0x80, 0x69, 0xb6, 0x02, 0x67, 0x3c, 0xed, 0xdc, 0x45, + 0x63, 0x63, 0x2f, 0xe3, 0xe7, 0xfc, 0xb5, 0x9d, 0x27, 0x59, 0xa4, 0x17, + 0x10, 0x62, 0x80, 0x21, 0xc4, 0x00, 0x43, 0x88, 0x01, 0x86, 0x10, 0x03, + 0x0c, 0x21, 0x06, 0x18, 0x42, 0x9f, 0x66, 0x93, 0xcc, 0xbd, 0xee, 0x66, + 0x66, 0x32, 0x73, 0xf4, 0x7a, 0x33, 0xa9, 0xfa, 0x31, 0xa3, 0x51, 0x8e, + 0x1e, 0x0d, 0x60, 0x47, 0x78, 0x75, 0x7a, 0xb9, 0x2b, 0x4e, 0x57, 0x8c, + 0xaa, 0x00, 0x1a, 0xed, 0x01, 0x54, 0x55, 0x00, 0xf9, 0x0b, 0x39, 0xf5, + 0x97, 0xff, 0xfe, 0x0b, 0x13, 0xa0, 0x0a, 0xa0, 0x0a, 0xa0, 0x0a, 0xa0, + 0x0a, 0xa0, 0x5e, 0x49, 0x78, 0x4f, 0x07, 0xdf, 0x09, 0x0f, 0x78, 0x0f, + 0x78, 0x8f, 0x1a, 0x7e, 0xe3, 0xed, 0x5c, 0xef, 0xbe, 0xec, 0xe5, 0x6e, + 0xe7, 0x0a, 0x0a, 0xc8, 0x3b, 0xb2, 0x13, 0x50, 0x05, 0x54, 0x01, 0x2d, + 0x14, 0x14, 0x90, 0x7e, 0x94, 0x9f, 0xfc, 0xbd, 0xae, 0xce, 0x8d, 0x1f, + 0xab, 0x3a, 0xb2, 0x1b, 0xaa, 0xa4, 0x2a, 0xa9, 0x4a, 0xd2, 0x2b, 0x71, + 0x88, 0x9b, 0x9d, 0x74, 0xf0, 0x13, 0xbb, 0x2a, 0xfd, 0xf5, 0x42, 0xba, + 0x4a, 0xc2, 0xed, 0x38, 0x79, 0x22, 0xb7, 0xf3, 0x08, 0x15, 0x07, 0x14, + 0x05, 0x50, 0x14, 0x40, 0x51, 0x00, 0x45, 0x01, 0x14, 0x05, 0xfa, 0x47, + 0xec, 0xbe, 0x43, 0x80, 0x82, 0x84, 0x08, 0x20, 0x02, 0x48, 0x21, 0xa2, + 0x52, 0xa4, 0x50, 0x35, 0x5f, 0xaa, 0xb7, 0xf8, 0x10, 0x7a, 0xa2, 0x56, + 0x97, 0x9f, 0x86, 0xde, 0x74, 0xbf, 0xb4, 0x33, 0xfa, 0x76, 0x3f, 0x4a, + 0x35, 0x84, 0xb0, 0xd9, 0x05, 0xdd, 0x99, 0x3c, 0x94, 0xba, 0x4c, 0x5b, + 0xe8, 0x42, 0xee, 0x9d, 0x82, 0x5e, 0xfc, 0xb3, 0xfe, 0x2d, 0x39, 0xfd, + 0x9b, 0x3c, 0x94, 0xaa, 0x5a, 0x90, 0xca, 0x64, 0x5e, 0x24, 0x21, 0x50, + 0xa5, 0xea, 0x43, 0x21, 0x84, 0x10, 0x98, 0xbc, 0xfa, 0x2b, 0x97, 0x3a, + 0x27, 0xb4, 0x4b, 0x08, 0xd0, 0x56, 0xa7, 0x9a, 0xdc, 0xdc, 0xf3, 0xfd, + 0x80, 0xd0, 0x4e, 0x8f, 0xd0, 0x39, 0x21, 0xe1, 0x55, 0x1d, 0x1d, 0xbd, + 0x82, 0x48, 0x4e, 0xf2, 0xc5, 0x65, 0x79, 0xac, 0x83, 0xa7, 0x96, 0x8e, + 0xc5, 0xd1, 0x51, 0x09, 0x9b, 0x5d, 0x20, 0x0d, 0x48, 0x5b, 0xe8, 0xc2, + 0x27, 0x1e, 0x16, 0x48, 0x3f, 0xed, 0xa7, 0x2f, 0xef, 0xc1, 0x3d, 0x16, + 0xd2, 0x02, 0xaf, 0xea, 0xe8, 0xe8, 0x84, 0xa8, 0x24, 0x1f, 0x93, 0x57, + 0xca, 0xcf, 0x5b, 0xb1, 0x07, 0x63, 0x87, 0xc7, 0xa3, 0xd7, 0x28, 0xb4, + 0xe9, 0x95, 0xa0, 0xad, 0x28, 0x8c, 0xe7, 0x16, 0xbb, 0x27, 0x76, 0xe9, + 0x95, 0x40, 0x24, 0xa2, 0x52, 0x52, 0xa6, 0x50, 0x35, 0x5f, 0x61, 0xd5, + 0x47, 0xe5, 0x65, 0xfd, 0xc9, 0x5e, 0xea, 0xcb, 0xe0, 0x0b, 0x35, 0xbc, + 0x82, 0xb6, 0xbb, 0xc1, 0x42, 0x40, 0x90, 0x56, 0xe8, 0xc6, 0x9f, 0xce, + 0xff, 0x6a, 0x2f, 0xc6, 0x99, 0x9c, 0x78, 0x05, 0x91, 0xc4, 0x9b, 0x16, + 0x0a, 0x96, 0x44, 0xf2, 0x21, 0x38, 0xd1, 0xda, 0x2f, 0x2d, 0x65, 0x28, + 0x84, 0xb6, 0x69, 0x68, 0x95, 0xe0, 0xfa, 0x01, 0xbe, 0xe8, 0xea, 0x41, + 0x09, 0xe1, 0x21, 0x1c, 0x0d, 0xbd, 0xaa, 0xa3, 0xd0, 0x6b, 0x9e, 0xda, + 0x32, 0xf7, 0x7f, 0xfb, 0x3f, 0x0f, 0x07, 0x4f, 0x27, 0xa0, 0xed, 0x6e, + 0x90, 0x06, 0xa4, 0x15, 0xba, 0xe1, 0x3d, 0x0b, 0xc8, 0xbf, 0x5d, 0xfc, + 0x24, 0xb7, 0x23, 0xf4, 0x9e, 0x0e, 0x9e, 0x34, 0xb1, 0xea, 0x2b, 0x4e, + 0x6e, 0x3c, 0xe0, 0x44, 0xb3, 0xa2, 0xac, 0x38, 0xa1, 0x6d, 0x27, 0x04, + 0xad, 0x2a, 0xc2, 0x4a, 0xcb, 0x1e, 0xd6, 0x49, 0x05, 0xa8, 0x10, 0x42, + 0x98, 0x52, 0xb4, 0x22, 0xdc, 0x57, 0x3d, 0xdc, 0x7e, 0x61, 0x47, 0x4c, + 0x5e, 0x8c, 0x4e, 0x72, 0x02, 0xda, 0x01, 0x48, 0xc1, 0x41, 0xd8, 0x15, + 0x7b, 0x04, 0x6d, 0x00, 0x48, 0x2a, 0xc6, 0x70, 0x7b, 0xcd, 0x9f, 0xe3, + 0x9b, 0xf3, 0xd5, 0x24, 0x30, 0x38, 0x49, 0x09, 0x54, 0xa9, 0xfa, 0xd4, + 0x3d, 0x9a, 0xab, 0x20, 0xb8, 0x2a, 0xca, 0x2a, 0x6d, 0xd0, 0x5e, 0xda, + 0xa8, 0x42, 0x54, 0x83, 0x7b, 0xfe, 0xe2, 0x79, 0x54, 0x01, 0xaa, 0x34, + 0xf4, 0x55, 0xd6, 0xa8, 0x8e, 0xf6, 0x3f, 0xc8, 0x82, 0x83, 0xd0, 0x57, + 0xe9, 0x50, 0xa5, 0x10, 0x76, 0x02, 0xa4, 0xbd, 0xe8, 0x0a, 0x69, 0x03, + 0x80, 0xaf, 0xd2, 0xa1, 0x4a, 0x27, 0xd3, 0xf6, 0x00, 0x77, 0xef, 0xab, + 0x70, 0xa8, 0x52, 0x08, 0x54, 0x2a, 0x85, 0xdb, 0xf1, 0xcd, 0xf3, 0x72, + 0xc2, 0x8a, 0x93, 0x28, 0xb4, 0xd3, 0x09, 0xed, 0x47, 0x1b, 0xd1, 0x49, + 0xac, 0x14, 0xd2, 0x39, 0x87, 0x28, 0xac, 0x10, 0x92, 0x30, 0x25, 0xdd, + 0x70, 0xfb, 0x57, 0x25, 0x27, 0x20, 0x92, 0xa7, 0x21, 0x54, 0xc7, 0x44, + 0xb1, 0x6a, 0x14, 0x5a, 0xed, 0x9d, 0x6e, 0x20, 0x97, 0x4a, 0x0b, 0x6c, + 0xf6, 0x8d, 0x6a, 0x2d, 0x3d, 0x63, 0xa5, 0x66, 0xb6, 0x52, 0x27, 0x54, + 0xd3, 0x78, 0x65, 0x3f, 0x52, 0xa5, 0x9a, 0x0a, 0x79, 0x86, 0x88, 0xae, + 0x81, 0x5a, 0xa4, 0x2d, 0x74, 0x21, 0xa9, 0x18, 0x4b, 0x2a, 0x01, 0xec, + 0x57, 0x9e, 0x82, 0x8f, 0xe1, 0x14, 0x68, 0xaa, 0xa8, 0x9d, 0x9d, 0xbe, + 0xaf, 0x10, 0xc2, 0x23, 0x4c, 0x82, 0x5a, 0x59, 0x7b, 0xf7, 0x99, 0x6a, + 0xee, 0x93, 0xbc, 0x4e, 0xad, 0x56, 0xab, 0x49, 0x70, 0xd9, 0xd5, 0x20, + 0x20, 0x6d, 0x29, 0x80, 0xf7, 0x4a, 0xec, 0xfd, 0xd9, 0x1d, 0x04, 0x7a, + 0x1a, 0xce, 0x3c, 0x47, 0x3c, 0x64, 0xf0, 0xcc, 0x01, 0x4e, 0xbc, 0x87, + 0x83, 0x9f, 0xcb, 0x07, 0xd5, 0x81, 0xc4, 0x1d, 0xe7, 0x1c, 0xa1, 0x26, + 0x21, 0x8f, 0x9c, 0xd7, 0x3e, 0xac, 0x86, 0x50, 0x0b, 0x0c, 0xc3, 0x39, + 0xe4, 0x80, 0x1c, 0x58, 0x23, 0x02, 0xed, 0x8b, 0x2e, 0x78, 0x0f, 0x07, + 0x4f, 0x27, 0x20, 0xaa, 0x51, 0x6f, 0x0f, 0xb3, 0x47, 0x4f, 0x9a, 0x8a, + 0x5d, 0x2c, 0x3f, 0x12, 0x9d, 0x10, 0xb1, 0x59, 0x8b, 0x94, 0x88, 0x6b, + 0xba, 0xec, 0x9a, 0x65, 0x33, 0x6b, 0x36, 0x9b, 0x52, 0x53, 0xa8, 0xb1, + 0x59, 0xd2, 0x41, 0x68, 0x33, 0xe6, 0x10, 0x69, 0xe2, 0x37, 0x05, 0x17, + 0x01, 0x51, 0xf5, 0x61, 0xe4, 0xeb, 0x9e, 0x86, 0x54, 0x61, 0x70, 0x10, + 0xa6, 0xd2, 0x9b, 0x16, 0xd5, 0x7b, 0x4a, 0x51, 0x41, 0xc3, 0x68, 0x26, + 0xff, 0x2e, 0x15, 0xa1, 0x99, 0xdf, 0xe1, 0xa6, 0x43, 0x85, 0x50, 0xab, + 0x08, 0x84, 0xaa, 0x08, 0xc3, 0x69, 0xb5, 0xdf, 0x55, 0xe6, 0x2c, 0x54, + 0x0e, 0xb8, 0x0a, 0x20, 0x74, 0x02, 0xda, 0xd5, 0x85, 0x94, 0xd5, 0x58, + 0x50, 0x09, 0x60, 0x1e, 0xdc, 0xa9, 0x3e, 0x39, 0x25, 0x91, 0xbc, 0x12, + 0xd5, 0xfb, 0x56, 0x35, 0xd5, 0x82, 0x93, 0x2a, 0xc9, 0x57, 0x45, 0x95, + 0x87, 0xb3, 0xb2, 0xa8, 0x35, 0x9a, 0x42, 0x34, 0x85, 0x25, 0xa9, 0x51, + 0x24, 0x50, 0x84, 0x36, 0x13, 0x40, 0xa2, 0x49, 0x90, 0xfb, 0x4a, 0x4a, + 0x02, 0xa7, 0xee, 0x6a, 0xae, 0x72, 0x8f, 0x9e, 0x85, 0x80, 0xf0, 0x89, + 0x0e, 0x1a, 0x12, 0x82, 0xd7, 0xc1, 0x4c, 0x0d, 0x01, 0xc5, 0x2c, 0x34, + 0xe7, 0xae, 0xdf, 0x15, 0x5c, 0x08, 0x8e, 0xd5, 0x40, 0x30, 0x06, 0x84, + 0x40, 0x09, 0x70, 0x74, 0x02, 0xda, 0xd5, 0x05, 0x9f, 0xe0, 0xa0, 0x54, + 0x02, 0xf0, 0x9e, 0x17, 0x2f, 0xe0, 0x59, 0x08, 0x11, 0x5d, 0xc3, 0x96, + 0x42, 0xd9, 0x95, 0xbc, 0x32, 0x3a, 0xa9, 0x38, 0x15, 0x06, 0x61, 0x59, + 0x4e, 0x47, 0x47, 0xe9, 0x0a, 0x11, 0x07, 0x14, 0x14, 0x50, 0x68, 0xb3, + 0xa2, 0x8c, 0x42, 0x20, 0xd2, 0x5d, 0xdc, 0xa5, 0x06, 0x27, 0x11, 0x59, + 0x4f, 0xe9, 0x9a, 0x56, 0xab, 0xb2, 0x74, 0x10, 0xa6, 0x9c, 0x2d, 0xf8, + 0x2a, 0x80, 0xd0, 0x39, 0x01, 0x27, 0x20, 0x02, 0x14, 0xa1, 0x08, 0x45, + 0x28, 0x42, 0x11, 0x8a, 0x50, 0x84, 0x22, 0x14, 0xa1, 0x08, 0x45, 0x28, + 0x42, 0x11, 0x8a, 0x30, 0xe5, 0x6c, 0x41, 0x29, 0x04, 0x90, 0xb2, 0x9b, + 0x66, 0x2b, 0xf0, 0x2a, 0xc2, 0x12, 0x3d, 0x81, 0x4a, 0x57, 0x55, 0x02, + 0x09, 0x61, 0xa2, 0x82, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, + 0x92, 0x24, 0x49, 0x92, 0x09, 0x65, 0x12, 0x02, 0x09, 0x82, 0xef, 0xa5, + 0xe1, 0x3a, 0xbf, 0x5e, 0x3a, 0x24, 0x2a, 0x01, 0xf8, 0x44, 0x87, 0x14, + 0x28, 0x9d, 0x03, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, + 0x49, 0x92, 0x24, 0x7d, 0x12, 0xc7, 0x44, 0x25, 0x00, 0x9f, 0x58, 0xe3, + 0x57, 0x48, 0xa3, 0xaf, 0x75, 0x39, 0x44, 0x21, 0x10, 0x9d, 0x44, 0x28, + 0x48, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, + 0x19, 0x95, 0x51, 0x08, 0x44, 0x22, 0xff, 0x54, 0x42, 0x08, 0xdb, 0x53, + 0x0c, 0xe6, 0x4a, 0x2a, 0x01, 0xa4, 0x2c, 0x46, 0xa7, 0x34, 0x87, 0x7e, + 0x70, 0xf2, 0xc1, 0xf5, 0x9d, 0xc8, 0x3b, 0xe9, 0x0b, 0xe5, 0x85, 0x7d, + 0x42, 0x9e, 0xe8, 0x13, 0xf2, 0x44, 0x9f, 0x90, 0x27, 0xfa, 0x84, 0x3c, + 0xd1, 0x27, 0xe4, 0x89, 0x3e, 0x91, 0xb2, 0x18, 0x33, 0x95, 0x00, 0x52, + 0x66, 0x89, 0xcb, 0x97, 0x29, 0x01, 0x3c, 0xc2, 0xe4, 0x84, 0x50, 0x94, + 0x1e, 0x10, 0x12, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, + 0x04, 0x41, 0x78, 0x08, 0x9f, 0xbc, 0x32, 0x41, 0xec, 0x59, 0x49, 0xe0, + 0xc2, 0xd3, 0x21, 0x69, 0x38, 0x79, 0x28, 0xbd, 0xa7, 0x43, 0x22, 0xd0, + 0xb9, 0xe4, 0x01, 0x25, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, + 0x04, 0x41, 0x78, 0x4f, 0x87, 0xa4, 0x5d, 0x0b, 0xbc, 0xa2, 0x81, 0x5f, + 0x99, 0x4a, 0x20, 0x9c, 0x58, 0xe9, 0x62, 0xf2, 0xca, 0x28, 0x8c, 0x4a, + 0x21, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, + 0x44, 0x14, 0x46, 0x21, 0x10, 0x89, 0xfc, 0x32, 0x85, 0x92, 0xb2, 0xbd, + 0x9b, 0xd2, 0x5c, 0xa6, 0x05, 0x29, 0x8b, 0x31, 0x2b, 0xd0, 0x0a, 0x80, + 0xfa, 0x00, 0x54, 0x71, 0x02, 0xda, 0x06, 0x34, 0x08, 0xa0, 0xef, 0x04, + 0x44, 0xca, 0xce, 0x24, 0x53, 0x08, 0x20, 0x65, 0xa9, 0xf9, 0xe9, 0xc2, + 0x09, 0x91, 0x5f, 0x5f, 0x51, 0x98, 0x68, 0x12, 0x44, 0xa2, 0x15, 0xad, + 0x9c, 0x10, 0x09, 0x22, 0x59, 0x12, 0x00, 0xdf, 0x2d, 0x24, 0xb0, 0x8e, + 0x1e, 0x9f, 0x0e, 0x89, 0x34, 0xf0, 0x89, 0x0e, 0x89, 0xb4, 0x02, 0x40, + 0x00, 0xa4, 0x15, 0x00, 0x02, 0xa0, 0x10, 0x80, 0x4f, 0x74, 0x48, 0xb4, + 0xc0, 0x27, 0xac, 0xf0, 0x3d, 0x14, 0x02, 0xfa, 0x51, 0xa7, 0x8c, 0x34, + 0x91, 0x88, 0xb4, 0x52, 0xda, 0x2d, 0x04, 0xa2, 0x32, 0x2a, 0x81, 0xc8, + 0x6c, 0x19, 0xae, 0x51, 0x28, 0x94, 0x07, 0xd1, 0xab, 0x6a, 0x91, 0x13, + 0x97, 0x49, 0x83, 0x94, 0xc5, 0x98, 0x49, 0x2b, 0x00, 0x04, 0x40, 0x27, + 0xa0, 0x6d, 0x80, 0x00, 0xe8, 0x04, 0x44, 0xca, 0xce, 0x24, 0x53, 0x08, + 0x20, 0x65, 0x59, 0xba, 0xd3, 0x3f, 0x53, 0x65, 0x42, 0xc0, 0x5d, 0xed, + 0x85, 0x8b, 0xc9, 0x09, 0x91, 0x20, 0x12, 0xad, 0x68, 0x25, 0x04, 0x12, + 0x44, 0xb2, 0x24, 0xc0, 0xeb, 0x85, 0x44, 0xc3, 0x01, 0xe9, 0xa1, 0xf7, + 0x98, 0x28, 0x04, 0xe0, 0x13, 0x1d, 0x12, 0x69, 0x05, 0x80, 0x00, 0x48, + 0x2b, 0x00, 0x04, 0x40, 0x21, 0x00, 0x9f, 0xe8, 0x90, 0x68, 0xc1, 0x2c, + 0xe1, 0xf0, 0xa1, 0x12, 0x69, 0x8a, 0x6f, 0x0e, 0x1a, 0x63, 0x21, 0x2c, + 0x0a, 0x89, 0xf6, 0x28, 0xed, 0x16, 0x02, 0x51, 0x19, 0x95, 0x40, 0x74, + 0x47, 0x76, 0xa2, 0x51, 0x29, 0x09, 0x67, 0xe1, 0x0c, 0x1e, 0xf1, 0x9a, + 0x99, 0x16, 0x24, 0x97, 0x2d, 0x64, 0x89, 0x06, 0xaa, 0xe7, 0x00, 0x27, + 0xba, 0x5b, 0x08, 0x6b, 0x09, 0x12, 0xd4, 0x83, 0x04, 0xf5, 0xa0, 0x2b, + 0x48, 0x2e, 0x98, 0xcb, 0xcc, 0x01, 0x4e, 0x8e, 0x83, 0xbd, 0xce, 0x69, + 0x08, 0x59, 0xc1, 0x92, 0xe0, 0x7d, 0x26, 0x9a, 0x04, 0x91, 0x84, 0x00, + 0x8d, 0xd0, 0x3a, 0x41, 0x24, 0x4b, 0xba, 0x1f, 0x21, 0xd1, 0xd0, 0x27, + 0xfe, 0x6e, 0x67, 0x7f, 0x44, 0xa4, 0x81, 0xf7, 0x74, 0x48, 0x14, 0x02, + 0x20, 0x0d, 0x28, 0x84, 0x35, 0x41, 0x10, 0x04, 0x41, 0x78, 0x55, 0x47, + 0x4f, 0x0b, 0x96, 0xd5, 0x9f, 0x3b, 0xcf, 0x2d, 0x28, 0x95, 0x40, 0x4c, + 0x7e, 0xfb, 0x9a, 0x2c, 0x85, 0x32, 0xc6, 0x42, 0xa8, 0x04, 0x84, 0xd6, + 0x85, 0x32, 0x2a, 0x81, 0xfc, 0x09, 0xab, 0x44, 0xa1, 0x14, 0xb1, 0x48, + 0xd9, 0x9d, 0x8b, 0xdb, 0xee, 0xe0, 0xc4, 0xb9, 0x1b, 0xa4, 0x40, 0x43, + 0x66, 0x0e, 0x70, 0x42, 0x25, 0x00, 0x0a, 0x61, 0x4d, 0x10, 0x04, 0x41, + 0x10, 0x29, 0x88, 0x31, 0x53, 0xb8, 0x41, 0xe7, 0x6c, 0x2f, 0xc7, 0x1c, + 0x0d, 0x41, 0x52, 0x02, 0x09, 0x65, 0xfa, 0xe4, 0xe0, 0x24, 0x01, 0x24, + 0x21, 0x40, 0x23, 0xb4, 0x4e, 0x10, 0x09, 0x58, 0x5a, 0xb6, 0xfc, 0x10, + 0x09, 0x20, 0x09, 0x09, 0xf8, 0x44, 0x87, 0x74, 0x72, 0x4e, 0x17, 0x71, + 0x22, 0xf4, 0x89, 0x0e, 0x89, 0x42, 0x00, 0xa4, 0x01, 0x85, 0xb0, 0x26, + 0x08, 0x82, 0x20, 0x08, 0x9f, 0xe8, 0x90, 0x12, 0x90, 0x6f, 0xbe, 0xfe, + 0xf4, 0x2d, 0xf8, 0x04, 0x87, 0x44, 0x21, 0x10, 0x73, 0x88, 0xc3, 0xf2, + 0x0a, 0xeb, 0x37, 0xcf, 0xe8, 0x24, 0x0a, 0x01, 0x27, 0x84, 0xd0, 0x3a, + 0x3a, 0x89, 0xf2, 0xe4, 0xd9, 0x8c, 0x5c, 0xe9, 0x59, 0x46, 0x61, 0x74, + 0x22, 0x39, 0x49, 0x41, 0x8d, 0x99, 0xca, 0x1f, 0xef, 0x79, 0x97, 0xc9, + 0xd1, 0x10, 0x18, 0x1c, 0x84, 0xcc, 0x01, 0x4e, 0xe8, 0x04, 0xb4, 0x3f, + 0x41, 0x10, 0x04, 0x41, 0xa4, 0x10, 0xcc, 0xe5, 0xf5, 0xca, 0x56, 0x1e, + 0xbc, 0xf7, 0xb5, 0x93, 0x94, 0x9d, 0x49, 0x56, 0xb0, 0x24, 0x84, 0x89, + 0xf8, 0xf3, 0x66, 0xef, 0x23, 0x41, 0x24, 0x27, 0x04, 0x8d, 0xd0, 0x3a, + 0x41, 0xa4, 0xe5, 0xfb, 0xdd, 0x63, 0x12, 0x40, 0xa2, 0xa1, 0x4f, 0x74, + 0x48, 0x24, 0x1c, 0x16, 0xbb, 0xfd, 0xf9, 0xd7, 0xf3, 0x2e, 0x3c, 0x85, + 0x00, 0x48, 0x03, 0x0a, 0x61, 0x4d, 0x10, 0x04, 0x41, 0x10, 0x3e, 0x31, + 0xaf, 0x1f, 0xf8, 0xe8, 0x63, 0xec, 0x0f, 0xef, 0xd0, 0xc0, 0x7b, 0x38, + 0x78, 0xd2, 0xc4, 0xe4, 0xa3, 0xe5, 0x89, 0xbf, 0x21, 0x68, 0x51, 0x08, + 0xa1, 0x04, 0x94, 0xd6, 0x51, 0xec, 0x23, 0xb8, 0x94, 0x6d, 0x21, 0x50, + 0x14, 0x12, 0x85, 0x42, 0x99, 0xb2, 0x33, 0xc9, 0x14, 0x02, 0xf8, 0x74, + 0x5e, 0xdf, 0xb8, 0xc0, 0xac, 0x3f, 0xf9, 0x71, 0x07, 0xff, 0x67, 0x31, + 0xe6, 0x98, 0x61, 0xc8, 0x31, 0xc3, 0x90, 0x63, 0x86, 0x21, 0xc7, 0x0c, + 0x43, 0x8e, 0x19, 0x86, 0x1c, 0x33, 0x0c, 0x39, 0x66, 0x18, 0x72, 0xcc, + 0x88, 0xc8, 0xf9, 0xd1, 0x1b, 0xe1, 0x81, 0xb6, 0xc3, 0x8e, 0xe6, 0x4b, + 0x0a, 0x01, 0xa4, 0x4c, 0x43, 0x96, 0x94, 0x40, 0x42, 0x99, 0x84, 0x00, + 0x31, 0xd5, 0x88, 0xef, 0x65, 0x68, 0xe9, 0x18, 0xf0, 0x09, 0x40, 0x3d, + 0x00, 0x15, 0x25, 0x15, 0x25, 0x15, 0x25, 0x15, 0x25, 0x15, 0x25, 0x15, + 0x65, 0xba, 0x97, 0xcd, 0x97, 0x39, 0xe8, 0x84, 0x34, 0x0a, 0x20, 0x4e, + 0x48, 0x78, 0x47, 0x07, 0x47, 0xaf, 0x20, 0x48, 0x83, 0xd3, 0xfb, 0xfe, + 0xe9, 0x22, 0x0f, 0x21, 0xce, 0xa1, 0x53, 0xa0, 0x08, 0x29, 0x42, 0x8a, + 0x90, 0x22, 0xa4, 0x08, 0x29, 0x42, 0x6e, 0x24, 0x59, 0x76, 0x39, 0xf8, + 0x86, 0x67, 0xa1, 0x8a, 0x57, 0x10, 0x14, 0x02, 0xf0, 0x0a, 0x07, 0xa1, + 0x57, 0x22, 0x96, 0x2e, 0x96, 0x4e, 0x28, 0x04, 0xee, 0x89, 0x97, 0x75, + 0x82, 0x31, 0x3a, 0x89, 0x91, 0x88, 0x11, 0x88, 0x11, 0x88, 0x11, 0x88, + 0x11, 0x88, 0x11, 0x88, 0xee, 0xc4, 0xf5, 0xe1, 0xfd, 0x9d, 0xc7, 0x85, + 0x57, 0x42, 0x09, 0x44, 0xa5, 0x38, 0x91, 0x94, 0x29, 0x27, 0xf3, 0x39, + 0x66, 0x35, 0xe6, 0x98, 0x61, 0xc8, 0x31, 0xe3, 0x1c, 0x6e, 0xbb, 0xd3, + 0xe4, 0xc9, 0x0b, 0xa7, 0x71, 0x03, 0xf9, 0x8f, 0x0c, 0x43, 0x8e, 0x19, + 0x86, 0x1c, 0x33, 0x0c, 0x39, 0x66, 0x18, 0x72, 0xcc, 0x30, 0xe4, 0x45, + 0xc6, 0xb2, 0xff, 0xdb, 0xbf, 0xf9, 0x5b, 0x80, 0x21, 0x47, 0x07, 0x43, + 0x88, 0x02, 0x83, 0x8b, 0xa4, 0x41, 0x14, 0x9c, 0x10, 0x25, 0x39, 0xa4, + 0x40, 0x70, 0x3e, 0x20, 0x54, 0x07, 0x40, 0xb1, 0x2b, 0xba, 0xc7, 0x4b, + 0x23, 0x42, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0xc9, 0x4f, + 0x22, 0x7e, 0xec, 0xc2, 0x95, 0x04, 0x0a, 0x42, 0x0a, 0x42, 0x0a, 0x42, + 0x0a, 0x42, 0x2a, 0x09, 0x78, 0x51, 0x47, 0xe9, 0x86, 0x02, 0xaa, 0x80, + 0x2a, 0xa0, 0x85, 0x82, 0x02, 0x76, 0x56, 0x1f, 0xfc, 0xf3, 0xe3, 0xde, + 0xd9, 0x7e, 0xba, 0xe2, 0x16, 0x59, 0x43, 0x9f, 0x2b, 0x56, 0xd0, 0x95, + 0xe2, 0x2e, 0xb4, 0x67, 0x57, 0x7d, 0xa4, 0xbb, 0x8f, 0x73, 0x96, 0xc5, + 0x55, 0x09, 0x0e, 0xec, 0x8a, 0x2a, 0xa9, 0x4a, 0xaa, 0x92, 0xaa, 0x24, + 0x85, 0x40, 0xe1, 0x35, 0x8b, 0x30, 0x08, 0xe0, 0x48, 0x88, 0x00, 0x22, + 0xb8, 0xec, 0x7f, 0xff, 0xb1, 0x5f, 0xba, 0x68, 0x2e, 0x29, 0x59, 0x10, + 0xd9, 0x32, 0x5c, 0x72, 0xe7, 0xa4, 0x1a, 0x17, 0x13, 0xff, 0xeb, 0x77, + 0x3e, 0xe9, 0x96, 0x02, 0x44, 0x00, 0x11, 0x40, 0x04, 0x10, 0x01, 0x44, + 0x00, 0x71, 0x22, 0x92, 0xef, 0xd3, 0x40, 0x28, 0x01, 0x48, 0x34, 0x10, + 0x34, 0x90, 0x68, 0x20, 0x68, 0x20, 0xd1, 0x40, 0xd0, 0x40, 0xa2, 0x81, + 0xa0, 0x81, 0x44, 0x03, 0x41, 0x03, 0x89, 0x06, 0x82, 0x06, 0x12, 0x0d, + 0x04, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x01, 0xf9, 0xd5, 0xa7, 0xe1, 0xfc, 0x9a, + 0xed, 0xe9, 0xd0, 0xbb, 0xf0, 0xac, 0xf4, 0x35, 0xd5, 0x5a, 0x87, 0xdc, + 0x52, 0xeb, 0xc0, 0x3f, 0x4b, 0xf9, 0x28, 0xef, 0xad, 0x9e, 0xd5, 0x8a, + 0x91, 0xd1, 0x84, 0x7b, 0x13, 0x77, 0x0e, 0x2d, 0xc7, 0x25, 0xb5, 0xa6, + 0xa5, 0x56, 0xe3, 0x08, 0x4d, 0x4b, 0xad, 0x46, 0x70, 0xe7, 0x2d, 0x6d, + 0x9e, 0xa5, 0x6c, 0x37, 0x8b, 0x6a, 0xe0, 0x74, 0x59, 0x78, 0x8a, 0x1a, + 0x83, 0x4c, 0x3d, 0x1d, 0xfd, 0x7f, 0xf4, 0xee, 0x77, 0xbd, 0xdb, 0x5d, + 0x89, 0xb1, 0x74, 0xe6, 0x77, 0xa5, 0xf7, 0x0a, 0x3d, 0x83, 0x2a, 0x7a, + 0xe8, 0xe9, 0x96, 0xf4, 0xd0, 0xdd, 0xbd, 0x44, 0xbb, 0xe4, 0xd6, 0xff, + 0xd5, 0xfc, 0xdb, 0x58, 0xcc, 0x37, 0xe7, 0xf9, 0xf0, 0x49, 0x2e, 0x66, + 0x7f, 0xf5, 0x17, 0xee, 0x7d, 0x86, 0x31, 0x3c, 0xbc, 0x18, 0x1e, 0x8e, + 0xc3, 0xc3, 0xbb, 0xc3, 0xc3, 0x1f, 0x0e, 0xff, 0xcc, 0xb3, 0xfe, 0x0f, + 0x6d, 0xb0, 0x1a, 0x3b, 0xbc, 0x18, 0x1e, 0xfe, 0x79, 0x78, 0xcd, 0xab, + 0x8b, 0x5f, 0x43, 0xbb, 0x35, 0x6e, 0x67, 0x61, 0x53, 0x63, 0xdb, 0xfc, + 0x65, 0x2e, 0x7d, 0xc6, 0xab, 0x67, 0xa7, 0x55, 0xdb, 0x43, 0xe1, 0x56, + 0xa7, 0x74, 0xc7, 0x23, 0x13, 0x28, 0x44, 0xf5, 0xbf, 0x69, 0x6e, 0xfd, + 0x34, 0x07, 0xde, 0xfb, 0xf1, 0x5b, 0x06, 0xe7, 0xcb, 0xea, 0xa4, 0x53, + 0xee, 0x0e, 0xab, 0xb4, 0xf3, 0x8c, 0x78, 0xd0, 0xd7, 0xbe, 0xd0, 0xcd, + 0xe2, 0x5f, 0x1c, 0xf5, 0x44, 0x9f, 0xbf, 0x60, 0xb3, 0xc5, 0xf2, 0x6a, + 0x3d, 0x6d, 0x6e, 0x18, 0xe3, 0x3a, 0xab, 0x43, 0x0b, 0x30, 0xe7, 0x68, + 0x57, 0xda, 0x89, 0xfe, 0xe9, 0x50, 0x10, 0xdf, 0xef, 0x73, 0x67, 0xd6, + 0xf9, 0xec, 0x4f, 0x3f, 0x21, 0x73, 0x24, 0x0f, 0xcf, 0xfd, 0xd5, 0xbc, + 0x5b, 0x1f, 0xcf, 0x59, 0x95, 0xa5, 0x6c, 0xfa, 0x76, 0x66, 0x4e, 0x6d, + 0x79, 0x75, 0xdf, 0xb7, 0x5d, 0x1e, 0xa0, 0x68, 0xd9, 0x60, 0xce, 0x06, + 0x1b, 0xda, 0xc1, 0xc1, 0x85, 0x46, 0x2e, 0x8f, 0xd1, 0xcd, 0xde, 0x09, + 0x61, 0x89, 0x76, 0xc9, 0xd6, 0x9b, 0x5c, 0x1d, 0x9e, 0x79, 0xcc, 0xda, + 0xa6, 0x76, 0x7a, 0xe9, 0xdd, 0x3d, 0x4d, 0x6b, 0x7a, 0x75, 0x30, 0xbb, + 0xd3, 0x7b, 0x5f, 0xef, 0xed, 0xa5, 0x7f, 0xac, 0xff, 0x61, 0xa7, 0xbd, + 0x97, 0x93, 0xdf, 0x28, 0xbd, 0x48, 0x7e, 0xb5, 0x62, 0xed, 0xaf, 0xda, + 0xb3, 0x9f, 0x78, 0xd8, 0x6a, 0xad, 0xc2, 0x1a, 0xda, 0xad, 0xa5, 0xfa, + 0x2d, 0x7f, 0x7e, 0xea, 0x36, 0xa7, 0x2b, 0x96, 0x66, 0x27, 0x87, 0xbc, + 0xc1, 0xb3, 0x0d, 0xbc, 0xe2, 0x5e, 0xfb, 0xa0, 0xe5, 0xf7, 0xe8, 0xff, + 0xe9, 0x9a, 0x23, 0x2a, 0x63, 0x77, 0x7d, 0x79, 0xc7, 0x05, 0xfc, 0x4f, + 0xaf, 0x8a, 0xb0, 0x4a, 0x3b, 0xcf, 0xd8, 0x66, 0xfe, 0x4b, 0x5f, 0xf4, + 0xf5, 0xbe, 0x79, 0x6b, 0xe3, 0xf1, 0xed, 0xc5, 0x8c, 0x51, 0xd7, 0x4f, + 0xbb, 0xb1, 0xd7, 0xe5, 0xe0, 0x66, 0x27, 0x2f, 0xe6, 0x1e, 0x58, 0x34, + 0x2a, 0x9b, 0xa2, 0x76, 0xc7, 0x93, 0xa5, 0x2d, 0x6c, 0xbe, 0x57, 0xff, + 0xe0, 0xa1, 0xf7, 0x87, 0xdd, 0xf9, 0xa0, 0x1c, 0x9d, 0x3e, 0xd9, 0xf3, + 0x3c, 0xe1, 0x6a, 0xe4, 0xaa, 0x2c, 0x65, 0xa3, 0x7e, 0xab, 0xdd, 0x3b, + 0xb1, 0x77, 0xe4, 0xec, 0xad, 0x84, 0xe7, 0x08, 0xcf, 0xae, 0x6d, 0xe5, + 0x7f, 0x94, 0x5e, 0x97, 0xff, 0x8a, 0x7c, 0xb6, 0x7e, 0x77, 0xf7, 0x98, + 0x35, 0xee, 0xfa, 0xee, 0x16, 0x76, 0xb1, 0x6b, 0x37, 0x57, 0x5f, 0x1e, + 0xbb, 0xb5, 0x24, 0x95, 0xbd, 0x67, 0xbd, 0xfa, 0x7f, 0x2e, 0x2c, 0xd1, + 0x2e, 0x79, 0x22, 0x8f, 0xec, 0x7d, 0x53, 0x59, 0xaf, 0xd7, 0x79, 0xe9, + 0x76, 0x9f, 0x9d, 0xeb, 0xf5, 0x35, 0x47, 0xb4, 0x1d, 0xc3, 0xeb, 0x74, + 0x9c, 0xb6, 0x1c, 0x71, 0xb6, 0xe1, 0x72, 0x72, 0x4e, 0x40, 0x84, 0x15, + 0xcb, 0x32, 0xf8, 0xa6, 0xde, 0x3e, 0x99, 0x2b, 0xb7, 0x86, 0x66, 0xc7, + 0xaf, 0x5c, 0xd7, 0x7a, 0xaa, 0x9f, 0xea, 0xa7, 0x83, 0x8e, 0x31, 0xbd, + 0x8b, 0x74, 0x46, 0x73, 0x4a, 0xa8, 0x80, 0xbb, 0x2b, 0xae, 0x64, 0x77, + 0x32, 0x99, 0x66, 0xc0, 0x97, 0xbe, 0xbe, 0xe6, 0xdf, 0xd3, 0xaf, 0x32, + 0xf2, 0x1f, 0x54, 0xfd, 0x89, 0x20, 0xbe, 0x2c, 0x43, 0xcd, 0xae, 0xbd, + 0x3f, 0x5e, 0xef, 0xd6, 0xef, 0xf1, 0x77, 0xb7, 0x66, 0xd9, 0xd8, 0xad, + 0xf5, 0xc7, 0x6c, 0x75, 0xce, 0xd9, 0xba, 0xe1, 0x4f, 0xe9, 0xed, 0xbb, + 0xb1, 0x61, 0x8c, 0xeb, 0x5c, 0xed, 0xc5, 0x3d, 0x84, 0x96, 0x41, 0xae, + 0xaf, 0x39, 0x79, 0xea, 0xf2, 0xde, 0xef, 0xb6, 0x94, 0xd2, 0x97, 0x43, + 0xbb, 0x3f, 0xba, 0x72, 0xb3, 0x16, 0x9c, 0xd0, 0x2e, 0x8e, 0xe0, 0xc2, + 0x88, 0x20, 0xa5, 0xba, 0x2b, 0xf4, 0xe3, 0x9f, 0xae, 0x1e, 0x16, 0x9c, + 0x89, 0x96, 0x2e, 0xd4, 0xda, 0xb7, 0xca, 0x58, 0xb7, 0x02, 0xba, 0xd1, + 0x72, 0x68, 0x09, 0x5a, 0x64, 0x8b, 0x6c, 0x91, 0x2d, 0x72, 0xd8, 0x6a, + 0x0d, 0x07, 0xd1, 0xd2, 0x85, 0xd5, 0x65, 0x0c, 0x6a, 0x56, 0x47, 0x79, + 0x88, 0x92, 0x5d, 0xe5, 0x5d, 0x78, 0x53, 0xbd, 0x2b, 0xfd, 0x9a, 0x4c, + 0x97, 0x1a, 0x34, 0xd4, 0xa0, 0xa1, 0x06, 0x0d, 0x35, 0x68, 0xa8, 0x41, + 0x43, 0x8d, 0xee, 0x9f, 0xa9, 0x40, 0x83, 0x5f, 0xd4, 0xda, 0x67, 0xf3, + 0x8c, 0x9b, 0x77, 0x5c, 0x41, 0xc9, 0xb2, 0xd6, 0x77, 0xce, 0xdd, 0xb7, + 0xed, 0xfe, 0x7c, 0xae, 0x0d, 0x25, 0xc7, 0x72, 0xff, 0x03, 0x96, 0xa7, + 0xbf, 0x9e, 0xb1, 0xdc, 0x9b, 0xe3, 0xb7, 0xf7, 0x69, 0x12, 0xb7, 0xdf, + 0xff, 0xe6, 0xc6, 0xa8, 0x99, 0xcf, 0x36, 0xde, 0x6e, 0xf4, 0xd9, 0x61, + 0x74, 0xce, 0x59, 0x3f, 0xef, 0xf2, 0x72, 0xdc, 0x78, 0xbe, 0x55, 0xa3, + 0x8d, 0x16, 0xea, 0x1c, 0xec, 0x9a, 0x5c, 0x76, 0x44, 0x17, 0x9c, 0x5f, + 0x50, 0x52, 0xef, 0x9e, 0xe1, 0xf6, 0xa1, 0x34, 0x57, 0x58, 0x7e, 0xed, + 0xfe, 0x2e, 0x8a, 0x65, 0xba, 0x6b, 0x37, 0x71, 0x9c, 0x73, 0x1d, 0xc7, + 0xa6, 0x1f, 0xad, 0xb1, 0xbb, 0xba, 0xd6, 0x56, 0xdb, 0x55, 0xfd, 0x0a, + 0xc2, 0xc8, 0xa7, 0xab, 0xdb, 0xd7, 0x05, 0x54, 0xca, 0x86, 0x3b, 0xc2, + 0xad, 0x93, 0x75, 0xad, 0x2f, 0x0f, 0x7a, 0x03, 0x1b, 0x31, 0xb8, 0xb2, + 0xb1, 0x9c, 0x9a, 0xa3, 0x52, 0xe9, 0x77, 0x02, 0xe5, 0xd1, 0x66, 0x86, + 0xa6, 0x85, 0xfe, 0xce, 0xc0, 0x81, 0xb2, 0xe2, 0xd6, 0xee, 0x5b, 0xba, + 0xd3, 0x47, 0x7d, 0x0d, 0xad, 0x0c, 0x8c, 0xe4, 0x80, 0x93, 0xca, 0x5a, + 0x44, 0x31, 0xa4, 0x44, 0x2f, 0x30, 0x3d, 0x75, 0xd5, 0xb5, 0x21, 0x75, + 0xfb, 0x8d, 0xe4, 0x91, 0x73, 0x3c, 0x4f, 0x7c, 0xb2, 0x87, 0x45, 0x57, + 0x39, 0xe0, 0x36, 0x2e, 0xc4, 0xec, 0x8e, 0x2a, 0x9f, 0x3d, 0x5d, 0xdf, + 0x5e, 0x71, 0xad, 0x38, 0xa2, 0xa3, 0x7e, 0xa7, 0x1b, 0x9f, 0x14, 0x3b, + 0x50, 0x63, 0x5a, 0xec, 0x4d, 0x8d, 0xdf, 0xfa, 0xc0, 0x75, 0xbc, 0xfe, + 0x88, 0x43, 0xe9, 0xaa, 0xc5, 0xfd, 0xf7, 0x7e, 0x7e, 0x55, 0x96, 0xb2, + 0x53, 0x79, 0xb5, 0xae, 0x46, 0xa9, 0xc9, 0x61, 0x15, 0xff, 0x28, 0xf5, + 0x7d, 0x8c, 0x3f, 0x3d, 0xa1, 0x4e, 0xb9, 0x55, 0x30, 0x8d, 0x03, 0x59, + 0x80, 0xb9, 0xfa, 0x67, 0xbb, 0x66, 0x8e, 0x2f, 0x32, 0xb2, 0xb6, 0x95, + 0xb1, 0x9f, 0xd1, 0x2b, 0x15, 0x61, 0x7c, 0xbb, 0x64, 0x51, 0xff, 0xdb, + 0xd2, 0x0f, 0xfb, 0xe5, 0x78, 0xfe, 0xd2, 0xb7, 0x0f, 0x9a, 0xdd, 0x9b, + 0x2c, 0x27, 0x4d, 0x2f, 0x85, 0x65, 0x17, 0x8e, 0xf0, 0x76, 0x4f, 0xa8, + 0xa0, 0x7a, 0xeb, 0xb6, 0x7b, 0xf1, 0x68, 0x86, 0xce, 0x7f, 0x20, 0x4a, + 0x59, 0xef, 0xcf, 0xa3, 0xf3, 0x5e, 0xfd, 0xca, 0xab, 0xb2, 0x5b, 0xb3, + 0x6d, 0x37, 0x8d, 0xf9, 0xf3, 0x99, 0x54, 0x56, 0xa6, 0x75, 0x4f, 0x8b, + 0xbd, 0xc2, 0x02, 0xa8, 0x08, 0x46, 0x15, 0xa9, 0x5d, 0xb8, 0xc6, 0xa4, + 0xef, 0x9f, 0xfb, 0x41, 0x89, 0xa1, 0xd5, 0x8e, 0xe9, 0x98, 0x52, 0x1e, + 0x78, 0xc1, 0x61, 0xe1, 0x5c, 0x1a, 0x61, 0x68, 0x5a, 0x90, 0x76, 0xc9, + 0x51, 0x25, 0x58, 0x92, 0x25, 0x62, 0x20, 0x83, 0x2f, 0x4a, 0x6d, 0x87, + 0xb2, 0xd2, 0x94, 0x17, 0x5f, 0xe8, 0xc9, 0xdf, 0x14, 0xe3, 0x9e, 0x8d, + 0xc8, 0x56, 0x69, 0xfc, 0xd6, 0xb9, 0xf1, 0x22, 0x45, 0x4f, 0xaf, 0xf6, + 0x32, 0x81, 0x24, 0x1a, 0xa4, 0x56, 0x38, 0xaa, 0x94, 0xc6, 0xfc, 0xfd, + 0x85, 0x63, 0x65, 0x25, 0x8c, 0x6c, 0xa7, 0x34, 0x1e, 0x8e, 0xec, 0x78, + 0xfb, 0xc8, 0x39, 0x9f, 0xd0, 0xf3, 0x2d, 0xfe, 0x64, 0x4e, 0x9e, 0xf9, + 0xcd, 0xa3, 0x28, 0xb6, 0xaf, 0xf1, 0xc5, 0x84, 0xf6, 0x91, 0x6f, 0x6b, + 0xa2, 0xf6, 0xd4, 0x05, 0x2d, 0xa3, 0x6f, 0x55, 0x5d, 0x93, 0xfa, 0xfd, + 0x3f, 0x75, 0xe9, 0x1b, 0xff, 0x28, 0x27, 0x69, 0x73, 0xd4, 0x68, 0xe4, + 0xd2, 0xd3, 0x51, 0x03, 0x95, 0x5d, 0xab, 0xfa, 0x1a, 0x1a, 0x6b, 0xeb, + 0x15, 0xba, 0xf8, 0x99, 0xc5, 0xf4, 0xc2, 0x0b, 0x29, 0xb2, 0xf0, 0xa2, + 0x33, 0xda, 0xed, 0x76, 0xbb, 0xdd, 0x6e, 0xb7, 0xdb, 0xed, 0x76, 0x7b, + 0xdb, 0x93, 0x0f, 0x7c, 0x7d, 0x9b, 0x53, 0x1d, 0x54, 0x84, 0x66, 0x5b, + 0x9d, 0xf1, 0x43, 0xb9, 0xff, 0x86, 0x8a, 0xae, 0xa5, 0xfa, 0xa4, 0xf2, + 0x5d, 0x3f, 0x7e, 0xe3, 0x12, 0x46, 0x61, 0x6a, 0xea, 0x42, 0x8f, 0x8f, + 0x5a, 0x50, 0x10, 0xc9, 0x1d, 0x9e, 0xf4, 0xd4, 0xfd, 0x54, 0xed, 0xdb, + 0x6e, 0x95, 0xa5, 0xfe, 0xc9, 0xc8, 0xac, 0xfe, 0x2b, 0xac, 0x45, 0x30, + 0x29, 0x66, 0xb4, 0xdb, 0x6d, 0x8d, 0x99, 0x79, 0x97, 0xbf, 0x5e, 0x15, + 0x4f, 0x05, 0x49, 0xba, 0x93, 0x7b, 0x37, 0x92, 0x76, 0xbb, 0xdd, 0x16, + 0xeb, 0x61, 0xfc, 0x45, 0x77, 0xf1, 0x6a, 0x3e, 0xa9, 0x75, 0x1b, 0x75, + 0x53, 0x1b, 0xa5, 0x55, 0x6f, 0xe1, 0xab, 0x96, 0xd1, 0x0f, 0x7e, 0xcd, + 0x8b, 0x39, 0x1a, 0xf5, 0x84, 0x5f, 0x46, 0x97, 0xb8, 0xd7, 0xac, 0x9f, + 0x0e, 0xb5, 0xba, 0xa5, 0xb5, 0x86, 0xa6, 0x26, 0x7d, 0xa5, 0xae, 0xe6, + 0xa0, 0x3e, 0x7a, 0x5b, 0xa7, 0xad, 0xc3, 0x7c, 0x3a, 0x06, 0xa7, 0x6a, + 0x68, 0x1a, 0xdd, 0x43, 0x1a, 0xf2, 0x4f, 0x5f, 0xfe, 0xdb, 0xbd, 0x67, + 0x3d, 0xbd, 0xd1, 0x8c, 0xf6, 0xce, 0x61, 0xc5, 0x89, 0x9e, 0x21, 0x0d, + 0x79, 0xe2, 0x90, 0x86, 0x94, 0x62, 0x48, 0x8f, 0x04, 0xf9, 0xe4, 0xbd, + 0xf3, 0x61, 0x8b, 0xe3, 0xeb, 0x8b, 0xcd, 0x0f, 0x8d, 0xb5, 0x8c, 0xdc, + 0xc2, 0xf1, 0xe6, 0xdd, 0x9c, 0x7f, 0xc9, 0x7a, 0x50, 0xae, 0x6d, 0xf6, + 0x4d, 0x78, 0xf3, 0xee, 0x7f, 0xed, 0xf1, 0xb1, 0xe3, 0x1e, 0x60, 0x52, + 0xff, 0xe4, 0xc6, 0xc4, 0xdb, 0xfa, 0xfb, 0x07, 0xbb, 0xb6, 0x76, 0xbc, + 0x89, 0xb9, 0x3f, 0x1c, 0xff, 0x77, 0x57, 0x7e, 0xb1, 0x76, 0x7c, 0x73, + 0x53, 0x96, 0x3f, 0x7c, 0x3d, 0xcd, 0xca, 0x8b, 0xd3, 0xa7, 0x9a, 0xf6, + 0xfa, 0xb1, 0xbf, 0x9f, 0x50, 0x3f, 0xec, 0xda, 0xcf, 0xb2, 0xab, 0x6b, + 0xed, 0x11, 0x2f, 0x1d, 0x12, 0xfb, 0xf2, 0x3b, 0x6c, 0x7c, 0x63, 0x9a, + 0x7d, 0xb8, 0x5a, 0x3f, 0x5c, 0xff, 0xd5, 0x09, 0xff, 0x32, 0x65, 0x36, + 0xf8, 0x07, 0x77, 0x2a, 0x9d, 0xb7, 0x3a, 0xf8, 0xee, 0x2d, 0xfd, 0xc7, + 0x65, 0x1d, 0x9d, 0x5a, 0x59, 0x8f, 0xa7, 0xe7, 0xda, 0xd6, 0x5b, 0x6b, + 0xbf, 0x47, 0xda, 0x9f, 0x5a, 0x3d, 0x14, 0xeb, 0x5e, 0xfb, 0x33, 0x3b, + 0x93, 0xa9, 0xe7, 0xfa, 0xc6, 0xd2, 0xa4, 0xc6, 0x0c, 0x76, 0x3f, 0xf7, + 0x14, 0x1e, 0xa1, 0x1c, 0x3c, 0x81, 0xd9, 0x94, 0xc9, 0x2f, 0xd8, 0x73, + 0xf0, 0xd5, 0x1d, 0x9d, 0x38, 0x9c, 0x6d, 0x86, 0xf8, 0xe1, 0x62, 0xfa, + 0xf0, 0x47, 0xf6, 0x66, 0x8e, 0xb6, 0x3d, 0x3c, 0xff, 0xc6, 0xae, 0xc4, + 0x7e, 0x95, 0x73, 0x11, 0xd9, 0xff, 0x7e, 0x46, 0x1b, 0x95, 0xeb, 0x10, + 0xd9, 0xda, 0x71, 0xf7, 0x13, 0xc5, 0xd1, 0x1b, 0xe8, 0xcb, 0x96, 0x7a, + 0xc9, 0x97, 0xb8, 0xbe, 0x32, 0xdd, 0xdb, 0x22, 0x7c, 0xfc, 0x52, 0xc7, + 0x73, 0xfc, 0xd5, 0xaf, 0xd7, 0xcd, 0x9c, 0x72, 0xca, 0xe8, 0x7e, 0x99, + 0x7d, 0x67, 0x1f, 0x7f, 0xf9, 0xca, 0x9e, 0xf7, 0x2c, 0xdf, 0x5e, 0xb9, + 0x3c, 0x38, 0x31, 0xa0, 0xee, 0x23, 0xe3, 0x9b, 0xad, 0xc1, 0xa9, 0x61, + 0x7f, 0x6b, 0xcd, 0x58, 0x66, 0xe5, 0x95, 0x8b, 0xa2, 0xff, 0x1f, 0xc6, + 0x7c, 0xc1, 0xdf, 0xd3, 0x5f, 0x18, 0xf3, 0xdd, 0xac, 0xcb, 0x7f, 0x39, + 0x3c, 0x30, 0x18, 0x9e, 0x0c, 0xae, 0x5b, 0x73, 0x9d, 0x17, 0x3e, 0x44, + 0x77, 0xfa, 0xd0, 0x60, 0x3c, 0x78, 0xe7, 0x13, 0xbf, 0x9d, 0xca, 0x84, + 0x95, 0x9e, 0x7f, 0x78, 0x79, 0xad, 0x63, 0x56, 0xd8, 0x84, 0xd4, 0x3a, + 0xe5, 0x9b, 0x29, 0xdd, 0xe3, 0xa2, 0x67, 0x3c, 0x21, 0x8e, 0x27, 0x0c, + 0x9d, 0x4d, 0xfb, 0xfd, 0x72, 0xb0, 0x1a, 0xf4, 0x79, 0x1f, 0x78, 0x9b, + 0xb7, 0xa8, 0xd5, 0x8f, 0x8d, 0x75, 0x74, 0x76, 0x6d, 0xff, 0xe2, 0xf8, + 0xa3, 0xc7, 0xee, 0x8e, 0x8b, 0xe9, 0x33, 0x8a, 0x8e, 0x1b, 0x83, 0xbd, + 0x1f, 0x3e, 0xe7, 0xb3, 0xb6, 0xeb, 0xdd, 0x9b, 0x9f, 0x5d, 0xcc, 0x69, + 0xc6, 0x62, 0x8f, 0x5b, 0x9f, 0x77, 0xb3, 0xbe, 0xb3, 0xcf, 0x9d, 0xfc, + 0xff, 0x46, 0x5e, 0x0f, 0x70, 0xf8, 0xfb, 0xd6, 0xd7, 0x3c, 0xbc, 0x5a, + 0xce, 0xad, 0x7d, 0xcd, 0x39, 0x67, 0xfd, 0x3d, 0x97, 0x27, 0x6f, 0xfa, + 0x66, 0x76, 0xfb, 0x32, 0x82, 0xdb, 0x91, 0xdb, 0xb9, 0xc9, 0xe7, 0xee, + 0x70, 0xe2, 0x60, 0xf7, 0xb6, 0xd3, 0x43, 0xf8, 0xe2, 0xdb, 0x9a, 0xb7, + 0x6c, 0xb1, 0xed, 0xf7, 0x6f, 0xf1, 0xde, 0x7d, 0x64, 0x77, 0x07, 0xd3, + 0xa7, 0x36, 0xfc, 0xe6, 0xa6, 0x26, 0xd7, 0x3e, 0x3a, 0x86, 0x8f, 0x9d, + 0x11, 0x5d, 0x2b, 0xa3, 0x38, 0xc8, 0xc6, 0x75, 0x38, 0xfb, 0x0c, 0x99, + 0xd3, 0xb3, 0xbf, 0xce, 0xba, 0x8d, 0xa7, 0x8f, 0xed, 0xde, 0x0d, 0x36, + 0xaf, 0xa5, 0x70, 0x4c, 0xf7, 0xef, 0x7f, 0x7d, 0xab, 0xe3, 0x1b, 0x72, + 0xa0, 0xbc, 0x36, 0xc7, 0x38, 0x2c, 0xdc, 0xed, 0xef, 0x4f, 0x7e, 0xe9, + 0x06, 0xaf, 0x0f, 0x78, 0xf9, 0xe0, 0xf6, 0x8f, 0x1e, 0xea, 0xb8, 0x9b, + 0x78, 0x87, 0xdb, 0x27, 0x75, 0x55, 0xde, 0x39, 0x68, 0x15, 0xef, 0x08, + 0xf9, 0xaf, 0x1b, 0x1d, 0xfa, 0xcc, 0xcd, 0x71, 0x71, 0x00, 0xdc, 0x2e, + 0xbf, 0xc0, 0x2f, 0x73, 0x60, 0x9f, 0x73, 0xf4, 0x1f, 0x93, 0xf9, 0x0b, + 0xf6, 0x8f, 0xdb, 0xfb, 0x12, 0x3e, 0x8a, 0x83, 0x00, 0xa7, 0x1b, 0x6f, + 0x76, 0x40, 0x5c, 0xe7, 0x7f, 0x02, 0xb9, 0xf3, 0x85, 0x79, 0x6b, 0x0f, + 0x79, 0x6b, 0x79 }; /** - * Basis Universal compressed 256x256 RGBA texture source. + * Basis Universal compressed 256x256 RGBA texture source (with mipmaps). * \n * See \c testcard-rgba.png for the original. Generate using: * \code - * basisu -level 5 -max_endpoints 16128 -max_selectors 16128 -linear -y_flip + * basisu -comp_level 5 -linear -global_sel_pal -y_flip -mipmap * \endcode */ static uint8_t const srcRgba[] = { - 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0x18, 0xbe, 0x33, 0x13, 0x00, 0x00, - 0xdb, 0x65, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x73, 0x42, 0x13, 0x00, 0x4d, 0x00, 0x09, 0x5c, 0x93, 0x30, 0x00, 0x00, + 0x8e, 0xab, 0x12, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x95, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, - 0x00, 0x02, 0xdf, 0x01, 0x00, 0x00, 0x45, 0x04, 0x00, 0x24, 0x06, 0x00, - 0x00, 0xf1, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x01, 0xeb, 0x01, 0x00, 0x00, 0x4c, 0x03, 0x00, + 0x68, 0x04, 0x37, 0x05, 0x00, 0x00, 0x31, 0x10, 0x00, 0x68, 0x15, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0x15, 0x07, 0x00, 0x00, 0xfd, 0x08, - 0x00, 0x00, 0x7f, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x01, 0x40, 0x00, 0x40, 0x00, 0x12, 0x10, 0x00, 0x00, 0x6e, 0x03, 0x00, - 0x00, 0xec, 0xdf, 0x20, 0x40, 0x04, 0x80, 0x41, 0x10, 0x84, 0x82, 0xe8, - 0xbb, 0xaf, 0x62, 0x94, 0x06, 0xcd, 0x35, 0xc8, 0x94, 0x03, 0x01, 0x1e, - 0x40, 0x0c, 0x83, 0x20, 0x0c, 0xec, 0x03, 0xb5, 0x38, 0x9d, 0x40, 0x9c, - 0x84, 0x21, 0x1c, 0x08, 0xf0, 0x80, 0x61, 0x18, 0x84, 0x61, 0x58, 0xdc, - 0xc3, 0x02, 0x74, 0xd3, 0x2a, 0xd1, 0x4b, 0x0e, 0x02, 0x10, 0x01, 0x00, - 0x00, 0x00, 0x41, 0x10, 0x04, 0xe6, 0xcb, 0x54, 0xfa, 0x1c, 0xa4, 0xd6, - 0x60, 0xea, 0x40, 0x4c, 0xe7, 0x0e, 0xc1, 0x73, 0x65, 0x0c, 0x17, 0x35, - 0x02, 0xce, 0xc1, 0xf5, 0x45, 0x10, 0x93, 0xc1, 0x02, 0x80, 0x59, 0x00, - 0x52, 0x87, 0x70, 0xe8, 0x64, 0x90, 0x9a, 0xb0, 0x0d, 0x1c, 0x70, 0x6c, - 0x83, 0xff, 0x17, 0xcf, 0x15, 0x04, 0x96, 0xe9, 0x14, 0xb6, 0xbd, 0xe3, - 0xc1, 0x5e, 0x00, 0xe0, 0xba, 0xf1, 0xf4, 0x04, 0x00, 0x77, 0xc3, 0x00, - 0xd3, 0x8a, 0x3d, 0x00, 0x63, 0x5b, 0x7b, 0x24, 0x42, 0x8f, 0x71, 0x63, - 0xc0, 0x00, 0x58, 0xd3, 0xeb, 0x86, 0xa9, 0x19, 0x44, 0xf4, 0x75, 0xc8, - 0xdf, 0xf4, 0xf0, 0xae, 0x7d, 0xd8, 0xfd, 0x4d, 0x99, 0x9d, 0xf7, 0xf3, - 0x8e, 0xcf, 0x6b, 0xa6, 0xb3, 0x86, 0xed, 0x3b, 0x1f, 0xa2, 0xd7, 0x93, - 0x31, 0xee, 0xb0, 0xda, 0xba, 0x07, 0xad, 0xb5, 0x2b, 0xef, 0x2f, 0x1f, - 0xbc, 0xdd, 0x7d, 0x25, 0x5f, 0x47, 0x44, 0x24, 0xee, 0xfe, 0xaf, 0xeb, - 0x9a, 0xed, 0x96, 0x52, 0x16, 0x42, 0xb0, 0xf7, 0x4e, 0x4a, 0x69, 0xb5, - 0x56, 0x73, 0xce, 0xe6, 0x9c, 0xb5, 0xdd, 0xbd, 0x77, 0x6a, 0xad, 0x89, - 0x31, 0x9e, 0xbb, 0x47, 0x55, 0x67, 0x66, 0x12, 0xd1, 0xcb, 0x39, 0x07, - 0x80, 0x11, 0xe1, 0xb6, 0x6d, 0x57, 0x4a, 0xa9, 0x99, 0xd9, 0xa6, 0xff, - 0x4d, 0xe3, 0xf5, 0x79, 0xce, 0x2c, 0x7d, 0xcb, 0xa7, 0x00, 0x02, 0x14, - 0x4b, 0x7f, 0x6c, 0x9e, 0xdb, 0xf1, 0x1a, 0x9a, 0x7f, 0x11, 0x34, 0x63, - 0x14, 0x63, 0x54, 0xca, 0x4f, 0xfe, 0xc2, 0x1c, 0xda, 0xb9, 0x3c, 0x68, - 0xaa, 0x0a, 0xc9, 0x53, 0x66, 0x5e, 0xd0, 0xdd, 0x14, 0xf4, 0xc2, 0xff, - 0x07, 0x9f, 0x22, 0x62, 0x55, 0x57, 0x45, 0x68, 0x02, 0x48, 0x07, 0x10, - 0x91, 0x12, 0x22, 0x40, 0xeb, 0x54, 0x24, 0x94, 0x19, 0xb3, 0x98, 0x3a, - 0xce, 0x93, 0x8f, 0xe6, 0xb4, 0x4a, 0xe7, 0x9e, 0x98, 0xcb, 0xa6, 0x21, - 0x15, 0xeb, 0xfe, 0xc7, 0xb9, 0xa7, 0xa5, 0x8a, 0xc7, 0xf4, 0xe6, 0xef, - 0x9a, 0xca, 0xec, 0x71, 0xff, 0x13, 0xc4, 0xf3, 0x81, 0x05, 0x31, 0xe8, - 0x07, 0x26, 0x0f, 0xa8, 0xa5, 0x65, 0x19, 0x00, 0xf0, 0xdf, 0xf3, 0x9e, - 0xf7, 0x9c, 0xf9, 0xee, 0xf1, 0xd3, 0xde, 0xb9, 0x9d, 0x19, 0xae, 0x36, - 0xc4, 0xe7, 0x70, 0xad, 0xab, 0x4d, 0x72, 0xcc, 0x16, 0x1a, 0x42, 0xcf, - 0x98, 0xd0, 0x60, 0x2e, 0x8e, 0xa0, 0xe0, 0x26, 0x98, 0xca, 0x85, 0xbb, - 0x12, 0x6c, 0xff, 0x26, 0x22, 0x53, 0x4c, 0x70, 0xa6, 0x8c, 0x20, 0x82, - 0xce, 0xc2, 0x91, 0xb2, 0x8d, 0x8b, 0x16, 0x05, 0xb3, 0xf8, 0x08, 0x23, - 0x6a, 0x36, 0x42, 0x8b, 0x16, 0x6d, 0x86, 0x8a, 0xa8, 0xdd, 0xfc, 0x01, - 0x3d, 0x3c, 0xfc, 0xfc, 0x54, 0xd3, 0x74, 0x3a, 0xd1, 0x5a, 0x6b, 0xd3, - 0xa4, 0x6e, 0x35, 0x6c, 0xc6, 0xa9, 0xb6, 0x69, 0x68, 0x75, 0x18, 0x37, - 0x6c, 0x6c, 0x9d, 0xc8, 0xfd, 0xb2, 0x52, 0x25, 0x76, 0xe9, 0xfd, 0xee, - 0xa8, 0x33, 0x25, 0x24, 0x3d, 0x35, 0x4c, 0x90, 0x54, 0x9c, 0xc2, 0xcc, - 0xdc, 0x29, 0x08, 0x0c, 0x10, 0x34, 0x9c, 0xa0, 0x06, 0x0a, 0x84, 0x2a, - 0x8c, 0xc1, 0xb4, 0xa4, 0xad, 0xe8, 0x68, 0x98, 0x03, 0x8f, 0x14, 0x4d, - 0x8d, 0x26, 0x64, 0x0b, 0x67, 0x43, 0x55, 0x45, 0xa0, 0x10, 0x86, 0xaa, - 0x6c, 0x2c, 0xdc, 0x1b, 0x82, 0x43, 0xf0, 0x31, 0xea, 0x39, 0xde, 0x6d, - 0xb4, 0x77, 0x39, 0xda, 0xb3, 0x4e, 0x0e, 0x89, 0xdb, 0xdc, 0x86, 0x7b, - 0xb8, 0x80, 0x35, 0x3e, 0xc0, 0x42, 0x20, 0x24, 0x3a, 0x99, 0xf6, 0x9d, - 0x9d, 0x14, 0x08, 0x0d, 0xe7, 0x51, 0x50, 0x8f, 0x39, 0x3e, 0xe6, 0xc2, - 0x29, 0xf1, 0x30, 0x51, 0x26, 0x34, 0x6c, 0xe0, 0x33, 0x1c, 0x5d, 0xe2, - 0xb8, 0xa2, 0x20, 0x40, 0x68, 0xc2, 0x92, 0xd3, 0x0b, 0x3c, 0x1c, 0xbc, - 0x7d, 0x15, 0x5a, 0x93, 0x0e, 0x32, 0x5b, 0xcf, 0x36, 0xb5, 0xc6, 0x41, - 0xd2, 0x7a, 0x76, 0x69, 0x4a, 0x1a, 0x74, 0x26, 0x4c, 0x49, 0xc3, 0x27, - 0x09, 0x0a, 0x01, 0x41, 0xc0, 0x40, 0x69, 0x38, 0x11, 0x06, 0x22, 0x44, - 0x39, 0x25, 0xae, 0xb2, 0x44, 0x79, 0x5e, 0x31, 0x05, 0x6b, 0x2a, 0xd4, - 0x12, 0x54, 0x0c, 0x18, 0x44, 0xa9, 0xa8, 0x95, 0x35, 0x31, 0x29, 0x9e, - 0x2f, 0x58, 0xb2, 0x87, 0x44, 0x47, 0x26, 0xfa, 0x5e, 0xba, 0x6e, 0x9a, - 0x9a, 0x7b, 0x07, 0xe4, 0x5b, 0xf8, 0x99, 0x85, 0xf0, 0x01, 0xd6, 0x68, - 0x4b, 0x72, 0xcd, 0xfe, 0x88, 0x4f, 0x1a, 0xf9, 0x12, 0xb1, 0x26, 0x0e, - 0xac, 0xae, 0x73, 0xae, 0x12, 0x4f, 0x71, 0x1b, 0x6e, 0x73, 0x0f, 0x2f, - 0xce, 0x56, 0x9b, 0x14, 0xb5, 0xa5, 0x9a, 0xf3, 0x4a, 0xf6, 0x7b, 0xbb, - 0xa6, 0xf4, 0x69, 0xbe, 0xf4, 0xe5, 0x09, 0x1d, 0x12, 0xd7, 0xe9, 0x55, - 0xaa, 0x64, 0x97, 0xfd, 0x80, 0xc6, 0x8c, 0xfe, 0x38, 0x3b, 0xfa, 0xef, - 0xf4, 0x9d, 0xe8, 0x69, 0x95, 0xea, 0x6a, 0x9f, 0x4e, 0x5a, 0x9b, 0x2a, - 0x36, 0xd3, 0xd4, 0x26, 0x6d, 0x9a, 0xa8, 0xb5, 0x19, 0x86, 0x56, 0x87, - 0xba, 0xdd, 0x70, 0xba, 0x19, 0x31, 0x9c, 0x0c, 0x83, 0x56, 0x87, 0x36, - 0xb1, 0xd9, 0x1a, 0x6d, 0x56, 0xe1, 0x54, 0xb4, 0x14, 0x5a, 0x54, 0x4d, - 0x79, 0x04, 0xb1, 0x43, 0x47, 0xc3, 0xcb, 0x28, 0x58, 0xb1, 0x2f, 0xb4, - 0x33, 0x34, 0x3a, 0x12, 0x26, 0x54, 0xb2, 0x62, 0x2b, 0x3b, 0x3d, 0x5b, - 0x87, 0x64, 0xa6, 0x65, 0x37, 0xe9, 0xad, 0x99, 0x6d, 0x6c, 0xde, 0x39, - 0xbc, 0x82, 0x5a, 0xa1, 0xd6, 0x5a, 0xa1, 0xee, 0x22, 0x2a, 0x96, 0xd8, - 0xc9, 0x6c, 0x68, 0x4b, 0x5a, 0x6b, 0x8d, 0x65, 0x43, 0xcb, 0xb4, 0xc3, - 0x92, 0x0b, 0x4b, 0x12, 0x48, 0x74, 0x66, 0x66, 0x90, 0x9d, 0xde, 0xcd, - 0xcc, 0x02, 0x65, 0x66, 0xc1, 0xcc, 0x6c, 0xde, 0x6e, 0xb7, 0x5b, 0x23, - 0xa3, 0x11, 0x46, 0x23, 0x8c, 0xe3, 0x68, 0x14, 0x71, 0xb4, 0xa4, 0x1e, - 0x6a, 0xf5, 0xfe, 0xa1, 0xa2, 0x8e, 0x0f, 0x59, 0x17, 0x58, 0x7c, 0x08, - 0x04, 0x4a, 0x47, 0xa2, 0x4b, 0x52, 0xb6, 0xd6, 0x9a, 0x5a, 0x55, 0x14, - 0xb1, 0x14, 0x0c, 0x50, 0x82, 0xa0, 0x0a, 0x8f, 0x16, 0xae, 0x40, 0x10, - 0x85, 0x13, 0xfc, 0xb3, 0x60, 0xc7, 0xd7, 0x1b, 0x9b, 0x14, 0xb8, 0xf5, - 0x62, 0xcf, 0x7d, 0x95, 0xde, 0x69, 0x3d, 0x1f, 0xca, 0x9e, 0x71, 0xb7, - 0x48, 0xcb, 0xa2, 0xc5, 0x62, 0xdf, 0x44, 0xae, 0x22, 0x6e, 0x14, 0xe5, - 0x5a, 0xab, 0xe6, 0x11, 0x89, 0x8e, 0xd9, 0x28, 0x1c, 0x59, 0x04, 0x25, - 0xfe, 0x90, 0xe4, 0x47, 0x18, 0x41, 0xa2, 0xa3, 0xbf, 0x47, 0x9e, 0x25, - 0x99, 0x54, 0x0c, 0xe4, 0xcd, 0x9e, 0xd9, 0xff, 0x8b, 0xeb, 0xd7, 0x6a, - 0x1d, 0x86, 0xe1, 0x19, 0xb5, 0x5d, 0x2b, 0xca, 0x8d, 0xe0, 0x1b, 0x1c, - 0x4e, 0xcb, 0xd1, 0x0f, 0x73, 0x38, 0x4e, 0x63, 0xdb, 0x1d, 0x96, 0xcb, - 0xb1, 0x55, 0xa7, 0xd7, 0x1e, 0x64, 0x7b, 0xf9, 0xbc, 0xf3, 0x97, 0x58, - 0xbc, 0x60, 0x35, 0x1c, 0xae, 0x54, 0x5e, 0x38, 0x1e, 0x76, 0x35, 0x8e, - 0xe6, 0x5e, 0x4a, 0xbe, 0xfe, 0x26, 0xb7, 0xdc, 0x12, 0x4f, 0x3e, 0xb9, - 0x97, 0x57, 0xf1, 0xea, 0x4f, 0x4a, 0xc1, 0x2b, 0x4a, 0x79, 0xf7, 0x63, - 0xe5, 0x6e, 0x94, 0xa5, 0x5c, 0x44, 0x13, 0xda, 0x5e, 0x7b, 0x3f, 0xbd, - 0x94, 0xe2, 0x36, 0x15, 0x2b, 0xd4, 0x3d, 0x27, 0xd9, 0x4d, 0x2d, 0xa1, - 0x93, 0x1a, 0xf3, 0xbe, 0xcf, 0x32, 0xbf, 0x97, 0xb6, 0x5b, 0xb6, 0x23, - 0xe3, 0xc8, 0x68, 0x81, 0x81, 0x80, 0x81, 0xa8, 0x14, 0x02, 0xa1, 0x12, - 0x23, 0xcb, 0x49, 0xc4, 0x56, 0xac, 0xaa, 0xb2, 0x6a, 0xa2, 0x0e, 0x05, - 0x82, 0x05, 0xf5, 0xd9, 0x69, 0x38, 0x9b, 0xe7, 0x6c, 0xab, 0x92, 0xdd, - 0x9b, 0xaf, 0xe7, 0x2d, 0xb7, 0xf8, 0xdb, 0xca, 0xe9, 0x81, 0xcd, 0x53, - 0xe2, 0xc6, 0xa3, 0x8c, 0x11, 0x65, 0xf4, 0xa9, 0xba, 0xe5, 0xc1, 0xf3, - 0xce, 0x5f, 0x5e, 0x70, 0x69, 0x58, 0x79, 0xc1, 0xb8, 0x79, 0xe5, 0xdb, - 0x97, 0x5d, 0x36, 0x2e, 0x97, 0xbf, 0xda, 0x95, 0xe2, 0x5c, 0x3b, 0x97, - 0x3b, 0xa4, 0x4a, 0x5d, 0xe6, 0xfe, 0x10, 0xee, 0x58, 0xba, 0x7e, 0x73, - 0x32, 0x9d, 0x7d, 0xc4, 0x6b, 0x69, 0xdf, 0x77, 0x5e, 0x76, 0x55, 0xb9, - 0x72, 0x6c, 0xfc, 0xdc, 0xa7, 0x3d, 0x36, 0x3d, 0x71, 0x91, 0x8b, 0x47, - 0x47, 0x47, 0xda, 0x34, 0x69, 0x7d, 0xf6, 0xf4, 0x62, 0x21, 0x5f, 0xe3, - 0x60, 0xd4, 0xce, 0xae, 0x98, 0x6e, 0x5e, 0x57, 0xab, 0xff, 0x9f, 0x8c, - 0xb3, 0x93, 0x8f, 0x6e, 0x0c, 0xd3, 0xa5, 0x56, 0x4f, 0x5f, 0x3b, 0x0c, - 0xe6, 0xf1, 0x64, 0xb1, 0x58, 0xc4, 0x3c, 0xf5, 0xb2, 0x9b, 0xeb, 0xd9, - 0x77, 0x69, 0xee, 0x67, 0xf3, 0xe3, 0xfa, 0x6f, 0x17, 0x47, 0xea, 0x77, - 0xfe, 0xe5, 0x3f, 0x0f, 0x3e, 0xbd, 0x7e, 0xee, 0x6b, 0xaf, 0x4e, 0x7a, - 0xc7, 0x96, 0xe9, 0xa4, 0x53, 0xf4, 0x83, 0x05, 0x16, 0x3c, 0x81, 0x2c, - 0xcc, 0x43, 0x61, 0x50, 0x4a, 0x29, 0x06, 0x62, 0x6d, 0x81, 0x38, 0xfa, - 0x50, 0xf9, 0xd1, 0xfa, 0x70, 0x98, 0x0c, 0xa6, 0xe9, 0x8b, 0x31, 0x1c, - 0xeb, 0xf3, 0x33, 0xc6, 0x8b, 0xfc, 0xfc, 0xae, 0x55, 0x3c, 0xe6, 0xc2, - 0xe7, 0x1f, 0x17, 0xeb, 0x87, 0x5c, 0xf5, 0xb2, 0x39, 0xfd, 0x72, 0x6a, - 0x6d, 0xfa, 0xcb, 0x9f, 0x7e, 0x70, 0xf5, 0x8e, 0xcd, 0x46, 0xd2, 0x2e, - 0x6c, 0xfe, 0x27, 0x16, 0x2e, 0x7f, 0xe9, 0x5b, 0x5a, 0xde, 0xf7, 0x8f, - 0xc3, 0x4e, 0x6b, 0xad, 0x7d, 0xd5, 0x03, 0x0f, 0xac, 0x8e, 0x8e, 0xcf, - 0xd6, 0xac, 0x2d, 0xcf, 0x7f, 0x76, 0xb3, 0xd9, 0x6c, 0xee, 0xff, 0xfa, - 0xd2, 0xcd, 0x37, 0x0e, 0x87, 0x37, 0xde, 0xba, 0xd7, 0x7e, 0x7f, 0xf8, - 0xc5, 0x5f, 0xbf, 0xf2, 0x36, 0xee, 0x70, 0x07, 0x6f, 0x5b, 0x2c, 0x9e, - 0x2b, 0x94, 0xf2, 0xec, 0xf6, 0x0b, 0xbf, 0xfd, 0xe9, 0x7b, 0xbf, 0x31, - 0x7c, 0xff, 0xef, 0xeb, 0xd3, 0x3f, 0xfb, 0xe6, 0x5b, 0x7f, 0x5c, 0x03, - 0x01, 0x41, 0xdc, 0x01, 0x8d, 0xa4, 0x8a, 0xe3, 0xf8, 0x27, 0xce, 0x13, - 0x0e, 0x32, 0xb0, 0xf3, 0xdd, 0x1f, 0x43, 0x0a, 0xef, 0x90, 0xab, 0x6c, - 0x03, 0x49, 0x48, 0xe3, 0x31, 0x4f, 0xbc, 0x13, 0x8b, 0xb4, 0x43, 0xaa, - 0x30, 0xc4, 0xe6, 0xda, 0x2c, 0xeb, 0xb1, 0x76, 0xdb, 0x8b, 0x90, 0xff, - 0xc2, 0xce, 0xee, 0x62, 0x2c, 0x4e, 0xee, 0x61, 0x22, 0x08, 0x59, 0xd8, - 0x7b, 0xc6, 0x94, 0x4b, 0xb0, 0xba, 0x76, 0x35, 0x81, 0x6d, 0x06, 0xe6, - 0x57, 0x09, 0xc4, 0x81, 0xd8, 0x38, 0xca, 0x30, 0x0c, 0xfb, 0xf9, 0xfe, - 0x99, 0x9d, 0xf1, 0xac, 0x77, 0x8d, 0x37, 0x8b, 0x82, 0x94, 0x04, 0x84, - 0xd2, 0x20, 0x9a, 0x94, 0x08, 0x44, 0x41, 0x87, 0x48, 0x07, 0x12, 0x15, - 0x47, 0x83, 0x14, 0x05, 0xd7, 0x08, 0x24, 0x93, 0x73, 0x0f, 0xef, 0x31, - 0x9e, 0xeb, 0x7f, 0xdf, 0x20, 0x21, 0x1e, 0xdd, 0xda, 0x9a, 0xd6, 0x75, - 0x3c, 0xf6, 0x80, 0x15, 0x60, 0x03, 0xd8, 0x0b, 0x5e, 0xb1, 0x08, 0xac, - 0x01, 0x11, 0x2b, 0xc0, 0x1e, 0xb0, 0x01, 0x2c, 0x04, 0x6f, 0x60, 0x39, - 0x58, 0x01, 0x3a, 0x1a, 0x4b, 0xc0, 0x4b, 0xa2, 0x51, 0xa3, 0x7f, 0x98, - 0x78, 0x43, 0x10, 0xa3, 0x89, 0xe3, 0x8d, 0xfe, 0x0b, 0x4a, 0xe8, 0x21, - 0xa1, 0x91, 0xef, 0xe7, 0xf7, 0x3c, 0xcf, 0x5a, 0xcf, 0xfb, 0x2e, 0xce, - 0xd9, 0x7b, 0xe5, 0xbc, 0xfb, 0x9c, 0xc0, 0x0c, 0xe1, 0x30, 0x03, 0x73, - 0x36, 0xcc, 0x0c, 0xf7, 0x61, 0x98, 0xc3, 0xc0, 0x7c, 0x79, 0x80, 0x07, - 0x00, 0xa2, 0x20, 0x0c, 0x45, 0xdf, 0xd3, 0x2d, 0xa7, 0x7e, 0x73, 0x18, - 0xe9, 0x30, 0x30, 0x35, 0x08, 0xbb, 0xa4, 0x3b, 0xc4, 0x93, 0xc5, 0x07, - 0x02, 0xf6, 0xcb, 0x0c, 0x53, 0x19, 0xad, 0x5e, 0x72, 0x60, 0xbf, 0x5b, - 0xb1, 0x17, 0x1f, 0xf9, 0x01, 0x45, 0x5e, 0xd8, 0xac, 0x86, 0x89, 0x79, - 0x58, 0x8b, 0x34, 0xcb, 0x07, 0x99, 0xfc, 0x66, 0xb7, 0xc2, 0x4b, 0x2c, - 0xf6, 0x63, 0x4d, 0xe7, 0x40, 0x18, 0x18, 0x18, 0xf1, 0x49, 0xbb, 0xf6, - 0x43, 0xf8, 0xd8, 0x1d, 0xf8, 0x51, 0x16, 0x9f, 0xfe, 0xf8, 0x0f, 0x93, - 0x66, 0xbf, 0x8a, 0x8f, 0xb8, 0xda, 0xfa, 0x28, 0x67, 0x59, 0x7c, 0x74, - 0x7e, 0xf5, 0x65, 0xb9, 0x8a, 0x69, 0x6c, 0x99, 0x96, 0xc0, 0xab, 0x2e, - 0x17, 0x57, 0x38, 0x7e, 0xc6, 0x95, 0x3e, 0xed, 0x58, 0xd5, 0xea, 0x16, - 0x59, 0xa8, 0x9d, 0x23, 0xa9, 0xfc, 0xf4, 0x47, 0xfe, 0xc1, 0xe7, 0xbe, - 0x57, 0xf8, 0x60, 0x71, 0xaf, 0xcc, 0xaf, 0xf1, 0xa7, 0xb7, 0xd7, 0xd7, - 0x9d, 0x2a, 0x1d, 0x60, 0x11, 0x9c, 0x2d, 0x4f, 0x65, 0xea, 0xa8, 0x7f, - 0x7f, 0x2a, 0x35, 0x7b, 0xda, 0x28, 0x81, 0x27, 0xad, 0x6d, 0x59, 0xfb, - 0xbf, 0xfa, 0xda, 0x2d, 0x35, 0xab, 0xda, 0xb3, 0x6f, 0xc2, 0x43, 0x6a, - 0x58, 0x2c, 0x8b, 0x5f, 0x22, 0xe7, 0xbe, 0xc6, 0xd6, 0xf6, 0x0f, 0xf8, - 0x1a, 0x23, 0x32, 0x2a, 0xe5, 0x1c, 0xb2, 0x5c, 0x28, 0x67, 0x29, 0x67, - 0x29, 0x97, 0x19, 0x95, 0x72, 0xde, 0x2e, 0xd6, 0xbd, 0xbf, 0xc7, 0x77, - 0x88, 0xa7, 0x19, 0x8d, 0x3c, 0xaf, 0x77, 0x7d, 0xea, 0x80, 0x0b, 0x76, - 0xce, 0x6f, 0xfe, 0xf6, 0x74, 0x2f, 0xe8, 0xea, 0x44, 0xdd, 0xb9, 0xf3, - 0x6d, 0x7f, 0x77, 0x9e, 0x89, 0xfd, 0xfb, 0xcf, 0x9c, 0xb8, 0xdd, 0x44, - 0x69, 0x64, 0x44, 0x1a, 0x19, 0x91, 0x46, 0x46, 0x34, 0xdf, 0x72, 0x77, - 0xa9, 0xbe, 0x34, 0xb2, 0x4b, 0xb7, 0x02, 0x58, 0x37, 0x1f, 0xff, 0x85, - 0x7f, 0x7b, 0x91, 0xe3, 0xc3, 0x7f, 0x38, 0xdc, 0x64, 0x5b, 0x3d, 0xc6, - 0x6c, 0x4c, 0x6a, 0x3c, 0xe4, 0xc0, 0x89, 0xdd, 0x04, 0x48, 0xb6, 0xc3, - 0x0e, 0x0f, 0xc3, 0x66, 0x95, 0xe9, 0x4c, 0x5f, 0x74, 0xff, 0x3a, 0xf8, - 0xfc, 0x9b, 0x59, 0xf9, 0xcc, 0xe7, 0xbe, 0x54, 0x00, 0xdf, 0xdd, 0xf5, - 0xc7, 0xf3, 0x33, 0xac, 0x8f, 0x4f, 0xfd, 0x7e, 0x66, 0x04, 0x3b, 0x0c, - 0xec, 0xb6, 0xcd, 0xe6, 0xdf, 0x3f, 0xef, 0x25, 0x9b, 0xfc, 0x46, 0x73, - 0xdb, 0x0b, 0xf8, 0x72, 0x3b, 0x65, 0xd0, 0xec, 0xc4, 0x30, 0x7d, 0xa1, - 0x37, 0xdb, 0xac, 0x2f, 0x50, 0x45, 0xa0, 0x2f, 0xec, 0xf0, 0x20, 0x0c, - 0x84, 0x1d, 0x1e, 0x9e, 0x35, 0x50, 0x4a, 0x2f, 0x77, 0xf9, 0x7c, 0x03, - 0xf1, 0x96, 0xbb, 0x5f, 0xde, 0xce, 0x44, 0xe5, 0x0a, 0xd8, 0x0e, 0x66, - 0x34, 0xd3, 0x62, 0x7c, 0xe0, 0x71, 0xa9, 0x5f, 0xf4, 0x9b, 0x3c, 0x92, - 0x03, 0x9f, 0x02, 0x09, 0xbb, 0x94, 0xa3, 0xff, 0x66, 0x21, 0x1b, 0xfa, - 0x6a, 0x89, 0x79, 0xbd, 0xe4, 0x09, 0x16, 0xc1, 0xd1, 0xb6, 0xbc, 0xfb, - 0xbf, 0x72, 0x78, 0x7b, 0x73, 0xf4, 0x95, 0x7e, 0xad, 0x49, 0x03, 0x5b, - 0xb9, 0xc2, 0x87, 0xfa, 0x09, 0x24, 0x2c, 0xf8, 0xf8, 0x7b, 0xd8, 0xbc, - 0x8f, 0x33, 0xe6, 0x57, 0x9b, 0x0c, 0xce, 0xfa, 0x4d, 0xcf, 0x25, 0x30, - 0x5f, 0x39, 0x5c, 0xf4, 0xca, 0x8c, 0x46, 0xb0, 0x60, 0x60, 0x99, 0x04, - 0xeb, 0x3f, 0xd9, 0xcf, 0x93, 0xbf, 0x2a, 0x77, 0x70, 0x21, 0x52, 0xb3, - 0x5d, 0x79, 0x59, 0x37, 0xbb, 0x45, 0x6d, 0x6a, 0x67, 0xdd, 0x28, 0xa8, - 0x2f, 0x2c, 0xf8, 0x10, 0x06, 0xc2, 0x82, 0x8f, 0x3a, 0x53, 0xca, 0xe9, - 0x70, 0xb1, 0xd1, 0x5c, 0xc5, 0x45, 0x27, 0x76, 0xc0, 0xce, 0x0f, 0x4d, - 0xde, 0x6e, 0x66, 0x35, 0x7d, 0x52, 0x2f, 0x8d, 0xf4, 0x12, 0x2e, 0x30, - 0xb0, 0x34, 0x89, 0xfe, 0x6e, 0xa1, 0x37, 0xeb, 0xa5, 0x9f, 0x76, 0xe9, - 0x93, 0x68, 0x28, 0x0c, 0x5e, 0x0c, 0x7c, 0xdd, 0xc3, 0x8b, 0xb9, 0x4b, - 0x1e, 0x0e, 0x63, 0x1d, 0x98, 0x6c, 0x01, 0x73, 0x3f, 0x81, 0x5b, 0x2f, - 0x06, 0x90, 0x87, 0x39, 0x46, 0xd9, 0xf9, 0x2f, 0xbd, 0xe1, 0x3f, 0x6f, - 0xcf, 0x67, 0x2f, 0xeb, 0x88, 0xb0, 0x21, 0x7e, 0xbd, 0xd9, 0x7f, 0xd9, - 0xfb, 0x52, 0xf3, 0x24, 0xa4, 0xea, 0xa9, 0x41, 0x6a, 0xd0, 0xe7, 0xbf, - 0x78, 0xab, 0xe6, 0x0f, 0x70, 0xaa, 0x23, 0x16, 0xb7, 0x09, 0x35, 0xf3, - 0x8f, 0x87, 0x29, 0x03, 0x54, 0x37, 0x04, 0x35, 0xf2, 0x04, 0x08, 0x2f, - 0x02, 0xea, 0x46, 0x41, 0x8d, 0x82, 0xe5, 0xb7, 0xd3, 0x0e, 0x87, 0x7e, - 0xd6, 0xc0, 0xb1, 0xf6, 0xec, 0x94, 0x35, 0x50, 0xbc, 0xa0, 0xfb, 0xff, - 0x2a, 0xc1, 0xb0, 0x44, 0x0f, 0x9b, 0xc0, 0x5d, 0x45, 0xa9, 0x04, 0x8b, - 0x37, 0xc8, 0x1c, 0xdf, 0x89, 0x06, 0x7e, 0x81, 0x5e, 0x9f, 0x8e, 0xc7, - 0x36, 0x95, 0x00, 0xe5, 0x19, 0x22, 0x32, 0xec, 0xfe, 0x48, 0xf4, 0xba, - 0x53, 0xe2, 0xef, 0xef, 0xe3, 0xef, 0xa0, 0xe3, 0x6f, 0xb9, 0xd3, 0x9c, - 0xd9, 0x63, 0x67, 0x1d, 0x77, 0x4e, 0xff, 0xe9, 0x82, 0x31, 0xe6, 0x8c, - 0x8e, 0xc9, 0x69, 0xc0, 0x9d, 0x49, 0x74, 0x08, 0x2c, 0x81, 0xad, 0xb1, - 0xc3, 0x43, 0x1e, 0x4f, 0x91, 0xaa, 0x04, 0xd2, 0xe1, 0xcd, 0x99, 0xf9, - 0x4d, 0xfb, 0x90, 0x19, 0x73, 0x93, 0xf4, 0xba, 0xe9, 0x35, 0x7b, 0x09, - 0x0d, 0x49, 0x34, 0x3d, 0x8d, 0x8d, 0x8f, 0xdd, 0xce, 0x34, 0xd6, 0xbd, - 0x2a, 0x73, 0x8c, 0x45, 0xcb, 0x98, 0xfe, 0xa3, 0x4b, 0x25, 0xa5, 0x94, - 0x12, 0xce, 0x2a, 0x52, 0x4d, 0x48, 0xcf, 0x2e, 0xff, 0x16, 0xc1, 0xbc, - 0xc6, 0x49, 0xcc, 0x71, 0x5d, 0x35, 0x67, 0x93, 0xaa, 0x2a, 0x01, 0xaa, - 0x2b, 0x41, 0x75, 0x15, 0x7f, 0x8d, 0x1c, 0x13, 0xdd, 0x49, 0x41, 0x6d, - 0xd7, 0xb5, 0x69, 0x8e, 0x55, 0xfc, 0x59, 0x5b, 0xa2, 0x6d, 0x99, 0xfd, - 0x5a, 0xba, 0xb6, 0xa3, 0x2d, 0xad, 0xa2, 0x08, 0x3b, 0x3c, 0xd4, 0x59, - 0x41, 0x55, 0x35, 0x13, 0x74, 0x9f, 0xe7, 0xd8, 0xd8, 0x01, 0xf5, 0xe5, - 0x88, 0xf4, 0x40, 0x83, 0x78, 0xe1, 0x7c, 0xa5, 0x61, 0x42, 0x2a, 0x63, - 0x6d, 0x4d, 0x24, 0x8d, 0x0d, 0xe9, 0xba, 0xc1, 0xe4, 0x9a, 0x4a, 0xce, - 0x6d, 0xa4, 0x7b, 0x74, 0x29, 0x0b, 0xc0, 0xae, 0x9b, 0x3c, 0xa8, 0x18, - 0xed, 0x55, 0xd4, 0xe6, 0xef, 0x40, 0x52, 0x3b, 0x7e, 0xfa, 0xa9, 0x7a, - 0x8d, 0x6a, 0x26, 0xc8, 0x5d, 0x8a, 0xd4, 0xee, 0x87, 0x70, 0xea, 0x9c, - 0xcc, 0xfc, 0x3c, 0x7e, 0x9d, 0x3a, 0xba, 0xd9, 0xe0, 0x9e, 0xb6, 0x68, - 0x3b, 0xb7, 0xd1, 0x74, 0x64, 0xda, 0x0e, 0x25, 0x4d, 0x67, 0x13, 0x4a, - 0x57, 0x93, 0x4a, 0xc7, 0xad, 0xab, 0xe8, 0x88, 0x08, 0x39, 0xc7, 0x43, - 0xee, 0x52, 0xa4, 0x51, 0x80, 0xb4, 0x6a, 0xfd, 0x81, 0xdf, 0xaf, 0x26, - 0x9b, 0x30, 0xc6, 0x0e, 0xee, 0x3c, 0x6c, 0x72, 0xd0, 0x92, 0xa3, 0x56, - 0x72, 0xe4, 0x31, 0x29, 0x75, 0xfb, 0xc9, 0x48, 0x5d, 0xe2, 0x75, 0x6a, - 0x49, 0xb7, 0x2a, 0x29, 0x39, 0x6f, 0x91, 0x6a, 0x42, 0x2a, 0xc0, 0x21, - 0xb2, 0xa9, 0x69, 0xb1, 0xce, 0xf7, 0x3a, 0x50, 0xa8, 0x2d, 0x04, 0x75, - 0x26, 0x28, 0xb7, 0x45, 0x6d, 0x70, 0x7c, 0xee, 0x68, 0x95, 0xee, 0xda, - 0xc1, 0x6a, 0x70, 0x37, 0x68, 0xe9, 0xda, 0x44, 0xf7, 0xf7, 0x40, 0xa9, - 0x25, 0xb5, 0x3d, 0xda, 0x9e, 0x84, 0x1d, 0x1e, 0xea, 0xac, 0xa0, 0x4e, - 0x09, 0xa4, 0x3a, 0xe2, 0xe2, 0x7a, 0xad, 0x30, 0xb8, 0xec, 0x02, 0x35, - 0x79, 0x98, 0x03, 0x8d, 0x0f, 0x4a, 0x2d, 0x04, 0x2d, 0x4a, 0xa5, 0x18, - 0x8f, 0x08, 0xba, 0x44, 0x24, 0xa2, 0x47, 0x28, 0x70, 0x36, 0x3e, 0xde, - 0xe5, 0x1c, 0x68, 0xbc, 0xf5, 0x8b, 0xbc, 0x38, 0xea, 0xe2, 0x3d, 0x33, - 0x43, 0x75, 0xd4, 0x69, 0x18, 0x6b, 0xa3, 0xb6, 0x10, 0xe4, 0xb1, 0x26, - 0xe6, 0xa6, 0xcb, 0x22, 0xdc, 0x59, 0x60, 0xc0, 0x80, 0x01, 0x03, 0x06, - 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x01, 0x03, 0x06, 0x0c, 0x18, 0x30, - 0x90, 0x5b, 0x45, 0x65, 0xe5, 0x00, 0xe5, 0xc2, 0x32, 0x2d, 0x81, 0x63, - 0x76, 0x3d, 0xe9, 0xe5, 0xdf, 0x5d, 0xe5, 0x29, 0xdd, 0xe4, 0xc1, 0xa0, - 0x04, 0x43, 0x4a, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x54, 0xa4, 0x52, 0x02, 0x65, 0x10, 0xd7, 0xe0, 0x65, 0x2d, 0x4b, - 0x9b, 0xfc, 0x4f, 0x04, 0x15, 0xe5, 0x00, 0xd5, 0x85, 0xa0, 0xdc, 0x82, - 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb3, 0x82, - 0xb2, 0x4a, 0x80, 0xea, 0xcc, 0xb5, 0xae, 0x25, 0x8c, 0xf1, 0x1f, 0xeb, - 0xb1, 0x76, 0x98, 0x03, 0x75, 0x25, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x56, 0xca, 0x39, 0x50, 0x41, 0xdd, 0x71, 0x91, - 0x81, 0x36, 0xb3, 0x55, 0x0c, 0x62, 0x69, 0x34, 0x28, 0x04, 0x79, 0x58, - 0x62, 0x64, 0xdb, 0xb6, 0x65, 0x8c, 0x6c, 0x1f, 0x8c, 0x7d, 0xb3, 0xfd, - 0xd8, 0xf6, 0x63, 0xdb, 0x8f, 0x6d, 0x3f, 0xb6, 0xfd, 0xd8, 0xf6, 0x63, - 0xdb, 0x8f, 0x73, 0x25, 0xaa, 0xa8, 0x2d, 0x04, 0x39, 0x73, 0xa4, 0xe2, - 0xc3, 0x6c, 0x30, 0x63, 0x48, 0x8e, 0xae, 0x6b, 0x4b, 0x54, 0x82, 0xce, - 0x53, 0x46, 0x6a, 0xdb, 0x12, 0x14, 0xd0, 0x37, 0x9a, 0xba, 0x08, 0x05, - 0xb5, 0xf6, 0x28, 0x40, 0xaa, 0x23, 0x02, 0x45, 0x9e, 0xdc, 0xd5, 0x45, - 0x41, 0xc5, 0x96, 0x26, 0x75, 0xd1, 0x42, 0x71, 0x11, 0x99, 0xb3, 0x35, - 0x0e, 0x6b, 0x83, 0x31, 0x68, 0x72, 0x83, 0xc7, 0x52, 0x22, 0x9b, 0x05, - 0x15, 0xc7, 0x93, 0xcc, 0x89, 0xcd, 0xf8, 0xcf, 0x6d, 0x2c, 0x9d, 0x72, - 0x80, 0xf2, 0x30, 0xc7, 0x68, 0x2d, 0xbb, 0x02, 0xec, 0x2d, 0x60, 0x4f, - 0x13, 0xb8, 0x06, 0x7b, 0x03, 0x8c, 0xc9, 0x35, 0x45, 0x8a, 0x30, 0xc8, - 0x99, 0x85, 0xba, 0xe3, 0x58, 0x99, 0x90, 0xf2, 0x3f, 0x54, 0x89, 0x01, - 0x46, 0x03, 0x2a, 0x58, 0xb0, 0xcf, 0x48, 0xd9, 0xcc, 0x48, 0x5c, 0x1b, - 0x1d, 0xa7, 0x39, 0xb5, 0x29, 0x1f, 0x8c, 0xa0, 0x2c, 0x0c, 0xea, 0x4c, - 0x50, 0x16, 0x16, 0x40, 0x80, 0xb0, 0x07, 0x04, 0x88, 0x3a, 0x2b, 0x28, - 0xcb, 0xa4, 0xce, 0x7a, 0xd4, 0x35, 0x4f, 0x48, 0x77, 0x5b, 0x87, 0xaa, - 0x93, 0x4c, 0x35, 0x77, 0x66, 0x17, 0x74, 0x58, 0x02, 0xd7, 0x5d, 0xd0, - 0x61, 0x74, 0xa4, 0x73, 0x71, 0x99, 0xf8, 0x7a, 0x93, 0xd4, 0x70, 0x8c, - 0xb4, 0xc8, 0x49, 0x6a, 0x94, 0x40, 0xca, 0x25, 0x45, 0xb2, 0xb0, 0x00, - 0x02, 0x54, 0x02, 0x7c, 0x06, 0x01, 0x22, 0xe7, 0x1c, 0xa3, 0xc8, 0x24, - 0x67, 0x1e, 0xfc, 0x21, 0xaf, 0x62, 0x36, 0x8b, 0x75, 0xbd, 0xab, 0xa9, - 0x25, 0x50, 0x03, 0x6a, 0xb0, 0x60, 0xdf, 0x20, 0x35, 0x66, 0x83, 0x38, - 0x9d, 0x1a, 0x53, 0xc7, 0xd1, 0x6c, 0xfc, 0x40, 0x8d, 0x30, 0xa8, 0x1b, - 0x82, 0x1a, 0x61, 0x01, 0x04, 0x08, 0x7b, 0x40, 0x80, 0xa8, 0x1b, 0x05, - 0x35, 0x32, 0xb9, 0x6b, 0xf4, 0x6a, 0x13, 0x8d, 0xcc, 0xf6, 0xca, 0x4a, - 0x5d, 0x42, 0x2a, 0x89, 0x16, 0x4b, 0xc2, 0x75, 0x24, 0x0a, 0x46, 0xf2, - 0x0b, 0x5e, 0x31, 0x8c, 0x93, 0x98, 0x78, 0xdd, 0x7d, 0xf0, 0xeb, 0xbc, - 0xda, 0xaa, 0x12, 0xa0, 0xdc, 0x76, 0xb1, 0xcd, 0x26, 0x6c, 0xb0, 0xf7, - 0xd8, 0x6f, 0x38, 0x60, 0x60, 0x60, 0x60, 0x60, 0x5f, 0x63, 0x5f, 0x92, - 0xdb, 0x36, 0x96, 0x22, 0x0c, 0x4e, 0xda, 0x38, 0xc3, 0x54, 0x6d, 0xbc, - 0xfc, 0x66, 0xe9, 0x91, 0x1a, 0x74, 0xc8, 0x1a, 0x48, 0x15, 0x54, 0x6d, - 0x71, 0xa8, 0xa0, 0x6a, 0xd6, 0x83, 0x59, 0xf5, 0x31, 0x0d, 0x5d, 0xfc, - 0x86, 0x6e, 0xb4, 0xfc, 0x97, 0x11, 0x06, 0x75, 0x25, 0xa8, 0xca, 0x16, - 0x21, 0x1c, 0x10, 0x42, 0x08, 0x21, 0xea, 0x4a, 0x50, 0x95, 0xc9, 0xc3, - 0xfd, 0xe5, 0x96, 0xf2, 0xa7, 0x7e, 0xcf, 0x64, 0xb2, 0xa3, 0xc4, 0xf1, - 0xd2, 0x09, 0xa9, 0x43, 0x8d, 0x99, 0x90, 0x12, 0xee, 0xda, 0x44, 0x4e, - 0x48, 0xed, 0x89, 0x27, 0xe4, 0xa7, 0x71, 0xa2, 0x6f, 0x57, 0xfd, 0x7b, - 0xeb, 0x05, 0x1f, 0x7f, 0xff, 0x96, 0x09, 0x94, 0xbb, 0x12, 0x23, 0x0b, - 0x03, 0x25, 0x90, 0x94, 0xc0, 0x9d, 0x10, 0x42, 0x08, 0x91, 0xdb, 0x14, - 0x09, 0x25, 0x7a, 0x5d, 0xbe, 0xce, 0xed, 0xbb, 0x42, 0xe7, 0x0f, 0xb5, - 0x53, 0xe6, 0x17, 0x34, 0x1b, 0x29, 0x41, 0x05, 0x55, 0x5b, 0x1c, 0x2a, - 0xa8, 0x4a, 0xab, 0xf3, 0x76, 0x07, 0xad, 0x68, 0x01, 0x36, 0x62, 0x1a, - 0xd3, 0xeb, 0xe4, 0x8d, 0xdf, 0x79, 0x82, 0xea, 0x4a, 0x50, 0x95, 0x2d, - 0x42, 0x38, 0x20, 0x84, 0x10, 0x42, 0xd4, 0x95, 0xa0, 0x9a, 0xa5, 0xa1, - 0x39, 0xed, 0x93, 0xf3, 0xe5, 0x3a, 0x9f, 0xc9, 0x16, 0xee, 0xdd, 0x3e, - 0xe2, 0x3a, 0xff, 0x2e, 0x49, 0x5d, 0x93, 0x0b, 0x36, 0x38, 0xb4, 0x6d, - 0x29, 0x34, 0x5f, 0xea, 0xff, 0x7d, 0x50, 0xeb, 0x79, 0x7c, 0x12, 0x4f, - 0x76, 0x31, 0x41, 0xbf, 0x6e, 0x78, 0x89, 0xb9, 0xcb, 0x31, 0x92, 0x30, - 0x50, 0x80, 0xa4, 0x00, 0x77, 0x42, 0x08, 0x21, 0x44, 0x6e, 0x53, 0x24, - 0x36, 0x8f, 0x17, 0x7d, 0x90, 0xab, 0x36, 0xd1, 0xdc, 0xef, 0xca, 0x76, - 0xf0, 0x61, 0xbd, 0xf1, 0x6a, 0xc9, 0x87, 0x6a, 0x90, 0xaa, 0x2d, 0x0e, - 0x15, 0x54, 0x3f, 0x3b, 0x6c, 0x2b, 0x71, 0x8e, 0x9d, 0x0b, 0xc1, 0xe2, - 0xee, 0x82, 0x3f, 0xb3, 0xd0, 0x9d, 0xdf, 0xd7, 0xc7, 0xbe, 0xb2, 0x6c, - 0x11, 0xc2, 0x01, 0x21, 0x84, 0x10, 0xa2, 0xae, 0x0c, 0xeb, 0x3f, 0xdb, - 0x5c, 0x6c, 0xf3, 0x6c, 0xa9, 0x9a, 0x73, 0xe1, 0x9d, 0x4b, 0xe0, 0xc3, - 0x4c, 0xb7, 0xe7, 0x84, 0xeb, 0x57, 0xd7, 0x60, 0x83, 0x43, 0xd7, 0xc5, - 0xc5, 0xf3, 0x8b, 0x5d, 0xc3, 0xb4, 0x66, 0x66, 0x8b, 0x80, 0x1f, 0x27, - 0xdc, 0xf3, 0xfd, 0x4b, 0x5d, 0xbe, 0xd9, 0xe0, 0x5b, 0xfe, 0xf3, 0xe6, - 0xff, 0x97, 0x1a, 0x73, 0x4a, 0x39, 0xc7, 0x88, 0x94, 0x73, 0x8c, 0x48, - 0x39, 0xc7, 0x88, 0x94, 0x73, 0x8c, 0x48, 0x39, 0xc7, 0x88, 0x94, 0x73, - 0x8c, 0x48, 0x39, 0xc7, 0x88, 0x94, 0x73, 0x8a, 0x18, 0x5e, 0x9c, 0x87, - 0x4d, 0x2f, 0x35, 0xe3, 0xff, 0xc3, 0xdb, 0x72, 0x51, 0x13, 0x8b, 0x3b, - 0x9f, 0x81, 0xde, 0xf3, 0x51, 0x6d, 0xa6, 0x4d, 0xfb, 0xdd, 0x5c, 0x40, - 0x52, 0x69, 0x90, 0x22, 0x23, 0x11, 0x04, 0x04, 0x01, 0x41, 0x40, 0x10, - 0x10, 0x04, 0x04, 0x41, 0x7f, 0xf6, 0xa7, 0x07, 0xd2, 0x68, 0xed, 0xa6, - 0xf5, 0xef, 0xec, 0x05, 0xb0, 0x7d, 0xdd, 0x1f, 0xfd, 0x4e, 0x9a, 0xde, - 0x9e, 0xfc, 0x9d, 0x5e, 0x89, 0x10, 0xe1, 0x0a, 0x22, 0x20, 0x02, 0x22, - 0x20, 0x02, 0x22, 0x20, 0x02, 0xfa, 0xd8, 0x9c, 0xf7, 0xe1, 0xd3, 0xd3, - 0xbc, 0xd2, 0xed, 0x2a, 0xc7, 0x5e, 0x37, 0x69, 0xfe, 0xc5, 0xc1, 0x17, - 0x80, 0x0b, 0xe5, 0xd7, 0xdd, 0x09, 0x6e, 0x3e, 0x6c, 0xbb, 0xb6, 0xb6, - 0x6d, 0xc9, 0x6d, 0x8e, 0x5c, 0x50, 0x29, 0x52, 0x29, 0x52, 0x29, 0x52, - 0xf1, 0x9a, 0xd2, 0x25, 0xba, 0x73, 0xcf, 0x22, 0x77, 0xe7, 0x3c, 0xb8, - 0x15, 0x1e, 0x4a, 0x76, 0x71, 0x3a, 0xa9, 0x7b, 0xd7, 0x7a, 0xc1, 0xcb, - 0xab, 0xa3, 0x5d, 0x2c, 0x7b, 0xab, 0x8c, 0x7e, 0x68, 0x22, 0x52, 0x53, - 0x55, 0x54, 0x4d, 0x55, 0x51, 0x35, 0x55, 0x45, 0xd5, 0x54, 0x15, 0x55, - 0xd7, 0x55, 0x0f, 0xf3, 0xe5, 0xdc, 0xf4, 0x8f, 0xac, 0x0f, 0xaa, 0x8d, - 0x77, 0x65, 0x07, 0x5c, 0xa4, 0xdf, 0xa2, 0x6b, 0x46, 0x63, 0x05, 0x1b, - 0x7c, 0xe9, 0x4a, 0x5b, 0x6a, 0x25, 0xa8, 0x15, 0xa9, 0x56, 0xa4, 0x5a, - 0x91, 0x6a, 0xb1, 0x16, 0x6d, 0xee, 0xe2, 0xff, 0x95, 0x2b, 0xfa, 0x1d, - 0xf7, 0xed, 0x9b, 0xf0, 0x51, 0x30, 0xbf, 0x97, 0xf8, 0x25, 0xa3, 0x52, - 0x7a, 0x85, 0x4f, 0x4e, 0xb6, 0x85, 0xa7, 0x0b, 0xe7, 0x6c, 0x9f, 0x86, - 0xae, 0x95, 0xdf, 0xc2, 0xa3, 0xe2, 0x31, 0xb4, 0xaf, 0x28, 0x62, 0xad, - 0x5b, 0xdc, 0xdd, 0xfc, 0x2b, 0x96, 0xef, 0x61, 0x5d, 0x8b, 0x3d, 0xaf, - 0x79, 0x01, 0x85, 0x7d, 0xc7, 0xc7, 0xf6, 0x67, 0xef, 0x8f, 0x76, 0x69, - 0x4b, 0x57, 0x3d, 0xe9, 0xb3, 0x3e, 0x6f, 0x7e, 0xa9, 0xab, 0xad, 0x90, - 0xce, 0xc5, 0x8b, 0x2e, 0xb6, 0x7a, 0x7c, 0x1e, 0x3d, 0xd7, 0x25, 0x57, - 0xbf, 0x40, 0xa9, 0xb6, 0xba, 0x87, 0x9f, 0xd8, 0x7e, 0x08, 0x2f, 0x5b, - 0xa3, 0xcf, 0x5e, 0xc8, 0x64, 0xcf, 0xbd, 0x54, 0x21, 0x03, 0x03, 0x33, - 0xc6, 0xae, 0x81, 0xc1, 0xd6, 0x33, 0xf6, 0x0b, 0xf9, 0x8d, 0x97, 0x78, - 0xfe, 0x17, 0x40, 0x18, 0x28, 0xcd, 0xf5, 0x42, 0xb8, 0x05, 0xf6, 0xf3, - 0xc2, 0xa6, 0x32, 0x5a, 0xbd, 0xe4, 0xc0, 0xe7, 0xf5, 0x7a, 0xd0, 0x97, - 0xeb, 0xf9, 0x46, 0x7a, 0xa6, 0xf4, 0x9c, 0x23, 0x3d, 0xc9, 0xf8, 0xa4, - 0x23, 0xcf, 0x76, 0x75, 0xfd, 0xf2, 0x06, 0xa7, 0xed, 0x8d, 0xb8, 0x53, - 0xb9, 0xdd, 0x51, 0x6c, 0x27, 0x9e, 0x63, 0x99, 0x9f, 0x3b, 0x16, 0xfe, - 0x10, 0x7e, 0xa5, 0x0a, 0x2f, 0xfd, 0x62, 0xf8, 0x8a, 0x8b, 0x67, 0xe6, - 0xc9, 0x96, 0xf3, 0xef, 0x66, 0xb8, 0xd7, 0x6d, 0x26, 0xf4, 0x12, 0x36, - 0xf5, 0xdf, 0xe4, 0x87, 0x3b, 0x6d, 0xfb, 0x1d, 0xbd, 0x24, 0x3c, 0x0b, - 0x1f, 0xeb, 0x41, 0x5f, 0xa4, 0x67, 0x19, 0xe9, 0x71, 0x2a, 0x70, 0xe3, - 0xe6, 0xc9, 0xa3, 0x2e, 0xe3, 0xd9, 0xe2, 0xad, 0xff, 0xc3, 0x43, 0x85, - 0x0f, 0x4d, 0xe7, 0xbe, 0x97, 0x8f, 0xd5, 0xe3, 0xb6, 0x7a, 0xe4, 0x87, - 0xfb, 0x7b, 0x3e, 0xdc, 0x0b, 0x0f, 0x69, 0xe8, 0xee, 0x1a, 0x5f, 0x3d, - 0xca, 0x8f, 0xdd, 0x80, 0x7b, 0x57, 0x65, 0xfb, 0x28, 0xe7, 0x69, 0x5b, - 0x9a, 0xe7, 0x2b, 0xdc, 0xe1, 0x62, 0xfa, 0x62, 0x3d, 0x51, 0x85, 0x87, - 0x1d, 0xbc, 0x0d, 0xbe, 0x0a, 0x60, 0x3d, 0xf8, 0x2b, 0xd3, 0xe3, 0x15, - 0xc6, 0x23, 0xde, 0x6e, 0x78, 0xc4, 0xad, 0xff, 0x8b, 0x9b, 0x0a, 0xa0, - 0x99, 0x12, 0x4f, 0xc1, 0x3d, 0x4f, 0x78, 0xae, 0xe7, 0x7a, 0xe8, 0x4f, - 0x66, 0xc6, 0xb5, 0x80, 0x7e, 0x3e, 0x68, 0x0e, 0x4f, 0x5e, 0x80, 0x9f, - 0x0e, 0x43, 0x39, 0x3d, 0xec, 0xe5, 0x72, 0x22, 0x95, 0x2b, 0x60, 0x5e, - 0xba, 0x67, 0x10, 0x5e, 0xe2, 0x16, 0x7d, 0x5c, 0x0a, 0x16, 0x4d, 0x34, - 0xc7, 0xa7, 0x2a, 0x02, 0xfc, 0x72, 0x19, 0xca, 0xe9, 0xa1, 0x66, 0x8b, - 0x94, 0xc0, 0x39, 0x0c, 0x4f, 0x59, 0xe1, 0x75, 0xfe, 0x30, 0x38, 0x17, - 0x69, 0xf0, 0xd7, 0x34, 0xb7, 0xde, 0xc2, 0x2b, 0x3e, 0xc3, 0x4d, 0x7d, - 0x9b, 0x6d, 0x9e, 0xe2, 0x0c, 0xa6, 0x2f, 0x19, 0x1f, 0xb7, 0xc1, 0x1f, - 0x1e, 0xed, 0xed, 0xb0, 0x15, 0x43, 0x17, 0xf1, 0xf4, 0x45, 0x15, 0xe0, - 0x5f, 0xaf, 0xe1, 0x5c, 0x3b, 0xec, 0x93, 0x12, 0x38, 0xf5, 0x57, 0x05, - 0xde, 0xb6, 0x81, 0x53, 0x2d, 0xf4, 0x05, 0x87, 0xfd, 0xe3, 0x83, 0x37, - 0xb7, 0xa1, 0x6c, 0x1f, 0x7e, 0x56, 0xbd, 0x2d, 0x38, 0xf1, 0xb7, 0x06, - 0xde, 0xf5, 0xe0, 0x98, 0x1a, 0x34, 0x4b, 0xf3, 0x84, 0x5b, 0x78, 0xc7, - 0x6f, 0x58, 0x56, 0x8f, 0xde, 0xde, 0x51, 0x18, 0xd3, 0x6c, 0x25, 0x3e, - 0x62, 0x1a, 0x5a, 0xa9, 0x8f, 0x43, 0x9e, 0x20, 0xc0, 0xff, 0x8e, 0x43, - 0xd9, 0x3f, 0xc2, 0x6b, 0xa7, 0x84, 0x5f, 0x3b, 0x70, 0x7c, 0x17, 0x56, - 0x1a, 0xbe, 0x45, 0x38, 0xe2, 0x39, 0xbc, 0x79, 0x08, 0x34, 0x3e, 0x35, - 0x8e, 0xe5, 0x4e, 0x19, 0xf4, 0x5a, 0xf3, 0x5b, 0x6d, 0xe1, 0x88, 0xe7, - 0xb0, 0xac, 0x27, 0x9c, 0xdf, 0x4d, 0x5f, 0x5b, 0x5a, 0xe3, 0x14, 0xb3, - 0xe9, 0x9b, 0xac, 0xb8, 0x0e, 0x0b, 0x3d, 0x80, 0xbe, 0xcd, 0x3a, 0x3d, - 0xe4, 0x4c, 0x4f, 0x6b, 0xc5, 0x75, 0x58, 0x0c, 0x3b, 0x1e, 0x9f, 0xce, - 0xca, 0x4e, 0x0e, 0x8f, 0xf3, 0x5a, 0x71, 0x1d, 0xca, 0xd3, 0xfd, 0xae, - 0x6e, 0x62, 0xfd, 0xcb, 0xc9, 0x8d, 0xad, 0xb8, 0x0e, 0xe9, 0x2f, 0x4e, - 0xfb, 0xb2, 0x9e, 0x7e, 0x69, 0xc6, 0x2c, 0x56, 0x5c, 0x87, 0x05, 0xb3, - 0x16, 0xfb, 0xb4, 0x0e, 0xbf, 0x38, 0x8b, 0xef, 0xb6, 0xe2, 0x3a, 0x2c, - 0xa6, 0x07, 0x8c, 0x6f, 0xb7, 0xea, 0x81, 0x37, 0xf9, 0x1b, 0xac, 0x15, - 0x9e, 0x43, 0x1f, 0xeb, 0x19, 0x5f, 0x6f, 0xfe, 0xd7, 0xfe, 0xd6, 0x7f, - 0x7e, 0x7e, 0xef, 0xfb, 0x60, 0xdc, 0xb7, 0x70, 0xc4, 0x73, 0x98, 0x97, - 0xbf, 0x3c, 0xa0, 0xe1, 0xbb, 0x70, 0xec, 0x1f, 0x84, 0x3b, 0xbd, 0xfe, - 0x29, 0x8e, 0x38, 0x0e, 0xe9, 0xcd, 0xfb, 0xa0, 0x7e, 0x21, 0x7b, 0xc4, - 0x87, 0x7e, 0x7e, 0x98, 0x11, 0x49, 0x9b, 0xe9, 0x3b, 0xa9, 0x7c, 0xe0, - 0x37, 0xf4, 0xf1, 0xa0, 0x96, 0x31, 0xf4, 0x26, 0xcd, 0x9e, 0xf0, 0x5e, - 0xfd, 0x64, 0xbb, 0x34, 0x4c, 0x2d, 0x3c, 0x7d, 0x82, 0x77, 0xdc, 0x86, - 0x34, 0xd7, 0x7d, 0x01, 0x27, 0x9a, 0xb7, 0xdf, 0x03, 0xde, 0xda, 0x9f, - 0xa8, 0xe6, 0xc3, 0xa9, 0xb8, 0x1c, 0x3e, 0x87, 0xca, 0x1b, 0x5e, 0x43, - 0xaf, 0x15, 0x19, 0xd8, 0xd0, 0xdd, 0x7b, 0xef, 0xf8, 0x4f, 0xbf, 0xd2, - 0xcf, 0x83, 0xad, 0x08, 0xcb, 0xfd, 0x98, 0x77, 0x47, 0xe5, 0x0f, 0x3e, - 0x43, 0xcf, 0x4f, 0x35, 0xc3, 0xff, 0x14, 0xe0, 0x8c, 0xcf, 0xbe, 0x9e, - 0x13, 0xaf, 0xf5, 0x5d, 0xd2, 0x8a, 0x4f, 0x38, 0x17, 0xfc, 0xf5, 0xbd, - 0x13, 0xbc, 0xe2, 0x32, 0xa4, 0x79, 0x7f, 0x84, 0x19, 0xb8, 0x80, 0x66, - 0xa6, 0xe3, 0xf7, 0xe0, 0x9f, 0xe9, 0x48, 0x8b, 0x99, 0x71, 0x29, 0xe0, - 0x7c, 0x3e, 0xa1, 0xdb, 0xeb, 0x04, 0x2f, 0x38, 0x0c, 0x69, 0x88, 0x5f, - 0xad, 0x27, 0x16, 0x67, 0x5c, 0x01, 0xbd, 0xc3, 0xf7, 0xe3, 0xe7, 0x74, - 0xf8, 0x65, 0xff, 0x8c, 0x6b, 0x01, 0x8c, 0x9a, 0x7e, 0x7c, 0xdf, 0x47, - 0x26, 0x53, 0x79, 0xc6, 0x5b, 0x5f, 0x4f, 0x69, 0xd2, 0x11, 0xd5, 0x2f, - 0x5a, 0xdc, 0x00, 0x7c, 0x56, 0xbb, 0x7b, 0x3c, 0xf2, 0x73, 0x79, 0x85, - 0xe0, 0xab, 0xf0, 0xf0, 0x64, 0x79, 0x97, 0xc7, 0xbd, 0x70, 0xe6, 0x01, - 0x57, 0xa9, 0xd7, 0x8f, 0x37, 0x79, 0xe9, 0x05, 0xb8, 0x73, 0xd1, 0xf5, - 0x3f, 0xb7, 0xdb, 0x2d, 0xee, 0xdb, 0x9f, 0x4e, 0x2b, 0x51, 0xbf, 0xc6, - 0xbd, 0xf0, 0x31, 0xd2, 0x9b, 0xf2, 0xc9, 0x9b, 0xcb, 0xdd, 0x70, 0xe6, - 0x16, 0x37, 0xa9, 0xaf, 0x7e, 0xb6, 0x79, 0xf8, 0x38, 0xff, 0x77, 0x11, - 0x78, 0xc0, 0x87, 0x66, 0xd1, 0xac, 0xda, 0x1b, 0x6e, 0xf4, 0x33, 0x79, - 0xb6, 0x98, 0x16, 0x78, 0x16, 0x5e, 0xb6, 0xfb, 0xfe, 0x32, 0xcb, 0x4f, - 0xe1, 0x07, 0x36, 0xcb, 0x29, 0xac, 0x5d, 0xac, 0xcf, 0xd2, 0x7a, 0xdd, - 0xd7, 0x53, 0x9a, 0x7c, 0xe4, 0xd3, 0xc7, 0x97, 0xef, 0xef, 0x7e, 0x51, - 0xe1, 0x05, 0x2f, 0x5a, 0x86, 0x3e, 0x4a, 0x9f, 0x98, 0x3e, 0x55, 0x3f, - 0x34, 0xfe, 0xb0, 0xe7, 0xba, 0xd1, 0x0d, 0x4f, 0x3f, 0xc6, 0x7d, 0xca, - 0x1f, 0x89, 0x4f, 0x88, 0x8f, 0xc9, 0x9f, 0x1e, 0x8b, 0x08, 0x5f, 0x01 + 0x00, 0x01, 0x40, 0x00, 0x40, 0x00, 0x48, 0x17, 0x00, 0x00, 0x32, 0x0a, + 0x00, 0x00, 0xef, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x01, 0x40, 0x00, 0x40, 0x00, 0x7a, 0x21, 0x00, 0x00, 0xa0, 0x03, 0x00, + 0x00, 0xd4, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x20, 0x00, 0x20, 0x00, 0x1a, 0x25, 0x00, 0x00, 0xa9, 0x05, 0x00, 0x00, + 0x6a, 0x14, 0x00, 0x00, 0x00, 0x01, 0x01, 0x80, 0x00, 0x80, 0x00, 0x20, + 0x00, 0x20, 0x00, 0xc3, 0x2a, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xbb, + 0xc0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x40, 0x00, 0x10, 0x00, + 0x10, 0x00, 0xbc, 0x2c, 0x00, 0x00, 0xe2, 0x01, 0x00, 0x00, 0x50, 0x1f, + 0x00, 0x00, 0x00, 0x02, 0x01, 0x40, 0x00, 0x40, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x9e, 0x2e, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x03, 0x88, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x00, 0x08, 0x00, + 0x92, 0x2f, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x66, 0x37, 0x00, 0x00, + 0x00, 0x03, 0x01, 0x20, 0x00, 0x20, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1f, + 0x30, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xcc, 0xeb, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x10, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x7b, 0x30, + 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xf5, 0xdf, 0x00, 0x00, 0x00, 0x04, + 0x01, 0x10, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0xa1, 0x30, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x19, 0xfe, 0x00, 0x00, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0xbd, 0x30, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xf0, 0x31, 0x00, 0x00, 0x00, 0x05, 0x01, 0x08, + 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0xc6, 0x30, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x3d, 0x16, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0xce, 0x30, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0xeb, 0x10, 0x00, 0x00, 0x00, 0x06, 0x01, 0x04, 0x00, 0x04, + 0x00, 0x01, 0x00, 0x01, 0x00, 0xd1, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x13, 0xf2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x01, 0x00, 0xd4, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xeb, 0xec, 0x00, 0x00, 0x00, 0x07, 0x01, 0x02, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x01, 0x00, 0xd7, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x67, + 0xe3, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x01, 0x00, 0xda, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xd3, 0x24, + 0x00, 0x00, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, + 0x00, 0xdd, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x67, 0xe3, 0x20, + 0x40, 0x04, 0x88, 0x52, 0x18, 0x84, 0x81, 0xe8, 0x4f, 0xa0, 0x96, 0x7d, + 0xd2, 0xcb, 0xed, 0x65, 0xc1, 0x0c, 0x08, 0xd0, 0x00, 0x02, 0x22, 0x04, + 0x61, 0x7b, 0x01, 0x49, 0xcc, 0x4e, 0x2f, 0x14, 0xc6, 0x06, 0x02, 0x3c, + 0x00, 0xe0, 0x06, 0x41, 0x18, 0xf8, 0x1f, 0x50, 0x8a, 0xd6, 0x5d, 0xd1, + 0x81, 0x0a, 0x24, 0x41, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x08, 0x81, + 0xc2, 0x83, 0xdf, 0x8f, 0xc9, 0x14, 0xa2, 0xe3, 0x9d, 0xaf, 0x5b, 0x65, + 0xc9, 0x2c, 0xc1, 0xef, 0xa9, 0x55, 0x49, 0x55, 0xae, 0x50, 0x5e, 0xcb, + 0xae, 0x67, 0x19, 0x35, 0xc4, 0xb1, 0xfd, 0xb4, 0x95, 0x28, 0xe5, 0x63, + 0xfe, 0xcd, 0x08, 0x4c, 0xf1, 0x76, 0x95, 0x00, 0x27, 0x1b, 0x4e, 0x04, + 0x18, 0x6c, 0xc3, 0xc5, 0x99, 0xcf, 0xd1, 0x28, 0x52, 0xe6, 0x60, 0xf0, + 0x65, 0x6c, 0xbb, 0x45, 0x96, 0xc7, 0xbe, 0x5e, 0xd2, 0x8c, 0x04, 0xfc, + 0xf1, 0x06, 0xe4, 0x10, 0x33, 0x35, 0xe2, 0x66, 0x1f, 0x6d, 0xf4, 0xe9, + 0x18, 0xca, 0xf3, 0x29, 0xa4, 0x0e, 0xee, 0x00, 0x03, 0x34, 0xd5, 0x5a, + 0xf2, 0xfc, 0x3c, 0x1f, 0xef, 0xe8, 0xb6, 0xa5, 0x83, 0x9e, 0x47, 0xd5, + 0xf5, 0xfc, 0xd7, 0x57, 0x91, 0x2b, 0xd7, 0xe0, 0x89, 0xf5, 0xb8, 0x4f, + 0x5d, 0x08, 0x56, 0xa4, 0x1f, 0xf3, 0x89, 0xcd, 0x98, 0x88, 0x78, 0xad, + 0x90, 0xbb, 0xe3, 0xe8, 0xb5, 0x69, 0xfe, 0xb5, 0x96, 0xff, 0x79, 0xb5, + 0x12, 0xc8, 0xdd, 0x0d, 0x76, 0x84, 0xa9, 0x6c, 0x7d, 0x71, 0xf5, 0xf7, + 0x52, 0x65, 0xf3, 0xf7, 0xae, 0xdc, 0xff, 0x08, 0x81, 0x23, 0x02, 0xe1, + 0x40, 0x20, 0x40, 0x44, 0xf7, 0xb2, 0x17, 0x13, 0x08, 0x50, 0x3f, 0x1e, + 0x4c, 0x46, 0x8f, 0x9e, 0xf4, 0x4a, 0x1a, 0xc7, 0xb1, 0x98, 0x34, 0xfe, + 0x8e, 0xc0, 0xf7, 0x25, 0x10, 0x20, 0xc0, 0xf2, 0xe0, 0xf2, 0xab, 0x43, + 0xdd, 0xc5, 0x3d, 0xce, 0x61, 0xee, 0x0f, 0xa0, 0xf0, 0x1c, 0x12, 0x20, + 0x34, 0xe5, 0x19, 0xef, 0x17, 0x01, 0x80, 0x22, 0x86, 0x87, 0x36, 0xe5, + 0x7b, 0xd1, 0x4b, 0xc1, 0x0a, 0xbf, 0x78, 0x26, 0xc4, 0x60, 0xf1, 0xd4, + 0x42, 0x08, 0x29, 0xec, 0x04, 0x38, 0x53, 0x46, 0xc8, 0x4f, 0x6b, 0x22, + 0xa7, 0xe0, 0x94, 0xe9, 0xe8, 0x3b, 0x40, 0xa2, 0x19, 0x91, 0xa5, 0x68, + 0xff, 0xf1, 0x8d, 0x20, 0x7d, 0x40, 0xb1, 0x9b, 0x02, 0x1b, 0x35, 0xfa, + 0x8f, 0x97, 0x8f, 0x38, 0x44, 0x44, 0x9e, 0x03, 0x93, 0x32, 0x30, 0x8d, + 0x0c, 0x7e, 0xad, 0x4b, 0xfa, 0x68, 0xbe, 0x08, 0x6f, 0x64, 0x03, 0xbb, + 0x2d, 0x22, 0x06, 0x00, 0x09, 0x4f, 0x8b, 0xea, 0x97, 0xf4, 0x65, 0x50, + 0x1e, 0xb4, 0x70, 0x44, 0xe0, 0x25, 0x2e, 0xc2, 0xd5, 0xdb, 0x29, 0x8c, + 0xc4, 0xf9, 0xd5, 0xfd, 0x89, 0xd7, 0xcf, 0x43, 0xbe, 0x24, 0xc7, 0x71, + 0x4c, 0x67, 0x18, 0xd8, 0x05, 0x77, 0x51, 0x04, 0x55, 0xe5, 0x38, 0x0e, + 0x6d, 0xdb, 0x36, 0x33, 0xeb, 0x79, 0x9e, 0x93, 0x64, 0x49, 0x5a, 0xd7, + 0x35, 0xad, 0x35, 0xf5, 0xde, 0xbf, 0xd6, 0xca, 0x9c, 0x73, 0x63, 0x8c, + 0xed, 0xfb, 0xee, 0xeb, 0xba, 0x5a, 0x6b, 0xf5, 0x9c, 0x13, 0x33, 0x03, + 0x11, 0xbf, 0x94, 0xe2, 0xde, 0xbb, 0x8f, 0xe3, 0x20, 0x22, 0x20, 0xf9, + 0xbd, 0x77, 0x97, 0x52, 0xac, 0xaa, 0x29, 0xa5, 0x7c, 0x4a, 0xe9, 0x5b, + 0x6b, 0x1a, 0x63, 0xf8, 0xba, 0x2e, 0x22, 0x02, 0x33, 0x63, 0xdf, 0x77, + 0xd7, 0x5a, 0x45, 0x44, 0x01, 0xd0, 0x6d, 0xdb, 0x76, 0x1c, 0xc7, 0x00, + 0xa0, 0xad, 0xb5, 0xaf, 0xb5, 0x6e, 0xce, 0x69, 0x77, 0xb7, 0x99, 0x75, + 0x9a, 0xa6, 0xf5, 0xde, 0xbd, 0x93, 0x76, 0x3d, 0x9b, 0x7b, 0xef, 0xef, + 0xf2, 0x59, 0x1a, 0xcf, 0xed, 0x77, 0x51, 0x29, 0x65, 0xad, 0x3d, 0x16, + 0xf1, 0x8a, 0x74, 0x95, 0xcf, 0xb2, 0xd7, 0x7a, 0x40, 0x28, 0x23, 0xdd, + 0x9f, 0xfc, 0x0d, 0xf2, 0x6b, 0x9b, 0xab, 0x39, 0xb5, 0x26, 0x23, 0x73, + 0x11, 0x05, 0x76, 0x87, 0xb8, 0x53, 0xd7, 0x33, 0x4a, 0x63, 0xe8, 0xfd, + 0x45, 0x87, 0x46, 0x51, 0xcf, 0xb9, 0x5e, 0x71, 0x9f, 0xbb, 0x9b, 0xd5, + 0x86, 0x7a, 0x2b, 0x04, 0x06, 0xc0, 0x4b, 0xab, 0x28, 0xe7, 0x6f, 0x53, + 0x4a, 0x03, 0x2e, 0xa5, 0x14, 0xde, 0xab, 0x79, 0xfc, 0x43, 0xee, 0x0f, + 0x92, 0x47, 0xf2, 0x77, 0xd4, 0xae, 0x43, 0xd9, 0x21, 0xe2, 0xb9, 0x45, + 0xc0, 0x7d, 0x58, 0xfa, 0x98, 0xfd, 0x7a, 0x7f, 0x3f, 0xd5, 0x5a, 0xde, + 0xf1, 0xd2, 0xef, 0x43, 0x5d, 0x00, 0xe2, 0xa4, 0x9c, 0xf8, 0x57, 0x27, + 0x25, 0x0e, 0x2d, 0xdb, 0xbe, 0x21, 0xf9, 0xda, 0x93, 0x4d, 0xdc, 0x19, + 0x70, 0x73, 0xe3, 0xb3, 0x2d, 0x27, 0xc0, 0x25, 0x85, 0xdd, 0xed, 0xc1, + 0x01, 0xc3, 0xcc, 0x31, 0x9c, 0x9c, 0x76, 0x9e, 0x5e, 0x30, 0x4b, 0x18, + 0x88, 0x19, 0x01, 0x88, 0x19, 0x29, 0xfb, 0x3e, 0x34, 0x61, 0xf4, 0x13, + 0x33, 0x04, 0x21, 0x66, 0x04, 0x04, 0x66, 0x22, 0xe0, 0xcc, 0x1c, 0x40, + 0x00, 0x08, 0x42, 0x00, 0x0a, 0x8d, 0x83, 0xf1, 0x11, 0x91, 0x1c, 0x22, + 0x97, 0x34, 0x6a, 0xb6, 0x22, 0x9c, 0x4b, 0x7e, 0x3f, 0x9c, 0x69, 0x6a, + 0x59, 0xb6, 0xb1, 0x44, 0xf9, 0x7d, 0x01, 0x0a, 0x45, 0xfe, 0x71, 0x92, + 0x57, 0xe3, 0x4d, 0xc5, 0xf8, 0x5d, 0x50, 0x41, 0x35, 0x31, 0xe7, 0x38, + 0x08, 0xc2, 0xc9, 0x3d, 0x6d, 0x90, 0x21, 0x0f, 0xd8, 0x05, 0xac, 0x25, + 0x70, 0x3e, 0x6b, 0x00, 0x94, 0xd7, 0xd7, 0x0a, 0xe7, 0x39, 0xb3, 0xd8, + 0x5e, 0x84, 0x59, 0x26, 0x53, 0xe4, 0x26, 0xd7, 0xe1, 0xa0, 0xa1, 0xaa, + 0x93, 0xd1, 0x16, 0xa9, 0xe5, 0x20, 0x25, 0xc0, 0x45, 0xbe, 0x32, 0xe0, + 0xe2, 0x42, 0x0e, 0x74, 0xf6, 0x4a, 0xd5, 0x9d, 0x4f, 0x7e, 0x3a, 0xff, + 0xef, 0x70, 0x3e, 0xb1, 0x6d, 0x5a, 0xff, 0x5b, 0x72, 0x56, 0x88, 0x5c, + 0xab, 0xe3, 0xd7, 0xa3, 0xcb, 0x3d, 0xe6, 0x5f, 0x65, 0xd6, 0x65, 0xe4, + 0x53, 0x53, 0x07, 0x55, 0xd9, 0x99, 0x30, 0x99, 0x3f, 0x13, 0x16, 0x39, + 0xcf, 0x01, 0x37, 0x22, 0x02, 0x04, 0x4f, 0x04, 0x06, 0x61, 0x18, 0x8a, + 0xbe, 0xdf, 0x16, 0xd6, 0x2c, 0x90, 0x34, 0xc1, 0xe0, 0xf8, 0x62, 0x24, + 0x48, 0x0e, 0x40, 0xd2, 0x86, 0x20, 0x90, 0x48, 0x24, 0x0a, 0xc9, 0x19, + 0x7e, 0xa6, 0x70, 0x68, 0x0c, 0x1a, 0x0b, 0x07, 0x80, 0xcf, 0x0d, 0xf0, + 0x18, 0x50, 0x08, 0x10, 0x93, 0x73, 0x05, 0x08, 0xe6, 0x50, 0x4b, 0x14, + 0x00, 0x00, 0x00, 0xe0, 0x4f, 0xc2, 0xb8, 0x02, 0x6d, 0x0d, 0x2a, 0x69, + 0xaa, 0x9c, 0xd2, 0xb2, 0x84, 0x26, 0x45, 0x30, 0x3b, 0x2f, 0x3d, 0xb5, + 0x87, 0x7a, 0x56, 0x44, 0x04, 0x59, 0x8b, 0xd6, 0xe2, 0xa3, 0xe1, 0xf4, + 0x8e, 0xba, 0xcb, 0xf2, 0x82, 0x16, 0xad, 0xa1, 0x1f, 0x60, 0x6d, 0x96, + 0x44, 0x99, 0x04, 0x9a, 0x84, 0x77, 0xf6, 0xf2, 0xd1, 0xc3, 0xc7, 0xd4, + 0x58, 0x2d, 0x3e, 0x96, 0x1e, 0x43, 0x71, 0xf7, 0x3a, 0xc2, 0x14, 0xc2, + 0x12, 0x40, 0x00, 0x61, 0x05, 0x61, 0xe6, 0xff, 0xff, 0xf7, 0xe7, 0xff, + 0xff, 0xf7, 0x05, 0xff, 0xff, 0xff, 0x2f, 0xff, 0xff, 0x7f, 0x2f, 0xff, + 0xbf, 0x7f, 0x2f, 0xff, 0xbf, 0x7f, 0x3f, 0xff, 0xff, 0x7f, 0x3f, 0xbf, + 0x7f, 0x7f, 0x3f, 0xbf, 0x7f, 0x3f, 0x3f, 0xbf, 0x7f, 0x3f, 0x2f, 0xfe, + 0xff, 0xef, 0xe5, 0xf5, 0xff, 0xef, 0xe5, 0xe3, 0xef, 0xe7, 0xe5, 0x63, + 0xe3, 0xeb, 0xdf, 0xcb, 0xc3, 0xc1, 0xdf, 0xcb, 0xc7, 0xc2, 0xff, 0xef, + 0xc7, 0xc2, 0xff, 0xef, 0xcb, 0x82, 0xfb, 0xff, 0x7d, 0x79, 0xf8, 0xff, + 0xfd, 0xf9, 0x08, 0x58, 0xf8, 0xff, 0xff, 0x5b, 0xf8, 0xff, 0xff, 0xdb, + 0xf8, 0xff, 0xff, 0xdf, 0xf8, 0xff, 0xff, 0xdd, 0xf8, 0xff, 0xff, 0xfd, + 0x08, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x16, 0xff, 0xff, 0xff, + 0x06, 0xff, 0xff, 0xbf, 0x06, 0x12, 0x87, 0xff, 0xff, 0xff, 0x03, 0xfe, + 0xff, 0xff, 0x0b, 0xfe, 0xff, 0xff, 0x2b, 0x3a, 0x07, 0x43, 0xff, 0xff, + 0xff, 0x50, 0x12, 0x35, 0xff, 0xff, 0xfd, 0xe0, 0xff, 0xff, 0xfd, 0xe4, + 0xff, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xfe, 0xe4, 0xff, 0xff, 0xfe, 0xf4, + 0xe6, 0xff, 0xdf, 0x9f, 0x1f, 0x61, 0xf6, 0xff, 0xff, 0x1f, 0xff, 0xff, + 0xbf, 0x1f, 0xff, 0xdf, 0xbf, 0x1f, 0xff, 0xdf, 0xbf, 0x9f, 0xff, 0xff, + 0xbf, 0x9f, 0xdf, 0xbf, 0xbf, 0x9f, 0x9f, 0xfd, 0xfb, 0xf9, 0xf9, 0xfd, + 0xfb, 0xf9, 0xf1, 0xff, 0xfb, 0xf1, 0xf5, 0xff, 0xfb, 0xf1, 0xe9, 0xfb, + 0xf9, 0xf1, 0xe9, 0x37, 0xa6, 0xfa, 0xf1, 0xe1, 0xa1, 0xfb, 0xf1, 0xe9, + 0xc1, 0x27, 0xff, 0xfe, 0xf4, 0xe0, 0xff, 0xfe, 0xf8, 0xe0, 0xff, 0xfe, + 0xf8, 0xf0, 0x01, 0x8b, 0xff, 0xfe, 0xfc, 0xf4, 0x12, 0x47, 0xfa, 0xfb, + 0xf9, 0xf9, 0xf9, 0xfb, 0xfb, 0xfd, 0xc1, 0xcf, 0xdf, 0xef, 0x8f, 0xcf, + 0xdf, 0xef, 0x8f, 0xef, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x8f, 0xdf, + 0xff, 0xff, 0x8f, 0xdf, 0xef, 0xff, 0xcf, 0xdf, 0xef, 0xff, 0xcf, 0xdf, + 0xff, 0xff, 0xaf, 0xfc, 0xfe, 0xff, 0xff, 0xf4, 0xfe, 0xff, 0xff, 0xe4, + 0xfe, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xff, 0xe4, 0xfd, 0xff, 0xff, 0xe0, + 0xfd, 0xff, 0xff, 0x01, 0x73, 0x01, 0xf5, 0x01, 0x1c, 0xff, 0xff, 0x1f, + 0x1c, 0xdf, 0xff, 0x1f, 0x1e, 0xdf, 0xff, 0x9f, 0x9e, 0xdf, 0xff, 0x5f, + 0xa2, 0x96, 0x9f, 0xbf, 0xbf, 0x9f, 0x1e, 0x9f, 0xbf, 0x9f, 0x1e, 0xbf, + 0xff, 0x5f, 0xe8, 0xf3, 0xfb, 0xfd, 0xe9, 0xf3, 0xf3, 0xe9, 0xfd, 0xfb, + 0xf3, 0xe9, 0xff, 0xff, 0xf3, 0xcb, 0xff, 0xff, 0xf3, 0x29, 0xff, 0xff, + 0xf3, 0xa1, 0xff, 0xff, 0xf3, 0x81, 0x36, 0xbe, 0xe1, 0xbf, 0x1f, 0x1c, + 0xe8, 0xdf, 0x9f, 0x1c, 0xe8, 0xdf, 0x9f, 0x12, 0xe0, 0xdf, 0x1f, 0x0a, + 0xe0, 0xff, 0x5f, 0x0b, 0xe0, 0xff, 0xd7, 0x02, 0xe0, 0xff, 0xb7, 0x00, + 0xe0, 0xff, 0xbf, 0x14, 0x20, 0xfc, 0x6b, 0x95, 0x02, 0xfc, 0x6b, 0x01, + 0x00, 0xfc, 0x6b, 0x00, 0x00, 0xfc, 0xeb, 0x02, 0x00, 0x08, 0x84, 0xff, + 0x5f, 0x01, 0x00, 0xfe, 0x4b, 0x01, 0x00, 0xfe, 0x49, 0x01, 0x00, 0x4a, + 0x7f, 0x72, 0x20, 0x80, 0x87, 0xbc, 0x7f, 0x68, 0x60, 0xe0, 0xe2, 0xc8, + 0x7f, 0x30, 0x30, 0xf0, 0xff, 0x30, 0x30, 0x70, 0xfb, 0x31, 0x30, 0xf0, + 0x7f, 0x35, 0x30, 0xf0, 0xf0, 0xbd, 0x1a, 0x10, 0xf8, 0x1f, 0x08, 0x10, + 0xf8, 0x1f, 0x08, 0x00, 0xa0, 0xa4, 0xe9, 0xa0, 0xff, 0x1f, 0x00, 0x20, + 0xe0, 0x1f, 0x00, 0x40, 0xe0, 0x5f, 0x40, 0x40, 0x60, 0xb5, 0x2f, 0x20, + 0x20, 0xb0, 0x2a, 0x20, 0x30, 0xb0, 0x3a, 0x30, 0x30, 0x30, 0x38, 0x34, + 0x30, 0x70, 0xd0, 0x77, 0x30, 0x30, 0x30, 0x50, 0x72, 0x62, 0x61, 0xe1, + 0x60, 0xa0, 0x5c, 0x58, 0x38, 0x38, 0xf8, 0xcb, 0xfa, 0x58, 0x38, 0x10, + 0x78, 0xd8, 0xf2, 0xf2, 0xb1, 0x70, 0xf0, 0xb0, 0xb1, 0x71, 0x72, 0xb0, + 0xf0, 0xf1, 0xb2, 0xf0, 0xf1, 0xf1, 0x52, 0x2f, 0x3c, 0x7c, 0x7c, 0x6c, + 0xcc, 0x1c, 0x3c, 0xbc, 0xfc, 0x2d, 0x7c, 0xbc, 0xfc, 0x2d, 0x7c, 0xfc, + 0xfe, 0x2f, 0xbc, 0xfc, 0xfe, 0x2f, 0xbc, 0xfc, 0xff, 0x07, 0xcc, 0xf3, + 0xc7, 0xcf, 0xef, 0xff, 0xc7, 0xef, 0xff, 0xff, 0xc6, 0xef, 0xff, 0xff, + 0xc6, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x3f, 0xc2, 0xf4, 0xcb, 0xff, + 0xff, 0xff, 0xcb, 0xef, 0xff, 0xff, 0xfc, 0xe7, 0xf7, 0xff, 0x1f, 0x61, + 0xf9, 0xe7, 0xef, 0xff, 0xff, 0xe5, 0xef, 0xff, 0xff, 0xe5, 0xef, 0xf7, + 0xff, 0xe7, 0xef, 0xf7, 0x5f, 0xe2, 0xd0, 0xcf, 0xcf, 0xdf, 0x2f, 0x5e, + 0x7e, 0xfe, 0x7e, 0x7f, 0xfe, 0xfe, 0x7e, 0x3f, 0xde, 0xfe, 0x7e, 0x3f, + 0x5e, 0xfe, 0xfe, 0x3f, 0x5e, 0x7e, 0xfe, 0x7e, 0x7e, 0xfe, 0xfe, 0x5e, + 0x5f, 0xfe, 0xfe, 0x0f, 0x5f, 0xff, 0xff, 0x17, 0x07, 0x6f, 0xff, 0xff, + 0x01, 0x6f, 0xff, 0xff, 0x1b, 0x5f, 0x02, 0x16, 0xfe, 0xfe, 0x03, 0x16, + 0xf0, 0xfe, 0x07, 0x16, 0x54, 0xf6, 0x8b, 0x1b, 0x06, 0x06, 0x86, 0xfe, + 0x31, 0x30, 0x30, 0xfc, 0x3f, 0x20, 0x10, 0xf4, 0x6f, 0x20, 0x10, 0xf0, + 0x6f, 0x30, 0x20, 0xf0, 0x2f, 0x20, 0x20, 0xf0, 0x2f, 0x20, 0x20, 0xb0, + 0x2f, 0x20, 0x20, 0xb9, 0x3b, 0x20, 0x20, 0xb0, 0x4a, 0xc5, 0xed, 0x02, + 0x02, 0x56, 0xaa, 0x02, 0xa2, 0x17, 0xab, 0x03, 0xa7, 0x17, 0xab, 0x17, + 0xa6, 0x02, 0xab, 0x15, 0x0a, 0x06, 0xab, 0x01, 0x02, 0x07, 0x0b, 0x01, + 0x02, 0x03, 0x03, 0x12, 0x20, 0x30, 0x70, 0x10, 0x20, 0x70, 0x70, 0x00, + 0x20, 0x70, 0xd0, 0x00, 0x00, 0x70, 0xd0, 0x02, 0x00, 0x60, 0xf0, 0x06, + 0x00, 0x50, 0xf0, 0x06, 0x00, 0x00, 0xf0, 0x26, 0xd1, 0x00, 0x00, 0x00, + 0x80, 0x0d, 0x00, 0x00, 0x81, 0x0d, 0x00, 0x00, 0x81, 0x05, 0x80, 0x00, + 0x81, 0x05, 0x80, 0x00, 0x81, 0x01, 0x80, 0x00, 0x81, 0x03, 0x00, 0x00, + 0x81, 0x03, 0x00, 0x00, 0x80, 0x83, 0x06, 0x00, 0x20, 0xe0, 0x00, 0x00, + 0x20, 0x60, 0x00, 0x00, 0x20, 0x60, 0x01, 0x00, 0x20, 0x60, 0x03, 0x61, + 0x11, 0xe1, 0x1f, 0xdd, 0x7b, 0x00, 0x16, 0xe1, 0x37, 0xdd, 0x87, 0x03, + 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0x80, 0x81, 0x00, 0x00, 0x80, 0x85, + 0x00, 0x00, 0x80, 0x8d, 0x00, 0x00, 0x80, 0x0d, 0x00, 0x00, 0x00, 0xdd, + 0x10, 0x00, 0x00, 0x58, 0x10, 0x00, 0x00, 0x58, 0x10, 0x08, 0x00, 0x18, + 0x10, 0x08, 0x00, 0x38, 0x10, 0x08, 0x00, 0x38, 0x10, 0x00, 0x00, 0x08, + 0x98, 0x0a, 0x08, 0xa3, 0xe5, 0x00, 0x00, 0xa0, 0xe1, 0x40, 0x00, 0x60, + 0xe1, 0x40, 0x20, 0x60, 0x60, 0x40, 0x20, 0xe0, 0x60, 0x40, 0x20, 0xe0, + 0xe0, 0x40, 0x20, 0xe0, 0xe0, 0x60, 0x61, 0x61, 0xe0, 0x60, 0x61, 0x81, + 0x4a, 0x1a, 0x06, 0x06, 0x06, 0x0e, 0x86, 0x06, 0x06, 0x06, 0xa6, 0x06, + 0x26, 0x06, 0xb6, 0x0e, 0x06, 0x02, 0xfe, 0x0c, 0x02, 0x02, 0xde, 0x0c, + 0x00, 0x00, 0xde, 0x0a, 0x00, 0x00, 0xaa, 0x37, 0x00, 0x00, 0x00, 0x97, + 0x00, 0x00, 0x80, 0x83, 0x61, 0x55, 0x00, 0x80, 0x00, 0x55, 0x00, 0x00, + 0xc8, 0xe2, 0xce, 0x5d, 0x40, 0x40, 0xc0, 0x7f, 0x40, 0x40, 0xc0, 0xf4, + 0x0f, 0x08, 0x0c, 0xf9, 0x0f, 0x0c, 0x0c, 0xff, 0x0f, 0x0e, 0x0e, 0xfe, + 0x0f, 0x0d, 0x0e, 0xee, 0x0f, 0x05, 0x0a, 0xea, 0x0b, 0x04, 0x00, 0x20, + 0x11, 0xc9, 0x07, 0x00, 0x00, 0x48, 0xf9, 0x50, 0x00, 0x00, 0xf9, 0x90, + 0x00, 0x00, 0xfd, 0x90, 0x40, 0x40, 0xff, 0x00, 0x40, 0x40, 0xff, 0x00, + 0x40, 0xe0, 0xff, 0x80, 0x40, 0x00, 0x25, 0x8d, 0xbf, 0x1b, 0x01, 0x00, + 0xfc, 0xb6, 0x21, 0x00, 0xf0, 0xb2, 0x20, 0x00, 0xf0, 0xb2, 0x60, 0x10, + 0xf0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xf0, 0x20, 0x50, 0xf7, 0xf1, + 0xf1, 0xb0, 0xf0, 0xf1, 0xf1, 0xf2, 0xc2, 0x07, 0x1f, 0x6f, 0xbf, 0x06, + 0x1b, 0x2f, 0xbf, 0x02, 0x1b, 0x6f, 0xbf, 0x06, 0x1b, 0x7f, 0xff, 0x87, + 0x5f, 0x7f, 0xff, 0x12, 0x75, 0x05, 0xff, 0xff, 0xff, 0x06, 0xff, 0xff, + 0xff, 0x30, 0xf8, 0xfd, 0xff, 0xb7, 0xf8, 0xff, 0xff, 0xb7, 0x78, 0xfb, + 0xff, 0xff, 0x7a, 0xfb, 0xfd, 0xff, 0x79, 0x7b, 0xff, 0xff, 0xfd, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf7, 0xf7, 0xff, 0xff, + 0xff, 0xf4, 0xff, 0xff, 0xeb, 0xf4, 0xff, 0xfb, 0xf9, 0xfc, 0x08, 0xab, + 0xfe, 0xff, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xff, 0xf4, 0xeb, 0xff, 0xff, + 0xfc, 0xf9, 0xfb, 0xff, 0x1e, 0x3a, 0xff, 0xff, 0x1f, 0x28, 0xff, 0xff, + 0x1f, 0xea, 0xff, 0xff, 0x5f, 0xe2, 0x28, 0xe4, 0xff, 0xff, 0x3f, 0xa4, + 0xff, 0xff, 0x3f, 0xe5, 0xff, 0xff, 0x3f, 0x65, 0xfe, 0xff, 0x7f, 0x82, + 0xc4, 0x6f, 0xf7, 0x87, 0x24, 0xef, 0xff, 0x07, 0x24, 0xcf, 0xf7, 0x87, + 0x24, 0xc7, 0xf7, 0x87, 0xa6, 0xcf, 0xf7, 0x87, 0x86, 0xc7, 0xef, 0xdf, + 0xf8, 0x0c, 0x0e, 0x4f, 0x4f, 0x0f, 0x70, 0x7a, 0x7a, 0x7c, 0x7c, 0x7a, + 0x7a, 0x70, 0x7a, 0x7a, 0x78, 0x70, 0x7a, 0x7a, 0x7c, 0x7c, 0x70, 0x7a, + 0xfc, 0x7e, 0x70, 0x7a, 0xff, 0x7f, 0x20, 0x72, 0xff, 0x7f, 0x20, 0xf0, + 0xfe, 0x7f, 0xda, 0x98, 0x06, 0x80, 0xf2, 0xff, 0x07, 0xa0, 0xf4, 0xff, + 0x07, 0x80, 0xcc, 0xff, 0x07, 0x00, 0xd0, 0xfd, 0x07, 0x00, 0xd0, 0xf8, + 0x07, 0x00, 0xd0, 0xfa, 0x07, 0x00, 0x00, 0xfa, 0x1f, 0x97, 0xd4, 0x03, + 0x00, 0x01, 0xfe, 0x1f, 0xdc, 0x0a, 0x00, 0x00, 0xf8, 0x17, 0x00, 0x00, + 0xf8, 0x2f, 0x39, 0x0e, 0x09, 0x00, 0xf0, 0x0f, 0x09, 0x0c, 0xf8, 0xcf, + 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x81, 0xef, 0xc0, 0x80, 0xd5, 0xef, + 0xc0, 0xc0, 0xd5, 0xff, 0xc0, 0xc0, 0xc1, 0xff, 0xc5, 0xf5, 0xc1, 0xc0, + 0xc0, 0xff, 0xc0, 0xc0, 0xd0, 0xff, 0x02, 0x0e, 0x0e, 0xfd, 0x0f, 0x0e, + 0x0e, 0xfe, 0x0f, 0x0f, 0x0c, 0xfc, 0x0f, 0x0d, 0x0c, 0xbc, 0x0d, 0x0c, + 0x0c, 0xbc, 0x0d, 0x0c, 0x0c, 0xac, 0x0e, 0x0c, 0x0c, 0x0c, 0x7e, 0x70, + 0xd3, 0x80, 0x03, 0x03, 0x03, 0x97, 0x44, 0xc8, 0x81, 0x81, 0x81, 0xcb, + 0xa1, 0x81, 0x81, 0xc0, 0xa1, 0x01, 0x81, 0xa0, 0xa1, 0x01, 0x81, 0x80, + 0x81, 0x01, 0x81, 0x80, 0x81, 0x81, 0xc9, 0xa9, 0xe4, 0x18, 0x10, 0x30, + 0x34, 0x1c, 0x10, 0x20, 0x24, 0x18, 0x10, 0x20, 0x34, 0x38, 0x10, 0x20, + 0x30, 0x30, 0x10, 0x20, 0x34, 0x34, 0x00, 0x00, 0x20, 0x34, 0x00, 0x10, + 0x20, 0xb4, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x82, 0x03, 0x00, + 0x00, 0x82, 0x03, 0x00, 0x00, 0x92, 0x03, 0x00, 0x00, 0x90, 0x03, 0x00, + 0x00, 0x91, 0x03, 0x00, 0x00, 0x81, 0x23, 0x2c, 0x14, 0x08, 0x7f, 0x11, + 0xfe, 0x20, 0xcc, 0x43, 0x03, 0x00, 0x00, 0x40, 0x03, 0x02, 0x00, 0x40, + 0x03, 0x02, 0x01, 0x00, 0x03, 0x02, 0x01, 0x80, 0x03, 0x02, 0x01, 0x30, + 0x38, 0x20, 0x00, 0x00, 0x39, 0x20, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x39, 0x10, 0x00, 0x00, 0x38, 0x10, 0x00, 0x40, 0xc0, 0x34, 0x1c, 0x30, + 0x10, 0x00, 0x04, 0x10, 0x10, 0x00, 0x28, 0x80, 0x00, 0x00, 0x28, 0x02, + 0x00, 0x00, 0x08, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x08, 0x00, 0x00, + 0x02, 0x28, 0x00, 0x00, 0x80, 0x28, 0x00, 0x80, 0x80, 0x20, 0x00, 0x00, + 0x80, 0xa0, 0x6f, 0x00, 0x00, 0x00, 0xd0, 0x1c, 0xfd, 0x08, 0x73, 0x74, + 0x69, 0x91, 0xdb, 0x07, 0xe9, 0xe0, 0xa0, 0x80, 0x00, 0x8e, 0x3e, 0x4b, + 0xf7, 0x91, 0x2e, 0x03, 0x0d, 0x04, 0x00, 0x40, 0x0f, 0x0d, 0x04, 0x00, + 0x07, 0x0d, 0x0c, 0x04, 0x06, 0x09, 0x08, 0x44, 0x06, 0x0a, 0x0c, 0x04, + 0x0e, 0x0e, 0x0d, 0xdc, 0x80, 0x83, 0x43, 0x43, 0xd3, 0x83, 0x43, 0x03, + 0xd2, 0xc3, 0x43, 0x17, 0xc1, 0xc3, 0x57, 0x55, 0x05, 0xb4, 0x06, 0x2c, + 0xa7, 0x0c, 0x21, 0xfc, 0xc8, 0x00, 0x5b, 0x53, 0x9e, 0x75, 0x0c, 0x6e, + 0xec, 0x0e, 0x58, 0xc2, 0x2c, 0xde, 0xd8, 0xf5, 0xbd, 0x37, 0x17, 0x15, + 0x6e, 0x14, 0xf6, 0x14, 0x04, 0xac, 0x74, 0xbc, 0xd8, 0x28, 0x28, 0x2a, + 0x28, 0xda, 0x93, 0x05, 0xce, 0xe3, 0x3c, 0x4f, 0x19, 0x44, 0xf8, 0x29, + 0xf2, 0x58, 0x3d, 0x6d, 0x90, 0x09, 0x89, 0x7d, 0x0d, 0x26, 0x43, 0xa2, + 0x21, 0x97, 0x2f, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x3e, 0xae, 0x33, + 0xd7, 0x31, 0xaf, 0x4b, 0xb1, 0x21, 0x25, 0x50, 0xd6, 0xf0, 0x04, 0x24, + 0x55, 0x9d, 0xba, 0x4e, 0xae, 0xaf, 0xaf, 0xaf, 0xab, 0xab, 0xab, 0xab, + 0x07, 0x35, 0x75, 0x75, 0x75, 0x75, 0x75, 0x7d, 0x7d, 0x75, 0x75, 0xf5, + 0x7f, 0x55, 0x55, 0xfd, 0x7f, 0x81, 0x80, 0xaa, 0xea, 0xeb, 0xbf, 0xaa, + 0xaa, 0xea, 0xbf, 0xaa, 0xaa, 0xea, 0x4f, 0x4e, 0x19, 0x03, 0xd8, 0x91, + 0x32, 0x9a, 0x32, 0x8e, 0xf0, 0xbd, 0xe1, 0x74, 0xc7, 0x70, 0x47, 0x6a, + 0xa7, 0xae, 0xa6, 0xa6, 0x7e, 0xd0, 0x6d, 0x12, 0xff, 0xba, 0xa3, 0xaa, + 0xa6, 0xa9, 0xd9, 0x70, 0xca, 0x23, 0xa1, 0xaa, 0x6a, 0x8a, 0x56, 0xa5, + 0xaa, 0x9a, 0xa2, 0xa6, 0xaa, 0xaa, 0xae, 0x0e, 0x8d, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xa6, 0xa6, 0xae, 0x1e, 0x44, 0xd3, 0x53, 0x52, 0xd2, 0xff, + 0xd3, 0xd3, 0xd3, 0xfd, 0xff, 0xea, 0xea, 0xea, 0xff, 0xab, 0xaa, 0xea, + 0xbf, 0xaa, 0xaa, 0x2a, 0x62, 0xf2, 0x5f, 0x5d, 0x5d, 0xfd, 0x5f, 0x5f, + 0x55, 0x55, 0x5f, 0x5f, 0x5d, 0x7d, 0x46, 0x5d, 0x5d, 0xfd, 0xde, 0xd1, + 0xdb, 0x91, 0x38, 0xe8, 0x42, 0x7c, 0xfb, 0xbd, 0x13, 0xf1, 0xda, 0xeb, + 0xeb, 0xea, 0xaa, 0xc0, 0xba, 0xe5, 0xea, 0xea, 0xeb, 0xeb, 0xea, 0xea, + 0xea, 0xbf, 0xaa, 0xaa, 0x2a, 0xff, 0x41, 0x4c, 0x55, 0x55, 0xf5, 0x58, + 0x55, 0x55, 0x75, 0x1a, 0x31, 0x05, 0xa4, 0xaa, 0x7a, 0x27, 0x60, 0xa0, + 0xaf, 0x6f, 0x60, 0xa1, 0xaf, 0x6f, 0x6c, 0xac, 0xaf, 0x6f, 0xfd, 0xac, + 0xfd, 0xff, 0xfd, 0xad, 0xfd, 0xfd, 0xed, 0xed, 0xed, 0xfd, 0xe4, 0xed, + 0xed, 0xed, 0xb8, 0xe3, 0xb3, 0xfe, 0xfe, 0xd6, 0xfe, 0xff, 0x7e, 0xd6, + 0x7e, 0x8f, 0x5a, 0x8f, 0x1a, 0x8f, 0xb0, 0x47, 0xdd, 0xff, 0xff, 0xfa, + 0xc7, 0xff, 0xff, 0xdb, 0xc1, 0xfe, 0xff, 0xff, 0xcd, 0xe2, 0xff, 0xff, + 0x6d, 0xeb, 0xff, 0xff, 0x2d, 0x60, 0x63, 0xf6, 0xff, 0x6f, 0x21, 0xe0, + 0x1f, 0x6f, 0x21, 0x60, 0x5f, 0x65, 0x61, 0xa0, 0xb8, 0x11, 0xff, 0x43, + 0x03, 0x03, 0xff, 0xc3, 0x03, 0x03, 0xff, 0x41, 0x02, 0x03, 0xff, 0x01, + 0x02, 0x06, 0xff, 0x02, 0x03, 0x06, 0xff, 0x03, 0x03, 0x0f, 0xff, 0x03, + 0x03, 0xbf, 0xbf, 0x03, 0x03, 0xff, 0x78, 0x18, 0x18, 0xf8, 0x1f, 0x18, + 0x18, 0x38, 0x1f, 0x18, 0x18, 0x18, 0x1a, 0x18, 0x18, 0x5a, 0x1b, 0x18, + 0x18, 0x1a, 0x0c, 0x08, 0x08, 0x0a, 0x0e, 0x0a, 0x08, 0x58, 0x0b, 0x08, + 0x08, 0xf0, 0x9f, 0x06, 0x04, 0x18, 0xfc, 0x01, 0x04, 0x1c, 0x7c, 0x00, + 0x04, 0x0c, 0x28, 0x00, 0x08, 0x0c, 0x28, 0x1c, 0xbc, 0x2c, 0xee, 0x50, + 0xb5, 0x12, 0x10, 0x58, 0xbd, 0x10, 0x15, 0xc0, 0xea, 0xc5, 0xe9, 0xc0, + 0xfe, 0x85, 0xc0, 0xc0, 0x7f, 0xc7, 0x41, 0xc0, 0xdd, 0xc7, 0xc1, 0xc0, + 0xf9, 0xc0, 0xc0, 0xc0, 0xda, 0xd0, 0xc0, 0xc0, 0x5a, 0x40, 0x40, 0x90, + 0x3a, 0x10, 0x50, 0x10, 0xab, 0x03, 0x03, 0x03, 0xab, 0x03, 0x02, 0x02, + 0xab, 0x53, 0x1a, 0x02, 0xaa, 0x53, 0x1b, 0x03, 0xaa, 0x13, 0x16, 0x16, + 0x16, 0x9f, 0x9b, 0xa9, 0xac, 0xac, 0xbc, 0xac, 0xac, 0xac, 0x7c, 0x1c, + 0x5c, 0xb9, 0xbc, 0xbc, 0xb4, 0x34, 0xbf, 0xbc, 0xbc, 0x34, 0xb7, 0xb4, + 0xb4, 0x34, 0x35, 0x35, 0x25, 0x25, 0x35, 0x35, 0x35, 0x15, 0xe8, 0x3c, + 0x78, 0x45, 0xc5, 0x6d, 0xc0, 0x80, 0x80, 0xea, 0x40, 0x40, 0x00, 0xea, + 0x41, 0x40, 0x40, 0xea, 0x40, 0x40, 0x40, 0x42, 0xc0, 0xc0, 0xc1, 0xc2, + 0xc2, 0xc1, 0xc0, 0xc0, 0xdb, 0xc0, 0xc0, 0xc0, 0xd8, 0x06, 0x06, 0x86, + 0xfe, 0x07, 0x06, 0x0e, 0xfe, 0x17, 0x1e, 0x16, 0xfe, 0x17, 0x3c, 0x54, + 0xfc, 0x9f, 0x1c, 0x1e, 0xfc, 0x1f, 0x18, 0x9a, 0xfe, 0x1f, 0xd8, 0x98, + 0xfc, 0x7f, 0xd8, 0x98, 0xc1, 0xff, 0xc8, 0xcc, 0xc8, 0xff, 0xd0, 0xef, + 0xc0, 0xef, 0xdb, 0xc7, 0xc1, 0xef, 0xcb, 0x86, 0xc1, 0xef, 0xdb, 0x86, + 0xc0, 0xff, 0xdf, 0x86, 0xc1, 0xff, 0xdf, 0xc3, 0xd1, 0xef, 0xde, 0x8b, + 0x41, 0xf5, 0xfb, 0xf7, 0xf6, 0xf1, 0xf1, 0xf6, 0xf6, 0xe1, 0x59, 0xf2, + 0xff, 0xfe, 0xf6, 0xf3, 0xf7, 0xf7, 0xf3, 0x23, 0x11, 0xfe, 0xff, 0xd3, + 0xf9, 0xfb, 0xfb, 0xd3, 0xfb, 0xdb, 0xfc, 0xe9, 0xfd, 0xfd, 0xfd, 0xe9, + 0xfc, 0xfd, 0x7f, 0xac, 0xff, 0xff, 0x6f, 0xfc, 0xfd, 0xff, 0x2f, 0xfc, + 0xfd, 0xff, 0x1f, 0x8c, 0xb5, 0x4c, 0xe4, 0xfa, 0xfa, 0xfa, 0x02, 0xc5, + 0xd7, 0xd7, 0x05, 0xc5, 0xd7, 0x17, 0x05, 0xc5, 0xd7, 0x17, 0x17, 0xe5, + 0xd7, 0x97, 0x0c, 0x8c, 0x94, 0x97, 0x0d, 0x18, 0x94, 0x86, 0x03, 0x0c, + 0x96, 0x0e, 0x03, 0x08, 0x1a, 0x0e, 0xc5, 0x01, 0x43, 0x83, 0x83, 0x43, + 0x43, 0x83, 0x83, 0x0b, 0xd4, 0xe0, 0xe3, 0xd3, 0xd3, 0xfb, 0xe7, 0xd3, + 0x43, 0xfb, 0xe3, 0x93, 0x43, 0xfa, 0xe7, 0x93, 0x03, 0xfe, 0xf7, 0x93, + 0x43, 0xea, 0xff, 0xbf, 0x3f, 0xe4, 0xff, 0xff, 0x3f, 0xe4, 0xff, 0xff, + 0x3f, 0xe5, 0xfb, 0xfb, 0x7f, 0xe5, 0xfb, 0xfb, 0x7f, 0xd5, 0xfb, 0xfb, + 0xff, 0x91, 0x49, 0xd9, 0xc0, 0x7e, 0x2b, 0xd0, 0x5a, 0x54, 0xd4, 0x5f, + 0x5f, 0x54, 0xf0, 0xff, 0x5f, 0x50, 0xf0, 0xff, 0x4d, 0x40, 0xf1, 0x7f, + 0x0f, 0x41, 0xf1, 0x9f, 0x0f, 0x09, 0xf0, 0x9f, 0x6e, 0x01, 0x60, 0xfe, + 0xdf, 0x0c, 0x00, 0x06, 0x7c, 0x7d, 0x41, 0x41, 0x3d, 0x3c, 0x40, 0x41, + 0x3d, 0x3c, 0x54, 0x55, 0x7d, 0x3c, 0x1c, 0x45, 0x7d, 0x2e, 0x0d, 0x05, + 0x71, 0x29, 0x0d, 0x05, 0xe5, 0x82, 0x60, 0x53, 0x15, 0xf4, 0x01, 0x81, + 0x35, 0xe9, 0x99, 0x94, 0xa7, 0x55, 0x85, 0x08, 0xbf, 0x8a, 0x80, 0xd5, + 0x8e, 0xf8, 0x41, 0x4f, 0x55, 0x55, 0xe5, 0xbe, 0x55, 0x55, 0xd5, 0x7f, + 0x55, 0x95, 0xd5, 0x7b, 0x45, 0xc5, 0xd5, 0x75, 0x45, 0x45, 0xc4, 0xaf, + 0x0b, 0x38, 0xe8, 0xf8, 0x1f, 0x38, 0xf8, 0xb8, 0x7b, 0xd8, 0x24, 0x70, + 0xb0, 0xf0, 0x11, 0x60, 0xb0, 0xf0, 0x02, 0x20, 0xb0, 0xf0, 0x02, 0x20, + 0xb0, 0xf1, 0x06, 0x10, 0xb0, 0xf1, 0x0b, 0x80, 0x82, 0xdf, 0x7f, 0x00, + 0x8b, 0xdf, 0x7f, 0x00, 0xad, 0xff, 0xff, 0x80, 0x8d, 0xdf, 0xff, 0x99, + 0x8d, 0x87, 0xff, 0xc9, 0x8d, 0x81, 0xff, 0xe9, 0xa1, 0x81, 0xff, 0xc1, + 0xe1, 0xc9, 0x7f, 0x08, 0x0f, 0x0b, 0xff, 0x03, 0x03, 0x0f, 0xff, 0x03, + 0x03, 0x1f, 0xb7, 0x03, 0x03, 0x6f, 0x93, 0x03, 0x01, 0x43, 0x97, 0x03, + 0x01, 0x41, 0xf6, 0x03, 0x00, 0x40, 0xe6, 0x03, 0x00, 0x00, 0xe4, 0x3b, + 0x00, 0x00, 0xa8, 0x7c, 0x00, 0x00, 0x20, 0xdf, 0x83, 0x11, 0x00, 0x80, + 0x00, 0x17, 0x00, 0x00, 0x68, 0x37, 0x00, 0x20, 0x68, 0x7a, 0x00, 0x20, + 0x60, 0x38, 0x00, 0x40, 0x70, 0x7c, 0x05, 0x82, 0x04, 0xc7, 0x07, 0x00, + 0x24, 0xcf, 0x07, 0x00, 0x20, 0xfd, 0x07, 0x00, 0x28, 0xfd, 0x07, 0x00, + 0x78, 0xfd, 0x07, 0x00, 0x78, 0x7d, 0x15, 0x68, 0xbb, 0xb8, 0x48, 0x5c, + 0xff, 0x87, 0x80, 0x00, 0x00, 0xef, 0x80, 0x80, 0x80, 0xae, 0x02, 0x04, + 0x84, 0xa2, 0x49, 0x14, 0x04, 0xa0, 0x69, 0x1c, 0x04, 0xa0, 0xe1, 0x38, + 0x14, 0x00, 0xe9, 0x3a, 0x06, 0x5a, 0x20, 0xfa, 0x8f, 0x00, 0x00, 0x48, + 0xb7, 0x00, 0x80, 0x00, 0x37, 0x48, 0xbf, 0x6a, 0xa5, 0x98, 0x49, 0xd4, + 0x60, 0x44, 0xa0, 0x1d, 0x0a, 0x0f, 0x0f, 0x0a, 0x5a, 0x5f, 0x0f, 0x0a, + 0x51, 0x47, 0x0f, 0x1f, 0x41, 0x43, 0x4b, 0x9f, 0x41, 0x43, 0x4f, 0x5c, + 0x01, 0x03, 0x07, 0x5b, 0x03, 0x02, 0x17, 0xfb, 0x07, 0x07, 0x06, 0xef, + 0x46, 0xc4, 0xc4, 0xe0, 0xd7, 0x33, 0x28, 0x60, 0xc0, 0x40, 0x02, 0x70, + 0xd0, 0x41, 0x0b, 0x70, 0xd0, 0x0b, 0x29, 0xe0, 0x40, 0x03, 0xad, 0xc0, + 0x41, 0x07, 0xfd, 0xdf, 0x41, 0x07, 0xed, 0xff, 0x17, 0xf0, 0xa0, 0xff, + 0xff, 0xf5, 0xa5, 0xff, 0xff, 0xfd, 0xf1, 0x0f, 0x46, 0xa9, 0xfe, 0xfd, + 0xfd, 0xab, 0xfe, 0xdf, 0xdf, 0x8f, 0xfe, 0xdf, 0xdf, 0xab, 0xfe, 0xf7, + 0xf7, 0x11, 0xfd, 0xbf, 0xbf, 0x2f, 0xad, 0xff, 0xff, 0xaf, 0x8f, 0xdf, + 0xff, 0x9f, 0x9e, 0x9e, 0xfe, 0x3f, 0x9c, 0xcc, 0xfc, 0x0f, 0x0c, 0x08, + 0xf4, 0x0f, 0x0c, 0x8a, 0xb4, 0x0d, 0x0a, 0x0a, 0xe5, 0x6f, 0x25, 0x72, + 0xbe, 0x1e, 0xa9, 0xa6, 0x9a, 0x9a, 0xaa, 0x07, 0x2a, 0x92, 0xaa, 0x03, + 0x2a, 0x96, 0xaf, 0x0b, 0x1a, 0x16, 0xae, 0x0a, 0x98, 0x5e, 0xac, 0x1a, + 0x28, 0x54, 0x60, 0x55, 0x60, 0xe1, 0x57, 0x55, 0xf5, 0xe1, 0x01, 0x11, + 0xf1, 0xe1, 0x21, 0x4d, 0xf5, 0xe1, 0x21, 0x4d, 0xf5, 0xe1, 0xe3, 0xe5, + 0xe5, 0xe3, 0xe3, 0xe5, 0xe3, 0x63, 0xe1, 0x64, 0x63, 0xe3, 0xe1, 0xe7, + 0xb9, 0x7e, 0x23, 0xa4, 0xa9, 0xa9, 0xa9, 0x61, 0x72, 0x52, 0x43, 0x53, + 0x53, 0x33, 0x6b, 0x40, 0x22, 0xf0, 0x75, 0x3f, 0x82, 0xc4, 0xd5, 0x52, + 0x01, 0xe9, 0x8e, 0xd7, 0x1b, 0xfb, 0x3a, 0x46, 0x54, 0x55, 0x35, 0x53, + 0xd4, 0x54, 0x35, 0x55, 0x92, 0x8a, 0xa6, 0xaa, 0x5a, 0x8a, 0xa6, 0xaa, + 0x2a, 0xc0, 0xae, 0xea, 0x2a, 0xc0, 0xff, 0xef, 0x2f, 0x40, 0xe9, 0xff, + 0x3f, 0x40, 0xa9, 0xd6, 0xbf, 0x67, 0x0e, 0x00, 0x10, 0xb9, 0x7f, 0x4d, + 0x50, 0x44, 0xdf, 0x7f, 0x1b, 0xa5, 0x20, 0xf8, 0xfe, 0xa7, 0x80, 0xb8, + 0xff, 0xa7, 0xa6, 0xf7, 0xff, 0x87, 0xa6, 0xef, 0x3e, 0x0e, 0xa7, 0xeb, + 0x3a, 0x22, 0x68, 0xb9, 0xd4, 0x14, 0x55, 0x57, 0x57, 0x5b, 0x55, 0x53, + 0x57, 0x59, 0x5d, 0x51, 0x51, 0x51, 0x25, 0x34, 0x37, 0x34, 0x6b, 0x5d, + 0x59, 0x55, 0x1d, 0x24, 0xfa, 0xc5, 0x67, 0x57, 0xaf, 0xae, 0xae, 0x0e, + 0x92, 0xb8, 0x69, 0x14, 0x38, 0x68, 0x20, 0x7c, 0x70, 0x48, 0x20, 0x7c, + 0x70, 0x40, 0x80, 0x7c, 0x72, 0x40, 0x00, 0xde, 0x07, 0xc5, 0x44, 0x54, + 0x85, 0xcc, 0x0c, 0x74, 0x47, 0x4c, 0x4c, 0x54, 0x07, 0x2c, 0xcc, 0x56, + 0x2f, 0xae, 0xae, 0x4e, 0xeb, 0xf5, 0x6f, 0xc7, 0x87, 0xfc, 0xef, 0x87, + 0x8f, 0xa6, 0x80, 0xc8, 0x71, 0x37, 0x3d, 0xf4, 0x51, 0x13, 0x1d, 0xf8, + 0x50, 0x02, 0x19, 0xf0, 0x40, 0x02, 0x0a, 0xd8, 0x80, 0x02, 0x4a, 0x98, + 0x80, 0x02, 0x06, 0x9c, 0x02, 0x03, 0x06, 0x0d, 0x12, 0x18, 0x30, 0x50, + 0x30, 0x18, 0x12, 0x14, 0x50, 0x18, 0x12, 0x0e, 0xc0, 0x50, 0x12, 0x06, + 0xc0, 0x50, 0x14, 0x06, 0xe0, 0x30, 0x14, 0x04, 0x68, 0x30, 0x18, 0x14, + 0x50, 0x30, 0x18, 0x12, 0xd6, 0x0a, 0x09, 0x0c, 0x18, 0x07, 0x09, 0x0c, + 0x28, 0x01, 0x03, 0x0d, 0x28, 0x66, 0x95, 0x43, 0x28, 0xd2, 0xd2, 0x28, + 0xac, 0xf4, 0xf5, 0xf5, 0x51, 0x9c, 0xfb, 0xfa, 0xfa, 0x58, 0xfa, 0xfa, + 0xfa, 0x50, 0xfe, 0xf6, 0xfe, 0x4a, 0x0e, 0x6e, 0xf8, 0xfb, 0xff, 0x03, + 0x1c, 0x8c, 0xff, 0xff, 0xbf, 0x1e, 0x1e, 0xbc, 0xc1, 0xef, 0xaf, 0xea, + 0xbf, 0xaf, 0xaf, 0x6f, 0x9a, 0xa5, 0xa5, 0xe5, 0x7a, 0xa1, 0xa1, 0xe0, + 0xba, 0xa2, 0xa1, 0xe0, 0xba, 0xba, 0x21, 0xa0, 0xba, 0x3f, 0x38, 0xa0, + 0xfa, 0x3f, 0x30, 0xf4, 0x3b, 0xde, 0xa1, 0x81, 0xff, 0xd5, 0x01, 0xc1, + 0xfd, 0xc1, 0x81, 0x00, 0xfe, 0xc1, 0xa9, 0x52, 0xff, 0xa1, 0xe9, 0x3a, + 0xfe, 0xa1, 0xf1, 0x16, 0xfe, 0x21, 0xa2, 0x3e, 0xfe, 0x20, 0xa0, 0x86, + 0x3e, 0x9c, 0x80, 0x80, 0xc0, 0x95, 0x90, 0x40, 0xc0, 0xd5, 0xc1, 0xbb, + 0x40, 0x40, 0xc0, 0xea, 0x6a, 0x40, 0xc0, 0xc0, 0x6a, 0x40, 0x40, 0xc0, + 0x7f, 0x00, 0x00, 0xca, 0x7f, 0x0a, 0x0a, 0x0a, 0xfc, 0x43, 0xc2, 0xd1, + 0xfc, 0x83, 0xc1, 0x90, 0x40, 0x82, 0xc1, 0xd0, 0x00, 0x02, 0x83, 0x92, + 0x00, 0x42, 0x83, 0xd3, 0x07, 0x41, 0xc3, 0xd3, 0x07, 0x05, 0x87, 0xdb, + 0x33, 0x27, 0x27, 0x1b, 0xb3, 0x71, 0x72, 0x32, 0x33, 0x33, 0x33, 0x36, + 0x36, 0x36, 0x36, 0x33, 0x33, 0x14, 0x54, 0x77, 0x77, 0x55, 0x15, 0x33, + 0x73, 0xfa, 0x24, 0x15, 0x15, 0x01, 0x3c, 0x35, 0x35, 0x35, 0xbd, 0xc2, + 0x47, 0xd7, 0xc3, 0xc3, 0xd7, 0x47, 0xc3, 0xe3, 0xd3, 0x83, 0x43, 0x83, + 0xc2, 0xc3, 0x83, 0x92, 0xd2, 0xd3, 0x93, 0xd2, 0xd3, 0x57, 0x51, 0x08, + 0xb4, 0x14, 0x15, 0xbf, 0x04, 0x2e, 0x0c, 0x94, 0x6d, 0x6d, 0x6d, 0xfd, + 0x7f, 0x97, 0x9b, 0x94, 0xfe, 0x6f, 0x6d, 0x6d, 0xb1, 0x26, 0xab, 0x93, + 0x16, 0x77, 0x62, 0xa8, 0x64, 0x0d, 0x0d, 0x0d, 0x6d, 0x1b, 0x09, 0x14, + 0x58, 0x33, 0x08, 0x08, 0x48, 0x37, 0x28, 0x20, 0x00, 0xa5, 0xe1, 0x20, + 0x00, 0x94, 0xe5, 0x20, 0xe0, 0x4d, 0xc2, 0x60, 0x30, 0x40, 0xdb, 0x71, + 0x00, 0x00, 0xd9, 0x7b, 0x00, 0x00, 0xe9, 0x16, 0x00, 0x10, 0xe0, 0x06, + 0x09, 0x60, 0x78, 0x10, 0xee, 0xd3, 0x5a, 0xf5, 0xa7, 0x26, 0x24, 0xb0, + 0x40, 0x13, 0x6e, 0xc0, 0x40, 0x02, 0x77, 0xd0, 0x41, 0x0b, 0x1c, 0xf0, + 0x41, 0x0f, 0x64, 0x18, 0x34, 0x0c, 0xed, 0x04, 0xe9, 0xa2, 0x09, 0x00, + 0x90, 0xd6, 0x63, 0x60, 0xf0, 0xf6, 0x63, 0x60, 0x68, 0xf7, 0xe0, 0xe1, + 0xe8, 0xeb, 0xe1, 0xe1, 0xeb, 0xe8, 0xe1, 0x60, 0x77, 0x68, 0xe0, 0xe3, + 0x76, 0x70, 0xc0, 0x79, 0xd0, 0x02, 0x02, 0x70, 0xd0, 0x80, 0x02, 0x67, + 0xe7, 0xd1, 0xc0, 0x80, 0x41, 0x92, 0xc0, 0x80, 0xfd, 0xd3, 0xc0, 0x41, + 0xfe, 0x8b, 0x88, 0x49, 0xae, 0x8b, 0x89, 0x49, 0xae, 0x87, 0x55, 0x01, + 0xc9, 0xb5, 0x55, 0x09, 0x29, 0xa9, 0x75, 0x49, 0x31, 0x91, 0x7d, 0x49, + 0x31, 0xb1, 0xaf, 0x07, 0x9a, 0x9a, 0x6a, 0xaa, 0xa6, 0x5a, 0xaa, 0xaa, + 0xa8, 0x55, 0xaa, 0xaa, 0x50, 0xa9, 0x52, 0x55, 0x7d, 0x78, 0x50, 0x55, + 0x7d, 0x78, 0x50, 0x4d, 0xfb, 0x78, 0x50, 0x4d, 0x7b, 0x78, 0xd0, 0xd7, + 0x4f, 0x50, 0xd2, 0xd7, 0x4f, 0x50, 0xd0, 0xcf, 0x4f, 0x53, 0x85, 0x87, + 0x7f, 0xa6, 0xa9, 0xc2, 0xd3, 0xab, 0xaa, 0xc2, 0xc3, 0xab, 0xaa, 0x56, + 0xa1, 0xaa, 0xaa, 0x56, 0xa9, 0x08, 0x74, 0xb8, 0x41, 0x03, 0x00, 0x18, + 0x56, 0x19, 0x56, 0x1c, 0xf0, 0x33, 0x7e, 0x49, 0xb7, 0xae, 0xaf, 0x87, + 0xaa, 0xaa, 0x5a, 0xa6, 0xa6, 0xa6, 0x52, 0xaa, 0xa6, 0xa6, 0xa9, 0xaa, + 0x5f, 0xf7, 0xfe, 0xa8, 0xa6, 0xaa, 0xa9, 0x68, 0xa6, 0xaa, 0xaa, 0x5f, + 0x03, 0x20, 0xdd, 0x9a, 0xa5, 0xaa, 0xaa, 0x01, 0x99, 0x9d, 0xab, 0x41, + 0x3d, 0xa4, 0x56, 0x3e, 0xf0, 0x3b, 0xf4, 0x3f, 0x32, 0x33, 0xf2, 0xbf, + 0x60, 0x27, 0xf8, 0xbf, 0x26, 0x29, 0xb0, 0xfa, 0xbb, 0x20, 0xb0, 0xfa, + 0x6b, 0x60, 0x22, 0xf2, 0x6e, 0x70, 0x70, 0x70, 0xfa, 0x17, 0xb4, 0x5b, + 0x30, 0xac, 0x1c, 0xad, 0xb6, 0x4f, 0xa8, 0x6d, 0xb3, 0xda, 0xea, 0xab, + 0xb7, 0xba, 0xaa, 0xa6, 0xb6, 0xde, 0x3e, 0x4a, 0x8c, 0x49, 0x6c, 0x90, + 0xc8, 0xd2, 0x0a, 0x49, 0x64, 0xd3, 0xc3, 0xab, 0xa6, 0xc1, 0xc3, 0xab, + 0xa6, 0xe5, 0xeb, 0x2b, 0x24, 0xa8, 0xbe, 0xbe, 0x52, 0x42, 0xb1, 0xb2, + 0x42, 0x42, 0xb9, 0x22, 0xa0, 0x3a, 0xa9, 0x62, 0xa0, 0x3a, 0x22, 0x26, + 0xe8, 0x7e, 0x62, 0x22, 0xa2, 0xbb, 0x49, 0xf7, 0x77, 0x7e, 0x97, 0x22, + 0xd5, 0xad, 0x62, 0x68, 0xad, 0x59, 0xd5, 0xd7, 0x2b, 0x28, 0xd4, 0xdb, + 0x2b, 0x28, 0xd8, 0xdb, 0x6b, 0x28, 0xd8, 0xef, 0x9b, 0x29, 0xd9, 0xc3, + 0x43, 0x69, 0xe9, 0x20, 0x7b, 0xb3, 0x5f, 0x36, 0x80, 0xc1, 0xdb, 0xbf, + 0xc1, 0xcb, 0xde, 0x6f, 0x5f, 0x70, 0xb8, 0xaa, 0x2a, 0x75, 0xb8, 0xaa, + 0x4a, 0x6d, 0x78, 0xf8, 0x5a, 0x50, 0x86, 0x06, 0x27, 0xc7, 0xc6, 0x26, + 0x07, 0x87, 0xec, 0xc3, 0x83, 0x83, 0xae, 0x83, 0x82, 0x8e, 0xff, 0x99, + 0x93, 0x87, 0xff, 0x81, 0xdf, 0xa1, 0xf7, 0xf7, 0xff, 0xa3, 0x25, 0x4a, + 0x7b, 0xaa, 0xaa, 0xdd, 0xdd, 0xaa, 0xaa, 0xa5, 0x9a, 0x5f, 0x77, 0xb3, + 0xf3, 0xad, 0xdd, 0xcb, 0xff, 0xa1, 0xdf, 0x81, 0xff, 0xa1, 0xc1, 0xe9, + 0xf1, 0x01, 0x8d, 0xa9, 0xd5, 0xb7, 0x80, 0x86, 0x94, 0xe5, 0xc5, 0x67, + 0x1a, 0x7a, 0x5e, 0x5f, 0xd3, 0x28, 0xfa, 0xdb, 0xfb, 0xa9, 0xf6, 0xe3, + 0x12, 0xb9, 0x1f, 0x07, 0x01, 0x00, 0xd7, 0xff, 0xdf, 0x8d, 0x00, 0xb3, + 0x0a, 0x30, 0x12, 0x06, 0x03, 0x68, 0x5a, 0xa7, 0xab, 0xec, 0x8d, 0x66, + 0x01, 0x8c, 0xa7, 0x57, 0x1c, 0xf6, 0xec, 0xa3, 0x59, 0x2e, 0x4b, 0x4c, + 0x78, 0x30, 0xf9, 0x36, 0x30, 0xb0, 0x69, 0x09, 0x7b, 0x56, 0x70, 0x78, + 0x4c, 0x4b, 0x16, 0x20, 0x70, 0xbe, 0x5f, 0x16, 0x01, 0x41, 0x9c, 0x81, + 0xcd, 0xe3, 0xae, 0xe3, 0xf8, 0xc7, 0xdc, 0x45, 0x44, 0xca, 0x95, 0xe7, + 0xbe, 0xfe, 0xf7, 0x94, 0x81, 0x46, 0x55, 0xdf, 0x81, 0xa5, 0x24, 0xf2, + 0x40, 0xa3, 0x3b, 0xa9, 0x17, 0x60, 0x30, 0x5b, 0x4f, 0x9e, 0xac, 0x53, + 0x90, 0x50, 0xd7, 0x3c, 0x32, 0xe6, 0x61, 0x40, 0x7a, 0x16, 0x24, 0x24, + 0x14, 0xc8, 0xbb, 0x60, 0x63, 0x6b, 0x12, 0x06, 0x2a, 0xff, 0x21, 0x8f, + 0xe5, 0xa1, 0x97, 0x5e, 0xaf, 0xa9, 0xc5, 0x82, 0x9b, 0x01, 0x21, 0x26, + 0xe8, 0x63, 0x3d, 0x76, 0x6e, 0xe0, 0xdc, 0xdf, 0xef, 0x2f, 0x78, 0x44, + 0x21, 0x76, 0x9d, 0x05, 0xf8, 0x7e, 0xff, 0x7f, 0x1e, 0xf7, 0x9c, 0x7b, + 0xce, 0x7d, 0x4c, 0x27, 0xf7, 0xce, 0xcd, 0x64, 0x92, 0x4c, 0xf3, 0x10, + 0xc9, 0x90, 0x82, 0x8d, 0x9a, 0x40, 0x68, 0x6b, 0x35, 0x41, 0x97, 0x6e, + 0x04, 0x51, 0xf0, 0x01, 0x22, 0x08, 0x8a, 0x15, 0x5c, 0xd8, 0xb5, 0xba, + 0x51, 0xe8, 0xc2, 0x95, 0x08, 0x82, 0xa8, 0x2b, 0x57, 0xe2, 0xa6, 0x28, + 0x48, 0x22, 0x82, 0x15, 0xc4, 0x9d, 0x4b, 0x11, 0x74, 0xe7, 0x56, 0x17, + 0x0a, 0x6e, 0xc4, 0x85, 0x74, 0x21, 0x08, 0x2e, 0xc4, 0x45, 0x77, 0x06, + 0x95, 0x76, 0xa5, 0x88, 0x42, 0x69, 0x53, 0x1a, 0x28, 0x84, 0x74, 0x42, + 0xa7, 0x8f, 0xa4, 0x8b, 0xb4, 0x79, 0xf4, 0x31, 0x73, 0xe7, 0xf4, 0xde, + 0x3b, 0x73, 0xce, 0x3d, 0x8f, 0xff, 0xfc, 0xff, 0xff, 0xa5, 0x12, 0xef, + 0x68, 0xf9, 0xff, 0xbc, 0x9e, 0x4f, 0xfd, 0x76, 0x73, 0x58, 0x72, 0x8a, + 0x14, 0xeb, 0x10, 0x83, 0xb0, 0xb4, 0xb1, 0x2e, 0x20, 0x52, 0x72, 0x28, + 0x2b, 0x96, 0x48, 0x72, 0xca, 0x21, 0x29, 0x21, 0x39, 0xe4, 0x02, 0x2a, + 0xcd, 0x92, 0x18, 0xa7, 0x88, 0x14, 0xab, 0x14, 0xd6, 0x39, 0xa7, 0xdc, + 0x41, 0x91, 0x2b, 0x48, 0x48, 0xda, 0x58, 0x2d, 0x22, 0xe4, 0x32, 0x12, + 0xb9, 0x88, 0x5c, 0x40, 0x8e, 0x39, 0xa4, 0xc2, 0x3a, 0xe6, 0x0a, 0xa2, + 0x84, 0xc8, 0xb9, 0x48, 0x8e, 0x39, 0xa5, 0x9c, 0x42, 0x92, 0x90, 0x96, + 0x95, 0x90, 0x4b, 0x58, 0xca, 0xa9, 0x25, 0xe7, 0xb2, 0x48, 0x83, 0xc4, + 0x8c, 0x35, 0xb6, 0xf0, 0x07, 0x33, 0xc8, 0x31, 0x2d, 0x7f, 0x50, 0x9a, + 0xc1, 0x24, 0xb6, 0x26, 0xcc, 0x18, 0x63, 0x1c, 0xd7, 0x1d, 0x74, 0x40, + 0xe4, 0x6e, 0xca, 0x31, 0xa7, 0x94, 0x0b, 0x19, 0xb9, 0x81, 0x59, 0x57, + 0x50, 0x2e, 0x20, 0xac, 0x3b, 0x08, 0x7f, 0x84, 0xc8, 0x35, 0x94, 0x7b, + 0xc8, 0x8d, 0x4c, 0xe3, 0x42, 0x72, 0x05, 0xb9, 0x82, 0x32, 0x83, 0x19, + 0x23, 0xe7, 0xe4, 0x1a, 0x9a, 0x11, 0x8d, 0x4b, 0x18, 0x57, 0x31, 0xce, + 0xe3, 0xbe, 0x46, 0x33, 0xae, 0x66, 0x5c, 0x41, 0xb9, 0x8a, 0x21, 0x39, + 0x4c, 0xee, 0x62, 0xc6, 0xb8, 0x82, 0x86, 0x71, 0x1a, 0xd7, 0x30, 0x72, + 0x07, 0x33, 0x8e, 0xc3, 0x60, 0x98, 0xc7, 0xe3, 0xf5, 0x7c, 0xbd, 0xde, + 0xa7, 0xef, 0xf7, 0xfb, 0xfb, 0xfc, 0xbe, 0x9f, 0xcf, 0xef, 0xfb, 0xfb, + 0xfd, 0xf6, 0xf7, 0xdb, 0xdf, 0xfe, 0xbe, 0xbf, 0xdf, 0x6f, 0x7f, 0xdf, + 0xdf, 0xfe, 0x2e, 0xe0, 0xbb, 0xfb, 0xfb, 0xfd, 0xbe, 0xbf, 0xdf, 0x6f, + 0x7f, 0x87, 0x27, 0x0f, 0xf0, 0x00, 0x40, 0x1b, 0x84, 0x81, 0xe0, 0x7d, + 0x12, 0x63, 0x62, 0xde, 0x56, 0xac, 0xfa, 0xd3, 0x30, 0xd7, 0x39, 0x28, + 0x5d, 0x2b, 0xa5, 0x88, 0x93, 0x8c, 0x00, 0x01, 0xe1, 0x74, 0xb6, 0x74, + 0x72, 0x04, 0x5e, 0xac, 0xa1, 0x36, 0x3b, 0x39, 0x77, 0x65, 0xaf, 0x3a, + 0x95, 0xe8, 0xc6, 0x0a, 0x07, 0x28, 0x11, 0x98, 0x1a, 0x24, 0x4e, 0xa1, + 0x4e, 0x06, 0xa3, 0x4f, 0x76, 0x72, 0xbc, 0xc8, 0x1a, 0x0f, 0x5d, 0x89, + 0xd6, 0x10, 0x54, 0x50, 0x41, 0x85, 0x9c, 0x8d, 0x5a, 0xf5, 0x47, 0xf8, + 0xd8, 0x31, 0x31, 0xd5, 0x18, 0x5e, 0x1c, 0xfe, 0x08, 0x62, 0x13, 0x25, + 0x5e, 0x8a, 0x57, 0x7c, 0xa1, 0x78, 0x6a, 0x17, 0xd2, 0x75, 0xdc, 0xcc, + 0x45, 0x3f, 0xac, 0x73, 0x3d, 0xed, 0x49, 0xa4, 0xe6, 0xa4, 0x5f, 0x3f, + 0xc6, 0xb9, 0x8e, 0xbd, 0x6c, 0xcf, 0xce, 0x9f, 0xe6, 0x47, 0xd8, 0xe9, + 0xc4, 0xba, 0x92, 0xb1, 0x94, 0x79, 0xb2, 0x3f, 0x9c, 0xfa, 0x0f, 0xf4, + 0x2b, 0xc7, 0x87, 0x68, 0xfd, 0x9c, 0x61, 0x38, 0x68, 0xbc, 0xa0, 0xdd, + 0xf2, 0x8f, 0x92, 0xef, 0xd5, 0x73, 0x3b, 0xb4, 0x74, 0xa4, 0xe7, 0x60, + 0x46, 0x3a, 0x02, 0x9b, 0xc8, 0x01, 0x43, 0x86, 0x2b, 0xba, 0xaa, 0xef, + 0x7d, 0xe5, 0x2b, 0x42, 0xc0, 0x1e, 0x4e, 0xdb, 0xa8, 0x93, 0xf0, 0x10, + 0x4b, 0x51, 0x23, 0x86, 0xd7, 0x83, 0x34, 0x53, 0x20, 0xae, 0xfe, 0xde, + 0x7b, 0x9e, 0xcc, 0x0c, 0x16, 0x48, 0x41, 0x1f, 0xc6, 0x90, 0xc6, 0x90, + 0xc6, 0x90, 0x99, 0x81, 0xc9, 0x48, 0xde, 0xca, 0x8e, 0xe3, 0x83, 0x2f, + 0xaf, 0x0e, 0xef, 0x19, 0x98, 0x19, 0xab, 0xb0, 0xd6, 0x47, 0xd6, 0x40, + 0xed, 0x5d, 0x88, 0x11, 0xe2, 0x80, 0x87, 0x5e, 0x89, 0xfd, 0x19, 0x5e, + 0x61, 0x72, 0x49, 0xba, 0xd9, 0xbd, 0xa9, 0x98, 0xdd, 0xaf, 0xda, 0xac, + 0xb0, 0xb9, 0xec, 0x40, 0x2c, 0x06, 0xc4, 0x62, 0x40, 0x2c, 0x86, 0x85, + 0x7e, 0x25, 0x7f, 0xe5, 0x03, 0xb1, 0x91, 0x50, 0x7b, 0x01, 0xac, 0xcb, + 0x5b, 0xdf, 0x8a, 0x8d, 0x3c, 0xc8, 0x25, 0x56, 0xe7, 0xd7, 0x87, 0x31, + 0x82, 0xb0, 0x5b, 0x3d, 0x1e, 0xc2, 0x2d, 0x86, 0x00, 0xe1, 0x29, 0xaa, + 0xc3, 0x83, 0x5d, 0x3b, 0x6c, 0x79, 0x1b, 0xef, 0xce, 0x4d, 0x91, 0xf7, + 0xef, 0x28, 0xb4, 0x39, 0xc7, 0x1f, 0xe8, 0x25, 0x07, 0x38, 0x5c, 0xda, + 0x1d, 0x02, 0x53, 0x83, 0xa7, 0x3f, 0x72, 0xb9, 0xc9, 0x18, 0xd5, 0x51, + 0x41, 0x75, 0xd7, 0x83, 0xa5, 0x5d, 0xf9, 0xf8, 0x2b, 0x0b, 0xec, 0x76, + 0x55, 0xd0, 0x46, 0xc0, 0x87, 0x2b, 0xb9, 0xcd, 0x2f, 0x4e, 0xf3, 0x5d, + 0xa3, 0xb8, 0xa1, 0xf7, 0x2f, 0x06, 0x30, 0x29, 0x7d, 0x51, 0x1d, 0x1e, + 0x44, 0x05, 0xa2, 0x3a, 0x3c, 0xdc, 0xb1, 0x60, 0x06, 0xdb, 0xff, 0x17, + 0x0f, 0xdf, 0xb2, 0xfd, 0xd4, 0x94, 0x7d, 0xf1, 0xbf, 0x7c, 0x26, 0xa7, + 0x32, 0xb0, 0x92, 0x34, 0x28, 0xcf, 0x88, 0x86, 0x1a, 0xef, 0x36, 0xac, + 0xcf, 0x0f, 0x6c, 0x4c, 0xbd, 0x35, 0x04, 0xd5, 0x89, 0x35, 0xfe, 0x3b, + 0x1a, 0xbc, 0xd5, 0x1f, 0x8d, 0xd9, 0x9e, 0x1c, 0x7c, 0x8a, 0xb2, 0x60, + 0x6f, 0xc5, 0x4d, 0xcb, 0x39, 0xee, 0xf1, 0xeb, 0xcd, 0x53, 0x3a, 0xd6, + 0x8f, 0x6c, 0x6a, 0x3c, 0xec, 0xd6, 0x1a, 0x1f, 0xf2, 0x05, 0x42, 0x54, + 0xc6, 0xc7, 0x57, 0xb9, 0x83, 0x63, 0x71, 0xeb, 0xe6, 0xe4, 0xe6, 0x6e, + 0x70, 0x3f, 0xf6, 0x34, 0x00, 0x55, 0xc7, 0xd5, 0x9c, 0x0a, 0xc7, 0x46, + 0x22, 0x46, 0x65, 0x2a, 0xa8, 0x9c, 0x0a, 0x5e, 0xdd, 0xa7, 0xc7, 0x7b, + 0x6e, 0x18, 0xa6, 0xb0, 0xa1, 0x3a, 0x11, 0xcb, 0x95, 0x79, 0x1e, 0x17, + 0xb0, 0x7f, 0x34, 0xb0, 0xe7, 0xa9, 0x6e, 0xdf, 0x1c, 0x30, 0x85, 0x2f, + 0x2a, 0xe3, 0x43, 0x54, 0x20, 0x2a, 0xe3, 0xa3, 0xb0, 0xcc, 0x40, 0xf9, + 0xc7, 0x8d, 0x27, 0xb4, 0xb9, 0x39, 0xbf, 0xb9, 0x10, 0xb5, 0x88, 0x11, + 0x2e, 0xc4, 0x7c, 0xe7, 0x06, 0x75, 0xc5, 0xc2, 0x9e, 0x14, 0xd0, 0x5a, + 0x08, 0x50, 0x39, 0x55, 0x18, 0xab, 0xf4, 0xc1, 0xa7, 0x8f, 0xf9, 0xbf, + 0x19, 0x09, 0xb5, 0x10, 0xa5, 0x70, 0x08, 0x1f, 0x78, 0xce, 0x39, 0xec, + 0x36, 0xca, 0xcb, 0x90, 0x94, 0x5a, 0x05, 0x41, 0x30, 0x5a, 0x00, 0x81, + 0xbe, 0x40, 0x3d, 0x79, 0x09, 0xa0, 0x1a, 0x60, 0x70, 0x41, 0x65, 0x83, + 0xdb, 0xcf, 0x78, 0xdb, 0xfd, 0xf5, 0xd1, 0xca, 0x0f, 0x7f, 0x1b, 0x14, + 0x90, 0x16, 0xc8, 0x03, 0x4c, 0x5a, 0x1c, 0xf0, 0xf2, 0x68, 0x4f, 0x42, + 0x78, 0xe2, 0xb4, 0xa0, 0x36, 0x54, 0x63, 0x41, 0x58, 0x4f, 0x3e, 0xe1, + 0xfe, 0xa5, 0xb5, 0xfb, 0x2b, 0x54, 0xa5, 0x3d, 0xd1, 0xfa, 0x51, 0xd0, + 0x2e, 0x5f, 0xf8, 0xb7, 0x63, 0x1e, 0xc2, 0xc2, 0x32, 0x85, 0x95, 0x10, + 0xd5, 0x20, 0x6a, 0x83, 0x17, 0x51, 0x0d, 0x50, 0x58, 0xa6, 0xb0, 0xf2, + 0xa4, 0x77, 0x8b, 0x84, 0xb7, 0x74, 0xc7, 0x02, 0xfb, 0xb6, 0x6d, 0x02, + 0x95, 0x8e, 0x18, 0x3e, 0xfb, 0xb3, 0xab, 0x27, 0x9e, 0x30, 0xd5, 0x93, + 0x02, 0x42, 0xd5, 0x9e, 0x50, 0x4f, 0x54, 0x13, 0x78, 0x12, 0x8b, 0xf9, + 0xf2, 0xf1, 0x9d, 0xb1, 0xb2, 0x79, 0xaa, 0x64, 0xe2, 0x0c, 0xe0, 0x26, + 0xa3, 0xfe, 0x24, 0x2c, 0x79, 0x02, 0x31, 0x84, 0x52, 0x31, 0xb5, 0xfd, + 0x88, 0x47, 0xbf, 0x8d, 0x85, 0x13, 0x7c, 0xc3, 0x3d, 0x33, 0x6c, 0x39, + 0xcc, 0xed, 0x22, 0xcb, 0xa8, 0x28, 0x9f, 0xab, 0x65, 0x86, 0x1e, 0x93, + 0x0b, 0x26, 0x58, 0x8c, 0x71, 0x9d, 0x93, 0x11, 0x33, 0x18, 0x9a, 0x38, + 0x00, 0x3f, 0x5c, 0x84, 0x84, 0x75, 0xf5, 0x78, 0x18, 0xe2, 0x52, 0x31, + 0x90, 0x10, 0x60, 0xf7, 0xe0, 0xa9, 0xf0, 0x2f, 0x98, 0x41, 0x79, 0x42, + 0xc8, 0x72, 0xf0, 0xec, 0x00, 0xe5, 0x49, 0xfb, 0x42, 0x64, 0xc0, 0x97, + 0x54, 0x8f, 0x19, 0xa9, 0xf1, 0x6f, 0xe4, 0x4d, 0x04, 0xdf, 0x75, 0x2d, + 0x24, 0x4c, 0xc8, 0x10, 0x48, 0x48, 0x42, 0x44, 0x44, 0xa8, 0x65, 0x06, + 0x80, 0x54, 0x21, 0x70, 0xe8, 0x0f, 0x97, 0x4e, 0xb0, 0x92, 0x27, 0x07, + 0x94, 0x49, 0xab, 0x04, 0x97, 0x78, 0x6a, 0x1b, 0xc8, 0x10, 0xa0, 0x08, + 0x99, 0x22, 0x3c, 0x97, 0x6f, 0x9a, 0x7d, 0x4a, 0x70, 0x90, 0x30, 0x68, + 0x32, 0x6c, 0xe3, 0xe5, 0x3c, 0x0f, 0xef, 0xcd, 0x68, 0xac, 0x34, 0x96, + 0x8b, 0x1f, 0x9b, 0x8c, 0x86, 0xb6, 0xb1, 0xa1, 0x8c, 0x15, 0xd5, 0xe1, + 0xa1, 0xc8, 0x40, 0x8a, 0x40, 0x86, 0x00, 0xed, 0x4a, 0x42, 0x3c, 0xdd, + 0x7d, 0xda, 0xba, 0x80, 0x27, 0x53, 0x90, 0x53, 0x6c, 0x92, 0x59, 0xd4, + 0x02, 0x9e, 0x10, 0x51, 0x92, 0x8b, 0x79, 0x24, 0x6d, 0x82, 0x19, 0x26, + 0xc8, 0x19, 0xea, 0x30, 0x0c, 0x69, 0x69, 0x12, 0x48, 0x18, 0x11, 0x11, + 0x6a, 0x99, 0x14, 0x58, 0xdf, 0x17, 0xc2, 0x7d, 0xb2, 0x75, 0xfe, 0xf4, + 0x7a, 0x12, 0x36, 0xf1, 0x57, 0x39, 0xb4, 0xb1, 0x54, 0xa5, 0x06, 0x58, + 0x33, 0x84, 0x7e, 0x25, 0xa9, 0xed, 0x77, 0x0c, 0xfc, 0x16, 0x6c, 0x63, + 0x79, 0x34, 0xb1, 0x26, 0x2d, 0xc2, 0x28, 0xf6, 0x06, 0x76, 0xbf, 0xdf, + 0xc2, 0x20, 0xde, 0x22, 0x84, 0xb4, 0x11, 0x80, 0xc3, 0x38, 0x85, 0xad, + 0x30, 0xc2, 0xb6, 0x4d, 0x0b, 0xb4, 0xd2, 0xc0, 0xca, 0x1a, 0xa8, 0xd6, + 0xc3, 0x10, 0x8f, 0x57, 0x61, 0x20, 0x43, 0x80, 0xf3, 0x38, 0xe7, 0xfa, + 0x97, 0x87, 0x6f, 0x83, 0xf1, 0x85, 0xc8, 0x78, 0x32, 0x4a, 0x52, 0xcc, + 0x17, 0x26, 0x20, 0x74, 0x3e, 0x84, 0x07, 0x2c, 0x11, 0x8f, 0xb5, 0x23, + 0x3f, 0xb4, 0x96, 0x08, 0x69, 0x60, 0x2d, 0x8d, 0xb5, 0x86, 0x6a, 0xe3, + 0x00, 0xe2, 0x86, 0x40, 0x1c, 0xc4, 0x93, 0xc6, 0x63, 0xbe, 0x84, 0x87, + 0xee, 0x91, 0x2f, 0xff, 0x7d, 0x86, 0x8a, 0xf9, 0x08, 0x8b, 0x38, 0x53, + 0xd8, 0xc6, 0x47, 0x23, 0xdc, 0x3f, 0x1a, 0x63, 0x83, 0xf8, 0x99, 0xef, + 0xce, 0x45, 0x9b, 0x26, 0x0c, 0x1b, 0x2b, 0x6d, 0x60, 0x05, 0x1a, 0x84, + 0x0d, 0x6d, 0x03, 0x23, 0x43, 0xb4, 0xf4, 0x50, 0xc4, 0x91, 0xc2, 0x89, + 0x0a, 0x8a, 0x90, 0xcf, 0x3e, 0xd1, 0x28, 0xe6, 0x0b, 0xc5, 0x15, 0xf7, + 0xd3, 0x66, 0xa4, 0xc4, 0x7c, 0x61, 0x52, 0x22, 0xf4, 0x8c, 0x47, 0x24, + 0x84, 0x49, 0xe1, 0xfe, 0xb8, 0x85, 0x33, 0xa1, 0xb5, 0x0e, 0xa0, 0x83, + 0x81, 0xa1, 0x96, 0x49, 0xf1, 0xd0, 0x33, 0x04, 0x9c, 0xe5, 0xa6, 0x6e, + 0x66, 0x3c, 0x6c, 0x65, 0xe7, 0x34, 0xcc, 0x9e, 0xaa, 0x17, 0x54, 0x36, + 0x92, 0x27, 0x10, 0x43, 0x86, 0xa9, 0xe8, 0x5a, 0x4d, 0x04, 0xee, 0x08, + 0x58, 0x02, 0x86, 0x00, 0x49, 0x90, 0x04, 0x49, 0x90, 0x04, 0x49, 0x90, + 0x04, 0x49, 0x90, 0x04, 0x49, 0x90, 0x04, 0x49, 0x90, 0x04, 0x49, 0x90, + 0x04, 0x87, 0x84, 0xa9, 0x68, 0xe5, 0x0c, 0xc4, 0x10, 0xb2, 0x43, 0x76, + 0xf2, 0x6d, 0x93, 0xce, 0x16, 0x75, 0x16, 0xf6, 0x9e, 0x7d, 0xa1, 0x1f, + 0x5a, 0xc3, 0xe1, 0x80, 0x10, 0x63, 0x69, 0x40, 0x92, 0x24, 0x49, 0x92, + 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x8b, 0xc1, 0xd0, 0x5a, 0x43, + 0xe4, 0x04, 0x81, 0xd7, 0x66, 0xff, 0x82, 0x06, 0x46, 0xb9, 0x46, 0x4c, + 0x61, 0x25, 0x04, 0x28, 0x22, 0xa6, 0x30, 0x8d, 0xb1, 0xee, 0x68, 0x40, + 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x0b, + 0xe7, 0x52, 0x63, 0x25, 0x04, 0x28, 0x9c, 0xac, 0xf8, 0x3a, 0xa2, 0x82, + 0x6f, 0xeb, 0x06, 0xd6, 0x0b, 0xac, 0x61, 0xc2, 0x1a, 0x81, 0x07, 0x01, + 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x24, 0x49, 0x92, 0x0c, + 0x3d, 0xf1, 0x0c, 0x01, 0x6b, 0x4d, 0x7d, 0x47, 0x40, 0x80, 0xe1, 0x68, + 0x0e, 0xcb, 0xaf, 0x24, 0x92, 0x27, 0x10, 0x43, 0x42, 0x2a, 0xba, 0x30, + 0x9f, 0x08, 0xb7, 0x85, 0x61, 0x60, 0xcd, 0x36, 0x10, 0x06, 0xc4, 0x36, + 0x11, 0x06, 0xc4, 0x36, 0x11, 0x06, 0xc4, 0x36, 0x11, 0x06, 0xc4, 0x36, + 0x11, 0x06, 0xc4, 0x36, 0x11, 0x06, 0xc4, 0x36, 0x11, 0x06, 0xc4, 0x36, + 0x31, 0x24, 0x4c, 0x45, 0x2b, 0x4f, 0x20, 0x86, 0x90, 0x7b, 0xc8, 0x56, + 0x29, 0x04, 0x42, 0x40, 0x06, 0x08, 0x6d, 0xe4, 0x09, 0x11, 0xc2, 0xd0, + 0x01, 0xce, 0x00, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, + 0x04, 0x41, 0x58, 0x10, 0xce, 0x13, 0xc2, 0x81, 0x18, 0x9d, 0x50, 0xc0, + 0x33, 0x63, 0x52, 0xba, 0xb0, 0x2c, 0x04, 0x28, 0x1c, 0x53, 0x38, 0x01, + 0xee, 0x84, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, 0x41, 0x10, 0x04, + 0x41, 0x10, 0x85, 0x63, 0x0a, 0x17, 0x6e, 0x56, 0xa2, 0x70, 0xe8, 0x20, + 0x9b, 0x16, 0x15, 0x66, 0x11, 0x23, 0xe7, 0xfb, 0x42, 0x24, 0x0c, 0x7d, + 0x5f, 0x0c, 0x0d, 0x09, 0x82, 0x20, 0x08, 0x82, 0x20, 0x08, 0x82, 0x20, + 0x08, 0x82, 0x08, 0x0d, 0x7d, 0x43, 0xc0, 0x12, 0xd9, 0xe6, 0x5a, 0x13, + 0xe8, 0xcb, 0xc8, 0x09, 0x7b, 0x95, 0x24, 0x24, 0x04, 0x18, 0x02, 0xa9, + 0x18, 0x06, 0x4d, 0x65, 0x20, 0xec, 0x05, 0xc2, 0xcb, 0x86, 0x68, 0x80, + 0xb0, 0x00, 0x6c, 0x7b, 0x02, 0x31, 0x84, 0xa6, 0x62, 0x28, 0x43, 0x80, + 0x21, 0x64, 0x87, 0x7a, 0xbf, 0x03, 0x84, 0x80, 0x5c, 0x63, 0x21, 0x8c, + 0xa8, 0x88, 0x40, 0x44, 0x54, 0xa6, 0xb2, 0x21, 0x10, 0x81, 0x88, 0x94, + 0x22, 0x00, 0x78, 0x5d, 0xc3, 0x7d, 0xa7, 0x28, 0x46, 0x3b, 0xaf, 0x4c, + 0x11, 0x89, 0x0a, 0x8a, 0x88, 0x29, 0x22, 0x51, 0x19, 0x10, 0x20, 0x2a, + 0x03, 0x02, 0x64, 0x08, 0x50, 0x44, 0x4c, 0x11, 0x49, 0x89, 0x22, 0xc2, + 0x0a, 0xaf, 0x75, 0x60, 0x9c, 0x12, 0x2b, 0xcc, 0xf2, 0x3b, 0x23, 0x4f, + 0x7c, 0xa5, 0x80, 0x10, 0xa1, 0x06, 0x5f, 0xa8, 0x95, 0x21, 0x60, 0x85, + 0xbe, 0x2f, 0x84, 0x31, 0xcc, 0xae, 0xc4, 0x6e, 0x45, 0x30, 0xc2, 0x52, + 0x9c, 0xa2, 0xec, 0xf4, 0xdc, 0x0b, 0x65, 0x08, 0x30, 0x04, 0x52, 0x31, + 0x10, 0x95, 0x01, 0x01, 0xf2, 0x04, 0x6a, 0x05, 0x02, 0xe4, 0x09, 0xc4, + 0x10, 0x78, 0x95, 0x04, 0x12, 0x02, 0x0c, 0x81, 0x6c, 0xb8, 0x0a, 0x73, + 0x1a, 0xac, 0x10, 0x70, 0xe7, 0x6e, 0x09, 0xc8, 0xc8, 0x13, 0x22, 0x02, + 0x11, 0x51, 0x99, 0xca, 0x42, 0x20, 0x02, 0x11, 0x29, 0x45, 0x00, 0x5e, + 0xd5, 0x46, 0x54, 0x68, 0x5f, 0x46, 0x4f, 0x7b, 0x9f, 0x91, 0x84, 0x00, + 0x45, 0xc4, 0x14, 0x91, 0xa8, 0x0c, 0x08, 0x10, 0x95, 0x01, 0x01, 0x12, + 0x02, 0x14, 0x11, 0x53, 0x44, 0x52, 0xe2, 0x2c, 0xc2, 0xc3, 0xa7, 0x89, + 0x44, 0x45, 0xf8, 0x49, 0xd6, 0xf8, 0xbe, 0x10, 0x56, 0xe8, 0x53, 0xd9, + 0x1a, 0x6a, 0xe5, 0x0b, 0x61, 0xad, 0xf1, 0x0d, 0x01, 0xcb, 0x4d, 0x58, + 0x34, 0x11, 0x1e, 0x40, 0xce, 0xc7, 0x2a, 0x5c, 0xdd, 0x4f, 0xcc, 0xe1, + 0x05, 0xf2, 0x05, 0x62, 0x08, 0xbc, 0x4a, 0x82, 0x60, 0x84, 0x00, 0x61, + 0x97, 0x27, 0x10, 0xe1, 0x0e, 0x21, 0x2a, 0x81, 0x04, 0x12, 0xa6, 0x04, + 0x12, 0x52, 0xc2, 0xe3, 0x0c, 0x81, 0x57, 0x49, 0x20, 0x21, 0xc0, 0x41, + 0x20, 0x5e, 0xf9, 0xd0, 0x4a, 0x50, 0x6f, 0x88, 0x27, 0x5d, 0x89, 0x80, + 0x27, 0x89, 0x3c, 0x21, 0x22, 0x10, 0x91, 0x10, 0xa0, 0x42, 0xa8, 0x12, + 0x81, 0x88, 0x94, 0xa2, 0x27, 0x27, 0xa2, 0x56, 0x88, 0x88, 0x67, 0x07, + 0xc4, 0xcf, 0xed, 0x60, 0x4f, 0x4a, 0x42, 0x80, 0x22, 0x62, 0x8a, 0x48, + 0x42, 0x00, 0x51, 0x81, 0x84, 0xa8, 0x08, 0x21, 0x84, 0x10, 0x45, 0xc4, + 0x14, 0x91, 0x94, 0xd8, 0x5c, 0xf9, 0x83, 0x41, 0x9f, 0x60, 0xaf, 0x83, + 0x11, 0x02, 0x62, 0x81, 0x43, 0xab, 0xee, 0x58, 0x08, 0x58, 0x6b, 0x7c, + 0x43, 0xc0, 0x17, 0x42, 0xa8, 0x62, 0xad, 0xf1, 0x0d, 0x81, 0xcb, 0x57, + 0xe0, 0x19, 0x72, 0xe6, 0x7d, 0x11, 0xf1, 0x53, 0x1c, 0xc1, 0x67, 0x1e, + 0x3b, 0xb1, 0xbf, 0x5a, 0x8f, 0x81, 0x18, 0x02, 0xa9, 0x18, 0x4a, 0x08, + 0x20, 0x4f, 0x20, 0xe4, 0x09, 0xd4, 0x41, 0x08, 0x21, 0x84, 0x18, 0x42, + 0xaf, 0x92, 0x50, 0xc2, 0x09, 0xf3, 0x5b, 0xf9, 0xfa, 0x7c, 0x28, 0x2d, + 0x57, 0xd1, 0x7a, 0x08, 0x15, 0x5d, 0x12, 0x74, 0x1f, 0xe8, 0x09, 0x23, + 0x10, 0x46, 0x08, 0x50, 0x61, 0xa8, 0xe2, 0x40, 0x08, 0xb0, 0xa7, 0xd1, + 0xe2, 0xdd, 0x0d, 0xd0, 0x1e, 0x67, 0x28, 0x25, 0x0e, 0x65, 0x79, 0x37, + 0x1f, 0xf8, 0x12, 0xcd, 0x85, 0x85, 0x93, 0x94, 0x4e, 0x42, 0x00, 0x51, + 0x81, 0x84, 0xa8, 0x08, 0x21, 0x84, 0x10, 0x85, 0x63, 0x0a, 0x37, 0x00, + 0xb6, 0xe3, 0xec, 0xfe, 0xb9, 0xab, 0x83, 0xab, 0x1c, 0x8c, 0x10, 0xd5, + 0x22, 0xd3, 0x5f, 0xf6, 0x1f, 0xe9, 0xae, 0x8b, 0x95, 0x20, 0x72, 0xbe, + 0x92, 0x2f, 0x84, 0x50, 0xc5, 0x5a, 0xe3, 0x9b, 0x1d, 0xd7, 0xc8, 0xe6, + 0x12, 0x5a, 0x96, 0xf3, 0x85, 0xaa, 0xc5, 0xcd, 0x11, 0xcd, 0x85, 0xcf, + 0x6f, 0x6d, 0xcc, 0x43, 0xe0, 0x55, 0x12, 0x4a, 0x08, 0x20, 0x4f, 0x20, + 0x24, 0x44, 0x45, 0x08, 0x21, 0x84, 0x18, 0x42, 0xaf, 0x92, 0x70, 0x7c, + 0x53, 0xbe, 0x77, 0x7d, 0xb9, 0x29, 0x2c, 0xaf, 0x8c, 0xd8, 0x7a, 0x08, + 0xd1, 0xe2, 0xfa, 0x65, 0xc8, 0xff, 0x07, 0xff, 0xc4, 0x0e, 0xc2, 0x88, + 0x0a, 0x2a, 0x84, 0x2a, 0x06, 0x86, 0xee, 0xe8, 0x53, 0x8c, 0x00, 0x67, + 0x77, 0x2f, 0x09, 0xd5, 0x09, 0xba, 0xcb, 0x17, 0xff, 0x27, 0x69, 0xf0, + 0xf6, 0x1b, 0x2f, 0x5d, 0xee, 0xd1, 0xc8, 0x10, 0x40, 0x54, 0x20, 0x21, + 0x2a, 0x42, 0x08, 0x21, 0x44, 0xe1, 0x68, 0x57, 0xf7, 0x71, 0xf9, 0x21, + 0xc7, 0x03, 0xf5, 0x61, 0xe9, 0x0c, 0xe9, 0x92, 0x40, 0xf5, 0x70, 0x3d, + 0x4f, 0x65, 0xb9, 0xa2, 0x4b, 0xb3, 0x81, 0xaf, 0xe4, 0x0b, 0x21, 0x54, + 0x89, 0xac, 0x78, 0x71, 0xb3, 0xd9, 0xfb, 0xe8, 0xa4, 0xbb, 0x79, 0x85, + 0x5a, 0x09, 0xf8, 0x7d, 0x72, 0xe9, 0xe3, 0xaf, 0x32, 0x68, 0xd8, 0xf8, + 0x23, 0x0f, 0xd5, 0xfb, 0x55, 0x98, 0x5c, 0x79, 0x41, 0x0c, 0xa4, 0x62, + 0x10, 0x03, 0x54, 0x08, 0x62, 0x80, 0x0a, 0x41, 0x0c, 0x50, 0x21, 0x88, + 0x01, 0x2a, 0x04, 0x31, 0x40, 0x85, 0x20, 0x06, 0xa8, 0x10, 0xc4, 0x00, + 0x11, 0x81, 0xdd, 0xbd, 0xfb, 0xb8, 0x81, 0xde, 0x0e, 0xea, 0x3f, 0x3d, + 0xb6, 0xb0, 0x81, 0x2c, 0x25, 0x59, 0x13, 0xa2, 0x0c, 0xc9, 0x27, 0xf2, + 0x4b, 0xd4, 0x72, 0xf1, 0x41, 0x21, 0x88, 0xc8, 0x02, 0x70, 0x0e, 0x80, + 0x73, 0x00, 0x9c, 0x03, 0xe0, 0x1c, 0x00, 0xe7, 0x00, 0x38, 0x07, 0xc0, + 0x39, 0x00, 0x76, 0x0b, 0x8f, 0xbc, 0x87, 0x2a, 0x91, 0x56, 0xe4, 0xf0, + 0x93, 0xd7, 0xa8, 0x67, 0x01, 0xdc, 0x5a, 0x4a, 0xce, 0xfe, 0x73, 0xe2, + 0xf0, 0xfe, 0x8f, 0x5b, 0xe2, 0x87, 0x70, 0xa9, 0x83, 0x2b, 0x38, 0x07, + 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0xb8, 0xc9, + 0x2d, 0x35, 0xfa, 0xf2, 0xe5, 0x8f, 0x98, 0xf3, 0xd7, 0x87, 0x22, 0x57, + 0x16, 0x41, 0x9e, 0x9c, 0xdc, 0xa0, 0xb6, 0x00, 0xbb, 0xc9, 0x3f, 0xa6, + 0xbd, 0xe8, 0xc2, 0x67, 0x8f, 0x02, 0xeb, 0x3b, 0x67, 0xc4, 0x09, 0xc5, + 0x00, 0xc6, 0x00, 0xc6, 0x00, 0xc6, 0x00, 0x86, 0x8b, 0x24, 0x5f, 0x62, + 0x93, 0x2d, 0x6d, 0xb1, 0x7b, 0xcf, 0x3b, 0x43, 0xbd, 0x08, 0x0f, 0x99, + 0x18, 0xd1, 0xa3, 0x1c, 0xfe, 0x5f, 0x85, 0x9d, 0xe8, 0x87, 0xa7, 0xdc, + 0x58, 0x99, 0x2d, 0x86, 0x5f, 0x06, 0xa8, 0x10, 0xc4, 0x00, 0x15, 0x82, + 0x18, 0xa0, 0x42, 0x10, 0x03, 0x54, 0x08, 0x62, 0x80, 0x0a, 0xc1, 0x3a, + 0xc0, 0x66, 0x61, 0x65, 0x1f, 0xfd, 0xef, 0x16, 0x5f, 0x22, 0x28, 0x39, + 0x62, 0x4b, 0x54, 0x5c, 0x24, 0xef, 0x3d, 0xfc, 0xb4, 0x34, 0xf1, 0x95, + 0xb7, 0xb2, 0x05, 0x11, 0x84, 0x69, 0x0e, 0x40, 0x64, 0x00, 0x38, 0x82, + 0x30, 0x06, 0x80, 0xc9, 0x8e, 0xac, 0x7d, 0xc3, 0x8d, 0x95, 0xb6, 0x34, + 0x30, 0x7b, 0xcb, 0x64, 0xeb, 0x0c, 0xf5, 0x43, 0xf8, 0x48, 0x44, 0x97, + 0xae, 0xf4, 0xcf, 0x0e, 0x2e, 0x33, 0x76, 0x8b, 0xbf, 0xf7, 0xb1, 0x37, + 0xfa, 0x6e, 0x77, 0x4d, 0xea, 0xdc, 0xca, 0x98, 0x4f, 0x9d, 0x5b, 0x19, + 0x73, 0xe9, 0xdc, 0x3d, 0x63, 0x12, 0x71, 0xa4, 0x57, 0xbb, 0x73, 0x23, + 0xff, 0x93, 0xcd, 0x3d, 0xcd, 0x8a, 0xe6, 0x2e, 0x17, 0xb9, 0x3d, 0x89, + 0x35, 0x44, 0x3f, 0x7d, 0xac, 0x75, 0xe1, 0xc0, 0x0f, 0xc3, 0x7e, 0xbd, + 0xf0, 0x77, 0x3c, 0xd0, 0xb5, 0x9b, 0xcd, 0x18, 0x76, 0xcb, 0x1a, 0xb5, + 0x59, 0xeb, 0x8b, 0x35, 0xb7, 0xb1, 0xed, 0x07, 0xfc, 0xeb, 0x23, 0xea, + 0xa7, 0xa5, 0x84, 0x28, 0xce, 0xf5, 0xb2, 0x42, 0xfd, 0x16, 0x5e, 0xb6, + 0x92, 0x17, 0x2e, 0x31, 0x4a, 0xdc, 0x65, 0x8a, 0x97, 0x0b, 0x03, 0xa8, + 0x20, 0x90, 0x8a, 0x9d, 0x00, 0x2a, 0xd8, 0xda, 0xa8, 0xe4, 0xc4, 0xe8, + 0x13, 0x2f, 0x72, 0x53, 0xfa, 0x41, 0x50, 0x41, 0x38, 0x25, 0x36, 0x91, + 0x3a, 0x00, 0xe1, 0x54, 0x63, 0xe9, 0xe4, 0x08, 0xbc, 0x58, 0x43, 0x3d, + 0xad, 0xa3, 0x15, 0x57, 0xcd, 0x6b, 0x9b, 0x71, 0xa3, 0xcb, 0xf1, 0xcf, + 0xd0, 0xc7, 0x6e, 0x91, 0x59, 0x1e, 0x8f, 0xeb, 0xc8, 0xba, 0x9a, 0xf6, + 0x66, 0x16, 0xb6, 0x80, 0x9c, 0xb3, 0xde, 0xd8, 0xaa, 0xcb, 0xeb, 0xeb, + 0x8d, 0x4f, 0xbb, 0xbb, 0x09, 0xf4, 0x37, 0xe6, 0x78, 0x99, 0x36, 0x10, + 0x5f, 0x4d, 0xdf, 0x5b, 0xeb, 0xc3, 0x56, 0xaa, 0x6c, 0x2d, 0x36, 0x93, + 0xec, 0x09, 0xd5, 0x78, 0x5d, 0xc7, 0xda, 0x66, 0x63, 0x5d, 0xd2, 0xac, + 0x1e, 0xea, 0x22, 0x7c, 0xac, 0xad, 0x18, 0x28, 0x37, 0x66, 0xe6, 0xcd, + 0xa4, 0x4b, 0xb4, 0x75, 0x73, 0x73, 0x7e, 0x7b, 0xf3, 0x5b, 0xb6, 0x7b, + 0x17, 0xd4, 0x39, 0xc7, 0x47, 0x31, 0x30, 0x5b, 0x69, 0xb6, 0xae, 0x03, + 0xea, 0xb0, 0x31, 0x7f, 0xad, 0x2a, 0xa2, 0x47, 0xd4, 0x49, 0x78, 0x88, + 0x36, 0x29, 0xe5, 0x3d, 0xf0, 0x2c, 0x9f, 0x89, 0x3e, 0xd1, 0xc9, 0x55, + 0x36, 0x9a, 0x9f, 0xa7, 0xdd, 0xcb, 0xcd, 0xb2, 0xe6, 0x54, 0xc1, 0x45, + 0xb5, 0xf5, 0x7a, 0x3d, 0x22, 0xea, 0xbc, 0x30, 0x76, 0xc9, 0xa9, 0xbd, + 0x00, 0xd6, 0x66, 0xae, 0xc5, 0xb4, 0x33, 0xf1, 0xa9, 0x57, 0xbc, 0xf5, + 0x55, 0x57, 0xe5, 0xe5, 0x5c, 0x50, 0xdb, 0x1c, 0xa0, 0x97, 0xab, 0xdc, + 0x40, 0xb9, 0x2e, 0x33, 0xea, 0xd2, 0xea, 0x9d, 0x59, 0x8b, 0x66, 0x3e, + 0xea, 0x59, 0xc0, 0xb4, 0x73, 0x1b, 0x4b, 0x6e, 0xc0, 0x3a, 0xd1, 0x9b, + 0xc3, 0x90, 0xa9, 0xb5, 0x7c, 0xb1, 0xa7, 0x5e, 0xe6, 0x5a, 0x03, 0x3b, + 0x5b, 0x1c, 0xb5, 0xd7, 0x50, 0xef, 0xb2, 0x8b, 0xe5, 0xa9, 0x41, 0xd0, + 0xf5, 0x92, 0xca, 0xe6, 0x06, 0xaf, 0x13, 0x7d, 0xb8, 0x0c, 0x99, 0x5a, + 0xb3, 0x45, 0x3f, 0x85, 0x68, 0x05, 0xd5, 0x06, 0x35, 0xa9, 0x6b, 0x73, + 0xcd, 0xa9, 0x5e, 0x44, 0x33, 0xd7, 0xdc, 0x29, 0xb3, 0x45, 0x5d, 0xf1, + 0x19, 0x3e, 0x6f, 0x95, 0xbd, 0xac, 0x47, 0xd4, 0x12, 0xaa, 0xad, 0x45, + 0xbb, 0x7d, 0xea, 0xab, 0xea, 0xda, 0x52, 0x52, 0x0b, 0x61, 0x13, 0xc7, + 0x59, 0x4c, 0x6e, 0xa2, 0xbe, 0xf1, 0x1a, 0xfa, 0x6c, 0x21, 0x94, 0x27, + 0xaa, 0xc1, 0xbc, 0xba, 0x43, 0xdd, 0xf4, 0x65, 0x52, 0xb5, 0xba, 0x62, + 0xc0, 0xbb, 0x59, 0xbb, 0x88, 0x6e, 0x6e, 0x43, 0x36, 0x5a, 0xc0, 0x45, + 0xd4, 0x03, 0xa2, 0x6a, 0xf6, 0x37, 0x11, 0x75, 0xcf, 0xe6, 0x8d, 0x4a, + 0xb2, 0x62, 0x20, 0xe9, 0x8c, 0x6f, 0x51, 0x77, 0xfc, 0x86, 0x7e, 0x63, + 0x01, 0xe2, 0xee, 0x8b, 0x8a, 0xbc, 0x78, 0x8b, 0x7a, 0xcc, 0x4a, 0x10, + 0xe7, 0x98, 0x9a, 0xfb, 0x33, 0x66, 0xa0, 0xfe, 0x39, 0x0e, 0xe9, 0x02, + 0x2d, 0x94, 0x08, 0xcd, 0x56, 0x3b, 0xd4, 0xa4, 0x97, 0x90, 0x67, 0xe8, + 0xb3, 0xa8, 0x09, 0xcf, 0xe1, 0xa8, 0xf3, 0x44, 0x73, 0x46, 0xa8, 0xc9, + 0x5f, 0x50, 0x5a, 0x31, 0xa0, 0x6e, 0x2b, 0xb7, 0xa8, 0x09, 0xcf, 0xa1, + 0xf7, 0xba, 0xde, 0x59, 0x7c, 0x9c, 0xd3, 0x48, 0xf3, 0x6c, 0x05, 0x17, + 0xdc, 0x50, 0xcd, 0xb8, 0x0e, 0x9d, 0x9e, 0xf7, 0x69, 0x5f, 0x35, 0x77, + 0x7a, 0xbd, 0x98, 0xb4, 0x5f, 0x33, 0xae, 0x43, 0x67, 0xbb, 0xc1, 0x42, + 0x9a, 0x4d, 0xe1, 0xdd, 0xbc, 0xb0, 0x66, 0x5c, 0x87, 0x2c, 0x2d, 0x1c, + 0x97, 0xd2, 0x5c, 0x7a, 0xde, 0x26, 0xcd, 0xb8, 0x0e, 0xb1, 0x55, 0x69, + 0x3b, 0x34, 0xa7, 0xa3, 0x5d, 0x84, 0x19, 0x9a, 0x71, 0x1d, 0x3a, 0x53, + 0x14, 0x45, 0x35, 0xdb, 0xa2, 0x8b, 0xde, 0xe8, 0x35, 0xe3, 0x3a, 0x74, + 0x9d, 0x71, 0x57, 0x1b, 0xa6, 0x59, 0xaf, 0xe9, 0x58, 0xed, 0xbc, 0xe6, + 0x1c, 0xcf, 0x61, 0x9a, 0xcd, 0x23, 0x06, 0xd0, 0xad, 0x5f, 0xff, 0xbd, + 0x1a, 0x3a, 0xcb, 0xf7, 0x66, 0xc4, 0xe6, 0x74, 0x8a, 0x9a, 0xf0, 0x1c, + 0x96, 0xfe, 0xe4, 0x94, 0x84, 0xee, 0x0b, 0x35, 0xd5, 0xe3, 0xe1, 0x19, + 0xb6, 0xec, 0x11, 0x35, 0xe1, 0x38, 0xc4, 0xa3, 0x15, 0x20, 0xa6, 0x0d, + 0x4e, 0x2b, 0xf5, 0xa8, 0x27, 0x33, 0x9b, 0x00, 0x05, 0x8c, 0xd5, 0x9b, + 0x32, 0xd7, 0x03, 0xbf, 0x61, 0x2a, 0xe7, 0x25, 0xf8, 0x54, 0x14, 0x83, + 0x48, 0xa7, 0x8d, 0xba, 0x6f, 0x4c, 0x56, 0xdc, 0x33, 0x2a, 0xa9, 0x9b, + 0x55, 0x99, 0x53, 0x77, 0xdc, 0x86, 0xb8, 0xcc, 0xaa, 0xb6, 0x88, 0x2a, + 0xb3, 0x53, 0xe3, 0x69, 0xa1, 0x6e, 0xa3, 0xc9, 0x98, 0x1b, 0x34, 0x55, + 0x8b, 0xe7, 0xbb, 0xc0, 0x5c, 0x37, 0xbc, 0x86, 0x49, 0xcf, 0x53, 0x90, + 0x54, 0xc3, 0xa4, 0xe2, 0x74, 0x53, 0xdf, 0xd9, 0xe4, 0xa9, 0x96, 0xa9, + 0x85, 0xc8, 0xaa, 0x6d, 0x1d, 0xd1, 0x26, 0xe6, 0xfa, 0xc2, 0x67, 0x98, + 0xaa, 0x56, 0x95, 0x5c, 0x36, 0x9f, 0x68, 0x89, 0x79, 0xe4, 0x4e, 0x1f, + 0xa8, 0x6b, 0xab, 0xf7, 0x66, 0x0d, 0x0b, 0xaa, 0x17, 0x74, 0xd5, 0xb9, + 0xcc, 0xa9, 0x2b, 0x2e, 0x43, 0x5c, 0xd6, 0xa7, 0xe1, 0x10, 0xad, 0xa0, + 0xd7, 0x6c, 0xf3, 0x9c, 0xa9, 0x0f, 0x75, 0xea, 0xfd, 0xfc, 0xd4, 0x20, + 0xe0, 0xe9, 0xce, 0x6d, 0x1a, 0xb5, 0x75, 0x4e, 0xbd, 0xe3, 0x30, 0x44, + 0x93, 0xad, 0xed, 0xd7, 0x97, 0xbc, 0x42, 0xad, 0x81, 0x0a, 0x3c, 0x37, + 0xea, 0x4d, 0x9d, 0xd6, 0x9e, 0x4a, 0xaf, 0x50, 0xcf, 0x02, 0x98, 0xf5, + 0xf2, 0x97, 0xe7, 0xfa, 0x1f, 0x59, 0x86, 0xb9, 0x2e, 0x78, 0x9b, 0x5a, + 0x65, 0x4b, 0x73, 0x9a, 0xcd, 0xfc, 0xc9, 0x84, 0xda, 0x02, 0x3c, 0xea, + 0x56, 0x9b, 0xa9, 0xd7, 0x6a, 0xd2, 0xe5, 0xea, 0x4b, 0x6a, 0x2f, 0x3c, + 0xdc, 0xdc, 0xf6, 0x31, 0x99, 0x35, 0x3e, 0xd6, 0x19, 0x57, 0x71, 0xca, + 0x0e, 0xa5, 0xc4, 0xb2, 0x84, 0x44, 0xc5, 0xc5, 0x24, 0xbf, 0x37, 0x47, + 0xf9, 0x34, 0x53, 0xa7, 0xd1, 0x94, 0x87, 0xab, 0xa7, 0xf2, 0xf7, 0xa8, + 0x93, 0xf0, 0x31, 0x33, 0x83, 0x29, 0x2f, 0x78, 0x9c, 0xad, 0x23, 0x1f, + 0xeb, 0x80, 0x9b, 0x38, 0x6d, 0x4c, 0x45, 0xd9, 0xba, 0xd0, 0xe6, 0xd2, + 0x27, 0x92, 0x3a, 0xe3, 0xa3, 0x18, 0x24, 0x4b, 0x78, 0xd3, 0x44, 0x6d, + 0xf5, 0x94, 0xe9, 0xd2, 0xb6, 0xa7, 0x01, 0x75, 0x11, 0x5e, 0x6e, 0x4d, + 0xf3, 0xaf, 0x46, 0xd6, 0xa1, 0xe8, 0xdc, 0x47, 0xd6, 0xcf, 0xb5, 0x56, + 0xeb, 0xc7, 0x71, 0xbd, 0x9e, 0xbc, 0x1a, 0x4a, 0x4c, 0x55, 0xd6, 0x91, + 0x6c, 0xa5, 0xb2, 0xfc, 0x49, 0x97, 0x7a, 0xc7, 0x4b, 0xb1, 0xea, 0x9c, + 0x03, 0xce, 0x56, 0xd9, 0x51, 0xb4, 0xb1, 0x9b, 0x9e, 0xe7, 0x28, 0x59, + 0x2a, 0x6d, 0x43, 0x38, 0x35, 0x28, 0xd4, 0xeb, 0x70, 0x35, 0xdb, 0xf5, + 0xec, 0xa6, 0x3d, 0x0f, 0xb4, 0x07, 0xe1, 0x74, 0xb6, 0x74, 0x72, 0x04, + 0x58, 0x13, 0x89, 0x09, 0x98, 0x98, 0x79, 0x35, 0xab, 0x2f, 0x2b, 0x79, + 0x86, 0x65, 0x2f, 0xca, 0xc5, 0x93, 0x48, 0x0f, 0x31, 0x3b, 0xa3, 0xf8, + 0x28, 0x4b, 0x14, 0x49, 0x0e, 0xc9, 0xf0, 0xe5, 0x5e, 0x2d, 0xa6, 0xfe, + 0x97, 0x5a, 0x3f, 0x06, 0x50, 0xb0, 0x7c, 0x4e, 0xbb, 0x12, 0xfd, 0x93, + 0xc5, 0xdd, 0x38, 0xc7, 0x73, 0x2c, 0x69, 0x2f, 0x8f, 0xa1, 0x5c, 0xf9, + 0x78, 0x2e, 0x8f, 0x99, 0x77, 0xa5, 0x8f, 0x7d, 0xb6, 0x5a, 0xc5, 0x6d, + 0x36, 0x27, 0xa5, 0x5e, 0x4c, 0xa8, 0xc1, 0xdc, 0x43, 0x6e, 0x7e, 0xcf, + 0x7a, 0x34, 0x8b, 0xfd, 0x23, 0xf9, 0x02, 0xdd, 0xa2, 0xbf, 0x85, 0xd7, + 0xcd, 0xa7, 0xc6, 0x78, 0xb0, 0x13, 0x86, 0x37, 0xc3, 0xef, 0xfe, 0x28, + 0xfb, 0xbb, 0x6e, 0x4f, 0x2f, 0x88, 0x75, 0x1a, 0xeb, 0xfa, 0xd5, 0xe6, + 0x78, 0xbd, 0xbf, 0x65, 0xa4, 0x5c, 0xc6, 0xe7, 0xbf, 0x7f, 0xf6, 0xce, + 0xef, 0x7a, 0x84, 0xf3, 0x13, 0xca, 0xcc, 0x93, 0x7c, 0xa4, 0x53, 0xf0, + 0x84, 0x2d, 0x5e, 0xa0, 0xe2, 0xf8, 0xde, 0x25, 0xba, 0xcb, 0xa5, 0x86, + 0xdd, 0x0e, 0x3c, 0xdd, 0x07, 0xaa, 0xd6, 0x84, 0xaa, 0x76, 0x75, 0x8a, + 0x7e, 0xb0, 0xa3, 0xa7, 0xd9, 0xbf, 0x87, 0x5d, 0xfa, 0x8e, 0x09, 0x26, + 0x54, 0xa2, 0x7d, 0xc3, 0x30, 0x51, 0x65, 0x6f, 0x94, 0x1c, 0x6e, 0x58, + 0x55, 0xe2, 0x0f, 0xd5, 0x36, 0xed, 0x93, 0x1c, 0xf7, 0x7c, 0xc0, 0xd4, + 0x20, 0xa6, 0xff, 0xc5, 0x2f, 0x8a, 0xab, 0xca, 0x51, 0xe5, 0xd0, 0x14, + 0xef, 0xbb, 0x9e, 0x47, 0x0e, 0x73, 0x14, 0x3b, 0xca, 0x92, 0x54, 0xaa, + 0x5a, 0xa5, 0x40, 0x75, 0x55, 0x6c, 0xa9, 0xce, 0xb3, 0xef, 0x84, 0x82, + 0x0b, 0x33, 0x40, 0xa5, 0x61, 0xf4, 0x4e, 0xbf, 0xd4, 0xe2, 0x33, 0x0f, + 0xb5, 0xe8, 0x53, 0xbf, 0xbf, 0x3e, 0xc4, 0x9d, 0xb1, 0x94, 0xe9, 0x72, + 0xe3, 0x40, 0x77, 0xca, 0xe6, 0x79, 0x35, 0xac, 0x0f, 0xfc, 0xc4, 0xea, + 0xc7, 0x27, 0x99, 0xbc, 0x3f, 0xd9, 0x9b, 0x84, 0x49, 0x38, 0x73, 0x39, + 0xe4, 0x92, 0x5f, 0x97, 0x7a, 0xa2, 0x57, 0x0d, 0xef, 0x5d, 0xe7, 0xb9, + 0x02, 0xc3, 0xc6, 0x45, 0x7d, 0xf1, 0xff, 0x78, 0x02, 0x9d, 0x41, 0x2f, + 0xd3, 0xe6, 0xdc, 0xb3, 0xa8, 0xfe, 0xf6, 0xf2, 0xd3, 0x2f, 0x09, 0x55, + 0x13, 0xaf, 0x3f, 0x5e, 0x73, 0x08, 0x05, 0x62, 0x75, 0x73, 0x71, 0xde, + 0x95, 0x3f, 0xb7, 0x13, 0x37, 0x33, 0xf8, 0xa3, 0xe1, 0xb8, 0x78, 0x8d, + 0x6a, 0x72, 0x2d, 0x1a, 0xf5, 0xc9, 0x87, 0xff, 0x49, 0xdd, 0xbf, 0x52, + 0x27, 0xc5, 0x5b, 0x5c, 0x67, 0xe6, 0xb9, 0x7e, 0xb6, 0xa4, 0x3b, 0x9b, + 0x78, 0xe8, 0x65, 0xd6, 0xc3, 0x68, 0x7c, 0x9d, 0x99, 0x67, 0x4a, 0x0e, + 0xdf, 0xe0, 0x74, 0x23, 0xfc, 0xa7, 0xc4, 0x7d, 0x8e, 0x72, 0x6f, 0xcf, + 0xab, 0xdb, 0x3f, 0xeb, 0xf7, 0xa3, 0x9d, 0xed, 0xc5, 0xce, 0xde, 0x9e, + 0x6b, 0x4c, 0xa6, 0x0b, 0x18, 0x36, 0x56, 0xbc, 0xf5, 0x68, 0x71, 0xc5, + 0x92, 0x9d, 0x69, 0xfe, 0xa3, 0x8f, 0x68, 0x27, 0x6c, 0xd3, 0xf9, 0x7e, + 0xe6, 0x87, 0xf4, 0xb7, 0xd5, 0x3f, 0x68, 0x0b, 0x71, 0xcf, 0xcb, 0xbd, + 0x60, 0x81, 0xb5, 0x7b, 0x9d, 0x0e, 0x65, 0xa8, 0xe5, 0xf0, 0x8b, 0xa7, + 0xcd, 0x1e, 0x0b, 0xd5, 0xe2, 0xcd, 0x0e, 0xe8, 0xce, 0xbb, 0xcd, 0xb6, + 0x84, 0xe3, 0x32, 0xaf, 0x26, 0x6f, 0x51, 0x3e, 0x71, 0x9e, 0x3f, 0x7b, + 0x9d, 0x2b, 0xd7, 0x2a, 0x6b, 0x88, 0x57, 0x19, 0xb1, 0x71, 0x92, 0x08, + 0xaf, 0x6c, 0xf3, 0x63, 0x1d, 0x37, 0x57, 0xf4, 0x8f, 0x8a, 0x36, 0x16, + 0x4a, 0x4f, 0x20, 0x9a, 0x21, 0x27, 0xd5, 0xf9, 0x62, 0x5d, 0xae, 0x13, + 0x9f, 0xf2, 0xad, 0xbe, 0x13, 0x55, 0x9b, 0xba, 0xb7, 0xee, 0x67, 0x16, + 0xf5, 0x93, 0x0a, 0x24, 0x4e, 0xb5, 0x04, 0x0f, 0xec, 0xe3, 0x00, 0x90, + 0x70, 0x0a, 0xc7, 0x88, 0x80, 0x5b, 0x6c, 0x8d, 0xc9, 0xb9, 0x98, 0x72, + 0x54, 0x94, 0x8f, 0x25, 0x3c, 0xf7, 0x16, 0xff, 0xae, 0xa7, 0x27, 0xba, + 0xe4, 0x79, 0xcf, 0xdd, 0x42, 0x93, 0xe2, 0xd7, 0x26, 0x69, 0xe5, 0x35, + 0x73, 0xff, 0x87, 0x0b, 0xbd, 0xf3, 0xed, 0x78, 0xff, 0x77, 0x9a, 0x17, + 0xf1, 0x1b, 0x85, 0x53, 0x6f, 0x84, 0xf6, 0xc6, 0x6e, 0xbf, 0x61, 0xf2, + 0xda, 0x1e, 0x14, 0x25, 0x11, 0x5e, 0xe6, 0x75, 0x1f, 0x8b, 0x57, 0x7b, + 0xe6, 0xfa, 0x17, 0x27, 0x7f, 0x56, 0x1e, 0xfd, 0xf7, 0xc5, 0x3d, 0xcf, + 0x0f, 0x77, 0x8f, 0x6a, 0xbe, 0xe9, 0x52, 0xb9, 0x92, 0x9c, 0xa1, 0xda, + 0xa4, 0xe4, 0x8d, 0x7c, 0xd6, 0xf3, 0x3d, 0x77, 0x55, 0xc4, 0x89, 0x2d, + 0xf9, 0x72, 0x75, 0xa9, 0x33, 0xe7, 0xd7, 0x9e, 0x5d, 0xd9, 0x52, 0x97, + 0xb9, 0x30, 0x26, 0x49, 0xf0, 0x91, 0x38, 0x24, 0x06, 0x09, 0x99, 0x90, + 0x09, 0x99, 0x90, 0x47, 0xec, 0x76, 0xe3, 0xbc, 0xda, 0xb3, 0xd3, 0xe6, + 0x78, 0x2f, 0x93, 0xde, 0x6e, 0x4a, 0xd2, 0xb1, 0x14, 0xf1, 0x1d, 0x4f, + 0x88, 0x4d, 0xe1, 0x84, 0x59, 0x01, 0x59, 0xcc, 0x42, 0x16, 0xb3, 0x90, + 0xc5, 0x2c, 0x64, 0x31, 0x0b, 0x59, 0xcc, 0x42, 0x16, 0xb3, 0x90, 0xa5, + 0x0e, 0x3e, 0xc5, 0xa4, 0x18, 0x29, 0x47, 0x8e, 0x71, 0x1e, 0x8d, 0x21, + 0xf3, 0xdc, 0x3e, 0xe5, 0xd5, 0x9e, 0x5b, 0xb9, 0x13, 0xec, 0xd5, 0x33, + 0x0f, 0x7f, 0xdf, 0x5e, 0xad, 0xda, 0xdb, 0xcb, 0x07, 0xcf, 0x13, 0x55, + 0x7f, 0x95, 0x1e, 0x15, 0xb0, 0x8d, 0x67, 0x1d, 0xc4, 0x4e, 0x37, 0x0a, + 0x3e, 0xef, 0xf7, 0xb3, 0x1c, 0x85, 0x7e, 0x97, 0x3d, 0x4b, 0xea, 0xd1, + 0xc1, 0xe5, 0x39, 0x37, 0x4b, 0xc5, 0xeb, 0x32, 0xee, 0xa4, 0xbf, 0x53, + 0x17, 0xbf, 0x7c, 0x9d, 0x76, 0x90, 0xa7, 0x82, 0x73, 0x7a, 0xc5, 0x7a, + 0x91, 0x17, 0xdf, 0xbf, 0xda, 0x8b, 0xb7, 0x7d, 0x6d, 0xd7, 0x1b, 0x29, + 0xe5, 0x0f, 0x45, 0x4d, 0xc8, 0x1b, 0x6a, 0xd9, 0xfc, 0x00, 0xa2, 0xfd, + 0x1f, 0xc1, 0xed, 0xe0, 0xed, 0x52, 0xcc, 0x73, 0x79, 0x47, 0x19, 0xad, + 0xb2, 0x77, 0x7d, 0x4b, 0x14, 0xb7, 0x37, 0xdf, 0x98, 0xe4, 0x3a, 0x9f, + 0xdd, 0xa3, 0x4c, 0x0b, 0x93, 0xd2, 0xb9, 0xf7, 0xd3, 0xd2, 0x25, 0x95, + 0xe4, 0xea, 0xac, 0xc6, 0xc2, 0x0b, 0xa5, 0x73, 0xd7, 0x49, 0xc3, 0xc5, + 0x99, 0xbd, 0xa1, 0x8d, 0x9b, 0x6f, 0x2a, 0x94, 0x6d, 0x90, 0x55, 0x57, + 0x48, 0x32, 0xf7, 0xce, 0x44, 0xe9, 0xe4, 0xf6, 0xbe, 0xd7, 0x7a, 0x29, + 0xa5, 0x4d, 0x94, 0xe4, 0xf2, 0xe5, 0x32, 0x4c, 0x69, 0xd9, 0x19, 0x56, + 0x01, 0xaa, 0xc6, 0xb3, 0x92, 0x5d, 0x85, 0xe4, 0xdc, 0xce, 0x63, 0x4c, + 0x6e, 0xdf, 0x70, 0x2f, 0xdd, 0x4f, 0x7d, 0xe8, 0xa4, 0x4e, 0x89, 0x26, + 0xe3, 0xbd, 0xb4, 0xe5, 0x63, 0x0f, 0x5f, 0xb6, 0xef, 0x9e, 0xb8, 0x8e, + 0xc7, 0xd0, 0xae, 0xfe, 0x7e, 0x0f, 0x4f, 0x95, 0x60, 0x85, 0x44, 0x0c, + 0x6d, 0x67, 0x5e, 0x7a, 0xf6, 0xd1, 0x1b, 0x43, 0x9e, 0x87, 0x92, 0x6f, + 0x95, 0xcf, 0xfd, 0xf7, 0xf9, 0xa6, 0x27, 0xe2, 0xd5, 0xed, 0x1d, 0xee, + 0x29, 0x84, 0x5e, 0x12, 0x7a, 0x59, 0x8e, 0x53, 0x3d, 0xc0, 0xae, 0xf1, + 0x95, 0xff, 0x5c, 0xde, 0x14, 0x56, 0x1d, 0x07, 0xd3, 0xaa, 0xf2, 0xbe, + 0x86, 0xc9, 0xc8, 0xfd, 0xd7, 0xa4, 0x9f, 0xef, 0xf4, 0xf4, 0x15, 0x54, + 0x94, 0x96, 0x2f, 0xef, 0xe1, 0xcf, 0x98, 0x2b, 0x55, 0xbb, 0xa9, 0x89, + 0xe0, 0x66, 0xaf, 0x7e, 0xc1, 0x7e, 0x2c, 0x69, 0x07, 0xa3, 0x4e, 0xcf, + 0x67, 0x3f, 0xa8, 0x38, 0x9c, 0xba, 0xd9, 0xc2, 0x35, 0x50, 0x67, 0xc7, + 0x1e, 0xfe, 0x9e, 0xbf, 0xf1, 0xd1, 0x9e, 0xd9, 0xa3, 0x34, 0xfb, 0x5e, + 0xf3, 0xe9, 0x8e, 0xef, 0x5f, 0x4b, 0x89, 0x6a, 0x9b, 0xd7, 0xde, 0x37, + 0x80, 0x0b, 0x8b, 0x6b, 0xd9, 0x55, 0x70, 0xe2, 0x2c, 0x50, 0x2d, 0x54, + 0xd4, 0xe2, 0xb3, 0x47, 0xc7, 0xa8, 0x99, 0x42, 0x52, 0x88, 0xa9, 0x10, + 0x10, 0x3e, 0x19, 0x97, 0xb0, 0x88, 0xe7, 0xd2, 0x52, 0xf2, 0x57, 0x3b, + 0x62, 0x92, 0x3b, 0xf4, 0x63, 0x77, 0x7c, 0x54, 0x33, 0xdc, 0xf4, 0x9f, + 0xff, 0x7b, 0xc1, 0x93, 0x4c, 0x6b, 0x0a, 0x16, 0x6a, 0x52, 0x82, 0xda, + 0xb3, 0x35, 0x50, 0x0b, 0x6a, 0xd8, 0x86, 0x6c, 0x02, 0x53, 0xdb, 0x78, + 0xe3, 0x47, 0x5d, 0xf4, 0x87, 0xa3, 0x98, 0x2e, 0xfa, 0xae, 0xd7, 0xdc, + 0x65, 0x31, 0x4f, 0xe8, 0xad, 0xc3, 0xf9, 0x1e, 0xf2, 0xf1, 0xfd, 0xe4, + 0x54, 0x9b, 0x6a, 0x02, 0x1a, 0x10, 0x3e, 0x19, 0x88, 0x0d, 0x93, 0xfd, + 0xb4, 0x0b, 0x4f, 0xb9, 0xd9, 0xd0, 0x9d, 0xeb, 0xae, 0x42, 0x2b, 0xc3, + 0x1e, 0x4d, 0xae, 0xf5, 0x76, 0xf4, 0x77, 0x72, 0x11, 0x7e, 0x3b, 0x9a, + 0xaf, 0x37, 0xf7, 0xb9, 0x3f, 0x7b, 0x54, 0xd9, 0x92, 0x9d, 0x28, 0x98, + 0x15, 0x42, 0x3f, 0x66, 0x28, 0x8c, 0xb1, 0x78, 0xc0, 0x6e, 0xe1, 0xce, + 0x91, 0x2a, 0x9b, 0x97, 0x45, 0xde, 0x1d, 0xc7, 0xa5, 0xbe, 0x33, 0x38, + 0x0d, 0xab, 0x35, 0x73, 0x7a, 0xf6, 0x4e, 0x1b, 0xb0, 0xd1, 0xcc, 0xdd, + 0xd6, 0xd4, 0x96, 0xaa, 0xb0, 0xf2, 0xe1, 0xf9, 0x62, 0x95, 0x27, 0xa8, + 0x13, 0xcd, 0x70, 0x6e, 0x47, 0x5e, 0xa6, 0x6c, 0xee, 0x3c, 0x49, 0xc9, + 0xce, 0x33, 0x22, 0x22, 0xa3, 0xb8, 0xfb, 0xfa, 0x8b, 0x61, 0x23, 0x7e, + 0x5f, 0x22, 0x57, 0x23, 0x7a, 0xaf, 0x77, 0x83, 0xf9, 0xbe, 0xec, 0xe1, + 0x77, 0x6d, 0x6d, 0x5a, 0x33, 0x14, 0x4c, 0xf6, 0x90, 0xc3, 0x0b, 0xc4, + 0xd2, 0x20, 0x92, 0x39, 0x17, 0xb3, 0x97, 0x3f, 0x1f, 0x35, 0x64, 0x8d, + 0x99, 0x7d, 0x2d, 0x2d, 0xc9, 0x0d, 0x51, 0x83, 0xfc, 0xee, 0x99, 0x36, + 0xef, 0x2e, 0xf3, 0x98, 0x1e, 0xb3, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0xa6, 0xfc, 0xb4, 0xe3, 0xce, 0x7c, 0x91, 0x72, 0xdd, + 0xea, 0x88, 0xea, 0x05, 0x19, 0x26, 0xda, 0x97, 0x0b, 0x6d, 0x8f, 0x7a, + 0xec, 0x6f, 0xfe, 0xe2, 0x6c, 0x9c, 0xbf, 0xbd, 0xb9, 0x8b, 0x8a, 0x26, + 0x9a, 0xc5, 0xd8, 0x38, 0x9b, 0xde, 0x1d, 0xe3, 0xcf, 0xe9, 0x23, 0xb1, + 0xd9, 0x55, 0x16, 0x77, 0x30, 0x6b, 0x4e, 0x82, 0x5a, 0x03, 0x28, 0xe2, + 0xd5, 0xa5, 0x3e, 0x9b, 0x67, 0x52, 0x8e, 0x7d, 0xf1, 0xb8, 0xd2, 0x83, + 0x3d, 0xe3, 0xf8, 0x38, 0x91, 0x95, 0x1c, 0x0c, 0x3e, 0xc7, 0xab, 0x43, + 0xb5, 0x44, 0xb5, 0xe1, 0x54, 0x63, 0xe9, 0xe4, 0x08, 0xb0, 0x06, 0x62, + 0x07, 0x1f, 0x62, 0xc5, 0x40, 0xdd, 0x6b, 0x8d, 0xe3, 0xef, 0xe3, 0x4c, + 0xac, 0x6f, 0xbb, 0x8e, 0xac, 0x2e, 0xb5, 0x76, 0xbd, 0xec, 0x4d, 0x63, + 0x6c, 0xdd, 0xc6, 0x8d, 0xbb, 0xb7, 0x09, 0x3e, 0x54, 0xeb, 0x1c, 0x28, + 0x68, 0xb6, 0x61, 0x23, 0xd1, 0x4e, 0xe7, 0x9b, 0x9b, 0x60, 0xb6, 0x72, + 0x79, 0x53, 0x3c, 0x01, 0xef, 0x5d, 0x77, 0x95, 0x97, 0xdf, 0x58, 0x9a, + 0xd2, 0x54, 0x2f, 0xd6, 0xb6, 0xbd, 0x23, 0x4e, 0xdf, 0xca, 0x3a, 0xb3, + 0xd7, 0x54, 0x42, 0xaa, 0xc3, 0xc3, 0x0c, 0x4d, 0x4e, 0x2a, 0x98, 0xdb, + 0x4d, 0xbd, 0xd4, 0x17, 0x54, 0x9b, 0x93, 0x36, 0x2a, 0xb7, 0x8e, 0x33, + 0x15, 0x8f, 0x97, 0x54, 0x46, 0x6f, 0xeb, 0x33, 0xe3, 0x52, 0x14, 0xf5, + 0x52, 0xb5, 0xba, 0xb4, 0xba, 0xc9, 0x6b, 0x70, 0x67, 0x74, 0xe6, 0x93, + 0xda, 0xe0, 0xe4, 0xe6, 0x1f, 0xf3, 0xf9, 0x47, 0xf3, 0xab, 0x0c, 0xa2, + 0x4a, 0xa7, 0xb3, 0x05, 0x8f, 0xda, 0xce, 0x3f, 0x8b, 0x50, 0x49, 0xb6, + 0xdd, 0x90, 0x6c, 0xdf, 0xae, 0xa6, 0x76, 0xb8, 0xc9, 0xf0, 0xbf, 0x2e, + 0xcf, 0xea, 0x11, 0x81, 0x01, 0x56, 0x7d, 0x0a, 0x0a, 0x91, 0xda, 0x15, + 0x2e, 0xba, 0xf0, 0x03, 0x3c, 0x80, 0xd9, 0x9a, 0x65, 0x96, 0xb3, 0x4b, + 0x74, 0x70, 0xd4, 0x4d, 0x53, 0xf6, 0xa3, 0xa5, 0x62, 0x99, 0x0d, 0x77, + 0x5b, 0xa6, 0x0e, 0xa8, 0x32, 0x9f, 0x2d, 0x5a, 0x31, 0x10, 0xbf, 0xdd, + 0x41, 0xea, 0x88, 0x27, 0x33, 0x5d, 0xab, 0xba, 0xef, 0x9e, 0xa3, 0xf7, + 0x0d, 0x3a, 0xe2, 0xb3, 0xd4, 0x0a, 0x9d, 0xf5, 0x55, 0xe3, 0x16, 0x9e, + 0x1e, 0xf6, 0xba, 0xfd, 0xae, 0xc6, 0x6e, 0x2c, 0xc4, 0x0c, 0x69, 0xc4, + 0x55, 0x67, 0x16, 0xac, 0x5d, 0xbb, 0xc6, 0x56, 0xdd, 0x47, 0xb5, 0x69, + 0xc4, 0xd5, 0xaa, 0x26, 0x35, 0xed, 0x1a, 0xcd, 0x64, 0x8f, 0x68, 0x87, + 0xc6, 0x1c, 0x4f, 0x93, 0x1d, 0x6d, 0x38, 0xfa, 0x4a, 0x23, 0xfc, 0x71, + 0x5f, 0xed, 0xdc, 0x5d, 0x48, 0x47, 0x3c, 0x5d, 0xed, 0xeb, 0x3c, 0x8c, + 0x07, 0xe1, 0xb7, 0x49, 0x47, 0xd3, 0xaa, 0xaa, 0x67, 0x6f, 0x82, 0xc1, + 0x9a, 0xe9, 0x5b, 0xb8, 0xf5, 0xab, 0xe0, 0xa8, 0x43, 0x0d, 0xcb, 0x7a, + 0x0a, 0xe5, 0xfb, 0xd0, 0x6c, 0x4b, 0x56, 0x8e, 0x3a, 0x4c, 0xcb, 0x47, + 0xcb, 0x4e, 0x21, 0xcb, 0xaa, 0xb6, 0x04, 0x1d, 0x78, 0x44, 0xed, 0x70, + 0x13, 0x0d, 0x23, 0x2d, 0x5a, 0x13, 0xfc, 0x2a, 0x04, 0xb6, 0x1b, 0x8e, + 0xdb, 0x4e, 0xed, 0x60, 0x5a, 0x97, 0xf6, 0x84, 0x4a, 0xea, 0xf4, 0xb6, + 0x3d, 0xbf, 0x2d, 0x3e, 0xd6, 0x16, 0x27, 0x71, 0xb2, 0x93, 0xb6, 0x34, + 0xcb, 0xea, 0x10, 0x55, 0xe9, 0x60, 0xe4, 0x4e, 0xb7, 0x20, 0xa9, 0x0d, + 0x4c, 0x31, 0xf7, 0x9f, 0x27, 0xf5, 0x51, 0xb5, 0xf8, 0x41, 0x09, 0x59, + 0xf4, 0xff, 0x9c, 0xc6, 0xf4, 0x0b, 0x2a, 0xe7, 0x78, 0x58, 0x1b, 0x0a, + 0xd6, 0x53, 0x5a, 0xb2, 0x78, 0x51, 0x3a, 0x89, 0xa9, 0x96, 0xed, 0x6d, + 0x76, 0x3a, 0x58, 0x17, 0xeb, 0x55, 0xa2, 0x3a, 0x54, 0x9e, 0xe4, 0x75, + 0x47, 0xa6, 0x97, 0xa1, 0x4d, 0xf5, 0x02, 0xbe, 0x2a, 0x31, 0xdb, 0x31, + 0x9b, 0x86, 0x36, 0x3b, 0x7f, 0x91, 0x52, 0xcd, 0x3a, 0x7e, 0x88, 0xee, + 0xeb, 0xf4, 0xa4, 0x97, 0xfc, 0x97, 0xc6, 0x32, 0x27, 0xf2, 0xab, 0x89, + 0x32, 0x94, 0x2f, 0x06, 0xe9, 0xce, 0x61, 0x47, 0xdb, 0x28, 0xce, 0xb3, + 0x5d, 0x4b, 0xcd, 0x6a, 0x2a, 0xe5, 0xd4, 0x76, 0x78, 0xf6, 0xc6, 0x3d, + 0x0d, 0xaa, 0xa9, 0x05, 0xe1, 0x74, 0xb6, 0xf4, 0x29, 0x07, 0x26, 0x56, + 0xe2, 0x50, 0xeb, 0x0b, 0x9a, 0xe1, 0xf3, 0x27, 0x3f, 0xc5, 0xe7, 0xfd, + 0xe4, 0x4c, 0x5d, 0x20, 0x66, 0xf5, 0xdb, 0xe1, 0xa4, 0x18, 0xe4, 0xd6, + 0x10, 0x4f, 0xd4, 0x20, 0x7f, 0xfd, 0xaf, 0x67, 0x5d, 0x2a, 0xd7, 0x7f, + 0x24, 0x39, 0x73, 0x96, 0xe7, 0xff, 0x62, 0xfd, 0x8a, 0xeb, 0x7b, 0x6b, + 0xfc, 0x6c, 0x08, 0x73, 0xb4, 0x9f, 0xb6, 0xeb, 0x97, 0xec, 0xd1, 0xc8, + 0xad, 0x6f, 0xdd, 0x35, 0xfd, 0x64, 0xf9, 0x9e, 0xf8, 0xd2, 0xb7, 0xbc, + 0x2d, 0x33, 0xb8, 0x51, 0xd5, 0x0a, 0x0c, 0xfb, 0xfb, 0x17, 0xc9, 0xbf, + 0x3c, 0xdf, 0xdf, 0xed, 0x1d, 0xef, 0xfe, 0x2b, 0xd8, 0xf1, 0x8e, 0xa1, + 0xe0, 0x97, 0xa2, 0x7a, 0xf1, 0x36, 0xcb, 0xcf, 0x84, 0x5d, 0xfc, 0xda, + 0xb8, 0x0c, 0xa7, 0xfb, 0xf3, 0xdc, 0xef, 0x55, 0xe5, 0x2e, 0x97, 0x7b, + 0xdf, 0xd2, 0x1d, 0xa3, 0x1d, 0xbc, 0x4e, 0x94, 0x32, 0xdc, 0x18, 0x3e, + 0x6c, 0x76, 0x72, 0x97, 0x3a, 0xb3, 0xbf, 0x7c, 0xfc, 0x57, 0xc8, 0x6f, + 0xfe, 0xeb, 0xf3, 0xb3, 0xc2, 0x8f, 0x7e, 0xe0, 0x1d, 0x5a, 0xca, 0x58, + 0x2e, 0x96, 0xa3, 0x5d, 0x05, 0xcd, 0xa1, 0x3c, 0x46, 0xd5, 0x78, 0x45, + 0xbc, 0x39, 0x7e, 0xf9, 0x2b, 0x6f, 0x3c, 0xe2, 0xd7, 0x2a, 0xfc, 0xad, + 0x99, 0x58, 0xf9, 0xc0, 0xeb, 0xf3, 0xcf, 0x67, 0xac, 0xca, 0x0f, 0xcf, + 0xaa, 0xff, 0xed, 0xf5, 0x92, 0xf1, 0x75, 0x15, 0x5c, 0x5c, 0x3c, 0x5b, + 0xec, 0x25, 0xed, 0xff, 0x99, 0xc6, 0x41, 0xfe, 0xe5, 0x5f, 0x2b, 0x8b, + 0x9f, 0x7d, 0xfb, 0x3d, 0x14, 0x4d, 0x84, 0xd6, 0x10, 0xe1, 0x41, 0xd3, + 0x7d, 0xd1, 0xc1, 0xaf, 0x3e, 0x58, 0x64, 0xaf, 0x12, 0x6e, 0x72, 0xf3, + 0xb1, 0x0b, 0xbb, 0xf0, 0xeb, 0xe5, 0xe2, 0x45, 0xac, 0xc7, 0xf8, 0x1b, + 0x9b, 0x07, 0x3f, 0xf7, 0x0b, 0x5a, 0x71, 0x7a, 0x28, 0x51, 0x37, 0xfb, + 0xd3, 0x07, 0x95, 0x96, 0xfd, 0x26, 0x3e, 0xf4, 0x63, 0xb7, 0x8d, 0xee, + 0x7a, 0x23, 0xcb, 0x4d, 0x9f, 0x6b, 0xbc, 0x3d, 0x2a, 0x56, 0xf9, 0x57, + 0xa5, 0x72, 0x91, 0xff, 0x85, 0xa3, 0xfa, 0x18, 0xf7, 0x4f, 0x39, 0x5e, + 0xcc, 0x78, 0x1d, 0xab, 0xe9, 0xff, 0x62, 0xb5, 0x87, 0xfe, 0x26, 0xfa, + 0x59, 0xf9, 0xdf, 0x04, 0xed, 0x0b, 0x58, 0xbc, 0xae, 0xb8, 0x99, 0xcc, + 0xa7, 0xdf, 0xc4, 0x5d, 0xf0, 0x5f, 0x3f, 0x03, 0x5f, 0x9c, 0xe5, 0xb7, + 0xae, 0xc9, 0x99, 0xa2, 0xcd, 0x3d, 0x72, 0xe3, 0x2d, 0x7f, 0xb9, 0x85, + 0x76, 0xe5, 0x31, 0x9d, 0x7d, 0x33, 0x93, 0x9f, 0xfd, 0xa7, 0x66, 0xc9, + 0x86, 0x13, 0x79, 0xf3, 0x4d, 0xfd, 0xfb, 0x61, 0x32, 0x7e, 0x91, 0x91, + 0x38, 0x89, 0xe5, 0x3c, 0xa9, 0x1c, 0x9d, 0x54, 0x2e, 0x76, 0x55, 0xfc, + 0x3f, 0xed, 0x27, 0xaf, 0xf1, 0xef, 0x89, 0x33, 0xfa, 0x42, 0xd7, 0x5f, + 0xea, 0xbd, 0x6f, 0xf1, 0x8f, 0x15, 0x8a, 0xf8, 0x2d, 0xe4, 0x42, 0xce, + 0x24, 0xfc, 0x26, 0x66, 0x06, 0x43, 0x7a, 0x4f, 0x2b, 0x8f, 0x25, 0xc9, + 0x99, 0xfe, 0xb1, 0xae, 0xf0, 0x25, 0x8d, 0x67, 0xf3, 0x89, 0x62, 0xd3, + 0x59, 0x5d, 0x79, 0xc6, 0xac, 0xfa, 0xbe, 0x6a, 0x93, 0xbb, 0xfa, 0x4b, + 0x96, 0x3c, 0xc8, 0xb9, 0x56, 0x24, 0xb7, 0x53, 0x09, 0x13, 0xc5, 0xda, + 0xd7, 0x0f, 0x8e, 0x7b, 0x9a, 0x7c, 0xf1, 0x3d, 0x7e, 0x89, 0x7a, 0x30, + 0xac, 0xdf, 0x70, 0x12, 0x54, 0x00, 0xe1, 0x54, 0x63, 0xe9, 0x53, 0x8e, + 0x70, 0x87, 0x4c, 0x5d, 0x55, 0xd1, 0xf7, 0xd2, 0x59, 0xef, 0x59, 0x1d, + 0x59, 0x5d, 0xad, 0xb5, 0x31, 0x3d, 0xd6, 0x60, 0x49, 0xcc, 0xdb, 0xc1, + 0x3c, 0xc8, 0xad, 0x21, 0xb6, 0x1b, 0x90, 0x7d, 0xeb, 0x7f, 0x53, 0xd1, + 0x14, 0xb3, 0x95, 0xc9, 0x9d, 0x84, 0x26, 0x83, 0xfb, 0x9f, 0x76, 0x73, + 0xab, 0x1e, 0xc5, 0xf5, 0x76, 0x09, 0x0b, 0xdb, 0xeb, 0x8d, 0x37, 0xa1, + 0x33, 0x50, 0x15, 0x3c, 0x45, 0x6f, 0xeb, 0x2e, 0xbe, 0x6d, 0x89, 0xe1, + 0x0e, 0x6f, 0xf5, 0xc9, 0x2f, 0x4f, 0xaa, 0xad, 0x50, 0x75, 0xa1, 0xb3, + 0x03, 0xa6, 0xb6, 0xca, 0xff, 0xc6, 0x90, 0xab, 0xc7, 0x83, 0x85, 0xf7, + 0x57, 0x2d, 0x5e, 0xd1, 0x67, 0xbf, 0xb4, 0x7a, 0x94, 0xad, 0x3a, 0xbf, + 0x74, 0x66, 0x58, 0x68, 0xc0, 0x45, 0x67, 0x17, 0x64, 0x56, 0xbb, 0x86, + 0xb4, 0xee, 0xa3, 0xda, 0x34, 0xe0, 0x62, 0x55, 0x53, 0x6b, 0x3a, 0x34, + 0xd8, 0x56, 0x9b, 0xee, 0x8b, 0x5f, 0xbf, 0xd4, 0xe3, 0xc1, 0x50, 0x43, + 0x35, 0x9e, 0x60, 0x4b, 0xfd, 0x7d, 0x57, 0x1f, 0xde, 0x6f, 0xb5, 0xbc, + 0xe6, 0x6d, 0xcf, 0x56, 0x5b, 0x5e, 0xf8, 0x1d, 0xd0, 0x32, 0x07, 0x26, + 0x8c, 0xd4, 0xaa, 0xd6, 0x74, 0xb6, 0x3f, 0x67, 0xd2, 0x60, 0xb7, 0xad, + 0xe5, 0xa8, 0x06, 0xe5, 0xeb, 0xd6, 0x4e, 0x26, 0x30, 0x4f, 0x01, 0x5f, + 0x54, 0x0c, 0x3a, 0x68, 0xfd, 0x7d, 0x2b, 0x4a, 0x5c, 0x50, 0x11, 0x0d, + 0x25, 0x83, 0xfb, 0xb1, 0xe9, 0xc8, 0xb6, 0x5a, 0x4e, 0xe6, 0xa9, 0x14, + 0x6e, 0xaf, 0x5a, 0xcd, 0xa2, 0x43, 0xce, 0x79, 0xcc, 0x6a, 0xa9, 0xb9, + 0xd5, 0x06, 0xdd, 0x91, 0x60, 0x25, 0xbd, 0xed, 0xcb, 0x15, 0xcb, 0xef, + 0xd5, 0xf0, 0xf0, 0x94, 0x94, 0xec, 0x55, 0xeb, 0xf7, 0xb2, 0xdf, 0xcd, + 0x3b, 0x69, 0x8d, 0x69, 0x78, 0x5b, 0xfd, 0xf7, 0xb5, 0xee, 0xba, 0xff, + 0xb4, 0x0f, 0xc3, 0x9a, 0xe4, 0x81, 0xe0, 0xe2, 0xd0, 0xf6, 0x8b, 0xce, + 0x35, 0x38, 0x3b, 0xb8, 0x6b, 0xc7, 0xc7, 0x67, 0xcd, 0xdd, 0x19, 0xac, + 0xda, 0x78, 0x66, 0x02, 0xfd, 0x3f, 0xb0, 0x9f, 0xd8, 0xe7, 0x07, 0xad, + 0xec, 0x1f, 0x04, 0xf2, 0x63, 0x3f, 0xb0, 0x2f, 0xc7, 0xa8, 0x88, 0x56, + 0x1b, 0x56, 0x4e, 0x5e, 0xaf, 0xf1, 0xf8, 0xef, 0xd9, 0xbf, 0x69, 0x8f, + 0x3f, 0xb9, 0x5f, 0xed, 0x3d, 0xd9, 0xab, 0x87, 0xc6, 0x81, 0xa2, 0xb8, + 0x6f, 0xbc, 0x12, 0xde, 0x11, 0x6f, 0x64, 0xe8, 0xf2, 0x8d, 0x87, 0x1d, + 0x97, 0xde, 0xb7, 0xe4, 0xab, 0xfb, 0x5c, 0x6c, 0xf2, 0xba, 0xcc, 0x42, + 0xfb, 0xbe, 0x9d, 0x71, 0xee, 0xcc, 0x71, 0xc9, 0x9d, 0x03, 0x3b, 0xf0, + 0xad, 0x4b, 0xe4, 0x4c, 0x1f, 0xaf, 0x02, 0xf6, 0xad, 0x46, 0xd5, 0xc0, + 0x2c, 0x58, 0x4f, 0x51, 0x47, 0x57, 0x17, 0x16, 0xf6, 0x38, 0xeb, 0x91, + 0x57, 0xaf, 0x1a, 0xf0, 0x5c, 0x2b, 0x64, 0x13, 0xcc, 0x56, 0x02, 0x69, + 0xa6, 0x2b, 0x3d, 0xb0, 0x60, 0x16, 0xea, 0x28, 0xe9, 0x3a, 0x03, 0xf1, + 0x05, 0xfc, 0x85, 0x9c, 0xd4, 0x1e, 0xa8, 0x2e, 0xea, 0xbe, 0xaa, 0x4d, + 0x75, 0xce, 0x65, 0x4d, 0x98, 0x9e, 0x40, 0x35, 0xfc, 0xc9, 0x3f, 0x7e, + 0x69, 0xe0, 0x73, 0xb5, 0xbe, 0x55, 0xea, 0x60, 0xa6, 0x46, 0xbd, 0x1c, + 0xe5, 0x60, 0xb6, 0x33, 0x98, 0x75, 0x51, 0x4b, 0xcd, 0x38, 0x34, 0xb1, + 0x4c, 0x65, 0x7d, 0x56, 0x9f, 0x36, 0xf6, 0x74, 0xfa, 0x07, 0x3e, 0xae, + 0xde, 0xb1, 0xe4, 0x77, 0x7e, 0xf5, 0x62, 0x37, 0x3d, 0xdc, 0xf1, 0x87, + 0x2f, 0x05, 0x97, 0x60, 0xf8, 0x1a, 0xfc, 0x68, 0x77, 0xad, 0x76, 0x23, + 0xbf, 0x8f, 0xc5, 0x87, 0x00, 0xf6, 0xc3, 0x6b, 0x62, 0x1d, 0x4f, 0xea, + 0xc2, 0x65, 0xb3, 0xf6, 0x2a, 0x5b, 0x91, 0xba, 0x9f, 0xd5, 0x16, 0x5f, + 0x85, 0x35, 0xe1, 0x51, 0x6a, 0xa9, 0x19, 0x6b, 0x00, 0x9b, 0xcb, 0x5f, + 0xfb, 0xd8, 0xf8, 0x56, 0xfc, 0x3f, 0xe1, 0xda, 0xfa, 0xff, 0xf6, 0xe3, + 0x9c, 0x0e, 0x16, 0xff, 0x31, 0x76, 0x1f, 0x00, 0xf6, 0x64, 0x13, 0xb6, + 0xda, 0x38, 0x76, 0xb1, 0x11, 0xb6, 0xda, 0x38 }; //*************************** Program and Shaders ***************************/ From 0499e57499d26173b8faf2306bf3aee0bb8d3699 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Fri, 27 Sep 2019 11:46:00 +0200 Subject: [PATCH 14/14] Added exclude option, improved example Added -x option to the script to exclude files, then used it to exclude the large BC7 mode 6 tables. Added mipmap transcoding to the example for completeness. --- contrib/single_file_transcoder/README.md | 10 ++- .../basisutranslib-in.cpp | 5 +- contrib/single_file_transcoder/combine.sh | 8 ++- .../single_file_transcoder/create_translib.sh | 3 +- .../examples/emscripten.cpp | 70 +++++++++++-------- 5 files changed, 62 insertions(+), 34 deletions(-) diff --git a/contrib/single_file_transcoder/README.md b/contrib/single_file_transcoder/README.md index dffa10f..8f7e1a8 100644 --- a/contrib/single_file_transcoder/README.md +++ b/contrib/single_file_transcoder/README.md @@ -9,11 +9,17 @@ cd basis_universal/contrib/single_file_transcoder ``` Then add the resulting file to your project (see the [example files](examples)). -`create_translib.sh` will run the above script, creating the file `basisutranslib.cpp`. +If certain features will _never__ be enabled, e.g. `BASISD_SUPPORT_BC7_MODE6_OPAQUE_ONLY`, then `combine.sh` can be told to exclude files completely: +``` +./combine.sh -r ../../transcoder -x basisu_transcoder_tables_bc7_m6.inc -o basisutranslib.cpp basisutranslib-in.cpp +``` +Excluding the BC7 mode 6 support reduces the generated source by 1.2MB, which is the choice taken in both `basisutranslib-in.cpp` and `create_translib.sh`, will run the above script, creating the final `basisutranslib.cpp`. + +Note: the amalgamation script will run on pretty much anything but is _extremely_ slow on Windows with the `bash` included with Git. Why? ---- Because all it now takes to support Basis Universal is the addition of a single file, two if using the header, with no configuration or further build steps (the out-of-the-box defaults tailor the included formats for various platforms). -The library is small, adding, for example, 249kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7 and ATC; disabling ASTC can remove a further 64kB, and `gzip` will approximately half the `wasm` file). +The library is small, adding, for example, 249kB to an Emscripten compiled WebAssembly project (with transcoding disabled for BC7 and ATC; disabling ASTC will remove a further 64kB, and `gzip` will approximately half the `wasm` file). diff --git a/contrib/single_file_transcoder/basisutranslib-in.cpp b/contrib/single_file_transcoder/basisutranslib-in.cpp index 09018eb..783df8c 100644 --- a/contrib/single_file_transcoder/basisutranslib-in.cpp +++ b/contrib/single_file_transcoder/basisutranslib-in.cpp @@ -1,8 +1,11 @@ /** * Basis Universal single file library. Generated using: * \code - * ./combine.sh -r ../../transcoder -o basisutranslib.cpp basisutranslib-in.cpp + * ./combine.sh -r ../../transcoder -x basisu_transcoder_tables_bc7_m6.inc -o basisutranslib.cpp basisutranslib-in.cpp * \endcode + * + * \note The script above excludes the BC7 mode 6 tables, a choice reflected in + * the build options. */ /* diff --git a/contrib/single_file_transcoder/combine.sh b/contrib/single_file_transcoder/combine.sh index ccf11cc..52ea071 100755 --- a/contrib/single_file_transcoder/combine.sh +++ b/contrib/single_file_transcoder/combine.sh @@ -20,8 +20,9 @@ DESTN="" # Prints the script usage then exits usage() { - echo "Usage: $0 [-r ] [-o ] infile" + echo "Usage: $0 [-r ] [-x
][-o ] infile" echo " -r file root search paths" + echo " -x file to exclude from inlining" echo " -o output file (otherwise stdout)" echo "Example: $0 -r ../my/path - r ../other/path -o out.c in.c" exit 1 @@ -94,11 +95,14 @@ add_file() { fi } -while getopts ":r:o:" opts; do +while getopts ":r:x:o:" opts; do case $opts in r) ROOTS="$OPTARG $ROOTS" ;; + x) + FOUND="$OPTARG $FOUND" + ;; o) DESTN="$OPTARG" ;; diff --git a/contrib/single_file_transcoder/create_translib.sh b/contrib/single_file_transcoder/create_translib.sh index 8033017..f20daf3 100755 --- a/contrib/single_file_transcoder/create_translib.sh +++ b/contrib/single_file_transcoder/create_translib.sh @@ -1,7 +1,8 @@ #!/bin/sh echo "Amalgamating files... this can take a while" -./combine.sh -r "../../transcoder" -o basisutranslib.cpp basisutranslib-in.cpp +echo "Note: basisu_transcoder_tables_bc7_m6.inc is excluded" +./combine.sh -r "../../transcoder" -x basisu_transcoder_tables_bc7_m6.inc -o basisutranslib.cpp basisutranslib-in.cpp # Did combining work? if [ $? -ne 0 ]; then echo "Combine script: FAILED" diff --git a/contrib/single_file_transcoder/examples/emscripten.cpp b/contrib/single_file_transcoder/examples/emscripten.cpp index 8afa343..c04dd3a 100644 --- a/contrib/single_file_transcoder/examples/emscripten.cpp +++ b/contrib/single_file_transcoder/examples/emscripten.cpp @@ -1,7 +1,7 @@ /** * \file emscripten.cpp * Emscripten example of using the single-file \c basisutranslib. Draws a - * rotating textured quad with data from the in-line compressed texture. + * rotating textured quad with data from the in-line compressed textures. * \n * Compile using: * \code @@ -18,10 +18,7 @@ * basisutranslib.cpp include (which stubs the texture creation). * \n * Example code released under a CC0 license. - * - * \todo add mipmap support to the example */ - #include #include #include @@ -1961,7 +1958,7 @@ struct posTex2d { #define COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 #endif -//***************************** Basis Universal /*****************************/ +//***************************** Basis Universal ******************************/ /* * All of the BasisU code is within this block to enable building with or @@ -2003,11 +2000,11 @@ static transcoder_texture_format supports(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const #if BASISD_SUPPORT_ASTC || !defined(BASISD_SUPPORT_ASTC) /* * Then Android, ChromeOS and others with ASTC (newer iOS devices should - * make the list but don't appear to be exposed). + * make the list but don't appear to be exposed from WebGL). */ static bool const astc = GL_HAS_EXT(ctx, "WEBGL_compressed_texture_astc"); if (astc) { - //return cTFASTC_4x4; // 10 + return cTFASTC_4x4; // 10 } #endif #if BASISD_SUPPORT_DXT1 || !defined(BASISD_SUPPORT_DXT1) @@ -2092,43 +2089,60 @@ static GLenum toGlType(transcoder_texture_format const type) { * \param[in] data \c .basis file content * \param[in] size number of bytes in \a data * \return \c true if the texture was decoded and created + * + * \todo reuse the decode buffer (the first mips level should be able to contain the rest) */ bool upload(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE const ctx, GLuint const name, const uint8_t* const data, size_t const size) { - bool success = false; basisu_transcoder_init(); if (!globalCodebook) { globalCodebook = new etc1_global_selector_codebook(g_global_selector_cb_size, g_global_selector_cb); } basisu_transcoder transcoder(globalCodebook); + bool success = false; if (transcoder.validate_header(data, size)) { + glBindTexture(GL_TEXTURE_2D, name); basisu_file_info fileInfo; if (transcoder.get_file_info(data, size, fileInfo)) { transcoder_texture_format type = supports(ctx, fileInfo.m_has_alpha_slices); - printf("Type enum: %d\n", type); basisu_image_info info; if (transcoder.get_image_info(data, size, info, 0)) { - uint32_t descW, descH, blocks; - if (transcoder.get_image_level_desc(data, size, 0, 0, descW, descH, blocks)) { - if (transcoder.start_transcoding(data, size)) { - uint32_t decSize = basis_get_bytes_per_block(type) * blocks; - if (void* decBuf = malloc(decSize)) { - if (type >= cTFTotalBlockTextureFormats) { - // note that blocks becomes total number of pixels for RGB/RGBA - blocks = descW * descH; + printf("Transcoding to type: %s (w: %d, h: %d, mips: %d)\n", + basis_get_format_name(type), info.m_width, info.m_height, + info.m_total_levels); + if (transcoder.start_transcoding(data, size)) { + uint32_t descW, descH, blocks; + for (uint32_t level = 0; level < info.m_total_levels; level++) { + // reset per level + success = false; + if (transcoder.get_image_level_desc(data, size, 0, level, descW, descH, blocks)) { + uint32_t decSize; + if (type == cTFPVRTC1_4_RGB || type == cTFPVRTC1_4_RGBA) { + decSize = (std::max(8U, (descW + 3) & ~3) * + std::max(8U, (descH + 3) & ~3) * 4 + 7) / 8; + } else { + decSize = basis_get_bytes_per_block(type) * blocks; } - if (transcoder.transcode_image_level(data, size, 0, 0, decBuf, blocks, type)) { - glBindTexture(GL_TEXTURE_2D, name); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - if (type < cTFTotalBlockTextureFormats) { - glCompressedTexImage2D(GL_TEXTURE_2D, 0, - toGlType(type), descW, descH, 0, decSize, decBuf); - } else { - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, - descW, descH, 0, GL_RGBA, toGlType(type), decBuf); + + if (void* decBuf = malloc(decSize)) { + if (type >= cTFTotalBlockTextureFormats) { + // note that blocks becomes total number of pixels for RGB/RGBA + blocks = descW * descH; } - success = true; + if (transcoder.transcode_image_level(data, size, 0, level, decBuf, blocks, type)) { + if (type < cTFTotalBlockTextureFormats) { + glCompressedTexImage2D(GL_TEXTURE_2D, level, + toGlType(type), descW, descH, 0, decSize, decBuf); + } else { + glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, + descW, descH, 0, GL_RGBA, toGlType(type), decBuf); + } + success = true; + } + free(decBuf); } - free(decBuf); + } + if (!success) { + break; } } }